@xyo-network/url-plugin 2.99.5 → 3.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/browser/indexBrowser.d.ts +47 -3
- package/dist/browser/indexBrowser.mjs +17 -35
- package/dist/browser/indexBrowser.mjs.map +1 -1
- package/dist/neutral/indexNode.d.ts +47 -3
- package/dist/neutral/indexNode.mjs +23 -41
- package/dist/neutral/indexNode.mjs.map +1 -1
- package/dist/node/indexNode.d.ts +47 -3
- package/dist/node/indexNode.mjs +28 -53
- package/dist/node/indexNode.mjs.map +1 -1
- package/package.json +16 -29
- package/src/indexBrowser.ts +1 -1
- package/src/indexNode.ts +1 -1
- package/xy.config.ts +1 -1
- package/dist/browser/PluginBrowser.d.cts +0 -20
- package/dist/browser/PluginBrowser.d.cts.map +0 -1
- package/dist/browser/PluginBrowser.d.mts +0 -20
- package/dist/browser/PluginBrowser.d.mts.map +0 -1
- package/dist/browser/PluginBrowser.d.ts +0 -20
- package/dist/browser/PluginBrowser.d.ts.map +0 -1
- package/dist/browser/PluginNode.d.cts +0 -20
- package/dist/browser/PluginNode.d.cts.map +0 -1
- package/dist/browser/PluginNode.d.mts +0 -20
- package/dist/browser/PluginNode.d.mts.map +0 -1
- package/dist/browser/PluginNode.d.ts +0 -20
- package/dist/browser/PluginNode.d.ts.map +0 -1
- package/dist/browser/Witness/Config.d.cts +0 -8
- package/dist/browser/Witness/Config.d.cts.map +0 -1
- package/dist/browser/Witness/Config.d.mts +0 -8
- package/dist/browser/Witness/Config.d.mts.map +0 -1
- package/dist/browser/Witness/Config.d.ts +0 -8
- package/dist/browser/Witness/Config.d.ts.map +0 -1
- package/dist/browser/Witness/Params.d.cts +0 -5
- package/dist/browser/Witness/Params.d.cts.map +0 -1
- package/dist/browser/Witness/Params.d.mts +0 -5
- package/dist/browser/Witness/Params.d.mts.map +0 -1
- package/dist/browser/Witness/Params.d.ts +0 -5
- package/dist/browser/Witness/Params.d.ts.map +0 -1
- package/dist/browser/Witness/Witness.d.cts +0 -11
- package/dist/browser/Witness/Witness.d.cts.map +0 -1
- package/dist/browser/Witness/Witness.d.mts +0 -11
- package/dist/browser/Witness/Witness.d.mts.map +0 -1
- package/dist/browser/Witness/Witness.d.ts +0 -11
- package/dist/browser/Witness/Witness.d.ts.map +0 -1
- package/dist/browser/Witness/index.d.cts +0 -4
- package/dist/browser/Witness/index.d.cts.map +0 -1
- package/dist/browser/Witness/index.d.mts +0 -4
- package/dist/browser/Witness/index.d.mts.map +0 -1
- package/dist/browser/Witness/index.d.ts +0 -4
- package/dist/browser/Witness/index.d.ts.map +0 -1
- package/dist/browser/indexBrowser.cjs +0 -92
- package/dist/browser/indexBrowser.cjs.map +0 -1
- package/dist/browser/indexBrowser.d.cts +0 -3
- package/dist/browser/indexBrowser.d.cts.map +0 -1
- package/dist/browser/indexBrowser.d.mts +0 -3
- package/dist/browser/indexBrowser.d.mts.map +0 -1
- package/dist/browser/indexBrowser.d.ts.map +0 -1
- package/dist/browser/indexNode.d.cts +0 -3
- package/dist/browser/indexNode.d.cts.map +0 -1
- package/dist/browser/indexNode.d.mts +0 -3
- package/dist/browser/indexNode.d.mts.map +0 -1
- package/dist/browser/indexNode.d.ts +0 -3
- package/dist/browser/indexNode.d.ts.map +0 -1
- package/dist/browser/util/hashFile.d.cts +0 -2
- package/dist/browser/util/hashFile.d.cts.map +0 -1
- package/dist/browser/util/hashFile.d.mts +0 -2
- package/dist/browser/util/hashFile.d.mts.map +0 -1
- package/dist/browser/util/hashFile.d.ts +0 -2
- package/dist/browser/util/hashFile.d.ts.map +0 -1
- package/dist/browser/util/hashHttpUrl.d.cts +0 -2
- package/dist/browser/util/hashHttpUrl.d.cts.map +0 -1
- package/dist/browser/util/hashHttpUrl.d.mts +0 -2
- package/dist/browser/util/hashHttpUrl.d.mts.map +0 -1
- package/dist/browser/util/hashHttpUrl.d.ts +0 -2
- package/dist/browser/util/hashHttpUrl.d.ts.map +0 -1
- package/dist/browser/util/hashUrl.d.cts +0 -2
- package/dist/browser/util/hashUrl.d.cts.map +0 -1
- package/dist/browser/util/hashUrl.d.mts +0 -2
- package/dist/browser/util/hashUrl.d.mts.map +0 -1
- package/dist/browser/util/hashUrl.d.ts +0 -2
- package/dist/browser/util/hashUrl.d.ts.map +0 -1
- package/dist/browser/util/index.d.cts +0 -2
- package/dist/browser/util/index.d.cts.map +0 -1
- package/dist/browser/util/index.d.mts +0 -2
- package/dist/browser/util/index.d.mts.map +0 -1
- package/dist/browser/util/index.d.ts +0 -2
- package/dist/browser/util/index.d.ts.map +0 -1
- package/dist/neutral/PluginBrowser.d.cts +0 -20
- package/dist/neutral/PluginBrowser.d.cts.map +0 -1
- package/dist/neutral/PluginBrowser.d.mts +0 -20
- package/dist/neutral/PluginBrowser.d.mts.map +0 -1
- package/dist/neutral/PluginBrowser.d.ts +0 -20
- package/dist/neutral/PluginBrowser.d.ts.map +0 -1
- package/dist/neutral/PluginNode.d.cts +0 -20
- package/dist/neutral/PluginNode.d.cts.map +0 -1
- package/dist/neutral/PluginNode.d.mts +0 -20
- package/dist/neutral/PluginNode.d.mts.map +0 -1
- package/dist/neutral/PluginNode.d.ts +0 -20
- package/dist/neutral/PluginNode.d.ts.map +0 -1
- package/dist/neutral/Witness/Config.d.cts +0 -8
- package/dist/neutral/Witness/Config.d.cts.map +0 -1
- package/dist/neutral/Witness/Config.d.mts +0 -8
- package/dist/neutral/Witness/Config.d.mts.map +0 -1
- package/dist/neutral/Witness/Config.d.ts +0 -8
- package/dist/neutral/Witness/Config.d.ts.map +0 -1
- package/dist/neutral/Witness/Params.d.cts +0 -5
- package/dist/neutral/Witness/Params.d.cts.map +0 -1
- package/dist/neutral/Witness/Params.d.mts +0 -5
- package/dist/neutral/Witness/Params.d.mts.map +0 -1
- package/dist/neutral/Witness/Params.d.ts +0 -5
- package/dist/neutral/Witness/Params.d.ts.map +0 -1
- package/dist/neutral/Witness/Witness.d.cts +0 -11
- package/dist/neutral/Witness/Witness.d.cts.map +0 -1
- package/dist/neutral/Witness/Witness.d.mts +0 -11
- package/dist/neutral/Witness/Witness.d.mts.map +0 -1
- package/dist/neutral/Witness/Witness.d.ts +0 -11
- package/dist/neutral/Witness/Witness.d.ts.map +0 -1
- package/dist/neutral/Witness/index.d.cts +0 -4
- package/dist/neutral/Witness/index.d.cts.map +0 -1
- package/dist/neutral/Witness/index.d.mts +0 -4
- package/dist/neutral/Witness/index.d.mts.map +0 -1
- package/dist/neutral/Witness/index.d.ts +0 -4
- package/dist/neutral/Witness/index.d.ts.map +0 -1
- package/dist/neutral/indexBrowser.d.cts +0 -3
- package/dist/neutral/indexBrowser.d.cts.map +0 -1
- package/dist/neutral/indexBrowser.d.mts +0 -3
- package/dist/neutral/indexBrowser.d.mts.map +0 -1
- package/dist/neutral/indexBrowser.d.ts +0 -3
- package/dist/neutral/indexBrowser.d.ts.map +0 -1
- package/dist/neutral/indexNode.cjs +0 -164
- package/dist/neutral/indexNode.cjs.map +0 -1
- package/dist/neutral/indexNode.d.cts +0 -3
- package/dist/neutral/indexNode.d.cts.map +0 -1
- package/dist/neutral/indexNode.d.mts +0 -3
- package/dist/neutral/indexNode.d.mts.map +0 -1
- package/dist/neutral/indexNode.d.ts.map +0 -1
- package/dist/neutral/util/hashFile.d.cts +0 -2
- package/dist/neutral/util/hashFile.d.cts.map +0 -1
- package/dist/neutral/util/hashFile.d.mts +0 -2
- package/dist/neutral/util/hashFile.d.mts.map +0 -1
- package/dist/neutral/util/hashFile.d.ts +0 -2
- package/dist/neutral/util/hashFile.d.ts.map +0 -1
- package/dist/neutral/util/hashHttpUrl.d.cts +0 -2
- package/dist/neutral/util/hashHttpUrl.d.cts.map +0 -1
- package/dist/neutral/util/hashHttpUrl.d.mts +0 -2
- package/dist/neutral/util/hashHttpUrl.d.mts.map +0 -1
- package/dist/neutral/util/hashHttpUrl.d.ts +0 -2
- package/dist/neutral/util/hashHttpUrl.d.ts.map +0 -1
- package/dist/neutral/util/hashUrl.d.cts +0 -2
- package/dist/neutral/util/hashUrl.d.cts.map +0 -1
- package/dist/neutral/util/hashUrl.d.mts +0 -2
- package/dist/neutral/util/hashUrl.d.mts.map +0 -1
- package/dist/neutral/util/hashUrl.d.ts +0 -2
- package/dist/neutral/util/hashUrl.d.ts.map +0 -1
- package/dist/neutral/util/index.d.cts +0 -2
- package/dist/neutral/util/index.d.cts.map +0 -1
- package/dist/neutral/util/index.d.mts +0 -2
- package/dist/neutral/util/index.d.mts.map +0 -1
- package/dist/neutral/util/index.d.ts +0 -2
- package/dist/neutral/util/index.d.ts.map +0 -1
- package/dist/node/PluginBrowser.d.cts +0 -20
- package/dist/node/PluginBrowser.d.cts.map +0 -1
- package/dist/node/PluginBrowser.d.mts +0 -20
- package/dist/node/PluginBrowser.d.mts.map +0 -1
- package/dist/node/PluginBrowser.d.ts +0 -20
- package/dist/node/PluginBrowser.d.ts.map +0 -1
- package/dist/node/PluginNode.d.cts +0 -20
- package/dist/node/PluginNode.d.cts.map +0 -1
- package/dist/node/PluginNode.d.mts +0 -20
- package/dist/node/PluginNode.d.mts.map +0 -1
- package/dist/node/PluginNode.d.ts +0 -20
- package/dist/node/PluginNode.d.ts.map +0 -1
- package/dist/node/Witness/Config.d.cts +0 -8
- package/dist/node/Witness/Config.d.cts.map +0 -1
- package/dist/node/Witness/Config.d.mts +0 -8
- package/dist/node/Witness/Config.d.mts.map +0 -1
- package/dist/node/Witness/Config.d.ts +0 -8
- package/dist/node/Witness/Config.d.ts.map +0 -1
- package/dist/node/Witness/Params.d.cts +0 -5
- package/dist/node/Witness/Params.d.cts.map +0 -1
- package/dist/node/Witness/Params.d.mts +0 -5
- package/dist/node/Witness/Params.d.mts.map +0 -1
- package/dist/node/Witness/Params.d.ts +0 -5
- package/dist/node/Witness/Params.d.ts.map +0 -1
- package/dist/node/Witness/Witness.d.cts +0 -11
- package/dist/node/Witness/Witness.d.cts.map +0 -1
- package/dist/node/Witness/Witness.d.mts +0 -11
- package/dist/node/Witness/Witness.d.mts.map +0 -1
- package/dist/node/Witness/Witness.d.ts +0 -11
- package/dist/node/Witness/Witness.d.ts.map +0 -1
- package/dist/node/Witness/index.d.cts +0 -4
- package/dist/node/Witness/index.d.cts.map +0 -1
- package/dist/node/Witness/index.d.mts +0 -4
- package/dist/node/Witness/index.d.mts.map +0 -1
- package/dist/node/Witness/index.d.ts +0 -4
- package/dist/node/Witness/index.d.ts.map +0 -1
- package/dist/node/indexBrowser.d.cts +0 -3
- package/dist/node/indexBrowser.d.cts.map +0 -1
- package/dist/node/indexBrowser.d.mts +0 -3
- package/dist/node/indexBrowser.d.mts.map +0 -1
- package/dist/node/indexBrowser.d.ts +0 -3
- package/dist/node/indexBrowser.d.ts.map +0 -1
- package/dist/node/indexNode.cjs +0 -176
- package/dist/node/indexNode.cjs.map +0 -1
- package/dist/node/indexNode.d.cts +0 -3
- package/dist/node/indexNode.d.cts.map +0 -1
- package/dist/node/indexNode.d.mts +0 -3
- package/dist/node/indexNode.d.mts.map +0 -1
- package/dist/node/indexNode.d.ts.map +0 -1
- package/dist/node/util/hashFile.d.cts +0 -2
- package/dist/node/util/hashFile.d.cts.map +0 -1
- package/dist/node/util/hashFile.d.mts +0 -2
- package/dist/node/util/hashFile.d.mts.map +0 -1
- package/dist/node/util/hashFile.d.ts +0 -2
- package/dist/node/util/hashFile.d.ts.map +0 -1
- package/dist/node/util/hashHttpUrl.d.cts +0 -2
- package/dist/node/util/hashHttpUrl.d.cts.map +0 -1
- package/dist/node/util/hashHttpUrl.d.mts +0 -2
- package/dist/node/util/hashHttpUrl.d.mts.map +0 -1
- package/dist/node/util/hashHttpUrl.d.ts +0 -2
- package/dist/node/util/hashHttpUrl.d.ts.map +0 -1
- package/dist/node/util/hashUrl.d.cts +0 -2
- package/dist/node/util/hashUrl.d.cts.map +0 -1
- package/dist/node/util/hashUrl.d.mts +0 -2
- package/dist/node/util/hashUrl.d.mts.map +0 -1
- package/dist/node/util/hashUrl.d.ts +0 -2
- package/dist/node/util/hashUrl.d.ts.map +0 -1
- package/dist/node/util/index.d.cts +0 -2
- package/dist/node/util/index.d.cts.map +0 -1
- package/dist/node/util/index.d.mts +0 -2
- package/dist/node/util/index.d.mts.map +0 -1
- package/dist/node/util/index.d.ts +0 -2
- package/dist/node/util/index.d.ts.map +0 -1
|
@@ -1,3 +1,47 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
1
|
+
import * as _xyo_network_payloadset_plugin from '@xyo-network/payloadset-plugin';
|
|
2
|
+
import { WitnessConfig, WitnessParams } from '@xyo-network/witness-model';
|
|
3
|
+
import * as _xyo_network_module_model from '@xyo-network/module-model';
|
|
4
|
+
import { AnyConfigSchema } from '@xyo-network/module-model';
|
|
5
|
+
import * as _xyo_network_payload_model from '@xyo-network/payload-model';
|
|
6
|
+
import { Schema, Payload } from '@xyo-network/payload-model';
|
|
7
|
+
import * as _store__xyo_network_account_model_virtual_3afa553815_package from '.store/@xyo-network-account-model-virtual-3afa553815/package';
|
|
8
|
+
import * as _store__xylabs_object_npm_4_0_0_ffd6151301_package from '.store/@xylabs-object-npm-4.0.0-ffd6151301/package';
|
|
9
|
+
import { AbstractWitness } from '@xyo-network/abstract-witness';
|
|
10
|
+
|
|
11
|
+
declare const UrlWitnessConfigSchema: "network.xyo.url.witness.config";
|
|
12
|
+
type UrlWitnessConfigSchema = typeof UrlWitnessConfigSchema;
|
|
13
|
+
type UrlWitnessConfig = WitnessConfig<{
|
|
14
|
+
schema: UrlWitnessConfigSchema;
|
|
15
|
+
urls?: string[];
|
|
16
|
+
}>;
|
|
17
|
+
|
|
18
|
+
type UrlWitnessParams = WitnessParams<AnyConfigSchema<UrlWitnessConfig>>;
|
|
19
|
+
|
|
20
|
+
declare class UrlWitness<TParams extends UrlWitnessParams = UrlWitnessParams> extends AbstractWitness<TParams> {
|
|
21
|
+
static readonly configSchemas: Schema[];
|
|
22
|
+
static readonly defaultConfigSchema: Schema;
|
|
23
|
+
static hashUrl: ((url: string) => Promise<string>) | undefined;
|
|
24
|
+
get urls(): string[] | undefined;
|
|
25
|
+
protected observeHandler(payloads?: Payload[]): Promise<Payload[]>;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
declare const UrlPlugin: () => _xyo_network_payloadset_plugin.PayloadSetWitnessPlugin<UrlWitness<_store__xylabs_object_npm_4_0_0_ffd6151301_package.BaseParamsFields & {
|
|
29
|
+
account?: _store__xyo_network_account_model_virtual_3afa553815_package.AccountInstance | "random";
|
|
30
|
+
addToResolvers?: boolean;
|
|
31
|
+
additionalSigners?: _store__xyo_network_account_model_virtual_3afa553815_package.AccountInstance[];
|
|
32
|
+
allowNameResolution?: boolean;
|
|
33
|
+
config: _xyo_network_payload_model.SchemaFields & _xyo_network_payload_model.PayloadFields & Omit<_xyo_network_module_model.ArchivingModuleConfig & _xyo_network_module_model.ModuleConfigFields & _xyo_network_payload_model.SchemaFields & _xyo_network_payload_model.PayloadFields & Omit<_xyo_network_module_model.ArchivingModuleConfig & _xyo_network_module_model.ModuleConfigFields & {
|
|
34
|
+
schema: "network.xyo.url.witness.config";
|
|
35
|
+
} & {
|
|
36
|
+
schema: UrlWitnessConfigSchema;
|
|
37
|
+
urls?: string[];
|
|
38
|
+
}, "schema"> & {
|
|
39
|
+
schema: "network.xyo.url.witness.config";
|
|
40
|
+
}, "schema"> & {
|
|
41
|
+
schema: string;
|
|
42
|
+
};
|
|
43
|
+
ephemeralQueryAccountEnabled?: boolean;
|
|
44
|
+
moduleIdentifierTransformers?: _xyo_network_module_model.ModuleIdentifierTransformer[];
|
|
45
|
+
}>>;
|
|
46
|
+
|
|
47
|
+
export { UrlPlugin, UrlWitness, type UrlWitnessConfig, UrlWitnessConfigSchema, type UrlWitnessParams, UrlPlugin as default };
|
|
@@ -1,6 +1,3 @@
|
|
|
1
|
-
var __defProp = Object.defineProperty;
|
|
2
|
-
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
|
3
|
-
|
|
4
1
|
// src/PluginNode.ts
|
|
5
2
|
import { PayloadSetSchema } from "@xyo-network/payload-model";
|
|
6
3
|
import { createPayloadSetWitnessPlugin } from "@xyo-network/payloadset-plugin";
|
|
@@ -15,13 +12,7 @@ import { assertEx } from "@xylabs/assert";
|
|
|
15
12
|
import { AbstractWitness } from "@xyo-network/abstract-witness";
|
|
16
13
|
import { UrlSchema as UrlSchema2 } from "@xyo-network/url-payload-plugin";
|
|
17
14
|
var UrlWitness = class _UrlWitness extends AbstractWitness {
|
|
18
|
-
static
|
|
19
|
-
__name(this, "UrlWitness");
|
|
20
|
-
}
|
|
21
|
-
static configSchemas = [
|
|
22
|
-
...super.configSchemas,
|
|
23
|
-
UrlWitnessConfigSchema
|
|
24
|
-
];
|
|
15
|
+
static configSchemas = [...super.configSchemas, UrlWitnessConfigSchema];
|
|
25
16
|
static defaultConfigSchema = UrlWitnessConfigSchema;
|
|
26
17
|
static hashUrl = void 0;
|
|
27
18
|
get urls() {
|
|
@@ -31,37 +22,28 @@ var UrlWitness = class _UrlWitness extends AbstractWitness {
|
|
|
31
22
|
if (_UrlWitness.hashUrl === void 0) {
|
|
32
23
|
throw new Error("Set UrlWitness.hashUrl before using");
|
|
33
24
|
}
|
|
34
|
-
const urls = this.urls?.map((url) => ({
|
|
35
|
-
schema: UrlSchema2,
|
|
36
|
-
url
|
|
37
|
-
})) ?? payloads.filter((p) => p.schema === UrlSchema2).map((p) => {
|
|
38
|
-
return {
|
|
39
|
-
schema: UrlSchema2,
|
|
40
|
-
url: p.url
|
|
41
|
-
};
|
|
25
|
+
const urls = this.urls?.map((url) => ({ schema: UrlSchema2, url })) ?? payloads.filter((p) => p.schema === UrlSchema2).map((p) => {
|
|
26
|
+
return { schema: UrlSchema2, url: p.url };
|
|
42
27
|
});
|
|
43
|
-
const hashed = await Promise.all(
|
|
44
|
-
|
|
45
|
-
...url,
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
}));
|
|
28
|
+
const hashed = await Promise.all(
|
|
29
|
+
urls.map(async (url) => {
|
|
30
|
+
return { ...url, hash: await assertEx(_UrlWitness.hashUrl, () => "Set UrlWitness.hashUrl before using")(url.url) };
|
|
31
|
+
})
|
|
32
|
+
);
|
|
49
33
|
return hashed;
|
|
50
34
|
}
|
|
51
35
|
};
|
|
52
36
|
|
|
53
37
|
// src/PluginNode.ts
|
|
54
|
-
var UrlPlugin =
|
|
55
|
-
required: {
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
}, "witness")
|
|
64
|
-
}), "UrlPlugin");
|
|
38
|
+
var UrlPlugin = () => createPayloadSetWitnessPlugin(
|
|
39
|
+
{ required: { [UrlSchema3]: 1 }, schema: PayloadSetSchema },
|
|
40
|
+
{
|
|
41
|
+
witness: async (params) => {
|
|
42
|
+
const result = await UrlWitness.create(params);
|
|
43
|
+
return result;
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
);
|
|
65
47
|
export {
|
|
66
48
|
UrlPlugin,
|
|
67
49
|
UrlWitness,
|
|
@@ -1 +1 @@
|
|
|
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.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 { 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"],"mappings":"
|
|
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.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 { 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"],"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,OACF,KAAK,MAAM,IAAI,UAAQ,EAAE,QAAQC,YAAW,IAAI,EAAE,KACjD,SACA,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,3 +1,47 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
1
|
+
import * as _xyo_network_payloadset_plugin from '@xyo-network/payloadset-plugin';
|
|
2
|
+
import { WitnessConfig, WitnessParams } from '@xyo-network/witness-model';
|
|
3
|
+
import * as _xyo_network_module_model from '@xyo-network/module-model';
|
|
4
|
+
import { AnyConfigSchema } from '@xyo-network/module-model';
|
|
5
|
+
import * as _xyo_network_payload_model from '@xyo-network/payload-model';
|
|
6
|
+
import { Schema, Payload } from '@xyo-network/payload-model';
|
|
7
|
+
import * as _store__xyo_network_account_model_virtual_3afa553815_package from '.store/@xyo-network-account-model-virtual-3afa553815/package';
|
|
8
|
+
import * as _store__xylabs_object_npm_4_0_0_ffd6151301_package from '.store/@xylabs-object-npm-4.0.0-ffd6151301/package';
|
|
9
|
+
import { AbstractWitness } from '@xyo-network/abstract-witness';
|
|
10
|
+
|
|
11
|
+
declare const UrlWitnessConfigSchema: "network.xyo.url.witness.config";
|
|
12
|
+
type UrlWitnessConfigSchema = typeof UrlWitnessConfigSchema;
|
|
13
|
+
type UrlWitnessConfig = WitnessConfig<{
|
|
14
|
+
schema: UrlWitnessConfigSchema;
|
|
15
|
+
urls?: string[];
|
|
16
|
+
}>;
|
|
17
|
+
|
|
18
|
+
type UrlWitnessParams = WitnessParams<AnyConfigSchema<UrlWitnessConfig>>;
|
|
19
|
+
|
|
20
|
+
declare class UrlWitness<TParams extends UrlWitnessParams = UrlWitnessParams> extends AbstractWitness<TParams> {
|
|
21
|
+
static readonly configSchemas: Schema[];
|
|
22
|
+
static readonly defaultConfigSchema: Schema;
|
|
23
|
+
static hashUrl: ((url: string) => Promise<string>) | undefined;
|
|
24
|
+
get urls(): string[] | undefined;
|
|
25
|
+
protected observeHandler(payloads?: Payload[]): Promise<Payload[]>;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
declare const UrlPlugin: () => _xyo_network_payloadset_plugin.PayloadSetWitnessPlugin<UrlWitness<_store__xylabs_object_npm_4_0_0_ffd6151301_package.BaseParamsFields & {
|
|
29
|
+
account?: _store__xyo_network_account_model_virtual_3afa553815_package.AccountInstance | "random";
|
|
30
|
+
addToResolvers?: boolean;
|
|
31
|
+
additionalSigners?: _store__xyo_network_account_model_virtual_3afa553815_package.AccountInstance[];
|
|
32
|
+
allowNameResolution?: boolean;
|
|
33
|
+
config: _xyo_network_payload_model.SchemaFields & _xyo_network_payload_model.PayloadFields & Omit<_xyo_network_module_model.ArchivingModuleConfig & _xyo_network_module_model.ModuleConfigFields & _xyo_network_payload_model.SchemaFields & _xyo_network_payload_model.PayloadFields & Omit<_xyo_network_module_model.ArchivingModuleConfig & _xyo_network_module_model.ModuleConfigFields & {
|
|
34
|
+
schema: "network.xyo.url.witness.config";
|
|
35
|
+
} & {
|
|
36
|
+
schema: UrlWitnessConfigSchema;
|
|
37
|
+
urls?: string[];
|
|
38
|
+
}, "schema"> & {
|
|
39
|
+
schema: "network.xyo.url.witness.config";
|
|
40
|
+
}, "schema"> & {
|
|
41
|
+
schema: string;
|
|
42
|
+
};
|
|
43
|
+
ephemeralQueryAccountEnabled?: boolean;
|
|
44
|
+
moduleIdentifierTransformers?: _xyo_network_module_model.ModuleIdentifierTransformer[];
|
|
45
|
+
}>>;
|
|
46
|
+
|
|
47
|
+
export { UrlPlugin, UrlWitness, type UrlWitnessConfig, UrlWitnessConfigSchema, type UrlWitnessParams, UrlPlugin as default };
|
|
@@ -1,11 +1,8 @@
|
|
|
1
|
-
var __defProp = Object.defineProperty;
|
|
2
|
-
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
|
3
|
-
|
|
4
1
|
// src/util/hashFile.ts
|
|
5
2
|
import { createReadStream } from "node:fs";
|
|
6
3
|
import { fileURLToPath } from "node:url";
|
|
7
4
|
import { Crypto } from "@xylabs/crypto";
|
|
8
|
-
var hashFile =
|
|
5
|
+
var hashFile = (url) => {
|
|
9
6
|
const path = url.startsWith("file://") ? fileURLToPath(url) : url;
|
|
10
7
|
const ret = new Promise((resolve, reject) => {
|
|
11
8
|
const hash = Crypto.createHash("sha256");
|
|
@@ -21,13 +18,13 @@ var hashFile = /* @__PURE__ */ __name((url) => {
|
|
|
21
18
|
});
|
|
22
19
|
});
|
|
23
20
|
return ret;
|
|
24
|
-
}
|
|
21
|
+
};
|
|
25
22
|
|
|
26
23
|
// src/util/hashHttpUrl.ts
|
|
27
24
|
import http from "node:http";
|
|
28
25
|
import https from "node:https";
|
|
29
26
|
import { Crypto as Crypto2 } from "@xylabs/crypto";
|
|
30
|
-
var hashHttpUrl =
|
|
27
|
+
var hashHttpUrl = (url) => {
|
|
31
28
|
const ret = new Promise((resolve, reject) => {
|
|
32
29
|
const hash = Crypto2.createHash("sha256");
|
|
33
30
|
const lib = url.startsWith("https") ? https : http;
|
|
@@ -43,10 +40,10 @@ var hashHttpUrl = /* @__PURE__ */ __name((url) => {
|
|
|
43
40
|
});
|
|
44
41
|
});
|
|
45
42
|
return ret;
|
|
46
|
-
}
|
|
43
|
+
};
|
|
47
44
|
|
|
48
45
|
// src/util/hashUrl.ts
|
|
49
|
-
var hashUrl =
|
|
46
|
+
var hashUrl = (url) => {
|
|
50
47
|
const scheme = url.split("://")[0]?.toLowerCase();
|
|
51
48
|
switch (scheme) {
|
|
52
49
|
case "file": {
|
|
@@ -60,7 +57,7 @@ var hashUrl = /* @__PURE__ */ __name((url) => {
|
|
|
60
57
|
throw new Error(`Unsupported URL scheme: ${scheme}`);
|
|
61
58
|
}
|
|
62
59
|
}
|
|
63
|
-
}
|
|
60
|
+
};
|
|
64
61
|
|
|
65
62
|
// src/Witness/Config.ts
|
|
66
63
|
import { UrlSchema } from "@xyo-network/url-payload-plugin";
|
|
@@ -71,13 +68,7 @@ import { assertEx } from "@xylabs/assert";
|
|
|
71
68
|
import { AbstractWitness } from "@xyo-network/abstract-witness";
|
|
72
69
|
import { UrlSchema as UrlSchema2 } from "@xyo-network/url-payload-plugin";
|
|
73
70
|
var UrlWitness = class _UrlWitness extends AbstractWitness {
|
|
74
|
-
static
|
|
75
|
-
__name(this, "UrlWitness");
|
|
76
|
-
}
|
|
77
|
-
static configSchemas = [
|
|
78
|
-
...super.configSchemas,
|
|
79
|
-
UrlWitnessConfigSchema
|
|
80
|
-
];
|
|
71
|
+
static configSchemas = [...super.configSchemas, UrlWitnessConfigSchema];
|
|
81
72
|
static defaultConfigSchema = UrlWitnessConfigSchema;
|
|
82
73
|
static hashUrl = void 0;
|
|
83
74
|
get urls() {
|
|
@@ -87,21 +78,14 @@ var UrlWitness = class _UrlWitness extends AbstractWitness {
|
|
|
87
78
|
if (_UrlWitness.hashUrl === void 0) {
|
|
88
79
|
throw new Error("Set UrlWitness.hashUrl before using");
|
|
89
80
|
}
|
|
90
|
-
const urls = this.urls?.map((url) => ({
|
|
91
|
-
schema: UrlSchema2,
|
|
92
|
-
url
|
|
93
|
-
})) ?? payloads.filter((p) => p.schema === UrlSchema2).map((p) => {
|
|
94
|
-
return {
|
|
95
|
-
schema: UrlSchema2,
|
|
96
|
-
url: p.url
|
|
97
|
-
};
|
|
81
|
+
const urls = this.urls?.map((url) => ({ schema: UrlSchema2, url })) ?? payloads.filter((p) => p.schema === UrlSchema2).map((p) => {
|
|
82
|
+
return { schema: UrlSchema2, url: p.url };
|
|
98
83
|
});
|
|
99
|
-
const hashed = await Promise.all(
|
|
100
|
-
|
|
101
|
-
...url,
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
}));
|
|
84
|
+
const hashed = await Promise.all(
|
|
85
|
+
urls.map(async (url) => {
|
|
86
|
+
return { ...url, hash: await assertEx(_UrlWitness.hashUrl, () => "Set UrlWitness.hashUrl before using")(url.url) };
|
|
87
|
+
})
|
|
88
|
+
);
|
|
105
89
|
return hashed;
|
|
106
90
|
}
|
|
107
91
|
};
|
|
@@ -110,17 +94,15 @@ var UrlWitness = class _UrlWitness extends AbstractWitness {
|
|
|
110
94
|
import { PayloadSetSchema } from "@xyo-network/payload-model";
|
|
111
95
|
import { createPayloadSetWitnessPlugin } from "@xyo-network/payloadset-plugin";
|
|
112
96
|
import { UrlSchema as UrlSchema3 } from "@xyo-network/url-payload-plugin";
|
|
113
|
-
var UrlPlugin =
|
|
114
|
-
required: {
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
}, "witness")
|
|
123
|
-
}), "UrlPlugin");
|
|
97
|
+
var UrlPlugin = () => createPayloadSetWitnessPlugin(
|
|
98
|
+
{ required: { [UrlSchema3]: 1 }, schema: PayloadSetSchema },
|
|
99
|
+
{
|
|
100
|
+
witness: async (params) => {
|
|
101
|
+
const result = await UrlWitness.create(params);
|
|
102
|
+
return result;
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
);
|
|
124
106
|
|
|
125
107
|
// src/indexNode.ts
|
|
126
108
|
UrlWitness.hashUrl = hashUrl;
|
|
@@ -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.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":"
|
|
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-x/no-default-export\nexport { UrlPlugin as default, UrlPlugin } from './PluginNode.ts'\nexport * from './Witness/index.ts'\n"],"mappings":"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","names":["Crypto","UrlSchema","UrlSchema","UrlSchema","UrlSchema"]}
|
package/dist/node/indexNode.d.ts
CHANGED
|
@@ -1,3 +1,47 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
1
|
+
import * as _xyo_network_payloadset_plugin from '@xyo-network/payloadset-plugin';
|
|
2
|
+
import { WitnessConfig, WitnessParams } from '@xyo-network/witness-model';
|
|
3
|
+
import * as _xyo_network_module_model from '@xyo-network/module-model';
|
|
4
|
+
import { AnyConfigSchema } from '@xyo-network/module-model';
|
|
5
|
+
import * as _xyo_network_payload_model from '@xyo-network/payload-model';
|
|
6
|
+
import { Schema, Payload } from '@xyo-network/payload-model';
|
|
7
|
+
import * as _store__xyo_network_account_model_virtual_3afa553815_package from '.store/@xyo-network-account-model-virtual-3afa553815/package';
|
|
8
|
+
import * as _store__xylabs_object_npm_4_0_0_ffd6151301_package from '.store/@xylabs-object-npm-4.0.0-ffd6151301/package';
|
|
9
|
+
import { AbstractWitness } from '@xyo-network/abstract-witness';
|
|
10
|
+
|
|
11
|
+
declare const UrlWitnessConfigSchema: "network.xyo.url.witness.config";
|
|
12
|
+
type UrlWitnessConfigSchema = typeof UrlWitnessConfigSchema;
|
|
13
|
+
type UrlWitnessConfig = WitnessConfig<{
|
|
14
|
+
schema: UrlWitnessConfigSchema;
|
|
15
|
+
urls?: string[];
|
|
16
|
+
}>;
|
|
17
|
+
|
|
18
|
+
type UrlWitnessParams = WitnessParams<AnyConfigSchema<UrlWitnessConfig>>;
|
|
19
|
+
|
|
20
|
+
declare class UrlWitness<TParams extends UrlWitnessParams = UrlWitnessParams> extends AbstractWitness<TParams> {
|
|
21
|
+
static readonly configSchemas: Schema[];
|
|
22
|
+
static readonly defaultConfigSchema: Schema;
|
|
23
|
+
static hashUrl: ((url: string) => Promise<string>) | undefined;
|
|
24
|
+
get urls(): string[] | undefined;
|
|
25
|
+
protected observeHandler(payloads?: Payload[]): Promise<Payload[]>;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
declare const UrlPlugin: () => _xyo_network_payloadset_plugin.PayloadSetWitnessPlugin<UrlWitness<_store__xylabs_object_npm_4_0_0_ffd6151301_package.BaseParamsFields & {
|
|
29
|
+
account?: _store__xyo_network_account_model_virtual_3afa553815_package.AccountInstance | "random";
|
|
30
|
+
addToResolvers?: boolean;
|
|
31
|
+
additionalSigners?: _store__xyo_network_account_model_virtual_3afa553815_package.AccountInstance[];
|
|
32
|
+
allowNameResolution?: boolean;
|
|
33
|
+
config: _xyo_network_payload_model.SchemaFields & _xyo_network_payload_model.PayloadFields & Omit<_xyo_network_module_model.ArchivingModuleConfig & _xyo_network_module_model.ModuleConfigFields & _xyo_network_payload_model.SchemaFields & _xyo_network_payload_model.PayloadFields & Omit<_xyo_network_module_model.ArchivingModuleConfig & _xyo_network_module_model.ModuleConfigFields & {
|
|
34
|
+
schema: "network.xyo.url.witness.config";
|
|
35
|
+
} & {
|
|
36
|
+
schema: UrlWitnessConfigSchema;
|
|
37
|
+
urls?: string[];
|
|
38
|
+
}, "schema"> & {
|
|
39
|
+
schema: "network.xyo.url.witness.config";
|
|
40
|
+
}, "schema"> & {
|
|
41
|
+
schema: string;
|
|
42
|
+
};
|
|
43
|
+
ephemeralQueryAccountEnabled?: boolean;
|
|
44
|
+
moduleIdentifierTransformers?: _xyo_network_module_model.ModuleIdentifierTransformer[];
|
|
45
|
+
}>>;
|
|
46
|
+
|
|
47
|
+
export { UrlPlugin, UrlWitness, type UrlWitnessConfig, UrlWitnessConfigSchema, type UrlWitnessParams, UrlPlugin as default };
|
package/dist/node/indexNode.mjs
CHANGED
|
@@ -1,16 +1,8 @@
|
|
|
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
|
-
|
|
9
1
|
// src/util/hashFile.ts
|
|
10
2
|
import { createReadStream } from "node:fs";
|
|
11
3
|
import { fileURLToPath } from "node:url";
|
|
12
4
|
import { Crypto } from "@xylabs/crypto";
|
|
13
|
-
var hashFile =
|
|
5
|
+
var hashFile = (url) => {
|
|
14
6
|
const path = url.startsWith("file://") ? fileURLToPath(url) : url;
|
|
15
7
|
const ret = new Promise((resolve, reject) => {
|
|
16
8
|
const hash = Crypto.createHash("sha256");
|
|
@@ -26,13 +18,13 @@ var hashFile = /* @__PURE__ */ __name((url) => {
|
|
|
26
18
|
});
|
|
27
19
|
});
|
|
28
20
|
return ret;
|
|
29
|
-
}
|
|
21
|
+
};
|
|
30
22
|
|
|
31
23
|
// src/util/hashHttpUrl.ts
|
|
32
24
|
import http from "node:http";
|
|
33
25
|
import https from "node:https";
|
|
34
26
|
import { Crypto as Crypto2 } from "@xylabs/crypto";
|
|
35
|
-
var hashHttpUrl =
|
|
27
|
+
var hashHttpUrl = (url) => {
|
|
36
28
|
const ret = new Promise((resolve, reject) => {
|
|
37
29
|
const hash = Crypto2.createHash("sha256");
|
|
38
30
|
const lib = url.startsWith("https") ? https : http;
|
|
@@ -48,12 +40,11 @@ var hashHttpUrl = /* @__PURE__ */ __name((url) => {
|
|
|
48
40
|
});
|
|
49
41
|
});
|
|
50
42
|
return ret;
|
|
51
|
-
}
|
|
43
|
+
};
|
|
52
44
|
|
|
53
45
|
// src/util/hashUrl.ts
|
|
54
|
-
var hashUrl =
|
|
55
|
-
|
|
56
|
-
const scheme = (_a = url.split("://")[0]) == null ? void 0 : _a.toLowerCase();
|
|
46
|
+
var hashUrl = (url) => {
|
|
47
|
+
const scheme = url.split("://")[0]?.toLowerCase();
|
|
57
48
|
switch (scheme) {
|
|
58
49
|
case "file": {
|
|
59
50
|
return hashFile(url);
|
|
@@ -66,7 +57,7 @@ var hashUrl = /* @__PURE__ */ __name((url) => {
|
|
|
66
57
|
throw new Error(`Unsupported URL scheme: ${scheme}`);
|
|
67
58
|
}
|
|
68
59
|
}
|
|
69
|
-
}
|
|
60
|
+
};
|
|
70
61
|
|
|
71
62
|
// src/Witness/Config.ts
|
|
72
63
|
import { UrlSchema } from "@xyo-network/url-payload-plugin";
|
|
@@ -76,58 +67,42 @@ var UrlWitnessConfigSchema = `${UrlSchema}.witness.config`;
|
|
|
76
67
|
import { assertEx } from "@xylabs/assert";
|
|
77
68
|
import { AbstractWitness } from "@xyo-network/abstract-witness";
|
|
78
69
|
import { UrlSchema as UrlSchema2 } from "@xyo-network/url-payload-plugin";
|
|
79
|
-
var
|
|
70
|
+
var UrlWitness = class _UrlWitness extends AbstractWitness {
|
|
71
|
+
static configSchemas = [...super.configSchemas, UrlWitnessConfigSchema];
|
|
72
|
+
static defaultConfigSchema = UrlWitnessConfigSchema;
|
|
73
|
+
static hashUrl = void 0;
|
|
80
74
|
get urls() {
|
|
81
|
-
|
|
82
|
-
return (_a = this.config) == null ? void 0 : _a.urls;
|
|
75
|
+
return this.config?.urls;
|
|
83
76
|
}
|
|
84
77
|
async observeHandler(payloads = []) {
|
|
85
|
-
var _a;
|
|
86
78
|
if (_UrlWitness.hashUrl === void 0) {
|
|
87
79
|
throw new Error("Set UrlWitness.hashUrl before using");
|
|
88
80
|
}
|
|
89
|
-
const urls =
|
|
90
|
-
schema: UrlSchema2,
|
|
91
|
-
url
|
|
92
|
-
}))) ?? payloads.filter((p) => p.schema === UrlSchema2).map((p) => {
|
|
93
|
-
return {
|
|
94
|
-
schema: UrlSchema2,
|
|
95
|
-
url: p.url
|
|
96
|
-
};
|
|
81
|
+
const urls = this.urls?.map((url) => ({ schema: UrlSchema2, url })) ?? payloads.filter((p) => p.schema === UrlSchema2).map((p) => {
|
|
82
|
+
return { schema: UrlSchema2, url: p.url };
|
|
97
83
|
});
|
|
98
|
-
const hashed = await Promise.all(
|
|
99
|
-
|
|
100
|
-
...url,
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
}));
|
|
84
|
+
const hashed = await Promise.all(
|
|
85
|
+
urls.map(async (url) => {
|
|
86
|
+
return { ...url, hash: await assertEx(_UrlWitness.hashUrl, () => "Set UrlWitness.hashUrl before using")(url.url) };
|
|
87
|
+
})
|
|
88
|
+
);
|
|
104
89
|
return hashed;
|
|
105
90
|
}
|
|
106
91
|
};
|
|
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;
|
|
115
92
|
|
|
116
93
|
// src/PluginNode.ts
|
|
117
94
|
import { PayloadSetSchema } from "@xyo-network/payload-model";
|
|
118
95
|
import { createPayloadSetWitnessPlugin } from "@xyo-network/payloadset-plugin";
|
|
119
96
|
import { UrlSchema as UrlSchema3 } from "@xyo-network/url-payload-plugin";
|
|
120
|
-
var UrlPlugin =
|
|
121
|
-
required: {
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
}, "witness")
|
|
130
|
-
}), "UrlPlugin");
|
|
97
|
+
var UrlPlugin = () => createPayloadSetWitnessPlugin(
|
|
98
|
+
{ required: { [UrlSchema3]: 1 }, schema: PayloadSetSchema },
|
|
99
|
+
{
|
|
100
|
+
witness: async (params) => {
|
|
101
|
+
const result = await UrlWitness.create(params);
|
|
102
|
+
return result;
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
);
|
|
131
106
|
|
|
132
107
|
// src/indexNode.ts
|
|
133
108
|
UrlWitness.hashUrl = hashUrl;
|
|
@@ -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.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":"
|
|
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-x/no-default-export\nexport { UrlPlugin as default, UrlPlugin } from './PluginNode.ts'\nexport * from './Witness/index.ts'\n"],"mappings":"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","names":["Crypto","UrlSchema","UrlSchema","UrlSchema","UrlSchema"]}
|