@xyo-network/archivist-memory 2.89.0-rc.1 → 2.89.0-rc.3
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/browser/MemoryArchivist.d.cts +2 -1
- package/dist/browser/MemoryArchivist.d.cts.map +1 -1
- package/dist/browser/MemoryArchivist.d.mts +2 -1
- package/dist/browser/MemoryArchivist.d.mts.map +1 -1
- package/dist/browser/MemoryArchivist.d.ts +2 -1
- package/dist/browser/MemoryArchivist.d.ts.map +1 -1
- package/dist/browser/index.cjs +3 -10
- package/dist/browser/index.cjs.map +1 -1
- package/dist/browser/index.js +3 -10
- package/dist/browser/index.js.map +1 -1
- package/dist/node/MemoryArchivist.d.cts +2 -1
- package/dist/node/MemoryArchivist.d.cts.map +1 -1
- package/dist/node/MemoryArchivist.d.mts +2 -1
- package/dist/node/MemoryArchivist.d.mts.map +1 -1
- package/dist/node/MemoryArchivist.d.ts +2 -1
- package/dist/node/MemoryArchivist.d.ts.map +1 -1
- package/dist/node/index.cjs +3 -10
- package/dist/node/index.cjs.map +1 -1
- package/dist/node/index.js +3 -10
- package/dist/node/index.js.map +1 -1
- package/package.json +10 -9
- package/src/MemoryArchivist.ts +6 -8
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { Hash } from '@xylabs/hex';
|
|
1
2
|
import { Promisable, PromisableArray } from '@xylabs/promise';
|
|
2
3
|
import { AbstractArchivist } from '@xyo-network/archivist-abstract';
|
|
3
4
|
import { ArchivistConfig, ArchivistInstance, ArchivistModuleEventData } from '@xyo-network/archivist-model';
|
|
@@ -23,7 +24,7 @@ export declare class MemoryArchivist<TParams extends MemoryArchivistParams<AnyCo
|
|
|
23
24
|
protected allHandler(): PromisableArray<Payload>;
|
|
24
25
|
protected clearHandler(): void | Promise<void>;
|
|
25
26
|
protected commitHandler(): Promise<BoundWitness[]>;
|
|
26
|
-
protected deleteHandler(hashes:
|
|
27
|
+
protected deleteHandler(hashes: Hash[]): Promise<string[]>;
|
|
27
28
|
protected getHandler(hashes: string[]): Promisable<Payload[]>;
|
|
28
29
|
protected insertHandler(payloads: Payload[]): Promise<Payload[]>;
|
|
29
30
|
private insertPayloadIntoCache;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MemoryArchivist.d.ts","sourceRoot":"","sources":["../../src/MemoryArchivist.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"MemoryArchivist.d.ts","sourceRoot":"","sources":["../../src/MemoryArchivist.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,aAAa,CAAA;AAElC,OAAO,EAAa,UAAU,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAA;AACxE,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAA;AACnE,OAAO,EAIL,eAAe,EAKf,iBAAiB,EACjB,wBAAwB,EACzB,MAAM,8BAA8B,CAAA;AACrC,OAAO,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAA;AAE9D,OAAO,EAAE,eAAe,EAAmB,cAAc,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAA;AAE1G,OAAO,EAAE,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAA;AACrE,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAA;AAEpC,MAAM,MAAM,2BAA2B,GAAG,qCAAqC,CAAA;AAC/E,eAAO,MAAM,2BAA2B,EAAE,2BAAmE,CAAA;AAE7G,MAAM,MAAM,qBAAqB,GAAG,eAAe,CAAC;IAClD,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,MAAM,EAAE,2BAA2B,GAAG,eAAe,CAAC,QAAQ,CAAC,CAAA;CAChE,CAAC,CAAA;AAEF,MAAM,MAAM,qBAAqB,CAAC,OAAO,SAAS,eAAe,CAAC,qBAAqB,CAAC,GAAG,eAAe,CAAC,qBAAqB,CAAC,IAC/H,YAAY,CAAC,OAAO,CAAC,CAAA;AACvB,qBACa,eAAe,CACxB,OAAO,SAAS,qBAAqB,CAAC,eAAe,CAAC,qBAAqB,CAAC,CAAC,GAAG,qBAAqB,EACrG,UAAU,SAAS,wBAAwB,GAAG,wBAAwB,CAExE,SAAQ,iBAAiB,CAAC,OAAO,EAAE,UAAU,CAC7C,YAAW,iBAAiB,EAAE,cAAc;IAE5C,OAAgB,aAAa,WAAuD;IAEpF,OAAO,CAAC,cAAc,CAAC,CAA0B;IACjD,OAAO,CAAC,MAAM,CAAC,CAAmC;IAElD,IAAI,aAAa,sCAGhB;IAED,IAAI,KAAK,+CAGR;IAED,IAAI,GAAG,WAEN;IAED,IAAa,OAAO,aASnB;cAEkB,UAAU,IAAI,eAAe,CAAC,OAAO,CAAC;cAItC,YAAY,IAAI,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;cAM9B,aAAa,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC;cAiBxC,aAAa,CAAC,MAAM,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;cAWtD,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,UAAU,CAAC,OAAO,EAAE,CAAC;cAa7C,aAAa,CAAC,QAAQ,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;IAW/E,OAAO,CAAC,sBAAsB;CAK/B"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { Hash } from '@xylabs/hex';
|
|
1
2
|
import { Promisable, PromisableArray } from '@xylabs/promise';
|
|
2
3
|
import { AbstractArchivist } from '@xyo-network/archivist-abstract';
|
|
3
4
|
import { ArchivistConfig, ArchivistInstance, ArchivistModuleEventData } from '@xyo-network/archivist-model';
|
|
@@ -23,7 +24,7 @@ export declare class MemoryArchivist<TParams extends MemoryArchivistParams<AnyCo
|
|
|
23
24
|
protected allHandler(): PromisableArray<Payload>;
|
|
24
25
|
protected clearHandler(): void | Promise<void>;
|
|
25
26
|
protected commitHandler(): Promise<BoundWitness[]>;
|
|
26
|
-
protected deleteHandler(hashes:
|
|
27
|
+
protected deleteHandler(hashes: Hash[]): Promise<string[]>;
|
|
27
28
|
protected getHandler(hashes: string[]): Promisable<Payload[]>;
|
|
28
29
|
protected insertHandler(payloads: Payload[]): Promise<Payload[]>;
|
|
29
30
|
private insertPayloadIntoCache;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MemoryArchivist.d.ts","sourceRoot":"","sources":["../../src/MemoryArchivist.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"MemoryArchivist.d.ts","sourceRoot":"","sources":["../../src/MemoryArchivist.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,aAAa,CAAA;AAElC,OAAO,EAAa,UAAU,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAA;AACxE,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAA;AACnE,OAAO,EAIL,eAAe,EAKf,iBAAiB,EACjB,wBAAwB,EACzB,MAAM,8BAA8B,CAAA;AACrC,OAAO,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAA;AAE9D,OAAO,EAAE,eAAe,EAAmB,cAAc,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAA;AAE1G,OAAO,EAAE,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAA;AACrE,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAA;AAEpC,MAAM,MAAM,2BAA2B,GAAG,qCAAqC,CAAA;AAC/E,eAAO,MAAM,2BAA2B,EAAE,2BAAmE,CAAA;AAE7G,MAAM,MAAM,qBAAqB,GAAG,eAAe,CAAC;IAClD,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,MAAM,EAAE,2BAA2B,GAAG,eAAe,CAAC,QAAQ,CAAC,CAAA;CAChE,CAAC,CAAA;AAEF,MAAM,MAAM,qBAAqB,CAAC,OAAO,SAAS,eAAe,CAAC,qBAAqB,CAAC,GAAG,eAAe,CAAC,qBAAqB,CAAC,IAC/H,YAAY,CAAC,OAAO,CAAC,CAAA;AACvB,qBACa,eAAe,CACxB,OAAO,SAAS,qBAAqB,CAAC,eAAe,CAAC,qBAAqB,CAAC,CAAC,GAAG,qBAAqB,EACrG,UAAU,SAAS,wBAAwB,GAAG,wBAAwB,CAExE,SAAQ,iBAAiB,CAAC,OAAO,EAAE,UAAU,CAC7C,YAAW,iBAAiB,EAAE,cAAc;IAE5C,OAAgB,aAAa,WAAuD;IAEpF,OAAO,CAAC,cAAc,CAAC,CAA0B;IACjD,OAAO,CAAC,MAAM,CAAC,CAAmC;IAElD,IAAI,aAAa,sCAGhB;IAED,IAAI,KAAK,+CAGR;IAED,IAAI,GAAG,WAEN;IAED,IAAa,OAAO,aASnB;cAEkB,UAAU,IAAI,eAAe,CAAC,OAAO,CAAC;cAItC,YAAY,IAAI,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;cAM9B,aAAa,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC;cAiBxC,aAAa,CAAC,MAAM,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;cAWtD,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,UAAU,CAAC,OAAO,EAAE,CAAC;cAa7C,aAAa,CAAC,QAAQ,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;IAW/E,OAAO,CAAC,sBAAsB;CAK/B"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { Hash } from '@xylabs/hex';
|
|
1
2
|
import { Promisable, PromisableArray } from '@xylabs/promise';
|
|
2
3
|
import { AbstractArchivist } from '@xyo-network/archivist-abstract';
|
|
3
4
|
import { ArchivistConfig, ArchivistInstance, ArchivistModuleEventData } from '@xyo-network/archivist-model';
|
|
@@ -23,7 +24,7 @@ export declare class MemoryArchivist<TParams extends MemoryArchivistParams<AnyCo
|
|
|
23
24
|
protected allHandler(): PromisableArray<Payload>;
|
|
24
25
|
protected clearHandler(): void | Promise<void>;
|
|
25
26
|
protected commitHandler(): Promise<BoundWitness[]>;
|
|
26
|
-
protected deleteHandler(hashes:
|
|
27
|
+
protected deleteHandler(hashes: Hash[]): Promise<string[]>;
|
|
27
28
|
protected getHandler(hashes: string[]): Promisable<Payload[]>;
|
|
28
29
|
protected insertHandler(payloads: Payload[]): Promise<Payload[]>;
|
|
29
30
|
private insertPayloadIntoCache;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MemoryArchivist.d.ts","sourceRoot":"","sources":["../../src/MemoryArchivist.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"MemoryArchivist.d.ts","sourceRoot":"","sources":["../../src/MemoryArchivist.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,aAAa,CAAA;AAElC,OAAO,EAAa,UAAU,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAA;AACxE,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAA;AACnE,OAAO,EAIL,eAAe,EAKf,iBAAiB,EACjB,wBAAwB,EACzB,MAAM,8BAA8B,CAAA;AACrC,OAAO,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAA;AAE9D,OAAO,EAAE,eAAe,EAAmB,cAAc,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAA;AAE1G,OAAO,EAAE,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAA;AACrE,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAA;AAEpC,MAAM,MAAM,2BAA2B,GAAG,qCAAqC,CAAA;AAC/E,eAAO,MAAM,2BAA2B,EAAE,2BAAmE,CAAA;AAE7G,MAAM,MAAM,qBAAqB,GAAG,eAAe,CAAC;IAClD,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,MAAM,EAAE,2BAA2B,GAAG,eAAe,CAAC,QAAQ,CAAC,CAAA;CAChE,CAAC,CAAA;AAEF,MAAM,MAAM,qBAAqB,CAAC,OAAO,SAAS,eAAe,CAAC,qBAAqB,CAAC,GAAG,eAAe,CAAC,qBAAqB,CAAC,IAC/H,YAAY,CAAC,OAAO,CAAC,CAAA;AACvB,qBACa,eAAe,CACxB,OAAO,SAAS,qBAAqB,CAAC,eAAe,CAAC,qBAAqB,CAAC,CAAC,GAAG,qBAAqB,EACrG,UAAU,SAAS,wBAAwB,GAAG,wBAAwB,CAExE,SAAQ,iBAAiB,CAAC,OAAO,EAAE,UAAU,CAC7C,YAAW,iBAAiB,EAAE,cAAc;IAE5C,OAAgB,aAAa,WAAuD;IAEpF,OAAO,CAAC,cAAc,CAAC,CAA0B;IACjD,OAAO,CAAC,MAAM,CAAC,CAAmC;IAElD,IAAI,aAAa,sCAGhB;IAED,IAAI,KAAK,+CAGR;IAED,IAAI,GAAG,WAEN;IAED,IAAa,OAAO,aASnB;cAEkB,UAAU,IAAI,eAAe,CAAC,OAAO,CAAC;cAItC,YAAY,IAAI,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;cAM9B,aAAa,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC;cAiBxC,aAAa,CAAC,MAAM,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;cAWtD,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,UAAU,CAAC,OAAO,EAAE,CAAC;cAa7C,aAAa,CAAC,QAAQ,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;IAW/E,OAAO,CAAC,sBAAsB;CAK/B"}
|
package/dist/browser/index.cjs
CHANGED
|
@@ -106,17 +106,10 @@ var MemoryArchivist = class extends import_archivist_abstract.AbstractArchivist
|
|
|
106
106
|
return (0, import_lodash.compact)(settled.filter(import_promise.fulfilled).map((result) => result.value));
|
|
107
107
|
}
|
|
108
108
|
async deleteHandler(hashes) {
|
|
109
|
-
const
|
|
110
|
-
|
|
111
|
-
payload
|
|
112
|
-
]));
|
|
113
|
-
const deletedPairs = (0, import_lodash.compact)(await Promise.all(payloadPairs.map(([hash, payload]) => {
|
|
114
|
-
return this.cache.delete(hash) ? [
|
|
115
|
-
hash,
|
|
116
|
-
payload
|
|
117
|
-
] : void 0;
|
|
109
|
+
const deletedHashes = (0, import_lodash.compact)(await Promise.all(hashes.map((hash) => {
|
|
110
|
+
return this.cache.delete(hash) ? hash : void 0;
|
|
118
111
|
})));
|
|
119
|
-
return
|
|
112
|
+
return deletedHashes;
|
|
120
113
|
}
|
|
121
114
|
getHandler(hashes) {
|
|
122
115
|
return (0, import_lodash.compact)(hashes.map((hash) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/index.ts","../../src/MemoryArchivist.ts"],"sourcesContent":["export * from './MemoryArchivist'\n","import { assertEx } from '@xylabs/assert'\nimport { compact } from '@xylabs/lodash'\nimport { fulfilled, Promisable, PromisableArray } from '@xylabs/promise'\nimport { AbstractArchivist } from '@xyo-network/archivist-abstract'\nimport {\n ArchivistAllQuerySchema,\n ArchivistClearQuerySchema,\n ArchivistCommitQuerySchema,\n ArchivistConfig,\n ArchivistConfigSchema,\n ArchivistDeleteQuerySchema,\n ArchivistInsertQuery,\n ArchivistInsertQuerySchema,\n ArchivistInstance,\n ArchivistModuleEventData,\n} from '@xyo-network/archivist-model'\nimport { BoundWitness } from '@xyo-network/boundwitness-model'\nimport { PayloadHasher } from '@xyo-network/hash'\nimport { AnyConfigSchema, creatableModule, ModuleInstance, ModuleParams } from '@xyo-network/module-model'\nimport { PayloadBuilder } from '@xyo-network/payload-builder'\nimport { Payload, PayloadWithMeta } from '@xyo-network/payload-model'\nimport { LRUCache } from 'lru-cache'\n\nexport type MemoryArchivistConfigSchema = 'network.xyo.archivist.memory.config'\nexport const MemoryArchivistConfigSchema: MemoryArchivistConfigSchema = 'network.xyo.archivist.memory.config'\n\nexport type MemoryArchivistConfig = ArchivistConfig<{\n max?: number\n schema: MemoryArchivistConfigSchema | ArchivistConfig['schema']\n}>\n\nexport type MemoryArchivistParams<TConfig extends AnyConfigSchema<MemoryArchivistConfig> = AnyConfigSchema<MemoryArchivistConfig>> =\n ModuleParams<TConfig>\n@creatableModule()\nexport class MemoryArchivist<\n TParams extends MemoryArchivistParams<AnyConfigSchema<MemoryArchivistConfig>> = MemoryArchivistParams,\n TEventData extends ArchivistModuleEventData = ArchivistModuleEventData,\n >\n extends AbstractArchivist<TParams, TEventData>\n implements ArchivistInstance, ModuleInstance\n{\n static override configSchemas = [MemoryArchivistConfigSchema, ArchivistConfigSchema]\n\n private _bodyHashIndex?: LRUCache<string, string>\n private _cache?: LRUCache<string, PayloadWithMeta>\n\n get bodyHashIndex() {\n this._bodyHashIndex = this._bodyHashIndex ?? new LRUCache<string, string>({ max: this.max })\n return this._bodyHashIndex\n }\n\n get cache() {\n this._cache = this._cache ?? new LRUCache<string, PayloadWithMeta>({ max: this.max })\n return this._cache\n }\n\n get max() {\n return this.config?.max ?? 10_000\n }\n\n override get queries() {\n return [\n ArchivistAllQuerySchema,\n ArchivistDeleteQuerySchema,\n ArchivistClearQuerySchema,\n ArchivistInsertQuerySchema,\n ArchivistCommitQuerySchema,\n ...super.queries,\n ]\n }\n\n protected override allHandler(): PromisableArray<Payload> {\n return compact(this.cache.dump().map((value) => PayloadHasher.hashFields(value[1].value)))\n }\n\n protected override clearHandler(): void | Promise<void> {\n this.cache.clear()\n this.bodyHashIndex.clear()\n return this.emit('cleared', { module: this })\n }\n\n protected override async commitHandler(): Promise<BoundWitness[]> {\n const payloads = assertEx(await this.allHandler(), 'Nothing to commit')\n const settled = await Promise.allSettled(\n compact(\n Object.values((await this.parents()).commit ?? [])?.map(async (parent) => {\n const queryPayload: ArchivistInsertQuery = {\n schema: ArchivistInsertQuerySchema,\n }\n const query = await this.bindQuery(queryPayload, payloads)\n return (await parent?.query(query[0], query[1]))?.[0]\n }),\n ),\n )\n await this.clearHandler()\n return compact(settled.filter(fulfilled).map((result) => result.value))\n }\n\n protected override async deleteHandler(hashes:
|
|
1
|
+
{"version":3,"sources":["../../src/index.ts","../../src/MemoryArchivist.ts"],"sourcesContent":["export * from './MemoryArchivist'\n","import { assertEx } from '@xylabs/assert'\nimport { Hash } from '@xylabs/hex'\nimport { compact } from '@xylabs/lodash'\nimport { fulfilled, Promisable, PromisableArray } from '@xylabs/promise'\nimport { AbstractArchivist } from '@xyo-network/archivist-abstract'\nimport {\n ArchivistAllQuerySchema,\n ArchivistClearQuerySchema,\n ArchivistCommitQuerySchema,\n ArchivistConfig,\n ArchivistConfigSchema,\n ArchivistDeleteQuerySchema,\n ArchivistInsertQuery,\n ArchivistInsertQuerySchema,\n ArchivistInstance,\n ArchivistModuleEventData,\n} from '@xyo-network/archivist-model'\nimport { BoundWitness } from '@xyo-network/boundwitness-model'\nimport { PayloadHasher } from '@xyo-network/hash'\nimport { AnyConfigSchema, creatableModule, ModuleInstance, ModuleParams } from '@xyo-network/module-model'\nimport { PayloadBuilder } from '@xyo-network/payload-builder'\nimport { Payload, PayloadWithMeta } from '@xyo-network/payload-model'\nimport { LRUCache } from 'lru-cache'\n\nexport type MemoryArchivistConfigSchema = 'network.xyo.archivist.memory.config'\nexport const MemoryArchivistConfigSchema: MemoryArchivistConfigSchema = 'network.xyo.archivist.memory.config'\n\nexport type MemoryArchivistConfig = ArchivistConfig<{\n max?: number\n schema: MemoryArchivistConfigSchema | ArchivistConfig['schema']\n}>\n\nexport type MemoryArchivistParams<TConfig extends AnyConfigSchema<MemoryArchivistConfig> = AnyConfigSchema<MemoryArchivistConfig>> =\n ModuleParams<TConfig>\n@creatableModule()\nexport class MemoryArchivist<\n TParams extends MemoryArchivistParams<AnyConfigSchema<MemoryArchivistConfig>> = MemoryArchivistParams,\n TEventData extends ArchivistModuleEventData = ArchivistModuleEventData,\n >\n extends AbstractArchivist<TParams, TEventData>\n implements ArchivistInstance, ModuleInstance\n{\n static override configSchemas = [MemoryArchivistConfigSchema, ArchivistConfigSchema]\n\n private _bodyHashIndex?: LRUCache<string, string>\n private _cache?: LRUCache<string, PayloadWithMeta>\n\n get bodyHashIndex() {\n this._bodyHashIndex = this._bodyHashIndex ?? new LRUCache<string, string>({ max: this.max })\n return this._bodyHashIndex\n }\n\n get cache() {\n this._cache = this._cache ?? new LRUCache<string, PayloadWithMeta>({ max: this.max })\n return this._cache\n }\n\n get max() {\n return this.config?.max ?? 10_000\n }\n\n override get queries() {\n return [\n ArchivistAllQuerySchema,\n ArchivistDeleteQuerySchema,\n ArchivistClearQuerySchema,\n ArchivistInsertQuerySchema,\n ArchivistCommitQuerySchema,\n ...super.queries,\n ]\n }\n\n protected override allHandler(): PromisableArray<Payload> {\n return compact(this.cache.dump().map((value) => PayloadHasher.hashFields(value[1].value)))\n }\n\n protected override clearHandler(): void | Promise<void> {\n this.cache.clear()\n this.bodyHashIndex.clear()\n return this.emit('cleared', { module: this })\n }\n\n protected override async commitHandler(): Promise<BoundWitness[]> {\n const payloads = assertEx(await this.allHandler(), 'Nothing to commit')\n const settled = await Promise.allSettled(\n compact(\n Object.values((await this.parents()).commit ?? [])?.map(async (parent) => {\n const queryPayload: ArchivistInsertQuery = {\n schema: ArchivistInsertQuerySchema,\n }\n const query = await this.bindQuery(queryPayload, payloads)\n return (await parent?.query(query[0], query[1]))?.[0]\n }),\n ),\n )\n await this.clearHandler()\n return compact(settled.filter(fulfilled).map((result) => result.value))\n }\n\n protected override async deleteHandler(hashes: Hash[]): Promise<string[]> {\n const deletedHashes = compact(\n await Promise.all(\n hashes.map((hash) => {\n return this.cache.delete(hash) ? hash : undefined\n }),\n ),\n )\n return deletedHashes\n }\n\n protected override getHandler(hashes: string[]): Promisable<Payload[]> {\n return compact(\n hashes.map((hash) => {\n const resolvedHash = this.bodyHashIndex.get(hash) ?? hash\n const result = this.cache.get(resolvedHash)\n if (resolvedHash !== hash && !result) {\n throw new Error('Missing referenced payload')\n }\n return result\n }),\n )\n }\n\n protected override async insertHandler(payloads: Payload[]): Promise<Payload[]> {\n const pairs = await PayloadBuilder.hashPairs(payloads)\n const insertedPayloads = await Promise.all(\n pairs.map(([payload, hash]) => {\n return this.insertPayloadIntoCache(payload, hash)\n }),\n )\n\n return insertedPayloads\n }\n\n private insertPayloadIntoCache(payload: PayloadWithMeta, hash: string): PayloadWithMeta {\n this.cache.set(hash, payload)\n this.bodyHashIndex.set(payload.$hash, hash)\n return payload\n }\n}\n"],"mappings":"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","names":["MemoryArchivistConfigSchema","MemoryArchivist","AbstractArchivist","configSchemas","ArchivistConfigSchema","_bodyHashIndex","_cache","bodyHashIndex","LRUCache","max","cache","config","queries","ArchivistAllQuerySchema","ArchivistDeleteQuerySchema","ArchivistClearQuerySchema","ArchivistInsertQuerySchema","ArchivistCommitQuerySchema","allHandler","compact","dump","map","value","PayloadHasher","hashFields","clearHandler","clear","emit","module","commitHandler","payloads","assertEx","settled","Promise","allSettled","Object","values","parents","commit","parent","queryPayload","schema","query","bindQuery","filter","fulfilled","result","deleteHandler","hashes","deletedHashes","all","hash","delete","undefined","getHandler","resolvedHash","get","Error","insertHandler","pairs","PayloadBuilder","hashPairs","insertedPayloads","payload","insertPayloadIntoCache","set","$hash","creatableModule"]}
|
package/dist/browser/index.js
CHANGED
|
@@ -81,17 +81,10 @@ var MemoryArchivist = class extends AbstractArchivist {
|
|
|
81
81
|
return compact(settled.filter(fulfilled).map((result) => result.value));
|
|
82
82
|
}
|
|
83
83
|
async deleteHandler(hashes) {
|
|
84
|
-
const
|
|
85
|
-
|
|
86
|
-
payload
|
|
87
|
-
]));
|
|
88
|
-
const deletedPairs = compact(await Promise.all(payloadPairs.map(([hash, payload]) => {
|
|
89
|
-
return this.cache.delete(hash) ? [
|
|
90
|
-
hash,
|
|
91
|
-
payload
|
|
92
|
-
] : void 0;
|
|
84
|
+
const deletedHashes = compact(await Promise.all(hashes.map((hash) => {
|
|
85
|
+
return this.cache.delete(hash) ? hash : void 0;
|
|
93
86
|
})));
|
|
94
|
-
return
|
|
87
|
+
return deletedHashes;
|
|
95
88
|
}
|
|
96
89
|
getHandler(hashes) {
|
|
97
90
|
return compact(hashes.map((hash) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/MemoryArchivist.ts"],"sourcesContent":["import { assertEx } from '@xylabs/assert'\nimport { compact } from '@xylabs/lodash'\nimport { fulfilled, Promisable, PromisableArray } from '@xylabs/promise'\nimport { AbstractArchivist } from '@xyo-network/archivist-abstract'\nimport {\n ArchivistAllQuerySchema,\n ArchivistClearQuerySchema,\n ArchivistCommitQuerySchema,\n ArchivistConfig,\n ArchivistConfigSchema,\n ArchivistDeleteQuerySchema,\n ArchivistInsertQuery,\n ArchivistInsertQuerySchema,\n ArchivistInstance,\n ArchivistModuleEventData,\n} from '@xyo-network/archivist-model'\nimport { BoundWitness } from '@xyo-network/boundwitness-model'\nimport { PayloadHasher } from '@xyo-network/hash'\nimport { AnyConfigSchema, creatableModule, ModuleInstance, ModuleParams } from '@xyo-network/module-model'\nimport { PayloadBuilder } from '@xyo-network/payload-builder'\nimport { Payload, PayloadWithMeta } from '@xyo-network/payload-model'\nimport { LRUCache } from 'lru-cache'\n\nexport type MemoryArchivistConfigSchema = 'network.xyo.archivist.memory.config'\nexport const MemoryArchivistConfigSchema: MemoryArchivistConfigSchema = 'network.xyo.archivist.memory.config'\n\nexport type MemoryArchivistConfig = ArchivistConfig<{\n max?: number\n schema: MemoryArchivistConfigSchema | ArchivistConfig['schema']\n}>\n\nexport type MemoryArchivistParams<TConfig extends AnyConfigSchema<MemoryArchivistConfig> = AnyConfigSchema<MemoryArchivistConfig>> =\n ModuleParams<TConfig>\n@creatableModule()\nexport class MemoryArchivist<\n TParams extends MemoryArchivistParams<AnyConfigSchema<MemoryArchivistConfig>> = MemoryArchivistParams,\n TEventData extends ArchivistModuleEventData = ArchivistModuleEventData,\n >\n extends AbstractArchivist<TParams, TEventData>\n implements ArchivistInstance, ModuleInstance\n{\n static override configSchemas = [MemoryArchivistConfigSchema, ArchivistConfigSchema]\n\n private _bodyHashIndex?: LRUCache<string, string>\n private _cache?: LRUCache<string, PayloadWithMeta>\n\n get bodyHashIndex() {\n this._bodyHashIndex = this._bodyHashIndex ?? new LRUCache<string, string>({ max: this.max })\n return this._bodyHashIndex\n }\n\n get cache() {\n this._cache = this._cache ?? new LRUCache<string, PayloadWithMeta>({ max: this.max })\n return this._cache\n }\n\n get max() {\n return this.config?.max ?? 10_000\n }\n\n override get queries() {\n return [\n ArchivistAllQuerySchema,\n ArchivistDeleteQuerySchema,\n ArchivistClearQuerySchema,\n ArchivistInsertQuerySchema,\n ArchivistCommitQuerySchema,\n ...super.queries,\n ]\n }\n\n protected override allHandler(): PromisableArray<Payload> {\n return compact(this.cache.dump().map((value) => PayloadHasher.hashFields(value[1].value)))\n }\n\n protected override clearHandler(): void | Promise<void> {\n this.cache.clear()\n this.bodyHashIndex.clear()\n return this.emit('cleared', { module: this })\n }\n\n protected override async commitHandler(): Promise<BoundWitness[]> {\n const payloads = assertEx(await this.allHandler(), 'Nothing to commit')\n const settled = await Promise.allSettled(\n compact(\n Object.values((await this.parents()).commit ?? [])?.map(async (parent) => {\n const queryPayload: ArchivistInsertQuery = {\n schema: ArchivistInsertQuerySchema,\n }\n const query = await this.bindQuery(queryPayload, payloads)\n return (await parent?.query(query[0], query[1]))?.[0]\n }),\n ),\n )\n await this.clearHandler()\n return compact(settled.filter(fulfilled).map((result) => result.value))\n }\n\n protected override async deleteHandler(hashes:
|
|
1
|
+
{"version":3,"sources":["../../src/MemoryArchivist.ts"],"sourcesContent":["import { assertEx } from '@xylabs/assert'\nimport { Hash } from '@xylabs/hex'\nimport { compact } from '@xylabs/lodash'\nimport { fulfilled, Promisable, PromisableArray } from '@xylabs/promise'\nimport { AbstractArchivist } from '@xyo-network/archivist-abstract'\nimport {\n ArchivistAllQuerySchema,\n ArchivistClearQuerySchema,\n ArchivistCommitQuerySchema,\n ArchivistConfig,\n ArchivistConfigSchema,\n ArchivistDeleteQuerySchema,\n ArchivistInsertQuery,\n ArchivistInsertQuerySchema,\n ArchivistInstance,\n ArchivistModuleEventData,\n} from '@xyo-network/archivist-model'\nimport { BoundWitness } from '@xyo-network/boundwitness-model'\nimport { PayloadHasher } from '@xyo-network/hash'\nimport { AnyConfigSchema, creatableModule, ModuleInstance, ModuleParams } from '@xyo-network/module-model'\nimport { PayloadBuilder } from '@xyo-network/payload-builder'\nimport { Payload, PayloadWithMeta } from '@xyo-network/payload-model'\nimport { LRUCache } from 'lru-cache'\n\nexport type MemoryArchivistConfigSchema = 'network.xyo.archivist.memory.config'\nexport const MemoryArchivistConfigSchema: MemoryArchivistConfigSchema = 'network.xyo.archivist.memory.config'\n\nexport type MemoryArchivistConfig = ArchivistConfig<{\n max?: number\n schema: MemoryArchivistConfigSchema | ArchivistConfig['schema']\n}>\n\nexport type MemoryArchivistParams<TConfig extends AnyConfigSchema<MemoryArchivistConfig> = AnyConfigSchema<MemoryArchivistConfig>> =\n ModuleParams<TConfig>\n@creatableModule()\nexport class MemoryArchivist<\n TParams extends MemoryArchivistParams<AnyConfigSchema<MemoryArchivistConfig>> = MemoryArchivistParams,\n TEventData extends ArchivistModuleEventData = ArchivistModuleEventData,\n >\n extends AbstractArchivist<TParams, TEventData>\n implements ArchivistInstance, ModuleInstance\n{\n static override configSchemas = [MemoryArchivistConfigSchema, ArchivistConfigSchema]\n\n private _bodyHashIndex?: LRUCache<string, string>\n private _cache?: LRUCache<string, PayloadWithMeta>\n\n get bodyHashIndex() {\n this._bodyHashIndex = this._bodyHashIndex ?? new LRUCache<string, string>({ max: this.max })\n return this._bodyHashIndex\n }\n\n get cache() {\n this._cache = this._cache ?? new LRUCache<string, PayloadWithMeta>({ max: this.max })\n return this._cache\n }\n\n get max() {\n return this.config?.max ?? 10_000\n }\n\n override get queries() {\n return [\n ArchivistAllQuerySchema,\n ArchivistDeleteQuerySchema,\n ArchivistClearQuerySchema,\n ArchivistInsertQuerySchema,\n ArchivistCommitQuerySchema,\n ...super.queries,\n ]\n }\n\n protected override allHandler(): PromisableArray<Payload> {\n return compact(this.cache.dump().map((value) => PayloadHasher.hashFields(value[1].value)))\n }\n\n protected override clearHandler(): void | Promise<void> {\n this.cache.clear()\n this.bodyHashIndex.clear()\n return this.emit('cleared', { module: this })\n }\n\n protected override async commitHandler(): Promise<BoundWitness[]> {\n const payloads = assertEx(await this.allHandler(), 'Nothing to commit')\n const settled = await Promise.allSettled(\n compact(\n Object.values((await this.parents()).commit ?? [])?.map(async (parent) => {\n const queryPayload: ArchivistInsertQuery = {\n schema: ArchivistInsertQuerySchema,\n }\n const query = await this.bindQuery(queryPayload, payloads)\n return (await parent?.query(query[0], query[1]))?.[0]\n }),\n ),\n )\n await this.clearHandler()\n return compact(settled.filter(fulfilled).map((result) => result.value))\n }\n\n protected override async deleteHandler(hashes: Hash[]): Promise<string[]> {\n const deletedHashes = compact(\n await Promise.all(\n hashes.map((hash) => {\n return this.cache.delete(hash) ? hash : undefined\n }),\n ),\n )\n return deletedHashes\n }\n\n protected override getHandler(hashes: string[]): Promisable<Payload[]> {\n return compact(\n hashes.map((hash) => {\n const resolvedHash = this.bodyHashIndex.get(hash) ?? hash\n const result = this.cache.get(resolvedHash)\n if (resolvedHash !== hash && !result) {\n throw new Error('Missing referenced payload')\n }\n return result\n }),\n )\n }\n\n protected override async insertHandler(payloads: Payload[]): Promise<Payload[]> {\n const pairs = await PayloadBuilder.hashPairs(payloads)\n const insertedPayloads = await Promise.all(\n pairs.map(([payload, hash]) => {\n return this.insertPayloadIntoCache(payload, hash)\n }),\n )\n\n return insertedPayloads\n }\n\n private insertPayloadIntoCache(payload: PayloadWithMeta, hash: string): PayloadWithMeta {\n this.cache.set(hash, payload)\n this.bodyHashIndex.set(payload.$hash, hash)\n return payload\n }\n}\n"],"mappings":"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","names":["assertEx","compact","fulfilled","AbstractArchivist","ArchivistAllQuerySchema","ArchivistClearQuerySchema","ArchivistCommitQuerySchema","ArchivistConfigSchema","ArchivistDeleteQuerySchema","ArchivistInsertQuerySchema","PayloadHasher","creatableModule","PayloadBuilder","LRUCache","MemoryArchivistConfigSchema","MemoryArchivist","AbstractArchivist","configSchemas","ArchivistConfigSchema","_bodyHashIndex","_cache","bodyHashIndex","LRUCache","max","cache","config","queries","ArchivistAllQuerySchema","ArchivistDeleteQuerySchema","ArchivistClearQuerySchema","ArchivistInsertQuerySchema","ArchivistCommitQuerySchema","allHandler","compact","dump","map","value","PayloadHasher","hashFields","clearHandler","clear","emit","module","commitHandler","payloads","assertEx","settled","Promise","allSettled","Object","values","parents","commit","parent","queryPayload","schema","query","bindQuery","filter","fulfilled","result","deleteHandler","hashes","deletedHashes","all","hash","delete","undefined","getHandler","resolvedHash","get","Error","insertHandler","pairs","PayloadBuilder","hashPairs","insertedPayloads","payload","insertPayloadIntoCache","set","$hash","creatableModule"]}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { Hash } from '@xylabs/hex';
|
|
1
2
|
import { Promisable, PromisableArray } from '@xylabs/promise';
|
|
2
3
|
import { AbstractArchivist } from '@xyo-network/archivist-abstract';
|
|
3
4
|
import { ArchivistConfig, ArchivistInstance, ArchivistModuleEventData } from '@xyo-network/archivist-model';
|
|
@@ -23,7 +24,7 @@ export declare class MemoryArchivist<TParams extends MemoryArchivistParams<AnyCo
|
|
|
23
24
|
protected allHandler(): PromisableArray<Payload>;
|
|
24
25
|
protected clearHandler(): void | Promise<void>;
|
|
25
26
|
protected commitHandler(): Promise<BoundWitness[]>;
|
|
26
|
-
protected deleteHandler(hashes:
|
|
27
|
+
protected deleteHandler(hashes: Hash[]): Promise<string[]>;
|
|
27
28
|
protected getHandler(hashes: string[]): Promisable<Payload[]>;
|
|
28
29
|
protected insertHandler(payloads: Payload[]): Promise<Payload[]>;
|
|
29
30
|
private insertPayloadIntoCache;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MemoryArchivist.d.ts","sourceRoot":"","sources":["../../src/MemoryArchivist.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"MemoryArchivist.d.ts","sourceRoot":"","sources":["../../src/MemoryArchivist.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,aAAa,CAAA;AAElC,OAAO,EAAa,UAAU,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAA;AACxE,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAA;AACnE,OAAO,EAIL,eAAe,EAKf,iBAAiB,EACjB,wBAAwB,EACzB,MAAM,8BAA8B,CAAA;AACrC,OAAO,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAA;AAE9D,OAAO,EAAE,eAAe,EAAmB,cAAc,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAA;AAE1G,OAAO,EAAE,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAA;AACrE,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAA;AAEpC,MAAM,MAAM,2BAA2B,GAAG,qCAAqC,CAAA;AAC/E,eAAO,MAAM,2BAA2B,EAAE,2BAAmE,CAAA;AAE7G,MAAM,MAAM,qBAAqB,GAAG,eAAe,CAAC;IAClD,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,MAAM,EAAE,2BAA2B,GAAG,eAAe,CAAC,QAAQ,CAAC,CAAA;CAChE,CAAC,CAAA;AAEF,MAAM,MAAM,qBAAqB,CAAC,OAAO,SAAS,eAAe,CAAC,qBAAqB,CAAC,GAAG,eAAe,CAAC,qBAAqB,CAAC,IAC/H,YAAY,CAAC,OAAO,CAAC,CAAA;AACvB,qBACa,eAAe,CACxB,OAAO,SAAS,qBAAqB,CAAC,eAAe,CAAC,qBAAqB,CAAC,CAAC,GAAG,qBAAqB,EACrG,UAAU,SAAS,wBAAwB,GAAG,wBAAwB,CAExE,SAAQ,iBAAiB,CAAC,OAAO,EAAE,UAAU,CAC7C,YAAW,iBAAiB,EAAE,cAAc;IAE5C,OAAgB,aAAa,WAAuD;IAEpF,OAAO,CAAC,cAAc,CAAC,CAA0B;IACjD,OAAO,CAAC,MAAM,CAAC,CAAmC;IAElD,IAAI,aAAa,sCAGhB;IAED,IAAI,KAAK,+CAGR;IAED,IAAI,GAAG,WAEN;IAED,IAAa,OAAO,aASnB;cAEkB,UAAU,IAAI,eAAe,CAAC,OAAO,CAAC;cAItC,YAAY,IAAI,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;cAM9B,aAAa,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC;cAiBxC,aAAa,CAAC,MAAM,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;cAWtD,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,UAAU,CAAC,OAAO,EAAE,CAAC;cAa7C,aAAa,CAAC,QAAQ,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;IAW/E,OAAO,CAAC,sBAAsB;CAK/B"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { Hash } from '@xylabs/hex';
|
|
1
2
|
import { Promisable, PromisableArray } from '@xylabs/promise';
|
|
2
3
|
import { AbstractArchivist } from '@xyo-network/archivist-abstract';
|
|
3
4
|
import { ArchivistConfig, ArchivistInstance, ArchivistModuleEventData } from '@xyo-network/archivist-model';
|
|
@@ -23,7 +24,7 @@ export declare class MemoryArchivist<TParams extends MemoryArchivistParams<AnyCo
|
|
|
23
24
|
protected allHandler(): PromisableArray<Payload>;
|
|
24
25
|
protected clearHandler(): void | Promise<void>;
|
|
25
26
|
protected commitHandler(): Promise<BoundWitness[]>;
|
|
26
|
-
protected deleteHandler(hashes:
|
|
27
|
+
protected deleteHandler(hashes: Hash[]): Promise<string[]>;
|
|
27
28
|
protected getHandler(hashes: string[]): Promisable<Payload[]>;
|
|
28
29
|
protected insertHandler(payloads: Payload[]): Promise<Payload[]>;
|
|
29
30
|
private insertPayloadIntoCache;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MemoryArchivist.d.ts","sourceRoot":"","sources":["../../src/MemoryArchivist.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"MemoryArchivist.d.ts","sourceRoot":"","sources":["../../src/MemoryArchivist.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,aAAa,CAAA;AAElC,OAAO,EAAa,UAAU,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAA;AACxE,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAA;AACnE,OAAO,EAIL,eAAe,EAKf,iBAAiB,EACjB,wBAAwB,EACzB,MAAM,8BAA8B,CAAA;AACrC,OAAO,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAA;AAE9D,OAAO,EAAE,eAAe,EAAmB,cAAc,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAA;AAE1G,OAAO,EAAE,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAA;AACrE,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAA;AAEpC,MAAM,MAAM,2BAA2B,GAAG,qCAAqC,CAAA;AAC/E,eAAO,MAAM,2BAA2B,EAAE,2BAAmE,CAAA;AAE7G,MAAM,MAAM,qBAAqB,GAAG,eAAe,CAAC;IAClD,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,MAAM,EAAE,2BAA2B,GAAG,eAAe,CAAC,QAAQ,CAAC,CAAA;CAChE,CAAC,CAAA;AAEF,MAAM,MAAM,qBAAqB,CAAC,OAAO,SAAS,eAAe,CAAC,qBAAqB,CAAC,GAAG,eAAe,CAAC,qBAAqB,CAAC,IAC/H,YAAY,CAAC,OAAO,CAAC,CAAA;AACvB,qBACa,eAAe,CACxB,OAAO,SAAS,qBAAqB,CAAC,eAAe,CAAC,qBAAqB,CAAC,CAAC,GAAG,qBAAqB,EACrG,UAAU,SAAS,wBAAwB,GAAG,wBAAwB,CAExE,SAAQ,iBAAiB,CAAC,OAAO,EAAE,UAAU,CAC7C,YAAW,iBAAiB,EAAE,cAAc;IAE5C,OAAgB,aAAa,WAAuD;IAEpF,OAAO,CAAC,cAAc,CAAC,CAA0B;IACjD,OAAO,CAAC,MAAM,CAAC,CAAmC;IAElD,IAAI,aAAa,sCAGhB;IAED,IAAI,KAAK,+CAGR;IAED,IAAI,GAAG,WAEN;IAED,IAAa,OAAO,aASnB;cAEkB,UAAU,IAAI,eAAe,CAAC,OAAO,CAAC;cAItC,YAAY,IAAI,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;cAM9B,aAAa,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC;cAiBxC,aAAa,CAAC,MAAM,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;cAWtD,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,UAAU,CAAC,OAAO,EAAE,CAAC;cAa7C,aAAa,CAAC,QAAQ,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;IAW/E,OAAO,CAAC,sBAAsB;CAK/B"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { Hash } from '@xylabs/hex';
|
|
1
2
|
import { Promisable, PromisableArray } from '@xylabs/promise';
|
|
2
3
|
import { AbstractArchivist } from '@xyo-network/archivist-abstract';
|
|
3
4
|
import { ArchivistConfig, ArchivistInstance, ArchivistModuleEventData } from '@xyo-network/archivist-model';
|
|
@@ -23,7 +24,7 @@ export declare class MemoryArchivist<TParams extends MemoryArchivistParams<AnyCo
|
|
|
23
24
|
protected allHandler(): PromisableArray<Payload>;
|
|
24
25
|
protected clearHandler(): void | Promise<void>;
|
|
25
26
|
protected commitHandler(): Promise<BoundWitness[]>;
|
|
26
|
-
protected deleteHandler(hashes:
|
|
27
|
+
protected deleteHandler(hashes: Hash[]): Promise<string[]>;
|
|
27
28
|
protected getHandler(hashes: string[]): Promisable<Payload[]>;
|
|
28
29
|
protected insertHandler(payloads: Payload[]): Promise<Payload[]>;
|
|
29
30
|
private insertPayloadIntoCache;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MemoryArchivist.d.ts","sourceRoot":"","sources":["../../src/MemoryArchivist.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"MemoryArchivist.d.ts","sourceRoot":"","sources":["../../src/MemoryArchivist.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,aAAa,CAAA;AAElC,OAAO,EAAa,UAAU,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAA;AACxE,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAA;AACnE,OAAO,EAIL,eAAe,EAKf,iBAAiB,EACjB,wBAAwB,EACzB,MAAM,8BAA8B,CAAA;AACrC,OAAO,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAA;AAE9D,OAAO,EAAE,eAAe,EAAmB,cAAc,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAA;AAE1G,OAAO,EAAE,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAA;AACrE,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAA;AAEpC,MAAM,MAAM,2BAA2B,GAAG,qCAAqC,CAAA;AAC/E,eAAO,MAAM,2BAA2B,EAAE,2BAAmE,CAAA;AAE7G,MAAM,MAAM,qBAAqB,GAAG,eAAe,CAAC;IAClD,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,MAAM,EAAE,2BAA2B,GAAG,eAAe,CAAC,QAAQ,CAAC,CAAA;CAChE,CAAC,CAAA;AAEF,MAAM,MAAM,qBAAqB,CAAC,OAAO,SAAS,eAAe,CAAC,qBAAqB,CAAC,GAAG,eAAe,CAAC,qBAAqB,CAAC,IAC/H,YAAY,CAAC,OAAO,CAAC,CAAA;AACvB,qBACa,eAAe,CACxB,OAAO,SAAS,qBAAqB,CAAC,eAAe,CAAC,qBAAqB,CAAC,CAAC,GAAG,qBAAqB,EACrG,UAAU,SAAS,wBAAwB,GAAG,wBAAwB,CAExE,SAAQ,iBAAiB,CAAC,OAAO,EAAE,UAAU,CAC7C,YAAW,iBAAiB,EAAE,cAAc;IAE5C,OAAgB,aAAa,WAAuD;IAEpF,OAAO,CAAC,cAAc,CAAC,CAA0B;IACjD,OAAO,CAAC,MAAM,CAAC,CAAmC;IAElD,IAAI,aAAa,sCAGhB;IAED,IAAI,KAAK,+CAGR;IAED,IAAI,GAAG,WAEN;IAED,IAAa,OAAO,aASnB;cAEkB,UAAU,IAAI,eAAe,CAAC,OAAO,CAAC;cAItC,YAAY,IAAI,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;cAM9B,aAAa,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC;cAiBxC,aAAa,CAAC,MAAM,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;cAWtD,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,UAAU,CAAC,OAAO,EAAE,CAAC;cAa7C,aAAa,CAAC,QAAQ,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;IAW/E,OAAO,CAAC,sBAAsB;CAK/B"}
|
package/dist/node/index.cjs
CHANGED
|
@@ -107,17 +107,10 @@ var _MemoryArchivist = class _MemoryArchivist extends import_archivist_abstract.
|
|
|
107
107
|
return (0, import_lodash.compact)(settled.filter(import_promise.fulfilled).map((result) => result.value));
|
|
108
108
|
}
|
|
109
109
|
async deleteHandler(hashes) {
|
|
110
|
-
const
|
|
111
|
-
|
|
112
|
-
payload
|
|
113
|
-
]));
|
|
114
|
-
const deletedPairs = (0, import_lodash.compact)(await Promise.all(payloadPairs.map(([hash, payload]) => {
|
|
115
|
-
return this.cache.delete(hash) ? [
|
|
116
|
-
hash,
|
|
117
|
-
payload
|
|
118
|
-
] : void 0;
|
|
110
|
+
const deletedHashes = (0, import_lodash.compact)(await Promise.all(hashes.map((hash) => {
|
|
111
|
+
return this.cache.delete(hash) ? hash : void 0;
|
|
119
112
|
})));
|
|
120
|
-
return
|
|
113
|
+
return deletedHashes;
|
|
121
114
|
}
|
|
122
115
|
getHandler(hashes) {
|
|
123
116
|
return (0, import_lodash.compact)(hashes.map((hash) => {
|
package/dist/node/index.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/index.ts","../../src/MemoryArchivist.ts"],"sourcesContent":["export * from './MemoryArchivist'\n","import { assertEx } from '@xylabs/assert'\nimport { compact } from '@xylabs/lodash'\nimport { fulfilled, Promisable, PromisableArray } from '@xylabs/promise'\nimport { AbstractArchivist } from '@xyo-network/archivist-abstract'\nimport {\n ArchivistAllQuerySchema,\n ArchivistClearQuerySchema,\n ArchivistCommitQuerySchema,\n ArchivistConfig,\n ArchivistConfigSchema,\n ArchivistDeleteQuerySchema,\n ArchivistInsertQuery,\n ArchivistInsertQuerySchema,\n ArchivistInstance,\n ArchivistModuleEventData,\n} from '@xyo-network/archivist-model'\nimport { BoundWitness } from '@xyo-network/boundwitness-model'\nimport { PayloadHasher } from '@xyo-network/hash'\nimport { AnyConfigSchema, creatableModule, ModuleInstance, ModuleParams } from '@xyo-network/module-model'\nimport { PayloadBuilder } from '@xyo-network/payload-builder'\nimport { Payload, PayloadWithMeta } from '@xyo-network/payload-model'\nimport { LRUCache } from 'lru-cache'\n\nexport type MemoryArchivistConfigSchema = 'network.xyo.archivist.memory.config'\nexport const MemoryArchivistConfigSchema: MemoryArchivistConfigSchema = 'network.xyo.archivist.memory.config'\n\nexport type MemoryArchivistConfig = ArchivistConfig<{\n max?: number\n schema: MemoryArchivistConfigSchema | ArchivistConfig['schema']\n}>\n\nexport type MemoryArchivistParams<TConfig extends AnyConfigSchema<MemoryArchivistConfig> = AnyConfigSchema<MemoryArchivistConfig>> =\n ModuleParams<TConfig>\n@creatableModule()\nexport class MemoryArchivist<\n TParams extends MemoryArchivistParams<AnyConfigSchema<MemoryArchivistConfig>> = MemoryArchivistParams,\n TEventData extends ArchivistModuleEventData = ArchivistModuleEventData,\n >\n extends AbstractArchivist<TParams, TEventData>\n implements ArchivistInstance, ModuleInstance\n{\n static override configSchemas = [MemoryArchivistConfigSchema, ArchivistConfigSchema]\n\n private _bodyHashIndex?: LRUCache<string, string>\n private _cache?: LRUCache<string, PayloadWithMeta>\n\n get bodyHashIndex() {\n this._bodyHashIndex = this._bodyHashIndex ?? new LRUCache<string, string>({ max: this.max })\n return this._bodyHashIndex\n }\n\n get cache() {\n this._cache = this._cache ?? new LRUCache<string, PayloadWithMeta>({ max: this.max })\n return this._cache\n }\n\n get max() {\n return this.config?.max ?? 10_000\n }\n\n override get queries() {\n return [\n ArchivistAllQuerySchema,\n ArchivistDeleteQuerySchema,\n ArchivistClearQuerySchema,\n ArchivistInsertQuerySchema,\n ArchivistCommitQuerySchema,\n ...super.queries,\n ]\n }\n\n protected override allHandler(): PromisableArray<Payload> {\n return compact(this.cache.dump().map((value) => PayloadHasher.hashFields(value[1].value)))\n }\n\n protected override clearHandler(): void | Promise<void> {\n this.cache.clear()\n this.bodyHashIndex.clear()\n return this.emit('cleared', { module: this })\n }\n\n protected override async commitHandler(): Promise<BoundWitness[]> {\n const payloads = assertEx(await this.allHandler(), 'Nothing to commit')\n const settled = await Promise.allSettled(\n compact(\n Object.values((await this.parents()).commit ?? [])?.map(async (parent) => {\n const queryPayload: ArchivistInsertQuery = {\n schema: ArchivistInsertQuerySchema,\n }\n const query = await this.bindQuery(queryPayload, payloads)\n return (await parent?.query(query[0], query[1]))?.[0]\n }),\n ),\n )\n await this.clearHandler()\n return compact(settled.filter(fulfilled).map((result) => result.value))\n }\n\n protected override async deleteHandler(hashes:
|
|
1
|
+
{"version":3,"sources":["../../src/index.ts","../../src/MemoryArchivist.ts"],"sourcesContent":["export * from './MemoryArchivist'\n","import { assertEx } from '@xylabs/assert'\nimport { Hash } from '@xylabs/hex'\nimport { compact } from '@xylabs/lodash'\nimport { fulfilled, Promisable, PromisableArray } from '@xylabs/promise'\nimport { AbstractArchivist } from '@xyo-network/archivist-abstract'\nimport {\n ArchivistAllQuerySchema,\n ArchivistClearQuerySchema,\n ArchivistCommitQuerySchema,\n ArchivistConfig,\n ArchivistConfigSchema,\n ArchivistDeleteQuerySchema,\n ArchivistInsertQuery,\n ArchivistInsertQuerySchema,\n ArchivistInstance,\n ArchivistModuleEventData,\n} from '@xyo-network/archivist-model'\nimport { BoundWitness } from '@xyo-network/boundwitness-model'\nimport { PayloadHasher } from '@xyo-network/hash'\nimport { AnyConfigSchema, creatableModule, ModuleInstance, ModuleParams } from '@xyo-network/module-model'\nimport { PayloadBuilder } from '@xyo-network/payload-builder'\nimport { Payload, PayloadWithMeta } from '@xyo-network/payload-model'\nimport { LRUCache } from 'lru-cache'\n\nexport type MemoryArchivistConfigSchema = 'network.xyo.archivist.memory.config'\nexport const MemoryArchivistConfigSchema: MemoryArchivistConfigSchema = 'network.xyo.archivist.memory.config'\n\nexport type MemoryArchivistConfig = ArchivistConfig<{\n max?: number\n schema: MemoryArchivistConfigSchema | ArchivistConfig['schema']\n}>\n\nexport type MemoryArchivistParams<TConfig extends AnyConfigSchema<MemoryArchivistConfig> = AnyConfigSchema<MemoryArchivistConfig>> =\n ModuleParams<TConfig>\n@creatableModule()\nexport class MemoryArchivist<\n TParams extends MemoryArchivistParams<AnyConfigSchema<MemoryArchivistConfig>> = MemoryArchivistParams,\n TEventData extends ArchivistModuleEventData = ArchivistModuleEventData,\n >\n extends AbstractArchivist<TParams, TEventData>\n implements ArchivistInstance, ModuleInstance\n{\n static override configSchemas = [MemoryArchivistConfigSchema, ArchivistConfigSchema]\n\n private _bodyHashIndex?: LRUCache<string, string>\n private _cache?: LRUCache<string, PayloadWithMeta>\n\n get bodyHashIndex() {\n this._bodyHashIndex = this._bodyHashIndex ?? new LRUCache<string, string>({ max: this.max })\n return this._bodyHashIndex\n }\n\n get cache() {\n this._cache = this._cache ?? new LRUCache<string, PayloadWithMeta>({ max: this.max })\n return this._cache\n }\n\n get max() {\n return this.config?.max ?? 10_000\n }\n\n override get queries() {\n return [\n ArchivistAllQuerySchema,\n ArchivistDeleteQuerySchema,\n ArchivistClearQuerySchema,\n ArchivistInsertQuerySchema,\n ArchivistCommitQuerySchema,\n ...super.queries,\n ]\n }\n\n protected override allHandler(): PromisableArray<Payload> {\n return compact(this.cache.dump().map((value) => PayloadHasher.hashFields(value[1].value)))\n }\n\n protected override clearHandler(): void | Promise<void> {\n this.cache.clear()\n this.bodyHashIndex.clear()\n return this.emit('cleared', { module: this })\n }\n\n protected override async commitHandler(): Promise<BoundWitness[]> {\n const payloads = assertEx(await this.allHandler(), 'Nothing to commit')\n const settled = await Promise.allSettled(\n compact(\n Object.values((await this.parents()).commit ?? [])?.map(async (parent) => {\n const queryPayload: ArchivistInsertQuery = {\n schema: ArchivistInsertQuerySchema,\n }\n const query = await this.bindQuery(queryPayload, payloads)\n return (await parent?.query(query[0], query[1]))?.[0]\n }),\n ),\n )\n await this.clearHandler()\n return compact(settled.filter(fulfilled).map((result) => result.value))\n }\n\n protected override async deleteHandler(hashes: Hash[]): Promise<string[]> {\n const deletedHashes = compact(\n await Promise.all(\n hashes.map((hash) => {\n return this.cache.delete(hash) ? hash : undefined\n }),\n ),\n )\n return deletedHashes\n }\n\n protected override getHandler(hashes: string[]): Promisable<Payload[]> {\n return compact(\n hashes.map((hash) => {\n const resolvedHash = this.bodyHashIndex.get(hash) ?? hash\n const result = this.cache.get(resolvedHash)\n if (resolvedHash !== hash && !result) {\n throw new Error('Missing referenced payload')\n }\n return result\n }),\n )\n }\n\n protected override async insertHandler(payloads: Payload[]): Promise<Payload[]> {\n const pairs = await PayloadBuilder.hashPairs(payloads)\n const insertedPayloads = await Promise.all(\n pairs.map(([payload, hash]) => {\n return this.insertPayloadIntoCache(payload, hash)\n }),\n )\n\n return insertedPayloads\n }\n\n private insertPayloadIntoCache(payload: PayloadWithMeta, hash: string): PayloadWithMeta {\n this.cache.set(hash, payload)\n this.bodyHashIndex.set(payload.$hash, hash)\n return payload\n }\n}\n"],"mappings":"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","names":["MemoryArchivistConfigSchema","MemoryArchivist","AbstractArchivist","_bodyHashIndex","_cache","bodyHashIndex","LRUCache","max","cache","config","queries","ArchivistAllQuerySchema","ArchivistDeleteQuerySchema","ArchivistClearQuerySchema","ArchivistInsertQuerySchema","ArchivistCommitQuerySchema","allHandler","compact","dump","map","value","PayloadHasher","hashFields","clearHandler","clear","emit","module","commitHandler","payloads","assertEx","settled","Promise","allSettled","Object","values","parents","commit","parent","queryPayload","schema","query","bindQuery","_a","filter","fulfilled","result","deleteHandler","hashes","deletedHashes","all","hash","delete","undefined","getHandler","resolvedHash","get","Error","insertHandler","pairs","PayloadBuilder","hashPairs","insertedPayloads","payload","insertPayloadIntoCache","set","$hash","configSchemas","ArchivistConfigSchema","creatableModule"]}
|
package/dist/node/index.js
CHANGED
|
@@ -82,17 +82,10 @@ var _MemoryArchivist = class _MemoryArchivist extends AbstractArchivist {
|
|
|
82
82
|
return compact(settled.filter(fulfilled).map((result) => result.value));
|
|
83
83
|
}
|
|
84
84
|
async deleteHandler(hashes) {
|
|
85
|
-
const
|
|
86
|
-
|
|
87
|
-
payload
|
|
88
|
-
]));
|
|
89
|
-
const deletedPairs = compact(await Promise.all(payloadPairs.map(([hash, payload]) => {
|
|
90
|
-
return this.cache.delete(hash) ? [
|
|
91
|
-
hash,
|
|
92
|
-
payload
|
|
93
|
-
] : void 0;
|
|
85
|
+
const deletedHashes = compact(await Promise.all(hashes.map((hash) => {
|
|
86
|
+
return this.cache.delete(hash) ? hash : void 0;
|
|
94
87
|
})));
|
|
95
|
-
return
|
|
88
|
+
return deletedHashes;
|
|
96
89
|
}
|
|
97
90
|
getHandler(hashes) {
|
|
98
91
|
return compact(hashes.map((hash) => {
|
package/dist/node/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/MemoryArchivist.ts"],"sourcesContent":["import { assertEx } from '@xylabs/assert'\nimport { compact } from '@xylabs/lodash'\nimport { fulfilled, Promisable, PromisableArray } from '@xylabs/promise'\nimport { AbstractArchivist } from '@xyo-network/archivist-abstract'\nimport {\n ArchivistAllQuerySchema,\n ArchivistClearQuerySchema,\n ArchivistCommitQuerySchema,\n ArchivistConfig,\n ArchivistConfigSchema,\n ArchivistDeleteQuerySchema,\n ArchivistInsertQuery,\n ArchivistInsertQuerySchema,\n ArchivistInstance,\n ArchivistModuleEventData,\n} from '@xyo-network/archivist-model'\nimport { BoundWitness } from '@xyo-network/boundwitness-model'\nimport { PayloadHasher } from '@xyo-network/hash'\nimport { AnyConfigSchema, creatableModule, ModuleInstance, ModuleParams } from '@xyo-network/module-model'\nimport { PayloadBuilder } from '@xyo-network/payload-builder'\nimport { Payload, PayloadWithMeta } from '@xyo-network/payload-model'\nimport { LRUCache } from 'lru-cache'\n\nexport type MemoryArchivistConfigSchema = 'network.xyo.archivist.memory.config'\nexport const MemoryArchivistConfigSchema: MemoryArchivistConfigSchema = 'network.xyo.archivist.memory.config'\n\nexport type MemoryArchivistConfig = ArchivistConfig<{\n max?: number\n schema: MemoryArchivistConfigSchema | ArchivistConfig['schema']\n}>\n\nexport type MemoryArchivistParams<TConfig extends AnyConfigSchema<MemoryArchivistConfig> = AnyConfigSchema<MemoryArchivistConfig>> =\n ModuleParams<TConfig>\n@creatableModule()\nexport class MemoryArchivist<\n TParams extends MemoryArchivistParams<AnyConfigSchema<MemoryArchivistConfig>> = MemoryArchivistParams,\n TEventData extends ArchivistModuleEventData = ArchivistModuleEventData,\n >\n extends AbstractArchivist<TParams, TEventData>\n implements ArchivistInstance, ModuleInstance\n{\n static override configSchemas = [MemoryArchivistConfigSchema, ArchivistConfigSchema]\n\n private _bodyHashIndex?: LRUCache<string, string>\n private _cache?: LRUCache<string, PayloadWithMeta>\n\n get bodyHashIndex() {\n this._bodyHashIndex = this._bodyHashIndex ?? new LRUCache<string, string>({ max: this.max })\n return this._bodyHashIndex\n }\n\n get cache() {\n this._cache = this._cache ?? new LRUCache<string, PayloadWithMeta>({ max: this.max })\n return this._cache\n }\n\n get max() {\n return this.config?.max ?? 10_000\n }\n\n override get queries() {\n return [\n ArchivistAllQuerySchema,\n ArchivistDeleteQuerySchema,\n ArchivistClearQuerySchema,\n ArchivistInsertQuerySchema,\n ArchivistCommitQuerySchema,\n ...super.queries,\n ]\n }\n\n protected override allHandler(): PromisableArray<Payload> {\n return compact(this.cache.dump().map((value) => PayloadHasher.hashFields(value[1].value)))\n }\n\n protected override clearHandler(): void | Promise<void> {\n this.cache.clear()\n this.bodyHashIndex.clear()\n return this.emit('cleared', { module: this })\n }\n\n protected override async commitHandler(): Promise<BoundWitness[]> {\n const payloads = assertEx(await this.allHandler(), 'Nothing to commit')\n const settled = await Promise.allSettled(\n compact(\n Object.values((await this.parents()).commit ?? [])?.map(async (parent) => {\n const queryPayload: ArchivistInsertQuery = {\n schema: ArchivistInsertQuerySchema,\n }\n const query = await this.bindQuery(queryPayload, payloads)\n return (await parent?.query(query[0], query[1]))?.[0]\n }),\n ),\n )\n await this.clearHandler()\n return compact(settled.filter(fulfilled).map((result) => result.value))\n }\n\n protected override async deleteHandler(hashes:
|
|
1
|
+
{"version":3,"sources":["../../src/MemoryArchivist.ts"],"sourcesContent":["import { assertEx } from '@xylabs/assert'\nimport { Hash } from '@xylabs/hex'\nimport { compact } from '@xylabs/lodash'\nimport { fulfilled, Promisable, PromisableArray } from '@xylabs/promise'\nimport { AbstractArchivist } from '@xyo-network/archivist-abstract'\nimport {\n ArchivistAllQuerySchema,\n ArchivistClearQuerySchema,\n ArchivistCommitQuerySchema,\n ArchivistConfig,\n ArchivistConfigSchema,\n ArchivistDeleteQuerySchema,\n ArchivistInsertQuery,\n ArchivistInsertQuerySchema,\n ArchivistInstance,\n ArchivistModuleEventData,\n} from '@xyo-network/archivist-model'\nimport { BoundWitness } from '@xyo-network/boundwitness-model'\nimport { PayloadHasher } from '@xyo-network/hash'\nimport { AnyConfigSchema, creatableModule, ModuleInstance, ModuleParams } from '@xyo-network/module-model'\nimport { PayloadBuilder } from '@xyo-network/payload-builder'\nimport { Payload, PayloadWithMeta } from '@xyo-network/payload-model'\nimport { LRUCache } from 'lru-cache'\n\nexport type MemoryArchivistConfigSchema = 'network.xyo.archivist.memory.config'\nexport const MemoryArchivistConfigSchema: MemoryArchivistConfigSchema = 'network.xyo.archivist.memory.config'\n\nexport type MemoryArchivistConfig = ArchivistConfig<{\n max?: number\n schema: MemoryArchivistConfigSchema | ArchivistConfig['schema']\n}>\n\nexport type MemoryArchivistParams<TConfig extends AnyConfigSchema<MemoryArchivistConfig> = AnyConfigSchema<MemoryArchivistConfig>> =\n ModuleParams<TConfig>\n@creatableModule()\nexport class MemoryArchivist<\n TParams extends MemoryArchivistParams<AnyConfigSchema<MemoryArchivistConfig>> = MemoryArchivistParams,\n TEventData extends ArchivistModuleEventData = ArchivistModuleEventData,\n >\n extends AbstractArchivist<TParams, TEventData>\n implements ArchivistInstance, ModuleInstance\n{\n static override configSchemas = [MemoryArchivistConfigSchema, ArchivistConfigSchema]\n\n private _bodyHashIndex?: LRUCache<string, string>\n private _cache?: LRUCache<string, PayloadWithMeta>\n\n get bodyHashIndex() {\n this._bodyHashIndex = this._bodyHashIndex ?? new LRUCache<string, string>({ max: this.max })\n return this._bodyHashIndex\n }\n\n get cache() {\n this._cache = this._cache ?? new LRUCache<string, PayloadWithMeta>({ max: this.max })\n return this._cache\n }\n\n get max() {\n return this.config?.max ?? 10_000\n }\n\n override get queries() {\n return [\n ArchivistAllQuerySchema,\n ArchivistDeleteQuerySchema,\n ArchivistClearQuerySchema,\n ArchivistInsertQuerySchema,\n ArchivistCommitQuerySchema,\n ...super.queries,\n ]\n }\n\n protected override allHandler(): PromisableArray<Payload> {\n return compact(this.cache.dump().map((value) => PayloadHasher.hashFields(value[1].value)))\n }\n\n protected override clearHandler(): void | Promise<void> {\n this.cache.clear()\n this.bodyHashIndex.clear()\n return this.emit('cleared', { module: this })\n }\n\n protected override async commitHandler(): Promise<BoundWitness[]> {\n const payloads = assertEx(await this.allHandler(), 'Nothing to commit')\n const settled = await Promise.allSettled(\n compact(\n Object.values((await this.parents()).commit ?? [])?.map(async (parent) => {\n const queryPayload: ArchivistInsertQuery = {\n schema: ArchivistInsertQuerySchema,\n }\n const query = await this.bindQuery(queryPayload, payloads)\n return (await parent?.query(query[0], query[1]))?.[0]\n }),\n ),\n )\n await this.clearHandler()\n return compact(settled.filter(fulfilled).map((result) => result.value))\n }\n\n protected override async deleteHandler(hashes: Hash[]): Promise<string[]> {\n const deletedHashes = compact(\n await Promise.all(\n hashes.map((hash) => {\n return this.cache.delete(hash) ? hash : undefined\n }),\n ),\n )\n return deletedHashes\n }\n\n protected override getHandler(hashes: string[]): Promisable<Payload[]> {\n return compact(\n hashes.map((hash) => {\n const resolvedHash = this.bodyHashIndex.get(hash) ?? hash\n const result = this.cache.get(resolvedHash)\n if (resolvedHash !== hash && !result) {\n throw new Error('Missing referenced payload')\n }\n return result\n }),\n )\n }\n\n protected override async insertHandler(payloads: Payload[]): Promise<Payload[]> {\n const pairs = await PayloadBuilder.hashPairs(payloads)\n const insertedPayloads = await Promise.all(\n pairs.map(([payload, hash]) => {\n return this.insertPayloadIntoCache(payload, hash)\n }),\n )\n\n return insertedPayloads\n }\n\n private insertPayloadIntoCache(payload: PayloadWithMeta, hash: string): PayloadWithMeta {\n this.cache.set(hash, payload)\n this.bodyHashIndex.set(payload.$hash, hash)\n return payload\n }\n}\n"],"mappings":"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","names":["assertEx","compact","fulfilled","AbstractArchivist","ArchivistAllQuerySchema","ArchivistClearQuerySchema","ArchivistCommitQuerySchema","ArchivistConfigSchema","ArchivistDeleteQuerySchema","ArchivistInsertQuerySchema","PayloadHasher","creatableModule","PayloadBuilder","LRUCache","MemoryArchivistConfigSchema","MemoryArchivist","AbstractArchivist","_bodyHashIndex","_cache","bodyHashIndex","LRUCache","max","cache","config","queries","ArchivistAllQuerySchema","ArchivistDeleteQuerySchema","ArchivistClearQuerySchema","ArchivistInsertQuerySchema","ArchivistCommitQuerySchema","allHandler","compact","dump","map","value","PayloadHasher","hashFields","clearHandler","clear","emit","module","commitHandler","payloads","assertEx","settled","Promise","allSettled","Object","values","parents","commit","parent","queryPayload","schema","query","bindQuery","_a","filter","fulfilled","result","deleteHandler","hashes","deletedHashes","all","hash","delete","undefined","getHandler","resolvedHash","get","Error","insertHandler","pairs","PayloadBuilder","hashPairs","insertedPayloads","payload","insertPayloadIntoCache","set","$hash","configSchemas","ArchivistConfigSchema","creatableModule"]}
|
package/package.json
CHANGED
|
@@ -11,21 +11,22 @@
|
|
|
11
11
|
},
|
|
12
12
|
"dependencies": {
|
|
13
13
|
"@xylabs/assert": "^2.13.29",
|
|
14
|
+
"@xylabs/hex": "^2.13.29",
|
|
14
15
|
"@xylabs/lodash": "^2.13.29",
|
|
15
16
|
"@xylabs/promise": "^2.13.29",
|
|
16
|
-
"@xyo-network/archivist-abstract": "~2.89.0-rc.
|
|
17
|
-
"@xyo-network/archivist-model": "~2.89.0-rc.
|
|
18
|
-
"@xyo-network/boundwitness-model": "~2.89.0-rc.
|
|
19
|
-
"@xyo-network/hash": "~2.89.0-rc.
|
|
20
|
-
"@xyo-network/module-model": "~2.89.0-rc.
|
|
21
|
-
"@xyo-network/payload-builder": "~2.89.0-rc.
|
|
22
|
-
"@xyo-network/payload-model": "~2.89.0-rc.
|
|
17
|
+
"@xyo-network/archivist-abstract": "~2.89.0-rc.3",
|
|
18
|
+
"@xyo-network/archivist-model": "~2.89.0-rc.3",
|
|
19
|
+
"@xyo-network/boundwitness-model": "~2.89.0-rc.3",
|
|
20
|
+
"@xyo-network/hash": "~2.89.0-rc.3",
|
|
21
|
+
"@xyo-network/module-model": "~2.89.0-rc.3",
|
|
22
|
+
"@xyo-network/payload-builder": "~2.89.0-rc.3",
|
|
23
|
+
"@xyo-network/payload-model": "~2.89.0-rc.3",
|
|
23
24
|
"lru-cache": "^10.1.0"
|
|
24
25
|
},
|
|
25
26
|
"devDependencies": {
|
|
26
27
|
"@xylabs/ts-scripts-yarn3": "^3.2.42",
|
|
27
28
|
"@xylabs/tsconfig": "^3.2.42",
|
|
28
|
-
"@xyo-network/account": "~2.89.0-rc.
|
|
29
|
+
"@xyo-network/account": "~2.89.0-rc.3",
|
|
29
30
|
"typescript": "^5.3.3"
|
|
30
31
|
},
|
|
31
32
|
"description": "Primary SDK for using XYO Protocol 2.0",
|
|
@@ -67,7 +68,7 @@
|
|
|
67
68
|
"url": "https://github.com/XYOracleNetwork/sdk-xyo-client-js.git"
|
|
68
69
|
},
|
|
69
70
|
"sideEffects": false,
|
|
70
|
-
"version": "2.89.0-rc.
|
|
71
|
+
"version": "2.89.0-rc.3",
|
|
71
72
|
"type": "module",
|
|
72
73
|
"stableVersion": "2.88.3"
|
|
73
74
|
}
|
package/src/MemoryArchivist.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { assertEx } from '@xylabs/assert'
|
|
2
|
+
import { Hash } from '@xylabs/hex'
|
|
2
3
|
import { compact } from '@xylabs/lodash'
|
|
3
4
|
import { fulfilled, Promisable, PromisableArray } from '@xylabs/promise'
|
|
4
5
|
import { AbstractArchivist } from '@xyo-network/archivist-abstract'
|
|
@@ -96,18 +97,15 @@ export class MemoryArchivist<
|
|
|
96
97
|
return compact(settled.filter(fulfilled).map((result) => result.value))
|
|
97
98
|
}
|
|
98
99
|
|
|
99
|
-
protected override async deleteHandler(hashes:
|
|
100
|
-
const
|
|
101
|
-
(await this.get(hashes)).map<Promise<[string, Payload]>>(async (payload) => [await PayloadHasher.hashAsync(payload), payload]),
|
|
102
|
-
)
|
|
103
|
-
const deletedPairs: [string, Payload][] = compact(
|
|
100
|
+
protected override async deleteHandler(hashes: Hash[]): Promise<string[]> {
|
|
101
|
+
const deletedHashes = compact(
|
|
104
102
|
await Promise.all(
|
|
105
|
-
|
|
106
|
-
return this.cache.delete(hash) ?
|
|
103
|
+
hashes.map((hash) => {
|
|
104
|
+
return this.cache.delete(hash) ? hash : undefined
|
|
107
105
|
}),
|
|
108
106
|
),
|
|
109
107
|
)
|
|
110
|
-
return
|
|
108
|
+
return deletedHashes
|
|
111
109
|
}
|
|
112
110
|
|
|
113
111
|
protected override getHandler(hashes: string[]): Promisable<Payload[]> {
|