@coursebuilder/adapter-drizzle 0.1.2 → 0.1.3

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 (100) hide show
  1. package/dist/{chunk-ISURSRBK.js → chunk-3LWFRGZT.js} +519 -313
  2. package/dist/{chunk-RVYJDDZD.js → chunk-NXFHRDLS.js} +2 -2
  3. package/dist/{chunk-44VDBYFU.js → chunk-QK6CINAJ.js} +3 -3
  4. package/dist/{chunk-MYRB6GLJ.js → chunk-ULABK6XG.js} +2 -2
  5. package/dist/{chunk-DHYYRN35.js → chunk-XSXWLOIN.js} +4624 -448
  6. package/dist/{chunk-QZOBGJSV.js → chunk-XXZQBN6S.js} +2 -2
  7. package/dist/index.d.ts +0 -2
  8. package/dist/index.js +11 -27
  9. package/dist/lib/mysql/index.cjs +880 -721
  10. package/dist/lib/mysql/index.cjs.map +1 -1
  11. package/dist/lib/mysql/index.d.ts +212 -10
  12. package/dist/lib/mysql/index.js +11 -14
  13. package/dist/lib/mysql/schemas/auth/accounts.cjs +73 -57
  14. package/dist/lib/mysql/schemas/auth/accounts.cjs.map +1 -1
  15. package/dist/lib/mysql/schemas/auth/accounts.js +5 -4
  16. package/dist/lib/mysql/schemas/auth/role-permissions.cjs +64 -48
  17. package/dist/lib/mysql/schemas/auth/role-permissions.cjs.map +1 -1
  18. package/dist/lib/mysql/schemas/auth/role-permissions.js +6 -5
  19. package/dist/lib/mysql/schemas/auth/roles.cjs +64 -48
  20. package/dist/lib/mysql/schemas/auth/roles.cjs.map +1 -1
  21. package/dist/lib/mysql/schemas/auth/roles.js +5 -4
  22. package/dist/lib/mysql/schemas/auth/sessions.cjs +64 -48
  23. package/dist/lib/mysql/schemas/auth/sessions.cjs.map +1 -1
  24. package/dist/lib/mysql/schemas/auth/sessions.js +6 -5
  25. package/dist/lib/mysql/schemas/auth/user-permissions.cjs +65 -49
  26. package/dist/lib/mysql/schemas/auth/user-permissions.cjs.map +1 -1
  27. package/dist/lib/mysql/schemas/auth/user-permissions.js +5 -4
  28. package/dist/lib/mysql/schemas/auth/user-roles.cjs +67 -51
  29. package/dist/lib/mysql/schemas/auth/user-roles.cjs.map +1 -1
  30. package/dist/lib/mysql/schemas/auth/user-roles.js +5 -4
  31. package/dist/lib/mysql/schemas/auth/users.cjs +170 -154
  32. package/dist/lib/mysql/schemas/auth/users.cjs.map +1 -1
  33. package/dist/lib/mysql/schemas/auth/users.js +5 -4
  34. package/dist/lib/mysql/schemas/commerce/coupon.cjs +1 -1
  35. package/dist/lib/mysql/schemas/commerce/coupon.cjs.map +1 -1
  36. package/dist/lib/mysql/schemas/commerce/coupon.d.ts +4 -4
  37. package/dist/lib/mysql/schemas/commerce/coupon.js +1 -1
  38. package/dist/lib/mysql/schemas/commerce/price.cjs +189 -11
  39. package/dist/lib/mysql/schemas/commerce/price.cjs.map +1 -1
  40. package/dist/lib/mysql/schemas/commerce/price.d.ts +6 -1
  41. package/dist/lib/mysql/schemas/commerce/price.js +14 -3
  42. package/dist/lib/mysql/schemas/commerce/product.cjs +227 -9
  43. package/dist/lib/mysql/schemas/commerce/product.cjs.map +1 -1
  44. package/dist/lib/mysql/schemas/commerce/product.d.ts +8 -2
  45. package/dist/lib/mysql/schemas/commerce/product.js +12 -1
  46. package/dist/lib/mysql/schemas/commerce/purchase.cjs +140 -122
  47. package/dist/lib/mysql/schemas/commerce/purchase.cjs.map +1 -1
  48. package/dist/lib/mysql/schemas/commerce/purchase.js +5 -4
  49. package/dist/lib/mysql/schemas/commerce/upgradable-products.cjs +107 -24
  50. package/dist/lib/mysql/schemas/commerce/upgradable-products.cjs.map +1 -1
  51. package/dist/lib/mysql/schemas/commerce/upgradable-products.js +11 -2
  52. package/dist/lib/mysql/schemas/communication/communication-preferences.cjs +84 -68
  53. package/dist/lib/mysql/schemas/communication/communication-preferences.cjs.map +1 -1
  54. package/dist/lib/mysql/schemas/communication/communication-preferences.js +5 -4
  55. package/dist/lib/mysql/schemas/content/content-contributions.cjs +92 -76
  56. package/dist/lib/mysql/schemas/content/content-contributions.cjs.map +1 -1
  57. package/dist/lib/mysql/schemas/content/content-contributions.js +5 -4
  58. package/dist/lib/mysql/schemas/content/content-resource-product.cjs +243 -0
  59. package/dist/lib/mysql/schemas/content/content-resource-product.cjs.map +1 -0
  60. package/dist/lib/mysql/schemas/content/content-resource-product.d.ts +101 -0
  61. package/dist/lib/mysql/schemas/content/content-resource-product.js +19 -0
  62. package/dist/lib/mysql/schemas/content/content-resource-resource.cjs +67 -51
  63. package/dist/lib/mysql/schemas/content/content-resource-resource.cjs.map +1 -1
  64. package/dist/lib/mysql/schemas/content/content-resource-resource.js +5 -4
  65. package/dist/lib/mysql/schemas/content/content-resource.cjs +116 -62
  66. package/dist/lib/mysql/schemas/content/content-resource.cjs.map +1 -1
  67. package/dist/lib/mysql/schemas/content/content-resource.d.ts +1 -0
  68. package/dist/lib/mysql/schemas/content/content-resource.js +5 -4
  69. package/dist/lib/utils.cjs.map +1 -1
  70. package/dist/lib/utils.d.ts +3 -7
  71. package/dist/lib/utils.js +12 -3
  72. package/dist/lib/utils.js.map +1 -1
  73. package/package.json +2 -2
  74. package/src/index.ts +0 -8
  75. package/src/lib/mysql/index.ts +154 -23
  76. package/src/lib/mysql/schemas/auth/user-roles.ts +2 -2
  77. package/src/lib/mysql/schemas/commerce/coupon.ts +2 -2
  78. package/src/lib/mysql/schemas/commerce/price.ts +22 -1
  79. package/src/lib/mysql/schemas/commerce/product.ts +26 -2
  80. package/src/lib/mysql/schemas/content/content-resource-product.ts +62 -0
  81. package/src/lib/mysql/schemas/content/content-resource.ts +5 -0
  82. package/src/lib/utils.ts +1 -9
  83. package/dist/chunk-7LAAAEVE.js +0 -379
  84. package/dist/chunk-AFQGYW7Z.js +0 -45
  85. package/dist/chunk-CPE4P26C.js +0 -42
  86. package/dist/chunk-GFUUJRX7.js +0 -18
  87. package/dist/chunk-O2KKII62.js +0 -381
  88. package/dist/chunk-Y34AIPU7.js +0 -4137
  89. package/dist/lib/pg.cjs +0 -4527
  90. package/dist/lib/pg.cjs.map +0 -1
  91. package/dist/lib/pg.d.ts +0 -496
  92. package/dist/lib/pg.js +0 -11
  93. package/dist/lib/sqlite.cjs +0 -4536
  94. package/dist/lib/sqlite.cjs.map +0 -1
  95. package/dist/lib/sqlite.d.ts +0 -496
  96. package/dist/lib/sqlite.js +0 -12
  97. package/dist/lib/sqlite.js.map +0 -1
  98. package/src/lib/pg.ts +0 -579
  99. package/src/lib/sqlite.ts +0 -562
  100. /package/dist/lib/{pg.js.map → mysql/schemas/content/content-resource-product.js.map} +0 -0
@@ -1,381 +0,0 @@
1
- import {
2
- stripUndefined
3
- } from "./chunk-GFUUJRX7.js";
4
- import {
5
- ContentResourceSchema
6
- } from "./chunk-Y34AIPU7.js";
7
- import {
8
- __name
9
- } from "./chunk-VNI36MMC.js";
10
-
11
- // src/lib/sqlite.ts
12
- import { and, asc, eq, sql } from "drizzle-orm";
13
- import { sqliteTable as defaultSqliteTableFn, integer, primaryKey, text } from "drizzle-orm/sqlite-core";
14
- function createTables(sqliteTable) {
15
- const users = sqliteTable("user", {
16
- id: text("id").notNull().primaryKey(),
17
- name: text("name"),
18
- role: text("role", {
19
- enum: [
20
- "user",
21
- "admin"
22
- ]
23
- }).default("user"),
24
- email: text("email").notNull(),
25
- emailVerified: integer("emailVerified", {
26
- mode: "timestamp_ms"
27
- }),
28
- image: text("image")
29
- });
30
- const accounts = sqliteTable("account", {
31
- userId: text("userId").notNull().references(() => users.id, {
32
- onDelete: "cascade"
33
- }),
34
- type: text("type").$type().notNull(),
35
- provider: text("provider").notNull(),
36
- providerAccountId: text("providerAccountId").notNull(),
37
- refresh_token: text("refresh_token"),
38
- access_token: text("access_token"),
39
- expires_at: integer("expires_at"),
40
- token_type: text("token_type"),
41
- scope: text("scope"),
42
- id_token: text("id_token"),
43
- session_state: text("session_state")
44
- }, (account) => ({
45
- pk: primaryKey({
46
- columns: [
47
- account.provider,
48
- account.providerAccountId
49
- ]
50
- })
51
- }));
52
- const sessions = sqliteTable("session", {
53
- sessionToken: text("sessionToken").notNull().primaryKey(),
54
- userId: text("userId").notNull().references(() => users.id, {
55
- onDelete: "cascade"
56
- }),
57
- expires: integer("expires", {
58
- mode: "timestamp_ms"
59
- }).notNull()
60
- });
61
- const verificationTokens = sqliteTable("verificationToken", {
62
- identifier: text("identifier").notNull(),
63
- token: text("token").notNull(),
64
- expires: integer("expires", {
65
- mode: "timestamp_ms"
66
- }).notNull()
67
- }, (vt) => ({
68
- pk: primaryKey({
69
- columns: [
70
- vt.identifier,
71
- vt.token
72
- ]
73
- })
74
- }));
75
- const contentResource = sqliteTable("contentResource", {
76
- id: text("id", {
77
- length: 255
78
- }).notNull().primaryKey(),
79
- type: text("type", {
80
- length: 255
81
- }).notNull(),
82
- createdById: text("createdById", {
83
- length: 255
84
- }).notNull(),
85
- fields: text("metadata", {
86
- mode: "json"
87
- }).$type().default({}),
88
- createdAt: integer("createdAt", {
89
- mode: "timestamp_ms"
90
- }).default(sql`CURRENT_TIME`),
91
- updatedAt: integer("updatedAt", {
92
- mode: "timestamp_ms"
93
- }).default(sql`CURRENT_TIME`),
94
- deletedAt: integer("deletedAt", {
95
- mode: "timestamp_ms"
96
- })
97
- });
98
- const contentResourceResource = sqliteTable("contentResourceResource", {
99
- resourceOfId: text("resourceOfId", {
100
- length: 255
101
- }).notNull(),
102
- resourceId: text("resourceId", {
103
- length: 255
104
- }).notNull(),
105
- position: integer("position").notNull().default(0),
106
- metadata: text("metadata", {
107
- mode: "json"
108
- }).$type().default({}),
109
- createdAt: integer("createdAt", {
110
- mode: "timestamp_ms"
111
- }).default(sql`CURRENT_TIME`),
112
- updatedAt: integer("updatedAt", {
113
- mode: "timestamp_ms"
114
- }).default(sql`CURRENT_TIME`),
115
- deletedAt: integer("deletedAt", {
116
- mode: "timestamp_ms"
117
- })
118
- }, (crr) => ({
119
- pk: primaryKey({
120
- columns: [
121
- crr.resourceOfId,
122
- crr.resourceId
123
- ]
124
- })
125
- }));
126
- return {
127
- users,
128
- accounts,
129
- sessions,
130
- verificationTokens,
131
- contentResource,
132
- contentResourceResource
133
- };
134
- }
135
- __name(createTables, "createTables");
136
- function SQLiteDrizzleAdapter(client, tableFn = defaultSqliteTableFn) {
137
- const { users, accounts, sessions, verificationTokens, contentResource, contentResourceResource } = createTables(tableFn);
138
- return {
139
- client,
140
- availableUpgradesForProduct(purchases, productId) {
141
- return Promise.resolve([]);
142
- },
143
- clearLessonProgressForUser(options) {
144
- return Promise.resolve(void 0);
145
- },
146
- completeLessonProgressForUser(options) {
147
- return Promise.resolve(null);
148
- },
149
- couponForIdOrCode(options) {
150
- return Promise.resolve(null);
151
- },
152
- createMerchantChargeAndPurchase(options) {
153
- throw new Error("Method not implemented.");
154
- },
155
- findOrCreateMerchantCustomer(options) {
156
- return Promise.resolve(null);
157
- },
158
- findOrCreateUser(email, name) {
159
- throw new Error("Method not implemented.");
160
- },
161
- getCoupon(couponIdOrCode) {
162
- return Promise.resolve(null);
163
- },
164
- getCouponWithBulkPurchases(couponId) {
165
- return Promise.resolve(null);
166
- },
167
- getDefaultCoupon(productIds) {
168
- return Promise.resolve(null);
169
- },
170
- getLessonProgressCountsByDate() {
171
- return Promise.resolve([]);
172
- },
173
- getLessonProgressForUser(userId) {
174
- return Promise.resolve([]);
175
- },
176
- getLessonProgresses() {
177
- return Promise.resolve([]);
178
- },
179
- getMerchantCharge(merchantChargeId) {
180
- return Promise.resolve(null);
181
- },
182
- getMerchantCoupon(merchantCouponId) {
183
- return Promise.resolve(null);
184
- },
185
- getMerchantProduct(stripeProductId) {
186
- return Promise.resolve(null);
187
- },
188
- getPrice(productId) {
189
- return Promise.resolve(null);
190
- },
191
- getProduct(productId) {
192
- return Promise.resolve(null);
193
- },
194
- getPurchase(purchaseId) {
195
- return Promise.resolve(null);
196
- },
197
- getPurchaseDetails(purchaseId, userId) {
198
- return Promise.resolve({
199
- availableUpgrades: []
200
- });
201
- },
202
- getPurchaseForStripeCharge(stripeChargeId) {
203
- return Promise.resolve(null);
204
- },
205
- getPurchaseUserTransferById(options) {
206
- return Promise.resolve(null);
207
- },
208
- getPurchaseWithUser(purchaseId) {
209
- return Promise.resolve(null);
210
- },
211
- getPurchasesForUser(userId) {
212
- return Promise.resolve([]);
213
- },
214
- getUserById(userId) {
215
- return Promise.resolve(null);
216
- },
217
- pricesOfPurchasesTowardOneBundle(options) {
218
- return Promise.resolve([]);
219
- },
220
- async createPurchase(options) {
221
- throw new Error("Method not implemented.");
222
- },
223
- toggleLessonProgressForUser(options) {
224
- return Promise.resolve(null);
225
- },
226
- transferPurchasesToNewUser(options) {
227
- return Promise.resolve(void 0);
228
- },
229
- updatePurchaseStatusForCharge(chargeId, status) {
230
- return Promise.resolve(void 0);
231
- },
232
- updatePurchaseUserTransferTransferState(options) {
233
- return Promise.resolve(null);
234
- },
235
- async addResourceToResource(options) {
236
- return null;
237
- },
238
- async updateContentResourceFields(options) {
239
- return null;
240
- },
241
- async getVideoResource(id) {
242
- return null;
243
- },
244
- async createContentResource(data) {
245
- const id = data.id || crypto.randomUUID();
246
- await client.insert(contentResource).values({
247
- ...data,
248
- id
249
- });
250
- const resource = await client.query.contentResource.findFirst({
251
- where: eq(contentResource.id, id),
252
- with: {
253
- resources: {
254
- with: {
255
- resource: {
256
- with: {
257
- resources: {
258
- with: {
259
- resource: true
260
- },
261
- orderBy: asc(contentResourceResource.position)
262
- }
263
- }
264
- }
265
- },
266
- orderBy: asc(contentResourceResource.position)
267
- }
268
- }
269
- });
270
- const parsedResource = ContentResourceSchema.safeParse(resource);
271
- if (!parsedResource.success) {
272
- console.error("Error parsing resource", resource);
273
- throw new Error("Error parsing resource");
274
- }
275
- return parsedResource.data;
276
- },
277
- async getContentResource(data) {
278
- const resource = await client.query.contentResource.findFirst({
279
- where: eq(contentResource.id, data),
280
- with: {
281
- resources: {
282
- with: {
283
- resource: {
284
- with: {
285
- resources: {
286
- with: {
287
- resource: true
288
- },
289
- orderBy: asc(contentResourceResource.position)
290
- }
291
- }
292
- }
293
- },
294
- orderBy: asc(contentResourceResource.position)
295
- }
296
- }
297
- });
298
- const parsedResource = ContentResourceSchema.safeParse(resource);
299
- if (!parsedResource.success) {
300
- console.error("Error parsing resource", resource);
301
- return null;
302
- }
303
- return parsedResource.data;
304
- },
305
- async createUser(data) {
306
- return client.insert(users).values({
307
- ...data,
308
- id: crypto.randomUUID()
309
- }).returning().get();
310
- },
311
- async getUser(data) {
312
- const result = await client.select().from(users).where(eq(users.id, data)).get();
313
- return result ?? null;
314
- },
315
- async getUserByEmail(data) {
316
- const result = await client.select().from(users).where(eq(users.email, data)).get();
317
- return result ?? null;
318
- },
319
- createSession(data) {
320
- return client.insert(sessions).values(data).returning().get();
321
- },
322
- async getSessionAndUser(data) {
323
- const result = await client.select({
324
- session: sessions,
325
- user: users
326
- }).from(sessions).where(eq(sessions.sessionToken, data)).innerJoin(users, eq(users.id, sessions.userId)).get();
327
- return result ?? null;
328
- },
329
- async updateUser(data) {
330
- if (!data.id) {
331
- throw new Error("No user id.");
332
- }
333
- const result = await client.update(users).set(data).where(eq(users.id, data.id)).returning().get();
334
- return result ?? null;
335
- },
336
- async updateSession(data) {
337
- const result = await client.update(sessions).set(data).where(eq(sessions.sessionToken, data.sessionToken)).returning().get();
338
- return result ?? null;
339
- },
340
- async linkAccount(rawAccount) {
341
- return stripUndefined(await client.insert(accounts).values(rawAccount).returning().get());
342
- },
343
- async getUserByAccount(account) {
344
- const results = await client.select().from(accounts).leftJoin(users, eq(users.id, accounts.userId)).where(and(eq(accounts.provider, account.provider), eq(accounts.providerAccountId, account.providerAccountId))).get();
345
- if (!results) {
346
- return null;
347
- }
348
- return Promise.resolve(results).then((results2) => results2.user);
349
- },
350
- async deleteSession(sessionToken) {
351
- const result = await client.delete(sessions).where(eq(sessions.sessionToken, sessionToken)).returning().get();
352
- return result ?? null;
353
- },
354
- async createVerificationToken(token) {
355
- const result = await client.insert(verificationTokens).values(token).returning().get();
356
- return result ?? null;
357
- },
358
- async useVerificationToken(token) {
359
- try {
360
- const result = await client.delete(verificationTokens).where(and(eq(verificationTokens.identifier, token.identifier), eq(verificationTokens.token, token.token))).returning().get();
361
- return result ?? null;
362
- } catch (err) {
363
- throw new Error("No verification token found.");
364
- }
365
- },
366
- async deleteUser(id) {
367
- const result = await client.delete(users).where(eq(users.id, id)).returning().get();
368
- return result ?? null;
369
- },
370
- async unlinkAccount(account) {
371
- await client.delete(accounts).where(and(eq(accounts.providerAccountId, account.providerAccountId), eq(accounts.provider, account.provider))).run();
372
- }
373
- };
374
- }
375
- __name(SQLiteDrizzleAdapter, "SQLiteDrizzleAdapter");
376
-
377
- export {
378
- createTables,
379
- SQLiteDrizzleAdapter
380
- };
381
- //# sourceMappingURL=chunk-O2KKII62.js.map