@ekwo-ai/core 0.6.0 → 0.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -42,12 +42,20 @@ export interface ReadBooksOptions {
42
42
  * The correspondence between the old books and this company. Saved as JSON by
43
43
  * the caller and given back on the next run, so the second run posts what the
44
44
  * first one showed. A null is an account nobody has answered for yet.
45
+ *
46
+ * `suggested` holds what the proposal could not settle on its own, each with
47
+ * its reason. It is read by the user, never given back: an account is settled
48
+ * by writing its code under `accounts`.
45
49
  */
46
50
  export interface ImportMapping {
47
51
  version: 1;
48
52
  source: string;
49
53
  accounts: Record<string, string | null>;
50
54
  journals: Record<string, string | null>;
55
+ suggested?: Record<string, {
56
+ target: string;
57
+ reason: string;
58
+ }>;
51
59
  }
52
60
  /** Reads the files of one source into the shape `import_books()` takes. */
53
61
  export declare function readBooks(source: BookSource, files: BookFile[], options?: ReadBooksOptions): ImportedBooks;
@@ -59,40 +67,74 @@ interface ChartAccount {
59
67
  account_type: string;
60
68
  deprecated: boolean;
61
69
  }
62
- /** How a proposed account was found, so the user knows how much to trust it. */
63
- export type MappingBasis = 'given' | 'exact' | 'same-digits' | 'prefix' | 'none';
64
- export interface ProposedAccount {
65
- source: string;
70
+ /**
71
+ * How a proposed account was settled, so the user knows how much to trust it:
72
+ * `given` by the caller, `exact` — the same code, and nothing in the files
73
+ * says it is another kind of account — `suggested`, which waits for the user,
74
+ * or `none`.
75
+ */
76
+ export type MappingBasis = 'given' | 'exact' | 'suggested' | 'none';
77
+ /** How the account of the chart was found from the old one. */
78
+ export type MappingMatch = 'same-code' | 'same-digits' | 'prefix' | 'kind';
79
+ /** What the old books say of one of their accounts. */
80
+ export interface SourceAccount {
81
+ code: string;
66
82
  name: string | null;
83
+ /** What the source calls its kind, verbatim, where the export gives it. */
84
+ type: string | null;
85
+ /** The side its lines leave it on in these files, or null when they balance or there are none. */
86
+ side: 'debit' | 'credit' | null;
87
+ }
88
+ export interface AccountProposal {
67
89
  target: string | null;
68
90
  basis: MappingBasis;
91
+ match: MappingMatch | null;
92
+ /** Why, in a sentence. Always given for `suggested` and `none`. */
93
+ reason: string | null;
94
+ /** True where the user has to read this line before anything is posted — or should, for an answer the files contradict. */
95
+ doubtful: boolean;
96
+ }
97
+ export interface ProposedAccount extends AccountProposal {
98
+ source: string;
99
+ name: string | null;
69
100
  }
70
101
  export interface Proposal {
71
102
  mapping: ImportMapping;
72
103
  accounts: ProposedAccount[];
73
104
  unmapped_accounts: string[];
105
+ /** Accounts the lines use whose proposal waits for the user's confirmation. */
106
+ unconfirmed_accounts: string[];
74
107
  unmapped_journals: string[];
75
108
  /** The type of each account of the chart, by code: what says a party is a customer or a supplier. */
76
109
  account_types: Record<string, string>;
77
110
  }
78
111
  /**
79
- * The account of the chart a code of the old books most probably is, and why.
112
+ * The account of the chart an old account most probably is, and why.
80
113
  *
81
- * Only what the two codes say is read, never a country: the same code; the
82
- * same digits once the zeros a chart pads with on the right are set aside
83
- * (`411` and `411000`); and else the account of the chart whose digits are the
84
- * longest beginning of the old code, three at least (`401ACME` to `401000`).
85
- * A tie is no answer. Whatever comes out is a proposal the user reads.
114
+ * The codes give a candidate, never a country: the same code; the same digits
115
+ * once the zeros a chart pads with on the right are set aside (`411` and
116
+ * `411000`); else the account whose digits are the longest beginning of the old
117
+ * code, three at least (`401ACME` to `401000`). A tie is no answer. Then what
118
+ * the files say of the old account — its type, its name, the side of its
119
+ * balance — is held against what the chart says the candidate is, because two
120
+ * charts use the same digits for different things: `610` is a receivable in
121
+ * one and `6100` an expense in another.
122
+ *
123
+ * Only the same code, not contradicted, is `exact`. Anything else is
124
+ * `suggested`, with its reason, and waits for the user; a candidate the files
125
+ * contradict is dropped, and the one account of the chart of the kind the
126
+ * files say is suggested in its place when there is exactly one.
86
127
  */
87
- export declare function proposeAccount(code: string, chart: readonly ChartAccount[]): {
88
- target: string | null;
89
- basis: MappingBasis;
90
- };
128
+ export declare function proposeAccount(source: SourceAccount, chart: readonly ChartAccount[]): AccountProposal;
91
129
  /**
92
130
  * The correspondence for these books in this company: what the caller gave,
93
- * and a proposal for everything it did not.
131
+ * and a proposal for everything it did not. A suggestion stays out of
132
+ * `mapping.accounts` — it is kept beside it, under `suggested` — unless the
133
+ * caller accepts the suggestions as a whole.
94
134
  */
95
- export declare function proposeMapping(backend: Backend, companyId: string, books: ImportedBooks, given?: Partial<ImportMapping>): Promise<Proposal>;
135
+ export declare function proposeMapping(backend: Backend, companyId: string, books: ImportedBooks, given?: Partial<ImportMapping>, options?: {
136
+ accept_suggestions?: boolean | undefined;
137
+ }): Promise<Proposal>;
96
138
  export interface ImportBooksArgs {
97
139
  company_id: string;
98
140
  source: BookSource;
@@ -109,6 +151,8 @@ export interface ImportBooksArgs {
109
151
  allow_result_accounts?: boolean | undefined;
110
152
  /** Keep the numbers the entries had, where the country allows a number chosen by hand or the caller holds entries.import. */
111
153
  keep_numbers?: boolean | undefined;
154
+ /** Take every suggested account as the answer. The user has read them; nothing else says so. */
155
+ accept_suggestions?: boolean | undefined;
112
156
  encoding?: ReadBooksOptions['encoding'];
113
157
  date_order?: DateOrder | undefined;
114
158
  }
@@ -1 +1 @@
1
- {"version":3,"file":"imports.d.ts","sourceRoot":"","sources":["../../src/books/imports.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"imports.d.ts","sourceRoot":"","sources":["../../src/books/imports.ts"],"names":[],"mappings":"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"}
@@ -73,43 +73,264 @@ function unpadded(code) {
73
73
  const stripped = code.replace(/0+$/, '');
74
74
  return stripped === '' ? code : stripped;
75
75
  }
76
+ /** What the chart says an account is: the group before the first underscore of its type, and the three kinds a party or a payment depends on. */
77
+ function natureOf(accountType) {
78
+ const group = (accountType === 'off_balance' ? 'off_balance' : accountType.split('_')[0]);
79
+ const kind = accountType === 'asset_receivable' ? 'receivable' : accountType === 'liability_payable' ? 'payable' : accountType === 'asset_cash' ? 'cash' : null;
80
+ return { group, kind, words: kind === null ? GROUP_WORDS[group] : KIND_WORDING[kind] };
81
+ }
82
+ const GROUP_WORDS = {
83
+ asset: 'an asset account',
84
+ liability: 'a liability account',
85
+ equity: 'an equity account',
86
+ income: 'an income account',
87
+ expense: 'an expense account',
88
+ off_balance: 'an off-balance account',
89
+ };
90
+ const KIND_GROUP = { receivable: 'asset', payable: 'liability', cash: 'asset' };
91
+ const KIND_WORDING = { receivable: 'a receivable account', payable: 'a payable account', cash: 'a bank or cash account' };
92
+ /** Lower case, without accents, cut into words. */
93
+ function words(text) {
94
+ return text
95
+ .normalize('NFD')
96
+ .replace(/\p{M}/gu, '')
97
+ .toLowerCase()
98
+ .split(/[^\p{L}\p{N}]+/u)
99
+ .filter((word) => word !== '');
100
+ }
101
+ /**
102
+ * The words that name a kind of account, in the languages a chart is kept in
103
+ * — none of them the default, and none needed for a proposal to be made: a
104
+ * word found here only confirms or contradicts the one the codes gave. A
105
+ * word is matched at the start of a word of the name, so `client` catches
106
+ * `clients` and `clientes`.
107
+ */
108
+ const KIND_WORDS = {
109
+ receivable: ['receivable', 'debtor', 'customer', 'client', 'kunde', 'klant', 'debiteur', 'deudor', 'creance', 'forderung', 'vordering', 'crediti'],
110
+ payable: ['payable', 'creditor', 'supplier', 'vendor', 'fournisseur', 'lieferant', 'verbindlichkeit', 'leverancier', 'crediteur', 'acreedor', 'proveedor', 'fornitor'],
111
+ cash: ['bank', 'banque', 'banco', 'banca', 'cash', 'caisse', 'kasse', 'kassa', 'caja', 'cassa'],
112
+ };
113
+ /**
114
+ * Words after which a name no longer says what its kind word says: an advance
115
+ * received from a customer is a liability, bank charges are an expense, a
116
+ * provision on receivables is not one.
117
+ */
118
+ const TURNING_WORDS = [
119
+ 'advance', 'avance', 'acompte', 'deposit', 'prepa', 'anzahlung', 'voorschot', 'anticipo',
120
+ 'doubtful', 'douteu', 'provision', 'allowance', 'impairment', 'deprecia', 'wertberichtigung', 'waardevermindering',
121
+ 'charge', 'fee', 'frais', 'interest', 'interet', 'kosten', 'gebuhr', 'commission', 'loan', 'emprunt', 'overdraft', 'decouvert',
122
+ 'transfer', 'virement', 'clearing', 'suspense', 'attente',
123
+ ];
124
+ function kindInName(name) {
125
+ if (name === null)
126
+ return null;
127
+ const said = words(name);
128
+ if (said.some((word) => TURNING_WORDS.some((turn) => word.startsWith(turn))))
129
+ return null;
130
+ const kinds = Object.keys(KIND_WORDS).filter((kind) => said.some((word) => KIND_WORDS[kind].some((k) => word.startsWith(k))));
131
+ return kinds.length === 1 ? kinds[0] : null;
132
+ }
133
+ /**
134
+ * What the type an export gives its account says: the vocabularies of the
135
+ * ledgers a reader reads, and this schema's own. Unknown, it says nothing.
136
+ */
137
+ function natureInType(type) {
138
+ if (type === null)
139
+ return null;
140
+ const text = words(type).join(' ');
141
+ if (text === '' || /off ?balance/.test(text))
142
+ return null;
143
+ const has = (pattern) => pattern.test(text);
144
+ if (has(/receivable|debtor|creance/))
145
+ return { groups: ['asset'], kind: 'receivable' };
146
+ if (has(/payable|creditor|dette fournisseur/))
147
+ return { groups: ['liability'], kind: 'payable' };
148
+ if (has(/\bbank|\bcash/))
149
+ return { groups: ['asset'], kind: 'cash' };
150
+ if (has(/equity|capital|earnings|reserve|unaffected/))
151
+ return { groups: ['equity'], kind: null };
152
+ if (has(/liabilit|credit card|creditcard/))
153
+ return { groups: ['liability'], kind: null };
154
+ if (has(/asset|prepayment|inventory|\bstock/))
155
+ return { groups: ['asset'], kind: null };
156
+ if (has(/revenue|income|sales|turnover|\bproduit|ertrag|ingreso|ricav|opbrengst/))
157
+ return { groups: ['income'], kind: null };
158
+ if (has(/expense|cost|overhead|depreciation|purchase|wage|salar|\bcharge|aufwand|gasto|kosten/))
159
+ return { groups: ['expense'], kind: null };
160
+ return null;
161
+ }
162
+ const STOP_WORDS = new Set(['the', 'and', 'for', 'des', 'les', 'aux', 'und', 'der', 'die', 'das', 'van', 'het', 'een', 'del', 'los', 'las', 'con', 'per']);
163
+ /**
164
+ * Two names that say the same thing: the same words, or most of them, cut to
165
+ * five letters, in common. A script that does not separate its words by
166
+ * spaces is compared whole.
167
+ */
168
+ function sameName(one, other) {
169
+ if (one === null)
170
+ return false;
171
+ if (words(one).join(' ') === words(other).join(' ') && words(one).length > 0)
172
+ return true;
173
+ const stems = (text) => new Set(words(text).filter((word) => word.length >= 3 && !STOP_WORDS.has(word) && !/^\d+$/.test(word)).map((word) => word.slice(0, 5)));
174
+ const a = stems(one);
175
+ const b = stems(other);
176
+ if (a.size === 0 || b.size === 0)
177
+ return false;
178
+ const shared = [...a].filter((stem) => b.has(stem)).length;
179
+ return shared / new Set([...a, ...b]).size > 0.5;
180
+ }
76
181
  /**
77
- * The account of the chart a code of the old books most probably is, and why.
182
+ * Whether an old account can be this account of the chart, from what the
183
+ * files say of it, strongest first: the type the export gives it, a name that
184
+ * is the chart's own, the kind its name says, the side its balance is on.
185
+ * `unknown` when the files say nothing, or only a side that disagrees — which
186
+ * is not a yes.
187
+ */
188
+ function judge(source, target) {
189
+ const nature = natureOf(target.account_type);
190
+ const it = `${target.code} ${target.name} is ${nature.words}`;
191
+ const fits = (groups, kind) => groups.includes(nature.group) && (kind === null || nature.kind === null || kind === nature.kind);
192
+ const typed = natureInType(source.type);
193
+ if (typed !== null) {
194
+ const ok = fits(typed.groups, typed.kind);
195
+ return { verdict: ok ? 'yes' : 'no', why: `the files call it "${source.type}", and ${it}` };
196
+ }
197
+ if (sameName(source.name, target.name))
198
+ return { verdict: 'yes', why: `its name is the one ${target.code} has in the chart` };
199
+ const named = kindInName(source.name);
200
+ if (named !== null) {
201
+ const ok = fits([KIND_GROUP[named]], named);
202
+ return { verdict: ok ? 'yes' : 'no', why: `its name, "${source.name}", says ${KIND_WORDING[named]}, and ${it}` };
203
+ }
204
+ if (source.side !== null) {
205
+ // The side is the weakest of the four: an accumulated depreciation is an
206
+ // asset with a credit balance, an overdrawn bank a debit one. It confirms,
207
+ // and where it disagrees it leaves the candidate to the user rather than
208
+ // dropping it.
209
+ const groups = source.side === 'debit' ? ['asset', 'expense'] : ['liability', 'equity', 'income'];
210
+ const ok = fits(groups, null);
211
+ return { verdict: ok ? 'yes' : 'unknown', why: `its balance in the files is on the ${source.side} side, and ${it}${ok ? '' : ', whose balance usually is not'}` };
212
+ }
213
+ return { verdict: 'unknown', why: 'nothing in the files says what kind of account it is' };
214
+ }
215
+ const MATCH_WORDS = {
216
+ 'same-code': 'the same code',
217
+ 'same-digits': 'the same digits once the padding zeros are set aside',
218
+ prefix: 'the longest beginning of the code the chart has',
219
+ };
220
+ /** The one account of the chart of the kind the files say, when the codes pointed elsewhere. */
221
+ function accountOfKind(source, live) {
222
+ const typed = natureInType(source.type);
223
+ const kind = typed === null ? kindInName(source.name) : typed.kind;
224
+ if (kind === null)
225
+ return null;
226
+ const ofKind = live.filter((account) => natureOf(account.account_type).kind === kind);
227
+ if (ofKind.length === 1)
228
+ return ofKind[0];
229
+ const named = ofKind.filter((account) => sameName(source.name, account.name));
230
+ return named.length === 1 ? named[0] : null;
231
+ }
232
+ /**
233
+ * The account of the chart an old account most probably is, and why.
234
+ *
235
+ * The codes give a candidate, never a country: the same code; the same digits
236
+ * once the zeros a chart pads with on the right are set aside (`411` and
237
+ * `411000`); else the account whose digits are the longest beginning of the old
238
+ * code, three at least (`401ACME` to `401000`). A tie is no answer. Then what
239
+ * the files say of the old account — its type, its name, the side of its
240
+ * balance — is held against what the chart says the candidate is, because two
241
+ * charts use the same digits for different things: `610` is a receivable in
242
+ * one and `6100` an expense in another.
78
243
  *
79
- * Only what the two codes say is read, never a country: the same code; the
80
- * same digits once the zeros a chart pads with on the right are set aside
81
- * (`411` and `411000`); and else the account of the chart whose digits are the
82
- * longest beginning of the old code, three at least (`401ACME` to `401000`).
83
- * A tie is no answer. Whatever comes out is a proposal the user reads.
244
+ * Only the same code, not contradicted, is `exact`. Anything else is
245
+ * `suggested`, with its reason, and waits for the user; a candidate the files
246
+ * contradict is dropped, and the one account of the chart of the kind the
247
+ * files say is suggested in its place when there is exactly one.
84
248
  */
85
- export function proposeAccount(code, chart) {
249
+ export function proposeAccount(source, chart) {
86
250
  const live = chart.filter((account) => !account.deprecated);
87
- if (live.some((account) => account.code === code))
88
- return { target: code, basis: 'exact' };
89
- const same = live.filter((account) => unpadded(account.code) === unpadded(code));
90
- if (same.length === 1)
91
- return { target: same[0].code, basis: 'same-digits' };
92
- let best = [];
93
- let length = 2;
94
- for (const account of live) {
95
- const digits = unpadded(account.code);
96
- if (digits.length > length && code.startsWith(digits)) {
97
- best = [account];
98
- length = digits.length;
251
+ const byCode = () => {
252
+ const same = live.find((account) => account.code === source.code);
253
+ if (same !== undefined)
254
+ return { account: same, match: 'same-code' };
255
+ const digits = live.filter((account) => unpadded(account.code) === unpadded(source.code));
256
+ if (digits.length === 1)
257
+ return { account: digits[0], match: 'same-digits' };
258
+ let best = [];
259
+ let length = 2;
260
+ for (const account of live) {
261
+ const stem = unpadded(account.code);
262
+ if (stem.length > length && source.code.startsWith(stem)) {
263
+ best = [account];
264
+ length = stem.length;
265
+ }
266
+ else if (stem.length === length && length > 2 && source.code.startsWith(stem)) {
267
+ best.push(account);
268
+ }
269
+ }
270
+ return best.length === 1 ? { account: best[0], match: 'prefix' } : null;
271
+ };
272
+ const found = byCode();
273
+ let refused = '';
274
+ if (found !== null) {
275
+ const { verdict, why } = judge(source, found.account);
276
+ if (verdict === 'yes' && found.match === 'same-code') {
277
+ return { target: found.account.code, basis: 'exact', match: 'same-code', reason: why, doubtful: false };
99
278
  }
100
- else if (digits.length === length && length > 2 && code.startsWith(digits)) {
101
- best.push(account);
279
+ if (verdict !== 'no') {
280
+ return { target: found.account.code, basis: 'suggested', match: found.match, reason: `${MATCH_WORDS[found.match]}; ${why}`, doubtful: true };
102
281
  }
282
+ refused = `${found.account.code}, ${MATCH_WORDS[found.match]}, is not proposed: ${why}`;
103
283
  }
104
- if (best.length === 1)
105
- return { target: best[0].code, basis: 'prefix' };
106
- return { target: null, basis: 'none' };
284
+ const kind = accountOfKind(source, live);
285
+ if (kind !== null && judge(source, kind).verdict === 'yes') {
286
+ const why = `${kind.code} ${kind.name} is the account of the chart of the kind the files say`;
287
+ return { target: kind.code, basis: 'suggested', match: 'kind', reason: refused === '' ? why : `${refused}. ${why}`, doubtful: true };
288
+ }
289
+ return {
290
+ target: null,
291
+ basis: 'none',
292
+ match: null,
293
+ reason: refused === '' ? 'no account of the chart has this code, its digits or its beginning' : refused,
294
+ doubtful: true,
295
+ };
296
+ }
297
+ /** Each account of these books with what the files say of it: its name and type, and the side its lines leave it on. */
298
+ function sourceAccounts(books) {
299
+ const known = new Map(books.accounts.map((account) => [account.code, account]));
300
+ const net = new Map();
301
+ const add = (line) => {
302
+ net.set(line.account, (net.get(line.account) ?? 0n) + millionths(line.debit) - millionths(line.credit));
303
+ };
304
+ for (const entry of books.entries)
305
+ for (const line of entry.lines)
306
+ add(line);
307
+ for (const line of books.opening)
308
+ add(line);
309
+ const codes = [...new Set([...known.keys(), ...net.keys()])].sort();
310
+ return codes.map((code) => {
311
+ const balance = net.get(code) ?? 0n;
312
+ return {
313
+ code,
314
+ name: known.get(code)?.name ?? null,
315
+ type: known.get(code)?.type ?? null,
316
+ side: balance > 0n ? 'debit' : balance < 0n ? 'credit' : null,
317
+ };
318
+ });
319
+ }
320
+ /** A decimal string as an integer of millionths, the way the readers add them: never through a float. */
321
+ function millionths(amount) {
322
+ if (amount === null || amount === '')
323
+ return 0n;
324
+ const [whole = '0', fraction = ''] = amount.split('.');
325
+ return BigInt(whole === '' ? '0' : whole) * 1000000n + BigInt((fraction + '000000').slice(0, 6));
107
326
  }
108
327
  /**
109
328
  * The correspondence for these books in this company: what the caller gave,
110
- * and a proposal for everything it did not.
329
+ * and a proposal for everything it did not. A suggestion stays out of
330
+ * `mapping.accounts` — it is kept beside it, under `suggested` — unless the
331
+ * caller accepts the suggestions as a whole.
111
332
  */
112
- export async function proposeMapping(backend, companyId, books, given = {}) {
333
+ export async function proposeMapping(backend, companyId, books, given = {}, options = {}) {
113
334
  const [chart, journals, openingCode] = await Promise.all([
114
335
  wholeChart(backend, companyId),
115
336
  backend.select({
@@ -123,13 +344,22 @@ export async function proposeMapping(backend, companyId, books, given = {}) {
123
344
  }),
124
345
  openingJournalCode(backend, companyId),
125
346
  ]);
126
- const names = new Map(books.accounts.map((account) => [account.code, account.name]));
127
- const codes = [...new Set([...books.accounts.map((a) => a.code), ...usedAccounts(books)])].sort();
128
- const accounts = codes.map((code) => {
129
- const answer = given.accounts?.[code];
130
- if (answer !== undefined && answer !== null)
131
- return { source: code, name: names.get(code) ?? null, target: answer, basis: 'given' };
132
- return { source: code, name: names.get(code) ?? null, ...proposeAccount(code, chart) };
347
+ const byCode = new Map(chart.map((account) => [account.code, account]));
348
+ const accounts = sourceAccounts(books).map((source) => {
349
+ const answer = given.accounts?.[source.code];
350
+ if (answer !== undefined && answer !== null) {
351
+ // The user's answer is used as it is. Where the files contradict it,
352
+ // it is still said, so a correspondence saved from an older proposal
353
+ // is not trusted blind.
354
+ const target = byCode.get(answer);
355
+ const check = target === undefined ? null : judge(source, target);
356
+ return {
357
+ source: source.code, name: source.name, target: answer, basis: 'given', match: null,
358
+ reason: check?.verdict === 'no' ? `given, and yet ${check.why}` : null,
359
+ doubtful: check?.verdict === 'no',
360
+ };
361
+ }
362
+ return { source: source.code, name: source.name, ...proposeAccount(source, chart) };
133
363
  });
134
364
  const known = new Set(journals.map((journal) => journal.code));
135
365
  const general = journals.find((journal) => journal.journal_type === 'general')?.code ?? null;
@@ -145,18 +375,25 @@ export async function proposeMapping(backend, companyId, books, given = {}) {
145
375
  else
146
376
  journalMap[source] = general;
147
377
  }
148
- // Only what these books use is kept: a saved correspondence from another
149
- // file does not carry answers for accounts this one never names.
378
+ const accept = options.accept_suggestions === true;
379
+ const settled = (account) => account.basis === 'given' || account.basis === 'exact' || (accept && account.basis === 'suggested') ? account.target : null;
380
+ const waiting = accounts.filter((account) => account.basis === 'suggested' && !accept);
381
+ // Only what these books use stops an import: an account of the chart file
382
+ // that no line names is shown and never posted to.
150
383
  const used = new Set(usedAccounts(books));
151
384
  return {
152
385
  mapping: {
153
386
  version: 1,
154
387
  source: books.format,
155
- accounts: Object.fromEntries(accounts.map((account) => [account.source, account.target])),
388
+ accounts: Object.fromEntries(accounts.map((account) => [account.source, settled(account)])),
156
389
  journals: journalMap,
390
+ ...(waiting.length === 0
391
+ ? {}
392
+ : { suggested: Object.fromEntries(waiting.map((account) => [account.source, { target: account.target, reason: account.reason }])) }),
157
393
  },
158
394
  accounts,
159
- unmapped_accounts: accounts.filter((a) => a.target === null && used.has(a.source)).map((a) => a.source),
395
+ unmapped_accounts: accounts.filter((a) => a.basis === 'none' && used.has(a.source)).map((a) => a.source),
396
+ unconfirmed_accounts: waiting.filter((a) => used.has(a.source)).map((a) => a.source),
160
397
  unmapped_journals: Object.entries(journalMap).filter(([, target]) => target === null).map(([source]) => source),
161
398
  account_types: Object.fromEntries(chart.map((account) => [account.code, account.account_type])),
162
399
  };
@@ -222,7 +459,7 @@ async function openingJournalCode(backend, companyId) {
222
459
  */
223
460
  export async function importBooks(backend, args) {
224
461
  const books = readBooks(args.source, args.files, { encoding: args.encoding, date_order: args.date_order });
225
- const proposal = await proposeMapping(backend, args.company_id, books, args.mapping ?? {});
462
+ const proposal = await proposeMapping(backend, args.company_id, books, args.mapping ?? {}, { accept_suggestions: args.accept_suggestions });
226
463
  const read = {
227
464
  accounts: books.accounts.length,
228
465
  contacts: books.contacts.length,
@@ -237,6 +474,7 @@ export async function importBooks(backend, args) {
237
474
  mapping: proposal.mapping,
238
475
  accounts: proposal.accounts,
239
476
  unmapped_accounts: proposal.unmapped_accounts,
477
+ unconfirmed_accounts: proposal.unconfirmed_accounts,
240
478
  unmapped_journals: proposal.unmapped_journals,
241
479
  violations: books.violations,
242
480
  };
@@ -259,6 +497,12 @@ export async function importBooks(backend, args) {
259
497
  if (proposal.unmapped_accounts.length > 0) {
260
498
  blocking.push(`import_unmapped_accounts: no account of the chart answers for ${proposal.unmapped_accounts.join(', ')}. Say which in the correspondence`);
261
499
  }
500
+ if (proposal.unconfirmed_accounts.length > 0) {
501
+ const suggested = proposal.mapping.suggested ?? {};
502
+ blocking.push(`import_unconfirmed_accounts: ${proposal.unconfirmed_accounts.length} account${proposal.unconfirmed_accounts.length === 1 ? ' is' : 's are'} only suggested — ` +
503
+ proposal.unconfirmed_accounts.map((code) => `${code} → ${suggested[code]?.target ?? '?'}`).join(', ') +
504
+ '. Write the code of each under accounts in the correspondence, or accept the suggestions once they are read (accept_suggestions)');
505
+ }
262
506
  if (proposal.unmapped_journals.length > 0) {
263
507
  blocking.push(`import_unmapped_journals: no journal answers for ${proposal.unmapped_journals.join(', ')}. Say which in the correspondence`);
264
508
  }
@@ -1 +1 @@
1
- {"version":3,"file":"imports.js","sourceRoot":"","sources":["../../src/books/imports.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"imports.js","sourceRoot":"","sources":["../../src/books/imports.ts"],"names":[],"mappings":"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"}
package/dist/schema.d.ts CHANGED
@@ -15,7 +15,7 @@
15
15
  * is not a script, it is a restore.
16
16
  */
17
17
  /** The oldest schema `@ekwo-ai/core` reads. */
18
- export declare const SCHEMA_MIN = "0.6.0";
18
+ export declare const SCHEMA_MIN = "0.7.0";
19
19
  /** `-1`, `0` or `1`, comparing two `major.minor.patch` versions numerically. */
20
20
  export declare function compareSchemaVersions(left: string, right: string): number;
21
21
  /** Whether a database at `installed` is new enough for a package needing `minimum`. */
package/dist/schema.js CHANGED
@@ -15,7 +15,7 @@
15
15
  * is not a script, it is a restore.
16
16
  */
17
17
  /** The oldest schema `@ekwo-ai/core` reads. */
18
- export const SCHEMA_MIN = '0.6.0';
18
+ export const SCHEMA_MIN = '0.7.0';
19
19
  /** `-1`, `0` or `1`, comparing two `major.minor.patch` versions numerically. */
20
20
  export function compareSchemaVersions(left, right) {
21
21
  const parse = (version) => version
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ekwo-ai/core",
3
- "version": "0.6.0",
3
+ "version": "0.7.0",
4
4
  "description": "TypeScript row types and a typed Supabase client for the Ekwo OS accounting schema.",
5
5
  "keywords": ["accounting", "supabase", "postgres", "pcmn", "pcg", "bookkeeping", "ekwo"],
6
6
  "license": "AGPL-3.0-only",
@@ -11,7 +11,7 @@
11
11
  "type": "module",
12
12
  "sideEffects": false,
13
13
  "engines": { "node": ">=20" },
14
- "ekwo": { "schemaMin": "0.6.0" },
14
+ "ekwo": { "schemaMin": "0.7.0" },
15
15
  "files": ["dist", "README.md", "CHANGELOG.md"],
16
16
  "main": "./dist/index.js",
17
17
  "types": "./dist/index.d.ts",
@@ -23,13 +23,13 @@
23
23
  "typecheck": "tsc -p tsconfig.json --noEmit"
24
24
  },
25
25
  "dependencies": {
26
- "@ekwo-ai/camt053": "^0.6.0",
27
- "@ekwo-ai/cfonb120": "^0.6.0",
28
- "@ekwo-ai/coda": "^0.6.0",
29
- "@ekwo-ai/fec": "^0.6.0",
30
- "@ekwo-ai/journal-items": "^0.6.0",
31
- "@ekwo-ai/journal-report": "^0.6.0",
32
- "@ekwo-ai/trial-balance": "^0.6.0"
26
+ "@ekwo-ai/camt053": "^0.7.0",
27
+ "@ekwo-ai/cfonb120": "^0.7.0",
28
+ "@ekwo-ai/coda": "^0.7.0",
29
+ "@ekwo-ai/fec": "^0.7.0",
30
+ "@ekwo-ai/journal-items": "^0.7.0",
31
+ "@ekwo-ai/journal-report": "^0.7.0",
32
+ "@ekwo-ai/trial-balance": "^0.7.0"
33
33
  },
34
34
  "peerDependencies": {
35
35
  "@supabase/supabase-js": "^2.0.0"