@lupinum/better-convex-nuxt 0.8.0-beta.40

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 (268) hide show
  1. package/LICENSE +21 -0
  2. package/LICENSES/Apache-2.0.txt +201 -0
  3. package/README.md +151 -0
  4. package/THIRD_PARTY_NOTICES.md +38 -0
  5. package/dist/module.d.mts +55 -0
  6. package/dist/module.json +12 -0
  7. package/dist/module.mjs +309 -0
  8. package/dist/runtime/auth/auth-identity.d.ts +31 -0
  9. package/dist/runtime/auth/auth-identity.js +21 -0
  10. package/dist/runtime/auth/better-auth-browser-adapter.d.ts +33 -0
  11. package/dist/runtime/auth/better-auth-browser-adapter.js +215 -0
  12. package/dist/runtime/auth/client-engine-types.d.ts +4 -0
  13. package/dist/runtime/auth/client-engine-types.js +0 -0
  14. package/dist/runtime/auth/integrated-client.d.ts +25 -0
  15. package/dist/runtime/auth/integrated-client.js +132 -0
  16. package/dist/runtime/auth/operation-tracker.d.ts +7 -0
  17. package/dist/runtime/auth/operation-tracker.js +14 -0
  18. package/dist/runtime/auth/session-synchronization.d.ts +23 -0
  19. package/dist/runtime/auth/session-synchronization.js +156 -0
  20. package/dist/runtime/auth/token-fetcher.d.ts +66 -0
  21. package/dist/runtime/auth/token-fetcher.js +131 -0
  22. package/dist/runtime/auth/validate-auth-client-definition.d.ts +12 -0
  23. package/dist/runtime/auth/validate-auth-client-definition.js +47 -0
  24. package/dist/runtime/auth-client/convex-client-plugin.d.ts +31 -0
  25. package/dist/runtime/auth-client/convex-client-plugin.js +14 -0
  26. package/dist/runtime/auth-client/definition-types.d.ts +6 -0
  27. package/dist/runtime/auth-client/definition-types.js +0 -0
  28. package/dist/runtime/auth-client/empty-definition.d.ts +2 -0
  29. package/dist/runtime/auth-client/empty-definition.js +2 -0
  30. package/dist/runtime/auth-client/index.d.ts +71 -0
  31. package/dist/runtime/auth-client/index.js +3 -0
  32. package/dist/runtime/cli/auth-schema.d.ts +2 -0
  33. package/dist/runtime/cli/auth-schema.js +169 -0
  34. package/dist/runtime/cli/convex.d.ts +11 -0
  35. package/dist/runtime/cli/convex.js +274 -0
  36. package/dist/runtime/composables/useConvex.d.ts +4 -0
  37. package/dist/runtime/composables/useConvex.js +9 -0
  38. package/dist/runtime/composables/useConvexAction.d.ts +4 -0
  39. package/dist/runtime/composables/useConvexAction.js +18 -0
  40. package/dist/runtime/composables/useConvexAttachment.d.ts +9 -0
  41. package/dist/runtime/composables/useConvexAttachment.js +14 -0
  42. package/dist/runtime/composables/useConvexAuth.d.ts +10 -0
  43. package/dist/runtime/composables/useConvexAuth.js +37 -0
  44. package/dist/runtime/composables/useConvexConfig.d.ts +12 -0
  45. package/dist/runtime/composables/useConvexConfig.js +7 -0
  46. package/dist/runtime/composables/useConvexConnectionState.d.ts +33 -0
  47. package/dist/runtime/composables/useConvexConnectionState.js +24 -0
  48. package/dist/runtime/composables/useConvexFileUpload.d.ts +169 -0
  49. package/dist/runtime/composables/useConvexFileUpload.js +198 -0
  50. package/dist/runtime/composables/useConvexMutation.d.ts +13 -0
  51. package/dist/runtime/composables/useConvexMutation.js +24 -0
  52. package/dist/runtime/composables/useConvexPaginatedQuery.d.ts +13 -0
  53. package/dist/runtime/composables/useConvexPaginatedQuery.js +256 -0
  54. package/dist/runtime/composables/useConvexQuery.d.ts +19 -0
  55. package/dist/runtime/composables/useConvexQuery.js +308 -0
  56. package/dist/runtime/convex-auth/adapter/create-adapter.d.ts +33 -0
  57. package/dist/runtime/convex-auth/adapter/create-adapter.js +308 -0
  58. package/dist/runtime/convex-auth/adapter/define-functions.d.ts +160 -0
  59. package/dist/runtime/convex-auth/adapter/define-functions.js +497 -0
  60. package/dist/runtime/convex-auth/adapter/generate-schema.d.ts +16 -0
  61. package/dist/runtime/convex-auth/adapter/generate-schema.js +332 -0
  62. package/dist/runtime/convex-auth/adapter/metadata.d.ts +44 -0
  63. package/dist/runtime/convex-auth/adapter/metadata.js +91 -0
  64. package/dist/runtime/convex-auth/adapter/query.d.ts +32 -0
  65. package/dist/runtime/convex-auth/adapter/query.js +275 -0
  66. package/dist/runtime/convex-auth/adapter/relationships.d.ts +20 -0
  67. package/dist/runtime/convex-auth/adapter/relationships.js +128 -0
  68. package/dist/runtime/convex-auth/component/_generated/api.js +5 -0
  69. package/dist/runtime/convex-auth/component/_generated/component.d.ts +116 -0
  70. package/dist/runtime/convex-auth/component/_generated/component.js +0 -0
  71. package/dist/runtime/convex-auth/component/_generated/dataModel.js +0 -0
  72. package/dist/runtime/convex-auth/component/_generated/server.js +16 -0
  73. package/dist/runtime/convex-auth/component/adapter.d.ts +142 -0
  74. package/dist/runtime/convex-auth/component/adapter.js +16 -0
  75. package/dist/runtime/convex-auth/component/convex.config.d.ts +2 -0
  76. package/dist/runtime/convex-auth/component/convex.config.js +3 -0
  77. package/dist/runtime/convex-auth/component/schema.d.ts +799 -0
  78. package/dist/runtime/convex-auth/component/schema.js +180 -0
  79. package/dist/runtime/convex-auth/component/schemaMetadata.d.ts +2094 -0
  80. package/dist/runtime/convex-auth/component/schemaMetadata.js +2161 -0
  81. package/dist/runtime/convex-auth/context.d.ts +5 -0
  82. package/dist/runtime/convex-auth/context.js +8 -0
  83. package/dist/runtime/convex-auth/create-auth-component.d.ts +41 -0
  84. package/dist/runtime/convex-auth/create-auth-component.js +157 -0
  85. package/dist/runtime/convex-auth/index.d.ts +11 -0
  86. package/dist/runtime/convex-auth/index.js +7 -0
  87. package/dist/runtime/convex-auth/internal-session.d.ts +2 -0
  88. package/dist/runtime/convex-auth/internal-session.js +1 -0
  89. package/dist/runtime/convex-auth/jwks-rotation.d.ts +58 -0
  90. package/dist/runtime/convex-auth/jwks-rotation.js +163 -0
  91. package/dist/runtime/convex-auth/oauth-live-access.d.ts +17 -0
  92. package/dist/runtime/convex-auth/oauth-live-access.js +78 -0
  93. package/dist/runtime/convex-auth/oauth-provider-compat.d.ts +10 -0
  94. package/dist/runtime/convex-auth/oauth-provider-compat.js +170 -0
  95. package/dist/runtime/convex-auth/oauth-resource.d.ts +39 -0
  96. package/dist/runtime/convex-auth/oauth-resource.js +118 -0
  97. package/dist/runtime/convex-auth/oauth-security.d.ts +82 -0
  98. package/dist/runtime/convex-auth/oauth-security.js +454 -0
  99. package/dist/runtime/convex-auth/origin.d.ts +4 -0
  100. package/dist/runtime/convex-auth/origin.js +9 -0
  101. package/dist/runtime/convex-auth/plugin.d.ts +18 -0
  102. package/dist/runtime/convex-auth/plugin.js +605 -0
  103. package/dist/runtime/convex-auth/provider.d.ts +2 -0
  104. package/dist/runtime/convex-auth/provider.js +11 -0
  105. package/dist/runtime/convex-auth/test.d.ts +410 -0
  106. package/dist/runtime/convex-auth/test.js +9 -0
  107. package/dist/runtime/convex-auth/types.d.ts +18 -0
  108. package/dist/runtime/convex-auth/types.js +0 -0
  109. package/dist/runtime/convex-auth/user-projection.d.ts +106 -0
  110. package/dist/runtime/convex-auth/user-projection.js +128 -0
  111. package/dist/runtime/devtools/auth-proxy-registry.d.ts +4 -0
  112. package/dist/runtime/devtools/auth-proxy-registry.js +47 -0
  113. package/dist/runtime/devtools/bridge-setup.d.ts +21 -0
  114. package/dist/runtime/devtools/bridge-setup.js +165 -0
  115. package/dist/runtime/devtools/path-utils.d.ts +2 -0
  116. package/dist/runtime/devtools/path-utils.js +12 -0
  117. package/dist/runtime/devtools/server.d.ts +2 -0
  118. package/dist/runtime/devtools/server.js +108 -0
  119. package/dist/runtime/devtools/setup-client.d.ts +16 -0
  120. package/dist/runtime/devtools/setup-client.js +43 -0
  121. package/dist/runtime/devtools/sink.d.ts +18 -0
  122. package/dist/runtime/devtools/sink.js +110 -0
  123. package/dist/runtime/devtools/transport.d.ts +16 -0
  124. package/dist/runtime/devtools/transport.js +149 -0
  125. package/dist/runtime/devtools/types.d.ts +167 -0
  126. package/dist/runtime/devtools/types.js +1 -0
  127. package/dist/runtime/devtools/ui/dist/200.html +1 -0
  128. package/dist/runtime/devtools/ui/dist/404.html +1 -0
  129. package/dist/runtime/devtools/ui/dist/_nuxt/C4MASuCh.js +1 -0
  130. package/dist/runtime/devtools/ui/dist/_nuxt/DJHkqtZq.js +3 -0
  131. package/dist/runtime/devtools/ui/dist/_nuxt/DWwrCltl.js +2 -0
  132. package/dist/runtime/devtools/ui/dist/_nuxt/DZ_UiYoH.js +1 -0
  133. package/dist/runtime/devtools/ui/dist/_nuxt/_m9ujb-i.js +1 -0
  134. package/dist/runtime/devtools/ui/dist/_nuxt/builds/latest.json +1 -0
  135. package/dist/runtime/devtools/ui/dist/_nuxt/builds/meta/better-convex-nuxt-devtools.json +1 -0
  136. package/dist/runtime/devtools/ui/dist/_nuxt/entry.DpFDKYZ5.css +1 -0
  137. package/dist/runtime/devtools/ui/dist/_nuxt/error-404.DYUJo5xt.css +1 -0
  138. package/dist/runtime/devtools/ui/dist/_nuxt/error-500.DQdoJJXg.css +1 -0
  139. package/dist/runtime/devtools/ui/dist/convex-logo.svg +5 -0
  140. package/dist/runtime/devtools/ui/dist/index.html +1 -0
  141. package/dist/runtime/errors/index.d.ts +7 -0
  142. package/dist/runtime/errors/index.js +5 -0
  143. package/dist/runtime/middleware/convex-auth.global.d.ts +2 -0
  144. package/dist/runtime/middleware/convex-auth.global.js +31 -0
  145. package/dist/runtime/plugin.auth.client.d.ts +3 -0
  146. package/dist/runtime/plugin.auth.client.js +217 -0
  147. package/dist/runtime/plugin.client.d.ts +3 -0
  148. package/dist/runtime/plugin.client.js +43 -0
  149. package/dist/runtime/plugin.server.d.ts +12 -0
  150. package/dist/runtime/plugin.server.js +98 -0
  151. package/dist/runtime/plugins/convex-call-error-payload.d.ts +14 -0
  152. package/dist/runtime/plugins/convex-call-error-payload.js +12 -0
  153. package/dist/runtime/runtime-context.d.ts +26 -0
  154. package/dist/runtime/runtime-context.js +48 -0
  155. package/dist/runtime/server/api/auth/[...].d.ts +10 -0
  156. package/dist/runtime/server/api/auth/[...].js +509 -0
  157. package/dist/runtime/server/api/auth/authorization-server-metadata.d.ts +2 -0
  158. package/dist/runtime/server/api/auth/authorization-server-metadata.js +6 -0
  159. package/dist/runtime/server/api/auth/body-size.d.ts +15 -0
  160. package/dist/runtime/server/api/auth/body-size.js +179 -0
  161. package/dist/runtime/server/api/auth/headers.d.ts +6 -0
  162. package/dist/runtime/server/api/auth/headers.js +98 -0
  163. package/dist/runtime/server/api/auth/jwks.d.ts +2 -0
  164. package/dist/runtime/server/api/auth/jwks.js +6 -0
  165. package/dist/runtime/server/api/auth/security.d.ts +14 -0
  166. package/dist/runtime/server/api/auth/security.js +85 -0
  167. package/dist/runtime/server/api/release-fingerprint.d.ts +2 -0
  168. package/dist/runtime/server/api/release-fingerprint.js +36 -0
  169. package/dist/runtime/server/index.d.ts +1 -0
  170. package/dist/runtime/server/index.js +3 -0
  171. package/dist/runtime/server/plugins/runtime-config.d.ts +7 -0
  172. package/dist/runtime/server/plugins/runtime-config.js +7 -0
  173. package/dist/runtime/server/utils/auth-snapshot.d.ts +26 -0
  174. package/dist/runtime/server/utils/auth-snapshot.js +165 -0
  175. package/dist/runtime/server/utils/http.d.ts +16 -0
  176. package/dist/runtime/server/utils/http.js +133 -0
  177. package/dist/runtime/server/utils/server-convex-caller.d.ts +31 -0
  178. package/dist/runtime/server/utils/server-convex-caller.js +151 -0
  179. package/dist/runtime/server/utils/server-convex-options.d.ts +83 -0
  180. package/dist/runtime/server/utils/server-convex-options.js +69 -0
  181. package/dist/runtime/server/utils/signed-client-ip.d.ts +6 -0
  182. package/dist/runtime/server/utils/signed-client-ip.js +29 -0
  183. package/dist/runtime/server/utils/ssr-auth-headers.d.ts +26 -0
  184. package/dist/runtime/server/utils/ssr-auth-headers.js +49 -0
  185. package/dist/runtime/server/utils/token-exchange.d.ts +27 -0
  186. package/dist/runtime/server/utils/token-exchange.js +96 -0
  187. package/dist/runtime/shared/auth-cookie.d.ts +4 -0
  188. package/dist/runtime/shared/auth-cookie.js +25 -0
  189. package/dist/runtime/shared/auth-origin.d.ts +15 -0
  190. package/dist/runtime/shared/auth-origin.js +42 -0
  191. package/dist/runtime/shared/bounded-stream.d.ts +2 -0
  192. package/dist/runtime/shared/bounded-stream.js +50 -0
  193. package/dist/runtime/shared/client-ip.d.ts +21 -0
  194. package/dist/runtime/shared/client-ip.js +123 -0
  195. package/dist/runtime/shared/release-fingerprint.d.ts +5 -0
  196. package/dist/runtime/shared/release-fingerprint.js +17 -0
  197. package/dist/runtime/types.d.ts +19 -0
  198. package/dist/runtime/utils/auth-config.d.ts +24 -0
  199. package/dist/runtime/utils/auth-config.js +45 -0
  200. package/dist/runtime/utils/auth-contract.d.ts +22 -0
  201. package/dist/runtime/utils/auth-contract.js +0 -0
  202. package/dist/runtime/utils/auth-errors.d.ts +5 -0
  203. package/dist/runtime/utils/auth-errors.js +22 -0
  204. package/dist/runtime/utils/auth-identity-state.d.ts +4 -0
  205. package/dist/runtime/utils/auth-identity-state.js +8 -0
  206. package/dist/runtime/utils/auth-pending-state.d.ts +13 -0
  207. package/dist/runtime/utils/auth-pending-state.js +4 -0
  208. package/dist/runtime/utils/auth-pending.d.ts +10 -0
  209. package/dist/runtime/utils/auth-pending.js +30 -0
  210. package/dist/runtime/utils/auth-route-protection.d.ts +16 -0
  211. package/dist/runtime/utils/auth-route-protection.js +58 -0
  212. package/dist/runtime/utils/auth-status.d.ts +47 -0
  213. package/dist/runtime/utils/auth-status.js +8 -0
  214. package/dist/runtime/utils/bounded-convex-fetch.d.ts +18 -0
  215. package/dist/runtime/utils/bounded-convex-fetch.js +152 -0
  216. package/dist/runtime/utils/callable-devtools.d.ts +17 -0
  217. package/dist/runtime/utils/callable-devtools.js +49 -0
  218. package/dist/runtime/utils/callable-observer.d.ts +2 -0
  219. package/dist/runtime/utils/callable-observer.js +1 -0
  220. package/dist/runtime/utils/composable-scope.d.ts +2 -0
  221. package/dist/runtime/utils/composable-scope.js +8 -0
  222. package/dist/runtime/utils/config-defaults.d.ts +8 -0
  223. package/dist/runtime/utils/config-defaults.js +8 -0
  224. package/dist/runtime/utils/convex-cache.d.ts +68 -0
  225. package/dist/runtime/utils/convex-cache.js +47 -0
  226. package/dist/runtime/utils/convex-config.d.ts +16 -0
  227. package/dist/runtime/utils/convex-config.js +50 -0
  228. package/dist/runtime/utils/convex-shared.d.ts +67 -0
  229. package/dist/runtime/utils/convex-shared.js +134 -0
  230. package/dist/runtime/utils/identity-changed-error.d.ts +4 -0
  231. package/dist/runtime/utils/identity-changed-error.js +12 -0
  232. package/dist/runtime/utils/identity-key.d.ts +19 -0
  233. package/dist/runtime/utils/identity-key.js +10 -0
  234. package/dist/runtime/utils/integrated-auth-client.d.ts +5 -0
  235. package/dist/runtime/utils/integrated-auth-client.js +0 -0
  236. package/dist/runtime/utils/logger.d.ts +42 -0
  237. package/dist/runtime/utils/logger.js +190 -0
  238. package/dist/runtime/utils/mime-type.d.ts +33 -0
  239. package/dist/runtime/utils/mime-type.js +10 -0
  240. package/dist/runtime/utils/query-execution-gate.d.ts +47 -0
  241. package/dist/runtime/utils/query-execution-gate.js +63 -0
  242. package/dist/runtime/utils/query-execution.d.ts +8 -0
  243. package/dist/runtime/utils/query-execution.js +19 -0
  244. package/dist/runtime/utils/query-foundation.d.ts +20 -0
  245. package/dist/runtime/utils/query-foundation.js +39 -0
  246. package/dist/runtime/utils/query-state.d.ts +12 -0
  247. package/dist/runtime/utils/query-state.js +12 -0
  248. package/dist/runtime/utils/reactive-args.d.ts +5 -0
  249. package/dist/runtime/utils/reactive-args.js +42 -0
  250. package/dist/runtime/utils/runtime-config-normalize.d.ts +22 -0
  251. package/dist/runtime/utils/runtime-config-normalize.js +28 -0
  252. package/dist/runtime/utils/runtime-config.d.ts +4 -0
  253. package/dist/runtime/utils/runtime-config.js +8 -0
  254. package/dist/runtime/utils/sanitize-diagnostic.d.ts +6 -0
  255. package/dist/runtime/utils/sanitize-diagnostic.js +81 -0
  256. package/dist/runtime/utils/shared-helpers.d.ts +46 -0
  257. package/dist/runtime/utils/shared-helpers.js +139 -0
  258. package/dist/runtime/utils/site-url.d.ts +4 -0
  259. package/dist/runtime/utils/site-url.js +15 -0
  260. package/dist/runtime/utils/ssr-pagination-state.d.ts +3 -0
  261. package/dist/runtime/utils/ssr-pagination-state.js +3 -0
  262. package/dist/runtime/utils/types.d.ts +29 -0
  263. package/dist/runtime/utils/types.js +0 -0
  264. package/dist/runtime/utils/upload-core.d.ts +16 -0
  265. package/dist/runtime/utils/upload-core.js +116 -0
  266. package/dist/types.d.mts +21 -0
  267. package/package.json +253 -0
  268. package/security/upstream-convex-better-auth.json +477 -0
@@ -0,0 +1,12 @@
1
+ export interface ConvexQueryPendingInput {
2
+ isSkipped: boolean;
3
+ hasData: boolean;
4
+ hasSettled: boolean;
5
+ server: boolean;
6
+ resolveImmediately: boolean;
7
+ isServer: boolean;
8
+ isClient: boolean;
9
+ asyncDataPending: boolean;
10
+ isAuthPending?: boolean;
11
+ }
12
+ export declare function computeConvexQueryPending(input: ConvexQueryPendingInput): boolean;
@@ -0,0 +1,12 @@
1
+ export function computeConvexQueryPending(input) {
2
+ if (input.isSkipped) return false;
3
+ if (input.isAuthPending) return true;
4
+ if (!input.server) {
5
+ if (input.isServer) return true;
6
+ if (input.isClient && !input.hasData && !input.hasSettled) return true;
7
+ }
8
+ if (input.resolveImmediately && input.isClient && !input.hasData && !input.hasSettled) {
9
+ return true;
10
+ }
11
+ return input.asyncDataPending;
12
+ }
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Unwrap refs only inside the container types supported by reactive Convex
3
+ * arguments. Convex values such as ArrayBuffer and bigint remain opaque.
4
+ */
5
+ export declare function normalizeConvexReactiveArgs<T>(value: T): T;
@@ -0,0 +1,42 @@
1
+ import { isRef } from "vue";
2
+ function isPlainRecord(value) {
3
+ if (!value || typeof value !== "object") return false;
4
+ const prototype = Object.getPrototypeOf(value);
5
+ return prototype === Object.prototype || prototype === null;
6
+ }
7
+ export function normalizeConvexReactiveArgs(value) {
8
+ const seen = /* @__PURE__ */ new WeakMap();
9
+ const normalize = (input) => {
10
+ const unwrapped = isRef(input) ? input.value : input;
11
+ if (!unwrapped || typeof unwrapped !== "object") return unwrapped;
12
+ const objectValue = unwrapped;
13
+ const existing = seen.get(objectValue);
14
+ if (existing) return existing;
15
+ if (Array.isArray(unwrapped)) {
16
+ const draft2 = Array.from({ length: unwrapped.length });
17
+ seen.set(objectValue, draft2);
18
+ let changed2 = false;
19
+ for (let index = 0; index < unwrapped.length; index += 1) {
20
+ const next = normalize(unwrapped[index]);
21
+ draft2[index] = next;
22
+ if (next !== unwrapped[index]) changed2 = true;
23
+ }
24
+ const result2 = changed2 ? draft2 : unwrapped;
25
+ seen.set(objectValue, result2);
26
+ return result2;
27
+ }
28
+ if (!isPlainRecord(unwrapped)) return unwrapped;
29
+ const draft = {};
30
+ seen.set(objectValue, draft);
31
+ let changed = false;
32
+ for (const [key, entry] of Object.entries(unwrapped)) {
33
+ const next = normalize(entry);
34
+ draft[key] = next;
35
+ if (next !== entry) changed = true;
36
+ }
37
+ const result = changed ? draft : unwrapped;
38
+ seen.set(objectValue, result);
39
+ return result;
40
+ };
41
+ return normalize(value);
42
+ }
@@ -0,0 +1,22 @@
1
+ import { type NormalizedConvexAuthConfig } from './auth-config.js';
2
+ import type { LogLevel } from './logger.js';
3
+ /**
4
+ * The internal, fully materialized per-app runtime config. `auth` is false for
5
+ * the no-auth build or the one normalized auth policy selected at build time.
6
+ */
7
+ export interface NormalizedConvexRuntimeConfig {
8
+ url?: string;
9
+ siteUrl?: string;
10
+ auth: NormalizedConvexAuthConfig;
11
+ logging: LogLevel | false;
12
+ }
13
+ /**
14
+ * The minimal public connection projection returned by `useConvexConfig()`.
15
+ */
16
+ export interface ConvexRuntimeConfig {
17
+ readonly url: string | undefined;
18
+ readonly siteUrl: string | undefined;
19
+ }
20
+ export declare function normalizeConvexRuntimeConfig(input: unknown): NormalizedConvexRuntimeConfig;
21
+ /** Project the internal config onto the read-only public {@link ConvexRuntimeConfig}. */
22
+ export declare function toPublicConvexRuntimeConfig(internal: NormalizedConvexRuntimeConfig): ConvexRuntimeConfig;
@@ -0,0 +1,28 @@
1
+ import { normalizeConvexAuthConfig } from "./auth-config.js";
2
+ import { resolveConvexSiteUrl } from "./convex-config.js";
3
+ import { normalizeConvexDeploymentUrl, normalizeConvexSiteUrl } from "./site-url.js";
4
+ function asRecord(input) {
5
+ return input && typeof input === "object" ? input : null;
6
+ }
7
+ export function normalizeConvexRuntimeConfig(input) {
8
+ const raw = asRecord(input);
9
+ const url = typeof raw?.url === "string" && raw.url.length > 0 ? normalizeConvexDeploymentUrl(raw.url) : void 0;
10
+ const explicitSiteUrl = typeof raw?.siteUrl === "string" && raw.siteUrl.length > 0 ? raw.siteUrl : void 0;
11
+ const candidateSiteUrl = resolveConvexSiteUrl({
12
+ url,
13
+ siteUrl: explicitSiteUrl
14
+ }).siteUrl;
15
+ const resolvedSiteUrl = candidateSiteUrl ? normalizeConvexSiteUrl(candidateSiteUrl) : void 0;
16
+ return {
17
+ url,
18
+ siteUrl: resolvedSiteUrl || void 0,
19
+ auth: normalizeConvexAuthConfig(raw?.auth),
20
+ logging: raw?.logging === false || typeof raw?.logging === "string" ? raw.logging : false
21
+ };
22
+ }
23
+ export function toPublicConvexRuntimeConfig(internal) {
24
+ return {
25
+ url: internal.url,
26
+ siteUrl: internal.siteUrl
27
+ };
28
+ }
@@ -0,0 +1,4 @@
1
+ import { type NormalizedConvexRuntimeConfig } from './runtime-config-normalize.js';
2
+ export * from './runtime-config-normalize.js';
3
+ /** Read and normalize the current Nuxt application's public Convex config. */
4
+ export declare function getConvexRuntimeConfig(): NormalizedConvexRuntimeConfig;
@@ -0,0 +1,8 @@
1
+ import { useRuntimeConfig } from "#imports";
2
+ import {
3
+ normalizeConvexRuntimeConfig
4
+ } from "./runtime-config-normalize.js";
5
+ export * from "./runtime-config-normalize.js";
6
+ export function getConvexRuntimeConfig() {
7
+ return normalizeConvexRuntimeConfig(useRuntimeConfig().public.convex);
8
+ }
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Convert an arbitrary value into bounded diagnostic data without invoking
3
+ * getters. Every property/proxy failure is isolated so logging and DevTools
4
+ * can never break application behavior.
5
+ */
6
+ export declare function sanitizeDiagnosticValue(value: unknown): unknown;
@@ -0,0 +1,81 @@
1
+ const REDACTED = "[Redacted]";
2
+ const UNREADABLE = "[Unreadable]";
3
+ const ACCESSOR = "[Accessor]";
4
+ const CIRCULAR = "[Circular]";
5
+ const TRUNCATED = "[Truncated]";
6
+ const SECRET_KEY = /token|jwt|bearer|cookie|authorization|secret|password|passphrase|session|credential|(?:api|private|access)[_-]?key/i;
7
+ const OMITTED_KEY = /^(?:stack|request|response|headers)$/i;
8
+ const MAX_DEPTH = 4;
9
+ const MAX_ITEMS = 50;
10
+ const MAX_STRING_LENGTH = 512;
11
+ function sanitizeString(value) {
12
+ let escaped = "";
13
+ const bounded = value.length > MAX_STRING_LENGTH * 2 ? value.slice(0, MAX_STRING_LENGTH * 2) : value;
14
+ for (const character of bounded) {
15
+ const codeUnit = character.charCodeAt(0);
16
+ escaped += codeUnit <= 31 || codeUnit >= 127 && codeUnit <= 159 ? `\\u${codeUnit.toString(16).toUpperCase().padStart(4, "0")}` : character;
17
+ }
18
+ return escaped.length <= MAX_STRING_LENGTH ? escaped : `${escaped.slice(0, MAX_STRING_LENGTH)}${TRUNCATED}`;
19
+ }
20
+ export function sanitizeDiagnosticValue(value) {
21
+ const seen = /* @__PURE__ */ new WeakSet();
22
+ function visit(current, depth) {
23
+ if (current === null || current === void 0) return current;
24
+ if (typeof current === "string") return sanitizeString(current);
25
+ if (typeof current === "number" || typeof current === "boolean") return current;
26
+ if (typeof current === "bigint") return `${current.toString()}n`;
27
+ if (typeof current === "symbol")
28
+ return sanitizeString(current.description ? `Symbol(${current.description})` : "Symbol()");
29
+ if (typeof current === "function") return "[Function]";
30
+ if (typeof current !== "object") return String(current);
31
+ if (depth >= MAX_DEPTH) return TRUNCATED;
32
+ if (seen.has(current)) return CIRCULAR;
33
+ seen.add(current);
34
+ let keys;
35
+ try {
36
+ keys = Reflect.ownKeys(current);
37
+ } catch {
38
+ return UNREADABLE;
39
+ }
40
+ let isArray;
41
+ try {
42
+ isArray = Array.isArray(current);
43
+ } catch {
44
+ return UNREADABLE;
45
+ }
46
+ const output = isArray ? [] : {};
47
+ let emitted = 0;
48
+ for (const key of keys) {
49
+ if (emitted >= MAX_ITEMS) {
50
+ if (!Array.isArray(output)) output[TRUNCATED] = true;
51
+ break;
52
+ }
53
+ const label = sanitizeString(typeof key === "symbol" ? key.toString() : String(key));
54
+ if (isArray && label === "length") continue;
55
+ if (OMITTED_KEY.test(label)) continue;
56
+ emitted += 1;
57
+ if (SECRET_KEY.test(label)) {
58
+ Object.defineProperty(output, label, {
59
+ value: REDACTED,
60
+ enumerable: true,
61
+ configurable: true
62
+ });
63
+ continue;
64
+ }
65
+ let descriptor;
66
+ try {
67
+ descriptor = Object.getOwnPropertyDescriptor(current, key);
68
+ } catch {
69
+ descriptor = void 0;
70
+ }
71
+ const sanitized = descriptor && "value" in descriptor ? visit(descriptor.value, depth + 1) : descriptor ? ACCESSOR : UNREADABLE;
72
+ Object.defineProperty(output, label, {
73
+ value: sanitized,
74
+ enumerable: true,
75
+ configurable: true
76
+ });
77
+ }
78
+ return output;
79
+ }
80
+ return visit(value, 0);
81
+ }
@@ -0,0 +1,46 @@
1
+ /**
2
+ * Shared helper functions used across composables
3
+ *
4
+ * These utilities are extracted to avoid code duplication and ensure
5
+ * consistent behavior across the module.
6
+ */
7
+ export { hasBetterAuthCookie, isBetterAuthCookieName } from '../shared/auth-cookie.js';
8
+ /**
9
+ * Check if two values are deeply equal using structured comparison.
10
+ * More performant than JSON.stringify for simple cases, handles edge cases better.
11
+ *
12
+ * @param a - First value to compare
13
+ * @param b - Second value to compare
14
+ * @returns True if values are deeply equal
15
+ */
16
+ export declare function deepEqual(a: unknown, b: unknown): boolean;
17
+ /**
18
+ * Check if query args match filter args (partial match).
19
+ * Used for optimistic update helpers to filter which queries to update.
20
+ *
21
+ * @param queryArgs - The full args of a query
22
+ * @param filterArgs - Partial args to match against
23
+ * @param skipKeys - Keys to skip during comparison (e.g., 'paginationOpts')
24
+ * @returns True if all filterArgs match corresponding queryArgs
25
+ */
26
+ export declare function argsMatch(queryArgs: Record<string, unknown>, filterArgs: Record<string, unknown>, skipKeys?: string[]): boolean;
27
+ /**
28
+ * Compare two Convex JSON values for sorting.
29
+ * Returns negative if a < b, 0 if equal, positive if a > b.
30
+ *
31
+ * Handles all Convex value types including arrays (for multi-key sorts),
32
+ * numbers, strings, booleans, BigInts, and null/undefined.
33
+ *
34
+ * @param a - First value (convexToJson format)
35
+ * @param b - Second value (convexToJson format)
36
+ * @returns Comparison result (-1, 0, or 1)
37
+ */
38
+ export declare function compareJsonValues(a: unknown, b: unknown): number;
39
+ export declare const BETTER_AUTH_SESSION_COOKIE_NAME = "better-auth.session_token";
40
+ export declare const BETTER_AUTH_SECURE_SESSION_COOKIE_NAME = "__Secure-better-auth.session_token";
41
+ export declare function getBetterAuthSessionToken(cookieHeader: string | null | undefined): string | null;
42
+ export declare function filterBetterAuthCookies(cookieHeader: string | null | undefined): string | null;
43
+ /** Whether a raw Set-Cookie field belongs to the supported Better Auth namespace. */
44
+ export declare function isBetterAuthSetCookie(setCookie: string): boolean;
45
+ /** Domain cookies are outside the supported host-only Better Auth contract. */
46
+ export declare function hasSetCookieDomainAttribute(setCookie: string): boolean;
@@ -0,0 +1,139 @@
1
+ import { isBetterAuthCookieName } from "../shared/auth-cookie.js";
2
+ export { hasBetterAuthCookie, isBetterAuthCookieName } from "../shared/auth-cookie.js";
3
+ export function deepEqual(a, b) {
4
+ if (a === b) return true;
5
+ if (a == null || b == null) return a === b;
6
+ if (typeof a !== typeof b) return false;
7
+ if (Array.isArray(a) && Array.isArray(b)) {
8
+ if (a.length !== b.length) return false;
9
+ for (let i = 0; i < a.length; i++) {
10
+ if (!deepEqual(a[i], b[i])) return false;
11
+ }
12
+ return true;
13
+ }
14
+ if (typeof a === "object" && typeof b === "object") {
15
+ if (Array.isArray(a) !== Array.isArray(b)) return false;
16
+ const aKeys = Object.keys(a);
17
+ const bKeys = Object.keys(b);
18
+ if (aKeys.length !== bKeys.length) return false;
19
+ for (const key of aKeys) {
20
+ if (!Object.prototype.hasOwnProperty.call(b, key)) return false;
21
+ if (!deepEqual(a[key], b[key])) {
22
+ return false;
23
+ }
24
+ }
25
+ return true;
26
+ }
27
+ return false;
28
+ }
29
+ export function argsMatch(queryArgs, filterArgs, skipKeys = []) {
30
+ for (const key of Object.keys(filterArgs)) {
31
+ if (skipKeys.includes(key)) continue;
32
+ const filterValue = filterArgs[key];
33
+ const queryValue = queryArgs[key];
34
+ if (!deepEqual(filterValue, queryValue)) {
35
+ return false;
36
+ }
37
+ }
38
+ return true;
39
+ }
40
+ export function compareJsonValues(a, b) {
41
+ if (Array.isArray(a) && Array.isArray(b)) {
42
+ for (let i = 0; i < Math.max(a.length, b.length); i++) {
43
+ const comparison = compareJsonValues(a[i], b[i]);
44
+ if (comparison !== 0) return comparison;
45
+ }
46
+ return 0;
47
+ }
48
+ if (a == null && b == null) return 0;
49
+ if (a == null) return -1;
50
+ if (b == null) return 1;
51
+ if (typeof a === "number" && typeof b === "number") {
52
+ return a - b;
53
+ }
54
+ if (typeof a === "string" && typeof b === "string") {
55
+ return a.localeCompare(b);
56
+ }
57
+ if (typeof a === "boolean" && typeof b === "boolean") {
58
+ return (a ? 1 : 0) - (b ? 1 : 0);
59
+ }
60
+ if (typeof a === "object" && a !== null && "$integer" in a && typeof b === "object" && b !== null && "$integer" in b) {
61
+ const aInt = a;
62
+ const bInt = b;
63
+ return Number(BigInt(aInt.$integer) - BigInt(bInt.$integer));
64
+ }
65
+ return String(a).localeCompare(String(b));
66
+ }
67
+ export const BETTER_AUTH_SESSION_COOKIE_NAME = "better-auth.session_token";
68
+ export const BETTER_AUTH_SECURE_SESSION_COOKIE_NAME = "__Secure-better-auth.session_token";
69
+ const COOKIE_NAME_PATTERN = /^[!#$%&'*+\-.^`|~\w]+$/;
70
+ const COOKIE_VALUE_PATTERN = /^[\x20\x21\x23-\x3A\x3C-\x5B\x5D-\x7E]*$/;
71
+ function trimOptionalWhitespace(value) {
72
+ let start = 0;
73
+ let end = value.length;
74
+ while (start < end && (value.charCodeAt(start) === 32 || value.charCodeAt(start) === 9)) {
75
+ start += 1;
76
+ }
77
+ while (end > start && (value.charCodeAt(end - 1) === 32 || value.charCodeAt(end - 1) === 9)) {
78
+ end -= 1;
79
+ }
80
+ return start === 0 && end === value.length ? value : value.slice(start, end);
81
+ }
82
+ function parseCookiePair(input) {
83
+ const wire = trimOptionalWhitespace(input);
84
+ const separator = wire.indexOf("=");
85
+ if (separator < 1) return null;
86
+ const name = trimOptionalWhitespace(wire.slice(0, separator));
87
+ let encodedValue = trimOptionalWhitespace(wire.slice(separator + 1));
88
+ if (encodedValue.length >= 2 && encodedValue.startsWith('"') && encodedValue.endsWith('"')) {
89
+ encodedValue = encodedValue.slice(1, -1);
90
+ }
91
+ if (!COOKIE_NAME_PATTERN.test(name) || !COOKIE_VALUE_PATTERN.test(encodedValue)) return null;
92
+ let value = encodedValue;
93
+ if (encodedValue.includes("%")) {
94
+ try {
95
+ value = decodeURIComponent(encodedValue);
96
+ } catch {
97
+ }
98
+ }
99
+ return { name, value, wire };
100
+ }
101
+ function parseCookiePairs(cookieHeader) {
102
+ const parsed = [];
103
+ if (!cookieHeader) return parsed;
104
+ for (const chunk of cookieHeader.split(";")) {
105
+ const pair = parseCookiePair(chunk);
106
+ if (pair) parsed.push(pair);
107
+ }
108
+ return parsed;
109
+ }
110
+ function parseCookieHeader(cookieHeader) {
111
+ return new Map(parseCookiePairs(cookieHeader).map((pair) => [pair.name, pair]));
112
+ }
113
+ export function getBetterAuthSessionToken(cookieHeader) {
114
+ const cookies = parseCookieHeader(cookieHeader);
115
+ if (cookies.has(BETTER_AUTH_SECURE_SESSION_COOKIE_NAME)) {
116
+ return cookies.get(BETTER_AUTH_SECURE_SESSION_COOKIE_NAME)?.value ?? null;
117
+ }
118
+ return cookies.get(BETTER_AUTH_SESSION_COOKIE_NAME)?.value ?? null;
119
+ }
120
+ export function filterBetterAuthCookies(cookieHeader) {
121
+ const authCookies = parseCookiePairs(cookieHeader).filter((pair) => isBetterAuthCookieName(pair.name)).map((pair) => pair.wire);
122
+ return authCookies.length > 0 ? authCookies.join("; ") : null;
123
+ }
124
+ export function isBetterAuthSetCookie(setCookie) {
125
+ const cookiePair = parseCookiePair(setCookie.split(";", 1)[0] ?? "");
126
+ return cookiePair ? isBetterAuthCookieName(cookiePair.name) : false;
127
+ }
128
+ export function hasSetCookieDomainAttribute(setCookie) {
129
+ const segments = setCookie.split(";");
130
+ for (let index = 1; index < segments.length; index += 1) {
131
+ const attribute = trimOptionalWhitespace(segments[index] ?? "");
132
+ const separator = attribute.indexOf("=");
133
+ const name = trimOptionalWhitespace(
134
+ separator === -1 ? attribute : attribute.slice(0, separator)
135
+ ).toLowerCase();
136
+ if (name === "domain") return true;
137
+ }
138
+ return false;
139
+ }
@@ -0,0 +1,4 @@
1
+ /** Return one credential-safe Convex deployment origin or throw before client construction. */
2
+ export declare function normalizeConvexDeploymentUrl(url: string): string;
3
+ /** Return one credential-safe Convex site origin or throw before network access. */
4
+ export declare function normalizeConvexSiteUrl(siteUrl: string): string;
@@ -0,0 +1,15 @@
1
+ import { normalizeAuthOrigin } from "../shared/auth-origin.js";
2
+ function normalizeConvexOrigin(value, label, originName) {
3
+ try {
4
+ return normalizeAuthOrigin(value, originName);
5
+ } catch (error) {
6
+ const detail = error instanceof Error ? error.message : "invalid origin";
7
+ throw new TypeError(`${label} is unsafe: ${detail}`, { cause: error });
8
+ }
9
+ }
10
+ export function normalizeConvexDeploymentUrl(url) {
11
+ return normalizeConvexOrigin(url, "url", "convex.url");
12
+ }
13
+ export function normalizeConvexSiteUrl(siteUrl) {
14
+ return normalizeConvexOrigin(siteUrl, "siteUrl", "convex.siteUrl");
15
+ }
@@ -0,0 +1,3 @@
1
+ export declare function isIncompletePaginationPage(page: {
2
+ pageStatus?: 'SplitRecommended' | 'SplitRequired' | null;
3
+ } | null | undefined): boolean;
@@ -0,0 +1,3 @@
1
+ export function isIncompletePaginationPage(page) {
2
+ return page?.pageStatus === "SplitRequired";
3
+ }
@@ -0,0 +1,29 @@
1
+ /**
2
+ * Shared types used across the module
3
+ *
4
+ * Centralized type definitions to ensure consistency and avoid duplication.
5
+ */
6
+ /**
7
+ * Authenticated user information from Better Auth / Convex JWT.
8
+ * Used for both SSR hydration and client-side auth state.
9
+ */
10
+ export interface ConvexUser {
11
+ /** Unique user identifier */
12
+ id: string;
13
+ /** User's display name */
14
+ name?: string | null;
15
+ /** User's email address */
16
+ email?: string | null;
17
+ /** Whether the email has been verified */
18
+ emailVerified?: boolean;
19
+ /** URL to user's profile image */
20
+ image?: string | null;
21
+ /** When the user account was created */
22
+ createdAt?: string | Date;
23
+ /** When the user account was last updated */
24
+ updatedAt?: string | Date;
25
+ }
26
+ /**
27
+ * Shared lifecycle status for query/mutation/action composables.
28
+ */
29
+ export type ConvexCallStatus = 'idle' | 'pending' | 'success' | 'error';
File without changes
@@ -0,0 +1,16 @@
1
+ import type { ConvexClient } from 'convex/browser';
2
+ import type { FunctionArgs, FunctionReference } from 'convex/server';
3
+ import type { GenericId } from 'convex/values';
4
+ export interface UploadProgressInfo {
5
+ readonly loaded: number;
6
+ readonly total: number;
7
+ readonly percent: number;
8
+ }
9
+ export interface UploadFileViaXhrOptions {
10
+ signal?: AbortSignal;
11
+ onProgress?: (info: UploadProgressInfo) => void;
12
+ }
13
+ export declare function isUploadAbortError(error: unknown): boolean;
14
+ export declare function requestUploadUrl<Mutation extends FunctionReference<'mutation'>>(client: Pick<ConvexClient, 'mutation'> | null, mutation: Mutation, mutationArgs: FunctionArgs<Mutation>): Promise<string>;
15
+ export declare function executeFileUpload<Mutation extends FunctionReference<'mutation'>>(client: Pick<ConvexClient, 'mutation'> | null, mutation: Mutation, mutationArgs: FunctionArgs<Mutation>, file: File, options?: UploadFileViaXhrOptions): Promise<GenericId<'_storage'>>;
16
+ export declare function uploadFileViaXhr(postUrl: string, file: File, options?: UploadFileViaXhrOptions): Promise<GenericId<'_storage'>>;
@@ -0,0 +1,116 @@
1
+ import { ConvexCallError } from "../errors/index.js";
2
+ function createAbortError() {
3
+ return new DOMException("Upload cancelled", "AbortError");
4
+ }
5
+ export function isUploadAbortError(error) {
6
+ return typeof error === "object" && error !== null && "name" in error && error.name === "AbortError";
7
+ }
8
+ function createUploadTransportError(message, extra) {
9
+ return new ConvexCallError({
10
+ kind: "transport",
11
+ message,
12
+ status: extra?.status,
13
+ code: extra?.code
14
+ });
15
+ }
16
+ export async function requestUploadUrl(client, mutation, mutationArgs) {
17
+ if (!client) {
18
+ throw new ConvexCallError({
19
+ kind: "unknown",
20
+ message: "ConvexClient not available - file uploads only work on client side"
21
+ });
22
+ }
23
+ const postUrl = await client.mutation(mutation, mutationArgs);
24
+ if (typeof postUrl !== "string") {
25
+ throw new ConvexCallError({
26
+ kind: "unknown",
27
+ message: "generateUploadUrl mutation must return a string URL"
28
+ });
29
+ }
30
+ return postUrl;
31
+ }
32
+ export async function executeFileUpload(client, mutation, mutationArgs, file, options) {
33
+ const signal = options?.signal;
34
+ let rejectAbort = null;
35
+ const aborted = new Promise((_, reject) => {
36
+ rejectAbort = reject;
37
+ });
38
+ const onAbort = () => rejectAbort?.(signal?.reason ?? createAbortError());
39
+ if (signal?.aborted) throw signal.reason ?? createAbortError();
40
+ signal?.addEventListener("abort", onAbort, { once: true });
41
+ try {
42
+ const postUrl = await Promise.race([requestUploadUrl(client, mutation, mutationArgs), aborted]);
43
+ return await uploadFileViaXhr(postUrl, file, options);
44
+ } finally {
45
+ signal?.removeEventListener("abort", onAbort);
46
+ }
47
+ }
48
+ export function uploadFileViaXhr(postUrl, file, options) {
49
+ const { signal, onProgress } = options ?? {};
50
+ if (signal?.aborted) {
51
+ return Promise.reject(createAbortError());
52
+ }
53
+ return new Promise((resolve, reject) => {
54
+ const xhr = new XMLHttpRequest();
55
+ const cleanup = () => {
56
+ if (signal) {
57
+ signal.removeEventListener("abort", onAbortSignal);
58
+ }
59
+ };
60
+ const fail = (error) => {
61
+ cleanup();
62
+ reject(error);
63
+ };
64
+ const onAbortSignal = () => {
65
+ try {
66
+ xhr.abort();
67
+ } catch {
68
+ fail(createAbortError());
69
+ }
70
+ };
71
+ if (signal) {
72
+ signal.addEventListener("abort", onAbortSignal, { once: true });
73
+ }
74
+ xhr.open("POST", postUrl);
75
+ if (file.type) {
76
+ xhr.setRequestHeader("Content-Type", file.type);
77
+ }
78
+ xhr.upload.onprogress = (event) => {
79
+ if (!event.lengthComputable) return;
80
+ const percent = Math.round(event.loaded / event.total * 100);
81
+ onProgress?.({
82
+ loaded: event.loaded,
83
+ total: event.total,
84
+ percent
85
+ });
86
+ };
87
+ xhr.onload = () => {
88
+ cleanup();
89
+ if (xhr.status >= 200 && xhr.status < 300) {
90
+ try {
91
+ const response = JSON.parse(xhr.responseText);
92
+ if (typeof response?.storageId !== "string" || response.storageId.length === 0) {
93
+ reject(createUploadTransportError("Upload endpoint response missing valid storageId"));
94
+ return;
95
+ }
96
+ resolve(response.storageId);
97
+ } catch {
98
+ reject(createUploadTransportError("Invalid response from upload endpoint"));
99
+ }
100
+ } else {
101
+ reject(
102
+ createUploadTransportError(`Upload failed: ${xhr.status} ${xhr.statusText}`, {
103
+ status: xhr.status
104
+ })
105
+ );
106
+ }
107
+ };
108
+ xhr.onerror = () => {
109
+ fail(createUploadTransportError("Network error during upload"));
110
+ };
111
+ xhr.onabort = () => {
112
+ fail(createAbortError());
113
+ };
114
+ xhr.send(file);
115
+ });
116
+ }
@@ -0,0 +1,21 @@
1
+ export { type NuxtConvexPaginatedQuery, type UseConvexPaginatedQueryState } from '../dist/runtime/composables/useConvexPaginatedQuery.js'
2
+
3
+ export { type ConvexCallStatus, type ConvexClientHandle, type OptimisticUpdate, type UseConvexCall } from '@lupinum/better-convex-vue'
4
+
5
+ export { type NuxtConvexQuery, type UseConvexQueryState } from '../dist/runtime/composables/useConvexQuery.js'
6
+
7
+ export { type ConvexAuthOptions } from '../dist/runtime/utils/auth-config.js'
8
+
9
+ export { type ConvexAuthMode, type ConvexAuthStatus } from '../dist/runtime/utils/auth-status.js'
10
+
11
+ export { type ConvexRuntimeConfig } from '../dist/runtime/utils/runtime-config.js'
12
+
13
+ export { type UseConvexAuthReturn } from '../dist/runtime/utils/auth-contract.js'
14
+
15
+ export { type UploadProgressInfo, type UploadStatus, type UploadUrlMutation, type UseConvexFileUploadOptions, type UseConvexFileUploadReturn } from '../dist/runtime/composables/useConvexFileUpload.js'
16
+
17
+ export { type UseConvexMutationOptions } from '../dist/runtime/composables/useConvexMutation.js'
18
+
19
+ export { default } from './module.mjs'
20
+
21
+ export { type ModuleOptions, type UseConvexPaginatedQueryOptions, type UseConvexQueryOptions, type UseConvexQueryParameters } from './module.mjs'