@coursebuilder/adapter-drizzle 0.0.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.
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2023 Skill Recordings Inc.
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/index.d.ts ADDED
@@ -0,0 +1,6 @@
1
+ import { createTables as createMySqlTables } from './lib/mysql.js';
2
+ import { SqlFlavorOptions, TableFn } from './lib/utils.js';
3
+ type NO_IT_AINT = any;
4
+ export declare function DrizzleAdapter<SqlFlavor extends SqlFlavorOptions>(db: SqlFlavor, table?: TableFn<SqlFlavor>): NO_IT_AINT;
5
+ export { createMySqlTables };
6
+ //# sourceMappingURL=index.d.ts.map
package/index.d.ts.map ADDED
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["src/index.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,YAAY,IAAI,iBAAiB,EAAuB,MAAM,gBAAgB,CAAA;AAGvF,OAAO,EAAE,gBAAgB,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAA;AAE1D,KAAK,UAAU,GAAG,GAAG,CAAA;AAErB,wBAAgB,cAAc,CAAC,SAAS,SAAS,gBAAgB,EAC/D,EAAE,EAAE,SAAS,EACb,KAAK,CAAC,EAAE,OAAO,CAAC,SAAS,CAAC,GACzB,UAAU,CAUZ;AAED,OAAO,EAAE,iBAAiB,EAAE,CAAA"}
package/index.js ADDED
@@ -0,0 +1,20 @@
1
+ import { is } from 'drizzle-orm';
2
+ import { MySqlDatabase } from 'drizzle-orm/mysql-core';
3
+ import { PgDatabase } from 'drizzle-orm/pg-core';
4
+ import { BaseSQLiteDatabase } from 'drizzle-orm/sqlite-core';
5
+ import { createTables as createMySqlTables, mySqlDrizzleAdapter } from './lib/mysql.js';
6
+ import { pgDrizzleAdapter } from './lib/pg.js';
7
+ import { SQLiteDrizzleAdapter } from './lib/sqlite.js';
8
+ export function DrizzleAdapter(db, table) {
9
+ if (is(db, MySqlDatabase)) {
10
+ return mySqlDrizzleAdapter(db, table);
11
+ }
12
+ else if (is(db, PgDatabase)) {
13
+ return pgDrizzleAdapter(db, table);
14
+ }
15
+ else if (is(db, BaseSQLiteDatabase)) {
16
+ return SQLiteDrizzleAdapter(db, table);
17
+ }
18
+ throw new Error(`Unsupported database type (${typeof db}) in Auth.js Drizzle adapter.`);
19
+ }
20
+ export { createMySqlTables };
package/lib/mysql.d.ts ADDED
@@ -0,0 +1,505 @@
1
+ import { MySqlDatabase, MySqlTableFn } from 'drizzle-orm/mysql-core';
2
+ import { CourseBuilderAdapter } from '@coursebuilder/core/adapters';
3
+ export declare function createTables(mySqlTable: MySqlTableFn): {
4
+ users: import("drizzle-orm/mysql-core").MySqlTableWithColumns<{
5
+ name: "user";
6
+ schema: undefined;
7
+ columns: {
8
+ id: import("drizzle-orm/mysql-core").MySqlColumn<{
9
+ name: "id";
10
+ tableName: "user";
11
+ dataType: "string";
12
+ columnType: "MySqlVarChar";
13
+ data: string;
14
+ driverParam: string | number;
15
+ notNull: true;
16
+ hasDefault: false;
17
+ enumValues: [string, ...string[]];
18
+ baseColumn: never;
19
+ }, object>;
20
+ name: import("drizzle-orm/mysql-core").MySqlColumn<{
21
+ name: "name";
22
+ tableName: "user";
23
+ dataType: "string";
24
+ columnType: "MySqlVarChar";
25
+ data: string;
26
+ driverParam: string | number;
27
+ notNull: false;
28
+ hasDefault: false;
29
+ enumValues: [string, ...string[]];
30
+ baseColumn: never;
31
+ }, object>;
32
+ email: import("drizzle-orm/mysql-core").MySqlColumn<{
33
+ name: "email";
34
+ tableName: "user";
35
+ dataType: "string";
36
+ columnType: "MySqlVarChar";
37
+ data: string;
38
+ driverParam: string | number;
39
+ notNull: true;
40
+ hasDefault: false;
41
+ enumValues: [string, ...string[]];
42
+ baseColumn: never;
43
+ }, object>;
44
+ role: import("drizzle-orm/mysql-core").MySqlColumn<{
45
+ name: "role";
46
+ tableName: "user";
47
+ dataType: "string";
48
+ columnType: "MySqlEnumColumn";
49
+ data: "user" | "admin";
50
+ driverParam: string;
51
+ notNull: false;
52
+ hasDefault: true;
53
+ enumValues: ["user", "admin"];
54
+ baseColumn: never;
55
+ }, object>;
56
+ emailVerified: import("drizzle-orm/mysql-core").MySqlColumn<{
57
+ name: "emailVerified";
58
+ tableName: "user";
59
+ dataType: "date";
60
+ columnType: "MySqlTimestamp";
61
+ data: Date;
62
+ driverParam: string | number;
63
+ notNull: false;
64
+ hasDefault: true;
65
+ enumValues: undefined;
66
+ baseColumn: never;
67
+ }, object>;
68
+ image: import("drizzle-orm/mysql-core").MySqlColumn<{
69
+ name: "image";
70
+ tableName: "user";
71
+ dataType: "string";
72
+ columnType: "MySqlVarChar";
73
+ data: string;
74
+ driverParam: string | number;
75
+ notNull: false;
76
+ hasDefault: false;
77
+ enumValues: [string, ...string[]];
78
+ baseColumn: never;
79
+ }, object>;
80
+ };
81
+ dialect: "mysql";
82
+ }>;
83
+ accounts: import("drizzle-orm/mysql-core").MySqlTableWithColumns<{
84
+ name: "account";
85
+ schema: undefined;
86
+ columns: {
87
+ userId: import("drizzle-orm/mysql-core").MySqlColumn<{
88
+ name: "userId";
89
+ tableName: "account";
90
+ dataType: "string";
91
+ columnType: "MySqlVarChar";
92
+ data: string;
93
+ driverParam: string | number;
94
+ notNull: true;
95
+ hasDefault: false;
96
+ enumValues: [string, ...string[]];
97
+ baseColumn: never;
98
+ }, object>;
99
+ type: import("drizzle-orm/mysql-core").MySqlColumn<{
100
+ name: "type";
101
+ tableName: "account";
102
+ dataType: "string";
103
+ columnType: "MySqlVarChar";
104
+ data: "email" | "oidc" | "oauth" | "webauthn";
105
+ driverParam: string | number;
106
+ notNull: true;
107
+ hasDefault: false;
108
+ enumValues: [string, ...string[]];
109
+ baseColumn: never;
110
+ }, object>;
111
+ provider: import("drizzle-orm/mysql-core").MySqlColumn<{
112
+ name: "provider";
113
+ tableName: "account";
114
+ dataType: "string";
115
+ columnType: "MySqlVarChar";
116
+ data: string;
117
+ driverParam: string | number;
118
+ notNull: true;
119
+ hasDefault: false;
120
+ enumValues: [string, ...string[]];
121
+ baseColumn: never;
122
+ }, object>;
123
+ providerAccountId: import("drizzle-orm/mysql-core").MySqlColumn<{
124
+ name: "providerAccountId";
125
+ tableName: "account";
126
+ dataType: "string";
127
+ columnType: "MySqlVarChar";
128
+ data: string;
129
+ driverParam: string | number;
130
+ notNull: true;
131
+ hasDefault: false;
132
+ enumValues: [string, ...string[]];
133
+ baseColumn: never;
134
+ }, object>;
135
+ refresh_token: import("drizzle-orm/mysql-core").MySqlColumn<{
136
+ name: "refresh_token";
137
+ tableName: "account";
138
+ dataType: "string";
139
+ columnType: "MySqlVarChar";
140
+ data: string;
141
+ driverParam: string | number;
142
+ notNull: false;
143
+ hasDefault: false;
144
+ enumValues: [string, ...string[]];
145
+ baseColumn: never;
146
+ }, object>;
147
+ access_token: import("drizzle-orm/mysql-core").MySqlColumn<{
148
+ name: "access_token";
149
+ tableName: "account";
150
+ dataType: "string";
151
+ columnType: "MySqlVarChar";
152
+ data: string;
153
+ driverParam: string | number;
154
+ notNull: false;
155
+ hasDefault: false;
156
+ enumValues: [string, ...string[]];
157
+ baseColumn: never;
158
+ }, object>;
159
+ expires_at: import("drizzle-orm/mysql-core").MySqlColumn<{
160
+ name: "expires_at";
161
+ tableName: "account";
162
+ dataType: "number";
163
+ columnType: "MySqlInt";
164
+ data: number;
165
+ driverParam: string | number;
166
+ notNull: false;
167
+ hasDefault: false;
168
+ enumValues: undefined;
169
+ baseColumn: never;
170
+ }, object>;
171
+ token_type: import("drizzle-orm/mysql-core").MySqlColumn<{
172
+ name: "token_type";
173
+ tableName: "account";
174
+ dataType: "string";
175
+ columnType: "MySqlVarChar";
176
+ data: string;
177
+ driverParam: string | number;
178
+ notNull: false;
179
+ hasDefault: false;
180
+ enumValues: [string, ...string[]];
181
+ baseColumn: never;
182
+ }, object>;
183
+ scope: import("drizzle-orm/mysql-core").MySqlColumn<{
184
+ name: "scope";
185
+ tableName: "account";
186
+ dataType: "string";
187
+ columnType: "MySqlVarChar";
188
+ data: string;
189
+ driverParam: string | number;
190
+ notNull: false;
191
+ hasDefault: false;
192
+ enumValues: [string, ...string[]];
193
+ baseColumn: never;
194
+ }, object>;
195
+ id_token: import("drizzle-orm/mysql-core").MySqlColumn<{
196
+ name: "id_token";
197
+ tableName: "account";
198
+ dataType: "string";
199
+ columnType: "MySqlVarChar";
200
+ data: string;
201
+ driverParam: string | number;
202
+ notNull: false;
203
+ hasDefault: false;
204
+ enumValues: [string, ...string[]];
205
+ baseColumn: never;
206
+ }, object>;
207
+ session_state: import("drizzle-orm/mysql-core").MySqlColumn<{
208
+ name: "session_state";
209
+ tableName: "account";
210
+ dataType: "string";
211
+ columnType: "MySqlVarChar";
212
+ data: string;
213
+ driverParam: string | number;
214
+ notNull: false;
215
+ hasDefault: false;
216
+ enumValues: [string, ...string[]];
217
+ baseColumn: never;
218
+ }, object>;
219
+ };
220
+ dialect: "mysql";
221
+ }>;
222
+ sessions: import("drizzle-orm/mysql-core").MySqlTableWithColumns<{
223
+ name: "session";
224
+ schema: undefined;
225
+ columns: {
226
+ sessionToken: import("drizzle-orm/mysql-core").MySqlColumn<{
227
+ name: "sessionToken";
228
+ tableName: "session";
229
+ dataType: "string";
230
+ columnType: "MySqlVarChar";
231
+ data: string;
232
+ driverParam: string | number;
233
+ notNull: true;
234
+ hasDefault: false;
235
+ enumValues: [string, ...string[]];
236
+ baseColumn: never;
237
+ }, object>;
238
+ userId: import("drizzle-orm/mysql-core").MySqlColumn<{
239
+ name: "userId";
240
+ tableName: "session";
241
+ dataType: "string";
242
+ columnType: "MySqlVarChar";
243
+ data: string;
244
+ driverParam: string | number;
245
+ notNull: true;
246
+ hasDefault: false;
247
+ enumValues: [string, ...string[]];
248
+ baseColumn: never;
249
+ }, object>;
250
+ expires: import("drizzle-orm/mysql-core").MySqlColumn<{
251
+ name: "expires";
252
+ tableName: "session";
253
+ dataType: "date";
254
+ columnType: "MySqlTimestamp";
255
+ data: Date;
256
+ driverParam: string | number;
257
+ notNull: true;
258
+ hasDefault: false;
259
+ enumValues: undefined;
260
+ baseColumn: never;
261
+ }, object>;
262
+ };
263
+ dialect: "mysql";
264
+ }>;
265
+ verificationTokens: import("drizzle-orm/mysql-core").MySqlTableWithColumns<{
266
+ name: "verificationToken";
267
+ schema: undefined;
268
+ columns: {
269
+ identifier: import("drizzle-orm/mysql-core").MySqlColumn<{
270
+ name: "identifier";
271
+ tableName: "verificationToken";
272
+ dataType: "string";
273
+ columnType: "MySqlVarChar";
274
+ data: string;
275
+ driverParam: string | number;
276
+ notNull: true;
277
+ hasDefault: false;
278
+ enumValues: [string, ...string[]];
279
+ baseColumn: never;
280
+ }, object>;
281
+ token: import("drizzle-orm/mysql-core").MySqlColumn<{
282
+ name: "token";
283
+ tableName: "verificationToken";
284
+ dataType: "string";
285
+ columnType: "MySqlVarChar";
286
+ data: string;
287
+ driverParam: string | number;
288
+ notNull: true;
289
+ hasDefault: false;
290
+ enumValues: [string, ...string[]];
291
+ baseColumn: never;
292
+ }, object>;
293
+ expires: import("drizzle-orm/mysql-core").MySqlColumn<{
294
+ name: "expires";
295
+ tableName: "verificationToken";
296
+ dataType: "date";
297
+ columnType: "MySqlTimestamp";
298
+ data: Date;
299
+ driverParam: string | number;
300
+ notNull: true;
301
+ hasDefault: false;
302
+ enumValues: undefined;
303
+ baseColumn: never;
304
+ }, object>;
305
+ createdAt: import("drizzle-orm/mysql-core").MySqlColumn<{
306
+ name: "createdAt";
307
+ tableName: "verificationToken";
308
+ dataType: "date";
309
+ columnType: "MySqlTimestamp";
310
+ data: Date;
311
+ driverParam: string | number;
312
+ notNull: false;
313
+ hasDefault: true;
314
+ enumValues: undefined;
315
+ baseColumn: never;
316
+ }, object>;
317
+ };
318
+ dialect: "mysql";
319
+ }>;
320
+ contentResource: import("drizzle-orm/mysql-core").MySqlTableWithColumns<{
321
+ name: "contentResource";
322
+ schema: undefined;
323
+ columns: {
324
+ id: import("drizzle-orm/mysql-core").MySqlColumn<{
325
+ name: "id";
326
+ tableName: "contentResource";
327
+ dataType: "string";
328
+ columnType: "MySqlVarChar";
329
+ data: string;
330
+ driverParam: string | number;
331
+ notNull: true;
332
+ hasDefault: false;
333
+ enumValues: [string, ...string[]];
334
+ baseColumn: never;
335
+ }, object>;
336
+ type: import("drizzle-orm/mysql-core").MySqlColumn<{
337
+ name: "type";
338
+ tableName: "contentResource";
339
+ dataType: "string";
340
+ columnType: "MySqlVarChar";
341
+ data: string;
342
+ driverParam: string | number;
343
+ notNull: true;
344
+ hasDefault: false;
345
+ enumValues: [string, ...string[]];
346
+ baseColumn: never;
347
+ }, object>;
348
+ createdById: import("drizzle-orm/mysql-core").MySqlColumn<{
349
+ name: "createdById";
350
+ tableName: "contentResource";
351
+ dataType: "string";
352
+ columnType: "MySqlVarChar";
353
+ data: string;
354
+ driverParam: string | number;
355
+ notNull: true;
356
+ hasDefault: false;
357
+ enumValues: [string, ...string[]];
358
+ baseColumn: never;
359
+ }, object>;
360
+ fields: import("drizzle-orm/mysql-core").MySqlColumn<{
361
+ name: "fields";
362
+ tableName: "contentResource";
363
+ dataType: "json";
364
+ columnType: "MySqlJson";
365
+ data: Record<string, any>;
366
+ driverParam: string;
367
+ notNull: false;
368
+ hasDefault: true;
369
+ enumValues: undefined;
370
+ baseColumn: never;
371
+ }, object>;
372
+ createdAt: import("drizzle-orm/mysql-core").MySqlColumn<{
373
+ name: "createdAt";
374
+ tableName: "contentResource";
375
+ dataType: "date";
376
+ columnType: "MySqlTimestamp";
377
+ data: Date;
378
+ driverParam: string | number;
379
+ notNull: false;
380
+ hasDefault: true;
381
+ enumValues: undefined;
382
+ baseColumn: never;
383
+ }, object>;
384
+ updatedAt: import("drizzle-orm/mysql-core").MySqlColumn<{
385
+ name: "updatedAt";
386
+ tableName: "contentResource";
387
+ dataType: "date";
388
+ columnType: "MySqlTimestamp";
389
+ data: Date;
390
+ driverParam: string | number;
391
+ notNull: false;
392
+ hasDefault: true;
393
+ enumValues: undefined;
394
+ baseColumn: never;
395
+ }, object>;
396
+ deletedAt: import("drizzle-orm/mysql-core").MySqlColumn<{
397
+ name: "deletedAt";
398
+ tableName: "contentResource";
399
+ dataType: "date";
400
+ columnType: "MySqlTimestamp";
401
+ data: Date;
402
+ driverParam: string | number;
403
+ notNull: false;
404
+ hasDefault: false;
405
+ enumValues: undefined;
406
+ baseColumn: never;
407
+ }, object>;
408
+ };
409
+ dialect: "mysql";
410
+ }>;
411
+ contentResourceResource: import("drizzle-orm/mysql-core").MySqlTableWithColumns<{
412
+ name: "contentResourceResource";
413
+ schema: undefined;
414
+ columns: {
415
+ resourceOfId: import("drizzle-orm/mysql-core").MySqlColumn<{
416
+ name: "resourceOfId";
417
+ tableName: "contentResourceResource";
418
+ dataType: "string";
419
+ columnType: "MySqlVarChar";
420
+ data: string;
421
+ driverParam: string | number;
422
+ notNull: true;
423
+ hasDefault: false;
424
+ enumValues: [string, ...string[]];
425
+ baseColumn: never;
426
+ }, object>;
427
+ resourceId: import("drizzle-orm/mysql-core").MySqlColumn<{
428
+ name: "resourceId";
429
+ tableName: "contentResourceResource";
430
+ dataType: "string";
431
+ columnType: "MySqlVarChar";
432
+ data: string;
433
+ driverParam: string | number;
434
+ notNull: true;
435
+ hasDefault: false;
436
+ enumValues: [string, ...string[]];
437
+ baseColumn: never;
438
+ }, object>;
439
+ position: import("drizzle-orm/mysql-core").MySqlColumn<{
440
+ name: "position";
441
+ tableName: "contentResourceResource";
442
+ dataType: "number";
443
+ columnType: "MySqlDouble";
444
+ data: number;
445
+ driverParam: string | number;
446
+ notNull: true;
447
+ hasDefault: true;
448
+ enumValues: undefined;
449
+ baseColumn: never;
450
+ }, object>;
451
+ metadata: import("drizzle-orm/mysql-core").MySqlColumn<{
452
+ name: "fields";
453
+ tableName: "contentResourceResource";
454
+ dataType: "json";
455
+ columnType: "MySqlJson";
456
+ data: Record<string, any>;
457
+ driverParam: string;
458
+ notNull: false;
459
+ hasDefault: true;
460
+ enumValues: undefined;
461
+ baseColumn: never;
462
+ }, object>;
463
+ createdAt: import("drizzle-orm/mysql-core").MySqlColumn<{
464
+ name: "createdAt";
465
+ tableName: "contentResourceResource";
466
+ dataType: "date";
467
+ columnType: "MySqlTimestamp";
468
+ data: Date;
469
+ driverParam: string | number;
470
+ notNull: false;
471
+ hasDefault: true;
472
+ enumValues: undefined;
473
+ baseColumn: never;
474
+ }, object>;
475
+ updatedAt: import("drizzle-orm/mysql-core").MySqlColumn<{
476
+ name: "updatedAt";
477
+ tableName: "contentResourceResource";
478
+ dataType: "date";
479
+ columnType: "MySqlTimestamp";
480
+ data: Date;
481
+ driverParam: string | number;
482
+ notNull: false;
483
+ hasDefault: true;
484
+ enumValues: undefined;
485
+ baseColumn: never;
486
+ }, object>;
487
+ deletedAt: import("drizzle-orm/mysql-core").MySqlColumn<{
488
+ name: "deletedAt";
489
+ tableName: "contentResourceResource";
490
+ dataType: "date";
491
+ columnType: "MySqlTimestamp";
492
+ data: Date;
493
+ driverParam: string | number;
494
+ notNull: false;
495
+ hasDefault: false;
496
+ enumValues: undefined;
497
+ baseColumn: never;
498
+ }, object>;
499
+ };
500
+ dialect: "mysql";
501
+ }>;
502
+ };
503
+ export type DefaultSchema = ReturnType<typeof createTables>;
504
+ export declare function mySqlDrizzleAdapter(client: InstanceType<typeof MySqlDatabase>, tableFn?: MySqlTableFn<undefined>): CourseBuilderAdapter;
505
+ //# sourceMappingURL=mysql.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mysql.d.ts","sourceRoot":"","sources":["../src/lib/mysql.ts"],"names":[],"mappings":"AAGA,OAAO,EAML,aAAa,EAEb,YAAY,EAIb,MAAM,wBAAwB,CAAA;AAE/B,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAA;AAEnE,wBAAgB,YAAY,CAAC,UAAU,EAAE,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA2HpD;AAED,MAAM,MAAM,aAAa,GAAG,UAAU,CAAC,OAAO,YAAY,CAAC,CAAA;AAE3D,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,YAAY,CAAC,OAAO,aAAa,CAAC,EAC1C,OAAO,0BAAsB,GAC5B,oBAAoB,CAkMtB"}