@ekwo-ai/core 0.20.0 → 0.21.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/books/backend.d.ts +114 -3
- package/dist/books/backend.d.ts.map +1 -1
- package/dist/books/backend.js +222 -0
- package/dist/books/backend.js.map +1 -1
- package/dist/books/columns.d.ts.map +1 -1
- package/dist/books/columns.js +2 -0
- package/dist/books/columns.js.map +1 -1
- package/dist/books/companies.d.ts +19 -0
- package/dist/books/companies.d.ts.map +1 -1
- package/dist/books/companies.js +17 -0
- package/dist/books/companies.js.map +1 -1
- package/dist/books/documents.d.ts +11 -0
- package/dist/books/documents.d.ts.map +1 -1
- package/dist/books/documents.js +64 -25
- package/dist/books/documents.js.map +1 -1
- package/dist/books/index.d.ts +1 -0
- package/dist/books/index.d.ts.map +1 -1
- package/dist/books/index.js +1 -0
- package/dist/books/index.js.map +1 -1
- package/dist/books/keys.d.ts +29 -0
- package/dist/books/keys.d.ts.map +1 -0
- package/dist/books/keys.js +62 -0
- package/dist/books/keys.js.map +1 -0
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/schema.d.ts +93 -1
- package/dist/schema.d.ts.map +1 -1
- package/dist/schema.js +103 -1
- package/dist/schema.js.map +1 -1
- package/package.json +16 -16
package/dist/books/documents.js
CHANGED
|
@@ -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';
|
|
@@ -25,9 +25,9 @@ export const PAYMENT_STATES = ['not_paid', 'partially_paid', 'paid', 'overpaid',
|
|
|
25
25
|
export async function createDocument(backend, args) {
|
|
26
26
|
const resolved = await resolveLineInputs(backend, args.company_id, args.doc_type, args.lines);
|
|
27
27
|
// Created before under this reference: the answer is that document. A
|
|
28
|
-
// creation is
|
|
29
|
-
//
|
|
30
|
-
// rather than handed back empty.
|
|
28
|
+
// creation is one statement since `create_document()`; a draft an earlier
|
|
29
|
+
// version left without lines, when a connection dropped between its two
|
|
30
|
+
// inserts, is still finished here rather than handed back empty.
|
|
31
31
|
const before = await createdBefore(backend, 'documents', args.company_id, args.client_ref, ['id', 'state']);
|
|
32
32
|
if (before !== undefined) {
|
|
33
33
|
const id = before['id'];
|
|
@@ -38,28 +38,36 @@ export async function createDocument(backend, args) {
|
|
|
38
38
|
limit: 1,
|
|
39
39
|
});
|
|
40
40
|
if (held.length === 0 && before['state'] === 'draft')
|
|
41
|
-
await
|
|
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
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
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
|
+
}
|
|
67
|
+
// The header and its lines in one statement: a line the database refuses
|
|
68
|
+
// creates nothing, rather than an empty draft.
|
|
69
|
+
const id = only(await backend.rpc('create_document', { p_document: header, p_lines: resolved }), 'the document could not be created');
|
|
70
|
+
return getDocument(backend, { document_id: id });
|
|
63
71
|
}
|
|
64
72
|
function isSale(docType) {
|
|
65
73
|
return docType.startsWith('sale_');
|
|
@@ -164,6 +172,23 @@ async function productsFor(backend, company, lines) {
|
|
|
164
172
|
}
|
|
165
173
|
return { byId, byCode };
|
|
166
174
|
}
|
|
175
|
+
/**
|
|
176
|
+
* Every line of a draft replaced by these, through `replace_document_lines()`:
|
|
177
|
+
* one statement, so a line the database refuses leaves the draft with the
|
|
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.
|
|
183
|
+
*/
|
|
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
|
+
}
|
|
190
|
+
await backend.rpc('replace_document_lines', { p_document_id: documentId, p_lines: lines });
|
|
191
|
+
}
|
|
167
192
|
async function insertLines(backend, company, documentId, lines, after = 0) {
|
|
168
193
|
const rows = lines.map((line, index) => ({
|
|
169
194
|
document_id: documentId,
|
|
@@ -205,10 +230,24 @@ export async function updateDocumentLines(backend, args) {
|
|
|
205
230
|
const document = await draftOf(backend, args.document_id);
|
|
206
231
|
const company = document['company_id'];
|
|
207
232
|
const resolved = await resolveLineInputs(backend, company, document['doc_type'], args.lines);
|
|
208
|
-
await backend
|
|
209
|
-
await insertLines(backend, company, args.document_id, resolved);
|
|
233
|
+
await replaceLines(backend, company, args.document_id, resolved);
|
|
210
234
|
return getDocument(backend, { document_id: args.document_id });
|
|
211
235
|
}
|
|
236
|
+
/**
|
|
237
|
+
* A person approves a draft, as it stands, for an agent to post it in a
|
|
238
|
+
* company whose `agent_posting` is `review`. The approval is a row of the audit
|
|
239
|
+
* trail naming the version of the draft, so a change to the draft afterwards
|
|
240
|
+
* needs another. The database refuses it to an agent or a machine key
|
|
241
|
+
* (`approval_by_a_person`) and to whoever may not post the document.
|
|
242
|
+
*/
|
|
243
|
+
export async function approveDocument(backend, args) {
|
|
244
|
+
const version = only(await backend.rpc('approve_document', { p_document_id: args.document_id }), `document ${args.document_id}`);
|
|
245
|
+
return {
|
|
246
|
+
document_id: args.document_id,
|
|
247
|
+
version,
|
|
248
|
+
note: 'Approved as it stands. An agent may now post it; a change to the draft before then needs another approval.',
|
|
249
|
+
};
|
|
250
|
+
}
|
|
212
251
|
export async function postDocument(backend, args) {
|
|
213
252
|
if (args.dry_run === true) {
|
|
214
253
|
// The database posts for real and takes it back, so what comes out is
|
|
@@ -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":"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"}
|
package/dist/books/index.d.ts
CHANGED
|
@@ -13,6 +13,7 @@ export * from './format.js';
|
|
|
13
13
|
export { roundCurrency } from './rounding.js';
|
|
14
14
|
export * from './shared.js';
|
|
15
15
|
export * from './companies.js';
|
|
16
|
+
export * from './keys.js';
|
|
16
17
|
export * from './contacts.js';
|
|
17
18
|
export * from './documents.js';
|
|
18
19
|
export * from './entries.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/books/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,cAAc,cAAc,CAAC;AAC7B,OAAO,KAAK,OAAO,MAAM,cAAc,CAAC;AACxC,cAAc,aAAa,CAAC;AAC5B,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAC9C,cAAc,aAAa,CAAC;AAC5B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,eAAe,CAAC;AAC9B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC;AAC3B,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC;AAC7B,cAAc,iBAAiB,CAAC;AAChC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,mBAAmB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/books/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,cAAc,cAAc,CAAC;AAC7B,OAAO,KAAK,OAAO,MAAM,cAAc,CAAC;AACxC,cAAc,aAAa,CAAC;AAC5B,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAC9C,cAAc,aAAa,CAAC;AAC5B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,WAAW,CAAC;AAC1B,cAAc,eAAe,CAAC;AAC9B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC;AAC3B,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC;AAC7B,cAAc,iBAAiB,CAAC;AAChC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,mBAAmB,CAAC"}
|
package/dist/books/index.js
CHANGED
|
@@ -13,6 +13,7 @@ export * from './format.js';
|
|
|
13
13
|
export { roundCurrency } from './rounding.js';
|
|
14
14
|
export * from './shared.js';
|
|
15
15
|
export * from './companies.js';
|
|
16
|
+
export * from './keys.js';
|
|
16
17
|
export * from './contacts.js';
|
|
17
18
|
export * from './documents.js';
|
|
18
19
|
export * from './entries.js';
|
package/dist/books/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/books/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,cAAc,cAAc,CAAC;AAC7B,OAAO,KAAK,OAAO,MAAM,cAAc,CAAC;AACxC,cAAc,aAAa,CAAC;AAC5B,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAC9C,cAAc,aAAa,CAAC;AAC5B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,eAAe,CAAC;AAC9B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC;AAC3B,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC;AAC7B,cAAc,iBAAiB,CAAC;AAChC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,mBAAmB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/books/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,cAAc,cAAc,CAAC;AAC7B,OAAO,KAAK,OAAO,MAAM,cAAc,CAAC;AACxC,cAAc,aAAa,CAAC;AAC5B,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAC9C,cAAc,aAAa,CAAC;AAC5B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,WAAW,CAAC;AAC1B,cAAc,eAAe,CAAC;AAC9B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC;AAC3B,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC;AAC7B,cAAc,iBAAiB,CAAC;AAChC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,mBAAmB,CAAC"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Machine keys: the ones a company issued, and issuing another.
|
|
3
|
+
*
|
|
4
|
+
* What the MCP tools `list_api_keys` and `create_api_key` answer and what
|
|
5
|
+
* `ekwo key list` and `ekwo key create` print, from one place. A key's posting
|
|
6
|
+
* mode is fixed here, when it is issued — `review` unless the person asks for
|
|
7
|
+
* `autopilot` — and never at a call: the database ignores the mark a request
|
|
8
|
+
* made with the key carries, and has no way to raise a key afterwards.
|
|
9
|
+
*/
|
|
10
|
+
import { type Backend } from './backend.js';
|
|
11
|
+
/** How a key posts a document: as its company's setting says, or directly. */
|
|
12
|
+
export declare const KEY_POSTING: readonly ["review", "autopilot"];
|
|
13
|
+
export type KeyPosting = (typeof KEY_POSTING)[number];
|
|
14
|
+
export interface ListApiKeysArgs {
|
|
15
|
+
company_id: string;
|
|
16
|
+
/** Also the ones withdrawn or expired. */
|
|
17
|
+
include_withdrawn?: boolean;
|
|
18
|
+
}
|
|
19
|
+
export declare function listApiKeys(backend: Backend, args: ListApiKeysArgs): Promise<unknown>;
|
|
20
|
+
export interface CreateApiKeyArgs {
|
|
21
|
+
company_id: string;
|
|
22
|
+
name: string;
|
|
23
|
+
capabilities: string[];
|
|
24
|
+
expires_at?: string | null | undefined;
|
|
25
|
+
/** Fixed for good. `autopilot` needs company.write, and a company that is not review_only. */
|
|
26
|
+
posting_mode?: KeyPosting | undefined;
|
|
27
|
+
}
|
|
28
|
+
export declare function createApiKey(backend: Backend, args: CreateApiKeyArgs): Promise<unknown>;
|
|
29
|
+
//# sourceMappingURL=keys.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
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"}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Machine keys: the ones a company issued, and issuing another.
|
|
3
|
+
*
|
|
4
|
+
* What the MCP tools `list_api_keys` and `create_api_key` answer and what
|
|
5
|
+
* `ekwo key list` and `ekwo key create` print, from one place. A key's posting
|
|
6
|
+
* mode is fixed here, when it is issued — `review` unless the person asks for
|
|
7
|
+
* `autopilot` — and never at a call: the database ignores the mark a request
|
|
8
|
+
* made with the key carries, and has no way to raise a key afterwards.
|
|
9
|
+
*/
|
|
10
|
+
import { backendSupports, schemaTooOldFor } from './backend.js';
|
|
11
|
+
import * as columns from './columns.js';
|
|
12
|
+
import { only } from './shared.js';
|
|
13
|
+
/** How a key posts a document: as its company's setting says, or directly. */
|
|
14
|
+
export const KEY_POSTING = ['review', 'autopilot'];
|
|
15
|
+
export async function listApiKeys(backend, args) {
|
|
16
|
+
const keys = await backend.select({
|
|
17
|
+
table: 'api_keys',
|
|
18
|
+
columns: columns.API_KEY,
|
|
19
|
+
where: [{ column: 'company_id', op: 'eq', value: args.company_id }],
|
|
20
|
+
order: [{ column: 'created_at', ascending: false }],
|
|
21
|
+
});
|
|
22
|
+
const now = Date.now();
|
|
23
|
+
const described = keys.map((key) => ({ ...key, state: apiKeyState(key, now) }));
|
|
24
|
+
return {
|
|
25
|
+
api_keys: args.include_withdrawn === true
|
|
26
|
+
? described
|
|
27
|
+
: described.filter((key) => key.state === 'live'),
|
|
28
|
+
note: 'The secret of a key exists only in the answer that created it. A key that is lost is withdrawn and issued again; so is a key wanted in another posting mode.',
|
|
29
|
+
};
|
|
30
|
+
}
|
|
31
|
+
function apiKeyState(key, now) {
|
|
32
|
+
if (key['revoked_at'] !== null && key['revoked_at'] !== undefined)
|
|
33
|
+
return 'withdrawn';
|
|
34
|
+
const expires = key['expires_at'];
|
|
35
|
+
if (typeof expires === 'string' && Date.parse(expires) <= now)
|
|
36
|
+
return 'expired';
|
|
37
|
+
return 'live';
|
|
38
|
+
}
|
|
39
|
+
export async function createApiKey(backend, args) {
|
|
40
|
+
const call = {
|
|
41
|
+
p_company_id: args.company_id,
|
|
42
|
+
p_name: args.name,
|
|
43
|
+
p_capabilities: args.capabilities,
|
|
44
|
+
p_expires_at: args.expires_at ?? null,
|
|
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');
|
|
57
|
+
return {
|
|
58
|
+
api_key: created,
|
|
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.',
|
|
60
|
+
};
|
|
61
|
+
}
|
|
62
|
+
//# sourceMappingURL=keys.js.map
|
|
@@ -0,0 +1 @@
|
|
|
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';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -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,
|
|
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,
|
|
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.
|
|
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
|
package/dist/schema.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../src/schema.ts"],"names":[],"mappings":"AAAA
|
|
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.
|
|
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
|