@codyswann/lisa 4.49.0 → 4.50.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/all/copy-overwrite/scripts/check-conflict-markers.mjs +4 -1
- package/all/copy-overwrite/scripts/lib/gate-failure-diagnosis.mjs +163 -0
- package/all/copy-overwrite/scripts/lisa-enforcement-fallback.sh +178 -1
- package/all/copy-overwrite/scripts/lisa-hooks/block-direct-issue-create.sh +89 -10
- package/all/copy-overwrite/scripts/lisa-hooks/parity-safety-net.sh +44 -0
- package/all/copy-overwrite/scripts/lisa-lint-staged-preflight.mjs +1 -1
- package/all/copy-overwrite/scripts/lisa-run-gates.mjs +24 -24
- package/all/copy-overwrite/scripts/lisa-work-item.mjs +490 -81
- package/cdk/package-lisa/package.lisa.json +45 -15
- package/dist/core/lisa-owned-hash-ledger.d.ts.map +1 -1
- package/dist/core/lisa-owned-hash-ledger.js +76 -0
- package/dist/core/lisa-owned-hash-ledger.js.map +1 -1
- package/dist/core/nightly-e2e-guard-behavior-certificate.js +2 -2
- package/dist/core/upstream-evidence-manifest.d.ts.map +1 -1
- package/dist/core/upstream-evidence-manifest.js +121 -227
- package/dist/core/upstream-evidence-manifest.js.map +1 -1
- package/dist/opencode/plugin-templates/lisa-block-direct-issue-create.ts +45 -1
- package/dist/opencode/plugin-templates/parity-safety-net.sh +44 -0
- package/expo/package-lisa/package.lisa.json +110 -53
- package/harper-fabric/package-lisa/package.lisa.json +62 -32
- package/nestjs/package-lisa/package.lisa.json +57 -27
- package/npm-package/package-lisa/package.lisa.json +43 -7
- package/package.json +11 -7
- package/phaser/copy-overwrite/ast-grep/rules/no-day-truncating-file-age-predicate.yml +50 -0
- package/phaser/package-lisa/package.lisa.json +62 -32
- package/plugins/lisa/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa/.codex-plugin/plugin.json +1 -1
- package/plugins/lisa/.codex-plugin/skills/lisa-drive-pr-to-merge/SKILL.md +17 -1
- package/plugins/lisa/.codex-plugin/skills/lisa-github-build-intake/SKILL.md +4 -0
- package/plugins/lisa/.codex-plugin/skills/lisa-jira-build-intake/SKILL.md +4 -0
- package/plugins/lisa/.codex-plugin/skills/lisa-linear-build-intake/SKILL.md +4 -0
- package/plugins/lisa/.codex-plugin/skills/lisa-repair-intake/SKILL.md +4 -1
- package/plugins/lisa/hooks/block-direct-issue-create.sh +89 -10
- package/plugins/lisa/hooks/discharge-work-item-gates.sh +7 -1
- package/plugins/lisa/hooks/parity-safety-net.sh +44 -0
- package/plugins/lisa/hooks/threshold-ratchet-families.mjs +12 -0
- package/plugins/lisa/rules/eager/00-rule-index.md +79 -0
- package/plugins/lisa/rules/eager/base-rules.md +10 -0
- package/plugins/lisa/rules/eager/config-resolution.md +1 -88
- package/plugins/lisa/rules/reference/automation-runbook-contract.md +97 -0
- package/plugins/lisa/rules/reference/bdd-e2e-coverage.md +56 -0
- package/plugins/lisa/rules/reference/blocker-containment.md +58 -0
- package/plugins/lisa/rules/reference/claim-archaeology.md +42 -0
- package/plugins/lisa/rules/reference/claim-evidence-mapping.md +83 -0
- package/plugins/lisa/rules/reference/claim-time-guards.md +37 -0
- package/plugins/lisa/rules/reference/config-resolution.md +97 -0
- package/plugins/lisa/rules/reference/control-reachability.md +44 -0
- package/plugins/lisa/rules/reference/convergent-review.md +31 -0
- package/plugins/lisa/rules/reference/credential-substrate-precedence.md +57 -0
- package/plugins/lisa/rules/reference/dependency-decision-records.md +37 -0
- package/plugins/lisa/rules/reference/dependency-internalization-kit.md +47 -0
- package/plugins/lisa/rules/reference/dependency-trust-classes.md +48 -0
- package/plugins/lisa/rules/reference/deployed-state-readback.md +52 -0
- package/plugins/lisa/rules/reference/derived-branch-plan.md +52 -0
- package/plugins/lisa/rules/reference/design-source-of-truth.md +43 -0
- package/plugins/lisa/rules/reference/design-value-binding.md +103 -0
- package/plugins/lisa/rules/reference/documentation-source-paths.md +18 -0
- package/plugins/lisa/rules/reference/leaf-only-lifecycle.md +75 -0
- package/plugins/lisa/rules/reference/observability-audit.md +20 -0
- package/plugins/lisa/rules/reference/prd-definition-of-ready.md +37 -0
- package/plugins/lisa/rules/reference/prd-lifecycle-rollup.md +36 -0
- package/plugins/lisa/rules/reference/pre-flight-autofill.md +88 -0
- package/plugins/lisa/rules/reference/promotion-contract.md +21 -0
- package/plugins/lisa/rules/reference/readiness-rubric.md +63 -0
- package/plugins/lisa/rules/reference/ready-role-filing.md +34 -0
- package/plugins/lisa/rules/reference/rejection-detection.md +69 -0
- package/plugins/lisa/rules/reference/repo-scope-split.md +48 -0
- package/plugins/lisa/rules/reference/reset-seed-coverage.md +55 -0
- package/plugins/lisa/rules/reference/usage-accounting.md +38 -0
- package/plugins/lisa/rules/reference/work-item-definition-of-ready.md +32 -0
- package/plugins/lisa/scripts/intake-blocker-reprobe.mjs +158 -1
- package/plugins/lisa/skills/lisa-drive-pr-to-merge/SKILL.md +17 -1
- package/plugins/lisa/skills/lisa-github-build-intake/SKILL.md +4 -0
- package/plugins/lisa/skills/lisa-jira-build-intake/SKILL.md +4 -0
- package/plugins/lisa/skills/lisa-linear-build-intake/SKILL.md +4 -0
- package/plugins/lisa/skills/lisa-repair-intake/SKILL.md +4 -1
- package/plugins/lisa-agy/hooks/block-direct-issue-create.sh +89 -10
- package/plugins/lisa-agy/hooks/parity-safety-net.sh +44 -0
- package/plugins/lisa-agy/plugin.json +1 -1
- package/plugins/lisa-agy/scripts/intake-blocker-reprobe.mjs +158 -1
- package/plugins/lisa-agy/skills/lisa-drive-pr-to-merge/SKILL.md +17 -1
- package/plugins/lisa-agy/skills/lisa-github-build-intake/SKILL.md +4 -0
- package/plugins/lisa-agy/skills/lisa-jira-build-intake/SKILL.md +4 -0
- package/plugins/lisa-agy/skills/lisa-linear-build-intake/SKILL.md +4 -0
- package/plugins/lisa-agy/skills/lisa-repair-intake/SKILL.md +4 -1
- package/plugins/lisa-cdk/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-cdk/.codex-plugin/plugin.json +1 -1
- package/plugins/lisa-cdk-agy/plugin.json +1 -1
- package/plugins/lisa-cdk-copilot/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-cdk-cursor/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-copilot/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-copilot/hooks/block-direct-issue-create.sh +89 -10
- package/plugins/lisa-copilot/hooks/discharge-work-item-gates.sh +7 -1
- package/plugins/lisa-copilot/hooks/parity-safety-net.sh +44 -0
- package/plugins/lisa-copilot/hooks/threshold-ratchet-families.mjs +12 -0
- package/plugins/lisa-copilot/rules/eager/00-rule-index.md +79 -0
- package/plugins/lisa-copilot/rules/eager/base-rules.md +10 -0
- package/plugins/lisa-copilot/rules/eager/config-resolution.md +1 -88
- package/plugins/lisa-copilot/rules/reference/automation-runbook-contract.md +97 -0
- package/plugins/lisa-copilot/rules/reference/bdd-e2e-coverage.md +56 -0
- package/plugins/lisa-copilot/rules/reference/blocker-containment.md +58 -0
- package/plugins/lisa-copilot/rules/reference/claim-archaeology.md +42 -0
- package/plugins/lisa-copilot/rules/reference/claim-evidence-mapping.md +83 -0
- package/plugins/lisa-copilot/rules/reference/claim-time-guards.md +37 -0
- package/plugins/lisa-copilot/rules/reference/config-resolution.md +97 -0
- package/plugins/lisa-copilot/rules/reference/control-reachability.md +44 -0
- package/plugins/lisa-copilot/rules/reference/convergent-review.md +31 -0
- package/plugins/lisa-copilot/rules/reference/credential-substrate-precedence.md +57 -0
- package/plugins/lisa-copilot/rules/reference/dependency-decision-records.md +37 -0
- package/plugins/lisa-copilot/rules/reference/dependency-internalization-kit.md +47 -0
- package/plugins/lisa-copilot/rules/reference/dependency-trust-classes.md +48 -0
- package/plugins/lisa-copilot/rules/reference/deployed-state-readback.md +52 -0
- package/plugins/lisa-copilot/rules/reference/derived-branch-plan.md +52 -0
- package/plugins/lisa-copilot/rules/reference/design-source-of-truth.md +43 -0
- package/plugins/lisa-copilot/rules/reference/design-value-binding.md +103 -0
- package/plugins/lisa-copilot/rules/reference/documentation-source-paths.md +18 -0
- package/plugins/lisa-copilot/rules/reference/leaf-only-lifecycle.md +75 -0
- package/plugins/lisa-copilot/rules/reference/observability-audit.md +20 -0
- package/plugins/lisa-copilot/rules/reference/prd-definition-of-ready.md +37 -0
- package/plugins/lisa-copilot/rules/reference/prd-lifecycle-rollup.md +36 -0
- package/plugins/lisa-copilot/rules/reference/pre-flight-autofill.md +88 -0
- package/plugins/lisa-copilot/rules/reference/promotion-contract.md +21 -0
- package/plugins/lisa-copilot/rules/reference/readiness-rubric.md +63 -0
- package/plugins/lisa-copilot/rules/reference/ready-role-filing.md +34 -0
- package/plugins/lisa-copilot/rules/reference/rejection-detection.md +69 -0
- package/plugins/lisa-copilot/rules/reference/repo-scope-split.md +48 -0
- package/plugins/lisa-copilot/rules/reference/reset-seed-coverage.md +55 -0
- package/plugins/lisa-copilot/rules/reference/usage-accounting.md +38 -0
- package/plugins/lisa-copilot/rules/reference/work-item-definition-of-ready.md +32 -0
- package/plugins/lisa-copilot/scripts/intake-blocker-reprobe.mjs +158 -1
- package/plugins/lisa-copilot/skills/lisa-drive-pr-to-merge/SKILL.md +17 -1
- package/plugins/lisa-copilot/skills/lisa-github-build-intake/SKILL.md +4 -0
- package/plugins/lisa-copilot/skills/lisa-jira-build-intake/SKILL.md +4 -0
- package/plugins/lisa-copilot/skills/lisa-linear-build-intake/SKILL.md +4 -0
- package/plugins/lisa-copilot/skills/lisa-repair-intake/SKILL.md +4 -1
- package/plugins/lisa-cursor/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-cursor/hooks/block-direct-issue-create.sh +89 -10
- package/plugins/lisa-cursor/hooks/discharge-work-item-gates.sh +7 -1
- package/plugins/lisa-cursor/hooks/parity-safety-net.sh +44 -0
- package/plugins/lisa-cursor/hooks/threshold-ratchet-families.mjs +12 -0
- package/plugins/lisa-cursor/rules/00-rule-index.mdc +84 -0
- package/plugins/lisa-cursor/rules/automation-runbook-contract-reference.mdc +97 -0
- package/plugins/lisa-cursor/rules/base-rules.mdc +10 -0
- package/plugins/lisa-cursor/rules/bdd-e2e-coverage-reference.mdc +56 -0
- package/plugins/lisa-cursor/rules/blocker-containment-reference.mdc +58 -0
- package/plugins/lisa-cursor/rules/claim-archaeology-reference.mdc +42 -0
- package/plugins/lisa-cursor/rules/claim-evidence-mapping-reference.mdc +83 -0
- package/plugins/lisa-cursor/rules/claim-time-guards-reference.mdc +37 -0
- package/plugins/lisa-cursor/rules/config-resolution-reference.mdc +97 -0
- package/plugins/lisa-cursor/rules/config-resolution.mdc +1 -88
- package/plugins/lisa-cursor/rules/control-reachability-reference.mdc +44 -0
- package/plugins/lisa-cursor/rules/convergent-review-reference.mdc +31 -0
- package/plugins/lisa-cursor/rules/credential-substrate-precedence-reference.mdc +57 -0
- package/plugins/lisa-cursor/rules/dependency-decision-records-reference.mdc +37 -0
- package/plugins/lisa-cursor/rules/dependency-internalization-kit-reference.mdc +47 -0
- package/plugins/lisa-cursor/rules/dependency-trust-classes-reference.mdc +48 -0
- package/plugins/lisa-cursor/rules/deployed-state-readback-reference.mdc +52 -0
- package/plugins/lisa-cursor/rules/derived-branch-plan-reference.mdc +52 -0
- package/plugins/lisa-cursor/rules/design-source-of-truth-reference.mdc +43 -0
- package/plugins/lisa-cursor/rules/design-value-binding-reference.mdc +103 -0
- package/plugins/lisa-cursor/rules/documentation-source-paths-reference.mdc +18 -0
- package/plugins/lisa-cursor/rules/leaf-only-lifecycle-reference.mdc +75 -0
- package/plugins/lisa-cursor/rules/observability-audit-reference.mdc +20 -0
- package/plugins/lisa-cursor/rules/prd-definition-of-ready-reference.mdc +37 -0
- package/plugins/lisa-cursor/rules/prd-lifecycle-rollup-reference.mdc +36 -0
- package/plugins/lisa-cursor/rules/pre-flight-autofill-reference.mdc +88 -0
- package/plugins/lisa-cursor/rules/promotion-contract-reference.mdc +21 -0
- package/plugins/lisa-cursor/rules/readiness-rubric-reference.mdc +63 -0
- package/plugins/lisa-cursor/rules/ready-role-filing-reference.mdc +34 -0
- package/plugins/lisa-cursor/rules/rejection-detection-reference.mdc +69 -0
- package/plugins/lisa-cursor/rules/repo-scope-split-reference.mdc +48 -0
- package/plugins/lisa-cursor/rules/reset-seed-coverage-reference.mdc +55 -0
- package/plugins/lisa-cursor/rules/usage-accounting-reference.mdc +38 -0
- package/plugins/lisa-cursor/rules/work-item-definition-of-ready-reference.mdc +32 -0
- package/plugins/lisa-cursor/scripts/intake-blocker-reprobe.mjs +158 -1
- package/plugins/lisa-cursor/skills/lisa-drive-pr-to-merge/SKILL.md +17 -1
- package/plugins/lisa-cursor/skills/lisa-github-build-intake/SKILL.md +4 -0
- package/plugins/lisa-cursor/skills/lisa-jira-build-intake/SKILL.md +4 -0
- package/plugins/lisa-cursor/skills/lisa-linear-build-intake/SKILL.md +4 -0
- package/plugins/lisa-cursor/skills/lisa-repair-intake/SKILL.md +4 -1
- package/plugins/lisa-expo/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-expo/.codex-plugin/plugin.json +1 -1
- package/plugins/lisa-expo-agy/plugin.json +1 -1
- package/plugins/lisa-expo-copilot/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-expo-cursor/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-harper-fabric/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-harper-fabric/.codex-plugin/plugin.json +1 -1
- package/plugins/lisa-harper-fabric-agy/plugin.json +1 -1
- package/plugins/lisa-harper-fabric-copilot/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-harper-fabric-cursor/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-nestjs/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-nestjs/.codex-plugin/plugin.json +1 -1
- package/plugins/lisa-nestjs-agy/plugin.json +1 -1
- package/plugins/lisa-nestjs-copilot/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-nestjs-cursor/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-openclaw/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-openclaw/.codex-plugin/plugin.json +1 -1
- package/plugins/lisa-openclaw-agy/plugin.json +1 -1
- package/plugins/lisa-openclaw-copilot/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-openclaw-cursor/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-phaser/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-phaser/.codex-plugin/plugin.json +1 -1
- package/plugins/lisa-phaser-agy/plugin.json +1 -1
- package/plugins/lisa-phaser-copilot/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-phaser-cursor/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-rails/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-rails/.codex-plugin/plugin.json +1 -1
- package/plugins/lisa-rails-agy/plugin.json +1 -1
- package/plugins/lisa-rails-copilot/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-rails-cursor/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-typescript/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-typescript/.codex-plugin/plugin.json +1 -1
- package/plugins/lisa-typescript-agy/plugin.json +1 -1
- package/plugins/lisa-typescript-copilot/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-typescript-cursor/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-wiki/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-wiki/.codex-plugin/plugin.json +1 -1
- package/plugins/lisa-wiki-agy/plugin.json +1 -1
- package/plugins/lisa-wiki-copilot/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-wiki-cursor/.claude-plugin/plugin.json +1 -1
- package/plugins/src/base/hooks/block-direct-issue-create.sh +89 -10
- package/plugins/src/base/hooks/discharge-work-item-gates.sh +7 -1
- package/plugins/src/base/hooks/parity-safety-net.sh +44 -0
- package/plugins/src/base/hooks/threshold-ratchet-families.mjs +12 -0
- package/plugins/src/base/rules/eager/00-rule-index.md +79 -0
- package/plugins/src/base/rules/eager/base-rules.md +10 -0
- package/plugins/src/base/rules/eager/config-resolution.md +1 -88
- package/plugins/src/base/rules/reference/automation-runbook-contract.md +97 -0
- package/plugins/src/base/rules/reference/bdd-e2e-coverage.md +56 -0
- package/plugins/src/base/rules/reference/blocker-containment.md +58 -0
- package/plugins/src/base/rules/reference/claim-archaeology.md +42 -0
- package/plugins/src/base/rules/reference/claim-evidence-mapping.md +83 -0
- package/plugins/src/base/rules/reference/claim-time-guards.md +37 -0
- package/plugins/src/base/rules/reference/config-resolution.md +97 -0
- package/plugins/src/base/rules/reference/control-reachability.md +44 -0
- package/plugins/src/base/rules/reference/convergent-review.md +31 -0
- package/plugins/src/base/rules/reference/credential-substrate-precedence.md +57 -0
- package/plugins/src/base/rules/reference/dependency-decision-records.md +37 -0
- package/plugins/src/base/rules/reference/dependency-internalization-kit.md +47 -0
- package/plugins/src/base/rules/reference/dependency-trust-classes.md +48 -0
- package/plugins/src/base/rules/reference/deployed-state-readback.md +52 -0
- package/plugins/src/base/rules/reference/derived-branch-plan.md +52 -0
- package/plugins/src/base/rules/reference/design-source-of-truth.md +43 -0
- package/plugins/src/base/rules/reference/design-value-binding.md +103 -0
- package/plugins/src/base/rules/reference/documentation-source-paths.md +18 -0
- package/plugins/src/base/rules/reference/leaf-only-lifecycle.md +75 -0
- package/plugins/src/base/rules/reference/observability-audit.md +20 -0
- package/plugins/src/base/rules/reference/prd-definition-of-ready.md +37 -0
- package/plugins/src/base/rules/reference/prd-lifecycle-rollup.md +36 -0
- package/plugins/src/base/rules/reference/pre-flight-autofill.md +88 -0
- package/plugins/src/base/rules/reference/promotion-contract.md +21 -0
- package/plugins/src/base/rules/reference/readiness-rubric.md +63 -0
- package/plugins/src/base/rules/reference/ready-role-filing.md +34 -0
- package/plugins/src/base/rules/reference/rejection-detection.md +69 -0
- package/plugins/src/base/rules/reference/repo-scope-split.md +48 -0
- package/plugins/src/base/rules/reference/reset-seed-coverage.md +55 -0
- package/plugins/src/base/rules/reference/usage-accounting.md +38 -0
- package/plugins/src/base/rules/reference/work-item-definition-of-ready.md +32 -0
- package/plugins/src/base/scripts/intake-blocker-reprobe.mjs +158 -1
- package/plugins/src/base/skills/lisa-drive-pr-to-merge/SKILL.md +17 -1
- package/plugins/src/base/skills/lisa-github-build-intake/SKILL.md +4 -0
- package/plugins/src/base/skills/lisa-jira-build-intake/SKILL.md +4 -0
- package/plugins/src/base/skills/lisa-linear-build-intake/SKILL.md +4 -0
- package/plugins/src/base/skills/lisa-repair-intake/SKILL.md +4 -1
- package/rails/copy-overwrite/ast-grep/rules/no-day-truncating-file-age-predicate.yml +50 -0
- package/rails/copy-overwrite/scripts/threshold-ratchet-families.mjs +12 -0
- package/scripts/check-eager-rule-budget.mjs +176 -0
- package/scripts/check-generated-artifact-merge-coverage.mjs +7 -0
- package/scripts/check-rules-pairing.sh +45 -14
- package/scripts/check-shipped-surface-removals.mjs +851 -0
- package/scripts/generate-export-surface.mjs +318 -0
- package/scripts/lib/shipped-surface.mjs +212 -0
- package/scripts/lisa-enforcement-fallback.sh +178 -1
- package/scripts/remedy-conformance.mjs +435 -0
- package/scripts/two-channel-couplings.json +2 -2
- package/typescript/copy-contents/.husky/pre-push +147 -2
- package/typescript/copy-overwrite/ast-grep/rules/no-day-truncating-file-age-predicate.yml +50 -0
- package/typescript/copy-overwrite/audit.ignore.config.json +0 -10
- package/typescript/copy-overwrite/scripts/lisa-mutation.mjs +180 -29
- package/typescript/copy-overwrite/scripts/threshold-ratchet-families.mjs +12 -0
- package/typescript/package-lisa/package.lisa.json +72 -42
- package/plugins/lisa/rules/eager/automation-runbook-contract.md +0 -92
- package/plugins/lisa/rules/eager/bdd-e2e-coverage.md +0 -51
- package/plugins/lisa/rules/eager/blocker-containment.md +0 -53
- package/plugins/lisa/rules/eager/claim-archaeology.md +0 -37
- package/plugins/lisa/rules/eager/claim-evidence-mapping.md +0 -78
- package/plugins/lisa/rules/eager/claim-time-guards.md +0 -32
- package/plugins/lisa/rules/eager/control-reachability.md +0 -39
- package/plugins/lisa/rules/eager/convergent-review.md +0 -24
- package/plugins/lisa/rules/eager/credential-substrate-precedence.md +0 -54
- package/plugins/lisa/rules/eager/dependency-decision-records.md +0 -32
- package/plugins/lisa/rules/eager/dependency-internalization-kit.md +0 -42
- package/plugins/lisa/rules/eager/dependency-trust-classes.md +0 -43
- package/plugins/lisa/rules/eager/deployed-state-readback.md +0 -47
- package/plugins/lisa/rules/eager/derived-branch-plan.md +0 -47
- package/plugins/lisa/rules/eager/design-source-of-truth.md +0 -38
- package/plugins/lisa/rules/eager/design-value-binding.md +0 -98
- package/plugins/lisa/rules/eager/documentation-source-paths.md +0 -13
- package/plugins/lisa/rules/eager/factory-model.md +0 -41
- package/plugins/lisa/rules/eager/leaf-only-lifecycle.md +0 -70
- package/plugins/lisa/rules/eager/observability-audit.md +0 -15
- package/plugins/lisa/rules/eager/prd-definition-of-ready.md +0 -32
- package/plugins/lisa/rules/eager/prd-lifecycle-rollup.md +0 -31
- package/plugins/lisa/rules/eager/pre-flight-autofill.md +0 -84
- package/plugins/lisa/rules/eager/project-learnings.md +0 -22
- package/plugins/lisa/rules/eager/promotion-contract.md +0 -18
- package/plugins/lisa/rules/eager/readiness-rubric.md +0 -58
- package/plugins/lisa/rules/eager/ready-role-filing.md +0 -29
- package/plugins/lisa/rules/eager/rejection-detection.md +0 -64
- package/plugins/lisa/rules/eager/repo-scope-split.md +0 -43
- package/plugins/lisa/rules/eager/reset-seed-coverage.md +0 -50
- package/plugins/lisa/rules/eager/usage-accounting.md +0 -33
- package/plugins/lisa/rules/eager/work-item-definition-of-ready.md +0 -27
- package/plugins/lisa-copilot/rules/eager/automation-runbook-contract.md +0 -92
- package/plugins/lisa-copilot/rules/eager/bdd-e2e-coverage.md +0 -51
- package/plugins/lisa-copilot/rules/eager/blocker-containment.md +0 -53
- package/plugins/lisa-copilot/rules/eager/claim-archaeology.md +0 -37
- package/plugins/lisa-copilot/rules/eager/claim-evidence-mapping.md +0 -78
- package/plugins/lisa-copilot/rules/eager/claim-time-guards.md +0 -32
- package/plugins/lisa-copilot/rules/eager/control-reachability.md +0 -39
- package/plugins/lisa-copilot/rules/eager/convergent-review.md +0 -24
- package/plugins/lisa-copilot/rules/eager/credential-substrate-precedence.md +0 -54
- package/plugins/lisa-copilot/rules/eager/dependency-decision-records.md +0 -32
- package/plugins/lisa-copilot/rules/eager/dependency-internalization-kit.md +0 -42
- package/plugins/lisa-copilot/rules/eager/dependency-trust-classes.md +0 -43
- package/plugins/lisa-copilot/rules/eager/deployed-state-readback.md +0 -47
- package/plugins/lisa-copilot/rules/eager/derived-branch-plan.md +0 -47
- package/plugins/lisa-copilot/rules/eager/design-source-of-truth.md +0 -38
- package/plugins/lisa-copilot/rules/eager/design-value-binding.md +0 -98
- package/plugins/lisa-copilot/rules/eager/documentation-source-paths.md +0 -13
- package/plugins/lisa-copilot/rules/eager/factory-model.md +0 -41
- package/plugins/lisa-copilot/rules/eager/leaf-only-lifecycle.md +0 -70
- package/plugins/lisa-copilot/rules/eager/observability-audit.md +0 -15
- package/plugins/lisa-copilot/rules/eager/prd-definition-of-ready.md +0 -32
- package/plugins/lisa-copilot/rules/eager/prd-lifecycle-rollup.md +0 -31
- package/plugins/lisa-copilot/rules/eager/pre-flight-autofill.md +0 -84
- package/plugins/lisa-copilot/rules/eager/project-learnings.md +0 -22
- package/plugins/lisa-copilot/rules/eager/promotion-contract.md +0 -18
- package/plugins/lisa-copilot/rules/eager/readiness-rubric.md +0 -58
- package/plugins/lisa-copilot/rules/eager/ready-role-filing.md +0 -29
- package/plugins/lisa-copilot/rules/eager/rejection-detection.md +0 -64
- package/plugins/lisa-copilot/rules/eager/repo-scope-split.md +0 -43
- package/plugins/lisa-copilot/rules/eager/reset-seed-coverage.md +0 -50
- package/plugins/lisa-copilot/rules/eager/usage-accounting.md +0 -33
- package/plugins/lisa-copilot/rules/eager/work-item-definition-of-ready.md +0 -27
- package/plugins/lisa-cursor/rules/automation-runbook-contract.mdc +0 -97
- package/plugins/lisa-cursor/rules/bdd-e2e-coverage.mdc +0 -56
- package/plugins/lisa-cursor/rules/blocker-containment.mdc +0 -58
- package/plugins/lisa-cursor/rules/claim-archaeology.mdc +0 -42
- package/plugins/lisa-cursor/rules/claim-evidence-mapping.mdc +0 -83
- package/plugins/lisa-cursor/rules/claim-time-guards.mdc +0 -37
- package/plugins/lisa-cursor/rules/control-reachability.mdc +0 -44
- package/plugins/lisa-cursor/rules/convergent-review.mdc +0 -29
- package/plugins/lisa-cursor/rules/credential-substrate-precedence.mdc +0 -59
- package/plugins/lisa-cursor/rules/dependency-decision-records.mdc +0 -37
- package/plugins/lisa-cursor/rules/dependency-internalization-kit.mdc +0 -47
- package/plugins/lisa-cursor/rules/dependency-trust-classes.mdc +0 -48
- package/plugins/lisa-cursor/rules/deployed-state-readback.mdc +0 -52
- package/plugins/lisa-cursor/rules/derived-branch-plan.mdc +0 -52
- package/plugins/lisa-cursor/rules/design-source-of-truth.mdc +0 -43
- package/plugins/lisa-cursor/rules/design-value-binding.mdc +0 -103
- package/plugins/lisa-cursor/rules/documentation-source-paths.mdc +0 -18
- package/plugins/lisa-cursor/rules/factory-model.mdc +0 -46
- package/plugins/lisa-cursor/rules/leaf-only-lifecycle.mdc +0 -75
- package/plugins/lisa-cursor/rules/observability-audit.mdc +0 -20
- package/plugins/lisa-cursor/rules/prd-definition-of-ready.mdc +0 -37
- package/plugins/lisa-cursor/rules/prd-lifecycle-rollup.mdc +0 -36
- package/plugins/lisa-cursor/rules/pre-flight-autofill.mdc +0 -89
- package/plugins/lisa-cursor/rules/project-learnings.mdc +0 -27
- package/plugins/lisa-cursor/rules/promotion-contract.mdc +0 -23
- package/plugins/lisa-cursor/rules/readiness-rubric.mdc +0 -63
- package/plugins/lisa-cursor/rules/ready-role-filing.mdc +0 -34
- package/plugins/lisa-cursor/rules/rejection-detection.mdc +0 -69
- package/plugins/lisa-cursor/rules/repo-scope-split.mdc +0 -48
- package/plugins/lisa-cursor/rules/reset-seed-coverage.mdc +0 -55
- package/plugins/lisa-cursor/rules/usage-accounting.mdc +0 -38
- package/plugins/lisa-cursor/rules/work-item-definition-of-ready.mdc +0 -32
- package/plugins/src/base/rules/eager/automation-runbook-contract.md +0 -92
- package/plugins/src/base/rules/eager/bdd-e2e-coverage.md +0 -51
- package/plugins/src/base/rules/eager/blocker-containment.md +0 -53
- package/plugins/src/base/rules/eager/claim-archaeology.md +0 -37
- package/plugins/src/base/rules/eager/claim-evidence-mapping.md +0 -78
- package/plugins/src/base/rules/eager/claim-time-guards.md +0 -32
- package/plugins/src/base/rules/eager/control-reachability.md +0 -39
- package/plugins/src/base/rules/eager/convergent-review.md +0 -24
- package/plugins/src/base/rules/eager/credential-substrate-precedence.md +0 -54
- package/plugins/src/base/rules/eager/dependency-decision-records.md +0 -32
- package/plugins/src/base/rules/eager/dependency-internalization-kit.md +0 -42
- package/plugins/src/base/rules/eager/dependency-trust-classes.md +0 -43
- package/plugins/src/base/rules/eager/deployed-state-readback.md +0 -47
- package/plugins/src/base/rules/eager/derived-branch-plan.md +0 -47
- package/plugins/src/base/rules/eager/design-source-of-truth.md +0 -38
- package/plugins/src/base/rules/eager/design-value-binding.md +0 -98
- package/plugins/src/base/rules/eager/documentation-source-paths.md +0 -13
- package/plugins/src/base/rules/eager/factory-model.md +0 -41
- package/plugins/src/base/rules/eager/leaf-only-lifecycle.md +0 -70
- package/plugins/src/base/rules/eager/observability-audit.md +0 -15
- package/plugins/src/base/rules/eager/prd-definition-of-ready.md +0 -32
- package/plugins/src/base/rules/eager/prd-lifecycle-rollup.md +0 -31
- package/plugins/src/base/rules/eager/pre-flight-autofill.md +0 -84
- package/plugins/src/base/rules/eager/project-learnings.md +0 -22
- package/plugins/src/base/rules/eager/promotion-contract.md +0 -18
- package/plugins/src/base/rules/eager/readiness-rubric.md +0 -58
- package/plugins/src/base/rules/eager/ready-role-filing.md +0 -29
- package/plugins/src/base/rules/eager/rejection-detection.md +0 -64
- package/plugins/src/base/rules/eager/repo-scope-split.md +0 -43
- package/plugins/src/base/rules/eager/reset-seed-coverage.md +0 -50
- package/plugins/src/base/rules/eager/usage-accounting.md +0 -33
- package/plugins/src/base/rules/eager/work-item-definition-of-ready.md +0 -27
|
@@ -116,6 +116,50 @@ export /**
|
|
|
116
116
|
*/
|
|
117
117
|
const LisaBlockDirectIssueCreate = async () => {
|
|
118
118
|
const HUMAN_GATE_MARKER = "[lisa-human-gate]";
|
|
119
|
+
|
|
120
|
+
/**
|
|
121
|
+
* Decoration a hold declaration may sit behind, and nothing more.
|
|
122
|
+
*
|
|
123
|
+
* The OpenCode port of the rule the bash guard applies
|
|
124
|
+
* (CodySwannGT/lisa#3815). This is a TWELFTH copy of a predicate that ticket
|
|
125
|
+
* inventoried at eleven, and it is named here because the cross-repo parity
|
|
126
|
+
* suite compares this port's verdict with the bash guard's on every case — so
|
|
127
|
+
* a precision change landing on one and not the other is a parity break
|
|
128
|
+
* rather than a silent divergence. That suite is what found it.
|
|
129
|
+
*/
|
|
130
|
+
const HUMAN_GATE_DECORATION =
|
|
131
|
+
/^[ \t>*_+#-]*(?:\d+[.)][ \t]*)?(?:<!--[ \t]*)?[ \t]*/u;
|
|
132
|
+
|
|
133
|
+
/**
|
|
134
|
+
* Whether a text DECLARES a hold rather than merely mentioning one.
|
|
135
|
+
*
|
|
136
|
+
* The bare `includes` this replaces read a body that DISCUSSES the marker as
|
|
137
|
+
* a body that declares a hold. A declaration is positional: the marker leads
|
|
138
|
+
* its line behind at most the decoration above, or sits inside an HTML
|
|
139
|
+
* comment on that line, with fenced blocks and inline code spans removed
|
|
140
|
+
* first because that is how the marker gets written about.
|
|
141
|
+
*/
|
|
142
|
+
const declaresHumanGate = (text: string): boolean => {
|
|
143
|
+
if (!text) return false;
|
|
144
|
+
const body = text
|
|
145
|
+
.replace(/```[\s\S]*?```/gu, "")
|
|
146
|
+
.replace(/`[^`\n]*`/gu, "");
|
|
147
|
+
return body.split("\n").some(line => {
|
|
148
|
+
if (
|
|
149
|
+
line.replace(HUMAN_GATE_DECORATION, "").startsWith(HUMAN_GATE_MARKER)
|
|
150
|
+
) {
|
|
151
|
+
return true;
|
|
152
|
+
}
|
|
153
|
+
return line
|
|
154
|
+
.split("<!--")
|
|
155
|
+
.slice(1)
|
|
156
|
+
.some(segment => {
|
|
157
|
+
const close = segment.indexOf("-->");
|
|
158
|
+
const inside = close === -1 ? segment : segment.slice(0, close);
|
|
159
|
+
return inside.includes(HUMAN_GATE_MARKER);
|
|
160
|
+
});
|
|
161
|
+
});
|
|
162
|
+
};
|
|
119
163
|
/**
|
|
120
164
|
* A label / workflow-state assignment and its value.
|
|
121
165
|
*
|
|
@@ -521,7 +565,7 @@ const LisaBlockDirectIssueCreate = async () => {
|
|
|
521
565
|
.map(part => part.trim())
|
|
522
566
|
.some(candidate => against.includes(candidate))
|
|
523
567
|
) ||
|
|
524
|
-
text
|
|
568
|
+
declaresHumanGate(text) ||
|
|
525
569
|
(roleOk && LIFECYCLE_ROLE_READY.test(text)) ||
|
|
526
570
|
// The container arm. The contradiction check comes first, so a filing
|
|
527
571
|
// declaring itself both a container and a by-design leaf is refused
|
|
@@ -26,6 +26,11 @@
|
|
|
26
26
|
# divergence: upstream blocks unconditionally; Lisa allows clean-tree resets.
|
|
27
27
|
# Residual risk (documented, accepted): the dirty check runs in the hook's
|
|
28
28
|
# cwd at hook time, so a `cd elsewhere && git reset --hard` evades it.
|
|
29
|
+
# - `git read-tree` with an update flag AND `--reset` while the working tree
|
|
30
|
+
# is dirty (issue #3978): the plumbing spelling of the same discard, on the
|
|
31
|
+
# same condition, printing the same remedy. Index-only `read-tree`, and
|
|
32
|
+
# `read-tree -m -u` without `--reset` (which git itself refuses rather than
|
|
33
|
+
# clobber a modified file), stay allowed. Lisa-only guard.
|
|
29
34
|
# - `git rebase --abort`/`--quit` while the in-progress rebase holds
|
|
30
35
|
# human-made conflict resolutions (AUTO_MERGE discriminator; issue #1956).
|
|
31
36
|
# Clean or untouched rebase state stays abortable; the apply backend and a
|
|
@@ -1819,6 +1824,45 @@ $DESTRUCTIVE_GUIDANCE"
|
|
|
1819
1824
|
fi
|
|
1820
1825
|
fi
|
|
1821
1826
|
|
|
1827
|
+
# 3a. `git read-tree` with BOTH an update flag and `--reset`, on the same dirty
|
|
1828
|
+
# tree — the plumbing spelling of guard 3 (issue #3978). It resets the index
|
|
1829
|
+
# and writes the result into the working tree, discarding tracked
|
|
1830
|
+
# modifications: the identical destruction, reached through a command that
|
|
1831
|
+
# carries no `--hard` and no `reset` subcommand, so every pattern in
|
|
1832
|
+
# guard 3 misses it. A guard an agent can walk around is a guard that stops
|
|
1833
|
+
# the honest caller and not the one looking for a way through, and this
|
|
1834
|
+
# spelling is strictly worse than the blocked one — it discards WITHOUT
|
|
1835
|
+
# preserving, which is exactly the property guard 3's remedy supplies. Both
|
|
1836
|
+
# refusals therefore print the same $PRESERVE_GUIDANCE, so what they teach
|
|
1837
|
+
# cannot drift apart.
|
|
1838
|
+
#
|
|
1839
|
+
# `--reset` is the discriminator, not `-u`, and the pairing is deliberate:
|
|
1840
|
+
#
|
|
1841
|
+
# - `read-tree` with no update flag touches the INDEX only and destroys
|
|
1842
|
+
# nothing in the working tree, so a blanket `read-tree` block would be
|
|
1843
|
+
# over-broad.
|
|
1844
|
+
# - `read-tree -m -u` (a merge without `--reset`) is safe by git's own
|
|
1845
|
+
# construction: it REFUSES rather than overwrite a locally modified file
|
|
1846
|
+
# ("entry would be overwritten by merge"). `--reset` is precisely the flag
|
|
1847
|
+
# that switches that refusal off.
|
|
1848
|
+
#
|
|
1849
|
+
# So the destructive combination is an update flag AND `--reset` together,
|
|
1850
|
+
# in either order. The update flag is matched in the checkout guard's idiom
|
|
1851
|
+
# so a bundled short option (`-iu`) cannot dodge the anchor, with leading
|
|
1852
|
+
# whitespace required so a `--index-output=/tmp/out-u` style value cannot
|
|
1853
|
+
# read as the flag. Same conditional dirty-tree shape and same accepted
|
|
1854
|
+
# residual risk as guard 3: the probe runs in the hook's cwd at hook time.
|
|
1855
|
+
readonly GIT_READ_TREE="${GIT_CMD}read-tree"
|
|
1856
|
+
if matches "${GIT_READ_TREE}"'[^;&|]*[[:space:]]--reset([[:space:]]|$)' \
|
|
1857
|
+
&& matches "${GIT_READ_TREE}"'[^;&|]*[[:space:]](-[[:alnum:]]*u[[:alnum:]]*|--update)([[:space:]]|=|$)'; then
|
|
1858
|
+
if git rev-parse --is-inside-work-tree >/dev/null 2>&1 \
|
|
1859
|
+
&& [ -n "$(git status --porcelain 2>/dev/null)" ]; then
|
|
1860
|
+
block "git read-tree -u --reset on a dirty working tree would discard uncommitted changes (commit first, or preserve as below)" "$PRESERVE_GUIDANCE
|
|
1861
|
+
|
|
1862
|
+
$DESTRUCTIVE_GUIDANCE"
|
|
1863
|
+
fi
|
|
1864
|
+
fi
|
|
1865
|
+
|
|
1822
1866
|
# 3b. `git rebase --abort` / `--quit` ONLY while human/agent conflict
|
|
1823
1867
|
# resolutions exist (issue #1956). `--abort` restores the pre-rebase branch
|
|
1824
1868
|
# and discards every resolution; `--quit` deletes the rebase bookkeeping
|
|
@@ -1,67 +1,58 @@
|
|
|
1
1
|
{
|
|
2
2
|
"force": {
|
|
3
3
|
"scripts": {
|
|
4
|
-
"setup:deploy-key": "setup-deploy-key",
|
|
5
|
-
"lighthouse:check": "lhci autorun --collect.settings.chromeFlags='--no-sandbox --disable-gpu --headless' --assert.assertions.forced-reflow-insight=off && node scripts/check-lighthouse-details.mjs",
|
|
6
|
-
"playwright:build": "expo export --platform web",
|
|
7
|
-
"playwright:test": "bun run playwright:build && lisa-test-run --profile expo --adapter direct -- playwright test",
|
|
8
|
-
"playwright:test:ui": "bun run playwright:build && lisa-test-run --profile expo --adapter direct -- playwright test --ui",
|
|
9
|
-
"maestro:test": "lisa-test-run --profile expo --adapter direct -- maestro test .maestro/flows",
|
|
10
|
-
"maestro:test:ios": "lisa-test-run --profile expo --adapter direct -- maestro test -p ios .maestro/flows",
|
|
11
|
-
"maestro:test:android": "lisa-test-run --profile expo --adapter direct -- maestro test -p android .maestro/flows",
|
|
12
|
-
"maestro:test:smoke": "lisa-test-run --profile expo --adapter direct -- maestro test -p ios --include-tags=smoke .maestro/flows",
|
|
13
|
-
"maestro:studio": "maestro studio",
|
|
14
|
-
"maestro:classify": "node scripts/classify-maestro-failures.mjs",
|
|
15
4
|
"bdd:coverage": "node scripts/check-bdd-coverage.mjs",
|
|
16
5
|
"bdd:coverage:write": "node scripts/check-bdd-coverage.mjs --write",
|
|
17
6
|
"bdd:matrix": "node scripts/bdd-matrix.mjs --write",
|
|
18
|
-
"start:local": "cp .env.localhost .env.local && STAGE=local expo start",
|
|
19
|
-
"start:dev": "cp .env.development .env.local && STAGE=development expo start",
|
|
20
|
-
"start:staging": "cp .env.staging .env.local && STAGE=staging expo start",
|
|
21
|
-
"start:production": "cp .env.production .env.local && STAGE=production expo start",
|
|
22
|
-
"start:simulator:ios:local": "cp .env.localhost .env.local && STAGE=local expo start --ios",
|
|
23
|
-
"start:simulator:ios:dev": "cp .env.development .env.local && STAGE=development expo start --ios",
|
|
24
|
-
"start:simulator:ios:staging": "cp .env.staging .env.local && STAGE=staging expo start --ios",
|
|
25
|
-
"start:simulator:ios:production": "cp .env.production .env.local && STAGE=production expo start --ios",
|
|
26
|
-
"start:simulator:android:local": "cp .env.localhost .env.local && STAGE=local expo start --android",
|
|
27
|
-
"start:simulator:android:dev": "cp .env.development .env.local && STAGE=development expo start --android",
|
|
28
|
-
"start:simulator:android:staging": "cp .env.staging .env.local && STAGE=staging expo start --android",
|
|
29
|
-
"start:simulator:android:production": "cp .env.production .env.local && STAGE=production expo start --android",
|
|
30
|
-
"build-and-run:simulator:ios:local": "cp .env.localhost .env.local && STAGE=local expo run:ios",
|
|
31
|
-
"build-and-run:simulator:ios:dev": "cp .env.development .env.local && STAGE=development expo run:ios",
|
|
32
|
-
"build-and-run:simulator:ios:staging": "cp .env.staging .env.local && STAGE=staging expo run:ios",
|
|
33
|
-
"build-and-run:simulator:ios:production": "cp .env.production .env.local && STAGE=production expo run:ios",
|
|
34
|
-
"build-and-run:simulator:android:local": "cp .env.localhost .env.local && STAGE=local expo run:android",
|
|
35
|
-
"build-and-run:simulator:android:dev": "cp .env.development .env.local && STAGE=development expo run:android",
|
|
36
|
-
"build-and-run:simulator:android:staging": "cp .env.staging .env.local && STAGE=staging expo run:android",
|
|
37
|
-
"build-and-run:simulator:android:production": "cp .env.production .env.local && STAGE=production expo run:android",
|
|
38
7
|
"build-and-run:local:android": "expo run:android",
|
|
39
8
|
"build-and-run:local:ios": "expo run:ios",
|
|
40
|
-
"
|
|
41
|
-
"
|
|
42
|
-
"
|
|
43
|
-
"
|
|
44
|
-
"
|
|
45
|
-
"
|
|
46
|
-
"
|
|
9
|
+
"build-and-run:simulator:android:dev": "cp .env.development .env.local && STAGE=development expo run:android",
|
|
10
|
+
"build-and-run:simulator:android:local": "cp .env.localhost .env.local && STAGE=local expo run:android",
|
|
11
|
+
"build-and-run:simulator:android:production": "cp .env.production .env.local && STAGE=production expo run:android",
|
|
12
|
+
"build-and-run:simulator:android:staging": "cp .env.staging .env.local && STAGE=staging expo run:android",
|
|
13
|
+
"build-and-run:simulator:ios:dev": "cp .env.development .env.local && STAGE=development expo run:ios",
|
|
14
|
+
"build-and-run:simulator:ios:local": "cp .env.localhost .env.local && STAGE=local expo run:ios",
|
|
15
|
+
"build-and-run:simulator:ios:production": "cp .env.production .env.local && STAGE=production expo run:ios",
|
|
16
|
+
"build-and-run:simulator:ios:staging": "cp .env.staging .env.local && STAGE=staging expo run:ios",
|
|
47
17
|
"eas:deploy:dev": "eas build --profile dev --non-interactive",
|
|
48
|
-
"eas:deploy:staging": "eas build --profile staging --non-interactive",
|
|
49
18
|
"eas:deploy:production": "eas build --profile production --non-interactive",
|
|
19
|
+
"eas:deploy:staging": "eas build --profile staging --non-interactive",
|
|
20
|
+
"eas:login": "eas login",
|
|
50
21
|
"eas:publish:dev": "eas update --channel dev --environment development --non-interactive",
|
|
51
|
-
"eas:publish:staging": "eas update --channel staging --environment preview --non-interactive",
|
|
52
22
|
"eas:publish:production": "eas update --channel production --environment production --non-interactive",
|
|
23
|
+
"eas:publish:staging": "eas update --channel staging --environment preview --non-interactive",
|
|
24
|
+
"eas:whoami": "eas whoami",
|
|
25
|
+
"export:web": "expo export --platform web --source-maps",
|
|
26
|
+
"fetch:graphql:schema:dev": "./scripts/fetch-graphql-schema.sh development",
|
|
27
|
+
"fetch:graphql:schema:production": "./scripts/fetch-graphql-schema.sh production",
|
|
28
|
+
"fetch:graphql:schema:staging": "./scripts/fetch-graphql-schema.sh staging",
|
|
29
|
+
"lint:fix": "oxlint --fix && eslint . --fix",
|
|
30
|
+
"lint:lisa": "oxlint && eslint . --quiet",
|
|
31
|
+
"maestro:classify": "node scripts/classify-maestro-failures.mjs",
|
|
32
|
+
"pre-build:eas": "cat .gitignore > .easignore && cat .easignore.extra >> .easignore",
|
|
53
33
|
"security:zap": "bash scripts/zap-baseline.sh",
|
|
54
|
-
"
|
|
55
|
-
"
|
|
34
|
+
"setup:deploy-key": "setup-deploy-key",
|
|
35
|
+
"start:atlas": "cp .env.development .env.local && STAGE=development EXPO_ATLAS=true expo start",
|
|
36
|
+
"start:dev": "cp .env.development .env.local && STAGE=development expo start",
|
|
37
|
+
"start:local": "cp .env.localhost .env.local && STAGE=local expo start",
|
|
38
|
+
"start:production": "cp .env.production .env.local && STAGE=production expo start",
|
|
39
|
+
"start:simulator:android:dev": "cp .env.development .env.local && STAGE=development expo start --android",
|
|
40
|
+
"start:simulator:android:local": "cp .env.localhost .env.local && STAGE=local expo start --android",
|
|
41
|
+
"start:simulator:android:production": "cp .env.production .env.local && STAGE=production expo start --android",
|
|
42
|
+
"start:simulator:android:staging": "cp .env.staging .env.local && STAGE=staging expo start --android",
|
|
43
|
+
"start:simulator:ios:dev": "cp .env.development .env.local && STAGE=development expo start --ios",
|
|
44
|
+
"start:simulator:ios:local": "cp .env.localhost .env.local && STAGE=local expo start --ios",
|
|
45
|
+
"start:simulator:ios:production": "cp .env.production .env.local && STAGE=production expo start --ios",
|
|
46
|
+
"start:simulator:ios:staging": "cp .env.staging .env.local && STAGE=staging expo start --ios",
|
|
47
|
+
"start:staging": "cp .env.staging .env.local && STAGE=staging expo start",
|
|
48
|
+
"test:cov:lisa": "NODE_ENV=test lisa-test-run --profile expo --adapter direct -- jest --coverage",
|
|
49
|
+
"test:cov:unit:lisa": "LISA_COVERAGE_SCOPE=unit NODE_ENV=test lisa-test-run --profile expo --adapter direct -- jest --coverage --testPathIgnorePatterns=\"\\.integration[.\\\\-](test|spec)\\.(ts|tsx)$\"",
|
|
56
50
|
"test:integration:lisa": "NODE_ENV=test lisa-test-run --profile expo --adapter direct -- jest --testPathPatterns=\"\\.integration[.\\\\-](test|spec)\\.(ts|tsx)$\"",
|
|
57
|
-
"test:
|
|
58
|
-
"test:cov:unit": "LISA_COVERAGE_SCOPE=unit NODE_ENV=test lisa-test-run --profile expo --adapter direct -- jest --coverage --testPathIgnorePatterns=\"\\.integration[.\\\\-](test|spec)\\.(ts|tsx)$\"",
|
|
51
|
+
"test:lisa": "NODE_ENV=test lisa-test-run --profile expo --adapter direct -- jest",
|
|
59
52
|
"test:mutation": "LISA_TEST_SCRATCH_PREFIXES='[\"lisa-mutation-\",\"worker-\"]' lisa-test-run --profile expo --adapter direct -- node scripts/lisa-mutation.mjs",
|
|
60
|
-
"test:
|
|
61
|
-
"
|
|
62
|
-
"
|
|
63
|
-
"start:atlas": "cp .env.development .env.local && STAGE=development EXPO_ATLAS=true expo start",
|
|
64
|
-
"test:node": "LISA_TEST_SCRATCH_PREFIXES='[\"node-\"]' lisa-test-run --profile expo --adapter direct -- node scripts/lisa-test-node.mjs"
|
|
53
|
+
"test:node": "LISA_TEST_SCRATCH_PREFIXES='[\"node-\"]' lisa-test-run --profile expo --adapter direct -- node scripts/lisa-test-node.mjs",
|
|
54
|
+
"test:unit:lisa": "NODE_ENV=test lisa-test-run --profile expo --adapter direct -- jest --testPathIgnorePatterns=\"\\.integration[.\\\\-](test|spec)\\.(ts|tsx)$\"",
|
|
55
|
+
"test:watch:lisa": "NODE_ENV=test lisa-test-run --profile expo --adapter direct -- jest --watch"
|
|
65
56
|
},
|
|
66
57
|
"dependencies": {
|
|
67
58
|
"@apollo/client": "^3.10.8",
|
|
@@ -182,8 +173,22 @@
|
|
|
182
173
|
"jest-expo": "~57.0.1"
|
|
183
174
|
},
|
|
184
175
|
"scripts": {
|
|
176
|
+
"lighthouse:check": "lhci autorun --collect.settings.chromeFlags='--no-sandbox --disable-gpu --headless' --assert.assertions.forced-reflow-insight=off && node scripts/check-lighthouse-details.mjs",
|
|
177
|
+
"lint": "$npm_execpath run lint:lisa",
|
|
178
|
+
"maestro:studio": "maestro studio",
|
|
179
|
+
"maestro:test": "lisa-test-run --profile expo --adapter direct -- maestro test .maestro/flows",
|
|
180
|
+
"maestro:test:android": "lisa-test-run --profile expo --adapter direct -- maestro test -p android .maestro/flows",
|
|
181
|
+
"maestro:test:ios": "lisa-test-run --profile expo --adapter direct -- maestro test -p ios .maestro/flows",
|
|
182
|
+
"maestro:test:smoke": "lisa-test-run --profile expo --adapter direct -- maestro test -p ios --include-tags=smoke .maestro/flows",
|
|
183
|
+
"playwright:build": "expo export --platform web",
|
|
184
|
+
"playwright:test": "bun run playwright:build && lisa-test-run --profile expo --adapter direct -- playwright test",
|
|
185
|
+
"playwright:test:ui": "bun run playwright:build && lisa-test-run --profile expo --adapter direct -- playwright test --ui",
|
|
186
|
+
"test": "$npm_execpath run test:lisa",
|
|
187
|
+
"test:cov": "$npm_execpath run test:cov:lisa",
|
|
188
|
+
"test:cov:unit": "$npm_execpath run test:cov:unit:lisa",
|
|
185
189
|
"test:integration": "$npm_execpath run test:integration:lisa",
|
|
186
|
-
"
|
|
190
|
+
"test:unit": "$npm_execpath run test:unit:lisa",
|
|
191
|
+
"test:watch": "$npm_execpath run test:watch:lisa"
|
|
187
192
|
}
|
|
188
193
|
},
|
|
189
194
|
"remove": {
|
|
@@ -201,13 +206,65 @@
|
|
|
201
206
|
},
|
|
202
207
|
"adopt": {
|
|
203
208
|
"scripts": {
|
|
204
|
-
"
|
|
205
|
-
"
|
|
206
|
-
"NODE_ENV=test jest --testPathPatterns=\"\\.integration[.\\\\-](test|spec)\\.(ts|tsx)$\" --passWithNoTests"
|
|
209
|
+
"lighthouse:check": [
|
|
210
|
+
"lhci autorun --collect.settings.chromeFlags='--no-sandbox --disable-gpu --headless' --assert.assertions.forced-reflow-insight=off && node scripts/check-lighthouse-details.mjs"
|
|
207
211
|
],
|
|
208
212
|
"lint": [
|
|
209
213
|
"oxlint && eslint . --quiet",
|
|
210
214
|
"eslint . --quiet"
|
|
215
|
+
],
|
|
216
|
+
"maestro:studio": [
|
|
217
|
+
"maestro studio"
|
|
218
|
+
],
|
|
219
|
+
"maestro:test": [
|
|
220
|
+
"lisa-test-run --profile expo --adapter direct -- maestro test .maestro/flows"
|
|
221
|
+
],
|
|
222
|
+
"maestro:test:android": [
|
|
223
|
+
"lisa-test-run --profile expo --adapter direct -- maestro test -p android .maestro/flows"
|
|
224
|
+
],
|
|
225
|
+
"maestro:test:ios": [
|
|
226
|
+
"lisa-test-run --profile expo --adapter direct -- maestro test -p ios .maestro/flows"
|
|
227
|
+
],
|
|
228
|
+
"maestro:test:smoke": [
|
|
229
|
+
"lisa-test-run --profile expo --adapter direct -- maestro test -p ios --include-tags=smoke .maestro/flows"
|
|
230
|
+
],
|
|
231
|
+
"playwright:build": [
|
|
232
|
+
"expo export --platform web"
|
|
233
|
+
],
|
|
234
|
+
"playwright:test": [
|
|
235
|
+
"bun run playwright:build && lisa-test-run --profile expo --adapter direct -- playwright test"
|
|
236
|
+
],
|
|
237
|
+
"playwright:test:ui": [
|
|
238
|
+
"bun run playwright:build && lisa-test-run --profile expo --adapter direct -- playwright test --ui"
|
|
239
|
+
],
|
|
240
|
+
"test": [
|
|
241
|
+
"NODE_ENV=test lisa-test-run --profile expo --adapter direct -- jest",
|
|
242
|
+
"NODE_ENV=test lisa-test-run --profile expo -- jest",
|
|
243
|
+
"NODE_ENV=test lisa-test-run -- jest"
|
|
244
|
+
],
|
|
245
|
+
"test:cov": [
|
|
246
|
+
"NODE_ENV=test lisa-test-run --profile expo --adapter direct -- jest --coverage",
|
|
247
|
+
"NODE_ENV=test lisa-test-run --profile expo -- jest --coverage",
|
|
248
|
+
"NODE_ENV=test lisa-test-run -- jest --coverage"
|
|
249
|
+
],
|
|
250
|
+
"test:cov:unit": [
|
|
251
|
+
"LISA_COVERAGE_SCOPE=unit NODE_ENV=test lisa-test-run --profile expo --adapter direct -- jest --coverage --testPathIgnorePatterns=\"\\.integration[.\\\\-](test|spec)\\.(ts|tsx)$\"",
|
|
252
|
+
"LISA_COVERAGE_SCOPE=unit NODE_ENV=test lisa-test-run --profile expo -- jest --coverage --testPathIgnorePatterns=\"\\.integration[.\\\\-](test|spec)\\.(ts|tsx)$\"",
|
|
253
|
+
"LISA_COVERAGE_SCOPE=unit NODE_ENV=test lisa-test-run -- jest --coverage --testPathIgnorePatterns=\"\\.integration[.\\\\-](test|spec)\\.(ts|tsx)$\""
|
|
254
|
+
],
|
|
255
|
+
"test:integration": [
|
|
256
|
+
"NODE_ENV=test jest --testPathPatterns=\"\\.integration[.\\\\-](test|spec)\\.(ts|tsx)$\"",
|
|
257
|
+
"NODE_ENV=test jest --testPathPatterns=\"\\.integration[.\\\\-](test|spec)\\.(ts|tsx)$\" --passWithNoTests"
|
|
258
|
+
],
|
|
259
|
+
"test:unit": [
|
|
260
|
+
"NODE_ENV=test lisa-test-run --profile expo --adapter direct -- jest --testPathIgnorePatterns=\"\\.integration[.\\\\-](test|spec)\\.(ts|tsx)$\"",
|
|
261
|
+
"NODE_ENV=test lisa-test-run --profile expo -- jest --testPathIgnorePatterns=\"\\.integration[.\\\\-](test|spec)\\.(ts|tsx)$\"",
|
|
262
|
+
"NODE_ENV=test lisa-test-run -- jest --testPathIgnorePatterns=\"\\.integration[.\\\\-](test|spec)\\.(ts|tsx)$\""
|
|
263
|
+
],
|
|
264
|
+
"test:watch": [
|
|
265
|
+
"NODE_ENV=test lisa-test-run --profile expo --adapter direct -- jest --watch",
|
|
266
|
+
"NODE_ENV=test lisa-test-run --profile expo -- jest --watch",
|
|
267
|
+
"NODE_ENV=test lisa-test-run -- jest --watch"
|
|
211
268
|
]
|
|
212
269
|
}
|
|
213
270
|
}
|
|
@@ -2,30 +2,30 @@
|
|
|
2
2
|
"force": {
|
|
3
3
|
"scripts": {
|
|
4
4
|
"bootstrap": "bash scripts/bootstrap.sh",
|
|
5
|
-
"setup:deploy-key": "setup-deploy-key",
|
|
6
|
-
"typecheck:lisa": "tsc --noEmit",
|
|
7
|
-
"test": "lisa-test-run --profile harper-fabric --adapter vitest -- vitest run",
|
|
8
|
-
"test:unit": "lisa-test-run --profile harper-fabric --adapter vitest -- vitest run --exclude='**/integration/**'",
|
|
9
|
-
"test:integration:lisa": "lisa-test-run --profile harper-fabric --adapter vitest -- vitest run '.integration.' 'integration/'",
|
|
10
|
-
"test:cov": "lisa-test-run --profile harper-fabric --adapter vitest -- vitest run --coverage",
|
|
11
|
-
"test:cov:unit": "LISA_COVERAGE_SCOPE=unit lisa-test-run --profile harper-fabric --adapter vitest -- vitest run --coverage --exclude='**/integration/**'",
|
|
12
|
-
"test:mutation": "LISA_TEST_SCRATCH_PREFIXES='[\"lisa-mutation-\",\"worker-\"]' lisa-test-run --profile harper-fabric --adapter direct -- node scripts/lisa-mutation.mjs",
|
|
13
|
-
"test:watch": "lisa-test-run --profile harper-fabric --adapter vitest -- vitest",
|
|
14
|
-
"lint:lisa": "oxlint && eslint . --quiet",
|
|
15
|
-
"lint:fix": "oxlint --fix && eslint . --fix",
|
|
16
|
-
"lint:slow:lisa": "eslint . --config eslint.slow.config.ts --quiet",
|
|
17
|
-
"format:check:lisa": "prettier --check .",
|
|
18
5
|
"format": "prettier --check . --write",
|
|
6
|
+
"format:check:lisa": "prettier --check .",
|
|
19
7
|
"knip:check:lisa": "knip",
|
|
20
8
|
"knip:fix": "knip --fix",
|
|
9
|
+
"lint:fix": "oxlint --fix && eslint . --fix",
|
|
10
|
+
"lint:lisa": "oxlint && eslint . --quiet",
|
|
11
|
+
"lint:slow:lisa": "eslint . --config eslint.slow.config.ts --quiet",
|
|
12
|
+
"prepare": "husky install || true",
|
|
13
|
+
"reset": "harperdb stop || true; [ -n \"$HOME\" ] && rm -rf \"$HOME/.harperdb\" && bun run bootstrap && bun run seed && bun run verify",
|
|
14
|
+
"setup:deploy-key": "setup-deploy-key",
|
|
21
15
|
"sg:scan:lisa": "ast-grep scan",
|
|
22
16
|
"sg:test": "ast-grep test",
|
|
23
17
|
"start": "harperdb start",
|
|
24
|
-
"stop": "harperdb stop",
|
|
25
18
|
"status": "harperdb status",
|
|
26
|
-
"
|
|
27
|
-
"
|
|
28
|
-
"test:
|
|
19
|
+
"stop": "harperdb stop",
|
|
20
|
+
"test:cov:lisa": "lisa-test-run --profile harper-fabric --adapter vitest -- vitest run --coverage",
|
|
21
|
+
"test:cov:unit:lisa": "LISA_COVERAGE_SCOPE=unit lisa-test-run --profile harper-fabric --adapter vitest -- vitest run --coverage --exclude='**/integration/**'",
|
|
22
|
+
"test:integration:lisa": "lisa-test-run --profile harper-fabric --adapter vitest -- vitest run '.integration.' 'integration/'",
|
|
23
|
+
"test:lisa": "lisa-test-run --profile harper-fabric --adapter vitest -- vitest run",
|
|
24
|
+
"test:mutation": "LISA_TEST_SCRATCH_PREFIXES='[\"lisa-mutation-\",\"worker-\"]' lisa-test-run --profile harper-fabric --adapter direct -- node scripts/lisa-mutation.mjs",
|
|
25
|
+
"test:node": "LISA_TEST_SCRATCH_PREFIXES='[\"node-\"]' lisa-test-run --profile harper-fabric --adapter direct -- node scripts/lisa-test-node.mjs",
|
|
26
|
+
"test:unit:lisa": "lisa-test-run --profile harper-fabric --adapter vitest -- vitest run --exclude='**/integration/**'",
|
|
27
|
+
"test:watch:lisa": "lisa-test-run --profile harper-fabric --adapter vitest -- vitest",
|
|
28
|
+
"typecheck:lisa": "tsc --noEmit"
|
|
29
29
|
},
|
|
30
30
|
"dependencies": {
|
|
31
31
|
"harperdb": "^4.7.29"
|
|
@@ -80,16 +80,21 @@
|
|
|
80
80
|
"defaults": {
|
|
81
81
|
"scripts": {
|
|
82
82
|
"build": "tsc && node dist/build/build.js",
|
|
83
|
-
"seed": "bun run build && node dist/scripts/seed.js",
|
|
84
|
-
"verify": "bun run build && node dist/scripts/verify.js",
|
|
85
|
-
"dev:server": "bun run build && node dist/scripts/dev_server.js",
|
|
86
83
|
"deploy": "bun run build && node dist/scripts/deploy.js",
|
|
87
|
-
"
|
|
88
|
-
"lint": "$npm_execpath run lint:lisa",
|
|
89
|
-
"lint:slow": "$npm_execpath run lint:slow:lisa",
|
|
84
|
+
"dev:server": "bun run build && node dist/scripts/dev_server.js",
|
|
90
85
|
"format:check": "$npm_execpath run format:check:lisa",
|
|
91
86
|
"knip:check": "$npm_execpath run knip:check:lisa",
|
|
92
|
-
"
|
|
87
|
+
"lint": "$npm_execpath run lint:lisa",
|
|
88
|
+
"lint:slow": "$npm_execpath run lint:slow:lisa",
|
|
89
|
+
"seed": "bun run build && node dist/scripts/seed.js",
|
|
90
|
+
"sg:scan": "$npm_execpath run sg:scan:lisa",
|
|
91
|
+
"test": "$npm_execpath run test:lisa",
|
|
92
|
+
"test:cov": "$npm_execpath run test:cov:lisa",
|
|
93
|
+
"test:cov:unit": "$npm_execpath run test:cov:unit:lisa",
|
|
94
|
+
"test:unit": "$npm_execpath run test:unit:lisa",
|
|
95
|
+
"test:watch": "$npm_execpath run test:watch:lisa",
|
|
96
|
+
"typecheck": "$npm_execpath run typecheck:lisa",
|
|
97
|
+
"verify": "bun run build && node dist/scripts/verify.js"
|
|
93
98
|
}
|
|
94
99
|
},
|
|
95
100
|
"remove": {
|
|
@@ -100,8 +105,11 @@
|
|
|
100
105
|
},
|
|
101
106
|
"adopt": {
|
|
102
107
|
"scripts": {
|
|
103
|
-
"
|
|
104
|
-
"
|
|
108
|
+
"format:check": [
|
|
109
|
+
"prettier --check ."
|
|
110
|
+
],
|
|
111
|
+
"knip:check": [
|
|
112
|
+
"knip"
|
|
105
113
|
],
|
|
106
114
|
"lint": [
|
|
107
115
|
"oxlint && eslint . --quiet",
|
|
@@ -110,14 +118,36 @@
|
|
|
110
118
|
"lint:slow": [
|
|
111
119
|
"eslint . --config eslint.slow.config.ts --quiet"
|
|
112
120
|
],
|
|
113
|
-
"format:check": [
|
|
114
|
-
"prettier --check ."
|
|
115
|
-
],
|
|
116
|
-
"knip:check": [
|
|
117
|
-
"knip"
|
|
118
|
-
],
|
|
119
121
|
"sg:scan": [
|
|
120
122
|
"ast-grep scan"
|
|
123
|
+
],
|
|
124
|
+
"test": [
|
|
125
|
+
"lisa-test-run --profile harper-fabric --adapter vitest -- vitest run",
|
|
126
|
+
"lisa-test-run --profile harper-fabric -- vitest run",
|
|
127
|
+
"lisa-test-run -- vitest run"
|
|
128
|
+
],
|
|
129
|
+
"test:cov": [
|
|
130
|
+
"lisa-test-run --profile harper-fabric --adapter vitest -- vitest run --coverage",
|
|
131
|
+
"lisa-test-run --profile harper-fabric -- vitest run --coverage",
|
|
132
|
+
"lisa-test-run -- vitest run --coverage"
|
|
133
|
+
],
|
|
134
|
+
"test:cov:unit": [
|
|
135
|
+
"LISA_COVERAGE_SCOPE=unit lisa-test-run --profile harper-fabric --adapter vitest -- vitest run --coverage --exclude='**/integration/**'",
|
|
136
|
+
"LISA_COVERAGE_SCOPE=unit lisa-test-run --profile harper-fabric -- vitest run --coverage --exclude='**/integration/**'",
|
|
137
|
+
"LISA_COVERAGE_SCOPE=unit lisa-test-run -- vitest run --coverage --exclude='**/integration/**'"
|
|
138
|
+
],
|
|
139
|
+
"test:unit": [
|
|
140
|
+
"lisa-test-run --profile harper-fabric --adapter vitest -- vitest run --exclude='**/integration/**'",
|
|
141
|
+
"lisa-test-run --profile harper-fabric -- vitest run --exclude='**/integration/**'",
|
|
142
|
+
"lisa-test-run -- vitest run --exclude='**/integration/**'"
|
|
143
|
+
],
|
|
144
|
+
"test:watch": [
|
|
145
|
+
"lisa-test-run --profile harper-fabric --adapter vitest -- vitest",
|
|
146
|
+
"lisa-test-run --profile harper-fabric -- vitest",
|
|
147
|
+
"lisa-test-run -- vitest"
|
|
148
|
+
],
|
|
149
|
+
"typecheck": [
|
|
150
|
+
"tsc --noEmit"
|
|
121
151
|
]
|
|
122
152
|
}
|
|
123
153
|
}
|
|
@@ -7,11 +7,16 @@
|
|
|
7
7
|
"tsx": "^4.20.6"
|
|
8
8
|
},
|
|
9
9
|
"scripts": {
|
|
10
|
+
"lint": "$npm_execpath run lint:lisa",
|
|
10
11
|
"migration:generate": "tsx ./node_modules/typeorm/cli.js migration:generate -d typeorm.config.ts src/database/migrations/$npm_config_name",
|
|
11
|
-
"migration:run": "tsx ./node_modules/typeorm/cli.js migration:run -d typeorm.config.ts",
|
|
12
12
|
"migration:revert": "tsx ./node_modules/typeorm/cli.js migration:revert -d typeorm.config.ts",
|
|
13
|
+
"migration:run": "tsx ./node_modules/typeorm/cli.js migration:run -d typeorm.config.ts",
|
|
14
|
+
"test": "$npm_execpath run test:lisa",
|
|
15
|
+
"test:cov": "$npm_execpath run test:cov:lisa",
|
|
16
|
+
"test:cov:unit": "$npm_execpath run test:cov:unit:lisa",
|
|
13
17
|
"test:integration": "$npm_execpath run test:integration:lisa",
|
|
14
|
-
"
|
|
18
|
+
"test:unit": "$npm_execpath run test:unit:lisa",
|
|
19
|
+
"test:watch": "$npm_execpath run test:watch:lisa"
|
|
15
20
|
},
|
|
16
21
|
"dependencies": {
|
|
17
22
|
"class-validator": "^0.14.3",
|
|
@@ -20,37 +25,37 @@
|
|
|
20
25
|
},
|
|
21
26
|
"force": {
|
|
22
27
|
"scripts": {
|
|
23
|
-
"
|
|
28
|
+
"deploy:dev": "sls deploy --stage dev",
|
|
29
|
+
"deploy:production": "sls deploy --stage production",
|
|
30
|
+
"deploy:staging": "sls deploy --stage staging",
|
|
31
|
+
"fetch:graphql:schema:dev": "./scripts/fetch-graphql-schema.sh development",
|
|
32
|
+
"fetch:graphql:schema:production": "./scripts/fetch-graphql-schema.sh production",
|
|
33
|
+
"fetch:graphql:schema:staging": "./scripts/fetch-graphql-schema.sh staging",
|
|
24
34
|
"k6": "./scripts/k6-run.sh",
|
|
25
|
-
"k6:
|
|
35
|
+
"k6:docker:load": "./scripts/k6-run.sh --scenario load --docker",
|
|
36
|
+
"k6:docker:smoke": "./scripts/k6-run.sh --scenario smoke --docker",
|
|
26
37
|
"k6:load": "./scripts/k6-run.sh --scenario load",
|
|
27
|
-
"k6:
|
|
28
|
-
"k6:spike": "./scripts/k6-run.sh --scenario spike",
|
|
38
|
+
"k6:smoke": "./scripts/k6-run.sh --scenario smoke",
|
|
29
39
|
"k6:soak": "./scripts/k6-run.sh --scenario soak",
|
|
30
|
-
"k6:
|
|
31
|
-
"k6:
|
|
32
|
-
"
|
|
40
|
+
"k6:spike": "./scripts/k6-run.sh --scenario spike",
|
|
41
|
+
"k6:stress": "./scripts/k6-run.sh --scenario stress",
|
|
42
|
+
"lint:fix": "oxlint --fix && eslint . --fix",
|
|
43
|
+
"lint:lisa": "oxlint && eslint . --quiet",
|
|
44
|
+
"security:zap": "bash scripts/zap-baseline.sh",
|
|
45
|
+
"setup:deploy-key": "setup-deploy-key",
|
|
33
46
|
"start:dev": "IS_OFFLINE=true sls offline start --stage dev",
|
|
34
47
|
"start:docker": "docker compose up",
|
|
35
48
|
"start:docker:build": "docker compose up --build",
|
|
36
49
|
"start:docker:down": "docker compose down",
|
|
37
|
-
"
|
|
38
|
-
"
|
|
39
|
-
"
|
|
40
|
-
"deploy:dev": "sls deploy --stage dev",
|
|
41
|
-
"deploy:staging": "sls deploy --stage staging",
|
|
42
|
-
"deploy:production": "sls deploy --stage production",
|
|
43
|
-
"security:zap": "bash scripts/zap-baseline.sh",
|
|
44
|
-
"test": "lisa-test-run --profile nestjs --adapter vitest -- vitest run",
|
|
45
|
-
"test:unit": "lisa-test-run --profile nestjs --adapter vitest -- vitest run --exclude='**/integration/**' --exclude='**/*.integration.*'",
|
|
50
|
+
"start:local": "IS_OFFLINE=true sls offline start --noTimeout",
|
|
51
|
+
"test:cov:lisa": "lisa-test-run --profile nestjs --adapter vitest -- vitest run --coverage",
|
|
52
|
+
"test:cov:unit:lisa": "LISA_COVERAGE_SCOPE=unit lisa-test-run --profile nestjs --adapter vitest -- vitest run --coverage --exclude='**/integration/**' --exclude='**/*.integration.*'",
|
|
46
53
|
"test:integration:lisa": "lisa-test-run --profile nestjs --adapter vitest -- vitest run '.integration.' 'integration/'",
|
|
47
|
-
"test:
|
|
48
|
-
"test:cov:unit": "LISA_COVERAGE_SCOPE=unit lisa-test-run --profile nestjs --adapter vitest -- vitest run --coverage --exclude='**/integration/**' --exclude='**/*.integration.*'",
|
|
54
|
+
"test:lisa": "lisa-test-run --profile nestjs --adapter vitest -- vitest run",
|
|
49
55
|
"test:mutation": "LISA_TEST_SCRATCH_PREFIXES='[\"lisa-mutation-\",\"worker-\"]' lisa-test-run --profile nestjs --adapter direct -- node scripts/lisa-mutation.mjs",
|
|
50
|
-
"test:
|
|
51
|
-
"
|
|
52
|
-
"
|
|
53
|
-
"test:node": "LISA_TEST_SCRATCH_PREFIXES='[\"node-\"]' lisa-test-run --profile nestjs --adapter direct -- node scripts/lisa-test-node.mjs"
|
|
56
|
+
"test:node": "LISA_TEST_SCRATCH_PREFIXES='[\"node-\"]' lisa-test-run --profile nestjs --adapter direct -- node scripts/lisa-test-node.mjs",
|
|
57
|
+
"test:unit:lisa": "lisa-test-run --profile nestjs --adapter vitest -- vitest run --exclude='**/integration/**' --exclude='**/*.integration.*'",
|
|
58
|
+
"test:watch:lisa": "lisa-test-run --profile nestjs --adapter vitest -- vitest"
|
|
54
59
|
},
|
|
55
60
|
"dependencies": {
|
|
56
61
|
"@apollo/server": "^5.4.0",
|
|
@@ -109,6 +114,25 @@
|
|
|
109
114
|
},
|
|
110
115
|
"adopt": {
|
|
111
116
|
"scripts": {
|
|
117
|
+
"lint": [
|
|
118
|
+
"oxlint && eslint . --quiet",
|
|
119
|
+
"eslint . --quiet"
|
|
120
|
+
],
|
|
121
|
+
"test": [
|
|
122
|
+
"lisa-test-run --profile nestjs --adapter vitest -- vitest run",
|
|
123
|
+
"lisa-test-run --profile nestjs -- vitest run",
|
|
124
|
+
"lisa-test-run -- vitest run"
|
|
125
|
+
],
|
|
126
|
+
"test:cov": [
|
|
127
|
+
"lisa-test-run --profile nestjs --adapter vitest -- vitest run --coverage",
|
|
128
|
+
"lisa-test-run --profile nestjs -- vitest run --coverage",
|
|
129
|
+
"lisa-test-run -- vitest run --coverage"
|
|
130
|
+
],
|
|
131
|
+
"test:cov:unit": [
|
|
132
|
+
"LISA_COVERAGE_SCOPE=unit lisa-test-run --profile nestjs --adapter vitest -- vitest run --coverage --exclude='**/integration/**' --exclude='**/*.integration.*'",
|
|
133
|
+
"LISA_COVERAGE_SCOPE=unit lisa-test-run --profile nestjs -- vitest run --coverage --exclude='**/integration/**' --exclude='**/*.integration.*'",
|
|
134
|
+
"LISA_COVERAGE_SCOPE=unit lisa-test-run -- vitest run --coverage --exclude='**/integration/**' --exclude='**/*.integration.*'"
|
|
135
|
+
],
|
|
112
136
|
"test:integration": [
|
|
113
137
|
"lisa-test-run --profile nestjs --adapter vitest -- vitest run '.integration.' 'integration/' --passWithNoTests",
|
|
114
138
|
"lisa-test-run --profile nestjs --adapter vitest -- vitest run '.integration.' 'integration/'",
|
|
@@ -123,9 +147,15 @@
|
|
|
123
147
|
"vitest run tests/integration",
|
|
124
148
|
"vitest run tests/integration --passWithNoTests"
|
|
125
149
|
],
|
|
126
|
-
"
|
|
127
|
-
"
|
|
128
|
-
"
|
|
150
|
+
"test:unit": [
|
|
151
|
+
"lisa-test-run --profile nestjs --adapter vitest -- vitest run --exclude='**/integration/**' --exclude='**/*.integration.*'",
|
|
152
|
+
"lisa-test-run --profile nestjs -- vitest run --exclude='**/integration/**' --exclude='**/*.integration.*'",
|
|
153
|
+
"lisa-test-run -- vitest run --exclude='**/integration/**' --exclude='**/*.integration.*'"
|
|
154
|
+
],
|
|
155
|
+
"test:watch": [
|
|
156
|
+
"lisa-test-run --profile nestjs --adapter vitest -- vitest",
|
|
157
|
+
"lisa-test-run --profile nestjs -- vitest",
|
|
158
|
+
"lisa-test-run -- vitest"
|
|
129
159
|
]
|
|
130
160
|
}
|
|
131
161
|
}
|