@runa-ai/runa-cli 0.5.42 → 0.5.43
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/commands/ci/machine/actors/db/collect-schema-stats.d.ts +1 -0
- package/dist/commands/ci/machine/actors/db/collect-schema-stats.d.ts.map +1 -1
- package/dist/commands/ci/machine/commands/machine-runner.d.ts.map +1 -1
- package/dist/commands/ci/machine/contract.d.ts +5 -0
- package/dist/commands/ci/machine/contract.d.ts.map +1 -1
- package/dist/commands/ci/machine/guards.d.ts.map +1 -1
- package/dist/commands/ci/machine/helpers.d.ts +2 -1
- package/dist/commands/ci/machine/helpers.d.ts.map +1 -1
- package/dist/commands/ci/machine/machine.d.ts +1 -1
- package/dist/commands/ci/utils/test-parallel.d.ts +4 -0
- package/dist/commands/ci/utils/test-parallel.d.ts.map +1 -1
- package/dist/commands/db/commands/db-sync.d.ts.map +1 -1
- package/dist/commands/db/utils/import-impact-analyzer.d.ts +40 -0
- package/dist/commands/db/utils/import-impact-analyzer.d.ts.map +1 -0
- package/dist/constants/versions.d.ts +1 -1
- package/dist/index.js +242 -45
- package/package.json +2 -2
|
@@ -6,6 +6,7 @@
|
|
|
6
6
|
*
|
|
7
7
|
* All environments use the same DB query logic for consistent comparison:
|
|
8
8
|
* - Local stats: Query local Supabase DB (Docker)
|
|
9
|
+
* Note: Schema files include both declarative/*.sql AND idempotent/*.sql
|
|
9
10
|
* - CI stats: Query CI database (Docker Supabase or Branch DB)
|
|
10
11
|
* - Production stats: Query Production DB (if GH_DATABASE_URL_ADMIN set)
|
|
11
12
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"collect-schema-stats.d.ts","sourceRoot":"","sources":["../../../../../../src/commands/ci/machine/actors/db/collect-schema-stats.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"collect-schema-stats.d.ts","sourceRoot":"","sources":["../../../../../../src/commands/ci/machine/actors/db/collect-schema-stats.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAGH,OAAO,EAEL,KAAK,mBAAmB,EAEzB,MAAM,mBAAmB,CAAC;AAE3B,MAAM,WAAW,uBAAuB;IACtC,2CAA2C;IAC3C,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,qDAAqD;IACrD,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,mEAAmE;IACnE,eAAe,EAAE,OAAO,CAAC;CAC1B;AAED,MAAM,WAAW,wBAAwB;IACvC,iCAAiC;IACjC,WAAW,EAAE,mBAAmB,CAAC;CAClC;AAYD;;;;;;GAMG;AACH,eAAO,MAAM,uBAAuB,qHAoEnC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"machine-runner.d.ts","sourceRoot":"","sources":["../../../../../src/commands/ci/machine/commands/machine-runner.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAS/C,OAAO,EAAE,KAAK,UAAU,EAAuC,MAAM,eAAe,CAAC;AACrF,OAAO,KAAK,EAAa,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAkR7E;;GAEG;AACH,MAAM,MAAM,kBAAkB,GAAG,CAC/B,QAAQ,EAAE,UAAU,EACpB,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,SAAS,KACd,IAAI,CAAC;AAEV;;GAEG;AACH,wBAAsB,YAAY,CAChC,KAAK,EAAE,OAAO,EACd,MAAM,EAAE,SAAS,EACjB,aAAa,CAAC,EAAE,kBAAkB,GACjC,OAAO,CAAC,QAAQ,CAAC,CA2CnB;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,GAAG;IACvE,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,EAAE,CAAC;CACjB,
|
|
1
|
+
{"version":3,"file":"machine-runner.d.ts","sourceRoot":"","sources":["../../../../../src/commands/ci/machine/commands/machine-runner.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAS/C,OAAO,EAAE,KAAK,UAAU,EAAuC,MAAM,eAAe,CAAC;AACrF,OAAO,KAAK,EAAa,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAkR7E;;GAEG;AACH,MAAM,MAAM,kBAAkB,GAAG,CAC/B,QAAQ,EAAE,UAAU,EACpB,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,SAAS,KACd,IAAI,CAAC;AAEV;;GAEG;AACH,wBAAsB,YAAY,CAChC,KAAK,EAAE,OAAO,EACd,MAAM,EAAE,SAAS,EACjB,aAAa,CAAC,EAAE,kBAAkB,GACjC,OAAO,CAAC,QAAQ,CAAC,CA2CnB;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,GAAG;IACvE,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,EAAE,CAAC;CACjB,CAoCA;AAED;;;GAGG;AACH,wBAAsB,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,CAUnE"}
|
|
@@ -59,6 +59,7 @@ export declare const LayerStatusSchema: z.ZodEnum<{
|
|
|
59
59
|
passed: "passed";
|
|
60
60
|
failed: "failed";
|
|
61
61
|
skipped: "skipped";
|
|
62
|
+
killed: "killed";
|
|
62
63
|
}>;
|
|
63
64
|
export type LayerStatus = z.infer<typeof LayerStatusSchema>;
|
|
64
65
|
/**
|
|
@@ -222,6 +223,7 @@ export declare const LayerResultSchema: z.ZodObject<{
|
|
|
222
223
|
passed: "passed";
|
|
223
224
|
failed: "failed";
|
|
224
225
|
skipped: "skipped";
|
|
226
|
+
killed: "killed";
|
|
225
227
|
}>;
|
|
226
228
|
exitCode: z.ZodNumber;
|
|
227
229
|
passed: z.ZodOptional<z.ZodNumber>;
|
|
@@ -242,6 +244,7 @@ export declare const TestRunResultSchema: z.ZodObject<{
|
|
|
242
244
|
passed: "passed";
|
|
243
245
|
failed: "failed";
|
|
244
246
|
skipped: "skipped";
|
|
247
|
+
killed: "killed";
|
|
245
248
|
}>>;
|
|
246
249
|
passedCount: z.ZodNumber;
|
|
247
250
|
failedCount: z.ZodNumber;
|
|
@@ -281,6 +284,7 @@ export declare const LayerSummarySchema: z.ZodObject<{
|
|
|
281
284
|
passed: "passed";
|
|
282
285
|
failed: "failed";
|
|
283
286
|
skipped: "skipped";
|
|
287
|
+
killed: "killed";
|
|
284
288
|
}>;
|
|
285
289
|
exitCode: z.ZodNumber;
|
|
286
290
|
passed: z.ZodOptional<z.ZodNumber>;
|
|
@@ -332,6 +336,7 @@ export declare const CiOutputSchema: z.ZodObject<{
|
|
|
332
336
|
passed: "passed";
|
|
333
337
|
failed: "failed";
|
|
334
338
|
skipped: "skipped";
|
|
339
|
+
killed: "killed";
|
|
335
340
|
}>;
|
|
336
341
|
exitCode: z.ZodNumber;
|
|
337
342
|
passed: z.ZodOptional<z.ZodNumber>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"contract.d.ts","sourceRoot":"","sources":["../../../../src/commands/ci/machine/contract.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAMxB,eAAO,MAAM,YAAY;;;EAAsC,CAAC;AAChE,MAAM,MAAM,MAAM,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,YAAY,CAAC,CAAC;AAElD,eAAO,MAAM,oBAAoB;;;EAAsC,CAAC;AACxE,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAElE,eAAO,MAAM,aAAa;;;EAA0B,CAAC;AACrD,MAAM,MAAM,OAAO,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,aAAa,CAAC,CAAC;AAEpD,eAAO,MAAM,cAAc;;;EAA4B,CAAC;AACxD,MAAM,MAAM,QAAQ,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAC;AAEtD,eAAO,MAAM,cAAc;;;;EAA6C,CAAC;AACzE,MAAM,MAAM,QAAQ,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAC;AAEtD,eAAO,MAAM,gBAAgB;;;;;EAAqD,CAAC;AACnF,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAE1D,eAAO,MAAM,iBAAiB
|
|
1
|
+
{"version":3,"file":"contract.d.ts","sourceRoot":"","sources":["../../../../src/commands/ci/machine/contract.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"guards.d.ts","sourceRoot":"","sources":["../../../../src/commands/ci/machine/guards.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AA+B7D;;GAEG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,SAAS,GAAG,OAAO,CAEzD;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,SAAS,GAAG,OAAO,CAE3D;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,OAAO,EAAE,SAAS,GAAG,OAAO,CAEtD;AAMD;;;;;;GAMG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE;IAClC,OAAO,EAAE,OAAO,GAAG,IAAI,CAAC;IACxB,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC;IAEzB,eAAe,EAAE,OAAO,CAAC;IACzB,kBAAkB,EAAE,OAAO,CAAC;IAC5B,eAAe,EAAE,OAAO,CAAC;IACzB,YAAY,EAAE,OAAO,CAAC;CACvB,GAAG,MAAM,CAUT;AAgDD;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,SAAS,GAAG,OAAO,CAElE;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,SAAS,GAAG,OAAO,CAE3D;AAED;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,SAAS,GAAG,OAAO,CAE9D;AAED;;;;;;GAMG;AACH,wBAAgB,2BAA2B,CAAC,OAAO,EAAE,SAAS,GAAG,OAAO,CAEvE;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,SAAS,GAAG,OAAO,CAGzD;AAED;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,SAAS,GAAG,OAAO,CAMhE;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,SAAS,GAAG,OAAO,CAG9D;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,SAAS,GAAG,OAAO,CAG5D;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,SAAS,GAAG,OAAO,CAOnE;AAMD;;GAEG;AACH,wBAAgB,QAAQ,CAAC,OAAO,EAAE,SAAS,GAAG,OAAO,CAEpD;AAED;;GAEG;AACH,wBAAgB,SAAS,CAAC,OAAO,EAAE,SAAS,GAAG,OAAO,CAErD;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,SAAS,GAAG,OAAO,
|
|
1
|
+
{"version":3,"file":"guards.d.ts","sourceRoot":"","sources":["../../../../src/commands/ci/machine/guards.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AA+B7D;;GAEG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,SAAS,GAAG,OAAO,CAEzD;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,SAAS,GAAG,OAAO,CAE3D;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,OAAO,EAAE,SAAS,GAAG,OAAO,CAEtD;AAMD;;;;;;GAMG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE;IAClC,OAAO,EAAE,OAAO,GAAG,IAAI,CAAC;IACxB,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC;IAEzB,eAAe,EAAE,OAAO,CAAC;IACzB,kBAAkB,EAAE,OAAO,CAAC;IAC5B,eAAe,EAAE,OAAO,CAAC;IACzB,YAAY,EAAE,OAAO,CAAC;CACvB,GAAG,MAAM,CAUT;AAgDD;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,SAAS,GAAG,OAAO,CAElE;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,SAAS,GAAG,OAAO,CAE3D;AAED;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,SAAS,GAAG,OAAO,CAE9D;AAED;;;;;;GAMG;AACH,wBAAgB,2BAA2B,CAAC,OAAO,EAAE,SAAS,GAAG,OAAO,CAEvE;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,SAAS,GAAG,OAAO,CAGzD;AAED;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,SAAS,GAAG,OAAO,CAMhE;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,SAAS,GAAG,OAAO,CAG9D;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,SAAS,GAAG,OAAO,CAG5D;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,SAAS,GAAG,OAAO,CAOnE;AAMD;;GAEG;AACH,wBAAgB,QAAQ,CAAC,OAAO,EAAE,SAAS,GAAG,OAAO,CAEpD;AAED;;GAEG;AACH,wBAAgB,SAAS,CAAC,OAAO,EAAE,SAAS,GAAG,OAAO,CAErD;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,SAAS,GAAG,OAAO,CAS1D;AAMD;;GAEG;AACH,wBAAgB,QAAQ,CAAC,OAAO,EAAE,SAAS,GAAG,OAAO,CAEpD;AAMD;;GAEG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,EAAE,CAoBpD;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CASvD;AAMD;;;;GAIG;AACH,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAEhE;AAMD;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAEvD;AAED;;;;GAIG;AACH,wBAAgB,IAAI,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAE5C"}
|
|
@@ -30,7 +30,7 @@ export declare function getLayersForCorePhase(selectedLayers: number[], mode: st
|
|
|
30
30
|
*/
|
|
31
31
|
export declare function hasE2ELayer(selectedLayers: number[]): boolean;
|
|
32
32
|
/** Layer result status type */
|
|
33
|
-
export type LayerStatus = 'passed' | 'failed' | 'skipped' | 'timeout';
|
|
33
|
+
export type LayerStatus = 'passed' | 'failed' | 'skipped' | 'timeout' | 'killed';
|
|
34
34
|
/**
|
|
35
35
|
* Layer result record type.
|
|
36
36
|
* Includes test count fields for accurate reporting in GitHub comments.
|
|
@@ -61,6 +61,7 @@ export declare function convertLayerResults(results: Array<{
|
|
|
61
61
|
success: boolean;
|
|
62
62
|
exitCode: number;
|
|
63
63
|
skipped?: boolean;
|
|
64
|
+
killed?: boolean;
|
|
64
65
|
totalTests?: number;
|
|
65
66
|
passedTests?: number;
|
|
66
67
|
failedTests?: number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../../../src/commands/ci/machine/helpers.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAQH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAM5C,sCAAsC;AACtC,eAAO,MAAM,WAAW,oBAAqB,CAAC;AAE9C,6BAA6B;AAC7B,eAAO,MAAM,SAAS,IAAI,CAAC;AAM3B;;;;;;;;GAQG;AACH,wBAAgB,qBAAqB,CAAC,cAAc,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAOtF;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,cAAc,EAAE,MAAM,EAAE,GAAG,OAAO,CAE7D;AAMD,+BAA+B;AAC/B,MAAM,MAAM,WAAW,GAAG,QAAQ,GAAG,QAAQ,GAAG,SAAS,GAAG,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../../../src/commands/ci/machine/helpers.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAQH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAM5C,sCAAsC;AACtC,eAAO,MAAM,WAAW,oBAAqB,CAAC;AAE9C,6BAA6B;AAC7B,eAAO,MAAM,SAAS,IAAI,CAAC;AAM3B;;;;;;;;GAQG;AACH,wBAAgB,qBAAqB,CAAC,cAAc,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAOtF;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,cAAc,EAAE,MAAM,EAAE,GAAG,OAAO,CAE7D;AAMD,+BAA+B;AAC/B,MAAM,MAAM,WAAW,GAAG,QAAQ,GAAG,QAAQ,GAAG,SAAS,GAAG,SAAS,GAAG,QAAQ,CAAC;AAEjF;;;GAGG;AACH,MAAM,MAAM,YAAY,GAAG,MAAM,CAC/B,MAAM,EACN;IACE,MAAM,EAAE,WAAW,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,6BAA6B;IAC7B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,4BAA4B;IAC5B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,+CAA+C;IAC/C,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,mEAAmE;IACnE,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CACF,CAAC;AAEF;;GAEG;AACH,wBAAgB,iBAAiB,CAC/B,WAAW,EAAE,YAAY,EACzB,UAAU,EAAE,YAAY,GACvB,YAAY,CAEd;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,CACjC,OAAO,EAAE,KAAK,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,MAAM,CAAC,EAAE,OAAO,CAAC;IAEjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,CAAC,GACD,YAAY,CAuBd;AAMD;;;GAGG;AACH,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,SAAS,GAAG,MAAM,CAGnE;AAED;;;;;;;;;GASG;AACH,wBAAgB,0BAA0B,CAAC,OAAO,EAAE,SAAS,GAAG,MAAM,CAGrE;AAED;;;;;GAKG;AACH,wBAAgB,8BAA8B,CAAC,OAAO,EAAE,SAAS,GAAG,MAAM,CAEzE;AAMD;;;;;;;GAOG;AACH,wBAAgB,+BAA+B,CAC7C,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CAAC,GACjE,CAAC,GAAG,CAAC,GAAG,CAAC,CAyBX"}
|
|
@@ -225,7 +225,7 @@ export declare const ciMachine: import("xstate").StateMachine<CiContext, CiEvent
|
|
|
225
225
|
error?: string | undefined;
|
|
226
226
|
}>;
|
|
227
227
|
layers: Record<number, {
|
|
228
|
-
status: "timeout" | "passed" | "failed" | "skipped";
|
|
228
|
+
status: "timeout" | "passed" | "failed" | "skipped" | "killed";
|
|
229
229
|
exitCode: number;
|
|
230
230
|
passed?: number | undefined;
|
|
231
231
|
total?: number | undefined;
|
|
@@ -27,6 +27,10 @@ export type LayerRunResult = {
|
|
|
27
27
|
skipped?: boolean;
|
|
28
28
|
/** Reason why layer was skipped */
|
|
29
29
|
skippedReason?: string;
|
|
30
|
+
/** True if layer was killed due to fail-fast (another layer failed first) */
|
|
31
|
+
killed?: boolean;
|
|
32
|
+
/** Layer number that caused fail-fast */
|
|
33
|
+
killedBy?: number;
|
|
30
34
|
logPath: string;
|
|
31
35
|
exitPath: string;
|
|
32
36
|
resultPath: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"test-parallel.d.ts","sourceRoot":"","sources":["../../../../src/commands/ci/utils/test-parallel.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAqCH,MAAM,MAAM,cAAc,GAAG;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,iEAAiE;IACjE,OAAO,EAAE,OAAO,CAAC;IACjB,uFAAuF;IACvF,gBAAgB,EAAE,OAAO,CAAC;IAC1B,+CAA+C;IAC/C,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,mCAAmC;IACnC,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IAEnB,4BAA4B;IAC5B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,6BAA6B;IAC7B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,6BAA6B;IAC7B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,8CAA8C;IAC9C,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,CAAC;
|
|
1
|
+
{"version":3,"file":"test-parallel.d.ts","sourceRoot":"","sources":["../../../../src/commands/ci/utils/test-parallel.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAqCH,MAAM,MAAM,cAAc,GAAG;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,iEAAiE;IACjE,OAAO,EAAE,OAAO,CAAC;IACjB,uFAAuF;IACvF,gBAAgB,EAAE,OAAO,CAAC;IAC1B,+CAA+C;IAC/C,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,mCAAmC;IACnC,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,6EAA6E;IAC7E,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,yCAAyC;IACzC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IAEnB,4BAA4B;IAC5B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,6BAA6B;IAC7B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,6BAA6B;IAC7B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,8CAA8C;IAC9C,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,CAAC;AAyNF,wBAAsB,mBAAmB,CAAC,MAAM,EAAE;IAChD,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,GAAG,EAAE,MAAM,CAAC,UAAU,CAAC;IACvB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,QAAQ,EAAE,OAAO,CAAC;IAClB,cAAc,EAAE,MAAM,CAAC;IACvB,uBAAuB,EAAE,MAAM,CAAC;CACjC,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC,CAgG5B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"db-sync.d.ts","sourceRoot":"","sources":["../../../../src/commands/db/commands/db-sync.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"db-sync.d.ts","sourceRoot":"","sources":["../../../../src/commands/db/commands/db-sync.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAsMpC,eAAO,MAAM,YAAY,SAKgE,CAAC"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* AI HINT: Schema Import Impact Analyzer
|
|
3
|
+
*
|
|
4
|
+
* Purpose: Analyze which files import schema tables/types and report impact
|
|
5
|
+
* Usage: Used by `runa db sync --show-import-impact` to help developers
|
|
6
|
+
* understand the scope of schema changes.
|
|
7
|
+
*
|
|
8
|
+
* Flow:
|
|
9
|
+
* 1. Scan project for TypeScript files
|
|
10
|
+
* 2. Find imports from database/schema packages
|
|
11
|
+
* 3. Map imported symbols to files
|
|
12
|
+
* 4. Report which files would be affected by changes
|
|
13
|
+
*/
|
|
14
|
+
export interface ImportReference {
|
|
15
|
+
/** File path relative to project root */
|
|
16
|
+
file: string;
|
|
17
|
+
/** Line number where import is found */
|
|
18
|
+
line: number;
|
|
19
|
+
/** The imported symbol name */
|
|
20
|
+
symbol: string;
|
|
21
|
+
/** The import source (e.g., '@runa-ai/runa-database/schema') */
|
|
22
|
+
source: string;
|
|
23
|
+
}
|
|
24
|
+
export interface ImportImpactReport {
|
|
25
|
+
/** Map of symbol name to files that import it */
|
|
26
|
+
symbolUsage: Map<string, ImportReference[]>;
|
|
27
|
+
/** Total number of files scanned */
|
|
28
|
+
totalFilesScanned: number;
|
|
29
|
+
/** Files with schema imports */
|
|
30
|
+
filesWithImports: number;
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Analyze schema import impact across the project
|
|
34
|
+
*/
|
|
35
|
+
export declare function analyzeImportImpact(rootDir: string): ImportImpactReport;
|
|
36
|
+
/**
|
|
37
|
+
* Format import impact report for CLI output
|
|
38
|
+
*/
|
|
39
|
+
export declare function formatImportImpactReport(report: ImportImpactReport, changedSymbols?: string[]): string[];
|
|
40
|
+
//# sourceMappingURL=import-impact-analyzer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"import-impact-analyzer.d.ts","sourceRoot":"","sources":["../../../../src/commands/db/utils/import-impact-analyzer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AASH,MAAM,WAAW,eAAe;IAC9B,yCAAyC;IACzC,IAAI,EAAE,MAAM,CAAC;IACb,wCAAwC;IACxC,IAAI,EAAE,MAAM,CAAC;IACb,+BAA+B;IAC/B,MAAM,EAAE,MAAM,CAAC;IACf,gEAAgE;IAChE,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,kBAAkB;IACjC,iDAAiD;IACjD,WAAW,EAAE,GAAG,CAAC,MAAM,EAAE,eAAe,EAAE,CAAC,CAAC;IAC5C,oCAAoC;IACpC,iBAAiB,EAAE,MAAM,CAAC;IAC1B,gCAAgC;IAChC,gBAAgB,EAAE,MAAM,CAAC;CAC1B;AAkJD;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,MAAM,GAAG,kBAAkB,CAuBvE;AAED;;GAEG;AACH,wBAAgB,wBAAwB,CACtC,MAAM,EAAE,kBAAkB,EAC1B,cAAc,CAAC,EAAE,MAAM,EAAE,GACxB,MAAM,EAAE,CAoCV"}
|
|
@@ -20,7 +20,7 @@
|
|
|
20
20
|
*
|
|
21
21
|
* Sync strategy: Keep this in sync with packages/runa-templates/package.json version.
|
|
22
22
|
*/
|
|
23
|
-
export declare const COMPATIBLE_TEMPLATES_VERSION = "0.5.
|
|
23
|
+
export declare const COMPATIBLE_TEMPLATES_VERSION = "0.5.43";
|
|
24
24
|
/**
|
|
25
25
|
* Templates package name on GitHub Packages.
|
|
26
26
|
* Published to npm.pkg.github.com (requires NODE_AUTH_TOKEN).
|
package/dist/index.js
CHANGED
|
@@ -925,7 +925,7 @@ var CLI_VERSION, HAS_ADMIN_COMMAND;
|
|
|
925
925
|
var init_version = __esm({
|
|
926
926
|
"src/version.ts"() {
|
|
927
927
|
init_esm_shims();
|
|
928
|
-
CLI_VERSION = "0.5.
|
|
928
|
+
CLI_VERSION = "0.5.43";
|
|
929
929
|
HAS_ADMIN_COMMAND = false;
|
|
930
930
|
}
|
|
931
931
|
});
|
|
@@ -2020,7 +2020,7 @@ function scanLineForSecrets(line, lineNumber, filePath) {
|
|
|
2020
2020
|
}
|
|
2021
2021
|
async function scanFileForSecrets(filePath) {
|
|
2022
2022
|
const stats = await fs9.stat(filePath);
|
|
2023
|
-
if (stats.size >
|
|
2023
|
+
if (stats.size > MAX_FILE_SIZE2) {
|
|
2024
2024
|
return [];
|
|
2025
2025
|
}
|
|
2026
2026
|
const content = await fs9.readFile(filePath, "utf-8");
|
|
@@ -2098,13 +2098,13 @@ function isMultiLineFalsePositive(blockContent, lines, startLine) {
|
|
|
2098
2098
|
}
|
|
2099
2099
|
return false;
|
|
2100
2100
|
}
|
|
2101
|
-
var MAX_LINE_LENGTH,
|
|
2101
|
+
var MAX_LINE_LENGTH, MAX_FILE_SIZE2, SECRET_PATTERNS, BASE64_SECRET_INDICATORS, EXCLUDED_PATTERNS, MULTILINE_PATTERNS, SecretAnalyzer;
|
|
2102
2102
|
var init_secret_analyzer = __esm({
|
|
2103
2103
|
"src/internal/vuln-checker/analyzers/secret-analyzer.ts"() {
|
|
2104
2104
|
init_esm_shims();
|
|
2105
2105
|
init_constants2();
|
|
2106
2106
|
MAX_LINE_LENGTH = 2e3;
|
|
2107
|
-
|
|
2107
|
+
MAX_FILE_SIZE2 = 1024 * 1024;
|
|
2108
2108
|
SECRET_PATTERNS = [
|
|
2109
2109
|
// AWS
|
|
2110
2110
|
{
|
|
@@ -3053,8 +3053,8 @@ function isPathWithinBoundary(filePath, boundaryDir) {
|
|
|
3053
3053
|
try {
|
|
3054
3054
|
const resolvedFile = path10__default.resolve(filePath);
|
|
3055
3055
|
const resolvedBoundary = path10__default.resolve(boundaryDir);
|
|
3056
|
-
const
|
|
3057
|
-
return !
|
|
3056
|
+
const relative9 = path10__default.relative(resolvedBoundary, resolvedFile);
|
|
3057
|
+
return !relative9.startsWith("..") && !path10__default.isAbsolute(relative9);
|
|
3058
3058
|
} catch {
|
|
3059
3059
|
return false;
|
|
3060
3060
|
}
|
|
@@ -7220,17 +7220,17 @@ function printSummary(logger16, output3) {
|
|
|
7220
7220
|
}
|
|
7221
7221
|
}
|
|
7222
7222
|
function findRepoRoot(startDir) {
|
|
7223
|
-
const { existsSync:
|
|
7224
|
-
const { join:
|
|
7223
|
+
const { existsSync: existsSync51, readFileSync: readFileSync29 } = __require("fs");
|
|
7224
|
+
const { join: join23, dirname: dirname5 } = __require("path");
|
|
7225
7225
|
let current = startDir;
|
|
7226
7226
|
while (current !== dirname5(current)) {
|
|
7227
|
-
if (
|
|
7227
|
+
if (existsSync51(join23(current, "turbo.json"))) {
|
|
7228
7228
|
return current;
|
|
7229
7229
|
}
|
|
7230
|
-
const pkgPath =
|
|
7231
|
-
if (
|
|
7230
|
+
const pkgPath = join23(current, "package.json");
|
|
7231
|
+
if (existsSync51(pkgPath)) {
|
|
7232
7232
|
try {
|
|
7233
|
-
const pkg = JSON.parse(
|
|
7233
|
+
const pkg = JSON.parse(readFileSync29(pkgPath, "utf-8"));
|
|
7234
7234
|
if (pkg.workspaces) {
|
|
7235
7235
|
return current;
|
|
7236
7236
|
}
|
|
@@ -7527,8 +7527,8 @@ function readPortFromScripts(appDir) {
|
|
|
7527
7527
|
const pkgPath = path10__default.join(appDir, "package.json");
|
|
7528
7528
|
if (!existsSync(pkgPath)) return 3e3;
|
|
7529
7529
|
try {
|
|
7530
|
-
const { readFileSync:
|
|
7531
|
-
const raw =
|
|
7530
|
+
const { readFileSync: readFileSync29 } = __require("fs");
|
|
7531
|
+
const raw = readFileSync29(pkgPath, "utf-8");
|
|
7532
7532
|
const parsed = JSON.parse(raw);
|
|
7533
7533
|
const scripts = parsed.scripts;
|
|
7534
7534
|
for (const key of ["start:ci", "start", "dev"]) {
|
|
@@ -7546,8 +7546,8 @@ function findWebAppUnderApps(repoRoot) {
|
|
|
7546
7546
|
const appsDir = path10__default.join(repoRoot, "apps");
|
|
7547
7547
|
if (!existsSync(appsDir)) return null;
|
|
7548
7548
|
try {
|
|
7549
|
-
const { readdirSync:
|
|
7550
|
-
const entries =
|
|
7549
|
+
const { readdirSync: readdirSync12 } = __require("fs");
|
|
7550
|
+
const entries = readdirSync12(appsDir, { withFileTypes: true });
|
|
7551
7551
|
const priority = ["web", "dashboard", "app", "frontend", "client"];
|
|
7552
7552
|
for (const name of priority) {
|
|
7553
7553
|
const candidate = path10__default.join(appsDir, name);
|
|
@@ -9559,8 +9559,8 @@ async function detectRisks(repoRoot, tmpDir) {
|
|
|
9559
9559
|
} catch (error) {
|
|
9560
9560
|
let logContent = "";
|
|
9561
9561
|
try {
|
|
9562
|
-
const { readFileSync:
|
|
9563
|
-
logContent =
|
|
9562
|
+
const { readFileSync: readFileSync29 } = await import('fs');
|
|
9563
|
+
logContent = readFileSync29(logFile, "utf-8");
|
|
9564
9564
|
} catch {
|
|
9565
9565
|
}
|
|
9566
9566
|
const isInitialDeployment = logContent.includes("No common ancestor") || logContent.includes("INITIAL DEPLOYMENT");
|
|
@@ -9688,8 +9688,8 @@ async function applyProductionSchema(repoRoot, tmpDir, productionDbUrlAdmin, pro
|
|
|
9688
9688
|
const totalMs = Date.now() - startTime;
|
|
9689
9689
|
let logContent = "";
|
|
9690
9690
|
try {
|
|
9691
|
-
const { readFileSync:
|
|
9692
|
-
logContent =
|
|
9691
|
+
const { readFileSync: readFileSync29 } = await import('fs');
|
|
9692
|
+
logContent = readFileSync29(logPath, "utf-8");
|
|
9693
9693
|
} catch {
|
|
9694
9694
|
}
|
|
9695
9695
|
const parsed = parseApplyLog(logContent);
|
|
@@ -13463,16 +13463,22 @@ async function waitUntilAllFinished(params) {
|
|
|
13463
13463
|
` ${statusIcon} layer${finished.p.layer} finished (exit=${finished.code}, success=${actualResult.success}${mismatchNote}), remaining=${remaining.size}`
|
|
13464
13464
|
);
|
|
13465
13465
|
if (params.failFast && !actualResult.success && !actualResult.skipped) {
|
|
13466
|
+
const killedLayers = Array.from(remaining).map((p) => p.layer);
|
|
13466
13467
|
killAllSafe(Array.from(remaining));
|
|
13467
|
-
|
|
13468
|
-
|
|
13469
|
-
|
|
13468
|
+
clearTimeout(timeoutId);
|
|
13469
|
+
return {
|
|
13470
|
+
successMap,
|
|
13471
|
+
failFast: {
|
|
13472
|
+
failedLayer: finished.p.layer,
|
|
13473
|
+
killedLayers
|
|
13474
|
+
}
|
|
13475
|
+
};
|
|
13470
13476
|
}
|
|
13471
13477
|
}
|
|
13472
13478
|
} finally {
|
|
13473
13479
|
clearTimeout(timeoutId);
|
|
13474
13480
|
}
|
|
13475
|
-
return successMap;
|
|
13481
|
+
return { successMap };
|
|
13476
13482
|
}
|
|
13477
13483
|
async function runLayersInParallel(params) {
|
|
13478
13484
|
const spawned = [];
|
|
@@ -13508,29 +13514,34 @@ async function runLayersInParallel(params) {
|
|
|
13508
13514
|
kill: () => proc.kill("SIGTERM")
|
|
13509
13515
|
});
|
|
13510
13516
|
}
|
|
13511
|
-
const
|
|
13517
|
+
const waitResult = await waitUntilAllFinished({
|
|
13512
13518
|
spawned,
|
|
13513
13519
|
tmpDir: params.tmpDir,
|
|
13514
13520
|
failFast: params.failFast,
|
|
13515
13521
|
maxWaitSeconds: params.maxWaitSeconds,
|
|
13516
13522
|
progressIntervalSeconds: params.progressIntervalSeconds
|
|
13517
13523
|
});
|
|
13524
|
+
const killedLayerSet = new Set(waitResult.failFast?.killedLayers ?? []);
|
|
13525
|
+
const failFastSource = waitResult.failFast?.failedLayer;
|
|
13518
13526
|
const results = [];
|
|
13519
13527
|
for (const p of spawned) {
|
|
13520
13528
|
const codeRaw = p.exitCode ?? await p.procPromise;
|
|
13521
13529
|
const code = Number.isNaN(codeRaw) ? 1 : codeRaw;
|
|
13522
13530
|
const resultFile = path10__default.join(params.tmpDir, `vitest-layer${p.layer}-result.json`);
|
|
13523
|
-
const
|
|
13531
|
+
const wasKilled = killedLayerSet.has(p.layer);
|
|
13532
|
+
const actualResult = waitResult.successMap.get(p.layer) ?? {
|
|
13524
13533
|
success: code === 0,
|
|
13525
13534
|
exitCodeMismatch: false
|
|
13526
13535
|
};
|
|
13527
13536
|
results.push({
|
|
13528
13537
|
layer: p.layer,
|
|
13529
13538
|
exitCode: code,
|
|
13530
|
-
success: actualResult.success,
|
|
13539
|
+
success: wasKilled ? false : actualResult.success,
|
|
13531
13540
|
exitCodeMismatch: actualResult.exitCodeMismatch,
|
|
13532
13541
|
skipped: actualResult.skipped,
|
|
13533
13542
|
skippedReason: actualResult.skippedReason,
|
|
13543
|
+
killed: wasKilled,
|
|
13544
|
+
killedBy: wasKilled ? failFastSource : void 0,
|
|
13534
13545
|
logPath: path10__default.relative(params.repoRoot, p.logFile),
|
|
13535
13546
|
exitPath: path10__default.relative(params.repoRoot, p.exitFile),
|
|
13536
13547
|
resultPath: path10__default.relative(params.repoRoot, resultFile),
|
|
@@ -14585,7 +14596,7 @@ function hasError(context) {
|
|
|
14585
14596
|
function allTestsPassed(context) {
|
|
14586
14597
|
if (!context.testsRun) return false;
|
|
14587
14598
|
for (const result of Object.values(context.layerResults)) {
|
|
14588
|
-
if (result.status === "failed") return false;
|
|
14599
|
+
if (result.status === "failed" || result.status === "killed") return false;
|
|
14589
14600
|
}
|
|
14590
14601
|
return true;
|
|
14591
14602
|
}
|
|
@@ -14613,7 +14624,9 @@ function convertLayerResults(results) {
|
|
|
14613
14624
|
const layerResults = {};
|
|
14614
14625
|
for (const r of results) {
|
|
14615
14626
|
let status;
|
|
14616
|
-
if (r.
|
|
14627
|
+
if (r.killed) {
|
|
14628
|
+
status = "killed";
|
|
14629
|
+
} else if (r.skipped) {
|
|
14617
14630
|
status = "skipped";
|
|
14618
14631
|
} else {
|
|
14619
14632
|
status = r.success ? "passed" : "failed";
|
|
@@ -16168,11 +16181,36 @@ async function runCiMachine(input3, logger16, onStateChange) {
|
|
|
16168
16181
|
}
|
|
16169
16182
|
function formatLayerResults2(layers) {
|
|
16170
16183
|
const passed = Object.values(layers).filter((r) => r.status === "passed").length;
|
|
16171
|
-
const failed = Object.values(layers).filter(
|
|
16184
|
+
const failed = Object.values(layers).filter(
|
|
16185
|
+
(r) => r.status === "failed" || r.status === "killed"
|
|
16186
|
+
).length;
|
|
16172
16187
|
const lines = [];
|
|
16173
16188
|
for (const [layer, result] of Object.entries(layers)) {
|
|
16174
|
-
|
|
16175
|
-
|
|
16189
|
+
let icon;
|
|
16190
|
+
let statusText;
|
|
16191
|
+
switch (result.status) {
|
|
16192
|
+
case "passed":
|
|
16193
|
+
icon = "\u2705";
|
|
16194
|
+
statusText = "PASSED";
|
|
16195
|
+
break;
|
|
16196
|
+
case "failed":
|
|
16197
|
+
icon = "\u274C";
|
|
16198
|
+
statusText = "FAILED";
|
|
16199
|
+
break;
|
|
16200
|
+
case "killed":
|
|
16201
|
+
icon = "\u23F9\uFE0F";
|
|
16202
|
+
statusText = "KILLED (fail-fast)";
|
|
16203
|
+
break;
|
|
16204
|
+
case "skipped":
|
|
16205
|
+
icon = "\u23ED\uFE0F";
|
|
16206
|
+
statusText = "SKIPPED";
|
|
16207
|
+
break;
|
|
16208
|
+
case "timeout":
|
|
16209
|
+
icon = "\u23F1\uFE0F";
|
|
16210
|
+
statusText = "TIMEOUT";
|
|
16211
|
+
break;
|
|
16212
|
+
}
|
|
16213
|
+
lines.push(` Layer ${layer}: ${icon} ${statusText}`);
|
|
16176
16214
|
}
|
|
16177
16215
|
return { passed, failed, lines };
|
|
16178
16216
|
}
|
|
@@ -16360,7 +16398,7 @@ var CiPhaseSchema = z.enum(["all", "test"]);
|
|
|
16360
16398
|
var CiDbModeSchema = z.enum(["auto", "local"]);
|
|
16361
16399
|
var RepoKindSchema = z.enum(["monorepo", "pj-repo", "unknown"]);
|
|
16362
16400
|
var StepStatusSchema = z.enum(["passed", "failed", "skipped", "timeout"]);
|
|
16363
|
-
var LayerStatusSchema = z.enum(["passed", "failed", "skipped", "timeout"]);
|
|
16401
|
+
var LayerStatusSchema = z.enum(["passed", "failed", "skipped", "timeout", "killed"]);
|
|
16364
16402
|
z.object({
|
|
16365
16403
|
// === Command ===
|
|
16366
16404
|
/** CLI command: 'local' for ci local, 'pr' for ci pr */
|
|
@@ -24783,6 +24821,157 @@ statsCommand.command("reset").description("Reset query statistics").option("--en
|
|
|
24783
24821
|
// src/commands/db/commands/db-sync.ts
|
|
24784
24822
|
init_esm_shims();
|
|
24785
24823
|
init_config_loader();
|
|
24824
|
+
|
|
24825
|
+
// src/commands/db/utils/import-impact-analyzer.ts
|
|
24826
|
+
init_esm_shims();
|
|
24827
|
+
var SKIP_DIRS = /* @__PURE__ */ new Set([
|
|
24828
|
+
"node_modules",
|
|
24829
|
+
".git",
|
|
24830
|
+
"dist",
|
|
24831
|
+
"build",
|
|
24832
|
+
".next",
|
|
24833
|
+
".runa",
|
|
24834
|
+
"coverage",
|
|
24835
|
+
"__snapshots__"
|
|
24836
|
+
]);
|
|
24837
|
+
var MAX_FILE_SIZE = 1024 * 1024;
|
|
24838
|
+
var SCHEMA_IMPORT_PATTERNS = [
|
|
24839
|
+
/from\s+['"]@runa-ai\/runa-database\/schema['"]/,
|
|
24840
|
+
/from\s+['"]@runa\/database\/schema['"]/,
|
|
24841
|
+
/from\s+['"]@runa\/database['"]/,
|
|
24842
|
+
/from\s+['"].*\/database\/src\/schema['"]/,
|
|
24843
|
+
/from\s+['"].*\/packages\/database\/src\/schema['"]/
|
|
24844
|
+
];
|
|
24845
|
+
function findTsFiles(dir, files = []) {
|
|
24846
|
+
if (!existsSync(dir)) return files;
|
|
24847
|
+
const entries = readdirSync(dir, { withFileTypes: true });
|
|
24848
|
+
for (const entry of entries) {
|
|
24849
|
+
const fullPath = join(dir, entry.name);
|
|
24850
|
+
if (entry.isDirectory()) {
|
|
24851
|
+
if (!SKIP_DIRS.has(entry.name)) {
|
|
24852
|
+
findTsFiles(fullPath, files);
|
|
24853
|
+
}
|
|
24854
|
+
} else if (entry.isFile()) {
|
|
24855
|
+
if (/\.(ts|tsx)$/.test(entry.name) && !entry.name.endsWith(".d.ts")) {
|
|
24856
|
+
files.push(fullPath);
|
|
24857
|
+
}
|
|
24858
|
+
}
|
|
24859
|
+
}
|
|
24860
|
+
return files;
|
|
24861
|
+
}
|
|
24862
|
+
function extractSchemaImports(filePath, rootDir) {
|
|
24863
|
+
const imports = [];
|
|
24864
|
+
try {
|
|
24865
|
+
const stats = statSync(filePath);
|
|
24866
|
+
if (stats.size > MAX_FILE_SIZE) {
|
|
24867
|
+
return imports;
|
|
24868
|
+
}
|
|
24869
|
+
const content = readFileSync(filePath, "utf-8");
|
|
24870
|
+
const lines = content.split("\n");
|
|
24871
|
+
for (let i = 0; i < lines.length; i++) {
|
|
24872
|
+
const line = lines[i];
|
|
24873
|
+
const isSchemaImport = SCHEMA_IMPORT_PATTERNS.some((pattern) => pattern.test(line));
|
|
24874
|
+
if (!isSchemaImport) continue;
|
|
24875
|
+
const sourceMatch = line.match(/from\s+['"]([^'"]+)['"]/);
|
|
24876
|
+
if (!sourceMatch) continue;
|
|
24877
|
+
const source = sourceMatch[1];
|
|
24878
|
+
const namedMatch = line.match(/import\s*\{([^}]+)\}/);
|
|
24879
|
+
if (namedMatch) {
|
|
24880
|
+
const symbols = namedMatch[1].split(",").map((s) => {
|
|
24881
|
+
const parts = s.trim().split(/\s+as\s+/);
|
|
24882
|
+
return parts[0].trim();
|
|
24883
|
+
});
|
|
24884
|
+
for (const symbol of symbols) {
|
|
24885
|
+
if (symbol) {
|
|
24886
|
+
imports.push({
|
|
24887
|
+
file: relative(rootDir, filePath),
|
|
24888
|
+
line: i + 1,
|
|
24889
|
+
symbol,
|
|
24890
|
+
source
|
|
24891
|
+
});
|
|
24892
|
+
}
|
|
24893
|
+
}
|
|
24894
|
+
}
|
|
24895
|
+
const namespaceMatch = line.match(/import\s+\*\s+as\s+(\w+)/);
|
|
24896
|
+
if (namespaceMatch) {
|
|
24897
|
+
imports.push({
|
|
24898
|
+
file: relative(rootDir, filePath),
|
|
24899
|
+
line: i + 1,
|
|
24900
|
+
symbol: `* as ${namespaceMatch[1]}`,
|
|
24901
|
+
source
|
|
24902
|
+
});
|
|
24903
|
+
}
|
|
24904
|
+
const typeMatch = line.match(/import\s+type\s*\{([^}]+)\}/);
|
|
24905
|
+
if (typeMatch) {
|
|
24906
|
+
const symbols = typeMatch[1].split(",").map(
|
|
24907
|
+
(s) => s.trim().split(/\s+as\s+/)[0].trim()
|
|
24908
|
+
);
|
|
24909
|
+
for (const symbol of symbols) {
|
|
24910
|
+
if (symbol) {
|
|
24911
|
+
imports.push({
|
|
24912
|
+
file: relative(rootDir, filePath),
|
|
24913
|
+
line: i + 1,
|
|
24914
|
+
symbol: `type ${symbol}`,
|
|
24915
|
+
source
|
|
24916
|
+
});
|
|
24917
|
+
}
|
|
24918
|
+
}
|
|
24919
|
+
}
|
|
24920
|
+
}
|
|
24921
|
+
} catch {
|
|
24922
|
+
}
|
|
24923
|
+
return imports;
|
|
24924
|
+
}
|
|
24925
|
+
function analyzeImportImpact(rootDir) {
|
|
24926
|
+
const symbolUsage = /* @__PURE__ */ new Map();
|
|
24927
|
+
const tsFiles = findTsFiles(rootDir);
|
|
24928
|
+
let filesWithImports = 0;
|
|
24929
|
+
for (const file of tsFiles) {
|
|
24930
|
+
const imports = extractSchemaImports(file, rootDir);
|
|
24931
|
+
if (imports.length > 0) {
|
|
24932
|
+
filesWithImports++;
|
|
24933
|
+
}
|
|
24934
|
+
for (const imp of imports) {
|
|
24935
|
+
const existing = symbolUsage.get(imp.symbol) ?? [];
|
|
24936
|
+
existing.push(imp);
|
|
24937
|
+
symbolUsage.set(imp.symbol, existing);
|
|
24938
|
+
}
|
|
24939
|
+
}
|
|
24940
|
+
return {
|
|
24941
|
+
symbolUsage,
|
|
24942
|
+
totalFilesScanned: tsFiles.length,
|
|
24943
|
+
filesWithImports
|
|
24944
|
+
};
|
|
24945
|
+
}
|
|
24946
|
+
function formatImportImpactReport(report, changedSymbols) {
|
|
24947
|
+
const lines = [];
|
|
24948
|
+
lines.push("\u{1F4CA} Schema Import Impact Analysis");
|
|
24949
|
+
lines.push(` Files scanned: ${report.totalFilesScanned}`);
|
|
24950
|
+
lines.push(` Files with schema imports: ${report.filesWithImports}`);
|
|
24951
|
+
lines.push("");
|
|
24952
|
+
const symbolsToShow = Array.from(report.symbolUsage.keys()).sort();
|
|
24953
|
+
if (symbolsToShow.length === 0) {
|
|
24954
|
+
lines.push(" No schema imports found.");
|
|
24955
|
+
return lines;
|
|
24956
|
+
}
|
|
24957
|
+
for (const symbol of symbolsToShow) {
|
|
24958
|
+
const refs = report.symbolUsage.get(symbol);
|
|
24959
|
+
if (!refs || refs.length === 0) continue;
|
|
24960
|
+
lines.push(` ${symbol}:`);
|
|
24961
|
+
for (const ref of refs) {
|
|
24962
|
+
lines.push(` \u2022 ${ref.file}:${ref.line}`);
|
|
24963
|
+
}
|
|
24964
|
+
lines.push("");
|
|
24965
|
+
}
|
|
24966
|
+
const totalRefs = Array.from(report.symbolUsage.values()).reduce(
|
|
24967
|
+
(sum, refs) => sum + refs.length,
|
|
24968
|
+
0
|
|
24969
|
+
);
|
|
24970
|
+
lines.push(` Total: ${report.symbolUsage.size} symbols, ${totalRefs} references`);
|
|
24971
|
+
return lines;
|
|
24972
|
+
}
|
|
24973
|
+
|
|
24974
|
+
// src/commands/db/commands/db-sync.ts
|
|
24786
24975
|
function printList(title, items, logger16) {
|
|
24787
24976
|
if (items.length === 0) return;
|
|
24788
24977
|
logger16.warn(`
|
|
@@ -24895,6 +25084,14 @@ async function runSyncAction(env2, options) {
|
|
|
24895
25084
|
return;
|
|
24896
25085
|
}
|
|
24897
25086
|
logHumanSyncReport({ logger: logger16, expectedTables, expectedEnums, dbTables, dbEnums, diff });
|
|
25087
|
+
if (options.showImportImpact) {
|
|
25088
|
+
logger16.info("");
|
|
25089
|
+
const report = analyzeImportImpact(process.cwd());
|
|
25090
|
+
const lines = formatImportImpactReport(report);
|
|
25091
|
+
for (const line of lines) {
|
|
25092
|
+
logger16.info(line);
|
|
25093
|
+
}
|
|
25094
|
+
}
|
|
24898
25095
|
if (countSyncIssues(diff) === 0) return;
|
|
24899
25096
|
throw new CLIError("Database schema is out of sync", "DB_SCHEMA_OUT_OF_SYNC", [
|
|
24900
25097
|
"Review the diff output above",
|
|
@@ -24915,7 +25112,7 @@ async function runSyncAction(env2, options) {
|
|
|
24915
25112
|
);
|
|
24916
25113
|
}
|
|
24917
25114
|
}
|
|
24918
|
-
var checkCommand2 = new Command("check").description("Compare TypeScript schema (Drizzle) vs target database (tables/enums)").argument("[env]", "Environment: local, preview, main, or production", "local").option("--json", "Output diff as JSON").action(async (env2, options) => await runSyncAction(env2, options));
|
|
25115
|
+
var checkCommand2 = new Command("check").description("Compare TypeScript schema (Drizzle) vs target database (tables/enums)").argument("[env]", "Environment: local, preview, main, or production", "local").option("--json", "Output diff as JSON").option("--show-import-impact", "Analyze which files import schema tables").action(async (env2, options) => await runSyncAction(env2, options));
|
|
24919
25116
|
|
|
24920
25117
|
// src/commands/db/commands/db-test.ts
|
|
24921
25118
|
init_esm_shims();
|
|
@@ -29828,7 +30025,7 @@ init_esm_shims();
|
|
|
29828
30025
|
|
|
29829
30026
|
// src/constants/versions.ts
|
|
29830
30027
|
init_esm_shims();
|
|
29831
|
-
var COMPATIBLE_TEMPLATES_VERSION = "0.5.
|
|
30028
|
+
var COMPATIBLE_TEMPLATES_VERSION = "0.5.43";
|
|
29832
30029
|
var TEMPLATES_PACKAGE_NAME = "@r06-dev/runa-templates";
|
|
29833
30030
|
var GITHUB_PACKAGES_REGISTRY = "https://npm.pkg.github.com";
|
|
29834
30031
|
|
|
@@ -34129,17 +34326,17 @@ function printActionsNeeded(logger16, actions) {
|
|
|
34129
34326
|
);
|
|
34130
34327
|
}
|
|
34131
34328
|
function findRepoRoot3(startDir) {
|
|
34132
|
-
const { existsSync:
|
|
34133
|
-
const { join:
|
|
34329
|
+
const { existsSync: existsSync51, readFileSync: readFileSync29 } = __require("fs");
|
|
34330
|
+
const { join: join23, dirname: dirname5 } = __require("path");
|
|
34134
34331
|
let current = startDir;
|
|
34135
34332
|
while (current !== dirname5(current)) {
|
|
34136
|
-
if (
|
|
34333
|
+
if (existsSync51(join23(current, "turbo.json"))) {
|
|
34137
34334
|
return current;
|
|
34138
34335
|
}
|
|
34139
|
-
const pkgPath =
|
|
34140
|
-
if (
|
|
34336
|
+
const pkgPath = join23(current, "package.json");
|
|
34337
|
+
if (existsSync51(pkgPath)) {
|
|
34141
34338
|
try {
|
|
34142
|
-
const pkg = JSON.parse(
|
|
34339
|
+
const pkg = JSON.parse(readFileSync29(pkgPath, "utf-8"));
|
|
34143
34340
|
if (pkg.workspaces) {
|
|
34144
34341
|
return current;
|
|
34145
34342
|
}
|
|
@@ -34205,10 +34402,10 @@ function generateReportOutput(output3, isJsonMode) {
|
|
|
34205
34402
|
};
|
|
34206
34403
|
}
|
|
34207
34404
|
function validateRunaRepo(repoRoot) {
|
|
34208
|
-
const { existsSync:
|
|
34209
|
-
const { join:
|
|
34210
|
-
const templateDir =
|
|
34211
|
-
if (!
|
|
34405
|
+
const { existsSync: existsSync51 } = __require("fs");
|
|
34406
|
+
const { join: join23 } = __require("path");
|
|
34407
|
+
const templateDir = join23(repoRoot, "packages/runa-templates/templates");
|
|
34408
|
+
if (!existsSync51(templateDir)) {
|
|
34212
34409
|
throw new CLIError("template-check is a runa-repo only command", "NOT_RUNA_REPO", [
|
|
34213
34410
|
"This command compares runa-repo with pj-repo templates",
|
|
34214
34411
|
"It should only be run in the runa repository",
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@runa-ai/runa-cli",
|
|
3
|
-
"version": "0.5.
|
|
3
|
+
"version": "0.5.43",
|
|
4
4
|
"private": false,
|
|
5
5
|
"description": "AI-powered DevOps CLI",
|
|
6
6
|
"type": "module",
|
|
@@ -53,7 +53,7 @@
|
|
|
53
53
|
"typescript": "5.9.3",
|
|
54
54
|
"xstate": "5.25.0",
|
|
55
55
|
"zod": "4.3.5",
|
|
56
|
-
"@runa-ai/runa": "0.5.
|
|
56
|
+
"@runa-ai/runa": "0.5.43",
|
|
57
57
|
"@runa-ai/runa-xstate-test-plugin": "0.5.35"
|
|
58
58
|
},
|
|
59
59
|
"engines": {
|