@flowselections/floriday-voorraad 1.0.33 → 1.0.35

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 (62) hide show
  1. package/dist-lib/components/voorraad/ArtikelWizard.d.ts.map +1 -1
  2. package/dist-lib/components/voorraad/ArtikelWizard.js +11 -5
  3. package/dist-lib/components/voorraad/ModuleHealthCard.d.ts +2 -0
  4. package/dist-lib/components/voorraad/ModuleHealthCard.d.ts.map +1 -0
  5. package/dist-lib/components/voorraad/ModuleHealthCard.js +40 -0
  6. package/dist-lib/components/voorraad/StockBulkButtons.d.ts.map +1 -1
  7. package/dist-lib/components/voorraad/StockBulkButtons.js +5 -2
  8. package/dist-lib/components/voorraad/StockPushMonitor.d.ts +4 -0
  9. package/dist-lib/components/voorraad/StockPushMonitor.d.ts.map +1 -0
  10. package/dist-lib/components/voorraad/StockPushMonitor.js +110 -0
  11. package/dist-lib/components/voorraad/VoorraadPage.d.ts.map +1 -1
  12. package/dist-lib/components/voorraad/VoorraadPage.js +2 -1
  13. package/dist-lib/components/voorraad/VoorraadStockCard.d.ts.map +1 -1
  14. package/dist-lib/components/voorraad/VoorraadStockCard.js +114 -10
  15. package/dist-lib/hooks/useStockPushJobs.d.ts +23 -0
  16. package/dist-lib/hooks/useStockPushJobs.d.ts.map +1 -0
  17. package/dist-lib/hooks/useStockPushJobs.js +86 -0
  18. package/dist-lib/hooks/useTradeItemStock.d.ts +19 -5
  19. package/dist-lib/hooks/useTradeItemStock.d.ts.map +1 -1
  20. package/dist-lib/hooks/useTradeItemStock.js +36 -18
  21. package/dist-lib/hooks/useVoorraadData.d.ts.map +1 -1
  22. package/dist-lib/hooks/useVoorraadData.js +11 -3
  23. package/dist-lib/index.d.ts +1 -0
  24. package/dist-lib/index.d.ts.map +1 -1
  25. package/dist-lib/index.js +6 -1
  26. package/dist-lib/integrations/supabase/auth-middleware.d.ts +410 -4
  27. package/dist-lib/integrations/supabase/auth-middleware.d.ts.map +1 -1
  28. package/dist-lib/integrations/supabase/client.d.ts +410 -4
  29. package/dist-lib/integrations/supabase/client.d.ts.map +1 -1
  30. package/dist-lib/integrations/supabase/client.server.d.ts +410 -4
  31. package/dist-lib/integrations/supabase/client.server.d.ts.map +1 -1
  32. package/dist-lib/integrations/supabase/types.d.ts +411 -5
  33. package/dist-lib/integrations/supabase/types.d.ts.map +1 -1
  34. package/dist-lib/integrations/supabase/types.js +12 -1
  35. package/dist-lib/lib/centralSecrets.server.js +1 -1
  36. package/dist-lib/lib/floricode-required-features.functions.d.ts +410 -4
  37. package/dist-lib/lib/floricode-required-features.functions.d.ts.map +1 -1
  38. package/dist-lib/lib/floriday-customer-offer.functions.d.ts +410 -4
  39. package/dist-lib/lib/floriday-customer-offer.functions.d.ts.map +1 -1
  40. package/dist-lib/lib/floriday-env.functions.d.ts +820 -8
  41. package/dist-lib/lib/floriday-env.functions.d.ts.map +1 -1
  42. package/dist-lib/lib/floriday-gateway.functions.d.ts +2460 -24
  43. package/dist-lib/lib/floriday-gateway.functions.d.ts.map +1 -1
  44. package/dist-lib/lib/floriday-gateway.server.d.ts +14 -0
  45. package/dist-lib/lib/floriday-gateway.server.d.ts.map +1 -1
  46. package/dist-lib/lib/floriday-gateway.server.js +62 -10
  47. package/dist-lib/lib/floriday-vbn-required.functions.d.ts +820 -8
  48. package/dist-lib/lib/floriday-vbn-required.functions.d.ts.map +1 -1
  49. package/dist-lib/lib/floriday-warehouse.functions.d.ts +1230 -12
  50. package/dist-lib/lib/floriday-warehouse.functions.d.ts.map +1 -1
  51. package/dist-lib/lib/floriday-writes.functions.d.ts +820 -8
  52. package/dist-lib/lib/floriday-writes.functions.d.ts.map +1 -1
  53. package/dist-lib/lib/module-health.functions.d.ts +41725 -0
  54. package/dist-lib/lib/module-health.functions.d.ts.map +1 -0
  55. package/dist-lib/lib/module-health.functions.js +261 -0
  56. package/dist-lib/lib/module-runtime.server.d.ts +8 -1
  57. package/dist-lib/lib/module-runtime.server.d.ts.map +1 -1
  58. package/dist-lib/lib/module-runtime.server.js +103 -12
  59. package/dist-lib/lib/stock-sync.functions.d.ts +21302 -31
  60. package/dist-lib/lib/stock-sync.functions.d.ts.map +1 -1
  61. package/dist-lib/lib/stock-sync.functions.js +46 -3
  62. package/package.json +2 -2
@@ -1,15 +1,18 @@
1
1
  /**
2
- * Handmatig herstel van vastgelopen voorraadwijzigingen.
3
- * De wachtrij is alleen leesbaar voor de eigenaar; het terugzetten gebeurt
4
- * server-side zodat er geen schrijfrechten in de browser nodig zijn.
2
+ * Handmatig herstel van vastgelopen voorraadwijzigingen en het inplannen van
3
+ * een testpush. De wachtrij is alleen leesbaar voor de eigenaar; schrijven
4
+ * gebeurt server-side zodat er geen schrijfrechten in de browser nodig zijn.
5
5
  */
6
6
  import { createServerFn } from "@tanstack/react-start";
7
7
  import { requireSupabaseAuth } from "../integrations/supabase/auth-middleware";
8
+ import { z } from "zod";
8
9
  export const retryFailedStockSync = createServerFn({ method: "POST" })
9
10
  .middleware([requireSupabaseAuth])
10
11
  .handler(async ({ context }) => {
11
12
  const { supabaseAdmin } = await import("../integrations/supabase/client.server");
12
13
  const admin = supabaseAdmin;
14
+ // Eerst regels die bij een gecrashte verwerker zijn blijven hangen.
15
+ await admin.rpc("reset_stalled_floriday_stock_queue", { p_include_failed: false });
13
16
  const { data, error } = await admin
14
17
  .from("floriday_continuous_stock_queue")
15
18
  .update({
@@ -28,3 +31,43 @@ export const retryFailedStockSync = createServerFn({ method: "POST" })
28
31
  throw new Error(error.message);
29
32
  return { restored: (data ?? []).length };
30
33
  });
34
+ /**
35
+ * Zet één opdracht in de wachtrij met de huidige voorraadstand, zonder de
36
+ * voorraad te wijzigen. Zo is de hele keten te testen op een veilige manier:
37
+ * Floriday krijgt exact het aantal dat hier al bekend is.
38
+ */
39
+ export const enqueueTestStockPush = createServerFn({ method: "POST" })
40
+ .middleware([requireSupabaseAuth])
41
+ .inputValidator((data) => z.object({ tradeItemId: z.string().uuid() }).parse(data))
42
+ .handler(async ({ data, context }) => {
43
+ const { supabaseAdmin } = await import("../integrations/supabase/client.server");
44
+ const admin = supabaseAdmin;
45
+ const { data: stockRow, error: stockError } = await admin
46
+ .from("trade_item_stock")
47
+ .select("connection_id, physical_stock")
48
+ .eq("user_id", context.userId)
49
+ .eq("trade_item_key", data.tradeItemId)
50
+ .maybeSingle();
51
+ if (stockError)
52
+ throw new Error(stockError.message);
53
+ if (!stockRow) {
54
+ throw new Error("Voor dit artikel staat nog geen voorraadregel klaar. Zet eerst een aantal in de voorraad.");
55
+ }
56
+ const pieces = Math.max(0, Number(stockRow.physical_stock ?? 0) || 0);
57
+ const { data: inserted, error } = await admin
58
+ .from("floriday_continuous_stock_queue")
59
+ .insert({
60
+ user_id: context.userId,
61
+ connection_id: stockRow.connection_id,
62
+ trade_item_id: data.tradeItemId,
63
+ number_of_pieces: pieces,
64
+ desired_available: pieces > 0,
65
+ status: "pending",
66
+ next_attempt_at: new Date().toISOString(),
67
+ })
68
+ .select("id")
69
+ .maybeSingle();
70
+ if (error)
71
+ throw new Error(error.message);
72
+ return { id: inserted?.id ?? null, numberOfPieces: pieces };
73
+ });
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@flowselections/floriday-voorraad",
3
- "version": "1.0.33",
3
+ "version": "1.0.35",
4
4
  "sideEffects": false,
5
5
  "type": "module",
6
6
  "main": "./dist-lib/index.js",
@@ -45,7 +45,7 @@
45
45
  "@cloudflare/vite-plugin": "^1.25.5",
46
46
  "@eslint/js": "^9.32.0",
47
47
  "@flowselections/core": "1.0.16",
48
- "@lovable.dev/vite-tanstack-config": "2.12.0",
48
+ "@lovable.dev/vite-tanstack-config": "2.13.1",
49
49
  "@rsbuild/core": "^1.0.0",
50
50
  "@tailwindcss/vite": "^4.2.1",
51
51
  "@tanstack/router-plugin": "^1.167.10",