@xyo-network/domain-payload-plugin 2.87.0 → 2.87.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.
@@ -1,8 +1,36 @@
1
+ "use strict";
1
2
  var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
2
6
  var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
7
+ var __export = (target, all) => {
8
+ for (var name in all)
9
+ __defProp(target, name, { get: all[name], enumerable: true });
10
+ };
11
+ var __copyProps = (to, from, except, desc) => {
12
+ if (from && typeof from === "object" || typeof from === "function") {
13
+ for (let key of __getOwnPropNames(from))
14
+ if (!__hasOwnProp.call(to, key) && key !== except)
15
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
16
+ }
17
+ return to;
18
+ };
19
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
20
+
21
+ // src/index.ts
22
+ var src_exports = {};
23
+ __export(src_exports, {
24
+ DomainPayloadPlugin: () => DomainPayloadPlugin,
25
+ DomainPayloadWrapper: () => DomainPayloadWrapper,
26
+ DomainSchema: () => DomainSchema,
27
+ default: () => DomainPayloadPlugin,
28
+ domainConfigTemplate: () => domainConfigTemplate
29
+ });
30
+ module.exports = __toCommonJS(src_exports);
3
31
 
4
32
  // src/Plugin.ts
5
- import { createPayloadPlugin } from "@xyo-network/payload-plugin";
33
+ var import_payload_plugin = require("@xyo-network/payload-plugin");
6
34
 
7
35
  // src/Schema.ts
8
36
  var DomainSchema = "network.xyo.domain";
@@ -34,28 +62,28 @@ var domainConfigTemplate = /* @__PURE__ */ __name(() => ({
34
62
  }), "domainConfigTemplate");
35
63
 
36
64
  // src/Wrapper.ts
37
- import { axios } from "@xylabs/axios";
38
- import { reverse } from "@xylabs/lodash";
39
- import { isBrowser } from "@xylabs/platform";
40
- import { DnsRecordType, domainResolve } from "@xyo-network/dns";
41
- import { PayloadHasher } from "@xyo-network/hash";
42
- import { Huri } from "@xyo-network/huri";
43
- import { PayloadWrapper } from "@xyo-network/payload-wrapper";
44
- var _DomainPayloadWrapper = class _DomainPayloadWrapper extends PayloadWrapper {
65
+ var import_axios = require("@xylabs/axios");
66
+ var import_lodash = require("@xylabs/lodash");
67
+ var import_platform = require("@xylabs/platform");
68
+ var import_dns = require("@xyo-network/dns");
69
+ var import_hash = require("@xyo-network/hash");
70
+ var import_huri = require("@xyo-network/huri");
71
+ var import_payload_wrapper = require("@xyo-network/payload-wrapper");
72
+ var _DomainPayloadWrapper = class _DomainPayloadWrapper extends import_payload_wrapper.PayloadWrapper {
45
73
  aliases;
46
74
  static async discover(reverseDomainName, proxy) {
47
75
  const parts = reverseDomainName.split(".");
48
76
  for (let i = 2; i <= parts.length; i++) {
49
- const domainToCheck = reverse(parts.filter((_, index) => index < i)).join(".");
77
+ const domainToCheck = (0, import_lodash.reverse)(parts.filter((_, index) => index < i)).join(".");
50
78
  return await this.discoverDNSEntry(domainToCheck) ?? await this.discoverRootFile(domainToCheck, proxy);
51
79
  }
52
80
  }
53
81
  static async discoverDNSEntry(domain) {
54
82
  var _a, _b, _c;
55
83
  try {
56
- const hash = (_c = (_b = (_a = await domainResolve(`_xyo.${domain}`, DnsRecordType.TXT)) == null ? void 0 : _a.Answer) == null ? void 0 : _b[0]) == null ? void 0 : _c.data;
84
+ const hash = (_c = (_b = (_a = await (0, import_dns.domainResolve)(`_xyo.${domain}`, import_dns.DnsRecordType.TXT)) == null ? void 0 : _a.Answer) == null ? void 0 : _b[0]) == null ? void 0 : _c.data;
57
85
  if (hash) {
58
- const huri = new Huri(hash);
86
+ const huri = new import_huri.Huri(hash);
59
87
  const payload = await huri.fetch();
60
88
  if (payload) {
61
89
  return new _DomainPayloadWrapper(payload);
@@ -66,11 +94,11 @@ var _DomainPayloadWrapper = class _DomainPayloadWrapper extends PayloadWrapper {
66
94
  }
67
95
  }
68
96
  static async discoverRootFile(domain, proxy) {
69
- return isBrowser() || proxy ? await this.discoverRootFileWithProxy(domain, proxy) : await this.discoverRootFileDirect(domain);
97
+ return (0, import_platform.isBrowser)() || proxy ? await this.discoverRootFileWithProxy(domain, proxy) : await this.discoverRootFileDirect(domain);
70
98
  }
71
99
  static async discoverRootFileDirect(domain) {
72
100
  try {
73
- const config = (await axios.get(`https://${domain}/xyo-config.json`)).data;
101
+ const config = (await import_axios.axios.get(`https://${domain}/xyo-config.json`)).data;
74
102
  return new _DomainPayloadWrapper(config);
75
103
  } catch {
76
104
  console.log(`DomainConfig root file not found [${domain}]`);
@@ -79,7 +107,7 @@ var _DomainPayloadWrapper = class _DomainPayloadWrapper extends PayloadWrapper {
79
107
  static async discoverRootFileWithProxy(domain, proxy = "https://api.archivist.xyo.network/domain") {
80
108
  try {
81
109
  const requestUrl = `${proxy}/${domain.split(".").reverse().join(".")}`;
82
- const config = (await axios.get(requestUrl)).data.data;
110
+ const config = (await import_axios.axios.get(requestUrl)).data.data;
83
111
  return new _DomainPayloadWrapper(config);
84
112
  } catch (ex) {
85
113
  const error = ex;
@@ -102,7 +130,7 @@ var _DomainPayloadWrapper = class _DomainPayloadWrapper extends PayloadWrapper {
102
130
  }
103
131
  }
104
132
  async fetchAlias(alias, huriOptions) {
105
- const huri = new Huri(alias.huri, huriOptions);
133
+ const huri = new import_huri.Huri(alias.huri, huriOptions);
106
134
  const payload = await huri.fetch();
107
135
  return payload ? {
108
136
  alias,
@@ -116,23 +144,23 @@ var _DomainPayloadWrapper = class _DomainPayloadWrapper extends PayloadWrapper {
116
144
  }
117
145
  async getNetwork(hash) {
118
146
  var _a;
119
- return hash ? await PayloadHasher.find(this.jsonPayload().networks, hash) : (_a = this.jsonPayload().networks) == null ? void 0 : _a[0];
147
+ return hash ? await import_hash.PayloadHasher.find(this.jsonPayload().networks, hash) : (_a = this.jsonPayload().networks) == null ? void 0 : _a[0];
120
148
  }
121
149
  };
122
150
  __name(_DomainPayloadWrapper, "DomainPayloadWrapper");
123
151
  var DomainPayloadWrapper = _DomainPayloadWrapper;
124
152
 
125
153
  // src/Plugin.ts
126
- var DomainPayloadPlugin = /* @__PURE__ */ __name(() => createPayloadPlugin({
154
+ var DomainPayloadPlugin = /* @__PURE__ */ __name(() => (0, import_payload_plugin.createPayloadPlugin)({
127
155
  schema: DomainSchema,
128
156
  template: domainConfigTemplate,
129
157
  wrap: (payload) => DomainPayloadWrapper.wrap(payload)
130
158
  }), "DomainPayloadPlugin");
131
- export {
159
+ // Annotate the CommonJS export names for ESM import in node:
160
+ 0 && (module.exports = {
132
161
  DomainPayloadPlugin,
133
162
  DomainPayloadWrapper,
134
163
  DomainSchema,
135
- DomainPayloadPlugin as default,
136
164
  domainConfigTemplate
137
- };
138
- //# sourceMappingURL=index.mjs.map
165
+ });
166
+ //# sourceMappingURL=index.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/index.ts","../../src/Plugin.ts","../../src/Schema.ts","../../src/Template.ts","../../src/Wrapper.ts"],"sourcesContent":["export * from './Payload'\nexport { DomainPayloadPlugin as default, DomainPayloadPlugin } from './Plugin'\nexport * from './Schema'\nexport * from './Template'\nexport * from './Wrapper'\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 { axios, AxiosError } from '@xylabs/axios'\nimport { reverse } from '@xylabs/lodash'\nimport { isBrowser } from '@xylabs/platform'\nimport { ApiEnvelope } from '@xyo-network/api-models'\nimport { DnsRecordType, domainResolve } from '@xyo-network/dns'\nimport { PayloadHasher } from '@xyo-network/hash'\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 {\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 {\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(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 ? { 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 // eslint-disable-next-line unicorn/no-array-method-this-argument\n return hash ? await PayloadHasher.find(this.jsonPayload().networks, hash) : this.jsonPayload().networks?.[0]\n }\n}\n"],"mappings":"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","names":["DomainSchema","domainConfigTemplate","aliases","huri","networks","name","nodes","schema","slug","type","uri","DomainSchema","DomainPayloadWrapper","PayloadWrapper","aliases","discover","reverseDomainName","proxy","parts","split","i","length","domainToCheck","reverse","filter","_","index","join","discoverDNSEntry","discoverRootFile","domain","hash","domainResolve","DnsRecordType","TXT","Answer","data","huri","Huri","payload","fetch","console","log","isBrowser","discoverRootFileWithProxy","discoverRootFileDirect","config","axios","get","requestUrl","ex","error","code","networkSlug","fetchAliases","archivistUri","findArchivistUri","fetchedAliases","Promise","all","Object","entries","map","alias","fetchAlias","Boolean","huriOptions","getNetwork","nodes","find","type","undefined","uri","PayloadHasher","jsonPayload","networks","DomainPayloadPlugin","createPayloadPlugin","schema","DomainSchema","template","domainConfigTemplate","wrap","payload","DomainPayloadWrapper"]}
@@ -1,36 +1,8 @@
1
- "use strict";
2
1
  var __defProp = Object.defineProperty;
3
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
- var __getOwnPropNames = Object.getOwnPropertyNames;
5
- var __hasOwnProp = Object.prototype.hasOwnProperty;
6
2
  var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
7
- var __export = (target, all) => {
8
- for (var name in all)
9
- __defProp(target, name, { get: all[name], enumerable: true });
10
- };
11
- var __copyProps = (to, from, except, desc) => {
12
- if (from && typeof from === "object" || typeof from === "function") {
13
- for (let key of __getOwnPropNames(from))
14
- if (!__hasOwnProp.call(to, key) && key !== except)
15
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
16
- }
17
- return to;
18
- };
19
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
20
-
21
- // src/index.ts
22
- var src_exports = {};
23
- __export(src_exports, {
24
- DomainPayloadPlugin: () => DomainPayloadPlugin,
25
- DomainPayloadWrapper: () => DomainPayloadWrapper,
26
- DomainSchema: () => DomainSchema,
27
- default: () => DomainPayloadPlugin,
28
- domainConfigTemplate: () => domainConfigTemplate
29
- });
30
- module.exports = __toCommonJS(src_exports);
31
3
 
32
4
  // src/Plugin.ts
33
- var import_payload_plugin = require("@xyo-network/payload-plugin");
5
+ import { createPayloadPlugin } from "@xyo-network/payload-plugin";
34
6
 
35
7
  // src/Schema.ts
36
8
  var DomainSchema = "network.xyo.domain";
@@ -62,28 +34,28 @@ var domainConfigTemplate = /* @__PURE__ */ __name(() => ({
62
34
  }), "domainConfigTemplate");
63
35
 
64
36
  // src/Wrapper.ts
65
- var import_axios = require("@xylabs/axios");
66
- var import_lodash = require("@xylabs/lodash");
67
- var import_platform = require("@xylabs/platform");
68
- var import_dns = require("@xyo-network/dns");
69
- var import_hash = require("@xyo-network/hash");
70
- var import_huri = require("@xyo-network/huri");
71
- var import_payload_wrapper = require("@xyo-network/payload-wrapper");
72
- var _DomainPayloadWrapper = class _DomainPayloadWrapper extends import_payload_wrapper.PayloadWrapper {
37
+ import { axios } from "@xylabs/axios";
38
+ import { reverse } from "@xylabs/lodash";
39
+ import { isBrowser } from "@xylabs/platform";
40
+ import { DnsRecordType, domainResolve } from "@xyo-network/dns";
41
+ import { PayloadHasher } from "@xyo-network/hash";
42
+ import { Huri } from "@xyo-network/huri";
43
+ import { PayloadWrapper } from "@xyo-network/payload-wrapper";
44
+ var _DomainPayloadWrapper = class _DomainPayloadWrapper extends PayloadWrapper {
73
45
  aliases;
74
46
  static async discover(reverseDomainName, proxy) {
75
47
  const parts = reverseDomainName.split(".");
76
48
  for (let i = 2; i <= parts.length; i++) {
77
- const domainToCheck = (0, import_lodash.reverse)(parts.filter((_, index) => index < i)).join(".");
49
+ const domainToCheck = reverse(parts.filter((_, index) => index < i)).join(".");
78
50
  return await this.discoverDNSEntry(domainToCheck) ?? await this.discoverRootFile(domainToCheck, proxy);
79
51
  }
80
52
  }
81
53
  static async discoverDNSEntry(domain) {
82
54
  var _a, _b, _c;
83
55
  try {
84
- const hash = (_c = (_b = (_a = await (0, import_dns.domainResolve)(`_xyo.${domain}`, import_dns.DnsRecordType.TXT)) == null ? void 0 : _a.Answer) == null ? void 0 : _b[0]) == null ? void 0 : _c.data;
56
+ const hash = (_c = (_b = (_a = await domainResolve(`_xyo.${domain}`, DnsRecordType.TXT)) == null ? void 0 : _a.Answer) == null ? void 0 : _b[0]) == null ? void 0 : _c.data;
85
57
  if (hash) {
86
- const huri = new import_huri.Huri(hash);
58
+ const huri = new Huri(hash);
87
59
  const payload = await huri.fetch();
88
60
  if (payload) {
89
61
  return new _DomainPayloadWrapper(payload);
@@ -94,11 +66,11 @@ var _DomainPayloadWrapper = class _DomainPayloadWrapper extends import_payload_w
94
66
  }
95
67
  }
96
68
  static async discoverRootFile(domain, proxy) {
97
- return (0, import_platform.isBrowser)() || proxy ? await this.discoverRootFileWithProxy(domain, proxy) : await this.discoverRootFileDirect(domain);
69
+ return isBrowser() || proxy ? await this.discoverRootFileWithProxy(domain, proxy) : await this.discoverRootFileDirect(domain);
98
70
  }
99
71
  static async discoverRootFileDirect(domain) {
100
72
  try {
101
- const config = (await import_axios.axios.get(`https://${domain}/xyo-config.json`)).data;
73
+ const config = (await axios.get(`https://${domain}/xyo-config.json`)).data;
102
74
  return new _DomainPayloadWrapper(config);
103
75
  } catch {
104
76
  console.log(`DomainConfig root file not found [${domain}]`);
@@ -107,7 +79,7 @@ var _DomainPayloadWrapper = class _DomainPayloadWrapper extends import_payload_w
107
79
  static async discoverRootFileWithProxy(domain, proxy = "https://api.archivist.xyo.network/domain") {
108
80
  try {
109
81
  const requestUrl = `${proxy}/${domain.split(".").reverse().join(".")}`;
110
- const config = (await import_axios.axios.get(requestUrl)).data.data;
82
+ const config = (await axios.get(requestUrl)).data.data;
111
83
  return new _DomainPayloadWrapper(config);
112
84
  } catch (ex) {
113
85
  const error = ex;
@@ -130,7 +102,7 @@ var _DomainPayloadWrapper = class _DomainPayloadWrapper extends import_payload_w
130
102
  }
131
103
  }
132
104
  async fetchAlias(alias, huriOptions) {
133
- const huri = new import_huri.Huri(alias.huri, huriOptions);
105
+ const huri = new Huri(alias.huri, huriOptions);
134
106
  const payload = await huri.fetch();
135
107
  return payload ? {
136
108
  alias,
@@ -144,23 +116,23 @@ var _DomainPayloadWrapper = class _DomainPayloadWrapper extends import_payload_w
144
116
  }
145
117
  async getNetwork(hash) {
146
118
  var _a;
147
- return hash ? await import_hash.PayloadHasher.find(this.jsonPayload().networks, hash) : (_a = this.jsonPayload().networks) == null ? void 0 : _a[0];
119
+ return hash ? await PayloadHasher.find(this.jsonPayload().networks, hash) : (_a = this.jsonPayload().networks) == null ? void 0 : _a[0];
148
120
  }
149
121
  };
150
122
  __name(_DomainPayloadWrapper, "DomainPayloadWrapper");
151
123
  var DomainPayloadWrapper = _DomainPayloadWrapper;
152
124
 
153
125
  // src/Plugin.ts
154
- var DomainPayloadPlugin = /* @__PURE__ */ __name(() => (0, import_payload_plugin.createPayloadPlugin)({
126
+ var DomainPayloadPlugin = /* @__PURE__ */ __name(() => createPayloadPlugin({
155
127
  schema: DomainSchema,
156
128
  template: domainConfigTemplate,
157
129
  wrap: (payload) => DomainPayloadWrapper.wrap(payload)
158
130
  }), "DomainPayloadPlugin");
159
- // Annotate the CommonJS export names for ESM import in node:
160
- 0 && (module.exports = {
131
+ export {
161
132
  DomainPayloadPlugin,
162
133
  DomainPayloadWrapper,
163
134
  DomainSchema,
135
+ DomainPayloadPlugin as default,
164
136
  domainConfigTemplate
165
- });
137
+ };
166
138
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/index.ts","../../src/Plugin.ts","../../src/Schema.ts","../../src/Template.ts","../../src/Wrapper.ts"],"sourcesContent":["export * from './Payload'\nexport { DomainPayloadPlugin as default, DomainPayloadPlugin } from './Plugin'\nexport * from './Schema'\nexport * from './Template'\nexport * from './Wrapper'\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 { axios, AxiosError } from '@xylabs/axios'\nimport { reverse } from '@xylabs/lodash'\nimport { isBrowser } from '@xylabs/platform'\nimport { ApiEnvelope } from '@xyo-network/api-models'\nimport { DnsRecordType, domainResolve } from '@xyo-network/dns'\nimport { PayloadHasher } from '@xyo-network/hash'\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 {\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 {\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(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 ? { 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 // eslint-disable-next-line unicorn/no-array-method-this-argument\n return hash ? await PayloadHasher.find(this.jsonPayload().networks, hash) : this.jsonPayload().networks?.[0]\n }\n}\n"],"mappings":"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","names":["DomainSchema","domainConfigTemplate","aliases","huri","networks","name","nodes","schema","slug","type","uri","DomainSchema","DomainPayloadWrapper","PayloadWrapper","aliases","discover","reverseDomainName","proxy","parts","split","i","length","domainToCheck","reverse","filter","_","index","join","discoverDNSEntry","discoverRootFile","domain","hash","domainResolve","DnsRecordType","TXT","Answer","data","huri","Huri","payload","fetch","console","log","isBrowser","discoverRootFileWithProxy","discoverRootFileDirect","config","axios","get","requestUrl","ex","error","code","networkSlug","fetchAliases","archivistUri","findArchivistUri","fetchedAliases","Promise","all","Object","entries","map","alias","fetchAlias","Boolean","huriOptions","getNetwork","nodes","find","type","undefined","uri","PayloadHasher","jsonPayload","networks","DomainPayloadPlugin","createPayloadPlugin","schema","DomainSchema","template","domainConfigTemplate","wrap","payload","DomainPayloadWrapper"]}
1
+ {"version":3,"sources":["../../src/Plugin.ts","../../src/Schema.ts","../../src/Template.ts","../../src/Wrapper.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 { axios, AxiosError } from '@xylabs/axios'\nimport { reverse } from '@xylabs/lodash'\nimport { isBrowser } from '@xylabs/platform'\nimport { ApiEnvelope } from '@xyo-network/api-models'\nimport { DnsRecordType, domainResolve } from '@xyo-network/dns'\nimport { PayloadHasher } from '@xyo-network/hash'\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 {\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 {\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(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 ? { 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 // eslint-disable-next-line unicorn/no-array-method-this-argument\n return hash ? await PayloadHasher.find(this.jsonPayload().networks, hash) : this.jsonPayload().networks?.[0]\n }\n}\n"],"mappings":";;;;AACA,SAASA,2BAA2B;;;ACA7B,IAAMC,eAA6B;;;ACEnC,IAAMC,uBAAuB,8BAAsB;EACxDC,SAAS;IACP,kBAAkB;MAChBC,MAAM;IACR;EACF;EACAC,UAAU;IACR;MACEC,MAAM;MACNC,OAAO;QACL;UACED,MAAM;UACNE,QAAQ;UACRC,MAAM;UACNC,MAAM;UACNC,KAAK;QACP;;MAEFH,QAAQ;MACRC,MAAM;IACR;;EAEFD,QAAQI;AACV,IAvBoC;;;ACHpC,SAASC,aAAyB;AAClC,SAASC,eAAe;AACxB,SAASC,iBAAiB;AAE1B,SAASC,eAAeC,qBAAqB;AAC7C,SAASC,qBAAqB;AAC9B,SAAyBC,YAAyB;AAElD,SAASC,sBAAsB;AAQxB,IAAMC,wBAAN,MAAMA,8BAAsEC,eAAAA;EACjFC;EAEA,aAAaC,SAASC,mBAA2BC,OAAgB;AAC/D,UAAMC,QAAQF,kBAAkBG,MAAM,GAAA;AACtC,aAASC,IAAI,GAAGA,KAAKF,MAAMG,QAAQD,KAAK;AACtC,YAAME,gBAAgBC,QAAQL,MAAMM,OAAO,CAACC,GAAGC,UAAUA,QAAQN,CAAAA,CAAAA,EAAIO,KAAK,GAAA;AAC1E,aAAQ,MAAM,KAAKC,iBAAiBN,aAAAA,KAAoB,MAAM,KAAKO,iBAAiBP,eAAeL,KAAAA;IACrG;EACF;EAEA,aAAaW,iBAAiBE,QAAgB;AA3BhD;AA4BI,QAAI;AACF,YAAMC,QAAQ,uBAAMC,cAAc,QAAQF,MAAAA,IAAUG,cAAcC,GAAG,MAAvD,mBAA2DC,WAA3D,mBAAoE,OAApE,mBAAwEC;AACtF,UAAIL,MAAM;AACR,cAAMM,OAAO,IAAIC,KAAKP,IAAAA;AACtB,cAAMQ,UAAW,MAAMF,KAAKG,MAAK;AACjC,YAAID,SAAS;AACX,iBAAO,IAAI3B,sBAAqB2B,OAAAA;QAClC;MACF;IACF,QAAQ;AACNE,cAAQC,IAAI,mDAAmDZ,MAAAA,GAAS;IAC1E;EACF;EAEA,aAAaD,iBAAiBC,QAAgBb,OAAgB;AAC5D,WAAO0B,UAAAA,KAAe1B,QAAQ,MAAM,KAAK2B,0BAA0Bd,QAAQb,KAAAA,IAAS,MAAM,KAAK4B,uBAAuBf,MAAAA;EACxH;EAEA,aAAae,uBAAuBf,QAAgB;AAClD,QAAI;AACF,YAAMgB,UAAU,MAAMC,MAAMC,IAAmB,WAAWlB,MAAAA,kBAAwB,GAAGM;AACrF,aAAO,IAAIxB,sBAAqBkC,MAAAA;IAClC,QAAQ;AACNL,cAAQC,IAAI,qCAAqCZ,MAAAA,GAAS;IAC5D;EACF;EAEA,aAAac,0BAA0Bd,QAAgBb,QAAQ,4CAA4C;AACzG,QAAI;AACF,YAAMgC,aAAa,GAAGhC,KAAAA,IAASa,OAAOX,MAAM,GAAA,EAAKI,QAAO,EAAGI,KAAK,GAAA,CAAA;AAChE,YAAMmB,UAAU,MAAMC,MAAMC,IAAgCC,UAAAA,GAAab,KAAKA;AAC9E,aAAO,IAAIxB,sBAAqBkC,MAAAA;IAClC,SAASI,IAAI;AACX,YAAMC,QAAQD;AACdT,cAAQC,IAAI,iDAAiDZ,MAAAA,MAAYqB,MAAMC,IAAI,GAAG;IACxF;EACF;EAEA,MAAMZ,MAAMa,aAAsB;AAChC,UAAM,KAAKC,aAAaD,WAAAA;EAC1B;EAEA,MAAMC,aAAaD,aAAsB;AAEvC,SAAKvC,UAAU;AAEf,UAAMyC,eAAe,MAAM,KAAKC,iBAAiBH,WAAAA;AACjD,QAAI,KAAKd,QAAO,EAAGzB,SAAS;AAC1B,YAAM2C,iBAAiB,MAAMC,QAAQC,IACnCC,OAAOC,QAAQ,KAAKtB,QAAO,EAAGzB,WAAW,CAAC,CAAA,EAAGgD,IAAI,CAAC,CAAA,EAAGC,KAAAA,MAAM;AACzD,eAAO,KAAKC,WAAWD,OAAO;UAAER;QAAa,CAAA;MAC/C,CAAA,CAAA;AAGF,WAAKzC,UAAU2C,eAAejC,OAAOyC,OAAAA;IACvC;EACF;EAEA,MAAcD,WAAWD,OAAcG,aAAyD;AAC9F,UAAM7B,OAAO,IAAIC,KAAKyB,MAAM1B,MAAM6B,WAAAA;AAClC,UAAM3B,UAAU,MAAMF,KAAKG,MAAK;AAChC,WAAOD,UAAU;MAAEwB;MAAO1B;MAAME;IAAiB,IAAI;EACvD;EAEA,MAAciB,iBAAiBzB,MAA4C;AA5F7E;AA6FI,YAAQ,uBAAM,KAAKoC,WAAWpC,IAAAA,MAAtB,mBAA8BqC,UAA9B,mBAAqCC,KAAK,CAAC9B,YAAaA,QAAQ+B,SAAS,cAAc/B,UAAUgC,YAAjG,mBAA8GC;EACxH;EAEA,MAAcL,WAAWpC,MAAoD;AAhG/E;AAkGI,WAAOA,OAAO,MAAM0C,cAAcJ,KAAK,KAAKK,YAAW,EAAGC,UAAU5C,IAAAA,KAAQ,UAAK2C,YAAW,EAAGC,aAAnB,mBAA8B;EAC5G;AACF;AApFmF9D;AAA5E,IAAMD,uBAAN;;;AHRA,IAAMgE,sBAAsB,6BACjCC,oBAAmC;EACjCC,QAAQC;EACRC,UAAUC;EACVC,MAAM,CAACC,YAAqBC,qBAAqBF,KAAKC,OAAAA;AACxD,CAAA,GALiC;","names":["createPayloadPlugin","DomainSchema","domainConfigTemplate","aliases","huri","networks","name","nodes","schema","slug","type","uri","DomainSchema","axios","reverse","isBrowser","DnsRecordType","domainResolve","PayloadHasher","Huri","PayloadWrapper","DomainPayloadWrapper","PayloadWrapper","aliases","discover","reverseDomainName","proxy","parts","split","i","length","domainToCheck","reverse","filter","_","index","join","discoverDNSEntry","discoverRootFile","domain","hash","domainResolve","DnsRecordType","TXT","Answer","data","huri","Huri","payload","fetch","console","log","isBrowser","discoverRootFileWithProxy","discoverRootFileDirect","config","axios","get","requestUrl","ex","error","code","networkSlug","fetchAliases","archivistUri","findArchivistUri","fetchedAliases","Promise","all","Object","entries","map","alias","fetchAlias","Boolean","huriOptions","getNetwork","nodes","find","type","undefined","uri","PayloadHasher","jsonPayload","networks","DomainPayloadPlugin","createPayloadPlugin","schema","DomainSchema","template","domainConfigTemplate","wrap","payload","DomainPayloadWrapper"]}
package/package.json CHANGED
@@ -13,22 +13,21 @@
13
13
  "@xylabs/axios": "^2.13.23",
14
14
  "@xylabs/lodash": "^2.13.23",
15
15
  "@xylabs/platform": "^2.13.23",
16
- "@xyo-network/api-models": "~2.87.0",
17
- "@xyo-network/dns": "~2.87.0",
18
- "@xyo-network/hash": "~2.87.0",
19
- "@xyo-network/huri": "~2.87.0",
20
- "@xyo-network/network": "~2.87.0",
21
- "@xyo-network/payload-model": "~2.87.0",
22
- "@xyo-network/payload-plugin": "~2.87.0",
23
- "@xyo-network/payload-wrapper": "~2.87.0"
16
+ "@xyo-network/api-models": "~2.87.2",
17
+ "@xyo-network/dns": "~2.87.2",
18
+ "@xyo-network/hash": "~2.87.2",
19
+ "@xyo-network/huri": "~2.87.2",
20
+ "@xyo-network/network": "~2.87.2",
21
+ "@xyo-network/payload-model": "~2.87.2",
22
+ "@xyo-network/payload-plugin": "~2.87.2",
23
+ "@xyo-network/payload-wrapper": "~2.87.2"
24
24
  },
25
25
  "devDependencies": {
26
- "@xylabs/ts-scripts-yarn3": "^3.2.33",
27
- "@xylabs/tsconfig": "^3.2.33",
26
+ "@xylabs/ts-scripts-yarn3": "^3.2.41",
27
+ "@xylabs/tsconfig": "^3.2.41",
28
28
  "typescript": "^5.3.3"
29
29
  },
30
30
  "description": "Typescript/Javascript Plugins for XYO Platform",
31
- "docs": "dist/docs.json",
32
31
  "exports": {
33
32
  ".": {
34
33
  "browser": {
@@ -43,19 +42,20 @@
43
42
  },
44
43
  "node": {
45
44
  "require": {
46
- "types": "./dist/node/index.d.ts",
47
- "default": "./dist/node/index.js"
45
+ "types": "./dist/node/index.d.cts",
46
+ "default": "./dist/node/index.cjs"
48
47
  },
49
48
  "import": {
50
49
  "types": "./dist/node/index.d.mts",
51
- "default": "./dist/node/index.mjs"
50
+ "default": "./dist/node/index.js"
52
51
  }
53
52
  }
54
53
  },
55
54
  "./package.json": "./package.json"
56
55
  },
57
- "main": "dist/node/index.js",
58
- "module": "dist/node/index.mjs",
56
+ "main": "dist/node/index.cjs",
57
+ "module": "dist/node/index.js",
58
+ "types": "dist/node/index.d.ts",
59
59
  "homepage": "https://xyo.network",
60
60
  "license": "LGPL-3.0-only",
61
61
  "publishConfig": {
@@ -66,6 +66,6 @@
66
66
  "url": "https://github.com/XYOracleNetwork/plugins.git"
67
67
  },
68
68
  "sideEffects": false,
69
- "types": "dist/node/index.d.ts",
70
- "version": "2.87.0"
69
+ "version": "2.87.2",
70
+ "type": "module"
71
71
  }
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/Plugin.ts","../../src/Schema.ts","../../src/Template.ts","../../src/Wrapper.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 { axios, AxiosError } from '@xylabs/axios'\nimport { reverse } from '@xylabs/lodash'\nimport { isBrowser } from '@xylabs/platform'\nimport { ApiEnvelope } from '@xyo-network/api-models'\nimport { DnsRecordType, domainResolve } from '@xyo-network/dns'\nimport { PayloadHasher } from '@xyo-network/hash'\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 {\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 {\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(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 ? { 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 // eslint-disable-next-line unicorn/no-array-method-this-argument\n return hash ? await PayloadHasher.find(this.jsonPayload().networks, hash) : this.jsonPayload().networks?.[0]\n }\n}\n"],"mappings":"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","names":["createPayloadPlugin","DomainSchema","domainConfigTemplate","aliases","huri","networks","name","nodes","schema","slug","type","uri","DomainSchema","axios","reverse","isBrowser","DnsRecordType","domainResolve","PayloadHasher","Huri","PayloadWrapper","DomainPayloadWrapper","PayloadWrapper","aliases","discover","reverseDomainName","proxy","parts","split","i","length","domainToCheck","reverse","filter","_","index","join","discoverDNSEntry","discoverRootFile","domain","hash","domainResolve","DnsRecordType","TXT","Answer","data","huri","Huri","payload","fetch","console","log","isBrowser","discoverRootFileWithProxy","discoverRootFileDirect","config","axios","get","requestUrl","ex","error","code","networkSlug","fetchAliases","archivistUri","findArchivistUri","fetchedAliases","Promise","all","Object","entries","map","alias","fetchAlias","Boolean","huriOptions","getNetwork","nodes","find","type","undefined","uri","PayloadHasher","jsonPayload","networks","DomainPayloadPlugin","createPayloadPlugin","schema","DomainSchema","template","domainConfigTemplate","wrap","payload","DomainPayloadWrapper"]}