@xyo-network/file-browser-plugin 2.99.5 → 2.99.6

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.
@@ -5,7 +5,6 @@ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
5
  var __getOwnPropNames = Object.getOwnPropertyNames;
6
6
  var __getProtoOf = Object.getPrototypeOf;
7
7
  var __hasOwnProp = Object.prototype.hasOwnProperty;
8
- var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
9
8
  var __export = (target, all) => {
10
9
  for (var name in all)
11
10
  __defProp(target, name, { get: all[name], enumerable: true });
@@ -54,49 +53,30 @@ var FileSchema = "network.xyo.file";
54
53
 
55
54
  // src/util/GenerateDataUri.ts
56
55
  var import_base = require("@scure/base");
57
- var generateDataUri = /* @__PURE__ */ __name((data) => {
56
+ var generateDataUri = (data) => {
58
57
  return `data:application/octet-stream;base64,${import_base.base64.encode(data)}`;
59
- }, "generateDataUri");
58
+ };
60
59
 
61
60
  // src/Witness.ts
62
61
  var import_abstract_witness = require("@xyo-network/abstract-witness");
63
62
  var FileWitness = class extends import_abstract_witness.AbstractWitness {
64
- static {
65
- __name(this, "FileWitness");
66
- }
67
- static configSchemas = [
68
- ...super.configSchemas,
69
- FileWitnessConfigSchema
70
- ];
63
+ static configSchemas = [...super.configSchemas, FileWitnessConfigSchema];
71
64
  static defaultConfigSchema = FileWitnessConfigSchema;
72
65
  observeHandler(payloads) {
73
- return [
74
- {
75
- ...payloads?.[0],
76
- schema: FileSchema
77
- }
78
- ];
66
+ return [{ ...payloads?.[0], schema: FileSchema }];
79
67
  }
80
68
  };
81
69
 
82
70
  // src/BrowserFileWitness.ts
83
71
  var BrowserFileWitness = class extends FileWitness {
84
- static {
85
- __name(this, "BrowserFileWitness");
86
- }
87
- static configSchemas = [
88
- ...super.configSchemas,
89
- FileWitnessConfigSchema
90
- ];
72
+ static configSchemas = [...super.configSchemas, FileWitnessConfigSchema];
91
73
  static defaultConfigSchema = FileWitnessConfigSchema;
92
74
  async observeHandler() {
93
75
  try {
94
76
  const [payload] = await this.witnessBrowserFile();
95
77
  const { logger } = this.params;
96
78
  logger?.log(`BrowserFileWitness: ${await import_payload_builder.PayloadBuilder.dataHash(payload)}`);
97
- return [
98
- payload
99
- ];
79
+ return [payload];
100
80
  } catch (e) {
101
81
  throw new Error(`Error reading file: ${e}`);
102
82
  }
@@ -141,15 +121,13 @@ var isFilePayload = (0, import_payload_model.isPayloadOfSchemaType)(FileSchema);
141
121
  // src/PluginBrowser.ts
142
122
  var import_payload_model2 = require("@xyo-network/payload-model");
143
123
  var import_payloadset_plugin = require("@xyo-network/payloadset-plugin");
144
- var BrowserFilePlugin = /* @__PURE__ */ __name(() => (0, import_payloadset_plugin.createPayloadSetWitnessPlugin)({
145
- required: {
146
- [FileSchema]: 1
147
- },
148
- schema: import_payload_model2.PayloadSetSchema
149
- }, {
150
- witness: /* @__PURE__ */ __name(async (params) => {
151
- const result = await BrowserFileWitness.create(params);
152
- return result;
153
- }, "witness")
154
- }), "BrowserFilePlugin");
124
+ var BrowserFilePlugin = () => (0, import_payloadset_plugin.createPayloadSetWitnessPlugin)(
125
+ { required: { [FileSchema]: 1 }, schema: import_payload_model2.PayloadSetSchema },
126
+ {
127
+ witness: async (params) => {
128
+ const result = await BrowserFileWitness.create(params);
129
+ return result;
130
+ }
131
+ }
132
+ );
155
133
  //# sourceMappingURL=index.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/index.ts","../../src/BrowserFileWitness.ts","../../src/Config.ts","../../src/Schema.ts","../../src/util/GenerateDataUri.ts","../../src/Witness.ts","../../src/Payload.ts","../../src/PluginBrowser.ts"],"sourcesContent":["export * from './BrowserFileWitness.ts'\nexport * from './Config.ts'\nexport * from './Params.ts'\nexport * from './Payload.ts'\n// eslint-disable-next-line import/no-default-export\nexport { BrowserFilePlugin, BrowserFilePlugin as default } from './PluginBrowser.ts'\nexport * from './Schema.ts'\nexport * from './Witness.ts'\n","import { assertEx } from '@xylabs/assert'\nimport { PayloadBuilder } from '@xyo-network/payload-builder'\nimport { Schema } from '@xyo-network/payload-model'\nimport shajs from 'sha.js'\n\nimport { FileWitnessConfigSchema } from './Config.ts'\nimport { BrowserFileWitnessAdditionalParams } from './Params.ts'\nimport { FilePayload } from './Payload.ts'\nimport { FileSchema } from './Schema.ts'\nimport { generateDataUri } from './util/index.ts'\nimport { FileWitness, FileWitnessParams } 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}`)\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 hash = shajs('sha256').update(result).digest('hex').padStart(64, '0')\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 { WitnessConfig } from '@xyo-network/witness-model'\n\nexport type FileWitnessConfigSchema = 'network.xyo.file.witness.config'\nexport const FileWitnessConfigSchema: FileWitnessConfigSchema = 'network.xyo.file.witness.config'\n\nexport type FileWitnessConfig = WitnessConfig<{\n schema: FileWitnessConfigSchema\n storage?: 'data-uri'\n}>\n","export type FileSchema = 'network.xyo.file'\nexport const FileSchema: FileSchema = 'network.xyo.file'\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 { Promisable } from '@xylabs/promise'\nimport { AbstractWitness } from '@xyo-network/abstract-witness'\nimport { AnyConfigSchema } from '@xyo-network/module-model'\nimport { Payload, Schema } from '@xyo-network/payload-model'\nimport { WitnessModule, WitnessParams } from '@xyo-network/witness-model'\n\nimport { FileWitnessConfig, 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 { isPayloadOfSchemaType, Payload } 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/payloadset-plugin'\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"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;;;;;;;;;;;;ACAA,oBAAyB;AACzB,6BAA+B;AAE/B,iBAAkB;;;ACAX,IAAMA,0BAAmD;;;ACFzD,IAAMC,aAAyB;;;ACDtC,kBAAuB;AAEhB,IAAMC,kBAAkB,wBAACC,SAAAA;AAC9B,SAAO,wCAAwCC,mBAAOC,OAAOF,IAAAA,CAAAA;AAC/D,GAF+B;;;ACD/B,8BAAgC;AAWzB,IAAeG,cAAf,cAA0FC,wCAAAA;EAXjG,OAWiGA;;;EAC/F,OAAyBC,gBAA0B;OAAI,MAAMA;IAAeC;;EAC5E,OAAyBC,sBAA8BD;EAEpCE,eAAeC,UAA6C;AAC7E,WAAO;MAAC;QAAE,GAAGA,WAAW,CAAA;QAAIC,QAAQC;MAAW;;EACjD;AACF;;;AJLO,IAAMC,qBAAN,cAAiCC,YAAAA;EAdxC,OAcwCA;;;EACtC,OAAyBC,gBAA0B;OAAI,MAAMA;IAAeC;;EAC5E,OAAyBC,sBAA8BD;EAEvD,MAAyBE,iBAAiB;AACxC,QAAI;AACF,YAAM,CAACC,OAAAA,IAAW,MAAM,KAAKC,mBAAkB;AAC/C,YAAM,EAAEC,OAAM,IAAK,KAAKC;AACxBD,cAAQE,IAAI,uBAAuB,MAAMC,sCAAeC,SAASN,OAAAA,CAAAA,EAAU;AAC3E,aAAO;QAACA;;IACV,SAASO,GAAG;AACV,YAAM,IAAIC,MAAM,uBAAuBD,CAAAA,EAAG;IAC5C;EACF;EAEQE,eAAeC,MAAiC;AACtD,WAAO,IAAIC,QAAQ,CAACC,SAASC,WAAAA;AAC3B,YAAMC,aAAa,IAAIC,WAAAA;AACvBD,iBAAWE,iBAAiB,QAAQ,CAACC,UAAAA;AACnC,cAAMC,cAAcD,MAAME,QAAQC;AAClCR,gBAAQ,IAAIS,WAAWH,WAAAA,CAAAA;MACzB,CAAA;AAEAJ,iBAAWQ,UAAU,MAAMT,OAAOC,WAAWS,KAAK;AAElDT,iBAAWU,kBAAkBd,IAAAA;IAC/B,CAAA;EACF;EAEA,MAAcT,qBAAyD;AACrE,UAAMS,WAAOe,wBAAS,KAAKtB,OAAOO,MAAM,MAAM,6BAAA;AAC9C,UAAMgB,aAAa,MAAM,KAAKjB,eAAeC,IAAAA;AAC7C,UAAMU,SAAS,IAAIC,WAAWK,UAAAA;AAC9B,UAAMC,WAAOC,WAAAA,SAAM,QAAA,EAAUC,OAAOT,MAAAA,EAAQU,OAAO,KAAA,EAAOC,SAAS,IAAI,GAAA;AAEvE,WAAO;MACL;QACEJ;QACAK,QAAQN,WAAWO;QACnBC,MAAM;UACJC,MAAMzB,KAAKyB;UACXC,MAAM1B,KAAK0B;QACb;QACAC,UAAU3B,KAAK4B;QACfC,QAAQC;QACRC,KAAK,KAAKC,OAAOC,YAAY,aAAaC,gBAAgBlB,UAAAA,IAAchB,KAAKyB;MAC/E;MACAT;;EAEJ;AACF;;;AKhEA,2BAA+C;AAoBxC,IAAMmB,oBAAgBC,4CAAmCC,UAAAA;;;ACpBhE,IAAAC,wBAAiC;AACjC,+BAA8C;AAKvC,IAAMC,oBAAoB,iCAC/BC,wDACE;EAAEC,UAAU;IAAE,CAACC,UAAAA,GAAa;EAAE;EAAGC,QAAQC;AAAiB,GAC1D;EACEC,SAAS,8BAAOC,WAAAA;AACd,UAAMC,SAAS,MAAMC,mBAAmBC,OAAOH,MAAAA;AAC/C,WAAOC;EACT,GAHS;AAIX,CAAA,GAR6B;","names":["FileWitnessConfigSchema","FileSchema","generateDataUri","data","base64","encode","FileWitness","AbstractWitness","configSchemas","FileWitnessConfigSchema","defaultConfigSchema","observeHandler","payloads","schema","FileSchema","BrowserFileWitness","FileWitness","configSchemas","FileWitnessConfigSchema","defaultConfigSchema","observeHandler","payload","witnessBrowserFile","logger","params","log","PayloadBuilder","dataHash","e","Error","readBinaryFile","file","Promise","resolve","reject","fileReader","FileReader","addEventListener","event","arrayBuffer","target","result","Uint8Array","onerror","error","readAsArrayBuffer","assertEx","fileBinary","hash","shajs","update","digest","padStart","length","byteLength","meta","name","type","modified","lastModified","schema","FileSchema","uri","config","storage","generateDataUri","isFilePayload","isPayloadOfSchemaType","FileSchema","import_payload_model","BrowserFilePlugin","createPayloadSetWitnessPlugin","required","FileSchema","schema","PayloadSetSchema","witness","params","result","BrowserFileWitness","create"]}
1
+ {"version":3,"sources":["../../src/index.ts","../../src/BrowserFileWitness.ts","../../src/Config.ts","../../src/Schema.ts","../../src/util/GenerateDataUri.ts","../../src/Witness.ts","../../src/Payload.ts","../../src/PluginBrowser.ts"],"sourcesContent":["export * from './BrowserFileWitness.ts'\nexport * from './Config.ts'\nexport * from './Params.ts'\nexport * from './Payload.ts'\n// eslint-disable-next-line import/no-default-export\nexport { BrowserFilePlugin, BrowserFilePlugin as default } from './PluginBrowser.ts'\nexport * from './Schema.ts'\nexport * from './Witness.ts'\n","import { assertEx } from '@xylabs/assert'\nimport { PayloadBuilder } from '@xyo-network/payload-builder'\nimport { Schema } from '@xyo-network/payload-model'\nimport shajs from 'sha.js'\n\nimport { FileWitnessConfigSchema } from './Config.ts'\nimport { BrowserFileWitnessAdditionalParams } from './Params.ts'\nimport { FilePayload } from './Payload.ts'\nimport { FileSchema } from './Schema.ts'\nimport { generateDataUri } from './util/index.ts'\nimport { FileWitness, FileWitnessParams } 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}`)\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 hash = shajs('sha256').update(result).digest('hex').padStart(64, '0')\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 { WitnessConfig } from '@xyo-network/witness-model'\n\nexport type FileWitnessConfigSchema = 'network.xyo.file.witness.config'\nexport const FileWitnessConfigSchema: FileWitnessConfigSchema = 'network.xyo.file.witness.config'\n\nexport type FileWitnessConfig = WitnessConfig<{\n schema: FileWitnessConfigSchema\n storage?: 'data-uri'\n}>\n","export type FileSchema = 'network.xyo.file'\nexport const FileSchema: FileSchema = 'network.xyo.file'\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 { Promisable } from '@xylabs/promise'\nimport { AbstractWitness } from '@xyo-network/abstract-witness'\nimport { AnyConfigSchema } from '@xyo-network/module-model'\nimport { Payload, Schema } from '@xyo-network/payload-model'\nimport { WitnessModule, WitnessParams } from '@xyo-network/witness-model'\n\nimport { FileWitnessConfig, 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 { isPayloadOfSchemaType, Payload } 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/payloadset-plugin'\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"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACAA,oBAAyB;AACzB,6BAA+B;AAE/B,iBAAkB;;;ACAX,IAAM,0BAAmD;;;ACFzD,IAAM,aAAyB;;;ACDtC,kBAAuB;AAEhB,IAAM,kBAAkB,CAAC,SAA6B;AAC3D,SAAO,wCAAwC,mBAAO,OAAO,IAAI,CAAC;AACpE;;;ACHA,8BAAgC;AAWzB,IAAe,cAAf,cAA0F,wCAAkD;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;;;AJLO,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,sCAAe,SAAS,OAAO,CAAC,EAAE;AAC3E,aAAO,CAAC,OAAO;AAAA,IACjB,SAAS,GAAG;AACV,YAAM,IAAI,MAAM,uBAAuB,CAAC,EAAE;AAAA,IAC5C;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,WAAO,wBAAS,KAAK,OAAO,MAAM,MAAM,6BAA6B;AAC3E,UAAM,aAAa,MAAM,KAAK,eAAe,IAAI;AACjD,UAAM,SAAS,IAAI,WAAW,UAAU;AACxC,UAAM,WAAO,WAAAA,SAAM,QAAQ,EAAE,OAAO,MAAM,EAAE,OAAO,KAAK,EAAE,SAAS,IAAI,GAAG;AAE1E,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;;;AKhEA,2BAA+C;AAoBxC,IAAM,oBAAgB,4CAAmC,UAAU;;;ACpB1E,IAAAC,wBAAiC;AACjC,+BAA8C;AAKvC,IAAM,oBAAoB,UAC/B;AAAA,EACE,EAAE,UAAU,EAAE,CAAC,UAAU,GAAG,EAAE,GAAG,QAAQ,uCAAiB;AAAA,EAC1D;AAAA,IACE,SAAS,OAAO,WAAW;AACzB,YAAM,SAAS,MAAM,mBAAmB,OAAO,MAAM;AACrD,aAAO;AAAA,IACT;AAAA,EACF;AACF;","names":["shajs","import_payload_model"]}
@@ -1,6 +1,3 @@
1
- var __defProp = Object.defineProperty;
2
- var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
3
-
4
1
  // src/BrowserFileWitness.ts
5
2
  import { assertEx } from "@xylabs/assert";
6
3
  import { PayloadBuilder } from "@xyo-network/payload-builder";
@@ -14,49 +11,30 @@ var FileSchema = "network.xyo.file";
14
11
 
15
12
  // src/util/GenerateDataUri.ts
16
13
  import { base64 } from "@scure/base";
17
- var generateDataUri = /* @__PURE__ */ __name((data) => {
14
+ var generateDataUri = (data) => {
18
15
  return `data:application/octet-stream;base64,${base64.encode(data)}`;
19
- }, "generateDataUri");
16
+ };
20
17
 
21
18
  // src/Witness.ts
22
19
  import { AbstractWitness } from "@xyo-network/abstract-witness";
23
20
  var FileWitness = class extends AbstractWitness {
24
- static {
25
- __name(this, "FileWitness");
26
- }
27
- static configSchemas = [
28
- ...super.configSchemas,
29
- FileWitnessConfigSchema
30
- ];
21
+ static configSchemas = [...super.configSchemas, FileWitnessConfigSchema];
31
22
  static defaultConfigSchema = FileWitnessConfigSchema;
32
23
  observeHandler(payloads) {
33
- return [
34
- {
35
- ...payloads?.[0],
36
- schema: FileSchema
37
- }
38
- ];
24
+ return [{ ...payloads?.[0], schema: FileSchema }];
39
25
  }
40
26
  };
41
27
 
42
28
  // src/BrowserFileWitness.ts
43
29
  var BrowserFileWitness = class extends FileWitness {
44
- static {
45
- __name(this, "BrowserFileWitness");
46
- }
47
- static configSchemas = [
48
- ...super.configSchemas,
49
- FileWitnessConfigSchema
50
- ];
30
+ static configSchemas = [...super.configSchemas, FileWitnessConfigSchema];
51
31
  static defaultConfigSchema = FileWitnessConfigSchema;
52
32
  async observeHandler() {
53
33
  try {
54
34
  const [payload] = await this.witnessBrowserFile();
55
35
  const { logger } = this.params;
56
36
  logger?.log(`BrowserFileWitness: ${await PayloadBuilder.dataHash(payload)}`);
57
- return [
58
- payload
59
- ];
37
+ return [payload];
60
38
  } catch (e) {
61
39
  throw new Error(`Error reading file: ${e}`);
62
40
  }
@@ -101,17 +79,15 @@ var isFilePayload = isPayloadOfSchemaType(FileSchema);
101
79
  // src/PluginBrowser.ts
102
80
  import { PayloadSetSchema } from "@xyo-network/payload-model";
103
81
  import { createPayloadSetWitnessPlugin } from "@xyo-network/payloadset-plugin";
104
- var BrowserFilePlugin = /* @__PURE__ */ __name(() => createPayloadSetWitnessPlugin({
105
- required: {
106
- [FileSchema]: 1
107
- },
108
- schema: PayloadSetSchema
109
- }, {
110
- witness: /* @__PURE__ */ __name(async (params) => {
111
- const result = await BrowserFileWitness.create(params);
112
- return result;
113
- }, "witness")
114
- }), "BrowserFilePlugin");
82
+ var BrowserFilePlugin = () => createPayloadSetWitnessPlugin(
83
+ { required: { [FileSchema]: 1 }, schema: PayloadSetSchema },
84
+ {
85
+ witness: async (params) => {
86
+ const result = await BrowserFileWitness.create(params);
87
+ return result;
88
+ }
89
+ }
90
+ );
115
91
  export {
116
92
  BrowserFilePlugin,
117
93
  BrowserFileWitness,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/BrowserFileWitness.ts","../../src/Config.ts","../../src/Schema.ts","../../src/util/GenerateDataUri.ts","../../src/Witness.ts","../../src/Payload.ts","../../src/PluginBrowser.ts"],"sourcesContent":["import { assertEx } from '@xylabs/assert'\nimport { PayloadBuilder } from '@xyo-network/payload-builder'\nimport { Schema } from '@xyo-network/payload-model'\nimport shajs from 'sha.js'\n\nimport { FileWitnessConfigSchema } from './Config.ts'\nimport { BrowserFileWitnessAdditionalParams } from './Params.ts'\nimport { FilePayload } from './Payload.ts'\nimport { FileSchema } from './Schema.ts'\nimport { generateDataUri } from './util/index.ts'\nimport { FileWitness, FileWitnessParams } 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}`)\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 hash = shajs('sha256').update(result).digest('hex').padStart(64, '0')\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 { WitnessConfig } from '@xyo-network/witness-model'\n\nexport type FileWitnessConfigSchema = 'network.xyo.file.witness.config'\nexport const FileWitnessConfigSchema: FileWitnessConfigSchema = 'network.xyo.file.witness.config'\n\nexport type FileWitnessConfig = WitnessConfig<{\n schema: FileWitnessConfigSchema\n storage?: 'data-uri'\n}>\n","export type FileSchema = 'network.xyo.file'\nexport const FileSchema: FileSchema = 'network.xyo.file'\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 { Promisable } from '@xylabs/promise'\nimport { AbstractWitness } from '@xyo-network/abstract-witness'\nimport { AnyConfigSchema } from '@xyo-network/module-model'\nimport { Payload, Schema } from '@xyo-network/payload-model'\nimport { WitnessModule, WitnessParams } from '@xyo-network/witness-model'\n\nimport { FileWitnessConfig, 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 { isPayloadOfSchemaType, Payload } 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/payloadset-plugin'\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"],"mappings":";;;;AAAA,SAASA,gBAAgB;AACzB,SAASC,sBAAsB;AAE/B,OAAOC,WAAW;;;ACAX,IAAMC,0BAAmD;;;ACFzD,IAAMC,aAAyB;;;ACDtC,SAASC,cAAc;AAEhB,IAAMC,kBAAkB,wBAACC,SAAAA;AAC9B,SAAO,wCAAwCC,OAAOC,OAAOF,IAAAA,CAAAA;AAC/D,GAF+B;;;ACD/B,SAASG,uBAAuB;AAWzB,IAAeC,cAAf,cAA0FC,gBAAAA;EAXjG,OAWiGA;;;EAC/F,OAAyBC,gBAA0B;OAAI,MAAMA;IAAeC;;EAC5E,OAAyBC,sBAA8BD;EAEpCE,eAAeC,UAA6C;AAC7E,WAAO;MAAC;QAAE,GAAGA,WAAW,CAAA;QAAIC,QAAQC;MAAW;;EACjD;AACF;;;AJLO,IAAMC,qBAAN,cAAiCC,YAAAA;EAdxC,OAcwCA;;;EACtC,OAAyBC,gBAA0B;OAAI,MAAMA;IAAeC;;EAC5E,OAAyBC,sBAA8BD;EAEvD,MAAyBE,iBAAiB;AACxC,QAAI;AACF,YAAM,CAACC,OAAAA,IAAW,MAAM,KAAKC,mBAAkB;AAC/C,YAAM,EAAEC,OAAM,IAAK,KAAKC;AACxBD,cAAQE,IAAI,uBAAuB,MAAMC,eAAeC,SAASN,OAAAA,CAAAA,EAAU;AAC3E,aAAO;QAACA;;IACV,SAASO,GAAG;AACV,YAAM,IAAIC,MAAM,uBAAuBD,CAAAA,EAAG;IAC5C;EACF;EAEQE,eAAeC,MAAiC;AACtD,WAAO,IAAIC,QAAQ,CAACC,SAASC,WAAAA;AAC3B,YAAMC,aAAa,IAAIC,WAAAA;AACvBD,iBAAWE,iBAAiB,QAAQ,CAACC,UAAAA;AACnC,cAAMC,cAAcD,MAAME,QAAQC;AAClCR,gBAAQ,IAAIS,WAAWH,WAAAA,CAAAA;MACzB,CAAA;AAEAJ,iBAAWQ,UAAU,MAAMT,OAAOC,WAAWS,KAAK;AAElDT,iBAAWU,kBAAkBd,IAAAA;IAC/B,CAAA;EACF;EAEA,MAAcT,qBAAyD;AACrE,UAAMS,OAAOe,SAAS,KAAKtB,OAAOO,MAAM,MAAM,6BAAA;AAC9C,UAAMgB,aAAa,MAAM,KAAKjB,eAAeC,IAAAA;AAC7C,UAAMU,SAAS,IAAIC,WAAWK,UAAAA;AAC9B,UAAMC,OAAOC,MAAM,QAAA,EAAUC,OAAOT,MAAAA,EAAQU,OAAO,KAAA,EAAOC,SAAS,IAAI,GAAA;AAEvE,WAAO;MACL;QACEJ;QACAK,QAAQN,WAAWO;QACnBC,MAAM;UACJC,MAAMzB,KAAKyB;UACXC,MAAM1B,KAAK0B;QACb;QACAC,UAAU3B,KAAK4B;QACfC,QAAQC;QACRC,KAAK,KAAKC,OAAOC,YAAY,aAAaC,gBAAgBlB,UAAAA,IAAchB,KAAKyB;MAC/E;MACAT;;EAEJ;AACF;;;AKhEA,SAASmB,6BAAsC;AAoBxC,IAAMC,gBAAgBC,sBAAmCC,UAAAA;;;ACpBhE,SAASC,wBAAwB;AACjC,SAASC,qCAAqC;AAKvC,IAAMC,oBAAoB,6BAC/BC,8BACE;EAAEC,UAAU;IAAE,CAACC,UAAAA,GAAa;EAAE;EAAGC,QAAQC;AAAiB,GAC1D;EACEC,SAAS,8BAAOC,WAAAA;AACd,UAAMC,SAAS,MAAMC,mBAAmBC,OAAOH,MAAAA;AAC/C,WAAOC;EACT,GAHS;AAIX,CAAA,GAR6B;","names":["assertEx","PayloadBuilder","shajs","FileWitnessConfigSchema","FileSchema","base64","generateDataUri","data","base64","encode","AbstractWitness","FileWitness","AbstractWitness","configSchemas","FileWitnessConfigSchema","defaultConfigSchema","observeHandler","payloads","schema","FileSchema","BrowserFileWitness","FileWitness","configSchemas","FileWitnessConfigSchema","defaultConfigSchema","observeHandler","payload","witnessBrowserFile","logger","params","log","PayloadBuilder","dataHash","e","Error","readBinaryFile","file","Promise","resolve","reject","fileReader","FileReader","addEventListener","event","arrayBuffer","target","result","Uint8Array","onerror","error","readAsArrayBuffer","assertEx","fileBinary","hash","shajs","update","digest","padStart","length","byteLength","meta","name","type","modified","lastModified","schema","FileSchema","uri","config","storage","generateDataUri","isPayloadOfSchemaType","isFilePayload","isPayloadOfSchemaType","FileSchema","PayloadSetSchema","createPayloadSetWitnessPlugin","BrowserFilePlugin","createPayloadSetWitnessPlugin","required","FileSchema","schema","PayloadSetSchema","witness","params","result","BrowserFileWitness","create"]}
1
+ {"version":3,"sources":["../../src/BrowserFileWitness.ts","../../src/Config.ts","../../src/Schema.ts","../../src/util/GenerateDataUri.ts","../../src/Witness.ts","../../src/Payload.ts","../../src/PluginBrowser.ts"],"sourcesContent":["import { assertEx } from '@xylabs/assert'\nimport { PayloadBuilder } from '@xyo-network/payload-builder'\nimport { Schema } from '@xyo-network/payload-model'\nimport shajs from 'sha.js'\n\nimport { FileWitnessConfigSchema } from './Config.ts'\nimport { BrowserFileWitnessAdditionalParams } from './Params.ts'\nimport { FilePayload } from './Payload.ts'\nimport { FileSchema } from './Schema.ts'\nimport { generateDataUri } from './util/index.ts'\nimport { FileWitness, FileWitnessParams } 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}`)\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 hash = shajs('sha256').update(result).digest('hex').padStart(64, '0')\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 { WitnessConfig } from '@xyo-network/witness-model'\n\nexport type FileWitnessConfigSchema = 'network.xyo.file.witness.config'\nexport const FileWitnessConfigSchema: FileWitnessConfigSchema = 'network.xyo.file.witness.config'\n\nexport type FileWitnessConfig = WitnessConfig<{\n schema: FileWitnessConfigSchema\n storage?: 'data-uri'\n}>\n","export type FileSchema = 'network.xyo.file'\nexport const FileSchema: FileSchema = 'network.xyo.file'\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 { Promisable } from '@xylabs/promise'\nimport { AbstractWitness } from '@xyo-network/abstract-witness'\nimport { AnyConfigSchema } from '@xyo-network/module-model'\nimport { Payload, Schema } from '@xyo-network/payload-model'\nimport { WitnessModule, WitnessParams } from '@xyo-network/witness-model'\n\nimport { FileWitnessConfig, 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 { isPayloadOfSchemaType, Payload } 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/payloadset-plugin'\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"],"mappings":";AAAA,SAAS,gBAAgB;AACzB,SAAS,sBAAsB;AAE/B,OAAO,WAAW;;;ACAX,IAAM,0BAAmD;;;ACFzD,IAAM,aAAyB;;;ACDtC,SAAS,cAAc;AAEhB,IAAM,kBAAkB,CAAC,SAA6B;AAC3D,SAAO,wCAAwC,OAAO,OAAO,IAAI,CAAC;AACpE;;;ACHA,SAAS,uBAAuB;AAWzB,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;;;AJLO,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,EAAE;AAAA,IAC5C;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,OAAO,MAAM,QAAQ,EAAE,OAAO,MAAM,EAAE,OAAO,KAAK,EAAE,SAAS,IAAI,GAAG;AAE1E,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;;;AKhEA,SAAS,6BAAsC;AAoBxC,IAAM,gBAAgB,sBAAmC,UAAU;;;ACpB1E,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;","names":[]}
@@ -5,7 +5,6 @@ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
5
  var __getOwnPropNames = Object.getOwnPropertyNames;
6
6
  var __getProtoOf = Object.getPrototypeOf;
7
7
  var __hasOwnProp = Object.prototype.hasOwnProperty;
8
- var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
9
8
  var __export = (target, all) => {
10
9
  for (var name in all)
11
10
  __defProp(target, name, { get: all[name], enumerable: true });
@@ -54,49 +53,30 @@ var FileSchema = "network.xyo.file";
54
53
 
55
54
  // src/util/GenerateDataUri.ts
56
55
  var import_base = require("@scure/base");
57
- var generateDataUri = /* @__PURE__ */ __name((data) => {
56
+ var generateDataUri = (data) => {
58
57
  return `data:application/octet-stream;base64,${import_base.base64.encode(data)}`;
59
- }, "generateDataUri");
58
+ };
60
59
 
61
60
  // src/Witness.ts
62
61
  var import_abstract_witness = require("@xyo-network/abstract-witness");
63
62
  var FileWitness = class extends import_abstract_witness.AbstractWitness {
64
- static {
65
- __name(this, "FileWitness");
66
- }
67
- static configSchemas = [
68
- ...super.configSchemas,
69
- FileWitnessConfigSchema
70
- ];
63
+ static configSchemas = [...super.configSchemas, FileWitnessConfigSchema];
71
64
  static defaultConfigSchema = FileWitnessConfigSchema;
72
65
  observeHandler(payloads) {
73
- return [
74
- {
75
- ...payloads?.[0],
76
- schema: FileSchema
77
- }
78
- ];
66
+ return [{ ...payloads?.[0], schema: FileSchema }];
79
67
  }
80
68
  };
81
69
 
82
70
  // src/BrowserFileWitness.ts
83
71
  var BrowserFileWitness = class extends FileWitness {
84
- static {
85
- __name(this, "BrowserFileWitness");
86
- }
87
- static configSchemas = [
88
- ...super.configSchemas,
89
- FileWitnessConfigSchema
90
- ];
72
+ static configSchemas = [...super.configSchemas, FileWitnessConfigSchema];
91
73
  static defaultConfigSchema = FileWitnessConfigSchema;
92
74
  async observeHandler() {
93
75
  try {
94
76
  const [payload] = await this.witnessBrowserFile();
95
77
  const { logger } = this.params;
96
78
  logger?.log(`BrowserFileWitness: ${await import_payload_builder.PayloadBuilder.dataHash(payload)}`);
97
- return [
98
- payload
99
- ];
79
+ return [payload];
100
80
  } catch (e) {
101
81
  throw new Error(`Error reading file: ${e}`);
102
82
  }
@@ -141,15 +121,13 @@ var isFilePayload = (0, import_payload_model.isPayloadOfSchemaType)(FileSchema);
141
121
  // src/PluginBrowser.ts
142
122
  var import_payload_model2 = require("@xyo-network/payload-model");
143
123
  var import_payloadset_plugin = require("@xyo-network/payloadset-plugin");
144
- var BrowserFilePlugin = /* @__PURE__ */ __name(() => (0, import_payloadset_plugin.createPayloadSetWitnessPlugin)({
145
- required: {
146
- [FileSchema]: 1
147
- },
148
- schema: import_payload_model2.PayloadSetSchema
149
- }, {
150
- witness: /* @__PURE__ */ __name(async (params) => {
151
- const result = await BrowserFileWitness.create(params);
152
- return result;
153
- }, "witness")
154
- }), "BrowserFilePlugin");
124
+ var BrowserFilePlugin = () => (0, import_payloadset_plugin.createPayloadSetWitnessPlugin)(
125
+ { required: { [FileSchema]: 1 }, schema: import_payload_model2.PayloadSetSchema },
126
+ {
127
+ witness: async (params) => {
128
+ const result = await BrowserFileWitness.create(params);
129
+ return result;
130
+ }
131
+ }
132
+ );
155
133
  //# sourceMappingURL=index.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/index.ts","../../src/BrowserFileWitness.ts","../../src/Config.ts","../../src/Schema.ts","../../src/util/GenerateDataUri.ts","../../src/Witness.ts","../../src/Payload.ts","../../src/PluginBrowser.ts"],"sourcesContent":["export * from './BrowserFileWitness.ts'\nexport * from './Config.ts'\nexport * from './Params.ts'\nexport * from './Payload.ts'\n// eslint-disable-next-line import/no-default-export\nexport { BrowserFilePlugin, BrowserFilePlugin as default } from './PluginBrowser.ts'\nexport * from './Schema.ts'\nexport * from './Witness.ts'\n","import { assertEx } from '@xylabs/assert'\nimport { PayloadBuilder } from '@xyo-network/payload-builder'\nimport { Schema } from '@xyo-network/payload-model'\nimport shajs from 'sha.js'\n\nimport { FileWitnessConfigSchema } from './Config.ts'\nimport { BrowserFileWitnessAdditionalParams } from './Params.ts'\nimport { FilePayload } from './Payload.ts'\nimport { FileSchema } from './Schema.ts'\nimport { generateDataUri } from './util/index.ts'\nimport { FileWitness, FileWitnessParams } 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}`)\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 hash = shajs('sha256').update(result).digest('hex').padStart(64, '0')\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 { WitnessConfig } from '@xyo-network/witness-model'\n\nexport type FileWitnessConfigSchema = 'network.xyo.file.witness.config'\nexport const FileWitnessConfigSchema: FileWitnessConfigSchema = 'network.xyo.file.witness.config'\n\nexport type FileWitnessConfig = WitnessConfig<{\n schema: FileWitnessConfigSchema\n storage?: 'data-uri'\n}>\n","export type FileSchema = 'network.xyo.file'\nexport const FileSchema: FileSchema = 'network.xyo.file'\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 { Promisable } from '@xylabs/promise'\nimport { AbstractWitness } from '@xyo-network/abstract-witness'\nimport { AnyConfigSchema } from '@xyo-network/module-model'\nimport { Payload, Schema } from '@xyo-network/payload-model'\nimport { WitnessModule, WitnessParams } from '@xyo-network/witness-model'\n\nimport { FileWitnessConfig, 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 { isPayloadOfSchemaType, Payload } 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/payloadset-plugin'\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"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;;;;;;;;;;;;ACAA,oBAAyB;AACzB,6BAA+B;AAE/B,iBAAkB;;;ACAX,IAAMA,0BAAmD;;;ACFzD,IAAMC,aAAyB;;;ACDtC,kBAAuB;AAEhB,IAAMC,kBAAkB,wBAACC,SAAAA;AAC9B,SAAO,wCAAwCC,mBAAOC,OAAOF,IAAAA,CAAAA;AAC/D,GAF+B;;;ACD/B,8BAAgC;AAWzB,IAAeG,cAAf,cAA0FC,wCAAAA;EAXjG,OAWiGA;;;EAC/F,OAAyBC,gBAA0B;OAAI,MAAMA;IAAeC;;EAC5E,OAAyBC,sBAA8BD;EAEpCE,eAAeC,UAA6C;AAC7E,WAAO;MAAC;QAAE,GAAGA,WAAW,CAAA;QAAIC,QAAQC;MAAW;;EACjD;AACF;;;AJLO,IAAMC,qBAAN,cAAiCC,YAAAA;EAdxC,OAcwCA;;;EACtC,OAAyBC,gBAA0B;OAAI,MAAMA;IAAeC;;EAC5E,OAAyBC,sBAA8BD;EAEvD,MAAyBE,iBAAiB;AACxC,QAAI;AACF,YAAM,CAACC,OAAAA,IAAW,MAAM,KAAKC,mBAAkB;AAC/C,YAAM,EAAEC,OAAM,IAAK,KAAKC;AACxBD,cAAQE,IAAI,uBAAuB,MAAMC,sCAAeC,SAASN,OAAAA,CAAAA,EAAU;AAC3E,aAAO;QAACA;;IACV,SAASO,GAAG;AACV,YAAM,IAAIC,MAAM,uBAAuBD,CAAAA,EAAG;IAC5C;EACF;EAEQE,eAAeC,MAAiC;AACtD,WAAO,IAAIC,QAAQ,CAACC,SAASC,WAAAA;AAC3B,YAAMC,aAAa,IAAIC,WAAAA;AACvBD,iBAAWE,iBAAiB,QAAQ,CAACC,UAAAA;AACnC,cAAMC,cAAcD,MAAME,QAAQC;AAClCR,gBAAQ,IAAIS,WAAWH,WAAAA,CAAAA;MACzB,CAAA;AAEAJ,iBAAWQ,UAAU,MAAMT,OAAOC,WAAWS,KAAK;AAElDT,iBAAWU,kBAAkBd,IAAAA;IAC/B,CAAA;EACF;EAEA,MAAcT,qBAAyD;AACrE,UAAMS,WAAOe,wBAAS,KAAKtB,OAAOO,MAAM,MAAM,6BAAA;AAC9C,UAAMgB,aAAa,MAAM,KAAKjB,eAAeC,IAAAA;AAC7C,UAAMU,SAAS,IAAIC,WAAWK,UAAAA;AAC9B,UAAMC,WAAOC,WAAAA,SAAM,QAAA,EAAUC,OAAOT,MAAAA,EAAQU,OAAO,KAAA,EAAOC,SAAS,IAAI,GAAA;AAEvE,WAAO;MACL;QACEJ;QACAK,QAAQN,WAAWO;QACnBC,MAAM;UACJC,MAAMzB,KAAKyB;UACXC,MAAM1B,KAAK0B;QACb;QACAC,UAAU3B,KAAK4B;QACfC,QAAQC;QACRC,KAAK,KAAKC,OAAOC,YAAY,aAAaC,gBAAgBlB,UAAAA,IAAchB,KAAKyB;MAC/E;MACAT;;EAEJ;AACF;;;AKhEA,2BAA+C;AAoBxC,IAAMmB,oBAAgBC,4CAAmCC,UAAAA;;;ACpBhE,IAAAC,wBAAiC;AACjC,+BAA8C;AAKvC,IAAMC,oBAAoB,iCAC/BC,wDACE;EAAEC,UAAU;IAAE,CAACC,UAAAA,GAAa;EAAE;EAAGC,QAAQC;AAAiB,GAC1D;EACEC,SAAS,8BAAOC,WAAAA;AACd,UAAMC,SAAS,MAAMC,mBAAmBC,OAAOH,MAAAA;AAC/C,WAAOC;EACT,GAHS;AAIX,CAAA,GAR6B;","names":["FileWitnessConfigSchema","FileSchema","generateDataUri","data","base64","encode","FileWitness","AbstractWitness","configSchemas","FileWitnessConfigSchema","defaultConfigSchema","observeHandler","payloads","schema","FileSchema","BrowserFileWitness","FileWitness","configSchemas","FileWitnessConfigSchema","defaultConfigSchema","observeHandler","payload","witnessBrowserFile","logger","params","log","PayloadBuilder","dataHash","e","Error","readBinaryFile","file","Promise","resolve","reject","fileReader","FileReader","addEventListener","event","arrayBuffer","target","result","Uint8Array","onerror","error","readAsArrayBuffer","assertEx","fileBinary","hash","shajs","update","digest","padStart","length","byteLength","meta","name","type","modified","lastModified","schema","FileSchema","uri","config","storage","generateDataUri","isFilePayload","isPayloadOfSchemaType","FileSchema","import_payload_model","BrowserFilePlugin","createPayloadSetWitnessPlugin","required","FileSchema","schema","PayloadSetSchema","witness","params","result","BrowserFileWitness","create"]}
1
+ {"version":3,"sources":["../../src/index.ts","../../src/BrowserFileWitness.ts","../../src/Config.ts","../../src/Schema.ts","../../src/util/GenerateDataUri.ts","../../src/Witness.ts","../../src/Payload.ts","../../src/PluginBrowser.ts"],"sourcesContent":["export * from './BrowserFileWitness.ts'\nexport * from './Config.ts'\nexport * from './Params.ts'\nexport * from './Payload.ts'\n// eslint-disable-next-line import/no-default-export\nexport { BrowserFilePlugin, BrowserFilePlugin as default } from './PluginBrowser.ts'\nexport * from './Schema.ts'\nexport * from './Witness.ts'\n","import { assertEx } from '@xylabs/assert'\nimport { PayloadBuilder } from '@xyo-network/payload-builder'\nimport { Schema } from '@xyo-network/payload-model'\nimport shajs from 'sha.js'\n\nimport { FileWitnessConfigSchema } from './Config.ts'\nimport { BrowserFileWitnessAdditionalParams } from './Params.ts'\nimport { FilePayload } from './Payload.ts'\nimport { FileSchema } from './Schema.ts'\nimport { generateDataUri } from './util/index.ts'\nimport { FileWitness, FileWitnessParams } 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}`)\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 hash = shajs('sha256').update(result).digest('hex').padStart(64, '0')\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 { WitnessConfig } from '@xyo-network/witness-model'\n\nexport type FileWitnessConfigSchema = 'network.xyo.file.witness.config'\nexport const FileWitnessConfigSchema: FileWitnessConfigSchema = 'network.xyo.file.witness.config'\n\nexport type FileWitnessConfig = WitnessConfig<{\n schema: FileWitnessConfigSchema\n storage?: 'data-uri'\n}>\n","export type FileSchema = 'network.xyo.file'\nexport const FileSchema: FileSchema = 'network.xyo.file'\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 { Promisable } from '@xylabs/promise'\nimport { AbstractWitness } from '@xyo-network/abstract-witness'\nimport { AnyConfigSchema } from '@xyo-network/module-model'\nimport { Payload, Schema } from '@xyo-network/payload-model'\nimport { WitnessModule, WitnessParams } from '@xyo-network/witness-model'\n\nimport { FileWitnessConfig, 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 { isPayloadOfSchemaType, Payload } 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/payloadset-plugin'\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"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACAA,oBAAyB;AACzB,6BAA+B;AAE/B,iBAAkB;;;ACAX,IAAM,0BAAmD;;;ACFzD,IAAM,aAAyB;;;ACDtC,kBAAuB;AAEhB,IAAM,kBAAkB,CAAC,SAA6B;AAC3D,SAAO,wCAAwC,mBAAO,OAAO,IAAI,CAAC;AACpE;;;ACHA,8BAAgC;AAWzB,IAAe,cAAf,cAA0F,wCAAkD;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;;;AJLO,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,sCAAe,SAAS,OAAO,CAAC,EAAE;AAC3E,aAAO,CAAC,OAAO;AAAA,IACjB,SAAS,GAAG;AACV,YAAM,IAAI,MAAM,uBAAuB,CAAC,EAAE;AAAA,IAC5C;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,WAAO,wBAAS,KAAK,OAAO,MAAM,MAAM,6BAA6B;AAC3E,UAAM,aAAa,MAAM,KAAK,eAAe,IAAI;AACjD,UAAM,SAAS,IAAI,WAAW,UAAU;AACxC,UAAM,WAAO,WAAAA,SAAM,QAAQ,EAAE,OAAO,MAAM,EAAE,OAAO,KAAK,EAAE,SAAS,IAAI,GAAG;AAE1E,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;;;AKhEA,2BAA+C;AAoBxC,IAAM,oBAAgB,4CAAmC,UAAU;;;ACpB1E,IAAAC,wBAAiC;AACjC,+BAA8C;AAKvC,IAAM,oBAAoB,UAC/B;AAAA,EACE,EAAE,UAAU,EAAE,CAAC,UAAU,GAAG,EAAE,GAAG,QAAQ,uCAAiB;AAAA,EAC1D;AAAA,IACE,SAAS,OAAO,WAAW;AACzB,YAAM,SAAS,MAAM,mBAAmB,OAAO,MAAM;AACrD,aAAO;AAAA,IACT;AAAA,EACF;AACF;","names":["shajs","import_payload_model"]}
@@ -1,6 +1,3 @@
1
- var __defProp = Object.defineProperty;
2
- var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
3
-
4
1
  // src/BrowserFileWitness.ts
5
2
  import { assertEx } from "@xylabs/assert";
6
3
  import { PayloadBuilder } from "@xyo-network/payload-builder";
@@ -14,49 +11,30 @@ var FileSchema = "network.xyo.file";
14
11
 
15
12
  // src/util/GenerateDataUri.ts
16
13
  import { base64 } from "@scure/base";
17
- var generateDataUri = /* @__PURE__ */ __name((data) => {
14
+ var generateDataUri = (data) => {
18
15
  return `data:application/octet-stream;base64,${base64.encode(data)}`;
19
- }, "generateDataUri");
16
+ };
20
17
 
21
18
  // src/Witness.ts
22
19
  import { AbstractWitness } from "@xyo-network/abstract-witness";
23
20
  var FileWitness = class extends AbstractWitness {
24
- static {
25
- __name(this, "FileWitness");
26
- }
27
- static configSchemas = [
28
- ...super.configSchemas,
29
- FileWitnessConfigSchema
30
- ];
21
+ static configSchemas = [...super.configSchemas, FileWitnessConfigSchema];
31
22
  static defaultConfigSchema = FileWitnessConfigSchema;
32
23
  observeHandler(payloads) {
33
- return [
34
- {
35
- ...payloads?.[0],
36
- schema: FileSchema
37
- }
38
- ];
24
+ return [{ ...payloads?.[0], schema: FileSchema }];
39
25
  }
40
26
  };
41
27
 
42
28
  // src/BrowserFileWitness.ts
43
29
  var BrowserFileWitness = class extends FileWitness {
44
- static {
45
- __name(this, "BrowserFileWitness");
46
- }
47
- static configSchemas = [
48
- ...super.configSchemas,
49
- FileWitnessConfigSchema
50
- ];
30
+ static configSchemas = [...super.configSchemas, FileWitnessConfigSchema];
51
31
  static defaultConfigSchema = FileWitnessConfigSchema;
52
32
  async observeHandler() {
53
33
  try {
54
34
  const [payload] = await this.witnessBrowserFile();
55
35
  const { logger } = this.params;
56
36
  logger?.log(`BrowserFileWitness: ${await PayloadBuilder.dataHash(payload)}`);
57
- return [
58
- payload
59
- ];
37
+ return [payload];
60
38
  } catch (e) {
61
39
  throw new Error(`Error reading file: ${e}`);
62
40
  }
@@ -101,17 +79,15 @@ var isFilePayload = isPayloadOfSchemaType(FileSchema);
101
79
  // src/PluginBrowser.ts
102
80
  import { PayloadSetSchema } from "@xyo-network/payload-model";
103
81
  import { createPayloadSetWitnessPlugin } from "@xyo-network/payloadset-plugin";
104
- var BrowserFilePlugin = /* @__PURE__ */ __name(() => createPayloadSetWitnessPlugin({
105
- required: {
106
- [FileSchema]: 1
107
- },
108
- schema: PayloadSetSchema
109
- }, {
110
- witness: /* @__PURE__ */ __name(async (params) => {
111
- const result = await BrowserFileWitness.create(params);
112
- return result;
113
- }, "witness")
114
- }), "BrowserFilePlugin");
82
+ var BrowserFilePlugin = () => createPayloadSetWitnessPlugin(
83
+ { required: { [FileSchema]: 1 }, schema: PayloadSetSchema },
84
+ {
85
+ witness: async (params) => {
86
+ const result = await BrowserFileWitness.create(params);
87
+ return result;
88
+ }
89
+ }
90
+ );
115
91
  export {
116
92
  BrowserFilePlugin,
117
93
  BrowserFileWitness,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/BrowserFileWitness.ts","../../src/Config.ts","../../src/Schema.ts","../../src/util/GenerateDataUri.ts","../../src/Witness.ts","../../src/Payload.ts","../../src/PluginBrowser.ts"],"sourcesContent":["import { assertEx } from '@xylabs/assert'\nimport { PayloadBuilder } from '@xyo-network/payload-builder'\nimport { Schema } from '@xyo-network/payload-model'\nimport shajs from 'sha.js'\n\nimport { FileWitnessConfigSchema } from './Config.ts'\nimport { BrowserFileWitnessAdditionalParams } from './Params.ts'\nimport { FilePayload } from './Payload.ts'\nimport { FileSchema } from './Schema.ts'\nimport { generateDataUri } from './util/index.ts'\nimport { FileWitness, FileWitnessParams } 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}`)\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 hash = shajs('sha256').update(result).digest('hex').padStart(64, '0')\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 { WitnessConfig } from '@xyo-network/witness-model'\n\nexport type FileWitnessConfigSchema = 'network.xyo.file.witness.config'\nexport const FileWitnessConfigSchema: FileWitnessConfigSchema = 'network.xyo.file.witness.config'\n\nexport type FileWitnessConfig = WitnessConfig<{\n schema: FileWitnessConfigSchema\n storage?: 'data-uri'\n}>\n","export type FileSchema = 'network.xyo.file'\nexport const FileSchema: FileSchema = 'network.xyo.file'\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 { Promisable } from '@xylabs/promise'\nimport { AbstractWitness } from '@xyo-network/abstract-witness'\nimport { AnyConfigSchema } from '@xyo-network/module-model'\nimport { Payload, Schema } from '@xyo-network/payload-model'\nimport { WitnessModule, WitnessParams } from '@xyo-network/witness-model'\n\nimport { FileWitnessConfig, 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 { isPayloadOfSchemaType, Payload } 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/payloadset-plugin'\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"],"mappings":";;;;AAAA,SAASA,gBAAgB;AACzB,SAASC,sBAAsB;AAE/B,OAAOC,WAAW;;;ACAX,IAAMC,0BAAmD;;;ACFzD,IAAMC,aAAyB;;;ACDtC,SAASC,cAAc;AAEhB,IAAMC,kBAAkB,wBAACC,SAAAA;AAC9B,SAAO,wCAAwCC,OAAOC,OAAOF,IAAAA,CAAAA;AAC/D,GAF+B;;;ACD/B,SAASG,uBAAuB;AAWzB,IAAeC,cAAf,cAA0FC,gBAAAA;EAXjG,OAWiGA;;;EAC/F,OAAyBC,gBAA0B;OAAI,MAAMA;IAAeC;;EAC5E,OAAyBC,sBAA8BD;EAEpCE,eAAeC,UAA6C;AAC7E,WAAO;MAAC;QAAE,GAAGA,WAAW,CAAA;QAAIC,QAAQC;MAAW;;EACjD;AACF;;;AJLO,IAAMC,qBAAN,cAAiCC,YAAAA;EAdxC,OAcwCA;;;EACtC,OAAyBC,gBAA0B;OAAI,MAAMA;IAAeC;;EAC5E,OAAyBC,sBAA8BD;EAEvD,MAAyBE,iBAAiB;AACxC,QAAI;AACF,YAAM,CAACC,OAAAA,IAAW,MAAM,KAAKC,mBAAkB;AAC/C,YAAM,EAAEC,OAAM,IAAK,KAAKC;AACxBD,cAAQE,IAAI,uBAAuB,MAAMC,eAAeC,SAASN,OAAAA,CAAAA,EAAU;AAC3E,aAAO;QAACA;;IACV,SAASO,GAAG;AACV,YAAM,IAAIC,MAAM,uBAAuBD,CAAAA,EAAG;IAC5C;EACF;EAEQE,eAAeC,MAAiC;AACtD,WAAO,IAAIC,QAAQ,CAACC,SAASC,WAAAA;AAC3B,YAAMC,aAAa,IAAIC,WAAAA;AACvBD,iBAAWE,iBAAiB,QAAQ,CAACC,UAAAA;AACnC,cAAMC,cAAcD,MAAME,QAAQC;AAClCR,gBAAQ,IAAIS,WAAWH,WAAAA,CAAAA;MACzB,CAAA;AAEAJ,iBAAWQ,UAAU,MAAMT,OAAOC,WAAWS,KAAK;AAElDT,iBAAWU,kBAAkBd,IAAAA;IAC/B,CAAA;EACF;EAEA,MAAcT,qBAAyD;AACrE,UAAMS,OAAOe,SAAS,KAAKtB,OAAOO,MAAM,MAAM,6BAAA;AAC9C,UAAMgB,aAAa,MAAM,KAAKjB,eAAeC,IAAAA;AAC7C,UAAMU,SAAS,IAAIC,WAAWK,UAAAA;AAC9B,UAAMC,OAAOC,MAAM,QAAA,EAAUC,OAAOT,MAAAA,EAAQU,OAAO,KAAA,EAAOC,SAAS,IAAI,GAAA;AAEvE,WAAO;MACL;QACEJ;QACAK,QAAQN,WAAWO;QACnBC,MAAM;UACJC,MAAMzB,KAAKyB;UACXC,MAAM1B,KAAK0B;QACb;QACAC,UAAU3B,KAAK4B;QACfC,QAAQC;QACRC,KAAK,KAAKC,OAAOC,YAAY,aAAaC,gBAAgBlB,UAAAA,IAAchB,KAAKyB;MAC/E;MACAT;;EAEJ;AACF;;;AKhEA,SAASmB,6BAAsC;AAoBxC,IAAMC,gBAAgBC,sBAAmCC,UAAAA;;;ACpBhE,SAASC,wBAAwB;AACjC,SAASC,qCAAqC;AAKvC,IAAMC,oBAAoB,6BAC/BC,8BACE;EAAEC,UAAU;IAAE,CAACC,UAAAA,GAAa;EAAE;EAAGC,QAAQC;AAAiB,GAC1D;EACEC,SAAS,8BAAOC,WAAAA;AACd,UAAMC,SAAS,MAAMC,mBAAmBC,OAAOH,MAAAA;AAC/C,WAAOC;EACT,GAHS;AAIX,CAAA,GAR6B;","names":["assertEx","PayloadBuilder","shajs","FileWitnessConfigSchema","FileSchema","base64","generateDataUri","data","base64","encode","AbstractWitness","FileWitness","AbstractWitness","configSchemas","FileWitnessConfigSchema","defaultConfigSchema","observeHandler","payloads","schema","FileSchema","BrowserFileWitness","FileWitness","configSchemas","FileWitnessConfigSchema","defaultConfigSchema","observeHandler","payload","witnessBrowserFile","logger","params","log","PayloadBuilder","dataHash","e","Error","readBinaryFile","file","Promise","resolve","reject","fileReader","FileReader","addEventListener","event","arrayBuffer","target","result","Uint8Array","onerror","error","readAsArrayBuffer","assertEx","fileBinary","hash","shajs","update","digest","padStart","length","byteLength","meta","name","type","modified","lastModified","schema","FileSchema","uri","config","storage","generateDataUri","isPayloadOfSchemaType","isFilePayload","isPayloadOfSchemaType","FileSchema","PayloadSetSchema","createPayloadSetWitnessPlugin","BrowserFilePlugin","createPayloadSetWitnessPlugin","required","FileSchema","schema","PayloadSetSchema","witness","params","result","BrowserFileWitness","create"]}
1
+ {"version":3,"sources":["../../src/BrowserFileWitness.ts","../../src/Config.ts","../../src/Schema.ts","../../src/util/GenerateDataUri.ts","../../src/Witness.ts","../../src/Payload.ts","../../src/PluginBrowser.ts"],"sourcesContent":["import { assertEx } from '@xylabs/assert'\nimport { PayloadBuilder } from '@xyo-network/payload-builder'\nimport { Schema } from '@xyo-network/payload-model'\nimport shajs from 'sha.js'\n\nimport { FileWitnessConfigSchema } from './Config.ts'\nimport { BrowserFileWitnessAdditionalParams } from './Params.ts'\nimport { FilePayload } from './Payload.ts'\nimport { FileSchema } from './Schema.ts'\nimport { generateDataUri } from './util/index.ts'\nimport { FileWitness, FileWitnessParams } 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}`)\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 hash = shajs('sha256').update(result).digest('hex').padStart(64, '0')\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 { WitnessConfig } from '@xyo-network/witness-model'\n\nexport type FileWitnessConfigSchema = 'network.xyo.file.witness.config'\nexport const FileWitnessConfigSchema: FileWitnessConfigSchema = 'network.xyo.file.witness.config'\n\nexport type FileWitnessConfig = WitnessConfig<{\n schema: FileWitnessConfigSchema\n storage?: 'data-uri'\n}>\n","export type FileSchema = 'network.xyo.file'\nexport const FileSchema: FileSchema = 'network.xyo.file'\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 { Promisable } from '@xylabs/promise'\nimport { AbstractWitness } from '@xyo-network/abstract-witness'\nimport { AnyConfigSchema } from '@xyo-network/module-model'\nimport { Payload, Schema } from '@xyo-network/payload-model'\nimport { WitnessModule, WitnessParams } from '@xyo-network/witness-model'\n\nimport { FileWitnessConfig, 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 { isPayloadOfSchemaType, Payload } 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/payloadset-plugin'\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"],"mappings":";AAAA,SAAS,gBAAgB;AACzB,SAAS,sBAAsB;AAE/B,OAAO,WAAW;;;ACAX,IAAM,0BAAmD;;;ACFzD,IAAM,aAAyB;;;ACDtC,SAAS,cAAc;AAEhB,IAAM,kBAAkB,CAAC,SAA6B;AAC3D,SAAO,wCAAwC,OAAO,OAAO,IAAI,CAAC;AACpE;;;ACHA,SAAS,uBAAuB;AAWzB,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;;;AJLO,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,EAAE;AAAA,IAC5C;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,OAAO,MAAM,QAAQ,EAAE,OAAO,MAAM,EAAE,OAAO,KAAK,EAAE,SAAS,IAAI,GAAG;AAE1E,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;;;AKhEA,SAAS,6BAAsC;AAoBxC,IAAM,gBAAgB,sBAAmC,UAAU;;;ACpB1E,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;","names":[]}
@@ -5,9 +5,6 @@ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
5
  var __getOwnPropNames = Object.getOwnPropertyNames;
6
6
  var __getProtoOf = Object.getPrototypeOf;
7
7
  var __hasOwnProp = Object.prototype.hasOwnProperty;
8
- var __reflectGet = Reflect.get;
9
- var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
10
- var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
11
8
  var __export = (target, all) => {
12
9
  for (var name in all)
13
10
  __defProp(target, name, { get: all[name], enumerable: true });
@@ -29,8 +26,6 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
29
26
  mod
30
27
  ));
31
28
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
32
- var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
33
- var __superGet = (cls, obj, key) => __reflectGet(__getProtoOf(cls), key, obj);
34
29
 
35
30
  // src/index.ts
36
31
  var src_exports = {};
@@ -58,40 +53,30 @@ var FileSchema = "network.xyo.file";
58
53
 
59
54
  // src/util/GenerateDataUri.ts
60
55
  var import_base = require("@scure/base");
61
- var generateDataUri = /* @__PURE__ */ __name((data) => {
56
+ var generateDataUri = (data) => {
62
57
  return `data:application/octet-stream;base64,${import_base.base64.encode(data)}`;
63
- }, "generateDataUri");
58
+ };
64
59
 
65
60
  // src/Witness.ts
66
61
  var import_abstract_witness = require("@xyo-network/abstract-witness");
67
- var _FileWitness = class _FileWitness extends import_abstract_witness.AbstractWitness {
62
+ var FileWitness = class extends import_abstract_witness.AbstractWitness {
63
+ static configSchemas = [...super.configSchemas, FileWitnessConfigSchema];
64
+ static defaultConfigSchema = FileWitnessConfigSchema;
68
65
  observeHandler(payloads) {
69
- return [
70
- {
71
- ...payloads == null ? void 0 : payloads[0],
72
- schema: FileSchema
73
- }
74
- ];
66
+ return [{ ...payloads == null ? void 0 : payloads[0], schema: FileSchema }];
75
67
  }
76
68
  };
77
- __name(_FileWitness, "FileWitness");
78
- __publicField(_FileWitness, "configSchemas", [
79
- ...__superGet(_FileWitness, _FileWitness, "configSchemas"),
80
- FileWitnessConfigSchema
81
- ]);
82
- __publicField(_FileWitness, "defaultConfigSchema", FileWitnessConfigSchema);
83
- var FileWitness = _FileWitness;
84
69
 
85
70
  // src/BrowserFileWitness.ts
86
- var _BrowserFileWitness = class _BrowserFileWitness extends FileWitness {
71
+ var BrowserFileWitness = class extends FileWitness {
72
+ static configSchemas = [...super.configSchemas, FileWitnessConfigSchema];
73
+ static defaultConfigSchema = FileWitnessConfigSchema;
87
74
  async observeHandler() {
88
75
  try {
89
76
  const [payload] = await this.witnessBrowserFile();
90
77
  const { logger } = this.params;
91
78
  logger == null ? void 0 : logger.log(`BrowserFileWitness: ${await import_payload_builder.PayloadBuilder.dataHash(payload)}`);
92
- return [
93
- payload
94
- ];
79
+ return [payload];
95
80
  } catch (e) {
96
81
  throw new Error(`Error reading file: ${e}`);
97
82
  }
@@ -129,13 +114,6 @@ var _BrowserFileWitness = class _BrowserFileWitness extends FileWitness {
129
114
  ];
130
115
  }
131
116
  };
132
- __name(_BrowserFileWitness, "BrowserFileWitness");
133
- __publicField(_BrowserFileWitness, "configSchemas", [
134
- ...__superGet(_BrowserFileWitness, _BrowserFileWitness, "configSchemas"),
135
- FileWitnessConfigSchema
136
- ]);
137
- __publicField(_BrowserFileWitness, "defaultConfigSchema", FileWitnessConfigSchema);
138
- var BrowserFileWitness = _BrowserFileWitness;
139
117
 
140
118
  // src/Payload.ts
141
119
  var import_payload_model = require("@xyo-network/payload-model");
@@ -144,17 +122,15 @@ var isFilePayload = (0, import_payload_model.isPayloadOfSchemaType)(FileSchema);
144
122
  // src/PluginBrowser.ts
145
123
  var import_payload_model2 = require("@xyo-network/payload-model");
146
124
  var import_payloadset_plugin = require("@xyo-network/payloadset-plugin");
147
- var BrowserFilePlugin = /* @__PURE__ */ __name(() => (0, import_payloadset_plugin.createPayloadSetWitnessPlugin)({
148
- required: {
149
- [FileSchema]: 1
150
- },
151
- schema: import_payload_model2.PayloadSetSchema
152
- }, {
153
- witness: /* @__PURE__ */ __name(async (params) => {
154
- const result = await BrowserFileWitness.create(params);
155
- return result;
156
- }, "witness")
157
- }), "BrowserFilePlugin");
125
+ var BrowserFilePlugin = () => (0, import_payloadset_plugin.createPayloadSetWitnessPlugin)(
126
+ { required: { [FileSchema]: 1 }, schema: import_payload_model2.PayloadSetSchema },
127
+ {
128
+ witness: async (params) => {
129
+ const result = await BrowserFileWitness.create(params);
130
+ return result;
131
+ }
132
+ }
133
+ );
158
134
  // Annotate the CommonJS export names for ESM import in node:
159
135
  0 && (module.exports = {
160
136
  BrowserFilePlugin,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/index.ts","../../src/BrowserFileWitness.ts","../../src/Config.ts","../../src/Schema.ts","../../src/util/GenerateDataUri.ts","../../src/Witness.ts","../../src/Payload.ts","../../src/PluginBrowser.ts"],"sourcesContent":["export * from './BrowserFileWitness.ts'\nexport * from './Config.ts'\nexport * from './Params.ts'\nexport * from './Payload.ts'\n// eslint-disable-next-line import/no-default-export\nexport { BrowserFilePlugin, BrowserFilePlugin as default } from './PluginBrowser.ts'\nexport * from './Schema.ts'\nexport * from './Witness.ts'\n","import { assertEx } from '@xylabs/assert'\nimport { PayloadBuilder } from '@xyo-network/payload-builder'\nimport { Schema } from '@xyo-network/payload-model'\nimport shajs from 'sha.js'\n\nimport { FileWitnessConfigSchema } from './Config.ts'\nimport { BrowserFileWitnessAdditionalParams } from './Params.ts'\nimport { FilePayload } from './Payload.ts'\nimport { FileSchema } from './Schema.ts'\nimport { generateDataUri } from './util/index.ts'\nimport { FileWitness, FileWitnessParams } 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}`)\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 hash = shajs('sha256').update(result).digest('hex').padStart(64, '0')\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 { WitnessConfig } from '@xyo-network/witness-model'\n\nexport type FileWitnessConfigSchema = 'network.xyo.file.witness.config'\nexport const FileWitnessConfigSchema: FileWitnessConfigSchema = 'network.xyo.file.witness.config'\n\nexport type FileWitnessConfig = WitnessConfig<{\n schema: FileWitnessConfigSchema\n storage?: 'data-uri'\n}>\n","export type FileSchema = 'network.xyo.file'\nexport const FileSchema: FileSchema = 'network.xyo.file'\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 { Promisable } from '@xylabs/promise'\nimport { AbstractWitness } from '@xyo-network/abstract-witness'\nimport { AnyConfigSchema } from '@xyo-network/module-model'\nimport { Payload, Schema } from '@xyo-network/payload-model'\nimport { WitnessModule, WitnessParams } from '@xyo-network/witness-model'\n\nimport { FileWitnessConfig, 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 { isPayloadOfSchemaType, Payload } 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/payloadset-plugin'\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"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;;;;;;;;;;;;ACAA,oBAAyB;AACzB,6BAA+B;AAE/B,iBAAkB;;;ACAX,IAAMA,0BAAmD;;;ACFzD,IAAMC,aAAyB;;;ACDtC,kBAAuB;AAEhB,IAAMC,kBAAkB,wBAACC,SAAAA;AAC9B,SAAO,wCAAwCC,mBAAOC,OAAOF,IAAAA,CAAAA;AAC/D,GAF+B;;;ACD/B,8BAAgC;AAWzB,IAAeG,eAAf,MAAeA,qBAA2EC,wCAAAA;EAI5EC,eAAeC,UAA6C;AAC7E,WAAO;MAAC;QAAE,GAAGA,qCAAW;QAAIC,QAAQC;MAAW;;EACjD;AACF;AAPiGJ;AAC/F,cADoBD,cACKM,iBAA0B;KAAI,uCAAMA;EAAeC;;AAC5E,cAFoBP,cAEKQ,uBAA8BD;AAFlD,IAAeP,cAAf;;;AJEA,IAAMS,sBAAN,MAAMA,4BAA2BC,YAAAA;EAItC,MAAyBC,iBAAiB;AACxC,QAAI;AACF,YAAM,CAACC,OAAAA,IAAW,MAAM,KAAKC,mBAAkB;AAC/C,YAAM,EAAEC,OAAM,IAAK,KAAKC;AACxBD,uCAAQE,IAAI,uBAAuB,MAAMC,sCAAeC,SAASN,OAAAA,CAAAA;AACjE,aAAO;QAACA;;IACV,SAASO,GAAG;AACV,YAAM,IAAIC,MAAM,uBAAuBD,CAAAA,EAAG;IAC5C;EACF;EAEQE,eAAeC,MAAiC;AACtD,WAAO,IAAIC,QAAQ,CAACC,SAASC,WAAAA;AAC3B,YAAMC,aAAa,IAAIC,WAAAA;AACvBD,iBAAWE,iBAAiB,QAAQ,CAACC,UAAAA;AAhC3C;AAiCQ,cAAMC,eAAcD,WAAME,WAANF,mBAAcG;AAClCR,gBAAQ,IAAIS,WAAWH,WAAAA,CAAAA;MACzB,CAAA;AAEAJ,iBAAWQ,UAAU,MAAMT,OAAOC,WAAWS,KAAK;AAElDT,iBAAWU,kBAAkBd,IAAAA;IAC/B,CAAA;EACF;EAEA,MAAcT,qBAAyD;AACrE,UAAMS,WAAOe,wBAAS,KAAKtB,OAAOO,MAAM,MAAM,6BAAA;AAC9C,UAAMgB,aAAa,MAAM,KAAKjB,eAAeC,IAAAA;AAC7C,UAAMU,SAAS,IAAIC,WAAWK,UAAAA;AAC9B,UAAMC,WAAOC,WAAAA,SAAM,QAAA,EAAUC,OAAOT,MAAAA,EAAQU,OAAO,KAAA,EAAOC,SAAS,IAAI,GAAA;AAEvE,WAAO;MACL;QACEJ;QACAK,QAAQN,WAAWO;QACnBC,MAAM;UACJC,MAAMzB,KAAKyB;UACXC,MAAM1B,KAAK0B;QACb;QACAC,UAAU3B,KAAK4B;QACfC,QAAQC;QACRC,KAAK,KAAKC,OAAOC,YAAY,aAAaC,gBAAgBlB,UAAAA,IAAchB,KAAKyB;MAC/E;MACAT;;EAEJ;AACF;AAlDwC5B;AACtC,cADWD,qBACcgD,iBAA0B;KAAI,qDAAMA;EAAeC;;AAC5E,cAFWjD,qBAEckD,uBAA8BD;AAFlD,IAAMjD,qBAAN;;;AKdP,2BAA+C;AAoBxC,IAAMmD,oBAAgBC,4CAAmCC,UAAAA;;;ACpBhE,IAAAC,wBAAiC;AACjC,+BAA8C;AAKvC,IAAMC,oBAAoB,iCAC/BC,wDACE;EAAEC,UAAU;IAAE,CAACC,UAAAA,GAAa;EAAE;EAAGC,QAAQC;AAAiB,GAC1D;EACEC,SAAS,8BAAOC,WAAAA;AACd,UAAMC,SAAS,MAAMC,mBAAmBC,OAAOH,MAAAA;AAC/C,WAAOC;EACT,GAHS;AAIX,CAAA,GAR6B;","names":["FileWitnessConfigSchema","FileSchema","generateDataUri","data","base64","encode","FileWitness","AbstractWitness","observeHandler","payloads","schema","FileSchema","configSchemas","FileWitnessConfigSchema","defaultConfigSchema","BrowserFileWitness","FileWitness","observeHandler","payload","witnessBrowserFile","logger","params","log","PayloadBuilder","dataHash","e","Error","readBinaryFile","file","Promise","resolve","reject","fileReader","FileReader","addEventListener","event","arrayBuffer","target","result","Uint8Array","onerror","error","readAsArrayBuffer","assertEx","fileBinary","hash","shajs","update","digest","padStart","length","byteLength","meta","name","type","modified","lastModified","schema","FileSchema","uri","config","storage","generateDataUri","configSchemas","FileWitnessConfigSchema","defaultConfigSchema","isFilePayload","isPayloadOfSchemaType","FileSchema","import_payload_model","BrowserFilePlugin","createPayloadSetWitnessPlugin","required","FileSchema","schema","PayloadSetSchema","witness","params","result","BrowserFileWitness","create"]}
1
+ {"version":3,"sources":["../../src/index.ts","../../src/BrowserFileWitness.ts","../../src/Config.ts","../../src/Schema.ts","../../src/util/GenerateDataUri.ts","../../src/Witness.ts","../../src/Payload.ts","../../src/PluginBrowser.ts"],"sourcesContent":["export * from './BrowserFileWitness.ts'\nexport * from './Config.ts'\nexport * from './Params.ts'\nexport * from './Payload.ts'\n// eslint-disable-next-line import/no-default-export\nexport { BrowserFilePlugin, BrowserFilePlugin as default } from './PluginBrowser.ts'\nexport * from './Schema.ts'\nexport * from './Witness.ts'\n","import { assertEx } from '@xylabs/assert'\nimport { PayloadBuilder } from '@xyo-network/payload-builder'\nimport { Schema } from '@xyo-network/payload-model'\nimport shajs from 'sha.js'\n\nimport { FileWitnessConfigSchema } from './Config.ts'\nimport { BrowserFileWitnessAdditionalParams } from './Params.ts'\nimport { FilePayload } from './Payload.ts'\nimport { FileSchema } from './Schema.ts'\nimport { generateDataUri } from './util/index.ts'\nimport { FileWitness, FileWitnessParams } 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}`)\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 hash = shajs('sha256').update(result).digest('hex').padStart(64, '0')\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 { WitnessConfig } from '@xyo-network/witness-model'\n\nexport type FileWitnessConfigSchema = 'network.xyo.file.witness.config'\nexport const FileWitnessConfigSchema: FileWitnessConfigSchema = 'network.xyo.file.witness.config'\n\nexport type FileWitnessConfig = WitnessConfig<{\n schema: FileWitnessConfigSchema\n storage?: 'data-uri'\n}>\n","export type FileSchema = 'network.xyo.file'\nexport const FileSchema: FileSchema = 'network.xyo.file'\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 { Promisable } from '@xylabs/promise'\nimport { AbstractWitness } from '@xyo-network/abstract-witness'\nimport { AnyConfigSchema } from '@xyo-network/module-model'\nimport { Payload, Schema } from '@xyo-network/payload-model'\nimport { WitnessModule, WitnessParams } from '@xyo-network/witness-model'\n\nimport { FileWitnessConfig, 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 { isPayloadOfSchemaType, Payload } 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/payloadset-plugin'\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"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACAA,oBAAyB;AACzB,6BAA+B;AAE/B,iBAAkB;;;ACAX,IAAM,0BAAmD;;;ACFzD,IAAM,aAAyB;;;ACDtC,kBAAuB;AAEhB,IAAM,kBAAkB,CAAC,SAA6B;AAC3D,SAAO,wCAAwC,mBAAO,OAAO,IAAI,CAAC;AACpE;;;ACHA,8BAAgC;AAWzB,IAAe,cAAf,cAA0F,wCAAkD;AAAA,EACjJ,OAAyB,gBAA0B,CAAC,GAAG,MAAM,eAAe,uBAAuB;AAAA,EACnG,OAAyB,sBAA8B;AAAA,EAEpC,eAAe,UAA6C;AAC7E,WAAO,CAAC,EAAE,GAAG,qCAAW,IAAI,QAAQ,WAAW,CAAC;AAAA,EAClD;AACF;;;AJLO,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,uCAAQ,IAAI,uBAAuB,MAAM,sCAAe,SAAS,OAAO,CAAC;AACzE,aAAO,CAAC,OAAO;AAAA,IACjB,SAAS,GAAG;AACV,YAAM,IAAI,MAAM,uBAAuB,CAAC,EAAE;AAAA,IAC5C;AAAA,EACF;AAAA,EAEQ,eAAe,MAAiC;AACtD,WAAO,IAAI,QAAQ,CAAC,SAAS,WAAW;AACtC,YAAM,aAAa,IAAI,WAAW;AAClC,iBAAW,iBAAiB,QAAQ,CAAC,UAAU;AAhCrD;AAiCQ,cAAM,eAAc,WAAM,WAAN,mBAAc;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,WAAO,wBAAS,KAAK,OAAO,MAAM,MAAM,6BAA6B;AAC3E,UAAM,aAAa,MAAM,KAAK,eAAe,IAAI;AACjD,UAAM,SAAS,IAAI,WAAW,UAAU;AACxC,UAAM,WAAO,WAAAA,SAAM,QAAQ,EAAE,OAAO,MAAM,EAAE,OAAO,KAAK,EAAE,SAAS,IAAI,GAAG;AAE1E,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;;;AKhEA,2BAA+C;AAoBxC,IAAM,oBAAgB,4CAAmC,UAAU;;;ACpB1E,IAAAC,wBAAiC;AACjC,+BAA8C;AAKvC,IAAM,oBAAoB,UAC/B;AAAA,EACE,EAAE,UAAU,EAAE,CAAC,UAAU,GAAG,EAAE,GAAG,QAAQ,uCAAiB;AAAA,EAC1D;AAAA,IACE,SAAS,OAAO,WAAW;AACzB,YAAM,SAAS,MAAM,mBAAmB,OAAO,MAAM;AACrD,aAAO;AAAA,IACT;AAAA,EACF;AACF;","names":["shajs","import_payload_model"]}
@@ -1,11 +1,3 @@
1
- var __defProp = Object.defineProperty;
2
- var __getProtoOf = Object.getPrototypeOf;
3
- var __reflectGet = Reflect.get;
4
- var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
5
- var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
6
- var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
7
- var __superGet = (cls, obj, key) => __reflectGet(__getProtoOf(cls), key, obj);
8
-
9
1
  // src/BrowserFileWitness.ts
10
2
  import { assertEx } from "@xylabs/assert";
11
3
  import { PayloadBuilder } from "@xyo-network/payload-builder";
@@ -19,40 +11,30 @@ var FileSchema = "network.xyo.file";
19
11
 
20
12
  // src/util/GenerateDataUri.ts
21
13
  import { base64 } from "@scure/base";
22
- var generateDataUri = /* @__PURE__ */ __name((data) => {
14
+ var generateDataUri = (data) => {
23
15
  return `data:application/octet-stream;base64,${base64.encode(data)}`;
24
- }, "generateDataUri");
16
+ };
25
17
 
26
18
  // src/Witness.ts
27
19
  import { AbstractWitness } from "@xyo-network/abstract-witness";
28
- var _FileWitness = class _FileWitness extends AbstractWitness {
20
+ var FileWitness = class extends AbstractWitness {
21
+ static configSchemas = [...super.configSchemas, FileWitnessConfigSchema];
22
+ static defaultConfigSchema = FileWitnessConfigSchema;
29
23
  observeHandler(payloads) {
30
- return [
31
- {
32
- ...payloads == null ? void 0 : payloads[0],
33
- schema: FileSchema
34
- }
35
- ];
24
+ return [{ ...payloads == null ? void 0 : payloads[0], schema: FileSchema }];
36
25
  }
37
26
  };
38
- __name(_FileWitness, "FileWitness");
39
- __publicField(_FileWitness, "configSchemas", [
40
- ...__superGet(_FileWitness, _FileWitness, "configSchemas"),
41
- FileWitnessConfigSchema
42
- ]);
43
- __publicField(_FileWitness, "defaultConfigSchema", FileWitnessConfigSchema);
44
- var FileWitness = _FileWitness;
45
27
 
46
28
  // src/BrowserFileWitness.ts
47
- var _BrowserFileWitness = class _BrowserFileWitness extends FileWitness {
29
+ var BrowserFileWitness = class extends FileWitness {
30
+ static configSchemas = [...super.configSchemas, FileWitnessConfigSchema];
31
+ static defaultConfigSchema = FileWitnessConfigSchema;
48
32
  async observeHandler() {
49
33
  try {
50
34
  const [payload] = await this.witnessBrowserFile();
51
35
  const { logger } = this.params;
52
36
  logger == null ? void 0 : logger.log(`BrowserFileWitness: ${await PayloadBuilder.dataHash(payload)}`);
53
- return [
54
- payload
55
- ];
37
+ return [payload];
56
38
  } catch (e) {
57
39
  throw new Error(`Error reading file: ${e}`);
58
40
  }
@@ -90,13 +72,6 @@ var _BrowserFileWitness = class _BrowserFileWitness extends FileWitness {
90
72
  ];
91
73
  }
92
74
  };
93
- __name(_BrowserFileWitness, "BrowserFileWitness");
94
- __publicField(_BrowserFileWitness, "configSchemas", [
95
- ...__superGet(_BrowserFileWitness, _BrowserFileWitness, "configSchemas"),
96
- FileWitnessConfigSchema
97
- ]);
98
- __publicField(_BrowserFileWitness, "defaultConfigSchema", FileWitnessConfigSchema);
99
- var BrowserFileWitness = _BrowserFileWitness;
100
75
 
101
76
  // src/Payload.ts
102
77
  import { isPayloadOfSchemaType } from "@xyo-network/payload-model";
@@ -105,17 +80,15 @@ var isFilePayload = isPayloadOfSchemaType(FileSchema);
105
80
  // src/PluginBrowser.ts
106
81
  import { PayloadSetSchema } from "@xyo-network/payload-model";
107
82
  import { createPayloadSetWitnessPlugin } from "@xyo-network/payloadset-plugin";
108
- var BrowserFilePlugin = /* @__PURE__ */ __name(() => createPayloadSetWitnessPlugin({
109
- required: {
110
- [FileSchema]: 1
111
- },
112
- schema: PayloadSetSchema
113
- }, {
114
- witness: /* @__PURE__ */ __name(async (params) => {
115
- const result = await BrowserFileWitness.create(params);
116
- return result;
117
- }, "witness")
118
- }), "BrowserFilePlugin");
83
+ var BrowserFilePlugin = () => createPayloadSetWitnessPlugin(
84
+ { required: { [FileSchema]: 1 }, schema: PayloadSetSchema },
85
+ {
86
+ witness: async (params) => {
87
+ const result = await BrowserFileWitness.create(params);
88
+ return result;
89
+ }
90
+ }
91
+ );
119
92
  export {
120
93
  BrowserFilePlugin,
121
94
  BrowserFileWitness,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/BrowserFileWitness.ts","../../src/Config.ts","../../src/Schema.ts","../../src/util/GenerateDataUri.ts","../../src/Witness.ts","../../src/Payload.ts","../../src/PluginBrowser.ts"],"sourcesContent":["import { assertEx } from '@xylabs/assert'\nimport { PayloadBuilder } from '@xyo-network/payload-builder'\nimport { Schema } from '@xyo-network/payload-model'\nimport shajs from 'sha.js'\n\nimport { FileWitnessConfigSchema } from './Config.ts'\nimport { BrowserFileWitnessAdditionalParams } from './Params.ts'\nimport { FilePayload } from './Payload.ts'\nimport { FileSchema } from './Schema.ts'\nimport { generateDataUri } from './util/index.ts'\nimport { FileWitness, FileWitnessParams } 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}`)\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 hash = shajs('sha256').update(result).digest('hex').padStart(64, '0')\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 { WitnessConfig } from '@xyo-network/witness-model'\n\nexport type FileWitnessConfigSchema = 'network.xyo.file.witness.config'\nexport const FileWitnessConfigSchema: FileWitnessConfigSchema = 'network.xyo.file.witness.config'\n\nexport type FileWitnessConfig = WitnessConfig<{\n schema: FileWitnessConfigSchema\n storage?: 'data-uri'\n}>\n","export type FileSchema = 'network.xyo.file'\nexport const FileSchema: FileSchema = 'network.xyo.file'\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 { Promisable } from '@xylabs/promise'\nimport { AbstractWitness } from '@xyo-network/abstract-witness'\nimport { AnyConfigSchema } from '@xyo-network/module-model'\nimport { Payload, Schema } from '@xyo-network/payload-model'\nimport { WitnessModule, WitnessParams } from '@xyo-network/witness-model'\n\nimport { FileWitnessConfig, 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 { isPayloadOfSchemaType, Payload } 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/payloadset-plugin'\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"],"mappings":";;;;;;;;;AAAA,SAASA,gBAAgB;AACzB,SAASC,sBAAsB;AAE/B,OAAOC,WAAW;;;ACAX,IAAMC,0BAAmD;;;ACFzD,IAAMC,aAAyB;;;ACDtC,SAASC,cAAc;AAEhB,IAAMC,kBAAkB,wBAACC,SAAAA;AAC9B,SAAO,wCAAwCC,OAAOC,OAAOF,IAAAA,CAAAA;AAC/D,GAF+B;;;ACD/B,SAASG,uBAAuB;AAWzB,IAAeC,eAAf,MAAeA,qBAA2EC,gBAAAA;EAI5EC,eAAeC,UAA6C;AAC7E,WAAO;MAAC;QAAE,GAAGA,qCAAW;QAAIC,QAAQC;MAAW;;EACjD;AACF;AAPiGJ;AAC/F,cADoBD,cACKM,iBAA0B;KAAI,uCAAMA;EAAeC;;AAC5E,cAFoBP,cAEKQ,uBAA8BD;AAFlD,IAAeP,cAAf;;;AJEA,IAAMS,sBAAN,MAAMA,4BAA2BC,YAAAA;EAItC,MAAyBC,iBAAiB;AACxC,QAAI;AACF,YAAM,CAACC,OAAAA,IAAW,MAAM,KAAKC,mBAAkB;AAC/C,YAAM,EAAEC,OAAM,IAAK,KAAKC;AACxBD,uCAAQE,IAAI,uBAAuB,MAAMC,eAAeC,SAASN,OAAAA,CAAAA;AACjE,aAAO;QAACA;;IACV,SAASO,GAAG;AACV,YAAM,IAAIC,MAAM,uBAAuBD,CAAAA,EAAG;IAC5C;EACF;EAEQE,eAAeC,MAAiC;AACtD,WAAO,IAAIC,QAAQ,CAACC,SAASC,WAAAA;AAC3B,YAAMC,aAAa,IAAIC,WAAAA;AACvBD,iBAAWE,iBAAiB,QAAQ,CAACC,UAAAA;AAhC3C;AAiCQ,cAAMC,eAAcD,WAAME,WAANF,mBAAcG;AAClCR,gBAAQ,IAAIS,WAAWH,WAAAA,CAAAA;MACzB,CAAA;AAEAJ,iBAAWQ,UAAU,MAAMT,OAAOC,WAAWS,KAAK;AAElDT,iBAAWU,kBAAkBd,IAAAA;IAC/B,CAAA;EACF;EAEA,MAAcT,qBAAyD;AACrE,UAAMS,OAAOe,SAAS,KAAKtB,OAAOO,MAAM,MAAM,6BAAA;AAC9C,UAAMgB,aAAa,MAAM,KAAKjB,eAAeC,IAAAA;AAC7C,UAAMU,SAAS,IAAIC,WAAWK,UAAAA;AAC9B,UAAMC,OAAOC,MAAM,QAAA,EAAUC,OAAOT,MAAAA,EAAQU,OAAO,KAAA,EAAOC,SAAS,IAAI,GAAA;AAEvE,WAAO;MACL;QACEJ;QACAK,QAAQN,WAAWO;QACnBC,MAAM;UACJC,MAAMzB,KAAKyB;UACXC,MAAM1B,KAAK0B;QACb;QACAC,UAAU3B,KAAK4B;QACfC,QAAQC;QACRC,KAAK,KAAKC,OAAOC,YAAY,aAAaC,gBAAgBlB,UAAAA,IAAchB,KAAKyB;MAC/E;MACAT;;EAEJ;AACF;AAlDwC5B;AACtC,cADWD,qBACcgD,iBAA0B;KAAI,qDAAMA;EAAeC;;AAC5E,cAFWjD,qBAEckD,uBAA8BD;AAFlD,IAAMjD,qBAAN;;;AKdP,SAASmD,6BAAsC;AAoBxC,IAAMC,gBAAgBC,sBAAmCC,UAAAA;;;ACpBhE,SAASC,wBAAwB;AACjC,SAASC,qCAAqC;AAKvC,IAAMC,oBAAoB,6BAC/BC,8BACE;EAAEC,UAAU;IAAE,CAACC,UAAAA,GAAa;EAAE;EAAGC,QAAQC;AAAiB,GAC1D;EACEC,SAAS,8BAAOC,WAAAA;AACd,UAAMC,SAAS,MAAMC,mBAAmBC,OAAOH,MAAAA;AAC/C,WAAOC;EACT,GAHS;AAIX,CAAA,GAR6B;","names":["assertEx","PayloadBuilder","shajs","FileWitnessConfigSchema","FileSchema","base64","generateDataUri","data","base64","encode","AbstractWitness","FileWitness","AbstractWitness","observeHandler","payloads","schema","FileSchema","configSchemas","FileWitnessConfigSchema","defaultConfigSchema","BrowserFileWitness","FileWitness","observeHandler","payload","witnessBrowserFile","logger","params","log","PayloadBuilder","dataHash","e","Error","readBinaryFile","file","Promise","resolve","reject","fileReader","FileReader","addEventListener","event","arrayBuffer","target","result","Uint8Array","onerror","error","readAsArrayBuffer","assertEx","fileBinary","hash","shajs","update","digest","padStart","length","byteLength","meta","name","type","modified","lastModified","schema","FileSchema","uri","config","storage","generateDataUri","configSchemas","FileWitnessConfigSchema","defaultConfigSchema","isPayloadOfSchemaType","isFilePayload","isPayloadOfSchemaType","FileSchema","PayloadSetSchema","createPayloadSetWitnessPlugin","BrowserFilePlugin","createPayloadSetWitnessPlugin","required","FileSchema","schema","PayloadSetSchema","witness","params","result","BrowserFileWitness","create"]}
1
+ {"version":3,"sources":["../../src/BrowserFileWitness.ts","../../src/Config.ts","../../src/Schema.ts","../../src/util/GenerateDataUri.ts","../../src/Witness.ts","../../src/Payload.ts","../../src/PluginBrowser.ts"],"sourcesContent":["import { assertEx } from '@xylabs/assert'\nimport { PayloadBuilder } from '@xyo-network/payload-builder'\nimport { Schema } from '@xyo-network/payload-model'\nimport shajs from 'sha.js'\n\nimport { FileWitnessConfigSchema } from './Config.ts'\nimport { BrowserFileWitnessAdditionalParams } from './Params.ts'\nimport { FilePayload } from './Payload.ts'\nimport { FileSchema } from './Schema.ts'\nimport { generateDataUri } from './util/index.ts'\nimport { FileWitness, FileWitnessParams } 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}`)\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 hash = shajs('sha256').update(result).digest('hex').padStart(64, '0')\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 { WitnessConfig } from '@xyo-network/witness-model'\n\nexport type FileWitnessConfigSchema = 'network.xyo.file.witness.config'\nexport const FileWitnessConfigSchema: FileWitnessConfigSchema = 'network.xyo.file.witness.config'\n\nexport type FileWitnessConfig = WitnessConfig<{\n schema: FileWitnessConfigSchema\n storage?: 'data-uri'\n}>\n","export type FileSchema = 'network.xyo.file'\nexport const FileSchema: FileSchema = 'network.xyo.file'\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 { Promisable } from '@xylabs/promise'\nimport { AbstractWitness } from '@xyo-network/abstract-witness'\nimport { AnyConfigSchema } from '@xyo-network/module-model'\nimport { Payload, Schema } from '@xyo-network/payload-model'\nimport { WitnessModule, WitnessParams } from '@xyo-network/witness-model'\n\nimport { FileWitnessConfig, 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 { isPayloadOfSchemaType, Payload } 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/payloadset-plugin'\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"],"mappings":";AAAA,SAAS,gBAAgB;AACzB,SAAS,sBAAsB;AAE/B,OAAO,WAAW;;;ACAX,IAAM,0BAAmD;;;ACFzD,IAAM,aAAyB;;;ACDtC,SAAS,cAAc;AAEhB,IAAM,kBAAkB,CAAC,SAA6B;AAC3D,SAAO,wCAAwC,OAAO,OAAO,IAAI,CAAC;AACpE;;;ACHA,SAAS,uBAAuB;AAWzB,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,qCAAW,IAAI,QAAQ,WAAW,CAAC;AAAA,EAClD;AACF;;;AJLO,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,uCAAQ,IAAI,uBAAuB,MAAM,eAAe,SAAS,OAAO,CAAC;AACzE,aAAO,CAAC,OAAO;AAAA,IACjB,SAAS,GAAG;AACV,YAAM,IAAI,MAAM,uBAAuB,CAAC,EAAE;AAAA,IAC5C;AAAA,EACF;AAAA,EAEQ,eAAe,MAAiC;AACtD,WAAO,IAAI,QAAQ,CAAC,SAAS,WAAW;AACtC,YAAM,aAAa,IAAI,WAAW;AAClC,iBAAW,iBAAiB,QAAQ,CAAC,UAAU;AAhCrD;AAiCQ,cAAM,eAAc,WAAM,WAAN,mBAAc;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,OAAO,MAAM,QAAQ,EAAE,OAAO,MAAM,EAAE,OAAO,KAAK,EAAE,SAAS,IAAI,GAAG;AAE1E,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;;;AKhEA,SAAS,6BAAsC;AAoBxC,IAAM,gBAAgB,sBAAmC,UAAU;;;ACpB1E,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;","names":[]}
package/package.json CHANGED
@@ -11,19 +11,20 @@
11
11
  },
12
12
  "dependencies": {
13
13
  "@scure/base": "^1.1.7",
14
- "@xylabs/assert": "^3.6.8",
15
- "@xylabs/promise": "^3.6.8",
16
- "@xyo-network/abstract-witness": "^2.111.2",
17
- "@xyo-network/module-model": "^2.111.2",
18
- "@xyo-network/payload-builder": "^2.111.2",
19
- "@xyo-network/payload-model": "^2.111.2",
20
- "@xyo-network/payloadset-plugin": "^2.111.2",
21
- "@xyo-network/witness-model": "^2.111.2",
14
+ "@xylabs/assert": "^3.6.12",
15
+ "@xylabs/promise": "^3.6.12",
16
+ "@xyo-network/abstract-witness": "^2.111.3",
17
+ "@xyo-network/module-model": "^2.111.3",
18
+ "@xyo-network/payload-builder": "^2.111.3",
19
+ "@xyo-network/payload-model": "^2.111.3",
20
+ "@xyo-network/payloadset-plugin": "^2.111.3",
21
+ "@xyo-network/witness-model": "^2.111.3",
22
22
  "sha.js": "^2.4.11"
23
23
  },
24
24
  "devDependencies": {
25
- "@xylabs/ts-scripts-yarn3": "^3.15.13",
26
- "@xylabs/tsconfig": "^3.15.13",
25
+ "@types/sha.js": "^2.4.4",
26
+ "@xylabs/ts-scripts-yarn3": "^3.15.14",
27
+ "@xylabs/tsconfig": "^3.15.14",
27
28
  "typescript": "^5.5.4"
28
29
  },
29
30
  "description": "Typescript/Javascript Plugins for XYO Platform",
@@ -65,6 +66,6 @@
65
66
  "url": "https://github.com/XYOracleNetwork/plugins.git"
66
67
  },
67
68
  "sideEffects": false,
68
- "version": "2.99.5",
69
+ "version": "2.99.6",
69
70
  "type": "module"
70
71
  }