@codefast/cli 0.3.14 → 0.3.16-canary.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 (189) hide show
  1. package/README.md +8 -3
  2. package/dist/arrange/analyze.mjs +24 -0
  3. package/dist/{lib/arrange/presentation/arrange-cli.schema.mjs → arrange/cli-schema.mjs} +10 -1
  4. package/dist/arrange/command.mjs +106 -0
  5. package/dist/{lib/arrange/domain/arrange-analyze.service.mjs → arrange/domain/analyze-service.mjs} +17 -10
  6. package/dist/{lib/arrange/domain/ast/ast-node.model.mjs → arrange/domain/ast/ast-node.mjs} +57 -3
  7. package/dist/{lib/arrange/domain/ast/collectors-cn.collector.mjs → arrange/domain/ast/collectors-cn.mjs} +21 -9
  8. package/dist/{lib/arrange/domain/ast/collectors-jsx.collector.mjs → arrange/domain/ast/collectors-jsx.mjs} +5 -2
  9. package/dist/{lib/arrange/domain/ast/collectors-tv.collector.mjs → arrange/domain/ast/collectors-tv.mjs} +21 -6
  10. package/dist/{lib/arrange/domain/ast/ast-helpers.helper.mjs → arrange/domain/ast/helpers.mjs} +26 -9
  11. package/dist/{lib/arrange/domain/ast/targets.model.mjs → arrange/domain/ast/targets.mjs} +19 -10
  12. package/dist/{lib/arrange/domain/constants.domain.mjs → arrange/domain/constants.mjs} +63 -18
  13. package/dist/{lib/arrange/domain/arrange-grouping.service.mjs → arrange/domain/grouping-service.mjs} +31 -10
  14. package/dist/{lib/arrange/domain/grouping.domain.mjs → arrange/domain/grouping.mjs} +39 -18
  15. package/dist/{lib/arrange/domain/imports.domain.mjs → arrange/domain/imports.mjs} +7 -3
  16. package/dist/{lib/arrange/domain/source-text-formatters.formatter.mjs → arrange/domain/source-text-formatters.mjs} +22 -5
  17. package/dist/{lib/arrange/domain/tailwind-token.value-object.mjs → arrange/domain/tailwind-token.mjs} +12 -3
  18. package/dist/{lib/arrange/domain/tailwind-token-classifier.domain-service.mjs → arrange/domain/token-classifier.mjs} +40 -15
  19. package/dist/arrange/output.mjs +79 -0
  20. package/dist/arrange/process-file.mjs +42 -0
  21. package/dist/arrange/resolve-target.mjs +24 -0
  22. package/dist/arrange/scan-target.mjs +20 -0
  23. package/dist/arrange/source-parse.mjs +18 -0
  24. package/dist/arrange/suggest.mjs +15 -0
  25. package/dist/arrange/sync.mjs +51 -0
  26. package/dist/arrange/typescript-ast-translator.mjs +354 -0
  27. package/dist/arrange/workspace.mjs +31 -0
  28. package/dist/bin.mjs +1 -1
  29. package/dist/{program.mjs → cli.mjs} +14 -19
  30. package/dist/core/cli/format-error.mjs +15 -0
  31. package/dist/core/cli/global-options.mjs +10 -0
  32. package/dist/core/cli/positional.mjs +11 -0
  33. package/dist/core/cli/result-handle.mjs +51 -0
  34. package/dist/core/config/loader.mjs +79 -0
  35. package/dist/{lib/config/infrastructure/config-schema.adapter.mjs → core/config/schema.mjs} +20 -6
  36. package/dist/core/config/warnings.mjs +12 -0
  37. package/dist/core/config.mjs +19 -0
  38. package/dist/{lib/core/domain/caught-unknown-message.value-object.mjs → core/errors.mjs} +20 -4
  39. package/dist/core/exit-codes.mjs +17 -0
  40. package/dist/core/filesystem/node.mjs +32 -0
  41. package/dist/core/logger.mjs +15 -0
  42. package/dist/{lib/core/domain/result.model.mjs → core/result.mjs} +7 -3
  43. package/dist/{lib/core/application/services/schema-validator.service.mjs → core/schema-parse.mjs} +6 -5
  44. package/dist/{lib/shared/source-code/domain/text-edit.model.mjs → core/source-text-edit.mjs} +15 -14
  45. package/dist/core/verbose-diagnostics.mjs +11 -0
  46. package/dist/core/workspace/resolver.mjs +177 -0
  47. package/dist/core/workspace/typescript-walk.mjs +36 -0
  48. package/dist/mirror/cli-result.mjs +21 -0
  49. package/dist/{lib/mirror/presentation/mirror-cli.schema.mjs → mirror/cli-schema.mjs} +4 -4
  50. package/dist/mirror/command.mjs +57 -0
  51. package/dist/mirror/dist-filesystem-impl.mjs +42 -0
  52. package/dist/{lib/mirror/domain/constants.domain.mjs → mirror/domain/constants.mjs} +16 -1
  53. package/dist/{lib/mirror/infrastructure/dirent-list.guard.mjs → mirror/domain/dirent-guard.mjs} +5 -2
  54. package/dist/{lib/mirror/domain/errors.domain.mjs → mirror/domain/errors.mjs} +7 -1
  55. package/dist/{lib/mirror/application/services/generate-mirror-exports.service.mjs → mirror/domain/exports.mjs} +17 -10
  56. package/dist/{lib/mirror/domain/package-display-name.policy.mjs → mirror/domain/package-display-name.mjs} +5 -2
  57. package/dist/{lib/mirror/domain/path-normalizer.value-object.mjs → mirror/domain/path-normalizer.mjs} +4 -1
  58. package/dist/mirror/output.mjs +45 -0
  59. package/dist/mirror/package-path.mjs +32 -0
  60. package/dist/mirror/prepare.mjs +33 -0
  61. package/dist/mirror/sync-reporter.mjs +104 -0
  62. package/dist/mirror/sync-workspace-package.mjs +103 -0
  63. package/dist/mirror/sync.mjs +87 -0
  64. package/dist/{lib/mirror/infrastructure/package-json-exports.repository.mjs → mirror/write-exports.mjs} +35 -31
  65. package/dist/tag/cli-result.mjs +11 -0
  66. package/dist/{lib/tag/presentation/tag-cli.schema.mjs → tag/cli-schema.mjs} +4 -1
  67. package/dist/tag/command.mjs +56 -0
  68. package/dist/{lib/tag/presentation/tag-sync.presenter.mjs → tag/output.mjs} +54 -28
  69. package/dist/tag/prepare.mjs +29 -0
  70. package/dist/tag/resolve-target-path.mjs +12 -0
  71. package/dist/tag/since-writer.mjs +130 -0
  72. package/dist/tag/sync.mjs +141 -0
  73. package/dist/tag/target-candidates.mjs +68 -0
  74. package/dist/tag/target-runner.mjs +26 -0
  75. package/dist/tag/version-resolver.mjs +25 -0
  76. package/package.json +8 -9
  77. package/dist/lib/arrange/adapters/primary/cli/arrange.command.mjs +0 -324
  78. package/dist/lib/arrange/adapters/primary/cli/arrange.presentation.module.mjs +0 -14
  79. package/dist/lib/arrange/adapters/primary/cli/presentation.tokens.mjs +0 -5
  80. package/dist/lib/arrange/adapters/secondary/domain-source-parser.adapter.mjs +0 -239
  81. package/dist/lib/arrange/adapters/secondary/file-walker.adapter.mjs +0 -241
  82. package/dist/lib/arrange/adapters/secondary/workspace-resolver.adapter.mjs +0 -233
  83. package/dist/lib/arrange/application/requests/suggest-groups.request.mjs +0 -1
  84. package/dist/lib/arrange/application/services/arrange-file-processor.service.mjs +0 -267
  85. package/dist/lib/arrange/application/services/arrange-target-path-resolver.service.mjs +0 -21
  86. package/dist/lib/arrange/application/services/arrange-target-scanner.service.mjs +0 -243
  87. package/dist/lib/arrange/application/use-cases/analyze-directory.use-case.mjs +0 -255
  88. package/dist/lib/arrange/application/use-cases/prepare-arrange-workspace.use-case.mjs +0 -263
  89. package/dist/lib/arrange/application/use-cases/run-arrange-sync.use-case.mjs +0 -274
  90. package/dist/lib/arrange/application/use-cases/suggest-cn-groups.use-case.mjs +0 -237
  91. package/dist/lib/arrange/arrange.module.mjs +0 -31
  92. package/dist/lib/arrange/contracts/analyze-report-presenter.contract.mjs +0 -1
  93. package/dist/lib/arrange/contracts/models.mjs +0 -1
  94. package/dist/lib/arrange/contracts/services.contract.mjs +0 -1
  95. package/dist/lib/arrange/contracts/tokens.mjs +0 -15
  96. package/dist/lib/arrange/domain/tailwind-grouping.service.mjs +0 -231
  97. package/dist/lib/arrange/domain/types.domain.mjs +0 -1
  98. package/dist/lib/arrange/infrastructure/typescript-ast-translator.adapter.mjs +0 -355
  99. package/dist/lib/arrange/presentation/arrange-analyze.presenter.mjs +0 -259
  100. package/dist/lib/arrange/presentation/arrange-sync.presenter.mjs +0 -33
  101. package/dist/lib/arrange/presentation/group-file-preview.presenter.mjs +0 -271
  102. package/dist/lib/bootstrap/composition-root.mjs +0 -33
  103. package/dist/lib/config/application/ports/config-loader.port.mjs +0 -1
  104. package/dist/lib/config/application/ports/config-warning-reporter.port.mjs +0 -1
  105. package/dist/lib/config/application/services/load-config.service.mjs +0 -17
  106. package/dist/lib/config/contracts/tokens.mjs +0 -6
  107. package/dist/lib/config/domain/schema.domain.mjs +0 -1
  108. package/dist/lib/config/infrastructure/config-loader.adapter.mjs +0 -306
  109. package/dist/lib/config/infrastructure/config-warning-reporter.adapter.mjs +0 -234
  110. package/dist/lib/core/application/load-codefast-config.use-case.mjs +0 -245
  111. package/dist/lib/core/application/ports/cli-io.port.mjs +0 -1
  112. package/dist/lib/core/application/ports/path.port.mjs +0 -1
  113. package/dist/lib/core/application/ports/repo-root-resolver.port.mjs +0 -1
  114. package/dist/lib/core/application/ports/runtime.port.mjs +0 -1
  115. package/dist/lib/core/application/services/global-cli-options-parser.service.mjs +0 -9
  116. package/dist/lib/core/contracts/tokens.mjs +0 -10
  117. package/dist/lib/core/core.module.mjs +0 -9
  118. package/dist/lib/core/domain/cli-exit-codes.domain.mjs +0 -11
  119. package/dist/lib/core/domain/errors.domain.mjs +0 -17
  120. package/dist/lib/core/infrastructure/infrastructure.module.mjs +0 -30
  121. package/dist/lib/core/infrastructure/path.adapter.mjs +0 -246
  122. package/dist/lib/core/infrastructure/port-telemetry.decorator.mjs +0 -62
  123. package/dist/lib/core/infrastructure/repo-root-resolver.adapter.mjs +0 -233
  124. package/dist/lib/core/infrastructure/verbose-diagnostics.policy.mjs +0 -9
  125. package/dist/lib/core/presentation/cli-executor.presenter.mjs +0 -42
  126. package/dist/lib/core/presentation/cli-schema.parser.mjs +0 -7
  127. package/dist/lib/core/presentation/format-app-error.presenter.mjs +0 -17
  128. package/dist/lib/core/presentation/presentation.module.mjs +0 -5
  129. package/dist/lib/infrastructure/node-io.adapter.mjs +0 -285
  130. package/dist/lib/infrastructure/workspace/repo-root-resolver.service.mjs +0 -21
  131. package/dist/lib/kernel/contracts/cli-command.contract.mjs +0 -1
  132. package/dist/lib/kernel/contracts/tokens.mjs +0 -5
  133. package/dist/lib/mirror/adapters/primary/cli/mirror.command.mjs +0 -272
  134. package/dist/lib/mirror/adapters/secondary/file-system-service.adapter.mjs +0 -261
  135. package/dist/lib/mirror/adapters/secondary/mirror-sync-reporter.adapter.mjs +0 -243
  136. package/dist/lib/mirror/adapters/secondary/package-repository.adapter.mjs +0 -241
  137. package/dist/lib/mirror/adapters/secondary/sync-workspace-package.adapter.mjs +0 -351
  138. package/dist/lib/mirror/adapters/secondary/workspace-service.adapter.mjs +0 -237
  139. package/dist/lib/mirror/application/mirror-sync-json.format.mjs +0 -12
  140. package/dist/lib/mirror/application/ports/file-system-service.port.mjs +0 -1
  141. package/dist/lib/mirror/application/ports/mirror-sync-reporter.port.mjs +0 -1
  142. package/dist/lib/mirror/application/ports/package-repository.port.mjs +0 -1
  143. package/dist/lib/mirror/application/ports/sync-workspace-package.port.mjs +0 -1
  144. package/dist/lib/mirror/application/ports/workspace-service.port.mjs +0 -1
  145. package/dist/lib/mirror/application/requests/mirror-sync.request.mjs +0 -1
  146. package/dist/lib/mirror/application/services/mirror-package-arg-resolver.service.mjs +0 -20
  147. package/dist/lib/mirror/application/use-cases/prepare-mirror-sync.use-case.mjs +0 -264
  148. package/dist/lib/mirror/application/use-cases/run-mirror-sync.use-case.mjs +0 -302
  149. package/dist/lib/mirror/contracts/models.mjs +0 -1
  150. package/dist/lib/mirror/contracts/tokens.mjs +0 -11
  151. package/dist/lib/mirror/domain/types.domain.mjs +0 -1
  152. package/dist/lib/mirror/infrastructure/mirror-console-reporter.presenter.mjs +0 -99
  153. package/dist/lib/mirror/infrastructure/package-filter-resolver.service.mjs +0 -25
  154. package/dist/lib/mirror/infrastructure/workspace-packages.service.mjs +0 -158
  155. package/dist/lib/mirror/mirror.module.mjs +0 -25
  156. package/dist/lib/shared/source-code/infrastructure/typescript-source-file-walker.service.mjs +0 -33
  157. package/dist/lib/tag/adapters/primary/cli/presentation.tokens.mjs +0 -6
  158. package/dist/lib/tag/adapters/primary/cli/tag.command.mjs +0 -285
  159. package/dist/lib/tag/adapters/primary/cli/tag.presentation.module.mjs +0 -13
  160. package/dist/lib/tag/adapters/secondary/tag-since-writer.adapter.mjs +0 -348
  161. package/dist/lib/tag/adapters/secondary/tag-target-resolver.adapter.mjs +0 -233
  162. package/dist/lib/tag/adapters/secondary/tag-version-resolver.adapter.mjs +0 -249
  163. package/dist/lib/tag/adapters/secondary/typescript-tree-walk.adapter.mjs +0 -233
  164. package/dist/lib/tag/application/ports/tag-since-writer.port.mjs +0 -1
  165. package/dist/lib/tag/application/ports/tag-version-resolver.port.mjs +0 -1
  166. package/dist/lib/tag/application/ports/target-resolver.port.mjs +0 -1
  167. package/dist/lib/tag/application/ports/typescript-tree-walk.port.mjs +0 -1
  168. package/dist/lib/tag/application/requests/tag-sync.request.mjs +0 -1
  169. package/dist/lib/tag/application/services/tag-cli-target-path-resolver.service.mjs +0 -9
  170. package/dist/lib/tag/application/services/tag-target-runner.service.mjs +0 -21
  171. package/dist/lib/tag/application/tag-sync-cli-result.mjs +0 -11
  172. package/dist/lib/tag/application/tag-sync-json.format.mjs +0 -14
  173. package/dist/lib/tag/application/use-cases/prepare-tag-sync.use-case.mjs +0 -264
  174. package/dist/lib/tag/application/use-cases/run-tag-sync.use-case.mjs +0 -381
  175. package/dist/lib/tag/contracts/models.mjs +0 -1
  176. package/dist/lib/tag/contracts/tag-sync-result-presenter.contract.mjs +0 -1
  177. package/dist/lib/tag/contracts/tokens.mjs +0 -10
  178. package/dist/lib/tag/domain/types.domain.mjs +0 -1
  179. package/dist/lib/tag/infrastructure/tag-target-candidates.adapter.mjs +0 -170
  180. package/dist/lib/tag/presentation/colors.presenter.mjs +0 -12
  181. package/dist/lib/tag/presentation/present-tag-sync-result.presenter.mjs +0 -233
  182. package/dist/lib/tag/presentation/tag-sync-progress-listener.presenter.mjs +0 -243
  183. package/dist/lib/tag/tag.module.mjs +0 -23
  184. /package/dist/{lib/arrange/application/ports/domain-source-parser.port.mjs → arrange/domain/types.mjs} +0 -0
  185. /package/dist/{lib/arrange/application/ports/file-walker.port.mjs → core/filesystem/port.mjs} +0 -0
  186. /package/dist/{lib/arrange/application/ports/group-file-preview.port.mjs → mirror/domain/dist-filesystem.mjs} +0 -0
  187. /package/dist/{lib/arrange/application/ports/workspace-resolver.port.mjs → mirror/domain/types.mjs} +0 -0
  188. /package/dist/{lib/arrange/application/requests/analyze-directory.request.mjs → mirror/sync-types.mjs} +0 -0
  189. /package/dist/{lib/arrange/application/requests/arrange-sync.request.mjs → tag/domain/types.mjs} +0 -0
@@ -1,233 +0,0 @@
1
- import { CliFsToken } from "../contracts/tokens.mjs";
2
- import { findRepoRoot } from "../../infrastructure/workspace/repo-root-resolver.service.mjs";
3
- import { inject, injectable } from "@codefast/di";
4
- //#region src/lib/core/infrastructure/repo-root-resolver.adapter.ts
5
- function toPrimitive(input, hint) {
6
- if (typeof input !== "object" || input === null) return input;
7
- var prim = input[Symbol.toPrimitive];
8
- if (prim !== void 0) {
9
- var res = prim.call(input, hint || "default");
10
- if (typeof res !== "object") return res;
11
- throw new TypeError("@@toPrimitive must return a primitive value.");
12
- }
13
- return (hint === "string" ? String : Number)(input);
14
- }
15
- function toPropertyKey(arg) {
16
- var key = toPrimitive(arg, "string");
17
- return typeof key === "symbol" ? key : String(key);
18
- }
19
- function checkInRHS(value) {
20
- if (Object(value) !== value) throw TypeError("right-hand side of 'in' should be an object, got " + (value !== null ? typeof value : "null"));
21
- return value;
22
- }
23
- function setFunctionName(fn, name, prefix) {
24
- if (typeof name === "symbol") {
25
- name = name.description;
26
- name = name ? "[" + name + "]" : "";
27
- }
28
- try {
29
- Object.defineProperty(fn, "name", {
30
- configurable: true,
31
- value: prefix ? prefix + " " + name : name
32
- });
33
- } catch (_) {}
34
- return fn;
35
- }
36
- function _apply_decs_2311(targetClass, classDecs, memberDecs, classDecsHaveThis, instanceBrand, parentClass) {
37
- var symbolMetadata = Symbol.metadata || Symbol.for("Symbol.metadata");
38
- var defineProperty = Object.defineProperty;
39
- var create = Object.create;
40
- var metadata;
41
- var existingNonFields = [create(null), create(null)];
42
- var hasClassDecs = classDecs.length;
43
- var _;
44
- function createRunInitializers(initializers, useStaticThis, hasValue) {
45
- return function(thisArg, value) {
46
- if (useStaticThis) {
47
- value = thisArg;
48
- thisArg = targetClass;
49
- }
50
- for (var i = 0; i < initializers.length; i++) value = initializers[i].apply(thisArg, hasValue ? [value] : []);
51
- return hasValue ? value : thisArg;
52
- };
53
- }
54
- function assertCallable(fn, hint1, hint2, throwUndefined) {
55
- if (typeof fn !== "function") {
56
- if (throwUndefined || fn !== void 0) throw new TypeError(hint1 + " must " + (hint2 || "be") + " a function" + (throwUndefined ? "" : " or undefined"));
57
- }
58
- return fn;
59
- }
60
- function applyDec(Class, decInfo, decoratorsHaveThis, name, kind, initializers, ret, isStatic, isPrivate, isField, hasPrivateBrand) {
61
- function assertInstanceIfPrivate(target) {
62
- if (!hasPrivateBrand(target)) throw new TypeError("Attempted to access private element on non-instance");
63
- }
64
- var decs = [].concat(decInfo[0]);
65
- var decVal = decInfo[3];
66
- var isClass = !ret;
67
- var isAccessor = kind === 1;
68
- var isGetter = kind === 3;
69
- var isSetter = kind === 4;
70
- var isMethod = kind === 2;
71
- function bindPropCall(name, useStaticThis, before) {
72
- return function(_this, value) {
73
- if (useStaticThis) {
74
- value = _this;
75
- _this = Class;
76
- }
77
- if (before) before(_this);
78
- return desc[name].call(_this, value);
79
- };
80
- }
81
- var desc1 = {};
82
- var init = [];
83
- var key = isGetter ? "get" : isSetter || isAccessor ? "set" : "value";
84
- if (!isClass) {
85
- if (isPrivate) {
86
- if (isField || isAccessor) desc1 = {
87
- get: setFunctionName(function() {
88
- return decVal(this);
89
- }, name, "get"),
90
- set: function(value) {
91
- decInfo[4](this, value);
92
- }
93
- };
94
- else desc1[key] = decVal;
95
- if (!isField) setFunctionName(desc1[key], name, isMethod ? "" : key);
96
- } else if (!isField) desc1 = Object.getOwnPropertyDescriptor(Class, name);
97
- if (!isField && !isPrivate) {
98
- _ = existingNonFields[+isStatic][name];
99
- if (_ && (_ ^ kind) !== 7) throw new Error("Decorating two elements with the same name (" + desc1[key].name + ") is not supported yet");
100
- existingNonFields[+isStatic][name] = kind < 3 ? 1 : kind;
101
- }
102
- }
103
- var newValue = Class;
104
- for (var i = decs.length - 1; i >= 0; i -= decoratorsHaveThis ? 2 : 1) {
105
- var dec = assertCallable(decs[i], "A decorator", "be", true);
106
- var decThis = decoratorsHaveThis ? decs[i - 1] : void 0;
107
- var decoratorFinishedRef = {};
108
- var ctx = {
109
- kind: [
110
- "field",
111
- "accessor",
112
- "method",
113
- "getter",
114
- "setter",
115
- "class"
116
- ][kind],
117
- name,
118
- metadata,
119
- addInitializer: (function(decoratorFinishedRef, initializer) {
120
- if (decoratorFinishedRef.v) throw new TypeError("attempted to call addInitializer after decoration was finished");
121
- assertCallable(initializer, "An initializer", "be", true);
122
- initializers.push(initializer);
123
- }).bind(null, decoratorFinishedRef)
124
- };
125
- if (isClass) {
126
- _ = dec.call(decThis, newValue, ctx);
127
- decoratorFinishedRef.v = 1;
128
- if (assertCallable(_, "class decorators", "return")) newValue = _;
129
- continue;
130
- }
131
- ctx.static = isStatic;
132
- ctx.private = isPrivate;
133
- _ = ctx.access = { has: isPrivate ? hasPrivateBrand.bind() : function(target) {
134
- return name in target;
135
- } };
136
- if (!isSetter) _.get = isPrivate ? isMethod ? function(_this) {
137
- assertInstanceIfPrivate(_this);
138
- return desc1.value;
139
- } : bindPropCall("get", 0, assertInstanceIfPrivate) : function(target) {
140
- return target[name];
141
- };
142
- if (!isMethod && !isGetter) _.set = isPrivate ? bindPropCall("set", 0, assertInstanceIfPrivate) : function(target, value) {
143
- target[name] = value;
144
- };
145
- newValue = dec.call(decThis, isAccessor ? {
146
- get: desc1.get,
147
- set: desc1.set
148
- } : desc1[key], ctx);
149
- decoratorFinishedRef.v = 1;
150
- if (isAccessor) {
151
- if (typeof newValue === "object" && newValue) {
152
- if (_ = assertCallable(newValue.get, "accessor.get")) desc1.get = _;
153
- if (_ = assertCallable(newValue.set, "accessor.set")) desc1.set = _;
154
- if (_ = assertCallable(newValue.init, "accessor.init")) init.unshift(_);
155
- } else if (newValue !== void 0) throw new TypeError("accessor decorators must return an object with get, set, or init properties or undefined");
156
- } else if (assertCallable(newValue, (isField ? "field" : "method") + " decorators", "return")) if (isField) init.unshift(newValue);
157
- else desc1[key] = newValue;
158
- }
159
- if (kind < 2) ret.push(createRunInitializers(init, isStatic, 1), createRunInitializers(initializers, isStatic, 0));
160
- if (!isField && !isClass) if (isPrivate) if (isAccessor) ret.splice(-1, 0, bindPropCall("get", isStatic), bindPropCall("set", isStatic));
161
- else ret.push(isMethod ? desc1[key] : assertCallable.call.bind(desc1[key]));
162
- else defineProperty(Class, name, desc1);
163
- return newValue;
164
- }
165
- function applyMemberDecs() {
166
- var ret = [];
167
- var protoInitializers;
168
- var staticInitializers;
169
- var pushInitializers = function(initializers) {
170
- if (initializers) ret.push(createRunInitializers(initializers));
171
- };
172
- var applyMemberDecsOfKind = function(isStatic, isField) {
173
- for (var i = 0; i < memberDecs.length; i++) {
174
- var decInfo = memberDecs[i];
175
- var kind = decInfo[1];
176
- var kindOnly = kind & 7;
177
- if ((kind & 8) == isStatic && !kindOnly == isField) {
178
- var name = decInfo[2];
179
- var isPrivate = !!decInfo[3];
180
- var decoratorsHaveThis = kind & 16;
181
- applyDec(isStatic ? targetClass : targetClass.prototype, decInfo, decoratorsHaveThis, isPrivate ? "#" + name : toPropertyKey(name), kindOnly, kindOnly < 2 ? [] : isStatic ? staticInitializers = staticInitializers || [] : protoInitializers = protoInitializers || [], ret, !!isStatic, isPrivate, isField, isStatic && isPrivate ? function(_) {
182
- return checkInRHS(_) === targetClass;
183
- } : instanceBrand);
184
- }
185
- }
186
- };
187
- applyMemberDecsOfKind(8, 0);
188
- applyMemberDecsOfKind(0, 0);
189
- applyMemberDecsOfKind(8, 1);
190
- applyMemberDecsOfKind(0, 1);
191
- pushInitializers(protoInitializers);
192
- pushInitializers(staticInitializers);
193
- return ret;
194
- }
195
- function defineMetadata(Class) {
196
- return defineProperty(Class, symbolMetadata, {
197
- configurable: true,
198
- enumerable: true,
199
- value: metadata
200
- });
201
- }
202
- if (parentClass !== void 0) metadata = parentClass[symbolMetadata];
203
- metadata = create(metadata == null ? null : metadata);
204
- _ = applyMemberDecs();
205
- if (!hasClassDecs) defineMetadata(targetClass);
206
- return {
207
- e: _,
208
- get c() {
209
- var initializers = [];
210
- return hasClassDecs && [defineMetadata(targetClass = applyDec(targetClass, [classDecs], classDecsHaveThis, targetClass.name, 5, initializers)), createRunInitializers(initializers, 1)];
211
- }
212
- };
213
- }
214
- let _dec, _initClass;
215
- _dec = injectable([inject(CliFsToken)]);
216
- let _RepoRootResolverAdapter;
217
- (class {
218
- fs;
219
- static {
220
- ({c: [_RepoRootResolverAdapter, _initClass]} = _apply_decs_2311(this, [_dec], []));
221
- }
222
- constructor(fs) {
223
- this.fs = fs;
224
- }
225
- findRepoRoot(fromDirectory) {
226
- return findRepoRoot(this.fs, fromDirectory);
227
- }
228
- static {
229
- _initClass();
230
- }
231
- });
232
- //#endregion
233
- export { _RepoRootResolverAdapter as RepoRootResolverAdapter };
@@ -1,9 +0,0 @@
1
- //#region src/lib/core/infrastructure/verbose-diagnostics.policy.ts
2
- /**
3
- * When true, infrastructure failures may log full stack traces (e.g. in {@link consumeCliAppError}).
4
- */ function isVerboseInfraDiagnostics() {
5
- const raw = process.env.CODEFAST_VERBOSE;
6
- return raw === "1" || raw === "true";
7
- }
8
- //#endregion
9
- export { isVerboseInfraDiagnostics };
@@ -1,42 +0,0 @@
1
- import "../domain/cli-exit-codes.domain.mjs";
2
- import { formatAppError } from "./format-app-error.presenter.mjs";
3
- import { isVerboseInfraDiagnostics } from "../infrastructure/verbose-diagnostics.policy.mjs";
4
- import process from "node:process";
5
- //#region src/lib/core/presentation/cli-executor.presenter.ts
6
- function assertExhaustiveAppErrorCode(code) {
7
- return code;
8
- }
9
- /**
10
- * Maps {@link AppError} codes to `process.exitCode` for CLI commands.
11
- */ function exitCodeForAppError(error) {
12
- const { code } = error;
13
- switch (code) {
14
- case "NOT_FOUND": return 1;
15
- case "VALIDATION_ERROR": return 2;
16
- case "INFRA_FAILURE": return 1;
17
- default: return assertExhaustiveAppErrorCode(code);
18
- }
19
- }
20
- /**
21
- * When `outcome` is {@link Err}, logs via {@link formatAppError}, sets `process.exitCode`, returns `false`.
22
- * When `Ok`, optionally logs `successMessage` to stdout and returns `true`.
23
- */ function consumeCliAppError(logger, outcome, options) {
24
- if (!outcome.ok) {
25
- logger.err(formatAppError(outcome.error));
26
- if (isVerboseInfraDiagnostics() && outcome.error.code === "INFRA_FAILURE" && outcome.error.cause instanceof Error && outcome.error.cause.stack !== void 0) logger.err(outcome.error.cause.stack);
27
- process.exitCode = exitCodeForAppError(outcome.error);
28
- return false;
29
- }
30
- if (options?.successMessage !== void 0) logger.out(options.successMessage);
31
- return true;
32
- }
33
- /**
34
- * Async CLI result handling that sets `process.exitCode` from success/error outcome.
35
- */ async function runCliResultAsync(logger, outcomePromise, onSuccess) {
36
- const outcome = await outcomePromise;
37
- if (!consumeCliAppError(logger, outcome)) return;
38
- const exit = await onSuccess(outcome.value);
39
- process.exitCode = exit === void 0 ? 0 : exit;
40
- }
41
- //#endregion
42
- export { consumeCliAppError, runCliResultAsync };
@@ -1,7 +0,0 @@
1
- import { parseWithSchema } from "../application/services/schema-validator.service.mjs";
2
- //#region src/lib/core/presentation/cli-schema.parser.ts
3
- function parseWithCliSchema(schema, raw) {
4
- return parseWithSchema(schema, raw);
5
- }
6
- //#endregion
7
- export { parseWithCliSchema };
@@ -1,17 +0,0 @@
1
- //#region src/lib/core/presentation/format-app-error.presenter.ts
2
- function assertExhaustiveAppErrorCode(code) {
3
- return `Unhandled error code: ${String(code)}`;
4
- }
5
- /**
6
- * Stable, user-facing line for CLI output. Exhaustive over every `AppError["code"]`.
7
- */ function formatAppError(error) {
8
- const { code, message } = error;
9
- switch (code) {
10
- case "NOT_FOUND": return `[NOT_FOUND] ${message}`;
11
- case "VALIDATION_ERROR": return `[VALIDATION_ERROR] ${message}`;
12
- case "INFRA_FAILURE": return `[INFRA_FAILURE] ${message}`;
13
- default: return assertExhaustiveAppErrorCode(code);
14
- }
15
- }
16
- //#endregion
17
- export { formatAppError };
@@ -1,5 +0,0 @@
1
- import { Module } from "@codefast/di";
2
- //#region src/lib/core/presentation/presentation.module.ts
3
- const PresentationModule = Module.create("cli-presentation", () => {});
4
- //#endregion
5
- export { PresentationModule };
@@ -1,285 +0,0 @@
1
- import process from "node:process";
2
- import fsSync from "node:fs";
3
- import path from "node:path";
4
- import { injectable } from "@codefast/di";
5
- import fsPromises from "node:fs/promises";
6
- //#region src/lib/infrastructure/node-io.adapter.ts
7
- function toPrimitive(input, hint) {
8
- if (typeof input !== "object" || input === null) return input;
9
- var prim = input[Symbol.toPrimitive];
10
- if (prim !== void 0) {
11
- var res = prim.call(input, hint || "default");
12
- if (typeof res !== "object") return res;
13
- throw new TypeError("@@toPrimitive must return a primitive value.");
14
- }
15
- return (hint === "string" ? String : Number)(input);
16
- }
17
- function toPropertyKey(arg) {
18
- var key = toPrimitive(arg, "string");
19
- return typeof key === "symbol" ? key : String(key);
20
- }
21
- function checkInRHS(value) {
22
- if (Object(value) !== value) throw TypeError("right-hand side of 'in' should be an object, got " + (value !== null ? typeof value : "null"));
23
- return value;
24
- }
25
- function setFunctionName(fn, name, prefix) {
26
- if (typeof name === "symbol") {
27
- name = name.description;
28
- name = name ? "[" + name + "]" : "";
29
- }
30
- try {
31
- Object.defineProperty(fn, "name", {
32
- configurable: true,
33
- value: prefix ? prefix + " " + name : name
34
- });
35
- } catch (_) {}
36
- return fn;
37
- }
38
- function _apply_decs_2311(targetClass, classDecs, memberDecs, classDecsHaveThis, instanceBrand, parentClass) {
39
- var symbolMetadata = Symbol.metadata || Symbol.for("Symbol.metadata");
40
- var defineProperty = Object.defineProperty;
41
- var create = Object.create;
42
- var metadata;
43
- var existingNonFields = [create(null), create(null)];
44
- var hasClassDecs = classDecs.length;
45
- var _;
46
- function createRunInitializers(initializers, useStaticThis, hasValue) {
47
- return function(thisArg, value) {
48
- if (useStaticThis) {
49
- value = thisArg;
50
- thisArg = targetClass;
51
- }
52
- for (var i = 0; i < initializers.length; i++) value = initializers[i].apply(thisArg, hasValue ? [value] : []);
53
- return hasValue ? value : thisArg;
54
- };
55
- }
56
- function assertCallable(fn, hint1, hint2, throwUndefined) {
57
- if (typeof fn !== "function") {
58
- if (throwUndefined || fn !== void 0) throw new TypeError(hint1 + " must " + (hint2 || "be") + " a function" + (throwUndefined ? "" : " or undefined"));
59
- }
60
- return fn;
61
- }
62
- function applyDec(Class, decInfo, decoratorsHaveThis, name, kind, initializers, ret, isStatic, isPrivate, isField, hasPrivateBrand) {
63
- function assertInstanceIfPrivate(target) {
64
- if (!hasPrivateBrand(target)) throw new TypeError("Attempted to access private element on non-instance");
65
- }
66
- var decs = [].concat(decInfo[0]);
67
- var decVal = decInfo[3];
68
- var isClass = !ret;
69
- var isAccessor = kind === 1;
70
- var isGetter = kind === 3;
71
- var isSetter = kind === 4;
72
- var isMethod = kind === 2;
73
- function bindPropCall(name, useStaticThis, before) {
74
- return function(_this, value) {
75
- if (useStaticThis) {
76
- value = _this;
77
- _this = Class;
78
- }
79
- if (before) before(_this);
80
- return desc[name].call(_this, value);
81
- };
82
- }
83
- var desc1 = {};
84
- var init = [];
85
- var key = isGetter ? "get" : isSetter || isAccessor ? "set" : "value";
86
- if (!isClass) {
87
- if (isPrivate) {
88
- if (isField || isAccessor) desc1 = {
89
- get: setFunctionName(function() {
90
- return decVal(this);
91
- }, name, "get"),
92
- set: function(value) {
93
- decInfo[4](this, value);
94
- }
95
- };
96
- else desc1[key] = decVal;
97
- if (!isField) setFunctionName(desc1[key], name, isMethod ? "" : key);
98
- } else if (!isField) desc1 = Object.getOwnPropertyDescriptor(Class, name);
99
- if (!isField && !isPrivate) {
100
- _ = existingNonFields[+isStatic][name];
101
- if (_ && (_ ^ kind) !== 7) throw new Error("Decorating two elements with the same name (" + desc1[key].name + ") is not supported yet");
102
- existingNonFields[+isStatic][name] = kind < 3 ? 1 : kind;
103
- }
104
- }
105
- var newValue = Class;
106
- for (var i = decs.length - 1; i >= 0; i -= decoratorsHaveThis ? 2 : 1) {
107
- var dec = assertCallable(decs[i], "A decorator", "be", true);
108
- var decThis = decoratorsHaveThis ? decs[i - 1] : void 0;
109
- var decoratorFinishedRef = {};
110
- var ctx = {
111
- kind: [
112
- "field",
113
- "accessor",
114
- "method",
115
- "getter",
116
- "setter",
117
- "class"
118
- ][kind],
119
- name,
120
- metadata,
121
- addInitializer: (function(decoratorFinishedRef, initializer) {
122
- if (decoratorFinishedRef.v) throw new TypeError("attempted to call addInitializer after decoration was finished");
123
- assertCallable(initializer, "An initializer", "be", true);
124
- initializers.push(initializer);
125
- }).bind(null, decoratorFinishedRef)
126
- };
127
- if (isClass) {
128
- _ = dec.call(decThis, newValue, ctx);
129
- decoratorFinishedRef.v = 1;
130
- if (assertCallable(_, "class decorators", "return")) newValue = _;
131
- continue;
132
- }
133
- ctx.static = isStatic;
134
- ctx.private = isPrivate;
135
- _ = ctx.access = { has: isPrivate ? hasPrivateBrand.bind() : function(target) {
136
- return name in target;
137
- } };
138
- if (!isSetter) _.get = isPrivate ? isMethod ? function(_this) {
139
- assertInstanceIfPrivate(_this);
140
- return desc1.value;
141
- } : bindPropCall("get", 0, assertInstanceIfPrivate) : function(target) {
142
- return target[name];
143
- };
144
- if (!isMethod && !isGetter) _.set = isPrivate ? bindPropCall("set", 0, assertInstanceIfPrivate) : function(target, value) {
145
- target[name] = value;
146
- };
147
- newValue = dec.call(decThis, isAccessor ? {
148
- get: desc1.get,
149
- set: desc1.set
150
- } : desc1[key], ctx);
151
- decoratorFinishedRef.v = 1;
152
- if (isAccessor) {
153
- if (typeof newValue === "object" && newValue) {
154
- if (_ = assertCallable(newValue.get, "accessor.get")) desc1.get = _;
155
- if (_ = assertCallable(newValue.set, "accessor.set")) desc1.set = _;
156
- if (_ = assertCallable(newValue.init, "accessor.init")) init.unshift(_);
157
- } else if (newValue !== void 0) throw new TypeError("accessor decorators must return an object with get, set, or init properties or undefined");
158
- } else if (assertCallable(newValue, (isField ? "field" : "method") + " decorators", "return")) if (isField) init.unshift(newValue);
159
- else desc1[key] = newValue;
160
- }
161
- if (kind < 2) ret.push(createRunInitializers(init, isStatic, 1), createRunInitializers(initializers, isStatic, 0));
162
- if (!isField && !isClass) if (isPrivate) if (isAccessor) ret.splice(-1, 0, bindPropCall("get", isStatic), bindPropCall("set", isStatic));
163
- else ret.push(isMethod ? desc1[key] : assertCallable.call.bind(desc1[key]));
164
- else defineProperty(Class, name, desc1);
165
- return newValue;
166
- }
167
- function applyMemberDecs() {
168
- var ret = [];
169
- var protoInitializers;
170
- var staticInitializers;
171
- var pushInitializers = function(initializers) {
172
- if (initializers) ret.push(createRunInitializers(initializers));
173
- };
174
- var applyMemberDecsOfKind = function(isStatic, isField) {
175
- for (var i = 0; i < memberDecs.length; i++) {
176
- var decInfo = memberDecs[i];
177
- var kind = decInfo[1];
178
- var kindOnly = kind & 7;
179
- if ((kind & 8) == isStatic && !kindOnly == isField) {
180
- var name = decInfo[2];
181
- var isPrivate = !!decInfo[3];
182
- var decoratorsHaveThis = kind & 16;
183
- applyDec(isStatic ? targetClass : targetClass.prototype, decInfo, decoratorsHaveThis, isPrivate ? "#" + name : toPropertyKey(name), kindOnly, kindOnly < 2 ? [] : isStatic ? staticInitializers = staticInitializers || [] : protoInitializers = protoInitializers || [], ret, !!isStatic, isPrivate, isField, isStatic && isPrivate ? function(_) {
184
- return checkInRHS(_) === targetClass;
185
- } : instanceBrand);
186
- }
187
- }
188
- };
189
- applyMemberDecsOfKind(8, 0);
190
- applyMemberDecsOfKind(0, 0);
191
- applyMemberDecsOfKind(8, 1);
192
- applyMemberDecsOfKind(0, 1);
193
- pushInitializers(protoInitializers);
194
- pushInitializers(staticInitializers);
195
- return ret;
196
- }
197
- function defineMetadata(Class) {
198
- return defineProperty(Class, symbolMetadata, {
199
- configurable: true,
200
- enumerable: true,
201
- value: metadata
202
- });
203
- }
204
- if (parentClass !== void 0) metadata = parentClass[symbolMetadata];
205
- metadata = create(metadata == null ? null : metadata);
206
- _ = applyMemberDecs();
207
- if (!hasClassDecs) defineMetadata(targetClass);
208
- return {
209
- e: _,
210
- get c() {
211
- var initializers = [];
212
- return hasClassDecs && [defineMetadata(targetClass = applyDec(targetClass, [classDecs], classDecsHaveThis, targetClass.name, 5, initializers)), createRunInitializers(initializers, 1)];
213
- }
214
- };
215
- }
216
- let _dec, _initClass, _dec1, _initClass1, _dec2, _initClass2;
217
- function canonicalPathSyncNode(inputPath) {
218
- try {
219
- return fsSync.realpathSync.native(inputPath);
220
- } catch {
221
- return path.resolve(inputPath);
222
- }
223
- }
224
- _dec = injectable([]);
225
- let _NodeCliFsAdapter;
226
- (class {
227
- static {
228
- ({c: [_NodeCliFsAdapter, _initClass]} = _apply_decs_2311(this, [_dec], []));
229
- }
230
- existsSync = fsSync.existsSync;
231
- canonicalPathSync = canonicalPathSyncNode;
232
- statSync = fsSync.statSync;
233
- readFileSync = fsSync.readFileSync;
234
- writeFileSync = fsSync.writeFileSync;
235
- readdirSync = fsSync.readdirSync;
236
- readFile = (p, enc) => fsPromises.readFile(p, enc);
237
- writeFile = (p, data, enc) => fsPromises.writeFile(p, data, enc);
238
- readdir = async (p, opts) => {
239
- const raw = await fsPromises.readdir(p, opts);
240
- if (!opts?.withFileTypes) return raw;
241
- return raw;
242
- };
243
- rename = (oldPath, newPath) => fsPromises.rename(oldPath, newPath);
244
- unlink = (p) => fsPromises.unlink(p);
245
- static {
246
- _initClass();
247
- }
248
- });
249
- _dec1 = injectable([]);
250
- let _NodeCliLoggerAdapter;
251
- (class {
252
- static {
253
- ({c: [_NodeCliLoggerAdapter, _initClass1]} = _apply_decs_2311(this, [_dec1], []));
254
- }
255
- out(line) {
256
- process.stdout.write(`${line}\n`);
257
- }
258
- err(line) {
259
- process.stderr.write(`${line}\n`);
260
- }
261
- static {
262
- _initClass1();
263
- }
264
- });
265
- _dec2 = injectable([]);
266
- let _NodeCliRuntimeAdapter;
267
- (class {
268
- static {
269
- ({c: [_NodeCliRuntimeAdapter, _initClass2]} = _apply_decs_2311(this, [_dec2], []));
270
- }
271
- cwd() {
272
- return process.cwd();
273
- }
274
- setExitCode(code) {
275
- process.exitCode = code;
276
- }
277
- isStdoutTty() {
278
- return !!process.stdout.isTTY;
279
- }
280
- static {
281
- _initClass2();
282
- }
283
- });
284
- //#endregion
285
- export { _NodeCliFsAdapter as NodeCliFsAdapter, _NodeCliLoggerAdapter as NodeCliLoggerAdapter, _NodeCliRuntimeAdapter as NodeCliRuntimeAdapter };
@@ -1,21 +0,0 @@
1
- import path from "node:path";
2
- import { fileURLToPath } from "node:url";
3
- //#region src/lib/infrastructure/workspace/repo-root-resolver.service.ts
4
- /**
5
- * Resolve the monorepo root (directory containing `pnpm-workspace.yaml`).
6
- * Tries the compiled package location first, then the provided `startDir`.
7
- */ function findRepoRoot(fs, startDir) {
8
- const candidates = [path.dirname(fileURLToPath(import.meta.url)), startDir];
9
- for (const start of candidates) {
10
- let dir = path.resolve(start);
11
- for (;;) {
12
- if (fs.existsSync(path.join(dir, "pnpm-workspace.yaml"))) return dir;
13
- const parent = path.dirname(dir);
14
- if (parent === dir) break;
15
- dir = parent;
16
- }
17
- }
18
- throw new Error(`Could not locate monorepo root (missing pnpm-workspace.yaml). Searched from: ${candidates.join(", ")}`);
19
- }
20
- //#endregion
21
- export { findRepoRoot };
@@ -1 +0,0 @@
1
- export {};
@@ -1,5 +0,0 @@
1
- import { token } from "@codefast/di";
2
- //#region src/lib/kernel/contracts/tokens.ts
3
- const CliCommandToken = token("CliCommand");
4
- //#endregion
5
- export { CliCommandToken };