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.
- package/README.md +873 -0
- package/dist/args.d.ts +57 -0
- package/dist/args.d.ts.map +1 -0
- package/dist/args.js +134 -0
- package/dist/args.js.map +1 -0
- package/dist/assets/expected-objects.json +9432 -0
- package/dist/assets/migrations/20260911120000_core_companies.sql +260 -0
- package/dist/assets/migrations/20260911120100_accounts_journals.sql +211 -0
- package/dist/assets/migrations/20260911120200_contacts.sql +90 -0
- package/dist/assets/migrations/20260911120300_taxes.sql +146 -0
- package/dist/assets/migrations/20260911120400_entries.sql +338 -0
- package/dist/assets/migrations/20260911120500_documents.sql +279 -0
- package/dist/assets/migrations/20260911120600_payments_reconciliation.sql +251 -0
- package/dist/assets/migrations/20260911120700_bank.sql +178 -0
- package/dist/assets/migrations/20260911120800_analytics_attachments.sql +128 -0
- package/dist/assets/migrations/20260911120900_post_document.sql +279 -0
- package/dist/assets/migrations/20260911121000_reporting.sql +235 -0
- package/dist/assets/migrations/20260911121100_country_templates.sql +226 -0
- package/dist/assets/migrations/20260911121200_fec.sql +71 -0
- package/dist/assets/migrations/20260911130000_instance.sql +77 -0
- package/dist/assets/migrations/20260911130100_instance_members.sql +224 -0
- package/dist/assets/migrations/20260911140000_instance_admins.sql +112 -0
- package/dist/assets/migrations/20260911160000_tax_posting_templates_unique.sql +17 -0
- package/dist/assets/migrations/20260911170000_document_amount_paid.sql +82 -0
- package/dist/assets/migrations/20260911173000_post_payment.sql +122 -0
- package/dist/assets/migrations/20260911173100_sequence_counters_under_rls.sql +84 -0
- package/dist/assets/migrations/20260911183000_country_journal_defaults.sql +143 -0
- package/dist/assets/migrations/20260911193853_line_account_defaults.sql +274 -0
- package/dist/assets/migrations/20260911195054_products.sql +221 -0
- package/dist/assets/migrations/20260911210131_anon_surface.sql +85 -0
- package/dist/assets/migrations/20260912074712_country_packs.sql +318 -0
- package/dist/assets/migrations/20260912080311_report_code_and_region.sql +198 -0
- package/dist/assets/migrations/20260912081014_pack_certification_maintained.sql +31 -0
- package/dist/assets/migrations/20260912081015_pack_certification_backfill.sql +16 -0
- package/dist/assets/migrations/20260912090407_tax_report_boxes.sql +329 -0
- package/dist/assets/migrations/20260912091917_tax_on_base_value.sql +25 -0
- package/dist/assets/migrations/20260912091918_tax_engine_columns.sql +776 -0
- package/dist/assets/migrations/20260912094412_opening_and_closing.sql +759 -0
- package/dist/assets/migrations/20260912095825_charts_of_accounts.sql +326 -0
- package/dist/assets/migrations/20260912100412_financial_statements.sql +632 -0
- package/dist/assets/migrations/20260912104719_one_formula_evaluator.sql +209 -0
- package/dist/assets/migrations/20260912105720_entry_kind_appropriation.sql +26 -0
- package/dist/assets/migrations/20260912105721_appropriation_entry_kind.sql +444 -0
- package/dist/assets/migrations/20260912111751_document_rules.sql +274 -0
- package/dist/assets/migrations/20260912112132_cash_basis_vat_and_fx.sql +1189 -0
- package/dist/assets/migrations/20260913074512_modules.sql +493 -0
- package/dist/assets/migrations/20260913075903_asset_disposal_roles.sql +47 -0
- package/dist/assets/migrations/20260913083216_capabilities.sql +637 -0
- package/dist/assets/migrations/20260913083901_company_invitations.sql +262 -0
- package/dist/assets/migrations/20260913084402_user_preferences.sql +376 -0
- package/dist/assets/migrations/20260913084847_company_profile.sql +261 -0
- package/dist/assets/migrations/20260913085436_numbering_reads_the_pack.sql +235 -0
- package/dist/assets/migrations/20260913085932_api_keys.sql +303 -0
- package/dist/assets/migrations/20260913090216_fiscal_year_bounds.sql +159 -0
- package/dist/assets/migrations/20260913092527_entries_import.sql +219 -0
- package/dist/assets/migrations/20260913101536_null_safe_guards.sql +188 -0
- package/dist/assets/migrations/20260913102115_installer_is_named.sql +462 -0
- package/dist/assets/migrations/20260913102758_no_currency_default.sql +138 -0
- package/dist/assets/migrations/20260913103355_cash_basis_needs_a_box.sql +453 -0
- package/dist/assets/migrations/20260913104014_aged_balance_named_group.sql +79 -0
- package/dist/assets/migrations/20260913104232_foreign_key_indexes.sql +144 -0
- package/dist/assets/migrations/20260913105120_declared_no_reader.sql +41 -0
- package/dist/assets/migrations/20260913111407_pack_languages.sql +223 -0
- package/dist/assets/migrations/20260913112233_schema_comments_for_a_reader.sql +27 -0
- package/dist/assets/migrations/20260913114535_fec_opening_balances.sql +307 -0
- package/dist/assets/migrations/20260914103412_audit_log.sql +509 -0
- package/dist/assets/migrations/20260914111907_pack_upgrade.sql +428 -0
- package/dist/assets/migrations/20260914120500_rounding_reads_the_currency.sql +206 -0
- package/dist/assets/migrations/20260914121200_amounts_round_at_the_currency.sql +2403 -0
- package/dist/assets/migrations/20260914134325_schema_version_0_2_0.sql +36 -0
- package/dist/assets/migrations/20260914143915_accounts_in_use.sql +428 -0
- package/dist/assets/migrations/20260914144731_account_code_frozen.sql +99 -0
- package/dist/assets/migrations/20260914151207_schema_grants_its_own_rights.sql +284 -0
- package/dist/assets/migrations/20260914152840_pack_upgrade_records_its_own_line.sql +237 -0
- package/dist/assets/migrations/20260914163943_declaration_periodicity.sql +349 -0
- package/dist/assets/migrations/20260915094000_foreign_services_received.sql +37 -0
- package/dist/assets/migrations/20260915094500_mentions_read_a_foreign_service.sql +72 -0
- package/dist/assets/migrations/20260915153000_document_shares.sql +568 -0
- package/dist/assets/migrations/20260915160000_ec_sales_list.sql +181 -0
- package/dist/assets/migrations/20260915161842_pack_sources.sql +56 -0
- package/dist/assets/migrations/20260915170500_schema_version_0_3_0.sql +45 -0
- package/dist/assets/migrations/20260915174500_a_vat_category_is_a_code.sql +177 -0
- package/dist/assets/migrations/20260915180000_document_rule_references.sql +85 -0
- package/dist/assets/migrations/20260915181000_territories.sql +342 -0
- package/dist/assets/migrations/20260915181500_ec_sales_list_reads_the_territories.sql +222 -0
- package/dist/assets/migrations/20260915182000_intracom_triangular.sql +53 -0
- package/dist/assets/migrations/20260915182500_a_triangular_supply_says_reverse_charge.sql +99 -0
- package/dist/assets/migrations/20260915191200_a_document_knows_its_language.sql +633 -0
- package/dist/assets/migrations/20260915195000_a_price_that_holds_its_tax.sql +649 -0
- package/dist/assets/migrations/20260915200000_a_posting_names_its_boxes.sql +1004 -0
- package/dist/assets/migrations/20260916094500_a_company_files_more_than_one_declaration.sql +795 -0
- package/dist/assets/migrations/20260916103000_a_ledger_line_names_its_posting.sql +902 -0
- package/dist/assets/migrations/20260916123000_a_vocabulary_for_a_tax_that_is_not_a_vat.sql +144 -0
- package/dist/assets/migrations/20260916124000_a_box_can_be_a_rate_of_a_box.sql +525 -0
- package/dist/assets/migrations/20260916125000_a_tax_follows_the_territory.sql +1318 -0
- package/dist/assets/migrations/20260916126000_a_tax_point_and_its_exception.sql +1211 -0
- package/dist/assets/migrations/20260917090000_a_counterparty_that_learns.sql +561 -0
- package/dist/assets/migrations/20260917120000_what_the_money_pays.sql +545 -0
- package/dist/assets/migrations/20260917150000_a_filing_is_a_row.sql +488 -0
- package/dist/assets/migrations/20260917170000_when_it_is_due.sql +194 -0
- package/dist/assets/migrations/20260917180000_a_box_is_a_number_and_a_kind.sql +213 -0
- package/dist/assets/migrations/20260917190000_what_a_declaration_owes.sql +486 -0
- package/dist/assets/migrations/20260917200000_what_moved_after_it_went.sql +227 -0
- package/dist/assets/migrations/20260918090000_a_form_names_its_file.sql +27 -0
- package/dist/assets/migrations/20260918110000_a_deposit_and_what_came_back.sql +286 -0
- package/dist/assets/migrations/20260918113741_a_fourth_preset_is_named.sql +9 -0
- package/dist/assets/migrations/20260918113807_a_client_reads_and_hands_over.sql +96 -0
- package/dist/assets/migrations/20260918114322_two_definer_functions_check_their_caller.sql +75 -0
- package/dist/assets/migrations/20260918130000_every_company_somebody_keeps.sql +177 -0
- package/dist/assets/migrations/20260918140000_a_session_nobody_prepared.sql +40 -0
- package/dist/assets/migrations/20260918141107_a_line_keeps_the_tax_it_was_posted_with.sql +256 -0
- package/dist/assets/migrations/20260918141342_a_company_has_an_electronic_address.sql +66 -0
- package/dist/assets/migrations/20260918141605_an_invoice_reads_whole_from_the_views.sql +313 -0
- package/dist/assets/migrations/20260918141627_a_policy_asks_once.sql +132 -0
- package/dist/assets/migrations/20260918143352_a_suggestion_reads_the_words_once.sql +204 -0
- package/dist/assets/migrations/20260918143417_a_reference_of_the_caller_and_a_rehearsal.sql +115 -0
- package/dist/assets/migrations/20260918150712_a_company_leaves_with_its_books.sql +1119 -0
- package/dist/assets/migrations/20260918150931_a_statement_is_imported_once.sql +654 -0
- package/dist/assets/migrations/20260918161204_a_posted_document_does_not_move.sql +437 -0
- package/dist/assets/migrations/20260918161538_a_posted_entry_does_not_move.sql +252 -0
- package/dist/assets/migrations/20260918171946_an_entry_is_posted_by_post_entry.sql +289 -0
- package/dist/assets/migrations/20260918174312_schema_version_0_4_0.sql +53 -0
- package/dist/assets/modules/assets/module.json +13 -0
- package/dist/assets/modules/assets/supabase/migrations/20260913081447_assets.sql +1190 -0
- package/dist/assets/modules/assets/supabase/migrations/20260913104234_foreign_key_indexes.sql +47 -0
- package/dist/assets/modules/assets/supabase/migrations/20260913104500_assets_capabilities.sql +145 -0
- package/dist/assets/modules/assets/supabase/migrations/20260914122100_assets_round_at_the_currency.sql +564 -0
- package/dist/assets/modules/assets/supabase/migrations/20260914145012_assets_accounts_in_use.sql +37 -0
- package/dist/assets/modules/assets/supabase/migrations/20260914151530_assets_grants_its_own_rights.sql +63 -0
- package/dist/assets/modules/assets/supabase/migrations/20260918113912_assets_client_reads.sql +20 -0
- package/dist/assets/modules/assets/supabase/migrations/20260918150801_assets_leave_with_the_company.sql +41 -0
- package/dist/assets/modules/budgets/module.json +12 -0
- package/dist/assets/modules/budgets/supabase/migrations/20260913083012_budgets.sql +210 -0
- package/dist/assets/modules/budgets/supabase/migrations/20260913104233_foreign_key_indexes.sql +37 -0
- package/dist/assets/modules/budgets/supabase/migrations/20260913104501_budgets_capabilities.sql +72 -0
- package/dist/assets/modules/budgets/supabase/migrations/20260914122400_budgets_round_at_the_currency.sql +68 -0
- package/dist/assets/modules/budgets/supabase/migrations/20260914145048_budgets_accounts_in_use.sql +30 -0
- package/dist/assets/modules/budgets/supabase/migrations/20260914151812_budgets_grants_its_own_rights.sql +31 -0
- package/dist/assets/modules/budgets/supabase/migrations/20260918113954_budgets_client_reads.sql +20 -0
- package/dist/assets/modules/budgets/supabase/migrations/20260918150823_budgets_leave_with_the_company.sql +37 -0
- package/dist/assets/modules/schema/module.1.json +69 -0
- package/dist/assets/seed/00_currencies.sql +15 -0
- package/dist/assets/seed/00_territories.sql +280 -0
- package/dist/assets/seed/05_framework_generic.sql +110 -0
- package/dist/assets/seed/10_pack_be.sql +1284 -0
- package/dist/assets/seed/11_pack_fr.sql +1112 -0
- package/dist/assets/seed/12_pack_lu.sql +2484 -0
- package/dist/assets/seed/13_pack_ee.sql +733 -0
- package/dist/assets/seed/14_pack_gb.sql +796 -0
- package/dist/assets/seed/15_pack_us.sql +751 -0
- package/dist/assets/seed/90_demo_company.sql +368 -0
- package/dist/assets/seed/modules/assets/10_pack_be.sql +58 -0
- package/dist/assets/seed/modules/assets/11_pack_fr.sql +57 -0
- package/dist/assets/seed/modules/assets/14_pack_gb.sql +58 -0
- package/dist/assets/seed/modules/assets/15_pack_us.sql +60 -0
- package/dist/auth.d.ts +59 -0
- package/dist/auth.d.ts.map +1 -0
- package/dist/auth.js +134 -0
- package/dist/auth.js.map +1 -0
- package/dist/bin.d.ts +6 -0
- package/dist/bin.d.ts.map +1 -0
- package/dist/bin.js +8 -0
- package/dist/bin.js.map +1 -0
- package/dist/books.d.ts +60 -0
- package/dist/books.d.ts.map +1 -0
- package/dist/books.js +168 -0
- package/dist/books.js.map +1 -0
- package/dist/bootstrap.d.ts +236 -0
- package/dist/bootstrap.d.ts.map +1 -0
- package/dist/bootstrap.js +459 -0
- package/dist/bootstrap.js.map +1 -0
- package/dist/bundle.d.ts +27 -0
- package/dist/bundle.d.ts.map +1 -0
- package/dist/bundle.js +47 -0
- package/dist/bundle.js.map +1 -0
- package/dist/checklist.d.ts +35 -0
- package/dist/checklist.d.ts.map +1 -0
- package/dist/checklist.js +64 -0
- package/dist/checklist.js.map +1 -0
- package/dist/cli.d.ts +14 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +318 -0
- package/dist/cli.js.map +1 -0
- package/dist/commands/company.d.ts +59 -0
- package/dist/commands/company.d.ts.map +1 -0
- package/dist/commands/company.js +287 -0
- package/dist/commands/company.js.map +1 -0
- package/dist/commands/contact.d.ts +9 -0
- package/dist/commands/contact.d.ts.map +1 -0
- package/dist/commands/contact.js +82 -0
- package/dist/commands/contact.js.map +1 -0
- package/dist/commands/demo.d.ts +19 -0
- package/dist/commands/demo.d.ts.map +1 -0
- package/dist/commands/demo.js +72 -0
- package/dist/commands/demo.js.map +1 -0
- package/dist/commands/doctor.d.ts +12 -0
- package/dist/commands/doctor.d.ts.map +1 -0
- package/dist/commands/doctor.js +68 -0
- package/dist/commands/doctor.js.map +1 -0
- package/dist/commands/document.d.ts +17 -0
- package/dist/commands/document.d.ts.map +1 -0
- package/dist/commands/document.js +217 -0
- package/dist/commands/document.js.map +1 -0
- package/dist/commands/init.d.ts +31 -0
- package/dist/commands/init.d.ts.map +1 -0
- package/dist/commands/init.js +535 -0
- package/dist/commands/init.js.map +1 -0
- package/dist/commands/login.d.ts +24 -0
- package/dist/commands/login.d.ts.map +1 -0
- package/dist/commands/login.js +128 -0
- package/dist/commands/login.js.map +1 -0
- package/dist/commands/migrate.d.ts +30 -0
- package/dist/commands/migrate.d.ts.map +1 -0
- package/dist/commands/migrate.js +115 -0
- package/dist/commands/migrate.js.map +1 -0
- package/dist/commands/module.d.ts +32 -0
- package/dist/commands/module.d.ts.map +1 -0
- package/dist/commands/module.js +285 -0
- package/dist/commands/module.js.map +1 -0
- package/dist/commands/pack.d.ts +22 -0
- package/dist/commands/pack.d.ts.map +1 -0
- package/dist/commands/pack.js +481 -0
- package/dist/commands/pack.js.map +1 -0
- package/dist/commands/payment.d.ts +15 -0
- package/dist/commands/payment.d.ts.map +1 -0
- package/dist/commands/payment.js +97 -0
- package/dist/commands/payment.js.map +1 -0
- package/dist/commands/register.d.ts +20 -0
- package/dist/commands/register.d.ts.map +1 -0
- package/dist/commands/register.js +134 -0
- package/dist/commands/register.js.map +1 -0
- package/dist/commands/status.d.ts +8 -0
- package/dist/commands/status.d.ts.map +1 -0
- package/dist/commands/status.js +134 -0
- package/dist/commands/status.js.map +1 -0
- package/dist/commands/whoami.d.ts +21 -0
- package/dist/commands/whoami.d.ts.map +1 -0
- package/dist/commands/whoami.js +133 -0
- package/dist/commands/whoami.js.map +1 -0
- package/dist/company.d.ts +16 -0
- package/dist/company.d.ts.map +1 -0
- package/dist/company.js +26 -0
- package/dist/company.js.map +1 -0
- package/dist/config.d.ts +24 -0
- package/dist/config.d.ts.map +1 -0
- package/dist/config.js +50 -0
- package/dist/config.js.map +1 -0
- package/dist/connection.d.ts +79 -0
- package/dist/connection.d.ts.map +1 -0
- package/dist/connection.js +116 -0
- package/dist/connection.js.map +1 -0
- package/dist/context.d.ts +47 -0
- package/dist/context.d.ts.map +1 -0
- package/dist/context.js +93 -0
- package/dist/context.js.map +1 -0
- package/dist/doctor.d.ts +45 -0
- package/dist/doctor.d.ts.map +1 -0
- package/dist/doctor.js +448 -0
- package/dist/doctor.js.map +1 -0
- package/dist/grants.d.ts +88 -0
- package/dist/grants.d.ts.map +1 -0
- package/dist/grants.js +174 -0
- package/dist/grants.js.map +1 -0
- package/dist/identity.d.ts +54 -0
- package/dist/identity.d.ts.map +1 -0
- package/dist/identity.js +132 -0
- package/dist/identity.js.map +1 -0
- package/dist/index.d.ts +44 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +43 -0
- package/dist/index.js.map +1 -0
- package/dist/inventory.d.ts +155 -0
- package/dist/inventory.d.ts.map +1 -0
- package/dist/inventory.js +303 -0
- package/dist/inventory.js.map +1 -0
- package/dist/migrations.d.ts +76 -0
- package/dist/migrations.d.ts.map +1 -0
- package/dist/migrations.js +226 -0
- package/dist/migrations.js.map +1 -0
- package/dist/module/read.d.ts +91 -0
- package/dist/module/read.d.ts.map +1 -0
- package/dist/module/read.js +172 -0
- package/dist/module/read.js.map +1 -0
- package/dist/output.d.ts +110 -0
- package/dist/output.d.ts.map +1 -0
- package/dist/output.js +173 -0
- package/dist/output.js.map +1 -0
- package/dist/pack/certification.d.ts +27 -0
- package/dist/pack/certification.d.ts.map +1 -0
- package/dist/pack/certification.js +38 -0
- package/dist/pack/certification.js.map +1 -0
- package/dist/pack/compile.d.ts +75 -0
- package/dist/pack/compile.d.ts.map +1 -0
- package/dist/pack/compile.js +801 -0
- package/dist/pack/compile.js.map +1 -0
- package/dist/pack/filing.d.ts +48 -0
- package/dist/pack/filing.d.ts.map +1 -0
- package/dist/pack/filing.js +56 -0
- package/dist/pack/filing.js.map +1 -0
- package/dist/pack/read.d.ts +766 -0
- package/dist/pack/read.d.ts.map +1 -0
- package/dist/pack/read.js +2336 -0
- package/dist/pack/read.js.map +1 -0
- package/dist/pack/schema.d.ts +26 -0
- package/dist/pack/schema.d.ts.map +1 -0
- package/dist/pack/schema.js +181 -0
- package/dist/pack/schema.js.map +1 -0
- package/dist/pack/territories.d.ts +98 -0
- package/dist/pack/territories.d.ts.map +1 -0
- package/dist/pack/territories.js +0 -0
- package/dist/pack/territories.js.map +1 -0
- package/dist/pack/upgrade.d.ts +86 -0
- package/dist/pack/upgrade.d.ts.map +1 -0
- package/dist/pack/upgrade.js +76 -0
- package/dist/pack/upgrade.js.map +1 -0
- package/dist/pack/vat-codes.d.ts +273 -0
- package/dist/pack/vat-codes.d.ts.map +1 -0
- package/dist/pack/vat-codes.js +513 -0
- package/dist/pack/vat-codes.js.map +1 -0
- package/dist/profiles.d.ts +67 -0
- package/dist/profiles.d.ts.map +1 -0
- package/dist/profiles.js +187 -0
- package/dist/profiles.js.map +1 -0
- package/dist/prompt.d.ts +40 -0
- package/dist/prompt.d.ts.map +1 -0
- package/dist/prompt.js +120 -0
- package/dist/prompt.js.map +1 -0
- package/dist/registry.d.ts +84 -0
- package/dist/registry.d.ts.map +1 -0
- package/dist/registry.js +104 -0
- package/dist/registry.js.map +1 -0
- package/dist/rest.d.ts +81 -0
- package/dist/rest.d.ts.map +1 -0
- package/dist/rest.js +245 -0
- package/dist/rest.js.map +1 -0
- package/dist/schema.d.ts +15 -0
- package/dist/schema.d.ts.map +1 -0
- package/dist/schema.js +15 -0
- package/dist/schema.js.map +1 -0
- package/dist/seeds.d.ts +27 -0
- package/dist/seeds.d.ts.map +1 -0
- package/dist/seeds.js +47 -0
- package/dist/seeds.js.map +1 -0
- package/dist/session.d.ts +39 -0
- package/dist/session.d.ts.map +1 -0
- package/dist/session.js +92 -0
- package/dist/session.js.map +1 -0
- package/dist/sql.d.ts +48 -0
- package/dist/sql.d.ts.map +1 -0
- package/dist/sql.js +112 -0
- package/dist/sql.js.map +1 -0
- package/dist/status.d.ts +94 -0
- package/dist/status.d.ts.map +1 -0
- package/dist/status.js +120 -0
- package/dist/status.js.map +1 -0
- package/dist/ui.d.ts +55 -0
- package/dist/ui.d.ts.map +1 -0
- package/dist/ui.js +114 -0
- package/dist/ui.js.map +1 -0
- package/package.json +29 -0
- 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"}
|