@depup/angular__build 22.1.8-depup.4 → 22.2.0-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 (306) hide show
  1. package/README.md +9 -14
  2. package/builders.json +1 -1
  3. package/changes.json +13 -33
  4. package/package.json +31 -50
  5. package/src/builders/application/build-action.js +63 -92
  6. package/src/builders/application/build-action.js.map +1 -1
  7. package/src/builders/application/chunk-optimizer.d.ts +2 -2
  8. package/src/builders/application/chunk-optimizer.js +5 -5
  9. package/src/builders/application/chunk-optimizer.js.map +1 -1
  10. package/src/builders/application/execute-build.js +26 -19
  11. package/src/builders/application/execute-build.js.map +1 -1
  12. package/src/builders/application/execute-post-bundle.d.ts +2 -2
  13. package/src/builders/application/execute-post-bundle.js +5 -5
  14. package/src/builders/application/execute-post-bundle.js.map +1 -1
  15. package/src/builders/application/i18n.d.ts +3 -1
  16. package/src/builders/application/i18n.js +48 -13
  17. package/src/builders/application/i18n.js.map +1 -1
  18. package/src/{tools/esbuild → builders/application}/index-html-generator.d.ts +2 -2
  19. package/src/{tools/esbuild → builders/application}/index-html-generator.js +2 -2
  20. package/src/builders/application/index-html-generator.js.map +1 -0
  21. package/src/builders/application/index.js +2 -2
  22. package/src/builders/application/index.js.map +1 -1
  23. package/src/builders/application/options.d.ts +5 -0
  24. package/src/builders/application/options.js +8 -26
  25. package/src/builders/application/options.js.map +1 -1
  26. package/src/builders/application/results.d.ts +3 -2
  27. package/src/builders/application/schema.d.ts +2 -1
  28. package/src/builders/application/schema.js.map +1 -1
  29. package/src/builders/application/schema.json +1 -2
  30. package/src/builders/application/setup-bundling.js +3 -1
  31. package/src/builders/application/setup-bundling.js.map +1 -1
  32. package/src/builders/dev-server/internal.d.ts +1 -1
  33. package/src/builders/dev-server/internal.js +1 -1
  34. package/src/builders/dev-server/internal.js.map +1 -1
  35. package/src/builders/dev-server/vite/index.js +5 -8
  36. package/src/builders/dev-server/vite/index.js.map +1 -1
  37. package/src/builders/dev-server/vite/server.js +2 -0
  38. package/src/builders/dev-server/vite/server.js.map +1 -1
  39. package/src/builders/dev-server/vite/utils.d.ts +1 -1
  40. package/src/builders/dev-server/vite/utils.js +9 -4
  41. package/src/builders/dev-server/vite/utils.js.map +1 -1
  42. package/src/builders/extract-i18n/application-extraction.js +6 -5
  43. package/src/builders/extract-i18n/application-extraction.js.map +1 -1
  44. package/src/builders/karma/application_builder.js +1 -1
  45. package/src/builders/karma/application_builder.js.map +1 -1
  46. package/src/builders/karma/assets-middleware.d.ts +2 -2
  47. package/src/builders/karma/assets-middleware.js +5 -2
  48. package/src/builders/karma/assets-middleware.js.map +1 -1
  49. package/src/builders/karma/progress-reporter.js +7 -5
  50. package/src/builders/karma/progress-reporter.js.map +1 -1
  51. package/src/builders/karma/utils.d.ts +2 -1
  52. package/src/builders/karma/utils.js +2 -2
  53. package/src/builders/karma/utils.js.map +1 -1
  54. package/src/builders/unit-test/builder.js +1 -1
  55. package/src/builders/unit-test/runners/vitest/build-options.js +9 -3
  56. package/src/builders/unit-test/runners/vitest/build-options.js.map +1 -1
  57. package/src/builders/unit-test/runners/vitest/executor.js +5 -4
  58. package/src/builders/unit-test/runners/vitest/executor.js.map +1 -1
  59. package/src/builders/unit-test/runners/vitest/plugins.d.ts +4 -4
  60. package/src/builders/unit-test/runners/vitest/plugins.js +9 -2
  61. package/src/builders/unit-test/runners/vitest/plugins.js.map +1 -1
  62. package/src/builders/unit-test/schema.d.ts +3 -2
  63. package/src/builders/unit-test/schema.js.map +1 -1
  64. package/src/builders/unit-test/schema.json +3 -2
  65. package/src/builders/unit-test/test-discovery.js +3 -2
  66. package/src/builders/unit-test/test-discovery.js.map +1 -1
  67. package/src/private.d.ts +3 -5
  68. package/src/private.js +6 -9
  69. package/src/private.js.map +1 -1
  70. package/src/tools/angular/angular-host.d.ts +1 -2
  71. package/src/tools/angular/angular-host.js +6 -6
  72. package/src/tools/angular/angular-host.js.map +1 -1
  73. package/src/tools/angular/compilation/angular-compilation.d.ts +24 -16
  74. package/src/tools/angular/compilation/angular-compilation.js +4 -80
  75. package/src/tools/angular/compilation/angular-compilation.js.map +1 -1
  76. package/src/tools/angular/compilation/aot-compilation.d.ts +6 -12
  77. package/src/tools/angular/compilation/aot-compilation.js +23 -20
  78. package/src/tools/angular/compilation/aot-compilation.js.map +1 -1
  79. package/src/tools/angular/compilation/compiler-options.d.ts +25 -0
  80. package/src/tools/angular/compilation/compiler-options.js +135 -0
  81. package/src/tools/angular/compilation/compiler-options.js.map +1 -0
  82. package/src/tools/angular/compilation/factory.d.ts +5 -3
  83. package/src/tools/angular/compilation/factory.js +10 -5
  84. package/src/tools/angular/compilation/factory.js.map +1 -1
  85. package/src/tools/angular/compilation/index.d.ts +3 -3
  86. package/src/tools/angular/compilation/index.js +1 -3
  87. package/src/tools/angular/compilation/index.js.map +1 -1
  88. package/src/tools/angular/compilation/jit-compilation.d.ts +6 -9
  89. package/src/tools/angular/compilation/jit-compilation.js +10 -16
  90. package/src/tools/angular/compilation/jit-compilation.js.map +1 -1
  91. package/src/tools/angular/compilation/parallel-compilation.d.ts +3 -14
  92. package/src/tools/angular/compilation/parallel-compilation.js +40 -42
  93. package/src/tools/angular/compilation/parallel-compilation.js.map +1 -1
  94. package/src/tools/angular/compilation/parallel-worker.d.ts +5 -17
  95. package/src/tools/angular/compilation/parallel-worker.js +89 -68
  96. package/src/tools/angular/compilation/parallel-worker.js.map +1 -1
  97. package/src/tools/angular/compilation/typescript-compilation.d.ts +31 -0
  98. package/src/tools/angular/compilation/typescript-compilation.js +125 -0
  99. package/src/tools/angular/compilation/typescript-compilation.js.map +1 -0
  100. package/src/tools/angular/linker/oxc-ast-host.d.ts +33 -0
  101. package/src/tools/angular/linker/oxc-ast-host.js +234 -0
  102. package/src/tools/angular/linker/oxc-ast-host.js.map +1 -0
  103. package/src/tools/angular/linker/oxc-linker.d.ts +22 -0
  104. package/src/tools/angular/linker/oxc-linker.js +75 -0
  105. package/src/tools/angular/linker/oxc-linker.js.map +1 -0
  106. package/src/tools/angular/linker/string-ast-factory.d.ts +86 -0
  107. package/src/tools/angular/linker/string-ast-factory.js +234 -0
  108. package/src/tools/angular/linker/string-ast-factory.js.map +1 -0
  109. package/src/tools/esbuild/angular/compilation-state.d.ts +23 -3
  110. package/src/tools/esbuild/angular/compilation-state.js +51 -13
  111. package/src/tools/esbuild/angular/compilation-state.js.map +1 -1
  112. package/src/tools/esbuild/angular/compiler-plugin.d.ts +1 -0
  113. package/src/tools/esbuild/angular/compiler-plugin.js +126 -139
  114. package/src/tools/esbuild/angular/compiler-plugin.js.map +1 -1
  115. package/src/tools/esbuild/angular/component-stylesheets.d.ts +3 -3
  116. package/src/tools/esbuild/angular/component-stylesheets.js +52 -22
  117. package/src/tools/esbuild/angular/component-stylesheets.js.map +1 -1
  118. package/src/tools/esbuild/angular/source-file-cache.d.ts +1 -2
  119. package/src/tools/esbuild/angular/source-file-cache.js +1 -11
  120. package/src/tools/esbuild/angular/source-file-cache.js.map +1 -1
  121. package/src/tools/esbuild/application-code-bundle.js +7 -14
  122. package/src/tools/esbuild/application-code-bundle.js.map +1 -1
  123. package/src/tools/esbuild/budget-stats.js +3 -3
  124. package/src/tools/esbuild/budget-stats.js.map +1 -1
  125. package/src/tools/esbuild/bundler-context.d.ts +23 -7
  126. package/src/tools/esbuild/bundler-context.js +112 -43
  127. package/src/tools/esbuild/bundler-context.js.map +1 -1
  128. package/src/tools/esbuild/bundler-execution-result.d.ts +2 -1
  129. package/src/tools/esbuild/bundler-execution-result.js +2 -2
  130. package/src/tools/esbuild/bundler-execution-result.js.map +1 -1
  131. package/src/tools/esbuild/bundler-files.js +3 -5
  132. package/src/tools/esbuild/bundler-files.js.map +1 -1
  133. package/src/tools/esbuild/compiler-plugin-options.js +2 -1
  134. package/src/tools/esbuild/compiler-plugin-options.js.map +1 -1
  135. package/src/tools/esbuild/i18n-locale-plugin.d.ts +1 -8
  136. package/src/tools/esbuild/i18n-locale-plugin.js +33 -114
  137. package/src/tools/esbuild/i18n-locale-plugin.js.map +1 -1
  138. package/src/tools/esbuild/license-extractor.d.ts +1 -1
  139. package/src/tools/esbuild/license-extractor.js +89 -86
  140. package/src/tools/esbuild/license-extractor.js.map +1 -1
  141. package/src/tools/esbuild/load-result-cache.d.ts +2 -1
  142. package/src/tools/esbuild/load-result-cache.js +28 -13
  143. package/src/tools/esbuild/load-result-cache.js.map +1 -1
  144. package/src/tools/esbuild/persistent-load-result-cache.d.ts +87 -0
  145. package/src/tools/esbuild/persistent-load-result-cache.js +229 -0
  146. package/src/tools/esbuild/persistent-load-result-cache.js.map +1 -0
  147. package/src/tools/esbuild/stylesheets/bundle-options.d.ts +1 -0
  148. package/src/tools/esbuild/stylesheets/bundle-options.js +1 -1
  149. package/src/tools/esbuild/stylesheets/bundle-options.js.map +1 -1
  150. package/src/tools/esbuild/stylesheets/css-resource-plugin.d.ts +3 -1
  151. package/src/tools/esbuild/stylesheets/css-resource-plugin.js +4 -2
  152. package/src/tools/esbuild/stylesheets/css-resource-plugin.js.map +1 -1
  153. package/src/tools/esbuild/stylesheets/sass-language.d.ts +9 -0
  154. package/src/tools/esbuild/stylesheets/sass-language.js +109 -50
  155. package/src/tools/esbuild/stylesheets/sass-language.js.map +1 -1
  156. package/src/tools/esbuild/stylesheets/stylesheet-cache-key.d.ts +35 -0
  157. package/src/tools/esbuild/stylesheets/stylesheet-cache-key.js +64 -0
  158. package/src/tools/esbuild/stylesheets/stylesheet-cache-key.js.map +1 -0
  159. package/src/tools/esbuild/stylesheets/stylesheet-plugin-factory.d.ts +1 -1
  160. package/src/tools/esbuild/utils.d.ts +3 -3
  161. package/src/tools/esbuild/utils.js +9 -6
  162. package/src/tools/esbuild/utils.js.map +1 -1
  163. package/src/tools/i18n/i18n-inliner-worker.d.ts +126 -0
  164. package/src/tools/i18n/i18n-inliner-worker.js +363 -0
  165. package/src/tools/i18n/i18n-inliner-worker.js.map +1 -0
  166. package/src/tools/i18n/i18n-inliner.d.ts +97 -0
  167. package/src/tools/i18n/i18n-inliner.js +500 -0
  168. package/src/tools/i18n/i18n-inliner.js.map +1 -0
  169. package/src/tools/i18n/i18n-translation-encoder.d.ts +21 -0
  170. package/src/tools/i18n/i18n-translation-encoder.js +92 -0
  171. package/src/tools/i18n/i18n-translation-encoder.js.map +1 -0
  172. package/src/tools/i18n/i18n-translation-reader.d.ts +41 -0
  173. package/src/tools/i18n/i18n-translation-reader.js +164 -0
  174. package/src/tools/i18n/i18n-translation-reader.js.map +1 -0
  175. package/src/tools/i18n/index.d.ts +11 -0
  176. package/src/tools/i18n/index.js +28 -0
  177. package/src/tools/i18n/index.js.map +1 -0
  178. package/src/tools/i18n/locale-data.d.ts +47 -0
  179. package/src/tools/i18n/locale-data.js +108 -0
  180. package/src/tools/i18n/locale-data.js.map +1 -0
  181. package/src/tools/javascript-transformer/index.d.ts +8 -0
  182. package/src/tools/javascript-transformer/index.js +25 -0
  183. package/src/tools/javascript-transformer/index.js.map +1 -0
  184. package/src/tools/{esbuild → javascript-transformer}/javascript-transformer-worker.d.ts +0 -4
  185. package/src/tools/javascript-transformer/javascript-transformer-worker.js +231 -0
  186. package/src/tools/javascript-transformer/javascript-transformer-worker.js.map +1 -0
  187. package/src/tools/{esbuild → javascript-transformer}/javascript-transformer.d.ts +26 -9
  188. package/src/tools/javascript-transformer/javascript-transformer.js +294 -0
  189. package/src/tools/javascript-transformer/javascript-transformer.js.map +1 -0
  190. package/src/tools/{babel/plugins → oxc}/oxc-transform.d.ts +5 -2
  191. package/src/tools/{babel/plugins → oxc}/oxc-transform.js +105 -138
  192. package/src/tools/oxc/oxc-transform.js.map +1 -0
  193. package/src/tools/oxc/traversal.d.ts +32 -0
  194. package/src/tools/oxc/traversal.js +299 -0
  195. package/src/tools/oxc/traversal.js.map +1 -0
  196. package/src/tools/oxc/types.d.ts +20 -0
  197. package/src/tools/sass/rebasing-importer.d.ts +12 -18
  198. package/src/tools/sass/rebasing-importer.js +23 -26
  199. package/src/tools/sass/rebasing-importer.js.map +1 -1
  200. package/src/tools/sass/sass-service.d.ts +15 -38
  201. package/src/tools/sass/sass-service.js +132 -187
  202. package/src/tools/sass/sass-service.js.map +1 -1
  203. package/src/tools/vite/middlewares/assets-middleware.js +3 -3
  204. package/src/tools/vite/middlewares/assets-middleware.js.map +1 -1
  205. package/src/tools/vite/utils.d.ts +1 -1
  206. package/src/{tools/esbuild → utils/cache}/cache.d.ts +25 -8
  207. package/src/{tools/esbuild → utils/cache}/cache.js +72 -41
  208. package/src/utils/cache/cache.js.map +1 -0
  209. package/src/utils/cache/index.d.ts +8 -0
  210. package/src/utils/cache/index.js +25 -0
  211. package/src/utils/cache/index.js.map +1 -0
  212. package/src/{tools/esbuild → utils/cache}/lmdb-cache-store.js +1 -1
  213. package/src/{tools/esbuild → utils/cache}/lmdb-cache-store.js.map +1 -1
  214. package/src/{tools/esbuild → utils/cache}/sqlite-cache-store.d.ts +1 -1
  215. package/src/utils/cache/sqlite-cache-store.js +339 -0
  216. package/src/utils/cache/sqlite-cache-store.js.map +1 -0
  217. package/src/utils/concurrency.d.ts +30 -0
  218. package/src/utils/concurrency.js +81 -0
  219. package/src/utils/concurrency.js.map +1 -0
  220. package/src/utils/environment-options.d.ts +34 -0
  221. package/src/utils/environment-options.js +42 -12
  222. package/src/utils/environment-options.js.map +1 -1
  223. package/src/utils/hash.d.ts +24 -0
  224. package/src/utils/hash.js +94 -0
  225. package/src/utils/hash.js.map +1 -0
  226. package/src/utils/i18n-options.d.ts +3 -1
  227. package/src/utils/i18n-options.js.map +1 -1
  228. package/src/utils/index-file/auto-csp.d.ts +8 -0
  229. package/src/utils/index-file/auto-csp.js +30 -3
  230. package/src/utils/index-file/auto-csp.js.map +1 -1
  231. package/src/utils/index-file/index-html-generator.d.ts +1 -1
  232. package/src/utils/index-file/index-html-generator.js +9 -13
  233. package/src/utils/index-file/index-html-generator.js.map +1 -1
  234. package/src/utils/index-file/inline-critical-css.d.ts +16 -18
  235. package/src/utils/index-file/inline-critical-css.js +78 -179
  236. package/src/utils/index-file/inline-critical-css.js.map +1 -1
  237. package/src/utils/index-file/nonce.d.ts +2 -0
  238. package/src/utils/index-file/nonce.js +1 -0
  239. package/src/utils/index-file/nonce.js.map +1 -1
  240. package/src/utils/normalize-cache.js +1 -1
  241. package/src/utils/postcss-configuration.d.ts +6 -0
  242. package/src/utils/postcss-configuration.js +23 -0
  243. package/src/utils/postcss-configuration.js.map +1 -1
  244. package/src/{tools/esbuild → utils}/profiling.js +1 -1
  245. package/src/{tools/esbuild → utils}/profiling.js.map +1 -1
  246. package/src/utils/server-rendering/manifest.d.ts +2 -2
  247. package/src/utils/server-rendering/manifest.js +53 -4
  248. package/src/utils/server-rendering/manifest.js.map +1 -1
  249. package/src/utils/source-map.d.ts +26 -2
  250. package/src/utils/source-map.js +151 -53
  251. package/src/utils/source-map.js.map +1 -1
  252. package/src/utils/test-files.d.ts +2 -2
  253. package/src/utils/test-files.js +3 -3
  254. package/src/utils/test-files.js.map +1 -1
  255. package/src/utils/watcher.d.ts +61 -0
  256. package/src/utils/watcher.js +642 -0
  257. package/src/utils/watcher.js.map +1 -0
  258. package/src/tools/angular/compilation/noop-compilation.d.ts +0 -20
  259. package/src/tools/angular/compilation/noop-compilation.js +0 -27
  260. package/src/tools/angular/compilation/noop-compilation.js.map +0 -1
  261. package/src/tools/babel/plugins/add-code-coverage.d.ts +0 -14
  262. package/src/tools/babel/plugins/add-code-coverage.js +0 -44
  263. package/src/tools/babel/plugins/add-code-coverage.js.map +0 -1
  264. package/src/tools/babel/plugins/adjust-static-class-members.d.ts +0 -25
  265. package/src/tools/babel/plugins/adjust-static-class-members.js +0 -349
  266. package/src/tools/babel/plugins/adjust-static-class-members.js.map +0 -1
  267. package/src/tools/babel/plugins/adjust-typescript-enums.d.ts +0 -21
  268. package/src/tools/babel/plugins/adjust-typescript-enums.js +0 -113
  269. package/src/tools/babel/plugins/adjust-typescript-enums.js.map +0 -1
  270. package/src/tools/babel/plugins/elide-angular-metadata.d.ts +0 -23
  271. package/src/tools/babel/plugins/elide-angular-metadata.js +0 -110
  272. package/src/tools/babel/plugins/elide-angular-metadata.js.map +0 -1
  273. package/src/tools/babel/plugins/index.d.ts +0 -11
  274. package/src/tools/babel/plugins/index.js +0 -22
  275. package/src/tools/babel/plugins/index.js.map +0 -1
  276. package/src/tools/babel/plugins/oxc-transform.js.map +0 -1
  277. package/src/tools/babel/plugins/pure-toplevel-functions.d.ts +0 -13
  278. package/src/tools/babel/plugins/pure-toplevel-functions.js +0 -128
  279. package/src/tools/babel/plugins/pure-toplevel-functions.js.map +0 -1
  280. package/src/tools/babel/plugins/types.d.ts +0 -20
  281. package/src/tools/babel/typings.d.ts +0 -21
  282. package/src/tools/esbuild/cache.js.map +0 -1
  283. package/src/tools/esbuild/i18n-inliner-worker.d.ts +0 -81
  284. package/src/tools/esbuild/i18n-inliner-worker.js +0 -255
  285. package/src/tools/esbuild/i18n-inliner-worker.js.map +0 -1
  286. package/src/tools/esbuild/i18n-inliner.d.ts +0 -58
  287. package/src/tools/esbuild/i18n-inliner.js +0 -265
  288. package/src/tools/esbuild/i18n-inliner.js.map +0 -1
  289. package/src/tools/esbuild/index-html-generator.js.map +0 -1
  290. package/src/tools/esbuild/javascript-transformer-worker.js +0 -192
  291. package/src/tools/esbuild/javascript-transformer-worker.js.map +0 -1
  292. package/src/tools/esbuild/javascript-transformer.js +0 -197
  293. package/src/tools/esbuild/javascript-transformer.js.map +0 -1
  294. package/src/tools/esbuild/sqlite-cache-store.js +0 -165
  295. package/src/tools/esbuild/sqlite-cache-store.js.map +0 -1
  296. package/src/tools/esbuild/watcher.d.ts +0 -25
  297. package/src/tools/esbuild/watcher.js +0 -119
  298. package/src/tools/esbuild/watcher.js.map +0 -1
  299. package/src/tools/sass/worker.d.ts +0 -63
  300. package/src/tools/sass/worker.js +0 -202
  301. package/src/tools/sass/worker.js.map +0 -1
  302. /package/src/tools/{esbuild/angular → angular/compilation}/diagnostics.d.ts +0 -0
  303. /package/src/tools/{esbuild/angular → angular/compilation}/diagnostics.js +0 -0
  304. /package/src/tools/{esbuild/angular → angular/compilation}/diagnostics.js.map +0 -0
  305. /package/src/{tools/esbuild → utils/cache}/lmdb-cache-store.d.ts +0 -0
  306. /package/src/{tools/esbuild → utils}/profiling.d.ts +0 -0
@@ -0,0 +1,642 @@
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 __importDefault = (this && this.__importDefault) || function (mod) {
43
+ return (mod && mod.__esModule) ? mod : { "default": mod };
44
+ };
45
+ Object.defineProperty(exports, "__esModule", { value: true });
46
+ exports.ChangedFiles = void 0;
47
+ exports.setupWatcher = setupWatcher;
48
+ exports.toPosixPathNormalized = toPosixPathNormalized;
49
+ exports.getDirectoryPath = getDirectoryPath;
50
+ exports.createWatcher = createWatcher;
51
+ exports.isPathInside = isPathInside;
52
+ const node_events_1 = require("node:events");
53
+ const fs = __importStar(require("node:fs"));
54
+ const path = __importStar(require("node:path"));
55
+ const picomatch_1 = __importDefault(require("picomatch"));
56
+ const environment_options_1 = require("./environment-options");
57
+ const path_1 = require("./path");
58
+ class ChangedFiles {
59
+ added = new Set();
60
+ modified = new Set();
61
+ removed = new Set();
62
+ get all() {
63
+ return Array.from(new Set([...this.added, ...this.modified, ...this.removed]));
64
+ }
65
+ toDebugString() {
66
+ const content = {
67
+ added: Array.from(this.added),
68
+ modified: Array.from(this.modified),
69
+ removed: Array.from(this.removed),
70
+ };
71
+ return JSON.stringify(content, null, 2);
72
+ }
73
+ }
74
+ exports.ChangedFiles = ChangedFiles;
75
+ // Watch workspace for package manager changes
76
+ const packageWatchFiles = [
77
+ // manifest can affect module resolution
78
+ 'package.json',
79
+ // npm lock file
80
+ 'package-lock.json',
81
+ // pnpm lock file
82
+ 'pnpm-lock.yaml',
83
+ // yarn lock file including Yarn PnP manifest files (https://yarnpkg.com/advanced/pnp-spec/)
84
+ 'yarn.lock',
85
+ '.pnp.cjs',
86
+ '.pnp.data.json',
87
+ ];
88
+ /**
89
+ * Sets up and initializes a file watcher with proper ignore patterns for build outputs and caches.
90
+ */
91
+ async function setupWatcher(options) {
92
+ const { workspaceRoot, projectRoot, outputPath, cacheOptions, poll, preserveSymlinks, signal, watchFiles, } = options;
93
+ const normalizedOutputBase = (0, path_1.toPosixPath)(outputPath);
94
+ const normalizedCacheBase = (0, path_1.toPosixPath)(cacheOptions.basePath);
95
+ const ignored = [
96
+ // Ignore the output and cache paths to avoid infinite rebuild cycles
97
+ normalizedOutputBase,
98
+ `${normalizedOutputBase}/**`,
99
+ normalizedCacheBase,
100
+ `${normalizedCacheBase}/**`,
101
+ `${(0, path_1.toPosixPath)(workspaceRoot)}/**/.*/**`,
102
+ ];
103
+ if (cacheOptions.localBasePath && cacheOptions.localBasePath !== cacheOptions.basePath) {
104
+ const normalizedLocalCacheBase = (0, path_1.toPosixPath)(cacheOptions.localBasePath);
105
+ ignored.push(normalizedLocalCacheBase, `${normalizedLocalCacheBase}/**`);
106
+ }
107
+ if (environment_options_1.shouldWatchRoot && !preserveSymlinks) {
108
+ // Ignore all node modules directories to avoid excessive file watchers.
109
+ // Package changes are handled below by watching manifest and lock files.
110
+ // NOTE: this is not enabled when preserveSymlinks is true as this would break `npm link` usages.
111
+ ignored.push('**/node_modules/**');
112
+ }
113
+ const watcher = await createWatcher({
114
+ polling: typeof poll === 'number',
115
+ interval: poll,
116
+ followSymlinks: preserveSymlinks,
117
+ ignored,
118
+ cwd: workspaceRoot,
119
+ });
120
+ // Setup abort support
121
+ if (signal) {
122
+ const onAbort = () => void watcher.close();
123
+ signal.addEventListener('abort', onAbort, { once: true });
124
+ const originalClose = watcher.close.bind(watcher);
125
+ watcher.close = async () => {
126
+ signal.removeEventListener('abort', onAbort);
127
+ await originalClose();
128
+ };
129
+ }
130
+ // Watch the entire project root if 'NG_BUILD_WATCH_ROOT' environment variable is set
131
+ if (environment_options_1.shouldWatchRoot) {
132
+ if (!preserveSymlinks) {
133
+ watcher.add(packageWatchFiles
134
+ .map((file) => path.join(workspaceRoot, file))
135
+ .filter((file) => fs.existsSync(file)));
136
+ }
137
+ watcher.add(projectRoot);
138
+ }
139
+ if (watchFiles) {
140
+ watcher.add(Array.isArray(watchFiles) ? watchFiles : Array.from(watchFiles));
141
+ }
142
+ return watcher;
143
+ }
144
+ /**
145
+ * Probes the filesystem at the specified target directory to determine whether it is case-sensitive.
146
+ */
147
+ function isFileSystemCaseSensitive(targetDir = process.cwd()) {
148
+ try {
149
+ const resolved = path.resolve(targetDir);
150
+ if (!fs.existsSync(resolved)) {
151
+ return process.platform !== 'win32' && process.platform !== 'darwin';
152
+ }
153
+ // Invert the casing of the target directory path.
154
+ const altCase = resolved === resolved.toLowerCase() ? resolved.toUpperCase() : resolved.toLowerCase();
155
+ // If the path contains no alphabetic characters (e.g. root '/'), invert-casing
156
+ // produces the exact same string. Fall back to platform-specific defaults in this case.
157
+ if (resolved === altCase) {
158
+ return process.platform !== 'win32' && process.platform !== 'darwin';
159
+ }
160
+ // If both the original path and the inverted-casing path exist on disk,
161
+ // the filesystem is case-insensitive (returns false).
162
+ return !fs.existsSync(altCase);
163
+ }
164
+ catch {
165
+ // If an error occurs (e.g., permission denied), default to the platform-specific
166
+ // behavior (case-insensitive on Windows/macOS, sensitive on Linux/Unix).
167
+ return process.platform !== 'win32' && process.platform !== 'darwin';
168
+ }
169
+ }
170
+ /**
171
+ * Normalizes a file system path string to POSIX format (forward slashes '/')
172
+ * and strips trailing slashes (except root '/' or Windows drive root 'C:/').
173
+ */
174
+ function toPosixPathNormalized(pathString) {
175
+ let posixPath = (0, path_1.toPosixPath)(pathString);
176
+ if (posixPath.length > 1 && posixPath.endsWith('/') && !/^[a-zA-Z]:\/$/.test(posixPath)) {
177
+ posixPath = posixPath.slice(0, -1);
178
+ }
179
+ return posixPath;
180
+ }
181
+ /**
182
+ * Returns a lookup key for set lookups and matching, lowercasing on case-insensitive file systems.
183
+ */
184
+ function toLookupKey(posixPath, isCaseSensitive) {
185
+ return isCaseSensitive ? posixPath : posixPath.toLowerCase();
186
+ }
187
+ /**
188
+ * Returns the parent directory of a normalized POSIX path, correctly handling Windows drive roots.
189
+ */
190
+ function getDirectoryPath(posixPath) {
191
+ const lastSlash = posixPath.lastIndexOf('/');
192
+ if (lastSlash === -1) {
193
+ return '.';
194
+ }
195
+ const dir = posixPath.slice(0, lastSlash);
196
+ if (dir === '' || dir.endsWith(':')) {
197
+ return dir + '/';
198
+ }
199
+ return dir;
200
+ }
201
+ /**
202
+ * Determines whether a file path lookup key or any of its parent directories are present in watchedFiles.
203
+ */
204
+ function isPathWatched(fileLookupKey, watchedFiles) {
205
+ if (watchedFiles.has(fileLookupKey)) {
206
+ return true;
207
+ }
208
+ let current = fileLookupKey;
209
+ while (true) {
210
+ const parent = getDirectoryPath(current);
211
+ if (parent === current) {
212
+ break;
213
+ }
214
+ if (watchedFiles.has(parent)) {
215
+ return true;
216
+ }
217
+ current = parent;
218
+ }
219
+ return false;
220
+ }
221
+ class WatcherQueue {
222
+ debounceMs;
223
+ maxWaitMs;
224
+ nextQueue = [];
225
+ currentChangedFiles;
226
+ isClosed = false;
227
+ timeoutId;
228
+ firstChangeTime;
229
+ constructor(debounceMs = 100, maxWaitMs = 500) {
230
+ this.debounceMs = debounceMs;
231
+ this.maxWaitMs = maxWaitMs;
232
+ }
233
+ addChange(type, file) {
234
+ if (this.isClosed) {
235
+ return;
236
+ }
237
+ const changedFiles = (this.currentChangedFiles ??= new ChangedFiles());
238
+ changedFiles[type].add(file);
239
+ this.scheduleFlush();
240
+ }
241
+ addChanges(changes) {
242
+ if (this.isClosed || changes.length === 0) {
243
+ return;
244
+ }
245
+ const changedFiles = (this.currentChangedFiles ??= new ChangedFiles());
246
+ for (const { type, file } of changes) {
247
+ changedFiles[type].add(file);
248
+ }
249
+ this.scheduleFlush();
250
+ }
251
+ scheduleFlush() {
252
+ const now = Date.now();
253
+ const firstChangeTime = (this.firstChangeTime ??= now);
254
+ if (this.timeoutId) {
255
+ clearTimeout(this.timeoutId);
256
+ }
257
+ const elapsed = now - firstChangeTime;
258
+ const remainingMaxWait = Math.max(0, this.maxWaitMs - elapsed);
259
+ const delay = Math.min(this.debounceMs, remainingMaxWait);
260
+ this.timeoutId = setTimeout(() => {
261
+ this.timeoutId = undefined;
262
+ this.flush();
263
+ }, delay);
264
+ }
265
+ flush() {
266
+ this.firstChangeTime = undefined;
267
+ if (this.currentChangedFiles &&
268
+ this.currentChangedFiles.all.length > 0 &&
269
+ this.nextQueue.length > 0) {
270
+ const next = this.nextQueue.shift();
271
+ if (next) {
272
+ const result = this.currentChangedFiles;
273
+ this.currentChangedFiles = undefined;
274
+ next(result);
275
+ }
276
+ }
277
+ }
278
+ async next() {
279
+ if (this.currentChangedFiles &&
280
+ this.currentChangedFiles.all.length > 0 &&
281
+ this.nextQueue.length === 0 &&
282
+ !this.timeoutId) {
283
+ const result = { value: this.currentChangedFiles };
284
+ this.currentChangedFiles = undefined;
285
+ return result;
286
+ }
287
+ if (this.isClosed) {
288
+ return { done: true, value: undefined };
289
+ }
290
+ return new Promise((resolve) => {
291
+ this.nextQueue.push((value) => resolve(value ? { value } : { done: true, value: undefined }));
292
+ });
293
+ }
294
+ close() {
295
+ if (this.isClosed) {
296
+ return;
297
+ }
298
+ if (this.timeoutId) {
299
+ clearTimeout(this.timeoutId);
300
+ this.timeoutId = undefined;
301
+ }
302
+ this.firstChangeTime = undefined;
303
+ this.isClosed = true;
304
+ this.currentChangedFiles = undefined;
305
+ let next;
306
+ while ((next = this.nextQueue.shift()) !== undefined) {
307
+ next();
308
+ }
309
+ }
310
+ }
311
+ async function createWatcher(options) {
312
+ if (options?.polling || options?.followSymlinks) {
313
+ return createChokidarWatcher(options);
314
+ }
315
+ try {
316
+ const parcelWatcher = await Promise.resolve().then(() => __importStar(require('@parcel/watcher')));
317
+ return await createParcelWatcher(options, parcelWatcher);
318
+ }
319
+ catch {
320
+ return createChokidarWatcher(options);
321
+ }
322
+ }
323
+ /**
324
+ * Checks whether a file path is located inside a parent directory.
325
+ *
326
+ * Input Expectations:
327
+ * - Both `file` and `dir` must be normalized POSIX-style paths (using forward slashes '/').
328
+ * - Both paths must share the same casing normalization (e.g., lowercased on case-insensitive file systems).
329
+ */
330
+ function isPathInside(file, dir) {
331
+ if (file === dir) {
332
+ return false;
333
+ }
334
+ const dirWithSlash = dir.endsWith('/') ? dir : dir + '/';
335
+ return file.startsWith(dirWithSlash);
336
+ }
337
+ class ParcelExternalManager {
338
+ parcelWatcher;
339
+ options;
340
+ rootDirLookupKey;
341
+ handleEvents;
342
+ extraSubscriptions = new Map();
343
+ pendingSubscriptions = new Map();
344
+ externalDirFiles = new Map();
345
+ constructor(parcelWatcher, options, rootDirLookupKey, handleEvents) {
346
+ this.parcelWatcher = parcelWatcher;
347
+ this.options = options;
348
+ this.rootDirLookupKey = rootDirLookupKey;
349
+ this.handleEvents = handleEvents;
350
+ }
351
+ async ensureWatched(posixPath, lookupKey) {
352
+ if (isPathInside(lookupKey, this.rootDirLookupKey) || lookupKey === this.rootDirLookupKey) {
353
+ return;
354
+ }
355
+ const dirPath = getDirectoryPath(posixPath);
356
+ const dirKey = getDirectoryPath(lookupKey);
357
+ let dirEntry = this.externalDirFiles.get(dirKey);
358
+ if (!dirEntry) {
359
+ dirEntry = { dirPath, files: new Set() };
360
+ this.externalDirFiles.set(dirKey, dirEntry);
361
+ }
362
+ dirEntry.files.add(lookupKey);
363
+ await this.ensureDirWatched(dirPath, dirKey);
364
+ }
365
+ removeFile(lookupKey) {
366
+ if (isPathInside(lookupKey, this.rootDirLookupKey) || lookupKey === this.rootDirLookupKey) {
367
+ return;
368
+ }
369
+ const dirKey = getDirectoryPath(lookupKey);
370
+ const dirEntry = this.externalDirFiles.get(dirKey);
371
+ if (dirEntry) {
372
+ dirEntry.files.delete(lookupKey);
373
+ if (dirEntry.files.size === 0) {
374
+ this.externalDirFiles.delete(dirKey);
375
+ const sub = this.extraSubscriptions.get(dirKey);
376
+ if (sub) {
377
+ this.extraSubscriptions.delete(dirKey);
378
+ sub.unsubscribe().catch(() => { });
379
+ for (const [remainingDirKey, remainingDirEntry] of this.externalDirFiles.entries()) {
380
+ if (!this.isCoveredByExistingExternal(remainingDirKey)) {
381
+ this.ensureDirWatched(remainingDirEntry.dirPath, remainingDirKey).catch(() => { });
382
+ }
383
+ }
384
+ }
385
+ }
386
+ }
387
+ }
388
+ async close() {
389
+ try {
390
+ if (this.pendingSubscriptions.size > 0) {
391
+ await Promise.allSettled(Array.from(this.pendingSubscriptions.values()));
392
+ }
393
+ if (this.extraSubscriptions.size > 0) {
394
+ await Promise.allSettled(Array.from(this.extraSubscriptions.values()).map((sub) => sub.unsubscribe()));
395
+ }
396
+ }
397
+ finally {
398
+ this.extraSubscriptions.clear();
399
+ this.pendingSubscriptions.clear();
400
+ this.externalDirFiles.clear();
401
+ }
402
+ }
403
+ isCoveredByExistingExternal(dirLookupKey) {
404
+ for (const existingDir of this.extraSubscriptions.keys()) {
405
+ if (dirLookupKey === existingDir || isPathInside(dirLookupKey, existingDir)) {
406
+ return true;
407
+ }
408
+ }
409
+ for (const pendingDir of this.pendingSubscriptions.keys()) {
410
+ if (dirLookupKey === pendingDir || isPathInside(dirLookupKey, pendingDir)) {
411
+ return true;
412
+ }
413
+ }
414
+ return false;
415
+ }
416
+ async ensureDirWatched(dirPath, dirKey) {
417
+ if (this.isCoveredByExistingExternal(dirKey)) {
418
+ return;
419
+ }
420
+ const subPromise = this.parcelWatcher.subscribe(dirPath, (err, events) => {
421
+ if (!err) {
422
+ this.handleEvents(events);
423
+ }
424
+ }, {
425
+ ignore: this.options?.ignored,
426
+ });
427
+ this.pendingSubscriptions.set(dirKey, subPromise);
428
+ try {
429
+ const sub = await subPromise;
430
+ if (this.externalDirFiles.has(dirKey) && !this.isCoveredByExistingExternal(dirKey)) {
431
+ this.extraSubscriptions.set(dirKey, sub);
432
+ // Subsume any nested child subscriptions that are now covered by this parent subscription
433
+ for (const [childDir, childSub] of this.extraSubscriptions.entries()) {
434
+ if (childDir !== dirKey && isPathInside(childDir, dirKey)) {
435
+ this.extraSubscriptions.delete(childDir);
436
+ childSub.unsubscribe().catch(() => { });
437
+ }
438
+ }
439
+ }
440
+ else {
441
+ sub.unsubscribe().catch(() => { });
442
+ }
443
+ }
444
+ catch {
445
+ // Ignore subscription errors for missing or restricted external directories
446
+ }
447
+ finally {
448
+ this.pendingSubscriptions.delete(dirKey);
449
+ }
450
+ }
451
+ }
452
+ async function createParcelWatcher(options, parcelWatcher) {
453
+ const watchedFiles = new Set();
454
+ const queue = new WatcherQueue();
455
+ const isCaseSensitive = isFileSystemCaseSensitive(options?.cwd);
456
+ const rootDirPosix = toPosixPathNormalized(options?.cwd ?? process.cwd());
457
+ const rootDirLookupKey = toLookupKey(rootDirPosix, isCaseSensitive);
458
+ const initTime = Date.now();
459
+ const handleEvents = (events) => {
460
+ const changes = [];
461
+ for (const event of events) {
462
+ const posixPath = toPosixPathNormalized(event.path);
463
+ const lookupKey = toLookupKey(posixPath, isCaseSensitive);
464
+ if (!isPathWatched(lookupKey, watchedFiles)) {
465
+ continue;
466
+ }
467
+ if (event.type !== 'delete') {
468
+ const stat = fs.statSync(event.path, { throwIfNoEntry: false });
469
+ // Ignore historical events from before watcher initialization, but allow a 1000 ms window
470
+ // to account for coarse filesystem timestamp resolution (e.g., ext4/overlayfs integer second
471
+ // mtime truncation on Linux) where files modified during startup may have truncated .000 ms mtimes.
472
+ if (stat && stat.mtimeMs < initTime - 1000) {
473
+ continue;
474
+ }
475
+ }
476
+ const type = event.type === 'create' ? 'added' : event.type === 'delete' ? 'removed' : 'modified';
477
+ changes.push({ type, file: event.path });
478
+ }
479
+ if (changes.length > 0) {
480
+ queue.addChanges(changes);
481
+ }
482
+ };
483
+ const subscription = await parcelWatcher.subscribe(rootDirPosix, (err, events) => {
484
+ if (!err) {
485
+ handleEvents(events);
486
+ }
487
+ }, {
488
+ ignore: options?.ignored,
489
+ });
490
+ const externalManager = new ParcelExternalManager(parcelWatcher, options, rootDirLookupKey, handleEvents);
491
+ const buildWatcher = {
492
+ [Symbol.asyncIterator]() {
493
+ return this;
494
+ },
495
+ next() {
496
+ return queue.next();
497
+ },
498
+ add(paths) {
499
+ const targets = typeof paths === 'string' ? [paths] : paths;
500
+ for (const file of targets) {
501
+ const posixPath = toPosixPathNormalized(file);
502
+ const lookupKey = toLookupKey(posixPath, isCaseSensitive);
503
+ if (!watchedFiles.has(lookupKey)) {
504
+ watchedFiles.add(lookupKey);
505
+ void externalManager.ensureWatched(posixPath, lookupKey);
506
+ }
507
+ }
508
+ },
509
+ remove(paths) {
510
+ const targets = typeof paths === 'string' ? [paths] : paths;
511
+ for (const file of targets) {
512
+ const posixPath = toPosixPathNormalized(file);
513
+ const lookupKey = toLookupKey(posixPath, isCaseSensitive);
514
+ if (watchedFiles.delete(lookupKey)) {
515
+ externalManager.removeFile(lookupKey);
516
+ }
517
+ }
518
+ },
519
+ async close() {
520
+ try {
521
+ if (subscription) {
522
+ await subscription.unsubscribe();
523
+ }
524
+ await externalManager.close();
525
+ }
526
+ finally {
527
+ queue.close();
528
+ }
529
+ },
530
+ };
531
+ return buildWatcher;
532
+ }
533
+ async function createChokidarWatcher(options, chokidarModule) {
534
+ const chokidar = chokidarModule ?? (await Promise.resolve().then(() => __importStar(require('chokidar'))));
535
+ const watchedFiles = new Set();
536
+ let queue;
537
+ if (options?.polling) {
538
+ const pollingInterval = options.interval ?? 100;
539
+ const debounceMs = Math.min(250, Math.max(100, Math.ceil(pollingInterval * 1.5)));
540
+ const maxWaitMs = Math.max(500, debounceMs * 3);
541
+ queue = new WatcherQueue(debounceMs, maxWaitMs);
542
+ }
543
+ else {
544
+ queue = new WatcherQueue();
545
+ }
546
+ const rootDir = options?.cwd ?? process.cwd();
547
+ const isCaseSensitive = isFileSystemCaseSensitive(rootDir);
548
+ const rootDirPosix = toPosixPathNormalized(rootDir);
549
+ const rootDirLookupKey = toLookupKey(rootDirPosix, isCaseSensitive);
550
+ const ignored = options?.ignored?.map((pattern) => {
551
+ if (/[*?[\]{}()]/.test(pattern)) {
552
+ const isMatch = (0, picomatch_1.default)(pattern, { dot: true });
553
+ return (filePath) => isMatch(toPosixPathNormalized(filePath));
554
+ }
555
+ return { path: toPosixPathNormalized(pattern), recursive: true };
556
+ });
557
+ const watcher = chokidar.watch(rootDir, {
558
+ ignoreInitial: true,
559
+ ignored,
560
+ followSymlinks: options?.followSymlinks,
561
+ usePolling: !!options?.polling,
562
+ interval: options?.interval,
563
+ });
564
+ const initTime = Date.now();
565
+ // Wait for the watcher to complete its initial filesystem scan before returning.
566
+ // With `ignoreInitial: true`, any file visited during the initial scan is treated as the initial baseline
567
+ // and will not emit 'add' or 'change' events. Awaiting 'ready' ensures that rapid file modifications
568
+ // made right after watcher setup (e.g. in rebuild tests) are not swallowed as initial files.
569
+ await (0, node_events_1.once)(watcher, 'ready');
570
+ const handleEvent = (type, rawPath) => {
571
+ const posixPath = toPosixPathNormalized(rawPath);
572
+ const lookupKey = toLookupKey(posixPath, isCaseSensitive);
573
+ if (!isPathWatched(lookupKey, watchedFiles)) {
574
+ return;
575
+ }
576
+ if (type !== 'removed') {
577
+ const stat = fs.statSync(rawPath, { throwIfNoEntry: false });
578
+ // Ignore historical events from before watcher initialization, but allow a 1000 ms window
579
+ // to account for coarse filesystem timestamp resolution (e.g., ext4/overlayfs integer second
580
+ // mtime truncation on Linux) where files modified during startup may have truncated .000 ms mtimes.
581
+ if (stat && stat.mtimeMs < initTime - 1000) {
582
+ return;
583
+ }
584
+ }
585
+ queue.addChange(type, rawPath);
586
+ };
587
+ watcher.on('add', (path) => handleEvent('added', path));
588
+ watcher.on('change', (path) => handleEvent('modified', path));
589
+ watcher.on('unlink', (path) => handleEvent('removed', path));
590
+ const buildWatcher = {
591
+ [Symbol.asyncIterator]() {
592
+ return this;
593
+ },
594
+ next() {
595
+ return queue.next();
596
+ },
597
+ add(paths) {
598
+ const targets = typeof paths === 'string' ? [paths] : paths;
599
+ const newPaths = [];
600
+ for (const p of targets) {
601
+ const posixPath = toPosixPathNormalized(p);
602
+ const lookupKey = toLookupKey(posixPath, isCaseSensitive);
603
+ if (!watchedFiles.has(lookupKey)) {
604
+ watchedFiles.add(lookupKey);
605
+ if (!isPathInside(lookupKey, rootDirLookupKey) && lookupKey !== rootDirLookupKey) {
606
+ newPaths.push(posixPath);
607
+ }
608
+ }
609
+ }
610
+ if (newPaths.length > 0) {
611
+ watcher.add(newPaths);
612
+ }
613
+ },
614
+ remove(paths) {
615
+ const targets = typeof paths === 'string' ? [paths] : paths;
616
+ const removePaths = [];
617
+ for (const p of targets) {
618
+ const posixPath = toPosixPathNormalized(p);
619
+ const lookupKey = toLookupKey(posixPath, isCaseSensitive);
620
+ if (watchedFiles.has(lookupKey)) {
621
+ watchedFiles.delete(lookupKey);
622
+ if (!isPathInside(lookupKey, rootDirLookupKey) && lookupKey !== rootDirLookupKey) {
623
+ removePaths.push(posixPath);
624
+ }
625
+ }
626
+ }
627
+ if (removePaths.length > 0) {
628
+ watcher.unwatch(removePaths);
629
+ }
630
+ },
631
+ async close() {
632
+ try {
633
+ await watcher.close();
634
+ }
635
+ finally {
636
+ queue.close();
637
+ }
638
+ },
639
+ };
640
+ return buildWatcher;
641
+ }
642
+ //# sourceMappingURL=watcher.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"watcher.js","sourceRoot":"","sources":["watcher.ts"],"names":[],"mappings":"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"}