ekwo-os 0.14.0 → 0.15.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +8 -1
- package/dist/assets/expected-objects.json +1250 -16
- package/dist/assets/migrations/20261018180416_a_line_that_names_nobody_is_named_once.sql +789 -0
- package/dist/assets/migrations/20261018210000_several_lines_settle_together_and_a_difference_is_booked.sql +1035 -0
- package/dist/assets/migrations/20261018210500_a_line_is_left_unnamed_and_a_crowded_name_is_doubted.sql +447 -0
- package/dist/assets/migrations/20261018230000_sure_pairs_are_matched_in_one_gesture.sql +982 -0
- package/dist/assets/migrations/20261019090000_two_contacts_of_one_company_are_merged.sql +1054 -0
- package/dist/assets/migrations/20261019104812_the_contacts_that_are_probably_one_party.sql +859 -0
- package/dist/assets/migrations/20261019130000_an_analytic_value_is_entered_on_the_line.sql +1991 -0
- package/dist/assets/migrations/20261019130500_analytic_report.sql +206 -0
- package/dist/assets/migrations/20261019150000_a_party_names_its_identifiers.sql +182 -0
- package/dist/assets/migrations/20261019160000_schema_version_0_15_0.sql +45 -0
- package/dist/assets/modules/einvoicing/module.json +2 -2
- package/dist/assets/modules/einvoicing/supabase/migrations/20261019120000_einvoicing_clearance.sql +591 -0
- package/dist/assets/modules/fixed-assets/supabase/migrations/20261019090001_assets_name_no_merged_contact.sql +19 -0
- package/dist/assets/seed/00_territories.sql +26 -0
- package/dist/assets/seed/204_pack_lc.sql +579 -0
- package/dist/assets/seed/39_pack_my.sql +7 -4
- package/dist/assets/seed/403_pack_kn.sql +572 -0
- package/dist/cli.d.ts +1 -1
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +41 -1
- package/dist/cli.js.map +1 -1
- package/dist/commands/analytic.d.ts +14 -0
- package/dist/commands/analytic.d.ts.map +1 -0
- package/dist/commands/analytic.js +73 -0
- package/dist/commands/analytic.js.map +1 -0
- package/dist/commands/contact.d.ts +5 -3
- package/dist/commands/contact.d.ts.map +1 -1
- package/dist/commands/contact.js +57 -8
- package/dist/commands/contact.js.map +1 -1
- package/dist/commands/einvoice.d.ts +5 -3
- package/dist/commands/einvoice.d.ts.map +1 -1
- package/dist/commands/einvoice.js +98 -9
- package/dist/commands/einvoice.js.map +1 -1
- package/dist/commands/line.d.ts +18 -0
- package/dist/commands/line.d.ts.map +1 -0
- package/dist/commands/line.js +192 -0
- package/dist/commands/line.js.map +1 -0
- package/dist/commands/pack.d.ts.map +1 -1
- package/dist/commands/pack.js +17 -2
- package/dist/commands/pack.js.map +1 -1
- package/dist/output.d.ts.map +1 -1
- package/dist/output.js +5 -1
- package/dist/output.js.map +1 -1
- package/dist/pack/read.d.ts +56 -7
- package/dist/pack/read.d.ts.map +1 -1
- package/dist/pack/read.js +85 -3
- package/dist/pack/read.js.map +1 -1
- package/dist/schema.d.ts +1 -1
- package/dist/schema.js +1 -1
- package/package.json +3 -3
- package/schema/output.1.json +143 -1
package/README.md
CHANGED
|
@@ -168,18 +168,25 @@ project reports what was already there and creates nothing a second time.
|
|
|
168
168
|
| `ekwo use <company>` | Picks the company the next commands run on. |
|
|
169
169
|
| `ekwo whoami` | Who you are on which instance, the companies you can see, and what you may do on the one in use. |
|
|
170
170
|
| `ekwo contact add` / `list` | A customer or a supplier, and finding one again. |
|
|
171
|
+
| `ekwo contact duplicates` | The pairs of contacts that are probably one party, strongest first, through `suggest_duplicate_contacts()`: which one to keep, a score, and the evidence — the same VAT or registration number, the same bank account, the same words of the name. Writes nothing. |
|
|
172
|
+
| `ekwo contact merge <keep> <absorb>` | One party created twice — two spellings, two imports — joined through `merge_contacts()`: everything that names the second, posted lines and issued documents included, names the first; the first takes the fields it left empty; the second is retired, never deleted, and named by nothing again. By name or id. |
|
|
171
173
|
| `ekwo doc new` / `doc line add` | A draft document — any kind, with `--type` — and one more line on it. A draft books nothing. `ekwo invoice` is the old name of `ekwo doc`, kept as an alias. |
|
|
172
174
|
| `ekwo post <document>` | Books it, through `post_document()`. `--dry-run` shows the entry the database would write and writes nothing. |
|
|
173
175
|
| `ekwo cancel <document>` | Undoes a posted invoice, and says how. Back to draft, through `unpost_document()`, where its country allows it and nothing about it has left; otherwise through `cancel_document()`: the credit note that names it, posted and matched against it, and the invoice cancelled. `--date` books the credit note on another day than the invoice's, which is how a locked period is stepped over; `--credit` asks for the note where a draft was possible. |
|
|
174
176
|
| `ekwo reverse <entry>` | Undoes a posted entry keyed by hand, through `reverse_entry()`: its mirror, posted and matched against it. By id or by number; `--date` as for `cancel`. |
|
|
177
|
+
| `ekwo line contacts suggest [--line <line>]…` / `ekwo line contact set <line> <contact>` | The open receivable and payable lines that name nobody — open items of books imported line by line — with the contacts each could be, best first: a learned motif, the number of a document of the company quoted in the label, the description or the reference of the entry, the words of a contact's name, and how many contacts the same evidence reached. `set` names one, once, through `set_line_contact()`, and the label is learned for the next time. A contact by name or id. |
|
|
178
|
+
| `ekwo line unnamed leave <line> --reason <text>` / `ekwo line unnamed undo <line>` | Leaves such a line without a contact on purpose, with the reason, through `leave_line_unnamed()`: it is no longer suggested a contact and stays an open item. `undo` takes it back. |
|
|
179
|
+
| `ekwo line combinations suggest [--contact <contact>]` / `ekwo line match <line> <line>… [--difference <reason>]` / `ekwo line differences list` | Which open receivable and payable lines of one counterparty settle each other — an exact pair, several lines to the cent, or within the company's difference tolerance — through `suggest_item_combinations()`; `match` matches the lines named in one gesture under one letter (`reconcile_many()`), or with `--difference` books the difference on the account the pack gives for the reason and matches everything (`reconcile_with_difference()`); `differences list` gives the reasons, their accounts and the tolerance. |
|
|
175
180
|
| `ekwo payment record` | Money in or out, booked and matched. With `--doc`, against that document. |
|
|
176
181
|
| `ekwo match <transaction> <document>… [--amount <amount>]… [--extra "account=<code>,amount=<amount>,tax=<code>"]…` | A bank statement line pays documents, through `settle_from_statement()`: `--amount`, once per document, says how much settles each; `--extra` books the fee or the charges the line is net of in the same entry, and alone settles a bank charge. The line balances to the cent or is refused. |
|
|
182
|
+
| `ekwo analytic axes`, `ekwo analytic report --axis <code> --from <date> --to <date>` | The analytic axes of the company and their values; and the income, expense, result and fixed-asset movement of each value of one axis over a period, read by `analytic_report()` from the posted ledger, a parent with the subtotal of the values below it, then the part no share of the axis reaches and the total of the period. |
|
|
177
183
|
| `ekwo import <source> <file>…` | Books kept elsewhere — `trial-balance`, `fec`, `journal-items`, `journal-report`, `transaction-journal`, `xaf` — whole or not at all, through `import_books()`, with a correspondence of accounts and journals you save and give back; or a bank statement — `camt.053`, `coda`, `cfonb120` — as pending lines. `--dry-run` rehearses. See [taking over books](#taking-over-books-ekwo-import). |
|
|
178
184
|
| `ekwo doc list` / `show` | What exists, and with `--unpaid` what is posted and still owed. See [keeping books](#keeping-books). |
|
|
179
185
|
| `ekwo doc pdf <document>` | The PDF of a sale invoice or credit note, rendered from the books by [`@ekwo-ai/invoice-pdf`](../formats/invoice-pdf/README.md), with the logo the company names by URL (fetched by this command, from a public http(s) address only). Written to `--out`, or under its own name in the current directory. `--factur-x` embeds the CII of a posted sale and makes it a Factur-X PDF/A-3 (the rules it breaks end on exit 1); `--page-size Letter`; `--labels <file.json>` gives the words of the layout in the document's language. `ekwo document` is the whole word of `ekwo doc`. Records nothing. |
|
|
180
186
|
| `ekwo proof stamp` / `upgrade` / `verify` | The sha256 of a filed file — a declaration, the annual accounts of a financial year, a document — committed to Bitcoin through the public OpenTimestamps calendars; only the hash leaves. `upgrade` completes the pending proofs of the company and is made to run on a schedule; `verify` checks a file against its proof and the block it names, and `--out` writes the `.ots` file any verifier reads. See [`docs/filing-proofs.md`](../../docs/filing-proofs.md). |
|
|
181
187
|
| `ekwo einvoice validate` / `issue` / `status` / `list` | The electronic invoice of a posted sale, in the format its country pack declares, through the `einvoicing` module: `validate` writes it and names the rules it breaks (exit 1 if any), `issue` keeps it and with `--send --to <directory>` writes it to that folder, `status --refresh` follows it. See [`modules/einvoicing`](../../modules/einvoicing/README.md). |
|
|
182
188
|
| `ekwo einvoice fiscalise` / `fiscalisation` | The fiscal record a country's fiscalisation regime requires for every invoice — VERI*FACTU is one — written by the brick its pack names and chained after the last record of the invoicing system described by `--system <file>` (or `EKWO_FISCAL_SYSTEM`); `--dry-run` writes it and chains nothing, a record that breaks a rule is never chained (exit 1). `fiscalisation` walks each chain, and names the records still to send and the posted sales without a record. |
|
|
189
|
+
| `ekwo einvoice clearance <document> submitted\|validated\|rejected\|cancelled` | Under a clearance regime — the authority validates every invoice before it is issued — records what happened to a posted sale: its submission (`--reference`, `--issue`), the authority's validation (`--identifier`, `--validated-at`, `--verification-url`), a rejection by the authority or the buyer (`--reason`, `--by`), its cancellation (`--reason`), each `--at` a moment, `--detail <file>` the answer as JSON. It dials nobody; the database refuses a transition that cannot have happened, and a window of the pack that has closed. `fiscalisation` then counts the sales validated, waiting, rejected and cancelled. |
|
|
183
190
|
| `ekwo peppol validate <file>` / `lookup <participant>` | The Peppol network, with no installation and no sign-in. `validate` reads a UBL invoice or credit note as it arrived and names the rules it breaks — the arithmetic of EN 16931 and the electronic addresses of both parties — with exit 1 if any; nothing is booked. `lookup` checks a participant identifier (`0208:0999999922`, `iso6523-actorid-upis::…` or a symbolic scheme) and asks the DNS of the Service Metadata Locator whether it is registered, and with which Service Metadata Publisher; `--test` asks the acceptance network. Exit 0 only for a registered participant. See [`@ekwo-ai/peppol-ubl`](../formats/peppol-ubl/README.md#participant-identifiers-and-the-sml). |
|
|
184
191
|
|
|
185
192
|
There is no `eject`, because there is nothing to eject from. The schema is in
|
|
@@ -521,7 +528,7 @@ exactly six fields:
|
|
|
521
528
|
"organization": "My Organisation",
|
|
522
529
|
"country": "<cc>",
|
|
523
530
|
"edition": "community",
|
|
524
|
-
"schema_version": "0.
|
|
531
|
+
"schema_version": "0.15.0",
|
|
525
532
|
"contact_email": "you@example.com"
|
|
526
533
|
}
|
|
527
534
|
```
|