@jevitate/cli 0.8.0 → 0.10.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/anchor-baselines.d.ts +26 -0
- package/dist/anchor-baselines.js +25 -0
- package/dist/anchor-baselines.js.map +1 -0
- package/dist/approval-provenance.d.ts +48 -2
- package/dist/approval-provenance.js +110 -6
- package/dist/approval-provenance.js.map +1 -1
- package/dist/bin.js +25111 -17835
- package/dist/browser-cli.d.ts +10 -0
- package/dist/browser-cli.js +50 -0
- package/dist/browser-cli.js.map +1 -0
- package/dist/build-info.generated.js +2 -2
- package/dist/catalog-analysis.js +14 -0
- package/dist/catalog-analysis.js.map +1 -1
- package/dist/catalog-api.js +12 -4
- package/dist/catalog-api.js.map +1 -1
- package/dist/catalog-bundle-api.d.ts +73 -0
- package/dist/catalog-bundle-api.js +206 -0
- package/dist/catalog-bundle-api.js.map +1 -0
- package/dist/catalog-bundle-findings.d.ts +54 -0
- package/dist/catalog-bundle-findings.js +252 -0
- package/dist/catalog-bundle-findings.js.map +1 -0
- package/dist/catalog-bundle.d.ts +192 -0
- package/dist/catalog-bundle.js +578 -0
- package/dist/catalog-bundle.js.map +1 -0
- package/dist/catalog-cli.d.ts +6 -0
- package/dist/catalog-cli.js +180 -5
- package/dist/catalog-cli.js.map +1 -1
- package/dist/catalog-refs.d.ts +42 -0
- package/dist/catalog-refs.js +188 -0
- package/dist/catalog-refs.js.map +1 -0
- package/dist/catalog-review.d.ts +3 -1
- package/dist/catalog-review.js +61 -0
- package/dist/catalog-review.js.map +1 -1
- package/dist/catalog.d.ts +27 -3
- package/dist/catalog.js +46 -2
- package/dist/catalog.js.map +1 -1
- package/dist/change-context.d.ts +44 -0
- package/dist/change-context.js +203 -0
- package/dist/change-context.js.map +1 -0
- package/dist/check-api.d.ts +1 -1
- package/dist/check-api.js +206 -16
- package/dist/check-api.js.map +1 -1
- package/dist/check-cli.d.ts +2 -1
- package/dist/check-cli.js +117 -8
- package/dist/check-cli.js.map +1 -1
- package/dist/check-execute.d.ts +28 -1
- package/dist/check-execute.js +110 -27
- package/dist/check-execute.js.map +1 -1
- package/dist/check-plan.d.ts +14 -0
- package/dist/check-plan.js +24 -1
- package/dist/check-plan.js.map +1 -1
- package/dist/check-types.d.ts +137 -5
- package/dist/check-types.js +8 -0
- package/dist/check-types.js.map +1 -1
- package/dist/cli-output.d.ts +6 -0
- package/dist/cli-output.js +26 -1
- package/dist/cli-output.js.map +1 -1
- package/dist/cli-shared.d.ts +10 -0
- package/dist/cli-shared.js +0 -4
- package/dist/cli-shared.js.map +1 -1
- package/dist/exit-codes.d.ts +6 -3
- package/dist/exit-codes.js +24 -3
- package/dist/exit-codes.js.map +1 -1
- package/dist/explore-adversarial.js +2 -2
- package/dist/explore-adversarial.js.map +1 -1
- package/dist/explore-cli.js +3 -2
- package/dist/explore-cli.js.map +1 -1
- package/dist/explore-coverage.js +3 -3
- package/dist/explore-coverage.js.map +1 -1
- package/dist/explore-feature.js +3 -3
- package/dist/explore-feature.js.map +1 -1
- package/dist/explore-goal.js +11 -5
- package/dist/explore-goal.js.map +1 -1
- package/dist/findings-filing.d.ts +6 -0
- package/dist/findings-filing.js +15 -1
- package/dist/findings-filing.js.map +1 -1
- package/dist/forge-verify.d.ts +224 -0
- package/dist/forge-verify.js +649 -0
- package/dist/forge-verify.js.map +1 -0
- package/dist/heal-probe-guard.d.ts +9 -0
- package/dist/heal-probe-guard.js +113 -0
- package/dist/heal-probe-guard.js.map +1 -0
- package/dist/host-health-run.d.ts +32 -1
- package/dist/host-health-run.js +38 -1
- package/dist/host-health-run.js.map +1 -1
- package/dist/init-codeowners.d.ts +19 -0
- package/dist/init-codeowners.js +66 -0
- package/dist/init-codeowners.js.map +1 -1
- package/dist/job-draft-api.d.ts +52 -0
- package/dist/job-draft-api.js +110 -0
- package/dist/job-draft-api.js.map +1 -0
- package/dist/journeeze-api.d.ts +71 -0
- package/dist/journeeze-api.js +285 -0
- package/dist/journeeze-api.js.map +1 -0
- package/dist/journeeze-connect.d.ts +156 -0
- package/dist/journeeze-connect.js +357 -0
- package/dist/journeeze-connect.js.map +1 -0
- package/dist/journey-anchor-gate.d.ts +52 -0
- package/dist/journey-anchor-gate.js +101 -0
- package/dist/journey-anchor-gate.js.map +1 -0
- package/dist/journey-api.d.ts +43 -3
- package/dist/journey-api.js +226 -21
- package/dist/journey-api.js.map +1 -1
- package/dist/journey-cli.js +162 -20
- package/dist/journey-cli.js.map +1 -1
- package/dist/journey-heal.d.ts +74 -0
- package/dist/journey-heal.js +180 -0
- package/dist/journey-heal.js.map +1 -0
- package/dist/journey-lint-sarif.d.ts +3 -2
- package/dist/journey-lint-sarif.js +9 -2
- package/dist/journey-lint-sarif.js.map +1 -1
- package/dist/journey-migrate-api.d.ts +54 -0
- package/dist/journey-migrate-api.js +64 -0
- package/dist/journey-migrate-api.js.map +1 -0
- package/dist/journey-network-checks.d.ts +5 -1
- package/dist/journey-network-checks.js +15 -4
- package/dist/journey-network-checks.js.map +1 -1
- package/dist/journey-prefix.js +2 -2
- package/dist/journey-prefix.js.map +1 -1
- package/dist/journey-proposal-store.d.ts +109 -0
- package/dist/journey-proposal-store.js +365 -0
- package/dist/journey-proposal-store.js.map +1 -0
- package/dist/journey-result-record.d.ts +42 -0
- package/dist/journey-result-record.js +33 -0
- package/dist/journey-result-record.js.map +1 -0
- package/dist/journey-review-api.js +16 -1
- package/dist/journey-review-api.js.map +1 -1
- package/dist/journey-review.d.ts +18 -1
- package/dist/journey-review.js +116 -5
- package/dist/journey-review.js.map +1 -1
- package/dist/journey-stale-api.d.ts +40 -0
- package/dist/journey-stale-api.js +57 -0
- package/dist/journey-stale-api.js.map +1 -0
- package/dist/launch-armed.js +5 -1
- package/dist/launch-armed.js.map +1 -1
- package/dist/locator-health-api.d.ts +101 -0
- package/dist/locator-health-api.js +203 -0
- package/dist/locator-health-api.js.map +1 -0
- package/dist/locator-health.d.ts +195 -0
- package/dist/locator-health.js +419 -0
- package/dist/locator-health.js.map +1 -0
- package/dist/login-cli.d.ts +2 -0
- package/dist/login-cli.js +56 -11
- package/dist/login-cli.js.map +1 -1
- package/dist/mcp-api.d.ts +5 -1
- package/dist/mcp-api.js +53 -8
- package/dist/mcp-api.js.map +1 -1
- package/dist/mcp-cli-tools.d.ts +3 -1
- package/dist/mcp-cli-tools.js +80 -10
- package/dist/mcp-cli-tools.js.map +1 -1
- package/dist/multi-run.d.ts +7 -6
- package/dist/multi-run.js +5 -4
- package/dist/multi-run.js.map +1 -1
- package/dist/persona-login.d.ts +60 -3
- package/dist/persona-login.js +341 -31
- package/dist/persona-login.js.map +1 -1
- package/dist/program.js +2 -0
- package/dist/program.js.map +1 -1
- package/dist/project-config.d.ts +29 -0
- package/dist/project-config.js +76 -0
- package/dist/project-config.js.map +1 -0
- package/dist/report-api.d.ts +1 -0
- package/dist/report-api.js +1 -0
- package/dist/report-api.js.map +1 -1
- package/dist/resource-preflight.js +5 -3
- package/dist/resource-preflight.js.map +1 -1
- package/dist/run-metadata.d.ts +5 -2
- package/dist/run-metadata.js +10 -3
- package/dist/run-metadata.js.map +1 -1
- package/dist/run-tags-cli.d.ts +2 -0
- package/dist/run-tags-cli.js +8 -2
- package/dist/run-tags-cli.js.map +1 -1
- package/dist/self-heal-adapter.d.ts +43 -27
- package/dist/self-heal-adapter.js +196 -62
- package/dist/self-heal-adapter.js.map +1 -1
- package/dist/source-cli.js +5 -3
- package/dist/source-cli.js.map +1 -1
- package/dist/suite-explore-options.js +1 -0
- package/dist/suite-explore-options.js.map +1 -1
- package/dist/sweep-api.d.ts +23 -0
- package/dist/sweep-api.js +39 -8
- package/dist/sweep-api.js.map +1 -1
- package/dist/sweep-cli.js +3 -1
- package/dist/sweep-cli.js.map +1 -1
- package/dist/ux-usability.js +3 -2
- package/dist/ux-usability.js.map +1 -1
- package/package.json +17 -15
- package/skills/jevitate-ci-check/SKILL.md +25 -1
- package/skills/jevitate-getting-started/SKILL.md +9 -3
- package/skills/jevitate-mission-scope/SKILL.md +2 -2
- package/skills/jevitate-run-journey/SKILL.md +36 -5
- package/skills/jevitate-test-campaign/SKILL.md +13 -0
|
@@ -0,0 +1,180 @@
|
|
|
1
|
+
import { DEFAULT_HEAL_BUDGET, EMPTY_CHANGE_SCOPE } from "@jevitate/runtime";
|
|
2
|
+
import { describeStep } from "@jevitate/journey";
|
|
3
|
+
import { SafetyPolicy, controlRisk } from "@jevitate/explore";
|
|
4
|
+
import { parseChangeRange, readChangeScope, validateChangeNotes } from "./change-context.js";
|
|
5
|
+
import { findGitRoot } from "./project-dir.js";
|
|
6
|
+
/**
|
|
7
|
+
* #453: the change-aware self-heal inputs `journey run` and MCP `run_journey` share — the change
|
|
8
|
+
* context (`--changes <range>`, `--change-note`), the heal budget flags, and their refusals. Every
|
|
9
|
+
* refusal happens before any Journey is looked up or any browser opens.
|
|
10
|
+
*/
|
|
11
|
+
/** A self-heal argument combination that is unusable (exit 64). */
|
|
12
|
+
export class JourneyHealArgsError extends Error {
|
|
13
|
+
code = "E_JOURNEY_RUN_ARGS";
|
|
14
|
+
constructor(message) {
|
|
15
|
+
super(message);
|
|
16
|
+
this.name = "JourneyHealArgsError";
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
export const CLI_HEAL_NAMES = {
|
|
20
|
+
selfHeal: "--self-heal",
|
|
21
|
+
changes: "--changes",
|
|
22
|
+
changeNote: "--change-note",
|
|
23
|
+
budget: "--heal-max-*",
|
|
24
|
+
maxAttempts: "--heal-max-attempts",
|
|
25
|
+
maxRunAttempts: "--heal-max-run-attempts",
|
|
26
|
+
maxMs: "--heal-max-ms",
|
|
27
|
+
maxRunMs: "--heal-max-run-ms",
|
|
28
|
+
};
|
|
29
|
+
export const MCP_HEAL_NAMES = {
|
|
30
|
+
selfHeal: "'selfHeal'",
|
|
31
|
+
changes: "'changes'",
|
|
32
|
+
changeNote: "'changeNote'",
|
|
33
|
+
budget: "'healMax*'",
|
|
34
|
+
maxAttempts: "'healMaxAttempts'",
|
|
35
|
+
maxRunAttempts: "'healMaxRunAttempts'",
|
|
36
|
+
maxMs: "'healMaxMs'",
|
|
37
|
+
maxRunMs: "'healMaxRunMs'",
|
|
38
|
+
};
|
|
39
|
+
const hasBudget = (r) => r.maxAttempts !== undefined || r.maxModelCalls !== undefined || r.maxMs !== undefined || r.maxRunAttempts !== undefined || r.maxRunMs !== undefined;
|
|
40
|
+
/**
|
|
41
|
+
* Q1: a heal mode needs a change context (`--changes` and/or `--change-note`) — every break would
|
|
42
|
+
* otherwise be unexplained; the change and budget inputs need a heal mode. The range's syntax and the
|
|
43
|
+
* notes are checked here too (`ChangesArgsError`). Pure: no git, no store, no browser.
|
|
44
|
+
*/
|
|
45
|
+
export function validateJourneyHeal(r, names = CLI_HEAL_NAMES) {
|
|
46
|
+
const context = r.changes !== undefined || r.changeNotes.length > 0;
|
|
47
|
+
if (r.selfHeal === "fail-closed") {
|
|
48
|
+
if (context)
|
|
49
|
+
throw new JourneyHealArgsError(`${r.changes !== undefined ? names.changes : names.changeNote} needs ${names.selfHeal} hybrid|full (a change context only explains a break a self-heal may repair)`);
|
|
50
|
+
if (hasBudget(r))
|
|
51
|
+
throw new JourneyHealArgsError(`${names.budget} needs ${names.selfHeal} hybrid|full`);
|
|
52
|
+
return;
|
|
53
|
+
}
|
|
54
|
+
if (!context) {
|
|
55
|
+
throw new JourneyHealArgsError(`${names.selfHeal} ${r.selfHeal} needs a change context: ${names.changes} <git range> and/or ${names.changeNote} <text> (a self-heal repairs only a break the change explains)`);
|
|
56
|
+
}
|
|
57
|
+
if (r.changes !== undefined)
|
|
58
|
+
parseChangeRange(r.changes);
|
|
59
|
+
validateChangeNotes(r.changeNotes);
|
|
60
|
+
// A run limit below its step limit is refused (fail loud), never silently clamped.
|
|
61
|
+
const stepAttempts = r.maxAttempts ?? DEFAULT_HEAL_BUDGET.perStep.maxAttempts;
|
|
62
|
+
if (r.maxRunAttempts !== undefined && r.maxRunAttempts < stepAttempts) {
|
|
63
|
+
throw new JourneyHealArgsError(`${names.maxRunAttempts} ${r.maxRunAttempts} is below the per-step limit ${stepAttempts} (${names.maxAttempts}) — a run limit is never below its step limit`);
|
|
64
|
+
}
|
|
65
|
+
const stepMs = r.maxMs ?? DEFAULT_HEAL_BUDGET.perStep.maxMs;
|
|
66
|
+
if (r.maxRunMs !== undefined && r.maxRunMs < stepMs) {
|
|
67
|
+
throw new JourneyHealArgsError(`${names.maxRunMs} ${r.maxRunMs} is below the per-step limit ${stepMs} (${names.maxMs}) — a run limit is never below its step limit`);
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* The run's `HealBudget`: the defaults, with the given per-step and per-run limits. A run limit is
|
|
72
|
+
* never below its step limit: a given one below it is refused by `validateJourneyHeal` (exit 64);
|
|
73
|
+
* an unset one defaults to at least the step limit.
|
|
74
|
+
*/
|
|
75
|
+
export function journeyHealBudget(r) {
|
|
76
|
+
const d = DEFAULT_HEAL_BUDGET;
|
|
77
|
+
const perStep = {
|
|
78
|
+
...d.perStep,
|
|
79
|
+
...(r.maxAttempts === undefined ? {} : { maxAttempts: r.maxAttempts }),
|
|
80
|
+
...(r.maxModelCalls === undefined ? {} : { maxModelCalls: r.maxModelCalls }),
|
|
81
|
+
...(r.maxMs === undefined ? {} : { maxMs: r.maxMs }),
|
|
82
|
+
};
|
|
83
|
+
return {
|
|
84
|
+
perStep,
|
|
85
|
+
perRun: {
|
|
86
|
+
...d.perRun,
|
|
87
|
+
maxAttempts: r.maxRunAttempts ?? Math.max(d.perRun.maxAttempts, perStep.maxAttempts),
|
|
88
|
+
maxModelCalls: Math.max(d.perRun.maxModelCalls, perStep.maxModelCalls),
|
|
89
|
+
maxMs: r.maxRunMs ?? Math.max(d.perRun.maxMs, perStep.maxMs),
|
|
90
|
+
},
|
|
91
|
+
};
|
|
92
|
+
}
|
|
93
|
+
/**
|
|
94
|
+
* Reads the change context (read-only git, `readChangeScope`) in the repository that holds the
|
|
95
|
+
* Journeys directory (its git root; the directory itself when it is in none — a range then fails
|
|
96
|
+
* `E_CHANGES_INPUT`). Notes only: no git at all. A fail-closed run has the empty scope.
|
|
97
|
+
*/
|
|
98
|
+
export async function readJourneyChangeScope(r, journeysDir, exec) {
|
|
99
|
+
if (r.selfHeal === "fail-closed")
|
|
100
|
+
return EMPTY_CHANGE_SCOPE;
|
|
101
|
+
const cwd = findGitRoot(journeysDir) ?? journeysDir;
|
|
102
|
+
return readChangeScope({ cwd, notes: r.changeNotes, ...(r.changes === undefined ? {} : { range: r.changes }), ...(exec === undefined ? {} : { exec }) });
|
|
103
|
+
}
|
|
104
|
+
/**
|
|
105
|
+
* #453 (Q2): the risky/irreversible classification of a click/fill step's control, from explore's
|
|
106
|
+
* `SafetyPolicy` (the built-in session-end / destructive / paid vocabulary). Every anchor the target
|
|
107
|
+
* carries is checked — its accessible name, label, text, and its test id / css tokens read as words —
|
|
108
|
+
* so a control addressed only by `data-testid="delete-account"` is still classified. A control with
|
|
109
|
+
* no readable anchor at all is treated as risky: it cannot be classified, so it is never healed.
|
|
110
|
+
*/
|
|
111
|
+
export function journeyStepRisk(policy = new SafetyPolicy()) {
|
|
112
|
+
return (step) => {
|
|
113
|
+
if (!("target" in step) || step.target === undefined)
|
|
114
|
+
return null;
|
|
115
|
+
const names = anchorWords(step.target);
|
|
116
|
+
if (names.length === 0)
|
|
117
|
+
return "unclassifiable";
|
|
118
|
+
const role = step.target.role;
|
|
119
|
+
for (const name of names) {
|
|
120
|
+
const risk = policy.riskOf({ name, role: role ?? "", descriptor: step.target }) ?? controlRisk(name, role)?.risk ?? null;
|
|
121
|
+
if (risk !== null)
|
|
122
|
+
return risk;
|
|
123
|
+
}
|
|
124
|
+
return null;
|
|
125
|
+
};
|
|
126
|
+
}
|
|
127
|
+
function anchorWords(t) {
|
|
128
|
+
const out = [];
|
|
129
|
+
for (const v of [t.name, t.label, t.text])
|
|
130
|
+
if (v !== undefined && v.trim() !== "")
|
|
131
|
+
out.push(v.trim());
|
|
132
|
+
for (const v of [t.testId, t.css]) {
|
|
133
|
+
if (v === undefined)
|
|
134
|
+
continue;
|
|
135
|
+
const words = v.replace(/[^A-Za-z0-9]+/g, " ").replace(/([a-z])([A-Z])/g, "$1 $2").trim();
|
|
136
|
+
if (words !== "")
|
|
137
|
+
out.push(words);
|
|
138
|
+
}
|
|
139
|
+
if (t.container !== undefined)
|
|
140
|
+
out.push(...anchorWords(t.container));
|
|
141
|
+
return out;
|
|
142
|
+
}
|
|
143
|
+
/**
|
|
144
|
+
* #453: the human summary of a self-heal `journey run` (stderr; stdout keeps the JSON result). A
|
|
145
|
+
* proposed revision names each retargeted step and — once the run wrote a proposal (its `proposal.id`
|
|
146
|
+
* on the result) — the review and accept commands; an exhausted or unexplained break names the step.
|
|
147
|
+
*/
|
|
148
|
+
export function journeyRunSummary(id, result) {
|
|
149
|
+
const lines = [];
|
|
150
|
+
switch (result.outcome) {
|
|
151
|
+
case "ok":
|
|
152
|
+
lines.push(`journey ${id}: ok${result.heal === undefined ? "" : " (no heal was needed)"}`);
|
|
153
|
+
break;
|
|
154
|
+
case "healed-pending-review": {
|
|
155
|
+
const n = result.revision.steps.length;
|
|
156
|
+
lines.push(`journey ${id}: healed-pending-review — the run completed only after ${n} step retarget(s); nothing passes until a person accepts the proposed revision`);
|
|
157
|
+
for (const c of result.revision.steps) {
|
|
158
|
+
lines.push(` step ${c.index + 1}${c.stepId === undefined ? "" : ` (${c.stepId})`}: ${describeStep(c.before)} → ${describeStep(c.after)}`);
|
|
159
|
+
lines.push(` because ${c.hypothesis}${c.anchorNotInChange === true ? " (the new anchor appears in no change evidence)" : ""}`);
|
|
160
|
+
}
|
|
161
|
+
const pid = typeof result.proposal?.id === "string" ? result.proposal.id : undefined;
|
|
162
|
+
if (pid !== undefined) {
|
|
163
|
+
lines.push(`next: jevitate journey review ${id}`);
|
|
164
|
+
lines.push(`next: jevitate journey promote ${id} --proposal ${pid}`);
|
|
165
|
+
}
|
|
166
|
+
break;
|
|
167
|
+
}
|
|
168
|
+
case "heal-exhausted":
|
|
169
|
+
lines.push(`journey ${id}: heal-exhausted — ${result.reason}`);
|
|
170
|
+
break;
|
|
171
|
+
case "quarantined":
|
|
172
|
+
lines.push(`journey ${id}: quarantined — ${result.reason}`);
|
|
173
|
+
break;
|
|
174
|
+
}
|
|
175
|
+
const attempts = result.heal?.attempts.length ?? 0;
|
|
176
|
+
if (attempts > 0)
|
|
177
|
+
lines.push(` heal attempts: ${attempts} (verdict ${result.heal?.verdict ?? "unknown"})`);
|
|
178
|
+
return `${lines.join("\n")}\n`;
|
|
179
|
+
}
|
|
180
|
+
//# sourceMappingURL=journey-heal.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"journey-heal.js","sourceRoot":"","sources":["../src/journey-heal.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,9 +1,10 @@
|
|
|
1
|
-
import type
|
|
1
|
+
import { type JourneyLintFinding } from "@jevitate/journey";
|
|
2
2
|
/**
|
|
3
3
|
* #401: SARIF 2.1.0 for `journey lint`, so CI can gate on assertion strength the same way it does
|
|
4
4
|
* on `jevitate check` findings. One tool driver (`jevitate-journey-lint`) lists every rule; one
|
|
5
5
|
* result per finding carries its level and message, located at the journey id and (when present)
|
|
6
|
-
* `step N` as logical locations.
|
|
6
|
+
* `step N` as logical locations. #466: the anchor rules are warnings; a finding's fix is appended to
|
|
7
|
+
* its message and kept as `properties.fix`.
|
|
7
8
|
*/
|
|
8
9
|
export declare const JOURNEY_LINT_SARIF_SCHEMA = "https://json.schemastore.org/sarif-2.1.0.json";
|
|
9
10
|
export interface JourneyLintSarifLog {
|
|
@@ -1,8 +1,10 @@
|
|
|
1
|
+
import { ANCHOR_RULE_CODES } from "@jevitate/journey";
|
|
1
2
|
/**
|
|
2
3
|
* #401: SARIF 2.1.0 for `journey lint`, so CI can gate on assertion strength the same way it does
|
|
3
4
|
* on `jevitate check` findings. One tool driver (`jevitate-journey-lint`) lists every rule; one
|
|
4
5
|
* result per finding carries its level and message, located at the journey id and (when present)
|
|
5
|
-
* `step N` as logical locations.
|
|
6
|
+
* `step N` as logical locations. #466: the anchor rules are warnings; a finding's fix is appended to
|
|
7
|
+
* its message and kept as `properties.fix`.
|
|
6
8
|
*/
|
|
7
9
|
export const JOURNEY_LINT_SARIF_SCHEMA = "https://json.schemastore.org/sarif-2.1.0.json";
|
|
8
10
|
/** #401: every rule the lint can report, with the severity it reports it at. */
|
|
@@ -13,6 +15,10 @@ const RULES = [
|
|
|
13
15
|
{ id: "nothing-after-last-write", level: "error" },
|
|
14
16
|
{ id: "no-persistence-check", level: "warning" },
|
|
15
17
|
{ id: "intent-uncovered", level: "warning" },
|
|
18
|
+
// #466: the 0.10 anchor rules — warnings on a Journey as it is; `journey promote` enforces them on new content.
|
|
19
|
+
...ANCHOR_RULE_CODES.map((id) => ({ id, level: "warning" })),
|
|
20
|
+
{ id: "anchor-job-step", level: "warning" },
|
|
21
|
+
{ id: "serves-outcome", level: "warning" },
|
|
16
22
|
];
|
|
17
23
|
export function renderJourneyLintSarif(input) {
|
|
18
24
|
const rules = RULES.map((rule) => ({
|
|
@@ -24,7 +30,8 @@ export function renderJourneyLintSarif(input) {
|
|
|
24
30
|
const results = input.findings.map((finding) => ({
|
|
25
31
|
ruleId: finding.rule,
|
|
26
32
|
level: finding.level,
|
|
27
|
-
message: { text: finding.message },
|
|
33
|
+
message: { text: finding.fix === undefined ? finding.message : `${finding.message} — fix: ${finding.fix}` },
|
|
34
|
+
...(finding.fix === undefined ? {} : { properties: { fix: finding.fix } }),
|
|
28
35
|
locations: [
|
|
29
36
|
{
|
|
30
37
|
logicalLocations: [
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"journey-lint-sarif.js","sourceRoot":"","sources":["../src/journey-lint-sarif.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"journey-lint-sarif.js","sourceRoot":"","sources":["../src/journey-lint-sarif.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAiD,MAAM,mBAAmB,CAAC;AAErG;;;;;;GAMG;AAEH,MAAM,CAAC,MAAM,yBAAyB,GAAG,+CAA+C,CAAC;AAEzF,gFAAgF;AAChF,MAAM,KAAK,GAAuE;IAChF,EAAE,EAAE,EAAE,oBAAoB,EAAE,KAAK,EAAE,OAAO,EAAE;IAC5C,EAAE,EAAE,EAAE,sBAAsB,EAAE,KAAK,EAAE,OAAO,EAAE;IAC9C,EAAE,EAAE,EAAE,iBAAiB,EAAE,KAAK,EAAE,OAAO,EAAE;IACzC,EAAE,EAAE,EAAE,0BAA0B,EAAE,KAAK,EAAE,OAAO,EAAE;IAClD,EAAE,EAAE,EAAE,sBAAsB,EAAE,KAAK,EAAE,SAAS,EAAE;IAChD,EAAE,EAAE,EAAE,kBAAkB,EAAE,KAAK,EAAE,SAAS,EAAE;IAC5C,gHAAgH;IAChH,GAAG,iBAAiB,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,SAAkB,EAAE,CAAC,CAAC;IACrE,EAAE,EAAE,EAAE,iBAAiB,EAAE,KAAK,EAAE,SAAS,EAAE;IAC3C,EAAE,EAAE,EAAE,gBAAgB,EAAE,KAAK,EAAE,SAAS,EAAE;CAC3C,CAAC;AAcF,MAAM,UAAU,sBAAsB,CAAC,KAA4B;IACjE,MAAM,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QACjC,EAAE,EAAE,IAAI,CAAC,EAAE;QACX,IAAI,EAAE,IAAI,CAAC,EAAE;QACb,gBAAgB,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,EAAE;QACnC,oBAAoB,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE;KAC5C,CAAC,CAAC,CAAC;IACJ,MAAM,OAAO,GAAG,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;QAC/C,MAAM,EAAE,OAAO,CAAC,IAAI;QACpB,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,OAAO,EAAE,EAAE,IAAI,EAAE,OAAO,CAAC,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,OAAO,WAAW,OAAO,CAAC,GAAG,EAAE,EAAE;QAC3G,GAAG,CAAC,OAAO,CAAC,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC;QAC1E,SAAS,EAAE;YACT;gBACE,gBAAgB,EAAE;oBAChB,EAAE,IAAI,EAAE,KAAK,CAAC,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;oBAClC,GAAG,CAAC,OAAO,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,QAAQ,OAAO,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,CAAC;iBAC5F;aACF;SACF;KACF,CAAC,CAAC,CAAC;IACJ,OAAO;QACL,OAAO,EAAE,yBAAyB;QAClC,OAAO,EAAE,OAAO;QAChB,IAAI,EAAE;YACJ;gBACE,IAAI,EAAE,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,uBAAuB,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE;gBAClF,OAAO;aACR;SACF;KACF,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* #467b — `jevitate journey migrate --step-ids`: the one-time repo rewrite that mints a stable
|
|
3
|
+
* `stepId` (short slug, e.g. `s-7f3k2a`, `[a-z0-9._:-]`, unique within a Journey) on every recorded
|
|
4
|
+
* step that has none — every Journey in the journeys dir and every other recording under the project
|
|
5
|
+
* dir — and points each anchor at its step by `stepId`. Ids already present are kept.
|
|
6
|
+
*
|
|
7
|
+
* It changes every promoted Journey's content hash, so each one needs re-approval afterwards: the
|
|
8
|
+
* result lists them, and `jevitate journey review --stale` lists them later (labelled stepId-only).
|
|
9
|
+
* It never approves. CLI only (a one-time rewrite of the repo the operator runs and commits; no MCP
|
|
10
|
+
* tool — see EXCLUDED in mcp-cli-parity.test.ts).
|
|
11
|
+
*
|
|
12
|
+
* Scope: every local Journey (promoted or draft, namespace folders included) via the journey store,
|
|
13
|
+
* so formatting and file mode match every other write. NOT migrated: the sources cache (remote
|
|
14
|
+
* Journeys are content-hash-trusted and never rewritten) and `.jevitate/logs` recordings (TTL run
|
|
15
|
+
* output). Also migrated: committed regression recordings (`<project>/regressions/*.recording.json`),
|
|
16
|
+
* written in `commitRegression`'s format. Only the recording file is rewritten, never `*.meta.json`:
|
|
17
|
+
* the regression fingerprint is `strictSignature(step, pageUrl)` (step content, not `stepId`) and the
|
|
18
|
+
* invariant oracle indexes by flat step position, so neither is invalidated by the ids.
|
|
19
|
+
* Never mints on read; idempotent (a second run finds nothing to change).
|
|
20
|
+
*/
|
|
21
|
+
export interface MigrateStepIdsRequest {
|
|
22
|
+
/** The journeys dir (`--dir`, else the repo's `.jevitate/journeys`). */
|
|
23
|
+
readonly journeysDir: string;
|
|
24
|
+
/** The project data dir (`.jevitate/`) whose other recordings (regressions, recordings) are backfilled too; null outside a project. */
|
|
25
|
+
readonly projectDir: string | null;
|
|
26
|
+
/** `--dry-run`: report what would change, write nothing. */
|
|
27
|
+
readonly dryRun: boolean;
|
|
28
|
+
}
|
|
29
|
+
export interface MigratedJourney {
|
|
30
|
+
readonly id: string;
|
|
31
|
+
/** Steps that received a new `stepId`. */
|
|
32
|
+
readonly stepsMinted: number;
|
|
33
|
+
/** Anchors re-pointed by `stepId`. */
|
|
34
|
+
readonly anchorsLinked: number;
|
|
35
|
+
/** True when it was promoted with an approval its new hash no longer matches. */
|
|
36
|
+
readonly needsReapproval: boolean;
|
|
37
|
+
}
|
|
38
|
+
export interface MigratedRecording {
|
|
39
|
+
readonly path: string;
|
|
40
|
+
readonly stepsMinted: number;
|
|
41
|
+
}
|
|
42
|
+
export interface MigrateStepIdsResult {
|
|
43
|
+
readonly dryRun: boolean;
|
|
44
|
+
readonly journeys: readonly MigratedJourney[];
|
|
45
|
+
readonly recordings: readonly MigratedRecording[];
|
|
46
|
+
readonly totals: {
|
|
47
|
+
readonly files: number;
|
|
48
|
+
readonly stepsMinted: number;
|
|
49
|
+
readonly needsReapproval: number;
|
|
50
|
+
};
|
|
51
|
+
}
|
|
52
|
+
export declare function migrateStepIds(req: MigrateStepIdsRequest): Promise<MigrateStepIdsResult>;
|
|
53
|
+
/** The human rendering (no `--json`). */
|
|
54
|
+
export declare function renderMigrateStepIds(r: MigrateStepIdsResult): string;
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
import { FsJourneyStore, stampAnchorStepIds } from "@jevitate/journey";
|
|
2
|
+
import { ensureStepIds, RecordingSchema } from "@jevitate/recording";
|
|
3
|
+
import { readdir, readFile, writeFile } from "node:fs/promises";
|
|
4
|
+
import { join } from "node:path";
|
|
5
|
+
export async function migrateStepIds(req) {
|
|
6
|
+
const store = new FsJourneyStore(req.journeysDir);
|
|
7
|
+
const journeys = [];
|
|
8
|
+
for (const meta of await store.list()) {
|
|
9
|
+
const before = await store.get(meta.id);
|
|
10
|
+
if (before === null)
|
|
11
|
+
continue;
|
|
12
|
+
const withIds = { ...before, recording: ensureStepIds(before.recording) };
|
|
13
|
+
const after = stampAnchorStepIds(withIds);
|
|
14
|
+
const stepsMinted = countIds(after) - countIds(before);
|
|
15
|
+
const anchorsLinked = countAnchorIds(after) - countAnchorIds(before);
|
|
16
|
+
if (stepsMinted === 0 && anchorsLinked === 0)
|
|
17
|
+
continue;
|
|
18
|
+
if (!req.dryRun)
|
|
19
|
+
await store.put(after);
|
|
20
|
+
journeys.push({ id: meta.id, stepsMinted, anchorsLinked, needsReapproval: before.metadata.promoted });
|
|
21
|
+
}
|
|
22
|
+
const recordings = req.projectDir === null ? [] : await migrateRegressions(join(req.projectDir, "regressions"), req.dryRun);
|
|
23
|
+
return {
|
|
24
|
+
dryRun: req.dryRun,
|
|
25
|
+
journeys,
|
|
26
|
+
recordings,
|
|
27
|
+
totals: {
|
|
28
|
+
files: journeys.length + recordings.length,
|
|
29
|
+
stepsMinted: journeys.reduce((n, j) => n + j.stepsMinted, 0) + recordings.reduce((n, r) => n + r.stepsMinted, 0),
|
|
30
|
+
needsReapproval: journeys.filter((j) => j.needsReapproval).length,
|
|
31
|
+
},
|
|
32
|
+
};
|
|
33
|
+
}
|
|
34
|
+
async function migrateRegressions(dir, dryRun) {
|
|
35
|
+
let names;
|
|
36
|
+
try {
|
|
37
|
+
names = (await readdir(dir)).filter((n) => n.endsWith(".recording.json")).sort();
|
|
38
|
+
}
|
|
39
|
+
catch {
|
|
40
|
+
return [];
|
|
41
|
+
}
|
|
42
|
+
const out = [];
|
|
43
|
+
for (const name of names) {
|
|
44
|
+
const path = join(dir, name);
|
|
45
|
+
const rec = RecordingSchema.parse(JSON.parse(await readFile(path, "utf8")));
|
|
46
|
+
const next = ensureStepIds(rec);
|
|
47
|
+
if (next === rec)
|
|
48
|
+
continue;
|
|
49
|
+
if (!dryRun)
|
|
50
|
+
await writeFile(path, `${JSON.stringify(RecordingSchema.parse(next), null, 2)}\n`);
|
|
51
|
+
out.push({ path, stepsMinted: countRecIds(next) - countRecIds(rec) });
|
|
52
|
+
}
|
|
53
|
+
return out;
|
|
54
|
+
}
|
|
55
|
+
const countRecIds = (r) => r.pages.reduce((n, p) => n + p.steps.filter((s) => s.stepId !== undefined).length, 0);
|
|
56
|
+
const countIds = (j) => j.recording.pages.reduce((n, p) => n + p.steps.filter((s) => s.stepId !== undefined).length, 0);
|
|
57
|
+
const countAnchorIds = (j) => (j.metadata.anchors ?? []).filter((a) => a.stepId !== undefined).length;
|
|
58
|
+
/** The human rendering (no `--json`). */
|
|
59
|
+
export function renderMigrateStepIds(r) {
|
|
60
|
+
const verb = r.dryRun ? "would mint" : "minted";
|
|
61
|
+
return (`${verb} ${r.totals.stepsMinted} step id(s) in ${r.totals.files} file(s); ${r.totals.needsReapproval} promoted Journey(s) need re-approval\n` +
|
|
62
|
+
(r.totals.needsReapproval > 0 ? "next: jevitate journey review --stale\n" : ""));
|
|
63
|
+
}
|
|
64
|
+
//# sourceMappingURL=journey-migrate-api.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"journey-migrate-api.js","sourceRoot":"","sources":["../src/journey-migrate-api.ts"],"names":[],"mappings":"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"}
|
|
@@ -41,7 +41,11 @@ export declare class JourneyOutcomeChecks {
|
|
|
41
41
|
get active(): boolean;
|
|
42
42
|
/** #402: the failed assertion sites of the last `run` (empty when every check held, or none ran). */
|
|
43
43
|
get lastFailures(): readonly OutcomeCheckFailure[];
|
|
44
|
-
/**
|
|
44
|
+
/**
|
|
45
|
+
* Starts a step's request window as it begins (never changes the replay). #453: the window
|
|
46
|
+
* RESTARTS each time the step runs again — a failed original attempt or a rejected heal probe's
|
|
47
|
+
* requests never satisfy the expectations of the attempt that finally passed.
|
|
48
|
+
*/
|
|
45
49
|
observer(): StepObserver | undefined;
|
|
46
50
|
/**
|
|
47
51
|
* Runs `replay` with the page's requests captured, then judges the checks. A replay that already
|
|
@@ -33,17 +33,24 @@ export class JourneyOutcomeChecks {
|
|
|
33
33
|
get lastFailures() {
|
|
34
34
|
return this.#lastFailures;
|
|
35
35
|
}
|
|
36
|
-
/**
|
|
36
|
+
/**
|
|
37
|
+
* Starts a step's request window as it begins (never changes the replay). #453: the window
|
|
38
|
+
* RESTARTS each time the step runs again — a failed original attempt or a rejected heal probe's
|
|
39
|
+
* requests never satisfy the expectations of the attempt that finally passed.
|
|
40
|
+
*/
|
|
37
41
|
observer() {
|
|
38
42
|
if (this.#steps.length === 0)
|
|
39
43
|
return undefined;
|
|
40
44
|
return {
|
|
41
45
|
beforeStep: async ({ index }) => {
|
|
42
46
|
const w = this.#steps.find((s) => s.index === index);
|
|
43
|
-
if (w === undefined
|
|
47
|
+
if (w === undefined)
|
|
44
48
|
return;
|
|
49
|
+
const monitor = monitorFor(this.#page);
|
|
50
|
+
if (w.capture !== undefined)
|
|
51
|
+
monitor.stopCapture(w.capture);
|
|
45
52
|
w.startedAt = clock.now();
|
|
46
|
-
w.capture =
|
|
53
|
+
w.capture = monitor.startCapture();
|
|
47
54
|
},
|
|
48
55
|
};
|
|
49
56
|
}
|
|
@@ -64,7 +71,7 @@ export class JourneyOutcomeChecks {
|
|
|
64
71
|
let result;
|
|
65
72
|
try {
|
|
66
73
|
result = await replay();
|
|
67
|
-
if (result.outcome === "quarantined")
|
|
74
|
+
if (result.outcome === "quarantined" || result.outcome === "heal-exhausted")
|
|
68
75
|
return result;
|
|
69
76
|
// A step's postcondition can hold before the write it triggered finished: wait for the network
|
|
70
77
|
// to go idle (bounded) before reading what was sent.
|
|
@@ -117,6 +124,10 @@ export class JourneyOutcomeChecks {
|
|
|
117
124
|
];
|
|
118
125
|
if (reasons.length === 0)
|
|
119
126
|
return result;
|
|
127
|
+
// #453: a healed run whose end state does not hold proposes nothing — it is a failure.
|
|
128
|
+
if (result.outcome === "healed-pending-review") {
|
|
129
|
+
return { outcome: "quarantined", reason: `the healed run's end state differs from the Journey's assertions: ${reasons.join("; ")}`, ...(result.heal === undefined ? {} : { heal: result.heal }) };
|
|
130
|
+
}
|
|
120
131
|
return { outcome: "quarantined", reason: reasons.join("; ") };
|
|
121
132
|
}
|
|
122
133
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"journey-network-checks.js","sourceRoot":"","sources":["../src/journey-network-checks.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,eAAe,EAAgB,MAAM,mBAAmB,CAAC;AAIlE,OAAO,EAAE,oBAAoB,EAAqB,MAAM,uBAAuB,CAAC;AAChF,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACzC,OAAO,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,UAAU,EAAgD,MAAM,mBAAmB,CAAC;AAE1I,8FAA8F;AAC9F,MAAM,iBAAiB,GAAG,KAAK,CAAC;AAyBhC,MAAM,OAAO,oBAAoB;IACtB,KAAK,CAAO;IACZ,IAAI,CAAC;IACL,MAAM,CAAe;IACrB,QAAQ,CAAoB;IACrC,aAAa,GAAmC,EAAE,CAAC;IAEnD,uEAAuE;IACvE,YAAY,IAAU,EAAE,OAA4B,EAAE,OAAiD,EAAE;QACvG,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;QAClB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,OAAO,IAAI,EAAE,CAAC;QACnC,IAAI,CAAC,IAAI,GAAG,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;QAClE,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;QACjB,IAAI,CAAC,GAAG,CAAC,CAAC;QACV,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,SAAS,CAAC,KAAK,IAAI,EAAE,EAAE,CAAC;YAC/C,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,CAAC;gBACxB,IAAI,CAAC,CAAC,CAAC,cAAc,IAAI,EAAE,CAAC,CAAC,MAAM,GAAG,CAAC;oBAAE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,cAAc,IAAI,EAAE,EAAE,CAAC,CAAC;gBACrI,CAAC,IAAI,CAAC,CAAC;YACT,CAAC;QACH,CAAC;IACH,CAAC;IAED,IAAI,MAAM;QACR,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;IACxD,CAAC;IAED,qGAAqG;IACrG,IAAI,YAAY;QACd,OAAO,IAAI,CAAC,aAAa,CAAC;IAC5B,CAAC;IAED
|
|
1
|
+
{"version":3,"file":"journey-network-checks.js","sourceRoot":"","sources":["../src/journey-network-checks.ts"],"names":[],"mappings":"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"}
|
package/dist/journey-prefix.js
CHANGED
|
@@ -170,9 +170,9 @@ export async function resolveJourneyPrefix(opts) {
|
|
|
170
170
|
throw new JourneyPrefixStaleError(`journey '${opts.id}' did not replay to ${where}: ${message}`, branch, undefined, await stalePageEvidence(session.page, secretValues));
|
|
171
171
|
}
|
|
172
172
|
if (run.outcome !== "ok") {
|
|
173
|
-
const failed = run.outcome === "quarantined" && run.at !== undefined ? run.at + 1 : undefined;
|
|
173
|
+
const failed = (run.outcome === "quarantined" || run.outcome === "heal-exhausted") && run.at !== undefined ? run.at + 1 : undefined;
|
|
174
174
|
// #398: the runner's reason names the failed step 1-based, like `--at-step` and `failedStep`.
|
|
175
|
-
const reason = run.outcome === "quarantined" ? run.reason : "the replay healed a step (a self-healed prefix is never a branch point)";
|
|
175
|
+
const reason = run.outcome === "quarantined" || run.outcome === "heal-exhausted" ? run.reason : "the replay healed a step (a self-healed prefix is never a branch point)";
|
|
176
176
|
throw new JourneyPrefixStaleError(`journey '${opts.id}' is stale: it no longer reaches ${where} — ${reason}`, branch, failed, await stalePageEvidence(session.page, secretValues));
|
|
177
177
|
}
|
|
178
178
|
return session.page.url();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"journey-prefix.js","sourceRoot":"","sources":["../src/journey-prefix.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"journey-prefix.js","sourceRoot":"","sources":["../src/journey-prefix.ts"],"names":[],"mappings":"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"}
|