ekwo-os 0.4.1

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 (361) hide show
  1. package/README.md +873 -0
  2. package/dist/args.d.ts +57 -0
  3. package/dist/args.d.ts.map +1 -0
  4. package/dist/args.js +134 -0
  5. package/dist/args.js.map +1 -0
  6. package/dist/assets/expected-objects.json +9432 -0
  7. package/dist/assets/migrations/20260911120000_core_companies.sql +260 -0
  8. package/dist/assets/migrations/20260911120100_accounts_journals.sql +211 -0
  9. package/dist/assets/migrations/20260911120200_contacts.sql +90 -0
  10. package/dist/assets/migrations/20260911120300_taxes.sql +146 -0
  11. package/dist/assets/migrations/20260911120400_entries.sql +338 -0
  12. package/dist/assets/migrations/20260911120500_documents.sql +279 -0
  13. package/dist/assets/migrations/20260911120600_payments_reconciliation.sql +251 -0
  14. package/dist/assets/migrations/20260911120700_bank.sql +178 -0
  15. package/dist/assets/migrations/20260911120800_analytics_attachments.sql +128 -0
  16. package/dist/assets/migrations/20260911120900_post_document.sql +279 -0
  17. package/dist/assets/migrations/20260911121000_reporting.sql +235 -0
  18. package/dist/assets/migrations/20260911121100_country_templates.sql +226 -0
  19. package/dist/assets/migrations/20260911121200_fec.sql +71 -0
  20. package/dist/assets/migrations/20260911130000_instance.sql +77 -0
  21. package/dist/assets/migrations/20260911130100_instance_members.sql +224 -0
  22. package/dist/assets/migrations/20260911140000_instance_admins.sql +112 -0
  23. package/dist/assets/migrations/20260911160000_tax_posting_templates_unique.sql +17 -0
  24. package/dist/assets/migrations/20260911170000_document_amount_paid.sql +82 -0
  25. package/dist/assets/migrations/20260911173000_post_payment.sql +122 -0
  26. package/dist/assets/migrations/20260911173100_sequence_counters_under_rls.sql +84 -0
  27. package/dist/assets/migrations/20260911183000_country_journal_defaults.sql +143 -0
  28. package/dist/assets/migrations/20260911193853_line_account_defaults.sql +274 -0
  29. package/dist/assets/migrations/20260911195054_products.sql +221 -0
  30. package/dist/assets/migrations/20260911210131_anon_surface.sql +85 -0
  31. package/dist/assets/migrations/20260912074712_country_packs.sql +318 -0
  32. package/dist/assets/migrations/20260912080311_report_code_and_region.sql +198 -0
  33. package/dist/assets/migrations/20260912081014_pack_certification_maintained.sql +31 -0
  34. package/dist/assets/migrations/20260912081015_pack_certification_backfill.sql +16 -0
  35. package/dist/assets/migrations/20260912090407_tax_report_boxes.sql +329 -0
  36. package/dist/assets/migrations/20260912091917_tax_on_base_value.sql +25 -0
  37. package/dist/assets/migrations/20260912091918_tax_engine_columns.sql +776 -0
  38. package/dist/assets/migrations/20260912094412_opening_and_closing.sql +759 -0
  39. package/dist/assets/migrations/20260912095825_charts_of_accounts.sql +326 -0
  40. package/dist/assets/migrations/20260912100412_financial_statements.sql +632 -0
  41. package/dist/assets/migrations/20260912104719_one_formula_evaluator.sql +209 -0
  42. package/dist/assets/migrations/20260912105720_entry_kind_appropriation.sql +26 -0
  43. package/dist/assets/migrations/20260912105721_appropriation_entry_kind.sql +444 -0
  44. package/dist/assets/migrations/20260912111751_document_rules.sql +274 -0
  45. package/dist/assets/migrations/20260912112132_cash_basis_vat_and_fx.sql +1189 -0
  46. package/dist/assets/migrations/20260913074512_modules.sql +493 -0
  47. package/dist/assets/migrations/20260913075903_asset_disposal_roles.sql +47 -0
  48. package/dist/assets/migrations/20260913083216_capabilities.sql +637 -0
  49. package/dist/assets/migrations/20260913083901_company_invitations.sql +262 -0
  50. package/dist/assets/migrations/20260913084402_user_preferences.sql +376 -0
  51. package/dist/assets/migrations/20260913084847_company_profile.sql +261 -0
  52. package/dist/assets/migrations/20260913085436_numbering_reads_the_pack.sql +235 -0
  53. package/dist/assets/migrations/20260913085932_api_keys.sql +303 -0
  54. package/dist/assets/migrations/20260913090216_fiscal_year_bounds.sql +159 -0
  55. package/dist/assets/migrations/20260913092527_entries_import.sql +219 -0
  56. package/dist/assets/migrations/20260913101536_null_safe_guards.sql +188 -0
  57. package/dist/assets/migrations/20260913102115_installer_is_named.sql +462 -0
  58. package/dist/assets/migrations/20260913102758_no_currency_default.sql +138 -0
  59. package/dist/assets/migrations/20260913103355_cash_basis_needs_a_box.sql +453 -0
  60. package/dist/assets/migrations/20260913104014_aged_balance_named_group.sql +79 -0
  61. package/dist/assets/migrations/20260913104232_foreign_key_indexes.sql +144 -0
  62. package/dist/assets/migrations/20260913105120_declared_no_reader.sql +41 -0
  63. package/dist/assets/migrations/20260913111407_pack_languages.sql +223 -0
  64. package/dist/assets/migrations/20260913112233_schema_comments_for_a_reader.sql +27 -0
  65. package/dist/assets/migrations/20260913114535_fec_opening_balances.sql +307 -0
  66. package/dist/assets/migrations/20260914103412_audit_log.sql +509 -0
  67. package/dist/assets/migrations/20260914111907_pack_upgrade.sql +428 -0
  68. package/dist/assets/migrations/20260914120500_rounding_reads_the_currency.sql +206 -0
  69. package/dist/assets/migrations/20260914121200_amounts_round_at_the_currency.sql +2403 -0
  70. package/dist/assets/migrations/20260914134325_schema_version_0_2_0.sql +36 -0
  71. package/dist/assets/migrations/20260914143915_accounts_in_use.sql +428 -0
  72. package/dist/assets/migrations/20260914144731_account_code_frozen.sql +99 -0
  73. package/dist/assets/migrations/20260914151207_schema_grants_its_own_rights.sql +284 -0
  74. package/dist/assets/migrations/20260914152840_pack_upgrade_records_its_own_line.sql +237 -0
  75. package/dist/assets/migrations/20260914163943_declaration_periodicity.sql +349 -0
  76. package/dist/assets/migrations/20260915094000_foreign_services_received.sql +37 -0
  77. package/dist/assets/migrations/20260915094500_mentions_read_a_foreign_service.sql +72 -0
  78. package/dist/assets/migrations/20260915153000_document_shares.sql +568 -0
  79. package/dist/assets/migrations/20260915160000_ec_sales_list.sql +181 -0
  80. package/dist/assets/migrations/20260915161842_pack_sources.sql +56 -0
  81. package/dist/assets/migrations/20260915170500_schema_version_0_3_0.sql +45 -0
  82. package/dist/assets/migrations/20260915174500_a_vat_category_is_a_code.sql +177 -0
  83. package/dist/assets/migrations/20260915180000_document_rule_references.sql +85 -0
  84. package/dist/assets/migrations/20260915181000_territories.sql +342 -0
  85. package/dist/assets/migrations/20260915181500_ec_sales_list_reads_the_territories.sql +222 -0
  86. package/dist/assets/migrations/20260915182000_intracom_triangular.sql +53 -0
  87. package/dist/assets/migrations/20260915182500_a_triangular_supply_says_reverse_charge.sql +99 -0
  88. package/dist/assets/migrations/20260915191200_a_document_knows_its_language.sql +633 -0
  89. package/dist/assets/migrations/20260915195000_a_price_that_holds_its_tax.sql +649 -0
  90. package/dist/assets/migrations/20260915200000_a_posting_names_its_boxes.sql +1004 -0
  91. package/dist/assets/migrations/20260916094500_a_company_files_more_than_one_declaration.sql +795 -0
  92. package/dist/assets/migrations/20260916103000_a_ledger_line_names_its_posting.sql +902 -0
  93. package/dist/assets/migrations/20260916123000_a_vocabulary_for_a_tax_that_is_not_a_vat.sql +144 -0
  94. package/dist/assets/migrations/20260916124000_a_box_can_be_a_rate_of_a_box.sql +525 -0
  95. package/dist/assets/migrations/20260916125000_a_tax_follows_the_territory.sql +1318 -0
  96. package/dist/assets/migrations/20260916126000_a_tax_point_and_its_exception.sql +1211 -0
  97. package/dist/assets/migrations/20260917090000_a_counterparty_that_learns.sql +561 -0
  98. package/dist/assets/migrations/20260917120000_what_the_money_pays.sql +545 -0
  99. package/dist/assets/migrations/20260917150000_a_filing_is_a_row.sql +488 -0
  100. package/dist/assets/migrations/20260917170000_when_it_is_due.sql +194 -0
  101. package/dist/assets/migrations/20260917180000_a_box_is_a_number_and_a_kind.sql +213 -0
  102. package/dist/assets/migrations/20260917190000_what_a_declaration_owes.sql +486 -0
  103. package/dist/assets/migrations/20260917200000_what_moved_after_it_went.sql +227 -0
  104. package/dist/assets/migrations/20260918090000_a_form_names_its_file.sql +27 -0
  105. package/dist/assets/migrations/20260918110000_a_deposit_and_what_came_back.sql +286 -0
  106. package/dist/assets/migrations/20260918113741_a_fourth_preset_is_named.sql +9 -0
  107. package/dist/assets/migrations/20260918113807_a_client_reads_and_hands_over.sql +96 -0
  108. package/dist/assets/migrations/20260918114322_two_definer_functions_check_their_caller.sql +75 -0
  109. package/dist/assets/migrations/20260918130000_every_company_somebody_keeps.sql +177 -0
  110. package/dist/assets/migrations/20260918140000_a_session_nobody_prepared.sql +40 -0
  111. package/dist/assets/migrations/20260918141107_a_line_keeps_the_tax_it_was_posted_with.sql +256 -0
  112. package/dist/assets/migrations/20260918141342_a_company_has_an_electronic_address.sql +66 -0
  113. package/dist/assets/migrations/20260918141605_an_invoice_reads_whole_from_the_views.sql +313 -0
  114. package/dist/assets/migrations/20260918141627_a_policy_asks_once.sql +132 -0
  115. package/dist/assets/migrations/20260918143352_a_suggestion_reads_the_words_once.sql +204 -0
  116. package/dist/assets/migrations/20260918143417_a_reference_of_the_caller_and_a_rehearsal.sql +115 -0
  117. package/dist/assets/migrations/20260918150712_a_company_leaves_with_its_books.sql +1119 -0
  118. package/dist/assets/migrations/20260918150931_a_statement_is_imported_once.sql +654 -0
  119. package/dist/assets/migrations/20260918161204_a_posted_document_does_not_move.sql +437 -0
  120. package/dist/assets/migrations/20260918161538_a_posted_entry_does_not_move.sql +252 -0
  121. package/dist/assets/migrations/20260918171946_an_entry_is_posted_by_post_entry.sql +289 -0
  122. package/dist/assets/migrations/20260918174312_schema_version_0_4_0.sql +53 -0
  123. package/dist/assets/modules/assets/module.json +13 -0
  124. package/dist/assets/modules/assets/supabase/migrations/20260913081447_assets.sql +1190 -0
  125. package/dist/assets/modules/assets/supabase/migrations/20260913104234_foreign_key_indexes.sql +47 -0
  126. package/dist/assets/modules/assets/supabase/migrations/20260913104500_assets_capabilities.sql +145 -0
  127. package/dist/assets/modules/assets/supabase/migrations/20260914122100_assets_round_at_the_currency.sql +564 -0
  128. package/dist/assets/modules/assets/supabase/migrations/20260914145012_assets_accounts_in_use.sql +37 -0
  129. package/dist/assets/modules/assets/supabase/migrations/20260914151530_assets_grants_its_own_rights.sql +63 -0
  130. package/dist/assets/modules/assets/supabase/migrations/20260918113912_assets_client_reads.sql +20 -0
  131. package/dist/assets/modules/assets/supabase/migrations/20260918150801_assets_leave_with_the_company.sql +41 -0
  132. package/dist/assets/modules/budgets/module.json +12 -0
  133. package/dist/assets/modules/budgets/supabase/migrations/20260913083012_budgets.sql +210 -0
  134. package/dist/assets/modules/budgets/supabase/migrations/20260913104233_foreign_key_indexes.sql +37 -0
  135. package/dist/assets/modules/budgets/supabase/migrations/20260913104501_budgets_capabilities.sql +72 -0
  136. package/dist/assets/modules/budgets/supabase/migrations/20260914122400_budgets_round_at_the_currency.sql +68 -0
  137. package/dist/assets/modules/budgets/supabase/migrations/20260914145048_budgets_accounts_in_use.sql +30 -0
  138. package/dist/assets/modules/budgets/supabase/migrations/20260914151812_budgets_grants_its_own_rights.sql +31 -0
  139. package/dist/assets/modules/budgets/supabase/migrations/20260918113954_budgets_client_reads.sql +20 -0
  140. package/dist/assets/modules/budgets/supabase/migrations/20260918150823_budgets_leave_with_the_company.sql +37 -0
  141. package/dist/assets/modules/schema/module.1.json +69 -0
  142. package/dist/assets/seed/00_currencies.sql +15 -0
  143. package/dist/assets/seed/00_territories.sql +280 -0
  144. package/dist/assets/seed/05_framework_generic.sql +110 -0
  145. package/dist/assets/seed/10_pack_be.sql +1284 -0
  146. package/dist/assets/seed/11_pack_fr.sql +1112 -0
  147. package/dist/assets/seed/12_pack_lu.sql +2484 -0
  148. package/dist/assets/seed/13_pack_ee.sql +733 -0
  149. package/dist/assets/seed/14_pack_gb.sql +796 -0
  150. package/dist/assets/seed/15_pack_us.sql +751 -0
  151. package/dist/assets/seed/90_demo_company.sql +368 -0
  152. package/dist/assets/seed/modules/assets/10_pack_be.sql +58 -0
  153. package/dist/assets/seed/modules/assets/11_pack_fr.sql +57 -0
  154. package/dist/assets/seed/modules/assets/14_pack_gb.sql +58 -0
  155. package/dist/assets/seed/modules/assets/15_pack_us.sql +60 -0
  156. package/dist/auth.d.ts +59 -0
  157. package/dist/auth.d.ts.map +1 -0
  158. package/dist/auth.js +134 -0
  159. package/dist/auth.js.map +1 -0
  160. package/dist/bin.d.ts +6 -0
  161. package/dist/bin.d.ts.map +1 -0
  162. package/dist/bin.js +8 -0
  163. package/dist/bin.js.map +1 -0
  164. package/dist/books.d.ts +60 -0
  165. package/dist/books.d.ts.map +1 -0
  166. package/dist/books.js +168 -0
  167. package/dist/books.js.map +1 -0
  168. package/dist/bootstrap.d.ts +236 -0
  169. package/dist/bootstrap.d.ts.map +1 -0
  170. package/dist/bootstrap.js +459 -0
  171. package/dist/bootstrap.js.map +1 -0
  172. package/dist/bundle.d.ts +27 -0
  173. package/dist/bundle.d.ts.map +1 -0
  174. package/dist/bundle.js +47 -0
  175. package/dist/bundle.js.map +1 -0
  176. package/dist/checklist.d.ts +35 -0
  177. package/dist/checklist.d.ts.map +1 -0
  178. package/dist/checklist.js +64 -0
  179. package/dist/checklist.js.map +1 -0
  180. package/dist/cli.d.ts +14 -0
  181. package/dist/cli.d.ts.map +1 -0
  182. package/dist/cli.js +318 -0
  183. package/dist/cli.js.map +1 -0
  184. package/dist/commands/company.d.ts +59 -0
  185. package/dist/commands/company.d.ts.map +1 -0
  186. package/dist/commands/company.js +287 -0
  187. package/dist/commands/company.js.map +1 -0
  188. package/dist/commands/contact.d.ts +9 -0
  189. package/dist/commands/contact.d.ts.map +1 -0
  190. package/dist/commands/contact.js +82 -0
  191. package/dist/commands/contact.js.map +1 -0
  192. package/dist/commands/demo.d.ts +19 -0
  193. package/dist/commands/demo.d.ts.map +1 -0
  194. package/dist/commands/demo.js +72 -0
  195. package/dist/commands/demo.js.map +1 -0
  196. package/dist/commands/doctor.d.ts +12 -0
  197. package/dist/commands/doctor.d.ts.map +1 -0
  198. package/dist/commands/doctor.js +68 -0
  199. package/dist/commands/doctor.js.map +1 -0
  200. package/dist/commands/document.d.ts +17 -0
  201. package/dist/commands/document.d.ts.map +1 -0
  202. package/dist/commands/document.js +217 -0
  203. package/dist/commands/document.js.map +1 -0
  204. package/dist/commands/init.d.ts +31 -0
  205. package/dist/commands/init.d.ts.map +1 -0
  206. package/dist/commands/init.js +535 -0
  207. package/dist/commands/init.js.map +1 -0
  208. package/dist/commands/login.d.ts +24 -0
  209. package/dist/commands/login.d.ts.map +1 -0
  210. package/dist/commands/login.js +128 -0
  211. package/dist/commands/login.js.map +1 -0
  212. package/dist/commands/migrate.d.ts +30 -0
  213. package/dist/commands/migrate.d.ts.map +1 -0
  214. package/dist/commands/migrate.js +115 -0
  215. package/dist/commands/migrate.js.map +1 -0
  216. package/dist/commands/module.d.ts +32 -0
  217. package/dist/commands/module.d.ts.map +1 -0
  218. package/dist/commands/module.js +285 -0
  219. package/dist/commands/module.js.map +1 -0
  220. package/dist/commands/pack.d.ts +22 -0
  221. package/dist/commands/pack.d.ts.map +1 -0
  222. package/dist/commands/pack.js +481 -0
  223. package/dist/commands/pack.js.map +1 -0
  224. package/dist/commands/payment.d.ts +15 -0
  225. package/dist/commands/payment.d.ts.map +1 -0
  226. package/dist/commands/payment.js +97 -0
  227. package/dist/commands/payment.js.map +1 -0
  228. package/dist/commands/register.d.ts +20 -0
  229. package/dist/commands/register.d.ts.map +1 -0
  230. package/dist/commands/register.js +134 -0
  231. package/dist/commands/register.js.map +1 -0
  232. package/dist/commands/status.d.ts +8 -0
  233. package/dist/commands/status.d.ts.map +1 -0
  234. package/dist/commands/status.js +134 -0
  235. package/dist/commands/status.js.map +1 -0
  236. package/dist/commands/whoami.d.ts +21 -0
  237. package/dist/commands/whoami.d.ts.map +1 -0
  238. package/dist/commands/whoami.js +133 -0
  239. package/dist/commands/whoami.js.map +1 -0
  240. package/dist/company.d.ts +16 -0
  241. package/dist/company.d.ts.map +1 -0
  242. package/dist/company.js +26 -0
  243. package/dist/company.js.map +1 -0
  244. package/dist/config.d.ts +24 -0
  245. package/dist/config.d.ts.map +1 -0
  246. package/dist/config.js +50 -0
  247. package/dist/config.js.map +1 -0
  248. package/dist/connection.d.ts +79 -0
  249. package/dist/connection.d.ts.map +1 -0
  250. package/dist/connection.js +116 -0
  251. package/dist/connection.js.map +1 -0
  252. package/dist/context.d.ts +47 -0
  253. package/dist/context.d.ts.map +1 -0
  254. package/dist/context.js +93 -0
  255. package/dist/context.js.map +1 -0
  256. package/dist/doctor.d.ts +45 -0
  257. package/dist/doctor.d.ts.map +1 -0
  258. package/dist/doctor.js +448 -0
  259. package/dist/doctor.js.map +1 -0
  260. package/dist/grants.d.ts +88 -0
  261. package/dist/grants.d.ts.map +1 -0
  262. package/dist/grants.js +174 -0
  263. package/dist/grants.js.map +1 -0
  264. package/dist/identity.d.ts +54 -0
  265. package/dist/identity.d.ts.map +1 -0
  266. package/dist/identity.js +132 -0
  267. package/dist/identity.js.map +1 -0
  268. package/dist/index.d.ts +44 -0
  269. package/dist/index.d.ts.map +1 -0
  270. package/dist/index.js +43 -0
  271. package/dist/index.js.map +1 -0
  272. package/dist/inventory.d.ts +155 -0
  273. package/dist/inventory.d.ts.map +1 -0
  274. package/dist/inventory.js +303 -0
  275. package/dist/inventory.js.map +1 -0
  276. package/dist/migrations.d.ts +76 -0
  277. package/dist/migrations.d.ts.map +1 -0
  278. package/dist/migrations.js +226 -0
  279. package/dist/migrations.js.map +1 -0
  280. package/dist/module/read.d.ts +91 -0
  281. package/dist/module/read.d.ts.map +1 -0
  282. package/dist/module/read.js +172 -0
  283. package/dist/module/read.js.map +1 -0
  284. package/dist/output.d.ts +110 -0
  285. package/dist/output.d.ts.map +1 -0
  286. package/dist/output.js +173 -0
  287. package/dist/output.js.map +1 -0
  288. package/dist/pack/certification.d.ts +27 -0
  289. package/dist/pack/certification.d.ts.map +1 -0
  290. package/dist/pack/certification.js +38 -0
  291. package/dist/pack/certification.js.map +1 -0
  292. package/dist/pack/compile.d.ts +75 -0
  293. package/dist/pack/compile.d.ts.map +1 -0
  294. package/dist/pack/compile.js +801 -0
  295. package/dist/pack/compile.js.map +1 -0
  296. package/dist/pack/filing.d.ts +48 -0
  297. package/dist/pack/filing.d.ts.map +1 -0
  298. package/dist/pack/filing.js +56 -0
  299. package/dist/pack/filing.js.map +1 -0
  300. package/dist/pack/read.d.ts +766 -0
  301. package/dist/pack/read.d.ts.map +1 -0
  302. package/dist/pack/read.js +2336 -0
  303. package/dist/pack/read.js.map +1 -0
  304. package/dist/pack/schema.d.ts +26 -0
  305. package/dist/pack/schema.d.ts.map +1 -0
  306. package/dist/pack/schema.js +181 -0
  307. package/dist/pack/schema.js.map +1 -0
  308. package/dist/pack/territories.d.ts +98 -0
  309. package/dist/pack/territories.d.ts.map +1 -0
  310. package/dist/pack/territories.js +0 -0
  311. package/dist/pack/territories.js.map +1 -0
  312. package/dist/pack/upgrade.d.ts +86 -0
  313. package/dist/pack/upgrade.d.ts.map +1 -0
  314. package/dist/pack/upgrade.js +76 -0
  315. package/dist/pack/upgrade.js.map +1 -0
  316. package/dist/pack/vat-codes.d.ts +273 -0
  317. package/dist/pack/vat-codes.d.ts.map +1 -0
  318. package/dist/pack/vat-codes.js +513 -0
  319. package/dist/pack/vat-codes.js.map +1 -0
  320. package/dist/profiles.d.ts +67 -0
  321. package/dist/profiles.d.ts.map +1 -0
  322. package/dist/profiles.js +187 -0
  323. package/dist/profiles.js.map +1 -0
  324. package/dist/prompt.d.ts +40 -0
  325. package/dist/prompt.d.ts.map +1 -0
  326. package/dist/prompt.js +120 -0
  327. package/dist/prompt.js.map +1 -0
  328. package/dist/registry.d.ts +84 -0
  329. package/dist/registry.d.ts.map +1 -0
  330. package/dist/registry.js +104 -0
  331. package/dist/registry.js.map +1 -0
  332. package/dist/rest.d.ts +81 -0
  333. package/dist/rest.d.ts.map +1 -0
  334. package/dist/rest.js +245 -0
  335. package/dist/rest.js.map +1 -0
  336. package/dist/schema.d.ts +15 -0
  337. package/dist/schema.d.ts.map +1 -0
  338. package/dist/schema.js +15 -0
  339. package/dist/schema.js.map +1 -0
  340. package/dist/seeds.d.ts +27 -0
  341. package/dist/seeds.d.ts.map +1 -0
  342. package/dist/seeds.js +47 -0
  343. package/dist/seeds.js.map +1 -0
  344. package/dist/session.d.ts +39 -0
  345. package/dist/session.d.ts.map +1 -0
  346. package/dist/session.js +92 -0
  347. package/dist/session.js.map +1 -0
  348. package/dist/sql.d.ts +48 -0
  349. package/dist/sql.d.ts.map +1 -0
  350. package/dist/sql.js +112 -0
  351. package/dist/sql.js.map +1 -0
  352. package/dist/status.d.ts +94 -0
  353. package/dist/status.d.ts.map +1 -0
  354. package/dist/status.js +120 -0
  355. package/dist/status.js.map +1 -0
  356. package/dist/ui.d.ts +55 -0
  357. package/dist/ui.d.ts.map +1 -0
  358. package/dist/ui.js +114 -0
  359. package/dist/ui.js.map +1 -0
  360. package/package.json +29 -0
  361. package/schema/output.1.json +613 -0
@@ -0,0 +1,217 @@
1
+ /**
2
+ * The verbs on a document: `invoice new`, `invoice line add`, `post`,
3
+ * `doc list` and `doc show`.
4
+ *
5
+ * Each is one function of the core — `createDocument()`, `addDocumentLine()`,
6
+ * `postDocument()`, `listDocuments()`, `getDocument()` — which the MCP server
7
+ * calls for `create_document`, `post_document`, `list_documents` and
8
+ * `get_document`. What is printed is what came back: the totals are the
9
+ * database's, the entry is the one `post_document()` wrote, and a refusal is
10
+ * left to `output.ts` to repeat word for word.
11
+ */
12
+ import { DOCUMENT_STATES, DOC_TYPES, addDocumentLine, createDocument, getDocument, listDocuments, postDocument, resolveContact, resolveDocument, } from '@ekwo-ai/core';
13
+ import { UsageError, boolFlag, numberFlag, rejectUnknownFlags, stringFlag, stringFlags } from '../args.js';
14
+ import { BOOKS_FLAGS, CREATE_FLAGS, LINE_FIELDS, checkedLines, given, openBooks, parseLine, required, stdinDocument, today, } from '../books.js';
15
+ import { setResult } from '../output.js';
16
+ import { dim, heading, line, note, pairs, step, table } from '../ui.js';
17
+ const NEW_FLAGS = [
18
+ ...CREATE_FLAGS, 'contact', 'line', 'type', 'date', 'due', 'accounting-date', 'number', 'supplier-ref', 'currency', 'payment-ref',
19
+ ];
20
+ const NEW_FIELDS = [
21
+ 'doc_type', 'contact_id', 'contact', 'document_date', 'due_date', 'accounting_date', 'number', 'supplier_reference',
22
+ 'currency_code', 'journal_id', 'payment_reference', 'client_ref', 'lines',
23
+ ];
24
+ const LINE_ADD_FLAGS = [
25
+ ...BOOKS_FLAGS, 'stdin', 'name', 'description', 'qty', 'unit', 'price', 'amount', 'discount', 'product', 'account', 'tax',
26
+ ];
27
+ const POST_FLAGS = [...BOOKS_FLAGS, 'dry-run'];
28
+ const LIST_FLAGS = [...BOOKS_FLAGS, 'unpaid', 'since', 'until', 'type', 'state', 'contact', 'limit'];
29
+ function oneOf(value, allowed, what) {
30
+ if (value === undefined)
31
+ return undefined;
32
+ if (typeof value !== 'string' || !allowed.includes(value)) {
33
+ throw new UsageError(`bad_value: ${what} is one of ${allowed.join(', ')}, got "${String(value)}".`);
34
+ }
35
+ return value;
36
+ }
37
+ const text = (value) => (value === null || value === undefined ? '' : String(value));
38
+ /** A document as it came back, for a person. Every figure is the database's. */
39
+ function printDocument(result) {
40
+ const document = (result['document'] ?? {});
41
+ pairs([
42
+ ['document', `${text(document['doc_type'])} ${text(document['number']) || dim('no number yet')} ${dim(text(document['id']))}`],
43
+ ['contact', text(document['contact_name'])],
44
+ ['date', text(document['document_date'])],
45
+ ['state', `${text(document['state'])}, ${text(document['payment_state'])}`],
46
+ ['untaxed', `${text(document['amount_untaxed'])} ${text(document['currency_code'])}`],
47
+ ['tax', `${text(document['amount_tax'])} ${text(document['currency_code'])}`],
48
+ ['total', `${text(document['amount_total'])} ${text(document['currency_code'])}`],
49
+ ]);
50
+ const lines = (result['lines'] ?? []);
51
+ if (lines.length > 0) {
52
+ line();
53
+ table([{ title: 'line' }, { title: 'qty', align: 'right' }, { title: 'price', align: 'right' }, { title: 'account' }, { title: 'tax' }], lines.map((l) => [
54
+ text(l['name']),
55
+ text(l['quantity']),
56
+ text(l['unit_price']),
57
+ text(l['account']?.['code']),
58
+ text(l['tax']?.['code']),
59
+ ]));
60
+ }
61
+ }
62
+ function printEntry(result) {
63
+ const entry = (result['entry'] ?? {});
64
+ pairs([
65
+ ['entry', `${text(entry['number'])} ${text(entry['entry_date'])}`],
66
+ ['debit', text(entry['total_debit'])],
67
+ ['credit', text(entry['total_credit'])],
68
+ ]);
69
+ const lines = (result['entry_lines'] ?? []);
70
+ line();
71
+ table([{ title: 'account' }, { title: 'label' }, { title: 'debit', align: 'right' }, { title: 'credit', align: 'right' }], lines.map((l) => [
72
+ text(l['account_code'] ?? l['account']?.['code']),
73
+ text(l['name']),
74
+ text(l['debit']),
75
+ text(l['credit']),
76
+ ]));
77
+ }
78
+ export async function invoiceCommand(args, deps = {}) {
79
+ const [action, second] = args.positional;
80
+ if (action === 'new')
81
+ return invoiceNew(args, deps);
82
+ if (action === 'line' && second === 'add')
83
+ return lineAdd(args, deps);
84
+ throw new UsageError('usage: ekwo invoice new --contact <name|id> --line "name=…,price=…,tax=…" [--type --date --ref] | ekwo invoice line add <document> --price <amount> [--name --account --tax]');
85
+ }
86
+ async function invoiceNew(args, deps) {
87
+ rejectUnknownFlags(args, NEW_FLAGS);
88
+ const input = await stdinDocument(args, deps, NEW_FIELDS);
89
+ const { backend, company } = await openBooks(args, deps);
90
+ const typed = stringFlags(args, 'line').map(parseLine);
91
+ const lines = typed.length > 0 ? typed : input['lines'] === undefined ? [] : checkedLines(input['lines']);
92
+ if (lines.length === 0) {
93
+ throw new UsageError('missing_argument: a document needs a line. Pass --line "name=…,price=…", or `lines` under --stdin.');
94
+ }
95
+ const wanted = stringFlag(args, 'contact') ?? input['contact_id'] ?? input['contact'];
96
+ const contact = await resolveContact(backend, company.id, required(wanted, 'who the document is for', '--contact'));
97
+ // The one value this command supplies when nobody gave it, and it says so.
98
+ const date = stringFlag(args, 'date') ?? input['document_date'];
99
+ const documentDate = date ?? today();
100
+ const fields = given({
101
+ company_id: company.id,
102
+ doc_type: oneOf(stringFlag(args, 'type') ?? input['doc_type'], DOC_TYPES, '--type') ?? 'sale_invoice',
103
+ contact_id: contact.id,
104
+ document_date: documentDate,
105
+ due_date: stringFlag(args, 'due') ?? input['due_date'],
106
+ accounting_date: stringFlag(args, 'accounting-date') ?? input['accounting_date'],
107
+ number: stringFlag(args, 'number') ?? input['number'],
108
+ supplier_reference: stringFlag(args, 'supplier-ref') ?? input['supplier_reference'],
109
+ currency_code: stringFlag(args, 'currency') ?? input['currency_code'],
110
+ journal_id: input['journal_id'],
111
+ payment_reference: stringFlag(args, 'payment-ref') ?? input['payment_reference'],
112
+ client_ref: stringFlag(args, 'ref') ?? input['client_ref'],
113
+ lines: lines,
114
+ });
115
+ const result = (await createDocument(backend, fields));
116
+ setResult(result);
117
+ heading(`Draft, in ${company.name}`);
118
+ if (result['replayed'] === true)
119
+ note(dim(`already created under the reference ${text(fields.client_ref)}; nothing was written twice`));
120
+ if (date === undefined)
121
+ note(dim(`dated today, ${documentDate}: no --date was given`));
122
+ printDocument(result);
123
+ line();
124
+ note(dim('A draft books nothing. `ekwo post <document>` does, and `--dry-run` shows the entry first.'));
125
+ return 0;
126
+ }
127
+ async function lineAdd(args, deps) {
128
+ rejectUnknownFlags(args, LINE_ADD_FLAGS);
129
+ const input = await stdinDocument(args, deps, LINE_FIELDS);
130
+ const { backend, company } = await openBooks(args, deps);
131
+ const documentId = await resolveDocument(backend, company.id, required(args.positional[2], 'the document', '<document>'));
132
+ const lineArgs = given({
133
+ ...input,
134
+ name: stringFlag(args, 'name') ?? input['name'],
135
+ description: stringFlag(args, 'description') ?? input['description'],
136
+ quantity: stringFlag(args, 'qty') ?? input['quantity'],
137
+ unit_code: stringFlag(args, 'unit') ?? input['unit_code'],
138
+ unit_price: stringFlag(args, 'price') ?? stringFlag(args, 'amount') ?? input['unit_price'],
139
+ discount_percent: stringFlag(args, 'discount') ?? input['discount_percent'],
140
+ product_code: stringFlag(args, 'product') ?? input['product_code'],
141
+ account_code: stringFlag(args, 'account') ?? input['account_code'],
142
+ tax_code: stringFlag(args, 'tax') ?? input['tax_code'],
143
+ });
144
+ const result = (await addDocumentLine(backend, { document_id: documentId, line: lineArgs }));
145
+ setResult(result);
146
+ heading(`Draft, in ${company.name}`);
147
+ printDocument(result);
148
+ return 0;
149
+ }
150
+ export async function postCommand(args, deps = {}) {
151
+ rejectUnknownFlags(args, POST_FLAGS);
152
+ const { backend, company } = await openBooks(args, deps);
153
+ const documentId = await resolveDocument(backend, company.id, required(args.positional[0], 'the document to post', '<document>'));
154
+ const dryRun = boolFlag(args, 'dry-run');
155
+ const result = (await postDocument(backend, { document_id: documentId, dry_run: dryRun }));
156
+ setResult({ document_id: documentId, ...result });
157
+ heading(dryRun ? `What posting would write, in ${company.name}` : `Posted, in ${company.name}`);
158
+ printEntry(result);
159
+ line();
160
+ note(dim(text(result['note'])));
161
+ return 0;
162
+ }
163
+ export async function docCommand(args, deps = {}) {
164
+ const action = args.positional[0];
165
+ if (action === 'list')
166
+ return docList(args, deps);
167
+ if (action === 'show')
168
+ return docShow(args, deps);
169
+ throw new UsageError('usage: ekwo doc list [--unpaid --since <date> --until <date> --type --state --contact] | ekwo doc show <document>');
170
+ }
171
+ async function docList(args, deps) {
172
+ rejectUnknownFlags(args, LIST_FLAGS);
173
+ const { backend, company } = await openBooks(args, deps);
174
+ const contact = stringFlag(args, 'contact');
175
+ const filters = given({
176
+ company_id: company.id,
177
+ doc_type: oneOf(stringFlag(args, 'type'), DOC_TYPES, '--type'),
178
+ state: oneOf(stringFlag(args, 'state'), DOCUMENT_STATES, '--state'),
179
+ contact_id: contact === undefined ? undefined : (await resolveContact(backend, company.id, contact)).id,
180
+ from: stringFlag(args, 'since'),
181
+ to: stringFlag(args, 'until'),
182
+ unpaid: boolFlag(args, 'unpaid') ? true : undefined,
183
+ limit: numberFlag(args, 'limit'),
184
+ });
185
+ const result = (await listDocuments(backend, filters));
186
+ setResult(result);
187
+ heading(`Documents of ${company.name}`);
188
+ if (result.documents.length === 0)
189
+ note(dim('None.'));
190
+ else {
191
+ table([
192
+ { title: 'date' }, { title: 'type' }, { title: 'number' }, { title: 'contact' }, { title: 'state' },
193
+ { title: 'total', align: 'right' }, { title: 'open', align: 'right' }, { title: '' }, { title: 'id' },
194
+ ], result.documents.map((d) => [
195
+ text(d['document_date']), text(d['doc_type']), text(d['number']), text(d['contact_name']),
196
+ `${text(d['state'])}/${text(d['payment_state'])}`, text(d['amount_total']), text(d['amount_residual']),
197
+ text(d['currency_code']), dim(text(d['id'])),
198
+ ]));
199
+ }
200
+ return 0;
201
+ }
202
+ async function docShow(args, deps) {
203
+ rejectUnknownFlags(args, BOOKS_FLAGS);
204
+ const { backend, company } = await openBooks(args, deps);
205
+ const documentId = await resolveDocument(backend, company.id, required(args.positional[1], 'the document', '<document>'));
206
+ const result = (await getDocument(backend, { document_id: documentId }));
207
+ setResult(result);
208
+ heading(`Document, in ${company.name}`);
209
+ printDocument(result);
210
+ if (result['entry'] !== null && result['entry'] !== undefined) {
211
+ line();
212
+ step('booked');
213
+ printEntry({ entry: result['entry'], entry_lines: result['entry_lines'].map((l) => ({ ...l, account_code: l['account_name'] })) });
214
+ }
215
+ return 0;
216
+ }
217
+ //# sourceMappingURL=document.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"document.js","sourceRoot":"","sources":["../../src/commands/document.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,31 @@
1
+ /**
2
+ * `ekwo init` — a Supabase project you own, turned into a set of books.
3
+ *
4
+ * Six things happen, in this order:
5
+ *
6
+ * 1. the migrations are applied, and recorded the way `supabase db push`
7
+ * records them;
8
+ * 2. the reference seeds are applied — currencies, the charts of accounts,
9
+ * the VAT codes;
10
+ * 3. the first administrator is created in *your* Supabase Auth, because a
11
+ * superuser connection cannot be a signed-in user (see `../auth.ts`);
12
+ * 4. the installation sequence runs: instance, administrator, company,
13
+ * ownership, country template, first financial year;
14
+ * 5. `ekwo.json` is written, with nothing secret in it;
15
+ * 6. registering with Ekwo is offered, and the default answer is no.
16
+ *
17
+ * Every step is safe to run twice. Running `ekwo init` again on a set-up
18
+ * project reports what was already there and creates nothing a second time.
19
+ */
20
+ import { type ParsedArgs } from '../args.js';
21
+ import { type CreateAuthUser } from '../auth.js';
22
+ import { type CommandDeps } from '../context.js';
23
+ export declare const INIT_FLAGS: readonly ["db-url", "db-password", "db-region", "project-ref", "supabase-url", "service-role-key", "country", "chart", "org", "company", "admin-email", "admin-password", "admin-user-id", "fiscal-year", "fiscal-year-start", "currency", "language", "vat-period", "filing-period", "iban", "bic", "bank-name", "demo", "register", "register-email", "registry-url", "yes"];
24
+ export interface InitDeps extends CommandDeps {
25
+ createAuthUser?: CreateAuthUser;
26
+ fetchImpl?: typeof globalThis.fetch;
27
+ /** Where `ekwo.json` is written. The working directory, unless a test says otherwise. */
28
+ cwd?: string;
29
+ }
30
+ export declare function initCommand(args: ParsedArgs, deps?: InitDeps): Promise<number>;
31
+ //# sourceMappingURL=init.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,EAOL,KAAK,UAAU,EAChB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAkB,KAAK,cAAc,EAAE,MAAM,YAAY,CAAC;AAgBjE,OAAO,EAAkC,KAAK,WAAW,EAAE,MAAM,eAAe,CAAC;AAWjF,eAAO,MAAM,UAAU,gXAuBb,CAAC;AAEX,MAAM,WAAW,QAAS,SAAQ,WAAW;IAC3C,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,SAAS,CAAC,EAAE,OAAO,UAAU,CAAC,KAAK,CAAC;IACpC,yFAAyF;IACzF,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED,wBAAsB,WAAW,CAAC,IAAI,EAAE,UAAU,EAAE,IAAI,GAAE,QAAa,GAAG,OAAO,CAAC,MAAM,CAAC,CAkZxF"}