@decohere/forge 0.0.1-dev.12 → 0.0.1-dev.121

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 (194) hide show
  1. package/README.md +141 -0
  2. package/commonjs/src/actions/build.action.js +8 -6
  3. package/commonjs/src/actions/clean.action.js +6 -8
  4. package/commonjs/src/actions/commit.action.js +4 -6
  5. package/commonjs/src/actions/copy.action.js +43 -12
  6. package/commonjs/src/actions/dependency-report.action.js +4 -6
  7. package/commonjs/src/actions/dependency-sync.action.js +3 -5
  8. package/commonjs/src/actions/docker.action.js +209 -0
  9. package/commonjs/src/actions/index.js +6 -2
  10. package/commonjs/src/actions/link.action.js +154 -0
  11. package/commonjs/src/actions/package.action.js +234 -0
  12. package/commonjs/src/actions/paths.action.js +109 -0
  13. package/commonjs/src/actions/publish.action.js +4 -6
  14. package/commonjs/src/actions/sync-lock-file.action.js +2 -4
  15. package/commonjs/src/actions/tag.action.js +6 -9
  16. package/commonjs/src/actions/typecheck.action.js +67 -0
  17. package/commonjs/src/actions/unlink.action.js +74 -0
  18. package/commonjs/src/actions/version.action.js +10 -14
  19. package/commonjs/src/actions/watch.action.js +3 -5
  20. package/commonjs/src/commands/build.command.js +4 -3
  21. package/commonjs/src/commands/dependency.command.js +1 -3
  22. package/commonjs/src/commands/docker.command.js +26 -0
  23. package/commonjs/src/commands/forge.command.js +1 -3
  24. package/commonjs/src/commands/index.js +5 -2
  25. package/commonjs/src/commands/link.command.js +90 -0
  26. package/commonjs/src/commands/package.command.js +36 -0
  27. package/commonjs/src/commands/paths.command.js +24 -0
  28. package/commonjs/src/commands/publish.command.js +1 -3
  29. package/commonjs/src/commands/tag.command.js +1 -3
  30. package/commonjs/src/commands/typecheck.command.js +24 -0
  31. package/commonjs/src/commands/version.command.js +1 -3
  32. package/commonjs/src/const.js +0 -2
  33. package/commonjs/src/create-workspace.js +42 -0
  34. package/commonjs/src/errors.js +2 -4
  35. package/commonjs/src/extensions/project.extensions.js +11 -13
  36. package/commonjs/src/factories/swc-config.factory.js +29 -9
  37. package/commonjs/src/forge.module.js +23 -22
  38. package/commonjs/src/index.js +11 -2
  39. package/commonjs/src/packaging/dependency-pinner.service.js +118 -0
  40. package/commonjs/src/packaging/deployable.js +44 -0
  41. package/commonjs/src/packaging/import-graph.service.js +137 -0
  42. package/commonjs/src/packaging/release-exports.js +90 -0
  43. package/commonjs/src/packaging/ui-assets.js +75 -0
  44. package/commonjs/src/semver/index.js +18 -0
  45. package/commonjs/src/semver/semver.js +92 -0
  46. package/commonjs/src/services/dependency-resolver.service.js +1 -3
  47. package/commonjs/src/services/file-writer.service.js +2 -11
  48. package/commonjs/src/services/incremental-watch.js +24 -0
  49. package/commonjs/src/services/output-cache.js +39 -0
  50. package/commonjs/src/services/swc-transpiler.js +85 -99
  51. package/commonjs/src/services/transpile-cache.js +44 -0
  52. package/commonjs/src/services/ts-program-host.js +4 -6
  53. package/commonjs/src/services/type-emission-program.js +24 -9
  54. package/commonjs/src/services/type-emitter.js +51 -16
  55. package/commonjs/src/types/build-target.type.js +0 -2
  56. package/commonjs/src/types/configuration.type.js +0 -2
  57. package/commonjs/src/types/dependency.types.js +0 -2
  58. package/commonjs/src/types/swc-config.type.js +0 -2
  59. package/commonjs/src/types/transform-response.model.js +3 -18
  60. package/commonjs/src/types/transformer.type.js +0 -2
  61. package/commonjs/src/types/workspace-config.type.js +0 -2
  62. package/commonjs/src/vitest/forge-build.plugin.js +28 -44
  63. package/commonjs/src/vitest/index.js +0 -2
  64. package/commonjs/src/workspace.config.js +39 -6
  65. package/es6/src/actions/build.action.js +7 -7
  66. package/es6/src/actions/clean.action.js +5 -8
  67. package/es6/src/actions/commit.action.js +3 -6
  68. package/es6/src/actions/copy.action.js +42 -12
  69. package/es6/src/actions/dependency-report.action.js +3 -7
  70. package/es6/src/actions/dependency-sync.action.js +2 -6
  71. package/es6/src/actions/docker.action.js +194 -0
  72. package/es6/src/actions/index.js +6 -2
  73. package/es6/src/actions/link.action.js +128 -0
  74. package/es6/src/actions/package.action.js +219 -0
  75. package/es6/src/actions/paths.action.js +86 -0
  76. package/es6/src/actions/publish.action.js +3 -6
  77. package/es6/src/actions/sync-lock-file.action.js +2 -4
  78. package/es6/src/actions/tag.action.js +5 -9
  79. package/es6/src/actions/typecheck.action.js +52 -0
  80. package/es6/src/actions/unlink.action.js +59 -0
  81. package/es6/src/actions/version.action.js +5 -10
  82. package/es6/src/actions/watch.action.js +2 -5
  83. package/es6/src/commands/build.command.js +4 -3
  84. package/es6/src/commands/dependency.command.js +1 -3
  85. package/es6/src/commands/docker.command.js +16 -0
  86. package/es6/src/commands/forge.command.js +1 -3
  87. package/es6/src/commands/index.js +5 -2
  88. package/es6/src/commands/link.command.js +67 -0
  89. package/es6/src/commands/package.command.js +26 -0
  90. package/es6/src/commands/paths.command.js +14 -0
  91. package/es6/src/commands/publish.command.js +1 -3
  92. package/es6/src/commands/tag.command.js +1 -3
  93. package/es6/src/commands/typecheck.command.js +14 -0
  94. package/es6/src/commands/version.command.js +1 -3
  95. package/es6/src/const.js +0 -2
  96. package/es6/src/create-workspace.js +30 -0
  97. package/es6/src/errors.js +1 -3
  98. package/es6/src/extensions/project.extensions.js +5 -7
  99. package/es6/src/factories/swc-config.factory.js +29 -9
  100. package/es6/src/forge.module.js +23 -22
  101. package/es6/src/index.js +3 -3
  102. package/es6/src/packaging/dependency-pinner.service.js +103 -0
  103. package/es6/src/packaging/deployable.js +21 -0
  104. package/es6/src/packaging/import-graph.service.js +122 -0
  105. package/es6/src/packaging/release-exports.js +80 -0
  106. package/es6/src/packaging/ui-assets.js +49 -0
  107. package/es6/src/semver/index.js +1 -0
  108. package/es6/src/semver/semver.js +71 -0
  109. package/es6/src/services/dependency-resolver.service.js +1 -3
  110. package/es6/src/services/file-writer.service.js +2 -11
  111. package/es6/src/services/incremental-watch.js +18 -0
  112. package/es6/src/services/output-cache.js +29 -0
  113. package/es6/src/services/swc-transpiler.js +85 -99
  114. package/es6/src/services/transpile-cache.js +29 -0
  115. package/es6/src/services/ts-program-host.js +4 -6
  116. package/es6/src/services/type-emission-program.js +24 -9
  117. package/es6/src/services/type-emitter.js +48 -16
  118. package/es6/src/types/build-target.type.js +0 -2
  119. package/es6/src/types/configuration.type.js +0 -2
  120. package/es6/src/types/dependency.types.js +0 -2
  121. package/es6/src/types/swc-config.type.js +0 -2
  122. package/es6/src/types/transform-response.model.js +0 -7
  123. package/es6/src/types/transformer.type.js +0 -2
  124. package/es6/src/types/workspace-config.type.js +0 -2
  125. package/es6/src/vitest/forge-build.plugin.js +27 -43
  126. package/es6/src/vitest/index.js +0 -2
  127. package/es6/src/workspace.config.js +39 -5
  128. package/package.json +6 -5
  129. package/types/src/actions/build.action.d.ts +5 -4
  130. package/types/src/actions/clean.action.d.ts +3 -3
  131. package/types/src/actions/commit.action.d.ts +3 -3
  132. package/types/src/actions/copy.action.d.ts +13 -3
  133. package/types/src/actions/dependency-report.action.d.ts +3 -3
  134. package/types/src/actions/dependency-sync.action.d.ts +3 -3
  135. package/types/src/actions/docker.action.d.ts +38 -0
  136. package/types/src/actions/index.d.ts +6 -0
  137. package/types/src/actions/link.action.d.ts +25 -0
  138. package/types/src/actions/package.action.d.ts +38 -0
  139. package/types/src/actions/paths.action.d.ts +28 -0
  140. package/types/src/actions/publish.action.d.ts +4 -4
  141. package/types/src/actions/sync-lock-file.action.d.ts +2 -2
  142. package/types/src/actions/tag.action.d.ts +3 -3
  143. package/types/src/actions/typecheck.action.d.ts +14 -0
  144. package/types/src/actions/unlink.action.d.ts +9 -0
  145. package/types/src/actions/version.action.d.ts +4 -4
  146. package/types/src/actions/watch.action.d.ts +3 -3
  147. package/types/src/commands/build.command.d.ts +3 -2
  148. package/types/src/commands/dependency.command.d.ts +2 -2
  149. package/types/src/commands/docker.command.d.ts +6 -0
  150. package/types/src/commands/forge.command.d.ts +2 -2
  151. package/types/src/commands/index.d.ts +5 -0
  152. package/types/src/commands/link.command.d.ts +29 -0
  153. package/types/src/commands/package.command.d.ts +11 -0
  154. package/types/src/commands/paths.command.d.ts +6 -0
  155. package/types/src/commands/publish.command.d.ts +1 -1
  156. package/types/src/commands/tag.command.d.ts +1 -1
  157. package/types/src/commands/typecheck.command.d.ts +6 -0
  158. package/types/src/commands/version.command.d.ts +1 -1
  159. package/types/src/create-workspace.d.ts +7 -0
  160. package/types/src/errors.d.ts +1 -1
  161. package/types/src/extensions/project.extensions.d.ts +2 -2
  162. package/types/src/factories/swc-config.factory.d.ts +3 -2
  163. package/types/src/forge.module.d.ts +16 -4
  164. package/types/src/index.d.ts +3 -1
  165. package/types/src/packaging/dependency-pinner.service.d.ts +20 -0
  166. package/types/src/packaging/deployable.d.ts +17 -0
  167. package/types/src/packaging/import-graph.service.d.ts +33 -0
  168. package/types/src/packaging/release-exports.d.ts +18 -0
  169. package/types/src/packaging/ui-assets.d.ts +21 -0
  170. package/types/src/semver/index.d.ts +1 -0
  171. package/types/src/semver/semver.d.ts +18 -0
  172. package/types/src/services/dependency-resolver.service.d.ts +1 -1
  173. package/types/src/services/file-writer.service.d.ts +1 -2
  174. package/types/src/services/incremental-watch.d.ts +13 -0
  175. package/types/src/services/output-cache.d.ts +10 -0
  176. package/types/src/services/swc-transpiler.d.ts +28 -15
  177. package/types/src/services/transpile-cache.d.ts +17 -0
  178. package/types/src/services/ts-program-host.d.ts +2 -2
  179. package/types/src/services/type-emission-program.d.ts +8 -3
  180. package/types/src/services/type-emitter.d.ts +21 -8
  181. package/types/src/types/configuration.type.d.ts +6 -1
  182. package/types/src/types/dependency.types.d.ts +1 -1
  183. package/types/src/types/swc-config.type.d.ts +7 -1
  184. package/types/src/types/transform-response.model.d.ts +2 -7
  185. package/types/src/types/transformer.type.d.ts +2 -11
  186. package/types/src/types/workspace-config.type.d.ts +3 -3
  187. package/types/src/vitest/forge-build.plugin.d.ts +0 -2
  188. package/types/src/workspace.config.d.ts +6 -0
  189. package/commonjs/src/mixins/caches-outputs.mixin.js +0 -44
  190. package/commonjs/src/mixins/incremental-transform.mixin.js +0 -36
  191. package/es6/src/mixins/caches-outputs.mixin.js +0 -34
  192. package/es6/src/mixins/incremental-transform.mixin.js +0 -26
  193. package/types/src/mixins/caches-outputs.mixin.d.ts +0 -7
  194. package/types/src/mixins/incremental-transform.mixin.d.ts +0 -13
@@ -1,4 +1,4 @@
1
- import type { ResultStatus } from "@decohere/nexus/cli";
1
+ import type { ResultStatus } from "@decohere/devkit/cli";
2
2
  export type Package = {
3
3
  name: string;
4
4
  version?: string;
@@ -1,8 +1,14 @@
1
- import type { Tsconfig } from "@decohere/mesh";
1
+ import type { Project, Tsconfig, Workspace } from "@decohere/workspace";
2
2
  export type SwcConfigOptions = {
3
3
  aliasPaths?: boolean;
4
+ /** `false` drops source maps from the output. */
5
+ sourceMaps?: boolean;
4
6
  tsConfig?: Tsconfig;
5
7
  userConfig?: SwcConfig;
8
+ /** When set, convention aliases come from the full workspace package list. */
9
+ workspace?: Workspace;
10
+ /** Fallback package list when `workspace` is not set (e.g. a transform batch). */
11
+ projects?: readonly Project[];
6
12
  };
7
13
  export declare class SwcConfig {
8
14
  constructor(data?: Partial<SwcConfig>);
@@ -1,12 +1,7 @@
1
- import type { Project } from "@decohere/mesh";
2
- import type { File } from "@decohere/nexus/io";
1
+ import type { Project } from "@decohere/workspace";
2
+ import type { File } from "@decohere/core/io";
3
3
  import type { BuildTarget } from "./build-target.type.js";
4
4
  export type TransformOutcome = "success" | "failure" | "skipped";
5
- export declare const TransformOutcomes: {
6
- success: "success";
7
- failure: "failure";
8
- skipped: "skipped";
9
- };
10
5
  type TransformResponseBase = {
11
6
  file: File;
12
7
  config: unknown;
@@ -1,17 +1,8 @@
1
- import type { Project, Workspace } from "@decohere/mesh";
2
- import type { FileEx } from "@decohere/nexus/io";
1
+ import type { Project, Workspace } from "@decohere/workspace";
2
+ import type { FileEx } from "@decohere/core/io";
3
3
  import type { Observable } from "rxjs";
4
4
  import type { BuildTarget } from "../types/build-target.type.js";
5
5
  import type { TransformResponse } from "./transform-response.model.js";
6
- export type FileEvent = {
7
- type: "changed" | "added";
8
- file: FileEx;
9
- project?: Project;
10
- } | {
11
- type: "deleted";
12
- file: FileEx;
13
- project: Project;
14
- };
15
6
  export declare const TransformerKey: unique symbol;
16
7
  export interface Transformer {
17
8
  readonly buildTargets: BuildTarget[];
@@ -1,6 +1,6 @@
1
- import type { ProjectOptions as BaseProjectOptions, WorkspaceOptions as BaseWorkspaceOptions } from "@decohere/mesh";
2
- import type { Action, CommandType } from "@decohere/nexus/cli";
3
- import type { Constructable } from "@decohere/nexus/reflection";
1
+ import type { ProjectOptions as BaseProjectOptions, WorkspaceOptions as BaseWorkspaceOptions } from "@decohere/workspace";
2
+ import type { Action, CommandType } from "@decohere/devkit/cli";
3
+ import type { Constructable } from "@decohere/core/reflection";
4
4
  import type { ForgeConfiguration } from "./configuration.type.js";
5
5
  export type ProjectOptions = Omit<BaseProjectOptions, "configurations"> & {
6
6
  configurations: ForgeConfiguration[];
@@ -2,8 +2,6 @@ export type ForgeBuildOptions = {
2
2
  buildConfig?: string;
3
3
  logLevel?: string;
4
4
  workspaceRoot?: string;
5
- /** Skip the build pre-warm entirely (e.g. when a pre-built artifact is already on disk). */
6
- skipBuild?: boolean;
7
5
  };
8
6
  export declare function forgeBuild(options?: ForgeBuildOptions): {
9
7
  name: string;
@@ -2,5 +2,11 @@ import type { ForgeConfiguration } from "./types/configuration.type.js";
2
2
  import type { WorkspaceOptions } from "./types/workspace-config.type.js";
3
3
  export declare const Debug: ForgeConfiguration;
4
4
  export declare const Release: ForgeConfiguration;
5
+ /**
6
+ * Link configuration: unpacked JS + co-located type declarations.
7
+ * Intended for `forge link` — symlinked into a consumer's node_modules so that
8
+ * both runtime resolution and TypeScript find the same output directory.
9
+ */
10
+ export declare const Link: ForgeConfiguration;
5
11
  export declare const DefaultConfigurations: ForgeConfiguration[];
6
12
  export declare const WorkspaceDefaults: WorkspaceOptions;
@@ -1,44 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", {
3
- value: true
4
- });
5
- Object.defineProperty(exports, "CachesOutputs", {
6
- enumerable: true,
7
- get: function() {
8
- return CachesOutputs;
9
- }
10
- });
11
- const _io = require("@decohere/nexus/io");
12
- class CachesOutputs {
13
- /** Maps source file fullPath -> output TransformResponses for cleanup in watch mode. */ get outputCache() {
14
- const self = this;
15
- if (self.__outputCache == null) {
16
- self.__outputCache = new Map();
17
- }
18
- return self.__outputCache;
19
- }
20
- cacheOutputs(responses) {
21
- const byFile = new Map();
22
- for (const response of responses){
23
- if (response.outcome !== "success") continue;
24
- const group = byFile.get(response.file.fullPath) ?? [];
25
- group.push(response);
26
- byFile.set(response.file.fullPath, group);
27
- }
28
- for (const [fullPath, group] of byFile){
29
- this.outputCache.set(fullPath, group);
30
- }
31
- }
32
- deleteCachedOutputs(filePath) {
33
- const outputs = this.outputCache.get(filePath);
34
- if (outputs == null) return;
35
- for (const response of outputs){
36
- if (response.outputPath != null) {
37
- void _io.io.deleteFile(response.outputPath);
38
- }
39
- }
40
- this.outputCache.delete(filePath);
41
- }
42
- }
43
-
44
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL2RlY29oZXJlL2RlY29oZXJlL3Byb2plY3RzL2ZvcmdlL3NyYy9taXhpbnMvY2FjaGVzLW91dHB1dHMubWl4aW4udHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaW8gfSBmcm9tIFwiQGRlY29oZXJlL25leHVzL2lvXCI7XG5pbXBvcnQgdHlwZSB7IFRyYW5zZm9ybVJlc3BvbnNlIH0gZnJvbSBcIi4uL3R5cGVzL3RyYW5zZm9ybS1yZXNwb25zZS5tb2RlbC5qc1wiO1xuXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQ2FjaGVzT3V0cHV0cyB7XG5cdC8qKiBNYXBzIHNvdXJjZSBmaWxlIGZ1bGxQYXRoIC0+IG91dHB1dCBUcmFuc2Zvcm1SZXNwb25zZXMgZm9yIGNsZWFudXAgaW4gd2F0Y2ggbW9kZS4gKi9cblx0cHJvdGVjdGVkIGdldCBvdXRwdXRDYWNoZSgpOiBNYXA8c3RyaW5nLCBUcmFuc2Zvcm1SZXNwb25zZVtdPiB7XG5cdFx0Y29uc3Qgc2VsZiA9IHRoaXMgYXMgeyBfX291dHB1dENhY2hlPzogTWFwPHN0cmluZywgVHJhbnNmb3JtUmVzcG9uc2VbXT4gfTtcblx0XHRpZiAoc2VsZi5fX291dHB1dENhY2hlID09IG51bGwpIHtcblx0XHRcdHNlbGYuX19vdXRwdXRDYWNoZSA9IG5ldyBNYXA8c3RyaW5nLCBUcmFuc2Zvcm1SZXNwb25zZVtdPigpO1xuXHRcdH1cblx0XHRyZXR1cm4gc2VsZi5fX291dHB1dENhY2hlO1xuXHR9XG5cblx0cHJvdGVjdGVkIGNhY2hlT3V0cHV0cyhyZXNwb25zZXM6IFRyYW5zZm9ybVJlc3BvbnNlW10pOiB2b2lkIHtcblx0XHRjb25zdCBieUZpbGUgPSBuZXcgTWFwPHN0cmluZywgVHJhbnNmb3JtUmVzcG9uc2VbXT4oKTtcblx0XHRmb3IgKGNvbnN0IHJlc3BvbnNlIG9mIHJlc3BvbnNlcykge1xuXHRcdFx0aWYgKHJlc3BvbnNlLm91dGNvbWUgIT09IFwic3VjY2Vzc1wiKSBjb250aW51ZTtcblx0XHRcdGNvbnN0IGdyb3VwID0gYnlGaWxlLmdldChyZXNwb25zZS5maWxlLmZ1bGxQYXRoKSA/PyBbXTtcblx0XHRcdGdyb3VwLnB1c2gocmVzcG9uc2UpO1xuXHRcdFx0YnlGaWxlLnNldChyZXNwb25zZS5maWxlLmZ1bGxQYXRoLCBncm91cCk7XG5cdFx0fVxuXHRcdGZvciAoY29uc3QgW2Z1bGxQYXRoLCBncm91cF0gb2YgYnlGaWxlKSB7XG5cdFx0XHR0aGlzLm91dHB1dENhY2hlLnNldChmdWxsUGF0aCwgZ3JvdXApO1xuXHRcdH1cblx0fVxuXG5cdHByb3RlY3RlZCBkZWxldGVDYWNoZWRPdXRwdXRzKGZpbGVQYXRoOiBzdHJpbmcpOiB2b2lkIHtcblx0XHRjb25zdCBvdXRwdXRzID0gdGhpcy5vdXRwdXRDYWNoZS5nZXQoZmlsZVBhdGgpO1xuXHRcdGlmIChvdXRwdXRzID09IG51bGwpIHJldHVybjtcblx0XHRmb3IgKGNvbnN0IHJlc3BvbnNlIG9mIG91dHB1dHMpIHtcblx0XHRcdGlmIChyZXNwb25zZS5vdXRwdXRQYXRoICE9IG51bGwpIHtcblx0XHRcdFx0dm9pZCBpby5kZWxldGVGaWxlKHJlc3BvbnNlLm91dHB1dFBhdGgpO1xuXHRcdFx0fVxuXHRcdH1cblx0XHR0aGlzLm91dHB1dENhY2hlLmRlbGV0ZShmaWxlUGF0aCk7XG5cdH1cbn1cbiJdLCJuYW1lcyI6WyJDYWNoZXNPdXRwdXRzIiwib3V0cHV0Q2FjaGUiLCJzZWxmIiwiX19vdXRwdXRDYWNoZSIsIk1hcCIsImNhY2hlT3V0cHV0cyIsInJlc3BvbnNlcyIsImJ5RmlsZSIsInJlc3BvbnNlIiwib3V0Y29tZSIsImdyb3VwIiwiZ2V0IiwiZmlsZSIsImZ1bGxQYXRoIiwicHVzaCIsInNldCIsImRlbGV0ZUNhY2hlZE91dHB1dHMiLCJmaWxlUGF0aCIsIm91dHB1dHMiLCJvdXRwdXRQYXRoIiwiaW8iLCJkZWxldGVGaWxlIiwiZGVsZXRlIl0sIm1hcHBpbmdzIjoiOzs7OytCQUdzQkE7OztlQUFBQTs7O29CQUhIO0FBR1osTUFBZUE7SUFDckIsc0ZBQXNGLEdBQ3RGLElBQWNDLGNBQWdEO1FBQzdELE1BQU1DLE9BQU8sSUFBSTtRQUNqQixJQUFJQSxLQUFLQyxhQUFhLElBQUksTUFBTTtZQUMvQkQsS0FBS0MsYUFBYSxHQUFHLElBQUlDO1FBQzFCO1FBQ0EsT0FBT0YsS0FBS0MsYUFBYTtJQUMxQjtJQUVVRSxhQUFhQyxTQUE4QixFQUFRO1FBQzVELE1BQU1DLFNBQVMsSUFBSUg7UUFDbkIsS0FBSyxNQUFNSSxZQUFZRixVQUFXO1lBQ2pDLElBQUlFLFNBQVNDLE9BQU8sS0FBSyxXQUFXO1lBQ3BDLE1BQU1DLFFBQVFILE9BQU9JLEdBQUcsQ0FBQ0gsU0FBU0ksSUFBSSxDQUFDQyxRQUFRLEtBQUssRUFBRTtZQUN0REgsTUFBTUksSUFBSSxDQUFDTjtZQUNYRCxPQUFPUSxHQUFHLENBQUNQLFNBQVNJLElBQUksQ0FBQ0MsUUFBUSxFQUFFSDtRQUNwQztRQUNBLEtBQUssTUFBTSxDQUFDRyxVQUFVSCxNQUFNLElBQUlILE9BQVE7WUFDdkMsSUFBSSxDQUFDTixXQUFXLENBQUNjLEdBQUcsQ0FBQ0YsVUFBVUg7UUFDaEM7SUFDRDtJQUVVTSxvQkFBb0JDLFFBQWdCLEVBQVE7UUFDckQsTUFBTUMsVUFBVSxJQUFJLENBQUNqQixXQUFXLENBQUNVLEdBQUcsQ0FBQ007UUFDckMsSUFBSUMsV0FBVyxNQUFNO1FBQ3JCLEtBQUssTUFBTVYsWUFBWVUsUUFBUztZQUMvQixJQUFJVixTQUFTVyxVQUFVLElBQUksTUFBTTtnQkFDaEMsS0FBS0MsTUFBRSxDQUFDQyxVQUFVLENBQUNiLFNBQVNXLFVBQVU7WUFDdkM7UUFDRDtRQUNBLElBQUksQ0FBQ2xCLFdBQVcsQ0FBQ3FCLE1BQU0sQ0FBQ0w7SUFDekI7QUFDRCJ9
@@ -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
- }