@xyo-network/file-browser-plugin 6.0.0 → 6.0.2

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.
@@ -1,4 +1,4 @@
1
- import type { Schema } from '@xyo-network/payload-model';
1
+ import type { Schema } from '@xyo-network/sdk-js';
2
2
  import type { BrowserFileWitnessAdditionalParams } from './Params.ts';
3
3
  import type { FilePayload } from './Payload.ts';
4
4
  import type { FileWitnessParams } from './Witness.ts';
@@ -1 +1 @@
1
- {"version":3,"file":"BrowserFileWitness.d.ts","sourceRoot":"","sources":["../../src/BrowserFileWitness.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAA;AAIxD,OAAO,KAAK,EAAE,kCAAkC,EAAE,MAAM,aAAa,CAAA;AACrE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AAG/C,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAA;AACrD,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AAE1C,KAAK,wBAAwB,GAAG,iBAAiB,GAAG,kCAAkC,CAAA;AAEtF,qBAAa,kBAAmB,SAAQ,WAAW,CAAC,wBAAwB,CAAC;IAC3E,gBAAyB,aAAa,EAAE,MAAM,EAAE,CAAoD;IACpG,gBAAyB,mBAAmB,EAAE,MAAM,CAA0B;cAErD,cAAc;IAWvC,OAAO,CAAC,cAAc;YAcR,kBAAkB;CAyBjC"}
1
+ {"version":3,"file":"BrowserFileWitness.d.ts","sourceRoot":"","sources":["../../src/BrowserFileWitness.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAA;AAIjD,OAAO,KAAK,EAAE,kCAAkC,EAAE,MAAM,aAAa,CAAA;AACrE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AAG/C,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAA;AACrD,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AAE1C,KAAK,wBAAwB,GAAG,iBAAiB,GAAG,kCAAkC,CAAA;AAEtF,qBAAa,kBAAmB,SAAQ,WAAW,CAAC,wBAAwB,CAAC;IAC3E,gBAAyB,aAAa,EAAE,MAAM,EAAE,CAAoD;IACpG,gBAAyB,mBAAmB,EAAE,MAAM,CAA0B;cAErD,cAAc;IAWvC,OAAO,CAAC,cAAc;YAcR,kBAAkB;CAyBjC"}
@@ -1,4 +1,4 @@
1
- import type { WitnessConfig } from '@xyo-network/witness-model';
1
+ import type { WitnessConfig } from '@xyo-network/sdk-js';
2
2
  export type FileWitnessConfigSchema = typeof FileWitnessConfigSchema;
3
3
  export declare const FileWitnessConfigSchema: "network.xyo.file.witness.config" & {
4
4
  readonly __schema: true;
@@ -1 +1 @@
1
- {"version":3,"file":"Config.d.ts","sourceRoot":"","sources":["../../src/Config.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAA;AAE/D,MAAM,MAAM,uBAAuB,GAAG,OAAO,uBAAuB,CAAA;AACpE,eAAO,MAAM,uBAAuB;;CAAoD,CAAA;AAExF,MAAM,MAAM,iBAAiB,GAAG,aAAa,CAAC;IAC5C,MAAM,EAAE,uBAAuB,CAAA;IAC/B,OAAO,CAAC,EAAE,UAAU,CAAA;CACrB,CAAC,CAAA"}
1
+ {"version":3,"file":"Config.d.ts","sourceRoot":"","sources":["../../src/Config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AAGxD,MAAM,MAAM,uBAAuB,GAAG,OAAO,uBAAuB,CAAA;AACpE,eAAO,MAAM,uBAAuB;;CAAoD,CAAA;AAExF,MAAM,MAAM,iBAAiB,GAAG,aAAa,CAAC;IAC5C,MAAM,EAAE,uBAAuB,CAAA;IAC/B,OAAO,CAAC,EAAE,UAAU,CAAA;CACrB,CAAC,CAAA"}
@@ -1,4 +1,4 @@
1
- import type { Payload } from '@xyo-network/payload-model';
1
+ import type { Payload } from '@xyo-network/sdk-js';
2
2
  import { FileSchema } from './Schema.ts';
3
3
  export type BinaryDataHash = string;
4
4
  /** @description File location and optional data */
@@ -11,5 +11,5 @@ export type FilePayload = Payload<{
11
11
  modified?: number;
12
12
  uri: string;
13
13
  }, FileSchema>;
14
- export declare const isFilePayload: (x?: unknown | null) => x is FilePayload;
14
+ export declare const isFilePayload: (x?: unknown) => x is FilePayload;
15
15
  //# sourceMappingURL=Payload.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Payload.d.ts","sourceRoot":"","sources":["../../src/Payload.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAA;AAGzD,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AAExC,MAAM,MAAM,cAAc,GAAG,MAAM,CAAA;AAEnC,mDAAmD;AACnD,MAAM,MAAM,WAAW,GAAG,OAAO,CAC/B;IACE,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,IAAI,EAAE,cAAc,CAAA;IACpB,MAAM,EAAE,MAAM,CAAA;IACd,wCAAwC;IACxC,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,CAAA;IACtC,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,GAAG,EAAE,MAAM,CAAA;CACZ,EACD,UAAU,CACX,CAAA;AAED,eAAO,MAAM,aAAa,0CAAiD,CAAA"}
1
+ {"version":3,"file":"Payload.d.ts","sourceRoot":"","sources":["../../src/Payload.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAA;AAGlD,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AAExC,MAAM,MAAM,cAAc,GAAG,MAAM,CAAA;AAEnC,mDAAmD;AACnD,MAAM,MAAM,WAAW,GAAG,OAAO,CAC/B;IACE,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,IAAI,EAAE,cAAc,CAAA;IACpB,MAAM,EAAE,MAAM,CAAA;IACd,wCAAwC;IACxC,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,CAAA;IACtC,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,GAAG,EAAE,MAAM,CAAA;CACZ,EACD,UAAU,CACX,CAAA;AAED,eAAO,MAAM,aAAa,mCAAiD,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"PluginBrowser.d.ts","sourceRoot":"","sources":["../../src/PluginBrowser.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAA;AAG5D,eAAO,MAAM,iBAAiB,iFAS3B,CAAA"}
1
+ {"version":3,"file":"PluginBrowser.d.ts","sourceRoot":"","sources":["../../src/PluginBrowser.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAA;AAG5D,eAAO,MAAM,iBAAiB,iFAS3B,CAAA"}
@@ -1,8 +1,6 @@
1
1
  import type { Promisable } from '@xylabs/sdk-js';
2
- import type { AnyConfigSchema } from '@xyo-network/module-model';
3
- import type { Payload, Schema } from '@xyo-network/payload-model';
4
- import { AbstractWitness } from '@xyo-network/witness-abstract';
5
- import type { WitnessModule, WitnessParams } from '@xyo-network/witness-model';
2
+ import type { AnyConfigSchema, Payload, Schema, WitnessModule, WitnessParams } from '@xyo-network/sdk-js';
3
+ import { AbstractWitness } from '@xyo-network/sdk-js';
6
4
  import type { FileWitnessConfig } from './Config.ts';
7
5
  export type FileWitnessParams = WitnessParams<AnyConfigSchema<FileWitnessConfig>>;
8
6
  export declare abstract class FileWitness<TParams extends FileWitnessParams = FileWitnessParams> extends AbstractWitness<TParams> implements WitnessModule {
@@ -1 +1 @@
1
- {"version":3,"file":"Witness.d.ts","sourceRoot":"","sources":["../../src/Witness.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAA;AAChD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAA;AAChE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAA;AACjE,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAA;AAC/D,OAAO,KAAK,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAA;AAE9E,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAA;AAIpD,MAAM,MAAM,iBAAiB,GAAG,aAAa,CAAC,eAAe,CAAC,iBAAiB,CAAC,CAAC,CAAA;AAGjF,8BAAsB,WAAW,CAAC,OAAO,SAAS,iBAAiB,GAAG,iBAAiB,CAAE,SAAQ,eAAe,CAAC,OAAO,CAAE,YAAW,aAAa;IAChJ,gBAAyB,aAAa,EAAE,MAAM,EAAE,CAAoD;IACpG,gBAAyB,mBAAmB,EAAE,MAAM,CAA0B;cAE3D,cAAc,CAAC,QAAQ,CAAC,EAAE,OAAO,EAAE,GAAG,UAAU,CAAC,OAAO,EAAE,CAAC;CAG/E"}
1
+ {"version":3,"file":"Witness.d.ts","sourceRoot":"","sources":["../../src/Witness.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAA;AAChD,OAAO,KAAK,EACV,eAAe,EAAE,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,aAAa,EAC/D,MAAM,qBAAqB,CAAA;AAC5B,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAA;AAErD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAA;AAIpD,MAAM,MAAM,iBAAiB,GAAG,aAAa,CAAC,eAAe,CAAC,iBAAiB,CAAC,CAAC,CAAA;AAGjF,8BAAsB,WAAW,CAAC,OAAO,SAAS,iBAAiB,GAAG,iBAAiB,CAAE,SAAQ,eAAe,CAAC,OAAO,CAAE,YAAW,aAAa;IAChJ,gBAAyB,aAAa,EAAE,MAAM,EAAE,CAAoD;IACpG,gBAAyB,mBAAmB,EAAE,MAAM,CAA0B;cAE3D,cAAc,CAAC,QAAQ,CAAC,EAAE,OAAO,EAAE,GAAG,UAAU,CAAC,OAAO,EAAE,CAAC;CAG/E"}
@@ -3,11 +3,11 @@ import { assertEx } from "@xylabs/sdk-js";
3
3
  import { PayloadBuilder } from "@xyo-network/sdk-js";
4
4
 
5
5
  // src/Config.ts
6
- import { asSchema } from "@xyo-network/payload-model";
6
+ import { asSchema } from "@xyo-network/sdk-js";
7
7
  var FileWitnessConfigSchema = asSchema("network.xyo.file.witness.config", true);
8
8
 
9
9
  // src/Schema.ts
10
- import { asSchema as asSchema2 } from "@xyo-network/payload-model";
10
+ import { asSchema as asSchema2 } from "@xyo-network/sdk-js";
11
11
  var FileSchema = asSchema2("network.xyo.file", true);
12
12
 
13
13
  // src/util/GenerateDataUri.ts
@@ -17,7 +17,7 @@ var generateDataUri = (data) => {
17
17
  };
18
18
 
19
19
  // src/Witness.ts
20
- import { AbstractWitness } from "@xyo-network/witness-abstract";
20
+ import { AbstractWitness } from "@xyo-network/sdk-js";
21
21
  var FileWitness = class extends AbstractWitness {
22
22
  static configSchemas = [...super.configSchemas, FileWitnessConfigSchema];
23
23
  static defaultConfigSchema = FileWitnessConfigSchema;
@@ -47,7 +47,7 @@ var BrowserFileWitness = class extends FileWitness {
47
47
  const arrayBuffer = event.target?.result;
48
48
  resolve(new Uint8Array(arrayBuffer));
49
49
  });
50
- fileReader.onerror = () => reject(fileReader.error);
50
+ fileReader.onerror = () => reject(new Error("FileReader failed", { cause: fileReader.error ?? void 0 }));
51
51
  fileReader.readAsArrayBuffer(file);
52
52
  });
53
53
  }
@@ -76,12 +76,11 @@ var BrowserFileWitness = class extends FileWitness {
76
76
  };
77
77
 
78
78
  // src/Payload.ts
79
- import { isPayloadOfSchemaType } from "@xyo-network/payload-model";
79
+ import { isPayloadOfSchemaType } from "@xyo-network/sdk-js";
80
80
  var isFilePayload = isPayloadOfSchemaType(FileSchema);
81
81
 
82
82
  // src/PluginBrowser.ts
83
- import { PayloadSetSchema } from "@xyo-network/payload-model";
84
- import { createPayloadSetWitnessPlugin } from "@xyo-network/sdk-js";
83
+ import { createPayloadSetWitnessPlugin, PayloadSetSchema } from "@xyo-network/sdk-js";
85
84
  var BrowserFilePlugin = () => createPayloadSetWitnessPlugin(
86
85
  { required: { [FileSchema]: 1 }, schema: PayloadSetSchema },
87
86
  {
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/BrowserFileWitness.ts", "../../src/Config.ts", "../../src/Schema.ts", "../../src/util/GenerateDataUri.ts", "../../src/Witness.ts", "../../src/Payload.ts", "../../src/PluginBrowser.ts"],
4
- "sourcesContent": ["import { assertEx } from '@xylabs/sdk-js'\nimport type { Schema } from '@xyo-network/payload-model'\nimport { PayloadBuilder } from '@xyo-network/sdk-js'\n\nimport { FileWitnessConfigSchema } from './Config.ts'\nimport type { BrowserFileWitnessAdditionalParams } from './Params.ts'\nimport type { FilePayload } from './Payload.ts'\nimport { FileSchema } from './Schema.ts'\nimport { generateDataUri } from './util/index.ts'\nimport type { FileWitnessParams } from './Witness.ts'\nimport { FileWitness } from './Witness.ts'\n\ntype BrowserFileWitnessParams = FileWitnessParams & BrowserFileWitnessAdditionalParams\n\nexport class BrowserFileWitness extends FileWitness<BrowserFileWitnessParams> {\n static override readonly configSchemas: Schema[] = [...super.configSchemas, FileWitnessConfigSchema]\n static override readonly defaultConfigSchema: Schema = FileWitnessConfigSchema\n\n protected override async observeHandler() {\n try {\n const [payload] = await this.witnessBrowserFile()\n const { logger } = this.params\n logger?.log(`BrowserFileWitness: ${await PayloadBuilder.dataHash(payload)}`)\n return [payload]\n } catch (e) {\n throw new Error(`Error reading file: ${e}`, { cause: e })\n }\n }\n\n private readBinaryFile(file: File): Promise<Uint8Array> {\n return new Promise((resolve, reject) => {\n const fileReader = new FileReader()\n fileReader.addEventListener('load', (event) => {\n const arrayBuffer = event.target?.result as ArrayBuffer\n resolve(new Uint8Array(arrayBuffer))\n })\n // eslint-disable-next-line unicorn/prefer-add-event-listener\n fileReader.onerror = () => reject(fileReader.error)\n // eslint-disable-next-line unicorn/prefer-blob-reading-methods\n fileReader.readAsArrayBuffer(file)\n })\n }\n\n private async witnessBrowserFile(): Promise<[FilePayload, Uint8Array]> {\n const file = assertEx(this.params.file, () => 'File is missing from params')\n const fileBinary = await this.readBinaryFile(file)\n const result = new Uint8Array(fileBinary)\n const hashBuffer = await globalThis.crypto.subtle.digest('SHA-256', result)\n\n // Convert ArrayBuffer to hex string\n const hashArray = [...new Uint8Array(hashBuffer)]\n const hash = hashArray.map(b => b.toString(16).padStart(2, '0')).join('')\n\n return [\n {\n hash,\n length: fileBinary.byteLength,\n meta: {\n name: file.name,\n type: file.type,\n },\n modified: file.lastModified,\n schema: FileSchema,\n uri: this.config.storage === 'data-uri' ? generateDataUri(fileBinary) : file.name,\n },\n fileBinary,\n ]\n }\n}\n", "import { asSchema } from '@xyo-network/payload-model'\nimport type { WitnessConfig } from '@xyo-network/witness-model'\n\nexport type FileWitnessConfigSchema = typeof FileWitnessConfigSchema\nexport const FileWitnessConfigSchema = asSchema('network.xyo.file.witness.config', true)\n\nexport type FileWitnessConfig = WitnessConfig<{\n schema: FileWitnessConfigSchema\n storage?: 'data-uri'\n}>\n", "import { asSchema } from '@xyo-network/payload-model'\n\nexport type FileSchema = typeof FileSchema\nexport const FileSchema = asSchema('network.xyo.file', true)\n", "import { base64 } from '@scure/base'\n\nexport const generateDataUri = (data: Uint8Array): string => {\n return `data:application/octet-stream;base64,${base64.encode(data)}`\n}\n", "import type { Promisable } from '@xylabs/sdk-js'\nimport type { AnyConfigSchema } from '@xyo-network/module-model'\nimport type { Payload, Schema } from '@xyo-network/payload-model'\nimport { AbstractWitness } from '@xyo-network/witness-abstract'\nimport type { WitnessModule, WitnessParams } from '@xyo-network/witness-model'\n\nimport type { FileWitnessConfig } from './Config.ts'\nimport { FileWitnessConfigSchema } from './Config.ts'\nimport { FileSchema } from './Schema.ts'\n\nexport type FileWitnessParams = WitnessParams<AnyConfigSchema<FileWitnessConfig>>\n\n// Abstract so that derived classes provide a type for the file param and methods to parse it\nexport abstract class FileWitness<TParams extends FileWitnessParams = FileWitnessParams> extends AbstractWitness<TParams> implements WitnessModule {\n static override readonly configSchemas: Schema[] = [...super.configSchemas, FileWitnessConfigSchema]\n static override readonly defaultConfigSchema: Schema = FileWitnessConfigSchema\n\n protected override observeHandler(payloads?: Payload[]): Promisable<Payload[]> {\n return [{ ...payloads?.[0], schema: FileSchema }]\n }\n}\n", "import type { Payload } from '@xyo-network/payload-model'\nimport { isPayloadOfSchemaType } from '@xyo-network/payload-model'\n\nimport { FileSchema } from './Schema.ts'\n\nexport type BinaryDataHash = string\n\n/** @description File location and optional data */\nexport type FilePayload = Payload<\n {\n created?: number\n hash: BinaryDataHash\n length: number\n /** @field Storage specific meta data */\n meta?: Record<string, string | number>\n modified?: number\n uri: string\n },\n FileSchema\n>\n\nexport const isFilePayload = isPayloadOfSchemaType<FilePayload>(FileSchema)\n", "import { PayloadSetSchema } from '@xyo-network/payload-model'\nimport { createPayloadSetWitnessPlugin } from '@xyo-network/sdk-js'\n\nimport { BrowserFileWitness } from './BrowserFileWitness.ts'\nimport { FileSchema } from './Schema.ts'\n\nexport const BrowserFilePlugin = () =>\n createPayloadSetWitnessPlugin<BrowserFileWitness>(\n { required: { [FileSchema]: 1 }, schema: PayloadSetSchema },\n {\n witness: async (params) => {\n const result = await BrowserFileWitness.create(params)\n return result\n },\n },\n )\n"],
5
- "mappings": ";AAAA,SAAS,gBAAgB;AAEzB,SAAS,sBAAsB;;;ACF/B,SAAS,gBAAgB;AAIlB,IAAM,0BAA0B,SAAS,mCAAmC,IAAI;;;ACJvF,SAAS,YAAAA,iBAAgB;AAGlB,IAAM,aAAaA,UAAS,oBAAoB,IAAI;;;ACH3D,SAAS,cAAc;AAEhB,IAAM,kBAAkB,CAAC,SAA6B;AAC3D,SAAO,wCAAwC,OAAO,OAAO,IAAI,CAAC;AACpE;;;ACDA,SAAS,uBAAuB;AAUzB,IAAe,cAAf,cAA0F,gBAAkD;AAAA,EACjJ,OAAyB,gBAA0B,CAAC,GAAG,MAAM,eAAe,uBAAuB;AAAA,EACnG,OAAyB,sBAA8B;AAAA,EAEpC,eAAe,UAA6C;AAC7E,WAAO,CAAC,EAAE,GAAG,WAAW,CAAC,GAAG,QAAQ,WAAW,CAAC;AAAA,EAClD;AACF;;;AJNO,IAAM,qBAAN,cAAiC,YAAsC;AAAA,EAC5E,OAAyB,gBAA0B,CAAC,GAAG,MAAM,eAAe,uBAAuB;AAAA,EACnG,OAAyB,sBAA8B;AAAA,EAEvD,MAAyB,iBAAiB;AACxC,QAAI;AACF,YAAM,CAAC,OAAO,IAAI,MAAM,KAAK,mBAAmB;AAChD,YAAM,EAAE,OAAO,IAAI,KAAK;AACxB,cAAQ,IAAI,uBAAuB,MAAM,eAAe,SAAS,OAAO,CAAC,EAAE;AAC3E,aAAO,CAAC,OAAO;AAAA,IACjB,SAAS,GAAG;AACV,YAAM,IAAI,MAAM,uBAAuB,CAAC,IAAI,EAAE,OAAO,EAAE,CAAC;AAAA,IAC1D;AAAA,EACF;AAAA,EAEQ,eAAe,MAAiC;AACtD,WAAO,IAAI,QAAQ,CAAC,SAAS,WAAW;AACtC,YAAM,aAAa,IAAI,WAAW;AAClC,iBAAW,iBAAiB,QAAQ,CAAC,UAAU;AAC7C,cAAM,cAAc,MAAM,QAAQ;AAClC,gBAAQ,IAAI,WAAW,WAAW,CAAC;AAAA,MACrC,CAAC;AAED,iBAAW,UAAU,MAAM,OAAO,WAAW,KAAK;AAElD,iBAAW,kBAAkB,IAAI;AAAA,IACnC,CAAC;AAAA,EACH;AAAA,EAEA,MAAc,qBAAyD;AACrE,UAAM,OAAO,SAAS,KAAK,OAAO,MAAM,MAAM,6BAA6B;AAC3E,UAAM,aAAa,MAAM,KAAK,eAAe,IAAI;AACjD,UAAM,SAAS,IAAI,WAAW,UAAU;AACxC,UAAM,aAAa,MAAM,WAAW,OAAO,OAAO,OAAO,WAAW,MAAM;AAG1E,UAAM,YAAY,CAAC,GAAG,IAAI,WAAW,UAAU,CAAC;AAChD,UAAM,OAAO,UAAU,IAAI,OAAK,EAAE,SAAS,EAAE,EAAE,SAAS,GAAG,GAAG,CAAC,EAAE,KAAK,EAAE;AAExE,WAAO;AAAA,MACL;AAAA,QACE;AAAA,QACA,QAAQ,WAAW;AAAA,QACnB,MAAM;AAAA,UACJ,MAAM,KAAK;AAAA,UACX,MAAM,KAAK;AAAA,QACb;AAAA,QACA,UAAU,KAAK;AAAA,QACf,QAAQ;AAAA,QACR,KAAK,KAAK,OAAO,YAAY,aAAa,gBAAgB,UAAU,IAAI,KAAK;AAAA,MAC/E;AAAA,MACA;AAAA,IACF;AAAA,EACF;AACF;;;AKnEA,SAAS,6BAA6B;AAoB/B,IAAM,gBAAgB,sBAAmC,UAAU;;;ACrB1E,SAAS,wBAAwB;AACjC,SAAS,qCAAqC;AAKvC,IAAM,oBAAoB,MAC/B;AAAA,EACE,EAAE,UAAU,EAAE,CAAC,UAAU,GAAG,EAAE,GAAG,QAAQ,iBAAiB;AAAA,EAC1D;AAAA,IACE,SAAS,OAAO,WAAW;AACzB,YAAM,SAAS,MAAM,mBAAmB,OAAO,MAAM;AACrD,aAAO;AAAA,IACT;AAAA,EACF;AACF;",
4
+ "sourcesContent": ["import { assertEx } from '@xylabs/sdk-js'\nimport type { Schema } from '@xyo-network/sdk-js'\nimport { PayloadBuilder } from '@xyo-network/sdk-js'\n\nimport { FileWitnessConfigSchema } from './Config.ts'\nimport type { BrowserFileWitnessAdditionalParams } from './Params.ts'\nimport type { FilePayload } from './Payload.ts'\nimport { FileSchema } from './Schema.ts'\nimport { generateDataUri } from './util/index.ts'\nimport type { FileWitnessParams } from './Witness.ts'\nimport { FileWitness } from './Witness.ts'\n\ntype BrowserFileWitnessParams = FileWitnessParams & BrowserFileWitnessAdditionalParams\n\nexport class BrowserFileWitness extends FileWitness<BrowserFileWitnessParams> {\n static override readonly configSchemas: Schema[] = [...super.configSchemas, FileWitnessConfigSchema]\n static override readonly defaultConfigSchema: Schema = FileWitnessConfigSchema\n\n protected override async observeHandler() {\n try {\n const [payload] = await this.witnessBrowserFile()\n const { logger } = this.params\n logger?.log(`BrowserFileWitness: ${await PayloadBuilder.dataHash(payload)}`)\n return [payload]\n } catch (e) {\n throw new Error(`Error reading file: ${e}`, { cause: e })\n }\n }\n\n private readBinaryFile(file: File): Promise<Uint8Array> {\n return new Promise((resolve, reject) => {\n const fileReader = new FileReader()\n fileReader.addEventListener('load', (event) => {\n const arrayBuffer = event.target?.result as ArrayBuffer\n resolve(new Uint8Array(arrayBuffer))\n })\n // eslint-disable-next-line unicorn/prefer-add-event-listener\n fileReader.onerror = () => reject(new Error('FileReader failed', { cause: fileReader.error ?? undefined }))\n // eslint-disable-next-line unicorn/prefer-blob-reading-methods\n fileReader.readAsArrayBuffer(file)\n })\n }\n\n private async witnessBrowserFile(): Promise<[FilePayload, Uint8Array]> {\n const file = assertEx(this.params.file, () => 'File is missing from params')\n const fileBinary = await this.readBinaryFile(file)\n const result = new Uint8Array(fileBinary)\n const hashBuffer = await globalThis.crypto.subtle.digest('SHA-256', result)\n\n // Convert ArrayBuffer to hex string\n const hashArray = [...new Uint8Array(hashBuffer)]\n const hash = hashArray.map(b => b.toString(16).padStart(2, '0')).join('')\n\n return [\n {\n hash,\n length: fileBinary.byteLength,\n meta: {\n name: file.name,\n type: file.type,\n },\n modified: file.lastModified,\n schema: FileSchema,\n uri: this.config.storage === 'data-uri' ? generateDataUri(fileBinary) : file.name,\n },\n fileBinary,\n ]\n }\n}\n", "import type { WitnessConfig } from '@xyo-network/sdk-js'\nimport { asSchema } from '@xyo-network/sdk-js'\n\nexport type FileWitnessConfigSchema = typeof FileWitnessConfigSchema\nexport const FileWitnessConfigSchema = asSchema('network.xyo.file.witness.config', true)\n\nexport type FileWitnessConfig = WitnessConfig<{\n schema: FileWitnessConfigSchema\n storage?: 'data-uri'\n}>\n", "import { asSchema } from '@xyo-network/sdk-js'\n\nexport type FileSchema = typeof FileSchema\nexport const FileSchema = asSchema('network.xyo.file', true)\n", "import { base64 } from '@scure/base'\n\nexport const generateDataUri = (data: Uint8Array): string => {\n return `data:application/octet-stream;base64,${base64.encode(data)}`\n}\n", "import type { Promisable } from '@xylabs/sdk-js'\nimport type {\n AnyConfigSchema, Payload, Schema, WitnessModule, WitnessParams,\n} from '@xyo-network/sdk-js'\nimport { AbstractWitness } from '@xyo-network/sdk-js'\n\nimport type { FileWitnessConfig } from './Config.ts'\nimport { FileWitnessConfigSchema } from './Config.ts'\nimport { FileSchema } from './Schema.ts'\n\nexport type FileWitnessParams = WitnessParams<AnyConfigSchema<FileWitnessConfig>>\n\n// Abstract so that derived classes provide a type for the file param and methods to parse it\nexport abstract class FileWitness<TParams extends FileWitnessParams = FileWitnessParams> extends AbstractWitness<TParams> implements WitnessModule {\n static override readonly configSchemas: Schema[] = [...super.configSchemas, FileWitnessConfigSchema]\n static override readonly defaultConfigSchema: Schema = FileWitnessConfigSchema\n\n protected override observeHandler(payloads?: Payload[]): Promisable<Payload[]> {\n return [{ ...payloads?.[0], schema: FileSchema }]\n }\n}\n", "import type { Payload } from '@xyo-network/sdk-js'\nimport { isPayloadOfSchemaType } from '@xyo-network/sdk-js'\n\nimport { FileSchema } from './Schema.ts'\n\nexport type BinaryDataHash = string\n\n/** @description File location and optional data */\nexport type FilePayload = Payload<\n {\n created?: number\n hash: BinaryDataHash\n length: number\n /** @field Storage specific meta data */\n meta?: Record<string, string | number>\n modified?: number\n uri: string\n },\n FileSchema\n>\n\nexport const isFilePayload = isPayloadOfSchemaType<FilePayload>(FileSchema)\n", "import { createPayloadSetWitnessPlugin, PayloadSetSchema } from '@xyo-network/sdk-js'\n\nimport { BrowserFileWitness } from './BrowserFileWitness.ts'\nimport { FileSchema } from './Schema.ts'\n\nexport const BrowserFilePlugin = () =>\n createPayloadSetWitnessPlugin<BrowserFileWitness>(\n { required: { [FileSchema]: 1 }, schema: PayloadSetSchema },\n {\n witness: async (params) => {\n const result = await BrowserFileWitness.create(params)\n return result\n },\n },\n )\n"],
5
+ "mappings": "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",
6
6
  "names": ["asSchema"]
7
7
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@xyo-network/file-browser-plugin",
3
- "version": "6.0.0",
3
+ "version": "6.0.2",
4
4
  "description": "Typescript/Javascript Plugins for XYO Platform",
5
5
  "homepage": "https://xyo.network",
6
6
  "bugs": {
@@ -33,63 +33,41 @@
33
33
  "devDependencies": {
34
34
  "@bitauth/libauth": "~3.0.0",
35
35
  "@metamask/providers": "^22.1.1",
36
+ "@noble/post-quantum": "~0.6.1",
36
37
  "@opentelemetry/api": "^1.9.1",
37
38
  "@opentelemetry/sdk-trace-base": "^2.7.1",
38
39
  "@scure/base": "^2.2.0",
39
40
  "@scure/bip39": "~2.2.0",
40
- "@xylabs/geo": "~6.0",
41
- "@xylabs/sdk-js": "~6.0",
42
- "@xylabs/threads": "~6.0",
43
- "@xylabs/toolchain": "~8.1.1",
44
- "@xylabs/tsconfig": "~8.1.1",
45
- "@xylabs/vitest-extended": "~6.0.2",
46
- "@xyo-network/account": "~6.0",
47
- "@xyo-network/account-model": "~6.0",
48
- "@xyo-network/api": "~6.0",
49
- "@xyo-network/api-models": "~6.0",
50
- "@xyo-network/boundwitness-builder": "~6.0",
51
- "@xyo-network/boundwitness-model": "~6.0",
52
- "@xyo-network/boundwitness-wrapper": "~6.0",
53
- "@xyo-network/config-payload-plugin": "~6.0",
54
- "@xyo-network/huri": "~6.0",
55
- "@xyo-network/manifest-model": "~6.0",
56
- "@xyo-network/module-model": "~6.0",
57
- "@xyo-network/payload-builder": "~6.0",
58
- "@xyo-network/payload-model": "~6.0",
59
- "@xyo-network/payload-plugin": "~6.0",
60
- "@xyo-network/payload-wrapper": "~6.0",
61
- "@xyo-network/query-payload-plugin": "~6.0",
62
- "@xyo-network/sdk-js": "~6.0",
63
- "@xyo-network/sdk-protocol-js": "~6.0",
64
- "@xyo-network/wallet": "~6.0",
65
- "@xyo-network/wallet-model": "~6.0",
66
- "@xyo-network/witness-abstract": "~6.0",
67
- "@xyo-network/witness-model": "~6.0",
41
+ "@xylabs/geo": "^6.0.6",
42
+ "@xylabs/sdk-js": "^6.0.6",
43
+ "@xylabs/threads": "^6.0.6",
44
+ "@xylabs/toolchain": "~8.1.11",
45
+ "@xylabs/tsconfig": "~8.1.11",
46
+ "@xylabs/vitest-extended": "~6.0.6",
47
+ "@xyo-network/sdk-js": "^6.0.2",
48
+ "@xyo-network/sdk-protocol-js": "~6.0.7",
68
49
  "ajv": "^8.20.0",
69
50
  "async-mutex": "^0.5.0",
70
51
  "bn.js": "^5.2.3",
71
52
  "buffer": "^6.0.3",
72
- "chalk": "^5.6.2",
73
53
  "debug": "~4.4.3",
74
- "eslint": "^10.4.0",
54
+ "eslint": "^10.4.1",
75
55
  "ethers": "^6.16.0",
76
56
  "hash-wasm": "^4.12.0",
77
57
  "idb": "^8.0.3",
78
- "lru-cache": "^11.5.0",
79
- "mapbox-gl": "~3.24",
58
+ "lru-cache": "^11.5.1",
80
59
  "observable-fns": "~0.6.1",
81
60
  "pako": "~2.1.0",
82
- "store2": "~2.14.4",
83
61
  "typescript": "~6.0.3",
84
- "vite": "^8.0.13",
85
- "vitest": "^4.1.7",
86
- "wasm-feature-detect": "~1.8.0",
62
+ "vite": "^8.0.16",
63
+ "vitest": "^4.1.8",
87
64
  "webextension-polyfill": "^0.12.0",
88
65
  "zod": "^4.4.3"
89
66
  },
90
67
  "peerDependencies": {
91
68
  "@bitauth/libauth": "~3.0",
92
69
  "@metamask/providers": "^22.1",
70
+ "@noble/post-quantum": "~0.6.1",
93
71
  "@opentelemetry/api": "^1.9",
94
72
  "@opentelemetry/sdk-trace-base": "^2.7",
95
73
  "@scure/base": "^2.2",
@@ -97,43 +75,19 @@
97
75
  "@xylabs/geo": "^6.0",
98
76
  "@xylabs/sdk-js": "^6.0",
99
77
  "@xylabs/threads": "^6.0",
100
- "@xyo-network/account": "~6.0",
101
- "@xyo-network/account-model": "^6.0",
102
- "@xyo-network/api": "~6.0",
103
- "@xyo-network/api-models": "~6.0",
104
- "@xyo-network/boundwitness-builder": "~6.0",
105
- "@xyo-network/boundwitness-model": "^6.0",
106
- "@xyo-network/boundwitness-wrapper": "~6.0",
107
- "@xyo-network/config-payload-plugin": "~6.0",
108
- "@xyo-network/huri": "~6.0",
109
- "@xyo-network/manifest-model": "~6.0",
110
- "@xyo-network/module-model": "^6.0",
111
- "@xyo-network/payload-builder": "~6.0",
112
- "@xyo-network/payload-model": "^6.0",
113
- "@xyo-network/payload-plugin": "~6.0",
114
- "@xyo-network/payload-wrapper": "~6.0",
115
- "@xyo-network/query-payload-plugin": "~6.0",
116
78
  "@xyo-network/sdk-js": "^6.0",
117
79
  "@xyo-network/sdk-protocol-js": "~6.0",
118
- "@xyo-network/wallet": "~6.0",
119
- "@xyo-network/wallet-model": "~6.0",
120
- "@xyo-network/witness-abstract": "^6.0",
121
- "@xyo-network/witness-model": "^6.0",
122
80
  "ajv": "^8.20",
123
81
  "async-mutex": "^0.5",
124
82
  "bn.js": "^5.2",
125
83
  "buffer": "^6.0",
126
- "chalk": "^5.6",
127
84
  "debug": "~4.4",
128
85
  "ethers": "^6.16",
129
86
  "hash-wasm": "^4.12",
130
87
  "idb": "^8.0",
131
88
  "lru-cache": "^11.3",
132
- "mapbox-gl": "~3.24",
133
89
  "observable-fns": "~0.6",
134
90
  "pako": "~2.1",
135
- "store2": "~2.14",
136
- "wasm-feature-detect": "~1.8",
137
91
  "webextension-polyfill": "^0.12",
138
92
  "zod": "^4.4"
139
93
  },