@flowselections/twinfield-authenticatie-module-15-06-2026 1.3.13 → 1.3.15
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/TemplateModulePage.js +1 -1
- package/dist-lib/components/TwinfieldKoppelingPage.js +1 -1
- package/dist-lib/components/settings/TwinfieldAuthSettingsCard.d.ts.map +1 -1
- package/dist-lib/components/settings/TwinfieldAuthSettingsCard.js +6 -6
- package/dist-lib/components/settings/TwinfieldConformanceCard.js +1 -1
- package/dist-lib/index.d.ts +9 -10
- package/dist-lib/index.d.ts.map +1 -1
- package/dist-lib/index.js +10 -11
- package/dist-lib/integrations/supabase/auth-attacher.js +1 -1
- package/dist-lib/integrations/supabase/auth-middleware.d.ts +807 -769
- package/dist-lib/integrations/supabase/auth-middleware.d.ts.map +1 -1
- package/dist-lib/integrations/supabase/client.d.ts +807 -769
- package/dist-lib/integrations/supabase/client.d.ts.map +1 -1
- package/dist-lib/integrations/supabase/client.js +8 -6
- package/dist-lib/integrations/supabase/client.server.d.ts +807 -769
- package/dist-lib/integrations/supabase/client.server.d.ts.map +1 -1
- package/dist-lib/integrations/supabase/client.server.js +1 -1
- package/dist-lib/integrations/supabase/twinfield-admin.server.d.ts +807 -769
- package/dist-lib/integrations/supabase/twinfield-admin.server.d.ts.map +1 -1
- package/dist-lib/integrations/supabase/types.d.ts +180 -152
- package/dist-lib/integrations/supabase/types.d.ts.map +1 -1
- package/dist-lib/integrations/supabase/types.js +3 -0
- package/dist-lib/lib/accounting/twinfield/actions.functions.d.ts +4445 -4255
- package/dist-lib/lib/accounting/twinfield/actions.functions.d.ts.map +1 -1
- package/dist-lib/lib/accounting/twinfield/actions.functions.js +5 -5
- package/dist-lib/lib/accounting/twinfield/client.server.d.ts +2 -2
- package/dist-lib/lib/accounting/twinfield/client.server.js +2 -2
- package/dist-lib/lib/accounting/twinfield/conformance.functions.d.ts +889 -851
- package/dist-lib/lib/accounting/twinfield/conformance.functions.d.ts.map +1 -1
- package/dist-lib/lib/accounting/twinfield/conformance.functions.js +1 -1
- package/dist-lib/lib/accounting/twinfield/cron-auth.server.d.ts +4 -2
- package/dist-lib/lib/accounting/twinfield/cron-auth.server.d.ts.map +1 -1
- package/dist-lib/lib/accounting/twinfield/cron-auth.server.js +12 -22
- package/dist-lib/lib/accounting/twinfield/cron-lock.server.d.ts +1 -1
- package/dist-lib/lib/accounting/twinfield/cron-run.server.d.ts +3 -1
- package/dist-lib/lib/accounting/twinfield/cron-run.server.d.ts.map +1 -1
- package/dist-lib/lib/accounting/twinfield/cron-run.server.js +2 -6
- package/dist-lib/lib/accounting/twinfield/fetch.server.d.ts +1 -1
- package/dist-lib/lib/accounting/twinfield/fetch.server.js +1 -1
- package/dist-lib/lib/accounting/twinfield/mapping.js +1 -1
- package/dist-lib/lib/accounting/twinfield/push.server.d.ts +4 -4
- package/dist-lib/lib/accounting/twinfield/push.server.d.ts.map +1 -1
- package/dist-lib/lib/accounting/twinfield/push.server.js +23 -23
- package/dist-lib/lib/accounting/twinfield/session.server.d.ts +1 -1
- package/dist-lib/lib/accounting/twinfield/session.server.js +1 -1
- package/dist-lib/lib/accounting/twinfield/writes.functions.d.ts +2668 -2554
- package/dist-lib/lib/accounting/twinfield/writes.functions.d.ts.map +1 -1
- package/dist-lib/lib/accounting/twinfield/writes.functions.js +4 -4
- package/dist-lib/lib/central/central-accounts.server.js +1 -1
- package/dist-lib/lib/central/central-token.server.d.ts +1 -1
- package/dist-lib/lib/central/central-token.server.js +1 -1
- package/dist-lib/lib/handlers/api-handlers.d.ts +16 -0
- package/dist-lib/lib/handlers/api-handlers.d.ts.map +1 -0
- package/dist-lib/lib/handlers/api-handlers.js +217 -0
- package/dist-lib/lib/handlers/cron-handlers.d.ts +11 -0
- package/dist-lib/lib/handlers/cron-handlers.d.ts.map +1 -0
- package/dist-lib/lib/handlers/cron-handlers.js +120 -0
- package/dist-lib/lib/handlers/index.d.ts +4 -0
- package/dist-lib/lib/handlers/index.d.ts.map +1 -0
- package/dist-lib/lib/handlers/index.js +2 -0
- package/dist-lib/lib/handlers/types.d.ts +5 -0
- package/dist-lib/lib/handlers/types.d.ts.map +1 -0
- package/dist-lib/lib/handlers/types.js +1 -0
- package/dist-lib/lib/twinfield-adapter.functions.d.ts +1778 -1702
- package/dist-lib/lib/twinfield-adapter.functions.d.ts.map +1 -1
- package/dist-lib/lib/twinfield-adapter.functions.js +3 -3
- package/dist-lib/lib/twinfield-sync.functions.d.ts +4446 -4256
- package/dist-lib/lib/twinfield-sync.functions.d.ts.map +1 -1
- package/dist-lib/lib/twinfield-sync.functions.js +10 -14
- package/dist-lib/lib/twinfield-sync.server.d.ts +7 -9
- package/dist-lib/lib/twinfield-sync.server.d.ts.map +1 -1
- package/dist-lib/lib/twinfield-sync.server.js +41 -45
- package/dist-lib/lib/twinfield-token.server.d.ts +1 -1
- package/dist-lib/lib/twinfield-token.server.js +2 -2
- package/dist-lib/lib/twinfield.functions.d.ts +13335 -12765
- package/dist-lib/lib/twinfield.functions.d.ts.map +1 -1
- package/dist-lib/lib/twinfield.functions.js +15 -21
- package/package.json +96 -4
|
@@ -9,7 +9,7 @@ import { jsxs as _jsxs, jsx as _jsx } from "react/jsx-runtime";
|
|
|
9
9
|
// ============================================================================
|
|
10
10
|
import { useState, useEffect } from "react";
|
|
11
11
|
import { useAuth, supabase, Button, Card, CardContent, CardHeader, CardTitle, toast, } from "@flowselections/core";
|
|
12
|
-
import { TemplateModuleLogo } from './TemplateModuleLogo';
|
|
12
|
+
import { TemplateModuleLogo } from './TemplateModuleLogo.js';
|
|
13
13
|
export function TemplateModulePage() {
|
|
14
14
|
// Auth is guaranteed — this user is already logged in
|
|
15
15
|
const { user, isAdmin } = useAuth();
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
-
import { TwinfieldAuthSettingsCard } from "./settings/TwinfieldAuthSettingsCard";
|
|
2
|
+
import { TwinfieldAuthSettingsCard } from "./settings/TwinfieldAuthSettingsCard.js";
|
|
3
3
|
export function TwinfieldKoppelingPage() {
|
|
4
4
|
return (_jsx("div", { className: "p-6 max-w-4xl mx-auto", children: _jsx(TwinfieldAuthSettingsCard, { defaultExpanded: true }) }));
|
|
5
5
|
}
|
|
@@ -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,+
|
|
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,+BAsWL"}
|
|
@@ -4,10 +4,10 @@ import { useServerFn } from "@tanstack/react-start";
|
|
|
4
4
|
import { Card, Button, Badge, Select, SelectContent, SelectItem, SelectTrigger, SelectValue, toast, } from "@flowselections/core";
|
|
5
5
|
import { ChevronUp, ChevronDown, Link2, Unlink } from "lucide-react";
|
|
6
6
|
const twinfieldLogo = "/flowselections-assets/twinfield-authenticatie/twinfield-logo.svg";
|
|
7
|
-
import { startTwinfieldOAuth, syncTwinfieldCentralAccounts, listTwinfieldConnections, disconnectTwinfieldConnection, setTwinfieldConnectionOffice, listTwinfieldOfficesForConnection, } from "../../lib/twinfield.functions";
|
|
8
|
-
import { triggerTwinfieldSync, getTwinfieldSyncState, } from "../../lib/twinfield-sync.functions";
|
|
9
|
-
import { listTwinfieldPushQueue, retryTwinfieldQueueItem, } from "../../lib/twinfield-adapter.functions";
|
|
10
|
-
import { cn } from "../../lib/utils";
|
|
7
|
+
import { startTwinfieldOAuth, syncTwinfieldCentralAccounts, listTwinfieldConnections, disconnectTwinfieldConnection, setTwinfieldConnectionOffice, listTwinfieldOfficesForConnection, } from "../../lib/twinfield.functions.js";
|
|
8
|
+
import { triggerTwinfieldSync, getTwinfieldSyncState, } from "../../lib/twinfield-sync.functions.js";
|
|
9
|
+
import { listTwinfieldPushQueue, retryTwinfieldQueueItem, } from "../../lib/twinfield-adapter.functions.js";
|
|
10
|
+
import { cn } from "../../lib/utils.js";
|
|
11
11
|
/** PostgREST meldt ontbrekende kolommen als schema-cachefout. Dat betekent in de
|
|
12
12
|
* praktijk dat het databaseschema van deze shell verouderd is. */
|
|
13
13
|
function friendlySyncError(message) {
|
|
@@ -316,8 +316,8 @@ export function TwinfieldAuthSettingsCard({ defaultExpanded = true, } = {}) {
|
|
|
316
316
|
const isStale = !last || Date.now() - last > maxAgeMs;
|
|
317
317
|
return (_jsxs("div", { className: "rounded-md border bg-muted/30 px-3 py-2", children: [_jsx("div", { className: "text-xs text-muted-foreground", children: k === "customers" ? "Debiteuren" : "Verkoopfacturen" }), _jsxs("div", { className: "text-sm font-medium text-foreground mt-0.5", children: [count, " \u00B7 laatst ", relativeTime(s?.last_synced_at ?? null)] }), isStale && !s?.last_error && (_jsx("div", { className: "text-[11px] text-amber-700 mt-1", children: "Achterstand: deze sync heeft langer dan verwacht niets bijgewerkt. De volgende ronde herstelt dit automatisch." })), s?.last_error && (_jsx("div", { className: "text-[11px] text-amber-700 mt-1 break-all", children: friendlySyncError(s.last_error) }))] }, k));
|
|
318
318
|
}) })] })), anyConnected && pushQueue.length > 0 && (_jsxs("div", { className: "rounded-lg border p-4", children: [_jsxs("div", { className: "flex items-center justify-between gap-3", children: [_jsxs("div", { children: [_jsx("div", { className: "font-semibold text-foreground", children: "Uitgaande facturen (push-wachtrij)" }), _jsx("div", { className: "text-sm text-muted-foreground mt-0.5", children: "Laatste 20 facturen die naar Twinfield zijn gestuurd." })] }), _jsx(Button, { size: "sm", variant: "outline", onClick: () => void loadAll(), children: "Vernieuwen" })] }), _jsx("div", { className: "mt-3 divide-y rounded-md border", children: pushQueue.map((q) => {
|
|
319
|
-
const isDone = q.status === "
|
|
320
|
-
const isFailed = q.status === "dead" || q.status === "
|
|
319
|
+
const isDone = q.status === "success";
|
|
320
|
+
const isFailed = q.status === "dead" || q.status === "failed";
|
|
321
321
|
const variant = isDone
|
|
322
322
|
? "default"
|
|
323
323
|
: isFailed
|
|
@@ -2,7 +2,7 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
|
2
2
|
import { useQuery } from "@tanstack/react-query";
|
|
3
3
|
import { useServerFn } from "@tanstack/react-start";
|
|
4
4
|
import { Card, Badge } from "@flowselections/core";
|
|
5
|
-
import { getTwinfieldConformance } from "../../lib/accounting/twinfield/conformance.functions";
|
|
5
|
+
import { getTwinfieldConformance } from "../../lib/accounting/twinfield/conformance.functions.js";
|
|
6
6
|
const STATUS_COLOR = {
|
|
7
7
|
ok: "bg-green-500",
|
|
8
8
|
warn: "bg-amber-500",
|
package/dist-lib/index.d.ts
CHANGED
|
@@ -1,14 +1,13 @@
|
|
|
1
1
|
import type { FlowModule } from "@flowselections/core";
|
|
2
|
-
|
|
3
|
-
export
|
|
4
|
-
export
|
|
5
|
-
export { TemplateModuleLogo } from
|
|
6
|
-
export { TwinfieldKoppelingPage } from
|
|
7
|
-
export {
|
|
8
|
-
export {
|
|
9
|
-
export {
|
|
10
|
-
export {
|
|
11
|
-
export { TwinfieldConformanceCard } from "./components/settings/TwinfieldConformanceCard";
|
|
2
|
+
import "./_core-safelist.js";
|
|
3
|
+
export { TemplatePage } from "./components/TemplatePage.js";
|
|
4
|
+
export { TemplateModulePage } from "./components/TemplateModulePage.js";
|
|
5
|
+
export { TemplateModuleLogo } from "./components/TemplateModuleLogo.js";
|
|
6
|
+
export { TwinfieldKoppelingPage } from "./components/TwinfieldKoppelingPage.js";
|
|
7
|
+
export { downloadTwinfieldInvoicePdf, downloadTwinfieldInvoicePdfsBulk, resendTwinfieldInvoice, sendPaymentReminder, duplicateTwinfieldInvoice, } from "./lib/accounting/twinfield/actions.functions.js";
|
|
8
|
+
export { getTwinfieldConformance } from "./lib/accounting/twinfield/conformance.functions.js";
|
|
9
|
+
export { createTwinfieldCustomer, createTwinfieldInvoice, checkTwinfieldWritePermissions, } from "./lib/accounting/twinfield/writes.functions.js";
|
|
10
|
+
export { TwinfieldConformanceCard } from "./components/settings/TwinfieldConformanceCard.js";
|
|
12
11
|
export declare const twinfieldAuthenticatieModule: FlowModule;
|
|
13
12
|
export declare const myModule: FlowModule;
|
|
14
13
|
export declare const TwinfieldAuthenticatieModule: FlowModule;
|
package/dist-lib/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAiBA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAEvD,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAiBA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAEvD,OAAO,qBAAqB,CAAC;AAC7B,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAC5D,OAAO,EAAE,kBAAkB,EAAE,MAAM,oCAAoC,CAAC;AACxE,OAAO,EAAE,kBAAkB,EAAE,MAAM,oCAAoC,CAAC;AACxE,OAAO,EAAE,sBAAsB,EAAE,MAAM,wCAAwC,CAAC;AAKhF,OAAO,EACL,2BAA2B,EAC3B,gCAAgC,EAChC,sBAAsB,EACtB,mBAAmB,EACnB,yBAAyB,GAC1B,MAAM,8CAA8C,CAAC;AACtD,OAAO,EAAE,uBAAuB,EAAE,MAAM,kDAAkD,CAAC;AAC3F,OAAO,EACL,uBAAuB,EACvB,sBAAsB,EACtB,8BAA8B,GAC/B,MAAM,6CAA6C,CAAC;AACrD,OAAO,EAAE,wBAAwB,EAAE,MAAM,mDAAmD,CAAC;AAE7F,eAAO,MAAM,4BAA4B,EAAE,UAY1C,CAAC;AAEF,eAAO,MAAM,QAAQ,YAA+B,CAAC;AACrD,eAAO,MAAM,4BAA4B,YAA+B,CAAC"}
|
package/dist-lib/index.js
CHANGED
|
@@ -14,18 +14,17 @@
|
|
|
14
14
|
// 4. Done! You don't need to touch any other file for registration.
|
|
15
15
|
// ============================================================================
|
|
16
16
|
import { LayoutDashboard } from "lucide-react"; // ← Replace with your icon
|
|
17
|
-
|
|
18
|
-
export
|
|
19
|
-
export
|
|
20
|
-
export { TemplateModuleLogo } from
|
|
21
|
-
export { TwinfieldKoppelingPage } from
|
|
22
|
-
|
|
23
|
-
import { TwinfieldAuthSettingsCard } from "./components/settings/TwinfieldAuthSettingsCard";
|
|
17
|
+
import "./_core-safelist.js";
|
|
18
|
+
export { TemplatePage } from "./components/TemplatePage.js";
|
|
19
|
+
export { TemplateModulePage } from "./components/TemplateModulePage.js";
|
|
20
|
+
export { TemplateModuleLogo } from "./components/TemplateModuleLogo.js";
|
|
21
|
+
export { TwinfieldKoppelingPage } from "./components/TwinfieldKoppelingPage.js";
|
|
22
|
+
import { TwinfieldAuthSettingsCard } from "./components/settings/TwinfieldAuthSettingsCard.js";
|
|
24
23
|
// Twinfield acties-server-fns — geëxporteerd voor de facturatie-module.
|
|
25
|
-
export { downloadTwinfieldInvoicePdf, downloadTwinfieldInvoicePdfsBulk, resendTwinfieldInvoice, sendPaymentReminder, duplicateTwinfieldInvoice, } from "./lib/accounting/twinfield/actions.functions";
|
|
26
|
-
export { getTwinfieldConformance } from "./lib/accounting/twinfield/conformance.functions";
|
|
27
|
-
export { createTwinfieldCustomer, createTwinfieldInvoice, checkTwinfieldWritePermissions, } from "./lib/accounting/twinfield/writes.functions";
|
|
28
|
-
export { TwinfieldConformanceCard } from "./components/settings/TwinfieldConformanceCard";
|
|
24
|
+
export { downloadTwinfieldInvoicePdf, downloadTwinfieldInvoicePdfsBulk, resendTwinfieldInvoice, sendPaymentReminder, duplicateTwinfieldInvoice, } from "./lib/accounting/twinfield/actions.functions.js";
|
|
25
|
+
export { getTwinfieldConformance } from "./lib/accounting/twinfield/conformance.functions.js";
|
|
26
|
+
export { createTwinfieldCustomer, createTwinfieldInvoice, checkTwinfieldWritePermissions, } from "./lib/accounting/twinfield/writes.functions.js";
|
|
27
|
+
export { TwinfieldConformanceCard } from "./components/settings/TwinfieldConformanceCard.js";
|
|
29
28
|
export const twinfieldAuthenticatieModule = {
|
|
30
29
|
id: "twinfield_authenticatie",
|
|
31
30
|
name: "Twinfield Authenticatie",
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
// during SSR / loadEntries.
|
|
5
5
|
import { createMiddleware } from '@tanstack/react-start';
|
|
6
6
|
export const attachSupabaseAuth = createMiddleware({ type: 'function' }).client(async ({ next }) => {
|
|
7
|
-
const { supabase } = await import('./client');
|
|
7
|
+
const { supabase } = await import('./client.js');
|
|
8
8
|
let { data } = await supabase.auth.getSession();
|
|
9
9
|
// Proactief verversen: een token dat binnen 60s verloopt geeft server-side
|
|
10
10
|
// een 401 Response, wat als "Error: [object Response]" op het scherm belandt.
|