diff --git a/.github/workflows/build-and-test.yml b/.github/workflows/build-and-test.yml index 9d2de42..a0206f5 100644 --- a/.github/workflows/build-and-test.yml +++ b/.github/workflows/build-and-test.yml @@ -14,7 +14,7 @@ jobs: - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4 - uses: actions/setup-node@v4 with: - node-version: "18.13" + node-version: '18.13' - uses: pnpm/action-setup@v3 with: version: 8 @@ -41,7 +41,7 @@ jobs: token: ${{ secrets.PUBLISH_BOT }} - uses: actions/setup-node@v4 with: - node-version: "18.13" + node-version: '18.13' - uses: pnpm/action-setup@v3 with: version: 8 @@ -52,5 +52,5 @@ jobs: git config --global user.email "$BOT_EMAIL" git config --global user.name "esm-bundle-org-bot" echo "//registry.npmjs.org/:_authToken=$NPM_TOKEN" > .npmrc - - name: "Publish to npm" + - name: 'Publish to npm' run: pnpm run release diff --git a/.prettierrc.cjs b/.prettierrc.cjs new file mode 100644 index 0000000..e340799 --- /dev/null +++ b/.prettierrc.cjs @@ -0,0 +1,3 @@ +module.exports = { + singleQuote: true, +}; diff --git a/browser-test/systemjs-setup.js b/browser-test/systemjs-setup.js index 3e1f26a..2896c2e 100644 --- a/browser-test/systemjs-setup.js +++ b/browser-test/systemjs-setup.js @@ -1,6 +1,6 @@ document.head.appendChild( - Object.assign(document.createElement("script"), { - type: "systemjs-importmap", + Object.assign(document.createElement('script'), { + type: 'systemjs-importmap', textContent: ` { "imports": { diff --git a/browser-test/test.js b/browser-test/test.js index 9beda2f..a5d75d7 100644 --- a/browser-test/test.js +++ b/browser-test/test.js @@ -1,8 +1,8 @@ -describe("@esm-bundle/angular", () => { - describe("@angular/animations", () => { +describe('@esm-bundle/angular', () => { + describe('@angular/animations', () => { [ - ["angular-animations", "AnimationBuilder"], - ["angular-animations-browser", "AnimationDriver"], + ['angular-animations', 'AnimationBuilder'], + ['angular-animations-browser', 'AnimationDriver'], ].forEach(([filename, exportName]) => { it(`can load the System.register bundle`, async () => { const m = await System.import(`/base/system/es2022/${filename}.js`); @@ -16,11 +16,11 @@ describe("@esm-bundle/angular", () => { }); }); - describe("@angular/common", () => { + describe('@angular/common', () => { [ - ["angular-common", "NgClass"], - ["angular-common-http", "HttpClient"], - ["angular-common-upgrade", "AngularJSUrlCodec"], + ['angular-common', 'NgClass'], + ['angular-common-http', 'HttpClient'], + ['angular-common-upgrade', 'AngularJSUrlCodec'], ].forEach(([filename, exportName]) => { it(`can load the System.register bundle`, async () => { const m = await System.import(`/base/system/es2022/${filename}.js`); @@ -34,8 +34,8 @@ describe("@esm-bundle/angular", () => { }); }); - describe("@angular/compiler", () => { - [["angular-compiler", "compileComponentClassMetadata"]].forEach( + describe('@angular/compiler', () => { + [['angular-compiler', 'compileComponentClassMetadata']].forEach( ([filename, exportName]) => { it(`can load the System.register bundle`, async () => { const m = await System.import(`/base/system/es2022/${filename}.js`); @@ -52,11 +52,11 @@ describe("@esm-bundle/angular", () => { ); }); - describe("@angular/core", () => { + describe('@angular/core', () => { [ - ["angular-core", "Injectable"], - ["angular-core-primitives-signals", "consumerMarkDirty"], - ["angular-core-rxjs-interop", "takeUntilDestroyed"], + ['angular-core', 'Injectable'], + ['angular-core-primitives-signals', 'consumerMarkDirty'], + ['angular-core-rxjs-interop', 'takeUntilDestroyed'], ].forEach(([filename, exportName]) => { it(`can load the System.register bundle`, async () => { const m = await System.import(`/base/system/es2022/${filename}.js`); @@ -70,8 +70,8 @@ describe("@esm-bundle/angular", () => { }); }); - describe("@angular/elements", () => { - [["angular-elements", "createCustomElement"]].forEach( + describe('@angular/elements', () => { + [['angular-elements', 'createCustomElement']].forEach( ([filename, exportName]) => { it(`can load the System.register bundle`, async () => { const m = await System.import(`/base/system/es2022/${filename}.js`); @@ -88,8 +88,8 @@ describe("@esm-bundle/angular", () => { ); }); - describe("@angular/forms", () => { - [["angular-forms", "ReactiveFormsModule"]].forEach( + describe('@angular/forms', () => { + [['angular-forms', 'ReactiveFormsModule']].forEach( ([filename, exportName]) => { it(`can load the System.register bundle`, async () => { const m = await System.import(`/base/system/es2022/${filename}.js`); @@ -106,8 +106,8 @@ describe("@esm-bundle/angular", () => { ); }); - describe("@angular/localize", () => { - [["angular-localize", "loadTranslations"]].forEach( + describe('@angular/localize', () => { + [['angular-localize', 'loadTranslations']].forEach( ([filename, exportName]) => { it(`can load the System.register bundle`, async () => { const m = await System.import(`/base/system/es2022/${filename}.js`); @@ -124,11 +124,11 @@ describe("@esm-bundle/angular", () => { ); }); - describe("@angular/platform-browser", () => { + describe('@angular/platform-browser', () => { [ - ["angular-platform-browser", "bootstrapApplication"], - ["angular-platform-browser-animations", "provideAnimations"], - ["angular-platform-browser-animations-async", "provideAnimationsAsync"], + ['angular-platform-browser', 'bootstrapApplication'], + ['angular-platform-browser-animations', 'provideAnimations'], + ['angular-platform-browser-animations-async', 'provideAnimationsAsync'], ].forEach(([filename, exportName]) => { it(`can load the System.register bundle`, async () => { const m = await System.import(`/base/system/es2022/${filename}.js`); @@ -142,8 +142,8 @@ describe("@esm-bundle/angular", () => { }); }); - describe("@angular/platform-browser-dynamic", () => { - [["angular-platform-browser-dynamic", "JitCompilerFactory"]].forEach( + describe('@angular/platform-browser-dynamic', () => { + [['angular-platform-browser-dynamic', 'JitCompilerFactory']].forEach( ([filename, exportName]) => { it(`can load the System.register bundle`, async () => { const m = await System.import(`/base/system/es2022/${filename}.js`); @@ -160,10 +160,10 @@ describe("@esm-bundle/angular", () => { ); }); - describe("@angular/router", () => { + describe('@angular/router', () => { [ - ["angular-router", "provideRouter"], - ["angular-router-upgrade", "locationSyncBootstrapListener"], + ['angular-router', 'provideRouter'], + ['angular-router-upgrade', 'locationSyncBootstrapListener'], ].forEach(([filename, exportName]) => { it(`can load the System.register bundle`, async () => { const m = await System.import(`/base/system/es2022/${filename}.js`); @@ -177,8 +177,8 @@ describe("@esm-bundle/angular", () => { }); }); - describe("@angular/service-worker", () => { - [["angular-service-worker", "provideServiceWorker"]].forEach( + describe('@angular/service-worker', () => { + [['angular-service-worker', 'provideServiceWorker']].forEach( ([filename, exportName]) => { it(`can load the System.register bundle`, async () => { const m = await System.import(`/base/system/es2022/${filename}.js`); @@ -195,10 +195,10 @@ describe("@esm-bundle/angular", () => { ); }); - describe("@angular/upgrade", () => { + describe('@angular/upgrade', () => { [ - ["angular-upgrade", "UpgradeAdapter"], - ["angular-upgrade-static", "downgradeComponent"], + ['angular-upgrade', 'UpgradeAdapter'], + ['angular-upgrade-static', 'downgradeComponent'], ].forEach(([filename, exportName]) => { it(`can load the System.register bundle`, async () => { const m = await System.import(`/base/system/es2022/${filename}.js`); diff --git a/package.json b/package.json index 2e2e440..3992452 100644 --- a/package.json +++ b/package.json @@ -69,5 +69,10 @@ "rxjs": "7.8.1", "tslib": "2.6.2", "typescript": "5.4.5" + }, + "pnpm": { + "patchedDependencies": { + "release-it-plugin-esm-bundle@3.0.0": "patches/release-it-plugin-esm-bundle@3.0.0.patch" + } } } diff --git a/patches/release-it-plugin-esm-bundle@3.0.0.patch b/patches/release-it-plugin-esm-bundle@3.0.0.patch new file mode 100644 index 0000000..498e753 --- /dev/null +++ b/patches/release-it-plugin-esm-bundle@3.0.0.patch @@ -0,0 +1,15 @@ +diff --git a/index.js b/index.js +index 6b5f3aead4855517f078cb5544d27a7737bd0362..0afed99684ca5b49d09147ee74a648b1f0392131 100644 +--- a/index.js ++++ b/index.js +@@ -41,7 +41,9 @@ function getDepName() { + } + + function getDepVersion() { +- const depName = getDepName(); ++ // Since we have all the packages within a single repository we ++ // may rely on the primary core package version. ++ const depName = '@angular/core'; + const dependency = (packageJson.devDependencies || {})[depName]; + if (!dependency) { + throw Error(`Missing package.json dependency '${depName}'`); diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index d366e19..51d3af9 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -4,6 +4,11 @@ settings: autoInstallPeers: true excludeLinksFromLockfile: false +patchedDependencies: + release-it-plugin-esm-bundle@3.0.0: + hash: hbzjlhnwis6sjsbte32r5b7g5i + path: patches/release-it-plugin-esm-bundle@3.0.0.patch + devDependencies: '@angular/animations': specifier: 17.3.4 @@ -88,7 +93,7 @@ devDependencies: version: 17.2.0(typescript@5.4.5) release-it-plugin-esm-bundle: specifier: 3.0.0 - version: 3.0.0(release-it@17.2.0) + version: 3.0.0(patch_hash=hbzjlhnwis6sjsbte32r5b7g5i)(release-it@17.2.0) rimraf: specifier: 5.0.5 version: 5.0.5 @@ -3756,13 +3761,14 @@ packages: rc: 1.2.8 dev: true - /release-it-plugin-esm-bundle@3.0.0(release-it@17.2.0): + /release-it-plugin-esm-bundle@3.0.0(patch_hash=hbzjlhnwis6sjsbte32r5b7g5i)(release-it@17.2.0): resolution: {integrity: sha512-3N85d6C37Dk1ArUazjOz4nwubOGZS6fL7QLG1Hr0ZXAz7CDLiBfEeq3VccHkT8U0Ho797gWDA2FY36kVDmmpHw==} peerDependencies: release-it: '>=15.0.0' dependencies: release-it: 17.2.0(typescript@5.4.5) dev: true + patched: true /release-it@17.2.0(typescript@5.4.5): resolution: {integrity: sha512-Cidaq5W4apZSpdEDQd2TJhH7GZAwfaG+ewe60p7B7+txyCHYR/T6lGvkKinJmePpdHsM0fzA05yGGXKCiHJHmA==} diff --git a/rollup.config.js b/rollup.config.js index 4f4ac34..b150893 100644 --- a/rollup.config.js +++ b/rollup.config.js @@ -1,18 +1,14 @@ -import { join, dirname } from "node:path"; -import { createRequire } from "node:module"; -import { fileURLToPath } from "node:url"; -import terser from "@rollup/plugin-terser"; -import { babel } from "@rollup/plugin-babel"; -import replace from "@rollup/plugin-replace"; -import { createEs2015LinkerPlugin } from "@angular/compiler-cli/linker/babel"; +import terser from '@rollup/plugin-terser'; +import { babel } from '@rollup/plugin-babel'; +import replace from '@rollup/plugin-replace'; +import { createEs2015LinkerPlugin } from '@angular/compiler-cli/linker/babel'; import { ConsoleLogger, NodeJSFileSystem, LogLevel, -} from "@angular/compiler-cli"; +} from '@angular/compiler-cli'; -const require = createRequire(import.meta.url); -const __dirname = dirname(fileURLToPath(import.meta.url)); +import { angularPackages } from './rollup/angular-packages.js'; /** File system used by the Angular linker plugin. */ const fileSystem = new NodeJSFileSystem(); @@ -28,303 +24,13 @@ const linkerPlugin = createEs2015LinkerPlugin({ linkerJitMode: false, }); -export const packages = [ - // ######################################################################## - // tslib - { - name: "tslib", - input: join(__dirname, `node_modules/tslib/tslib.es6.js`), - outputFile: "tslib", - packageJson: require("tslib/package.json"), - external: [], - }, - // ######################################################################## - - // ######################################################################## - // @angular/animations - { - name: "@angular/animations", - input: join( - __dirname, - `node_modules/@angular/animations/fesm2022/animations.mjs`, - ), - outputFile: "angular-animations", - packageJson: require("@angular/animations/package.json"), - external: ["@angular/core", "@angular/common"], - }, - { - name: "@angular/animations/browser", - input: join( - __dirname, - `node_modules/@angular/animations/fesm2022/browser.mjs`, - ), - outputFile: "angular-animations-browser", - packageJson: require("@angular/animations/package.json"), - external: ["@angular/core", "@angular/animations"], - }, - // ######################################################################## - - // ######################################################################## - // @angular/common - { - name: "@angular/common", - input: join(__dirname, `node_modules/@angular/common/fesm2022/common.mjs`), - outputFile: "angular-common", - packageJson: require("@angular/common/package.json"), - external: ["@angular/core"], - }, - { - name: "@angular/common/http", - input: join(__dirname, `node_modules/@angular/common/fesm2022/http.mjs`), - outputFile: "angular-common-http", - packageJson: require("@angular/common/package.json"), - external: ["rxjs", "rxjs/operators", "@angular/core", "@angular/common"], - }, - { - name: "@angular/common/upgrade", - input: join(__dirname, `node_modules/@angular/common/fesm2022/upgrade.mjs`), - outputFile: "angular-common-upgrade", - packageJson: require("@angular/common/package.json"), - external: [ - "rxjs", - "@angular/core", - "@angular/common", - "@angular/upgrade/static", - ], - }, - // ######################################################################## - - // ######################################################################## - // @angular/compiler - { - name: "@angular/compiler", - input: join( - __dirname, - `node_modules/@angular/compiler/fesm2022/compiler.mjs`, - ), - outputFile: "angular-compiler", - packageJson: require("@angular/compiler/package.json"), - external: ["rxjs", "rxjs/operators"], - }, - // ######################################################################## - - // ######################################################################## - // @angular/core - { - name: "@angular/core/primitives/signals", - input: join( - __dirname, - `node_modules/@angular/core/fesm2022/primitives/signals.mjs`, - ), - outputFile: "angular-core-primitives-signals", - packageJson: require("@angular/core/package.json"), - external: ["rxjs", "rxjs/operators"], - }, - { - name: "@angular/core", - input: join(__dirname, `node_modules/@angular/core/fesm2022/core.mjs`), - outputFile: "angular-core", - packageJson: require("@angular/core/package.json"), - external: ["rxjs", "rxjs/operators", "@angular/core/primitives/signals"], - }, - { - name: "@angular/core/rxjs-interop", - input: join( - __dirname, - `node_modules/@angular/core/fesm2022/rxjs-interop.mjs`, - ), - outputFile: "angular-core-rxjs-interop", - packageJson: require("@angular/core/package.json"), - external: ["rxjs", "rxjs/operators", "@angular/core"], - }, - // ######################################################################## - - // ######################################################################## - // @angular/elements - { - name: "@angular/elements", - input: join( - __dirname, - `node_modules/@angular/elements/fesm2022/elements.mjs`, - ), - outputFile: "angular-elements", - packageJson: require("@angular/elements/package.json"), - external: ["rxjs", "rxjs/operators", "@angular/core"], - }, - // ######################################################################## - - // ######################################################################## - // @angular/forms - { - name: "@angular/forms", - input: join(__dirname, `node_modules/@angular/forms/fesm2022/forms.mjs`), - outputFile: "angular-forms", - packageJson: require("@angular/forms/package.json"), - external: ["rxjs", "rxjs/operators", "@angular/core", "@angular/common"], - }, - // ######################################################################## - - // ######################################################################## - // @angular/localize - { - name: "@angular/localize", - input: join( - __dirname, - `node_modules/@angular/localize/fesm2022/localize.mjs`, - ), - outputFile: "angular-localize", - packageJson: require("@angular/localize/package.json"), - external: [], - }, - { - name: "@angular/localize/init", - input: join(__dirname, `node_modules/@angular/localize/fesm2022/init.mjs`), - outputFile: "angular-localize-init", - packageJson: require("@angular/localize/package.json"), - external: ["@angular/localize"], - }, - // ######################################################################## - - // ######################################################################## - // @angular/platform-browser - { - name: "@angular/platform-browser", - input: join( - __dirname, - `node_modules/@angular/platform-browser/fesm2022/platform-browser.mjs`, - ), - outputFile: "angular-platform-browser", - packageJson: require("@angular/platform-browser/package.json"), - external: ["@angular/core", "@angular/common", "@angular/common/http"], - }, - { - name: "@angular/platform-browser/animations", - input: join( - __dirname, - `node_modules/@angular/platform-browser/fesm2022/animations.mjs`, - ), - outputFile: "angular-platform-browser-animations", - packageJson: require("@angular/platform-browser/package.json"), - external: [ - "@angular/core", - "@angular/common", - "@angular/animations/browser", - "@angular/platform-browser", - ], - }, - { - name: "@angular/platform-browser/animations/async", - input: join( - __dirname, - `node_modules/@angular/platform-browser/fesm2022/animations/async.mjs`, - ), - outputFile: "angular-platform-browser-animations-async", - packageJson: require("@angular/platform-browser/package.json"), - external: ["@angular/core", "@angular/common", "@angular/platform-browser"], - }, - // ######################################################################## - - // ######################################################################## - // @angular/platform-browser-dynamic - { - name: "@angular/platform-browser-dynamic", - input: join( - __dirname, - `node_modules/@angular/platform-browser-dynamic/fesm2022/platform-browser-dynamic.mjs`, - ), - outputFile: "angular-platform-browser-dynamic", - packageJson: require("@angular/platform-browser-dynamic/package.json"), - external: [ - "@angular/compiler", - "@angular/core", - "@angular/common", - "@angular/platform-browser", - ], - }, - // ######################################################################## - - // ######################################################################## - // @angular/router - { - name: "@angular/router", - input: join(__dirname, `node_modules/@angular/router/fesm2022/router.mjs`), - outputFile: "angular-router", - packageJson: require("@angular/router/package.json"), - external: [ - "rxjs", - "rxjs/operators", - "@angular/core", - "@angular/common", - "@angular/platform-browser", - ], - }, - { - name: "@angular/router/upgrade", - input: join(__dirname, `node_modules/@angular/router/fesm2022/upgrade.mjs`), - outputFile: "angular-router-upgrade", - packageJson: require("@angular/router/package.json"), - external: [ - "@angular/core", - "@angular/common", - "@angular/router", - "@angular/upgrade/static", - ], - }, - // ######################################################################## - - // ######################################################################## - // @angular/service-worker - { - name: "@angular/service-worker", - input: join( - __dirname, - `node_modules/@angular/service-worker/fesm2022/service-worker.mjs`, - ), - outputFile: "angular-service-worker", - packageJson: require("@angular/service-worker/package.json"), - external: ["rxjs", "rxjs/operators", "@angular/core", "@angular/common"], - }, - { - name: "@angular/service-worker/config", - input: join( - __dirname, - `node_modules/@angular/service-worker/fesm2022/config.mjs`, - ), - outputFile: "angular-service-worker-config", - packageJson: require("@angular/service-worker/package.json"), - external: [], - }, - // ######################################################################## - - // ######################################################################## - // @angular/upgrade - { - name: "@angular/upgrade", - input: join( - __dirname, - `node_modules/@angular/upgrade/fesm2022/upgrade.mjs`, - ), - outputFile: "angular-upgrade", - packageJson: require("@angular/upgrade/package.json"), - external: ["@angular/core", "@angular/platform-browser-dynamic"], - }, - { - name: "@angular/upgrade/static", - input: join(__dirname, `node_modules/@angular/upgrade/fesm2022/static.mjs`), - outputFile: "angular-upgrade-static", - packageJson: require("@angular/upgrade/package.json"), - external: ["@angular/core", "@angular/platform-browser"], - }, - // ######################################################################## -]; - -const configs = packages.map( +const configs = angularPackages.map( ({ name, input, outputFile, packageJson, external }) => { return [ - [false, "system"], - [true, "system"], - [false, "es"], - [true, "es"], + [false, 'system'], + [true, 'system'], + [false, 'es'], + [true, 'es'], ].map(([prod, format]) => createConfig({ name, @@ -348,12 +54,12 @@ function createConfig({ prod, format, }) { - const dir = (format === "es" ? "." : format) + `/es2022`; + const dir = (format === 'es' ? '.' : format) + `/es2022`; return { input, output: { - file: `${dir}/${outputFile}.${prod ? "min." : ""}js`, + file: `${dir}/${outputFile}.${prod ? 'min.' : ''}js`, format, sourcemap: true, banner: `/* esm-bundle - ${name}@${packageJson.version} - ${format} format - Use of this source code is governed by an MIT-style license that can be found in the LICENSE file at https://angular.io/license */`, @@ -371,7 +77,7 @@ function createConfig({ prod && terser({ format: { - ecma: "2022", + ecma: '2022', comments: /esm-bundle/, }, compress: { diff --git a/rollup/angular-packages.js b/rollup/angular-packages.js new file mode 100644 index 0000000..dcbc657 --- /dev/null +++ b/rollup/angular-packages.js @@ -0,0 +1,273 @@ +import { join, dirname, resolve } from 'node:path'; +import { createRequire } from 'node:module'; +import { fileURLToPath } from 'node:url'; + +const require = createRequire(import.meta.url); +const __dirname = dirname(fileURLToPath(import.meta.url)); +const nodeModulesPath = resolve(__dirname, '../node_modules'); + +export const angularPackages = [ + // ######################################################################## + // tslib + { + name: 'tslib', + input: join(nodeModulesPath, `tslib/tslib.es6.js`), + outputFile: 'tslib', + packageJson: require('tslib/package.json'), + external: [], + }, + // ######################################################################## + + // ######################################################################## + // @angular/animations + { + name: '@angular/animations', + input: join(nodeModulesPath, `@angular/animations/fesm2022/animations.mjs`), + outputFile: 'angular-animations', + packageJson: require('@angular/animations/package.json'), + external: ['@angular/core', '@angular/common'], + }, + { + name: '@angular/animations/browser', + input: join(nodeModulesPath, `@angular/animations/fesm2022/browser.mjs`), + outputFile: 'angular-animations-browser', + packageJson: require('@angular/animations/package.json'), + external: ['@angular/core', '@angular/animations'], + }, + // ######################################################################## + + // ######################################################################## + // @angular/common + { + name: '@angular/common', + input: join(nodeModulesPath, `@angular/common/fesm2022/common.mjs`), + outputFile: 'angular-common', + packageJson: require('@angular/common/package.json'), + external: ['@angular/core'], + }, + { + name: '@angular/common/http', + input: join(nodeModulesPath, `@angular/common/fesm2022/http.mjs`), + outputFile: 'angular-common-http', + packageJson: require('@angular/common/package.json'), + external: ['rxjs', 'rxjs/operators', '@angular/core', '@angular/common'], + }, + { + name: '@angular/common/upgrade', + input: join(nodeModulesPath, `@angular/common/fesm2022/upgrade.mjs`), + outputFile: 'angular-common-upgrade', + packageJson: require('@angular/common/package.json'), + external: [ + 'rxjs', + '@angular/core', + '@angular/common', + '@angular/upgrade/static', + ], + }, + // ######################################################################## + + // ######################################################################## + // @angular/compiler + { + name: '@angular/compiler', + input: join(nodeModulesPath, `@angular/compiler/fesm2022/compiler.mjs`), + outputFile: 'angular-compiler', + packageJson: require('@angular/compiler/package.json'), + external: ['rxjs', 'rxjs/operators'], + }, + // ######################################################################## + + // ######################################################################## + // @angular/core + { + name: '@angular/core/primitives/signals', + input: join( + nodeModulesPath, + `@angular/core/fesm2022/primitives/signals.mjs`, + ), + outputFile: 'angular-core-primitives-signals', + packageJson: require('@angular/core/package.json'), + external: ['rxjs', 'rxjs/operators'], + }, + { + name: '@angular/core', + input: join(nodeModulesPath, `@angular/core/fesm2022/core.mjs`), + outputFile: 'angular-core', + packageJson: require('@angular/core/package.json'), + external: ['rxjs', 'rxjs/operators', '@angular/core/primitives/signals'], + }, + { + name: '@angular/core/rxjs-interop', + input: join(nodeModulesPath, `@angular/core/fesm2022/rxjs-interop.mjs`), + outputFile: 'angular-core-rxjs-interop', + packageJson: require('@angular/core/package.json'), + external: ['rxjs', 'rxjs/operators', '@angular/core'], + }, + // ######################################################################## + + // ######################################################################## + // @angular/elements + { + name: '@angular/elements', + input: join(nodeModulesPath, `@angular/elements/fesm2022/elements.mjs`), + outputFile: 'angular-elements', + packageJson: require('@angular/elements/package.json'), + external: ['rxjs', 'rxjs/operators', '@angular/core'], + }, + // ######################################################################## + + // ######################################################################## + // @angular/forms + { + name: '@angular/forms', + input: join(nodeModulesPath, `@angular/forms/fesm2022/forms.mjs`), + outputFile: 'angular-forms', + packageJson: require('@angular/forms/package.json'), + external: ['rxjs', 'rxjs/operators', '@angular/core', '@angular/common'], + }, + // ######################################################################## + + // ######################################################################## + // @angular/localize + { + name: '@angular/localize', + input: join(nodeModulesPath, `@angular/localize/fesm2022/localize.mjs`), + outputFile: 'angular-localize', + packageJson: require('@angular/localize/package.json'), + external: [], + }, + { + name: '@angular/localize/init', + input: join(nodeModulesPath, `@angular/localize/fesm2022/init.mjs`), + outputFile: 'angular-localize-init', + packageJson: require('@angular/localize/package.json'), + external: ['@angular/localize'], + }, + // ######################################################################## + + // ######################################################################## + // @angular/platform-browser + { + name: '@angular/platform-browser', + input: join( + nodeModulesPath, + `@angular/platform-browser/fesm2022/platform-browser.mjs`, + ), + outputFile: 'angular-platform-browser', + packageJson: require('@angular/platform-browser/package.json'), + external: ['@angular/core', '@angular/common', '@angular/common/http'], + }, + { + name: '@angular/platform-browser/animations', + input: join( + nodeModulesPath, + `@angular/platform-browser/fesm2022/animations.mjs`, + ), + outputFile: 'angular-platform-browser-animations', + packageJson: require('@angular/platform-browser/package.json'), + external: [ + '@angular/core', + '@angular/common', + '@angular/animations/browser', + '@angular/platform-browser', + ], + }, + { + name: '@angular/platform-browser/animations/async', + input: join( + nodeModulesPath, + `@angular/platform-browser/fesm2022/animations/async.mjs`, + ), + outputFile: 'angular-platform-browser-animations-async', + packageJson: require('@angular/platform-browser/package.json'), + external: ['@angular/core', '@angular/common', '@angular/platform-browser'], + }, + // ######################################################################## + + // ######################################################################## + // @angular/platform-browser-dynamic + { + name: '@angular/platform-browser-dynamic', + input: join( + nodeModulesPath, + `@angular/platform-browser-dynamic/fesm2022/platform-browser-dynamic.mjs`, + ), + outputFile: 'angular-platform-browser-dynamic', + packageJson: require('@angular/platform-browser-dynamic/package.json'), + external: [ + '@angular/compiler', + '@angular/core', + '@angular/common', + '@angular/platform-browser', + ], + }, + // ######################################################################## + + // ######################################################################## + // @angular/router + { + name: '@angular/router', + input: join(nodeModulesPath, `@angular/router/fesm2022/router.mjs`), + outputFile: 'angular-router', + packageJson: require('@angular/router/package.json'), + external: [ + 'rxjs', + 'rxjs/operators', + '@angular/core', + '@angular/common', + '@angular/platform-browser', + ], + }, + { + name: '@angular/router/upgrade', + input: join(nodeModulesPath, `@angular/router/fesm2022/upgrade.mjs`), + outputFile: 'angular-router-upgrade', + packageJson: require('@angular/router/package.json'), + external: [ + '@angular/core', + '@angular/common', + '@angular/router', + '@angular/upgrade/static', + ], + }, + // ######################################################################## + + // ######################################################################## + // @angular/service-worker + { + name: '@angular/service-worker', + input: join( + nodeModulesPath, + `@angular/service-worker/fesm2022/service-worker.mjs`, + ), + outputFile: 'angular-service-worker', + packageJson: require('@angular/service-worker/package.json'), + external: ['rxjs', 'rxjs/operators', '@angular/core', '@angular/common'], + }, + { + name: '@angular/service-worker/config', + input: join(nodeModulesPath, `@angular/service-worker/fesm2022/config.mjs`), + outputFile: 'angular-service-worker-config', + packageJson: require('@angular/service-worker/package.json'), + external: [], + }, + // ######################################################################## + + // ######################################################################## + // @angular/upgrade + { + name: '@angular/upgrade', + input: join(nodeModulesPath, `@angular/upgrade/fesm2022/upgrade.mjs`), + outputFile: 'angular-upgrade', + packageJson: require('@angular/upgrade/package.json'), + external: ['@angular/core', '@angular/platform-browser-dynamic'], + }, + { + name: '@angular/upgrade/static', + input: join(nodeModulesPath, `@angular/upgrade/fesm2022/static.mjs`), + outputFile: 'angular-upgrade-static', + packageJson: require('@angular/upgrade/package.json'), + external: ['@angular/core', '@angular/platform-browser'], + }, + // ######################################################################## +];