@columnus/shared 0.1.52 → 0.1.55

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 (51) hide show
  1. package/dist/apiProfile.js +1 -1
  2. package/dist/apiProfile.js.map +1 -1
  3. package/dist/betterAuthSession.d.ts +3 -1
  4. package/dist/betterAuthSession.js +10 -4
  5. package/dist/betterAuthSession.js.map +1 -1
  6. package/dist/bffProtocol.js +1 -1
  7. package/dist/bffProtocol.js.map +1 -1
  8. package/dist/ciPreviewEnv.js +19 -2
  9. package/dist/ciPreviewEnv.js.map +1 -1
  10. package/dist/clipboardTransfer.js +121 -148
  11. package/dist/clipboardTransfer.js.map +1 -1
  12. package/dist/csv.js +121 -148
  13. package/dist/csv.js.map +1 -1
  14. package/dist/displayLabel.js +1 -1
  15. package/dist/displayLabel.js.map +1 -1
  16. package/dist/importMatch.js +121 -148
  17. package/dist/importMatch.js.map +1 -1
  18. package/dist/index.js +162 -155
  19. package/dist/index.js.map +1 -1
  20. package/dist/previewDeployName.d.ts +5 -6
  21. package/dist/previewDeployName.js +31 -3
  22. package/dist/previewDeployName.js.map +1 -1
  23. package/dist/queryMerge.js +1 -1
  24. package/dist/queryMerge.js.map +1 -1
  25. package/dist/queryPlan.js +1 -1
  26. package/dist/queryPlan.js.map +1 -1
  27. package/dist/queryStudio.js +1 -1
  28. package/dist/queryStudio.js.map +1 -1
  29. package/dist/queryTypes.js +1 -1
  30. package/dist/queryTypes.js.map +1 -1
  31. package/dist/recordTableColumns.js +1 -1
  32. package/dist/recordTableColumns.js.map +1 -1
  33. package/dist/recordTablePreload.js +1 -1
  34. package/dist/recordTablePreload.js.map +1 -1
  35. package/dist/refDisplayRequests.js +121 -148
  36. package/dist/refDisplayRequests.js.map +1 -1
  37. package/dist/richDoc.js +1 -1
  38. package/dist/richDoc.js.map +1 -1
  39. package/dist/schemaTypes.js +1 -1
  40. package/dist/schemaTypes.js.map +1 -1
  41. package/dist/share.js +1 -1
  42. package/dist/share.js.map +1 -1
  43. package/dist/shareApiBridge.js +1 -1
  44. package/dist/shareApiBridge.js.map +1 -1
  45. package/dist/shareProposal.js +1 -1
  46. package/dist/shareProposal.js.map +1 -1
  47. package/dist/spaceBundle.js +1 -1
  48. package/dist/spaceBundle.js.map +1 -1
  49. package/dist/storageFieldValues.js +1 -1
  50. package/dist/storageFieldValues.js.map +1 -1
  51. package/package.json +2 -2
@@ -4,5 +4,7 @@ export type SignInViaEmailOtpOptions = {
4
4
  siteUrl: string;
5
5
  email: string;
6
6
  otp?: string;
7
+ /** Browser origin trusted by Better Auth, required for cross-origin server-side probes. */
8
+ origin?: string;
7
9
  };
8
- export declare function signInViaEmailOtp({ siteUrl, email, otp, }: SignInViaEmailOtpOptions): Promise<string>;
10
+ export declare function signInViaEmailOtp({ siteUrl, email, otp, origin, }: SignInViaEmailOtpOptions): Promise<string>;
@@ -13,15 +13,21 @@ function isJwtExpired(token, skewSec = 60) {
13
13
  return true;
14
14
  }
15
15
  }
16
+ function withOptionalOrigin(headers, origin) {
17
+ const normalized = origin?.trim();
18
+ return normalized ? { ...headers, origin: normalized } : headers;
19
+ }
16
20
  async function signInViaEmailOtp({
17
21
  siteUrl,
18
22
  email,
19
- otp = process.env.DEV_OTP_CODE?.trim() || "000000"
23
+ otp = process.env.DEV_OTP_CODE?.trim() || "000000",
24
+ origin
20
25
  }) {
21
26
  const base = siteUrl.replace(/\/$/, "");
27
+ const jsonHeaders = withOptionalOrigin({ "content-type": "application/json" }, origin);
22
28
  const sendRes = await fetch(`${base}/api/auth/email-otp/send-verification-otp`, {
23
29
  method: "POST",
24
- headers: { "content-type": "application/json" },
30
+ headers: jsonHeaders,
25
31
  body: JSON.stringify({ email, type: "sign-in" })
26
32
  });
27
33
  if (!sendRes.ok) {
@@ -29,7 +35,7 @@ async function signInViaEmailOtp({
29
35
  }
30
36
  const signInRes = await fetch(`${base}/api/auth/sign-in/email-otp`, {
31
37
  method: "POST",
32
- headers: { "content-type": "application/json" },
38
+ headers: jsonHeaders,
33
39
  body: JSON.stringify({ email, otp })
34
40
  });
35
41
  if (!signInRes.ok) {
@@ -40,7 +46,7 @@ async function signInViaEmailOtp({
40
46
  throw new Error("sign-in/email-otp response missing token");
41
47
  }
42
48
  const convexTokenRes = await fetch(`${base}/api/auth/convex/token`, {
43
- headers: { Authorization: `Bearer ${body.token}` }
49
+ headers: withOptionalOrigin({ Authorization: `Bearer ${body.token}` }, origin)
44
50
  });
45
51
  if (!convexTokenRes.ok) {
46
52
  throw new Error(`convex/token failed: ${convexTokenRes.status} ${await convexTokenRes.text()}`);
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/betterAuthSession.ts"],"names":[],"mappings":"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","file":"betterAuthSession.js","sourcesContent":["export function isConvexJwt(token: string): boolean {\n return token.split(\".\").length === 3;\n}\n\nexport function isJwtExpired(token: string, skewSec = 60): boolean {\n const parts = token.split(\".\");\n if (parts.length !== 3) return true;\n try {\n const payload = JSON.parse(Buffer.from(parts[1] ?? \"\", \"base64url\").toString(\"utf8\")) as {\n exp?: number;\n };\n if (typeof payload.exp !== \"number\") return true;\n return payload.exp <= Math.floor(Date.now() / 1000) + skewSec;\n } catch {\n return true;\n }\n}\n\nexport type SignInViaEmailOtpOptions = {\n siteUrl: string;\n email: string;\n otp?: string;\n};\n\nexport async function signInViaEmailOtp({\n siteUrl,\n email,\n otp = process.env.DEV_OTP_CODE?.trim() || \"000000\",\n}: SignInViaEmailOtpOptions): Promise<string> {\n const base = siteUrl.replace(/\\/$/, \"\");\n\n const sendRes = await fetch(`${base}/api/auth/email-otp/send-verification-otp`, {\n method: \"POST\",\n headers: { \"content-type\": \"application/json\" },\n body: JSON.stringify({ email, type: \"sign-in\" }),\n });\n if (!sendRes.ok) {\n throw new Error(`send-verification-otp failed: ${sendRes.status} ${await sendRes.text()}`);\n }\n\n const signInRes = await fetch(`${base}/api/auth/sign-in/email-otp`, {\n method: \"POST\",\n headers: { \"content-type\": \"application/json\" },\n body: JSON.stringify({ email, otp }),\n });\n if (!signInRes.ok) {\n throw new Error(`sign-in/email-otp failed: ${signInRes.status} ${await signInRes.text()}`);\n }\n\n const body = (await signInRes.json()) as { token?: string };\n if (!body.token) {\n throw new Error(\"sign-in/email-otp response missing token\");\n }\n\n const convexTokenRes = await fetch(`${base}/api/auth/convex/token`, {\n headers: { Authorization: `Bearer ${body.token}` },\n });\n if (!convexTokenRes.ok) {\n throw new Error(`convex/token failed: ${convexTokenRes.status} ${await convexTokenRes.text()}`);\n }\n const convexBody = (await convexTokenRes.json()) as { token?: string };\n if (!convexBody.token) {\n throw new Error(\"convex/token response missing token\");\n }\n return convexBody.token;\n}\n"]}
1
+ {"version":3,"sources":["../src/betterAuthSession.ts"],"names":[],"mappings":"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","file":"betterAuthSession.js","sourcesContent":["export function isConvexJwt(token: string): boolean {\n return token.split(\".\").length === 3;\n}\n\nexport function isJwtExpired(token: string, skewSec = 60): boolean {\n const parts = token.split(\".\");\n if (parts.length !== 3) return true;\n try {\n const payload = JSON.parse(Buffer.from(parts[1] ?? \"\", \"base64url\").toString(\"utf8\")) as {\n exp?: number;\n };\n if (typeof payload.exp !== \"number\") return true;\n return payload.exp <= Math.floor(Date.now() / 1000) + skewSec;\n } catch {\n return true;\n }\n}\n\nexport type SignInViaEmailOtpOptions = {\n siteUrl: string;\n email: string;\n otp?: string;\n /** Browser origin trusted by Better Auth, required for cross-origin server-side probes. */\n origin?: string;\n};\n\nfunction withOptionalOrigin(\n headers: Record<string, string>,\n origin: string | undefined,\n): Record<string, string> {\n const normalized = origin?.trim();\n return normalized ? { ...headers, origin: normalized } : headers;\n}\n\nexport async function signInViaEmailOtp({\n siteUrl,\n email,\n otp = process.env.DEV_OTP_CODE?.trim() || \"000000\",\n origin,\n}: SignInViaEmailOtpOptions): Promise<string> {\n const base = siteUrl.replace(/\\/$/, \"\");\n const jsonHeaders = withOptionalOrigin({ \"content-type\": \"application/json\" }, origin);\n\n const sendRes = await fetch(`${base}/api/auth/email-otp/send-verification-otp`, {\n method: \"POST\",\n headers: jsonHeaders,\n body: JSON.stringify({ email, type: \"sign-in\" }),\n });\n if (!sendRes.ok) {\n throw new Error(`send-verification-otp failed: ${sendRes.status} ${await sendRes.text()}`);\n }\n\n const signInRes = await fetch(`${base}/api/auth/sign-in/email-otp`, {\n method: \"POST\",\n headers: jsonHeaders,\n body: JSON.stringify({ email, otp }),\n });\n if (!signInRes.ok) {\n throw new Error(`sign-in/email-otp failed: ${signInRes.status} ${await signInRes.text()}`);\n }\n\n const body = (await signInRes.json()) as { token?: string };\n if (!body.token) {\n throw new Error(\"sign-in/email-otp response missing token\");\n }\n\n const convexTokenRes = await fetch(`${base}/api/auth/convex/token`, {\n headers: withOptionalOrigin({ Authorization: `Bearer ${body.token}` }, origin),\n });\n if (!convexTokenRes.ok) {\n throw new Error(`convex/token failed: ${convexTokenRes.status} ${await convexTokenRes.text()}`);\n }\n const convexBody = (await convexTokenRes.json()) as { token?: string };\n if (!convexBody.token) {\n throw new Error(\"convex/token response missing token\");\n }\n return convexBody.token;\n}\n"]}
@@ -3831,7 +3831,7 @@ ZodNaN.create = (params) => {
3831
3831
  ...processCreateParams(params)
3832
3832
  });
3833
3833
  };
3834
- var BRAND = Symbol("zod_brand");
3834
+ var BRAND = /* @__PURE__ */ Symbol("zod_brand");
3835
3835
  var ZodBranded = class extends ZodType {
3836
3836
  _parse(input) {
3837
3837
  const { ctx } = this._processInputParams(input);