@depup/angular-devkit__core 21.2.2-depup.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 (169) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +25 -0
  3. package/changes.json +5 -0
  4. package/index.d.ts +8 -0
  5. package/index.js +25 -0
  6. package/index.js.map +1 -0
  7. package/node/cli-logger.d.ts +15 -0
  8. package/node/cli-logger.js +58 -0
  9. package/node/cli-logger.js.map +1 -0
  10. package/node/host.d.ts +43 -0
  11. package/node/host.js +211 -0
  12. package/node/host.js.map +1 -0
  13. package/node/index.d.ts +9 -0
  14. package/node/index.js +26 -0
  15. package/node/index.js.map +1 -0
  16. package/node/testing/index.d.ts +20 -0
  17. package/node/testing/index.js +90 -0
  18. package/node/testing/index.js.map +1 -0
  19. package/package.json +76 -0
  20. package/src/exception.d.ts +25 -0
  21. package/src/exception.js +48 -0
  22. package/src/exception.js.map +1 -0
  23. package/src/index.d.ts +15 -0
  24. package/src/index.js +57 -0
  25. package/src/index.js.map +1 -0
  26. package/src/json/index.d.ts +10 -0
  27. package/src/json/index.js +50 -0
  28. package/src/json/index.js.map +1 -0
  29. package/src/json/schema/index.d.ts +15 -0
  30. package/src/json/schema/index.js +55 -0
  31. package/src/json/schema/index.js.map +1 -0
  32. package/src/json/schema/interface.d.ts +84 -0
  33. package/src/json/schema/interface.js +10 -0
  34. package/src/json/schema/interface.js.map +1 -0
  35. package/src/json/schema/pointer.d.ts +11 -0
  36. package/src/json/schema/pointer.js +39 -0
  37. package/src/json/schema/pointer.js.map +1 -0
  38. package/src/json/schema/registry.d.ts +79 -0
  39. package/src/json/schema/registry.js +565 -0
  40. package/src/json/schema/registry.js.map +1 -0
  41. package/src/json/schema/schema.d.ts +22 -0
  42. package/src/json/schema/schema.js +52 -0
  43. package/src/json/schema/schema.js.map +1 -0
  44. package/src/json/schema/transforms.d.ts +12 -0
  45. package/src/json/schema/transforms.js +101 -0
  46. package/src/json/schema/transforms.js.map +1 -0
  47. package/src/json/schema/utility.d.ts +9 -0
  48. package/src/json/schema/utility.js +88 -0
  49. package/src/json/schema/utility.js.map +1 -0
  50. package/src/json/schema/visitor.d.ts +34 -0
  51. package/src/json/schema/visitor.js +147 -0
  52. package/src/json/schema/visitor.js.map +1 -0
  53. package/src/json/utils.d.ts +15 -0
  54. package/src/json/utils.js +18 -0
  55. package/src/json/utils.js.map +1 -0
  56. package/src/logger/indent.d.ts +11 -0
  57. package/src/logger/indent.js +41 -0
  58. package/src/logger/indent.js.map +1 -0
  59. package/src/logger/index.d.ts +12 -0
  60. package/src/logger/index.js +29 -0
  61. package/src/logger/index.js.map +1 -0
  62. package/src/logger/level.d.ts +28 -0
  63. package/src/logger/level.js +51 -0
  64. package/src/logger/level.js.map +1 -0
  65. package/src/logger/logger.d.ts +55 -0
  66. package/src/logger/logger.js +123 -0
  67. package/src/logger/logger.js.map +1 -0
  68. package/src/logger/null-logger.d.ts +12 -0
  69. package/src/logger/null-logger.js +31 -0
  70. package/src/logger/null-logger.js.map +1 -0
  71. package/src/logger/transform-logger.d.ts +12 -0
  72. package/src/logger/transform-logger.js +19 -0
  73. package/src/logger/transform-logger.js.map +1 -0
  74. package/src/utils/index.d.ts +15 -0
  75. package/src/utils/index.js +56 -0
  76. package/src/utils/index.js.map +1 -0
  77. package/src/utils/lang.d.ts +11 -0
  78. package/src/utils/lang.js +21 -0
  79. package/src/utils/lang.js.map +1 -0
  80. package/src/utils/literals.d.ts +15 -0
  81. package/src/utils/literals.js +59 -0
  82. package/src/utils/literals.js.map +1 -0
  83. package/src/utils/object.d.ts +8 -0
  84. package/src/utils/object.js +37 -0
  85. package/src/utils/object.js.map +1 -0
  86. package/src/utils/partially-ordered-set.d.ts +38 -0
  87. package/src/utils/partially-ordered-set.js +145 -0
  88. package/src/utils/partially-ordered-set.js.map +1 -0
  89. package/src/utils/priority-queue.d.ts +19 -0
  90. package/src/utils/priority-queue.js +50 -0
  91. package/src/utils/priority-queue.js.map +1 -0
  92. package/src/utils/strings.d.ts +112 -0
  93. package/src/utils/strings.js +179 -0
  94. package/src/utils/strings.js.map +1 -0
  95. package/src/utils/template.d.ts +89 -0
  96. package/src/utils/template.js +260 -0
  97. package/src/utils/template.js.map +1 -0
  98. package/src/virtual-fs/host/alias.d.ts +60 -0
  99. package/src/virtual-fs/host/alias.js +84 -0
  100. package/src/virtual-fs/host/alias.js.map +1 -0
  101. package/src/virtual-fs/host/buffer.d.ts +10 -0
  102. package/src/virtual-fs/host/buffer.js +22 -0
  103. package/src/virtual-fs/host/buffer.js.map +1 -0
  104. package/src/virtual-fs/host/create.d.ts +21 -0
  105. package/src/virtual-fs/host/create.js +55 -0
  106. package/src/virtual-fs/host/create.js.map +1 -0
  107. package/src/virtual-fs/host/empty.d.ts +19 -0
  108. package/src/virtual-fs/host/empty.js +38 -0
  109. package/src/virtual-fs/host/empty.js.map +1 -0
  110. package/src/virtual-fs/host/index.d.ts +21 -0
  111. package/src/virtual-fs/host/index.js +61 -0
  112. package/src/virtual-fs/host/index.js.map +1 -0
  113. package/src/virtual-fs/host/interface.d.ts +53 -0
  114. package/src/virtual-fs/host/interface.js +18 -0
  115. package/src/virtual-fs/host/interface.js.map +1 -0
  116. package/src/virtual-fs/host/memory.d.ts +49 -0
  117. package/src/virtual-fs/host/memory.js +332 -0
  118. package/src/virtual-fs/host/memory.js.map +1 -0
  119. package/src/virtual-fs/host/pattern.d.ts +17 -0
  120. package/src/virtual-fs/host/pattern.js +35 -0
  121. package/src/virtual-fs/host/pattern.js.map +1 -0
  122. package/src/virtual-fs/host/record.d.ts +92 -0
  123. package/src/virtual-fs/host/record.js +315 -0
  124. package/src/virtual-fs/host/record.js.map +1 -0
  125. package/src/virtual-fs/host/resolver.d.ts +30 -0
  126. package/src/virtual-fs/host/resolver.js +57 -0
  127. package/src/virtual-fs/host/resolver.js.map +1 -0
  128. package/src/virtual-fs/host/safe.d.ts +25 -0
  129. package/src/virtual-fs/host/safe.js +46 -0
  130. package/src/virtual-fs/host/safe.js.map +1 -0
  131. package/src/virtual-fs/host/scoped.d.ts +15 -0
  132. package/src/virtual-fs/host/scoped.js +24 -0
  133. package/src/virtual-fs/host/scoped.js.map +1 -0
  134. package/src/virtual-fs/host/sync.d.ts +34 -0
  135. package/src/virtual-fs/host/sync.js +93 -0
  136. package/src/virtual-fs/host/sync.js.map +1 -0
  137. package/src/virtual-fs/host/test.d.ts +48 -0
  138. package/src/virtual-fs/host/test.js +119 -0
  139. package/src/virtual-fs/host/test.js.map +1 -0
  140. package/src/virtual-fs/index.d.ts +10 -0
  141. package/src/virtual-fs/index.js +50 -0
  142. package/src/virtual-fs/index.js.map +1 -0
  143. package/src/virtual-fs/path.d.ts +111 -0
  144. package/src/virtual-fs/path.js +286 -0
  145. package/src/virtual-fs/path.js.map +1 -0
  146. package/src/workspace/core.d.ts +61 -0
  147. package/src/workspace/core.js +133 -0
  148. package/src/workspace/core.js.map +1 -0
  149. package/src/workspace/definitions.d.ts +63 -0
  150. package/src/workspace/definitions.js +169 -0
  151. package/src/workspace/definitions.js.map +1 -0
  152. package/src/workspace/host.d.ts +15 -0
  153. package/src/workspace/host.js +43 -0
  154. package/src/workspace/host.js.map +1 -0
  155. package/src/workspace/index.d.ts +10 -0
  156. package/src/workspace/index.js +32 -0
  157. package/src/workspace/index.js.map +1 -0
  158. package/src/workspace/json/metadata.d.ts +40 -0
  159. package/src/workspace/json/metadata.js +60 -0
  160. package/src/workspace/json/metadata.js.map +1 -0
  161. package/src/workspace/json/reader.d.ts +14 -0
  162. package/src/workspace/json/reader.js +231 -0
  163. package/src/workspace/json/reader.js.map +1 -0
  164. package/src/workspace/json/utilities.d.ts +14 -0
  165. package/src/workspace/json/utilities.js +113 -0
  166. package/src/workspace/json/utilities.js.map +1 -0
  167. package/src/workspace/json/writer.d.ts +12 -0
  168. package/src/workspace/json/writer.js +145 -0
  169. package/src/workspace/json/writer.js.map +1 -0
@@ -0,0 +1,61 @@
1
+ "use strict";
2
+ /**
3
+ * @license
4
+ * Copyright Google LLC All Rights Reserved.
5
+ *
6
+ * Use of this source code is governed by an MIT-style license that can be
7
+ * found in the LICENSE file at https://angular.dev/license
8
+ */
9
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ var desc = Object.getOwnPropertyDescriptor(m, k);
12
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
13
+ desc = { enumerable: true, get: function() { return m[k]; } };
14
+ }
15
+ Object.defineProperty(o, k2, desc);
16
+ }) : (function(o, m, k, k2) {
17
+ if (k2 === undefined) k2 = k;
18
+ o[k2] = m[k];
19
+ }));
20
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
21
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
22
+ }) : function(o, v) {
23
+ o["default"] = v;
24
+ });
25
+ var __importStar = (this && this.__importStar) || (function () {
26
+ var ownKeys = function(o) {
27
+ ownKeys = Object.getOwnPropertyNames || function (o) {
28
+ var ar = [];
29
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
30
+ return ar;
31
+ };
32
+ return ownKeys(o);
33
+ };
34
+ return function (mod) {
35
+ if (mod && mod.__esModule) return mod;
36
+ var result = {};
37
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
38
+ __setModuleDefault(result, mod);
39
+ return result;
40
+ };
41
+ })();
42
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
43
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
44
+ };
45
+ Object.defineProperty(exports, "__esModule", { value: true });
46
+ exports.test = void 0;
47
+ const test = __importStar(require("./test"));
48
+ exports.test = test;
49
+ __exportStar(require("./alias"), exports);
50
+ __exportStar(require("./buffer"), exports);
51
+ __exportStar(require("./create"), exports);
52
+ __exportStar(require("./empty"), exports);
53
+ __exportStar(require("./interface"), exports);
54
+ __exportStar(require("./memory"), exports);
55
+ __exportStar(require("./pattern"), exports);
56
+ __exportStar(require("./record"), exports);
57
+ __exportStar(require("./safe"), exports);
58
+ __exportStar(require("./scoped"), exports);
59
+ __exportStar(require("./sync"), exports);
60
+ __exportStar(require("./resolver"), exports);
61
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["index.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEH,6CAA+B;AActB,oBAAI;AAZb,0CAAwB;AACxB,2CAAyB;AACzB,2CAAyB;AACzB,0CAAwB;AACxB,8CAA4B;AAC5B,2CAAyB;AACzB,4CAA0B;AAC1B,2CAAyB;AACzB,yCAAuB;AACvB,2CAAyB;AACzB,yCAAuB;AACvB,6CAA2B"}
@@ -0,0 +1,53 @@
1
+ /**
2
+ * @license
3
+ * Copyright Google LLC All Rights Reserved.
4
+ *
5
+ * Use of this source code is governed by an MIT-style license that can be
6
+ * found in the LICENSE file at https://angular.dev/license
7
+ */
8
+ import { Observable } from 'rxjs';
9
+ import { Path, PathFragment } from '../path';
10
+ export type FileBuffer = ArrayBuffer;
11
+ export type FileBufferLike = ArrayBufferLike;
12
+ export interface HostWatchOptions {
13
+ readonly persistent?: boolean;
14
+ readonly recursive?: boolean;
15
+ }
16
+ export declare enum HostWatchEventType {
17
+ Changed = 0,
18
+ Created = 1,
19
+ Deleted = 2,
20
+ Renamed = 3
21
+ }
22
+ export type Stats<T extends object = {}> = T & {
23
+ isFile(): boolean;
24
+ isDirectory(): boolean;
25
+ readonly size: number;
26
+ readonly atime: Date;
27
+ readonly mtime: Date;
28
+ readonly ctime: Date;
29
+ readonly birthtime: Date;
30
+ };
31
+ export interface HostWatchEvent {
32
+ readonly time: Date;
33
+ readonly type: HostWatchEventType;
34
+ readonly path: Path;
35
+ }
36
+ export interface HostCapabilities {
37
+ synchronous: boolean;
38
+ }
39
+ export interface ReadonlyHost<StatsT extends object = {}> {
40
+ readonly capabilities: HostCapabilities;
41
+ read(path: Path): Observable<FileBuffer>;
42
+ list(path: Path): Observable<PathFragment[]>;
43
+ exists(path: Path): Observable<boolean>;
44
+ isDirectory(path: Path): Observable<boolean>;
45
+ isFile(path: Path): Observable<boolean>;
46
+ stat(path: Path): Observable<Stats<StatsT> | null> | null;
47
+ }
48
+ export interface Host<StatsT extends object = {}> extends ReadonlyHost<StatsT> {
49
+ write(path: Path, content: FileBufferLike): Observable<void>;
50
+ delete(path: Path): Observable<void>;
51
+ rename(from: Path, to: Path): Observable<void>;
52
+ watch(path: Path, options?: HostWatchOptions): Observable<HostWatchEvent> | null;
53
+ }
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ /**
3
+ * @license
4
+ * Copyright Google LLC All Rights Reserved.
5
+ *
6
+ * Use of this source code is governed by an MIT-style license that can be
7
+ * found in the LICENSE file at https://angular.dev/license
8
+ */
9
+ Object.defineProperty(exports, "__esModule", { value: true });
10
+ exports.HostWatchEventType = void 0;
11
+ var HostWatchEventType;
12
+ (function (HostWatchEventType) {
13
+ HostWatchEventType[HostWatchEventType["Changed"] = 0] = "Changed";
14
+ HostWatchEventType[HostWatchEventType["Created"] = 1] = "Created";
15
+ HostWatchEventType[HostWatchEventType["Deleted"] = 2] = "Deleted";
16
+ HostWatchEventType[HostWatchEventType["Renamed"] = 3] = "Renamed";
17
+ })(HostWatchEventType || (exports.HostWatchEventType = HostWatchEventType = {}));
18
+ //# sourceMappingURL=interface.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"interface.js","sourceRoot":"","sources":["interface.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;;AAaH,IAAY,kBAKX;AALD,WAAY,kBAAkB;IAC5B,iEAAW,CAAA;IACX,iEAAW,CAAA;IACX,iEAAW,CAAA;IACX,iEAAW,CAAA;AACb,CAAC,EALW,kBAAkB,kCAAlB,kBAAkB,QAK7B"}
@@ -0,0 +1,49 @@
1
+ /**
2
+ * @license
3
+ * Copyright Google LLC All Rights Reserved.
4
+ *
5
+ * Use of this source code is governed by an MIT-style license that can be
6
+ * found in the LICENSE file at https://angular.dev/license
7
+ */
8
+ import { Observable } from 'rxjs';
9
+ import { Path, PathFragment } from '../path';
10
+ import { FileBuffer, Host, HostCapabilities, HostWatchEvent, HostWatchEventType, HostWatchOptions, Stats } from './interface';
11
+ export interface SimpleMemoryHostStats {
12
+ readonly content: FileBuffer | null;
13
+ inspect(): string;
14
+ }
15
+ export declare class SimpleMemoryHost implements Host<{}> {
16
+ protected _cache: Map<Path, Stats<SimpleMemoryHostStats>>;
17
+ private _watchers;
18
+ protected _newDirStats(): Stats<SimpleMemoryHostStats>;
19
+ protected _newFileStats(content: FileBuffer, oldStats?: Stats<SimpleMemoryHostStats>): Stats<SimpleMemoryHostStats>;
20
+ constructor();
21
+ protected _toAbsolute(path: Path): Path;
22
+ protected _updateWatchers(path: Path, type: HostWatchEventType): void;
23
+ get capabilities(): HostCapabilities;
24
+ /**
25
+ * List of protected methods that give direct access outside the observables to the cache
26
+ * and internal states.
27
+ */
28
+ protected _write(path: Path, content: FileBuffer): void;
29
+ protected _read(path: Path): FileBuffer;
30
+ protected _delete(path: Path): void;
31
+ protected _rename(from: Path, to: Path): void;
32
+ protected _list(path: Path): PathFragment[];
33
+ protected _exists(path: Path): boolean;
34
+ protected _isDirectory(path: Path): boolean;
35
+ protected _isFile(path: Path): boolean;
36
+ protected _stat(path: Path): Stats<SimpleMemoryHostStats> | null;
37
+ protected _watch(path: Path, options?: HostWatchOptions): Observable<HostWatchEvent>;
38
+ write(path: Path, content: FileBuffer): Observable<void>;
39
+ read(path: Path): Observable<FileBuffer>;
40
+ delete(path: Path): Observable<void>;
41
+ rename(from: Path, to: Path): Observable<void>;
42
+ list(path: Path): Observable<PathFragment[]>;
43
+ exists(path: Path): Observable<boolean>;
44
+ isDirectory(path: Path): Observable<boolean>;
45
+ isFile(path: Path): Observable<boolean>;
46
+ stat(path: Path): Observable<Stats<{}> | null> | null;
47
+ watch(path: Path, options?: HostWatchOptions): Observable<HostWatchEvent> | null;
48
+ reset(): void;
49
+ }
@@ -0,0 +1,332 @@
1
+ "use strict";
2
+ /**
3
+ * @license
4
+ * Copyright Google LLC All Rights Reserved.
5
+ *
6
+ * Use of this source code is governed by an MIT-style license that can be
7
+ * found in the LICENSE file at https://angular.dev/license
8
+ */
9
+ Object.defineProperty(exports, "__esModule", { value: true });
10
+ exports.SimpleMemoryHost = void 0;
11
+ const rxjs_1 = require("rxjs");
12
+ const exception_1 = require("../../exception");
13
+ const path_1 = require("../path");
14
+ const interface_1 = require("./interface");
15
+ class SimpleMemoryHost {
16
+ _cache = new Map();
17
+ _watchers = new Map();
18
+ _newDirStats() {
19
+ return {
20
+ inspect() {
21
+ return '<Directory>';
22
+ },
23
+ isFile() {
24
+ return false;
25
+ },
26
+ isDirectory() {
27
+ return true;
28
+ },
29
+ size: 0,
30
+ atime: new Date(),
31
+ ctime: new Date(),
32
+ mtime: new Date(),
33
+ birthtime: new Date(),
34
+ content: null,
35
+ };
36
+ }
37
+ _newFileStats(content, oldStats) {
38
+ return {
39
+ inspect() {
40
+ return `<File size(${content.byteLength})>`;
41
+ },
42
+ isFile() {
43
+ return true;
44
+ },
45
+ isDirectory() {
46
+ return false;
47
+ },
48
+ size: content.byteLength,
49
+ atime: oldStats ? oldStats.atime : new Date(),
50
+ ctime: new Date(),
51
+ mtime: new Date(),
52
+ birthtime: oldStats ? oldStats.birthtime : new Date(),
53
+ content,
54
+ };
55
+ }
56
+ constructor() {
57
+ this._cache.set((0, path_1.normalize)('/'), this._newDirStats());
58
+ }
59
+ _toAbsolute(path) {
60
+ return (0, path_1.isAbsolute)(path) ? path : (0, path_1.normalize)('/' + path);
61
+ }
62
+ _updateWatchers(path, type) {
63
+ const time = new Date();
64
+ let currentPath = path;
65
+ let parent = null;
66
+ if (this._watchers.size == 0) {
67
+ // Nothing to do if there's no watchers.
68
+ return;
69
+ }
70
+ const maybeWatcher = this._watchers.get(currentPath);
71
+ if (maybeWatcher) {
72
+ maybeWatcher.forEach((watcher) => {
73
+ const [options, subject] = watcher;
74
+ subject.next({ path, time, type });
75
+ if (!options.persistent && type == interface_1.HostWatchEventType.Deleted) {
76
+ subject.complete();
77
+ this._watchers.delete(currentPath);
78
+ }
79
+ });
80
+ }
81
+ do {
82
+ currentPath = parent !== null ? parent : currentPath;
83
+ parent = (0, path_1.dirname)(currentPath);
84
+ const maybeWatcher = this._watchers.get(currentPath);
85
+ if (maybeWatcher) {
86
+ maybeWatcher.forEach((watcher) => {
87
+ const [options, subject] = watcher;
88
+ if (!options.recursive) {
89
+ return;
90
+ }
91
+ subject.next({ path, time, type });
92
+ if (!options.persistent && type == interface_1.HostWatchEventType.Deleted) {
93
+ subject.complete();
94
+ this._watchers.delete(currentPath);
95
+ }
96
+ });
97
+ }
98
+ } while (parent != currentPath);
99
+ }
100
+ get capabilities() {
101
+ return { synchronous: true };
102
+ }
103
+ /**
104
+ * List of protected methods that give direct access outside the observables to the cache
105
+ * and internal states.
106
+ */
107
+ _write(path, content) {
108
+ path = this._toAbsolute(path);
109
+ const old = this._cache.get(path);
110
+ if (old && old.isDirectory()) {
111
+ throw new exception_1.PathIsDirectoryException(path);
112
+ }
113
+ // Update all directories. If we find a file we know it's an invalid write.
114
+ const fragments = (0, path_1.split)(path);
115
+ let curr = (0, path_1.normalize)('/');
116
+ for (const fr of fragments) {
117
+ curr = (0, path_1.join)(curr, fr);
118
+ const maybeStats = this._cache.get(fr);
119
+ if (maybeStats) {
120
+ if (maybeStats.isFile()) {
121
+ throw new exception_1.PathIsFileException(curr);
122
+ }
123
+ }
124
+ else {
125
+ this._cache.set(curr, this._newDirStats());
126
+ }
127
+ }
128
+ // Create the stats.
129
+ const stats = this._newFileStats(content, old);
130
+ this._cache.set(path, stats);
131
+ this._updateWatchers(path, old ? interface_1.HostWatchEventType.Changed : interface_1.HostWatchEventType.Created);
132
+ }
133
+ _read(path) {
134
+ path = this._toAbsolute(path);
135
+ const maybeStats = this._cache.get(path);
136
+ if (!maybeStats) {
137
+ throw new exception_1.FileDoesNotExistException(path);
138
+ }
139
+ else if (maybeStats.isDirectory()) {
140
+ throw new exception_1.PathIsDirectoryException(path);
141
+ }
142
+ else if (!maybeStats.content) {
143
+ throw new exception_1.PathIsDirectoryException(path);
144
+ }
145
+ else {
146
+ return maybeStats.content;
147
+ }
148
+ }
149
+ _delete(path) {
150
+ path = this._toAbsolute(path);
151
+ if (this._isDirectory(path)) {
152
+ for (const [cachePath] of this._cache.entries()) {
153
+ if (cachePath.startsWith(path + path_1.NormalizedSep) || cachePath === path) {
154
+ this._cache.delete(cachePath);
155
+ }
156
+ }
157
+ }
158
+ else {
159
+ this._cache.delete(path);
160
+ }
161
+ this._updateWatchers(path, interface_1.HostWatchEventType.Deleted);
162
+ }
163
+ _rename(from, to) {
164
+ from = this._toAbsolute(from);
165
+ to = this._toAbsolute(to);
166
+ if (!this._cache.has(from)) {
167
+ throw new exception_1.FileDoesNotExistException(from);
168
+ }
169
+ else if (this._cache.has(to)) {
170
+ throw new exception_1.FileAlreadyExistException(to);
171
+ }
172
+ if (this._isDirectory(from)) {
173
+ for (const path of this._cache.keys()) {
174
+ if (path.startsWith(from + path_1.NormalizedSep)) {
175
+ const content = this._cache.get(path);
176
+ if (content) {
177
+ // We don't need to clone or extract the content, since we're moving files.
178
+ this._cache.set((0, path_1.join)(to, path_1.NormalizedSep, path.slice(from.length)), content);
179
+ }
180
+ }
181
+ }
182
+ }
183
+ else {
184
+ const content = this._cache.get(from);
185
+ if (content) {
186
+ const fragments = (0, path_1.split)(to);
187
+ const newDirectories = [];
188
+ let curr = (0, path_1.normalize)('/');
189
+ for (const fr of fragments) {
190
+ curr = (0, path_1.join)(curr, fr);
191
+ const maybeStats = this._cache.get(fr);
192
+ if (maybeStats) {
193
+ if (maybeStats.isFile()) {
194
+ throw new exception_1.PathIsFileException(curr);
195
+ }
196
+ }
197
+ else {
198
+ newDirectories.push(curr);
199
+ }
200
+ }
201
+ for (const newDirectory of newDirectories) {
202
+ this._cache.set(newDirectory, this._newDirStats());
203
+ }
204
+ this._cache.delete(from);
205
+ this._cache.set(to, content);
206
+ }
207
+ }
208
+ this._updateWatchers(from, interface_1.HostWatchEventType.Renamed);
209
+ }
210
+ _list(path) {
211
+ path = this._toAbsolute(path);
212
+ if (this._isFile(path)) {
213
+ throw new exception_1.PathIsFileException(path);
214
+ }
215
+ const fragments = (0, path_1.split)(path);
216
+ const result = new Set();
217
+ if (path !== path_1.NormalizedRoot) {
218
+ for (const p of this._cache.keys()) {
219
+ if (p.startsWith(path + path_1.NormalizedSep)) {
220
+ result.add((0, path_1.split)(p)[fragments.length]);
221
+ }
222
+ }
223
+ }
224
+ else {
225
+ for (const p of this._cache.keys()) {
226
+ if (p.startsWith(path_1.NormalizedSep) && p !== path_1.NormalizedRoot) {
227
+ result.add((0, path_1.split)(p)[1]);
228
+ }
229
+ }
230
+ }
231
+ return [...result];
232
+ }
233
+ _exists(path) {
234
+ return !!this._cache.get(this._toAbsolute(path));
235
+ }
236
+ _isDirectory(path) {
237
+ const maybeStats = this._cache.get(this._toAbsolute(path));
238
+ return maybeStats ? maybeStats.isDirectory() : false;
239
+ }
240
+ _isFile(path) {
241
+ const maybeStats = this._cache.get(this._toAbsolute(path));
242
+ return maybeStats ? maybeStats.isFile() : false;
243
+ }
244
+ _stat(path) {
245
+ const maybeStats = this._cache.get(this._toAbsolute(path));
246
+ if (!maybeStats) {
247
+ return null;
248
+ }
249
+ else {
250
+ return maybeStats;
251
+ }
252
+ }
253
+ _watch(path, options) {
254
+ path = this._toAbsolute(path);
255
+ const subject = new rxjs_1.Subject();
256
+ let maybeWatcherArray = this._watchers.get(path);
257
+ if (!maybeWatcherArray) {
258
+ maybeWatcherArray = [];
259
+ this._watchers.set(path, maybeWatcherArray);
260
+ }
261
+ maybeWatcherArray.push([options || {}, subject]);
262
+ return subject.asObservable();
263
+ }
264
+ write(path, content) {
265
+ return new rxjs_1.Observable((obs) => {
266
+ this._write(path, content);
267
+ obs.next();
268
+ obs.complete();
269
+ });
270
+ }
271
+ read(path) {
272
+ return new rxjs_1.Observable((obs) => {
273
+ const content = this._read(path);
274
+ obs.next(content);
275
+ obs.complete();
276
+ });
277
+ }
278
+ delete(path) {
279
+ return new rxjs_1.Observable((obs) => {
280
+ this._delete(path);
281
+ obs.next();
282
+ obs.complete();
283
+ });
284
+ }
285
+ rename(from, to) {
286
+ return new rxjs_1.Observable((obs) => {
287
+ this._rename(from, to);
288
+ obs.next();
289
+ obs.complete();
290
+ });
291
+ }
292
+ list(path) {
293
+ return new rxjs_1.Observable((obs) => {
294
+ obs.next(this._list(path));
295
+ obs.complete();
296
+ });
297
+ }
298
+ exists(path) {
299
+ return new rxjs_1.Observable((obs) => {
300
+ obs.next(this._exists(path));
301
+ obs.complete();
302
+ });
303
+ }
304
+ isDirectory(path) {
305
+ return new rxjs_1.Observable((obs) => {
306
+ obs.next(this._isDirectory(path));
307
+ obs.complete();
308
+ });
309
+ }
310
+ isFile(path) {
311
+ return new rxjs_1.Observable((obs) => {
312
+ obs.next(this._isFile(path));
313
+ obs.complete();
314
+ });
315
+ }
316
+ // Some hosts may not support stat.
317
+ stat(path) {
318
+ return new rxjs_1.Observable((obs) => {
319
+ obs.next(this._stat(path));
320
+ obs.complete();
321
+ });
322
+ }
323
+ watch(path, options) {
324
+ return this._watch(path, options);
325
+ }
326
+ reset() {
327
+ this._cache.clear();
328
+ this._watchers.clear();
329
+ }
330
+ }
331
+ exports.SimpleMemoryHost = SimpleMemoryHost;
332
+ //# sourceMappingURL=memory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"memory.js","sourceRoot":"","sources":["memory.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ /**
2
+ * @license
3
+ * Copyright Google LLC All Rights Reserved.
4
+ *
5
+ * Use of this source code is governed by an MIT-style license that can be
6
+ * found in the LICENSE file at https://angular.dev/license
7
+ */
8
+ import { Path } from '../path';
9
+ import { ResolverHost } from './resolver';
10
+ export type ReplacementFunction = (path: Path) => Path;
11
+ /**
12
+ */
13
+ export declare class PatternMatchingHost<StatsT extends object = {}> extends ResolverHost<StatsT> {
14
+ protected _patterns: Map<RegExp, ReplacementFunction>;
15
+ addPattern(pattern: string | string[], replacementFn: ReplacementFunction): void;
16
+ protected _resolve(path: Path): Path;
17
+ }
@@ -0,0 +1,35 @@
1
+ "use strict";
2
+ /**
3
+ * @license
4
+ * Copyright Google LLC All Rights Reserved.
5
+ *
6
+ * Use of this source code is governed by an MIT-style license that can be
7
+ * found in the LICENSE file at https://angular.dev/license
8
+ */
9
+ Object.defineProperty(exports, "__esModule", { value: true });
10
+ exports.PatternMatchingHost = void 0;
11
+ const picomatch_1 = require("picomatch");
12
+ const resolver_1 = require("./resolver");
13
+ /**
14
+ */
15
+ class PatternMatchingHost extends resolver_1.ResolverHost {
16
+ _patterns = new Map();
17
+ addPattern(pattern, replacementFn) {
18
+ const patterns = Array.isArray(pattern) ? pattern : [pattern];
19
+ for (const glob of patterns) {
20
+ const { output } = (0, picomatch_1.parse)(glob);
21
+ this._patterns.set(new RegExp(`^${output}$`), replacementFn);
22
+ }
23
+ }
24
+ _resolve(path) {
25
+ let newPath = path;
26
+ this._patterns.forEach((fn, re) => {
27
+ if (re.test(path)) {
28
+ newPath = fn(newPath);
29
+ }
30
+ });
31
+ return newPath;
32
+ }
33
+ }
34
+ exports.PatternMatchingHost = PatternMatchingHost;
35
+ //# sourceMappingURL=pattern.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pattern.js","sourceRoot":"","sources":["pattern.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;;AAEH,yCAA+C;AAE/C,yCAA0C;AAI1C;GACG;AACH,MAAa,mBAAgD,SAAQ,uBAAoB;IAC7E,SAAS,GAAqC,IAAI,GAAG,EAAE,CAAC;IAElE,UAAU,CAAC,OAA0B,EAAE,aAAkC;QACvE,MAAM,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;QAC9D,KAAK,MAAM,IAAI,IAAI,QAAQ,EAAE,CAAC;YAC5B,MAAM,EAAE,MAAM,EAAE,GAAG,IAAA,iBAAS,EAAC,IAAI,CAAC,CAAC;YACnC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,MAAM,CAAC,IAAI,MAAM,GAAG,CAAC,EAAE,aAAa,CAAC,CAAC;QAC/D,CAAC;IACH,CAAC;IAES,QAAQ,CAAC,IAAU;QAC3B,IAAI,OAAO,GAAG,IAAI,CAAC;QACnB,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE;YAChC,IAAI,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;gBAClB,OAAO,GAAG,EAAE,CAAC,OAAO,CAAC,CAAC;YACxB,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,OAAO,OAAO,CAAC;IACjB,CAAC;CACF;AArBD,kDAqBC"}