directus-deploy-cli 0.13.2 → 0.13.3

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.
@@ -3,7 +3,8 @@ import { sanitizeForWrite } from "../sanitize.js";
3
3
  // Identifier whitelist for building raw ALTER TABLE ADD CONSTRAINT SQL. Every
4
4
  // value we splice in comes from a snapshot JSON file in-repo (never user
5
5
  // input), but constrain the shape to snake_case/alnum anyway so a typo can't
6
- // escape into unquoted SQL.
6
+ // escape into unquoted SQL. Values also flow into a single-quoted SQL literal
7
+ // inside loadFkConstraints — the same regex is the gate for both paths.
7
8
  const IDENT_RE = /^[a-zA-Z_][a-zA-Z0-9_]*$/;
8
9
  function assertIdent(name, kind) {
9
10
  if (!IDENT_RE.test(name)) {
@@ -11,18 +12,33 @@ function assertIdent(name, kind) {
11
12
  }
12
13
  return name;
13
14
  }
14
- // Query information_schema.table_constraints for every FK on the given tables.
15
- // Returns a Map<table, Set<constraint_name>>. Returns null if the target has
16
- // no /raw-query/execute endpoint callers then skip FK repair (drift stays
17
- // invisible, same as before this fix). Batched so one RTT covers the whole
18
- // reconcile pass.
15
+ // Load every FK on the given tables, keyed by (table, column) — NOT by
16
+ // constraint_name. Constraint names are cosmetic: a snapshot that pins
17
+ // `<coll>_<field>_fkey` while Postgres has `<coll>_<field>_foreign` should
18
+ // NOT report drift as long as the column-level FK relationship matches.
19
+ // Returns null when /raw-query/execute is unavailable so callers can skip
20
+ // FK checks gracefully. See issues #18, #19.
19
21
  async function loadFkConstraints(client, tables) {
22
+ // Filter identifiers before we splice them into SQL literals below. The
23
+ // in-clause uses single-quoted strings; combined with IDENT_RE the values
24
+ // are safe. Same defense applies in buildAddConstraintSql.
20
25
  const list = [...new Set(tables)].filter((t) => IDENT_RE.test(t));
21
26
  if (list.length === 0)
22
27
  return new Map();
23
28
  const inClause = list.map((t) => `'${t}'`).join(",");
24
- const query = `SELECT table_name, constraint_name FROM information_schema.table_constraints ` +
25
- `WHERE constraint_type = 'FOREIGN KEY' AND table_name IN (${inClause})`;
29
+ // information_schema join: table_constraints (kind), key_column_usage
30
+ // (child column), constraint_column_usage (parent table+column). Filter
31
+ // to public schema — non-public FKs aren't supported (#20).
32
+ const query = `SELECT tc.table_name, kcu.column_name, tc.constraint_name, ` +
33
+ `ccu.table_name AS referenced_table, ccu.column_name AS referenced_column ` +
34
+ `FROM information_schema.table_constraints tc ` +
35
+ `JOIN information_schema.key_column_usage kcu ` +
36
+ `ON tc.constraint_name = kcu.constraint_name AND tc.table_schema = kcu.table_schema ` +
37
+ `JOIN information_schema.constraint_column_usage ccu ` +
38
+ `ON ccu.constraint_name = tc.constraint_name AND ccu.table_schema = tc.table_schema ` +
39
+ `WHERE tc.constraint_type = 'FOREIGN KEY' ` +
40
+ `AND tc.table_schema = 'public' ` +
41
+ `AND tc.table_name IN (${inClause})`;
26
42
  try {
27
43
  const r = (await client.postRaw("/raw-query/execute", { query }));
28
44
  const inner = r?.results?.[0];
@@ -30,12 +46,19 @@ async function loadFkConstraints(client, tables) {
30
46
  return null;
31
47
  const out = new Map();
32
48
  for (const row of inner.data ?? []) {
33
- if (row && typeof row === "object" && "table_name" in row && "constraint_name" in row) {
49
+ if (row && typeof row === "object") {
34
50
  const rr = row;
35
- const t = String(rr.table_name);
36
- if (!out.has(t))
37
- out.set(t, new Set());
38
- out.get(t).add(String(rr.constraint_name));
51
+ const table = String(rr.table_name ?? "");
52
+ const column = String(rr.column_name ?? "");
53
+ if (!table || !column)
54
+ continue;
55
+ if (!out.has(table))
56
+ out.set(table, new Map());
57
+ out.get(table).set(column, {
58
+ referenced_table: String(rr.referenced_table ?? ""),
59
+ referenced_column: String(rr.referenced_column ?? ""),
60
+ constraint_name: String(rr.constraint_name ?? ""),
61
+ });
39
62
  }
40
63
  }
41
64
  return out;
@@ -72,22 +95,80 @@ function buildAddConstraintSql(input) {
72
95
  `FOREIGN KEY ("${field}") REFERENCES "${fkTable}"("${fkColumn}") ` +
73
96
  `ON UPDATE ${onUpdate} ON DELETE ${onDelete}`);
74
97
  }
98
+ // Best-effort diagnostic on FK-repair failure. ALTER TABLE ADD CONSTRAINT
99
+ // fails when child rows reference nonexistent parent rows — the actual
100
+ // Postgres error text ("insert or update on table … violates foreign key
101
+ // constraint") doesn't hint at *how many* orphans exist, which is the
102
+ // difference between a five-minute fix (a handful) and a data-model
103
+ // conversation (millions). See #22.
104
+ async function summarizeOrphans(client, collection, field, fkTable, fkColumn) {
105
+ if (!IDENT_RE.test(collection) || !IDENT_RE.test(field))
106
+ return null;
107
+ if (!IDENT_RE.test(fkTable) || !IDENT_RE.test(fkColumn))
108
+ return null;
109
+ const query = `SELECT COUNT(*)::int AS n FROM "${collection}" c ` +
110
+ `LEFT JOIN "${fkTable}" p ON c."${field}" = p."${fkColumn}" ` +
111
+ `WHERE c."${field}" IS NOT NULL AND p."${fkColumn}" IS NULL`;
112
+ try {
113
+ const r = (await client.postRaw("/raw-query/execute", { query }));
114
+ const inner = r?.results?.[0];
115
+ if (!r?.success || !inner?.success)
116
+ return null;
117
+ const n = Number(inner.data?.[0]?.n ?? 0);
118
+ if (n <= 0)
119
+ return null;
120
+ return ` — likely cause: ${n} orphan row(s) in ${collection}.${field} reference ${fkTable}.${fkColumn} that don't exist`;
121
+ }
122
+ catch {
123
+ return null;
124
+ }
125
+ }
75
126
  export async function reconcileRelations(input) {
76
127
  const results = [];
128
+ const rejectedNonPublic = [];
77
129
  // Load pg_constraint FK state up front — needed for FK-drift detection
78
130
  // because Directus's GET /relations `.schema` block reads from a cached
79
131
  // SchemaOverview that isn't invalidated by raw ALTER TABLE. Only
80
132
  // information_schema.table_constraints is authoritative. (Empirically
81
133
  // verified against test.lola.market on 2026-07-18 for issue #16.)
82
134
  const tablesToQuery = [];
135
+ let expectedFkCount = 0;
83
136
  for (const [collection, relations] of input.relationsByCollection) {
84
137
  if (input.opts.onlyCollections && !input.opts.onlyCollections.has(collection))
85
138
  continue;
86
- const anyFkExpected = relations.some((r) => r.schema?.foreign_key_table !== undefined);
87
- if (anyFkExpected)
88
- tablesToQuery.push(collection);
139
+ for (const r of relations) {
140
+ const schema = r.schema;
141
+ if (schema?.foreign_key_table === undefined)
142
+ continue;
143
+ // #20: reject non-public schemas explicitly. Silent misbuild is worse
144
+ // than a loud skip.
145
+ const fkSchema = schema.foreign_key_schema;
146
+ if (fkSchema !== undefined && fkSchema !== null && String(fkSchema) !== "public") {
147
+ rejectedNonPublic.push(`${collection}.${String(r.field)}`);
148
+ continue;
149
+ }
150
+ expectedFkCount++;
151
+ if (!tablesToQuery.includes(collection))
152
+ tablesToQuery.push(collection);
153
+ }
89
154
  }
90
155
  const pgFks = await loadFkConstraints(input.client, tablesToQuery);
156
+ // #19: warn once when the check was expected to run but /raw-query/execute
157
+ // is unavailable. Without this, silent-skip masks real drift on envs that
158
+ // lack the extension.
159
+ if (pgFks === null && expectedFkCount > 0) {
160
+ process.stderr.write(`relations: could not query information_schema.table_constraints ` +
161
+ `(raw-query endpoint unavailable?) — FK drift check skipped for ` +
162
+ `${expectedFkCount} relation(s)\n`);
163
+ }
164
+ for (const label of rejectedNonPublic) {
165
+ results.push({
166
+ kind: "relations",
167
+ label: `relations/${label}`,
168
+ action: "skipped",
169
+ reason: "non-public foreign_key_schema not supported by FK reconciler",
170
+ });
171
+ }
91
172
  for (const [collection, relations] of input.relationsByCollection) {
92
173
  if (input.opts.onlyCollections && !input.opts.onlyCollections.has(collection))
93
174
  continue;
@@ -96,6 +177,10 @@ export async function reconcileRelations(input) {
96
177
  if (!field)
97
178
  continue;
98
179
  const label = `relations/${collection}.${field}`;
180
+ // Skip anything we already rejected as non-public — the note is already
181
+ // in results and we don't want to double-count.
182
+ if (rejectedNonPublic.includes(`${collection}.${field}`))
183
+ continue;
99
184
  let existing;
100
185
  try {
101
186
  const got = await input.client.get(`/relations/${collection}/${field}`);
@@ -109,14 +194,27 @@ export async function reconcileRelations(input) {
109
194
  const desiredMeta = payload.meta ?? {};
110
195
  const existingMeta = existing?.meta ?? {};
111
196
  const desiredSchema = payload.schema;
112
- // FK drift: the snapshot expects a FK, but pg_constraint doesn't have
113
- // it. Only checked when we successfully loaded FK state (pgFks !== null)
114
- // AND the snapshot pins a foreign_key_table for this field.
197
+ // #18: FK drift by COLUMN (not constraint_name). Snapshot says "FK on
198
+ // this column pointing to <table>.<column>"; pg either has that or
199
+ // doesn't. constraint_name is cosmetic a matching FK under a legacy
200
+ // name is not drift.
115
201
  let fkDrift = false;
202
+ let fkDriftMismatch;
116
203
  if (existing !== null && pgFks && desiredSchema?.foreign_key_table) {
117
- const expected = String(desiredSchema.constraint_name ?? `${collection}_${field}_foreign`);
118
- const actual = pgFks.get(collection);
119
- fkDrift = !actual || !actual.has(expected);
204
+ const expectedTable = String(desiredSchema.foreign_key_table);
205
+ const expectedColumn = String(desiredSchema.foreign_key_column ?? "id");
206
+ const actual = pgFks.get(collection)?.get(field);
207
+ if (!actual) {
208
+ fkDrift = true;
209
+ }
210
+ else if (actual.referenced_table !== expectedTable ||
211
+ actual.referenced_column !== expectedColumn) {
212
+ // Rare: FK exists on this column but points at the wrong target.
213
+ // Don't try to auto-repair — a DROP + ADD could break referential
214
+ // guarantees. Fail loudly and let a human decide.
215
+ fkDrift = false;
216
+ fkDriftMismatch = `FK on ${collection}.${field} points to ${actual.referenced_table}.${actual.referenced_column} (snapshot expects ${expectedTable}.${expectedColumn}) — manual DROP+ADD required`;
217
+ }
120
218
  }
121
219
  if (existing === null) {
122
220
  if (!input.opts.dryRun) {
@@ -130,6 +228,9 @@ export async function reconcileRelations(input) {
130
228
  }
131
229
  results.push({ kind: "relations", label, action: "created" });
132
230
  }
231
+ else if (fkDriftMismatch) {
232
+ results.push({ kind: "relations", label, action: "failed", reason: fkDriftMismatch });
233
+ }
133
234
  else if (fkDrift) {
134
235
  if (!input.opts.dryRun) {
135
236
  try {
@@ -141,8 +242,17 @@ export async function reconcileRelations(input) {
141
242
  const r = (await input.client.postRaw("/raw-query/execute", { query: sql }));
142
243
  const inner = r?.results?.[0];
143
244
  if (!r?.success || !inner?.success) {
144
- const reason = inner?.error ?? "raw-query rejected ALTER TABLE";
145
- results.push({ kind: "relations", label, action: "failed", reason });
245
+ const baseReason = inner?.error ?? "raw-query rejected ALTER TABLE";
246
+ // #22: orphans are the common cause of ADD CONSTRAINT failing
247
+ // ("violates foreign key constraint" without a count). Try to
248
+ // enrich the failure with a specific number.
249
+ const orphanNote = await summarizeOrphans(input.client, collection, field, String(desiredSchema.foreign_key_table), String(desiredSchema.foreign_key_column ?? "id"));
250
+ results.push({
251
+ kind: "relations",
252
+ label,
253
+ action: "failed",
254
+ reason: `${baseReason}${orphanNote ?? ""}`,
255
+ });
146
256
  continue;
147
257
  }
148
258
  }
@@ -1 +1 @@
1
- {"version":3,"file":"relations.js","sourceRoot":"","sources":["../../src/reconcilers/relations.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"relations.js","sourceRoot":"","sources":["../../src/reconcilers/relations.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AACxC,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAElD,8EAA8E;AAC9E,yEAAyE;AACzE,6EAA6E;AAC7E,8EAA8E;AAC9E,wEAAwE;AACxE,MAAM,QAAQ,GAAG,0BAA0B,CAAC;AAE5C,SAAS,WAAW,CAAC,IAAY,EAAE,IAAY;IAC7C,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QACzB,MAAM,IAAI,KAAK,CAAC,WAAW,IAAI,mCAAmC,IAAI,GAAG,CAAC,CAAC;IAC7E,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAQD,uEAAuE;AACvE,uEAAuE;AACvE,2EAA2E;AAC3E,wEAAwE;AACxE,0EAA0E;AAC1E,6CAA6C;AAC7C,KAAK,UAAU,iBAAiB,CAC9B,MAAsB,EACtB,MAAwB;IAExB,wEAAwE;IACxE,0EAA0E;IAC1E,2DAA2D;IAC3D,MAAM,IAAI,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IAClE,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,GAAG,EAAE,CAAC;IACxC,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACrD,sEAAsE;IACtE,wEAAwE;IACxE,4DAA4D;IAC5D,MAAM,KAAK,GACT,6DAA6D;QAC7D,2EAA2E;QAC3E,+CAA+C;QAC/C,+CAA+C;QAC/C,qFAAqF;QACrF,sDAAsD;QACtD,qFAAqF;QACrF,2CAA2C;QAC3C,iCAAiC;QACjC,yBAAyB,QAAQ,GAAG,CAAC;IACvC,IAAI,CAAC;QACH,MAAM,CAAC,GAAG,CAAC,MAAM,MAAM,CAAC,OAAO,CAAC,oBAAoB,EAAE,EAAE,KAAK,EAAE,CAAC,CAG/D,CAAC;QACF,MAAM,KAAK,GAAG,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC;QAC9B,IAAI,CAAC,CAAC,EAAE,OAAO,IAAI,CAAC,KAAK,EAAE,OAAO;YAAE,OAAO,IAAI,CAAC;QAChD,MAAM,GAAG,GAAG,IAAI,GAAG,EAAgC,CAAC;QACpD,KAAK,MAAM,GAAG,IAAI,KAAK,CAAC,IAAI,IAAI,EAAE,EAAE,CAAC;YACnC,IAAI,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;gBACnC,MAAM,EAAE,GAAG,GAA8B,CAAC;gBAC1C,MAAM,KAAK,GAAG,MAAM,CAAC,EAAE,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC;gBAC1C,MAAM,MAAM,GAAG,MAAM,CAAC,EAAE,CAAC,WAAW,IAAI,EAAE,CAAC,CAAC;gBAC5C,IAAI,CAAC,KAAK,IAAI,CAAC,MAAM;oBAAE,SAAS;gBAChC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC;oBAAE,GAAG,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,GAAG,EAAE,CAAC,CAAC;gBAC/C,GAAG,CAAC,GAAG,CAAC,KAAK,CAAE,CAAC,GAAG,CAAC,MAAM,EAAE;oBAC1B,gBAAgB,EAAE,MAAM,CAAC,EAAE,CAAC,gBAAgB,IAAI,EAAE,CAAC;oBACnD,iBAAiB,EAAE,MAAM,CAAC,EAAE,CAAC,iBAAiB,IAAI,EAAE,CAAC;oBACrD,eAAe,EAAE,MAAM,CAAC,EAAE,CAAC,eAAe,IAAI,EAAE,CAAC;iBAClD,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QACD,OAAO,GAAG,CAAC;IACb,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAQD,2EAA2E;AAC3E,+EAA+E;AAC/E,8DAA8D;AAC9D,6EAA6E;AAC7E,0EAA0E;AAC1E,mDAAmD;AACnD,2EAA2E;AAC3E,2EAA2E;AAC3E,yDAAyD;AACzD,SAAS,qBAAqB,CAAC,KAAqB;IAClD,MAAM,UAAU,GAAG,WAAW,CAAC,KAAK,CAAC,UAAU,EAAE,YAAY,CAAC,CAAC;IAC/D,MAAM,KAAK,GAAG,WAAW,CAAC,KAAK,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IAChD,MAAM,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC;IACvB,MAAM,OAAO,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,iBAAiB,IAAI,EAAE,CAAC,EAAE,mBAAmB,CAAC,CAAC;IACpF,MAAM,QAAQ,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,kBAAkB,IAAI,IAAI,CAAC,EAAE,oBAAoB,CAAC,CAAC;IACzF,MAAM,cAAc,GAAG,WAAW,CAChC,MAAM,CAAC,CAAC,CAAC,eAAe,IAAI,GAAG,UAAU,IAAI,KAAK,UAAU,CAAC,EAC7D,iBAAiB,CAClB,CAAC;IACF,kFAAkF;IAClF,MAAM,eAAe,GAAG,IAAI,GAAG,CAAC,CAAC,WAAW,EAAE,UAAU,EAAE,SAAS,EAAE,UAAU,EAAE,aAAa,CAAC,CAAC,CAAC;IACjG,MAAM,QAAQ,GAAG,MAAM,CAAC,CAAC,CAAC,SAAS,IAAI,WAAW,CAAC,CAAC,WAAW,EAAE,CAAC;IAClE,MAAM,QAAQ,GAAG,MAAM,CAAC,CAAC,CAAC,SAAS,IAAI,WAAW,CAAC,CAAC,WAAW,EAAE,CAAC;IAClE,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,QAAQ,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,uBAAuB,QAAQ,GAAG,CAAC,CAAC;IACxF,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,QAAQ,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,uBAAuB,QAAQ,GAAG,CAAC,CAAC;IACxF,OAAO,CACL,gBAAgB,UAAU,qBAAqB,cAAc,IAAI;QACjE,iBAAiB,KAAK,kBAAkB,OAAO,MAAM,QAAQ,KAAK;QAClE,aAAa,QAAQ,cAAc,QAAQ,EAAE,CAC9C,CAAC;AACJ,CAAC;AAED,0EAA0E;AAC1E,uEAAuE;AACvE,yEAAyE;AACzE,sEAAsE;AACtE,oEAAoE;AACpE,oCAAoC;AACpC,KAAK,UAAU,gBAAgB,CAC7B,MAAsB,EACtB,UAAkB,EAClB,KAAa,EACb,OAAe,EACf,QAAgB;IAEhB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IACrE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC;QAAE,OAAO,IAAI,CAAC;IACrE,MAAM,KAAK,GACT,mCAAmC,UAAU,MAAM;QACnD,cAAc,OAAO,aAAa,KAAK,UAAU,QAAQ,IAAI;QAC7D,YAAY,KAAK,wBAAwB,QAAQ,WAAW,CAAC;IAC/D,IAAI,CAAC;QACH,MAAM,CAAC,GAAG,CAAC,MAAM,MAAM,CAAC,OAAO,CAAC,oBAAoB,EAAE,EAAE,KAAK,EAAE,CAAC,CAG/D,CAAC;QACF,MAAM,KAAK,GAAG,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC;QAC9B,IAAI,CAAC,CAAC,EAAE,OAAO,IAAI,CAAC,KAAK,EAAE,OAAO;YAAE,OAAO,IAAI,CAAC;QAChD,MAAM,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;QAC1C,IAAI,CAAC,IAAI,CAAC;YAAE,OAAO,IAAI,CAAC;QACxB,OAAO,oBAAoB,CAAC,qBAAqB,UAAU,IAAI,KAAK,cAAc,OAAO,IAAI,QAAQ,mBAAmB,CAAC;IAC3H,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAQD,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,KAA6B;IAE7B,MAAM,OAAO,GAAmB,EAAE,CAAC;IACnC,MAAM,iBAAiB,GAAa,EAAE,CAAC;IAEvC,uEAAuE;IACvE,wEAAwE;IACxE,iEAAiE;IACjE,sEAAsE;IACtE,kEAAkE;IAClE,MAAM,aAAa,GAAa,EAAE,CAAC;IACnC,IAAI,eAAe,GAAG,CAAC,CAAC;IACxB,KAAK,MAAM,CAAC,UAAU,EAAE,SAAS,CAAC,IAAI,KAAK,CAAC,qBAAqB,EAAE,CAAC;QAClE,IAAI,KAAK,CAAC,IAAI,CAAC,eAAe,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,UAAU,CAAC;YAAE,SAAS;QACxF,KAAK,MAAM,CAAC,IAAI,SAAS,EAAE,CAAC;YAC1B,MAAM,MAAM,GAAI,CAA0C,CAAC,MAAM,CAAC;YAClE,IAAI,MAAM,EAAE,iBAAiB,KAAK,SAAS;gBAAE,SAAS;YACtD,sEAAsE;YACtE,oBAAoB;YACpB,MAAM,QAAQ,GAAG,MAAM,CAAC,kBAAkB,CAAC;YAC3C,IAAI,QAAQ,KAAK,SAAS,IAAI,QAAQ,KAAK,IAAI,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,QAAQ,EAAE,CAAC;gBACjF,iBAAiB,CAAC,IAAI,CAAC,GAAG,UAAU,IAAI,MAAM,CAAE,CAAyB,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;gBACpF,SAAS;YACX,CAAC;YACD,eAAe,EAAE,CAAC;YAClB,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,UAAU,CAAC;gBAAE,aAAa,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAC1E,CAAC;IACH,CAAC;IACD,MAAM,KAAK,GAAG,MAAM,iBAAiB,CAAC,KAAK,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;IACnE,2EAA2E;IAC3E,0EAA0E;IAC1E,sBAAsB;IACtB,IAAI,KAAK,KAAK,IAAI,IAAI,eAAe,GAAG,CAAC,EAAE,CAAC;QAC1C,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,kEAAkE;YAChE,iEAAiE;YACjE,GAAG,eAAe,gBAAgB,CACrC,CAAC;IACJ,CAAC;IACD,KAAK,MAAM,KAAK,IAAI,iBAAiB,EAAE,CAAC;QACtC,OAAO,CAAC,IAAI,CAAC;YACX,IAAI,EAAE,WAAW;YACjB,KAAK,EAAE,aAAa,KAAK,EAAE;YAC3B,MAAM,EAAE,SAAS;YACjB,MAAM,EAAE,8DAA8D;SACvE,CAAC,CAAC;IACL,CAAC;IAED,KAAK,MAAM,CAAC,UAAU,EAAE,SAAS,CAAC,IAAI,KAAK,CAAC,qBAAqB,EAAE,CAAC;QAClE,IAAI,KAAK,CAAC,IAAI,CAAC,eAAe,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,UAAU,CAAC;YAAE,SAAS;QACxF,KAAK,MAAM,OAAO,IAAI,SAAS,EAAE,CAAC;YAChC,MAAM,KAAK,GAAG,MAAM,CAAE,OAA+B,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC;YACnE,IAAI,CAAC,KAAK;gBAAE,SAAS;YACrB,MAAM,KAAK,GAAG,aAAa,UAAU,IAAI,KAAK,EAAE,CAAC;YACjD,wEAAwE;YACxE,gDAAgD;YAChD,IAAI,iBAAiB,CAAC,QAAQ,CAAC,GAAG,UAAU,IAAI,KAAK,EAAE,CAAC;gBAAE,SAAS;YAEnE,IAAI,QAAwC,CAAC;YAC7C,IAAI,CAAC;gBACH,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,cAAc,UAAU,IAAI,KAAK,EAAE,CAAC,CAAC;gBACxE,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC;YAC7C,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACX,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAG,CAAW,CAAC,OAAO,EAAE,CAAC,CAAC;gBAC3F,SAAS;YACX,CAAC;YAED,MAAM,OAAO,GAAG,gBAAgB,CAAC,OAAkC,CAAC,CAAC;YACrE,MAAM,WAAW,GAAI,OAAO,CAAC,IAA4C,IAAI,EAAE,CAAC;YAChF,MAAM,YAAY,GAAI,QAAQ,EAAE,IAA4C,IAAI,EAAE,CAAC;YACnF,MAAM,aAAa,GAAG,OAAO,CAAC,MAA6C,CAAC;YAE5E,sEAAsE;YACtE,mEAAmE;YACnE,sEAAsE;YACtE,qBAAqB;YACrB,IAAI,OAAO,GAAG,KAAK,CAAC;YACpB,IAAI,eAAmC,CAAC;YACxC,IAAI,QAAQ,KAAK,IAAI,IAAI,KAAK,IAAI,aAAa,EAAE,iBAAiB,EAAE,CAAC;gBACnE,MAAM,aAAa,GAAG,MAAM,CAAC,aAAa,CAAC,iBAAiB,CAAC,CAAC;gBAC9D,MAAM,cAAc,GAAG,MAAM,CAAC,aAAa,CAAC,kBAAkB,IAAI,IAAI,CAAC,CAAC;gBACxE,MAAM,MAAM,GAAG,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC;gBACjD,IAAI,CAAC,MAAM,EAAE,CAAC;oBACZ,OAAO,GAAG,IAAI,CAAC;gBACjB,CAAC;qBAAM,IACL,MAAM,CAAC,gBAAgB,KAAK,aAAa;oBACzC,MAAM,CAAC,iBAAiB,KAAK,cAAc,EAC3C,CAAC;oBACD,iEAAiE;oBACjE,kEAAkE;oBAClE,kDAAkD;oBAClD,OAAO,GAAG,KAAK,CAAC;oBAChB,eAAe,GAAG,SAAS,UAAU,IAAI,KAAK,cAAc,MAAM,CAAC,gBAAgB,IAAI,MAAM,CAAC,iBAAiB,sBAAsB,aAAa,IAAI,cAAc,8BAA8B,CAAC;gBACrM,CAAC;YACH,CAAC;YAED,IAAI,QAAQ,KAAK,IAAI,EAAE,CAAC;gBACtB,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;oBACvB,IAAI,CAAC;wBACH,MAAM,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;oBACjD,CAAC;oBAAC,OAAO,CAAC,EAAE,CAAC;wBACX,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAG,CAAW,CAAC,OAAO,EAAE,CAAC,CAAC;wBAC3F,SAAS;oBACX,CAAC;gBACH,CAAC;gBACD,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC;YAChE,CAAC;iBAAM,IAAI,eAAe,EAAE,CAAC;gBAC3B,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,eAAe,EAAE,CAAC,CAAC;YACxF,CAAC;iBAAM,IAAI,OAAO,EAAE,CAAC;gBACnB,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;oBACvB,IAAI,CAAC;wBACH,MAAM,GAAG,GAAG,qBAAqB,CAAC;4BAChC,UAAU;4BACV,KAAK;4BACL,MAAM,EAAE,aAAwC;yBACjD,CAAC,CAAC;wBACH,MAAM,CAAC,GAAG,CAAC,MAAM,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,oBAAoB,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAG1E,CAAC;wBACF,MAAM,KAAK,GAAG,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC;wBAC9B,IAAI,CAAC,CAAC,EAAE,OAAO,IAAI,CAAC,KAAK,EAAE,OAAO,EAAE,CAAC;4BACnC,MAAM,UAAU,GAAG,KAAK,EAAE,KAAK,IAAI,gCAAgC,CAAC;4BACpE,8DAA8D;4BAC9D,8DAA8D;4BAC9D,6CAA6C;4BAC7C,MAAM,UAAU,GAAG,MAAM,gBAAgB,CACvC,KAAK,CAAC,MAAM,EACZ,UAAU,EACV,KAAK,EACL,MAAM,CAAC,aAAc,CAAC,iBAAiB,CAAC,EACxC,MAAM,CAAC,aAAc,CAAC,kBAAkB,IAAI,IAAI,CAAC,CAClD,CAAC;4BACF,OAAO,CAAC,IAAI,CAAC;gCACX,IAAI,EAAE,WAAW;gCACjB,KAAK;gCACL,MAAM,EAAE,QAAQ;gCAChB,MAAM,EAAE,GAAG,UAAU,GAAG,UAAU,IAAI,EAAE,EAAE;6BAC3C,CAAC,CAAC;4BACH,SAAS;wBACX,CAAC;oBACH,CAAC;oBAAC,OAAO,CAAC,EAAE,CAAC;wBACX,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAG,CAAW,CAAC,OAAO,EAAE,CAAC,CAAC;wBAC3F,SAAS;oBACX,CAAC;gBACH,CAAC;gBACD,OAAO,CAAC,IAAI,CAAC;oBACX,IAAI,EAAE,WAAW;oBACjB,KAAK;oBACL,MAAM,EAAE,SAAS;oBACjB,MAAM,EAAE,8EAA8E;iBACvF,CAAC,CAAC;YACL,CAAC;iBAAM,IAAI,UAAU,CAAC,WAAW,EAAE,YAAY,CAAC,EAAE,CAAC;gBACjD,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;oBACvB,IAAI,CAAC;wBACH,kEAAkE;wBAClE,mEAAmE;wBACnE,iEAAiE;wBACjE,mEAAmE;wBACnE,mEAAmE;wBACnE,8CAA8C;wBAC9C,MAAM,SAAS,GAAG,YAAY,IAAI,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,MAAM,GAAG,CAAC;4BACpE,CAAC,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE;4BACvB,CAAC,CAAC,OAAO,CAAC;wBACZ,MAAM,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,cAAc,UAAU,IAAI,KAAK,EAAE,EAAE,SAAS,CAAC,CAAC;oBAC3E,CAAC;oBAAC,OAAO,CAAC,EAAE,CAAC;wBACX,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAG,CAAW,CAAC,OAAO,EAAE,CAAC,CAAC;wBAC3F,SAAS;oBACX,CAAC;gBACH,CAAC;gBACD,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC;YAChE,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC,CAAC;YAClE,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "directus-deploy-cli",
3
- "version": "0.13.2",
3
+ "version": "0.13.3",
4
4
  "description": "Per-entity, non-atomic Directus deployment tool. Reconciles collections/fields/relations/roles/policies/permissions/flows/operations/migrations/seeds from git to any environment.",
5
5
  "type": "module",
6
6
  "bin": {