@access-dlsu/leapify 0.260505.5 → 0.260507.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 (199) hide show
  1. package/dist/app.d.ts +15 -0
  2. package/dist/app.d.ts.map +1 -0
  3. package/dist/auth/auth.d.ts +99 -0
  4. package/dist/auth/auth.d.ts.map +1 -0
  5. package/dist/auth/middleware.d.ts +20 -0
  6. package/dist/auth/middleware.d.ts.map +1 -0
  7. package/dist/auth/types.d.ts +17 -0
  8. package/dist/auth/types.d.ts.map +1 -0
  9. package/dist/bun-sqlite-dialect-na--YwnN-NIYANHVJ.cjs +162 -0
  10. package/dist/bun-sqlite-dialect-na--YwnN-NIYANHVJ.cjs.map +1 -0
  11. package/dist/bun-sqlite-dialect-na--YwnN-XVQNOKSL.js +160 -0
  12. package/dist/bun-sqlite-dialect-na--YwnN-XVQNOKSL.js.map +1 -0
  13. package/dist/chunk-4DPT2KQR.cjs +467 -0
  14. package/dist/chunk-4DPT2KQR.cjs.map +1 -0
  15. package/dist/chunk-5JKLV7IE.cjs +2962 -0
  16. package/dist/chunk-5JKLV7IE.cjs.map +1 -0
  17. package/dist/chunk-5OQD5ALM.cjs +76 -0
  18. package/dist/chunk-5OQD5ALM.cjs.map +1 -0
  19. package/dist/{chunk-FLR7TNLN.js → chunk-63CUZGSZ.js} +4 -12
  20. package/dist/chunk-63CUZGSZ.js.map +1 -0
  21. package/dist/chunk-6MMWL46O.cjs +7170 -0
  22. package/dist/chunk-6MMWL46O.cjs.map +1 -0
  23. package/dist/chunk-ANNHE3PZ.js +2285 -0
  24. package/dist/chunk-ANNHE3PZ.js.map +1 -0
  25. package/dist/chunk-EGRHWZRV.js +3 -0
  26. package/dist/chunk-EGRHWZRV.js.map +1 -0
  27. package/dist/chunk-EMMSS5I5.cjs +37 -0
  28. package/dist/chunk-EMMSS5I5.cjs.map +1 -0
  29. package/dist/chunk-FUCJEA2S.js +6196 -0
  30. package/dist/chunk-FUCJEA2S.js.map +1 -0
  31. package/dist/chunk-G3PMV62Z.js +33 -0
  32. package/dist/chunk-G3PMV62Z.js.map +1 -0
  33. package/dist/chunk-GNRL67OU.js +2949 -0
  34. package/dist/chunk-GNRL67OU.js.map +1 -0
  35. package/dist/chunk-HHNEB7YR.js +8 -0
  36. package/dist/chunk-HHNEB7YR.js.map +1 -0
  37. package/dist/chunk-IQEWVHLM.js +889 -0
  38. package/dist/chunk-IQEWVHLM.js.map +1 -0
  39. package/dist/chunk-JIZPYG6H.js +72 -0
  40. package/dist/chunk-JIZPYG6H.js.map +1 -0
  41. package/dist/chunk-JPVIXCF5.cjs +10 -0
  42. package/dist/chunk-JPVIXCF5.cjs.map +1 -0
  43. package/dist/chunk-JQSZJWBN.cjs +3075 -0
  44. package/dist/chunk-JQSZJWBN.cjs.map +1 -0
  45. package/dist/chunk-MNEW2V4T.js +447 -0
  46. package/dist/chunk-MNEW2V4T.js.map +1 -0
  47. package/dist/chunk-MY37YE52.js +3034 -0
  48. package/dist/chunk-MY37YE52.js.map +1 -0
  49. package/dist/chunk-NKIQRCOM.cjs +4 -0
  50. package/dist/chunk-NKIQRCOM.cjs.map +1 -0
  51. package/dist/chunk-OK6RVPEH.cjs +6200 -0
  52. package/dist/chunk-OK6RVPEH.cjs.map +1 -0
  53. package/dist/chunk-QARF2YFF.cjs +2296 -0
  54. package/dist/chunk-QARF2YFF.cjs.map +1 -0
  55. package/dist/chunk-RFP2X2FA.cjs +903 -0
  56. package/dist/chunk-RFP2X2FA.cjs.map +1 -0
  57. package/dist/chunk-XJSWMHDL.js +7142 -0
  58. package/dist/chunk-XJSWMHDL.js.map +1 -0
  59. package/dist/{chunk-3ZWIJNZG.cjs → chunk-YFJBE3AU.cjs} +4 -12
  60. package/dist/chunk-YFJBE3AU.cjs.map +1 -0
  61. package/dist/client/{index.d.cts → auth.d.ts} +140 -394
  62. package/dist/client/auth.d.ts.map +1 -0
  63. package/dist/client/index.cjs +909 -48
  64. package/dist/client/index.cjs.map +1 -1
  65. package/dist/client/index.d.ts +83 -1134
  66. package/dist/client/index.d.ts.map +1 -0
  67. package/dist/client/index.js +908 -47
  68. package/dist/client/index.js.map +1 -1
  69. package/dist/client/pow.d.ts +28 -0
  70. package/dist/client/pow.d.ts.map +1 -0
  71. package/dist/client/session.d.ts +29 -0
  72. package/dist/client/session.d.ts.map +1 -0
  73. package/dist/client/types.d.ts +58 -38
  74. package/dist/client/types.d.ts.map +1 -0
  75. package/dist/cron/batch-release.d.ts +9 -0
  76. package/dist/cron/batch-release.d.ts.map +1 -0
  77. package/dist/cron/lifecycle-check.d.ts +10 -0
  78. package/dist/cron/lifecycle-check.d.ts.map +1 -0
  79. package/dist/cron/reconcile-slots.d.ts +10 -0
  80. package/dist/cron/reconcile-slots.d.ts.map +1 -0
  81. package/dist/cron/reminder-emails.d.ts +9 -0
  82. package/dist/cron/reminder-emails.d.ts.map +1 -0
  83. package/dist/cron/renew-watches.d.ts +9 -0
  84. package/dist/cron/renew-watches.d.ts.map +1 -0
  85. package/dist/d1-sqlite-dialect-C2B7YsIT-6TVV7EJ5.js +122 -0
  86. package/dist/d1-sqlite-dialect-C2B7YsIT-6TVV7EJ5.js.map +1 -0
  87. package/dist/d1-sqlite-dialect-C2B7YsIT-PE74FLHQ.cjs +124 -0
  88. package/dist/d1-sqlite-dialect-C2B7YsIT-PE74FLHQ.cjs.map +1 -0
  89. package/dist/db/index.d.ts +7 -0
  90. package/dist/db/index.d.ts.map +1 -0
  91. package/dist/db/migrate.d.ts +23 -0
  92. package/dist/db/migrate.d.ts.map +1 -0
  93. package/dist/db/schema/auth.d.ts +649 -0
  94. package/dist/db/schema/auth.d.ts.map +1 -0
  95. package/dist/db/schema/bookmarks.d.ts +88 -0
  96. package/dist/db/schema/bookmarks.d.ts.map +1 -0
  97. package/dist/db/schema/events.d.ts +546 -0
  98. package/dist/db/schema/events.d.ts.map +1 -0
  99. package/dist/db/schema/faqs.d.ts +137 -0
  100. package/dist/db/schema/faqs.d.ts.map +1 -0
  101. package/dist/db/schema/index.d.ts +9 -0
  102. package/dist/db/schema/index.d.ts.map +1 -0
  103. package/dist/db/schema/organizations.d.ts +125 -0
  104. package/dist/db/schema/organizations.d.ts.map +1 -0
  105. package/dist/db/schema/site-config.d.ts +64 -0
  106. package/dist/db/schema/site-config.d.ts.map +1 -0
  107. package/dist/db/schema/themes.d.ts +104 -0
  108. package/dist/db/schema/themes.d.ts.map +1 -0
  109. package/dist/{types-lTjxCp88.d.cts → db/schema/users.d.ts} +11 -96
  110. package/dist/db/schema/users.d.ts.map +1 -0
  111. package/dist/dist-DZHA5VYX.cjs +260 -0
  112. package/dist/dist-DZHA5VYX.cjs.map +1 -0
  113. package/dist/dist-RRQUBLLO.js +258 -0
  114. package/dist/dist-RRQUBLLO.js.map +1 -0
  115. package/dist/index.cjs +38065 -937
  116. package/dist/index.cjs.map +1 -1
  117. package/dist/index.d.ts +23 -1818
  118. package/dist/index.d.ts.map +1 -0
  119. package/dist/index.js +37940 -816
  120. package/dist/index.js.map +1 -1
  121. package/dist/kysely-adapter-C76KJVG7.js +10 -0
  122. package/dist/kysely-adapter-C76KJVG7.js.map +1 -0
  123. package/dist/kysely-adapter-TGY4UUP5.cjs +27 -0
  124. package/dist/kysely-adapter-TGY4UUP5.cjs.map +1 -0
  125. package/dist/lib/errors.d.ts +15 -0
  126. package/dist/lib/errors.d.ts.map +1 -0
  127. package/dist/lib/middleware/cors.d.ts +3 -0
  128. package/dist/lib/middleware/cors.d.ts.map +1 -0
  129. package/dist/lib/middleware/error-handler.d.ts +3 -0
  130. package/dist/lib/middleware/error-handler.d.ts.map +1 -0
  131. package/dist/lib/middleware/pow-challenge.cjs +7 -7
  132. package/dist/lib/middleware/pow-challenge.d.ts +29 -18
  133. package/dist/lib/middleware/pow-challenge.d.ts.map +1 -0
  134. package/dist/lib/middleware/pow-challenge.js +2 -2
  135. package/dist/lib/middleware/rate-limit.d.ts +48 -0
  136. package/dist/lib/middleware/rate-limit.d.ts.map +1 -0
  137. package/dist/lib/middleware/referer-guard.d.ts +18 -0
  138. package/dist/lib/middleware/referer-guard.d.ts.map +1 -0
  139. package/dist/lib/retry.d.ts +12 -0
  140. package/dist/lib/retry.d.ts.map +1 -0
  141. package/dist/node-sqlite-dialect-B3H37T3R.cjs +162 -0
  142. package/dist/node-sqlite-dialect-B3H37T3R.cjs.map +1 -0
  143. package/dist/node-sqlite-dialect-GDP7ZE54.js +160 -0
  144. package/dist/node-sqlite-dialect-GDP7ZE54.js.map +1 -0
  145. package/dist/queues/handlers.d.ts +13 -0
  146. package/dist/queues/handlers.d.ts.map +1 -0
  147. package/dist/queues/jobs.d.ts +42 -0
  148. package/dist/queues/jobs.d.ts.map +1 -0
  149. package/dist/routes/events.d.ts +4 -0
  150. package/dist/routes/events.d.ts.map +1 -0
  151. package/dist/routes/faqs.d.ts +4 -0
  152. package/dist/routes/faqs.d.ts.map +1 -0
  153. package/dist/routes/health.d.ts +4 -0
  154. package/dist/routes/health.d.ts.map +1 -0
  155. package/dist/routes/internal/gforms-webhook.d.ts +4 -0
  156. package/dist/routes/internal/gforms-webhook.d.ts.map +1 -0
  157. package/dist/routes/organizations.d.ts +4 -0
  158. package/dist/routes/organizations.d.ts.map +1 -0
  159. package/dist/routes/site-config.d.ts +4 -0
  160. package/dist/routes/site-config.d.ts.map +1 -0
  161. package/dist/routes/themes.d.ts +4 -0
  162. package/dist/routes/themes.d.ts.map +1 -0
  163. package/dist/routes/uploads.d.ts +4 -0
  164. package/dist/routes/uploads.d.ts.map +1 -0
  165. package/dist/routes/users.d.ts +4 -0
  166. package/dist/routes/users.d.ts.map +1 -0
  167. package/dist/services/cache.d.ts +22 -0
  168. package/dist/services/cache.d.ts.map +1 -0
  169. package/dist/services/contentful-management.d.ts +38 -0
  170. package/dist/services/contentful-management.d.ts.map +1 -0
  171. package/dist/services/contentful.d.ts +97 -0
  172. package/dist/services/contentful.d.ts.map +1 -0
  173. package/dist/services/email.d.ts +75 -0
  174. package/dist/services/email.d.ts.map +1 -0
  175. package/dist/services/gforms.d.ts +60 -0
  176. package/dist/services/gforms.d.ts.map +1 -0
  177. package/dist/services/resend.d.ts +35 -0
  178. package/dist/services/resend.d.ts.map +1 -0
  179. package/dist/services/ses.d.ts +58 -0
  180. package/dist/services/ses.d.ts.map +1 -0
  181. package/dist/services/slots.d.ts +48 -0
  182. package/dist/services/slots.d.ts.map +1 -0
  183. package/dist/services/snapshot.d.ts +95 -0
  184. package/dist/services/snapshot.d.ts.map +1 -0
  185. package/dist/types.d.ts +66 -0
  186. package/dist/types.d.ts.map +1 -0
  187. package/dist/worker-handler.d.ts +64 -0
  188. package/dist/worker-handler.d.ts.map +1 -0
  189. package/dist/worker.d.ts +36 -0
  190. package/dist/worker.d.ts.map +1 -0
  191. package/dist/worker.js +1172 -583
  192. package/dist/worker.js.map +1 -1
  193. package/package.json +153 -152
  194. package/dist/chunk-3ZWIJNZG.cjs.map +0 -1
  195. package/dist/chunk-FLR7TNLN.js.map +0 -1
  196. package/dist/client/types.d.cts +0 -192
  197. package/dist/index.d.cts +0 -1879
  198. package/dist/lib/middleware/pow-challenge.d.cts +0 -47
  199. package/dist/types-lTjxCp88.d.ts +0 -208
package/dist/app.d.ts ADDED
@@ -0,0 +1,15 @@
1
+ import { Hono } from 'hono';
2
+ import type { LeapifyEnv } from './types';
3
+ export interface LeapifyAppOptions {
4
+ allowedOrigins?: string[];
5
+ /**
6
+ * Public HTTPS URL of your Cloudflare Worker.
7
+ * Required for Google Forms Watch push notifications to work.
8
+ * Google will POST to {gformsWebhookUrl}/internal/gforms-webhook on each new submission.
9
+ *
10
+ * @example 'https://leap.yourdomain.com'
11
+ */
12
+ gformsWebhookUrl?: string;
13
+ }
14
+ export declare function createApp(options?: LeapifyAppOptions): Hono<LeapifyEnv>;
15
+ //# sourceMappingURL=app.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"app.d.ts","sourceRoot":"","sources":["../src/app.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAA;AAC3B,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AAqBzC,MAAM,WAAW,iBAAiB;IAChC,cAAc,CAAC,EAAE,MAAM,EAAE,CAAA;IACzB;;;;;;OAMG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAA;CAC1B;AAED,wBAAgB,SAAS,CAAC,OAAO,GAAE,iBAAsB,GAAG,IAAI,CAAC,UAAU,CAAC,CAkF3E"}
@@ -0,0 +1,99 @@
1
+ import type { LeapifyBindings } from '../types';
2
+ /**
3
+ * Creates a request-scoped Better Auth instance.
4
+ *
5
+ * Must be a factory (not a module singleton) because CF Workers D1
6
+ * bindings are only available at request time, not at module init.
7
+ *
8
+ * Features:
9
+ * - Drizzle SQLite adapter backed by D1
10
+ * - bearer() plugin: supports Authorization: Bearer <token> alongside cookies
11
+ * - Google social provider (for GIS One Tap credential flow)
12
+ * - databaseHooks enforces @dlsu.edu.ph domain server-side
13
+ * - After successful user creation, upserts a row in our custom `users` table
14
+ * to carry the application role
15
+ */
16
+ export declare function createAuth(env: LeapifyBindings): import("better-auth").Auth<{
17
+ baseURL: string;
18
+ secret: string;
19
+ advanced: {
20
+ ipAddress: {
21
+ ipAddressHeaders: string[];
22
+ };
23
+ };
24
+ database: (options: import("better-auth").BetterAuthOptions) => import("better-auth").DBAdapter<import("better-auth").BetterAuthOptions>;
25
+ plugins: [{
26
+ id: "bearer";
27
+ version: string;
28
+ hooks: {
29
+ before: {
30
+ matcher(context: import("better-auth").HookEndpointContext): boolean;
31
+ handler: (inputContext: import("better-call").MiddlewareInputContext<import("better-call").MiddlewareOptions>) => Promise<{
32
+ context: {
33
+ headers: Headers;
34
+ };
35
+ } | undefined>;
36
+ }[];
37
+ after: {
38
+ matcher(context: import("better-auth").HookEndpointContext): true;
39
+ handler: (inputContext: import("better-call").MiddlewareInputContext<import("better-call").MiddlewareOptions>) => Promise<void>;
40
+ }[];
41
+ };
42
+ options: import("better-auth/plugins").BearerOptions | undefined;
43
+ }];
44
+ socialProviders: {
45
+ google: {
46
+ clientId: string;
47
+ clientSecret: string;
48
+ hd: string | undefined;
49
+ };
50
+ };
51
+ databaseHooks: {
52
+ user: {
53
+ create: {
54
+ /**
55
+ * Runs before the Better Auth `user` row is inserted.
56
+ * Reject non-DLSU accounts before they ever touch the DB.
57
+ */
58
+ before: (user: {
59
+ id: string;
60
+ createdAt: Date;
61
+ updatedAt: Date;
62
+ email: string;
63
+ emailVerified: boolean;
64
+ name: string;
65
+ image?: string | null | undefined;
66
+ } & Record<string, unknown>) => Promise<{
67
+ data: {
68
+ id: string;
69
+ createdAt: Date;
70
+ updatedAt: Date;
71
+ email: string;
72
+ emailVerified: boolean;
73
+ name: string;
74
+ image?: string | null | undefined;
75
+ } & Record<string, unknown>;
76
+ }>;
77
+ /**
78
+ * Runs after the Better Auth `user` row is created.
79
+ * Upsert a matching row in our application `users` table so that
80
+ * the role column and D1 foreign keys are always consistent.
81
+ *
82
+ * The very first user to sign in is automatically promoted to
83
+ * `super_admin` so the platform has an administrator from day one.
84
+ */
85
+ after: (user: {
86
+ id: string;
87
+ createdAt: Date;
88
+ updatedAt: Date;
89
+ email: string;
90
+ emailVerified: boolean;
91
+ name: string;
92
+ image?: string | null | undefined;
93
+ } & Record<string, unknown>) => Promise<void>;
94
+ };
95
+ };
96
+ };
97
+ }>;
98
+ export type Auth = ReturnType<typeof createAuth>;
99
+ //# sourceMappingURL=auth.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../src/auth/auth.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,UAAU,CAAA;AAI/C;;;;;;;;;;;;;GAaG;AACH,wBAAgB,UAAU,CAAC,GAAG,EAAE,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gBAoCrC;;;mBAGG;;;;;;;;;;;;;;;;;;;;gBAWH;;;;;;;mBAOG;;;;;;;;;;;;;GAiCZ;AAED,MAAM,MAAM,IAAI,GAAG,UAAU,CAAC,OAAO,UAAU,CAAC,CAAA"}
@@ -0,0 +1,20 @@
1
+ import type { LeapifyBindings } from '../types';
2
+ import type { LeapifyUser } from './types';
3
+ declare module 'hono' {
4
+ interface ContextVariableMap {
5
+ user: LeapifyUser;
6
+ }
7
+ }
8
+ export declare const authMiddleware: import("hono").MiddlewareHandler<{
9
+ Bindings: LeapifyBindings;
10
+ }, string, {}, Response>;
11
+ export declare const optionalAuthMiddleware: import("hono").MiddlewareHandler<{
12
+ Bindings: LeapifyBindings;
13
+ }, string, {}, Response>;
14
+ export declare const adminMiddleware: import("hono").MiddlewareHandler<{
15
+ Bindings: LeapifyBindings;
16
+ }, string, {}, Response>;
17
+ export declare const internalMiddleware: import("hono").MiddlewareHandler<{
18
+ Bindings: LeapifyBindings;
19
+ }, string, {}, Response>;
20
+ //# sourceMappingURL=middleware.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"middleware.d.ts","sourceRoot":"","sources":["../../src/auth/middleware.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,UAAU,CAAA;AAC/C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAA;AAM1C,OAAO,QAAQ,MAAM,CAAC;IACpB,UAAU,kBAAkB;QAC1B,IAAI,EAAE,WAAW,CAAA;KAClB;CACF;AA4DD,eAAO,MAAM,cAAc;cAAgC,eAAe;wBAsDzE,CAAA;AAID,eAAO,MAAM,sBAAsB;cACvB,eAAe;wBAUzB,CAAA;AAIF,eAAO,MAAM,eAAe;cAAgC,eAAe;wBAQ1E,CAAA;AAID,eAAO,MAAM,kBAAkB;cACnB,eAAe;wBAOzB,CAAA"}
@@ -0,0 +1,17 @@
1
+ import type { UserRole } from '../db/schema/users';
2
+ /**
3
+ * Leapify application user.
4
+ * Built from the Better Auth session + our `users` D1 row.
5
+ * Cached in KV under `auth:session:<token>` for the session's lifetime.
6
+ */
7
+ export interface LeapifyUser {
8
+ /** Better Auth user.id (stored as users.better_auth_id) */
9
+ uid: string;
10
+ /** Our internal users.id (used for FK joins in bookmarks, etc.) */
11
+ dbId: string;
12
+ role: UserRole;
13
+ email: string;
14
+ name: string;
15
+ emailVerified: boolean;
16
+ }
17
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/auth/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAA;AAElD;;;;GAIG;AACH,MAAM,WAAW,WAAW;IAC1B,2DAA2D;IAC3D,GAAG,EAAE,MAAM,CAAA;IACX,mEAAmE;IACnE,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,QAAQ,CAAA;IACd,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,EAAE,MAAM,CAAA;IACZ,aAAa,EAAE,OAAO,CAAA;CACvB"}
@@ -0,0 +1,162 @@
1
+ 'use strict';
2
+
3
+ var chunk6MMWL46O_cjs = require('./chunk-6MMWL46O.cjs');
4
+ var chunkJQSZJWBN_cjs = require('./chunk-JQSZJWBN.cjs');
5
+ require('./chunk-EMMSS5I5.cjs');
6
+
7
+ // node_modules/@better-auth/kysely-adapter/dist/bun-sqlite-dialect-na--YwnN.mjs
8
+ var BunSqliteAdapter = class {
9
+ get supportsCreateIfNotExists() {
10
+ return true;
11
+ }
12
+ get supportsTransactionalDdl() {
13
+ return false;
14
+ }
15
+ get supportsReturning() {
16
+ return true;
17
+ }
18
+ async acquireMigrationLock() {
19
+ }
20
+ async releaseMigrationLock() {
21
+ }
22
+ get supportsOutput() {
23
+ return true;
24
+ }
25
+ };
26
+ var BunSqliteDriver = class {
27
+ #config;
28
+ #connectionMutex = new ConnectionMutex();
29
+ #db;
30
+ #connection;
31
+ constructor(config) {
32
+ this.#config = { ...config };
33
+ }
34
+ async init() {
35
+ this.#db = this.#config.database;
36
+ this.#connection = new BunSqliteConnection(this.#db);
37
+ if (this.#config.onCreateConnection) await this.#config.onCreateConnection(this.#connection);
38
+ }
39
+ async acquireConnection() {
40
+ await this.#connectionMutex.lock();
41
+ return this.#connection;
42
+ }
43
+ async beginTransaction(connection) {
44
+ await connection.executeQuery(chunk6MMWL46O_cjs.CompiledQuery.raw("begin"));
45
+ }
46
+ async commitTransaction(connection) {
47
+ await connection.executeQuery(chunk6MMWL46O_cjs.CompiledQuery.raw("commit"));
48
+ }
49
+ async rollbackTransaction(connection) {
50
+ await connection.executeQuery(chunk6MMWL46O_cjs.CompiledQuery.raw("rollback"));
51
+ }
52
+ async releaseConnection() {
53
+ this.#connectionMutex.unlock();
54
+ }
55
+ async destroy() {
56
+ this.#db?.close();
57
+ }
58
+ };
59
+ var BunSqliteConnection = class {
60
+ #db;
61
+ constructor(db) {
62
+ this.#db = db;
63
+ }
64
+ executeQuery(compiledQuery) {
65
+ const { sql: sql2, parameters } = compiledQuery;
66
+ const stmt = this.#db.prepare(sql2);
67
+ return Promise.resolve({ rows: stmt.all(parameters) });
68
+ }
69
+ async *streamQuery() {
70
+ throw new Error("Streaming query is not supported by SQLite driver.");
71
+ }
72
+ };
73
+ var ConnectionMutex = class {
74
+ #promise;
75
+ #resolve;
76
+ async lock() {
77
+ while (this.#promise !== void 0) await this.#promise;
78
+ this.#promise = new Promise((resolve) => {
79
+ this.#resolve = resolve;
80
+ });
81
+ }
82
+ unlock() {
83
+ const resolve = this.#resolve;
84
+ this.#promise = void 0;
85
+ this.#resolve = void 0;
86
+ resolve?.();
87
+ }
88
+ };
89
+ var BunSqliteIntrospector = class {
90
+ #db;
91
+ constructor(db) {
92
+ this.#db = db;
93
+ }
94
+ async getSchemas() {
95
+ return [];
96
+ }
97
+ async getTables(options = { withInternalKyselyTables: false }) {
98
+ let query = this.#db.selectFrom("sqlite_schema").where("type", "=", "table").where("name", "not like", "sqlite_%").select("name").$castTo();
99
+ if (!options.withInternalKyselyTables) query = query.where("name", "!=", chunkJQSZJWBN_cjs.DEFAULT_MIGRATION_TABLE).where("name", "!=", chunkJQSZJWBN_cjs.DEFAULT_MIGRATION_LOCK_TABLE);
100
+ const tables = await query.execute();
101
+ return Promise.all(tables.map(({ name }) => this.#getTableMetadata(name)));
102
+ }
103
+ async getMetadata(options) {
104
+ return { tables: await this.getTables(options) };
105
+ }
106
+ async #getTableMetadata(table) {
107
+ const db = this.#db;
108
+ const autoIncrementCol = (await db.selectFrom("sqlite_master").where("name", "=", table).select("sql").$castTo().execute())[0]?.sql?.split(/[\(\),]/)?.find((it) => it.toLowerCase().includes("autoincrement"))?.split(/\s+/)?.[0]?.replace(/["`]/g, "");
109
+ return {
110
+ name: table,
111
+ columns: (await db.selectFrom(chunk6MMWL46O_cjs.sql`pragma_table_info(${table})`.as("table_info")).select([
112
+ "name",
113
+ "type",
114
+ "notnull",
115
+ "dflt_value"
116
+ ]).execute()).map((col) => ({
117
+ name: col.name,
118
+ dataType: col.type,
119
+ isNullable: !col.notnull,
120
+ isAutoIncrementing: col.name === autoIncrementCol,
121
+ hasDefaultValue: col.dflt_value != null
122
+ })),
123
+ isView: true
124
+ };
125
+ }
126
+ };
127
+ var BunSqliteQueryCompiler = class extends chunkJQSZJWBN_cjs.DefaultQueryCompiler {
128
+ getCurrentParameterPlaceholder() {
129
+ return "?";
130
+ }
131
+ getLeftIdentifierWrapper() {
132
+ return '"';
133
+ }
134
+ getRightIdentifierWrapper() {
135
+ return '"';
136
+ }
137
+ getAutoIncrement() {
138
+ return "autoincrement";
139
+ }
140
+ };
141
+ var BunSqliteDialect = class {
142
+ #config;
143
+ constructor(config) {
144
+ this.#config = { ...config };
145
+ }
146
+ createDriver() {
147
+ return new BunSqliteDriver(this.#config);
148
+ }
149
+ createQueryCompiler() {
150
+ return new BunSqliteQueryCompiler();
151
+ }
152
+ createAdapter() {
153
+ return new BunSqliteAdapter();
154
+ }
155
+ createIntrospector(db) {
156
+ return new BunSqliteIntrospector(db);
157
+ }
158
+ };
159
+
160
+ exports.BunSqliteDialect = BunSqliteDialect;
161
+ //# sourceMappingURL=bun-sqlite-dialect-na--YwnN-NIYANHVJ.cjs.map
162
+ //# sourceMappingURL=bun-sqlite-dialect-na--YwnN-NIYANHVJ.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../node_modules/@better-auth/kysely-adapter/dist/bun-sqlite-dialect-na--YwnN.mjs"],"names":["CompiledQuery","sql","DEFAULT_MIGRATION_TABLE","DEFAULT_MIGRATION_LOCK_TABLE","DefaultQueryCompiler"],"mappings":"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","file":"bun-sqlite-dialect-na--YwnN-NIYANHVJ.cjs","sourcesContent":["import { CompiledQuery, DEFAULT_MIGRATION_LOCK_TABLE, DEFAULT_MIGRATION_TABLE, DefaultQueryCompiler, sql } from \"kysely\";\n//#region src/bun-sqlite-dialect.ts\nvar BunSqliteAdapter = class {\n\tget supportsCreateIfNotExists() {\n\t\treturn true;\n\t}\n\tget supportsTransactionalDdl() {\n\t\treturn false;\n\t}\n\tget supportsReturning() {\n\t\treturn true;\n\t}\n\tasync acquireMigrationLock() {}\n\tasync releaseMigrationLock() {}\n\tget supportsOutput() {\n\t\treturn true;\n\t}\n};\nvar BunSqliteDriver = class {\n\t#config;\n\t#connectionMutex = new ConnectionMutex();\n\t#db;\n\t#connection;\n\tconstructor(config) {\n\t\tthis.#config = { ...config };\n\t}\n\tasync init() {\n\t\tthis.#db = this.#config.database;\n\t\tthis.#connection = new BunSqliteConnection(this.#db);\n\t\tif (this.#config.onCreateConnection) await this.#config.onCreateConnection(this.#connection);\n\t}\n\tasync acquireConnection() {\n\t\tawait this.#connectionMutex.lock();\n\t\treturn this.#connection;\n\t}\n\tasync beginTransaction(connection) {\n\t\tawait connection.executeQuery(CompiledQuery.raw(\"begin\"));\n\t}\n\tasync commitTransaction(connection) {\n\t\tawait connection.executeQuery(CompiledQuery.raw(\"commit\"));\n\t}\n\tasync rollbackTransaction(connection) {\n\t\tawait connection.executeQuery(CompiledQuery.raw(\"rollback\"));\n\t}\n\tasync releaseConnection() {\n\t\tthis.#connectionMutex.unlock();\n\t}\n\tasync destroy() {\n\t\tthis.#db?.close();\n\t}\n};\nvar BunSqliteConnection = class {\n\t#db;\n\tconstructor(db) {\n\t\tthis.#db = db;\n\t}\n\texecuteQuery(compiledQuery) {\n\t\tconst { sql, parameters } = compiledQuery;\n\t\tconst stmt = this.#db.prepare(sql);\n\t\treturn Promise.resolve({ rows: stmt.all(parameters) });\n\t}\n\tasync *streamQuery() {\n\t\tthrow new Error(\"Streaming query is not supported by SQLite driver.\");\n\t}\n};\nvar ConnectionMutex = class {\n\t#promise;\n\t#resolve;\n\tasync lock() {\n\t\twhile (this.#promise !== void 0) await this.#promise;\n\t\tthis.#promise = new Promise((resolve) => {\n\t\t\tthis.#resolve = resolve;\n\t\t});\n\t}\n\tunlock() {\n\t\tconst resolve = this.#resolve;\n\t\tthis.#promise = void 0;\n\t\tthis.#resolve = void 0;\n\t\tresolve?.();\n\t}\n};\nvar BunSqliteIntrospector = class {\n\t#db;\n\tconstructor(db) {\n\t\tthis.#db = db;\n\t}\n\tasync getSchemas() {\n\t\treturn [];\n\t}\n\tasync getTables(options = { withInternalKyselyTables: false }) {\n\t\tlet query = this.#db.selectFrom(\"sqlite_schema\").where(\"type\", \"=\", \"table\").where(\"name\", \"not like\", \"sqlite_%\").select(\"name\").$castTo();\n\t\tif (!options.withInternalKyselyTables) query = query.where(\"name\", \"!=\", DEFAULT_MIGRATION_TABLE).where(\"name\", \"!=\", DEFAULT_MIGRATION_LOCK_TABLE);\n\t\tconst tables = await query.execute();\n\t\treturn Promise.all(tables.map(({ name }) => this.#getTableMetadata(name)));\n\t}\n\tasync getMetadata(options) {\n\t\treturn { tables: await this.getTables(options) };\n\t}\n\tasync #getTableMetadata(table) {\n\t\tconst db = this.#db;\n\t\tconst autoIncrementCol = (await db.selectFrom(\"sqlite_master\").where(\"name\", \"=\", table).select(\"sql\").$castTo().execute())[0]?.sql?.split(/[\\(\\),]/)?.find((it) => it.toLowerCase().includes(\"autoincrement\"))?.split(/\\s+/)?.[0]?.replace(/[\"`]/g, \"\");\n\t\treturn {\n\t\t\tname: table,\n\t\t\tcolumns: (await db.selectFrom(sql`pragma_table_info(${table})`.as(\"table_info\")).select([\n\t\t\t\t\"name\",\n\t\t\t\t\"type\",\n\t\t\t\t\"notnull\",\n\t\t\t\t\"dflt_value\"\n\t\t\t]).execute()).map((col) => ({\n\t\t\t\tname: col.name,\n\t\t\t\tdataType: col.type,\n\t\t\t\tisNullable: !col.notnull,\n\t\t\t\tisAutoIncrementing: col.name === autoIncrementCol,\n\t\t\t\thasDefaultValue: col.dflt_value != null\n\t\t\t})),\n\t\t\tisView: true\n\t\t};\n\t}\n};\nvar BunSqliteQueryCompiler = class extends DefaultQueryCompiler {\n\tgetCurrentParameterPlaceholder() {\n\t\treturn \"?\";\n\t}\n\tgetLeftIdentifierWrapper() {\n\t\treturn \"\\\"\";\n\t}\n\tgetRightIdentifierWrapper() {\n\t\treturn \"\\\"\";\n\t}\n\tgetAutoIncrement() {\n\t\treturn \"autoincrement\";\n\t}\n};\nvar BunSqliteDialect = class {\n\t#config;\n\tconstructor(config) {\n\t\tthis.#config = { ...config };\n\t}\n\tcreateDriver() {\n\t\treturn new BunSqliteDriver(this.#config);\n\t}\n\tcreateQueryCompiler() {\n\t\treturn new BunSqliteQueryCompiler();\n\t}\n\tcreateAdapter() {\n\t\treturn new BunSqliteAdapter();\n\t}\n\tcreateIntrospector(db) {\n\t\treturn new BunSqliteIntrospector(db);\n\t}\n};\n//#endregion\nexport { BunSqliteDialect };\n"]}
@@ -0,0 +1,160 @@
1
+ import { CompiledQuery, sql } from './chunk-XJSWMHDL.js';
2
+ import { DefaultQueryCompiler, DEFAULT_MIGRATION_TABLE, DEFAULT_MIGRATION_LOCK_TABLE } from './chunk-MY37YE52.js';
3
+ import './chunk-G3PMV62Z.js';
4
+
5
+ // node_modules/@better-auth/kysely-adapter/dist/bun-sqlite-dialect-na--YwnN.mjs
6
+ var BunSqliteAdapter = class {
7
+ get supportsCreateIfNotExists() {
8
+ return true;
9
+ }
10
+ get supportsTransactionalDdl() {
11
+ return false;
12
+ }
13
+ get supportsReturning() {
14
+ return true;
15
+ }
16
+ async acquireMigrationLock() {
17
+ }
18
+ async releaseMigrationLock() {
19
+ }
20
+ get supportsOutput() {
21
+ return true;
22
+ }
23
+ };
24
+ var BunSqliteDriver = class {
25
+ #config;
26
+ #connectionMutex = new ConnectionMutex();
27
+ #db;
28
+ #connection;
29
+ constructor(config) {
30
+ this.#config = { ...config };
31
+ }
32
+ async init() {
33
+ this.#db = this.#config.database;
34
+ this.#connection = new BunSqliteConnection(this.#db);
35
+ if (this.#config.onCreateConnection) await this.#config.onCreateConnection(this.#connection);
36
+ }
37
+ async acquireConnection() {
38
+ await this.#connectionMutex.lock();
39
+ return this.#connection;
40
+ }
41
+ async beginTransaction(connection) {
42
+ await connection.executeQuery(CompiledQuery.raw("begin"));
43
+ }
44
+ async commitTransaction(connection) {
45
+ await connection.executeQuery(CompiledQuery.raw("commit"));
46
+ }
47
+ async rollbackTransaction(connection) {
48
+ await connection.executeQuery(CompiledQuery.raw("rollback"));
49
+ }
50
+ async releaseConnection() {
51
+ this.#connectionMutex.unlock();
52
+ }
53
+ async destroy() {
54
+ this.#db?.close();
55
+ }
56
+ };
57
+ var BunSqliteConnection = class {
58
+ #db;
59
+ constructor(db) {
60
+ this.#db = db;
61
+ }
62
+ executeQuery(compiledQuery) {
63
+ const { sql: sql2, parameters } = compiledQuery;
64
+ const stmt = this.#db.prepare(sql2);
65
+ return Promise.resolve({ rows: stmt.all(parameters) });
66
+ }
67
+ async *streamQuery() {
68
+ throw new Error("Streaming query is not supported by SQLite driver.");
69
+ }
70
+ };
71
+ var ConnectionMutex = class {
72
+ #promise;
73
+ #resolve;
74
+ async lock() {
75
+ while (this.#promise !== void 0) await this.#promise;
76
+ this.#promise = new Promise((resolve) => {
77
+ this.#resolve = resolve;
78
+ });
79
+ }
80
+ unlock() {
81
+ const resolve = this.#resolve;
82
+ this.#promise = void 0;
83
+ this.#resolve = void 0;
84
+ resolve?.();
85
+ }
86
+ };
87
+ var BunSqliteIntrospector = class {
88
+ #db;
89
+ constructor(db) {
90
+ this.#db = db;
91
+ }
92
+ async getSchemas() {
93
+ return [];
94
+ }
95
+ async getTables(options = { withInternalKyselyTables: false }) {
96
+ let query = this.#db.selectFrom("sqlite_schema").where("type", "=", "table").where("name", "not like", "sqlite_%").select("name").$castTo();
97
+ if (!options.withInternalKyselyTables) query = query.where("name", "!=", DEFAULT_MIGRATION_TABLE).where("name", "!=", DEFAULT_MIGRATION_LOCK_TABLE);
98
+ const tables = await query.execute();
99
+ return Promise.all(tables.map(({ name }) => this.#getTableMetadata(name)));
100
+ }
101
+ async getMetadata(options) {
102
+ return { tables: await this.getTables(options) };
103
+ }
104
+ async #getTableMetadata(table) {
105
+ const db = this.#db;
106
+ const autoIncrementCol = (await db.selectFrom("sqlite_master").where("name", "=", table).select("sql").$castTo().execute())[0]?.sql?.split(/[\(\),]/)?.find((it) => it.toLowerCase().includes("autoincrement"))?.split(/\s+/)?.[0]?.replace(/["`]/g, "");
107
+ return {
108
+ name: table,
109
+ columns: (await db.selectFrom(sql`pragma_table_info(${table})`.as("table_info")).select([
110
+ "name",
111
+ "type",
112
+ "notnull",
113
+ "dflt_value"
114
+ ]).execute()).map((col) => ({
115
+ name: col.name,
116
+ dataType: col.type,
117
+ isNullable: !col.notnull,
118
+ isAutoIncrementing: col.name === autoIncrementCol,
119
+ hasDefaultValue: col.dflt_value != null
120
+ })),
121
+ isView: true
122
+ };
123
+ }
124
+ };
125
+ var BunSqliteQueryCompiler = class extends DefaultQueryCompiler {
126
+ getCurrentParameterPlaceholder() {
127
+ return "?";
128
+ }
129
+ getLeftIdentifierWrapper() {
130
+ return '"';
131
+ }
132
+ getRightIdentifierWrapper() {
133
+ return '"';
134
+ }
135
+ getAutoIncrement() {
136
+ return "autoincrement";
137
+ }
138
+ };
139
+ var BunSqliteDialect = class {
140
+ #config;
141
+ constructor(config) {
142
+ this.#config = { ...config };
143
+ }
144
+ createDriver() {
145
+ return new BunSqliteDriver(this.#config);
146
+ }
147
+ createQueryCompiler() {
148
+ return new BunSqliteQueryCompiler();
149
+ }
150
+ createAdapter() {
151
+ return new BunSqliteAdapter();
152
+ }
153
+ createIntrospector(db) {
154
+ return new BunSqliteIntrospector(db);
155
+ }
156
+ };
157
+
158
+ export { BunSqliteDialect };
159
+ //# sourceMappingURL=bun-sqlite-dialect-na--YwnN-XVQNOKSL.js.map
160
+ //# sourceMappingURL=bun-sqlite-dialect-na--YwnN-XVQNOKSL.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../node_modules/@better-auth/kysely-adapter/dist/bun-sqlite-dialect-na--YwnN.mjs"],"names":["sql"],"mappings":"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","file":"bun-sqlite-dialect-na--YwnN-XVQNOKSL.js","sourcesContent":["import { CompiledQuery, DEFAULT_MIGRATION_LOCK_TABLE, DEFAULT_MIGRATION_TABLE, DefaultQueryCompiler, sql } from \"kysely\";\n//#region src/bun-sqlite-dialect.ts\nvar BunSqliteAdapter = class {\n\tget supportsCreateIfNotExists() {\n\t\treturn true;\n\t}\n\tget supportsTransactionalDdl() {\n\t\treturn false;\n\t}\n\tget supportsReturning() {\n\t\treturn true;\n\t}\n\tasync acquireMigrationLock() {}\n\tasync releaseMigrationLock() {}\n\tget supportsOutput() {\n\t\treturn true;\n\t}\n};\nvar BunSqliteDriver = class {\n\t#config;\n\t#connectionMutex = new ConnectionMutex();\n\t#db;\n\t#connection;\n\tconstructor(config) {\n\t\tthis.#config = { ...config };\n\t}\n\tasync init() {\n\t\tthis.#db = this.#config.database;\n\t\tthis.#connection = new BunSqliteConnection(this.#db);\n\t\tif (this.#config.onCreateConnection) await this.#config.onCreateConnection(this.#connection);\n\t}\n\tasync acquireConnection() {\n\t\tawait this.#connectionMutex.lock();\n\t\treturn this.#connection;\n\t}\n\tasync beginTransaction(connection) {\n\t\tawait connection.executeQuery(CompiledQuery.raw(\"begin\"));\n\t}\n\tasync commitTransaction(connection) {\n\t\tawait connection.executeQuery(CompiledQuery.raw(\"commit\"));\n\t}\n\tasync rollbackTransaction(connection) {\n\t\tawait connection.executeQuery(CompiledQuery.raw(\"rollback\"));\n\t}\n\tasync releaseConnection() {\n\t\tthis.#connectionMutex.unlock();\n\t}\n\tasync destroy() {\n\t\tthis.#db?.close();\n\t}\n};\nvar BunSqliteConnection = class {\n\t#db;\n\tconstructor(db) {\n\t\tthis.#db = db;\n\t}\n\texecuteQuery(compiledQuery) {\n\t\tconst { sql, parameters } = compiledQuery;\n\t\tconst stmt = this.#db.prepare(sql);\n\t\treturn Promise.resolve({ rows: stmt.all(parameters) });\n\t}\n\tasync *streamQuery() {\n\t\tthrow new Error(\"Streaming query is not supported by SQLite driver.\");\n\t}\n};\nvar ConnectionMutex = class {\n\t#promise;\n\t#resolve;\n\tasync lock() {\n\t\twhile (this.#promise !== void 0) await this.#promise;\n\t\tthis.#promise = new Promise((resolve) => {\n\t\t\tthis.#resolve = resolve;\n\t\t});\n\t}\n\tunlock() {\n\t\tconst resolve = this.#resolve;\n\t\tthis.#promise = void 0;\n\t\tthis.#resolve = void 0;\n\t\tresolve?.();\n\t}\n};\nvar BunSqliteIntrospector = class {\n\t#db;\n\tconstructor(db) {\n\t\tthis.#db = db;\n\t}\n\tasync getSchemas() {\n\t\treturn [];\n\t}\n\tasync getTables(options = { withInternalKyselyTables: false }) {\n\t\tlet query = this.#db.selectFrom(\"sqlite_schema\").where(\"type\", \"=\", \"table\").where(\"name\", \"not like\", \"sqlite_%\").select(\"name\").$castTo();\n\t\tif (!options.withInternalKyselyTables) query = query.where(\"name\", \"!=\", DEFAULT_MIGRATION_TABLE).where(\"name\", \"!=\", DEFAULT_MIGRATION_LOCK_TABLE);\n\t\tconst tables = await query.execute();\n\t\treturn Promise.all(tables.map(({ name }) => this.#getTableMetadata(name)));\n\t}\n\tasync getMetadata(options) {\n\t\treturn { tables: await this.getTables(options) };\n\t}\n\tasync #getTableMetadata(table) {\n\t\tconst db = this.#db;\n\t\tconst autoIncrementCol = (await db.selectFrom(\"sqlite_master\").where(\"name\", \"=\", table).select(\"sql\").$castTo().execute())[0]?.sql?.split(/[\\(\\),]/)?.find((it) => it.toLowerCase().includes(\"autoincrement\"))?.split(/\\s+/)?.[0]?.replace(/[\"`]/g, \"\");\n\t\treturn {\n\t\t\tname: table,\n\t\t\tcolumns: (await db.selectFrom(sql`pragma_table_info(${table})`.as(\"table_info\")).select([\n\t\t\t\t\"name\",\n\t\t\t\t\"type\",\n\t\t\t\t\"notnull\",\n\t\t\t\t\"dflt_value\"\n\t\t\t]).execute()).map((col) => ({\n\t\t\t\tname: col.name,\n\t\t\t\tdataType: col.type,\n\t\t\t\tisNullable: !col.notnull,\n\t\t\t\tisAutoIncrementing: col.name === autoIncrementCol,\n\t\t\t\thasDefaultValue: col.dflt_value != null\n\t\t\t})),\n\t\t\tisView: true\n\t\t};\n\t}\n};\nvar BunSqliteQueryCompiler = class extends DefaultQueryCompiler {\n\tgetCurrentParameterPlaceholder() {\n\t\treturn \"?\";\n\t}\n\tgetLeftIdentifierWrapper() {\n\t\treturn \"\\\"\";\n\t}\n\tgetRightIdentifierWrapper() {\n\t\treturn \"\\\"\";\n\t}\n\tgetAutoIncrement() {\n\t\treturn \"autoincrement\";\n\t}\n};\nvar BunSqliteDialect = class {\n\t#config;\n\tconstructor(config) {\n\t\tthis.#config = { ...config };\n\t}\n\tcreateDriver() {\n\t\treturn new BunSqliteDriver(this.#config);\n\t}\n\tcreateQueryCompiler() {\n\t\treturn new BunSqliteQueryCompiler();\n\t}\n\tcreateAdapter() {\n\t\treturn new BunSqliteAdapter();\n\t}\n\tcreateIntrospector(db) {\n\t\treturn new BunSqliteIntrospector(db);\n\t}\n};\n//#endregion\nexport { BunSqliteDialect };\n"]}