@powerhousedao/reactor-api 6.0.0-dev.6 → 6.0.0-dev.61

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 (211) hide show
  1. package/dist/codegen.js +1 -1
  2. package/dist/codegen.js.map +1 -1
  3. package/dist/src/config.d.ts +1 -2
  4. package/dist/src/config.d.ts.map +1 -1
  5. package/dist/src/config.js +1 -5
  6. package/dist/src/config.js.map +1 -1
  7. package/dist/src/graphql/auth/resolvers.d.ts +17 -0
  8. package/dist/src/graphql/auth/resolvers.d.ts.map +1 -1
  9. package/dist/src/graphql/auth/resolvers.js +54 -0
  10. package/dist/src/graphql/auth/resolvers.js.map +1 -1
  11. package/dist/src/graphql/auth/schema.graphql +27 -5
  12. package/dist/src/graphql/auth/subgraph.d.ts +25 -0
  13. package/dist/src/graphql/auth/subgraph.d.ts.map +1 -1
  14. package/dist/src/graphql/auth/subgraph.js +45 -1
  15. package/dist/src/graphql/auth/subgraph.js.map +1 -1
  16. package/dist/src/graphql/base-subgraph.d.ts +12 -3
  17. package/dist/src/graphql/base-subgraph.d.ts.map +1 -1
  18. package/dist/src/graphql/base-subgraph.js +94 -0
  19. package/dist/src/graphql/base-subgraph.js.map +1 -1
  20. package/dist/src/graphql/document-model-subgraph.d.ts +28 -43
  21. package/dist/src/graphql/document-model-subgraph.d.ts.map +1 -1
  22. package/dist/src/graphql/document-model-subgraph.js +425 -83
  23. package/dist/src/graphql/document-model-subgraph.js.map +1 -1
  24. package/dist/src/graphql/drive-subgraph.d.ts.map +1 -1
  25. package/dist/src/graphql/drive-subgraph.js +47 -35
  26. package/dist/src/graphql/drive-subgraph.js.map +1 -1
  27. package/dist/src/graphql/graphql-manager.d.ts +13 -5
  28. package/dist/src/graphql/graphql-manager.d.ts.map +1 -1
  29. package/dist/src/graphql/graphql-manager.js +206 -137
  30. package/dist/src/graphql/graphql-manager.js.map +1 -1
  31. package/dist/src/graphql/index.d.ts +1 -0
  32. package/dist/src/graphql/index.d.ts.map +1 -1
  33. package/dist/src/graphql/index.js +1 -0
  34. package/dist/src/graphql/index.js.map +1 -1
  35. package/dist/src/graphql/reactor/adapters.d.ts +10 -2
  36. package/dist/src/graphql/reactor/adapters.d.ts.map +1 -1
  37. package/dist/src/graphql/reactor/adapters.js +35 -1
  38. package/dist/src/graphql/reactor/adapters.js.map +1 -1
  39. package/dist/src/graphql/reactor/factory.d.ts +12 -1
  40. package/dist/src/graphql/reactor/factory.d.ts.map +1 -1
  41. package/dist/src/graphql/reactor/factory.js +1 -1
  42. package/dist/src/graphql/reactor/factory.js.map +1 -1
  43. package/dist/src/graphql/reactor/gen/graphql.d.ts +221 -76
  44. package/dist/src/graphql/reactor/gen/graphql.d.ts.map +1 -1
  45. package/dist/src/graphql/reactor/gen/graphql.js +129 -10
  46. package/dist/src/graphql/reactor/gen/graphql.js.map +1 -1
  47. package/dist/src/graphql/reactor/index.d.ts +1 -1
  48. package/dist/src/graphql/reactor/index.d.ts.map +1 -1
  49. package/dist/src/graphql/reactor/index.js +1 -1
  50. package/dist/src/graphql/reactor/index.js.map +1 -1
  51. package/dist/src/graphql/reactor/operations.graphql +84 -1
  52. package/dist/src/graphql/reactor/requester.with-zod.d.ts.map +1 -1
  53. package/dist/src/graphql/reactor/requester.with-zod.js +104 -38
  54. package/dist/src/graphql/reactor/requester.with-zod.js.map +1 -1
  55. package/dist/src/graphql/reactor/resolvers.d.ts +77 -25
  56. package/dist/src/graphql/reactor/resolvers.d.ts.map +1 -1
  57. package/dist/src/graphql/reactor/resolvers.js +164 -70
  58. package/dist/src/graphql/reactor/resolvers.js.map +1 -1
  59. package/dist/src/graphql/reactor/schema.graphql +70 -30
  60. package/dist/src/graphql/reactor/subgraph.d.ts +2 -31
  61. package/dist/src/graphql/reactor/subgraph.d.ts.map +1 -1
  62. package/dist/src/graphql/reactor/subgraph.js +132 -209
  63. package/dist/src/graphql/reactor/subgraph.js.map +1 -1
  64. package/dist/src/graphql/reactor/validation.d.ts +23 -5
  65. package/dist/src/graphql/reactor/validation.d.ts.map +1 -1
  66. package/dist/src/graphql/reactor/validation.js +15 -1
  67. package/dist/src/graphql/reactor/validation.js.map +1 -1
  68. package/dist/src/graphql/system/index.d.ts +0 -1
  69. package/dist/src/graphql/system/index.d.ts.map +1 -1
  70. package/dist/src/graphql/system/index.js +0 -1
  71. package/dist/src/graphql/system/index.js.map +1 -1
  72. package/dist/src/graphql/types.d.ts +6 -5
  73. package/dist/src/graphql/types.d.ts.map +1 -1
  74. package/dist/src/graphql/utils.d.ts.map +1 -1
  75. package/dist/src/graphql/utils.js +7 -3
  76. package/dist/src/graphql/utils.js.map +1 -1
  77. package/dist/src/migrations/002_add_document_protection.d.ts +4 -0
  78. package/dist/src/migrations/002_add_document_protection.d.ts.map +1 -0
  79. package/dist/src/migrations/002_add_document_protection.js +18 -0
  80. package/dist/src/migrations/002_add_document_protection.js.map +1 -0
  81. package/dist/src/migrations/index.d.ts.map +1 -1
  82. package/dist/src/migrations/index.js +2 -0
  83. package/dist/src/migrations/index.js.map +1 -1
  84. package/dist/src/packages/import-loader.d.ts +5 -3
  85. package/dist/src/packages/import-loader.d.ts.map +1 -1
  86. package/dist/src/packages/import-loader.js +19 -10
  87. package/dist/src/packages/import-loader.js.map +1 -1
  88. package/dist/src/packages/package-manager.d.ts +2 -2
  89. package/dist/src/packages/package-manager.d.ts.map +1 -1
  90. package/dist/src/packages/package-manager.js.map +1 -1
  91. package/dist/src/packages/types.d.ts +9 -4
  92. package/dist/src/packages/types.d.ts.map +1 -1
  93. package/dist/src/packages/util.d.ts +3 -2
  94. package/dist/src/packages/util.d.ts.map +1 -1
  95. package/dist/src/packages/util.js +1 -1
  96. package/dist/src/packages/util.js.map +1 -1
  97. package/dist/src/packages/vite-loader.d.ts +10 -8
  98. package/dist/src/packages/vite-loader.d.ts.map +1 -1
  99. package/dist/src/packages/vite-loader.js +33 -10
  100. package/dist/src/packages/vite-loader.js.map +1 -1
  101. package/dist/src/server.d.ts +18 -11
  102. package/dist/src/server.d.ts.map +1 -1
  103. package/dist/src/server.js +147 -90
  104. package/dist/src/server.js.map +1 -1
  105. package/dist/src/services/auth.service.d.ts +0 -12
  106. package/dist/src/services/auth.service.d.ts.map +1 -1
  107. package/dist/src/services/auth.service.js +13 -40
  108. package/dist/src/services/auth.service.js.map +1 -1
  109. package/dist/src/services/authorization.service.d.ts +70 -0
  110. package/dist/src/services/authorization.service.d.ts.map +1 -0
  111. package/dist/src/services/authorization.service.js +155 -0
  112. package/dist/src/services/authorization.service.js.map +1 -0
  113. package/dist/src/services/document-permission.service.d.ts +47 -7
  114. package/dist/src/services/document-permission.service.d.ts.map +1 -1
  115. package/dist/src/services/document-permission.service.js +162 -7
  116. package/dist/src/services/document-permission.service.js.map +1 -1
  117. package/dist/src/tracing.js +3 -1
  118. package/dist/src/tracing.js.map +1 -1
  119. package/dist/src/types.d.ts +5 -5
  120. package/dist/src/types.d.ts.map +1 -1
  121. package/dist/src/utils/auth.d.ts +1 -1
  122. package/dist/src/utils/auth.d.ts.map +1 -1
  123. package/dist/src/utils/auth.js +5 -12
  124. package/dist/src/utils/auth.js.map +1 -1
  125. package/dist/src/utils/create-schema.d.ts +21 -1
  126. package/dist/src/utils/create-schema.d.ts.map +1 -1
  127. package/dist/src/utils/create-schema.js +289 -16
  128. package/dist/src/utils/create-schema.js.map +1 -1
  129. package/dist/src/utils/db.d.ts +8 -0
  130. package/dist/src/utils/db.d.ts.map +1 -1
  131. package/dist/src/utils/db.js.map +1 -1
  132. package/dist/src/utils/drive-url.d.ts +2 -0
  133. package/dist/src/utils/drive-url.d.ts.map +1 -0
  134. package/dist/src/utils/drive-url.js +3 -0
  135. package/dist/src/utils/drive-url.js.map +1 -0
  136. package/dist/src/utils/index.d.ts +1 -0
  137. package/dist/src/utils/index.d.ts.map +1 -1
  138. package/dist/src/utils/index.js +1 -0
  139. package/dist/src/utils/index.js.map +1 -1
  140. package/dist/test/authorization.service.test.d.ts +2 -0
  141. package/dist/test/authorization.service.test.d.ts.map +1 -0
  142. package/dist/test/authorization.service.test.js +252 -0
  143. package/dist/test/authorization.service.test.js.map +1 -0
  144. package/dist/test/connect-switchboard-reshuffle-convergence.test.d.ts +2 -0
  145. package/dist/test/connect-switchboard-reshuffle-convergence.test.d.ts.map +1 -0
  146. package/dist/test/connect-switchboard-reshuffle-convergence.test.js +203 -0
  147. package/dist/test/connect-switchboard-reshuffle-convergence.test.js.map +1 -0
  148. package/dist/test/connect-switchboard-sync.test.d.ts +2 -0
  149. package/dist/test/connect-switchboard-sync.test.d.ts.map +1 -0
  150. package/dist/test/connect-switchboard-sync.test.js +581 -0
  151. package/dist/test/connect-switchboard-sync.test.js.map +1 -0
  152. package/dist/test/document-drive-subgraph.test.d.ts +2 -0
  153. package/dist/test/document-drive-subgraph.test.d.ts.map +1 -0
  154. package/dist/test/document-drive-subgraph.test.js +186 -0
  155. package/dist/test/document-drive-subgraph.test.js.map +1 -0
  156. package/dist/test/document-model-subgraph-legacy-permissions.test.d.ts +2 -0
  157. package/dist/test/document-model-subgraph-legacy-permissions.test.d.ts.map +1 -0
  158. package/dist/test/document-model-subgraph-legacy-permissions.test.js +460 -0
  159. package/dist/test/document-model-subgraph-legacy-permissions.test.js.map +1 -0
  160. package/dist/test/document-model-subgraph-permissions.test.d.ts +2 -0
  161. package/dist/test/document-model-subgraph-permissions.test.d.ts.map +1 -0
  162. package/dist/test/document-model-subgraph-permissions.test.js +573 -0
  163. package/dist/test/document-model-subgraph-permissions.test.js.map +1 -0
  164. package/dist/test/document-model-subgraph.test.d.ts +2 -0
  165. package/dist/test/document-model-subgraph.test.d.ts.map +1 -0
  166. package/dist/test/document-model-subgraph.test.js +439 -0
  167. package/dist/test/document-model-subgraph.test.js.map +1 -0
  168. package/dist/test/drive-handlers.js +1 -1
  169. package/dist/test/drive-handlers.js.map +1 -1
  170. package/dist/test/drive-info-endpoint.test.d.ts +2 -0
  171. package/dist/test/drive-info-endpoint.test.d.ts.map +1 -0
  172. package/dist/test/drive-info-endpoint.test.js +123 -0
  173. package/dist/test/drive-info-endpoint.test.js.map +1 -0
  174. package/dist/test/drive-subgraph-permissions.test.js +1 -30
  175. package/dist/test/drive-subgraph-permissions.test.js.map +1 -1
  176. package/dist/test/permissions-integration.test.js +5 -19
  177. package/dist/test/permissions-integration.test.js.map +1 -1
  178. package/dist/test/push-backfill.test.d.ts +2 -0
  179. package/dist/test/push-backfill.test.d.ts.map +1 -0
  180. package/dist/test/push-backfill.test.js +298 -0
  181. package/dist/test/push-backfill.test.js.map +1 -0
  182. package/dist/test/reactor-client.test.js +4 -4
  183. package/dist/test/reactor-client.test.js.map +1 -1
  184. package/dist/test/reactor-resolvers.test.js +8 -11
  185. package/dist/test/reactor-resolvers.test.js.map +1 -1
  186. package/dist/test/reactor-subgraph-permissions.test.js +6 -35
  187. package/dist/test/reactor-subgraph-permissions.test.js.map +1 -1
  188. package/dist/test/subscriptions.test.js +2 -0
  189. package/dist/test/subscriptions.test.js.map +1 -1
  190. package/dist/test/utils/gql-resolver-bridge.d.ts +4 -1
  191. package/dist/test/utils/gql-resolver-bridge.d.ts.map +1 -1
  192. package/dist/test/utils/gql-resolver-bridge.js +36 -7
  193. package/dist/test/utils/gql-resolver-bridge.js.map +1 -1
  194. package/dist/tsconfig.tsbuildinfo +1 -1
  195. package/package.json +44 -55
  196. package/dist/src/graphql/system/system-subgraph.d.ts +0 -49
  197. package/dist/src/graphql/system/system-subgraph.d.ts.map +0 -1
  198. package/dist/src/graphql/system/system-subgraph.js +0 -130
  199. package/dist/src/graphql/system/system-subgraph.js.map +0 -1
  200. package/dist/test/system.test.d.ts +0 -2
  201. package/dist/test/system.test.d.ts.map +0 -1
  202. package/dist/test/system.test.js +0 -211
  203. package/dist/test/system.test.js.map +0 -1
  204. package/dist/test/three-reactor-gql-sync.test.d.ts +0 -2
  205. package/dist/test/three-reactor-gql-sync.test.d.ts.map +0 -1
  206. package/dist/test/three-reactor-gql-sync.test.js +0 -368
  207. package/dist/test/three-reactor-gql-sync.test.js.map +0 -1
  208. package/dist/test/two-reactor-gql-sync.test.d.ts +0 -2
  209. package/dist/test/two-reactor-gql-sync.test.d.ts.map +0 -1
  210. package/dist/test/two-reactor-gql-sync.test.js +0 -348
  211. package/dist/test/two-reactor-gql-sync.test.js.map +0 -1
@@ -6,6 +6,16 @@ import { Kind, print } from "graphql";
6
6
  import { gql } from "graphql-tag";
7
7
  import { GraphQLJSONObject } from "graphql-type-json";
8
8
  const logger = childLogger(["reactor-api", "create-schema"]);
9
+ /**
10
+ * Revision type - matches the definition in reactor/schema.graphql.
11
+ * Used by PHDocument and document mutation results.
12
+ */
13
+ const RevisionType = `
14
+ type Revision {
15
+ scope: String!
16
+ revision: Int!
17
+ }
18
+ `;
9
19
  /**
10
20
  * Strip scalar definitions from a DocumentNode to avoid duplicates
11
21
  * when combining with other schemas that define the same scalars.
@@ -58,12 +68,13 @@ export const getDocumentModelTypeDefs = (documentDriveServer, typeDefs) => {
58
68
  .join("\n")};
59
69
 
60
70
  \n`;
61
- const found = tmpDmSchema.match(/(type|enum|union|interface)\s+(\w+)\s/g);
71
+ const found = tmpDmSchema.match(/(type|enum|union|interface)\s+(\w+)[\s{]/g);
62
72
  const trimmedFound = found?.map((f) => f
63
73
  .replaceAll("type ", "")
64
74
  .replaceAll("enum ", "")
65
75
  .replaceAll("union ", "")
66
76
  .replaceAll("interface ", "")
77
+ .replaceAll("{", "")
67
78
  .trim());
68
79
  trimmedFound?.forEach((f) => {
69
80
  // Create a regex that matches the type name with proper boundaries
@@ -181,7 +192,7 @@ export const getDocumentModelTypeDefs = (documentDriveServer, typeDefs) => {
181
192
  * @returns {string[]} Array of type names
182
193
  */
183
194
  function extractTypeNames(schema) {
184
- const found = schema.match(/(type|enum|union|interface|input)\s+(\w+)\s/g);
195
+ const found = schema.match(/(type|enum|union|interface|input)\s+(\w+)[\s{]/g);
185
196
  if (!found)
186
197
  return [];
187
198
  return found.map((f) => f
@@ -190,8 +201,31 @@ function extractTypeNames(schema) {
190
201
  .replaceAll("union ", "")
191
202
  .replaceAll("interface ", "")
192
203
  .replaceAll("input ", "")
204
+ .replaceAll("{", "")
193
205
  .trim());
194
206
  }
207
+ /**
208
+ * Extract input type definitions from a GraphQL schema.
209
+ * @param {string} schema - GraphQL schema string
210
+ * @param {Set<string>} excludeTypeNames - Type names to exclude from extraction
211
+ * @returns {string} All input type definitions as a string
212
+ */
213
+ function extractInputTypeDefinitions(schema, excludeTypeNames = new Set()) {
214
+ // Match input type blocks: input TypeName { ... }
215
+ const inputTypeRegex = /input\s+(\w+)\s*\{[^}]*\}/g;
216
+ const matches = [];
217
+ let match;
218
+ while ((match = inputTypeRegex.exec(schema)) !== null) {
219
+ const typeName = match[1];
220
+ // Skip if this type name is in the exclusion set
221
+ if (!excludeTypeNames.has(typeName)) {
222
+ matches.push(match[0]);
223
+ }
224
+ }
225
+ if (matches.length === 0)
226
+ return "";
227
+ return matches.join("\n\n");
228
+ }
195
229
  /**
196
230
  * Apply type prefixes to GraphQL schema to namespace types and avoid collisions.
197
231
  * Inlined from @powerhousedao/common/utils to avoid ES module import issues.
@@ -230,11 +264,69 @@ function applyGraphQLTypePrefixes(schema, prefix, externalTypeNames = []) {
230
264
  });
231
265
  return processedSchema;
232
266
  }
233
- export function generateDocumentModelSchemaLegacy(documentModel) {
267
+ /**
268
+ * Generate a GraphQL schema for a document model.
269
+ *
270
+ * @param documentModel - The document model global state
271
+ * @param options - Schema generation options
272
+ * @returns GraphQL DocumentNode
273
+ */
274
+ export function generateDocumentModelSchema(documentModel, options = {}) {
275
+ const { useNewApi = false } = options;
234
276
  const specification = documentModel.specifications.at(-1);
235
277
  const documentName = getDocumentModelSchemaName(documentModel);
236
- const stateSchema = specification?.state.global.schema;
237
- const stateTypeNames = extractTypeNames(stateSchema ?? "");
278
+ const globalStateSchema = specification?.state.global.schema;
279
+ const localStateSchema = specification?.state.local.schema;
280
+ const globalStateTypeNames = extractTypeNames(globalStateSchema ?? "");
281
+ const localStateTypeNames = extractTypeNames(localStateSchema ?? "");
282
+ const stateTypeNames = [...globalStateTypeNames, ...localStateTypeNames];
283
+ // Collect ALL type names from all operations' schemas
284
+ const allOperationTypeNames = specification?.modules.flatMap((module) => module.operations.flatMap((op) => extractTypeNames(op.schema ?? ""))) ?? [];
285
+ // Combine state types and all operation types for prefixing
286
+ const allTypeNames = [
287
+ ...new Set([...stateTypeNames, ...allOperationTypeNames]),
288
+ ];
289
+ // Extract input type definitions from state schema, excluding operation-specific inputs
290
+ // (those are already defined in op.schema)
291
+ const operationInputTypeNames = new Set(allOperationTypeNames);
292
+ const stateInputTypes = extractInputTypeDefinitions(globalStateSchema ?? "", operationInputTypeNames);
293
+ const prefixedStateInputTypes = applyGraphQLTypePrefixes(stateInputTypes, documentName, allTypeNames);
294
+ // Helper to check if schema has actual GraphQL type definitions
295
+ const hasValidSchema = (schema) => !!(schema && /\b(input|type|enum|union|interface)\s+\w+/.test(schema));
296
+ // Process state schema types (remove input types, clean up, and prefix)
297
+ const stateSchemaTypes = globalStateSchema
298
+ ? applyGraphQLTypePrefixes(globalStateSchema
299
+ .replaceAll("scalar DateTime", "")
300
+ .replaceAll(/input (.*?) {[\s\S]*?}/g, ""), documentName, allTypeNames)
301
+ : "";
302
+ if (useNewApi) {
303
+ // New API: flat queries, typed state, async mutations
304
+ return generateNewApiSchema(documentName, specification, stateSchemaTypes, prefixedStateInputTypes, allTypeNames, hasValidSchema);
305
+ }
306
+ // Legacy API
307
+ return generateLegacyApiSchema(documentName, specification, prefixedStateInputTypes, allTypeNames, hasValidSchema);
308
+ }
309
+ /**
310
+ * Generate legacy API schema with nested queries
311
+ */
312
+ function generateLegacyApiSchema(documentName, specification, prefixedStateInputTypes, allTypeNames, hasValidSchema) {
313
+ const createDocumentMutation = `${documentName}_createDocument(name:String!, driveId:String): String`;
314
+ const operationMutations = specification?.modules
315
+ .flatMap((module) => module.operations
316
+ .filter((op) => op.name && hasValidSchema(op.schema))
317
+ .map((op) => `${documentName}_${camelCase(op.name)}(
318
+ driveId: String, docId: PHID, input: ${documentName}_${pascalCase(op.name)}Input): Int`))
319
+ .join("\n ") ?? "";
320
+ const moduleSchemas = specification?.modules
321
+ .filter((module) => module.operations.some((op) => hasValidSchema(op.schema)))
322
+ .map((module) => `"""
323
+ Module: ${pascalCase(module.name)}
324
+ """
325
+ ${module.operations
326
+ .filter((op) => hasValidSchema(op.schema))
327
+ .map((op) => applyGraphQLTypePrefixes(op.schema ?? "", documentName, allTypeNames))
328
+ .join("\n ")}`)
329
+ .join("\n") ?? "";
238
330
  return gql `
239
331
  """
240
332
  Queries: ${documentName} Document
@@ -253,23 +345,204 @@ export function generateDocumentModelSchemaLegacy(documentModel) {
253
345
  Mutations: ${documentName}
254
346
  """
255
347
  type Mutation {
256
- ${documentName}_createDocument(name:String!, driveId:String): String
348
+ ${createDocumentMutation}
257
349
 
258
- ${specification?.modules
259
- .flatMap((module) => module.operations
260
- .filter((op) => op.name)
261
- .map((op) => `${documentName}_${camelCase(op.name)}(
262
- driveId: String, docId: PHID, input: ${documentName}_${pascalCase(op.name)}Input): Int`))
263
- .join("\n ") ?? ""}
350
+ ${operationMutations}
351
+ }
352
+
353
+ ${prefixedStateInputTypes
354
+ ? `"""
355
+ Input Types from State Schema
356
+ """
357
+ ${prefixedStateInputTypes}`
358
+ : ""}
359
+
360
+ ${moduleSchemas}`;
361
+ }
362
+ /**
363
+ * Generate new API schema with flat queries, typed state, and async mutations.
364
+ * Note: State schema types are NOT included here because they are already defined
365
+ * in getDocumentModelTypeDefs() which is used during schema composition.
366
+ * Including them here would cause duplicate type definitions.
367
+ *
368
+ * Special case: DocumentModel type doesn't have a typed state defined in
369
+ * getDocumentModelTypeDefs(), so we use JSONObject for its state field.
370
+ */
371
+ function generateNewApiSchema(documentName, specification, _stateSchemaTypes, prefixedStateInputTypes, allTypeNames, hasValidSchema) {
372
+ // Use full state type for all document models
373
+ const stateType = `${documentName}_FullState!`;
374
+ // Shared base types for document state structure (same for all document types)
375
+ const sharedBaseTypes = `
376
+ """Hash configuration for document state"""
377
+ type ${documentName}_PHHashConfig {
378
+ algorithm: String!
379
+ encoding: String!
380
+ }
381
+
382
+ """Document scope state (same for all document types)"""
383
+ type ${documentName}_PHDocumentScopeState {
384
+ version: Int!
385
+ hash: ${documentName}_PHHashConfig!
386
+ isDeleted: Boolean
387
+ deletedAtUtcIso: String
388
+ deletedBy: String
389
+ deletionReason: String
390
+ }
391
+ `;
392
+ // Full state type with all scopes (auth, document, global, local)
393
+ // Note: DocumentModel uses different naming convention (GlobalState suffix instead of State)
394
+ // For local state, check if the specification defines a local state type
395
+ const localSchema = specification?.state.local.schema ?? "";
396
+ const hasLocalStateType = localSchema.includes(`type ${documentName}LocalState`);
397
+ const globalStateType = documentName === "DocumentModel"
398
+ ? `${documentName}_${documentName}GlobalState!`
399
+ : `${documentName}_${documentName}State!`;
400
+ const localStateType = !hasLocalStateType
401
+ ? "JSONObject!"
402
+ : `${documentName}_${documentName}LocalState!`;
403
+ const fullStateType = `
404
+ """Full state with all scopes for ${documentName}"""
405
+ type ${documentName}_FullState {
406
+ auth: JSONObject!
407
+ document: ${documentName}_PHDocumentScopeState!
408
+ global: ${globalStateType}
409
+ local: ${localStateType}
264
410
  }
265
-
266
- ${specification?.modules
411
+ `;
412
+ // Common input types - use extend to avoid conflicts with other subgraphs
413
+ const commonInputTypes = `
414
+ input ${documentName}_ViewFilterInput {
415
+ branch: String
416
+ scopes: [String!]
417
+ }
418
+
419
+ input ${documentName}_PagingInput {
420
+ limit: Int
421
+ offset: Int
422
+ cursor: String
423
+ }
424
+
425
+ input ${documentName}_SearchFilterInput {
426
+ parentId: String
427
+ identifiers: [String!]
428
+ }
429
+ `;
430
+ // Revision type - imported from shared-schema.ts for consistency with ReactorSubgraph
431
+ // Must be defined in each subgraph for Apollo Federation
432
+ const revisionType = RevisionType;
433
+ // Result types with typed state (or JSONObject for DocumentModel)
434
+ // The state type (${documentName}_${documentName}State) is defined in getDocumentModelTypeDefs()
435
+ // Uses revisionsList with shared Revision type to match ReactorSubgraph pattern
436
+ const resultTypes = `
437
+ """
438
+ Mutation result type for ${documentName} operations with typed state.
439
+ Matches ReactorSubgraph PHDocument pattern with revisionsList.
440
+ """
441
+ type ${documentName}MutationResult {
442
+ id: String!
443
+ slug: String
444
+ name: String!
445
+ documentType: String!
446
+ state: ${stateType}
447
+ revisionsList: [Revision!]!
448
+ createdAtUtcIso: DateTime!
449
+ lastModifiedAtUtcIso: DateTime!
450
+ }
451
+
452
+ """
453
+ Document with children for ${documentName}
454
+ """
455
+ type ${documentName}_DocumentWithChildren {
456
+ document: ${documentName}MutationResult!
457
+ childIds: [String!]!
458
+ }
459
+
460
+ """
461
+ Paginated result type for ${documentName} documents
462
+ """
463
+ type ${documentName}_DocumentResultPage {
464
+ items: [${documentName}MutationResult!]!
465
+ totalCount: Int!
466
+ hasNextPage: Boolean!
467
+ hasPreviousPage: Boolean!
468
+ cursor: String
469
+ }
470
+ `;
471
+ // Flat queries (not nested) - prefixed input types to avoid conflicts
472
+ const queries = `
473
+ type Query {
474
+ """Get a specific ${documentName} document by identifier"""
475
+ ${documentName}_document(identifier: String!, view: ${documentName}_ViewFilterInput): ${documentName}_DocumentWithChildren
476
+
477
+ """Find ${documentName} documents by search criteria"""
478
+ ${documentName}_findDocuments(search: ${documentName}_SearchFilterInput!, view: ${documentName}_ViewFilterInput, paging: ${documentName}_PagingInput): ${documentName}_DocumentResultPage!
479
+
480
+ """Get children of a ${documentName} document"""
481
+ ${documentName}_documentChildren(parentIdentifier: String!, view: ${documentName}_ViewFilterInput, paging: ${documentName}_PagingInput): ${documentName}_DocumentResultPage!
482
+
483
+ """Get parents of a ${documentName} document"""
484
+ ${documentName}_documentParents(childIdentifier: String!, view: ${documentName}_ViewFilterInput, paging: ${documentName}_PagingInput): ${documentName}_DocumentResultPage!
485
+ }
486
+ `;
487
+ // Mutations: sync and async versions
488
+ const createDocumentMutation = `${documentName}_createDocument(name: String!, parentIdentifier: String): ${documentName}MutationResult!`;
489
+ const createEmptyDocumentMutation = `${documentName}_createEmptyDocument(parentIdentifier: String): ${documentName}MutationResult!`;
490
+ const operationMutations = specification?.modules
491
+ .flatMap((module) => module.operations
492
+ .filter((op) => op.name && hasValidSchema(op.schema))
493
+ .flatMap((op) => [
494
+ // Sync mutation
495
+ `${documentName}_${camelCase(op.name)}(docId: PHID!, input: ${documentName}_${pascalCase(op.name)}Input!): ${documentName}MutationResult!`,
496
+ // Async mutation
497
+ `${documentName}_${camelCase(op.name)}Async(docId: PHID!, input: ${documentName}_${pascalCase(op.name)}Input!): String!`,
498
+ ]))
499
+ .join("\n ") ?? "";
500
+ const moduleSchemas = specification?.modules
501
+ .filter((module) => module.operations.some((op) => hasValidSchema(op.schema)))
267
502
  .map((module) => `"""
268
503
  Module: ${pascalCase(module.name)}
269
504
  """
270
505
  ${module.operations
271
- .map((op) => applyGraphQLTypePrefixes(op.schema ?? "", documentName, stateTypeNames))
506
+ .filter((op) => hasValidSchema(op.schema))
507
+ .map((op) => applyGraphQLTypePrefixes(op.schema ?? "", documentName, allTypeNames))
272
508
  .join("\n ")}`)
273
- .join("\n") ?? ""}`;
509
+ .join("\n") ?? "";
510
+ return gql `
511
+ scalar DateTime
512
+ scalar JSONObject
513
+
514
+ ${revisionType}
515
+
516
+ ${sharedBaseTypes}
517
+
518
+ ${fullStateType}
519
+
520
+ ${commonInputTypes}
521
+
522
+ ${resultTypes}
523
+
524
+ """
525
+ Queries: ${documentName} Document
526
+ """
527
+ ${queries}
528
+
529
+ """
530
+ Mutations: ${documentName}
531
+ """
532
+ type Mutation {
533
+ ${createDocumentMutation}
534
+ ${createEmptyDocumentMutation}
535
+
536
+ ${operationMutations}
537
+ }
538
+
539
+ ${prefixedStateInputTypes
540
+ ? `"""
541
+ Input Types from State Schema
542
+ """
543
+ ${prefixedStateInputTypes}`
544
+ : ""}
545
+
546
+ ${moduleSchemas}`;
274
547
  }
275
548
  //# sourceMappingURL=create-schema.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"create-schema.js","sourceRoot":"","sources":["../../../src/utils/create-schema.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"create-schema.js","sourceRoot":"","sources":["../../../src/utils/create-schema.ts"],"names":[],"mappings":"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"}
@@ -10,6 +10,13 @@ export type DocumentPermissionLevel = "READ" | "WRITE" | "ADMIN";
10
10
  /**
11
11
  * Database schema for document permissions
12
12
  */
13
+ export interface DocumentProtectionTable {
14
+ documentId: string;
15
+ protected: boolean;
16
+ ownerAddress: string | null;
17
+ createdAt: Date;
18
+ updatedAt: Date;
19
+ }
13
20
  export interface DocumentPermissionDatabase {
14
21
  DocumentPermission: DocumentPermissionTable;
15
22
  Group: GroupTable;
@@ -17,6 +24,7 @@ export interface DocumentPermissionDatabase {
17
24
  DocumentGroupPermission: DocumentGroupPermissionTable;
18
25
  OperationUserPermission: OperationUserPermissionTable;
19
26
  OperationGroupPermission: OperationGroupPermissionTable;
27
+ DocumentProtection: DocumentProtectionTable;
20
28
  }
21
29
  export interface DocumentPermissionTable {
22
30
  id: Generated<number>;
@@ -1 +1 @@
1
- {"version":3,"file":"db.d.ts","sourceRoot":"","sources":["../../../src/utils/db.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAGjC,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAKhD;;;;;GAKG;AACH,MAAM,MAAM,uBAAuB,GAAG,MAAM,GAAG,OAAO,GAAG,OAAO,CAAC;AAEjE;;GAEG;AACH,MAAM,WAAW,0BAA0B;IACzC,kBAAkB,EAAE,uBAAuB,CAAC;IAC5C,KAAK,EAAE,UAAU,CAAC;IAClB,SAAS,EAAE,cAAc,CAAC;IAC1B,uBAAuB,EAAE,4BAA4B,CAAC;IACtD,uBAAuB,EAAE,4BAA4B,CAAC;IACtD,wBAAwB,EAAE,6BAA6B,CAAC;CACzD;AAED,MAAM,WAAW,uBAAuB;IACtC,EAAE,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,uBAAuB,CAAC;IACpC,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,IAAI,CAAC;IAChB,SAAS,EAAE,IAAI,CAAC;CACjB;AAGD,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,SAAS,EAAE,IAAI,CAAC;IAChB,SAAS,EAAE,IAAI,CAAC;CACjB;AAED,MAAM,WAAW,cAAc;IAC7B,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,IAAI,CAAC;CACjB;AAED,MAAM,WAAW,4BAA4B;IAC3C,EAAE,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,uBAAuB,CAAC;IACpC,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,IAAI,CAAC;IAChB,SAAS,EAAE,IAAI,CAAC;CACjB;AAGD,MAAM,WAAW,4BAA4B;IAC3C,EAAE,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,IAAI,CAAC;CACjB;AAED,MAAM,WAAW,6BAA6B;IAC5C,EAAE,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,IAAI,CAAC;CACjB;AAED,KAAK,EAAE,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;AAYtB,wBAAgB,WAAW,CAAC,gBAAgB,GAAE,MAAM,GAAG,SAAqB,GAAG;IAC7E,EAAE,EAAE,EAAE,CAAC;IACP,IAAI,EAAE,IAAI,CAAC;CACZ,CA6BA;AAED,eAAO,MAAM,qBAAqB,UA2DjC,CAAC"}
1
+ {"version":3,"file":"db.d.ts","sourceRoot":"","sources":["../../../src/utils/db.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAGjC,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAKhD;;;;;GAKG;AACH,MAAM,MAAM,uBAAuB,GAAG,MAAM,GAAG,OAAO,GAAG,OAAO,CAAC;AAEjE;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACtC,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,OAAO,CAAC;IACnB,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,SAAS,EAAE,IAAI,CAAC;IAChB,SAAS,EAAE,IAAI,CAAC;CACjB;AAED,MAAM,WAAW,0BAA0B;IACzC,kBAAkB,EAAE,uBAAuB,CAAC;IAC5C,KAAK,EAAE,UAAU,CAAC;IAClB,SAAS,EAAE,cAAc,CAAC;IAC1B,uBAAuB,EAAE,4BAA4B,CAAC;IACtD,uBAAuB,EAAE,4BAA4B,CAAC;IACtD,wBAAwB,EAAE,6BAA6B,CAAC;IACxD,kBAAkB,EAAE,uBAAuB,CAAC;CAC7C;AAED,MAAM,WAAW,uBAAuB;IACtC,EAAE,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,uBAAuB,CAAC;IACpC,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,IAAI,CAAC;IAChB,SAAS,EAAE,IAAI,CAAC;CACjB;AAGD,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,SAAS,EAAE,IAAI,CAAC;IAChB,SAAS,EAAE,IAAI,CAAC;CACjB;AAED,MAAM,WAAW,cAAc;IAC7B,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,IAAI,CAAC;CACjB;AAED,MAAM,WAAW,4BAA4B;IAC3C,EAAE,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,uBAAuB,CAAC;IACpC,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,IAAI,CAAC;IAChB,SAAS,EAAE,IAAI,CAAC;CACjB;AAGD,MAAM,WAAW,4BAA4B;IAC3C,EAAE,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,IAAI,CAAC;CACjB;AAED,MAAM,WAAW,6BAA6B;IAC5C,EAAE,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,IAAI,CAAC;CACjB;AAED,KAAK,EAAE,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;AAYtB,wBAAgB,WAAW,CAAC,gBAAgB,GAAE,MAAM,GAAG,SAAqB,GAAG;IAC7E,EAAE,EAAE,EAAE,CAAC;IACP,IAAI,EAAE,IAAI,CAAC;CACZ,CA6BA;AAED,eAAO,MAAM,qBAAqB,UA2DjC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"db.js","sourceRoot":"","sources":["../../../src/utils/db.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAE9C,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,YAAY,MAAM,aAAa,CAAC;AACvC,OAAO,EAAkB,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChD,OAAO,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC/D,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AA8E7B,SAAS,IAAI,CAAC,gBAAwB;IACpC,IACE,gBAAgB,CAAC,UAAU,CAAC,eAAe,CAAC;QAC5C,gBAAgB,CAAC,UAAU,CAAC,aAAa,CAAC,EAC1C,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,mBAAuC,SAAS;IAI1E,MAAM,IAAI,GAAG,gBAAgB,IAAI,IAAI,CAAC,gBAAgB,CAAC,CAAC;IACxD,MAAM,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAE,YAAmC,CAAC;IAClE,MAAM,UAAU,GAAG,IAAI;QACrB,CAAC,CAAC,EAAE,gBAAgB,EAAE;QACtB,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,MAAM,CAAC,gBAAgB,CAAC,EAAE,CAAC;IAE7C,wDAAwD;IACxD,uCAAuC;IACvC,IAAI,gBAAgB,IAAI,CAAC,IAAI,EAAE,CAAC;QAC9B,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,gBAAgB,EAAE,IAAI,CAAC,CAAC;QACrD,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;YAC5B,EAAE,CAAC,SAAS,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC7C,CAAC;IACH,CAAC;IAED,MAAM,YAAY,GAAG,IAAI,CAAC;QACxB,MAAM;QACN,UAAU;KACX,CAAC,CAAC;IAEH,MAAM,cAAc,GAAG,IAAI,MAAM,CAAC;QAChC,OAAO,EAAE,IAAI,iBAAiB,CAAC;YAC7B,IAAI,EAAE,YAAY;YAClB,gBAAgB,EAAE,IAAI,aAAa,EAAE;SACtC,CAAC;KACH,CAAC,CAAC;IAEH,OAAO,EAAE,EAAE,EAAE,cAAc,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC;AACpD,CAAC;AAED,MAAM,CAAC,MAAM,qBAAqB,GAAG;IACnC;;;;;;;;;;;KAWG;IACH;+BAC6B;IAC7B;oCACkC;IAClC;iCAC+B;IAC/B;qCACmC;IACnC;qCACmC;IACnC;oCACkC;IAClC;mCACiC;IACjC;oCACkC;IAClC;;;;;;;;KAQG;IACH;kCACgC;IAChC;2CACyC;IACzC;sCACoC;IACpC;;;;;;;;;;KAUG;IACH;6DAC2D;IAC3D;4DAC0D;CAC3D,CAAC"}
1
+ {"version":3,"file":"db.js","sourceRoot":"","sources":["../../../src/utils/db.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAE9C,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,YAAY,MAAM,aAAa,CAAC;AACvC,OAAO,EAAkB,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChD,OAAO,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC/D,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAuF7B,SAAS,IAAI,CAAC,gBAAwB;IACpC,IACE,gBAAgB,CAAC,UAAU,CAAC,eAAe,CAAC;QAC5C,gBAAgB,CAAC,UAAU,CAAC,aAAa,CAAC,EAC1C,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,mBAAuC,SAAS;IAI1E,MAAM,IAAI,GAAG,gBAAgB,IAAI,IAAI,CAAC,gBAAgB,CAAC,CAAC;IACxD,MAAM,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAE,YAAmC,CAAC;IAClE,MAAM,UAAU,GAAG,IAAI;QACrB,CAAC,CAAC,EAAE,gBAAgB,EAAE;QACtB,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,MAAM,CAAC,gBAAgB,CAAC,EAAE,CAAC;IAE7C,wDAAwD;IACxD,uCAAuC;IACvC,IAAI,gBAAgB,IAAI,CAAC,IAAI,EAAE,CAAC;QAC9B,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,gBAAgB,EAAE,IAAI,CAAC,CAAC;QACrD,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;YAC5B,EAAE,CAAC,SAAS,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC7C,CAAC;IACH,CAAC;IAED,MAAM,YAAY,GAAG,IAAI,CAAC;QACxB,MAAM;QACN,UAAU;KACX,CAAC,CAAC;IAEH,MAAM,cAAc,GAAG,IAAI,MAAM,CAAC;QAChC,OAAO,EAAE,IAAI,iBAAiB,CAAC;YAC7B,IAAI,EAAE,YAAY;YAClB,gBAAgB,EAAE,IAAI,aAAa,EAAE;SACtC,CAAC;KACH,CAAC,CAAC;IAEH,OAAO,EAAE,EAAE,EAAE,cAAc,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC;AACpD,CAAC;AAED,MAAM,CAAC,MAAM,qBAAqB,GAAG;IACnC;;;;;;;;;;;KAWG;IACH;+BAC6B;IAC7B;oCACkC;IAClC;iCAC+B;IAC/B;qCACmC;IACnC;qCACmC;IACnC;oCACkC;IAClC;mCACiC;IACjC;oCACkC;IAClC;;;;;;;;KAQG;IACH;kCACgC;IAChC;2CACyC;IACzC;sCACoC;IACpC;;;;;;;;;;KAUG;IACH;6DAC2D;IAC3D;4DAC0D;CAC3D,CAAC"}
@@ -0,0 +1,2 @@
1
+ export { driveIdFromUrl, parseDriveUrl, type ParsedDriveUrl, } from "@powerhousedao/reactor";
2
+ //# sourceMappingURL=drive-url.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"drive-url.d.ts","sourceRoot":"","sources":["../../../src/utils/drive-url.ts"],"names":[],"mappings":"AACA,OAAO,EACL,cAAc,EACd,aAAa,EACb,KAAK,cAAc,GACpB,MAAM,wBAAwB,CAAC"}
@@ -0,0 +1,3 @@
1
+ // Re-export from @powerhousedao/reactor for backwards compatibility
2
+ export { driveIdFromUrl, parseDriveUrl, } from "@powerhousedao/reactor";
3
+ //# sourceMappingURL=drive-url.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"drive-url.js","sourceRoot":"","sources":["../../../src/utils/drive-url.ts"],"names":[],"mappings":"AAAA,oEAAoE;AACpE,OAAO,EACL,cAAc,EACd,aAAa,GAEd,MAAM,wBAAwB,CAAC"}
@@ -1,3 +1,4 @@
1
1
  export * from "./create-schema.js";
2
2
  export * from "./db.js";
3
+ export * from "./drive-url.js";
3
4
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAC;AACnC,cAAc,SAAS,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAC;AACnC,cAAc,SAAS,CAAC;AACxB,cAAc,gBAAgB,CAAC"}
@@ -1,3 +1,4 @@
1
1
  export * from "./create-schema.js";
2
2
  export * from "./db.js";
3
+ export * from "./drive-url.js";
3
4
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAC;AACnC,cAAc,SAAS,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAC;AACnC,cAAc,SAAS,CAAC;AACxB,cAAc,gBAAgB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=authorization.service.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"authorization.service.test.d.ts","sourceRoot":"","sources":["../../test/authorization.service.test.ts"],"names":[],"mappings":""}