@codefast/cli 0.3.14-canary.2 → 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.
- package/README.md +8 -3
- package/dist/bootstrap/cli-application.module.mjs +18 -0
- package/dist/bootstrap/composition-root.mjs +14 -0
- package/dist/bootstrap/register-cli-command-trees.mjs +7 -0
- package/dist/{lib → domains}/arrange/application/use-cases/analyze-directory.use-case.mjs +12 -12
- package/dist/{lib → domains}/arrange/application/use-cases/prepare-arrange-workspace.use-case.mjs +19 -18
- package/dist/{lib → domains}/arrange/application/use-cases/run-arrange-sync.use-case.mjs +18 -18
- package/dist/{lib → domains}/arrange/application/use-cases/suggest-cn-groups.use-case.mjs +5 -5
- package/dist/domains/arrange/arrange.module.mjs +38 -0
- package/dist/domains/arrange/composition/tokens.mjs +17 -0
- package/dist/{lib/arrange/domain/arrange-analyze.service.mjs → domains/arrange/domain/arrange-analyze.domain-service.mjs} +1 -1
- package/dist/{lib/arrange/domain/arrange-grouping.service.mjs → domains/arrange/domain/arrange-grouping.domain-service.mjs} +2 -2
- package/dist/{lib → domains}/arrange/domain/ast/ast-helpers.helper.mjs +2 -2
- package/dist/{lib → domains}/arrange/domain/ast/ast-node.model.mjs +1 -1
- package/dist/{lib → domains}/arrange/domain/ast/collectors-cn.collector.mjs +1 -1
- package/dist/{lib → domains}/arrange/domain/ast/collectors-jsx.collector.mjs +1 -1
- package/dist/{lib → domains}/arrange/domain/ast/collectors-tv.collector.mjs +1 -1
- package/dist/{lib → domains}/arrange/domain/ast/targets.model.mjs +2 -2
- package/dist/{lib → domains}/arrange/domain/constants.domain.mjs +1 -1
- package/dist/{lib → domains}/arrange/domain/grouping.domain.mjs +1 -1
- package/dist/{lib → domains}/arrange/domain/imports.domain.mjs +1 -1
- package/dist/{lib → domains}/arrange/domain/source-text-formatters.formatter.mjs +2 -2
- package/dist/{lib/arrange/domain/tailwind-grouping.service.mjs → domains/arrange/domain/tailwind-grouping.domain-service.mjs} +5 -5
- package/dist/{lib → domains}/arrange/domain/tailwind-token-classifier.domain-service.mjs +1 -1
- package/dist/{lib → domains}/arrange/domain/tailwind-token.value-object.mjs +1 -1
- package/dist/{lib/arrange/application/services/arrange-file-processor.service.mjs → domains/arrange/infrastructure/adapters/arrange-file-processor.adapter.mjs} +8 -8
- package/dist/domains/arrange/infrastructure/adapters/arrange-target-path-resolver.adapter.mjs +247 -0
- package/dist/{lib/arrange/application/services/arrange-target-scanner.service.mjs → domains/arrange/infrastructure/adapters/arrange-target-scanner.adapter.mjs} +8 -8
- package/dist/{lib/arrange/adapters/secondary → domains/arrange/infrastructure/adapters}/domain-source-parser.adapter.mjs +10 -8
- package/dist/{lib/arrange/adapters/secondary → domains/arrange/infrastructure/adapters}/file-walker.adapter.mjs +8 -9
- package/dist/domains/arrange/infrastructure/typescript-ast-translator.mjs +580 -0
- package/dist/{lib/arrange/adapters/primary → domains/arrange/presentation}/cli/arrange.command.mjs +195 -54
- package/dist/{lib/arrange/presentation → domains/arrange/presentation/presenters}/arrange-analyze.presenter.mjs +26 -33
- package/dist/{lib/arrange/presentation → domains/arrange/presentation/presenters}/arrange-cli.schema.mjs +1 -1
- package/dist/{lib/tag/presentation/present-tag-sync-result.presenter.mjs → domains/arrange/presentation/presenters/arrange-sync.presenter.mjs} +12 -9
- package/dist/{lib/arrange/presentation → domains/arrange/presentation/presenters}/group-file-preview.presenter.mjs +46 -46
- package/dist/domains/config/composition/tokens.mjs +7 -0
- package/dist/{lib/config/infrastructure/config-schema.adapter.mjs → domains/config/domain/codefast-config.schema.mjs} +6 -6
- package/dist/{lib/config/infrastructure → domains/config/infrastructure/adapters}/config-loader.adapter.mjs +76 -77
- package/dist/{lib/config/infrastructure → domains/config/infrastructure/adapters}/config-warning-reporter.adapter.mjs +6 -6
- package/dist/domains/config/infrastructure/adapters/zod-codefast-config-schema.adapter.mjs +236 -0
- package/dist/domains/mirror/application/mirror-sync-cli-result.mjs +15 -0
- package/dist/{lib → domains}/mirror/application/use-cases/prepare-mirror-sync.use-case.mjs +14 -15
- package/dist/{lib → domains}/mirror/application/use-cases/run-mirror-sync.use-case.mjs +69 -54
- package/dist/{lib/mirror/contracts → domains/mirror/composition}/tokens.mjs +4 -3
- package/dist/{lib → domains}/mirror/domain/constants.domain.mjs +1 -1
- package/dist/{lib → domains}/mirror/domain/errors.domain.mjs +1 -1
- package/dist/{lib/mirror/application/services/generate-mirror-exports.service.mjs → domains/mirror/domain/generate-mirror-exports.domain-service.mjs} +2 -2
- package/dist/{lib → domains}/mirror/domain/package-display-name.policy.mjs +1 -1
- package/dist/{lib → domains}/mirror/domain/path-normalizer.value-object.mjs +1 -1
- package/dist/{lib/mirror/adapters/secondary → domains/mirror/infrastructure/adapters}/file-system-service.adapter.mjs +8 -8
- package/dist/domains/mirror/infrastructure/adapters/mirror-package-path-resolver.adapter.mjs +252 -0
- package/dist/{lib/mirror/adapters/secondary → domains/mirror/infrastructure/adapters}/mirror-sync-reporter.adapter.mjs +94 -15
- package/dist/{lib/mirror/adapters/secondary → domains/mirror/infrastructure/adapters}/package-repository.adapter.mjs +4 -4
- package/dist/{lib/mirror/adapters/secondary → domains/mirror/infrastructure/adapters}/sync-workspace-package.adapter.mjs +23 -46
- package/dist/{lib/mirror/infrastructure → domains/mirror/infrastructure/guards}/dirent-list.guard.mjs +1 -1
- package/dist/{lib → domains}/mirror/infrastructure/package-json-exports.repository.mjs +27 -27
- package/dist/domains/mirror/mirror.module.mjs +26 -0
- package/dist/{lib/mirror/adapters/primary → domains/mirror/presentation}/cli/mirror.command.mjs +83 -27
- package/dist/{lib/mirror/presentation → domains/mirror/presentation/presenters}/mirror-cli.schema.mjs +1 -4
- package/dist/domains/mirror/presentation/presenters/present-mirror-sync-progress.presenter.mjs +265 -0
- package/dist/domains/tag/application/ports/outbound/tag-eligible-workspace-paths.port.mjs +1 -0
- package/dist/domains/tag/application/ports/outbound/tag-since-writer.port.mjs +1 -0
- package/dist/domains/tag/application/ports/outbound/tag-target-path-resolver.port.mjs +1 -0
- package/dist/domains/tag/application/ports/outbound/tag-target-runner.port.mjs +1 -0
- package/dist/domains/tag/application/ports/outbound/tag-version-resolver.port.mjs +1 -0
- package/dist/domains/tag/application/ports/presenting/present-tag-sync-progress.presenter.mjs +1 -0
- package/dist/domains/tag/application/ports/presenting/present-tag-sync-result.presenter.mjs +1 -0
- package/dist/domains/tag/application/requests/tag-sync-execution-input.mjs +1 -0
- package/dist/domains/tag/application/requests/tag-sync.request.mjs +1 -0
- package/dist/{lib → domains}/tag/application/tag-sync-cli-result.mjs +3 -3
- package/dist/{lib → domains}/tag/application/use-cases/prepare-tag-sync.use-case.mjs +20 -24
- package/dist/{lib → domains}/tag/application/use-cases/run-tag-sync.use-case.mjs +123 -129
- package/dist/domains/tag/composition/tokens.mjs +13 -0
- package/dist/domains/tag/contracts/models.mjs +1 -0
- package/dist/domains/tag/domain/types.domain.mjs +1 -0
- package/dist/{lib/tag/adapters/secondary → domains/tag/infrastructure/adapters}/tag-since-writer.adapter.mjs +105 -105
- package/dist/{lib/tag/adapters/secondary/typescript-tree-walk.adapter.mjs → domains/tag/infrastructure/adapters/tag-target-path-resolver.adapter.mjs} +11 -9
- package/dist/domains/tag/infrastructure/adapters/tag-target-resolver.adapter.mjs +302 -0
- package/dist/domains/tag/infrastructure/adapters/tag-target-runner.adapter.mjs +259 -0
- package/dist/{lib/tag/adapters/secondary → domains/tag/infrastructure/adapters}/tag-version-resolver.adapter.mjs +6 -6
- package/dist/{lib/tag/adapters/primary → domains/tag/presentation}/cli/tag.command.mjs +67 -27
- package/dist/{lib/tag/presentation/tag-sync-progress-listener.presenter.mjs → domains/tag/presentation/presenters/present-tag-sync-progress.presenter.mjs} +14 -9
- package/dist/domains/tag/presentation/presenters/present-tag-sync-result.presenter.mjs +290 -0
- package/dist/{lib/tag/presentation → domains/tag/presentation/presenters}/tag-cli.schema.mjs +1 -1
- package/dist/domains/tag/tag.module.mjs +28 -0
- package/dist/program.mjs +3 -2
- package/dist/shell/application/cli-runtime.tokens.mjs +18 -0
- package/dist/shell/application/coordination/cli-executor.coordination.mjs +1 -0
- package/dist/shell/application/coordination/cli-schema-parsing.coordination.mjs +1 -0
- package/dist/shell/application/global-cli-options.model.mjs +5 -0
- package/dist/shell/application/ports/inbound/load-codefast-config.port.mjs +1 -0
- package/dist/shell/application/ports/outbound/cli-fs.port.mjs +1 -0
- package/dist/shell/application/ports/outbound/cli-logger.port.mjs +1 -0
- package/dist/shell/application/ports/outbound/cli-path.port.mjs +1 -0
- package/dist/shell/application/ports/outbound/cli-runtime.port.mjs +1 -0
- package/dist/shell/application/ports/outbound/cli-telemetry.port.mjs +1 -0
- package/dist/shell/application/ports/outbound/cli-verbose-diagnostics.port.mjs +1 -0
- package/dist/shell/application/ports/outbound/format-app-error.port.mjs +1 -0
- package/dist/shell/application/ports/outbound/global-cli-options-parse.port.mjs +1 -0
- package/dist/shell/application/ports/outbound/repo-root-resolver.port.mjs +1 -0
- package/dist/shell/application/ports/outbound/typescript-source-file-walker.port.mjs +1 -0
- package/dist/shell/application/ports/outbound/workspace-package-layout.port.mjs +1 -0
- package/dist/shell/application/ports/primary/command.port.mjs +1 -0
- package/dist/shell/application/services/cli-executor.service.mjs +267 -0
- package/dist/shell/application/services/schema-validator.service.mjs +236 -0
- package/dist/{lib/core/application → shell/application/use-cases}/load-codefast-config.use-case.mjs +11 -13
- package/dist/shell/composition/tokens.mjs +5 -0
- package/dist/shell/contracts/cli-command-slots.mjs +11 -0
- package/dist/{lib/core → shell}/domain/caught-unknown-message.value-object.mjs +1 -1
- package/dist/{lib/core → shell}/domain/cli-exit-codes.domain.mjs +1 -1
- package/dist/shell/domain/cli-positional-arg.value-object.mjs +6 -0
- package/dist/{lib/core → shell}/domain/errors.domain.mjs +1 -1
- package/dist/{lib/core → shell}/domain/result.model.mjs +1 -1
- package/dist/{lib/shared/source-code/domain/text-edit.model.mjs → shell/domain/source-text-edit.support.mjs} +2 -2
- package/dist/shell/infrastructure/adapters/cli-verbose-diagnostics.adapter.mjs +228 -0
- package/dist/{lib/tag/adapters/secondary/tag-target-resolver.adapter.mjs → shell/infrastructure/adapters/format-app-error.adapter.mjs} +16 -13
- package/dist/shell/infrastructure/adapters/global-cli-options-parser.adapter.mjs +233 -0
- package/dist/{lib/mirror/adapters/secondary/workspace-service.adapter.mjs → shell/infrastructure/adapters/repo-root-resolver.adapter.mjs} +20 -13
- package/dist/shell/infrastructure/adapters/typescript-source-file-walker.adapter.mjs +259 -0
- package/dist/shell/infrastructure/commander/commander-cli-host.adapter.mjs +69 -0
- package/dist/{lib/infrastructure/node-io.adapter.mjs → shell/infrastructure/node/node-cli-fs.adapter.mjs} +11 -47
- package/dist/{lib/arrange/adapters/secondary/workspace-resolver.adapter.mjs → shell/infrastructure/node/node-cli-logger.adapter.mjs} +11 -13
- package/dist/{lib/core/infrastructure/path.adapter.mjs → shell/infrastructure/node/node-cli-path.adapter.mjs} +1 -1
- package/dist/{lib/core/infrastructure/repo-root-resolver.adapter.mjs → shell/infrastructure/node/node-cli-runtime.adapter.mjs} +14 -13
- package/dist/shell/infrastructure/telemetry/cli-telemetry.adapter.mjs +280 -0
- package/dist/shell/infrastructure/workspace/node-pnpm-workspace-package-layout.adapter.mjs +385 -0
- package/dist/shell/shell.module.mjs +43 -0
- package/dist/shell/wiring/optional-cli-port-telemetry-activation.mjs +13 -0
- package/package.json +9 -7
- package/dist/lib/arrange/adapters/primary/cli/arrange.presentation.module.mjs +0 -14
- package/dist/lib/arrange/adapters/primary/cli/presentation.tokens.mjs +0 -5
- package/dist/lib/arrange/application/services/arrange-target-path-resolver.service.mjs +0 -21
- package/dist/lib/arrange/arrange.module.mjs +0 -31
- package/dist/lib/arrange/contracts/tokens.mjs +0 -15
- package/dist/lib/arrange/infrastructure/typescript-ast-translator.adapter.mjs +0 -355
- package/dist/lib/arrange/presentation/arrange-sync.presenter.mjs +0 -33
- package/dist/lib/bootstrap/composition-root.mjs +0 -33
- package/dist/lib/config/application/services/load-config.service.mjs +0 -17
- package/dist/lib/config/contracts/tokens.mjs +0 -6
- package/dist/lib/core/application/services/global-cli-options-parser.service.mjs +0 -9
- package/dist/lib/core/application/services/schema-validator.service.mjs +0 -17
- package/dist/lib/core/contracts/tokens.mjs +0 -10
- package/dist/lib/core/core.module.mjs +0 -9
- package/dist/lib/core/infrastructure/infrastructure.module.mjs +0 -30
- package/dist/lib/core/infrastructure/port-telemetry.decorator.mjs +0 -62
- package/dist/lib/core/infrastructure/verbose-diagnostics.policy.mjs +0 -9
- package/dist/lib/core/presentation/cli-executor.presenter.mjs +0 -42
- package/dist/lib/core/presentation/cli-schema.parser.mjs +0 -7
- package/dist/lib/core/presentation/format-app-error.presenter.mjs +0 -17
- package/dist/lib/core/presentation/presentation.module.mjs +0 -5
- package/dist/lib/infrastructure/workspace/repo-root-resolver.service.mjs +0 -21
- package/dist/lib/kernel/contracts/tokens.mjs +0 -5
- package/dist/lib/mirror/application/mirror-sync-json.format.mjs +0 -12
- package/dist/lib/mirror/application/services/mirror-package-arg-resolver.service.mjs +0 -20
- package/dist/lib/mirror/infrastructure/mirror-console-reporter.presenter.mjs +0 -99
- package/dist/lib/mirror/infrastructure/package-filter-resolver.service.mjs +0 -25
- package/dist/lib/mirror/infrastructure/workspace-packages.service.mjs +0 -158
- package/dist/lib/mirror/mirror.module.mjs +0 -25
- package/dist/lib/shared/source-code/infrastructure/typescript-source-file-walker.service.mjs +0 -33
- package/dist/lib/tag/adapters/primary/cli/presentation.tokens.mjs +0 -6
- package/dist/lib/tag/adapters/primary/cli/tag.presentation.module.mjs +0 -13
- package/dist/lib/tag/application/services/tag-cli-target-path-resolver.service.mjs +0 -9
- package/dist/lib/tag/application/services/tag-target-runner.service.mjs +0 -21
- package/dist/lib/tag/application/tag-sync-json.format.mjs +0 -14
- package/dist/lib/tag/contracts/tokens.mjs +0 -10
- package/dist/lib/tag/infrastructure/tag-target-candidates.adapter.mjs +0 -170
- package/dist/lib/tag/presentation/colors.presenter.mjs +0 -12
- package/dist/lib/tag/presentation/tag-sync.presenter.mjs +0 -61
- package/dist/lib/tag/tag.module.mjs +0 -23
- /package/dist/{lib/arrange/application/ports/domain-source-parser.port.mjs → domains/arrange/application/ports/inbound/analyze-directory.port.mjs} +0 -0
- /package/dist/{lib/arrange/application/ports/file-walker.port.mjs → domains/arrange/application/ports/inbound/prepare-arrange-workspace.port.mjs} +0 -0
- /package/dist/{lib/arrange/application/ports/group-file-preview.port.mjs → domains/arrange/application/ports/inbound/run-arrange-sync.port.mjs} +0 -0
- /package/dist/{lib/arrange/application/ports/workspace-resolver.port.mjs → domains/arrange/application/ports/inbound/suggest-cn-groups.port.mjs} +0 -0
- /package/dist/{lib/arrange/application/requests/analyze-directory.request.mjs → domains/arrange/application/ports/outbound/arrange-file-processor.port.mjs} +0 -0
- /package/dist/{lib/arrange/application/requests/arrange-sync.request.mjs → domains/arrange/application/ports/outbound/arrange-target-path-resolver.port.mjs} +0 -0
- /package/dist/{lib/arrange/application/requests/suggest-groups.request.mjs → domains/arrange/application/ports/outbound/arrange-target-scanner.port.mjs} +0 -0
- /package/dist/{lib/arrange/contracts/analyze-report-presenter.contract.mjs → domains/arrange/application/ports/outbound/domain-source-parser.port.mjs} +0 -0
- /package/dist/{lib/arrange/contracts/models.mjs → domains/arrange/application/ports/outbound/file-walker.port.mjs} +0 -0
- /package/dist/{lib/arrange/contracts/services.contract.mjs → domains/arrange/application/ports/presenting/present-analyze-report.presenter.mjs} +0 -0
- /package/dist/{lib/arrange/domain/types.domain.mjs → domains/arrange/application/ports/presenting/present-arrange-sync-result.presenter.mjs} +0 -0
- /package/dist/{lib/config/application/ports/config-loader.port.mjs → domains/arrange/application/ports/presenting/present-group-file-preview.presenter.mjs} +0 -0
- /package/dist/{lib/config/application/ports/config-warning-reporter.port.mjs → domains/arrange/application/requests/analyze-directory.request.mjs} +0 -0
- /package/dist/{lib/config/domain/schema.domain.mjs → domains/arrange/application/requests/arrange-sync.request.mjs} +0 -0
- /package/dist/{lib/core/application/ports/cli-io.port.mjs → domains/arrange/application/requests/suggest-groups.request.mjs} +0 -0
- /package/dist/{lib/mirror → domains/arrange}/contracts/models.mjs +0 -0
- /package/dist/{lib/mirror → domains/arrange}/domain/types.domain.mjs +0 -0
- /package/dist/{lib/core/application/ports/path.port.mjs → domains/config/application/ports/outbound/codefast-config-schema.port.mjs} +0 -0
- /package/dist/{lib/core/application/ports/repo-root-resolver.port.mjs → domains/config/application/ports/outbound/config-loader.port.mjs} +0 -0
- /package/dist/{lib/core/application/ports/runtime.port.mjs → domains/config/application/ports/outbound/config-warning-reporter.port.mjs} +0 -0
- /package/dist/{lib/kernel/contracts/cli-command.contract.mjs → domains/config/domain/schema.domain.mjs} +0 -0
- /package/dist/{lib/mirror/application/ports/file-system-service.port.mjs → domains/mirror/application/ports/inbound/prepare-mirror-sync.port.mjs} +0 -0
- /package/dist/{lib/mirror/application/ports/mirror-sync-reporter.port.mjs → domains/mirror/application/ports/inbound/run-mirror-sync.port.mjs} +0 -0
- /package/dist/{lib/mirror/application/ports/package-repository.port.mjs → domains/mirror/application/ports/outbound/file-system-service.port.mjs} +0 -0
- /package/dist/{lib/mirror/application/ports/sync-workspace-package.port.mjs → domains/mirror/application/ports/outbound/mirror-package-path.port.mjs} +0 -0
- /package/dist/{lib/mirror/application/ports/workspace-service.port.mjs → domains/mirror/application/ports/outbound/mirror-sync-reporter.port.mjs} +0 -0
- /package/dist/{lib/mirror/application/requests/mirror-sync.request.mjs → domains/mirror/application/ports/outbound/package-repository.port.mjs} +0 -0
- /package/dist/{lib/tag/application/ports/tag-since-writer.port.mjs → domains/mirror/application/ports/outbound/sync-workspace-package.port.mjs} +0 -0
- /package/dist/{lib/tag/application/ports/tag-version-resolver.port.mjs → domains/mirror/application/ports/presenting/present-mirror-sync-progress.presenter.mjs} +0 -0
- /package/dist/{lib/tag/application/ports/target-resolver.port.mjs → domains/mirror/application/requests/mirror-sync-execution-input.mjs} +0 -0
- /package/dist/{lib/tag/application/ports/typescript-tree-walk.port.mjs → domains/mirror/application/requests/mirror-sync.request.mjs} +0 -0
- /package/dist/{lib/tag → domains/mirror}/contracts/models.mjs +0 -0
- /package/dist/{lib/tag → domains/mirror}/domain/types.domain.mjs +0 -0
- /package/dist/{lib/tag/application/requests/tag-sync.request.mjs → domains/tag/application/ports/inbound/prepare-tag-sync.port.mjs} +0 -0
- /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,267 @@
|
|
|
1
|
+
import { CliLoggerPortToken, CliVerboseDiagnosticsPortToken, FormatAppErrorPortToken } from "../cli-runtime.tokens.mjs";
|
|
2
|
+
import "../../domain/cli-exit-codes.domain.mjs";
|
|
3
|
+
import process from "node:process";
|
|
4
|
+
import { inject, injectable } from "@codefast/di";
|
|
5
|
+
//#region src/shell/application/services/cli-executor.service.ts
|
|
6
|
+
function toPrimitive(input, hint) {
|
|
7
|
+
if (typeof input !== "object" || input === null) return input;
|
|
8
|
+
var prim = input[Symbol.toPrimitive];
|
|
9
|
+
if (prim !== void 0) {
|
|
10
|
+
var res = prim.call(input, hint || "default");
|
|
11
|
+
if (typeof res !== "object") return res;
|
|
12
|
+
throw new TypeError("@@toPrimitive must return a primitive value.");
|
|
13
|
+
}
|
|
14
|
+
return (hint === "string" ? String : Number)(input);
|
|
15
|
+
}
|
|
16
|
+
function toPropertyKey(arg) {
|
|
17
|
+
var key = toPrimitive(arg, "string");
|
|
18
|
+
return typeof key === "symbol" ? key : String(key);
|
|
19
|
+
}
|
|
20
|
+
function checkInRHS(value) {
|
|
21
|
+
if (Object(value) !== value) throw TypeError("right-hand side of 'in' should be an object, got " + (value !== null ? typeof value : "null"));
|
|
22
|
+
return value;
|
|
23
|
+
}
|
|
24
|
+
function setFunctionName(fn, name, prefix) {
|
|
25
|
+
if (typeof name === "symbol") {
|
|
26
|
+
name = name.description;
|
|
27
|
+
name = name ? "[" + name + "]" : "";
|
|
28
|
+
}
|
|
29
|
+
try {
|
|
30
|
+
Object.defineProperty(fn, "name", {
|
|
31
|
+
configurable: true,
|
|
32
|
+
value: prefix ? prefix + " " + name : name
|
|
33
|
+
});
|
|
34
|
+
} catch (_) {}
|
|
35
|
+
return fn;
|
|
36
|
+
}
|
|
37
|
+
function _apply_decs_2311(targetClass, classDecs, memberDecs, classDecsHaveThis, instanceBrand, parentClass) {
|
|
38
|
+
var symbolMetadata = Symbol.metadata || Symbol.for("Symbol.metadata");
|
|
39
|
+
var defineProperty = Object.defineProperty;
|
|
40
|
+
var create = Object.create;
|
|
41
|
+
var metadata;
|
|
42
|
+
var existingNonFields = [create(null), create(null)];
|
|
43
|
+
var hasClassDecs = classDecs.length;
|
|
44
|
+
var _;
|
|
45
|
+
function createRunInitializers(initializers, useStaticThis, hasValue) {
|
|
46
|
+
return function(thisArg, value) {
|
|
47
|
+
if (useStaticThis) {
|
|
48
|
+
value = thisArg;
|
|
49
|
+
thisArg = targetClass;
|
|
50
|
+
}
|
|
51
|
+
for (var i = 0; i < initializers.length; i++) value = initializers[i].apply(thisArg, hasValue ? [value] : []);
|
|
52
|
+
return hasValue ? value : thisArg;
|
|
53
|
+
};
|
|
54
|
+
}
|
|
55
|
+
function assertCallable(fn, hint1, hint2, throwUndefined) {
|
|
56
|
+
if (typeof fn !== "function") {
|
|
57
|
+
if (throwUndefined || fn !== void 0) throw new TypeError(hint1 + " must " + (hint2 || "be") + " a function" + (throwUndefined ? "" : " or undefined"));
|
|
58
|
+
}
|
|
59
|
+
return fn;
|
|
60
|
+
}
|
|
61
|
+
function applyDec(Class, decInfo, decoratorsHaveThis, name, kind, initializers, ret, isStatic, isPrivate, isField, hasPrivateBrand) {
|
|
62
|
+
function assertInstanceIfPrivate(target) {
|
|
63
|
+
if (!hasPrivateBrand(target)) throw new TypeError("Attempted to access private element on non-instance");
|
|
64
|
+
}
|
|
65
|
+
var decs = [].concat(decInfo[0]);
|
|
66
|
+
var decVal = decInfo[3];
|
|
67
|
+
var isClass = !ret;
|
|
68
|
+
var isAccessor = kind === 1;
|
|
69
|
+
var isGetter = kind === 3;
|
|
70
|
+
var isSetter = kind === 4;
|
|
71
|
+
var isMethod = kind === 2;
|
|
72
|
+
function bindPropCall(name, useStaticThis, before) {
|
|
73
|
+
return function(_this, value) {
|
|
74
|
+
if (useStaticThis) {
|
|
75
|
+
value = _this;
|
|
76
|
+
_this = Class;
|
|
77
|
+
}
|
|
78
|
+
if (before) before(_this);
|
|
79
|
+
return desc[name].call(_this, value);
|
|
80
|
+
};
|
|
81
|
+
}
|
|
82
|
+
var desc1 = {};
|
|
83
|
+
var init = [];
|
|
84
|
+
var key = isGetter ? "get" : isSetter || isAccessor ? "set" : "value";
|
|
85
|
+
if (!isClass) {
|
|
86
|
+
if (isPrivate) {
|
|
87
|
+
if (isField || isAccessor) desc1 = {
|
|
88
|
+
get: setFunctionName(function() {
|
|
89
|
+
return decVal(this);
|
|
90
|
+
}, name, "get"),
|
|
91
|
+
set: function(value) {
|
|
92
|
+
decInfo[4](this, value);
|
|
93
|
+
}
|
|
94
|
+
};
|
|
95
|
+
else desc1[key] = decVal;
|
|
96
|
+
if (!isField) setFunctionName(desc1[key], name, isMethod ? "" : key);
|
|
97
|
+
} else if (!isField) desc1 = Object.getOwnPropertyDescriptor(Class, name);
|
|
98
|
+
if (!isField && !isPrivate) {
|
|
99
|
+
_ = existingNonFields[+isStatic][name];
|
|
100
|
+
if (_ && (_ ^ kind) !== 7) throw new Error("Decorating two elements with the same name (" + desc1[key].name + ") is not supported yet");
|
|
101
|
+
existingNonFields[+isStatic][name] = kind < 3 ? 1 : kind;
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
var newValue = Class;
|
|
105
|
+
for (var i = decs.length - 1; i >= 0; i -= decoratorsHaveThis ? 2 : 1) {
|
|
106
|
+
var dec = assertCallable(decs[i], "A decorator", "be", true);
|
|
107
|
+
var decThis = decoratorsHaveThis ? decs[i - 1] : void 0;
|
|
108
|
+
var decoratorFinishedRef = {};
|
|
109
|
+
var ctx = {
|
|
110
|
+
kind: [
|
|
111
|
+
"field",
|
|
112
|
+
"accessor",
|
|
113
|
+
"method",
|
|
114
|
+
"getter",
|
|
115
|
+
"setter",
|
|
116
|
+
"class"
|
|
117
|
+
][kind],
|
|
118
|
+
name,
|
|
119
|
+
metadata,
|
|
120
|
+
addInitializer: (function(decoratorFinishedRef, initializer) {
|
|
121
|
+
if (decoratorFinishedRef.v) throw new TypeError("attempted to call addInitializer after decoration was finished");
|
|
122
|
+
assertCallable(initializer, "An initializer", "be", true);
|
|
123
|
+
initializers.push(initializer);
|
|
124
|
+
}).bind(null, decoratorFinishedRef)
|
|
125
|
+
};
|
|
126
|
+
if (isClass) {
|
|
127
|
+
_ = dec.call(decThis, newValue, ctx);
|
|
128
|
+
decoratorFinishedRef.v = 1;
|
|
129
|
+
if (assertCallable(_, "class decorators", "return")) newValue = _;
|
|
130
|
+
continue;
|
|
131
|
+
}
|
|
132
|
+
ctx.static = isStatic;
|
|
133
|
+
ctx.private = isPrivate;
|
|
134
|
+
_ = ctx.access = { has: isPrivate ? hasPrivateBrand.bind() : function(target) {
|
|
135
|
+
return name in target;
|
|
136
|
+
} };
|
|
137
|
+
if (!isSetter) _.get = isPrivate ? isMethod ? function(_this) {
|
|
138
|
+
assertInstanceIfPrivate(_this);
|
|
139
|
+
return desc1.value;
|
|
140
|
+
} : bindPropCall("get", 0, assertInstanceIfPrivate) : function(target) {
|
|
141
|
+
return target[name];
|
|
142
|
+
};
|
|
143
|
+
if (!isMethod && !isGetter) _.set = isPrivate ? bindPropCall("set", 0, assertInstanceIfPrivate) : function(target, value) {
|
|
144
|
+
target[name] = value;
|
|
145
|
+
};
|
|
146
|
+
newValue = dec.call(decThis, isAccessor ? {
|
|
147
|
+
get: desc1.get,
|
|
148
|
+
set: desc1.set
|
|
149
|
+
} : desc1[key], ctx);
|
|
150
|
+
decoratorFinishedRef.v = 1;
|
|
151
|
+
if (isAccessor) {
|
|
152
|
+
if (typeof newValue === "object" && newValue) {
|
|
153
|
+
if (_ = assertCallable(newValue.get, "accessor.get")) desc1.get = _;
|
|
154
|
+
if (_ = assertCallable(newValue.set, "accessor.set")) desc1.set = _;
|
|
155
|
+
if (_ = assertCallable(newValue.init, "accessor.init")) init.unshift(_);
|
|
156
|
+
} else if (newValue !== void 0) throw new TypeError("accessor decorators must return an object with get, set, or init properties or undefined");
|
|
157
|
+
} else if (assertCallable(newValue, (isField ? "field" : "method") + " decorators", "return")) if (isField) init.unshift(newValue);
|
|
158
|
+
else desc1[key] = newValue;
|
|
159
|
+
}
|
|
160
|
+
if (kind < 2) ret.push(createRunInitializers(init, isStatic, 1), createRunInitializers(initializers, isStatic, 0));
|
|
161
|
+
if (!isField && !isClass) if (isPrivate) if (isAccessor) ret.splice(-1, 0, bindPropCall("get", isStatic), bindPropCall("set", isStatic));
|
|
162
|
+
else ret.push(isMethod ? desc1[key] : assertCallable.call.bind(desc1[key]));
|
|
163
|
+
else defineProperty(Class, name, desc1);
|
|
164
|
+
return newValue;
|
|
165
|
+
}
|
|
166
|
+
function applyMemberDecs() {
|
|
167
|
+
var ret = [];
|
|
168
|
+
var protoInitializers;
|
|
169
|
+
var staticInitializers;
|
|
170
|
+
var pushInitializers = function(initializers) {
|
|
171
|
+
if (initializers) ret.push(createRunInitializers(initializers));
|
|
172
|
+
};
|
|
173
|
+
var applyMemberDecsOfKind = function(isStatic, isField) {
|
|
174
|
+
for (var i = 0; i < memberDecs.length; i++) {
|
|
175
|
+
var decInfo = memberDecs[i];
|
|
176
|
+
var kind = decInfo[1];
|
|
177
|
+
var kindOnly = kind & 7;
|
|
178
|
+
if ((kind & 8) == isStatic && !kindOnly == isField) {
|
|
179
|
+
var name = decInfo[2];
|
|
180
|
+
var isPrivate = !!decInfo[3];
|
|
181
|
+
var decoratorsHaveThis = kind & 16;
|
|
182
|
+
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(_) {
|
|
183
|
+
return checkInRHS(_) === targetClass;
|
|
184
|
+
} : instanceBrand);
|
|
185
|
+
}
|
|
186
|
+
}
|
|
187
|
+
};
|
|
188
|
+
applyMemberDecsOfKind(8, 0);
|
|
189
|
+
applyMemberDecsOfKind(0, 0);
|
|
190
|
+
applyMemberDecsOfKind(8, 1);
|
|
191
|
+
applyMemberDecsOfKind(0, 1);
|
|
192
|
+
pushInitializers(protoInitializers);
|
|
193
|
+
pushInitializers(staticInitializers);
|
|
194
|
+
return ret;
|
|
195
|
+
}
|
|
196
|
+
function defineMetadata(Class) {
|
|
197
|
+
return defineProperty(Class, symbolMetadata, {
|
|
198
|
+
configurable: true,
|
|
199
|
+
enumerable: true,
|
|
200
|
+
value: metadata
|
|
201
|
+
});
|
|
202
|
+
}
|
|
203
|
+
if (parentClass !== void 0) metadata = parentClass[symbolMetadata];
|
|
204
|
+
metadata = create(metadata == null ? null : metadata);
|
|
205
|
+
_ = applyMemberDecs();
|
|
206
|
+
if (!hasClassDecs) defineMetadata(targetClass);
|
|
207
|
+
return {
|
|
208
|
+
e: _,
|
|
209
|
+
get c() {
|
|
210
|
+
var initializers = [];
|
|
211
|
+
return hasClassDecs && [defineMetadata(targetClass = applyDec(targetClass, [classDecs], classDecsHaveThis, targetClass.name, 5, initializers)), createRunInitializers(initializers, 1)];
|
|
212
|
+
}
|
|
213
|
+
};
|
|
214
|
+
}
|
|
215
|
+
let _dec, _initClass;
|
|
216
|
+
_dec = injectable([
|
|
217
|
+
inject(FormatAppErrorPortToken),
|
|
218
|
+
inject(CliVerboseDiagnosticsPortToken),
|
|
219
|
+
inject(CliLoggerPortToken)
|
|
220
|
+
]);
|
|
221
|
+
let _CliExecutorService;
|
|
222
|
+
(class {
|
|
223
|
+
formatAppError;
|
|
224
|
+
verboseDiagnostics;
|
|
225
|
+
logger;
|
|
226
|
+
static {
|
|
227
|
+
({c: [_CliExecutorService, _initClass]} = _apply_decs_2311(this, [_dec], []));
|
|
228
|
+
}
|
|
229
|
+
constructor(formatAppError, verboseDiagnostics, logger) {
|
|
230
|
+
this.formatAppError = formatAppError;
|
|
231
|
+
this.verboseDiagnostics = verboseDiagnostics;
|
|
232
|
+
this.logger = logger;
|
|
233
|
+
}
|
|
234
|
+
assertExhaustiveAppErrorCode(code) {
|
|
235
|
+
return code;
|
|
236
|
+
}
|
|
237
|
+
exitCodeForAppError(error) {
|
|
238
|
+
const { code } = error;
|
|
239
|
+
switch (code) {
|
|
240
|
+
case "NOT_FOUND": return 1;
|
|
241
|
+
case "VALIDATION_ERROR": return 2;
|
|
242
|
+
case "INFRA_FAILURE": return 1;
|
|
243
|
+
default: return this.assertExhaustiveAppErrorCode(code);
|
|
244
|
+
}
|
|
245
|
+
}
|
|
246
|
+
consumeCliAppError(outcome, options) {
|
|
247
|
+
if (!outcome.ok) {
|
|
248
|
+
this.logger.err(this.formatAppError.format(outcome.error));
|
|
249
|
+
if (this.verboseDiagnostics.isVerboseCliDiagnostics() && outcome.error.code === "INFRA_FAILURE" && outcome.error.cause instanceof Error && outcome.error.cause.stack !== void 0) this.logger.err(outcome.error.cause.stack);
|
|
250
|
+
process.exitCode = this.exitCodeForAppError(outcome.error);
|
|
251
|
+
return false;
|
|
252
|
+
}
|
|
253
|
+
if (options?.successMessage !== void 0) this.logger.out(options.successMessage);
|
|
254
|
+
return true;
|
|
255
|
+
}
|
|
256
|
+
async runCliResultAsync(outcomePromise, onSuccess) {
|
|
257
|
+
const outcome = await outcomePromise;
|
|
258
|
+
if (!this.consumeCliAppError(outcome)) return;
|
|
259
|
+
const exit = await onSuccess(outcome.value);
|
|
260
|
+
process.exitCode = exit === void 0 ? 0 : exit;
|
|
261
|
+
}
|
|
262
|
+
static {
|
|
263
|
+
_initClass();
|
|
264
|
+
}
|
|
265
|
+
});
|
|
266
|
+
//#endregion
|
|
267
|
+
export { _CliExecutorService as CliExecutorService };
|
|
@@ -0,0 +1,236 @@
|
|
|
1
|
+
import { AppError } from "../../domain/errors.domain.mjs";
|
|
2
|
+
import { err, ok } from "../../domain/result.model.mjs";
|
|
3
|
+
import { injectable } from "@codefast/di";
|
|
4
|
+
//#region src/shell/application/services/schema-validator.service.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();
|
|
216
|
+
let _SchemaValidatorService;
|
|
217
|
+
(class {
|
|
218
|
+
static {
|
|
219
|
+
({c: [_SchemaValidatorService, _initClass]} = _apply_decs_2311(this, [_dec], []));
|
|
220
|
+
}
|
|
221
|
+
formatSchemaIssues(issues) {
|
|
222
|
+
return issues.map((issue) => {
|
|
223
|
+
return `${issue.path.length > 0 ? `${issue.path.join(".")}: ` : ""}${issue.message}`;
|
|
224
|
+
}).join("; ");
|
|
225
|
+
}
|
|
226
|
+
parseWithSchema(schema, input) {
|
|
227
|
+
const parsed = schema.safeParse(input);
|
|
228
|
+
if (!parsed.success) return err(new AppError("VALIDATION_ERROR", this.formatSchemaIssues(parsed.error.issues)));
|
|
229
|
+
return ok(parsed.data);
|
|
230
|
+
}
|
|
231
|
+
static {
|
|
232
|
+
_initClass();
|
|
233
|
+
}
|
|
234
|
+
});
|
|
235
|
+
//#endregion
|
|
236
|
+
export { _SchemaValidatorService as SchemaValidatorService };
|
package/dist/{lib/core/application → shell/application/use-cases}/load-codefast-config.use-case.mjs
RENAMED
|
@@ -1,10 +1,9 @@
|
|
|
1
|
-
import { AppError } from "
|
|
2
|
-
import { err, ok } from "
|
|
3
|
-
import { messageFromCaughtUnknown } from "
|
|
4
|
-
import { ConfigLoaderPortToken, ConfigWarningReporterPortToken } from "
|
|
5
|
-
import { loadCodefastConfig } from "../../config/application/services/load-config.service.mjs";
|
|
1
|
+
import { AppError } from "../../domain/errors.domain.mjs";
|
|
2
|
+
import { err, ok } from "../../domain/result.model.mjs";
|
|
3
|
+
import { messageFromCaughtUnknown } from "../../domain/caught-unknown-message.value-object.mjs";
|
|
4
|
+
import { ConfigLoaderPortToken, ConfigWarningReporterPortToken } from "../../../domains/config/composition/tokens.mjs";
|
|
6
5
|
import { inject, injectable } from "@codefast/di";
|
|
7
|
-
//#region src/
|
|
6
|
+
//#region src/shell/application/use-cases/load-codefast-config.use-case.ts
|
|
8
7
|
function toPrimitive(input, hint) {
|
|
9
8
|
if (typeof input !== "object" || input === null) return input;
|
|
10
9
|
var prim = input[Symbol.toPrimitive];
|
|
@@ -216,12 +215,12 @@ function _apply_decs_2311(targetClass, classDecs, memberDecs, classDecsHaveThis,
|
|
|
216
215
|
}
|
|
217
216
|
let _dec, _initClass;
|
|
218
217
|
_dec = injectable([inject(ConfigLoaderPortToken), inject(ConfigWarningReporterPortToken)]);
|
|
219
|
-
let
|
|
218
|
+
let _LoadCodefastConfigUseCase;
|
|
220
219
|
(class {
|
|
221
220
|
configLoader;
|
|
222
221
|
warningReporter;
|
|
223
222
|
static {
|
|
224
|
-
({c: [
|
|
223
|
+
({c: [_LoadCodefastConfigUseCase, _initClass]} = _apply_decs_2311(this, [_dec], []));
|
|
225
224
|
}
|
|
226
225
|
constructor(configLoader, warningReporter) {
|
|
227
226
|
this.configLoader = configLoader;
|
|
@@ -229,10 +228,9 @@ let _LoadCodefastConfigUseCaseImpl;
|
|
|
229
228
|
}
|
|
230
229
|
async execute(rootDir) {
|
|
231
230
|
try {
|
|
232
|
-
const
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
return ok({ config: loadedConfig.value.config });
|
|
231
|
+
const { config, warnings } = await this.configLoader.loadConfig(rootDir);
|
|
232
|
+
this.warningReporter.reportSchemaWarnings(warnings);
|
|
233
|
+
return ok({ config });
|
|
236
234
|
} catch (caughtError) {
|
|
237
235
|
return err(new AppError("INFRA_FAILURE", messageFromCaughtUnknown(caughtError), caughtError));
|
|
238
236
|
}
|
|
@@ -242,4 +240,4 @@ let _LoadCodefastConfigUseCaseImpl;
|
|
|
242
240
|
}
|
|
243
241
|
});
|
|
244
242
|
//#endregion
|
|
245
|
-
export {
|
|
243
|
+
export { _LoadCodefastConfigUseCase as LoadCodefastConfigUseCase };
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
//#region src/shell/contracts/cli-command-slots.ts
|
|
2
|
+
/**
|
|
3
|
+
* Stable DI slot names for `CommandPortToken` multi-bindings and Commander subcommand names.
|
|
4
|
+
* Keep in sync with `CommandPort.definition.name` on each command class.
|
|
5
|
+
*/ const CLI_COMMAND_SLOT_NAME = {
|
|
6
|
+
arrange: "arrange",
|
|
7
|
+
mirror: "mirror",
|
|
8
|
+
tag: "tag"
|
|
9
|
+
};
|
|
10
|
+
//#endregion
|
|
11
|
+
export { CLI_COMMAND_SLOT_NAME };
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
//#region src/
|
|
1
|
+
//#region src/shell/domain/caught-unknown-message.value-object.ts
|
|
2
2
|
/**
|
|
3
3
|
* Stable, user-facing text for values caught as `unknown`.
|
|
4
4
|
* Avoids `String(unknown)` / `[object Object]` and satisfies strict `no-base-to-string`.
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
//#region src/shell/domain/cli-positional-arg.value-object.ts
|
|
2
|
+
/** Coerce a raw Commander positional argument to a string, or undefined when absent. */ function readOptionalPositionalArg(candidate) {
|
|
3
|
+
return typeof candidate === "string" ? candidate : void 0;
|
|
4
|
+
}
|
|
5
|
+
//#endregion
|
|
6
|
+
export { readOptionalPositionalArg };
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
//#region src/
|
|
1
|
+
//#region src/shell/domain/errors.domain.ts
|
|
2
2
|
/**
|
|
3
3
|
* Cross-context application errors for Result-based use cases (CLI orchestration).
|
|
4
4
|
* Does not extend the global `Error` type — instances are carried in `Result` values, not thrown.
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
//#region src/
|
|
1
|
+
//#region src/shell/domain/source-text-edit.support.ts
|
|
2
2
|
/**
|
|
3
3
|
* Pure string utilities for applying non-overlapping text edits and reading line indentation.
|
|
4
4
|
*/ function lineStartIndexContaining(source, pos) {
|
|
@@ -26,7 +26,7 @@
|
|
|
26
26
|
* a token not at column 0 (e.g. `base: ["foo"` → prefix before the opening `"` of `"foo"`).
|
|
27
27
|
*/ function textPrefixFromLineStartToPosition(source, pos) {
|
|
28
28
|
const searchPos = Math.max(0, Math.min(pos, source.length));
|
|
29
|
-
return source.slice(lineStartIndexContaining(source,
|
|
29
|
+
return source.slice(lineStartIndexContaining(source, searchPos), searchPos);
|
|
30
30
|
}
|
|
31
31
|
/**
|
|
32
32
|
* If `tokenEnd` is followed by optional ASCII whitespace then `,`, returns the index after that
|