diff --git a/packages/core/test/render3/BUILD.bazel b/packages/core/test/render3/BUILD.bazel index ecf74855b0c..79b9e8cd284 100644 --- a/packages/core/test/render3/BUILD.bazel +++ b/packages/core/test/render3/BUILD.bazel @@ -61,7 +61,6 @@ ts_project( "//packages/common", "//packages/compiler", "//packages/platform-server", - "//packages/platform-server:bundled_domino_lib", ], ) diff --git a/packages/platform-server/BUILD.bazel b/packages/platform-server/BUILD.bazel index c4d72c85a68..5c33eabc6d3 100644 --- a/packages/platform-server/BUILD.bazel +++ b/packages/platform-server/BUILD.bazel @@ -1,5 +1,3 @@ -load("@aspect_rules_js//js:defs.bzl", "js_library") -load("@npm//:rollup/package_json.bzl", rollup = "bin") load("//tools:defaults.bzl", "api_golden_test_npm_package", "generate_api_docs", "ng_package", "ng_project", "tsec_test") package(default_visibility = ["//visibility:public"]) @@ -11,10 +9,8 @@ ng_project( "*.ts", "src/**/*.ts", ], - exclude = ["src/bundled-domino.d.ts"], ), deps = [ - ":bundled_domino_lib", "//:node_modules/@types/node", "//:node_modules/rxjs", "//:node_modules/xhr2", @@ -22,34 +18,7 @@ ng_project( "//packages/common/http", "//packages/core", "//packages/platform-browser", - ], -) - -rollup.rollup( - name = "bundled_domino", - srcs = [ - "//:node_modules/@rollup/plugin-commonjs", - "//:node_modules/domino", - ], - outs = [ - "src/bundled-domino.mjs", - ], - args = [ - "--format=esm", - "--plugin=@rollup/plugin-commonjs", - "--input=node_modules/domino/lib/index.js", - "--sourcemap=false", - "--file=packages/platform-server/src/bundled-domino.mjs", - ], - progress_message = "Bundling domino", - silent_on_success = True, -) - -js_library( - name = "bundled_domino_lib", - srcs = [ - "src/bundled-domino.d.ts", - ":bundled_domino", + "//packages/platform-server/third_party/domino:bundled_domino_lib", ], ) @@ -65,11 +34,20 @@ ng_package( ], externals = [ "xhr2", + "../../third_party/domino/bundled-domino", + "../third_party/domino/bundled-domino", + ], + nested_packages = [ + "//packages/platform-server/third_party/domino:bundled_domino_lib", ], package = "@angular/platform-server", side_effect_entry_points = [ "@angular/platform-server/init", ], + substitutions = { + # Needed for the FESM files. + "\\./(.+)/third_party/domino/bundled-domino": "../third_party/domino/bundled-domino.mjs", + }, tags = [ "release-with-framework", ], diff --git a/packages/platform-server/init/BUILD.bazel b/packages/platform-server/init/BUILD.bazel index a0a75e44e63..27885fe7a75 100644 --- a/packages/platform-server/init/BUILD.bazel +++ b/packages/platform-server/init/BUILD.bazel @@ -1,5 +1,3 @@ -load("@aspect_rules_js//js:defs.bzl", "js_library") -load("@npm//:rollup/package_json.bzl", rollup = "bin") load("//tools:defaults.bzl", "ng_project", "tsec_test") package(default_visibility = ["//visibility:public"]) @@ -14,35 +12,7 @@ ng_project( exclude = ["src/bundled-domino.d.ts"], ), deps = [ - ":bundled_domino_lib", - ], -) - -rollup.rollup( - name = "bundled_domino", - srcs = [ - "//:node_modules/@rollup/plugin-commonjs", - "//:node_modules/domino", - ], - outs = [ - "src/bundled-domino.mjs", - ], - args = [ - "--format=esm", - "--plugin=@rollup/plugin-commonjs", - "--input=node_modules/domino/lib/index.js", - "--sourcemap=false", - "--file=packages/platform-server/init/src/bundled-domino.mjs", - ], - progress_message = "Bundling domino", - silent_on_success = True, -) - -js_library( - name = "bundled_domino_lib", - srcs = [ - "src/bundled-domino.d.ts", - ":bundled_domino", + "//packages/platform-server/third_party/domino:bundled_domino_lib", ], ) diff --git a/packages/platform-server/init/src/shims.ts b/packages/platform-server/init/src/shims.ts index 78796195165..1853a51195c 100644 --- a/packages/platform-server/init/src/shims.ts +++ b/packages/platform-server/init/src/shims.ts @@ -6,7 +6,7 @@ * found in the LICENSE file at https://angular.dev/license */ -import domino from './bundled-domino'; +import domino from '../../third_party/domino/bundled-domino'; /** * Apply the necessary shims to make DOM globals (such as `Element`, `HTMLElement`, etc.) available diff --git a/packages/platform-server/init/test/BUILD.bazel b/packages/platform-server/init/test/BUILD.bazel index 548837649ad..62e5ffd4133 100644 --- a/packages/platform-server/init/test/BUILD.bazel +++ b/packages/platform-server/init/test/BUILD.bazel @@ -6,7 +6,7 @@ ts_project( srcs = glob(["**/*.ts"]), deps = [ "//packages/platform-server/init", - "//packages/platform-server/init:bundled_domino_lib", + "//packages/platform-server/third_party/domino:bundled_domino_lib", ], ) diff --git a/packages/platform-server/init/test/shims_spec.ts b/packages/platform-server/init/test/shims_spec.ts index d19ab03eb55..2be606ec9dc 100644 --- a/packages/platform-server/init/test/shims_spec.ts +++ b/packages/platform-server/init/test/shims_spec.ts @@ -5,7 +5,7 @@ * Use of this source code is governed by an MIT-style license that can be * found in the LICENSE file at https://angular.dev/license */ -import domino from '../src/bundled-domino'; +import domino from '../../third_party/domino/bundled-domino'; import {applyShims} from '../src/shims'; describe('applyShims()', () => { diff --git a/packages/platform-server/src/bundled-domino.d.ts b/packages/platform-server/src/bundled-domino.d.ts deleted file mode 100644 index b928dc3d483..00000000000 --- a/packages/platform-server/src/bundled-domino.d.ts +++ /dev/null @@ -1,11 +0,0 @@ -/** - * @license - * Copyright Google LLC All Rights Reserved. - * - * Use of this source code is governed by an MIT-style license that can be - * found in the LICENSE file at https://angular.dev/license - */ - -import domino from 'domino'; - -export default domino; diff --git a/packages/platform-server/src/domino_adapter.ts b/packages/platform-server/src/domino_adapter.ts index 3a70e56b91e..d9087ef04b4 100644 --- a/packages/platform-server/src/domino_adapter.ts +++ b/packages/platform-server/src/domino_adapter.ts @@ -9,7 +9,7 @@ import {ɵsetRootDomAdapter as setRootDomAdapter} from '@angular/common'; import {ɵBrowserDomAdapter as BrowserDomAdapter} from '@angular/platform-browser'; -import domino from './bundled-domino'; +import domino from '../third_party/domino/bundled-domino'; export function setDomTypes() { // Make all Domino types available in the global env. diff --git a/packages/platform-server/test/BUILD.bazel b/packages/platform-server/test/BUILD.bazel index 7ba9e979242..95a5e9f1b25 100644 --- a/packages/platform-server/test/BUILD.bazel +++ b/packages/platform-server/test/BUILD.bazel @@ -43,7 +43,7 @@ ts_project( "//packages/platform-browser", "//packages/platform-browser/animations", "//packages/platform-server", - "//packages/platform-server:bundled_domino_lib", + "//packages/platform-server/third_party/domino:bundled_domino_lib", "//packages/private/testing", "//packages/router", ], diff --git a/packages/platform-server/test/transfer_state_spec.ts b/packages/platform-server/test/transfer_state_spec.ts index 3fdc9366627..2e54683560d 100644 --- a/packages/platform-server/test/transfer_state_spec.ts +++ b/packages/platform-server/test/transfer_state_spec.ts @@ -20,7 +20,7 @@ import { import {BrowserModule, withEventReplay, withIncrementalHydration} from '@angular/platform-browser'; import {renderModule, ServerModule} from '../index'; import {getHydrationInfoFromTransferState, ssr} from './hydration_utils'; -import domino from '../src/bundled-domino'; +import domino from '../third_party/domino/bundled-domino'; describe('transfer_state', () => { const defaultExpectedOutput = diff --git a/packages/platform-server/third_party/domino/BUILD.bazel b/packages/platform-server/third_party/domino/BUILD.bazel new file mode 100644 index 00000000000..773af509240 --- /dev/null +++ b/packages/platform-server/third_party/domino/BUILD.bazel @@ -0,0 +1,53 @@ +load("@aspect_rules_js//js:defs.bzl", "js_library") +load("@npm//:rollup/package_json.bzl", rollup = "bin") + +package(default_visibility = ["//visibility:private"]) + +rollup.rollup( + name = "bundled_domino", + srcs = [ + "//:node_modules/@rollup/plugin-commonjs", + "//:node_modules/domino", + ], + outs = [ + "bundled-domino.mjs", + "bundled-domino.mjs.map", + ], + args = [ + "--format=esm", + "--plugin=@rollup/plugin-commonjs", + "--input=node_modules/domino/lib/index.js", + "--sourcemap=true", + "--file=packages/platform-server/third_party/domino/bundled-domino.mjs", + ], + progress_message = "Bundling domino", + silent_on_success = True, +) + +genrule( + name = "bundled_domino_license", + srcs = [ + "//:node_modules/domino/dir", + ], + outs = ["LICENSE"], + cmd = """ + cp "$(location //:node_modules/domino/dir)/LICENSE" $@ + """, +) + +js_library( + name = "bundled_domino_lib", + srcs = [ + "bundled-domino.d.ts", + ":bundled_domino", + ":bundled_domino_license", + ], + visibility = [ + "//packages/platform-server:__subpackages__", + "//packages/private/testing:__pkg__", + "//tools/testing:__pkg__", + ], + deps = [ + "//:node_modules/domino", + ], +) diff --git a/packages/platform-server/init/src/bundled-domino.d.ts b/packages/platform-server/third_party/domino/bundled-domino.d.ts similarity index 82% rename from packages/platform-server/init/src/bundled-domino.d.ts rename to packages/platform-server/third_party/domino/bundled-domino.d.ts index b928dc3d483..964533f19b1 100644 --- a/packages/platform-server/init/src/bundled-domino.d.ts +++ b/packages/platform-server/third_party/domino/bundled-domino.d.ts @@ -6,6 +6,11 @@ * found in the LICENSE file at https://angular.dev/license */ + +declare module 'domino' { + export const impl: any; +} + import domino from 'domino'; export default domino; diff --git a/packages/private/testing/BUILD.bazel b/packages/private/testing/BUILD.bazel index d3be2711ac3..0a073ac26de 100644 --- a/packages/private/testing/BUILD.bazel +++ b/packages/private/testing/BUILD.bazel @@ -18,6 +18,6 @@ ng_project( "//packages/core", "//packages/core/testing", "//packages/platform-browser", - "//packages/platform-server:bundled_domino_lib", + "//packages/platform-server/third_party/domino:bundled_domino_lib", ], ) diff --git a/packages/private/testing/src/utils.ts b/packages/private/testing/src/utils.ts index ab81462697e..539ad439de5 100644 --- a/packages/private/testing/src/utils.ts +++ b/packages/private/testing/src/utils.ts @@ -95,19 +95,20 @@ let savedRequestAnimationFrame: ((callback: FrameRequestCallback) => number) | u let savedNode: typeof Node | undefined = undefined; let requestAnimationFrameCount = 0; let domino: - | (typeof import('../../../platform-server/src/bundled-domino'))['default'] + | (typeof import('../../../platform-server/third_party/domino/bundled-domino'))['default'] | null | undefined = undefined; async function loadDominoOrNull(): Promise< - (typeof import('../../../platform-server/src/bundled-domino'))['default'] | null + (typeof import('../../../platform-server/third_party/domino/bundled-domino'))['default'] | null > { if (domino !== undefined) { return domino; } try { - return (domino = (await import('../../../platform-server/src/bundled-domino')).default); + return (domino = (await import('../../../platform-server/third_party/domino/bundled-domino')) + .default); } catch { return (domino = null); } diff --git a/tools/testing/BUILD.bazel b/tools/testing/BUILD.bazel index af071166150..974dd89a516 100644 --- a/tools/testing/BUILD.bazel +++ b/tools/testing/BUILD.bazel @@ -50,8 +50,8 @@ ts_project( "//packages/core", "//packages/core/testing", "//packages/platform-server", - "//packages/platform-server:bundled_domino_lib", "//packages/platform-server/testing", + "//packages/platform-server/third_party/domino:bundled_domino_lib", ], ) @@ -66,8 +66,8 @@ ts_project( "//packages/compiler", "//packages/core/testing", "//packages/platform-server", - "//packages/platform-server:bundled_domino_lib", "//packages/platform-server/testing", + "//packages/platform-server/third_party/domino:bundled_domino_lib", ], ) diff --git a/tools/testing/node_tests.init.mts b/tools/testing/node_tests.init.mts index 4eb3383e251..b70617a169c 100644 --- a/tools/testing/node_tests.init.mts +++ b/tools/testing/node_tests.init.mts @@ -19,7 +19,7 @@ import {NgModule, provideZonelessChangeDetection} from '@angular/core'; import {TestBed} from '@angular/core/testing'; import {ServerTestingModule, platformServerTesting} from '@angular/platform-server/testing'; import {ɵDominoAdapter as DominoAdapter} from '@angular/platform-server'; -import domino from '../../packages/platform-server/src/bundled-domino'; +import domino from '../../packages/platform-server/third_party/domino/bundled-domino'; @NgModule({ providers: [provideZonelessChangeDetection()], diff --git a/tools/testing/node_zoneless_tests.init.mts b/tools/testing/node_zoneless_tests.init.mts index 074f23910f2..1c29c8a58b8 100644 --- a/tools/testing/node_zoneless_tests.init.mts +++ b/tools/testing/node_zoneless_tests.init.mts @@ -16,7 +16,7 @@ import {TestBed} from '@angular/core/testing'; import {NgModule, provideZonelessChangeDetection} from '@angular/core'; import {ServerTestingModule, platformServerTesting} from '@angular/platform-server/testing'; import {ɵDominoAdapter as DominoAdapter} from '@angular/platform-server'; -import domino from '../../packages/platform-server/src/bundled-domino'; +import domino from '../../packages/platform-server/third_party/domino/bundled-domino'; @NgModule({ providers: [provideZonelessChangeDetection()],