declapract-typescript-ehmpathy 0.49.9 → 0.49.11
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/dist/.test/assets/cache/declarations/declapract.declare.yml +4 -0
- package/dist/.test/assets/cache/declarations/practices/cache/.declapract.integration.test.ts +108 -0
- package/dist/.test/assets/cache/declarations/practices/cache/.test/assets/repo-with-old-cache-package/declapract.use.yml +6 -0
- package/dist/.test/assets/cache/declarations/practices/cache/.test/assets/repo-with-old-cache-package/package.json +7 -0
- package/dist/.test/assets/cache/declarations/practices/cache/.test/assets/repo-with-valid-cache-package/declapract.use.yml +6 -0
- package/dist/.test/assets/cache/declarations/practices/cache/.test/assets/repo-with-valid-cache-package/package.json +7 -0
- package/dist/.test/assets/cache/declarations/practices/cache/.test/assets/repo-without-cache-package/declapract.use.yml +6 -0
- package/dist/.test/assets/cache/declarations/practices/cache/.test/assets/repo-without-cache-package/package.json +7 -0
- package/dist/.test/assets/cache/declarations/practices/cache/best-practice/package.json +7 -0
- package/dist/.test/assets/cache/declarations/useCases.yml +5 -0
- package/dist/.test/assets/expo/declarations/declapract.declare.yml +4 -0
- package/dist/.test/assets/expo/declarations/practices/cicd-app-react-native-expo/.declapract.integration.test.ts +810 -0
- package/dist/.test/assets/expo/declarations/practices/cicd-app-react-native-expo/__snapshots__/.declapract.integration.test.ts.snap +289 -0
- package/dist/.test/assets/expo/declarations/practices/cicd-app-react-native-expo/best-practice/.declapract.readme.md +27 -0
- package/dist/.test/assets/expo/declarations/practices/cicd-app-react-native-expo/best-practice/.github/workflows/.deploy-expo.yml +127 -0
- package/dist/.test/assets/expo/declarations/practices/cicd-app-react-native-expo/best-practice/.github/workflows/deploy.yml +76 -0
- package/dist/.test/assets/expo/declarations/practices/cicd-app-react-native-expo/best-practice/.github/workflows/test.yml +27 -0
- package/dist/.test/assets/expo/declarations/practices/cicd-app-react-native-expo/best-practice/.gitignore.declapract.ts +28 -0
- package/dist/.test/assets/expo/declarations/practices/cicd-app-react-native-expo/best-practice/package.json +36 -0
- package/dist/.test/assets/expo/declarations/practices/cicd-app-react-native-expo/best-practice/package.json.declapract.ts +3 -0
- package/dist/.test/assets/expo/declarations/practices/node/.test/assets/repo-expo-npmrc/declapract.use.yml +23 -0
- package/dist/.test/assets/expo/declarations/practices/node/.test/assets/repo-expo-npmrc/package.json +4 -0
- package/dist/.test/assets/expo/declarations/practices/node/bad-practices/self-deps-not-link/.declapract.readme.md +10 -0
- package/dist/.test/assets/expo/declarations/practices/node/bad-practices/self-deps-not-link/package.json.declapract.ts +76 -0
- package/dist/.test/assets/expo/declarations/practices/node/best-practice/.npmrc.declapract.integration.test.ts +165 -0
- package/dist/.test/assets/expo/declarations/practices/node/best-practice/.npmrc.declapract.ts +60 -0
- package/dist/.test/assets/expo/declarations/practices/node/best-practice/.nvmrc +1 -0
- package/dist/.test/assets/expo/declarations/practices/node/best-practice/__snapshots__/.npmrc.declapract.integration.test.ts.snap +24 -0
- package/dist/.test/assets/expo/declarations/practices/node/best-practice/package.json +15 -0
- package/dist/.test/assets/expo/declarations/practices/node/best-practice/package.json.declapract.ts +3 -0
- package/dist/.test/assets/expo/declarations/practices/node/best-practice/readme.md +1 -0
- package/dist/.test/assets/expo/declarations/practices/node/best-practice/readme.md.declapract.ts +3 -0
- package/dist/.test/assets/expo/declarations/useCases.yml +8 -0
- package/dist/.test/assets/expo-fullusecase/declarations/declapract.declare.yml +10 -0
- package/dist/.test/assets/expo-fullusecase/declarations/practices/cache/.declapract.integration.test.ts +108 -0
- package/dist/.test/assets/expo-fullusecase/declarations/practices/cache/.test/assets/repo-with-old-cache-package/declapract.use.yml +6 -0
- package/dist/.test/assets/expo-fullusecase/declarations/practices/cache/.test/assets/repo-with-old-cache-package/package.json +7 -0
- package/dist/.test/assets/expo-fullusecase/declarations/practices/cache/.test/assets/repo-with-valid-cache-package/declapract.use.yml +6 -0
- package/dist/.test/assets/expo-fullusecase/declarations/practices/cache/.test/assets/repo-with-valid-cache-package/package.json +7 -0
- package/dist/.test/assets/expo-fullusecase/declarations/practices/cache/.test/assets/repo-without-cache-package/declapract.use.yml +6 -0
- package/dist/.test/assets/expo-fullusecase/declarations/practices/cache/.test/assets/repo-without-cache-package/package.json +7 -0
- package/dist/.test/assets/expo-fullusecase/declarations/practices/cache/best-practice/package.json +7 -0
- package/dist/.test/assets/expo-fullusecase/declarations/practices/cicd-app-react-native-expo/.declapract.integration.test.ts +810 -0
- package/dist/.test/assets/expo-fullusecase/declarations/practices/cicd-app-react-native-expo/__snapshots__/.declapract.integration.test.ts.snap +289 -0
- package/dist/.test/assets/expo-fullusecase/declarations/practices/cicd-app-react-native-expo/best-practice/.declapract.readme.md +27 -0
- package/dist/.test/assets/expo-fullusecase/declarations/practices/cicd-app-react-native-expo/best-practice/.github/workflows/.deploy-expo.yml +127 -0
- package/dist/.test/assets/expo-fullusecase/declarations/practices/cicd-app-react-native-expo/best-practice/.github/workflows/deploy.yml +76 -0
- package/dist/.test/assets/expo-fullusecase/declarations/practices/cicd-app-react-native-expo/best-practice/.github/workflows/test.yml +27 -0
- package/dist/.test/assets/expo-fullusecase/declarations/practices/cicd-app-react-native-expo/best-practice/.gitignore.declapract.ts +28 -0
- package/dist/.test/assets/expo-fullusecase/declarations/practices/cicd-app-react-native-expo/best-practice/package.json +36 -0
- package/dist/.test/assets/expo-fullusecase/declarations/practices/cicd-app-react-native-expo/best-practice/package.json.declapract.ts +3 -0
- package/dist/.test/assets/expo-fullusecase/declarations/practices/cicd-common/.declapract.integration.test.ts +572 -0
- package/dist/.test/assets/expo-fullusecase/declarations/practices/cicd-common/.test/assets/repo-with-unpinned-workflow/.github/workflows/.test.yml +19 -0
- package/dist/.test/assets/expo-fullusecase/declarations/practices/cicd-common/.test/assets/repo-with-unpinned-workflow/.github/workflows/consumer-owned.yml +21 -0
- package/dist/.test/assets/expo-fullusecase/declarations/practices/cicd-common/.test/assets/repo-with-unpinned-workflow/.github/workflows/review.yml +26 -0
- package/dist/.test/assets/expo-fullusecase/declarations/practices/cicd-common/.test/assets/repo-with-unpinned-workflow/declapract.use.yml +6 -0
- package/dist/.test/assets/expo-fullusecase/declarations/practices/cicd-common/__snapshots__/.declapract.integration.test.ts.snap +550 -0
- package/dist/.test/assets/expo-fullusecase/declarations/practices/cicd-common/bad-practices/has-changelog-file/changelog.md.declapract.ts +11 -0
- package/dist/.test/assets/expo-fullusecase/declarations/practices/cicd-common/bad-practices/old-use-apikeys/.agent/repo=.this/role=any/skills/use.apikeys.json.declapract.ts +7 -0
- package/dist/.test/assets/expo-fullusecase/declarations/practices/cicd-common/bad-practices/old-use-apikeys/.agent/repo=.this/role=any/skills/use.apikeys.sh.declapract.ts +7 -0
- package/dist/.test/assets/expo-fullusecase/declarations/practices/cicd-common/best-practice/.declapract.readme.md +8 -0
- package/dist/.test/assets/expo-fullusecase/declarations/practices/cicd-common/best-practice/.github/actions/please-release/action.yml +469 -0
- package/dist/.test/assets/expo-fullusecase/declarations/practices/cicd-common/best-practice/.github/actions/test-shards-setup/action.yml +68 -0
- package/dist/.test/assets/expo-fullusecase/declarations/practices/cicd-common/best-practice/.github/workflows/.declastruct.yml +198 -0
- package/dist/.test/assets/expo-fullusecase/declarations/practices/cicd-common/best-practice/.github/workflows/.install.yml +56 -0
- package/dist/.test/assets/expo-fullusecase/declarations/practices/cicd-common/best-practice/.github/workflows/.test.yml +380 -0
- package/dist/.test/assets/expo-fullusecase/declarations/practices/cicd-common/best-practice/.github/workflows/.test.yml.declapract.ts +15 -0
- package/dist/.test/assets/expo-fullusecase/declarations/practices/cicd-common/best-practice/.github/workflows/release.yml +32 -0
- package/dist/.test/assets/expo-fullusecase/declarations/practices/cicd-common/best-practice/.github/workflows/review.yml +26 -0
- package/dist/.test/assets/expo-fullusecase/declarations/practices/cicd-common/best-practice/.github/workflows/test.yml +25 -0
- package/dist/.test/assets/expo-fullusecase/declarations/practices/cicd-common/best-practice/.github/workflows/test.yml.declapract.ts +15 -0
- package/dist/.test/assets/expo-fullusecase/declarations/practices/conventional-commits/bad-practices/commitlint/package.json +5 -0
- package/dist/.test/assets/expo-fullusecase/declarations/practices/conventional-commits/bad-practices/commitlint/package.json.declapract.ts +19 -0
- package/dist/.test/assets/expo-fullusecase/declarations/practices/conventional-commits/best-practice/.declapract.readme.md +5 -0
- package/dist/.test/assets/expo-fullusecase/declarations/practices/conventional-commits/best-practice/.husky/check.commit.sh +7 -0
- package/dist/.test/assets/expo-fullusecase/declarations/practices/conventional-commits/best-practice/.husky/commit-msg +8 -0
- package/dist/.test/assets/expo-fullusecase/declarations/practices/conventional-commits/best-practice/commitlint.config.js +21 -0
- package/dist/.test/assets/expo-fullusecase/declarations/practices/conventional-commits/best-practice/package.json +17 -0
- package/dist/.test/assets/expo-fullusecase/declarations/practices/conventional-commits/best-practice/package.json.declapract.ts +3 -0
- package/dist/.test/assets/expo-fullusecase/declarations/practices/directory-structure-src/bad-practices/data-dir/.declapract.readme.md +10 -0
- package/dist/.test/assets/expo-fullusecase/declarations/practices/directory-structure-src/bad-practices/data-dir/src/<star><star>/data/<star><star>/<star>.declapract.ts +19 -0
- package/dist/.test/assets/expo-fullusecase/declarations/practices/directory-structure-src/bad-practices/domain-dir/.declapract.readme.md +8 -0
- package/dist/.test/assets/expo-fullusecase/declarations/practices/directory-structure-src/bad-practices/domain-dir/src/<star><star>/domain/<star><star>/<star>.declapract.ts +59 -0
- package/dist/.test/assets/expo-fullusecase/declarations/practices/directory-structure-src/bad-practices/logic-dir/.declapract.readme.md +8 -0
- package/dist/.test/assets/expo-fullusecase/declarations/practices/directory-structure-src/bad-practices/logic-dir/src/<star><star>/logic/<star><star>/<star>.declapract.ts +19 -0
- package/dist/.test/assets/expo-fullusecase/declarations/practices/directory-structure-src/bad-practices/model-dir/.declapract.readme.md +3 -0
- package/dist/.test/assets/expo-fullusecase/declarations/practices/directory-structure-src/bad-practices/model-dir/src/<star><star>/<star>.ts.declapract.ts +46 -0
- package/dist/.test/assets/expo-fullusecase/declarations/practices/directory-structure-src/bad-practices/model-dir/src/<star><star>/model/<star><star>/<star>.declapract.ts +16 -0
- package/dist/.test/assets/expo-fullusecase/declarations/practices/directory-structure-src/bad-practices/nonpublished-modules-dir/src/__nonpublished_modules__/<star><star>/<star>.declapract.ts +17 -0
- package/dist/.test/assets/expo-fullusecase/declarations/practices/directory-structure-src/bad-practices/old-import-paths/.declapract.readme.md +21 -0
- package/dist/.test/assets/expo-fullusecase/declarations/practices/directory-structure-src/bad-practices/old-import-paths/src/<star><star>/<star>.ts.declapract.ts +67 -0
- package/dist/.test/assets/expo-fullusecase/declarations/practices/directory-structure-src/bad-practices/services-dir/.declapract.readme.md +5 -0
- package/dist/.test/assets/expo-fullusecase/declarations/practices/directory-structure-src/bad-practices/services-dir/src/<star><star>/services/<star><star>/<star>.declapract.ts +16 -0
- package/dist/.test/assets/expo-fullusecase/declarations/practices/directory-structure-src/best-practice/.declapract.readme.md +73 -0
- package/dist/.test/assets/expo-fullusecase/declarations/practices/directory-structure-src/best-practice/src/access/daos/<star><star>/<star>.ts.declapract.ts +4 -0
- package/dist/.test/assets/expo-fullusecase/declarations/practices/directory-structure-src/best-practice/src/access/sdks/<star><star>/<star>.ts.declapract.ts +4 -0
- package/dist/.test/assets/expo-fullusecase/declarations/practices/directory-structure-src/best-practice/src/access/svcs/<star><star>/<star>.ts.declapract.ts +4 -0
- package/dist/.test/assets/expo-fullusecase/declarations/practices/directory-structure-src/best-practice/src/contract/<star><star>/<star>.ts.declapract.ts +4 -0
- package/dist/.test/assets/expo-fullusecase/declarations/practices/directory-structure-src/best-practice/src/domain.objects/<star><star>/<star>.ts.declapract.ts +4 -0
- package/dist/.test/assets/expo-fullusecase/declarations/practices/directory-structure-src/best-practice/src/domain.operations/<star><star>/<star>.ts.declapract.ts +4 -0
- package/dist/.test/assets/expo-fullusecase/declarations/practices/directory-structure-src/best-practice/src/infra/<star><star>/<star>.ts.declapract.ts +4 -0
- package/dist/.test/assets/expo-fullusecase/declarations/practices/domain/bad-practices/schematic-joi-model/src/domain/<star><star>/<star>.ts.declapract.ts +16 -0
- package/dist/.test/assets/expo-fullusecase/declarations/practices/domain/bad-practices/simple-type-guards/.declapract.readme.md +1 -0
- package/dist/.test/assets/expo-fullusecase/declarations/practices/domain/bad-practices/simple-type-guards/package.json.declapract.ts +23 -0
- package/dist/.test/assets/expo-fullusecase/declarations/practices/domain/best-practice/package.json +6 -0
- package/dist/.test/assets/expo-fullusecase/declarations/practices/domain/best-practice/package.json.declapract.ts +3 -0
- package/dist/.test/assets/expo-fullusecase/declarations/practices/domain/best-practice/src/domain/objects/index.ts.declapract.ts +4 -0
- package/dist/.test/assets/expo-fullusecase/declarations/practices/errors/bad-practices/error-fns/package.json +5 -0
- package/dist/.test/assets/expo-fullusecase/declarations/practices/errors/bad-practices/error-fns/package.json.declapract.ts +23 -0
- package/dist/.test/assets/expo-fullusecase/declarations/practices/errors/bad-practices/error-fns/src/<star><star>/<star>.ts.declapract.ts +17 -0
- package/dist/.test/assets/expo-fullusecase/declarations/practices/errors/bad-practices/local-error-imports/src/<star><star>/<star>.ts.declapract.ts +85 -0
- package/dist/.test/assets/expo-fullusecase/declarations/practices/errors/bad-practices/own-implementation/src/utils/errors/UnexpectedCodePathError.ts.declapract.ts +3 -0
- package/dist/.test/assets/expo-fullusecase/declarations/practices/errors/best-practice/package.json +5 -0
- package/dist/.test/assets/expo-fullusecase/declarations/practices/errors/best-practice/package.json.declapract.ts +4 -0
- package/dist/.test/assets/expo-fullusecase/declarations/practices/format/bad-practices/format-script/package.json.declapract.ts +26 -0
- package/dist/.test/assets/expo-fullusecase/declarations/practices/format/bad-practices/prettier/.declapract.readme.md +6 -0
- package/dist/.test/assets/expo-fullusecase/declarations/practices/format/bad-practices/prettier/.prettierignore +3 -0
- package/dist/.test/assets/expo-fullusecase/declarations/practices/format/bad-practices/prettier/.prettierignore.declapract.ts +8 -0
- package/dist/.test/assets/expo-fullusecase/declarations/practices/format/bad-practices/prettier/package.json +10 -0
- package/dist/.test/assets/expo-fullusecase/declarations/practices/format/bad-practices/prettier/package.json.declapract.ts +35 -0
- package/dist/.test/assets/expo-fullusecase/declarations/practices/format/bad-practices/prettier/prettier.config.js +10 -0
- package/dist/.test/assets/expo-fullusecase/declarations/practices/format/bad-practices/prettier/prettier.config.js.declapract.ts +8 -0
- package/dist/.test/assets/expo-fullusecase/declarations/practices/format/best-practice/package.json.declapract.ts +32 -0
- package/dist/.test/assets/expo-fullusecase/declarations/practices/git/.declapract.integration.test.ts +950 -0
- package/dist/.test/assets/expo-fullusecase/declarations/practices/git/.test/assets/repo-with-rhachet-only/declapract.use.yml +6 -0
- package/dist/.test/assets/expo-fullusecase/declarations/practices/git/.test/assets/repo-with-rhachet-only/package.json +4 -0
- package/dist/.test/assets/expo-fullusecase/declarations/practices/git/.test/assets/repo-without-cache-ignores/declapract.use.yml +9 -0
- package/dist/.test/assets/expo-fullusecase/declarations/practices/git/.test/assets/repo-without-cache-ignores/package.json +4 -0
- package/dist/.test/assets/expo-fullusecase/declarations/practices/git/__snapshots__/.declapract.integration.test.ts.snap +51 -0
- package/dist/.test/assets/expo-fullusecase/declarations/practices/git/best-practice/.declapract.readme.md +23 -0
- package/dist/.test/assets/expo-fullusecase/declarations/practices/git/best-practice/.gitattributes +7 -0
- package/dist/.test/assets/expo-fullusecase/declarations/practices/git/best-practice/.gitattributes.declapract.ts +159 -0
- package/dist/.test/assets/expo-fullusecase/declarations/practices/git/best-practice/.gitignore.declapract.ts +92 -0
- package/dist/.test/assets/expo-fullusecase/declarations/practices/husky/bad-practices/postinstall/package.json.declapract.ts +18 -0
- package/dist/.test/assets/expo-fullusecase/declarations/practices/husky/best-practice/.husky/check.commit.sh +7 -0
- package/dist/.test/assets/expo-fullusecase/declarations/practices/husky/best-practice/.husky/check.lockfile.sh +14 -0
- package/dist/.test/assets/expo-fullusecase/declarations/practices/husky/best-practice/.husky/check.nvm.sh +4 -0
- package/dist/.test/assets/expo-fullusecase/declarations/practices/husky/best-practice/.husky/check.timestamps.sh +48 -0
- package/dist/.test/assets/expo-fullusecase/declarations/practices/husky/best-practice/.husky/check.yalc.sh +11 -0
- package/dist/.test/assets/expo-fullusecase/declarations/practices/husky/best-practice/.husky/commit-msg +8 -0
- package/dist/.test/assets/expo-fullusecase/declarations/practices/husky/best-practice/.husky/post-checkout +9 -0
- package/dist/.test/assets/expo-fullusecase/declarations/practices/husky/best-practice/.husky/post-merge +8 -0
- package/dist/.test/assets/expo-fullusecase/declarations/practices/husky/best-practice/.husky/post-rewrite +8 -0
- package/dist/.test/assets/expo-fullusecase/declarations/practices/husky/best-practice/.husky/pre-commit +10 -0
- package/dist/.test/assets/expo-fullusecase/declarations/practices/husky/best-practice/package.json +9 -0
- package/dist/.test/assets/expo-fullusecase/declarations/practices/husky/best-practice/package.json.declapract.ts +3 -0
- package/dist/.test/assets/expo-fullusecase/declarations/practices/husky/check.timestamps.play.declapract.integration.test.ts +148 -0
- package/dist/.test/assets/expo-fullusecase/declarations/practices/lint/bad-practices/biome-json-extension/biome.json.declapract.ts +7 -0
- package/dist/.test/assets/expo-fullusecase/declarations/practices/lint/bad-practices/depcheck-denylisted-ignores/.declapract.readme.md +8 -0
- package/dist/.test/assets/expo-fullusecase/declarations/practices/lint/bad-practices/depcheck-denylisted-ignores/.depcheckrc.yml.declapract.ts +60 -0
- package/dist/.test/assets/expo-fullusecase/declarations/practices/lint/bad-practices/eslint/.eslintrc.js +67 -0
- package/dist/.test/assets/expo-fullusecase/declarations/practices/lint/bad-practices/eslint/.eslintrc.js.declapract.ts +3 -0
- package/dist/.test/assets/expo-fullusecase/declarations/practices/lint/bad-practices/eslint/package.json.declapract.ts +51 -0
- package/dist/.test/assets/expo-fullusecase/declarations/practices/lint/bad-practices/tslint/package.json.declapract.ts +22 -0
- package/dist/.test/assets/expo-fullusecase/declarations/practices/lint/bad-practices/tslint/tslint.json.declapract.ts +3 -0
- package/dist/.test/assets/expo-fullusecase/declarations/practices/lint/best-practice/.declapract.readme.md +5 -0
- package/dist/.test/assets/expo-fullusecase/declarations/practices/lint/best-practice/.depcheckrc.yml +25 -0
- package/dist/.test/assets/expo-fullusecase/declarations/practices/lint/best-practice/.depcheckrc.yml.declapract.ts +41 -0
- package/dist/.test/assets/expo-fullusecase/declarations/practices/lint/best-practice/.dpdmrc.yaml +9 -0
- package/dist/.test/assets/expo-fullusecase/declarations/practices/lint/best-practice/biome.jsonc +103 -0
- package/dist/.test/assets/expo-fullusecase/declarations/practices/lint/best-practice/package.json +17 -0
- package/dist/.test/assets/expo-fullusecase/declarations/practices/lint/best-practice/package.json.declapract.ts +4 -0
- package/dist/.test/assets/expo-fullusecase/declarations/practices/lint-react/best-practice/package.json +7 -0
- package/dist/.test/assets/expo-fullusecase/declarations/practices/lint-react/best-practice/package.json.declapract.ts +4 -0
- package/dist/.test/assets/expo-fullusecase/declarations/practices/lint-react-native/best-practice/.eslintrc.js +57 -0
- package/dist/.test/assets/expo-fullusecase/declarations/practices/lint-react-native/best-practice/package.json +5 -0
- package/dist/.test/assets/expo-fullusecase/declarations/practices/lint-react-native/best-practice/package.json.declapract.ts +4 -0
- package/dist/.test/assets/expo-fullusecase/declarations/practices/node/.test/assets/repo-expo-npmrc/declapract.use.yml +23 -0
- package/dist/.test/assets/expo-fullusecase/declarations/practices/node/.test/assets/repo-expo-npmrc/package.json +4 -0
- package/dist/.test/assets/expo-fullusecase/declarations/practices/node/bad-practices/self-deps-not-link/.declapract.readme.md +10 -0
- package/dist/.test/assets/expo-fullusecase/declarations/practices/node/bad-practices/self-deps-not-link/package.json.declapract.ts +76 -0
- package/dist/.test/assets/expo-fullusecase/declarations/practices/node/best-practice/.npmrc.declapract.integration.test.ts +165 -0
- package/dist/.test/assets/expo-fullusecase/declarations/practices/node/best-practice/.npmrc.declapract.ts +60 -0
- package/dist/.test/assets/expo-fullusecase/declarations/practices/node/best-practice/.nvmrc +1 -0
- package/dist/.test/assets/expo-fullusecase/declarations/practices/node/best-practice/__snapshots__/.npmrc.declapract.integration.test.ts.snap +24 -0
- package/dist/.test/assets/expo-fullusecase/declarations/practices/node/best-practice/package.json +15 -0
- package/dist/.test/assets/expo-fullusecase/declarations/practices/node/best-practice/package.json.declapract.ts +3 -0
- package/dist/.test/assets/expo-fullusecase/declarations/practices/node/best-practice/readme.md +1 -0
- package/dist/.test/assets/expo-fullusecase/declarations/practices/node/best-practice/readme.md.declapract.ts +3 -0
- package/dist/.test/assets/expo-fullusecase/declarations/practices/nonpublished-modules/.declapract.readme.md +5 -0
- package/dist/.test/assets/expo-fullusecase/declarations/practices/nonpublished-modules/bad-practices/ahbode-standard-lambda-handler/.declapract.readme.md +1 -0
- package/dist/.test/assets/expo-fullusecase/declarations/practices/nonpublished-modules/bad-practices/ahbode-standard-lambda-handler/src/__nonpublished_modules__/ahbode-standard-lambda-handler/<star><star>/<star>.ts.declapract.ts +3 -0
- package/dist/.test/assets/expo-fullusecase/declarations/practices/nonpublished-modules/bad-practices/ahbode-standard-lambda-handler/src/contract/handlers/<star>.integration.test.ts +1 -0
- package/dist/.test/assets/expo-fullusecase/declarations/practices/nonpublished-modules/bad-practices/ahbode-standard-lambda-handler/src/contract/handlers/<star>.integration.test.ts.declapract.ts +15 -0
- package/dist/.test/assets/expo-fullusecase/declarations/practices/nonpublished-modules/bad-practices/ahbode-standard-lambda-handler/src/contract/handlers/<star>.ts +1 -0
- package/dist/.test/assets/expo-fullusecase/declarations/practices/nonpublished-modules/bad-practices/ahbode-standard-lambda-handler/src/contract/handlers/<star>.ts.declapract.ts +13 -0
- package/dist/.test/assets/expo-fullusecase/declarations/practices/nonpublished-modules/bad-practices/deep-omit/.declapract.readme.md +1 -0
- package/dist/.test/assets/expo-fullusecase/declarations/practices/nonpublished-modules/bad-practices/deep-omit/src/__nonpublished_modules__/deep-omit/<star><star>/<star>.ts.declapract.ts +3 -0
- package/dist/.test/assets/expo-fullusecase/declarations/practices/nonpublished-modules/bad-practices/deep-omit/src/data/dao/<star><star>/<star>.integration.test.ts +1 -0
- package/dist/.test/assets/expo-fullusecase/declarations/practices/nonpublished-modules/bad-practices/deep-omit/src/data/dao/<star><star>/<star>.integration.test.ts.declapract.ts +18 -0
- package/dist/.test/assets/expo-fullusecase/declarations/practices/nonpublished-modules/bad-practices/simple-dynamodb-client/.declapract.readme.md +1 -0
- package/dist/.test/assets/expo-fullusecase/declarations/practices/nonpublished-modules/bad-practices/simple-dynamodb-client/src/__nonpublished_modules__/simple-dynamodb-client/<star><star>/<star>.ts.declapract.ts +3 -0
- package/dist/.test/assets/expo-fullusecase/declarations/practices/package-json-order/best-practice/.declapract.readme.md +3 -0
- package/dist/.test/assets/expo-fullusecase/declarations/practices/package-json-order/best-practice/package.json.declapract.ts +227 -0
- package/dist/.test/assets/expo-fullusecase/declarations/practices/pnpm/.declapract.integration.test.ts +175 -0
- package/dist/.test/assets/expo-fullusecase/declarations/practices/pnpm/.test/assets/repo-npm-to-pnpm/.husky/check.lockfile.sh +10 -0
- package/dist/.test/assets/expo-fullusecase/declarations/practices/pnpm/.test/assets/repo-npm-to-pnpm/declapract.use.yml +7 -0
- package/dist/.test/assets/expo-fullusecase/declarations/practices/pnpm/.test/assets/repo-npm-to-pnpm/package.json +16 -0
- package/dist/.test/assets/expo-fullusecase/declarations/practices/pnpm/__snapshots__/.declapract.integration.test.ts.snap +68 -0
- package/dist/.test/assets/expo-fullusecase/declarations/practices/pnpm/bad-practices/husky-lockfile-check/.declapract.readme.md +17 -0
- package/dist/.test/assets/expo-fullusecase/declarations/practices/pnpm/bad-practices/husky-lockfile-check/.husky/check.lockfile.sh.declapract.ts +28 -0
- package/dist/.test/assets/expo-fullusecase/declarations/practices/pnpm/bad-practices/npm-overrides/.declapract.readme.md +20 -0
- package/dist/.test/assets/expo-fullusecase/declarations/practices/pnpm/bad-practices/npm-overrides/package.json.declapract.ts +75 -0
- package/dist/.test/assets/expo-fullusecase/declarations/practices/pnpm/bad-practices/package-lock-json/.declapract.readme.md +30 -0
- package/dist/.test/assets/expo-fullusecase/declarations/practices/pnpm/bad-practices/package-lock-json/package-lock.json.declapract.integration.test.ts +105 -0
- package/dist/.test/assets/expo-fullusecase/declarations/practices/pnpm/bad-practices/package-lock-json/package-lock.json.declapract.ts +41 -0
- package/dist/.test/assets/expo-fullusecase/declarations/practices/pnpm/best-practice/.declapract.readme.md +22 -0
- package/dist/.test/assets/expo-fullusecase/declarations/practices/pnpm/best-practice/package.json +3 -0
- package/dist/.test/assets/expo-fullusecase/declarations/practices/pnpm/best-practice/package.json.declapract.ts +15 -0
- package/dist/.test/assets/expo-fullusecase/declarations/practices/provision-github/bad-practices/deprecated-reviewers-variable/declapract.use.yml.declapract.ts +41 -0
- package/dist/.test/assets/expo-fullusecase/declarations/practices/provision-github/bad-practices/old-declastruct-resources-path/provision/github/declastruct.resources.ts.declapract.ts +7 -0
- package/dist/.test/assets/expo-fullusecase/declarations/practices/provision-github/bad-practices/terraform-github/provision/github/environment/import-existing-repo.sh +12 -0
- package/dist/.test/assets/expo-fullusecase/declarations/practices/provision-github/bad-practices/terraform-github/provision/github/environment/import-existing-repo.sh.declapract.ts +3 -0
- package/dist/.test/assets/expo-fullusecase/declarations/practices/provision-github/bad-practices/terraform-github/provision/github/environment/main.tf +20 -0
- package/dist/.test/assets/expo-fullusecase/declarations/practices/provision-github/bad-practices/terraform-github/provision/github/environment/main.tf.declapract.ts +3 -0
- package/dist/.test/assets/expo-fullusecase/declarations/practices/provision-github/bad-practices/terraform-github/provision/github/environment/versions.tf +9 -0
- package/dist/.test/assets/expo-fullusecase/declarations/practices/provision-github/bad-practices/terraform-github/provision/github/environment/versions.tf.declapract.ts +3 -0
- package/dist/.test/assets/expo-fullusecase/declarations/practices/provision-github/bad-practices/terraform-github/provision/github/product/repository.tf +74 -0
- package/dist/.test/assets/expo-fullusecase/declarations/practices/provision-github/bad-practices/terraform-github/provision/github/product/repository.tf.declapract.ts +3 -0
- package/dist/.test/assets/expo-fullusecase/declarations/practices/provision-github/best-practice/.declapract.readme.md +7 -0
- package/dist/.test/assets/expo-fullusecase/declarations/practices/provision-github/best-practice/package.json +7 -0
- package/dist/.test/assets/expo-fullusecase/declarations/practices/provision-github/best-practice/package.json.declapract.ts +3 -0
- package/dist/.test/assets/expo-fullusecase/declarations/practices/provision-github/best-practice/provision/github.repo/resources.ts +229 -0
- package/dist/.test/assets/expo-fullusecase/declarations/practices/rhachet/bad-practices/deprecated-use-file/.declapract.readme.md +11 -0
- package/dist/.test/assets/expo-fullusecase/declarations/practices/rhachet/bad-practices/deprecated-use-file/rhachet.use.ts.declapract.ts +12 -0
- package/dist/.test/assets/expo-fullusecase/declarations/practices/rhachet/bad-practices/prod-deps/.declapract.readme.md +55 -0
- package/dist/.test/assets/expo-fullusecase/declarations/practices/rhachet/bad-practices/prod-deps/package.json +5 -0
- package/dist/.test/assets/expo-fullusecase/declarations/practices/rhachet/bad-practices/prod-deps/package.json.declapract.ts +47 -0
- package/dist/.test/assets/expo-fullusecase/declarations/practices/rhachet/bad-practices/review-peer-artifacts/.behavior/<star><star>/.reviews/<star><star>/<star>peer-review<star>.md.declapract.ts +16 -0
- package/dist/.test/assets/expo-fullusecase/declarations/practices/rhachet/bad-practices/review-peer-artifacts/.behavior/<star><star>/.reviews/peer/<star><star>/<star>.md.declapract.ts +16 -0
- package/dist/.test/assets/expo-fullusecase/declarations/practices/rhachet/bad-practices/review-peer-artifacts/.declapract.readme.md +12 -0
- package/dist/.test/assets/expo-fullusecase/declarations/practices/rhachet/best-practice/.agent/keyrack.yml.declapract.ts +3 -0
- package/dist/.test/assets/expo-fullusecase/declarations/practices/rhachet/best-practice/.declapract.readme.md +32 -0
- package/dist/.test/assets/expo-fullusecase/declarations/practices/rhachet/best-practice/.gitignore.declapract.ts +64 -0
- package/dist/.test/assets/expo-fullusecase/declarations/practices/rhachet/best-practice/package.json +18 -0
- package/dist/.test/assets/expo-fullusecase/declarations/practices/rhachet/best-practice/package.json.declapract.ts +3 -0
- package/dist/.test/assets/expo-fullusecase/declarations/practices/tests-any/bad-practices/javascript-config-files/jest.<star>.js.declapract.ts +17 -0
- package/dist/{practices/tests → .test/assets/expo-fullusecase/declarations/practices/tests-any}/bad-practices/old-acceptance-dir-location/.declapract.integration.test.ts +2 -2
- package/dist/.test/assets/expo-fullusecase/declarations/practices/tests-any/bad-practices/old-acceptance-dir-location/.test/assets/demo-repo-with-accept-blackbox-dir/package.json +4 -0
- package/dist/.test/assets/expo-fullusecase/declarations/practices/tests-any/bad-practices/old-acceptance-test-utils/blackbox/_utils/getDataFromLastOpenBracketAtStartOfLine.ts.declapract.ts +3 -0
- package/dist/.test/assets/expo-fullusecase/declarations/practices/tests-any/bad-practices/old-acceptance-test-utils/blackbox/_utils/invokeLambda.ts.declapract.ts +3 -0
- package/dist/.test/assets/expo-fullusecase/declarations/practices/tests-any/bad-practices/old-acceptance-test-utils-3/blackbox/_utils/environment.ts.declapract.ts +3 -0
- package/dist/{practices/tests → .test/assets/expo-fullusecase/declarations/practices/tests-any}/best-practice/package.json +1 -3
- package/dist/.test/assets/expo-fullusecase/declarations/practices/tests-any/best-practice/package.json.declapract.ts +3 -0
- package/dist/.test/assets/expo-fullusecase/declarations/practices/tests-any/best-practice/package.json.shell-flags.declapract.integration.test.ts +129 -0
- package/dist/.test/assets/expo-fullusecase/declarations/practices/tests-expo/.declapract.integration.test.ts +134 -0
- package/dist/.test/assets/expo-fullusecase/declarations/practices/tests-expo/.test/assets/repo-expo-greenfield/declapract.use.yml +6 -0
- package/dist/.test/assets/expo-fullusecase/declarations/practices/tests-expo/.test/assets/repo-expo-greenfield/package.json +4 -0
- package/dist/.test/assets/expo-fullusecase/declarations/practices/tests-expo/__snapshots__/.declapract.integration.test.ts.snap +112 -0
- package/dist/.test/assets/expo-fullusecase/declarations/practices/tests-expo/bad-practices/inline-jest-config/.declapract.readme.md +22 -0
- package/dist/.test/assets/expo-fullusecase/declarations/practices/tests-expo/bad-practices/inline-jest-config/package.json.declapract.ts +36 -0
- package/dist/.test/assets/expo-fullusecase/declarations/practices/tests-expo/best-practice/jest.acceptance.config.ts +43 -0
- package/dist/.test/assets/expo-fullusecase/declarations/practices/tests-expo/best-practice/jest.acceptance.env.ts +15 -0
- package/dist/.test/assets/expo-fullusecase/declarations/practices/tests-expo/best-practice/jest.integration.config.ts +42 -0
- package/dist/.test/assets/expo-fullusecase/declarations/practices/tests-expo/best-practice/jest.integration.env.ts +22 -0
- package/dist/.test/assets/expo-fullusecase/declarations/practices/tests-expo/best-practice/jest.unit.config.ts +53 -0
- package/dist/.test/assets/expo-fullusecase/declarations/practices/tests-expo/best-practice/jest.unit.env.ts +18 -0
- package/dist/.test/assets/expo-fullusecase/declarations/practices/tests-expo/best-practice/package.json +9 -0
- package/dist/.test/assets/expo-fullusecase/declarations/practices/tests-expo/best-practice/package.json.declapract.ts +16 -0
- package/dist/.test/assets/expo-fullusecase/declarations/practices/typescript-any/bad-practices/relative-imports/.declapract.readme.md +45 -0
- package/dist/{practices/typescript → .test/assets/expo-fullusecase/declarations/practices/typescript-any}/bad-practices/relative-imports/src/<star><star>/<star>.ts.declapract.ts +11 -0
- package/dist/.test/assets/expo-fullusecase/declarations/practices/typescript-any/best-practice/.declapract.readme.md +17 -0
- package/dist/.test/assets/expo-fullusecase/declarations/practices/typescript-any/best-practice/package.json +8 -0
- package/dist/.test/assets/expo-fullusecase/declarations/practices/typescript-any/best-practice/package.json.declapract.ts +11 -0
- package/dist/.test/assets/expo-fullusecase/declarations/practices/typescript-expo/best-practice/package.json +6 -0
- package/dist/.test/assets/expo-fullusecase/declarations/practices/typescript-expo/best-practice/package.json.declapract.integration.test.ts +30 -0
- package/dist/.test/assets/expo-fullusecase/declarations/practices/typescript-expo/best-practice/package.json.declapract.ts +12 -0
- package/dist/.test/assets/expo-fullusecase/declarations/practices/typescript-expo/best-practice/tsconfig.json +14 -0
- package/dist/.test/assets/expo-fullusecase/declarations/practices/typescript-expo/best-practice/tsconfig.json.declapract.integration.test.ts +32 -0
- package/dist/.test/assets/expo-fullusecase/declarations/practices/typescript-expo/best-practice/tsconfig.json.declapract.ts +12 -0
- package/dist/.test/assets/expo-fullusecase/declarations/useCases.yml +36 -0
- package/dist/.test/assets/expo-fullusecase/repo-greenfield/app.json +6 -0
- package/dist/.test/assets/expo-fullusecase/repo-greenfield/declapract.use.yml +24 -0
- package/dist/.test/assets/expo-fullusecase/repo-greenfield/package.json +7 -0
- package/dist/.test/assets/expo-migration/declarations/declapract.declare.yml +4 -0
- package/dist/.test/assets/expo-migration/declarations/practices/cicd-app-react-native-expo/.declapract.integration.test.ts +810 -0
- package/dist/.test/assets/expo-migration/declarations/practices/cicd-app-react-native-expo/__snapshots__/.declapract.integration.test.ts.snap +289 -0
- package/dist/.test/assets/expo-migration/declarations/practices/cicd-app-react-native-expo/best-practice/.declapract.readme.md +27 -0
- package/dist/.test/assets/expo-migration/declarations/practices/cicd-app-react-native-expo/best-practice/.github/workflows/.deploy-expo.yml +127 -0
- package/dist/.test/assets/expo-migration/declarations/practices/cicd-app-react-native-expo/best-practice/.github/workflows/deploy.yml +76 -0
- package/dist/.test/assets/expo-migration/declarations/practices/cicd-app-react-native-expo/best-practice/.github/workflows/test.yml +27 -0
- package/dist/.test/assets/expo-migration/declarations/practices/cicd-app-react-native-expo/best-practice/.gitignore.declapract.ts +28 -0
- package/dist/.test/assets/expo-migration/declarations/practices/cicd-app-react-native-expo/best-practice/package.json +36 -0
- package/dist/.test/assets/expo-migration/declarations/practices/cicd-app-react-native-expo/best-practice/package.json.declapract.ts +3 -0
- package/dist/.test/assets/expo-migration/declarations/practices/directory-structure-src/bad-practices/data-dir/.declapract.readme.md +10 -0
- package/dist/.test/assets/expo-migration/declarations/practices/directory-structure-src/bad-practices/data-dir/src/<star><star>/data/<star><star>/<star>.declapract.ts +19 -0
- package/dist/.test/assets/expo-migration/declarations/practices/directory-structure-src/bad-practices/domain-dir/.declapract.readme.md +8 -0
- package/dist/.test/assets/expo-migration/declarations/practices/directory-structure-src/bad-practices/domain-dir/src/<star><star>/domain/<star><star>/<star>.declapract.ts +59 -0
- package/dist/.test/assets/expo-migration/declarations/practices/directory-structure-src/bad-practices/logic-dir/.declapract.readme.md +8 -0
- package/dist/.test/assets/expo-migration/declarations/practices/directory-structure-src/bad-practices/logic-dir/src/<star><star>/logic/<star><star>/<star>.declapract.ts +19 -0
- package/dist/.test/assets/expo-migration/declarations/practices/directory-structure-src/bad-practices/model-dir/.declapract.readme.md +3 -0
- package/dist/.test/assets/expo-migration/declarations/practices/directory-structure-src/bad-practices/model-dir/src/<star><star>/<star>.ts.declapract.ts +46 -0
- package/dist/.test/assets/expo-migration/declarations/practices/directory-structure-src/bad-practices/model-dir/src/<star><star>/model/<star><star>/<star>.declapract.ts +16 -0
- package/dist/.test/assets/expo-migration/declarations/practices/directory-structure-src/bad-practices/nonpublished-modules-dir/src/__nonpublished_modules__/<star><star>/<star>.declapract.ts +17 -0
- package/dist/.test/assets/expo-migration/declarations/practices/directory-structure-src/bad-practices/old-import-paths/.declapract.readme.md +21 -0
- package/dist/.test/assets/expo-migration/declarations/practices/directory-structure-src/bad-practices/old-import-paths/src/<star><star>/<star>.ts.declapract.ts +67 -0
- package/dist/.test/assets/expo-migration/declarations/practices/directory-structure-src/bad-practices/services-dir/.declapract.readme.md +5 -0
- package/dist/.test/assets/expo-migration/declarations/practices/directory-structure-src/bad-practices/services-dir/src/<star><star>/services/<star><star>/<star>.declapract.ts +16 -0
- package/dist/.test/assets/expo-migration/declarations/practices/directory-structure-src/best-practice/.declapract.readme.md +73 -0
- package/dist/.test/assets/expo-migration/declarations/practices/directory-structure-src/best-practice/src/access/daos/<star><star>/<star>.ts.declapract.ts +4 -0
- package/dist/.test/assets/expo-migration/declarations/practices/directory-structure-src/best-practice/src/access/sdks/<star><star>/<star>.ts.declapract.ts +4 -0
- package/dist/.test/assets/expo-migration/declarations/practices/directory-structure-src/best-practice/src/access/svcs/<star><star>/<star>.ts.declapract.ts +4 -0
- package/dist/.test/assets/expo-migration/declarations/practices/directory-structure-src/best-practice/src/contract/<star><star>/<star>.ts.declapract.ts +4 -0
- package/dist/.test/assets/expo-migration/declarations/practices/directory-structure-src/best-practice/src/domain.objects/<star><star>/<star>.ts.declapract.ts +4 -0
- package/dist/.test/assets/expo-migration/declarations/practices/directory-structure-src/best-practice/src/domain.operations/<star><star>/<star>.ts.declapract.ts +4 -0
- package/dist/.test/assets/expo-migration/declarations/practices/directory-structure-src/best-practice/src/infra/<star><star>/<star>.ts.declapract.ts +4 -0
- package/dist/.test/assets/expo-migration/declarations/practices/domain/bad-practices/schematic-joi-model/src/domain/<star><star>/<star>.ts.declapract.ts +16 -0
- package/dist/.test/assets/expo-migration/declarations/practices/domain/bad-practices/simple-type-guards/.declapract.readme.md +1 -0
- package/dist/.test/assets/expo-migration/declarations/practices/domain/bad-practices/simple-type-guards/package.json.declapract.ts +23 -0
- package/dist/.test/assets/expo-migration/declarations/practices/domain/best-practice/package.json +6 -0
- package/dist/.test/assets/expo-migration/declarations/practices/domain/best-practice/package.json.declapract.ts +3 -0
- package/dist/.test/assets/expo-migration/declarations/practices/domain/best-practice/src/domain/objects/index.ts.declapract.ts +4 -0
- package/dist/.test/assets/expo-migration/declarations/practices/git/.declapract.integration.test.ts +950 -0
- package/dist/.test/assets/expo-migration/declarations/practices/git/.test/assets/repo-with-rhachet-only/declapract.use.yml +6 -0
- package/dist/.test/assets/expo-migration/declarations/practices/git/.test/assets/repo-with-rhachet-only/package.json +4 -0
- package/dist/.test/assets/expo-migration/declarations/practices/git/.test/assets/repo-without-cache-ignores/declapract.use.yml +9 -0
- package/dist/.test/assets/expo-migration/declarations/practices/git/.test/assets/repo-without-cache-ignores/package.json +4 -0
- package/dist/.test/assets/expo-migration/declarations/practices/git/__snapshots__/.declapract.integration.test.ts.snap +51 -0
- package/dist/.test/assets/expo-migration/declarations/practices/git/best-practice/.declapract.readme.md +23 -0
- package/dist/.test/assets/expo-migration/declarations/practices/git/best-practice/.gitattributes +7 -0
- package/dist/.test/assets/expo-migration/declarations/practices/git/best-practice/.gitattributes.declapract.ts +159 -0
- package/dist/.test/assets/expo-migration/declarations/practices/git/best-practice/.gitignore.declapract.ts +92 -0
- package/dist/.test/assets/expo-migration/declarations/practices/node/.test/assets/repo-expo-npmrc/declapract.use.yml +23 -0
- package/dist/.test/assets/expo-migration/declarations/practices/node/.test/assets/repo-expo-npmrc/package.json +4 -0
- package/dist/.test/assets/expo-migration/declarations/practices/node/bad-practices/self-deps-not-link/.declapract.readme.md +10 -0
- package/dist/.test/assets/expo-migration/declarations/practices/node/bad-practices/self-deps-not-link/package.json.declapract.ts +76 -0
- package/dist/.test/assets/expo-migration/declarations/practices/node/best-practice/.npmrc.declapract.integration.test.ts +165 -0
- package/dist/.test/assets/expo-migration/declarations/practices/node/best-practice/.npmrc.declapract.ts +60 -0
- package/dist/.test/assets/expo-migration/declarations/practices/node/best-practice/.nvmrc +1 -0
- package/dist/.test/assets/expo-migration/declarations/practices/node/best-practice/__snapshots__/.npmrc.declapract.integration.test.ts.snap +24 -0
- package/dist/.test/assets/expo-migration/declarations/practices/node/best-practice/package.json +15 -0
- package/dist/.test/assets/expo-migration/declarations/practices/node/best-practice/package.json.declapract.ts +3 -0
- package/dist/.test/assets/expo-migration/declarations/practices/node/best-practice/readme.md +1 -0
- package/dist/.test/assets/expo-migration/declarations/practices/node/best-practice/readme.md.declapract.ts +3 -0
- package/dist/.test/assets/expo-migration/declarations/practices/pnpm/.declapract.integration.test.ts +175 -0
- package/dist/.test/assets/expo-migration/declarations/practices/pnpm/.test/assets/repo-npm-to-pnpm/.husky/check.lockfile.sh +10 -0
- package/dist/.test/assets/expo-migration/declarations/practices/pnpm/.test/assets/repo-npm-to-pnpm/declapract.use.yml +7 -0
- package/dist/.test/assets/expo-migration/declarations/practices/pnpm/.test/assets/repo-npm-to-pnpm/package.json +16 -0
- package/dist/.test/assets/expo-migration/declarations/practices/pnpm/__snapshots__/.declapract.integration.test.ts.snap +68 -0
- package/dist/.test/assets/expo-migration/declarations/practices/pnpm/bad-practices/husky-lockfile-check/.declapract.readme.md +17 -0
- package/dist/.test/assets/expo-migration/declarations/practices/pnpm/bad-practices/husky-lockfile-check/.husky/check.lockfile.sh.declapract.ts +28 -0
- package/dist/.test/assets/expo-migration/declarations/practices/pnpm/bad-practices/npm-overrides/.declapract.readme.md +20 -0
- package/dist/.test/assets/expo-migration/declarations/practices/pnpm/bad-practices/npm-overrides/package.json.declapract.ts +75 -0
- package/dist/.test/assets/expo-migration/declarations/practices/pnpm/bad-practices/package-lock-json/.declapract.readme.md +30 -0
- package/dist/.test/assets/expo-migration/declarations/practices/pnpm/bad-practices/package-lock-json/package-lock.json.declapract.integration.test.ts +105 -0
- package/dist/.test/assets/expo-migration/declarations/practices/pnpm/bad-practices/package-lock-json/package-lock.json.declapract.ts +41 -0
- package/dist/.test/assets/expo-migration/declarations/practices/pnpm/best-practice/.declapract.readme.md +22 -0
- package/dist/.test/assets/expo-migration/declarations/practices/pnpm/best-practice/package.json +3 -0
- package/dist/.test/assets/expo-migration/declarations/practices/pnpm/best-practice/package.json.declapract.ts +15 -0
- package/dist/.test/assets/expo-migration/declarations/practices/rhachet/bad-practices/deprecated-use-file/.declapract.readme.md +11 -0
- package/dist/.test/assets/expo-migration/declarations/practices/rhachet/bad-practices/deprecated-use-file/rhachet.use.ts.declapract.ts +12 -0
- package/dist/.test/assets/expo-migration/declarations/practices/rhachet/bad-practices/prod-deps/.declapract.readme.md +55 -0
- package/dist/.test/assets/expo-migration/declarations/practices/rhachet/bad-practices/prod-deps/package.json +5 -0
- package/dist/.test/assets/expo-migration/declarations/practices/rhachet/bad-practices/prod-deps/package.json.declapract.ts +47 -0
- package/dist/.test/assets/expo-migration/declarations/practices/rhachet/bad-practices/review-peer-artifacts/.behavior/<star><star>/.reviews/<star><star>/<star>peer-review<star>.md.declapract.ts +16 -0
- package/dist/.test/assets/expo-migration/declarations/practices/rhachet/bad-practices/review-peer-artifacts/.behavior/<star><star>/.reviews/peer/<star><star>/<star>.md.declapract.ts +16 -0
- package/dist/.test/assets/expo-migration/declarations/practices/rhachet/bad-practices/review-peer-artifacts/.declapract.readme.md +12 -0
- package/dist/.test/assets/expo-migration/declarations/practices/rhachet/best-practice/.agent/keyrack.yml.declapract.ts +3 -0
- package/dist/.test/assets/expo-migration/declarations/practices/rhachet/best-practice/.declapract.readme.md +32 -0
- package/dist/.test/assets/expo-migration/declarations/practices/rhachet/best-practice/.gitignore.declapract.ts +64 -0
- package/dist/.test/assets/expo-migration/declarations/practices/rhachet/best-practice/package.json +18 -0
- package/dist/.test/assets/expo-migration/declarations/practices/rhachet/best-practice/package.json.declapract.ts +3 -0
- package/dist/.test/assets/expo-migration/declarations/practices/tests-any/bad-practices/javascript-config-files/.declapract.readme.md +1 -0
- package/dist/.test/assets/expo-migration/declarations/practices/tests-any/bad-practices/javascript-config-files/jest.<star>.js.declapract.ts +17 -0
- package/dist/.test/assets/expo-migration/declarations/practices/tests-any/bad-practices/mocks/.declapract.readme.md +8 -0
- package/dist/.test/assets/expo-migration/declarations/practices/tests-any/bad-practices/mocks/<star><star>/__mock__/<star>.js +3 -0
- package/dist/.test/assets/expo-migration/declarations/practices/tests-any/bad-practices/mocks/<star><star>/__mock__/<star>.ts +3 -0
- package/dist/.test/assets/expo-migration/declarations/practices/tests-any/bad-practices/old-acceptance-dir-location/.declapract.integration.test.ts +63 -0
- package/dist/.test/assets/expo-migration/declarations/practices/tests-any/bad-practices/old-acceptance-dir-location/.declapract.readme.md +22 -0
- package/dist/.test/assets/expo-migration/declarations/practices/tests-any/bad-practices/old-acceptance-dir-location/.test/assets/demo-repo-with-accept-blackbox-dir/accept.blackbox/.test/assets/.agent/config.yml +1 -0
- package/dist/.test/assets/expo-migration/declarations/practices/tests-any/bad-practices/old-acceptance-dir-location/.test/assets/demo-repo-with-accept-blackbox-dir/accept.blackbox/.test/assets/.rhachet/manifest.json +1 -0
- package/dist/.test/assets/expo-migration/declarations/practices/tests-any/bad-practices/old-acceptance-dir-location/.test/assets/demo-repo-with-accept-blackbox-dir/accept.blackbox/somefile.ts +1 -0
- package/dist/.test/assets/expo-migration/declarations/practices/tests-any/bad-practices/old-acceptance-dir-location/.test/assets/demo-repo-with-accept-blackbox-dir/declapract.declare.yml +4 -0
- package/dist/.test/assets/expo-migration/declarations/practices/tests-any/bad-practices/old-acceptance-dir-location/.test/assets/demo-repo-with-accept-blackbox-dir/declapract.use.yml +5 -0
- package/dist/.test/assets/expo-migration/declarations/practices/tests-any/bad-practices/old-acceptance-dir-location/.test/assets/demo-repo-with-accept-blackbox-dir/package.json +4 -0
- package/dist/.test/assets/expo-migration/declarations/practices/tests-any/bad-practices/old-acceptance-dir-location/accept.blackbox/<star><star>/<star>.declapract.ts +19 -0
- package/dist/.test/assets/expo-migration/declarations/practices/tests-any/bad-practices/old-acceptance-dir-location/acceptance/<star><star>/<star>.declapract.ts +19 -0
- package/dist/.test/assets/expo-migration/declarations/practices/tests-any/bad-practices/old-acceptance-import-paths/.declapract.readme.md +31 -0
- package/dist/.test/assets/expo-migration/declarations/practices/tests-any/bad-practices/old-acceptance-import-paths/<star><star>/<star>.ts.declapract.ts +25 -0
- package/dist/.test/assets/expo-migration/declarations/practices/tests-any/bad-practices/old-acceptance-test-utils/blackbox/_utils/getDataFromLastOpenBracketAtStartOfLine.ts.declapract.ts +3 -0
- package/dist/.test/assets/expo-migration/declarations/practices/tests-any/bad-practices/old-acceptance-test-utils/blackbox/_utils/invokeLambda.ts.declapract.ts +3 -0
- package/dist/.test/assets/expo-migration/declarations/practices/tests-any/bad-practices/old-acceptance-test-utils/blackbox/lambdas/<star>.ts.declapract.ts +44 -0
- package/dist/.test/assets/expo-migration/declarations/practices/tests-any/bad-practices/old-acceptance-test-utils-2/blackbox/lambdas/<star>.ts.declapract.ts +22 -0
- package/dist/.test/assets/expo-migration/declarations/practices/tests-any/bad-practices/old-acceptance-test-utils-3/blackbox/_utils/environment.ts.declapract.ts +3 -0
- package/dist/.test/assets/expo-migration/declarations/practices/tests-any/bad-practices/old-acceptance-test-utils-3/blackbox/lambdas/<star>.ts.declapract.ts +18 -0
- package/dist/.test/assets/expo-migration/declarations/practices/tests-any/bad-practices/old-extension-pattern/.declapract.readme.md +3 -0
- package/dist/.test/assets/expo-migration/declarations/practices/tests-any/bad-practices/old-extension-pattern/<star><star>/<star>.test.acceptance.ts.declapract.ts +11 -0
- package/dist/.test/assets/expo-migration/declarations/practices/tests-any/bad-practices/old-extension-pattern/<star><star>/<star>.test.integration.ts.declapract.ts +11 -0
- package/dist/.test/assets/expo-migration/declarations/practices/tests-any/bad-practices/old-test-utils-and-assets-location/.declapract.readme.md +8 -0
- package/dist/.test/assets/expo-migration/declarations/practices/tests-any/bad-practices/old-test-utils-and-assets-location/<star><star>/<star>.ts.declapract.ts +27 -0
- package/dist/.test/assets/expo-migration/declarations/practices/tests-any/bad-practices/old-test-utils-and-assets-location/<star><star>/__test_assets__/<star><star>/<star>.declapract.ts +17 -0
- package/dist/.test/assets/expo-migration/declarations/practices/tests-any/bad-practices/old-test-utils-and-assets-location/<star><star>/__test_utils__/<star><star>/<star>.declapract.ts +17 -0
- package/dist/.test/assets/expo-migration/declarations/practices/tests-any/best-practice/.declapract.readme.md +45 -0
- package/dist/.test/assets/expo-migration/declarations/practices/tests-any/best-practice/.declapract.todo.md +3 -0
- package/dist/.test/assets/expo-migration/declarations/practices/tests-any/best-practice/package.json +17 -0
- package/dist/.test/assets/expo-migration/declarations/practices/tests-any/best-practice/package.json.declapract.ts +3 -0
- package/dist/.test/assets/expo-migration/declarations/practices/tests-any/best-practice/package.json.shell-flags.declapract.integration.test.ts +129 -0
- package/dist/.test/assets/expo-migration/declarations/practices/tests-any/best-practice/src/<star><star>/<star>.integration.test.ts.declapract.ts +3 -0
- package/dist/.test/assets/expo-migration/declarations/practices/tests-any/best-practice/src/<star><star>/<star>.test.ts.declapract.ts +3 -0
- package/dist/.test/assets/expo-migration/declarations/practices/tests-expo/.declapract.integration.test.ts +134 -0
- package/dist/.test/assets/expo-migration/declarations/practices/tests-expo/.test/assets/repo-expo-greenfield/declapract.use.yml +6 -0
- package/dist/.test/assets/expo-migration/declarations/practices/tests-expo/.test/assets/repo-expo-greenfield/package.json +4 -0
- package/dist/.test/assets/expo-migration/declarations/practices/tests-expo/__snapshots__/.declapract.integration.test.ts.snap +112 -0
- package/dist/.test/assets/expo-migration/declarations/practices/tests-expo/bad-practices/inline-jest-config/.declapract.readme.md +22 -0
- package/dist/.test/assets/expo-migration/declarations/practices/tests-expo/bad-practices/inline-jest-config/package.json.declapract.ts +36 -0
- package/dist/.test/assets/expo-migration/declarations/practices/tests-expo/best-practice/jest.acceptance.config.ts +43 -0
- package/dist/.test/assets/expo-migration/declarations/practices/tests-expo/best-practice/jest.acceptance.env.ts +15 -0
- package/dist/.test/assets/expo-migration/declarations/practices/tests-expo/best-practice/jest.config.ts +7 -0
- package/dist/.test/assets/expo-migration/declarations/practices/tests-expo/best-practice/jest.integration.config.ts +42 -0
- package/dist/.test/assets/expo-migration/declarations/practices/tests-expo/best-practice/jest.integration.env.ts +22 -0
- package/dist/.test/assets/expo-migration/declarations/practices/tests-expo/best-practice/jest.unit.config.ts +53 -0
- package/dist/.test/assets/expo-migration/declarations/practices/tests-expo/best-practice/jest.unit.env.ts +18 -0
- package/dist/.test/assets/expo-migration/declarations/practices/tests-expo/best-practice/package.json +9 -0
- package/dist/.test/assets/expo-migration/declarations/practices/tests-expo/best-practice/package.json.declapract.ts +16 -0
- package/dist/.test/assets/expo-migration/declarations/practices/typescript-any/bad-practices/relative-imports/.declapract.readme.md +45 -0
- package/dist/.test/assets/expo-migration/declarations/practices/typescript-any/bad-practices/relative-imports/src/<star><star>/<star>.ts.declapract.ts +97 -0
- package/dist/.test/assets/expo-migration/declarations/practices/typescript-any/best-practice/.declapract.readme.md +17 -0
- package/dist/.test/assets/expo-migration/declarations/practices/typescript-any/best-practice/package.json +8 -0
- package/dist/.test/assets/expo-migration/declarations/practices/typescript-any/best-practice/package.json.declapract.ts +11 -0
- package/dist/.test/assets/expo-migration/declarations/practices/typescript-expo/best-practice/package.json +6 -0
- package/dist/.test/assets/expo-migration/declarations/practices/typescript-expo/best-practice/package.json.declapract.integration.test.ts +30 -0
- package/dist/.test/assets/expo-migration/declarations/practices/typescript-expo/best-practice/package.json.declapract.ts +12 -0
- package/dist/.test/assets/expo-migration/declarations/practices/typescript-expo/best-practice/tsconfig.json +14 -0
- package/dist/.test/assets/expo-migration/declarations/practices/typescript-expo/best-practice/tsconfig.json.declapract.integration.test.ts +32 -0
- package/dist/.test/assets/expo-migration/declarations/practices/typescript-expo/best-practice/tsconfig.json.declapract.ts +12 -0
- package/dist/.test/assets/expo-migration/declarations/useCases.yml +21 -0
- package/dist/.test/assets/expo-migration/repo-app-protools-shaped/.github/workflows/.deploy-expo.yml +30 -0
- package/dist/.test/assets/expo-migration/repo-app-protools-shaped/.husky/check.lockfile.sh +5 -0
- package/dist/.test/assets/expo-migration/repo-app-protools-shaped/declapract.use.yml +24 -0
- package/dist/.test/assets/expo-migration/repo-app-protools-shaped/jest.config.js +8 -0
- package/dist/.test/assets/expo-migration/repo-app-protools-shaped/package-lock.json +7 -0
- package/dist/.test/assets/expo-migration/repo-app-protools-shaped/package.json +22 -0
- package/dist/.test/assets/expo-migration/repo-app-protools-shaped/pnpm-lock.yaml +5 -0
- package/dist/.test/assets/expo-migration/repo-app-protools-shaped/src/data/dao/daoCustomer.ts +9 -0
- package/dist/.test/assets/expo-migration/repo-app-protools-shaped/src/logic/customer/getCustomer.ts +25 -0
- package/dist/.test/assets/expo-migration/repo-app-protools-shaped/src/logic/shared/formatCustomer.ts +8 -0
- package/dist/.test/assets/expo-migration/repo-app-protools-shaped/tsconfig.json +12 -0
- package/dist/.test/assets/expo-toolchain/declarations/declapract.declare.yml +4 -0
- package/dist/.test/assets/expo-toolchain/declarations/practices/tests-any/bad-practices/javascript-config-files/.declapract.readme.md +1 -0
- package/dist/.test/assets/expo-toolchain/declarations/practices/tests-any/bad-practices/javascript-config-files/jest.<star>.js.declapract.ts +17 -0
- package/dist/.test/assets/expo-toolchain/declarations/practices/tests-any/bad-practices/mocks/.declapract.readme.md +8 -0
- package/dist/.test/assets/expo-toolchain/declarations/practices/tests-any/bad-practices/mocks/<star><star>/__mock__/<star>.js +3 -0
- package/dist/.test/assets/expo-toolchain/declarations/practices/tests-any/bad-practices/mocks/<star><star>/__mock__/<star>.ts +3 -0
- package/dist/.test/assets/expo-toolchain/declarations/practices/tests-any/bad-practices/old-acceptance-dir-location/.declapract.integration.test.ts +63 -0
- package/dist/.test/assets/expo-toolchain/declarations/practices/tests-any/bad-practices/old-acceptance-dir-location/.declapract.readme.md +22 -0
- package/dist/.test/assets/expo-toolchain/declarations/practices/tests-any/bad-practices/old-acceptance-dir-location/.test/assets/demo-repo-with-accept-blackbox-dir/accept.blackbox/.test/assets/.agent/config.yml +1 -0
- package/dist/.test/assets/expo-toolchain/declarations/practices/tests-any/bad-practices/old-acceptance-dir-location/.test/assets/demo-repo-with-accept-blackbox-dir/accept.blackbox/.test/assets/.rhachet/manifest.json +1 -0
- package/dist/.test/assets/expo-toolchain/declarations/practices/tests-any/bad-practices/old-acceptance-dir-location/.test/assets/demo-repo-with-accept-blackbox-dir/accept.blackbox/somefile.ts +1 -0
- package/dist/.test/assets/expo-toolchain/declarations/practices/tests-any/bad-practices/old-acceptance-dir-location/.test/assets/demo-repo-with-accept-blackbox-dir/declapract.declare.yml +4 -0
- package/dist/.test/assets/expo-toolchain/declarations/practices/tests-any/bad-practices/old-acceptance-dir-location/.test/assets/demo-repo-with-accept-blackbox-dir/declapract.use.yml +5 -0
- package/dist/.test/assets/expo-toolchain/declarations/practices/tests-any/bad-practices/old-acceptance-dir-location/.test/assets/demo-repo-with-accept-blackbox-dir/package.json +4 -0
- package/dist/.test/assets/expo-toolchain/declarations/practices/tests-any/bad-practices/old-acceptance-dir-location/accept.blackbox/<star><star>/<star>.declapract.ts +19 -0
- package/dist/.test/assets/expo-toolchain/declarations/practices/tests-any/bad-practices/old-acceptance-dir-location/acceptance/<star><star>/<star>.declapract.ts +19 -0
- package/dist/.test/assets/expo-toolchain/declarations/practices/tests-any/bad-practices/old-acceptance-import-paths/.declapract.readme.md +31 -0
- package/dist/.test/assets/expo-toolchain/declarations/practices/tests-any/bad-practices/old-acceptance-import-paths/<star><star>/<star>.ts.declapract.ts +25 -0
- package/dist/.test/assets/expo-toolchain/declarations/practices/tests-any/bad-practices/old-acceptance-test-utils/blackbox/_utils/getDataFromLastOpenBracketAtStartOfLine.ts.declapract.ts +3 -0
- package/dist/.test/assets/expo-toolchain/declarations/practices/tests-any/bad-practices/old-acceptance-test-utils/blackbox/_utils/invokeLambda.ts.declapract.ts +3 -0
- package/dist/.test/assets/expo-toolchain/declarations/practices/tests-any/bad-practices/old-acceptance-test-utils/blackbox/lambdas/<star>.ts.declapract.ts +44 -0
- package/dist/.test/assets/expo-toolchain/declarations/practices/tests-any/bad-practices/old-acceptance-test-utils-2/blackbox/lambdas/<star>.ts.declapract.ts +22 -0
- package/dist/.test/assets/expo-toolchain/declarations/practices/tests-any/bad-practices/old-acceptance-test-utils-3/blackbox/_utils/environment.ts.declapract.ts +3 -0
- package/dist/.test/assets/expo-toolchain/declarations/practices/tests-any/bad-practices/old-acceptance-test-utils-3/blackbox/lambdas/<star>.ts.declapract.ts +18 -0
- package/dist/.test/assets/expo-toolchain/declarations/practices/tests-any/bad-practices/old-extension-pattern/.declapract.readme.md +3 -0
- package/dist/.test/assets/expo-toolchain/declarations/practices/tests-any/bad-practices/old-extension-pattern/<star><star>/<star>.test.acceptance.ts.declapract.ts +11 -0
- package/dist/.test/assets/expo-toolchain/declarations/practices/tests-any/bad-practices/old-extension-pattern/<star><star>/<star>.test.integration.ts.declapract.ts +11 -0
- package/dist/.test/assets/expo-toolchain/declarations/practices/tests-any/bad-practices/old-test-utils-and-assets-location/.declapract.readme.md +8 -0
- package/dist/.test/assets/expo-toolchain/declarations/practices/tests-any/bad-practices/old-test-utils-and-assets-location/<star><star>/<star>.ts.declapract.ts +27 -0
- package/dist/.test/assets/expo-toolchain/declarations/practices/tests-any/bad-practices/old-test-utils-and-assets-location/<star><star>/__test_assets__/<star><star>/<star>.declapract.ts +17 -0
- package/dist/.test/assets/expo-toolchain/declarations/practices/tests-any/bad-practices/old-test-utils-and-assets-location/<star><star>/__test_utils__/<star><star>/<star>.declapract.ts +17 -0
- package/dist/.test/assets/expo-toolchain/declarations/practices/tests-any/best-practice/.declapract.readme.md +45 -0
- package/dist/.test/assets/expo-toolchain/declarations/practices/tests-any/best-practice/.declapract.todo.md +3 -0
- package/dist/.test/assets/expo-toolchain/declarations/practices/tests-any/best-practice/package.json +17 -0
- package/dist/.test/assets/expo-toolchain/declarations/practices/tests-any/best-practice/package.json.declapract.ts +3 -0
- package/dist/.test/assets/expo-toolchain/declarations/practices/tests-any/best-practice/package.json.shell-flags.declapract.integration.test.ts +129 -0
- package/dist/.test/assets/expo-toolchain/declarations/practices/tests-any/best-practice/src/<star><star>/<star>.integration.test.ts.declapract.ts +3 -0
- package/dist/.test/assets/expo-toolchain/declarations/practices/tests-any/best-practice/src/<star><star>/<star>.test.ts.declapract.ts +3 -0
- package/dist/.test/assets/expo-toolchain/declarations/practices/tests-expo/.declapract.integration.test.ts +134 -0
- package/dist/.test/assets/expo-toolchain/declarations/practices/tests-expo/.test/assets/repo-expo-greenfield/declapract.use.yml +6 -0
- package/dist/.test/assets/expo-toolchain/declarations/practices/tests-expo/.test/assets/repo-expo-greenfield/package.json +4 -0
- package/dist/.test/assets/expo-toolchain/declarations/practices/tests-expo/__snapshots__/.declapract.integration.test.ts.snap +112 -0
- package/dist/.test/assets/expo-toolchain/declarations/practices/tests-expo/bad-practices/inline-jest-config/.declapract.readme.md +22 -0
- package/dist/.test/assets/expo-toolchain/declarations/practices/tests-expo/bad-practices/inline-jest-config/package.json.declapract.ts +36 -0
- package/dist/.test/assets/expo-toolchain/declarations/practices/tests-expo/best-practice/jest.acceptance.config.ts +43 -0
- package/dist/.test/assets/expo-toolchain/declarations/practices/tests-expo/best-practice/jest.acceptance.env.ts +15 -0
- package/dist/.test/assets/expo-toolchain/declarations/practices/tests-expo/best-practice/jest.config.ts +7 -0
- package/dist/.test/assets/expo-toolchain/declarations/practices/tests-expo/best-practice/jest.integration.config.ts +42 -0
- package/dist/.test/assets/expo-toolchain/declarations/practices/tests-expo/best-practice/jest.integration.env.ts +22 -0
- package/dist/.test/assets/expo-toolchain/declarations/practices/tests-expo/best-practice/jest.unit.config.ts +53 -0
- package/dist/.test/assets/expo-toolchain/declarations/practices/tests-expo/best-practice/jest.unit.env.ts +18 -0
- package/dist/.test/assets/expo-toolchain/declarations/practices/tests-expo/best-practice/package.json +9 -0
- package/dist/.test/assets/expo-toolchain/declarations/practices/tests-expo/best-practice/package.json.declapract.ts +16 -0
- package/dist/.test/assets/expo-toolchain/declarations/practices/typescript-any/bad-practices/relative-imports/.declapract.readme.md +45 -0
- package/dist/.test/assets/expo-toolchain/declarations/practices/typescript-any/bad-practices/relative-imports/src/<star><star>/<star>.ts.declapract.ts +97 -0
- package/dist/.test/assets/expo-toolchain/declarations/practices/typescript-any/best-practice/.declapract.readme.md +17 -0
- package/dist/.test/assets/expo-toolchain/declarations/practices/typescript-any/best-practice/package.json +8 -0
- package/dist/.test/assets/expo-toolchain/declarations/practices/typescript-any/best-practice/package.json.declapract.ts +11 -0
- package/dist/.test/assets/expo-toolchain/declarations/practices/typescript-expo/best-practice/package.json +6 -0
- package/dist/.test/assets/expo-toolchain/declarations/practices/typescript-expo/best-practice/package.json.declapract.integration.test.ts +30 -0
- package/dist/.test/assets/expo-toolchain/declarations/practices/typescript-expo/best-practice/package.json.declapract.ts +12 -0
- package/dist/.test/assets/expo-toolchain/declarations/practices/typescript-expo/best-practice/tsconfig.json +14 -0
- package/dist/.test/assets/expo-toolchain/declarations/practices/typescript-expo/best-practice/tsconfig.json.declapract.integration.test.ts +32 -0
- package/dist/.test/assets/expo-toolchain/declarations/practices/typescript-expo/best-practice/tsconfig.json.declapract.ts +12 -0
- package/dist/.test/assets/expo-toolchain/declarations/useCases.yml +12 -0
- package/dist/.test/assets/pnpm/declarations/declapract.declare.yml +4 -0
- package/dist/.test/assets/pnpm/declarations/practices/pnpm/.declapract.integration.test.ts +175 -0
- package/dist/.test/assets/pnpm/declarations/practices/pnpm/.test/assets/repo-npm-to-pnpm/.husky/check.lockfile.sh +10 -0
- package/dist/.test/assets/pnpm/declarations/practices/pnpm/.test/assets/repo-npm-to-pnpm/declapract.use.yml +7 -0
- package/dist/.test/assets/pnpm/declarations/practices/pnpm/.test/assets/repo-npm-to-pnpm/package.json +16 -0
- package/dist/.test/assets/pnpm/declarations/practices/pnpm/__snapshots__/.declapract.integration.test.ts.snap +68 -0
- package/dist/.test/assets/pnpm/declarations/practices/pnpm/bad-practices/husky-lockfile-check/.declapract.readme.md +17 -0
- package/dist/.test/assets/pnpm/declarations/practices/pnpm/bad-practices/husky-lockfile-check/.husky/check.lockfile.sh.declapract.ts +28 -0
- package/dist/.test/assets/pnpm/declarations/practices/pnpm/bad-practices/npm-overrides/.declapract.readme.md +20 -0
- package/dist/.test/assets/pnpm/declarations/practices/pnpm/bad-practices/npm-overrides/package.json.declapract.ts +75 -0
- package/dist/.test/assets/pnpm/declarations/practices/pnpm/bad-practices/package-lock-json/.declapract.readme.md +30 -0
- package/dist/.test/assets/pnpm/declarations/practices/pnpm/bad-practices/package-lock-json/package-lock.json.declapract.integration.test.ts +105 -0
- package/dist/.test/assets/pnpm/declarations/practices/pnpm/bad-practices/package-lock-json/package-lock.json.declapract.ts +41 -0
- package/dist/.test/assets/pnpm/declarations/practices/pnpm/best-practice/.declapract.readme.md +22 -0
- package/dist/.test/assets/pnpm/declarations/practices/pnpm/best-practice/package.json +3 -0
- package/dist/.test/assets/pnpm/declarations/practices/pnpm/best-practice/package.json.declapract.ts +15 -0
- package/dist/.test/assets/pnpm/declarations/useCases.yml +7 -0
- package/dist/__snapshots__/actionPins.declapract.integration.test.ts.snap +70 -0
- package/dist/actionPins.declapract.integration.test.ts +785 -0
- package/dist/practices/cache/.declapract.integration.test.ts +3 -3
- package/dist/practices/cicd-app-react-native-expo/.declapract.integration.test.ts +810 -0
- package/dist/practices/cicd-app-react-native-expo/__snapshots__/.declapract.integration.test.ts.snap +289 -0
- package/dist/practices/cicd-app-react-native-expo/best-practice/.github/workflows/.deploy-expo.yml +24 -25
- package/dist/practices/cicd-app-react-native-expo/best-practice/.github/workflows/deploy.yml +4 -0
- package/dist/practices/cicd-app-react-native-expo/best-practice/.github/workflows/test.yml +4 -0
- package/dist/practices/cicd-app-react-native-expo/best-practice/package.json +0 -7
- package/dist/practices/cicd-common/.declapract.integration.test.ts +572 -0
- package/dist/practices/cicd-common/.test/assets/repo-with-unpinned-workflow/.github/workflows/.test.yml +19 -0
- package/dist/practices/cicd-common/.test/assets/repo-with-unpinned-workflow/.github/workflows/consumer-owned.yml +21 -0
- package/dist/practices/cicd-common/.test/assets/repo-with-unpinned-workflow/.github/workflows/review.yml +26 -0
- package/dist/practices/cicd-common/.test/assets/repo-with-unpinned-workflow/declapract.use.yml +6 -0
- package/dist/practices/cicd-common/.test/assets/repo-with-unpinned-workflow/package.json +4 -0
- package/dist/practices/cicd-common/__snapshots__/.declapract.integration.test.ts.snap +550 -0
- package/dist/practices/cicd-common/best-practice/.declapract.readme.md +5 -0
- package/dist/practices/cicd-common/best-practice/.github/workflows/.declastruct.yml +12 -12
- package/dist/practices/cicd-common/best-practice/.github/workflows/.install.yml +5 -5
- package/dist/practices/cicd-common/best-practice/.github/workflows/.test.yml +25 -25
- package/dist/practices/cicd-common/best-practice/.github/workflows/release.yml +2 -2
- package/dist/practices/cicd-common/best-practice/.github/workflows/review.yml +1 -1
- package/dist/practices/cicd-package/best-practice/.github/workflows/.publish-npm.yml +3 -3
- package/dist/practices/cicd-package/best-practice/.github/workflows/provision.yml +4 -0
- package/dist/practices/cicd-service/best-practice/.github/workflows/.deploy-sls.yml +13 -13
- package/dist/practices/cicd-service/best-practice/.github/workflows/.sql-schema-control.yml +8 -8
- package/dist/practices/cicd-service/best-practice/.github/workflows/.terraform.yml +6 -6
- package/dist/practices/cicd-service/best-practice/.github/workflows/provision.yml +4 -0
- package/dist/practices/directory-structure-src/bad-practices/old-import-paths/.declapract.readme.md +10 -0
- package/dist/practices/directory-structure-src/bad-practices/old-import-paths/src/<star><star>/<star>.ts.declapract.ts +13 -1
- package/dist/practices/node/.test/assets/repo-expo-npmrc/declapract.use.yml +23 -0
- package/dist/practices/node/.test/assets/repo-expo-npmrc/package.json +4 -0
- package/dist/practices/node/best-practice/.npmrc.declapract.integration.test.ts +165 -0
- package/dist/practices/node/best-practice/.npmrc.declapract.ts +60 -0
- package/dist/practices/node/best-practice/__snapshots__/.npmrc.declapract.integration.test.ts.snap +24 -0
- package/dist/practices/pnpm/.declapract.integration.test.ts +175 -0
- package/dist/practices/pnpm/.test/assets/repo-npm-to-pnpm/.husky/check.lockfile.sh +10 -0
- package/dist/practices/pnpm/.test/assets/repo-npm-to-pnpm/declapract.use.yml +7 -0
- package/dist/practices/pnpm/.test/assets/repo-npm-to-pnpm/package.json +16 -0
- package/dist/practices/pnpm/__snapshots__/.declapract.integration.test.ts.snap +68 -0
- package/dist/practices/pnpm/bad-practices/husky-lockfile-check/.declapract.readme.md +17 -0
- package/dist/practices/pnpm/bad-practices/husky-lockfile-check/.husky/check.lockfile.sh.declapract.ts +28 -0
- package/dist/practices/pnpm/bad-practices/npm-overrides/.declapract.readme.md +20 -0
- package/dist/practices/pnpm/bad-practices/npm-overrides/package.json.declapract.ts +75 -0
- package/dist/practices/pnpm/bad-practices/package-lock-json/.declapract.readme.md +30 -0
- package/dist/practices/pnpm/bad-practices/package-lock-json/package-lock.json.declapract.integration.test.ts +105 -0
- package/dist/practices/pnpm/bad-practices/package-lock-json/package-lock.json.declapract.ts +40 -2
- package/dist/practices/pnpm/best-practice/.declapract.readme.md +22 -0
- package/dist/practices/pnpm/best-practice/package.json +1 -1
- package/dist/practices/pnpm/best-practice/package.json.declapract.ts +12 -0
- package/dist/practices/tests-any/bad-practices/javascript-config-files/.declapract.readme.md +1 -0
- package/dist/practices/tests-any/bad-practices/javascript-config-files/jest.<star>.js.declapract.ts +17 -0
- package/dist/practices/tests-any/bad-practices/mocks/.declapract.readme.md +8 -0
- package/dist/practices/tests-any/bad-practices/mocks/<star><star>/__mock__/<star>.js +3 -0
- package/dist/practices/tests-any/bad-practices/mocks/<star><star>/__mock__/<star>.ts +3 -0
- package/dist/practices/tests-any/bad-practices/old-acceptance-dir-location/.declapract.integration.test.ts +63 -0
- package/dist/practices/tests-any/bad-practices/old-acceptance-dir-location/.declapract.readme.md +22 -0
- package/dist/practices/tests-any/bad-practices/old-acceptance-dir-location/.test/assets/demo-repo-with-accept-blackbox-dir/accept.blackbox/.test/assets/.agent/config.yml +1 -0
- package/dist/practices/tests-any/bad-practices/old-acceptance-dir-location/.test/assets/demo-repo-with-accept-blackbox-dir/accept.blackbox/.test/assets/.rhachet/manifest.json +1 -0
- package/dist/practices/tests-any/bad-practices/old-acceptance-dir-location/.test/assets/demo-repo-with-accept-blackbox-dir/accept.blackbox/somefile.ts +1 -0
- package/dist/practices/tests-any/bad-practices/old-acceptance-dir-location/.test/assets/demo-repo-with-accept-blackbox-dir/declapract.declare.yml +4 -0
- package/dist/practices/tests-any/bad-practices/old-acceptance-dir-location/.test/assets/demo-repo-with-accept-blackbox-dir/declapract.use.yml +5 -0
- package/dist/practices/tests-any/bad-practices/old-acceptance-dir-location/.test/assets/demo-repo-with-accept-blackbox-dir/package.json +4 -0
- package/dist/practices/tests-any/bad-practices/old-acceptance-dir-location/accept.blackbox/<star><star>/<star>.declapract.ts +19 -0
- package/dist/practices/tests-any/bad-practices/old-acceptance-dir-location/acceptance/<star><star>/<star>.declapract.ts +19 -0
- package/dist/practices/tests-any/bad-practices/old-acceptance-import-paths/.declapract.readme.md +31 -0
- package/dist/practices/tests-any/bad-practices/old-acceptance-import-paths/<star><star>/<star>.ts.declapract.ts +25 -0
- package/dist/practices/tests-any/bad-practices/old-acceptance-test-utils/blackbox/_utils/getDataFromLastOpenBracketAtStartOfLine.ts.declapract.ts +3 -0
- package/dist/practices/tests-any/bad-practices/old-acceptance-test-utils/blackbox/_utils/invokeLambda.ts.declapract.ts +3 -0
- package/dist/practices/tests-any/bad-practices/old-acceptance-test-utils/blackbox/lambdas/<star>.ts.declapract.ts +44 -0
- package/dist/practices/tests-any/bad-practices/old-acceptance-test-utils-2/blackbox/lambdas/<star>.ts.declapract.ts +22 -0
- package/dist/practices/tests-any/bad-practices/old-acceptance-test-utils-3/blackbox/_utils/environment.ts.declapract.ts +3 -0
- package/dist/practices/tests-any/bad-practices/old-acceptance-test-utils-3/blackbox/lambdas/<star>.ts.declapract.ts +18 -0
- package/dist/practices/tests-any/bad-practices/old-extension-pattern/.declapract.readme.md +3 -0
- package/dist/practices/tests-any/bad-practices/old-extension-pattern/<star><star>/<star>.test.acceptance.ts.declapract.ts +11 -0
- package/dist/practices/tests-any/bad-practices/old-extension-pattern/<star><star>/<star>.test.integration.ts.declapract.ts +11 -0
- package/dist/practices/tests-any/bad-practices/old-test-utils-and-assets-location/.declapract.readme.md +8 -0
- package/dist/practices/tests-any/bad-practices/old-test-utils-and-assets-location/<star><star>/<star>.ts.declapract.ts +27 -0
- package/dist/practices/tests-any/bad-practices/old-test-utils-and-assets-location/<star><star>/__test_assets__/<star><star>/<star>.declapract.ts +17 -0
- package/dist/practices/tests-any/bad-practices/old-test-utils-and-assets-location/<star><star>/__test_utils__/<star><star>/<star>.declapract.ts +17 -0
- package/dist/practices/tests-any/best-practice/.declapract.readme.md +45 -0
- package/dist/practices/tests-any/best-practice/.declapract.todo.md +3 -0
- package/dist/practices/tests-any/best-practice/package.json +17 -0
- package/dist/practices/tests-any/best-practice/package.json.declapract.ts +3 -0
- package/dist/practices/tests-any/best-practice/package.json.shell-flags.declapract.integration.test.ts +129 -0
- package/dist/practices/tests-any/best-practice/src/<star><star>/<star>.integration.test.ts.declapract.ts +3 -0
- package/dist/practices/tests-any/best-practice/src/<star><star>/<star>.test.ts.declapract.ts +3 -0
- package/dist/practices/tests-expo/.declapract.integration.test.ts +134 -0
- package/dist/practices/tests-expo/.test/assets/repo-expo-greenfield/declapract.use.yml +6 -0
- package/dist/practices/tests-expo/.test/assets/repo-expo-greenfield/package.json +4 -0
- package/dist/practices/tests-expo/__snapshots__/.declapract.integration.test.ts.snap +112 -0
- package/dist/practices/tests-expo/bad-practices/inline-jest-config/.declapract.readme.md +22 -0
- package/dist/practices/tests-expo/bad-practices/inline-jest-config/package.json.declapract.ts +36 -0
- package/dist/practices/tests-expo/best-practice/jest.acceptance.config.ts +43 -0
- package/dist/practices/tests-expo/best-practice/jest.acceptance.env.ts +15 -0
- package/dist/practices/tests-expo/best-practice/jest.config.ts +7 -0
- package/dist/practices/tests-expo/best-practice/jest.integration.config.ts +42 -0
- package/dist/practices/tests-expo/best-practice/jest.integration.env.ts +22 -0
- package/dist/practices/tests-expo/best-practice/jest.unit.config.ts +53 -0
- package/dist/practices/tests-expo/best-practice/jest.unit.env.ts +18 -0
- package/dist/practices/tests-expo/best-practice/package.json +9 -0
- package/dist/practices/tests-expo/best-practice/package.json.declapract.ts +16 -0
- package/dist/practices/tests-node/bad-practices/babel/babel.config.js.declapract.ts +3 -0
- package/dist/practices/tests-node/bad-practices/deprecated-test-deps/package.json.declapract.ts +50 -0
- package/dist/practices/tests-node/best-practice/jest.config.ts +7 -0
- package/dist/practices/tests-node/best-practice/jest.unit.env.ts.declapract.ts +39 -0
- package/dist/practices/tests-node/best-practice/package.json +6 -0
- package/dist/practices/tests-node/best-practice/package.json.declapract.ts +10 -0
- package/dist/practices/typescript-any/bad-practices/relative-imports/.declapract.readme.md +45 -0
- package/dist/practices/typescript-any/bad-practices/relative-imports/src/<star><star>/<star>.ts.declapract.ts +97 -0
- package/dist/practices/typescript-any/best-practice/.declapract.readme.md +17 -0
- package/dist/practices/typescript-any/best-practice/package.json +8 -0
- package/dist/practices/typescript-any/best-practice/package.json.declapract.ts +11 -0
- package/dist/practices/typescript-expo/best-practice/package.json +6 -0
- package/dist/practices/typescript-expo/best-practice/package.json.declapract.integration.test.ts +30 -0
- package/dist/practices/typescript-expo/best-practice/package.json.declapract.ts +12 -0
- package/dist/practices/typescript-expo/best-practice/tsconfig.json +14 -0
- package/dist/practices/typescript-expo/best-practice/tsconfig.json.declapract.integration.test.ts +32 -0
- package/dist/practices/typescript-expo/best-practice/tsconfig.json.declapract.ts +12 -0
- package/dist/practices/{typescript → typescript-node}/best-practice/package.json +1 -3
- package/dist/practices/typescript-node/best-practice/package.json.declapract.ts +25 -0
- package/dist/practices/typescript-node/best-practice/tsconfig.json.declapract.ts +3 -0
- package/dist/useCases.yml +36 -16
- package/dist/utils/defineExpectedNpmrcContents.ts +103 -0
- package/dist/utils/getAllPracticesForUsecase.ts +53 -0
- package/dist/utils/isDeferredToDeprecatedDirMove.ts +37 -0
- package/package.json +4 -4
- package/dist/practices/tests/bad-practices/deprecated-test-deps/package.json.declapract.ts +0 -39
- package/dist/practices/tests/best-practice/jest.unit.env.ts.declapract.ts +0 -35
- package/dist/practices/typescript/bad-practices/relative-imports/.declapract.readme.md +0 -27
- package/dist/practices/typescript/best-practice/.declapract.readme.md +0 -15
- package/dist/practices/typescript/best-practice/package.json.declapract.ts +0 -18
- /package/dist/{practices/tests → .test/assets/cache/declarations/practices/cache}/best-practice/package.json.declapract.ts +0 -0
- /package/dist/{practices/typescript/best-practice/tsconfig.json.declapract.ts → .test/assets/expo-fullusecase/declarations/practices/cache/best-practice/package.json.declapract.ts} +0 -0
- /package/dist/{practices/tests/bad-practices/old-acceptance-dir-location/.test/assets/demo-repo-with-accept-blackbox-dir → .test/assets/expo-fullusecase/declarations/practices/cicd-common/.test/assets/repo-with-unpinned-workflow}/package.json +0 -0
- /package/dist/{practices/tests/bad-practices/babel/babel.config.js.declapract.ts → .test/assets/expo-fullusecase/declarations/practices/cicd-common/bad-practices/old-names/.github/workflows/ci-on-commit.yml.declapract.ts} +0 -0
- /package/dist/{practices/tests/bad-practices/javascript-config-files/jest.<star>.js.declapract.ts → .test/assets/expo-fullusecase/declarations/practices/cicd-common/bad-practices/old-names/.github/workflows/ci_on_commit.yml.declapract.ts} +0 -0
- /package/dist/{practices/tests/bad-practices/old-acceptance-test-utils-3/blackbox/_utils/environment.ts.declapract.ts → .test/assets/expo-fullusecase/declarations/practices/cicd-common/bad-practices/old-names/.github/workflows/pr-release-on-main.yml.declapract.ts} +0 -0
- /package/dist/{practices/tests/bad-practices/old-acceptance-test-utils/blackbox/_utils/getDataFromLastOpenBracketAtStartOfLine.ts.declapract.ts → .test/assets/expo-fullusecase/declarations/practices/cicd-common/bad-practices/old-names/.github/workflows/test-on-commit.yml.declapract.ts} +0 -0
- /package/dist/{practices/tests/bad-practices/old-acceptance-test-utils/blackbox/_utils/invokeLambda.ts.declapract.ts → .test/assets/expo-fullusecase/declarations/practices/cicd-common/bad-practices/old-names/.github/workflows/test_on_commit.yml.declapract.ts} +0 -0
- /package/dist/{practices/tests → .test/assets/expo-fullusecase/declarations/practices/tests-any}/bad-practices/javascript-config-files/.declapract.readme.md +0 -0
- /package/dist/{practices/tests → .test/assets/expo-fullusecase/declarations/practices/tests-any}/bad-practices/mocks/.declapract.readme.md +0 -0
- /package/dist/{practices/tests → .test/assets/expo-fullusecase/declarations/practices/tests-any}/bad-practices/mocks/<star><star>/__mock__/<star>.js +0 -0
- /package/dist/{practices/tests → .test/assets/expo-fullusecase/declarations/practices/tests-any}/bad-practices/mocks/<star><star>/__mock__/<star>.ts +0 -0
- /package/dist/{practices/tests → .test/assets/expo-fullusecase/declarations/practices/tests-any}/bad-practices/old-acceptance-dir-location/.declapract.readme.md +0 -0
- /package/dist/{practices/tests → .test/assets/expo-fullusecase/declarations/practices/tests-any}/bad-practices/old-acceptance-dir-location/.test/assets/demo-repo-with-accept-blackbox-dir/accept.blackbox/.test/assets/.agent/config.yml +0 -0
- /package/dist/{practices/tests → .test/assets/expo-fullusecase/declarations/practices/tests-any}/bad-practices/old-acceptance-dir-location/.test/assets/demo-repo-with-accept-blackbox-dir/accept.blackbox/.test/assets/.rhachet/manifest.json +0 -0
- /package/dist/{practices/tests → .test/assets/expo-fullusecase/declarations/practices/tests-any}/bad-practices/old-acceptance-dir-location/.test/assets/demo-repo-with-accept-blackbox-dir/accept.blackbox/somefile.ts +0 -0
- /package/dist/{practices/tests → .test/assets/expo-fullusecase/declarations/practices/tests-any}/bad-practices/old-acceptance-dir-location/.test/assets/demo-repo-with-accept-blackbox-dir/declapract.declare.yml +0 -0
- /package/dist/{practices/tests → .test/assets/expo-fullusecase/declarations/practices/tests-any}/bad-practices/old-acceptance-dir-location/.test/assets/demo-repo-with-accept-blackbox-dir/declapract.use.yml +0 -0
- /package/dist/{practices/tests → .test/assets/expo-fullusecase/declarations/practices/tests-any}/bad-practices/old-acceptance-dir-location/accept.blackbox/<star><star>/<star>.declapract.ts +0 -0
- /package/dist/{practices/tests → .test/assets/expo-fullusecase/declarations/practices/tests-any}/bad-practices/old-acceptance-dir-location/acceptance/<star><star>/<star>.declapract.ts +0 -0
- /package/dist/{practices/tests → .test/assets/expo-fullusecase/declarations/practices/tests-any}/bad-practices/old-acceptance-import-paths/.declapract.readme.md +0 -0
- /package/dist/{practices/tests → .test/assets/expo-fullusecase/declarations/practices/tests-any}/bad-practices/old-acceptance-import-paths/<star><star>/<star>.ts.declapract.ts +0 -0
- /package/dist/{practices/tests → .test/assets/expo-fullusecase/declarations/practices/tests-any}/bad-practices/old-acceptance-test-utils/blackbox/lambdas/<star>.ts.declapract.ts +0 -0
- /package/dist/{practices/tests → .test/assets/expo-fullusecase/declarations/practices/tests-any}/bad-practices/old-acceptance-test-utils-2/blackbox/lambdas/<star>.ts.declapract.ts +0 -0
- /package/dist/{practices/tests → .test/assets/expo-fullusecase/declarations/practices/tests-any}/bad-practices/old-acceptance-test-utils-3/blackbox/lambdas/<star>.ts.declapract.ts +0 -0
- /package/dist/{practices/tests → .test/assets/expo-fullusecase/declarations/practices/tests-any}/bad-practices/old-extension-pattern/.declapract.readme.md +0 -0
- /package/dist/{practices/tests → .test/assets/expo-fullusecase/declarations/practices/tests-any}/bad-practices/old-extension-pattern/<star><star>/<star>.test.acceptance.ts.declapract.ts +0 -0
- /package/dist/{practices/tests → .test/assets/expo-fullusecase/declarations/practices/tests-any}/bad-practices/old-extension-pattern/<star><star>/<star>.test.integration.ts.declapract.ts +0 -0
- /package/dist/{practices/tests → .test/assets/expo-fullusecase/declarations/practices/tests-any}/bad-practices/old-test-utils-and-assets-location/.declapract.readme.md +0 -0
- /package/dist/{practices/tests → .test/assets/expo-fullusecase/declarations/practices/tests-any}/bad-practices/old-test-utils-and-assets-location/<star><star>/<star>.ts.declapract.ts +0 -0
- /package/dist/{practices/tests → .test/assets/expo-fullusecase/declarations/practices/tests-any}/bad-practices/old-test-utils-and-assets-location/<star><star>/__test_assets__/<star><star>/<star>.declapract.ts +0 -0
- /package/dist/{practices/tests → .test/assets/expo-fullusecase/declarations/practices/tests-any}/bad-practices/old-test-utils-and-assets-location/<star><star>/__test_utils__/<star><star>/<star>.declapract.ts +0 -0
- /package/dist/{practices/tests → .test/assets/expo-fullusecase/declarations/practices/tests-any}/best-practice/.declapract.readme.md +0 -0
- /package/dist/{practices/tests → .test/assets/expo-fullusecase/declarations/practices/tests-any}/best-practice/.declapract.todo.md +0 -0
- /package/dist/{practices/tests → .test/assets/expo-fullusecase/declarations/practices/tests-any}/best-practice/src/<star><star>/<star>.integration.test.ts.declapract.ts +0 -0
- /package/dist/{practices/tests → .test/assets/expo-fullusecase/declarations/practices/tests-any}/best-practice/src/<star><star>/<star>.test.ts.declapract.ts +0 -0
- /package/dist/{practices/tests → .test/assets/expo-fullusecase/declarations/practices/tests-expo}/best-practice/jest.config.ts +0 -0
- /package/dist/practices/{tests → tests-node}/bad-practices/babel/babel.config.js +0 -0
- /package/dist/practices/{tests → tests-node}/bad-practices/deprecated-test-deps/.declapract.readme.md +0 -0
- /package/dist/practices/{tests → tests-node}/bad-practices/deprecated-test-deps/package.json +0 -0
- /package/dist/practices/{tests → tests-node}/best-practice/jest.acceptance.config.ts +0 -0
- /package/dist/practices/{tests → tests-node}/best-practice/jest.acceptance.env.ts +0 -0
- /package/dist/practices/{tests → tests-node}/best-practice/jest.integration.config.ts +0 -0
- /package/dist/practices/{tests → tests-node}/best-practice/jest.integration.env.ts +0 -0
- /package/dist/practices/{tests → tests-node}/best-practice/jest.unit.config.ts +0 -0
- /package/dist/practices/{tests → tests-node}/best-practice/jest.unit.env.ts +0 -0
- /package/dist/practices/{typescript → typescript-node}/best-practice/tsconfig.build.json +0 -0
- /package/dist/practices/{typescript → typescript-node}/best-practice/tsconfig.json +0 -0
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import type { FileCheckFunction, FileFixFunction } from 'declapract';
|
|
2
|
+
|
|
3
|
+
import { defineExpectedNpmrcContents } from '../../../utils/defineExpectedNpmrcContents';
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* .what = the `.npmrc` the node practice declares, usecase-aware for the expo runtime
|
|
7
|
+
* .why = a flat node_modules (hoisted linker) is create-expo-app's own default for pnpm
|
|
8
|
+
* and the documented fallback when isolated installs break metro/react-native
|
|
9
|
+
* native-module lookup (SDK 54+ supports isolated, but hoisted is the trodden
|
|
10
|
+
* default). so an expo repo layers the hoisted-linker block atop the base `.npmrc`
|
|
11
|
+
* every node repo gets, rather than fork a separate practice
|
|
12
|
+
* (rule.avoid.runtime-forks). the forced-vs-opt-in call is flagged for the wisher
|
|
13
|
+
* in `.agent/repo=.this/role=any/briefs/howto.pnpm-expo-hoisted-linker.md`.
|
|
14
|
+
* .why = a FINDSERT (check/fix union), NOT an EQUALS overwrite. the fix only APPENDS
|
|
15
|
+
* absent declared lines and never removes a line, so a repo's own `.npmrc`
|
|
16
|
+
* settings — and, crucially, a correctly-hoisted expo `.npmrc` under a narrow
|
|
17
|
+
* `declapract fix --practice node` (where the expo signal goes dark) — are
|
|
18
|
+
* preserved rather than clobbered. the algorithm lives in
|
|
19
|
+
* `defineExpectedNpmrcContents`, shared by `check` and `fix` so the gate and the
|
|
20
|
+
* repair can never disagree (mirrors the repo-root `.gitignore`).
|
|
21
|
+
* .note = best-practice check semantics are inverted — a THROW means the practice is
|
|
22
|
+
* violated, a return means it is followed. see
|
|
23
|
+
* `.agent/repo=.this/role=any/briefs/declapract-check-semantics.md`.
|
|
24
|
+
*/
|
|
25
|
+
const defineExpectedContents = (
|
|
26
|
+
contents: string | null,
|
|
27
|
+
projectPractices: string[],
|
|
28
|
+
): string => defineExpectedNpmrcContents({ contents, projectPractices });
|
|
29
|
+
|
|
30
|
+
/**
|
|
31
|
+
* .what = throws when the repo's `.npmrc` does not carry what this practice declares
|
|
32
|
+
* .why = `check` is the GATE: declapract runs `fix` for a file only when `check`
|
|
33
|
+
* rejects it. the expected value UNIONS the repo's extant lines in, so a repo
|
|
34
|
+
* that already carries the declared lines (plus any of its own) passes — the
|
|
35
|
+
* check mandates PRESENCE of the declared lines, never EQUALITY, so it can never
|
|
36
|
+
* demand a custom line be removed.
|
|
37
|
+
*/
|
|
38
|
+
export const check: FileCheckFunction = (contents, context) => {
|
|
39
|
+
// a plain comparison + clear throw, NOT an `expect` assertion: declapract runs
|
|
40
|
+
// `check` outside any test runner, so a test-diff-shaped throw is a friction hazard
|
|
41
|
+
// (rule.forbid.friction-hazards) — the caller only needs a clean, stable signal.
|
|
42
|
+
const expected = defineExpectedContents(contents, context.projectPractices);
|
|
43
|
+
if (contents !== expected)
|
|
44
|
+
throw new Error('.npmrc does not carry the declared node/expo lines');
|
|
45
|
+
};
|
|
46
|
+
|
|
47
|
+
/**
|
|
48
|
+
* .what = unions this practice's declared `.npmrc` lines into the repo's extant one
|
|
49
|
+
* .why = a findsert by construction — a line already present stays present once, a
|
|
50
|
+
* repo's own settings survive, and (the fix this closes) a hoisted expo
|
|
51
|
+
* `.npmrc` is never stripped by a narrow-scope apply.
|
|
52
|
+
* .note = a fixed point: `fix(fix(x)) === fix(x)`, and `check` passes on its own output.
|
|
53
|
+
* clamped by `.npmrc.declapract.test.ts` -> `idempotency` and by the pipeline
|
|
54
|
+
* test's narrow-scope `[case2]`.
|
|
55
|
+
*/
|
|
56
|
+
export const fix: FileFixFunction = (contents, context) => {
|
|
57
|
+
return {
|
|
58
|
+
contents: defineExpectedContents(contents, context.projectPractices),
|
|
59
|
+
};
|
|
60
|
+
};
|
package/dist/practices/node/best-practice/__snapshots__/.npmrc.declapract.integration.test.ts.snap
ADDED
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
// Jest Snapshot v1, https://jestjs.io/docs/snapshot-testing
|
|
2
|
+
|
|
3
|
+
exports[`node practice .npmrc — expo hoisted linker given: [case1] an expo consumer repo with a base node .npmrc when: [t0] the node practice is applied then: the before + after contents match snapshot: .npmrc — after apply 1`] = `
|
|
4
|
+
"engine-strict=true
|
|
5
|
+
save-exact=true
|
|
6
|
+
message=%s 🎉
|
|
7
|
+
|
|
8
|
+
# hoisted linker flattens node_modules — create-expo-app default for pnpm,
|
|
9
|
+
# the documented fallback when isolated installs break metro native lookup
|
|
10
|
+
node-linker=hoisted
|
|
11
|
+
public-hoist-pattern[]=*expo*
|
|
12
|
+
public-hoist-pattern[]=*react-native*
|
|
13
|
+
public-hoist-pattern[]=@react-native/*
|
|
14
|
+
public-hoist-pattern[]=metro*
|
|
15
|
+
public-hoist-pattern[]=*metro-*
|
|
16
|
+
"
|
|
17
|
+
`;
|
|
18
|
+
|
|
19
|
+
exports[`node practice .npmrc — expo hoisted linker given: [case1] an expo consumer repo with a base node .npmrc when: [t0] the node practice is applied then: the before + after contents match snapshot: .npmrc — before 1`] = `
|
|
20
|
+
"engine-strict=true
|
|
21
|
+
save-exact=true
|
|
22
|
+
message=%s 🎉
|
|
23
|
+
"
|
|
24
|
+
`;
|
|
@@ -0,0 +1,175 @@
|
|
|
1
|
+
import fs from 'fs/promises';
|
|
2
|
+
import path from 'node:path';
|
|
3
|
+
|
|
4
|
+
import { executeApply } from 'declapract';
|
|
5
|
+
import { genTempDir, given, then, useBeforeAll, when } from 'test-fns';
|
|
6
|
+
|
|
7
|
+
// executeApply is slow (full practice evaluation)
|
|
8
|
+
jest.setTimeout(180_000);
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
* .what = pipeline test for the pnpm npm→pnpm migration bad-practices
|
|
12
|
+
* .why = the unit tests prove each fix in isolation; only the real executeApply pipeline
|
|
13
|
+
* proves declapract WIRES them up — matches each declaration to its target file
|
|
14
|
+
* (npm-overrides on package.json, husky-lockfile-check on the husky hook), and
|
|
15
|
+
* reaches a fixed point on a re-run.
|
|
16
|
+
*/
|
|
17
|
+
describe('pnpm npm→pnpm migration — pipeline', () => {
|
|
18
|
+
given('[case1] a repo mid-migration from npm to pnpm', () => {
|
|
19
|
+
const tempDir = genTempDir({
|
|
20
|
+
slug: 'pnpm-npm-to-pnpm',
|
|
21
|
+
clone: './src/practices/pnpm/.test/assets/repo-npm-to-pnpm',
|
|
22
|
+
symlink: [
|
|
23
|
+
{ at: 'declarations', to: './src/.test/assets/pnpm/declarations' },
|
|
24
|
+
{ at: 'node_modules', to: 'node_modules' },
|
|
25
|
+
],
|
|
26
|
+
});
|
|
27
|
+
|
|
28
|
+
const readPkg = () => fs.readFile(path.join(tempDir, 'package.json'), 'utf-8');
|
|
29
|
+
const readHusky = () =>
|
|
30
|
+
fs.readFile(path.join(tempDir, '.husky/check.lockfile.sh'), 'utf-8');
|
|
31
|
+
|
|
32
|
+
// useBeforeAll RETURNS the captured state (no in-place mutation of a shared const)
|
|
33
|
+
const state = useBeforeAll(async () => {
|
|
34
|
+
const pkgBefore = await readPkg();
|
|
35
|
+
const huskyBefore = await readHusky();
|
|
36
|
+
|
|
37
|
+
// apply the package.json bad-practice (npm-overrides relocates the pins)
|
|
38
|
+
await executeApply({
|
|
39
|
+
config: path.join(tempDir, 'declapract.use.yml'),
|
|
40
|
+
practice: 'pnpm',
|
|
41
|
+
file: 'package.json',
|
|
42
|
+
});
|
|
43
|
+
const pkgAfter1 = await readPkg();
|
|
44
|
+
await executeApply({
|
|
45
|
+
config: path.join(tempDir, 'declapract.use.yml'),
|
|
46
|
+
practice: 'pnpm',
|
|
47
|
+
file: 'package.json',
|
|
48
|
+
});
|
|
49
|
+
const pkgAfter2 = await readPkg();
|
|
50
|
+
|
|
51
|
+
// apply the husky lockfile-hook bad-practice
|
|
52
|
+
await executeApply({
|
|
53
|
+
config: path.join(tempDir, 'declapract.use.yml'),
|
|
54
|
+
practice: 'pnpm',
|
|
55
|
+
file: '.husky/check.lockfile.sh',
|
|
56
|
+
});
|
|
57
|
+
const huskyAfter1 = await readHusky();
|
|
58
|
+
await executeApply({
|
|
59
|
+
config: path.join(tempDir, 'declapract.use.yml'),
|
|
60
|
+
practice: 'pnpm',
|
|
61
|
+
file: '.husky/check.lockfile.sh',
|
|
62
|
+
});
|
|
63
|
+
const huskyAfter2 = await readHusky();
|
|
64
|
+
|
|
65
|
+
return {
|
|
66
|
+
pkgBefore,
|
|
67
|
+
pkgAfter1,
|
|
68
|
+
pkgAfter2,
|
|
69
|
+
huskyBefore,
|
|
70
|
+
huskyAfter1,
|
|
71
|
+
huskyAfter2,
|
|
72
|
+
};
|
|
73
|
+
}, 170_000);
|
|
74
|
+
|
|
75
|
+
when('[t0] the pnpm practice is applied to package.json', () => {
|
|
76
|
+
then('overrides + resolutions relocate into pnpm.overrides', () => {
|
|
77
|
+
const pkg = JSON.parse(state.pkgAfter1);
|
|
78
|
+
expect(pkg.pnpm.overrides['react-refresh']).toEqual('~0.14.0');
|
|
79
|
+
expect(pkg.overrides).toBeUndefined();
|
|
80
|
+
expect(pkg.resolutions).toBeUndefined();
|
|
81
|
+
});
|
|
82
|
+
|
|
83
|
+
then('the `npm run` invocation convention is left intact (repo-wide idiom)', () => {
|
|
84
|
+
const pkg = JSON.parse(state.pkgAfter1);
|
|
85
|
+
expect(pkg.scripts.prepush).toEqual('npm run test && npm run build');
|
|
86
|
+
});
|
|
87
|
+
|
|
88
|
+
then('the packageManager pin survives (best-practice no-op)', () => {
|
|
89
|
+
const pkg = JSON.parse(state.pkgAfter1);
|
|
90
|
+
expect(pkg.packageManager).toEqual('pnpm@10.31.7');
|
|
91
|
+
});
|
|
92
|
+
|
|
93
|
+
then('before + after match snapshot', () => {
|
|
94
|
+
expect(state.pkgBefore).toMatchSnapshot('package.json — before');
|
|
95
|
+
expect(state.pkgAfter1).toMatchSnapshot('package.json — after');
|
|
96
|
+
});
|
|
97
|
+
|
|
98
|
+
then('a second apply is a fixed point', () => {
|
|
99
|
+
expect(state.pkgAfter2).toEqual(state.pkgAfter1);
|
|
100
|
+
});
|
|
101
|
+
});
|
|
102
|
+
|
|
103
|
+
when('[t1] the pnpm practice is applied to the husky hook', () => {
|
|
104
|
+
then('the lockfile name + install command become pnpm', () => {
|
|
105
|
+
expect(state.huskyAfter1).toContain('pnpm-lock.yaml');
|
|
106
|
+
expect(state.huskyAfter1).toContain('pnpm install');
|
|
107
|
+
expect(state.huskyAfter1).not.toContain('package-lock.json');
|
|
108
|
+
expect(state.huskyAfter1).not.toMatch(/(?<!p)npm install/);
|
|
109
|
+
});
|
|
110
|
+
|
|
111
|
+
then('before + after match snapshot', () => {
|
|
112
|
+
expect(state.huskyBefore).toMatchSnapshot('check.lockfile.sh — before');
|
|
113
|
+
expect(state.huskyAfter1).toMatchSnapshot('check.lockfile.sh — after');
|
|
114
|
+
});
|
|
115
|
+
|
|
116
|
+
then('a second apply is a fixed point', () => {
|
|
117
|
+
expect(state.huskyAfter2).toEqual(state.huskyAfter1);
|
|
118
|
+
});
|
|
119
|
+
});
|
|
120
|
+
});
|
|
121
|
+
|
|
122
|
+
given('[case2] a repo AHEAD of the blessed pnpm pin (10.32.1)', () => {
|
|
123
|
+
// the [case1] fixture seeds the pin already AT 10.31.7, so it proves only the no-op
|
|
124
|
+
// path. this case seeds the pin AHEAD of the blessed version to prove the DOWNGRADE
|
|
125
|
+
// rewrite (10.32.1 → 10.31.7) in pnpm's OWN suite — where an engineer looks first —
|
|
126
|
+
// not only inside the expo migration fixture. the best-practice CONTAINS check rejects
|
|
127
|
+
// a package.json that does not carry the exact `pnpm@10.31.7`, so `declapract fix`
|
|
128
|
+
// merges the blessed pin over the ahead one. that convergence-to-one-version is the
|
|
129
|
+
// org-standardization intent, not a regression.
|
|
130
|
+
const tempDir = genTempDir({
|
|
131
|
+
slug: 'pnpm-ahead-of-pin',
|
|
132
|
+
clone: './src/practices/pnpm/.test/assets/repo-npm-to-pnpm',
|
|
133
|
+
symlink: [
|
|
134
|
+
{ at: 'declarations', to: './src/.test/assets/pnpm/declarations' },
|
|
135
|
+
{ at: 'node_modules', to: 'node_modules' },
|
|
136
|
+
],
|
|
137
|
+
});
|
|
138
|
+
|
|
139
|
+
const pkgPath = () => path.join(tempDir, 'package.json');
|
|
140
|
+
const readPkg = () => fs.readFile(pkgPath(), 'utf-8');
|
|
141
|
+
|
|
142
|
+
const state = useBeforeAll(async () => {
|
|
143
|
+
// seed the pin AHEAD of the blessed version, then apply the practice
|
|
144
|
+
const seeded = { ...JSON.parse(await readPkg()), packageManager: 'pnpm@10.32.1' };
|
|
145
|
+
await fs.writeFile(pkgPath(), `${JSON.stringify(seeded, null, 2)}\n`);
|
|
146
|
+
const pkgBefore = await readPkg();
|
|
147
|
+
|
|
148
|
+
await executeApply({
|
|
149
|
+
config: path.join(tempDir, 'declapract.use.yml'),
|
|
150
|
+
practice: 'pnpm',
|
|
151
|
+
file: 'package.json',
|
|
152
|
+
});
|
|
153
|
+
const pkgAfter1 = await readPkg();
|
|
154
|
+
await executeApply({
|
|
155
|
+
config: path.join(tempDir, 'declapract.use.yml'),
|
|
156
|
+
practice: 'pnpm',
|
|
157
|
+
file: 'package.json',
|
|
158
|
+
});
|
|
159
|
+
const pkgAfter2 = await readPkg();
|
|
160
|
+
|
|
161
|
+
return { pkgBefore, pkgAfter1, pkgAfter2 };
|
|
162
|
+
}, 170_000);
|
|
163
|
+
|
|
164
|
+
when('[t0] the ahead-of-pin package.json is applied', () => {
|
|
165
|
+
then('the pin is rewritten DOWN to the blessed 10.31.7', () => {
|
|
166
|
+
expect(JSON.parse(state.pkgBefore).packageManager).toEqual('pnpm@10.32.1');
|
|
167
|
+
expect(JSON.parse(state.pkgAfter1).packageManager).toEqual('pnpm@10.31.7');
|
|
168
|
+
});
|
|
169
|
+
|
|
170
|
+
then('a second apply is a fixed point (the downgrade converges)', () => {
|
|
171
|
+
expect(state.pkgAfter2).toEqual(state.pkgAfter1);
|
|
172
|
+
});
|
|
173
|
+
});
|
|
174
|
+
});
|
|
175
|
+
});
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
#!/bin/bash
|
|
2
|
+
|
|
3
|
+
# posix style fn definition; https://stackoverflow.com/a/12469057/3068233
|
|
4
|
+
changed () {
|
|
5
|
+
git diff --name-only HEAD@{1} HEAD | grep "^$1"
|
|
6
|
+
}
|
|
7
|
+
|
|
8
|
+
if changed 'package-lock.json'; then
|
|
9
|
+
echo "📦 package-lock.json changed. Run 'npm install' to update your locally installed dependencies."
|
|
10
|
+
fi
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
# .note = declarations dir is symlinked by the test to test/assets/pnpm/declarations
|
|
2
|
+
# .why = a repo mid-migration from npm to pnpm, used to prove the pnpm bad-practices
|
|
3
|
+
# (npm-overrides, husky-lockfile-check) end to end.
|
|
4
|
+
# .note = no variables — the pnpm-repo usecase carries only the pnpm practice, which
|
|
5
|
+
# references no @declapract{variable.*}.
|
|
6
|
+
declarations: 'declarations/declapract.declare.yml'
|
|
7
|
+
useCase: pnpm-repo
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "app-example-native",
|
|
3
|
+
"version": "1.0.0",
|
|
4
|
+
"packageManager": "pnpm@10.31.7",
|
|
5
|
+
"scripts": {
|
|
6
|
+
"fix:format": "npm run fix:format:prettier",
|
|
7
|
+
"prepush": "npm run test && npm run build",
|
|
8
|
+
"fix:deps:expo": "npx expo install --fix"
|
|
9
|
+
},
|
|
10
|
+
"overrides": {
|
|
11
|
+
"react-refresh": "~0.14.0"
|
|
12
|
+
},
|
|
13
|
+
"resolutions": {
|
|
14
|
+
"react-refresh": "~0.14.0"
|
|
15
|
+
}
|
|
16
|
+
}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
// Jest Snapshot v1, https://jestjs.io/docs/snapshot-testing
|
|
2
|
+
|
|
3
|
+
exports[`pnpm npm→pnpm migration — pipeline given: [case1] a repo mid-migration from npm to pnpm when: [t0] the pnpm practice is applied to package.json then: before + after match snapshot: package.json — after 1`] = `
|
|
4
|
+
"{
|
|
5
|
+
"name": "app-example-native",
|
|
6
|
+
"version": "1.0.0",
|
|
7
|
+
"packageManager": "pnpm@10.31.7",
|
|
8
|
+
"scripts": {
|
|
9
|
+
"fix:format": "npm run fix:format:prettier",
|
|
10
|
+
"prepush": "npm run test && npm run build",
|
|
11
|
+
"fix:deps:expo": "npx expo install --fix"
|
|
12
|
+
},
|
|
13
|
+
"pnpm": {
|
|
14
|
+
"overrides": {
|
|
15
|
+
"react-refresh": "~0.14.0"
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
"
|
|
20
|
+
`;
|
|
21
|
+
|
|
22
|
+
exports[`pnpm npm→pnpm migration — pipeline given: [case1] a repo mid-migration from npm to pnpm when: [t0] the pnpm practice is applied to package.json then: before + after match snapshot: package.json — before 1`] = `
|
|
23
|
+
"{
|
|
24
|
+
"name": "app-example-native",
|
|
25
|
+
"version": "1.0.0",
|
|
26
|
+
"packageManager": "pnpm@10.31.7",
|
|
27
|
+
"scripts": {
|
|
28
|
+
"fix:format": "npm run fix:format:prettier",
|
|
29
|
+
"prepush": "npm run test && npm run build",
|
|
30
|
+
"fix:deps:expo": "npx expo install --fix"
|
|
31
|
+
},
|
|
32
|
+
"overrides": {
|
|
33
|
+
"react-refresh": "~0.14.0"
|
|
34
|
+
},
|
|
35
|
+
"resolutions": {
|
|
36
|
+
"react-refresh": "~0.14.0"
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
"
|
|
40
|
+
`;
|
|
41
|
+
|
|
42
|
+
exports[`pnpm npm→pnpm migration — pipeline given: [case1] a repo mid-migration from npm to pnpm when: [t1] the pnpm practice is applied to the husky hook then: before + after match snapshot: check.lockfile.sh — after 1`] = `
|
|
43
|
+
"#!/bin/bash
|
|
44
|
+
|
|
45
|
+
# posix style fn definition; https://stackoverflow.com/a/12469057/3068233
|
|
46
|
+
changed () {
|
|
47
|
+
git diff --name-only HEAD@{1} HEAD | grep "^$1"
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
if changed 'pnpm-lock.yaml'; then
|
|
51
|
+
echo "📦 pnpm-lock.yaml changed. Run 'pnpm install' to update your locally installed dependencies."
|
|
52
|
+
fi
|
|
53
|
+
"
|
|
54
|
+
`;
|
|
55
|
+
|
|
56
|
+
exports[`pnpm npm→pnpm migration — pipeline given: [case1] a repo mid-migration from npm to pnpm when: [t1] the pnpm practice is applied to the husky hook then: before + after match snapshot: check.lockfile.sh — before 1`] = `
|
|
57
|
+
"#!/bin/bash
|
|
58
|
+
|
|
59
|
+
# posix style fn definition; https://stackoverflow.com/a/12469057/3068233
|
|
60
|
+
changed () {
|
|
61
|
+
git diff --name-only HEAD@{1} HEAD | grep "^$1"
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
if changed 'package-lock.json'; then
|
|
65
|
+
echo "📦 package-lock.json changed. Run 'npm install' to update your locally installed dependencies."
|
|
66
|
+
fi
|
|
67
|
+
"
|
|
68
|
+
`;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
# bad-practice: husky-lockfile-check
|
|
2
|
+
|
|
3
|
+
## .what
|
|
4
|
+
|
|
5
|
+
a husky hook (`.husky/check.lockfile.sh`) that watches the npm `package-lock.json` for
|
|
6
|
+
changes and points the human at `npm install`.
|
|
7
|
+
|
|
8
|
+
## .why it is bad under pnpm
|
|
9
|
+
|
|
10
|
+
a pnpm repo has no `package-lock.json` — its lockfile is `pnpm-lock.yaml`. a hook left on
|
|
11
|
+
the npm name never fires on a real pnpm lockfile change, so the stale-dependencies
|
|
12
|
+
reminder silently dies.
|
|
13
|
+
|
|
14
|
+
## .the fix
|
|
15
|
+
|
|
16
|
+
swap `package-lock.json` → `pnpm-lock.yaml` and `npm install` → `pnpm install`. idempotent
|
|
17
|
+
— once swapped, the check no longer detects the npm name.
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import type { FileCheckFunction, FileFixFunction } from 'declapract';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* .what = detects a husky lockfile-change hook that watches the npm `package-lock.json`
|
|
5
|
+
* .why = a pnpm repo has no `package-lock.json` — its lockfile is `pnpm-lock.yaml`. a hook
|
|
6
|
+
* left on the npm name never fires, so a stale-lockfile reminder silently dies.
|
|
7
|
+
*/
|
|
8
|
+
export const check: FileCheckFunction = (contents) => {
|
|
9
|
+
// detected (bad practice) when the hook still references the npm lockfile name
|
|
10
|
+
if (contents?.includes('package-lock.json')) return;
|
|
11
|
+
|
|
12
|
+
// not detected — already on pnpm-lock.yaml (or absent)
|
|
13
|
+
throw new Error('does not match bad practice');
|
|
14
|
+
};
|
|
15
|
+
|
|
16
|
+
/**
|
|
17
|
+
* .what = swaps the npm lockfile name + install command for their pnpm equivalents
|
|
18
|
+
* .why = the hook must watch `pnpm-lock.yaml` and point the human at `pnpm install`.
|
|
19
|
+
*/
|
|
20
|
+
export const fix: FileFixFunction = (contents) => {
|
|
21
|
+
if (!contents) return { contents };
|
|
22
|
+
const fixed = contents
|
|
23
|
+
.replace(/package-lock\.json/g, 'pnpm-lock.yaml')
|
|
24
|
+
// `(?<!p)` guards the overlap: pnpm contains npm, so a naive swap of `npm install`
|
|
25
|
+
// would nest inside its own `pnpm install` output and loop on a re-run
|
|
26
|
+
.replace(/(?<!p)npm install/g, 'pnpm install');
|
|
27
|
+
return { contents: fixed };
|
|
28
|
+
};
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
# bad-practice: npm-overrides
|
|
2
|
+
|
|
3
|
+
## .what
|
|
4
|
+
|
|
5
|
+
a package.json that keeps its dependency pins under a top-level `overrides` (npm) or
|
|
6
|
+
`resolutions` (yarn) key.
|
|
7
|
+
|
|
8
|
+
## .why it is bad under pnpm
|
|
9
|
+
|
|
10
|
+
pnpm reads **neither** `overrides` nor `resolutions` — it reads `pnpm.overrides`. a repo
|
|
11
|
+
migrated from npm/yarn that leaves its pins under the old keys silently loses them. under
|
|
12
|
+
the hoisted linker (flat `node_modules`) that lets a mismatched transitive version hoist
|
|
13
|
+
over the intended one — the skew hazard documented in
|
|
14
|
+
`.agent/repo=.this/role=any/briefs/howto.pnpm-expo-hoisted-linker.md`.
|
|
15
|
+
|
|
16
|
+
## .the fix
|
|
17
|
+
|
|
18
|
+
relocate both top-level keys into `pnpm.overrides` and drop them. on a key collision the
|
|
19
|
+
precedence is: npm `overrides` beats yarn `resolutions` beats any pre-extant
|
|
20
|
+
`pnpm.overrides`. idempotent — once relocated, the check no longer detects the pattern.
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
import type { FileCheckFunction, FileFixFunction } from 'declapract';
|
|
2
|
+
import { ConstraintError } from 'helpful-errors';
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* .what = detects a top-level `overrides` (npm) or `resolutions` (yarn) key in package.json
|
|
6
|
+
* .why = pnpm reads NEITHER — it reads `pnpm.overrides`. a repo migrated to pnpm that keeps
|
|
7
|
+
* its pins under the npm/yarn keys silently loses them, which lets a mismatched
|
|
8
|
+
* transitive version hoist over the intended one (the flat-linker skew hazard). see
|
|
9
|
+
* `.agent/repo=.this/role=any/briefs/howto.pnpm-expo-hoisted-linker.md`.
|
|
10
|
+
*/
|
|
11
|
+
export const check: FileCheckFunction = (contents) => {
|
|
12
|
+
const packageJSON = JSON.parse(contents ?? '{}');
|
|
13
|
+
|
|
14
|
+
// detected (bad practice) when either npm-`overrides` or yarn-`resolutions` sits at top level
|
|
15
|
+
if (
|
|
16
|
+
packageJSON.overrides !== undefined ||
|
|
17
|
+
packageJSON.resolutions !== undefined
|
|
18
|
+
)
|
|
19
|
+
return;
|
|
20
|
+
|
|
21
|
+
// not detected — already pnpm-shaped (or no pins at all)
|
|
22
|
+
throw new Error('does not match bad practice');
|
|
23
|
+
};
|
|
24
|
+
|
|
25
|
+
/**
|
|
26
|
+
* .what = relocates top-level `overrides` + `resolutions` into `pnpm.overrides`, then drops them
|
|
27
|
+
* .why = pnpm reads only `pnpm.overrides`. precedence on a key conflict: npm `overrides` wins over
|
|
28
|
+
* yarn `resolutions` over any pre-extant `pnpm.overrides`.
|
|
29
|
+
*
|
|
30
|
+
* .note = handles the FLAT override shape (`{ "pkg": "1.2.3" }`). npm ALSO supports a NESTED
|
|
31
|
+
* per-dependency form (`{ "foo": { ".": "1.0.0", "bar": "2.0.0" } }`) that pnpm's flat-only
|
|
32
|
+
* `pnpm.overrides` cannot express. this fix does NOT silently emit such a shape (a config
|
|
33
|
+
* pnpm rejects — a failhide); it FAILS FAST with a `ConstraintError` that names the at-fault
|
|
34
|
+
* key and the fix, per `rule.forbid.failhide` / `rule.require.failfast`. a consumer with
|
|
35
|
+
* nested npm overrides must flatten them by hand.
|
|
36
|
+
*/
|
|
37
|
+
export const fix: FileFixFunction = (contents) => {
|
|
38
|
+
if (!contents) return { contents };
|
|
39
|
+
const packageJSON = JSON.parse(contents);
|
|
40
|
+
|
|
41
|
+
// merge — npm `overrides` beats yarn `resolutions` beats any extant `pnpm.overrides`
|
|
42
|
+
const mergedOverrides = {
|
|
43
|
+
...(packageJSON.pnpm?.overrides ?? {}),
|
|
44
|
+
...(packageJSON.resolutions ?? {}),
|
|
45
|
+
...(packageJSON.overrides ?? {}),
|
|
46
|
+
};
|
|
47
|
+
|
|
48
|
+
// fail fast on a nested per-dependency override — pnpm's flat `pnpm.overrides` cannot express it,
|
|
49
|
+
// so a pass-through would emit a config pnpm rejects (a silent failhide). name the fix.
|
|
50
|
+
const nestedKeys = Object.entries(mergedOverrides)
|
|
51
|
+
.filter(([, value]) => typeof value !== 'string')
|
|
52
|
+
.map(([key]) => key);
|
|
53
|
+
if (nestedKeys.length)
|
|
54
|
+
throw new ConstraintError(
|
|
55
|
+
'cannot migrate a NESTED npm override to pnpm — flatten it by hand first',
|
|
56
|
+
{
|
|
57
|
+
nestedKeys,
|
|
58
|
+
hint: `pnpm's \`pnpm.overrides\` is flat-only ({ "pkg": "1.2.3" }). the nested per-dependency form ({ ".": "...", "dep": "..." }) has no pnpm equivalent. flatten these keys to a single version string each, then re-run: ${nestedKeys.join(', ')}`,
|
|
59
|
+
},
|
|
60
|
+
);
|
|
61
|
+
|
|
62
|
+
// exclude the npm/yarn keys via destructure (no in-place delete), keep every other key
|
|
63
|
+
const {
|
|
64
|
+
overrides: _npmOverrides,
|
|
65
|
+
resolutions: _yarnResolutions,
|
|
66
|
+
...packageJSONRest
|
|
67
|
+
} = packageJSON;
|
|
68
|
+
|
|
69
|
+
const updatedPackageJSON = {
|
|
70
|
+
...packageJSONRest,
|
|
71
|
+
pnpm: { ...(packageJSON.pnpm ?? {}), overrides: mergedOverrides },
|
|
72
|
+
};
|
|
73
|
+
|
|
74
|
+
return { contents: `${JSON.stringify(updatedPackageJSON, null, 2)}\n` };
|
|
75
|
+
};
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
# bad-practice: package-lock-json
|
|
2
|
+
|
|
3
|
+
## .what
|
|
4
|
+
|
|
5
|
+
a `package-lock.json` (the npm lockfile) in a repo that has migrated to pnpm.
|
|
6
|
+
|
|
7
|
+
## .why it is bad
|
|
8
|
+
|
|
9
|
+
pnpm reads `pnpm-lock.yaml`, not `package-lock.json`. a stale npm lockfile left beside the pnpm one
|
|
10
|
+
is a dual source of truth for the dependency graph, and CI lockfile checks that grep the wrong file
|
|
11
|
+
pass or fail for the wrong reason.
|
|
12
|
+
|
|
13
|
+
## .the fix — forget-not-destroy
|
|
14
|
+
|
|
15
|
+
the fix removes `package-lock.json`, but ONLY once a `pnpm-lock.yaml` sits beside it. the delete is
|
|
16
|
+
gated on the pnpm lockfile's presence (read from the project root via
|
|
17
|
+
`context.getProjectRootDirectory()`), so a fix that runs on a repo that has not yet run
|
|
18
|
+
`pnpm install` is a no-op rather than a destructive strip that leaves the repo lockfile-less. this
|
|
19
|
+
is the wish's stated safety bar: *"package-lock.json is removed ONLY after pnpm-lock.yaml exists, so
|
|
20
|
+
a fix interrupted midway never leaves the repo lockfile-less."*
|
|
21
|
+
|
|
22
|
+
a bare `FileCheckType.EXISTS` would delegate to declapract's default fix, which deletes the file
|
|
23
|
+
UNCONDITIONALLY — so this practice declares its own gated `check`/`fix` instead.
|
|
24
|
+
|
|
25
|
+
## .see also
|
|
26
|
+
|
|
27
|
+
- `package-lock.json.declapract.integration.test.ts` — the forget-not-destroy clamp (delete-when-safe
|
|
28
|
+
+ survive-when-unsafe)
|
|
29
|
+
- `rule.require.clamp-edge-cases` — the regression clamp a destructive fix owes
|
|
30
|
+
- `howto.craft-practice-migrations` — the forget-not-destroy migration shape
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
import { mkdtempSync, rmSync, writeFileSync } from 'node:fs';
|
|
2
|
+
import { tmpdir } from 'node:os';
|
|
3
|
+
import path from 'node:path';
|
|
4
|
+
|
|
5
|
+
import type { FileCheckContext } from 'declapract';
|
|
6
|
+
import { given, then, useBeforeAll, when } from 'test-fns';
|
|
7
|
+
|
|
8
|
+
import { check, fix } from './package-lock.json.declapract';
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
* .what = the forget-not-destroy clamp for the package-lock.json bad-practice.
|
|
12
|
+
* .why = the fix DELETES the npm lockfile, so it is destructive — `rule.require.clamp-edge-cases`
|
|
13
|
+
* demands a regression clamp that BITES. the gate reads the real filesystem for a
|
|
14
|
+
* `pnpm-lock.yaml` beside the lockfile, so this is an integration test (a filesystem
|
|
15
|
+
* boundary, per `rule.forbid.unit.remote-boundaries`), built on the `mkdtempSync`
|
|
16
|
+
* throwaway-root pattern from `howto.craft-practice-migrations`. it proves BOTH paths:
|
|
17
|
+
* delete-when-safe (pnpm-lock.yaml present) and skip-when-unsafe (absent) — the second
|
|
18
|
+
* guards the forget-not-destroy contract: a bare EXISTS default-delete would fail it.
|
|
19
|
+
*/
|
|
20
|
+
/**
|
|
21
|
+
* .what = builds the minimal FileCheckContext the check and fix functions actually use
|
|
22
|
+
* .why = declapract's FileCheckContext carries many fields the package-lock check/fix never
|
|
23
|
+
* touch — they read only `getProjectRootDirectory()` (to look for a `pnpm-lock.yaml`
|
|
24
|
+
* beside the lockfile). the single documented cast here is the sanctioned test-context
|
|
25
|
+
* idiom (howto.craft-practice-migrations); it is confined to this helper so no call
|
|
26
|
+
* site casts. removal path: drop the cast the day declapract exports a partial-context
|
|
27
|
+
* builder.
|
|
28
|
+
*/
|
|
29
|
+
const genContextForRoot = (root: string): FileCheckContext =>
|
|
30
|
+
({ getProjectRootDirectory: () => root }) as unknown as FileCheckContext;
|
|
31
|
+
|
|
32
|
+
describe('pnpm package-lock-json — forget-not-destroy gate', () => {
|
|
33
|
+
// .note = deliberate mutation — `roots` accumulates every temp dir genRoot mints so the
|
|
34
|
+
// afterAll below can remove them all; a scoped, single-threaded test-cleanup zone
|
|
35
|
+
// (rule.require.immutable-vars sanctions in-place mutation with this note).
|
|
36
|
+
const roots: string[] = [];
|
|
37
|
+
const genRoot = (slug: string, files: Record<string, string>): string => {
|
|
38
|
+
const root = mkdtempSync(path.join(tmpdir(), `pnpm-lock-${slug}-`));
|
|
39
|
+
for (const [name, body] of Object.entries(files))
|
|
40
|
+
writeFileSync(path.join(root, name), body);
|
|
41
|
+
roots.push(root);
|
|
42
|
+
return root;
|
|
43
|
+
};
|
|
44
|
+
|
|
45
|
+
afterAll(() => {
|
|
46
|
+
for (const root of roots) rmSync(root, { recursive: true, force: true });
|
|
47
|
+
});
|
|
48
|
+
|
|
49
|
+
given('[case1] a package-lock.json WITH a pnpm-lock.yaml beside it', () => {
|
|
50
|
+
const state = useBeforeAll(async () => {
|
|
51
|
+
const root = genRoot('safe', {
|
|
52
|
+
'package-lock.json': '{}',
|
|
53
|
+
'pnpm-lock.yaml': 'lockfileVersion: 9\n',
|
|
54
|
+
});
|
|
55
|
+
const context = genContextForRoot(root);
|
|
56
|
+
return { context, fixed: (await fix('{}', context)).contents };
|
|
57
|
+
});
|
|
58
|
+
|
|
59
|
+
when('[t0] the bad-practice is evaluated', () => {
|
|
60
|
+
then('check detects it — safe to remove', () => {
|
|
61
|
+
expect(() => check('{}', state.context)).not.toThrow();
|
|
62
|
+
});
|
|
63
|
+
|
|
64
|
+
then('fix removes it — contents become null', () => {
|
|
65
|
+
expect(state.fixed).toBeNull();
|
|
66
|
+
});
|
|
67
|
+
});
|
|
68
|
+
});
|
|
69
|
+
|
|
70
|
+
given('[case2] a package-lock.json with NO pnpm-lock.yaml beside it', () => {
|
|
71
|
+
const state = useBeforeAll(async () => {
|
|
72
|
+
const root = genRoot('unsafe', { 'package-lock.json': '{}' });
|
|
73
|
+
const context = genContextForRoot(root);
|
|
74
|
+
return { context, fixed: (await fix('{}', context)).contents };
|
|
75
|
+
});
|
|
76
|
+
|
|
77
|
+
when('[t0] the bad-practice is evaluated', () => {
|
|
78
|
+
then('check skips it — forget-not-destroy, no pnpm-lock.yaml yet', () => {
|
|
79
|
+
expect(() => check('{}', state.context)).toThrow(
|
|
80
|
+
'does not match bad practice',
|
|
81
|
+
);
|
|
82
|
+
});
|
|
83
|
+
|
|
84
|
+
then('fix is a no-op — the npm lockfile is preserved', () => {
|
|
85
|
+
// a bare EXISTS default-delete would make this null, which this test would catch
|
|
86
|
+
expect(state.fixed).toEqual('{}');
|
|
87
|
+
});
|
|
88
|
+
});
|
|
89
|
+
});
|
|
90
|
+
|
|
91
|
+
given('[case3] no package-lock.json at all', () => {
|
|
92
|
+
const state = useBeforeAll(async () => {
|
|
93
|
+
const root = genRoot('absent', { 'pnpm-lock.yaml': 'lockfileVersion: 9\n' });
|
|
94
|
+
return { context: genContextForRoot(root) };
|
|
95
|
+
});
|
|
96
|
+
|
|
97
|
+
when('[t0] the bad-practice is evaluated', () => {
|
|
98
|
+
then('check skips it — no npm lockfile to remove', () => {
|
|
99
|
+
expect(() => check(null, state.context)).toThrow(
|
|
100
|
+
'does not match bad practice',
|
|
101
|
+
);
|
|
102
|
+
});
|
|
103
|
+
});
|
|
104
|
+
});
|
|
105
|
+
});
|