@xyo-network/url-plugin 2.99.3 → 2.99.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (97) hide show
  1. package/dist/browser/PluginBrowser.d.cts +2 -2
  2. package/dist/browser/PluginBrowser.d.mts +2 -2
  3. package/dist/browser/PluginBrowser.d.ts +2 -2
  4. package/dist/browser/PluginNode.d.cts +2 -2
  5. package/dist/browser/PluginNode.d.mts +2 -2
  6. package/dist/browser/PluginNode.d.ts +2 -2
  7. package/dist/browser/Witness/Params.d.cts +1 -1
  8. package/dist/browser/Witness/Params.d.mts +1 -1
  9. package/dist/browser/Witness/Params.d.ts +1 -1
  10. package/dist/browser/Witness/Witness.d.cts +1 -1
  11. package/dist/browser/Witness/Witness.d.mts +1 -1
  12. package/dist/browser/Witness/Witness.d.ts +1 -1
  13. package/dist/browser/Witness/index.d.cts +3 -3
  14. package/dist/browser/Witness/index.d.mts +3 -3
  15. package/dist/browser/Witness/index.d.ts +3 -3
  16. package/dist/browser/indexBrowser.cjs +33 -17
  17. package/dist/browser/indexBrowser.cjs.map +1 -1
  18. package/dist/browser/indexBrowser.d.cts +2 -2
  19. package/dist/browser/indexBrowser.d.mts +2 -2
  20. package/dist/browser/indexBrowser.d.ts +2 -2
  21. package/dist/browser/{indexBrowser.js → indexBrowser.mjs} +36 -18
  22. package/dist/browser/indexBrowser.mjs.map +1 -0
  23. package/dist/browser/indexNode.d.cts +2 -2
  24. package/dist/browser/indexNode.d.mts +2 -2
  25. package/dist/browser/indexNode.d.ts +2 -2
  26. package/dist/browser/util/index.d.cts +1 -1
  27. package/dist/browser/util/index.d.mts +1 -1
  28. package/dist/browser/util/index.d.ts +1 -1
  29. package/dist/neutral/PluginBrowser.d.cts +2 -2
  30. package/dist/neutral/PluginBrowser.d.mts +2 -2
  31. package/dist/neutral/PluginBrowser.d.ts +2 -2
  32. package/dist/neutral/PluginNode.d.cts +2 -2
  33. package/dist/neutral/PluginNode.d.mts +2 -2
  34. package/dist/neutral/PluginNode.d.ts +2 -2
  35. package/dist/neutral/Witness/Params.d.cts +1 -1
  36. package/dist/neutral/Witness/Params.d.mts +1 -1
  37. package/dist/neutral/Witness/Params.d.ts +1 -1
  38. package/dist/neutral/Witness/Witness.d.cts +1 -1
  39. package/dist/neutral/Witness/Witness.d.mts +1 -1
  40. package/dist/neutral/Witness/Witness.d.ts +1 -1
  41. package/dist/neutral/Witness/index.d.cts +3 -3
  42. package/dist/neutral/Witness/index.d.mts +3 -3
  43. package/dist/neutral/Witness/index.d.ts +3 -3
  44. package/dist/neutral/indexBrowser.d.cts +2 -2
  45. package/dist/neutral/indexBrowser.d.mts +2 -2
  46. package/dist/neutral/indexBrowser.d.ts +2 -2
  47. package/dist/neutral/indexNode.cjs +39 -23
  48. package/dist/neutral/indexNode.cjs.map +1 -1
  49. package/dist/neutral/indexNode.d.cts +2 -2
  50. package/dist/neutral/indexNode.d.mts +2 -2
  51. package/dist/neutral/indexNode.d.ts +2 -2
  52. package/dist/neutral/{indexNode.js → indexNode.mjs} +42 -24
  53. package/dist/neutral/indexNode.mjs.map +1 -0
  54. package/dist/neutral/util/index.d.cts +1 -1
  55. package/dist/neutral/util/index.d.mts +1 -1
  56. package/dist/neutral/util/index.d.ts +1 -1
  57. package/dist/node/PluginBrowser.d.cts +2 -2
  58. package/dist/node/PluginBrowser.d.mts +2 -2
  59. package/dist/node/PluginBrowser.d.ts +2 -2
  60. package/dist/node/PluginNode.d.cts +2 -2
  61. package/dist/node/PluginNode.d.mts +2 -2
  62. package/dist/node/PluginNode.d.ts +2 -2
  63. package/dist/node/Witness/Params.d.cts +1 -1
  64. package/dist/node/Witness/Params.d.mts +1 -1
  65. package/dist/node/Witness/Params.d.ts +1 -1
  66. package/dist/node/Witness/Witness.d.cts +1 -1
  67. package/dist/node/Witness/Witness.d.mts +1 -1
  68. package/dist/node/Witness/Witness.d.ts +1 -1
  69. package/dist/node/Witness/index.d.cts +3 -3
  70. package/dist/node/Witness/index.d.mts +3 -3
  71. package/dist/node/Witness/index.d.ts +3 -3
  72. package/dist/node/indexBrowser.d.cts +2 -2
  73. package/dist/node/indexBrowser.d.mts +2 -2
  74. package/dist/node/indexBrowser.d.ts +2 -2
  75. package/dist/node/indexNode.cjs +45 -26
  76. package/dist/node/indexNode.cjs.map +1 -1
  77. package/dist/node/indexNode.d.cts +2 -2
  78. package/dist/node/indexNode.d.mts +2 -2
  79. package/dist/node/indexNode.d.ts +2 -2
  80. package/dist/node/{indexNode.js → indexNode.mjs} +49 -27
  81. package/dist/node/indexNode.mjs.map +1 -0
  82. package/dist/node/util/index.d.cts +1 -1
  83. package/dist/node/util/index.d.mts +1 -1
  84. package/dist/node/util/index.d.ts +1 -1
  85. package/package.json +15 -15
  86. package/src/PluginBrowser.ts +1 -1
  87. package/src/PluginNode.ts +1 -1
  88. package/src/Witness/Params.ts +1 -1
  89. package/src/Witness/Witness.ts +5 -5
  90. package/src/Witness/index.ts +3 -3
  91. package/src/indexBrowser.ts +2 -2
  92. package/src/indexNode.ts +4 -4
  93. package/src/util/hashUrl.ts +2 -2
  94. package/src/util/index.ts +1 -1
  95. package/dist/browser/indexBrowser.js.map +0 -1
  96. package/dist/neutral/indexNode.js.map +0 -1
  97. package/dist/node/indexNode.js.map +0 -1
@@ -5,6 +5,9 @@ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
5
  var __getOwnPropNames = Object.getOwnPropertyNames;
6
6
  var __getProtoOf = Object.getPrototypeOf;
7
7
  var __hasOwnProp = Object.prototype.hasOwnProperty;
8
+ var __reflectGet = Reflect.get;
9
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
10
+ var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
8
11
  var __export = (target, all) => {
9
12
  for (var name in all)
10
13
  __defProp(target, name, { get: all[name], enumerable: true });
@@ -26,6 +29,8 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
26
29
  mod
27
30
  ));
28
31
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
32
+ var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
33
+ var __superGet = (cls, obj, key) => __reflectGet(__getProtoOf(cls), key, obj);
29
34
 
30
35
  // src/indexNode.ts
31
36
  var indexNode_exports = {};
@@ -41,7 +46,7 @@ module.exports = __toCommonJS(indexNode_exports);
41
46
  var import_node_fs = require("fs");
42
47
  var import_node_url = require("url");
43
48
  var import_crypto = require("@xylabs/crypto");
44
- var hashFile = (url) => {
49
+ var hashFile = /* @__PURE__ */ __name((url) => {
45
50
  const path = url.startsWith("file://") ? (0, import_node_url.fileURLToPath)(url) : url;
46
51
  const ret = new Promise((resolve, reject) => {
47
52
  const hash = import_crypto.Crypto.createHash("sha256");
@@ -57,13 +62,13 @@ var hashFile = (url) => {
57
62
  });
58
63
  });
59
64
  return ret;
60
- };
65
+ }, "hashFile");
61
66
 
62
67
  // src/util/hashHttpUrl.ts
63
68
  var import_node_http = __toESM(require("http"), 1);
64
69
  var import_node_https = __toESM(require("https"), 1);
65
70
  var import_crypto2 = require("@xylabs/crypto");
66
- var hashHttpUrl = (url) => {
71
+ var hashHttpUrl = /* @__PURE__ */ __name((url) => {
67
72
  const ret = new Promise((resolve, reject) => {
68
73
  const hash = import_crypto2.Crypto.createHash("sha256");
69
74
  const lib = url.startsWith("https") ? import_node_https.default : import_node_http.default;
@@ -79,10 +84,10 @@ var hashHttpUrl = (url) => {
79
84
  });
80
85
  });
81
86
  return ret;
82
- };
87
+ }, "hashHttpUrl");
83
88
 
84
89
  // src/util/hashUrl.ts
85
- var hashUrl = (url) => {
90
+ var hashUrl = /* @__PURE__ */ __name((url) => {
86
91
  var _a;
87
92
  const scheme = (_a = url.split("://")[0]) == null ? void 0 : _a.toLowerCase();
88
93
  switch (scheme) {
@@ -97,7 +102,7 @@ var hashUrl = (url) => {
97
102
  throw new Error(`Unsupported URL scheme: ${scheme}`);
98
103
  }
99
104
  }
100
- };
105
+ }, "hashUrl");
101
106
 
102
107
  // src/Witness/Config.ts
103
108
  var import_url_payload_plugin = require("@xyo-network/url-payload-plugin");
@@ -107,10 +112,7 @@ var UrlWitnessConfigSchema = `${import_url_payload_plugin.UrlSchema}.witness.con
107
112
  var import_assert = require("@xylabs/assert");
108
113
  var import_abstract_witness = require("@xyo-network/abstract-witness");
109
114
  var import_url_payload_plugin2 = require("@xyo-network/url-payload-plugin");
110
- var UrlWitness = class _UrlWitness extends import_abstract_witness.AbstractWitness {
111
- static configSchemas = [...super.configSchemas, UrlWitnessConfigSchema];
112
- static defaultConfigSchema = UrlWitnessConfigSchema;
113
- static hashUrl = void 0;
115
+ var _UrlWitness = class _UrlWitness extends import_abstract_witness.AbstractWitness {
114
116
  get urls() {
115
117
  var _a;
116
118
  return (_a = this.config) == null ? void 0 : _a.urls;
@@ -120,31 +122,48 @@ var UrlWitness = class _UrlWitness extends import_abstract_witness.AbstractWitne
120
122
  if (_UrlWitness.hashUrl === void 0) {
121
123
  throw new Error("Set UrlWitness.hashUrl before using");
122
124
  }
123
- const urls = ((_a = this.urls) == null ? void 0 : _a.map((url) => ({ schema: import_url_payload_plugin2.UrlSchema, url }))) ?? payloads.filter((p) => p.schema === import_url_payload_plugin2.UrlSchema).map((p) => {
124
- return { schema: import_url_payload_plugin2.UrlSchema, url: p.url };
125
+ const urls = ((_a = this.urls) == null ? void 0 : _a.map((url) => ({
126
+ schema: import_url_payload_plugin2.UrlSchema,
127
+ url
128
+ }))) ?? payloads.filter((p) => p.schema === import_url_payload_plugin2.UrlSchema).map((p) => {
129
+ return {
130
+ schema: import_url_payload_plugin2.UrlSchema,
131
+ url: p.url
132
+ };
125
133
  });
126
- const hashed = await Promise.all(
127
- urls.map(async (url) => {
128
- return { ...url, hash: await (0, import_assert.assertEx)(_UrlWitness.hashUrl, () => "Set UrlWitness.hashUrl before using")(url.url) };
129
- })
130
- );
134
+ const hashed = await Promise.all(urls.map(async (url) => {
135
+ return {
136
+ ...url,
137
+ hash: await (0, import_assert.assertEx)(_UrlWitness.hashUrl, () => "Set UrlWitness.hashUrl before using")(url.url)
138
+ };
139
+ }));
131
140
  return hashed;
132
141
  }
133
142
  };
143
+ __name(_UrlWitness, "UrlWitness");
144
+ __publicField(_UrlWitness, "configSchemas", [
145
+ ...__superGet(_UrlWitness, _UrlWitness, "configSchemas"),
146
+ UrlWitnessConfigSchema
147
+ ]);
148
+ __publicField(_UrlWitness, "defaultConfigSchema", UrlWitnessConfigSchema);
149
+ __publicField(_UrlWitness, "hashUrl");
150
+ var UrlWitness = _UrlWitness;
134
151
 
135
152
  // src/PluginNode.ts
136
153
  var import_payload_model = require("@xyo-network/payload-model");
137
154
  var import_payloadset_plugin = require("@xyo-network/payloadset-plugin");
138
155
  var import_url_payload_plugin3 = require("@xyo-network/url-payload-plugin");
139
- var UrlPlugin = () => (0, import_payloadset_plugin.createPayloadSetWitnessPlugin)(
140
- { required: { [import_url_payload_plugin3.UrlSchema]: 1 }, schema: import_payload_model.PayloadSetSchema },
141
- {
142
- witness: async (params) => {
143
- const result = await UrlWitness.create(params);
144
- return result;
145
- }
146
- }
147
- );
156
+ var UrlPlugin = /* @__PURE__ */ __name(() => (0, import_payloadset_plugin.createPayloadSetWitnessPlugin)({
157
+ required: {
158
+ [import_url_payload_plugin3.UrlSchema]: 1
159
+ },
160
+ schema: import_payload_model.PayloadSetSchema
161
+ }, {
162
+ witness: /* @__PURE__ */ __name(async (params) => {
163
+ const result = await UrlWitness.create(params);
164
+ return result;
165
+ }, "witness")
166
+ }), "UrlPlugin");
148
167
 
149
168
  // src/indexNode.ts
150
169
  UrlWitness.hashUrl = hashUrl;
@@ -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/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":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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.ts'\nimport { UrlWitness } from './Witness/index.ts'\n\nUrlWitness.hashUrl = hashUrl\n\n// eslint-disable-next-line import/no-default-export\nexport { UrlPlugin as default, UrlPlugin } from './PluginNode.ts'\nexport * from './Witness/index.ts'\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.ts'\nimport { hashHttpUrl } from './hashHttpUrl.ts'\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.ts'\nimport { UrlWitnessParams } from './Params.ts'\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.ts'\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":["hashFile","url","path","startsWith","fileURLToPath","ret","Promise","resolve","reject","hash","Crypto","createHash","stream","createReadStream","on","data","update","digest","err","import_crypto","hashHttpUrl","url","ret","Promise","resolve","reject","hash","Crypto","createHash","lib","startsWith","https","http","get","res","on","data","update","digest","err","hashUrl","url","scheme","split","toLowerCase","hashFile","hashHttpUrl","Error","UrlWitnessConfigSchema","UrlSchema","import_url_payload_plugin","UrlWitness","AbstractWitness","urls","config","observeHandler","payloads","hashUrl","undefined","Error","map","url","schema","UrlSchema","filter","p","hashed","Promise","all","hash","assertEx","configSchemas","UrlWitnessConfigSchema","defaultConfigSchema","import_url_payload_plugin","UrlPlugin","createPayloadSetWitnessPlugin","required","UrlSchema","schema","PayloadSetSchema","witness","params","result","UrlWitness","create","UrlWitness","hashUrl"]}
@@ -1,3 +1,3 @@
1
- export { UrlPlugin as default, UrlPlugin } from './PluginNode.js';
2
- export * from './Witness/index.js';
1
+ export { UrlPlugin as default, UrlPlugin } from './PluginNode.ts';
2
+ export * from './Witness/index.ts';
3
3
  //# sourceMappingURL=indexNode.d.ts.map
@@ -1,3 +1,3 @@
1
- export { UrlPlugin as default, UrlPlugin } from './PluginNode.js';
2
- export * from './Witness/index.js';
1
+ export { UrlPlugin as default, UrlPlugin } from './PluginNode.ts';
2
+ export * from './Witness/index.ts';
3
3
  //# sourceMappingURL=indexNode.d.ts.map
@@ -1,3 +1,3 @@
1
- export { UrlPlugin as default, UrlPlugin } from './PluginNode.js';
2
- export * from './Witness/index.js';
1
+ export { UrlPlugin as default, UrlPlugin } from './PluginNode.ts';
2
+ export * from './Witness/index.ts';
3
3
  //# sourceMappingURL=indexNode.d.ts.map
@@ -1,8 +1,16 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __getProtoOf = Object.getPrototypeOf;
3
+ var __reflectGet = Reflect.get;
4
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
5
+ var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
6
+ var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
7
+ var __superGet = (cls, obj, key) => __reflectGet(__getProtoOf(cls), key, obj);
8
+
1
9
  // src/util/hashFile.ts
2
10
  import { createReadStream } from "node:fs";
3
11
  import { fileURLToPath } from "node:url";
4
12
  import { Crypto } from "@xylabs/crypto";
5
- var hashFile = (url) => {
13
+ var hashFile = /* @__PURE__ */ __name((url) => {
6
14
  const path = url.startsWith("file://") ? fileURLToPath(url) : url;
7
15
  const ret = new Promise((resolve, reject) => {
8
16
  const hash = Crypto.createHash("sha256");
@@ -18,13 +26,13 @@ var hashFile = (url) => {
18
26
  });
19
27
  });
20
28
  return ret;
21
- };
29
+ }, "hashFile");
22
30
 
23
31
  // src/util/hashHttpUrl.ts
24
32
  import http from "node:http";
25
33
  import https from "node:https";
26
34
  import { Crypto as Crypto2 } from "@xylabs/crypto";
27
- var hashHttpUrl = (url) => {
35
+ var hashHttpUrl = /* @__PURE__ */ __name((url) => {
28
36
  const ret = new Promise((resolve, reject) => {
29
37
  const hash = Crypto2.createHash("sha256");
30
38
  const lib = url.startsWith("https") ? https : http;
@@ -40,10 +48,10 @@ var hashHttpUrl = (url) => {
40
48
  });
41
49
  });
42
50
  return ret;
43
- };
51
+ }, "hashHttpUrl");
44
52
 
45
53
  // src/util/hashUrl.ts
46
- var hashUrl = (url) => {
54
+ var hashUrl = /* @__PURE__ */ __name((url) => {
47
55
  var _a;
48
56
  const scheme = (_a = url.split("://")[0]) == null ? void 0 : _a.toLowerCase();
49
57
  switch (scheme) {
@@ -58,7 +66,7 @@ var hashUrl = (url) => {
58
66
  throw new Error(`Unsupported URL scheme: ${scheme}`);
59
67
  }
60
68
  }
61
- };
69
+ }, "hashUrl");
62
70
 
63
71
  // src/Witness/Config.ts
64
72
  import { UrlSchema } from "@xyo-network/url-payload-plugin";
@@ -68,10 +76,7 @@ var UrlWitnessConfigSchema = `${UrlSchema}.witness.config`;
68
76
  import { assertEx } from "@xylabs/assert";
69
77
  import { AbstractWitness } from "@xyo-network/abstract-witness";
70
78
  import { UrlSchema as UrlSchema2 } from "@xyo-network/url-payload-plugin";
71
- var UrlWitness = class _UrlWitness extends AbstractWitness {
72
- static configSchemas = [...super.configSchemas, UrlWitnessConfigSchema];
73
- static defaultConfigSchema = UrlWitnessConfigSchema;
74
- static hashUrl = void 0;
79
+ var _UrlWitness = class _UrlWitness extends AbstractWitness {
75
80
  get urls() {
76
81
  var _a;
77
82
  return (_a = this.config) == null ? void 0 : _a.urls;
@@ -81,31 +86,48 @@ var UrlWitness = class _UrlWitness extends AbstractWitness {
81
86
  if (_UrlWitness.hashUrl === void 0) {
82
87
  throw new Error("Set UrlWitness.hashUrl before using");
83
88
  }
84
- const urls = ((_a = this.urls) == null ? void 0 : _a.map((url) => ({ schema: UrlSchema2, url }))) ?? payloads.filter((p) => p.schema === UrlSchema2).map((p) => {
85
- return { schema: UrlSchema2, url: p.url };
89
+ const urls = ((_a = this.urls) == null ? void 0 : _a.map((url) => ({
90
+ schema: UrlSchema2,
91
+ url
92
+ }))) ?? payloads.filter((p) => p.schema === UrlSchema2).map((p) => {
93
+ return {
94
+ schema: UrlSchema2,
95
+ url: p.url
96
+ };
86
97
  });
87
- const hashed = await Promise.all(
88
- urls.map(async (url) => {
89
- return { ...url, hash: await assertEx(_UrlWitness.hashUrl, () => "Set UrlWitness.hashUrl before using")(url.url) };
90
- })
91
- );
98
+ const hashed = await Promise.all(urls.map(async (url) => {
99
+ return {
100
+ ...url,
101
+ hash: await assertEx(_UrlWitness.hashUrl, () => "Set UrlWitness.hashUrl before using")(url.url)
102
+ };
103
+ }));
92
104
  return hashed;
93
105
  }
94
106
  };
107
+ __name(_UrlWitness, "UrlWitness");
108
+ __publicField(_UrlWitness, "configSchemas", [
109
+ ...__superGet(_UrlWitness, _UrlWitness, "configSchemas"),
110
+ UrlWitnessConfigSchema
111
+ ]);
112
+ __publicField(_UrlWitness, "defaultConfigSchema", UrlWitnessConfigSchema);
113
+ __publicField(_UrlWitness, "hashUrl");
114
+ var UrlWitness = _UrlWitness;
95
115
 
96
116
  // src/PluginNode.ts
97
117
  import { PayloadSetSchema } from "@xyo-network/payload-model";
98
118
  import { createPayloadSetWitnessPlugin } from "@xyo-network/payloadset-plugin";
99
119
  import { UrlSchema as UrlSchema3 } from "@xyo-network/url-payload-plugin";
100
- var UrlPlugin = () => createPayloadSetWitnessPlugin(
101
- { required: { [UrlSchema3]: 1 }, schema: PayloadSetSchema },
102
- {
103
- witness: async (params) => {
104
- const result = await UrlWitness.create(params);
105
- return result;
106
- }
107
- }
108
- );
120
+ var UrlPlugin = /* @__PURE__ */ __name(() => createPayloadSetWitnessPlugin({
121
+ required: {
122
+ [UrlSchema3]: 1
123
+ },
124
+ schema: PayloadSetSchema
125
+ }, {
126
+ witness: /* @__PURE__ */ __name(async (params) => {
127
+ const result = await UrlWitness.create(params);
128
+ return result;
129
+ }, "witness")
130
+ }), "UrlPlugin");
109
131
 
110
132
  // src/indexNode.ts
111
133
  UrlWitness.hashUrl = hashUrl;
@@ -115,4 +137,4 @@ export {
115
137
  UrlWitnessConfigSchema,
116
138
  UrlPlugin as default
117
139
  };
118
- //# sourceMappingURL=indexNode.js.map
140
+ //# sourceMappingURL=indexNode.mjs.map
@@ -0,0 +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.ts'\nimport { hashHttpUrl } from './hashHttpUrl.ts'\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.ts'\nimport { UrlWitnessParams } from './Params.ts'\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.ts'\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.ts'\nimport { UrlWitness } from './Witness/index.ts'\n\nUrlWitness.hashUrl = hashUrl\n\n// eslint-disable-next-line import/no-default-export\nexport { UrlPlugin as default, UrlPlugin } from './PluginNode.ts'\nexport * from './Witness/index.ts'\n"],"mappings":"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","names":["createReadStream","fileURLToPath","Crypto","hashFile","url","path","startsWith","fileURLToPath","ret","Promise","resolve","reject","hash","Crypto","createHash","stream","createReadStream","on","data","update","digest","err","http","https","Crypto","hashHttpUrl","url","ret","Promise","resolve","reject","hash","Crypto","createHash","lib","startsWith","https","http","get","res","on","data","update","digest","err","hashUrl","url","scheme","split","toLowerCase","hashFile","hashHttpUrl","Error","UrlSchema","UrlWitnessConfigSchema","assertEx","AbstractWitness","UrlSchema","UrlWitness","AbstractWitness","urls","config","observeHandler","payloads","hashUrl","undefined","Error","map","url","schema","UrlSchema","filter","p","hashed","Promise","all","hash","assertEx","configSchemas","UrlWitnessConfigSchema","defaultConfigSchema","PayloadSetSchema","createPayloadSetWitnessPlugin","UrlSchema","UrlPlugin","createPayloadSetWitnessPlugin","required","UrlSchema","schema","PayloadSetSchema","witness","params","result","UrlWitness","create","UrlWitness","hashUrl"]}
@@ -1,2 +1,2 @@
1
- export * from './hashUrl.js';
1
+ export * from './hashUrl.ts';
2
2
  //# sourceMappingURL=index.d.ts.map
@@ -1,2 +1,2 @@
1
- export * from './hashUrl.js';
1
+ export * from './hashUrl.ts';
2
2
  //# sourceMappingURL=index.d.ts.map
@@ -1,2 +1,2 @@
1
- export * from './hashUrl.js';
1
+ export * from './hashUrl.ts';
2
2
  //# sourceMappingURL=index.d.ts.map
package/package.json CHANGED
@@ -10,19 +10,19 @@
10
10
  "url": "https://github.com/XYOracleNetwork/plugins/issues"
11
11
  },
12
12
  "dependencies": {
13
- "@xylabs/assert": "^3.6.1",
14
- "@xylabs/crypto": "^3.6.1",
15
- "@xyo-network/abstract-witness": "^2.110.6",
16
- "@xyo-network/module-model": "^2.110.6",
17
- "@xyo-network/payload-model": "^2.110.6",
18
- "@xyo-network/payloadset-plugin": "^2.110.6",
19
- "@xyo-network/url-payload-plugin": "^2.99.3",
20
- "@xyo-network/witness-model": "^2.110.6"
13
+ "@xylabs/assert": "^3.6.8",
14
+ "@xylabs/crypto": "^3.6.8",
15
+ "@xyo-network/abstract-witness": "^2.111.2",
16
+ "@xyo-network/module-model": "^2.111.2",
17
+ "@xyo-network/payload-model": "^2.111.2",
18
+ "@xyo-network/payloadset-plugin": "^2.111.2",
19
+ "@xyo-network/url-payload-plugin": "^2.99.5",
20
+ "@xyo-network/witness-model": "^2.111.2"
21
21
  },
22
22
  "devDependencies": {
23
- "@xylabs/ts-scripts-yarn3": "^3.12.2",
24
- "@xylabs/tsconfig": "^3.12.2",
25
- "typescript": "^5.5.3"
23
+ "@xylabs/ts-scripts-yarn3": "^3.15.13",
24
+ "@xylabs/tsconfig": "^3.15.13",
25
+ "typescript": "^5.5.4"
26
26
  },
27
27
  "description": "Typescript/Javascript Plugins for XYO Platform",
28
28
  "exports": {
@@ -34,7 +34,7 @@
34
34
  },
35
35
  "import": {
36
36
  "types": "./dist/browser/indexBrowser.d.mts",
37
- "default": "./dist/browser/indexBrowser.js"
37
+ "default": "./dist/browser/indexBrowser.mjs"
38
38
  }
39
39
  },
40
40
  "node": {
@@ -44,14 +44,14 @@
44
44
  },
45
45
  "import": {
46
46
  "types": "./dist/node/indexNode.d.mts",
47
- "default": "./dist/node/indexNode.js"
47
+ "default": "./dist/node/indexNode.mjs"
48
48
  }
49
49
  }
50
50
  },
51
51
  "./package.json": "./package.json"
52
52
  },
53
53
  "main": "dist/node/indexNode.cjs",
54
- "module": "dist/node/indexNode.js",
54
+ "module": "dist/node/indexNode.mjs",
55
55
  "types": "dist/node/indexNode.d.mts",
56
56
  "homepage": "https://xyo.network",
57
57
  "license": "LGPL-3.0-only",
@@ -63,6 +63,6 @@
63
63
  "url": "https://github.com/XYOracleNetwork/plugins.git"
64
64
  },
65
65
  "sideEffects": false,
66
- "version": "2.99.3",
66
+ "version": "2.99.5",
67
67
  "type": "module"
68
68
  }
@@ -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/index.js'
5
+ import { UrlWitness } from './Witness/index.ts'
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/index.js'
5
+ import { UrlWitness } from './Witness/index.ts'
6
6
 
7
7
  export const UrlPlugin = () =>
8
8
  createPayloadSetWitnessPlugin<UrlWitness>(
@@ -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.js'
4
+ import { UrlWitnessConfig } from './Config.ts'
5
5
 
6
6
  export type UrlWitnessParams = WitnessParams<AnyConfigSchema<UrlWitnessConfig>>
@@ -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.js'
7
- import { UrlWitnessParams } from './Params.js'
6
+ import { UrlWitnessConfigSchema } from './Config.ts'
7
+ import { UrlWitnessParams } from './Params.ts'
8
8
 
9
9
  export class UrlWitness<TParams extends UrlWitnessParams = UrlWitnessParams> extends AbstractWitness<TParams> {
10
10
  static override readonly configSchemas: Schema[] = [...super.configSchemas, UrlWitnessConfigSchema]
@@ -19,9 +19,9 @@ export class UrlWitness<TParams extends UrlWitnessParams = UrlWitnessParams> ext
19
19
  if (UrlWitness.hashUrl === undefined) {
20
20
  throw new Error('Set UrlWitness.hashUrl before using')
21
21
  }
22
- const urls: UrlPayload[] =
23
- this.urls?.map((url) => ({ schema: UrlSchema, url })) ??
24
- payloads
22
+ const urls: UrlPayload[]
23
+ = this.urls?.map(url => ({ schema: UrlSchema, url }))
24
+ ?? payloads
25
25
  .filter((p): p is UrlPayload => p.schema === UrlSchema)
26
26
  .map((p) => {
27
27
  return { schema: UrlSchema, url: p.url }
@@ -1,3 +1,3 @@
1
- export * from './Config.js'
2
- export * from './Params.js'
3
- export * from './Witness.js'
1
+ export * from './Config.ts'
2
+ export * from './Params.ts'
3
+ export * from './Witness.ts'
@@ -1,3 +1,3 @@
1
1
  // eslint-disable-next-line import/no-default-export
2
- export { UrlPlugin as default, UrlPlugin } from './PluginNode.js'
3
- export * from './Witness/index.js'
2
+ export { UrlPlugin as default, UrlPlugin } from './PluginNode.ts'
3
+ export * from './Witness/index.ts'
package/src/indexNode.ts CHANGED
@@ -1,8 +1,8 @@
1
- import { hashUrl } from './util/index.js'
2
- import { UrlWitness } from './Witness/index.js'
1
+ import { hashUrl } from './util/index.ts'
2
+ import { UrlWitness } from './Witness/index.ts'
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.js'
8
- export * from './Witness/index.js'
7
+ export { UrlPlugin as default, UrlPlugin } from './PluginNode.ts'
8
+ export * from './Witness/index.ts'
@@ -1,5 +1,5 @@
1
- import { hashFile } from './hashFile.js'
2
- import { hashHttpUrl } from './hashHttpUrl.js'
1
+ import { hashFile } from './hashFile.ts'
2
+ import { hashHttpUrl } from './hashHttpUrl.ts'
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.js'
1
+ export * from './hashUrl.ts'
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/PluginNode.ts","../../src/Witness/Config.ts","../../src/Witness/Witness.ts"],"sourcesContent":["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 { 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"],"mappings":";AAAA,SAAS,wBAAwB;AACjC,SAAS,qCAAqC;AAC9C,SAAS,aAAAA,kBAAiB;;;ACF1B,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;AACT,WAAO,KAAK,QAAQ;AAAA,EACtB;AAAA,EAEA,MAAyB,eAAe,WAAsB,CAAC,GAAuB;AACpF,QAAI,YAAW,YAAY,QAAW;AACpC,YAAM,IAAI,MAAM,qCAAqC;AAAA,IACvD;AACA,UAAM,OACJ,KAAK,MAAM,IAAI,CAAC,SAAS,EAAE,QAAQC,YAAW,IAAI,EAAE,KACpD,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;;;AF/BO,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;","names":["UrlSchema","UrlSchema","UrlSchema","UrlSchema"]}
@@ -1 +0,0 @@
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 +0,0 @@
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"]}