@intentius/sql-yodeler 0.3.0 → 0.5.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/README.md +2 -2
- package/dist/apply-steps/index.d.ts +65 -0
- package/dist/apply-steps/index.js +106 -0
- package/dist/apply-steps/index.js.map +1 -0
- package/dist/approval-mode/index.d.ts +78 -0
- package/dist/approval-mode/index.js +105 -0
- package/dist/approval-mode/index.js.map +1 -0
- package/dist/chant/access.d.ts +84 -0
- package/dist/chant/access.js +155 -0
- package/dist/chant/access.js.map +1 -0
- package/dist/chant/drift.d.ts +17 -1
- package/dist/chant/drift.js +55 -2
- package/dist/chant/drift.js.map +1 -1
- package/dist/chant/plan.d.ts +18 -2
- package/dist/chant/plan.js +21 -3
- package/dist/chant/plan.js.map +1 -1
- package/dist/ci/login.d.ts +78 -0
- package/dist/ci/login.js +199 -0
- package/dist/ci/login.js.map +1 -0
- package/dist/ci/render.d.ts +64 -10
- package/dist/ci/render.js +385 -88
- package/dist/ci/render.js.map +1 -1
- package/dist/cleanup/index.d.ts +92 -0
- package/dist/cleanup/index.js +213 -0
- package/dist/cleanup/index.js.map +1 -0
- package/dist/commands/apply.js +178 -20
- package/dist/commands/apply.js.map +1 -1
- package/dist/commands/approve.d.ts +13 -0
- package/dist/commands/approve.js +206 -24
- package/dist/commands/approve.js.map +1 -1
- package/dist/commands/ci.js +12 -0
- package/dist/commands/ci.js.map +1 -1
- package/dist/commands/cleanup.d.ts +13 -0
- package/dist/commands/cleanup.js +158 -0
- package/dist/commands/cleanup.js.map +1 -0
- package/dist/commands/config.d.ts +3 -0
- package/dist/commands/config.js +136 -0
- package/dist/commands/config.js.map +1 -0
- package/dist/commands/drift.js +33 -3
- package/dist/commands/drift.js.map +1 -1
- package/dist/commands/index.js +6 -0
- package/dist/commands/index.js.map +1 -1
- package/dist/commands/init.d.ts +11 -0
- package/dist/commands/init.js +98 -10
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/lint.js +67 -10
- package/dist/commands/lint.js.map +1 -1
- package/dist/commands/new.js +135 -54
- package/dist/commands/new.js.map +1 -1
- package/dist/commands/plan.js +39 -5
- package/dist/commands/plan.js.map +1 -1
- package/dist/commands/test.d.ts +3 -0
- package/dist/commands/test.js +164 -0
- package/dist/commands/test.js.map +1 -0
- package/dist/config/define.d.ts +175 -2
- package/dist/config/define.js +2 -0
- package/dist/config/define.js.map +1 -1
- package/dist/config/load.js +78 -10
- package/dist/config/load.js.map +1 -1
- package/dist/config/settings.d.ts +20 -0
- package/dist/config/settings.js +28 -0
- package/dist/config/settings.js.map +1 -1
- package/dist/credentials.d.ts +119 -0
- package/dist/credentials.js +119 -0
- package/dist/credentials.js.map +1 -0
- package/dist/exit.js +1 -1
- package/dist/exit.js.map +1 -1
- package/dist/index.d.ts +5 -1
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/init/adopt.js +1 -1
- package/dist/init/adopt.js.map +1 -1
- package/dist/init/clickhouse-access.d.ts +64 -0
- package/dist/init/clickhouse-access.js +211 -0
- package/dist/init/clickhouse-access.js.map +1 -0
- package/dist/init/index.d.ts +2 -0
- package/dist/init/index.js +2 -0
- package/dist/init/index.js.map +1 -1
- package/dist/init/live.d.ts +4 -0
- package/dist/init/live.js +16 -0
- package/dist/init/live.js.map +1 -1
- package/dist/init/second.d.ts +70 -0
- package/dist/init/second.js +149 -0
- package/dist/init/second.js.map +1 -0
- package/dist/lint/access.d.ts +18 -0
- package/dist/lint/access.js +34 -0
- package/dist/lint/access.js.map +1 -0
- package/dist/lint/annotations.d.ts +49 -0
- package/dist/lint/annotations.js +82 -0
- package/dist/lint/annotations.js.map +1 -0
- package/dist/lint/check.js +25 -7
- package/dist/lint/check.js.map +1 -1
- package/dist/lint/config.d.ts +7 -1
- package/dist/lint/config.js +11 -5
- package/dist/lint/config.js.map +1 -1
- package/dist/lint/index.d.ts +4 -0
- package/dist/lint/index.js +4 -0
- package/dist/lint/index.js.map +1 -1
- package/dist/lint/naming.d.ts +62 -0
- package/dist/lint/naming.js +138 -0
- package/dist/lint/naming.js.map +1 -0
- package/dist/lint/rules.d.ts +37 -4
- package/dist/lint/rules.js +16 -4
- package/dist/lint/rules.js.map +1 -1
- package/dist/lint/schema-checks.d.ts +63 -0
- package/dist/lint/schema-checks.js +128 -0
- package/dist/lint/schema-checks.js.map +1 -0
- package/dist/lint/statements.d.ts +22 -1
- package/dist/lint/statements.js +40 -1
- package/dist/lint/statements.js.map +1 -1
- package/dist/mcp/tools.d.ts +1 -1
- package/dist/mcp/tools.js +1 -1
- package/dist/mcp/tools.js.map +1 -1
- package/dist/migrations/checkpoint.js +0 -2
- package/dist/migrations/checkpoint.js.map +1 -1
- package/dist/migrations/checks.d.ts +19 -1
- package/dist/migrations/checks.js +15 -0
- package/dist/migrations/checks.js.map +1 -1
- package/dist/migrations/create.d.ts +13 -4
- package/dist/migrations/create.js +24 -9
- package/dist/migrations/create.js.map +1 -1
- package/dist/migrations/routines.d.ts +5 -15
- package/dist/migrations/routines.js +5 -30
- package/dist/migrations/routines.js.map +1 -1
- package/dist/pr/model.d.ts +4 -1
- package/dist/pr/model.js +13 -5
- package/dist/pr/model.js.map +1 -1
- package/dist/pr/render.d.ts +4 -1
- package/dist/pr/render.js +22 -8
- package/dist/pr/render.js.map +1 -1
- package/dist/pr/tenants.d.ts +37 -0
- package/dist/pr/tenants.js +138 -0
- package/dist/pr/tenants.js.map +1 -0
- package/dist/probe.d.ts +27 -0
- package/dist/probe.js +106 -0
- package/dist/probe.js.map +1 -0
- package/dist/project.d.ts +16 -0
- package/dist/project.js +29 -1
- package/dist/project.js.map +1 -1
- package/dist/replay/clickhouse.d.ts +31 -0
- package/dist/replay/clickhouse.js +103 -6
- package/dist/replay/clickhouse.js.map +1 -1
- package/dist/replay/replay.d.ts +5 -2
- package/dist/replay/replay.js.map +1 -1
- package/dist/report/audit.d.ts +1 -1
- package/dist/report/audit.js +20 -3
- package/dist/report/audit.js.map +1 -1
- package/dist/schemas.d.ts +3 -1
- package/dist/schemas.js +2 -0
- package/dist/schemas.js.map +1 -1
- package/dist/sources/ddl.d.ts +15 -20
- package/dist/sources/ddl.js +34 -328
- package/dist/sources/ddl.js.map +1 -1
- package/dist/sources/index.js +2 -2
- package/dist/sources/index.js.map +1 -1
- package/dist/steps/backfill.d.ts +40 -5
- package/dist/steps/backfill.js +128 -8
- package/dist/steps/backfill.js.map +1 -1
- package/dist/steps/index.d.ts +19 -1
- package/dist/steps/index.js +34 -7
- package/dist/steps/index.js.map +1 -1
- package/dist/steps/kinds.d.ts +42 -4
- package/dist/steps/kinds.js +88 -14
- package/dist/steps/kinds.js.map +1 -1
- package/dist/steps/postgres-migration.d.ts +3 -0
- package/dist/steps/postgres-migration.js +7 -3
- package/dist/steps/postgres-migration.js.map +1 -1
- package/dist/steps/rebuild.d.ts +15 -6
- package/dist/steps/rebuild.js +12 -9
- package/dist/steps/rebuild.js.map +1 -1
- package/dist/tenants/index.d.ts +2 -1
- package/dist/tenants/index.js +3 -4
- package/dist/tenants/index.js.map +1 -1
- package/dist/tenants/wave.d.ts +128 -0
- package/dist/tenants/wave.js +254 -0
- package/dist/tenants/wave.js.map +1 -0
- package/dist/testing/define.d.ts +62 -0
- package/dist/testing/define.js +32 -0
- package/dist/testing/define.js.map +1 -0
- package/dist/testing/files.d.ts +5 -0
- package/dist/testing/files.js +18 -0
- package/dist/testing/files.js.map +1 -0
- package/dist/testing/report.d.ts +14 -0
- package/dist/testing/report.js +83 -0
- package/dist/testing/report.js.map +1 -0
- package/dist/testing/run.d.ts +104 -0
- package/dist/testing/run.js +328 -0
- package/dist/testing/run.js.map +1 -0
- package/dist/versioned/approval.d.ts +6 -0
- package/dist/versioned/approval.js +11 -5
- package/dist/versioned/approval.js.map +1 -1
- package/dist/versioned/checks.d.ts +8 -2
- package/dist/versioned/checks.js +34 -13
- package/dist/versioned/checks.js.map +1 -1
- package/dist/versioned/driver.d.ts +2 -2
- package/dist/versioned/engine.d.ts +10 -0
- package/dist/versioned/engine.js +8 -4
- package/dist/versioned/engine.js.map +1 -1
- package/dist/versioned/explain.d.ts +2 -0
- package/dist/versioned/explain.js +3 -1
- package/dist/versioned/explain.js.map +1 -1
- package/dist/versioned/op.d.ts +4 -0
- package/dist/versioned/op.js +5 -2
- package/dist/versioned/op.js.map +1 -1
- package/dist/versioned/state.js +1 -1
- package/dist/versioned/state.js.map +1 -1
- package/dist/waves/index.d.ts +58 -13
- package/dist/waves/index.js +109 -24
- package/dist/waves/index.js.map +1 -1
- package/dist/waves/record.d.ts +10 -0
- package/dist/waves/record.js.map +1 -1
- package/package.json +8 -7
- package/schemas/apply.schema.json +1 -1
- package/schemas/cleanup.schema.json +40 -0
- package/schemas/init.schema.json +51 -22
- package/schemas/lint-rules.schema.json +4 -0
- package/schemas/new.schema.json +41 -3
- package/schemas/plan.schema.json +39 -0
- package/schemas/report.schema.json +1 -1
- package/schemas/test.schema.json +41 -0
package/dist/commands/lint.js
CHANGED
|
@@ -1,12 +1,14 @@
|
|
|
1
|
+
import { writeFileSync } from "node:fs";
|
|
2
|
+
import { resolve } from "node:path";
|
|
1
3
|
import { parseArgs } from "node:util";
|
|
2
4
|
import { guarded } from "../env-args.js";
|
|
3
5
|
import { loadProject, resolveEnvironment, YodelError } from "../project.js";
|
|
4
6
|
import { scanMigrations } from "../migrations/index.js";
|
|
5
7
|
import { inspect, migrationsDir, openVersioned } from "../versioned/index.js";
|
|
6
|
-
import { LINT_RULES, lintExitCode, lintJson, lintMigrations, lintSettings, renderLint, updateChecksum } from "../lint/index.js";
|
|
8
|
+
import { chantLevel, CODE_QUALITY_FILE, codeQuality, LINT_FORMATS, workflowCommands, LINT_RULES, SCHEMA_RULES, lintExitCode, lintJson, lintMigrations, lintSettings, renderLint, updateChecksum } from "../lint/index.js";
|
|
7
9
|
import { projectRules, REPLAY_RULE, replayRule } from "../lint/project-rules.js";
|
|
8
10
|
import { renderReplay, replayHistory, replayJson } from "../replay/index.js";
|
|
9
|
-
const usage = "usage: yodel lint [--env <env>] [--replay <env> [--reset] [--reset-shared <profile>]... [--keep]] [--json] [--dir <project>] [--update-checksum <id>]... [--rules]";
|
|
11
|
+
const usage = "usage: yodel lint [--env <env>] [--replay <env> [--reset] [--reset-shared <profile>]... [--keep]] [--json | --format <format> [--output <file>]] [--dir <project>] [--update-checksum <id>]... [--rules]";
|
|
10
12
|
const help = `${usage}
|
|
11
13
|
|
|
12
14
|
Checks the migrations directory against every lint rule, offline: no server
|
|
@@ -26,8 +28,18 @@ Rules (yodel lint --rules lists them with their levels):
|
|
|
26
28
|
pg-lock Postgres: writes blocked for a whole index build or scan
|
|
27
29
|
pg-signature Postgres: a function or procedure dropped and created
|
|
28
30
|
with another signature or result
|
|
31
|
+
data-dependent Postgres: a statement that can fail on the rows already
|
|
32
|
+
there (a unique index over duplicates, SET NOT NULL
|
|
33
|
+
over NULLs), shown with the pre-check yodel apply runs
|
|
34
|
+
before the migration's first statement; a warning
|
|
35
|
+
naming a table, column, index or constraint the migration adds
|
|
36
|
+
breaks yodel.config.ts lint.naming
|
|
37
|
+
SQLPG1xx, SQLCH1xx the sql lexicon's schema checks (chant lint's), on each
|
|
38
|
+
migration's recorded schema: what it adds to its
|
|
39
|
+
parent's
|
|
29
40
|
ch-mutation ClickHouse: a mutation rewriting parts, no rollback
|
|
30
41
|
ch-rebuild ClickHouse: a rebuild (ClickHouseRebuildOp)
|
|
42
|
+
ch-access ClickHouse: a privilege or role revoked
|
|
31
43
|
refused-step a step yodel apply refuses (a manual step, an Op it
|
|
32
44
|
does not run)
|
|
33
45
|
pg-routine-in-use Postgres: a function dropped while a declared trigger
|
|
@@ -44,7 +56,8 @@ Rules (yodel lint --rules lists them with their levels):
|
|
|
44
56
|
Silencing: a line above a statement in its migration.sql,
|
|
45
57
|
-- yodel:allow <rule> <reason>
|
|
46
58
|
silences that statement rule (destructive, pg-rewrite, pg-lock,
|
|
47
|
-
pg-signature, ch-mutation, ch-rebuild
|
|
59
|
+
pg-signature, pg-access, data-dependent, naming, ch-mutation, ch-rebuild,
|
|
60
|
+
ch-access, or a schema check's id) for that one statement. The reason is required,
|
|
48
61
|
and yodel apply records the rule, the statement and the reason in every
|
|
49
62
|
history row the migration writes (the silences column). Adding the line
|
|
50
63
|
changes the migration's checksum: for a migration not yet applied anywhere,
|
|
@@ -52,7 +65,14 @@ record the new one with --update-checksum <id>.
|
|
|
52
65
|
|
|
53
66
|
Levels: yodel.config.ts lint.rules sets a rule to "error", "warning" or
|
|
54
67
|
"off", e.g. lint: { rules: { "ch-mutation": "warning" } }. fork, directory,
|
|
55
|
-
checksum, unreadable-object and checkpoint are always errors.
|
|
68
|
+
checksum, unreadable-object and checkpoint are always errors. A schema
|
|
69
|
+
check not set there takes chant.config.ts lint.rules' level, else the
|
|
70
|
+
check's own.
|
|
71
|
+
|
|
72
|
+
Naming: yodel.config.ts lint.naming gives a rule per kind (table, column,
|
|
73
|
+
index, constraint): a preset (snake_case, camelCase, PascalCase) or a
|
|
74
|
+
regular expression the whole name must match, e.g.
|
|
75
|
+
lint: { naming: { table: "snake_case", index: "[a-z_]+_idx" } }.
|
|
56
76
|
|
|
57
77
|
Options:
|
|
58
78
|
--env <env> also compare with <env>'s history: a
|
|
@@ -77,7 +97,20 @@ Options:
|
|
|
77
97
|
Refused without it, --reset or not
|
|
78
98
|
--keep with --replay: leave the replayed database in place
|
|
79
99
|
--rules list the rules and their levels, and exit
|
|
80
|
-
--json print the findings as JSON
|
|
100
|
+
--json print the findings as JSON (--format json)
|
|
101
|
+
--format <format> text (the default), json, or the findings as a
|
|
102
|
+
forge shows them on the migration files (#129):
|
|
103
|
+
github the text, then a workflow command per
|
|
104
|
+
finding (::error file=...,line=...::),
|
|
105
|
+
read by GitHub and Forgejo Actions
|
|
106
|
+
gitlab the text, and GitLab's code quality
|
|
107
|
+
report written to --output, for the
|
|
108
|
+
job's artifacts:reports:codequality
|
|
109
|
+
yodel ci renders each forge's lint job with its own
|
|
110
|
+
--output <file> with --format gitlab: where the report goes
|
|
111
|
+
(default ${CODE_QUALITY_FILE}, from the working
|
|
112
|
+
directory); it is written
|
|
113
|
+
whatever the findings, so the artifact is always there
|
|
81
114
|
-C, --dir <dir> the project directory (default: the working directory)
|
|
82
115
|
|
|
83
116
|
Exit codes:
|
|
@@ -103,6 +136,8 @@ function parseLintArgs(args) {
|
|
|
103
136
|
"reset-shared": { type: "string", multiple: true },
|
|
104
137
|
keep: { type: "boolean" },
|
|
105
138
|
json: { type: "boolean" },
|
|
139
|
+
format: { type: "string" },
|
|
140
|
+
output: { type: "string" },
|
|
106
141
|
dir: { type: "string", short: "C" },
|
|
107
142
|
"update-checksum": { type: "string", multiple: true },
|
|
108
143
|
rules: { type: "boolean" },
|
|
@@ -116,6 +151,13 @@ function parseLintArgs(args) {
|
|
|
116
151
|
const update = v["update-checksum"];
|
|
117
152
|
const replay = typeof v.replay === "string" ? v.replay : undefined;
|
|
118
153
|
const resetShared = Array.isArray(v["reset-shared"]) ? v["reset-shared"].filter((r) => typeof r === "string") : [];
|
|
154
|
+
const format = typeof v.format === "string" ? v.format : v.json === true ? "json" : "text";
|
|
155
|
+
if (!LINT_FORMATS.includes(format))
|
|
156
|
+
throw new YodelError(`--format ${format}: it is ${LINT_FORMATS.join(", ")}\n${usage}`);
|
|
157
|
+
if (v.json === true && format !== "json")
|
|
158
|
+
throw new YodelError(`--json is --format json; give one of them\n${usage}`);
|
|
159
|
+
if (typeof v.output === "string" && format !== "gitlab")
|
|
160
|
+
throw new YodelError(`--output goes with --format gitlab\n${usage}`);
|
|
119
161
|
if (replay === undefined && (v.reset === true || v.keep === true || resetShared.length > 0))
|
|
120
162
|
throw new YodelError(`--reset, --reset-shared and --keep go with --replay <env>\n${usage}`);
|
|
121
163
|
return {
|
|
@@ -124,26 +166,34 @@ function parseLintArgs(args) {
|
|
|
124
166
|
reset: v.reset === true,
|
|
125
167
|
resetShared,
|
|
126
168
|
keep: v.keep === true,
|
|
127
|
-
json:
|
|
169
|
+
json: format === "json",
|
|
170
|
+
format: format,
|
|
171
|
+
output: typeof v.output === "string" ? v.output : CODE_QUALITY_FILE,
|
|
128
172
|
dir: typeof v.dir === "string" ? v.dir : process.cwd(),
|
|
129
173
|
update: Array.isArray(update) ? update.filter((u) => typeof u === "string") : [],
|
|
130
174
|
rules: v.rules === true,
|
|
131
175
|
};
|
|
132
176
|
}
|
|
133
177
|
function allRules() {
|
|
134
|
-
return { ...LINT_RULES, ...Object.fromEntries(projectRules.map((r) => [r.rule.id, r.rule])), [REPLAY_RULE.id]: REPLAY_RULE };
|
|
178
|
+
return { ...LINT_RULES, ...Object.fromEntries(projectRules.map((r) => [r.rule.id, r.rule])), [REPLAY_RULE.id]: REPLAY_RULE, ...SCHEMA_RULES };
|
|
135
179
|
}
|
|
136
180
|
function listRules(io, json, project) {
|
|
137
181
|
const rules = allRules();
|
|
138
182
|
const settings = lintSettings(project.yodel?.config.lint, rules, project.yodel?.path);
|
|
139
|
-
|
|
183
|
+
// The schema checks of the project's dialect only: the other dialect's never run on its migrations.
|
|
184
|
+
// One not set in yodel.config.ts takes chant.config.ts lint.rules' level, else the level the check gives each finding.
|
|
185
|
+
const chantRules = project.config.lint?.rules;
|
|
186
|
+
const rows = Object.values(rules)
|
|
187
|
+
.filter((r) => !r.schema || r.dialect === undefined || r.dialect === project.dialect)
|
|
188
|
+
.map((r) => ({ ...r, configured: settings.levels[r.id] ?? (r.schema ? chantLevel(chantRules?.[r.id]) : undefined) ?? r.level }));
|
|
189
|
+
const own = new Set(rows.filter((r) => r.schema === true && settings.levels[r.id] === undefined && chantLevel(chantRules?.[r.id]) === undefined).map((r) => r.id));
|
|
140
190
|
if (json) {
|
|
141
191
|
io.out(`${JSON.stringify(rows, null, 2)}\n`);
|
|
142
192
|
return 0;
|
|
143
193
|
}
|
|
144
194
|
const width = Math.max(...rows.map((r) => r.id.length));
|
|
145
195
|
for (const r of rows) {
|
|
146
|
-
const marks = [r.configured, r.silenceable ? "silenceable" : "", r.dialect ?? ""].filter(Boolean).join(", ");
|
|
196
|
+
const marks = [own.has(r.id) ? "the check's level" : r.configured, r.silenceable ? "silenceable" : "", r.dialect ?? ""].filter(Boolean).join(", ");
|
|
147
197
|
io.out(`${r.id.padEnd(width)} ${marks}\n${" ".repeat(width + 2)}${r.summary}\n`);
|
|
148
198
|
}
|
|
149
199
|
return 0;
|
|
@@ -202,8 +252,15 @@ export const lint = {
|
|
|
202
252
|
const report = await lintMigrations(dir, options);
|
|
203
253
|
if (a.json)
|
|
204
254
|
io.out(`${JSON.stringify({ ...lintJson(report), ...(replay ? { replay: replayJson(replay) } : {}) }, null, 2)}\n`);
|
|
205
|
-
else
|
|
255
|
+
else {
|
|
206
256
|
io.out(`${replay ? `${renderReplay(replay)}\n` : ""}${renderLint(report)}`);
|
|
257
|
+
// The forge's checkout, which a forge's file paths are relative to; the project's directory elsewhere.
|
|
258
|
+
const root = process.env.GITHUB_WORKSPACE || process.env.CI_PROJECT_DIR || project.dir;
|
|
259
|
+
if (a.format === "github")
|
|
260
|
+
io.out(workflowCommands(report, root));
|
|
261
|
+
if (a.format === "gitlab")
|
|
262
|
+
writeFileSync(resolve(a.output), `${JSON.stringify(codeQuality(report, root), null, 2)}\n`);
|
|
263
|
+
}
|
|
207
264
|
return lintExitCode(report);
|
|
208
265
|
}),
|
|
209
266
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lint.js","sourceRoot":"","sources":["../../src/commands/lint.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAEtC,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AACzC,OAAO,EAAE,WAAW,EAAE,kBAAkB,EAAE,UAAU,EAAgB,MAAM,eAAe,CAAC;AAC1F,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAC9E,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,QAAQ,EAAE,cAAc,EAAE,YAAY,EAAE,UAAU,EAAE,cAAc,EAAmC,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"lint.js","sourceRoot":"","sources":["../../src/commands/lint.ts"],"names":[],"mappings":"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"}
|
package/dist/commands/new.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { execFileSync } from "node:child_process";
|
|
2
|
+
import { accessSteps, describeAccessSteps } from "../chant/access.js";
|
|
2
3
|
import { existsSync, mkdirSync, readFileSync, renameSync, rmSync, writeFileSync } from "node:fs";
|
|
3
4
|
import { dirname, join, relative, resolve } from "node:path";
|
|
4
5
|
import { parseArgs } from "node:util";
|
|
@@ -6,9 +7,9 @@ import { guarded } from "../env-args.js";
|
|
|
6
7
|
import { loadProject, resolveEnvironment, YodelError } from "../project.js";
|
|
7
8
|
import { closeVersioned, inspect, openVersioned } from "../versioned/index.js";
|
|
8
9
|
import { buildSchema } from "../chant/build.js";
|
|
9
|
-
import { checksProblem, createMigration, describeExpect, parseCheckArg, migrationId, MIGRATIONS_DIR, newestMigration, readMigrations, refusedSteps, verifyChecksum, writeMigration, } from "../migrations/index.js";
|
|
10
|
-
import { asBackfill, BACKFILL_FILE, backfillTemplate, loadBackfill, TEMPLATE_MARK } from "../steps/index.js";
|
|
11
|
-
const usage = "usage: yodel new <name> [--backfill <file>] [--check <sql>]... [--replace [--env <env>]...] [--json] [--dir <project>]";
|
|
10
|
+
import { checksProblem, createMigration, describeExpect, migrationChecks, parseCheckArg, migrationId, MIGRATIONS_DIR, newestMigration, readMigrations, refusedSteps, verifyChecksum, writeMigration, } from "../migrations/index.js";
|
|
11
|
+
import { asBackfill, asForm, BACKFILL_FILE, backfillTemplate, describeForm, describeFormSql, formPath, formProblems, formTemplate, loadBackfill, PG_MIGRATION_OP, REBUILD_OP, TEMPLATE_MARK } from "../steps/index.js";
|
|
12
|
+
const usage = "usage: yodel new <name> [--backfill [<file>]] [--retain <duration>] [--check <sql>]... [--replace [--env <env>]...] [--json] [--dir <project>]";
|
|
12
13
|
const help = `${usage}
|
|
13
14
|
|
|
14
15
|
Writes the next migration, migrations/<YYYYMMDDTHHMM>-<name>/, by diffing
|
|
@@ -24,16 +25,38 @@ ClickHouse sort-key change or a Postgres column rename, is an Op step:
|
|
|
24
25
|
written to migration.json with its declaration, and to migration.sql as a
|
|
25
26
|
comment only.
|
|
26
27
|
|
|
27
|
-
A data backfill is a step too. --backfill
|
|
28
|
-
backfill step
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
28
|
+
A data backfill is a step too. --backfill ends the migration with a
|
|
29
|
+
backfill step written from ${formPath("<name>")}, a form of four fields:
|
|
30
|
+
|
|
31
|
+
{ "table": "shop.orders", "key": "id", "batchSize": 10000,
|
|
32
|
+
"sql": "UPDATE shop.orders SET country = 'NL' WHERE id >= {from} AND id < {to}" }
|
|
33
|
+
|
|
34
|
+
Each range of the integer key, batchSize wide, is one batch: {from} and {to}
|
|
35
|
+
in the SQL are its bounds (from inclusive, to exclusive), read from the
|
|
36
|
+
table's smallest and largest key when the step runs. "batches": [...] in
|
|
37
|
+
place of key and batchSize lists the batches instead, {batch} in the SQL.
|
|
38
|
+
"sql" may be a list of statements, and "settings" sets query settings for
|
|
39
|
+
each (ClickHouse: { "mutations_sync": "2" }). The form is written into the
|
|
40
|
+
step in migration.json, so it counts in the checksum and the plan shows it.
|
|
41
|
+
yodel apply runs the batches after the statements before the step, each
|
|
42
|
+
with its own receipt, and a run that fails or is stopped part way resumes
|
|
43
|
+
at the first batch without one. Make a batch safe to run twice (on
|
|
44
|
+
Postgres each batch is one transaction with its receipt, so it is).
|
|
45
|
+
|
|
46
|
+
When the form does not exist yet, a template is written there and no
|
|
47
|
+
migration: fill it in, then run the same command again. With --backfill a
|
|
36
48
|
migration is written even when the declared schema has not changed.
|
|
49
|
+
--backfill <file> reads the form from <file> (relative to the project
|
|
50
|
+
directory) instead; a <file> that is not .json is a module exporting a
|
|
51
|
+
chant Op of effect() batches, for a backfill the form cannot say
|
|
52
|
+
(docs/steps.md), copied into the migration's directory as ${BACKFILL_FILE}.
|
|
53
|
+
|
|
54
|
+
--retain <duration> (7d, 12h, 0s) is how long a Postgres column rename or
|
|
55
|
+
type change keeps the old column after the switch, or a ClickHouse rebuild
|
|
56
|
+
the old table after the swap: written into each such step's options.
|
|
57
|
+
Without it a Postgres step drops the old column in the same apply, right
|
|
58
|
+
after the switch, and a rebuild keeps the old table for 7 days. To add it
|
|
59
|
+
to a migration you just wrote, run yodel new <name> --replace --retain 7d.
|
|
37
60
|
|
|
38
61
|
--check <sql> adds a pre-migration check to migration.json: a read-only
|
|
39
62
|
query that must return no rows. yodel apply runs it against the environment
|
|
@@ -51,14 +74,17 @@ have not applied: refused when the migration is applied in an environment
|
|
|
51
74
|
--env names (each one is read), and it says so when git already tracks it.
|
|
52
75
|
|
|
53
76
|
Options:
|
|
54
|
-
--backfill <file> end the migration with a backfill step
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
--
|
|
59
|
-
|
|
60
|
-
--
|
|
61
|
-
|
|
77
|
+
--backfill [<file>] end the migration with a backfill step written from
|
|
78
|
+
${formPath("<name>")} (or <file>)
|
|
79
|
+
--retain <duration> how long a column rename or a rebuild keeps the old
|
|
80
|
+
column or table
|
|
81
|
+
--check <sql> a pre-migration check that must return no rows
|
|
82
|
+
(repeatable; "<name>: <sql>" names it)
|
|
83
|
+
--replace redo the newest migration, named <name>
|
|
84
|
+
--env <env> with --replace: refuse if it is applied in <env>
|
|
85
|
+
(repeatable)
|
|
86
|
+
--json print what was written as JSON
|
|
87
|
+
-C, --dir <dir> the project directory (default: the working directory)
|
|
62
88
|
|
|
63
89
|
Exit codes:
|
|
64
90
|
0 a migration was written, or the declared schema has no change from the
|
|
@@ -69,14 +95,18 @@ Exit codes:
|
|
|
69
95
|
4 --replace refused, nothing written: the newest migration is not named
|
|
70
96
|
<name>, or it is applied in an environment --env names
|
|
71
97
|
`;
|
|
98
|
+
/** A bare --backfill (last, or followed by another option) as --backfill="", the default form. */
|
|
99
|
+
const bareBackfill = (args) => args.map((a, i) => (a === "--backfill" && (i === args.length - 1 || (args[i + 1] ?? "").startsWith("-")) ? "--backfill=" : a));
|
|
100
|
+
/** A duration chant takes: whole numbers of ms, s, m, h or d, as 7d or 1d12h. */
|
|
101
|
+
const DURATION = /^(\d+(ms|s|m|h|d))+$/;
|
|
72
102
|
function parseNewArgs(args) {
|
|
73
103
|
let parsed;
|
|
74
104
|
try {
|
|
75
105
|
parsed = parseArgs({
|
|
76
|
-
args,
|
|
106
|
+
args: bareBackfill(args),
|
|
77
107
|
allowPositionals: true,
|
|
78
108
|
strict: true,
|
|
79
|
-
options: { json: { type: "boolean" }, dir: { type: "string", short: "C" }, backfill: { type: "string" }, replace: { type: "boolean" }, env: { type: "string", multiple: true }, check: { type: "string", multiple: true } },
|
|
109
|
+
options: { json: { type: "boolean" }, dir: { type: "string", short: "C" }, backfill: { type: "string" }, retain: { type: "string" }, replace: { type: "boolean" }, env: { type: "string", multiple: true }, check: { type: "string", multiple: true } },
|
|
80
110
|
});
|
|
81
111
|
}
|
|
82
112
|
catch (e) {
|
|
@@ -88,11 +118,15 @@ function parseNewArgs(args) {
|
|
|
88
118
|
if (parsed.values.env !== undefined && parsed.values.replace !== true)
|
|
89
119
|
throw new YodelError(`--env goes with --replace\n${usage}`);
|
|
90
120
|
migrationId(name, new Date()); // a bad name fails before anything is built
|
|
121
|
+
const retain = typeof parsed.values.retain === "string" ? parsed.values.retain : undefined;
|
|
122
|
+
if (retain !== undefined && !DURATION.test(retain))
|
|
123
|
+
throw new YodelError(`--retain takes a duration such as 7d, 12h or 0s, got ${JSON.stringify(retain)}\n${usage}`);
|
|
91
124
|
return {
|
|
92
125
|
name,
|
|
93
126
|
json: parsed.values.json === true,
|
|
94
127
|
dir: typeof parsed.values.dir === "string" ? parsed.values.dir : process.cwd(),
|
|
95
128
|
backfill: typeof parsed.values.backfill === "string" ? parsed.values.backfill : undefined,
|
|
129
|
+
retain,
|
|
96
130
|
replace: parsed.values.replace === true,
|
|
97
131
|
envs: Array.isArray(parsed.values.env) ? parsed.values.env.filter((e) => typeof e === "string") : [],
|
|
98
132
|
checks: parseChecks(parsed.values.check),
|
|
@@ -119,10 +153,18 @@ function report(io, json, made, path, projectDir) {
|
|
|
119
153
|
checksum: made.document.checksum,
|
|
120
154
|
dialect: made.document.dialect,
|
|
121
155
|
statements: statementCount,
|
|
122
|
-
ops: refused.filter((s) => s.kind === "op").map((s) => ({ op: s.op, object: s.object, name: s.name, rules: s.changes.map((c) => c.rule) })),
|
|
156
|
+
ops: refused.filter((s) => s.kind === "op").map((s) => ({ op: s.op, object: s.object, name: s.name, rules: s.changes.map((c) => c.rule), ...(typeof s.options.retain === "string" ? { retain: s.options.retain } : {}) })),
|
|
123
157
|
manual: refused.filter((s) => s.kind === "manual").map((s) => ({ object: s.object, name: s.name, rules: s.changes.map((c) => c.rule), detail: s.detail })),
|
|
124
158
|
hints: made.document.hints,
|
|
125
159
|
checks: made.document.checks ?? [],
|
|
160
|
+
prechecks: migrationChecks(made.document).flatMap((c) => (c.step ? [{ name: c.name, step: c.step.index, sql: c.sql, detail: c.step.detail }] : [])),
|
|
161
|
+
access: accessSteps(steps).map((a) => ({
|
|
162
|
+
step: a.index,
|
|
163
|
+
object: a.step.object,
|
|
164
|
+
name: a.step.name,
|
|
165
|
+
...(a.step.kind === "statement" ? { rule: a.step.rule, class: a.step.class } : {}),
|
|
166
|
+
...(a.away ? { takesAway: a.away } : {}),
|
|
167
|
+
})),
|
|
126
168
|
}, null, 2)}\n`);
|
|
127
169
|
return;
|
|
128
170
|
}
|
|
@@ -132,7 +174,13 @@ function report(io, json, made, path, projectDir) {
|
|
|
132
174
|
for (const s of refused) {
|
|
133
175
|
const rules = s.changes.map((c) => c.rule).join(", ");
|
|
134
176
|
const backfill = asBackfill(s);
|
|
135
|
-
|
|
177
|
+
const form = backfill ? asForm(backfill.options) : undefined;
|
|
178
|
+
if (form) {
|
|
179
|
+
lines.push(` This migration ends with a backfill of ${describeForm(form)}. Each batch runs:`);
|
|
180
|
+
lines.push(...describeFormSql(form).split("\n").map((l) => ` ${l}`));
|
|
181
|
+
lines.push(` yodel apply runs the batches after the statements before it, each with its own receipt, and resumes from them after a failure.`);
|
|
182
|
+
}
|
|
183
|
+
else if (backfill && "file" in backfill.options) {
|
|
136
184
|
lines.push(` This migration ends with a backfill step: the Op ${backfill.options.file} exports, copied into the migration's directory.`);
|
|
137
185
|
lines.push(` yodel apply runs its effect() batches after the statements before it, resuming from their receipts after a failure.`);
|
|
138
186
|
}
|
|
@@ -140,44 +188,92 @@ function report(io, json, made, path, projectDir) {
|
|
|
140
188
|
lines.push(` This migration contains an Op step: ${s.op} for ${s.object} (${s.name}), ${rules}.`);
|
|
141
189
|
lines.push(` It is not SQL. migration.json holds the Op's declaration:`);
|
|
142
190
|
lines.push(` ${s.declaration}`);
|
|
191
|
+
lines.push(...retention(s.op, s.options, made.document.id.slice(made.document.id.indexOf("-") + 1)).map((l) => ` ${l}`));
|
|
143
192
|
}
|
|
144
193
|
else {
|
|
145
194
|
lines.push(` This migration contains a manual step: ${s.object} (${s.name}), ${rules}. No statement and no Op makes it:`);
|
|
146
195
|
lines.push(` ${s.detail}`);
|
|
147
196
|
}
|
|
148
197
|
}
|
|
149
|
-
for (const c of made.document
|
|
150
|
-
|
|
198
|
+
for (const c of migrationChecks(made.document)) {
|
|
199
|
+
if (c.step)
|
|
200
|
+
lines.push(` step ${String(c.step.index)} can fail on the rows already there (${c.step.detail}); yodel apply runs its pre-check ${c.name} before the first statement and refuses unless it returns 0: ${c.sql}`);
|
|
201
|
+
else
|
|
202
|
+
lines.push(` check ${c.name}: ${c.sql} (${describeExpect(c)}, before the first statement)`);
|
|
203
|
+
}
|
|
204
|
+
for (const l of describeAccessSteps(steps))
|
|
205
|
+
lines.push(` ${l}`);
|
|
151
206
|
for (const h of made.document.hints)
|
|
152
207
|
lines.push(` hint: ${h}`);
|
|
153
208
|
io.out(`${lines.join("\n")}\n`);
|
|
154
209
|
}
|
|
210
|
+
/** What a column migration or a rebuild step keeps after its switch, and for how long. */
|
|
211
|
+
function retention(op, options, name) {
|
|
212
|
+
const retain = typeof options.retain === "string" ? options.retain : undefined;
|
|
213
|
+
if (op === PG_MIGRATION_OP) {
|
|
214
|
+
return retain !== undefined
|
|
215
|
+
? [`The old column is kept for ${retain} after the switch (retain), so readers of it keep working until then; yodel cleanup <env> drops it after that date.`]
|
|
216
|
+
: [
|
|
217
|
+
`No retain: the old column is dropped in the same yodel apply, right after the switch, so anything still reading it breaks then.`,
|
|
218
|
+
`To keep it while readers move over: yodel new ${name} --replace --retain 7d`,
|
|
219
|
+
];
|
|
220
|
+
}
|
|
221
|
+
if (op === REBUILD_OP && retain !== undefined)
|
|
222
|
+
return [`The old table is kept as ${typeof options.table === "string" ? options.table : "<table>"}__chant_old for ${retain} after the swap (retain).`];
|
|
223
|
+
return [];
|
|
224
|
+
}
|
|
225
|
+
/** Reads and checks a backfill form; throws naming what is wrong. */
|
|
226
|
+
function readForm(path, text) {
|
|
227
|
+
let parsed;
|
|
228
|
+
try {
|
|
229
|
+
parsed = JSON.parse(text);
|
|
230
|
+
}
|
|
231
|
+
catch (e) {
|
|
232
|
+
throw new YodelError(`${path}: not JSON: ${e instanceof Error ? e.message : String(e)}`);
|
|
233
|
+
}
|
|
234
|
+
const problems = formProblems(parsed);
|
|
235
|
+
const form = problems.length === 0 ? asForm(parsed) : undefined;
|
|
236
|
+
if (!form)
|
|
237
|
+
throw new YodelError(`${path}: ${problems.join("; ")}`);
|
|
238
|
+
return form;
|
|
239
|
+
}
|
|
155
240
|
/** `yodel new <name>`; the exit codes are in `help`. */
|
|
156
241
|
export const newCommand = {
|
|
157
242
|
name: "new",
|
|
158
243
|
summary: "write the next migration from the declared schema",
|
|
159
244
|
implemented: true,
|
|
160
245
|
run: (args, io) => guarded("new", io, args, help, async () => {
|
|
161
|
-
const { name, json, dir, backfill: backfillArg, replace, envs, checks } = parseNewArgs(args);
|
|
246
|
+
const { name, json, dir, backfill: backfillArg, retain, replace, envs, checks } = parseNewArgs(args);
|
|
162
247
|
const project = await loadProject(dir);
|
|
163
248
|
let backfill;
|
|
164
249
|
if (backfillArg !== undefined) {
|
|
165
|
-
const
|
|
250
|
+
const file = backfillArg === "" ? formPath(name) : backfillArg;
|
|
251
|
+
const isForm = file.endsWith(".json");
|
|
252
|
+
const path = resolve(project.dir, file);
|
|
253
|
+
const again = `yodel new ${name} --backfill${backfillArg === "" ? "" : ` ${backfillArg}`}`;
|
|
166
254
|
if (!existsSync(path)) {
|
|
167
255
|
mkdirSync(dirname(path), { recursive: true });
|
|
168
|
-
writeFileSync(path, backfillTemplate(name, project.dialect));
|
|
256
|
+
writeFileSync(path, isForm ? formTemplate(name, project.dialect) : backfillTemplate(name, project.dialect));
|
|
169
257
|
const where = relative(project.dir, path) || path;
|
|
170
258
|
if (json)
|
|
171
259
|
io.out(`${JSON.stringify({ written: false, template: path }, null, 2)}\n`);
|
|
260
|
+
else if (isForm) {
|
|
261
|
+
io.out(`Wrote a backfill form at ${where}: the table, its integer key and how many keys a batch takes, and the SQL of one batch with {from} and {to} (or "batches": [...] and {batch}). ` +
|
|
262
|
+
`Fill it in, then run ${again} again. No migration written.\n`);
|
|
263
|
+
}
|
|
172
264
|
else
|
|
173
|
-
io.out(`Wrote a backfill template at ${where}. Write its batches, then run
|
|
265
|
+
io.out(`Wrote a backfill template at ${where}. Write its batches, then run ${again} again. No migration written.\n`);
|
|
174
266
|
return 0;
|
|
175
267
|
}
|
|
176
268
|
const text = readFileSync(path, "utf8");
|
|
177
269
|
if (text.includes(TEMPLATE_MARK))
|
|
178
|
-
throw new YodelError(`${path} is still the template; write its batches' SQL first`);
|
|
179
|
-
|
|
180
|
-
|
|
270
|
+
throw new YodelError(`${path} is still the template; write ${isForm ? "the table, the key and one batch's SQL" : "its batches' SQL"} first`);
|
|
271
|
+
if (isForm)
|
|
272
|
+
backfill = { form: readForm(path, text) };
|
|
273
|
+
else {
|
|
274
|
+
await loadBackfill(path, text);
|
|
275
|
+
backfill = { text };
|
|
276
|
+
}
|
|
181
277
|
}
|
|
182
278
|
const migrationsDir = join(project.dir, MIGRATIONS_DIR);
|
|
183
279
|
const ordered = readMigrations(migrationsDir);
|
|
@@ -189,7 +285,7 @@ export const newCommand = {
|
|
|
189
285
|
const build = await buildSchema(project);
|
|
190
286
|
let made;
|
|
191
287
|
try {
|
|
192
|
-
made = createMigration({ name, build: build.output, previous, ...(backfill ? { backfill } : {}), ...(checks.length > 0 ? { checks } : {}) });
|
|
288
|
+
made = createMigration({ name, build: build.output, previous, ...(backfill ? { backfill } : {}), ...(retain !== undefined ? { retain } : {}), ...(checks.length > 0 ? { checks } : {}) });
|
|
193
289
|
}
|
|
194
290
|
finally {
|
|
195
291
|
build.dispose();
|
|
@@ -210,6 +306,9 @@ export const newCommand = {
|
|
|
210
306
|
io.out(`No changes: the declared schema matches ${from}. Nothing written.\n`);
|
|
211
307
|
return 0;
|
|
212
308
|
}
|
|
309
|
+
if (retain !== undefined && !made.statements.steps.some((st) => st.kind === "op" && [PG_MIGRATION_OP, REBUILD_OP].includes(st.op))) {
|
|
310
|
+
io.err(`yodel new: warning: --retain ${retain} is for a Postgres column rename or type change, or a ClickHouse rebuild, and ${made.id} has none\n`);
|
|
311
|
+
}
|
|
213
312
|
if (replaced) {
|
|
214
313
|
// Moved aside first and removed only once the new one is written, so a failure leaves the old one in place.
|
|
215
314
|
const aside = join(migrationsDir, `.replaced-${replaced.id}`);
|
|
@@ -239,27 +338,9 @@ export const REPLACE_REFUSED = 4;
|
|
|
239
338
|
async function replaceable(project, ordered, name, envs, io) {
|
|
240
339
|
const newest = newestMigration(ordered);
|
|
241
340
|
if (!newest)
|
|
242
|
-
throw new YodelError(`--
|
|
243
|
-
query that must return no rows. yodel apply runs it against the environment
|
|
244
|
-
before the gate and again under the lock just before the migration's first
|
|
245
|
-
statement; a check that fails refuses the run (exit 4) and names it.
|
|
246
|
-
Written "<name>: <sql>" it is named <name>, else check-1, check-2 and so on.
|
|
247
|
-
For "returns true" or a count within bounds, edit its "expect" in
|
|
248
|
-
migration.json (docs/migrations.md); the checks count in the checksum and
|
|
249
|
-
the plan digest.
|
|
250
|
-
|
|
251
|
-
--replace redoes the newest migration, and there is none yet; run yodel new ${name}`, REPLACE_REFUSED);
|
|
341
|
+
throw new YodelError(`--replace redoes the newest migration, and there is none yet; run yodel new ${name}`, REPLACE_REFUSED);
|
|
252
342
|
if (newest.id.slice(newest.id.indexOf("-") + 1) !== name) {
|
|
253
|
-
throw new YodelError(`--
|
|
254
|
-
query that must return no rows. yodel apply runs it against the environment
|
|
255
|
-
before the gate and again under the lock just before the migration's first
|
|
256
|
-
statement; a check that fails refuses the run (exit 4) and names it.
|
|
257
|
-
Written "<name>: <sql>" it is named <name>, else check-1, check-2 and so on.
|
|
258
|
-
For "returns true" or a count within bounds, edit its "expect" in
|
|
259
|
-
migration.json (docs/migrations.md); the checks count in the checksum and
|
|
260
|
-
the plan digest.
|
|
261
|
-
|
|
262
|
-
--replace redoes the newest migration, ${newest.id}, which is not named ${name}; nothing written`, REPLACE_REFUSED);
|
|
343
|
+
throw new YodelError(`--replace redoes the newest migration, ${newest.id}, which is not named ${name}; nothing written`, REPLACE_REFUSED);
|
|
263
344
|
}
|
|
264
345
|
for (const envName of envs) {
|
|
265
346
|
const env = resolveEnvironment(project, envName);
|
package/dist/commands/new.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"new.js","sourceRoot":"","sources":["../../src/commands/new.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"new.js","sourceRoot":"","sources":["../../src/commands/new.ts"],"names":[],"mappings":"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"}
|