@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
@@ -6,7 +6,7 @@
6
6
  //
7
7
  // De mail wordt in public.email_auth_outbox gezet; de e-mailmodule verstuurt
8
8
  // hem in haar eigen verwerkingsronde.
9
- import { buildBlockMailLines, buyerLabel } from "./engine-block-alerts";
9
+ import { buildBlockMailLines, buyerLabel } from "./engine-block-alerts.js";
10
10
  const EMAIL_PURPOSE = "internal";
11
11
  function escapeHtml(value) {
12
12
  return value
@@ -25,7 +25,7 @@ export async function notifyOrderBlocked(input) {
25
25
  if (orderIds.length === 0)
26
26
  return { sent: 0, warnings };
27
27
  try {
28
- const { supabaseAdmin } = await import("../integrations/supabase/client.server");
28
+ const { supabaseAdmin } = await import("../integrations/supabase/client.server.js");
29
29
  // 1) Claim per order+reden. Alleen nieuw geclaimde orders worden gemaild.
30
30
  const claimed = [];
31
31
  for (const orderId of orderIds) {
@@ -136,7 +136,7 @@ export async function clearOrderBlockNotifications(orderIds) {
136
136
  if (ids.length === 0)
137
137
  return;
138
138
  try {
139
- const { supabaseAdmin } = await import("../integrations/supabase/client.server");
139
+ const { supabaseAdmin } = await import("../integrations/supabase/client.server.js");
140
140
  await supabaseAdmin.from("order_block_notifications").delete().in("order_id", ids);
141
141
  }
142
142
  catch (err) {
@@ -1,7 +1,7 @@
1
1
  /** Leest de door de Engine gezette buffer-id van een order (alleen lezen). */
2
2
  export declare function resolveBufferForOrderInternal(orderId: string): Promise<string | null>;
3
3
  export declare const resolveBufferForOrder: import("@tanstack/start-client-core").OptionalFetcher<readonly [import("@tanstack/start-client-core").FunctionMiddlewareAfterServer<{}, unknown, undefined, {
4
- supabase: import("../integrations/supabase/auth-middleware").AuthedSupabaseClient;
4
+ supabase: import("../integrations/supabase/auth-middleware.js").AuthedSupabaseClient;
5
5
  userId: string;
6
6
  claims: import("@supabase/auth-js").User;
7
7
  }, undefined, undefined, undefined>], (input: unknown) => {
@@ -11,7 +11,7 @@ export declare const resolveBufferForOrder: import("@tanstack/start-client-core"
11
11
  }>>;
12
12
  /** Haalt alle orders van dezelfde buffer als de gegeven order. */
13
13
  export declare const listOrdersInBufferOfOrder: import("@tanstack/start-client-core").OptionalFetcher<readonly [import("@tanstack/start-client-core").FunctionMiddlewareAfterServer<{}, unknown, undefined, {
14
- supabase: import("../integrations/supabase/auth-middleware").AuthedSupabaseClient;
14
+ supabase: import("../integrations/supabase/auth-middleware.js").AuthedSupabaseClient;
15
15
  userId: string;
16
16
  claims: import("@supabase/auth-js").User;
17
17
  }, undefined, undefined, undefined>], (input: unknown) => {
@@ -26,7 +26,7 @@ export declare const listOrdersInBufferOfOrder: import("@tanstack/start-client-c
26
26
  order_number: string;
27
27
  customer_name: string;
28
28
  delivery_date: string | null;
29
- custom_fields: import("../integrations/supabase/types").Json;
29
+ custom_fields: import("../integrations/supabase/types.js").Json;
30
30
  }[];
31
31
  }>>;
32
32
  //# sourceMappingURL=order-buffers.functions.d.ts.map
@@ -3,11 +3,11 @@
3
3
  // Logistics Engine. Leeg = losse order.
4
4
  import { createServerFn } from "@tanstack/react-start";
5
5
  import { z } from "zod";
6
- import { requireSupabaseAuth } from "../integrations/supabase/auth-middleware";
7
- import { resolveOrderRow } from "./order-row.server";
6
+ import { requireSupabaseAuth } from "../integrations/supabase/auth-middleware.js";
7
+ import { resolveOrderRow } from "./order-row.server.js";
8
8
  /** Leest de door de Engine gezette buffer-id van een order (alleen lezen). */
9
9
  export async function resolveBufferForOrderInternal(orderId) {
10
- const { supabaseAdmin } = await import("../integrations/supabase/client.server");
10
+ const { supabaseAdmin } = await import("../integrations/supabase/client.server.js");
11
11
  const { data } = await supabaseAdmin
12
12
  .from("orders")
13
13
  .select("buffer_id")
@@ -11,7 +11,7 @@ export const CANCELLED_STATUS = "geannuleerd";
11
11
  * Retourneert het aantal geraakte voorraadsleutels en logregels.
12
12
  */
13
13
  export async function reverseOrderStockMutations(orderId, opts) {
14
- const { supabaseAdmin } = await import("../integrations/supabase/client.server");
14
+ const { supabaseAdmin } = await import("../integrations/supabase/client.server.js");
15
15
  const { data: mutations, error: mErr } = await supabaseAdmin
16
16
  .from("stock_mutation_log")
17
17
  .select("trade_item_key, qty_delta, physical_before, physical_after, reserved_before, reserved_after, mutation_type")
@@ -79,7 +79,7 @@ export async function reverseOrderStockMutations(orderId, opts) {
79
79
  }
80
80
  /** Annuleert één lokale order: voorraad terug, uit planning, status geannuleerd. */
81
81
  export async function cancelLocalOrderInternal(input) {
82
- const { supabaseAdmin } = await import("../integrations/supabase/client.server");
82
+ const { supabaseAdmin } = await import("../integrations/supabase/client.server.js");
83
83
  const { data: order, error: oErr } = await supabaseAdmin
84
84
  .from("orders")
85
85
  .select("id, status, custom_fields, order_source, floriday_sales_order_id")
@@ -120,7 +120,7 @@ export async function cancelLocalOrderInternal(input) {
120
120
  throw new Error(`Annuleren faalde: ${uErr.message}`);
121
121
  // Engine informeren zodat buffering/transport de order laat vallen.
122
122
  try {
123
- const { notifyEngineOrder } = await import("./logistics-engine.server");
123
+ const { notifyEngineOrder } = await import("./logistics-engine.server.js");
124
124
  await notifyEngineOrder(input.orderId, "order.changed");
125
125
  }
126
126
  catch (err) {
@@ -137,7 +137,7 @@ export const FLORIDAY_CANCEL_PICKED_MESSAGE = "Koper heeft geannuleerd in Florid
137
137
  * melding voor handmatige beoordeling. Schrijft nooit order_carts (Engine).
138
138
  */
139
139
  export async function handleFloridayCancellation(orderId) {
140
- const { supabaseAdmin } = await import("../integrations/supabase/client.server");
140
+ const { supabaseAdmin } = await import("../integrations/supabase/client.server.js");
141
141
  const { data: order, error } = await supabaseAdmin
142
142
  .from("orders")
143
143
  .select("id, status, plan_locked_at, custom_fields, order_source")
@@ -155,7 +155,7 @@ export async function handleFloridayCancellation(orderId) {
155
155
  // Pickstand alleen uit de Engine; fail closed.
156
156
  let picked = null;
157
157
  try {
158
- const { loadPlanCoverage } = await import("./plan-coverage.server");
158
+ const { loadPlanCoverage } = await import("./plan-coverage.server.js");
159
159
  const cov = (await loadPlanCoverage(supabaseAdmin, [orderId], "detail")).get(orderId);
160
160
  if (cov && cov.state !== "onbekend") {
161
161
  picked =
@@ -209,7 +209,7 @@ export async function handleFloridayCancellation(orderId) {
209
209
  if (uErr)
210
210
  throw new Error(`Annuleren faalde: ${uErr.message}`);
211
211
  try {
212
- const { notifyEngineOrder } = await import("./logistics-engine.server");
212
+ const { notifyEngineOrder } = await import("./logistics-engine.server.js");
213
213
  await notifyEngineOrder(orderId, "order.changed");
214
214
  }
215
215
  catch (err) {
@@ -3,7 +3,7 @@ export interface CarrierOption {
3
3
  name: string;
4
4
  }
5
5
  export declare const getOrderCarrier: import("@tanstack/start-client-core").OptionalFetcher<readonly [import("@tanstack/start-client-core").FunctionMiddlewareAfterServer<{}, unknown, undefined, {
6
- supabase: import("../integrations/supabase/auth-middleware").AuthedSupabaseClient;
6
+ supabase: import("../integrations/supabase/auth-middleware.js").AuthedSupabaseClient;
7
7
  userId: string;
8
8
  claims: import("@supabase/auth-js").User;
9
9
  }, undefined, undefined, undefined>], (input: unknown) => {
@@ -15,7 +15,7 @@ export declare const getOrderCarrier: import("@tanstack/start-client-core").Opti
15
15
  options: CarrierOption[];
16
16
  }>>;
17
17
  export declare const setOrderCarrier: 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>], (input: unknown) => {
@@ -1,8 +1,8 @@
1
1
  // Vervoerder (carrier) van een order of orderbuffer lezen en wijzigen.
2
2
  import { createServerFn } from "@tanstack/react-start";
3
3
  import { z } from "zod";
4
- import { requireSupabaseAuth } from "../integrations/supabase/auth-middleware";
5
- import { assertRowsAffected, resolveOrderRow } from "./order-row.server";
4
+ import { requireSupabaseAuth } from "../integrations/supabase/auth-middleware.js";
5
+ import { assertRowsAffected, resolveOrderRow } from "./order-row.server.js";
6
6
  async function findOrder(supabase, orderId) {
7
7
  // DTO-id kan een Floriday salesOrderId zijn; resolveOrderRow vertaalt dat.
8
8
  const row = await resolveOrderRow(supabase, orderId);
@@ -1,5 +1,5 @@
1
1
  export declare const markOrdersShipped: 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>], (input: unknown) => {
@@ -3,8 +3,8 @@
3
3
  // vereist bewijs van vertrek (alle karren verzonden of dekkende zendingen).
4
4
  import { createServerFn } from "@tanstack/react-start";
5
5
  import { z } from "zod";
6
- import { requireSupabaseAuth } from "../integrations/supabase/auth-middleware";
7
- import { resolveOrderRow } from "./order-row.server";
6
+ import { requireSupabaseAuth } from "../integrations/supabase/auth-middleware.js";
7
+ import { resolveOrderRow } from "./order-row.server.js";
8
8
  const Input = z.object({
9
9
  orderIds: z.array(z.string().min(1)).min(1).max(200),
10
10
  });
@@ -12,7 +12,7 @@ export const markOrdersShipped = createServerFn({ method: "POST" })
12
12
  .middleware([requireSupabaseAuth])
13
13
  .inputValidator((input) => Input.parse(input))
14
14
  .handler(async ({ data, context }) => {
15
- const { supabaseAdmin } = await import("../integrations/supabase/client.server");
15
+ const { supabaseAdmin } = await import("../integrations/supabase/client.server.js");
16
16
  const results = [];
17
17
  for (const raw of data.orderIds) {
18
18
  try {
@@ -14,7 +14,7 @@ export interface OrderItemPackingRow {
14
14
  * Floriday sales-order-id zijn (resolveOrderRow vertaalt dat).
15
15
  */
16
16
  export declare const listOrderItemPacking: 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>], (input: unknown) => {
@@ -24,7 +24,7 @@ export declare const listOrderItemPacking: import("@tanstack/start-client-core")
24
24
  }>>;
25
25
  /** Zet de belading van één orderregel handmatig vast. */
26
26
  export declare const setOrderItemPacking: 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>], (input: unknown) => {
@@ -38,7 +38,7 @@ export declare const setOrderItemPacking: import("@tanstack/start-client-core").
38
38
  }>>;
39
39
  /** Haal de handmatige markering weg; de regel volgt weer de standaardbelading. */
40
40
  export declare const clearOrderItemPackingLock: import("@tanstack/start-client-core").OptionalFetcher<readonly [import("@tanstack/start-client-core").FunctionMiddlewareAfterServer<{}, unknown, undefined, {
41
- supabase: import("../integrations/supabase/auth-middleware").AuthedSupabaseClient;
41
+ supabase: import("../integrations/supabase/auth-middleware.js").AuthedSupabaseClient;
42
42
  userId: string;
43
43
  claims: import("@supabase/auth-js").User;
44
44
  }, undefined, undefined, undefined>], (input: unknown) => {
@@ -9,10 +9,10 @@
9
9
  // De correctie is strikt lokaal: hij wordt NOOIT teruggestuurd als wijziging
10
10
  // van het Floriday-artikel zelf — dat loopt uitsluitend via de voorraad-module.
11
11
  import { createServerFn } from "@tanstack/react-start";
12
- import { productNameForStorage } from "./product-name";
12
+ import { productNameForStorage } from "./product-name.js";
13
13
  import { z } from "zod";
14
- import { requireSupabaseAuth } from "../integrations/supabase/auth-middleware";
15
- import { resolveOrderRow } from "./order-row.server";
14
+ import { requireSupabaseAuth } from "../integrations/supabase/auth-middleware.js";
15
+ import { resolveOrderRow } from "./order-row.server.js";
16
16
  /**
17
17
  * Belading per bestelregel van één order, inclusief de handmatige
18
18
  * "vastgezet"-markering. `orderId` mag een lokale orders.id of een
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=order-patch.check.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"order-patch.check.d.ts","sourceRoot":"","sources":["../../src/lib/order-patch.check.ts"],"names":[],"mappings":""}
@@ -0,0 +1,40 @@
1
+ // Controle zonder testomgeving: `bun src/lib/order-patch.check.ts`.
2
+ import { diffPatch, distinctFilter } from "./order-patch.js";
3
+ let failed = 0;
4
+ const eq = (name, got, want) => {
5
+ const ok = JSON.stringify(got) === JSON.stringify(want);
6
+ if (!ok)
7
+ failed++;
8
+ console.log(`${ok ? "OK " : "FOUT"} ${name}${ok ? "" : ` — kreeg ${JSON.stringify(got)}`}`);
9
+ };
10
+ const row = {
11
+ status: "Nog te picken",
12
+ delivery_date: "2026-10-16",
13
+ invoice_due_at: "2026-10-16T16:00:00+00:00",
14
+ total: "12.50",
15
+ custom_fields: { a: 1, b: { c: 2 } },
16
+ };
17
+ // Niets veranderd → niets opslaan
18
+ eq("alles gelijk → leeg", diffPatch(row, { ...row }), {});
19
+ eq("zelfde moment, andere notatie", diffPatch(row, { invoice_due_at: "2026-10-16T16:00:00.000Z" }), {});
20
+ eq("jsonb andere volgorde", diffPatch(row, { custom_fields: { b: { c: 2 }, a: 1 } }), {});
21
+ eq("bedrag 12.5 = 12.50", diffPatch(row, { total: "12.5" }), {});
22
+ eq("leeg blijft leeg", diffPatch({ invoice_due_at: null }, { invoice_due_at: null }), {});
23
+ // Echte wijziging → wél opslaan
24
+ eq("nieuwe status uit Floriday", diffPatch(row, { status: "geannuleerd" }), { status: "geannuleerd" });
25
+ eq("nieuwe leverdatum", diffPatch(row, { delivery_date: "2026-10-17" }), { delivery_date: "2026-10-17" });
26
+ eq("gewijzigd factuurmoment", diffPatch(row, { invoice_due_at: "2026-10-17T16:00:00.000Z" }), { invoice_due_at: "2026-10-17T16:00:00.000Z" });
27
+ eq("gewijzigde extra gegevens", Object.keys(diffPatch(row, { custom_fields: { a: 2, b: { c: 2 } } })), ["custom_fields"]);
28
+ eq("leeg → gevuld", diffPatch({ invoice_due_at: null }, { invoice_due_at: "2026-10-17T16:00:00.000Z" }), { invoice_due_at: "2026-10-17T16:00:00.000Z" });
29
+ eq("gevuld → leeg", diffPatch(row, { invoice_due_at: null }), { invoice_due_at: null });
30
+ eq("alleen gewijzigd veld mee", Object.keys(diffPatch(row, { status: row.status, total: "13" })), ["total"]);
31
+ // Voorwaarde in de database
32
+ eq("filter naar leeg", distinctFilter({ invoice_due_at: null }), "invoice_due_at.not.is.null");
33
+ eq("filter met waarde", distinctFilter({ status: "Gereed voor facturatie" }), 'status.is.null,status.neq."Gereed voor facturatie"');
34
+ eq("filter jsonb", distinctFilter({ custom_fields: { a: "x,y" } }), 'custom_fields.is.null,custom_fields.neq."{\\"a\\":\\"x,y\\"}"');
35
+ eq("lege patch → geen filter", distinctFilter({}), null);
36
+ if (failed) {
37
+ console.log(`${failed} controle(s) mislukt`);
38
+ process.exit(1);
39
+ }
40
+ console.log("Alle controles geslaagd");
@@ -0,0 +1,18 @@
1
+ export declare function sameJson(a: unknown, b: unknown): boolean;
2
+ export declare function sameValue(key: string, prev: unknown, next: unknown): boolean;
3
+ /** Alleen de velden die echt anders zijn dan de huidige rij. */
4
+ export declare function diffPatch<T extends Record<string, unknown>>(current: Record<string, unknown> | null | undefined, patch: T): Partial<T>;
5
+ /**
6
+ * PostgREST `or`-filter: de rij wordt alleen geraakt als minstens één veld uit
7
+ * de patch in de database anders is (IS DISTINCT FROM). Leeg → null.
8
+ */
9
+ export declare function distinctFilter(patch: Record<string, unknown>): string | null;
10
+ /**
11
+ * Slaat alleen gewijzigde velden op, met de "alleen als anders"-voorwaarde ook
12
+ * in de database. Geeft het aantal echt bijgewerkte rijen (0 of 1).
13
+ */
14
+ export declare function updateOrderIfChanged(supabase: any, orderId: string, current: Record<string, unknown> | null | undefined, patch: Record<string, unknown>): Promise<{
15
+ written: number;
16
+ changed: string[];
17
+ }>;
18
+ //# sourceMappingURL=order-patch.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"order-patch.d.ts","sourceRoot":"","sources":["../../src/lib/order-patch.ts"],"names":[],"mappings":"AAwBA,wBAAgB,QAAQ,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,GAAG,OAAO,CAExD;AAQD,wBAAgB,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,GAAG,OAAO,CAe5E;AAED,gEAAgE;AAChE,wBAAgB,SAAS,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACzD,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,GAAG,SAAS,EACnD,KAAK,EAAE,CAAC,GACP,OAAO,CAAC,CAAC,CAAC,CAQZ;AAMD;;;GAGG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,GAAG,IAAI,CAY5E;AAED;;;GAGG;AACH,wBAAsB,oBAAoB,CACxC,QAAQ,EAAE,GAAG,EACb,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,GAAG,SAAS,EACnD,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC7B,OAAO,CAAC;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,EAAE,CAAA;CAAE,CAAC,CAYjD"}
@@ -0,0 +1,105 @@
1
+ // Alleen opslaan wat echt verandert. Elke opslag op `orders` laat triggers van
2
+ // andere modules afgaan (planning, factuurkoppelingen, updated_at), dus een
3
+ // gelijke waarde terugschrijven mag nooit.
4
+ //
5
+ // 1) diffPatch: vergelijking vooraf (jsonb op inhoud, tijdstippen als moment).
6
+ // 2) distinctFilter: dezelfde voorwaarde ook in de database (IS DISTINCT FROM),
7
+ // zodat twee rondes tegelijk niet allebei schrijven.
8
+ const DATE_KEYS = new Set(["delivery_date", "order_date"]);
9
+ const NUMERIC_KEYS = new Set(["total"]);
10
+ function canon(v) {
11
+ if (Array.isArray(v))
12
+ return v.map(canon);
13
+ if (v && typeof v === "object") {
14
+ const out = {};
15
+ for (const k of Object.keys(v).sort()) {
16
+ const x = v[k];
17
+ if (x !== undefined)
18
+ out[k] = canon(x);
19
+ }
20
+ return out;
21
+ }
22
+ return v;
23
+ }
24
+ export function sameJson(a, b) {
25
+ return JSON.stringify(canon(a ?? null)) === JSON.stringify(canon(b ?? null));
26
+ }
27
+ function asInstant(v) {
28
+ if (v === null || v === undefined || v === "")
29
+ return null;
30
+ const t = new Date(String(v)).getTime();
31
+ return Number.isNaN(t) ? null : t;
32
+ }
33
+ export function sameValue(key, prev, next) {
34
+ const pNull = prev === null || prev === undefined;
35
+ const nNull = next === null || next === undefined;
36
+ if (pNull || nNull)
37
+ return pNull && nNull;
38
+ if (typeof next === "object" || typeof prev === "object")
39
+ return sameJson(prev, next);
40
+ if (NUMERIC_KEYS.has(key))
41
+ return Number(prev) === Number(next);
42
+ if (DATE_KEYS.has(key))
43
+ return String(prev).slice(0, 10) === String(next).slice(0, 10);
44
+ const ps = String(prev);
45
+ const ns = String(next);
46
+ if (ps === ns)
47
+ return true;
48
+ // Tijdstippen in een andere notatie/tijdzone: zelfde moment = gelijk.
49
+ if (/^\d{4}-\d{2}-\d{2}T/.test(ps) && /^\d{4}-\d{2}-\d{2}T/.test(ns)) {
50
+ return asInstant(ps) === asInstant(ns);
51
+ }
52
+ return false;
53
+ }
54
+ /** Alleen de velden die echt anders zijn dan de huidige rij. */
55
+ export function diffPatch(current, patch) {
56
+ const out = {};
57
+ for (const k of Object.keys(patch)) {
58
+ const next = patch[k];
59
+ if (next === undefined)
60
+ continue;
61
+ if (!sameValue(k, current?.[k], next))
62
+ out[k] = next;
63
+ }
64
+ return out;
65
+ }
66
+ function quote(v) {
67
+ return `"${v.replace(/\\/g, "\\\\").replace(/"/g, '\\"')}"`;
68
+ }
69
+ /**
70
+ * PostgREST `or`-filter: de rij wordt alleen geraakt als minstens één veld uit
71
+ * de patch in de database anders is (IS DISTINCT FROM). Leeg → null.
72
+ */
73
+ export function distinctFilter(patch) {
74
+ const parts = [];
75
+ for (const [k, v] of Object.entries(patch)) {
76
+ if (v === undefined)
77
+ continue;
78
+ if (v === null) {
79
+ parts.push(`${k}.not.is.null`);
80
+ continue;
81
+ }
82
+ const lit = typeof v === "object" ? JSON.stringify(v) : String(v);
83
+ parts.push(`${k}.is.null`, `${k}.neq.${quote(lit)}`);
84
+ }
85
+ return parts.length ? parts.join(",") : null;
86
+ }
87
+ /**
88
+ * Slaat alleen gewijzigde velden op, met de "alleen als anders"-voorwaarde ook
89
+ * in de database. Geeft het aantal echt bijgewerkte rijen (0 of 1).
90
+ */
91
+ export async function updateOrderIfChanged(supabase, orderId, current, patch) {
92
+ const diff = diffPatch(current, patch);
93
+ const changed = Object.keys(diff);
94
+ if (changed.length === 0)
95
+ return { written: 0, changed };
96
+ const filter = distinctFilter(diff);
97
+ const { data, error } = await supabase.from("orders")
98
+ .update(diff)
99
+ .eq("id", orderId)
100
+ .or(filter)
101
+ .select("id");
102
+ if (error)
103
+ throw new Error(error.message);
104
+ return { written: (data ?? []).length, changed };
105
+ }
@@ -10,7 +10,7 @@ export interface PickupMomentOption {
10
10
  }
11
11
  export declare function buildPickupOptions(carrier: any | null, deliveryISO: string | null): PickupMomentOption[];
12
12
  export declare const getOrderPickupMoment: import("@tanstack/start-client-core").OptionalFetcher<readonly [import("@tanstack/start-client-core").FunctionMiddlewareAfterServer<{}, unknown, undefined, {
13
- supabase: import("../integrations/supabase/auth-middleware").AuthedSupabaseClient;
13
+ supabase: import("../integrations/supabase/auth-middleware.js").AuthedSupabaseClient;
14
14
  userId: string;
15
15
  claims: import("@supabase/auth-js").User;
16
16
  }, undefined, undefined, undefined>], (input: unknown) => {
@@ -27,7 +27,7 @@ export declare const getOrderPickupMoment: import("@tanstack/start-client-core")
27
27
  hasCarrier: boolean;
28
28
  }>>;
29
29
  export declare const setOrderPickupMoment: import("@tanstack/start-client-core").OptionalFetcher<readonly [import("@tanstack/start-client-core").FunctionMiddlewareAfterServer<{}, unknown, undefined, {
30
- supabase: import("../integrations/supabase/auth-middleware").AuthedSupabaseClient;
30
+ supabase: import("../integrations/supabase/auth-middleware.js").AuthedSupabaseClient;
31
31
  userId: string;
32
32
  claims: import("@supabase/auth-js").User;
33
33
  }, undefined, undefined, undefined>], (input: unknown) => {
@@ -1,9 +1,9 @@
1
1
  // Ophaalmoment (pickup moment) van een order lezen en wijzigen.
2
2
  import { createServerFn } from "@tanstack/react-start";
3
3
  import { z } from "zod";
4
- import { requireSupabaseAuth } from "../integrations/supabase/auth-middleware";
5
- import { normalizeTime } from "./carrier-availability";
6
- import { assertRowsAffected, resolveOrderRow } from "./order-row.server";
4
+ import { requireSupabaseAuth } from "../integrations/supabase/auth-middleware.js";
5
+ import { normalizeTime } from "./carrier-availability.js";
6
+ import { assertRowsAffected, resolveOrderRow } from "./order-row.server.js";
7
7
  function addDaysISO(iso, n) {
8
8
  const [y, m, d] = iso.split("-").map(Number);
9
9
  const dt = new Date(y, (m ?? 1) - 1, d ?? 1);
@@ -1,5 +1,5 @@
1
1
  export declare const listOrderShipments: 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>], (input: unknown) => {
@@ -40,7 +40,7 @@ export declare const listOrderShipments: import("@tanstack/start-client-core").O
40
40
  }[];
41
41
  }>>;
42
42
  export declare const createShipment: import("@tanstack/start-client-core").OptionalFetcher<readonly [import("@tanstack/start-client-core").FunctionMiddlewareAfterServer<{}, unknown, undefined, {
43
- supabase: import("../integrations/supabase/auth-middleware").AuthedSupabaseClient;
43
+ supabase: import("../integrations/supabase/auth-middleware.js").AuthedSupabaseClient;
44
44
  userId: string;
45
45
  claims: import("@supabase/auth-js").User;
46
46
  }, undefined, undefined, undefined>], (input: unknown) => {
@@ -60,7 +60,7 @@ export declare const createShipment: import("@tanstack/start-client-core").Optio
60
60
  shipmentId: string;
61
61
  }>>;
62
62
  export declare const markShipmentShipped: import("@tanstack/start-client-core").OptionalFetcher<readonly [import("@tanstack/start-client-core").FunctionMiddlewareAfterServer<{}, unknown, undefined, {
63
- supabase: import("../integrations/supabase/auth-middleware").AuthedSupabaseClient;
63
+ supabase: import("../integrations/supabase/auth-middleware.js").AuthedSupabaseClient;
64
64
  userId: string;
65
65
  claims: import("@supabase/auth-js").User;
66
66
  }, undefined, undefined, undefined>], (input: unknown) => {
@@ -69,7 +69,7 @@ export declare const markShipmentShipped: import("@tanstack/start-client-core").
69
69
  ok: true;
70
70
  }>>;
71
71
  export declare const cancelShipment: import("@tanstack/start-client-core").OptionalFetcher<readonly [import("@tanstack/start-client-core").FunctionMiddlewareAfterServer<{}, unknown, undefined, {
72
- supabase: import("../integrations/supabase/auth-middleware").AuthedSupabaseClient;
72
+ supabase: import("../integrations/supabase/auth-middleware.js").AuthedSupabaseClient;
73
73
  userId: string;
74
74
  claims: import("@supabase/auth-js").User;
75
75
  }, undefined, undefined, undefined>], (input: unknown) => {
@@ -5,10 +5,10 @@
5
5
  // - deleteShipment : annuleert een geplande levering
6
6
  // - markShipmentShipped : boekt voorraad af via RPC (fysiek + gereserveerd)
7
7
  import { createServerFn } from "@tanstack/react-start";
8
- import { productNameForStorage } from "./product-name";
8
+ import { productNameForStorage } from "./product-name.js";
9
9
  import { z } from "zod";
10
- import { requireSupabaseAuth } from "../integrations/supabase/auth-middleware";
11
- import { resolveOrderRow } from "./order-row.server";
10
+ import { requireSupabaseAuth } from "../integrations/supabase/auth-middleware.js";
11
+ import { resolveOrderRow } from "./order-row.server.js";
12
12
  const ShipmentItemInput = z.object({
13
13
  orderItemId: z.string().uuid(),
14
14
  productId: z.string().uuid().nullable().optional(),
@@ -128,7 +128,7 @@ export const createShipment = createServerFn({ method: "POST" })
128
128
  .handler(async ({ data, context }) => {
129
129
  const orderRow = await resolveOrderRow(context.supabase, data.orderId);
130
130
  await assertRemainingCapacity(context.supabase, orderRow.id, data.items.map((i) => ({ orderItemId: i.orderItemId, quantity: i.quantity })));
131
- const { supabaseAdmin } = await import("../integrations/supabase/client.server");
131
+ const { supabaseAdmin } = await import("../integrations/supabase/client.server.js");
132
132
  const { data: shipment, error } = await supabaseAdmin.from("order_shipments")
133
133
  .insert({
134
134
  order_id: orderRow.id,
@@ -160,7 +160,7 @@ export const markShipmentShipped = createServerFn({ method: "POST" })
160
160
  .middleware([requireSupabaseAuth])
161
161
  .inputValidator((input) => z.object({ shipmentId: z.string().uuid() }).parse(input))
162
162
  .handler(async ({ data }) => {
163
- const { supabaseAdmin } = await import("../integrations/supabase/client.server");
163
+ const { supabaseAdmin } = await import("../integrations/supabase/client.server.js");
164
164
  const { error } = await supabaseAdmin.rpc("mark_shipment_shipped", {
165
165
  p_shipment_id: data.shipmentId,
166
166
  });
@@ -183,7 +183,7 @@ export const cancelShipment = createServerFn({ method: "POST" })
183
183
  if (s.status === "shipped") {
184
184
  throw new Error("Reeds verzonden bezorgmomenten kunnen niet worden geannuleerd.");
185
185
  }
186
- const { supabaseAdmin } = await import("../integrations/supabase/client.server");
186
+ const { supabaseAdmin } = await import("../integrations/supabase/client.server.js");
187
187
  const { error } = await supabaseAdmin.from("order_shipments").delete().eq("id", data.shipmentId);
188
188
  if (error)
189
189
  throw new Error(error.message);
@@ -1,6 +1,6 @@
1
1
  // Test (draait mee in de typecontrole én als script: `bun src/lib/plan-coverage.check.ts`).
2
2
  // Ontbrekende tellingen moeten "onbekend" tonen, nooit "0".
3
- import { combinedCartCount, coverageDetailText, parsePlanCoverageListRow, summarize } from "./plan-coverage";
3
+ import { combinedCartCount, coverageDetailText, parsePlanCoverageListRow, summarize } from "./plan-coverage.js";
4
4
  function eq(actual, expected, name) {
5
5
  if (actual !== expected)
6
6
  throw new Error(`${name}: verwacht "${expected}", kreeg "${actual}"`);
@@ -1,3 +1,3 @@
1
- import { type PlanCoverage } from "./plan-coverage";
1
+ import { type PlanCoverage } from "./plan-coverage.js";
2
2
  export declare function loadPlanCoverage(supabase: any, orderIds: string[], mode?: "list" | "detail"): Promise<Map<string, PlanCoverage>>;
3
3
  //# sourceMappingURL=plan-coverage.server.d.ts.map
@@ -7,7 +7,7 @@
7
7
  // - Details (mode "detail"): per order, want alleen die geeft karren en pickrijen.
8
8
  // - Kort geheugen per order-id zodat opnieuw tekenen geen nieuwe vragen doet.
9
9
  // - Fail closed: een fout geeft "Indeling onbekend", nooit "Geen indeling".
10
- import { parsePlanCoverage, parsePlanCoverageListRow, unknownCoverage } from "./plan-coverage";
10
+ import { parsePlanCoverage, parsePlanCoverageListRow, unknownCoverage } from "./plan-coverage.js";
11
11
  const TTL_MS = 30000;
12
12
  const CONCURRENCY = 12;
13
13
  const cache = new Map(); // sleutel: mode:orderId
@@ -12,7 +12,7 @@ export interface ProductDimensionRow {
12
12
  incomplete: boolean;
13
13
  }
14
14
  export declare const listProductDimensions: import("@tanstack/start-client-core").OptionalFetcher<readonly [import("@tanstack/start-client-core").FunctionMiddlewareAfterServer<{}, unknown, undefined, {
15
- supabase: import("../integrations/supabase/auth-middleware").AuthedSupabaseClient;
15
+ supabase: import("../integrations/supabase/auth-middleware.js").AuthedSupabaseClient;
16
16
  userId: string;
17
17
  claims: import("@supabase/auth-js").User;
18
18
  }, undefined, undefined, undefined>], (input: unknown) => {
@@ -24,7 +24,7 @@ export declare const listProductDimensions: import("@tanstack/start-client-core"
24
24
  incompleteCount: number;
25
25
  }>>;
26
26
  export declare const saveProductDimensions: 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>], (input: unknown) => {
@@ -3,7 +3,7 @@
3
3
  // deze module vult alleen de maten aan en verzint nooit een waarde.
4
4
  import { createServerFn } from "@tanstack/react-start";
5
5
  import { z } from "zod";
6
- import { requireSupabaseAuth } from "../integrations/supabase/auth-middleware";
6
+ import { requireSupabaseAuth } from "../integrations/supabase/auth-middleware.js";
7
7
  export const listProductDimensions = createServerFn({ method: "GET" })
8
8
  .middleware([requireSupabaseAuth])
9
9
  .inputValidator((input) => z
@@ -1,5 +1,5 @@
1
1
  export declare const listSalesOrders: 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>], (input: unknown) => {
@@ -12,17 +12,17 @@ export declare const listSalesOrders: import("@tanstack/start-client-core").Opti
12
12
  search?: string | undefined;
13
13
  status?: string | undefined;
14
14
  all?: boolean | undefined;
15
- }, Promise<import("./salesorders-list.server").ListResult>>;
15
+ }, Promise<import("./salesorders-list.server.js").ListResult>>;
16
16
  export declare const getLocalSalesOrderDetail: 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>], (input: unknown) => {
21
21
  id: string;
22
22
  }, Promise<{
23
- order: import("./salesorders-mapping").SalesOrderDTO | null;
23
+ order: import("./salesorders-mapping.js").SalesOrderDTO | null;
24
24
  bufferId: string | null;
25
- bufferSiblings: import("./salesorders-mapping").SalesOrderDTO[];
25
+ bufferSiblings: import("./salesorders-mapping.js").SalesOrderDTO[];
26
26
  sellerFallback: string | null;
27
27
  environment: "staging" | "live";
28
28
  }>>;
@@ -2,8 +2,8 @@
2
2
  // Alle logica staat in salesorders-list.server.ts.
3
3
  import { createServerFn } from "@tanstack/react-start";
4
4
  import { z } from "zod";
5
- import { requireSupabaseAuth } from "../integrations/supabase/auth-middleware";
6
- import { buildSalesOrdersList } from "./salesorders-list.server";
5
+ import { requireSupabaseAuth } from "../integrations/supabase/auth-middleware.js";
6
+ import { buildSalesOrdersList } from "./salesorders-list.server.js";
7
7
  const listInput = z.object({
8
8
  since: z.string().optional(),
9
9
  until: z.string().optional(),
@@ -21,7 +21,7 @@ export const listSalesOrders = createServerFn({ method: "POST" })
21
21
  .middleware([requireSupabaseAuth])
22
22
  .inputValidator((input) => listInput.parse(input ?? {}))
23
23
  .handler(async ({ data, context }) => {
24
- const { supabaseAdmin } = await import("../integrations/supabase/client.server");
24
+ const { supabaseAdmin } = await import("../integrations/supabase/client.server.js");
25
25
  return buildSalesOrdersList(context.supabase, data, supabaseAdmin);
26
26
  });
27
27
  const localDetailInput = z.object({
@@ -31,7 +31,7 @@ export const getLocalSalesOrderDetail = createServerFn({ method: "POST" })
31
31
  .middleware([requireSupabaseAuth])
32
32
  .inputValidator((input) => localDetailInput.parse(input))
33
33
  .handler(async ({ data, context }) => {
34
- const { supabaseAdmin } = await import("../integrations/supabase/client.server");
34
+ const { supabaseAdmin } = await import("../integrations/supabase/client.server.js");
35
35
  const result = await buildSalesOrdersList(context.supabase, {
36
36
  dateField: "ordered",
37
37
  tab: "all",