@flowselections/floriday-authenticatie-module 1.0.41 → 1.0.42
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.
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { SupabaseClient } from "@supabase/supabase-js";
|
|
2
|
-
export declare function deriveFulfillmentOrderId(deliveryOrderId: string): string
|
|
2
|
+
export declare function deriveFulfillmentOrderId(deliveryOrderId: string): Promise<string>;
|
|
3
3
|
export declare function resolvePackageCount(req: any): number | null;
|
|
4
4
|
export interface SkippedFulfillmentRequest {
|
|
5
5
|
fulfillmentRequestId: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fulfillment-order-body.d.ts","sourceRoot":"","sources":["../../../src/lib/gateway/fulfillment-order-body.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"fulfillment-order-body.d.ts","sourceRoot":"","sources":["../../../src/lib/gateway/fulfillment-order-body.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAqD5D,wBAAgB,wBAAwB,CAAC,eAAe,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAEjF;AAWD,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,GAAG,GAAG,MAAM,GAAG,IAAI,CAO3D;AAMD,MAAM,WAAW,yBAAyB;IACxC,oBAAoB,EAAE,MAAM,CAAC;IAC7B,MAAM,EAAE,mBAAmB,GAAG,iBAAiB,CAAC;CACjD;AAED,MAAM,MAAM,+BAA+B,GACvC;IACE,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC9B,kBAAkB,EAAE,MAAM,CAAC;IAC3B,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,OAAO,EAAE,yBAAyB,EAAE,CAAC;CACtC,GACD;IACE,IAAI,EAAE,mBAAmB,CAAC;IAC1B,IAAI,EAAE,mBAAmB,CAAC;IAC1B,MAAM,EAAE,0BAA0B,CAAC;IACnC,OAAO,EAAE,MAAM,CAAC;IAChB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,OAAO,EAAE,yBAAyB,EAAE,CAAC;CACtC,GACD;IACE,IAAI,EAAE,OAAO,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,+DAA+D;IAC/D,SAAS,EAAE,OAAO,CAAC;CACpB,CAAC;AAEN,MAAM,WAAW,8BAA8B;IAC7C,YAAY,EAAE,MAAM,CAAC;IACrB,eAAe,EAAE,MAAM,CAAC;IACxB,0DAA0D;IAC1D,iBAAiB,EAAE,GAAG,CAAC;IACvB,8DAA8D;IAC9D,qBAAqB,CAAC,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;CACzC;AAqBD,MAAM,MAAM,0BAA0B,GAClC,uBAAuB,GACvB,0BAA0B,CAAC;AAE/B,MAAM,MAAM,oBAAoB,GAC5B;IACE,IAAI,EAAE,mBAAmB,CAAC;IAC1B,MAAM,EAAE,0BAA0B,CAAC;IACnC,OAAO,EAAE,MAAM,CAAC;IAChB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,OAAO,EAAE,yBAAyB,EAAE,CAAC;CACtC,GACD;IACE,IAAI,EAAE,2BAA2B,CAAC;IAClC,OAAO,EAAE,MAAM,CAAC;CACjB,GACD;IAAE,IAAI,EAAE,eAAe,CAAA;CAAE,CAAC;AAyC9B,MAAM,WAAW,2BAA2B;IAC1C,YAAY,EAAE,MAAM,CAAC;IACrB,eAAe,EAAE,MAAM,CAAC;IACxB,+EAA+E;IAC/E,iBAAiB,CAAC,EAAE,GAAG,CAAC;IACxB,qBAAqB,CAAC,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;CACzC;AAED,wBAAsB,sBAAsB,CAC1C,QAAQ,EAAE,cAAc,EACxB,KAAK,EAAE,2BAA2B,GACjC,OAAO,CAAC,oBAAoB,CAAC,CA0D/B;AAOD,wBAAsB,yBAAyB,CAC7C,QAAQ,EAAE,cAAc,EACxB,KAAK,EAAE,8BAA8B,GACpC,OAAO,CAAC,+BAA+B,CAAC,CA2N1C"}
|
|
@@ -7,7 +7,6 @@
|
|
|
7
7
|
// De body wordt volledig opgebouwd uit de delivery-order-cache plus een join
|
|
8
8
|
// op de sales-order-cache; er wordt niets verzonnen. Ontbrekende gegevens
|
|
9
9
|
// leiden tot een expliciete fout, nooit tot een stille aanname.
|
|
10
|
-
import { createHash } from "node:crypto";
|
|
11
10
|
// ---------------------------------------------------------------------------
|
|
12
11
|
// fulfillmentOrderId — deterministische UUIDv5
|
|
13
12
|
// ---------------------------------------------------------------------------
|
|
@@ -28,18 +27,30 @@ import { createHash } from "node:crypto";
|
|
|
28
27
|
// worden uitgebreid met een discriminator én moet de gekozen waarde worden
|
|
29
28
|
// vastgelegd, anders overschrijven de pushes elkaars identiteit.
|
|
30
29
|
const FULFILLMENT_ORDER_NAMESPACE = "6f9a1e2c-7d34-4c1b-9a5e-3b8f0d2c4a71";
|
|
31
|
-
|
|
30
|
+
// Web Crypto in plaats van node:crypto — dit bestand wordt ook client-side
|
|
31
|
+
// gebundeld; Node-builtins bestaan daar niet.
|
|
32
|
+
function toHex(bytes) {
|
|
33
|
+
return Array.from(bytes)
|
|
34
|
+
.map((b) => b.toString(16).padStart(2, "0"))
|
|
35
|
+
.join("");
|
|
36
|
+
}
|
|
37
|
+
async function uuidV5(name, namespace) {
|
|
32
38
|
const hex = namespace.replace(/-/g, "");
|
|
33
39
|
if (hex.length !== 32)
|
|
34
40
|
throw new Error("Ongeldige namespace-GUID");
|
|
35
|
-
const nsBytes =
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
const
|
|
41
|
+
const nsBytes = new Uint8Array(16);
|
|
42
|
+
for (let i = 0; i < 16; i++) {
|
|
43
|
+
nsBytes[i] = parseInt(hex.slice(i * 2, i * 2 + 2), 16);
|
|
44
|
+
}
|
|
45
|
+
const nameBytes = new TextEncoder().encode(name);
|
|
46
|
+
const input = new Uint8Array(nsBytes.length + nameBytes.length);
|
|
47
|
+
input.set(nsBytes, 0);
|
|
48
|
+
input.set(nameBytes, nsBytes.length);
|
|
49
|
+
const digest = new Uint8Array(await globalThis.crypto.subtle.digest("SHA-1", input));
|
|
50
|
+
const bytes = digest.slice(0, 16);
|
|
40
51
|
bytes[6] = (bytes[6] & 0x0f) | 0x50; // versie 5
|
|
41
52
|
bytes[8] = (bytes[8] & 0x3f) | 0x80; // RFC 4122 variant
|
|
42
|
-
const h = bytes
|
|
53
|
+
const h = toHex(bytes);
|
|
43
54
|
return `${h.slice(0, 8)}-${h.slice(8, 12)}-${h.slice(12, 16)}-${h.slice(16, 20)}-${h.slice(20)}`;
|
|
44
55
|
}
|
|
45
56
|
export function deriveFulfillmentOrderId(deliveryOrderId) {
|
|
@@ -313,7 +324,7 @@ export async function buildFulfillmentOrderBody(supabase, input) {
|
|
|
313
324
|
loadCarrierItems: items,
|
|
314
325
|
});
|
|
315
326
|
}
|
|
316
|
-
const fulfillmentOrderId = deriveFulfillmentOrderId(deliveryOrderId);
|
|
327
|
+
const fulfillmentOrderId = await deriveFulfillmentOrderId(deliveryOrderId);
|
|
317
328
|
const body = {
|
|
318
329
|
type: "DIRECT_SALES",
|
|
319
330
|
fulfillmentOrderId,
|