@powerhousedao/reactor-api 6.0.0-dev.69 → 6.0.0-dev.77

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 (66) hide show
  1. package/dist/index.d.ts +4 -0
  2. package/dist/index.d.ts.map +1 -1
  3. package/dist/index.js +4 -0
  4. package/dist/index.js.map +1 -1
  5. package/dist/src/graphql/graphql-manager.d.ts +9 -0
  6. package/dist/src/graphql/graphql-manager.d.ts.map +1 -1
  7. package/dist/src/graphql/graphql-manager.js +28 -10
  8. package/dist/src/graphql/graphql-manager.js.map +1 -1
  9. package/dist/src/graphql/index.d.ts +1 -0
  10. package/dist/src/graphql/index.d.ts.map +1 -1
  11. package/dist/src/graphql/index.js +1 -0
  12. package/dist/src/graphql/index.js.map +1 -1
  13. package/dist/src/graphql/packages/index.d.ts +2 -0
  14. package/dist/src/graphql/packages/index.d.ts.map +1 -0
  15. package/dist/src/graphql/packages/index.js +2 -0
  16. package/dist/src/graphql/packages/index.js.map +1 -0
  17. package/dist/src/graphql/packages/resolvers.d.ts +31 -0
  18. package/dist/src/graphql/packages/resolvers.d.ts.map +1 -0
  19. package/dist/src/graphql/packages/resolvers.js +37 -0
  20. package/dist/src/graphql/packages/resolvers.js.map +1 -0
  21. package/dist/src/graphql/packages/schema.graphql +50 -0
  22. package/dist/src/graphql/packages/subgraph.d.ts +55 -0
  23. package/dist/src/graphql/packages/subgraph.d.ts.map +1 -0
  24. package/dist/src/graphql/packages/subgraph.js +73 -0
  25. package/dist/src/graphql/packages/subgraph.js.map +1 -0
  26. package/dist/src/graphql/reactor/factory.d.ts +4 -0
  27. package/dist/src/graphql/reactor/factory.d.ts.map +1 -1
  28. package/dist/src/graphql/reactor/gen/graphql.d.ts +50 -0
  29. package/dist/src/graphql/reactor/gen/graphql.d.ts.map +1 -1
  30. package/dist/src/graphql/reactor/gen/graphql.js +52 -0
  31. package/dist/src/graphql/reactor/gen/graphql.js.map +1 -1
  32. package/dist/src/graphql/reactor/operations.graphql +48 -0
  33. package/dist/src/graphql/reactor/requester.with-zod.d.ts.map +1 -1
  34. package/dist/src/graphql/reactor/requester.with-zod.js +6 -1
  35. package/dist/src/graphql/reactor/requester.with-zod.js.map +1 -1
  36. package/dist/src/graphql/reactor/validation.d.ts +188 -18
  37. package/dist/src/graphql/reactor/validation.d.ts.map +1 -1
  38. package/dist/src/graphql/reactor/validation.js +75 -3
  39. package/dist/src/graphql/reactor/validation.js.map +1 -1
  40. package/dist/src/packages/http-loader.d.ts +68 -0
  41. package/dist/src/packages/http-loader.d.ts.map +1 -0
  42. package/dist/src/packages/http-loader.js +176 -0
  43. package/dist/src/packages/http-loader.js.map +1 -0
  44. package/dist/src/packages/https-hooks.d.mts +23 -0
  45. package/dist/src/packages/https-hooks.d.mts.map +1 -0
  46. package/dist/src/packages/https-hooks.mjs +59 -0
  47. package/dist/src/packages/https-hooks.mjs.map +1 -0
  48. package/dist/src/server.d.ts +1 -0
  49. package/dist/src/server.d.ts.map +1 -1
  50. package/dist/src/server.js +5 -0
  51. package/dist/src/server.js.map +1 -1
  52. package/dist/src/services/package-management.service.d.ts +32 -0
  53. package/dist/src/services/package-management.service.d.ts.map +1 -0
  54. package/dist/src/services/package-management.service.js +95 -0
  55. package/dist/src/services/package-management.service.js.map +1 -0
  56. package/dist/src/services/package-storage.d.ts +23 -0
  57. package/dist/src/services/package-storage.d.ts.map +1 -0
  58. package/dist/src/services/package-storage.js +19 -0
  59. package/dist/src/services/package-storage.js.map +1 -0
  60. package/dist/src/tracing.d.ts.map +1 -1
  61. package/dist/src/tracing.js +16 -0
  62. package/dist/src/tracing.js.map +1 -1
  63. package/dist/test/reactor-client.test.js +83 -9
  64. package/dist/test/reactor-client.test.js.map +1 -1
  65. package/dist/tsconfig.tsbuildinfo +1 -1
  66. package/package.json +13 -11
@@ -21,15 +21,22 @@ export declare const DocumentModelResultPageDTO: z.ZodObject<{
21
21
  hasPreviousPage: z.ZodBoolean;
22
22
  cursor: z.ZodOptional<z.ZodNullable<z.ZodString>>;
23
23
  }, z.core.$strip>;
24
+ export declare const RevisionEntryDTO: z.ZodObject<{
25
+ scope: z.ZodString;
26
+ revision: z.ZodNumber;
27
+ }, z.core.$strip>;
24
28
  export declare const PHDocumentDTO: z.ZodObject<{
25
29
  id: z.ZodString;
26
30
  slug: z.ZodOptional<z.ZodNullable<z.ZodString>>;
27
31
  name: z.ZodString;
28
32
  documentType: z.ZodString;
29
33
  state: z.ZodUnknown;
30
- revision: z.ZodNumber;
31
- created: z.ZodUnion<readonly [z.ZodString, z.ZodDate]>;
32
- lastModified: z.ZodUnion<readonly [z.ZodString, z.ZodDate]>;
34
+ revisionsList: z.ZodArray<z.ZodObject<{
35
+ scope: z.ZodString;
36
+ revision: z.ZodNumber;
37
+ }, z.core.$strip>>;
38
+ createdAtUtcIso: z.ZodUnion<readonly [z.ZodString, z.ZodDate]>;
39
+ lastModifiedAtUtcIso: z.ZodUnion<readonly [z.ZodString, z.ZodDate]>;
33
40
  }, z.core.$strip>;
34
41
  export declare const PHDocumentResultPageDTO: z.ZodObject<{
35
42
  items: z.ZodArray<z.ZodObject<{
@@ -38,9 +45,12 @@ export declare const PHDocumentResultPageDTO: z.ZodObject<{
38
45
  name: z.ZodString;
39
46
  documentType: z.ZodString;
40
47
  state: z.ZodUnknown;
41
- revision: z.ZodNumber;
42
- created: z.ZodUnion<readonly [z.ZodString, z.ZodDate]>;
43
- lastModified: z.ZodUnion<readonly [z.ZodString, z.ZodDate]>;
48
+ revisionsList: z.ZodArray<z.ZodObject<{
49
+ scope: z.ZodString;
50
+ revision: z.ZodNumber;
51
+ }, z.core.$strip>>;
52
+ createdAtUtcIso: z.ZodUnion<readonly [z.ZodString, z.ZodDate]>;
53
+ lastModifiedAtUtcIso: z.ZodUnion<readonly [z.ZodString, z.ZodDate]>;
44
54
  }, z.core.$strip>>;
45
55
  totalCount: z.ZodNumber;
46
56
  hasNextPage: z.ZodBoolean;
@@ -54,9 +64,12 @@ export declare const DocumentWithChildrenDTO: z.ZodObject<{
54
64
  name: z.ZodString;
55
65
  documentType: z.ZodString;
56
66
  state: z.ZodUnknown;
57
- revision: z.ZodNumber;
58
- created: z.ZodUnion<readonly [z.ZodString, z.ZodDate]>;
59
- lastModified: z.ZodUnion<readonly [z.ZodString, z.ZodDate]>;
67
+ revisionsList: z.ZodArray<z.ZodObject<{
68
+ scope: z.ZodString;
69
+ revision: z.ZodNumber;
70
+ }, z.core.$strip>>;
71
+ createdAtUtcIso: z.ZodUnion<readonly [z.ZodString, z.ZodDate]>;
72
+ lastModifiedAtUtcIso: z.ZodUnion<readonly [z.ZodString, z.ZodDate]>;
60
73
  }, z.core.$strip>;
61
74
  childIds: z.ZodArray<z.ZodString>;
62
75
  }, z.core.$strip>;
@@ -67,9 +80,12 @@ export declare const MoveChildrenResultDTO: z.ZodObject<{
67
80
  name: z.ZodString;
68
81
  documentType: z.ZodString;
69
82
  state: z.ZodUnknown;
70
- revision: z.ZodNumber;
71
- created: z.ZodUnion<readonly [z.ZodString, z.ZodDate]>;
72
- lastModified: z.ZodUnion<readonly [z.ZodString, z.ZodDate]>;
83
+ revisionsList: z.ZodArray<z.ZodObject<{
84
+ scope: z.ZodString;
85
+ revision: z.ZodNumber;
86
+ }, z.core.$strip>>;
87
+ createdAtUtcIso: z.ZodUnion<readonly [z.ZodString, z.ZodDate]>;
88
+ lastModifiedAtUtcIso: z.ZodUnion<readonly [z.ZodString, z.ZodDate]>;
73
89
  }, z.core.$strip>;
74
90
  target: z.ZodObject<{
75
91
  id: z.ZodString;
@@ -77,9 +93,12 @@ export declare const MoveChildrenResultDTO: z.ZodObject<{
77
93
  name: z.ZodString;
78
94
  documentType: z.ZodString;
79
95
  state: z.ZodUnknown;
80
- revision: z.ZodNumber;
81
- created: z.ZodUnion<readonly [z.ZodString, z.ZodDate]>;
82
- lastModified: z.ZodUnion<readonly [z.ZodString, z.ZodDate]>;
96
+ revisionsList: z.ZodArray<z.ZodObject<{
97
+ scope: z.ZodString;
98
+ revision: z.ZodNumber;
99
+ }, z.core.$strip>>;
100
+ createdAtUtcIso: z.ZodUnion<readonly [z.ZodString, z.ZodDate]>;
101
+ lastModifiedAtUtcIso: z.ZodUnion<readonly [z.ZodString, z.ZodDate]>;
83
102
  }, z.core.$strip>;
84
103
  }, z.core.$strip>;
85
104
  export declare const JobInfoDTO: z.ZodObject<{
@@ -90,6 +109,154 @@ export declare const JobInfoDTO: z.ZodObject<{
90
109
  createdAt: z.ZodUnion<readonly [z.ZodString, z.ZodDate]>;
91
110
  completedAt: z.ZodOptional<z.ZodNullable<z.ZodUnion<readonly [z.ZodString, z.ZodDate]>>>;
92
111
  }, z.core.$strip>;
112
+ export declare const ActionSignerUserDTO: z.ZodObject<{
113
+ address: z.ZodString;
114
+ networkId: z.ZodString;
115
+ chainId: z.ZodNumber;
116
+ }, z.core.$strip>;
117
+ export declare const ActionSignerAppDTO: z.ZodObject<{
118
+ name: z.ZodString;
119
+ key: z.ZodString;
120
+ }, z.core.$strip>;
121
+ export declare const ActionSignerDTO: z.ZodObject<{
122
+ signatures: z.ZodArray<z.ZodString>;
123
+ user: z.ZodOptional<z.ZodNullable<z.ZodObject<{
124
+ address: z.ZodString;
125
+ networkId: z.ZodString;
126
+ chainId: z.ZodNumber;
127
+ }, z.core.$strip>>>;
128
+ app: z.ZodOptional<z.ZodNullable<z.ZodObject<{
129
+ name: z.ZodString;
130
+ key: z.ZodString;
131
+ }, z.core.$strip>>>;
132
+ }, z.core.$strip>;
133
+ export declare const ActionContextDTO: z.ZodObject<{
134
+ signer: z.ZodOptional<z.ZodNullable<z.ZodObject<{
135
+ signatures: z.ZodArray<z.ZodString>;
136
+ user: z.ZodOptional<z.ZodNullable<z.ZodObject<{
137
+ address: z.ZodString;
138
+ networkId: z.ZodString;
139
+ chainId: z.ZodNumber;
140
+ }, z.core.$strip>>>;
141
+ app: z.ZodOptional<z.ZodNullable<z.ZodObject<{
142
+ name: z.ZodString;
143
+ key: z.ZodString;
144
+ }, z.core.$strip>>>;
145
+ }, z.core.$strip>>>;
146
+ }, z.core.$strip>;
147
+ export declare const AttachmentDTO: z.ZodObject<{
148
+ data: z.ZodString;
149
+ mimeType: z.ZodString;
150
+ hash: z.ZodString;
151
+ extension: z.ZodOptional<z.ZodNullable<z.ZodString>>;
152
+ fileName: z.ZodOptional<z.ZodNullable<z.ZodString>>;
153
+ }, z.core.$strip>;
154
+ export declare const OperationActionDTO: z.ZodObject<{
155
+ id: z.ZodString;
156
+ type: z.ZodString;
157
+ timestampUtcMs: z.ZodString;
158
+ input: z.ZodUnknown;
159
+ scope: z.ZodString;
160
+ attachments: z.ZodOptional<z.ZodNullable<z.ZodArray<z.ZodObject<{
161
+ data: z.ZodString;
162
+ mimeType: z.ZodString;
163
+ hash: z.ZodString;
164
+ extension: z.ZodOptional<z.ZodNullable<z.ZodString>>;
165
+ fileName: z.ZodOptional<z.ZodNullable<z.ZodString>>;
166
+ }, z.core.$strip>>>>;
167
+ context: z.ZodOptional<z.ZodNullable<z.ZodObject<{
168
+ signer: z.ZodOptional<z.ZodNullable<z.ZodObject<{
169
+ signatures: z.ZodArray<z.ZodString>;
170
+ user: z.ZodOptional<z.ZodNullable<z.ZodObject<{
171
+ address: z.ZodString;
172
+ networkId: z.ZodString;
173
+ chainId: z.ZodNumber;
174
+ }, z.core.$strip>>>;
175
+ app: z.ZodOptional<z.ZodNullable<z.ZodObject<{
176
+ name: z.ZodString;
177
+ key: z.ZodString;
178
+ }, z.core.$strip>>>;
179
+ }, z.core.$strip>>>;
180
+ }, z.core.$strip>>>;
181
+ }, z.core.$strip>;
182
+ export declare const OperationDTO: z.ZodObject<{
183
+ index: z.ZodNumber;
184
+ timestampUtcMs: z.ZodString;
185
+ hash: z.ZodString;
186
+ skip: z.ZodNumber;
187
+ error: z.ZodOptional<z.ZodNullable<z.ZodString>>;
188
+ id: z.ZodOptional<z.ZodNullable<z.ZodString>>;
189
+ action: z.ZodObject<{
190
+ id: z.ZodString;
191
+ type: z.ZodString;
192
+ timestampUtcMs: z.ZodString;
193
+ input: z.ZodUnknown;
194
+ scope: z.ZodString;
195
+ attachments: z.ZodOptional<z.ZodNullable<z.ZodArray<z.ZodObject<{
196
+ data: z.ZodString;
197
+ mimeType: z.ZodString;
198
+ hash: z.ZodString;
199
+ extension: z.ZodOptional<z.ZodNullable<z.ZodString>>;
200
+ fileName: z.ZodOptional<z.ZodNullable<z.ZodString>>;
201
+ }, z.core.$strip>>>>;
202
+ context: z.ZodOptional<z.ZodNullable<z.ZodObject<{
203
+ signer: z.ZodOptional<z.ZodNullable<z.ZodObject<{
204
+ signatures: z.ZodArray<z.ZodString>;
205
+ user: z.ZodOptional<z.ZodNullable<z.ZodObject<{
206
+ address: z.ZodString;
207
+ networkId: z.ZodString;
208
+ chainId: z.ZodNumber;
209
+ }, z.core.$strip>>>;
210
+ app: z.ZodOptional<z.ZodNullable<z.ZodObject<{
211
+ name: z.ZodString;
212
+ key: z.ZodString;
213
+ }, z.core.$strip>>>;
214
+ }, z.core.$strip>>>;
215
+ }, z.core.$strip>>>;
216
+ }, z.core.$strip>;
217
+ }, z.core.$strip>;
218
+ export declare const OperationResultPageDTO: z.ZodObject<{
219
+ items: z.ZodArray<z.ZodObject<{
220
+ index: z.ZodNumber;
221
+ timestampUtcMs: z.ZodString;
222
+ hash: z.ZodString;
223
+ skip: z.ZodNumber;
224
+ error: z.ZodOptional<z.ZodNullable<z.ZodString>>;
225
+ id: z.ZodOptional<z.ZodNullable<z.ZodString>>;
226
+ action: z.ZodObject<{
227
+ id: z.ZodString;
228
+ type: z.ZodString;
229
+ timestampUtcMs: z.ZodString;
230
+ input: z.ZodUnknown;
231
+ scope: z.ZodString;
232
+ attachments: z.ZodOptional<z.ZodNullable<z.ZodArray<z.ZodObject<{
233
+ data: z.ZodString;
234
+ mimeType: z.ZodString;
235
+ hash: z.ZodString;
236
+ extension: z.ZodOptional<z.ZodNullable<z.ZodString>>;
237
+ fileName: z.ZodOptional<z.ZodNullable<z.ZodString>>;
238
+ }, z.core.$strip>>>>;
239
+ context: z.ZodOptional<z.ZodNullable<z.ZodObject<{
240
+ signer: z.ZodOptional<z.ZodNullable<z.ZodObject<{
241
+ signatures: z.ZodArray<z.ZodString>;
242
+ user: z.ZodOptional<z.ZodNullable<z.ZodObject<{
243
+ address: z.ZodString;
244
+ networkId: z.ZodString;
245
+ chainId: z.ZodNumber;
246
+ }, z.core.$strip>>>;
247
+ app: z.ZodOptional<z.ZodNullable<z.ZodObject<{
248
+ name: z.ZodString;
249
+ key: z.ZodString;
250
+ }, z.core.$strip>>>;
251
+ }, z.core.$strip>>>;
252
+ }, z.core.$strip>>>;
253
+ }, z.core.$strip>;
254
+ }, z.core.$strip>>;
255
+ totalCount: z.ZodNumber;
256
+ hasNextPage: z.ZodBoolean;
257
+ hasPreviousPage: z.ZodBoolean;
258
+ cursor: z.ZodOptional<z.ZodNullable<z.ZodString>>;
259
+ }, z.core.$strip>;
93
260
  export declare const DocumentChangeContextDTO: z.ZodObject<{
94
261
  parentId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
95
262
  childId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
@@ -102,9 +269,12 @@ export declare const DocumentChangeEventDTO: z.ZodObject<{
102
269
  name: z.ZodString;
103
270
  documentType: z.ZodString;
104
271
  state: z.ZodUnknown;
105
- revision: z.ZodNumber;
106
- created: z.ZodUnion<readonly [z.ZodString, z.ZodDate]>;
107
- lastModified: z.ZodUnion<readonly [z.ZodString, z.ZodDate]>;
272
+ revisionsList: z.ZodArray<z.ZodObject<{
273
+ scope: z.ZodString;
274
+ revision: z.ZodNumber;
275
+ }, z.core.$strip>>;
276
+ createdAtUtcIso: z.ZodUnion<readonly [z.ZodString, z.ZodDate]>;
277
+ lastModifiedAtUtcIso: z.ZodUnion<readonly [z.ZodString, z.ZodDate]>;
108
278
  }, z.core.$strip>>;
109
279
  context: z.ZodOptional<z.ZodNullable<z.ZodObject<{
110
280
  parentId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
@@ -1 +1 @@
1
- {"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../../../../src/graphql/reactor/validation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,eAAO,MAAM,aAAa,cAAc,CAAC;AACzC,eAAO,MAAM,WAAW,+CAAkC,CAAC;AAE3D,eAAO,MAAM,qBAAqB;;;;;;iBAQxB,CAAC;AAEX,eAAO,MAAM,0BAA0B;;;;;;;;;;;;iBAQ7B,CAAC;AAEX,eAAO,MAAM,aAAa;;;;;;;;;iBAWhB,CAAC;AAEX,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;iBAQ1B,CAAC;AAEX,eAAO,MAAM,uBAAuB;;;;;;;;;;;;iBAK1B,CAAC;AAEX,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;iBAKxB,CAAC;AAEX,eAAO,MAAM,UAAU;;;;;;;iBASb,CAAC;AAEX,eAAO,MAAM,wBAAwB;;;iBAK3B,CAAC;AAEX,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;iBAMzB,CAAC;AAEX,eAAO,MAAM,iBAAiB;;;;;iBAOpB,CAAC"}
1
+ {"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../../../../src/graphql/reactor/validation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,eAAO,MAAM,aAAa,cAAc,CAAC;AACzC,eAAO,MAAM,WAAW,+CAAkC,CAAC;AAE3D,eAAO,MAAM,qBAAqB;;;;;;iBAQxB,CAAC;AAEX,eAAO,MAAM,0BAA0B;;;;;;;;;;;;iBAQ7B,CAAC;AAEX,eAAO,MAAM,gBAAgB;;;iBAKnB,CAAC;AAEX,eAAO,MAAM,aAAa;;;;;;;;;;;;iBAWhB,CAAC;AAEX,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;iBAQ1B,CAAC;AAEX,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;iBAK1B,CAAC;AAEX,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAKxB,CAAC;AAEX,eAAO,MAAM,UAAU;;;;;;;iBASb,CAAC;AAGX,eAAO,MAAM,mBAAmB;;;;iBAMtB,CAAC;AAEX,eAAO,MAAM,kBAAkB;;;iBAKrB,CAAC;AAEX,eAAO,MAAM,eAAe;;;;;;;;;;;iBAMlB,CAAC;AAEX,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;iBAInB,CAAC;AAEX,eAAO,MAAM,aAAa;;;;;;iBAQhB,CAAC;AAEX,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAUrB,CAAC;AAEX,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAUf,CAAC;AAEX,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAQzB,CAAC;AAEX,eAAO,MAAM,wBAAwB;;;iBAK3B,CAAC;AAEX,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;iBAMzB,CAAC;AAEX,eAAO,MAAM,iBAAiB;;;;;iBAOpB,CAAC"}
@@ -20,6 +20,12 @@ export const DocumentModelResultPageDTO = z
20
20
  cursor: z.string().nullable().optional(),
21
21
  })
22
22
  .strip();
23
+ export const RevisionEntryDTO = z
24
+ .object({
25
+ scope: z.string(),
26
+ revision: z.number().int(),
27
+ })
28
+ .strip();
23
29
  export const PHDocumentDTO = z
24
30
  .object({
25
31
  id: z.string(),
@@ -27,9 +33,9 @@ export const PHDocumentDTO = z
27
33
  name: z.string(),
28
34
  documentType: z.string(),
29
35
  state: JSONObjectDTO,
30
- revision: z.number().int(),
31
- created: DateTimeDTO,
32
- lastModified: DateTimeDTO,
36
+ revisionsList: z.array(RevisionEntryDTO),
37
+ createdAtUtcIso: DateTimeDTO,
38
+ lastModifiedAtUtcIso: DateTimeDTO,
33
39
  })
34
40
  .strip();
35
41
  export const PHDocumentResultPageDTO = z
@@ -63,6 +69,72 @@ export const JobInfoDTO = z
63
69
  completedAt: DateTimeDTO.nullable().optional(),
64
70
  })
65
71
  .strip();
72
+ // Operation DTOs for GetDocumentOperations
73
+ export const ActionSignerUserDTO = z
74
+ .object({
75
+ address: z.string(),
76
+ networkId: z.string(),
77
+ chainId: z.number().int(),
78
+ })
79
+ .strip();
80
+ export const ActionSignerAppDTO = z
81
+ .object({
82
+ name: z.string(),
83
+ key: z.string(),
84
+ })
85
+ .strip();
86
+ export const ActionSignerDTO = z
87
+ .object({
88
+ signatures: z.array(z.string()),
89
+ user: ActionSignerUserDTO.nullable().optional(),
90
+ app: ActionSignerAppDTO.nullable().optional(),
91
+ })
92
+ .strip();
93
+ export const ActionContextDTO = z
94
+ .object({
95
+ signer: ActionSignerDTO.nullable().optional(),
96
+ })
97
+ .strip();
98
+ export const AttachmentDTO = z
99
+ .object({
100
+ data: z.string(),
101
+ mimeType: z.string(),
102
+ hash: z.string(),
103
+ extension: z.string().nullable().optional(),
104
+ fileName: z.string().nullable().optional(),
105
+ })
106
+ .strip();
107
+ export const OperationActionDTO = z
108
+ .object({
109
+ id: z.string(),
110
+ type: z.string(),
111
+ timestampUtcMs: z.string(),
112
+ input: z.unknown(),
113
+ scope: z.string(),
114
+ attachments: z.array(AttachmentDTO).nullable().optional(),
115
+ context: ActionContextDTO.nullable().optional(),
116
+ })
117
+ .strip();
118
+ export const OperationDTO = z
119
+ .object({
120
+ index: z.number().int(),
121
+ timestampUtcMs: z.string(),
122
+ hash: z.string(),
123
+ skip: z.number().int(),
124
+ error: z.string().nullable().optional(),
125
+ id: z.string().nullable().optional(),
126
+ action: OperationActionDTO,
127
+ })
128
+ .strip();
129
+ export const OperationResultPageDTO = z
130
+ .object({
131
+ items: z.array(OperationDTO),
132
+ totalCount: z.number().int(),
133
+ hasNextPage: z.boolean(),
134
+ hasPreviousPage: z.boolean(),
135
+ cursor: z.string().nullable().optional(),
136
+ })
137
+ .strip();
66
138
  export const DocumentChangeContextDTO = z
67
139
  .object({
68
140
  parentId: z.string().nullable().optional(),
@@ -1 +1 @@
1
- {"version":3,"file":"validation.js","sourceRoot":"","sources":["../../../../src/graphql/reactor/validation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,cAAc;AACd,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,CAAC,OAAO,EAAE,CAAC;AACzC,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;AAE3D,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC;KACnC,MAAM,CAAC;IACN,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE;IACd,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;IAChB,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;IAC3C,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;IACzC,aAAa,EAAE,aAAa,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;CACnD,CAAC;KACD,KAAK,EAAE,CAAC;AAEX,MAAM,CAAC,MAAM,0BAA0B,GAAG,CAAC;KACxC,MAAM,CAAC;IACN,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,qBAAqB,CAAC;IACrC,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE;IAC5B,WAAW,EAAE,CAAC,CAAC,OAAO,EAAE;IACxB,eAAe,EAAE,CAAC,CAAC,OAAO,EAAE;IAC5B,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;CACzC,CAAC;KACD,KAAK,EAAE,CAAC;AAEX,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC;KAC3B,MAAM,CAAC;IACN,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE;IACd,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;IACtC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;IAChB,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE;IACxB,KAAK,EAAE,aAAa;IACpB,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE;IAC1B,OAAO,EAAE,WAAW;IACpB,YAAY,EAAE,WAAW;CAC1B,CAAC;KACD,KAAK,EAAE,CAAC;AAEX,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC;KACrC,MAAM,CAAC;IACN,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,aAAa,CAAC;IAC7B,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE;IAC5B,WAAW,EAAE,CAAC,CAAC,OAAO,EAAE;IACxB,eAAe,EAAE,CAAC,CAAC,OAAO,EAAE;IAC5B,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;CACzC,CAAC;KACD,KAAK,EAAE,CAAC;AAEX,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC;KACrC,MAAM,CAAC;IACN,QAAQ,EAAE,aAAa;IACvB,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;CAC9B,CAAC;KACD,KAAK,EAAE,CAAC;AAEX,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC;KACnC,MAAM,CAAC;IACN,MAAM,EAAE,aAAa;IACrB,MAAM,EAAE,aAAa;CACtB,CAAC;KACD,KAAK,EAAE,CAAC;AAEX,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC;KACxB,MAAM,CAAC;IACN,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE;IACd,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE;IAClB,MAAM,EAAE,aAAa,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;IAC3C,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;IACvC,SAAS,EAAE,WAAW;IACtB,WAAW,EAAE,WAAW,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;CAC/C,CAAC;KACD,KAAK,EAAE,CAAC;AAEX,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC;KACtC,MAAM,CAAC;IACN,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;IAC1C,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;CAC1C,CAAC;KACD,KAAK,EAAE,CAAC;AAEX,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC;KACpC,MAAM,CAAC;IACN,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;IAChB,SAAS,EAAE,CAAC,CAAC,KAAK,CAAC,aAAa,CAAC;IACjC,OAAO,EAAE,wBAAwB,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;CACxD,CAAC;KACD,KAAK,EAAE,CAAC;AAEX,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC;KAC/B,MAAM,CAAC;IACN,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;IACjB,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE;IAClB,MAAM,EAAE,aAAa,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;IAC3C,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;CACxC,CAAC;KACD,KAAK,EAAE,CAAC"}
1
+ {"version":3,"file":"validation.js","sourceRoot":"","sources":["../../../../src/graphql/reactor/validation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,cAAc;AACd,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,CAAC,OAAO,EAAE,CAAC;AACzC,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;AAE3D,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC;KACnC,MAAM,CAAC;IACN,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE;IACd,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;IAChB,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;IAC3C,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;IACzC,aAAa,EAAE,aAAa,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;CACnD,CAAC;KACD,KAAK,EAAE,CAAC;AAEX,MAAM,CAAC,MAAM,0BAA0B,GAAG,CAAC;KACxC,MAAM,CAAC;IACN,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,qBAAqB,CAAC;IACrC,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE;IAC5B,WAAW,EAAE,CAAC,CAAC,OAAO,EAAE;IACxB,eAAe,EAAE,CAAC,CAAC,OAAO,EAAE;IAC5B,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;CACzC,CAAC;KACD,KAAK,EAAE,CAAC;AAEX,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC;KAC9B,MAAM,CAAC;IACN,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;IACjB,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE;CAC3B,CAAC;KACD,KAAK,EAAE,CAAC;AAEX,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC;KAC3B,MAAM,CAAC;IACN,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE;IACd,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;IACtC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;IAChB,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE;IACxB,KAAK,EAAE,aAAa;IACpB,aAAa,EAAE,CAAC,CAAC,KAAK,CAAC,gBAAgB,CAAC;IACxC,eAAe,EAAE,WAAW;IAC5B,oBAAoB,EAAE,WAAW;CAClC,CAAC;KACD,KAAK,EAAE,CAAC;AAEX,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC;KACrC,MAAM,CAAC;IACN,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,aAAa,CAAC;IAC7B,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE;IAC5B,WAAW,EAAE,CAAC,CAAC,OAAO,EAAE;IACxB,eAAe,EAAE,CAAC,CAAC,OAAO,EAAE;IAC5B,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;CACzC,CAAC;KACD,KAAK,EAAE,CAAC;AAEX,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC;KACrC,MAAM,CAAC;IACN,QAAQ,EAAE,aAAa;IACvB,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;CAC9B,CAAC;KACD,KAAK,EAAE,CAAC;AAEX,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC;KACnC,MAAM,CAAC;IACN,MAAM,EAAE,aAAa;IACrB,MAAM,EAAE,aAAa;CACtB,CAAC;KACD,KAAK,EAAE,CAAC;AAEX,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC;KACxB,MAAM,CAAC;IACN,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE;IACd,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE;IAClB,MAAM,EAAE,aAAa,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;IAC3C,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;IACvC,SAAS,EAAE,WAAW;IACtB,WAAW,EAAE,WAAW,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;CAC/C,CAAC;KACD,KAAK,EAAE,CAAC;AAEX,2CAA2C;AAC3C,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC;KACjC,MAAM,CAAC;IACN,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;IACnB,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE;IACrB,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE;CAC1B,CAAC;KACD,KAAK,EAAE,CAAC;AAEX,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC;KAChC,MAAM,CAAC;IACN,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;IAChB,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE;CAChB,CAAC;KACD,KAAK,EAAE,CAAC;AAEX,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC;KAC7B,MAAM,CAAC;IACN,UAAU,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;IAC/B,IAAI,EAAE,mBAAmB,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;IAC/C,GAAG,EAAE,kBAAkB,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;CAC9C,CAAC;KACD,KAAK,EAAE,CAAC;AAEX,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC;KAC9B,MAAM,CAAC;IACN,MAAM,EAAE,eAAe,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;CAC9C,CAAC;KACD,KAAK,EAAE,CAAC;AAEX,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC;KAC3B,MAAM,CAAC;IACN,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;IAChB,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE;IACpB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;IAChB,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;IAC3C,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;CAC3C,CAAC;KACD,KAAK,EAAE,CAAC;AAEX,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC;KAChC,MAAM,CAAC;IACN,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE;IACd,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;IAChB,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE;IAC1B,KAAK,EAAE,CAAC,CAAC,OAAO,EAAE;IAClB,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;IACjB,WAAW,EAAE,CAAC,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;IACzD,OAAO,EAAE,gBAAgB,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;CAChD,CAAC;KACD,KAAK,EAAE,CAAC;AAEX,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC;KAC1B,MAAM,CAAC;IACN,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE;IACvB,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE;IAC1B,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;IAChB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE;IACtB,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;IACvC,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;IACpC,MAAM,EAAE,kBAAkB;CAC3B,CAAC;KACD,KAAK,EAAE,CAAC;AAEX,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC;KACpC,MAAM,CAAC;IACN,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,YAAY,CAAC;IAC5B,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE;IAC5B,WAAW,EAAE,CAAC,CAAC,OAAO,EAAE;IACxB,eAAe,EAAE,CAAC,CAAC,OAAO,EAAE;IAC5B,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;CACzC,CAAC;KACD,KAAK,EAAE,CAAC;AAEX,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC;KACtC,MAAM,CAAC;IACN,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;IAC1C,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;CAC1C,CAAC;KACD,KAAK,EAAE,CAAC;AAEX,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC;KACpC,MAAM,CAAC;IACN,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;IAChB,SAAS,EAAE,CAAC,CAAC,KAAK,CAAC,aAAa,CAAC;IACjC,OAAO,EAAE,wBAAwB,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;CACxD,CAAC;KACD,KAAK,EAAE,CAAC;AAEX,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC;KAC/B,MAAM,CAAC;IACN,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;IACjB,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE;IAClB,MAAM,EAAE,aAAa,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;IAC3C,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;CACxC,CAAC;KACD,KAAK,EAAE,CAAC"}
@@ -0,0 +1,68 @@
1
+ import type { DocumentModelModule } from "document-model";
2
+ import type { IDocumentModelLoader } from "@powerhousedao/reactor";
3
+ export interface HttpPackageLoaderOptions {
4
+ registryUrl: string;
5
+ }
6
+ export interface HttpPackageLoaderLogger {
7
+ info: (msg: string) => void;
8
+ error: (msg: string, err: unknown) => void;
9
+ }
10
+ /**
11
+ * Loads document models from an HTTP registry.
12
+ * Uses Node.js module loader hooks to import directly from HTTP URLs.
13
+ *
14
+ * IMPORTANT: Requires https-hooks to be registered before use:
15
+ * import { register } from "node:module";
16
+ * register("@powerhousedao/reactor-api/https-hooks", import.meta.url);
17
+ */
18
+ export declare class HttpPackageLoader implements IDocumentModelLoader {
19
+ private readonly registryUrl;
20
+ private readonly logger;
21
+ private readonly documentTypeCache;
22
+ private readonly packageModulesCache;
23
+ private onModelLoaded?;
24
+ constructor(options: HttpPackageLoaderOptions);
25
+ /**
26
+ * Set a callback to be notified when a model is dynamically loaded.
27
+ * This is used to trigger subgraph generation for dynamically loaded models.
28
+ */
29
+ setOnModelLoaded(callback: (model: DocumentModelModule) => void): void;
30
+ /**
31
+ * Clear all caches. Useful for testing or when packages are updated.
32
+ */
33
+ clearCache(): void;
34
+ /**
35
+ * Load document models from a package in the HTTP registry.
36
+ * Imports directly from HTTP URL using Node.js loader hooks.
37
+ */
38
+ loadDocumentModels(packageName: string): Promise<DocumentModelModule[]>;
39
+ /**
40
+ * Load document models from multiple packages.
41
+ * Continues loading even if some packages fail.
42
+ */
43
+ loadPackages(packageNames: string[], logger?: HttpPackageLoaderLogger): Promise<DocumentModelModule[]>;
44
+ /**
45
+ * Load a specific document model by document type.
46
+ * Implements IDocumentModelLoader interface.
47
+ */
48
+ load(documentType: string): Promise<DocumentModelModule>;
49
+ /**
50
+ * Find the package that contains a specific document type.
51
+ * Queries the registry's /packages/by-document-type endpoint.
52
+ */
53
+ private findPackageByDocumentType;
54
+ private isValidPackageName;
55
+ /**
56
+ * Get list of all loaded package names.
57
+ */
58
+ getLoadedPackages(): string[];
59
+ /**
60
+ * Get the document model modules for a specific package from cache.
61
+ */
62
+ getPackageModules(packageName: string): DocumentModelModule[] | undefined;
63
+ /**
64
+ * Remove a package from all caches.
65
+ */
66
+ removeFromCache(packageName: string): void;
67
+ }
68
+ //# sourceMappingURL=http-loader.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"http-loader.d.ts","sourceRoot":"","sources":["../../../src/packages/http-loader.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAC1D,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAEnE,MAAM,WAAW,wBAAwB;IACvC,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,uBAAuB;IACtC,IAAI,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IAC5B,KAAK,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,KAAK,IAAI,CAAC;CAC5C;AAKD;;;;;;;GAOG;AACH,qBAAa,iBAAkB,YAAW,oBAAoB;IAC5D,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAS;IACrC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA+C;IAGtE,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAA6B;IAG/D,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAGhC;IAGJ,OAAO,CAAC,aAAa,CAAC,CAAuC;gBAEjD,OAAO,EAAE,wBAAwB;IAM7C;;;OAGG;IACH,gBAAgB,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,mBAAmB,KAAK,IAAI,GAAG,IAAI;IAItE;;OAEG;IACH,UAAU,IAAI,IAAI;IAKlB;;;OAGG;IACG,kBAAkB,CACtB,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,mBAAmB,EAAE,CAAC;IAiCjC;;;OAGG;IACG,YAAY,CAChB,YAAY,EAAE,MAAM,EAAE,EACtB,MAAM,CAAC,EAAE,uBAAuB,GAC/B,OAAO,CAAC,mBAAmB,EAAE,CAAC;IAwBjC;;;OAGG;IACG,IAAI,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,mBAAmB,CAAC;IAwC9D;;;OAGG;YACW,yBAAyB;IAqCvC,OAAO,CAAC,kBAAkB;IAM1B;;OAEG;IACH,iBAAiB,IAAI,MAAM,EAAE;IAI7B;;OAEG;IACH,iBAAiB,CAAC,WAAW,EAAE,MAAM,GAAG,mBAAmB,EAAE,GAAG,SAAS;IAIzE;;OAEG;IACH,eAAe,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI;CAS3C"}
@@ -0,0 +1,176 @@
1
+ import { childLogger } from "document-drive";
2
+ /**
3
+ * Loads document models from an HTTP registry.
4
+ * Uses Node.js module loader hooks to import directly from HTTP URLs.
5
+ *
6
+ * IMPORTANT: Requires https-hooks to be registered before use:
7
+ * import { register } from "node:module";
8
+ * register("@powerhousedao/reactor-api/https-hooks", import.meta.url);
9
+ */
10
+ export class HttpPackageLoader {
11
+ registryUrl;
12
+ logger = childLogger(["reactor-api", "http-loader"]);
13
+ // Cache: documentType -> packageName
14
+ documentTypeCache = new Map();
15
+ // Cache: packageName -> DocumentModelModule[]
16
+ packageModulesCache = new Map();
17
+ // Callback to notify when a model is dynamically loaded
18
+ onModelLoaded;
19
+ constructor(options) {
20
+ this.registryUrl = options.registryUrl.endsWith("/")
21
+ ? options.registryUrl
22
+ : `${options.registryUrl}/`;
23
+ }
24
+ /**
25
+ * Set a callback to be notified when a model is dynamically loaded.
26
+ * This is used to trigger subgraph generation for dynamically loaded models.
27
+ */
28
+ setOnModelLoaded(callback) {
29
+ this.onModelLoaded = callback;
30
+ }
31
+ /**
32
+ * Clear all caches. Useful for testing or when packages are updated.
33
+ */
34
+ clearCache() {
35
+ this.documentTypeCache.clear();
36
+ this.packageModulesCache.clear();
37
+ }
38
+ /**
39
+ * Load document models from a package in the HTTP registry.
40
+ * Imports directly from HTTP URL using Node.js loader hooks.
41
+ */
42
+ async loadDocumentModels(packageName) {
43
+ if (!this.isValidPackageName(packageName)) {
44
+ throw new Error(`Invalid package name: ${packageName}`);
45
+ }
46
+ const url = `${this.registryUrl}${packageName}/document-models.js`;
47
+ try {
48
+ this.logger.verbose(`Importing document-models from: ${url}`);
49
+ // Direct import from HTTP URL - hooks handle the fetch
50
+ const module = (await import(url));
51
+ const models = Object.values(module).filter((m) => m !== null &&
52
+ typeof m === "object" &&
53
+ "documentModel" in m &&
54
+ m.documentModel !== null);
55
+ this.logger.verbose(`Loaded ${models.length} document models from ${packageName}`);
56
+ return models;
57
+ }
58
+ catch (error) {
59
+ const message = error instanceof Error ? error.message : String(error);
60
+ throw new Error(`Failed to load document models from ${packageName}: ${message}`);
61
+ }
62
+ }
63
+ /**
64
+ * Load document models from multiple packages.
65
+ * Continues loading even if some packages fail.
66
+ */
67
+ async loadPackages(packageNames, logger) {
68
+ const allModels = [];
69
+ for (const pkgName of packageNames) {
70
+ const trimmedName = pkgName.trim();
71
+ if (!trimmedName)
72
+ continue;
73
+ try {
74
+ const models = await this.loadDocumentModels(trimmedName);
75
+ allModels.push(...models);
76
+ const logMsg = `Loaded ${models.length} document models from ${trimmedName}`;
77
+ logger?.info(logMsg);
78
+ this.logger.info(logMsg);
79
+ }
80
+ catch (error) {
81
+ const errMsg = `Failed to load package ${trimmedName}`;
82
+ logger?.error(errMsg, error);
83
+ this.logger.error(errMsg, error);
84
+ // Continue with other packages - don't fail startup
85
+ }
86
+ }
87
+ return allModels;
88
+ }
89
+ /**
90
+ * Load a specific document model by document type.
91
+ * Implements IDocumentModelLoader interface.
92
+ */
93
+ async load(documentType) {
94
+ // Step 1: Find which package contains this document type
95
+ const packageName = await this.findPackageByDocumentType(documentType);
96
+ // Step 2: Load all document models from that package (uses cache if available)
97
+ let models;
98
+ const cachedModels = this.packageModulesCache.get(packageName);
99
+ if (cachedModels) {
100
+ models = cachedModels;
101
+ }
102
+ else {
103
+ models = await this.loadDocumentModels(packageName);
104
+ this.packageModulesCache.set(packageName, models);
105
+ }
106
+ // Step 3: Find the specific model matching the document type
107
+ const model = models.find((m) => m.documentModel.global.id === documentType);
108
+ if (!model) {
109
+ const availableTypes = models.map((m) => m.documentModel.global.id);
110
+ throw new Error(`Document model ${documentType} not found in package ${packageName}. ` +
111
+ `Available types: ${availableTypes.join(", ")}`);
112
+ }
113
+ this.logger.info(`Loaded document model "${documentType}" from package "${packageName}"`);
114
+ // Notify listener about the dynamically loaded model
115
+ if (this.onModelLoaded) {
116
+ this.onModelLoaded(model);
117
+ }
118
+ return model;
119
+ }
120
+ /**
121
+ * Find the package that contains a specific document type.
122
+ * Queries the registry's /packages/by-document-type endpoint.
123
+ */
124
+ async findPackageByDocumentType(documentType) {
125
+ // Check cache first
126
+ const cached = this.documentTypeCache.get(documentType);
127
+ if (cached) {
128
+ return cached;
129
+ }
130
+ const encodedType = encodeURIComponent(documentType);
131
+ const url = `${this.registryUrl}packages/by-document-type?type=${encodedType}`;
132
+ const response = await fetch(url);
133
+ if (!response.ok) {
134
+ throw new Error(`Registry query failed for document type ${documentType}: ${response.status} ${response.statusText}`);
135
+ }
136
+ const packageNames = (await response.json());
137
+ if (packageNames.length === 0) {
138
+ throw new Error(`No package found containing document type: ${documentType}`);
139
+ }
140
+ // Return first match (sorted alphabetically for determinism)
141
+ const packageName = packageNames.sort((a, b) => a.localeCompare(b))[0];
142
+ // Cache the result
143
+ this.documentTypeCache.set(documentType, packageName);
144
+ return packageName;
145
+ }
146
+ isValidPackageName(name) {
147
+ // npm package name pattern: optional scope + package name
148
+ const pattern = /^(@[a-z0-9][-a-z0-9._]*\/)?[a-z0-9][-a-z0-9._]*$/i;
149
+ return pattern.test(name) && !name.includes("..") && name.length <= 214;
150
+ }
151
+ /**
152
+ * Get list of all loaded package names.
153
+ */
154
+ getLoadedPackages() {
155
+ return Array.from(this.packageModulesCache.keys());
156
+ }
157
+ /**
158
+ * Get the document model modules for a specific package from cache.
159
+ */
160
+ getPackageModules(packageName) {
161
+ return this.packageModulesCache.get(packageName);
162
+ }
163
+ /**
164
+ * Remove a package from all caches.
165
+ */
166
+ removeFromCache(packageName) {
167
+ this.packageModulesCache.delete(packageName);
168
+ // Remove document type entries that point to this package
169
+ for (const [docType, pkg] of this.documentTypeCache) {
170
+ if (pkg === packageName) {
171
+ this.documentTypeCache.delete(docType);
172
+ }
173
+ }
174
+ }
175
+ }
176
+ //# sourceMappingURL=http-loader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"http-loader.js","sourceRoot":"","sources":["../../../src/packages/http-loader.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,23 @@
1
+ /**
2
+ * Node.js module loader hooks that enable importing from HTTP/HTTPS URLs.
3
+ * See: https://nodejs.org/docs/latest-v24.x/api/module.html#import-from-https
4
+ */
5
+ type LoadContext = {
6
+ format?: string;
7
+ };
8
+ type LoadResult = {
9
+ format: string;
10
+ shortCircuit?: boolean;
11
+ source: string;
12
+ };
13
+ type NextLoad = (url: string, context: LoadContext) => Promise<LoadResult>;
14
+ /**
15
+ * Load hook: fetches module source from HTTP/HTTPS URLs.
16
+ */
17
+ export declare function load(url: string, context: LoadContext, nextLoad: NextLoad): Promise<LoadResult>;
18
+ /**
19
+ * Path to this hooks file for use with node:module register()
20
+ */
21
+ export declare const httpsHooksPath: string;
22
+ export {};
23
+ //# sourceMappingURL=https-hooks.d.mts.map