@decohere/forge 0.0.1-dev.20 → 0.0.1-dev.20261105.54

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 (200) hide show
  1. package/LICENSE +15 -0
  2. package/README.md +152 -0
  3. package/commonjs/src/actions/build.action.js +4 -6
  4. package/commonjs/src/actions/clean.action.js +4 -6
  5. package/commonjs/src/actions/commit.action.js +4 -6
  6. package/commonjs/src/actions/copy.action.js +62 -12
  7. package/commonjs/src/actions/dependency-report.action.js +8 -6
  8. package/commonjs/src/actions/dependency-sync.action.js +9 -5
  9. package/commonjs/src/actions/docker.action.js +83 -36
  10. package/commonjs/src/actions/index.js +3 -2
  11. package/commonjs/src/actions/link.action.js +3 -5
  12. package/commonjs/src/actions/package.action.js +234 -0
  13. package/commonjs/src/actions/paths.action.js +120 -0
  14. package/commonjs/src/actions/publish.action.js +4 -6
  15. package/commonjs/src/actions/sync-lock-file.action.js +2 -4
  16. package/commonjs/src/actions/tag.action.js +6 -9
  17. package/commonjs/src/actions/typecheck.action.js +67 -0
  18. package/commonjs/src/actions/unlink.action.js +1 -3
  19. package/commonjs/src/actions/version.action.js +74 -21
  20. package/commonjs/src/actions/watch.action.js +3 -5
  21. package/commonjs/src/commands/build.command.js +4 -3
  22. package/commonjs/src/commands/dependency.command.js +1 -3
  23. package/commonjs/src/commands/docker.command.js +2 -4
  24. package/commonjs/src/commands/forge.command.js +1 -3
  25. package/commonjs/src/commands/index.js +3 -2
  26. package/commonjs/src/commands/link.command.js +4 -3
  27. package/commonjs/src/commands/package.command.js +36 -0
  28. package/commonjs/src/commands/paths.command.js +24 -0
  29. package/commonjs/src/commands/publish.command.js +1 -3
  30. package/commonjs/src/commands/tag.command.js +1 -3
  31. package/commonjs/src/commands/typecheck.command.js +24 -0
  32. package/commonjs/src/commands/version.command.js +3 -3
  33. package/commonjs/src/const.js +0 -2
  34. package/commonjs/src/create-workspace.js +38 -0
  35. package/commonjs/src/errors.js +2 -4
  36. package/commonjs/src/extensions/project.extensions.js +11 -13
  37. package/commonjs/src/factories/swc-config.factory.js +29 -9
  38. package/commonjs/src/forge.module.js +15 -20
  39. package/commonjs/src/index.js +8 -2
  40. package/commonjs/src/packaging/dependency-pinner.service.js +118 -0
  41. package/commonjs/src/packaging/deployable.js +44 -0
  42. package/commonjs/src/packaging/import-graph.service.js +137 -0
  43. package/commonjs/src/packaging/release-exports.js +90 -0
  44. package/commonjs/src/packaging/ui-assets.js +75 -0
  45. package/commonjs/src/semver/index.js +18 -0
  46. package/commonjs/src/semver/semver.js +96 -0
  47. package/commonjs/src/services/dependency-resolver.service.js +70 -26
  48. package/commonjs/src/services/file-writer.service.js +2 -11
  49. package/commonjs/src/services/incremental-watch.js +24 -0
  50. package/commonjs/src/services/output-cache.js +39 -0
  51. package/commonjs/src/services/swc-transpiler.js +85 -99
  52. package/commonjs/src/services/transpile-cache.js +44 -0
  53. package/commonjs/src/services/ts-compiler-options.js +50 -0
  54. package/commonjs/src/services/ts-program-host.js +4 -6
  55. package/commonjs/src/services/type-emission-program.js +25 -10
  56. package/commonjs/src/services/type-emitter.js +60 -20
  57. package/commonjs/src/transpile/index.js +30 -0
  58. package/commonjs/src/types/build-target.type.js +0 -2
  59. package/commonjs/src/types/configuration.type.js +0 -2
  60. package/commonjs/src/types/dependency.types.js +0 -2
  61. package/commonjs/src/types/swc-config.type.js +0 -2
  62. package/commonjs/src/types/transform-response.model.js +3 -18
  63. package/commonjs/src/types/transformer.type.js +0 -2
  64. package/commonjs/src/types/workspace-config.type.js +0 -2
  65. package/commonjs/src/vitest/forge-build.plugin.js +28 -44
  66. package/commonjs/src/vitest/index.js +0 -2
  67. package/commonjs/src/workspace.config.js +27 -6
  68. package/es6/src/actions/build.action.js +3 -7
  69. package/es6/src/actions/clean.action.js +3 -6
  70. package/es6/src/actions/commit.action.js +3 -6
  71. package/es6/src/actions/copy.action.js +61 -12
  72. package/es6/src/actions/dependency-report.action.js +7 -7
  73. package/es6/src/actions/dependency-sync.action.js +8 -6
  74. package/es6/src/actions/docker.action.js +82 -36
  75. package/es6/src/actions/index.js +3 -2
  76. package/es6/src/actions/link.action.js +2 -5
  77. package/es6/src/actions/package.action.js +219 -0
  78. package/es6/src/actions/paths.action.js +97 -0
  79. package/es6/src/actions/publish.action.js +3 -6
  80. package/es6/src/actions/sync-lock-file.action.js +2 -4
  81. package/es6/src/actions/tag.action.js +5 -9
  82. package/es6/src/actions/typecheck.action.js +52 -0
  83. package/es6/src/actions/unlink.action.js +1 -3
  84. package/es6/src/actions/version.action.js +69 -17
  85. package/es6/src/actions/watch.action.js +2 -5
  86. package/es6/src/commands/build.command.js +4 -3
  87. package/es6/src/commands/dependency.command.js +1 -3
  88. package/es6/src/commands/docker.command.js +2 -4
  89. package/es6/src/commands/forge.command.js +1 -3
  90. package/es6/src/commands/index.js +3 -2
  91. package/es6/src/commands/link.command.js +4 -3
  92. package/es6/src/commands/package.command.js +26 -0
  93. package/es6/src/commands/paths.command.js +14 -0
  94. package/es6/src/commands/publish.command.js +1 -3
  95. package/es6/src/commands/tag.command.js +1 -3
  96. package/es6/src/commands/typecheck.command.js +14 -0
  97. package/es6/src/commands/version.command.js +3 -3
  98. package/es6/src/const.js +0 -2
  99. package/es6/src/create-workspace.js +26 -0
  100. package/es6/src/errors.js +1 -3
  101. package/es6/src/extensions/project.extensions.js +5 -7
  102. package/es6/src/factories/swc-config.factory.js +29 -9
  103. package/es6/src/forge.module.js +15 -20
  104. package/es6/src/index.js +2 -2
  105. package/es6/src/packaging/dependency-pinner.service.js +103 -0
  106. package/es6/src/packaging/deployable.js +21 -0
  107. package/es6/src/packaging/import-graph.service.js +122 -0
  108. package/es6/src/packaging/release-exports.js +80 -0
  109. package/es6/src/packaging/ui-assets.js +49 -0
  110. package/es6/src/semver/index.js +1 -0
  111. package/es6/src/semver/semver.js +75 -0
  112. package/es6/src/services/dependency-resolver.service.js +70 -26
  113. package/es6/src/services/file-writer.service.js +2 -11
  114. package/es6/src/services/incremental-watch.js +18 -0
  115. package/es6/src/services/output-cache.js +29 -0
  116. package/es6/src/services/swc-transpiler.js +85 -99
  117. package/es6/src/services/transpile-cache.js +29 -0
  118. package/es6/src/services/ts-compiler-options.js +39 -0
  119. package/es6/src/services/ts-program-host.js +4 -6
  120. package/es6/src/services/type-emission-program.js +25 -10
  121. package/es6/src/services/type-emitter.js +57 -20
  122. package/es6/src/transpile/index.js +6 -0
  123. package/es6/src/types/build-target.type.js +0 -2
  124. package/es6/src/types/configuration.type.js +0 -2
  125. package/es6/src/types/dependency.types.js +0 -2
  126. package/es6/src/types/swc-config.type.js +0 -2
  127. package/es6/src/types/transform-response.model.js +0 -7
  128. package/es6/src/types/transformer.type.js +0 -2
  129. package/es6/src/types/workspace-config.type.js +0 -2
  130. package/es6/src/vitest/forge-build.plugin.js +27 -43
  131. package/es6/src/vitest/index.js +0 -2
  132. package/es6/src/workspace.config.js +26 -5
  133. package/package.json +20 -6
  134. package/types/src/actions/build.action.d.ts +4 -4
  135. package/types/src/actions/clean.action.d.ts +3 -3
  136. package/types/src/actions/commit.action.d.ts +3 -3
  137. package/types/src/actions/copy.action.d.ts +18 -3
  138. package/types/src/actions/dependency-report.action.d.ts +3 -3
  139. package/types/src/actions/dependency-sync.action.d.ts +3 -3
  140. package/types/src/actions/docker.action.d.ts +14 -3
  141. package/types/src/actions/index.d.ts +3 -0
  142. package/types/src/actions/link.action.d.ts +3 -3
  143. package/types/src/actions/package.action.d.ts +38 -0
  144. package/types/src/actions/paths.action.d.ts +28 -0
  145. package/types/src/actions/publish.action.d.ts +4 -4
  146. package/types/src/actions/sync-lock-file.action.d.ts +2 -2
  147. package/types/src/actions/tag.action.d.ts +3 -3
  148. package/types/src/actions/typecheck.action.d.ts +14 -0
  149. package/types/src/actions/unlink.action.d.ts +2 -2
  150. package/types/src/actions/version.action.d.ts +14 -4
  151. package/types/src/actions/watch.action.d.ts +3 -3
  152. package/types/src/commands/build.command.d.ts +3 -2
  153. package/types/src/commands/dependency.command.d.ts +2 -2
  154. package/types/src/commands/docker.command.d.ts +1 -1
  155. package/types/src/commands/forge.command.d.ts +2 -2
  156. package/types/src/commands/index.d.ts +3 -0
  157. package/types/src/commands/link.command.d.ts +3 -2
  158. package/types/src/commands/package.command.d.ts +11 -0
  159. package/types/src/commands/paths.command.d.ts +6 -0
  160. package/types/src/commands/publish.command.d.ts +1 -1
  161. package/types/src/commands/tag.command.d.ts +1 -1
  162. package/types/src/commands/typecheck.command.d.ts +6 -0
  163. package/types/src/commands/version.command.d.ts +1 -1
  164. package/types/src/create-workspace.d.ts +7 -0
  165. package/types/src/errors.d.ts +1 -1
  166. package/types/src/extensions/project.extensions.d.ts +2 -2
  167. package/types/src/factories/swc-config.factory.d.ts +3 -2
  168. package/types/src/forge.module.d.ts +10 -4
  169. package/types/src/index.d.ts +2 -0
  170. package/types/src/packaging/dependency-pinner.service.d.ts +20 -0
  171. package/types/src/packaging/deployable.d.ts +17 -0
  172. package/types/src/packaging/import-graph.service.d.ts +33 -0
  173. package/types/src/packaging/release-exports.d.ts +18 -0
  174. package/types/src/packaging/ui-assets.d.ts +21 -0
  175. package/types/src/semver/index.d.ts +1 -0
  176. package/types/src/semver/semver.d.ts +20 -0
  177. package/types/src/services/dependency-resolver.service.d.ts +8 -1
  178. package/types/src/services/file-writer.service.d.ts +1 -2
  179. package/types/src/services/incremental-watch.d.ts +13 -0
  180. package/types/src/services/output-cache.d.ts +10 -0
  181. package/types/src/services/swc-transpiler.d.ts +28 -15
  182. package/types/src/services/transpile-cache.d.ts +17 -0
  183. package/types/src/services/ts-compiler-options.d.ts +8 -0
  184. package/types/src/services/ts-program-host.d.ts +2 -2
  185. package/types/src/services/type-emission-program.d.ts +10 -3
  186. package/types/src/services/type-emitter.d.ts +21 -8
  187. package/types/src/transpile/index.d.ts +6 -0
  188. package/types/src/types/configuration.type.d.ts +6 -1
  189. package/types/src/types/dependency.types.d.ts +8 -9
  190. package/types/src/types/swc-config.type.d.ts +7 -1
  191. package/types/src/types/transform-response.model.d.ts +2 -7
  192. package/types/src/types/transformer.type.d.ts +3 -12
  193. package/types/src/types/workspace-config.type.d.ts +3 -3
  194. package/types/src/vitest/forge-build.plugin.d.ts +0 -2
  195. package/commonjs/src/mixins/caches-outputs.mixin.js +0 -44
  196. package/commonjs/src/mixins/incremental-transform.mixin.js +0 -36
  197. package/es6/src/mixins/caches-outputs.mixin.js +0 -34
  198. package/es6/src/mixins/incremental-transform.mixin.js +0 -26
  199. package/types/src/mixins/caches-outputs.mixin.d.ts +0 -7
  200. package/types/src/mixins/incremental-transform.mixin.d.ts +0 -13
@@ -1,36 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", {
3
- value: true
4
- });
5
- Object.defineProperty(exports, "IncrementalTransform", {
6
- enumerable: true,
7
- get: function() {
8
- return IncrementalTransform;
9
- }
10
- });
11
- const _rxjs = require("rxjs");
12
- // WeakMap avoids the private-field-in-mixin problem: private class fields (#x)
13
- // are not accessible when methods are copied onto a different class prototype.
14
- const subjects = new WeakMap();
15
- function getSubject(instance) {
16
- let subject = subjects.get(instance);
17
- if (subject == null) {
18
- subject = new _rxjs.Subject();
19
- subjects.set(instance, subject);
20
- }
21
- return subject;
22
- }
23
- class IncrementalTransform {
24
- get incrementalTransform$() {
25
- return getSubject(this).asObservable();
26
- }
27
- watch(workspace) {
28
- workspace.projectFileChanged$.subscribe((evt)=>{
29
- void this.onIncrementalFileEvent(evt).then((responses)=>{
30
- getSubject(this).next(responses);
31
- });
32
- });
33
- }
34
- }
35
-
36
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL2RlY29oZXJlL2RlY29oZXJlL3Byb2plY3RzL2ZvcmdlL3NyYy9taXhpbnMvaW5jcmVtZW50YWwtdHJhbnNmb3JtLm1peGluLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgUHJvamVjdEZpbGVFdmVudCwgV29ya3NwYWNlIH0gZnJvbSBcIkBkZWNvaGVyZS9tZXNoXCI7XG5pbXBvcnQgdHlwZSB7IE9ic2VydmFibGUgfSBmcm9tIFwicnhqc1wiO1xuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gXCJyeGpzXCI7XG5pbXBvcnQgdHlwZSB7IFRyYW5zZm9ybVJlc3BvbnNlIH0gZnJvbSBcIi4uL3R5cGVzL3RyYW5zZm9ybS1yZXNwb25zZS5tb2RlbC5qc1wiO1xuXG4vLyBXZWFrTWFwIGF2b2lkcyB0aGUgcHJpdmF0ZS1maWVsZC1pbi1taXhpbiBwcm9ibGVtOiBwcml2YXRlIGNsYXNzIGZpZWxkcyAoI3gpXG4vLyBhcmUgbm90IGFjY2Vzc2libGUgd2hlbiBtZXRob2RzIGFyZSBjb3BpZWQgb250byBhIGRpZmZlcmVudCBjbGFzcyBwcm90b3R5cGUuXG5jb25zdCBzdWJqZWN0cyA9IG5ldyBXZWFrTWFwPG9iamVjdCwgU3ViamVjdDxUcmFuc2Zvcm1SZXNwb25zZVtdPj4oKTtcblxuZnVuY3Rpb24gZ2V0U3ViamVjdChpbnN0YW5jZTogb2JqZWN0KTogU3ViamVjdDxUcmFuc2Zvcm1SZXNwb25zZVtdPiB7XG5cdGxldCBzdWJqZWN0ID0gc3ViamVjdHMuZ2V0KGluc3RhbmNlKTtcblx0aWYgKHN1YmplY3QgPT0gbnVsbCkge1xuXHRcdHN1YmplY3QgPSBuZXcgU3ViamVjdDxUcmFuc2Zvcm1SZXNwb25zZVtdPigpO1xuXHRcdHN1YmplY3RzLnNldChpbnN0YW5jZSwgc3ViamVjdCk7XG5cdH1cblx0cmV0dXJuIHN1YmplY3Q7XG59XG5cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBJbmNyZW1lbnRhbFRyYW5zZm9ybSB7XG5cdHB1YmxpYyBnZXQgaW5jcmVtZW50YWxUcmFuc2Zvcm0kKCk6IE9ic2VydmFibGU8VHJhbnNmb3JtUmVzcG9uc2VbXT4ge1xuXHRcdHJldHVybiBnZXRTdWJqZWN0KHRoaXMpLmFzT2JzZXJ2YWJsZSgpO1xuXHR9XG5cblx0cHVibGljIHdhdGNoKHdvcmtzcGFjZTogV29ya3NwYWNlKTogdm9pZCB7XG5cdFx0d29ya3NwYWNlLnByb2plY3RGaWxlQ2hhbmdlZCQuc3Vic2NyaWJlKChldnQpID0+IHtcblx0XHRcdHZvaWQgdGhpcy5vbkluY3JlbWVudGFsRmlsZUV2ZW50KGV2dCkudGhlbigocmVzcG9uc2VzKSA9PiB7XG5cdFx0XHRcdGdldFN1YmplY3QodGhpcykubmV4dChyZXNwb25zZXMpO1xuXHRcdFx0fSk7XG5cdFx0fSk7XG5cdH1cblxuXHQvKipcblx0ICogQ2FsbGVkIGZvciBldmVyeSB3b3Jrc3BhY2UgZmlsZSBjaGFuZ2UuIEltcGxlbWVudGF0aW9ucyBzaG91bGQgaW52YWxpZGF0ZVxuXHQgKiBhbnkgaW50ZXJuYWwgY2FjaGVzLCBwZXJmb3JtIHRoZSBpbmNyZW1lbnRhbCB0cmFuc2Zvcm0sIGFuZCByZXR1cm4gdGhlIHJlc3VsdHMuXG5cdCAqIFJldHVybiBhbiBlbXB0eSBhcnJheSBmb3IgZGVsZXRpb25zIG9yIHdoZW4gbm8gb3V0cHV0IGlzIHByb2R1Y2VkLlxuXHQgKi9cblx0cHJvdGVjdGVkIGFic3RyYWN0IG9uSW5jcmVtZW50YWxGaWxlRXZlbnQoXG5cdFx0ZXZ0OiBQcm9qZWN0RmlsZUV2ZW50LFxuXHQpOiBQcm9taXNlPFRyYW5zZm9ybVJlc3BvbnNlW10+O1xufVxuIl0sIm5hbWVzIjpbIkluY3JlbWVudGFsVHJhbnNmb3JtIiwic3ViamVjdHMiLCJXZWFrTWFwIiwiZ2V0U3ViamVjdCIsImluc3RhbmNlIiwic3ViamVjdCIsImdldCIsIlN1YmplY3QiLCJzZXQiLCJpbmNyZW1lbnRhbFRyYW5zZm9ybSQiLCJhc09ic2VydmFibGUiLCJ3YXRjaCIsIndvcmtzcGFjZSIsInByb2plY3RGaWxlQ2hhbmdlZCQiLCJzdWJzY3JpYmUiLCJldnQiLCJvbkluY3JlbWVudGFsRmlsZUV2ZW50IiwidGhlbiIsInJlc3BvbnNlcyIsIm5leHQiXSwibWFwcGluZ3MiOiI7Ozs7K0JBa0JzQkE7OztlQUFBQTs7O3NCQWhCRTtBQUd4QiwrRUFBK0U7QUFDL0UsK0VBQStFO0FBQy9FLE1BQU1DLFdBQVcsSUFBSUM7QUFFckIsU0FBU0MsV0FBV0MsUUFBZ0I7SUFDbkMsSUFBSUMsVUFBVUosU0FBU0ssR0FBRyxDQUFDRjtJQUMzQixJQUFJQyxXQUFXLE1BQU07UUFDcEJBLFVBQVUsSUFBSUUsYUFBTztRQUNyQk4sU0FBU08sR0FBRyxDQUFDSixVQUFVQztJQUN4QjtJQUNBLE9BQU9BO0FBQ1I7QUFFTyxNQUFlTDtJQUNyQixJQUFXUyx3QkFBeUQ7UUFDbkUsT0FBT04sV0FBVyxJQUFJLEVBQUVPLFlBQVk7SUFDckM7SUFFT0MsTUFBTUMsU0FBb0IsRUFBUTtRQUN4Q0EsVUFBVUMsbUJBQW1CLENBQUNDLFNBQVMsQ0FBQyxDQUFDQztZQUN4QyxLQUFLLElBQUksQ0FBQ0Msc0JBQXNCLENBQUNELEtBQUtFLElBQUksQ0FBQyxDQUFDQztnQkFDM0NmLFdBQVcsSUFBSSxFQUFFZ0IsSUFBSSxDQUFDRDtZQUN2QjtRQUNEO0lBQ0Q7QUFVRCJ9
@@ -1,34 +0,0 @@
1
- import { io } from "@decohere/nexus/io";
2
- export class CachesOutputs {
3
- /** Maps source file fullPath -> output TransformResponses for cleanup in watch mode. */ get outputCache() {
4
- const self = this;
5
- if (self.__outputCache == null) {
6
- self.__outputCache = new Map();
7
- }
8
- return self.__outputCache;
9
- }
10
- cacheOutputs(responses) {
11
- const byFile = new Map();
12
- for (const response of responses){
13
- if (response.outcome !== "success") continue;
14
- const group = byFile.get(response.file.fullPath) ?? [];
15
- group.push(response);
16
- byFile.set(response.file.fullPath, group);
17
- }
18
- for (const [fullPath, group] of byFile){
19
- this.outputCache.set(fullPath, group);
20
- }
21
- }
22
- deleteCachedOutputs(filePath) {
23
- const outputs = this.outputCache.get(filePath);
24
- if (outputs == null) return;
25
- for (const response of outputs){
26
- if (response.outputPath != null) {
27
- void io.deleteFile(response.outputPath);
28
- }
29
- }
30
- this.outputCache.delete(filePath);
31
- }
32
- }
33
-
34
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL2RlY29oZXJlL2RlY29oZXJlL3Byb2plY3RzL2ZvcmdlL3NyYy9taXhpbnMvY2FjaGVzLW91dHB1dHMubWl4aW4udHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaW8gfSBmcm9tIFwiQGRlY29oZXJlL25leHVzL2lvXCI7XG5pbXBvcnQgdHlwZSB7IFRyYW5zZm9ybVJlc3BvbnNlIH0gZnJvbSBcIi4uL3R5cGVzL3RyYW5zZm9ybS1yZXNwb25zZS5tb2RlbC5qc1wiO1xuXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQ2FjaGVzT3V0cHV0cyB7XG5cdC8qKiBNYXBzIHNvdXJjZSBmaWxlIGZ1bGxQYXRoIC0+IG91dHB1dCBUcmFuc2Zvcm1SZXNwb25zZXMgZm9yIGNsZWFudXAgaW4gd2F0Y2ggbW9kZS4gKi9cblx0cHJvdGVjdGVkIGdldCBvdXRwdXRDYWNoZSgpOiBNYXA8c3RyaW5nLCBUcmFuc2Zvcm1SZXNwb25zZVtdPiB7XG5cdFx0Y29uc3Qgc2VsZiA9IHRoaXMgYXMgeyBfX291dHB1dENhY2hlPzogTWFwPHN0cmluZywgVHJhbnNmb3JtUmVzcG9uc2VbXT4gfTtcblx0XHRpZiAoc2VsZi5fX291dHB1dENhY2hlID09IG51bGwpIHtcblx0XHRcdHNlbGYuX19vdXRwdXRDYWNoZSA9IG5ldyBNYXA8c3RyaW5nLCBUcmFuc2Zvcm1SZXNwb25zZVtdPigpO1xuXHRcdH1cblx0XHRyZXR1cm4gc2VsZi5fX291dHB1dENhY2hlO1xuXHR9XG5cblx0cHJvdGVjdGVkIGNhY2hlT3V0cHV0cyhyZXNwb25zZXM6IFRyYW5zZm9ybVJlc3BvbnNlW10pOiB2b2lkIHtcblx0XHRjb25zdCBieUZpbGUgPSBuZXcgTWFwPHN0cmluZywgVHJhbnNmb3JtUmVzcG9uc2VbXT4oKTtcblx0XHRmb3IgKGNvbnN0IHJlc3BvbnNlIG9mIHJlc3BvbnNlcykge1xuXHRcdFx0aWYgKHJlc3BvbnNlLm91dGNvbWUgIT09IFwic3VjY2Vzc1wiKSBjb250aW51ZTtcblx0XHRcdGNvbnN0IGdyb3VwID0gYnlGaWxlLmdldChyZXNwb25zZS5maWxlLmZ1bGxQYXRoKSA/PyBbXTtcblx0XHRcdGdyb3VwLnB1c2gocmVzcG9uc2UpO1xuXHRcdFx0YnlGaWxlLnNldChyZXNwb25zZS5maWxlLmZ1bGxQYXRoLCBncm91cCk7XG5cdFx0fVxuXHRcdGZvciAoY29uc3QgW2Z1bGxQYXRoLCBncm91cF0gb2YgYnlGaWxlKSB7XG5cdFx0XHR0aGlzLm91dHB1dENhY2hlLnNldChmdWxsUGF0aCwgZ3JvdXApO1xuXHRcdH1cblx0fVxuXG5cdHByb3RlY3RlZCBkZWxldGVDYWNoZWRPdXRwdXRzKGZpbGVQYXRoOiBzdHJpbmcpOiB2b2lkIHtcblx0XHRjb25zdCBvdXRwdXRzID0gdGhpcy5vdXRwdXRDYWNoZS5nZXQoZmlsZVBhdGgpO1xuXHRcdGlmIChvdXRwdXRzID09IG51bGwpIHJldHVybjtcblx0XHRmb3IgKGNvbnN0IHJlc3BvbnNlIG9mIG91dHB1dHMpIHtcblx0XHRcdGlmIChyZXNwb25zZS5vdXRwdXRQYXRoICE9IG51bGwpIHtcblx0XHRcdFx0dm9pZCBpby5kZWxldGVGaWxlKHJlc3BvbnNlLm91dHB1dFBhdGgpO1xuXHRcdFx0fVxuXHRcdH1cblx0XHR0aGlzLm91dHB1dENhY2hlLmRlbGV0ZShmaWxlUGF0aCk7XG5cdH1cbn1cbiJdLCJuYW1lcyI6WyJpbyIsIkNhY2hlc091dHB1dHMiLCJvdXRwdXRDYWNoZSIsInNlbGYiLCJfX291dHB1dENhY2hlIiwiTWFwIiwiY2FjaGVPdXRwdXRzIiwicmVzcG9uc2VzIiwiYnlGaWxlIiwicmVzcG9uc2UiLCJvdXRjb21lIiwiZ3JvdXAiLCJnZXQiLCJmaWxlIiwiZnVsbFBhdGgiLCJwdXNoIiwic2V0IiwiZGVsZXRlQ2FjaGVkT3V0cHV0cyIsImZpbGVQYXRoIiwib3V0cHV0cyIsIm91dHB1dFBhdGgiLCJkZWxldGVGaWxlIiwiZGVsZXRlIl0sIm1hcHBpbmdzIjoiQUFBQSxTQUFTQSxFQUFFLFFBQVEscUJBQXFCO0FBR3hDLE9BQU8sTUFBZUM7SUFDckIsc0ZBQXNGLEdBQ3RGLElBQWNDLGNBQWdEO1FBQzdELE1BQU1DLE9BQU8sSUFBSTtRQUNqQixJQUFJQSxLQUFLQyxhQUFhLElBQUksTUFBTTtZQUMvQkQsS0FBS0MsYUFBYSxHQUFHLElBQUlDO1FBQzFCO1FBQ0EsT0FBT0YsS0FBS0MsYUFBYTtJQUMxQjtJQUVVRSxhQUFhQyxTQUE4QixFQUFRO1FBQzVELE1BQU1DLFNBQVMsSUFBSUg7UUFDbkIsS0FBSyxNQUFNSSxZQUFZRixVQUFXO1lBQ2pDLElBQUlFLFNBQVNDLE9BQU8sS0FBSyxXQUFXO1lBQ3BDLE1BQU1DLFFBQVFILE9BQU9JLEdBQUcsQ0FBQ0gsU0FBU0ksSUFBSSxDQUFDQyxRQUFRLEtBQUssRUFBRTtZQUN0REgsTUFBTUksSUFBSSxDQUFDTjtZQUNYRCxPQUFPUSxHQUFHLENBQUNQLFNBQVNJLElBQUksQ0FBQ0MsUUFBUSxFQUFFSDtRQUNwQztRQUNBLEtBQUssTUFBTSxDQUFDRyxVQUFVSCxNQUFNLElBQUlILE9BQVE7WUFDdkMsSUFBSSxDQUFDTixXQUFXLENBQUNjLEdBQUcsQ0FBQ0YsVUFBVUg7UUFDaEM7SUFDRDtJQUVVTSxvQkFBb0JDLFFBQWdCLEVBQVE7UUFDckQsTUFBTUMsVUFBVSxJQUFJLENBQUNqQixXQUFXLENBQUNVLEdBQUcsQ0FBQ007UUFDckMsSUFBSUMsV0FBVyxNQUFNO1FBQ3JCLEtBQUssTUFBTVYsWUFBWVUsUUFBUztZQUMvQixJQUFJVixTQUFTVyxVQUFVLElBQUksTUFBTTtnQkFDaEMsS0FBS3BCLEdBQUdxQixVQUFVLENBQUNaLFNBQVNXLFVBQVU7WUFDdkM7UUFDRDtRQUNBLElBQUksQ0FBQ2xCLFdBQVcsQ0FBQ29CLE1BQU0sQ0FBQ0o7SUFDekI7QUFDRCJ9
@@ -1,26 +0,0 @@
1
- import { Subject } from "rxjs";
2
- // WeakMap avoids the private-field-in-mixin problem: private class fields (#x)
3
- // are not accessible when methods are copied onto a different class prototype.
4
- const subjects = new WeakMap();
5
- function getSubject(instance) {
6
- let subject = subjects.get(instance);
7
- if (subject == null) {
8
- subject = new Subject();
9
- subjects.set(instance, subject);
10
- }
11
- return subject;
12
- }
13
- export class IncrementalTransform {
14
- get incrementalTransform$() {
15
- return getSubject(this).asObservable();
16
- }
17
- watch(workspace) {
18
- workspace.projectFileChanged$.subscribe((evt)=>{
19
- void this.onIncrementalFileEvent(evt).then((responses)=>{
20
- getSubject(this).next(responses);
21
- });
22
- });
23
- }
24
- }
25
-
26
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL2RlY29oZXJlL2RlY29oZXJlL3Byb2plY3RzL2ZvcmdlL3NyYy9taXhpbnMvaW5jcmVtZW50YWwtdHJhbnNmb3JtLm1peGluLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgUHJvamVjdEZpbGVFdmVudCwgV29ya3NwYWNlIH0gZnJvbSBcIkBkZWNvaGVyZS9tZXNoXCI7XG5pbXBvcnQgdHlwZSB7IE9ic2VydmFibGUgfSBmcm9tIFwicnhqc1wiO1xuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gXCJyeGpzXCI7XG5pbXBvcnQgdHlwZSB7IFRyYW5zZm9ybVJlc3BvbnNlIH0gZnJvbSBcIi4uL3R5cGVzL3RyYW5zZm9ybS1yZXNwb25zZS5tb2RlbC5qc1wiO1xuXG4vLyBXZWFrTWFwIGF2b2lkcyB0aGUgcHJpdmF0ZS1maWVsZC1pbi1taXhpbiBwcm9ibGVtOiBwcml2YXRlIGNsYXNzIGZpZWxkcyAoI3gpXG4vLyBhcmUgbm90IGFjY2Vzc2libGUgd2hlbiBtZXRob2RzIGFyZSBjb3BpZWQgb250byBhIGRpZmZlcmVudCBjbGFzcyBwcm90b3R5cGUuXG5jb25zdCBzdWJqZWN0cyA9IG5ldyBXZWFrTWFwPG9iamVjdCwgU3ViamVjdDxUcmFuc2Zvcm1SZXNwb25zZVtdPj4oKTtcblxuZnVuY3Rpb24gZ2V0U3ViamVjdChpbnN0YW5jZTogb2JqZWN0KTogU3ViamVjdDxUcmFuc2Zvcm1SZXNwb25zZVtdPiB7XG5cdGxldCBzdWJqZWN0ID0gc3ViamVjdHMuZ2V0KGluc3RhbmNlKTtcblx0aWYgKHN1YmplY3QgPT0gbnVsbCkge1xuXHRcdHN1YmplY3QgPSBuZXcgU3ViamVjdDxUcmFuc2Zvcm1SZXNwb25zZVtdPigpO1xuXHRcdHN1YmplY3RzLnNldChpbnN0YW5jZSwgc3ViamVjdCk7XG5cdH1cblx0cmV0dXJuIHN1YmplY3Q7XG59XG5cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBJbmNyZW1lbnRhbFRyYW5zZm9ybSB7XG5cdHB1YmxpYyBnZXQgaW5jcmVtZW50YWxUcmFuc2Zvcm0kKCk6IE9ic2VydmFibGU8VHJhbnNmb3JtUmVzcG9uc2VbXT4ge1xuXHRcdHJldHVybiBnZXRTdWJqZWN0KHRoaXMpLmFzT2JzZXJ2YWJsZSgpO1xuXHR9XG5cblx0cHVibGljIHdhdGNoKHdvcmtzcGFjZTogV29ya3NwYWNlKTogdm9pZCB7XG5cdFx0d29ya3NwYWNlLnByb2plY3RGaWxlQ2hhbmdlZCQuc3Vic2NyaWJlKChldnQpID0+IHtcblx0XHRcdHZvaWQgdGhpcy5vbkluY3JlbWVudGFsRmlsZUV2ZW50KGV2dCkudGhlbigocmVzcG9uc2VzKSA9PiB7XG5cdFx0XHRcdGdldFN1YmplY3QodGhpcykubmV4dChyZXNwb25zZXMpO1xuXHRcdFx0fSk7XG5cdFx0fSk7XG5cdH1cblxuXHQvKipcblx0ICogQ2FsbGVkIGZvciBldmVyeSB3b3Jrc3BhY2UgZmlsZSBjaGFuZ2UuIEltcGxlbWVudGF0aW9ucyBzaG91bGQgaW52YWxpZGF0ZVxuXHQgKiBhbnkgaW50ZXJuYWwgY2FjaGVzLCBwZXJmb3JtIHRoZSBpbmNyZW1lbnRhbCB0cmFuc2Zvcm0sIGFuZCByZXR1cm4gdGhlIHJlc3VsdHMuXG5cdCAqIFJldHVybiBhbiBlbXB0eSBhcnJheSBmb3IgZGVsZXRpb25zIG9yIHdoZW4gbm8gb3V0cHV0IGlzIHByb2R1Y2VkLlxuXHQgKi9cblx0cHJvdGVjdGVkIGFic3RyYWN0IG9uSW5jcmVtZW50YWxGaWxlRXZlbnQoXG5cdFx0ZXZ0OiBQcm9qZWN0RmlsZUV2ZW50LFxuXHQpOiBQcm9taXNlPFRyYW5zZm9ybVJlc3BvbnNlW10+O1xufVxuIl0sIm5hbWVzIjpbIlN1YmplY3QiLCJzdWJqZWN0cyIsIldlYWtNYXAiLCJnZXRTdWJqZWN0IiwiaW5zdGFuY2UiLCJzdWJqZWN0IiwiZ2V0Iiwic2V0IiwiSW5jcmVtZW50YWxUcmFuc2Zvcm0iLCJpbmNyZW1lbnRhbFRyYW5zZm9ybSQiLCJhc09ic2VydmFibGUiLCJ3YXRjaCIsIndvcmtzcGFjZSIsInByb2plY3RGaWxlQ2hhbmdlZCQiLCJzdWJzY3JpYmUiLCJldnQiLCJvbkluY3JlbWVudGFsRmlsZUV2ZW50IiwidGhlbiIsInJlc3BvbnNlcyIsIm5leHQiXSwibWFwcGluZ3MiOiJBQUVBLFNBQVNBLE9BQU8sUUFBUSxPQUFPO0FBRy9CLCtFQUErRTtBQUMvRSwrRUFBK0U7QUFDL0UsTUFBTUMsV0FBVyxJQUFJQztBQUVyQixTQUFTQyxXQUFXQyxRQUFnQjtJQUNuQyxJQUFJQyxVQUFVSixTQUFTSyxHQUFHLENBQUNGO0lBQzNCLElBQUlDLFdBQVcsTUFBTTtRQUNwQkEsVUFBVSxJQUFJTDtRQUNkQyxTQUFTTSxHQUFHLENBQUNILFVBQVVDO0lBQ3hCO0lBQ0EsT0FBT0E7QUFDUjtBQUVBLE9BQU8sTUFBZUc7SUFDckIsSUFBV0Msd0JBQXlEO1FBQ25FLE9BQU9OLFdBQVcsSUFBSSxFQUFFTyxZQUFZO0lBQ3JDO0lBRU9DLE1BQU1DLFNBQW9CLEVBQVE7UUFDeENBLFVBQVVDLG1CQUFtQixDQUFDQyxTQUFTLENBQUMsQ0FBQ0M7WUFDeEMsS0FBSyxJQUFJLENBQUNDLHNCQUFzQixDQUFDRCxLQUFLRSxJQUFJLENBQUMsQ0FBQ0M7Z0JBQzNDZixXQUFXLElBQUksRUFBRWdCLElBQUksQ0FBQ0Q7WUFDdkI7UUFDRDtJQUNEO0FBVUQifQ==
@@ -1,7 +0,0 @@
1
- import type { TransformResponse } from "../types/transform-response.model.js";
2
- export declare abstract class CachesOutputs {
3
- /** Maps source file fullPath -> output TransformResponses for cleanup in watch mode. */
4
- protected get outputCache(): Map<string, TransformResponse[]>;
5
- protected cacheOutputs(responses: TransformResponse[]): void;
6
- protected deleteCachedOutputs(filePath: string): void;
7
- }
@@ -1,13 +0,0 @@
1
- import type { ProjectFileEvent, Workspace } from "@decohere/mesh";
2
- import type { Observable } from "rxjs";
3
- import type { TransformResponse } from "../types/transform-response.model.js";
4
- export declare abstract class IncrementalTransform {
5
- get incrementalTransform$(): Observable<TransformResponse[]>;
6
- watch(workspace: Workspace): void;
7
- /**
8
- * Called for every workspace file change. Implementations should invalidate
9
- * any internal caches, perform the incremental transform, and return the results.
10
- * Return an empty array for deletions or when no output is produced.
11
- */
12
- protected abstract onIncrementalFileEvent(evt: ProjectFileEvent): Promise<TransformResponse[]>;
13
- }