@flowselections/logistiek-engine 1.0.29 → 1.0.31

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 (46) hide show
  1. package/README.md +24 -24
  2. package/dist-lib/components/LogistiekEnginePage.d.ts.map +1 -1
  3. package/dist-lib/components/LogistiekEnginePage.js +2 -1
  4. package/dist-lib/components/WerkwijzeHerindelingCard.d.ts +2 -0
  5. package/dist-lib/components/WerkwijzeHerindelingCard.d.ts.map +1 -0
  6. package/dist-lib/components/WerkwijzeHerindelingCard.js +36 -0
  7. package/dist-lib/hooks/useRuleEngine.d.ts.map +1 -1
  8. package/dist-lib/hooks/useRuleEngine.js +7 -4
  9. package/dist-lib/hooks/useWerkwijzeStatus.d.ts +17 -0
  10. package/dist-lib/hooks/useWerkwijzeStatus.d.ts.map +1 -0
  11. package/dist-lib/hooks/useWerkwijzeStatus.js +58 -0
  12. package/dist-lib/index.d.ts +2 -0
  13. package/dist-lib/index.d.ts.map +1 -1
  14. package/dist-lib/index.js +2 -0
  15. package/dist-lib/integrations/supabase/auth-middleware.d.ts +154 -0
  16. package/dist-lib/integrations/supabase/auth-middleware.d.ts.map +1 -1
  17. package/dist-lib/integrations/supabase/client.d.ts +1516 -159
  18. package/dist-lib/integrations/supabase/client.d.ts.map +1 -1
  19. package/dist-lib/integrations/supabase/client.server.d.ts +154 -0
  20. package/dist-lib/integrations/supabase/client.server.d.ts.map +1 -1
  21. package/dist-lib/integrations/supabase/moduleClient.d.ts +154 -0
  22. package/dist-lib/integrations/supabase/moduleClient.d.ts.map +1 -1
  23. package/dist-lib/integrations/supabase/types.d.ts +154 -0
  24. package/dist-lib/integrations/supabase/types.d.ts.map +1 -1
  25. package/dist-lib/lib/floridayDocuments.functions.d.ts +462 -0
  26. package/dist-lib/lib/floridayDocuments.functions.d.ts.map +1 -1
  27. package/dist-lib/lib/floridayDocuments.server.d.ts +7 -1
  28. package/dist-lib/lib/floridayDocuments.server.d.ts.map +1 -1
  29. package/dist-lib/lib/floridayDocuments.server.js +25 -1
  30. package/dist-lib/lib/floridayPush.functions.d.ts +154 -0
  31. package/dist-lib/lib/floridayPush.functions.d.ts.map +1 -1
  32. package/dist-lib/lib/floridayPush.server.d.ts.map +1 -1
  33. package/dist-lib/lib/floridayPush.server.js +28 -0
  34. package/dist-lib/lib/handlers/logistics-tick.server.d.ts.map +1 -1
  35. package/dist-lib/lib/handlers/logistics-tick.server.js +14 -0
  36. package/dist-lib/lib/loadCarrierPlanning.functions.d.ts +770 -0
  37. package/dist-lib/lib/loadCarrierPlanning.functions.d.ts.map +1 -1
  38. package/dist-lib/lib/logisticsRecalcJob.functions.d.ts +308 -0
  39. package/dist-lib/lib/logisticsRecalcJob.functions.d.ts.map +1 -1
  40. package/dist-lib/lib/logisticsRecalculate.functions.d.ts +154 -0
  41. package/dist-lib/lib/logisticsRecalculate.functions.d.ts.map +1 -1
  42. package/dist-lib/lib/modulePrompts.d.ts.map +1 -1
  43. package/dist-lib/lib/modulePrompts.js +2613 -2406
  44. package/dist-lib/lib/ruleEngineSchema.d.ts.map +1 -1
  45. package/dist-lib/lib/ruleEngineSchema.js +7 -0
  46. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"floridayPush.server.d.ts","sourceRoot":"","sources":["../../src/lib/floridayPush.server.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAE5D,eAAO,MAAM,mBAAmB,KAAK,CAAC;AACtC,eAAO,MAAM,2BAA2B,MAAM,CAAC;AAc/C,mFAAmF;AACnF,wBAAgB,WAAW,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAUlD;AAcD,MAAM,WAAW,mBAAmB;IAClC,eAAe,EAAE,MAAM,CAAC;IACxB,qBAAqB,EAAE,MAAM,EAAE,CAAC;CACjC;AAED,MAAM,MAAM,WAAW,GACnB;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,OAAO,EAAE,mBAAmB,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GACxD;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,OAAO,CAAA;CAAE,CAAC;AAUnE;;;;GAIG;AACH,wBAAsB,8BAA8B,CAClD,EAAE,EAAE,cAAc,EAClB,YAAY,EAAE,MAAM,GACnB,OAAO,CACN;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,eAAe,EAAE,MAAM,CAAC;IAAC,qBAAqB,EAAE,MAAM,EAAE,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GACvF;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAC7C,CAqDA;AAED,8CAA8C;AAC9C,wBAAsB,oBAAoB,CACxC,EAAE,EAAE,cAAc,EAClB,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,WAAW,CAAC,CA+EtB;AAQD,wBAAsB,iBAAiB,CAAC,EAAE,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAW3F;AAED,wBAAsB,mBAAmB,CAAC,EAAE,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAGhG;AA6BD;;;;;;GAMG;AACH,MAAM,MAAM,WAAW,GAAG,IAAI,GAAG,OAAO,GAAG,mBAAmB,GAAG,gBAAgB,CAAC;AAElF,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,gBAAgB,EAAE,MAAM,CAAC;IACzB,aAAa,EAAE,MAAM,CAAC;IACtB,8EAA8E;IAC9E,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,wBAAsB,oBAAoB,CACxC,EAAE,EAAE,cAAc,EAClB,IAAI,GAAE;IAAE,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,UAAU,CAAC,EAAE,MAAM,CAAA;CAAO,GACjD,OAAO,CAAC,eAAe,CAAC,CA0J1B;AAQD,wBAAsB,wBAAwB,CAAC,EAAE,EAAE,cAAc,EAAE,IAAI,SAAK,GAAG,OAAO,CAAC,IAAI,CAAC,CAS3F"}
1
+ {"version":3,"file":"floridayPush.server.d.ts","sourceRoot":"","sources":["../../src/lib/floridayPush.server.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAE5D,eAAO,MAAM,mBAAmB,KAAK,CAAC;AACtC,eAAO,MAAM,2BAA2B,MAAM,CAAC;AAc/C,mFAAmF;AACnF,wBAAgB,WAAW,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAUlD;AAcD,MAAM,WAAW,mBAAmB;IAClC,eAAe,EAAE,MAAM,CAAC;IACxB,qBAAqB,EAAE,MAAM,EAAE,CAAC;CACjC;AAED,MAAM,MAAM,WAAW,GACnB;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,OAAO,EAAE,mBAAmB,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GACxD;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,OAAO,CAAA;CAAE,CAAC;AAUnE;;;;GAIG;AACH,wBAAsB,8BAA8B,CAClD,EAAE,EAAE,cAAc,EAClB,YAAY,EAAE,MAAM,GACnB,OAAO,CACN;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,eAAe,EAAE,MAAM,CAAC;IAAC,qBAAqB,EAAE,MAAM,EAAE,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GACvF;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAC7C,CAqDA;AAED,8CAA8C;AAC9C,wBAAsB,oBAAoB,CACxC,EAAE,EAAE,cAAc,EAClB,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,WAAW,CAAC,CA+EtB;AAQD,wBAAsB,iBAAiB,CAAC,EAAE,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAW3F;AAED,wBAAsB,mBAAmB,CAAC,EAAE,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAGhG;AA6BD;;;;;;GAMG;AACH,MAAM,MAAM,WAAW,GAAG,IAAI,GAAG,OAAO,GAAG,mBAAmB,GAAG,gBAAgB,CAAC;AAElF,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,gBAAgB,EAAE,MAAM,CAAC;IACzB,aAAa,EAAE,MAAM,CAAC;IACtB,8EAA8E;IAC9E,OAAO,EAAE,MAAM,CAAC;CACjB;AAYD,wBAAsB,oBAAoB,CACxC,EAAE,EAAE,cAAc,EAClB,IAAI,GAAE;IAAE,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,UAAU,CAAC,EAAE,MAAM,CAAA;CAAO,GACjD,OAAO,CAAC,eAAe,CAAC,CA0K1B;AAQD,wBAAsB,wBAAwB,CAAC,EAAE,EAAE,cAAc,EAAE,IAAI,SAAK,GAAG,OAAO,CAAC,IAAI,CAAC,CAS3F"}
@@ -206,6 +206,16 @@ function gatewayErrorCode(status, payloadOk) {
206
206
  return "gateway_4xx";
207
207
  return "unknown";
208
208
  }
209
+ /** Is er een goedgekeurde karrencontrole voor deze order? Fail closed. */
210
+ async function isApproved(sb, orderRef) {
211
+ try {
212
+ const { data } = await sb.rpc("logistics_floriday_order_approved", { _order_ref: orderRef });
213
+ return data === true;
214
+ }
215
+ catch {
216
+ return false;
217
+ }
218
+ }
209
219
  export async function runFloridayPushQueue(sb, opts = {}) {
210
220
  const limit = opts.limit ?? FLORIDAY_PUSH_BATCH;
211
221
  const deadlineAt = opts.deadlineAt ?? Date.now() + 10000;
@@ -219,6 +229,16 @@ export async function runFloridayPushQueue(sb, opts = {}) {
219
229
  notApplicable: 0,
220
230
  unknown: 0,
221
231
  };
232
+ // Poort 1: staat de schakelaar uit, dan verwerken we de wachtrij niet.
233
+ // Fail closed: onleesbaar betekent niet versturen.
234
+ try {
235
+ const { data } = await sb.rpc("logistics_floriday_status_updates_enabled");
236
+ if (data !== true)
237
+ return out;
238
+ }
239
+ catch {
240
+ return out;
241
+ }
222
242
  let claimed = [];
223
243
  try {
224
244
  const { data } = await sb.rpc("logistics_floriday_claim_pushes", {
@@ -268,6 +288,14 @@ export async function runFloridayPushQueue(sb, opts = {}) {
268
288
  sentHash = built.hash;
269
289
  out.skipped++;
270
290
  }
291
+ else if (!(await isApproved(sb, orderRef))) {
292
+ // Poort 2: zonder goedgekeurde karrencontrole gaat er niets naar
293
+ // Floriday. Geen eindstatus: zodra de controle is goedgekeurd mag het.
294
+ outcome = "error";
295
+ permanent = false;
296
+ error = "Nog geen goedgekeurde karrencontrole; de order wordt niet afgehandeld in Floriday.";
297
+ errorCode = "not_approved";
298
+ }
271
299
  else {
272
300
  const res = await sendFlorydayFulfillmentOrder(sb, built.payload);
273
301
  gatewayStatus = typeof res?.status === "number" ? res.status : null;
@@ -1 +1 @@
1
- {"version":3,"file":"logistics-tick.server.d.ts","sourceRoot":"","sources":["../../../src/lib/handlers/logistics-tick.server.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAQ5D,wBAAsB,mBAAmB,CACvC,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,cAAc,GACvB,OAAO,CAAC,QAAQ,CAAC,CA2JnB"}
1
+ {"version":3,"file":"logistics-tick.server.d.ts","sourceRoot":"","sources":["../../../src/lib/handlers/logistics-tick.server.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAQ5D,wBAAsB,mBAAmB,CACvC,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,cAAc,GACvB,OAAO,CAAC,QAAQ,CAAC,CA4KnB"}
@@ -92,6 +92,19 @@ export async function handleLogisticsTick(request, supabase) {
92
92
  catch (e) {
93
93
  bufferQueue = { error: String(e?.message ?? e) };
94
94
  }
95
+ // Afgehandelde orderbuffers sluiten, dat melden aan de andere modules en
96
+ // orders die er ná de afhandeling in kwamen weer losmaken (fail closed:
97
+ // karren met print-, scan- of controlebewijs blijven ongemoeid).
98
+ let buffers = null;
99
+ try {
100
+ const { data, error } = await supabase.rpc("logistics_buffer_detach_late_orders", {
101
+ p_buffer: null,
102
+ });
103
+ buffers = error ? { error: error.message } : data;
104
+ }
105
+ catch (e) {
106
+ buffers = { error: String(e?.message ?? e) };
107
+ }
95
108
  // Floriday-pushwachtrij verwerken binnen dezelfde aanroep, met eigen marge.
96
109
  let push = null;
97
110
  try {
@@ -142,6 +155,7 @@ export async function handleLogisticsTick(request, supabase) {
142
155
  plan,
143
156
  orphans,
144
157
  bufferQueue,
158
+ buffers,
145
159
  pickupMoments,
146
160
  push,
147
161
  control,