@codefast/cli 0.3.15 → 0.3.16-canary.1

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 (209) hide show
  1. package/README.md +1 -1
  2. package/dist/arrange/analyze.mjs +24 -0
  3. package/dist/{domains/arrange/presentation/presenters/arrange-cli.schema.mjs → arrange/cli-schema.mjs} +10 -1
  4. package/dist/arrange/command.mjs +106 -0
  5. package/dist/{domains/arrange/domain/arrange-analyze.domain-service.mjs → arrange/domain/analyze-service.mjs} +17 -10
  6. package/dist/{domains/arrange/domain/ast/ast-node.model.mjs → arrange/domain/ast/ast-node.mjs} +57 -3
  7. package/dist/{domains/arrange/domain/ast/collectors-cn.collector.mjs → arrange/domain/ast/collectors-cn.mjs} +21 -9
  8. package/dist/{domains/arrange/domain/ast/collectors-jsx.collector.mjs → arrange/domain/ast/collectors-jsx.mjs} +5 -2
  9. package/dist/{domains/arrange/domain/ast/collectors-tv.collector.mjs → arrange/domain/ast/collectors-tv.mjs} +21 -6
  10. package/dist/{domains/arrange/domain/ast/ast-helpers.helper.mjs → arrange/domain/ast/helpers.mjs} +26 -9
  11. package/dist/{domains/arrange/domain/ast/targets.model.mjs → arrange/domain/ast/targets.mjs} +19 -10
  12. package/dist/{domains/arrange/domain/constants.domain.mjs → arrange/domain/constants.mjs} +61 -16
  13. package/dist/{domains/arrange/domain/arrange-grouping.domain-service.mjs → arrange/domain/grouping-service.mjs} +31 -10
  14. package/dist/{domains/arrange/domain/grouping.domain.mjs → arrange/domain/grouping.mjs} +39 -18
  15. package/dist/{domains/arrange/domain/imports.domain.mjs → arrange/domain/imports.mjs} +7 -3
  16. package/dist/{domains/arrange/domain/source-text-formatters.formatter.mjs → arrange/domain/source-text-formatters.mjs} +22 -5
  17. package/dist/{domains/arrange/domain/tailwind-token.value-object.mjs → arrange/domain/tailwind-token.mjs} +12 -3
  18. package/dist/{domains/arrange/domain/tailwind-token-classifier.domain-service.mjs → arrange/domain/token-classifier.mjs} +39 -14
  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 -20
  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/{domains/config/domain/codefast-config.schema.mjs → core/config/schema.mjs} +16 -2
  36. package/dist/core/config/warnings.mjs +12 -0
  37. package/dist/core/config.mjs +19 -0
  38. package/dist/{shell/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/{shell/domain/result.model.mjs → core/result.mjs} +7 -3
  43. package/dist/core/schema-parse.mjs +18 -0
  44. package/dist/{shell/domain/source-text-edit.support.mjs → core/source-text-edit.mjs} +14 -13
  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/{domains/mirror/application/mirror-sync-cli-result.mjs → mirror/cli-result.mjs} +8 -2
  49. package/dist/{domains/mirror/presentation/presenters/mirror-cli.schema.mjs → mirror/cli-schema.mjs} +4 -1
  50. package/dist/mirror/command.mjs +57 -0
  51. package/dist/mirror/dist-filesystem-impl.mjs +42 -0
  52. package/dist/{domains/mirror/domain/constants.domain.mjs → mirror/domain/constants.mjs} +16 -1
  53. package/dist/{domains/mirror/infrastructure/guards/dirent-list.guard.mjs → mirror/domain/dirent-guard.mjs} +5 -2
  54. package/dist/{domains/mirror/domain/errors.domain.mjs → mirror/domain/errors.mjs} +7 -1
  55. package/dist/{domains/mirror/domain/generate-mirror-exports.domain-service.mjs → mirror/domain/exports.mjs} +17 -10
  56. package/dist/{domains/mirror/domain/package-display-name.policy.mjs → mirror/domain/package-display-name.mjs} +5 -2
  57. package/dist/{domains/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/{domains/mirror/infrastructure/package-json-exports.repository.mjs → mirror/write-exports.mjs} +11 -7
  65. package/dist/tag/cli-result.mjs +11 -0
  66. package/dist/{domains/tag/presentation/presenters/tag-cli.schema.mjs → tag/cli-schema.mjs} +4 -1
  67. package/dist/tag/command.mjs +56 -0
  68. package/dist/tag/output.mjs +87 -0
  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 +131 -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 +11 -11
  77. package/dist/bootstrap/cli-application.module.mjs +0 -18
  78. package/dist/bootstrap/composition-root.mjs +0 -14
  79. package/dist/bootstrap/register-cli-command-trees.mjs +0 -7
  80. package/dist/domains/arrange/application/ports/outbound/arrange-target-scanner.port.mjs +0 -1
  81. package/dist/domains/arrange/application/ports/outbound/domain-source-parser.port.mjs +0 -1
  82. package/dist/domains/arrange/application/ports/outbound/file-walker.port.mjs +0 -1
  83. package/dist/domains/arrange/application/ports/presenting/present-analyze-report.presenter.mjs +0 -1
  84. package/dist/domains/arrange/application/ports/presenting/present-arrange-sync-result.presenter.mjs +0 -1
  85. package/dist/domains/arrange/application/ports/presenting/present-group-file-preview.presenter.mjs +0 -1
  86. package/dist/domains/arrange/application/requests/analyze-directory.request.mjs +0 -1
  87. package/dist/domains/arrange/application/requests/arrange-sync.request.mjs +0 -1
  88. package/dist/domains/arrange/application/requests/suggest-groups.request.mjs +0 -1
  89. package/dist/domains/arrange/application/use-cases/analyze-directory.use-case.mjs +0 -255
  90. package/dist/domains/arrange/application/use-cases/prepare-arrange-workspace.use-case.mjs +0 -264
  91. package/dist/domains/arrange/application/use-cases/run-arrange-sync.use-case.mjs +0 -274
  92. package/dist/domains/arrange/application/use-cases/suggest-cn-groups.use-case.mjs +0 -237
  93. package/dist/domains/arrange/arrange.module.mjs +0 -38
  94. package/dist/domains/arrange/composition/tokens.mjs +0 -17
  95. package/dist/domains/arrange/contracts/models.mjs +0 -1
  96. package/dist/domains/arrange/domain/tailwind-grouping.domain-service.mjs +0 -231
  97. package/dist/domains/arrange/domain/types.domain.mjs +0 -1
  98. package/dist/domains/arrange/infrastructure/adapters/arrange-file-processor.adapter.mjs +0 -267
  99. package/dist/domains/arrange/infrastructure/adapters/arrange-target-path-resolver.adapter.mjs +0 -247
  100. package/dist/domains/arrange/infrastructure/adapters/arrange-target-scanner.adapter.mjs +0 -243
  101. package/dist/domains/arrange/infrastructure/adapters/domain-source-parser.adapter.mjs +0 -241
  102. package/dist/domains/arrange/infrastructure/adapters/file-walker.adapter.mjs +0 -240
  103. package/dist/domains/arrange/infrastructure/typescript-ast-translator.mjs +0 -580
  104. package/dist/domains/arrange/presentation/cli/arrange.command.mjs +0 -465
  105. package/dist/domains/arrange/presentation/presenters/arrange-analyze.presenter.mjs +0 -252
  106. package/dist/domains/arrange/presentation/presenters/arrange-sync.presenter.mjs +0 -236
  107. package/dist/domains/arrange/presentation/presenters/group-file-preview.presenter.mjs +0 -271
  108. package/dist/domains/config/application/ports/outbound/codefast-config-schema.port.mjs +0 -1
  109. package/dist/domains/config/application/ports/outbound/config-loader.port.mjs +0 -1
  110. package/dist/domains/config/application/ports/outbound/config-warning-reporter.port.mjs +0 -1
  111. package/dist/domains/config/composition/tokens.mjs +0 -7
  112. package/dist/domains/config/domain/schema.domain.mjs +0 -1
  113. package/dist/domains/config/infrastructure/adapters/config-loader.adapter.mjs +0 -305
  114. package/dist/domains/config/infrastructure/adapters/config-warning-reporter.adapter.mjs +0 -234
  115. package/dist/domains/config/infrastructure/adapters/zod-codefast-config-schema.adapter.mjs +0 -236
  116. package/dist/domains/mirror/application/ports/inbound/prepare-mirror-sync.port.mjs +0 -1
  117. package/dist/domains/mirror/application/ports/inbound/run-mirror-sync.port.mjs +0 -1
  118. package/dist/domains/mirror/application/ports/outbound/file-system-service.port.mjs +0 -1
  119. package/dist/domains/mirror/application/ports/outbound/mirror-package-path.port.mjs +0 -1
  120. package/dist/domains/mirror/application/ports/outbound/mirror-sync-reporter.port.mjs +0 -1
  121. package/dist/domains/mirror/application/ports/outbound/package-repository.port.mjs +0 -1
  122. package/dist/domains/mirror/application/ports/outbound/sync-workspace-package.port.mjs +0 -1
  123. package/dist/domains/mirror/application/ports/presenting/present-mirror-sync-progress.presenter.mjs +0 -1
  124. package/dist/domains/mirror/application/requests/mirror-sync-execution-input.mjs +0 -1
  125. package/dist/domains/mirror/application/requests/mirror-sync.request.mjs +0 -1
  126. package/dist/domains/mirror/application/use-cases/prepare-mirror-sync.use-case.mjs +0 -263
  127. package/dist/domains/mirror/application/use-cases/run-mirror-sync.use-case.mjs +0 -317
  128. package/dist/domains/mirror/composition/tokens.mjs +0 -12
  129. package/dist/domains/mirror/contracts/models.mjs +0 -1
  130. package/dist/domains/mirror/domain/types.domain.mjs +0 -1
  131. package/dist/domains/mirror/infrastructure/adapters/file-system-service.adapter.mjs +0 -261
  132. package/dist/domains/mirror/infrastructure/adapters/mirror-package-path-resolver.adapter.mjs +0 -252
  133. package/dist/domains/mirror/infrastructure/adapters/mirror-sync-reporter.adapter.mjs +0 -322
  134. package/dist/domains/mirror/infrastructure/adapters/package-repository.adapter.mjs +0 -241
  135. package/dist/domains/mirror/infrastructure/adapters/sync-workspace-package.adapter.mjs +0 -328
  136. package/dist/domains/mirror/mirror.module.mjs +0 -26
  137. package/dist/domains/mirror/presentation/cli/mirror.command.mjs +0 -328
  138. package/dist/domains/mirror/presentation/presenters/present-mirror-sync-progress.presenter.mjs +0 -265
  139. package/dist/domains/tag/application/ports/inbound/prepare-tag-sync.port.mjs +0 -1
  140. package/dist/domains/tag/application/ports/inbound/run-tag-sync.port.mjs +0 -1
  141. package/dist/domains/tag/application/ports/outbound/tag-eligible-workspace-paths.port.mjs +0 -1
  142. package/dist/domains/tag/application/ports/outbound/tag-since-writer.port.mjs +0 -1
  143. package/dist/domains/tag/application/ports/outbound/tag-target-path-resolver.port.mjs +0 -1
  144. package/dist/domains/tag/application/ports/outbound/tag-target-runner.port.mjs +0 -1
  145. package/dist/domains/tag/application/ports/outbound/tag-version-resolver.port.mjs +0 -1
  146. package/dist/domains/tag/application/ports/presenting/present-tag-sync-progress.presenter.mjs +0 -1
  147. package/dist/domains/tag/application/ports/presenting/present-tag-sync-result.presenter.mjs +0 -1
  148. package/dist/domains/tag/application/requests/tag-sync-execution-input.mjs +0 -1
  149. package/dist/domains/tag/application/requests/tag-sync.request.mjs +0 -1
  150. package/dist/domains/tag/application/tag-sync-cli-result.mjs +0 -11
  151. package/dist/domains/tag/application/use-cases/prepare-tag-sync.use-case.mjs +0 -260
  152. package/dist/domains/tag/application/use-cases/run-tag-sync.use-case.mjs +0 -375
  153. package/dist/domains/tag/composition/tokens.mjs +0 -13
  154. package/dist/domains/tag/contracts/models.mjs +0 -1
  155. package/dist/domains/tag/domain/types.domain.mjs +0 -1
  156. package/dist/domains/tag/infrastructure/adapters/tag-since-writer.adapter.mjs +0 -348
  157. package/dist/domains/tag/infrastructure/adapters/tag-target-path-resolver.adapter.mjs +0 -235
  158. package/dist/domains/tag/infrastructure/adapters/tag-target-resolver.adapter.mjs +0 -302
  159. package/dist/domains/tag/infrastructure/adapters/tag-target-runner.adapter.mjs +0 -259
  160. package/dist/domains/tag/infrastructure/adapters/tag-version-resolver.adapter.mjs +0 -249
  161. package/dist/domains/tag/presentation/cli/tag.command.mjs +0 -325
  162. package/dist/domains/tag/presentation/presenters/present-tag-sync-progress.presenter.mjs +0 -248
  163. package/dist/domains/tag/presentation/presenters/present-tag-sync-result.presenter.mjs +0 -290
  164. package/dist/domains/tag/tag.module.mjs +0 -28
  165. package/dist/shell/application/cli-runtime.tokens.mjs +0 -18
  166. package/dist/shell/application/coordination/cli-executor.coordination.mjs +0 -1
  167. package/dist/shell/application/coordination/cli-schema-parsing.coordination.mjs +0 -1
  168. package/dist/shell/application/global-cli-options.model.mjs +0 -5
  169. package/dist/shell/application/ports/inbound/load-codefast-config.port.mjs +0 -1
  170. package/dist/shell/application/ports/outbound/cli-fs.port.mjs +0 -1
  171. package/dist/shell/application/ports/outbound/cli-logger.port.mjs +0 -1
  172. package/dist/shell/application/ports/outbound/cli-path.port.mjs +0 -1
  173. package/dist/shell/application/ports/outbound/cli-runtime.port.mjs +0 -1
  174. package/dist/shell/application/ports/outbound/cli-telemetry.port.mjs +0 -1
  175. package/dist/shell/application/ports/outbound/cli-verbose-diagnostics.port.mjs +0 -1
  176. package/dist/shell/application/ports/outbound/format-app-error.port.mjs +0 -1
  177. package/dist/shell/application/ports/outbound/global-cli-options-parse.port.mjs +0 -1
  178. package/dist/shell/application/ports/outbound/repo-root-resolver.port.mjs +0 -1
  179. package/dist/shell/application/ports/outbound/typescript-source-file-walker.port.mjs +0 -1
  180. package/dist/shell/application/ports/outbound/workspace-package-layout.port.mjs +0 -1
  181. package/dist/shell/application/ports/primary/command.port.mjs +0 -1
  182. package/dist/shell/application/services/cli-executor.service.mjs +0 -267
  183. package/dist/shell/application/services/schema-validator.service.mjs +0 -236
  184. package/dist/shell/application/use-cases/load-codefast-config.use-case.mjs +0 -243
  185. package/dist/shell/composition/tokens.mjs +0 -5
  186. package/dist/shell/contracts/cli-command-slots.mjs +0 -11
  187. package/dist/shell/domain/cli-exit-codes.domain.mjs +0 -11
  188. package/dist/shell/domain/cli-positional-arg.value-object.mjs +0 -6
  189. package/dist/shell/domain/errors.domain.mjs +0 -17
  190. package/dist/shell/infrastructure/adapters/cli-verbose-diagnostics.adapter.mjs +0 -228
  191. package/dist/shell/infrastructure/adapters/format-app-error.adapter.mjs +0 -236
  192. package/dist/shell/infrastructure/adapters/global-cli-options-parser.adapter.mjs +0 -233
  193. package/dist/shell/infrastructure/adapters/repo-root-resolver.adapter.mjs +0 -244
  194. package/dist/shell/infrastructure/adapters/typescript-source-file-walker.adapter.mjs +0 -259
  195. package/dist/shell/infrastructure/commander/commander-cli-host.adapter.mjs +0 -69
  196. package/dist/shell/infrastructure/node/node-cli-fs.adapter.mjs +0 -249
  197. package/dist/shell/infrastructure/node/node-cli-logger.adapter.mjs +0 -231
  198. package/dist/shell/infrastructure/node/node-cli-path.adapter.mjs +0 -246
  199. package/dist/shell/infrastructure/node/node-cli-runtime.adapter.mjs +0 -234
  200. package/dist/shell/infrastructure/telemetry/cli-telemetry.adapter.mjs +0 -280
  201. package/dist/shell/infrastructure/workspace/node-pnpm-workspace-package-layout.adapter.mjs +0 -385
  202. package/dist/shell/shell.module.mjs +0 -43
  203. package/dist/shell/wiring/optional-cli-port-telemetry-activation.mjs +0 -13
  204. /package/dist/{domains/arrange/application/ports/inbound/analyze-directory.port.mjs → arrange/domain/types.mjs} +0 -0
  205. /package/dist/{domains/arrange/application/ports/inbound/prepare-arrange-workspace.port.mjs → core/filesystem/port.mjs} +0 -0
  206. /package/dist/{domains/arrange/application/ports/inbound/run-arrange-sync.port.mjs → mirror/domain/dist-filesystem.mjs} +0 -0
  207. /package/dist/{domains/arrange/application/ports/inbound/suggest-cn-groups.port.mjs → mirror/domain/types.mjs} +0 -0
  208. /package/dist/{domains/arrange/application/ports/outbound/arrange-file-processor.port.mjs → mirror/sync-types.mjs} +0 -0
  209. /package/dist/{domains/arrange/application/ports/outbound/arrange-target-path-resolver.port.mjs → tag/domain/types.mjs} +0 -0
@@ -1,465 +0,0 @@
1
- import { AnalyzeDirectoryUseCaseToken, PrepareArrangeWorkspaceUseCaseToken, PresentAnalyzeReportPresenterToken, PresentArrangeSyncResultPresenterToken, PresentGroupFilePreviewPresenterToken, RunArrangeSyncUseCaseToken, SuggestCnGroupsUseCaseToken } from "../../composition/tokens.mjs";
2
- import { CliExecutorToken, CliLoggerPortToken, CliRuntimeToken, CliSchemaParsingToken } from "../../../../shell/application/cli-runtime.tokens.mjs";
3
- import "../../../../shell/domain/cli-exit-codes.domain.mjs";
4
- import { arrangeAnalyzeDirectoryRequestSchema, arrangeSuggestGroupsRequestSchema, arrangeSyncRunRequestSchema } from "../presenters/arrange-cli.schema.mjs";
5
- import { CLI_COMMAND_SLOT_NAME } from "../../../../shell/contracts/cli-command-slots.mjs";
6
- import { readOptionalPositionalArg } from "../../../../shell/domain/cli-positional-arg.value-object.mjs";
7
- import { inject, injectable } from "@codefast/di";
8
- //#region src/domains/arrange/presentation/cli/arrange.command.ts
9
- function toPrimitive(input, hint) {
10
- if (typeof input !== "object" || input === null) return input;
11
- var prim = input[Symbol.toPrimitive];
12
- if (prim !== void 0) {
13
- var res = prim.call(input, hint || "default");
14
- if (typeof res !== "object") return res;
15
- throw new TypeError("@@toPrimitive must return a primitive value.");
16
- }
17
- return (hint === "string" ? String : Number)(input);
18
- }
19
- function toPropertyKey(arg) {
20
- var key = toPrimitive(arg, "string");
21
- return typeof key === "symbol" ? key : String(key);
22
- }
23
- function checkInRHS(value) {
24
- if (Object(value) !== value) throw TypeError("right-hand side of 'in' should be an object, got " + (value !== null ? typeof value : "null"));
25
- return value;
26
- }
27
- function setFunctionName(fn, name, prefix) {
28
- if (typeof name === "symbol") {
29
- name = name.description;
30
- name = name ? "[" + name + "]" : "";
31
- }
32
- try {
33
- Object.defineProperty(fn, "name", {
34
- configurable: true,
35
- value: prefix ? prefix + " " + name : name
36
- });
37
- } catch (_) {}
38
- return fn;
39
- }
40
- function _apply_decs_2311(targetClass, classDecs, memberDecs, classDecsHaveThis, instanceBrand, parentClass) {
41
- var symbolMetadata = Symbol.metadata || Symbol.for("Symbol.metadata");
42
- var defineProperty = Object.defineProperty;
43
- var create = Object.create;
44
- var metadata;
45
- var existingNonFields = [create(null), create(null)];
46
- var hasClassDecs = classDecs.length;
47
- var _;
48
- function createRunInitializers(initializers, useStaticThis, hasValue) {
49
- return function(thisArg, value) {
50
- if (useStaticThis) {
51
- value = thisArg;
52
- thisArg = targetClass;
53
- }
54
- for (var i = 0; i < initializers.length; i++) value = initializers[i].apply(thisArg, hasValue ? [value] : []);
55
- return hasValue ? value : thisArg;
56
- };
57
- }
58
- function assertCallable(fn, hint1, hint2, throwUndefined) {
59
- if (typeof fn !== "function") {
60
- if (throwUndefined || fn !== void 0) throw new TypeError(hint1 + " must " + (hint2 || "be") + " a function" + (throwUndefined ? "" : " or undefined"));
61
- }
62
- return fn;
63
- }
64
- function applyDec(Class, decInfo, decoratorsHaveThis, name, kind, initializers, ret, isStatic, isPrivate, isField, hasPrivateBrand) {
65
- function assertInstanceIfPrivate(target) {
66
- if (!hasPrivateBrand(target)) throw new TypeError("Attempted to access private element on non-instance");
67
- }
68
- var decs = [].concat(decInfo[0]);
69
- var decVal = decInfo[3];
70
- var isClass = !ret;
71
- var isAccessor = kind === 1;
72
- var isGetter = kind === 3;
73
- var isSetter = kind === 4;
74
- var isMethod = kind === 2;
75
- function bindPropCall(name, useStaticThis, before) {
76
- return function(_this, value) {
77
- if (useStaticThis) {
78
- value = _this;
79
- _this = Class;
80
- }
81
- if (before) before(_this);
82
- return desc[name].call(_this, value);
83
- };
84
- }
85
- var desc1 = {};
86
- var init = [];
87
- var key = isGetter ? "get" : isSetter || isAccessor ? "set" : "value";
88
- if (!isClass) {
89
- if (isPrivate) {
90
- if (isField || isAccessor) desc1 = {
91
- get: setFunctionName(function() {
92
- return decVal(this);
93
- }, name, "get"),
94
- set: function(value) {
95
- decInfo[4](this, value);
96
- }
97
- };
98
- else desc1[key] = decVal;
99
- if (!isField) setFunctionName(desc1[key], name, isMethod ? "" : key);
100
- } else if (!isField) desc1 = Object.getOwnPropertyDescriptor(Class, name);
101
- if (!isField && !isPrivate) {
102
- _ = existingNonFields[+isStatic][name];
103
- if (_ && (_ ^ kind) !== 7) throw new Error("Decorating two elements with the same name (" + desc1[key].name + ") is not supported yet");
104
- existingNonFields[+isStatic][name] = kind < 3 ? 1 : kind;
105
- }
106
- }
107
- var newValue = Class;
108
- for (var i = decs.length - 1; i >= 0; i -= decoratorsHaveThis ? 2 : 1) {
109
- var dec = assertCallable(decs[i], "A decorator", "be", true);
110
- var decThis = decoratorsHaveThis ? decs[i - 1] : void 0;
111
- var decoratorFinishedRef = {};
112
- var ctx = {
113
- kind: [
114
- "field",
115
- "accessor",
116
- "method",
117
- "getter",
118
- "setter",
119
- "class"
120
- ][kind],
121
- name,
122
- metadata,
123
- addInitializer: (function(decoratorFinishedRef, initializer) {
124
- if (decoratorFinishedRef.v) throw new TypeError("attempted to call addInitializer after decoration was finished");
125
- assertCallable(initializer, "An initializer", "be", true);
126
- initializers.push(initializer);
127
- }).bind(null, decoratorFinishedRef)
128
- };
129
- if (isClass) {
130
- _ = dec.call(decThis, newValue, ctx);
131
- decoratorFinishedRef.v = 1;
132
- if (assertCallable(_, "class decorators", "return")) newValue = _;
133
- continue;
134
- }
135
- ctx.static = isStatic;
136
- ctx.private = isPrivate;
137
- _ = ctx.access = { has: isPrivate ? hasPrivateBrand.bind() : function(target) {
138
- return name in target;
139
- } };
140
- if (!isSetter) _.get = isPrivate ? isMethod ? function(_this) {
141
- assertInstanceIfPrivate(_this);
142
- return desc1.value;
143
- } : bindPropCall("get", 0, assertInstanceIfPrivate) : function(target) {
144
- return target[name];
145
- };
146
- if (!isMethod && !isGetter) _.set = isPrivate ? bindPropCall("set", 0, assertInstanceIfPrivate) : function(target, value) {
147
- target[name] = value;
148
- };
149
- newValue = dec.call(decThis, isAccessor ? {
150
- get: desc1.get,
151
- set: desc1.set
152
- } : desc1[key], ctx);
153
- decoratorFinishedRef.v = 1;
154
- if (isAccessor) {
155
- if (typeof newValue === "object" && newValue) {
156
- if (_ = assertCallable(newValue.get, "accessor.get")) desc1.get = _;
157
- if (_ = assertCallable(newValue.set, "accessor.set")) desc1.set = _;
158
- if (_ = assertCallable(newValue.init, "accessor.init")) init.unshift(_);
159
- } else if (newValue !== void 0) throw new TypeError("accessor decorators must return an object with get, set, or init properties or undefined");
160
- } else if (assertCallable(newValue, (isField ? "field" : "method") + " decorators", "return")) if (isField) init.unshift(newValue);
161
- else desc1[key] = newValue;
162
- }
163
- if (kind < 2) ret.push(createRunInitializers(init, isStatic, 1), createRunInitializers(initializers, isStatic, 0));
164
- if (!isField && !isClass) if (isPrivate) if (isAccessor) ret.splice(-1, 0, bindPropCall("get", isStatic), bindPropCall("set", isStatic));
165
- else ret.push(isMethod ? desc1[key] : assertCallable.call.bind(desc1[key]));
166
- else defineProperty(Class, name, desc1);
167
- return newValue;
168
- }
169
- function applyMemberDecs() {
170
- var ret = [];
171
- var protoInitializers;
172
- var staticInitializers;
173
- var pushInitializers = function(initializers) {
174
- if (initializers) ret.push(createRunInitializers(initializers));
175
- };
176
- var applyMemberDecsOfKind = function(isStatic, isField) {
177
- for (var i = 0; i < memberDecs.length; i++) {
178
- var decInfo = memberDecs[i];
179
- var kind = decInfo[1];
180
- var kindOnly = kind & 7;
181
- if ((kind & 8) == isStatic && !kindOnly == isField) {
182
- var name = decInfo[2];
183
- var isPrivate = !!decInfo[3];
184
- var decoratorsHaveThis = kind & 16;
185
- 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(_) {
186
- return checkInRHS(_) === targetClass;
187
- } : instanceBrand);
188
- }
189
- }
190
- };
191
- applyMemberDecsOfKind(8, 0);
192
- applyMemberDecsOfKind(0, 0);
193
- applyMemberDecsOfKind(8, 1);
194
- applyMemberDecsOfKind(0, 1);
195
- pushInitializers(protoInitializers);
196
- pushInitializers(staticInitializers);
197
- return ret;
198
- }
199
- function defineMetadata(Class) {
200
- return defineProperty(Class, symbolMetadata, {
201
- configurable: true,
202
- enumerable: true,
203
- value: metadata
204
- });
205
- }
206
- if (parentClass !== void 0) metadata = parentClass[symbolMetadata];
207
- metadata = create(metadata == null ? null : metadata);
208
- _ = applyMemberDecs();
209
- if (!hasClassDecs) defineMetadata(targetClass);
210
- return {
211
- e: _,
212
- get c() {
213
- var initializers = [];
214
- return hasClassDecs && [defineMetadata(targetClass = applyDec(targetClass, [classDecs], classDecsHaveThis, targetClass.name, 5, initializers)), createRunInitializers(initializers, 1)];
215
- }
216
- };
217
- }
218
- let _dec, _initClass;
219
- _dec = injectable([
220
- inject(CliLoggerPortToken),
221
- inject(CliRuntimeToken),
222
- inject(PrepareArrangeWorkspaceUseCaseToken),
223
- inject(AnalyzeDirectoryUseCaseToken),
224
- inject(RunArrangeSyncUseCaseToken),
225
- inject(SuggestCnGroupsUseCaseToken),
226
- inject(PresentAnalyzeReportPresenterToken),
227
- inject(PresentGroupFilePreviewPresenterToken),
228
- inject(PresentArrangeSyncResultPresenterToken),
229
- inject(CliSchemaParsingToken),
230
- inject(CliExecutorToken)
231
- ]);
232
- let _ArrangeCommand;
233
- (class {
234
- logger;
235
- runtime;
236
- prepareWorkspace;
237
- analyzeDirectory;
238
- runArrangeSync;
239
- suggestCnGroups;
240
- presentAnalyzeReport;
241
- presentGroupFilePreview;
242
- presentArrangeSyncResult;
243
- schemaValidation;
244
- cliExecutor;
245
- static {
246
- ({c: [_ArrangeCommand, _initClass]} = _apply_decs_2311(this, [_dec], []));
247
- }
248
- constructor(logger, runtime, prepareWorkspace, analyzeDirectory, runArrangeSync, suggestCnGroups, presentAnalyzeReport, presentGroupFilePreview, presentArrangeSyncResult, schemaValidation, cliExecutor) {
249
- this.logger = logger;
250
- this.runtime = runtime;
251
- this.prepareWorkspace = prepareWorkspace;
252
- this.analyzeDirectory = analyzeDirectory;
253
- this.runArrangeSync = runArrangeSync;
254
- this.suggestCnGroups = suggestCnGroups;
255
- this.presentAnalyzeReport = presentAnalyzeReport;
256
- this.presentGroupFilePreview = presentGroupFilePreview;
257
- this.presentArrangeSyncResult = presentArrangeSyncResult;
258
- this.schemaValidation = schemaValidation;
259
- this.cliExecutor = cliExecutor;
260
- }
261
- get definition() {
262
- return {
263
- name: CLI_COMMAND_SLOT_NAME.arrange,
264
- description: "Analyze and regroup Tailwind classes in cn() / tv() calls (Tailwind v4)",
265
- children: [
266
- {
267
- name: "analyze",
268
- description: "Report long strings, nested cn in tv(), and related findings",
269
- route: [{
270
- kind: "optionalPositional",
271
- argumentTemplate: "[target]",
272
- helpBlurb: "Directory or file (default: nearest package directory from cwd)"
273
- }, {
274
- kind: "booleanFlag",
275
- flagPhrase: "--json",
276
- helpBlurb: "Print one JSON object on stdout instead of a human report",
277
- whenUnsetUses: false
278
- }],
279
- action: async (positionalPieces, typedLocalCarrier) => {
280
- await this.performAnalyzeSubtree(readOptionalPositionalArg(positionalPieces[0]), { jsonCandidate: typedLocalCarrier.json });
281
- }
282
- },
283
- {
284
- name: "preview",
285
- description: "Dry-run: print suggested replacements without writing files",
286
- route: [
287
- {
288
- kind: "optionalPositional",
289
- argumentTemplate: "[target]",
290
- helpBlurb: "Directory or file (default: nearest package directory from cwd)"
291
- },
292
- {
293
- kind: "synonymousBooleanAliases",
294
- commaJoinedFlags: "--with-classname, --with-class-name",
295
- helpBlurb: "Append className as final cn() argument"
296
- },
297
- {
298
- kind: "stringPlaceholderFlag",
299
- flagPhraseWithPlaceholder: "--cn-import <spec>",
300
- helpBlurb: "Override module specifier when adding cn import"
301
- },
302
- {
303
- kind: "booleanFlag",
304
- flagPhrase: "--json",
305
- helpBlurb: "Print one JSON object on stdout (suppresses human progress)",
306
- whenUnsetUses: false
307
- }
308
- ],
309
- action: async (positionalPieces, typedLocalCarrier) => {
310
- await this.performApplyOrPreviewSubtree(false, readOptionalPositionalArg(positionalPieces[0]), typedLocalCarrier);
311
- }
312
- },
313
- {
314
- name: "apply",
315
- description: "Apply grouping and cn-in-tv unwrap edits to files",
316
- route: [
317
- {
318
- kind: "optionalPositional",
319
- argumentTemplate: "[target]",
320
- helpBlurb: "Directory or file (default: nearest package directory from cwd)"
321
- },
322
- {
323
- kind: "synonymousBooleanAliases",
324
- commaJoinedFlags: "--with-classname, --with-class-name",
325
- helpBlurb: "Append className as final cn() argument"
326
- },
327
- {
328
- kind: "stringPlaceholderFlag",
329
- flagPhraseWithPlaceholder: "--cn-import <spec>",
330
- helpBlurb: "Override module specifier when adding cn import"
331
- },
332
- {
333
- kind: "booleanFlag",
334
- flagPhrase: "--json",
335
- helpBlurb: "Print one JSON object on stdout (suppresses human progress)",
336
- whenUnsetUses: false
337
- }
338
- ],
339
- action: async (positionalPieces, typedLocalCarrier) => {
340
- await this.performApplyOrPreviewSubtree(true, readOptionalPositionalArg(positionalPieces[0]), typedLocalCarrier);
341
- }
342
- },
343
- {
344
- name: "group",
345
- description: "Try grouping on a pasted class string (stdout: cn(...) or tv array with --tv)",
346
- route: [
347
- {
348
- kind: "greedyPositional",
349
- argumentTemplate: "[tokens...]",
350
- helpBlurb: "Class tokens (quote a single string if it contains spaces)"
351
- },
352
- {
353
- kind: "booleanFlag",
354
- flagPhrase: "--tv",
355
- helpBlurb: "Emit tv()-style array instead of cn() call",
356
- whenUnsetUses: false
357
- },
358
- {
359
- kind: "synonymousBooleanAliases",
360
- commaJoinedFlags: "--with-classname, --with-class-name",
361
- helpBlurb: "Append className as final cn() argument"
362
- },
363
- {
364
- kind: "booleanFlag",
365
- flagPhrase: "--json",
366
- helpBlurb: "Print one JSON object on stdout instead of plain lines",
367
- whenUnsetUses: false
368
- }
369
- ],
370
- action: async (positionalPieces, typedLocalCarrier) => {
371
- const rawTokenSeries = positionalPieces[0];
372
- const classTokenSeries = Array.isArray(rawTokenSeries) ? rawTokenSeries.filter((segment) => typeof segment === "string") : [];
373
- await this.performGroupSubtree(classTokenSeries, typedLocalCarrier);
374
- }
375
- }
376
- ]
377
- };
378
- }
379
- async performAnalyzeSubtree(targetSlice, optionCarrier) {
380
- const prelude = await this.prepareWorkspace.execute({
381
- currentWorkingDirectory: this.runtime.cwd(),
382
- rawTarget: targetSlice
383
- });
384
- if (!this.cliExecutor.consumeCliAppError(prelude)) return;
385
- const { resolvedTarget } = prelude.value;
386
- const parsed = this.schemaValidation.parseWithSchema(arrangeAnalyzeDirectoryRequestSchema, { analyzeRootPath: resolvedTarget });
387
- if (!this.cliExecutor.consumeCliAppError(parsed)) return;
388
- const outcome = this.analyzeDirectory.execute(parsed.value);
389
- if (!this.cliExecutor.consumeCliAppError(outcome)) return;
390
- if (optionCarrier.jsonCandidate) this.logger.out(this.formatArrangeAnalyzeJsonOutput(resolvedTarget, outcome.value));
391
- else this.presentAnalyzeReport.present(resolvedTarget, outcome.value);
392
- }
393
- async performApplyOrPreviewSubtree(writeCandidate, targetSlice, typedLocalCarrier) {
394
- const prelude = await this.prepareWorkspace.execute({
395
- currentWorkingDirectory: this.runtime.cwd(),
396
- rawTarget: targetSlice
397
- });
398
- if (!this.cliExecutor.consumeCliAppError(prelude)) return;
399
- const { resolvedTarget, rootDir, config } = prelude.value;
400
- const parsed = this.schemaValidation.parseWithSchema(arrangeSyncRunRequestSchema, {
401
- rootDir,
402
- targetPath: resolvedTarget,
403
- write: writeCandidate,
404
- withClassName: typedLocalCarrier.withClassName,
405
- cnImport: typedLocalCarrier.cnImport,
406
- config: config.arrange ?? {}
407
- });
408
- if (!this.cliExecutor.consumeCliAppError(parsed)) return;
409
- const outcome = await this.runArrangeSync.execute(parsed.value);
410
- if (!this.cliExecutor.consumeCliAppError(outcome)) return;
411
- if (!writeCandidate) for (const plan of outcome.value.previewPlans) this.presentGroupFilePreview.printGroupFilePreviewFromWork(plan);
412
- if (typedLocalCarrier.json) {
413
- this.logger.out(this.formatArrangeSyncJsonOutput(outcome.value, writeCandidate));
414
- this.runtime.setExitCode(this.exitCodeForArrangeSyncResult(outcome.value));
415
- } else {
416
- this.presentArrangeSyncResult.present(outcome.value, writeCandidate);
417
- this.runtime.setExitCode(this.exitCodeForArrangeSyncResult(outcome.value));
418
- }
419
- }
420
- async performGroupSubtree(classTokenSeries, typedLocalCarrier) {
421
- const parsed = this.schemaValidation.parseWithSchema(arrangeSuggestGroupsRequestSchema, {
422
- inlineClasses: classTokenSeries.join(" ").trim(),
423
- emitTvStyleArray: !!typedLocalCarrier.tv,
424
- trailingClassName: !!typedLocalCarrier.withClassName
425
- });
426
- if (!this.cliExecutor.consumeCliAppError(parsed)) return;
427
- const output = this.suggestCnGroups.execute(parsed.value);
428
- if (typedLocalCarrier.json) this.logger.out(this.formatArrangeGroupJsonOutput(output));
429
- else {
430
- this.logger.out(output.primaryLine);
431
- this.logger.out(output.bucketsCommentLine);
432
- }
433
- }
434
- formatArrangeAnalyzeJsonOutput(analyzeRootPath, report) {
435
- return JSON.stringify({
436
- schemaVersion: 1,
437
- analyzeRootPath,
438
- report
439
- });
440
- }
441
- formatArrangeSyncJsonOutput(result, write) {
442
- const { previewPlans: _plans, ...serializableResult } = result;
443
- return JSON.stringify({
444
- schemaVersion: 1,
445
- ok: result.hookError === null,
446
- write,
447
- result: serializableResult
448
- });
449
- }
450
- formatArrangeGroupJsonOutput(output) {
451
- return JSON.stringify({
452
- schemaVersion: 1,
453
- primaryLine: output.primaryLine,
454
- bucketsCommentLine: output.bucketsCommentLine
455
- });
456
- }
457
- exitCodeForArrangeSyncResult(result) {
458
- return result.hookError !== null ? 1 : 0;
459
- }
460
- static {
461
- _initClass();
462
- }
463
- });
464
- //#endregion
465
- export { _ArrangeCommand as ArrangeCommand };