@codyswann/lisa 1.0.0 → 1.0.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +244 -36
- package/all/copy-overwrite/.claude/README.md +1 -3
- package/all/copy-overwrite/.claude/REFERENCE.md +519 -0
- package/all/copy-overwrite/.claude/agents/skill-evaluator.md +7 -7
- package/all/copy-overwrite/.claude/agents/test-coverage-agent.md +17 -0
- package/all/copy-overwrite/.claude/commands/git/commit.md +9 -5
- package/all/copy-overwrite/.claude/commands/git/submit-pr.md +1 -1
- package/all/copy-overwrite/.claude/commands/lisa/review-implementation.md +209 -0
- package/all/copy-overwrite/.claude/commands/project/add-test-coverage.md +58 -0
- package/all/copy-overwrite/.claude/commands/project/archive.md +1 -1
- package/all/copy-overwrite/.claude/commands/project/complete-task.md +53 -1
- package/all/copy-overwrite/.claude/commands/project/debrief.md +12 -23
- package/all/copy-overwrite/.claude/commands/project/execute.md +33 -77
- package/all/copy-overwrite/.claude/commands/project/fix-linter-error.md +87 -0
- package/all/copy-overwrite/.claude/commands/project/implement.md +24 -28
- package/all/copy-overwrite/.claude/commands/project/lower-code-complexity.md +30 -55
- package/all/copy-overwrite/.claude/commands/project/plan.md +87 -242
- package/all/copy-overwrite/.claude/commands/project/reduce-max-lines-per-function.md +76 -0
- package/all/copy-overwrite/.claude/commands/project/reduce-max-lines.md +75 -0
- package/all/copy-overwrite/.claude/commands/project/research.md +86 -188
- package/all/copy-overwrite/.claude/commands/project/review.md +19 -38
- package/all/copy-overwrite/.claude/commands/project/setup.md +1 -1
- package/all/copy-overwrite/.claude/commands/project/verify.md +62 -25
- package/all/copy-overwrite/.claude/commands/pull-request/review.md +25 -7
- package/all/copy-overwrite/.claude/commands/tasks/load.md +63 -0
- package/all/copy-overwrite/.claude/commands/tasks/sync.md +84 -0
- package/all/copy-overwrite/.claude/hooks/README.md +75 -0
- package/all/copy-overwrite/.claude/hooks/check-tired-boss.sh +61 -0
- package/all/copy-overwrite/.claude/hooks/debug-hook.sh +47 -0
- package/all/copy-overwrite/.claude/hooks/notify-ntfy.sh +2 -0
- package/all/copy-overwrite/.claude/hooks/sync-tasks.sh +95 -0
- package/all/copy-overwrite/.claude/{skills/coding-philosophy/SKILL.md → rules/coding-philosophy.md} +93 -70
- package/all/copy-overwrite/.claude/settings.json +35 -14
- package/all/copy-overwrite/.claude/skills/prompt-complexity-scorer/SKILL.md +41 -9
- package/all/copy-overwrite/.claude/skills/skill-creator/scripts/init_skill.py +2 -0
- package/all/copy-overwrite/.claude/skills/skill-creator/scripts/package_skill.py +2 -0
- package/all/copy-overwrite/.claude/skills/skill-creator/scripts/quick_validate.py +2 -0
- package/all/copy-overwrite/.safety-net.json +25 -0
- package/all/copy-overwrite/CLAUDE.md +8 -30
- package/all/copy-overwrite/HUMAN.md +517 -17
- package/all/create-only/.claude/rules/PROJECT_RULES.md +9 -0
- package/all/create-only/scripts/setup-deploy-key.sh +190 -0
- package/all/deletions.json +5 -0
- package/cdk/copy-overwrite/.github/workflows/ci.yml +142 -0
- package/cdk/copy-overwrite/.github/workflows/deploy.yml +59 -0
- package/cdk/copy-overwrite/eslint.cdk.ts +175 -0
- package/cdk/copy-overwrite/eslint.config.ts +51 -0
- package/cdk/copy-overwrite/eslint.slow.config.ts +80 -0
- package/cdk/copy-overwrite/knip.json +53 -0
- package/cdk/copy-overwrite/tsconfig.eslint.json +11 -0
- package/cdk/merge/package.json +17 -1
- package/dist/cli/index.d.ts +3 -2
- package/dist/cli/index.d.ts.map +1 -1
- package/dist/cli/index.js +83 -64
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/prompts.d.ts +17 -3
- package/dist/cli/prompts.d.ts.map +1 -1
- package/dist/cli/prompts.js +52 -16
- package/dist/cli/prompts.js.map +1 -1
- package/dist/core/config.d.ts +13 -4
- package/dist/core/config.d.ts.map +1 -1
- package/dist/core/config.js +17 -9
- package/dist/core/config.js.map +1 -1
- package/dist/core/git-service.d.ts +40 -0
- package/dist/core/git-service.d.ts.map +1 -0
- package/dist/core/git-service.js +52 -0
- package/dist/core/git-service.js.map +1 -0
- package/dist/core/index.d.ts +3 -3
- package/dist/core/index.js +3 -3
- package/dist/core/lisa.d.ts +124 -7
- package/dist/core/lisa.d.ts.map +1 -1
- package/dist/core/lisa.js +423 -221
- package/dist/core/lisa.js.map +1 -1
- package/dist/core/manifest.d.ts +5 -1
- package/dist/core/manifest.d.ts.map +1 -1
- package/dist/core/manifest.js +22 -16
- package/dist/core/manifest.js.map +1 -1
- package/dist/detection/detector.interface.d.ts +1 -1
- package/dist/detection/detectors/cdk.d.ts +6 -1
- package/dist/detection/detectors/cdk.d.ts.map +1 -1
- package/dist/detection/detectors/cdk.js +16 -8
- package/dist/detection/detectors/cdk.js.map +1 -1
- package/dist/detection/detectors/expo.d.ts +6 -1
- package/dist/detection/detectors/expo.d.ts.map +1 -1
- package/dist/detection/detectors/expo.js +13 -8
- package/dist/detection/detectors/expo.js.map +1 -1
- package/dist/detection/detectors/nestjs.d.ts +7 -2
- package/dist/detection/detectors/nestjs.d.ts.map +1 -1
- package/dist/detection/detectors/nestjs.js +17 -9
- package/dist/detection/detectors/nestjs.js.map +1 -1
- package/dist/detection/detectors/npm-package.d.ts +6 -1
- package/dist/detection/detectors/npm-package.d.ts.map +1 -1
- package/dist/detection/detectors/npm-package.js +9 -4
- package/dist/detection/detectors/npm-package.js.map +1 -1
- package/dist/detection/detectors/typescript.d.ts +6 -1
- package/dist/detection/detectors/typescript.d.ts.map +1 -1
- package/dist/detection/detectors/typescript.js +12 -7
- package/dist/detection/detectors/typescript.js.map +1 -1
- package/dist/detection/index.d.ts +13 -3
- package/dist/detection/index.d.ts.map +1 -1
- package/dist/detection/index.js +17 -7
- package/dist/detection/index.js.map +1 -1
- package/dist/errors/index.d.ts +66 -2
- package/dist/errors/index.d.ts.map +1 -1
- package/dist/errors/index.js +89 -17
- package/dist/errors/index.js.map +1 -1
- package/dist/index.js +3 -3
- package/dist/index.js.map +1 -1
- package/dist/logging/console-logger.d.ts +21 -1
- package/dist/logging/console-logger.d.ts.map +1 -1
- package/dist/logging/console-logger.js +26 -6
- package/dist/logging/console-logger.js.map +1 -1
- package/dist/logging/index.d.ts +3 -3
- package/dist/logging/index.js +2 -2
- package/dist/logging/logger.interface.d.ts +1 -1
- package/dist/logging/silent-logger.d.ts +21 -1
- package/dist/logging/silent-logger.d.ts.map +1 -1
- package/dist/logging/silent-logger.js +20 -0
- package/dist/logging/silent-logger.js.map +1 -1
- package/dist/strategies/copy-contents.d.ts +47 -6
- package/dist/strategies/copy-contents.d.ts.map +1 -1
- package/dist/strategies/copy-contents.js +99 -49
- package/dist/strategies/copy-contents.js.map +1 -1
- package/dist/strategies/copy-overwrite.d.ts +10 -2
- package/dist/strategies/copy-overwrite.d.ts.map +1 -1
- package/dist/strategies/copy-overwrite.js +17 -9
- package/dist/strategies/copy-overwrite.js.map +1 -1
- package/dist/strategies/create-only.d.ts +10 -2
- package/dist/strategies/create-only.d.ts.map +1 -1
- package/dist/strategies/create-only.js +14 -6
- package/dist/strategies/create-only.js.map +1 -1
- package/dist/strategies/index.d.ts +17 -7
- package/dist/strategies/index.d.ts.map +1 -1
- package/dist/strategies/index.js +19 -9
- package/dist/strategies/index.js.map +1 -1
- package/dist/strategies/merge.d.ts +10 -2
- package/dist/strategies/merge.d.ts.map +1 -1
- package/dist/strategies/merge.js +21 -21
- package/dist/strategies/merge.js.map +1 -1
- package/dist/strategies/strategy.interface.d.ts +1 -1
- package/dist/strategies/strategy.interface.d.ts.map +1 -1
- package/dist/transaction/backup.d.ts +15 -1
- package/dist/transaction/backup.d.ts.map +1 -1
- package/dist/transaction/backup.js +47 -12
- package/dist/transaction/backup.js.map +1 -1
- package/dist/transaction/index.d.ts +3 -3
- package/dist/transaction/index.js +2 -2
- package/dist/transaction/transaction.d.ts +25 -2
- package/dist/transaction/transaction.d.ts.map +1 -1
- package/dist/transaction/transaction.js +25 -2
- package/dist/transaction/transaction.js.map +1 -1
- package/dist/utils/file-operations.d.ts +21 -0
- package/dist/utils/file-operations.d.ts.map +1 -1
- package/dist/utils/file-operations.js +48 -12
- package/dist/utils/file-operations.js.map +1 -1
- package/dist/utils/index.d.ts +3 -3
- package/dist/utils/index.js +3 -3
- package/dist/utils/json-utils.d.ts +12 -0
- package/dist/utils/json-utils.d.ts.map +1 -1
- package/dist/utils/json-utils.js +17 -5
- package/dist/utils/json-utils.js.map +1 -1
- package/dist/utils/path-utils.d.ts +11 -0
- package/dist/utils/path-utils.d.ts.map +1 -1
- package/dist/utils/path-utils.js +12 -1
- package/dist/utils/path-utils.js.map +1 -1
- package/eslint-plugin-code-organization/__tests__/enforce-statement-order.test.js +5 -0
- package/eslint-plugin-code-organization/index.js +5 -0
- package/eslint-plugin-code-organization/rules/enforce-statement-order.js +5 -0
- package/expo/copy-overwrite/.claude/skills/atomic-design-gluestack/scripts/validate_atomic_structure.py +2 -0
- package/expo/copy-overwrite/.claude/skills/container-view-pattern/scripts/create_component.py +2 -0
- package/expo/copy-overwrite/.claude/skills/container-view-pattern/scripts/validate_component.py +2 -0
- package/expo/copy-overwrite/.claude/skills/cross-platform-compatibility/scripts/validate_cross_platform.py +2 -0
- package/expo/copy-overwrite/.claude/skills/directory-structure/scripts/validate_structure.py +2 -0
- package/expo/copy-overwrite/.claude/skills/expo-router-best-practices/scripts/generate-route.py +2 -0
- package/expo/copy-overwrite/.claude/skills/gluestack-nativewind/scripts/validate_styling.py +2 -41
- package/{typescript → expo}/copy-overwrite/.github/workflows/build.yml +3 -0
- package/expo/copy-overwrite/.github/workflows/ci.yml +36 -0
- package/{typescript → expo}/copy-overwrite/.github/workflows/deploy.yml +22 -26
- package/{typescript → expo}/copy-overwrite/.github/workflows/lighthouse.yml +4 -1
- package/expo/copy-overwrite/eslint-plugin-component-structure/__tests__/plugin-index.test.js +5 -0
- package/expo/copy-overwrite/eslint-plugin-component-structure/__tests__/require-memo-in-view.test.js +5 -0
- package/expo/copy-overwrite/eslint-plugin-component-structure/__tests__/single-component-per-file.test.js +5 -0
- package/expo/copy-overwrite/eslint-plugin-component-structure/index.js +5 -0
- package/expo/copy-overwrite/eslint-plugin-component-structure/rules/enforce-component-structure.js +5 -0
- package/expo/copy-overwrite/eslint-plugin-component-structure/rules/no-return-in-view.js +6 -1
- package/expo/copy-overwrite/eslint-plugin-component-structure/rules/require-memo-in-view.js +5 -0
- package/expo/copy-overwrite/eslint-plugin-component-structure/rules/single-component-per-file.js +5 -0
- package/expo/copy-overwrite/eslint-plugin-ui-standards/README.md +0 -68
- package/expo/copy-overwrite/eslint-plugin-ui-standards/index.js +5 -3
- package/expo/copy-overwrite/eslint-plugin-ui-standards/rules/no-classname-outside-ui.js +5 -0
- package/expo/copy-overwrite/eslint-plugin-ui-standards/rules/no-direct-rn-imports.js +5 -0
- package/expo/copy-overwrite/eslint.config.ts +53 -0
- package/expo/copy-overwrite/eslint.expo.ts +330 -0
- package/expo/copy-overwrite/eslint.slow.config.ts +86 -0
- package/expo/copy-overwrite/knip.json +132 -0
- package/expo/copy-overwrite/lighthouserc.js +27 -0
- package/expo/copy-overwrite/tsconfig.eslint.json +25 -0
- package/expo/create-only/lighthouserc-config.json +6 -1
- package/expo/merge/package.json +16 -3
- package/nestjs/copy-overwrite/.claude/skills/nestjs-rules/SKILL.md +1 -1
- package/{typescript → nestjs}/copy-overwrite/.github/k6/README.md +2 -2
- package/{typescript → nestjs}/copy-overwrite/.github/k6/examples/customer-deploy-integration.yml +3 -0
- package/{typescript → nestjs}/copy-overwrite/.github/k6/examples/data-driven-test.js +5 -0
- package/{typescript → nestjs}/copy-overwrite/.github/k6/scenarios/load.js +6 -2
- package/{typescript → nestjs}/copy-overwrite/.github/k6/scenarios/smoke.js +5 -0
- package/{typescript → nestjs}/copy-overwrite/.github/k6/scenarios/soak.js +5 -0
- package/{typescript → nestjs}/copy-overwrite/.github/k6/scenarios/spike.js +5 -0
- package/{typescript → nestjs}/copy-overwrite/.github/k6/scenarios/stress.js +5 -0
- package/{typescript → nestjs}/copy-overwrite/.github/k6/scripts/api-test.js +5 -0
- package/{typescript → nestjs}/copy-overwrite/.github/k6/scripts/default-test.js +5 -0
- package/nestjs/copy-overwrite/.github/workflows/ci.yml +29 -0
- package/nestjs/copy-overwrite/.github/workflows/deploy.yml +291 -0
- package/{typescript → nestjs}/copy-overwrite/.github/workflows/load-test.yml +3 -0
- package/nestjs/copy-overwrite/eslint.config.ts +53 -0
- package/nestjs/copy-overwrite/eslint.nestjs.ts +178 -0
- package/nestjs/merge/package.json +11 -3
- package/package.json +34 -40
- package/typescript/copy-contents/.husky/pre-commit +1 -1
- package/typescript/copy-contents/.husky/pre-push +99 -118
- package/typescript/copy-overwrite/.claude/hooks/format-on-edit.sh +2 -0
- package/typescript/copy-overwrite/.claude/hooks/install_pkgs.sh +3 -11
- package/typescript/copy-overwrite/.claude/hooks/lint-on-edit.sh +2 -0
- package/typescript/copy-overwrite/.claude/hooks/sg-scan-on-edit.sh +68 -0
- package/typescript/copy-overwrite/.claude/settings.json +79 -0
- package/typescript/copy-overwrite/.claude/skills/jsdoc-best-practices/SKILL.md +44 -0
- package/typescript/copy-overwrite/.github/README.md +49 -1
- package/typescript/copy-overwrite/.github/dependabot.yml +3 -0
- package/typescript/copy-overwrite/.github/workflows/ci.yml +7 -29
- package/typescript/copy-overwrite/.github/workflows/claude.yml +3 -0
- package/typescript/copy-overwrite/.github/workflows/create-github-issue-on-failure.yml +6 -4
- package/typescript/copy-overwrite/.github/workflows/create-issue-on-failure.yml +176 -0
- package/typescript/copy-overwrite/.github/workflows/create-jira-issue-on-failure.yml +3 -1
- package/typescript/copy-overwrite/.github/workflows/create-sentry-issue-on-failure.yml +3 -1
- package/typescript/copy-overwrite/.github/workflows/lint-slow.yml +40 -0
- package/typescript/copy-overwrite/.github/workflows/quality.yml +151 -38
- package/typescript/copy-overwrite/.github/workflows/release.yml +3 -0
- package/typescript/copy-overwrite/.gitleaksignore +3 -0
- package/typescript/copy-overwrite/.lintstagedrc.json +6 -0
- package/typescript/copy-overwrite/.prettierignore +2 -1
- package/typescript/copy-overwrite/.yamllint +2 -0
- package/typescript/copy-overwrite/ast-grep/rule-tests/.gitkeep +3 -0
- package/typescript/copy-overwrite/ast-grep/rules/.gitkeep +3 -0
- package/typescript/copy-overwrite/ast-grep/utils/.gitkeep +3 -0
- package/typescript/copy-overwrite/{commitlint.config.js → commitlint.config.cjs} +5 -0
- package/typescript/copy-overwrite/eslint-plugin-code-organization/__tests__/enforce-statement-order.test.js +5 -0
- package/typescript/copy-overwrite/eslint-plugin-code-organization/index.js +5 -0
- package/typescript/copy-overwrite/eslint-plugin-code-organization/rules/enforce-statement-order.js +5 -0
- package/typescript/copy-overwrite/eslint.base.ts +430 -0
- package/typescript/copy-overwrite/eslint.config.ts +52 -0
- package/typescript/copy-overwrite/eslint.ignore.config.json +19 -2
- package/typescript/copy-overwrite/eslint.slow.config.ts +69 -0
- package/typescript/copy-overwrite/eslint.typescript.ts +142 -0
- package/typescript/copy-overwrite/knip.json +64 -0
- package/typescript/copy-overwrite/sgconfig.yml +11 -0
- package/typescript/copy-overwrite/tsconfig.eslint.json +9 -0
- package/typescript/create-only/eslint.config.local.ts +24 -0
- package/typescript/{copy-overwrite/eslint.thresholds.config.json → create-only/eslint.thresholds.json} +1 -1
- package/typescript/github-rulesets/base.json +2 -75
- package/typescript/merge/.claude/settings.json +160 -0
- package/typescript/merge/package.json +35 -34
- package/all/copy-overwrite/.claude/commands/rules/format-md.md +0 -72
- package/all/copy-overwrite/.claude/skills/coding-philosophy/references/function-structure.md +0 -416
- package/all/copy-overwrite/.claude/skills/coding-philosophy/references/immutable-patterns.md +0 -316
- package/expo/copy-overwrite/eslint-plugin-ui-standards/rules/no-inline-styles.js +0 -73
- package/expo/copy-overwrite/eslint.config.mjs +0 -560
- package/lisa.sh +0 -35
- package/typescript/copy-overwrite/eslint.config.mjs +0 -390
- /package/{all/create-only/PROJECT_RULES.md → cdk/copy-overwrite/.github/workflows/.keep} +0 -0
- /package/{typescript → nestjs}/copy-overwrite/.github/k6/BROWSER_TESTING_NOTE.md +0 -0
- /package/{typescript → nestjs}/copy-overwrite/.github/k6/INTEGRATION_GUIDE.md +0 -0
- /package/{typescript → nestjs}/copy-overwrite/.github/k6/SCENARIO_SELECTION_GUIDE.md +0 -0
- /package/{typescript → nestjs}/copy-overwrite/.github/k6/scenarios/load.json +0 -0
- /package/{typescript → nestjs}/copy-overwrite/.github/k6/scenarios/smoke.json +0 -0
- /package/{typescript → nestjs}/copy-overwrite/.github/k6/scenarios/soak.json +0 -0
- /package/{typescript → nestjs}/copy-overwrite/.github/k6/scenarios/spike.json +0 -0
- /package/{typescript → nestjs}/copy-overwrite/.github/k6/scenarios/stress.json +0 -0
- /package/{typescript → nestjs}/copy-overwrite/.github/k6/thresholds/normal.json +0 -0
- /package/{typescript → nestjs}/copy-overwrite/.github/k6/thresholds/relaxed.json +0 -0
- /package/{typescript → nestjs}/copy-overwrite/.github/k6/thresholds/strict.json +0 -0
- /package/{typescript → nestjs}/copy-overwrite/.github/workflows/k6-load-test-README.md +0 -0
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://unpkg.com/knip@5/schema.json",
|
|
3
|
+
"entry": [
|
|
4
|
+
"app/**/*.{ts,tsx}",
|
|
5
|
+
"components/**/*.{ts,tsx}",
|
|
6
|
+
"features/**/*.{ts,tsx}",
|
|
7
|
+
"hooks/**/*.{ts,tsx}",
|
|
8
|
+
"utils/**/*.{ts,tsx}",
|
|
9
|
+
"stores/**/*.{ts,tsx}",
|
|
10
|
+
"providers/**/*.{ts,tsx}",
|
|
11
|
+
"constants/**/*.{ts,tsx}",
|
|
12
|
+
"types/**/*.{ts,tsx}",
|
|
13
|
+
"config/**/*.{ts,tsx}"
|
|
14
|
+
],
|
|
15
|
+
"project": [
|
|
16
|
+
"app/**/*.{ts,tsx}",
|
|
17
|
+
"components/**/*.{ts,tsx}",
|
|
18
|
+
"features/**/*.{ts,tsx}",
|
|
19
|
+
"hooks/**/*.{ts,tsx}",
|
|
20
|
+
"utils/**/*.{ts,tsx}",
|
|
21
|
+
"stores/**/*.{ts,tsx}",
|
|
22
|
+
"providers/**/*.{ts,tsx}",
|
|
23
|
+
"constants/**/*.{ts,tsx}",
|
|
24
|
+
"types/**/*.{ts,tsx}",
|
|
25
|
+
"config/**/*.{ts,tsx}"
|
|
26
|
+
],
|
|
27
|
+
"ignore": [
|
|
28
|
+
"**/*.test.ts",
|
|
29
|
+
"**/*.test.tsx",
|
|
30
|
+
"**/*.spec.ts",
|
|
31
|
+
"**/*.spec.tsx",
|
|
32
|
+
"**/__tests__/**",
|
|
33
|
+
"**/__mocks__/**",
|
|
34
|
+
"**/tests/**",
|
|
35
|
+
"**/e2e/**",
|
|
36
|
+
"**/dist/**",
|
|
37
|
+
"**/build/**",
|
|
38
|
+
"**/coverage/**",
|
|
39
|
+
"**/node_modules/**",
|
|
40
|
+
"**/ios/**",
|
|
41
|
+
"**/android/**",
|
|
42
|
+
"**/.expo/**",
|
|
43
|
+
"**/assets/**",
|
|
44
|
+
"**/scripts/**",
|
|
45
|
+
"**/eslint-plugin-*/**",
|
|
46
|
+
"**/generated/**",
|
|
47
|
+
"**/patches/**",
|
|
48
|
+
"**/projects/**",
|
|
49
|
+
"**/specs/**",
|
|
50
|
+
"**/docs/**",
|
|
51
|
+
"**/*.config.js",
|
|
52
|
+
"**/*.config.ts",
|
|
53
|
+
"**/metro.config.js",
|
|
54
|
+
"**/babel.config.js"
|
|
55
|
+
],
|
|
56
|
+
"ignoreBinaries": ["audit", "ast-grep", "maestro", "eas", "source-map-explorer"],
|
|
57
|
+
"ignoreDependencies": [
|
|
58
|
+
"@babel/core",
|
|
59
|
+
"@babel/plugin-proposal-export-namespace-from",
|
|
60
|
+
"@commitlint/cli",
|
|
61
|
+
"@dnd-kit/modifiers",
|
|
62
|
+
"@eslint-community/eslint-plugin-eslint-comments",
|
|
63
|
+
"@eslint/eslintrc",
|
|
64
|
+
"@eslint/js",
|
|
65
|
+
"@expo-google-fonts/inter",
|
|
66
|
+
"@istanbuljs/nyc-config-typescript",
|
|
67
|
+
"@jest/test-sequencer",
|
|
68
|
+
"@react-native-community/cli",
|
|
69
|
+
"@react-native-community/cli-platform-android",
|
|
70
|
+
"@react-native-community/cli-platform-ios",
|
|
71
|
+
"@react-navigation/native",
|
|
72
|
+
"@types/eslint-plugin-jsx-a11y",
|
|
73
|
+
"@types/eslint-plugin-tailwindcss",
|
|
74
|
+
"@types/fs-extra",
|
|
75
|
+
"@types/glob",
|
|
76
|
+
"@types/lodash.merge",
|
|
77
|
+
"babel-plugin-istanbul",
|
|
78
|
+
"baseline-browser-mapping",
|
|
79
|
+
"commitizen",
|
|
80
|
+
"date-fns-tz",
|
|
81
|
+
"eslint-config-expo",
|
|
82
|
+
"eslint-config-prettier",
|
|
83
|
+
"eslint-plugin-code-organization",
|
|
84
|
+
"eslint-plugin-component-structure",
|
|
85
|
+
"eslint-plugin-functional",
|
|
86
|
+
"eslint-plugin-jsdoc",
|
|
87
|
+
"eslint-plugin-jsx-a11y",
|
|
88
|
+
"eslint-plugin-prettier",
|
|
89
|
+
"eslint-plugin-react",
|
|
90
|
+
"eslint-plugin-react-compiler",
|
|
91
|
+
"eslint-plugin-react-hooks",
|
|
92
|
+
"eslint-plugin-react-perf",
|
|
93
|
+
"eslint-plugin-sonarjs",
|
|
94
|
+
"eslint-plugin-tailwindcss",
|
|
95
|
+
"eslint-plugin-ui-standards",
|
|
96
|
+
"events",
|
|
97
|
+
"expo-atlas",
|
|
98
|
+
"expo-clipboard",
|
|
99
|
+
"expo-localization",
|
|
100
|
+
"expo-status-bar",
|
|
101
|
+
"firebase",
|
|
102
|
+
"glob",
|
|
103
|
+
"globals",
|
|
104
|
+
"i18n-js",
|
|
105
|
+
"jscodeshift",
|
|
106
|
+
"lint-staged",
|
|
107
|
+
"memfs",
|
|
108
|
+
"prettier-plugin-tailwindcss",
|
|
109
|
+
"react-native-element-dropdown",
|
|
110
|
+
"tailwind-variants",
|
|
111
|
+
"tar",
|
|
112
|
+
"text-encoding-polyfill",
|
|
113
|
+
"ts-jest",
|
|
114
|
+
"ts-morph",
|
|
115
|
+
"typescript-eslint",
|
|
116
|
+
"usehooks-ts",
|
|
117
|
+
"zod"
|
|
118
|
+
],
|
|
119
|
+
"ignoreExportsUsedInFile": true,
|
|
120
|
+
"includeEntryExports": false,
|
|
121
|
+
"rules": {
|
|
122
|
+
"dependencies": "error",
|
|
123
|
+
"devDependencies": "error",
|
|
124
|
+
"unlisted": "error",
|
|
125
|
+
"binaries": "error",
|
|
126
|
+
"unresolved": "error",
|
|
127
|
+
"files": "error",
|
|
128
|
+
"duplicates": "error",
|
|
129
|
+
"exports": "error",
|
|
130
|
+
"types": "error"
|
|
131
|
+
}
|
|
132
|
+
}
|
|
@@ -1,3 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* This file is managed by Lisa.
|
|
3
|
+
* Do not edit directly — changes will be overwritten on the next `lisa` run.
|
|
4
|
+
*/
|
|
5
|
+
|
|
1
6
|
/**
|
|
2
7
|
* Lighthouse CI Configuration
|
|
3
8
|
*
|
|
@@ -57,15 +62,20 @@ const defaults = {
|
|
|
57
62
|
totalByteWeight: { maxNumericValue: 850000 },
|
|
58
63
|
scriptSize: { maxNumericValue: 750000 },
|
|
59
64
|
fontDisplay: { minScore: 0.9 },
|
|
65
|
+
fontDisplayInsight: { minScore: 0.9 },
|
|
60
66
|
imageAspectRatio: { minScore: 1 },
|
|
61
67
|
metaDescription: { minScore: 1 },
|
|
62
68
|
unusedJavascript: { maxLength: 2 },
|
|
69
|
+
unusedCssRules: { maxLength: 0 },
|
|
70
|
+
usesRelPreconnect: { maxLength: 0 },
|
|
63
71
|
bootupTime: { minScore: 0.9 },
|
|
64
72
|
mainthreadWorkBreakdown: { minScore: 0.9 },
|
|
65
73
|
maxPotentialFid: { minScore: 1 },
|
|
66
74
|
legacyJavascript: { maxLength: 2 },
|
|
67
75
|
legacyJavascriptInsight: { minScore: 0.4 },
|
|
68
76
|
speedIndex: { minScore: 0.9 },
|
|
77
|
+
networkDependencyTreeInsight: { minScore: 0.9 },
|
|
78
|
+
duplicatedJavascriptInsight: { minScore: 0.9 },
|
|
69
79
|
},
|
|
70
80
|
};
|
|
71
81
|
|
|
@@ -184,6 +194,23 @@ module.exports = {
|
|
|
184
194
|
{ minScore: a.legacyJavascriptInsight.minScore },
|
|
185
195
|
],
|
|
186
196
|
"speed-index": ["error", { minScore: a.speedIndex.minScore }],
|
|
197
|
+
"unused-css-rules": ["warn", { maxLength: a.unusedCssRules.maxLength }],
|
|
198
|
+
"uses-rel-preconnect": [
|
|
199
|
+
"warn",
|
|
200
|
+
{ maxLength: a.usesRelPreconnect.maxLength },
|
|
201
|
+
],
|
|
202
|
+
"font-display-insight": [
|
|
203
|
+
"warn",
|
|
204
|
+
{ minScore: a.fontDisplayInsight.minScore },
|
|
205
|
+
],
|
|
206
|
+
"network-dependency-tree-insight": [
|
|
207
|
+
"warn",
|
|
208
|
+
{ minScore: a.networkDependencyTreeInsight.minScore },
|
|
209
|
+
],
|
|
210
|
+
"duplicated-javascript-insight": [
|
|
211
|
+
"warn",
|
|
212
|
+
{ minScore: a.duplicatedJavascriptInsight.minScore },
|
|
213
|
+
],
|
|
187
214
|
},
|
|
188
215
|
},
|
|
189
216
|
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
{
|
|
2
|
+
"extends": "./tsconfig.json",
|
|
3
|
+
"compilerOptions": {
|
|
4
|
+
"rootDir": ".",
|
|
5
|
+
"noEmit": true
|
|
6
|
+
},
|
|
7
|
+
"include": [
|
|
8
|
+
"app/**/*",
|
|
9
|
+
"components/**/*",
|
|
10
|
+
"hooks/**/*",
|
|
11
|
+
"lib/**/*",
|
|
12
|
+
"features/**/*",
|
|
13
|
+
"providers/**/*",
|
|
14
|
+
"**/*.ts",
|
|
15
|
+
"**/*.tsx"
|
|
16
|
+
],
|
|
17
|
+
"exclude": [
|
|
18
|
+
"node_modules",
|
|
19
|
+
"dist",
|
|
20
|
+
"build",
|
|
21
|
+
".expo",
|
|
22
|
+
"ios",
|
|
23
|
+
"android"
|
|
24
|
+
]
|
|
25
|
+
}
|
|
@@ -15,14 +15,19 @@
|
|
|
15
15
|
"totalByteWeight": { "maxNumericValue": 850000 },
|
|
16
16
|
"scriptSize": { "maxNumericValue": 750000 },
|
|
17
17
|
"fontDisplay": { "minScore": 0.9 },
|
|
18
|
+
"fontDisplayInsight": { "minScore": 0.9 },
|
|
18
19
|
"imageAspectRatio": { "minScore": 1 },
|
|
19
20
|
"metaDescription": { "minScore": 1 },
|
|
20
21
|
"unusedJavascript": { "maxLength": 2 },
|
|
22
|
+
"unusedCssRules": { "maxLength": 0 },
|
|
23
|
+
"usesRelPreconnect": { "maxLength": 0 },
|
|
21
24
|
"bootupTime": { "minScore": 0.9 },
|
|
22
25
|
"mainthreadWorkBreakdown": { "minScore": 0.9 },
|
|
23
26
|
"maxPotentialFid": { "minScore": 1 },
|
|
24
27
|
"legacyJavascript": { "maxLength": 2 },
|
|
25
28
|
"legacyJavascriptInsight": { "minScore": 0.4 },
|
|
26
|
-
"speedIndex": { "minScore": 0.9 }
|
|
29
|
+
"speedIndex": { "minScore": 0.9 },
|
|
30
|
+
"networkDependencyTreeInsight": { "minScore": 0.9 },
|
|
31
|
+
"duplicatedJavascriptInsight": { "minScore": 0.9 }
|
|
27
32
|
}
|
|
28
33
|
}
|
package/expo/merge/package.json
CHANGED
|
@@ -1,5 +1,9 @@
|
|
|
1
1
|
{
|
|
2
2
|
"scripts": {
|
|
3
|
+
"test": "NODE_ENV=test jest --passWithNoTests",
|
|
4
|
+
"test:unit": "NODE_ENV=test jest --testPathIgnorePatterns=\"\\.integration\\.test\\.(ts|tsx)$\" --passWithNoTests",
|
|
5
|
+
"test:integration": "NODE_ENV=test jest --testPathPatterns=\"\\.integration\\.test\\.(ts|tsx)$\" --passWithNoTests",
|
|
6
|
+
"test:cov": "NODE_ENV=test jest --coverage",
|
|
3
7
|
"start:local": "cp .env.localhost .env.local && EXPO_ATLAS=true expo start",
|
|
4
8
|
"start:dev": "EXPO_ATLAS=true cp .env.development .env.local && EXPO_ATLAS=true expo start",
|
|
5
9
|
"start:staging": "cp .env.staging .env.local && EXPO_ATLAS=true expo start",
|
|
@@ -80,7 +84,7 @@
|
|
|
80
84
|
"react-native-web": "^0.21.2",
|
|
81
85
|
"react-native-worklets": "0.7.1",
|
|
82
86
|
"tailwindcss": "^3.4.7",
|
|
83
|
-
"tar": "^7.5.
|
|
87
|
+
"tar": "^7.5.6",
|
|
84
88
|
"text-encoding-polyfill": "^0.6.7",
|
|
85
89
|
"use-debounce": "^10.1.0",
|
|
86
90
|
"usehooks-ts": "^3.1.1",
|
|
@@ -100,12 +104,16 @@
|
|
|
100
104
|
"@react-native-community/cli-platform-ios": "^20.0.2",
|
|
101
105
|
"@testing-library/react-native": "^13.0.0",
|
|
102
106
|
"@types/base-64": "^1.0.2",
|
|
107
|
+
"@types/eslint-plugin-jsx-a11y": "^6.10.1",
|
|
108
|
+
"@types/eslint-plugin-tailwindcss": "^3.17.0",
|
|
103
109
|
"@types/react": "~19.1.10",
|
|
104
110
|
"@types/react-dom": "^19.1.7",
|
|
105
111
|
"babel-plugin-istanbul": "^6.1.1",
|
|
106
112
|
"babel-plugin-module-resolver": "^5.0.2",
|
|
107
113
|
"baseline-browser-mapping": "^2.9.2",
|
|
108
114
|
"eslint-config-expo": "^10.0.0",
|
|
115
|
+
"eslint-import-resolver-typescript": "^4.0.0",
|
|
116
|
+
"eslint-plugin-import": "^2.31.0",
|
|
109
117
|
"eslint-plugin-component-structure": "file:./eslint-plugin-component-structure",
|
|
110
118
|
"eslint-plugin-jsx-a11y": "^6.10.0",
|
|
111
119
|
"eslint-plugin-react": "^7.37.0",
|
|
@@ -116,17 +124,22 @@
|
|
|
116
124
|
"eslint-plugin-ui-standards": "file:./eslint-plugin-ui-standards",
|
|
117
125
|
"expo-atlas": "^0.4.0",
|
|
118
126
|
"globals": "^16.0.0",
|
|
127
|
+
"@istanbuljs/nyc-config-typescript": "^1.0.2",
|
|
128
|
+
"@jest/test-sequencer": "^30.2.0",
|
|
129
|
+
"@types/jest": "^30.0.0",
|
|
130
|
+
"jest": "^30.0.0",
|
|
119
131
|
"jest-environment-jsdom": "^30.2.0",
|
|
120
132
|
"jest-expo": "^54.0.12",
|
|
133
|
+
"ts-jest": "^29.4.6",
|
|
121
134
|
"react-test-renderer": "19.1.0"
|
|
122
135
|
},
|
|
123
136
|
"resolutions": {
|
|
124
137
|
"eslint-plugin-react-hooks": "^7.0.0",
|
|
125
|
-
"tar": "^7.5.
|
|
138
|
+
"tar": "^7.5.6"
|
|
126
139
|
},
|
|
127
140
|
"overrides": {
|
|
128
141
|
"eslint-plugin-react-hooks": "^7.0.0",
|
|
129
142
|
"zod-validation-error": "^4.0.0",
|
|
130
|
-
"tar": "^7.5.
|
|
143
|
+
"tar": "^7.5.6"
|
|
131
144
|
}
|
|
132
145
|
}
|
|
@@ -66,8 +66,8 @@ docker compose -f docker-compose.k6.yml run --rm k6-smoke
|
|
|
66
66
|
K6_BASE_URL=https://staging.example.com docker compose -f docker-compose.k6.yml run --rm k6-load
|
|
67
67
|
|
|
68
68
|
# Run with other services
|
|
69
|
-
docker compose -f docker
|
|
70
|
-
docker compose -f docker
|
|
69
|
+
docker compose -f docker compose.yml -f docker-compose.k6.yml up -d postgres valkey
|
|
70
|
+
docker compose -f docker compose.yml -f docker-compose.k6.yml run --rm k6-smoke
|
|
71
71
|
```
|
|
72
72
|
|
|
73
73
|
---
|
|
@@ -1,5 +1,10 @@
|
|
|
1
|
-
|
|
1
|
+
/**
|
|
2
|
+
* This file is managed by Lisa.
|
|
3
|
+
* Do not edit directly — changes will be overwritten on the next `lisa` run.
|
|
4
|
+
*/
|
|
5
|
+
|
|
2
6
|
import { check, group, sleep } from "k6";
|
|
7
|
+
import http from "k6/http";
|
|
3
8
|
import { Rate } from "k6/metrics";
|
|
4
9
|
|
|
5
10
|
// Custom metrics
|
|
@@ -15,7 +20,6 @@ export const options = {
|
|
|
15
20
|
thresholds: {
|
|
16
21
|
http_req_failed: ["rate<0.05"], // http errors should be less than 5%
|
|
17
22
|
http_req_duration: ["p(95)<500"], // 95% of requests should be below 500ms
|
|
18
|
-
http_req_duration: ["p(99)<1000"], // 99% of requests should be below 1s
|
|
19
23
|
errors: ["rate<0.05"], // custom errors should be less than 5%
|
|
20
24
|
api_errors: ["rate<0.02"], // API errors should be less than 2%
|
|
21
25
|
},
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
# This file is managed by Lisa.
|
|
2
|
+
# Do not edit directly — changes will be overwritten on the next `lisa` run.
|
|
3
|
+
|
|
4
|
+
name: 🔍 CI Quality Checks
|
|
5
|
+
|
|
6
|
+
on:
|
|
7
|
+
pull_request:
|
|
8
|
+
workflow_dispatch:
|
|
9
|
+
|
|
10
|
+
jobs:
|
|
11
|
+
quality:
|
|
12
|
+
name: 🔍 Quality Checks
|
|
13
|
+
# Reference to the quality checks workflow
|
|
14
|
+
uses: ./.github/workflows/quality.yml
|
|
15
|
+
with:
|
|
16
|
+
node_version: '22.21.1'
|
|
17
|
+
package_manager: 'bun'
|
|
18
|
+
skip_jobs: 'test,test:integration,test:e2e'
|
|
19
|
+
secrets: inherit
|
|
20
|
+
|
|
21
|
+
create_issue_on_failure:
|
|
22
|
+
name: 📌 Create Issue on Failure
|
|
23
|
+
needs: [quality]
|
|
24
|
+
if: ${{ always() && (needs.quality.result == 'failure' || needs.quality.result == 'failure') && !contains(github.event.head_commit.message, '[skip ci]') }}
|
|
25
|
+
uses: ./.github/workflows/create-issue-on-failure.yml
|
|
26
|
+
with:
|
|
27
|
+
workflow_name: 'CI Quality Checks'
|
|
28
|
+
failed_job: ${{ needs.quality.result == 'failure' && 'quality' || 'playwright' }}
|
|
29
|
+
secrets: inherit
|