@columnus/shared 0.1.47

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 (206) hide show
  1. package/LICENSE +21 -0
  2. package/dist/apiProfile.d.ts +1072 -0
  3. package/dist/apiProfile.js +4210 -0
  4. package/dist/apiProfile.js.map +1 -0
  5. package/dist/apiProfileSlug.d.ts +11 -0
  6. package/dist/apiProfileSlug.js +39 -0
  7. package/dist/apiProfileSlug.js.map +1 -0
  8. package/dist/apiToken.d.ts +6 -0
  9. package/dist/apiToken.js +35 -0
  10. package/dist/apiToken.js.map +1 -0
  11. package/dist/betterAuthSession.d.ts +8 -0
  12. package/dist/betterAuthSession.js +57 -0
  13. package/dist/betterAuthSession.js.map +1 -0
  14. package/dist/bffHost.d.ts +36 -0
  15. package/dist/bffHost.js +74 -0
  16. package/dist/bffHost.js.map +1 -0
  17. package/dist/bffProtocol.d.ts +1357 -0
  18. package/dist/bffProtocol.js +4362 -0
  19. package/dist/bffProtocol.js.map +1 -0
  20. package/dist/bffRedact.d.ts +30 -0
  21. package/dist/bffRedact.js +55 -0
  22. package/dist/bffRedact.js.map +1 -0
  23. package/dist/ciPreviewEnv.d.ts +49 -0
  24. package/dist/ciPreviewEnv.js +143 -0
  25. package/dist/ciPreviewEnv.js.map +1 -0
  26. package/dist/clipboardTransfer.d.ts +25 -0
  27. package/dist/clipboardTransfer.js +4862 -0
  28. package/dist/clipboardTransfer.js.map +1 -0
  29. package/dist/convexSiteUrl.d.ts +73 -0
  30. package/dist/convexSiteUrl.js +137 -0
  31. package/dist/convexSiteUrl.js.map +1 -0
  32. package/dist/csv.d.ts +54 -0
  33. package/dist/csv.js +5499 -0
  34. package/dist/csv.js.map +1 -0
  35. package/dist/dataTransfer.d.ts +21 -0
  36. package/dist/dataTransfer.js +74 -0
  37. package/dist/dataTransfer.js.map +1 -0
  38. package/dist/dateValues.d.ts +18 -0
  39. package/dist/dateValues.js +73 -0
  40. package/dist/dateValues.js.map +1 -0
  41. package/dist/deployOutput.d.ts +3 -0
  42. package/dist/deployOutput.js +23 -0
  43. package/dist/deployOutput.js.map +1 -0
  44. package/dist/displayLabel.d.ts +13 -0
  45. package/dist/displayLabel.js +4342 -0
  46. package/dist/displayLabel.js.map +1 -0
  47. package/dist/displayTemplateGenerator.d.ts +11 -0
  48. package/dist/displayTemplateGenerator.js +98 -0
  49. package/dist/displayTemplateGenerator.js.map +1 -0
  50. package/dist/displayTypes.d.ts +10 -0
  51. package/dist/displayTypes.js +3 -0
  52. package/dist/displayTypes.js.map +1 -0
  53. package/dist/dotenv.d.ts +8 -0
  54. package/dist/dotenv.js +61 -0
  55. package/dist/dotenv.js.map +1 -0
  56. package/dist/erdLayout.d.ts +27 -0
  57. package/dist/erdLayout.js +78 -0
  58. package/dist/erdLayout.js.map +1 -0
  59. package/dist/fieldTypeFormat.d.ts +5 -0
  60. package/dist/fieldTypeFormat.js +63 -0
  61. package/dist/fieldTypeFormat.js.map +1 -0
  62. package/dist/fieldTypeMeta.d.ts +50 -0
  63. package/dist/fieldTypeMeta.js +84 -0
  64. package/dist/fieldTypeMeta.js.map +1 -0
  65. package/dist/fieldValueEqual.d.ts +4 -0
  66. package/dist/fieldValueEqual.js +58 -0
  67. package/dist/fieldValueEqual.js.map +1 -0
  68. package/dist/importMatch.d.ts +80 -0
  69. package/dist/importMatch.js +5643 -0
  70. package/dist/importMatch.js.map +1 -0
  71. package/dist/index.d.ts +58 -0
  72. package/dist/index.js +10647 -0
  73. package/dist/index.js.map +1 -0
  74. package/dist/inferIdentifier.d.ts +18 -0
  75. package/dist/inferIdentifier.js +49 -0
  76. package/dist/inferIdentifier.js.map +1 -0
  77. package/dist/keyboard.d.ts +16 -0
  78. package/dist/keyboard.js +71 -0
  79. package/dist/keyboard.js.map +1 -0
  80. package/dist/manifestDeploy.d.ts +27 -0
  81. package/dist/manifestDeploy.js +16 -0
  82. package/dist/manifestDeploy.js.map +1 -0
  83. package/dist/manifestHash.d.ts +11 -0
  84. package/dist/manifestHash.js +35 -0
  85. package/dist/manifestHash.js.map +1 -0
  86. package/dist/previewDeployName.d.ts +26 -0
  87. package/dist/previewDeployName.js +77 -0
  88. package/dist/previewDeployName.js.map +1 -0
  89. package/dist/proposePolicy.d.ts +17 -0
  90. package/dist/proposePolicy.js +33 -0
  91. package/dist/proposePolicy.js.map +1 -0
  92. package/dist/queryBetween.d.ts +20 -0
  93. package/dist/queryBetween.js +28 -0
  94. package/dist/queryBetween.js.map +1 -0
  95. package/dist/queryExecution.d.ts +5 -0
  96. package/dist/queryExecution.js +58 -0
  97. package/dist/queryExecution.js.map +1 -0
  98. package/dist/queryFieldOps.d.ts +66 -0
  99. package/dist/queryFieldOps.js +138 -0
  100. package/dist/queryFieldOps.js.map +1 -0
  101. package/dist/queryMerge.d.ts +29 -0
  102. package/dist/queryMerge.js +4277 -0
  103. package/dist/queryMerge.js.map +1 -0
  104. package/dist/queryPlan.d.ts +97 -0
  105. package/dist/queryPlan.js +4564 -0
  106. package/dist/queryPlan.js.map +1 -0
  107. package/dist/queryStudio.d.ts +25 -0
  108. package/dist/queryStudio.js +4658 -0
  109. package/dist/queryStudio.js.map +1 -0
  110. package/dist/queryTypes.d.ts +402 -0
  111. package/dist/queryTypes.js +4239 -0
  112. package/dist/queryTypes.js.map +1 -0
  113. package/dist/queryValidators.d.ts +99 -0
  114. package/dist/queryValidators.js +76 -0
  115. package/dist/queryValidators.js.map +1 -0
  116. package/dist/readApiQuery.d.ts +10 -0
  117. package/dist/readApiQuery.js +24 -0
  118. package/dist/readApiQuery.js.map +1 -0
  119. package/dist/recordTableColumns.d.ts +21 -0
  120. package/dist/recordTableColumns.js +4469 -0
  121. package/dist/recordTableColumns.js.map +1 -0
  122. package/dist/refDisplayRequests.d.ts +17 -0
  123. package/dist/refDisplayRequests.js +4877 -0
  124. package/dist/refDisplayRequests.js.map +1 -0
  125. package/dist/refGraph.d.ts +23 -0
  126. package/dist/refGraph.js +102 -0
  127. package/dist/refGraph.js.map +1 -0
  128. package/dist/refsRecompute.d.ts +8 -0
  129. package/dist/refsRecompute.js +12 -0
  130. package/dist/refsRecompute.js.map +1 -0
  131. package/dist/richDoc.d.ts +67 -0
  132. package/dist/richDoc.js +4408 -0
  133. package/dist/richDoc.js.map +1 -0
  134. package/dist/schemaGenerator.d.ts +31 -0
  135. package/dist/schemaGenerator.js +198 -0
  136. package/dist/schemaGenerator.js.map +1 -0
  137. package/dist/schemaShrink.d.ts +74 -0
  138. package/dist/schemaShrink.js +132 -0
  139. package/dist/schemaShrink.js.map +1 -0
  140. package/dist/schemaShrinkValidators.d.ts +72 -0
  141. package/dist/schemaShrinkValidators.js +31 -0
  142. package/dist/schemaShrinkValidators.js.map +1 -0
  143. package/dist/schemaTypes.d.ts +454 -0
  144. package/dist/schemaTypes.js +4557 -0
  145. package/dist/schemaTypes.js.map +1 -0
  146. package/dist/share.d.ts +8 -0
  147. package/dist/share.js +4755 -0
  148. package/dist/share.js.map +1 -0
  149. package/dist/shareApiBridge.d.ts +18 -0
  150. package/dist/shareApiBridge.js +4283 -0
  151. package/dist/shareApiBridge.js.map +1 -0
  152. package/dist/shareGuestPolicy.d.ts +14 -0
  153. package/dist/shareGuestPolicy.js +90 -0
  154. package/dist/shareGuestPolicy.js.map +1 -0
  155. package/dist/shareProposal.d.ts +113 -0
  156. package/dist/shareProposal.js +4810 -0
  157. package/dist/shareProposal.js.map +1 -0
  158. package/dist/shareProposalDiff.d.ts +13 -0
  159. package/dist/shareProposalDiff.js +91 -0
  160. package/dist/shareProposalDiff.js.map +1 -0
  161. package/dist/shareScopes.d.ts +14 -0
  162. package/dist/shareScopes.js +223 -0
  163. package/dist/shareScopes.js.map +1 -0
  164. package/dist/shareTokenCrypto.d.ts +9 -0
  165. package/dist/shareTokenCrypto.js +87 -0
  166. package/dist/shareTokenCrypto.js.map +1 -0
  167. package/dist/shareTokens.d.ts +6 -0
  168. package/dist/shareTokens.js +26 -0
  169. package/dist/shareTokens.js.map +1 -0
  170. package/dist/shareTypes.d.ts +107 -0
  171. package/dist/shareTypes.js +3 -0
  172. package/dist/shareTypes.js.map +1 -0
  173. package/dist/shareValidators.d.ts +168 -0
  174. package/dist/shareValidators.js +124 -0
  175. package/dist/shareValidators.js.map +1 -0
  176. package/dist/shareWizard.d.ts +14 -0
  177. package/dist/shareWizard.js +200 -0
  178. package/dist/shareWizard.js.map +1 -0
  179. package/dist/spaceBundle.d.ts +67 -0
  180. package/dist/spaceBundle.js +4664 -0
  181. package/dist/spaceBundle.js.map +1 -0
  182. package/dist/storageFieldValues.d.ts +10 -0
  183. package/dist/storageFieldValues.js +4421 -0
  184. package/dist/storageFieldValues.js.map +1 -0
  185. package/dist/studioBoot.d.ts +49 -0
  186. package/dist/studioBoot.js +167 -0
  187. package/dist/studioBoot.js.map +1 -0
  188. package/dist/syncClampMembership.d.ts +22 -0
  189. package/dist/syncClampMembership.js +74 -0
  190. package/dist/syncClampMembership.js.map +1 -0
  191. package/dist/tenantHosts.d.ts +30 -0
  192. package/dist/tenantHosts.js +60 -0
  193. package/dist/tenantHosts.js.map +1 -0
  194. package/dist/tenantSecretsCrypto.d.ts +31 -0
  195. package/dist/tenantSecretsCrypto.js +145 -0
  196. package/dist/tenantSecretsCrypto.js.map +1 -0
  197. package/dist/useDebouncedCommit.d.ts +11 -0
  198. package/dist/useDebouncedCommit.js +34 -0
  199. package/dist/useDebouncedCommit.js.map +1 -0
  200. package/dist/useDebouncedValue.d.ts +1 -0
  201. package/dist/useDebouncedValue.js +15 -0
  202. package/dist/useDebouncedValue.js.map +1 -0
  203. package/dist/useModifierHeld.d.ts +2 -0
  204. package/dist/useModifierHeld.js +28 -0
  205. package/dist/useModifierHeld.js.map +1 -0
  206. package/package.json +36 -0
@@ -0,0 +1,73 @@
1
+ /** Convex deployment cloud URL (.convex.cloud) → HTTP actions / auth issuer (.convex.site). */
2
+ export declare function convexCloudToSiteUrl(convexUrl: string): string;
3
+ export declare function convexSiteToCloudUrl(siteUrl: string): string;
4
+ type ProcessEnvLike = Record<string, string | undefined>;
5
+ /** Docker runtime-base verify placeholder — must not be used for real BFF prepare. */
6
+ export declare function isPlaceholderManagementSiteUrl(url: string): boolean;
7
+ /**
8
+ * Management `.convex.site` origin for BFF `prepare`.
9
+ * Prefers explicit management site env vars, else derives from `VITE_MANAGEMENT_CONVEX_URL`.
10
+ * Does not read `VITE_CONVEX_SITE_URL` — on web that is the tenant site, not Manage.
11
+ */
12
+ export declare function resolveBffManagementSiteUrl(env?: ProcessEnvLike): string | undefined;
13
+ /**
14
+ * Runtime BFF management site: prefer image-baked URL over Coolify env.
15
+ * Preview Coolify often injects prod `MANAGEMENT_CONVEX_SITE_URL`, which shadows the
16
+ * ephemeral Manage preview bake and makes prepare return HTTP 404 (no routes on prod).
17
+ */
18
+ export declare function resolveRuntimeManagementSiteUrl(options: {
19
+ bakedSiteUrl?: string | null;
20
+ env?: ProcessEnvLike;
21
+ }): string | undefined;
22
+ /** Deployment name from a Convex cloud/site URL (`https://{name}.convex.cloud`). */
23
+ export declare function convexDeploymentSlugFromUrl(url: string): string | undefined;
24
+ /**
25
+ * Best-effort `CONVEX_DEPLOYMENT` when only the cloud URL is known (e.g. after `columnus-api pull`).
26
+ * Defaults to `dev:{slug}` — preview/prod deployments may need an explicit value in `.env.local`.
27
+ */
28
+ export declare function deriveConvexDeploymentFromCloudUrl(cloudUrl: string): string | undefined;
29
+ export type ConvexSiteUrlEnv = {
30
+ /** CONVEX_SITE_URL */
31
+ convexSiteUrl?: string;
32
+ /** VITE_CONVEX_SITE_URL */
33
+ viteConvexSiteUrl?: string;
34
+ /** CONVEX_URL */
35
+ convexUrl?: string;
36
+ /** VITE_CONVEX_URL */
37
+ viteConvexUrl?: string;
38
+ /** CONVEX_CLOUD_URL */
39
+ convexCloudUrl?: string;
40
+ };
41
+ /** @deprecated Use `ConvexSiteUrlEnv` */
42
+ export type ResolveConvexSiteUrlOptions = ConvexSiteUrlEnv;
43
+ export declare function readConvexSiteUrlEnv(env: ProcessEnvLike): ConvexSiteUrlEnv;
44
+ /**
45
+ * Resolve .convex.site URL from env: explicit site URLs first, then derive from Convex cloud/site URLs.
46
+ * Returns empty string when nothing is configured.
47
+ */
48
+ export declare function resolveConvexSiteUrlFromEnv(env: ConvexSiteUrlEnv): string;
49
+ /** Better Auth `baseURL` from standard Convex process env. */
50
+ export declare function convexSiteUrlFromProcessEnv(env?: ProcessEnvLike): string;
51
+ /** Resolve .convex.site URL for OTP sign-in and scripts (throws when unset). */
52
+ export declare function resolveConvexSiteUrl(env?: ConvexSiteUrlEnv): string;
53
+ export type AuthConfigIssuerEnv = ConvexSiteUrlEnv & {
54
+ /** BAKED_AUTH_ISSUER patched at deploy time */
55
+ bakedAuthIssuer?: string;
56
+ };
57
+ /**
58
+ * Auth issuer for deploy scripts: baked deploy patch → convex site URL env chain.
59
+ */
60
+ export declare function resolveAuthConfigIssuerFromEnv(env: AuthConfigIssuerEnv): string;
61
+ export type AuthConfigIssuerFromProcessEnvOptions = {
62
+ bakedAuthIssuer?: string;
63
+ /** Derive from CONVEX_URL / VITE_CONVEX_URL when issuer env vars are unset (deploy scripts). */
64
+ deriveFromCloudUrl?: boolean;
65
+ };
66
+ /** JWT issuer from process env (auth.config.ts bundle vs deploy scripts). */
67
+ export declare function authConfigIssuerFromProcessEnv(env?: ProcessEnvLike, options?: AuthConfigIssuerFromProcessEnvOptions): string;
68
+ /** Comma-separated browser origins (SITE_URL) for Better Auth trustedOrigins / crossDomain. */
69
+ export declare function parseTrustedSiteUrls(siteUrlRaw?: string): string[];
70
+ export declare function primaryTrustedSiteUrl(siteUrlRaw?: string): string;
71
+ /** Better Auth `trustedOrigins` from SITE_URL. */
72
+ export declare function betterAuthTrustedOrigins(siteUrlRaw?: string): string[];
73
+ export {};
@@ -0,0 +1,137 @@
1
+ // packages/@columnus/shared/src/convexSiteUrl.ts
2
+ function convexCloudToSiteUrl(convexUrl) {
3
+ const trimmed = convexUrl.trim().replace(/\/$/, "");
4
+ if (trimmed.includes(".convex.site")) return trimmed;
5
+ if (trimmed.includes(".convex.cloud")) {
6
+ return trimmed.replace(/\.convex\.cloud\b/, ".convex.site");
7
+ }
8
+ return trimmed;
9
+ }
10
+ function convexSiteToCloudUrl(siteUrl) {
11
+ const trimmed = siteUrl.trim().replace(/\/$/, "");
12
+ if (trimmed.includes(".convex.cloud")) return trimmed;
13
+ if (trimmed.includes(".convex.site")) {
14
+ return trimmed.replace(/\.convex\.site\b/, ".convex.cloud");
15
+ }
16
+ return trimmed;
17
+ }
18
+ function trimOptional(value) {
19
+ const trimmed = value?.trim();
20
+ return trimmed || void 0;
21
+ }
22
+ function normalizeTrailingSlash(url) {
23
+ return url.trim().replace(/\/$/, "");
24
+ }
25
+ function deriveSiteFromCloudUrl(cloud) {
26
+ const trimmed = cloud?.trim();
27
+ if (!trimmed) return void 0;
28
+ if (trimmed.includes(".convex.cloud") || trimmed.includes(".convex.site")) {
29
+ return convexCloudToSiteUrl(trimmed);
30
+ }
31
+ return void 0;
32
+ }
33
+ function isPlaceholderManagementSiteUrl(url) {
34
+ try {
35
+ const host = new URL(/:\/\//.test(url) ? url : `https://${url}`).hostname;
36
+ return host === "placeholder.convex.site" || host.endsWith(".placeholder.convex.site");
37
+ } catch {
38
+ return /placeholder\.convex\.site/i.test(url);
39
+ }
40
+ }
41
+ function resolveBffManagementSiteUrl(env = process.env) {
42
+ for (const key of ["COLUMNUS_MANAGEMENT_SITE_URL", "MANAGEMENT_CONVEX_SITE_URL"]) {
43
+ const value = trimOptional(env[key]);
44
+ if (value && !isPlaceholderManagementSiteUrl(value)) {
45
+ return normalizeTrailingSlash(value);
46
+ }
47
+ }
48
+ const managementCloud = trimOptional(env.VITE_MANAGEMENT_CONVEX_URL);
49
+ if (managementCloud) return convexCloudToSiteUrl(managementCloud);
50
+ return void 0;
51
+ }
52
+ function resolveRuntimeManagementSiteUrl(options) {
53
+ const bakedSite = trimOptional(options.bakedSiteUrl ?? void 0);
54
+ if (bakedSite && !isPlaceholderManagementSiteUrl(bakedSite)) {
55
+ return normalizeTrailingSlash(bakedSite);
56
+ }
57
+ return resolveBffManagementSiteUrl(options.env ?? process.env);
58
+ }
59
+ function convexDeploymentSlug(url) {
60
+ const match = url.match(/https:\/\/([^.]+)\.convex\.(?:cloud|site)/);
61
+ return match?.[1];
62
+ }
63
+ function convexDeploymentSlugFromUrl(url) {
64
+ return convexDeploymentSlug(url);
65
+ }
66
+ function deriveConvexDeploymentFromCloudUrl(cloudUrl) {
67
+ const slug = convexDeploymentSlug(cloudUrl);
68
+ return slug ? `dev:${slug}` : void 0;
69
+ }
70
+ function explicitSiteMatchesCloud(explicit, cloud) {
71
+ const explicitSlug = convexDeploymentSlug(explicit);
72
+ const cloudSlug = convexDeploymentSlug(cloud);
73
+ if (!explicitSlug || !cloudSlug) return true;
74
+ return explicitSlug === cloudSlug;
75
+ }
76
+ function readConvexSiteUrlEnv(env) {
77
+ return {
78
+ convexSiteUrl: env.CONVEX_SITE_URL,
79
+ viteConvexSiteUrl: env.VITE_CONVEX_SITE_URL,
80
+ convexUrl: env.CONVEX_URL,
81
+ viteConvexUrl: env.VITE_CONVEX_URL,
82
+ convexCloudUrl: env.CONVEX_CLOUD_URL
83
+ };
84
+ }
85
+ function resolveConvexSiteUrlFromEnv(env) {
86
+ const explicit = trimOptional(env.convexSiteUrl) ?? trimOptional(env.viteConvexSiteUrl);
87
+ const cloud = trimOptional(env.convexUrl) ?? trimOptional(env.viteConvexUrl) ?? trimOptional(env.convexCloudUrl);
88
+ if (explicit && cloud && !explicitSiteMatchesCloud(explicit, cloud)) {
89
+ return deriveSiteFromCloudUrl(cloud) ?? normalizeTrailingSlash(explicit);
90
+ }
91
+ if (explicit) return normalizeTrailingSlash(explicit);
92
+ return deriveSiteFromCloudUrl(cloud) ?? "";
93
+ }
94
+ function convexSiteUrlFromProcessEnv(env = process.env) {
95
+ return resolveConvexSiteUrlFromEnv(readConvexSiteUrlEnv(env));
96
+ }
97
+ function resolveConvexSiteUrl(env) {
98
+ const url = resolveConvexSiteUrlFromEnv(env ?? {});
99
+ if (!url) {
100
+ throw new Error("Convex URL required to derive .convex.site URL for OTP sign-in");
101
+ }
102
+ return url;
103
+ }
104
+ function resolveAuthConfigIssuerFromEnv(env) {
105
+ const baked = trimOptional(env.bakedAuthIssuer);
106
+ if (baked) return normalizeTrailingSlash(baked);
107
+ return resolveConvexSiteUrlFromEnv(env);
108
+ }
109
+ function authConfigIssuerFromProcessEnv(env = process.env, options = {}) {
110
+ return resolveAuthConfigIssuerFromEnv({
111
+ bakedAuthIssuer: options.bakedAuthIssuer,
112
+ convexSiteUrl: env.CONVEX_SITE_URL,
113
+ ...options.deriveFromCloudUrl ? {
114
+ convexUrl: env.CONVEX_URL,
115
+ viteConvexUrl: env.VITE_CONVEX_URL
116
+ } : {}
117
+ });
118
+ }
119
+ function parseTrustedSiteUrls(siteUrlRaw) {
120
+ const raw = siteUrlRaw?.trim() ?? "";
121
+ if (!raw) return [];
122
+ return raw.split(",").map((url) => url.trim()).filter(Boolean);
123
+ }
124
+ function primaryTrustedSiteUrl(siteUrlRaw) {
125
+ const urls = parseTrustedSiteUrls(siteUrlRaw);
126
+ return urls[0] ?? siteUrlRaw?.trim() ?? "";
127
+ }
128
+ function betterAuthTrustedOrigins(siteUrlRaw) {
129
+ const urls = parseTrustedSiteUrls(siteUrlRaw);
130
+ if (urls.length > 0) return urls;
131
+ const primary = primaryTrustedSiteUrl(siteUrlRaw);
132
+ return primary ? [primary] : [];
133
+ }
134
+
135
+ export { authConfigIssuerFromProcessEnv, betterAuthTrustedOrigins, convexCloudToSiteUrl, convexDeploymentSlugFromUrl, convexSiteToCloudUrl, convexSiteUrlFromProcessEnv, deriveConvexDeploymentFromCloudUrl, isPlaceholderManagementSiteUrl, parseTrustedSiteUrls, primaryTrustedSiteUrl, readConvexSiteUrlEnv, resolveAuthConfigIssuerFromEnv, resolveBffManagementSiteUrl, resolveConvexSiteUrl, resolveConvexSiteUrlFromEnv, resolveRuntimeManagementSiteUrl };
136
+ //# sourceMappingURL=convexSiteUrl.js.map
137
+ //# sourceMappingURL=convexSiteUrl.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/convexSiteUrl.ts"],"names":[],"mappings":"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","file":"convexSiteUrl.js","sourcesContent":["/** Convex deployment cloud URL (.convex.cloud) → HTTP actions / auth issuer (.convex.site). */\nexport function convexCloudToSiteUrl(convexUrl: string): string {\n const trimmed = convexUrl.trim().replace(/\\/$/, \"\");\n if (trimmed.includes(\".convex.site\")) return trimmed;\n if (trimmed.includes(\".convex.cloud\")) {\n return trimmed.replace(/\\.convex\\.cloud\\b/, \".convex.site\");\n }\n return trimmed;\n}\n\nexport function convexSiteToCloudUrl(siteUrl: string): string {\n const trimmed = siteUrl.trim().replace(/\\/$/, \"\");\n if (trimmed.includes(\".convex.cloud\")) return trimmed;\n if (trimmed.includes(\".convex.site\")) {\n return trimmed.replace(/\\.convex\\.site\\b/, \".convex.cloud\");\n }\n return trimmed;\n}\n\ntype ProcessEnvLike = Record<string, string | undefined>;\n\nfunction trimOptional(value?: string): string | undefined {\n const trimmed = value?.trim();\n return trimmed || undefined;\n}\n\nfunction normalizeTrailingSlash(url: string): string {\n return url.trim().replace(/\\/$/, \"\");\n}\n\nfunction deriveSiteFromCloudUrl(cloud?: string): string | undefined {\n const trimmed = cloud?.trim();\n if (!trimmed) return undefined;\n if (trimmed.includes(\".convex.cloud\") || trimmed.includes(\".convex.site\")) {\n return convexCloudToSiteUrl(trimmed);\n }\n return undefined;\n}\n\n/** Docker runtime-base verify placeholder — must not be used for real BFF prepare. */\nexport function isPlaceholderManagementSiteUrl(url: string): boolean {\n try {\n const host = new URL(/:\\/\\//.test(url) ? url : `https://${url}`).hostname;\n return host === \"placeholder.convex.site\" || host.endsWith(\".placeholder.convex.site\");\n } catch {\n return /placeholder\\.convex\\.site/i.test(url);\n }\n}\n\n/**\n * Management `.convex.site` origin for BFF `prepare`.\n * Prefers explicit management site env vars, else derives from `VITE_MANAGEMENT_CONVEX_URL`.\n * Does not read `VITE_CONVEX_SITE_URL` — on web that is the tenant site, not Manage.\n */\nexport function resolveBffManagementSiteUrl(env: ProcessEnvLike = process.env): string | undefined {\n for (const key of [\"COLUMNUS_MANAGEMENT_SITE_URL\", \"MANAGEMENT_CONVEX_SITE_URL\"] as const) {\n const value = trimOptional(env[key]);\n if (value && !isPlaceholderManagementSiteUrl(value)) {\n return normalizeTrailingSlash(value);\n }\n }\n const managementCloud = trimOptional(env.VITE_MANAGEMENT_CONVEX_URL);\n if (managementCloud) return convexCloudToSiteUrl(managementCloud);\n return undefined;\n}\n\n/**\n * Runtime BFF management site: prefer image-baked URL over Coolify env.\n * Preview Coolify often injects prod `MANAGEMENT_CONVEX_SITE_URL`, which shadows the\n * ephemeral Manage preview bake and makes prepare return HTTP 404 (no routes on prod).\n */\nexport function resolveRuntimeManagementSiteUrl(options: {\n bakedSiteUrl?: string | null;\n env?: ProcessEnvLike;\n}): string | undefined {\n const bakedSite = trimOptional(options.bakedSiteUrl ?? undefined);\n if (bakedSite && !isPlaceholderManagementSiteUrl(bakedSite)) {\n return normalizeTrailingSlash(bakedSite);\n }\n return resolveBffManagementSiteUrl(options.env ?? process.env);\n}\n\nfunction convexDeploymentSlug(url: string): string | undefined {\n const match = url.match(/https:\\/\\/([^.]+)\\.convex\\.(?:cloud|site)/);\n return match?.[1];\n}\n\n/** Deployment name from a Convex cloud/site URL (`https://{name}.convex.cloud`). */\nexport function convexDeploymentSlugFromUrl(url: string): string | undefined {\n return convexDeploymentSlug(url);\n}\n\n/**\n * Best-effort `CONVEX_DEPLOYMENT` when only the cloud URL is known (e.g. after `columnus-api pull`).\n * Defaults to `dev:{slug}` — preview/prod deployments may need an explicit value in `.env.local`.\n */\nexport function deriveConvexDeploymentFromCloudUrl(cloudUrl: string): string | undefined {\n const slug = convexDeploymentSlug(cloudUrl);\n return slug ? `dev:${slug}` : undefined;\n}\n\nfunction explicitSiteMatchesCloud(explicit: string, cloud: string): boolean {\n const explicitSlug = convexDeploymentSlug(explicit);\n const cloudSlug = convexDeploymentSlug(cloud);\n if (!explicitSlug || !cloudSlug) return true;\n return explicitSlug === cloudSlug;\n}\n\nexport type ConvexSiteUrlEnv = {\n /** CONVEX_SITE_URL */\n convexSiteUrl?: string;\n /** VITE_CONVEX_SITE_URL */\n viteConvexSiteUrl?: string;\n /** CONVEX_URL */\n convexUrl?: string;\n /** VITE_CONVEX_URL */\n viteConvexUrl?: string;\n /** CONVEX_CLOUD_URL */\n convexCloudUrl?: string;\n};\n\n/** @deprecated Use `ConvexSiteUrlEnv` */\nexport type ResolveConvexSiteUrlOptions = ConvexSiteUrlEnv;\n\nexport function readConvexSiteUrlEnv(env: ProcessEnvLike): ConvexSiteUrlEnv {\n return {\n convexSiteUrl: env.CONVEX_SITE_URL,\n viteConvexSiteUrl: env.VITE_CONVEX_SITE_URL,\n convexUrl: env.CONVEX_URL,\n viteConvexUrl: env.VITE_CONVEX_URL,\n convexCloudUrl: env.CONVEX_CLOUD_URL,\n };\n}\n\n/**\n * Resolve .convex.site URL from env: explicit site URLs first, then derive from Convex cloud/site URLs.\n * Returns empty string when nothing is configured.\n */\nexport function resolveConvexSiteUrlFromEnv(env: ConvexSiteUrlEnv): string {\n const explicit = trimOptional(env.convexSiteUrl) ?? trimOptional(env.viteConvexSiteUrl);\n const cloud =\n trimOptional(env.convexUrl) ??\n trimOptional(env.viteConvexUrl) ??\n trimOptional(env.convexCloudUrl);\n\n if (explicit && cloud && !explicitSiteMatchesCloud(explicit, cloud)) {\n return deriveSiteFromCloudUrl(cloud) ?? normalizeTrailingSlash(explicit);\n }\n\n if (explicit) return normalizeTrailingSlash(explicit);\n\n return deriveSiteFromCloudUrl(cloud) ?? \"\";\n}\n\n/** Better Auth `baseURL` from standard Convex process env. */\nexport function convexSiteUrlFromProcessEnv(env: ProcessEnvLike = process.env): string {\n return resolveConvexSiteUrlFromEnv(readConvexSiteUrlEnv(env));\n}\n\n/** Resolve .convex.site URL for OTP sign-in and scripts (throws when unset). */\nexport function resolveConvexSiteUrl(env?: ConvexSiteUrlEnv): string {\n const url = resolveConvexSiteUrlFromEnv(env ?? {});\n if (!url) {\n throw new Error(\"Convex URL required to derive .convex.site URL for OTP sign-in\");\n }\n return url;\n}\n\nexport type AuthConfigIssuerEnv = ConvexSiteUrlEnv & {\n /** BAKED_AUTH_ISSUER patched at deploy time */\n bakedAuthIssuer?: string;\n};\n\n/**\n * Auth issuer for deploy scripts: baked deploy patch → convex site URL env chain.\n */\nexport function resolveAuthConfigIssuerFromEnv(env: AuthConfigIssuerEnv): string {\n const baked = trimOptional(env.bakedAuthIssuer);\n if (baked) return normalizeTrailingSlash(baked);\n\n return resolveConvexSiteUrlFromEnv(env);\n}\n\nexport type AuthConfigIssuerFromProcessEnvOptions = {\n bakedAuthIssuer?: string;\n /** Derive from CONVEX_URL / VITE_CONVEX_URL when issuer env vars are unset (deploy scripts). */\n deriveFromCloudUrl?: boolean;\n};\n\n/** JWT issuer from process env (auth.config.ts bundle vs deploy scripts). */\nexport function authConfigIssuerFromProcessEnv(\n env: ProcessEnvLike = process.env,\n options: AuthConfigIssuerFromProcessEnvOptions = {},\n): string {\n return resolveAuthConfigIssuerFromEnv({\n bakedAuthIssuer: options.bakedAuthIssuer,\n convexSiteUrl: env.CONVEX_SITE_URL,\n ...(options.deriveFromCloudUrl\n ? {\n convexUrl: env.CONVEX_URL,\n viteConvexUrl: env.VITE_CONVEX_URL,\n }\n : {}),\n });\n}\n\n/** Comma-separated browser origins (SITE_URL) for Better Auth trustedOrigins / crossDomain. */\nexport function parseTrustedSiteUrls(siteUrlRaw?: string): string[] {\n const raw = siteUrlRaw?.trim() ?? \"\";\n if (!raw) return [];\n return raw\n .split(\",\")\n .map((url) => url.trim())\n .filter(Boolean);\n}\n\nexport function primaryTrustedSiteUrl(siteUrlRaw?: string): string {\n const urls = parseTrustedSiteUrls(siteUrlRaw);\n return urls[0] ?? siteUrlRaw?.trim() ?? \"\";\n}\n\n/** Better Auth `trustedOrigins` from SITE_URL. */\nexport function betterAuthTrustedOrigins(siteUrlRaw?: string): string[] {\n const urls = parseTrustedSiteUrls(siteUrlRaw);\n if (urls.length > 0) return urls;\n const primary = primaryTrustedSiteUrl(siteUrlRaw);\n return primary ? [primary] : [];\n}\n"]}
package/dist/csv.d.ts ADDED
@@ -0,0 +1,54 @@
1
+ import type { FieldType, Table as TableT } from "./schemaTypes.ts";
2
+ export { addRef, collectIdsFromField, collectIdsFromValues, collectReferencedIds, } from "./refGraph.ts";
3
+ export declare function serializeCsvValue(value: unknown, type: FieldType): string;
4
+ export type CsvExport = {
5
+ headers: string[];
6
+ data: string[][];
7
+ };
8
+ export type DisplayIdLookup = Map<string, Map<string, string>>;
9
+ /** Referenced ids plus exported row ids (for the table's own Id display template on `_id`). */
10
+ export declare function collectExportDisplayIdRefs(table: TableT, rows: Record<string, unknown>[]): Map<string, Set<string>>;
11
+ export declare function buildCsvRows(rows: Record<string, unknown>[], table: TableT, displayIds?: DisplayIdLookup): CsvExport;
12
+ /** Subset export for grid clipboard copy (no `_id` / `_creationTime`). */
13
+ export declare function buildCsvRowsForColumns(rows: Record<string, unknown>[], table: TableT, columnNames: readonly string[], displayIds?: DisplayIdLookup): CsvExport;
14
+ export declare function unparseCsv({ headers, data }: CsvExport): string;
15
+ export type CoerceResult = {
16
+ ok: true;
17
+ value: unknown;
18
+ } | {
19
+ ok: false;
20
+ error: string;
21
+ };
22
+ export declare function coerceCsvValue(raw: string, type: FieldType, optional: boolean): CoerceResult;
23
+ export declare function applyDisplayIdResolution(rows: ImportRow[], table: TableT, resolved: Map<string, Map<string, string | null>>): ImportRow[];
24
+ export declare function collectImportDisplayIds(rows: ImportRow[], table: TableT): Map<string, Set<string>>;
25
+ /** Display ids in the `_id` column for replace-mode rows (not raw Convex document ids). */
26
+ export declare function collectImportRowDisplayIds(rows: ImportRow[]): Set<string>;
27
+ export declare function applyImportRowIdResolution(rows: ImportRow[], tableName: string, resolved: Map<string, Map<string, string | null>>): ImportRow[];
28
+ export type ImportMode = "insert" | "replace";
29
+ export type ImportRow = {
30
+ /** Sequential row index from the CSV (1-based, excluding header). */
31
+ rowNum: number;
32
+ /** Document to send to Convex (system fields stripped). */
33
+ doc: Record<string, unknown>;
34
+ /** Insert vs. replace decision. "replace" iff `_id` was supplied. */
35
+ mode: ImportMode;
36
+ /** Defined when `mode === "replace"`. */
37
+ id?: string;
38
+ /** Per-field error map. */
39
+ errors: Record<string, string>;
40
+ };
41
+ export declare function validateImportRow(raw: Record<string, string>, table: TableT, rowNum: number): ImportRow;
42
+ export type ParseResult = {
43
+ /** Header row exactly as it appeared in the file. */
44
+ headers: string[];
45
+ /** Each row keyed by header name. */
46
+ rows: Record<string, string>[];
47
+ /** Headers that don't match a schema field or system column. */
48
+ unknownColumns: string[];
49
+ /** Required schema fields with no matching CSV column. */
50
+ missingRequired: string[];
51
+ /** papaparse parse errors. */
52
+ parseErrors: string[];
53
+ };
54
+ export declare function parseCsvText(text: string, table: TableT): ParseResult;