@xyo-network/url-plugin 2.99.0 → 2.99.1
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/browser/PluginBrowser.d.cts +2 -2
- package/dist/browser/PluginBrowser.d.cts.map +1 -1
- package/dist/browser/PluginBrowser.d.mts +2 -2
- package/dist/browser/PluginBrowser.d.mts.map +1 -1
- package/dist/browser/PluginBrowser.d.ts +2 -2
- package/dist/browser/PluginBrowser.d.ts.map +1 -1
- package/dist/browser/PluginNode.d.cts +2 -2
- package/dist/browser/PluginNode.d.cts.map +1 -1
- package/dist/browser/PluginNode.d.mts +2 -2
- package/dist/browser/PluginNode.d.mts.map +1 -1
- package/dist/browser/PluginNode.d.ts +2 -2
- package/dist/browser/PluginNode.d.ts.map +1 -1
- package/dist/browser/Witness/Params.d.cts +1 -1
- package/dist/browser/Witness/Params.d.cts.map +1 -1
- package/dist/browser/Witness/Params.d.mts +1 -1
- package/dist/browser/Witness/Params.d.mts.map +1 -1
- package/dist/browser/Witness/Params.d.ts +1 -1
- package/dist/browser/Witness/Params.d.ts.map +1 -1
- package/dist/browser/Witness/Witness.d.cts +1 -1
- package/dist/browser/Witness/Witness.d.cts.map +1 -1
- package/dist/browser/Witness/Witness.d.mts +1 -1
- package/dist/browser/Witness/Witness.d.mts.map +1 -1
- package/dist/browser/Witness/Witness.d.ts +1 -1
- package/dist/browser/Witness/Witness.d.ts.map +1 -1
- package/dist/browser/Witness/index.d.cts +3 -3
- package/dist/browser/Witness/index.d.cts.map +1 -1
- package/dist/browser/Witness/index.d.mts +3 -3
- package/dist/browser/Witness/index.d.mts.map +1 -1
- package/dist/browser/Witness/index.d.ts +3 -3
- package/dist/browser/Witness/index.d.ts.map +1 -1
- package/dist/browser/indexBrowser.cjs.map +1 -1
- package/dist/browser/indexBrowser.d.cts +2 -2
- package/dist/browser/indexBrowser.d.cts.map +1 -1
- package/dist/browser/indexBrowser.d.mts +2 -2
- package/dist/browser/indexBrowser.d.mts.map +1 -1
- package/dist/browser/indexBrowser.d.ts +2 -2
- package/dist/browser/indexBrowser.d.ts.map +1 -1
- package/dist/browser/indexBrowser.js.map +1 -1
- package/dist/browser/indexNode.d.cts +2 -2
- package/dist/browser/indexNode.d.cts.map +1 -1
- package/dist/browser/indexNode.d.mts +2 -2
- package/dist/browser/indexNode.d.mts.map +1 -1
- package/dist/browser/indexNode.d.ts +2 -2
- package/dist/browser/indexNode.d.ts.map +1 -1
- package/dist/browser/util/index.d.cts +1 -1
- package/dist/browser/util/index.d.cts.map +1 -1
- package/dist/browser/util/index.d.mts +1 -1
- package/dist/browser/util/index.d.mts.map +1 -1
- package/dist/browser/util/index.d.ts +1 -1
- package/dist/browser/util/index.d.ts.map +1 -1
- package/dist/neutral/PluginBrowser.d.cts +2 -2
- package/dist/neutral/PluginBrowser.d.cts.map +1 -1
- package/dist/neutral/PluginBrowser.d.mts +2 -2
- package/dist/neutral/PluginBrowser.d.mts.map +1 -1
- package/dist/neutral/PluginBrowser.d.ts +2 -2
- package/dist/neutral/PluginBrowser.d.ts.map +1 -1
- package/dist/neutral/PluginNode.d.cts +2 -2
- package/dist/neutral/PluginNode.d.cts.map +1 -1
- package/dist/neutral/PluginNode.d.mts +2 -2
- package/dist/neutral/PluginNode.d.mts.map +1 -1
- package/dist/neutral/PluginNode.d.ts +2 -2
- package/dist/neutral/PluginNode.d.ts.map +1 -1
- package/dist/neutral/Witness/Params.d.cts +1 -1
- package/dist/neutral/Witness/Params.d.cts.map +1 -1
- package/dist/neutral/Witness/Params.d.mts +1 -1
- package/dist/neutral/Witness/Params.d.mts.map +1 -1
- package/dist/neutral/Witness/Params.d.ts +1 -1
- package/dist/neutral/Witness/Params.d.ts.map +1 -1
- package/dist/neutral/Witness/Witness.d.cts +1 -1
- package/dist/neutral/Witness/Witness.d.cts.map +1 -1
- package/dist/neutral/Witness/Witness.d.mts +1 -1
- package/dist/neutral/Witness/Witness.d.mts.map +1 -1
- package/dist/neutral/Witness/Witness.d.ts +1 -1
- package/dist/neutral/Witness/Witness.d.ts.map +1 -1
- package/dist/neutral/Witness/index.d.cts +3 -3
- package/dist/neutral/Witness/index.d.cts.map +1 -1
- package/dist/neutral/Witness/index.d.mts +3 -3
- package/dist/neutral/Witness/index.d.mts.map +1 -1
- package/dist/neutral/Witness/index.d.ts +3 -3
- package/dist/neutral/Witness/index.d.ts.map +1 -1
- package/dist/neutral/indexBrowser.d.cts +2 -2
- package/dist/neutral/indexBrowser.d.cts.map +1 -1
- package/dist/neutral/indexBrowser.d.mts +2 -2
- package/dist/neutral/indexBrowser.d.mts.map +1 -1
- package/dist/neutral/indexBrowser.d.ts +2 -2
- package/dist/neutral/indexBrowser.d.ts.map +1 -1
- package/dist/neutral/indexNode.cjs.map +1 -1
- package/dist/neutral/indexNode.d.cts +2 -2
- package/dist/neutral/indexNode.d.cts.map +1 -1
- package/dist/neutral/indexNode.d.mts +2 -2
- package/dist/neutral/indexNode.d.mts.map +1 -1
- package/dist/neutral/indexNode.d.ts +2 -2
- package/dist/neutral/indexNode.d.ts.map +1 -1
- package/dist/neutral/indexNode.js.map +1 -1
- package/dist/neutral/util/index.d.cts +1 -1
- package/dist/neutral/util/index.d.cts.map +1 -1
- package/dist/neutral/util/index.d.mts +1 -1
- package/dist/neutral/util/index.d.mts.map +1 -1
- package/dist/neutral/util/index.d.ts +1 -1
- package/dist/neutral/util/index.d.ts.map +1 -1
- package/dist/node/PluginBrowser.d.cts +2 -2
- package/dist/node/PluginBrowser.d.cts.map +1 -1
- package/dist/node/PluginBrowser.d.mts +2 -2
- package/dist/node/PluginBrowser.d.mts.map +1 -1
- package/dist/node/PluginBrowser.d.ts +2 -2
- package/dist/node/PluginBrowser.d.ts.map +1 -1
- package/dist/node/PluginNode.d.cts +2 -2
- package/dist/node/PluginNode.d.cts.map +1 -1
- package/dist/node/PluginNode.d.mts +2 -2
- package/dist/node/PluginNode.d.mts.map +1 -1
- package/dist/node/PluginNode.d.ts +2 -2
- package/dist/node/PluginNode.d.ts.map +1 -1
- package/dist/node/Witness/Params.d.cts +1 -1
- package/dist/node/Witness/Params.d.cts.map +1 -1
- package/dist/node/Witness/Params.d.mts +1 -1
- package/dist/node/Witness/Params.d.mts.map +1 -1
- package/dist/node/Witness/Params.d.ts +1 -1
- package/dist/node/Witness/Params.d.ts.map +1 -1
- package/dist/node/Witness/Witness.d.cts +1 -1
- package/dist/node/Witness/Witness.d.cts.map +1 -1
- package/dist/node/Witness/Witness.d.mts +1 -1
- package/dist/node/Witness/Witness.d.mts.map +1 -1
- package/dist/node/Witness/Witness.d.ts +1 -1
- package/dist/node/Witness/Witness.d.ts.map +1 -1
- package/dist/node/Witness/index.d.cts +3 -3
- package/dist/node/Witness/index.d.cts.map +1 -1
- package/dist/node/Witness/index.d.mts +3 -3
- package/dist/node/Witness/index.d.mts.map +1 -1
- package/dist/node/Witness/index.d.ts +3 -3
- package/dist/node/Witness/index.d.ts.map +1 -1
- package/dist/node/indexBrowser.d.cts +2 -2
- package/dist/node/indexBrowser.d.cts.map +1 -1
- package/dist/node/indexBrowser.d.mts +2 -2
- package/dist/node/indexBrowser.d.mts.map +1 -1
- package/dist/node/indexBrowser.d.ts +2 -2
- package/dist/node/indexBrowser.d.ts.map +1 -1
- package/dist/node/indexNode.cjs.map +1 -1
- package/dist/node/indexNode.d.cts +2 -2
- package/dist/node/indexNode.d.cts.map +1 -1
- package/dist/node/indexNode.d.mts +2 -2
- package/dist/node/indexNode.d.mts.map +1 -1
- package/dist/node/indexNode.d.ts +2 -2
- package/dist/node/indexNode.d.ts.map +1 -1
- package/dist/node/indexNode.js.map +1 -1
- package/dist/node/util/index.d.cts +1 -1
- package/dist/node/util/index.d.cts.map +1 -1
- package/dist/node/util/index.d.mts +1 -1
- package/dist/node/util/index.d.mts.map +1 -1
- package/dist/node/util/index.d.ts +1 -1
- package/dist/node/util/index.d.ts.map +1 -1
- package/package.json +9 -9
- package/src/PluginBrowser.ts +1 -1
- package/src/PluginNode.ts +1 -1
- package/src/Witness/Params.ts +1 -1
- package/src/Witness/Witness.ts +2 -2
- package/src/Witness/index.ts +3 -3
- package/src/indexBrowser.ts +2 -2
- package/src/indexNode.ts +4 -4
- package/src/util/hashUrl.ts +2 -2
- package/src/util/index.ts +1 -1
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
export { UrlPlugin as default, UrlPlugin } from './PluginNode';
|
|
2
|
-
export * from './Witness';
|
|
1
|
+
export { UrlPlugin as default, UrlPlugin } from './PluginNode.js';
|
|
2
|
+
export * from './Witness/index.js';
|
|
3
3
|
//# sourceMappingURL=indexBrowser.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"indexBrowser.d.ts","sourceRoot":"","sources":["../../src/indexBrowser.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,IAAI,OAAO,EAAE,SAAS,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"indexBrowser.d.ts","sourceRoot":"","sources":["../../src/indexBrowser.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,IAAI,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AACjE,cAAc,oBAAoB,CAAA"}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
export { UrlPlugin as default, UrlPlugin } from './PluginNode';
|
|
2
|
-
export * from './Witness';
|
|
1
|
+
export { UrlPlugin as default, UrlPlugin } from './PluginNode.js';
|
|
2
|
+
export * from './Witness/index.js';
|
|
3
3
|
//# sourceMappingURL=indexBrowser.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"indexBrowser.d.ts","sourceRoot":"","sources":["../../src/indexBrowser.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,IAAI,OAAO,EAAE,SAAS,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"indexBrowser.d.ts","sourceRoot":"","sources":["../../src/indexBrowser.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,IAAI,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AACjE,cAAc,oBAAoB,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/indexNode.ts","../../src/util/hashFile.ts","../../src/util/hashHttpUrl.ts","../../src/util/hashUrl.ts","../../src/Witness/Config.ts","../../src/Witness/Witness.ts","../../src/PluginNode.ts"],"sourcesContent":["import { hashUrl } from './util'\nimport { UrlWitness } from './Witness'\n\nUrlWitness.hashUrl = hashUrl\n\n// eslint-disable-next-line import/no-default-export\nexport { UrlPlugin as default, UrlPlugin } from './PluginNode'\nexport * from './Witness'\n","import { createReadStream } from 'node:fs'\nimport { fileURLToPath } from 'node:url'\n\nimport { Crypto } from '@xylabs/crypto'\n\nexport const hashFile = (url: string): Promise<string> => {\n const path = url.startsWith('file://') ? fileURLToPath(url) : url\n const ret = new Promise<string>((resolve, reject) => {\n const hash = Crypto.createHash('sha256')\n const stream = createReadStream(path)\n stream.on('data', (data) => {\n hash.update(data)\n })\n stream.on('end', () => {\n resolve(hash.digest('hex'))\n })\n stream.on('error', (err) => {\n reject(err)\n })\n })\n return ret\n}\n","import http from 'node:http'\nimport https from 'node:https'\n\nimport { Crypto } from '@xylabs/crypto'\n\nexport const hashHttpUrl = (url: string): Promise<string> => {\n const ret = new Promise<string>((resolve, reject) => {\n const hash = Crypto.createHash('sha256')\n const lib = url.startsWith('https') ? https : http\n lib\n .get(url, (res) => {\n res.on('data', (data) => {\n hash.update(data)\n })\n res.on('end', () => {\n resolve(hash.digest('hex'))\n })\n })\n .on('error', (err) => {\n reject(err)\n })\n })\n return ret\n}\n","import { hashFile } from './hashFile'\nimport { hashHttpUrl } from './hashHttpUrl'\n\nexport const hashUrl = (url: string): Promise<string> => {\n const scheme = url.split('://')[0]?.toLowerCase()\n switch (scheme) {\n case 'file': {\n return hashFile(url)\n }\n case 'http':\n case 'https': {\n return hashHttpUrl(url)\n }\n default: {\n throw new Error(`Unsupported URL scheme: ${scheme}`)\n }\n }\n}\n","import { UrlSchema } from '@xyo-network/url-payload-plugin'\nimport { WitnessConfig } from '@xyo-network/witness-model'\n\nexport const UrlWitnessConfigSchema = `${UrlSchema}.witness.config` as const\nexport type UrlWitnessConfigSchema = typeof UrlWitnessConfigSchema\n\nexport type UrlWitnessConfig = WitnessConfig<{\n schema: UrlWitnessConfigSchema\n urls?: string[]\n}>\n","import { assertEx } from '@xylabs/assert'\nimport { AbstractWitness } from '@xyo-network/abstract-witness'\nimport { Payload, Schema } from '@xyo-network/payload-model'\nimport { UrlPayload, UrlSchema } from '@xyo-network/url-payload-plugin'\n\nimport { UrlWitnessConfigSchema } from './Config'\nimport { UrlWitnessParams } from './Params'\n\nexport class UrlWitness<TParams extends UrlWitnessParams = UrlWitnessParams> extends AbstractWitness<TParams> {\n static override readonly configSchemas: Schema[] = [...super.configSchemas, UrlWitnessConfigSchema]\n static override readonly defaultConfigSchema: Schema = UrlWitnessConfigSchema\n static hashUrl: ((url: string) => Promise<string>) | undefined = undefined\n\n get urls() {\n return this.config?.urls\n }\n\n protected override async observeHandler(payloads: Payload[] = []): Promise<Payload[]> {\n if (UrlWitness.hashUrl === undefined) {\n throw new Error('Set UrlWitness.hashUrl before using')\n }\n const urls: UrlPayload[] =\n this.urls?.map((url) => ({ schema: UrlSchema, url })) ??\n payloads\n .filter((p): p is UrlPayload => p.schema === UrlSchema)\n .map((p) => {\n return { schema: UrlSchema, url: p.url }\n })\n const hashed = await Promise.all(\n urls.map(async (url) => {\n // TODO: Different schema for hashed url\n return { ...url, hash: await assertEx(UrlWitness.hashUrl, () => 'Set UrlWitness.hashUrl before using')(url.url) }\n }),\n )\n // TODO: Handle partial success\n return hashed\n }\n}\n","import { PayloadSetSchema } from '@xyo-network/payload-model'\nimport { createPayloadSetWitnessPlugin } from '@xyo-network/payloadset-plugin'\nimport { UrlSchema } from '@xyo-network/url-payload-plugin'\n\nimport { UrlWitness } from './Witness'\n\nexport const UrlPlugin = () =>\n createPayloadSetWitnessPlugin<UrlWitness>(\n { required: { [UrlSchema]: 1 }, schema: PayloadSetSchema },\n {\n witness: async (params) => {\n const result = await UrlWitness.create(params)\n return result\n },\n },\n )\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACAA,qBAAiC;AACjC,sBAA8B;AAE9B,oBAAuB;AAEhB,IAAM,WAAW,CAAC,QAAiC;AACxD,QAAM,OAAO,IAAI,WAAW,SAAS,QAAI,+BAAc,GAAG,IAAI;AAC9D,QAAM,MAAM,IAAI,QAAgB,CAAC,SAAS,WAAW;AACnD,UAAM,OAAO,qBAAO,WAAW,QAAQ;AACvC,UAAM,aAAS,iCAAiB,IAAI;AACpC,WAAO,GAAG,QAAQ,CAAC,SAAS;AAC1B,WAAK,OAAO,IAAI;AAAA,IAClB,CAAC;AACD,WAAO,GAAG,OAAO,MAAM;AACrB,cAAQ,KAAK,OAAO,KAAK,CAAC;AAAA,IAC5B,CAAC;AACD,WAAO,GAAG,SAAS,CAAC,QAAQ;AAC1B,aAAO,GAAG;AAAA,IACZ,CAAC;AAAA,EACH,CAAC;AACD,SAAO;AACT;;;ACrBA,uBAAiB;AACjB,wBAAkB;AAElB,IAAAA,iBAAuB;AAEhB,IAAM,cAAc,CAAC,QAAiC;AAC3D,QAAM,MAAM,IAAI,QAAgB,CAAC,SAAS,WAAW;AACnD,UAAM,OAAO,sBAAO,WAAW,QAAQ;AACvC,UAAM,MAAM,IAAI,WAAW,OAAO,IAAI,kBAAAC,UAAQ,iBAAAC;AAC9C,QACG,IAAI,KAAK,CAAC,QAAQ;AACjB,UAAI,GAAG,QAAQ,CAAC,SAAS;AACvB,aAAK,OAAO,IAAI;AAAA,MAClB,CAAC;AACD,UAAI,GAAG,OAAO,MAAM;AAClB,gBAAQ,KAAK,OAAO,KAAK,CAAC;AAAA,MAC5B,CAAC;AAAA,IACH,CAAC,EACA,GAAG,SAAS,CAAC,QAAQ;AACpB,aAAO,GAAG;AAAA,IACZ,CAAC;AAAA,EACL,CAAC;AACD,SAAO;AACT;;;ACpBO,IAAM,UAAU,CAAC,QAAiC;AAHzD;AAIE,QAAM,UAAS,SAAI,MAAM,KAAK,EAAE,CAAC,MAAlB,mBAAqB;AACpC,UAAQ,QAAQ;AAAA,IACd,KAAK,QAAQ;AACX,aAAO,SAAS,GAAG;AAAA,IACrB;AAAA,IACA,KAAK;AAAA,IACL,KAAK,SAAS;AACZ,aAAO,YAAY,GAAG;AAAA,IACxB;AAAA,IACA,SAAS;AACP,YAAM,IAAI,MAAM,2BAA2B,MAAM,EAAE;AAAA,IACrD;AAAA,EACF;AACF;;;ACjBA,gCAA0B;AAGnB,IAAM,yBAAyB,GAAG,mCAAS;;;ACHlD,oBAAyB;AACzB,8BAAgC;AAEhC,IAAAC,6BAAsC;AAK/B,IAAM,aAAN,MAAM,oBAAwE,wCAAyB;AAAA,EAC5G,OAAyB,gBAA0B,CAAC,GAAG,MAAM,eAAe,sBAAsB;AAAA,EAClG,OAAyB,sBAA8B;AAAA,EACvD,OAAO,UAA0D;AAAA,EAEjE,IAAI,OAAO;AAbb;AAcI,YAAO,UAAK,WAAL,mBAAa;AAAA,EACtB;AAAA,EAEA,MAAyB,eAAe,WAAsB,CAAC,GAAuB;AAjBxF;AAkBI,QAAI,YAAW,YAAY,QAAW;AACpC,YAAM,IAAI,MAAM,qCAAqC;AAAA,IACvD;AACA,UAAM,SACJ,UAAK,SAAL,mBAAW,IAAI,CAAC,SAAS,EAAE,QAAQ,sCAAW,IAAI,QAClD,SACG,OAAO,CAAC,MAAuB,EAAE,WAAW,oCAAS,EACrD,IAAI,CAAC,MAAM;AACV,aAAO,EAAE,QAAQ,sCAAW,KAAK,EAAE,IAAI;AAAA,IACzC,CAAC;AACL,UAAM,SAAS,MAAM,QAAQ;AAAA,MAC3B,KAAK,IAAI,OAAO,QAAQ;AAEtB,eAAO,EAAE,GAAG,KAAK,MAAM,UAAM,wBAAS,YAAW,SAAS,MAAM,qCAAqC,EAAE,IAAI,GAAG,EAAE;AAAA,MAClH,CAAC;AAAA,IACH;AAEA,WAAO;AAAA,EACT;AACF;;;ACrCA,2BAAiC;AACjC,+BAA8C;AAC9C,IAAAC,6BAA0B;AAInB,IAAM,YAAY,UACvB;AAAA,EACE,EAAE,UAAU,EAAE,CAAC,oCAAS,GAAG,EAAE,GAAG,QAAQ,sCAAiB;AAAA,EACzD;AAAA,IACE,SAAS,OAAO,WAAW;AACzB,YAAM,SAAS,MAAM,WAAW,OAAO,MAAM;AAC7C,aAAO;AAAA,IACT;AAAA,EACF;AACF;;;ANZF,WAAW,UAAU;","names":["import_crypto","https","http","import_url_payload_plugin","import_url_payload_plugin"]}
|
|
1
|
+
{"version":3,"sources":["../../src/indexNode.ts","../../src/util/hashFile.ts","../../src/util/hashHttpUrl.ts","../../src/util/hashUrl.ts","../../src/Witness/Config.ts","../../src/Witness/Witness.ts","../../src/PluginNode.ts"],"sourcesContent":["import { hashUrl } from './util/index.js'\nimport { UrlWitness } from './Witness/index.js'\n\nUrlWitness.hashUrl = hashUrl\n\n// eslint-disable-next-line import/no-default-export\nexport { UrlPlugin as default, UrlPlugin } from './PluginNode.js'\nexport * from './Witness/index.js'\n","import { createReadStream } from 'node:fs'\nimport { fileURLToPath } from 'node:url'\n\nimport { Crypto } from '@xylabs/crypto'\n\nexport const hashFile = (url: string): Promise<string> => {\n const path = url.startsWith('file://') ? fileURLToPath(url) : url\n const ret = new Promise<string>((resolve, reject) => {\n const hash = Crypto.createHash('sha256')\n const stream = createReadStream(path)\n stream.on('data', (data) => {\n hash.update(data)\n })\n stream.on('end', () => {\n resolve(hash.digest('hex'))\n })\n stream.on('error', (err) => {\n reject(err)\n })\n })\n return ret\n}\n","import http from 'node:http'\nimport https from 'node:https'\n\nimport { Crypto } from '@xylabs/crypto'\n\nexport const hashHttpUrl = (url: string): Promise<string> => {\n const ret = new Promise<string>((resolve, reject) => {\n const hash = Crypto.createHash('sha256')\n const lib = url.startsWith('https') ? https : http\n lib\n .get(url, (res) => {\n res.on('data', (data) => {\n hash.update(data)\n })\n res.on('end', () => {\n resolve(hash.digest('hex'))\n })\n })\n .on('error', (err) => {\n reject(err)\n })\n })\n return ret\n}\n","import { hashFile } from './hashFile.js'\nimport { hashHttpUrl } from './hashHttpUrl.js'\n\nexport const hashUrl = (url: string): Promise<string> => {\n const scheme = url.split('://')[0]?.toLowerCase()\n switch (scheme) {\n case 'file': {\n return hashFile(url)\n }\n case 'http':\n case 'https': {\n return hashHttpUrl(url)\n }\n default: {\n throw new Error(`Unsupported URL scheme: ${scheme}`)\n }\n }\n}\n","import { UrlSchema } from '@xyo-network/url-payload-plugin'\nimport { WitnessConfig } from '@xyo-network/witness-model'\n\nexport const UrlWitnessConfigSchema = `${UrlSchema}.witness.config` as const\nexport type UrlWitnessConfigSchema = typeof UrlWitnessConfigSchema\n\nexport type UrlWitnessConfig = WitnessConfig<{\n schema: UrlWitnessConfigSchema\n urls?: string[]\n}>\n","import { assertEx } from '@xylabs/assert'\nimport { AbstractWitness } from '@xyo-network/abstract-witness'\nimport { Payload, Schema } from '@xyo-network/payload-model'\nimport { UrlPayload, UrlSchema } from '@xyo-network/url-payload-plugin'\n\nimport { UrlWitnessConfigSchema } from './Config.js'\nimport { UrlWitnessParams } from './Params.js'\n\nexport class UrlWitness<TParams extends UrlWitnessParams = UrlWitnessParams> extends AbstractWitness<TParams> {\n static override readonly configSchemas: Schema[] = [...super.configSchemas, UrlWitnessConfigSchema]\n static override readonly defaultConfigSchema: Schema = UrlWitnessConfigSchema\n static hashUrl: ((url: string) => Promise<string>) | undefined = undefined\n\n get urls() {\n return this.config?.urls\n }\n\n protected override async observeHandler(payloads: Payload[] = []): Promise<Payload[]> {\n if (UrlWitness.hashUrl === undefined) {\n throw new Error('Set UrlWitness.hashUrl before using')\n }\n const urls: UrlPayload[] =\n this.urls?.map((url) => ({ schema: UrlSchema, url })) ??\n payloads\n .filter((p): p is UrlPayload => p.schema === UrlSchema)\n .map((p) => {\n return { schema: UrlSchema, url: p.url }\n })\n const hashed = await Promise.all(\n urls.map(async (url) => {\n // TODO: Different schema for hashed url\n return { ...url, hash: await assertEx(UrlWitness.hashUrl, () => 'Set UrlWitness.hashUrl before using')(url.url) }\n }),\n )\n // TODO: Handle partial success\n return hashed\n }\n}\n","import { PayloadSetSchema } from '@xyo-network/payload-model'\nimport { createPayloadSetWitnessPlugin } from '@xyo-network/payloadset-plugin'\nimport { UrlSchema } from '@xyo-network/url-payload-plugin'\n\nimport { UrlWitness } from './Witness/index.js'\n\nexport const UrlPlugin = () =>\n createPayloadSetWitnessPlugin<UrlWitness>(\n { required: { [UrlSchema]: 1 }, schema: PayloadSetSchema },\n {\n witness: async (params) => {\n const result = await UrlWitness.create(params)\n return result\n },\n },\n )\n"],"mappings":"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","names":["import_crypto","https","http","import_url_payload_plugin","import_url_payload_plugin"]}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
export { UrlPlugin as default, UrlPlugin } from './PluginNode';
|
|
2
|
-
export * from './Witness';
|
|
1
|
+
export { UrlPlugin as default, UrlPlugin } from './PluginNode.js';
|
|
2
|
+
export * from './Witness/index.js';
|
|
3
3
|
//# sourceMappingURL=indexNode.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"indexNode.d.ts","sourceRoot":"","sources":["../../src/indexNode.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,SAAS,IAAI,OAAO,EAAE,SAAS,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"indexNode.d.ts","sourceRoot":"","sources":["../../src/indexNode.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,SAAS,IAAI,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AACjE,cAAc,oBAAoB,CAAA"}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
export { UrlPlugin as default, UrlPlugin } from './PluginNode';
|
|
2
|
-
export * from './Witness';
|
|
1
|
+
export { UrlPlugin as default, UrlPlugin } from './PluginNode.js';
|
|
2
|
+
export * from './Witness/index.js';
|
|
3
3
|
//# sourceMappingURL=indexNode.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"indexNode.d.ts","sourceRoot":"","sources":["../../src/indexNode.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,SAAS,IAAI,OAAO,EAAE,SAAS,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"indexNode.d.ts","sourceRoot":"","sources":["../../src/indexNode.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,SAAS,IAAI,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AACjE,cAAc,oBAAoB,CAAA"}
|
package/dist/node/indexNode.d.ts
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
export { UrlPlugin as default, UrlPlugin } from './PluginNode';
|
|
2
|
-
export * from './Witness';
|
|
1
|
+
export { UrlPlugin as default, UrlPlugin } from './PluginNode.js';
|
|
2
|
+
export * from './Witness/index.js';
|
|
3
3
|
//# sourceMappingURL=indexNode.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"indexNode.d.ts","sourceRoot":"","sources":["../../src/indexNode.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,SAAS,IAAI,OAAO,EAAE,SAAS,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"indexNode.d.ts","sourceRoot":"","sources":["../../src/indexNode.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,SAAS,IAAI,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AACjE,cAAc,oBAAoB,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/util/hashFile.ts","../../src/util/hashHttpUrl.ts","../../src/util/hashUrl.ts","../../src/Witness/Config.ts","../../src/Witness/Witness.ts","../../src/PluginNode.ts","../../src/indexNode.ts"],"sourcesContent":["import { createReadStream } from 'node:fs'\nimport { fileURLToPath } from 'node:url'\n\nimport { Crypto } from '@xylabs/crypto'\n\nexport const hashFile = (url: string): Promise<string> => {\n const path = url.startsWith('file://') ? fileURLToPath(url) : url\n const ret = new Promise<string>((resolve, reject) => {\n const hash = Crypto.createHash('sha256')\n const stream = createReadStream(path)\n stream.on('data', (data) => {\n hash.update(data)\n })\n stream.on('end', () => {\n resolve(hash.digest('hex'))\n })\n stream.on('error', (err) => {\n reject(err)\n })\n })\n return ret\n}\n","import http from 'node:http'\nimport https from 'node:https'\n\nimport { Crypto } from '@xylabs/crypto'\n\nexport const hashHttpUrl = (url: string): Promise<string> => {\n const ret = new Promise<string>((resolve, reject) => {\n const hash = Crypto.createHash('sha256')\n const lib = url.startsWith('https') ? https : http\n lib\n .get(url, (res) => {\n res.on('data', (data) => {\n hash.update(data)\n })\n res.on('end', () => {\n resolve(hash.digest('hex'))\n })\n })\n .on('error', (err) => {\n reject(err)\n })\n })\n return ret\n}\n","import { hashFile } from './hashFile'\nimport { hashHttpUrl } from './hashHttpUrl'\n\nexport const hashUrl = (url: string): Promise<string> => {\n const scheme = url.split('://')[0]?.toLowerCase()\n switch (scheme) {\n case 'file': {\n return hashFile(url)\n }\n case 'http':\n case 'https': {\n return hashHttpUrl(url)\n }\n default: {\n throw new Error(`Unsupported URL scheme: ${scheme}`)\n }\n }\n}\n","import { UrlSchema } from '@xyo-network/url-payload-plugin'\nimport { WitnessConfig } from '@xyo-network/witness-model'\n\nexport const UrlWitnessConfigSchema = `${UrlSchema}.witness.config` as const\nexport type UrlWitnessConfigSchema = typeof UrlWitnessConfigSchema\n\nexport type UrlWitnessConfig = WitnessConfig<{\n schema: UrlWitnessConfigSchema\n urls?: string[]\n}>\n","import { assertEx } from '@xylabs/assert'\nimport { AbstractWitness } from '@xyo-network/abstract-witness'\nimport { Payload, Schema } from '@xyo-network/payload-model'\nimport { UrlPayload, UrlSchema } from '@xyo-network/url-payload-plugin'\n\nimport { UrlWitnessConfigSchema } from './Config'\nimport { UrlWitnessParams } from './Params'\n\nexport class UrlWitness<TParams extends UrlWitnessParams = UrlWitnessParams> extends AbstractWitness<TParams> {\n static override readonly configSchemas: Schema[] = [...super.configSchemas, UrlWitnessConfigSchema]\n static override readonly defaultConfigSchema: Schema = UrlWitnessConfigSchema\n static hashUrl: ((url: string) => Promise<string>) | undefined = undefined\n\n get urls() {\n return this.config?.urls\n }\n\n protected override async observeHandler(payloads: Payload[] = []): Promise<Payload[]> {\n if (UrlWitness.hashUrl === undefined) {\n throw new Error('Set UrlWitness.hashUrl before using')\n }\n const urls: UrlPayload[] =\n this.urls?.map((url) => ({ schema: UrlSchema, url })) ??\n payloads\n .filter((p): p is UrlPayload => p.schema === UrlSchema)\n .map((p) => {\n return { schema: UrlSchema, url: p.url }\n })\n const hashed = await Promise.all(\n urls.map(async (url) => {\n // TODO: Different schema for hashed url\n return { ...url, hash: await assertEx(UrlWitness.hashUrl, () => 'Set UrlWitness.hashUrl before using')(url.url) }\n }),\n )\n // TODO: Handle partial success\n return hashed\n }\n}\n","import { PayloadSetSchema } from '@xyo-network/payload-model'\nimport { createPayloadSetWitnessPlugin } from '@xyo-network/payloadset-plugin'\nimport { UrlSchema } from '@xyo-network/url-payload-plugin'\n\nimport { UrlWitness } from './Witness'\n\nexport const UrlPlugin = () =>\n createPayloadSetWitnessPlugin<UrlWitness>(\n { required: { [UrlSchema]: 1 }, schema: PayloadSetSchema },\n {\n witness: async (params) => {\n const result = await UrlWitness.create(params)\n return result\n },\n },\n )\n","import { hashUrl } from './util'\nimport { UrlWitness } from './Witness'\n\nUrlWitness.hashUrl = hashUrl\n\n// eslint-disable-next-line import/no-default-export\nexport { UrlPlugin as default, UrlPlugin } from './PluginNode'\nexport * from './Witness'\n"],"mappings":";AAAA,SAAS,wBAAwB;AACjC,SAAS,qBAAqB;AAE9B,SAAS,cAAc;AAEhB,IAAM,WAAW,CAAC,QAAiC;AACxD,QAAM,OAAO,IAAI,WAAW,SAAS,IAAI,cAAc,GAAG,IAAI;AAC9D,QAAM,MAAM,IAAI,QAAgB,CAAC,SAAS,WAAW;AACnD,UAAM,OAAO,OAAO,WAAW,QAAQ;AACvC,UAAM,SAAS,iBAAiB,IAAI;AACpC,WAAO,GAAG,QAAQ,CAAC,SAAS;AAC1B,WAAK,OAAO,IAAI;AAAA,IAClB,CAAC;AACD,WAAO,GAAG,OAAO,MAAM;AACrB,cAAQ,KAAK,OAAO,KAAK,CAAC;AAAA,IAC5B,CAAC;AACD,WAAO,GAAG,SAAS,CAAC,QAAQ;AAC1B,aAAO,GAAG;AAAA,IACZ,CAAC;AAAA,EACH,CAAC;AACD,SAAO;AACT;;;ACrBA,OAAO,UAAU;AACjB,OAAO,WAAW;AAElB,SAAS,UAAAA,eAAc;AAEhB,IAAM,cAAc,CAAC,QAAiC;AAC3D,QAAM,MAAM,IAAI,QAAgB,CAAC,SAAS,WAAW;AACnD,UAAM,OAAOA,QAAO,WAAW,QAAQ;AACvC,UAAM,MAAM,IAAI,WAAW,OAAO,IAAI,QAAQ;AAC9C,QACG,IAAI,KAAK,CAAC,QAAQ;AACjB,UAAI,GAAG,QAAQ,CAAC,SAAS;AACvB,aAAK,OAAO,IAAI;AAAA,MAClB,CAAC;AACD,UAAI,GAAG,OAAO,MAAM;AAClB,gBAAQ,KAAK,OAAO,KAAK,CAAC;AAAA,MAC5B,CAAC;AAAA,IACH,CAAC,EACA,GAAG,SAAS,CAAC,QAAQ;AACpB,aAAO,GAAG;AAAA,IACZ,CAAC;AAAA,EACL,CAAC;AACD,SAAO;AACT;;;ACpBO,IAAM,UAAU,CAAC,QAAiC;AAHzD;AAIE,QAAM,UAAS,SAAI,MAAM,KAAK,EAAE,CAAC,MAAlB,mBAAqB;AACpC,UAAQ,QAAQ;AAAA,IACd,KAAK,QAAQ;AACX,aAAO,SAAS,GAAG;AAAA,IACrB;AAAA,IACA,KAAK;AAAA,IACL,KAAK,SAAS;AACZ,aAAO,YAAY,GAAG;AAAA,IACxB;AAAA,IACA,SAAS;AACP,YAAM,IAAI,MAAM,2BAA2B,MAAM,EAAE;AAAA,IACrD;AAAA,EACF;AACF;;;ACjBA,SAAS,iBAAiB;AAGnB,IAAM,yBAAyB,GAAG,SAAS;;;ACHlD,SAAS,gBAAgB;AACzB,SAAS,uBAAuB;AAEhC,SAAqB,aAAAC,kBAAiB;AAK/B,IAAM,aAAN,MAAM,oBAAwE,gBAAyB;AAAA,EAC5G,OAAyB,gBAA0B,CAAC,GAAG,MAAM,eAAe,sBAAsB;AAAA,EAClG,OAAyB,sBAA8B;AAAA,EACvD,OAAO,UAA0D;AAAA,EAEjE,IAAI,OAAO;AAbb;AAcI,YAAO,UAAK,WAAL,mBAAa;AAAA,EACtB;AAAA,EAEA,MAAyB,eAAe,WAAsB,CAAC,GAAuB;AAjBxF;AAkBI,QAAI,YAAW,YAAY,QAAW;AACpC,YAAM,IAAI,MAAM,qCAAqC;AAAA,IACvD;AACA,UAAM,SACJ,UAAK,SAAL,mBAAW,IAAI,CAAC,SAAS,EAAE,QAAQC,YAAW,IAAI,QAClD,SACG,OAAO,CAAC,MAAuB,EAAE,WAAWA,UAAS,EACrD,IAAI,CAAC,MAAM;AACV,aAAO,EAAE,QAAQA,YAAW,KAAK,EAAE,IAAI;AAAA,IACzC,CAAC;AACL,UAAM,SAAS,MAAM,QAAQ;AAAA,MAC3B,KAAK,IAAI,OAAO,QAAQ;AAEtB,eAAO,EAAE,GAAG,KAAK,MAAM,MAAM,SAAS,YAAW,SAAS,MAAM,qCAAqC,EAAE,IAAI,GAAG,EAAE;AAAA,MAClH,CAAC;AAAA,IACH;AAEA,WAAO;AAAA,EACT;AACF;;;ACrCA,SAAS,wBAAwB;AACjC,SAAS,qCAAqC;AAC9C,SAAS,aAAAC,kBAAiB;AAInB,IAAM,YAAY,MACvB;AAAA,EACE,EAAE,UAAU,EAAE,CAACC,UAAS,GAAG,EAAE,GAAG,QAAQ,iBAAiB;AAAA,EACzD;AAAA,IACE,SAAS,OAAO,WAAW;AACzB,YAAM,SAAS,MAAM,WAAW,OAAO,MAAM;AAC7C,aAAO;AAAA,IACT;AAAA,EACF;AACF;;;ACZF,WAAW,UAAU;","names":["Crypto","UrlSchema","UrlSchema","UrlSchema","UrlSchema"]}
|
|
1
|
+
{"version":3,"sources":["../../src/util/hashFile.ts","../../src/util/hashHttpUrl.ts","../../src/util/hashUrl.ts","../../src/Witness/Config.ts","../../src/Witness/Witness.ts","../../src/PluginNode.ts","../../src/indexNode.ts"],"sourcesContent":["import { createReadStream } from 'node:fs'\nimport { fileURLToPath } from 'node:url'\n\nimport { Crypto } from '@xylabs/crypto'\n\nexport const hashFile = (url: string): Promise<string> => {\n const path = url.startsWith('file://') ? fileURLToPath(url) : url\n const ret = new Promise<string>((resolve, reject) => {\n const hash = Crypto.createHash('sha256')\n const stream = createReadStream(path)\n stream.on('data', (data) => {\n hash.update(data)\n })\n stream.on('end', () => {\n resolve(hash.digest('hex'))\n })\n stream.on('error', (err) => {\n reject(err)\n })\n })\n return ret\n}\n","import http from 'node:http'\nimport https from 'node:https'\n\nimport { Crypto } from '@xylabs/crypto'\n\nexport const hashHttpUrl = (url: string): Promise<string> => {\n const ret = new Promise<string>((resolve, reject) => {\n const hash = Crypto.createHash('sha256')\n const lib = url.startsWith('https') ? https : http\n lib\n .get(url, (res) => {\n res.on('data', (data) => {\n hash.update(data)\n })\n res.on('end', () => {\n resolve(hash.digest('hex'))\n })\n })\n .on('error', (err) => {\n reject(err)\n })\n })\n return ret\n}\n","import { hashFile } from './hashFile.js'\nimport { hashHttpUrl } from './hashHttpUrl.js'\n\nexport const hashUrl = (url: string): Promise<string> => {\n const scheme = url.split('://')[0]?.toLowerCase()\n switch (scheme) {\n case 'file': {\n return hashFile(url)\n }\n case 'http':\n case 'https': {\n return hashHttpUrl(url)\n }\n default: {\n throw new Error(`Unsupported URL scheme: ${scheme}`)\n }\n }\n}\n","import { UrlSchema } from '@xyo-network/url-payload-plugin'\nimport { WitnessConfig } from '@xyo-network/witness-model'\n\nexport const UrlWitnessConfigSchema = `${UrlSchema}.witness.config` as const\nexport type UrlWitnessConfigSchema = typeof UrlWitnessConfigSchema\n\nexport type UrlWitnessConfig = WitnessConfig<{\n schema: UrlWitnessConfigSchema\n urls?: string[]\n}>\n","import { assertEx } from '@xylabs/assert'\nimport { AbstractWitness } from '@xyo-network/abstract-witness'\nimport { Payload, Schema } from '@xyo-network/payload-model'\nimport { UrlPayload, UrlSchema } from '@xyo-network/url-payload-plugin'\n\nimport { UrlWitnessConfigSchema } from './Config.js'\nimport { UrlWitnessParams } from './Params.js'\n\nexport class UrlWitness<TParams extends UrlWitnessParams = UrlWitnessParams> extends AbstractWitness<TParams> {\n static override readonly configSchemas: Schema[] = [...super.configSchemas, UrlWitnessConfigSchema]\n static override readonly defaultConfigSchema: Schema = UrlWitnessConfigSchema\n static hashUrl: ((url: string) => Promise<string>) | undefined = undefined\n\n get urls() {\n return this.config?.urls\n }\n\n protected override async observeHandler(payloads: Payload[] = []): Promise<Payload[]> {\n if (UrlWitness.hashUrl === undefined) {\n throw new Error('Set UrlWitness.hashUrl before using')\n }\n const urls: UrlPayload[] =\n this.urls?.map((url) => ({ schema: UrlSchema, url })) ??\n payloads\n .filter((p): p is UrlPayload => p.schema === UrlSchema)\n .map((p) => {\n return { schema: UrlSchema, url: p.url }\n })\n const hashed = await Promise.all(\n urls.map(async (url) => {\n // TODO: Different schema for hashed url\n return { ...url, hash: await assertEx(UrlWitness.hashUrl, () => 'Set UrlWitness.hashUrl before using')(url.url) }\n }),\n )\n // TODO: Handle partial success\n return hashed\n }\n}\n","import { PayloadSetSchema } from '@xyo-network/payload-model'\nimport { createPayloadSetWitnessPlugin } from '@xyo-network/payloadset-plugin'\nimport { UrlSchema } from '@xyo-network/url-payload-plugin'\n\nimport { UrlWitness } from './Witness/index.js'\n\nexport const UrlPlugin = () =>\n createPayloadSetWitnessPlugin<UrlWitness>(\n { required: { [UrlSchema]: 1 }, schema: PayloadSetSchema },\n {\n witness: async (params) => {\n const result = await UrlWitness.create(params)\n return result\n },\n },\n )\n","import { hashUrl } from './util/index.js'\nimport { UrlWitness } from './Witness/index.js'\n\nUrlWitness.hashUrl = hashUrl\n\n// eslint-disable-next-line import/no-default-export\nexport { UrlPlugin as default, UrlPlugin } from './PluginNode.js'\nexport * from './Witness/index.js'\n"],"mappings":"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","names":["Crypto","UrlSchema","UrlSchema","UrlSchema","UrlSchema"]}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export * from './hashUrl';
|
|
1
|
+
export * from './hashUrl.js';
|
|
2
2
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/util/index.ts"],"names":[],"mappings":"AAAA,cAAc,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/util/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAA"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export * from './hashUrl';
|
|
1
|
+
export * from './hashUrl.js';
|
|
2
2
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/util/index.ts"],"names":[],"mappings":"AAAA,cAAc,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/util/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAA"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export * from './hashUrl';
|
|
1
|
+
export * from './hashUrl.js';
|
|
2
2
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/util/index.ts"],"names":[],"mappings":"AAAA,cAAc,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/util/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAA"}
|
package/package.json
CHANGED
|
@@ -10,14 +10,14 @@
|
|
|
10
10
|
"url": "https://github.com/XYOracleNetwork/plugins/issues"
|
|
11
11
|
},
|
|
12
12
|
"dependencies": {
|
|
13
|
-
"@xylabs/assert": "^3.5.
|
|
14
|
-
"@xylabs/crypto": "^3.5.
|
|
15
|
-
"@xyo-network/abstract-witness": "^2.
|
|
16
|
-
"@xyo-network/module-model": "^2.
|
|
17
|
-
"@xyo-network/payload-model": "^2.
|
|
18
|
-
"@xyo-network/payloadset-plugin": "^2.
|
|
19
|
-
"@xyo-network/url-payload-plugin": "^2.99.
|
|
20
|
-
"@xyo-network/witness-model": "^2.
|
|
13
|
+
"@xylabs/assert": "^3.5.9",
|
|
14
|
+
"@xylabs/crypto": "^3.5.9",
|
|
15
|
+
"@xyo-network/abstract-witness": "^2.110.0",
|
|
16
|
+
"@xyo-network/module-model": "^2.110.0",
|
|
17
|
+
"@xyo-network/payload-model": "^2.110.0",
|
|
18
|
+
"@xyo-network/payloadset-plugin": "^2.110.0",
|
|
19
|
+
"@xyo-network/url-payload-plugin": "^2.99.1",
|
|
20
|
+
"@xyo-network/witness-model": "^2.110.0"
|
|
21
21
|
},
|
|
22
22
|
"devDependencies": {
|
|
23
23
|
"@xylabs/ts-scripts-yarn3": "^3.11.12",
|
|
@@ -63,6 +63,6 @@
|
|
|
63
63
|
"url": "https://github.com/XYOracleNetwork/plugins.git"
|
|
64
64
|
},
|
|
65
65
|
"sideEffects": false,
|
|
66
|
-
"version": "2.99.
|
|
66
|
+
"version": "2.99.1",
|
|
67
67
|
"type": "module"
|
|
68
68
|
}
|
package/src/PluginBrowser.ts
CHANGED
|
@@ -2,7 +2,7 @@ import { PayloadSetSchema } from '@xyo-network/payload-model'
|
|
|
2
2
|
import { createPayloadSetWitnessPlugin } from '@xyo-network/payloadset-plugin'
|
|
3
3
|
import { UrlSchema } from '@xyo-network/url-payload-plugin'
|
|
4
4
|
|
|
5
|
-
import { UrlWitness } from './Witness'
|
|
5
|
+
import { UrlWitness } from './Witness/index.js'
|
|
6
6
|
|
|
7
7
|
export const UrlPlugin = () =>
|
|
8
8
|
createPayloadSetWitnessPlugin<UrlWitness>(
|
package/src/PluginNode.ts
CHANGED
|
@@ -2,7 +2,7 @@ import { PayloadSetSchema } from '@xyo-network/payload-model'
|
|
|
2
2
|
import { createPayloadSetWitnessPlugin } from '@xyo-network/payloadset-plugin'
|
|
3
3
|
import { UrlSchema } from '@xyo-network/url-payload-plugin'
|
|
4
4
|
|
|
5
|
-
import { UrlWitness } from './Witness'
|
|
5
|
+
import { UrlWitness } from './Witness/index.js'
|
|
6
6
|
|
|
7
7
|
export const UrlPlugin = () =>
|
|
8
8
|
createPayloadSetWitnessPlugin<UrlWitness>(
|
package/src/Witness/Params.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { AnyConfigSchema } from '@xyo-network/module-model'
|
|
2
2
|
import { WitnessParams } from '@xyo-network/witness-model'
|
|
3
3
|
|
|
4
|
-
import { UrlWitnessConfig } from './Config'
|
|
4
|
+
import { UrlWitnessConfig } from './Config.js'
|
|
5
5
|
|
|
6
6
|
export type UrlWitnessParams = WitnessParams<AnyConfigSchema<UrlWitnessConfig>>
|
package/src/Witness/Witness.ts
CHANGED
|
@@ -3,8 +3,8 @@ import { AbstractWitness } from '@xyo-network/abstract-witness'
|
|
|
3
3
|
import { Payload, Schema } from '@xyo-network/payload-model'
|
|
4
4
|
import { UrlPayload, UrlSchema } from '@xyo-network/url-payload-plugin'
|
|
5
5
|
|
|
6
|
-
import { UrlWitnessConfigSchema } from './Config'
|
|
7
|
-
import { UrlWitnessParams } from './Params'
|
|
6
|
+
import { UrlWitnessConfigSchema } from './Config.js'
|
|
7
|
+
import { UrlWitnessParams } from './Params.js'
|
|
8
8
|
|
|
9
9
|
export class UrlWitness<TParams extends UrlWitnessParams = UrlWitnessParams> extends AbstractWitness<TParams> {
|
|
10
10
|
static override readonly configSchemas: Schema[] = [...super.configSchemas, UrlWitnessConfigSchema]
|
package/src/Witness/index.ts
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
export * from './Config'
|
|
2
|
-
export * from './Params'
|
|
3
|
-
export * from './Witness'
|
|
1
|
+
export * from './Config.js'
|
|
2
|
+
export * from './Params.js'
|
|
3
|
+
export * from './Witness.js'
|
package/src/indexBrowser.ts
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
// eslint-disable-next-line import/no-default-export
|
|
2
|
-
export { UrlPlugin as default, UrlPlugin } from './PluginNode'
|
|
3
|
-
export * from './Witness'
|
|
2
|
+
export { UrlPlugin as default, UrlPlugin } from './PluginNode.js'
|
|
3
|
+
export * from './Witness/index.js'
|
package/src/indexNode.ts
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { hashUrl } from './util'
|
|
2
|
-
import { UrlWitness } from './Witness'
|
|
1
|
+
import { hashUrl } from './util/index.js'
|
|
2
|
+
import { UrlWitness } from './Witness/index.js'
|
|
3
3
|
|
|
4
4
|
UrlWitness.hashUrl = hashUrl
|
|
5
5
|
|
|
6
6
|
// eslint-disable-next-line import/no-default-export
|
|
7
|
-
export { UrlPlugin as default, UrlPlugin } from './PluginNode'
|
|
8
|
-
export * from './Witness'
|
|
7
|
+
export { UrlPlugin as default, UrlPlugin } from './PluginNode.js'
|
|
8
|
+
export * from './Witness/index.js'
|
package/src/util/hashUrl.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { hashFile } from './hashFile'
|
|
2
|
-
import { hashHttpUrl } from './hashHttpUrl'
|
|
1
|
+
import { hashFile } from './hashFile.js'
|
|
2
|
+
import { hashHttpUrl } from './hashHttpUrl.js'
|
|
3
3
|
|
|
4
4
|
export const hashUrl = (url: string): Promise<string> => {
|
|
5
5
|
const scheme = url.split('://')[0]?.toLowerCase()
|
package/src/util/index.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export * from './hashUrl'
|
|
1
|
+
export * from './hashUrl.js'
|