@flowselections/twinfield-authenticatie-module-15-06-2026 1.3.16 → 1.3.18

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 (39) hide show
  1. package/dist-lib/components/settings/TwinfieldAuthSettingsCard.d.ts.map +1 -1
  2. package/dist-lib/components/settings/TwinfieldAuthSettingsCard.js +2 -2
  3. package/dist-lib/integrations/supabase/auth-middleware.d.ts +1103 -199
  4. package/dist-lib/integrations/supabase/auth-middleware.d.ts.map +1 -1
  5. package/dist-lib/integrations/supabase/auth-middleware.js +4 -7
  6. package/dist-lib/integrations/supabase/client.d.ts +1102 -198
  7. package/dist-lib/integrations/supabase/client.d.ts.map +1 -1
  8. package/dist-lib/integrations/supabase/client.server.d.ts +1102 -198
  9. package/dist-lib/integrations/supabase/client.server.d.ts.map +1 -1
  10. package/dist-lib/integrations/supabase/twinfield-admin.server.d.ts +1102 -198
  11. package/dist-lib/integrations/supabase/twinfield-admin.server.d.ts.map +1 -1
  12. package/dist-lib/integrations/supabase/types.d.ts +1129 -194
  13. package/dist-lib/integrations/supabase/types.d.ts.map +1 -1
  14. package/dist-lib/lib/accounting/twinfield/actions.functions.d.ts +5085 -565
  15. package/dist-lib/lib/accounting/twinfield/actions.functions.d.ts.map +1 -1
  16. package/dist-lib/lib/accounting/twinfield/conformance.functions.d.ts +1103 -199
  17. package/dist-lib/lib/accounting/twinfield/conformance.functions.d.ts.map +1 -1
  18. package/dist-lib/lib/accounting/twinfield/writes.functions.d.ts +3051 -339
  19. package/dist-lib/lib/accounting/twinfield/writes.functions.d.ts.map +1 -1
  20. package/dist-lib/lib/handlers/api-handlers.d.ts +8 -0
  21. package/dist-lib/lib/handlers/api-handlers.d.ts.map +1 -1
  22. package/dist-lib/lib/handlers/api-handlers.js +71 -0
  23. package/dist-lib/lib/handlers/cron-handlers.d.ts +1 -0
  24. package/dist-lib/lib/handlers/cron-handlers.d.ts.map +1 -1
  25. package/dist-lib/lib/handlers/cron-handlers.js +16 -0
  26. package/dist-lib/lib/handlers/index.d.ts +2 -2
  27. package/dist-lib/lib/handlers/index.d.ts.map +1 -1
  28. package/dist-lib/lib/handlers/index.js +2 -2
  29. package/dist-lib/lib/twinfield-adapter.functions.d.ts +2034 -226
  30. package/dist-lib/lib/twinfield-adapter.functions.d.ts.map +1 -1
  31. package/dist-lib/lib/twinfield-sync.functions.d.ts +5085 -565
  32. package/dist-lib/lib/twinfield-sync.functions.d.ts.map +1 -1
  33. package/dist-lib/lib/twinfield-sync.server.d.ts +22 -5
  34. package/dist-lib/lib/twinfield-sync.server.d.ts.map +1 -1
  35. package/dist-lib/lib/twinfield-sync.server.js +122 -10
  36. package/dist-lib/lib/twinfield.functions.d.ts +15257 -1695
  37. package/dist-lib/lib/twinfield.functions.d.ts.map +1 -1
  38. package/dist-lib/lib/twinfield.functions.js +57 -23
  39. package/package.json +18 -2
@@ -1 +1 @@
1
- {"version":3,"file":"TwinfieldAuthSettingsCard.d.ts","sourceRoot":"","sources":["../../../src/components/settings/TwinfieldAuthSettingsCard.tsx"],"names":[],"mappings":"AAsZA,wBAAgB,yBAAyB,CAAC,EACxC,eAAsB,GACvB,GAAE;IACD,eAAe,CAAC,EAAE,OAAO,CAAC;CACtB,+BA6WL"}
1
+ {"version":3,"file":"TwinfieldAuthSettingsCard.d.ts","sourceRoot":"","sources":["../../../src/components/settings/TwinfieldAuthSettingsCard.tsx"],"names":[],"mappings":"AA0aA,wBAAgB,yBAAyB,CAAC,EACxC,eAAsB,GACvB,GAAE;IACD,eAAe,CAAC,EAAE,OAAO,CAAC;CACtB,+BA6WL"}
@@ -189,7 +189,7 @@ function ConnectionCard({ conn, onChanged, onDisconnected, }) {
189
189
  const cardNeedsReauth = conn.reauthorize_required ||
190
190
  (Array.isArray(conn.missing_scopes) && conn.missing_scopes.length > 0) ||
191
191
  needsReauth;
192
- return (_jsxs("div", { className: "rounded-lg border p-4 space-y-4", children: [_jsxs("div", { className: "flex items-start justify-between gap-3", children: [_jsxs("div", { className: "min-w-0 flex-1", children: [_jsxs("div", { className: "flex items-center gap-2 flex-wrap", children: [_jsx("span", { className: "font-semibold text-foreground truncate", children: displayName }), _jsx(Badge, { variant: cardNeedsReauth ? "destructive" : conn.connected ? "default" : "secondary", className: "font-normal", children: cardNeedsReauth ? "Autorisatie vereist" : conn.connected ? "Verbonden" : "Onvolledig" }), _jsx(Badge, { variant: "outline", className: "font-normal", children: conn.environment === "staging" || conn.environment === "sandbox" ? "Test" : "Live" })] }), _jsxs("div", { className: "mt-1 text-xs text-muted-foreground", children: [effectiveOfficeCode ? (_jsx("span", { className: "font-mono", children: effectiveOfficeCode })) : (_jsx("span", { children: "Kies hieronder een administratie om te kunnen synchroniseren." })), conn.connected_at && (_jsxs("span", { className: "ml-2", children: ["\u00B7 gekoppeld ", relativeTime(conn.connected_at)] }))] }), cardNeedsReauth && (_jsxs("div", { className: "mt-2 rounded-md border border-destructive/30 bg-destructive/5 px-3 py-2 text-xs text-destructive", children: [_jsxs("div", { className: "font-medium", children: ["Twinfield vraagt om her-autorisatie", conn.scope_state ? ` (${conn.scope_state})` : "", "."] }), Array.isArray(conn.missing_scopes) && conn.missing_scopes.length > 0 && (_jsxs("div", { className: "mt-0.5", children: ["Ontbrekende scopes: ", conn.missing_scopes.join(", ")] })), _jsxs(Button, { size: "sm", variant: "outline", className: "mt-2 border-destructive/50 text-destructive hover:bg-destructive/10", onClick: handleReauthorize, disabled: reauthorizing, children: [_jsx(Link2, { className: "h-3.5 w-3.5 mr-1.5" }), reauthorizing ? "Bezig…" : "Opnieuw autoriseren"] })] }))] }), _jsxs(Button, { size: "sm", variant: "ghost", onClick: handleDisconnect, disabled: disconnecting, className: "text-muted-foreground hover:text-destructive", children: [_jsx(Unlink, { className: "h-4 w-4 mr-1.5" }), disconnecting ? "Bezig…" : "Verbreken"] })] }), _jsxs("div", { className: "space-y-1.5", children: [_jsx("div", { className: "text-xs font-medium text-muted-foreground", children: "Administratie" }), offices.length > 0 ? (_jsxs(Select, { value: effectiveOfficeCode ?? undefined, onValueChange: handleOfficeChange, disabled: savingOffice, children: [_jsx(SelectTrigger, { children: _jsx(SelectValue, { placeholder: "Kies een administratie", children: (() => {
192
+ return (_jsxs("div", { className: "rounded-lg border p-4 space-y-4", children: [_jsxs("div", { className: "flex items-start justify-between gap-3", children: [_jsxs("div", { className: "min-w-0 flex-1", children: [_jsxs("div", { className: "flex items-center gap-2 flex-wrap", children: [_jsx("span", { className: "font-semibold text-foreground truncate", children: displayName }), _jsx(Badge, { variant: cardNeedsReauth ? "destructive" : conn.connected ? "default" : "secondary", className: "font-normal", children: cardNeedsReauth ? "Autorisatie vereist" : conn.connected ? "Verbonden" : "Onvolledig" }), _jsx(Badge, { variant: "outline", className: "font-normal", children: conn.environment === "staging" || conn.environment === "sandbox" ? "Test" : "Live" })] }), _jsxs("div", { className: "mt-1 text-xs text-muted-foreground", children: [effectiveOfficeCode ? (_jsx("span", { className: "font-mono", children: effectiveOfficeCode })) : (_jsx("span", { children: "Kies hieronder een administratie om te kunnen synchroniseren." })), conn.connected_at && (_jsxs("span", { className: "ml-2", children: ["\u00B7 gekoppeld ", relativeTime(conn.connected_at)] }))] }), conn.connected && (_jsx("div", { className: "mt-1 text-xs text-muted-foreground", children: conn.initial_sync_completed_at ? (_jsxs("span", { children: ["Eerste volledige synchronisatie afgerond", " ", relativeTime(conn.initial_sync_completed_at), "."] })) : conn.initial_sync_started_at ? (_jsxs("span", { children: ["Eerste volledige synchronisatie loopt (gestart", " ", relativeTime(conn.initial_sync_started_at), "); de periodieke rondes maken deze af."] })) : (_jsx("span", { children: "Eerste volledige synchronisatie wordt gestart zodra een administratie is gekozen." })) })), cardNeedsReauth && (_jsxs("div", { className: "mt-2 rounded-md border border-destructive/30 bg-destructive/5 px-3 py-2 text-xs text-destructive", children: [_jsxs("div", { className: "font-medium", children: ["Twinfield vraagt om her-autorisatie", conn.scope_state ? ` (${conn.scope_state})` : "", "."] }), Array.isArray(conn.missing_scopes) && conn.missing_scopes.length > 0 && (_jsxs("div", { className: "mt-0.5", children: ["Ontbrekende scopes: ", conn.missing_scopes.join(", ")] })), _jsxs(Button, { size: "sm", variant: "outline", className: "mt-2 border-destructive/50 text-destructive hover:bg-destructive/10", onClick: handleReauthorize, disabled: reauthorizing, children: [_jsx(Link2, { className: "h-3.5 w-3.5 mr-1.5" }), reauthorizing ? "Bezig…" : "Opnieuw autoriseren"] })] }))] }), _jsxs(Button, { size: "sm", variant: "ghost", onClick: handleDisconnect, disabled: disconnecting, className: "text-muted-foreground hover:text-destructive", children: [_jsx(Unlink, { className: "h-4 w-4 mr-1.5" }), disconnecting ? "Bezig…" : "Verbreken"] })] }), _jsxs("div", { className: "space-y-1.5", children: [_jsx("div", { className: "text-xs font-medium text-muted-foreground", children: "Administratie" }), offices.length > 0 ? (_jsxs(Select, { value: effectiveOfficeCode ?? undefined, onValueChange: handleOfficeChange, disabled: savingOffice, children: [_jsx(SelectTrigger, { children: _jsx(SelectValue, { placeholder: "Kies een administratie", children: (() => {
193
193
  const selected = offices.find((o) => o.code === effectiveOfficeCode);
194
194
  if (!selected)
195
195
  return null;
@@ -271,7 +271,7 @@ export function TwinfieldAuthSettingsCard({ defaultExpanded = true, } = {}) {
271
271
  }
272
272
  };
273
273
  useEffect(() => {
274
- loadAll({ afterOAuthReturn: hasTwinfieldReturnParams() });
274
+ void loadAll({ afterOAuthReturn: hasTwinfieldReturnParams() }).catch(() => { });
275
275
  // Achtergrond-polling elke 30s zonder spinner, zodat de UI live blijft.
276
276
  const iv = setInterval(() => {
277
277
  loadAll({ skipCentralSync: true }).catch(() => { });