@codefast/cli 0.3.14 → 0.3.15

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 (205) hide show
  1. package/README.md +8 -3
  2. package/dist/bootstrap/cli-application.module.mjs +18 -0
  3. package/dist/bootstrap/composition-root.mjs +14 -0
  4. package/dist/bootstrap/register-cli-command-trees.mjs +7 -0
  5. package/dist/{lib → domains}/arrange/application/use-cases/analyze-directory.use-case.mjs +12 -12
  6. package/dist/{lib → domains}/arrange/application/use-cases/prepare-arrange-workspace.use-case.mjs +19 -18
  7. package/dist/{lib → domains}/arrange/application/use-cases/run-arrange-sync.use-case.mjs +18 -18
  8. package/dist/{lib → domains}/arrange/application/use-cases/suggest-cn-groups.use-case.mjs +5 -5
  9. package/dist/domains/arrange/arrange.module.mjs +38 -0
  10. package/dist/domains/arrange/composition/tokens.mjs +17 -0
  11. package/dist/{lib/arrange/domain/arrange-analyze.service.mjs → domains/arrange/domain/arrange-analyze.domain-service.mjs} +1 -1
  12. package/dist/{lib/arrange/domain/arrange-grouping.service.mjs → domains/arrange/domain/arrange-grouping.domain-service.mjs} +2 -2
  13. package/dist/{lib → domains}/arrange/domain/ast/ast-helpers.helper.mjs +2 -2
  14. package/dist/{lib → domains}/arrange/domain/ast/ast-node.model.mjs +1 -1
  15. package/dist/{lib → domains}/arrange/domain/ast/collectors-cn.collector.mjs +1 -1
  16. package/dist/{lib → domains}/arrange/domain/ast/collectors-jsx.collector.mjs +1 -1
  17. package/dist/{lib → domains}/arrange/domain/ast/collectors-tv.collector.mjs +1 -1
  18. package/dist/{lib → domains}/arrange/domain/ast/targets.model.mjs +2 -2
  19. package/dist/{lib → domains}/arrange/domain/constants.domain.mjs +1 -1
  20. package/dist/{lib → domains}/arrange/domain/grouping.domain.mjs +1 -1
  21. package/dist/{lib → domains}/arrange/domain/imports.domain.mjs +1 -1
  22. package/dist/{lib → domains}/arrange/domain/source-text-formatters.formatter.mjs +2 -2
  23. package/dist/{lib/arrange/domain/tailwind-grouping.service.mjs → domains/arrange/domain/tailwind-grouping.domain-service.mjs} +5 -5
  24. package/dist/{lib → domains}/arrange/domain/tailwind-token-classifier.domain-service.mjs +1 -1
  25. package/dist/{lib → domains}/arrange/domain/tailwind-token.value-object.mjs +1 -1
  26. package/dist/{lib/arrange/application/services/arrange-file-processor.service.mjs → domains/arrange/infrastructure/adapters/arrange-file-processor.adapter.mjs} +8 -8
  27. package/dist/domains/arrange/infrastructure/adapters/arrange-target-path-resolver.adapter.mjs +247 -0
  28. package/dist/{lib/arrange/application/services/arrange-target-scanner.service.mjs → domains/arrange/infrastructure/adapters/arrange-target-scanner.adapter.mjs} +8 -8
  29. package/dist/{lib/arrange/adapters/secondary → domains/arrange/infrastructure/adapters}/domain-source-parser.adapter.mjs +10 -8
  30. package/dist/{lib/arrange/adapters/secondary → domains/arrange/infrastructure/adapters}/file-walker.adapter.mjs +8 -9
  31. package/dist/domains/arrange/infrastructure/typescript-ast-translator.mjs +580 -0
  32. package/dist/{lib/arrange/adapters/primary → domains/arrange/presentation}/cli/arrange.command.mjs +195 -54
  33. package/dist/{lib/arrange/presentation → domains/arrange/presentation/presenters}/arrange-analyze.presenter.mjs +26 -33
  34. package/dist/{lib/arrange/presentation → domains/arrange/presentation/presenters}/arrange-cli.schema.mjs +1 -1
  35. package/dist/{lib/tag/presentation/present-tag-sync-result.presenter.mjs → domains/arrange/presentation/presenters/arrange-sync.presenter.mjs} +12 -9
  36. package/dist/{lib/arrange/presentation → domains/arrange/presentation/presenters}/group-file-preview.presenter.mjs +46 -46
  37. package/dist/domains/config/composition/tokens.mjs +7 -0
  38. package/dist/{lib/config/infrastructure/config-schema.adapter.mjs → domains/config/domain/codefast-config.schema.mjs} +6 -6
  39. package/dist/{lib/config/infrastructure → domains/config/infrastructure/adapters}/config-loader.adapter.mjs +76 -77
  40. package/dist/{lib/config/infrastructure → domains/config/infrastructure/adapters}/config-warning-reporter.adapter.mjs +6 -6
  41. package/dist/domains/config/infrastructure/adapters/zod-codefast-config-schema.adapter.mjs +236 -0
  42. package/dist/domains/mirror/application/mirror-sync-cli-result.mjs +15 -0
  43. package/dist/{lib → domains}/mirror/application/use-cases/prepare-mirror-sync.use-case.mjs +14 -15
  44. package/dist/{lib → domains}/mirror/application/use-cases/run-mirror-sync.use-case.mjs +69 -54
  45. package/dist/{lib/mirror/contracts → domains/mirror/composition}/tokens.mjs +4 -3
  46. package/dist/{lib → domains}/mirror/domain/constants.domain.mjs +1 -1
  47. package/dist/{lib → domains}/mirror/domain/errors.domain.mjs +1 -1
  48. package/dist/{lib/mirror/application/services/generate-mirror-exports.service.mjs → domains/mirror/domain/generate-mirror-exports.domain-service.mjs} +2 -2
  49. package/dist/{lib → domains}/mirror/domain/package-display-name.policy.mjs +1 -1
  50. package/dist/{lib → domains}/mirror/domain/path-normalizer.value-object.mjs +1 -1
  51. package/dist/{lib/mirror/adapters/secondary → domains/mirror/infrastructure/adapters}/file-system-service.adapter.mjs +8 -8
  52. package/dist/domains/mirror/infrastructure/adapters/mirror-package-path-resolver.adapter.mjs +252 -0
  53. package/dist/{lib/mirror/adapters/secondary → domains/mirror/infrastructure/adapters}/mirror-sync-reporter.adapter.mjs +94 -15
  54. package/dist/{lib/mirror/adapters/secondary → domains/mirror/infrastructure/adapters}/package-repository.adapter.mjs +4 -4
  55. package/dist/{lib/mirror/adapters/secondary → domains/mirror/infrastructure/adapters}/sync-workspace-package.adapter.mjs +23 -46
  56. package/dist/{lib/mirror/infrastructure → domains/mirror/infrastructure/guards}/dirent-list.guard.mjs +1 -1
  57. package/dist/{lib → domains}/mirror/infrastructure/package-json-exports.repository.mjs +27 -27
  58. package/dist/domains/mirror/mirror.module.mjs +26 -0
  59. package/dist/{lib/mirror/adapters/primary → domains/mirror/presentation}/cli/mirror.command.mjs +83 -27
  60. package/dist/{lib/mirror/presentation → domains/mirror/presentation/presenters}/mirror-cli.schema.mjs +1 -4
  61. package/dist/domains/mirror/presentation/presenters/present-mirror-sync-progress.presenter.mjs +265 -0
  62. package/dist/domains/tag/application/ports/outbound/tag-eligible-workspace-paths.port.mjs +1 -0
  63. package/dist/domains/tag/application/ports/outbound/tag-since-writer.port.mjs +1 -0
  64. package/dist/domains/tag/application/ports/outbound/tag-target-path-resolver.port.mjs +1 -0
  65. package/dist/domains/tag/application/ports/outbound/tag-target-runner.port.mjs +1 -0
  66. package/dist/domains/tag/application/ports/outbound/tag-version-resolver.port.mjs +1 -0
  67. package/dist/domains/tag/application/ports/presenting/present-tag-sync-progress.presenter.mjs +1 -0
  68. package/dist/domains/tag/application/ports/presenting/present-tag-sync-result.presenter.mjs +1 -0
  69. package/dist/domains/tag/application/requests/tag-sync-execution-input.mjs +1 -0
  70. package/dist/domains/tag/application/requests/tag-sync.request.mjs +1 -0
  71. package/dist/{lib → domains}/tag/application/tag-sync-cli-result.mjs +3 -3
  72. package/dist/{lib → domains}/tag/application/use-cases/prepare-tag-sync.use-case.mjs +20 -24
  73. package/dist/{lib → domains}/tag/application/use-cases/run-tag-sync.use-case.mjs +123 -129
  74. package/dist/domains/tag/composition/tokens.mjs +13 -0
  75. package/dist/domains/tag/contracts/models.mjs +1 -0
  76. package/dist/domains/tag/domain/types.domain.mjs +1 -0
  77. package/dist/{lib/tag/adapters/secondary → domains/tag/infrastructure/adapters}/tag-since-writer.adapter.mjs +105 -105
  78. package/dist/{lib/tag/adapters/secondary/typescript-tree-walk.adapter.mjs → domains/tag/infrastructure/adapters/tag-target-path-resolver.adapter.mjs} +11 -9
  79. package/dist/domains/tag/infrastructure/adapters/tag-target-resolver.adapter.mjs +302 -0
  80. package/dist/domains/tag/infrastructure/adapters/tag-target-runner.adapter.mjs +259 -0
  81. package/dist/{lib/tag/adapters/secondary → domains/tag/infrastructure/adapters}/tag-version-resolver.adapter.mjs +6 -6
  82. package/dist/{lib/tag/adapters/primary → domains/tag/presentation}/cli/tag.command.mjs +67 -27
  83. package/dist/{lib/tag/presentation/tag-sync-progress-listener.presenter.mjs → domains/tag/presentation/presenters/present-tag-sync-progress.presenter.mjs} +14 -9
  84. package/dist/domains/tag/presentation/presenters/present-tag-sync-result.presenter.mjs +290 -0
  85. package/dist/{lib/tag/presentation → domains/tag/presentation/presenters}/tag-cli.schema.mjs +1 -1
  86. package/dist/domains/tag/tag.module.mjs +28 -0
  87. package/dist/program.mjs +3 -2
  88. package/dist/shell/application/cli-runtime.tokens.mjs +18 -0
  89. package/dist/shell/application/coordination/cli-executor.coordination.mjs +1 -0
  90. package/dist/shell/application/coordination/cli-schema-parsing.coordination.mjs +1 -0
  91. package/dist/shell/application/global-cli-options.model.mjs +5 -0
  92. package/dist/shell/application/ports/inbound/load-codefast-config.port.mjs +1 -0
  93. package/dist/shell/application/ports/outbound/cli-fs.port.mjs +1 -0
  94. package/dist/shell/application/ports/outbound/cli-logger.port.mjs +1 -0
  95. package/dist/shell/application/ports/outbound/cli-path.port.mjs +1 -0
  96. package/dist/shell/application/ports/outbound/cli-runtime.port.mjs +1 -0
  97. package/dist/shell/application/ports/outbound/cli-telemetry.port.mjs +1 -0
  98. package/dist/shell/application/ports/outbound/cli-verbose-diagnostics.port.mjs +1 -0
  99. package/dist/shell/application/ports/outbound/format-app-error.port.mjs +1 -0
  100. package/dist/shell/application/ports/outbound/global-cli-options-parse.port.mjs +1 -0
  101. package/dist/shell/application/ports/outbound/repo-root-resolver.port.mjs +1 -0
  102. package/dist/shell/application/ports/outbound/typescript-source-file-walker.port.mjs +1 -0
  103. package/dist/shell/application/ports/outbound/workspace-package-layout.port.mjs +1 -0
  104. package/dist/shell/application/ports/primary/command.port.mjs +1 -0
  105. package/dist/shell/application/services/cli-executor.service.mjs +267 -0
  106. package/dist/shell/application/services/schema-validator.service.mjs +236 -0
  107. package/dist/{lib/core/application → shell/application/use-cases}/load-codefast-config.use-case.mjs +11 -13
  108. package/dist/shell/composition/tokens.mjs +5 -0
  109. package/dist/shell/contracts/cli-command-slots.mjs +11 -0
  110. package/dist/{lib/core → shell}/domain/caught-unknown-message.value-object.mjs +1 -1
  111. package/dist/{lib/core → shell}/domain/cli-exit-codes.domain.mjs +1 -1
  112. package/dist/shell/domain/cli-positional-arg.value-object.mjs +6 -0
  113. package/dist/{lib/core → shell}/domain/errors.domain.mjs +1 -1
  114. package/dist/{lib/core → shell}/domain/result.model.mjs +1 -1
  115. package/dist/{lib/shared/source-code/domain/text-edit.model.mjs → shell/domain/source-text-edit.support.mjs} +2 -2
  116. package/dist/shell/infrastructure/adapters/cli-verbose-diagnostics.adapter.mjs +228 -0
  117. package/dist/{lib/tag/adapters/secondary/tag-target-resolver.adapter.mjs → shell/infrastructure/adapters/format-app-error.adapter.mjs} +16 -13
  118. package/dist/shell/infrastructure/adapters/global-cli-options-parser.adapter.mjs +233 -0
  119. package/dist/{lib/mirror/adapters/secondary/workspace-service.adapter.mjs → shell/infrastructure/adapters/repo-root-resolver.adapter.mjs} +20 -13
  120. package/dist/shell/infrastructure/adapters/typescript-source-file-walker.adapter.mjs +259 -0
  121. package/dist/shell/infrastructure/commander/commander-cli-host.adapter.mjs +69 -0
  122. package/dist/{lib/infrastructure/node-io.adapter.mjs → shell/infrastructure/node/node-cli-fs.adapter.mjs} +11 -47
  123. package/dist/{lib/arrange/adapters/secondary/workspace-resolver.adapter.mjs → shell/infrastructure/node/node-cli-logger.adapter.mjs} +11 -13
  124. package/dist/{lib/core/infrastructure/path.adapter.mjs → shell/infrastructure/node/node-cli-path.adapter.mjs} +1 -1
  125. package/dist/{lib/core/infrastructure/repo-root-resolver.adapter.mjs → shell/infrastructure/node/node-cli-runtime.adapter.mjs} +14 -13
  126. package/dist/shell/infrastructure/telemetry/cli-telemetry.adapter.mjs +280 -0
  127. package/dist/shell/infrastructure/workspace/node-pnpm-workspace-package-layout.adapter.mjs +385 -0
  128. package/dist/shell/shell.module.mjs +43 -0
  129. package/dist/shell/wiring/optional-cli-port-telemetry-activation.mjs +13 -0
  130. package/package.json +9 -7
  131. package/dist/lib/arrange/adapters/primary/cli/arrange.presentation.module.mjs +0 -14
  132. package/dist/lib/arrange/adapters/primary/cli/presentation.tokens.mjs +0 -5
  133. package/dist/lib/arrange/application/services/arrange-target-path-resolver.service.mjs +0 -21
  134. package/dist/lib/arrange/arrange.module.mjs +0 -31
  135. package/dist/lib/arrange/contracts/tokens.mjs +0 -15
  136. package/dist/lib/arrange/infrastructure/typescript-ast-translator.adapter.mjs +0 -355
  137. package/dist/lib/arrange/presentation/arrange-sync.presenter.mjs +0 -33
  138. package/dist/lib/bootstrap/composition-root.mjs +0 -33
  139. package/dist/lib/config/application/services/load-config.service.mjs +0 -17
  140. package/dist/lib/config/contracts/tokens.mjs +0 -6
  141. package/dist/lib/core/application/services/global-cli-options-parser.service.mjs +0 -9
  142. package/dist/lib/core/application/services/schema-validator.service.mjs +0 -17
  143. package/dist/lib/core/contracts/tokens.mjs +0 -10
  144. package/dist/lib/core/core.module.mjs +0 -9
  145. package/dist/lib/core/infrastructure/infrastructure.module.mjs +0 -30
  146. package/dist/lib/core/infrastructure/port-telemetry.decorator.mjs +0 -62
  147. package/dist/lib/core/infrastructure/verbose-diagnostics.policy.mjs +0 -9
  148. package/dist/lib/core/presentation/cli-executor.presenter.mjs +0 -42
  149. package/dist/lib/core/presentation/cli-schema.parser.mjs +0 -7
  150. package/dist/lib/core/presentation/format-app-error.presenter.mjs +0 -17
  151. package/dist/lib/core/presentation/presentation.module.mjs +0 -5
  152. package/dist/lib/infrastructure/workspace/repo-root-resolver.service.mjs +0 -21
  153. package/dist/lib/kernel/contracts/tokens.mjs +0 -5
  154. package/dist/lib/mirror/application/mirror-sync-json.format.mjs +0 -12
  155. package/dist/lib/mirror/application/services/mirror-package-arg-resolver.service.mjs +0 -20
  156. package/dist/lib/mirror/infrastructure/mirror-console-reporter.presenter.mjs +0 -99
  157. package/dist/lib/mirror/infrastructure/package-filter-resolver.service.mjs +0 -25
  158. package/dist/lib/mirror/infrastructure/workspace-packages.service.mjs +0 -158
  159. package/dist/lib/mirror/mirror.module.mjs +0 -25
  160. package/dist/lib/shared/source-code/infrastructure/typescript-source-file-walker.service.mjs +0 -33
  161. package/dist/lib/tag/adapters/primary/cli/presentation.tokens.mjs +0 -6
  162. package/dist/lib/tag/adapters/primary/cli/tag.presentation.module.mjs +0 -13
  163. package/dist/lib/tag/application/services/tag-cli-target-path-resolver.service.mjs +0 -9
  164. package/dist/lib/tag/application/services/tag-target-runner.service.mjs +0 -21
  165. package/dist/lib/tag/application/tag-sync-json.format.mjs +0 -14
  166. package/dist/lib/tag/contracts/tokens.mjs +0 -10
  167. package/dist/lib/tag/infrastructure/tag-target-candidates.adapter.mjs +0 -170
  168. package/dist/lib/tag/presentation/colors.presenter.mjs +0 -12
  169. package/dist/lib/tag/presentation/tag-sync.presenter.mjs +0 -61
  170. package/dist/lib/tag/tag.module.mjs +0 -23
  171. /package/dist/{lib/arrange/application/ports/domain-source-parser.port.mjs → domains/arrange/application/ports/inbound/analyze-directory.port.mjs} +0 -0
  172. /package/dist/{lib/arrange/application/ports/file-walker.port.mjs → domains/arrange/application/ports/inbound/prepare-arrange-workspace.port.mjs} +0 -0
  173. /package/dist/{lib/arrange/application/ports/group-file-preview.port.mjs → domains/arrange/application/ports/inbound/run-arrange-sync.port.mjs} +0 -0
  174. /package/dist/{lib/arrange/application/ports/workspace-resolver.port.mjs → domains/arrange/application/ports/inbound/suggest-cn-groups.port.mjs} +0 -0
  175. /package/dist/{lib/arrange/application/requests/analyze-directory.request.mjs → domains/arrange/application/ports/outbound/arrange-file-processor.port.mjs} +0 -0
  176. /package/dist/{lib/arrange/application/requests/arrange-sync.request.mjs → domains/arrange/application/ports/outbound/arrange-target-path-resolver.port.mjs} +0 -0
  177. /package/dist/{lib/arrange/application/requests/suggest-groups.request.mjs → domains/arrange/application/ports/outbound/arrange-target-scanner.port.mjs} +0 -0
  178. /package/dist/{lib/arrange/contracts/analyze-report-presenter.contract.mjs → domains/arrange/application/ports/outbound/domain-source-parser.port.mjs} +0 -0
  179. /package/dist/{lib/arrange/contracts/models.mjs → domains/arrange/application/ports/outbound/file-walker.port.mjs} +0 -0
  180. /package/dist/{lib/arrange/contracts/services.contract.mjs → domains/arrange/application/ports/presenting/present-analyze-report.presenter.mjs} +0 -0
  181. /package/dist/{lib/arrange/domain/types.domain.mjs → domains/arrange/application/ports/presenting/present-arrange-sync-result.presenter.mjs} +0 -0
  182. /package/dist/{lib/config/application/ports/config-loader.port.mjs → domains/arrange/application/ports/presenting/present-group-file-preview.presenter.mjs} +0 -0
  183. /package/dist/{lib/config/application/ports/config-warning-reporter.port.mjs → domains/arrange/application/requests/analyze-directory.request.mjs} +0 -0
  184. /package/dist/{lib/config/domain/schema.domain.mjs → domains/arrange/application/requests/arrange-sync.request.mjs} +0 -0
  185. /package/dist/{lib/core/application/ports/cli-io.port.mjs → domains/arrange/application/requests/suggest-groups.request.mjs} +0 -0
  186. /package/dist/{lib/mirror → domains/arrange}/contracts/models.mjs +0 -0
  187. /package/dist/{lib/mirror → domains/arrange}/domain/types.domain.mjs +0 -0
  188. /package/dist/{lib/core/application/ports/path.port.mjs → domains/config/application/ports/outbound/codefast-config-schema.port.mjs} +0 -0
  189. /package/dist/{lib/core/application/ports/repo-root-resolver.port.mjs → domains/config/application/ports/outbound/config-loader.port.mjs} +0 -0
  190. /package/dist/{lib/core/application/ports/runtime.port.mjs → domains/config/application/ports/outbound/config-warning-reporter.port.mjs} +0 -0
  191. /package/dist/{lib/kernel/contracts/cli-command.contract.mjs → domains/config/domain/schema.domain.mjs} +0 -0
  192. /package/dist/{lib/mirror/application/ports/file-system-service.port.mjs → domains/mirror/application/ports/inbound/prepare-mirror-sync.port.mjs} +0 -0
  193. /package/dist/{lib/mirror/application/ports/mirror-sync-reporter.port.mjs → domains/mirror/application/ports/inbound/run-mirror-sync.port.mjs} +0 -0
  194. /package/dist/{lib/mirror/application/ports/package-repository.port.mjs → domains/mirror/application/ports/outbound/file-system-service.port.mjs} +0 -0
  195. /package/dist/{lib/mirror/application/ports/sync-workspace-package.port.mjs → domains/mirror/application/ports/outbound/mirror-package-path.port.mjs} +0 -0
  196. /package/dist/{lib/mirror/application/ports/workspace-service.port.mjs → domains/mirror/application/ports/outbound/mirror-sync-reporter.port.mjs} +0 -0
  197. /package/dist/{lib/mirror/application/requests/mirror-sync.request.mjs → domains/mirror/application/ports/outbound/package-repository.port.mjs} +0 -0
  198. /package/dist/{lib/tag/application/ports/tag-since-writer.port.mjs → domains/mirror/application/ports/outbound/sync-workspace-package.port.mjs} +0 -0
  199. /package/dist/{lib/tag/application/ports/tag-version-resolver.port.mjs → domains/mirror/application/ports/presenting/present-mirror-sync-progress.presenter.mjs} +0 -0
  200. /package/dist/{lib/tag/application/ports/target-resolver.port.mjs → domains/mirror/application/requests/mirror-sync-execution-input.mjs} +0 -0
  201. /package/dist/{lib/tag/application/ports/typescript-tree-walk.port.mjs → domains/mirror/application/requests/mirror-sync.request.mjs} +0 -0
  202. /package/dist/{lib/tag → domains/mirror}/contracts/models.mjs +0 -0
  203. /package/dist/{lib/tag → domains/mirror}/domain/types.domain.mjs +0 -0
  204. /package/dist/{lib/tag/application/requests/tag-sync.request.mjs → domains/tag/application/ports/inbound/prepare-tag-sync.port.mjs} +0 -0
  205. /package/dist/{lib/tag/contracts/tag-sync-result-presenter.contract.mjs → domains/tag/application/ports/inbound/run-tag-sync.port.mjs} +0 -0
@@ -0,0 +1,580 @@
1
+ import { DomainBinaryOperator, DomainSyntaxKind } from "../domain/ast/ast-node.model.mjs";
2
+ import { injectable } from "@codefast/di";
3
+ import ts from "typescript";
4
+ //#region src/domains/arrange/infrastructure/typescript-ast-translator.ts
5
+ /**
6
+ * Anti-corruption layer: maps TypeScript compiler AST to arrange domain AST.
7
+ * This module is the only place that imports `typescript` for arrange AST translation.
8
+ */ function toPrimitive(input, hint) {
9
+ if (typeof input !== "object" || input === null) return input;
10
+ var prim = input[Symbol.toPrimitive];
11
+ if (prim !== void 0) {
12
+ var res = prim.call(input, hint || "default");
13
+ if (typeof res !== "object") return res;
14
+ throw new TypeError("@@toPrimitive must return a primitive value.");
15
+ }
16
+ return (hint === "string" ? String : Number)(input);
17
+ }
18
+ function toPropertyKey(arg) {
19
+ var key = toPrimitive(arg, "string");
20
+ return typeof key === "symbol" ? key : String(key);
21
+ }
22
+ function checkInRHS(value) {
23
+ if (Object(value) !== value) throw TypeError("right-hand side of 'in' should be an object, got " + (value !== null ? typeof value : "null"));
24
+ return value;
25
+ }
26
+ function setFunctionName(fn, name, prefix) {
27
+ if (typeof name === "symbol") {
28
+ name = name.description;
29
+ name = name ? "[" + name + "]" : "";
30
+ }
31
+ try {
32
+ Object.defineProperty(fn, "name", {
33
+ configurable: true,
34
+ value: prefix ? prefix + " " + name : name
35
+ });
36
+ } catch (_) {}
37
+ return fn;
38
+ }
39
+ function _apply_decs_2311(targetClass, classDecs, memberDecs, classDecsHaveThis, instanceBrand, parentClass) {
40
+ var symbolMetadata = Symbol.metadata || Symbol.for("Symbol.metadata");
41
+ var defineProperty = Object.defineProperty;
42
+ var create = Object.create;
43
+ var metadata;
44
+ var existingNonFields = [create(null), create(null)];
45
+ var hasClassDecs = classDecs.length;
46
+ var _;
47
+ function createRunInitializers(initializers, useStaticThis, hasValue) {
48
+ return function(thisArg, value) {
49
+ if (useStaticThis) {
50
+ value = thisArg;
51
+ thisArg = targetClass;
52
+ }
53
+ for (var i = 0; i < initializers.length; i++) value = initializers[i].apply(thisArg, hasValue ? [value] : []);
54
+ return hasValue ? value : thisArg;
55
+ };
56
+ }
57
+ function assertCallable(fn, hint1, hint2, throwUndefined) {
58
+ if (typeof fn !== "function") {
59
+ if (throwUndefined || fn !== void 0) throw new TypeError(hint1 + " must " + (hint2 || "be") + " a function" + (throwUndefined ? "" : " or undefined"));
60
+ }
61
+ return fn;
62
+ }
63
+ function applyDec(Class, decInfo, decoratorsHaveThis, name, kind, initializers, ret, isStatic, isPrivate, isField, hasPrivateBrand) {
64
+ function assertInstanceIfPrivate(target) {
65
+ if (!hasPrivateBrand(target)) throw new TypeError("Attempted to access private element on non-instance");
66
+ }
67
+ var decs = [].concat(decInfo[0]);
68
+ var decVal = decInfo[3];
69
+ var isClass = !ret;
70
+ var isAccessor = kind === 1;
71
+ var isGetter = kind === 3;
72
+ var isSetter = kind === 4;
73
+ var isMethod = kind === 2;
74
+ function bindPropCall(name, useStaticThis, before) {
75
+ return function(_this, value) {
76
+ if (useStaticThis) {
77
+ value = _this;
78
+ _this = Class;
79
+ }
80
+ if (before) before(_this);
81
+ return desc[name].call(_this, value);
82
+ };
83
+ }
84
+ var desc1 = {};
85
+ var init = [];
86
+ var key = isGetter ? "get" : isSetter || isAccessor ? "set" : "value";
87
+ if (!isClass) {
88
+ if (isPrivate) {
89
+ if (isField || isAccessor) desc1 = {
90
+ get: setFunctionName(function() {
91
+ return decVal(this);
92
+ }, name, "get"),
93
+ set: function(value) {
94
+ decInfo[4](this, value);
95
+ }
96
+ };
97
+ else desc1[key] = decVal;
98
+ if (!isField) setFunctionName(desc1[key], name, isMethod ? "" : key);
99
+ } else if (!isField) desc1 = Object.getOwnPropertyDescriptor(Class, name);
100
+ if (!isField && !isPrivate) {
101
+ _ = existingNonFields[+isStatic][name];
102
+ if (_ && (_ ^ kind) !== 7) throw new Error("Decorating two elements with the same name (" + desc1[key].name + ") is not supported yet");
103
+ existingNonFields[+isStatic][name] = kind < 3 ? 1 : kind;
104
+ }
105
+ }
106
+ var newValue = Class;
107
+ for (var i = decs.length - 1; i >= 0; i -= decoratorsHaveThis ? 2 : 1) {
108
+ var dec = assertCallable(decs[i], "A decorator", "be", true);
109
+ var decThis = decoratorsHaveThis ? decs[i - 1] : void 0;
110
+ var decoratorFinishedRef = {};
111
+ var ctx = {
112
+ kind: [
113
+ "field",
114
+ "accessor",
115
+ "method",
116
+ "getter",
117
+ "setter",
118
+ "class"
119
+ ][kind],
120
+ name,
121
+ metadata,
122
+ addInitializer: (function(decoratorFinishedRef, initializer) {
123
+ if (decoratorFinishedRef.v) throw new TypeError("attempted to call addInitializer after decoration was finished");
124
+ assertCallable(initializer, "An initializer", "be", true);
125
+ initializers.push(initializer);
126
+ }).bind(null, decoratorFinishedRef)
127
+ };
128
+ if (isClass) {
129
+ _ = dec.call(decThis, newValue, ctx);
130
+ decoratorFinishedRef.v = 1;
131
+ if (assertCallable(_, "class decorators", "return")) newValue = _;
132
+ continue;
133
+ }
134
+ ctx.static = isStatic;
135
+ ctx.private = isPrivate;
136
+ _ = ctx.access = { has: isPrivate ? hasPrivateBrand.bind() : function(target) {
137
+ return name in target;
138
+ } };
139
+ if (!isSetter) _.get = isPrivate ? isMethod ? function(_this) {
140
+ assertInstanceIfPrivate(_this);
141
+ return desc1.value;
142
+ } : bindPropCall("get", 0, assertInstanceIfPrivate) : function(target) {
143
+ return target[name];
144
+ };
145
+ if (!isMethod && !isGetter) _.set = isPrivate ? bindPropCall("set", 0, assertInstanceIfPrivate) : function(target, value) {
146
+ target[name] = value;
147
+ };
148
+ newValue = dec.call(decThis, isAccessor ? {
149
+ get: desc1.get,
150
+ set: desc1.set
151
+ } : desc1[key], ctx);
152
+ decoratorFinishedRef.v = 1;
153
+ if (isAccessor) {
154
+ if (typeof newValue === "object" && newValue) {
155
+ if (_ = assertCallable(newValue.get, "accessor.get")) desc1.get = _;
156
+ if (_ = assertCallable(newValue.set, "accessor.set")) desc1.set = _;
157
+ if (_ = assertCallable(newValue.init, "accessor.init")) init.unshift(_);
158
+ } else if (newValue !== void 0) throw new TypeError("accessor decorators must return an object with get, set, or init properties or undefined");
159
+ } else if (assertCallable(newValue, (isField ? "field" : "method") + " decorators", "return")) if (isField) init.unshift(newValue);
160
+ else desc1[key] = newValue;
161
+ }
162
+ if (kind < 2) ret.push(createRunInitializers(init, isStatic, 1), createRunInitializers(initializers, isStatic, 0));
163
+ if (!isField && !isClass) if (isPrivate) if (isAccessor) ret.splice(-1, 0, bindPropCall("get", isStatic), bindPropCall("set", isStatic));
164
+ else ret.push(isMethod ? desc1[key] : assertCallable.call.bind(desc1[key]));
165
+ else defineProperty(Class, name, desc1);
166
+ return newValue;
167
+ }
168
+ function applyMemberDecs() {
169
+ var ret = [];
170
+ var protoInitializers;
171
+ var staticInitializers;
172
+ var pushInitializers = function(initializers) {
173
+ if (initializers) ret.push(createRunInitializers(initializers));
174
+ };
175
+ var applyMemberDecsOfKind = function(isStatic, isField) {
176
+ for (var i = 0; i < memberDecs.length; i++) {
177
+ var decInfo = memberDecs[i];
178
+ var kind = decInfo[1];
179
+ var kindOnly = kind & 7;
180
+ if ((kind & 8) == isStatic && !kindOnly == isField) {
181
+ var name = decInfo[2];
182
+ var isPrivate = !!decInfo[3];
183
+ var decoratorsHaveThis = kind & 16;
184
+ 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(_) {
185
+ return checkInRHS(_) === targetClass;
186
+ } : instanceBrand);
187
+ }
188
+ }
189
+ };
190
+ applyMemberDecsOfKind(8, 0);
191
+ applyMemberDecsOfKind(0, 0);
192
+ applyMemberDecsOfKind(8, 1);
193
+ applyMemberDecsOfKind(0, 1);
194
+ pushInitializers(protoInitializers);
195
+ pushInitializers(staticInitializers);
196
+ return ret;
197
+ }
198
+ function defineMetadata(Class) {
199
+ return defineProperty(Class, symbolMetadata, {
200
+ configurable: true,
201
+ enumerable: true,
202
+ value: metadata
203
+ });
204
+ }
205
+ if (parentClass !== void 0) metadata = parentClass[symbolMetadata];
206
+ metadata = create(metadata == null ? null : metadata);
207
+ _ = applyMemberDecs();
208
+ if (!hasClassDecs) defineMetadata(targetClass);
209
+ return {
210
+ e: _,
211
+ get c() {
212
+ var initializers = [];
213
+ return hasClassDecs && [defineMetadata(targetClass = applyDec(targetClass, [classDecs], classDecsHaveThis, targetClass.name, 5, initializers)), createRunInitializers(initializers, 1)];
214
+ }
215
+ };
216
+ }
217
+ let _dec, _initClass;
218
+ _dec = injectable();
219
+ let _TypeScriptAstTranslator;
220
+ (class {
221
+ static {
222
+ ({c: [_TypeScriptAstTranslator, _initClass]} = _apply_decs_2311(this, [_dec], []));
223
+ }
224
+ translateSourceFile(filePath, sourceText) {
225
+ return this.parseDomainSourceFile(filePath, sourceText);
226
+ }
227
+ translateUnknown(n, parent, sf) {
228
+ const pos = n.getStart(sf);
229
+ const end = n.getEnd();
230
+ const self = {
231
+ kind: DomainSyntaxKind.Unknown,
232
+ pos,
233
+ end,
234
+ parent,
235
+ children: []
236
+ };
237
+ const childList = [];
238
+ ts.forEachChild(n, (child) => {
239
+ childList.push(this.translateNode(child, self, sf));
240
+ });
241
+ return {
242
+ ...self,
243
+ children: childList
244
+ };
245
+ }
246
+ mapBinaryOperator(operatorToken) {
247
+ if (operatorToken.kind === ts.SyntaxKind.PlusToken) return DomainBinaryOperator.Plus;
248
+ return DomainBinaryOperator.Other;
249
+ }
250
+ translateNode(n, parent, sf) {
251
+ const pos = n.getStart(sf);
252
+ const end = n.getEnd();
253
+ switch (n.kind) {
254
+ case ts.SyntaxKind.Identifier: {
255
+ const id = n;
256
+ return {
257
+ kind: DomainSyntaxKind.Identifier,
258
+ pos,
259
+ end,
260
+ parent,
261
+ text: id.text
262
+ };
263
+ }
264
+ case ts.SyntaxKind.StringLiteral: {
265
+ const lit = n;
266
+ return {
267
+ kind: DomainSyntaxKind.StringLiteral,
268
+ pos,
269
+ end,
270
+ parent,
271
+ text: lit.text
272
+ };
273
+ }
274
+ case ts.SyntaxKind.NoSubstitutionTemplateLiteral: {
275
+ const lit = n;
276
+ return {
277
+ kind: DomainSyntaxKind.NoSubstitutionTemplateLiteral,
278
+ pos,
279
+ end,
280
+ parent,
281
+ text: lit.text
282
+ };
283
+ }
284
+ case ts.SyntaxKind.ImportDeclaration: {
285
+ const decl = n;
286
+ const self = {
287
+ kind: DomainSyntaxKind.ImportDeclaration,
288
+ pos,
289
+ end,
290
+ parent,
291
+ importClause: void 0,
292
+ moduleSpecifier: void 0
293
+ };
294
+ if (decl.importClause) self.importClause = this.translateNode(decl.importClause, self, sf);
295
+ self.moduleSpecifier = this.translateNode(decl.moduleSpecifier, self, sf);
296
+ return self;
297
+ }
298
+ case ts.SyntaxKind.ImportClause: {
299
+ const clause = n;
300
+ const self = {
301
+ kind: DomainSyntaxKind.ImportClause,
302
+ pos,
303
+ end,
304
+ parent,
305
+ isTypeOnly: clause.isTypeOnly,
306
+ name: void 0,
307
+ namedBindings: void 0
308
+ };
309
+ if (clause.name) self.name = this.translateNode(clause.name, self, sf);
310
+ if (clause.namedBindings) self.namedBindings = this.translateNode(clause.namedBindings, self, sf);
311
+ return self;
312
+ }
313
+ case ts.SyntaxKind.NamedImports: {
314
+ const named = n;
315
+ const self = {
316
+ kind: DomainSyntaxKind.NamedImports,
317
+ pos,
318
+ end,
319
+ parent,
320
+ elements: []
321
+ };
322
+ const elements = [];
323
+ for (const element of named.elements) elements.push(this.translateNode(element, self, sf));
324
+ return {
325
+ ...self,
326
+ elements
327
+ };
328
+ }
329
+ case ts.SyntaxKind.NamespaceImport: {
330
+ const ns = n;
331
+ const self = {
332
+ kind: DomainSyntaxKind.NamespaceImport,
333
+ pos,
334
+ end,
335
+ parent,
336
+ name: void 0
337
+ };
338
+ self.name = this.translateNode(ns.name, self, sf);
339
+ return self;
340
+ }
341
+ case ts.SyntaxKind.ImportSpecifier: {
342
+ const spec = n;
343
+ const self = {
344
+ kind: DomainSyntaxKind.ImportSpecifier,
345
+ pos,
346
+ end,
347
+ parent,
348
+ propertyName: void 0,
349
+ name: void 0
350
+ };
351
+ if (spec.propertyName) self.propertyName = this.translateNode(spec.propertyName, self, sf);
352
+ self.name = this.translateNode(spec.name, self, sf);
353
+ return self;
354
+ }
355
+ case ts.SyntaxKind.CallExpression: {
356
+ const call = n;
357
+ const self = {
358
+ kind: DomainSyntaxKind.CallExpression,
359
+ pos,
360
+ end,
361
+ parent,
362
+ expression: void 0,
363
+ arguments: []
364
+ };
365
+ self.expression = this.translateNode(call.expression, self, sf);
366
+ self.arguments = call.arguments.map((arg) => this.translateNode(arg, self, sf));
367
+ return self;
368
+ }
369
+ case ts.SyntaxKind.PropertyAccessExpression: {
370
+ const pa = n;
371
+ const self = {
372
+ kind: DomainSyntaxKind.PropertyAccessExpression,
373
+ pos,
374
+ end,
375
+ parent,
376
+ expression: void 0,
377
+ name: void 0
378
+ };
379
+ self.expression = this.translateNode(pa.expression, self, sf);
380
+ self.name = this.translateNode(pa.name, self, sf);
381
+ return self;
382
+ }
383
+ case ts.SyntaxKind.ObjectLiteralExpression: {
384
+ const obj = n;
385
+ const self = {
386
+ kind: DomainSyntaxKind.ObjectLiteralExpression,
387
+ pos,
388
+ end,
389
+ parent,
390
+ properties: []
391
+ };
392
+ const properties = [];
393
+ for (const prop of obj.properties) properties.push(this.translateNode(prop, self, sf));
394
+ return {
395
+ ...self,
396
+ properties
397
+ };
398
+ }
399
+ case ts.SyntaxKind.PropertyAssignment: {
400
+ const prop = n;
401
+ const self = {
402
+ kind: DomainSyntaxKind.PropertyAssignment,
403
+ pos,
404
+ end,
405
+ parent,
406
+ name: void 0,
407
+ initializer: void 0
408
+ };
409
+ self.name = this.translateNode(prop.name, self, sf);
410
+ self.initializer = this.translateNode(prop.initializer, self, sf);
411
+ return self;
412
+ }
413
+ case ts.SyntaxKind.ArrayLiteralExpression: {
414
+ const arr = n;
415
+ const self = {
416
+ kind: DomainSyntaxKind.ArrayLiteralExpression,
417
+ pos,
418
+ end,
419
+ parent,
420
+ elements: []
421
+ };
422
+ const elements = [];
423
+ for (const element of arr.elements) elements.push(this.translateNode(element, self, sf));
424
+ return {
425
+ ...self,
426
+ elements
427
+ };
428
+ }
429
+ case ts.SyntaxKind.SpreadElement: {
430
+ const sp = n;
431
+ const self = {
432
+ kind: DomainSyntaxKind.SpreadElement,
433
+ pos,
434
+ end,
435
+ parent,
436
+ expression: void 0
437
+ };
438
+ self.expression = this.translateNode(sp.expression, self, sf);
439
+ return self;
440
+ }
441
+ case ts.SyntaxKind.ParenthesizedExpression: {
442
+ const pe = n;
443
+ const self = {
444
+ kind: DomainSyntaxKind.ParenthesizedExpression,
445
+ pos,
446
+ end,
447
+ parent,
448
+ expression: void 0
449
+ };
450
+ self.expression = this.translateNode(pe.expression, self, sf);
451
+ return self;
452
+ }
453
+ case ts.SyntaxKind.AsExpression: {
454
+ const ae = n;
455
+ const self = {
456
+ kind: DomainSyntaxKind.AsExpression,
457
+ pos,
458
+ end,
459
+ parent,
460
+ expression: void 0
461
+ };
462
+ self.expression = this.translateNode(ae.expression, self, sf);
463
+ return self;
464
+ }
465
+ case ts.SyntaxKind.SatisfiesExpression: {
466
+ const se = n;
467
+ const self = {
468
+ kind: DomainSyntaxKind.SatisfiesExpression,
469
+ pos,
470
+ end,
471
+ parent,
472
+ expression: void 0
473
+ };
474
+ self.expression = this.translateNode(se.expression, self, sf);
475
+ return self;
476
+ }
477
+ case ts.SyntaxKind.NonNullExpression: {
478
+ const nn = n;
479
+ const self = {
480
+ kind: DomainSyntaxKind.NonNullExpression,
481
+ pos,
482
+ end,
483
+ parent,
484
+ expression: void 0
485
+ };
486
+ self.expression = this.translateNode(nn.expression, self, sf);
487
+ return self;
488
+ }
489
+ case ts.SyntaxKind.ConditionalExpression: {
490
+ const ce = n;
491
+ const self = {
492
+ kind: DomainSyntaxKind.ConditionalExpression,
493
+ pos,
494
+ end,
495
+ parent,
496
+ condition: void 0,
497
+ whenTrue: void 0,
498
+ whenFalse: void 0
499
+ };
500
+ self.condition = this.translateNode(ce.condition, self, sf);
501
+ self.whenTrue = this.translateNode(ce.whenTrue, self, sf);
502
+ self.whenFalse = this.translateNode(ce.whenFalse, self, sf);
503
+ return self;
504
+ }
505
+ case ts.SyntaxKind.BinaryExpression: {
506
+ const be = n;
507
+ const self = {
508
+ kind: DomainSyntaxKind.BinaryExpression,
509
+ pos,
510
+ end,
511
+ parent,
512
+ left: void 0,
513
+ operator: this.mapBinaryOperator(be.operatorToken),
514
+ right: void 0
515
+ };
516
+ self.left = this.translateNode(be.left, self, sf);
517
+ self.right = this.translateNode(be.right, self, sf);
518
+ return self;
519
+ }
520
+ case ts.SyntaxKind.ExpressionStatement: {
521
+ const es = n;
522
+ const self = {
523
+ kind: DomainSyntaxKind.ExpressionStatement,
524
+ pos,
525
+ end,
526
+ parent,
527
+ expression: void 0
528
+ };
529
+ self.expression = this.translateNode(es.expression, self, sf);
530
+ return self;
531
+ }
532
+ case ts.SyntaxKind.JsxAttribute: {
533
+ const ja = n;
534
+ const self = {
535
+ kind: DomainSyntaxKind.JsxAttribute,
536
+ pos,
537
+ end,
538
+ parent,
539
+ name: void 0,
540
+ initializer: void 0
541
+ };
542
+ self.name = this.translateNode(ja.name, self, sf);
543
+ if (ja.initializer) self.initializer = this.translateNode(ja.initializer, self, sf);
544
+ return self;
545
+ }
546
+ case ts.SyntaxKind.JsxExpression: {
547
+ const je = n;
548
+ const self = {
549
+ kind: DomainSyntaxKind.JsxExpression,
550
+ pos,
551
+ end,
552
+ parent,
553
+ expression: void 0
554
+ };
555
+ if (je.expression) self.expression = this.translateNode(je.expression, self, sf);
556
+ return self;
557
+ }
558
+ default: return this.translateUnknown(n, parent, sf);
559
+ }
560
+ }
561
+ translateTypeScriptSourceFile(tsSf) {
562
+ const text = tsSf.getFullText();
563
+ const statements = tsSf.statements.map((statement) => this.translateNode(statement, null, tsSf));
564
+ return {
565
+ fileName: tsSf.fileName,
566
+ text,
567
+ statements
568
+ };
569
+ }
570
+ parseDomainSourceFile(filePath, sourceText) {
571
+ const scriptKind = filePath.endsWith(".tsx") ? ts.ScriptKind.TSX : ts.ScriptKind.TS;
572
+ const tsSf = ts.createSourceFile(filePath, sourceText, ts.ScriptTarget.Latest, true, scriptKind);
573
+ return this.translateTypeScriptSourceFile(tsSf);
574
+ }
575
+ static {
576
+ _initClass();
577
+ }
578
+ });
579
+ //#endregion
580
+ export { _TypeScriptAstTranslator as TypeScriptAstTranslator };