@flowselections/floriday-afhandeling-module 1.0.61 → 1.0.63
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.
- package/dist-lib/components/afhandeling/AutoSendStatus.d.ts +9 -2
- package/dist-lib/components/afhandeling/AutoSendStatus.d.ts.map +1 -1
- package/dist-lib/components/afhandeling/AutoSendStatus.js +70 -6
- package/dist-lib/components/afhandeling/DagDetailDialog.js +39 -24
- package/dist-lib/components/afhandeling/LeveringenPage.d.ts.map +1 -1
- package/dist-lib/components/afhandeling/LeveringenPage.js +3 -1
- package/dist-lib/components/afhandeling/NuVersturenButton.d.ts.map +1 -1
- package/dist-lib/components/afhandeling/NuVersturenButton.js +4 -4
- package/dist-lib/components/afhandeling/PickAgendaView.d.ts.map +1 -1
- package/dist-lib/components/afhandeling/PickAgendaView.js +9 -7
- package/dist-lib/components/afhandeling/ScanControleView.d.ts.map +1 -1
- package/dist-lib/components/afhandeling/ScanControleView.js +2 -2
- package/dist-lib/components/afhandeling/VerzetOrderDialog.js +3 -3
- package/dist-lib/components/afhandeling/WeekAgendaView.js +5 -2
- package/dist-lib/components/settings/AfhandelingSettingsCard.js +1 -1
- package/dist-lib/hooks/useOrderPlanning.d.ts.map +1 -1
- package/dist-lib/hooks/useOrderPlanning.js +7 -6
- package/dist-lib/hooks/usePickAgenda.d.ts +4 -0
- package/dist-lib/hooks/usePickAgenda.d.ts.map +1 -1
- package/dist-lib/hooks/usePickAgenda.js +36 -5
- package/dist-lib/integrations/supabase/types.d.ts +225 -0
- package/dist-lib/integrations/supabase/types.d.ts.map +1 -1
- package/dist-lib/lib/cartAssignments.functions.d.ts +4 -0
- package/dist-lib/lib/cartAssignments.functions.d.ts.map +1 -1
- package/dist-lib/lib/cartAssignments.functions.js +5 -1
- package/dist-lib/lib/floridayLoading.functions.d.ts +7 -0
- package/dist-lib/lib/floridayLoading.functions.d.ts.map +1 -1
- package/dist-lib/lib/floridayLoading.functions.js +11 -4
- package/dist-lib/lib/printing.js +1 -1
- package/dist-lib/lib/serverRoutes/autoSend.handler.d.ts +2 -1
- package/dist-lib/lib/serverRoutes/autoSend.handler.d.ts.map +1 -1
- package/dist-lib/lib/serverRoutes/autoSend.handler.js +26 -5
- package/dist-lib/lib/serverRoutes/index.d.ts +1 -0
- package/dist-lib/lib/serverRoutes/index.d.ts.map +1 -1
- package/dist-lib/lib/serverRoutes/index.js +1 -0
- package/package.json +12 -1
|
@@ -102,6 +102,10 @@ export interface DayOrderCoverage {
|
|
|
102
102
|
approvedAll: boolean;
|
|
103
103
|
/** Floriday heeft de belading geaccepteerd (created / already_fulfilled). */
|
|
104
104
|
floridaySent: boolean;
|
|
105
|
+
/** Unieke kar-id's van deze order (ook gedeelde bufferkarren). */
|
|
106
|
+
cartIds: string[];
|
|
107
|
+
/** Kar-id's met een goedgekeurde controlescan. */
|
|
108
|
+
approvedCartIds: string[];
|
|
105
109
|
}
|
|
106
110
|
/**
|
|
107
111
|
* Karindeling per order via de Engine-leesfunctie `logistics_order_plan_coverage`.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cartAssignments.functions.d.ts","sourceRoot":"","sources":["../../src/lib/cartAssignments.functions.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"cartAssignments.functions.d.ts","sourceRoot":"","sources":["../../src/lib/cartAssignments.functions.ts"],"names":[],"mappings":"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"}
|
|
@@ -184,6 +184,8 @@ export const getDayCartContents = createServerFn({ method: "POST" })
|
|
|
184
184
|
pickedAt: typeof c.pickedAt === "string" ? c.pickedAt : null,
|
|
185
185
|
approvedAll: false,
|
|
186
186
|
floridaySent: false,
|
|
187
|
+
cartIds: [],
|
|
188
|
+
approvedCartIds: [],
|
|
187
189
|
});
|
|
188
190
|
cartIdsByRef.set(orderRef, arr(c.carts).map((k) => k?.cartId).filter((x) => typeof x === "string"));
|
|
189
191
|
// Lagen/bezetting alleen als de Engine ze in het karbriefplan levert; anders onbekend.
|
|
@@ -237,6 +239,8 @@ export const getDayCartContents = createServerFn({ method: "POST" })
|
|
|
237
239
|
const ids = cartIdsByRef.get(o.orderRef) ?? [];
|
|
238
240
|
o.approvedAll = ids.length > 0 && ids.every((id) => approved.has(id));
|
|
239
241
|
o.floridaySent = sentRefs.has(o.orderRef);
|
|
242
|
+
o.cartIds = [...new Set(ids)];
|
|
243
|
+
o.approvedCartIds = o.cartIds.filter((id) => approved.has(id));
|
|
240
244
|
}
|
|
241
245
|
carts.sort((a, b) => a.orderRef.localeCompare(b.orderRef) || a.cartNumber - b.cartNumber);
|
|
242
246
|
return { carts, orders };
|
|
@@ -275,7 +279,7 @@ export const getPakbonCartInfo = createServerFn({ method: "POST" })
|
|
|
275
279
|
if (error)
|
|
276
280
|
throw new Error(`Kar-barcode niet opgehaald: ${error.message}`);
|
|
277
281
|
if (typeof bc !== "string" || !bc)
|
|
278
|
-
throw new Error("De
|
|
282
|
+
throw new Error("De kar is nog niet ingedeeld. Probeer het over een minuut opnieuw.");
|
|
279
283
|
barcodes.set(id, bc);
|
|
280
284
|
}));
|
|
281
285
|
const { data: jobs, error } = await supabase
|
|
@@ -54,6 +54,13 @@ export interface LoadingPreview {
|
|
|
54
54
|
/** Redenen waarom nog niet verstuurd mag worden; leeg = klaar. */
|
|
55
55
|
blockers: string[];
|
|
56
56
|
canSend: boolean;
|
|
57
|
+
/** Buffer met nog niet goedgekeurde karren (unieke cart_id); null = geen buffer of compleet. */
|
|
58
|
+
bufferIncomplete: {
|
|
59
|
+
bufferId: string;
|
|
60
|
+
scanned: number;
|
|
61
|
+
total: number;
|
|
62
|
+
missingCartIds: string[];
|
|
63
|
+
} | null;
|
|
57
64
|
}
|
|
58
65
|
export interface SendResult {
|
|
59
66
|
ok: boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"floridayLoading.functions.d.ts","sourceRoot":"","sources":["../../src/lib/floridayLoading.functions.ts"],"names":[],"mappings":"AAQA,MAAM,WAAW,WAAW;IAC1B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,oBAAoB,EAAE,MAAM,GAAG,IAAI,CAAC;IACpC,gBAAgB,EAAE,MAAM,CAAC;IACzB,SAAS,EAAE,MAAM,CAAC;CACnB;AACD,MAAM,WAAW,cAAc;IAC7B,oBAAoB,EAAE,MAAM,CAAC;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,OAAO,CAAC;IAChB,yEAAyE;IACzE,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,KAAK,EAAE,WAAW,EAAE,CAAC;CACtB;AACD,MAAM,WAAW,UAAU;IACzB,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,UAAU,EAAE,OAAO,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,eAAe,EAAE,MAAM,CAAC;IACxB,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;CAC3B;AACD,MAAM,WAAW,eAAe;IAC9B,kBAAkB,EAAE,MAAM,CAAC;IAC3B,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,QAAQ,EAAE,cAAc,EAAE,CAAC;IAC3B,+EAA+E;IAC/E,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,iBAAiB,EAAE,OAAO,GAAG,IAAI,CAAC;CACnC;AACD,MAAM,WAAW,cAAc;IAC7B,kBAAkB,EAAE,MAAM,CAAC;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;CACnB;AACD,MAAM,WAAW,cAAc;IAC7B,kBAAkB,EAAE,MAAM,GAAG,IAAI,CAAC;IAClC,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,QAAQ,EAAE,cAAc,EAAE,CAAC;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,UAAU,EAAE,CAAC;IACrB,SAAS,EAAE,eAAe,EAAE,CAAC;IAC7B,YAAY,EAAE,cAAc,EAAE,CAAC;IAC/B,kEAAkE;IAClE,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,OAAO,EAAE,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"floridayLoading.functions.d.ts","sourceRoot":"","sources":["../../src/lib/floridayLoading.functions.ts"],"names":[],"mappings":"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"}
|
|
@@ -239,7 +239,7 @@ async function buildLoading(supabase, orderRef) {
|
|
|
239
239
|
}
|
|
240
240
|
const allLines = [...carts.values()].flatMap((c) => c.lines);
|
|
241
241
|
if (allLines.some((l) => !l.packages || l.packages <= 0))
|
|
242
|
-
blockers.push("Niet elke regel heeft een aantal fusten
|
|
242
|
+
blockers.push("Niet elke regel heeft een aantal fusten in de planning.");
|
|
243
243
|
for (const [, c] of carts) {
|
|
244
244
|
if (new Set(c.lines.map((l) => l.dl ?? "")).size > 1)
|
|
245
245
|
blockers.push(`Kar ${c.label} bevat orders van verschillende leveringen; één kar kan maar in één opdracht.`);
|
|
@@ -309,7 +309,7 @@ async function buildLoading(supabase, orderRef) {
|
|
|
309
309
|
for (const s of shipments) {
|
|
310
310
|
const nm = s.orderRefs.join(", ");
|
|
311
311
|
if (!UUID_RE.test(s.fulfillmentOrderId))
|
|
312
|
-
blockers.push(`
|
|
312
|
+
blockers.push(`Order ${nm} kan niet naar Floriday: er ontbreken Floriday-gegevens. Klik op ‘Floriday-orders bijwerken’ en probeer opnieuw. [fulfillmentOrderId]`);
|
|
313
313
|
if (s.deliveryOrderId && !UUID_RE.test(s.deliveryOrderId))
|
|
314
314
|
blockers.push(`Levering voor ${nm} heeft geen geldig Floriday-kenmerk (uuid). [deliveryOrderId]`);
|
|
315
315
|
if (!s.carriers.length)
|
|
@@ -354,6 +354,13 @@ async function buildLoading(supabase, orderRef) {
|
|
|
354
354
|
lastAttempts,
|
|
355
355
|
blockers: uniqBlockers,
|
|
356
356
|
canSend: uniqBlockers.length === 0 && shipments.length > 0,
|
|
357
|
+
bufferIncomplete: (() => {
|
|
358
|
+
const bId = [...coverage.values()].find((c) => c.bufferId)?.bufferId ?? null;
|
|
359
|
+
if (!bId)
|
|
360
|
+
return null;
|
|
361
|
+
const missing = allCartIds.filter((c) => !approvedCarts.has(c));
|
|
362
|
+
return missing.length ? { bufferId: bId, scanned: allCartIds.length - missing.length, total: allCartIds.length, missingCartIds: missing } : null;
|
|
363
|
+
})(),
|
|
357
364
|
};
|
|
358
365
|
}
|
|
359
366
|
/** Stelt de belading samen en toont de controles. Verstuurt niets. */
|
|
@@ -430,14 +437,14 @@ export async function runLoadingSend(supabase, p, actor) {
|
|
|
430
437
|
}
|
|
431
438
|
const code = String(body?.code ?? (httpStatus && httpStatus < 400 ? "ok" : `http_${httpStatus}`));
|
|
432
439
|
const accepted = httpStatus === 200 && body?.ok === true && ACCEPTED.has(code);
|
|
433
|
-
const message = accepted ? (code === "created" ? "Belading
|
|
440
|
+
const message = accepted ? (code === "created" ? "Belading naar Floriday gestuurd. De verzendbrief wordt automatisch geprint." : "Belading was al verstuurd (niets dubbel aangemaakt), verzendbrief volgt via de Engine.")
|
|
434
441
|
: floridayFoutTekst("Floriday weigert de opdracht", { httpStatus: httpStatus ?? 0, body });
|
|
435
442
|
await log(s, {
|
|
436
443
|
step: "send", http_status: httpStatus, code, message,
|
|
437
444
|
warnings: arr(body?.warnings), skipped_requests: arr(body?.skippedRequests), request_summary: summary,
|
|
438
445
|
});
|
|
439
446
|
// Verzendbrief: eigendom van de Logistieke Engine (runPdf delivery-note + herhalingen).
|
|
440
|
-
const deliveryNote = accepted ? "
|
|
447
|
+
const deliveryNote = accepted ? "wordt automatisch geprint" : "—";
|
|
441
448
|
results.push({ fulfillmentOrderId: s.fulfillmentOrderId, code, httpStatus, message, deliveryNote });
|
|
442
449
|
}
|
|
443
450
|
return { ok: results.every((r) => ACCEPTED.has(r.code)), results };
|
package/dist-lib/lib/printing.js
CHANGED
|
@@ -10,7 +10,7 @@ export class GeenPrinterFout extends Error {
|
|
|
10
10
|
}
|
|
11
11
|
export class PrintApiNietBeschikbaarFout extends Error {
|
|
12
12
|
constructor(fn) {
|
|
13
|
-
super(`
|
|
13
|
+
super(`Printen werkt nu niet (update nodig). Meld dit bij Flow Selections. [printfunctie ${fn}]`);
|
|
14
14
|
this.name = "PrintApiNietBeschikbaarFout";
|
|
15
15
|
}
|
|
16
16
|
}
|
|
@@ -1,2 +1,3 @@
|
|
|
1
|
-
|
|
1
|
+
/** Shell roept aan met (request, supabaseAdmin); voor OPTIONS met (request, null). */
|
|
2
|
+
export declare function handleAutoSend(request: Request, admin?: unknown): Promise<Response>;
|
|
2
3
|
//# sourceMappingURL=autoSend.handler.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"autoSend.handler.d.ts","sourceRoot":"","sources":["../../../src/lib/serverRoutes/autoSend.handler.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"autoSend.handler.d.ts","sourceRoot":"","sources":["../../../src/lib/serverRoutes/autoSend.handler.ts"],"names":[],"mappings":"AA2BA,sFAAsF;AACtF,wBAAsB,cAAc,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,QAAQ,CAAC,CAgDzF"}
|
|
@@ -17,7 +17,15 @@ function safeEqual(a, b) {
|
|
|
17
17
|
d |= a.charCodeAt(i) ^ b.charCodeAt(i);
|
|
18
18
|
return d === 0;
|
|
19
19
|
}
|
|
20
|
-
|
|
20
|
+
const CORS = {
|
|
21
|
+
"Access-Control-Allow-Origin": "*",
|
|
22
|
+
"Access-Control-Allow-Methods": "POST, OPTIONS",
|
|
23
|
+
"Access-Control-Allow-Headers": "content-type, x-timestamp, x-signature, idempotency-key",
|
|
24
|
+
};
|
|
25
|
+
/** Shell roept aan met (request, supabaseAdmin); voor OPTIONS met (request, null). */
|
|
26
|
+
export async function handleAutoSend(request, admin) {
|
|
27
|
+
if (request.method === "OPTIONS")
|
|
28
|
+
return new Response(null, { status: 204, headers: CORS });
|
|
21
29
|
const rawBody = await request.text();
|
|
22
30
|
const ts = request.headers.get("x-timestamp")?.trim() ?? "";
|
|
23
31
|
const sig = (request.headers.get("x-signature")?.trim() ?? "").toLowerCase();
|
|
@@ -51,16 +59,25 @@ export async function handleAutoSend(request) {
|
|
|
51
59
|
if (request.headers.get("idempotency-key")?.trim() !== `auto-send:${orderId}`)
|
|
52
60
|
return json(400, { ok: false, code: "invalid_idempotency_key", error: "idempotency-key moet auto-send:<orderId> zijn." });
|
|
53
61
|
try {
|
|
54
|
-
|
|
62
|
+
let sbClient = admin ?? null;
|
|
63
|
+
if (!sbClient) {
|
|
64
|
+
try {
|
|
65
|
+
sbClient = (await import("../../integrations/supabase/client.server")).supabaseAdmin;
|
|
66
|
+
}
|
|
67
|
+
catch {
|
|
68
|
+
sbClient = null;
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
if (!sbClient)
|
|
72
|
+
return json(401, { ok: false, code: "gateway_not_configured", error: "Databaseverbinding niet beschikbaar; niets verstuurd." });
|
|
73
|
+
return await processOrder(orderId, sbClient);
|
|
55
74
|
}
|
|
56
75
|
catch (e) {
|
|
57
76
|
const msg = e instanceof Error ? e.message : String(e);
|
|
58
77
|
return json(500, { ok: false, code: "internal_error", error: msg || "Onverwachte fout tijdens versturen." });
|
|
59
78
|
}
|
|
60
79
|
}
|
|
61
|
-
async function processOrder(orderId) {
|
|
62
|
-
const { supabaseAdmin } = await import("../../integrations/supabase/client.server");
|
|
63
|
-
const sb = supabaseAdmin;
|
|
80
|
+
async function processOrder(orderId, sb) {
|
|
64
81
|
const { data: order, error: oErr } = await sb.from("orders")
|
|
65
82
|
.select("id, order_number, custom_fields").eq("id", orderId).is("deleted_at", null).maybeSingle();
|
|
66
83
|
if (oErr)
|
|
@@ -90,6 +107,10 @@ async function processOrder(orderId) {
|
|
|
90
107
|
catch (e) {
|
|
91
108
|
return json(409, { ok: false, code: "not_ready", error: e instanceof Error ? e.message : String(e) });
|
|
92
109
|
}
|
|
110
|
+
if (p.bufferIncomplete) {
|
|
111
|
+
const b = p.bufferIncomplete;
|
|
112
|
+
return json(409, { ok: false, code: "buffer_incomplete", error: `${b.scanned} van ${b.total} karren gescand; ontbrekend: ${b.missingCartIds.join(", ")}` });
|
|
113
|
+
}
|
|
93
114
|
if (!p.canSend)
|
|
94
115
|
return json(409, { ok: false, code: "not_ready", error: p.blockers.join(" ") || "Geen opdracht." });
|
|
95
116
|
const res = await runLoadingSend(sb, p, { userId: null, source: "auto-send" });
|
|
@@ -2,4 +2,5 @@ export { handlePickstationOrders } from "./pickstationOrders.handler";
|
|
|
2
2
|
export { handlePickstationPrint } from "./pickstationPrint.handler";
|
|
3
3
|
export { handlePickstationStatus } from "./pickstationStatus.handler";
|
|
4
4
|
export { handleDispatchCarrierSignups } from "./dispatchCarrierSignups.handler";
|
|
5
|
+
export { handleAutoSend } from "./autoSend.handler";
|
|
5
6
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/lib/serverRoutes/index.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,uBAAuB,EAAE,MAAM,6BAA6B,CAAC;AACtE,OAAO,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;AACpE,OAAO,EAAE,uBAAuB,EAAE,MAAM,6BAA6B,CAAC;AACtE,OAAO,EAAE,4BAA4B,EAAE,MAAM,kCAAkC,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/lib/serverRoutes/index.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,uBAAuB,EAAE,MAAM,6BAA6B,CAAC;AACtE,OAAO,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;AACpE,OAAO,EAAE,uBAAuB,EAAE,MAAM,6BAA6B,CAAC;AACtE,OAAO,EAAE,4BAA4B,EAAE,MAAM,kCAAkC,CAAC;AAChF,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC"}
|
|
@@ -5,3 +5,4 @@ export { handlePickstationOrders } from "./pickstationOrders.handler";
|
|
|
5
5
|
export { handlePickstationPrint } from "./pickstationPrint.handler";
|
|
6
6
|
export { handlePickstationStatus } from "./pickstationStatus.handler";
|
|
7
7
|
export { handleDispatchCarrierSignups } from "./dispatchCarrierSignups.handler";
|
|
8
|
+
export { handleAutoSend } from "./autoSend.handler";
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@flowselections/floriday-afhandeling-module",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.63",
|
|
4
4
|
"private": false,
|
|
5
5
|
"sideEffects": false,
|
|
6
6
|
"type": "module",
|
|
@@ -75,6 +75,17 @@
|
|
|
75
75
|
},
|
|
76
76
|
"flowselections": {
|
|
77
77
|
"moduleId": "Afhandeling",
|
|
78
|
+
"serverRoutes": [
|
|
79
|
+
{
|
|
80
|
+
"routePath": "/api/public/hooks/afhandeling-auto-send",
|
|
81
|
+
"import": "@flowselections/floriday-afhandeling-module/server-routes",
|
|
82
|
+
"handler": "handleAutoSend",
|
|
83
|
+
"methods": [
|
|
84
|
+
"POST",
|
|
85
|
+
"OPTIONS"
|
|
86
|
+
]
|
|
87
|
+
}
|
|
88
|
+
],
|
|
78
89
|
"pages": [
|
|
79
90
|
{
|
|
80
91
|
"export": "LeveringenPage",
|