@flowselections/layout-maker 1.69.8 → 1.69.10
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/lib/documentProfiles.js +2 -2
- package/dist-lib/lib/eigenDocumenten.d.ts.map +1 -1
- package/dist-lib/lib/eigenDocumenten.js +1 -0
- package/dist-lib/lib/fieldRegistry.js +3 -2
- package/dist-lib/lib/pakbonBuilder.js +4 -4
- package/dist-lib/lib/printQueue.server.d.ts +13 -0
- package/dist-lib/lib/printQueue.server.d.ts.map +1 -1
- package/dist-lib/lib/printQueue.server.js +81 -4
- package/dist-lib/lib/profielHtml.d.ts.map +1 -1
- package/dist-lib/lib/profielHtml.js +2 -1
- package/dist-lib/lib/versie.generated.d.ts +1 -1
- package/dist-lib/lib/versie.generated.d.ts.map +1 -1
- package/dist-lib/lib/versie.generated.js +1 -1
- package/dist-lib/lib/vervoerder.d.ts +27 -3
- package/dist-lib/lib/vervoerder.d.ts.map +1 -1
- package/dist-lib/lib/vervoerder.js +65 -10
- package/package.json +2 -2
|
@@ -131,7 +131,7 @@ const pakbon = {
|
|
|
131
131
|
["telefoon", "Telefoonnummer"],
|
|
132
132
|
["email", "E-mailadres"],
|
|
133
133
|
["referentie", "Referentie"],
|
|
134
|
-
["transporteur", "
|
|
134
|
+
["transporteur", "Vervoerder"],
|
|
135
135
|
["chauffeur", "Chauffeur"],
|
|
136
136
|
["route", "Route"],
|
|
137
137
|
["pickstation", "Pickstation"],
|
|
@@ -258,7 +258,7 @@ const verzendlabel = {
|
|
|
258
258
|
["land", "Land", true],
|
|
259
259
|
]),
|
|
260
260
|
vinkjes("verzending", "Verzending", [
|
|
261
|
-
["transporteur", "
|
|
261
|
+
["transporteur", "Vervoerder", true],
|
|
262
262
|
["verzendmethode", "Verzendmethode"],
|
|
263
263
|
["route", "Route"],
|
|
264
264
|
["track_trace", "Track & Trace", true],
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"eigenDocumenten.d.ts","sourceRoot":"","sources":["../../src/lib/eigenDocumenten.ts"],"names":[],"mappings":"AAkBA,eAAO,MAAM,2BAA2B,4IAC8F,CAAC;AAEvI,MAAM,MAAM,gBAAgB,GAAG;IAAE,UAAU,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,SAAS,GAAG,SAAS,GAAG,OAAO,GAAG,KAAK,CAAA;CAAE,CAAC;AAExH;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAC9B,OAAO,EAAE,OAAO,EAChB,UAAU,EAAE,OAAO,EACnB,QAAQ,GAAE,OAAc,EACxB,OAAO,GAAE;IAAE,UAAU,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,GAAG,IAAW,GAC/D,gBAAgB,GAAG,IAAI,CAmBzB;AAED,gFAAgF;AAChF,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,CAGtF;AAED,8EAA8E;AAC9E,wBAAgB,mBAAmB,CAAC,WAAW,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,MAAM,GAAG,IAAI,CAIhH;AAED,6EAA6E;AAC7E,wBAAgB,cAAc,CAAC,OAAO,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,CAI9D;AAGD,eAAO,MAAM,kBAAkB,+HAErB,CAAC;AACX,MAAM,MAAM,QAAQ,GAAG,CAAC,OAAO,kBAAkB,CAAC,CAAC,MAAM,CAAC,CAAC;AAE3D,eAAO,MAAM,yBAAyB,2BAA2B,CAAC;AAElE,MAAM,MAAM,SAAS,GAAG;IAAE,aAAa,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAChF,MAAM,MAAM,WAAW,GAAG,SAAS,GAAG;IAAE,UAAU,EAAE,SAAS,EAAE,CAAA;CAAE,CAAC;AAOlE,2EAA2E;AAC3E,wBAAgB,aAAa,CAAC,OAAO,EAAE,OAAO,GAAG,WAAW,EAAE,GAAG,IAAI,CAOpE;AAED,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,OAAO,GAAG,MAAM,CAK1D;AAED,wBAAgB,eAAe,CAC7B,OAAO,EAAE,OAAO,EAChB,GAAG,EAAE,OAAO,EACZ,IAAI,EAAE;IAAE,UAAU,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,EAC/C,OAAO,EAAE;IAAE,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,GAClD,MAAM,CAiCR;AAGD,eAAO,MAAM,sBAAsB,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,OAAO,CAAA;CAAE,
|
|
1
|
+
{"version":3,"file":"eigenDocumenten.d.ts","sourceRoot":"","sources":["../../src/lib/eigenDocumenten.ts"],"names":[],"mappings":"AAkBA,eAAO,MAAM,2BAA2B,4IAC8F,CAAC;AAEvI,MAAM,MAAM,gBAAgB,GAAG;IAAE,UAAU,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,SAAS,GAAG,SAAS,GAAG,OAAO,GAAG,KAAK,CAAA;CAAE,CAAC;AAExH;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAC9B,OAAO,EAAE,OAAO,EAChB,UAAU,EAAE,OAAO,EACnB,QAAQ,GAAE,OAAc,EACxB,OAAO,GAAE;IAAE,UAAU,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,GAAG,IAAW,GAC/D,gBAAgB,GAAG,IAAI,CAmBzB;AAED,gFAAgF;AAChF,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,CAGtF;AAED,8EAA8E;AAC9E,wBAAgB,mBAAmB,CAAC,WAAW,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,MAAM,GAAG,IAAI,CAIhH;AAED,6EAA6E;AAC7E,wBAAgB,cAAc,CAAC,OAAO,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,CAI9D;AAGD,eAAO,MAAM,kBAAkB,+HAErB,CAAC;AACX,MAAM,MAAM,QAAQ,GAAG,CAAC,OAAO,kBAAkB,CAAC,CAAC,MAAM,CAAC,CAAC;AAE3D,eAAO,MAAM,yBAAyB,2BAA2B,CAAC;AAElE,MAAM,MAAM,SAAS,GAAG;IAAE,aAAa,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAChF,MAAM,MAAM,WAAW,GAAG,SAAS,GAAG;IAAE,UAAU,EAAE,SAAS,EAAE,CAAA;CAAE,CAAC;AAOlE,2EAA2E;AAC3E,wBAAgB,aAAa,CAAC,OAAO,EAAE,OAAO,GAAG,WAAW,EAAE,GAAG,IAAI,CAOpE;AAED,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,OAAO,GAAG,MAAM,CAK1D;AAED,wBAAgB,eAAe,CAC7B,OAAO,EAAE,OAAO,EAChB,GAAG,EAAE,OAAO,EACZ,IAAI,EAAE;IAAE,UAAU,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,EAC/C,OAAO,EAAE;IAAE,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,GAClD,MAAM,CAiCR;AAGD,eAAO,MAAM,sBAAsB,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,OAAO,CAAA;CAAE,EAoBvF,CAAC;AAEF,eAAO,MAAM,gCAAgC,UAAuE,CAAC;AAarH,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,OAAO,GAAG,MAAM,EAAE,CAK5D;AAED,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,OAAO,GAAG,MAAM,CAaxE"}
|
|
@@ -137,6 +137,7 @@ export const CONTROLELIJST_KOLOMMEN = [
|
|
|
137
137
|
{ veld: "land", label: "Land", standaard: false },
|
|
138
138
|
{ veld: "klaarzetten_datum", label: "Klaarzetdatum", standaard: false },
|
|
139
139
|
{ veld: "klaarzetten_tijd", label: "Klaarzettijd", standaard: false },
|
|
140
|
+
{ veld: "carrier_label", label: "Vervoerder", standaard: false },
|
|
140
141
|
{ veld: "ophaal_datum", label: "Ophaaldatum", standaard: false },
|
|
141
142
|
{ veld: "ophaal_tijd", label: "Ophaaltijd", standaard: false },
|
|
142
143
|
{ veld: "leverdatum", label: "Leverdatum", standaard: false },
|
|
@@ -38,8 +38,9 @@ registreerEntiteit({
|
|
|
38
38
|
{ pad: "order.referentie", label: "Referentie", soort: "tekst", voorbeeld: "Inkoop 8891" },
|
|
39
39
|
{ pad: "order.verkoper", label: "Verkoper", soort: "tekst", voorbeeld: "Jan de Vries" },
|
|
40
40
|
{ pad: "order.opmerking", label: "Opmerking", soort: "tekst", voorbeeld: "Voor 10:00 leveren" },
|
|
41
|
-
{ pad: "order.
|
|
42
|
-
{ pad: "order.
|
|
41
|
+
{ pad: "order.carrier_label", label: "Vervoerder", soort: "tekst", voorbeeld: "Voorbeeld Transport BV" },
|
|
42
|
+
{ pad: "order.transporteur", label: "Transporteur", soort: "tekst", voorbeeld: "Voorbeeld Transport BV" },
|
|
43
|
+
{ pad: "order.track_trace", label: "Track & Trace", soort: "tekst", voorbeeld: "3SVB0099213" },
|
|
43
44
|
{ pad: "order.locatie", label: "Locatie", soort: "tekst", voorbeeld: "Magazijn 2" },
|
|
44
45
|
{ pad: "order.aantal_karren", label: "Aantal karren", soort: "getal", voorbeeld: 3 },
|
|
45
46
|
{ pad: "order.totaal", label: "Ordertotaal", soort: "bedrag", voorbeeld: "€ 1.284,50" },
|
|
@@ -333,7 +333,7 @@ export const SECTIE_REGISTER = [
|
|
|
333
333
|
label: "Transportinformatie",
|
|
334
334
|
omschrijving: "Transporteur, route en chauffeur.",
|
|
335
335
|
opties: [
|
|
336
|
-
{ key: "toonTransporteur", label: "
|
|
336
|
+
{ key: "toonTransporteur", label: "Vervoerder (carrier_label uit de Engine)", type: "schakelaar", standaard: true },
|
|
337
337
|
{ key: "toonRoute", label: "Route", type: "schakelaar", standaard: true },
|
|
338
338
|
{ key: "toonChauffeur", label: "Chauffeur", type: "schakelaar", standaard: false },
|
|
339
339
|
{ key: "toonTrack", label: "Track & trace", type: "schakelaar", standaard: false },
|
|
@@ -1056,10 +1056,10 @@ export const DEMO_ORDER = {
|
|
|
1056
1056
|
land: "Nederland",
|
|
1057
1057
|
},
|
|
1058
1058
|
transport: {
|
|
1059
|
-
transporteur: "
|
|
1059
|
+
transporteur: "Voorbeeld Transport BV",
|
|
1060
1060
|
route: "Route Zuid",
|
|
1061
1061
|
chauffeur: "J. Bakker",
|
|
1062
|
-
track: "
|
|
1062
|
+
track: "3SVB8842190",
|
|
1063
1063
|
},
|
|
1064
1064
|
karren: [
|
|
1065
1065
|
{
|
|
@@ -1181,7 +1181,7 @@ export const CONDITIE_VELDEN = [
|
|
|
1181
1181
|
{ value: "aantal_lagen", label: "Aantal lagen" },
|
|
1182
1182
|
{ value: "aantal_fusten", label: "Aantal fusten" },
|
|
1183
1183
|
{ value: "aantal_producten", label: "Aantal producten" },
|
|
1184
|
-
{ value: "transporteur", label: "
|
|
1184
|
+
{ value: "transporteur", label: "Vervoerder (carrier_label)" },
|
|
1185
1185
|
{ value: "documentsoort", label: "Documentsoort" },
|
|
1186
1186
|
{ value: "klant", label: "Klant" },
|
|
1187
1187
|
{ value: "route", label: "Route" },
|
|
@@ -17,6 +17,19 @@ export declare class GeenDocumentFout extends Error {
|
|
|
17
17
|
export declare class WachtOpLayoutFout extends Error {
|
|
18
18
|
name: string;
|
|
19
19
|
}
|
|
20
|
+
/** Geen vervoerder (of Engine te oud): wachten tot hij is ingesteld, onbegrensd. */
|
|
21
|
+
export declare class WachtOpVervoerderFout extends Error {
|
|
22
|
+
name: string;
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Bepaalt de vervoerder voor een eigen document. Alleen carrier_label uit de
|
|
26
|
+
* Engine (payload of logistics_brief_transport). Geeft null voor documenten
|
|
27
|
+
* zonder vervoerder (of Floriday 1-op-1). Gooit WachtOpVervoerderFout als hij
|
|
28
|
+
* ontbreekt; nooit een naam opzoeken, nooit "onbekend".
|
|
29
|
+
*/
|
|
30
|
+
export declare function bepaalVervoerder(db: PrintDb, job: Job, p: Job, layout: Job | null): Promise<string | null>;
|
|
31
|
+
/** Wacht op een vervoerder: blijft wachtend (geen eindstatus), reden zichtbaar in de wachtrij. */
|
|
32
|
+
export declare function wachtOpVervoerder(db: PrintDb, job: Job, reden: string): Promise<"wachtend">;
|
|
20
33
|
/** Blijvende contractfout: opnieuw proberen met dezelfde invoer kan niet slagen. */
|
|
21
34
|
export declare class EngineContractFout extends GeenDocumentFout {
|
|
22
35
|
name: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"printQueue.server.d.ts","sourceRoot":"","sources":["../../src/lib/printQueue.server.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AA2B5D,OAAO,EAAuG,KAAK,gBAAgB,EAAkF,MAAM,mBAAmB,CAAC;AAc/O,KAAK,GAAG,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;AAE/B,mFAAmF;AACnF,MAAM,MAAM,OAAO,GAAG,cAAc,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;AAEpD;;;;GAIG;AACH,wBAAsB,gBAAgB,CAAC,EAAE,EAAE,OAAO,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAW1E;AAiFD,2EAA2E;AAC3E,qBAAa,gBAAiB,SAAQ,KAAK;IAChC,IAAI,SAAsB;CACpC;AAED,+EAA+E;AAC/E,qBAAa,iBAAkB,SAAQ,KAAK;IACjC,IAAI,SAAuB;CACrC;AAED,oFAAoF;AACpF,qBAAa,kBAAmB,SAAQ,gBAAgB;IAC7C,IAAI,SAAwB;CACtC;AAED;;;;;GAKG;AACH,MAAM,MAAM,WAAW,GAAG;IAAE,MAAM,EAAE,GAAG,GAAG,IAAI,CAAC;IAAC,WAAW,EAAE,OAAO,CAAA;CAAE,CAAC;AAEvE,yEAAyE;AACzE,MAAM,MAAM,aAAa,GAAG,YAAY,GAAG,cAAc,GAAG,aAAa,GAAG,aAAa,GAAG,eAAe,CAAC;AAE5G,6EAA6E;AAC7E,MAAM,MAAM,YAAY,GAAG;IAAE,IAAI,EAAE,aAAa,CAAA;CAAE,CAAC;AAcnD,4EAA4E;AAC5E,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,OAAO,GAAG,MAAM,CAI7D;AASD,sEAAsE;AACtE,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,GAAG,GAAG,MAAM,CAQnD;AAkCD,yEAAyE;AACzE,wBAAgB,cAAc,CAAC,GAAG,EAAE;IAAE,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,GAAG,OAAO,CAIlE;AAED,wFAAwF;AACxF,wBAAgB,cAAc,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,CAAC,CAe7C;AA8ND;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,SAAS,GAAG;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAQlH;AAWD;;;GAGG;AACH,wBAAsB,cAAc,CAAC,EAAE,EAAE,OAAO,EAAE,GAAG,EAAE,GAAG,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAqClF;AA2UD;;;;GAIG;AACH,gEAAgE;AAChE,wBAAgB,2BAA2B,CAAC,OAAO,EAAE,OAAO,GAAG;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAMpG;AAED;;;GAGG;AACH,wBAAsB,oBAAoB,CAAC,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,GAAG,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAC,CA4CtG;AAoBD,wBAAsB,QAAQ,CAC5B,EAAE,EAAE,OAAO,EACX,GAAG,EAAE,GAAG,EACR,KAAK,EAAE,WAAW,EAClB,QAAQ,CAAC,EAAE,YAAY,GACtB,OAAO,CAAC,MAAM,CAAC,
|
|
1
|
+
{"version":3,"file":"printQueue.server.d.ts","sourceRoot":"","sources":["../../src/lib/printQueue.server.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,13 +3,13 @@
|
|
|
3
3
|
// Pakt wachtende opdrachten op, maakt er een PDF van en stuurt die stil naar
|
|
4
4
|
// de juiste printer. Draait alleen op de server (cron / interne aanroep).
|
|
5
5
|
// ============================================================================
|
|
6
|
-
import { metVervoerder } from "./vervoerder.js";
|
|
6
|
+
import { carrierUitPayload, carrierUitTransport, ENGINE_TE_OUD, geenVervoerderTekst, metVervoerder, VERVOERDER_DOCUMENTEN, voorbeeldVervoerder } from "./vervoerder.js";
|
|
7
7
|
import { maakPakbonOrder, renderPakbonDocument, voorbeeldPakbonOrder, } from "./pakbonHtml.js";
|
|
8
8
|
import { bouwPakbonScanInhoud, bewaarPakbonScanInhoud } from "./pakbonScan.js";
|
|
9
9
|
import { bouwPakbonBarcodeVerzoek, geleverdeBarcodeVoorJob, vraagPakbonBarcodeAan, } from "./pakbonBarcodeVerzoek.js";
|
|
10
10
|
import { bepaalVolleKarStand, deelkarRegels, leesAfleverbriefConfig, pakbonLayoutVariant, } from "./pakbonBuilder.js";
|
|
11
11
|
import { renderProductiebonDocument } from "./productiebonHtml.js";
|
|
12
|
-
import { heeftOrderInhoud, laadOrderVanuitDatabase, laadPakbonData } from "./orderData.server.js";
|
|
12
|
+
import { heeftOrderInhoud, laadOrderVanuitDatabase, laadPakbonData, zoekOrderVerwijzing } from "./orderData.server.js";
|
|
13
13
|
import { profielHeeftInhoud, renderProfielDocument } from "./profielHtml.js";
|
|
14
14
|
import { bouwDocumentHtml, voorbeeldContext } from "./layoutPreview.js";
|
|
15
15
|
import { AfbeeldingInhoudFout, htmlNaarPdfServer, PdfRenderFout } from "./htmlNaarPdf.server.js";
|
|
@@ -132,6 +132,71 @@ export class WachtOpLayoutFout extends Error {
|
|
|
132
132
|
this.name = "WachtOpLayoutFout";
|
|
133
133
|
}
|
|
134
134
|
}
|
|
135
|
+
/** Geen vervoerder (of Engine te oud): wachten tot hij is ingesteld, onbegrensd. */
|
|
136
|
+
export class WachtOpVervoerderFout extends Error {
|
|
137
|
+
constructor() {
|
|
138
|
+
super(...arguments);
|
|
139
|
+
this.name = "WachtOpVervoerderFout";
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
/**
|
|
143
|
+
* Bepaalt de vervoerder voor een eigen document. Alleen carrier_label uit de
|
|
144
|
+
* Engine (payload of logistics_brief_transport). Geeft null voor documenten
|
|
145
|
+
* zonder vervoerder (of Floriday 1-op-1). Gooit WachtOpVervoerderFout als hij
|
|
146
|
+
* ontbreekt; nooit een naam opzoeken, nooit "onbekend".
|
|
147
|
+
*/
|
|
148
|
+
export async function bepaalVervoerder(db, job, p, layout) {
|
|
149
|
+
const dt = normaliseerDocumenttype(layout?.documenttype ?? job.documenttype);
|
|
150
|
+
if (!VERVOERDER_DOCUMENTEN.includes(dt))
|
|
151
|
+
return null;
|
|
152
|
+
if (String(layout?.bron ?? "") === "floriday" || String(p._herkomst ?? "") === "floriday")
|
|
153
|
+
return null;
|
|
154
|
+
if (isTestprintJob(job) || p.voorbeeld === true)
|
|
155
|
+
return voorbeeldVervoerder(p);
|
|
156
|
+
const ref = zoekOrderVerwijzing(p);
|
|
157
|
+
const ordernummer = String(ref.ordernummer ?? p.order_number ?? p.ordernummer ?? "").trim();
|
|
158
|
+
let r = carrierUitPayload(p);
|
|
159
|
+
if (r.soort === "afwezig") {
|
|
160
|
+
if (!ref.orderId) {
|
|
161
|
+
// Engine-opdracht zonder carrier_label en zonder order: Engine te oud.
|
|
162
|
+
if (isEngineOpdracht(job))
|
|
163
|
+
throw new WachtOpVervoerderFout(ENGINE_TE_OUD);
|
|
164
|
+
return null;
|
|
165
|
+
}
|
|
166
|
+
const { data, error } = await db.rpc("logistics_brief_transport", {
|
|
167
|
+
p_order_id: ref.orderId,
|
|
168
|
+
...(ref.cartId ? { p_cart_id: ref.cartId } : {}),
|
|
169
|
+
});
|
|
170
|
+
if (error)
|
|
171
|
+
throw new WachtOpVervoerderFout(`${ENGINE_TE_OUD} (${String(error.message ?? "").slice(0, 120)})`);
|
|
172
|
+
r = carrierUitTransport(data);
|
|
173
|
+
if (r.soort === "afwezig")
|
|
174
|
+
throw new WachtOpVervoerderFout(ENGINE_TE_OUD);
|
|
175
|
+
}
|
|
176
|
+
if (r.soort === "geen")
|
|
177
|
+
throw new WachtOpVervoerderFout(geenVervoerderTekst(ordernummer));
|
|
178
|
+
return r.label;
|
|
179
|
+
}
|
|
180
|
+
/** Wacht op een vervoerder: blijft wachtend (geen eindstatus), reden zichtbaar in de wachtrij. */
|
|
181
|
+
export async function wachtOpVervoerder(db, job, reden) {
|
|
182
|
+
const nu = new Date().toISOString();
|
|
183
|
+
await db
|
|
184
|
+
.from("print_jobs")
|
|
185
|
+
.update({
|
|
186
|
+
status: "wachtend",
|
|
187
|
+
foutcode: "GEEN_VERVOERDER",
|
|
188
|
+
foutmelding: reden.slice(0, 500),
|
|
189
|
+
pogingen: Number(job.pogingen ?? 0) + 1,
|
|
190
|
+
volgende_poging: new Date(Date.now() + 5 * 60 * 1000).toISOString(),
|
|
191
|
+
opgepakt_op: null,
|
|
192
|
+
voltooid_op: null,
|
|
193
|
+
updated_at: nu,
|
|
194
|
+
})
|
|
195
|
+
.eq("id", job.id)
|
|
196
|
+
.neq("status", "geannuleerd");
|
|
197
|
+
await log(db, job.id, "wacht_op_vervoerder", reden);
|
|
198
|
+
return "wachtend";
|
|
199
|
+
}
|
|
135
200
|
/** Blijvende contractfout: opnieuw proberen met dezelfde invoer kan niet slagen. */
|
|
136
201
|
export class EngineContractFout extends GeenDocumentFout {
|
|
137
202
|
constructor() {
|
|
@@ -922,6 +987,8 @@ export async function bouwHtml(db, job, keuze, uitkomst) {
|
|
|
922
987
|
return meegestuurd;
|
|
923
988
|
}
|
|
924
989
|
const p = (job.payload ?? {});
|
|
990
|
+
// Vervoerder: alleen carrier_label uit de Engine. Ontbreekt hij → wachten.
|
|
991
|
+
const carrierLabel = await bepaalVervoerder(db, job, p, layout);
|
|
925
992
|
const liggend = String(layout.orientatie ?? "portrait") === "landscape";
|
|
926
993
|
const b = Number(layout.breedte_mm ?? 210);
|
|
927
994
|
const h = Number(layout.hoogte_mm ?? 297);
|
|
@@ -997,7 +1064,7 @@ export async function bouwHtml(db, job, keuze, uitkomst) {
|
|
|
997
1064
|
const gekozen = (cartId ? karren.find((k) => String(k?.cart_id ?? "").trim() === cartId) : null) ??
|
|
998
1065
|
karren[0] ??
|
|
999
1066
|
null;
|
|
1000
|
-
const metTerugval = await metBedrijfsTerugval(db, { ...volledig, karren: gekozen ? [gekozen] : [] }, layout);
|
|
1067
|
+
const metTerugval = await metBedrijfsTerugval(db, metVervoerder({ ...volledig, karren: gekozen ? [gekozen] : [] }, p, carrierLabel), layout);
|
|
1001
1068
|
const order = metTerugval.order;
|
|
1002
1069
|
layout = metTerugval.layout;
|
|
1003
1070
|
return renderPakbonDocument(leesAfleverbriefConfig(layout.config), order, {
|
|
@@ -1074,7 +1141,7 @@ export async function bouwHtml(db, job, keuze, uitkomst) {
|
|
|
1074
1141
|
if (isTestpakbon)
|
|
1075
1142
|
order = zonderBarcodes(order);
|
|
1076
1143
|
// Vervoerder/ophaalmoment alleen uit de printopdracht; ontbrekend = weglaten.
|
|
1077
|
-
order = metVervoerder(order, p);
|
|
1144
|
+
order = metVervoerder(order, p, carrierLabel);
|
|
1078
1145
|
if (isEngineOpdracht(job) && !isTestpakbon) {
|
|
1079
1146
|
let barcode = String(engineBarcode ?? "").trim();
|
|
1080
1147
|
if (!barcode) {
|
|
@@ -1271,6 +1338,13 @@ export async function bouwHtml(db, job, keuze, uitkomst) {
|
|
|
1271
1338
|
? null
|
|
1272
1339
|
: await laadOrderVanuitDatabase(db, p).catch(() => null);
|
|
1273
1340
|
const gegevens = { ...(uitDatabase ?? {}), ...(meegegeven ?? {}) };
|
|
1341
|
+
if (carrierLabel !== null) {
|
|
1342
|
+
// Eén bron: carrier_label. Overschrijft elke andere transporteurwaarde.
|
|
1343
|
+
gegevens.carrier_label = carrierLabel;
|
|
1344
|
+
gegevens.transporteur = carrierLabel;
|
|
1345
|
+
gegevens.verzending = { ...(gegevens.verzending ?? {}), transporteur: carrierLabel };
|
|
1346
|
+
gegevens.order = { ...(gegevens.order ?? {}), transporteur: carrierLabel, carrier_label: carrierLabel };
|
|
1347
|
+
}
|
|
1274
1348
|
const profielData = p.voorbeeld === true ? { ...voorbeeldContext(), ...(gegevens ?? {}) } : gegevens;
|
|
1275
1349
|
const profielHtml = renderProfielDocument(String(layout.documenttype), cfg, profielData, {
|
|
1276
1350
|
breedteMm,
|
|
@@ -1749,6 +1823,9 @@ async function verwerkJob(db, job) {
|
|
|
1749
1823
|
return "verstuurd";
|
|
1750
1824
|
}
|
|
1751
1825
|
catch (e) {
|
|
1826
|
+
if (e instanceof WachtOpVervoerderFout) {
|
|
1827
|
+
return await wachtOpVervoerder(db, job, e.message);
|
|
1828
|
+
}
|
|
1752
1829
|
if (e instanceof WachtOpLayoutFout) {
|
|
1753
1830
|
return await wachtOpLayout(db, job, e.message);
|
|
1754
1831
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"profielHtml.d.ts","sourceRoot":"","sources":["../../src/lib/profielHtml.ts"],"names":[],"mappings":"AAuBA,MAAM,WAAW,mBAAmB;IAClC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,qDAAqD;IACrD,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACzB;
|
|
1
|
+
{"version":3,"file":"profielHtml.d.ts","sourceRoot":"","sources":["../../src/lib/profielHtml.ts"],"names":[],"mappings":"AAuBA,MAAM,WAAW,mBAAmB;IAClC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,qDAAqD;IACrD,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACzB;AA4ND,kEAAkE;AAClE,wBAAgB,kBAAkB,CAAC,YAAY,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,GAAG,OAAO,CAWjF;AAED,oEAAoE;AACpE,wBAAgB,qBAAqB,CACnC,YAAY,EAAE,MAAM,EACpB,MAAM,EAAE,OAAO,EACf,QAAQ,EAAE,OAAO,EACjB,MAAM,GAAE,mBAAwB,GAC/B,MAAM,CAwCR"}
|
|
@@ -48,7 +48,8 @@ const SYNONIEMEN = {
|
|
|
48
48
|
plaats: ["ontvanger.plaats", "klant.plaats", "adres.plaats"],
|
|
49
49
|
land: ["ontvanger.land", "klant.land", "adres.land"],
|
|
50
50
|
klantnaam: ["klant.naam", "ontvanger.bedrijf", "klantnaam"],
|
|
51
|
-
transporteur: ["verzending.transporteur", "order.transporteur", "transporteur"],
|
|
51
|
+
transporteur: ["carrier_label", "order.carrier_label", "verzending.transporteur", "order.transporteur", "transporteur"],
|
|
52
|
+
carrier_label: ["carrier_label", "order.carrier_label"],
|
|
52
53
|
verzendmethode: ["verzending.methode", "order.verzendmethode", "verzendmethode"],
|
|
53
54
|
route: ["verzending.route", "order.route", "route"],
|
|
54
55
|
track_trace: ["verzending.track_trace", "order.track_trace", "trackTrace"],
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export declare const PAKKET_VERSIE = "1.69.
|
|
1
|
+
export declare const PAKKET_VERSIE = "1.69.10";
|
|
2
2
|
//# sourceMappingURL=versie.generated.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"versie.generated.d.ts","sourceRoot":"","sources":["../../src/lib/versie.generated.ts"],"names":[],"mappings":"AACA,eAAO,MAAM,aAAa,
|
|
1
|
+
{"version":3,"file":"versie.generated.d.ts","sourceRoot":"","sources":["../../src/lib/versie.generated.ts"],"names":[],"mappings":"AACA,eAAO,MAAM,aAAa,YAAY,CAAC"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
// Gegenereerd door scripts/schrijf-versie.cjs uit package.json. Niet met de hand wijzigen.
|
|
2
|
-
export const PAKKET_VERSIE = "1.69.
|
|
2
|
+
export const PAKKET_VERSIE = "1.69.10";
|
|
@@ -3,11 +3,35 @@ export interface VervoerderInfo {
|
|
|
3
3
|
ophaalmoment: string;
|
|
4
4
|
ophaaladres: string;
|
|
5
5
|
}
|
|
6
|
+
/** Documentsoorten van deze module die een vervoerder moeten tonen. */
|
|
7
|
+
export declare const VERVOERDER_DOCUMENTEN: readonly ["pakbon", "afleverbrief", "verzendlabel", "transportdocument"];
|
|
8
|
+
/** Voorbeeldwaarden voor testprint en editor (geen echte vervoerdersnaam). */
|
|
9
|
+
export declare const VOORBEELD_VERVOERDERS: readonly ["Voorbeeld Transport BV", "Eigen vervoer", "Afhalen"];
|
|
10
|
+
export declare const ENGINE_TE_OUD = "Logistieke Engine 1.0.184 of hoger nodig: de opdracht bevat geen vervoerder (carrier_label). Er is niets geprint.";
|
|
11
|
+
export declare function geenVervoerderTekst(ordernummer: string): string;
|
|
12
|
+
export type CarrierUitkomst = {
|
|
13
|
+
soort: "ok";
|
|
14
|
+
label: string;
|
|
15
|
+
} | {
|
|
16
|
+
soort: "geen";
|
|
17
|
+
} | {
|
|
18
|
+
soort: "afwezig";
|
|
19
|
+
};
|
|
20
|
+
/** Kiest het voorbeeldlabel voor een testprint (alleen één van de drie). */
|
|
21
|
+
export declare function voorbeeldVervoerder(payload: unknown): string;
|
|
22
|
+
/** Leest carrier_label uit één transportobject (payload of logistics_brief_transport). */
|
|
23
|
+
export declare function carrierUitTransport(t: unknown): CarrierUitkomst;
|
|
24
|
+
/** Zoekt carrier_label in de payload (bovenin, transport, data, data.transport). */
|
|
25
|
+
export declare function carrierUitPayload(payload: unknown): CarrierUitkomst;
|
|
6
26
|
/** ISO-tijd (UTC) → leesbaar in Europe/Amsterdam. Ongeldig → leeg. */
|
|
7
27
|
export declare function ophaalmomentTekst(iso: unknown): string;
|
|
8
|
-
|
|
9
|
-
|
|
28
|
+
/** Ophaalmoment/-adres uit de payload. De vervoerder komt hier NIET vandaan. */
|
|
29
|
+
export declare function vervoerderUitPayload(payload: unknown, carrierLabel?: string | null): VervoerderInfo;
|
|
30
|
+
/**
|
|
31
|
+
* Zet vervoerder (alleen carrier_label) en ophaalgegevens op order.transport.
|
|
32
|
+
* Elke andere bronwaarde voor de transporteur wordt overschreven: geen terugval.
|
|
33
|
+
*/
|
|
10
34
|
export declare function metVervoerder<T extends {
|
|
11
35
|
transport: Record<string, unknown>;
|
|
12
|
-
}>(order: T, payload: unknown): T;
|
|
36
|
+
}>(order: T, payload: unknown, carrierLabel?: string | null): T;
|
|
13
37
|
//# sourceMappingURL=vervoerder.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vervoerder.d.ts","sourceRoot":"","sources":["../../src/lib/vervoerder.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"vervoerder.d.ts","sourceRoot":"","sources":["../../src/lib/vervoerder.ts"],"names":[],"mappings":"AAMA,MAAM,WAAW,cAAc;IAC7B,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;CACrB;AAKD,uEAAuE;AACvE,eAAO,MAAM,qBAAqB,0EAA2E,CAAC;AAE9G,8EAA8E;AAC9E,eAAO,MAAM,qBAAqB,iEAAkE,CAAC;AAErG,eAAO,MAAM,aAAa,sHAC2F,CAAC;AAEtH,wBAAgB,mBAAmB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAG/D;AAED,MAAM,MAAM,eAAe,GACvB;IAAE,KAAK,EAAE,IAAI,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GAC9B;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,GACjB;IAAE,KAAK,EAAE,SAAS,CAAA;CAAE,CAAC;AAEzB,4EAA4E;AAC5E,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,OAAO,GAAG,MAAM,CAG5D;AAMD,0FAA0F;AAC1F,wBAAgB,mBAAmB,CAAC,CAAC,EAAE,OAAO,GAAG,eAAe,CAa/D;AAED,oFAAoF;AACpF,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,OAAO,GAAG,eAAe,CAWnE;AAED,sEAAsE;AACtE,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,OAAO,GAAG,MAAM,CAUtD;AAeD,gFAAgF;AAChF,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,OAAO,EAAE,YAAY,GAAE,MAAM,GAAG,IAAW,GAAG,cAAc,CAQzG;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,CAAC,SAAS;IAAE,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAAE,EAC5E,KAAK,EAAE,CAAC,EACR,OAAO,EAAE,OAAO,EAChB,YAAY,GAAE,MAAM,GAAG,IAAW,GACjC,CAAC,CAYH"}
|
|
@@ -1,8 +1,61 @@
|
|
|
1
1
|
// ============================================================================
|
|
2
2
|
// src/lib/vervoerder.ts — vervoerder en ophaalmoment uit de printopdracht.
|
|
3
|
-
//
|
|
3
|
+
// De vervoerder komt uitsluitend uit `carrier_label` van de Logistieke Engine
|
|
4
|
+
// (1.0.184+). Nooit opzoeken op naam, nooit terugvallen op een andere naam.
|
|
4
5
|
// ============================================================================
|
|
5
6
|
const tekst = (v) => (typeof v === "string" ? v.trim() : "");
|
|
7
|
+
const obj = (v) => (v && typeof v === "object" ? v : null);
|
|
8
|
+
/** Documentsoorten van deze module die een vervoerder moeten tonen. */
|
|
9
|
+
export const VERVOERDER_DOCUMENTEN = ["pakbon", "afleverbrief", "verzendlabel", "transportdocument"];
|
|
10
|
+
/** Voorbeeldwaarden voor testprint en editor (geen echte vervoerdersnaam). */
|
|
11
|
+
export const VOORBEELD_VERVOERDERS = ["Voorbeeld Transport BV", "Eigen vervoer", "Afhalen"];
|
|
12
|
+
export const ENGINE_TE_OUD = "Logistieke Engine 1.0.184 of hoger nodig: de opdracht bevat geen vervoerder (carrier_label). Er is niets geprint.";
|
|
13
|
+
export function geenVervoerderTekst(ordernummer) {
|
|
14
|
+
const nr = ordernummer.trim() || "zonder nummer";
|
|
15
|
+
return `Geen vervoerder bij order ${nr}: stel er een in bij de order of bij Afhandeling → Vervoerders`;
|
|
16
|
+
}
|
|
17
|
+
/** Kiest het voorbeeldlabel voor een testprint (alleen één van de drie). */
|
|
18
|
+
export function voorbeeldVervoerder(payload) {
|
|
19
|
+
const gevraagd = tekst(obj(payload)?.["voorbeeld_carrier_label"]);
|
|
20
|
+
return VOORBEELD_VERVOERDERS.includes(gevraagd) ? gevraagd : VOORBEELD_VERVOERDERS[0];
|
|
21
|
+
}
|
|
22
|
+
function isGeenBron(o) {
|
|
23
|
+
return [o["carrier_source"], o["vervoerder_bron"], o["bron"]].some((v) => tekst(v).toLowerCase() === "geen");
|
|
24
|
+
}
|
|
25
|
+
/** Leest carrier_label uit één transportobject (payload of logistics_brief_transport). */
|
|
26
|
+
export function carrierUitTransport(t) {
|
|
27
|
+
const o = obj(t);
|
|
28
|
+
if (!o)
|
|
29
|
+
return { soort: "afwezig" };
|
|
30
|
+
if (isGeenBron(o))
|
|
31
|
+
return { soort: "geen" };
|
|
32
|
+
const label = tekst(o["carrier_label"]);
|
|
33
|
+
if (label)
|
|
34
|
+
return { soort: "ok", label };
|
|
35
|
+
if ("carrier_label" in o)
|
|
36
|
+
return { soort: "geen" };
|
|
37
|
+
// De Engine meldt zelf dat de vervoerder ontbreekt.
|
|
38
|
+
const onbekend = Array.isArray(o["onbekend"]) ? o["onbekend"].map(tekst) : [];
|
|
39
|
+
if (onbekend.some((x) => x === "vervoerder" || x === "vervoerder_niet_eenduidig" || x === "order")) {
|
|
40
|
+
return { soort: "geen" };
|
|
41
|
+
}
|
|
42
|
+
return { soort: "afwezig" };
|
|
43
|
+
}
|
|
44
|
+
/** Zoekt carrier_label in de payload (bovenin, transport, data, data.transport). */
|
|
45
|
+
export function carrierUitPayload(payload) {
|
|
46
|
+
const p = obj(payload) ?? {};
|
|
47
|
+
const d = obj(p["data"]);
|
|
48
|
+
const plekken = [p, obj(p["transport"]), d, obj(d?.["transport"])];
|
|
49
|
+
let geen = false;
|
|
50
|
+
for (const plek of plekken) {
|
|
51
|
+
const r = carrierUitTransport(plek);
|
|
52
|
+
if (r.soort === "ok")
|
|
53
|
+
return r;
|
|
54
|
+
if (r.soort === "geen")
|
|
55
|
+
geen = true;
|
|
56
|
+
}
|
|
57
|
+
return geen ? { soort: "geen" } : { soort: "afwezig" };
|
|
58
|
+
}
|
|
6
59
|
/** ISO-tijd (UTC) → leesbaar in Europe/Amsterdam. Ongeldig → leeg. */
|
|
7
60
|
export function ophaalmomentTekst(iso) {
|
|
8
61
|
const s = tekst(iso);
|
|
@@ -31,26 +84,28 @@ function adresTekst(v) {
|
|
|
31
84
|
].filter(Boolean);
|
|
32
85
|
return delen.join(", ");
|
|
33
86
|
}
|
|
34
|
-
|
|
87
|
+
/** Ophaalmoment/-adres uit de payload. De vervoerder komt hier NIET vandaan. */
|
|
88
|
+
export function vervoerderUitPayload(payload, carrierLabel = null) {
|
|
35
89
|
const p = (payload && typeof payload === "object" ? payload : {});
|
|
36
|
-
const v = (p["vervoerder"] && typeof p["vervoerder"] === "object" ? p["vervoerder"] : {});
|
|
37
|
-
const naam = tekst(v["naam"]);
|
|
38
|
-
const code = tekst(v["code"]);
|
|
39
90
|
return {
|
|
40
|
-
transporteur:
|
|
91
|
+
transporteur: carrierLabel ?? "",
|
|
41
92
|
ophaalmoment: ophaalmomentTekst(p["ophaalmoment"]),
|
|
42
93
|
// Alleen payload.ophaaladres; vervoerder.adres wordt bewust genegeerd.
|
|
43
94
|
ophaaladres: adresTekst(p["ophaaladres"]),
|
|
44
95
|
};
|
|
45
96
|
}
|
|
46
|
-
/**
|
|
47
|
-
|
|
48
|
-
|
|
97
|
+
/**
|
|
98
|
+
* Zet vervoerder (alleen carrier_label) en ophaalgegevens op order.transport.
|
|
99
|
+
* Elke andere bronwaarde voor de transporteur wordt overschreven: geen terugval.
|
|
100
|
+
*/
|
|
101
|
+
export function metVervoerder(order, payload, carrierLabel = null) {
|
|
102
|
+
const v = vervoerderUitPayload(payload, carrierLabel);
|
|
49
103
|
return {
|
|
50
104
|
...order,
|
|
51
105
|
transport: {
|
|
52
106
|
...order.transport,
|
|
53
|
-
|
|
107
|
+
transporteur: v.transporteur,
|
|
108
|
+
carrier_label: v.transporteur,
|
|
54
109
|
ophaalmoment: v.ophaalmoment,
|
|
55
110
|
ophaaladres: v.ophaaladres,
|
|
56
111
|
},
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@flowselections/layout-maker",
|
|
3
|
-
"version": "1.69.
|
|
3
|
+
"version": "1.69.10",
|
|
4
4
|
"flowselections": {
|
|
5
5
|
"moduleId": "layout-maker",
|
|
6
6
|
"pages": [
|
|
@@ -143,7 +143,7 @@
|
|
|
143
143
|
"devDependencies": {
|
|
144
144
|
"@cloudflare/vite-plugin": "^1.25.5",
|
|
145
145
|
"@eslint/js": "^9.32.0",
|
|
146
|
-
"@flowselections/core": "1.0.
|
|
146
|
+
"@flowselections/core": "1.0.30",
|
|
147
147
|
"@lovable.dev/vite-tanstack-config": "2.26.5",
|
|
148
148
|
"@rsbuild/core": "^1.0.0",
|
|
149
149
|
"@tailwindcss/vite": "^4.2.1",
|