@flowselections/floriday-voorraad 1.0.36 → 1.0.38
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/index.d.ts +0 -1
- package/dist-lib/index.d.ts.map +1 -1
- package/dist-lib/index.js +0 -3
- package/dist-lib/integrations/supabase/auth-middleware.d.ts +2698 -344
- package/dist-lib/integrations/supabase/auth-middleware.d.ts.map +1 -1
- package/dist-lib/integrations/supabase/client.d.ts +2698 -344
- package/dist-lib/integrations/supabase/client.d.ts.map +1 -1
- package/dist-lib/integrations/supabase/client.js +2 -1
- package/dist-lib/integrations/supabase/client.server.d.ts +2698 -344
- package/dist-lib/integrations/supabase/client.server.d.ts.map +1 -1
- package/dist-lib/integrations/supabase/previewAuthStorage.d.ts +6 -0
- package/dist-lib/integrations/supabase/previewAuthStorage.d.ts.map +1 -0
- package/dist-lib/integrations/supabase/previewAuthStorage.js +92 -0
- package/dist-lib/integrations/supabase/types.d.ts +2846 -443
- package/dist-lib/integrations/supabase/types.d.ts.map +1 -1
- package/dist-lib/integrations/supabase/types.js +3 -0
- package/dist-lib/lib/floricode-required-features.functions.d.ts +2698 -344
- package/dist-lib/lib/floricode-required-features.functions.d.ts.map +1 -1
- package/dist-lib/lib/floriday-customer-offer.functions.d.ts +2698 -344
- package/dist-lib/lib/floriday-customer-offer.functions.d.ts.map +1 -1
- package/dist-lib/lib/floriday-env.functions.d.ts +5182 -474
- package/dist-lib/lib/floriday-env.functions.d.ts.map +1 -1
- package/dist-lib/lib/floriday-gateway.functions.d.ts +15546 -1422
- package/dist-lib/lib/floriday-gateway.functions.d.ts.map +1 -1
- package/dist-lib/lib/floriday-vbn-required.functions.d.ts +5182 -474
- package/dist-lib/lib/floriday-vbn-required.functions.d.ts.map +1 -1
- package/dist-lib/lib/floriday-warehouse.functions.d.ts +7773 -711
- package/dist-lib/lib/floriday-warehouse.functions.d.ts.map +1 -1
- package/dist-lib/lib/floriday-writes.functions.d.ts +5182 -474
- package/dist-lib/lib/floriday-writes.functions.d.ts.map +1 -1
- package/dist-lib/lib/module-health.functions.d.ts +5182 -474
- package/dist-lib/lib/module-health.functions.d.ts.map +1 -1
- package/dist-lib/lib/stock-sync.functions.d.ts +5182 -474
- package/dist-lib/lib/stock-sync.functions.d.ts.map +1 -1
- package/package.json +2 -2
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
// This file is automatically generated. Do not edit it directly.
|
|
2
|
+
// On a Lovable preview surface, broker the auth session to the editor over
|
|
3
|
+
// postMessage so the project's preview surfaces share one login; else localStorage.
|
|
4
|
+
export function brokeredPreviewStorage() {
|
|
5
|
+
if (typeof window === 'undefined')
|
|
6
|
+
return undefined;
|
|
7
|
+
const host = location.hostname;
|
|
8
|
+
const PREVIEW_ZONES = ['lovableproject.com', 'lovableproject-dev.com', 'lovable.app', 'gpt-eng.com', 'gptengineer.run'];
|
|
9
|
+
const onPreviewZone = PREVIEW_ZONES.some((z) => host === z || host.endsWith('.' + z));
|
|
10
|
+
// Read the id only from non-user-controlled host positions, so a user-named
|
|
11
|
+
// preview--<name> host can't smuggle another project's id.
|
|
12
|
+
const UUID = '[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}';
|
|
13
|
+
const projectId = onPreviewZone
|
|
14
|
+
? (host.match(new RegExp('^(?:id-preview(?:-[a-z0-9]+)?|project)--(' + UUID + ')(?:-dev)?(?=\\.|$)', 'i'))?.[1]
|
|
15
|
+
?? host.match(new RegExp('^(' + UUID + ')(?=[.-])', 'i'))?.[1])
|
|
16
|
+
: undefined;
|
|
17
|
+
const framed = window.parent && window.parent !== window;
|
|
18
|
+
if (!projectId || !framed)
|
|
19
|
+
return localStorage;
|
|
20
|
+
// Post only to the real editor ancestor, validated as a Lovable origin, so the
|
|
21
|
+
// session token can never reach an untrusted embedder.
|
|
22
|
+
const dev = host.endsWith('.lovableproject-dev.com') || host.endsWith('.gpt-eng.com');
|
|
23
|
+
const EDITOR = dev
|
|
24
|
+
? /^https:\/\/([a-z0-9-]+\.)*(lovable\.dev|gptengineer\.app)$|^http:\/\/localhost:3000$/
|
|
25
|
+
: /^https:\/\/([a-z0-9-]+\.)*(lovable\.dev|gptengineer\.app)$/;
|
|
26
|
+
const ancestor = (location.ancestorOrigins && location.ancestorOrigins[0]) || (document.referrer ? new URL(document.referrer).origin : '');
|
|
27
|
+
const editorOrigins = ancestor && EDITOR.test(ancestor)
|
|
28
|
+
? [ancestor]
|
|
29
|
+
: (dev ? ['https://lovable.dev', 'http://localhost:3000'] : ['https://lovable.dev']);
|
|
30
|
+
const RESULT = 'lovable-preview-auth:result';
|
|
31
|
+
const TIMEOUT = 2000;
|
|
32
|
+
const newId = () => Math.random().toString(36).slice(2) + Date.now().toString(36);
|
|
33
|
+
const request = (type, key, value) => new Promise((resolve) => {
|
|
34
|
+
const requestId = newId();
|
|
35
|
+
let done = false;
|
|
36
|
+
let timer;
|
|
37
|
+
const finish = (r) => {
|
|
38
|
+
if (done)
|
|
39
|
+
return;
|
|
40
|
+
done = true;
|
|
41
|
+
clearTimeout(timer);
|
|
42
|
+
window.removeEventListener('message', onMessage);
|
|
43
|
+
resolve(r);
|
|
44
|
+
};
|
|
45
|
+
const onMessage = (e) => {
|
|
46
|
+
if (editorOrigins.indexOf(e.origin) < 0)
|
|
47
|
+
return;
|
|
48
|
+
const d = e.data;
|
|
49
|
+
if (d && d.type === RESULT && d.requestId === requestId)
|
|
50
|
+
finish(d);
|
|
51
|
+
};
|
|
52
|
+
window.addEventListener('message', onMessage);
|
|
53
|
+
const msg = { type, requestId, projectId, key };
|
|
54
|
+
if (value !== undefined)
|
|
55
|
+
msg['value'] = value;
|
|
56
|
+
// targetOrigin per trusted editor origin, so a session token never reaches an arbitrary embedder.
|
|
57
|
+
for (const origin of editorOrigins)
|
|
58
|
+
window.parent.postMessage(msg, origin);
|
|
59
|
+
timer = setTimeout(() => finish(null), TIMEOUT);
|
|
60
|
+
});
|
|
61
|
+
// The editor may not be listening yet at the first getItem, so retry once.
|
|
62
|
+
let firstGet = true;
|
|
63
|
+
const RETRY_DELAY = 250;
|
|
64
|
+
return {
|
|
65
|
+
getItem: async (key) => {
|
|
66
|
+
let res = await request('lovable-preview-auth:get', key);
|
|
67
|
+
if (!res && firstGet) {
|
|
68
|
+
await new Promise((r) => setTimeout(r, RETRY_DELAY));
|
|
69
|
+
res = await request('lovable-preview-auth:get', key);
|
|
70
|
+
}
|
|
71
|
+
firstGet = false;
|
|
72
|
+
// '' is the logout tombstone: clear the local copy too so it can't resurrect if
|
|
73
|
+
// the broker later goes silent. A null reply means never-synced -> keep local.
|
|
74
|
+
if (res && res.ok && typeof res.value === 'string') {
|
|
75
|
+
if (res.value === '') {
|
|
76
|
+
localStorage.removeItem(key);
|
|
77
|
+
return null;
|
|
78
|
+
}
|
|
79
|
+
return res.value;
|
|
80
|
+
}
|
|
81
|
+
return localStorage.getItem(key);
|
|
82
|
+
},
|
|
83
|
+
setItem: (key, value) => {
|
|
84
|
+
localStorage.setItem(key, value);
|
|
85
|
+
return request('lovable-preview-auth:set', key, value).then(() => undefined);
|
|
86
|
+
},
|
|
87
|
+
removeItem: (key) => {
|
|
88
|
+
localStorage.removeItem(key);
|
|
89
|
+
return request('lovable-preview-auth:remove', key).then(() => undefined);
|
|
90
|
+
},
|
|
91
|
+
};
|
|
92
|
+
}
|