@cogenta/commerce 0.2.0 → 0.4.3

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 (95) hide show
  1. package/dist/admin/permissions.d.ts +8 -0
  2. package/dist/admin/permissions.d.ts.map +1 -1
  3. package/dist/admin/permissions.js +1 -0
  4. package/dist/admin/permissions.js.map +1 -1
  5. package/dist/admin/router.d.ts +47 -5
  6. package/dist/admin/router.d.ts.map +1 -1
  7. package/dist/admin/router.js +942 -24
  8. package/dist/admin/router.js.map +1 -1
  9. package/dist/cart/store.d.ts +23 -0
  10. package/dist/cart/store.d.ts.map +1 -1
  11. package/dist/cart/store.js +49 -2
  12. package/dist/cart/store.js.map +1 -1
  13. package/dist/catalog/csv.d.ts +29 -0
  14. package/dist/catalog/csv.d.ts.map +1 -0
  15. package/dist/catalog/csv.js +396 -0
  16. package/dist/catalog/csv.js.map +1 -0
  17. package/dist/catalog/store.d.ts +24 -4
  18. package/dist/catalog/store.d.ts.map +1 -1
  19. package/dist/catalog/store.js +238 -11
  20. package/dist/catalog/store.js.map +1 -1
  21. package/dist/catalog/types.d.ts +92 -0
  22. package/dist/catalog/types.d.ts.map +1 -1
  23. package/dist/catalog/types.js +20 -0
  24. package/dist/catalog/types.js.map +1 -1
  25. package/dist/coupon/store.d.ts +63 -5
  26. package/dist/coupon/store.d.ts.map +1 -1
  27. package/dist/coupon/store.js +140 -7
  28. package/dist/coupon/store.js.map +1 -1
  29. package/dist/customer/store.d.ts +17 -0
  30. package/dist/customer/store.d.ts.map +1 -1
  31. package/dist/customer/store.js +26 -0
  32. package/dist/customer/store.js.map +1 -1
  33. package/dist/index.d.ts +18 -8
  34. package/dist/index.d.ts.map +1 -1
  35. package/dist/index.js +9 -3
  36. package/dist/index.js.map +1 -1
  37. package/dist/invoice/credit-note.d.ts +45 -0
  38. package/dist/invoice/credit-note.d.ts.map +1 -0
  39. package/dist/invoice/credit-note.js +109 -0
  40. package/dist/invoice/credit-note.js.map +1 -0
  41. package/dist/invoice/sequence.d.ts +21 -0
  42. package/dist/invoice/sequence.d.ts.map +1 -0
  43. package/dist/invoice/sequence.js +64 -0
  44. package/dist/invoice/sequence.js.map +1 -0
  45. package/dist/invoice/store.d.ts +23 -1
  46. package/dist/invoice/store.d.ts.map +1 -1
  47. package/dist/invoice/store.js +23 -56
  48. package/dist/invoice/store.js.map +1 -1
  49. package/dist/order/csv.d.ts +24 -0
  50. package/dist/order/csv.d.ts.map +1 -0
  51. package/dist/order/csv.js +42 -0
  52. package/dist/order/csv.js.map +1 -0
  53. package/dist/order/notify.d.ts +65 -0
  54. package/dist/order/notify.d.ts.map +1 -0
  55. package/dist/order/notify.js +180 -0
  56. package/dist/order/notify.js.map +1 -0
  57. package/dist/order/store.d.ts +58 -1
  58. package/dist/order/store.d.ts.map +1 -1
  59. package/dist/order/store.js +145 -10
  60. package/dist/order/store.js.map +1 -1
  61. package/dist/order/types.d.ts +35 -1
  62. package/dist/order/types.d.ts.map +1 -1
  63. package/dist/order/types.js +2 -0
  64. package/dist/order/types.js.map +1 -1
  65. package/dist/payment/paypal.d.ts +9 -0
  66. package/dist/payment/paypal.d.ts.map +1 -0
  67. package/dist/payment/paypal.js +583 -0
  68. package/dist/payment/paypal.js.map +1 -0
  69. package/dist/payment/registry.d.ts +15 -6
  70. package/dist/payment/registry.d.ts.map +1 -1
  71. package/dist/payment/registry.js +17 -6
  72. package/dist/payment/registry.js.map +1 -1
  73. package/dist/payment/types.d.ts +6 -0
  74. package/dist/payment/types.d.ts.map +1 -1
  75. package/dist/shipping/store.d.ts +29 -3
  76. package/dist/shipping/store.d.ts.map +1 -1
  77. package/dist/shipping/store.js +68 -4
  78. package/dist/shipping/store.js.map +1 -1
  79. package/dist/subscription/renewal-notifier.d.ts +17 -0
  80. package/dist/subscription/renewal-notifier.d.ts.map +1 -0
  81. package/dist/subscription/renewal-notifier.js +33 -0
  82. package/dist/subscription/renewal-notifier.js.map +1 -0
  83. package/dist/subscription/store.d.ts +126 -3
  84. package/dist/subscription/store.d.ts.map +1 -1
  85. package/dist/subscription/store.js +348 -8
  86. package/dist/subscription/store.js.map +1 -1
  87. package/dist/tables.d.ts +17 -0
  88. package/dist/tables.d.ts.map +1 -1
  89. package/dist/tables.js +273 -0
  90. package/dist/tables.js.map +1 -1
  91. package/dist/tax/store.d.ts +20 -0
  92. package/dist/tax/store.d.ts.map +1 -1
  93. package/dist/tax/store.js +51 -7
  94. package/dist/tax/store.js.map +1 -1
  95. package/package.json +3 -2
package/dist/tables.js CHANGED
@@ -17,16 +17,37 @@ export const TABLES = {
17
17
  orders: 'cogenta_commerce_orders',
18
18
  orderLines: 'cogenta_commerce_order_lines',
19
19
  orderEvents: 'cogenta_commerce_order_events',
20
+ orderEmails: 'cogenta_commerce_order_emails',
20
21
  payments: 'cogenta_commerce_payments',
21
22
  refunds: 'cogenta_commerce_refunds',
22
23
  taxRules: 'cogenta_commerce_tax_rules',
23
24
  shippingMethods: 'cogenta_commerce_shipping_methods',
24
25
  coupons: 'cogenta_commerce_coupons',
25
26
  couponRedemptions: 'cogenta_commerce_coupon_redemptions',
27
+ // Fiche 53 task 2: a coupon's own restriction and per-customer counters.
28
+ couponRestrictions: 'cogenta_commerce_coupon_restrictions',
29
+ couponCustomerRedemptions: 'cogenta_commerce_coupon_customer_redemptions',
26
30
  invoices: 'cogenta_commerce_invoices',
27
31
  invoiceSequences: 'cogenta_commerce_invoice_sequences',
32
+ creditNotes: 'cogenta_commerce_credit_notes',
28
33
  subscriptions: 'cogenta_commerce_subscriptions',
29
34
  subscriptionCycles: 'cogenta_commerce_subscription_cycles',
35
+ // Fiche 53 task 3: one open dunning cycle per subscription.
36
+ subscriptionDunning: 'cogenta_commerce_subscription_dunning',
37
+ // Fiche 53 task 5: which billing period a renewal notice was already sent
38
+ // for, so a repeated run never sends the same notice twice.
39
+ subscriptionRenewalNotices: 'cogenta_commerce_subscription_renewal_notices',
40
+ /** A product's link to a term of a taxonomy the *site* declares (ADR-0022,
41
+ * fiche 51 task 3) — not a foreign key for the same reason `content_ref` on
42
+ * `products` is not one: the term table is named after a taxonomy this
43
+ * package cannot know. A join row rather than a column on `products` because
44
+ * a product may carry more than one term, the same "many" a `f.taxonomy`
45
+ * field defaults to on a collection. */
46
+ productTerms: 'cogenta_commerce_product_terms',
47
+ /** Append-only. Every write that moves `on_hand` — a sale, a restock, a
48
+ * stock take — leaves one row here and never edits or removes an earlier
49
+ * one; the row is the audit trail, not a cache of the current count. */
50
+ stockMovements: 'cogenta_commerce_stock_movements',
30
51
  };
31
52
  /** `varchar` on Postgres/MySQL, `text` on SQLite — encapsulated once, here. */
32
53
  function textColumn(dialect, length) {
@@ -162,6 +183,24 @@ export async function ensureCommerceTables(db) {
162
183
  shipping_region ${t64},
163
184
  shipping_method_id ${t64},
164
185
  shipping_method_label ${t255},
186
+ -- Structured delivery address (fiche 52 task 1) — the constat that
187
+ -- opened this fiche: shipping_country/shipping_region alone (above)
188
+ -- were the tax/rate *zone*, never a real address a courier can print on
189
+ -- a label. All six nullable: an order placed before this address ever
190
+ -- existed, or one nobody ever filled in, still reads back fine.
191
+ shipping_address_line1 ${t255},
192
+ shipping_address_line2 ${t255},
193
+ shipping_city ${t255},
194
+ shipping_postal_code ${t64},
195
+ shipping_recipient ${t255},
196
+ shipping_phone ${t64},
197
+ -- Shipment tracking (fiche 52 task 4). Set together, by setTracking(),
198
+ -- once goods actually leave — never guessed from the status alone,
199
+ -- because "shipped" and "we know how" are two different facts.
200
+ tracking_carrier ${t64},
201
+ tracking_number ${t255},
202
+ tracking_url ${t1024},
203
+ shipped_at ${t64},
165
204
  placed_at ${t64} not null,
166
205
  updated_at ${t64} not null,
167
206
  -- Set when a subscription cycle produced this order, null otherwise.
@@ -197,6 +236,23 @@ export async function ensureCommerceTables(db) {
197
236
  note ${t1024}
198
237
  )`);
199
238
  await db.query(sql `
239
+ create table if not exists ${identifier(TABLES.orderEmails, d)} (
240
+ id ${t64} not null primary key,
241
+ order_id ${t64} not null,
242
+ -- 'confirmation' | 'shipment' (order/notify.ts's OrderEmailKind) — a
243
+ -- closed vocabulary kept as free text, the same choice this whole
244
+ -- package makes for every other status/kind column.
245
+ kind ${t64} not null,
246
+ to_email ${t255} not null,
247
+ -- 'pending' | 'sent' | 'failed' — 'failed' is retried by flushDue()
248
+ -- until MAX_ATTEMPTS, never resurrected after.
249
+ status ${t64} not null,
250
+ attempts ${int} not null,
251
+ last_error ${t1024},
252
+ created_at ${t64} not null,
253
+ sent_at ${t64}
254
+ )`);
255
+ await db.query(sql `
200
256
  create table if not exists ${identifier(TABLES.payments, d)} (
201
257
  id ${t64} not null primary key,
202
258
  order_id ${t64} not null,
@@ -274,9 +330,23 @@ export async function ensureCommerceTables(db) {
274
330
  -- Null means unlimited. Zero means exhausted, not unlimited.
275
331
  max_redemptions ${int},
276
332
  redemptions ${int} not null,
333
+ -- Fiche 53 task 2. Null means no per-customer cap. Enforced against
334
+ -- ${identifier(TABLES.couponCustomerRedemptions, d)}, never against this
335
+ -- column's own value — it only ever records the *limit*, never a count.
336
+ max_redemptions_per_customer ${int},
277
337
  active ${bool} not null,
278
338
  created_at ${t64} not null
279
339
  )`);
340
+ // A database whose `coupons` table predates the per-customer cap: `create
341
+ // table if not exists` above is a no-op for it, so the column is added the
342
+ // same way every other in-place table growth in this codebase is
343
+ // (`menu-tables.ts`'s `location` column). Failure means the column already
344
+ // exists — the only realistic cause once this function has already run
345
+ // against this table — so it is swallowed exactly like the index
346
+ // statements below.
347
+ await db
348
+ .query(sql `alter table ${identifier(TABLES.coupons, d)} add column ${identifier('max_redemptions_per_customer', d)} ${int}`)
349
+ .catch(() => undefined);
280
350
  await db.query(sql `
281
351
  create table if not exists ${identifier(TABLES.couponRedemptions, d)} (
282
352
  id ${t64} not null primary key,
@@ -285,6 +355,31 @@ export async function ensureCommerceTables(db) {
285
355
  customer_id ${t64},
286
356
  at ${t64} not null
287
357
  )`);
358
+ // One row per product a coupon is restricted to. No rows at all means
359
+ // unrestricted — the common case, and the reason this is a join table
360
+ // rather than a nullable column on `coupons` (a coupon can name several
361
+ // products, and a nullable single column could only ever name one).
362
+ await db.query(sql `
363
+ create table if not exists ${identifier(TABLES.couponRestrictions, d)} (
364
+ id ${t64} not null primary key,
365
+ code ${t64} not null,
366
+ product_id ${t64} not null,
367
+ created_at ${t64} not null
368
+ )`);
369
+ // The atomic per-customer counter `redeem()` claims against (fiche 53 task
370
+ // 2). Deliberately not a `count(*)` over `couponRedemptions` at redemption
371
+ // time — a guarded single-row `UPDATE` is what stays atomic on Postgres,
372
+ // MySQL/MariaDB and SQLite alike (the same reasoning as the stock guard in
373
+ // `catalog/store.ts`), and an aggregate query is not a single row.
374
+ await db.query(sql `
375
+ create table if not exists ${identifier(TABLES.couponCustomerRedemptions, d)} (
376
+ code ${t64} not null,
377
+ customer_id ${t64} not null,
378
+ count ${int} not null,
379
+ created_at ${t64} not null,
380
+ updated_at ${t64} not null,
381
+ primary key (code, customer_id)
382
+ )`);
288
383
  await db.query(sql `
289
384
  create table if not exists ${identifier(TABLES.invoices, d)} (
290
385
  id ${t64} not null primary key,
@@ -307,6 +402,23 @@ export async function ensureCommerceTables(db) {
307
402
  next_seq ${int} not null
308
403
  )`);
309
404
  await db.query(sql `
405
+ create table if not exists ${identifier(TABLES.creditNotes, d)} (
406
+ id ${t64} not null primary key,
407
+ order_id ${t64} not null,
408
+ -- One credit note per refund, never per order: an order can be
409
+ -- refunded in several instalments, and each one gets its own
410
+ -- sequential, never-reused number (fiche 52 task 6).
411
+ refund_id ${t64} not null unique,
412
+ series ${t64} not null,
413
+ seq ${int} not null,
414
+ number ${t64} not null unique,
415
+ issued_at ${t64} not null,
416
+ currency ${t8} not null,
417
+ amount_minor ${int} not null,
418
+ reason ${t1024},
419
+ document text not null
420
+ )`);
421
+ await db.query(sql `
310
422
  create table if not exists ${identifier(TABLES.subscriptions, d)} (
311
423
  id ${t64} not null primary key,
312
424
  customer_id ${t64} not null,
@@ -343,7 +455,149 @@ export async function ensureCommerceTables(db) {
343
455
  status ${t64} not null,
344
456
  created_at ${t64} not null
345
457
  )`);
458
+ // Fiche 53 task 3: at most one open dunning cycle per subscription — the
459
+ // primary key is the whole guard against tracking two at once. `period_key`
460
+ // is carried, not reinvented: it is the exact value `billOne` already
461
+ // claimed for the order this cycle is trying to collect, so this table
462
+ // never becomes a second source of truth about which period is which.
463
+ // `next_retry_at` doubles as the compare-and-set field `runDunning` claims
464
+ // against (same shape as `SCHEDULED_TASK_CLAIMS_TABLE` in
465
+ // `@cogenta/schema`): null means either "claimed and being processed right
466
+ // now" (transient) or "exhausted" (terminal, `suspended_at` tells the two
467
+ // apart) — and either way the due-query (`next_retry_at <= now`) simply
468
+ // never matches null, so a claimed-but-not-yet-resolved row can never be
469
+ // picked up twice.
470
+ await db.query(sql `
471
+ create table if not exists ${identifier(TABLES.subscriptionDunning, d)} (
472
+ subscription_id ${t64} not null primary key,
473
+ order_id ${t64} not null,
474
+ period_key ${t255} not null,
475
+ failure_count ${int} not null,
476
+ first_failed_at ${t64} not null,
477
+ next_retry_at ${t64},
478
+ last_reason ${t1024},
479
+ suspended_at ${t64},
480
+ created_at ${t64} not null,
481
+ updated_at ${t64} not null
482
+ )`);
483
+ // Fiche 53 task 5: one row per (subscription, upcoming period) once a
484
+ // renewal notice has actually been sent for it — the insert itself is the
485
+ // claim (a duplicate insert hits the primary key and is swallowed by
486
+ // `sendRenewalNotices`), so a rerun never notifies a subscriber twice for
487
+ // the same renewal.
488
+ await db.query(sql `
489
+ create table if not exists ${identifier(TABLES.subscriptionRenewalNotices, d)} (
490
+ subscription_id ${t64} not null,
491
+ period_key ${t255} not null,
492
+ sent_at ${t64} not null,
493
+ primary key (subscription_id, period_key)
494
+ )`);
495
+ // Columns added to `orders` after it first shipped (fiche 52 tasks 1 and
496
+ // 4). The `create table` above already declares them, which covers a fresh
497
+ // install; a site whose `cogenta_commerce_orders` predates this fiche needs
498
+ // them added in place. Same idiom as `menu-tables.ts`'s `location` column
499
+ // and `theme-store.ts`'s `active_theme`: `alter table … add column`,
500
+ // failure swallowed unconditionally. On a table this function already
501
+ // created, the only realistic failure is "column already exists" — nothing
502
+ // destructive is attempted, and every added column is nullable, so no
503
+ // existing row is affected either way. This is deliberately outside
504
+ // contract A's up/down migration engine (see this file's own header
505
+ // comment) — there is no "down" for an additive, nullable column.
506
+ const ordersTable = identifier(TABLES.orders, d);
507
+ const orderColumnStatements = [
508
+ sql `alter table ${ordersTable} add column shipping_address_line1 ${t255}`,
509
+ sql `alter table ${ordersTable} add column shipping_address_line2 ${t255}`,
510
+ sql `alter table ${ordersTable} add column shipping_city ${t255}`,
511
+ sql `alter table ${ordersTable} add column shipping_postal_code ${t64}`,
512
+ sql `alter table ${ordersTable} add column shipping_recipient ${t255}`,
513
+ sql `alter table ${ordersTable} add column shipping_phone ${t64}`,
514
+ sql `alter table ${ordersTable} add column tracking_carrier ${t64}`,
515
+ sql `alter table ${ordersTable} add column tracking_number ${t255}`,
516
+ sql `alter table ${ordersTable} add column tracking_url ${t1024}`,
517
+ sql `alter table ${ordersTable} add column shipped_at ${t64}`,
518
+ ];
519
+ for (const statement of orderColumnStatements) {
520
+ await db.query(statement).catch(() => undefined);
521
+ }
522
+ await db.query(sql `
523
+ create table if not exists ${identifier(TABLES.productTerms, d)} (
524
+ id ${t64} not null primary key,
525
+ product_id ${t64} not null,
526
+ -- Names a taxonomy the *site* declares (ADR-0022) and a term inside it —
527
+ -- neither is a foreign key here, for the same reason content_ref is not
528
+ -- one on products: the term table belongs to a schema this package
529
+ -- cannot know.
530
+ taxonomy ${t64} not null,
531
+ term_id ${t64} not null,
532
+ created_at ${t64} not null
533
+ )`);
534
+ await db.query(sql `
535
+ create table if not exists ${identifier(TABLES.stockMovements, d)} (
536
+ id ${t64} not null primary key,
537
+ variant_id ${t64} not null,
538
+ -- Positive for stock added, negative for stock taken. Never rewritten:
539
+ -- a mistake is corrected by a further movement, never by editing this
540
+ -- row (fiche 51 task 4's "append-only, jamais modifiable").
541
+ delta ${int} not null,
542
+ -- The absolute count this movement left the variant at — read back
543
+ -- without summing the whole history for a variant that has moved many
544
+ -- times.
545
+ balance_after ${int} not null,
546
+ reason ${t64} not null,
547
+ actor_id ${t64},
548
+ -- Names what caused the movement (an order id, most often), when there
549
+ -- is one. Free-form on purpose: a movement caused by a stock take has
550
+ -- no such thing.
551
+ reference_id ${t64},
552
+ note ${t1024},
553
+ created_at ${t64} not null
554
+ )`);
346
555
  await ensureIndexes(db);
556
+ await ensureColumns(db);
557
+ }
558
+ /**
559
+ * Columns added after this package's first release, on tables that already
560
+ * existed (fiche 51 tasks 4 and 5) — same pattern as `menu-tables.ts`'s own
561
+ * `location` column: `create table if not exists` above is a no-op on a
562
+ * database that already has `variants`, so the column is added here instead,
563
+ * and a failure is swallowed because the only realistic cause on a table this
564
+ * function has already run against is "the column is already there".
565
+ */
566
+ async function ensureColumns(db) {
567
+ const d = db.dialect;
568
+ const products = identifier(TABLES.products, d);
569
+ const variants = identifier(TABLES.variants, d);
570
+ const int = integerColumn();
571
+ const statements = [
572
+ // Task 4: a variant with no threshold set (the default, and every
573
+ // variant created before this column existed) is never "low stock" —
574
+ // absence means "not watched", not "watched at zero".
575
+ sql `alter table ${variants} add column ${identifier('low_stock_threshold', d)} ${int}`,
576
+ // Task 5: the "was" price shown struck through, and the window during
577
+ // which it applies. All three null together means "no promotion" — the
578
+ // state every variant is already in.
579
+ sql `alter table ${variants} add column ${identifier('compare_at_price_minor', d)} ${int}`,
580
+ sql `alter table ${variants} add column ${identifier('sale_starts_at', d)} ${textColumn(d, 64)}`,
581
+ sql `alter table ${variants} add column ${identifier('sale_ends_at', d)} ${textColumn(d, 64)}`,
582
+ // Task 5: physical dimensions, in millimetres — integers for the same
583
+ // reason weight_grams already is (no decimal column means the same thing
584
+ // on all three dialects, ADR-0006).
585
+ sql `alter table ${variants} add column ${identifier('width_mm', d)} ${int}`,
586
+ sql `alter table ${variants} add column ${identifier('height_mm', d)} ${int}`,
587
+ sql `alter table ${variants} add column ${identifier('depth_mm', d)} ${int}`,
588
+ // A product's own photos, direct on the commercial record — bare `text`
589
+ // rather than `textColumn`'s `varchar(n)`: this is a JSON-encoded array
590
+ // of media ids (`catalog/store.ts`'s `decodeProduct`/`toStringArray`),
591
+ // the same unbounded-length choice `invoices.document` already made for
592
+ // its own JSON blob, and no dialect gives an array column the same
593
+ // meaning on all three (ADR-0006).
594
+ sql `alter table ${products} add column ${identifier('image_media_ids', d)} text`,
595
+ // A variant's own single photo — one id, never a list (see `types.ts`).
596
+ sql `alter table ${variants} add column ${identifier('image_media_id', d)} ${textColumn(d, 64)}`,
597
+ ];
598
+ for (const statement of statements) {
599
+ await db.query(statement).catch(() => undefined);
600
+ }
347
601
  }
348
602
  /**
349
603
  * Indexes for the reads this package actually performs.
@@ -365,6 +619,12 @@ async function ensureIndexes(db) {
365
619
  ['cogenta_commerce_payments_order', TABLES.payments, 'order_id'],
366
620
  ['cogenta_commerce_refunds_payment', TABLES.refunds, 'payment_id'],
367
621
  ['cogenta_commerce_cycles_subscription', TABLES.subscriptionCycles, 'subscription_id'],
622
+ ['cogenta_commerce_coupon_restrictions_code', TABLES.couponRestrictions, 'code'],
623
+ ['cogenta_commerce_dunning_next_retry', TABLES.subscriptionDunning, 'next_retry_at'],
624
+ ['cogenta_commerce_order_emails_order', TABLES.orderEmails, 'order_id'],
625
+ ['cogenta_commerce_credit_notes_order', TABLES.creditNotes, 'order_id'],
626
+ ['cogenta_commerce_product_terms_product', TABLES.productTerms, 'product_id'],
627
+ ['cogenta_commerce_stock_movements_variant', TABLES.stockMovements, 'variant_id'],
368
628
  ];
369
629
  for (const [name, table, column] of wanted) {
370
630
  const statement = sql `create index ${identifier(name, d)} on ${identifier(table, d)} (${identifier(column, d)})`;
@@ -379,5 +639,18 @@ async function ensureIndexes(db) {
379
639
  // rather than here.
380
640
  }
381
641
  }
642
+ // A product cannot carry the same term twice — the write side (`setProductTerms`)
643
+ // already guarantees this by replacing the whole set, but the constraint is
644
+ // what actually protects the data on a caller this package does not control.
645
+ const productTermsUnique = identifier('cogenta_commerce_product_terms_unique', d);
646
+ const productTermsTable = identifier(TABLES.productTerms, d);
647
+ try {
648
+ await db.query(d === 'mysql'
649
+ ? sql `create unique index ${productTermsUnique} on ${productTermsTable} (${identifier('product_id', d)}, ${identifier('taxonomy', d)}, ${identifier('term_id', d)})`
650
+ : sql `create unique index if not exists ${productTermsUnique} on ${productTermsTable} (${identifier('product_id', d)}, ${identifier('taxonomy', d)}, ${identifier('term_id', d)})`);
651
+ }
652
+ catch {
653
+ // Already there.
654
+ }
382
655
  }
383
656
  //# sourceMappingURL=tables.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"tables.js","sourceRoot":"","sources":["../src/tables.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tables.js","sourceRoot":"","sources":["../src/tables.ts"],"names":[],"mappings":"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"}
@@ -46,8 +46,28 @@ export interface TaxOutcome {
46
46
  readonly includedInPrice: boolean;
47
47
  readonly ruleName: string | null;
48
48
  }
49
+ /**
50
+ * Fiche feedback: a rule had no edit path — only create and delete existed,
51
+ * so fixing a typo'd rate meant deleting and recreating it (losing its
52
+ * `createdAt`, and the priority ordering an operator may have built around
53
+ * that timestamp). Every field absent from the patch is left exactly as
54
+ * saved; `country`/`region` are tri-state — `null` clears them back to
55
+ * "anywhere"/"no region", matching what `undefined` already means at
56
+ * `createRule()` time.
57
+ */
58
+ export interface UpdateTaxRuleInput {
59
+ readonly country?: string | null;
60
+ readonly region?: string | null;
61
+ readonly taxCategory?: string;
62
+ readonly name?: string;
63
+ readonly rateBp?: number;
64
+ readonly includedInPrice?: boolean;
65
+ readonly priority?: number;
66
+ readonly active?: boolean;
67
+ }
49
68
  export interface TaxStore {
50
69
  createRule(input: CreateTaxRuleInput): Promise<TaxRule>;
70
+ updateRule(id: string, patch: UpdateTaxRuleInput): Promise<TaxRule>;
51
71
  deleteRule(id: string): Promise<void>;
52
72
  listRules(): Promise<readonly TaxRule[]>;
53
73
  /** The one rule that applies, or null when nothing does. */
@@ -1 +1 @@
1
- {"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../src/tax/store.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,KAAK,cAAc,EAA0B,MAAM,eAAe,CAAA;AAKzF;;;;;;;GAOG;AACH,MAAM,WAAW,OAAO;IACtB,sCAAsC;IACtC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;IACxB,oEAAoE;IACpE,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;CAChC;AAED,MAAM,WAAW,OAAO;IACtB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;IACnB,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAA;IAC/B,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAA;IAC9B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAA;IAC5B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB;;;OAGG;IACH,QAAQ,CAAC,eAAe,EAAE,OAAO,CAAA;IACjC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAA;IACxB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;CAC3B;AAED,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAChC,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAC/B,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAA;IAC7B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,eAAe,CAAC,EAAE,OAAO,CAAA;IAClC,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;IAC1B,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,CAAA;CAC1B;AAED,0BAA0B;AAC1B,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,eAAe,EAAE,OAAO,CAAA;IACjC,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAA;CACjC;AAED,MAAM,WAAW,QAAQ;IACvB,UAAU,CAAC,KAAK,EAAE,kBAAkB,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;IACvD,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IACrC,SAAS,IAAI,OAAO,CAAC,SAAS,OAAO,EAAE,CAAC,CAAA;IACxC,4DAA4D;IAC5D,OAAO,CAAC,IAAI,EAAE,OAAO,GAAG,IAAI,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC,CAAA;CAC5E;AAoDD,wBAAgB,cAAc,CAAC,EAAE,EAAE,cAAc,EAAE,GAAG,GAAE,MAAM,MAAiB,GAAG,QAAQ,CAmEzF;AAED;;;;;;;;;GASG;AACH,wBAAgB,MAAM,CAAC,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,GAAG,IAAI,GAAG,UAAU,CAe5E"}
1
+ {"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../src/tax/store.ts"],"names":[],"mappings":"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"}
package/dist/tax/store.js CHANGED
@@ -40,18 +40,28 @@ function specificity(rule, zone) {
40
40
  }
41
41
  return rule.country === null ? 0 : 1;
42
42
  }
43
+ function assertRateBp(rateBp) {
44
+ if (!Number.isInteger(rateBp) || rateBp < 0 || rateBp > 100_000) {
45
+ throw new CogentaError({
46
+ code: 'COMMERCE_TAX_RULE_INVALID',
47
+ message: `A tax rate must be a whole number of basis points between 0 and 100000, got ${String(rateBp)}.`,
48
+ hint: '20 % is 2000 basis points. 5.5 % is 550.',
49
+ });
50
+ }
51
+ }
52
+ function taxRuleNotFound(id) {
53
+ return new CogentaError({
54
+ code: 'COMMERCE_TAX_RULE_UNKNOWN',
55
+ message: `No tax rule with id "${id}".`,
56
+ hint: 'Check the id against the admin\'s "Taxes" screen.',
57
+ });
58
+ }
43
59
  export function createTaxStore(db, now = Date.now) {
44
60
  const d = db.dialect;
45
61
  const table = identifier(TABLES.taxRules, d);
46
62
  return {
47
63
  createRule: async (input) => {
48
- if (!Number.isInteger(input.rateBp) || input.rateBp < 0 || input.rateBp > 100_000) {
49
- throw new CogentaError({
50
- code: 'COMMERCE_TAX_RULE_INVALID',
51
- message: `A tax rate must be a whole number of basis points between 0 and 100000, got ${String(input.rateBp)}.`,
52
- hint: '20 % is 2000 basis points. 5.5 % is 550.',
53
- });
54
- }
64
+ assertRateBp(input.rateBp);
55
65
  const id = newId(now);
56
66
  await db.query(sql `
57
67
  insert into ${table} (id, country, region, tax_category, name, rate_bp, included_in_price, priority, active, created_at)
@@ -70,6 +80,40 @@ export function createTaxStore(db, now = Date.now) {
70
80
  }
71
81
  return decode(row);
72
82
  },
83
+ updateRule: async (id, patch) => {
84
+ const existing = await db.query(sql `select * from ${table} where id = ${id}`);
85
+ const row = existing.rows[0];
86
+ if (row === undefined)
87
+ throw taxRuleNotFound(id);
88
+ const current = decode(row);
89
+ if (patch.rateBp !== undefined)
90
+ assertRateBp(patch.rateBp);
91
+ const country = patch.country === undefined ? current.country : (patch.country?.toUpperCase() ?? null);
92
+ const region = patch.region === undefined ? current.region : (patch.region ?? null);
93
+ const taxCategory = patch.taxCategory ?? current.taxCategory;
94
+ const name = patch.name ?? current.name;
95
+ const rateBp = patch.rateBp ?? current.rateBp;
96
+ const includedInPrice = patch.includedInPrice ?? current.includedInPrice;
97
+ const priority = patch.priority ?? current.priority;
98
+ const active = patch.active ?? current.active;
99
+ await db.query(sql `
100
+ update ${table}
101
+ set country = ${country}, region = ${region}, tax_category = ${taxCategory},
102
+ name = ${name}, rate_bp = ${rateBp}, included_in_price = ${fromBool(includedInPrice, d)},
103
+ priority = ${priority}, active = ${fromBool(active, d)}
104
+ where id = ${id}`);
105
+ return {
106
+ ...current,
107
+ country,
108
+ region,
109
+ taxCategory,
110
+ name,
111
+ rateBp,
112
+ includedInPrice,
113
+ priority,
114
+ active,
115
+ };
116
+ },
73
117
  deleteRule: async (id) => {
74
118
  await db.query(sql `delete from ${table} where id = ${id}`);
75
119
  },
@@ -1 +1 @@
1
- {"version":3,"file":"store.js","sourceRoot":"","sources":["../../src/tax/store.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"store.js","sourceRoot":"","sources":["../../src/tax/store.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cogenta/commerce",
3
- "version": "0.2.0",
3
+ "version": "0.4.3",
4
4
  "description": "Contract E: products, carts, orders, payments, tax, shipping, coupons, invoices and subscriptions.",
5
5
  "license": "MPL-2.0",
6
6
  "type": "module",
@@ -27,7 +27,8 @@
27
27
  "directory": "packages/commerce"
28
28
  },
29
29
  "dependencies": {
30
- "@cogenta/core": "0.4.0"
30
+ "@cogenta/core": "0.8.0",
31
+ "@cogenta/channels": "0.3.4"
31
32
  },
32
33
  "devDependencies": {
33
34
  "typescript": "^7.0.2",