wcz-test 6.24.5 → 6.24.7

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.
Files changed (41) hide show
  1. package/dist/chunks/{DialogsHooks-DVnj8xmz.js → DialogsHooks-DOT0O_b4.js} +3 -178
  2. package/dist/chunks/DialogsHooks-DOT0O_b4.js.map +1 -0
  3. package/dist/chunks/{FileHooks-GprjzNKW.js → FileHooks-DCnXvUtq.js} +5 -5
  4. package/dist/chunks/{FileHooks-GprjzNKW.js.map → FileHooks-DCnXvUtq.js.map} +1 -1
  5. package/dist/chunks/RouterListItemButton-DTYXk1kh.js +35 -0
  6. package/dist/chunks/RouterListItemButton-DTYXk1kh.js.map +1 -0
  7. package/dist/chunks/env-gsqZ6zZD.js +30 -0
  8. package/dist/chunks/env-gsqZ6zZD.js.map +1 -0
  9. package/dist/chunks/session-vW7WZadj.js +91 -0
  10. package/dist/chunks/session-vW7WZadj.js.map +1 -0
  11. package/dist/chunks/utils-MD9YwOtu.js +91 -0
  12. package/dist/chunks/utils-MD9YwOtu.js.map +1 -0
  13. package/dist/client.js +4 -4
  14. package/dist/components.js +7 -2418
  15. package/dist/components.js.map +1 -1
  16. package/dist/hooks.js +5 -1011
  17. package/dist/hooks.js.map +1 -1
  18. package/dist/index.js +951 -448
  19. package/dist/index.js.map +1 -1
  20. package/dist/queries.js +3 -3
  21. package/dist/server.js +4 -5213
  22. package/dist/server.js.map +1 -1
  23. package/dist/utils.js +5 -5
  24. package/package.json +1 -1
  25. package/dist/chunks/DialogsHooks-DVnj8xmz.js.map +0 -1
  26. package/dist/chunks/RouterListItemButton-BvsZysDL.js +0 -959
  27. package/dist/chunks/RouterListItemButton-BvsZysDL.js.map +0 -1
  28. package/dist/chunks/_commonjsHelpers-BGn2FbsY.js +0 -35
  29. package/dist/chunks/_commonjsHelpers-BGn2FbsY.js.map +0 -1
  30. package/dist/chunks/env-Di2sjb5X.js +0 -104
  31. package/dist/chunks/env-Di2sjb5X.js.map +0 -1
  32. package/dist/chunks/i18next-Dx0Bahhj.js +0 -2203
  33. package/dist/chunks/i18next-Dx0Bahhj.js.map +0 -1
  34. package/dist/chunks/index-BrFiyyyk.js +0 -327
  35. package/dist/chunks/index-BrFiyyyk.js.map +0 -1
  36. package/dist/chunks/session-CPSUX_HJ.js +0 -12970
  37. package/dist/chunks/session-CPSUX_HJ.js.map +0 -1
  38. package/dist/chunks/useTranslation-D7I_DXWv.js +0 -406
  39. package/dist/chunks/useTranslation-D7I_DXWv.js.map +0 -1
  40. package/dist/chunks/utils-DtlCJSvY.js +0 -2582
  41. package/dist/chunks/utils-DtlCJSvY.js.map +0 -1
@@ -0,0 +1,35 @@
1
+ import { jsx } from "react/jsx-runtime";
2
+ import { c } from "react/compiler-runtime";
3
+ import { ListItemButton } from "@mui/material";
4
+ import { createLink } from "@tanstack/react-router";
5
+ import React__default from "react";
6
+ const Component = React__default.forwardRef(function ButtonComponent(props, reference) {
7
+ const $ = c(3);
8
+ let t0;
9
+ if ($[0] !== props || $[1] !== reference) {
10
+ t0 = /* @__PURE__ */ jsx(ListItemButton, { ref: reference, component: "a", ...props });
11
+ $[0] = props;
12
+ $[1] = reference;
13
+ $[2] = t0;
14
+ } else {
15
+ t0 = $[2];
16
+ }
17
+ return t0;
18
+ });
19
+ const CreatedComponent = createLink(Component);
20
+ const RouterListItemButton = (props) => {
21
+ const $ = c(2);
22
+ let t0;
23
+ if ($[0] !== props) {
24
+ t0 = /* @__PURE__ */ jsx(CreatedComponent, { ...props });
25
+ $[0] = props;
26
+ $[1] = t0;
27
+ } else {
28
+ t0 = $[1];
29
+ }
30
+ return t0;
31
+ };
32
+ export {
33
+ RouterListItemButton as R
34
+ };
35
+ //# sourceMappingURL=RouterListItemButton-DTYXk1kh.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RouterListItemButton-DTYXk1kh.js","sources":["../../src/components/router/RouterListItemButton.tsx"],"sourcesContent":["import { ListItemButton } from \"@mui/material\";\nimport { createLink } from \"@tanstack/react-router\";\nimport React from \"react\";\nimport type { ListItemButtonProps } from \"@mui/material\";\nimport type { LinkComponent } from \"@tanstack/react-router\";\n\nconst Component = React.forwardRef<HTMLAnchorElement, ListItemButtonProps<\"a\">>(function ButtonComponent(props, reference) {\n return <ListItemButton ref={reference} component=\"a\" {...props} />;\n});\n\nconst CreatedComponent = createLink(Component);\n\nexport const RouterListItemButton: LinkComponent<typeof Component> = (props) => {\n return <CreatedComponent {...props} />;\n};\n"],"names":["Component","React","forwardRef","ButtonComponent","props","reference","$","_c","t0","CreatedComponent","createLink","RouterListItemButton"],"mappings":";;;;;AAMA,MAAMA,YAAYC,eAAMC,WAAwD,SAAAC,gBAAAC,OAAAC,WAAA;AAAA,QAAAC,IAAAC,EAAA,CAAA;AAAA,MAAAC;AAAA,MAAAF,EAAA,CAAA,MAAAF,SAAAE,SAAAD,WAAA;AACrEG,6BAAC,gBAAA,EAAoBH,KAAAA,WAAqB,WAAA,KAAG,GAAKD,OAAK;AAAIE,WAAAF;AAAAE,WAAAD;AAAAC,WAAAE;AAAAA,EAAA,OAAA;AAAAA,SAAAF,EAAA,CAAA;AAAA,EAAA;AAAA,SAA3DE;AAA2D,CACrE;AAED,MAAMC,mBAAmBC,WAAWV,SAAS;AAEtC,MAAMW,uBAAwDP,CAAAA,UAAA;AAAA,QAAAE,IAAAC,EAAA,CAAA;AAAA,MAAAC;AAAA,MAAAF,SAAAF,OAAA;AAC1DI,SAAA,oBAAC,kBAAA,EAAgB,GAAKJ,MAAAA,CAAK;AAAIE,WAAAF;AAAAE,WAAAE;AAAAA,EAAA,OAAA;AAAAA,SAAAF,EAAA,CAAA;AAAA,EAAA;AAAA,SAA/BE;AAA+B;"}
@@ -0,0 +1,30 @@
1
+ import { createEnv } from "@t3-oss/env-core";
2
+ import { z } from "zod";
3
+ const __vite_import_meta_env__ = { "BASE_URL": "/", "DEV": false, "MODE": "production", "PROD": true, "SSR": false, "VITE_API_URL": "http://localhost:3000", "VITE_APP_TITLE": "WCZ Layout", "VITE_DYNAMSOFT_LICENSE_KEY": "DLS2eyJoYW5kc2hha2VDb2RlIjoiMTAxMjU2MzQ5LTEwMTI4MDIzNyIsIm1haW5TZXJ2ZXJVUkwiOiJodHRwczovL21sdHMuZHluYW1zb2Z0LmNvbS8iLCJvcmdhbml6YXRpb25JRCI6IjEwMTI1NjM0OSIsInN0YW5kYnlTZXJ2ZXJVUkwiOiJodHRwczovL3NsdHMuZHluYW1zb2Z0LmNvbS8iLCJjaGVja0NvZGUiOi0yMjMwMzAzMjZ9", "VITE_MUI_LICENSE_KEY": "d7aeb74913a4918a319bf4c253aa1a49Tz0xMjIzOTYsRT0xNzk1ODIzOTk5MDAwLFM9cHJlbWl1bSxMTT1zdWJzY3JpcHRpb24sUFY9aW5pdGlhbCxLVj0y" };
4
+ const clientEnv = createEnv({
5
+ clientPrefix: "VITE_",
6
+ client: {
7
+ VITE_APP_TITLE: z.string(),
8
+ VITE_MUI_LICENSE_KEY: z.string(),
9
+ VITE_API_URL: z.url()
10
+ },
11
+ runtimeEnv: __vite_import_meta_env__,
12
+ emptyStringAsUndefined: true
13
+ });
14
+ const serverEnv = createEnv({
15
+ server: {
16
+ NODE_ENV: z.enum(["development", "testing", "staging", "production"]),
17
+ MICROSOFT_TENANT_ID: z.string(),
18
+ MICROSOFT_CLIENT_ID: z.string(),
19
+ MICROSOFT_CLIENT_SECRET: z.string(),
20
+ MICROSOFT_REDIRECT_URI: z.url(),
21
+ SESSION_SECRET: z.string()
22
+ },
23
+ runtimeEnv: process.env,
24
+ emptyStringAsUndefined: true
25
+ });
26
+ export {
27
+ clientEnv as c,
28
+ serverEnv as s
29
+ };
30
+ //# sourceMappingURL=env-gsqZ6zZD.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"env-gsqZ6zZD.js","sources":["../../src/env.ts"],"sourcesContent":["import { createEnv } from \"@t3-oss/env-core\";\r\nimport { z } from \"zod\";\r\n\r\nexport const clientEnv = createEnv({\r\n clientPrefix: \"VITE_\",\r\n client: {\r\n VITE_APP_TITLE: z.string(),\r\n VITE_MUI_LICENSE_KEY: z.string(),\r\n VITE_API_URL: z.url(),\r\n },\r\n runtimeEnv: import.meta.env,\r\n emptyStringAsUndefined: true,\r\n});\r\n\r\nexport const serverEnv = createEnv({\r\n server: {\r\n NODE_ENV: z.enum([\"development\", \"testing\", \"staging\", \"production\"]),\r\n MICROSOFT_TENANT_ID: z.string(),\r\n MICROSOFT_CLIENT_ID: z.string(),\r\n MICROSOFT_CLIENT_SECRET: z.string(),\r\n MICROSOFT_REDIRECT_URI: z.url(),\r\n SESSION_SECRET: z.string(),\r\n },\r\n runtimeEnv: process.env,\r\n emptyStringAsUndefined: true,\r\n});\r\n"],"names":["clientEnv","createEnv","clientPrefix","client","VITE_APP_TITLE","z","string","VITE_MUI_LICENSE_KEY","VITE_API_URL","url","runtimeEnv","import","emptyStringAsUndefined","serverEnv","server","NODE_ENV","enum","MICROSOFT_TENANT_ID","MICROSOFT_CLIENT_ID","MICROSOFT_CLIENT_SECRET","MICROSOFT_REDIRECT_URI","SESSION_SECRET","process","env"],"mappings":";;;AAGO,MAAMA,YAAYC,UAAU;AAAA,EAC/BC,cAAc;AAAA,EACdC,QAAQ;AAAA,IACJC,gBAAgBC,EAAEC,OAAAA;AAAAA,IAClBC,sBAAsBF,EAAEC,OAAAA;AAAAA,IACxBE,cAAcH,EAAEI,IAAAA;AAAAA,EAAI;AAAA,EAExBC,YAAYC;AAAAA,EACZC,wBAAwB;AAC5B,CAAC;AAEM,MAAMC,YAAYZ,UAAU;AAAA,EAC/Ba,QAAQ;AAAA,IACJC,UAAUV,EAAEW,KAAK,CAAC,eAAe,WAAW,WAAW,YAAY,CAAC;AAAA,IACpEC,qBAAqBZ,EAAEC,OAAAA;AAAAA,IACvBY,qBAAqBb,EAAEC,OAAAA;AAAAA,IACvBa,yBAAyBd,EAAEC,OAAAA;AAAAA,IAC3Bc,wBAAwBf,EAAEI,IAAAA;AAAAA,IAC1BY,gBAAgBhB,EAAEC,OAAAA;AAAAA,EAAO;AAAA,EAE7BI,YAAYY,QAAQC;AAAAA,EACpBX,wBAAwB;AAC5B,CAAC;"}
@@ -0,0 +1,91 @@
1
+ import { redirect } from "@tanstack/react-router";
2
+ import { getCookie, deleteCookie, setCookie } from "@tanstack/react-start/server";
3
+ import jwt from "jsonwebtoken";
4
+ import * as z from "zod";
5
+ import z__default from "zod";
6
+ import "jwks-rsa";
7
+ import { MicrosoftEntraId } from "arctic";
8
+ import { s as serverEnv } from "./env-gsqZ6zZD.js";
9
+ const entraId = new MicrosoftEntraId(serverEnv.MICROSOFT_TENANT_ID, serverEnv.MICROSOFT_CLIENT_ID, serverEnv.MICROSOFT_CLIENT_SECRET, serverEnv.MICROSOFT_REDIRECT_URI);
10
+ const UserSchema = z.object({
11
+ id: z.string(),
12
+ name: z.string(),
13
+ email: z.email(),
14
+ groups: z.array(z.string())
15
+ });
16
+ z.object({
17
+ id: z.string(),
18
+ displayName: z.string(),
19
+ jobTitle: z.string(),
20
+ mail: z.email(),
21
+ mobilePhone: z.string()
22
+ });
23
+ const SESSION_COOKIE_NAME = "session";
24
+ const ACCESS_TOKEN_COOKIE_NAME = "access_token";
25
+ const AFTER_LOGIN_URL = "/";
26
+ const SessionSchema = z__default.object({
27
+ refreshToken: z__default.string(),
28
+ user: UserSchema.omit({
29
+ groups: true
30
+ })
31
+ });
32
+ const requireSession = async (redirectUri) => {
33
+ const sessionCookie = getCookie(SESSION_COOKIE_NAME);
34
+ if (!sessionCookie) {
35
+ throw redirect({
36
+ href: `/api/auth/login?redirect_uri=${encodeURIComponent(redirectUri ?? AFTER_LOGIN_URL)}`
37
+ });
38
+ }
39
+ const payloadRaw = jwt.verify(sessionCookie, serverEnv.SESSION_SECRET);
40
+ const sessionResult = SessionSchema.safeParse(payloadRaw);
41
+ if (!sessionResult.success) {
42
+ deleteCookie(SESSION_COOKIE_NAME);
43
+ throw redirect({
44
+ href: `/api/auth/login?redirect_uri=${encodeURIComponent(redirectUri ?? AFTER_LOGIN_URL)}`
45
+ });
46
+ }
47
+ return sessionResult.data;
48
+ };
49
+ const getAccessToken = async () => {
50
+ const accessTokenCookie = getCookie(ACCESS_TOKEN_COOKIE_NAME);
51
+ if (accessTokenCookie) return accessTokenCookie;
52
+ const session = await requireSession();
53
+ const tokens = await entraId.refreshAccessToken(session.refreshToken, []);
54
+ await setSessionCookie({
55
+ ...session,
56
+ refreshToken: tokens.refreshToken()
57
+ });
58
+ await setSessionAccessTokenCookie(tokens.accessToken());
59
+ return tokens.accessToken();
60
+ };
61
+ const setSessionCookie = async (session) => {
62
+ const sessionJwt = jwt.sign(session, serverEnv.SESSION_SECRET, {
63
+ expiresIn: "7d"
64
+ });
65
+ setCookie(SESSION_COOKIE_NAME, sessionJwt, {
66
+ secure: serverEnv.NODE_ENV === "production",
67
+ path: "/",
68
+ httpOnly: true,
69
+ sameSite: "lax",
70
+ maxAge: 7 * 24 * 60 * 60
71
+ // 7 days
72
+ });
73
+ };
74
+ const setSessionAccessTokenCookie = async (accessToken) => {
75
+ setCookie(ACCESS_TOKEN_COOKIE_NAME, accessToken, {
76
+ secure: serverEnv.NODE_ENV === "production",
77
+ path: "/",
78
+ httpOnly: true,
79
+ sameSite: "lax",
80
+ maxAge: 5 * 60
81
+ // 5 minutes
82
+ });
83
+ };
84
+ export {
85
+ setSessionAccessTokenCookie as a,
86
+ entraId as e,
87
+ getAccessToken as g,
88
+ requireSession as r,
89
+ setSessionCookie as s
90
+ };
91
+ //# sourceMappingURL=session-vW7WZadj.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session-vW7WZadj.js","sources":["../../src/lib/auth/entra.ts","../../src/models/User.ts","../../src/lib/auth/session.ts"],"sourcesContent":["import { MicrosoftEntraId } from \"arctic\";\r\nimport { serverEnv } from \"~/env\";\r\n\r\nexport const entraId = new MicrosoftEntraId(\r\n serverEnv.MICROSOFT_TENANT_ID,\r\n serverEnv.MICROSOFT_CLIENT_ID,\r\n serverEnv.MICROSOFT_CLIENT_SECRET,\r\n serverEnv.MICROSOFT_REDIRECT_URI,\r\n);\r\n","import * as z from \"zod\";\r\n\r\nexport const UserSchema = z.object({\r\n id: z.string(),\r\n name: z.string(),\r\n email: z.email(),\r\n groups: z.array(z.string()),\r\n});\r\n\r\nexport type User = z.infer<typeof UserSchema>;\r\n\r\nexport const GraphUserSchema = z.object({\r\n id: z.string(),\r\n displayName: z.string(),\r\n jobTitle: z.string(),\r\n mail: z.email(),\r\n mobilePhone: z.string(),\r\n});\r\n\r\nexport type GraphUser = z.infer<typeof GraphUserSchema>;\r\n","import { redirect } from \"@tanstack/react-router\";\r\nimport { deleteCookie, getCookie, setCookie } from \"@tanstack/react-start/server\";\r\nimport jwt from \"jsonwebtoken\";\r\nimport z from \"zod\";\r\nimport jwksRsa from \"jwks-rsa\";\r\nimport { entraId } from \"./entra\";\r\nimport { serverEnv } from \"~/env\";\r\nimport { UserSchema } from \"~/models/User\";\r\n\r\nconst SESSION_COOKIE_NAME = \"session\";\r\nconst ACCESS_TOKEN_COOKIE_NAME = \"access_token\";\r\nconst AFTER_LOGIN_URL = \"/\";\r\n\r\nconst SessionSchema = z.object({\r\n refreshToken: z.string(),\r\n user: UserSchema.omit({ groups: true }),\r\n});\r\n\r\ntype Session = z.infer<typeof SessionSchema>;\r\n\r\nexport const requireSession = async (redirectUri?: string) => {\r\n const sessionCookie = getCookie(SESSION_COOKIE_NAME);\r\n if (!sessionCookie) {\r\n throw redirect({ href: `/api/auth/login?redirect_uri=${encodeURIComponent(redirectUri ?? AFTER_LOGIN_URL)}` });\r\n }\r\n\r\n const payloadRaw = jwt.verify(sessionCookie, serverEnv.SESSION_SECRET);\r\n const sessionResult = SessionSchema.safeParse(payloadRaw);\r\n if (!sessionResult.success) {\r\n deleteCookie(SESSION_COOKIE_NAME);\r\n throw redirect({ href: `/api/auth/login?redirect_uri=${encodeURIComponent(redirectUri ?? AFTER_LOGIN_URL)}` });\r\n }\r\n\r\n return sessionResult.data;\r\n};\r\n\r\nexport const getAccessToken = async () => {\r\n const accessTokenCookie = getCookie(ACCESS_TOKEN_COOKIE_NAME);\r\n if (accessTokenCookie) return accessTokenCookie;\r\n\r\n const session = await requireSession();\r\n\r\n const tokens = await entraId.refreshAccessToken(session.refreshToken, []);\r\n\r\n await setSessionCookie({\r\n ...session,\r\n refreshToken: tokens.refreshToken()\r\n });\r\n\r\n await setSessionAccessTokenCookie(tokens.accessToken());\r\n\r\n return tokens.accessToken();\r\n};\r\n\r\nexport const validateAccessToken = async (token: string): Promise<jwt.JwtPayload> => {\r\n const client = jwksRsa({\r\n cache: true,\r\n rateLimit: true,\r\n jwksRequestsPerMinute: 5,\r\n jwksUri: \"https://login.microsoftonline.com/common/discovery/v2.0/keys\",\r\n });\r\n\r\n const decodedHeader = jwt.decode(token, { complete: true });\r\n if (!decodedHeader?.header.kid) throw new Error(\"Invalid token: Missing kid\");\r\n\r\n const key = await client.getSigningKey(decodedHeader.header.kid);\r\n const signingKey = key.getPublicKey();\r\n\r\n const payload = jwt.verify(token, signingKey) as jwt.JwtPayload;\r\n\r\n if (typeof payload.iss !== \"string\" || !payload.iss.startsWith(\"https://login.microsoftonline.com/\"))\r\n throw new Error(\"Invalid issuer\");\r\n\r\n return payload;\r\n};\r\n\r\nexport const setSessionCookie = async (session: Session) => {\r\n const sessionJwt = jwt.sign(session, serverEnv.SESSION_SECRET, { expiresIn: \"7d\" });\r\n\r\n setCookie(SESSION_COOKIE_NAME, sessionJwt, {\r\n secure: serverEnv.NODE_ENV === \"production\",\r\n path: \"/\",\r\n httpOnly: true,\r\n sameSite: \"lax\",\r\n maxAge: 7 * 24 * 60 * 60, // 7 days\r\n });\r\n};\r\n\r\nexport const setSessionAccessTokenCookie = async (accessToken: string) => {\r\n setCookie(ACCESS_TOKEN_COOKIE_NAME, accessToken, {\r\n secure: serverEnv.NODE_ENV === \"production\",\r\n path: \"/\",\r\n httpOnly: true,\r\n sameSite: \"lax\",\r\n maxAge: 5 * 60, // 5 minutes\r\n });\r\n};\r\n"],"names":["entraId","MicrosoftEntraId","serverEnv","MICROSOFT_TENANT_ID","MICROSOFT_CLIENT_ID","MICROSOFT_CLIENT_SECRET","MICROSOFT_REDIRECT_URI","UserSchema","z","object","id","string","name","email","groups","array","displayName","jobTitle","mail","mobilePhone","SESSION_COOKIE_NAME","ACCESS_TOKEN_COOKIE_NAME","AFTER_LOGIN_URL","SessionSchema","refreshToken","user","omit","requireSession","redirectUri","sessionCookie","getCookie","redirect","href","encodeURIComponent","payloadRaw","jwt","verify","SESSION_SECRET","sessionResult","safeParse","success","deleteCookie","data","getAccessToken","accessTokenCookie","session","tokens","refreshAccessToken","setSessionCookie","setSessionAccessTokenCookie","accessToken","sessionJwt","sign","expiresIn","setCookie","secure","NODE_ENV","path","httpOnly","sameSite","maxAge"],"mappings":";;;;;;;;AAGO,MAAMA,UAAU,IAAIC,iBACvBC,UAAUC,qBACVD,UAAUE,qBACVF,UAAUG,yBACVH,UAAUI,sBACd;ACNO,MAAMC,aAAaC,EAAEC,OAAO;AAAA,EAC/BC,IAAIF,EAAEG,OAAAA;AAAAA,EACNC,MAAMJ,EAAEG,OAAAA;AAAAA,EACRE,OAAOL,EAAEK,MAAAA;AAAAA,EACTC,QAAQN,EAAEO,MAAMP,EAAEG,QAAQ;AAC9B,CAAC;AAI8BH,EAAEC,OAAO;AAAA,EACpCC,IAAIF,EAAEG,OAAAA;AAAAA,EACNK,aAAaR,EAAEG,OAAAA;AAAAA,EACfM,UAAUT,EAAEG,OAAAA;AAAAA,EACZO,MAAMV,EAAEK,MAAAA;AAAAA,EACRM,aAAaX,EAAEG,OAAAA;AACnB,CAAC;ACRD,MAAMS,sBAAsB;AAC5B,MAAMC,2BAA2B;AACjC,MAAMC,kBAAkB;AAExB,MAAMC,gBAAgBf,WAAEC,OAAO;AAAA,EAC3Be,cAAchB,WAAEG,OAAAA;AAAAA,EAChBc,MAAMlB,WAAWmB,KAAK;AAAA,IAAEZ,QAAQ;AAAA,EAAA,CAAM;AAC1C,CAAC;AAIM,MAAMa,iBAAiB,OAAOC,gBAAyB;AAC1D,QAAMC,gBAAgBC,UAAUV,mBAAmB;AACnD,MAAI,CAACS,eAAe;AAChB,UAAME,SAAS;AAAA,MAAEC,MAAM,gCAAgCC,mBAAmBL,eAAeN,eAAe,CAAC;AAAA,IAAA,CAAI;AAAA,EACjH;AAEA,QAAMY,aAAaC,IAAIC,OAAOP,eAAe3B,UAAUmC,cAAc;AACrE,QAAMC,gBAAgBf,cAAcgB,UAAUL,UAAU;AACxD,MAAI,CAACI,cAAcE,SAAS;AACxBC,iBAAarB,mBAAmB;AAChC,UAAMW,SAAS;AAAA,MAAEC,MAAM,gCAAgCC,mBAAmBL,eAAeN,eAAe,CAAC;AAAA,IAAA,CAAI;AAAA,EACjH;AAEA,SAAOgB,cAAcI;AACzB;AAEO,MAAMC,iBAAiB,YAAY;AACtC,QAAMC,oBAAoBd,UAAUT,wBAAwB;AAC5D,MAAIuB,kBAAmB,QAAOA;AAE9B,QAAMC,UAAU,MAAMlB,eAAAA;AAEtB,QAAMmB,SAAS,MAAM9C,QAAQ+C,mBAAmBF,QAAQrB,cAAc,EAAE;AAExE,QAAMwB,iBAAiB;AAAA,IACnB,GAAGH;AAAAA,IACHrB,cAAcsB,OAAOtB,aAAAA;AAAAA,EAAa,CACrC;AAED,QAAMyB,4BAA4BH,OAAOI,aAAa;AAEtD,SAAOJ,OAAOI,YAAAA;AAClB;AAwBO,MAAMF,mBAAmB,OAAOH,YAAqB;AACxD,QAAMM,aAAahB,IAAIiB,KAAKP,SAAS3C,UAAUmC,gBAAgB;AAAA,IAAEgB,WAAW;AAAA,EAAA,CAAM;AAElFC,YAAUlC,qBAAqB+B,YAAY;AAAA,IACvCI,QAAQrD,UAAUsD,aAAa;AAAA,IAC/BC,MAAM;AAAA,IACNC,UAAU;AAAA,IACVC,UAAU;AAAA,IACVC,QAAQ,IAAI,KAAK,KAAK;AAAA;AAAA,EAAA,CACzB;AACL;AAEO,MAAMX,8BAA8B,OAAOC,gBAAwB;AACtEI,YAAUjC,0BAA0B6B,aAAa;AAAA,IAC7CK,QAAQrD,UAAUsD,aAAa;AAAA,IAC/BC,MAAM;AAAA,IACNC,UAAU;AAAA,IACVC,UAAU;AAAA,IACVC,QAAQ,IAAI;AAAA;AAAA,EAAA,CACf;AACL;"}
@@ -0,0 +1,91 @@
1
+ import axios from "axios";
2
+ import { c as clientEnv } from "./env-gsqZ6zZD.js";
3
+ const WISTRON_PRIMARY_COLOR = "#00506E";
4
+ const WISTRON_SECONDARY_COLOR = "#64DC00";
5
+ class Platform {
6
+ static get isAndroid() {
7
+ return /android/i.test(this.userAgent);
8
+ }
9
+ static get isIOS() {
10
+ return /iPad|iPhone|iPod/.test(this.userAgent);
11
+ }
12
+ static get isWindows() {
13
+ return /windows/i.test(this.userAgent);
14
+ }
15
+ static get isMacOS() {
16
+ return /Macintosh|MacIntel|MacPPC|Mac68K/.test(this.userAgent);
17
+ }
18
+ static get userAgent() {
19
+ return typeof navigator === "undefined" ? "" : navigator.userAgent;
20
+ }
21
+ }
22
+ const rootRouteHead = () => ({
23
+ meta: [{
24
+ charSet: "utf-8"
25
+ }, {
26
+ name: "viewport",
27
+ content: "width=device-width, initial-scale=1"
28
+ }, {
29
+ title: clientEnv.VITE_APP_TITLE
30
+ }, {
31
+ name: "og:type",
32
+ content: "website"
33
+ }, {
34
+ name: "og:title",
35
+ content: clientEnv.VITE_APP_TITLE
36
+ }, {
37
+ name: "og:image",
38
+ content: "/favicon-32x32.png"
39
+ }],
40
+ links: [{
41
+ rel: "apple-touch-icon",
42
+ sizes: "180x180",
43
+ href: "/apple-touch-icon.png"
44
+ }, {
45
+ rel: "icon",
46
+ type: "image/png",
47
+ sizes: "32x32",
48
+ href: "/favicon-32x32.png"
49
+ }, {
50
+ rel: "icon",
51
+ type: "image/png",
52
+ sizes: "16x16",
53
+ href: "/favicon-16x16.png"
54
+ }, {
55
+ rel: "manifest",
56
+ href: "/manifest.webmanifest"
57
+ }, {
58
+ rel: "icon",
59
+ href: "/favicon.ico"
60
+ }]
61
+ });
62
+ const httpClient = axios.create({
63
+ baseURL: clientEnv.VITE_API_URL
64
+ // TODO: Not working in children projects
65
+ });
66
+ const getFieldStatus = (field) => {
67
+ const {
68
+ meta
69
+ } = field.state;
70
+ const isTouched = meta.isTouched;
71
+ const hasError = !!meta.errors.length;
72
+ const helperText = meta.errors[0]?.message;
73
+ return {
74
+ isTouched,
75
+ hasError,
76
+ helperText
77
+ };
78
+ };
79
+ const toKebabCase = (str) => {
80
+ return str.replaceAll(/([a-z])([A-Z])/g, "$1-$2").replaceAll(/[\s_]+/g, "-").replaceAll(/[^a-zA-Z0-9-]/g, "").toLowerCase().replaceAll(/-+/g, "-").replaceAll(/(^-|-$)/g, "");
81
+ };
82
+ export {
83
+ Platform as P,
84
+ WISTRON_PRIMARY_COLOR as W,
85
+ WISTRON_SECONDARY_COLOR as a,
86
+ getFieldStatus as g,
87
+ httpClient as h,
88
+ rootRouteHead as r,
89
+ toKebabCase as t
90
+ };
91
+ //# sourceMappingURL=utils-MD9YwOtu.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils-MD9YwOtu.js","sources":["../../src/lib/utils.ts"],"sourcesContent":["import axios from \"axios\";\r\nimport type { AnyFieldApi } from \"@tanstack/react-form\";\r\nimport { clientEnv } from \"~/env\";\r\n\r\nexport const WISTRON_PRIMARY_COLOR = \"#00506E\";\r\nexport const WISTRON_SECONDARY_COLOR = \"#64DC00\";\r\n\r\nexport class Platform {\r\n static get isAndroid() { return /android/i.test(this.userAgent); }\r\n static get isIOS() { return /iPad|iPhone|iPod/.test(this.userAgent); }\r\n static get isWindows() { return /windows/i.test(this.userAgent); }\r\n static get isMacOS() { return /Macintosh|MacIntel|MacPPC|Mac68K/.test(this.userAgent); }\r\n\r\n private static get userAgent() { return typeof navigator === \"undefined\" ? \"\" : navigator.userAgent; }\r\n}\r\n\r\nexport const rootRouteHead = () => ({\r\n meta: [\r\n { charSet: \"utf-8\" },\r\n { name: \"viewport\", content: \"width=device-width, initial-scale=1\" },\r\n { title: clientEnv.VITE_APP_TITLE },\r\n { name: \"og:type\", content: \"website\" },\r\n { name: \"og:title\", content: clientEnv.VITE_APP_TITLE },\r\n { name: \"og:image\", content: \"/favicon-32x32.png\" }\r\n ],\r\n links: [\r\n { rel: \"apple-touch-icon\", sizes: \"180x180\", href: \"/apple-touch-icon.png\", },\r\n { rel: \"icon\", type: \"image/png\", sizes: \"32x32\", href: \"/favicon-32x32.png\", },\r\n { rel: \"icon\", type: \"image/png\", sizes: \"16x16\", href: \"/favicon-16x16.png\", },\r\n { rel: \"manifest\", href: \"/manifest.webmanifest\" },\r\n { rel: \"icon\", href: \"/favicon.ico\" },\r\n ],\r\n});\r\n\r\nexport const httpClient = axios.create({\r\n baseURL: clientEnv.VITE_API_URL // TODO: Not working in children projects\r\n});\r\n\r\n/* Internal Utils */\r\nexport type FormOmittedProps =\r\n \"name\" |\r\n \"value\" |\r\n \"onChange\" |\r\n \"onBlur\" |\r\n \"error\" |\r\n \"helperText\" |\r\n \"renderInput\" |\r\n \"type\" |\r\n \"aria-label\";\r\n\r\nexport const getFieldStatus = (field: AnyFieldApi) => {\r\n const { meta } = field.state;\r\n\r\n const isTouched = meta.isTouched;\r\n const hasError = !!meta.errors.length;\r\n const helperText = meta.errors[0]?.message;\r\n\r\n return { isTouched, hasError, helperText };\r\n};\r\n\r\nexport const toKebabCase = (str: string): string => {\r\n return str\r\n .replaceAll(/([a-z])([A-Z])/g, \"$1-$2\")\r\n .replaceAll(/[\\s_]+/g, \"-\")\r\n .replaceAll(/[^a-zA-Z0-9-]/g, \"\")\r\n .toLowerCase()\r\n .replaceAll(/-+/g, \"-\")\r\n .replaceAll(/(^-|-$)/g, \"\");\r\n};\r\n"],"names":["WISTRON_PRIMARY_COLOR","WISTRON_SECONDARY_COLOR","Platform","isAndroid","test","userAgent","isIOS","isWindows","isMacOS","navigator","rootRouteHead","meta","charSet","name","content","title","clientEnv","VITE_APP_TITLE","links","rel","sizes","href","type","httpClient","axios","create","baseURL","VITE_API_URL","getFieldStatus","field","state","isTouched","hasError","errors","length","helperText","message","toKebabCase","str","replaceAll","toLowerCase"],"mappings":";;AAIO,MAAMA,wBAAwB;AAC9B,MAAMC,0BAA0B;AAEhC,MAAMC,SAAS;AAAA,EAClB,WAAWC,YAAY;AAAE,WAAO,WAAWC,KAAK,KAAKC,SAAS;AAAA,EAAG;AAAA,EACjE,WAAWC,QAAQ;AAAE,WAAO,mBAAmBF,KAAK,KAAKC,SAAS;AAAA,EAAG;AAAA,EACrE,WAAWE,YAAY;AAAE,WAAO,WAAWH,KAAK,KAAKC,SAAS;AAAA,EAAG;AAAA,EACjE,WAAWG,UAAU;AAAE,WAAO,mCAAmCJ,KAAK,KAAKC,SAAS;AAAA,EAAG;AAAA,EAEvF,WAAmBA,YAAY;AAAE,WAAO,OAAOI,cAAc,cAAc,KAAKA,UAAUJ;AAAAA,EAAW;AACzG;AAEO,MAAMK,gBAAgBA,OAAO;AAAA,EAChCC,MAAM,CACF;AAAA,IAAEC,SAAS;AAAA,EAAA,GACX;AAAA,IAAEC,MAAM;AAAA,IAAYC,SAAS;AAAA,EAAA,GAC7B;AAAA,IAAEC,OAAOC,UAAUC;AAAAA,EAAAA,GACnB;AAAA,IAAEJ,MAAM;AAAA,IAAWC,SAAS;AAAA,EAAA,GAC5B;AAAA,IAAED,MAAM;AAAA,IAAYC,SAASE,UAAUC;AAAAA,EAAAA,GACvC;AAAA,IAAEJ,MAAM;AAAA,IAAYC,SAAS;AAAA,EAAA,CAAsB;AAAA,EAEvDI,OAAO,CACH;AAAA,IAAEC,KAAK;AAAA,IAAoBC,OAAO;AAAA,IAAWC,MAAM;AAAA,EAAA,GACnD;AAAA,IAAEF,KAAK;AAAA,IAAQG,MAAM;AAAA,IAAaF,OAAO;AAAA,IAASC,MAAM;AAAA,EAAA,GACxD;AAAA,IAAEF,KAAK;AAAA,IAAQG,MAAM;AAAA,IAAaF,OAAO;AAAA,IAASC,MAAM;AAAA,EAAA,GACxD;AAAA,IAAEF,KAAK;AAAA,IAAYE,MAAM;AAAA,EAAA,GACzB;AAAA,IAAEF,KAAK;AAAA,IAAQE,MAAM;AAAA,EAAA,CAAgB;AAE7C;AAEO,MAAME,aAAaC,MAAMC,OAAO;AAAA,EACnCC,SAASV,UAAUW;AAAAA;AACvB,CAAC;AAcM,MAAMC,iBAAiBA,CAACC,UAAuB;AAClD,QAAM;AAAA,IAAElB;AAAAA,EAAAA,IAASkB,MAAMC;AAEvB,QAAMC,YAAYpB,KAAKoB;AACvB,QAAMC,WAAW,CAAC,CAACrB,KAAKsB,OAAOC;AAC/B,QAAMC,aAAaxB,KAAKsB,OAAO,CAAC,GAAGG;AAEnC,SAAO;AAAA,IAAEL;AAAAA,IAAWC;AAAAA,IAAUG;AAAAA,EAAAA;AAClC;AAEO,MAAME,cAAcA,CAACC,QAAwB;AAChD,SAAOA,IACFC,WAAW,mBAAmB,OAAO,EACrCA,WAAW,WAAW,GAAG,EACzBA,WAAW,kBAAkB,EAAE,EAC/BC,cACAD,WAAW,OAAO,GAAG,EACrBA,WAAW,YAAY,EAAE;AAClC;"}
package/dist/client.js CHANGED
@@ -1,11 +1,11 @@
1
- import { t } from "./chunks/i18next-Dx0Bahhj.js";
2
- import { P, W, a } from "./chunks/utils-DtlCJSvY.js";
3
- import { u } from "./chunks/useTranslation-D7I_DXWv.js";
1
+ import { t } from "i18next";
2
+ import { useTranslation } from "react-i18next";
3
+ import { P, W, a } from "./chunks/utils-MD9YwOtu.js";
4
4
  export {
5
5
  P as Platform,
6
6
  W as WISTRON_PRIMARY_COLOR,
7
7
  a as WISTRON_SECONDARY_COLOR,
8
8
  t,
9
- u as useTranslation
9
+ useTranslation
10
10
  };
11
11
  //# sourceMappingURL=client.js.map