@flowselections/floriday-verkoop-module 1.0.87 → 1.0.90

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 (125) hide show
  1. package/dist-lib/components/verkoop/CreateOrderPage.js +1 -1
  2. package/dist-lib/components/verkoop/DiagnoseConnectionDialog.js +1 -1
  3. package/dist-lib/components/verkoop/EditLocalOrderDialog.js +3 -3
  4. package/dist-lib/components/verkoop/OrderControlStatusCard.js +1 -1
  5. package/dist-lib/components/verkoop/OrderKarindelingCard.js +2 -2
  6. package/dist-lib/components/verkoop/OrderLinePackingCard.js +1 -1
  7. package/dist-lib/components/verkoop/OrderShipmentsCard.js +1 -1
  8. package/dist-lib/components/verkoop/ProductDimensionsSettings.js +1 -1
  9. package/dist-lib/components/verkoop/SalesOrderDetailView.d.ts +1 -1
  10. package/dist-lib/components/verkoop/SalesOrderDetailView.js +12 -12
  11. package/dist-lib/components/verkoop/SalesOrdersFilterPanel.d.ts +1 -1
  12. package/dist-lib/components/verkoop/SalesOrdersFilters.js +1 -1
  13. package/dist-lib/components/verkoop/SalesOrdersTable.d.ts +1 -1
  14. package/dist-lib/components/verkoop/SalesOrdersTable.js +2 -2
  15. package/dist-lib/components/verkoop/StockConsumptionAlertsBanner.js +1 -1
  16. package/dist-lib/components/verkoop/VerkoopOrdersPage.js +15 -15
  17. package/dist-lib/index.d.ts +4 -5
  18. package/dist-lib/index.d.ts.map +1 -1
  19. package/dist-lib/index.js +5 -6
  20. package/dist-lib/integrations/supabase/auth-middleware.d.ts +1 -1
  21. package/dist-lib/integrations/supabase/client.d.ts +1 -1
  22. package/dist-lib/integrations/supabase/client.server.d.ts +1 -1
  23. package/dist-lib/lib/belading.server.js +1 -1
  24. package/dist-lib/lib/buffer-events.functions.d.ts +1 -1
  25. package/dist-lib/lib/buffer-events.functions.js +1 -1
  26. package/dist-lib/lib/cart-layers.functions.d.ts +4 -4
  27. package/dist-lib/lib/cart-layers.functions.js +2 -2
  28. package/dist-lib/lib/cart-lock.functions.d.ts +1 -1
  29. package/dist-lib/lib/cart-lock.functions.js +2 -2
  30. package/dist-lib/lib/cart-planning-settings.functions.d.ts +11 -11
  31. package/dist-lib/lib/cart-planning-settings.functions.js +1 -1
  32. package/dist-lib/lib/cart-replan.functions.d.ts +4 -4
  33. package/dist-lib/lib/cart-replan.functions.js +9 -9
  34. package/dist-lib/lib/create-order.functions.d.ts +18 -18
  35. package/dist-lib/lib/create-order.functions.js +15 -15
  36. package/dist-lib/lib/cron/index.d.ts +3 -3
  37. package/dist-lib/lib/cron/index.js +3 -3
  38. package/dist-lib/lib/cron/invoice-due.js +1 -1
  39. package/dist-lib/lib/cron/sync-salesorders.js +2 -2
  40. package/dist-lib/lib/cron/sync-tradeitems.js +1 -1
  41. package/dist-lib/lib/engine-block-alerts.server.js +4 -4
  42. package/dist-lib/lib/expand-group-order-items.d.ts +1 -1
  43. package/dist-lib/lib/floriday-change-diff.check.js +2 -2
  44. package/dist-lib/lib/floriday-gateway.server.d.ts +1 -1
  45. package/dist-lib/lib/floriday-gateway.server.js +2 -2
  46. package/dist-lib/lib/floriday-logistic-labels.functions.d.ts +2 -2
  47. package/dist-lib/lib/floriday-logistic-labels.functions.js +5 -5
  48. package/dist-lib/lib/floriday-mirror.functions.d.ts +1 -1
  49. package/dist-lib/lib/floriday-mirror.functions.d.ts.map +1 -1
  50. package/dist-lib/lib/floriday-mirror.functions.js +19 -12
  51. package/dist-lib/lib/floriday-public.functions.d.ts +7 -7
  52. package/dist-lib/lib/floriday-public.functions.js +2 -2
  53. package/dist-lib/lib/floriday-status.d.ts +1 -1
  54. package/dist-lib/lib/floriday-status.server.d.ts +1 -1
  55. package/dist-lib/lib/floriday-status.server.js +2 -2
  56. package/dist-lib/lib/floriday-sync.js +1 -1
  57. package/dist-lib/lib/floriday-unlinked-products.js +1 -1
  58. package/dist-lib/lib/floriday-writes.functions.d.ts +3 -3
  59. package/dist-lib/lib/floriday-writes.functions.js +3 -3
  60. package/dist-lib/lib/invoice-timing.functions.d.ts +5 -5
  61. package/dist-lib/lib/invoice-timing.functions.js +8 -8
  62. package/dist-lib/lib/invoice-timing.server.d.ts +8 -3
  63. package/dist-lib/lib/invoice-timing.server.d.ts.map +1 -1
  64. package/dist-lib/lib/invoice-timing.server.js +70 -34
  65. package/dist-lib/lib/load-carriers.functions.d.ts +2 -2
  66. package/dist-lib/lib/load-carriers.functions.js +2 -2
  67. package/dist-lib/lib/load-carriers.server.d.ts +1 -1
  68. package/dist-lib/lib/load-carriers.server.js +1 -1
  69. package/dist-lib/lib/logistics-buffer.server.js +1 -1
  70. package/dist-lib/lib/logistics-engine.functions.d.ts +8 -8
  71. package/dist-lib/lib/logistics-engine.functions.js +6 -6
  72. package/dist-lib/lib/logistics-engine.server.d.ts +1 -1
  73. package/dist-lib/lib/logistics-engine.server.js +4 -4
  74. package/dist-lib/lib/logistics-stock.functions.d.ts +3 -3
  75. package/dist-lib/lib/logistics-stock.functions.js +3 -3
  76. package/dist-lib/lib/order-addresses.functions.d.ts +1 -1
  77. package/dist-lib/lib/order-addresses.functions.js +2 -2
  78. package/dist-lib/lib/order-block-mail.server.js +3 -3
  79. package/dist-lib/lib/order-buffers.functions.d.ts +3 -3
  80. package/dist-lib/lib/order-buffers.functions.js +3 -3
  81. package/dist-lib/lib/order-cancel.server.js +6 -6
  82. package/dist-lib/lib/order-carrier.functions.d.ts +2 -2
  83. package/dist-lib/lib/order-carrier.functions.js +2 -2
  84. package/dist-lib/lib/order-fulfill.functions.d.ts +1 -1
  85. package/dist-lib/lib/order-fulfill.functions.js +3 -3
  86. package/dist-lib/lib/order-item-packing.functions.d.ts +3 -3
  87. package/dist-lib/lib/order-item-packing.functions.js +3 -3
  88. package/dist-lib/lib/order-patch.check.d.ts +2 -0
  89. package/dist-lib/lib/order-patch.check.d.ts.map +1 -0
  90. package/dist-lib/lib/order-patch.check.js +40 -0
  91. package/dist-lib/lib/order-patch.d.ts +18 -0
  92. package/dist-lib/lib/order-patch.d.ts.map +1 -0
  93. package/dist-lib/lib/order-patch.js +105 -0
  94. package/dist-lib/lib/order-pickup.functions.d.ts +2 -2
  95. package/dist-lib/lib/order-pickup.functions.js +3 -3
  96. package/dist-lib/lib/order-shipments.functions.d.ts +4 -4
  97. package/dist-lib/lib/order-shipments.functions.js +6 -6
  98. package/dist-lib/lib/plan-coverage.check.js +1 -1
  99. package/dist-lib/lib/plan-coverage.server.d.ts +1 -1
  100. package/dist-lib/lib/plan-coverage.server.js +1 -1
  101. package/dist-lib/lib/product-dimensions.functions.d.ts +2 -2
  102. package/dist-lib/lib/product-dimensions.functions.js +1 -1
  103. package/dist-lib/lib/salesorders-list.functions.d.ts +5 -5
  104. package/dist-lib/lib/salesorders-list.functions.js +4 -4
  105. package/dist-lib/lib/salesorders-list.server.d.ts +2 -2
  106. package/dist-lib/lib/salesorders-list.server.js +17 -17
  107. package/dist-lib/lib/salesorders-mapping.d.ts +3 -3
  108. package/dist-lib/lib/salesorders-mapping.js +2 -2
  109. package/dist-lib/lib/salesorders.functions.d.ts +7 -7
  110. package/dist-lib/lib/salesorders.functions.js +20 -20
  111. package/dist-lib/lib/stock-consumption-alerts.functions.d.ts +2 -2
  112. package/dist-lib/lib/stock-consumption-alerts.functions.js +1 -1
  113. package/dist-lib/lib/tradeitems.functions.d.ts +1068 -1068
  114. package/dist-lib/lib/tradeitems.functions.js +3 -3
  115. package/dist-lib/lib/useAllowedLoadCarriers.d.ts +1 -1
  116. package/dist-lib/lib/useAllowedLoadCarriers.js +1 -1
  117. package/dist-lib/lib/useBufferEvents.d.ts +1 -1
  118. package/dist-lib/lib/useBufferEvents.js +2 -2
  119. package/dist-lib/lib/useLocalSalesOrderDetailQuery.d.ts +2 -2
  120. package/dist-lib/lib/useLocalSalesOrderDetailQuery.js +2 -2
  121. package/dist-lib/lib/useSalesOrderDetailQuery.d.ts +1 -1
  122. package/dist-lib/lib/useSalesOrderDetailQuery.js +2 -2
  123. package/dist-lib/lib/useSalesOrdersQuery.d.ts +2 -2
  124. package/dist-lib/lib/useSalesOrdersQuery.js +3 -3
  125. package/package.json +2 -2
@@ -1,12 +1,12 @@
1
1
  export declare const listCustomersForCreateOrder: import("@tanstack/start-client-core").OptionalFetcher<readonly [import("@tanstack/start-client-core").FunctionMiddlewareAfterServer<{}, unknown, undefined, {
2
- supabase: import("../integrations/supabase/auth-middleware").AuthedSupabaseClient;
2
+ supabase: import("../integrations/supabase/auth-middleware.js").AuthedSupabaseClient;
3
3
  userId: string;
4
4
  claims: import("@supabase/auth-js").User;
5
5
  }, undefined, undefined, undefined>], undefined, Promise<{
6
6
  items: any[];
7
7
  }>>;
8
8
  export declare const ensureCustomerFromTwinfield: import("@tanstack/start-client-core").OptionalFetcher<readonly [import("@tanstack/start-client-core").FunctionMiddlewareAfterServer<{}, unknown, undefined, {
9
- supabase: import("../integrations/supabase/auth-middleware").AuthedSupabaseClient;
9
+ supabase: import("../integrations/supabase/auth-middleware.js").AuthedSupabaseClient;
10
10
  userId: string;
11
11
  claims: import("@supabase/auth-js").User;
12
12
  }, undefined, undefined, undefined>], (d: unknown) => {
@@ -15,7 +15,7 @@ export declare const ensureCustomerFromTwinfield: import("@tanstack/start-client
15
15
  id: string;
16
16
  }>>;
17
17
  export declare const listProductsForCreateOrder: import("@tanstack/start-client-core").OptionalFetcher<readonly [import("@tanstack/start-client-core").FunctionMiddlewareAfterServer<{}, unknown, undefined, {
18
- supabase: import("../integrations/supabase/auth-middleware").AuthedSupabaseClient;
18
+ supabase: import("../integrations/supabase/auth-middleware.js").AuthedSupabaseClient;
19
19
  userId: string;
20
20
  claims: import("@supabase/auth-js").User;
21
21
  }, undefined, undefined, undefined>], undefined, Promise<{
@@ -36,7 +36,7 @@ export declare const listProductsForCreateOrder: import("@tanstack/start-client-
36
36
  }[];
37
37
  }>>;
38
38
  export declare const listDeliveryLocationsForCustomerCO: import("@tanstack/start-client-core").OptionalFetcher<readonly [import("@tanstack/start-client-core").FunctionMiddlewareAfterServer<{}, unknown, undefined, {
39
- supabase: import("../integrations/supabase/auth-middleware").AuthedSupabaseClient;
39
+ supabase: import("../integrations/supabase/auth-middleware.js").AuthedSupabaseClient;
40
40
  userId: string;
41
41
  claims: import("@supabase/auth-js").User;
42
42
  }, undefined, undefined, undefined>], (d: unknown) => {
@@ -63,7 +63,7 @@ export declare const listDeliveryLocationsForCustomerCO: import("@tanstack/start
63
63
  }[];
64
64
  }>>;
65
65
  export declare const listPickupLocationsCO: import("@tanstack/start-client-core").OptionalFetcher<readonly [import("@tanstack/start-client-core").FunctionMiddlewareAfterServer<{}, unknown, undefined, {
66
- supabase: import("../integrations/supabase/auth-middleware").AuthedSupabaseClient;
66
+ supabase: import("../integrations/supabase/auth-middleware.js").AuthedSupabaseClient;
67
67
  userId: string;
68
68
  claims: import("@supabase/auth-js").User;
69
69
  }, undefined, undefined, undefined>], undefined, Promise<{
@@ -73,7 +73,7 @@ export declare const listPickupLocationsCO: import("@tanstack/start-client-core"
73
73
  }[];
74
74
  }>>;
75
75
  export declare const listCarriersForCreateOrder: import("@tanstack/start-client-core").OptionalFetcher<readonly [import("@tanstack/start-client-core").FunctionMiddlewareAfterServer<{}, unknown, undefined, {
76
- supabase: import("../integrations/supabase/auth-middleware").AuthedSupabaseClient;
76
+ supabase: import("../integrations/supabase/auth-middleware.js").AuthedSupabaseClient;
77
77
  userId: string;
78
78
  claims: import("@supabase/auth-js").User;
79
79
  }, undefined, undefined, undefined>], undefined, Promise<{
@@ -88,20 +88,20 @@ export declare const listCarriersForCreateOrder: import("@tanstack/start-client-
88
88
  signup_days_before_delivery: number;
89
89
  pickup_weekdays: number[];
90
90
  delivery_weekdays: number[];
91
- pickup_moments: import("../integrations/supabase/types").Json;
91
+ pickup_moments: import("../integrations/supabase/types.js").Json;
92
92
  }[];
93
93
  }>>;
94
94
  export declare const listBeladingOptionsForProducts: import("@tanstack/start-client-core").OptionalFetcher<readonly [import("@tanstack/start-client-core").FunctionMiddlewareAfterServer<{}, unknown, undefined, {
95
- supabase: import("../integrations/supabase/auth-middleware").AuthedSupabaseClient;
95
+ supabase: import("../integrations/supabase/auth-middleware.js").AuthedSupabaseClient;
96
96
  userId: string;
97
97
  claims: import("@supabase/auth-js").User;
98
98
  }, undefined, undefined, undefined>], (input: unknown) => {
99
99
  productIds: string[];
100
100
  }, Promise<{
101
- byProduct: Record<string, import("./belading.server").BeladingOption[]>;
101
+ byProduct: Record<string, import("./belading.server.js").BeladingOption[]>;
102
102
  }>>;
103
103
  export declare const listBeladingOptions: import("@tanstack/start-client-core").OptionalFetcher<readonly [import("@tanstack/start-client-core").FunctionMiddlewareAfterServer<{}, unknown, undefined, {
104
- supabase: import("../integrations/supabase/auth-middleware").AuthedSupabaseClient;
104
+ supabase: import("../integrations/supabase/auth-middleware.js").AuthedSupabaseClient;
105
105
  userId: string;
106
106
  claims: import("@supabase/auth-js").User;
107
107
  }, undefined, undefined, undefined>], undefined, Promise<{
@@ -115,14 +115,14 @@ export declare const listBeladingOptions: import("@tanstack/start-client-core").
115
115
  }[];
116
116
  }>>;
117
117
  export declare const getOrderPickDaysCO: import("@tanstack/start-client-core").OptionalFetcher<readonly [import("@tanstack/start-client-core").FunctionMiddlewareAfterServer<{}, unknown, undefined, {
118
- supabase: import("../integrations/supabase/auth-middleware").AuthedSupabaseClient;
118
+ supabase: import("../integrations/supabase/auth-middleware.js").AuthedSupabaseClient;
119
119
  userId: string;
120
120
  claims: import("@supabase/auth-js").User;
121
121
  }, undefined, undefined, undefined>], undefined, Promise<{
122
122
  pickDays: number;
123
123
  }>>;
124
124
  export declare const createManualOrder: import("@tanstack/start-client-core").OptionalFetcher<readonly [import("@tanstack/start-client-core").FunctionMiddlewareAfterServer<{}, unknown, undefined, {
125
- supabase: import("../integrations/supabase/auth-middleware").AuthedSupabaseClient;
125
+ supabase: import("../integrations/supabase/auth-middleware.js").AuthedSupabaseClient;
126
126
  userId: string;
127
127
  claims: import("@supabase/auth-js").User;
128
128
  }, undefined, undefined, undefined>], (input: unknown) => {
@@ -151,7 +151,7 @@ export declare const createManualOrder: import("@tanstack/start-client-core").Op
151
151
  orderId: string;
152
152
  }>>;
153
153
  export declare const cancelLocalOrder: import("@tanstack/start-client-core").OptionalFetcher<readonly [import("@tanstack/start-client-core").FunctionMiddlewareAfterServer<{}, unknown, undefined, {
154
- supabase: import("../integrations/supabase/auth-middleware").AuthedSupabaseClient;
154
+ supabase: import("../integrations/supabase/auth-middleware.js").AuthedSupabaseClient;
155
155
  userId: string;
156
156
  claims: import("@supabase/auth-js").User;
157
157
  }, undefined, undefined, undefined>], (input: unknown) => {
@@ -163,7 +163,7 @@ export declare const cancelLocalOrder: import("@tanstack/start-client-core").Opt
163
163
  reversedKeys: number;
164
164
  }>>;
165
165
  export declare const deleteLocalOrder: import("@tanstack/start-client-core").OptionalFetcher<readonly [import("@tanstack/start-client-core").FunctionMiddlewareAfterServer<{}, unknown, undefined, {
166
- supabase: import("../integrations/supabase/auth-middleware").AuthedSupabaseClient;
166
+ supabase: import("../integrations/supabase/auth-middleware.js").AuthedSupabaseClient;
167
167
  userId: string;
168
168
  claims: import("@supabase/auth-js").User;
169
169
  }, undefined, undefined, undefined>], (input: unknown) => {
@@ -178,7 +178,7 @@ export declare const deleteLocalOrder: import("@tanstack/start-client-core").Opt
178
178
  * voorstel plus zijn regels verwijderen.
179
179
  */
180
180
  export declare const deleteMailboxProposal: import("@tanstack/start-client-core").OptionalFetcher<readonly [import("@tanstack/start-client-core").FunctionMiddlewareAfterServer<{}, unknown, undefined, {
181
- supabase: import("../integrations/supabase/auth-middleware").AuthedSupabaseClient;
181
+ supabase: import("../integrations/supabase/auth-middleware.js").AuthedSupabaseClient;
182
182
  userId: string;
183
183
  claims: import("@supabase/auth-js").User;
184
184
  }, undefined, undefined, undefined>], (input: unknown) => {
@@ -187,7 +187,7 @@ export declare const deleteMailboxProposal: import("@tanstack/start-client-core"
187
187
  ok: true;
188
188
  }>>;
189
189
  export declare const getLocalOrderForEdit: import("@tanstack/start-client-core").OptionalFetcher<readonly [import("@tanstack/start-client-core").FunctionMiddlewareAfterServer<{}, unknown, undefined, {
190
- supabase: import("../integrations/supabase/auth-middleware").AuthedSupabaseClient;
190
+ supabase: import("../integrations/supabase/auth-middleware.js").AuthedSupabaseClient;
191
191
  userId: string;
192
192
  claims: import("@supabase/auth-js").User;
193
193
  }, undefined, undefined, undefined>], (input: unknown) => {
@@ -213,7 +213,7 @@ export declare const getLocalOrderForEdit: import("@tanstack/start-client-core")
213
213
  }[];
214
214
  }>>;
215
215
  export declare const updateLocalOrder: import("@tanstack/start-client-core").OptionalFetcher<readonly [import("@tanstack/start-client-core").FunctionMiddlewareAfterServer<{}, unknown, undefined, {
216
- supabase: import("../integrations/supabase/auth-middleware").AuthedSupabaseClient;
216
+ supabase: import("../integrations/supabase/auth-middleware.js").AuthedSupabaseClient;
217
217
  userId: string;
218
218
  claims: import("@supabase/auth-js").User;
219
219
  }, undefined, undefined, undefined>], (input: unknown) => {
@@ -238,7 +238,7 @@ export declare const updateLocalOrder: import("@tanstack/start-client-core").Opt
238
238
  ok: true;
239
239
  }>>;
240
240
  export declare const getEffectivePrices: import("@tanstack/start-client-core").OptionalFetcher<readonly [import("@tanstack/start-client-core").FunctionMiddlewareAfterServer<{}, unknown, undefined, {
241
- supabase: import("../integrations/supabase/auth-middleware").AuthedSupabaseClient;
241
+ supabase: import("../integrations/supabase/auth-middleware.js").AuthedSupabaseClient;
242
242
  userId: string;
243
243
  claims: import("@supabase/auth-js").User;
244
244
  }, undefined, undefined, undefined>], (input: unknown) => {
@@ -2,9 +2,9 @@
2
2
  // Deelt DB-queries met de Mailbox-module zodat beide manieren van
3
3
  // orderinvoer identieke lijsten, validaties en berekeningen gebruiken.
4
4
  import { createServerFn } from "@tanstack/react-start";
5
- import { productNameForStorage } from "./product-name";
5
+ import { productNameForStorage } from "./product-name.js";
6
6
  import { z } from "zod";
7
- import { requireSupabaseAuth } from "../integrations/supabase/auth-middleware";
7
+ import { requireSupabaseAuth } from "../integrations/supabase/auth-middleware.js";
8
8
  // ─── Klanten ────────────────────────────────────────────────────────────────
9
9
  // Bron 1: lokale `customers` (incl. eerder geïmporteerde Twinfield-klanten).
10
10
  // Bron 2: `twinfield_customers_cache` — klanten die alleen in Twinfield staan.
@@ -557,7 +557,7 @@ export const listBeladingOptionsForProducts = createServerFn({ method: "POST" })
557
557
  .middleware([requireSupabaseAuth])
558
558
  .inputValidator((input) => z.object({ productIds: z.array(z.string()).max(200) }).parse(input))
559
559
  .handler(async ({ data, context }) => {
560
- const { computeBeladingByProduct } = await import("./belading.server");
560
+ const { computeBeladingByProduct } = await import("./belading.server.js");
561
561
  const byProduct = await computeBeladingByProduct(context.supabase, data.productIds);
562
562
  return { byProduct };
563
563
  });
@@ -674,7 +674,7 @@ export const createManualOrder = createServerFn({ method: "POST" })
674
674
  // Voorraadcontrole van de Engine — die beslist of een order met producten
675
675
  // zonder voorraad aangemaakt mag worden.
676
676
  {
677
- const { assertOrderAllowed } = await import("./logistics-stock.server");
677
+ const { assertOrderAllowed } = await import("./logistics-stock.server.js");
678
678
  await assertOrderAllowed(context.supabase, data.lines.map((l) => ({ productId: l.product_id, quantity: Number(l.quantity) })));
679
679
  }
680
680
  // Validatie eerst mogelijke leverdatum — o.b.v. de aanmeldmomenten van de
@@ -684,7 +684,7 @@ export const createManualOrder = createServerFn({ method: "POST" })
684
684
  throw new Error("Selecteer een vervoerder");
685
685
  }
686
686
  // Ladingdrager: zonder keuze de standaard van de Engine; geen eigen controle.
687
- const { resolveLoadCarrierType } = await import("./load-carriers.server");
687
+ const { resolveLoadCarrierType } = await import("./load-carriers.server.js");
688
688
  const loadCarrierType = await resolveLoadCarrierType(context.supabase, data.loadCarrierType);
689
689
  const c = data.carrierId
690
690
  ? (await context.supabase
@@ -700,7 +700,7 @@ export const createManualOrder = createServerFn({ method: "POST" })
700
700
  .order("updated_at", { ascending: false })
701
701
  .limit(1).maybeSingle();
702
702
  const pickDays = Math.max(0, Number(settings?.pick_days_before_transport ?? 0));
703
- const { computeEarliestDelivery, nowInAmsterdam, resolveDeliveryTimeForDate } = await import("./carrier-availability");
703
+ const { computeEarliestDelivery, nowInAmsterdam, resolveDeliveryTimeForDate } = await import("./carrier-availability.js");
704
704
  const nowLocal = nowInAmsterdam();
705
705
  const earliest = computeEarliestDelivery(c, pickDays, nowLocal);
706
706
  // Aanlevertijd van het aanmeldmoment dat bij deze leverdatum hoort (bv. 20:00).
@@ -717,7 +717,7 @@ export const createManualOrder = createServerFn({ method: "POST" })
717
717
  throw new Error(`Leverdatum (${data.deliveryDate}) ligt voor de eerst mogelijke datum (${earliestISO}). Het eerstvolgende aanmeldmoment van de vervoerder is ${earliest.signupDeadlineISO ?? "onbekend"} (orderpicktijd ${pickDays}d, levertijd ${carrierDeliveryDays}d).`);
718
718
  }
719
719
  }
720
- const { supabaseAdmin } = await import("../integrations/supabase/client.server");
720
+ const { supabaseAdmin } = await import("../integrations/supabase/client.server.js");
721
721
  // Zorg dat elk product_id (= identiteit uit de voorraadmodule) een rij
722
722
  // in `products` heeft — de order_items FK vereist dit én de karindeling
723
723
  // van de Engine joined op products voor de packing-waarden.
@@ -867,7 +867,7 @@ export const createManualOrder = createServerFn({ method: "POST" })
867
867
  // deze module stoot dat niet zelf meer aan.
868
868
  // Logistics Engine informeren (schaduwmodus): Engine plant de keten.
869
869
  try {
870
- const { notifyEngineOrder } = await import("./logistics-engine.server");
870
+ const { notifyEngineOrder } = await import("./logistics-engine.server.js");
871
871
  await notifyEngineOrder(order.id, "order.received");
872
872
  }
873
873
  catch (err) {
@@ -885,7 +885,7 @@ export const cancelLocalOrder = createServerFn({ method: "POST" })
885
885
  .object({ orderId: z.string().uuid(), reason: z.string().max(500).optional() })
886
886
  .parse(input))
887
887
  .handler(async ({ data, context }) => {
888
- const { cancelLocalOrderInternal } = await import("./order-cancel.server");
888
+ const { cancelLocalOrderInternal } = await import("./order-cancel.server.js");
889
889
  return await cancelLocalOrderInternal({
890
890
  orderId: data.orderId,
891
891
  reason: data.reason ?? null,
@@ -901,7 +901,7 @@ export const deleteLocalOrder = createServerFn({ method: "POST" })
901
901
  .middleware([requireSupabaseAuth])
902
902
  .inputValidator((input) => z.object({ orderId: z.string().uuid() }).parse(input))
903
903
  .handler(async ({ data, context }) => {
904
- const { supabaseAdmin } = await import("../integrations/supabase/client.server");
904
+ const { supabaseAdmin } = await import("../integrations/supabase/client.server.js");
905
905
  const { data: order, error: oErr } = await supabaseAdmin
906
906
  .from("orders")
907
907
  .select("id, custom_fields, order_source")
@@ -1006,7 +1006,7 @@ export const deleteMailboxProposal = createServerFn({ method: "POST" })
1006
1006
  .middleware([requireSupabaseAuth])
1007
1007
  .inputValidator((input) => z.object({ proposalId: z.string().uuid() }).parse(input))
1008
1008
  .handler(async ({ data }) => {
1009
- const { supabaseAdmin } = await import("../integrations/supabase/client.server");
1009
+ const { supabaseAdmin } = await import("../integrations/supabase/client.server.js");
1010
1010
  const { data: proposal, error: pErr } = await supabaseAdmin
1011
1011
  .from("mailbox_order_proposals")
1012
1012
  .select("id, created_order_id")
@@ -1252,7 +1252,7 @@ export const updateLocalOrder = createServerFn({ method: "POST" })
1252
1252
  .middleware([requireSupabaseAuth])
1253
1253
  .inputValidator((input) => UpdateLocalOrderInput.parse(input))
1254
1254
  .handler(async ({ data, context }) => {
1255
- const { supabaseAdmin } = await import("../integrations/supabase/client.server");
1255
+ const { supabaseAdmin } = await import("../integrations/supabase/client.server.js");
1256
1256
  const { data: order, error: oErr } = await supabaseAdmin
1257
1257
  .from("orders")
1258
1258
  .select("id, custom_fields, order_source, is_reservation, plan_locked_at")
@@ -1324,7 +1324,7 @@ export const updateLocalOrder = createServerFn({ method: "POST" })
1324
1324
  for (const n of newItems)
1325
1325
  lines.push({ productId: n.productId, quantity: n.quantity });
1326
1326
  if (lines.length > 0) {
1327
- const { assertOrderAllowed } = await import("./logistics-stock.server");
1327
+ const { assertOrderAllowed } = await import("./logistics-stock.server.js");
1328
1328
  await assertOrderAllowed(context.supabase, lines);
1329
1329
  }
1330
1330
  }
@@ -1386,7 +1386,7 @@ export const updateLocalOrder = createServerFn({ method: "POST" })
1386
1386
  .select("delivery_days, signup_time_1, signup_time_2, signup_days_before_delivery, pickup_weekdays, delivery_weekdays, pickup_moments")
1387
1387
  .eq("id", cf.carrier)
1388
1388
  .maybeSingle();
1389
- const { resolveDeliveryTimeForDate, nowInAmsterdam } = await import("./carrier-availability");
1389
+ const { resolveDeliveryTimeForDate, nowInAmsterdam } = await import("./carrier-availability.js");
1390
1390
  newDeliveryTime =
1391
1391
  resolveDeliveryTimeForDate(carrierRow, data.deliveryDate, nowInAmsterdam()) ??
1392
1392
  newDeliveryTime;
@@ -1428,7 +1428,7 @@ export const updateLocalOrder = createServerFn({ method: "POST" })
1428
1428
  // Karindeling: de Logistiek Engine plant opnieuw in haar eigen ronde.
1429
1429
  // Logistics Engine informeren (schaduwmodus): Engine plant de keten.
1430
1430
  try {
1431
- const { notifyEngineOrder } = await import("./logistics-engine.server");
1431
+ const { notifyEngineOrder } = await import("./logistics-engine.server.js");
1432
1432
  await notifyEngineOrder(data.orderId, "order.changed");
1433
1433
  }
1434
1434
  catch (err) {
@@ -1,4 +1,4 @@
1
- export { replanCartsCron, replanCartsCronHint } from "./replan-carts";
2
- export { syncSalesOrdersCron, syncSalesOrdersCronHint } from "./sync-salesorders";
3
- export { invoiceDueCron, invoiceDueCronHint } from "./invoice-due";
1
+ export { replanCartsCron, replanCartsCronHint } from "./replan-carts.js";
2
+ export { syncSalesOrdersCron, syncSalesOrdersCronHint } from "./sync-salesorders.js";
3
+ export { invoiceDueCron, invoiceDueCronHint } from "./invoice-due.js";
4
4
  //# sourceMappingURL=index.d.ts.map
@@ -1,3 +1,3 @@
1
- export { replanCartsCron, replanCartsCronHint } from "./replan-carts";
2
- export { syncSalesOrdersCron, syncSalesOrdersCronHint } from "./sync-salesorders";
3
- export { invoiceDueCron, invoiceDueCronHint } from "./invoice-due";
1
+ export { replanCartsCron, replanCartsCronHint } from "./replan-carts.js";
2
+ export { syncSalesOrdersCron, syncSalesOrdersCronHint } from "./sync-salesorders.js";
3
+ export { invoiceDueCron, invoiceDueCronHint } from "./invoice-due.js";
@@ -1,4 +1,4 @@
1
- import { runInvoiceTimingCycle } from "../invoice-timing.server";
1
+ import { runInvoiceTimingCycle } from "../invoice-timing.server.js";
2
2
  export async function invoiceDueCron(request, _supabase) {
3
3
  const apikey = request.headers.get("apikey") ?? request.headers.get("x-api-key");
4
4
  const expected = process.env.SUPABASE_PUBLISHABLE_KEY;
@@ -1,4 +1,4 @@
1
- import { runSalesOrdersSyncFromCron } from "../salesorders.functions";
1
+ import { runSalesOrdersSyncFromCron } from "../salesorders.functions.js";
2
2
  const LOCK_KEY = "verkoop:salesorders-sync";
3
3
  const LOCK_SECONDS = 600;
4
4
  export async function syncSalesOrdersCron(request, _supabase) {
@@ -7,7 +7,7 @@ export async function syncSalesOrdersCron(request, _supabase) {
7
7
  if (!expected || !apikey || apikey !== expected) {
8
8
  return new Response("Unauthorized", { status: 401 });
9
9
  }
10
- const { supabaseAdmin } = await import("../../integrations/supabase/client.server");
10
+ const { supabaseAdmin } = await import("../../integrations/supabase/client.server.js");
11
11
  // Slot: voorkomt dat twee rondes elkaar overlappen. Faalt gesloten.
12
12
  const { data: acquired, error: lockErr } = await supabaseAdmin.rpc("try_acquire_job_lock", { _key: LOCK_KEY, _seconds: LOCK_SECONDS, _owner: "sync-salesorders" });
13
13
  if (lockErr) {
@@ -1,4 +1,4 @@
1
- import { runTradeItemsSyncFromCron } from "../tradeitems.functions";
1
+ import { runTradeItemsSyncFromCron } from "../tradeitems.functions.js";
2
2
  export async function syncTradeItemsCron(request, _supabase) {
3
3
  const apikey = request.headers.get("apikey") ?? request.headers.get("x-api-key");
4
4
  const expected = process.env.SUPABASE_PUBLISHABLE_KEY;
@@ -3,7 +3,7 @@
3
3
  // met de reden van de Engine.
4
4
  // - Open alarm sluit vanzelf zodra de Engine definitief = false en status "done" meldt.
5
5
  // - Fail closed: lukt een vraag niet, dan geen mail en niets vrijgeven.
6
- import { decideAlertAction, parseDefinitiveBlock } from "./engine-block-alerts";
6
+ import { decideAlertAction, parseDefinitiveBlock } from "./engine-block-alerts.js";
7
7
  export const ENGINE_BLOCK_REASON_KEY = "engine_definitief";
8
8
  const MAX_CHECKS = 200;
9
9
  export async function checkDefinitiveBlocks() {
@@ -11,7 +11,7 @@ export async function checkDefinitiveBlocks() {
11
11
  let mailed = 0;
12
12
  let closed = 0;
13
13
  try {
14
- const { supabaseAdmin } = await import("../integrations/supabase/client.server");
14
+ const { supabaseAdmin } = await import("../integrations/supabase/client.server.js");
15
15
  const sb = supabaseAdmin;
16
16
  // Open alarmen (op order-id).
17
17
  const { data: openRows, error: openErr } = await sb
@@ -32,7 +32,7 @@ export async function checkDefinitiveBlocks() {
32
32
  if (oErr)
33
33
  throw new Error(oErr.message);
34
34
  const candidateIds = (orders ?? []).map((o) => String(o.id));
35
- const { loadPlanCoverage } = await import("./plan-coverage.server");
35
+ const { loadPlanCoverage } = await import("./plan-coverage.server.js");
36
36
  const coverage = candidateIds.length ? await loadPlanCoverage(sb, candidateIds, "list") : new Map();
37
37
  const toCheck = new Set(openIds);
38
38
  for (const id of candidateIds) {
@@ -41,7 +41,7 @@ export async function checkDefinitiveBlocks() {
41
41
  toCheck.add(id);
42
42
  }
43
43
  }
44
- const { notifyOrderBlocked, clearOrderBlockNotifications } = await import("./order-block-mail.server");
44
+ const { notifyOrderBlocked, clearOrderBlockNotifications } = await import("./order-block-mail.server.js");
45
45
  for (const orderId of Array.from(toCheck).slice(0, MAX_CHECKS)) {
46
46
  const { data, error } = await sb.rpc("logistics_order_definitively_blocked", { p_order_id: orderId });
47
47
  if (error) {
@@ -1,5 +1,5 @@
1
1
  import type { SupabaseClient } from "@supabase/supabase-js";
2
- import type { PlannerInputItem } from "./cart-planner";
2
+ import type { PlannerInputItem } from "./cart-planner.js";
3
3
  export interface RawOrderItem {
4
4
  id: string;
5
5
  product_id: string | null;
@@ -1,6 +1,6 @@
1
1
  // Controle zonder testomgeving: `bun src/lib/floriday-change-diff.check.ts`.
2
- import { diffBuyerChanges } from "./floriday-change-diff";
3
- import { notReportedState } from "./floriday-status";
2
+ import { diffBuyerChanges } from "./floriday-change-diff.js";
3
+ import { notReportedState } from "./floriday-status.js";
4
4
  let failed = 0;
5
5
  const eq = (name, got, want) => {
6
6
  const ok = JSON.stringify(got) === JSON.stringify(want);
@@ -1,5 +1,5 @@
1
1
  import type { SupabaseClient } from "@supabase/supabase-js";
2
- import { type FloridayConnectionRow } from "./floriday-sync";
2
+ import { type FloridayConnectionRow } from "./floriday-sync.js";
3
3
  export type FlorydayEnvironment = "staging" | "live";
4
4
  export declare function apiBaseFor(env: FlorydayEnvironment | string | null | undefined): string;
5
5
  export declare function pickActiveConnection(supabase: SupabaseClient, env: FlorydayEnvironment | string): Promise<FloridayConnectionRow & {
@@ -1,5 +1,5 @@
1
- import { FLORIDAY_API_BASES } from "./floriday-sync";
2
- import { getFlorydayTokenFromCentral } from "./floriday-central-token.server";
1
+ import { FLORIDAY_API_BASES } from "./floriday-sync.js";
2
+ import { getFlorydayTokenFromCentral } from "./floriday-central-token.server.js";
3
3
  export function apiBaseFor(env) {
4
4
  return env === "live" || env === "production" || env === "prod"
5
5
  ? FLORIDAY_API_BASES.production
@@ -14,7 +14,7 @@ export interface DeliveryNoteDTO {
14
14
  errorMessage: string | null;
15
15
  }
16
16
  export declare const listLogisticLabelsForOrder: import("@tanstack/start-client-core").OptionalFetcher<readonly [import("@tanstack/start-client-core").FunctionMiddlewareAfterServer<{}, unknown, undefined, {
17
- supabase: import("../integrations/supabase/auth-middleware").AuthedSupabaseClient;
17
+ supabase: import("../integrations/supabase/auth-middleware.js").AuthedSupabaseClient;
18
18
  userId: string;
19
19
  claims: import("@supabase/auth-js").User;
20
20
  }, undefined, undefined, undefined>], (d: unknown) => {
@@ -24,7 +24,7 @@ export declare const listLogisticLabelsForOrder: import("@tanstack/start-client-
24
24
  orderNumber: string | null;
25
25
  }>>;
26
26
  export declare const registerDeliveryNote: import("@tanstack/start-client-core").OptionalFetcher<readonly [import("@tanstack/start-client-core").FunctionMiddlewareAfterServer<{}, unknown, undefined, {
27
- supabase: import("../integrations/supabase/auth-middleware").AuthedSupabaseClient;
27
+ supabase: import("../integrations/supabase/auth-middleware.js").AuthedSupabaseClient;
28
28
  userId: string;
29
29
  claims: import("@supabase/auth-js").User;
30
30
  }, undefined, undefined, undefined>], (d: unknown) => {
@@ -13,9 +13,9 @@
13
13
  // komen mee naar de UI (423 = levering nog in concept, 404 = niet gevonden).
14
14
  import { createServerFn } from "@tanstack/react-start";
15
15
  import { z } from "zod";
16
- import { requireSupabaseAuth } from "../integrations/supabase/auth-middleware";
17
- import { florydayFetchBinary } from "./floriday-gateway.server";
18
- import { resolveOrderRow } from "./order-row.server";
16
+ import { requireSupabaseAuth } from "../integrations/supabase/auth-middleware.js";
17
+ import { florydayFetchBinary } from "./floriday-gateway.server.js";
18
+ import { resolveOrderRow } from "./order-row.server.js";
19
19
  const BUCKET = "delivery-notes";
20
20
  function foutTekst(status, detail) {
21
21
  if (status === 423) {
@@ -109,7 +109,7 @@ export const listLogisticLabelsForOrder = createServerFn({ method: "POST" })
109
109
  .inputValidator((d) => ListSchema.parse(d))
110
110
  .handler(async ({ data, context }) => {
111
111
  const supabase = context.supabase;
112
- const { supabaseAdmin } = await import("../integrations/supabase/client.server");
112
+ const { supabaseAdmin } = await import("../integrations/supabase/client.server.js");
113
113
  // 1. Onze eigen order erbij zoeken (lokaal ordernummer koppelen).
114
114
  let orderId = null;
115
115
  let orderNumber = null;
@@ -265,7 +265,7 @@ export const registerDeliveryNote = createServerFn({ method: "POST" })
265
265
  .handler(async ({ data, context }) => {
266
266
  const supabase = context.supabase;
267
267
  const order = await resolveOrderRow(supabase, data.orderId);
268
- const { supabaseAdmin } = await import("../integrations/supabase/client.server");
268
+ const { supabaseAdmin } = await import("../integrations/supabase/client.server.js");
269
269
  const binair = atob(data.pdfBase64);
270
270
  const bytes = new Uint8Array(binair.length);
271
271
  for (let i = 0; i < binair.length; i++)
@@ -17,7 +17,7 @@ interface MirrorResult {
17
17
  }
18
18
  export declare function mirrorFloridayOrdersFromCron(limit?: number): Promise<MirrorResult>;
19
19
  export declare const mirrorFloridayOrders: import("@tanstack/start-client-core").OptionalFetcher<readonly [import("@tanstack/start-client-core").FunctionMiddlewareAfterServer<{}, unknown, undefined, {
20
- supabase: import("../integrations/supabase/auth-middleware").AuthedSupabaseClient;
20
+ supabase: import("../integrations/supabase/auth-middleware.js").AuthedSupabaseClient;
21
21
  userId: string;
22
22
  claims: import("@supabase/auth-js").User;
23
23
  }, undefined, undefined, undefined>], (input: unknown) => {
@@ -1 +1 @@
1
- {"version":3,"file":"floriday-mirror.functions.d.ts","sourceRoot":"","sources":["../../src/lib/floriday-mirror.functions.ts"],"names":[],"mappings":"AA+IA,UAAU,YAAY;IACpB,EAAE,EAAE,OAAO,CAAC;IACZ,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,0DAA0D;IAC1D,OAAO,CAAC,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,EAAE,CAAA;KAAE,EAAE,CAAC;IACnD,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAg3CD,wBAAsB,4BAA4B,CAAC,KAAK,SAAgB,yBAEvE;AAED,eAAO,MAAM,oBAAoB;;;;8CAEP,OAAO;;yBAG0C,CAAC"}
1
+ {"version":3,"file":"floriday-mirror.functions.d.ts","sourceRoot":"","sources":["../../src/lib/floriday-mirror.functions.ts"],"names":[],"mappings":"AA+IA,UAAU,YAAY;IACpB,EAAE,EAAE,OAAO,CAAC;IACZ,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,0DAA0D;IAC1D,OAAO,CAAC,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,EAAE,CAAA;KAAE,EAAE,CAAC;IACnD,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAs3CD,wBAAsB,4BAA4B,CAAC,KAAK,SAAgB,yBAEvE;AAED,eAAO,MAAM,oBAAoB;;;;8CAEP,OAAO;;yBAG0C,CAAC"}
@@ -1,4 +1,4 @@
1
- import { diffBuyerChanges } from "./floriday-change-diff";
1
+ import { diffBuyerChanges } from "./floriday-change-diff.js";
2
2
  // Spiegelt Floriday-verkooporders (FO's) uit `floriday_salesorders_cache`
3
3
  // naar de lokale `orders`-tabel, zodat ze via `resolveBufferForOrderInternal`
4
4
  // in dezelfde buffer terechtkomen als lokale orders en gedeelde karren
@@ -11,10 +11,10 @@ import { diffBuyerChanges } from "./floriday-change-diff";
11
11
  // nooit tegelijk dezelfde orders verwerken.
12
12
  import { createServerFn } from "@tanstack/react-start";
13
13
  import { z } from "zod";
14
- import { deriveOrderLevel } from "./floriday-order-level";
15
- import { productNameForStorage } from "./product-name";
16
- import { requireSupabaseAuth } from "../integrations/supabase/auth-middleware";
17
- import { resolveBufferForOrderInternal } from "./order-buffers.functions";
14
+ import { deriveOrderLevel } from "./floriday-order-level.js";
15
+ import { productNameForStorage } from "./product-name.js";
16
+ import { requireSupabaseAuth } from "../integrations/supabase/auth-middleware.js";
17
+ import { resolveBufferForOrderInternal } from "./order-buffers.functions.js";
18
18
  const LOOKBACK_DAYS = 14;
19
19
  const DEFAULT_BATCH = 200;
20
20
  /** Onbekend blijft onbekend: geen stilzwijgende 1. Zelfde helper als de planner. */
@@ -68,7 +68,7 @@ function buyerOrgIdOf(row) {
68
68
  * Maakt nooit klanten aan en overschrijft nooit een bestaande koppeling.
69
69
  */
70
70
  async function linkCustomersForFloridayOrders() {
71
- const { supabaseAdmin } = await import("../integrations/supabase/client.server");
71
+ const { supabaseAdmin } = await import("../integrations/supabase/client.server.js");
72
72
  const { data: custs, error: cErr } = await supabaseAdmin
73
73
  .from("customers")
74
74
  .select("id, floriday_organization_id")
@@ -135,7 +135,7 @@ function pickString(value) {
135
135
  const MIRROR_LOCK_KEY = "verkoop:floriday-mirror";
136
136
  const MIRROR_LOCK_SECONDS = 600;
137
137
  async function mirrorInternal(limit) {
138
- const { supabaseAdmin } = await import("../integrations/supabase/client.server");
138
+ const { supabaseAdmin } = await import("../integrations/supabase/client.server.js");
139
139
  const empty = (reason, ok) => ({
140
140
  ok, processed: 0, inserted: 0, updated: 0, skipped: 0, failed: 0, errors: ok ? [] : [reason], skipped_reason: reason,
141
141
  });
@@ -157,8 +157,8 @@ async function mirrorInternal(limit) {
157
157
  }
158
158
  }
159
159
  async function mirrorUnlocked(limit) {
160
- const { supabaseAdmin } = await import("../integrations/supabase/client.server");
161
- const { loadFloridayFulfillmentStates, expectedPackagesFromSalesOrder, isFullyFulfilled, } = await import("./floriday-fulfillment-status.server");
160
+ const { supabaseAdmin } = await import("../integrations/supabase/client.server.js");
161
+ const { loadFloridayFulfillmentStates, expectedPackagesFromSalesOrder, isFullyFulfilled, } = await import("./floriday-fulfillment-status.server.js");
162
162
  const cutoffIso = new Date(Date.now() - LOOKBACK_DAYS * 24 * 60 * 60 * 1000).toISOString();
163
163
  // Recente/toekomstige FO's uit de cache.
164
164
  const { data: cacheRows, error: cacheErr } = await supabaseAdmin
@@ -1081,9 +1081,16 @@ async function mirrorUnlocked(limit) {
1081
1081
  orderId = target.id;
1082
1082
  handledOrderIds.add(orderId);
1083
1083
  if (changedKeys.length > 0) {
1084
+ // Alleen gewijzigde velden, en ook in de database "alleen als anders"
1085
+ // (IS DISTINCT FROM): een gelijktijdige ronde schrijft dan niets.
1086
+ const { distinctFilter } = await import("./order-patch.js");
1087
+ const diff = {};
1088
+ for (const k of changedKeys)
1089
+ diff[k] = patch[k];
1084
1090
  const { error: uErr } = await supabaseAdmin.from("orders")
1085
- .update(patch)
1086
- .eq("id", orderId);
1091
+ .update(diff)
1092
+ .eq("id", orderId)
1093
+ .or(distinctFilter(diff));
1087
1094
  if (uErr)
1088
1095
  throw new Error(uErr.message);
1089
1096
  updated++;
@@ -1341,7 +1348,7 @@ async function mirrorUnlocked(limit) {
1341
1348
  // Annuleringen uit Floriday afhandelen (koppelprompt 1.0.77).
1342
1349
  for (const cid of Array.from(new Set(floridayCancelIds))) {
1343
1350
  try {
1344
- const { handleFloridayCancellation } = await import("./order-cancel.server");
1351
+ const { handleFloridayCancellation } = await import("./order-cancel.server.js");
1345
1352
  const res = await handleFloridayCancellation(cid);
1346
1353
  if (res !== "cancelled")
1347
1354
  errors.push(`${cid}: ${res}`);
@@ -1,5 +1,5 @@
1
1
  export declare const getFlorydayCachedList: import("@tanstack/start-client-core").OptionalFetcher<readonly [import("@tanstack/start-client-core").FunctionMiddlewareAfterServer<{}, unknown, undefined, {
2
- supabase: import("../integrations/supabase/auth-middleware").AuthedSupabaseClient;
2
+ supabase: import("../integrations/supabase/auth-middleware.js").AuthedSupabaseClient;
3
3
  userId: string;
4
4
  claims: import("@supabase/auth-js").User;
5
5
  }, undefined, undefined, undefined>], (d: unknown) => {
@@ -14,7 +14,7 @@ export declare const getFlorydayCachedList: import("@tanstack/start-client-core"
14
14
  rows: any;
15
15
  }>>;
16
16
  export declare const getFlorydayCodeList: import("@tanstack/start-client-core").OptionalFetcher<readonly [import("@tanstack/start-client-core").FunctionMiddlewareAfterServer<{}, unknown, undefined, {
17
- supabase: import("../integrations/supabase/auth-middleware").AuthedSupabaseClient;
17
+ supabase: import("../integrations/supabase/auth-middleware.js").AuthedSupabaseClient;
18
18
  userId: string;
19
19
  claims: import("@supabase/auth-js").User;
20
20
  }, undefined, undefined, undefined>], (d: unknown) => {
@@ -25,7 +25,7 @@ export declare const getFlorydayCodeList: import("@tanstack/start-client-core").
25
25
  items: any;
26
26
  }>>;
27
27
  export declare const getFlorydayAllowedValues: import("@tanstack/start-client-core").OptionalFetcher<readonly [import("@tanstack/start-client-core").FunctionMiddlewareAfterServer<{}, unknown, undefined, {
28
- supabase: import("../integrations/supabase/auth-middleware").AuthedSupabaseClient;
28
+ supabase: import("../integrations/supabase/auth-middleware.js").AuthedSupabaseClient;
29
29
  userId: string;
30
30
  claims: import("@supabase/auth-js").User;
31
31
  }, undefined, undefined, undefined>], (d: unknown) => {
@@ -36,7 +36,7 @@ export declare const getFlorydayAllowedValues: import("@tanstack/start-client-co
36
36
  values: any;
37
37
  }>>;
38
38
  export declare const assertFlorydayValue: import("@tanstack/start-client-core").OptionalFetcher<readonly [import("@tanstack/start-client-core").FunctionMiddlewareAfterServer<{}, unknown, undefined, {
39
- supabase: import("../integrations/supabase/auth-middleware").AuthedSupabaseClient;
39
+ supabase: import("../integrations/supabase/auth-middleware.js").AuthedSupabaseClient;
40
40
  userId: string;
41
41
  claims: import("@supabase/auth-js").User;
42
42
  }, undefined, undefined, undefined>], (d: unknown) => {
@@ -57,7 +57,7 @@ export declare const assertFlorydayValue: import("@tanstack/start-client-core").
57
57
  allowed: any;
58
58
  }>>;
59
59
  export declare const getFlorydayVbnProduct: import("@tanstack/start-client-core").OptionalFetcher<readonly [import("@tanstack/start-client-core").FunctionMiddlewareAfterServer<{}, unknown, undefined, {
60
- supabase: import("../integrations/supabase/auth-middleware").AuthedSupabaseClient;
60
+ supabase: import("../integrations/supabase/auth-middleware.js").AuthedSupabaseClient;
61
61
  userId: string;
62
62
  claims: import("@supabase/auth-js").User;
63
63
  }, undefined, undefined, undefined>], (d: unknown) => {
@@ -68,7 +68,7 @@ export declare const getFlorydayVbnProduct: import("@tanstack/start-client-core"
68
68
  items: any;
69
69
  }>>;
70
70
  export declare const getFlorydayResourceSchema: import("@tanstack/start-client-core").OptionalFetcher<readonly [import("@tanstack/start-client-core").FunctionMiddlewareAfterServer<{}, unknown, undefined, {
71
- supabase: import("../integrations/supabase/auth-middleware").AuthedSupabaseClient;
71
+ supabase: import("../integrations/supabase/auth-middleware.js").AuthedSupabaseClient;
72
72
  userId: string;
73
73
  claims: import("@supabase/auth-js").User;
74
74
  }, undefined, undefined, undefined>], (d: unknown) => {
@@ -76,7 +76,7 @@ export declare const getFlorydayResourceSchema: import("@tanstack/start-client-c
76
76
  version?: string | undefined;
77
77
  }, Promise<any>>;
78
78
  export declare const getActiveFloridayEnvironment: import("@tanstack/start-client-core").OptionalFetcher<readonly [import("@tanstack/start-client-core").FunctionMiddlewareAfterServer<{}, unknown, undefined, {
79
- supabase: import("../integrations/supabase/auth-middleware").AuthedSupabaseClient;
79
+ supabase: import("../integrations/supabase/auth-middleware.js").AuthedSupabaseClient;
80
80
  userId: string;
81
81
  claims: import("@supabase/auth-js").User;
82
82
  }, undefined, undefined, undefined>], undefined, Promise<{
@@ -2,7 +2,7 @@
2
2
  // Reads gaan via de lokale Supabase-cache; geen directe Floriday API-calls.
3
3
  import { createServerFn } from "@tanstack/react-start";
4
4
  import { z } from "zod";
5
- import { requireSupabaseAuth } from "../integrations/supabase/auth-middleware";
5
+ import { requireSupabaseAuth } from "../integrations/supabase/auth-middleware.js";
6
6
  const EnvSchema = z.enum(["staging", "live"]);
7
7
  // Toegestane cache-entities en hun tabel-mapping.
8
8
  const ENTITY_TABLE = {
@@ -272,7 +272,7 @@ export const getFlorydayResourceSchema = createServerFn({ method: "POST" })
272
272
  export const getActiveFloridayEnvironment = createServerFn({ method: "GET" })
273
273
  .middleware([requireSupabaseAuth])
274
274
  .handler(async () => {
275
- const { supabaseAdmin } = await import("../integrations/supabase/client.server");
275
+ const { supabaseAdmin } = await import("../integrations/supabase/client.server.js");
276
276
  const { data } = await supabaseAdmin
277
277
  .from("floriday_settings")
278
278
  .select("active_environment")
@@ -1,4 +1,4 @@
1
- import type { OrderStage } from "./order-status";
1
+ import type { OrderStage } from "./order-status.js";
2
2
  export type FloridayStage = "open" | "partially_fulfilled" | "fulfilled" | "cancelled" | "expired" | "unknown";
3
3
  export interface FloridayStatusEntry {
4
4
  salesOrderId: string;