@flowselections/floriday-authenticatie-module 1.0.26 → 1.0.27

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 (85) hide show
  1. package/dist-lib/integrations/supabase/auth-middleware.d.ts +45 -0
  2. package/dist-lib/integrations/supabase/auth-middleware.d.ts.map +1 -1
  3. package/dist-lib/integrations/supabase/client.d.ts +45 -0
  4. package/dist-lib/integrations/supabase/client.d.ts.map +1 -1
  5. package/dist-lib/integrations/supabase/client.server.d.ts +45 -0
  6. package/dist-lib/integrations/supabase/client.server.d.ts.map +1 -1
  7. package/dist-lib/integrations/supabase/types.d.ts +47 -0
  8. package/dist-lib/integrations/supabase/types.d.ts.map +1 -1
  9. package/dist-lib/lib/floricode.functions.d.ts +315 -0
  10. package/dist-lib/lib/floricode.functions.d.ts.map +1 -1
  11. package/dist-lib/lib/floriday-auction-letters.functions.d.ts +45 -0
  12. package/dist-lib/lib/floriday-auction-letters.functions.d.ts.map +1 -1
  13. package/dist-lib/lib/floriday-gateway-auth.d.ts +8 -2
  14. package/dist-lib/lib/floriday-gateway-auth.d.ts.map +1 -1
  15. package/dist-lib/lib/floriday-gateway-auth.js +31 -8
  16. package/dist-lib/lib/floriday-gateway-hmac.d.ts +2 -0
  17. package/dist-lib/lib/floriday-gateway-hmac.d.ts.map +1 -1
  18. package/dist-lib/lib/floriday-gateway-hmac.js +13 -2
  19. package/dist-lib/lib/floriday-labels.functions.d.ts +45 -0
  20. package/dist-lib/lib/floriday-labels.functions.d.ts.map +1 -1
  21. package/dist-lib/lib/floriday-public.functions.d.ts +270 -0
  22. package/dist-lib/lib/floriday-public.functions.d.ts.map +1 -1
  23. package/dist-lib/lib/floriday-stickers.functions.d.ts +45 -0
  24. package/dist-lib/lib/floriday-stickers.functions.d.ts.map +1 -1
  25. package/dist-lib/lib/floriday-sync.functions.d.ts +1395 -0
  26. package/dist-lib/lib/floriday-sync.functions.d.ts.map +1 -1
  27. package/dist-lib/lib/floriday-writes.functions.d.ts +270 -0
  28. package/dist-lib/lib/floriday-writes.functions.d.ts.map +1 -1
  29. package/dist-lib/lib/floriday.functions.d.ts +810 -0
  30. package/dist-lib/lib/floriday.functions.d.ts.map +1 -1
  31. package/dist-lib/lib/gateway/active-environment.d.ts +1 -0
  32. package/dist-lib/lib/gateway/active-environment.d.ts.map +1 -1
  33. package/dist-lib/lib/gateway/active-environment.js +20 -0
  34. package/dist-lib/lib/gateway/auto-process.d.ts +4 -0
  35. package/dist-lib/lib/gateway/auto-process.d.ts.map +1 -0
  36. package/dist-lib/lib/gateway/auto-process.js +35 -0
  37. package/dist-lib/lib/gateway/cached-list.d.ts +1 -0
  38. package/dist-lib/lib/gateway/cached-list.d.ts.map +1 -1
  39. package/dist-lib/lib/gateway/cached-list.js +32 -0
  40. package/dist-lib/lib/gateway/code-list.d.ts +1 -0
  41. package/dist-lib/lib/gateway/code-list.d.ts.map +1 -1
  42. package/dist-lib/lib/gateway/code-list.js +32 -0
  43. package/dist-lib/lib/gateway/cron-scan.d.ts +4 -0
  44. package/dist-lib/lib/gateway/cron-scan.d.ts.map +1 -0
  45. package/dist-lib/lib/gateway/cron-scan.js +20 -0
  46. package/dist-lib/lib/gateway/diagnostics.d.ts +2 -0
  47. package/dist-lib/lib/gateway/diagnostics.d.ts.map +1 -1
  48. package/dist-lib/lib/gateway/diagnostics.js +63 -0
  49. package/dist-lib/lib/gateway/floricode-records.d.ts +1 -0
  50. package/dist-lib/lib/gateway/floricode-records.d.ts.map +1 -1
  51. package/dist-lib/lib/gateway/floricode-records.js +24 -0
  52. package/dist-lib/lib/gateway/fulfillment-order-send.d.ts +1 -0
  53. package/dist-lib/lib/gateway/fulfillment-order-send.d.ts.map +1 -1
  54. package/dist-lib/lib/gateway/fulfillment-order-send.js +33 -0
  55. package/dist-lib/lib/gateway/index.d.ts +2 -0
  56. package/dist-lib/lib/gateway/index.d.ts.map +1 -1
  57. package/dist-lib/lib/gateway/index.js +2 -0
  58. package/dist-lib/lib/gateway/media-upload.d.ts +2 -0
  59. package/dist-lib/lib/gateway/media-upload.d.ts.map +1 -1
  60. package/dist-lib/lib/gateway/media-upload.js +106 -0
  61. package/dist-lib/lib/gateway/media.d.ts +2 -0
  62. package/dist-lib/lib/gateway/media.d.ts.map +1 -1
  63. package/dist-lib/lib/gateway/media.js +71 -0
  64. package/dist-lib/lib/gateway/pdf-bulk-merged.d.ts +2 -0
  65. package/dist-lib/lib/gateway/pdf-bulk-merged.d.ts.map +1 -1
  66. package/dist-lib/lib/gateway/pdf-bulk-merged.js +49 -0
  67. package/dist-lib/lib/gateway/pdf-bulk.d.ts +2 -0
  68. package/dist-lib/lib/gateway/pdf-bulk.d.ts.map +1 -1
  69. package/dist-lib/lib/gateway/pdf-bulk.js +48 -0
  70. package/dist-lib/lib/gateway/pdf.d.ts +1 -0
  71. package/dist-lib/lib/gateway/pdf.d.ts.map +1 -1
  72. package/dist-lib/lib/gateway/pdf.js +42 -0
  73. package/dist-lib/lib/gateway/product-characteristics.d.ts +1 -0
  74. package/dist-lib/lib/gateway/product-characteristics.d.ts.map +1 -1
  75. package/dist-lib/lib/gateway/product-characteristics.js +53 -0
  76. package/dist-lib/lib/gateway/schema.d.ts +1 -0
  77. package/dist-lib/lib/gateway/schema.d.ts.map +1 -1
  78. package/dist-lib/lib/gateway/schema.js +30 -0
  79. package/dist-lib/lib/gateway/supply-line.d.ts +1 -0
  80. package/dist-lib/lib/gateway/supply-line.d.ts.map +1 -1
  81. package/dist-lib/lib/gateway/supply-line.js +28 -0
  82. package/dist-lib/lib/gateway/write.d.ts +1 -0
  83. package/dist-lib/lib/gateway/write.d.ts.map +1 -1
  84. package/dist-lib/lib/gateway/write.js +30 -0
  85. package/package.json +2 -2
@@ -1 +1 @@
1
- {"version":3,"file":"pdf-bulk-merged.d.ts","sourceRoot":"","sources":["../../../src/lib/gateway/pdf-bulk-merged.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAI5D,MAAM,WAAW,iBAAiB;IAChC,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED,MAAM,WAAW,kBAAkB;IACjC,WAAW,CAAC,EAAE,SAAS,GAAG,MAAM,CAAC;IACjC,KAAK,EAAE,iBAAiB,EAAE,CAAC;IAC3B,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;CAC3B;AAED,MAAM,WAAW,oBAAoB;IACnC,KAAK,EAAE,MAAM,CAAC;IACd,EAAE,EAAE,MAAM,GAAG,IAAI,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,MAAM,mBAAmB,GAC3B;IACE,EAAE,EAAE,IAAI,CAAC;IACT,WAAW,EAAE,iBAAiB,CAAC;IAC/B,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,oBAAoB,EAAE,CAAC;IAChC,SAAS,EAAE,MAAM,CAAC;CACnB,GACD;IACE,EAAE,EAAE,KAAK,CAAC;IACV,MAAM,EAAE,GAAG,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,EAAE,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACnB,OAAO,CAAC,EAAE,oBAAoB,EAAE,CAAC;CAClC,CAAC;AASN,wBAAsB,gBAAgB,CACpC,QAAQ,EAAE,cAAc,EACxB,MAAM,EAAE,kBAAkB,EAC1B,WAAW,EAAE,SAAS,GAAG,MAAM,GAC9B,OAAO,CAAC,mBAAmB,CAAC,CAwE9B"}
1
+ {"version":3,"file":"pdf-bulk-merged.d.ts","sourceRoot":"","sources":["../../../src/lib/gateway/pdf-bulk-merged.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAI5D,MAAM,WAAW,iBAAiB;IAChC,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED,MAAM,WAAW,kBAAkB;IACjC,WAAW,CAAC,EAAE,SAAS,GAAG,MAAM,CAAC;IACjC,KAAK,EAAE,iBAAiB,EAAE,CAAC;IAC3B,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;CAC3B;AAED,MAAM,WAAW,oBAAoB;IACnC,KAAK,EAAE,MAAM,CAAC;IACd,EAAE,EAAE,MAAM,GAAG,IAAI,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,MAAM,mBAAmB,GAC3B;IACE,EAAE,EAAE,IAAI,CAAC;IACT,WAAW,EAAE,iBAAiB,CAAC;IAC/B,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,oBAAoB,EAAE,CAAC;IAChC,SAAS,EAAE,MAAM,CAAC;CACnB,GACD;IACE,EAAE,EAAE,KAAK,CAAC;IACV,MAAM,EAAE,GAAG,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,EAAE,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACnB,OAAO,CAAC,EAAE,oBAAoB,EAAE,CAAC;CAClC,CAAC;AASN,wBAAsB,gBAAgB,CACpC,QAAQ,EAAE,cAAc,EACxB,MAAM,EAAE,kBAAkB,EAC1B,WAAW,EAAE,SAAS,GAAG,MAAM,GAC9B,OAAO,CAAC,mBAAmB,CAAC,CAwE9B;AAYD,eAAO,MAAM,yBAAyB,KAAK,CAAC;AAK5C,wBAAsB,mBAAmB,CACvC,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,cAAc,GACvB,OAAO,CAAC,QAAQ,CAAC,CAgDnB"}
@@ -78,3 +78,52 @@ export async function runPdfBulkMerged(supabase, parsed, environment) {
78
78
  pdfBase64,
79
79
  };
80
80
  }
81
+ // ---------------------------------------------------------------------------
82
+ // HTTP-handler
83
+ // ---------------------------------------------------------------------------
84
+ import { verifyGatewayCaller, corsPreflight, withCors, resolveGatewayEnvironment, } from "../floriday-gateway-auth";
85
+ export const PDF_BULK_MERGED_MAX_ITEMS = 50;
86
+ const _pbmJson = (data, init) => withCors(Response.json(data, init));
87
+ export async function handlePdfBulkMerged(request, supabase) {
88
+ if (request.method === "OPTIONS")
89
+ return corsPreflight();
90
+ const auth = await verifyGatewayCaller(request, supabase);
91
+ if (!auth.ok) {
92
+ return _pbmJson({ ok: false, error: auth.error }, { status: auth.status });
93
+ }
94
+ let parsed;
95
+ try {
96
+ parsed = JSON.parse(auth.rawBody);
97
+ }
98
+ catch {
99
+ return _pbmJson({ ok: false, error: "Ongeldige JSON-body" }, { status: 400 });
100
+ }
101
+ if (parsed.environment !== undefined &&
102
+ parsed.environment !== "staging" &&
103
+ parsed.environment !== "live") {
104
+ return _pbmJson({ ok: false, error: "Ongeldige environment" }, { status: 400 });
105
+ }
106
+ if (!Array.isArray(parsed.items) || parsed.items.length === 0) {
107
+ return _pbmJson({ ok: false, error: "items[] is verplicht" }, { status: 400 });
108
+ }
109
+ if (parsed.items.length > PDF_BULK_MERGED_MAX_ITEMS) {
110
+ return _pbmJson({ ok: false, error: `Maximaal ${PDF_BULK_MERGED_MAX_ITEMS} items per aanroep` }, { status: 400 });
111
+ }
112
+ try {
113
+ let environment;
114
+ try {
115
+ environment = await resolveGatewayEnvironment(supabase, parsed.environment);
116
+ }
117
+ catch (e) {
118
+ return _pbmJson({ ok: false, error: String(e?.message ?? e) }, { status: 409 });
119
+ }
120
+ const result = await runPdfBulkMerged(supabase, parsed, environment);
121
+ const { status, ...body } = result;
122
+ return _pbmJson(body, status ? { status } : undefined);
123
+ }
124
+ catch (e) {
125
+ const msg = String(e?.message ?? e);
126
+ console.error("[gateway/pdf/bulk-merged] crashed:", msg);
127
+ return _pbmJson({ ok: false, error: msg }, { status: 500 });
128
+ }
129
+ }
@@ -28,4 +28,6 @@ export interface PdfBulkResult {
28
28
  results: PdfBulkItemResult[];
29
29
  }
30
30
  export declare function runPdfBulk(supabase: SupabaseClient, parsed: PdfBulkInput, environment: "staging" | "live"): Promise<PdfBulkResult>;
31
+ export declare const PDF_BULK_MAX_ITEMS = 50;
32
+ export declare function handlePdfBulk(request: Request, supabase: SupabaseClient): Promise<Response>;
31
33
  //# sourceMappingURL=pdf-bulk.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"pdf-bulk.d.ts","sourceRoot":"","sources":["../../../src/lib/gateway/pdf-bulk.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAG5D,MAAM,WAAW,WAAW;IAC1B,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED,MAAM,WAAW,YAAY;IAC3B,WAAW,CAAC,EAAE,SAAS,GAAG,MAAM,CAAC;IACjC,KAAK,EAAE,WAAW,EAAE,CAAC;CACtB;AAED,MAAM,WAAW,iBAAiB;IAChC,EAAE,EAAE,MAAM,GAAG,IAAI,CAAC;IAClB,EAAE,EAAE,OAAO,CAAC;IACZ,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,IAAI,CAAC;IACT,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,iBAAiB,EAAE,CAAC;CAC9B;AAED,wBAAsB,UAAU,CAC9B,QAAQ,EAAE,cAAc,EACxB,MAAM,EAAE,YAAY,EACpB,WAAW,EAAE,SAAS,GAAG,MAAM,GAC9B,OAAO,CAAC,aAAa,CAAC,CA4DxB"}
1
+ {"version":3,"file":"pdf-bulk.d.ts","sourceRoot":"","sources":["../../../src/lib/gateway/pdf-bulk.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAG5D,MAAM,WAAW,WAAW;IAC1B,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED,MAAM,WAAW,YAAY;IAC3B,WAAW,CAAC,EAAE,SAAS,GAAG,MAAM,CAAC;IACjC,KAAK,EAAE,WAAW,EAAE,CAAC;CACtB;AAED,MAAM,WAAW,iBAAiB;IAChC,EAAE,EAAE,MAAM,GAAG,IAAI,CAAC;IAClB,EAAE,EAAE,OAAO,CAAC;IACZ,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,IAAI,CAAC;IACT,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,iBAAiB,EAAE,CAAC;CAC9B;AAED,wBAAsB,UAAU,CAC9B,QAAQ,EAAE,cAAc,EACxB,MAAM,EAAE,YAAY,EACpB,WAAW,EAAE,SAAS,GAAG,MAAM,GAC9B,OAAO,CAAC,aAAa,CAAC,CA4DxB;AAYD,eAAO,MAAM,kBAAkB,KAAK,CAAC;AAKrC,wBAAsB,aAAa,CACjC,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,cAAc,GACvB,OAAO,CAAC,QAAQ,CAAC,CA+CnB"}
@@ -63,3 +63,51 @@ export async function runPdfBulk(supabase, parsed, environment) {
63
63
  results,
64
64
  };
65
65
  }
66
+ // ---------------------------------------------------------------------------
67
+ // HTTP-handler
68
+ // ---------------------------------------------------------------------------
69
+ import { verifyGatewayCaller, corsPreflight, withCors, resolveGatewayEnvironment, } from "../floriday-gateway-auth";
70
+ export const PDF_BULK_MAX_ITEMS = 50;
71
+ const _pbJson = (data, init) => withCors(Response.json(data, init));
72
+ export async function handlePdfBulk(request, supabase) {
73
+ if (request.method === "OPTIONS")
74
+ return corsPreflight();
75
+ const auth = await verifyGatewayCaller(request, supabase);
76
+ if (!auth.ok) {
77
+ return _pbJson({ ok: false, error: auth.error }, { status: auth.status });
78
+ }
79
+ let parsed;
80
+ try {
81
+ parsed = JSON.parse(auth.rawBody);
82
+ }
83
+ catch {
84
+ return _pbJson({ ok: false, error: "Ongeldige JSON-body" }, { status: 400 });
85
+ }
86
+ if (parsed.environment !== undefined &&
87
+ parsed.environment !== "staging" &&
88
+ parsed.environment !== "live") {
89
+ return _pbJson({ ok: false, error: "Ongeldige environment" }, { status: 400 });
90
+ }
91
+ if (!Array.isArray(parsed.items) || parsed.items.length === 0) {
92
+ return _pbJson({ ok: false, error: "items[] is verplicht" }, { status: 400 });
93
+ }
94
+ if (parsed.items.length > PDF_BULK_MAX_ITEMS) {
95
+ return _pbJson({ ok: false, error: `Maximaal ${PDF_BULK_MAX_ITEMS} items per aanroep` }, { status: 400 });
96
+ }
97
+ try {
98
+ let environment;
99
+ try {
100
+ environment = await resolveGatewayEnvironment(supabase, parsed.environment);
101
+ }
102
+ catch (e) {
103
+ return _pbJson({ ok: false, error: String(e?.message ?? e) }, { status: 409 });
104
+ }
105
+ const result = await runPdfBulk(supabase, parsed, environment);
106
+ return _pbJson(result);
107
+ }
108
+ catch (e) {
109
+ const msg = String(e?.message ?? e);
110
+ console.error("[gateway/pdf/bulk] crashed:", msg);
111
+ return _pbJson({ ok: false, error: msg }, { status: 500 });
112
+ }
113
+ }
@@ -20,5 +20,6 @@ export type PdfResult = ({
20
20
  fulfillmentOrderIds?: string[];
21
21
  };
22
22
  export declare function runPdf(supabase: SupabaseClient, parsed: PdfInput, environment: "staging" | "live"): Promise<PdfResult>;
23
+ export declare function handlePdf(request: Request, supabase: SupabaseClient): Promise<Response>;
23
24
  export {};
24
25
  //# sourceMappingURL=pdf.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"pdf.d.ts","sourceRoot":"","sources":["../../../src/lib/gateway/pdf.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAG5D,KAAK,IAAI,GACL,gBAAgB,GAChB,eAAe,GACf,gBAAgB,GAChB,kBAAkB,CAAC;AAEvB,MAAM,WAAW,QAAQ;IACvB,WAAW,CAAC,EAAE,SAAS,GAAG,MAAM,CAAC;IACjC,IAAI,EAAE,IAAI,CAAC;IACX,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,MAAM,SAAS,GACjB,CAAC;IAAE,EAAE,EAAE,IAAI,CAAA;CAAE,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,GACpC;IACE,EAAE,EAAE,KAAK,CAAC;IACV,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,mBAAmB,CAAC,EAAE,MAAM,EAAE,CAAC;CAChC,CAAC;AAEN,wBAAsB,MAAM,CAC1B,QAAQ,EAAE,cAAc,EACxB,MAAM,EAAE,QAAQ,EAChB,WAAW,EAAE,SAAS,GAAG,MAAM,GAC9B,OAAO,CAAC,SAAS,CAAC,CAoEpB"}
1
+ {"version":3,"file":"pdf.d.ts","sourceRoot":"","sources":["../../../src/lib/gateway/pdf.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAG5D,KAAK,IAAI,GACL,gBAAgB,GAChB,eAAe,GACf,gBAAgB,GAChB,kBAAkB,CAAC;AAEvB,MAAM,WAAW,QAAQ;IACvB,WAAW,CAAC,EAAE,SAAS,GAAG,MAAM,CAAC;IACjC,IAAI,EAAE,IAAI,CAAC;IACX,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,MAAM,SAAS,GACjB,CAAC;IAAE,EAAE,EAAE,IAAI,CAAA;CAAE,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,GACpC;IACE,EAAE,EAAE,KAAK,CAAC;IACV,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,mBAAmB,CAAC,EAAE,MAAM,EAAE,CAAC;CAChC,CAAC;AAEN,wBAAsB,MAAM,CAC1B,QAAQ,EAAE,cAAc,EACxB,MAAM,EAAE,QAAQ,EAChB,WAAW,EAAE,SAAS,GAAG,MAAM,GAC9B,OAAO,CAAC,SAAS,CAAC,CAoEpB;AAeD,wBAAsB,SAAS,CAC7B,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,cAAc,GACvB,OAAO,CAAC,QAAQ,CAAC,CAuCnB"}
@@ -62,3 +62,45 @@ export async function runPdf(supabase, parsed, environment) {
62
62
  }
63
63
  return { ok: false, status: 400, error: `Onbekend kind: ${parsed.kind}` };
64
64
  }
65
+ // ---------------------------------------------------------------------------
66
+ // HTTP-handler
67
+ // ---------------------------------------------------------------------------
68
+ import { verifyGatewayCaller, corsPreflight, withCors, resolveGatewayEnvironment, } from "../floriday-gateway-auth";
69
+ const _pdfJson = (data, init) => withCors(Response.json(data, init));
70
+ export async function handlePdf(request, supabase) {
71
+ if (request.method === "OPTIONS")
72
+ return corsPreflight();
73
+ const auth = await verifyGatewayCaller(request, supabase);
74
+ if (!auth.ok) {
75
+ return _pdfJson({ ok: false, error: auth.error }, { status: auth.status });
76
+ }
77
+ let parsed;
78
+ try {
79
+ parsed = JSON.parse(auth.rawBody);
80
+ }
81
+ catch {
82
+ return _pdfJson({ ok: false, error: "Ongeldige JSON-body" }, { status: 400 });
83
+ }
84
+ if (parsed.environment !== undefined &&
85
+ parsed.environment !== "staging" &&
86
+ parsed.environment !== "live") {
87
+ return _pdfJson({ ok: false, error: "Ongeldige environment" }, { status: 400 });
88
+ }
89
+ try {
90
+ let environment;
91
+ try {
92
+ environment = await resolveGatewayEnvironment(supabase, parsed.environment);
93
+ }
94
+ catch (e) {
95
+ return _pdfJson({ ok: false, error: String(e?.message ?? e) }, { status: 409 });
96
+ }
97
+ const result = await runPdf(supabase, parsed, environment);
98
+ const { status, ...body } = result;
99
+ return _pdfJson(body, status ? { status } : undefined);
100
+ }
101
+ catch (e) {
102
+ const msg = String(e?.message ?? e);
103
+ console.error("[gateway/pdf] crashed:", msg);
104
+ return _pdfJson({ ok: false, error: msg }, { status: 500 });
105
+ }
106
+ }
@@ -15,4 +15,5 @@ export declare function runProductCharacteristics(supabase: SupabaseClient, pars
15
15
  codeListName: "vbn-product-characteristic";
16
16
  characteristics: import("../floricode-product-features").ProductCharacteristic[];
17
17
  }>;
18
+ export declare function handleProductCharacteristics(request: Request, supabase: SupabaseClient): Promise<Response>;
18
19
  //# sourceMappingURL=product-characteristics.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"product-characteristics.d.ts","sourceRoot":"","sources":["../../../src/lib/gateway/product-characteristics.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAEpD,MAAM,WAAW,2BAA2B;IAC1C,WAAW,EAAE,mBAAmB,CAAC;IACjC,WAAW,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC9B,cAAc,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACjC,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AAED,wBAAsB,yBAAyB,CAC7C,QAAQ,EAAE,cAAc,EACxB,MAAM,EAAE,2BAA2B;;;;;;;;GAYpC"}
1
+ {"version":3,"file":"product-characteristics.d.ts","sourceRoot":"","sources":["../../../src/lib/gateway/product-characteristics.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAEpD,MAAM,WAAW,2BAA2B;IAC1C,WAAW,EAAE,mBAAmB,CAAC;IACjC,WAAW,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC9B,cAAc,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACjC,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AAED,wBAAsB,yBAAyB,CAC7C,QAAQ,EAAE,cAAc,EACxB,MAAM,EAAE,2BAA2B;;;;;;;;GAYpC;AA0BD,wBAAsB,4BAA4B,CAChD,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,cAAc,GACvB,OAAO,CAAC,QAAQ,CAAC,CAiCnB"}
@@ -6,3 +6,56 @@ export async function runProductCharacteristics(supabase, parsed) {
6
6
  const productCode = parsed.productCode ?? parsed.vbnProductCode;
7
7
  return await getProductCharacteristicsForVbnCode(supabase, parsed.environment, productCode, { forceRefresh: parsed.forceRefresh === true });
8
8
  }
9
+ // ---------------------------------------------------------------------------
10
+ // HTTP-handler (lokale CORS_HEADERS byte-identiek behouden)
11
+ // ---------------------------------------------------------------------------
12
+ import { verifyGatewayCaller } from "../floriday-gateway-auth";
13
+ const PC_CORS_HEADERS = {
14
+ "Access-Control-Allow-Origin": "*",
15
+ "Access-Control-Allow-Methods": "POST, OPTIONS",
16
+ "Access-Control-Allow-Headers": [
17
+ "content-type",
18
+ "x-floriday-timestamp",
19
+ "x-floriday-signature",
20
+ "x-floriday-caller",
21
+ ].join(", "),
22
+ "Access-Control-Max-Age": "86400",
23
+ };
24
+ function _pcJson(data, init = {}) {
25
+ return Response.json(data, {
26
+ ...init,
27
+ headers: { ...(init.headers ?? {}), ...PC_CORS_HEADERS },
28
+ });
29
+ }
30
+ export async function handleProductCharacteristics(request, supabase) {
31
+ if (request.method === "OPTIONS") {
32
+ return new Response(null, { status: 204, headers: PC_CORS_HEADERS });
33
+ }
34
+ const auth = await verifyGatewayCaller(request, supabase);
35
+ if (!auth.ok) {
36
+ return _pcJson({ ok: false, error: auth.error }, { status: auth.status });
37
+ }
38
+ let parsed;
39
+ try {
40
+ parsed = JSON.parse(auth.rawBody);
41
+ }
42
+ catch {
43
+ return _pcJson({ ok: false, error: "Ongeldige JSON-body" }, { status: 400 });
44
+ }
45
+ if (parsed.environment !== "staging" && parsed.environment !== "live") {
46
+ return _pcJson({ ok: false, error: "Ongeldige environment" }, { status: 400 });
47
+ }
48
+ const productCode = parsed.productCode ?? parsed.vbnProductCode;
49
+ if (productCode == null || String(productCode).trim() === "") {
50
+ return _pcJson({ ok: false, error: "productCode is verplicht" }, { status: 400 });
51
+ }
52
+ try {
53
+ const result = await runProductCharacteristics(supabase, parsed);
54
+ return _pcJson(result);
55
+ }
56
+ catch (e) {
57
+ const msg = String(e?.message ?? e);
58
+ console.error("[gateway/product-characteristics] crashed:", msg);
59
+ return _pcJson({ ok: false, error: msg }, { status: 500 });
60
+ }
61
+ }
@@ -25,4 +25,5 @@ export type SchemaResult = {
25
25
  status?: number;
26
26
  };
27
27
  export declare function runSchema(supabase: SupabaseClient, parsed: SchemaInput): Promise<SchemaResult>;
28
+ export declare function handleSchema(request: Request, supabase: SupabaseClient): Promise<Response>;
28
29
  //# sourceMappingURL=schema.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../src/lib/gateway/schema.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAE5D,MAAM,WAAW,WAAW;IAC1B,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC5B,WAAW,CAAC,EAAE,SAAS,GAAG,MAAM,CAAC;CAClC;AAkCD,MAAM,MAAM,YAAY,GACpB;IACE,EAAE,EAAE,IAAI,CAAC;IACT,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,GAAG,CAAC;IACZ,KAAK,EAAE,GAAG,CAAC;IACX,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC;IACnC,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,OAAO,EAAE,GAAG,CAAA;KAAE,CAAC,CAAC,CAAC;CACzF,GACD;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAElD,wBAAsB,SAAS,CAC7B,QAAQ,EAAE,cAAc,EACxB,MAAM,EAAE,WAAW,GAClB,OAAO,CAAC,YAAY,CAAC,CAwEvB"}
1
+ {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../src/lib/gateway/schema.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAE5D,MAAM,WAAW,WAAW;IAC1B,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC5B,WAAW,CAAC,EAAE,SAAS,GAAG,MAAM,CAAC;CAClC;AAkCD,MAAM,MAAM,YAAY,GACpB;IACE,EAAE,EAAE,IAAI,CAAC;IACT,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,GAAG,CAAC;IACZ,KAAK,EAAE,GAAG,CAAC;IACX,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC;IACnC,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,OAAO,EAAE,GAAG,CAAA;KAAE,CAAC,CAAC,CAAC;CACzF,GACD;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAElD,wBAAsB,SAAS,CAC7B,QAAQ,EAAE,cAAc,EACxB,MAAM,EAAE,WAAW,GAClB,OAAO,CAAC,YAAY,CAAC,CAwEvB;AAOD,wBAAsB,YAAY,CAChC,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,cAAc,GACvB,OAAO,CAAC,QAAQ,CAAC,CA0BnB"}
@@ -100,3 +100,33 @@ export async function runSchema(supabase, parsed) {
100
100
  ...(codeLists ? { codeLists } : {}),
101
101
  };
102
102
  }
103
+ // ---------------------------------------------------------------------------
104
+ // HTTP-handler
105
+ // ---------------------------------------------------------------------------
106
+ import { verifyGatewayCaller } from "../floriday-gateway-auth";
107
+ export async function handleSchema(request, supabase) {
108
+ const auth = await verifyGatewayCaller(request, supabase);
109
+ if (!auth.ok) {
110
+ return Response.json({ ok: false, error: auth.error }, { status: auth.status });
111
+ }
112
+ let parsed;
113
+ try {
114
+ parsed = JSON.parse(auth.rawBody);
115
+ }
116
+ catch {
117
+ return Response.json({ ok: false, error: "Ongeldige JSON-body" }, { status: 400 });
118
+ }
119
+ if (!parsed.resource || typeof parsed.resource !== "string") {
120
+ return Response.json({ ok: false, error: "resource is verplicht" }, { status: 400 });
121
+ }
122
+ try {
123
+ const result = await runSchema(supabase, parsed);
124
+ const { status, ...body } = result;
125
+ return Response.json(body, status ? { status } : undefined);
126
+ }
127
+ catch (e) {
128
+ const msg = String(e?.message ?? e);
129
+ console.error("[gateway/schema] crashed:", msg);
130
+ return Response.json({ ok: false, error: msg }, { status: 500 });
131
+ }
132
+ }
@@ -8,4 +8,5 @@ export declare function runSupplyLine(supabase: SupabaseClient, input: {
8
8
  environment?: string;
9
9
  caller: string;
10
10
  }): Promise<SupplyLineResult>;
11
+ export declare function handleSupplyLine(request: Request, supabase: SupabaseClient): Promise<Response>;
11
12
  //# sourceMappingURL=supply-line.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"supply-line.d.ts","sourceRoot":"","sources":["../../../src/lib/gateway/supply-line.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAiH5D,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,wBAAsB,aAAa,CACjC,QAAQ,EAAE,cAAc,EACxB,KAAK,EAAE;IAAE,GAAG,EAAE,GAAG,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GACxD,OAAO,CAAC,gBAAgB,CAAC,CAmK3B"}
1
+ {"version":3,"file":"supply-line.d.ts","sourceRoot":"","sources":["../../../src/lib/gateway/supply-line.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAiH5D,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,wBAAsB,aAAa,CACjC,QAAQ,EAAE,cAAc,EACxB,KAAK,EAAE;IAAE,GAAG,EAAE,GAAG,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GACxD,OAAO,CAAC,gBAAgB,CAAC,CAmK3B;AAcD,wBAAsB,gBAAgB,CACpC,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,cAAc,GACvB,OAAO,CAAC,QAAQ,CAAC,CAsBnB"}
@@ -259,3 +259,31 @@ export async function runSupplyLine(supabase, input) {
259
259
  return { status: 500, payload: { ok: false, error: msg } };
260
260
  }
261
261
  }
262
+ // ---------------------------------------------------------------------------
263
+ // HTTP-handler
264
+ // ---------------------------------------------------------------------------
265
+ import { verifyGatewayCaller, corsPreflight, withCors, } from "../floriday-gateway-auth";
266
+ const _slJson = (data, init) => withCors(Response.json(data, init));
267
+ export async function handleSupplyLine(request, supabase) {
268
+ if (request.method === "OPTIONS")
269
+ return corsPreflight();
270
+ const auth = await verifyGatewayCaller(request, supabase);
271
+ if (!auth.ok)
272
+ return _slJson({ ok: false, error: auth.error }, { status: auth.status });
273
+ let raw;
274
+ try {
275
+ raw = JSON.parse(auth.rawBody);
276
+ }
277
+ catch {
278
+ return _slJson({ ok: false, error: "Ongeldige JSON-body." }, { status: 400 });
279
+ }
280
+ if (!raw || typeof raw !== "object") {
281
+ return _slJson({ ok: false, error: "Body moet een JSON-object zijn." }, { status: 400 });
282
+ }
283
+ const { status, payload } = await runSupplyLine(supabase, {
284
+ raw,
285
+ environment: raw.environment,
286
+ caller: auth.caller,
287
+ });
288
+ return _slJson(payload, { status });
289
+ }
@@ -15,4 +15,5 @@ export interface GatewayWriteBody {
15
15
  }
16
16
  export declare function isValidGatewayWriteBody(input: unknown): input is GatewayWriteBody;
17
17
  export declare function runWrite(supabase: SupabaseClient, parsed: GatewayWriteBody, caller: string): Promise<import("../floriday.functions").FlorydayWriteResult>;
18
+ export declare function handleWrite(request: Request, supabase: SupabaseClient): Promise<Response>;
18
19
  //# sourceMappingURL=write.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"write.d.ts","sourceRoot":"","sources":["../../../src/lib/gateway/write.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAG5D,MAAM,WAAW,gBAAgB;IAC/B,WAAW,EAAE,SAAS,GAAG,MAAM,CAAC;IAChC,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,GAAG,KAAK,GAAG,OAAO,GAAG,QAAQ,CAAC;IAC5C,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,aAAa,CAAC,EAAE,KAAK,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAC5D;AAED,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,gBAAgB,CASjF;AAED,wBAAsB,QAAQ,CAC5B,QAAQ,EAAE,cAAc,EACxB,MAAM,EAAE,gBAAgB,EACxB,MAAM,EAAE,MAAM,gEAaf"}
1
+ {"version":3,"file":"write.d.ts","sourceRoot":"","sources":["../../../src/lib/gateway/write.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAK5D,MAAM,WAAW,gBAAgB;IAC/B,WAAW,EAAE,SAAS,GAAG,MAAM,CAAC;IAChC,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,GAAG,KAAK,GAAG,OAAO,GAAG,QAAQ,CAAC;IAC5C,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,aAAa,CAAC,EAAE,KAAK,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAC5D;AAED,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,gBAAgB,CASjF;AAED,wBAAsB,QAAQ,CAC5B,QAAQ,EAAE,cAAc,EACxB,MAAM,EAAE,gBAAgB,EACxB,MAAM,EAAE,MAAM,gEAaf;AAMD,wBAAsB,WAAW,CAC/B,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,cAAc,GACvB,OAAO,CAAC,QAAQ,CAAC,CA2BnB"}
@@ -1,6 +1,7 @@
1
1
  // Gateway module: generieke schrijfactie naar Floriday.
2
2
  // Spiegel van src/routes/api/public/gateway/write.ts (business-logica).
3
3
  import { florydayWrite } from "../floriday.functions";
4
+ import { verifyGatewayCaller } from "../floriday-gateway-auth";
4
5
  export function isValidGatewayWriteBody(input) {
5
6
  if (!input || typeof input !== "object")
6
7
  return false;
@@ -30,3 +31,32 @@ export async function runWrite(supabase, parsed, caller) {
30
31
  caller,
31
32
  });
32
33
  }
34
+ // ---------------------------------------------------------------------------
35
+ // HTTP-handler: shell-hostbare entry-point. GEEN CORS/OPTIONS (S2S/HMAC-only).
36
+ // Byte-identiek aan de originele route-shell.
37
+ // ---------------------------------------------------------------------------
38
+ export async function handleWrite(request, supabase) {
39
+ const auth = await verifyGatewayCaller(request, supabase);
40
+ if (!auth.ok) {
41
+ return Response.json({ ok: false, error: auth.error }, { status: auth.status });
42
+ }
43
+ let parsed;
44
+ try {
45
+ parsed = JSON.parse(auth.rawBody);
46
+ }
47
+ catch {
48
+ return Response.json({ ok: false, error: "Ongeldige JSON-body" }, { status: 400 });
49
+ }
50
+ if (!isValidGatewayWriteBody(parsed)) {
51
+ return Response.json({ ok: false, error: "Ontbrekende of ongeldige velden in body" }, { status: 400 });
52
+ }
53
+ try {
54
+ const result = await runWrite(supabase, parsed, auth.caller);
55
+ return Response.json(result);
56
+ }
57
+ catch (e) {
58
+ const msg = String(e?.message ?? e);
59
+ console.error("[gateway/write] crashed:", msg);
60
+ return Response.json({ ok: false, error: msg }, { status: 500 });
61
+ }
62
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@flowselections/floriday-authenticatie-module",
3
- "version": "1.0.26",
3
+ "version": "1.0.27",
4
4
  "sideEffects": false,
5
5
  "type": "module",
6
6
  "main": "./dist-lib/index.js",
@@ -43,7 +43,7 @@
43
43
  "devDependencies": {
44
44
  "@flowselections/core": "1.0.16",
45
45
  "@eslint/js": "^9.32.0",
46
- "@lovable.dev/vite-tanstack-config": "2.7.6",
46
+ "@lovable.dev/vite-tanstack-config": "2.7.7",
47
47
  "@types/node": "^22.16.5",
48
48
  "@types/react": "^19.2.0",
49
49
  "@types/react-dom": "^19.2.0",