ekwo-os 0.12.1 → 0.13.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.
Files changed (200) hide show
  1. package/README.md +4 -2
  2. package/dist/assets/expected-objects.json +427 -7
  3. package/dist/assets/migrations/20261011120000_the_result_in_progress_under_its_line.sql +429 -0
  4. package/dist/assets/migrations/20261011154807_a_bank_line_is_settled_by_its_function.sql +273 -0
  5. package/dist/assets/migrations/20261011155443_a_matching_settles_one_counterparty.sql +422 -0
  6. package/dist/assets/migrations/20261011155947_a_box_is_written_by_its_posting.sql +109 -0
  7. package/dist/assets/migrations/20261011160431_a_line_keeps_the_boxes_it_was_posted_in.sql +467 -0
  8. package/dist/assets/migrations/20261011163457_schema_version_0_12_2.sql +42 -0
  9. package/dist/assets/migrations/20261011192741_pack_certification_proven.sql +28 -0
  10. package/dist/assets/migrations/20261012050145_pack_evidence.sql +28 -0
  11. package/dist/assets/migrations/20261014081008_a_bank_line_settles_with_its_fees.sql +608 -0
  12. package/dist/assets/migrations/20261014081038_an_opening_on_the_day_of_the_takeover.sql +699 -0
  13. package/dist/assets/migrations/20261014152111_what_the_accounts_mean_to_an_analysis.sql +378 -0
  14. package/dist/assets/migrations/20261014164531_schema_version_0_13_0.sql +42 -0
  15. package/dist/assets/modules/corporate-tax/module.json +4 -3
  16. package/dist/assets/modules/corporate-tax/supabase/migrations/20261010073000_tax_provision_and_prepayments.sql +610 -0
  17. package/dist/assets/seed/00_territories.sql +121 -5
  18. package/dist/assets/seed/05_framework_generic.sql +34 -4
  19. package/dist/assets/seed/100_pack_uy.sql +130 -5
  20. package/dist/assets/seed/101_pack_ec.sql +39 -5
  21. package/dist/assets/seed/102_pack_bo.sql +44 -5
  22. package/dist/assets/seed/103_pack_py.sql +43 -5
  23. package/dist/assets/seed/104_pack_do.sql +37 -5
  24. package/dist/assets/seed/105_pack_cr.sql +44 -5
  25. package/dist/assets/seed/106_pack_gt.sql +52 -5
  26. package/dist/assets/seed/107_pack_pa.sql +42 -5
  27. package/dist/assets/seed/108_pack_in.sql +52 -5
  28. package/dist/assets/seed/109_pack_cn.sql +123 -5
  29. package/dist/assets/seed/10_pack_be.sql +231 -14
  30. package/dist/assets/seed/110_pack_ge.sql +37 -5
  31. package/dist/assets/seed/111_pack_md.sql +58 -5
  32. package/dist/assets/seed/112_pack_rs.sql +70 -5
  33. package/dist/assets/seed/113_pack_ba.sql +66 -5
  34. package/dist/assets/seed/114_pack_al.sql +139 -5
  35. package/dist/assets/seed/115_pack_mk.sql +53 -5
  36. package/dist/assets/seed/116_pack_me.sql +52 -5
  37. package/dist/assets/seed/117_pack_bh.sql +43 -5
  38. package/dist/assets/seed/118_pack_om.sql +44 -5
  39. package/dist/assets/seed/119_pack_gh.sql +46 -5
  40. package/dist/assets/seed/11_pack_fr.sql +348 -9
  41. package/dist/assets/seed/120_pack_tz.sql +46 -5
  42. package/dist/assets/seed/121_pack_ug.sql +46 -5
  43. package/dist/assets/seed/122_pack_rw.sql +46 -5
  44. package/dist/assets/seed/123_pack_xk.sql +39 -5
  45. package/dist/assets/seed/124_pack_kz.sql +53 -5
  46. package/dist/assets/seed/125_pack_pk.sql +46 -5
  47. package/dist/assets/seed/126_pack_bd.sql +46 -5
  48. package/dist/assets/seed/127_pack_lk.sql +46 -5
  49. package/dist/assets/seed/128_pack_am.sql +47 -5
  50. package/dist/assets/seed/129_pack_az.sql +72 -5
  51. package/dist/assets/seed/12_pack_lu.sql +760 -5
  52. package/dist/assets/seed/130_pack_hn.sql +52 -5
  53. package/dist/assets/seed/131_pack_sv.sql +44 -5
  54. package/dist/assets/seed/132_pack_ni.sql +52 -5
  55. package/dist/assets/seed/133_pack_et.sql +46 -5
  56. package/dist/assets/seed/134_pack_mu.sql +46 -5
  57. package/dist/assets/seed/135_pack_mz.sql +97 -5
  58. package/dist/assets/seed/136_pack_ao.sql +59 -5
  59. package/dist/assets/seed/137_pack_zm.sql +46 -5
  60. package/dist/assets/seed/138_pack_bm.sql +37 -5
  61. package/dist/assets/seed/139_pack_ky.sql +36 -5
  62. package/dist/assets/seed/13_pack_ee.sql +80 -5
  63. package/dist/assets/seed/140_pack_vg.sql +40 -5
  64. package/dist/assets/seed/141_pack_gg.sql +44 -5
  65. package/dist/assets/seed/142_pack_qa.sql +41 -5
  66. package/dist/assets/seed/143_pack_kw.sql +37 -5
  67. package/dist/assets/seed/144_pack_bn.sql +43 -5
  68. package/dist/assets/seed/145_pack_mo.sql +53 -5
  69. package/dist/assets/seed/146_pack_je.sql +44 -5
  70. package/dist/assets/seed/147_pack_zw.sql +46 -5
  71. package/dist/assets/seed/14_pack_gb.sql +61 -5
  72. package/dist/assets/seed/15_pack_us.sql +56 -5
  73. package/dist/assets/seed/16_pack_ie.sql +91 -5
  74. package/dist/assets/seed/17_pack_nl.sql +78 -5
  75. package/dist/assets/seed/18_pack_de.sql +93 -5
  76. package/dist/assets/seed/19_pack_es.sql +271 -5
  77. package/dist/assets/seed/20_pack_sn.sql +158 -5
  78. package/dist/assets/seed/21_pack_ci.sql +158 -5
  79. package/dist/assets/seed/22_pack_bj.sql +158 -5
  80. package/dist/assets/seed/23_pack_bf.sql +158 -5
  81. package/dist/assets/seed/24_pack_cm.sql +158 -5
  82. package/dist/assets/seed/25_pack_cf.sql +158 -5
  83. package/dist/assets/seed/26_pack_km.sql +158 -5
  84. package/dist/assets/seed/27_pack_cg.sql +158 -5
  85. package/dist/assets/seed/28_pack_ga.sql +158 -5
  86. package/dist/assets/seed/29_pack_gn.sql +158 -5
  87. package/dist/assets/seed/30_pack_gw.sql +158 -5
  88. package/dist/assets/seed/31_pack_gq.sql +158 -5
  89. package/dist/assets/seed/32_pack_ml.sql +158 -5
  90. package/dist/assets/seed/33_pack_ne.sql +158 -5
  91. package/dist/assets/seed/34_pack_cd.sql +158 -5
  92. package/dist/assets/seed/35_pack_td.sql +158 -5
  93. package/dist/assets/seed/36_pack_tg.sql +158 -5
  94. package/dist/assets/seed/37_pack_it.sql +47 -5
  95. package/dist/assets/seed/38_pack_id.sql +29 -5
  96. package/dist/assets/seed/39_pack_my.sql +51 -5
  97. package/dist/assets/seed/40_pack_au.sql +46 -5
  98. package/dist/assets/seed/41_pack_nz.sql +47 -5
  99. package/dist/assets/seed/42_pack_mx.sql +86 -5
  100. package/dist/assets/seed/43_pack_pt.sql +60 -5
  101. package/dist/assets/seed/44_pack_ph.sql +34 -5
  102. package/dist/assets/seed/45_pack_ar.sql +44 -5
  103. package/dist/assets/seed/46_pack_cl.sql +133 -5
  104. package/dist/assets/seed/47_pack_co.sql +40 -5
  105. package/dist/assets/seed/48_pack_pe.sql +54 -5
  106. package/dist/assets/seed/49_pack_ng.sql +39 -5
  107. package/dist/assets/seed/50_pack_sg.sql +46 -5
  108. package/dist/assets/seed/51_pack_jp.sql +79 -5
  109. package/dist/assets/seed/52_pack_hk.sql +37 -5
  110. package/dist/assets/seed/53_pack_tw.sql +26 -5
  111. package/dist/assets/seed/54_pack_kr.sql +74 -5
  112. package/dist/assets/seed/55_pack_vn.sql +35 -5
  113. package/dist/assets/seed/56_pack_th.sql +34 -5
  114. package/dist/assets/seed/57_pack_ua.sql +79 -5
  115. package/dist/assets/seed/58_pack_ca.sql +38 -5
  116. package/dist/assets/seed/60_pack_ae.sql +44 -5
  117. package/dist/assets/seed/61_pack_se.sql +88 -5
  118. package/dist/assets/seed/62_pack_ch.sql +38 -5
  119. package/dist/assets/seed/63_pack_at.sql +51 -5
  120. package/dist/assets/seed/64_pack_pl.sql +53 -5
  121. package/dist/assets/seed/65_pack_dk.sql +41 -5
  122. package/dist/assets/seed/66_pack_no.sql +43 -5
  123. package/dist/assets/seed/67_pack_fi.sql +48 -5
  124. package/dist/assets/seed/68_pack_cz.sql +119 -5
  125. package/dist/assets/seed/69_pack_sk.sql +58 -5
  126. package/dist/assets/seed/70_pack_hu.sql +53 -5
  127. package/dist/assets/seed/71_pack_sa.sql +46 -5
  128. package/dist/assets/seed/72_pack_ro.sql +99 -5
  129. package/dist/assets/seed/73_pack_bg.sql +34 -5
  130. package/dist/assets/seed/74_pack_hr.sql +48 -5
  131. package/dist/assets/seed/75_pack_si.sql +54 -5
  132. package/dist/assets/seed/76_pack_gr.sql +36 -5
  133. package/dist/assets/seed/77_pack_lt.sql +39 -5
  134. package/dist/assets/seed/78_pack_lv.sql +34 -5
  135. package/dist/assets/seed/79_pack_cy.sql +46 -5
  136. package/dist/assets/seed/80_pack_mt.sql +95 -5
  137. package/dist/assets/seed/81_pack_is.sql +39 -5
  138. package/dist/assets/seed/82_pack_tr.sql +58 -5
  139. package/dist/assets/seed/83_pack_eg.sql +44 -5
  140. package/dist/assets/seed/84_pack_ma.sql +74 -5
  141. package/dist/assets/seed/85_pack_tn.sql +59 -5
  142. package/dist/assets/seed/86_pack_dz.sql +121 -5
  143. package/dist/assets/seed/87_pack_il.sql +38 -5
  144. package/dist/assets/seed/88_pack_za.sql +46 -5
  145. package/dist/assets/seed/89_pack_ke.sql +46 -5
  146. package/dist/assets/seed/90_demo_company.sql +6 -0
  147. package/dist/assets/seed/modules/corporate_tax/10_pack_be.sql +1 -1
  148. package/dist/assets/seed/modules/corporate_tax/11_pack_fr.sql +3 -2
  149. package/dist/assets/seed/modules/fixed_assets/10_pack_be.sql +1 -1
  150. package/dist/assets/seed/modules/fixed_assets/11_pack_fr.sql +1 -1
  151. package/dist/cli.d.ts +3 -2
  152. package/dist/cli.d.ts.map +1 -1
  153. package/dist/cli.js +25 -3
  154. package/dist/cli.js.map +1 -1
  155. package/dist/commands/import.d.ts.map +1 -1
  156. package/dist/commands/import.js +9 -3
  157. package/dist/commands/import.js.map +1 -1
  158. package/dist/commands/pack.js +7 -0
  159. package/dist/commands/pack.js.map +1 -1
  160. package/dist/commands/payment.d.ts +4 -2
  161. package/dist/commands/payment.d.ts.map +1 -1
  162. package/dist/commands/payment.js +48 -9
  163. package/dist/commands/payment.js.map +1 -1
  164. package/dist/commands/peppol.d.ts +29 -0
  165. package/dist/commands/peppol.d.ts.map +1 -0
  166. package/dist/commands/peppol.js +135 -0
  167. package/dist/commands/peppol.js.map +1 -0
  168. package/dist/index.d.ts +3 -2
  169. package/dist/index.d.ts.map +1 -1
  170. package/dist/index.js +2 -1
  171. package/dist/index.js.map +1 -1
  172. package/dist/output.js +1 -1
  173. package/dist/output.js.map +1 -1
  174. package/dist/pack/analysis.d.ts +72 -0
  175. package/dist/pack/analysis.d.ts.map +1 -0
  176. package/dist/pack/analysis.js +198 -0
  177. package/dist/pack/analysis.js.map +1 -0
  178. package/dist/pack/certification.d.ts +23 -6
  179. package/dist/pack/certification.d.ts.map +1 -1
  180. package/dist/pack/certification.js +27 -5
  181. package/dist/pack/certification.js.map +1 -1
  182. package/dist/pack/compile.d.ts.map +1 -1
  183. package/dist/pack/compile.js +57 -8
  184. package/dist/pack/compile.js.map +1 -1
  185. package/dist/pack/describe.d.ts +6 -3
  186. package/dist/pack/describe.d.ts.map +1 -1
  187. package/dist/pack/describe.js +1 -0
  188. package/dist/pack/describe.js.map +1 -1
  189. package/dist/pack/read.d.ts +67 -0
  190. package/dist/pack/read.d.ts.map +1 -1
  191. package/dist/pack/read.js +250 -22
  192. package/dist/pack/read.js.map +1 -1
  193. package/dist/pack/rules.d.ts +24 -0
  194. package/dist/pack/rules.d.ts.map +1 -0
  195. package/dist/pack/rules.js +29 -0
  196. package/dist/pack/rules.js.map +1 -0
  197. package/dist/schema.d.ts +1 -1
  198. package/dist/schema.js +1 -1
  199. package/package.json +3 -3
  200. package/schema/output.1.json +49 -1
package/README.md CHANGED
@@ -173,12 +173,13 @@ project reports what was already there and creates nothing a second time.
173
173
  | `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
174
  | `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`. |
175
175
  | `ekwo payment record` | Money in or out, booked and matched. With `--doc`, against that document. |
176
- | `ekwo match <transaction> <document>` | A bank statement line pays a document, through `settle_from_statement()`. |
176
+ | `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. |
177
177
  | `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
178
  | `ekwo doc list` / `show` | What exists, and with `--unpaid` what is posted and still owed. See [keeping books](#keeping-books). |
179
179
  | `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
180
  | `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
181
  | `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
+ | `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). |
182
183
 
183
184
  There is no `eject`, because there is nothing to eject from. The schema is in
184
185
  your database, the migrations are in the repository under AGPL-3.0, and
@@ -262,6 +263,7 @@ ekwo post job-7
262
263
  ekwo cancel job-7 # back to draft where the country allows it, else the credit note
263
264
  ekwo payment record --doc job-7 --amount 1750.00 --date 2026-06-30 --bank-account <id> --ref bank-1
264
265
  ekwo match <bank transaction id> job-9
266
+ ekwo match <payout id> job-9 --extra "account=<fee account>,amount=3.00,tax=<tax code>"
265
267
  ekwo doc list --unpaid --since 2026-06-01 --json
266
268
  ```
267
269
 
@@ -517,7 +519,7 @@ exactly six fields:
517
519
  "organization": "My Organisation",
518
520
  "country": "<cc>",
519
521
  "edition": "community",
520
- "schema_version": "0.12.1",
522
+ "schema_version": "0.13.0",
521
523
  "contact_email": "you@example.com"
522
524
  }
523
525
  ```