@codefast/cli 0.3.13-canary.3 → 0.3.13
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 +29 -3
- package/dist/{bin.js → bin.mjs} +4 -1
- package/dist/commands/arrange.mjs +325 -0
- package/dist/commands/mirror.mjs +267 -0
- package/dist/commands/tag.mjs +283 -0
- package/dist/lib/arrange/application/arrange-analyze-json.format.mjs +10 -0
- package/dist/lib/arrange/application/arrange-group-json.format.mjs +11 -0
- package/dist/lib/arrange/application/arrange-sync-cli-result.mjs +7 -0
- package/dist/lib/arrange/application/arrange-sync-json.format.mjs +12 -0
- package/dist/lib/arrange/application/services/arrange-file-processor.service.mjs +242 -0
- package/dist/lib/arrange/application/services/arrange-target-scanner.service.mjs +237 -0
- package/dist/lib/arrange/application/use-cases/analyze-directory.use-case.mjs +258 -0
- package/dist/lib/arrange/application/use-cases/group-file.use-case.mjs +35 -0
- package/dist/lib/arrange/application/use-cases/run-arrange-sync.use-case.mjs +283 -0
- package/dist/lib/arrange/application/use-cases/suggest-cn-groups.use-case.mjs +233 -0
- package/dist/lib/arrange/arrange.feature.module.mjs +19 -0
- package/dist/lib/arrange/arrange.module.mjs +27 -0
- package/dist/lib/arrange/arrange.presentation.module.mjs +13 -0
- package/dist/lib/arrange/contracts/tokens.mjs +14 -0
- package/dist/lib/arrange/domain/arrange-analyze.service.mjs +95 -0
- package/dist/lib/arrange/domain/arrange-grouping.service.mjs +100 -0
- package/dist/lib/arrange/domain/ast/ast-helpers.helper.mjs +89 -0
- package/dist/lib/arrange/domain/ast/ast-node.model.mjs +181 -0
- package/dist/lib/arrange/domain/ast/collectors-cn.collector.mjs +52 -0
- package/dist/lib/arrange/domain/ast/collectors-jsx.collector.mjs +20 -0
- package/dist/lib/arrange/domain/ast/collectors-tv.collector.mjs +174 -0
- package/dist/lib/arrange/domain/ast/targets.model.mjs +110 -0
- package/dist/lib/arrange/domain/constants.domain.mjs +154 -0
- package/dist/lib/arrange/domain/errors.domain.mjs +18 -0
- package/dist/lib/arrange/domain/grouping.domain.mjs +306 -0
- package/dist/lib/arrange/domain/imports.domain.mjs +55 -0
- package/dist/lib/arrange/domain/source-text-formatters.formatter.mjs +54 -0
- package/dist/lib/arrange/domain/tokenizer.util.mjs +209 -0
- package/dist/lib/arrange/infra/domain-source-parser.adapter.mjs +240 -0
- package/dist/lib/arrange/infra/ensure-cn-import.adapter.mjs +8 -0
- package/dist/lib/arrange/infra/file-walker.adapter.mjs +239 -0
- package/dist/lib/arrange/infra/merge-cn-literal-pool-for-test.test-helper.mjs +18 -0
- package/dist/lib/arrange/infra/ts-ast-translator.adapter.mjs +355 -0
- package/dist/lib/arrange/presentation/arrange-cli-schema.presenter.mjs +29 -0
- package/dist/lib/arrange/presentation/arrange-sync.presenter.mjs +12 -0
- package/dist/lib/arrange/presentation/formatters.presenter.mjs +2 -0
- package/dist/lib/arrange/presentation/group-file-preview.presenter.mjs +275 -0
- package/dist/lib/arrange/presentation/prepare-arrange.orchestrator.mjs +258 -0
- package/dist/lib/arrange/presentation/present-analyze-cli.presenter.mjs +7 -0
- package/dist/lib/arrange/presentation/present-analyze-report.presenter.mjs +233 -0
- package/dist/lib/arrange/presentation/report.presenter.mjs +24 -0
- package/dist/lib/arrange/presentation/resolve-arrange-cli-target.presenter.mjs +21 -0
- package/dist/lib/config/application/use-cases/load-config.use-case.mjs +17 -0
- package/dist/lib/config/contracts/tokens.mjs +5 -0
- package/dist/lib/config/infra/config-schema.adapter.mjs +25 -0
- package/dist/lib/config/infra/loader.adapter.mjs +84 -0
- package/dist/lib/core/application/architecture-boundaries.policy.mjs +311 -0
- package/dist/lib/core/application/ports/path.port.mjs +1 -0
- package/dist/lib/core/application/schema-parse.util.mjs +17 -0
- package/dist/lib/core/application/utils/caught-unknown-message.util.mjs +19 -0
- package/dist/lib/core/application/utils/verbose-diagnostics.util.mjs +9 -0
- package/dist/lib/core/contracts/presentation.contract.mjs +1 -0
- package/dist/lib/core/contracts/tokens.mjs +5 -0
- package/dist/lib/core/core.module.mjs +9 -0
- package/dist/lib/core/domain/cli-exit-codes.domain.mjs +11 -0
- package/dist/lib/core/domain/errors.domain.mjs +16 -0
- package/dist/lib/core/domain/result.model.mjs +23 -0
- package/dist/lib/core/infra/composition-root.mjs +21 -0
- package/dist/lib/core/infra/infra.module.mjs +23 -0
- package/dist/lib/core/infra/logging-decorator.adapter.mjs +62 -0
- package/dist/lib/core/infra/path.adapter.mjs +13 -0
- package/dist/lib/core/operational/contracts/tokens.mjs +7 -0
- package/dist/lib/core/presentation/cli-executor.presenter.mjs +57 -0
- package/dist/lib/core/presentation/command.interface.mjs +1 -0
- package/dist/lib/core/presentation/format-app-error.presenter.mjs +17 -0
- package/dist/lib/core/presentation/global-cli-options.presenter.mjs +9 -0
- package/dist/lib/core/presentation/load-codefast-config.presenter.mjs +18 -0
- package/dist/lib/core/presentation/parse-cli-schema.presenter.mjs +7 -0
- package/dist/lib/core/presentation/presentation.module.mjs +11 -0
- package/dist/lib/core/presentation/try-load-codefast-config.presenter.mjs +245 -0
- package/dist/lib/infra/config-reporter.adapter.mjs +9 -0
- package/dist/lib/infra/fs-contract.port.mjs +1 -0
- package/dist/lib/infra/node-io.adapter.mjs +266 -0
- package/dist/lib/infra/workspace/repo-root.adapter.mjs +21 -0
- package/dist/lib/kernel/di/command.token.mjs +5 -0
- package/dist/lib/mirror/application/mirror-sync-json.format.mjs +12 -0
- package/dist/lib/mirror/application/ports/file-system-service.port.mjs +1 -0
- package/dist/lib/mirror/application/ports/mirror-sync-reporter.port.mjs +1 -0
- package/dist/lib/mirror/application/ports/package-repository.port.mjs +1 -0
- package/dist/lib/mirror/application/ports/sync-workspace-package.port.mjs +1 -0
- package/dist/lib/mirror/application/ports/workspace-service.port.mjs +1 -0
- package/dist/lib/mirror/application/requests/mirror-sync.request.mjs +1 -0
- package/dist/lib/mirror/application/services/sync-workspace-package.service.mjs +351 -0
- package/dist/lib/mirror/application/use-cases/generate-mirror-exports.use-case.mjs +219 -0
- package/dist/lib/mirror/application/use-cases/run-mirror-sync.use-case.mjs +302 -0
- package/dist/lib/mirror/contracts/models.mjs +1 -0
- package/dist/lib/mirror/contracts/presentation.contract.mjs +1 -0
- package/dist/lib/mirror/contracts/tokens.mjs +11 -0
- package/dist/lib/mirror/contracts/use-cases.contract.mjs +1 -0
- package/dist/lib/mirror/domain/constants.domain.mjs +16 -0
- package/dist/lib/mirror/domain/errors.domain.mjs +15 -0
- package/dist/lib/mirror/domain/types.domain.mjs +1 -0
- package/dist/lib/mirror/infra/dirent-list.adapter.mjs +13 -0
- package/dist/lib/mirror/infra/file-system-service.adapter.mjs +256 -0
- package/dist/lib/mirror/infra/mirror-sync-cli-options.adapter.mjs +1 -0
- package/dist/lib/mirror/infra/mirror-sync-reporter.adapter.mjs +236 -0
- package/dist/lib/mirror/infra/package-filter.adapter.mjs +25 -0
- package/dist/lib/mirror/infra/package-repository.adapter.mjs +235 -0
- package/dist/lib/mirror/infra/path-normalizer.adapter.mjs +7 -0
- package/dist/lib/mirror/infra/update-pkg.adapter.mjs +102 -0
- package/dist/lib/mirror/infra/workspace-packages.adapter.mjs +154 -0
- package/dist/lib/mirror/infra/workspace-service.adapter.mjs +232 -0
- package/dist/lib/mirror/mirror.feature.module.mjs +19 -0
- package/dist/lib/mirror/mirror.module.mjs +23 -0
- package/dist/lib/mirror/mirror.presentation.module.mjs +11 -0
- package/dist/lib/mirror/presentation/mirror-cli-schema.presenter.mjs +12 -0
- package/dist/lib/mirror/presentation/prepare-mirror.orchestrator.mjs +263 -0
- package/dist/lib/mirror/presentation/reporter.presenter.mjs +111 -0
- package/dist/lib/mirror/presentation/resolve-mirror-package-arg.presenter.mjs +20 -0
- package/dist/lib/shared/source-code/domain/text-edit.model.mjs +28 -0
- package/dist/lib/shared/source-code/infra/tsx-file-walk.adapter.mjs +33 -0
- package/dist/lib/tag/application/ports/tag-since-writer.port.mjs +1 -0
- package/dist/lib/tag/application/ports/tag-version-resolver.port.mjs +1 -0
- package/dist/lib/tag/application/ports/target-resolver.port.mjs +1 -0
- package/dist/lib/tag/application/ports/typescript-tree-walk.port.mjs +1 -0
- package/dist/lib/tag/application/requests/tag-sync.request.mjs +1 -0
- package/dist/lib/tag/application/tag-sync-cli-result.mjs +11 -0
- package/dist/lib/tag/application/tag-sync-json.format.mjs +14 -0
- package/dist/lib/tag/application/use-cases/run-tag-sync.use-case.mjs +398 -0
- package/dist/lib/tag/contracts/models.mjs +1 -0
- package/dist/lib/tag/contracts/presentation.contract.mjs +1 -0
- package/dist/lib/tag/contracts/tokens.mjs +12 -0
- package/dist/lib/tag/contracts/use-cases.contract.mjs +1 -0
- package/dist/lib/tag/domain/types.domain.mjs +1 -0
- package/dist/lib/tag/infra/tag-since-writer.adapter.mjs +343 -0
- package/dist/lib/tag/infra/tag-sync-cli-options.adapter.mjs +1 -0
- package/dist/lib/tag/infra/tag-target-candidates.adapter.mjs +170 -0
- package/dist/lib/tag/infra/tag-target-resolver.adapter.mjs +226 -0
- package/dist/lib/tag/infra/tag-version-resolver.adapter.mjs +247 -0
- package/dist/lib/tag/infra/typescript-tree-walk.adapter.mjs +226 -0
- package/dist/lib/tag/presentation/colors.presenter.mjs +12 -0
- package/dist/lib/tag/presentation/create-tag-progress-listener.presenter.mjs +228 -0
- package/dist/lib/tag/presentation/prepare-tag.orchestrator.mjs +264 -0
- package/dist/lib/tag/presentation/present-tag-sync-result.presenter.mjs +233 -0
- package/dist/lib/tag/presentation/resolve-tag-cli-target.presenter.mjs +9 -0
- package/dist/lib/tag/presentation/resolve-tag-workspace-root.presenter.mjs +12 -0
- package/dist/lib/tag/presentation/tag-cli-schema.presenter.mjs +12 -0
- package/dist/lib/tag/presentation/tag-sync.presenter.mjs +78 -0
- package/dist/lib/tag/tag.feature.module.mjs +19 -0
- package/dist/lib/tag/tag.module.mjs +21 -0
- package/dist/lib/tag/tag.presentation.module.mjs +15 -0
- package/dist/program.mjs +39 -0
- package/package.json +16 -19
- package/dist/bin.d.ts +0 -3
- package/dist/bin.d.ts.map +0 -1
- package/dist/commands/arrange.d.ts +0 -3
- package/dist/commands/arrange.d.ts.map +0 -1
- package/dist/commands/arrange.js +0 -108
- package/dist/commands/mirror.d.ts +0 -3
- package/dist/commands/mirror.d.ts.map +0 -1
- package/dist/commands/mirror.js +0 -36
- package/dist/commands/tag.d.ts +0 -3
- package/dist/commands/tag.d.ts.map +0 -1
- package/dist/commands/tag.js +0 -44
- package/dist/lib/arrange/application/ports/domain-source-parser.port.d.ts +0 -5
- package/dist/lib/arrange/application/ports/domain-source-parser.port.d.ts.map +0 -1
- package/dist/lib/arrange/application/ports/file-walker.port.d.ts +0 -5
- package/dist/lib/arrange/application/ports/file-walker.port.d.ts.map +0 -1
- package/dist/lib/arrange/application/requests/analyze-directory.request.d.ts +0 -6
- package/dist/lib/arrange/application/requests/analyze-directory.request.d.ts.map +0 -1
- package/dist/lib/arrange/application/requests/analyze-directory.request.js +0 -4
- package/dist/lib/arrange/application/requests/arrange-sync.request.d.ts +0 -18
- package/dist/lib/arrange/application/requests/arrange-sync.request.d.ts.map +0 -1
- package/dist/lib/arrange/application/requests/arrange-sync.request.js +0 -15
- package/dist/lib/arrange/application/requests/suggest-groups.request.d.ts +0 -8
- package/dist/lib/arrange/application/requests/suggest-groups.request.d.ts.map +0 -1
- package/dist/lib/arrange/application/requests/suggest-groups.request.js +0 -8
- package/dist/lib/arrange/application/use-cases/analyze-directory.use-case.d.ts +0 -17
- package/dist/lib/arrange/application/use-cases/analyze-directory.use-case.d.ts.map +0 -1
- package/dist/lib/arrange/application/use-cases/analyze-directory.use-case.js +0 -24
- package/dist/lib/arrange/application/use-cases/group-file-preview.use-case.d.ts +0 -17
- package/dist/lib/arrange/application/use-cases/group-file-preview.use-case.d.ts.map +0 -1
- package/dist/lib/arrange/application/use-cases/group-file-preview.use-case.js +0 -46
- package/dist/lib/arrange/application/use-cases/group-file.use-case.d.ts +0 -5
- package/dist/lib/arrange/application/use-cases/group-file.use-case.d.ts.map +0 -1
- package/dist/lib/arrange/application/use-cases/group-file.use-case.js +0 -40
- package/dist/lib/arrange/application/use-cases/run-arrange-sync.use-case.d.ts +0 -19
- package/dist/lib/arrange/application/use-cases/run-arrange-sync.use-case.d.ts.map +0 -1
- package/dist/lib/arrange/application/use-cases/run-arrange-sync.use-case.js +0 -85
- package/dist/lib/arrange/application/use-cases/suggest-cn-groups.use-case.d.ts +0 -7
- package/dist/lib/arrange/application/use-cases/suggest-cn-groups.use-case.d.ts.map +0 -1
- package/dist/lib/arrange/application/use-cases/suggest-cn-groups.use-case.js +0 -10
- package/dist/lib/arrange/domain/arrange-analyze.service.d.ts +0 -12
- package/dist/lib/arrange/domain/arrange-analyze.service.d.ts.map +0 -1
- package/dist/lib/arrange/domain/arrange-analyze.service.js +0 -116
- package/dist/lib/arrange/domain/arrange-grouping.service.d.ts +0 -53
- package/dist/lib/arrange/domain/arrange-grouping.service.d.ts.map +0 -1
- package/dist/lib/arrange/domain/arrange-grouping.service.js +0 -106
- package/dist/lib/arrange/domain/ast/ast-helpers.helper.d.ts +0 -28
- package/dist/lib/arrange/domain/ast/ast-helpers.helper.d.ts.map +0 -1
- package/dist/lib/arrange/domain/ast/ast-helpers.helper.js +0 -130
- package/dist/lib/arrange/domain/ast/ast-node.model.d.ts +0 -179
- package/dist/lib/arrange/domain/ast/ast-node.model.d.ts.map +0 -1
- package/dist/lib/arrange/domain/ast/ast-node.model.js +0 -210
- package/dist/lib/arrange/domain/ast/collectors-cn.collector.d.ts +0 -7
- package/dist/lib/arrange/domain/ast/collectors-cn.collector.d.ts.map +0 -1
- package/dist/lib/arrange/domain/ast/collectors-cn.collector.js +0 -70
- package/dist/lib/arrange/domain/ast/collectors-jsx.collector.d.ts +0 -4
- package/dist/lib/arrange/domain/ast/collectors-jsx.collector.d.ts.map +0 -1
- package/dist/lib/arrange/domain/ast/collectors-jsx.collector.js +0 -21
- package/dist/lib/arrange/domain/ast/collectors-tv.collector.d.ts +0 -13
- package/dist/lib/arrange/domain/ast/collectors-tv.collector.d.ts.map +0 -1
- package/dist/lib/arrange/domain/ast/collectors-tv.collector.js +0 -302
- package/dist/lib/arrange/domain/ast/targets.model.d.ts +0 -8
- package/dist/lib/arrange/domain/ast/targets.model.d.ts.map +0 -1
- package/dist/lib/arrange/domain/ast/targets.model.js +0 -147
- package/dist/lib/arrange/domain/constants.domain.d.ts +0 -70
- package/dist/lib/arrange/domain/constants.domain.d.ts.map +0 -1
- package/dist/lib/arrange/domain/constants.domain.js +0 -182
- package/dist/lib/arrange/domain/errors.domain.d.ts +0 -14
- package/dist/lib/arrange/domain/errors.domain.d.ts.map +0 -1
- package/dist/lib/arrange/domain/errors.domain.js +0 -16
- package/dist/lib/arrange/domain/grouping.domain.d.ts +0 -41
- package/dist/lib/arrange/domain/grouping.domain.d.ts.map +0 -1
- package/dist/lib/arrange/domain/grouping.domain.js +0 -371
- package/dist/lib/arrange/domain/imports.domain.d.ts +0 -7
- package/dist/lib/arrange/domain/imports.domain.d.ts.map +0 -1
- package/dist/lib/arrange/domain/imports.domain.js +0 -80
- package/dist/lib/arrange/domain/source-text-formatters.formatter.d.ts +0 -16
- package/dist/lib/arrange/domain/source-text-formatters.formatter.d.ts.map +0 -1
- package/dist/lib/arrange/domain/source-text-formatters.formatter.js +0 -55
- package/dist/lib/arrange/domain/tokenizer.util.d.ts +0 -45
- package/dist/lib/arrange/domain/tokenizer.util.d.ts.map +0 -1
- package/dist/lib/arrange/domain/tokenizer.util.js +0 -469
- package/dist/lib/arrange/domain/types.domain.d.ts +0 -115
- package/dist/lib/arrange/domain/types.domain.d.ts.map +0 -1
- package/dist/lib/arrange/domain/types.domain.js +0 -10
- package/dist/lib/arrange/index.d.ts +0 -45
- package/dist/lib/arrange/index.d.ts.map +0 -1
- package/dist/lib/arrange/index.js +0 -41
- package/dist/lib/arrange/infra/arrange-sync-cli-options.adapter.d.ts +0 -14
- package/dist/lib/arrange/infra/arrange-sync-cli-options.adapter.d.ts.map +0 -1
- package/dist/lib/arrange/infra/domain-source-parser.adapter.d.ts +0 -11
- package/dist/lib/arrange/infra/domain-source-parser.adapter.d.ts.map +0 -1
- package/dist/lib/arrange/infra/domain-source-parser.adapter.js +0 -19
- package/dist/lib/arrange/infra/ensure-cn-import.adapter.d.ts +0 -3
- package/dist/lib/arrange/infra/ensure-cn-import.adapter.d.ts.map +0 -1
- package/dist/lib/arrange/infra/ensure-cn-import.adapter.js +0 -6
- package/dist/lib/arrange/infra/file-walker.adapter.d.ts +0 -8
- package/dist/lib/arrange/infra/file-walker.adapter.d.ts.map +0 -1
- package/dist/lib/arrange/infra/file-walker.adapter.js +0 -17
- package/dist/lib/arrange/infra/merge-cn-literal-pool-for-test.test-helper.d.ts +0 -8
- package/dist/lib/arrange/infra/merge-cn-literal-pool-for-test.test-helper.d.ts.map +0 -1
- package/dist/lib/arrange/infra/merge-cn-literal-pool-for-test.test-helper.js +0 -25
- package/dist/lib/arrange/infra/ts-ast-translator.adapter.d.ts +0 -10
- package/dist/lib/arrange/infra/ts-ast-translator.adapter.d.ts.map +0 -1
- package/dist/lib/arrange/infra/ts-ast-translator.adapter.js +0 -363
- package/dist/lib/arrange/presentation/arrange-prelude.presenter.d.ts +0 -14
- package/dist/lib/arrange/presentation/arrange-prelude.presenter.d.ts.map +0 -1
- package/dist/lib/arrange/presentation/arrange-prelude.presenter.js +0 -24
- package/dist/lib/arrange/presentation/formatters.presenter.d.ts +0 -3
- package/dist/lib/arrange/presentation/formatters.presenter.d.ts.map +0 -1
- package/dist/lib/arrange/presentation/formatters.presenter.js +0 -2
- package/dist/lib/arrange/presentation/present-analyze-cli.presenter.d.ts +0 -4
- package/dist/lib/arrange/presentation/present-analyze-cli.presenter.d.ts.map +0 -1
- package/dist/lib/arrange/presentation/present-analyze-cli.presenter.js +0 -4
- package/dist/lib/arrange/presentation/report.presenter.d.ts +0 -4
- package/dist/lib/arrange/presentation/report.presenter.d.ts.map +0 -1
- package/dist/lib/arrange/presentation/report.presenter.js +0 -37
- package/dist/lib/arrange/presentation/resolve-arrange-cli-target.presenter.d.ts +0 -2
- package/dist/lib/arrange/presentation/resolve-arrange-cli-target.presenter.d.ts.map +0 -1
- package/dist/lib/arrange/presentation/resolve-arrange-cli-target.presenter.js +0 -7
- package/dist/lib/config/domain/schema.domain.d.ts +0 -50
- package/dist/lib/config/domain/schema.domain.d.ts.map +0 -1
- package/dist/lib/config/domain/schema.domain.js +0 -43
- package/dist/lib/config/index.d.ts +0 -4
- package/dist/lib/config/index.d.ts.map +0 -1
- package/dist/lib/config/index.js +0 -2
- package/dist/lib/config/infra/loader.adapter.d.ts +0 -11
- package/dist/lib/config/infra/loader.adapter.d.ts.map +0 -1
- package/dist/lib/config/infra/loader.adapter.js +0 -90
- package/dist/lib/core/application/architecture-boundaries.policy.d.ts +0 -19
- package/dist/lib/core/application/architecture-boundaries.policy.d.ts.map +0 -1
- package/dist/lib/core/application/architecture-boundaries.policy.js +0 -370
- package/dist/lib/core/application/ports/cli-io.port.d.ts +0 -31
- package/dist/lib/core/application/ports/cli-io.port.d.ts.map +0 -1
- package/dist/lib/core/application/schema-parse.util.d.ts +0 -8
- package/dist/lib/core/application/schema-parse.util.d.ts.map +0 -1
- package/dist/lib/core/application/schema-parse.util.js +0 -20
- package/dist/lib/core/application/utils/caught-unknown-message.util.d.ts +0 -6
- package/dist/lib/core/application/utils/caught-unknown-message.util.d.ts.map +0 -1
- package/dist/lib/core/application/utils/caught-unknown-message.util.js +0 -34
- package/dist/lib/core/application/utils/verbose-diagnostics.util.d.ts +0 -5
- package/dist/lib/core/application/utils/verbose-diagnostics.util.d.ts.map +0 -1
- package/dist/lib/core/application/utils/verbose-diagnostics.util.js +0 -7
- package/dist/lib/core/domain/errors.domain.d.ts +0 -11
- package/dist/lib/core/domain/errors.domain.d.ts.map +0 -1
- package/dist/lib/core/domain/errors.domain.js +0 -9
- package/dist/lib/core/domain/result.model.d.ts +0 -17
- package/dist/lib/core/domain/result.model.d.ts.map +0 -1
- package/dist/lib/core/domain/result.model.js +0 -15
- package/dist/lib/core/infra/container.adapter.d.ts +0 -58
- package/dist/lib/core/infra/container.adapter.d.ts.map +0 -1
- package/dist/lib/core/infra/container.adapter.js +0 -80
- package/dist/lib/core/infra/logging-decorator.adapter.d.ts +0 -12
- package/dist/lib/core/infra/logging-decorator.adapter.d.ts.map +0 -1
- package/dist/lib/core/infra/logging-decorator.adapter.js +0 -75
- package/dist/lib/core/presentation/cli-executor.presenter.d.ts +0 -33
- package/dist/lib/core/presentation/cli-executor.presenter.d.ts.map +0 -1
- package/dist/lib/core/presentation/cli-executor.presenter.js +0 -73
- package/dist/lib/core/presentation/format-app-error.presenter.d.ts +0 -6
- package/dist/lib/core/presentation/format-app-error.presenter.d.ts.map +0 -1
- package/dist/lib/core/presentation/format-app-error.presenter.js +0 -19
- package/dist/lib/core/presentation/global-cli-options.presenter.d.ts +0 -9
- package/dist/lib/core/presentation/global-cli-options.presenter.d.ts.map +0 -1
- package/dist/lib/core/presentation/global-cli-options.presenter.js +0 -8
- package/dist/lib/core/presentation/load-codefast-config.presenter.d.ts +0 -8
- package/dist/lib/core/presentation/load-codefast-config.presenter.d.ts.map +0 -1
- package/dist/lib/core/presentation/load-codefast-config.presenter.js +0 -15
- package/dist/lib/core/presentation/parse-cli-schema.presenter.d.ts +0 -5
- package/dist/lib/core/presentation/parse-cli-schema.presenter.d.ts.map +0 -1
- package/dist/lib/core/presentation/parse-cli-schema.presenter.js +0 -4
- package/dist/lib/core/presentation/run-cli-use-case-after-parse.presenter.d.ts +0 -6
- package/dist/lib/core/presentation/run-cli-use-case-after-parse.presenter.d.ts.map +0 -1
- package/dist/lib/core/presentation/run-cli-use-case-after-parse.presenter.js +0 -17
- package/dist/lib/core/presentation/workspace-root-strict.presenter.d.ts +0 -5
- package/dist/lib/core/presentation/workspace-root-strict.presenter.d.ts.map +0 -1
- package/dist/lib/core/presentation/workspace-root-strict.presenter.js +0 -12
- package/dist/lib/infra/config-reporter.adapter.d.ts +0 -4
- package/dist/lib/infra/config-reporter.adapter.d.ts.map +0 -1
- package/dist/lib/infra/config-reporter.adapter.js +0 -9
- package/dist/lib/infra/fs-contract.port.d.ts +0 -2
- package/dist/lib/infra/fs-contract.port.d.ts.map +0 -1
- package/dist/lib/infra/node-io.adapter.d.ts +0 -4
- package/dist/lib/infra/node-io.adapter.d.ts.map +0 -1
- package/dist/lib/infra/node-io.adapter.js +0 -37
- package/dist/lib/infra/workspace/repo-root.adapter.d.ts +0 -7
- package/dist/lib/infra/workspace/repo-root.adapter.d.ts.map +0 -1
- package/dist/lib/infra/workspace/repo-root.adapter.js +0 -23
- package/dist/lib/mirror/application/ports/file-system-service.port.d.ts +0 -6
- package/dist/lib/mirror/application/ports/file-system-service.port.d.ts.map +0 -1
- package/dist/lib/mirror/application/ports/mirror-sync-reporter.port.d.ts +0 -27
- package/dist/lib/mirror/application/ports/mirror-sync-reporter.port.d.ts.map +0 -1
- package/dist/lib/mirror/application/ports/package-repository.port.d.ts +0 -16
- package/dist/lib/mirror/application/ports/package-repository.port.d.ts.map +0 -1
- package/dist/lib/mirror/application/ports/workspace-service.port.d.ts +0 -7
- package/dist/lib/mirror/application/ports/workspace-service.port.d.ts.map +0 -1
- package/dist/lib/mirror/application/requests/mirror-sync.request.d.ts +0 -10
- package/dist/lib/mirror/application/requests/mirror-sync.request.d.ts.map +0 -1
- package/dist/lib/mirror/application/requests/mirror-sync.request.js +0 -8
- package/dist/lib/mirror/application/use-cases/generate-mirror-exports.use-case.d.ts +0 -10
- package/dist/lib/mirror/application/use-cases/generate-mirror-exports.use-case.d.ts.map +0 -1
- package/dist/lib/mirror/application/use-cases/generate-mirror-exports.use-case.js +0 -271
- package/dist/lib/mirror/application/use-cases/run-mirror-sync.use-case.d.ts +0 -19
- package/dist/lib/mirror/application/use-cases/run-mirror-sync.use-case.d.ts.map +0 -1
- package/dist/lib/mirror/application/use-cases/run-mirror-sync.use-case.js +0 -168
- package/dist/lib/mirror/domain/constants.domain.d.ts +0 -6
- package/dist/lib/mirror/domain/constants.domain.d.ts.map +0 -1
- package/dist/lib/mirror/domain/constants.domain.js +0 -5
- package/dist/lib/mirror/domain/errors.domain.d.ts +0 -10
- package/dist/lib/mirror/domain/errors.domain.d.ts.map +0 -1
- package/dist/lib/mirror/domain/errors.domain.js +0 -12
- package/dist/lib/mirror/domain/types.domain.d.ts +0 -65
- package/dist/lib/mirror/domain/types.domain.d.ts.map +0 -1
- package/dist/lib/mirror/index.d.ts +0 -6
- package/dist/lib/mirror/index.d.ts.map +0 -1
- package/dist/lib/mirror/index.js +0 -1
- package/dist/lib/mirror/infra/dirent-list.adapter.d.ts +0 -9
- package/dist/lib/mirror/infra/dirent-list.adapter.d.ts.map +0 -1
- package/dist/lib/mirror/infra/dirent-list.adapter.js +0 -13
- package/dist/lib/mirror/infra/file-system-service.adapter.d.ts +0 -7
- package/dist/lib/mirror/infra/file-system-service.adapter.d.ts.map +0 -1
- package/dist/lib/mirror/infra/file-system-service.adapter.js +0 -47
- package/dist/lib/mirror/infra/mirror-sync-cli-options.adapter.d.ts +0 -14
- package/dist/lib/mirror/infra/mirror-sync-cli-options.adapter.d.ts.map +0 -1
- package/dist/lib/mirror/infra/mirror-sync-reporter.adapter.d.ts +0 -3
- package/dist/lib/mirror/infra/mirror-sync-reporter.adapter.d.ts.map +0 -1
- package/dist/lib/mirror/infra/mirror-sync-reporter.adapter.js +0 -13
- package/dist/lib/mirror/infra/package-filter.adapter.d.ts +0 -8
- package/dist/lib/mirror/infra/package-filter.adapter.d.ts.map +0 -1
- package/dist/lib/mirror/infra/package-filter.adapter.js +0 -33
- package/dist/lib/mirror/infra/package-repository.adapter.d.ts +0 -17
- package/dist/lib/mirror/infra/package-repository.adapter.d.ts.map +0 -1
- package/dist/lib/mirror/infra/package-repository.adapter.js +0 -17
- package/dist/lib/mirror/infra/path-normalizer.adapter.d.ts +0 -2
- package/dist/lib/mirror/infra/path-normalizer.adapter.d.ts.map +0 -1
- package/dist/lib/mirror/infra/path-normalizer.adapter.js +0 -4
- package/dist/lib/mirror/infra/update-pkg.adapter.d.ts +0 -19
- package/dist/lib/mirror/infra/update-pkg.adapter.d.ts.map +0 -1
- package/dist/lib/mirror/infra/update-pkg.adapter.js +0 -156
- package/dist/lib/mirror/infra/workspace-packages.adapter.d.ts +0 -26
- package/dist/lib/mirror/infra/workspace-packages.adapter.d.ts.map +0 -1
- package/dist/lib/mirror/infra/workspace-packages.adapter.js +0 -170
- package/dist/lib/mirror/infra/workspace-service.adapter.d.ts +0 -8
- package/dist/lib/mirror/infra/workspace-service.adapter.d.ts.map +0 -1
- package/dist/lib/mirror/infra/workspace-service.adapter.js +0 -10
- package/dist/lib/mirror/presentation/mirror-prelude.presenter.d.ts +0 -17
- package/dist/lib/mirror/presentation/mirror-prelude.presenter.d.ts.map +0 -1
- package/dist/lib/mirror/presentation/mirror-prelude.presenter.js +0 -35
- package/dist/lib/mirror/presentation/reporter.presenter.d.ts +0 -25
- package/dist/lib/mirror/presentation/reporter.presenter.d.ts.map +0 -1
- package/dist/lib/mirror/presentation/reporter.presenter.js +0 -140
- package/dist/lib/mirror/presentation/resolve-mirror-package-arg.presenter.d.ts +0 -11
- package/dist/lib/mirror/presentation/resolve-mirror-package-arg.presenter.d.ts.map +0 -1
- package/dist/lib/mirror/presentation/resolve-mirror-package-arg.presenter.js +0 -27
- package/dist/lib/shared/source-code/domain/text-edit.model.d.ts +0 -14
- package/dist/lib/shared/source-code/domain/text-edit.model.d.ts.map +0 -1
- package/dist/lib/shared/source-code/domain/text-edit.model.js +0 -30
- package/dist/lib/shared/source-code/infra/tsx-file-walk.adapter.d.ts +0 -4
- package/dist/lib/shared/source-code/infra/tsx-file-walk.adapter.d.ts.map +0 -1
- package/dist/lib/shared/source-code/infra/tsx-file-walk.adapter.js +0 -37
- package/dist/lib/tag/application/ports/target-resolver.port.d.ts +0 -6
- package/dist/lib/tag/application/ports/target-resolver.port.d.ts.map +0 -1
- package/dist/lib/tag/application/ports/typescript-tree-walk.port.d.ts +0 -6
- package/dist/lib/tag/application/ports/typescript-tree-walk.port.d.ts.map +0 -1
- package/dist/lib/tag/application/requests/tag-sync.request.d.ts +0 -10
- package/dist/lib/tag/application/requests/tag-sync.request.d.ts.map +0 -1
- package/dist/lib/tag/application/requests/tag-sync.request.js +0 -8
- package/dist/lib/tag/application/use-cases/run-tag-sync.use-case.d.ts +0 -23
- package/dist/lib/tag/application/use-cases/run-tag-sync.use-case.d.ts.map +0 -1
- package/dist/lib/tag/application/use-cases/run-tag-sync.use-case.js +0 -357
- package/dist/lib/tag/domain/types.domain.d.ts +0 -56
- package/dist/lib/tag/domain/types.domain.d.ts.map +0 -1
- package/dist/lib/tag/index.d.ts +0 -14
- package/dist/lib/tag/index.d.ts.map +0 -1
- package/dist/lib/tag/index.js +0 -10
- package/dist/lib/tag/infra/tag-sync-cli-options.adapter.d.ts +0 -14
- package/dist/lib/tag/infra/tag-sync-cli-options.adapter.d.ts.map +0 -1
- package/dist/lib/tag/infra/tag-target-candidates.adapter.d.ts +0 -4
- package/dist/lib/tag/infra/tag-target-candidates.adapter.d.ts.map +0 -1
- package/dist/lib/tag/infra/tag-target-candidates.adapter.js +0 -200
- package/dist/lib/tag/infra/tag-target-resolver.adapter.d.ts +0 -3
- package/dist/lib/tag/infra/tag-target-resolver.adapter.d.ts.map +0 -1
- package/dist/lib/tag/infra/tag-target-resolver.adapter.js +0 -4
- package/dist/lib/tag/infra/typescript-tree-walk.adapter.d.ts +0 -3
- package/dist/lib/tag/infra/typescript-tree-walk.adapter.d.ts.map +0 -1
- package/dist/lib/tag/infra/typescript-tree-walk.adapter.js +0 -4
- package/dist/lib/tag/presentation/colors.presenter.d.ts +0 -8
- package/dist/lib/tag/presentation/colors.presenter.d.ts.map +0 -1
- package/dist/lib/tag/presentation/colors.presenter.js +0 -9
- package/dist/lib/tag/presentation/resolve-tag-cli-target.presenter.d.ts +0 -8
- package/dist/lib/tag/presentation/resolve-tag-cli-target.presenter.d.ts.map +0 -1
- package/dist/lib/tag/presentation/resolve-tag-cli-target.presenter.js +0 -10
- package/dist/lib/tag/presentation/resolve-tag-workspace-root.presenter.d.ts +0 -8
- package/dist/lib/tag/presentation/resolve-tag-workspace-root.presenter.d.ts.map +0 -1
- package/dist/lib/tag/presentation/resolve-tag-workspace-root.presenter.js +0 -10
- package/dist/lib/tag/presentation/tag-prelude.presenter.d.ts +0 -15
- package/dist/lib/tag/presentation/tag-prelude.presenter.d.ts.map +0 -1
- package/dist/lib/tag/presentation/tag-prelude.presenter.js +0 -31
- package/dist/lib/tag/presentation/tag-sync.presenter.d.ts +0 -20
- package/dist/lib/tag/presentation/tag-sync.presenter.d.ts.map +0 -1
- package/dist/lib/tag/presentation/tag-sync.presenter.js +0 -92
- package/dist/program.d.ts +0 -4
- package/dist/program.d.ts.map +0 -1
- package/dist/program.js +0 -40
- /package/dist/lib/arrange/application/ports/{domain-source-parser.port.js → domain-source-parser.port.mjs} +0 -0
- /package/dist/lib/arrange/application/ports/{file-walker.port.js → file-walker.port.mjs} +0 -0
- /package/dist/lib/arrange/{infra/arrange-sync-cli-options.adapter.js → application/ports/group-file-preview.port.mjs} +0 -0
- /package/dist/lib/{core/application/ports/cli-io.port.js → arrange/application/requests/analyze-directory.request.mjs} +0 -0
- /package/dist/lib/{infra/fs-contract.port.js → arrange/application/requests/arrange-sync.request.mjs} +0 -0
- /package/dist/lib/{mirror/application/ports/file-system-service.port.js → arrange/application/requests/suggest-groups.request.mjs} +0 -0
- /package/dist/lib/{mirror/application/ports/mirror-sync-reporter.port.js → arrange/contracts/models.mjs} +0 -0
- /package/dist/lib/{mirror/application/ports/package-repository.port.js → arrange/contracts/presentation.contract.mjs} +0 -0
- /package/dist/lib/{mirror/application/ports/workspace-service.port.js → arrange/contracts/services.contract.mjs} +0 -0
- /package/dist/lib/{mirror/domain/types.domain.js → arrange/contracts/use-cases.contract.mjs} +0 -0
- /package/dist/lib/{mirror/infra/mirror-sync-cli-options.adapter.js → arrange/domain/types.domain.mjs} +0 -0
- /package/dist/lib/{tag/application/ports/target-resolver.port.js → arrange/infra/arrange-sync-cli-options.adapter.mjs} +0 -0
- /package/dist/lib/{tag/application/ports/typescript-tree-walk.port.js → config/application/ports/config-loader.port.mjs} +0 -0
- /package/dist/lib/{tag/domain/types.domain.js → config/domain/schema.domain.mjs} +0 -0
- /package/dist/lib/{tag/infra/tag-sync-cli-options.adapter.js → core/application/ports/cli-io.port.mjs} +0 -0
package/README.md
CHANGED
|
@@ -30,6 +30,18 @@ flowchart LR
|
|
|
30
30
|
|
|
31
31
|
---
|
|
32
32
|
|
|
33
|
+
## Exit codes
|
|
34
|
+
|
|
35
|
+
| Code | Meaning |
|
|
36
|
+
| ---- | --------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
37
|
+
| `0` | Success. |
|
|
38
|
+
| `1` | General failure (missing paths, infrastructure errors, partial failures such as `mirror sync` with package errors, or hook / run errors for `tag` / `arrange`). |
|
|
39
|
+
| `2` | Invalid invocation or input (Zod / schema validation for CLI requests). |
|
|
40
|
+
|
|
41
|
+
Human-readable errors and diagnostics go to **stderr**; primary command output goes to **stdout**.
|
|
42
|
+
|
|
43
|
+
---
|
|
44
|
+
|
|
33
45
|
## Installation
|
|
34
46
|
|
|
35
47
|
```bash
|
|
@@ -91,6 +103,16 @@ Groups a single class string without touching the filesystem. Useful for checkin
|
|
|
91
103
|
codefast arrange group "relative flex items-center h-10 w-full rounded-md bg-primary text-white hover:bg-primary/90"
|
|
92
104
|
```
|
|
93
105
|
|
|
106
|
+
### `--json` (machine-readable output)
|
|
107
|
+
|
|
108
|
+
Use **`--json`** on any `arrange` subcommand to print **one JSON object** on stdout (human tables / colors are suppressed):
|
|
109
|
+
|
|
110
|
+
| Subcommand | Payload highlights |
|
|
111
|
+
| ------------------- | ------------------------------------------------------------------------------------------------------------------------------------ |
|
|
112
|
+
| `analyze` | `schemaVersion`, `analyzeRootPath`, full `report` (same data as the human report). |
|
|
113
|
+
| `preview` / `apply` | `schemaVersion`, `write`, `ok` (false if `onAfterWrite` hook failed), full `result` (`filePaths`, `modifiedFiles`, `totalFound`, …). |
|
|
114
|
+
| `group` | `schemaVersion`, `primaryLine`, `bucketsCommentLine`. |
|
|
115
|
+
|
|
94
116
|
---
|
|
95
117
|
|
|
96
118
|
## `mirror sync`
|
|
@@ -101,8 +123,11 @@ Scans built `dist/` trees and regenerates the `exports` field in each `package.j
|
|
|
101
123
|
codefast mirror sync # all packages in the workspace
|
|
102
124
|
codefast mirror sync packages/ui # a single package path
|
|
103
125
|
codefast mirror sync -v # verbose output
|
|
126
|
+
codefast mirror sync --json # one JSON object on stdout (for scripts / CI)
|
|
104
127
|
```
|
|
105
128
|
|
|
129
|
+
`--json` prints a single line of JSON with `schemaVersion`, `ok`, `elapsedSeconds`, and `stats` (same counters as the human summary). Human progress and styling are suppressed; use normal mode for interactive runs.
|
|
130
|
+
|
|
106
131
|
> **Note:** Packages must be built first so `dist/` exists. Run your build step before `mirror sync`.
|
|
107
132
|
|
|
108
133
|
### Configuration
|
|
@@ -155,12 +180,12 @@ export default {
|
|
|
155
180
|
tag: {
|
|
156
181
|
onAfterWrite: ({ files }) => {
|
|
157
182
|
console.log(`Formatting ${files.length} files with Oxc...`);
|
|
158
|
-
execSync(`
|
|
183
|
+
execSync(`oxfmt ${files.join(" ")}`, { stdio: "inherit" });
|
|
159
184
|
},
|
|
160
185
|
},
|
|
161
186
|
arrange: {
|
|
162
187
|
onAfterWrite: ({ files }) => {
|
|
163
|
-
execSync(`
|
|
188
|
+
execSync(`oxfmt ${files.join(" ")}`, { stdio: "inherit" });
|
|
164
189
|
},
|
|
165
190
|
},
|
|
166
191
|
};
|
|
@@ -171,7 +196,7 @@ Hook contract:
|
|
|
171
196
|
- `tag.onAfterWrite?.({ files })` runs after `codefast tag` writes files.
|
|
172
197
|
- `arrange.onAfterWrite?.({ files })` runs after `codefast arrange apply` writes files.
|
|
173
198
|
- Hooks support both sync and async functions (`void | Promise<void>`).
|
|
174
|
-
- Hook
|
|
199
|
+
- Hook failures are reported on stderr; `tag` and `arrange apply` exit with code `1` when a hook fails (see [Exit codes](#exit-codes)).
|
|
175
200
|
|
|
176
201
|
---
|
|
177
202
|
|
|
@@ -183,6 +208,7 @@ Scans `.ts` / `.tsx` source files and annotates exported declarations with `@sin
|
|
|
183
208
|
codefast tag # annotate exports in ./src
|
|
184
209
|
codefast tag packages/ui/src # annotate a custom target
|
|
185
210
|
codefast annotate --dry-run # preview only, do not write files
|
|
211
|
+
codefast tag --json # one JSON object on stdout (for scripts / CI)
|
|
186
212
|
```
|
|
187
213
|
|
|
188
214
|
What it updates:
|
package/dist/{bin.js → bin.mjs}
RENAMED
|
@@ -0,0 +1,325 @@
|
|
|
1
|
+
import { formatArrangeAnalyzeJsonOutput } from "../lib/arrange/application/arrange-analyze-json.format.mjs";
|
|
2
|
+
import { formatArrangeGroupJsonOutput } from "../lib/arrange/application/arrange-group-json.format.mjs";
|
|
3
|
+
import { exitCodeForArrangeSyncResult } from "../lib/arrange/application/arrange-sync-cli-result.mjs";
|
|
4
|
+
import { formatArrangeSyncJsonOutput } from "../lib/arrange/application/arrange-sync-json.format.mjs";
|
|
5
|
+
import { AnalyzeDirectoryUseCaseToken, PrepareArrangeOrchestratorToken, PresentAnalyzeReportPresenterToken, RunArrangeSyncUseCaseToken, SuggestCnGroupsUseCaseToken } from "../lib/arrange/contracts/tokens.mjs";
|
|
6
|
+
import { arrangeAnalyzeDirectoryRequestSchema, arrangeSuggestGroupsRequestSchema, arrangeSyncRunRequestSchema } from "../lib/arrange/presentation/arrange-cli-schema.presenter.mjs";
|
|
7
|
+
import { presentArrangeSyncResult } from "../lib/arrange/presentation/arrange-sync.presenter.mjs";
|
|
8
|
+
import { CliLoggerToken } from "../lib/core/operational/contracts/tokens.mjs";
|
|
9
|
+
import { parseWithCliSchema } from "../lib/core/presentation/parse-cli-schema.presenter.mjs";
|
|
10
|
+
import { consumeCliAppError } from "../lib/core/presentation/cli-executor.presenter.mjs";
|
|
11
|
+
import process from "node:process";
|
|
12
|
+
import { Option } from "commander";
|
|
13
|
+
import { inject, injectable } from "@codefast/di";
|
|
14
|
+
//#region src/commands/arrange.ts
|
|
15
|
+
function toPrimitive(input, hint) {
|
|
16
|
+
if (typeof input !== "object" || input === null) return input;
|
|
17
|
+
var prim = input[Symbol.toPrimitive];
|
|
18
|
+
if (prim !== void 0) {
|
|
19
|
+
var res = prim.call(input, hint || "default");
|
|
20
|
+
if (typeof res !== "object") return res;
|
|
21
|
+
throw new TypeError("@@toPrimitive must return a primitive value.");
|
|
22
|
+
}
|
|
23
|
+
return (hint === "string" ? String : Number)(input);
|
|
24
|
+
}
|
|
25
|
+
function toPropertyKey(arg) {
|
|
26
|
+
var key = toPrimitive(arg, "string");
|
|
27
|
+
return typeof key === "symbol" ? key : String(key);
|
|
28
|
+
}
|
|
29
|
+
function checkInRHS(value) {
|
|
30
|
+
if (Object(value) !== value) throw TypeError("right-hand side of 'in' should be an object, got " + (value !== null ? typeof value : "null"));
|
|
31
|
+
return value;
|
|
32
|
+
}
|
|
33
|
+
function setFunctionName(fn, name, prefix) {
|
|
34
|
+
if (typeof name === "symbol") {
|
|
35
|
+
name = name.description;
|
|
36
|
+
name = name ? "[" + name + "]" : "";
|
|
37
|
+
}
|
|
38
|
+
try {
|
|
39
|
+
Object.defineProperty(fn, "name", {
|
|
40
|
+
configurable: true,
|
|
41
|
+
value: prefix ? prefix + " " + name : name
|
|
42
|
+
});
|
|
43
|
+
} catch (_) {}
|
|
44
|
+
return fn;
|
|
45
|
+
}
|
|
46
|
+
function _apply_decs_2311(targetClass, classDecs, memberDecs, classDecsHaveThis, instanceBrand, parentClass) {
|
|
47
|
+
var symbolMetadata = Symbol.metadata || Symbol.for("Symbol.metadata");
|
|
48
|
+
var defineProperty = Object.defineProperty;
|
|
49
|
+
var create = Object.create;
|
|
50
|
+
var metadata;
|
|
51
|
+
var existingNonFields = [create(null), create(null)];
|
|
52
|
+
var hasClassDecs = classDecs.length;
|
|
53
|
+
var _;
|
|
54
|
+
function createRunInitializers(initializers, useStaticThis, hasValue) {
|
|
55
|
+
return function(thisArg, value) {
|
|
56
|
+
if (useStaticThis) {
|
|
57
|
+
value = thisArg;
|
|
58
|
+
thisArg = targetClass;
|
|
59
|
+
}
|
|
60
|
+
for (var i = 0; i < initializers.length; i++) value = initializers[i].apply(thisArg, hasValue ? [value] : []);
|
|
61
|
+
return hasValue ? value : thisArg;
|
|
62
|
+
};
|
|
63
|
+
}
|
|
64
|
+
function assertCallable(fn, hint1, hint2, throwUndefined) {
|
|
65
|
+
if (typeof fn !== "function") {
|
|
66
|
+
if (throwUndefined || fn !== void 0) throw new TypeError(hint1 + " must " + (hint2 || "be") + " a function" + (throwUndefined ? "" : " or undefined"));
|
|
67
|
+
}
|
|
68
|
+
return fn;
|
|
69
|
+
}
|
|
70
|
+
function applyDec(Class, decInfo, decoratorsHaveThis, name, kind, initializers, ret, isStatic, isPrivate, isField, hasPrivateBrand) {
|
|
71
|
+
function assertInstanceIfPrivate(target) {
|
|
72
|
+
if (!hasPrivateBrand(target)) throw new TypeError("Attempted to access private element on non-instance");
|
|
73
|
+
}
|
|
74
|
+
var decs = [].concat(decInfo[0]);
|
|
75
|
+
var decVal = decInfo[3];
|
|
76
|
+
var isClass = !ret;
|
|
77
|
+
var isAccessor = kind === 1;
|
|
78
|
+
var isGetter = kind === 3;
|
|
79
|
+
var isSetter = kind === 4;
|
|
80
|
+
var isMethod = kind === 2;
|
|
81
|
+
function bindPropCall(name, useStaticThis, before) {
|
|
82
|
+
return function(_this, value) {
|
|
83
|
+
if (useStaticThis) {
|
|
84
|
+
value = _this;
|
|
85
|
+
_this = Class;
|
|
86
|
+
}
|
|
87
|
+
if (before) before(_this);
|
|
88
|
+
return desc[name].call(_this, value);
|
|
89
|
+
};
|
|
90
|
+
}
|
|
91
|
+
var desc1 = {};
|
|
92
|
+
var init = [];
|
|
93
|
+
var key = isGetter ? "get" : isSetter || isAccessor ? "set" : "value";
|
|
94
|
+
if (!isClass) {
|
|
95
|
+
if (isPrivate) {
|
|
96
|
+
if (isField || isAccessor) desc1 = {
|
|
97
|
+
get: setFunctionName(function() {
|
|
98
|
+
return decVal(this);
|
|
99
|
+
}, name, "get"),
|
|
100
|
+
set: function(value) {
|
|
101
|
+
decInfo[4](this, value);
|
|
102
|
+
}
|
|
103
|
+
};
|
|
104
|
+
else desc1[key] = decVal;
|
|
105
|
+
if (!isField) setFunctionName(desc1[key], name, isMethod ? "" : key);
|
|
106
|
+
} else if (!isField) desc1 = Object.getOwnPropertyDescriptor(Class, name);
|
|
107
|
+
if (!isField && !isPrivate) {
|
|
108
|
+
_ = existingNonFields[+isStatic][name];
|
|
109
|
+
if (_ && (_ ^ kind) !== 7) throw new Error("Decorating two elements with the same name (" + desc1[key].name + ") is not supported yet");
|
|
110
|
+
existingNonFields[+isStatic][name] = kind < 3 ? 1 : kind;
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
var newValue = Class;
|
|
114
|
+
for (var i = decs.length - 1; i >= 0; i -= decoratorsHaveThis ? 2 : 1) {
|
|
115
|
+
var dec = assertCallable(decs[i], "A decorator", "be", true);
|
|
116
|
+
var decThis = decoratorsHaveThis ? decs[i - 1] : void 0;
|
|
117
|
+
var decoratorFinishedRef = {};
|
|
118
|
+
var ctx = {
|
|
119
|
+
kind: [
|
|
120
|
+
"field",
|
|
121
|
+
"accessor",
|
|
122
|
+
"method",
|
|
123
|
+
"getter",
|
|
124
|
+
"setter",
|
|
125
|
+
"class"
|
|
126
|
+
][kind],
|
|
127
|
+
name,
|
|
128
|
+
metadata,
|
|
129
|
+
addInitializer: (function(decoratorFinishedRef, initializer) {
|
|
130
|
+
if (decoratorFinishedRef.v) throw new TypeError("attempted to call addInitializer after decoration was finished");
|
|
131
|
+
assertCallable(initializer, "An initializer", "be", true);
|
|
132
|
+
initializers.push(initializer);
|
|
133
|
+
}).bind(null, decoratorFinishedRef)
|
|
134
|
+
};
|
|
135
|
+
if (isClass) {
|
|
136
|
+
_ = dec.call(decThis, newValue, ctx);
|
|
137
|
+
decoratorFinishedRef.v = 1;
|
|
138
|
+
if (assertCallable(_, "class decorators", "return")) newValue = _;
|
|
139
|
+
continue;
|
|
140
|
+
}
|
|
141
|
+
ctx.static = isStatic;
|
|
142
|
+
ctx.private = isPrivate;
|
|
143
|
+
_ = ctx.access = { has: isPrivate ? hasPrivateBrand.bind() : function(target) {
|
|
144
|
+
return name in target;
|
|
145
|
+
} };
|
|
146
|
+
if (!isSetter) _.get = isPrivate ? isMethod ? function(_this) {
|
|
147
|
+
assertInstanceIfPrivate(_this);
|
|
148
|
+
return desc1.value;
|
|
149
|
+
} : bindPropCall("get", 0, assertInstanceIfPrivate) : function(target) {
|
|
150
|
+
return target[name];
|
|
151
|
+
};
|
|
152
|
+
if (!isMethod && !isGetter) _.set = isPrivate ? bindPropCall("set", 0, assertInstanceIfPrivate) : function(target, value) {
|
|
153
|
+
target[name] = value;
|
|
154
|
+
};
|
|
155
|
+
newValue = dec.call(decThis, isAccessor ? {
|
|
156
|
+
get: desc1.get,
|
|
157
|
+
set: desc1.set
|
|
158
|
+
} : desc1[key], ctx);
|
|
159
|
+
decoratorFinishedRef.v = 1;
|
|
160
|
+
if (isAccessor) {
|
|
161
|
+
if (typeof newValue === "object" && newValue) {
|
|
162
|
+
if (_ = assertCallable(newValue.get, "accessor.get")) desc1.get = _;
|
|
163
|
+
if (_ = assertCallable(newValue.set, "accessor.set")) desc1.set = _;
|
|
164
|
+
if (_ = assertCallable(newValue.init, "accessor.init")) init.unshift(_);
|
|
165
|
+
} else if (newValue !== void 0) throw new TypeError("accessor decorators must return an object with get, set, or init properties or undefined");
|
|
166
|
+
} else if (assertCallable(newValue, (isField ? "field" : "method") + " decorators", "return")) if (isField) init.unshift(newValue);
|
|
167
|
+
else desc1[key] = newValue;
|
|
168
|
+
}
|
|
169
|
+
if (kind < 2) ret.push(createRunInitializers(init, isStatic, 1), createRunInitializers(initializers, isStatic, 0));
|
|
170
|
+
if (!isField && !isClass) if (isPrivate) if (isAccessor) ret.splice(-1, 0, bindPropCall("get", isStatic), bindPropCall("set", isStatic));
|
|
171
|
+
else ret.push(isMethod ? desc1[key] : assertCallable.call.bind(desc1[key]));
|
|
172
|
+
else defineProperty(Class, name, desc1);
|
|
173
|
+
return newValue;
|
|
174
|
+
}
|
|
175
|
+
function applyMemberDecs() {
|
|
176
|
+
var ret = [];
|
|
177
|
+
var protoInitializers;
|
|
178
|
+
var staticInitializers;
|
|
179
|
+
var pushInitializers = function(initializers) {
|
|
180
|
+
if (initializers) ret.push(createRunInitializers(initializers));
|
|
181
|
+
};
|
|
182
|
+
var applyMemberDecsOfKind = function(isStatic, isField) {
|
|
183
|
+
for (var i = 0; i < memberDecs.length; i++) {
|
|
184
|
+
var decInfo = memberDecs[i];
|
|
185
|
+
var kind = decInfo[1];
|
|
186
|
+
var kindOnly = kind & 7;
|
|
187
|
+
if ((kind & 8) == isStatic && !kindOnly == isField) {
|
|
188
|
+
var name = decInfo[2];
|
|
189
|
+
var isPrivate = !!decInfo[3];
|
|
190
|
+
var decoratorsHaveThis = kind & 16;
|
|
191
|
+
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(_) {
|
|
192
|
+
return checkInRHS(_) === targetClass;
|
|
193
|
+
} : instanceBrand);
|
|
194
|
+
}
|
|
195
|
+
}
|
|
196
|
+
};
|
|
197
|
+
applyMemberDecsOfKind(8, 0);
|
|
198
|
+
applyMemberDecsOfKind(0, 0);
|
|
199
|
+
applyMemberDecsOfKind(8, 1);
|
|
200
|
+
applyMemberDecsOfKind(0, 1);
|
|
201
|
+
pushInitializers(protoInitializers);
|
|
202
|
+
pushInitializers(staticInitializers);
|
|
203
|
+
return ret;
|
|
204
|
+
}
|
|
205
|
+
function defineMetadata(Class) {
|
|
206
|
+
return defineProperty(Class, symbolMetadata, {
|
|
207
|
+
configurable: true,
|
|
208
|
+
enumerable: true,
|
|
209
|
+
value: metadata
|
|
210
|
+
});
|
|
211
|
+
}
|
|
212
|
+
if (parentClass !== void 0) metadata = parentClass[symbolMetadata];
|
|
213
|
+
metadata = create(metadata == null ? null : metadata);
|
|
214
|
+
_ = applyMemberDecs();
|
|
215
|
+
if (!hasClassDecs) defineMetadata(targetClass);
|
|
216
|
+
return {
|
|
217
|
+
e: _,
|
|
218
|
+
get c() {
|
|
219
|
+
var initializers = [];
|
|
220
|
+
return hasClassDecs && [defineMetadata(targetClass = applyDec(targetClass, [classDecs], classDecsHaveThis, targetClass.name, 5, initializers)), createRunInitializers(initializers, 1)];
|
|
221
|
+
}
|
|
222
|
+
};
|
|
223
|
+
}
|
|
224
|
+
let _dec, _initClass;
|
|
225
|
+
function withClassNameOption() {
|
|
226
|
+
return new Option("--with-classname, --with-class-name", "Append className as final cn() argument").default(false);
|
|
227
|
+
}
|
|
228
|
+
_dec = injectable([
|
|
229
|
+
inject(CliLoggerToken),
|
|
230
|
+
inject(PrepareArrangeOrchestratorToken),
|
|
231
|
+
inject(AnalyzeDirectoryUseCaseToken),
|
|
232
|
+
inject(RunArrangeSyncUseCaseToken),
|
|
233
|
+
inject(SuggestCnGroupsUseCaseToken),
|
|
234
|
+
inject(PresentAnalyzeReportPresenterToken)
|
|
235
|
+
]);
|
|
236
|
+
let _ArrangeCommand;
|
|
237
|
+
(class {
|
|
238
|
+
logger;
|
|
239
|
+
prepareTargetWorkspaceAndConfig;
|
|
240
|
+
analyzeDirectory;
|
|
241
|
+
runArrangeSync;
|
|
242
|
+
suggestCnGroups;
|
|
243
|
+
presentAnalyzeReport;
|
|
244
|
+
static {
|
|
245
|
+
({c: [_ArrangeCommand, _initClass]} = _apply_decs_2311(this, [_dec], []));
|
|
246
|
+
}
|
|
247
|
+
constructor(logger, prepareTargetWorkspaceAndConfig, analyzeDirectory, runArrangeSync, suggestCnGroups, presentAnalyzeReport) {
|
|
248
|
+
this.logger = logger;
|
|
249
|
+
this.prepareTargetWorkspaceAndConfig = prepareTargetWorkspaceAndConfig;
|
|
250
|
+
this.analyzeDirectory = analyzeDirectory;
|
|
251
|
+
this.runArrangeSync = runArrangeSync;
|
|
252
|
+
this.suggestCnGroups = suggestCnGroups;
|
|
253
|
+
this.presentAnalyzeReport = presentAnalyzeReport;
|
|
254
|
+
}
|
|
255
|
+
name = "arrange";
|
|
256
|
+
description = "Analyze and regroup Tailwind classes in cn() / tv() calls (Tailwind v4)";
|
|
257
|
+
register(program) {
|
|
258
|
+
const arrange = program.command(this.name).description(this.description);
|
|
259
|
+
arrange.command("analyze").description("Report long strings, nested cn in tv(), and related findings").argument("[target]", "Directory or file (default: nearest package directory from cwd)").option("--json", "Print one JSON object on stdout instead of a human report", false).action((target, options) => this.executeAnalyze(target, options));
|
|
260
|
+
arrange.command("preview").description("Dry-run: print suggested replacements without writing files").argument("[target]", "Directory or file (default: nearest package directory from cwd)").addOption(withClassNameOption()).option("--cn-import <spec>", "Override module specifier when adding cn import").option("--json", "Print one JSON object on stdout (suppresses human progress)", false).action((target, opts) => this.executePreviewOrApply(false, target, opts));
|
|
261
|
+
arrange.command("apply").description("Apply grouping and cn-in-tv unwrap edits to files").argument("[target]", "Directory or file (default: nearest package directory from cwd)").addOption(withClassNameOption()).option("--cn-import <spec>", "Override module specifier when adding cn import").option("--json", "Print one JSON object on stdout (suppresses human progress)", false).action((target, opts) => this.executePreviewOrApply(true, target, opts));
|
|
262
|
+
arrange.command("group").description("Try grouping on a pasted class string (stdout: cn(...) or tv array with --tv)").argument("[tokens...]", "Class tokens (quote a single string if it contains spaces)").option("--tv", "Emit tv()-style array instead of cn() call", false).addOption(withClassNameOption()).option("--json", "Print one JSON object on stdout instead of plain lines", false).action((tokens, opts) => this.executeGroup(tokens, opts));
|
|
263
|
+
}
|
|
264
|
+
async executeAnalyze(target, options) {
|
|
265
|
+
const prelude = await this.prepareTargetWorkspaceAndConfig.execute({
|
|
266
|
+
currentWorkingDirectory: process.cwd(),
|
|
267
|
+
rawTarget: target
|
|
268
|
+
});
|
|
269
|
+
if (!consumeCliAppError(this.logger, prelude)) return;
|
|
270
|
+
const { resolvedTarget } = prelude.value;
|
|
271
|
+
const parsed = parseWithCliSchema(arrangeAnalyzeDirectoryRequestSchema, {
|
|
272
|
+
analyzeRootPath: resolvedTarget,
|
|
273
|
+
json: options?.json
|
|
274
|
+
});
|
|
275
|
+
if (!consumeCliAppError(this.logger, parsed)) return;
|
|
276
|
+
const outcome = this.analyzeDirectory.execute(parsed.value);
|
|
277
|
+
if (!consumeCliAppError(this.logger, outcome)) return;
|
|
278
|
+
if (parsed.value.json) this.logger.out(formatArrangeAnalyzeJsonOutput(resolvedTarget, outcome.value));
|
|
279
|
+
else this.presentAnalyzeReport.present(resolvedTarget, outcome.value);
|
|
280
|
+
}
|
|
281
|
+
async executePreviewOrApply(write, target, opts) {
|
|
282
|
+
const prelude = await this.prepareTargetWorkspaceAndConfig.execute({
|
|
283
|
+
currentWorkingDirectory: process.cwd(),
|
|
284
|
+
rawTarget: target
|
|
285
|
+
});
|
|
286
|
+
if (!consumeCliAppError(this.logger, prelude)) return;
|
|
287
|
+
const { resolvedTarget, rootDir, config } = prelude.value;
|
|
288
|
+
const parsed = parseWithCliSchema(arrangeSyncRunRequestSchema, {
|
|
289
|
+
rootDir,
|
|
290
|
+
targetPath: resolvedTarget,
|
|
291
|
+
write,
|
|
292
|
+
json: opts.json,
|
|
293
|
+
withClassName: opts.withClassName,
|
|
294
|
+
cnImport: opts.cnImport,
|
|
295
|
+
config: config.arrange ?? {}
|
|
296
|
+
});
|
|
297
|
+
if (!consumeCliAppError(this.logger, parsed)) return;
|
|
298
|
+
const outcome = await this.runArrangeSync.execute(parsed.value);
|
|
299
|
+
if (!consumeCliAppError(this.logger, outcome)) return;
|
|
300
|
+
if (parsed.value.json) {
|
|
301
|
+
this.logger.out(formatArrangeSyncJsonOutput(outcome.value, write));
|
|
302
|
+
process.exitCode = exitCodeForArrangeSyncResult(outcome.value);
|
|
303
|
+
} else process.exitCode = presentArrangeSyncResult(this.logger, outcome.value, write);
|
|
304
|
+
}
|
|
305
|
+
async executeGroup(tokens, opts) {
|
|
306
|
+
const parsed = parseWithCliSchema(arrangeSuggestGroupsRequestSchema, {
|
|
307
|
+
inlineClasses: tokens.join(" ").trim(),
|
|
308
|
+
emitTvStyleArray: !!opts.tv,
|
|
309
|
+
trailingClassName: !!opts.withClassName,
|
|
310
|
+
json: opts.json
|
|
311
|
+
});
|
|
312
|
+
if (!consumeCliAppError(this.logger, parsed)) return;
|
|
313
|
+
const output = this.suggestCnGroups.execute(parsed.value);
|
|
314
|
+
if (parsed.value.json) this.logger.out(formatArrangeGroupJsonOutput(output));
|
|
315
|
+
else {
|
|
316
|
+
this.logger.out(output.primaryLine);
|
|
317
|
+
this.logger.out(output.bucketsCommentLine);
|
|
318
|
+
}
|
|
319
|
+
}
|
|
320
|
+
static {
|
|
321
|
+
_initClass();
|
|
322
|
+
}
|
|
323
|
+
});
|
|
324
|
+
//#endregion
|
|
325
|
+
export { _ArrangeCommand as ArrangeCommand };
|
|
@@ -0,0 +1,267 @@
|
|
|
1
|
+
import "../lib/core/domain/cli-exit-codes.domain.mjs";
|
|
2
|
+
import { CliLoggerToken } from "../lib/core/operational/contracts/tokens.mjs";
|
|
3
|
+
import { parseWithCliSchema } from "../lib/core/presentation/parse-cli-schema.presenter.mjs";
|
|
4
|
+
import { consumeCliAppError, runCliResultAsync } from "../lib/core/presentation/cli-executor.presenter.mjs";
|
|
5
|
+
import { PrepareMirrorOrchestratorToken, RunMirrorSyncUseCaseToken } from "../lib/mirror/contracts/tokens.mjs";
|
|
6
|
+
import { mirrorSyncRunRequestSchema } from "../lib/mirror/presentation/mirror-cli-schema.presenter.mjs";
|
|
7
|
+
import process from "node:process";
|
|
8
|
+
import { inject, injectable } from "@codefast/di";
|
|
9
|
+
//#region src/commands/mirror.ts
|
|
10
|
+
function toPrimitive(input, hint) {
|
|
11
|
+
if (typeof input !== "object" || input === null) return input;
|
|
12
|
+
var prim = input[Symbol.toPrimitive];
|
|
13
|
+
if (prim !== void 0) {
|
|
14
|
+
var res = prim.call(input, hint || "default");
|
|
15
|
+
if (typeof res !== "object") return res;
|
|
16
|
+
throw new TypeError("@@toPrimitive must return a primitive value.");
|
|
17
|
+
}
|
|
18
|
+
return (hint === "string" ? String : Number)(input);
|
|
19
|
+
}
|
|
20
|
+
function toPropertyKey(arg) {
|
|
21
|
+
var key = toPrimitive(arg, "string");
|
|
22
|
+
return typeof key === "symbol" ? key : String(key);
|
|
23
|
+
}
|
|
24
|
+
function checkInRHS(value) {
|
|
25
|
+
if (Object(value) !== value) throw TypeError("right-hand side of 'in' should be an object, got " + (value !== null ? typeof value : "null"));
|
|
26
|
+
return value;
|
|
27
|
+
}
|
|
28
|
+
function setFunctionName(fn, name, prefix) {
|
|
29
|
+
if (typeof name === "symbol") {
|
|
30
|
+
name = name.description;
|
|
31
|
+
name = name ? "[" + name + "]" : "";
|
|
32
|
+
}
|
|
33
|
+
try {
|
|
34
|
+
Object.defineProperty(fn, "name", {
|
|
35
|
+
configurable: true,
|
|
36
|
+
value: prefix ? prefix + " " + name : name
|
|
37
|
+
});
|
|
38
|
+
} catch (_) {}
|
|
39
|
+
return fn;
|
|
40
|
+
}
|
|
41
|
+
function _apply_decs_2311(targetClass, classDecs, memberDecs, classDecsHaveThis, instanceBrand, parentClass) {
|
|
42
|
+
var symbolMetadata = Symbol.metadata || Symbol.for("Symbol.metadata");
|
|
43
|
+
var defineProperty = Object.defineProperty;
|
|
44
|
+
var create = Object.create;
|
|
45
|
+
var metadata;
|
|
46
|
+
var existingNonFields = [create(null), create(null)];
|
|
47
|
+
var hasClassDecs = classDecs.length;
|
|
48
|
+
var _;
|
|
49
|
+
function createRunInitializers(initializers, useStaticThis, hasValue) {
|
|
50
|
+
return function(thisArg, value) {
|
|
51
|
+
if (useStaticThis) {
|
|
52
|
+
value = thisArg;
|
|
53
|
+
thisArg = targetClass;
|
|
54
|
+
}
|
|
55
|
+
for (var i = 0; i < initializers.length; i++) value = initializers[i].apply(thisArg, hasValue ? [value] : []);
|
|
56
|
+
return hasValue ? value : thisArg;
|
|
57
|
+
};
|
|
58
|
+
}
|
|
59
|
+
function assertCallable(fn, hint1, hint2, throwUndefined) {
|
|
60
|
+
if (typeof fn !== "function") {
|
|
61
|
+
if (throwUndefined || fn !== void 0) throw new TypeError(hint1 + " must " + (hint2 || "be") + " a function" + (throwUndefined ? "" : " or undefined"));
|
|
62
|
+
}
|
|
63
|
+
return fn;
|
|
64
|
+
}
|
|
65
|
+
function applyDec(Class, decInfo, decoratorsHaveThis, name, kind, initializers, ret, isStatic, isPrivate, isField, hasPrivateBrand) {
|
|
66
|
+
function assertInstanceIfPrivate(target) {
|
|
67
|
+
if (!hasPrivateBrand(target)) throw new TypeError("Attempted to access private element on non-instance");
|
|
68
|
+
}
|
|
69
|
+
var decs = [].concat(decInfo[0]);
|
|
70
|
+
var decVal = decInfo[3];
|
|
71
|
+
var isClass = !ret;
|
|
72
|
+
var isAccessor = kind === 1;
|
|
73
|
+
var isGetter = kind === 3;
|
|
74
|
+
var isSetter = kind === 4;
|
|
75
|
+
var isMethod = kind === 2;
|
|
76
|
+
function bindPropCall(name, useStaticThis, before) {
|
|
77
|
+
return function(_this, value) {
|
|
78
|
+
if (useStaticThis) {
|
|
79
|
+
value = _this;
|
|
80
|
+
_this = Class;
|
|
81
|
+
}
|
|
82
|
+
if (before) before(_this);
|
|
83
|
+
return desc[name].call(_this, value);
|
|
84
|
+
};
|
|
85
|
+
}
|
|
86
|
+
var desc1 = {};
|
|
87
|
+
var init = [];
|
|
88
|
+
var key = isGetter ? "get" : isSetter || isAccessor ? "set" : "value";
|
|
89
|
+
if (!isClass) {
|
|
90
|
+
if (isPrivate) {
|
|
91
|
+
if (isField || isAccessor) desc1 = {
|
|
92
|
+
get: setFunctionName(function() {
|
|
93
|
+
return decVal(this);
|
|
94
|
+
}, name, "get"),
|
|
95
|
+
set: function(value) {
|
|
96
|
+
decInfo[4](this, value);
|
|
97
|
+
}
|
|
98
|
+
};
|
|
99
|
+
else desc1[key] = decVal;
|
|
100
|
+
if (!isField) setFunctionName(desc1[key], name, isMethod ? "" : key);
|
|
101
|
+
} else if (!isField) desc1 = Object.getOwnPropertyDescriptor(Class, name);
|
|
102
|
+
if (!isField && !isPrivate) {
|
|
103
|
+
_ = existingNonFields[+isStatic][name];
|
|
104
|
+
if (_ && (_ ^ kind) !== 7) throw new Error("Decorating two elements with the same name (" + desc1[key].name + ") is not supported yet");
|
|
105
|
+
existingNonFields[+isStatic][name] = kind < 3 ? 1 : kind;
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
var newValue = Class;
|
|
109
|
+
for (var i = decs.length - 1; i >= 0; i -= decoratorsHaveThis ? 2 : 1) {
|
|
110
|
+
var dec = assertCallable(decs[i], "A decorator", "be", true);
|
|
111
|
+
var decThis = decoratorsHaveThis ? decs[i - 1] : void 0;
|
|
112
|
+
var decoratorFinishedRef = {};
|
|
113
|
+
var ctx = {
|
|
114
|
+
kind: [
|
|
115
|
+
"field",
|
|
116
|
+
"accessor",
|
|
117
|
+
"method",
|
|
118
|
+
"getter",
|
|
119
|
+
"setter",
|
|
120
|
+
"class"
|
|
121
|
+
][kind],
|
|
122
|
+
name,
|
|
123
|
+
metadata,
|
|
124
|
+
addInitializer: (function(decoratorFinishedRef, initializer) {
|
|
125
|
+
if (decoratorFinishedRef.v) throw new TypeError("attempted to call addInitializer after decoration was finished");
|
|
126
|
+
assertCallable(initializer, "An initializer", "be", true);
|
|
127
|
+
initializers.push(initializer);
|
|
128
|
+
}).bind(null, decoratorFinishedRef)
|
|
129
|
+
};
|
|
130
|
+
if (isClass) {
|
|
131
|
+
_ = dec.call(decThis, newValue, ctx);
|
|
132
|
+
decoratorFinishedRef.v = 1;
|
|
133
|
+
if (assertCallable(_, "class decorators", "return")) newValue = _;
|
|
134
|
+
continue;
|
|
135
|
+
}
|
|
136
|
+
ctx.static = isStatic;
|
|
137
|
+
ctx.private = isPrivate;
|
|
138
|
+
_ = ctx.access = { has: isPrivate ? hasPrivateBrand.bind() : function(target) {
|
|
139
|
+
return name in target;
|
|
140
|
+
} };
|
|
141
|
+
if (!isSetter) _.get = isPrivate ? isMethod ? function(_this) {
|
|
142
|
+
assertInstanceIfPrivate(_this);
|
|
143
|
+
return desc1.value;
|
|
144
|
+
} : bindPropCall("get", 0, assertInstanceIfPrivate) : function(target) {
|
|
145
|
+
return target[name];
|
|
146
|
+
};
|
|
147
|
+
if (!isMethod && !isGetter) _.set = isPrivate ? bindPropCall("set", 0, assertInstanceIfPrivate) : function(target, value) {
|
|
148
|
+
target[name] = value;
|
|
149
|
+
};
|
|
150
|
+
newValue = dec.call(decThis, isAccessor ? {
|
|
151
|
+
get: desc1.get,
|
|
152
|
+
set: desc1.set
|
|
153
|
+
} : desc1[key], ctx);
|
|
154
|
+
decoratorFinishedRef.v = 1;
|
|
155
|
+
if (isAccessor) {
|
|
156
|
+
if (typeof newValue === "object" && newValue) {
|
|
157
|
+
if (_ = assertCallable(newValue.get, "accessor.get")) desc1.get = _;
|
|
158
|
+
if (_ = assertCallable(newValue.set, "accessor.set")) desc1.set = _;
|
|
159
|
+
if (_ = assertCallable(newValue.init, "accessor.init")) init.unshift(_);
|
|
160
|
+
} else if (newValue !== void 0) throw new TypeError("accessor decorators must return an object with get, set, or init properties or undefined");
|
|
161
|
+
} else if (assertCallable(newValue, (isField ? "field" : "method") + " decorators", "return")) if (isField) init.unshift(newValue);
|
|
162
|
+
else desc1[key] = newValue;
|
|
163
|
+
}
|
|
164
|
+
if (kind < 2) ret.push(createRunInitializers(init, isStatic, 1), createRunInitializers(initializers, isStatic, 0));
|
|
165
|
+
if (!isField && !isClass) if (isPrivate) if (isAccessor) ret.splice(-1, 0, bindPropCall("get", isStatic), bindPropCall("set", isStatic));
|
|
166
|
+
else ret.push(isMethod ? desc1[key] : assertCallable.call.bind(desc1[key]));
|
|
167
|
+
else defineProperty(Class, name, desc1);
|
|
168
|
+
return newValue;
|
|
169
|
+
}
|
|
170
|
+
function applyMemberDecs() {
|
|
171
|
+
var ret = [];
|
|
172
|
+
var protoInitializers;
|
|
173
|
+
var staticInitializers;
|
|
174
|
+
var pushInitializers = function(initializers) {
|
|
175
|
+
if (initializers) ret.push(createRunInitializers(initializers));
|
|
176
|
+
};
|
|
177
|
+
var applyMemberDecsOfKind = function(isStatic, isField) {
|
|
178
|
+
for (var i = 0; i < memberDecs.length; i++) {
|
|
179
|
+
var decInfo = memberDecs[i];
|
|
180
|
+
var kind = decInfo[1];
|
|
181
|
+
var kindOnly = kind & 7;
|
|
182
|
+
if ((kind & 8) == isStatic && !kindOnly == isField) {
|
|
183
|
+
var name = decInfo[2];
|
|
184
|
+
var isPrivate = !!decInfo[3];
|
|
185
|
+
var decoratorsHaveThis = kind & 16;
|
|
186
|
+
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(_) {
|
|
187
|
+
return checkInRHS(_) === targetClass;
|
|
188
|
+
} : instanceBrand);
|
|
189
|
+
}
|
|
190
|
+
}
|
|
191
|
+
};
|
|
192
|
+
applyMemberDecsOfKind(8, 0);
|
|
193
|
+
applyMemberDecsOfKind(0, 0);
|
|
194
|
+
applyMemberDecsOfKind(8, 1);
|
|
195
|
+
applyMemberDecsOfKind(0, 1);
|
|
196
|
+
pushInitializers(protoInitializers);
|
|
197
|
+
pushInitializers(staticInitializers);
|
|
198
|
+
return ret;
|
|
199
|
+
}
|
|
200
|
+
function defineMetadata(Class) {
|
|
201
|
+
return defineProperty(Class, symbolMetadata, {
|
|
202
|
+
configurable: true,
|
|
203
|
+
enumerable: true,
|
|
204
|
+
value: metadata
|
|
205
|
+
});
|
|
206
|
+
}
|
|
207
|
+
if (parentClass !== void 0) metadata = parentClass[symbolMetadata];
|
|
208
|
+
metadata = create(metadata == null ? null : metadata);
|
|
209
|
+
_ = applyMemberDecs();
|
|
210
|
+
if (!hasClassDecs) defineMetadata(targetClass);
|
|
211
|
+
return {
|
|
212
|
+
e: _,
|
|
213
|
+
get c() {
|
|
214
|
+
var initializers = [];
|
|
215
|
+
return hasClassDecs && [defineMetadata(targetClass = applyDec(targetClass, [classDecs], classDecsHaveThis, targetClass.name, 5, initializers)), createRunInitializers(initializers, 1)];
|
|
216
|
+
}
|
|
217
|
+
};
|
|
218
|
+
}
|
|
219
|
+
let _dec, _initClass;
|
|
220
|
+
_dec = injectable([
|
|
221
|
+
inject(CliLoggerToken),
|
|
222
|
+
inject(PrepareMirrorOrchestratorToken),
|
|
223
|
+
inject(RunMirrorSyncUseCaseToken)
|
|
224
|
+
]);
|
|
225
|
+
let _MirrorCommand;
|
|
226
|
+
(class {
|
|
227
|
+
logger;
|
|
228
|
+
prepareMirrorSync;
|
|
229
|
+
runMirrorSync;
|
|
230
|
+
static {
|
|
231
|
+
({c: [_MirrorCommand, _initClass]} = _apply_decs_2311(this, [_dec], []));
|
|
232
|
+
}
|
|
233
|
+
constructor(logger, prepareMirrorSync, runMirrorSync) {
|
|
234
|
+
this.logger = logger;
|
|
235
|
+
this.prepareMirrorSync = prepareMirrorSync;
|
|
236
|
+
this.runMirrorSync = runMirrorSync;
|
|
237
|
+
}
|
|
238
|
+
name = "mirror";
|
|
239
|
+
description = "Keep package manifests aligned with what you ship";
|
|
240
|
+
register(program) {
|
|
241
|
+
program.command(this.name).description(this.description).command("sync").description("Write package.json exports from dist/ for workspace packages").argument("[package]", "Optional package path relative to repo root (e.g. packages/ui)").option("-v, --verbose", "Print extra diagnostics", false).option("--json", "Print one JSON summary on stdout (suppresses human progress)", false).action(this.execute.bind(this));
|
|
242
|
+
}
|
|
243
|
+
async execute(pkg, options, command) {
|
|
244
|
+
const prelude = await this.prepareMirrorSync.execute({
|
|
245
|
+
currentWorkingDirectory: process.cwd(),
|
|
246
|
+
packageArg: pkg,
|
|
247
|
+
globalCliRaw: command.optsWithGlobals()
|
|
248
|
+
});
|
|
249
|
+
if (!consumeCliAppError(this.logger, prelude)) return;
|
|
250
|
+
const { rootDir, config, packageFilter, globals } = prelude.value;
|
|
251
|
+
const parsed = parseWithCliSchema(mirrorSyncRunRequestSchema, {
|
|
252
|
+
rootDir,
|
|
253
|
+
config: config.mirror ?? {},
|
|
254
|
+
verbose: options.verbose,
|
|
255
|
+
json: options.json,
|
|
256
|
+
noColor: globals.color === false,
|
|
257
|
+
packageFilter
|
|
258
|
+
});
|
|
259
|
+
if (!consumeCliAppError(this.logger, parsed)) return;
|
|
260
|
+
await runCliResultAsync(this.logger, this.runMirrorSync.execute(parsed.value), (stats) => stats.packagesErrored > 0 ? 1 : 0);
|
|
261
|
+
}
|
|
262
|
+
static {
|
|
263
|
+
_initClass();
|
|
264
|
+
}
|
|
265
|
+
});
|
|
266
|
+
//#endregion
|
|
267
|
+
export { _MirrorCommand as MirrorCommand };
|