@xyo-network/filesystem-archivist 2.88.3 → 2.89.0-rc.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"FilesystemArchivist.d.ts","sourceRoot":"","sources":["../../src/FilesystemArchivist.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAA;AAEjD,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAA;AAEnE,OAAO,EAGL,eAAe,EACf,iBAAiB,EACjB,eAAe,EAChB,MAAM,8BAA8B,CAAA;AACrC,OAAO,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAA;AAC9D,OAAO,EAAE,eAAe,EAAmB,MAAM,2BAA2B,CAAA;AAC5E,OAAO,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAA;AAGpD,MAAM,WAAW,uBAAuB;IACtC,QAAQ,EAAE,OAAO,EAAE,CAAA;CACpB;AAED,MAAM,MAAM,+BAA+B,GAAG,yCAAyC,CAAA;AACvF,eAAO,MAAM,+BAA+B,EAAE,+BAA2E,CAAA;AAEzH,MAAM,MAAM,yBAAyB,GAAG,eAAe,CAAC;IACtD,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,MAAM,EAAE,+BAA+B,CAAA;CACxC,CAAC,CAAA;AAEF,MAAM,MAAM,yBAAyB,GAAG,eAAe,CAAC,eAAe,CAAC,yBAAyB,CAAC,CAAC,CAAA;AAEnG;;GAEG;AACH,qBACa,mBAAmB,CAAC,OAAO,SAAS,yBAAyB,GAAG,yBAAyB,CACpG,SAAQ,iBAAiB,CAAC,OAAO,CACjC,YAAW,iBAAiB;IAE5B,OAAgB,aAAa,8CAAoC;IAEjE,OAAO,CAAC,gBAAgB,CAAC,CAAiB;IAE1C,IAAI,QAAQ,WAEX;IAED,IAAa,OAAO,aAEnB;IAED,OAAO,KAAK,eAAe,GAE1B;IAED,OAAO,CAAC,MAAM,CAAC,eAAe;IAQ9B,OAAO,CAAC,MAAM,CAAC,uBAAuB;cAKnB,UAAU,IAAI,eAAe,CAAC,OAAO,CAAC;cAItC,YAAY,IAAI,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;cAI9B,aAAa,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC;cAI9C,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,eAAe,CAAC,MAAM,CAAC;cAIlD,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;cAIhD,aAAa,CAAC,QAAQ,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;cAItD,YAAY;YAevB,eAAe;CAG9B"}
1
+ {"version":3,"file":"FilesystemArchivist.d.ts","sourceRoot":"","sources":["../../src/FilesystemArchivist.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAA;AAEjD,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAA;AAEnE,OAAO,EAGL,eAAe,EACf,iBAAiB,EACjB,eAAe,EAChB,MAAM,8BAA8B,CAAA;AACrC,OAAO,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAA;AAC9D,OAAO,EAAE,eAAe,EAAmB,MAAM,2BAA2B,CAAA;AAE5E,OAAO,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAA;AAGpD,MAAM,WAAW,uBAAuB;IACtC,QAAQ,EAAE,OAAO,EAAE,CAAA;CACpB;AAED,MAAM,MAAM,+BAA+B,GAAG,yCAAyC,CAAA;AACvF,eAAO,MAAM,+BAA+B,EAAE,+BAA2E,CAAA;AAEzH,MAAM,MAAM,yBAAyB,GAAG,eAAe,CAAC;IACtD,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,MAAM,EAAE,+BAA+B,CAAA;CACxC,CAAC,CAAA;AAEF,MAAM,MAAM,yBAAyB,GAAG,eAAe,CAAC,eAAe,CAAC,yBAAyB,CAAC,CAAC,CAAA;AAEnG;;GAEG;AACH,qBACa,mBAAmB,CAAC,OAAO,SAAS,yBAAyB,GAAG,yBAAyB,CACpG,SAAQ,iBAAiB,CAAC,OAAO,CACjC,YAAW,iBAAiB;IAE5B,OAAgB,aAAa,8CAAoC;IAEjE,OAAO,CAAC,gBAAgB,CAAC,CAAiB;IAE1C,IAAI,QAAQ,WAEX;IAED,IAAa,OAAO,aAEnB;IAED,OAAO,KAAK,eAAe,GAE1B;mBAEoB,eAAe;mBAQf,uBAAuB;cAKzB,UAAU,IAAI,eAAe,CAAC,OAAO,CAAC;cAItC,YAAY,IAAI,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;cAI9B,aAAa,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC;cAI9C,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,eAAe,CAAC,MAAM,CAAC;cAIlD,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;cAIhD,aAAa,CAAC,QAAQ,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;cAItD,YAAY;YAevB,eAAe;CAG9B"}
@@ -1 +1 @@
1
- {"version":3,"file":"FilesystemArchivist.d.ts","sourceRoot":"","sources":["../../src/FilesystemArchivist.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAA;AAEjD,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAA;AAEnE,OAAO,EAGL,eAAe,EACf,iBAAiB,EACjB,eAAe,EAChB,MAAM,8BAA8B,CAAA;AACrC,OAAO,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAA;AAC9D,OAAO,EAAE,eAAe,EAAmB,MAAM,2BAA2B,CAAA;AAC5E,OAAO,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAA;AAGpD,MAAM,WAAW,uBAAuB;IACtC,QAAQ,EAAE,OAAO,EAAE,CAAA;CACpB;AAED,MAAM,MAAM,+BAA+B,GAAG,yCAAyC,CAAA;AACvF,eAAO,MAAM,+BAA+B,EAAE,+BAA2E,CAAA;AAEzH,MAAM,MAAM,yBAAyB,GAAG,eAAe,CAAC;IACtD,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,MAAM,EAAE,+BAA+B,CAAA;CACxC,CAAC,CAAA;AAEF,MAAM,MAAM,yBAAyB,GAAG,eAAe,CAAC,eAAe,CAAC,yBAAyB,CAAC,CAAC,CAAA;AAEnG;;GAEG;AACH,qBACa,mBAAmB,CAAC,OAAO,SAAS,yBAAyB,GAAG,yBAAyB,CACpG,SAAQ,iBAAiB,CAAC,OAAO,CACjC,YAAW,iBAAiB;IAE5B,OAAgB,aAAa,8CAAoC;IAEjE,OAAO,CAAC,gBAAgB,CAAC,CAAiB;IAE1C,IAAI,QAAQ,WAEX;IAED,IAAa,OAAO,aAEnB;IAED,OAAO,KAAK,eAAe,GAE1B;IAED,OAAO,CAAC,MAAM,CAAC,eAAe;IAQ9B,OAAO,CAAC,MAAM,CAAC,uBAAuB;cAKnB,UAAU,IAAI,eAAe,CAAC,OAAO,CAAC;cAItC,YAAY,IAAI,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;cAI9B,aAAa,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC;cAI9C,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,eAAe,CAAC,MAAM,CAAC;cAIlD,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;cAIhD,aAAa,CAAC,QAAQ,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;cAItD,YAAY;YAevB,eAAe;CAG9B"}
1
+ {"version":3,"file":"FilesystemArchivist.d.ts","sourceRoot":"","sources":["../../src/FilesystemArchivist.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAA;AAEjD,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAA;AAEnE,OAAO,EAGL,eAAe,EACf,iBAAiB,EACjB,eAAe,EAChB,MAAM,8BAA8B,CAAA;AACrC,OAAO,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAA;AAC9D,OAAO,EAAE,eAAe,EAAmB,MAAM,2BAA2B,CAAA;AAE5E,OAAO,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAA;AAGpD,MAAM,WAAW,uBAAuB;IACtC,QAAQ,EAAE,OAAO,EAAE,CAAA;CACpB;AAED,MAAM,MAAM,+BAA+B,GAAG,yCAAyC,CAAA;AACvF,eAAO,MAAM,+BAA+B,EAAE,+BAA2E,CAAA;AAEzH,MAAM,MAAM,yBAAyB,GAAG,eAAe,CAAC;IACtD,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,MAAM,EAAE,+BAA+B,CAAA;CACxC,CAAC,CAAA;AAEF,MAAM,MAAM,yBAAyB,GAAG,eAAe,CAAC,eAAe,CAAC,yBAAyB,CAAC,CAAC,CAAA;AAEnG;;GAEG;AACH,qBACa,mBAAmB,CAAC,OAAO,SAAS,yBAAyB,GAAG,yBAAyB,CACpG,SAAQ,iBAAiB,CAAC,OAAO,CACjC,YAAW,iBAAiB;IAE5B,OAAgB,aAAa,8CAAoC;IAEjE,OAAO,CAAC,gBAAgB,CAAC,CAAiB;IAE1C,IAAI,QAAQ,WAEX;IAED,IAAa,OAAO,aAEnB;IAED,OAAO,KAAK,eAAe,GAE1B;mBAEoB,eAAe;mBAQf,uBAAuB;cAKzB,UAAU,IAAI,eAAe,CAAC,OAAO,CAAC;cAItC,YAAY,IAAI,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;cAI9B,aAAa,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC;cAI9C,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,eAAe,CAAC,MAAM,CAAC;cAIlD,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;cAIhD,aAAa,CAAC,QAAQ,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;cAItD,YAAY;YAevB,eAAe;CAG9B"}
@@ -1 +1 @@
1
- {"version":3,"file":"FilesystemArchivist.d.ts","sourceRoot":"","sources":["../../src/FilesystemArchivist.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAA;AAEjD,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAA;AAEnE,OAAO,EAGL,eAAe,EACf,iBAAiB,EACjB,eAAe,EAChB,MAAM,8BAA8B,CAAA;AACrC,OAAO,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAA;AAC9D,OAAO,EAAE,eAAe,EAAmB,MAAM,2BAA2B,CAAA;AAC5E,OAAO,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAA;AAGpD,MAAM,WAAW,uBAAuB;IACtC,QAAQ,EAAE,OAAO,EAAE,CAAA;CACpB;AAED,MAAM,MAAM,+BAA+B,GAAG,yCAAyC,CAAA;AACvF,eAAO,MAAM,+BAA+B,EAAE,+BAA2E,CAAA;AAEzH,MAAM,MAAM,yBAAyB,GAAG,eAAe,CAAC;IACtD,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,MAAM,EAAE,+BAA+B,CAAA;CACxC,CAAC,CAAA;AAEF,MAAM,MAAM,yBAAyB,GAAG,eAAe,CAAC,eAAe,CAAC,yBAAyB,CAAC,CAAC,CAAA;AAEnG;;GAEG;AACH,qBACa,mBAAmB,CAAC,OAAO,SAAS,yBAAyB,GAAG,yBAAyB,CACpG,SAAQ,iBAAiB,CAAC,OAAO,CACjC,YAAW,iBAAiB;IAE5B,OAAgB,aAAa,8CAAoC;IAEjE,OAAO,CAAC,gBAAgB,CAAC,CAAiB;IAE1C,IAAI,QAAQ,WAEX;IAED,IAAa,OAAO,aAEnB;IAED,OAAO,KAAK,eAAe,GAE1B;IAED,OAAO,CAAC,MAAM,CAAC,eAAe;IAQ9B,OAAO,CAAC,MAAM,CAAC,uBAAuB;cAKnB,UAAU,IAAI,eAAe,CAAC,OAAO,CAAC;cAItC,YAAY,IAAI,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;cAI9B,aAAa,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC;cAI9C,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,eAAe,CAAC,MAAM,CAAC;cAIlD,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;cAIhD,aAAa,CAAC,QAAQ,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;cAItD,YAAY;YAevB,eAAe;CAG9B"}
1
+ {"version":3,"file":"FilesystemArchivist.d.ts","sourceRoot":"","sources":["../../src/FilesystemArchivist.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAA;AAEjD,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAA;AAEnE,OAAO,EAGL,eAAe,EACf,iBAAiB,EACjB,eAAe,EAChB,MAAM,8BAA8B,CAAA;AACrC,OAAO,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAA;AAC9D,OAAO,EAAE,eAAe,EAAmB,MAAM,2BAA2B,CAAA;AAE5E,OAAO,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAA;AAGpD,MAAM,WAAW,uBAAuB;IACtC,QAAQ,EAAE,OAAO,EAAE,CAAA;CACpB;AAED,MAAM,MAAM,+BAA+B,GAAG,yCAAyC,CAAA;AACvF,eAAO,MAAM,+BAA+B,EAAE,+BAA2E,CAAA;AAEzH,MAAM,MAAM,yBAAyB,GAAG,eAAe,CAAC;IACtD,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,MAAM,EAAE,+BAA+B,CAAA;CACxC,CAAC,CAAA;AAEF,MAAM,MAAM,yBAAyB,GAAG,eAAe,CAAC,eAAe,CAAC,yBAAyB,CAAC,CAAC,CAAA;AAEnG;;GAEG;AACH,qBACa,mBAAmB,CAAC,OAAO,SAAS,yBAAyB,GAAG,yBAAyB,CACpG,SAAQ,iBAAiB,CAAC,OAAO,CACjC,YAAW,iBAAiB;IAE5B,OAAgB,aAAa,8CAAoC;IAEjE,OAAO,CAAC,gBAAgB,CAAC,CAAiB;IAE1C,IAAI,QAAQ,WAEX;IAED,IAAa,OAAO,aAEnB;IAED,OAAO,KAAK,eAAe,GAE1B;mBAEoB,eAAe;mBAQf,uBAAuB;cAKzB,UAAU,IAAI,eAAe,CAAC,OAAO,CAAC;cAItC,YAAY,IAAI,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;cAI9B,aAAa,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC;cAI9C,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,eAAe,CAAC,MAAM,CAAC;cAIlD,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;cAIhD,aAAa,CAAC,QAAQ,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;cAItD,YAAY;YAevB,eAAe;CAG9B"}
@@ -40,6 +40,7 @@ var import_archivist_abstract = require("@xyo-network/archivist-abstract");
40
40
  var import_archivist_memory = require("@xyo-network/archivist-memory");
41
41
  var import_archivist_model = require("@xyo-network/archivist-model");
42
42
  var import_module_model = require("@xyo-network/module-model");
43
+ var import_payload_builder = require("@xyo-network/payload-builder");
43
44
  var import_payload_wrapper = require("@xyo-network/payload-wrapper");
44
45
  function _ts_decorate(decorators, target, key, desc) {
45
46
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
@@ -69,15 +70,15 @@ var _FilesystemArchivist = class _FilesystemArchivist extends import_archivist_a
69
70
  get memoryArchivist() {
70
71
  return (0, import_assert.assertEx)(this._memoryArchivist);
71
72
  }
72
- static dataFromRawJson(rawJson) {
73
+ static async dataFromRawJson(rawJson) {
73
74
  const data = JSON.parse(rawJson);
74
75
  (0, import_assert.assertEx)(typeof data === "object", "Archivist Data must be object");
75
76
  (0, import_assert.assertEx)(Array.isArray(data.payloads), 'Archivist Data "payloads" field must be array of payloads');
76
- data.payloads = this.payloadsFromRawPayloads(data.payloads);
77
+ data.payloads = await this.payloadsFromRawPayloads(data.payloads);
77
78
  return data;
78
79
  }
79
- static payloadsFromRawPayloads(rawPayloads) {
80
- return rawPayloads.map((payload) => import_payload_wrapper.PayloadWrapper.wrap(payload).payload());
80
+ static async payloadsFromRawPayloads(rawPayloads) {
81
+ return await Promise.all(rawPayloads.map(async (payload) => (await import_payload_wrapper.PayloadWrapper.wrap(payload)).jsonPayload()));
81
82
  }
82
83
  allHandler() {
83
84
  return this.memoryArchivist.all();
@@ -103,8 +104,8 @@ var _FilesystemArchivist = class _FilesystemArchivist extends import_archivist_a
103
104
  account: await import_account.HDWallet.random()
104
105
  });
105
106
  try {
106
- const data = _FilesystemArchivist.dataFromRawJson(await this.rawJsonFromFile());
107
- await this._memoryArchivist.insert(data.payloads);
107
+ const data = await _FilesystemArchivist.dataFromRawJson(await this.rawJsonFromFile());
108
+ await this._memoryArchivist.insert(await Promise.all(data.payloads.map((payload) => import_payload_builder.PayloadBuilder.build(payload))));
108
109
  } catch (ex) {
109
110
  (0, import_error.handleError)(ex, (error) => {
110
111
  var _a;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/index.ts","../../src/FilesystemArchivist.ts"],"sourcesContent":["export * from './FilesystemArchivist'\n","import { readFile } from 'node:fs/promises'\n\nimport { assertEx } from '@xylabs/assert'\nimport { handleError } from '@xylabs/error'\nimport { PromisableArray } from '@xylabs/promise'\nimport { HDWallet } from '@xyo-network/account'\nimport { AbstractArchivist } from '@xyo-network/archivist-abstract'\nimport { MemoryArchivist } from '@xyo-network/archivist-memory'\nimport {\n ArchivistAllQuerySchema,\n ArchivistCommitQuerySchema,\n ArchivistConfig,\n ArchivistInstance,\n ArchivistParams,\n} from '@xyo-network/archivist-model'\nimport { BoundWitness } from '@xyo-network/boundwitness-model'\nimport { AnyConfigSchema, creatableModule } from '@xyo-network/module-model'\nimport { Payload } from '@xyo-network/payload-model'\nimport { PayloadWrapper } from '@xyo-network/payload-wrapper'\n\nexport interface FileSystemArchivistData {\n payloads: Payload[]\n}\n\nexport type FilesystemArchivistConfigSchema = 'network.xyo.archivist.filesystem.config'\nexport const FilesystemArchivistConfigSchema: FilesystemArchivistConfigSchema = 'network.xyo.archivist.filesystem.config'\n\nexport type FilesystemArchivistConfig = ArchivistConfig<{\n filePath?: string\n schema: FilesystemArchivistConfigSchema\n}>\n\nexport type FilesystemArchivistParams = ArchivistParams<AnyConfigSchema<FilesystemArchivistConfig>>\n\n/** @description Currently only a read-only archivist that loads payloads from filesystem\n * but allows for future expansion to read/write\n */\n@creatableModule()\nexport class FilesystemArchivist<TParams extends FilesystemArchivistParams = FilesystemArchivistParams>\n extends AbstractArchivist<TParams>\n implements ArchivistInstance\n{\n static override configSchemas = [FilesystemArchivistConfigSchema]\n\n private _memoryArchivist?: MemoryArchivist\n\n get filePath() {\n return this.config?.filePath ?? 'archivist.xyo.json'\n }\n\n override get queries() {\n return [ArchivistAllQuerySchema, ArchivistCommitQuerySchema, ...super.queries]\n }\n\n private get memoryArchivist() {\n return assertEx(this._memoryArchivist)\n }\n\n private static dataFromRawJson(rawJson: string) {\n const data: FileSystemArchivistData = JSON.parse(rawJson)\n assertEx(typeof data === 'object', 'Archivist Data must be object')\n assertEx(Array.isArray(data.payloads), 'Archivist Data \"payloads\" field must be array of payloads')\n data.payloads = this.payloadsFromRawPayloads(data.payloads)\n return data\n }\n\n private static payloadsFromRawPayloads(rawPayloads: Payload[]) {\n //validation should be done in here. I don't believe parse does much validation yet.\n return rawPayloads.map((payload) => PayloadWrapper.wrap(payload).payload())\n }\n\n protected override allHandler(): PromisableArray<Payload> {\n return this.memoryArchivist.all()\n }\n\n protected override clearHandler(): void | Promise<void> {\n return this.memoryArchivist.clear()\n }\n\n protected override async commitHandler(): Promise<BoundWitness[]> {\n return await this.memoryArchivist.commit()\n }\n\n protected override deleteHandler(hashes: string[]): PromisableArray<string> {\n return this.memoryArchivist.delete(hashes)\n }\n\n protected override async getHandler(hashes: string[]): Promise<Payload[]> {\n return await this.memoryArchivist.get(hashes)\n }\n\n protected override async insertHandler(payloads: Payload[]): Promise<Payload[]> {\n return await this.memoryArchivist.insert(payloads)\n }\n\n protected override async startHandler() {\n await super.startHandler()\n this._memoryArchivist = await MemoryArchivist.create({ account: await HDWallet.random() })\n try {\n const data = FilesystemArchivist.dataFromRawJson(await this.rawJsonFromFile())\n await this._memoryArchivist.insert(data.payloads)\n } catch (ex) {\n handleError(ex, (error) => {\n this.logger?.error(error.message)\n })\n return false\n }\n return true\n }\n\n private async rawJsonFromFile() {\n return await readFile(this.filePath, { encoding: 'utf8' })\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;;;;;;;ACAA,sBAAyB;AAEzB,oBAAyB;AACzB,mBAA4B;AAE5B,qBAAyB;AACzB,gCAAkC;AAClC,8BAAgC;AAChC,6BAMO;AAEP,0BAAiD;AAEjD,6BAA+B;;;;;;;;;;;;AAOxB,IAAMA,kCAAmE;AAazE,IAAMC,uBAAN,MAAMA,6BACHC,4CAAAA;EAKAC;EAER,IAAIC,WAAW;;AACb,aAAO,UAAKC,WAAL,mBAAaD,aAAY;EAClC;EAEA,IAAaE,UAAU;AACrB,WAAO;MAACC;MAAyBC;SAA+B,MAAMF;;EACxE;EAEA,IAAYG,kBAAkB;AAC5B,eAAOC,wBAAS,KAAKP,gBAAgB;EACvC;EAEA,OAAeQ,gBAAgBC,SAAiB;AAC9C,UAAMC,OAAgCC,KAAKC,MAAMH,OAAAA;AACjDF,gCAAS,OAAOG,SAAS,UAAU,+BAAA;AACnCH,gCAASM,MAAMC,QAAQJ,KAAKK,QAAQ,GAAG,2DAAA;AACvCL,SAAKK,WAAW,KAAKC,wBAAwBN,KAAKK,QAAQ;AAC1D,WAAOL;EACT;EAEA,OAAeM,wBAAwBC,aAAwB;AAE7D,WAAOA,YAAYC,IAAI,CAACC,YAAYC,sCAAeC,KAAKF,OAAAA,EAASA,QAAO,CAAA;EAC1E;EAEmBG,aAAuC;AACxD,WAAO,KAAKhB,gBAAgBiB,IAAG;EACjC;EAEmBC,eAAqC;AACtD,WAAO,KAAKlB,gBAAgBmB,MAAK;EACnC;EAEA,MAAyBC,gBAAyC;AAChE,WAAO,MAAM,KAAKpB,gBAAgBqB,OAAM;EAC1C;EAEmBC,cAAcC,QAA2C;AAC1E,WAAO,KAAKvB,gBAAgBwB,OAAOD,MAAAA;EACrC;EAEA,MAAyBE,WAAWF,QAAsC;AACxE,WAAO,MAAM,KAAKvB,gBAAgB0B,IAAIH,MAAAA;EACxC;EAEA,MAAyBI,cAAclB,UAAyC;AAC9E,WAAO,MAAM,KAAKT,gBAAgB4B,OAAOnB,QAAAA;EAC3C;EAEA,MAAyBoB,eAAe;AACtC,UAAM,MAAMA,aAAAA;AACZ,SAAKnC,mBAAmB,MAAMoC,wCAAgBC,OAAO;MAAEC,SAAS,MAAMC,wBAASC,OAAM;IAAG,CAAA;AACxF,QAAI;AACF,YAAM9B,OAAOZ,qBAAoBU,gBAAgB,MAAM,KAAKiC,gBAAe,CAAA;AAC3E,YAAM,KAAKzC,iBAAiBkC,OAAOxB,KAAKK,QAAQ;IAClD,SAAS2B,IAAI;AACXC,oCAAYD,IAAI,CAACE,UAAAA;;AACf,mBAAKC,WAAL,mBAAaD,MAAMA,MAAME;MAC3B,CAAA;AACA,aAAO;IACT;AACA,WAAO;EACT;EAEA,MAAcL,kBAAkB;AAC9B,WAAO,UAAMM,0BAAS,KAAK9C,UAAU;MAAE+C,UAAU;IAAO,CAAA;EAC1D;AACF;AA1EUjD;AAGR,cAJWD,sBAIKmD,iBAAgB;EAACpD;;AAJ5B,IAAMC,sBAAN;AAAMA,sBAAAA,aAAAA;MADZoD,qCAAAA;GACYpD,mBAAAA;","names":["FilesystemArchivistConfigSchema","FilesystemArchivist","AbstractArchivist","_memoryArchivist","filePath","config","queries","ArchivistAllQuerySchema","ArchivistCommitQuerySchema","memoryArchivist","assertEx","dataFromRawJson","rawJson","data","JSON","parse","Array","isArray","payloads","payloadsFromRawPayloads","rawPayloads","map","payload","PayloadWrapper","wrap","allHandler","all","clearHandler","clear","commitHandler","commit","deleteHandler","hashes","delete","getHandler","get","insertHandler","insert","startHandler","MemoryArchivist","create","account","HDWallet","random","rawJsonFromFile","ex","handleError","error","logger","message","readFile","encoding","configSchemas","creatableModule"]}
1
+ {"version":3,"sources":["../../src/index.ts","../../src/FilesystemArchivist.ts"],"sourcesContent":["export * from './FilesystemArchivist'\n","import { readFile } from 'node:fs/promises'\n\nimport { assertEx } from '@xylabs/assert'\nimport { handleError } from '@xylabs/error'\nimport { PromisableArray } from '@xylabs/promise'\nimport { HDWallet } from '@xyo-network/account'\nimport { AbstractArchivist } from '@xyo-network/archivist-abstract'\nimport { MemoryArchivist } from '@xyo-network/archivist-memory'\nimport {\n ArchivistAllQuerySchema,\n ArchivistCommitQuerySchema,\n ArchivistConfig,\n ArchivistInstance,\n ArchivistParams,\n} from '@xyo-network/archivist-model'\nimport { BoundWitness } from '@xyo-network/boundwitness-model'\nimport { AnyConfigSchema, creatableModule } from '@xyo-network/module-model'\nimport { PayloadBuilder } from '@xyo-network/payload-builder'\nimport { Payload } from '@xyo-network/payload-model'\nimport { PayloadWrapper } from '@xyo-network/payload-wrapper'\n\nexport interface FileSystemArchivistData {\n payloads: Payload[]\n}\n\nexport type FilesystemArchivistConfigSchema = 'network.xyo.archivist.filesystem.config'\nexport const FilesystemArchivistConfigSchema: FilesystemArchivistConfigSchema = 'network.xyo.archivist.filesystem.config'\n\nexport type FilesystemArchivistConfig = ArchivistConfig<{\n filePath?: string\n schema: FilesystemArchivistConfigSchema\n}>\n\nexport type FilesystemArchivistParams = ArchivistParams<AnyConfigSchema<FilesystemArchivistConfig>>\n\n/** @description Currently only a read-only archivist that loads payloads from filesystem\n * but allows for future expansion to read/write\n */\n@creatableModule()\nexport class FilesystemArchivist<TParams extends FilesystemArchivistParams = FilesystemArchivistParams>\n extends AbstractArchivist<TParams>\n implements ArchivistInstance\n{\n static override configSchemas = [FilesystemArchivistConfigSchema]\n\n private _memoryArchivist?: MemoryArchivist\n\n get filePath() {\n return this.config?.filePath ?? 'archivist.xyo.json'\n }\n\n override get queries() {\n return [ArchivistAllQuerySchema, ArchivistCommitQuerySchema, ...super.queries]\n }\n\n private get memoryArchivist() {\n return assertEx(this._memoryArchivist)\n }\n\n private static async dataFromRawJson(rawJson: string) {\n const data: FileSystemArchivistData = JSON.parse(rawJson)\n assertEx(typeof data === 'object', 'Archivist Data must be object')\n assertEx(Array.isArray(data.payloads), 'Archivist Data \"payloads\" field must be array of payloads')\n data.payloads = await this.payloadsFromRawPayloads(data.payloads)\n return data\n }\n\n private static async payloadsFromRawPayloads(rawPayloads: Payload[]) {\n //validation should be done in here. I don't believe parse does much validation yet.\n return await Promise.all(rawPayloads.map(async (payload) => (await PayloadWrapper.wrap(payload)).jsonPayload()))\n }\n\n protected override allHandler(): PromisableArray<Payload> {\n return this.memoryArchivist.all()\n }\n\n protected override clearHandler(): void | Promise<void> {\n return this.memoryArchivist.clear()\n }\n\n protected override async commitHandler(): Promise<BoundWitness[]> {\n return await this.memoryArchivist.commit()\n }\n\n protected override deleteHandler(hashes: string[]): PromisableArray<string> {\n return this.memoryArchivist.delete(hashes)\n }\n\n protected override async getHandler(hashes: string[]): Promise<Payload[]> {\n return await this.memoryArchivist.get(hashes)\n }\n\n protected override async insertHandler(payloads: Payload[]): Promise<Payload[]> {\n return await this.memoryArchivist.insert(payloads)\n }\n\n protected override async startHandler() {\n await super.startHandler()\n this._memoryArchivist = await MemoryArchivist.create({ account: await HDWallet.random() })\n try {\n const data = await FilesystemArchivist.dataFromRawJson(await this.rawJsonFromFile())\n await this._memoryArchivist.insert(await Promise.all(data.payloads.map((payload) => PayloadBuilder.build(payload))))\n } catch (ex) {\n handleError(ex, (error) => {\n this.logger?.error(error.message)\n })\n return false\n }\n return true\n }\n\n private async rawJsonFromFile() {\n return await readFile(this.filePath, { encoding: 'utf8' })\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;;;;;;;ACAA,sBAAyB;AAEzB,oBAAyB;AACzB,mBAA4B;AAE5B,qBAAyB;AACzB,gCAAkC;AAClC,8BAAgC;AAChC,6BAMO;AAEP,0BAAiD;AACjD,6BAA+B;AAE/B,6BAA+B;;;;;;;;;;;;AAOxB,IAAMA,kCAAmE;AAazE,IAAMC,uBAAN,MAAMA,6BACHC,4CAAAA;EAKAC;EAER,IAAIC,WAAW;;AACb,aAAO,UAAKC,WAAL,mBAAaD,aAAY;EAClC;EAEA,IAAaE,UAAU;AACrB,WAAO;MAACC;MAAyBC;SAA+B,MAAMF;;EACxE;EAEA,IAAYG,kBAAkB;AAC5B,eAAOC,wBAAS,KAAKP,gBAAgB;EACvC;EAEA,aAAqBQ,gBAAgBC,SAAiB;AACpD,UAAMC,OAAgCC,KAAKC,MAAMH,OAAAA;AACjDF,gCAAS,OAAOG,SAAS,UAAU,+BAAA;AACnCH,gCAASM,MAAMC,QAAQJ,KAAKK,QAAQ,GAAG,2DAAA;AACvCL,SAAKK,WAAW,MAAM,KAAKC,wBAAwBN,KAAKK,QAAQ;AAChE,WAAOL;EACT;EAEA,aAAqBM,wBAAwBC,aAAwB;AAEnE,WAAO,MAAMC,QAAQC,IAAIF,YAAYG,IAAI,OAAOC,aAAa,MAAMC,sCAAeC,KAAKF,OAAAA,GAAUG,YAAW,CAAA,CAAA;EAC9G;EAEmBC,aAAuC;AACxD,WAAO,KAAKnB,gBAAgBa,IAAG;EACjC;EAEmBO,eAAqC;AACtD,WAAO,KAAKpB,gBAAgBqB,MAAK;EACnC;EAEA,MAAyBC,gBAAyC;AAChE,WAAO,MAAM,KAAKtB,gBAAgBuB,OAAM;EAC1C;EAEmBC,cAAcC,QAA2C;AAC1E,WAAO,KAAKzB,gBAAgB0B,OAAOD,MAAAA;EACrC;EAEA,MAAyBE,WAAWF,QAAsC;AACxE,WAAO,MAAM,KAAKzB,gBAAgB4B,IAAIH,MAAAA;EACxC;EAEA,MAAyBI,cAAcpB,UAAyC;AAC9E,WAAO,MAAM,KAAKT,gBAAgB8B,OAAOrB,QAAAA;EAC3C;EAEA,MAAyBsB,eAAe;AACtC,UAAM,MAAMA,aAAAA;AACZ,SAAKrC,mBAAmB,MAAMsC,wCAAgBC,OAAO;MAAEC,SAAS,MAAMC,wBAASC,OAAM;IAAG,CAAA;AACxF,QAAI;AACF,YAAMhC,OAAO,MAAMZ,qBAAoBU,gBAAgB,MAAM,KAAKmC,gBAAe,CAAA;AACjF,YAAM,KAAK3C,iBAAiBoC,OAAO,MAAMlB,QAAQC,IAAIT,KAAKK,SAASK,IAAI,CAACC,YAAYuB,sCAAeC,MAAMxB,OAAAA,CAAAA,CAAAA,CAAAA;IAC3G,SAASyB,IAAI;AACXC,oCAAYD,IAAI,CAACE,UAAAA;;AACf,mBAAKC,WAAL,mBAAaD,MAAMA,MAAME;MAC3B,CAAA;AACA,aAAO;IACT;AACA,WAAO;EACT;EAEA,MAAcP,kBAAkB;AAC9B,WAAO,UAAMQ,0BAAS,KAAKlD,UAAU;MAAEmD,UAAU;IAAO,CAAA;EAC1D;AACF;AA1EUrD;AAGR,cAJWD,sBAIKuD,iBAAgB;EAACxD;;AAJ5B,IAAMC,sBAAN;AAAMA,sBAAAA,aAAAA;MADZwD,qCAAAA;GACYxD,mBAAAA;","names":["FilesystemArchivistConfigSchema","FilesystemArchivist","AbstractArchivist","_memoryArchivist","filePath","config","queries","ArchivistAllQuerySchema","ArchivistCommitQuerySchema","memoryArchivist","assertEx","dataFromRawJson","rawJson","data","JSON","parse","Array","isArray","payloads","payloadsFromRawPayloads","rawPayloads","Promise","all","map","payload","PayloadWrapper","wrap","jsonPayload","allHandler","clearHandler","clear","commitHandler","commit","deleteHandler","hashes","delete","getHandler","get","insertHandler","insert","startHandler","MemoryArchivist","create","account","HDWallet","random","rawJsonFromFile","PayloadBuilder","build","ex","handleError","error","logger","message","readFile","encoding","configSchemas","creatableModule"]}
@@ -15,6 +15,7 @@ import { AbstractArchivist } from "@xyo-network/archivist-abstract";
15
15
  import { MemoryArchivist } from "@xyo-network/archivist-memory";
16
16
  import { ArchivistAllQuerySchema, ArchivistCommitQuerySchema } from "@xyo-network/archivist-model";
17
17
  import { creatableModule } from "@xyo-network/module-model";
18
+ import { PayloadBuilder } from "@xyo-network/payload-builder";
18
19
  import { PayloadWrapper } from "@xyo-network/payload-wrapper";
19
20
  function _ts_decorate(decorators, target, key, desc) {
20
21
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
@@ -44,15 +45,15 @@ var _FilesystemArchivist = class _FilesystemArchivist extends AbstractArchivist
44
45
  get memoryArchivist() {
45
46
  return assertEx(this._memoryArchivist);
46
47
  }
47
- static dataFromRawJson(rawJson) {
48
+ static async dataFromRawJson(rawJson) {
48
49
  const data = JSON.parse(rawJson);
49
50
  assertEx(typeof data === "object", "Archivist Data must be object");
50
51
  assertEx(Array.isArray(data.payloads), 'Archivist Data "payloads" field must be array of payloads');
51
- data.payloads = this.payloadsFromRawPayloads(data.payloads);
52
+ data.payloads = await this.payloadsFromRawPayloads(data.payloads);
52
53
  return data;
53
54
  }
54
- static payloadsFromRawPayloads(rawPayloads) {
55
- return rawPayloads.map((payload) => PayloadWrapper.wrap(payload).payload());
55
+ static async payloadsFromRawPayloads(rawPayloads) {
56
+ return await Promise.all(rawPayloads.map(async (payload) => (await PayloadWrapper.wrap(payload)).jsonPayload()));
56
57
  }
57
58
  allHandler() {
58
59
  return this.memoryArchivist.all();
@@ -78,8 +79,8 @@ var _FilesystemArchivist = class _FilesystemArchivist extends AbstractArchivist
78
79
  account: await HDWallet.random()
79
80
  });
80
81
  try {
81
- const data = _FilesystemArchivist.dataFromRawJson(await this.rawJsonFromFile());
82
- await this._memoryArchivist.insert(data.payloads);
82
+ const data = await _FilesystemArchivist.dataFromRawJson(await this.rawJsonFromFile());
83
+ await this._memoryArchivist.insert(await Promise.all(data.payloads.map((payload) => PayloadBuilder.build(payload))));
83
84
  } catch (ex) {
84
85
  handleError(ex, (error) => {
85
86
  var _a;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/FilesystemArchivist.ts"],"sourcesContent":["import { readFile } from 'node:fs/promises'\n\nimport { assertEx } from '@xylabs/assert'\nimport { handleError } from '@xylabs/error'\nimport { PromisableArray } from '@xylabs/promise'\nimport { HDWallet } from '@xyo-network/account'\nimport { AbstractArchivist } from '@xyo-network/archivist-abstract'\nimport { MemoryArchivist } from '@xyo-network/archivist-memory'\nimport {\n ArchivistAllQuerySchema,\n ArchivistCommitQuerySchema,\n ArchivistConfig,\n ArchivistInstance,\n ArchivistParams,\n} from '@xyo-network/archivist-model'\nimport { BoundWitness } from '@xyo-network/boundwitness-model'\nimport { AnyConfigSchema, creatableModule } from '@xyo-network/module-model'\nimport { Payload } from '@xyo-network/payload-model'\nimport { PayloadWrapper } from '@xyo-network/payload-wrapper'\n\nexport interface FileSystemArchivistData {\n payloads: Payload[]\n}\n\nexport type FilesystemArchivistConfigSchema = 'network.xyo.archivist.filesystem.config'\nexport const FilesystemArchivistConfigSchema: FilesystemArchivistConfigSchema = 'network.xyo.archivist.filesystem.config'\n\nexport type FilesystemArchivistConfig = ArchivistConfig<{\n filePath?: string\n schema: FilesystemArchivistConfigSchema\n}>\n\nexport type FilesystemArchivistParams = ArchivistParams<AnyConfigSchema<FilesystemArchivistConfig>>\n\n/** @description Currently only a read-only archivist that loads payloads from filesystem\n * but allows for future expansion to read/write\n */\n@creatableModule()\nexport class FilesystemArchivist<TParams extends FilesystemArchivistParams = FilesystemArchivistParams>\n extends AbstractArchivist<TParams>\n implements ArchivistInstance\n{\n static override configSchemas = [FilesystemArchivistConfigSchema]\n\n private _memoryArchivist?: MemoryArchivist\n\n get filePath() {\n return this.config?.filePath ?? 'archivist.xyo.json'\n }\n\n override get queries() {\n return [ArchivistAllQuerySchema, ArchivistCommitQuerySchema, ...super.queries]\n }\n\n private get memoryArchivist() {\n return assertEx(this._memoryArchivist)\n }\n\n private static dataFromRawJson(rawJson: string) {\n const data: FileSystemArchivistData = JSON.parse(rawJson)\n assertEx(typeof data === 'object', 'Archivist Data must be object')\n assertEx(Array.isArray(data.payloads), 'Archivist Data \"payloads\" field must be array of payloads')\n data.payloads = this.payloadsFromRawPayloads(data.payloads)\n return data\n }\n\n private static payloadsFromRawPayloads(rawPayloads: Payload[]) {\n //validation should be done in here. I don't believe parse does much validation yet.\n return rawPayloads.map((payload) => PayloadWrapper.wrap(payload).payload())\n }\n\n protected override allHandler(): PromisableArray<Payload> {\n return this.memoryArchivist.all()\n }\n\n protected override clearHandler(): void | Promise<void> {\n return this.memoryArchivist.clear()\n }\n\n protected override async commitHandler(): Promise<BoundWitness[]> {\n return await this.memoryArchivist.commit()\n }\n\n protected override deleteHandler(hashes: string[]): PromisableArray<string> {\n return this.memoryArchivist.delete(hashes)\n }\n\n protected override async getHandler(hashes: string[]): Promise<Payload[]> {\n return await this.memoryArchivist.get(hashes)\n }\n\n protected override async insertHandler(payloads: Payload[]): Promise<Payload[]> {\n return await this.memoryArchivist.insert(payloads)\n }\n\n protected override async startHandler() {\n await super.startHandler()\n this._memoryArchivist = await MemoryArchivist.create({ account: await HDWallet.random() })\n try {\n const data = FilesystemArchivist.dataFromRawJson(await this.rawJsonFromFile())\n await this._memoryArchivist.insert(data.payloads)\n } catch (ex) {\n handleError(ex, (error) => {\n this.logger?.error(error.message)\n })\n return false\n }\n return true\n }\n\n private async rawJsonFromFile() {\n return await readFile(this.filePath, { encoding: 'utf8' })\n }\n}\n"],"mappings":";;;;;;;;;AAAA,SAASA,gBAAgB;AAEzB,SAASC,gBAAgB;AACzB,SAASC,mBAAmB;AAE5B,SAASC,gBAAgB;AACzB,SAASC,yBAAyB;AAClC,SAASC,uBAAuB;AAChC,SACEC,yBACAC,kCAIK;AAEP,SAA0BC,uBAAuB;AAEjD,SAASC,sBAAsB;;;;;;;;;;;;AAOxB,IAAMC,kCAAmE;AAazE,IAAMC,uBAAN,MAAMA,6BACHC,kBAAAA;EAKAC;EAER,IAAIC,WAAW;;AACb,aAAO,UAAKC,WAAL,mBAAaD,aAAY;EAClC;EAEA,IAAaE,UAAU;AACrB,WAAO;MAACC;MAAyBC;SAA+B,MAAMF;;EACxE;EAEA,IAAYG,kBAAkB;AAC5B,WAAOC,SAAS,KAAKP,gBAAgB;EACvC;EAEA,OAAeQ,gBAAgBC,SAAiB;AAC9C,UAAMC,OAAgCC,KAAKC,MAAMH,OAAAA;AACjDF,aAAS,OAAOG,SAAS,UAAU,+BAAA;AACnCH,aAASM,MAAMC,QAAQJ,KAAKK,QAAQ,GAAG,2DAAA;AACvCL,SAAKK,WAAW,KAAKC,wBAAwBN,KAAKK,QAAQ;AAC1D,WAAOL;EACT;EAEA,OAAeM,wBAAwBC,aAAwB;AAE7D,WAAOA,YAAYC,IAAI,CAACC,YAAYC,eAAeC,KAAKF,OAAAA,EAASA,QAAO,CAAA;EAC1E;EAEmBG,aAAuC;AACxD,WAAO,KAAKhB,gBAAgBiB,IAAG;EACjC;EAEmBC,eAAqC;AACtD,WAAO,KAAKlB,gBAAgBmB,MAAK;EACnC;EAEA,MAAyBC,gBAAyC;AAChE,WAAO,MAAM,KAAKpB,gBAAgBqB,OAAM;EAC1C;EAEmBC,cAAcC,QAA2C;AAC1E,WAAO,KAAKvB,gBAAgBwB,OAAOD,MAAAA;EACrC;EAEA,MAAyBE,WAAWF,QAAsC;AACxE,WAAO,MAAM,KAAKvB,gBAAgB0B,IAAIH,MAAAA;EACxC;EAEA,MAAyBI,cAAclB,UAAyC;AAC9E,WAAO,MAAM,KAAKT,gBAAgB4B,OAAOnB,QAAAA;EAC3C;EAEA,MAAyBoB,eAAe;AACtC,UAAM,MAAMA,aAAAA;AACZ,SAAKnC,mBAAmB,MAAMoC,gBAAgBC,OAAO;MAAEC,SAAS,MAAMC,SAASC,OAAM;IAAG,CAAA;AACxF,QAAI;AACF,YAAM9B,OAAOZ,qBAAoBU,gBAAgB,MAAM,KAAKiC,gBAAe,CAAA;AAC3E,YAAM,KAAKzC,iBAAiBkC,OAAOxB,KAAKK,QAAQ;IAClD,SAAS2B,IAAI;AACXC,kBAAYD,IAAI,CAACE,UAAAA;;AACf,mBAAKC,WAAL,mBAAaD,MAAMA,MAAME;MAC3B,CAAA;AACA,aAAO;IACT;AACA,WAAO;EACT;EAEA,MAAcL,kBAAkB;AAC9B,WAAO,MAAMM,SAAS,KAAK9C,UAAU;MAAE+C,UAAU;IAAO,CAAA;EAC1D;AACF;AA1EUjD;AAGR,cAJWD,sBAIKmD,iBAAgB;EAACpD;;AAJ5B,IAAMC,sBAAN;AAAMA,sBAAAA,aAAAA;EADZoD,gBAAAA;GACYpD,mBAAAA;","names":["readFile","assertEx","handleError","HDWallet","AbstractArchivist","MemoryArchivist","ArchivistAllQuerySchema","ArchivistCommitQuerySchema","creatableModule","PayloadWrapper","FilesystemArchivistConfigSchema","FilesystemArchivist","AbstractArchivist","_memoryArchivist","filePath","config","queries","ArchivistAllQuerySchema","ArchivistCommitQuerySchema","memoryArchivist","assertEx","dataFromRawJson","rawJson","data","JSON","parse","Array","isArray","payloads","payloadsFromRawPayloads","rawPayloads","map","payload","PayloadWrapper","wrap","allHandler","all","clearHandler","clear","commitHandler","commit","deleteHandler","hashes","delete","getHandler","get","insertHandler","insert","startHandler","MemoryArchivist","create","account","HDWallet","random","rawJsonFromFile","ex","handleError","error","logger","message","readFile","encoding","configSchemas","creatableModule"]}
1
+ {"version":3,"sources":["../../src/FilesystemArchivist.ts"],"sourcesContent":["import { readFile } from 'node:fs/promises'\n\nimport { assertEx } from '@xylabs/assert'\nimport { handleError } from '@xylabs/error'\nimport { PromisableArray } from '@xylabs/promise'\nimport { HDWallet } from '@xyo-network/account'\nimport { AbstractArchivist } from '@xyo-network/archivist-abstract'\nimport { MemoryArchivist } from '@xyo-network/archivist-memory'\nimport {\n ArchivistAllQuerySchema,\n ArchivistCommitQuerySchema,\n ArchivistConfig,\n ArchivistInstance,\n ArchivistParams,\n} from '@xyo-network/archivist-model'\nimport { BoundWitness } from '@xyo-network/boundwitness-model'\nimport { AnyConfigSchema, creatableModule } from '@xyo-network/module-model'\nimport { PayloadBuilder } from '@xyo-network/payload-builder'\nimport { Payload } from '@xyo-network/payload-model'\nimport { PayloadWrapper } from '@xyo-network/payload-wrapper'\n\nexport interface FileSystemArchivistData {\n payloads: Payload[]\n}\n\nexport type FilesystemArchivistConfigSchema = 'network.xyo.archivist.filesystem.config'\nexport const FilesystemArchivistConfigSchema: FilesystemArchivistConfigSchema = 'network.xyo.archivist.filesystem.config'\n\nexport type FilesystemArchivistConfig = ArchivistConfig<{\n filePath?: string\n schema: FilesystemArchivistConfigSchema\n}>\n\nexport type FilesystemArchivistParams = ArchivistParams<AnyConfigSchema<FilesystemArchivistConfig>>\n\n/** @description Currently only a read-only archivist that loads payloads from filesystem\n * but allows for future expansion to read/write\n */\n@creatableModule()\nexport class FilesystemArchivist<TParams extends FilesystemArchivistParams = FilesystemArchivistParams>\n extends AbstractArchivist<TParams>\n implements ArchivistInstance\n{\n static override configSchemas = [FilesystemArchivistConfigSchema]\n\n private _memoryArchivist?: MemoryArchivist\n\n get filePath() {\n return this.config?.filePath ?? 'archivist.xyo.json'\n }\n\n override get queries() {\n return [ArchivistAllQuerySchema, ArchivistCommitQuerySchema, ...super.queries]\n }\n\n private get memoryArchivist() {\n return assertEx(this._memoryArchivist)\n }\n\n private static async dataFromRawJson(rawJson: string) {\n const data: FileSystemArchivistData = JSON.parse(rawJson)\n assertEx(typeof data === 'object', 'Archivist Data must be object')\n assertEx(Array.isArray(data.payloads), 'Archivist Data \"payloads\" field must be array of payloads')\n data.payloads = await this.payloadsFromRawPayloads(data.payloads)\n return data\n }\n\n private static async payloadsFromRawPayloads(rawPayloads: Payload[]) {\n //validation should be done in here. I don't believe parse does much validation yet.\n return await Promise.all(rawPayloads.map(async (payload) => (await PayloadWrapper.wrap(payload)).jsonPayload()))\n }\n\n protected override allHandler(): PromisableArray<Payload> {\n return this.memoryArchivist.all()\n }\n\n protected override clearHandler(): void | Promise<void> {\n return this.memoryArchivist.clear()\n }\n\n protected override async commitHandler(): Promise<BoundWitness[]> {\n return await this.memoryArchivist.commit()\n }\n\n protected override deleteHandler(hashes: string[]): PromisableArray<string> {\n return this.memoryArchivist.delete(hashes)\n }\n\n protected override async getHandler(hashes: string[]): Promise<Payload[]> {\n return await this.memoryArchivist.get(hashes)\n }\n\n protected override async insertHandler(payloads: Payload[]): Promise<Payload[]> {\n return await this.memoryArchivist.insert(payloads)\n }\n\n protected override async startHandler() {\n await super.startHandler()\n this._memoryArchivist = await MemoryArchivist.create({ account: await HDWallet.random() })\n try {\n const data = await FilesystemArchivist.dataFromRawJson(await this.rawJsonFromFile())\n await this._memoryArchivist.insert(await Promise.all(data.payloads.map((payload) => PayloadBuilder.build(payload))))\n } catch (ex) {\n handleError(ex, (error) => {\n this.logger?.error(error.message)\n })\n return false\n }\n return true\n }\n\n private async rawJsonFromFile() {\n return await readFile(this.filePath, { encoding: 'utf8' })\n }\n}\n"],"mappings":";;;;;;;;;AAAA,SAASA,gBAAgB;AAEzB,SAASC,gBAAgB;AACzB,SAASC,mBAAmB;AAE5B,SAASC,gBAAgB;AACzB,SAASC,yBAAyB;AAClC,SAASC,uBAAuB;AAChC,SACEC,yBACAC,kCAIK;AAEP,SAA0BC,uBAAuB;AACjD,SAASC,sBAAsB;AAE/B,SAASC,sBAAsB;;;;;;;;;;;;AAOxB,IAAMC,kCAAmE;AAazE,IAAMC,uBAAN,MAAMA,6BACHC,kBAAAA;EAKAC;EAER,IAAIC,WAAW;;AACb,aAAO,UAAKC,WAAL,mBAAaD,aAAY;EAClC;EAEA,IAAaE,UAAU;AACrB,WAAO;MAACC;MAAyBC;SAA+B,MAAMF;;EACxE;EAEA,IAAYG,kBAAkB;AAC5B,WAAOC,SAAS,KAAKP,gBAAgB;EACvC;EAEA,aAAqBQ,gBAAgBC,SAAiB;AACpD,UAAMC,OAAgCC,KAAKC,MAAMH,OAAAA;AACjDF,aAAS,OAAOG,SAAS,UAAU,+BAAA;AACnCH,aAASM,MAAMC,QAAQJ,KAAKK,QAAQ,GAAG,2DAAA;AACvCL,SAAKK,WAAW,MAAM,KAAKC,wBAAwBN,KAAKK,QAAQ;AAChE,WAAOL;EACT;EAEA,aAAqBM,wBAAwBC,aAAwB;AAEnE,WAAO,MAAMC,QAAQC,IAAIF,YAAYG,IAAI,OAAOC,aAAa,MAAMC,eAAeC,KAAKF,OAAAA,GAAUG,YAAW,CAAA,CAAA;EAC9G;EAEmBC,aAAuC;AACxD,WAAO,KAAKnB,gBAAgBa,IAAG;EACjC;EAEmBO,eAAqC;AACtD,WAAO,KAAKpB,gBAAgBqB,MAAK;EACnC;EAEA,MAAyBC,gBAAyC;AAChE,WAAO,MAAM,KAAKtB,gBAAgBuB,OAAM;EAC1C;EAEmBC,cAAcC,QAA2C;AAC1E,WAAO,KAAKzB,gBAAgB0B,OAAOD,MAAAA;EACrC;EAEA,MAAyBE,WAAWF,QAAsC;AACxE,WAAO,MAAM,KAAKzB,gBAAgB4B,IAAIH,MAAAA;EACxC;EAEA,MAAyBI,cAAcpB,UAAyC;AAC9E,WAAO,MAAM,KAAKT,gBAAgB8B,OAAOrB,QAAAA;EAC3C;EAEA,MAAyBsB,eAAe;AACtC,UAAM,MAAMA,aAAAA;AACZ,SAAKrC,mBAAmB,MAAMsC,gBAAgBC,OAAO;MAAEC,SAAS,MAAMC,SAASC,OAAM;IAAG,CAAA;AACxF,QAAI;AACF,YAAMhC,OAAO,MAAMZ,qBAAoBU,gBAAgB,MAAM,KAAKmC,gBAAe,CAAA;AACjF,YAAM,KAAK3C,iBAAiBoC,OAAO,MAAMlB,QAAQC,IAAIT,KAAKK,SAASK,IAAI,CAACC,YAAYuB,eAAeC,MAAMxB,OAAAA,CAAAA,CAAAA,CAAAA;IAC3G,SAASyB,IAAI;AACXC,kBAAYD,IAAI,CAACE,UAAAA;;AACf,mBAAKC,WAAL,mBAAaD,MAAMA,MAAME;MAC3B,CAAA;AACA,aAAO;IACT;AACA,WAAO;EACT;EAEA,MAAcP,kBAAkB;AAC9B,WAAO,MAAMQ,SAAS,KAAKlD,UAAU;MAAEmD,UAAU;IAAO,CAAA;EAC1D;AACF;AA1EUrD;AAGR,cAJWD,sBAIKuD,iBAAgB;EAACxD;;AAJ5B,IAAMC,sBAAN;AAAMA,sBAAAA,aAAAA;EADZwD,gBAAAA;GACYxD,mBAAAA;","names":["readFile","assertEx","handleError","HDWallet","AbstractArchivist","MemoryArchivist","ArchivistAllQuerySchema","ArchivistCommitQuerySchema","creatableModule","PayloadBuilder","PayloadWrapper","FilesystemArchivistConfigSchema","FilesystemArchivist","AbstractArchivist","_memoryArchivist","filePath","config","queries","ArchivistAllQuerySchema","ArchivistCommitQuerySchema","memoryArchivist","assertEx","dataFromRawJson","rawJson","data","JSON","parse","Array","isArray","payloads","payloadsFromRawPayloads","rawPayloads","Promise","all","map","payload","PayloadWrapper","wrap","jsonPayload","allHandler","clearHandler","clear","commitHandler","commit","deleteHandler","hashes","delete","getHandler","get","insertHandler","insert","startHandler","MemoryArchivist","create","account","HDWallet","random","rawJsonFromFile","PayloadBuilder","build","ex","handleError","error","logger","message","readFile","encoding","configSchemas","creatableModule"]}
package/package.json CHANGED
@@ -13,14 +13,15 @@
13
13
  "@xylabs/assert": "^2.13.29",
14
14
  "@xylabs/error": "^2.13.29",
15
15
  "@xylabs/promise": "^2.13.29",
16
- "@xyo-network/account": "~2.88.3",
17
- "@xyo-network/archivist-abstract": "~2.88.3",
18
- "@xyo-network/archivist-memory": "~2.88.3",
19
- "@xyo-network/archivist-model": "~2.88.3",
20
- "@xyo-network/boundwitness-model": "~2.88.3",
21
- "@xyo-network/module-model": "~2.88.3",
22
- "@xyo-network/payload-model": "~2.88.3",
23
- "@xyo-network/payload-wrapper": "~2.88.3"
16
+ "@xyo-network/account": "~2.89.0-rc.2",
17
+ "@xyo-network/archivist-abstract": "~2.89.0-rc.2",
18
+ "@xyo-network/archivist-memory": "~2.89.0-rc.2",
19
+ "@xyo-network/archivist-model": "~2.89.0-rc.2",
20
+ "@xyo-network/boundwitness-model": "~2.89.0-rc.2",
21
+ "@xyo-network/module-model": "~2.89.0-rc.2",
22
+ "@xyo-network/payload-builder": "~2.89.0-rc.2",
23
+ "@xyo-network/payload-model": "~2.89.0-rc.2",
24
+ "@xyo-network/payload-wrapper": "~2.89.0-rc.2"
24
25
  },
25
26
  "devDependencies": {
26
27
  "@xylabs/ts-scripts-yarn3": "^3.2.42",
@@ -56,6 +57,7 @@
56
57
  "url": "https://github.com/XYOracleNetwork/sdk-xyo-client-js.git"
57
58
  },
58
59
  "sideEffects": false,
59
- "version": "2.88.3",
60
- "type": "module"
60
+ "version": "2.89.0-rc.2",
61
+ "type": "module",
62
+ "stableVersion": "2.88.3"
61
63
  }
@@ -15,6 +15,7 @@ import {
15
15
  } from '@xyo-network/archivist-model'
16
16
  import { BoundWitness } from '@xyo-network/boundwitness-model'
17
17
  import { AnyConfigSchema, creatableModule } from '@xyo-network/module-model'
18
+ import { PayloadBuilder } from '@xyo-network/payload-builder'
18
19
  import { Payload } from '@xyo-network/payload-model'
19
20
  import { PayloadWrapper } from '@xyo-network/payload-wrapper'
20
21
 
@@ -56,17 +57,17 @@ export class FilesystemArchivist<TParams extends FilesystemArchivistParams = Fil
56
57
  return assertEx(this._memoryArchivist)
57
58
  }
58
59
 
59
- private static dataFromRawJson(rawJson: string) {
60
+ private static async dataFromRawJson(rawJson: string) {
60
61
  const data: FileSystemArchivistData = JSON.parse(rawJson)
61
62
  assertEx(typeof data === 'object', 'Archivist Data must be object')
62
63
  assertEx(Array.isArray(data.payloads), 'Archivist Data "payloads" field must be array of payloads')
63
- data.payloads = this.payloadsFromRawPayloads(data.payloads)
64
+ data.payloads = await this.payloadsFromRawPayloads(data.payloads)
64
65
  return data
65
66
  }
66
67
 
67
- private static payloadsFromRawPayloads(rawPayloads: Payload[]) {
68
+ private static async payloadsFromRawPayloads(rawPayloads: Payload[]) {
68
69
  //validation should be done in here. I don't believe parse does much validation yet.
69
- return rawPayloads.map((payload) => PayloadWrapper.wrap(payload).payload())
70
+ return await Promise.all(rawPayloads.map(async (payload) => (await PayloadWrapper.wrap(payload)).jsonPayload()))
70
71
  }
71
72
 
72
73
  protected override allHandler(): PromisableArray<Payload> {
@@ -97,8 +98,8 @@ export class FilesystemArchivist<TParams extends FilesystemArchivistParams = Fil
97
98
  await super.startHandler()
98
99
  this._memoryArchivist = await MemoryArchivist.create({ account: await HDWallet.random() })
99
100
  try {
100
- const data = FilesystemArchivist.dataFromRawJson(await this.rawJsonFromFile())
101
- await this._memoryArchivist.insert(data.payloads)
101
+ const data = await FilesystemArchivist.dataFromRawJson(await this.rawJsonFromFile())
102
+ await this._memoryArchivist.insert(await Promise.all(data.payloads.map((payload) => PayloadBuilder.build(payload))))
102
103
  } catch (ex) {
103
104
  handleError(ex, (error) => {
104
105
  this.logger?.error(error.message)