@flowselections/pick-schermen-kwekers 1.0.76 → 1.0.79

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.
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=pickDefaults.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pickDefaults.test.d.ts","sourceRoot":"","sources":["../../../src/lib/__tests__/pickDefaults.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,26 @@
1
+ import { describe, expect, it } from "vitest";
2
+ import { aanmaakReden, standaardgegevensMelding } from "../pickReferenceApi.js";
3
+ const basis = {
4
+ verplichte_types: ["pakbon"],
5
+ verplichte_statussen: ["queued"],
6
+ types_aantal: 7,
7
+ statussen_aantal: 9,
8
+ types_ontbreken: [],
9
+ types_inactief: [],
10
+ statussen_ontbreken: [],
11
+ statussen_inactief: [],
12
+ types: [],
13
+ statussen: [],
14
+ aanmaakFout: null,
15
+ };
16
+ describe("melding standaardgegevens", () => {
17
+ it("toont geen melding als het aanmaken lukte en alles aanwezig is", () => {
18
+ expect(standaardgegevensMelding(basis)).toBeNull();
19
+ });
20
+ it("toont de reden als het aanmaken mislukte", () => {
21
+ expect(standaardgegevensMelding({ ...basis, aanmaakFout: "geen rechten om de standaardgegevens aan te maken" })).toBe("Standaardgegevens konden niet worden aangemaakt: geen rechten om de standaardgegevens aan te maken.");
22
+ });
23
+ it("geeft bij een rechtenfout een gewone reden", () => {
24
+ expect(aanmaakReden("permission denied for function pick_ensure_defaults", "42501")).toBe("geen rechten om de standaardgegevens aan te maken");
25
+ });
26
+ });
@@ -13,9 +13,18 @@ export interface PickReferenceStatus {
13
13
  statussen_inactief: string[];
14
14
  types: PickDocumentType[];
15
15
  statussen: PickStatus[];
16
+ /** Gevuld als het automatisch aanmaken van de standaardgegevens mislukte. */
17
+ aanmaakFout?: string | null;
16
18
  }
17
19
  export declare const pickReferenceApi: {
18
20
  /** Eén bron voor kaart en banner: aantallen, ontbrekende codes en de rijen zelf. */
21
+ /** Zelfherstel: maakt ontbrekende standaardgegevens aan; overschrijft nooit klantaanpassingen. */
22
+ ensureDefaults(): Promise<{
23
+ ok: boolean;
24
+ reden: string | null;
25
+ }>;
26
+ /** Eerst zelfherstel, daarna de status. Mislukt het herstel, dan staat de reden in aanmaakFout. */
27
+ statusNaHerstel(): Promise<PickReferenceStatus>;
19
28
  status(): Promise<PickReferenceStatus>;
20
29
  seed(): Promise<{
21
30
  statuses_toegevoegd: number;
@@ -34,4 +43,8 @@ export declare const pickReferenceApi: {
34
43
  };
35
44
  /** Alle verplichte codes die ontbreken of uitgezet zijn, als leesbare regels. */
36
45
  export declare function referentieProblemen(s: PickReferenceStatus | undefined | null): string[];
46
+ /** Gewone-taalreden bij een mislukt aanmaken van standaardgegevens. */
47
+ export declare function aanmaakReden(bericht: string, code?: string): string;
48
+ /** Tekst van de melding; null = geen melding tonen. */
49
+ export declare function standaardgegevensMelding(s: PickReferenceStatus | undefined | null): string | null;
37
50
  //# sourceMappingURL=pickReferenceApi.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"pickReferenceApi.d.ts","sourceRoot":"","sources":["../../src/lib/pickReferenceApi.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEhE,iEAAiE;AACjE,eAAO,MAAM,qBAAqB,qBAAsB,CAAC;AACzD,eAAO,MAAM,uBAAuB,qEAM1B,CAAC;AAEX,MAAM,WAAW,mBAAmB;IAClC,gBAAgB,EAAE,MAAM,EAAE,CAAC;IAC3B,oBAAoB,EAAE,MAAM,EAAE,CAAC;IAC/B,YAAY,EAAE,MAAM,CAAC;IACrB,gBAAgB,EAAE,MAAM,CAAC;IACzB,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,mBAAmB,EAAE,MAAM,EAAE,CAAC;IAC9B,kBAAkB,EAAE,MAAM,EAAE,CAAC;IAC7B,KAAK,EAAE,gBAAgB,EAAE,CAAC;IAC1B,SAAS,EAAE,UAAU,EAAE,CAAC;CACzB;AAoBD,eAAO,MAAM,gBAAgB;IAC3B,oFAAoF;cACpE,OAAO,CAAC,mBAAmB,CAAC;YAmB9B,OAAO,CAAC;QAAE,mBAAmB,EAAE,MAAM,CAAC;QAAC,gBAAgB,EAAE,MAAM,CAAA;KAAE,CAAC;mBAU3D,MAAM,SAAS,OAAO,CAAC,gBAAgB,CAAC;qBAKtC,MAAM,SAAS,OAAO,CAAC,UAAU,CAAC;oBAKnC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE;sBAK5B;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE;CAIvD,CAAC;AAEF,iFAAiF;AACjF,wBAAgB,mBAAmB,CAAC,CAAC,EAAE,mBAAmB,GAAG,SAAS,GAAG,IAAI,GAAG,MAAM,EAAE,CAgBvF"}
1
+ {"version":3,"file":"pickReferenceApi.d.ts","sourceRoot":"","sources":["../../src/lib/pickReferenceApi.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEhE,iEAAiE;AACjE,eAAO,MAAM,qBAAqB,qBAAsB,CAAC;AACzD,eAAO,MAAM,uBAAuB,qEAM1B,CAAC;AAEX,MAAM,WAAW,mBAAmB;IAClC,gBAAgB,EAAE,MAAM,EAAE,CAAC;IAC3B,oBAAoB,EAAE,MAAM,EAAE,CAAC;IAC/B,YAAY,EAAE,MAAM,CAAC;IACrB,gBAAgB,EAAE,MAAM,CAAC;IACzB,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,mBAAmB,EAAE,MAAM,EAAE,CAAC;IAC9B,kBAAkB,EAAE,MAAM,EAAE,CAAC;IAC7B,KAAK,EAAE,gBAAgB,EAAE,CAAC;IAC1B,SAAS,EAAE,UAAU,EAAE,CAAC;IACxB,6EAA6E;IAC7E,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC7B;AAoBD,eAAO,MAAM,gBAAgB;IAC3B,oFAAoF;IACpF,kGAAkG;sBAC1E,OAAO,CAAC;QAAE,EAAE,EAAE,OAAO,CAAC;QAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,CAAC;IAQtE,mGAAmG;uBAC1E,OAAO,CAAC,mBAAmB,CAAC;cAMrC,OAAO,CAAC,mBAAmB,CAAC;YAmB9B,OAAO,CAAC;QAAE,mBAAmB,EAAE,MAAM,CAAC;QAAC,gBAAgB,EAAE,MAAM,CAAA;KAAE,CAAC;mBAW3D,MAAM,SAAS,OAAO,CAAC,gBAAgB,CAAC;qBAKtC,MAAM,SAAS,OAAO,CAAC,UAAU,CAAC;oBAKnC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE;sBAK5B;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE;CAIvD,CAAC;AAEF,iFAAiF;AACjF,wBAAgB,mBAAmB,CAAC,CAAC,EAAE,mBAAmB,GAAG,SAAS,GAAG,IAAI,GAAG,MAAM,EAAE,CAgBvF;AAED,uEAAuE;AACvE,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,CAMnE;AAED,uDAAuD;AACvD,wBAAgB,wBAAwB,CAAC,CAAC,EAAE,mBAAmB,GAAG,SAAS,GAAG,IAAI,GAAG,MAAM,GAAG,IAAI,CAMjG"}
@@ -27,6 +27,22 @@ function num(v) {
27
27
  }
28
28
  export const pickReferenceApi = {
29
29
  /** Eén bron voor kaart en banner: aantallen, ontbrekende codes en de rijen zelf. */
30
+ /** Zelfherstel: maakt ontbrekende standaardgegevens aan; overschrijft nooit klantaanpassingen. */
31
+ async ensureDefaults() {
32
+ const { data, error } = await pickDb.rpc("pick_ensure_defaults");
33
+ if (error)
34
+ return { ok: false, reden: aanmaakReden(error.message, error.code) };
35
+ const row = (data ?? {});
36
+ if (row["ok"] === false)
37
+ return { ok: false, reden: aanmaakReden(String(row["reden"] ?? "")) };
38
+ return { ok: true, reden: null };
39
+ },
40
+ /** Eerst zelfherstel, daarna de status. Mislukt het herstel, dan staat de reden in aanmaakFout. */
41
+ async statusNaHerstel() {
42
+ const herstel = await pickReferenceApi.ensureDefaults();
43
+ const s = await pickReferenceApi.status();
44
+ return { ...s, aanmaakFout: herstel.ok ? null : herstel.reden };
45
+ },
30
46
  async status() {
31
47
  const { data, error } = await pickDb.rpc("pick_reference_data_status");
32
48
  if (error)
@@ -49,8 +65,10 @@ export const pickReferenceApi = {
49
65
  async seed() {
50
66
  const { data, error } = await pickDb.rpc("pick_seed_reference_data");
51
67
  if (error)
52
- throw new Error(error.message);
68
+ throw new Error(aanmaakReden(error.message, error.code));
53
69
  const row = (data ?? {});
70
+ if (row["ok"] === false)
71
+ throw new Error(aanmaakReden(String(row["reden"] ?? "")));
54
72
  return {
55
73
  statuses_toegevoegd: num(row["statuses_toegevoegd"]),
56
74
  types_toegevoegd: num(row["types_toegevoegd"]),
@@ -96,3 +114,24 @@ export function referentieProblemen(s) {
96
114
  }
97
115
  return regels;
98
116
  }
117
+ /** Gewone-taalreden bij een mislukt aanmaken van standaardgegevens. */
118
+ export function aanmaakReden(bericht, code) {
119
+ const m = (bericht ?? "").trim();
120
+ if (code === "42501" || /permission denied|42501/i.test(m))
121
+ return "geen rechten om de standaardgegevens aan te maken";
122
+ if (/does not exist|could not find the function/i.test(m))
123
+ return "de databasewijziging van Pickschermen is nog niet geïnstalleerd";
124
+ if (/timeout|canceling statement/i.test(m))
125
+ return "de database reageerde te traag";
126
+ return m || "onbekende fout";
127
+ }
128
+ /** Tekst van de melding; null = geen melding tonen. */
129
+ export function standaardgegevensMelding(s) {
130
+ if (!s)
131
+ return null;
132
+ if (s.aanmaakFout)
133
+ return `Standaardgegevens konden niet worden aangemaakt: ${s.aanmaakFout}.`;
134
+ if (referentieProblemen(s).length > 0)
135
+ return "Instellingen voor pickdocumenten ontbreken; er komen geen orders op het pickstation. Vraag kantoor dit te herstellen.";
136
+ return null;
137
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@flowselections/pick-schermen-kwekers",
3
- "version": "1.0.76",
3
+ "version": "1.0.79",
4
4
  "flowselections": {
5
5
  "moduleId": "pick-schermen",
6
6
  "schema": {
@@ -70,7 +70,7 @@
70
70
  "devDependencies": {
71
71
  "@cloudflare/vite-plugin": "^1.25.5",
72
72
  "@eslint/js": "^9.32.0",
73
- "@flowselections/core": "1.0.34",
73
+ "@flowselections/core": "1.0.35",
74
74
  "@lovable.dev/vite-tanstack-config": "2.26.5",
75
75
  "@rsbuild/core": "^1.0.0",
76
76
  "@tailwindcss/vite": "^4.2.1",