@xyo-network/domain-payload-plugin 2.73.3 → 2.74.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (59) hide show
  1. package/dist/Payload.d.mts.map +1 -0
  2. package/dist/Payload.d.ts +19 -0
  3. package/dist/Payload.d.ts.map +1 -0
  4. package/dist/Plugin.d.mts +21 -0
  5. package/dist/Plugin.d.mts.map +1 -0
  6. package/dist/{types/Plugin.d.ts → Plugin.d.ts} +0 -4
  7. package/dist/Plugin.d.ts.map +1 -0
  8. package/dist/Schema.d.mts.map +1 -0
  9. package/dist/Schema.d.ts +3 -0
  10. package/dist/Schema.d.ts.map +1 -0
  11. package/dist/Template.d.mts.map +1 -0
  12. package/dist/Template.d.ts +3 -0
  13. package/dist/Template.d.ts.map +1 -0
  14. package/dist/Wrapper.d.mts +115 -0
  15. package/dist/Wrapper.d.mts.map +1 -0
  16. package/dist/{types/Wrapper.d.ts → Wrapper.d.ts} +0 -20
  17. package/dist/Wrapper.d.ts.map +1 -0
  18. package/dist/index.d.mts.map +1 -0
  19. package/dist/{esm/index.js → index.d.ts} +1 -2
  20. package/dist/index.d.ts.map +1 -0
  21. package/dist/index.js +158 -0
  22. package/dist/index.js.map +1 -0
  23. package/dist/index.mjs +128 -0
  24. package/dist/index.mjs.map +1 -0
  25. package/package.json +32 -25
  26. package/dist/cjs/Payload.js +0 -3
  27. package/dist/cjs/Payload.js.map +0 -1
  28. package/dist/cjs/Plugin.js +0 -14
  29. package/dist/cjs/Plugin.js.map +0 -1
  30. package/dist/cjs/Schema.js +0 -5
  31. package/dist/cjs/Schema.js.map +0 -1
  32. package/dist/cjs/Template.js +0 -30
  33. package/dist/cjs/Template.js.map +0 -1
  34. package/dist/cjs/Wrapper.js +0 -110
  35. package/dist/cjs/Wrapper.js.map +0 -1
  36. package/dist/cjs/index.js +0 -13
  37. package/dist/cjs/index.js.map +0 -1
  38. package/dist/docs.json +0 -13304
  39. package/dist/esm/Payload.js +0 -2
  40. package/dist/esm/Payload.js.map +0 -1
  41. package/dist/esm/Plugin.js +0 -10
  42. package/dist/esm/Plugin.js.map +0 -1
  43. package/dist/esm/Schema.js +0 -2
  44. package/dist/esm/Schema.js.map +0 -1
  45. package/dist/esm/Template.js +0 -26
  46. package/dist/esm/Template.js.map +0 -1
  47. package/dist/esm/Wrapper.js +0 -81
  48. package/dist/esm/Wrapper.js.map +0 -1
  49. package/dist/esm/index.js.map +0 -1
  50. package/dist/types/Payload.d.ts.map +0 -1
  51. package/dist/types/Plugin.d.ts.map +0 -1
  52. package/dist/types/Schema.d.ts.map +0 -1
  53. package/dist/types/Template.d.ts.map +0 -1
  54. package/dist/types/Wrapper.d.ts.map +0 -1
  55. package/dist/types/index.d.ts.map +0 -1
  56. /package/dist/{types/Payload.d.ts → Payload.d.mts} +0 -0
  57. /package/dist/{types/Schema.d.ts → Schema.d.mts} +0 -0
  58. /package/dist/{types/Template.d.ts → Template.d.mts} +0 -0
  59. /package/dist/{types/index.d.ts → index.d.mts} +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Payload.d.ts","sourceRoot":"","sources":["../src/Payload.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AACrD,OAAO,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAA;AAEpD,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAA;AAEvC,MAAM,WAAW,KAAK;IACpB,yCAAyC;IACzC,IAAI,EAAE,MAAM,CAAA;IACZ,sDAAsD;IACtD,IAAI,CAAC,EAAE,MAAM,CAAA;CACd;AAED,MAAM,MAAM,aAAa,GAAG,OAAO,CAAC;IAClC,kDAAkD;IAClD,UAAU,CAAC,EAAE,MAAM,EAAE,CAAA;IACrB,sDAAsD;IACtD,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAA;IAC/B,kCAAkC;IAClC,QAAQ,CAAC,EAAE,cAAc,EAAE,CAAA;IAC3B,MAAM,EAAE,YAAY,CAAA;CACrB,CAAC,CAAA"}
@@ -0,0 +1,19 @@
1
+ import { NetworkPayload } from '@xyo-network/network';
2
+ import { Payload } from '@xyo-network/payload-model';
3
+ import { DomainSchema } from './Schema';
4
+ export interface Alias {
5
+ /** @field huri to the aliased payload */
6
+ huri: string;
7
+ /** @field canonical name (ex. network.xyo.example) */
8
+ name?: string;
9
+ }
10
+ export type DomainPayload = Payload<{
11
+ /** @field Additional config files [huri] [out] */
12
+ additional?: string[];
13
+ /** @field Values associated with this domain [out] */
14
+ aliases?: Record<string, Alias>;
15
+ /** @field Known networks [out] */
16
+ networks?: NetworkPayload[];
17
+ schema: DomainSchema;
18
+ }>;
19
+ //# sourceMappingURL=Payload.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Payload.d.ts","sourceRoot":"","sources":["../src/Payload.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AACrD,OAAO,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAA;AAEpD,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAA;AAEvC,MAAM,WAAW,KAAK;IACpB,yCAAyC;IACzC,IAAI,EAAE,MAAM,CAAA;IACZ,sDAAsD;IACtD,IAAI,CAAC,EAAE,MAAM,CAAA;CACd;AAED,MAAM,MAAM,aAAa,GAAG,OAAO,CAAC;IAClC,kDAAkD;IAClD,UAAU,CAAC,EAAE,MAAM,EAAE,CAAA;IACrB,sDAAsD;IACtD,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAA;IAC/B,kCAAkC;IAClC,QAAQ,CAAC,EAAE,cAAc,EAAE,CAAA;IAC3B,MAAM,EAAE,YAAY,CAAA;CACrB,CAAC,CAAA"}
@@ -0,0 +1,21 @@
1
+ export declare const DomainPayloadPlugin: () => import("@xyo-network/payload-plugin").PayloadPlugin<import("@xyo-network/payload-model").SchemaFields & import("@xyo-network/payload-model").PayloadFields & {
2
+ additional?: string[] | undefined;
3
+ aliases?: Record<string, import("./Payload").Alias> | undefined;
4
+ networks?: (import("@xyo-network/payload-model").SchemaFields & import("@xyo-network/payload-model").PayloadFields & {
5
+ name?: string | undefined;
6
+ nodes?: (import("@xyo-network/payload-model").SchemaFields & import("@xyo-network/payload-model").PayloadFields & {
7
+ docs?: string | undefined;
8
+ name?: string | undefined;
9
+ slug: string;
10
+ type: import("@xyo-network/network").NetworkNodeType;
11
+ uri: string;
12
+ web?: string | undefined;
13
+ } & {
14
+ schema: "network.xyo.network.node";
15
+ })[] | undefined;
16
+ schema: "network.xyo.network";
17
+ slug: string;
18
+ })[] | undefined;
19
+ schema: "network.xyo.domain";
20
+ }>;
21
+ //# sourceMappingURL=Plugin.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Plugin.d.ts","sourceRoot":"","sources":["../src/Plugin.ts"],"names":[],"mappings":"AAQA,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;EAK5B,CAAA"}
@@ -15,11 +15,7 @@ export declare const DomainPayloadPlugin: () => import("@xyo-network/payload-plu
15
15
  })[] | undefined;
16
16
  schema: "network.xyo.network";
17
17
  slug: string;
18
- } & {
19
- schema: "network.xyo.network";
20
18
  })[] | undefined;
21
19
  schema: "network.xyo.domain";
22
- } & {
23
- schema: "network.xyo.domain";
24
20
  }>;
25
21
  //# sourceMappingURL=Plugin.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Plugin.d.ts","sourceRoot":"","sources":["../src/Plugin.ts"],"names":[],"mappings":"AAQA,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;EAK5B,CAAA"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Schema.d.ts","sourceRoot":"","sources":["../src/Schema.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,YAAY,GAAG,oBAAoB,CAAA;AAC/C,eAAO,MAAM,YAAY,EAAE,YAAmC,CAAA"}
@@ -0,0 +1,3 @@
1
+ export type DomainSchema = 'network.xyo.domain';
2
+ export declare const DomainSchema: DomainSchema;
3
+ //# sourceMappingURL=Schema.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Schema.d.ts","sourceRoot":"","sources":["../src/Schema.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,YAAY,GAAG,oBAAoB,CAAA;AAC/C,eAAO,MAAM,YAAY,EAAE,YAAmC,CAAA"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Template.d.ts","sourceRoot":"","sources":["../src/Template.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAA;AAGzC,eAAO,MAAM,oBAAoB,QAAO,aAuBtC,CAAA"}
@@ -0,0 +1,3 @@
1
+ import { DomainPayload } from './Payload';
2
+ export declare const domainConfigTemplate: () => DomainPayload;
3
+ //# sourceMappingURL=Template.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Template.d.ts","sourceRoot":"","sources":["../src/Template.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAA;AAGzC,eAAO,MAAM,oBAAoB,QAAO,aAuBtC,CAAA"}
@@ -0,0 +1,115 @@
1
+ import { FetchedPayload } from '@xyo-network/huri';
2
+ import { PayloadWrapper } from '@xyo-network/payload-wrapper';
3
+ import { Alias, DomainPayload } from './Payload';
4
+ export interface FetchedAlias extends FetchedPayload {
5
+ alias: Alias;
6
+ }
7
+ export declare class DomainPayloadWrapper<T extends DomainPayload = DomainPayload> extends PayloadWrapper<T> {
8
+ aliases?: FetchedAlias[] | null;
9
+ static discover(reverseDomainName: string, proxy?: string): Promise<DomainPayloadWrapper<import("@xyo-network/payload-model").SchemaFields & import("@xyo-network/payload-model").PayloadFields & {
10
+ additional?: string[] | undefined;
11
+ aliases?: Record<string, Alias> | undefined;
12
+ networks?: (import("@xyo-network/payload-model").SchemaFields & import("@xyo-network/payload-model").PayloadFields & {
13
+ name?: string | undefined;
14
+ nodes?: (import("@xyo-network/payload-model").SchemaFields & import("@xyo-network/payload-model").PayloadFields & {
15
+ docs?: string | undefined;
16
+ name?: string | undefined;
17
+ slug: string;
18
+ type: import("@xyo-network/network").NetworkNodeType;
19
+ uri: string;
20
+ web?: string | undefined;
21
+ } & {
22
+ schema: "network.xyo.network.node";
23
+ })[] | undefined;
24
+ schema: "network.xyo.network";
25
+ slug: string;
26
+ })[] | undefined;
27
+ schema: "network.xyo.domain";
28
+ }> | undefined>;
29
+ static discoverDNSEntry(domain: string): Promise<DomainPayloadWrapper<import("@xyo-network/payload-model").SchemaFields & import("@xyo-network/payload-model").PayloadFields & {
30
+ additional?: string[] | undefined;
31
+ aliases?: Record<string, Alias> | undefined;
32
+ networks?: (import("@xyo-network/payload-model").SchemaFields & import("@xyo-network/payload-model").PayloadFields & {
33
+ name?: string | undefined;
34
+ nodes?: (import("@xyo-network/payload-model").SchemaFields & import("@xyo-network/payload-model").PayloadFields & {
35
+ docs?: string | undefined;
36
+ name?: string | undefined;
37
+ slug: string;
38
+ type: import("@xyo-network/network").NetworkNodeType;
39
+ uri: string;
40
+ web?: string | undefined;
41
+ } & {
42
+ schema: "network.xyo.network.node";
43
+ })[] | undefined;
44
+ schema: "network.xyo.network";
45
+ slug: string;
46
+ })[] | undefined;
47
+ schema: "network.xyo.domain";
48
+ }> | undefined>;
49
+ static discoverRootFile(domain: string, proxy?: string): Promise<DomainPayloadWrapper<import("@xyo-network/payload-model").SchemaFields & import("@xyo-network/payload-model").PayloadFields & {
50
+ additional?: string[] | undefined;
51
+ aliases?: Record<string, Alias> | undefined;
52
+ networks?: (import("@xyo-network/payload-model").SchemaFields & import("@xyo-network/payload-model").PayloadFields & {
53
+ name?: string | undefined;
54
+ nodes?: (import("@xyo-network/payload-model").SchemaFields & import("@xyo-network/payload-model").PayloadFields & {
55
+ docs?: string | undefined;
56
+ name?: string | undefined;
57
+ slug: string;
58
+ type: import("@xyo-network/network").NetworkNodeType;
59
+ uri: string;
60
+ web?: string | undefined;
61
+ } & {
62
+ schema: "network.xyo.network.node";
63
+ })[] | undefined;
64
+ schema: "network.xyo.network";
65
+ slug: string;
66
+ })[] | undefined;
67
+ schema: "network.xyo.domain";
68
+ }> | undefined>;
69
+ static discoverRootFileDirect(domain: string): Promise<DomainPayloadWrapper<import("@xyo-network/payload-model").SchemaFields & import("@xyo-network/payload-model").PayloadFields & {
70
+ additional?: string[] | undefined;
71
+ aliases?: Record<string, Alias> | undefined;
72
+ networks?: (import("@xyo-network/payload-model").SchemaFields & import("@xyo-network/payload-model").PayloadFields & {
73
+ name?: string | undefined;
74
+ nodes?: (import("@xyo-network/payload-model").SchemaFields & import("@xyo-network/payload-model").PayloadFields & {
75
+ docs?: string | undefined;
76
+ name?: string | undefined;
77
+ slug: string;
78
+ type: import("@xyo-network/network").NetworkNodeType;
79
+ uri: string;
80
+ web?: string | undefined;
81
+ } & {
82
+ schema: "network.xyo.network.node";
83
+ })[] | undefined;
84
+ schema: "network.xyo.network";
85
+ slug: string;
86
+ })[] | undefined;
87
+ schema: "network.xyo.domain";
88
+ }> | undefined>;
89
+ static discoverRootFileWithProxy(domain: string, proxy?: string): Promise<DomainPayloadWrapper<import("@xyo-network/payload-model").SchemaFields & import("@xyo-network/payload-model").PayloadFields & {
90
+ additional?: string[] | undefined;
91
+ aliases?: Record<string, Alias> | undefined;
92
+ networks?: (import("@xyo-network/payload-model").SchemaFields & import("@xyo-network/payload-model").PayloadFields & {
93
+ name?: string | undefined;
94
+ nodes?: (import("@xyo-network/payload-model").SchemaFields & import("@xyo-network/payload-model").PayloadFields & {
95
+ docs?: string | undefined;
96
+ name?: string | undefined;
97
+ slug: string;
98
+ type: import("@xyo-network/network").NetworkNodeType;
99
+ uri: string;
100
+ web?: string | undefined;
101
+ } & {
102
+ schema: "network.xyo.network.node";
103
+ })[] | undefined;
104
+ schema: "network.xyo.network";
105
+ slug: string;
106
+ })[] | undefined;
107
+ schema: "network.xyo.domain";
108
+ }> | undefined>;
109
+ fetch(networkSlug?: string): Promise<void>;
110
+ fetchAliases(networkSlug?: string): Promise<void>;
111
+ private fetchAlias;
112
+ private findArchivistUri;
113
+ private getNetwork;
114
+ }
115
+ //# sourceMappingURL=Wrapper.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Wrapper.d.ts","sourceRoot":"","sources":["../src/Wrapper.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,cAAc,EAAqB,MAAM,mBAAmB,CAAA;AAErE,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAA;AAE7D,OAAO,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,WAAW,CAAA;AAEhD,MAAM,WAAW,YAAa,SAAQ,cAAc;IAClD,KAAK,EAAE,KAAK,CAAA;CACb;AAED,qBAAa,oBAAoB,CAAC,CAAC,SAAS,aAAa,GAAG,aAAa,CAAE,SAAQ,cAAc,CAAC,CAAC,CAAC;IAClG,OAAO,CAAC,EAAE,YAAY,EAAE,GAAG,IAAI,CAAA;WAElB,QAAQ,CAAC,iBAAiB,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM;;;;;;;;;;;;;;;;;;;;WAQlD,gBAAgB,CAAC,MAAM,EAAE,MAAM;;;;;;;;;;;;;;;;;;;;WAe/B,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM;;;;;;;;;;;;;;;;;;;;WAI/C,sBAAsB,CAAC,MAAM,EAAE,MAAM;;;;;;;;;;;;;;;;;;;;WASrC,yBAAyB,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,SAA6C;;;;;;;;;;;;;;;;;;;;IAWnG,KAAK,CAAC,WAAW,CAAC,EAAE,MAAM;IAI1B,YAAY,CAAC,WAAW,CAAC,EAAE,MAAM;YAgBzB,UAAU;YAMV,gBAAgB;YAIhB,UAAU;CAGzB"}
@@ -23,12 +23,8 @@ export declare class DomainPayloadWrapper<T extends DomainPayload = DomainPayloa
23
23
  })[] | undefined;
24
24
  schema: "network.xyo.network";
25
25
  slug: string;
26
- } & {
27
- schema: "network.xyo.network";
28
26
  })[] | undefined;
29
27
  schema: "network.xyo.domain";
30
- } & {
31
- schema: "network.xyo.domain";
32
28
  }> | undefined>;
33
29
  static discoverDNSEntry(domain: string): Promise<DomainPayloadWrapper<import("@xyo-network/payload-model").SchemaFields & import("@xyo-network/payload-model").PayloadFields & {
34
30
  additional?: string[] | undefined;
@@ -47,12 +43,8 @@ export declare class DomainPayloadWrapper<T extends DomainPayload = DomainPayloa
47
43
  })[] | undefined;
48
44
  schema: "network.xyo.network";
49
45
  slug: string;
50
- } & {
51
- schema: "network.xyo.network";
52
46
  })[] | undefined;
53
47
  schema: "network.xyo.domain";
54
- } & {
55
- schema: "network.xyo.domain";
56
48
  }> | undefined>;
57
49
  static discoverRootFile(domain: string, proxy?: string): Promise<DomainPayloadWrapper<import("@xyo-network/payload-model").SchemaFields & import("@xyo-network/payload-model").PayloadFields & {
58
50
  additional?: string[] | undefined;
@@ -71,12 +63,8 @@ export declare class DomainPayloadWrapper<T extends DomainPayload = DomainPayloa
71
63
  })[] | undefined;
72
64
  schema: "network.xyo.network";
73
65
  slug: string;
74
- } & {
75
- schema: "network.xyo.network";
76
66
  })[] | undefined;
77
67
  schema: "network.xyo.domain";
78
- } & {
79
- schema: "network.xyo.domain";
80
68
  }> | undefined>;
81
69
  static discoverRootFileDirect(domain: string): Promise<DomainPayloadWrapper<import("@xyo-network/payload-model").SchemaFields & import("@xyo-network/payload-model").PayloadFields & {
82
70
  additional?: string[] | undefined;
@@ -95,12 +83,8 @@ export declare class DomainPayloadWrapper<T extends DomainPayload = DomainPayloa
95
83
  })[] | undefined;
96
84
  schema: "network.xyo.network";
97
85
  slug: string;
98
- } & {
99
- schema: "network.xyo.network";
100
86
  })[] | undefined;
101
87
  schema: "network.xyo.domain";
102
- } & {
103
- schema: "network.xyo.domain";
104
88
  }> | undefined>;
105
89
  static discoverRootFileWithProxy(domain: string, proxy?: string): Promise<DomainPayloadWrapper<import("@xyo-network/payload-model").SchemaFields & import("@xyo-network/payload-model").PayloadFields & {
106
90
  additional?: string[] | undefined;
@@ -119,12 +103,8 @@ export declare class DomainPayloadWrapper<T extends DomainPayload = DomainPayloa
119
103
  })[] | undefined;
120
104
  schema: "network.xyo.network";
121
105
  slug: string;
122
- } & {
123
- schema: "network.xyo.network";
124
106
  })[] | undefined;
125
107
  schema: "network.xyo.domain";
126
- } & {
127
- schema: "network.xyo.domain";
128
108
  }> | undefined>;
129
109
  fetch(networkSlug?: string): Promise<void>;
130
110
  fetchAliases(networkSlug?: string): Promise<void>;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Wrapper.d.ts","sourceRoot":"","sources":["../src/Wrapper.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,cAAc,EAAqB,MAAM,mBAAmB,CAAA;AAErE,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAA;AAE7D,OAAO,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,WAAW,CAAA;AAEhD,MAAM,WAAW,YAAa,SAAQ,cAAc;IAClD,KAAK,EAAE,KAAK,CAAA;CACb;AAED,qBAAa,oBAAoB,CAAC,CAAC,SAAS,aAAa,GAAG,aAAa,CAAE,SAAQ,cAAc,CAAC,CAAC,CAAC;IAClG,OAAO,CAAC,EAAE,YAAY,EAAE,GAAG,IAAI,CAAA;WAElB,QAAQ,CAAC,iBAAiB,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM;;;;;;;;;;;;;;;;;;;;WAQlD,gBAAgB,CAAC,MAAM,EAAE,MAAM;;;;;;;;;;;;;;;;;;;;WAe/B,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM;;;;;;;;;;;;;;;;;;;;WAI/C,sBAAsB,CAAC,MAAM,EAAE,MAAM;;;;;;;;;;;;;;;;;;;;WASrC,yBAAyB,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,SAA6C;;;;;;;;;;;;;;;;;;;;IAWnG,KAAK,CAAC,WAAW,CAAC,EAAE,MAAM;IAI1B,YAAY,CAAC,WAAW,CAAC,EAAE,MAAM;YAgBzB,UAAU;YAMV,gBAAgB;YAIhB,UAAU;CAGzB"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAA;AAE9C,cAAc,WAAW,CAAA;AACzB,cAAc,UAAU,CAAA;AACxB,cAAc,YAAY,CAAA;AAC1B,cAAc,WAAW,CAAA;AAEzB,OAAO,EAAE,mBAAmB,EAAE,CAAA;AAG9B,eAAe,mBAAmB,CAAA"}
@@ -4,6 +4,5 @@ export * from './Schema';
4
4
  export * from './Template';
5
5
  export * from './Wrapper';
6
6
  export { DomainPayloadPlugin };
7
- // eslint-disable-next-line import/no-default-export
8
7
  export default DomainPayloadPlugin;
9
- //# sourceMappingURL=index.js.map
8
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAA;AAE9C,cAAc,WAAW,CAAA;AACzB,cAAc,UAAU,CAAA;AACxB,cAAc,YAAY,CAAA;AAC1B,cAAc,WAAW,CAAA;AAEzB,OAAO,EAAE,mBAAmB,EAAE,CAAA;AAG9B,eAAe,mBAAmB,CAAA"}
package/dist/index.js ADDED
@@ -0,0 +1,158 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+
20
+ // src/index.ts
21
+ var src_exports = {};
22
+ __export(src_exports, {
23
+ DomainPayloadPlugin: () => DomainPayloadPlugin,
24
+ DomainPayloadWrapper: () => DomainPayloadWrapper,
25
+ DomainSchema: () => DomainSchema,
26
+ default: () => src_default,
27
+ domainConfigTemplate: () => domainConfigTemplate
28
+ });
29
+ module.exports = __toCommonJS(src_exports);
30
+
31
+ // src/Plugin.ts
32
+ var import_payload_plugin = require("@xyo-network/payload-plugin");
33
+
34
+ // src/Schema.ts
35
+ var DomainSchema = "network.xyo.domain";
36
+
37
+ // src/Template.ts
38
+ var domainConfigTemplate = () => ({
39
+ aliases: {
40
+ "com.example.id": {
41
+ huri: ""
42
+ }
43
+ },
44
+ networks: [
45
+ {
46
+ name: "",
47
+ nodes: [
48
+ {
49
+ name: "",
50
+ schema: "network.xyo.network.node",
51
+ slug: "",
52
+ type: "archivist",
53
+ uri: ""
54
+ }
55
+ ],
56
+ schema: "network.xyo.network",
57
+ slug: ""
58
+ }
59
+ ],
60
+ schema: DomainSchema
61
+ });
62
+
63
+ // src/Wrapper.ts
64
+ var import_lodash = require("@xylabs/lodash");
65
+ var import_axios = require("@xyo-network/axios");
66
+ var import_core = require("@xyo-network/core");
67
+ var import_dns = require("@xyo-network/dns");
68
+ var import_huri = require("@xyo-network/huri");
69
+ var import_payload_wrapper = require("@xyo-network/payload-wrapper");
70
+ var DomainPayloadWrapper = class _DomainPayloadWrapper extends import_payload_wrapper.PayloadWrapper {
71
+ aliases;
72
+ static async discover(reverseDomainName, proxy) {
73
+ const parts = reverseDomainName.split(".");
74
+ for (let i = 2; i <= parts.length; i++) {
75
+ const domainToCheck = (0, import_lodash.reverse)(parts.filter((_, index) => index < i)).join(".");
76
+ return await this.discoverDNSEntry(domainToCheck) ?? await this.discoverRootFile(domainToCheck, proxy);
77
+ }
78
+ }
79
+ static async discoverDNSEntry(domain) {
80
+ try {
81
+ const hash = (await (0, import_dns.domainResolve)(`_xyo.${domain}`, import_dns.DnsRecordType.TXT))?.Answer?.[0]?.data;
82
+ if (hash) {
83
+ const huri = new import_huri.Huri(hash);
84
+ const payload = await huri.fetch();
85
+ if (payload) {
86
+ return new _DomainPayloadWrapper(payload);
87
+ }
88
+ }
89
+ } catch (ex) {
90
+ console.log(`DomainConfig dns reading error entry not found [${domain}]`);
91
+ }
92
+ }
93
+ static async discoverRootFile(domain, proxy) {
94
+ return (0, import_core.isBrowser)() || proxy ? await this.discoverRootFileWithProxy(domain, proxy) : await this.discoverRootFileDirect(domain);
95
+ }
96
+ static async discoverRootFileDirect(domain) {
97
+ try {
98
+ const config = (await import_axios.axios.get(`https://${domain}/xyo-config.json`)).data;
99
+ return new _DomainPayloadWrapper(config);
100
+ } catch (ex) {
101
+ console.log(`DomainConfig root file not found [${domain}]`);
102
+ }
103
+ }
104
+ static async discoverRootFileWithProxy(domain, proxy = "https://api.archivist.xyo.network/domain") {
105
+ try {
106
+ const requestUrl = `${proxy}/${domain.split(".").reverse().join(".")}`;
107
+ const config = (await import_axios.axios.get(requestUrl)).data.data;
108
+ return new _DomainPayloadWrapper(config);
109
+ } catch (ex) {
110
+ const error = ex;
111
+ console.log(`DomainConfig root file not found using proxy [${domain}] [${error.code}]`);
112
+ }
113
+ }
114
+ async fetch(networkSlug) {
115
+ await this.fetchAliases(networkSlug);
116
+ }
117
+ async fetchAliases(networkSlug) {
118
+ this.aliases = null;
119
+ const archivistUri = await this.findArchivistUri(networkSlug);
120
+ if (this.payload().aliases) {
121
+ const fetchedAliases = await Promise.all(
122
+ Object.entries(this.payload().aliases ?? {}).map(([, alias]) => {
123
+ return this.fetchAlias(alias, { archivistUri });
124
+ })
125
+ );
126
+ this.aliases = fetchedAliases.filter((alias) => alias);
127
+ }
128
+ }
129
+ async fetchAlias(alias, huriOptions) {
130
+ const huri = new import_huri.Huri(alias.huri, huriOptions);
131
+ const payload = await huri.fetch();
132
+ return payload ? { alias, huri, payload } : null;
133
+ }
134
+ async findArchivistUri(hash) {
135
+ return (await this.getNetwork(hash))?.nodes?.find((payload) => payload.type === "archivist" ? payload : void 0)?.uri;
136
+ }
137
+ async getNetwork(hash) {
138
+ return hash ? await import_core.PayloadHasher.find(this.payload().networks, hash) : this.payload().networks?.[0];
139
+ }
140
+ };
141
+
142
+ // src/Plugin.ts
143
+ var DomainPayloadPlugin = () => (0, import_payload_plugin.createPayloadPlugin)({
144
+ schema: DomainSchema,
145
+ template: domainConfigTemplate,
146
+ wrap: (payload) => DomainPayloadWrapper.wrap(payload)
147
+ });
148
+
149
+ // src/index.ts
150
+ var src_default = DomainPayloadPlugin;
151
+ // Annotate the CommonJS export names for ESM import in node:
152
+ 0 && (module.exports = {
153
+ DomainPayloadPlugin,
154
+ DomainPayloadWrapper,
155
+ DomainSchema,
156
+ domainConfigTemplate
157
+ });
158
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/index.ts","../src/Plugin.ts","../src/Schema.ts","../src/Template.ts","../src/Wrapper.ts"],"sourcesContent":["import { DomainPayloadPlugin } from './Plugin'\n\nexport * from './Payload'\nexport * from './Schema'\nexport * from './Template'\nexport * from './Wrapper'\n\nexport { DomainPayloadPlugin }\n\n// eslint-disable-next-line import/no-default-export\nexport default DomainPayloadPlugin\n","import { Payload } from '@xyo-network/payload-model'\nimport { createPayloadPlugin } from '@xyo-network/payload-plugin'\n\nimport { DomainPayload } from './Payload'\nimport { DomainSchema } from './Schema'\nimport { domainConfigTemplate } from './Template'\nimport { DomainPayloadWrapper } from './Wrapper'\n\nexport const DomainPayloadPlugin = () =>\n createPayloadPlugin<DomainPayload>({\n schema: DomainSchema,\n template: domainConfigTemplate,\n wrap: (payload: Payload) => DomainPayloadWrapper.wrap(payload as DomainPayload),\n })\n","export type DomainSchema = 'network.xyo.domain'\nexport const DomainSchema: DomainSchema = 'network.xyo.domain'\n","import { DomainPayload } from './Payload'\nimport { DomainSchema } from './Schema'\n\nexport const domainConfigTemplate = (): DomainPayload => ({\n aliases: {\n 'com.example.id': {\n huri: '',\n },\n },\n networks: [\n {\n name: '',\n nodes: [\n {\n name: '',\n schema: 'network.xyo.network.node',\n slug: '',\n type: 'archivist',\n uri: '',\n },\n ],\n schema: 'network.xyo.network',\n slug: '',\n },\n ],\n schema: DomainSchema,\n})\n","import { reverse } from '@xylabs/lodash'\nimport { ApiEnvelope } from '@xyo-network/api-models'\nimport { axios, AxiosError } from '@xyo-network/axios'\nimport { isBrowser, PayloadHasher } from '@xyo-network/core'\nimport { DnsRecordType, domainResolve } from '@xyo-network/dns'\nimport { FetchedPayload, Huri, HuriOptions } from '@xyo-network/huri'\nimport { NetworkPayload } from '@xyo-network/network'\nimport { PayloadWrapper } from '@xyo-network/payload-wrapper'\n\nimport { Alias, DomainPayload } from './Payload'\n\nexport interface FetchedAlias extends FetchedPayload {\n alias: Alias\n}\n\nexport class DomainPayloadWrapper<T extends DomainPayload = 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 = reverse(parts.filter((_, index) => index < i)).join('.')\n return (await this.discoverDNSEntry(domainToCheck)) ?? (await this.discoverRootFile(domainToCheck, proxy))\n }\n }\n\n static async discoverDNSEntry(domain: string) {\n try {\n const hash = (await domainResolve(`_xyo.${domain}`, DnsRecordType.TXT))?.Answer?.[0]?.data\n if (hash) {\n const huri = new Huri(hash)\n const payload = (await huri.fetch()) as DomainPayload\n if (payload) {\n return new DomainPayloadWrapper(payload)\n }\n }\n } catch (ex) {\n console.log(`DomainConfig dns reading error entry not found [${domain}]`)\n }\n }\n\n static async discoverRootFile(domain: string, proxy?: string) {\n return isBrowser() || proxy ? await this.discoverRootFileWithProxy(domain, proxy) : await this.discoverRootFileDirect(domain)\n }\n\n static async discoverRootFileDirect(domain: string) {\n try {\n const config = (await axios.get<DomainPayload>(`https://${domain}/xyo-config.json`)).data\n return new DomainPayloadWrapper(config)\n } catch (ex) {\n console.log(`DomainConfig root file not found [${domain}]`)\n }\n }\n\n static async discoverRootFileWithProxy(domain: string, proxy = 'https://api.archivist.xyo.network/domain') {\n try {\n const requestUrl = `${proxy}/${domain.split('.').reverse().join('.')}`\n const config = (await axios.get<ApiEnvelope<DomainPayload>>(requestUrl)).data.data\n return new DomainPayloadWrapper(config)\n } catch (ex) {\n const error = ex as AxiosError\n console.log(`DomainConfig root file not found using proxy [${domain}] [${error.code}]`)\n }\n }\n\n async fetch(networkSlug?: string) {\n await this.fetchAliases(networkSlug)\n }\n\n async fetchAliases(networkSlug?: string) {\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((alias) => alias) 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 ? { alias, huri, payload: payload } : null\n }\n\n private async findArchivistUri(hash?: string): 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?: string): Promise<NetworkPayload | undefined> {\n return hash ? await PayloadHasher.find(this.payload().networks, hash) : this.payload().networks?.[0]\n }\n}\n"],"mappings":"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","names":[]}
package/dist/index.mjs ADDED
@@ -0,0 +1,128 @@
1
+ // src/Plugin.ts
2
+ import { createPayloadPlugin } from "@xyo-network/payload-plugin";
3
+
4
+ // src/Schema.ts
5
+ var DomainSchema = "network.xyo.domain";
6
+
7
+ // src/Template.ts
8
+ var domainConfigTemplate = () => ({
9
+ aliases: {
10
+ "com.example.id": {
11
+ huri: ""
12
+ }
13
+ },
14
+ networks: [
15
+ {
16
+ name: "",
17
+ nodes: [
18
+ {
19
+ name: "",
20
+ schema: "network.xyo.network.node",
21
+ slug: "",
22
+ type: "archivist",
23
+ uri: ""
24
+ }
25
+ ],
26
+ schema: "network.xyo.network",
27
+ slug: ""
28
+ }
29
+ ],
30
+ schema: DomainSchema
31
+ });
32
+
33
+ // src/Wrapper.ts
34
+ import { reverse } from "@xylabs/lodash";
35
+ import { axios } from "@xyo-network/axios";
36
+ import { isBrowser, PayloadHasher } from "@xyo-network/core";
37
+ import { DnsRecordType, domainResolve } from "@xyo-network/dns";
38
+ import { Huri } from "@xyo-network/huri";
39
+ import { PayloadWrapper } from "@xyo-network/payload-wrapper";
40
+ var DomainPayloadWrapper = class _DomainPayloadWrapper extends PayloadWrapper {
41
+ aliases;
42
+ static async discover(reverseDomainName, proxy) {
43
+ const parts = reverseDomainName.split(".");
44
+ for (let i = 2; i <= parts.length; i++) {
45
+ const domainToCheck = reverse(parts.filter((_, index) => index < i)).join(".");
46
+ return await this.discoverDNSEntry(domainToCheck) ?? await this.discoverRootFile(domainToCheck, proxy);
47
+ }
48
+ }
49
+ static async discoverDNSEntry(domain) {
50
+ try {
51
+ const hash = (await domainResolve(`_xyo.${domain}`, DnsRecordType.TXT))?.Answer?.[0]?.data;
52
+ if (hash) {
53
+ const huri = new Huri(hash);
54
+ const payload = await huri.fetch();
55
+ if (payload) {
56
+ return new _DomainPayloadWrapper(payload);
57
+ }
58
+ }
59
+ } catch (ex) {
60
+ console.log(`DomainConfig dns reading error entry not found [${domain}]`);
61
+ }
62
+ }
63
+ static async discoverRootFile(domain, proxy) {
64
+ return isBrowser() || proxy ? await this.discoverRootFileWithProxy(domain, proxy) : await this.discoverRootFileDirect(domain);
65
+ }
66
+ static async discoverRootFileDirect(domain) {
67
+ try {
68
+ const config = (await axios.get(`https://${domain}/xyo-config.json`)).data;
69
+ return new _DomainPayloadWrapper(config);
70
+ } catch (ex) {
71
+ console.log(`DomainConfig root file not found [${domain}]`);
72
+ }
73
+ }
74
+ static async discoverRootFileWithProxy(domain, proxy = "https://api.archivist.xyo.network/domain") {
75
+ try {
76
+ const requestUrl = `${proxy}/${domain.split(".").reverse().join(".")}`;
77
+ const config = (await axios.get(requestUrl)).data.data;
78
+ return new _DomainPayloadWrapper(config);
79
+ } catch (ex) {
80
+ const error = ex;
81
+ console.log(`DomainConfig root file not found using proxy [${domain}] [${error.code}]`);
82
+ }
83
+ }
84
+ async fetch(networkSlug) {
85
+ await this.fetchAliases(networkSlug);
86
+ }
87
+ async fetchAliases(networkSlug) {
88
+ this.aliases = null;
89
+ const archivistUri = await this.findArchivistUri(networkSlug);
90
+ if (this.payload().aliases) {
91
+ const fetchedAliases = await Promise.all(
92
+ Object.entries(this.payload().aliases ?? {}).map(([, alias]) => {
93
+ return this.fetchAlias(alias, { archivistUri });
94
+ })
95
+ );
96
+ this.aliases = fetchedAliases.filter((alias) => alias);
97
+ }
98
+ }
99
+ async fetchAlias(alias, huriOptions) {
100
+ const huri = new Huri(alias.huri, huriOptions);
101
+ const payload = await huri.fetch();
102
+ return payload ? { alias, huri, payload } : null;
103
+ }
104
+ async findArchivistUri(hash) {
105
+ return (await this.getNetwork(hash))?.nodes?.find((payload) => payload.type === "archivist" ? payload : void 0)?.uri;
106
+ }
107
+ async getNetwork(hash) {
108
+ return hash ? await PayloadHasher.find(this.payload().networks, hash) : this.payload().networks?.[0];
109
+ }
110
+ };
111
+
112
+ // src/Plugin.ts
113
+ var DomainPayloadPlugin = () => createPayloadPlugin({
114
+ schema: DomainSchema,
115
+ template: domainConfigTemplate,
116
+ wrap: (payload) => DomainPayloadWrapper.wrap(payload)
117
+ });
118
+
119
+ // src/index.ts
120
+ var src_default = DomainPayloadPlugin;
121
+ export {
122
+ DomainPayloadPlugin,
123
+ DomainPayloadWrapper,
124
+ DomainSchema,
125
+ src_default as default,
126
+ domainConfigTemplate
127
+ };
128
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/Plugin.ts","../src/Schema.ts","../src/Template.ts","../src/Wrapper.ts","../src/index.ts"],"sourcesContent":["import { Payload } from '@xyo-network/payload-model'\nimport { createPayloadPlugin } from '@xyo-network/payload-plugin'\n\nimport { DomainPayload } from './Payload'\nimport { DomainSchema } from './Schema'\nimport { domainConfigTemplate } from './Template'\nimport { DomainPayloadWrapper } from './Wrapper'\n\nexport const DomainPayloadPlugin = () =>\n createPayloadPlugin<DomainPayload>({\n schema: DomainSchema,\n template: domainConfigTemplate,\n wrap: (payload: Payload) => DomainPayloadWrapper.wrap(payload as DomainPayload),\n })\n","export type DomainSchema = 'network.xyo.domain'\nexport const DomainSchema: DomainSchema = 'network.xyo.domain'\n","import { DomainPayload } from './Payload'\nimport { DomainSchema } from './Schema'\n\nexport const domainConfigTemplate = (): DomainPayload => ({\n aliases: {\n 'com.example.id': {\n huri: '',\n },\n },\n networks: [\n {\n name: '',\n nodes: [\n {\n name: '',\n schema: 'network.xyo.network.node',\n slug: '',\n type: 'archivist',\n uri: '',\n },\n ],\n schema: 'network.xyo.network',\n slug: '',\n },\n ],\n schema: DomainSchema,\n})\n","import { reverse } from '@xylabs/lodash'\nimport { ApiEnvelope } from '@xyo-network/api-models'\nimport { axios, AxiosError } from '@xyo-network/axios'\nimport { isBrowser, PayloadHasher } from '@xyo-network/core'\nimport { DnsRecordType, domainResolve } from '@xyo-network/dns'\nimport { FetchedPayload, Huri, HuriOptions } from '@xyo-network/huri'\nimport { NetworkPayload } from '@xyo-network/network'\nimport { PayloadWrapper } from '@xyo-network/payload-wrapper'\n\nimport { Alias, DomainPayload } from './Payload'\n\nexport interface FetchedAlias extends FetchedPayload {\n alias: Alias\n}\n\nexport class DomainPayloadWrapper<T extends DomainPayload = 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 = reverse(parts.filter((_, index) => index < i)).join('.')\n return (await this.discoverDNSEntry(domainToCheck)) ?? (await this.discoverRootFile(domainToCheck, proxy))\n }\n }\n\n static async discoverDNSEntry(domain: string) {\n try {\n const hash = (await domainResolve(`_xyo.${domain}`, DnsRecordType.TXT))?.Answer?.[0]?.data\n if (hash) {\n const huri = new Huri(hash)\n const payload = (await huri.fetch()) as DomainPayload\n if (payload) {\n return new DomainPayloadWrapper(payload)\n }\n }\n } catch (ex) {\n console.log(`DomainConfig dns reading error entry not found [${domain}]`)\n }\n }\n\n static async discoverRootFile(domain: string, proxy?: string) {\n return isBrowser() || proxy ? await this.discoverRootFileWithProxy(domain, proxy) : await this.discoverRootFileDirect(domain)\n }\n\n static async discoverRootFileDirect(domain: string) {\n try {\n const config = (await axios.get<DomainPayload>(`https://${domain}/xyo-config.json`)).data\n return new DomainPayloadWrapper(config)\n } catch (ex) {\n console.log(`DomainConfig root file not found [${domain}]`)\n }\n }\n\n static async discoverRootFileWithProxy(domain: string, proxy = 'https://api.archivist.xyo.network/domain') {\n try {\n const requestUrl = `${proxy}/${domain.split('.').reverse().join('.')}`\n const config = (await axios.get<ApiEnvelope<DomainPayload>>(requestUrl)).data.data\n return new DomainPayloadWrapper(config)\n } catch (ex) {\n const error = ex as AxiosError\n console.log(`DomainConfig root file not found using proxy [${domain}] [${error.code}]`)\n }\n }\n\n async fetch(networkSlug?: string) {\n await this.fetchAliases(networkSlug)\n }\n\n async fetchAliases(networkSlug?: string) {\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((alias) => alias) 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 ? { alias, huri, payload: payload } : null\n }\n\n private async findArchivistUri(hash?: string): 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?: string): Promise<NetworkPayload | undefined> {\n return hash ? await PayloadHasher.find(this.payload().networks, hash) : this.payload().networks?.[0]\n }\n}\n","import { DomainPayloadPlugin } from './Plugin'\n\nexport * from './Payload'\nexport * from './Schema'\nexport * from './Template'\nexport * from './Wrapper'\n\nexport { DomainPayloadPlugin }\n\n// eslint-disable-next-line import/no-default-export\nexport default DomainPayloadPlugin\n"],"mappings":"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","names":[]}