@xyo-network/domain-payload-plugin 5.2.25 → 5.3.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.
package/dist/neutral/Schema.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Schema.d.ts","sourceRoot":"","sources":["../../src/Schema.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Schema.d.ts","sourceRoot":"","sources":["../../src/Schema.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,YAAY;;CAAuC,CAAA;AAChE,MAAM,MAAM,YAAY,GAAG,OAAO,YAAY,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Template.d.ts","sourceRoot":"","sources":["../../src/Template.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Template.d.ts","sourceRoot":"","sources":["../../src/Template.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA;AAGjD,eAAO,MAAM,oBAAoB,QAAO,aAmBtC,CAAA"}
|
package/dist/neutral/index.mjs
CHANGED
|
@@ -2,7 +2,8 @@
|
|
|
2
2
|
import { isPayloadOfSchemaType } from "@xyo-network/payload-model";
|
|
3
3
|
|
|
4
4
|
// src/Schema.ts
|
|
5
|
-
|
|
5
|
+
import { asSchema } from "@xyo-network/payload-model";
|
|
6
|
+
var DomainSchema = asSchema("network.xyo.domain", true);
|
|
6
7
|
|
|
7
8
|
// src/Payload.ts
|
|
8
9
|
var isDomainPayload = isPayloadOfSchemaType(DomainSchema);
|
|
@@ -11,6 +12,7 @@ var isDomainPayload = isPayloadOfSchemaType(DomainSchema);
|
|
|
11
12
|
import { createPayloadPlugin } from "@xyo-network/payload-plugin";
|
|
12
13
|
|
|
13
14
|
// src/Template.ts
|
|
15
|
+
import { asSchema as asSchema2 } from "@xyo-network/payload-model";
|
|
14
16
|
var domainConfigTemplate = () => ({
|
|
15
17
|
aliases: { "com.example.id": { huri: "" } },
|
|
16
18
|
networks: [
|
|
@@ -19,13 +21,13 @@ var domainConfigTemplate = () => ({
|
|
|
19
21
|
nodes: [
|
|
20
22
|
{
|
|
21
23
|
name: "",
|
|
22
|
-
schema: "network.xyo.network.node",
|
|
24
|
+
schema: asSchema2("network.xyo.network.node", true),
|
|
23
25
|
slug: "",
|
|
24
26
|
type: "archivist",
|
|
25
27
|
uri: ""
|
|
26
28
|
}
|
|
27
29
|
],
|
|
28
|
-
schema: "network.xyo.network",
|
|
30
|
+
schema: asSchema2("network.xyo.network", true),
|
|
29
31
|
slug: ""
|
|
30
32
|
}
|
|
31
33
|
],
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/Payload.ts","../../src/Schema.ts","../../src/Plugin.ts","../../src/Template.ts","../../src/Wrapper.ts"],"sourcesContent":["import type { NetworkPayload } from '@xyo-network/network'\nimport { isPayloadOfSchemaType, type Payload } from '@xyo-network/payload-model'\n\nimport { DomainSchema } from './Schema.ts'\n\nexport interface Alias {\n /** @field huri to the aliased payload */\n huri: string\n /** @field canonical name (ex. network.xyo.example) */\n name?: string\n}\n\nexport type DomainPayload = Payload<{\n /** @field Additional config files [huri] [out] */\n additional?: string[]\n /** @field Values associated with this domain [out] */\n aliases?: Record<string, Alias>\n /** @field Known networks [out] */\n networks?: NetworkPayload[]\n}, DomainSchema>\n\nexport const isDomainPayload = isPayloadOfSchemaType<DomainPayload>(DomainSchema)\n","
|
|
1
|
+
{"version":3,"sources":["../../src/Payload.ts","../../src/Schema.ts","../../src/Plugin.ts","../../src/Template.ts","../../src/Wrapper.ts"],"sourcesContent":["import type { NetworkPayload } from '@xyo-network/network'\nimport { isPayloadOfSchemaType, type Payload } from '@xyo-network/payload-model'\n\nimport { DomainSchema } from './Schema.ts'\n\nexport interface Alias {\n /** @field huri to the aliased payload */\n huri: string\n /** @field canonical name (ex. network.xyo.example) */\n name?: string\n}\n\nexport type DomainPayload = Payload<{\n /** @field Additional config files [huri] [out] */\n additional?: string[]\n /** @field Values associated with this domain [out] */\n aliases?: Record<string, Alias>\n /** @field Known networks [out] */\n networks?: NetworkPayload[]\n}, DomainSchema>\n\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 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 axiosJson, Base, 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'\nimport type { AxiosError } from 'axios'\n\nimport {\n type Alias, type DomainPayload, isDomainPayload,\n} from './Payload.ts'\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 = 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 hash = (await domainResolve(`_xyo.${domain}`, DnsRecordType.TXT))?.Answer?.[0]?.data\n if (isHash(hash)) {\n const huri = new Huri(hash)\n const payload = (await huri.fetch())\n if (isDomainPayload(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 return isBrowser() || isString(proxy) ? await this.discoverRootFileWithProxy(domain, proxy) : await this.discoverRootFileDirect(domain)\n }\n\n static async discoverRootFileDirect(domain: string) {\n try {\n const config = (await axiosJson.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('.').toReversed().join('.')}`\n const config = (await axiosJson.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?: 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"],"mappings":"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","names":["asSchema","asSchema"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@xyo-network/domain-payload-plugin",
|
|
3
|
-
"version": "5.
|
|
3
|
+
"version": "5.3.0",
|
|
4
4
|
"description": "Typescript/Javascript Plugins for XYO Platform",
|
|
5
5
|
"homepage": "https://xyo.network",
|
|
6
6
|
"bugs": {
|
|
@@ -36,23 +36,23 @@
|
|
|
36
36
|
"!**/*.test.*"
|
|
37
37
|
],
|
|
38
38
|
"dependencies": {
|
|
39
|
-
"@xylabs/sdk-js": "~5.0.
|
|
40
|
-
"@xyo-network/dns": "~5.
|
|
41
|
-
"@xyo-network/huri": "~5.
|
|
42
|
-
"@xyo-network/network": "~5.
|
|
43
|
-
"@xyo-network/payload-builder": "~5.
|
|
44
|
-
"@xyo-network/payload-model": "~5.
|
|
45
|
-
"@xyo-network/payload-plugin": "~5.
|
|
46
|
-
"@xyo-network/payload-wrapper": "~5.
|
|
39
|
+
"@xylabs/sdk-js": "~5.0.64",
|
|
40
|
+
"@xyo-network/dns": "~5.3.0",
|
|
41
|
+
"@xyo-network/huri": "~5.3.0",
|
|
42
|
+
"@xyo-network/network": "~5.3.0",
|
|
43
|
+
"@xyo-network/payload-builder": "~5.3.0",
|
|
44
|
+
"@xyo-network/payload-model": "~5.3.0",
|
|
45
|
+
"@xyo-network/payload-plugin": "~5.3.0",
|
|
46
|
+
"@xyo-network/payload-wrapper": "~5.3.0"
|
|
47
47
|
},
|
|
48
48
|
"devDependencies": {
|
|
49
|
-
"@xylabs/ts-scripts-yarn3": "~7.2
|
|
50
|
-
"@xylabs/tsconfig": "~7.2
|
|
51
|
-
"@xylabs/vitest-extended": "~5.0.
|
|
52
|
-
"@xyo-network/api-models": "~5.
|
|
53
|
-
"axios": "^1.13.
|
|
49
|
+
"@xylabs/ts-scripts-yarn3": "~7.3.2",
|
|
50
|
+
"@xylabs/tsconfig": "~7.3.2",
|
|
51
|
+
"@xylabs/vitest-extended": "~5.0.64",
|
|
52
|
+
"@xyo-network/api-models": "~5.3.0",
|
|
53
|
+
"axios": "^1.13.3",
|
|
54
54
|
"typescript": "~5.9.3",
|
|
55
|
-
"vitest": "~4.0.
|
|
55
|
+
"vitest": "~4.0.18"
|
|
56
56
|
},
|
|
57
57
|
"publishConfig": {
|
|
58
58
|
"access": "public"
|
package/src/Schema.ts
CHANGED
package/src/Template.ts
CHANGED
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
import { asSchema } from '@xyo-network/payload-model'
|
|
2
|
+
|
|
1
3
|
import type { DomainPayload } from './Payload.ts'
|
|
2
4
|
import { DomainSchema } from './Schema.ts'
|
|
3
5
|
|
|
@@ -9,13 +11,13 @@ export const domainConfigTemplate = (): DomainPayload => ({
|
|
|
9
11
|
nodes: [
|
|
10
12
|
{
|
|
11
13
|
name: '',
|
|
12
|
-
schema: 'network.xyo.network.node',
|
|
14
|
+
schema: asSchema('network.xyo.network.node', true),
|
|
13
15
|
slug: '',
|
|
14
16
|
type: 'archivist',
|
|
15
17
|
uri: '',
|
|
16
18
|
},
|
|
17
19
|
],
|
|
18
|
-
schema: 'network.xyo.network',
|
|
20
|
+
schema: asSchema('network.xyo.network', true),
|
|
19
21
|
slug: '',
|
|
20
22
|
},
|
|
21
23
|
],
|