@nitra/cursor 11.4.0 → 12.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.claude-template/hooks/normalize-decisions.sh +34 -3
- package/.pi-template/extensions/n-cursor-adr/docs/index.md +3 -5
- package/CHANGELOG.md +12 -0
- package/bin/n-cursor.js +2 -8
- package/docs/index.md +12 -0
- package/docs/stryker.config.md +3 -5
- package/docs/vitest.config.md +3 -5
- package/lib/docs/index.md +14 -0
- package/lib/docs/llm.md +4 -6
- package/lib/docs/models.md +3 -5
- package/lib/docs/omlx-trace.md +3 -5
- package/lib/docs/omlx.md +4 -6
- package/package.json +2 -1
- package/rules/abie/docs/fix.md +3 -5
- package/rules/abie/docs/index.md +11 -0
- package/rules/abie/js/docs/applies.md +3 -5
- package/rules/abie/js/docs/env_dns.md +3 -5
- package/rules/abie/js/docs/firebase_hosting.md +3 -5
- package/rules/abie/js/docs/hc_pairing.md +3 -5
- package/rules/abie/js/docs/index.md +16 -0
- package/rules/abie/js/docs/ua_http_route.md +3 -5
- package/rules/abie/js/docs/ua_node_selector.md +3 -5
- package/rules/abie/lib/docs/enabled.md +3 -5
- package/rules/abie/lib/docs/env-dns.md +3 -5
- package/rules/abie/lib/docs/hc-yaml.md +3 -5
- package/rules/abie/lib/docs/http-route.md +3 -5
- package/rules/abie/lib/docs/index.md +18 -0
- package/rules/abie/lib/docs/k8s-tree.md +3 -5
- package/rules/abie/lib/docs/kustomization-patches.md +3 -5
- package/rules/abie/lib/docs/overlay-paths.md +3 -5
- package/rules/abie/lib/docs/yaml.md +3 -5
- package/rules/adr/adr.mdc +2 -2
- package/rules/adr/docs/fix.md +3 -5
- package/rules/adr/docs/index.md +11 -0
- package/rules/adr/js/docs/hooks.md +3 -5
- package/rules/adr/js/docs/index.md +11 -0
- package/rules/bun/docs/fix.md +3 -5
- package/rules/bun/docs/index.md +11 -0
- package/rules/bun/js/docs/index.md +11 -0
- package/rules/bun/js/docs/layout.md +3 -5
- package/rules/capacitor/docs/fix.md +3 -5
- package/rules/capacitor/docs/index.md +11 -0
- package/rules/capacitor/js/docs/index.md +11 -0
- package/rules/capacitor/js/docs/platforms.md +3 -5
- package/rules/changelog/docs/fix.md +3 -5
- package/rules/changelog/docs/index.md +11 -0
- package/rules/changelog/js/docs/consistency.md +3 -5
- package/rules/changelog/js/docs/index.md +11 -0
- package/rules/changelog/lib/docs/index.md +11 -0
- package/rules/changelog/lib/docs/package-manifest.md +3 -5
- package/rules/ci4/docs/fix.md +3 -5
- package/rules/ci4/docs/index.md +11 -0
- package/rules/ci4/js/docs/index.md +11 -0
- package/rules/ci4/js/docs/marksman_config.md +3 -5
- package/rules/doc-files/docs/fix.md +3 -5
- package/rules/doc-files/docs/index.md +11 -0
- package/rules/doc-files/js/docgen-crc.mjs +50 -14
- package/rules/doc-files/js/docgen-files-batch.mjs +73 -2
- package/rules/doc-files/js/docs/docgen-crc.md +4 -6
- package/rules/doc-files/js/docs/docgen-extract-anchors.md +3 -5
- package/rules/doc-files/js/docs/docgen-extract.md +3 -5
- package/rules/doc-files/js/docs/docgen-files-batch.md +4 -6
- package/rules/doc-files/js/docs/docgen-gen.md +4 -6
- package/rules/doc-files/js/docs/docgen-ignore.md +3 -5
- package/rules/doc-files/js/docs/docgen-judge-measure.md +3 -5
- package/rules/doc-files/js/docs/docgen-judge.md +3 -5
- package/rules/doc-files/js/docs/docgen-prompts.md +3 -5
- package/rules/doc-files/js/docs/docgen-scan.md +4 -6
- package/rules/doc-files/js/docs/index.md +24 -0
- package/rules/doc-files/js/docs/lint.md +4 -6
- package/rules/doc-files/js/docs/units-js.md +3 -5
- package/rules/doc-files/js/docs/units-rs.md +3 -5
- package/rules/doc-files/js/docs/units.md +3 -5
- package/rules/doc-files/lint/docs/index.md +11 -0
- package/rules/doc-files/lint/docs/lint.md +3 -5
- package/rules/docker/docs/fix.md +3 -5
- package/rules/docker/docs/index.md +11 -0
- package/rules/docker/js/docs/index.md +11 -0
- package/rules/docker/js/docs/lint.md +3 -5
- package/rules/docker/lib/docs/docker-hadolint.md +3 -5
- package/rules/docker/lib/docs/docker-mirror.md +3 -5
- package/rules/docker/lib/docs/docker-native-addon.md +3 -5
- package/rules/docker/lib/docs/docker-nginx-user.md +3 -5
- package/rules/docker/lib/docs/index.md +14 -0
- package/rules/docker/lint/docs/index.md +11 -0
- package/rules/docker/lint/docs/lint.md +3 -5
- package/rules/efes/docs/fix.md +3 -5
- package/rules/efes/docs/index.md +11 -0
- package/rules/feedback/docs/fix.md +3 -5
- package/rules/feedback/docs/index.md +11 -0
- package/rules/ga/docs/fix.md +3 -5
- package/rules/ga/docs/index.md +11 -0
- package/rules/ga/js/docs/index.md +12 -0
- package/rules/ga/js/docs/lint.md +3 -5
- package/rules/ga/js/docs/workflows.md +3 -5
- package/rules/ga/lint/docs/index.md +11 -0
- package/rules/ga/lint/docs/lint.md +3 -5
- package/rules/graphql/docs/fix.md +3 -5
- package/rules/graphql/docs/index.md +11 -0
- package/rules/graphql/js/docs/index.md +11 -0
- package/rules/graphql/js/docs/tooling.md +3 -5
- package/rules/graphql/lib/docs/graphql-gql-scan.md +3 -5
- package/rules/graphql/lib/docs/index.md +11 -0
- package/rules/hasura/docs/fix.md +3 -5
- package/rules/hasura/docs/index.md +11 -0
- package/rules/hasura/js/docs/index.md +11 -0
- package/rules/hasura/js/docs/internal_urls.md +3 -5
- package/rules/image-avif/docs/fix.md +3 -5
- package/rules/image-avif/docs/index.md +11 -0
- package/rules/image-avif/js/docs/avif_generation.md +3 -5
- package/rules/image-avif/js/docs/index.md +11 -0
- package/rules/image-compress/docs/fix.md +3 -5
- package/rules/image-compress/docs/index.md +11 -0
- package/rules/image-compress/js/docs/index.md +11 -0
- package/rules/image-compress/js/docs/package_setup.md +3 -5
- package/rules/js-bun-db/docs/fix.md +3 -5
- package/rules/js-bun-db/docs/index.md +11 -0
- package/rules/js-bun-db/js/docs/index.md +11 -0
- package/rules/js-bun-db/js/docs/safety.md +3 -5
- package/rules/js-bun-db/lib/docs/bun-sql-scan.md +3 -5
- package/rules/js-bun-db/lib/docs/index.md +11 -0
- package/rules/js-bun-redis/docs/fix.md +3 -5
- package/rules/js-bun-redis/docs/index.md +11 -0
- package/rules/js-bun-redis/js/docs/imports.md +3 -5
- package/rules/js-bun-redis/js/docs/index.md +11 -0
- package/rules/js-bun-redis/lib/docs/index.md +11 -0
- package/rules/js-bun-redis/lib/docs/redis-imports.md +3 -5
- package/rules/js-lint/docs/fix.md +3 -5
- package/rules/js-lint/docs/index.md +11 -0
- package/rules/js-lint/js/docs/index.md +14 -0
- package/rules/js-lint/js/docs/lint-findings.md +3 -5
- package/rules/js-lint/js/docs/lint.md +3 -5
- package/rules/js-lint/js/docs/tooling.md +3 -5
- package/rules/js-lint/js/docs/utils_imports.md +3 -5
- package/rules/js-lint-ci/docs/fix.md +3 -5
- package/rules/js-lint-ci/docs/index.md +11 -0
- package/rules/js-lint-ci/js/docs/index.md +11 -0
- package/rules/js-lint-ci/js/docs/lint.md +3 -5
- package/rules/js-mssql/docs/fix.md +3 -5
- package/rules/js-mssql/docs/index.md +11 -0
- package/rules/js-mssql/js/docs/deps.md +3 -5
- package/rules/js-mssql/js/docs/index.md +11 -0
- package/rules/js-mssql/lib/docs/index.md +11 -0
- package/rules/js-mssql/lib/docs/mssql-pool-scan.md +3 -5
- package/rules/js-run/docs/fix.md +3 -5
- package/rules/js-run/docs/index.md +11 -0
- package/rules/js-run/js/docs/index.md +11 -0
- package/rules/js-run/js/docs/runtime.md +3 -5
- package/rules/js-run/lib/docs/bunyan-imports.md +3 -5
- package/rules/js-run/lib/docs/check-env-scan.md +3 -5
- package/rules/js-run/lib/docs/conn-file-rules.md +3 -5
- package/rules/js-run/lib/docs/conn-imports-scan.md +3 -5
- package/rules/js-run/lib/docs/index.md +16 -0
- package/rules/js-run/lib/docs/promise-settimeout-scan.md +3 -5
- package/rules/js-run/lib/docs/temporal-scan.md +3 -5
- package/rules/k8s/docs/fix.md +3 -5
- package/rules/k8s/docs/index.md +11 -0
- package/rules/k8s/k8s.mdc +10 -0
- package/rules/k8s/lint/docs/index.md +11 -0
- package/rules/k8s/lint/docs/lint.md +3 -5
- package/rules/k8s/policy/manifest/manifest.rego +46 -0
- package/rules/lint/docs/fix.md +3 -5
- package/rules/lint/docs/index.md +11 -0
- package/rules/lint/js/docs/index.md +11 -0
- package/rules/lint/js/docs/orchestrate.md +4 -6
- package/rules/nginx-default-tpl/docs/fix.md +3 -5
- package/rules/nginx-default-tpl/docs/index.md +11 -0
- package/rules/nginx-default-tpl/js/docs/index.md +11 -0
- package/rules/nginx-default-tpl/js/docs/template.md +3 -5
- package/rules/npm-module/docs/fix.md +3 -5
- package/rules/npm-module/docs/index.md +11 -0
- package/rules/npm-module/js/docs/header_doc_pointer.md +3 -5
- package/rules/npm-module/js/docs/index.md +14 -0
- package/rules/npm-module/js/docs/package_structure.md +3 -5
- package/rules/npm-module/js/docs/rule_meta.md +3 -5
- package/rules/npm-module/js/docs/skill_meta.md +3 -5
- package/rules/php/docs/fix.md +3 -5
- package/rules/php/docs/index.md +11 -0
- package/rules/php/js/docs/index.md +11 -0
- package/rules/php/js/docs/tooling.md +3 -5
- package/rules/php/lint/docs/index.md +11 -0
- package/rules/php/lint/docs/lint.md +3 -5
- package/rules/python/docs/fix.md +3 -5
- package/rules/python/docs/index.md +11 -0
- package/rules/python/js/docs/applies.md +3 -5
- package/rules/python/js/docs/index.md +12 -0
- package/rules/python/js/docs/tooling.md +3 -5
- package/rules/python/lint/docs/index.md +11 -0
- package/rules/python/lint/docs/lint.md +3 -5
- package/rules/rego/docs/fix.md +3 -5
- package/rules/rego/docs/index.md +11 -0
- package/rules/rego/js/docs/applies.md +3 -5
- package/rules/rego/js/docs/index.md +12 -0
- package/rules/rego/js/docs/lint.md +3 -5
- package/rules/rego/lint/docs/index.md +11 -0
- package/rules/rego/lint/docs/lint.md +3 -5
- package/rules/release/docs/change.md +3 -5
- package/rules/release/docs/fix.md +3 -5
- package/rules/release/docs/index.md +13 -0
- package/rules/release/docs/release.md +4 -6
- package/rules/release/lib/docs/aggregate.md +3 -5
- package/rules/release/lib/docs/change-file.md +3 -3
- package/rules/release/lib/docs/fallback.md +3 -5
- package/rules/release/lib/docs/index.md +13 -0
- package/rules/release/release.mjs +40 -1
- package/rules/rust/docs/fix.md +3 -5
- package/rules/rust/docs/index.md +11 -0
- package/rules/rust/js/docs/applies.md +3 -5
- package/rules/rust/js/docs/index.md +11 -0
- package/rules/rust/lib/docs/has-cargo-toml.md +3 -5
- package/rules/rust/lib/docs/index.md +11 -0
- package/rules/security/docs/fix.md +3 -5
- package/rules/security/docs/index.md +11 -0
- package/rules/security/js/docs/index.md +13 -0
- package/rules/security/js/docs/lint.md +3 -5
- package/rules/security/js/docs/sample_secret.md +3 -5
- package/rules/security/js/docs/trufflehog.md +3 -5
- package/rules/style-lint/docs/fix.md +3 -5
- package/rules/style-lint/docs/index.md +11 -0
- package/rules/style-lint/js/docs/index.md +12 -0
- package/rules/style-lint/js/docs/lint.md +3 -5
- package/rules/style-lint/js/docs/tooling.md +3 -5
- package/rules/tauri/docs/fix.md +3 -5
- package/rules/tauri/docs/index.md +11 -0
- package/rules/tauri/js/docs/cargo_mutants_config.md +3 -5
- package/rules/tauri/js/docs/index.md +12 -0
- package/rules/tauri/js/docs/tooling.md +3 -5
- package/rules/test/docs/fix.md +3 -5
- package/rules/test/docs/index.md +11 -0
- package/rules/test/js/data/stryker_config/docs/index.md +13 -0
- package/rules/test/js/data/stryker_config/docs/stryker-vue-macros-ignorer.md +3 -5
- package/rules/test/js/data/stryker_config/docs/stryker.config.baseline.md +3 -5
- package/rules/test/js/data/stryker_config/docs/stryker.config.vue.baseline.md +3 -5
- package/rules/test/js/data/vitest_config/docs/index.md +11 -0
- package/rules/test/js/data/vitest_config/docs/vitest.config.baseline.md +3 -5
- package/rules/test/js/docs/cargo_mutants_config.md +3 -5
- package/rules/test/js/docs/index.md +16 -0
- package/rules/test/js/docs/location.md +3 -5
- package/rules/test/js/docs/no-process-chdir.md +3 -5
- package/rules/test/js/docs/no-relative-fs-path.md +3 -5
- package/rules/test/js/docs/stryker_config.md +3 -5
- package/rules/test/js/docs/vitest-config-pool-forks.md +3 -5
- package/rules/text/docs/fix.md +3 -5
- package/rules/text/docs/index.md +11 -0
- package/rules/text/js/docs/forbidden-prettier.md +3 -5
- package/rules/text/js/docs/formatting.md +4 -6
- package/rules/text/js/docs/index.md +13 -0
- package/rules/text/js/docs/lint.md +4 -6
- package/rules/text/lint/docs/cspell-fix.md +4 -6
- package/rules/text/lint/docs/index.md +15 -0
- package/rules/text/lint/docs/lint.md +4 -6
- package/rules/text/lint/docs/run-dotenv-linter.md +3 -5
- package/rules/text/lint/docs/run-shellcheck.md +3 -5
- package/rules/text/lint/docs/run-v8r.md +3 -5
- package/rules/vue/docs/fix.md +3 -5
- package/rules/vue/docs/index.md +11 -0
- package/rules/vue/js/docs/index.md +11 -0
- package/rules/vue/js/docs/packages.md +3 -5
- package/rules/vue/lib/docs/index.md +11 -0
- package/rules/vue/lib/docs/vue-forbidden-imports.md +3 -5
- package/rules/vue/vue.mdc +19 -1
- package/rules/worktree/docs/fix.md +3 -5
- package/rules/worktree/docs/index.md +11 -0
- package/rules/worktree/worktree.mdc +8 -8
- package/scripts/coverage-classify/docs/apply.md +3 -5
- package/scripts/coverage-classify/docs/cache.md +3 -5
- package/scripts/coverage-classify/docs/index.md +9 -27
- package/scripts/coverage-classify/docs/prompt.md +3 -5
- package/scripts/coverage-classify/docs/verdict-schema.md +3 -5
- package/scripts/dispatcher/docs/index.md +11 -0
- package/scripts/dispatcher/docs/trace.md +3 -5
- package/scripts/docs/auto-rules.md +3 -5
- package/scripts/docs/auto-skills.md +3 -5
- package/scripts/docs/build-agents-commands.md +3 -5
- package/scripts/docs/cli-entry.md +3 -5
- package/scripts/docs/coverage-fix-extract.md +3 -5
- package/scripts/docs/coverage-fix.md +3 -5
- package/scripts/docs/ensure-nitra-cursor-dev-dependencies.md +3 -5
- package/scripts/docs/index.md +24 -0
- package/scripts/docs/post-tool-use-fix.md +4 -6
- package/scripts/docs/rename-yaml-extensions.md +3 -5
- package/scripts/docs/skills-cli.md +3 -5
- package/scripts/docs/sync-claude-config.md +3 -5
- package/scripts/docs/sync-setup-bun-deps-action.md +3 -5
- package/scripts/docs/upgrade-nitra-cursor-and-install.md +3 -5
- package/scripts/docs/worktree-cli.md +3 -5
- package/scripts/lib/adr/docs/index.md +12 -0
- package/scripts/lib/adr/docs/normalize-cli.md +3 -5
- package/scripts/lib/adr/docs/normalize-pipeline.md +4 -6
- package/scripts/lib/adr/normalize-pipeline.mjs +140 -46
- package/scripts/lib/docs/assert-project-root.md +3 -5
- package/scripts/lib/docs/changed-files.md +3 -5
- package/scripts/lib/docs/check-mdc-template-refs.md +3 -5
- package/scripts/lib/docs/check-reporter.md +3 -5
- package/scripts/lib/docs/diff-added-lines.md +3 -5
- package/scripts/lib/docs/discover-check-rules-from-cursor.md +3 -5
- package/scripts/lib/docs/discover-checkable-rules.md +3 -5
- package/scripts/lib/docs/ensure-tool.md +3 -5
- package/scripts/lib/docs/generated-markdown.md +3 -5
- package/scripts/lib/docs/gha-workflow.md +3 -5
- package/scripts/lib/docs/index.md +44 -0
- package/scripts/lib/docs/inline-template-links.md +3 -5
- package/scripts/lib/docs/list-project-rules-mdc.md +3 -5
- package/scripts/lib/docs/list-rule-ids.md +3 -5
- package/scripts/lib/docs/load-cursor-config.md +3 -5
- package/scripts/lib/docs/mirror-parity.md +3 -3
- package/scripts/lib/docs/read-n-cursor-config-lite.md +3 -5
- package/scripts/lib/docs/resolve-target-files.md +3 -5
- package/scripts/lib/docs/root-notice.md +3 -5
- package/scripts/lib/docs/rule-meta-helpers.md +3 -5
- package/scripts/lib/docs/rule-meta.md +3 -5
- package/scripts/lib/docs/rule-predicates.md +3 -5
- package/scripts/lib/docs/run-conftest-batch.md +3 -5
- package/scripts/lib/docs/run-lint-step.md +3 -5
- package/scripts/lib/docs/run-rule-cli.md +3 -5
- package/scripts/lib/docs/run-rule.md +3 -5
- package/scripts/lib/docs/run-standard-lint.md +3 -5
- package/scripts/lib/docs/run-standard-rule.md +3 -5
- package/scripts/lib/docs/skill-meta.md +3 -5
- package/scripts/lib/docs/sync-gitignore-worktree.md +3 -5
- package/scripts/lib/docs/template.md +3 -5
- package/scripts/lib/docs/timing-summary.md +3 -5
- package/scripts/lib/docs/workspaces.md +3 -5
- package/scripts/lib/docs/worktree-notice.md +3 -5
- package/scripts/lib/docs/worktree.md +3 -5
- package/scripts/lib/fix/docs/index.md +16 -0
- package/scripts/lib/fix/docs/llm-fix-apply.md +3 -5
- package/scripts/lib/fix/docs/llm-lint-fix.md +3 -5
- package/scripts/lib/fix/docs/llm-worker.md +3 -5
- package/scripts/lib/fix/docs/orchestrator.md +3 -5
- package/scripts/lib/fix/docs/run-fix-check.md +3 -5
- package/scripts/lib/fix/docs/t0.md +3 -5
- package/scripts/lib/worktree-notice.mjs +3 -38
- package/scripts/utils/docs/ast-scan-utils.md +3 -5
- package/scripts/utils/docs/ensure-gitignore-entries.md +3 -5
- package/scripts/utils/docs/find-package-json-paths.md +3 -5
- package/scripts/utils/docs/index.md +23 -0
- package/scripts/utils/docs/lock-cache-dir.md +3 -5
- package/scripts/utils/docs/pass.md +3 -5
- package/scripts/utils/docs/resolve-cargo-manifest.md +3 -5
- package/scripts/utils/docs/resolve-cmd.md +3 -5
- package/scripts/utils/docs/resolve-js-root.md +3 -5
- package/scripts/utils/docs/test-helpers.md +3 -5
- package/scripts/utils/docs/walk-cache.md +3 -5
- package/scripts/utils/docs/walkDir.md +3 -5
- package/scripts/utils/docs/with-lock.md +3 -5
- package/scripts/utils/docs/worktree-fingerprint.md +3 -5
- package/skills/doc-aggregate/js/docs/docgen-ignore.md +3 -5
- package/skills/doc-aggregate/js/docs/docgen-scan.md +3 -5
- package/skills/doc-aggregate/js/docs/index.md +12 -0
- package/skills/start-check/js/docs/check.md +3 -5
- package/skills/start-check/js/docs/index.md +11 -0
- package/skills/taze/js/docs/diff.md +3 -5
- package/skills/taze/js/docs/index.md +11 -0
- package/scripts/lib/worktree.mjs +0 -126
- package/scripts/worktree-cli.mjs +0 -230
- package/skills/worktree/SKILL.md +0 -38
- package/skills/worktree/meta.json +0 -1
|
@@ -1,13 +1,11 @@
|
|
|
1
1
|
---
|
|
2
|
+
type: JS Module
|
|
3
|
+
title: ast-scan-utils.mjs
|
|
4
|
+
resource: npm/scripts/utils/ast-scan-utils.mjs
|
|
2
5
|
docgen:
|
|
3
|
-
source: npm/scripts/utils/ast-scan-utils.mjs
|
|
4
6
|
crc: 0f9b4a21
|
|
5
7
|
---
|
|
6
8
|
|
|
7
|
-
# ast-scan-utils.mjs
|
|
8
|
-
|
|
9
|
-
## Огляд
|
|
10
|
-
|
|
11
9
|
Цей файл містить утиліти для AST-сканерів JavaScript та TypeScript, що використовуються для аналізу коду та виявлення потенційних проблем. Він надає інструменти для обробки AST, перетворення даних та взаємодії з різними типами вузлів, забезпечуючи основу для створення правил безпеки та аналізу коду. Ці утиліти спрощують розробку сканерів, усуваючи необхідність повторного написання boilerplate-коду.
|
|
12
10
|
|
|
13
11
|
## Поведінка
|
|
@@ -1,13 +1,11 @@
|
|
|
1
1
|
---
|
|
2
|
+
type: JS Module
|
|
3
|
+
title: ensure-gitignore-entries.mjs
|
|
4
|
+
resource: npm/scripts/utils/ensure-gitignore-entries.mjs
|
|
2
5
|
docgen:
|
|
3
|
-
source: npm/scripts/utils/ensure-gitignore-entries.mjs
|
|
4
6
|
crc: 35e65c1b
|
|
5
7
|
---
|
|
6
8
|
|
|
7
|
-
# ensure-gitignore-entries.mjs
|
|
8
|
-
|
|
9
|
-
## Огляд
|
|
10
|
-
|
|
11
9
|
Цей модуль відповідає за оновлення файлу `.gitignore` у корені проєкту. Він забезпечує idempotent додавання нових правил ігнорування, перевіряючи їхню наявність перед доповненням. Це необхідно для підтримки консистентності правил ігнорування в проєкті та інтеграції з інструментами тестування, такими як Stryker.
|
|
12
10
|
|
|
13
11
|
## Поведінка
|
|
@@ -1,13 +1,11 @@
|
|
|
1
1
|
---
|
|
2
|
+
type: JS Module
|
|
3
|
+
title: find-package-json-paths.mjs
|
|
4
|
+
resource: npm/scripts/utils/find-package-json-paths.mjs
|
|
2
5
|
docgen:
|
|
3
|
-
source: npm/scripts/utils/find-package-json-paths.mjs
|
|
4
6
|
crc: 06c208de
|
|
5
7
|
---
|
|
6
8
|
|
|
7
|
-
# find-package-json-paths.mjs
|
|
8
|
-
|
|
9
|
-
## Огляд
|
|
10
|
-
|
|
11
9
|
Цей файл забезпечує спільну утиліту для збору всіх файлів `package.json` у дереві проєкту, ігноруючи вказані каталоги. Він сортує знайдені шляхи пакетів за відносним розташуванням, що полегшує їх подальше використання в скриптах перевірки. Це дозволяє уникнути дублювання коду з інших інструментів перевірки та спрощує процес збору інформації про залежності.
|
|
12
10
|
|
|
13
11
|
## Поведінка
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
---
|
|
2
|
+
type: Directory Index
|
|
3
|
+
title: npm/scripts/utils
|
|
4
|
+
resource: npm/scripts/utils/
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# npm/scripts/utils
|
|
8
|
+
|
|
9
|
+
| Файл | Тип |
|
|
10
|
+
|---|---|
|
|
11
|
+
| [ast-scan-utils.mjs](ast-scan-utils.md) | JS Module |
|
|
12
|
+
| [ensure-gitignore-entries.mjs](ensure-gitignore-entries.md) | JS Module |
|
|
13
|
+
| [find-package-json-paths.mjs](find-package-json-paths.md) | JS Module |
|
|
14
|
+
| [lock-cache-dir.mjs](lock-cache-dir.md) | JS Module |
|
|
15
|
+
| [pass.mjs](pass.md) | JS Module |
|
|
16
|
+
| [resolve-cargo-manifest.mjs](resolve-cargo-manifest.md) | JS Module |
|
|
17
|
+
| [resolve-cmd.mjs](resolve-cmd.md) | JS Module |
|
|
18
|
+
| [resolve-js-root.mjs](resolve-js-root.md) | JS Module |
|
|
19
|
+
| [test-helpers.mjs](test-helpers.md) | JS Module |
|
|
20
|
+
| [walk-cache.mjs](walk-cache.md) | JS Module |
|
|
21
|
+
| [walkDir.mjs](walkDir.md) | JS Module |
|
|
22
|
+
| [with-lock.mjs](with-lock.md) | JS Module |
|
|
23
|
+
| [worktree-fingerprint.mjs](worktree-fingerprint.md) | JS Module |
|
|
@@ -1,13 +1,11 @@
|
|
|
1
1
|
---
|
|
2
|
+
type: JS Module
|
|
3
|
+
title: lock-cache-dir.mjs
|
|
4
|
+
resource: npm/scripts/utils/lock-cache-dir.mjs
|
|
2
5
|
docgen:
|
|
3
|
-
source: npm/scripts/utils/lock-cache-dir.mjs
|
|
4
6
|
crc: 3b63d4b1
|
|
5
7
|
---
|
|
6
8
|
|
|
7
|
-
# lock-cache-dir.mjs
|
|
8
|
-
|
|
9
|
-
## Огляд
|
|
10
|
-
|
|
11
9
|
Цей файл визначає структуру каталогу кешування блоків для git-worktree, забезпечуючи унікальний стан локу для кожного головного checkout та пов'язаних worktree. Він використовується для серіалізації запуску інструментів аналізу коду в різних worktree, запобігаючи конфліктам та забезпечуючи ефективну роботу. Створена структура кешування гарантує, що всі worktree мають доступ до одного і того ж стану локу, що необхідно для коректної серіалізації процесів аналізу.
|
|
12
10
|
|
|
13
11
|
## Поведінка
|
|
@@ -1,13 +1,11 @@
|
|
|
1
1
|
---
|
|
2
|
+
type: JS Module
|
|
3
|
+
title: pass.mjs
|
|
4
|
+
resource: npm/scripts/utils/pass.mjs
|
|
2
5
|
docgen:
|
|
3
|
-
source: npm/scripts/utils/pass.mjs
|
|
4
6
|
crc: 0f69dfba
|
|
5
7
|
---
|
|
6
8
|
|
|
7
|
-
# pass.mjs
|
|
8
|
-
|
|
9
|
-
## Огляд
|
|
10
|
-
|
|
11
9
|
Цей файл містить функцію для виведення повідомлень про успіх у консоль. Функція використовується в скриптах перевірки для інформування користувача про успішне завершення операцій. Вона забезпечує чіткий візуальний сигнал про успіх, що полегшує інтерпретацію результатів перевірки.
|
|
12
10
|
|
|
13
11
|
## Поведінка
|
|
@@ -1,13 +1,11 @@
|
|
|
1
1
|
---
|
|
2
|
+
type: JS Module
|
|
3
|
+
title: resolve-cargo-manifest.mjs
|
|
4
|
+
resource: npm/scripts/utils/resolve-cargo-manifest.mjs
|
|
2
5
|
docgen:
|
|
3
|
-
source: npm/scripts/utils/resolve-cargo-manifest.mjs
|
|
4
6
|
crc: af1efa42
|
|
5
7
|
---
|
|
6
8
|
|
|
7
|
-
# resolve-cargo-manifest.mjs
|
|
8
|
-
|
|
9
|
-
## Огляд
|
|
10
|
-
|
|
11
9
|
Цей файл визначає шлях до файлу Cargo.toml проєкту, незалежно від того, чи це кореневий Cargo.toml або один з підкаталогів workspace-у, особливо з урахуванням Tauri-патерну. Він служить утилітою для coverage-провайдера та test-концерну cargo_mutants_config, повертаючи `null` у разі невдачі для обробки ситуації без виключень. Це забезпечує гнучкий спосіб доступу до конфігурації проєкту Cargo.
|
|
12
10
|
|
|
13
11
|
## Поведінка
|
|
@@ -1,13 +1,11 @@
|
|
|
1
1
|
---
|
|
2
|
+
type: JS Module
|
|
3
|
+
title: resolve-cmd.mjs
|
|
4
|
+
resource: npm/scripts/utils/resolve-cmd.mjs
|
|
2
5
|
docgen:
|
|
3
|
-
source: npm/scripts/utils/resolve-cmd.mjs
|
|
4
6
|
crc: 31c290fc
|
|
5
7
|
---
|
|
6
8
|
|
|
7
|
-
# resolve-cmd.mjs
|
|
8
|
-
|
|
9
|
-
## Огляд
|
|
10
|
-
|
|
11
9
|
Цей файл надає функцію `resolveCmd` для отримання абсолютного шляху до виконуваного файлу, який відповідає заданій команді. Це дозволяє викликати зовнішні інструменти, використовуючи повний шлях до файлу, а не команду з змінної PATH. Це корисно для забезпечення чіткої та однозначної ідентифікації виконуваного файлу.
|
|
12
10
|
|
|
13
11
|
## Поведінка
|
|
@@ -1,13 +1,11 @@
|
|
|
1
1
|
---
|
|
2
|
+
type: JS Module
|
|
3
|
+
title: resolve-js-root.mjs
|
|
4
|
+
resource: npm/scripts/utils/resolve-js-root.mjs
|
|
2
5
|
docgen:
|
|
3
|
-
source: npm/scripts/utils/resolve-js-root.mjs
|
|
4
6
|
crc: 2c2b9f11
|
|
5
7
|
---
|
|
6
8
|
|
|
7
|
-
# resolve-js-root.mjs
|
|
8
|
-
|
|
9
|
-
## Огляд
|
|
10
|
-
|
|
11
9
|
Цей файл визначає кореневий JavaScript-файл проєкту, необхідний для запуску інструментів аналізу коду. Він використовується як у великих проєктах з декількома workspace-ами, так і в окремих пакетах, забезпечуючи єдине місце для визначення кореневого розташування. Це спрощує інтеграцію з інструментами coverage та тестування.
|
|
12
10
|
|
|
13
11
|
## Поведінка
|
|
@@ -1,13 +1,11 @@
|
|
|
1
1
|
---
|
|
2
|
+
type: JS Module
|
|
3
|
+
title: test-helpers.mjs
|
|
4
|
+
resource: npm/scripts/utils/test-helpers.mjs
|
|
2
5
|
docgen:
|
|
3
|
-
source: npm/scripts/utils/test-helpers.mjs
|
|
4
6
|
crc: 0e4357fe
|
|
5
7
|
---
|
|
6
8
|
|
|
7
|
-
# test-helpers.mjs
|
|
8
|
-
|
|
9
|
-
## Огляд
|
|
10
|
-
|
|
11
9
|
Цей файл надає допоміжні функції для тестування скриптів пакета `@nitra/cursor`. Він забезпечує створення тимчасових каталогів та запис JSON-файлів у абсолютний шлях, гарантуючи ізольованість тестів та запобігаючи мутації глобального контексту процесу. Ці функції використовуються для створення безпечного середовища для тестування, особливо при використанні git-операцій та інших файлових операцій.
|
|
12
10
|
|
|
13
11
|
## Поведінка
|
|
@@ -1,13 +1,11 @@
|
|
|
1
1
|
---
|
|
2
|
+
type: JS Module
|
|
3
|
+
title: walk-cache.mjs
|
|
4
|
+
resource: npm/scripts/utils/walk-cache.mjs
|
|
2
5
|
docgen:
|
|
3
|
-
source: npm/scripts/utils/walk-cache.mjs
|
|
4
6
|
crc: 82798fa2
|
|
5
7
|
---
|
|
6
8
|
|
|
7
|
-
# walk-cache.mjs
|
|
8
|
-
|
|
9
|
-
## Огляд
|
|
10
|
-
|
|
11
9
|
Файл забезпечує спільний кеш результатів обходу файлової системи для всіх операцій перевірки. Він зберігає список файлів, що відповідають заданим шаблонам, щоб уникнути повторних обходів. Це підвищує ефективність процесу перевірки, особливо при великій кількості файлів та шаблонів.
|
|
12
10
|
|
|
13
11
|
## Поведінка
|
|
@@ -1,13 +1,11 @@
|
|
|
1
1
|
---
|
|
2
|
+
type: JS Module
|
|
3
|
+
title: walkDir.mjs
|
|
4
|
+
resource: npm/scripts/utils/walkDir.mjs
|
|
2
5
|
docgen:
|
|
3
|
-
source: npm/scripts/utils/walkDir.mjs
|
|
4
6
|
crc: 5e5fec27
|
|
5
7
|
---
|
|
6
8
|
|
|
7
|
-
# walkDir.mjs
|
|
8
|
-
|
|
9
|
-
## Огляд
|
|
10
|
-
|
|
11
9
|
Файл `n-cursor.js` забезпечує рекурсивний обхід каталогів для скриптів перевірки, дозволяючи виконувати callback-функцію для кожного звичайного файлу. Він обходить дерево каталогів від заданого кореня, ігноруючи певні директорії (наприклад, `.git`, `node_modules`) та шляхи, вказані в `ignorePaths`. Це дозволяє автоматизувати процес аналізу конфігураційних файлів та інших ресурсів у проєкті.
|
|
12
10
|
|
|
13
11
|
## Поведінка
|
|
@@ -1,14 +1,12 @@
|
|
|
1
1
|
---
|
|
2
|
+
type: JS Module
|
|
3
|
+
title: with-lock.mjs
|
|
4
|
+
resource: npm/scripts/utils/with-lock.mjs
|
|
2
5
|
docgen:
|
|
3
|
-
source: npm/scripts/utils/with-lock.mjs
|
|
4
6
|
crc: 21848085
|
|
5
7
|
score: 95
|
|
6
8
|
---
|
|
7
9
|
|
|
8
|
-
# with-lock.mjs
|
|
9
|
-
|
|
10
|
-
## Огляд
|
|
11
|
-
|
|
12
10
|
Файл реалізує механізм захисту важких команд через атомарне блокування та унікалізацію результатів. Функції дозволяють перевіряти можливість повторного використання результату з кешу та виконувати команду через серіалізований механізм. Механізм використовує `mkdirSync-based lock` та `sha256-dedup` з TTL.
|
|
13
11
|
|
|
14
12
|
## Поведінка
|
|
@@ -1,13 +1,11 @@
|
|
|
1
1
|
---
|
|
2
|
+
type: JS Module
|
|
3
|
+
title: worktree-fingerprint.mjs
|
|
4
|
+
resource: npm/scripts/utils/worktree-fingerprint.mjs
|
|
2
5
|
docgen:
|
|
3
|
-
source: npm/scripts/utils/worktree-fingerprint.mjs
|
|
4
6
|
crc: df297382
|
|
5
7
|
---
|
|
6
8
|
|
|
7
|
-
# worktree-fingerprint.mjs
|
|
8
|
-
|
|
9
|
-
## Огляд
|
|
10
|
-
|
|
11
9
|
Файл надає унікальний відбиток робочої директорії. Цей відбиток використовується для ідентифікації та порівняння робочих директорій, забезпечуючи їх унікальність у системі. Він слугує базовим інструментом для відстеження та управління версіями.
|
|
12
10
|
|
|
13
11
|
## Поведінка
|
|
@@ -1,13 +1,11 @@
|
|
|
1
1
|
---
|
|
2
|
+
type: JS Module
|
|
3
|
+
title: docgen-ignore.mjs
|
|
4
|
+
resource: npm/skills/doc-aggregate/js/docgen-ignore.mjs
|
|
2
5
|
docgen:
|
|
3
|
-
source: npm/skills/doc-aggregate/js/docgen-ignore.mjs
|
|
4
6
|
crc: 5faaffd0
|
|
5
7
|
---
|
|
6
8
|
|
|
7
|
-
# docgen-ignore
|
|
8
|
-
|
|
9
|
-
## Огляд
|
|
10
|
-
|
|
11
9
|
Re-export спільного списку ignore-глобів зі скіла doc-files: обидва скіли документації (пофайлові доки й агрегати) мусять бачити однакове дерево кодових файлів, інакше агрегат посилатиметься на файли без док або навпаки.
|
|
12
10
|
|
|
13
11
|
## Поведінка
|
|
@@ -1,14 +1,12 @@
|
|
|
1
1
|
---
|
|
2
|
+
type: JS Module
|
|
3
|
+
title: docgen-scan.mjs
|
|
4
|
+
resource: npm/skills/doc-aggregate/js/docgen-scan.mjs
|
|
2
5
|
docgen:
|
|
3
|
-
source: npm/skills/doc-aggregate/js/docgen-scan.mjs
|
|
4
6
|
crc: 193dd362
|
|
5
7
|
score: 100
|
|
6
8
|
---
|
|
7
9
|
|
|
8
|
-
# docgen-scan.mjs
|
|
9
|
-
|
|
10
|
-
## Огляд
|
|
11
|
-
|
|
12
10
|
isSourceFile
|
|
13
11
|
Перевіряє, чи є файл коду, який слугує джерелом для документування.
|
|
14
12
|
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
---
|
|
2
|
+
type: Directory Index
|
|
3
|
+
title: npm/skills/doc-aggregate/js
|
|
4
|
+
resource: npm/skills/doc-aggregate/js/
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# npm/skills/doc-aggregate/js
|
|
8
|
+
|
|
9
|
+
| Файл | Тип |
|
|
10
|
+
|---|---|
|
|
11
|
+
| [docgen-ignore.mjs](docgen-ignore.md) | JS Module |
|
|
12
|
+
| [docgen-scan.mjs](docgen-scan.md) | JS Module |
|
|
@@ -1,14 +1,12 @@
|
|
|
1
1
|
---
|
|
2
|
+
type: JS Module
|
|
3
|
+
title: check.mjs
|
|
4
|
+
resource: npm/skills/start-check/js/check.mjs
|
|
2
5
|
docgen:
|
|
3
|
-
source: npm/skills/start-check/js/check.mjs
|
|
4
6
|
crc: 1f8fb2f0
|
|
5
7
|
score: 95
|
|
6
8
|
---
|
|
7
9
|
|
|
8
|
-
# check.mjs
|
|
9
|
-
|
|
10
|
-
## Огляд
|
|
11
|
-
|
|
12
10
|
Файл надає інструменти для класифікації типів процесу, сканування конфігурації воркспейсів, парсингу логів та запуску скриптів.
|
|
13
11
|
|
|
14
12
|
## Поведінка
|
|
@@ -1,14 +1,12 @@
|
|
|
1
1
|
---
|
|
2
|
+
type: JS Module
|
|
3
|
+
title: diff.mjs
|
|
4
|
+
resource: npm/skills/taze/js/diff.mjs
|
|
2
5
|
docgen:
|
|
3
|
-
source: npm/skills/taze/js/diff.mjs
|
|
4
6
|
crc: fe4d76ce
|
|
5
7
|
score: 100
|
|
6
8
|
---
|
|
7
9
|
|
|
8
|
-
# diff.mjs
|
|
9
|
-
|
|
10
|
-
## Огляд
|
|
11
|
-
|
|
12
10
|
parseVersion
|
|
13
11
|
Парсить версію з specifier.
|
|
14
12
|
|
package/scripts/lib/worktree.mjs
DELETED
|
@@ -1,126 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Чиста логіка worktree-tool `n-cursor worktree` (без git/fs side-effects).
|
|
3
|
-
*
|
|
4
|
-
* Тут — детерміновані, тестовані без git функції:
|
|
5
|
-
* - `sanitizeBranch` — імʼя гілки → безпечне імʼя каталогу/файла (слеш та інші
|
|
6
|
-
* небезпечні для шляху символи → дефіс), щоб структура `.worktrees/` лишалась пласкою;
|
|
7
|
-
* - `worktreePaths` — шляхи checkout і файла-опису поруч;
|
|
8
|
-
* - `buildDescription` — текст інвентарного `.worktrees/<name>.md` за конвенцією worktree.mdc;
|
|
9
|
-
* - `findOrphanDescFiles` — `.md`-описи без зареєстрованого worktree (для `prune`).
|
|
10
|
-
*
|
|
11
|
-
* Оркестрація (виклики git, запис файлів, argv) — у `npm/scripts/worktree-cli.mjs`.
|
|
12
|
-
*/
|
|
13
|
-
import { basename, join } from 'node:path'
|
|
14
|
-
|
|
15
|
-
/** Символи, безпечні для імені каталогу/файла; решта → дефіс. */
|
|
16
|
-
const UNSAFE_PATH_CHARS_RE = /[^a-zA-Z0-9._-]+/gu
|
|
17
|
-
const MD_EXTENSION_RE = /\.md$/u
|
|
18
|
-
|
|
19
|
-
/**
|
|
20
|
-
* Перетворює імʼя git-гілки на безпечне імʼя каталогу/файла для `.worktrees/`.
|
|
21
|
-
* @param {string} branch імʼя git-гілки (наприклад `feat/skill-meta`)
|
|
22
|
-
* @returns {string} пласке імʼя (наприклад `feat-skill-meta`)
|
|
23
|
-
*/
|
|
24
|
-
export function sanitizeBranch(branch) {
|
|
25
|
-
if (typeof branch !== 'string' || branch.trim() === '') {
|
|
26
|
-
throw new Error('worktree: імʼя гілки обовʼязкове')
|
|
27
|
-
}
|
|
28
|
-
const sanitized = branch
|
|
29
|
-
.trim()
|
|
30
|
-
.replace(UNSAFE_PATH_CHARS_RE, '-')
|
|
31
|
-
.replaceAll(/^-{1,80}|-{1,80}$/gu, '')
|
|
32
|
-
if (sanitized === '') {
|
|
33
|
-
throw new Error(`worktree: імʼя гілки "${branch}" не містить допустимих символів`)
|
|
34
|
-
}
|
|
35
|
-
return sanitized
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
/**
|
|
39
|
-
* Перша вільна назва гілки за конвенцією `base`, `base2`, `base3`, … —
|
|
40
|
-
* суфікс просто число без розділювача (як `main-fix` → `main-fix2`).
|
|
41
|
-
* Дає змогу `worktree add` спершу перевірити зайнятість і обрати назву,
|
|
42
|
-
* що спрацює, замість падіння на `fatal: a branch named '…' already exists`.
|
|
43
|
-
* @param {string} branch бажане імʼя гілки
|
|
44
|
-
* @param {(candidate: string) => boolean} isTaken чи зайнята назва (гілка/worktree вже існують)
|
|
45
|
-
* @param {number} [limit] стеля кількості спроб (захист від нескінченного циклу)
|
|
46
|
-
* @returns {string} перша вільна назва (= `branch`, якщо вона вільна)
|
|
47
|
-
*/
|
|
48
|
-
export function firstFreeBranch(branch, isTaken, limit = 1000) {
|
|
49
|
-
if (typeof branch !== 'string' || branch.trim() === '') {
|
|
50
|
-
throw new Error('worktree: імʼя гілки обовʼязкове')
|
|
51
|
-
}
|
|
52
|
-
const base = branch.trim()
|
|
53
|
-
if (!isTaken(base)) return base
|
|
54
|
-
for (let n = 2; n <= limit; n++) {
|
|
55
|
-
const candidate = `${base}${n}`
|
|
56
|
-
if (!isTaken(candidate)) return candidate
|
|
57
|
-
}
|
|
58
|
-
throw new Error(`worktree: не знайдено вільної назви для "${base}" за ${limit} спроб`)
|
|
59
|
-
}
|
|
60
|
-
|
|
61
|
-
/**
|
|
62
|
-
* Детерміновані шляхи checkout і файла-опису для гілки.
|
|
63
|
-
* @param {string} repoRoot абсолютний корінь репозиторію
|
|
64
|
-
* @param {string} branch імʼя git-гілки
|
|
65
|
-
* @returns {{ checkout: string, descFile: string }} абсолютні шляхи
|
|
66
|
-
*/
|
|
67
|
-
export function worktreePaths(repoRoot, branch) {
|
|
68
|
-
const name = sanitizeBranch(branch)
|
|
69
|
-
const dir = join(repoRoot, '.worktrees')
|
|
70
|
-
return { checkout: join(dir, name), descFile: join(dir, `${name}.md`) }
|
|
71
|
-
}
|
|
72
|
-
|
|
73
|
-
/**
|
|
74
|
-
* Текст інвентарного файла-опису worktree.
|
|
75
|
-
* @param {{ branch: string, task: string, baseCommit: string, date: string }} params поля опису
|
|
76
|
-
* @returns {string} markdown-вміст `.worktrees/<name>.md`
|
|
77
|
-
*/
|
|
78
|
-
export function buildDescription({ branch, task, baseCommit, date }) {
|
|
79
|
-
return [
|
|
80
|
-
`# ${branch}`,
|
|
81
|
-
'',
|
|
82
|
-
`**Задача:** ${task}`,
|
|
83
|
-
`**Дата:** ${date}`,
|
|
84
|
-
`**База (коміт):** ${baseCommit}`,
|
|
85
|
-
'',
|
|
86
|
-
`Прибрати: \`npx @nitra/cursor worktree remove ${branch}\``,
|
|
87
|
-
''
|
|
88
|
-
].join('\n')
|
|
89
|
-
}
|
|
90
|
-
|
|
91
|
-
/** Поріг переліку файлів у нагадуванні: понад нього показуємо лише кількість. */
|
|
92
|
-
const DIRTY_LIST_LIMIT = 10
|
|
93
|
-
|
|
94
|
-
/**
|
|
95
|
-
* Нагадування про незакомічені зміни основного дерева, які **не** потрапляють
|
|
96
|
-
* у новий worktree (він створюється від HEAD, без брудного стану). До
|
|
97
|
-
* `limit` файлів — перелік шляхів; більше — лише підсумкова кількість, щоб не
|
|
98
|
-
* залити екран. Призначене для виводу одразу після `worktree add`.
|
|
99
|
-
* @param {string} porcelain вивід `git status --porcelain` основного дерева
|
|
100
|
-
* @param {number} [limit] поріг переліку (понад нього — лише кількість)
|
|
101
|
-
* @returns {string | null} текст нагадування або `null`, якщо дерево чисте
|
|
102
|
-
*/
|
|
103
|
-
export function buildDirtyNotice(porcelain, limit = DIRTY_LIST_LIMIT) {
|
|
104
|
-
// Порядок: XY + пробіл (3 символи) + шлях; для перейменування — `orig -> dest`.
|
|
105
|
-
const files = String(porcelain ?? '')
|
|
106
|
-
.split('\n')
|
|
107
|
-
.map(line => line.slice(3).trim())
|
|
108
|
-
.filter(Boolean)
|
|
109
|
-
if (files.length === 0) return null
|
|
110
|
-
const head = `⚠️ Основне дерево має ${files.length} незакомічених змін — вони НЕ потрапили в цей worktree (створено від HEAD).`
|
|
111
|
-
const tail = ' Закоміть потрібні файли, якщо worktree-скіл має їх бачити.'
|
|
112
|
-
if (files.length > limit) return `${head}\n${tail}`
|
|
113
|
-
const list = files.map(f => ` - ${f}`).join('\n')
|
|
114
|
-
return `${head}\n${list}\n${tail}`
|
|
115
|
-
}
|
|
116
|
-
|
|
117
|
-
/**
|
|
118
|
-
* `.md`-описи без відповідного зареєстрованого worktree-checkout.
|
|
119
|
-
* @param {string[]} descFiles абсолютні шляхи `.worktrees/*.md`
|
|
120
|
-
* @param {string[]} registeredCheckouts абсолютні шляхи зареєстрованих worktree-checkout
|
|
121
|
-
* @returns {string[]} осиротілі `.md` (підмножина `descFiles`)
|
|
122
|
-
*/
|
|
123
|
-
export function findOrphanDescFiles(descFiles, registeredCheckouts) {
|
|
124
|
-
const checkoutBasenames = new Set(registeredCheckouts.map(c => basename(c)))
|
|
125
|
-
return descFiles.filter(md => !checkoutBasenames.has(basename(md).replace(MD_EXTENSION_RE, '')))
|
|
126
|
-
}
|