@xyo-network/filesystem-archivist 2.110.19 → 2.111.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"FilesystemArchivist.d.ts","sourceRoot":"","sources":["../../src/FilesystemArchivist.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,IAAI,EAAE,MAAM,aAAa,CAAA;AAClC,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,eAAe,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAA;AAEvF,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;AAKnG,qBACa,mBAAmB,CAAC,OAAO,SAAS,yBAAyB,GAAG,yBAAyB,CACpG,SAAQ,iBAAiB,CAAC,OAAO,CACjC,YAAW,iBAAiB;IAE5B,gBAAyB,aAAa,EAAE,MAAM,EAAE,CAA4D;IAC5G,gBAAyB,mBAAmB,EAAE,MAAM,CAAkC;IAEtF,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,eAAe,CAAC;cAI9C,YAAY,IAAI,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;cAI9B,aAAa,IAAI,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC;cAIxD,aAAa,CAAC,MAAM,EAAE,IAAI,EAAE,GAAG,eAAe,CAAC,IAAI,CAAC;cAI9C,UAAU,CAAC,MAAM,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC;cAItD,aAAa,CAAC,QAAQ,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC;cAI9D,YAAY;YAevB,eAAe;CAG9B"}
1
+ {"version":3,"file":"FilesystemArchivist.d.ts","sourceRoot":"","sources":["../../src/FilesystemArchivist.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,IAAI,EAAE,MAAM,aAAa,CAAA;AAClC,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,eAAe,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAA;AAEvF,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;AAKnG,qBACa,mBAAmB,CAAC,OAAO,SAAS,yBAAyB,GAAG,yBAAyB,CACpG,SAAQ,iBAAiB,CAAC,OAAO,CACjC,YAAW,iBAAiB;IAC5B,gBAAyB,aAAa,EAAE,MAAM,EAAE,CAA4D;IAC5G,gBAAyB,mBAAmB,EAAE,MAAM,CAAkC;IAEtF,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,eAAe,CAAC;cAI9C,YAAY,IAAI,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;cAI9B,aAAa,IAAI,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC;cAIxD,aAAa,CAAC,MAAM,EAAE,IAAI,EAAE,GAAG,eAAe,CAAC,IAAI,CAAC;cAI9C,UAAU,CAAC,MAAM,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC;cAItD,aAAa,CAAC,QAAQ,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC;cAI9D,YAAY;YAevB,eAAe;CAG9B"}
@@ -1 +1 @@
1
- {"version":3,"file":"FilesystemArchivist.d.ts","sourceRoot":"","sources":["../../src/FilesystemArchivist.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,IAAI,EAAE,MAAM,aAAa,CAAA;AAClC,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,eAAe,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAA;AAEvF,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;AAKnG,qBACa,mBAAmB,CAAC,OAAO,SAAS,yBAAyB,GAAG,yBAAyB,CACpG,SAAQ,iBAAiB,CAAC,OAAO,CACjC,YAAW,iBAAiB;IAE5B,gBAAyB,aAAa,EAAE,MAAM,EAAE,CAA4D;IAC5G,gBAAyB,mBAAmB,EAAE,MAAM,CAAkC;IAEtF,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,eAAe,CAAC;cAI9C,YAAY,IAAI,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;cAI9B,aAAa,IAAI,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC;cAIxD,aAAa,CAAC,MAAM,EAAE,IAAI,EAAE,GAAG,eAAe,CAAC,IAAI,CAAC;cAI9C,UAAU,CAAC,MAAM,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC;cAItD,aAAa,CAAC,QAAQ,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC;cAI9D,YAAY;YAevB,eAAe;CAG9B"}
1
+ {"version":3,"file":"FilesystemArchivist.d.ts","sourceRoot":"","sources":["../../src/FilesystemArchivist.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,IAAI,EAAE,MAAM,aAAa,CAAA;AAClC,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,eAAe,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAA;AAEvF,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;AAKnG,qBACa,mBAAmB,CAAC,OAAO,SAAS,yBAAyB,GAAG,yBAAyB,CACpG,SAAQ,iBAAiB,CAAC,OAAO,CACjC,YAAW,iBAAiB;IAC5B,gBAAyB,aAAa,EAAE,MAAM,EAAE,CAA4D;IAC5G,gBAAyB,mBAAmB,EAAE,MAAM,CAAkC;IAEtF,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,eAAe,CAAC;cAI9C,YAAY,IAAI,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;cAI9B,aAAa,IAAI,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC;cAIxD,aAAa,CAAC,MAAM,EAAE,IAAI,EAAE,GAAG,eAAe,CAAC,IAAI,CAAC;cAI9C,UAAU,CAAC,MAAM,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC;cAItD,aAAa,CAAC,QAAQ,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC;cAI9D,YAAY;YAevB,eAAe;CAG9B"}
@@ -1 +1 @@
1
- {"version":3,"file":"FilesystemArchivist.d.ts","sourceRoot":"","sources":["../../src/FilesystemArchivist.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,IAAI,EAAE,MAAM,aAAa,CAAA;AAClC,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,eAAe,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAA;AAEvF,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;AAKnG,qBACa,mBAAmB,CAAC,OAAO,SAAS,yBAAyB,GAAG,yBAAyB,CACpG,SAAQ,iBAAiB,CAAC,OAAO,CACjC,YAAW,iBAAiB;IAE5B,gBAAyB,aAAa,EAAE,MAAM,EAAE,CAA4D;IAC5G,gBAAyB,mBAAmB,EAAE,MAAM,CAAkC;IAEtF,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,eAAe,CAAC;cAI9C,YAAY,IAAI,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;cAI9B,aAAa,IAAI,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC;cAIxD,aAAa,CAAC,MAAM,EAAE,IAAI,EAAE,GAAG,eAAe,CAAC,IAAI,CAAC;cAI9C,UAAU,CAAC,MAAM,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC;cAItD,aAAa,CAAC,QAAQ,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC;cAI9D,YAAY;YAevB,eAAe;CAG9B"}
1
+ {"version":3,"file":"FilesystemArchivist.d.ts","sourceRoot":"","sources":["../../src/FilesystemArchivist.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,IAAI,EAAE,MAAM,aAAa,CAAA;AAClC,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,eAAe,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAA;AAEvF,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;AAKnG,qBACa,mBAAmB,CAAC,OAAO,SAAS,yBAAyB,GAAG,yBAAyB,CACpG,SAAQ,iBAAiB,CAAC,OAAO,CACjC,YAAW,iBAAiB;IAC5B,gBAAyB,aAAa,EAAE,MAAM,EAAE,CAA4D;IAC5G,gBAAyB,mBAAmB,EAAE,MAAM,CAAkC;IAEtF,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,eAAe,CAAC;cAI9C,YAAY,IAAI,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;cAI9B,aAAa,IAAI,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC;cAIxD,aAAa,CAAC,MAAM,EAAE,IAAI,EAAE,GAAG,eAAe,CAAC,IAAI,CAAC;cAI9C,UAAU,CAAC,MAAM,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC;cAItD,aAAa,CAAC,QAAQ,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC;cAI9D,YAAY;YAevB,eAAe;CAG9B"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/index.ts","../../src/FilesystemArchivist.ts"],"sourcesContent":["export * from './FilesystemArchivist.ts'\n","import { readFile } from 'node:fs/promises'\n\nimport { assertEx } from '@xylabs/assert'\nimport { handleError } from '@xylabs/error'\nimport { Hash } from '@xylabs/hex'\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, PayloadWithMeta, Schema, WithMeta } from '@xyo-network/payload-model'\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 readonly configSchemas: Schema[] = [...super.configSchemas, FilesystemArchivistConfigSchema]\n static override readonly defaultConfigSchema: Schema = 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 PayloadBuilder.build(payload)))\n }\n\n protected override allHandler(): PromisableArray<PayloadWithMeta> {\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<WithMeta<BoundWitness>[]> {\n return await this.memoryArchivist.commit()\n }\n\n protected override deleteHandler(hashes: Hash[]): PromisableArray<Hash> {\n return this.memoryArchivist.delete(hashes)\n }\n\n protected override async getHandler(hashes: Hash[]): Promise<PayloadWithMeta[]> {\n return await this.memoryArchivist.get(hashes)\n }\n\n protected override async insertHandler(payloads: Payload[]): Promise<PayloadWithMeta[]> {\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;AAG5B,qBAAyB;AACzB,gCAAkC;AAClC,8BAAgC;AAChC,6BAMO;AAEP,0BAAiD;AACjD,6BAA+B;;;;;;;;AAQxB,IAAMA,kCAAmE;AAazE,IAAMC,sBAAN,MAAMA,6BACHC,4CAAAA;SAAAA;;;EAGR,OAAyBC,gBAA0B;OAAI,MAAMA;IAAeH;;EAC5E,OAAyBI,sBAA8BJ;EAE/CK;EAER,IAAIC,WAAW;AACb,WAAO,KAAKC,QAAQD,YAAY;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,MAAM,+BAAA;AACzCH,gCAASM,MAAMC,QAAQJ,KAAKK,QAAQ,GAAG,MAAM,2DAAA;AAC7CL,SAAKK,WAAW,MAAM,KAAKC,wBAAwBN,KAAKK,QAAQ;AAChE,WAAOL;EACT;EAEA,aAAqBM,wBAAwBC,aAAwB;AAEnE,WAAO,MAAMC,QAAQC,IAAIF,YAAYG,IAAI,OAAOC,YAAY,MAAMC,sCAAeC,MAAMF,OAAAA,CAAAA,CAAAA;EACzF;EAEmBG,aAA+C;AAChE,WAAO,KAAKlB,gBAAgBa,IAAG;EACjC;EAEmBM,eAAqC;AACtD,WAAO,KAAKnB,gBAAgBoB,MAAK;EACnC;EAEA,MAAyBC,gBAAmD;AAC1E,WAAO,MAAM,KAAKrB,gBAAgBsB,OAAM;EAC1C;EAEmBC,cAAcC,QAAuC;AACtE,WAAO,KAAKxB,gBAAgByB,OAAOD,MAAAA;EACrC;EAEA,MAAyBE,WAAWF,QAA4C;AAC9E,WAAO,MAAM,KAAKxB,gBAAgB2B,IAAIH,MAAAA;EACxC;EAEA,MAAyBI,cAAcnB,UAAiD;AACtF,WAAO,MAAM,KAAKT,gBAAgB6B,OAAOpB,QAAAA;EAC3C;EAEA,MAAyBqB,eAAe;AACtC,UAAM,MAAMA,aAAAA;AACZ,SAAKpC,mBAAmB,MAAMqC,wCAAgBC,OAAO;MAAEC,SAAS,MAAMC,wBAASC,OAAM;IAAG,CAAA;AACxF,QAAI;AACF,YAAM/B,OAAO,MAAMd,qBAAoBY,gBAAgB,MAAM,KAAKkC,gBAAe,CAAA;AACjF,YAAM,KAAK1C,iBAAiBmC,OAAO,MAAMjB,QAAQC,IAAIT,KAAKK,SAASK,IAAI,CAACC,YAAYC,sCAAeC,MAAMF,OAAAA,CAAAA,CAAAA,CAAAA;IAC3G,SAASsB,IAAI;AACXC,oCAAYD,IAAI,CAACE,UAAAA;AACf,aAAKC,QAAQD,MAAMA,MAAME,OAAO;MAClC,CAAA;AACA,aAAO;IACT;AACA,WAAO;EACT;EAEA,MAAcL,kBAAkB;AAC9B,WAAO,UAAMM,0BAAS,KAAK/C,UAAU;MAAEgD,UAAU;IAAO,CAAA;EAC1D;AACF;;;;","names":["FilesystemArchivistConfigSchema","FilesystemArchivist","AbstractArchivist","configSchemas","defaultConfigSchema","_memoryArchivist","filePath","config","queries","ArchivistAllQuerySchema","ArchivistCommitQuerySchema","memoryArchivist","assertEx","dataFromRawJson","rawJson","data","JSON","parse","Array","isArray","payloads","payloadsFromRawPayloads","rawPayloads","Promise","all","map","payload","PayloadBuilder","build","allHandler","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"]}
1
+ {"version":3,"sources":["../../src/index.ts","../../src/FilesystemArchivist.ts"],"sourcesContent":["export * from './FilesystemArchivist.ts'\n","import { readFile } from 'node:fs/promises'\n\nimport { assertEx } from '@xylabs/assert'\nimport { handleError } from '@xylabs/error'\nimport { Hash } from '@xylabs/hex'\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, PayloadWithMeta, Schema, WithMeta } from '@xyo-network/payload-model'\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 static override readonly configSchemas: Schema[] = [...super.configSchemas, FilesystemArchivistConfigSchema]\n static override readonly defaultConfigSchema: Schema = 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 PayloadBuilder.build(payload)))\n }\n\n protected override allHandler(): PromisableArray<PayloadWithMeta> {\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<WithMeta<BoundWitness>[]> {\n return await this.memoryArchivist.commit()\n }\n\n protected override deleteHandler(hashes: Hash[]): PromisableArray<Hash> {\n return this.memoryArchivist.delete(hashes)\n }\n\n protected override async getHandler(hashes: Hash[]): Promise<PayloadWithMeta[]> {\n return await this.memoryArchivist.get(hashes)\n }\n\n protected override async insertHandler(payloads: Payload[]): Promise<PayloadWithMeta[]> {\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;AAG5B,qBAAyB;AACzB,gCAAkC;AAClC,8BAAgC;AAChC,6BAMO;AAEP,0BAAiD;AACjD,6BAA+B;;;;;;;;AAQxB,IAAMA,kCAAmE;AAazE,IAAMC,sBAAN,MAAMA,6BACHC,4CAAAA;SAAAA;;;EAER,OAAyBC,gBAA0B;OAAI,MAAMA;IAAeH;;EAC5E,OAAyBI,sBAA8BJ;EAE/CK;EAER,IAAIC,WAAW;AACb,WAAO,KAAKC,QAAQD,YAAY;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,MAAM,+BAAA;AACzCH,gCAASM,MAAMC,QAAQJ,KAAKK,QAAQ,GAAG,MAAM,2DAAA;AAC7CL,SAAKK,WAAW,MAAM,KAAKC,wBAAwBN,KAAKK,QAAQ;AAChE,WAAOL;EACT;EAEA,aAAqBM,wBAAwBC,aAAwB;AAEnE,WAAO,MAAMC,QAAQC,IAAIF,YAAYG,IAAI,OAAMC,YAAW,MAAMC,sCAAeC,MAAMF,OAAAA,CAAAA,CAAAA;EACvF;EAEmBG,aAA+C;AAChE,WAAO,KAAKlB,gBAAgBa,IAAG;EACjC;EAEmBM,eAAqC;AACtD,WAAO,KAAKnB,gBAAgBoB,MAAK;EACnC;EAEA,MAAyBC,gBAAmD;AAC1E,WAAO,MAAM,KAAKrB,gBAAgBsB,OAAM;EAC1C;EAEmBC,cAAcC,QAAuC;AACtE,WAAO,KAAKxB,gBAAgByB,OAAOD,MAAAA;EACrC;EAEA,MAAyBE,WAAWF,QAA4C;AAC9E,WAAO,MAAM,KAAKxB,gBAAgB2B,IAAIH,MAAAA;EACxC;EAEA,MAAyBI,cAAcnB,UAAiD;AACtF,WAAO,MAAM,KAAKT,gBAAgB6B,OAAOpB,QAAAA;EAC3C;EAEA,MAAyBqB,eAAe;AACtC,UAAM,MAAMA,aAAAA;AACZ,SAAKpC,mBAAmB,MAAMqC,wCAAgBC,OAAO;MAAEC,SAAS,MAAMC,wBAASC,OAAM;IAAG,CAAA;AACxF,QAAI;AACF,YAAM/B,OAAO,MAAMd,qBAAoBY,gBAAgB,MAAM,KAAKkC,gBAAe,CAAA;AACjF,YAAM,KAAK1C,iBAAiBmC,OAAO,MAAMjB,QAAQC,IAAIT,KAAKK,SAASK,IAAIC,CAAAA,YAAWC,sCAAeC,MAAMF,OAAAA,CAAAA,CAAAA,CAAAA;IACzG,SAASsB,IAAI;AACXC,oCAAYD,IAAI,CAACE,UAAAA;AACf,aAAKC,QAAQD,MAAMA,MAAME,OAAO;MAClC,CAAA;AACA,aAAO;IACT;AACA,WAAO;EACT;EAEA,MAAcL,kBAAkB;AAC9B,WAAO,UAAMM,0BAAS,KAAK/C,UAAU;MAAEgD,UAAU;IAAO,CAAA;EAC1D;AACF;;;;","names":["FilesystemArchivistConfigSchema","FilesystemArchivist","AbstractArchivist","configSchemas","defaultConfigSchema","_memoryArchivist","filePath","config","queries","ArchivistAllQuerySchema","ArchivistCommitQuerySchema","memoryArchivist","assertEx","dataFromRawJson","rawJson","data","JSON","parse","Array","isArray","payloads","payloadsFromRawPayloads","rawPayloads","Promise","all","map","payload","PayloadBuilder","build","allHandler","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"]}
@@ -99,4 +99,4 @@ export {
99
99
  FilesystemArchivist,
100
100
  FilesystemArchivistConfigSchema
101
101
  };
102
- //# sourceMappingURL=index.js.map
102
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +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 { Hash } from '@xylabs/hex'\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, PayloadWithMeta, Schema, WithMeta } from '@xyo-network/payload-model'\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 static override readonly configSchemas: Schema[] = [...super.configSchemas, FilesystemArchivistConfigSchema]\n static override readonly defaultConfigSchema: Schema = 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 PayloadBuilder.build(payload)))\n }\n\n protected override allHandler(): PromisableArray<PayloadWithMeta> {\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<WithMeta<BoundWitness>[]> {\n return await this.memoryArchivist.commit()\n }\n\n protected override deleteHandler(hashes: Hash[]): PromisableArray<Hash> {\n return this.memoryArchivist.delete(hashes)\n }\n\n protected override async getHandler(hashes: Hash[]): Promise<PayloadWithMeta[]> {\n return await this.memoryArchivist.get(hashes)\n }\n\n protected override async insertHandler(payloads: Payload[]): Promise<PayloadWithMeta[]> {\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;AAG5B,SAASC,gBAAgB;AACzB,SAASC,yBAAyB;AAClC,SAASC,uBAAuB;AAChC,SACEC,yBACAC,kCAIK;AAEP,SAA0BC,uBAAuB;AACjD,SAASC,sBAAsB;;;;;;;;AAQxB,IAAMC,kCAAmE;AAazE,IAAMC,sBAAN,MAAMA,6BACHC,kBAAAA;SAAAA;;;EAER,OAAyBC,gBAA0B;OAAI,MAAMA;IAAeH;;EAC5E,OAAyBI,sBAA8BJ;EAE/CK;EAER,IAAIC,WAAW;AACb,WAAO,KAAKC,QAAQD,YAAY;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,MAAM,+BAAA;AACzCH,aAASM,MAAMC,QAAQJ,KAAKK,QAAQ,GAAG,MAAM,2DAAA;AAC7CL,SAAKK,WAAW,MAAM,KAAKC,wBAAwBN,KAAKK,QAAQ;AAChE,WAAOL;EACT;EAEA,aAAqBM,wBAAwBC,aAAwB;AAEnE,WAAO,MAAMC,QAAQC,IAAIF,YAAYG,IAAI,OAAMC,YAAW,MAAMC,eAAeC,MAAMF,OAAAA,CAAAA,CAAAA;EACvF;EAEmBG,aAA+C;AAChE,WAAO,KAAKlB,gBAAgBa,IAAG;EACjC;EAEmBM,eAAqC;AACtD,WAAO,KAAKnB,gBAAgBoB,MAAK;EACnC;EAEA,MAAyBC,gBAAmD;AAC1E,WAAO,MAAM,KAAKrB,gBAAgBsB,OAAM;EAC1C;EAEmBC,cAAcC,QAAuC;AACtE,WAAO,KAAKxB,gBAAgByB,OAAOD,MAAAA;EACrC;EAEA,MAAyBE,WAAWF,QAA4C;AAC9E,WAAO,MAAM,KAAKxB,gBAAgB2B,IAAIH,MAAAA;EACxC;EAEA,MAAyBI,cAAcnB,UAAiD;AACtF,WAAO,MAAM,KAAKT,gBAAgB6B,OAAOpB,QAAAA;EAC3C;EAEA,MAAyBqB,eAAe;AACtC,UAAM,MAAMA,aAAAA;AACZ,SAAKpC,mBAAmB,MAAMqC,gBAAgBC,OAAO;MAAEC,SAAS,MAAMC,SAASC,OAAM;IAAG,CAAA;AACxF,QAAI;AACF,YAAM/B,OAAO,MAAMd,qBAAoBY,gBAAgB,MAAM,KAAKkC,gBAAe,CAAA;AACjF,YAAM,KAAK1C,iBAAiBmC,OAAO,MAAMjB,QAAQC,IAAIT,KAAKK,SAASK,IAAIC,CAAAA,YAAWC,eAAeC,MAAMF,OAAAA,CAAAA,CAAAA,CAAAA;IACzG,SAASsB,IAAI;AACXC,kBAAYD,IAAI,CAACE,UAAAA;AACf,aAAKC,QAAQD,MAAMA,MAAME,OAAO;MAClC,CAAA;AACA,aAAO;IACT;AACA,WAAO;EACT;EAEA,MAAcL,kBAAkB;AAC9B,WAAO,MAAMM,SAAS,KAAK/C,UAAU;MAAEgD,UAAU;IAAO,CAAA;EAC1D;AACF;;;;","names":["readFile","assertEx","handleError","HDWallet","AbstractArchivist","MemoryArchivist","ArchivistAllQuerySchema","ArchivistCommitQuerySchema","creatableModule","PayloadBuilder","FilesystemArchivistConfigSchema","FilesystemArchivist","AbstractArchivist","configSchemas","defaultConfigSchema","_memoryArchivist","filePath","config","queries","ArchivistAllQuerySchema","ArchivistCommitQuerySchema","memoryArchivist","assertEx","dataFromRawJson","rawJson","data","JSON","parse","Array","isArray","payloads","payloadsFromRawPayloads","rawPayloads","Promise","all","map","payload","PayloadBuilder","build","allHandler","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"]}
@@ -1 +1 @@
1
- {"version":3,"file":"FilesystemArchivist.d.ts","sourceRoot":"","sources":["../../src/FilesystemArchivist.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,IAAI,EAAE,MAAM,aAAa,CAAA;AAClC,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,eAAe,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAA;AAEvF,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;AAKnG,qBACa,mBAAmB,CAAC,OAAO,SAAS,yBAAyB,GAAG,yBAAyB,CACpG,SAAQ,iBAAiB,CAAC,OAAO,CACjC,YAAW,iBAAiB;IAE5B,gBAAyB,aAAa,EAAE,MAAM,EAAE,CAA4D;IAC5G,gBAAyB,mBAAmB,EAAE,MAAM,CAAkC;IAEtF,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,eAAe,CAAC;cAI9C,YAAY,IAAI,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;cAI9B,aAAa,IAAI,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC;cAIxD,aAAa,CAAC,MAAM,EAAE,IAAI,EAAE,GAAG,eAAe,CAAC,IAAI,CAAC;cAI9C,UAAU,CAAC,MAAM,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC;cAItD,aAAa,CAAC,QAAQ,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC;cAI9D,YAAY;YAevB,eAAe;CAG9B"}
1
+ {"version":3,"file":"FilesystemArchivist.d.ts","sourceRoot":"","sources":["../../src/FilesystemArchivist.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,IAAI,EAAE,MAAM,aAAa,CAAA;AAClC,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,eAAe,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAA;AAEvF,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;AAKnG,qBACa,mBAAmB,CAAC,OAAO,SAAS,yBAAyB,GAAG,yBAAyB,CACpG,SAAQ,iBAAiB,CAAC,OAAO,CACjC,YAAW,iBAAiB;IAC5B,gBAAyB,aAAa,EAAE,MAAM,EAAE,CAA4D;IAC5G,gBAAyB,mBAAmB,EAAE,MAAM,CAAkC;IAEtF,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,eAAe,CAAC;cAI9C,YAAY,IAAI,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;cAI9B,aAAa,IAAI,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC;cAIxD,aAAa,CAAC,MAAM,EAAE,IAAI,EAAE,GAAG,eAAe,CAAC,IAAI,CAAC;cAI9C,UAAU,CAAC,MAAM,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC;cAItD,aAAa,CAAC,QAAQ,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC;cAI9D,YAAY;YAevB,eAAe;CAG9B"}
@@ -1 +1 @@
1
- {"version":3,"file":"FilesystemArchivist.d.ts","sourceRoot":"","sources":["../../src/FilesystemArchivist.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,IAAI,EAAE,MAAM,aAAa,CAAA;AAClC,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,eAAe,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAA;AAEvF,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;AAKnG,qBACa,mBAAmB,CAAC,OAAO,SAAS,yBAAyB,GAAG,yBAAyB,CACpG,SAAQ,iBAAiB,CAAC,OAAO,CACjC,YAAW,iBAAiB;IAE5B,gBAAyB,aAAa,EAAE,MAAM,EAAE,CAA4D;IAC5G,gBAAyB,mBAAmB,EAAE,MAAM,CAAkC;IAEtF,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,eAAe,CAAC;cAI9C,YAAY,IAAI,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;cAI9B,aAAa,IAAI,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC;cAIxD,aAAa,CAAC,MAAM,EAAE,IAAI,EAAE,GAAG,eAAe,CAAC,IAAI,CAAC;cAI9C,UAAU,CAAC,MAAM,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC;cAItD,aAAa,CAAC,QAAQ,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC;cAI9D,YAAY;YAevB,eAAe;CAG9B"}
1
+ {"version":3,"file":"FilesystemArchivist.d.ts","sourceRoot":"","sources":["../../src/FilesystemArchivist.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,IAAI,EAAE,MAAM,aAAa,CAAA;AAClC,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,eAAe,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAA;AAEvF,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;AAKnG,qBACa,mBAAmB,CAAC,OAAO,SAAS,yBAAyB,GAAG,yBAAyB,CACpG,SAAQ,iBAAiB,CAAC,OAAO,CACjC,YAAW,iBAAiB;IAC5B,gBAAyB,aAAa,EAAE,MAAM,EAAE,CAA4D;IAC5G,gBAAyB,mBAAmB,EAAE,MAAM,CAAkC;IAEtF,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,eAAe,CAAC;cAI9C,YAAY,IAAI,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;cAI9B,aAAa,IAAI,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC;cAIxD,aAAa,CAAC,MAAM,EAAE,IAAI,EAAE,GAAG,eAAe,CAAC,IAAI,CAAC;cAI9C,UAAU,CAAC,MAAM,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC;cAItD,aAAa,CAAC,QAAQ,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC;cAI9D,YAAY;YAevB,eAAe;CAG9B"}
@@ -1 +1 @@
1
- {"version":3,"file":"FilesystemArchivist.d.ts","sourceRoot":"","sources":["../../src/FilesystemArchivist.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,IAAI,EAAE,MAAM,aAAa,CAAA;AAClC,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,eAAe,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAA;AAEvF,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;AAKnG,qBACa,mBAAmB,CAAC,OAAO,SAAS,yBAAyB,GAAG,yBAAyB,CACpG,SAAQ,iBAAiB,CAAC,OAAO,CACjC,YAAW,iBAAiB;IAE5B,gBAAyB,aAAa,EAAE,MAAM,EAAE,CAA4D;IAC5G,gBAAyB,mBAAmB,EAAE,MAAM,CAAkC;IAEtF,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,eAAe,CAAC;cAI9C,YAAY,IAAI,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;cAI9B,aAAa,IAAI,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC;cAIxD,aAAa,CAAC,MAAM,EAAE,IAAI,EAAE,GAAG,eAAe,CAAC,IAAI,CAAC;cAI9C,UAAU,CAAC,MAAM,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC;cAItD,aAAa,CAAC,QAAQ,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC;cAI9D,YAAY;YAevB,eAAe;CAG9B"}
1
+ {"version":3,"file":"FilesystemArchivist.d.ts","sourceRoot":"","sources":["../../src/FilesystemArchivist.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,IAAI,EAAE,MAAM,aAAa,CAAA;AAClC,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,eAAe,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAA;AAEvF,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;AAKnG,qBACa,mBAAmB,CAAC,OAAO,SAAS,yBAAyB,GAAG,yBAAyB,CACpG,SAAQ,iBAAiB,CAAC,OAAO,CACjC,YAAW,iBAAiB;IAC5B,gBAAyB,aAAa,EAAE,MAAM,EAAE,CAA4D;IAC5G,gBAAyB,mBAAmB,EAAE,MAAM,CAAkC;IAEtF,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,eAAe,CAAC;cAI9C,YAAY,IAAI,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;cAI9B,aAAa,IAAI,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC;cAIxD,aAAa,CAAC,MAAM,EAAE,IAAI,EAAE,GAAG,eAAe,CAAC,IAAI,CAAC;cAI9C,UAAU,CAAC,MAAM,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC;cAItD,aAAa,CAAC,QAAQ,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC;cAI9D,YAAY;YAevB,eAAe;CAG9B"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/index.ts","../../src/FilesystemArchivist.ts"],"sourcesContent":["export * from './FilesystemArchivist.ts'\n","import { readFile } from 'node:fs/promises'\n\nimport { assertEx } from '@xylabs/assert'\nimport { handleError } from '@xylabs/error'\nimport { Hash } from '@xylabs/hex'\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, PayloadWithMeta, Schema, WithMeta } from '@xyo-network/payload-model'\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 readonly configSchemas: Schema[] = [...super.configSchemas, FilesystemArchivistConfigSchema]\n static override readonly defaultConfigSchema: Schema = 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 PayloadBuilder.build(payload)))\n }\n\n protected override allHandler(): PromisableArray<PayloadWithMeta> {\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<WithMeta<BoundWitness>[]> {\n return await this.memoryArchivist.commit()\n }\n\n protected override deleteHandler(hashes: Hash[]): PromisableArray<Hash> {\n return this.memoryArchivist.delete(hashes)\n }\n\n protected override async getHandler(hashes: Hash[]): Promise<PayloadWithMeta[]> {\n return await this.memoryArchivist.get(hashes)\n }\n\n protected override async insertHandler(payloads: Payload[]): Promise<PayloadWithMeta[]> {\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;AAG5B,qBAAyB;AACzB,gCAAkC;AAClC,8BAAgC;AAChC,6BAMO;AAEP,0BAAiD;AACjD,6BAA+B;;;;;;;;AAQxB,IAAMA,kCAAmE;AAazE,IAAMC,uBAAN,MAAMA,6BACHC,4CAAAA;EAMAC;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,MAAM,+BAAA;AACzCH,gCAASM,MAAMC,QAAQJ,KAAKK,QAAQ,GAAG,MAAM,2DAAA;AAC7CL,SAAKK,WAAW,MAAM,KAAKC,wBAAwBN,KAAKK,QAAQ;AAChE,WAAOL;EACT;EAEA,aAAqBM,wBAAwBC,aAAwB;AAEnE,WAAO,MAAMC,QAAQC,IAAIF,YAAYG,IAAI,OAAOC,YAAY,MAAMC,sCAAeC,MAAMF,OAAAA,CAAAA,CAAAA;EACzF;EAEmBG,aAA+C;AAChE,WAAO,KAAKlB,gBAAgBa,IAAG;EACjC;EAEmBM,eAAqC;AACtD,WAAO,KAAKnB,gBAAgBoB,MAAK;EACnC;EAEA,MAAyBC,gBAAmD;AAC1E,WAAO,MAAM,KAAKrB,gBAAgBsB,OAAM;EAC1C;EAEmBC,cAAcC,QAAuC;AACtE,WAAO,KAAKxB,gBAAgByB,OAAOD,MAAAA;EACrC;EAEA,MAAyBE,WAAWF,QAA4C;AAC9E,WAAO,MAAM,KAAKxB,gBAAgB2B,IAAIH,MAAAA;EACxC;EAEA,MAAyBI,cAAcnB,UAAiD;AACtF,WAAO,MAAM,KAAKT,gBAAgB6B,OAAOpB,QAAAA;EAC3C;EAEA,MAAyBqB,eAAe;AACtC,UAAM,MAAMA,aAAAA;AACZ,SAAKpC,mBAAmB,MAAMqC,wCAAgBC,OAAO;MAAEC,SAAS,MAAMC,wBAASC,OAAM;IAAG,CAAA;AACxF,QAAI;AACF,YAAM/B,OAAO,MAAMZ,qBAAoBU,gBAAgB,MAAM,KAAKkC,gBAAe,CAAA;AACjF,YAAM,KAAK1C,iBAAiBmC,OAAO,MAAMjB,QAAQC,IAAIT,KAAKK,SAASK,IAAI,CAACC,YAAYC,sCAAeC,MAAMF,OAAAA,CAAAA,CAAAA,CAAAA;IAC3G,SAASsB,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,KAAK/C,UAAU;MAAEgD,UAAU;IAAO,CAAA;EAC1D;AACF;AA3EUlD;AAGR,cAJWD,sBAIcoD,iBAA0B;KAAI,uDAAMA;EAAerD;;AAC5E,cALWC,sBAKcqD,uBAA8BtD;AALlD,IAAMC,sBAAN;;;;","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","PayloadBuilder","build","allHandler","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","defaultConfigSchema"]}
1
+ {"version":3,"sources":["../../src/index.ts","../../src/FilesystemArchivist.ts"],"sourcesContent":["export * from './FilesystemArchivist.ts'\n","import { readFile } from 'node:fs/promises'\n\nimport { assertEx } from '@xylabs/assert'\nimport { handleError } from '@xylabs/error'\nimport { Hash } from '@xylabs/hex'\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, PayloadWithMeta, Schema, WithMeta } from '@xyo-network/payload-model'\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 static override readonly configSchemas: Schema[] = [...super.configSchemas, FilesystemArchivistConfigSchema]\n static override readonly defaultConfigSchema: Schema = 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 PayloadBuilder.build(payload)))\n }\n\n protected override allHandler(): PromisableArray<PayloadWithMeta> {\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<WithMeta<BoundWitness>[]> {\n return await this.memoryArchivist.commit()\n }\n\n protected override deleteHandler(hashes: Hash[]): PromisableArray<Hash> {\n return this.memoryArchivist.delete(hashes)\n }\n\n protected override async getHandler(hashes: Hash[]): Promise<PayloadWithMeta[]> {\n return await this.memoryArchivist.get(hashes)\n }\n\n protected override async insertHandler(payloads: Payload[]): Promise<PayloadWithMeta[]> {\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;AAG5B,qBAAyB;AACzB,gCAAkC;AAClC,8BAAgC;AAChC,6BAMO;AAEP,0BAAiD;AACjD,6BAA+B;;;;;;;;AAQxB,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,MAAM,+BAAA;AACzCH,gCAASM,MAAMC,QAAQJ,KAAKK,QAAQ,GAAG,MAAM,2DAAA;AAC7CL,SAAKK,WAAW,MAAM,KAAKC,wBAAwBN,KAAKK,QAAQ;AAChE,WAAOL;EACT;EAEA,aAAqBM,wBAAwBC,aAAwB;AAEnE,WAAO,MAAMC,QAAQC,IAAIF,YAAYG,IAAI,OAAMC,YAAW,MAAMC,sCAAeC,MAAMF,OAAAA,CAAAA,CAAAA;EACvF;EAEmBG,aAA+C;AAChE,WAAO,KAAKlB,gBAAgBa,IAAG;EACjC;EAEmBM,eAAqC;AACtD,WAAO,KAAKnB,gBAAgBoB,MAAK;EACnC;EAEA,MAAyBC,gBAAmD;AAC1E,WAAO,MAAM,KAAKrB,gBAAgBsB,OAAM;EAC1C;EAEmBC,cAAcC,QAAuC;AACtE,WAAO,KAAKxB,gBAAgByB,OAAOD,MAAAA;EACrC;EAEA,MAAyBE,WAAWF,QAA4C;AAC9E,WAAO,MAAM,KAAKxB,gBAAgB2B,IAAIH,MAAAA;EACxC;EAEA,MAAyBI,cAAcnB,UAAiD;AACtF,WAAO,MAAM,KAAKT,gBAAgB6B,OAAOpB,QAAAA;EAC3C;EAEA,MAAyBqB,eAAe;AACtC,UAAM,MAAMA,aAAAA;AACZ,SAAKpC,mBAAmB,MAAMqC,wCAAgBC,OAAO;MAAEC,SAAS,MAAMC,wBAASC,OAAM;IAAG,CAAA;AACxF,QAAI;AACF,YAAM/B,OAAO,MAAMZ,qBAAoBU,gBAAgB,MAAM,KAAKkC,gBAAe,CAAA;AACjF,YAAM,KAAK1C,iBAAiBmC,OAAO,MAAMjB,QAAQC,IAAIT,KAAKK,SAASK,IAAIC,CAAAA,YAAWC,sCAAeC,MAAMF,OAAAA,CAAAA,CAAAA,CAAAA;IACzG,SAASsB,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,KAAK/C,UAAU;MAAEgD,UAAU;IAAO,CAAA;EAC1D;AACF;AA1EUlD;AAER,cAHWD,sBAGcoD,iBAA0B;KAAI,uDAAMA;EAAerD;;AAC5E,cAJWC,sBAIcqD,uBAA8BtD;AAJlD,IAAMC,sBAAN;;;;","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","PayloadBuilder","build","allHandler","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","defaultConfigSchema"]}
@@ -105,4 +105,4 @@ export {
105
105
  FilesystemArchivist,
106
106
  FilesystemArchivistConfigSchema
107
107
  };
108
- //# sourceMappingURL=index.js.map
108
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +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 { Hash } from '@xylabs/hex'\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, PayloadWithMeta, Schema, WithMeta } from '@xyo-network/payload-model'\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 static override readonly configSchemas: Schema[] = [...super.configSchemas, FilesystemArchivistConfigSchema]\n static override readonly defaultConfigSchema: Schema = 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 PayloadBuilder.build(payload)))\n }\n\n protected override allHandler(): PromisableArray<PayloadWithMeta> {\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<WithMeta<BoundWitness>[]> {\n return await this.memoryArchivist.commit()\n }\n\n protected override deleteHandler(hashes: Hash[]): PromisableArray<Hash> {\n return this.memoryArchivist.delete(hashes)\n }\n\n protected override async getHandler(hashes: Hash[]): Promise<PayloadWithMeta[]> {\n return await this.memoryArchivist.get(hashes)\n }\n\n protected override async insertHandler(payloads: Payload[]): Promise<PayloadWithMeta[]> {\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;AAG5B,SAASC,gBAAgB;AACzB,SAASC,yBAAyB;AAClC,SAASC,uBAAuB;AAChC,SACEC,yBACAC,kCAIK;AAEP,SAA0BC,uBAAuB;AACjD,SAASC,sBAAsB;;;;;;;;AAQxB,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,MAAM,+BAAA;AACzCH,aAASM,MAAMC,QAAQJ,KAAKK,QAAQ,GAAG,MAAM,2DAAA;AAC7CL,SAAKK,WAAW,MAAM,KAAKC,wBAAwBN,KAAKK,QAAQ;AAChE,WAAOL;EACT;EAEA,aAAqBM,wBAAwBC,aAAwB;AAEnE,WAAO,MAAMC,QAAQC,IAAIF,YAAYG,IAAI,OAAMC,YAAW,MAAMC,eAAeC,MAAMF,OAAAA,CAAAA,CAAAA;EACvF;EAEmBG,aAA+C;AAChE,WAAO,KAAKlB,gBAAgBa,IAAG;EACjC;EAEmBM,eAAqC;AACtD,WAAO,KAAKnB,gBAAgBoB,MAAK;EACnC;EAEA,MAAyBC,gBAAmD;AAC1E,WAAO,MAAM,KAAKrB,gBAAgBsB,OAAM;EAC1C;EAEmBC,cAAcC,QAAuC;AACtE,WAAO,KAAKxB,gBAAgByB,OAAOD,MAAAA;EACrC;EAEA,MAAyBE,WAAWF,QAA4C;AAC9E,WAAO,MAAM,KAAKxB,gBAAgB2B,IAAIH,MAAAA;EACxC;EAEA,MAAyBI,cAAcnB,UAAiD;AACtF,WAAO,MAAM,KAAKT,gBAAgB6B,OAAOpB,QAAAA;EAC3C;EAEA,MAAyBqB,eAAe;AACtC,UAAM,MAAMA,aAAAA;AACZ,SAAKpC,mBAAmB,MAAMqC,gBAAgBC,OAAO;MAAEC,SAAS,MAAMC,SAASC,OAAM;IAAG,CAAA;AACxF,QAAI;AACF,YAAM/B,OAAO,MAAMZ,qBAAoBU,gBAAgB,MAAM,KAAKkC,gBAAe,CAAA;AACjF,YAAM,KAAK1C,iBAAiBmC,OAAO,MAAMjB,QAAQC,IAAIT,KAAKK,SAASK,IAAIC,CAAAA,YAAWC,eAAeC,MAAMF,OAAAA,CAAAA,CAAAA,CAAAA;IACzG,SAASsB,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,KAAK/C,UAAU;MAAEgD,UAAU;IAAO,CAAA;EAC1D;AACF;AA1EUlD;AAER,cAHWD,sBAGcoD,iBAA0B;KAAI,uDAAMA;EAAerD;;AAC5E,cAJWC,sBAIcqD,uBAA8BtD;AAJlD,IAAMC,sBAAN;;;;","names":["readFile","assertEx","handleError","HDWallet","AbstractArchivist","MemoryArchivist","ArchivistAllQuerySchema","ArchivistCommitQuerySchema","creatableModule","PayloadBuilder","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","PayloadBuilder","build","allHandler","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","defaultConfigSchema"]}
package/package.json CHANGED
@@ -10,22 +10,22 @@
10
10
  "url": "https://github.com/XYOracleNetwork/sdk-xyo-client-js/issues"
11
11
  },
12
12
  "dependencies": {
13
- "@xylabs/assert": "^3.6.6",
14
- "@xylabs/error": "^3.6.6",
15
- "@xylabs/hex": "^3.6.6",
16
- "@xylabs/promise": "^3.6.6",
17
- "@xyo-network/account": "^2.110.19",
18
- "@xyo-network/archivist-abstract": "^2.110.19",
19
- "@xyo-network/archivist-memory": "^2.110.19",
20
- "@xyo-network/archivist-model": "^2.110.19",
21
- "@xyo-network/boundwitness-model": "^2.110.19",
22
- "@xyo-network/module-model": "^2.110.19",
23
- "@xyo-network/payload-builder": "^2.110.19",
24
- "@xyo-network/payload-model": "^2.110.19"
13
+ "@xylabs/assert": "^3.6.8",
14
+ "@xylabs/error": "^3.6.8",
15
+ "@xylabs/hex": "^3.6.8",
16
+ "@xylabs/promise": "^3.6.8",
17
+ "@xyo-network/account": "^2.111.0",
18
+ "@xyo-network/archivist-abstract": "^2.111.0",
19
+ "@xyo-network/archivist-memory": "^2.111.0",
20
+ "@xyo-network/archivist-model": "^2.111.0",
21
+ "@xyo-network/boundwitness-model": "^2.111.0",
22
+ "@xyo-network/module-model": "^2.111.0",
23
+ "@xyo-network/payload-builder": "^2.111.0",
24
+ "@xyo-network/payload-model": "^2.111.0"
25
25
  },
26
26
  "devDependencies": {
27
- "@xylabs/ts-scripts-yarn3": "^3.14.1",
28
- "@xylabs/tsconfig": "^3.14.1",
27
+ "@xylabs/ts-scripts-yarn3": "^3.15.5",
28
+ "@xylabs/tsconfig": "^3.15.5",
29
29
  "tslib": "^2.6.3",
30
30
  "typescript": "^5.5.4"
31
31
  },
@@ -39,14 +39,14 @@
39
39
  },
40
40
  "import": {
41
41
  "types": "./dist/node/index.d.mts",
42
- "default": "./dist/node/index.js"
42
+ "default": "./dist/node/index.mjs"
43
43
  }
44
44
  }
45
45
  },
46
46
  "./package.json": "./package.json"
47
47
  },
48
48
  "main": "dist/node/index.cjs",
49
- "module": "dist/node/index.js",
49
+ "module": "dist/node/index.mjs",
50
50
  "types": "dist/node/index.d.ts",
51
51
  "homepage": "https://xyo.network",
52
52
  "license": "LGPL-3.0-only",
@@ -58,6 +58,6 @@
58
58
  "url": "https://github.com/XYOracleNetwork/sdk-xyo-client-js.git"
59
59
  },
60
60
  "sideEffects": false,
61
- "version": "2.110.19",
61
+ "version": "2.111.0",
62
62
  "type": "module"
63
63
  }
@@ -39,8 +39,7 @@ export type FilesystemArchivistParams = ArchivistParams<AnyConfigSchema<Filesyst
39
39
  @creatableModule()
40
40
  export class FilesystemArchivist<TParams extends FilesystemArchivistParams = FilesystemArchivistParams>
41
41
  extends AbstractArchivist<TParams>
42
- implements ArchivistInstance
43
- {
42
+ implements ArchivistInstance {
44
43
  static override readonly configSchemas: Schema[] = [...super.configSchemas, FilesystemArchivistConfigSchema]
45
44
  static override readonly defaultConfigSchema: Schema = FilesystemArchivistConfigSchema
46
45
 
@@ -67,8 +66,8 @@ export class FilesystemArchivist<TParams extends FilesystemArchivistParams = Fil
67
66
  }
68
67
 
69
68
  private static async payloadsFromRawPayloads(rawPayloads: Payload[]) {
70
- //validation should be done in here. I don't believe parse does much validation yet.
71
- return await Promise.all(rawPayloads.map(async (payload) => await PayloadBuilder.build(payload)))
69
+ // validation should be done in here. I don't believe parse does much validation yet.
70
+ return await Promise.all(rawPayloads.map(async payload => await PayloadBuilder.build(payload)))
72
71
  }
73
72
 
74
73
  protected override allHandler(): PromisableArray<PayloadWithMeta> {
@@ -100,7 +99,7 @@ export class FilesystemArchivist<TParams extends FilesystemArchivistParams = Fil
100
99
  this._memoryArchivist = await MemoryArchivist.create({ account: await HDWallet.random() })
101
100
  try {
102
101
  const data = await FilesystemArchivist.dataFromRawJson(await this.rawJsonFromFile())
103
- await this._memoryArchivist.insert(await Promise.all(data.payloads.map((payload) => PayloadBuilder.build(payload))))
102
+ await this._memoryArchivist.insert(await Promise.all(data.payloads.map(payload => PayloadBuilder.build(payload))))
104
103
  } catch (ex) {
105
104
  handleError(ex, (error) => {
106
105
  this.logger?.error(error.message)
@@ -1 +0,0 @@
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 { Hash } from '@xylabs/hex'\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, PayloadWithMeta, Schema, WithMeta } from '@xyo-network/payload-model'\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 readonly configSchemas: Schema[] = [...super.configSchemas, FilesystemArchivistConfigSchema]\n static override readonly defaultConfigSchema: Schema = 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 PayloadBuilder.build(payload)))\n }\n\n protected override allHandler(): PromisableArray<PayloadWithMeta> {\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<WithMeta<BoundWitness>[]> {\n return await this.memoryArchivist.commit()\n }\n\n protected override deleteHandler(hashes: Hash[]): PromisableArray<Hash> {\n return this.memoryArchivist.delete(hashes)\n }\n\n protected override async getHandler(hashes: Hash[]): Promise<PayloadWithMeta[]> {\n return await this.memoryArchivist.get(hashes)\n }\n\n protected override async insertHandler(payloads: Payload[]): Promise<PayloadWithMeta[]> {\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;AAG5B,SAASC,gBAAgB;AACzB,SAASC,yBAAyB;AAClC,SAASC,uBAAuB;AAChC,SACEC,yBACAC,kCAIK;AAEP,SAA0BC,uBAAuB;AACjD,SAASC,sBAAsB;;;;;;;;AAQxB,IAAMC,kCAAmE;AAazE,IAAMC,sBAAN,MAAMA,6BACHC,kBAAAA;SAAAA;;;EAGR,OAAyBC,gBAA0B;OAAI,MAAMA;IAAeH;;EAC5E,OAAyBI,sBAA8BJ;EAE/CK;EAER,IAAIC,WAAW;AACb,WAAO,KAAKC,QAAQD,YAAY;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,MAAM,+BAAA;AACzCH,aAASM,MAAMC,QAAQJ,KAAKK,QAAQ,GAAG,MAAM,2DAAA;AAC7CL,SAAKK,WAAW,MAAM,KAAKC,wBAAwBN,KAAKK,QAAQ;AAChE,WAAOL;EACT;EAEA,aAAqBM,wBAAwBC,aAAwB;AAEnE,WAAO,MAAMC,QAAQC,IAAIF,YAAYG,IAAI,OAAOC,YAAY,MAAMC,eAAeC,MAAMF,OAAAA,CAAAA,CAAAA;EACzF;EAEmBG,aAA+C;AAChE,WAAO,KAAKlB,gBAAgBa,IAAG;EACjC;EAEmBM,eAAqC;AACtD,WAAO,KAAKnB,gBAAgBoB,MAAK;EACnC;EAEA,MAAyBC,gBAAmD;AAC1E,WAAO,MAAM,KAAKrB,gBAAgBsB,OAAM;EAC1C;EAEmBC,cAAcC,QAAuC;AACtE,WAAO,KAAKxB,gBAAgByB,OAAOD,MAAAA;EACrC;EAEA,MAAyBE,WAAWF,QAA4C;AAC9E,WAAO,MAAM,KAAKxB,gBAAgB2B,IAAIH,MAAAA;EACxC;EAEA,MAAyBI,cAAcnB,UAAiD;AACtF,WAAO,MAAM,KAAKT,gBAAgB6B,OAAOpB,QAAAA;EAC3C;EAEA,MAAyBqB,eAAe;AACtC,UAAM,MAAMA,aAAAA;AACZ,SAAKpC,mBAAmB,MAAMqC,gBAAgBC,OAAO;MAAEC,SAAS,MAAMC,SAASC,OAAM;IAAG,CAAA;AACxF,QAAI;AACF,YAAM/B,OAAO,MAAMd,qBAAoBY,gBAAgB,MAAM,KAAKkC,gBAAe,CAAA;AACjF,YAAM,KAAK1C,iBAAiBmC,OAAO,MAAMjB,QAAQC,IAAIT,KAAKK,SAASK,IAAI,CAACC,YAAYC,eAAeC,MAAMF,OAAAA,CAAAA,CAAAA,CAAAA;IAC3G,SAASsB,IAAI;AACXC,kBAAYD,IAAI,CAACE,UAAAA;AACf,aAAKC,QAAQD,MAAMA,MAAME,OAAO;MAClC,CAAA;AACA,aAAO;IACT;AACA,WAAO;EACT;EAEA,MAAcL,kBAAkB;AAC9B,WAAO,MAAMM,SAAS,KAAK/C,UAAU;MAAEgD,UAAU;IAAO,CAAA;EAC1D;AACF;;;;","names":["readFile","assertEx","handleError","HDWallet","AbstractArchivist","MemoryArchivist","ArchivistAllQuerySchema","ArchivistCommitQuerySchema","creatableModule","PayloadBuilder","FilesystemArchivistConfigSchema","FilesystemArchivist","AbstractArchivist","configSchemas","defaultConfigSchema","_memoryArchivist","filePath","config","queries","ArchivistAllQuerySchema","ArchivistCommitQuerySchema","memoryArchivist","assertEx","dataFromRawJson","rawJson","data","JSON","parse","Array","isArray","payloads","payloadsFromRawPayloads","rawPayloads","Promise","all","map","payload","PayloadBuilder","build","allHandler","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"]}
@@ -1 +0,0 @@
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 { Hash } from '@xylabs/hex'\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, PayloadWithMeta, Schema, WithMeta } from '@xyo-network/payload-model'\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 readonly configSchemas: Schema[] = [...super.configSchemas, FilesystemArchivistConfigSchema]\n static override readonly defaultConfigSchema: Schema = 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 PayloadBuilder.build(payload)))\n }\n\n protected override allHandler(): PromisableArray<PayloadWithMeta> {\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<WithMeta<BoundWitness>[]> {\n return await this.memoryArchivist.commit()\n }\n\n protected override deleteHandler(hashes: Hash[]): PromisableArray<Hash> {\n return this.memoryArchivist.delete(hashes)\n }\n\n protected override async getHandler(hashes: Hash[]): Promise<PayloadWithMeta[]> {\n return await this.memoryArchivist.get(hashes)\n }\n\n protected override async insertHandler(payloads: Payload[]): Promise<PayloadWithMeta[]> {\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;AAG5B,SAASC,gBAAgB;AACzB,SAASC,yBAAyB;AAClC,SAASC,uBAAuB;AAChC,SACEC,yBACAC,kCAIK;AAEP,SAA0BC,uBAAuB;AACjD,SAASC,sBAAsB;;;;;;;;AAQxB,IAAMC,kCAAmE;AAazE,IAAMC,uBAAN,MAAMA,6BACHC,kBAAAA;EAMAC;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,MAAM,+BAAA;AACzCH,aAASM,MAAMC,QAAQJ,KAAKK,QAAQ,GAAG,MAAM,2DAAA;AAC7CL,SAAKK,WAAW,MAAM,KAAKC,wBAAwBN,KAAKK,QAAQ;AAChE,WAAOL;EACT;EAEA,aAAqBM,wBAAwBC,aAAwB;AAEnE,WAAO,MAAMC,QAAQC,IAAIF,YAAYG,IAAI,OAAOC,YAAY,MAAMC,eAAeC,MAAMF,OAAAA,CAAAA,CAAAA;EACzF;EAEmBG,aAA+C;AAChE,WAAO,KAAKlB,gBAAgBa,IAAG;EACjC;EAEmBM,eAAqC;AACtD,WAAO,KAAKnB,gBAAgBoB,MAAK;EACnC;EAEA,MAAyBC,gBAAmD;AAC1E,WAAO,MAAM,KAAKrB,gBAAgBsB,OAAM;EAC1C;EAEmBC,cAAcC,QAAuC;AACtE,WAAO,KAAKxB,gBAAgByB,OAAOD,MAAAA;EACrC;EAEA,MAAyBE,WAAWF,QAA4C;AAC9E,WAAO,MAAM,KAAKxB,gBAAgB2B,IAAIH,MAAAA;EACxC;EAEA,MAAyBI,cAAcnB,UAAiD;AACtF,WAAO,MAAM,KAAKT,gBAAgB6B,OAAOpB,QAAAA;EAC3C;EAEA,MAAyBqB,eAAe;AACtC,UAAM,MAAMA,aAAAA;AACZ,SAAKpC,mBAAmB,MAAMqC,gBAAgBC,OAAO;MAAEC,SAAS,MAAMC,SAASC,OAAM;IAAG,CAAA;AACxF,QAAI;AACF,YAAM/B,OAAO,MAAMZ,qBAAoBU,gBAAgB,MAAM,KAAKkC,gBAAe,CAAA;AACjF,YAAM,KAAK1C,iBAAiBmC,OAAO,MAAMjB,QAAQC,IAAIT,KAAKK,SAASK,IAAI,CAACC,YAAYC,eAAeC,MAAMF,OAAAA,CAAAA,CAAAA,CAAAA;IAC3G,SAASsB,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,KAAK/C,UAAU;MAAEgD,UAAU;IAAO,CAAA;EAC1D;AACF;AA3EUlD;AAGR,cAJWD,sBAIcoD,iBAA0B;KAAI,uDAAMA;EAAerD;;AAC5E,cALWC,sBAKcqD,uBAA8BtD;AALlD,IAAMC,sBAAN;;;;","names":["readFile","assertEx","handleError","HDWallet","AbstractArchivist","MemoryArchivist","ArchivistAllQuerySchema","ArchivistCommitQuerySchema","creatableModule","PayloadBuilder","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","PayloadBuilder","build","allHandler","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","defaultConfigSchema"]}