@decohere/forge 0.0.1-dev.5 → 0.0.1-dev.51

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 (108) hide show
  1. package/commonjs/src/actions/build.action.js +9 -1
  2. package/commonjs/src/actions/clean.action.js +3 -3
  3. package/commonjs/src/actions/commit.action.js +10 -3
  4. package/commonjs/src/actions/copy.action.js +1 -1
  5. package/commonjs/src/actions/dependency-report.action.js +1 -1
  6. package/commonjs/src/actions/dependency-sync.action.js +1 -1
  7. package/commonjs/src/actions/docker.action.js +178 -0
  8. package/commonjs/src/actions/index.js +4 -1
  9. package/commonjs/src/actions/link.action.js +156 -0
  10. package/commonjs/src/actions/publish.action.js +1 -1
  11. package/commonjs/src/actions/sync-lock-file.action.js +1 -1
  12. package/commonjs/src/actions/tag.action.js +3 -4
  13. package/commonjs/src/actions/unlink.action.js +76 -0
  14. package/commonjs/src/actions/version.action.js +1 -1
  15. package/commonjs/src/actions/watch.action.js +2 -1
  16. package/commonjs/src/commands/build.command.js +1 -1
  17. package/commonjs/src/commands/dependency.command.js +1 -1
  18. package/commonjs/src/commands/docker.command.js +28 -0
  19. package/commonjs/src/commands/forge.command.js +1 -1
  20. package/commonjs/src/commands/index.js +3 -1
  21. package/commonjs/src/commands/link.command.js +89 -0
  22. package/commonjs/src/commands/publish.command.js +1 -1
  23. package/commonjs/src/commands/tag.command.js +1 -1
  24. package/commonjs/src/commands/version.command.js +1 -1
  25. package/commonjs/src/const.js +1 -1
  26. package/commonjs/src/errors.js +1 -1
  27. package/commonjs/src/extensions/project.extensions.js +35 -7
  28. package/commonjs/src/factories/swc-config.factory.js +1 -1
  29. package/commonjs/src/forge.module.js +9 -3
  30. package/commonjs/src/index.js +25 -1
  31. package/commonjs/src/mixins/caches-outputs.mixin.js +8 -6
  32. package/commonjs/src/mixins/incremental-transform.mixin.js +1 -1
  33. package/commonjs/src/services/dependency-resolver.service.js +1 -1
  34. package/commonjs/src/services/file-writer.service.js +1 -1
  35. package/commonjs/src/services/swc-transpiler.js +63 -4
  36. package/commonjs/src/services/ts-program-host.js +1 -1
  37. package/commonjs/src/services/type-emission-program.js +1 -1
  38. package/commonjs/src/services/type-emitter.js +1 -1
  39. package/commonjs/src/types/build-target.type.js +1 -1
  40. package/commonjs/src/types/swc-config.type.js +1 -1
  41. package/commonjs/src/types/transform-response.model.js +2 -1
  42. package/commonjs/src/types/transformer.type.js +1 -1
  43. package/commonjs/src/vitest/forge-build.plugin.js +1 -1
  44. package/commonjs/src/vitest/index.js +1 -1
  45. package/commonjs/src/workspace.config.js +26 -15
  46. package/es6/src/actions/build.action.js +9 -1
  47. package/es6/src/actions/clean.action.js +3 -3
  48. package/es6/src/actions/commit.action.js +5 -3
  49. package/es6/src/actions/copy.action.js +1 -1
  50. package/es6/src/actions/dependency-report.action.js +1 -1
  51. package/es6/src/actions/dependency-sync.action.js +1 -1
  52. package/es6/src/actions/docker.action.js +164 -0
  53. package/es6/src/actions/index.js +4 -1
  54. package/es6/src/actions/link.action.js +131 -0
  55. package/es6/src/actions/publish.action.js +1 -1
  56. package/es6/src/actions/sync-lock-file.action.js +1 -1
  57. package/es6/src/actions/tag.action.js +3 -4
  58. package/es6/src/actions/unlink.action.js +61 -0
  59. package/es6/src/actions/version.action.js +1 -1
  60. package/es6/src/actions/watch.action.js +2 -1
  61. package/es6/src/commands/build.command.js +1 -1
  62. package/es6/src/commands/dependency.command.js +1 -1
  63. package/es6/src/commands/docker.command.js +18 -0
  64. package/es6/src/commands/forge.command.js +1 -1
  65. package/es6/src/commands/index.js +3 -1
  66. package/es6/src/commands/link.command.js +66 -0
  67. package/es6/src/commands/publish.command.js +1 -1
  68. package/es6/src/commands/tag.command.js +1 -1
  69. package/es6/src/commands/version.command.js +1 -1
  70. package/es6/src/const.js +1 -1
  71. package/es6/src/errors.js +1 -1
  72. package/es6/src/extensions/project.extensions.js +35 -7
  73. package/es6/src/factories/swc-config.factory.js +1 -1
  74. package/es6/src/forge.module.js +9 -3
  75. package/es6/src/index.js +4 -1
  76. package/es6/src/mixins/caches-outputs.mixin.js +8 -6
  77. package/es6/src/mixins/incremental-transform.mixin.js +1 -1
  78. package/es6/src/services/dependency-resolver.service.js +1 -1
  79. package/es6/src/services/file-writer.service.js +1 -1
  80. package/es6/src/services/swc-transpiler.js +64 -5
  81. package/es6/src/services/ts-program-host.js +1 -1
  82. package/es6/src/services/type-emission-program.js +1 -1
  83. package/es6/src/services/type-emitter.js +1 -1
  84. package/es6/src/types/build-target.type.js +1 -1
  85. package/es6/src/types/configuration.type.js +1 -1
  86. package/es6/src/types/dependency.types.js +1 -1
  87. package/es6/src/types/swc-config.type.js +1 -1
  88. package/es6/src/types/transform-response.model.js +2 -1
  89. package/es6/src/types/transformer.type.js +1 -1
  90. package/es6/src/types/workspace-config.type.js +1 -1
  91. package/es6/src/vitest/forge-build.plugin.js +1 -1
  92. package/es6/src/vitest/index.js +1 -1
  93. package/es6/src/workspace.config.js +27 -15
  94. package/package.json +5 -5
  95. package/types/src/actions/build.action.d.ts +1 -0
  96. package/types/src/actions/docker.action.d.ts +28 -0
  97. package/types/src/actions/index.d.ts +3 -0
  98. package/types/src/actions/link.action.d.ts +25 -0
  99. package/types/src/actions/unlink.action.d.ts +9 -0
  100. package/types/src/commands/docker.command.d.ts +6 -0
  101. package/types/src/commands/index.d.ts +2 -0
  102. package/types/src/commands/link.command.d.ts +28 -0
  103. package/types/src/extensions/project.extensions.d.ts +4 -0
  104. package/types/src/forge.module.d.ts +6 -0
  105. package/types/src/index.d.ts +5 -0
  106. package/types/src/services/swc-transpiler.d.ts +6 -0
  107. package/types/src/types/transform-response.model.d.ts +2 -0
  108. package/types/src/workspace.config.d.ts +6 -0
@@ -1,12 +1,20 @@
1
1
  import { WorkspaceDefaults as BaseDefaults } from "@decohere/mesh";
2
- import { NODE_MODULES } from "./const.js";
3
2
  import { BuildTargets } from "./types/build-target.type.js";
4
3
  export const Debug = {
5
4
  name: "debug",
6
5
  targets: [
7
6
  BuildTargets.es6
8
7
  ],
9
- aliasPaths: true
8
+ aliasPaths: true,
9
+ // Fixtures are runtime inputs (often raw .ts / configs), not library sources.
10
+ ignore: [
11
+ "**/__fixtures__/**"
12
+ ],
13
+ copyFiles: [
14
+ "**/__fixtures__/**",
15
+ "**/.decohere.js",
16
+ "**/.decohere.*.js"
17
+ ]
10
18
  };
11
19
  export const Release = {
12
20
  name: "release",
@@ -23,27 +31,31 @@ export const Release = {
23
31
  "e2e/**"
24
32
  ]
25
33
  };
34
+ /**
35
+ * Link configuration: unpacked JS + co-located type declarations.
36
+ * Intended for `forge link` — symlinked into a consumer's node_modules so that
37
+ * both runtime resolution and TypeScript find the same output directory.
38
+ */ export const Link = {
39
+ name: "link",
40
+ pack: true,
41
+ targets: [
42
+ BuildTargets.es6,
43
+ BuildTargets.types
44
+ ]
45
+ };
26
46
  export const DefaultConfigurations = [
27
47
  Debug,
48
+ Link,
28
49
  Release
29
50
  ];
30
51
  export const WorkspaceDefaults = {
31
- rootDir: BaseDefaults.rootDir,
32
- outDir: BaseDefaults.outDir,
33
- includeProjects: BaseDefaults.includeProjects,
34
- ignoreProjects: BaseDefaults.ignoreProjects,
35
- include: [
36
- "**/*.ts"
37
- ],
38
- ignore: [
39
- "**/*.d.ts",
40
- `**/${NODE_MODULES}/**`
41
- ],
52
+ ...BaseDefaults,
42
53
  copyFiles: [
43
54
  "package.json",
44
55
  "**/*.mjs"
45
56
  ],
46
- configurations: DefaultConfigurations
57
+ configurations: DefaultConfigurations,
58
+ projects: undefined
47
59
  };
48
60
 
49
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9zcmMvcHJvamVjdHMvZm9yZ2Uvc3JjL3dvcmtzcGFjZS5jb25maWcudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgV29ya3NwYWNlRGVmYXVsdHMgYXMgQmFzZURlZmF1bHRzIH0gZnJvbSBcIkBkZWNvaGVyZS9tZXNoXCI7XG5pbXBvcnQgeyBOT0RFX01PRFVMRVMgfSBmcm9tIFwiLi9jb25zdC5qc1wiO1xuaW1wb3J0IHsgQnVpbGRUYXJnZXRzIH0gZnJvbSBcIi4vdHlwZXMvYnVpbGQtdGFyZ2V0LnR5cGUuanNcIjtcbmltcG9ydCB0eXBlIHsgRm9yZ2VDb25maWd1cmF0aW9uIH0gZnJvbSBcIi4vdHlwZXMvY29uZmlndXJhdGlvbi50eXBlLmpzXCI7XG5pbXBvcnQgdHlwZSB7IFdvcmtzcGFjZU9wdGlvbnMgfSBmcm9tIFwiLi90eXBlcy93b3Jrc3BhY2UtY29uZmlnLnR5cGUuanNcIjtcblxuZXhwb3J0IGNvbnN0IERlYnVnOiBGb3JnZUNvbmZpZ3VyYXRpb24gPSB7XG5cdG5hbWU6IFwiZGVidWdcIixcblx0dGFyZ2V0czogW0J1aWxkVGFyZ2V0cy5lczZdLFxuXHRhbGlhc1BhdGhzOiB0cnVlLFxufTtcblxuZXhwb3J0IGNvbnN0IFJlbGVhc2U6IEZvcmdlQ29uZmlndXJhdGlvbiA9IHtcblx0bmFtZTogXCJyZWxlYXNlXCIsXG5cdHBhY2s6IHRydWUsXG5cdHRhcmdldHM6IFtCdWlsZFRhcmdldHMuY29tbW9uanMsIEJ1aWxkVGFyZ2V0cy5lczYsIEJ1aWxkVGFyZ2V0cy50eXBlc10sXG5cdGlnbm9yZTogW1wiKiovKi5zcGVjLnRzXCIsIFwiKiovKi50ZXN0LnRzXCIsIFwidGVzdHMvKipcIiwgXCJlMmUvKipcIl0sXG59O1xuXG5leHBvcnQgY29uc3QgRGVmYXVsdENvbmZpZ3VyYXRpb25zID0gW0RlYnVnLCBSZWxlYXNlXTtcblxuZXhwb3J0IGNvbnN0IFdvcmtzcGFjZURlZmF1bHRzOiBXb3Jrc3BhY2VPcHRpb25zID0ge1xuXHRyb290RGlyOiBCYXNlRGVmYXVsdHMucm9vdERpcixcblx0b3V0RGlyOiBCYXNlRGVmYXVsdHMub3V0RGlyLFxuXHRpbmNsdWRlUHJvamVjdHM6IEJhc2VEZWZhdWx0cy5pbmNsdWRlUHJvamVjdHMsXG5cdGlnbm9yZVByb2plY3RzOiBCYXNlRGVmYXVsdHMuaWdub3JlUHJvamVjdHMsXG5cdGluY2x1ZGU6IFtcIioqLyoudHNcIl0sXG5cdGlnbm9yZTogW1wiKiovKi5kLnRzXCIsIGAqKi8ke05PREVfTU9EVUxFU30vKipgXSxcblx0Y29weUZpbGVzOiBbXCJwYWNrYWdlLmpzb25cIiwgXCIqKi8qLm1qc1wiXSxcblx0Y29uZmlndXJhdGlvbnM6IERlZmF1bHRDb25maWd1cmF0aW9ucyxcbn07XG4iXSwibmFtZXMiOlsiV29ya3NwYWNlRGVmYXVsdHMiLCJCYXNlRGVmYXVsdHMiLCJOT0RFX01PRFVMRVMiLCJCdWlsZFRhcmdldHMiLCJEZWJ1ZyIsIm5hbWUiLCJ0YXJnZXRzIiwiZXM2IiwiYWxpYXNQYXRocyIsIlJlbGVhc2UiLCJwYWNrIiwiY29tbW9uanMiLCJ0eXBlcyIsImlnbm9yZSIsIkRlZmF1bHRDb25maWd1cmF0aW9ucyIsInJvb3REaXIiLCJvdXREaXIiLCJpbmNsdWRlUHJvamVjdHMiLCJpZ25vcmVQcm9qZWN0cyIsImluY2x1ZGUiLCJjb3B5RmlsZXMiLCJjb25maWd1cmF0aW9ucyJdLCJtYXBwaW5ncyI6IkFBQUEsU0FBU0EscUJBQXFCQyxZQUFZLFFBQVEsaUJBQWlCO0FBQ25FLFNBQVNDLFlBQVksUUFBUSxhQUFhO0FBQzFDLFNBQVNDLFlBQVksUUFBUSwrQkFBK0I7QUFJNUQsT0FBTyxNQUFNQyxRQUE0QjtJQUN4Q0MsTUFBTTtJQUNOQyxTQUFTO1FBQUNILGFBQWFJLEdBQUc7S0FBQztJQUMzQkMsWUFBWTtBQUNiLEVBQUU7QUFFRixPQUFPLE1BQU1DLFVBQThCO0lBQzFDSixNQUFNO0lBQ05LLE1BQU07SUFDTkosU0FBUztRQUFDSCxhQUFhUSxRQUFRO1FBQUVSLGFBQWFJLEdBQUc7UUFBRUosYUFBYVMsS0FBSztLQUFDO0lBQ3RFQyxRQUFRO1FBQUM7UUFBZ0I7UUFBZ0I7UUFBWTtLQUFTO0FBQy9ELEVBQUU7QUFFRixPQUFPLE1BQU1DLHdCQUF3QjtJQUFDVjtJQUFPSztDQUFRLENBQUM7QUFFdEQsT0FBTyxNQUFNVCxvQkFBc0M7SUFDbERlLFNBQVNkLGFBQWFjLE9BQU87SUFDN0JDLFFBQVFmLGFBQWFlLE1BQU07SUFDM0JDLGlCQUFpQmhCLGFBQWFnQixlQUFlO0lBQzdDQyxnQkFBZ0JqQixhQUFhaUIsY0FBYztJQUMzQ0MsU0FBUztRQUFDO0tBQVU7SUFDcEJOLFFBQVE7UUFBQztRQUFhLENBQUMsR0FBRyxFQUFFWCxhQUFhLEdBQUcsQ0FBQztLQUFDO0lBQzlDa0IsV0FBVztRQUFDO1FBQWdCO0tBQVc7SUFDdkNDLGdCQUFnQlA7QUFDakIsRUFBRSJ9
61
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL2RlY29oZXJlL2RlY29oZXJlL3Byb2plY3RzL2ZvcmdlL3NyYy93b3Jrc3BhY2UuY29uZmlnLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFdvcmtzcGFjZURlZmF1bHRzIGFzIEJhc2VEZWZhdWx0cyB9IGZyb20gXCJAZGVjb2hlcmUvbWVzaFwiO1xuaW1wb3J0IHsgQnVpbGRUYXJnZXRzIH0gZnJvbSBcIi4vdHlwZXMvYnVpbGQtdGFyZ2V0LnR5cGUuanNcIjtcbmltcG9ydCB0eXBlIHsgRm9yZ2VDb25maWd1cmF0aW9uIH0gZnJvbSBcIi4vdHlwZXMvY29uZmlndXJhdGlvbi50eXBlLmpzXCI7XG5pbXBvcnQgdHlwZSB7IFdvcmtzcGFjZU9wdGlvbnMgfSBmcm9tIFwiLi90eXBlcy93b3Jrc3BhY2UtY29uZmlnLnR5cGUuanNcIjtcblxuZXhwb3J0IGNvbnN0IERlYnVnOiBGb3JnZUNvbmZpZ3VyYXRpb24gPSB7XG5cdG5hbWU6IFwiZGVidWdcIixcblx0dGFyZ2V0czogW0J1aWxkVGFyZ2V0cy5lczZdLFxuXHRhbGlhc1BhdGhzOiB0cnVlLFxuXHQvLyBGaXh0dXJlcyBhcmUgcnVudGltZSBpbnB1dHMgKG9mdGVuIHJhdyAudHMgLyBjb25maWdzKSwgbm90IGxpYnJhcnkgc291cmNlcy5cblx0aWdub3JlOiBbXCIqKi9fX2ZpeHR1cmVzX18vKipcIl0sXG5cdGNvcHlGaWxlczogW1wiKiovX19maXh0dXJlc19fLyoqXCIsIFwiKiovLmRlY29oZXJlLmpzXCIsIFwiKiovLmRlY29oZXJlLiouanNcIl0sXG59O1xuXG5leHBvcnQgY29uc3QgUmVsZWFzZTogRm9yZ2VDb25maWd1cmF0aW9uID0ge1xuXHRuYW1lOiBcInJlbGVhc2VcIixcblx0cGFjazogdHJ1ZSxcblx0dGFyZ2V0czogW0J1aWxkVGFyZ2V0cy5jb21tb25qcywgQnVpbGRUYXJnZXRzLmVzNiwgQnVpbGRUYXJnZXRzLnR5cGVzXSxcblx0aWdub3JlOiBbXCIqKi8qLnNwZWMudHNcIiwgXCIqKi8qLnRlc3QudHNcIiwgXCJ0ZXN0cy8qKlwiLCBcImUyZS8qKlwiXSxcbn07XG5cbi8qKlxuICogTGluayBjb25maWd1cmF0aW9uOiB1bnBhY2tlZCBKUyArIGNvLWxvY2F0ZWQgdHlwZSBkZWNsYXJhdGlvbnMuXG4gKiBJbnRlbmRlZCBmb3IgYGZvcmdlIGxpbmtgIOKAlCBzeW1saW5rZWQgaW50byBhIGNvbnN1bWVyJ3Mgbm9kZV9tb2R1bGVzIHNvIHRoYXRcbiAqIGJvdGggcnVudGltZSByZXNvbHV0aW9uIGFuZCBUeXBlU2NyaXB0IGZpbmQgdGhlIHNhbWUgb3V0cHV0IGRpcmVjdG9yeS5cbiAqL1xuZXhwb3J0IGNvbnN0IExpbms6IEZvcmdlQ29uZmlndXJhdGlvbiA9IHtcblx0bmFtZTogXCJsaW5rXCIsXG5cdHBhY2s6IHRydWUsXG5cdHRhcmdldHM6IFtCdWlsZFRhcmdldHMuZXM2LCBCdWlsZFRhcmdldHMudHlwZXNdLFxufTtcblxuZXhwb3J0IGNvbnN0IERlZmF1bHRDb25maWd1cmF0aW9ucyA9IFtEZWJ1ZywgTGluaywgUmVsZWFzZV07XG5cbmV4cG9ydCBjb25zdCBXb3Jrc3BhY2VEZWZhdWx0czogV29ya3NwYWNlT3B0aW9ucyA9IHtcblx0Li4uQmFzZURlZmF1bHRzLFxuXHRjb3B5RmlsZXM6IFtcInBhY2thZ2UuanNvblwiLCBcIioqLyoubWpzXCJdLFxuXHRjb25maWd1cmF0aW9uczogRGVmYXVsdENvbmZpZ3VyYXRpb25zLFxuXHRwcm9qZWN0czogdW5kZWZpbmVkLFxufTtcbiJdLCJuYW1lcyI6WyJXb3Jrc3BhY2VEZWZhdWx0cyIsIkJhc2VEZWZhdWx0cyIsIkJ1aWxkVGFyZ2V0cyIsIkRlYnVnIiwibmFtZSIsInRhcmdldHMiLCJlczYiLCJhbGlhc1BhdGhzIiwiaWdub3JlIiwiY29weUZpbGVzIiwiUmVsZWFzZSIsInBhY2siLCJjb21tb25qcyIsInR5cGVzIiwiTGluayIsIkRlZmF1bHRDb25maWd1cmF0aW9ucyIsImNvbmZpZ3VyYXRpb25zIiwicHJvamVjdHMiLCJ1bmRlZmluZWQiXSwibWFwcGluZ3MiOiJBQUFBLFNBQVNBLHFCQUFxQkMsWUFBWSxRQUFRLGlCQUFpQjtBQUNuRSxTQUFTQyxZQUFZLFFBQVEsK0JBQStCO0FBSTVELE9BQU8sTUFBTUMsUUFBNEI7SUFDeENDLE1BQU07SUFDTkMsU0FBUztRQUFDSCxhQUFhSSxHQUFHO0tBQUM7SUFDM0JDLFlBQVk7SUFDWiw4RUFBOEU7SUFDOUVDLFFBQVE7UUFBQztLQUFxQjtJQUM5QkMsV0FBVztRQUFDO1FBQXNCO1FBQW1CO0tBQW9CO0FBQzFFLEVBQUU7QUFFRixPQUFPLE1BQU1DLFVBQThCO0lBQzFDTixNQUFNO0lBQ05PLE1BQU07SUFDTk4sU0FBUztRQUFDSCxhQUFhVSxRQUFRO1FBQUVWLGFBQWFJLEdBQUc7UUFBRUosYUFBYVcsS0FBSztLQUFDO0lBQ3RFTCxRQUFRO1FBQUM7UUFBZ0I7UUFBZ0I7UUFBWTtLQUFTO0FBQy9ELEVBQUU7QUFFRjs7OztDQUlDLEdBQ0QsT0FBTyxNQUFNTSxPQUEyQjtJQUN2Q1YsTUFBTTtJQUNOTyxNQUFNO0lBQ05OLFNBQVM7UUFBQ0gsYUFBYUksR0FBRztRQUFFSixhQUFhVyxLQUFLO0tBQUM7QUFDaEQsRUFBRTtBQUVGLE9BQU8sTUFBTUUsd0JBQXdCO0lBQUNaO0lBQU9XO0lBQU1KO0NBQVEsQ0FBQztBQUU1RCxPQUFPLE1BQU1WLG9CQUFzQztJQUNsRCxHQUFHQyxZQUFZO0lBQ2ZRLFdBQVc7UUFBQztRQUFnQjtLQUFXO0lBQ3ZDTyxnQkFBZ0JEO0lBQ2hCRSxVQUFVQztBQUNYLEVBQUUifQ==
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@decohere/forge",
3
- "version": "0.0.1-dev.5",
3
+ "version": "0.0.1-dev.51",
4
4
  "description": "TypeScript monorepo build system — zero config, fast compilation, streamlined developer workflow",
5
5
  "keywords": [
6
6
  "typescript",
@@ -29,10 +29,10 @@
29
29
  "test": "echo \"Error: no test specified\" && exit 1"
30
30
  },
31
31
  "dependencies": {
32
- "@decohere/crucible": "0.0.1-dev.5",
33
- "@decohere/mesh": "0.0.1-dev.5",
34
- "@decohere/nexus": "0.0.1-dev.5",
35
- "@decohere/scribe": "0.0.1-dev.5",
32
+ "@decohere/crucible": "0.0.1-dev.51",
33
+ "@decohere/mesh": "0.0.1-dev.51",
34
+ "@decohere/nexus": "0.0.1-dev.51",
35
+ "@decohere/scribe": "0.0.1-dev.51",
36
36
  "@swc/core": "^1.11.11",
37
37
  "async": "^3.2.6",
38
38
  "parse-imports": "^2.2.1",
@@ -6,6 +6,7 @@ import { FileWriterService } from "../services/file-writer.service.js";
6
6
  import type { TransformResponse } from "../types/transform-response.model.js";
7
7
  import { type Transformer } from "../types/transformer.type.js";
8
8
  export type BuildOptions = {
9
+ build?: boolean;
9
10
  configuration: string;
10
11
  file: string;
11
12
  };
@@ -0,0 +1,28 @@
1
+ import { Workspace } from "@decohere/mesh";
2
+ import type { Action, ResultStatus } from "@decohere/nexus/cli";
3
+ import { ActionResponse } from "@decohere/nexus/cli";
4
+ export type DockerOptions = {
5
+ configuration: string;
6
+ dryRun?: boolean;
7
+ push?: boolean;
8
+ };
9
+ export type DockerResponse = ResultStatus & {
10
+ projectName: string;
11
+ image: string;
12
+ tags: string[];
13
+ message: string;
14
+ };
15
+ export declare class Docker implements Action<DockerOptions> {
16
+ #private;
17
+ private readonly workspace;
18
+ private readonly docker;
19
+ constructor(workspace: Workspace);
20
+ run(options: DockerOptions): Promise<ActionResponse<DockerResponse>>;
21
+ private getDockerProjects;
22
+ private buildProject;
23
+ private interpolateBuildArgs;
24
+ private defaultImageName;
25
+ private normalizeDockerRepository;
26
+ private normalizeProjectSlug;
27
+ private parseJsonEnv;
28
+ }
@@ -4,8 +4,11 @@ export * from "./commit.action.js";
4
4
  export * from "./copy.action.js";
5
5
  export * from "./dependency-report.action.js";
6
6
  export * from "./dependency-sync.action.js";
7
+ export * from "./docker.action.js";
8
+ export * from "./link.action.js";
7
9
  export * from "./publish.action.js";
8
10
  export * from "./sync-lock-file.action.js";
9
11
  export * from "./tag.action.js";
12
+ export * from "./unlink.action.js";
10
13
  export * from "./version.action.js";
11
14
  export * from "./watch.action.js";
@@ -0,0 +1,25 @@
1
+ import { Workspace } from "@decohere/mesh";
2
+ import type { Action } from "@decohere/nexus/cli";
3
+ import { ActionResponse } from "@decohere/nexus/cli";
4
+ import "../extensions/project.extensions.js";
5
+ export declare const LINK_MANIFEST = ".forge-link.json";
6
+ export type LinkOptions = {
7
+ configuration: string;
8
+ targetDir: string;
9
+ };
10
+ export declare const DEFAULT_LINK_CONFIGURATION = "link";
11
+ export type LinkManifest = {
12
+ workspaceRoot: string;
13
+ peerNodeModulesDir?: string;
14
+ links: Array<{
15
+ packageName: string;
16
+ symlinkPath: string;
17
+ originalPath: string | null;
18
+ }>;
19
+ };
20
+ export declare class Link implements Action<LinkOptions> {
21
+ #private;
22
+ private readonly workspace;
23
+ constructor(workspace: Workspace);
24
+ run: (options: LinkOptions) => Promise<ActionResponse>;
25
+ }
@@ -0,0 +1,9 @@
1
+ import type { Action } from "@decohere/nexus/cli";
2
+ import { ActionResponse } from "@decohere/nexus/cli";
3
+ export type UnlinkOptions = {
4
+ targetDir: string;
5
+ };
6
+ export declare class Unlink implements Action<UnlinkOptions> {
7
+ #private;
8
+ run: (options: UnlinkOptions) => Promise<ActionResponse>;
9
+ }
@@ -0,0 +1,6 @@
1
+ import { DecohereCommand } from "@decohere/nexus/cli";
2
+ import { Docker } from "../actions/docker.action.js";
3
+ export declare class DockerCommand extends DecohereCommand {
4
+ get actions(): (typeof Docker)[];
5
+ constructor(name: string);
6
+ }
@@ -1,6 +1,8 @@
1
1
  export * from "./build.command.js";
2
2
  export * from "./dependency.command.js";
3
+ export * from "./docker.command.js";
3
4
  export * from "./forge.command.js";
5
+ export * from "./link.command.js";
4
6
  export * from "./publish.command.js";
5
7
  export * from "./tag.command.js";
6
8
  export * from "./version.command.js";
@@ -0,0 +1,28 @@
1
+ import type { CommandHandler, MergeOptions } from "@decohere/nexus/cli";
2
+ import { CommandResponse, DecohereCommand } from "@decohere/nexus/cli";
3
+ import { Build } from "../actions/build.action.js";
4
+ import { Clean } from "../actions/clean.action.js";
5
+ import { Copy } from "../actions/copy.action.js";
6
+ import { Link } from "../actions/link.action.js";
7
+ import { Unlink } from "../actions/unlink.action.js";
8
+ import { Watch } from "../actions/watch.action.js";
9
+ export type LinkActions = {
10
+ clean: Clean;
11
+ build: Build;
12
+ copy: Copy;
13
+ link: Link;
14
+ watch: Watch;
15
+ };
16
+ type UnlinkActions = {
17
+ unlink: Unlink;
18
+ };
19
+ export declare class LinkCommand extends DecohereCommand<LinkActions> {
20
+ get actions(): (typeof Build | typeof Clean | typeof Copy | typeof Link | typeof Watch)[];
21
+ constructor(name?: string);
22
+ run: (actions: LinkActions, options: MergeOptions<LinkActions>) => Promise<CommandResponse<LinkActions>>;
23
+ }
24
+ export declare class UnlinkCommand extends DecohereCommand<UnlinkActions> {
25
+ get actions(): (typeof Unlink)[];
26
+ constructor(name?: string, handler?: CommandHandler);
27
+ }
28
+ export {};
@@ -5,9 +5,13 @@ declare module "@decohere/mesh" {
5
5
  interface Project {
6
6
  getForgeConfiguration(): ForgeConfiguration;
7
7
  getSwcConfig(): Promise<SwcConfig>;
8
+ getSwcConfigSync(): SwcConfig;
8
9
  }
9
10
  }
10
11
  export declare class ProjectExtensions {
11
12
  static getForgeConfiguration(project: Project): ForgeConfiguration;
12
13
  static getSwcConfig(project: Project): Promise<SwcConfig>;
14
+ static getSwcConfigSync(project: Project): SwcConfig;
15
+ private static swcConfigPaths;
16
+ private static fileExistsSync;
13
17
  }
@@ -9,6 +9,7 @@ export declare class ForgeModule extends ModuleManifest {
9
9
  readonly actions: {
10
10
  clean: typeof Actions.Clean;
11
11
  copy: typeof Actions.Copy;
12
+ docker: typeof Actions.Docker;
12
13
  build: typeof Actions.Build;
13
14
  watch: typeof Actions.Watch;
14
15
  publish: typeof Actions.Publish;
@@ -18,13 +19,18 @@ export declare class ForgeModule extends ModuleManifest {
18
19
  version: typeof Actions.Version;
19
20
  tag: typeof Actions.Tag;
20
21
  commitFiles: typeof Actions.CommitFiles;
22
+ link: typeof Actions.Link;
23
+ unlink: typeof Actions.Unlink;
21
24
  };
22
25
  readonly commands: {
23
26
  build: typeof Commands.BuildCommand;
24
27
  publish: typeof Commands.PublishCommand;
25
28
  dependencies: typeof Commands.DependencyCommand;
29
+ docker: typeof Commands.DockerCommand;
26
30
  version: typeof Commands.VersionCommand;
27
31
  tag: typeof Commands.TagCommand;
32
+ link: typeof Commands.LinkCommand;
33
+ unlink: typeof Commands.UnlinkCommand;
28
34
  };
29
35
  registerServices(builder: ContainerBuilder): void;
30
36
  createWorkspace(options: WorkspaceFactoryOptions): Promise<import("@decohere/mesh").Workspace>;
@@ -1,4 +1,9 @@
1
1
  export { ForgeError } from "./errors.js";
2
2
  export { ForgeModule } from "./forge.module.js";
3
+ export type { TranspileOptions } from "./services/swc-transpiler.js";
4
+ export { SwcTranspiler } from "./services/swc-transpiler.js";
5
+ export type { BuildTarget, TranspileTarget } from "./types/build-target.type.js";
6
+ export { BuildTargets } from "./types/build-target.type.js";
3
7
  export type { ForgeConfiguration } from "./types/configuration.type.js";
4
8
  export type { WorkspaceOptions } from "./types/workspace-config.type.js";
9
+ export { Debug as DebugConfiguration, DefaultConfigurations, Link as LinkConfiguration, Release as ReleaseConfiguration, WorkspaceDefaults, } from "./workspace.config.js";
@@ -19,6 +19,12 @@ export declare class SwcTranspiler extends SwcTranspiler_base implements Transfo
19
19
  buildTargets: BuildTarget[];
20
20
  transformProject(projectArrayLike: Project | Project[], fileFilter?: (project: Project) => Promise<FileEx[]>, onOutput?: (response: TransformResponse) => void): Promise<TransformResponse[]>;
21
21
  transformFile(fileArrayLike: FileEx[] | FileEx, buildTarget: TranspileTarget, options?: TranspileOptions): Promise<TransformResponse[]>;
22
+ /**
23
+ * Synchronous, single-file variant of `transformFile`.
24
+ * Reads the file with `fs.readFileSync` and transpiles via `swc.transformSync`.
25
+ * Intended for callers that cannot await (e.g. Node.js `registerHooks` load hook).
26
+ */
27
+ transformFileSync(file: FileEx, buildTarget: TranspileTarget, options?: TranspileOptions): TransformResponse;
22
28
  private transformTarget;
23
29
  private runTransform;
24
30
  protected onIncrementalFileEvent(evt: ProjectFileEvent): Promise<TransformResponse[]>;
@@ -19,6 +19,7 @@ type TransformResponseBase = {
19
19
  type TransformSuccess = TransformResponseBase & {
20
20
  outcome: "success";
21
21
  code: string;
22
+ sourceContent?: string;
22
23
  messages?: string[];
23
24
  target: BuildTarget;
24
25
  fileName: string;
@@ -44,6 +45,7 @@ export declare class TransformResponse {
44
45
  readonly outcome: TransformOutcome;
45
46
  readonly target?: BuildTarget;
46
47
  readonly code: string;
48
+ readonly sourceContent?: string;
47
49
  readonly fileName?: string;
48
50
  readonly messages?: string[];
49
51
  readonly config: unknown;
@@ -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;