your-ai-workflow-firebase-os 2.0.2 → 2.0.3
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/AccessNotice-BZ5Gt1nP.js +40 -0
- package/dist/AccessNotice-CN7kc70o.cjs +1 -0
- package/dist/{AddressField-B2YBRXcx.js → AddressField-9Sqn8TvC.js} +3 -3
- package/dist/{AddressField-BBv8NGX8.cjs → AddressField-B7wtV8yA.cjs} +1 -1
- package/dist/Assets-DBMwZ3bN.cjs +1 -0
- package/dist/Assets-DT-NU_WO.js +296 -0
- package/dist/Attachments-Bl9_dfsu.js +46 -0
- package/dist/Attachments-UVK9SRXf.cjs +1 -0
- package/dist/Billing-0RIHayHy.cjs +1 -0
- package/dist/Billing-FNE2r3_d.js +379 -0
- package/dist/BookingCalendar-BP5kiv3d.cjs +1 -0
- package/dist/BookingCalendar-DZ2fEFja.js +309 -0
- package/dist/Button-4lzOE31p.js +48 -0
- package/dist/Button-5DlB2MCi.cjs +1 -0
- package/dist/CalendarView-BimoXy_k.cjs +1 -0
- package/dist/CalendarView-D-ykjpvI.js +664 -0
- package/dist/ConfirmModal-Di9GR-vV.cjs +1 -0
- package/dist/ConfirmModal-gKQEpd4d.js +113 -0
- package/dist/ContactPopup-BXnHrRwl.js +1114 -0
- package/dist/ContactPopup-lxmRMoIa.cjs +1 -0
- package/dist/CopyLink-BpEQWmfI.cjs +1 -0
- package/dist/CopyLink-CBAVfcm1.js +43 -0
- package/dist/DashboardNav-CXa_ci-_.cjs +1 -0
- package/dist/DashboardNav-Dmn7PVSp.js +886 -0
- package/dist/EmailAdmin-CjN_rvxT.js +318 -0
- package/dist/EmailAdmin-lAEBdY1s.cjs +1 -0
- package/dist/EventCard-46EquygT.cjs +1 -0
- package/dist/EventCard-B6xD-mk3.js +97 -0
- package/dist/FileViewerPopup-CX-J75TM.js +1283 -0
- package/dist/FileViewerPopup-D8-MmIoS.cjs +3 -0
- package/dist/FormNote-BivRNA3J.js +50 -0
- package/dist/FormNote-BtdTGpml.cjs +1 -0
- package/dist/FormsAdmin-B5PBCG2W.js +812 -0
- package/dist/FormsAdmin-BQCULvi5.cjs +1 -0
- package/dist/Inbox-BPk2ZkE5.js +779 -0
- package/dist/Inbox-DNrcBx0o.cjs +3 -0
- package/dist/Loader-Bu89fsbB.cjs +1 -0
- package/dist/Loader-D4gwgBOq.js +32 -0
- package/dist/ManagePlanButton-B0dwqZBd.cjs +1 -0
- package/dist/ManagePlanButton-BSrOHYze.js +29 -0
- package/dist/MyBookings-6qr0GgzO.cjs +1 -0
- package/dist/MyBookings-BQjGM2LQ.js +113 -0
- package/dist/PageTitle-CZhgmmDT.cjs +3 -0
- package/dist/PageTitle-D93YCiN8.js +1606 -0
- package/dist/PagesAdmin-BcHIcqM5.cjs +34 -0
- package/dist/PagesAdmin-D69P9nRb.js +5802 -0
- package/dist/PagesAdmin-DNwZOKjA.cjs +1 -0
- package/dist/PagesAdmin-HUITEcHx.js +3 -0
- package/dist/PaymentsAdmin-C2iCI9qC.js +1291 -0
- package/dist/PaymentsAdmin-CoXi2vCm.cjs +2 -0
- package/dist/{PhoneInputField-B3P_vUDW.cjs → PhoneInputField-BEwYZMB7.cjs} +1 -1
- package/dist/{PhoneInputField-D3wWs-M8.js → PhoneInputField-BG0L2djE.js} +2 -2
- package/dist/PhoneInputField-DfOtCIH_.js +2 -0
- package/dist/{PhoneInputField-CdNTvWXQ.cjs → PhoneInputField-jhWvto8C.cjs} +1 -1
- package/dist/Popup-DHYGFl2-.cjs +1 -0
- package/dist/Popup-xROLytgr.js +142 -0
- package/dist/ProviderMark-BBfaM5Yl.js +52 -0
- package/dist/ProviderMark-xLkUN3Fx.cjs +1 -0
- package/dist/PublishApp-Bm-6r3Td.js +595 -0
- package/dist/PublishApp-D4XJUkJa.cjs +2 -0
- package/dist/Said-CoC15awL.js +94 -0
- package/dist/Said-IqCNofdh.cjs +1 -0
- package/dist/ScheduleAdmin-BKfQkrR8.js +1853 -0
- package/dist/ScheduleAdmin-DwK36GAZ.cjs +1 -0
- package/dist/SchedulePicker--urIH2Eb.js +112 -0
- package/dist/SchedulePicker-nmqzUnUH.cjs +1 -0
- package/dist/Setup-CHLgd-ag.js +849 -0
- package/dist/Setup-CaDranTm.cjs +1374 -0
- package/dist/SetupPayments-CVIwh1eQ.js +411 -0
- package/dist/SetupPayments-HNXWA25X.cjs +1 -0
- package/dist/SignInAdmin-C94-A-0w.cjs +4 -0
- package/dist/SignInAdmin-Yxgv_8U4.js +766 -0
- package/dist/SupportBar-CDT0HwdP.cjs +1 -0
- package/dist/SupportBar-CN_JGC-9.js +117 -0
- package/dist/SystemTabContent-L3vGGF3P.cjs +1 -0
- package/dist/SystemTabContent-QdxxLILE.js +35 -0
- package/dist/TemplateDrive-DV8zNjYe.cjs +1 -0
- package/dist/TemplateDrive-NJY_AAvV.js +1197 -0
- package/dist/ThemeAdmin-BzFjJkLg.js +269 -0
- package/dist/ThemeAdmin-DVnPNxe7.cjs +1 -0
- package/dist/ThemeAdmin-DY7Vc4Sj.cjs +3 -0
- package/dist/ThemeAdmin-DnC-D2N3.js +2 -0
- package/dist/{ContactPopup-Dsg2ntq3.js → TimeZoneField-DkI1Bkcz.js} +3191 -5322
- package/dist/TimeZoneField-qs7NPR30.cjs +12 -0
- package/dist/TransactionsAdmin-BsZ-oQWi.js +582 -0
- package/dist/TransactionsAdmin-CTSTiPld.cjs +1 -0
- package/dist/Trouble-9es_AI4F.cjs +1 -0
- package/dist/Trouble-oWt9fMsm.js +164 -0
- package/dist/Users-CTitWXyd.cjs +1 -0
- package/dist/Users-DJjQTWJF.js +1207 -0
- package/dist/aiModels-DIP9fn8T.cjs +1 -0
- package/dist/{aiModels-BHlEfuRJ.js → aiModels-DnDhNGup.js} +29 -61
- package/dist/arrivalRoads-BJ-35vkk.js +228 -0
- package/dist/arrivalRoads-qoU-B4jt.cjs +4 -0
- package/dist/{bake-BWG3y-15.cjs → bake-n2wyFw0B.cjs} +1 -1
- package/dist/{bake-BtYOG1Du.js → bake-naZeMu98.js} +1 -1
- package/dist/bookingPages-C7a3srPG.js +102 -0
- package/dist/bookingPages-DvbFbD9X.cjs +1 -0
- package/dist/components/CustomSelect.d.ts +7 -1
- package/dist/components/RegistrationFields.d.ts +6 -1
- package/dist/components/Reveal.d.ts +12 -0
- package/dist/components/ScrollToTop.d.ts +4 -0
- package/dist/contentFallback-C9MZjdq7.cjs +1 -0
- package/dist/contentFallback-CEDY0Pwp.js +96 -0
- package/dist/contentKey-Bwry4lDa.js +13 -0
- package/dist/contentKey-DJGYYnAE.cjs +1 -0
- package/dist/email-BfnZnMwD.cjs +1 -0
- package/dist/email-Ddj8Dlu6.js +58 -0
- package/dist/{fileBytes-BdwaFKRy.cjs → fileBytes-BJPaiX9Y.cjs} +1 -1
- package/dist/{fileBytes-DuW2K-H_.js → fileBytes-bjgvCfWu.js} +2 -2
- package/dist/forms-Bvx9HTM6.js +75 -0
- package/dist/forms-CmNeTETW.cjs +1 -0
- package/dist/lib/ThemeContext.d.ts +0 -14
- package/dist/lib/bareImgWatch.d.ts +6 -1
- package/dist/lib/localEdits.d.ts +2 -0
- package/dist/lib/paymentProducts.d.ts +8 -0
- package/dist/lib/payments.d.ts +11 -1
- package/dist/notices-B7iIrIEg.js +29 -0
- package/dist/notices-upMg8UVh.cjs +1 -0
- package/dist/openOnArrival-Buwqb86D.cjs +1 -0
- package/dist/openOnArrival-S2K6v-lB.js +35 -0
- package/dist/pageFiles--Ih60ITP.js +45 -0
- package/dist/pageFiles-UtBmlOcD.cjs +1 -0
- package/dist/pages/PagesAdmin.d.ts +69 -0
- package/dist/people-2jZE_pdI.js +102 -0
- package/dist/people-BpVvIr9-.cjs +1 -0
- package/dist/personName-CFw3pxuu.js +18 -0
- package/dist/personName-CbzN_i57.cjs +1 -0
- package/dist/publishSteps-C1cDFzzB.js +88 -0
- package/dist/publishSteps-SSm8afDw.cjs +1 -0
- package/dist/recordLock-DHVvI9bP.js +61 -0
- package/dist/recordLock-DWeIxiwh.cjs +1 -0
- package/dist/recordsKey-B7QrxdeU.cjs +1 -0
- package/dist/recordsKey-D5-wC0Aw.js +141 -0
- package/dist/registrationFields-CLeR2lQJ.js +181 -0
- package/dist/registrationFields-v4pOoRdn.cjs +1 -0
- package/dist/renderer.cjs.js +1 -1
- package/dist/renderer.es.js +1 -1
- package/dist/roles-D6VaHWfV.js +147 -0
- package/dist/roles-DQUFFBQe.cjs +1 -0
- package/dist/scheduleData-ATN8w5hI.js +727 -0
- package/dist/scheduleData-Cltj0ABZ.cjs +1 -0
- package/dist/server.cjs.js +6 -6
- package/dist/server.es.js +716 -715
- package/dist/serviceStatus-TQyZO_Y_.cjs +1 -0
- package/dist/serviceStatus-vS8AI7SZ.js +125 -0
- package/dist/tabAudience-BqpN6dsR.cjs +1 -0
- package/dist/tabAudience-CRyMvv0v.js +34 -0
- package/dist/transactions-BqMQDRx3.js +343 -0
- package/dist/transactions-CufFrdAM.cjs +1 -0
- package/dist/useIsPhone-BVGx_X3e.js +13 -0
- package/dist/useIsPhone-o63tNneA.cjs +1 -0
- package/dist/{validate-DzSJWuyL.js → validate-CmC_tLK-.js} +433 -351
- package/dist/validate-DZMwqSrb.cjs +103 -0
- package/dist/vite/validate.d.ts +14 -0
- package/dist/vite.cjs.js +1 -1
- package/dist/vite.es.js +1 -1
- package/dist/your-ai-workflow-firebase-os.cjs.js +15 -1431
- package/dist/your-ai-workflow-firebase-os.css +1 -1
- package/dist/your-ai-workflow-firebase-os.es.js +8200 -32421
- package/package.json +1 -1
- package/src/index.css +122 -2
- package/dist/ContactPopup-IwBm-eqz.cjs +0 -12
- package/dist/PhoneInputField-CVamkTJg.js +0 -2
- package/dist/aiModels-BIhoTNH0.cjs +0 -1
- package/dist/validate-e48WXJdP.cjs +0 -103
- /package/dist/{address-DI1YaCI4.cjs → address-Bsb8COq2.cjs} +0 -0
- /package/dist/{address-Ca1h_UZX.js → address-C2bHNxJU.js} +0 -0
- /package/dist/{dist-BkUiTtIb.js → dist-DUPvBnOA.js} +0 -0
- /package/dist/{dist-BLGlDv1e.cjs → dist-E4jTFPs7.cjs} +0 -0
- /package/dist/{lucide-react-BYniZ3lQ.cjs → lucide-react-BwV6L6Is.cjs} +0 -0
- /package/dist/{lucide-react-ehRy1vqS.js → lucide-react-CA7GD7Nv.js} +0 -0
- /package/dist/{mediaKind-dk396a03.cjs → mediaKind-D0MWyv6b.cjs} +0 -0
- /package/dist/{mediaKind-De2Cx_kB.js → mediaKind-DmKMsjeY.js} +0 -0
- /package/dist/{pdf-u73U7-6s.js → pdf-DRXcPGkr.js} +0 -0
- /package/dist/{pdf-B24jYmSf.cjs → pdf-jLjjhvjp.cjs} +0 -0
- /package/dist/{pdf.worker.min-BPOWx2_9.js → pdf.worker.min-CfKZezeM.js} +0 -0
- /package/dist/{pdf.worker.min-BvhEiZFe.cjs → pdf.worker.min-bLgNWd7w.cjs} +0 -0
- /package/dist/{verifiedAccount-C1iCxopN.js → verifiedAccount-DRbRFJ6H.js} +0 -0
- /package/dist/{verifiedAccount-D3OeaOBo.cjs → verifiedAccount-DScyKk96.cjs} +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
const e=require(`./verifiedAccount-DScyKk96.cjs`);var t=[`chat`,`image`,`voice`,`video`],n=e=>t.includes(e),r=[{id:`gemini-flash-lite-latest`,label:`Gemini Flash Lite`,provider:`gemini`,tier:`Fast`,kind:`chat`},{id:`gpt-5.4-nano`,label:`GPT-5.4 Nano`,provider:`openai`,tier:`Fast`,kind:`chat`},{id:`gemini-flash-latest`,label:`Gemini Flash`,provider:`gemini`,tier:`Standard`,kind:`chat`},{id:`claude-haiku-4-5`,label:`Claude Haiku 4.5`,provider:`anthropic`,tier:`Standard`,kind:`chat`},{id:`gemini-pro-latest`,label:`Gemini Pro`,provider:`gemini`,tier:`Best`,kind:`chat`},{id:`claude-sonnet-5`,label:`Claude Sonnet 5`,provider:`anthropic`,tier:`Best`,kind:`chat`},{id:`claude-opus-5`,label:`Claude Opus 5`,provider:`anthropic`,tier:`Max`,kind:`chat`},{id:`gpt-5.5`,label:`GPT-5.5`,provider:`openai`,tier:`Max`,kind:`chat`},{id:`gemini-3.1-flash-lite-image`,label:`Gemini Image Lite`,provider:`gemini`,tier:`Fast`,kind:`image`},{id:`gemini-3.1-flash-image`,label:`Gemini Image`,provider:`gemini`,tier:`Standard`,kind:`image`},{id:`gpt-image-2.5-flare`,label:`GPT Image Flare`,provider:`openai`,tier:`Standard`,kind:`image`},{id:`gemini-3-pro-image`,label:`Gemini Image Pro`,provider:`gemini`,tier:`Best`,kind:`image`},{id:`gpt-image-2.5-sunburst`,label:`GPT Image Sunburst`,provider:`openai`,tier:`Best`,kind:`image`},{id:`gemini-3.1-flash-tts-preview`,label:`Gemini Voice`,provider:`gemini`,tier:`Standard`,kind:`voice`},{id:`gpt-4o-mini-tts`,label:`OpenAI Voice`,provider:`openai`,tier:`Standard`,kind:`voice`},{id:`veo-3.1-lite-generate-preview`,label:`Veo Lite`,provider:`gemini`,tier:`Standard`,kind:`video`},{id:`veo-3.1-generate-preview`,label:`Veo`,provider:`gemini`,tier:`Best`,kind:`video`}],i=[{id:`gemini`,name:`Google Gemini`,short:`Gemini`,secret:`GEMINI_KEY`,color:`#4285F4`,models:`Gemini Flash Lite, Flash & Pro`,keyStarts:`AIza`,console:{label:`Google AI Studio`,href:`https://aistudio.google.com/api-keys`},steps:[`Open Google AI Studio and sign in with your Google account.`,`Click Create API key, then pick or create a project.`,`Click Create key, then copy it (it starts with AIza…).`],note:`Google does not train on what your pages send as long as the key is on a paid tier — and a key made here is created as a pay-as-you-go key from the start, so it is never used for training.`},{id:`anthropic`,name:`Anthropic Claude`,short:`Claude`,secret:`CLAUDE_KEY`,color:`#D4A574`,models:`Claude Haiku, Sonnet & Opus`,keyStarts:`sk-ant-`,console:{label:`Claude Console`,href:`https://platform.claude.com/settings/workspaces/default/keys`},steps:[`Open the Claude Console and sign in or create an account.`,`Go to Settings → API keys, then click Create Key.`,`Name it, create it, and copy the key (sk-ant-…) — shown only once.`],note:`Add a little credit under Billing to start making requests.`},{id:`openai`,name:`OpenAI`,short:`ChatGPT`,secret:`OPENAI_KEY`,color:`#10A37F`,models:`GPT-5.5 & GPT-5.4 Nano`,keyStarts:`sk-`,console:{label:`OpenAI Platform`,href:`https://platform.openai.com/api-keys`},steps:[`Open the OpenAI Platform and sign in or create an account.`,`Go to API keys, then click Create new secret key.`,`Name it, create it, and copy the key now (sk-…) — it’s shown only once.`],note:`New accounts may need to add credits under Settings → Billing before the key works.`}],a=i.map(e=>e.id),o=e=>r.find(t=>t.id===e),s=e=>i.find(t=>t.id===e),c={gemini:`gemini-flash-latest`,anthropic:`claude-haiku-4-5`,openai:`gpt-5.4-nano`};function l(e){return c[a.find(t=>e.includes(t))||`gemini`]}function u(e,t){return t===`chat`?e.length?l(e):``:r.find(n=>n.kind===t&&e.includes(n.provider))?.id||``}function d(e,t){let n=o(e);return n&&t.includes(n.provider)?n:t.length&&o(l(t))||null}var f=e=>Array.isArray(e)?r.filter(t=>e.includes(t.id)).map(e=>e.id):[],p=t=>t===`user`||t===`internal`||t===`admin`||e.v(t);function m(e){let t={};if(!e||typeof e!=`object`)return t;for(let n of Object.keys(e).sort()){if(!p(n))continue;let r=f(e[n]);r.length&&(t[n]=r)}return t}function h(t,n,i,a=`chat`){let s=e=>{let t=new Set(e);return r.filter(e=>e.kind===a&&t.has(e.id)&&i.includes(e.provider))},c=m(t?.aiModels),l=f(t?.aiModelsAll),p=e.h(n),h=s([...(p?Object.keys(c):e.I(n)).flatMap(e=>c[e]||[]),...p?l:[]]);if(h.length)return h;let g=s(l);if(g.length)return g;if(a===`chat`){let e=d(t?.aiModel,i);return e?[e]:[]}let _=p?o(u(i,a)):void 0;return _?[_]:[]}var g=e=>!!String(e?.aiWhat??``).trim()||f(e?.aiModelsAll).length>0||Object.keys(m(e?.aiModels)).length>0,_=e=>Object.keys(m(e?.aiModels)).length>0;Object.defineProperty(exports,`a`,{enumerable:!0,get:function(){return l}}),Object.defineProperty(exports,`c`,{enumerable:!0,get:function(){return g}}),Object.defineProperty(exports,`i`,{enumerable:!0,get:function(){return s}}),Object.defineProperty(exports,`l`,{enumerable:!0,get:function(){return _}}),Object.defineProperty(exports,`n`,{enumerable:!0,get:function(){return i}}),Object.defineProperty(exports,`o`,{enumerable:!0,get:function(){return n}}),Object.defineProperty(exports,`r`,{enumerable:!0,get:function(){return a}}),Object.defineProperty(exports,`s`,{enumerable:!0,get:function(){return h}}),Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return r}});
|
|
@@ -1,43 +1,11 @@
|
|
|
1
|
-
import { I as e,
|
|
2
|
-
//#region src/lib/tabAudience.ts
|
|
3
|
-
var o = [
|
|
4
|
-
"inbox",
|
|
5
|
-
"users",
|
|
6
|
-
"transactions"
|
|
7
|
-
], s = (e) => o.includes(e), c = {
|
|
8
|
-
collection: "sys_configs",
|
|
9
|
-
doc: "tab_access"
|
|
10
|
-
}, l = (e) => ["admin", ...n(e).filter((e) => e !== "admin" && e !== "user")];
|
|
11
|
-
function u(e, t) {
|
|
12
|
-
return l(e && typeof e == "object" ? e[t] : void 0);
|
|
13
|
-
}
|
|
14
|
-
function d(e) {
|
|
15
|
-
return !e || typeof e != "object" ? [] : o.filter((t) => n(e[t]).includes("user"));
|
|
16
|
-
}
|
|
17
|
-
var f = (e) => e.some((e) => e !== "admin");
|
|
18
|
-
function p(e) {
|
|
19
|
-
return l(e);
|
|
20
|
-
}
|
|
21
|
-
function m(e, n) {
|
|
22
|
-
let i = t(e);
|
|
23
|
-
if (i === "admin") return !0;
|
|
24
|
-
if (i === "internal") return n.includes("internal");
|
|
25
|
-
let a = r(e);
|
|
26
|
-
return !!a && n.includes(a);
|
|
27
|
-
}
|
|
28
|
-
function h(e, t, n, r = Date.now()) {
|
|
29
|
-
if (!e || e.inactive === !0) return !1;
|
|
30
|
-
let i = Number(e.planUntil || 0);
|
|
31
|
-
return m(i && r >= i ? "user" : e.role, u(t, n));
|
|
32
|
-
}
|
|
33
|
-
//#endregion
|
|
1
|
+
import { I as e, h as t, v as n } from "./verifiedAccount-DRbRFJ6H.js";
|
|
34
2
|
//#region src/lib/aiModels.ts
|
|
35
|
-
var
|
|
3
|
+
var r = [
|
|
36
4
|
"chat",
|
|
37
5
|
"image",
|
|
38
6
|
"voice",
|
|
39
7
|
"video"
|
|
40
|
-
],
|
|
8
|
+
], i = (e) => r.includes(e), a = [
|
|
41
9
|
{
|
|
42
10
|
id: "gemini-flash-lite-latest",
|
|
43
11
|
label: "Gemini Flash Lite",
|
|
@@ -157,7 +125,7 @@ var g = [
|
|
|
157
125
|
tier: "Best",
|
|
158
126
|
kind: "video"
|
|
159
127
|
}
|
|
160
|
-
],
|
|
128
|
+
], o = [
|
|
161
129
|
{
|
|
162
130
|
id: "gemini",
|
|
163
131
|
name: "Google Gemini",
|
|
@@ -215,47 +183,47 @@ var g = [
|
|
|
215
183
|
],
|
|
216
184
|
note: "New accounts may need to add credits under Settings → Billing before the key works."
|
|
217
185
|
}
|
|
218
|
-
],
|
|
186
|
+
], s = o.map((e) => e.id), c = (e) => a.find((t) => t.id === e), l = (e) => o.find((t) => t.id === e), u = {
|
|
219
187
|
gemini: "gemini-flash-latest",
|
|
220
188
|
anthropic: "claude-haiku-4-5",
|
|
221
189
|
openai: "gpt-5.4-nano"
|
|
222
190
|
};
|
|
223
|
-
function
|
|
224
|
-
return
|
|
191
|
+
function d(e) {
|
|
192
|
+
return u[s.find((t) => e.includes(t)) || "gemini"];
|
|
225
193
|
}
|
|
226
|
-
function
|
|
227
|
-
return t === "chat" ? e.length ?
|
|
194
|
+
function f(e, t) {
|
|
195
|
+
return t === "chat" ? e.length ? d(e) : "" : a.find((n) => n.kind === t && e.includes(n.provider))?.id || "";
|
|
228
196
|
}
|
|
229
|
-
function
|
|
230
|
-
let n =
|
|
231
|
-
return n && t.includes(n.provider) ? n : t.length &&
|
|
197
|
+
function p(e, t) {
|
|
198
|
+
let n = c(e);
|
|
199
|
+
return n && t.includes(n.provider) ? n : t.length && c(d(t)) || null;
|
|
232
200
|
}
|
|
233
|
-
var
|
|
234
|
-
function
|
|
201
|
+
var m = (e) => Array.isArray(e) ? a.filter((t) => e.includes(t.id)).map((e) => e.id) : [], h = (e) => e === "user" || e === "internal" || e === "admin" || n(e);
|
|
202
|
+
function g(e) {
|
|
235
203
|
let t = {};
|
|
236
204
|
if (!e || typeof e != "object") return t;
|
|
237
205
|
for (let n of Object.keys(e).sort()) {
|
|
238
|
-
if (!
|
|
239
|
-
let r =
|
|
206
|
+
if (!h(n)) continue;
|
|
207
|
+
let r = m(e[n]);
|
|
240
208
|
r.length && (t[n] = r);
|
|
241
209
|
}
|
|
242
210
|
return t;
|
|
243
211
|
}
|
|
244
|
-
function
|
|
245
|
-
let
|
|
212
|
+
function _(n, r, i, o = "chat") {
|
|
213
|
+
let s = (e) => {
|
|
246
214
|
let t = new Set(e);
|
|
247
|
-
return
|
|
248
|
-
},
|
|
249
|
-
if (
|
|
250
|
-
let
|
|
251
|
-
if (
|
|
252
|
-
if (
|
|
253
|
-
let e =
|
|
215
|
+
return a.filter((e) => e.kind === o && t.has(e.id) && i.includes(e.provider));
|
|
216
|
+
}, l = g(n?.aiModels), u = m(n?.aiModelsAll), d = t(r), h = s([...(d ? Object.keys(l) : e(r)).flatMap((e) => l[e] || []), ...d ? u : []]);
|
|
217
|
+
if (h.length) return h;
|
|
218
|
+
let _ = s(u);
|
|
219
|
+
if (_.length) return _;
|
|
220
|
+
if (o === "chat") {
|
|
221
|
+
let e = p(n?.aiModel, i);
|
|
254
222
|
return e ? [e] : [];
|
|
255
223
|
}
|
|
256
|
-
let
|
|
257
|
-
return
|
|
224
|
+
let v = d ? c(f(i, o)) : void 0;
|
|
225
|
+
return v ? [v] : [];
|
|
258
226
|
}
|
|
259
|
-
var
|
|
227
|
+
var v = (e) => !!String(e?.aiWhat ?? "").trim() || m(e?.aiModelsAll).length > 0 || Object.keys(g(e?.aiModels)).length > 0, y = (e) => Object.keys(g(e?.aiModels)).length > 0;
|
|
260
228
|
//#endregion
|
|
261
|
-
export {
|
|
229
|
+
export { d as a, v as c, l as i, y as l, o as n, i as o, s as r, _ as s, a as t };
|
|
@@ -0,0 +1,228 @@
|
|
|
1
|
+
import { Ta as e, dr as t, ka as n } from "./TimeZoneField-DkI1Bkcz.js";
|
|
2
|
+
import { g as r } from "./verifiedAccount-DRbRFJ6H.js";
|
|
3
|
+
import { useEffect as i, useState as a } from "react";
|
|
4
|
+
import { collection as o, deleteDoc as s, doc as c, onSnapshot as l, setDoc as u } from "firebase/firestore";
|
|
5
|
+
//#region src/lib/publicCopy.ts
|
|
6
|
+
var d = /^(?:mem|admin|role_[a-z][a-z0-9]*)_(.+)$/, f = (e) => {
|
|
7
|
+
let t = d.exec(String(e ?? ""));
|
|
8
|
+
return t ? `pub_${t[1]}` : null;
|
|
9
|
+
}, p = [
|
|
10
|
+
"creatorName",
|
|
11
|
+
"creatorEmail",
|
|
12
|
+
"creatorAvatar",
|
|
13
|
+
"editedUid",
|
|
14
|
+
"editedName",
|
|
15
|
+
"editedAvatar",
|
|
16
|
+
"editedAt",
|
|
17
|
+
"createdBy",
|
|
18
|
+
"updatedBy",
|
|
19
|
+
"userId",
|
|
20
|
+
"userEmail",
|
|
21
|
+
"userName"
|
|
22
|
+
], m = (e) => {
|
|
23
|
+
if (typeof e != "object" || !e) return JSON.stringify(e) ?? "undefined";
|
|
24
|
+
if (Array.isArray(e)) return `[${e.map(m).join(",")}]`;
|
|
25
|
+
let t = e;
|
|
26
|
+
return typeof t.toMillis == "function" ? `time:${t.seconds}.${t.nanoseconds}` : typeof t.path == "string" && t.firestore ? `ref:${t.path}` : `{${Object.keys(t).sort().map((e) => `${JSON.stringify(e)}:${m(t[e])}`).join(",")}}`;
|
|
27
|
+
}, h = (e, t) => {
|
|
28
|
+
let n = {};
|
|
29
|
+
for (let r of Object.keys(e)) t.includes(r) || (n[r] = e[r]);
|
|
30
|
+
return n;
|
|
31
|
+
}, g = (e) => {
|
|
32
|
+
if (e.metadata?.fromCache || e.metadata?.hasPendingWrites) return null;
|
|
33
|
+
let t = /* @__PURE__ */ new Map();
|
|
34
|
+
for (let n of e.docs) t.set(n.id, n.data());
|
|
35
|
+
return t;
|
|
36
|
+
}, _ = 20, v = 2e4;
|
|
37
|
+
async function y(e, t, r, i, a = /* @__PURE__ */ new Map()) {
|
|
38
|
+
let o = [...p, ...i], l = [];
|
|
39
|
+
for (let [i, s] of t) {
|
|
40
|
+
let t = h(s, o), d = m(t), f = r.get(i);
|
|
41
|
+
f && m(f) === d || f && a.get(i) === d || l.push(async () => {
|
|
42
|
+
await u(c(n, e, i), t), a.set(i, d);
|
|
43
|
+
});
|
|
44
|
+
}
|
|
45
|
+
for (let i of r.keys()) t.has(i) || l.push(async () => {
|
|
46
|
+
await s(c(n, e, i)), a.delete(i);
|
|
47
|
+
});
|
|
48
|
+
for (let e = 0; e < l.length; e += _) await Promise.all(l.slice(e, e + _).map((e) => e()));
|
|
49
|
+
return l.length;
|
|
50
|
+
}
|
|
51
|
+
var b = /* @__PURE__ */ new Map();
|
|
52
|
+
function x(e, t) {
|
|
53
|
+
let n = b.get(e);
|
|
54
|
+
n ? (n.pages += 1, n.leaveOut = t) : b.set(e, {
|
|
55
|
+
leaveOut: t,
|
|
56
|
+
pages: 1
|
|
57
|
+
});
|
|
58
|
+
let r = !1;
|
|
59
|
+
return () => {
|
|
60
|
+
if (r) return;
|
|
61
|
+
r = !0;
|
|
62
|
+
let t = b.get(e);
|
|
63
|
+
t && (--t.pages, t.pages <= 0 && b.delete(e));
|
|
64
|
+
};
|
|
65
|
+
}
|
|
66
|
+
var S = (e) => b.get(e)?.leaveOut ?? null, C = (e, t) => h(e, [
|
|
67
|
+
"id",
|
|
68
|
+
...p,
|
|
69
|
+
...t
|
|
70
|
+
]);
|
|
71
|
+
async function w(e, t, r) {
|
|
72
|
+
let i = f(e), a = S(e);
|
|
73
|
+
if (!(!i || !a || !t)) try {
|
|
74
|
+
await u(c(n, i, t), C(r, a));
|
|
75
|
+
} catch (n) {
|
|
76
|
+
console.warn(`The public copy of ${e} could not be updated for ${t}. It will catch up the next time the page is open.`, n);
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
async function T(e, t) {
|
|
80
|
+
let r = f(e);
|
|
81
|
+
if (!(!r || S(e) === null || !t)) try {
|
|
82
|
+
await s(c(n, r, t));
|
|
83
|
+
} catch (n) {
|
|
84
|
+
console.warn(`The public copy of ${e} could not drop ${t}. It will catch up the next time the page is open.`, n);
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
function E(r, s = {}) {
|
|
88
|
+
let { user: c } = t(), u = c?.uid || "", d = f(r), p = (s.leaveOut || []).join("\n"), [m, h] = a({
|
|
89
|
+
ready: !1,
|
|
90
|
+
error: null
|
|
91
|
+
});
|
|
92
|
+
return i(() => {
|
|
93
|
+
if (!d) {
|
|
94
|
+
console.error(`usePublicCopy('${r}'): only a mem_, admin_ or role_<id>_ collection takes a public copy. user_ and case_ records belong to one person and are never copied into pub_ (contract rule 11).`);
|
|
95
|
+
return;
|
|
96
|
+
}
|
|
97
|
+
if (!u) return;
|
|
98
|
+
h({
|
|
99
|
+
ready: !1,
|
|
100
|
+
error: null
|
|
101
|
+
});
|
|
102
|
+
let t = x(r, p ? p.split("\n") : []), i = null, a = null, s = /* @__PURE__ */ new Map(), c = !1, f = !1, m = !1, _ = !1, b = !1, S = !0, C = !0, w, T = (e) => {
|
|
103
|
+
!m && !_ && h(e);
|
|
104
|
+
}, E = () => {
|
|
105
|
+
_ && b && !c && !f && !S && !C && A();
|
|
106
|
+
}, D = async () => {
|
|
107
|
+
if (!(m || !i || !a)) {
|
|
108
|
+
if (c) {
|
|
109
|
+
f = !0;
|
|
110
|
+
return;
|
|
111
|
+
}
|
|
112
|
+
c = !0;
|
|
113
|
+
try {
|
|
114
|
+
await y(d, i, a, p ? p.split("\n") : [], s), T({
|
|
115
|
+
ready: !0,
|
|
116
|
+
error: null
|
|
117
|
+
});
|
|
118
|
+
} catch (t) {
|
|
119
|
+
T({
|
|
120
|
+
ready: !1,
|
|
121
|
+
error: e(t, "The public copy could not be updated.")
|
|
122
|
+
}), A();
|
|
123
|
+
return;
|
|
124
|
+
} finally {
|
|
125
|
+
c = !1;
|
|
126
|
+
}
|
|
127
|
+
if (f) {
|
|
128
|
+
f = !1, D();
|
|
129
|
+
return;
|
|
130
|
+
}
|
|
131
|
+
b = !0, E();
|
|
132
|
+
}
|
|
133
|
+
}, O = (t) => {
|
|
134
|
+
T({
|
|
135
|
+
ready: !1,
|
|
136
|
+
error: e(t, "The public copy could not be updated.")
|
|
137
|
+
});
|
|
138
|
+
}, k = [l(o(n, r), { includeMetadataChanges: !0 }, (e) => {
|
|
139
|
+
let t = g(e);
|
|
140
|
+
S = !t, t && (i = t, D());
|
|
141
|
+
}, O), l(o(n, d), { includeMetadataChanges: !0 }, (e) => {
|
|
142
|
+
let t = g(e);
|
|
143
|
+
C = !t, t && (a = t, D());
|
|
144
|
+
}, O)];
|
|
145
|
+
function A() {
|
|
146
|
+
m || (m = !0, w && clearTimeout(w), k.forEach((e) => e()));
|
|
147
|
+
}
|
|
148
|
+
return () => {
|
|
149
|
+
t(), _ = !0, E(), m || (w = setTimeout(A, v));
|
|
150
|
+
};
|
|
151
|
+
}, [
|
|
152
|
+
r,
|
|
153
|
+
d,
|
|
154
|
+
u,
|
|
155
|
+
p
|
|
156
|
+
]), m;
|
|
157
|
+
}
|
|
158
|
+
//#endregion
|
|
159
|
+
//#region src/lib/recordsCache.ts
|
|
160
|
+
var D = "fbos_records_", O = (e, t) => `${D}${t || "guest"}_${e}`;
|
|
161
|
+
function k(e, t) {
|
|
162
|
+
try {
|
|
163
|
+
let n = localStorage.getItem(O(e, t));
|
|
164
|
+
return n ? JSON.parse(n) : null;
|
|
165
|
+
} catch {
|
|
166
|
+
return null;
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
function A(e, t, n) {
|
|
170
|
+
try {
|
|
171
|
+
localStorage.setItem(O(e, t), JSON.stringify(n));
|
|
172
|
+
} catch {}
|
|
173
|
+
}
|
|
174
|
+
function j(e) {
|
|
175
|
+
try {
|
|
176
|
+
let t = `_${e}`, n = [];
|
|
177
|
+
for (let e = 0; e < localStorage.length; e++) {
|
|
178
|
+
let r = localStorage.key(e) || "";
|
|
179
|
+
r.startsWith(D) && r.endsWith(t) && n.push(r);
|
|
180
|
+
}
|
|
181
|
+
n.forEach((e) => localStorage.removeItem(e));
|
|
182
|
+
} catch {}
|
|
183
|
+
}
|
|
184
|
+
//#endregion
|
|
185
|
+
//#region src/lib/arrivalRoads.ts
|
|
186
|
+
var M = "arrivals", N = (e) => typeof e == "string" ? e.trim() : "";
|
|
187
|
+
function P(e) {
|
|
188
|
+
let t = [];
|
|
189
|
+
for (let n of Array.isArray(e?.roads) ? e.roads : []) {
|
|
190
|
+
let e = N(n?.collection), i = N(n?.formId);
|
|
191
|
+
!r(e) || !i || t.some((t) => t.collection === e && t.formId === i) || t.push({
|
|
192
|
+
collection: e,
|
|
193
|
+
formId: i,
|
|
194
|
+
paid: n?.paid !== !1,
|
|
195
|
+
roles: (Array.isArray(n?.roles) ? n.roles : []).map(N).filter(Boolean),
|
|
196
|
+
page: {
|
|
197
|
+
path: N(n?.page?.path),
|
|
198
|
+
title: N(n?.page?.title)
|
|
199
|
+
},
|
|
200
|
+
from: {
|
|
201
|
+
path: N(n?.from?.path),
|
|
202
|
+
title: N(n?.from?.title)
|
|
203
|
+
}
|
|
204
|
+
});
|
|
205
|
+
}
|
|
206
|
+
return t;
|
|
207
|
+
}
|
|
208
|
+
var F = (e, t) => {
|
|
209
|
+
let n = (e) => JSON.stringify([...e].sort((e, t) => `${e.collection}|${e.formId}`.localeCompare(`${t.collection}|${t.formId}`)).map((e) => [
|
|
210
|
+
e.collection,
|
|
211
|
+
e.formId,
|
|
212
|
+
e.paid,
|
|
213
|
+
[...e.roles].sort(),
|
|
214
|
+
e.page.path,
|
|
215
|
+
e.page.title,
|
|
216
|
+
e.from.path,
|
|
217
|
+
e.from.title
|
|
218
|
+
]));
|
|
219
|
+
return n(e) === n(t);
|
|
220
|
+
}, I = [];
|
|
221
|
+
function L() {
|
|
222
|
+
let { user: e, isAdmin: r, roleConfirmed: o } = t(), [s, u] = a([]), d = !!e?.uid && r && o;
|
|
223
|
+
return i(() => {
|
|
224
|
+
if (d) return l(c(n, "sys_configs", M), (e) => u(P(e.exists() ? e.data() : null)), () => u([]));
|
|
225
|
+
}, [d]), d ? s : I;
|
|
226
|
+
}
|
|
227
|
+
//#endregion
|
|
228
|
+
export { j as a, S as c, f as d, E as f, L as i, w as l, P as n, k as o, F as r, A as s, M as t, T as u };
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
require(`./chunk-CiTBaPhY.cjs`);const e=require(`./TimeZoneField-qs7NPR30.cjs`),t=require(`./verifiedAccount-DScyKk96.cjs`);let n=require(`react`),r=require(`firebase/firestore`);var i=/^(?:mem|admin|role_[a-z][a-z0-9]*)_(.+)$/,a=e=>{let t=i.exec(String(e??``));return t?`pub_${t[1]}`:null},o=[`creatorName`,`creatorEmail`,`creatorAvatar`,`editedUid`,`editedName`,`editedAvatar`,`editedAt`,`createdBy`,`updatedBy`,`userId`,`userEmail`,`userName`],s=e=>{if(typeof e!=`object`||!e)return JSON.stringify(e)??`undefined`;if(Array.isArray(e))return`[${e.map(s).join(`,`)}]`;let t=e;return typeof t.toMillis==`function`?`time:${t.seconds}.${t.nanoseconds}`:typeof t.path==`string`&&t.firestore?`ref:${t.path}`:`{${Object.keys(t).sort().map(e=>`${JSON.stringify(e)}:${s(t[e])}`).join(`,`)}}`},c=(e,t)=>{let n={};for(let r of Object.keys(e))t.includes(r)||(n[r]=e[r]);return n},l=e=>{if(e.metadata?.fromCache||e.metadata?.hasPendingWrites)return null;let t=new Map;for(let n of e.docs)t.set(n.id,n.data());return t},u=20,d=2e4;async function f(t,n,i,a,l=new Map){let d=[...o,...a],f=[];for(let[a,o]of n){let n=c(o,d),u=s(n),p=i.get(a);p&&s(p)===u||p&&l.get(a)===u||f.push(async()=>{await(0,r.setDoc)((0,r.doc)(e.ka,t,a),n),l.set(a,u)})}for(let a of i.keys())n.has(a)||f.push(async()=>{await(0,r.deleteDoc)((0,r.doc)(e.ka,t,a)),l.delete(a)});for(let e=0;e<f.length;e+=u)await Promise.all(f.slice(e,e+u).map(e=>e()));return f.length}var p=new Map;function m(e,t){let n=p.get(e);n?(n.pages+=1,n.leaveOut=t):p.set(e,{leaveOut:t,pages:1});let r=!1;return()=>{if(r)return;r=!0;let t=p.get(e);t&&(--t.pages,t.pages<=0&&p.delete(e))}}var h=e=>p.get(e)?.leaveOut??null,g=(e,t)=>c(e,[`id`,...o,...t]);async function _(t,n,i){let o=a(t),s=h(t);if(!(!o||!s||!n))try{await(0,r.setDoc)((0,r.doc)(e.ka,o,n),g(i,s))}catch(e){console.warn(`The public copy of ${t} could not be updated for ${n}. It will catch up the next time the page is open.`,e)}}async function v(t,n){let i=a(t);if(!(!i||h(t)===null||!n))try{await(0,r.deleteDoc)((0,r.doc)(e.ka,i,n))}catch(e){console.warn(`The public copy of ${t} could not drop ${n}. It will catch up the next time the page is open.`,e)}}function y(t,i={}){let{user:o}=e.dr(),s=o?.uid||``,c=a(t),u=(i.leaveOut||[]).join(`
|
|
2
|
+
`),[p,h]=(0,n.useState)({ready:!1,error:null});return(0,n.useEffect)(()=>{if(!c){console.error(`usePublicCopy('${t}'): only a mem_, admin_ or role_<id>_ collection takes a public copy. user_ and case_ records belong to one person and are never copied into pub_ (contract rule 11).`);return}if(!s)return;h({ready:!1,error:null});let n=m(t,u?u.split(`
|
|
3
|
+
`):[]),i=null,a=null,o=new Map,p=!1,g=!1,_=!1,v=!1,y=!1,b=!0,x=!0,S,C=e=>{!_&&!v&&h(e)},w=()=>{v&&y&&!p&&!g&&!b&&!x&&O()},T=async()=>{if(!(_||!i||!a)){if(p){g=!0;return}p=!0;try{await f(c,i,a,u?u.split(`
|
|
4
|
+
`):[],o),C({ready:!0,error:null})}catch(t){C({ready:!1,error:e.Ta(t,`The public copy could not be updated.`)}),O();return}finally{p=!1}if(g){g=!1,T();return}y=!0,w()}},E=t=>{C({ready:!1,error:e.Ta(t,`The public copy could not be updated.`)})},D=[(0,r.onSnapshot)((0,r.collection)(e.ka,t),{includeMetadataChanges:!0},e=>{let t=l(e);b=!t,t&&(i=t,T())},E),(0,r.onSnapshot)((0,r.collection)(e.ka,c),{includeMetadataChanges:!0},e=>{let t=l(e);x=!t,t&&(a=t,T())},E)];function O(){_||(_=!0,S&&clearTimeout(S),D.forEach(e=>e()))}return()=>{n(),v=!0,w(),_||(S=setTimeout(O,d))}},[t,c,s,u]),p}var b=`fbos_records_`,x=(e,t)=>`${b}${t||`guest`}_${e}`;function S(e,t){try{let n=localStorage.getItem(x(e,t));return n?JSON.parse(n):null}catch{return null}}function C(e,t,n){try{localStorage.setItem(x(e,t),JSON.stringify(n))}catch{}}function w(e){try{let t=`_${e}`,n=[];for(let e=0;e<localStorage.length;e++){let r=localStorage.key(e)||``;r.startsWith(b)&&r.endsWith(t)&&n.push(r)}n.forEach(e=>localStorage.removeItem(e))}catch{}}var T=`arrivals`,E=e=>typeof e==`string`?e.trim():``;function D(e){let n=[];for(let r of Array.isArray(e?.roads)?e.roads:[]){let e=E(r?.collection),i=E(r?.formId);!t.g(e)||!i||n.some(t=>t.collection===e&&t.formId===i)||n.push({collection:e,formId:i,paid:r?.paid!==!1,roles:(Array.isArray(r?.roles)?r.roles:[]).map(E).filter(Boolean),page:{path:E(r?.page?.path),title:E(r?.page?.title)},from:{path:E(r?.from?.path),title:E(r?.from?.title)}})}return n}var O=(e,t)=>{let n=e=>JSON.stringify([...e].sort((e,t)=>`${e.collection}|${e.formId}`.localeCompare(`${t.collection}|${t.formId}`)).map(e=>[e.collection,e.formId,e.paid,[...e.roles].sort(),e.page.path,e.page.title,e.from.path,e.from.title]));return n(e)===n(t)},k=[];function A(){let{user:t,isAdmin:i,roleConfirmed:a}=e.dr(),[o,s]=(0,n.useState)([]),c=!!t?.uid&&i&&a;return(0,n.useEffect)(()=>{if(c)return(0,r.onSnapshot)((0,r.doc)(e.ka,`sys_configs`,T),e=>s(D(e.exists()?e.data():null)),()=>s([]))},[c]),c?o:k}Object.defineProperty(exports,`a`,{enumerable:!0,get:function(){return w}}),Object.defineProperty(exports,`c`,{enumerable:!0,get:function(){return h}}),Object.defineProperty(exports,`d`,{enumerable:!0,get:function(){return a}}),Object.defineProperty(exports,`f`,{enumerable:!0,get:function(){return y}}),Object.defineProperty(exports,`i`,{enumerable:!0,get:function(){return A}}),Object.defineProperty(exports,`l`,{enumerable:!0,get:function(){return _}}),Object.defineProperty(exports,`n`,{enumerable:!0,get:function(){return D}}),Object.defineProperty(exports,`o`,{enumerable:!0,get:function(){return S}}),Object.defineProperty(exports,`r`,{enumerable:!0,get:function(){return O}}),Object.defineProperty(exports,`s`,{enumerable:!0,get:function(){return C}}),Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return T}}),Object.defineProperty(exports,`u`,{enumerable:!0,get:function(){return v}});
|