@xyo-network/domain-payload-plugin 6.1.1 → 7.0.2

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.
@@ -12,7 +12,41 @@ export declare const DomainConfigPayloadZod: z.ZodMiniObject<{
12
12
  huri: z.ZodMiniString<string>;
13
13
  name: z.ZodMiniOptional<z.ZodMiniString<string>>;
14
14
  }, z.core.$strip>>>;
15
- networks: z.ZodMiniOptional<z.ZodMiniArray<z.ZodMiniCustom<import("@xyo-network/network").NetworkPayload, import("@xyo-network/network").NetworkPayload>>>;
15
+ networks: z.ZodMiniOptional<z.ZodMiniArray<z.ZodMiniCustom<{
16
+ schema: "network.xyo.network" & {
17
+ readonly __schema: true;
18
+ };
19
+ slug: string;
20
+ name?: string | undefined;
21
+ nodes?: {
22
+ schema: "network.xyo.network.node" & {
23
+ readonly __schema: true;
24
+ };
25
+ slug: string;
26
+ type: "archivist" | "diviner" | "bridge" | "sentinel";
27
+ uri: string;
28
+ docs?: string | undefined;
29
+ name?: string | undefined;
30
+ web?: string | undefined;
31
+ }[] | undefined;
32
+ }, {
33
+ schema: "network.xyo.network" & {
34
+ readonly __schema: true;
35
+ };
36
+ slug: string;
37
+ name?: string | undefined;
38
+ nodes?: {
39
+ schema: "network.xyo.network.node" & {
40
+ readonly __schema: true;
41
+ };
42
+ slug: string;
43
+ type: "archivist" | "diviner" | "bridge" | "sentinel";
44
+ uri: string;
45
+ docs?: string | undefined;
46
+ name?: string | undefined;
47
+ web?: string | undefined;
48
+ }[] | undefined;
49
+ }>>>;
16
50
  schemas: z.ZodMiniOptional<z.ZodMiniRecord<z.ZodMiniString<string>, z.ZodMiniUnion<readonly [z.ZodMiniString<string>, z.ZodMiniObject<{
17
51
  $id: z.ZodMiniOptional<z.ZodMiniString<string>>;
18
52
  }, z.core.$loose>]>>>;
@@ -27,7 +61,24 @@ export declare const isDomainConfigPayload: <T>(value: T) => value is T & {
27
61
  huri: string;
28
62
  name?: string | undefined;
29
63
  }> | undefined;
30
- networks?: import("@xyo-network/network").NetworkPayload[] | undefined;
64
+ networks?: {
65
+ schema: "network.xyo.network" & {
66
+ readonly __schema: true;
67
+ };
68
+ slug: string;
69
+ name?: string | undefined;
70
+ nodes?: {
71
+ schema: "network.xyo.network.node" & {
72
+ readonly __schema: true;
73
+ };
74
+ slug: string;
75
+ type: "archivist" | "diviner" | "bridge" | "sentinel";
76
+ uri: string;
77
+ docs?: string | undefined;
78
+ name?: string | undefined;
79
+ web?: string | undefined;
80
+ }[] | undefined;
81
+ }[] | undefined;
31
82
  schemas?: Record<string, string | {
32
83
  [x: string]: unknown;
33
84
  $id?: string | undefined;
@@ -43,7 +94,24 @@ export declare const asDomainConfigPayload: {
43
94
  huri: string;
44
95
  name?: string | undefined;
45
96
  }> | undefined;
46
- networks?: import("@xyo-network/network").NetworkPayload[] | undefined;
97
+ networks?: {
98
+ schema: "network.xyo.network" & {
99
+ readonly __schema: true;
100
+ };
101
+ slug: string;
102
+ name?: string | undefined;
103
+ nodes?: {
104
+ schema: "network.xyo.network.node" & {
105
+ readonly __schema: true;
106
+ };
107
+ slug: string;
108
+ type: "archivist" | "diviner" | "bridge" | "sentinel";
109
+ uri: string;
110
+ docs?: string | undefined;
111
+ name?: string | undefined;
112
+ web?: string | undefined;
113
+ }[] | undefined;
114
+ }[] | undefined;
47
115
  schemas?: Record<string, string | {
48
116
  [x: string]: unknown;
49
117
  $id?: string | undefined;
@@ -58,7 +126,24 @@ export declare const asDomainConfigPayload: {
58
126
  huri: string;
59
127
  name?: string | undefined;
60
128
  }> | undefined;
61
- networks?: import("@xyo-network/network").NetworkPayload[] | undefined;
129
+ networks?: {
130
+ schema: "network.xyo.network" & {
131
+ readonly __schema: true;
132
+ };
133
+ slug: string;
134
+ name?: string | undefined;
135
+ nodes?: {
136
+ schema: "network.xyo.network.node" & {
137
+ readonly __schema: true;
138
+ };
139
+ slug: string;
140
+ type: "archivist" | "diviner" | "bridge" | "sentinel";
141
+ uri: string;
142
+ docs?: string | undefined;
143
+ name?: string | undefined;
144
+ web?: string | undefined;
145
+ }[] | undefined;
146
+ }[] | undefined;
62
147
  schemas?: Record<string, string | {
63
148
  [x: string]: unknown;
64
149
  $id?: string | undefined;
@@ -75,7 +160,24 @@ export declare const toDomainConfigPayload: {
75
160
  huri: string;
76
161
  name?: string | undefined;
77
162
  }> | undefined;
78
- networks?: import("@xyo-network/network").NetworkPayload[] | undefined;
163
+ networks?: {
164
+ schema: "network.xyo.network" & {
165
+ readonly __schema: true;
166
+ };
167
+ slug: string;
168
+ name?: string | undefined;
169
+ nodes?: {
170
+ schema: "network.xyo.network.node" & {
171
+ readonly __schema: true;
172
+ };
173
+ slug: string;
174
+ type: "archivist" | "diviner" | "bridge" | "sentinel";
175
+ uri: string;
176
+ docs?: string | undefined;
177
+ name?: string | undefined;
178
+ web?: string | undefined;
179
+ }[] | undefined;
180
+ }[] | undefined;
79
181
  schemas?: Record<string, string | {
80
182
  [x: string]: unknown;
81
183
  $id?: string | undefined;
@@ -90,7 +192,24 @@ export declare const toDomainConfigPayload: {
90
192
  huri: string;
91
193
  name?: string | undefined;
92
194
  }> | undefined;
93
- networks?: import("@xyo-network/network").NetworkPayload[] | undefined;
195
+ networks?: {
196
+ schema: "network.xyo.network" & {
197
+ readonly __schema: true;
198
+ };
199
+ slug: string;
200
+ name?: string | undefined;
201
+ nodes?: {
202
+ schema: "network.xyo.network.node" & {
203
+ readonly __schema: true;
204
+ };
205
+ slug: string;
206
+ type: "archivist" | "diviner" | "bridge" | "sentinel";
207
+ uri: string;
208
+ docs?: string | undefined;
209
+ name?: string | undefined;
210
+ web?: string | undefined;
211
+ }[] | undefined;
212
+ }[] | undefined;
94
213
  schemas?: Record<string, string | {
95
214
  [x: string]: unknown;
96
215
  $id?: string | undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"DomainConfigPayload.d.ts","sourceRoot":"","sources":["../../src/DomainConfigPayload.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,CAAC,MAAM,UAAU,CAAA;AAK7B;;;GAGG;AACH,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;iBAAgF,CAAA;AACnH,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAA;AAExE,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;CAAuC,CAAA;AACzE,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAAgE,CAAA;AAClG,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAAgE,CAAA"}
1
+ {"version":3,"file":"DomainConfigPayload.d.ts","sourceRoot":"","sources":["../../src/DomainConfigPayload.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,CAAC,MAAM,UAAU,CAAA;AAK7B;;;GAGG;AACH,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAAgF,CAAA;AACnH,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAA;AAExE,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAAuC,CAAA;AACzE,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAAgE,CAAA;AAClG,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAAgE,CAAA"}
@@ -7,7 +7,24 @@ export declare const DomainConfigPayloadPlugin: () => import("@xyo-network/paylo
7
7
  huri: string;
8
8
  name?: string | undefined;
9
9
  }> | undefined;
10
- networks?: import("@xyo-network/network").NetworkPayload[] | undefined;
10
+ networks?: {
11
+ schema: "network.xyo.network" & {
12
+ readonly __schema: true;
13
+ };
14
+ slug: string;
15
+ name?: string | undefined;
16
+ nodes?: {
17
+ schema: "network.xyo.network.node" & {
18
+ readonly __schema: true;
19
+ };
20
+ slug: string;
21
+ type: "archivist" | "diviner" | "bridge" | "sentinel";
22
+ uri: string;
23
+ docs?: string | undefined;
24
+ name?: string | undefined;
25
+ web?: string | undefined;
26
+ }[] | undefined;
27
+ }[] | undefined;
11
28
  schemas?: Record<string, string | {
12
29
  [x: string]: unknown;
13
30
  $id?: string | undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"DomainConfigPlugin.d.ts","sourceRoot":"","sources":["../../src/DomainConfigPlugin.ts"],"names":[],"mappings":"AAOA,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;;EAKlC,CAAA"}
1
+ {"version":3,"file":"DomainConfigPlugin.d.ts","sourceRoot":"","sources":["../../src/DomainConfigPlugin.ts"],"names":[],"mappings":"AAOA,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAKlC,CAAA"}
@@ -1,4 +1,3 @@
1
- import type { NetworkPayload } from '@xyo-network/network';
2
1
  import * as z from 'zod/mini';
3
2
  export declare const AliasZod: z.ZodMiniObject<{
4
3
  huri: z.ZodMiniString<string>;
@@ -27,7 +26,41 @@ export declare const DomainConfigFieldsZod: z.ZodMiniObject<{
27
26
  huri: z.ZodMiniString<string>;
28
27
  name: z.ZodMiniOptional<z.ZodMiniString<string>>;
29
28
  }, z.core.$strip>>>;
30
- networks: z.ZodMiniOptional<z.ZodMiniArray<z.ZodMiniCustom<NetworkPayload, NetworkPayload>>>;
29
+ networks: z.ZodMiniOptional<z.ZodMiniArray<z.ZodMiniCustom<{
30
+ schema: "network.xyo.network" & {
31
+ readonly __schema: true;
32
+ };
33
+ slug: string;
34
+ name?: string | undefined;
35
+ nodes?: {
36
+ schema: "network.xyo.network.node" & {
37
+ readonly __schema: true;
38
+ };
39
+ slug: string;
40
+ type: "archivist" | "diviner" | "bridge" | "sentinel";
41
+ uri: string;
42
+ docs?: string | undefined;
43
+ name?: string | undefined;
44
+ web?: string | undefined;
45
+ }[] | undefined;
46
+ }, {
47
+ schema: "network.xyo.network" & {
48
+ readonly __schema: true;
49
+ };
50
+ slug: string;
51
+ name?: string | undefined;
52
+ nodes?: {
53
+ schema: "network.xyo.network.node" & {
54
+ readonly __schema: true;
55
+ };
56
+ slug: string;
57
+ type: "archivist" | "diviner" | "bridge" | "sentinel";
58
+ uri: string;
59
+ docs?: string | undefined;
60
+ name?: string | undefined;
61
+ web?: string | undefined;
62
+ }[] | undefined;
63
+ }>>>;
31
64
  schemas: z.ZodMiniOptional<z.ZodMiniRecord<z.ZodMiniString<string>, z.ZodMiniUnion<readonly [z.ZodMiniString<string>, z.ZodMiniObject<{
32
65
  $id: z.ZodMiniOptional<z.ZodMiniString<string>>;
33
66
  }, z.core.$loose>]>>>;
@@ -42,13 +75,47 @@ export declare const DomainPayloadZod: z.ZodMiniObject<{
42
75
  huri: z.ZodMiniString<string>;
43
76
  name: z.ZodMiniOptional<z.ZodMiniString<string>>;
44
77
  }, z.core.$strip>>>;
45
- networks: z.ZodMiniOptional<z.ZodMiniArray<z.ZodMiniCustom<NetworkPayload, NetworkPayload>>>;
78
+ networks: z.ZodMiniOptional<z.ZodMiniArray<z.ZodMiniCustom<{
79
+ schema: "network.xyo.network" & {
80
+ readonly __schema: true;
81
+ };
82
+ slug: string;
83
+ name?: string | undefined;
84
+ nodes?: {
85
+ schema: "network.xyo.network.node" & {
86
+ readonly __schema: true;
87
+ };
88
+ slug: string;
89
+ type: "archivist" | "diviner" | "bridge" | "sentinel";
90
+ uri: string;
91
+ docs?: string | undefined;
92
+ name?: string | undefined;
93
+ web?: string | undefined;
94
+ }[] | undefined;
95
+ }, {
96
+ schema: "network.xyo.network" & {
97
+ readonly __schema: true;
98
+ };
99
+ slug: string;
100
+ name?: string | undefined;
101
+ nodes?: {
102
+ schema: "network.xyo.network.node" & {
103
+ readonly __schema: true;
104
+ };
105
+ slug: string;
106
+ type: "archivist" | "diviner" | "bridge" | "sentinel";
107
+ uri: string;
108
+ docs?: string | undefined;
109
+ name?: string | undefined;
110
+ web?: string | undefined;
111
+ }[] | undefined;
112
+ }>>>;
46
113
  schemas: z.ZodMiniOptional<z.ZodMiniRecord<z.ZodMiniString<string>, z.ZodMiniUnion<readonly [z.ZodMiniString<string>, z.ZodMiniObject<{
47
114
  $id: z.ZodMiniOptional<z.ZodMiniString<string>>;
48
115
  }, z.core.$loose>]>>>;
49
116
  }, z.core.$strip>;
50
117
  export type DomainPayload = z.infer<typeof DomainPayloadZod>;
51
- export declare const isDomainPayload: (x?: unknown) => x is {
118
+ export declare const isDomainPayload: <T>(value: T) => value is T & {
52
119
  schema: "network.xyo.domain" & {
53
120
  readonly __schema: true;
54
121
  };
@@ -57,10 +124,159 @@ export declare const isDomainPayload: (x?: unknown) => x is {
57
124
  huri: string;
58
125
  name?: string | undefined;
59
126
  }> | undefined;
60
- networks?: NetworkPayload[] | undefined;
127
+ networks?: {
128
+ schema: "network.xyo.network" & {
129
+ readonly __schema: true;
130
+ };
131
+ slug: string;
132
+ name?: string | undefined;
133
+ nodes?: {
134
+ schema: "network.xyo.network.node" & {
135
+ readonly __schema: true;
136
+ };
137
+ slug: string;
138
+ type: "archivist" | "diviner" | "bridge" | "sentinel";
139
+ uri: string;
140
+ docs?: string | undefined;
141
+ name?: string | undefined;
142
+ web?: string | undefined;
143
+ }[] | undefined;
144
+ }[] | undefined;
61
145
  schemas?: Record<string, string | {
62
146
  [x: string]: unknown;
63
147
  $id?: string | undefined;
64
148
  }> | undefined;
65
149
  };
150
+ export declare const asDomainPayload: {
151
+ <T>(value: T): (T & {
152
+ schema: "network.xyo.domain" & {
153
+ readonly __schema: true;
154
+ };
155
+ additional?: string[] | undefined;
156
+ aliases?: Record<string, {
157
+ huri: string;
158
+ name?: string | undefined;
159
+ }> | undefined;
160
+ networks?: {
161
+ schema: "network.xyo.network" & {
162
+ readonly __schema: true;
163
+ };
164
+ slug: string;
165
+ name?: string | undefined;
166
+ nodes?: {
167
+ schema: "network.xyo.network.node" & {
168
+ readonly __schema: true;
169
+ };
170
+ slug: string;
171
+ type: "archivist" | "diviner" | "bridge" | "sentinel";
172
+ uri: string;
173
+ docs?: string | undefined;
174
+ name?: string | undefined;
175
+ web?: string | undefined;
176
+ }[] | undefined;
177
+ }[] | undefined;
178
+ schemas?: Record<string, string | {
179
+ [x: string]: unknown;
180
+ $id?: string | undefined;
181
+ }> | undefined;
182
+ }) | undefined;
183
+ <T>(value: T, assert: import("@xylabs/sdk-js").ZodFactoryConfig): T & {
184
+ schema: "network.xyo.domain" & {
185
+ readonly __schema: true;
186
+ };
187
+ additional?: string[] | undefined;
188
+ aliases?: Record<string, {
189
+ huri: string;
190
+ name?: string | undefined;
191
+ }> | undefined;
192
+ networks?: {
193
+ schema: "network.xyo.network" & {
194
+ readonly __schema: true;
195
+ };
196
+ slug: string;
197
+ name?: string | undefined;
198
+ nodes?: {
199
+ schema: "network.xyo.network.node" & {
200
+ readonly __schema: true;
201
+ };
202
+ slug: string;
203
+ type: "archivist" | "diviner" | "bridge" | "sentinel";
204
+ uri: string;
205
+ docs?: string | undefined;
206
+ name?: string | undefined;
207
+ web?: string | undefined;
208
+ }[] | undefined;
209
+ }[] | undefined;
210
+ schemas?: Record<string, string | {
211
+ [x: string]: unknown;
212
+ $id?: string | undefined;
213
+ }> | undefined;
214
+ };
215
+ };
216
+ export declare const toDomainPayload: {
217
+ <T>(value: T): (T & {
218
+ schema: "network.xyo.domain" & {
219
+ readonly __schema: true;
220
+ };
221
+ additional?: string[] | undefined;
222
+ aliases?: Record<string, {
223
+ huri: string;
224
+ name?: string | undefined;
225
+ }> | undefined;
226
+ networks?: {
227
+ schema: "network.xyo.network" & {
228
+ readonly __schema: true;
229
+ };
230
+ slug: string;
231
+ name?: string | undefined;
232
+ nodes?: {
233
+ schema: "network.xyo.network.node" & {
234
+ readonly __schema: true;
235
+ };
236
+ slug: string;
237
+ type: "archivist" | "diviner" | "bridge" | "sentinel";
238
+ uri: string;
239
+ docs?: string | undefined;
240
+ name?: string | undefined;
241
+ web?: string | undefined;
242
+ }[] | undefined;
243
+ }[] | undefined;
244
+ schemas?: Record<string, string | {
245
+ [x: string]: unknown;
246
+ $id?: string | undefined;
247
+ }> | undefined;
248
+ }) | undefined;
249
+ <T>(value: T, assert: import("@xylabs/sdk-js").ZodFactoryConfig): T & {
250
+ schema: "network.xyo.domain" & {
251
+ readonly __schema: true;
252
+ };
253
+ additional?: string[] | undefined;
254
+ aliases?: Record<string, {
255
+ huri: string;
256
+ name?: string | undefined;
257
+ }> | undefined;
258
+ networks?: {
259
+ schema: "network.xyo.network" & {
260
+ readonly __schema: true;
261
+ };
262
+ slug: string;
263
+ name?: string | undefined;
264
+ nodes?: {
265
+ schema: "network.xyo.network.node" & {
266
+ readonly __schema: true;
267
+ };
268
+ slug: string;
269
+ type: "archivist" | "diviner" | "bridge" | "sentinel";
270
+ uri: string;
271
+ docs?: string | undefined;
272
+ name?: string | undefined;
273
+ web?: string | undefined;
274
+ }[] | undefined;
275
+ }[] | undefined;
276
+ schemas?: Record<string, string | {
277
+ [x: string]: unknown;
278
+ $id?: string | undefined;
279
+ }> | undefined;
280
+ };
281
+ };
66
282
  //# sourceMappingURL=Payload.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Payload.d.ts","sourceRoot":"","sources":["../../src/Payload.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AAE1D,OAAO,KAAK,CAAC,MAAM,UAAU,CAAA;AAI7B,eAAO,MAAM,QAAQ;;;iBAKnB,CAAA;AACF,MAAM,MAAM,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,QAAQ,CAAC,CAAA;AAE5C;;;GAGG;AACH,eAAO,MAAM,mBAAmB;;iBAAiD,CAAA;AACjF,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAA;AAElE;;;GAGG;AACH,eAAO,MAAM,iBAAiB;;mBAA6C,CAAA;AAC3E,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAA;AAE9D,eAAO,MAAM,qBAAqB;;;;;;;;;;iBAShC,CAAA;AACF,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAA;AAEtE,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;iBAA0E,CAAA;AACvG,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAA;AAI5D,eAAO,MAAM,eAAe;;;;;;;;;;;;;;CAAqD,CAAA"}
1
+ {"version":3,"file":"Payload.d.ts","sourceRoot":"","sources":["../../src/Payload.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,CAAC,MAAM,UAAU,CAAA;AAI7B,eAAO,MAAM,QAAQ;;;iBAKnB,CAAA;AACF,MAAM,MAAM,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,QAAQ,CAAC,CAAA;AAE5C;;;GAGG;AACH,eAAO,MAAM,mBAAmB;;iBAAiD,CAAA;AACjF,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAA;AAElE;;;GAGG;AACH,eAAO,MAAM,iBAAiB;;mBAA6C,CAAA;AAC3E,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAA;AAS9D,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAShC,CAAA;AACF,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAA;AAEtE,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAA0E,CAAA;AACvG,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAA;AAE5D,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAAiC,CAAA;AAC7D,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAAoD,CAAA;AAChF,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAAoD,CAAA"}
@@ -7,7 +7,24 @@ export declare const DomainPayloadPlugin: () => import("@xyo-network/payload-plu
7
7
  huri: string;
8
8
  name?: string | undefined;
9
9
  }> | undefined;
10
- networks?: import("@xyo-network/network").NetworkPayload[] | undefined;
10
+ networks?: {
11
+ schema: "network.xyo.network" & {
12
+ readonly __schema: true;
13
+ };
14
+ slug: string;
15
+ name?: string | undefined;
16
+ nodes?: {
17
+ schema: "network.xyo.network.node" & {
18
+ readonly __schema: true;
19
+ };
20
+ slug: string;
21
+ type: "archivist" | "diviner" | "bridge" | "sentinel";
22
+ uri: string;
23
+ docs?: string | undefined;
24
+ name?: string | undefined;
25
+ web?: string | undefined;
26
+ }[] | undefined;
27
+ }[] | undefined;
11
28
  schemas?: Record<string, string | {
12
29
  [x: string]: unknown;
13
30
  $id?: string | undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"Plugin.d.ts","sourceRoot":"","sources":["../../src/Plugin.ts"],"names":[],"mappings":"AAQA,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;EAK5B,CAAA"}
1
+ {"version":3,"file":"Plugin.d.ts","sourceRoot":"","sources":["../../src/Plugin.ts"],"names":[],"mappings":"AAQA,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAK5B,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"DomainSchemaResolver.d.ts","sourceRoot":"","sources":["../../../src/Resolution/DomainSchemaResolver.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAA;AACzD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oCAAoC,CAAA;AAIvE,OAAO,KAAK,EAAE,kBAAkB,EAAiB,MAAM,eAAe,CAAA;AAEtE,OAAO,KAAK,EACV,oBAAoB,EAAE,gBAAgB,EAAE,yBAAyB,EAAE,sBAAsB,EAC1F,MAAM,uBAAuB,CAAA;AAM9B,UAAU,cAAc;IACtB,yFAAyF;IACzF,cAAc,EAAE,OAAO,CAAA;IACvB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,OAAO,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;CACrB;AAED,UAAU,QAAQ;IAChB,OAAO,EAAE,aAAa,CAAA;IACtB,MAAM,EAAE,sBAAsB,CAAA;CAC/B;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,EAAE,CAO7D;AAED;;;GAGG;AACH,wBAAgB,yBAAyB,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAErF;AAMD;;;;;;GAMG;AACH,qBAAa,oBAAoB;IACzB,OAAO,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,GAAE,oBAAyB,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAsBhG,uFAAuF;cACvE,YAAY,CAC1B,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,cAAc,EACvB,YAAY,CAAC,EAAE,kBAAkB,GAChC,OAAO,CAAC,OAAO,GAAG,SAAS,CAAC;cAqBf,wBAAwB,CACtC,UAAU,EAAE,MAAM,EAClB,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,cAAc,EACvB,YAAY,CAAC,EAAE,kBAAkB,GAChC,OAAO,CAAC,aAAa,GAAG,SAAS,CAAC;IAOrC,SAAS,CAAC,UAAU,CAAC,MAAM,EAAE,kBAAkB,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAOxF,2FAA2F;cAC3E,cAAc,CAC5B,MAAM,EAAE,kBAAkB,GAAG,SAAS,EACtC,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,yBAAyB,EACpC,OAAO,EAAE,cAAc,EACvB,GAAG,CAAC,EAAE,MAAM,GACX,OAAO,CAAC,QAAQ,GAAG,SAAS,CAAC;cA+BhB,eAAe,CAC7B,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,MAAM,EAClB,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,cAAc,GACtB,OAAO,CAAC,QAAQ,GAAG,SAAS,CAAC;cA2ChB,aAAa,CAC3B,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,MAAM,EAClB,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,cAAc,GACtB,OAAO,CAAC,QAAQ,GAAG,SAAS,CAAC;CAkDjC"}
1
+ {"version":3,"file":"DomainSchemaResolver.d.ts","sourceRoot":"","sources":["../../../src/Resolution/DomainSchemaResolver.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAA;AACzD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oCAAoC,CAAA;AAIvE,OAAO,KAAK,EAAE,kBAAkB,EAAiB,MAAM,eAAe,CAAA;AAEtE,OAAO,KAAK,EACV,oBAAoB,EAAE,gBAAgB,EAAE,yBAAyB,EAAE,sBAAsB,EAC1F,MAAM,uBAAuB,CAAA;AAM9B,UAAU,cAAc;IACtB,yFAAyF;IACzF,cAAc,EAAE,OAAO,CAAA;IACvB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,OAAO,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;CACrB;AAED,UAAU,QAAQ;IAChB,OAAO,EAAE,aAAa,CAAA;IACtB,MAAM,EAAE,sBAAsB,CAAA;CAC/B;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,EAAE,CAO7D;AAED;;;GAGG;AACH,wBAAgB,yBAAyB,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAErF;AAMD;;;;;;GAMG;AACH,qBAAa,oBAAoB;IACzB,OAAO,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,GAAE,oBAAyB,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAsBhG,uFAAuF;cACvE,YAAY,CAC1B,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,cAAc,EACvB,YAAY,CAAC,EAAE,kBAAkB,GAChC,OAAO,CAAC,OAAO,GAAG,SAAS,CAAC;cAqBf,wBAAwB,CACtC,UAAU,EAAE,MAAM,EAClB,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,cAAc,EACvB,YAAY,CAAC,EAAE,kBAAkB,GAChC,OAAO,CAAC,aAAa,GAAG,SAAS,CAAC;IAOrC,SAAS,CAAC,UAAU,CAAC,MAAM,EAAE,kBAAkB,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAOxF,2FAA2F;cAC3E,cAAc,CAC5B,MAAM,EAAE,kBAAkB,GAAG,SAAS,EACtC,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,yBAAyB,EACpC,OAAO,EAAE,cAAc,EACvB,GAAG,CAAC,EAAE,MAAM,GACX,OAAO,CAAC,QAAQ,GAAG,SAAS,CAAC;cAgChB,eAAe,CAC7B,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,MAAM,EAClB,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,cAAc,GACtB,OAAO,CAAC,QAAQ,GAAG,SAAS,CAAC;cA2ChB,aAAa,CAC3B,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,MAAM,EAClB,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,cAAc,GACtB,OAAO,CAAC,QAAQ,GAAG,SAAS,CAAC;CAmDjC"}
@@ -1 +1 @@
1
- {"version":3,"file":"XyoDnsRecords.d.ts","sourceRoot":"","sources":["../../../src/Resolution/XyoDnsRecords.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,IAAI,EAAU,MAAM,gBAAgB,CAAA;AAClD,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAA;AAE7D;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,6FAA6F;IAC7F,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,uFAAuF;IACvF,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,yEAAyE;IACzE,YAAY,EAAE,IAAI,EAAE,CAAA;IACpB,sFAAsF;IACtF,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CAChC;AAID;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAMrD;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,CAAC,EAAE,qBAAqB,EAAE,GAAG,aAAa,CAoCnF"}
1
+ {"version":3,"file":"XyoDnsRecords.d.ts","sourceRoot":"","sources":["../../../src/Resolution/XyoDnsRecords.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,IAAI,EAAU,MAAM,gBAAgB,CAAA;AAClD,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAA;AAE7D;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,6FAA6F;IAC7F,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,uFAAuF;IACvF,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,yEAAyE;IACzE,YAAY,EAAE,IAAI,EAAE,CAAA;IACpB,sFAAsF;IACtF,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CAChC;AAID;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAOrD;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,CAAC,EAAE,qBAAqB,EAAE,GAAG,aAAa,CAoCnF"}
@@ -1,6 +1,5 @@
1
1
  import { type Hash } from '@xylabs/sdk-js';
2
2
  import type { FetchedPayload } from '@xyo-network/huri';
3
- import type { NetworkPayload } from '@xyo-network/network';
4
3
  import { PayloadWrapper } from '@xyo-network/payload-wrapper';
5
4
  import type { DomainConfigPayload } from './DomainConfigPayload.ts';
6
5
  import { type Alias, type DomainPayload } from './Payload.ts';
@@ -9,7 +8,9 @@ export interface FetchedAlias extends FetchedPayload {
9
8
  }
10
9
  export declare class DomainPayloadWrapper<T extends DomainPayload | DomainConfigPayload = DomainPayload> extends PayloadWrapper<T> {
11
10
  aliases?: FetchedAlias[] | null;
12
- static discover(reverseDomainName: string, proxy?: string): Promise<DomainPayloadWrapper<{
11
+ static discover(reverseDomainName: string, proxy?: string): Promise<DomainPayloadWrapper<(import("@xyo-network/payload-model").PayloadFields & {
12
+ schema: import("@xyo-network/payload-model").Schema;
13
+ } & Partial<import("@xyo-network/payload-model").PayloadMetaFields> & {
13
14
  schema: "network.xyo.domain" & {
14
15
  readonly __schema: true;
15
16
  };
@@ -18,12 +19,29 @@ export declare class DomainPayloadWrapper<T extends DomainPayload | DomainConfig
18
19
  huri: string;
19
20
  name?: string | undefined;
20
21
  }> | undefined;
21
- networks?: NetworkPayload[] | undefined;
22
+ networks?: {
23
+ schema: "network.xyo.network" & {
24
+ readonly __schema: true;
25
+ };
26
+ slug: string;
27
+ name?: string | undefined;
28
+ nodes?: {
29
+ schema: "network.xyo.network.node" & {
30
+ readonly __schema: true;
31
+ };
32
+ slug: string;
33
+ type: "archivist" | "diviner" | "bridge" | "sentinel";
34
+ uri: string;
35
+ docs?: string | undefined;
36
+ name?: string | undefined;
37
+ web?: string | undefined;
38
+ }[] | undefined;
39
+ }[] | undefined;
22
40
  schemas?: Record<string, string | {
23
41
  [x: string]: unknown;
24
42
  $id?: string | undefined;
25
43
  }> | undefined;
26
- } | (import("@xyo-network/payload-model").PayloadFields & {
44
+ }) | (import("@xyo-network/payload-model").PayloadFields & {
27
45
  schema: import("@xyo-network/payload-model").Schema;
28
46
  } & Partial<import("@xyo-network/payload-model").PayloadMetaFields> & {
29
47
  schema: "network.xyo.domain.config" & {
@@ -34,13 +52,63 @@ export declare class DomainPayloadWrapper<T extends DomainPayload | DomainConfig
34
52
  huri: string;
35
53
  name?: string | undefined;
36
54
  }> | undefined;
37
- networks?: NetworkPayload[] | undefined;
55
+ networks?: {
56
+ schema: "network.xyo.network" & {
57
+ readonly __schema: true;
58
+ };
59
+ slug: string;
60
+ name?: string | undefined;
61
+ nodes?: {
62
+ schema: "network.xyo.network.node" & {
63
+ readonly __schema: true;
64
+ };
65
+ slug: string;
66
+ type: "archivist" | "diviner" | "bridge" | "sentinel";
67
+ uri: string;
68
+ docs?: string | undefined;
69
+ name?: string | undefined;
70
+ web?: string | undefined;
71
+ }[] | undefined;
72
+ }[] | undefined;
38
73
  schemas?: Record<string, string | {
39
74
  [x: string]: unknown;
40
75
  $id?: string | undefined;
41
76
  }> | undefined;
42
- })> | undefined>;
43
- static discoverDNSEntry(domain: string): Promise<DomainPayloadWrapper<{
77
+ })> | DomainPayloadWrapper<{
78
+ schema: "network.xyo.domain" & {
79
+ readonly __schema: true;
80
+ };
81
+ additional?: string[] | undefined;
82
+ aliases?: Record<string, {
83
+ huri: string;
84
+ name?: string | undefined;
85
+ }> | undefined;
86
+ networks?: {
87
+ schema: "network.xyo.network" & {
88
+ readonly __schema: true;
89
+ };
90
+ slug: string;
91
+ name?: string | undefined;
92
+ nodes?: {
93
+ schema: "network.xyo.network.node" & {
94
+ readonly __schema: true;
95
+ };
96
+ slug: string;
97
+ type: "archivist" | "diviner" | "bridge" | "sentinel";
98
+ uri: string;
99
+ docs?: string | undefined;
100
+ name?: string | undefined;
101
+ web?: string | undefined;
102
+ }[] | undefined;
103
+ }[] | undefined;
104
+ schemas?: Record<string, string | {
105
+ [x: string]: unknown;
106
+ $id?: string | undefined;
107
+ }> | undefined;
108
+ }> | undefined>;
109
+ static discoverDNSEntry(domain: string): Promise<DomainPayloadWrapper<(import("@xyo-network/payload-model").PayloadFields & {
110
+ schema: import("@xyo-network/payload-model").Schema;
111
+ } & Partial<import("@xyo-network/payload-model").PayloadMetaFields> & {
44
112
  schema: "network.xyo.domain" & {
45
113
  readonly __schema: true;
46
114
  };
@@ -49,12 +117,29 @@ export declare class DomainPayloadWrapper<T extends DomainPayload | DomainConfig
49
117
  huri: string;
50
118
  name?: string | undefined;
51
119
  }> | undefined;
52
- networks?: NetworkPayload[] | undefined;
120
+ networks?: {
121
+ schema: "network.xyo.network" & {
122
+ readonly __schema: true;
123
+ };
124
+ slug: string;
125
+ name?: string | undefined;
126
+ nodes?: {
127
+ schema: "network.xyo.network.node" & {
128
+ readonly __schema: true;
129
+ };
130
+ slug: string;
131
+ type: "archivist" | "diviner" | "bridge" | "sentinel";
132
+ uri: string;
133
+ docs?: string | undefined;
134
+ name?: string | undefined;
135
+ web?: string | undefined;
136
+ }[] | undefined;
137
+ }[] | undefined;
53
138
  schemas?: Record<string, string | {
54
139
  [x: string]: unknown;
55
140
  $id?: string | undefined;
56
141
  }> | undefined;
57
- } | (import("@xyo-network/payload-model").PayloadFields & {
142
+ }) | (import("@xyo-network/payload-model").PayloadFields & {
58
143
  schema: import("@xyo-network/payload-model").Schema;
59
144
  } & Partial<import("@xyo-network/payload-model").PayloadMetaFields> & {
60
145
  schema: "network.xyo.domain.config" & {
@@ -65,7 +150,24 @@ export declare class DomainPayloadWrapper<T extends DomainPayload | DomainConfig
65
150
  huri: string;
66
151
  name?: string | undefined;
67
152
  }> | undefined;
68
- networks?: NetworkPayload[] | undefined;
153
+ networks?: {
154
+ schema: "network.xyo.network" & {
155
+ readonly __schema: true;
156
+ };
157
+ slug: string;
158
+ name?: string | undefined;
159
+ nodes?: {
160
+ schema: "network.xyo.network.node" & {
161
+ readonly __schema: true;
162
+ };
163
+ slug: string;
164
+ type: "archivist" | "diviner" | "bridge" | "sentinel";
165
+ uri: string;
166
+ docs?: string | undefined;
167
+ name?: string | undefined;
168
+ web?: string | undefined;
169
+ }[] | undefined;
170
+ }[] | undefined;
69
171
  schemas?: Record<string, string | {
70
172
  [x: string]: unknown;
71
173
  $id?: string | undefined;
@@ -80,7 +182,24 @@ export declare class DomainPayloadWrapper<T extends DomainPayload | DomainConfig
80
182
  huri: string;
81
183
  name?: string | undefined;
82
184
  }> | undefined;
83
- networks?: NetworkPayload[] | undefined;
185
+ networks?: {
186
+ schema: "network.xyo.network" & {
187
+ readonly __schema: true;
188
+ };
189
+ slug: string;
190
+ name?: string | undefined;
191
+ nodes?: {
192
+ schema: "network.xyo.network.node" & {
193
+ readonly __schema: true;
194
+ };
195
+ slug: string;
196
+ type: "archivist" | "diviner" | "bridge" | "sentinel";
197
+ uri: string;
198
+ docs?: string | undefined;
199
+ name?: string | undefined;
200
+ web?: string | undefined;
201
+ }[] | undefined;
202
+ }[] | undefined;
84
203
  schemas?: Record<string, string | {
85
204
  [x: string]: unknown;
86
205
  $id?: string | undefined;
@@ -95,7 +214,24 @@ export declare class DomainPayloadWrapper<T extends DomainPayload | DomainConfig
95
214
  huri: string;
96
215
  name?: string | undefined;
97
216
  }> | undefined;
98
- networks?: NetworkPayload[] | undefined;
217
+ networks?: {
218
+ schema: "network.xyo.network" & {
219
+ readonly __schema: true;
220
+ };
221
+ slug: string;
222
+ name?: string | undefined;
223
+ nodes?: {
224
+ schema: "network.xyo.network.node" & {
225
+ readonly __schema: true;
226
+ };
227
+ slug: string;
228
+ type: "archivist" | "diviner" | "bridge" | "sentinel";
229
+ uri: string;
230
+ docs?: string | undefined;
231
+ name?: string | undefined;
232
+ web?: string | undefined;
233
+ }[] | undefined;
234
+ }[] | undefined;
99
235
  schemas?: Record<string, string | {
100
236
  [x: string]: unknown;
101
237
  $id?: string | undefined;
@@ -110,16 +246,33 @@ export declare class DomainPayloadWrapper<T extends DomainPayload | DomainConfig
110
246
  huri: string;
111
247
  name?: string | undefined;
112
248
  }> | undefined;
113
- networks?: NetworkPayload[] | undefined;
249
+ networks?: {
250
+ schema: "network.xyo.network" & {
251
+ readonly __schema: true;
252
+ };
253
+ slug: string;
254
+ name?: string | undefined;
255
+ nodes?: {
256
+ schema: "network.xyo.network.node" & {
257
+ readonly __schema: true;
258
+ };
259
+ slug: string;
260
+ type: "archivist" | "diviner" | "bridge" | "sentinel";
261
+ uri: string;
262
+ docs?: string | undefined;
263
+ name?: string | undefined;
264
+ web?: string | undefined;
265
+ }[] | undefined;
266
+ }[] | undefined;
114
267
  schemas?: Record<string, string | {
115
268
  [x: string]: unknown;
116
269
  $id?: string | undefined;
117
270
  }> | undefined;
118
271
  }> | undefined>;
119
- fetch(networkSlug?: Hash): Promise<void>;
120
- fetchAliases(networkSlug?: Hash): Promise<void>;
121
272
  private fetchAlias;
122
273
  private findArchivistUri;
123
274
  private getNetwork;
275
+ fetch(networkSlug?: Hash): Promise<void>;
276
+ fetchAliases(networkSlug?: Hash): Promise<void>;
124
277
  }
125
278
  //# sourceMappingURL=Wrapper.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Wrapper.d.ts","sourceRoot":"","sources":["../../src/Wrapper.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,IAAI,EAAU,MAAM,gBAAgB,CAAA;AAGlD,OAAO,KAAK,EAAE,cAAc,EAAe,MAAM,mBAAmB,CAAA;AAEpE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AAE1D,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAA;AAE7D,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAA;AAEnE,OAAO,EACL,KAAK,KAAK,EAAE,KAAK,aAAa,EAC/B,MAAM,cAAc,CAAA;AAGrB,MAAM,WAAW,YAAa,SAAQ,cAAc;IAClD,KAAK,EAAE,KAAK,CAAA;CACb;AAED,qBAAa,oBAAoB,CAAC,CAAC,SAAS,aAAa,GAAG,mBAAmB,GAAG,aAAa,CAAE,SAAQ,cAAc,CAAC,CAAC,CAAC;IACxH,OAAO,CAAC,EAAE,YAAY,EAAE,GAAG,IAAI,CAAA;WAElB,QAAQ,CAAC,iBAAiB,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;WAWlD,gBAAgB,CAAC,MAAM,EAAE,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;WAkB/B,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM;;;;;;;;;;;;;;;WAO/C,sBAAsB,CAAC,MAAM,EAAE,MAAM;;;;;;;;;;;;;;;WAcrC,yBAAyB,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,SAA6C;;;;;;;;;;;;;;;IAanG,KAAK,CAAC,WAAW,CAAC,EAAE,IAAI;IAIxB,YAAY,CAAC,WAAW,CAAC,EAAE,IAAI;YAgBvB,UAAU;YAUV,gBAAgB;YAIhB,UAAU;CAGzB"}
1
+ {"version":3,"file":"Wrapper.d.ts","sourceRoot":"","sources":["../../src/Wrapper.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,IAAI,EAAU,MAAM,gBAAgB,CAAA;AAGlD,OAAO,KAAK,EAAE,cAAc,EAAe,MAAM,mBAAmB,CAAA;AAIpE,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAA;AAE7D,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAA;AAEnE,OAAO,EACL,KAAK,KAAK,EAAE,KAAK,aAAa,EAC/B,MAAM,cAAc,CAAA;AAGrB,MAAM,WAAW,YAAa,SAAQ,cAAc;IAClD,KAAK,EAAE,KAAK,CAAA;CACb;AAED,qBAAa,oBAAoB,CAAC,CAAC,SAAS,aAAa,GAAG,mBAAmB,GAAG,aAAa,CAAE,SAAQ,cAAc,CAAC,CAAC,CAAC;IACxH,OAAO,CAAC,EAAE,YAAY,EAAE,GAAG,IAAI,CAAA;WAElB,QAAQ,CAAC,iBAAiB,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;WAWlD,gBAAgB,CAAC,MAAM,EAAE,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;WAkB/B,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;WAO/C,sBAAsB,CAAC,MAAM,EAAE,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;WAcrC,yBAAyB,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,SAA6C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;YAa3F,UAAU;YAUV,gBAAgB;YAKhB,UAAU;IAIlB,KAAK,CAAC,WAAW,CAAC,EAAE,IAAI;IAIxB,YAAY,CAAC,WAAW,CAAC,EAAE,IAAI;CAetC"}
@@ -1,8 +1,8 @@
1
1
  // src/DomainConfigPayload.ts
2
2
  import {
3
- zodAsFactory,
4
- zodIsFactory,
5
- zodToFactory
3
+ zodAsFactory as zodAsFactory2,
4
+ zodIsFactory as zodIsFactory2,
5
+ zodToFactory as zodToFactory2
6
6
  } from "@xylabs/sdk-js";
7
7
  import { PayloadZodOfSchema as PayloadZodOfSchema2 } from "@xyo-network/payload-model";
8
8
  import * as z2 from "zod/mini";
@@ -12,7 +12,12 @@ import { asSchema } from "@xyo-network/payload-model";
12
12
  var DomainConfigSchema = asSchema("network.xyo.domain.config", true);
13
13
 
14
14
  // src/Payload.ts
15
- import { isPayloadOfSchemaType, PayloadZodOfSchema } from "@xyo-network/payload-model";
15
+ import {
16
+ zodAsFactory,
17
+ zodIsFactory,
18
+ zodToFactory
19
+ } from "@xylabs/sdk-js";
20
+ import { PayloadZodOfSchema } from "@xyo-network/payload-model";
16
21
  import * as z from "zod/mini";
17
22
 
18
23
  // src/Schema.ts
@@ -28,24 +33,32 @@ var AliasZod = z.object({
28
33
  });
29
34
  var SchemaDefinitionZod = z.looseObject({ $id: z.optional(z.string()) });
30
35
  var SchemaMapEntryZod = z.union([z.string(), SchemaDefinitionZod]);
36
+ var stringZod = z.string();
37
+ var optionalStringArrayZod = z.optional(z.array(stringZod));
38
+ var optionalAliasRecordZod = z.optional(z.record(stringZod, AliasZod));
39
+ var networkPayloadZod = z.custom();
40
+ var optionalNetworkPayloadArrayZod = z.optional(z.array(networkPayloadZod));
41
+ var optionalSchemaMapEntryRecordZod = z.optional(z.record(stringZod, SchemaMapEntryZod));
31
42
  var DomainConfigFieldsZod = z.object({
32
43
  /** Additional config files [huri] [out] */
33
- additional: z.optional(z.array(z.string())),
44
+ additional: optionalStringArrayZod,
34
45
  /** Values associated with this domain [out] */
35
- aliases: z.optional(z.record(z.string(), AliasZod)),
46
+ aliases: optionalAliasRecordZod,
36
47
  /** Known networks [out] */
37
- networks: z.optional(z.array(z.custom())),
48
+ networks: optionalNetworkPayloadArrayZod,
38
49
  /** Official schemas published by this domain, keyed by schema name [out] */
39
- schemas: z.optional(z.record(z.string(), SchemaMapEntryZod))
50
+ schemas: optionalSchemaMapEntryRecordZod
40
51
  });
41
52
  var DomainPayloadZod = z.extend(PayloadZodOfSchema(DomainSchema), DomainConfigFieldsZod.shape);
42
- var isDomainPayload = isPayloadOfSchemaType(DomainSchema);
53
+ var isDomainPayload = zodIsFactory(DomainPayloadZod);
54
+ var asDomainPayload = zodAsFactory(DomainPayloadZod, "asDomainPayload");
55
+ var toDomainPayload = zodToFactory(DomainPayloadZod, "toDomainPayload");
43
56
 
44
57
  // src/DomainConfigPayload.ts
45
58
  var DomainConfigPayloadZod = z2.extend(PayloadZodOfSchema2(DomainConfigSchema), DomainConfigFieldsZod.shape);
46
- var isDomainConfigPayload = zodIsFactory(DomainConfigPayloadZod);
47
- var asDomainConfigPayload = zodAsFactory(DomainConfigPayloadZod, "asDomainConfigPayload");
48
- var toDomainConfigPayload = zodToFactory(DomainConfigPayloadZod, "toDomainConfigPayload");
59
+ var isDomainConfigPayload = zodIsFactory2(DomainConfigPayloadZod);
60
+ var asDomainConfigPayload = zodAsFactory2(DomainConfigPayloadZod, "asDomainConfigPayload");
61
+ var toDomainConfigPayload = zodToFactory2(DomainConfigPayloadZod, "toDomainConfigPayload");
49
62
 
50
63
  // src/DomainConfigPlugin.ts
51
64
  import { createPayloadPlugin } from "@xyo-network/payload-plugin";
@@ -115,12 +128,13 @@ var SCHEMA_KEY_PREFIX = "schema.";
115
128
  function normalizeTxtData(data) {
116
129
  const trimmed = data.trim();
117
130
  if (trimmed.includes('"')) {
118
- return [...trimmed.matchAll(/"([^"]*)"/g)].map((match) => match[1]).join("") || trimmed;
131
+ const quotedParts = Array.from(trimmed.matchAll(/"([^"]*)"/g), (match) => match[1]);
132
+ return quotedParts.join("") || trimmed;
119
133
  }
120
134
  return trimmed;
121
135
  }
122
136
  function parseXyoTxtRecords(answers) {
123
- const entries = (answers ?? []).map((answer) => answer.data).filter((data) => typeof data === "string").map(normalizeTxtData).toSorted();
137
+ const entries = (answers ?? []).map((answer) => answer.data).filter((data) => typeof data === "string").map(normalizeTxtData).toSorted((left, right) => left.localeCompare(right));
124
138
  const records = { legacyHashes: [], schemas: {} };
125
139
  for (const entry of entries) {
126
140
  if (isHash(entry)) {
@@ -164,8 +178,8 @@ var DomainPayloadWrapper = class _DomainPayloadWrapper extends PayloadWrapper {
164
178
  }
165
179
  static async discoverDNSEntry(domain) {
166
180
  try {
167
- const answers = (await domainResolve(`_xyo.${domain}`, DnsRecordType.TXT))?.Answer;
168
- const records = parseXyoTxtRecords(answers);
181
+ const { Answer } = await domainResolve(`_xyo.${domain}`, DnsRecordType.TXT) ?? {};
182
+ const records = parseXyoTxtRecords(Answer);
169
183
  const candidates = [records.config, ...records.legacyHashes].filter((element) => isString(element));
170
184
  for (const candidate of candidates) {
171
185
  const huri = new Huri(candidate);
@@ -206,21 +220,6 @@ var DomainPayloadWrapper = class _DomainPayloadWrapper extends PayloadWrapper {
206
220
  console.log(`DomainConfig root file not found using proxy [${domain}] [${status}]`);
207
221
  }
208
222
  }
209
- async fetch(networkSlug) {
210
- await this.fetchAliases(networkSlug);
211
- }
212
- async fetchAliases(networkSlug) {
213
- this.aliases = null;
214
- const archivistUri = await this.findArchivistUri(networkSlug);
215
- if (this.payload.aliases) {
216
- const fetchedAliases = await Promise.all(
217
- Object.entries(this.payload.aliases ?? {}).map(([, alias]) => {
218
- return this.fetchAlias(alias, { archivistUri });
219
- })
220
- );
221
- this.aliases = fetchedAliases.filter(Boolean);
222
- }
223
- }
224
223
  async fetchAlias(alias, huriOptions) {
225
224
  const huri = new Huri(alias.huri, huriOptions);
226
225
  const payload = await huri.fetch();
@@ -231,11 +230,27 @@ var DomainPayloadWrapper = class _DomainPayloadWrapper extends PayloadWrapper {
231
230
  } : null;
232
231
  }
233
232
  async findArchivistUri(hash) {
234
- return (await this.getNetwork(hash))?.nodes?.find((payload) => payload.type === "archivist" ? payload : void 0)?.uri;
233
+ const network = await this.getNetwork(hash);
234
+ return network?.nodes?.find((payload) => payload.type === "archivist" ? payload : void 0)?.uri;
235
235
  }
236
236
  async getNetwork(hash) {
237
237
  return isHash2(hash) ? await PayloadBuilder.findByDataHash(this.payload.networks, hash) : this.payload.networks?.[0];
238
238
  }
239
+ async fetch(networkSlug) {
240
+ await this.fetchAliases(networkSlug);
241
+ }
242
+ async fetchAliases(networkSlug) {
243
+ this.aliases = null;
244
+ const archivistUri = await this.findArchivistUri(networkSlug);
245
+ if (this.payload.aliases) {
246
+ const fetchedAliases = await Promise.all(
247
+ Object.values(this.payload.aliases ?? {}).map((alias) => {
248
+ return this.fetchAlias(alias, { archivistUri });
249
+ })
250
+ );
251
+ this.aliases = fetchedAliases.filter(Boolean);
252
+ }
253
+ }
239
254
  };
240
255
 
241
256
  // src/Plugin.ts
@@ -347,11 +362,12 @@ var DomainSchemaResolver = class {
347
362
  if (isString2(hash)) {
348
363
  const payload = await this.fetchSchemaPayloadByHash(hash, schemaName, context, fields);
349
364
  if (payload) {
365
+ const huri = new Huri2(hash);
350
366
  return {
351
367
  payload,
352
368
  source: {
353
369
  domain,
354
- hash: new Huri2(hash).hash,
370
+ hash: huri.hash,
355
371
  mechanism,
356
372
  url
357
373
  }
@@ -401,11 +417,12 @@ var DomainSchemaResolver = class {
401
417
  if (isString2(schemaHash)) {
402
418
  const payload = await this.fetchSchemaPayloadByHash(schemaHash, schemaName, context);
403
419
  if (payload) {
420
+ const huri = new Huri2(schemaHash);
404
421
  return {
405
422
  payload,
406
423
  source: {
407
424
  domain,
408
- hash: new Huri2(schemaHash).hash,
425
+ hash: huri.hash,
409
426
  mechanism: "dns-schema"
410
427
  }
411
428
  };
@@ -452,6 +469,7 @@ export {
452
469
  SchemaDefinitionZod,
453
470
  SchemaMapEntryZod,
454
471
  asDomainConfigPayload,
472
+ asDomainPayload,
455
473
  candidateDomains,
456
474
  DomainPayloadPlugin as default,
457
475
  domainConfigPayloadTemplate,
@@ -461,6 +479,7 @@ export {
461
479
  isSchemaInDomainNamespace,
462
480
  normalizeTxtData,
463
481
  parseXyoTxtRecords,
464
- toDomainConfigPayload
482
+ toDomainConfigPayload,
483
+ toDomainPayload
465
484
  };
466
485
  //# sourceMappingURL=index.mjs.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/DomainConfigPayload.ts", "../../src/DomainConfigSchema.ts", "../../src/Payload.ts", "../../src/Schema.ts", "../../src/DomainConfigPlugin.ts", "../../src/DomainConfigTemplate.ts", "../../src/Plugin.ts", "../../src/Template.ts", "../../src/Wrapper.ts", "../../src/Resolution/XyoDnsRecords.ts", "../../src/Resolution/DomainSchemaResolver.ts"],
4
- "sourcesContent": ["import {\n zodAsFactory, zodIsFactory, zodToFactory,\n} from '@xylabs/sdk-js'\nimport { PayloadZodOfSchema } from '@xyo-network/payload-model'\nimport * as z from 'zod/mini'\n\nimport { DomainConfigSchema } from './DomainConfigSchema.ts'\nimport { DomainConfigFieldsZod } from './Payload.ts'\n\n/**\n * A domain's xyo config stored as an on-network payload, so it can be referenced from a\n * DNS TXT record by hash (config={hash}). Shares its field set with DomainPayload.\n */\nexport const DomainConfigPayloadZod = z.extend(PayloadZodOfSchema(DomainConfigSchema), DomainConfigFieldsZod.shape)\nexport type DomainConfigPayload = z.infer<typeof DomainConfigPayloadZod>\n\nexport const isDomainConfigPayload = zodIsFactory(DomainConfigPayloadZod)\nexport const asDomainConfigPayload = zodAsFactory(DomainConfigPayloadZod, 'asDomainConfigPayload')\nexport const toDomainConfigPayload = zodToFactory(DomainConfigPayloadZod, 'toDomainConfigPayload')\n", "import { asSchema } from '@xyo-network/payload-model'\n\nexport const DomainConfigSchema = asSchema('network.xyo.domain.config', true)\nexport type DomainConfigSchema = typeof DomainConfigSchema\n", "import type { NetworkPayload } from '@xyo-network/network'\nimport { isPayloadOfSchemaType, PayloadZodOfSchema } from '@xyo-network/payload-model'\nimport * as z from 'zod/mini'\n\nimport { DomainSchema } from './Schema.ts'\n\nexport const AliasZod = z.object({\n /** huri to the aliased payload */\n huri: z.string(),\n /** canonical name (ex. network.xyo.example) */\n name: z.optional(z.string()),\n})\nexport type Alias = z.infer<typeof AliasZod>\n\n/**\n * An inline JSON Schema (draft-07) definition body. If $id is present it must equal the\n * schemas map key; resolvers overwrite $id from the key (the key is authoritative).\n */\nexport const SchemaDefinitionZod = z.looseObject({ $id: z.optional(z.string()) })\nexport type SchemaDefinition = z.infer<typeof SchemaDefinitionZod>\n\n/**\n * One entry in the schemas map: a string is a hash (or HURI href) of a\n * network.xyo.schema payload; an object is an inline JSON Schema definition.\n */\nexport const SchemaMapEntryZod = z.union([z.string(), SchemaDefinitionZod])\nexport type SchemaMapEntry = z.infer<typeof SchemaMapEntryZod>\n\nexport const DomainConfigFieldsZod = z.object({\n /** Additional config files [huri] [out] */\n additional: z.optional(z.array(z.string())),\n /** Values associated with this domain [out] */\n aliases: z.optional(z.record(z.string(), AliasZod)),\n /** Known networks [out] */\n networks: z.optional(z.array(z.custom<NetworkPayload>())),\n /** Official schemas published by this domain, keyed by schema name [out] */\n schemas: z.optional(z.record(z.string(), SchemaMapEntryZod)),\n})\nexport type DomainConfigFields = z.infer<typeof DomainConfigFieldsZod>\n\nexport const DomainPayloadZod = z.extend(PayloadZodOfSchema(DomainSchema), DomainConfigFieldsZod.shape)\nexport type DomainPayload = z.infer<typeof DomainPayloadZod>\n\n// schema-only legacy guard (not zod-validating) so in-the-wild network.xyo.domain\n// payloads keep passing exactly as they did before the schemas-map extension\nexport const isDomainPayload = isPayloadOfSchemaType<DomainPayload>(DomainSchema)\n", "import { asSchema } from '@xyo-network/payload-model'\n\nexport const DomainSchema = asSchema('network.xyo.domain', true)\nexport type DomainSchema = typeof DomainSchema\n", "import { createPayloadPlugin } from '@xyo-network/payload-plugin'\n\nimport type { DomainConfigPayload } from './DomainConfigPayload.ts'\nimport { DomainConfigPayloadZod } from './DomainConfigPayload.ts'\nimport { DomainConfigSchema } from './DomainConfigSchema.ts'\nimport { domainConfigPayloadTemplate } from './DomainConfigTemplate.ts'\n\nexport const DomainConfigPayloadPlugin = () =>\n createPayloadPlugin<DomainConfigPayload>({\n schema: DomainConfigSchema,\n template: domainConfigPayloadTemplate,\n zod: DomainConfigPayloadZod,\n })\n", "import type { DomainConfigPayload } from './DomainConfigPayload.ts'\nimport { DomainConfigSchema } from './DomainConfigSchema.ts'\n\nexport const domainConfigPayloadTemplate = (): DomainConfigPayload => ({\n schema: DomainConfigSchema,\n schemas: {\n 'com.example.inline': {\n properties: { value: { type: 'string' } },\n type: 'object',\n },\n 'com.example.referenced': '',\n },\n})\n", "import type { Payload } from '@xyo-network/payload-model'\nimport { createPayloadPlugin } from '@xyo-network/payload-plugin'\n\nimport type { DomainPayload } from './Payload.ts'\nimport { DomainSchema } from './Schema.ts'\nimport { domainConfigTemplate } from './Template.ts'\nimport { DomainPayloadWrapper } from './Wrapper.ts'\n\nexport const DomainPayloadPlugin = () =>\n createPayloadPlugin<DomainPayload>({\n schema: DomainSchema,\n template: domainConfigTemplate,\n wrap: (payload: Payload) => DomainPayloadWrapper.wrap(payload as DomainPayload),\n })\n", "import { asSchema } from '@xyo-network/payload-model'\n\nimport type { DomainPayload } from './Payload.ts'\nimport { DomainSchema } from './Schema.ts'\n\nexport const domainConfigTemplate = (): DomainPayload => ({\n aliases: { 'com.example.id': { huri: '' } },\n networks: [\n {\n name: '',\n nodes: [\n {\n name: '',\n schema: asSchema('network.xyo.network.node', true),\n slug: '',\n type: 'archivist',\n uri: '',\n },\n ],\n schema: asSchema('network.xyo.network', true),\n slug: '',\n },\n ],\n schema: DomainSchema,\n})\n", "import {\n Base, FetchClientError, fetchJson, isBrowser,\n isString,\n} from '@xylabs/sdk-js'\nimport { type Hash, isHash } from '@xylabs/sdk-js'\nimport type { ApiEnvelope } from '@xyo-network/api-models'\nimport { DnsRecordType, domainResolve } from '@xyo-network/dns'\nimport type { FetchedPayload, HuriOptions } from '@xyo-network/huri'\nimport { Huri } from '@xyo-network/huri'\nimport type { NetworkPayload } from '@xyo-network/network'\nimport { PayloadBuilder } from '@xyo-network/payload-builder'\nimport { PayloadWrapper } from '@xyo-network/payload-wrapper'\n\nimport type { DomainConfigPayload } from './DomainConfigPayload.ts'\nimport { isDomainConfigPayload } from './DomainConfigPayload.ts'\nimport {\n type Alias, type DomainPayload, isDomainPayload,\n} from './Payload.ts'\nimport { parseXyoTxtRecords } from './Resolution/XyoDnsRecords.ts'\n\nexport interface FetchedAlias extends FetchedPayload {\n alias: Alias\n}\n\nexport class DomainPayloadWrapper<T extends DomainPayload | DomainConfigPayload = DomainPayload> extends PayloadWrapper<T> {\n aliases?: FetchedAlias[] | null\n\n static async discover(reverseDomainName: string, proxy?: string) {\n const parts = reverseDomainName.split('.')\n for (let i = 2; i <= parts.length; i++) {\n const domainToCheck = parts.filter((_, index) => index < i).toReversed().join('.')\n const result = (await this.discoverDNSEntry(domainToCheck)) ?? (await this.discoverRootFile(domainToCheck, proxy))\n if (result) {\n return result\n }\n }\n }\n\n static async discoverDNSEntry(domain: string) {\n try {\n const answers = (await domainResolve(`_xyo.${domain}`, DnsRecordType.TXT))?.Answer\n const records = parseXyoTxtRecords(answers)\n // a config={hash} record takes precedence over legacy bare-hash records (SPEC.md \u00A73.3)\n const candidates = [records.config, ...records.legacyHashes].filter(element => isString(element))\n for (const candidate of candidates) {\n const huri = new Huri(candidate)\n const payload = await huri.fetch()\n if (isDomainPayload(payload) || isDomainConfigPayload(payload)) {\n return new DomainPayloadWrapper(payload)\n }\n }\n } catch {\n Base.defaultLogger?.log(`DomainConfig dns reading error entry not found [${domain}]`)\n }\n }\n\n static async discoverRootFile(domain: string, proxy?: string) {\n // direct fetch first (xyo.json publishers are CORS-enabled per SPEC.md \u00A73.1),\n // then the archivist proxy for browsers or when a proxy is explicitly provided\n return (await this.discoverRootFileDirect(domain))\n ?? (isBrowser() || isString(proxy) ? await this.discoverRootFileWithProxy(domain, proxy) : undefined)\n }\n\n static async discoverRootFileDirect(domain: string) {\n const urls = [`https://${domain}/xyo.json`, `https://xyo.${domain}/`, `https://${domain}/xyo-config.json`]\n for (const url of urls) {\n try {\n const response = await fetchJson<DomainPayload>(url)\n if (response.data) {\n return new DomainPayloadWrapper(response.data)\n }\n } catch {\n console.log(`DomainConfig root file not found [${url}]`)\n }\n }\n }\n\n static async discoverRootFileWithProxy(domain: string, proxy = 'https://api.archivist.xyo.network/domain') {\n try {\n const requestUrl = `${proxy}/${domain.split('.').toReversed().join('.')}`\n const response = await fetchJson<ApiEnvelope<DomainPayload>>(requestUrl)\n if (response.data?.data) {\n return new DomainPayloadWrapper(response.data.data)\n }\n } catch (ex) {\n const status = ex instanceof FetchClientError ? ex.response.status : 'unknown'\n console.log(`DomainConfig root file not found using proxy [${domain}] [${status}]`)\n }\n }\n\n async fetch(networkSlug?: Hash) {\n await this.fetchAliases(networkSlug)\n }\n\n async fetchAliases(networkSlug?: Hash) {\n // set it to null to signify fetch ran\n this.aliases = null\n\n const archivistUri = await this.findArchivistUri(networkSlug)\n if (this.payload.aliases) {\n const fetchedAliases = await Promise.all(\n Object.entries(this.payload.aliases ?? {}).map(([, alias]) => {\n return this.fetchAlias(alias, { archivistUri })\n }),\n )\n // cast to FetchedPayload[] after we filter out any null/undefined entries\n this.aliases = fetchedAliases.filter(Boolean) as FetchedAlias[]\n }\n }\n\n private async fetchAlias(alias: Alias, huriOptions?: HuriOptions): Promise<FetchedAlias | null> {\n const huri = new Huri(alias.huri, huriOptions)\n const payload = await huri.fetch()\n return payload\n ? {\n alias, huri, payload: payload,\n }\n : null\n }\n\n private async findArchivistUri(hash?: Hash): Promise<string | undefined> {\n return (await this.getNetwork(hash))?.nodes?.find(payload => (payload.type === 'archivist' ? payload : undefined))?.uri\n }\n\n private async getNetwork(hash?: Hash): Promise<NetworkPayload | undefined> {\n return isHash(hash) ? await PayloadBuilder.findByDataHash(this.payload.networks, hash) : this.payload.networks?.[0]\n }\n}\n", "import { type Hash, isHash } from '@xylabs/sdk-js'\nimport type { GoogleDnsResultAnswer } from '@xyo-network/dns'\n\n/**\n * The parsed contents of the TXT record set at _xyo.{domain}. See SPEC.md \u00A73.3.\n */\nexport interface XyoDnsRecords {\n /** config={hash-or-huri} \u2014 hash of a network.xyo.domain.config (or legacy domain) payload */\n config?: string\n /** domain={other-domain} \u2014 the named domain is the schema authority for this domain */\n domain?: string\n /** bare 64-hex records \u2014 legacy hashes of network.xyo.domain payloads */\n legacyHashes: Hash[]\n /** schema.{name}={hash-or-huri} \u2014 per-schema hashes of network.xyo.schema payloads */\n schemas: Record<string, string>\n}\n\nconst SCHEMA_KEY_PREFIX = 'schema.'\n\n/**\n * Strip surrounding double quotes and join multi-string TXT data (\"abc\" \"def\" -> abcdef)\n * before grammar matching, per SPEC.md \u00A73.3.\n */\nexport function normalizeTxtData(data: string): string {\n const trimmed = data.trim()\n if (trimmed.includes('\"')) {\n return [...trimmed.matchAll(/\"([^\"]*)\"/g)].map(match => match[1]).join('') || trimmed\n }\n return trimmed\n}\n\n/**\n * Parse the TXT answers from a _xyo.{domain} query into the four record modes. Unknown\n * keys are ignored; duplicates resolve lexicographically-first so results are\n * deterministic regardless of DNS answer order.\n */\nexport function parseXyoTxtRecords(answers?: GoogleDnsResultAnswer[]): XyoDnsRecords {\n const entries = (answers ?? [])\n .map(answer => answer.data)\n .filter((data): data is string => typeof data === 'string')\n .map(normalizeTxtData)\n .toSorted()\n\n const records: XyoDnsRecords = { legacyHashes: [], schemas: {} }\n\n for (const entry of entries) {\n if (isHash(entry)) {\n records.legacyHashes.push(entry)\n } else if (entry.startsWith(SCHEMA_KEY_PREFIX)) {\n const separatorIndex = entry.indexOf('=')\n if (separatorIndex > SCHEMA_KEY_PREFIX.length) {\n const name = entry.slice(SCHEMA_KEY_PREFIX.length, separatorIndex)\n const value = entry.slice(separatorIndex + 1)\n if (name.length > 0 && value.length > 0) {\n records.schemas[name] ??= value\n }\n }\n } else if (entry.startsWith('domain=')) {\n const value = entry.slice('domain='.length)\n if (value.length > 0) {\n records.domain ??= value\n }\n } else if (entry.startsWith('config=')) {\n const value = entry.slice('config='.length)\n if (value.length > 0) {\n records.config ??= value\n }\n }\n // any other key: ignored for forward compatibility\n }\n\n return records\n}\n", "import {\n fetchJson, isBrowser, isString,\n} from '@xylabs/sdk-js'\nimport type { ApiEnvelope } from '@xyo-network/api-models'\nimport { DnsRecordType, domainResolve } from '@xyo-network/dns'\nimport { Huri } from '@xyo-network/huri'\nimport { PayloadBuilder } from '@xyo-network/payload-builder'\nimport type { Payload } from '@xyo-network/payload-model'\nimport type { SchemaPayload } from '@xyo-network/schema-payload-plugin'\nimport { isSchemaPayload, SchemaSchema } from '@xyo-network/schema-payload-plugin'\n\nimport { isDomainConfigPayload } from '../DomainConfigPayload.ts'\nimport type { DomainConfigFields, DomainPayload } from '../Payload.ts'\nimport { isDomainPayload } from '../Payload.ts'\nimport type {\n ResolveSchemaOptions, SchemaResolution, SchemaResolutionMechanism, SchemaResolutionSource,\n} from './SchemaResolution.ts'\nimport { parseXyoTxtRecords } from './XyoDnsRecords.ts'\n\nconst DEFAULT_MAX_INDIRECTION_DEPTH = 3\nconst DEFAULT_PROXY = 'https://api.archivist.xyo.network/domain'\n\ninterface ResolveContext {\n /** at least one mechanism answered cleanly (NXDOMAIN, 404, config without the schema) */\n anyCleanAnswer: boolean\n archivistUri?: string\n proxy?: string\n visited: Set<string>\n}\n\ninterface Resolved {\n payload: SchemaPayload\n source: SchemaResolutionSource\n}\n\n/**\n * The candidate domains for a schema name, shortest first\n * (com.example.foo -> example.com, foo.example.com). See SPEC.md \u00A75.\n */\nexport function candidateDomains(schemaName: string): string[] {\n const parts = schemaName.split('.')\n const domains: string[] = []\n for (let i = 2; i <= parts.length; i++) {\n domains.push(parts.slice(0, i).toReversed().join('.'))\n }\n return domains\n}\n\n/**\n * Whether a schema name falls inside a domain's reverse-domain namespace: the name's\n * leading levels, reversed, equal the domain or a parent of it. See SPEC.md \u00A72.1.\n */\nexport function isSchemaInDomainNamespace(schemaName: string, domain: string): boolean {\n return candidateDomains(schemaName).some(candidate => candidate === domain || domain.endsWith(`.${candidate}`))\n}\n\nfunction isValidSchemaName(schemaName: string): boolean {\n return schemaName.length > 0 && schemaName === schemaName.toLowerCase() && schemaName.split('.').length >= 3\n}\n\n/**\n * Resolves a schema name to the domain-published authoritative schema definition by\n * walking the publication mechanisms in SPEC.md \u00A75: DNS TXT records at _xyo.{domain}\n * (per-schema, config hash, domain indirection, legacy bare hash), then the xyo.json\n * root file, the xyo. subdomain index, and the legacy xyo-config.json (with the\n * archivist proxy as browser fallback).\n */\nexport class DomainSchemaResolver {\n async resolve(schemaName: string, options: ResolveSchemaOptions = {}): Promise<SchemaResolution> {\n if (!isValidSchemaName(schemaName)) {\n return { status: 'not-published' }\n }\n const context: ResolveContext = {\n anyCleanAnswer: false,\n archivistUri: options.archivistUri,\n proxy: options.proxy,\n visited: new Set<string>(),\n }\n const depth = options.maxIndirectionDepth ?? DEFAULT_MAX_INDIRECTION_DEPTH\n for (const domain of candidateDomains(schemaName)) {\n const resolved = await this.resolveAtDomain(domain, schemaName, depth, context)\n if (resolved) {\n return {\n payload: resolved.payload, source: resolved.source, status: 'resolved',\n }\n }\n }\n return { status: context.anyCleanAnswer ? 'not-published' : 'unreachable' }\n }\n\n /** Fetch a payload by hash (or HURI href) and verify it against the referenced hash */\n protected async fetchPayload(\n hashOrHref: string,\n context: ResolveContext,\n configFields?: DomainConfigFields,\n ): Promise<Payload | undefined> {\n try {\n const archivistUri = context.archivistUri ?? findArchivistUri(configFields)\n const huri = new Huri(hashOrHref, { archivistUri })\n const payload = await huri.fetch()\n if (!payload) {\n context.anyCleanAnswer = true\n return undefined\n }\n // content-addressed integrity: the fetched payload must hash to the referenced hash\n if ((await PayloadBuilder.dataHash(payload)) !== huri.hash && (await PayloadBuilder.hash(payload)) !== huri.hash) {\n console.warn(`DomainSchemaResolver: hash mismatch for [${huri.hash}]`)\n context.anyCleanAnswer = true\n return undefined\n }\n return payload\n } catch {\n return undefined\n }\n }\n\n protected async fetchSchemaPayloadByHash(\n hashOrHref: string,\n schemaName: string,\n context: ResolveContext,\n configFields?: DomainConfigFields,\n ): Promise<SchemaPayload | undefined> {\n const payload = await this.fetchPayload(hashOrHref, context, configFields)\n if (isSchemaPayload(payload) && payload.definition.$id === schemaName) {\n return payload\n }\n }\n\n protected lookupHash(fields: DomainConfigFields, schemaName: string): string | undefined {\n const entry = fields.schemas?.[schemaName]\n if (isString(entry)) return entry\n const alias = fields.aliases?.[schemaName]\n if (isString(alias?.huri) && alias.huri.length > 0) return alias.huri\n }\n\n /** Find the schema in a domain config document (schemas map first, then legacy aliases) */\n protected async lookupInConfig(\n fields: DomainConfigFields | undefined,\n schemaName: string,\n domain: string,\n mechanism: SchemaResolutionMechanism,\n context: ResolveContext,\n url?: string,\n ): Promise<Resolved | undefined> {\n if (!fields) return undefined\n context.anyCleanAnswer = true\n // no namespace check here: the lookup key is the schema name being resolved, which\n // is in-namespace for candidate domains by construction, and a domain= delegation\n // intentionally lets the named authority publish the delegator's namespace\n const entry = fields.schemas?.[schemaName]\n if (entry !== undefined && !isString(entry)) {\n // inline definition: the map key is authoritative for $id\n const payload: SchemaPayload = { definition: { ...entry, $id: schemaName }, schema: SchemaSchema }\n return {\n payload,\n source: {\n domain, mechanism, url,\n },\n }\n }\n const hash = this.lookupHash(fields, schemaName)\n if (isString(hash)) {\n const payload = await this.fetchSchemaPayloadByHash(hash, schemaName, context, fields)\n if (payload) {\n return {\n payload,\n source: {\n domain, hash: new Huri(hash).hash, mechanism, url,\n },\n }\n }\n }\n }\n\n protected async resolveAtDomain(\n domain: string,\n schemaName: string,\n depth: number,\n context: ResolveContext,\n ): Promise<Resolved | undefined> {\n if (context.visited.has(domain)) return undefined\n context.visited.add(domain)\n\n // Stage A \u2014 DNS TXT records at _xyo.{domain}\n const dnsResolved = await this.resolveViaDns(domain, schemaName, depth, context)\n if (dnsResolved) return dnsResolved\n\n // Stages B/C/D \u2014 root file, subdomain index, legacy file\n const fileCandidates: [url: string, mechanism: SchemaResolutionMechanism][] = [\n [`https://${domain}/xyo.json`, 'file-root'],\n [`https://xyo.${domain}/`, 'file-subdomain'],\n [`https://${domain}/xyo-config.json`, 'file-legacy'],\n ]\n let anyDirectTransportFailure = false\n for (const [url, mechanism] of fileCandidates) {\n try {\n // fetchJson resolves (data: null) on HTTP error statuses and only throws on\n // transport failures (network down, CORS), so a return is always a clean answer\n const response = await fetchJson<DomainPayload>(url)\n context.anyCleanAnswer = true\n const resolved = await this.lookupInConfig(response.data ?? undefined, schemaName, domain, mechanism, context, url)\n if (resolved) return resolved\n } catch {\n anyDirectTransportFailure = true\n }\n }\n\n // Proxy fallback: always when a proxy is explicitly provided (legacy semantics),\n // or in browsers when direct fetches were blocked (e.g. CORS)\n if (isString(context.proxy) || (isBrowser() && anyDirectTransportFailure)) {\n const url = `${context.proxy ?? DEFAULT_PROXY}/${domain.split('.').toReversed().join('.')}`\n try {\n const response = await fetchJson<ApiEnvelope<DomainPayload>>(url)\n context.anyCleanAnswer = true\n const resolved = await this.lookupInConfig(response.data?.data, schemaName, domain, 'file-proxy', context, url)\n if (resolved) return resolved\n } catch {\n // transport failure: leave anyCleanAnswer untouched\n }\n }\n }\n\n protected async resolveViaDns(\n domain: string,\n schemaName: string,\n depth: number,\n context: ResolveContext,\n ): Promise<Resolved | undefined> {\n try {\n const result = await domainResolve(`_xyo.${domain}`, DnsRecordType.TXT)\n if (!result) return undefined\n context.anyCleanAnswer = true\n const records = parseXyoTxtRecords(result.Answer)\n\n // A1 \u2014 per-schema record\n const schemaHash = records.schemas[schemaName]\n if (isString(schemaHash)) {\n const payload = await this.fetchSchemaPayloadByHash(schemaHash, schemaName, context)\n if (payload) {\n return {\n payload,\n source: {\n domain, hash: new Huri(schemaHash).hash, mechanism: 'dns-schema',\n },\n }\n }\n }\n\n // A2 \u2014 config hash (terminal: the fetched config cannot delegate further)\n if (isString(records.config)) {\n const configPayload = await this.fetchPayload(records.config, context)\n if (isDomainConfigPayload(configPayload) || isDomainPayload(configPayload)) {\n const resolved = await this.lookupInConfig(configPayload, schemaName, domain, 'dns-config', context)\n if (resolved) return resolved\n }\n }\n\n // A3 \u2014 domain indirection\n if (isString(records.domain) && depth > 0 && !context.visited.has(records.domain)) {\n const resolved = await this.resolveAtDomain(records.domain, schemaName, depth - 1, context)\n if (resolved) {\n return { payload: resolved.payload, source: { ...resolved.source, mechanism: 'dns-domain' } }\n }\n }\n\n // A4 \u2014 legacy bare hash of a network.xyo.domain payload\n for (const legacyHash of records.legacyHashes) {\n const legacyPayload = await this.fetchPayload(legacyHash, context)\n if (isDomainPayload(legacyPayload) || isDomainConfigPayload(legacyPayload)) {\n const resolved = await this.lookupInConfig(legacyPayload, schemaName, domain, 'dns-legacy', context)\n if (resolved) return resolved\n }\n }\n } catch {\n // transport error: leave anyCleanAnswer untouched\n }\n }\n}\n\nfunction findArchivistUri(fields?: DomainConfigFields): string | undefined {\n return fields?.networks?.[0]?.nodes?.find(node => node.type === 'archivist')?.uri\n}\n"],
5
- "mappings": "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",
6
- "names": ["PayloadZodOfSchema", "z", "asSchema", "PayloadZodOfSchema", "createPayloadPlugin", "asSchema", "asSchema", "isHash", "isHash", "createPayloadPlugin", "fetchJson", "isBrowser", "isString", "DnsRecordType", "domainResolve", "Huri", "PayloadBuilder", "Huri", "PayloadBuilder", "isString", "fetchJson", "isBrowser", "domainResolve", "DnsRecordType"]
4
+ "sourcesContent": ["import {\n zodAsFactory, zodIsFactory, zodToFactory,\n} from '@xylabs/sdk-js'\nimport { PayloadZodOfSchema } from '@xyo-network/payload-model'\nimport * as z from 'zod/mini'\n\nimport { DomainConfigSchema } from './DomainConfigSchema.ts'\nimport { DomainConfigFieldsZod } from './Payload.ts'\n\n/**\n * A domain's xyo config stored as an on-network payload, so it can be referenced from a\n * DNS TXT record by hash (config={hash}). Shares its field set with DomainPayload.\n */\nexport const DomainConfigPayloadZod = z.extend(PayloadZodOfSchema(DomainConfigSchema), DomainConfigFieldsZod.shape)\nexport type DomainConfigPayload = z.infer<typeof DomainConfigPayloadZod>\n\nexport const isDomainConfigPayload = zodIsFactory(DomainConfigPayloadZod)\nexport const asDomainConfigPayload = zodAsFactory(DomainConfigPayloadZod, 'asDomainConfigPayload')\nexport const toDomainConfigPayload = zodToFactory(DomainConfigPayloadZod, 'toDomainConfigPayload')\n", "import { asSchema } from '@xyo-network/payload-model'\n\nexport const DomainConfigSchema = asSchema('network.xyo.domain.config', true)\nexport type DomainConfigSchema = typeof DomainConfigSchema\n", "import {\n zodAsFactory, zodIsFactory, zodToFactory,\n} from '@xylabs/sdk-js'\nimport type { NetworkPayload } from '@xyo-network/network'\nimport { PayloadZodOfSchema } from '@xyo-network/payload-model'\nimport * as z from 'zod/mini'\n\nimport { DomainSchema } from './Schema.ts'\n\nexport const AliasZod = z.object({\n /** huri to the aliased payload */\n huri: z.string(),\n /** canonical name (ex. network.xyo.example) */\n name: z.optional(z.string()),\n})\nexport type Alias = z.infer<typeof AliasZod>\n\n/**\n * An inline JSON Schema (draft-07) definition body. If $id is present it must equal the\n * schemas map key; resolvers overwrite $id from the key (the key is authoritative).\n */\nexport const SchemaDefinitionZod = z.looseObject({ $id: z.optional(z.string()) })\nexport type SchemaDefinition = z.infer<typeof SchemaDefinitionZod>\n\n/**\n * One entry in the schemas map: a string is a hash (or HURI href) of a\n * network.xyo.schema payload; an object is an inline JSON Schema definition.\n */\nexport const SchemaMapEntryZod = z.union([z.string(), SchemaDefinitionZod])\nexport type SchemaMapEntry = z.infer<typeof SchemaMapEntryZod>\n\nconst stringZod = z.string()\nconst optionalStringArrayZod = z.optional(z.array(stringZod))\nconst optionalAliasRecordZod = z.optional(z.record(stringZod, AliasZod))\nconst networkPayloadZod = z.custom<NetworkPayload>()\nconst optionalNetworkPayloadArrayZod = z.optional(z.array(networkPayloadZod))\nconst optionalSchemaMapEntryRecordZod = z.optional(z.record(stringZod, SchemaMapEntryZod))\n\nexport const DomainConfigFieldsZod = z.object({\n /** Additional config files [huri] [out] */\n additional: optionalStringArrayZod,\n /** Values associated with this domain [out] */\n aliases: optionalAliasRecordZod,\n /** Known networks [out] */\n networks: optionalNetworkPayloadArrayZod,\n /** Official schemas published by this domain, keyed by schema name [out] */\n schemas: optionalSchemaMapEntryRecordZod,\n})\nexport type DomainConfigFields = z.infer<typeof DomainConfigFieldsZod>\n\nexport const DomainPayloadZod = z.extend(PayloadZodOfSchema(DomainSchema), DomainConfigFieldsZod.shape)\nexport type DomainPayload = z.infer<typeof DomainPayloadZod>\n\nexport const isDomainPayload = zodIsFactory(DomainPayloadZod)\nexport const asDomainPayload = zodAsFactory(DomainPayloadZod, 'asDomainPayload')\nexport const toDomainPayload = zodToFactory(DomainPayloadZod, 'toDomainPayload')\n", "import { asSchema } from '@xyo-network/payload-model'\n\nexport const DomainSchema = asSchema('network.xyo.domain', true)\nexport type DomainSchema = typeof DomainSchema\n", "import { createPayloadPlugin } from '@xyo-network/payload-plugin'\n\nimport type { DomainConfigPayload } from './DomainConfigPayload.ts'\nimport { DomainConfigPayloadZod } from './DomainConfigPayload.ts'\nimport { DomainConfigSchema } from './DomainConfigSchema.ts'\nimport { domainConfigPayloadTemplate } from './DomainConfigTemplate.ts'\n\nexport const DomainConfigPayloadPlugin = () =>\n createPayloadPlugin<DomainConfigPayload>({\n schema: DomainConfigSchema,\n template: domainConfigPayloadTemplate,\n zod: DomainConfigPayloadZod,\n })\n", "import type { DomainConfigPayload } from './DomainConfigPayload.ts'\nimport { DomainConfigSchema } from './DomainConfigSchema.ts'\n\nexport const domainConfigPayloadTemplate = (): DomainConfigPayload => ({\n schema: DomainConfigSchema,\n schemas: {\n 'com.example.inline': {\n properties: { value: { type: 'string' } },\n type: 'object',\n },\n 'com.example.referenced': '',\n },\n})\n", "import type { Payload } from '@xyo-network/payload-model'\nimport { createPayloadPlugin } from '@xyo-network/payload-plugin'\n\nimport type { DomainPayload } from './Payload.ts'\nimport { DomainSchema } from './Schema.ts'\nimport { domainConfigTemplate } from './Template.ts'\nimport { DomainPayloadWrapper } from './Wrapper.ts'\n\nexport const DomainPayloadPlugin = () =>\n createPayloadPlugin<DomainPayload>({\n schema: DomainSchema,\n template: domainConfigTemplate,\n wrap: (payload: Payload) => DomainPayloadWrapper.wrap(payload as DomainPayload),\n })\n", "import { asSchema } from '@xyo-network/payload-model'\n\nimport type { DomainPayload } from './Payload.ts'\nimport { DomainSchema } from './Schema.ts'\n\nexport const domainConfigTemplate = (): DomainPayload => ({\n aliases: { 'com.example.id': { huri: '' } },\n networks: [\n {\n name: '',\n nodes: [\n {\n name: '',\n schema: asSchema('network.xyo.network.node', true),\n slug: '',\n type: 'archivist',\n uri: '',\n },\n ],\n schema: asSchema('network.xyo.network', true),\n slug: '',\n },\n ],\n schema: DomainSchema,\n})\n", "import {\n Base, FetchClientError, fetchJson, isBrowser,\n isString,\n} from '@xylabs/sdk-js'\nimport { type Hash, isHash } from '@xylabs/sdk-js'\nimport type { ApiEnvelope } from '@xyo-network/api-models'\nimport { DnsRecordType, domainResolve } from '@xyo-network/dns'\nimport type { FetchedPayload, HuriOptions } from '@xyo-network/huri'\nimport { Huri } from '@xyo-network/huri'\nimport type { NetworkPayload } from '@xyo-network/network'\nimport { PayloadBuilder } from '@xyo-network/payload-builder'\nimport { PayloadWrapper } from '@xyo-network/payload-wrapper'\n\nimport type { DomainConfigPayload } from './DomainConfigPayload.ts'\nimport { isDomainConfigPayload } from './DomainConfigPayload.ts'\nimport {\n type Alias, type DomainPayload, isDomainPayload,\n} from './Payload.ts'\nimport { parseXyoTxtRecords } from './Resolution/XyoDnsRecords.ts'\n\nexport interface FetchedAlias extends FetchedPayload {\n alias: Alias\n}\n\nexport class DomainPayloadWrapper<T extends DomainPayload | DomainConfigPayload = DomainPayload> extends PayloadWrapper<T> {\n aliases?: FetchedAlias[] | null\n\n static async discover(reverseDomainName: string, proxy?: string) {\n const parts = reverseDomainName.split('.')\n for (let i = 2; i <= parts.length; i++) {\n const domainToCheck = parts.filter((_, index) => index < i).toReversed().join('.')\n const result = (await this.discoverDNSEntry(domainToCheck)) ?? (await this.discoverRootFile(domainToCheck, proxy))\n if (result) {\n return result\n }\n }\n }\n\n static async discoverDNSEntry(domain: string) {\n try {\n const { Answer } = (await domainResolve(`_xyo.${domain}`, DnsRecordType.TXT)) ?? {}\n const records = parseXyoTxtRecords(Answer)\n // a config={hash} record takes precedence over legacy bare-hash records (SPEC.md \u00A73.3)\n const candidates = [records.config, ...records.legacyHashes].filter(element => isString(element))\n for (const candidate of candidates) {\n const huri = new Huri(candidate)\n const payload = await huri.fetch()\n if (isDomainPayload(payload) || isDomainConfigPayload(payload)) {\n return new DomainPayloadWrapper(payload)\n }\n }\n } catch {\n Base.defaultLogger?.log(`DomainConfig dns reading error entry not found [${domain}]`)\n }\n }\n\n static async discoverRootFile(domain: string, proxy?: string) {\n // direct fetch first (xyo.json publishers are CORS-enabled per SPEC.md \u00A73.1),\n // then the archivist proxy for browsers or when a proxy is explicitly provided\n return (await this.discoverRootFileDirect(domain))\n ?? (isBrowser() || isString(proxy) ? await this.discoverRootFileWithProxy(domain, proxy) : undefined)\n }\n\n static async discoverRootFileDirect(domain: string) {\n const urls = [`https://${domain}/xyo.json`, `https://xyo.${domain}/`, `https://${domain}/xyo-config.json`]\n for (const url of urls) {\n try {\n const response = await fetchJson<DomainPayload>(url)\n if (response.data) {\n return new DomainPayloadWrapper(response.data)\n }\n } catch {\n console.log(`DomainConfig root file not found [${url}]`)\n }\n }\n }\n\n static async discoverRootFileWithProxy(domain: string, proxy = 'https://api.archivist.xyo.network/domain') {\n try {\n const requestUrl = `${proxy}/${domain.split('.').toReversed().join('.')}`\n const response = await fetchJson<ApiEnvelope<DomainPayload>>(requestUrl)\n if (response.data?.data) {\n return new DomainPayloadWrapper(response.data.data)\n }\n } catch (ex) {\n const status = ex instanceof FetchClientError ? ex.response.status : 'unknown'\n console.log(`DomainConfig root file not found using proxy [${domain}] [${status}]`)\n }\n }\n\n private async fetchAlias(alias: Alias, huriOptions?: HuriOptions): Promise<FetchedAlias | null> {\n const huri = new Huri(alias.huri, huriOptions)\n const payload = await huri.fetch()\n return payload\n ? {\n alias, huri, payload: payload,\n }\n : null\n }\n\n private async findArchivistUri(hash?: Hash): Promise<string | undefined> {\n const network = await this.getNetwork(hash)\n return network?.nodes?.find(payload => (payload.type === 'archivist' ? payload : undefined))?.uri\n }\n\n private async getNetwork(hash?: Hash): Promise<NetworkPayload | undefined> {\n return isHash(hash) ? await PayloadBuilder.findByDataHash(this.payload.networks, hash) : this.payload.networks?.[0]\n }\n\n async fetch(networkSlug?: Hash) {\n await this.fetchAliases(networkSlug)\n }\n\n async fetchAliases(networkSlug?: Hash) {\n // set it to null to signify fetch ran\n this.aliases = null\n\n const archivistUri = await this.findArchivistUri(networkSlug)\n if (this.payload.aliases) {\n const fetchedAliases = await Promise.all(\n Object.values(this.payload.aliases ?? {}).map((alias) => {\n return this.fetchAlias(alias, { archivistUri })\n }),\n )\n // cast to FetchedPayload[] after we filter out any null/undefined entries\n this.aliases = fetchedAliases.filter(Boolean) as FetchedAlias[]\n }\n }\n}\n", "import { type Hash, isHash } from '@xylabs/sdk-js'\nimport type { GoogleDnsResultAnswer } from '@xyo-network/dns'\n\n/**\n * The parsed contents of the TXT record set at _xyo.{domain}. See SPEC.md \u00A73.3.\n */\nexport interface XyoDnsRecords {\n /** config={hash-or-huri} \u2014 hash of a network.xyo.domain.config (or legacy domain) payload */\n config?: string\n /** domain={other-domain} \u2014 the named domain is the schema authority for this domain */\n domain?: string\n /** bare 64-hex records \u2014 legacy hashes of network.xyo.domain payloads */\n legacyHashes: Hash[]\n /** schema.{name}={hash-or-huri} \u2014 per-schema hashes of network.xyo.schema payloads */\n schemas: Record<string, string>\n}\n\nconst SCHEMA_KEY_PREFIX = 'schema.'\n\n/**\n * Strip surrounding double quotes and join multi-string TXT data (\"abc\" \"def\" -> abcdef)\n * before grammar matching, per SPEC.md \u00A73.3.\n */\nexport function normalizeTxtData(data: string): string {\n const trimmed = data.trim()\n if (trimmed.includes('\"')) {\n const quotedParts = Array.from(trimmed.matchAll(/\"([^\"]*)\"/g), (match: RegExpMatchArray): string => match[1])\n return quotedParts.join('') || trimmed\n }\n return trimmed\n}\n\n/**\n * Parse the TXT answers from a _xyo.{domain} query into the four record modes. Unknown\n * keys are ignored; duplicates resolve lexicographically-first so results are\n * deterministic regardless of DNS answer order.\n */\nexport function parseXyoTxtRecords(answers?: GoogleDnsResultAnswer[]): XyoDnsRecords {\n const entries = (answers ?? [])\n .map(answer => answer.data)\n .filter((data): data is string => typeof data === 'string')\n .map(normalizeTxtData)\n .toSorted((left, right) => left.localeCompare(right))\n\n const records: XyoDnsRecords = { legacyHashes: [], schemas: {} }\n\n for (const entry of entries) {\n if (isHash(entry)) {\n records.legacyHashes.push(entry)\n } else if (entry.startsWith(SCHEMA_KEY_PREFIX)) {\n const separatorIndex = entry.indexOf('=')\n if (separatorIndex > SCHEMA_KEY_PREFIX.length) {\n const name = entry.slice(SCHEMA_KEY_PREFIX.length, separatorIndex)\n const value = entry.slice(separatorIndex + 1)\n if (name.length > 0 && value.length > 0) {\n records.schemas[name] ??= value\n }\n }\n } else if (entry.startsWith('domain=')) {\n const value = entry.slice('domain='.length)\n if (value.length > 0) {\n records.domain ??= value\n }\n } else if (entry.startsWith('config=')) {\n const value = entry.slice('config='.length)\n if (value.length > 0) {\n records.config ??= value\n }\n }\n // any other key: ignored for forward compatibility\n }\n\n return records\n}\n", "import {\n fetchJson, isBrowser, isString,\n} from '@xylabs/sdk-js'\nimport type { ApiEnvelope } from '@xyo-network/api-models'\nimport { DnsRecordType, domainResolve } from '@xyo-network/dns'\nimport { Huri } from '@xyo-network/huri'\nimport { PayloadBuilder } from '@xyo-network/payload-builder'\nimport type { Payload } from '@xyo-network/payload-model'\nimport type { SchemaPayload } from '@xyo-network/schema-payload-plugin'\nimport { isSchemaPayload, SchemaSchema } from '@xyo-network/schema-payload-plugin'\n\nimport { isDomainConfigPayload } from '../DomainConfigPayload.ts'\nimport type { DomainConfigFields, DomainPayload } from '../Payload.ts'\nimport { isDomainPayload } from '../Payload.ts'\nimport type {\n ResolveSchemaOptions, SchemaResolution, SchemaResolutionMechanism, SchemaResolutionSource,\n} from './SchemaResolution.ts'\nimport { parseXyoTxtRecords } from './XyoDnsRecords.ts'\n\nconst DEFAULT_MAX_INDIRECTION_DEPTH = 3\nconst DEFAULT_PROXY = 'https://api.archivist.xyo.network/domain'\n\ninterface ResolveContext {\n /** at least one mechanism answered cleanly (NXDOMAIN, 404, config without the schema) */\n anyCleanAnswer: boolean\n archivistUri?: string\n proxy?: string\n visited: Set<string>\n}\n\ninterface Resolved {\n payload: SchemaPayload\n source: SchemaResolutionSource\n}\n\n/**\n * The candidate domains for a schema name, shortest first\n * (com.example.foo -> example.com, foo.example.com). See SPEC.md \u00A75.\n */\nexport function candidateDomains(schemaName: string): string[] {\n const parts = schemaName.split('.')\n const domains: string[] = []\n for (let i = 2; i <= parts.length; i++) {\n domains.push(parts.slice(0, i).toReversed().join('.'))\n }\n return domains\n}\n\n/**\n * Whether a schema name falls inside a domain's reverse-domain namespace: the name's\n * leading levels, reversed, equal the domain or a parent of it. See SPEC.md \u00A72.1.\n */\nexport function isSchemaInDomainNamespace(schemaName: string, domain: string): boolean {\n return candidateDomains(schemaName).some(candidate => candidate === domain || domain.endsWith(`.${candidate}`))\n}\n\nfunction isValidSchemaName(schemaName: string): boolean {\n return schemaName.length > 0 && schemaName === schemaName.toLowerCase() && schemaName.split('.').length >= 3\n}\n\n/**\n * Resolves a schema name to the domain-published authoritative schema definition by\n * walking the publication mechanisms in SPEC.md \u00A75: DNS TXT records at _xyo.{domain}\n * (per-schema, config hash, domain indirection, legacy bare hash), then the xyo.json\n * root file, the xyo. subdomain index, and the legacy xyo-config.json (with the\n * archivist proxy as browser fallback).\n */\nexport class DomainSchemaResolver {\n async resolve(schemaName: string, options: ResolveSchemaOptions = {}): Promise<SchemaResolution> {\n if (!isValidSchemaName(schemaName)) {\n return { status: 'not-published' }\n }\n const context: ResolveContext = {\n anyCleanAnswer: false,\n archivistUri: options.archivistUri,\n proxy: options.proxy,\n visited: new Set<string>(),\n }\n const depth = options.maxIndirectionDepth ?? DEFAULT_MAX_INDIRECTION_DEPTH\n for (const domain of candidateDomains(schemaName)) {\n const resolved = await this.resolveAtDomain(domain, schemaName, depth, context)\n if (resolved) {\n return {\n payload: resolved.payload, source: resolved.source, status: 'resolved',\n }\n }\n }\n return { status: context.anyCleanAnswer ? 'not-published' : 'unreachable' }\n }\n\n /** Fetch a payload by hash (or HURI href) and verify it against the referenced hash */\n protected async fetchPayload(\n hashOrHref: string,\n context: ResolveContext,\n configFields?: DomainConfigFields,\n ): Promise<Payload | undefined> {\n try {\n const archivistUri = context.archivistUri ?? findArchivistUri(configFields)\n const huri = new Huri(hashOrHref, { archivistUri })\n const payload = await huri.fetch()\n if (!payload) {\n context.anyCleanAnswer = true\n return undefined\n }\n // content-addressed integrity: the fetched payload must hash to the referenced hash\n if ((await PayloadBuilder.dataHash(payload)) !== huri.hash && (await PayloadBuilder.hash(payload)) !== huri.hash) {\n console.warn(`DomainSchemaResolver: hash mismatch for [${huri.hash}]`)\n context.anyCleanAnswer = true\n return undefined\n }\n return payload\n } catch {\n return undefined\n }\n }\n\n protected async fetchSchemaPayloadByHash(\n hashOrHref: string,\n schemaName: string,\n context: ResolveContext,\n configFields?: DomainConfigFields,\n ): Promise<SchemaPayload | undefined> {\n const payload = await this.fetchPayload(hashOrHref, context, configFields)\n if (isSchemaPayload(payload) && payload.definition.$id === schemaName) {\n return payload\n }\n }\n\n protected lookupHash(fields: DomainConfigFields, schemaName: string): string | undefined {\n const entry = fields.schemas?.[schemaName]\n if (isString(entry)) return entry\n const alias = fields.aliases?.[schemaName]\n if (isString(alias?.huri) && alias.huri.length > 0) return alias.huri\n }\n\n /** Find the schema in a domain config document (schemas map first, then legacy aliases) */\n protected async lookupInConfig(\n fields: DomainConfigFields | undefined,\n schemaName: string,\n domain: string,\n mechanism: SchemaResolutionMechanism,\n context: ResolveContext,\n url?: string,\n ): Promise<Resolved | undefined> {\n if (!fields) return undefined\n context.anyCleanAnswer = true\n // no namespace check here: the lookup key is the schema name being resolved, which\n // is in-namespace for candidate domains by construction, and a domain= delegation\n // intentionally lets the named authority publish the delegator's namespace\n const entry = fields.schemas?.[schemaName]\n if (entry !== undefined && !isString(entry)) {\n // inline definition: the map key is authoritative for $id\n const payload: SchemaPayload = { definition: { ...entry, $id: schemaName }, schema: SchemaSchema }\n return {\n payload,\n source: {\n domain, mechanism, url,\n },\n }\n }\n const hash = this.lookupHash(fields, schemaName)\n if (isString(hash)) {\n const payload = await this.fetchSchemaPayloadByHash(hash, schemaName, context, fields)\n if (payload) {\n const huri = new Huri(hash)\n return {\n payload,\n source: {\n domain, hash: huri.hash, mechanism, url,\n },\n }\n }\n }\n }\n\n protected async resolveAtDomain(\n domain: string,\n schemaName: string,\n depth: number,\n context: ResolveContext,\n ): Promise<Resolved | undefined> {\n if (context.visited.has(domain)) return undefined\n context.visited.add(domain)\n\n // Stage A \u2014 DNS TXT records at _xyo.{domain}\n const dnsResolved = await this.resolveViaDns(domain, schemaName, depth, context)\n if (dnsResolved) return dnsResolved\n\n // Stages B/C/D \u2014 root file, subdomain index, legacy file\n const fileCandidates: [url: string, mechanism: SchemaResolutionMechanism][] = [\n [`https://${domain}/xyo.json`, 'file-root'],\n [`https://xyo.${domain}/`, 'file-subdomain'],\n [`https://${domain}/xyo-config.json`, 'file-legacy'],\n ]\n let anyDirectTransportFailure = false\n for (const [url, mechanism] of fileCandidates) {\n try {\n // fetchJson resolves (data: null) on HTTP error statuses and only throws on\n // transport failures (network down, CORS), so a return is always a clean answer\n const response = await fetchJson<DomainPayload>(url)\n context.anyCleanAnswer = true\n const resolved = await this.lookupInConfig(response.data ?? undefined, schemaName, domain, mechanism, context, url)\n if (resolved) return resolved\n } catch {\n anyDirectTransportFailure = true\n }\n }\n\n // Proxy fallback: always when a proxy is explicitly provided (legacy semantics),\n // or in browsers when direct fetches were blocked (e.g. CORS)\n if (isString(context.proxy) || (isBrowser() && anyDirectTransportFailure)) {\n const url = `${context.proxy ?? DEFAULT_PROXY}/${domain.split('.').toReversed().join('.')}`\n try {\n const response = await fetchJson<ApiEnvelope<DomainPayload>>(url)\n context.anyCleanAnswer = true\n const resolved = await this.lookupInConfig(response.data?.data, schemaName, domain, 'file-proxy', context, url)\n if (resolved) return resolved\n } catch {\n // transport failure: leave anyCleanAnswer untouched\n }\n }\n }\n\n protected async resolveViaDns(\n domain: string,\n schemaName: string,\n depth: number,\n context: ResolveContext,\n ): Promise<Resolved | undefined> {\n try {\n const result = await domainResolve(`_xyo.${domain}`, DnsRecordType.TXT)\n if (!result) return undefined\n context.anyCleanAnswer = true\n const records = parseXyoTxtRecords(result.Answer)\n\n // A1 \u2014 per-schema record\n const schemaHash = records.schemas[schemaName]\n if (isString(schemaHash)) {\n const payload = await this.fetchSchemaPayloadByHash(schemaHash, schemaName, context)\n if (payload) {\n const huri = new Huri(schemaHash)\n return {\n payload,\n source: {\n domain, hash: huri.hash, mechanism: 'dns-schema',\n },\n }\n }\n }\n\n // A2 \u2014 config hash (terminal: the fetched config cannot delegate further)\n if (isString(records.config)) {\n const configPayload = await this.fetchPayload(records.config, context)\n if (isDomainConfigPayload(configPayload) || isDomainPayload(configPayload)) {\n const resolved = await this.lookupInConfig(configPayload, schemaName, domain, 'dns-config', context)\n if (resolved) return resolved\n }\n }\n\n // A3 \u2014 domain indirection\n if (isString(records.domain) && depth > 0 && !context.visited.has(records.domain)) {\n const resolved = await this.resolveAtDomain(records.domain, schemaName, depth - 1, context)\n if (resolved) {\n return { payload: resolved.payload, source: { ...resolved.source, mechanism: 'dns-domain' } }\n }\n }\n\n // A4 \u2014 legacy bare hash of a network.xyo.domain payload\n for (const legacyHash of records.legacyHashes) {\n const legacyPayload = await this.fetchPayload(legacyHash, context)\n if (isDomainPayload(legacyPayload) || isDomainConfigPayload(legacyPayload)) {\n const resolved = await this.lookupInConfig(legacyPayload, schemaName, domain, 'dns-legacy', context)\n if (resolved) return resolved\n }\n }\n } catch {\n // transport error: leave anyCleanAnswer untouched\n }\n }\n}\n\nfunction findArchivistUri(fields?: DomainConfigFields): string | undefined {\n return fields?.networks?.[0]?.nodes?.find(node => node.type === 'archivist')?.uri\n}\n"],
5
+ "mappings": "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",
6
+ "names": ["zodAsFactory", "zodIsFactory", "zodToFactory", "PayloadZodOfSchema", "z", "asSchema", "PayloadZodOfSchema", "zodIsFactory", "zodAsFactory", "zodToFactory", "createPayloadPlugin", "asSchema", "asSchema", "isHash", "isHash", "createPayloadPlugin", "fetchJson", "isBrowser", "isString", "DnsRecordType", "domainResolve", "Huri", "PayloadBuilder", "Huri", "PayloadBuilder", "isString", "fetchJson", "isBrowser", "domainResolve", "DnsRecordType"]
7
7
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@xyo-network/domain-payload-plugin",
3
- "version": "6.1.1",
3
+ "version": "7.0.2",
4
4
  "description": "Typescript/Javascript Plugins for XYO Platform",
5
5
  "homepage": "https://xyo.network",
6
6
  "bugs": {
@@ -34,36 +34,36 @@
34
34
  "README.md"
35
35
  ],
36
36
  "dependencies": {
37
- "@xyo-network/network": "~6.1.1",
38
- "@xyo-network/huri": "~6.1.1",
39
- "@xyo-network/dns": "~6.1.1",
40
- "@xyo-network/payload-model": "~6.1.1",
41
- "@xyo-network/payload-builder": "~6.1.1",
42
- "@xyo-network/payload-plugin": "~6.1.1",
43
- "@xyo-network/payload-wrapper": "~6.1.1",
44
- "@xyo-network/schema-payload-plugin": "~6.1.1"
37
+ "@xyo-network/dns": "~7.0.2",
38
+ "@xyo-network/huri": "~7.0.2",
39
+ "@xyo-network/payload-builder": "~7.0.2",
40
+ "@xyo-network/payload-model": "~7.0.2",
41
+ "@xyo-network/payload-plugin": "~7.0.2",
42
+ "@xyo-network/payload-wrapper": "~7.0.2",
43
+ "@xyo-network/schema-payload-plugin": "~7.0.2"
45
44
  },
46
45
  "devDependencies": {
47
46
  "@bitauth/libauth": "~3.0.0",
48
47
  "@opentelemetry/api": "^1.9.1",
49
48
  "@opentelemetry/sdk-trace-base": "^2.8.0",
50
49
  "@scure/base": "~2.2.0",
51
- "@xylabs/sdk-js": "^6.1.1",
52
- "@xylabs/threads": "^6.1.1",
53
- "@xylabs/toolchain": "~8.1.20",
54
- "@xylabs/tsconfig": "~8.1.20",
55
- "@xylabs/vitest-extended": "^6.1.1",
50
+ "@xylabs/sdk-js": "^6.1.4",
51
+ "@xylabs/threads": "^6.1.4",
52
+ "@xylabs/toolchain": "~8.3.0",
53
+ "@xylabs/tsconfig": "~8.3.0",
54
+ "@xylabs/vitest-extended": "^6.1.4",
56
55
  "async-mutex": "^0.5.0",
57
56
  "debug": "^4.4.3",
58
- "eslint": "^10.4.1",
59
- "ethers": "^6.16.0",
57
+ "eslint": "^10.5.0",
58
+ "ethers": "^6.17.0",
60
59
  "hash-wasm": "~4.12.0",
61
60
  "observable-fns": "^0.6.1",
62
61
  "typescript": "~6.0.3",
63
- "vite": "^8.0.16",
64
- "vitest": "~4.1.8",
62
+ "vite": "^8.1.0",
63
+ "vitest": "~4.1.9",
65
64
  "zod": "^4.4.3",
66
- "@xyo-network/api-models": "~6.1.1"
65
+ "@xyo-network/api-models": "~7.0.2",
66
+ "@xyo-network/network": "~7.0.2"
67
67
  },
68
68
  "peerDependencies": {
69
69
  "@bitauth/libauth": "~3.0",