@ekwo-ai/core 0.21.1 → 0.21.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.
@@ -19,6 +19,7 @@
19
19
  * `@supabase/supabase-js` or a Postgres driver, the command line's over
20
20
  * `fetch`. Nothing in this folder imports anything from outside the core.
21
21
  */
22
+ import { type SchemaFeature } from '../schema.js';
22
23
  export type Value = string | number | boolean | null;
23
24
  export type Filter = {
24
25
  column: string;
@@ -152,11 +153,31 @@ export declare function socleMarkerAnswer(answer: {
152
153
  status?: number | undefined;
153
154
  code?: string | undefined;
154
155
  }): boolean | undefined;
155
- /** A backend that also says where the socle is. */
156
+ /** A backend that also says where the socle is, and at which version. */
156
157
  export interface SocleBackend extends Backend {
157
158
  /** `ekwo` or `public`, resolved by the marker on first use. */
158
159
  socleSchema(): Promise<string>;
160
+ /**
161
+ * What `ekwo_schema_version()` answers, asked the first time a call touches
162
+ * something of `SCHEMA_FEATURES` and kept; `undefined` while it does not
163
+ * answer.
164
+ */
165
+ schemaVersion(): Promise<string | undefined>;
159
166
  }
167
+ /**
168
+ * Whether the schema behind `backend` has `feature`.
169
+ *
170
+ * A backend that has `schemaVersion()` answers from it: every one built by
171
+ * `onSocle()`, and any other that a surface gives the method — Ekwo Cloud's
172
+ * own, which reads the version of the project it is signed in to. A backend
173
+ * without it — and one whose database has not said its version — is taken
174
+ * to be at this release, which is what every call assumed before the floor
175
+ * was separated from the release: an unknown version never makes a current
176
+ * installation lose a column.
177
+ */
178
+ export declare function backendSupports(backend: Backend, feature: SchemaFeature): Promise<boolean>;
179
+ /** The refusal of a call that needs a newer schema than the one it reached. */
180
+ export declare function schemaTooOldFor(feature: SchemaFeature, installed: string, what: string): BooksError;
160
181
  /**
161
182
  * The same backend, with the socle's schema named on every call.
162
183
  *
@@ -1 +1 @@
1
- {"version":3,"file":"backend.d.ts","sourceRoot":"","sources":["../../src/books/backend.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"backend.d.ts","sourceRoot":"","sources":["../../src/books/backend.ts"],"names":[],"mappings":"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"}
@@ -19,6 +19,7 @@
19
19
  * `@supabase/supabase-js` or a Postgres driver, the command line's over
20
20
  * `fetch`. Nothing in this folder imports anything from outside the core.
21
21
  */
22
+ import { SCHEMA_FEATURES, supports } from '../schema.js';
22
23
  export const SESSION_POSTING = ['review', 'autopilot'];
23
24
  /**
24
25
  * Where the socle lives: its own schema, and the one it is leaving.
@@ -86,6 +87,50 @@ export function socleMarkerAnswer(answer) {
86
87
  return false;
87
88
  return undefined;
88
89
  }
90
+ /** Each column of `SCHEMA_FEATURES`, by table: what a read leaves out below its version. */
91
+ const FEATURE_COLUMNS = new Map();
92
+ /** Each function of `SCHEMA_FEATURES`, and the feature it belongs to. */
93
+ const FEATURE_FUNCTIONS = new Map();
94
+ for (const [feature, objects] of Object.entries(SCHEMA_FEATURES)) {
95
+ for (const qualified of objects.columns) {
96
+ const [table, column] = qualified.split('.');
97
+ FEATURE_COLUMNS.set(table, [...(FEATURE_COLUMNS.get(table) ?? []), { column, feature }]);
98
+ }
99
+ for (const fn of objects.functions)
100
+ FEATURE_FUNCTIONS.set(fn, feature);
101
+ }
102
+ /** `amount` for `amount`, `amount::text` and `total:amount`, the forms a select list takes. */
103
+ function selectedColumn(entry) {
104
+ const cast = entry.indexOf('::');
105
+ const bare = cast === -1 ? entry : entry.slice(0, cast);
106
+ const alias = bare.indexOf(':');
107
+ return (alias === -1 ? bare : bare.slice(alias + 1)).trim();
108
+ }
109
+ /**
110
+ * Whether the schema behind `backend` has `feature`.
111
+ *
112
+ * A backend that has `schemaVersion()` answers from it: every one built by
113
+ * `onSocle()`, and any other that a surface gives the method — Ekwo Cloud's
114
+ * own, which reads the version of the project it is signed in to. A backend
115
+ * without it — and one whose database has not said its version — is taken
116
+ * to be at this release, which is what every call assumed before the floor
117
+ * was separated from the release: an unknown version never makes a current
118
+ * installation lose a column.
119
+ */
120
+ export async function backendSupports(backend, feature) {
121
+ const versioned = backend;
122
+ if (typeof versioned.schemaVersion !== 'function')
123
+ return true;
124
+ const installed = await versioned.schemaVersion();
125
+ return installed === undefined || supports(installed, feature);
126
+ }
127
+ /** The refusal of a call that needs a newer schema than the one it reached. */
128
+ export function schemaTooOldFor(feature, installed, what) {
129
+ const since = SCHEMA_FEATURES[feature].since;
130
+ return new BooksError(`schema_too_old_for: ${what} needs schema ${since} (${feature}), and this database is at ${installed}. Its operator runs \`ekwo migrate\`.`, {
131
+ hint: 'Everything older than that keeps working on this database; this one thing waits for the update.',
132
+ });
133
+ }
89
134
  /**
90
135
  * The same backend, with the socle's schema named on every call.
91
136
  *
@@ -96,25 +141,95 @@ export function socleMarkerAnswer(answer) {
96
141
  */
97
142
  export function onSocle(inner, socleSchema) {
98
143
  const schemaOf = async (schema) => schema ?? (await socleSchema());
144
+ // Asked once, and only by a call that touches a feature: a backend that
145
+ // never reads one of those columns never pays the round trip. An answer that
146
+ // fails is not kept, so the next call asks again.
147
+ let version;
148
+ const schemaVersion = () => {
149
+ if (version === undefined) {
150
+ version = (async () => {
151
+ const rows = await inner.rpc(SOCLE_MARKER, {}, await socleSchema());
152
+ const answer = rows[0];
153
+ return typeof answer === 'string' ? answer : undefined;
154
+ })().then((answer) => {
155
+ if (answer === undefined)
156
+ version = undefined;
157
+ return answer;
158
+ }, () => {
159
+ version = undefined;
160
+ return undefined;
161
+ });
162
+ }
163
+ return version;
164
+ };
165
+ // The columns among `named` of a socle table this database does not have
166
+ // yet, and the version it is at: nothing when none of them belongs to a
167
+ // feature — the version is not even asked then — when the call names a
168
+ // module's schema, or when the version is not known.
169
+ const lacking = async (table, schema, named) => {
170
+ const gated = FEATURE_COLUMNS.get(table)?.filter((g) => named.includes(g.column));
171
+ if (gated === undefined || gated.length === 0)
172
+ return undefined;
173
+ if (schema !== undefined && schema !== (await socleSchema()))
174
+ return undefined;
175
+ const installed = await schemaVersion();
176
+ if (installed === undefined)
177
+ return undefined;
178
+ const columns = new Map(gated.filter((g) => !supports(installed, g.feature)).map((g) => [g.column, g.feature]));
179
+ return columns.size === 0 ? undefined : { columns, installed };
180
+ };
181
+ const refuseCall = async (fn, schema) => {
182
+ const feature = FEATURE_FUNCTIONS.get(fn);
183
+ if (feature === undefined || (schema !== undefined && schema !== (await socleSchema())))
184
+ return;
185
+ const installed = await schemaVersion();
186
+ if (installed !== undefined && !supports(installed, feature))
187
+ throw schemaTooOldFor(feature, installed, `${fn}()`);
188
+ };
189
+ const refuseWrite = async (table, rows, schema) => {
190
+ const missing = await lacking(table, schema, [...new Set(rows.flatMap((row) => Object.keys(row)))]);
191
+ if (missing === undefined)
192
+ return;
193
+ for (const row of rows) {
194
+ for (const key of Object.keys(row)) {
195
+ const feature = missing.columns.get(key);
196
+ if (feature !== undefined)
197
+ throw schemaTooOldFor(feature, missing.installed, `writing ${table}.${key}`);
198
+ }
199
+ }
200
+ };
99
201
  return {
100
202
  mode: inner.mode,
101
203
  actingAs: inner.actingAs,
102
204
  agent: inner.agent,
103
205
  socleSchema,
206
+ schemaVersion,
104
207
  async rpc(fn, args, schema) {
208
+ await refuseCall(fn, schema);
105
209
  return inner.rpc(fn, args, await schemaOf(schema));
106
210
  },
107
211
  async rpcVoid(fn, args, schema) {
212
+ await refuseCall(fn, schema);
108
213
  return inner.rpcVoid(fn, args, await schemaOf(schema));
109
214
  },
110
215
  async select(query) {
111
- return inner.select({ ...query, schema: await schemaOf(query.schema) });
216
+ // A column a newer schema added is not asked of an older one: the row
217
+ // comes back without it, as it did from the release that introduced it.
218
+ const missing = await lacking(query.table, query.schema, query.columns.map(selectedColumn));
219
+ const columns = missing === undefined ? query.columns : query.columns.filter((c) => !missing.columns.has(selectedColumn(c)));
220
+ return inner.select({ ...query, columns, schema: await schemaOf(query.schema) });
112
221
  },
113
222
  async insert(table, rows, returning, schema) {
114
- return inner.insert(table, rows, returning, await schemaOf(schema));
223
+ await refuseWrite(table, rows, schema);
224
+ const missing = returning === undefined ? undefined : await lacking(table, schema, returning.map(selectedColumn));
225
+ const kept = missing === undefined ? returning : returning?.filter((c) => !missing.columns.has(selectedColumn(c)));
226
+ return inner.insert(table, rows, kept, await schemaOf(schema));
115
227
  },
116
228
  async update(table, patch, where, returning, schema) {
117
- return inner.update(table, patch, where, returning, await schemaOf(schema));
229
+ await refuseWrite(table, [patch], schema);
230
+ const missing = returning === undefined ? undefined : await lacking(table, schema, returning.map(selectedColumn));
231
+ const kept = missing === undefined ? returning : returning?.filter((c) => !missing.columns.has(selectedColumn(c)));
232
+ return inner.update(table, patch, where, kept, await schemaOf(schema));
118
233
  },
119
234
  async remove(table, where, schema) {
120
235
  return inner.remove(table, where, await schemaOf(schema));
@@ -1 +1 @@
1
- {"version":3,"file":"backend.js","sourceRoot":"","sources":["../../src/books/backend.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"backend.js","sourceRoot":"","sources":["../../src/books/backend.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"documents.d.ts","sourceRoot":"","sources":["../../src/books/documents.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"documents.d.ts","sourceRoot":"","sources":["../../src/books/documents.ts"],"names":[],"mappings":"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"}
@@ -8,7 +8,7 @@
8
8
  * or an `entry_lines` row. Direct inserts are for the objects a person types:
9
9
  * draft documents and their lines.
10
10
  */
11
- import { BooksError } from './backend.js';
11
+ import { BooksError, backendSupports } from './backend.js';
12
12
  import * as columns from './columns.js';
13
13
  import { amountIn, moneyFields } from './format.js';
14
14
  import { companyCurrency, createdBefore, idsByCode, namesOf, only, onlyVisible } from './shared.js';
@@ -38,29 +38,35 @@ export async function createDocument(backend, args) {
38
38
  limit: 1,
39
39
  });
40
40
  if (held.length === 0 && before['state'] === 'draft')
41
- await replaceLines(backend, id, resolved);
41
+ await replaceLines(backend, args.company_id, id, resolved);
42
42
  return { ...(await getDocument(backend, { document_id: id })), replayed: true };
43
43
  }
44
44
  const currency = args.currency_code ?? (await companyCurrency(backend, args.company_id));
45
+ const header = {
46
+ company_id: args.company_id,
47
+ doc_type: args.doc_type,
48
+ contact_id: args.contact_id,
49
+ document_date: args.document_date,
50
+ due_date: args.due_date ?? null,
51
+ accounting_date: args.accounting_date ?? null,
52
+ number: args.number ?? null,
53
+ supplier_reference: args.supplier_reference ?? null,
54
+ currency_code: currency,
55
+ journal_id: args.journal_id ?? null,
56
+ payment_reference: args.payment_reference ?? null,
57
+ client_ref: args.client_ref ?? null,
58
+ };
59
+ // A schema older than `create_document()` (0.21.0) is written the way it
60
+ // always was: the header, then its lines. A connection that drops between
61
+ // the two leaves a draft with none, which the replay above finishes.
62
+ if (!(await backendSupports(backend, 'documents_in_one_statement'))) {
63
+ const document = only(await backend.insert('documents', [header], ['id']), 'the document could not be created');
64
+ await insertLines(backend, args.company_id, document['id'], resolved);
65
+ return getDocument(backend, { document_id: document['id'] });
66
+ }
45
67
  // The header and its lines in one statement: a line the database refuses
46
68
  // creates nothing, rather than an empty draft.
47
- const id = only(await backend.rpc('create_document', {
48
- p_document: {
49
- company_id: args.company_id,
50
- doc_type: args.doc_type,
51
- contact_id: args.contact_id,
52
- document_date: args.document_date,
53
- due_date: args.due_date ?? null,
54
- accounting_date: args.accounting_date ?? null,
55
- number: args.number ?? null,
56
- supplier_reference: args.supplier_reference ?? null,
57
- currency_code: currency,
58
- journal_id: args.journal_id ?? null,
59
- payment_reference: args.payment_reference ?? null,
60
- client_ref: args.client_ref ?? null,
61
- },
62
- p_lines: resolved,
63
- }), 'the document could not be created');
69
+ const id = only(await backend.rpc('create_document', { p_document: header, p_lines: resolved }), 'the document could not be created');
64
70
  return getDocument(backend, { document_id: id });
65
71
  }
66
72
  function isSale(docType) {
@@ -170,8 +176,17 @@ async function productsFor(backend, company, lines) {
170
176
  * Every line of a draft replaced by these, through `replace_document_lines()`:
171
177
  * one statement, so a line the database refuses leaves the draft with the
172
178
  * lines it had rather than with none.
179
+ *
180
+ * A schema older than that function (0.21.0) has the lines deleted and then
181
+ * inserted, as every release before it did — and there a refused line still
182
+ * leaves the draft without any, which is what `ekwo migrate` fixes.
173
183
  */
174
- async function replaceLines(backend, documentId, lines) {
184
+ async function replaceLines(backend, company, documentId, lines) {
185
+ if (!(await backendSupports(backend, 'documents_in_one_statement'))) {
186
+ await backend.remove('document_lines', [{ column: 'document_id', op: 'eq', value: documentId }]);
187
+ await insertLines(backend, company, documentId, lines);
188
+ return;
189
+ }
175
190
  await backend.rpc('replace_document_lines', { p_document_id: documentId, p_lines: lines });
176
191
  }
177
192
  async function insertLines(backend, company, documentId, lines, after = 0) {
@@ -215,7 +230,7 @@ export async function updateDocumentLines(backend, args) {
215
230
  const document = await draftOf(backend, args.document_id);
216
231
  const company = document['company_id'];
217
232
  const resolved = await resolveLineInputs(backend, company, document['doc_type'], args.lines);
218
- await replaceLines(backend, args.document_id, resolved);
233
+ await replaceLines(backend, company, args.document_id, resolved);
219
234
  return getDocument(backend, { document_id: args.document_id });
220
235
  }
221
236
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"documents.js","sourceRoot":"","sources":["../../src/books/documents.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"documents.js","sourceRoot":"","sources":["../../src/books/documents.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,UAAU,EAAE,eAAe,EAAuC,MAAM,cAAc,CAAC;AAChG,OAAO,KAAK,OAAO,MAAM,cAAc,CAAC;AACxC,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAEpD,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,SAAS,EAAE,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAEpG,MAAM,CAAC,MAAM,SAAS,GAAG;IACvB,cAAc;IACd,kBAAkB;IAClB,YAAY;IACZ,kBAAkB;IAClB,sBAAsB;IACtB,gBAAgB;CACqB,CAAC;AAExC,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,OAAO,EAAE,QAAQ,EAAE,WAAW,CAAU,CAAC;AACzE,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,UAAU,EAAE,gBAAgB,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU,CAAU,CAAC;AA2EtG,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,OAAgB,EAChB,IAAwB;IAExB,MAAM,QAAQ,GAAG,MAAM,iBAAiB,CAAC,OAAO,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;IAE9F,sEAAsE;IACtE,0EAA0E;IAC1E,wEAAwE;IACxE,iEAAiE;IACjE,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,OAAO,EAAE,WAAW,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,UAAU,EAAE,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC;IAC5G,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;QACzB,MAAM,EAAE,GAAG,MAAM,CAAC,IAAI,CAAW,CAAC;QAClC,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,MAAM,CAAM;YACrC,KAAK,EAAE,gBAAgB;YACvB,OAAO,EAAE,CAAC,IAAI,CAAC;YACf,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,aAAa,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC;YACvD,KAAK,EAAE,CAAC;SACT,CAAC,CAAC;QACH,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,OAAO;YAAE,MAAM,YAAY,CAAC,OAAO,EAAE,IAAI,CAAC,UAAU,EAAE,EAAE,EAAE,QAAQ,CAAC,CAAC;QACjH,OAAO,EAAE,GAAI,CAAC,MAAM,WAAW,CAAC,OAAO,EAAE,EAAE,WAAW,EAAE,EAAE,EAAE,CAAC,CAAS,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;IAC3F,CAAC;IAED,MAAM,QAAQ,GAAG,IAAI,CAAC,aAAa,IAAI,CAAC,MAAM,eAAe,CAAC,OAAO,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;IACzF,MAAM,MAAM,GAAQ;QAClB,UAAU,EAAE,IAAI,CAAC,UAAU;QAC3B,QAAQ,EAAE,IAAI,CAAC,QAAQ;QACvB,UAAU,EAAE,IAAI,CAAC,UAAU;QAC3B,aAAa,EAAE,IAAI,CAAC,aAAa;QACjC,QAAQ,EAAE,IAAI,CAAC,QAAQ,IAAI,IAAI;QAC/B,eAAe,EAAE,IAAI,CAAC,eAAe,IAAI,IAAI;QAC7C,MAAM,EAAE,IAAI,CAAC,MAAM,IAAI,IAAI;QAC3B,kBAAkB,EAAE,IAAI,CAAC,kBAAkB,IAAI,IAAI;QACnD,aAAa,EAAE,QAAQ;QACvB,UAAU,EAAE,IAAI,CAAC,UAAU,IAAI,IAAI;QACnC,iBAAiB,EAAE,IAAI,CAAC,iBAAiB,IAAI,IAAI;QACjD,UAAU,EAAE,IAAI,CAAC,UAAU,IAAI,IAAI;KACpC,CAAC;IAEF,yEAAyE;IACzE,0EAA0E;IAC1E,qEAAqE;IACrE,IAAI,CAAC,CAAC,MAAM,eAAe,CAAC,OAAO,EAAE,4BAA4B,CAAC,CAAC,EAAE,CAAC;QACpE,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,OAAO,CAAC,MAAM,CAAM,WAAW,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,EAAE,mCAAmC,CAAC,CAAC;QACrH,MAAM,WAAW,CAAC,OAAO,EAAE,IAAI,CAAC,UAAU,EAAE,QAAQ,CAAC,IAAI,CAAW,EAAE,QAAQ,CAAC,CAAC;QAChF,OAAO,WAAW,CAAC,OAAO,EAAE,EAAE,WAAW,EAAE,QAAQ,CAAC,IAAI,CAAW,EAAE,CAAC,CAAC;IACzE,CAAC;IAED,yEAAyE;IACzE,+CAA+C;IAC/C,MAAM,EAAE,GAAG,IAAI,CACb,MAAM,OAAO,CAAC,GAAG,CAAS,iBAAiB,EAAE,EAAE,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,EACvF,mCAAmC,CACpC,CAAC;IACF,OAAO,WAAW,CAAC,OAAO,EAAE,EAAE,WAAW,EAAE,EAAE,EAAE,CAAC,CAAC;AACnD,CAAC;AAiBD,SAAS,MAAM,CAAC,OAAgB;IAC9B,OAAO,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;AACrC,CAAC;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,KAAK,UAAU,iBAAiB,CAC9B,OAAgB,EAChB,OAAe,EACf,OAAgB,EAChB,KAAiB;IAEjB,MAAM,CAAC,QAAQ,EAAE,KAAK,EAAE,QAAQ,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;QACpD,SAAS,CACP,OAAO,EACP,UAAU,EACV,OAAO,EACP,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAkB,EAAE,CAAC,OAAO,IAAI,KAAK,QAAQ,CAAC,CAClG;QACD,SAAS,CACP,OAAO,EACP,OAAO,EACP,OAAO,EACP,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAkB,EAAE,CAAC,OAAO,IAAI,KAAK,QAAQ,CAAC,CAC9F;QACD,WAAW,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,CAAC;KACrC,CAAC,CAAC;IAEH,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC;IAE7B,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;QAC/B,MAAM,SAAS,GACb,IAAI,CAAC,UAAU,IAAI,CAAC,IAAI,CAAC,YAAY,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAE,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC,IAAI,CAAY,CAAC,CAAC;QAC3H,MAAM,OAAO,GACX,SAAS,KAAK,IAAI,IAAI,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QAE3F,IAAI,SAAS,KAAK,IAAI,IAAI,SAAS,KAAK,SAAS,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;YAC3E,MAAM,IAAI,UAAU,CAClB,+BAA+B,SAAS,yHAAyH,CAClK,CAAC;QACJ,CAAC;QAED,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,IAAK,OAAO,EAAE,CAAC,MAAM,CAAwB,CAAC;QACpE,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;YACvB,MAAM,IAAI,UAAU,CAClB,2BAA2B,KAAK,GAAG,CAAC,uFAAuF,CAC5H,CAAC;QACJ,CAAC;QAED,MAAM,YAAY,GAAG,OAAO,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC;QACvE,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,IAAI,CAAC,OAAO,YAAY,KAAK,QAAQ,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;QACnG,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;YAC5B,MAAM,IAAI,UAAU,CAClB,4BAA4B,KAAK,GAAG,CAAC,MAAM,IAAI,wBAC7C,OAAO,KAAK,SAAS;gBACnB,CAAC,CAAC,6BAA6B;gBAC/B,CAAC,CAAC,WAAW,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,WAAW,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,UAAU,QAC7E,GAAG,CACJ,CAAC;QACJ,CAAC;QAED,MAAM,UAAU,GAAG,OAAO,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC;QAEvE,OAAO;YACL,UAAU,EAAE,SAAS,IAAI,IAAI;YAC7B,IAAI;YACJ,WAAW,EACT,IAAI,CAAC,WAAW,IAAI,CAAE,OAAO,EAAE,CAAC,aAAa,CAA+B,IAAI,IAAI,CAAC;YACvF,SAAS,EAAE,IAAI,CAAC,SAAS,IAAI,CAAE,OAAO,EAAE,CAAC,WAAW,CAAwB,IAAI,KAAK,CAAC;YACtF,UAAU,EAAE,QAAQ,CAAC,SAAS,CAAC;YAC/B,QAAQ,EAAE,QAAQ,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAC,CAAC;YACtC,gBAAgB,EAAE,QAAQ,CAAC,IAAI,CAAC,gBAAgB,IAAI,CAAC,CAAC;YACtD,UAAU,EACR,IAAI,CAAC,UAAU,IAAI,CAAC,IAAI,CAAC,YAAY,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,IAAI,CAAC,CAAC;YACzG,MAAM,EACJ,IAAI,CAAC,MAAM;gBACX,CAAC,IAAI,CAAC,QAAQ,KAAK,SAAS;oBAC1B,CAAC,CAAC,CAAC,OAAO,UAAU,KAAK,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC;oBACtD,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,CAAC;YACzC,UAAU,EAAE,IAAI,CAAC,UAAU,IAAI,EAAE;SAClC,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC;AAED,kFAAkF;AAClF,KAAK,UAAU,WAAW,CACxB,OAAgB,EAChB,OAAe,EACf,KAAiB;IAEjB,MAAM,GAAG,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,EAAgB,EAAE,CAAC,OAAO,EAAE,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC;IACpH,MAAM,KAAK,GAAG;QACZ,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAkB,EAAE,CAAC,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC;KAC9G,CAAC;IACF,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,IAAI,EAAE,IAAI,GAAG,EAAE,EAAE,MAAM,EAAE,IAAI,GAAG,EAAE,EAAE,CAAC;IAE1F,MAAM,KAAK,GAAa,CAAC,EAAE,MAAM,EAAE,YAAY,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC;IAC7E,MAAM,IAAI,GACR,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC;QAChC,CAAC,CAAC;YACE,GAAG,CAAC,MAAM,OAAO,CAAC,MAAM,CAAM;gBAC5B,KAAK,EAAE,UAAU;gBACjB,OAAO,EAAE,OAAO,CAAC,OAAO;gBACxB,KAAK,EAAE,CAAC,GAAG,KAAK,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC;aAC1D,CAAC,CAAC;YACH,GAAG,CAAC,MAAM,OAAO,CAAC,MAAM,CAAM;gBAC5B,KAAK,EAAE,UAAU;gBACjB,OAAO,EAAE,OAAO,CAAC,OAAO;gBACxB,KAAK,EAAE,CAAC,GAAG,KAAK,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;aAC9D,CAAC,CAAC;SACJ;QACH,CAAC,CAAC,MAAM,OAAO,CAAC,MAAM,CAAM;YACxB,KAAK,EAAE,UAAU;YACjB,OAAO,EAAE,OAAO,CAAC,OAAO;YACxB,KAAK,EAAE;gBACL,GAAG,KAAK;gBACR,GAAG,CAAC,MAAM,GAAG,CAAC;oBACZ,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE;oBACxC,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE;aAC/C;SACF,CAAC,CAAC;IAET,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,IAAI,CAAW,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;IACpE,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,MAAM,CAAW,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;IACxE,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;YACtB,MAAM,IAAI,UAAU,CAClB,qCAAqC,IAAI,mFAAmF,CAC7H,CAAC;QACJ,CAAC;IACH,CAAC;IACD,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;AAC1B,CAAC;AAED;;;;;;;;GAQG;AACH,KAAK,UAAU,YAAY,CAAC,OAAgB,EAAE,OAAe,EAAE,UAAkB,EAAE,KAAqB;IACtG,IAAI,CAAC,CAAC,MAAM,eAAe,CAAC,OAAO,EAAE,4BAA4B,CAAC,CAAC,EAAE,CAAC;QACpE,MAAM,OAAO,CAAC,MAAM,CAAC,gBAAgB,EAAE,CAAC,EAAE,MAAM,EAAE,aAAa,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC;QACjG,MAAM,WAAW,CAAC,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,KAAK,CAAC,CAAC;QACvD,OAAO;IACT,CAAC;IACD,MAAM,OAAO,CAAC,GAAG,CAAC,wBAAwB,EAAE,EAAE,aAAa,EAAE,UAAU,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;AAC7F,CAAC;AAED,KAAK,UAAU,WAAW,CACxB,OAAgB,EAChB,OAAe,EACf,UAAkB,EAClB,KAAqB,EACrB,KAAK,GAAG,CAAC;IAET,MAAM,IAAI,GAAU,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC;QAC9C,WAAW,EAAE,UAAU;QACvB,UAAU,EAAE,OAAO;QACnB,QAAQ,EAAE,KAAK,GAAG,CAAC,KAAK,GAAG,CAAC,CAAC,GAAG,EAAE;QAClC,SAAS,EAAE,SAAS;QACpB,GAAG,IAAI;KACR,CAAC,CAAC,CAAC;IACJ,MAAM,OAAO,CAAC,MAAM,CAAC,gBAAgB,EAAE,IAAI,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;AACvD,CAAC;AAED,uEAAuE;AACvE,KAAK,UAAU,OAAO,CAAC,OAAgB,EAAE,UAAkB;IACzD,MAAM,QAAQ,GAAG,IAAI,CACnB,MAAM,OAAO,CAAC,MAAM,CAAM;QACxB,KAAK,EAAE,WAAW;QAClB,OAAO,EAAE,CAAC,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,UAAU,CAAC;QAClD,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC;KACvD,CAAC,EACF,YAAY,UAAU,EAAE,CACzB,CAAC;IACF,IAAI,QAAQ,CAAC,OAAO,CAAC,KAAK,OAAO,EAAE,CAAC;QAClC,MAAM,IAAI,UAAU,CAClB,gCAAgC,UAAU,OAAO,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,mEAAmE,CAC9I,CAAC;IACJ,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,kFAAkF;AAClF,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,OAAgB,EAAE,IAAyB;IAC/E,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;IAC1D,MAAM,OAAO,GAAG,QAAQ,CAAC,YAAY,CAAW,CAAC;IACjD,MAAM,CAAC,QAAQ,CAAC,GAAG,MAAM,iBAAiB,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,CAAC,UAAU,CAAY,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IAC3G,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,MAAM,CAAuB;QACtD,KAAK,EAAE,gBAAgB;QACvB,OAAO,EAAE,CAAC,UAAU,CAAC;QACrB,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,aAAa,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC;QACrE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;QACjD,KAAK,EAAE,CAAC;KACT,CAAC,CAAC;IACH,MAAM,WAAW,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC,QAAwB,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,QAAQ,IAAI,CAAC,CAAC,CAAC;IAC1G,OAAO,WAAW,CAAC,OAAO,EAAE,EAAE,WAAW,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;AACjE,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,OAAgB,EAChB,IAA6B;IAE7B,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;IAE1D,MAAM,OAAO,GAAG,QAAQ,CAAC,YAAY,CAAW,CAAC;IACjD,MAAM,QAAQ,GAAG,MAAM,iBAAiB,CACtC,OAAO,EACP,OAAO,EACP,QAAQ,CAAC,UAAU,CAAY,EAC/B,IAAI,CAAC,KAAK,CACX,CAAC;IAEF,MAAM,YAAY,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;IACjE,OAAO,WAAW,CAAC,OAAO,EAAE,EAAE,WAAW,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;AACjE,CAAC;AAMD;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,OAAgB,EAAE,IAAyB;IAC/E,MAAM,OAAO,GAAG,IAAI,CAClB,MAAM,OAAO,CAAC,GAAG,CAAS,kBAAkB,EAAE,EAAE,aAAa,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC,EAClF,YAAY,IAAI,CAAC,WAAW,EAAE,CAC/B,CAAC;IACF,OAAO;QACL,WAAW,EAAE,IAAI,CAAC,WAAW;QAC7B,OAAO;QACP,IAAI,EAAE,4GAA4G;KACnH,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,OAAgB,EAChB,IAAsB;IAEtB,IAAI,IAAI,CAAC,OAAO,KAAK,IAAI,EAAE,CAAC;QAC1B,sEAAsE;QACtE,wEAAwE;QACxE,MAAM,SAAS,GAAG,IAAI,CACpB,MAAM,OAAO,CAAC,GAAG,CAAM,wBAAwB,EAAE,EAAE,aAAa,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC,EACrF,YAAY,IAAI,CAAC,WAAW,oBAAoB,CACjD,CAAC;QACF,OAAO;YACL,OAAO,EAAE,IAAI;YACb,KAAK,EAAE,SAAS,CAAC,OAAO,CAAC,IAAI,IAAI;YACjC,WAAW,EAAE,SAAS,CAAC,aAAa,CAAC,IAAI,EAAE;YAC3C,IAAI,EAAE,+GAA+G;SACtH,CAAC;IACJ,CAAC;IAED,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,GAAG,CAAM,eAAe,EAAE,EAAE,aAAa,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;IAC7F,MAAM,KAAK,GAAG,IAAI,CAChB,WAAW,CAAC,OAAO,EAAE,CAAC,aAAa,EAAE,cAAc,CAAC,CAAC,EACrD,YAAY,IAAI,CAAC,WAAW,oBAAoB,CACjD,CAAC;IAEF,OAAO;QACL,KAAK;QACL,WAAW,EAAE,MAAM,sBAAsB,CAAC,OAAO,EAAE,KAAK,CAAC,IAAI,CAAW,CAAC;QACzE,IAAI,EAAE,iOAAiO;KACxO,CAAC;AACJ,CAAC;AAED,+DAA+D;AAC/D,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAAC,OAAgB,EAAE,OAAe;IAC5E,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,MAAM,CAAM;QACtC,KAAK,EAAE,aAAa;QACpB,OAAO,EAAE,OAAO,CAAC,UAAU;QAC3B,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC;QACzD,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC;KAChC,CAAC,CAAC;IACH,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,MAAM,CAA6C;QAChF,KAAK,EAAE,UAAU;QACjB,OAAO,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC;QAC/B,KAAK,EAAE;YACL;gBACE,MAAM,EAAE,IAAI;gBACZ,EAAE,EAAE,IAAI;gBACR,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,EAAgB,EAAE,CAAC,OAAO,EAAE,KAAK,QAAQ,CAAC;aACpG;SACF;KACF,CAAC,CAAC;IACH,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;IACvE,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,YAAY,CAAW,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,CAAC;AACrG,CAAC;AAQD;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,OAAgB,EAAE,IAAwB;IAC7E,MAAM,QAAQ,GAAG,IAAI,CACnB,MAAM,OAAO,CAAC,GAAG,CAAM,iBAAiB,EAAE;QACxC,aAAa,EAAE,IAAI,CAAC,WAAW;QAC/B,GAAG,CAAC,IAAI,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC;KAC1D,CAAC,EACF,YAAY,IAAI,CAAC,WAAW,0BAA0B,CACvD,CAAC;IACF,MAAM,UAAU,GAAG,CAAC,MAAM,WAAW,CAAC,OAAO,EAAE,EAAE,WAAW,EAAE,QAAQ,CAAC,IAAI,CAAW,EAAE,CAAC,CAAQ,CAAC;IAClG,MAAM,SAAS,GAAG,WAAW,CAC3B,WAAW,CACT,MAAM,OAAO,CAAC,MAAM,CAAM;QACxB,KAAK,EAAE,WAAW;QAClB,OAAO,EAAE,CAAC,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,eAAe,EAAE,oBAAoB,EAAE,uBAAuB,CAAC;QAC9G,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC;KAC7D,CAAC,EACF,CAAC,cAAc,EAAE,iBAAiB,CAAC,CACpC,EACD,YAAY,IAAI,CAAC,WAAW,EAAE,CAC/B,CAAC;IACF,OAAO;QACL,SAAS;QACT,WAAW,EAAE,UAAU,CAAC,UAAU,CAAC;QACnC,KAAK,EAAE,UAAU,CAAC,OAAO,CAAC;QAC1B,KAAK,EAAE,UAAU,CAAC,OAAO,CAAC;QAC1B,WAAW,EAAE,UAAU,CAAC,aAAa,CAAC;QACtC,IAAI,EAAE,4KAA4K;KACnL,CAAC;AACJ,CAAC;AAMD;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,OAAgB,EAAE,IAAwB;IAC7E,IAAI,CACF,MAAM,OAAO,CAAC,GAAG,CAAM,iBAAiB,EAAE,EAAE,aAAa,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC,EAC9E,YAAY,IAAI,CAAC,WAAW,+BAA+B,CAC5D,CAAC;IACF,MAAM,KAAK,GAAG,CAAC,MAAM,WAAW,CAAC,OAAO,EAAE,EAAE,WAAW,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC,CAAQ,CAAC;IACrF,MAAM,UAAU,GAAG,MAAM,OAAO,CAAC,MAAM,CAAM;QAC3C,KAAK,EAAE,qBAAqB;QAC5B,OAAO,EAAE,CAAC,UAAU,EAAE,cAAc,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,mBAAmB,CAAC;QACjG,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,aAAa,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC;QACrE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,aAAa,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;QACpD,KAAK,EAAE,CAAC;KACT,CAAC,CAAC;IACH,MAAM,SAAS,GAAG,UAAU,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC;IACxC,OAAO;QACL,KAAK,EAAE,KAAK,CAAC,UAAU,CAAC;QACxB,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC;QACrB,SAAS;QACT,IAAI,EACF,SAAS,KAAK,IAAI,IAAI,SAAS,CAAC,iBAAiB,CAAC,KAAK,KAAK;YAC1D,CAAC,CAAC,+CAA+C,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC,gIAAgI;YAClN,CAAC,CAAC,iIAAiI;KACxI,CAAC;AACJ,CAAC;AAUD;;;;;;;;;;;;;;GAcG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,OAAgB,EAAE,IAAsB;IACzE,IAAI,GAAkB,CAAC;IACvB,IAAI,IAAI,CAAC,WAAW,KAAK,IAAI,EAAE,CAAC;QAC9B,GAAG,GAAG,8BAA8B,CAAC;IACvC,CAAC;SAAM,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;QACnC,GAAG,GAAG,qBAAqB,IAAI,CAAC,IAAI,gDAAgD,CAAC;IACvF,CAAC;SAAM,CAAC;QACN,MAAM,CAAC,OAAO,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAgB,gBAAgB,EAAE,EAAE,aAAa,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;QAC1G,GAAG,GAAG,OAAO,IAAI,IAAI,CAAC;IACxB,CAAC;IAED,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;QACjB,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,GAAI,CAAC,MAAM,cAAc,CAAC,OAAO,EAAE,IAAI,CAAC,CAAS,EAAE,CAAC;IAC9F,CAAC;IACD,OAAO;QACL,SAAS,EAAE,aAAa;QACxB,GAAG;QACH,GAAI,CAAC,MAAM,cAAc,CAAC,OAAO,EAAE,EAAE,WAAW,EAAE,IAAI,CAAC,WAAW,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAS;KAChG,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,OAAgB,EAChB,IAAuB;IAEvB,MAAM,KAAK,GAAa,CAAC,EAAE,MAAM,EAAE,YAAY,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC;IACrF,IAAI,IAAI,CAAC,QAAQ,KAAK,SAAS;QAAE,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;IACpG,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS;QAAE,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;IAC3F,IAAI,IAAI,CAAC,MAAM,KAAK,IAAI,EAAE,CAAC;QACzB,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS;YAAE,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC;QACzF,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,eAAe,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,UAAU,EAAE,gBAAgB,CAAC,EAAE,CAAC,CAAC;IAC3F,CAAC;IACD,IAAI,IAAI,CAAC,aAAa,KAAK,SAAS;QAAE,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,eAAe,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC;IACnH,IAAI,IAAI,CAAC,UAAU,KAAK,SAAS;QAAE,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,YAAY,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC;IAC1G,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS;QAAE,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,eAAe,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;IAClG,IAAI,IAAI,CAAC,EAAE,KAAK,SAAS;QAAE,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,eAAe,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;IAE9F,MAAM,SAAS,GAAG,MAAM,OAAO,CAAC,MAAM,CAAM;QAC1C,KAAK,EAAE,WAAW;QAClB,OAAO,EAAE,OAAO,CAAC,QAAQ;QACzB,KAAK;QACL,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,eAAe,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;QACtD,KAAK,EAAE,IAAI,CAAC,KAAK,IAAI,EAAE;KACxB,CAAC,CAAC;IACH,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,OAAO,EAAE,UAAU,EAAE,SAAS,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,YAAY,CAAW,CAAC,CAAC,CAAC;IAEtG,OAAO;QACL,SAAS,EAAE,SAAS,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;YACjC,GAAG,GAAG;YACN,YAAY,EAAE,KAAK,CAAC,GAAG,CAAC,YAAY,CAAW,CAAC,IAAI,IAAI;SACzD,CAAC,CAAC;QACH,KAAK,EAAE,SAAS,CAAC,MAAM;KACxB,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,WAAW,CAC/B,OAAgB,EAChB,IAAqB;IAErB,MAAM,QAAQ,GAAG,WAAW,CAC1B,MAAM,OAAO,CAAC,MAAM,CAAM;QACxB,KAAK,EAAE,WAAW;QAClB,OAAO,EAAE,OAAO,CAAC,QAAQ;QACzB,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC;KAC7D,CAAC,EACF,YAAY,IAAI,CAAC,WAAW,EAAE,CAC/B,CAAC;IAEF,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,MAAM,CAAM;QACtC,KAAK,EAAE,gBAAgB;QACvB,OAAO,EAAE,OAAO,CAAC,aAAa;QAC9B,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,aAAa,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC;QACrE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC;KAChC,CAAC,CAAC;IAEH,MAAM,CAAC,OAAO,EAAE,QAAQ,EAAE,KAAK,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;QACnD,OAAO,CAAC,OAAO,EAAE,UAAU,EAAE,CAAC,QAAQ,CAAC,YAAY,CAAW,CAAC,CAAC;QAChE,OAAO,CAAC,MAAM,CAA6C;YACzD,KAAK,EAAE,UAAU;YACjB,OAAO,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC;YAC/B,KAAK,EAAE;gBACL;oBACE,MAAM,EAAE,IAAI;oBACZ,EAAE,EAAE,IAAI;oBACR,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,EAAgB,EAAE,CAAC,OAAO,EAAE,KAAK,QAAQ,CAAC;iBACpG;aACF;SACF,CAAC;QACF,OAAO,CAAC,MAAM,CAA+C;YAC3D,KAAK,EAAE,OAAO;YACd,OAAO,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,cAAc,CAAC;YACvC,KAAK,EAAE;gBACL;oBACE,MAAM,EAAE,IAAI;oBACZ,EAAE,EAAE,IAAI;oBACR,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,EAAgB,EAAE,CAAC,OAAO,EAAE,KAAK,QAAQ,CAAC;iBAChG;aACF;SACF,CAAC;KACH,CAAC,CAAC;IACH,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;IAC9E,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;IAE3D,MAAM,OAAO,GAAG,QAAQ,CAAC,UAAU,CAAC,CAAC;IACrC,IAAI,KAAK,GAAe,IAAI,CAAC;IAC7B,IAAI,UAAU,GAAU,EAAE,CAAC;IAC3B,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;QAChC,KAAK,GAAG,CACN,MAAM,OAAO,CAAC,MAAM,CAAM;YACxB,KAAK,EAAE,SAAS;YAChB,OAAO,EAAE,OAAO,CAAC,KAAK;YACtB,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC;SACpD,CAAC,CACH,CAAC,CAAC,CAAQ,CAAC;QACZ,UAAU,GAAG,MAAM,OAAO,CAAC,MAAM,CAAM;YACrC,KAAK,EAAE,aAAa;YACpB,OAAO,EAAE,OAAO,CAAC,UAAU;YAC3B,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC;YACzD,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC;SAChC,CAAC,CAAC;IACL,CAAC;IAED,MAAM,cAAc,GAAG,MAAM,OAAO,CAClC,OAAO,EACP,UAAU,EACV,UAAU,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,YAAY,CAAW,CAAC,CACvD,CAAC;IAEF,4EAA4E;IAC5E,6EAA6E;IAC7E,yEAAyE;IACzE,4EAA4E;IAC5E,uEAAuE;IACvE,4EAA4E;IAC5E,MAAM,CAAC,QAAQ,EAAE,OAAO,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;QAC5C,OAAO,CAAC,MAAM,CAAM;YAClB,KAAK,EAAE,yBAAyB;YAChC,OAAO,EAAE,OAAO,CAAC,sBAAsB;YACvC,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,aAAa,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC;YACrE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC;SAChC,CAAC;QACF,OAAO,CAAC,MAAM,CAAM;YAClB,KAAK,EAAE,iBAAiB;YACxB,OAAO,EAAE,OAAO,CAAC,eAAe;YAChC,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,aAAa,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC;SACtE,CAAC;KACH,CAAC,CAAC;IACH,MAAM,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC;IAElC,4EAA4E;IAC5E,4EAA4E;IAC5E,yEAAyE;IACzE,yDAAyD;IACzD,MAAM,YAAY,GAChB,MAAM,KAAK,IAAI;QACb,CAAC,CAAC,IAAI;QACN,CAAC,CAAC,MAAM,CAAC,WAAW,CAChB,OAAO,CAAC,sBAAsB,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE;YAC5C,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAW,CAAC;YAC7C,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC;QACtC,CAAC,CAAC,CACH,CAAC;IAER,OAAO;QACL,QAAQ,EAAE,EAAE,GAAG,QAAQ,EAAE,YAAY,EAAE,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAW,CAAC,IAAI,IAAI,EAAE;QAC1F,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;YAC1B,GAAG,IAAI;YACP,OAAO,EAAE,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,YAAY,CAAW,CAAC,IAAI,IAAI;YAC9D,GAAG,EAAE,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAW,CAAC,IAAI,IAAI;SACnD,CAAC,CAAC;QACH,MAAM;QACN,cAAc,EAAE,QAAQ;QACxB,aAAa,EAAE,YAAY;QAC3B,KAAK;QACL,WAAW,EAAE,UAAU,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;YACrC,GAAG,IAAI;YACP,YAAY,EAAE,cAAc,CAAC,IAAI,CAAC,YAAY,CAAW,CAAC,IAAI,IAAI;SACnE,CAAC,CAAC;KACJ,CAAC;AACJ,CAAC;AAED,MAAM,IAAI,GAAG,iEAAiE,CAAC;AAE/E;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,OAAgB,EAAE,OAAe,EAAE,MAAc;IACrF,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;QAAE,OAAO,MAAM,CAAC,WAAW,EAAE,CAAC;IACnD,KAAK,MAAM,MAAM,IAAI,CAAC,QAAQ,EAAE,YAAY,CAAC,EAAE,CAAC;QAC9C,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,MAAM,CAAiB;YACjD,KAAK,EAAE,WAAW;YAClB,OAAO,EAAE,CAAC,IAAI,CAAC;YACf,KAAK,EAAE;gBACL,EAAE,MAAM,EAAE,YAAY,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE;gBAClD,EAAE,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE;aACpC;YACD,KAAK,EAAE,CAAC;SACT,CAAC,CAAC;QACH,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACrB,MAAM,IAAI,UAAU,CAAC,uBAAuB,KAAK,CAAC,MAAM,wCAAwC,MAAM,IAAI,MAAM,uBAAuB,CAAC,CAAC;QAC3I,CAAC;QACD,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,SAAS;YAAE,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IACjD,CAAC;IACD,MAAM,IAAI,UAAU,CAAC,iFAAiF,MAAM,GAAG,EAAE;QAC/G,IAAI,EAAE,+FAA+F;KACtG,CAAC,CAAC;AACL,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"keys.d.ts","sourceRoot":"","sources":["../../src/books/keys.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,KAAK,OAAO,EAAY,MAAM,cAAc,CAAC;AAItD,8EAA8E;AAC9E,eAAO,MAAM,WAAW,kCAAmC,CAAC;AAC5D,MAAM,MAAM,UAAU,GAAG,CAAC,OAAO,WAAW,CAAC,CAAC,MAAM,CAAC,CAAC;AAEtD,MAAM,WAAW,eAAe;IAC9B,UAAU,EAAE,MAAM,CAAC;IACnB,0CAA0C;IAC1C,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC7B;AAED,wBAAsB,WAAW,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,eAAe,GAAG,OAAO,CAAC,OAAO,CAAC,CAiB3F;AASD,MAAM,WAAW,gBAAgB;IAC/B,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IACvC,8FAA8F;IAC9F,YAAY,CAAC,EAAE,UAAU,GAAG,SAAS,CAAC;CACvC;AAED,wBAAsB,YAAY,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,gBAAgB,GAAG,OAAO,CAAC,OAAO,CAAC,CAe7F"}
1
+ {"version":3,"file":"keys.d.ts","sourceRoot":"","sources":["../../src/books/keys.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAoC,KAAK,OAAO,EAA+B,MAAM,cAAc,CAAC;AAI3G,8EAA8E;AAC9E,eAAO,MAAM,WAAW,kCAAmC,CAAC;AAC5D,MAAM,MAAM,UAAU,GAAG,CAAC,OAAO,WAAW,CAAC,CAAC,MAAM,CAAC,CAAC;AAEtD,MAAM,WAAW,eAAe;IAC9B,UAAU,EAAE,MAAM,CAAC;IACnB,0CAA0C;IAC1C,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC7B;AAED,wBAAsB,WAAW,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,eAAe,GAAG,OAAO,CAAC,OAAO,CAAC,CAiB3F;AASD,MAAM,WAAW,gBAAgB;IAC/B,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IACvC,8FAA8F;IAC9F,YAAY,CAAC,EAAE,UAAU,GAAG,SAAS,CAAC;CACvC;AAED,wBAAsB,YAAY,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,gBAAgB,GAAG,OAAO,CAAC,OAAO,CAAC,CAqB7F"}
@@ -7,7 +7,7 @@
7
7
  * `autopilot` — and never at a call: the database ignores the mark a request
8
8
  * made with the key carries, and has no way to raise a key afterwards.
9
9
  */
10
- import {} from './backend.js';
10
+ import { backendSupports, schemaTooOldFor } from './backend.js';
11
11
  import * as columns from './columns.js';
12
12
  import { only } from './shared.js';
13
13
  /** How a key posts a document: as its company's setting says, or directly. */
@@ -37,13 +37,23 @@ function apiKeyState(key, now) {
37
37
  return 'live';
38
38
  }
39
39
  export async function createApiKey(backend, args) {
40
- const created = only(await backend.rpc('create_api_key', {
40
+ const call = {
41
41
  p_company_id: args.company_id,
42
42
  p_name: args.name,
43
43
  p_capabilities: args.capabilities,
44
44
  p_expires_at: args.expires_at ?? null,
45
- p_posting_mode: args.posting_mode ?? 'review',
46
- }), 'the key could not be issued');
45
+ };
46
+ // A schema older than the posting modes (0.21.0) issues a key with the four
47
+ // arguments it always took, and has no mode to fix on it: asking for
48
+ // autopilot there is refused by name rather than dropped.
49
+ if (await backendSupports(backend, 'agent_posting')) {
50
+ call['p_posting_mode'] = args.posting_mode ?? 'review';
51
+ }
52
+ else if (args.posting_mode === 'autopilot') {
53
+ const installed = (await backend.schemaVersion()) ?? 'an older version';
54
+ throw schemaTooOldFor('agent_posting', installed, 'a key in autopilot');
55
+ }
56
+ const created = only(await backend.rpc('create_api_key', call), 'the key could not be issued');
47
57
  return {
48
58
  api_key: created,
49
59
  note: 'The secret is in this answer and nowhere else — only its hash is stored. Show it to the user once, and tell them it cannot be read back.',
@@ -1 +1 @@
1
- {"version":3,"file":"keys.js","sourceRoot":"","sources":["../../src/books/keys.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAA0B,MAAM,cAAc,CAAC;AACtD,OAAO,KAAK,OAAO,MAAM,cAAc,CAAC;AACxC,OAAO,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AAEnC,8EAA8E;AAC9E,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,QAAQ,EAAE,WAAW,CAAU,CAAC;AAS5D,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,OAAgB,EAAE,IAAqB;IACvE,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,MAAM,CAAM;QACrC,KAAK,EAAE,UAAU;QACjB,OAAO,EAAE,OAAO,CAAC,OAAO;QACxB,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,YAAY,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,UAAU,EAAE,CAAC;QACnE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,YAAY,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;KACpD,CAAC,CAAC;IAEH,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IACvB,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,GAAG,EAAE,KAAK,EAAE,WAAW,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;IAChF,OAAO;QACL,QAAQ,EACN,IAAI,CAAC,iBAAiB,KAAK,IAAI;YAC7B,CAAC,CAAC,SAAS;YACX,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,KAAK,KAAK,MAAM,CAAC;QACrD,IAAI,EAAE,8JAA8J;KACrK,CAAC;AACJ,CAAC;AAED,SAAS,WAAW,CAAC,GAAQ,EAAE,GAAW;IACxC,IAAI,GAAG,CAAC,YAAY,CAAC,KAAK,IAAI,IAAI,GAAG,CAAC,YAAY,CAAC,KAAK,SAAS;QAAE,OAAO,WAAW,CAAC;IACtF,MAAM,OAAO,GAAG,GAAG,CAAC,YAAY,CAAC,CAAC;IAClC,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,GAAG;QAAE,OAAO,SAAS,CAAC;IAChF,OAAO,MAAM,CAAC;AAChB,CAAC;AAWD,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,OAAgB,EAAE,IAAsB;IACzE,MAAM,OAAO,GAAG,IAAI,CAClB,MAAM,OAAO,CAAC,GAAG,CAAM,gBAAgB,EAAE;QACvC,YAAY,EAAE,IAAI,CAAC,UAAU;QAC7B,MAAM,EAAE,IAAI,CAAC,IAAI;QACjB,cAAc,EAAE,IAAI,CAAC,YAAY;QACjC,YAAY,EAAE,IAAI,CAAC,UAAU,IAAI,IAAI;QACrC,cAAc,EAAE,IAAI,CAAC,YAAY,IAAI,QAAQ;KAC9C,CAAC,EACF,6BAA6B,CAC9B,CAAC;IACF,OAAO;QACL,OAAO,EAAE,OAAO;QAChB,IAAI,EAAE,0IAA0I;KACjJ,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"keys.js","sourceRoot":"","sources":["../../src/books/keys.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -7,7 +7,7 @@ export * from './types.js';
7
7
  export * from './client.js';
8
8
  export { STATEMENT_FORMATS, type StatementFormat } from './bank.js';
9
9
  export { BANK_ACCOUNT_SCHEMES, BANK_ACCOUNT_SCHEME_KEYS, FALLBACK_BANK_ACCOUNT_SCHEME, bankAccountScheme, readBankAccountIdentifier, type BankAccountIdentifier, type BankAccountScheme, } from './bank-accounts.js';
10
- export { SCHEMA_MIN, compareSchemaVersions, schemaIsAtLeast } from './schema.js';
10
+ export { SCHEMA_FEATURES, SCHEMA_MIN, compareSchemaVersions, missingFeatures, schemaIsAtLeast, supports, type SchemaFeature, } from './schema.js';
11
11
  export { isRefusalState, socleCode } from './refusal.js';
12
12
  export { IDENTITY_ENV, isServiceRoleKey, serviceRoleRefusal, type KeySlot } from './identity.js';
13
13
  export { REGISTER_INVITE_ENV, REGISTRATION_INVITATION, registerInviteSilenced, registrationInvitation, relayableInvitation, type EnvironmentVariables, type RegistrationInvitation, } from './registration.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,OAAO,EAAE,iBAAiB,EAAE,KAAK,eAAe,EAAE,MAAM,WAAW,CAAC;AACpE,OAAO,EACL,oBAAoB,EACpB,wBAAwB,EACxB,4BAA4B,EAC5B,iBAAiB,EACjB,yBAAyB,EACzB,KAAK,qBAAqB,EAC1B,KAAK,iBAAiB,GACvB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,UAAU,EAAE,qBAAqB,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AACjF,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzD,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,KAAK,OAAO,EAAE,MAAM,eAAe,CAAC;AACjG,OAAO,EACL,mBAAmB,EACnB,uBAAuB,EACvB,sBAAsB,EACtB,sBAAsB,EACtB,mBAAmB,EACnB,KAAK,oBAAoB,EACzB,KAAK,sBAAsB,GAC5B,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,eAAe,EACf,iBAAiB,EACjB,mBAAmB,EACnB,mBAAmB,EACnB,gBAAgB,EAChB,cAAc,EACd,kBAAkB,EAClB,cAAc,EACd,mBAAmB,EACnB,KAAK,gBAAgB,EACrB,KAAK,gBAAgB,GACtB,MAAM,kBAAkB,CAAC;AAC1B,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC;AAClC,cAAc,uBAAuB,CAAC;AACtC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,sBAAsB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,OAAO,EAAE,iBAAiB,EAAE,KAAK,eAAe,EAAE,MAAM,WAAW,CAAC;AACpE,OAAO,EACL,oBAAoB,EACpB,wBAAwB,EACxB,4BAA4B,EAC5B,iBAAiB,EACjB,yBAAyB,EACzB,KAAK,qBAAqB,EAC1B,KAAK,iBAAiB,GACvB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,eAAe,EACf,UAAU,EACV,qBAAqB,EACrB,eAAe,EACf,eAAe,EACf,QAAQ,EACR,KAAK,aAAa,GACnB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzD,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,KAAK,OAAO,EAAE,MAAM,eAAe,CAAC;AACjG,OAAO,EACL,mBAAmB,EACnB,uBAAuB,EACvB,sBAAsB,EACtB,sBAAsB,EACtB,mBAAmB,EACnB,KAAK,oBAAoB,EACzB,KAAK,sBAAsB,GAC5B,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,eAAe,EACf,iBAAiB,EACjB,mBAAmB,EACnB,mBAAmB,EACnB,gBAAgB,EAChB,cAAc,EACd,kBAAkB,EAClB,cAAc,EACd,mBAAmB,EACnB,KAAK,gBAAgB,EACrB,KAAK,gBAAgB,GACtB,MAAM,kBAAkB,CAAC;AAC1B,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC;AAClC,cAAc,uBAAuB,CAAC;AACtC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,sBAAsB,CAAC"}
package/dist/index.js CHANGED
@@ -7,7 +7,7 @@ export * from './types.js';
7
7
  export * from './client.js';
8
8
  export { STATEMENT_FORMATS } from './bank.js';
9
9
  export { BANK_ACCOUNT_SCHEMES, BANK_ACCOUNT_SCHEME_KEYS, FALLBACK_BANK_ACCOUNT_SCHEME, bankAccountScheme, readBankAccountIdentifier, } from './bank-accounts.js';
10
- export { SCHEMA_MIN, compareSchemaVersions, schemaIsAtLeast } from './schema.js';
10
+ export { SCHEMA_FEATURES, SCHEMA_MIN, compareSchemaVersions, missingFeatures, schemaIsAtLeast, supports, } from './schema.js';
11
11
  export { isRefusalState, socleCode } from './refusal.js';
12
12
  export { IDENTITY_ENV, isServiceRoleKey, serviceRoleRefusal } from './identity.js';
13
13
  export { REGISTER_INVITE_ENV, REGISTRATION_INVITATION, registerInviteSilenced, registrationInvitation, relayableInvitation, } from './registration.js';
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,OAAO,EAAE,iBAAiB,EAAwB,MAAM,WAAW,CAAC;AACpE,OAAO,EACL,oBAAoB,EACpB,wBAAwB,EACxB,4BAA4B,EAC5B,iBAAiB,EACjB,yBAAyB,GAG1B,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,UAAU,EAAE,qBAAqB,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AACjF,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzD,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,kBAAkB,EAAgB,MAAM,eAAe,CAAC;AACjG,OAAO,EACL,mBAAmB,EACnB,uBAAuB,EACvB,sBAAsB,EACtB,sBAAsB,EACtB,mBAAmB,GAGpB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,eAAe,EACf,iBAAiB,EACjB,mBAAmB,EACnB,mBAAmB,EACnB,gBAAgB,EAChB,cAAc,EACd,kBAAkB,EAClB,cAAc,EACd,mBAAmB,GAGpB,MAAM,kBAAkB,CAAC;AAC1B,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC;AAClC,cAAc,uBAAuB,CAAC;AACtC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,sBAAsB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,OAAO,EAAE,iBAAiB,EAAwB,MAAM,WAAW,CAAC;AACpE,OAAO,EACL,oBAAoB,EACpB,wBAAwB,EACxB,4BAA4B,EAC5B,iBAAiB,EACjB,yBAAyB,GAG1B,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,eAAe,EACf,UAAU,EACV,qBAAqB,EACrB,eAAe,EACf,eAAe,EACf,QAAQ,GAET,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzD,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,kBAAkB,EAAgB,MAAM,eAAe,CAAC;AACjG,OAAO,EACL,mBAAmB,EACnB,uBAAuB,EACvB,sBAAsB,EACtB,sBAAsB,EACtB,mBAAmB,GAGpB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,eAAe,EACf,iBAAiB,EACjB,mBAAmB,EACnB,mBAAmB,EACnB,gBAAgB,EAChB,cAAc,EACd,kBAAkB,EAClB,cAAc,EACd,mBAAmB,GAGpB,MAAM,kBAAkB,CAAC;AAC1B,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC;AAClC,cAAc,uBAAuB,CAAC;AACtC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,sBAAsB,CAAC"}
package/dist/schema.d.ts CHANGED
@@ -13,11 +13,103 @@
13
13
  * packages together; there is no "down" migration and there never will be,
14
14
  * because undoing a schema change on a database with a year of entries in it
15
15
  * is not a script, it is a restore.
16
+ *
17
+ * ## A floor, not the release number
18
+ *
19
+ * `SCHEMA_MIN` is the oldest schema this package still reads, and it is not
20
+ * the version of the release that carries it. Until 0.21.0 the two moved
21
+ * together, at every release: on 26 October 2026 a person invited to a project
22
+ * at 0.19.0 was shown nothing but "Your project needs an update", for a
23
+ * release whose migrations had added one column and two functions, none of
24
+ * which the screens they were opening read.
25
+ *
26
+ * So the floor moves only when a migration is **breaking** for what this
27
+ * package does on an older database: a table or a column renamed or dropped,
28
+ * a function whose arguments or answer changed, a right taken away that a
29
+ * call relied on. A migration that adds something is not a reason. What this
30
+ * package reads or calls that is newer than the floor is named in
31
+ * `SCHEMA_FEATURES` below, with the version that introduced it, and is asked
32
+ * for only on a schema that has it (`supports()`): the column is left out of
33
+ * the read, the older route is taken, or the call is refused by name with
34
+ * `schema_too_old_for`, saying which version it needs.
35
+ *
36
+ * `tests/schema_floor.test.ts` is the proof of the number: it builds a
37
+ * database from the migrations and seeds of the tag `v<SCHEMA_MIN>` and runs
38
+ * the reads of this release against it. A change that stops reading a project
39
+ * at the floor fails there, and the fix is either `SCHEMA_FEATURES` or a
40
+ * higher floor — said in the changelog under **Changed**, with the migration
41
+ * that made it necessary. `docs/releasing.md` carries the rule.
16
42
  */
17
43
  /** The oldest schema `@ekwo-ai/core` reads. */
18
- export declare const SCHEMA_MIN = "0.21.0";
44
+ export declare const SCHEMA_MIN = "0.19.0";
19
45
  /** `-1`, `0` or `1`, comparing two `major.minor.patch` versions numerically. */
20
46
  export declare function compareSchemaVersions(left: string, right: string): number;
21
47
  /** Whether a database at `installed` is new enough for a package needing `minimum`. */
22
48
  export declare function schemaIsAtLeast(installed: string, minimum: string): boolean;
49
+ /**
50
+ * What a schema newer than the floor brought that a client reads or calls.
51
+ *
52
+ * One entry per thing a person can do or see, named after it, with the
53
+ * version of the schema that introduced it and the objects it is made of:
54
+ * the columns a read leaves out below that version (`table.column`), and the
55
+ * functions a call needs. The objects are what `onSocle()` acts on — a read
56
+ * of `companies` on a schema without `companies.agent_posting` simply does not
57
+ * ask for the column, and a call of `approve_document()` there is refused by
58
+ * name — so a feature listed here is never half there.
59
+ *
60
+ * A feature older than the floor has nothing left to say and is removed when
61
+ * the floor passes it. Nothing is listed here on faith either:
62
+ * `tests/schema_floor.test.ts` checks that every object below is missing at
63
+ * the floor and present in this release.
64
+ */
65
+ export declare const SCHEMA_FEATURES: {
66
+ /**
67
+ * The administration a declaration is paid to, named in the company's own
68
+ * language where the pack gives its name in several
69
+ * (`20261023160200_a_payee_is_named_in_the_company_language`).
70
+ */
71
+ readonly tax_payee_name_i18n: {
72
+ readonly since: "0.20.0";
73
+ readonly columns: readonly ["country_defaults.tax_payee_name_i18n"];
74
+ readonly functions: readonly [];
75
+ };
76
+ /**
77
+ * A draft and its lines written in one statement, so a line the database
78
+ * refuses leaves nothing half done
79
+ * (`20261023160600_a_draft_changes_its_lines_in_one_statement`). Below it,
80
+ * the core writes a draft in two statements, as it did before.
81
+ */
82
+ readonly documents_in_one_statement: {
83
+ readonly since: "0.21.0";
84
+ readonly columns: readonly [];
85
+ readonly functions: readonly ["create_document", "replace_document_lines"];
86
+ };
87
+ /**
88
+ * How an agent posts in a company — review, autopilot or review only — and
89
+ * the approval of a draft by a person
90
+ * (`20261023174709_an_agent_posts_in_the_mode_its_company_chose`). Below
91
+ * it, nothing holds an agent's posting back, there is no setting to read
92
+ * and no approval to give, and a machine key has no posting mode.
93
+ */
94
+ readonly agent_posting: {
95
+ readonly since: "0.21.0";
96
+ readonly columns: readonly ["companies.agent_posting", "api_keys.posting_mode"];
97
+ readonly functions: readonly ["approve_document", "agent_posting_mode", "document_version"];
98
+ };
99
+ };
100
+ export type SchemaFeature = keyof typeof SCHEMA_FEATURES;
101
+ /**
102
+ * Whether a database at `installed` has `feature`.
103
+ *
104
+ * A version that is unknown — no row came back, or one that is not
105
+ * `major.minor.patch` — is answered `false`: a feature is offered on a schema
106
+ * known to have it, never on a guess.
107
+ */
108
+ export declare function supports(installed: string | null | undefined, feature: SchemaFeature): boolean;
109
+ /**
110
+ * The features of `SCHEMA_FEATURES` a database at `installed` lacks, in the
111
+ * order they are declared: what a screen greys, and what `ekwo migrate` would
112
+ * bring.
113
+ */
114
+ export declare function missingFeatures(installed: string | null | undefined): SchemaFeature[];
23
115
  //# sourceMappingURL=schema.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../src/schema.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,+CAA+C;AAC/C,eAAO,MAAM,UAAU,WAAW,CAAC;AAEnC,gFAAgF;AAChF,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAiBzE;AAED,uFAAuF;AACvF,wBAAgB,eAAe,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAE3E"}
1
+ {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../src/schema.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyCG;AAEH,+CAA+C;AAC/C,eAAO,MAAM,UAAU,WAAW,CAAC;AAEnC,gFAAgF;AAChF,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAiBzE;AAED,uFAAuF;AACvF,wBAAgB,eAAe,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAE3E;AAED;;;;;;;;;;;;;;;GAeG;AACH,eAAO,MAAM,eAAe;IAC1B;;;;OAIG;;;;;;IAMH;;;;;OAKG;;;;;;IAMH;;;;;;OAMG;;;;;;CAM2G,CAAC;AAEjH,MAAM,MAAM,aAAa,GAAG,MAAM,OAAO,eAAe,CAAC;AAEzD;;;;;;GAMG;AACH,wBAAgB,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EAAE,OAAO,EAAE,aAAa,GAAG,OAAO,CAO9F;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,aAAa,EAAE,CAErF"}
package/dist/schema.js CHANGED
@@ -13,9 +13,35 @@
13
13
  * packages together; there is no "down" migration and there never will be,
14
14
  * because undoing a schema change on a database with a year of entries in it
15
15
  * is not a script, it is a restore.
16
+ *
17
+ * ## A floor, not the release number
18
+ *
19
+ * `SCHEMA_MIN` is the oldest schema this package still reads, and it is not
20
+ * the version of the release that carries it. Until 0.21.0 the two moved
21
+ * together, at every release: on 26 October 2026 a person invited to a project
22
+ * at 0.19.0 was shown nothing but "Your project needs an update", for a
23
+ * release whose migrations had added one column and two functions, none of
24
+ * which the screens they were opening read.
25
+ *
26
+ * So the floor moves only when a migration is **breaking** for what this
27
+ * package does on an older database: a table or a column renamed or dropped,
28
+ * a function whose arguments or answer changed, a right taken away that a
29
+ * call relied on. A migration that adds something is not a reason. What this
30
+ * package reads or calls that is newer than the floor is named in
31
+ * `SCHEMA_FEATURES` below, with the version that introduced it, and is asked
32
+ * for only on a schema that has it (`supports()`): the column is left out of
33
+ * the read, the older route is taken, or the call is refused by name with
34
+ * `schema_too_old_for`, saying which version it needs.
35
+ *
36
+ * `tests/schema_floor.test.ts` is the proof of the number: it builds a
37
+ * database from the migrations and seeds of the tag `v<SCHEMA_MIN>` and runs
38
+ * the reads of this release against it. A change that stops reading a project
39
+ * at the floor fails there, and the fix is either `SCHEMA_FEATURES` or a
40
+ * higher floor — said in the changelog under **Changed**, with the migration
41
+ * that made it necessary. `docs/releasing.md` carries the rule.
16
42
  */
17
43
  /** The oldest schema `@ekwo-ai/core` reads. */
18
- export const SCHEMA_MIN = '0.21.0';
44
+ export const SCHEMA_MIN = '0.19.0';
19
45
  /** `-1`, `0` or `1`, comparing two `major.minor.patch` versions numerically. */
20
46
  export function compareSchemaVersions(left, right) {
21
47
  const parse = (version) => version
@@ -39,4 +65,80 @@ export function compareSchemaVersions(left, right) {
39
65
  export function schemaIsAtLeast(installed, minimum) {
40
66
  return compareSchemaVersions(installed, minimum) >= 0;
41
67
  }
68
+ /**
69
+ * What a schema newer than the floor brought that a client reads or calls.
70
+ *
71
+ * One entry per thing a person can do or see, named after it, with the
72
+ * version of the schema that introduced it and the objects it is made of:
73
+ * the columns a read leaves out below that version (`table.column`), and the
74
+ * functions a call needs. The objects are what `onSocle()` acts on — a read
75
+ * of `companies` on a schema without `companies.agent_posting` simply does not
76
+ * ask for the column, and a call of `approve_document()` there is refused by
77
+ * name — so a feature listed here is never half there.
78
+ *
79
+ * A feature older than the floor has nothing left to say and is removed when
80
+ * the floor passes it. Nothing is listed here on faith either:
81
+ * `tests/schema_floor.test.ts` checks that every object below is missing at
82
+ * the floor and present in this release.
83
+ */
84
+ export const SCHEMA_FEATURES = {
85
+ /**
86
+ * The administration a declaration is paid to, named in the company's own
87
+ * language where the pack gives its name in several
88
+ * (`20261023160200_a_payee_is_named_in_the_company_language`).
89
+ */
90
+ tax_payee_name_i18n: {
91
+ since: '0.20.0',
92
+ columns: ['country_defaults.tax_payee_name_i18n'],
93
+ functions: [],
94
+ },
95
+ /**
96
+ * A draft and its lines written in one statement, so a line the database
97
+ * refuses leaves nothing half done
98
+ * (`20261023160600_a_draft_changes_its_lines_in_one_statement`). Below it,
99
+ * the core writes a draft in two statements, as it did before.
100
+ */
101
+ documents_in_one_statement: {
102
+ since: '0.21.0',
103
+ columns: [],
104
+ functions: ['create_document', 'replace_document_lines'],
105
+ },
106
+ /**
107
+ * How an agent posts in a company — review, autopilot or review only — and
108
+ * the approval of a draft by a person
109
+ * (`20261023174709_an_agent_posts_in_the_mode_its_company_chose`). Below
110
+ * it, nothing holds an agent's posting back, there is no setting to read
111
+ * and no approval to give, and a machine key has no posting mode.
112
+ */
113
+ agent_posting: {
114
+ since: '0.21.0',
115
+ columns: ['companies.agent_posting', 'api_keys.posting_mode'],
116
+ functions: ['approve_document', 'agent_posting_mode', 'document_version'],
117
+ },
118
+ };
119
+ /**
120
+ * Whether a database at `installed` has `feature`.
121
+ *
122
+ * A version that is unknown — no row came back, or one that is not
123
+ * `major.minor.patch` — is answered `false`: a feature is offered on a schema
124
+ * known to have it, never on a guess.
125
+ */
126
+ export function supports(installed, feature) {
127
+ if (installed === null || installed === undefined || installed.trim().length === 0)
128
+ return false;
129
+ try {
130
+ return schemaIsAtLeast(installed.trim(), SCHEMA_FEATURES[feature].since);
131
+ }
132
+ catch {
133
+ return false;
134
+ }
135
+ }
136
+ /**
137
+ * The features of `SCHEMA_FEATURES` a database at `installed` lacks, in the
138
+ * order they are declared: what a screen greys, and what `ekwo migrate` would
139
+ * bring.
140
+ */
141
+ export function missingFeatures(installed) {
142
+ return Object.keys(SCHEMA_FEATURES).filter((feature) => !supports(installed, feature));
143
+ }
42
144
  //# sourceMappingURL=schema.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"schema.js","sourceRoot":"","sources":["../src/schema.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,+CAA+C;AAC/C,MAAM,CAAC,MAAM,UAAU,GAAG,QAAQ,CAAC;AAEnC,gFAAgF;AAChF,MAAM,UAAU,qBAAqB,CAAC,IAAY,EAAE,KAAa;IAC/D,MAAM,KAAK,GAAG,CAAC,OAAe,EAAY,EAAE,CAC1C,OAAO;SACJ,IAAI,EAAE;SACN,KAAK,CAAC,GAAG,CAAC;SACV,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC;IAC9C,MAAM,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC;IACtB,MAAM,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC;IACvB,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;QACrE,MAAM,GAAG,GAAG,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC1B,MAAM,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC5B,IAAI,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;YAC7C,MAAM,IAAI,KAAK,CAAC,uBAAuB,IAAI,QAAQ,KAAK,iCAAiC,CAAC,CAAC;QAC7F,CAAC;QACD,IAAI,GAAG,KAAK,KAAK;YAAE,OAAO,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACjD,CAAC;IACD,OAAO,CAAC,CAAC;AACX,CAAC;AAED,uFAAuF;AACvF,MAAM,UAAU,eAAe,CAAC,SAAiB,EAAE,OAAe;IAChE,OAAO,qBAAqB,CAAC,SAAS,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;AACxD,CAAC"}
1
+ {"version":3,"file":"schema.js","sourceRoot":"","sources":["../src/schema.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ekwo-ai/core",
3
- "version": "0.21.1",
3
+ "version": "0.21.3",
4
4
  "description": "TypeScript row types and a typed Supabase client for the Ekwo OS accounting schema.",
5
5
  "keywords": [
6
6
  "accounting",
@@ -28,7 +28,7 @@
28
28
  "node": ">=20"
29
29
  },
30
30
  "ekwo": {
31
- "schemaMin": "0.21.0"
31
+ "schemaMin": "0.19.0"
32
32
  },
33
33
  "files": [
34
34
  "dist",
@@ -48,20 +48,20 @@
48
48
  "typecheck": "tsc -p tsconfig.json --noEmit"
49
49
  },
50
50
  "dependencies": {
51
- "@ekwo-ai/camt053": "^0.21.1",
52
- "@ekwo-ai/cfonb120": "^0.21.1",
53
- "@ekwo-ai/coda": "^0.21.1",
54
- "@ekwo-ai/factur-x": "^0.21.1",
55
- "@ekwo-ai/fec": "^0.21.1",
56
- "@ekwo-ai/invoice-pdf": "^0.21.1",
57
- "@ekwo-ai/journal-items": "^0.21.1",
58
- "@ekwo-ai/journal-report": "^0.21.1",
59
- "@ekwo-ai/myinvois": "^0.21.1",
60
- "@ekwo-ai/peppol-ubl": "^0.21.1",
61
- "@ekwo-ai/transaction-journal": "^0.21.1",
62
- "@ekwo-ai/trial-balance": "^0.21.1",
63
- "@ekwo-ai/verifactu": "^0.21.1",
64
- "@ekwo-ai/xaf": "^0.21.1"
51
+ "@ekwo-ai/camt053": "^0.21.3",
52
+ "@ekwo-ai/cfonb120": "^0.21.3",
53
+ "@ekwo-ai/coda": "^0.21.3",
54
+ "@ekwo-ai/factur-x": "^0.21.3",
55
+ "@ekwo-ai/fec": "^0.21.3",
56
+ "@ekwo-ai/invoice-pdf": "^0.21.3",
57
+ "@ekwo-ai/journal-items": "^0.21.3",
58
+ "@ekwo-ai/journal-report": "^0.21.3",
59
+ "@ekwo-ai/myinvois": "^0.21.3",
60
+ "@ekwo-ai/peppol-ubl": "^0.21.3",
61
+ "@ekwo-ai/transaction-journal": "^0.21.3",
62
+ "@ekwo-ai/trial-balance": "^0.21.3",
63
+ "@ekwo-ai/verifactu": "^0.21.3",
64
+ "@ekwo-ai/xaf": "^0.21.3"
65
65
  },
66
66
  "peerDependencies": {
67
67
  "@supabase/supabase-js": "^2.0.0"