@xyo-network/filesystem-archivist 2.81.3 → 2.81.4
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.
- package/dist/node/index.js +11 -9
- package/dist/node/index.js.map +1 -1
- package/dist/node/index.mjs +11 -9
- package/dist/node/index.mjs.map +1 -1
- package/package.json +9 -9
package/dist/node/index.js
CHANGED
|
@@ -53,12 +53,11 @@ function _ts_decorate(decorators, target, key, desc) {
|
|
|
53
53
|
}
|
|
54
54
|
__name(_ts_decorate, "_ts_decorate");
|
|
55
55
|
var FilesystemArchivistConfigSchema = "network.xyo.archivist.filesystem.config";
|
|
56
|
-
var
|
|
57
|
-
var FilesystemArchivist = (_a = class extends import_archivist_abstract.AbstractArchivist {
|
|
56
|
+
var _FilesystemArchivist = class _FilesystemArchivist extends import_archivist_abstract.AbstractArchivist {
|
|
58
57
|
_memoryArchivist;
|
|
59
58
|
get filePath() {
|
|
60
|
-
var
|
|
61
|
-
return ((
|
|
59
|
+
var _a;
|
|
60
|
+
return ((_a = this.config) == null ? void 0 : _a.filePath) ?? "archivist.xyo.json";
|
|
62
61
|
}
|
|
63
62
|
get queries() {
|
|
64
63
|
return [
|
|
@@ -104,12 +103,12 @@ var FilesystemArchivist = (_a = class extends import_archivist_abstract.Abstract
|
|
|
104
103
|
account: await import_account.HDWallet.random()
|
|
105
104
|
});
|
|
106
105
|
try {
|
|
107
|
-
const data =
|
|
106
|
+
const data = _FilesystemArchivist.dataFromRawJson(await this.rawJsonFromFile());
|
|
108
107
|
await this._memoryArchivist.insert(data.payloads);
|
|
109
108
|
} catch (ex) {
|
|
110
109
|
(0, import_error.handleError)(ex, (error) => {
|
|
111
|
-
var
|
|
112
|
-
(
|
|
110
|
+
var _a;
|
|
111
|
+
(_a = this.logger) == null ? void 0 : _a.error(error.message);
|
|
113
112
|
});
|
|
114
113
|
return false;
|
|
115
114
|
}
|
|
@@ -120,9 +119,12 @@ var FilesystemArchivist = (_a = class extends import_archivist_abstract.Abstract
|
|
|
120
119
|
encoding: "utf8"
|
|
121
120
|
});
|
|
122
121
|
}
|
|
123
|
-
}
|
|
122
|
+
};
|
|
123
|
+
__name(_FilesystemArchivist, "FilesystemArchivist");
|
|
124
|
+
__publicField(_FilesystemArchivist, "configSchemas", [
|
|
124
125
|
FilesystemArchivistConfigSchema
|
|
125
|
-
])
|
|
126
|
+
]);
|
|
127
|
+
var FilesystemArchivist = _FilesystemArchivist;
|
|
126
128
|
FilesystemArchivist = _ts_decorate([
|
|
127
129
|
(0, import_module_model.creatableModule)()
|
|
128
130
|
], FilesystemArchivist);
|
package/dist/node/index.js.map
CHANGED
|
@@ -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 {\n ArchivistAllQuerySchema,\n ArchivistCommitQuerySchema,\n ArchivistConfig,\n ArchivistInstance,\n ArchivistParams,\n} from '@xyo-network/archivist-model'\nimport { BoundWitness } from '@xyo-network/boundwitness-model'\nimport { MemoryArchivist } from '@xyo-network/memory-archivist'\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,6BAMO;AAEP,8BAAgC;AAChC,0BAAiD;AAEjD,6BAA+B;;;;;;;;;;;;AAOxB,IAAMA,kCAAmE
|
|
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 {\n ArchivistAllQuerySchema,\n ArchivistCommitQuerySchema,\n ArchivistConfig,\n ArchivistInstance,\n ArchivistParams,\n} from '@xyo-network/archivist-model'\nimport { BoundWitness } from '@xyo-network/boundwitness-model'\nimport { MemoryArchivist } from '@xyo-network/memory-archivist'\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,6BAMO;AAEP,8BAAgC;AAChC,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"]}
|
package/dist/node/index.mjs
CHANGED
|
@@ -28,12 +28,11 @@ function _ts_decorate(decorators, target, key, desc) {
|
|
|
28
28
|
}
|
|
29
29
|
__name(_ts_decorate, "_ts_decorate");
|
|
30
30
|
var FilesystemArchivistConfigSchema = "network.xyo.archivist.filesystem.config";
|
|
31
|
-
var
|
|
32
|
-
var FilesystemArchivist = (_a = class extends AbstractArchivist {
|
|
31
|
+
var _FilesystemArchivist = class _FilesystemArchivist extends AbstractArchivist {
|
|
33
32
|
_memoryArchivist;
|
|
34
33
|
get filePath() {
|
|
35
|
-
var
|
|
36
|
-
return ((
|
|
34
|
+
var _a;
|
|
35
|
+
return ((_a = this.config) == null ? void 0 : _a.filePath) ?? "archivist.xyo.json";
|
|
37
36
|
}
|
|
38
37
|
get queries() {
|
|
39
38
|
return [
|
|
@@ -79,12 +78,12 @@ var FilesystemArchivist = (_a = class extends AbstractArchivist {
|
|
|
79
78
|
account: await HDWallet.random()
|
|
80
79
|
});
|
|
81
80
|
try {
|
|
82
|
-
const data =
|
|
81
|
+
const data = _FilesystemArchivist.dataFromRawJson(await this.rawJsonFromFile());
|
|
83
82
|
await this._memoryArchivist.insert(data.payloads);
|
|
84
83
|
} catch (ex) {
|
|
85
84
|
handleError(ex, (error) => {
|
|
86
|
-
var
|
|
87
|
-
(
|
|
85
|
+
var _a;
|
|
86
|
+
(_a = this.logger) == null ? void 0 : _a.error(error.message);
|
|
88
87
|
});
|
|
89
88
|
return false;
|
|
90
89
|
}
|
|
@@ -95,9 +94,12 @@ var FilesystemArchivist = (_a = class extends AbstractArchivist {
|
|
|
95
94
|
encoding: "utf8"
|
|
96
95
|
});
|
|
97
96
|
}
|
|
98
|
-
}
|
|
97
|
+
};
|
|
98
|
+
__name(_FilesystemArchivist, "FilesystemArchivist");
|
|
99
|
+
__publicField(_FilesystemArchivist, "configSchemas", [
|
|
99
100
|
FilesystemArchivistConfigSchema
|
|
100
|
-
])
|
|
101
|
+
]);
|
|
102
|
+
var FilesystemArchivist = _FilesystemArchivist;
|
|
101
103
|
FilesystemArchivist = _ts_decorate([
|
|
102
104
|
creatableModule()
|
|
103
105
|
], FilesystemArchivist);
|
package/dist/node/index.mjs.map
CHANGED
|
@@ -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 {\n ArchivistAllQuerySchema,\n ArchivistCommitQuerySchema,\n ArchivistConfig,\n ArchivistInstance,\n ArchivistParams,\n} from '@xyo-network/archivist-model'\nimport { BoundWitness } from '@xyo-network/boundwitness-model'\nimport { MemoryArchivist } from '@xyo-network/memory-archivist'\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,SACEC,yBACAC,kCAIK;AAEP,SAASC,uBAAuB;AAChC,SAA0BC,uBAAuB;AAEjD,SAASC,sBAAsB;;;;;;;;;;;;AAOxB,IAAMC,kCAAmE
|
|
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 {\n ArchivistAllQuerySchema,\n ArchivistCommitQuerySchema,\n ArchivistConfig,\n ArchivistInstance,\n ArchivistParams,\n} from '@xyo-network/archivist-model'\nimport { BoundWitness } from '@xyo-network/boundwitness-model'\nimport { MemoryArchivist } from '@xyo-network/memory-archivist'\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,SACEC,yBACAC,kCAIK;AAEP,SAASC,uBAAuB;AAChC,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","ArchivistAllQuerySchema","ArchivistCommitQuerySchema","MemoryArchivist","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"]}
|
package/package.json
CHANGED
|
@@ -13,14 +13,14 @@
|
|
|
13
13
|
"@xylabs/assert": "^2.13.9",
|
|
14
14
|
"@xylabs/error": "^2.13.9",
|
|
15
15
|
"@xylabs/promise": "^2.13.9",
|
|
16
|
-
"@xyo-network/account": "~2.81.
|
|
17
|
-
"@xyo-network/archivist-abstract": "~2.81.
|
|
18
|
-
"@xyo-network/archivist-model": "~2.81.
|
|
19
|
-
"@xyo-network/boundwitness-model": "~2.81.
|
|
20
|
-
"@xyo-network/memory-archivist": "~2.81.
|
|
21
|
-
"@xyo-network/module-model": "~2.81.
|
|
22
|
-
"@xyo-network/payload-model": "~2.81.
|
|
23
|
-
"@xyo-network/payload-wrapper": "~2.81.
|
|
16
|
+
"@xyo-network/account": "~2.81.4",
|
|
17
|
+
"@xyo-network/archivist-abstract": "~2.81.4",
|
|
18
|
+
"@xyo-network/archivist-model": "~2.81.4",
|
|
19
|
+
"@xyo-network/boundwitness-model": "~2.81.4",
|
|
20
|
+
"@xyo-network/memory-archivist": "~2.81.4",
|
|
21
|
+
"@xyo-network/module-model": "~2.81.4",
|
|
22
|
+
"@xyo-network/payload-model": "~2.81.4",
|
|
23
|
+
"@xyo-network/payload-wrapper": "~2.81.4"
|
|
24
24
|
},
|
|
25
25
|
"devDependencies": {
|
|
26
26
|
"@xylabs/ts-scripts-yarn3": "^3.2.8",
|
|
@@ -57,5 +57,5 @@
|
|
|
57
57
|
"url": "https://github.com/XYOracleNetwork/sdk-xyo-client-js.git"
|
|
58
58
|
},
|
|
59
59
|
"sideEffects": false,
|
|
60
|
-
"version": "2.81.
|
|
60
|
+
"version": "2.81.4"
|
|
61
61
|
}
|