/**
 * @license
 * Copyright 2020 Google LLC
 * SPDX-License-Identifier: Apache-2.0
 */

// Ugly import path due to the following bugs:
// https://github.com/bazelbuild/rules_nodejs/issues/1522
// https://github.com/bazelbuild/rules_nodejs/issues/1380
import {
  PackageInfo,
  LicenseType,
  LicenseInfo,
} from '../../../tools/node_tools/node_modules_licenses/package-license-info';
import * as path from 'path';

class LicenseTypes {
  public static Mit: LicenseType = {
    name: 'MIT',
    allowed: true,
  };
  public static Apache2_0: LicenseType = {
    name: 'Apache 2.0',
    allowed: true,
  };

  public static Bsd3: LicenseType = {
    name: 'BSD-3-Clause',
    allowed: true,
  };

  public static BsdZeroClause: LicenseType = {
    name: 'BSD-Zero-Clause',
    allowed: true,
  };
}

/** List of licenses texts. Add the licenses here if there is no text file with license
 * in package. For details - see comments for {@link LicenseInfo} and {@link PackageInfo} */
class SharedLicenses {
  public static Lit: LicenseInfo = {
    name: 'Lit',
    type: LicenseTypes.Bsd3,
    sharedLicenseFile: 'lit.txt',
  };

  public static Polymer2014: LicenseInfo = {
    name: 'Polymer-2014',
    type: LicenseTypes.Bsd3,
    sharedLicenseFile: 'polymer-2014.txt',
  };

  public static Polymer2015: LicenseInfo = {
    name: 'Polymer-2015',
    type: LicenseTypes.Bsd3,
    sharedLicenseFile: 'polymer-2015.txt',
  };

  public static Polymer2016: LicenseInfo = {
    name: 'Polymer-2016',
    type: LicenseTypes.Bsd3,
    sharedLicenseFile: 'polymer-2016.txt',
  };

  public static Polymer2017: LicenseInfo = {
    name: 'Polymer-2017',
    type: LicenseTypes.Bsd3,
    sharedLicenseFile: 'polymer-2017.txt',
  };

  public static Polymer2018: LicenseInfo = {
    name: 'Polymer-2018',
    type: LicenseTypes.Bsd3,
    sharedLicenseFile: 'polymer-2018.txt',
  };

  public static IsArray: LicenseInfo = {
    name: 'isarray',
    type: LicenseTypes.Mit,
    sharedLicenseFile: 'isarray.txt',
  };

  public static Page: LicenseInfo = {
    name: 'page',
    type: LicenseTypes.Mit,
    sharedLicenseFile: 'page.txt',
  };
}

const fontsRobotoFilter = (fileName: string) =>
  fileName.startsWith('fonts/roboto/') &&
  path.basename(fileName) !== 'DESCRIPTION.en_us.html';

const fontsRobotomonoFilter = (fileName: string) =>
  fileName.startsWith('fonts/robotomono/') &&
  path.basename(fileName) !== 'DESCRIPTION.en_us.html';

const packages: PackageInfo[] = [
  {
    name: '@lit/reactive-element',
    license: SharedLicenses.Lit,
  },
  {
    name: '@lit-labs/ssr-dom-shim',
    license: SharedLicenses.Lit,
  },
  {
    name: '@polymer/decorators',
    license: SharedLicenses.Polymer2017,
  },
  {
    name: '@polymer/font-roboto',
    license: SharedLicenses.Polymer2015,
  },
  {
    name: '@polymer/font-roboto-local',
    license: SharedLicenses.Polymer2015,
    filesFilter: fileName =>
      !fontsRobotoFilter(fileName) && !fontsRobotomonoFilter(fileName),
  },
  {
    name: '@polymer/font-roboto-local',
    license: {
      name: 'font-roboto-local-fonts-roboto',
      type: LicenseTypes.Apache2_0,
      packageLicenseFile: 'fonts/roboto/LICENSE.txt',
    },
    filesFilter: fontsRobotoFilter,
  },
  {
    name: '@polymer/font-roboto-local',
    license: {
      name: 'font-roboto-local-fonts-robotomono',
      type: LicenseTypes.Apache2_0,
      packageLicenseFile: 'fonts/robotomono/LICENSE.txt',
    },
    filesFilter: fontsRobotomonoFilter,
  },
  {
    name: '@polymer/iron-a11y-announcer',
    license: SharedLicenses.Polymer2015,
  },
  {
    name: '@polymer/iron-a11y-keys-behavior',
    license: SharedLicenses.Polymer2015,
  },
  {
    name: '@polymer/iron-autogrow-textarea',
    license: SharedLicenses.Polymer2015,
  },
  {
    name: '@polymer/iron-behaviors',
    license: SharedLicenses.Polymer2015,
  },
  {
    name: '@polymer/iron-checked-element-behavior',
    license: SharedLicenses.Polymer2015,
  },
  {
    name: '@polymer/iron-dropdown',
    license: SharedLicenses.Polymer2015,
  },
  {
    name: '@polymer/iron-fit-behavior',
    license: SharedLicenses.Polymer2015,
  },
  {
    name: '@polymer/iron-flex-layout',
    license: SharedLicenses.Polymer2015,
  },
  {
    name: '@polymer/iron-form-element-behavior',
    license: SharedLicenses.Polymer2015,
  },
  {
    name: '@polymer/iron-icon',
    license: SharedLicenses.Polymer2015,
  },
  {
    name: '@polymer/iron-iconset-svg',
    license: SharedLicenses.Polymer2015,
  },
  {
    name: '@polymer/iron-image',
    license: SharedLicenses.Polymer2016,
  },
  {
    name: '@polymer/iron-input',
    license: SharedLicenses.Polymer2015,
  },
  {
    name: '@polymer/iron-menu-behavior',
    license: SharedLicenses.Polymer2015,
  },
  {
    name: '@polymer/iron-meta',
    license: SharedLicenses.Polymer2015,
  },
  {
    name: '@polymer/iron-overlay-behavior',
    license: SharedLicenses.Polymer2015,
  },
  {
    name: '@polymer/iron-resizable-behavior',
    license: SharedLicenses.Polymer2015,
  },
  {
    name: '@polymer/iron-selector',
    license: SharedLicenses.Polymer2015,
  },
  {
    name: '@polymer/iron-validatable-behavior',
    license: SharedLicenses.Polymer2015,
  },
  {
    name: '@polymer/marked-element',
    license: SharedLicenses.Polymer2015,
  },
  {
    name: '@polymer/neon-animation',
    license: SharedLicenses.Polymer2015,
  },
  {
    name: '@polymer/paper-behaviors',
    license: SharedLicenses.Polymer2015,
  },
  {
    name: '@polymer/paper-button',
    license: SharedLicenses.Polymer2015,
  },
  {
    name: '@polymer/paper-card',
    license: SharedLicenses.Polymer2015,
  },
  {
    name: '@polymer/paper-checkbox',
    license: SharedLicenses.Polymer2016,
  },
  {
    name: '@polymer/paper-dialog',
    license: SharedLicenses.Polymer2015,
  },
  {
    name: '@polymer/paper-dialog-behavior',
    license: SharedLicenses.Polymer2015,
  },
  {
    name: '@polymer/paper-dialog-scrollable',
    license: SharedLicenses.Polymer2015,
  },
  {
    name: '@polymer/paper-dropdown-menu',
    license: SharedLicenses.Polymer2015,
  },
  {
    name: '@polymer/paper-fab',
    license: SharedLicenses.Polymer2015,
  },
  {
    name: '@polymer/paper-icon-button',
    license: SharedLicenses.Polymer2015,
  },
  {
    name: '@polymer/paper-input',
    license: SharedLicenses.Polymer2015,
  },
  {
    name: '@polymer/paper-item',
    license: SharedLicenses.Polymer2015,
  },
  {
    name: '@polymer/paper-listbox',
    license: SharedLicenses.Polymer2015,
  },
  {
    name: '@polymer/paper-menu-button',
    license: SharedLicenses.Polymer2015,
  },
  {
    name: '@polymer/paper-ripple',
    license: SharedLicenses.Polymer2014,
  },
  {
    name: '@polymer/paper-styles',
    license: SharedLicenses.Polymer2014,
  },
  {
    name: '@polymer/paper-tabs',
    license: SharedLicenses.Polymer2015,
  },
  {
    name: '@polymer/paper-toggle-button',
    license: SharedLicenses.Polymer2015,
  },
  {
    name: '@polymer/paper-tooltip',
    license: SharedLicenses.Polymer2015,
  },
  {
    name: '@polymer/polymer',
    license: SharedLicenses.Polymer2017,
  },
  {
    name: '@types/resemblejs',
    license: {
      name: 'DefinitelyTyped',
      type: LicenseTypes.Mit,
      packageLicenseFile: 'LICENSE',
    },
  },
  {
    name: '@types/resize-observer-browser',
    license: {
      name: 'DefinitelyTyped',
      type: LicenseTypes.Mit,
      packageLicenseFile: 'LICENSE',
    },
  },
  {
    name: '@types/trusted-types',
    license: {
      name: 'DefinitelyTyped',
      type: LicenseTypes.Mit,
      packageLicenseFile: 'LICENSE',
    },
  },
  {
    name: '@webcomponents/shadycss',
    license: SharedLicenses.Polymer2017,
  },
  {
    name: '@webcomponents/webcomponentsjs',
    license: SharedLicenses.Polymer2018,
  },
  {
    name: 'isarray',
    license: SharedLicenses.IsArray,
  },
  {
    name: 'page',
    license: SharedLicenses.Page,
  },
  {
    name: 'shadow-selection-polyfill',
    license: {
      name: 'shadow-selection-polyfill',
      type: LicenseTypes.Apache2_0,
      packageLicenseFile: 'LICENSE',
    },
  },
  {
    name: 'path-to-regexp',
    license: {
      name: 'path-to-regexp',
      type: LicenseTypes.Mit,
      packageLicenseFile: 'LICENSE',
    },
  },
  {
    name: 'polymer-resin',
    license: SharedLicenses.Polymer2018,
  },
  {
    name: 'polymer-bridges',
    license: SharedLicenses.Polymer2018,
  },
  {
    name: 'polygerrit-gr-page',
    license: SharedLicenses.Page,
  },
  {
    name: 'web-vitals',
    license: {
      name: 'web-vitals',
      type: LicenseTypes.Apache2_0,
      packageLicenseFile: 'LICENSE',
    },
  },
  {
    name: 'rxjs',
    license: {
      name: 'rxjs',
      type: LicenseTypes.Apache2_0,
      packageLicenseFile: 'LICENSE.txt',
    },
    // The following directories are not real packages, but contains package.json
    nonPackages: [
      'ajax',
      'fetch',
      'internal-compatibility',
      'operators',
      'testing',
      'webSocket',
      'src/ajax',
      'src/fetch',
      'src/internal-compatibility',
      'src/operators',
      'src/testing',
      'src/webSocket',
    ],
  },
  {
    name: 'lit',
    license: SharedLicenses.Lit,
  },
  {
    name: 'lit-element',
    license: SharedLicenses.Lit,
  },
  {
    name: 'lit-html',
    license: SharedLicenses.Lit,
  },
  {
    name: 'tslib',
    license: {
      name: 'tslib',
      type: LicenseTypes.BsdZeroClause,
      packageLicenseFile: 'LICENSE.txt',
    },
    nonPackages: ['modules', 'test/validateModuleExportsMatchCommonJS'],
  },
  {
    name: 'resemblejs',
    license: {
      name: 'resemblejs',
      type: LicenseTypes.Mit,
      packageLicenseFile: 'LICENSE',
    },
  },
  {
    name: 'immer',
    license: {
      name: 'immer',
      type: LicenseTypes.Mit,
      packageLicenseFile: 'LICENSE',
    },
  },
  {
    name: 'highlight.js',
    license: {
      name: 'highlight.js',
      type: LicenseTypes.Bsd3,
      packageLicenseFile: 'LICENSE',
    },
    nonPackages: ['es'],
  },
  {
    name: 'highlightjs-closure-templates',
    license: {
      name: 'highlightjs-closure-templates',
      type: LicenseTypes.Bsd3,
      packageLicenseFile: 'LICENSE',
    },
  },
  {
    name: 'highlightjs-structured-text',
    license: {
      name: 'highlightjs-structured-text',
      type: LicenseTypes.Bsd3,
      packageLicenseFile: 'LICENSE',
    },
  },
  {
    name: 'marked',
    license: {
      name: 'marked',
      type: LicenseTypes.Mit,
      packageLicenseFile: 'LICENSE.md',
    },
  },
  {
    name: 'safevalues',
    license: {
      name: 'safevalues',
      type: LicenseTypes.Apache2_0,
      packageLicenseFile: 'LICENSE',
    },
  },
];

export default packages;
