ng-packagr 22.2.0-next.6 → 22.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (65) hide show
  1. package/LICENSE +1 -1
  2. package/package.json +3 -3
  3. package/src/cli/main.js +3 -36
  4. package/src/cli/main.js.map +1 -1
  5. package/src/lib/file-system/file-watcher.d.ts +2 -2
  6. package/src/lib/file-system/file-watcher.js +12 -42
  7. package/src/lib/file-system/file-watcher.js.map +1 -1
  8. package/src/lib/flatten/file-loader-plugin.js +71 -90
  9. package/src/lib/flatten/file-loader-plugin.js.map +1 -1
  10. package/src/lib/flatten/rolldown.js +15 -42
  11. package/src/lib/flatten/rolldown.js.map +1 -1
  12. package/src/lib/graph/build-graph.d.ts +13 -2
  13. package/src/lib/graph/build-graph.js +32 -3
  14. package/src/lib/graph/build-graph.js.map +1 -1
  15. package/src/lib/ng-package/discover-packages.js +44 -23
  16. package/src/lib/ng-package/discover-packages.js.map +1 -1
  17. package/src/lib/ng-package/entry-point/analyse-sources.transform.js +13 -46
  18. package/src/lib/ng-package/entry-point/analyse-sources.transform.js.map +1 -1
  19. package/src/lib/ng-package/entry-point/compile-ngc.transform.js +7 -57
  20. package/src/lib/ng-package/entry-point/compile-ngc.transform.js.map +1 -1
  21. package/src/lib/ng-package/entry-point/entry-point.js +7 -40
  22. package/src/lib/ng-package/entry-point/entry-point.js.map +1 -1
  23. package/src/lib/ng-package/entry-point/entry-point.transform.js +9 -39
  24. package/src/lib/ng-package/entry-point/entry-point.transform.js.map +1 -1
  25. package/src/lib/ng-package/entry-point/write-bundles.transform.js +5 -2
  26. package/src/lib/ng-package/entry-point/write-bundles.transform.js.map +1 -1
  27. package/src/lib/ng-package/entry-point/write-package.transform.js +17 -51
  28. package/src/lib/ng-package/entry-point/write-package.transform.js.map +1 -1
  29. package/src/lib/ng-package/nodes.d.ts +1 -0
  30. package/src/lib/ng-package/nodes.js +19 -4
  31. package/src/lib/ng-package/nodes.js.map +1 -1
  32. package/src/lib/ng-package/options.di.js +3 -3
  33. package/src/lib/ng-package/options.di.js.map +1 -1
  34. package/src/lib/ng-package/package.js +2 -35
  35. package/src/lib/ng-package/package.js.map +1 -1
  36. package/src/lib/ng-package/package.transform.js +157 -62
  37. package/src/lib/ng-package/package.transform.js.map +1 -1
  38. package/src/lib/ng-package/schema.d.ts +9 -0
  39. package/src/lib/ng-package/schema.js +17 -38
  40. package/src/lib/ng-package/schema.js.map +1 -1
  41. package/src/lib/ngc/compile-source-files.js +13 -53
  42. package/src/lib/ngc/compile-source-files.js.map +1 -1
  43. package/src/lib/styles/component-stylesheets.js +1 -1
  44. package/src/lib/styles/component-stylesheets.js.map +1 -1
  45. package/src/lib/styles/stylesheet-processor.d.ts +1 -0
  46. package/src/lib/styles/stylesheet-processor.js +26 -6
  47. package/src/lib/styles/stylesheet-processor.js.map +1 -1
  48. package/src/lib/styles/stylesheets/sass-language.d.ts +9 -0
  49. package/src/lib/styles/stylesheets/sass-language.js +41 -13
  50. package/src/lib/styles/stylesheets/sass-language.js.map +1 -1
  51. package/src/lib/ts/cache-compiler-host.js +8 -39
  52. package/src/lib/ts/cache-compiler-host.js.map +1 -1
  53. package/src/lib/ts/tsconfig.js +5 -5
  54. package/src/lib/ts/tsconfig.js.map +1 -1
  55. package/src/lib/utils/cache.js +2 -11
  56. package/src/lib/utils/cache.js.map +1 -1
  57. package/src/lib/utils/fs.js +1 -3
  58. package/src/lib/utils/fs.js.map +1 -1
  59. package/src/lib/utils/log.d.ts +9 -0
  60. package/src/lib/utils/log.js +8 -0
  61. package/src/lib/utils/log.js.map +1 -1
  62. package/src/lib/utils/package-json.js +8 -38
  63. package/src/lib/utils/package-json.js.map +1 -1
  64. package/src/lib/utils/path.js +3 -36
  65. package/src/lib/utils/path.js.map +1 -1
package/LICENSE CHANGED
@@ -1,6 +1,6 @@
1
1
  MIT License
2
2
 
3
- Copyright (c) 2017-2020 Alan Agius
3
+ Copyright (c) 2017-present Alan Agius
4
4
 
5
5
  Permission is hereby granted, free of charge, to any person obtaining a copy
6
6
  of this software and associated documentation files (the "Software"), to deal
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ng-packagr",
3
- "version": "22.2.0-next.6",
3
+ "version": "22.2.0",
4
4
  "description": "Compile and package Angular libraries in Angular Package Format (APF)",
5
5
  "keywords": [
6
6
  "apf",
@@ -16,7 +16,7 @@
16
16
  "engines": {
17
17
  "node": "^22.22.3 || ^24.15.0 || >=26.0.0"
18
18
  },
19
- "author": "David Herges <david@spektrakel.de>",
19
+ "author": "ng-packagr GitHub organization",
20
20
  "license": "MIT",
21
21
  "repository": {
22
22
  "type": "git",
@@ -53,7 +53,7 @@
53
53
  "tinyglobby": "^0.2.12"
54
54
  },
55
55
  "peerDependencies": {
56
- "@angular/compiler-cli": "^22.2.0-next",
56
+ "@angular/compiler-cli": "^22.0.0 || ^22.3.0-next",
57
57
  "tailwindcss": "^2.0.0 || ^3.0.0 || ^4.0.0",
58
58
  "tslib": "^2.3.0",
59
59
  "typescript": ">=6.0 <6.1"
package/src/cli/main.js CHANGED
@@ -1,44 +1,11 @@
1
1
  #!/usr/bin/env node
2
2
  "use strict";
3
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
4
- if (k2 === undefined) k2 = k;
5
- var desc = Object.getOwnPropertyDescriptor(m, k);
6
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
7
- desc = { enumerable: true, get: function() { return m[k]; } };
8
- }
9
- Object.defineProperty(o, k2, desc);
10
- }) : (function(o, m, k, k2) {
11
- if (k2 === undefined) k2 = k;
12
- o[k2] = m[k];
13
- }));
14
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
15
- Object.defineProperty(o, "default", { enumerable: true, value: v });
16
- }) : function(o, v) {
17
- o["default"] = v;
18
- });
19
- var __importStar = (this && this.__importStar) || (function () {
20
- var ownKeys = function(o) {
21
- ownKeys = Object.getOwnPropertyNames || function (o) {
22
- var ar = [];
23
- for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
24
- return ar;
25
- };
26
- return ownKeys(o);
27
- };
28
- return function (mod) {
29
- if (mod && mod.__esModule) return mod;
30
- var result = {};
31
- if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
32
- __setModuleDefault(result, mod);
33
- return result;
34
- };
35
- })();
36
3
  Object.defineProperty(exports, "__esModule", { value: true });
37
4
  const commander_1 = require("commander");
38
- const path = __importStar(require("path"));
5
+ const node_path_1 = require("node:path");
39
6
  const log_1 = require("../lib/utils/log");
40
7
  const public_api_1 = require("../public_api");
41
- const DEFAULT_PROJECT_PATH = path.resolve(process.cwd(), 'ng-package.json');
8
+ const DEFAULT_PROJECT_PATH = (0, node_path_1.resolve)(process.cwd(), 'ng-package.json');
42
9
  function parseProjectPath(parsed) {
43
10
  return parsed || DEFAULT_PROJECT_PATH;
44
11
  }
@@ -49,7 +16,7 @@ commander_1.program
49
16
  .option('-w, --watch', 'Watch for file changes')
50
17
  .option('--poll <interval>', 'Enable and define the file watching poll time period in milliseconds', x => +x)
51
18
  .option('-p, --project <path>', "Path to the 'ng-package.json' or 'package.json' file.", parseProjectPath, DEFAULT_PROJECT_PATH)
52
- .option('-c, --config <config>', 'Path to a tsconfig file.', (value) => value ? path.resolve(value) : undefined);
19
+ .option('-c, --config <config>', 'Path to a tsconfig file.', (value) => value ? (0, node_path_1.resolve)(value) : undefined);
53
20
  commander_1.program.on('option:version', () => {
54
21
  void (0, public_api_1.version)().then(() => process.exit(0));
55
22
  });
@@ -1 +1 @@
1
- {"version":3,"file":"main.js","sourceRoot":"","sources":["../../../src/cli/main.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,yCAAoC;AACpC,2CAA6B;AAC7B,0CAAyC;AACzC,8CAA0E;AAE1E,MAAM,oBAAoB,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,iBAAiB,CAAC,CAAC;AAE5E,SAAS,gBAAgB,CAAC,MAAc;IACtC,OAAO,MAAM,IAAI,oBAAoB,CAAC;AACxC,CAAC;AAED,mBAAO;KACJ,IAAI,CAAC,YAAY,CAAC;KAClB,wBAAwB,CAAC,KAAK,CAAC;KAC/B,MAAM,CAAC,eAAe,EAAE,qBAAqB,CAAC;KAC9C,MAAM,CAAC,aAAa,EAAE,wBAAwB,CAAC;KAC/C,MAAM,CAAC,mBAAmB,EAAE,sEAAsE,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;KAC5G,MAAM,CACL,sBAAsB,EACtB,uDAAuD,EACvD,gBAAgB,EAChB,oBAAoB,CACrB;KACA,MAAM,CAAC,uBAAuB,EAAE,0BAA0B,EAAE,CAAC,KAAyB,EAAE,EAAE,CACzF,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CACxC,CAAC;AAEJ,mBAAO,CAAC,EAAE,CAAC,gBAAgB,EAAE,GAAG,EAAE;IAChC,KAAK,IAAA,oBAAc,GAAE,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;AACpD,CAAC,CAAC,CAAC;AAEH,mBAAO,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;AAE5B,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,mBAAO,CAAC,IAAI,EAAE,CAAC;AAEjE,IAAI,CAAC,OAAO,EAAE,CAAC;IACb,IAAA,oBAAO,EAAC,kBAAK,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE;QACpE,IAAA,WAAK,EAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QACnB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC,CAAC,CAAC;AACL,CAAC","sourcesContent":["#!/usr/bin/env node\n\nimport { program } from 'commander';\nimport * as path from 'path';\nimport { error } from '../lib/utils/log';\nimport { build, execute, version as versionCommand } from '../public_api';\n\nconst DEFAULT_PROJECT_PATH = path.resolve(process.cwd(), 'ng-package.json');\n\nfunction parseProjectPath(parsed: string): string {\n return parsed || DEFAULT_PROJECT_PATH;\n}\n\nprogram\n .name('ng-packagr')\n .storeOptionsAsProperties(false)\n .option('-v, --version', 'Prints version info')\n .option('-w, --watch', 'Watch for file changes')\n .option('--poll <interval>', 'Enable and define the file watching poll time period in milliseconds', x => +x)\n .option(\n '-p, --project <path>',\n \"Path to the 'ng-package.json' or 'package.json' file.\",\n parseProjectPath,\n DEFAULT_PROJECT_PATH,\n )\n .option('-c, --config <config>', 'Path to a tsconfig file.', (value: string | undefined) =>\n value ? path.resolve(value) : undefined,\n );\n\nprogram.on('option:version', () => {\n void versionCommand().then(() => process.exit(0));\n});\n\nprogram.parse(process.argv);\n\nconst { config, project, watch, version, poll } = program.opts();\n\nif (!version) {\n execute(build, { config, project, watch: !!watch, poll }).catch(err => {\n error(err.message);\n process.exit(1);\n });\n}\n"]}
1
+ {"version":3,"file":"main.js","sourceRoot":"","sources":["../../../src/cli/main.ts"],"names":[],"mappings":";;;AAEA,yCAAoC;AACpC,yCAAoC;AACpC,0CAAyC;AACzC,8CAA0E;AAE1E,MAAM,oBAAoB,GAAG,IAAA,mBAAO,EAAC,OAAO,CAAC,GAAG,EAAE,EAAE,iBAAiB,CAAC,CAAC;AAEvE,SAAS,gBAAgB,CAAC,MAAc;IACtC,OAAO,MAAM,IAAI,oBAAoB,CAAC;AACxC,CAAC;AAED,mBAAO;KACJ,IAAI,CAAC,YAAY,CAAC;KAClB,wBAAwB,CAAC,KAAK,CAAC;KAC/B,MAAM,CAAC,eAAe,EAAE,qBAAqB,CAAC;KAC9C,MAAM,CAAC,aAAa,EAAE,wBAAwB,CAAC;KAC/C,MAAM,CAAC,mBAAmB,EAAE,sEAAsE,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;KAC5G,MAAM,CACL,sBAAsB,EACtB,uDAAuD,EACvD,gBAAgB,EAChB,oBAAoB,CACrB;KACA,MAAM,CAAC,uBAAuB,EAAE,0BAA0B,EAAE,CAAC,KAAyB,EAAE,EAAE,CACzF,KAAK,CAAC,CAAC,CAAC,IAAA,mBAAO,EAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CACnC,CAAC;AAEJ,mBAAO,CAAC,EAAE,CAAC,gBAAgB,EAAE,GAAG,EAAE;IAChC,KAAK,IAAA,oBAAc,GAAE,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;AACpD,CAAC,CAAC,CAAC;AAEH,mBAAO,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;AAE5B,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,mBAAO,CAAC,IAAI,EAAE,CAAC;AAEjE,IAAI,CAAC,OAAO,EAAE,CAAC;IACb,IAAA,oBAAO,EAAC,kBAAK,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE;QACpE,IAAA,WAAK,EAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QACnB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC,CAAC,CAAC;AACL,CAAC","sourcesContent":["#!/usr/bin/env node\n\nimport { program } from 'commander';\nimport { resolve } from 'node:path';\nimport { error } from '../lib/utils/log';\nimport { build, execute, version as versionCommand } from '../public_api';\n\nconst DEFAULT_PROJECT_PATH = resolve(process.cwd(), 'ng-package.json');\n\nfunction parseProjectPath(parsed: string): string {\n return parsed || DEFAULT_PROJECT_PATH;\n}\n\nprogram\n .name('ng-packagr')\n .storeOptionsAsProperties(false)\n .option('-v, --version', 'Prints version info')\n .option('-w, --watch', 'Watch for file changes')\n .option('--poll <interval>', 'Enable and define the file watching poll time period in milliseconds', x => +x)\n .option(\n '-p, --project <path>',\n \"Path to the 'ng-package.json' or 'package.json' file.\",\n parseProjectPath,\n DEFAULT_PROJECT_PATH,\n )\n .option('-c, --config <config>', 'Path to a tsconfig file.', (value: string | undefined) =>\n value ? resolve(value) : undefined,\n );\n\nprogram.on('option:version', () => {\n void versionCommand().then(() => process.exit(0));\n});\n\nprogram.parse(process.argv);\n\nconst { config, project, watch, version, poll } = program.opts();\n\nif (!version) {\n execute(build, { config, project, watch: !!watch, poll }).catch(err => {\n error(err.message);\n process.exit(1);\n });\n}\n"]}
@@ -1,4 +1,4 @@
1
- import * as chokidar from 'chokidar';
1
+ import { FSWatcher } from 'chokidar';
2
2
  import { Observable } from 'rxjs';
3
3
  import { BuildGraph } from '../graph/build-graph';
4
4
  import { FileCache } from './file-cache';
@@ -9,7 +9,7 @@ export interface FileChangedEvent {
9
9
  event: FileWatchEvent;
10
10
  }
11
11
  export declare function createFileWatch(basePaths: string | string[], ignoredPaths?: string[], poll?: number): {
12
- watcher: chokidar.FSWatcher;
12
+ watcher: FSWatcher;
13
13
  onFileChange: Observable<FileChangedEvent>;
14
14
  };
15
15
  /**
@@ -1,51 +1,21 @@
1
1
  "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || (function () {
19
- var ownKeys = function(o) {
20
- ownKeys = Object.getOwnPropertyNames || function (o) {
21
- var ar = [];
22
- for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
- return ar;
24
- };
25
- return ownKeys(o);
26
- };
27
- return function (mod) {
28
- if (mod && mod.__esModule) return mod;
29
- var result = {};
30
- if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
- __setModuleDefault(result, mod);
32
- return result;
33
- };
34
- })();
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
35
5
  Object.defineProperty(exports, "__esModule", { value: true });
36
6
  exports.createFileWatch = createFileWatch;
37
7
  exports.invalidateEntryPointsAndCacheOnFileChange = invalidateEntryPointsAndCacheOnFileChange;
38
- const chokidar = __importStar(require("chokidar"));
39
- const os_1 = require("os");
40
- const path = __importStar(require("path"));
8
+ const chokidar_1 = require("chokidar");
9
+ const node_os_1 = require("node:os");
10
+ const node_path_1 = require("node:path");
41
11
  const rxjs_1 = require("rxjs");
42
12
  const node_1 = require("../graph/node");
43
13
  const nodes_1 = require("../ng-package/nodes");
44
- const log = __importStar(require("../utils/log"));
14
+ const log_1 = __importDefault(require("../utils/log"));
45
15
  const path_1 = require("../utils/path");
46
16
  function createFileWatch(basePaths, ignoredPaths = [], poll) {
47
- log.debug(`Watching for changes: basePath: ${basePaths}, ignoredPaths: ${ignoredPaths}`);
48
- const watch = chokidar.watch([], {
17
+ log_1.default.debug(`Watching for changes: basePath: ${basePaths}, ignoredPaths: ${ignoredPaths}`);
18
+ const watch = (0, chokidar_1.watch)([], {
49
19
  ignoreInitial: true,
50
20
  ignored: [
51
21
  /\.map$/,
@@ -59,9 +29,9 @@ function createFileWatch(basePaths, ignoredPaths = [], poll) {
59
29
  usePolling: typeof poll === 'number' ? true : false,
60
30
  interval: typeof poll === 'number' ? poll : undefined,
61
31
  });
62
- const isLinux = (0, os_1.platform)() === 'linux';
32
+ const isLinux = (0, node_os_1.platform)() === 'linux';
63
33
  const handleFileChange = (event, filePath, observer) => {
64
- log.debug(`Watch: Path changed. Event: ${event}, Path: ${filePath}`);
34
+ log_1.default.debug(`Watch: Path changed. Event: ${event}, Path: ${filePath}`);
65
35
  if (isLinux) {
66
36
  // Workaround for Linux where chokidar will not handle future events
67
37
  // for files that were unlinked and immediately recreated.
@@ -73,7 +43,7 @@ function createFileWatch(basePaths, ignoredPaths = [], poll) {
73
43
  return;
74
44
  }
75
45
  observer.next({
76
- filePath: (0, path_1.ensureUnixPath)(path.resolve(filePath)),
46
+ filePath: (0, path_1.ensureUnixPath)((0, node_path_1.resolve)(filePath)),
77
47
  event,
78
48
  });
79
49
  };
@@ -1 +1 @@
1
- {"version":3,"file":"file-watcher.js","sourceRoot":"","sources":["../../../../src/lib/file-system/file-watcher.ts"],"names":[],"mappings":"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","sourcesContent":["import * as chokidar from 'chokidar';\nimport { platform } from 'os';\nimport * as path from 'path';\nimport { Observable, Observer } from 'rxjs';\nimport { BuildGraph } from '../graph/build-graph';\nimport { Node, STATE_PENDING } from '../graph/node';\nimport { fileUrl, fileUrlPath, isEntryPoint } from '../ng-package/nodes';\nimport * as log from '../utils/log';\nimport { ensureUnixPath } from '../utils/path';\nimport { FileCache } from './file-cache';\n\ntype AllFileWatchEvents = 'change' | 'unlink' | 'add' | 'unlinkDir' | 'addDir';\nexport type FileWatchEvent = Exclude<AllFileWatchEvents, 'unlinkDir' | 'addDir'>;\n\nexport interface FileChangedEvent {\n filePath: string;\n event: FileWatchEvent;\n}\n\nexport function createFileWatch(\n basePaths: string | string[],\n ignoredPaths: string[] = [],\n poll?: number,\n): {\n watcher: chokidar.FSWatcher;\n onFileChange: Observable<FileChangedEvent>;\n} {\n log.debug(`Watching for changes: basePath: ${basePaths}, ignoredPaths: ${ignoredPaths}`);\n\n const watch = chokidar.watch([], {\n ignoreInitial: true,\n ignored: [\n /\\.map$/,\n /.tsbuildinfo$/,\n file => {\n const normalizedPath = ensureUnixPath(file);\n\n return ignoredPaths.some(f => normalizedPath.startsWith(f));\n },\n ],\n persistent: true,\n usePolling: typeof poll === 'number' ? true : false,\n interval: typeof poll === 'number' ? poll : undefined,\n });\n\n const isLinux = platform() === 'linux';\n const handleFileChange = (event: AllFileWatchEvents, filePath: string, observer: Observer<FileChangedEvent>) => {\n log.debug(`Watch: Path changed. Event: ${event}, Path: ${filePath}`);\n\n if (isLinux) {\n // Workaround for Linux where chokidar will not handle future events\n // for files that were unlinked and immediately recreated.\n watch.unwatch(filePath);\n watch.add(filePath);\n }\n\n if (event === 'unlinkDir' || event === 'addDir') {\n // we don't need to trigger on directory removed or renamed as chokidar will fire the changes for each file\n return;\n }\n\n observer.next({\n filePath: ensureUnixPath(path.resolve(filePath)),\n event,\n });\n };\n\n return {\n watcher: watch,\n onFileChange: new Observable(observer => {\n watch.on('all', (event: AllFileWatchEvents, filePath: string) => handleFileChange(event, filePath, observer));\n\n // eslint-disable-next-line @typescript-eslint/no-misused-promises\n return () => watch.close();\n }),\n };\n}\n\n/**\n * Invalidates entry points and cache when specified files change.\n *\n * @returns - Returns `true` if any entry point was invalidated, otherwise `false`.\n */\nexport function invalidateEntryPointsAndCacheOnFileChange(\n graph: BuildGraph,\n files: string[],\n sourcesFileCache: FileCache,\n): boolean {\n let invalidatedEntryPoint = false;\n const allNodesToClean: Map<string, Node> = new Map();\n\n for (const filePath of files) {\n const changedFileUrl = fileUrl(filePath);\n const nodeToClean = graph.find(node => changedFileUrl === node.url);\n if (!nodeToClean) {\n continue;\n }\n\n allNodesToClean.set(filePath, nodeToClean);\n }\n\n // delete node that changes\n const potentialStylesResources = new Set<string>();\n for (const [filePath, nodeToClean] of allNodesToClean) {\n sourcesFileCache.delete(filePath);\n\n if (filePath.endsWith('.ts')) {\n continue;\n }\n\n // if a non ts file changes we need to clean up its direct dependees\n // this is mainly done for resources such as html and css\n potentialStylesResources.add(filePath);\n for (const dependees of nodeToClean.dependees) {\n const filePath = fileUrlPath(dependees.url);\n if (!filePath) {\n continue;\n }\n\n allNodesToClean.set(filePath, dependees);\n\n if (!filePath.endsWith('.ts')) {\n potentialStylesResources.add(filePath);\n }\n }\n }\n\n const entryPoints = graph.filter(isEntryPoint);\n for (const entryPoint of entryPoints) {\n let isDirty = false;\n if (potentialStylesResources.size > 0) {\n isDirty = !!entryPoint.cache.stylesheetProcessor?.invalidate(potentialStylesResources)?.length;\n }\n\n for (const [filePath, dependent] of allNodesToClean) {\n if (!entryPoint.dependents.has(dependent)) {\n continue;\n }\n\n entryPoint.cache.angularDiagnosticCache.delete(filePath);\n entryPoint.cache.declarationDiagnosticCache?.delete(filePath);\n entryPoint.cache.analyseSourcesFileCache.delete(filePath);\n isDirty = true;\n }\n\n if (isDirty) {\n entryPoint.state = STATE_PENDING;\n invalidatedEntryPoint = true;\n }\n }\n\n return invalidatedEntryPoint;\n}\n"]}
1
+ {"version":3,"file":"file-watcher.js","sourceRoot":"","sources":["../../../../src/lib/file-system/file-watcher.ts"],"names":[],"mappings":"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","sourcesContent":["import { FSWatcher, watch as chokidarWatch } from 'chokidar';\nimport { platform } from 'node:os';\nimport { resolve } from 'node:path';\nimport { Observable, Observer } from 'rxjs';\nimport { BuildGraph } from '../graph/build-graph';\nimport { Node, STATE_PENDING } from '../graph/node';\nimport { fileUrl, fileUrlPath, isEntryPoint } from '../ng-package/nodes';\nimport log from '../utils/log';\nimport { ensureUnixPath } from '../utils/path';\nimport { FileCache } from './file-cache';\n\ntype AllFileWatchEvents = 'change' | 'unlink' | 'add' | 'unlinkDir' | 'addDir';\nexport type FileWatchEvent = Exclude<AllFileWatchEvents, 'unlinkDir' | 'addDir'>;\n\nexport interface FileChangedEvent {\n filePath: string;\n event: FileWatchEvent;\n}\n\nexport function createFileWatch(\n basePaths: string | string[],\n ignoredPaths: string[] = [],\n poll?: number,\n): {\n watcher: FSWatcher;\n onFileChange: Observable<FileChangedEvent>;\n} {\n log.debug(`Watching for changes: basePath: ${basePaths}, ignoredPaths: ${ignoredPaths}`);\n\n const watch = chokidarWatch([], {\n ignoreInitial: true,\n ignored: [\n /\\.map$/,\n /.tsbuildinfo$/,\n file => {\n const normalizedPath = ensureUnixPath(file);\n\n return ignoredPaths.some(f => normalizedPath.startsWith(f));\n },\n ],\n persistent: true,\n usePolling: typeof poll === 'number' ? true : false,\n interval: typeof poll === 'number' ? poll : undefined,\n });\n\n const isLinux = platform() === 'linux';\n const handleFileChange = (event: AllFileWatchEvents, filePath: string, observer: Observer<FileChangedEvent>) => {\n log.debug(`Watch: Path changed. Event: ${event}, Path: ${filePath}`);\n\n if (isLinux) {\n // Workaround for Linux where chokidar will not handle future events\n // for files that were unlinked and immediately recreated.\n watch.unwatch(filePath);\n watch.add(filePath);\n }\n\n if (event === 'unlinkDir' || event === 'addDir') {\n // we don't need to trigger on directory removed or renamed as chokidar will fire the changes for each file\n return;\n }\n\n observer.next({\n filePath: ensureUnixPath(resolve(filePath)),\n event,\n });\n };\n\n return {\n watcher: watch,\n onFileChange: new Observable(observer => {\n watch.on('all', (event: AllFileWatchEvents, filePath: string) => handleFileChange(event, filePath, observer));\n\n // eslint-disable-next-line @typescript-eslint/no-misused-promises\n return () => watch.close();\n }),\n };\n}\n\n/**\n * Invalidates entry points and cache when specified files change.\n *\n * @returns - Returns `true` if any entry point was invalidated, otherwise `false`.\n */\nexport function invalidateEntryPointsAndCacheOnFileChange(\n graph: BuildGraph,\n files: string[],\n sourcesFileCache: FileCache,\n): boolean {\n let invalidatedEntryPoint = false;\n const allNodesToClean: Map<string, Node> = new Map();\n\n for (const filePath of files) {\n const changedFileUrl = fileUrl(filePath);\n const nodeToClean = graph.find(node => changedFileUrl === node.url);\n if (!nodeToClean) {\n continue;\n }\n\n allNodesToClean.set(filePath, nodeToClean);\n }\n\n // delete node that changes\n const potentialStylesResources = new Set<string>();\n for (const [filePath, nodeToClean] of allNodesToClean) {\n sourcesFileCache.delete(filePath);\n\n if (filePath.endsWith('.ts')) {\n continue;\n }\n\n // if a non ts file changes we need to clean up its direct dependees\n // this is mainly done for resources such as html and css\n potentialStylesResources.add(filePath);\n for (const dependees of nodeToClean.dependees) {\n const filePath = fileUrlPath(dependees.url);\n if (!filePath) {\n continue;\n }\n\n allNodesToClean.set(filePath, dependees);\n\n if (!filePath.endsWith('.ts')) {\n potentialStylesResources.add(filePath);\n }\n }\n }\n\n const entryPoints = graph.filter(isEntryPoint);\n for (const entryPoint of entryPoints) {\n let isDirty = false;\n if (potentialStylesResources.size > 0) {\n isDirty = !!entryPoint.cache.stylesheetProcessor?.invalidate(potentialStylesResources)?.length;\n }\n\n for (const [filePath, dependent] of allNodesToClean) {\n if (!entryPoint.dependents.has(dependent)) {\n continue;\n }\n\n entryPoint.cache.angularDiagnosticCache.delete(filePath);\n entryPoint.cache.declarationDiagnosticCache?.delete(filePath);\n entryPoint.cache.analyseSourcesFileCache.delete(filePath);\n isDirty = true;\n }\n\n if (isDirty) {\n entryPoint.state = STATE_PENDING;\n invalidatedEntryPoint = true;\n }\n }\n\n return invalidatedEntryPoint;\n}\n"]}
@@ -1,110 +1,91 @@
1
1
  "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || (function () {
19
- var ownKeys = function(o) {
20
- ownKeys = Object.getOwnPropertyNames || function (o) {
21
- var ar = [];
22
- for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
- return ar;
24
- };
25
- return ownKeys(o);
26
- };
27
- return function (mod) {
28
- if (mod && mod.__esModule) return mod;
29
- var result = {};
30
- if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
- __setModuleDefault(result, mod);
32
- return result;
33
- };
34
- })();
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
35
5
  Object.defineProperty(exports, "__esModule", { value: true });
36
6
  exports.fileLoaderPlugin = fileLoaderPlugin;
37
7
  const node_path_1 = require("node:path");
38
- const log = __importStar(require("../utils/log"));
8
+ const log_1 = __importDefault(require("../utils/log"));
39
9
  const path_1 = require("../utils/path");
40
10
  /**
41
11
  * Loads a file and its map.
42
12
  */
43
13
  function fileLoaderPlugin(fileCache, resolutionExtensions, dtsMode) {
44
- return {
45
- name: 'file-loader',
46
- resolveId: function (id, importer) {
47
- let resolved;
48
- if (importer) {
49
- if (id[0] !== '.' && id[0] !== '/' && !(0, node_path_1.isAbsolute)(id)) {
50
- return;
51
- }
52
- resolved = (0, path_1.ensureUnixPath)((0, node_path_1.resolve)((0, node_path_1.dirname)(importer), id));
14
+ const resolutionCache = new Map();
15
+ function resolveFile(id, importer) {
16
+ let resolved;
17
+ if (importer) {
18
+ if (id[0] !== '.' && id[0] !== '/' && !(0, node_path_1.isAbsolute)(id)) {
19
+ return;
53
20
  }
54
- else {
55
- resolved = (0, path_1.ensureUnixPath)(id);
21
+ resolved = (0, path_1.ensureUnixPath)((0, node_path_1.resolve)((0, node_path_1.dirname)(importer), id));
22
+ }
23
+ else {
24
+ resolved = (0, path_1.ensureUnixPath)(id);
25
+ }
26
+ if (fileCache.has(resolved)) {
27
+ return resolved;
28
+ }
29
+ const ext = (0, node_path_1.extname)(resolved);
30
+ const base = resolved.slice(0, -ext.length);
31
+ if (dtsMode) {
32
+ let potential;
33
+ switch (ext) {
34
+ case '.js':
35
+ case '.ts':
36
+ potential = `${base}.d.ts`;
37
+ break;
38
+ case '.mjs':
39
+ case '.mts':
40
+ potential = `${base}.d.mts`;
41
+ break;
42
+ case '.cjs':
43
+ case '.cts':
44
+ potential = `${base}.d.cts`;
45
+ break;
56
46
  }
57
- if (fileCache.has(resolved)) {
58
- return resolved;
47
+ if (potential && fileCache.has(potential)) {
48
+ return potential;
59
49
  }
60
- const ext = (0, node_path_1.extname)(resolved);
61
- const base = resolved.slice(0, -ext.length);
62
- if (dtsMode) {
63
- let potential;
64
- switch (ext) {
65
- case '.js':
66
- case '.ts':
67
- potential = `${base}.d.ts`;
68
- break;
69
- case '.mjs':
70
- case '.mts':
71
- potential = `${base}.d.mts`;
72
- break;
73
- case '.cjs':
74
- case '.cts':
75
- potential = `${base}.d.cts`;
76
- break;
77
- }
78
- if (potential && fileCache.has(potential)) {
79
- return potential;
80
- }
50
+ }
51
+ else {
52
+ let potential;
53
+ switch (ext) {
54
+ case '.ts':
55
+ potential = `${base}.js`;
56
+ break;
57
+ case '.mts':
58
+ potential = `${base}.mjs`;
59
+ break;
60
+ case '.cts':
61
+ potential = `${base}.cjs`;
62
+ break;
81
63
  }
82
- else {
83
- let potential;
84
- switch (ext) {
85
- case '.ts':
86
- potential = `${base}.js`;
87
- break;
88
- case '.mts':
89
- potential = `${base}.mjs`;
90
- break;
91
- case '.cts':
92
- potential = `${base}.cjs`;
93
- break;
94
- }
95
- if (potential && fileCache.has(potential)) {
96
- return potential;
97
- }
64
+ if (potential && fileCache.has(potential)) {
65
+ return potential;
98
66
  }
99
- for (const suffix of resolutionExtensions) {
100
- const potential = resolved + suffix;
101
- if (fileCache.has(potential)) {
102
- return potential;
103
- }
67
+ }
68
+ for (const suffix of resolutionExtensions) {
69
+ const potential = resolved + suffix;
70
+ if (fileCache.has(potential)) {
71
+ return potential;
72
+ }
73
+ }
74
+ }
75
+ return {
76
+ name: 'file-loader',
77
+ resolveId: function (id, importer) {
78
+ const cacheKey = importer ? `${importer}\0${id}` : id;
79
+ const cached = resolutionCache.get(cacheKey);
80
+ if (cached !== undefined) {
81
+ return cached ?? undefined;
104
82
  }
83
+ const resolved = resolveFile(id, importer);
84
+ resolutionCache.set(cacheKey, resolved ?? null);
85
+ return resolved;
105
86
  },
106
87
  load: function (id) {
107
- log.debug(`file-loader ${id}`);
88
+ log_1.default.debug(`file-loader ${id}`);
108
89
  const data = fileCache.get(id);
109
90
  if (!data) {
110
91
  throw new Error(`Could not load '${id}' from memory.`);
@@ -1 +1 @@
1
- {"version":3,"file":"file-loader-plugin.js","sourceRoot":"","sources":["../../../../src/lib/flatten/file-loader-plugin.ts"],"names":[],"mappings":"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","sourcesContent":["import { dirname, extname, isAbsolute, resolve } from 'node:path';\nimport type { Plugin } from 'rolldown';\nimport { OutputFileCache } from '../ng-package/nodes';\n\nimport * as log from '../utils/log';\nimport { ensureUnixPath } from '../utils/path';\n\n/**\n * Loads a file and its map.\n */\nexport function fileLoaderPlugin(fileCache: OutputFileCache, resolutionExtensions: string[], dtsMode: boolean): Plugin {\n return {\n name: 'file-loader',\n resolveId: function (id, importer) {\n let resolved: string;\n if (importer) {\n if (id[0] !== '.' && id[0] !== '/' && !isAbsolute(id)) {\n return;\n }\n\n resolved = ensureUnixPath(resolve(dirname(importer), id));\n } else {\n resolved = ensureUnixPath(id);\n }\n\n if (fileCache.has(resolved)) {\n return resolved;\n }\n\n const ext = extname(resolved);\n const base = resolved.slice(0, -ext.length);\n if (dtsMode) {\n let potential: string | undefined;\n switch (ext) {\n case '.js':\n case '.ts':\n potential = `${base}.d.ts`;\n break;\n case '.mjs':\n case '.mts':\n potential = `${base}.d.mts`;\n break;\n case '.cjs':\n case '.cts':\n potential = `${base}.d.cts`;\n break;\n }\n\n if (potential && fileCache.has(potential)) {\n return potential;\n }\n } else {\n let potential: string | undefined;\n switch (ext) {\n case '.ts':\n potential = `${base}.js`;\n break;\n case '.mts':\n potential = `${base}.mjs`;\n break;\n case '.cts':\n potential = `${base}.cjs`;\n break;\n }\n\n if (potential && fileCache.has(potential)) {\n return potential;\n }\n }\n\n for (const suffix of resolutionExtensions) {\n const potential = resolved + suffix;\n if (fileCache.has(potential)) {\n return potential;\n }\n }\n },\n load: function (id) {\n log.debug(`file-loader ${id}`);\n const data = fileCache.get(id);\n if (!data) {\n throw new Error(`Could not load '${id}' from memory.`);\n }\n\n return {\n code: data.content,\n map: fileCache.get(`${id}.map`)?.content,\n };\n },\n };\n}\n"]}
1
+ {"version":3,"file":"file-loader-plugin.js","sourceRoot":"","sources":["../../../../src/lib/flatten/file-loader-plugin.ts"],"names":[],"mappings":";;;;;AAUA,4CA+FC;AAzGD,yCAAkE;AAIlE,uDAA+B;AAC/B,wCAA+C;AAE/C;;GAEG;AACH,SAAgB,gBAAgB,CAAC,SAA0B,EAAE,oBAA8B,EAAE,OAAgB;IAC3G,MAAM,eAAe,GAAG,IAAI,GAAG,EAAyB,CAAC;IAEzD,SAAS,WAAW,CAAC,EAAU,EAAE,QAAiB;QAChD,IAAI,QAAgB,CAAC;QACrB,IAAI,QAAQ,EAAE,CAAC;YACb,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC,IAAA,sBAAU,EAAC,EAAE,CAAC,EAAE,CAAC;gBACtD,OAAO;YACT,CAAC;YAED,QAAQ,GAAG,IAAA,qBAAc,EAAC,IAAA,mBAAO,EAAC,IAAA,mBAAO,EAAC,QAAQ,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;QAC5D,CAAC;aAAM,CAAC;YACN,QAAQ,GAAG,IAAA,qBAAc,EAAC,EAAE,CAAC,CAAC;QAChC,CAAC;QAED,IAAI,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC5B,OAAO,QAAQ,CAAC;QAClB,CAAC;QAED,MAAM,GAAG,GAAG,IAAA,mBAAO,EAAC,QAAQ,CAAC,CAAC;QAC9B,MAAM,IAAI,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAC5C,IAAI,OAAO,EAAE,CAAC;YACZ,IAAI,SAA6B,CAAC;YAClC,QAAQ,GAAG,EAAE,CAAC;gBACZ,KAAK,KAAK,CAAC;gBACX,KAAK,KAAK;oBACR,SAAS,GAAG,GAAG,IAAI,OAAO,CAAC;oBAC3B,MAAM;gBACR,KAAK,MAAM,CAAC;gBACZ,KAAK,MAAM;oBACT,SAAS,GAAG,GAAG,IAAI,QAAQ,CAAC;oBAC5B,MAAM;gBACR,KAAK,MAAM,CAAC;gBACZ,KAAK,MAAM;oBACT,SAAS,GAAG,GAAG,IAAI,QAAQ,CAAC;oBAC5B,MAAM;YACV,CAAC;YAED,IAAI,SAAS,IAAI,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;gBAC1C,OAAO,SAAS,CAAC;YACnB,CAAC;QACH,CAAC;aAAM,CAAC;YACN,IAAI,SAA6B,CAAC;YAClC,QAAQ,GAAG,EAAE,CAAC;gBACZ,KAAK,KAAK;oBACR,SAAS,GAAG,GAAG,IAAI,KAAK,CAAC;oBACzB,MAAM;gBACR,KAAK,MAAM;oBACT,SAAS,GAAG,GAAG,IAAI,MAAM,CAAC;oBAC1B,MAAM;gBACR,KAAK,MAAM;oBACT,SAAS,GAAG,GAAG,IAAI,MAAM,CAAC;oBAC1B,MAAM;YACV,CAAC;YAED,IAAI,SAAS,IAAI,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;gBAC1C,OAAO,SAAS,CAAC;YACnB,CAAC;QACH,CAAC;QAED,KAAK,MAAM,MAAM,IAAI,oBAAoB,EAAE,CAAC;YAC1C,MAAM,SAAS,GAAG,QAAQ,GAAG,MAAM,CAAC;YACpC,IAAI,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;gBAC7B,OAAO,SAAS,CAAC;YACnB,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO;QACL,IAAI,EAAE,aAAa;QACnB,SAAS,EAAE,UAAU,EAAE,EAAE,QAAQ;YAC/B,MAAM,QAAQ,GAAG,QAAQ,CAAC,CAAC,CAAC,GAAG,QAAQ,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACtD,MAAM,MAAM,GAAG,eAAe,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YAC7C,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;gBACzB,OAAO,MAAM,IAAI,SAAS,CAAC;YAC7B,CAAC;YAED,MAAM,QAAQ,GAAG,WAAW,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC;YAC3C,eAAe,CAAC,GAAG,CAAC,QAAQ,EAAE,QAAQ,IAAI,IAAI,CAAC,CAAC;YAEhD,OAAO,QAAQ,CAAC;QAClB,CAAC;QACD,IAAI,EAAE,UAAU,EAAE;YAChB,aAAG,CAAC,KAAK,CAAC,eAAe,EAAE,EAAE,CAAC,CAAC;YAC/B,MAAM,IAAI,GAAG,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAC/B,IAAI,CAAC,IAAI,EAAE,CAAC;gBACV,MAAM,IAAI,KAAK,CAAC,mBAAmB,EAAE,gBAAgB,CAAC,CAAC;YACzD,CAAC;YAED,OAAO;gBACL,IAAI,EAAE,IAAI,CAAC,OAAO;gBAClB,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,EAAE,OAAO;aACzC,CAAC;QACJ,CAAC;KACF,CAAC;AACJ,CAAC","sourcesContent":["import { dirname, extname, isAbsolute, resolve } from 'node:path';\nimport type { Plugin } from 'rolldown';\nimport { OutputFileCache } from '../ng-package/nodes';\n\nimport log from '../utils/log';\nimport { ensureUnixPath } from '../utils/path';\n\n/**\n * Loads a file and its map.\n */\nexport function fileLoaderPlugin(fileCache: OutputFileCache, resolutionExtensions: string[], dtsMode: boolean): Plugin {\n const resolutionCache = new Map<string, string | null>();\n\n function resolveFile(id: string, importer?: string): string | undefined {\n let resolved: string;\n if (importer) {\n if (id[0] !== '.' && id[0] !== '/' && !isAbsolute(id)) {\n return;\n }\n\n resolved = ensureUnixPath(resolve(dirname(importer), id));\n } else {\n resolved = ensureUnixPath(id);\n }\n\n if (fileCache.has(resolved)) {\n return resolved;\n }\n\n const ext = extname(resolved);\n const base = resolved.slice(0, -ext.length);\n if (dtsMode) {\n let potential: string | undefined;\n switch (ext) {\n case '.js':\n case '.ts':\n potential = `${base}.d.ts`;\n break;\n case '.mjs':\n case '.mts':\n potential = `${base}.d.mts`;\n break;\n case '.cjs':\n case '.cts':\n potential = `${base}.d.cts`;\n break;\n }\n\n if (potential && fileCache.has(potential)) {\n return potential;\n }\n } else {\n let potential: string | undefined;\n switch (ext) {\n case '.ts':\n potential = `${base}.js`;\n break;\n case '.mts':\n potential = `${base}.mjs`;\n break;\n case '.cts':\n potential = `${base}.cjs`;\n break;\n }\n\n if (potential && fileCache.has(potential)) {\n return potential;\n }\n }\n\n for (const suffix of resolutionExtensions) {\n const potential = resolved + suffix;\n if (fileCache.has(potential)) {\n return potential;\n }\n }\n }\n\n return {\n name: 'file-loader',\n resolveId: function (id, importer) {\n const cacheKey = importer ? `${importer}\\0${id}` : id;\n const cached = resolutionCache.get(cacheKey);\n if (cached !== undefined) {\n return cached ?? undefined;\n }\n\n const resolved = resolveFile(id, importer);\n resolutionCache.set(cacheKey, resolved ?? null);\n\n return resolved;\n },\n load: function (id) {\n log.debug(`file-loader ${id}`);\n const data = fileCache.get(id);\n if (!data) {\n throw new Error(`Could not load '${id}' from memory.`);\n }\n\n return {\n code: data.content,\n map: fileCache.get(`${id}.map`)?.content,\n };\n },\n };\n}\n"]}
@@ -1,56 +1,26 @@
1
1
  "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || (function () {
19
- var ownKeys = function(o) {
20
- ownKeys = Object.getOwnPropertyNames || function (o) {
21
- var ar = [];
22
- for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
- return ar;
24
- };
25
- return ownKeys(o);
26
- };
27
- return function (mod) {
28
- if (mod && mod.__esModule) return mod;
29
- var result = {};
30
- if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
- __setModuleDefault(result, mod);
32
- return result;
33
- };
34
- })();
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
35
5
  Object.defineProperty(exports, "__esModule", { value: true });
36
6
  exports.rolldownBundleFile = rolldownBundleFile;
37
- const path = __importStar(require("node:path"));
7
+ const node_path_1 = require("node:path");
38
8
  const rolldown_1 = require("rolldown");
39
9
  const rolldown_plugin_dts_1 = require("rolldown-plugin-dts");
40
- const log = __importStar(require("../utils/log"));
10
+ const log_1 = __importDefault(require("../utils/log"));
41
11
  const file_loader_plugin_1 = require("./file-loader-plugin");
42
12
  /** Runs rolldown over the given entry file, writes a bundle file. */
43
13
  async function rolldownBundleFile(opts) {
44
- log.debug(`rolldown ${opts.entry} to ${opts.dir}`);
14
+ log_1.default.debug(`rolldown ${opts.entry} to ${opts.dir}`);
45
15
  const dtsMode = opts.entry.endsWith('.d.ts');
46
16
  let outExtension;
47
17
  let plugins;
48
- const jail = path.dirname(opts.entry);
18
+ const jail = (0, node_path_1.dirname)(opts.entry);
49
19
  if (dtsMode) {
50
20
  outExtension = '.d.ts';
51
21
  plugins = [
52
22
  (0, file_loader_plugin_1.fileLoaderPlugin)(opts.fileCache, ['.d.ts', '/index.d.ts'], dtsMode),
53
- (0, rolldown_plugin_dts_1.dts)({ generator: 'oxc', sourcemap: opts.sourcemap }),
23
+ (0, rolldown_plugin_dts_1.dts)({ dtsInput: true, tsconfig: false, generator: 'oxc', sourcemap: opts.sourcemap }),
54
24
  ];
55
25
  }
56
26
  else {
@@ -63,6 +33,9 @@ async function rolldownBundleFile(opts) {
63
33
  external: (moduleId, parentId) => isExternalDependency(moduleId, parentId, jail),
64
34
  input: opts.entry,
65
35
  plugins,
36
+ checks: {
37
+ circularDependency: false,
38
+ },
66
39
  onwarn: warning => {
67
40
  switch (warning.code) {
68
41
  case 'CIRCULAR_DEPENDENCY':
@@ -71,7 +44,7 @@ async function rolldownBundleFile(opts) {
71
44
  case 'EMPTY_BUNDLE':
72
45
  break;
73
46
  default:
74
- log.warn(warning.message);
47
+ log_1.default.warn(warning.message);
75
48
  break;
76
49
  }
77
50
  },
@@ -97,7 +70,7 @@ async function rolldownBundleFile(opts) {
97
70
  sourcemap: opts.sourcemap,
98
71
  comments: {
99
72
  legal: true,
100
- annotation: true,
73
+ annotation: !dtsMode,
101
74
  jsdoc: dtsMode,
102
75
  },
103
76
  });
@@ -110,9 +83,9 @@ async function rolldownBundleFile(opts) {
110
83
  function isExternalDependency(moduleId, parentId, jail) {
111
84
  // more information about why we don't check for 'node_modules' path
112
85
  // https://github.com/rollup/rollup-plugin-node-resolve/issues/110#issuecomment-350353632
113
- if (moduleId[0] === '.' || moduleId[0] === '/' || path.isAbsolute(moduleId)) {
86
+ if (moduleId[0] === '.' || moduleId[0] === '/' || (0, node_path_1.isAbsolute)(moduleId)) {
114
87
  // if it's either 'absolute', marked to embed, starts with a '.' or '/' or is the umd bundle and is tslib
115
- return !parentId || !path.join(parentId, moduleId).startsWith(jail);
88
+ return !parentId || !(0, node_path_1.join)(parentId, moduleId).startsWith(jail);
116
89
  }
117
90
  return true;
118
91
  }
@@ -1 +1 @@
1
- {"version":3,"file":"rolldown.js","sourceRoot":"","sources":["../../../../src/lib/flatten/rolldown.ts"],"names":[],"mappings":"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","sourcesContent":["import * as path from 'node:path';\nimport { type OutputAsset, type OutputChunk, type RolldownPluginOption, rolldown } from 'rolldown';\nimport { dts } from 'rolldown-plugin-dts';\nimport { OutputFileCache } from '../ng-package/nodes';\nimport * as log from '../utils/log';\nimport { fileLoaderPlugin } from './file-loader-plugin';\n\n/**\n * Options used in `ng-packagr` for writing flat bundle files.\n *\n * These options are passed through to rolldown.\n */\nexport interface RolldownOptions {\n moduleName: string;\n entry: string;\n entryName: string;\n dir: string;\n fileCache: OutputFileCache;\n sourcemap: boolean;\n}\n\n/** Runs rolldown over the given entry file, writes a bundle file. */\nexport async function rolldownBundleFile(opts: RolldownOptions): Promise<{ files: (OutputChunk | OutputAsset)[] }> {\n log.debug(`rolldown ${opts.entry} to ${opts.dir}`);\n const dtsMode = opts.entry.endsWith('.d.ts');\n let outExtension: string;\n let plugins: RolldownPluginOption[];\n const jail = path.dirname(opts.entry);\n\n if (dtsMode) {\n outExtension = '.d.ts';\n plugins = [\n fileLoaderPlugin(opts.fileCache, ['.d.ts', '/index.d.ts'], dtsMode),\n dts({ generator: 'oxc', sourcemap: opts.sourcemap }),\n ];\n } else {\n outExtension = '.mjs';\n plugins = [fileLoaderPlugin(opts.fileCache, ['.js', '/index.js'], dtsMode)];\n }\n\n // Create the bundle\n const bundle = await rolldown({\n context: 'this',\n external: (moduleId, parentId) => isExternalDependency(moduleId, parentId, jail),\n input: opts.entry,\n plugins,\n onwarn: warning => {\n switch (warning.code) {\n case 'CIRCULAR_DEPENDENCY':\n case 'UNUSED_EXTERNAL_IMPORT':\n case 'THIS_IS_UNDEFINED':\n case 'EMPTY_BUNDLE':\n break;\n\n default:\n log.warn(warning.message);\n break;\n }\n },\n experimental: {\n attachDebugInfo: 'none',\n },\n resolve: {\n symlinks: false,\n },\n // Disable treeshaking when generating bundles\n // see: https://github.com/angular/angular/pull/32069\n treeshake: false,\n });\n\n // Output the bundle to disk\n const output = await bundle.write({\n name: opts.moduleName,\n format: 'es',\n dir: opts.dir,\n hoistTransitiveImports: false,\n chunkFileNames: `${opts.entryName}-[name]-[hash]${outExtension}`,\n entryFileNames: opts.entryName + outExtension,\n banner: '',\n sourcemap: opts.sourcemap,\n comments: {\n legal: true,\n annotation: true,\n jsdoc: dtsMode,\n },\n });\n\n // Close the bundle to let plugins clean up their external processes or services\n await bundle.close();\n\n return {\n files: output.output,\n };\n}\n\nfunction isExternalDependency(moduleId: string, parentId: string | undefined, jail: string): boolean {\n // more information about why we don't check for 'node_modules' path\n // https://github.com/rollup/rollup-plugin-node-resolve/issues/110#issuecomment-350353632\n if (moduleId[0] === '.' || moduleId[0] === '/' || path.isAbsolute(moduleId)) {\n // if it's either 'absolute', marked to embed, starts with a '.' or '/' or is the umd bundle and is tslib\n return !parentId || !path.join(parentId, moduleId).startsWith(jail);\n }\n\n return true;\n}\n"]}
1
+ {"version":3,"file":"rolldown.js","sourceRoot":"","sources":["../../../../src/lib/flatten/rolldown.ts"],"names":[],"mappings":"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","sourcesContent":["import { dirname, isAbsolute, join } from 'node:path';\nimport { type OutputAsset, type OutputChunk, type RolldownPluginOption, rolldown } from 'rolldown';\nimport { dts } from 'rolldown-plugin-dts';\nimport { OutputFileCache } from '../ng-package/nodes';\nimport log from '../utils/log';\nimport { fileLoaderPlugin } from './file-loader-plugin';\n\n/**\n * Options used in `ng-packagr` for writing flat bundle files.\n *\n * These options are passed through to rolldown.\n */\nexport interface RolldownOptions {\n moduleName: string;\n entry: string;\n entryName: string;\n dir: string;\n fileCache: OutputFileCache;\n sourcemap: boolean;\n}\n\n/** Runs rolldown over the given entry file, writes a bundle file. */\nexport async function rolldownBundleFile(opts: RolldownOptions): Promise<{ files: (OutputChunk | OutputAsset)[] }> {\n log.debug(`rolldown ${opts.entry} to ${opts.dir}`);\n const dtsMode = opts.entry.endsWith('.d.ts');\n let outExtension: string;\n let plugins: RolldownPluginOption[];\n const jail = dirname(opts.entry);\n\n if (dtsMode) {\n outExtension = '.d.ts';\n plugins = [\n fileLoaderPlugin(opts.fileCache, ['.d.ts', '/index.d.ts'], dtsMode),\n dts({ dtsInput: true, tsconfig: false, generator: 'oxc', sourcemap: opts.sourcemap }),\n ];\n } else {\n outExtension = '.mjs';\n plugins = [fileLoaderPlugin(opts.fileCache, ['.js', '/index.js'], dtsMode)];\n }\n\n // Create the bundle\n const bundle = await rolldown({\n context: 'this',\n external: (moduleId, parentId) => isExternalDependency(moduleId, parentId, jail),\n input: opts.entry,\n plugins,\n checks: {\n circularDependency: false,\n },\n onwarn: warning => {\n switch (warning.code) {\n case 'CIRCULAR_DEPENDENCY':\n case 'UNUSED_EXTERNAL_IMPORT':\n case 'THIS_IS_UNDEFINED':\n case 'EMPTY_BUNDLE':\n break;\n\n default:\n log.warn(warning.message);\n break;\n }\n },\n experimental: {\n attachDebugInfo: 'none',\n },\n resolve: {\n symlinks: false,\n },\n // Disable treeshaking when generating bundles\n // see: https://github.com/angular/angular/pull/32069\n treeshake: false,\n });\n\n // Output the bundle to disk\n const output = await bundle.write({\n name: opts.moduleName,\n format: 'es',\n dir: opts.dir,\n hoistTransitiveImports: false,\n chunkFileNames: `${opts.entryName}-[name]-[hash]${outExtension}`,\n entryFileNames: opts.entryName + outExtension,\n banner: '',\n sourcemap: opts.sourcemap,\n comments: {\n legal: true,\n annotation: !dtsMode,\n jsdoc: dtsMode,\n },\n });\n\n // Close the bundle to let plugins clean up their external processes or services\n await bundle.close();\n\n return {\n files: output.output,\n };\n}\n\nfunction isExternalDependency(moduleId: string, parentId: string | undefined, jail: string): boolean {\n // more information about why we don't check for 'node_modules' path\n // https://github.com/rollup/rollup-plugin-node-resolve/issues/110#issuecomment-350353632\n if (moduleId[0] === '.' || moduleId[0] === '/' || isAbsolute(moduleId)) {\n // if it's either 'absolute', marked to embed, starts with a '.' or '/' or is the umd bundle and is tslib\n return !parentId || !join(parentId, moduleId).startsWith(jail);\n }\n\n return true;\n}\n"]}
@@ -18,8 +18,11 @@ export interface Traversable<T> {
18
18
  * Technically, it's implemented as a map-like collection with references between map entries.
19
19
  */
20
20
  export declare class BuildGraph implements Traversable<Node> {
21
- private store;
22
- watcher?: FSWatcher;
21
+ readonly store: Map<string, Node>;
22
+ private _watcher?;
23
+ constructor(store?: Map<string, Node>);
24
+ get watcher(): FSWatcher | undefined;
25
+ set watcher(watcher: FSWatcher | undefined);
23
26
  put(value: Node | Node[]): this;
24
27
  private insert;
25
28
  get(url: string): Node;
@@ -31,3 +34,11 @@ export declare class BuildGraph implements Traversable<Node> {
31
34
  find<T extends Node = Node>(by: ComplexPredicate<Node, T>): T | undefined;
32
35
  get size(): number;
33
36
  }
37
+ export declare class ScopedBuildGraph<T extends Node = Node> extends BuildGraph {
38
+ readonly parentGraph: BuildGraph;
39
+ readonly activeEntryPoint: T;
40
+ constructor(parentGraph: BuildGraph, activeEntryPoint: T);
41
+ get watcher(): FSWatcher | undefined;
42
+ set watcher(watcher: FSWatcher | undefined);
43
+ }
44
+ export declare function isScopedBuildGraph<T extends Node = Node>(graph: BuildGraph): graph is ScopedBuildGraph<T>;