@flowselections/twinfield-authenticatie-module-15-06-2026 1.3.17 → 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.
- package/dist-lib/components/settings/TwinfieldAuthSettingsCard.d.ts.map +1 -1
- package/dist-lib/components/settings/TwinfieldAuthSettingsCard.js +2 -2
- package/dist-lib/integrations/supabase/auth-middleware.d.ts +1103 -199
- package/dist-lib/integrations/supabase/auth-middleware.d.ts.map +1 -1
- package/dist-lib/integrations/supabase/auth-middleware.js +4 -7
- package/dist-lib/integrations/supabase/client.d.ts +1102 -198
- package/dist-lib/integrations/supabase/client.d.ts.map +1 -1
- package/dist-lib/integrations/supabase/client.server.d.ts +1102 -198
- package/dist-lib/integrations/supabase/client.server.d.ts.map +1 -1
- package/dist-lib/integrations/supabase/twinfield-admin.server.d.ts +1102 -198
- package/dist-lib/integrations/supabase/twinfield-admin.server.d.ts.map +1 -1
- package/dist-lib/integrations/supabase/types.d.ts +1129 -194
- package/dist-lib/integrations/supabase/types.d.ts.map +1 -1
- package/dist-lib/lib/accounting/twinfield/actions.functions.d.ts +5085 -565
- package/dist-lib/lib/accounting/twinfield/actions.functions.d.ts.map +1 -1
- package/dist-lib/lib/accounting/twinfield/conformance.functions.d.ts +1103 -199
- package/dist-lib/lib/accounting/twinfield/conformance.functions.d.ts.map +1 -1
- package/dist-lib/lib/accounting/twinfield/mapping.js +45 -45
- package/dist-lib/lib/accounting/twinfield/writes.functions.d.ts +3051 -339
- package/dist-lib/lib/accounting/twinfield/writes.functions.d.ts.map +1 -1
- package/dist-lib/lib/handlers/api-handlers.d.ts +8 -0
- package/dist-lib/lib/handlers/api-handlers.d.ts.map +1 -1
- package/dist-lib/lib/handlers/api-handlers.js +71 -0
- package/dist-lib/lib/handlers/cron-handlers.d.ts +1 -0
- package/dist-lib/lib/handlers/cron-handlers.d.ts.map +1 -1
- package/dist-lib/lib/handlers/cron-handlers.js +16 -0
- package/dist-lib/lib/handlers/index.d.ts +2 -2
- package/dist-lib/lib/handlers/index.d.ts.map +1 -1
- package/dist-lib/lib/handlers/index.js +2 -2
- package/dist-lib/lib/twinfield-adapter.functions.d.ts +2034 -226
- package/dist-lib/lib/twinfield-adapter.functions.d.ts.map +1 -1
- package/dist-lib/lib/twinfield-sync.functions.d.ts +5085 -565
- package/dist-lib/lib/twinfield-sync.functions.d.ts.map +1 -1
- package/dist-lib/lib/twinfield-sync.server.d.ts +22 -5
- package/dist-lib/lib/twinfield-sync.server.d.ts.map +1 -1
- package/dist-lib/lib/twinfield-sync.server.js +164 -52
- package/dist-lib/lib/twinfield.functions.d.ts +15257 -1695
- package/dist-lib/lib/twinfield.functions.d.ts.map +1 -1
- package/dist-lib/lib/twinfield.functions.js +57 -23
- package/package.json +17 -1
- package/public/flowselections-assets/twinfield-authenticatie/schema.sql +601 -601
- package/public/flowselections-assets/twinfield-authenticatie/twinfield-logo.svg +217 -217
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TwinfieldAuthSettingsCard.d.ts","sourceRoot":"","sources":["../../../src/components/settings/TwinfieldAuthSettingsCard.tsx"],"names":[],"mappings":"
|
|
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(() => { });
|