@xyo-network/url-plugin 2.81.3 → 2.81.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 (70) hide show
  1. package/dist/browser/Plugin.d.cts +55 -0
  2. package/dist/browser/Plugin.d.cts.map +1 -0
  3. package/dist/browser/Plugin.d.mts +55 -0
  4. package/dist/browser/Plugin.d.mts.map +1 -0
  5. package/dist/browser/Plugin.d.ts +55 -0
  6. package/dist/browser/Plugin.d.ts.map +1 -0
  7. package/dist/browser/Witness/Config.d.cts +8 -0
  8. package/dist/browser/Witness/Config.d.cts.map +1 -0
  9. package/dist/browser/Witness/Config.d.mts +8 -0
  10. package/dist/browser/Witness/Config.d.mts.map +1 -0
  11. package/dist/browser/Witness/Config.d.ts +8 -0
  12. package/dist/browser/Witness/Config.d.ts.map +1 -0
  13. package/dist/browser/Witness/Params.d.cts +5 -0
  14. package/dist/browser/Witness/Params.d.cts.map +1 -0
  15. package/dist/browser/Witness/Params.d.mts +5 -0
  16. package/dist/browser/Witness/Params.d.mts.map +1 -0
  17. package/dist/browser/Witness/Params.d.ts +5 -0
  18. package/dist/browser/Witness/Params.d.ts.map +1 -0
  19. package/dist/browser/Witness/Witness.d.cts +9 -0
  20. package/dist/browser/Witness/Witness.d.cts.map +1 -0
  21. package/dist/browser/Witness/Witness.d.mts +9 -0
  22. package/dist/browser/Witness/Witness.d.mts.map +1 -0
  23. package/dist/browser/Witness/Witness.d.ts +9 -0
  24. package/dist/browser/Witness/Witness.d.ts.map +1 -0
  25. package/dist/browser/Witness/index.d.cts +4 -0
  26. package/dist/browser/Witness/index.d.cts.map +1 -0
  27. package/dist/browser/Witness/index.d.mts +4 -0
  28. package/dist/browser/Witness/index.d.mts.map +1 -0
  29. package/dist/browser/Witness/index.d.ts +4 -0
  30. package/dist/browser/Witness/index.d.ts.map +1 -0
  31. package/dist/browser/index.cjs +143 -0
  32. package/dist/browser/index.cjs.map +1 -0
  33. package/dist/browser/index.d.cts +5 -0
  34. package/dist/browser/index.d.cts.map +1 -0
  35. package/dist/browser/index.d.mts +5 -0
  36. package/dist/browser/index.d.mts.map +1 -0
  37. package/dist/browser/index.d.ts +5 -0
  38. package/dist/browser/index.d.ts.map +1 -0
  39. package/dist/{node/index.mjs → browser/index.js} +4 -7
  40. package/dist/{node/index.mjs.map → browser/index.js.map} +1 -1
  41. package/dist/browser/util/hashFile.d.cts +2 -0
  42. package/dist/browser/util/hashFile.d.cts.map +1 -0
  43. package/dist/browser/util/hashFile.d.mts +2 -0
  44. package/dist/browser/util/hashFile.d.mts.map +1 -0
  45. package/dist/browser/util/hashFile.d.ts +2 -0
  46. package/dist/browser/util/hashFile.d.ts.map +1 -0
  47. package/dist/browser/util/hashHttpUrl.d.cts +2 -0
  48. package/dist/browser/util/hashHttpUrl.d.cts.map +1 -0
  49. package/dist/browser/util/hashHttpUrl.d.mts +2 -0
  50. package/dist/browser/util/hashHttpUrl.d.mts.map +1 -0
  51. package/dist/browser/util/hashHttpUrl.d.ts +2 -0
  52. package/dist/browser/util/hashHttpUrl.d.ts.map +1 -0
  53. package/dist/browser/util/hashUrl.d.cts +2 -0
  54. package/dist/browser/util/hashUrl.d.cts.map +1 -0
  55. package/dist/browser/util/hashUrl.d.mts +2 -0
  56. package/dist/browser/util/hashUrl.d.mts.map +1 -0
  57. package/dist/browser/util/hashUrl.d.ts +2 -0
  58. package/dist/browser/util/hashUrl.d.ts.map +1 -0
  59. package/dist/browser/util/index.d.cts +2 -0
  60. package/dist/browser/util/index.d.cts.map +1 -0
  61. package/dist/browser/util/index.d.mts +2 -0
  62. package/dist/browser/util/index.d.mts.map +1 -0
  63. package/dist/browser/util/index.d.ts +2 -0
  64. package/dist/browser/util/index.d.ts.map +1 -0
  65. package/dist/node/index.cjs +152 -0
  66. package/dist/node/index.cjs.map +1 -0
  67. package/dist/node/index.js +27 -66
  68. package/dist/node/index.js.map +1 -1
  69. package/package.json +19 -9
  70. package/xy.config.ts +3 -1
@@ -0,0 +1,55 @@
1
+ import { UrlWitness } from './Witness';
2
+ export declare const UrlPlugin: () => import("@xyo-network/payloadset-plugin").PayloadSetWitnessPlugin<UrlWitness<import("@xyo-network/core").BaseParamsFields & {
3
+ account?: import("@xyo-network/account-model").AccountInstance | "random" | undefined;
4
+ config: import("@xyo-network/payload-model").SchemaFields & Omit<{
5
+ accountDerivationPath?: string | undefined;
6
+ readonly archivist?: import("@xyo-network/module-model").ArchivistModuleConfig | undefined;
7
+ readonly labels?: import("@xyo-network/module-model").Labels | undefined;
8
+ readonly name?: string | undefined;
9
+ readonly paging?: Record<string, {
10
+ size?: number | undefined;
11
+ }> | undefined;
12
+ readonly security?: {
13
+ readonly allowAnonymous?: boolean | undefined;
14
+ readonly allowed?: Record<string, (string | import("@xyo-network/module-model").CosigningAddressSet)[]> | undefined;
15
+ readonly disallowed?: Record<string, string[]> | undefined;
16
+ } | undefined;
17
+ readonly sign?: boolean | undefined;
18
+ readonly storeQueries?: boolean | undefined;
19
+ readonly timestamp?: boolean | undefined;
20
+ } & import("@xyo-network/module-model").ArchivingModuleConfig & Omit<import("@xyo-network/payload-model").SchemaFields & Omit<{
21
+ accountDerivationPath?: string | undefined;
22
+ readonly archivist?: import("@xyo-network/module-model").ArchivistModuleConfig | undefined;
23
+ readonly labels?: import("@xyo-network/module-model").Labels | undefined;
24
+ readonly name?: string | undefined;
25
+ readonly paging?: Record<string, {
26
+ size?: number | undefined;
27
+ }> | undefined;
28
+ readonly security?: {
29
+ readonly allowAnonymous?: boolean | undefined;
30
+ readonly allowed?: Record<string, (string | import("@xyo-network/module-model").CosigningAddressSet)[]> | undefined;
31
+ readonly disallowed?: Record<string, string[]> | undefined;
32
+ } | undefined;
33
+ readonly sign?: boolean | undefined;
34
+ readonly storeQueries?: boolean | undefined;
35
+ readonly timestamp?: boolean | undefined;
36
+ } & import("@xyo-network/module-model").ArchivingModuleConfig & {
37
+ archivist?: string | undefined;
38
+ schema: "network.xyo.url.witness.config";
39
+ targetSet?: (import("@xyo-network/payload-model").SchemaFields & import("@xyo-network/payload-model").PayloadSet & {
40
+ schema: "network.xyo.payload.set";
41
+ }) | undefined;
42
+ } & {
43
+ schema: "network.xyo.url.witness.config";
44
+ urls?: string[] | undefined;
45
+ }, "schema"> & {
46
+ schema: "network.xyo.url.witness.config";
47
+ }, "schema"> & {
48
+ schema: string;
49
+ }, "schema"> & {
50
+ schema: string;
51
+ };
52
+ ephemeralQueryAccountEnabled?: boolean | undefined;
53
+ wallet?: import("@xyo-network/wallet-model").WalletInstance | undefined;
54
+ }>>;
55
+ //# sourceMappingURL=Plugin.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Plugin.d.ts","sourceRoot":"","sources":["../../src/Plugin.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAA;AAEtC,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GASnB,CAAA"}
@@ -0,0 +1,55 @@
1
+ import { UrlWitness } from './Witness';
2
+ export declare const UrlPlugin: () => import("@xyo-network/payloadset-plugin").PayloadSetWitnessPlugin<UrlWitness<import("@xyo-network/core").BaseParamsFields & {
3
+ account?: import("@xyo-network/account-model").AccountInstance | "random" | undefined;
4
+ config: import("@xyo-network/payload-model").SchemaFields & Omit<{
5
+ accountDerivationPath?: string | undefined;
6
+ readonly archivist?: import("@xyo-network/module-model").ArchivistModuleConfig | undefined;
7
+ readonly labels?: import("@xyo-network/module-model").Labels | undefined;
8
+ readonly name?: string | undefined;
9
+ readonly paging?: Record<string, {
10
+ size?: number | undefined;
11
+ }> | undefined;
12
+ readonly security?: {
13
+ readonly allowAnonymous?: boolean | undefined;
14
+ readonly allowed?: Record<string, (string | import("@xyo-network/module-model").CosigningAddressSet)[]> | undefined;
15
+ readonly disallowed?: Record<string, string[]> | undefined;
16
+ } | undefined;
17
+ readonly sign?: boolean | undefined;
18
+ readonly storeQueries?: boolean | undefined;
19
+ readonly timestamp?: boolean | undefined;
20
+ } & import("@xyo-network/module-model").ArchivingModuleConfig & Omit<import("@xyo-network/payload-model").SchemaFields & Omit<{
21
+ accountDerivationPath?: string | undefined;
22
+ readonly archivist?: import("@xyo-network/module-model").ArchivistModuleConfig | undefined;
23
+ readonly labels?: import("@xyo-network/module-model").Labels | undefined;
24
+ readonly name?: string | undefined;
25
+ readonly paging?: Record<string, {
26
+ size?: number | undefined;
27
+ }> | undefined;
28
+ readonly security?: {
29
+ readonly allowAnonymous?: boolean | undefined;
30
+ readonly allowed?: Record<string, (string | import("@xyo-network/module-model").CosigningAddressSet)[]> | undefined;
31
+ readonly disallowed?: Record<string, string[]> | undefined;
32
+ } | undefined;
33
+ readonly sign?: boolean | undefined;
34
+ readonly storeQueries?: boolean | undefined;
35
+ readonly timestamp?: boolean | undefined;
36
+ } & import("@xyo-network/module-model").ArchivingModuleConfig & {
37
+ archivist?: string | undefined;
38
+ schema: "network.xyo.url.witness.config";
39
+ targetSet?: (import("@xyo-network/payload-model").SchemaFields & import("@xyo-network/payload-model").PayloadSet & {
40
+ schema: "network.xyo.payload.set";
41
+ }) | undefined;
42
+ } & {
43
+ schema: "network.xyo.url.witness.config";
44
+ urls?: string[] | undefined;
45
+ }, "schema"> & {
46
+ schema: "network.xyo.url.witness.config";
47
+ }, "schema"> & {
48
+ schema: string;
49
+ }, "schema"> & {
50
+ schema: string;
51
+ };
52
+ ephemeralQueryAccountEnabled?: boolean | undefined;
53
+ wallet?: import("@xyo-network/wallet-model").WalletInstance | undefined;
54
+ }>>;
55
+ //# sourceMappingURL=Plugin.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Plugin.d.ts","sourceRoot":"","sources":["../../src/Plugin.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAA;AAEtC,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GASnB,CAAA"}
@@ -0,0 +1,55 @@
1
+ import { UrlWitness } from './Witness';
2
+ export declare const UrlPlugin: () => import("@xyo-network/payloadset-plugin").PayloadSetWitnessPlugin<UrlWitness<import("@xyo-network/core").BaseParamsFields & {
3
+ account?: import("@xyo-network/account-model").AccountInstance | "random" | undefined;
4
+ config: import("@xyo-network/payload-model").SchemaFields & Omit<{
5
+ accountDerivationPath?: string | undefined;
6
+ readonly archivist?: import("@xyo-network/module-model").ArchivistModuleConfig | undefined;
7
+ readonly labels?: import("@xyo-network/module-model").Labels | undefined;
8
+ readonly name?: string | undefined;
9
+ readonly paging?: Record<string, {
10
+ size?: number | undefined;
11
+ }> | undefined;
12
+ readonly security?: {
13
+ readonly allowAnonymous?: boolean | undefined;
14
+ readonly allowed?: Record<string, (string | import("@xyo-network/module-model").CosigningAddressSet)[]> | undefined;
15
+ readonly disallowed?: Record<string, string[]> | undefined;
16
+ } | undefined;
17
+ readonly sign?: boolean | undefined;
18
+ readonly storeQueries?: boolean | undefined;
19
+ readonly timestamp?: boolean | undefined;
20
+ } & import("@xyo-network/module-model").ArchivingModuleConfig & Omit<import("@xyo-network/payload-model").SchemaFields & Omit<{
21
+ accountDerivationPath?: string | undefined;
22
+ readonly archivist?: import("@xyo-network/module-model").ArchivistModuleConfig | undefined;
23
+ readonly labels?: import("@xyo-network/module-model").Labels | undefined;
24
+ readonly name?: string | undefined;
25
+ readonly paging?: Record<string, {
26
+ size?: number | undefined;
27
+ }> | undefined;
28
+ readonly security?: {
29
+ readonly allowAnonymous?: boolean | undefined;
30
+ readonly allowed?: Record<string, (string | import("@xyo-network/module-model").CosigningAddressSet)[]> | undefined;
31
+ readonly disallowed?: Record<string, string[]> | undefined;
32
+ } | undefined;
33
+ readonly sign?: boolean | undefined;
34
+ readonly storeQueries?: boolean | undefined;
35
+ readonly timestamp?: boolean | undefined;
36
+ } & import("@xyo-network/module-model").ArchivingModuleConfig & {
37
+ archivist?: string | undefined;
38
+ schema: "network.xyo.url.witness.config";
39
+ targetSet?: (import("@xyo-network/payload-model").SchemaFields & import("@xyo-network/payload-model").PayloadSet & {
40
+ schema: "network.xyo.payload.set";
41
+ }) | undefined;
42
+ } & {
43
+ schema: "network.xyo.url.witness.config";
44
+ urls?: string[] | undefined;
45
+ }, "schema"> & {
46
+ schema: "network.xyo.url.witness.config";
47
+ }, "schema"> & {
48
+ schema: string;
49
+ }, "schema"> & {
50
+ schema: string;
51
+ };
52
+ ephemeralQueryAccountEnabled?: boolean | undefined;
53
+ wallet?: import("@xyo-network/wallet-model").WalletInstance | undefined;
54
+ }>>;
55
+ //# sourceMappingURL=Plugin.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Plugin.d.ts","sourceRoot":"","sources":["../../src/Plugin.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAA;AAEtC,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GASnB,CAAA"}
@@ -0,0 +1,8 @@
1
+ import { WitnessConfig } from '@xyo-network/witness-model';
2
+ export declare const UrlWitnessConfigSchema: "network.xyo.url.witness.config";
3
+ export type UrlWitnessConfigSchema = typeof UrlWitnessConfigSchema;
4
+ export type UrlWitnessConfig = WitnessConfig<{
5
+ schema: UrlWitnessConfigSchema;
6
+ urls?: string[];
7
+ }>;
8
+ //# sourceMappingURL=Config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Config.d.ts","sourceRoot":"","sources":["../../../src/Witness/Config.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAA;AAE1D,eAAO,MAAM,sBAAsB,kCAAyC,CAAA;AAC5E,MAAM,MAAM,sBAAsB,GAAG,OAAO,sBAAsB,CAAA;AAElE,MAAM,MAAM,gBAAgB,GAAG,aAAa,CAAC;IAC3C,MAAM,EAAE,sBAAsB,CAAA;IAC9B,IAAI,CAAC,EAAE,MAAM,EAAE,CAAA;CAChB,CAAC,CAAA"}
@@ -0,0 +1,8 @@
1
+ import { WitnessConfig } from '@xyo-network/witness-model';
2
+ export declare const UrlWitnessConfigSchema: "network.xyo.url.witness.config";
3
+ export type UrlWitnessConfigSchema = typeof UrlWitnessConfigSchema;
4
+ export type UrlWitnessConfig = WitnessConfig<{
5
+ schema: UrlWitnessConfigSchema;
6
+ urls?: string[];
7
+ }>;
8
+ //# sourceMappingURL=Config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Config.d.ts","sourceRoot":"","sources":["../../../src/Witness/Config.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAA;AAE1D,eAAO,MAAM,sBAAsB,kCAAyC,CAAA;AAC5E,MAAM,MAAM,sBAAsB,GAAG,OAAO,sBAAsB,CAAA;AAElE,MAAM,MAAM,gBAAgB,GAAG,aAAa,CAAC;IAC3C,MAAM,EAAE,sBAAsB,CAAA;IAC9B,IAAI,CAAC,EAAE,MAAM,EAAE,CAAA;CAChB,CAAC,CAAA"}
@@ -0,0 +1,8 @@
1
+ import { WitnessConfig } from '@xyo-network/witness-model';
2
+ export declare const UrlWitnessConfigSchema: "network.xyo.url.witness.config";
3
+ export type UrlWitnessConfigSchema = typeof UrlWitnessConfigSchema;
4
+ export type UrlWitnessConfig = WitnessConfig<{
5
+ schema: UrlWitnessConfigSchema;
6
+ urls?: string[];
7
+ }>;
8
+ //# sourceMappingURL=Config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Config.d.ts","sourceRoot":"","sources":["../../../src/Witness/Config.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAA;AAE1D,eAAO,MAAM,sBAAsB,kCAAyC,CAAA;AAC5E,MAAM,MAAM,sBAAsB,GAAG,OAAO,sBAAsB,CAAA;AAElE,MAAM,MAAM,gBAAgB,GAAG,aAAa,CAAC;IAC3C,MAAM,EAAE,sBAAsB,CAAA;IAC9B,IAAI,CAAC,EAAE,MAAM,EAAE,CAAA;CAChB,CAAC,CAAA"}
@@ -0,0 +1,5 @@
1
+ import { AnyConfigSchema } from '@xyo-network/module-model';
2
+ import { WitnessParams } from '@xyo-network/witness-model';
3
+ import { UrlWitnessConfig } from './Config';
4
+ export type UrlWitnessParams = WitnessParams<AnyConfigSchema<UrlWitnessConfig>>;
5
+ //# sourceMappingURL=Params.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Params.d.ts","sourceRoot":"","sources":["../../../src/Witness/Params.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAA;AAC3D,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAA;AAE1D,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAA;AAE3C,MAAM,MAAM,gBAAgB,GAAG,aAAa,CAAC,eAAe,CAAC,gBAAgB,CAAC,CAAC,CAAA"}
@@ -0,0 +1,5 @@
1
+ import { AnyConfigSchema } from '@xyo-network/module-model';
2
+ import { WitnessParams } from '@xyo-network/witness-model';
3
+ import { UrlWitnessConfig } from './Config';
4
+ export type UrlWitnessParams = WitnessParams<AnyConfigSchema<UrlWitnessConfig>>;
5
+ //# sourceMappingURL=Params.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Params.d.ts","sourceRoot":"","sources":["../../../src/Witness/Params.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAA;AAC3D,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAA;AAE1D,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAA;AAE3C,MAAM,MAAM,gBAAgB,GAAG,aAAa,CAAC,eAAe,CAAC,gBAAgB,CAAC,CAAC,CAAA"}
@@ -0,0 +1,5 @@
1
+ import { AnyConfigSchema } from '@xyo-network/module-model';
2
+ import { WitnessParams } from '@xyo-network/witness-model';
3
+ import { UrlWitnessConfig } from './Config';
4
+ export type UrlWitnessParams = WitnessParams<AnyConfigSchema<UrlWitnessConfig>>;
5
+ //# sourceMappingURL=Params.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Params.d.ts","sourceRoot":"","sources":["../../../src/Witness/Params.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAA;AAC3D,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAA;AAE1D,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAA;AAE3C,MAAM,MAAM,gBAAgB,GAAG,aAAa,CAAC,eAAe,CAAC,gBAAgB,CAAC,CAAC,CAAA"}
@@ -0,0 +1,9 @@
1
+ import { AbstractWitness } from '@xyo-network/abstract-witness';
2
+ import { Payload } from '@xyo-network/payload-model';
3
+ import { UrlWitnessParams } from './Params';
4
+ export declare class UrlWitness<TParams extends UrlWitnessParams = UrlWitnessParams> extends AbstractWitness<TParams> {
5
+ static configSchemas: "network.xyo.url.witness.config"[];
6
+ get urls(): string[] | undefined;
7
+ protected observeHandler(payloads?: Payload[]): Promise<Payload[]>;
8
+ }
9
+ //# sourceMappingURL=Witness.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Witness.d.ts","sourceRoot":"","sources":["../../../src/Witness/Witness.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAA;AAC/D,OAAO,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAA;AAKpD,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAA;AAE3C,qBAAa,UAAU,CAAC,OAAO,SAAS,gBAAgB,GAAG,gBAAgB,CAAE,SAAQ,eAAe,CAAC,OAAO,CAAC;IAC3G,OAAgB,aAAa,qCAA2B;IAExD,IAAI,IAAI,yBAEP;cAEwB,cAAc,CAAC,QAAQ,GAAE,OAAO,EAAO,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;CAiBtF"}
@@ -0,0 +1,9 @@
1
+ import { AbstractWitness } from '@xyo-network/abstract-witness';
2
+ import { Payload } from '@xyo-network/payload-model';
3
+ import { UrlWitnessParams } from './Params';
4
+ export declare class UrlWitness<TParams extends UrlWitnessParams = UrlWitnessParams> extends AbstractWitness<TParams> {
5
+ static configSchemas: "network.xyo.url.witness.config"[];
6
+ get urls(): string[] | undefined;
7
+ protected observeHandler(payloads?: Payload[]): Promise<Payload[]>;
8
+ }
9
+ //# sourceMappingURL=Witness.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Witness.d.ts","sourceRoot":"","sources":["../../../src/Witness/Witness.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAA;AAC/D,OAAO,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAA;AAKpD,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAA;AAE3C,qBAAa,UAAU,CAAC,OAAO,SAAS,gBAAgB,GAAG,gBAAgB,CAAE,SAAQ,eAAe,CAAC,OAAO,CAAC;IAC3G,OAAgB,aAAa,qCAA2B;IAExD,IAAI,IAAI,yBAEP;cAEwB,cAAc,CAAC,QAAQ,GAAE,OAAO,EAAO,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;CAiBtF"}
@@ -0,0 +1,9 @@
1
+ import { AbstractWitness } from '@xyo-network/abstract-witness';
2
+ import { Payload } from '@xyo-network/payload-model';
3
+ import { UrlWitnessParams } from './Params';
4
+ export declare class UrlWitness<TParams extends UrlWitnessParams = UrlWitnessParams> extends AbstractWitness<TParams> {
5
+ static configSchemas: "network.xyo.url.witness.config"[];
6
+ get urls(): string[] | undefined;
7
+ protected observeHandler(payloads?: Payload[]): Promise<Payload[]>;
8
+ }
9
+ //# sourceMappingURL=Witness.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Witness.d.ts","sourceRoot":"","sources":["../../../src/Witness/Witness.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAA;AAC/D,OAAO,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAA;AAKpD,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAA;AAE3C,qBAAa,UAAU,CAAC,OAAO,SAAS,gBAAgB,GAAG,gBAAgB,CAAE,SAAQ,eAAe,CAAC,OAAO,CAAC;IAC3G,OAAgB,aAAa,qCAA2B;IAExD,IAAI,IAAI,yBAEP;cAEwB,cAAc,CAAC,QAAQ,GAAE,OAAO,EAAO,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;CAiBtF"}
@@ -0,0 +1,4 @@
1
+ export * from './Config';
2
+ export * from './Params';
3
+ export * from './Witness';
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/Witness/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAA;AACxB,cAAc,UAAU,CAAA;AACxB,cAAc,WAAW,CAAA"}
@@ -0,0 +1,4 @@
1
+ export * from './Config';
2
+ export * from './Params';
3
+ export * from './Witness';
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/Witness/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAA;AACxB,cAAc,UAAU,CAAA;AACxB,cAAc,WAAW,CAAA"}
@@ -0,0 +1,4 @@
1
+ export * from './Config';
2
+ export * from './Params';
3
+ export * from './Witness';
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/Witness/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAA;AACxB,cAAc,UAAU,CAAA;AACxB,cAAc,WAAW,CAAA"}
@@ -0,0 +1,143 @@
1
+ "use strict";
2
+ var __create = Object.create;
3
+ var __defProp = Object.defineProperty;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __getProtoOf = Object.getPrototypeOf;
7
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
8
+ var __export = (target, all) => {
9
+ for (var name in all)
10
+ __defProp(target, name, { get: all[name], enumerable: true });
11
+ };
12
+ var __copyProps = (to, from, except, desc) => {
13
+ if (from && typeof from === "object" || typeof from === "function") {
14
+ for (let key of __getOwnPropNames(from))
15
+ if (!__hasOwnProp.call(to, key) && key !== except)
16
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
17
+ }
18
+ return to;
19
+ };
20
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
21
+ // If the importer is in node compatibility mode or this is not an ESM
22
+ // file that has been converted to a CommonJS file using a Babel-
23
+ // compatible transform (i.e. "__esModule" has not been set), then set
24
+ // "default" to the CommonJS "module.exports" for node compatibility.
25
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
26
+ mod
27
+ ));
28
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
+
30
+ // src/index.ts
31
+ var src_exports = {};
32
+ __export(src_exports, {
33
+ UrlPlugin: () => UrlPlugin,
34
+ UrlWitness: () => UrlWitness,
35
+ UrlWitnessConfigSchema: () => UrlWitnessConfigSchema,
36
+ default: () => src_default
37
+ });
38
+ module.exports = __toCommonJS(src_exports);
39
+
40
+ // src/Plugin.ts
41
+ var import_payload_model = require("@xyo-network/payload-model");
42
+ var import_payloadset_plugin = require("@xyo-network/payloadset-plugin");
43
+ var import_url_payload_plugin3 = require("@xyo-network/url-payload-plugin");
44
+
45
+ // src/Witness/Config.ts
46
+ var import_url_payload_plugin = require("@xyo-network/url-payload-plugin");
47
+ var UrlWitnessConfigSchema = `${import_url_payload_plugin.UrlSchema}.witness.config`;
48
+
49
+ // src/Witness/Witness.ts
50
+ var import_abstract_witness = require("@xyo-network/abstract-witness");
51
+ var import_url_payload_plugin2 = require("@xyo-network/url-payload-plugin");
52
+
53
+ // src/util/hashFile.ts
54
+ var import_crypto = __toESM(require("crypto"), 1);
55
+ var import_fs = require("fs");
56
+ var import_url = require("url");
57
+ var hashFile = (url) => {
58
+ const path = url.startsWith("file://") ? (0, import_url.fileURLToPath)(url) : url;
59
+ const ret = new Promise((resolve, reject) => {
60
+ const hash = import_crypto.default.createHash("sha256");
61
+ const stream = (0, import_fs.createReadStream)(path);
62
+ stream.on("data", (data) => {
63
+ hash.update(data);
64
+ });
65
+ stream.on("end", () => {
66
+ resolve(hash.digest("hex"));
67
+ });
68
+ stream.on("error", (err) => {
69
+ reject(err);
70
+ });
71
+ });
72
+ return ret;
73
+ };
74
+
75
+ // src/util/hashHttpUrl.ts
76
+ var import_crypto2 = require("@xylabs/crypto");
77
+ var import_http = __toESM(require("http"), 1);
78
+ var import_https = __toESM(require("https"), 1);
79
+ var hashHttpUrl = (url) => {
80
+ const ret = new Promise((resolve, reject) => {
81
+ const hash = import_crypto2.Crypto.createHash("sha256");
82
+ const lib = url.startsWith("https") ? import_https.default : import_http.default;
83
+ lib.get(url, (res) => {
84
+ res.on("data", (data) => {
85
+ hash.update(data);
86
+ });
87
+ res.on("end", () => {
88
+ resolve(hash.digest("hex"));
89
+ });
90
+ }).on("error", (err) => {
91
+ reject(err);
92
+ });
93
+ });
94
+ return ret;
95
+ };
96
+
97
+ // src/util/hashUrl.ts
98
+ var hashUrl = (url) => {
99
+ const scheme = url.split("://")[0]?.toLowerCase();
100
+ switch (scheme) {
101
+ case "file":
102
+ return hashFile(url);
103
+ case "http":
104
+ case "https":
105
+ return hashHttpUrl(url);
106
+ default:
107
+ throw new Error(`Unsupported URL scheme: ${scheme}`);
108
+ }
109
+ };
110
+
111
+ // src/Witness/Witness.ts
112
+ var UrlWitness = class extends import_abstract_witness.AbstractWitness {
113
+ static configSchemas = [UrlWitnessConfigSchema];
114
+ get urls() {
115
+ return this.config?.urls;
116
+ }
117
+ async observeHandler(payloads = []) {
118
+ const urls = this.urls?.map((url) => ({ schema: import_url_payload_plugin2.UrlSchema, url })) ?? payloads.filter((p) => p.schema === import_url_payload_plugin2.UrlSchema).map((p) => {
119
+ return { schema: import_url_payload_plugin2.UrlSchema, url: p.url };
120
+ });
121
+ const hashed = await Promise.all(
122
+ urls.map(async (url) => {
123
+ return { ...url, hash: await hashUrl(url.url) };
124
+ })
125
+ );
126
+ return hashed;
127
+ }
128
+ };
129
+
130
+ // src/Plugin.ts
131
+ var UrlPlugin = () => (0, import_payloadset_plugin.createPayloadSetWitnessPlugin)(
132
+ { required: { [import_url_payload_plugin3.UrlSchema]: 1 }, schema: import_payload_model.PayloadSetSchema },
133
+ {
134
+ witness: async (params) => {
135
+ const result = await UrlWitness.create(params);
136
+ return result;
137
+ }
138
+ }
139
+ );
140
+
141
+ // src/index.ts
142
+ var src_default = UrlPlugin;
143
+ //# sourceMappingURL=index.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/index.ts","../../src/Plugin.ts","../../src/Witness/Config.ts","../../src/Witness/Witness.ts","../../src/util/hashFile.ts","../../src/util/hashHttpUrl.ts","../../src/util/hashUrl.ts"],"sourcesContent":["import { UrlPlugin } from './Plugin'\n\nexport * from './Witness'\n\nexport { UrlPlugin }\n\n// eslint-disable-next-line import/no-default-export\nexport default UrlPlugin\n","import { PayloadSetSchema } from '@xyo-network/payload-model'\nimport { createPayloadSetWitnessPlugin } from '@xyo-network/payloadset-plugin'\nimport { UrlSchema } from '@xyo-network/url-payload-plugin'\n\nimport { UrlWitness } from './Witness'\n\nexport const UrlPlugin = () =>\n createPayloadSetWitnessPlugin<UrlWitness>(\n { required: { [UrlSchema]: 1 }, schema: PayloadSetSchema },\n {\n witness: async (params) => {\n const result = await UrlWitness.create(params)\n return result\n },\n },\n )\n","import { 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 { AbstractWitness } from '@xyo-network/abstract-witness'\nimport { Payload } from '@xyo-network/payload-model'\nimport { UrlPayload, UrlSchema } from '@xyo-network/url-payload-plugin'\n\nimport { hashUrl } from '../util'\nimport { UrlWitnessConfigSchema } from './Config'\nimport { UrlWitnessParams } from './Params'\n\nexport class UrlWitness<TParams extends UrlWitnessParams = UrlWitnessParams> extends AbstractWitness<TParams> {\n static override configSchemas = [UrlWitnessConfigSchema]\n\n get urls() {\n return this.config?.urls\n }\n\n protected override async observeHandler(payloads: Payload[] = []): Promise<Payload[]> {\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 hashUrl(url.url) }\n }),\n )\n // TODO: Handle partial success\n return hashed\n }\n}\n","import Crypto from 'crypto'\nimport { createReadStream } from 'fs'\nimport { fileURLToPath } from 'url'\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 { Crypto } from '@xylabs/crypto'\nimport http from 'http'\nimport https from 'https'\n\nexport const hashHttpUrl = (url: string): Promise<string> => {\n const ret = new Promise<string>((resolve, reject) => {\n const hash = Crypto.createHash('sha256')\n const lib = url.startsWith('https') ? https : http\n lib\n .get(url, (res) => {\n res.on('data', (data) => {\n hash.update(data)\n })\n res.on('end', () => {\n resolve(hash.digest('hex'))\n })\n })\n .on('error', (err) => {\n reject(err)\n })\n })\n return ret\n}\n","import { hashFile } from './hashFile'\nimport { hashHttpUrl } from './hashHttpUrl'\n\nexport const hashUrl = (url: string): Promise<string> => {\n const scheme = url.split('://')[0]?.toLowerCase()\n switch (scheme) {\n case 'file':\n return hashFile(url)\n case 'http':\n case 'https':\n return hashHttpUrl(url)\n default:\n throw new Error(`Unsupported URL scheme: ${scheme}`)\n }\n}\n"],"mappings":"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","names":["import_url_payload_plugin","import_url_payload_plugin","Crypto","import_crypto","https","http"]}
@@ -0,0 +1,5 @@
1
+ import { UrlPlugin } from './Plugin';
2
+ export * from './Witness';
3
+ export { UrlPlugin };
4
+ export default UrlPlugin;
5
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAA;AAEpC,cAAc,WAAW,CAAA;AAEzB,OAAO,EAAE,SAAS,EAAE,CAAA;AAGpB,eAAe,SAAS,CAAA"}
@@ -0,0 +1,5 @@
1
+ import { UrlPlugin } from './Plugin';
2
+ export * from './Witness';
3
+ export { UrlPlugin };
4
+ export default UrlPlugin;
5
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAA;AAEpC,cAAc,WAAW,CAAA;AAEzB,OAAO,EAAE,SAAS,EAAE,CAAA;AAGpB,eAAe,SAAS,CAAA"}
@@ -0,0 +1,5 @@
1
+ import { UrlPlugin } from './Plugin';
2
+ export * from './Witness';
3
+ export { UrlPlugin };
4
+ export default UrlPlugin;
5
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAA;AAEpC,cAAc,WAAW,CAAA;AAEzB,OAAO,EAAE,SAAS,EAAE,CAAA;AAGpB,eAAe,SAAS,CAAA"}
@@ -57,8 +57,7 @@ var hashHttpUrl = (url) => {
57
57
 
58
58
  // src/util/hashUrl.ts
59
59
  var hashUrl = (url) => {
60
- var _a;
61
- const scheme = (_a = url.split("://")[0]) == null ? void 0 : _a.toLowerCase();
60
+ const scheme = url.split("://")[0]?.toLowerCase();
62
61
  switch (scheme) {
63
62
  case "file":
64
63
  return hashFile(url);
@@ -74,12 +73,10 @@ var hashUrl = (url) => {
74
73
  var UrlWitness = class extends AbstractWitness {
75
74
  static configSchemas = [UrlWitnessConfigSchema];
76
75
  get urls() {
77
- var _a;
78
- return (_a = this.config) == null ? void 0 : _a.urls;
76
+ return this.config?.urls;
79
77
  }
80
78
  async observeHandler(payloads = []) {
81
- var _a;
82
- const urls = ((_a = this.urls) == null ? void 0 : _a.map((url) => ({ schema: UrlSchema2, url }))) ?? payloads.filter((p) => p.schema === UrlSchema2).map((p) => {
79
+ const urls = this.urls?.map((url) => ({ schema: UrlSchema2, url })) ?? payloads.filter((p) => p.schema === UrlSchema2).map((p) => {
83
80
  return { schema: UrlSchema2, url: p.url };
84
81
  });
85
82
  const hashed = await Promise.all(
@@ -110,4 +107,4 @@ export {
110
107
  UrlWitnessConfigSchema,
111
108
  src_default as default
112
109
  };
113
- //# sourceMappingURL=index.mjs.map
110
+ //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/Plugin.ts","../../src/Witness/Config.ts","../../src/Witness/Witness.ts","../../src/util/hashFile.ts","../../src/util/hashHttpUrl.ts","../../src/util/hashUrl.ts","../../src/index.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'\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 { AbstractWitness } from '@xyo-network/abstract-witness'\nimport { Payload } from '@xyo-network/payload-model'\nimport { UrlPayload, UrlSchema } from '@xyo-network/url-payload-plugin'\n\nimport { hashUrl } from '../util'\nimport { UrlWitnessConfigSchema } from './Config'\nimport { UrlWitnessParams } from './Params'\n\nexport class UrlWitness<TParams extends UrlWitnessParams = UrlWitnessParams> extends AbstractWitness<TParams> {\n static override configSchemas = [UrlWitnessConfigSchema]\n\n get urls() {\n return this.config?.urls\n }\n\n protected override async observeHandler(payloads: Payload[] = []): Promise<Payload[]> {\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 hashUrl(url.url) }\n }),\n )\n // TODO: Handle partial success\n return hashed\n }\n}\n","import Crypto from 'crypto'\nimport { createReadStream } from 'fs'\nimport { fileURLToPath } from 'url'\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 { Crypto } from '@xylabs/crypto'\nimport http from 'http'\nimport https from 'https'\n\nexport const hashHttpUrl = (url: string): Promise<string> => {\n const ret = new Promise<string>((resolve, reject) => {\n const hash = Crypto.createHash('sha256')\n const lib = url.startsWith('https') ? https : http\n lib\n .get(url, (res) => {\n res.on('data', (data) => {\n hash.update(data)\n })\n res.on('end', () => {\n resolve(hash.digest('hex'))\n })\n })\n .on('error', (err) => {\n reject(err)\n })\n })\n return ret\n}\n","import { hashFile } from './hashFile'\nimport { hashHttpUrl } from './hashHttpUrl'\n\nexport const hashUrl = (url: string): Promise<string> => {\n const scheme = url.split('://')[0]?.toLowerCase()\n switch (scheme) {\n case 'file':\n return hashFile(url)\n case 'http':\n case 'https':\n return hashHttpUrl(url)\n default:\n throw new Error(`Unsupported URL scheme: ${scheme}`)\n }\n}\n","import { UrlPlugin } from './Plugin'\n\nexport * from './Witness'\n\nexport { UrlPlugin }\n\n// eslint-disable-next-line import/no-default-export\nexport default UrlPlugin\n"],"mappings":"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","names":["UrlSchema","UrlSchema","Crypto","UrlSchema","UrlSchema"]}
1
+ {"version":3,"sources":["../../src/Plugin.ts","../../src/Witness/Config.ts","../../src/Witness/Witness.ts","../../src/util/hashFile.ts","../../src/util/hashHttpUrl.ts","../../src/util/hashUrl.ts","../../src/index.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'\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 { AbstractWitness } from '@xyo-network/abstract-witness'\nimport { Payload } from '@xyo-network/payload-model'\nimport { UrlPayload, UrlSchema } from '@xyo-network/url-payload-plugin'\n\nimport { hashUrl } from '../util'\nimport { UrlWitnessConfigSchema } from './Config'\nimport { UrlWitnessParams } from './Params'\n\nexport class UrlWitness<TParams extends UrlWitnessParams = UrlWitnessParams> extends AbstractWitness<TParams> {\n static override configSchemas = [UrlWitnessConfigSchema]\n\n get urls() {\n return this.config?.urls\n }\n\n protected override async observeHandler(payloads: Payload[] = []): Promise<Payload[]> {\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 hashUrl(url.url) }\n }),\n )\n // TODO: Handle partial success\n return hashed\n }\n}\n","import Crypto from 'crypto'\nimport { createReadStream } from 'fs'\nimport { fileURLToPath } from 'url'\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 { Crypto } from '@xylabs/crypto'\nimport http from 'http'\nimport https from 'https'\n\nexport const hashHttpUrl = (url: string): Promise<string> => {\n const ret = new Promise<string>((resolve, reject) => {\n const hash = Crypto.createHash('sha256')\n const lib = url.startsWith('https') ? https : http\n lib\n .get(url, (res) => {\n res.on('data', (data) => {\n hash.update(data)\n })\n res.on('end', () => {\n resolve(hash.digest('hex'))\n })\n })\n .on('error', (err) => {\n reject(err)\n })\n })\n return ret\n}\n","import { hashFile } from './hashFile'\nimport { hashHttpUrl } from './hashHttpUrl'\n\nexport const hashUrl = (url: string): Promise<string> => {\n const scheme = url.split('://')[0]?.toLowerCase()\n switch (scheme) {\n case 'file':\n return hashFile(url)\n case 'http':\n case 'https':\n return hashHttpUrl(url)\n default:\n throw new Error(`Unsupported URL scheme: ${scheme}`)\n }\n}\n","import { UrlPlugin } from './Plugin'\n\nexport * from './Witness'\n\nexport { UrlPlugin }\n\n// eslint-disable-next-line import/no-default-export\nexport default UrlPlugin\n"],"mappings":"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","names":["UrlSchema","UrlSchema","Crypto","UrlSchema","UrlSchema"]}
@@ -0,0 +1,2 @@
1
+ export declare const hashFile: (url: string) => Promise<string>;
2
+ //# sourceMappingURL=hashFile.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hashFile.d.ts","sourceRoot":"","sources":["../../../src/util/hashFile.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,QAAQ,QAAS,MAAM,KAAG,QAAQ,MAAM,CAgBpD,CAAA"}
@@ -0,0 +1,2 @@
1
+ export declare const hashFile: (url: string) => Promise<string>;
2
+ //# sourceMappingURL=hashFile.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hashFile.d.ts","sourceRoot":"","sources":["../../../src/util/hashFile.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,QAAQ,QAAS,MAAM,KAAG,QAAQ,MAAM,CAgBpD,CAAA"}
@@ -0,0 +1,2 @@
1
+ export declare const hashFile: (url: string) => Promise<string>;
2
+ //# sourceMappingURL=hashFile.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hashFile.d.ts","sourceRoot":"","sources":["../../../src/util/hashFile.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,QAAQ,QAAS,MAAM,KAAG,QAAQ,MAAM,CAgBpD,CAAA"}
@@ -0,0 +1,2 @@
1
+ export declare const hashHttpUrl: (url: string) => Promise<string>;
2
+ //# sourceMappingURL=hashHttpUrl.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hashHttpUrl.d.ts","sourceRoot":"","sources":["../../../src/util/hashHttpUrl.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,WAAW,QAAS,MAAM,KAAG,QAAQ,MAAM,CAkBvD,CAAA"}
@@ -0,0 +1,2 @@
1
+ export declare const hashHttpUrl: (url: string) => Promise<string>;
2
+ //# sourceMappingURL=hashHttpUrl.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hashHttpUrl.d.ts","sourceRoot":"","sources":["../../../src/util/hashHttpUrl.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,WAAW,QAAS,MAAM,KAAG,QAAQ,MAAM,CAkBvD,CAAA"}
@@ -0,0 +1,2 @@
1
+ export declare const hashHttpUrl: (url: string) => Promise<string>;
2
+ //# sourceMappingURL=hashHttpUrl.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hashHttpUrl.d.ts","sourceRoot":"","sources":["../../../src/util/hashHttpUrl.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,WAAW,QAAS,MAAM,KAAG,QAAQ,MAAM,CAkBvD,CAAA"}
@@ -0,0 +1,2 @@
1
+ export declare const hashUrl: (url: string) => Promise<string>;
2
+ //# sourceMappingURL=hashUrl.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hashUrl.d.ts","sourceRoot":"","sources":["../../../src/util/hashUrl.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,OAAO,QAAS,MAAM,KAAG,QAAQ,MAAM,CAWnD,CAAA"}
@@ -0,0 +1,2 @@
1
+ export declare const hashUrl: (url: string) => Promise<string>;
2
+ //# sourceMappingURL=hashUrl.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hashUrl.d.ts","sourceRoot":"","sources":["../../../src/util/hashUrl.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,OAAO,QAAS,MAAM,KAAG,QAAQ,MAAM,CAWnD,CAAA"}
@@ -0,0 +1,2 @@
1
+ export declare const hashUrl: (url: string) => Promise<string>;
2
+ //# sourceMappingURL=hashUrl.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hashUrl.d.ts","sourceRoot":"","sources":["../../../src/util/hashUrl.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,OAAO,QAAS,MAAM,KAAG,QAAQ,MAAM,CAWnD,CAAA"}
@@ -0,0 +1,2 @@
1
+ export * from './hashUrl';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/util/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAA"}
@@ -0,0 +1,2 @@
1
+ export * from './hashUrl';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/util/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAA"}
@@ -0,0 +1,2 @@
1
+ export * from './hashUrl';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/util/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAA"}
@@ -0,0 +1,152 @@
1
+ "use strict";
2
+ var __create = Object.create;
3
+ var __defProp = Object.defineProperty;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __getProtoOf = Object.getPrototypeOf;
7
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
8
+ var __export = (target, all) => {
9
+ for (var name in all)
10
+ __defProp(target, name, { get: all[name], enumerable: true });
11
+ };
12
+ var __copyProps = (to, from, except, desc) => {
13
+ if (from && typeof from === "object" || typeof from === "function") {
14
+ for (let key of __getOwnPropNames(from))
15
+ if (!__hasOwnProp.call(to, key) && key !== except)
16
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
17
+ }
18
+ return to;
19
+ };
20
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
21
+ // If the importer is in node compatibility mode or this is not an ESM
22
+ // file that has been converted to a CommonJS file using a Babel-
23
+ // compatible transform (i.e. "__esModule" has not been set), then set
24
+ // "default" to the CommonJS "module.exports" for node compatibility.
25
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
26
+ mod
27
+ ));
28
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
+
30
+ // src/index.ts
31
+ var src_exports = {};
32
+ __export(src_exports, {
33
+ UrlPlugin: () => UrlPlugin,
34
+ UrlWitness: () => UrlWitness,
35
+ UrlWitnessConfigSchema: () => UrlWitnessConfigSchema,
36
+ default: () => src_default
37
+ });
38
+ module.exports = __toCommonJS(src_exports);
39
+
40
+ // src/Plugin.ts
41
+ var import_payload_model = require("@xyo-network/payload-model");
42
+ var import_payloadset_plugin = require("@xyo-network/payloadset-plugin");
43
+ var import_url_payload_plugin3 = require("@xyo-network/url-payload-plugin");
44
+
45
+ // src/Witness/Config.ts
46
+ var import_url_payload_plugin = require("@xyo-network/url-payload-plugin");
47
+ var UrlWitnessConfigSchema = `${import_url_payload_plugin.UrlSchema}.witness.config`;
48
+
49
+ // src/Witness/Witness.ts
50
+ var import_abstract_witness = require("@xyo-network/abstract-witness");
51
+ var import_url_payload_plugin2 = require("@xyo-network/url-payload-plugin");
52
+
53
+ // src/util/hashFile.ts
54
+ var import_crypto = __toESM(require("crypto"), 1);
55
+ var import_fs = require("fs");
56
+ var import_url = require("url");
57
+ var hashFile = (url) => {
58
+ const path = url.startsWith("file://") ? (0, import_url.fileURLToPath)(url) : url;
59
+ const ret = new Promise((resolve, reject) => {
60
+ const hash = import_crypto.default.createHash("sha256");
61
+ const stream = (0, import_fs.createReadStream)(path);
62
+ stream.on("data", (data) => {
63
+ hash.update(data);
64
+ });
65
+ stream.on("end", () => {
66
+ resolve(hash.digest("hex"));
67
+ });
68
+ stream.on("error", (err) => {
69
+ reject(err);
70
+ });
71
+ });
72
+ return ret;
73
+ };
74
+
75
+ // src/util/hashHttpUrl.ts
76
+ var import_crypto2 = require("@xylabs/crypto");
77
+ var import_http = __toESM(require("http"), 1);
78
+ var import_https = __toESM(require("https"), 1);
79
+ var hashHttpUrl = (url) => {
80
+ const ret = new Promise((resolve, reject) => {
81
+ const hash = import_crypto2.Crypto.createHash("sha256");
82
+ const lib = url.startsWith("https") ? import_https.default : import_http.default;
83
+ lib.get(url, (res) => {
84
+ res.on("data", (data) => {
85
+ hash.update(data);
86
+ });
87
+ res.on("end", () => {
88
+ resolve(hash.digest("hex"));
89
+ });
90
+ }).on("error", (err) => {
91
+ reject(err);
92
+ });
93
+ });
94
+ return ret;
95
+ };
96
+
97
+ // src/util/hashUrl.ts
98
+ var hashUrl = (url) => {
99
+ var _a;
100
+ const scheme = (_a = url.split("://")[0]) == null ? void 0 : _a.toLowerCase();
101
+ switch (scheme) {
102
+ case "file":
103
+ return hashFile(url);
104
+ case "http":
105
+ case "https":
106
+ return hashHttpUrl(url);
107
+ default:
108
+ throw new Error(`Unsupported URL scheme: ${scheme}`);
109
+ }
110
+ };
111
+
112
+ // src/Witness/Witness.ts
113
+ var UrlWitness = class extends import_abstract_witness.AbstractWitness {
114
+ static configSchemas = [UrlWitnessConfigSchema];
115
+ get urls() {
116
+ var _a;
117
+ return (_a = this.config) == null ? void 0 : _a.urls;
118
+ }
119
+ async observeHandler(payloads = []) {
120
+ var _a;
121
+ 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) => {
122
+ return { schema: import_url_payload_plugin2.UrlSchema, url: p.url };
123
+ });
124
+ const hashed = await Promise.all(
125
+ urls.map(async (url) => {
126
+ return { ...url, hash: await hashUrl(url.url) };
127
+ })
128
+ );
129
+ return hashed;
130
+ }
131
+ };
132
+
133
+ // src/Plugin.ts
134
+ var UrlPlugin = () => (0, import_payloadset_plugin.createPayloadSetWitnessPlugin)(
135
+ { required: { [import_url_payload_plugin3.UrlSchema]: 1 }, schema: import_payload_model.PayloadSetSchema },
136
+ {
137
+ witness: async (params) => {
138
+ const result = await UrlWitness.create(params);
139
+ return result;
140
+ }
141
+ }
142
+ );
143
+
144
+ // src/index.ts
145
+ var src_default = UrlPlugin;
146
+ // Annotate the CommonJS export names for ESM import in node:
147
+ 0 && (module.exports = {
148
+ UrlPlugin,
149
+ UrlWitness,
150
+ UrlWitnessConfigSchema
151
+ });
152
+ //# sourceMappingURL=index.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/index.ts","../../src/Plugin.ts","../../src/Witness/Config.ts","../../src/Witness/Witness.ts","../../src/util/hashFile.ts","../../src/util/hashHttpUrl.ts","../../src/util/hashUrl.ts"],"sourcesContent":["import { UrlPlugin } from './Plugin'\n\nexport * from './Witness'\n\nexport { UrlPlugin }\n\n// eslint-disable-next-line import/no-default-export\nexport default UrlPlugin\n","import { PayloadSetSchema } from '@xyo-network/payload-model'\nimport { createPayloadSetWitnessPlugin } from '@xyo-network/payloadset-plugin'\nimport { UrlSchema } from '@xyo-network/url-payload-plugin'\n\nimport { UrlWitness } from './Witness'\n\nexport const UrlPlugin = () =>\n createPayloadSetWitnessPlugin<UrlWitness>(\n { required: { [UrlSchema]: 1 }, schema: PayloadSetSchema },\n {\n witness: async (params) => {\n const result = await UrlWitness.create(params)\n return result\n },\n },\n )\n","import { 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 { AbstractWitness } from '@xyo-network/abstract-witness'\nimport { Payload } from '@xyo-network/payload-model'\nimport { UrlPayload, UrlSchema } from '@xyo-network/url-payload-plugin'\n\nimport { hashUrl } from '../util'\nimport { UrlWitnessConfigSchema } from './Config'\nimport { UrlWitnessParams } from './Params'\n\nexport class UrlWitness<TParams extends UrlWitnessParams = UrlWitnessParams> extends AbstractWitness<TParams> {\n static override configSchemas = [UrlWitnessConfigSchema]\n\n get urls() {\n return this.config?.urls\n }\n\n protected override async observeHandler(payloads: Payload[] = []): Promise<Payload[]> {\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 hashUrl(url.url) }\n }),\n )\n // TODO: Handle partial success\n return hashed\n }\n}\n","import Crypto from 'crypto'\nimport { createReadStream } from 'fs'\nimport { fileURLToPath } from 'url'\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 { Crypto } from '@xylabs/crypto'\nimport http from 'http'\nimport https from 'https'\n\nexport const hashHttpUrl = (url: string): Promise<string> => {\n const ret = new Promise<string>((resolve, reject) => {\n const hash = Crypto.createHash('sha256')\n const lib = url.startsWith('https') ? https : http\n lib\n .get(url, (res) => {\n res.on('data', (data) => {\n hash.update(data)\n })\n res.on('end', () => {\n resolve(hash.digest('hex'))\n })\n })\n .on('error', (err) => {\n reject(err)\n })\n })\n return ret\n}\n","import { hashFile } from './hashFile'\nimport { hashHttpUrl } from './hashHttpUrl'\n\nexport const hashUrl = (url: string): Promise<string> => {\n const scheme = url.split('://')[0]?.toLowerCase()\n switch (scheme) {\n case 'file':\n return hashFile(url)\n case 'http':\n case 'https':\n return hashHttpUrl(url)\n default:\n throw new Error(`Unsupported URL scheme: ${scheme}`)\n }\n}\n"],"mappings":"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","names":["import_url_payload_plugin","import_url_payload_plugin","Crypto","import_crypto","https","http"]}
@@ -1,64 +1,25 @@
1
- "use strict";
2
- var __create = Object.create;
3
- var __defProp = Object.defineProperty;
4
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
- var __getOwnPropNames = Object.getOwnPropertyNames;
6
- var __getProtoOf = Object.getPrototypeOf;
7
- var __hasOwnProp = Object.prototype.hasOwnProperty;
8
- var __export = (target, all) => {
9
- for (var name in all)
10
- __defProp(target, name, { get: all[name], enumerable: true });
11
- };
12
- var __copyProps = (to, from, except, desc) => {
13
- if (from && typeof from === "object" || typeof from === "function") {
14
- for (let key of __getOwnPropNames(from))
15
- if (!__hasOwnProp.call(to, key) && key !== except)
16
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
17
- }
18
- return to;
19
- };
20
- var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
21
- // If the importer is in node compatibility mode or this is not an ESM
22
- // file that has been converted to a CommonJS file using a Babel-
23
- // compatible transform (i.e. "__esModule" has not been set), then set
24
- // "default" to the CommonJS "module.exports" for node compatibility.
25
- isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
26
- mod
27
- ));
28
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
-
30
- // src/index.ts
31
- var src_exports = {};
32
- __export(src_exports, {
33
- UrlPlugin: () => UrlPlugin,
34
- UrlWitness: () => UrlWitness,
35
- UrlWitnessConfigSchema: () => UrlWitnessConfigSchema,
36
- default: () => src_default
37
- });
38
- module.exports = __toCommonJS(src_exports);
39
-
40
1
  // src/Plugin.ts
41
- var import_payload_model = require("@xyo-network/payload-model");
42
- var import_payloadset_plugin = require("@xyo-network/payloadset-plugin");
43
- var import_url_payload_plugin3 = require("@xyo-network/url-payload-plugin");
2
+ import { PayloadSetSchema } from "@xyo-network/payload-model";
3
+ import { createPayloadSetWitnessPlugin } from "@xyo-network/payloadset-plugin";
4
+ import { UrlSchema as UrlSchema3 } from "@xyo-network/url-payload-plugin";
44
5
 
45
6
  // src/Witness/Config.ts
46
- var import_url_payload_plugin = require("@xyo-network/url-payload-plugin");
47
- var UrlWitnessConfigSchema = `${import_url_payload_plugin.UrlSchema}.witness.config`;
7
+ import { UrlSchema } from "@xyo-network/url-payload-plugin";
8
+ var UrlWitnessConfigSchema = `${UrlSchema}.witness.config`;
48
9
 
49
10
  // src/Witness/Witness.ts
50
- var import_abstract_witness = require("@xyo-network/abstract-witness");
51
- var import_url_payload_plugin2 = require("@xyo-network/url-payload-plugin");
11
+ import { AbstractWitness } from "@xyo-network/abstract-witness";
12
+ import { UrlSchema as UrlSchema2 } from "@xyo-network/url-payload-plugin";
52
13
 
53
14
  // src/util/hashFile.ts
54
- var import_crypto = __toESM(require("crypto"));
55
- var import_fs = require("fs");
56
- var import_url = require("url");
15
+ import Crypto from "crypto";
16
+ import { createReadStream } from "fs";
17
+ import { fileURLToPath } from "url";
57
18
  var hashFile = (url) => {
58
- const path = url.startsWith("file://") ? (0, import_url.fileURLToPath)(url) : url;
19
+ const path = url.startsWith("file://") ? fileURLToPath(url) : url;
59
20
  const ret = new Promise((resolve, reject) => {
60
- const hash = import_crypto.default.createHash("sha256");
61
- const stream = (0, import_fs.createReadStream)(path);
21
+ const hash = Crypto.createHash("sha256");
22
+ const stream = createReadStream(path);
62
23
  stream.on("data", (data) => {
63
24
  hash.update(data);
64
25
  });
@@ -73,13 +34,13 @@ var hashFile = (url) => {
73
34
  };
74
35
 
75
36
  // src/util/hashHttpUrl.ts
76
- var import_crypto2 = require("@xylabs/crypto");
77
- var import_http = __toESM(require("http"));
78
- var import_https = __toESM(require("https"));
37
+ import { Crypto as Crypto2 } from "@xylabs/crypto";
38
+ import http from "http";
39
+ import https from "https";
79
40
  var hashHttpUrl = (url) => {
80
41
  const ret = new Promise((resolve, reject) => {
81
- const hash = import_crypto2.Crypto.createHash("sha256");
82
- const lib = url.startsWith("https") ? import_https.default : import_http.default;
42
+ const hash = Crypto2.createHash("sha256");
43
+ const lib = url.startsWith("https") ? https : http;
83
44
  lib.get(url, (res) => {
84
45
  res.on("data", (data) => {
85
46
  hash.update(data);
@@ -110,7 +71,7 @@ var hashUrl = (url) => {
110
71
  };
111
72
 
112
73
  // src/Witness/Witness.ts
113
- var UrlWitness = class extends import_abstract_witness.AbstractWitness {
74
+ var UrlWitness = class extends AbstractWitness {
114
75
  static configSchemas = [UrlWitnessConfigSchema];
115
76
  get urls() {
116
77
  var _a;
@@ -118,8 +79,8 @@ var UrlWitness = class extends import_abstract_witness.AbstractWitness {
118
79
  }
119
80
  async observeHandler(payloads = []) {
120
81
  var _a;
121
- 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) => {
122
- return { schema: import_url_payload_plugin2.UrlSchema, url: p.url };
82
+ const urls = ((_a = this.urls) == null ? void 0 : _a.map((url) => ({ schema: UrlSchema2, url }))) ?? payloads.filter((p) => p.schema === UrlSchema2).map((p) => {
83
+ return { schema: UrlSchema2, url: p.url };
123
84
  });
124
85
  const hashed = await Promise.all(
125
86
  urls.map(async (url) => {
@@ -131,8 +92,8 @@ var UrlWitness = class extends import_abstract_witness.AbstractWitness {
131
92
  };
132
93
 
133
94
  // src/Plugin.ts
134
- var UrlPlugin = () => (0, import_payloadset_plugin.createPayloadSetWitnessPlugin)(
135
- { required: { [import_url_payload_plugin3.UrlSchema]: 1 }, schema: import_payload_model.PayloadSetSchema },
95
+ var UrlPlugin = () => createPayloadSetWitnessPlugin(
96
+ { required: { [UrlSchema3]: 1 }, schema: PayloadSetSchema },
136
97
  {
137
98
  witness: async (params) => {
138
99
  const result = await UrlWitness.create(params);
@@ -143,10 +104,10 @@ var UrlPlugin = () => (0, import_payloadset_plugin.createPayloadSetWitnessPlugin
143
104
 
144
105
  // src/index.ts
145
106
  var src_default = UrlPlugin;
146
- // Annotate the CommonJS export names for ESM import in node:
147
- 0 && (module.exports = {
107
+ export {
148
108
  UrlPlugin,
149
109
  UrlWitness,
150
- UrlWitnessConfigSchema
151
- });
110
+ UrlWitnessConfigSchema,
111
+ src_default as default
112
+ };
152
113
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/index.ts","../../src/Plugin.ts","../../src/Witness/Config.ts","../../src/Witness/Witness.ts","../../src/util/hashFile.ts","../../src/util/hashHttpUrl.ts","../../src/util/hashUrl.ts"],"sourcesContent":["import { UrlPlugin } from './Plugin'\n\nexport * from './Witness'\n\nexport { UrlPlugin }\n\n// eslint-disable-next-line import/no-default-export\nexport default UrlPlugin\n","import { PayloadSetSchema } from '@xyo-network/payload-model'\nimport { createPayloadSetWitnessPlugin } from '@xyo-network/payloadset-plugin'\nimport { UrlSchema } from '@xyo-network/url-payload-plugin'\n\nimport { UrlWitness } from './Witness'\n\nexport const UrlPlugin = () =>\n createPayloadSetWitnessPlugin<UrlWitness>(\n { required: { [UrlSchema]: 1 }, schema: PayloadSetSchema },\n {\n witness: async (params) => {\n const result = await UrlWitness.create(params)\n return result\n },\n },\n )\n","import { 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 { AbstractWitness } from '@xyo-network/abstract-witness'\nimport { Payload } from '@xyo-network/payload-model'\nimport { UrlPayload, UrlSchema } from '@xyo-network/url-payload-plugin'\n\nimport { hashUrl } from '../util'\nimport { UrlWitnessConfigSchema } from './Config'\nimport { UrlWitnessParams } from './Params'\n\nexport class UrlWitness<TParams extends UrlWitnessParams = UrlWitnessParams> extends AbstractWitness<TParams> {\n static override configSchemas = [UrlWitnessConfigSchema]\n\n get urls() {\n return this.config?.urls\n }\n\n protected override async observeHandler(payloads: Payload[] = []): Promise<Payload[]> {\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 hashUrl(url.url) }\n }),\n )\n // TODO: Handle partial success\n return hashed\n }\n}\n","import Crypto from 'crypto'\nimport { createReadStream } from 'fs'\nimport { fileURLToPath } from 'url'\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 { Crypto } from '@xylabs/crypto'\nimport http from 'http'\nimport https from 'https'\n\nexport const hashHttpUrl = (url: string): Promise<string> => {\n const ret = new Promise<string>((resolve, reject) => {\n const hash = Crypto.createHash('sha256')\n const lib = url.startsWith('https') ? https : http\n lib\n .get(url, (res) => {\n res.on('data', (data) => {\n hash.update(data)\n })\n res.on('end', () => {\n resolve(hash.digest('hex'))\n })\n })\n .on('error', (err) => {\n reject(err)\n })\n })\n return ret\n}\n","import { hashFile } from './hashFile'\nimport { hashHttpUrl } from './hashHttpUrl'\n\nexport const hashUrl = (url: string): Promise<string> => {\n const scheme = url.split('://')[0]?.toLowerCase()\n switch (scheme) {\n case 'file':\n return hashFile(url)\n case 'http':\n case 'https':\n return hashHttpUrl(url)\n default:\n throw new Error(`Unsupported URL scheme: ${scheme}`)\n }\n}\n"],"mappings":"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","names":["import_url_payload_plugin","import_url_payload_plugin","Crypto","import_crypto","https","http"]}
1
+ {"version":3,"sources":["../../src/Plugin.ts","../../src/Witness/Config.ts","../../src/Witness/Witness.ts","../../src/util/hashFile.ts","../../src/util/hashHttpUrl.ts","../../src/util/hashUrl.ts","../../src/index.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'\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 { AbstractWitness } from '@xyo-network/abstract-witness'\nimport { Payload } from '@xyo-network/payload-model'\nimport { UrlPayload, UrlSchema } from '@xyo-network/url-payload-plugin'\n\nimport { hashUrl } from '../util'\nimport { UrlWitnessConfigSchema } from './Config'\nimport { UrlWitnessParams } from './Params'\n\nexport class UrlWitness<TParams extends UrlWitnessParams = UrlWitnessParams> extends AbstractWitness<TParams> {\n static override configSchemas = [UrlWitnessConfigSchema]\n\n get urls() {\n return this.config?.urls\n }\n\n protected override async observeHandler(payloads: Payload[] = []): Promise<Payload[]> {\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 hashUrl(url.url) }\n }),\n )\n // TODO: Handle partial success\n return hashed\n }\n}\n","import Crypto from 'crypto'\nimport { createReadStream } from 'fs'\nimport { fileURLToPath } from 'url'\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 { Crypto } from '@xylabs/crypto'\nimport http from 'http'\nimport https from 'https'\n\nexport const hashHttpUrl = (url: string): Promise<string> => {\n const ret = new Promise<string>((resolve, reject) => {\n const hash = Crypto.createHash('sha256')\n const lib = url.startsWith('https') ? https : http\n lib\n .get(url, (res) => {\n res.on('data', (data) => {\n hash.update(data)\n })\n res.on('end', () => {\n resolve(hash.digest('hex'))\n })\n })\n .on('error', (err) => {\n reject(err)\n })\n })\n return ret\n}\n","import { hashFile } from './hashFile'\nimport { hashHttpUrl } from './hashHttpUrl'\n\nexport const hashUrl = (url: string): Promise<string> => {\n const scheme = url.split('://')[0]?.toLowerCase()\n switch (scheme) {\n case 'file':\n return hashFile(url)\n case 'http':\n case 'https':\n return hashHttpUrl(url)\n default:\n throw new Error(`Unsupported URL scheme: ${scheme}`)\n }\n}\n","import { UrlPlugin } from './Plugin'\n\nexport * from './Witness'\n\nexport { UrlPlugin }\n\n// eslint-disable-next-line import/no-default-export\nexport default UrlPlugin\n"],"mappings":"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","names":["UrlSchema","UrlSchema","Crypto","UrlSchema","UrlSchema"]}
package/package.json CHANGED
@@ -15,7 +15,7 @@
15
15
  "@xyo-network/module-model": "^2.81.5",
16
16
  "@xyo-network/payload-model": "^2.81.5",
17
17
  "@xyo-network/payloadset-plugin": "^2.81.5",
18
- "@xyo-network/url-payload-plugin": "~2.81.3",
18
+ "@xyo-network/url-payload-plugin": "~2.81.5",
19
19
  "@xyo-network/witness-model": "^2.81.5"
20
20
  },
21
21
  "devDependencies": {
@@ -24,25 +24,34 @@
24
24
  "typescript": "^5.3.2"
25
25
  },
26
26
  "description": "Typescript/Javascript Plugins for XYO Platform",
27
- "docs": "dist/docs.json",
28
- "types": "dist/node/index.d.ts",
29
27
  "exports": {
30
28
  ".": {
29
+ "browser": {
30
+ "require": {
31
+ "types": "./dist/browser/index.d.cts",
32
+ "default": "./dist/browser/index.cjs"
33
+ },
34
+ "import": {
35
+ "types": "./dist/browser/index.d.mts",
36
+ "default": "./dist/browser/index.js"
37
+ }
38
+ },
31
39
  "node": {
32
40
  "require": {
33
- "types": "./dist/node/index.d.ts",
34
- "default": "./dist/node/index.js"
41
+ "types": "./dist/node/index.d.cts",
42
+ "default": "./dist/node/index.cjs"
35
43
  },
36
44
  "import": {
37
45
  "types": "./dist/node/index.d.mts",
38
- "default": "./dist/node/index.mjs"
46
+ "default": "./dist/node/index.js"
39
47
  }
40
48
  }
41
49
  },
42
50
  "./package.json": "./package.json"
43
51
  },
44
- "main": "dist/node/index.js",
45
- "module": "dist/node/index.mjs",
52
+ "main": "dist/node/index.cjs",
53
+ "module": "dist/node/index.js",
54
+ "types": "dist/node/index.d.mts",
46
55
  "homepage": "https://xyo.network",
47
56
  "license": "LGPL-3.0-only",
48
57
  "publishConfig": {
@@ -53,5 +62,6 @@
53
62
  "url": "https://github.com/XYOracleNetwork/plugins.git"
54
63
  },
55
64
  "sideEffects": false,
56
- "version": "2.81.3"
65
+ "version": "2.81.5",
66
+ "type": "module"
57
67
  }
package/xy.config.ts CHANGED
@@ -1,7 +1,9 @@
1
1
  import { XyTsupConfig } from '@xylabs/ts-scripts-yarn3'
2
2
  const config: XyTsupConfig = {
3
3
  compile: {
4
- browser: {},
4
+ browser: {
5
+ src: true,
6
+ },
5
7
  node: {
6
8
  src: true,
7
9
  },