@flowselections/floriday-authenticatie-module 1.0.23 → 1.0.24

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.
@@ -93,7 +93,8 @@ function toPublic(row) {
93
93
  }
94
94
  // ─── Reusable internals (importable by other server fns) ────────────────────
95
95
  export async function getActiveFlorydayCredentials(supabase, env) {
96
- const { data, error } = await supabase
96
+ const { supabaseAdmin } = await import("../integrations/supabase/client.server");
97
+ const { data, error } = await supabaseAdmin
97
98
  .from("floriday_connections")
98
99
  .select("*")
99
100
  .eq("environment", env)
@@ -104,6 +105,7 @@ export async function getActiveFlorydayCredentials(supabase, env) {
104
105
  return data;
105
106
  }
106
107
  export async function getFlorydayAccessToken(supabase, env, options = {}) {
108
+ const { supabaseAdmin } = await import("../integrations/supabase/client.server");
107
109
  const row = await getActiveFlorydayCredentials(supabase, env);
108
110
  if (!row)
109
111
  throw new Error(`Geen actieve Floriday-koppeling voor ${env}`);
@@ -117,7 +119,7 @@ export async function getFlorydayAccessToken(supabase, env, options = {}) {
117
119
  // Concurrency-guard: vlak voor de tokenrequest opnieuw lezen — een parallelle worker
118
120
  // kan zojuist een fresh token hebben geschreven en dan hoeven we niet nóg eens te refreshen.
119
121
  if (canReuseStoredToken && !options.forceRefresh) {
120
- const { data: fresh } = await supabase
122
+ const { data: fresh } = await supabaseAdmin
121
123
  .from("floriday_connections")
122
124
  .select("access_token, token_expires_at")
123
125
  .eq("id", row.id)
@@ -138,7 +140,7 @@ export async function getFlorydayAccessToken(supabase, env, options = {}) {
138
140
  accessToken = result.access_token;
139
141
  newExpiresAt = result.expires_at;
140
142
  if (canReuseStoredToken) {
141
- await supabase
143
+ await supabaseAdmin
142
144
  .from("floriday_connections")
143
145
  .update({ access_token: accessToken, token_expires_at: newExpiresAt })
144
146
  .eq("id", row.id);
@@ -182,6 +184,7 @@ function createFlorydayTokenError(status, body, scope) {
182
184
  return new Error(`Floriday token-aanvraag mislukt [${status}]: ${body.slice(0, 300)}`);
183
185
  }
184
186
  async function fetchAndStoreFlorydayOrganizationName(supabase, env, connectionId) {
187
+ const { supabaseAdmin } = await import("../integrations/supabase/client.server");
185
188
  try {
186
189
  // Stap 1: bepaal de eigen organizationId via trade-settings.
187
190
  const tsRes = await florydayFetch(supabase, env, `/${SUPPLIERS_API_VERSION}/trade-settings/supplier/current-organization`);
@@ -207,7 +210,7 @@ async function fetchAndStoreFlorydayOrganizationName(supabase, env, connectionId
207
210
  if (!name)
208
211
  return null;
209
212
  // Lees huidige rij om gln_code niet te overschrijven als die al gezet is.
210
- const { data: existing } = await supabase
213
+ const { data: existing } = await supabaseAdmin
211
214
  .from("floriday_connections")
212
215
  .select("gln_code")
213
216
  .eq("id", connectionId)
@@ -216,7 +219,7 @@ async function fetchAndStoreFlorydayOrganizationName(supabase, env, connectionId
216
219
  if (gln && !existing?.gln_code) {
217
220
  update.gln_code = gln;
218
221
  }
219
- await supabase.from("floriday_connections").update(update).eq("id", connectionId);
222
+ await supabaseAdmin.from("floriday_connections").update(update).eq("id", connectionId);
220
223
  return name;
221
224
  }
222
225
  catch (e) {
@@ -299,7 +302,8 @@ export async function florydayFetch(supabase, pathOrEnv, pathOrInit, maybeInit =
299
302
  export const listFlorydayConnections = createServerFn({ method: "GET" })
300
303
  .middleware([requireSupabaseAuth])
301
304
  .handler(async ({ context }) => {
302
- const { data, error } = await context.supabase
305
+ const { supabaseAdmin } = await import("../integrations/supabase/client.server");
306
+ const { data, error } = await supabaseAdmin
303
307
  .from("floriday_connections")
304
308
  .select("*")
305
309
  .order("environment", { ascending: true });
@@ -310,7 +314,8 @@ export const listFlorydayConnections = createServerFn({ method: "GET" })
310
314
  export const getFlorydayTokenHealth = createServerFn({ method: "GET" })
311
315
  .middleware([requireSupabaseAuth])
312
316
  .handler(async ({ context }) => {
313
- const { data: conns } = await context.supabase
317
+ const { supabaseAdmin } = await import("../integrations/supabase/client.server");
318
+ const { data: conns } = await supabaseAdmin
314
319
  .from("floriday_connections")
315
320
  .select("id, environment, token_expires_at, is_active")
316
321
  .eq("is_active", true);
@@ -333,8 +338,9 @@ export const forceRefreshFlorydayToken = createServerFn({ method: "POST" })
333
338
  return input;
334
339
  })
335
340
  .handler(async ({ data, context }) => {
341
+ const { supabaseAdmin } = await import("../integrations/supabase/client.server");
336
342
  await getFlorydayAccessToken(context.supabase, data.environment, { forceRefresh: true });
337
- const { data: row } = await context.supabase
343
+ const { data: row } = await supabaseAdmin
338
344
  .from("floriday_connections")
339
345
  .select("token_expires_at")
340
346
  .eq("environment", data.environment)
@@ -354,12 +360,13 @@ export const upsertFlorydayConnection = createServerFn({ method: "POST" })
354
360
  return input;
355
361
  })
356
362
  .handler(async ({ data, context }) => {
363
+ const { supabaseAdmin } = await import("../integrations/supabase/client.server");
357
364
  // Update-in-place op (environment, is_active=true) — geen DELETE meer,
358
365
  // anders zou ON DELETE CASCADE alle cache-data voor deze connection wissen
359
366
  // bij een gewone credential-wijziging. SELECT-filter matcht exact de
360
367
  // partiële unieke index floriday_connections_env_active_uniq
361
368
  // (environment) WHERE is_active = true.
362
- const { data: existing, error: selectError } = await context.supabase
369
+ const { data: existing, error: selectError } = await supabaseAdmin
363
370
  .from("floriday_connections")
364
371
  .select("id")
365
372
  .eq("environment", data.environment)
@@ -380,7 +387,7 @@ export const upsertFlorydayConnection = createServerFn({ method: "POST" })
380
387
  };
381
388
  let inserted;
382
389
  if (existing?.id) {
383
- const { data: updated, error } = await context.supabase
390
+ const { data: updated, error } = await supabaseAdmin
384
391
  .from("floriday_connections")
385
392
  .update(payload)
386
393
  .eq("id", existing.id)
@@ -395,7 +402,7 @@ export const upsertFlorydayConnection = createServerFn({ method: "POST" })
395
402
  // de partiële unieke index vangt de tweede insert luid af met een
396
403
  // constraint-error. Credentials opslaan is een handmatige, zeldzame
397
404
  // actie — geen extra locking nodig.
398
- const { data: created, error } = await context.supabase
405
+ const { data: created, error } = await supabaseAdmin
399
406
  .from("floriday_connections")
400
407
  .insert({ environment: data.environment, ...payload })
401
408
  .select("*")
@@ -479,7 +486,8 @@ export const deleteFlorydayConnection = createServerFn({ method: "POST" })
479
486
  return input;
480
487
  })
481
488
  .handler(async ({ data, context }) => {
482
- const { error } = await context.supabase
489
+ const { supabaseAdmin } = await import("../integrations/supabase/client.server");
490
+ const { error } = await supabaseAdmin
483
491
  .from("floriday_connections")
484
492
  .delete()
485
493
  .eq("id", data.id);
@@ -681,10 +689,11 @@ export const updateFlorydayPublishingSettings = createServerFn({ method: "POST"
681
689
  return { ...input, gln_code: trimmed || null };
682
690
  })
683
691
  .handler(async ({ data, context }) => {
692
+ const { supabaseAdmin } = await import("../integrations/supabase/client.server");
684
693
  const row = await getActiveFlorydayCredentials(context.supabase, data.environment);
685
694
  if (!row)
686
695
  throw new Error(`Geen actieve Floriday-koppeling voor ${data.environment}`);
687
- const { error } = await context.supabase
696
+ const { error } = await supabaseAdmin
688
697
  .from("floriday_connections")
689
698
  .update({
690
699
  gln_code: data.gln_code?.trim() || null,
@@ -731,6 +740,7 @@ async function fetchBySequence(supabase, env, bySequenceEndpointBase, fromSequen
731
740
  }
732
741
  export async function syncFloridayEntityBySequence(supabase, env, connectionId, opts) {
733
742
  const t0 = Date.now();
743
+ const { supabaseAdmin } = await import("../integrations/supabase/client.server");
734
744
  const { data: stateRow } = await supabase
735
745
  .from("floriday_sync_state")
736
746
  .select("last_sequence_number")
@@ -742,7 +752,7 @@ export async function syncFloridayEntityBySequence(supabase, env, connectionId,
742
752
  // Debug-logging: helpt 401's onderscheid maken tussen scope-issue,
743
753
  // expired token en wrong env. Token zelf wordt NIET gelogd.
744
754
  try {
745
- const { data: connRow } = await supabase
755
+ const { data: connRow } = await supabaseAdmin
746
756
  .from("floriday_connections")
747
757
  .select("token_expires_at")
748
758
  .eq("id", connectionId)
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@flowselections/floriday-authenticatie-module",
3
- "version": "1.0.23",
3
+ "version": "1.0.24",
4
4
  "sideEffects": false,
5
5
  "type": "module",
6
6
  "main": "./dist-lib/index.js",