@convex-dev/better-auth 0.7.0-alpha.9 → 0.7.1

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 (107) hide show
  1. package/dist/commonjs/client/adapter.d.ts +10 -1
  2. package/dist/commonjs/client/adapter.d.ts.map +1 -1
  3. package/dist/commonjs/client/adapter.js +195 -193
  4. package/dist/commonjs/client/adapter.js.map +1 -1
  5. package/dist/commonjs/client/index.d.ts +283 -179
  6. package/dist/commonjs/client/index.d.ts.map +1 -1
  7. package/dist/commonjs/client/index.js +46 -58
  8. package/dist/commonjs/client/index.js.map +1 -1
  9. package/dist/commonjs/component/adapterTest.d.ts +19 -0
  10. package/dist/commonjs/component/adapterTest.d.ts.map +1 -0
  11. package/dist/commonjs/component/adapterTest.js +82 -0
  12. package/dist/commonjs/component/adapterTest.js.map +1 -0
  13. package/dist/commonjs/component/lib.d.ts +308 -536
  14. package/dist/commonjs/component/lib.d.ts.map +1 -1
  15. package/dist/commonjs/component/lib.js +469 -292
  16. package/dist/commonjs/component/lib.js.map +1 -1
  17. package/dist/commonjs/component/schema.d.ts +465 -26
  18. package/dist/commonjs/component/schema.d.ts.map +1 -1
  19. package/dist/commonjs/component/schema.js +334 -18
  20. package/dist/commonjs/component/schema.js.map +1 -1
  21. package/dist/commonjs/component/util.d.ts +944 -68
  22. package/dist/commonjs/component/util.d.ts.map +1 -1
  23. package/dist/commonjs/nextjs/index.d.ts.map +1 -1
  24. package/dist/commonjs/nextjs/index.js +3 -9
  25. package/dist/commonjs/nextjs/index.js.map +1 -1
  26. package/dist/commonjs/plugins/convex/index.d.ts +14 -11
  27. package/dist/commonjs/plugins/convex/index.d.ts.map +1 -1
  28. package/dist/commonjs/plugins/convex/index.js +3 -2
  29. package/dist/commonjs/plugins/convex/index.js.map +1 -1
  30. package/dist/commonjs/plugins/cross-domain/client.d.ts +1 -1
  31. package/dist/commonjs/plugins/cross-domain/index.d.ts +5 -3
  32. package/dist/commonjs/plugins/cross-domain/index.d.ts.map +1 -1
  33. package/dist/commonjs/plugins/cross-domain/index.js +19 -5
  34. package/dist/commonjs/plugins/cross-domain/index.js.map +1 -1
  35. package/dist/commonjs/react/client.d.ts +1 -1
  36. package/dist/commonjs/react/client.d.ts.map +1 -1
  37. package/dist/commonjs/react/client.js +3 -9
  38. package/dist/commonjs/react/client.js.map +1 -1
  39. package/dist/commonjs/react-start/index.d.ts +4 -4
  40. package/dist/commonjs/react-start/index.d.ts.map +1 -1
  41. package/dist/commonjs/react-start/index.js +3 -0
  42. package/dist/commonjs/react-start/index.js.map +1 -1
  43. package/dist/commonjs/utils/index.d.ts +2 -0
  44. package/dist/commonjs/utils/index.d.ts.map +1 -0
  45. package/dist/commonjs/utils/index.js +8 -0
  46. package/dist/commonjs/utils/index.js.map +1 -0
  47. package/dist/esm/client/adapter.d.ts +10 -1
  48. package/dist/esm/client/adapter.d.ts.map +1 -1
  49. package/dist/esm/client/adapter.js +195 -193
  50. package/dist/esm/client/adapter.js.map +1 -1
  51. package/dist/esm/client/index.d.ts +283 -179
  52. package/dist/esm/client/index.d.ts.map +1 -1
  53. package/dist/esm/client/index.js +46 -58
  54. package/dist/esm/client/index.js.map +1 -1
  55. package/dist/esm/component/adapterTest.d.ts +19 -0
  56. package/dist/esm/component/adapterTest.d.ts.map +1 -0
  57. package/dist/esm/component/adapterTest.js +82 -0
  58. package/dist/esm/component/adapterTest.js.map +1 -0
  59. package/dist/esm/component/lib.d.ts +308 -536
  60. package/dist/esm/component/lib.d.ts.map +1 -1
  61. package/dist/esm/component/lib.js +469 -292
  62. package/dist/esm/component/lib.js.map +1 -1
  63. package/dist/esm/component/schema.d.ts +465 -26
  64. package/dist/esm/component/schema.d.ts.map +1 -1
  65. package/dist/esm/component/schema.js +334 -18
  66. package/dist/esm/component/schema.js.map +1 -1
  67. package/dist/esm/component/util.d.ts +944 -68
  68. package/dist/esm/component/util.d.ts.map +1 -1
  69. package/dist/esm/nextjs/index.d.ts.map +1 -1
  70. package/dist/esm/nextjs/index.js +3 -9
  71. package/dist/esm/nextjs/index.js.map +1 -1
  72. package/dist/esm/plugins/convex/index.d.ts +14 -11
  73. package/dist/esm/plugins/convex/index.d.ts.map +1 -1
  74. package/dist/esm/plugins/convex/index.js +3 -2
  75. package/dist/esm/plugins/convex/index.js.map +1 -1
  76. package/dist/esm/plugins/cross-domain/client.d.ts +1 -1
  77. package/dist/esm/plugins/cross-domain/index.d.ts +5 -3
  78. package/dist/esm/plugins/cross-domain/index.d.ts.map +1 -1
  79. package/dist/esm/plugins/cross-domain/index.js +19 -5
  80. package/dist/esm/plugins/cross-domain/index.js.map +1 -1
  81. package/dist/esm/react/client.d.ts +1 -1
  82. package/dist/esm/react/client.d.ts.map +1 -1
  83. package/dist/esm/react/client.js +3 -9
  84. package/dist/esm/react/client.js.map +1 -1
  85. package/dist/esm/react-start/index.d.ts +4 -4
  86. package/dist/esm/react-start/index.d.ts.map +1 -1
  87. package/dist/esm/react-start/index.js +3 -0
  88. package/dist/esm/react-start/index.js.map +1 -1
  89. package/dist/esm/utils/index.d.ts +2 -0
  90. package/dist/esm/utils/index.d.ts.map +1 -0
  91. package/dist/esm/utils/index.js +8 -0
  92. package/dist/esm/utils/index.js.map +1 -0
  93. package/package.json +24 -7
  94. package/src/client/adapter.test.ts +378 -0
  95. package/src/client/adapter.ts +210 -198
  96. package/src/client/index.ts +46 -71
  97. package/src/component/_generated/api.d.ts +2189 -171
  98. package/src/component/adapterTest.ts +141 -0
  99. package/src/component/lib.ts +648 -342
  100. package/src/component/schema.ts +349 -18
  101. package/src/nextjs/index.ts +3 -14
  102. package/src/plugins/convex/index.ts +5 -2
  103. package/src/plugins/cross-domain/index.ts +19 -5
  104. package/src/react/client.tsx +5 -11
  105. package/src/react-start/index.ts +4 -1
  106. package/src/client/cors.ts +0 -425
  107. /package/src/{util.ts → utils/index.ts} +0 -0
@@ -1,4 +1,13 @@
1
1
  import { BetterAuth } from "./index";
2
+ import { AdapterDebugLogs } from "better-auth/adapters";
2
3
  import { GenericActionCtx, GenericMutationCtx, GenericQueryCtx } from "convex/server";
3
- export declare const convexAdapter: <Ctx extends GenericQueryCtx<any> | GenericMutationCtx<any> | GenericActionCtx<any>>(ctx: Ctx, component: BetterAuth) => (options: import("better-auth").BetterAuthOptions) => import("better-auth").Adapter;
4
+ type GenericCtx = GenericQueryCtx<any> | GenericMutationCtx<any> | GenericActionCtx<any>;
5
+ interface ConvexAdapterConfig {
6
+ /**
7
+ * Helps you debug issues with the adapter.
8
+ */
9
+ debugLogs?: AdapterDebugLogs;
10
+ }
11
+ export declare const convexAdapter: (ctx: GenericCtx, component: BetterAuth, config?: ConvexAdapterConfig) => (options: import("better-auth").BetterAuthOptions) => import("better-auth").Adapter;
12
+ export {};
4
13
  //# sourceMappingURL=adapter.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../../../src/client/adapter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAGrC,OAAO,EACL,gBAAgB,EAChB,kBAAkB,EAClB,eAAe,EAChB,MAAM,eAAe,CAAC;AAEvB,eAAO,MAAM,aAAa,GACxB,GAAG,SACC,eAAe,CAAC,GAAG,CAAC,GACpB,kBAAkB,CAAC,GAAG,CAAC,GACvB,gBAAgB,CAAC,GAAG,CAAC,EAEzB,KAAK,GAAG,EACR,WAAW,UAAU,wFAoPnB,CAAC"}
1
+ {"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../../../src/client/adapter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EACL,gBAAgB,EAGjB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,gBAAgB,EAChB,kBAAkB,EAClB,eAAe,EAGhB,MAAM,eAAe,CAAC;AA8EvB,KAAK,UAAU,GACX,eAAe,CAAC,GAAG,CAAC,GACpB,kBAAkB,CAAC,GAAG,CAAC,GACvB,gBAAgB,CAAC,GAAG,CAAC,CAAC;AAE1B,UAAU,mBAAmB;IAC3B;;OAEG;IACH,SAAS,CAAC,EAAE,gBAAgB,CAAC;CAC9B;AACD,eAAO,MAAM,aAAa,GACxB,KAAK,UAAU,EACf,WAAW,UAAU,EACrB,SAAQ,mBAAwB,wFAwKjC,CAAC"}
@@ -1,207 +1,209 @@
1
- import { transformInput } from "../component/lib";
2
- import { createAdapter } from "better-auth/adapters";
3
- export const convexAdapter = (ctx, component) => createAdapter({
4
- config: {
5
- adapterId: "convex",
6
- adapterName: "Convex Adapter",
7
- debugLogs: component.config.verbose ?? false,
8
- disableIdGeneration: true,
9
- },
10
- adapter: ({ schema }) => {
11
- return {
12
- id: "convex",
13
- create: async ({ model, data, select }) => {
14
- if (!("runMutation" in ctx)) {
15
- throw new Error("ctx is not an action ctx");
16
- }
17
- if (select) {
18
- throw new Error("select is not supported");
19
- }
20
- const createFn = model === "user"
21
- ? component.config.authFunctions.createUser
22
- : model === "session"
23
- ? component.config.authFunctions.createSession
24
- : component.component.lib.create;
25
- return ctx.runMutation(createFn, {
26
- input: { table: model, ...transformInput(model, data) },
27
- });
1
+ import { createAdapter, } from "better-auth/adapters";
2
+ const handlePagination = async (next, { limit, numItems } = {}) => {
3
+ const state = {
4
+ isDone: false,
5
+ cursor: null,
6
+ docs: [],
7
+ count: 0,
8
+ };
9
+ const onResult = (result) => {
10
+ state.cursor =
11
+ result.pageStatus === "SplitRecommended" ||
12
+ result.pageStatus === "SplitRequired"
13
+ ? result.splitCursor ?? result.continueCursor
14
+ : result.continueCursor;
15
+ if (result.page) {
16
+ state.docs.push(...result.page);
17
+ state.isDone = (limit && state.docs.length >= limit) || result.isDone;
18
+ return;
19
+ }
20
+ // Update and delete only return a count
21
+ if (result.count) {
22
+ state.count += result.count;
23
+ state.isDone = (limit && state.count >= limit) || result.isDone;
24
+ return;
25
+ }
26
+ state.isDone = result.isDone;
27
+ };
28
+ do {
29
+ const result = await next({
30
+ paginationOpts: {
31
+ numItems: Math.min(numItems ?? 200, (limit ?? 200) - state.docs.length, 200),
32
+ cursor: state.cursor,
28
33
  },
29
- findOne: async ({ model, where }) => {
30
- if (where.length === 1 && where[0].operator === "eq") {
31
- const { value, field } = where[0];
32
- const result = await ctx.runQuery(component.component.lib.getBy, {
33
- table: model,
34
- field,
35
- unique: field === "id" ? true : schema[model].fields[field].unique,
36
- value: value instanceof Date ? value.getTime() : value,
37
- });
38
- return result;
39
- }
40
- if (model === "account" &&
41
- where.length === 2 &&
42
- where[0].field === "accountId" &&
43
- where[1].field === "providerId" &&
44
- where[0].connector === "AND") {
45
- return ctx.runQuery(component.component.lib.getAccountByAccountIdAndProviderId, {
46
- accountId: where[0].value,
47
- providerId: where[1].value,
48
- });
49
- }
50
- throw new Error("where clause not supported");
34
+ });
35
+ onResult(result);
36
+ } while (!state.isDone);
37
+ return state;
38
+ };
39
+ const parseWhere = (where) => {
40
+ return where?.map((where) => {
41
+ if (where.value instanceof Date) {
42
+ return {
43
+ ...where,
44
+ value: where.value.getTime(),
45
+ };
46
+ }
47
+ return where;
48
+ });
49
+ };
50
+ export const convexAdapter = (ctx, component, config = {}) => {
51
+ const { debugLogs } = config;
52
+ return createAdapter({
53
+ config: {
54
+ adapterId: "convex",
55
+ adapterName: "Convex Adapter",
56
+ debugLogs: component.config.verbose ?? debugLogs ?? false,
57
+ disableIdGeneration: true,
58
+ supportsNumericIds: false,
59
+ usePlural: false,
60
+ mapKeysTransformOutput: {
61
+ _id: "id",
51
62
  },
52
- findMany: async ({ model, where, sortBy, offset, limit, }) => {
53
- if (offset) {
54
- throw new Error("offset not supported");
55
- }
56
- if (model === "jwks" &&
57
- !where &&
58
- (!sortBy ||
59
- (sortBy?.field === "createdAt" && sortBy?.direction === "desc"))) {
60
- return ctx.runQuery(component.component.lib.getJwks, { limit });
61
- }
62
- if (where?.length !== 1 ||
63
- (where[0].operator && where[0].operator !== "eq")) {
64
- throw new Error("where clause not supported");
63
+ // With supportsDates: false, dates are stored as strings,
64
+ // we convert them to numbers here. This aligns with how
65
+ // Convex stores _creationTime, and avoids a breaking change.
66
+ supportsDates: false,
67
+ customTransformInput: ({ data, fieldAttributes }) => {
68
+ if (data && fieldAttributes.type === "date") {
69
+ return new Date(data).getTime();
70
+ }
71
+ return data;
72
+ },
73
+ customTransformOutput: ({ data, fieldAttributes }) => {
74
+ if (data && fieldAttributes.type === "date") {
75
+ return new Date(data).getTime();
65
76
  }
66
- if (model === "verification" && where[0].field === "identifier") {
67
- return ctx.runQuery(component.component.lib.listVerificationsByIdentifier, {
68
- identifier: where[0].value,
69
- sortBy,
70
- limit,
77
+ return data;
78
+ },
79
+ },
80
+ adapter: () => {
81
+ return {
82
+ id: "convex",
83
+ create: async ({ model, data, select }) => {
84
+ if (!("runMutation" in ctx)) {
85
+ throw new Error("ctx is not a mutation ctx");
86
+ }
87
+ if (select) {
88
+ throw new Error("select is not supported");
89
+ }
90
+ const createFn = model === "user"
91
+ ? component.config.authFunctions.createUser
92
+ : model === "session"
93
+ ? component.config.authFunctions.createSession
94
+ : component.component.lib.create;
95
+ return await ctx.runMutation(createFn, {
96
+ input: { model, data },
71
97
  });
72
- }
73
- if (model === "account" && where[0].field === "userId" && !sortBy) {
74
- return ctx.runQuery(component.component.lib.getAccountsByUserId, {
75
- userId: where[0].value,
76
- limit,
98
+ },
99
+ findOne: async (data) => {
100
+ if (data.where?.every((w) => w.connector === "OR")) {
101
+ for (const w of data.where) {
102
+ const result = await ctx.runQuery(component.component.lib.findOne, {
103
+ ...data,
104
+ where: parseWhere([w]),
105
+ });
106
+ if (result) {
107
+ return result;
108
+ }
109
+ }
110
+ }
111
+ return await ctx.runQuery(component.component.lib.findOne, {
112
+ ...data,
113
+ where: parseWhere(data.where),
77
114
  });
78
- }
79
- if (model === "session" && where[0].field === "userId" && !sortBy) {
80
- return ctx.runQuery(component.component.lib.getSessionsByUserId, {
81
- userId: where[0].value,
82
- limit,
115
+ },
116
+ findMany: async (data) => {
117
+ if (data.offset) {
118
+ throw new Error("offset not supported");
119
+ }
120
+ if (data.where?.some((w) => w.connector === "OR")) {
121
+ throw new Error("OR connector not supported in findMany");
122
+ }
123
+ const result = await handlePagination(async ({ paginationOpts }) => {
124
+ return await ctx.runQuery(component.component.lib.findMany, {
125
+ ...data,
126
+ where: parseWhere(data.where),
127
+ paginationOpts,
128
+ });
129
+ }, { limit: data.limit });
130
+ return result.docs;
131
+ },
132
+ count: async (data) => {
133
+ // Yes, count is just findMany returning a number.
134
+ if (data.where?.some((w) => w.connector === "OR")) {
135
+ throw new Error("OR connector not supported in findMany");
136
+ }
137
+ const result = await handlePagination(async ({ paginationOpts }) => {
138
+ return await ctx.runQuery(component.component.lib.findMany, {
139
+ ...data,
140
+ where: parseWhere(data.where),
141
+ paginationOpts,
142
+ });
83
143
  });
84
- }
85
- throw new Error("where clause not supported");
86
- },
87
- count: async ({ where }) => {
88
- throw new Error("count not implemented");
89
- // return 0;
90
- },
91
- update: async ({ model, where, update }) => {
92
- if (!("runMutation" in ctx)) {
93
- throw new Error("ctx is not an action ctx");
94
- }
95
- if (where?.length === 1 && where[0].operator === "eq") {
96
- const { value, field } = where[0];
97
- const updateFn = model === "user"
98
- ? component.config.authFunctions.updateUser
99
- : component.component.lib.update;
100
- return ctx.runMutation(updateFn, {
101
- input: {
102
- table: model,
103
- where: {
104
- field,
105
- value: value instanceof Date ? value.getTime() : value,
144
+ return result.docs?.length ?? 0;
145
+ },
146
+ update: async (data) => {
147
+ if (!("runMutation" in ctx)) {
148
+ throw new Error("ctx is not a mutation ctx");
149
+ }
150
+ if (data.where?.length === 1 && data.where[0].operator === "eq") {
151
+ const updateFn = data.model === "user"
152
+ ? component.config.authFunctions.updateUser
153
+ : component.component.lib.updateOne;
154
+ return ctx.runMutation(updateFn, {
155
+ input: {
156
+ model: data.model,
157
+ where: parseWhere(data.where),
158
+ update: data.update,
106
159
  },
107
- value: transformInput(model, update),
108
- },
109
- });
110
- }
111
- throw new Error("where clause not supported");
112
- },
113
- delete: async ({ model, where }) => {
114
- if (!("runMutation" in ctx)) {
115
- throw new Error("ctx is not an action ctx");
116
- }
117
- if (where?.length === 1 && where[0].operator === "eq") {
118
- const { field, value } = where[0];
119
- const deleteFn = model === "user"
160
+ });
161
+ }
162
+ throw new Error("where clause not supported");
163
+ },
164
+ delete: async (data) => {
165
+ if (!("runMutation" in ctx)) {
166
+ throw new Error("ctx is not a mutation ctx");
167
+ }
168
+ const deleteFn = data.model === "user"
120
169
  ? component.config.authFunctions.deleteUser
121
- : component.component.lib.deleteBy;
170
+ : component.component.lib.deleteOne;
122
171
  await ctx.runMutation(deleteFn, {
123
- table: model,
124
- field,
125
- value: value instanceof Date ? value.getTime() : value,
172
+ model: data.model,
173
+ where: parseWhere(data.where),
126
174
  });
127
175
  return;
128
- }
129
- throw new Error("where clause not supported");
130
- // return null
131
- },
132
- deleteMany: async ({ model, where }) => {
133
- if (!("runAction" in ctx)) {
134
- throw new Error("ctx is not an action ctx");
135
- }
136
- if (model === "verification" &&
137
- where?.length === 1 &&
138
- where[0].operator === "lt" &&
139
- where[0].field === "expiresAt") {
140
- return ctx.runAction(component.component.lib.deleteOldVerifications, {
141
- currentTimestamp: Date.now(),
142
- });
143
- }
144
- if (where?.length === 1 && where[0].field === "userId") {
145
- return ctx.runAction(component.component.lib.deleteAllForUser, {
146
- table: model,
147
- userId: where[0].value,
148
- });
149
- }
150
- if (model === "session" &&
151
- where?.length === 2 &&
152
- where[0].operator === "eq" &&
153
- where[0].connector === "AND" &&
154
- where[0].field === "userId" &&
155
- where[1].operator === "lte" &&
156
- where[1].field === "expiresAt" &&
157
- typeof where[1].value === "number") {
158
- return ctx.runMutation(component.component.lib.deleteExpiredSessions, {
159
- userId: where[0].value,
160
- expiresAt: where[1].value,
161
- });
162
- }
163
- throw new Error("where clause not supported");
164
- // return count;
165
- },
166
- updateMany: async ({ model, where, update }) => {
167
- if (!("runMutation" in ctx)) {
168
- throw new Error("ctx is not an action ctx");
169
- }
170
- if (model === "twoFactor" &&
171
- where?.length === 1 &&
172
- where[0].operator === "eq" &&
173
- where[0].field === "userId") {
174
- return ctx.runMutation(component.component.lib.updateTwoFactor, {
175
- userId: where[0].value,
176
- update: transformInput(model, update),
176
+ },
177
+ deleteMany: async (data) => {
178
+ if (!("runMutation" in ctx)) {
179
+ throw new Error("ctx is not a mutation ctx");
180
+ }
181
+ const result = await handlePagination(async ({ paginationOpts }) => {
182
+ return await ctx.runMutation(component.component.lib.deleteMany, {
183
+ ...data,
184
+ where: parseWhere(data.where),
185
+ paginationOpts,
186
+ });
177
187
  });
178
- }
179
- if (model === "account" &&
180
- where?.length === 2 &&
181
- where[0].operator === "eq" &&
182
- where[0].connector === "AND" &&
183
- where[0].field === "userId" &&
184
- where[1].operator === "eq" &&
185
- where[1].field === "providerId") {
186
- return ctx.runMutation(component.component.lib.updateUserProviderAccounts, {
187
- userId: where[0].value,
188
- providerId: where[1].value,
189
- update: transformInput(model, update),
188
+ return result.count;
189
+ },
190
+ updateMany: async (data) => {
191
+ if (!("runMutation" in ctx)) {
192
+ throw new Error("ctx is not an action ctx");
193
+ }
194
+ const result = await handlePagination(async ({ paginationOpts }) => {
195
+ return await ctx.runMutation(component.component.lib.updateMany, {
196
+ input: {
197
+ ...data,
198
+ where: parseWhere(data.where),
199
+ paginationOpts,
200
+ },
201
+ });
190
202
  });
191
- }
192
- throw new Error("updateMany not implemented");
193
- //return 0;
194
- /*
195
- const { model, where, update } = data;
196
- const table = db[model];
197
- const res = convertWhereClause(where, table, model);
198
- res.forEach((record) => {
199
- Object.assign(record, update);
200
- });
201
- return res[0] || null;
202
- */
203
- },
204
- };
205
- },
206
- });
203
+ return result.count;
204
+ },
205
+ };
206
+ },
207
+ });
208
+ };
207
209
  //# sourceMappingURL=adapter.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"adapter.js","sourceRoot":"","sources":["../../../src/client/adapter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"adapter.js","sourceRoot":"","sources":["../../../src/client/adapter.ts"],"names":[],"mappings":"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"}