@flowselections/layout-maker 1.59.1 → 1.61.1

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 (49) hide show
  1. package/dist-lib/components/LivePrintstatusRegel.d.ts.map +1 -1
  2. package/dist-lib/components/LivePrintstatusRegel.js +29 -29
  3. package/dist-lib/components/PrintInstallatiesBlok.d.ts +3 -0
  4. package/dist-lib/components/PrintInstallatiesBlok.d.ts.map +1 -0
  5. package/dist-lib/components/PrintInstallatiesBlok.js +29 -0
  6. package/dist-lib/components/PrintQueuePage.d.ts.map +1 -1
  7. package/dist-lib/components/PrintQueuePage.js +27 -8
  8. package/dist-lib/components/PrintStatusBanner.d.ts.map +1 -1
  9. package/dist-lib/components/PrintStatusBanner.js +3 -1
  10. package/dist-lib/components/PrintenInstellenWizard.d.ts.map +1 -1
  11. package/dist-lib/components/PrintenInstellenWizard.js +14 -1
  12. package/dist-lib/components/WerkplekOmzettingStap.d.ts.map +1 -1
  13. package/dist-lib/components/WerkplekOmzettingStap.js +2 -1
  14. package/dist-lib/components/WerkplekkenTab.d.ts.map +1 -1
  15. package/dist-lib/components/WerkplekkenTab.js +27 -3
  16. package/dist-lib/index.js +3 -3
  17. package/dist-lib/integrations/supabase/types.d.ts +701 -0
  18. package/dist-lib/integrations/supabase/types.d.ts.map +1 -1
  19. package/dist-lib/lib/etiketControle.d.ts +8 -0
  20. package/dist-lib/lib/etiketControle.d.ts.map +1 -1
  21. package/dist-lib/lib/etiketControle.js +7 -2
  22. package/dist-lib/lib/foutTekst.d.ts +6 -0
  23. package/dist-lib/lib/foutTekst.d.ts.map +1 -1
  24. package/dist-lib/lib/foutTekst.js +46 -16
  25. package/dist-lib/lib/layoutVerwijzingen.js +1 -1
  26. package/dist-lib/lib/printApi.d.ts +1 -1
  27. package/dist-lib/lib/printApi.d.ts.map +1 -1
  28. package/dist-lib/lib/printApi.js +5 -4
  29. package/dist-lib/lib/printQueue.server.d.ts.map +1 -1
  30. package/dist-lib/lib/printQueue.server.js +16 -2
  31. package/dist-lib/lib/printService.functions.d.ts +94 -0
  32. package/dist-lib/lib/printService.functions.d.ts.map +1 -1
  33. package/dist-lib/lib/printService.functions.js +52 -2
  34. package/dist-lib/lib/printnodeStatus.d.ts +1 -0
  35. package/dist-lib/lib/printnodeStatus.d.ts.map +1 -1
  36. package/dist-lib/lib/printnodeStatus.js +4 -2
  37. package/dist-lib/lib/printnodeWebhook.d.ts +12 -0
  38. package/dist-lib/lib/printnodeWebhook.d.ts.map +1 -1
  39. package/dist-lib/lib/printnodeWebhook.js +27 -1
  40. package/dist-lib/lib/printplekken.js +1 -1
  41. package/dist-lib/lib/queueTick.d.ts.map +1 -1
  42. package/dist-lib/lib/queueTick.js +9 -0
  43. package/dist-lib/lib/runnerRegistry.server.d.ts +5 -0
  44. package/dist-lib/lib/runnerRegistry.server.d.ts.map +1 -1
  45. package/dist-lib/lib/runnerRegistry.server.js +22 -1
  46. package/dist-lib/lib/shellPoort.d.ts +21 -0
  47. package/dist-lib/lib/shellPoort.d.ts.map +1 -0
  48. package/dist-lib/lib/shellPoort.js +43 -0
  49. package/package.json +1 -1
@@ -34,6 +34,7 @@ export async function meldRunnerAan(db) {
34
34
  return;
35
35
  laatsteUrl = basis;
36
36
  laatsteMelding = nu;
37
+ const { MODULE_VERSIE } = await import("./shellPoort.js");
37
38
  try {
38
39
  const { data } = await db
39
40
  .from("print_queue_runners")
@@ -43,7 +44,7 @@ export async function meldRunnerAan(db) {
43
44
  if (data?.id) {
44
45
  await db
45
46
  .from("print_queue_runners")
46
- .update({ laatst_gezien: new Date().toISOString(), actief: true })
47
+ .update({ laatst_gezien: new Date().toISOString(), actief: true, module_versie: MODULE_VERSIE })
47
48
  .eq("id", data.id);
48
49
  return;
49
50
  }
@@ -51,6 +52,7 @@ export async function meldRunnerAan(db) {
51
52
  basis_url: basis,
52
53
  laatst_gezien: new Date().toISOString(),
53
54
  actief: true,
55
+ module_versie: MODULE_VERSIE,
54
56
  });
55
57
  }
56
58
  catch {
@@ -58,6 +60,25 @@ export async function meldRunnerAan(db) {
58
60
  laatsteMelding = 0;
59
61
  }
60
62
  }
63
+ /**
64
+ * Mag deze installatie de printwachtrij verwerken? Alleen de Shell
65
+ * (shell_base_url uit module_runtime_config), met optioneel min_print_versie.
66
+ */
67
+ export async function controleerShellPoort(db) {
68
+ const { beoordeelPoort, MODULE_VERSIE } = await import("./shellPoort.js");
69
+ const { data } = await db
70
+ .from("module_runtime_config")
71
+ .select("key, value")
72
+ .in("key", ["shell_base_url", "min_print_versie"]);
73
+ const rijen = Array.isArray(data) ? data : [];
74
+ const waarde = (k) => rijen.find((r) => r.key === k)?.value ?? null;
75
+ return beoordeelPoort({
76
+ shellAdres: waarde("shell_base_url"),
77
+ eigenAdres: eigenBasisUrl(),
78
+ versie: MODULE_VERSIE,
79
+ minVersie: waarde("min_print_versie"),
80
+ });
81
+ }
61
82
  /** Controleert of de meegegeven sleutel bij een geregistreerde shell hoort. */
62
83
  export async function isRunnerSleutel(db, sleutel) {
63
84
  if (!sleutel || sleutel.length < 20)
@@ -0,0 +1,21 @@
1
+ /** Moduleversie van deze code. Gelijk houden aan package.json (test bewaakt dit). */
2
+ export declare const MODULE_VERSIE = "1.61.0";
3
+ export declare function normaliseerAdres(u: unknown): string | null;
4
+ /** -1 als a < b, 0 als gelijk, 1 als a > b (alleen cijfers, punt-gescheiden). */
5
+ export declare function vergelijkVersie(a: string, b: string): number;
6
+ export type PoortUitkomst = {
7
+ mag: true;
8
+ } | {
9
+ mag: false;
10
+ reden: "geen_shell_adres" | "niet_de_shell" | "versie_te_oud" | "eigen_adres_onbekend";
11
+ tekst: string;
12
+ };
13
+ export declare function beoordeelPoort(input: {
14
+ shellAdres: unknown;
15
+ eigenAdres: string | null;
16
+ versie: string;
17
+ minVersie?: unknown;
18
+ }): PoortUitkomst;
19
+ /** Gemaskeerd adres: alleen de eerste 4 tekens van de naam. */
20
+ export declare function maskeerAdres(u: string): string;
21
+ //# sourceMappingURL=shellPoort.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shellPoort.d.ts","sourceRoot":"","sources":["../../src/lib/shellPoort.ts"],"names":[],"mappings":"AAMA,qFAAqF;AACrF,eAAO,MAAM,aAAa,WAAW,CAAC;AAEtC,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,CAG1D;AAED,iFAAiF;AACjF,wBAAgB,eAAe,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAQ5D;AAED,MAAM,MAAM,aAAa,GACrB;IAAE,GAAG,EAAE,IAAI,CAAA;CAAE,GACb;IAAE,GAAG,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,kBAAkB,GAAG,eAAe,GAAG,eAAe,GAAG,sBAAsB,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC;AAE1H,wBAAgB,cAAc,CAAC,KAAK,EAAE;IACpC,UAAU,EAAE,OAAO,CAAC;IACpB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB,GAAG,aAAa,CAWhB;AAED,+DAA+D;AAC/D,wBAAgB,YAAY,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAI9C"}
@@ -0,0 +1,43 @@
1
+ // ============================================================================
2
+ // src/lib/shellPoort.ts — wie mag de printwachtrij verwerken? Alleen de Shell:
3
+ // de installatie waarvan het adres gelijk is aan shell_base_url uit de eigen
4
+ // database. Niets vast in code; ontbreekt het adres, dan wordt er niet geprint.
5
+ // ============================================================================
6
+ /** Moduleversie van deze code. Gelijk houden aan package.json (test bewaakt dit). */
7
+ export const MODULE_VERSIE = "1.61.0";
8
+ export function normaliseerAdres(u) {
9
+ const s = String(u ?? "").trim().replace(/\/+$/, "").toLowerCase();
10
+ return s || null;
11
+ }
12
+ /** -1 als a < b, 0 als gelijk, 1 als a > b (alleen cijfers, punt-gescheiden). */
13
+ export function vergelijkVersie(a, b) {
14
+ const pa = a.split(".").map((x) => parseInt(x, 10) || 0);
15
+ const pb = b.split(".").map((x) => parseInt(x, 10) || 0);
16
+ for (let i = 0; i < Math.max(pa.length, pb.length); i++) {
17
+ const d = (pa[i] ?? 0) - (pb[i] ?? 0);
18
+ if (d !== 0)
19
+ return d < 0 ? -1 : 1;
20
+ }
21
+ return 0;
22
+ }
23
+ export function beoordeelPoort(input) {
24
+ const shell = normaliseerAdres(input.shellAdres);
25
+ if (!shell)
26
+ return { mag: false, reden: "geen_shell_adres", tekst: "overgeslagen: er is geen Shell-adres ingesteld, dus er wordt niet geprint" };
27
+ const eigen = normaliseerAdres(input.eigenAdres);
28
+ if (!eigen)
29
+ return { mag: false, reden: "eigen_adres_onbekend", tekst: "overgeslagen: eigen adres onbekend" };
30
+ if (eigen !== shell)
31
+ return { mag: false, reden: "niet_de_shell", tekst: "overgeslagen: niet de Shell" };
32
+ const min = String(input.minVersie ?? "").trim().replace(/^"|"$/g, "");
33
+ if (min && vergelijkVersie(input.versie, min) < 0)
34
+ return { mag: false, reden: "versie_te_oud", tekst: `overgeslagen: versie ${input.versie} is ouder dan de minimale versie ${min}` };
35
+ return { mag: true };
36
+ }
37
+ /** Gemaskeerd adres: alleen de eerste 4 tekens van de naam. */
38
+ export function maskeerAdres(u) {
39
+ const m = /^(https?:\/\/)([^./]+)(\.[^/]*)?/i.exec(u.trim());
40
+ if (!m)
41
+ return "…";
42
+ return `${m[1]}${m[2].slice(0, 4)}…${m[3] ?? ""}`;
43
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@flowselections/layout-maker",
3
- "version": "1.59.1",
3
+ "version": "1.61.1",
4
4
  "flowselections": {
5
5
  "moduleId": "layout-maker",
6
6
  "pages": [