@codyswann/lisa 2.122.0 → 2.123.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/configs/eslint/expo.d.ts +10 -1
- package/dist/configs/eslint/expo.d.ts.map +1 -1
- package/dist/configs/eslint/expo.js +19 -18
- package/dist/configs/eslint/expo.js.map +1 -1
- package/dist/configs/jest/expo.d.ts +10 -1
- package/dist/configs/jest/expo.d.ts.map +1 -1
- package/dist/configs/jest/expo.js +18 -13
- package/dist/configs/jest/expo.js.map +1 -1
- package/expo/copy-overwrite/eslint.config.ts +6 -0
- package/expo/copy-overwrite/jest.config.ts +10 -0
- package/expo/copy-overwrite/knip.json +24 -2
- package/expo/create-only/jest.config.react-native-mock.js +22 -0
- package/expo/package-lisa/package.lisa.json +37 -36
- package/package.json +1 -1
- package/plugins/lisa/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa/.codex-plugin/plugin.json +1 -1
- package/plugins/lisa-agy/plugin.json +1 -1
- package/plugins/lisa-cdk/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-cdk/.codex-plugin/plugin.json +1 -1
- package/plugins/lisa-cdk-agy/plugin.json +1 -1
- package/plugins/lisa-cdk-copilot/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-cdk-cursor/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-copilot/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-cursor/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-expo/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-expo/.codex-plugin/plugin.json +1 -1
- package/plugins/lisa-expo/skills/directory-structure/SKILL.md +32 -20
- package/plugins/lisa-expo/skills/directory-structure/scripts/validate_structure.py +15 -6
- package/plugins/lisa-expo-agy/plugin.json +1 -1
- package/plugins/lisa-expo-agy/skills/directory-structure/SKILL.md +32 -20
- package/plugins/lisa-expo-agy/skills/directory-structure/scripts/validate_structure.py +15 -6
- package/plugins/lisa-expo-copilot/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-expo-copilot/skills/directory-structure/SKILL.md +32 -20
- package/plugins/lisa-expo-copilot/skills/directory-structure/scripts/validate_structure.py +15 -6
- package/plugins/lisa-expo-cursor/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-expo-cursor/skills/directory-structure/SKILL.md +32 -20
- package/plugins/lisa-expo-cursor/skills/directory-structure/scripts/validate_structure.py +15 -6
- package/plugins/lisa-harper-fabric/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-harper-fabric/.codex-plugin/plugin.json +1 -1
- package/plugins/lisa-harper-fabric-agy/plugin.json +1 -1
- package/plugins/lisa-harper-fabric-copilot/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-harper-fabric-cursor/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-nestjs/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-nestjs/.codex-plugin/plugin.json +1 -1
- package/plugins/lisa-nestjs-agy/plugin.json +1 -1
- package/plugins/lisa-nestjs-copilot/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-nestjs-cursor/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-openclaw/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-openclaw/.codex-plugin/plugin.json +1 -1
- package/plugins/lisa-openclaw-agy/plugin.json +1 -1
- package/plugins/lisa-openclaw-copilot/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-openclaw-cursor/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-rails/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-rails/.codex-plugin/plugin.json +1 -1
- package/plugins/lisa-rails-agy/plugin.json +1 -1
- package/plugins/lisa-rails-copilot/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-rails-cursor/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-typescript/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-typescript/.codex-plugin/plugin.json +1 -1
- package/plugins/lisa-typescript-agy/plugin.json +1 -1
- package/plugins/lisa-typescript-copilot/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-typescript-cursor/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-wiki/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-wiki/.codex-plugin/plugin.json +1 -1
- package/plugins/lisa-wiki-agy/plugin.json +1 -1
- package/plugins/lisa-wiki-copilot/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-wiki-cursor/.claude-plugin/plugin.json +1 -1
- package/plugins/src/expo/skills/directory-structure/SKILL.md +32 -20
- package/plugins/src/expo/skills/directory-structure/scripts/validate_structure.py +15 -6
- package/typescript/copy-overwrite/.prettierignore +1 -0
- package/typescript/copy-overwrite/eslint.ignore.config.json +2 -0
|
@@ -6,11 +6,20 @@ export { defaultIgnores, defaultThresholds, getBaseConfigs, getBaseLanguageOptio
|
|
|
6
6
|
* @param {string} options.tsconfigRootDir - Root directory for tsconfig.json
|
|
7
7
|
* @param {string[]} [options.ignorePatterns] - Patterns to ignore
|
|
8
8
|
* @param {object} [options.thresholds] - Threshold overrides
|
|
9
|
+
* @param {string} [options.sourceRoot] - Prefix for source-relative file globs (e.g. `"src/"` for the SDK 55+/56 `/src` convention; defaults to `""`)
|
|
9
10
|
* @returns {import("eslint").Linter.Config[]} ESLint flat config array
|
|
10
11
|
*/
|
|
11
|
-
export declare function getExpoConfig({ tsconfigRootDir, ignorePatterns, thresholds, }: {
|
|
12
|
+
export declare function getExpoConfig({ tsconfigRootDir, ignorePatterns, thresholds, sourceRoot, }: {
|
|
12
13
|
tsconfigRootDir: string;
|
|
13
14
|
ignorePatterns?: string[];
|
|
14
15
|
thresholds?: typeof defaultThresholds;
|
|
16
|
+
/**
|
|
17
|
+
* Prefix applied to source-relative file globs (component-structure,
|
|
18
|
+
* ui-standards, view-memo overrides). Defaults to `""` (source at the project
|
|
19
|
+
* root). Set to `"src/"` for projects adopting the Expo SDK 55+/56 `/src`
|
|
20
|
+
* directory convention so these overrides target `src/components`,
|
|
21
|
+
* `src/features`, etc. Globs anchored with a leading globstar are unaffected.
|
|
22
|
+
*/
|
|
23
|
+
sourceRoot?: string;
|
|
15
24
|
}): import("eslint").Linter.Config[];
|
|
16
25
|
//# sourceMappingURL=expo.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"expo.d.ts","sourceRoot":"","sources":["../../../src/configs/eslint/expo.ts"],"names":[],"mappings":"AAsBA,OAAO,EAEL,cAAc,EACd,iBAAiB,EACjB,cAAc,EACd,sBAAsB,EAGtB,cAAc,EAIf,MAAM,iBAAiB,CAAC;AAGzB,OAAO,EACL,cAAc,EACd,iBAAiB,EACjB,cAAc,EACd,sBAAsB,EACtB,cAAc,GACf,CAAC;AAwBF
|
|
1
|
+
{"version":3,"file":"expo.d.ts","sourceRoot":"","sources":["../../../src/configs/eslint/expo.ts"],"names":[],"mappings":"AAsBA,OAAO,EAEL,cAAc,EACd,iBAAiB,EACjB,cAAc,EACd,sBAAsB,EAGtB,cAAc,EAIf,MAAM,iBAAiB,CAAC;AAGzB,OAAO,EACL,cAAc,EACd,iBAAiB,EACjB,cAAc,EACd,sBAAsB,EACtB,cAAc,GACf,CAAC;AAwBF;;;;;;;;GAQG;AACH,wBAAgB,aAAa,CAAC,EAC5B,eAAe,EACf,cAA+B,EAC/B,UAA8B,EAC9B,UAAe,GAChB,EAAE;IACD,eAAe,EAAE,MAAM,CAAC;IACxB,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B,UAAU,CAAC,EAAE,OAAO,iBAAiB,CAAC;IACtC;;;;;;OAMG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,GAAG,OAAO,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,CAmQnC"}
|
|
@@ -38,9 +38,10 @@ const tailwind = require("eslint-plugin-tailwindcss");
|
|
|
38
38
|
* @param {string} options.tsconfigRootDir - Root directory for tsconfig.json
|
|
39
39
|
* @param {string[]} [options.ignorePatterns] - Patterns to ignore
|
|
40
40
|
* @param {object} [options.thresholds] - Threshold overrides
|
|
41
|
+
* @param {string} [options.sourceRoot] - Prefix for source-relative file globs (e.g. `"src/"` for the SDK 55+/56 `/src` convention; defaults to `""`)
|
|
41
42
|
* @returns {import("eslint").Linter.Config[]} ESLint flat config array
|
|
42
43
|
*/
|
|
43
|
-
export function getExpoConfig({ tsconfigRootDir, ignorePatterns = defaultIgnores, thresholds = defaultThresholds, }) {
|
|
44
|
+
export function getExpoConfig({ tsconfigRootDir, ignorePatterns = defaultIgnores, thresholds = defaultThresholds, sourceRoot = "", }) {
|
|
44
45
|
return [
|
|
45
46
|
// Global ignores
|
|
46
47
|
{
|
|
@@ -157,10 +158,10 @@ export function getExpoConfig({ tsconfigRootDir, ignorePatterns = defaultIgnores
|
|
|
157
158
|
// UI components
|
|
158
159
|
{
|
|
159
160
|
files: [
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
161
|
+
`${sourceRoot}components/ui/**/*.tsx`,
|
|
162
|
+
`${sourceRoot}components/ui/**/*.jsx`,
|
|
163
|
+
`${sourceRoot}components/custom/ui/**/*.tsx`,
|
|
164
|
+
`${sourceRoot}components/custom/ui/**/*.jsx`,
|
|
164
165
|
],
|
|
165
166
|
rules: {
|
|
166
167
|
"ui-standards/no-classname-outside-ui": "off",
|
|
@@ -198,20 +199,20 @@ export function getExpoConfig({ tsconfigRootDir, ignorePatterns = defaultIgnores
|
|
|
198
199
|
// Component structure rules
|
|
199
200
|
{
|
|
200
201
|
files: [
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
202
|
+
`${sourceRoot}features/**/components/**/*.ts`,
|
|
203
|
+
`${sourceRoot}features/**/components/**/*.tsx`,
|
|
204
|
+
`${sourceRoot}features/**/components/**/*.jsx`,
|
|
205
|
+
`${sourceRoot}features/**/screens/**/*.ts`,
|
|
206
|
+
`${sourceRoot}features/**/screens/**/*.tsx`,
|
|
207
|
+
`${sourceRoot}features/**/screens/**/*.jsx`,
|
|
208
|
+
`${sourceRoot}components/**/*.ts`,
|
|
209
|
+
`${sourceRoot}components/**/*.tsx`,
|
|
210
|
+
`${sourceRoot}components/**/*.jsx`,
|
|
210
211
|
],
|
|
211
212
|
ignores: [
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
213
|
+
`${sourceRoot}components/ui/**`,
|
|
214
|
+
`${sourceRoot}components/shared/**`,
|
|
215
|
+
`${sourceRoot}components/icons/**`,
|
|
215
216
|
],
|
|
216
217
|
rules: {
|
|
217
218
|
"component-structure/enforce-component-structure": "error",
|
|
@@ -228,7 +229,7 @@ export function getExpoConfig({ tsconfigRootDir, ignorePatterns = defaultIgnores
|
|
|
228
229
|
// View memo requirement (excluding UI components)
|
|
229
230
|
{
|
|
230
231
|
files: ["**/*View.tsx", "**/*View.jsx"],
|
|
231
|
-
ignores: [
|
|
232
|
+
ignores: [`${sourceRoot}components/ui/**`],
|
|
232
233
|
rules: {
|
|
233
234
|
"component-structure/require-memo-in-view": "error",
|
|
234
235
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"expo.js","sourceRoot":"","sources":["../../../src/configs/eslint/expo.ts"],"names":[],"mappings":"AAAA,+EAA+E;AAC/E;;;;;;;;;;;;;GAaG;AACH,OAAO,MAAM,MAAM,sBAAsB,CAAC;AAC1C,OAAO,KAAK,MAAM,qBAAqB,CAAC;AACxC,OAAO,aAAa,MAAM,8BAA8B,CAAC;AACzD,OAAO,EAAE,aAAa,EAAE,MAAM,QAAQ,CAAC;AACvC,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AAEpC,yCAAyC;AACzC,OAAO,EACL,gBAAgB,EAChB,cAAc,EACd,iBAAiB,EACjB,cAAc,EACd,sBAAsB,EACtB,kBAAkB,EAClB,sBAAsB,EACtB,cAAc,EACd,oBAAoB,EACpB,kBAAkB,EAClB,sBAAsB,GACvB,MAAM,iBAAiB,CAAC;AAEzB,mCAAmC;AACnC,OAAO,EACL,cAAc,EACd,iBAAiB,EACjB,cAAc,EACd,sBAAsB,EACtB,cAAc,GACf,CAAC;AAEF,+EAA+E;AAC/E,kFAAkF;AAClF,uFAAuF;AACvF,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC/C,MAAM,kBAAkB,GAAG,OAAO,CAChC,aAAa,CACX,IAAI,GAAG,CACL,qDAAqD,EACrD,MAAM,CAAC,IAAI,CAAC,GAAG,CAChB,CACF,CACF,CAAC;AACF,MAAM,WAAW,GAAG,OAAO,CACzB,aAAa,CACX,IAAI,GAAG,CAAC,8CAA8C,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CACzE,CACF,CAAC;AACF,MAAM,UAAU,GAAG,OAAO,CAAC,yBAAyB,CAAC,CAAC;AACtD,MAAM,SAAS,GAAG,OAAO,CAAC,0BAA0B,CAAC,CAAC;AACtD,MAAM,OAAO,GAAG,OAAO,CAAC,wBAAwB,CAAC,CAAC;AAClD,MAAM,QAAQ,GAAG,OAAO,CAAC,2BAA2B,CAAC,CAAC;AAEtD
|
|
1
|
+
{"version":3,"file":"expo.js","sourceRoot":"","sources":["../../../src/configs/eslint/expo.ts"],"names":[],"mappings":"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"}
|
|
@@ -40,15 +40,24 @@ export { defaultCoverageExclusions, defaultThresholds, mergeConfigs, mergeThresh
|
|
|
40
40
|
interface ExpoJestOptions {
|
|
41
41
|
/** Coverage thresholds (merged defaults + project overrides) */
|
|
42
42
|
readonly thresholds?: Config["coverageThreshold"];
|
|
43
|
+
/**
|
|
44
|
+
* Prefix applied to the positive `collectCoverageFrom` globs. Defaults to
|
|
45
|
+
* `""` (source at the project root). Set to `"src/"` for projects that adopt
|
|
46
|
+
* the Expo SDK 55+/56 `/src` directory convention so coverage is collected
|
|
47
|
+
* from `src/components`, `src/features`, etc. The negative (exclusion) globs
|
|
48
|
+
* are anchored with a leading globstar and are unaffected by this prefix.
|
|
49
|
+
*/
|
|
50
|
+
readonly sourceRoot?: string;
|
|
43
51
|
}
|
|
44
52
|
/**
|
|
45
53
|
* Creates a Jest configuration for Expo/React Native projects.
|
|
46
54
|
* @param options - Configuration options for threshold overrides
|
|
47
55
|
* @param options.thresholds - Coverage thresholds (merged defaults + project overrides)
|
|
56
|
+
* @param options.sourceRoot - Prefix for coverage globs (e.g. `"src/"` for the SDK 55+/56 `/src` convention; defaults to `""`)
|
|
48
57
|
* @returns Jest config object with jsdom environment, babel-jest transform, and React Native resolver
|
|
49
58
|
* @remarks Avoids `jest-expo` preset to prevent jsdom + `react-native/jest/setup.js`
|
|
50
59
|
* incompatibility. Manually configures haste, resolver, and transform to match the
|
|
51
60
|
* preset's behavior without the problematic window redefinition.
|
|
52
61
|
*/
|
|
53
|
-
export declare const getExpoJestConfig: ({ thresholds, }?: ExpoJestOptions) => Config;
|
|
62
|
+
export declare const getExpoJestConfig: ({ thresholds, sourceRoot, }?: ExpoJestOptions) => Config;
|
|
54
63
|
//# sourceMappingURL=expo.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"expo.d.ts","sourceRoot":"","sources":["../../../src/configs/jest/expo.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AACH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AAEnC,OAAO,EACL,yBAAyB,EACzB,iBAAiB,EACjB,YAAY,EACZ,eAAe,EACf,8BAA8B,EAC/B,MAAM,WAAW,CAAC;AAGnB,OAAO,EACL,yBAAyB,EACzB,iBAAiB,EACjB,YAAY,EACZ,eAAe,EACf,8BAA8B,GAC/B,CAAC;AAEF;;GAEG;AACH,UAAU,eAAe;IACvB,gEAAgE;IAChE,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC,mBAAmB,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"expo.d.ts","sourceRoot":"","sources":["../../../src/configs/jest/expo.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AACH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AAEnC,OAAO,EACL,yBAAyB,EACzB,iBAAiB,EACjB,YAAY,EACZ,eAAe,EACf,8BAA8B,EAC/B,MAAM,WAAW,CAAC;AAGnB,OAAO,EACL,yBAAyB,EACzB,iBAAiB,EACjB,YAAY,EACZ,eAAe,EACf,8BAA8B,GAC/B,CAAC;AAEF;;GAEG;AACH,UAAU,eAAe;IACvB,gEAAgE;IAChE,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC,mBAAmB,CAAC,CAAC;IAClD;;;;;;OAMG;IACH,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;CAC9B;AAED;;;;;;;;;GASG;AACH,eAAO,MAAM,iBAAiB,GAAI,8BAG/B,eAAoB,KAAG,MAuDxB,CAAC"}
|
|
@@ -5,18 +5,23 @@ export { defaultCoverageExclusions, defaultThresholds, mergeConfigs, mergeThresh
|
|
|
5
5
|
* Creates a Jest configuration for Expo/React Native projects.
|
|
6
6
|
* @param options - Configuration options for threshold overrides
|
|
7
7
|
* @param options.thresholds - Coverage thresholds (merged defaults + project overrides)
|
|
8
|
+
* @param options.sourceRoot - Prefix for coverage globs (e.g. `"src/"` for the SDK 55+/56 `/src` convention; defaults to `""`)
|
|
8
9
|
* @returns Jest config object with jsdom environment, babel-jest transform, and React Native resolver
|
|
9
10
|
* @remarks Avoids `jest-expo` preset to prevent jsdom + `react-native/jest/setup.js`
|
|
10
11
|
* incompatibility. Manually configures haste, resolver, and transform to match the
|
|
11
12
|
* preset's behavior without the problematic window redefinition.
|
|
12
13
|
*/
|
|
13
|
-
export const getExpoJestConfig = ({ thresholds = defaultThresholds, } = {}) => ({
|
|
14
|
+
export const getExpoJestConfig = ({ thresholds = defaultThresholds, sourceRoot = "", } = {}) => ({
|
|
14
15
|
testEnvironment: "jsdom",
|
|
15
16
|
haste: {
|
|
16
17
|
defaultPlatform: "ios",
|
|
17
18
|
platforms: ["android", "ios", "native"],
|
|
18
19
|
},
|
|
19
|
-
|
|
20
|
+
// SDK 56 / RN 0.85 relocated the React Native Jest resolver out of
|
|
21
|
+
// `react-native/jest/resolver.js` and into `@react-native/jest-preset`.
|
|
22
|
+
// This resolver is what teaches Jest to resolve platform-extension files
|
|
23
|
+
// (`.ios`/`.native`/`.web`); without it those variants do not resolve.
|
|
24
|
+
resolver: "@react-native/jest-preset/jest/resolver.js",
|
|
20
25
|
setupFiles: ["<rootDir>/jest.setup.pre.js"],
|
|
21
26
|
setupFilesAfterEnv: ["<rootDir>/jest.setup.ts"],
|
|
22
27
|
transform: {
|
|
@@ -44,17 +49,17 @@ export const getExpoJestConfig = ({ thresholds = defaultThresholds, } = {}) => (
|
|
|
44
49
|
],
|
|
45
50
|
moduleFileExtensions: ["ts", "tsx", "js", "jsx", "json", "node"],
|
|
46
51
|
collectCoverageFrom: [
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
52
|
+
`${sourceRoot}components/**/*.{ts,tsx}`,
|
|
53
|
+
`${sourceRoot}config/**/*.{ts,tsx}`,
|
|
54
|
+
`${sourceRoot}constants/**/*.{ts,tsx}`,
|
|
55
|
+
`${sourceRoot}features/**/*.{ts,tsx}`,
|
|
56
|
+
`${sourceRoot}hooks/**/*.{ts,tsx}`,
|
|
57
|
+
`${sourceRoot}lib/**/*.{ts,tsx}`,
|
|
58
|
+
`${sourceRoot}providers/**/*.{ts,tsx}`,
|
|
59
|
+
`${sourceRoot}shared/**/*.{ts,tsx}`,
|
|
60
|
+
`${sourceRoot}stores/**/*.{ts,tsx}`,
|
|
61
|
+
`${sourceRoot}types/**/*.{ts,tsx}`,
|
|
62
|
+
`${sourceRoot}utils/**/*.{ts,tsx}`,
|
|
58
63
|
"!**/*View.{ts,tsx}",
|
|
59
64
|
...defaultCoverageExclusions,
|
|
60
65
|
],
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"expo.js","sourceRoot":"","sources":["../../../src/configs/jest/expo.ts"],"names":[],"mappings":"AAmCA,OAAO,EACL,yBAAyB,EACzB,iBAAiB,EACjB,YAAY,EACZ,eAAe,EACf,8BAA8B,GAC/B,MAAM,WAAW,CAAC;AAEnB,mDAAmD;AACnD,OAAO,EACL,yBAAyB,EACzB,iBAAiB,EACjB,YAAY,EACZ,eAAe,EACf,8BAA8B,GAC/B,CAAC;
|
|
1
|
+
{"version":3,"file":"expo.js","sourceRoot":"","sources":["../../../src/configs/jest/expo.ts"],"names":[],"mappings":"AAmCA,OAAO,EACL,yBAAyB,EACzB,iBAAiB,EACjB,YAAY,EACZ,eAAe,EACf,8BAA8B,GAC/B,MAAM,WAAW,CAAC;AAEnB,mDAAmD;AACnD,OAAO,EACL,yBAAyB,EACzB,iBAAiB,EACjB,YAAY,EACZ,eAAe,EACf,8BAA8B,GAC/B,CAAC;AAkBF;;;;;;;;;GASG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,EAChC,UAAU,GAAG,iBAAiB,EAC9B,UAAU,GAAG,EAAE,MACI,EAAE,EAAU,EAAE,CAAC,CAAC;IACnC,eAAe,EAAE,OAAO;IACxB,KAAK,EAAE;QACL,eAAe,EAAE,KAAK;QACtB,SAAS,EAAE,CAAC,SAAS,EAAE,KAAK,EAAE,QAAQ,CAAC;KACxC;IACD,mEAAmE;IACnE,wEAAwE;IACxE,yEAAyE;IACzE,uEAAuE;IACvE,QAAQ,EAAE,4CAA4C;IACtD,UAAU,EAAE,CAAC,6BAA6B,CAAC;IAC3C,kBAAkB,EAAE,CAAC,yBAAyB,CAAC;IAC/C,SAAS,EAAE;QACT,aAAa,EAAE;YACb,YAAY;YACZ;gBACE,MAAM,EAAE;oBACN,IAAI,EAAE,OAAO;oBACb,OAAO,EAAE,OAAO;oBAChB,QAAQ,EAAE,KAAK;iBAChB;aACF;SACF;QACD,mEAAmE,EACjE,8CAA8C;KACjD;IACD,SAAS,EAAE,CAAC,wBAAwB,EAAE,yBAAyB,CAAC;IAChE,sBAAsB,EAAE;QACtB,gBAAgB;QAChB,QAAQ;QACR,SAAS;QACT,GAAG,8BAA8B,EAAE;KACpC;IACD,uBAAuB,EAAE;QACvB,0WAA0W;KAC3W;IACD,oBAAoB,EAAE,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC;IAChE,mBAAmB,EAAE;QACnB,GAAG,UAAU,0BAA0B;QACvC,GAAG,UAAU,sBAAsB;QACnC,GAAG,UAAU,yBAAyB;QACtC,GAAG,UAAU,wBAAwB;QACrC,GAAG,UAAU,qBAAqB;QAClC,GAAG,UAAU,mBAAmB;QAChC,GAAG,UAAU,yBAAyB;QACtC,GAAG,UAAU,sBAAsB;QACnC,GAAG,UAAU,sBAAsB;QACnC,GAAG,UAAU,qBAAqB;QAClC,GAAG,UAAU,qBAAqB;QAClC,oBAAoB;QACpB,GAAG,yBAAyB;KAC7B;IACD,GAAG,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,iBAAiB,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IACtE,WAAW,EAAE,KAAK;CACnB,CAAC,CAAC"}
|
|
@@ -12,6 +12,7 @@
|
|
|
12
12
|
* @see https://eslint.org/docs/latest/use/configure/configuration-files-new
|
|
13
13
|
* @module eslint.config
|
|
14
14
|
*/
|
|
15
|
+
import { existsSync } from "fs";
|
|
15
16
|
import path from "path";
|
|
16
17
|
import { fileURLToPath } from "url";
|
|
17
18
|
|
|
@@ -28,11 +29,16 @@ import localConfig from "./eslint.config.local";
|
|
|
28
29
|
const __filename = fileURLToPath(import.meta.url);
|
|
29
30
|
const __dirname = path.dirname(__filename);
|
|
30
31
|
|
|
32
|
+
// Auto-detect the Expo SDK 55+/56 `/src` convention so the component-structure,
|
|
33
|
+
// ui-standards, and view-memo overrides target `src/...` instead of the root.
|
|
34
|
+
const sourceRoot = existsSync(path.join(__dirname, "src", "app")) ? "src/" : "";
|
|
35
|
+
|
|
31
36
|
export default [
|
|
32
37
|
...getExpoConfig({
|
|
33
38
|
tsconfigRootDir: __dirname,
|
|
34
39
|
ignorePatterns: ignoreConfig.ignores || defaultIgnores,
|
|
35
40
|
thresholds: { ...defaultThresholds, ...thresholdsConfig },
|
|
41
|
+
sourceRoot,
|
|
36
42
|
}),
|
|
37
43
|
...localConfig,
|
|
38
44
|
];
|
|
@@ -14,6 +14,9 @@
|
|
|
14
14
|
* @see https://jestjs.io/docs/configuration
|
|
15
15
|
* @module jest.config
|
|
16
16
|
*/
|
|
17
|
+
import { existsSync } from "node:fs";
|
|
18
|
+
import { join } from "node:path";
|
|
19
|
+
|
|
17
20
|
import {
|
|
18
21
|
defaultThresholds,
|
|
19
22
|
getExpoJestConfig,
|
|
@@ -24,9 +27,16 @@ import {
|
|
|
24
27
|
import localConfig from "./jest.config.local.ts";
|
|
25
28
|
import thresholdsOverrides from "./jest.thresholds.json" with { type: "json" };
|
|
26
29
|
|
|
30
|
+
// Auto-detect the Expo SDK 55+/56 `/src` convention. When source lives under
|
|
31
|
+
// `src/`, pass `sourceRoot: "src/"` so the factory anchors `collectCoverageFrom`
|
|
32
|
+
// at `src/...` in a single correctly-ordered array — avoiding the glob-ordering
|
|
33
|
+
// trap that arises if a project instead re-anchors coverage via a local override.
|
|
34
|
+
const sourceRoot = existsSync(join(process.cwd(), "src", "app")) ? "src/" : "";
|
|
35
|
+
|
|
27
36
|
export default mergeConfigs(
|
|
28
37
|
getExpoJestConfig({
|
|
29
38
|
thresholds: mergeThresholds(defaultThresholds, thresholdsOverrides),
|
|
39
|
+
sourceRoot,
|
|
30
40
|
}),
|
|
31
41
|
localConfig
|
|
32
42
|
);
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "https://unpkg.com/knip@5/schema.json",
|
|
3
3
|
"entry": [
|
|
4
|
+
"index.tsx",
|
|
4
5
|
"app/**/*.{ts,tsx}",
|
|
5
6
|
"components/**/*.{ts,tsx}",
|
|
6
7
|
"features/**/*.{ts,tsx}",
|
|
@@ -10,9 +11,20 @@
|
|
|
10
11
|
"providers/**/*.{ts,tsx}",
|
|
11
12
|
"constants/**/*.{ts,tsx}",
|
|
12
13
|
"types/**/*.{ts,tsx}",
|
|
13
|
-
"config/**/*.{ts,tsx}"
|
|
14
|
+
"config/**/*.{ts,tsx}",
|
|
15
|
+
"src/app/**/*.{ts,tsx}",
|
|
16
|
+
"src/components/**/*.{ts,tsx}",
|
|
17
|
+
"src/features/**/*.{ts,tsx}",
|
|
18
|
+
"src/hooks/**/*.{ts,tsx}",
|
|
19
|
+
"src/utils/**/*.{ts,tsx}",
|
|
20
|
+
"src/stores/**/*.{ts,tsx}",
|
|
21
|
+
"src/providers/**/*.{ts,tsx}",
|
|
22
|
+
"src/constants/**/*.{ts,tsx}",
|
|
23
|
+
"src/types/**/*.{ts,tsx}",
|
|
24
|
+
"src/config/**/*.{ts,tsx}"
|
|
14
25
|
],
|
|
15
26
|
"project": [
|
|
27
|
+
"index.tsx",
|
|
16
28
|
"app/**/*.{ts,tsx}",
|
|
17
29
|
"components/**/*.{ts,tsx}",
|
|
18
30
|
"features/**/*.{ts,tsx}",
|
|
@@ -22,7 +34,17 @@
|
|
|
22
34
|
"providers/**/*.{ts,tsx}",
|
|
23
35
|
"constants/**/*.{ts,tsx}",
|
|
24
36
|
"types/**/*.{ts,tsx}",
|
|
25
|
-
"config/**/*.{ts,tsx}"
|
|
37
|
+
"config/**/*.{ts,tsx}",
|
|
38
|
+
"src/app/**/*.{ts,tsx}",
|
|
39
|
+
"src/components/**/*.{ts,tsx}",
|
|
40
|
+
"src/features/**/*.{ts,tsx}",
|
|
41
|
+
"src/hooks/**/*.{ts,tsx}",
|
|
42
|
+
"src/utils/**/*.{ts,tsx}",
|
|
43
|
+
"src/stores/**/*.{ts,tsx}",
|
|
44
|
+
"src/providers/**/*.{ts,tsx}",
|
|
45
|
+
"src/constants/**/*.{ts,tsx}",
|
|
46
|
+
"src/types/**/*.{ts,tsx}",
|
|
47
|
+
"src/config/**/*.{ts,tsx}"
|
|
26
48
|
],
|
|
27
49
|
"ignore": [
|
|
28
50
|
"**/*.test.ts",
|
|
@@ -77,6 +77,28 @@ module.exports = {
|
|
|
77
77
|
addListener: () => ({ remove: () => {} }),
|
|
78
78
|
removeListeners: () => {},
|
|
79
79
|
},
|
|
80
|
+
// SDK 56 / RN 0.85: AccessibilityInfo eagerly reads the AccessibilityManager
|
|
81
|
+
// TurboModule. Without a mock the module resolves to null and AccessibilityInfo
|
|
82
|
+
// methods reject with "NativeAccessibilityManagerIOS is not available", which
|
|
83
|
+
// the unhandledRejection handler escalates into a Jest worker crash that takes
|
|
84
|
+
// down every suite touching accessibility.
|
|
85
|
+
AccessibilityManager: {
|
|
86
|
+
getCurrentBoldTextState: onSuccess => onSuccess(false),
|
|
87
|
+
getCurrentGrayscaleState: onSuccess => onSuccess(false),
|
|
88
|
+
getCurrentInvertColorsState: onSuccess => onSuccess(false),
|
|
89
|
+
getCurrentReduceMotionState: onSuccess => onSuccess(false),
|
|
90
|
+
getCurrentDarkerSystemColorsState: onSuccess => onSuccess(false),
|
|
91
|
+
getCurrentPrefersCrossFadeTransitionsState: onSuccess => onSuccess(false),
|
|
92
|
+
getCurrentReduceTransparencyState: onSuccess => onSuccess(false),
|
|
93
|
+
getCurrentVoiceOverState: onSuccess => onSuccess(false),
|
|
94
|
+
setAccessibilityContentSizeMultipliers: () => {},
|
|
95
|
+
setAccessibilityFocus: () => {},
|
|
96
|
+
announceForAccessibility: () => {},
|
|
97
|
+
announceForAccessibilityWithOptions: () => {},
|
|
98
|
+
addListener: () => {},
|
|
99
|
+
removeListeners: () => {},
|
|
100
|
+
getConstants: () => ({}),
|
|
101
|
+
},
|
|
80
102
|
DeviceInfo: {
|
|
81
103
|
getConstants: () => ({
|
|
82
104
|
Dimensions: {
|
|
@@ -41,9 +41,9 @@
|
|
|
41
41
|
"eas:deploy:dev": "eas build --profile dev --non-interactive",
|
|
42
42
|
"eas:deploy:staging": "eas build --profile staging --non-interactive",
|
|
43
43
|
"eas:deploy:production": "eas build --profile production --non-interactive",
|
|
44
|
-
"eas:publish:dev": "eas update --channel dev --non-interactive",
|
|
45
|
-
"eas:publish:staging": "eas update --channel staging --non-interactive",
|
|
46
|
-
"eas:publish:production": "eas update --channel production --non-interactive",
|
|
44
|
+
"eas:publish:dev": "eas update --channel dev --environment development --non-interactive",
|
|
45
|
+
"eas:publish:staging": "eas update --channel staging --environment preview --non-interactive",
|
|
46
|
+
"eas:publish:production": "eas update --channel production --environment production --non-interactive",
|
|
47
47
|
"security:zap": "bash scripts/zap-baseline.sh",
|
|
48
48
|
"test": "NODE_ENV=test jest --passWithNoTests",
|
|
49
49
|
"test:unit": "NODE_ENV=test jest --testPathIgnorePatterns=\"\\.integration[.\\\\-](test|spec)\\.(ts|tsx)$\" --passWithNoTests",
|
|
@@ -66,49 +66,49 @@
|
|
|
66
66
|
"@react-native-masked-view/masked-view": "^0.3.2",
|
|
67
67
|
"@react-navigation/drawer": "^7.5.0",
|
|
68
68
|
"@react-navigation/elements": "^1.3.31",
|
|
69
|
-
"@sentry/react-native": "7.
|
|
69
|
+
"@sentry/react-native": "~7.11.0",
|
|
70
70
|
"@shopify/flash-list": "2.0.2",
|
|
71
|
-
"@shopify/react-native-skia": "2.2
|
|
71
|
+
"@shopify/react-native-skia": "2.6.2",
|
|
72
72
|
"apollo-link-sentry": "^4.0.0",
|
|
73
73
|
"base-64": "^1.0.0",
|
|
74
74
|
"date-fns": "^3.6.0",
|
|
75
75
|
"date-fns-tz": "^3.1.3",
|
|
76
76
|
"events": "^3.3.0",
|
|
77
|
-
"expo": "~
|
|
78
|
-
"expo-application": "~
|
|
79
|
-
"expo-battery": "~
|
|
80
|
-
"expo-build-properties": "~
|
|
81
|
-
"expo-clipboard": "~
|
|
82
|
-
"expo-constants": "~
|
|
83
|
-
"expo-crypto": "
|
|
84
|
-
"expo-dev-client": "~
|
|
85
|
-
"expo-device": "~
|
|
86
|
-
"expo-font": "~
|
|
87
|
-
"expo-linear-gradient": "~
|
|
88
|
-
"expo-linking": "~
|
|
89
|
-
"expo-localization": "
|
|
90
|
-
"expo-network": "~
|
|
91
|
-
"expo-notifications": "~0.
|
|
92
|
-
"expo-router": "~
|
|
93
|
-
"expo-secure-store": "~
|
|
94
|
-
"expo-splash-screen": "~
|
|
95
|
-
"expo-status-bar": "~
|
|
96
|
-
"expo-system-ui": "~
|
|
97
|
-
"expo-updates": "~
|
|
77
|
+
"expo": "~56.0.0",
|
|
78
|
+
"expo-application": "~56.0.3",
|
|
79
|
+
"expo-battery": "~56.0.4",
|
|
80
|
+
"expo-build-properties": "~56.0.15",
|
|
81
|
+
"expo-clipboard": "~56.0.3",
|
|
82
|
+
"expo-constants": "~56.0.16",
|
|
83
|
+
"expo-crypto": "~56.0.4",
|
|
84
|
+
"expo-dev-client": "~56.0.16",
|
|
85
|
+
"expo-device": "~56.0.4",
|
|
86
|
+
"expo-font": "~56.0.5",
|
|
87
|
+
"expo-linear-gradient": "~56.0.4",
|
|
88
|
+
"expo-linking": "~56.0.12",
|
|
89
|
+
"expo-localization": "~56.0.6",
|
|
90
|
+
"expo-network": "~56.0.4",
|
|
91
|
+
"expo-notifications": "~56.0.14",
|
|
92
|
+
"expo-router": "~56.2.7",
|
|
93
|
+
"expo-secure-store": "~56.0.4",
|
|
94
|
+
"expo-splash-screen": "~56.0.10",
|
|
95
|
+
"expo-status-bar": "~56.0.4",
|
|
96
|
+
"expo-system-ui": "~56.0.5",
|
|
97
|
+
"expo-updates": "~56.0.17",
|
|
98
98
|
"graphql": "^16.12.0",
|
|
99
99
|
"i18n-js": "^4.5.1",
|
|
100
100
|
"lucide-react-native": "^0.562.0",
|
|
101
101
|
"nativewind": "^4.2.1",
|
|
102
102
|
"patch-package": "^8.0.0",
|
|
103
|
-
"react": "19.
|
|
104
|
-
"react-dom": "19.
|
|
103
|
+
"react": "19.2.3",
|
|
104
|
+
"react-dom": "19.2.3",
|
|
105
105
|
"react-hook-form": "^7.70.0",
|
|
106
|
-
"react-native": "0.
|
|
107
|
-
"react-native-gesture-handler": "~2.
|
|
108
|
-
"react-native-keyboard-controller": "1.
|
|
109
|
-
"react-native-reanimated": "
|
|
106
|
+
"react-native": "0.85.3",
|
|
107
|
+
"react-native-gesture-handler": "~2.31.1",
|
|
108
|
+
"react-native-keyboard-controller": "1.21.6",
|
|
109
|
+
"react-native-reanimated": "4.3.1",
|
|
110
110
|
"react-native-safe-area-context": "^5.6.2",
|
|
111
|
-
"react-native-screens": "
|
|
111
|
+
"react-native-screens": "4.25.2",
|
|
112
112
|
"react-native-svg": "^15.15.1",
|
|
113
113
|
"react-native-web": "^0.21.2",
|
|
114
114
|
"tailwindcss": "^3.4.7",
|
|
@@ -134,8 +134,8 @@
|
|
|
134
134
|
"@types/base-64": "^1.0.2",
|
|
135
135
|
"@types/eslint-plugin-jsx-a11y": "^6.10.1",
|
|
136
136
|
"@types/eslint-plugin-tailwindcss": "^3.17.0",
|
|
137
|
-
"@types/react": "~19.
|
|
138
|
-
"@types/react-dom": "
|
|
137
|
+
"@types/react": "~19.2.15",
|
|
138
|
+
"@types/react-dom": "~19.2.3",
|
|
139
139
|
"babel-plugin-module-resolver": "^5.0.2",
|
|
140
140
|
"baseline-browser-mapping": "^2.9.2",
|
|
141
141
|
"expo-atlas": "^0.4.0",
|
|
@@ -144,7 +144,8 @@
|
|
|
144
144
|
"@types/jest": "^30.0.0",
|
|
145
145
|
"@jest/test-sequencer": "^30.2.0",
|
|
146
146
|
"jest-environment-jsdom": "^30.2.0",
|
|
147
|
-
"jest-expo": "
|
|
147
|
+
"jest-expo": "~56.0.4",
|
|
148
|
+
"react-test-renderer": "19.2.3",
|
|
148
149
|
"serve": "^14.2.0",
|
|
149
150
|
"eslint-plugin-oxlint": "^1.62.0",
|
|
150
151
|
"oxlint": "^1.62.0",
|
package/package.json
CHANGED
|
@@ -83,7 +83,7 @@
|
|
|
83
83
|
"lodash": ">=4.18.1"
|
|
84
84
|
},
|
|
85
85
|
"name": "@codyswann/lisa",
|
|
86
|
-
"version": "2.
|
|
86
|
+
"version": "2.123.0",
|
|
87
87
|
"description": "Claude Code governance framework that applies guardrails, guidance, and automated enforcement to projects",
|
|
88
88
|
"main": "dist/index.js",
|
|
89
89
|
"exports": {
|