@access-dlsu/leapify 0.260507.4 → 0.260524.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 (139) hide show
  1. package/dist/app.d.ts.map +1 -1
  2. package/dist/auth/auth.d.ts.map +1 -1
  3. package/dist/auth/middleware.d.ts.map +1 -1
  4. package/dist/chunk-64MMUYMK.cjs +167 -0
  5. package/dist/chunk-64MMUYMK.cjs.map +1 -0
  6. package/dist/chunk-AKCERDGP.js +161 -0
  7. package/dist/chunk-AKCERDGP.js.map +1 -0
  8. package/dist/client/auth.d.ts +1 -13
  9. package/dist/client/auth.d.ts.map +1 -1
  10. package/dist/client/index.cjs +55 -841
  11. package/dist/client/index.cjs.map +1 -1
  12. package/dist/client/index.d.ts +3 -8
  13. package/dist/client/index.d.ts.map +1 -1
  14. package/dist/client/index.js +53 -839
  15. package/dist/client/index.js.map +1 -1
  16. package/dist/client/turnstile.d.ts +25 -0
  17. package/dist/client/turnstile.d.ts.map +1 -0
  18. package/dist/client/types.d.ts +2 -15
  19. package/dist/client/types.d.ts.map +1 -1
  20. package/dist/db/migrate.d.ts.map +1 -1
  21. package/dist/db/schema/classes.d.ts +0 -19
  22. package/dist/db/schema/classes.d.ts.map +1 -1
  23. package/dist/db/schema/site-config.d.ts +0 -83
  24. package/dist/db/schema/site-config.d.ts.map +1 -1
  25. package/dist/index.cjs +687 -38309
  26. package/dist/index.cjs.map +1 -1
  27. package/dist/index.d.ts +3 -5
  28. package/dist/index.d.ts.map +1 -1
  29. package/dist/index.js +541 -38156
  30. package/dist/index.js.map +1 -1
  31. package/dist/lib/middleware/cors.d.ts.map +1 -1
  32. package/dist/lib/middleware/rate-limit.d.ts.map +1 -1
  33. package/dist/lib/middleware/referer-guard.d.ts.map +1 -1
  34. package/dist/lib/middleware/turnstile-challenge.cjs +29 -0
  35. package/dist/lib/middleware/turnstile-challenge.cjs.map +1 -0
  36. package/dist/lib/middleware/turnstile-challenge.d.ts +45 -0
  37. package/dist/lib/middleware/turnstile-challenge.d.ts.map +1 -0
  38. package/dist/lib/middleware/turnstile-challenge.js +4 -0
  39. package/dist/lib/middleware/turnstile-challenge.js.map +1 -0
  40. package/dist/queues/jobs.d.ts +0 -5
  41. package/dist/queues/jobs.d.ts.map +1 -1
  42. package/dist/routes/classes.d.ts.map +1 -1
  43. package/dist/routes/faqs.d.ts.map +1 -1
  44. package/dist/routes/site-config.d.ts.map +1 -1
  45. package/dist/routes/themes.d.ts.map +1 -1
  46. package/dist/routes/uploads.d.ts.map +1 -1
  47. package/dist/types.d.ts +5 -26
  48. package/dist/types.d.ts.map +1 -1
  49. package/dist/worker-handler.d.ts +1 -0
  50. package/dist/worker-handler.d.ts.map +1 -1
  51. package/dist/worker.js +704 -64338
  52. package/dist/worker.js.map +1 -1
  53. package/package.json +155 -153
  54. package/dist/bun-sqlite-dialect-na--YwnN-NIYANHVJ.cjs +0 -162
  55. package/dist/bun-sqlite-dialect-na--YwnN-NIYANHVJ.cjs.map +0 -1
  56. package/dist/bun-sqlite-dialect-na--YwnN-XVQNOKSL.js +0 -160
  57. package/dist/bun-sqlite-dialect-na--YwnN-XVQNOKSL.js.map +0 -1
  58. package/dist/chunk-4DPT2KQR.cjs +0 -467
  59. package/dist/chunk-4DPT2KQR.cjs.map +0 -1
  60. package/dist/chunk-5JKLV7IE.cjs +0 -2962
  61. package/dist/chunk-5JKLV7IE.cjs.map +0 -1
  62. package/dist/chunk-5OQD5ALM.cjs +0 -76
  63. package/dist/chunk-5OQD5ALM.cjs.map +0 -1
  64. package/dist/chunk-6MMWL46O.cjs +0 -7170
  65. package/dist/chunk-6MMWL46O.cjs.map +0 -1
  66. package/dist/chunk-BFMJDSDI.cjs +0 -2297
  67. package/dist/chunk-BFMJDSDI.cjs.map +0 -1
  68. package/dist/chunk-EGRHWZRV.js +0 -3
  69. package/dist/chunk-EGRHWZRV.js.map +0 -1
  70. package/dist/chunk-EMMSS5I5.cjs +0 -37
  71. package/dist/chunk-EMMSS5I5.cjs.map +0 -1
  72. package/dist/chunk-FUCJEA2S.js +0 -6196
  73. package/dist/chunk-FUCJEA2S.js.map +0 -1
  74. package/dist/chunk-G3PMV62Z.js +0 -33
  75. package/dist/chunk-G3PMV62Z.js.map +0 -1
  76. package/dist/chunk-GNRL67OU.js +0 -2949
  77. package/dist/chunk-GNRL67OU.js.map +0 -1
  78. package/dist/chunk-HHNEB7YR.js +0 -8
  79. package/dist/chunk-HHNEB7YR.js.map +0 -1
  80. package/dist/chunk-IQEWVHLM.js +0 -889
  81. package/dist/chunk-IQEWVHLM.js.map +0 -1
  82. package/dist/chunk-JIZPYG6H.js +0 -72
  83. package/dist/chunk-JIZPYG6H.js.map +0 -1
  84. package/dist/chunk-JPVIXCF5.cjs +0 -10
  85. package/dist/chunk-JPVIXCF5.cjs.map +0 -1
  86. package/dist/chunk-JQSZJWBN.cjs +0 -3075
  87. package/dist/chunk-JQSZJWBN.cjs.map +0 -1
  88. package/dist/chunk-LJ5BSSYE.js +0 -2286
  89. package/dist/chunk-LJ5BSSYE.js.map +0 -1
  90. package/dist/chunk-MCOLCTFX.js +0 -213
  91. package/dist/chunk-MCOLCTFX.js.map +0 -1
  92. package/dist/chunk-MKWVLWVJ.cjs +0 -219
  93. package/dist/chunk-MKWVLWVJ.cjs.map +0 -1
  94. package/dist/chunk-MNEW2V4T.js +0 -447
  95. package/dist/chunk-MNEW2V4T.js.map +0 -1
  96. package/dist/chunk-MY37YE52.js +0 -3034
  97. package/dist/chunk-MY37YE52.js.map +0 -1
  98. package/dist/chunk-NKIQRCOM.cjs +0 -4
  99. package/dist/chunk-NKIQRCOM.cjs.map +0 -1
  100. package/dist/chunk-OK6RVPEH.cjs +0 -6200
  101. package/dist/chunk-OK6RVPEH.cjs.map +0 -1
  102. package/dist/chunk-RFP2X2FA.cjs +0 -903
  103. package/dist/chunk-RFP2X2FA.cjs.map +0 -1
  104. package/dist/chunk-XJSWMHDL.js +0 -7142
  105. package/dist/chunk-XJSWMHDL.js.map +0 -1
  106. package/dist/client/pow.d.ts +0 -28
  107. package/dist/client/pow.d.ts.map +0 -1
  108. package/dist/cron/lifecycle-check.d.ts +0 -10
  109. package/dist/cron/lifecycle-check.d.ts.map +0 -1
  110. package/dist/d1-sqlite-dialect-C2B7YsIT-6TVV7EJ5.js +0 -122
  111. package/dist/d1-sqlite-dialect-C2B7YsIT-6TVV7EJ5.js.map +0 -1
  112. package/dist/d1-sqlite-dialect-C2B7YsIT-PE74FLHQ.cjs +0 -124
  113. package/dist/d1-sqlite-dialect-C2B7YsIT-PE74FLHQ.cjs.map +0 -1
  114. package/dist/dist-DZHA5VYX.cjs +0 -260
  115. package/dist/dist-DZHA5VYX.cjs.map +0 -1
  116. package/dist/dist-RRQUBLLO.js +0 -258
  117. package/dist/dist-RRQUBLLO.js.map +0 -1
  118. package/dist/kysely-adapter-C76KJVG7.js +0 -10
  119. package/dist/kysely-adapter-C76KJVG7.js.map +0 -1
  120. package/dist/kysely-adapter-TGY4UUP5.cjs +0 -27
  121. package/dist/kysely-adapter-TGY4UUP5.cjs.map +0 -1
  122. package/dist/lib/middleware/pow-challenge.cjs +0 -29
  123. package/dist/lib/middleware/pow-challenge.cjs.map +0 -1
  124. package/dist/lib/middleware/pow-challenge.d.ts +0 -58
  125. package/dist/lib/middleware/pow-challenge.d.ts.map +0 -1
  126. package/dist/lib/middleware/pow-challenge.js +0 -4
  127. package/dist/lib/middleware/pow-challenge.js.map +0 -1
  128. package/dist/node-sqlite-dialect-B3H37T3R.cjs +0 -162
  129. package/dist/node-sqlite-dialect-B3H37T3R.cjs.map +0 -1
  130. package/dist/node-sqlite-dialect-GDP7ZE54.js +0 -160
  131. package/dist/node-sqlite-dialect-GDP7ZE54.js.map +0 -1
  132. package/dist/routes/contentful-sync.d.ts +0 -4
  133. package/dist/routes/contentful-sync.d.ts.map +0 -1
  134. package/dist/services/contentful-management.d.ts +0 -38
  135. package/dist/services/contentful-management.d.ts.map +0 -1
  136. package/dist/services/contentful.d.ts +0 -97
  137. package/dist/services/contentful.d.ts.map +0 -1
  138. package/dist/services/snapshot.d.ts +0 -95
  139. package/dist/services/snapshot.d.ts.map +0 -1
@@ -1,160 +0,0 @@
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/node-sqlite-dialect.mjs
6
- var NodeSqliteAdapter = 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 NodeSqliteDriver = 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 NodeSqliteConnection(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 NodeSqliteConnection = class {
58
- #db;
59
- constructor(db) {
60
- this.#db = db;
61
- }
62
- executeQuery(compiledQuery) {
63
- const { sql: sql2, parameters } = compiledQuery;
64
- const rows = this.#db.prepare(sql2).all(...parameters);
65
- return Promise.resolve({ rows });
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 NodeSqliteIntrospector = 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 NodeSqliteQueryCompiler = 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 NodeSqliteDialect = class {
140
- #config;
141
- constructor(config) {
142
- this.#config = { ...config };
143
- }
144
- createDriver() {
145
- return new NodeSqliteDriver(this.#config);
146
- }
147
- createQueryCompiler() {
148
- return new NodeSqliteQueryCompiler();
149
- }
150
- createAdapter() {
151
- return new NodeSqliteAdapter();
152
- }
153
- createIntrospector(db) {
154
- return new NodeSqliteIntrospector(db);
155
- }
156
- };
157
-
158
- export { NodeSqliteDialect };
159
- //# sourceMappingURL=node-sqlite-dialect-GDP7ZE54.js.map
160
- //# sourceMappingURL=node-sqlite-dialect-GDP7ZE54.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../node_modules/@better-auth/kysely-adapter/dist/node-sqlite-dialect.mjs"],"names":["sql"],"mappings":"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","file":"node-sqlite-dialect-GDP7ZE54.js","sourcesContent":["import { CompiledQuery, DEFAULT_MIGRATION_LOCK_TABLE, DEFAULT_MIGRATION_TABLE, DefaultQueryCompiler, sql } from \"kysely\";\n//#region src/node-sqlite-dialect.ts\nvar NodeSqliteAdapter = 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 NodeSqliteDriver = 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 NodeSqliteConnection(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 NodeSqliteConnection = 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 rows = this.#db.prepare(sql).all(...parameters);\n\t\treturn Promise.resolve({ rows });\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 NodeSqliteIntrospector = 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 NodeSqliteQueryCompiler = 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 NodeSqliteDialect = class {\n\t#config;\n\tconstructor(config) {\n\t\tthis.#config = { ...config };\n\t}\n\tcreateDriver() {\n\t\treturn new NodeSqliteDriver(this.#config);\n\t}\n\tcreateQueryCompiler() {\n\t\treturn new NodeSqliteQueryCompiler();\n\t}\n\tcreateAdapter() {\n\t\treturn new NodeSqliteAdapter();\n\t}\n\tcreateIntrospector(db) {\n\t\treturn new NodeSqliteIntrospector(db);\n\t}\n};\n//#endregion\nexport { NodeSqliteDialect };\n"]}
@@ -1,4 +0,0 @@
1
- import { Hono } from 'hono';
2
- import type { LeapifyEnv } from '../types';
3
- export declare const contentfulSyncRoute: Hono<LeapifyEnv, import("hono/types").BlankSchema, "/">;
4
- //# sourceMappingURL=contentful-sync.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"contentful-sync.d.ts","sourceRoot":"","sources":["../../src/routes/contentful-sync.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAA;AAE3B,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,UAAU,CAAA;AAO1C,eAAO,MAAM,mBAAmB,yDAAyB,CAAA"}
@@ -1,38 +0,0 @@
1
- /**
2
- * Contentful Content Management API client.
3
- * Uses the official `contentful-management` SDK with the plain client API.
4
- */
5
- export interface ContentTypeField {
6
- id: string;
7
- name: string;
8
- type: 'Symbol' | 'Text' | 'Integer' | 'Number' | 'Boolean' | 'Date' | 'Object' | 'Link' | 'Array';
9
- required?: boolean;
10
- localized?: boolean;
11
- validations?: unknown[];
12
- items?: {
13
- type: string;
14
- validations?: unknown[];
15
- };
16
- linkType?: 'Entry' | 'Asset';
17
- }
18
- export declare class ContentfulManagement {
19
- private readonly client;
20
- constructor(spaceId: string, token: string, environment?: string);
21
- static isConfigured(spaceId?: string, token?: string): boolean;
22
- getContentType(contentTypeId: string): Promise<any | null>;
23
- ensureContentType(contentTypeId: string, name: string, fields: ContentTypeField[]): Promise<void>;
24
- private tryPublishExisting;
25
- getEntry(entryId: string): Promise<any | null>;
26
- upsertEntry(contentTypeId: string, entryId: string, fields: Record<string, Record<string, unknown>>): Promise<any>;
27
- unpublishEntry(entryId: string): Promise<any>;
28
- deleteEntry(entryId: string): Promise<void>;
29
- uploadFile(_fileName: string, data: ArrayBuffer, _contentType: string): Promise<string>;
30
- createAssetFromUpload(uploadId: string, title: string, fileName: string, contentType: string): Promise<{
31
- id: string;
32
- url: string;
33
- }>;
34
- static locale(value: unknown): Record<string, unknown>;
35
- static entryRef(entryId: string): Record<string, unknown>;
36
- static assetRef(assetId: string): Record<string, unknown>;
37
- }
38
- //# sourceMappingURL=contentful-management.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"contentful-management.d.ts","sourceRoot":"","sources":["../../src/services/contentful-management.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAMH,MAAM,WAAW,gBAAgB;IAC/B,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,QAAQ,GAAG,MAAM,GAAG,SAAS,GAAG,QAAQ,GAAG,SAAS,GAAG,MAAM,GAAG,QAAQ,GAAG,MAAM,GAAG,OAAO,CAAA;IACjG,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,WAAW,CAAC,EAAE,OAAO,EAAE,CAAA;IACvB,KAAK,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,OAAO,EAAE,CAAA;KAAE,CAAA;IACjD,QAAQ,CAAC,EAAE,OAAO,GAAG,OAAO,CAAA;CAC7B;AAID,qBAAa,oBAAoB;IAC/B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAK;gBAEhB,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,WAAW,SAAW;IAUlE,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO;IAMxD,cAAc,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,GAAG,IAAI,CAAC;IAU1D,iBAAiB,CACrB,aAAa,EAAE,MAAM,EACrB,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,gBAAgB,EAAE,GACzB,OAAO,CAAC,IAAI,CAAC;YA0EF,kBAAkB;IAgC1B,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,GAAG,IAAI,CAAC;IAS9C,WAAW,CACf,aAAa,EAAE,MAAM,EACrB,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,GAC9C,OAAO,CAAC,GAAG,CAAC;IAmBT,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC;IAM7C,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAM3C,UAAU,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAKvF,qBAAqB,CACzB,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,MAAM,EAChB,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,CAAC;IA6BvC,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAItD,MAAM,CAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAIzD,MAAM,CAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;CAG1D"}
@@ -1,97 +0,0 @@
1
- /**
2
- * Contentful Delivery API client.
3
- * Fully fetch-native — no SDK (edge compatible).
4
- *
5
- * Uses the Content Delivery API (read-only, published content only).
6
- * All responses are JSON; asset files are fetched separately via their CDN URL.
7
- */
8
- interface ContentfulSys {
9
- id: string;
10
- type: string;
11
- createdAt: string;
12
- updatedAt: string;
13
- contentType?: {
14
- sys: {
15
- type: string;
16
- linkType: string;
17
- id: string;
18
- };
19
- };
20
- }
21
- interface ContentfulAssetFile {
22
- url: string;
23
- details: {
24
- size: number;
25
- image?: {
26
- width: number;
27
- height: number;
28
- };
29
- };
30
- fileName: string;
31
- contentType: string;
32
- }
33
- export interface ContentfulEntry {
34
- sys: ContentfulSys;
35
- fields: Record<string, unknown>;
36
- }
37
- export interface ContentfulAsset {
38
- sys: {
39
- id: string;
40
- type: 'Asset';
41
- createdAt: string;
42
- updatedAt: string;
43
- };
44
- fields: {
45
- title?: string;
46
- description?: string;
47
- file?: ContentfulAssetFile;
48
- };
49
- }
50
- export declare class ContentfulService {
51
- private readonly spaceId;
52
- private readonly accessToken;
53
- private readonly environment;
54
- constructor(spaceId: string, accessToken: string, environment?: string);
55
- /**
56
- * Returns true if the required Contentful credentials are configured.
57
- */
58
- static isConfigured(spaceId?: string, accessToken?: string): boolean;
59
- /**
60
- * Fetch all entries of a given content type.
61
- * Handles pagination automatically (100 per page, Contentful max).
62
- */
63
- getEntries(contentTypeId: string): Promise<ContentfulEntry[]>;
64
- /**
65
- * Fetch all assets. Handles pagination.
66
- */
67
- getAssets(): Promise<ContentfulAsset[]>;
68
- /**
69
- * Download an asset file from Contentful's CDN.
70
- * Returns the raw ArrayBuffer and content type.
71
- */
72
- downloadAsset(assetUrl: string): Promise<{
73
- data: ArrayBuffer;
74
- contentType: string;
75
- }>;
76
- /**
77
- * Extract a field value from a Contentful entry, handling locale wrapping.
78
- * Contentful fields are often `{ "en-US": value }` — this unwraps them.
79
- */
80
- static getField<T = unknown>(entry: ContentfulEntry, fieldName: string): T | undefined;
81
- /**
82
- * Extract a linked entry/sys reference ID from a reference field.
83
- */
84
- static getRefId(entry: ContentfulEntry, fieldName: string): string | undefined;
85
- /**
86
- * Extract an asset URL from a linked asset field.
87
- */
88
- static getAssetUrl(entry: ContentfulEntry, fieldName: string): string | undefined;
89
- /**
90
- * Resolve an asset URL by ID from a list of fetched assets.
91
- */
92
- static resolveAssetUrl(assets: ContentfulAsset[], assetId: string): string | undefined;
93
- private headers;
94
- private buildUrl;
95
- }
96
- export {};
97
- //# sourceMappingURL=contentful.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"contentful.d.ts","sourceRoot":"","sources":["../../src/services/contentful.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAMH,UAAU,aAAa;IACrB,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,MAAM,CAAA;IACZ,SAAS,EAAE,MAAM,CAAA;IACjB,SAAS,EAAE,MAAM,CAAA;IACjB,WAAW,CAAC,EAAE;QAAE,GAAG,EAAE;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,QAAQ,EAAE,MAAM,CAAC;YAAC,EAAE,EAAE,MAAM,CAAA;SAAE,CAAA;KAAE,CAAA;CACtE;AAED,UAAU,mBAAmB;IAC3B,GAAG,EAAE,MAAM,CAAA;IACX,OAAO,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE;YAAE,KAAK,EAAE,MAAM,CAAC;YAAC,MAAM,EAAE,MAAM,CAAA;SAAE,CAAA;KAAE,CAAA;IACpE,QAAQ,EAAE,MAAM,CAAA;IAChB,WAAW,EAAE,MAAM,CAAA;CACpB;AAED,MAAM,WAAW,eAAe;IAC9B,GAAG,EAAE,aAAa,CAAA;IAClB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAChC;AAED,MAAM,WAAW,eAAe;IAC9B,GAAG,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,OAAO,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,CAAA;IACxE,MAAM,EAAE;QACN,KAAK,CAAC,EAAE,MAAM,CAAA;QACd,WAAW,CAAC,EAAE,MAAM,CAAA;QACpB,IAAI,CAAC,EAAE,mBAAmB,CAAA;KAC3B,CAAA;CACF;AAgBD,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAQ;IAChC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAQ;IACpC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAQ;gBAExB,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,WAAW,SAAW;IAMxE;;OAEG;IACH,MAAM,CAAC,YAAY,CACjB,OAAO,CAAC,EAAE,MAAM,EAChB,WAAW,CAAC,EAAE,MAAM,GACnB,OAAO;IAMV;;;OAGG;IACG,UAAU,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC;IA4BnE;;OAEG;IACG,SAAS,IAAI,OAAO,CAAC,eAAe,EAAE,CAAC;IA+B7C;;;OAGG;IACG,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,IAAI,EAAE,WAAW,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE,CAAC;IAiB1F;;;OAGG;IACH,MAAM,CAAC,QAAQ,CAAC,CAAC,GAAG,OAAO,EAAE,KAAK,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,GAAG,CAAC,GAAG,SAAS;IAYtF;;OAEG;IACH,MAAM,CAAC,QAAQ,CAAC,KAAK,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAK9E;;OAEG;IACH,MAAM,CAAC,WAAW,CAAC,KAAK,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAKjF;;OAEG;IACH,MAAM,CAAC,eAAe,CAAC,MAAM,EAAE,eAAe,EAAE,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAOtF,OAAO,CAAC,OAAO;IAOf,OAAO,CAAC,QAAQ;CAajB"}
@@ -1,95 +0,0 @@
1
- /**
2
- * Contentful → D1 + R2 snapshot service.
3
- *
4
- * Pulls published content from Contentful, downloads images into R2
5
- * (with SHA-256 dedup to skip unchanged files), and upserts rows into D1.
6
- * Caches fetched Contentful entries in KV to reduce API strain.
7
- *
8
- * Called by the `snapshot_content` queue handler and the admin sync endpoint.
9
- */
10
- import type { R2Bucket, KVNamespace } from '@cloudflare/workers-types';
11
- import { ContentfulService } from './contentful';
12
- import { ContentfulManagement } from './contentful-management';
13
- import type { LeapifyDb } from '../db';
14
- export interface SnapshotConfig {
15
- eventTypeId: string;
16
- themeTypeId: string;
17
- faqTypeId: string;
18
- organizationTypeId: string;
19
- fields: {
20
- event: {
21
- title: string;
22
- slug: string;
23
- theme: string;
24
- organization: string;
25
- venue: string;
26
- date: string;
27
- startTime: string;
28
- endTime: string;
29
- price: string;
30
- image: string;
31
- isSpotlight: string;
32
- maxSlots: string;
33
- gformsUrl: string;
34
- gformsEditorUrl: string;
35
- registrationClosesAt: string;
36
- classCode: string;
37
- };
38
- theme: {
39
- name: string;
40
- path: string;
41
- };
42
- faq: {
43
- question: string;
44
- answer: string;
45
- category: string;
46
- sortOrder: string;
47
- };
48
- organization: {
49
- name: string;
50
- acronym: string;
51
- logoUrl: string;
52
- link: string;
53
- };
54
- siteConfig: {
55
- key: string;
56
- value: string;
57
- };
58
- };
59
- }
60
- export interface SnapshotResult {
61
- themesSynced: number;
62
- eventsSynced: number;
63
- faqsSynced: number;
64
- organizationsSynced: number;
65
- imagesUploaded: number;
66
- imagesSkipped: number;
67
- errors: string[];
68
- }
69
- /**
70
- * Run a full Contentful → D1 + R2 snapshot.
71
- *
72
- * 1. Fetches all themes, events, and FAQs from Contentful (or KV cache).
73
- * 2. For each image asset: downloads from Contentful CDN, computes SHA-256,
74
- * checks R2 for an existing object with the same SHA, and skips the upload
75
- * if unchanged (dedup).
76
- * 3. Upserts all entries into D1.
77
- * 4. Caches fetched Contentful entries in KV for 5 minutes.
78
- */
79
- export declare function snapshotAllContent(db: LeapifyDb, bucket: R2Bucket | undefined, contentful: ContentfulService, config?: Partial<SnapshotConfig>, kv?: KVNamespace): Promise<SnapshotResult>;
80
- /**
81
- * Ensure all Leapify content types exist in Contentful.
82
- * Creates them if missing, updates if fields changed.
83
- *
84
- * Call this once on first sync or when the schema changes.
85
- */
86
- export declare function ensureContentTypes(mgmt: ContentfulManagement, config?: Partial<SnapshotConfig>): Promise<void>;
87
- /**
88
- * Push D1 content to Contentful, skipping entities that haven't changed
89
- * since the last successful push.
90
- *
91
- * Uses KV to store the last push timestamp. If `forceFull` is true,
92
- * pushes all entities regardless of changes.
93
- */
94
- export declare function pushToContentful(db: LeapifyDb, mgmt: ContentfulManagement, config?: Partial<SnapshotConfig>, kv?: KVNamespace, forceFull?: boolean): Promise<SnapshotResult>;
95
- //# sourceMappingURL=snapshot.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"snapshot.d.ts","sourceRoot":"","sources":["../../src/services/snapshot.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAA;AAEtE,OAAO,EAAE,iBAAiB,EAA8C,MAAM,cAAc,CAAA;AAC5F,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAA;AAC9D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAQtC,MAAM,WAAW,cAAc;IAC7B,WAAW,EAAE,MAAM,CAAA;IACnB,WAAW,EAAE,MAAM,CAAA;IACnB,SAAS,EAAE,MAAM,CAAA;IACjB,kBAAkB,EAAE,MAAM,CAAA;IAC1B,MAAM,EAAE;QACN,KAAK,EAAE;YACL,KAAK,EAAE,MAAM,CAAA;YACb,IAAI,EAAE,MAAM,CAAA;YACZ,KAAK,EAAE,MAAM,CAAA;YACb,YAAY,EAAE,MAAM,CAAA;YACpB,KAAK,EAAE,MAAM,CAAA;YACb,IAAI,EAAE,MAAM,CAAA;YACZ,SAAS,EAAE,MAAM,CAAA;YACjB,OAAO,EAAE,MAAM,CAAA;YACf,KAAK,EAAE,MAAM,CAAA;YACb,KAAK,EAAE,MAAM,CAAA;YACb,WAAW,EAAE,MAAM,CAAA;YACnB,QAAQ,EAAE,MAAM,CAAA;YAChB,SAAS,EAAE,MAAM,CAAA;YACjB,eAAe,EAAE,MAAM,CAAA;YACvB,oBAAoB,EAAE,MAAM,CAAA;YAC5B,SAAS,EAAE,MAAM,CAAA;SAClB,CAAA;QACD,KAAK,EAAE;YACL,IAAI,EAAE,MAAM,CAAA;YACZ,IAAI,EAAE,MAAM,CAAA;SACb,CAAA;QACD,GAAG,EAAE;YACH,QAAQ,EAAE,MAAM,CAAA;YAChB,MAAM,EAAE,MAAM,CAAA;YACd,QAAQ,EAAE,MAAM,CAAA;YAChB,SAAS,EAAE,MAAM,CAAA;SAClB,CAAA;QACD,YAAY,EAAE;YACZ,IAAI,EAAE,MAAM,CAAA;YACZ,OAAO,EAAE,MAAM,CAAA;YACf,OAAO,EAAE,MAAM,CAAA;YACf,IAAI,EAAE,MAAM,CAAA;SACb,CAAA;QACD,UAAU,EAAE;YACV,GAAG,EAAE,MAAM,CAAA;YACX,KAAK,EAAE,MAAM,CAAA;SACd,CAAA;KACF,CAAA;CACF;AAED,MAAM,WAAW,cAAc;IAC7B,YAAY,EAAE,MAAM,CAAA;IACpB,YAAY,EAAE,MAAM,CAAA;IACpB,UAAU,EAAE,MAAM,CAAA;IAClB,mBAAmB,EAAE,MAAM,CAAA;IAC3B,cAAc,EAAE,MAAM,CAAA;IACtB,aAAa,EAAE,MAAM,CAAA;IACrB,MAAM,EAAE,MAAM,EAAE,CAAA;CACjB;AAkDD;;;;;;;;;GASG;AACH,wBAAsB,kBAAkB,CACtC,EAAE,EAAE,SAAS,EACb,MAAM,EAAE,QAAQ,GAAG,SAAS,EAC5B,UAAU,EAAE,iBAAiB,EAC7B,MAAM,GAAE,OAAO,CAAC,cAAc,CAAM,EACpC,EAAE,CAAC,EAAE,WAAW,GACf,OAAO,CAAC,cAAc,CAAC,CA2HzB;AAkTD;;;;;GAKG;AACH,wBAAsB,kBAAkB,CACtC,IAAI,EAAE,oBAAoB,EAC1B,MAAM,GAAE,OAAO,CAAC,cAAc,CAAM,GACnC,OAAO,CAAC,IAAI,CAAC,CA+Cf;AAMD;;;;;;GAMG;AACH,wBAAsB,gBAAgB,CACpC,EAAE,EAAE,SAAS,EACb,IAAI,EAAE,oBAAoB,EAC1B,MAAM,GAAE,OAAO,CAAC,cAAc,CAAM,EACpC,EAAE,CAAC,EAAE,WAAW,EAChB,SAAS,UAAQ,GAChB,OAAO,CAAC,cAAc,CAAC,CAwJzB"}