@xyo-network/archivist-memory 2.85.5
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/LICENSE +165 -0
- package/README.md +13 -0
- package/dist/browser/CookieArchivist.d.cts +32 -0
- package/dist/browser/CookieArchivist.d.cts.map +1 -0
- package/dist/browser/CookieArchivist.d.mts +32 -0
- package/dist/browser/CookieArchivist.d.mts.map +1 -0
- package/dist/browser/CookieArchivist.d.ts +32 -0
- package/dist/browser/CookieArchivist.d.ts.map +1 -0
- package/dist/browser/MemoryArchivist.d.cts +31 -0
- package/dist/browser/MemoryArchivist.d.cts.map +1 -0
- package/dist/browser/MemoryArchivist.d.mts +31 -0
- package/dist/browser/MemoryArchivist.d.mts.map +1 -0
- package/dist/browser/MemoryArchivist.d.ts +31 -0
- package/dist/browser/MemoryArchivist.d.ts.map +1 -0
- package/dist/browser/StorageArchivist.d.cts +39 -0
- package/dist/browser/StorageArchivist.d.cts.map +1 -0
- package/dist/browser/StorageArchivist.d.mts +39 -0
- package/dist/browser/StorageArchivist.d.mts.map +1 -0
- package/dist/browser/StorageArchivist.d.ts +39 -0
- package/dist/browser/StorageArchivist.d.ts.map +1 -0
- package/dist/browser/index.cjs +136 -0
- package/dist/browser/index.cjs.map +1 -0
- package/dist/browser/index.d.cts +2 -0
- package/dist/browser/index.d.cts.map +1 -0
- package/dist/browser/index.d.mts +2 -0
- package/dist/browser/index.d.mts.map +1 -0
- package/dist/browser/index.d.ts +2 -0
- package/dist/browser/index.d.ts.map +1 -0
- package/dist/browser/index.js +115 -0
- package/dist/browser/index.js.map +1 -0
- package/dist/node/CookieArchivist.d.cts +32 -0
- package/dist/node/CookieArchivist.d.cts.map +1 -0
- package/dist/node/CookieArchivist.d.mts +32 -0
- package/dist/node/CookieArchivist.d.mts.map +1 -0
- package/dist/node/CookieArchivist.d.ts +32 -0
- package/dist/node/CookieArchivist.d.ts.map +1 -0
- package/dist/node/MemoryArchivist.d.cts +31 -0
- package/dist/node/MemoryArchivist.d.cts.map +1 -0
- package/dist/node/MemoryArchivist.d.mts +31 -0
- package/dist/node/MemoryArchivist.d.mts.map +1 -0
- package/dist/node/MemoryArchivist.d.ts +31 -0
- package/dist/node/MemoryArchivist.d.ts.map +1 -0
- package/dist/node/StorageArchivist.d.cts +39 -0
- package/dist/node/StorageArchivist.d.cts.map +1 -0
- package/dist/node/StorageArchivist.d.mts +39 -0
- package/dist/node/StorageArchivist.d.mts.map +1 -0
- package/dist/node/StorageArchivist.d.ts +39 -0
- package/dist/node/StorageArchivist.d.ts.map +1 -0
- package/dist/node/index.cjs +148 -0
- package/dist/node/index.cjs.map +1 -0
- package/dist/node/index.d.cts +2 -0
- package/dist/node/index.d.cts.map +1 -0
- package/dist/node/index.d.mts +2 -0
- package/dist/node/index.d.mts.map +1 -0
- package/dist/node/index.d.ts +2 -0
- package/dist/node/index.d.ts.map +1 -0
- package/dist/node/index.js +122 -0
- package/dist/node/index.js.map +1 -0
- package/package.json +79 -0
- package/src/CookieArchivist.ts +164 -0
- package/src/MemoryArchivist.ts +126 -0
- package/src/StorageArchivist.ts +191 -0
- package/src/index.ts +1 -0
- package/src/spec/testArchivist.ts +50 -0
- package/typedoc.json +5 -0
|
@@ -0,0 +1,136 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
|
7
|
+
var __export = (target, all) => {
|
|
8
|
+
for (var name in all)
|
|
9
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
10
|
+
};
|
|
11
|
+
var __copyProps = (to, from, except, desc) => {
|
|
12
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
13
|
+
for (let key of __getOwnPropNames(from))
|
|
14
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
15
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
16
|
+
}
|
|
17
|
+
return to;
|
|
18
|
+
};
|
|
19
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
20
|
+
|
|
21
|
+
// src/index.ts
|
|
22
|
+
var src_exports = {};
|
|
23
|
+
__export(src_exports, {
|
|
24
|
+
MemoryArchivist: () => MemoryArchivist,
|
|
25
|
+
MemoryArchivistConfigSchema: () => MemoryArchivistConfigSchema
|
|
26
|
+
});
|
|
27
|
+
module.exports = __toCommonJS(src_exports);
|
|
28
|
+
|
|
29
|
+
// src/MemoryArchivist.ts
|
|
30
|
+
var import_assert = require("@xylabs/assert");
|
|
31
|
+
var import_lodash = require("@xylabs/lodash");
|
|
32
|
+
var import_promise = require("@xylabs/promise");
|
|
33
|
+
var import_archivist_abstract = require("@xyo-network/archivist-abstract");
|
|
34
|
+
var import_archivist_model = require("@xyo-network/archivist-model");
|
|
35
|
+
var import_hash = require("@xyo-network/hash");
|
|
36
|
+
var import_module_model = require("@xyo-network/module-model");
|
|
37
|
+
var import_payload_wrapper = require("@xyo-network/payload-wrapper");
|
|
38
|
+
var import_lru_cache = require("lru-cache");
|
|
39
|
+
function _ts_decorate(decorators, target, key, desc) {
|
|
40
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
41
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function")
|
|
42
|
+
r = Reflect.decorate(decorators, target, key, desc);
|
|
43
|
+
else
|
|
44
|
+
for (var i = decorators.length - 1; i >= 0; i--)
|
|
45
|
+
if (d = decorators[i])
|
|
46
|
+
r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
47
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
48
|
+
}
|
|
49
|
+
__name(_ts_decorate, "_ts_decorate");
|
|
50
|
+
var MemoryArchivistConfigSchema = "network.xyo.archivist.memory.config";
|
|
51
|
+
var MemoryArchivist = class extends import_archivist_abstract.AbstractArchivist {
|
|
52
|
+
static {
|
|
53
|
+
__name(this, "MemoryArchivist");
|
|
54
|
+
}
|
|
55
|
+
static configSchemas = [
|
|
56
|
+
MemoryArchivistConfigSchema,
|
|
57
|
+
import_archivist_model.ArchivistConfigSchema
|
|
58
|
+
];
|
|
59
|
+
_cache;
|
|
60
|
+
get cache() {
|
|
61
|
+
this._cache = this._cache ?? new import_lru_cache.LRUCache({
|
|
62
|
+
max: this.max
|
|
63
|
+
});
|
|
64
|
+
return this._cache;
|
|
65
|
+
}
|
|
66
|
+
get max() {
|
|
67
|
+
return this.config?.max ?? 1e4;
|
|
68
|
+
}
|
|
69
|
+
get queries() {
|
|
70
|
+
return [
|
|
71
|
+
import_archivist_model.ArchivistAllQuerySchema,
|
|
72
|
+
import_archivist_model.ArchivistDeleteQuerySchema,
|
|
73
|
+
import_archivist_model.ArchivistClearQuerySchema,
|
|
74
|
+
import_archivist_model.ArchivistInsertQuerySchema,
|
|
75
|
+
import_archivist_model.ArchivistCommitQuerySchema,
|
|
76
|
+
...super.queries
|
|
77
|
+
];
|
|
78
|
+
}
|
|
79
|
+
allHandler() {
|
|
80
|
+
return (0, import_lodash.compact)(this.cache.dump().map((value) => import_hash.PayloadHasher.hashFields(value[1].value)));
|
|
81
|
+
}
|
|
82
|
+
clearHandler() {
|
|
83
|
+
this.cache.clear();
|
|
84
|
+
return this.emit("cleared", {
|
|
85
|
+
module: this
|
|
86
|
+
});
|
|
87
|
+
}
|
|
88
|
+
async commitHandler() {
|
|
89
|
+
const payloads = (0, import_assert.assertEx)(await this.allHandler(), "Nothing to commit");
|
|
90
|
+
const settled = await Promise.allSettled((0, import_lodash.compact)(Object.values((await this.parents()).commit ?? [])?.map(async (parent) => {
|
|
91
|
+
const queryPayload = {
|
|
92
|
+
schema: import_archivist_model.ArchivistInsertQuerySchema
|
|
93
|
+
};
|
|
94
|
+
const query = await this.bindQuery(queryPayload, payloads);
|
|
95
|
+
return (await parent?.query(query[0], query[1]))?.[0];
|
|
96
|
+
})));
|
|
97
|
+
await this.clearHandler();
|
|
98
|
+
return (0, import_lodash.compact)(settled.filter(import_promise.fulfilled).map((result) => result.value));
|
|
99
|
+
}
|
|
100
|
+
async deleteHandler(hashes) {
|
|
101
|
+
const payloadPairs = await Promise.all((await this.get(hashes)).map(async (payload) => [
|
|
102
|
+
await import_hash.PayloadHasher.hashAsync(payload),
|
|
103
|
+
payload
|
|
104
|
+
]));
|
|
105
|
+
const deletedPairs = (0, import_lodash.compact)(await Promise.all(payloadPairs.map(([hash, payload]) => {
|
|
106
|
+
return this.cache.delete(hash) ? [
|
|
107
|
+
hash,
|
|
108
|
+
payload
|
|
109
|
+
] : void 0;
|
|
110
|
+
})));
|
|
111
|
+
return deletedPairs.map(([hash]) => hash);
|
|
112
|
+
}
|
|
113
|
+
getHandler(hashes) {
|
|
114
|
+
return (0, import_lodash.compact)(hashes.map((hash) => this.cache.get(hash)));
|
|
115
|
+
}
|
|
116
|
+
async insertHandler(payloads) {
|
|
117
|
+
const insertedPayloads = await Promise.all(payloads.map((payload) => {
|
|
118
|
+
return this.insertPayloadIntoCache(payload);
|
|
119
|
+
}));
|
|
120
|
+
return insertedPayloads;
|
|
121
|
+
}
|
|
122
|
+
async insertPayloadIntoCache(payload) {
|
|
123
|
+
const wrapper = import_payload_wrapper.PayloadWrapper.wrap(payload);
|
|
124
|
+
const payloadWithMeta = {
|
|
125
|
+
...import_hash.PayloadHasher.hashFields(payload),
|
|
126
|
+
_hash: await wrapper.hashAsync(),
|
|
127
|
+
_timestamp: Date.now()
|
|
128
|
+
};
|
|
129
|
+
this.cache.set(payloadWithMeta._hash, payloadWithMeta);
|
|
130
|
+
return payload;
|
|
131
|
+
}
|
|
132
|
+
};
|
|
133
|
+
MemoryArchivist = _ts_decorate([
|
|
134
|
+
(0, import_module_model.creatableModule)()
|
|
135
|
+
], MemoryArchivist);
|
|
136
|
+
//# sourceMappingURL=index.cjs.map
|
|
@@ -0,0 +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 { Payload } from '@xyo-network/payload-model'\nimport { PayloadWrapper } from '@xyo-network/payload-wrapper'\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 _cache?: LRUCache<string, Payload>\n\n get cache() {\n this._cache = this._cache ?? new LRUCache<string, Payload>({ 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 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: string[]): Promise<string[]> {\n const payloadPairs: [string, Payload][] = await Promise.all(\n (await this.get(hashes)).map<Promise<[string, Payload]>>(async (payload) => [await PayloadHasher.hashAsync(payload), payload]),\n )\n const deletedPairs: [string, Payload][] = compact(\n await Promise.all(\n payloadPairs.map<[string, Payload] | undefined>(([hash, payload]) => {\n return this.cache.delete(hash) ? [hash, payload] : undefined\n }),\n ),\n )\n return deletedPairs.map(([hash]) => hash)\n }\n\n protected override getHandler(hashes: string[]): Promisable<Payload[]> {\n return compact(hashes.map((hash) => this.cache.get(hash)))\n }\n\n protected override async insertHandler(payloads: Payload[]): Promise<Payload[]> {\n const insertedPayloads = await Promise.all(\n payloads.map((payload) => {\n return this.insertPayloadIntoCache(payload)\n }),\n )\n\n return insertedPayloads\n }\n\n private async insertPayloadIntoCache(payload: Payload): Promise<Payload> {\n const wrapper = PayloadWrapper.wrap(payload)\n const payloadWithMeta = { ...PayloadHasher.hashFields(payload), _hash: await wrapper.hashAsync(), _timestamp: Date.now() }\n this.cache.set(payloadWithMeta._hash, payloadWithMeta)\n return payload\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA;;;;;;;;ACAA,oBAAyB;AACzB,oBAAwB;AACxB,qBAAuD;AACvD,gCAAkC;AAClC,6BAWO;AAEP,kBAA8B;AAC9B,0BAA+E;AAE/E,6BAA+B;AAC/B,uBAAyB;;;;;;;;;;;;AAGlB,IAAMA,8BAA2D;AAUjE,IAAMC,kBAAN,cAIGC,4CAAAA;SAAAA;;;EAGR,OAAgBC,gBAAgB;IAACH;IAA6BI;;EAEtDC;EAER,IAAIC,QAAQ;AACV,SAAKD,SAAS,KAAKA,UAAU,IAAIE,0BAA0B;MAAEC,KAAK,KAAKA;IAAI,CAAA;AAC3E,WAAO,KAAKH;EACd;EAEA,IAAIG,MAAM;AACR,WAAO,KAAKC,QAAQD,OAAO;EAC7B;EAEA,IAAaE,UAAU;AACrB,WAAO;MACLC;MACAC;MACAC;MACAC;MACAC;SACG,MAAML;;EAEb;EAEmBM,aAAuC;AACxD,eAAOC,uBAAQ,KAAKX,MAAMY,KAAI,EAAGC,IAAI,CAACC,UAAUC,0BAAcC,WAAWF,MAAM,CAAA,EAAGA,KAAK,CAAA,CAAA;EACzF;EAEmBG,eAAqC;AACtD,SAAKjB,MAAMkB,MAAK;AAChB,WAAO,KAAKC,KAAK,WAAW;MAAEC,QAAQ;IAAK,CAAA;EAC7C;EAEA,MAAyBC,gBAAyC;AAChE,UAAMC,eAAWC,wBAAS,MAAM,KAAKb,WAAU,GAAI,mBAAA;AACnD,UAAMc,UAAU,MAAMC,QAAQC,eAC5Bf,uBACEgB,OAAOC,QAAQ,MAAM,KAAKC,QAAO,GAAIC,UAAU,CAAA,CAAE,GAAGjB,IAAI,OAAOkB,WAAAA;AAC7D,YAAMC,eAAqC;QACzCC,QAAQzB;MACV;AACA,YAAM0B,QAAQ,MAAM,KAAKC,UAAUH,cAAcV,QAAAA;AACjD,cAAQ,MAAMS,QAAQG,MAAMA,MAAM,CAAA,GAAIA,MAAM,CAAA,CAAE,KAAK,CAAA;IACrD,CAAA,CAAA,CAAA;AAGJ,UAAM,KAAKjB,aAAY;AACvB,eAAON,uBAAQa,QAAQY,OAAOC,wBAAAA,EAAWxB,IAAI,CAACyB,WAAWA,OAAOxB,KAAK,CAAA;EACvE;EAEA,MAAyByB,cAAcC,QAAqC;AAC1E,UAAMC,eAAoC,MAAMhB,QAAQiB,KACrD,MAAM,KAAKC,IAAIH,MAAAA,GAAS3B,IAAgC,OAAO+B,YAAY;MAAC,MAAM7B,0BAAc8B,UAAUD,OAAAA;MAAUA;KAAQ,CAAA;AAE/H,UAAME,mBAAoCnC,uBACxC,MAAMc,QAAQiB,IACZD,aAAa5B,IAAmC,CAAC,CAACkC,MAAMH,OAAAA,MAAQ;AAC9D,aAAO,KAAK5C,MAAMgD,OAAOD,IAAAA,IAAQ;QAACA;QAAMH;UAAWK;IACrD,CAAA,CAAA,CAAA;AAGJ,WAAOH,aAAajC,IAAI,CAAC,CAACkC,IAAAA,MAAUA,IAAAA;EACtC;EAEmBG,WAAWV,QAAyC;AACrE,eAAO7B,uBAAQ6B,OAAO3B,IAAI,CAACkC,SAAS,KAAK/C,MAAM2C,IAAII,IAAAA,CAAAA,CAAAA;EACrD;EAEA,MAAyBI,cAAc7B,UAAyC;AAC9E,UAAM8B,mBAAmB,MAAM3B,QAAQiB,IACrCpB,SAAST,IAAI,CAAC+B,YAAAA;AACZ,aAAO,KAAKS,uBAAuBT,OAAAA;IACrC,CAAA,CAAA;AAGF,WAAOQ;EACT;EAEA,MAAcC,uBAAuBT,SAAoC;AACvE,UAAMU,UAAUC,sCAAeC,KAAKZ,OAAAA;AACpC,UAAMa,kBAAkB;MAAE,GAAG1C,0BAAcC,WAAW4B,OAAAA;MAAUc,OAAO,MAAMJ,QAAQT,UAAS;MAAIc,YAAYC,KAAKC,IAAG;IAAG;AACzH,SAAK7D,MAAM8D,IAAIL,gBAAgBC,OAAOD,eAAAA;AACtC,WAAOb;EACT;AACF;AA3FajD,kBAAAA,aAAAA;MADZoE,qCAAAA;GACYpE,eAAAA;","names":["MemoryArchivistConfigSchema","MemoryArchivist","AbstractArchivist","configSchemas","ArchivistConfigSchema","_cache","cache","LRUCache","max","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","payloadPairs","all","get","payload","hashAsync","deletedPairs","hash","delete","undefined","getHandler","insertHandler","insertedPayloads","insertPayloadIntoCache","wrapper","PayloadWrapper","wrap","payloadWithMeta","_hash","_timestamp","Date","now","set","creatableModule"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAA"}
|
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
var __defProp = Object.defineProperty;
|
|
2
|
+
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
|
3
|
+
|
|
4
|
+
// src/MemoryArchivist.ts
|
|
5
|
+
import { assertEx } from "@xylabs/assert";
|
|
6
|
+
import { compact } from "@xylabs/lodash";
|
|
7
|
+
import { fulfilled } from "@xylabs/promise";
|
|
8
|
+
import { AbstractArchivist } from "@xyo-network/archivist-abstract";
|
|
9
|
+
import { ArchivistAllQuerySchema, ArchivistClearQuerySchema, ArchivistCommitQuerySchema, ArchivistConfigSchema, ArchivistDeleteQuerySchema, ArchivistInsertQuerySchema } from "@xyo-network/archivist-model";
|
|
10
|
+
import { PayloadHasher } from "@xyo-network/hash";
|
|
11
|
+
import { creatableModule } from "@xyo-network/module-model";
|
|
12
|
+
import { PayloadWrapper } from "@xyo-network/payload-wrapper";
|
|
13
|
+
import { LRUCache } from "lru-cache";
|
|
14
|
+
function _ts_decorate(decorators, target, key, desc) {
|
|
15
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
16
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function")
|
|
17
|
+
r = Reflect.decorate(decorators, target, key, desc);
|
|
18
|
+
else
|
|
19
|
+
for (var i = decorators.length - 1; i >= 0; i--)
|
|
20
|
+
if (d = decorators[i])
|
|
21
|
+
r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
22
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
23
|
+
}
|
|
24
|
+
__name(_ts_decorate, "_ts_decorate");
|
|
25
|
+
var MemoryArchivistConfigSchema = "network.xyo.archivist.memory.config";
|
|
26
|
+
var MemoryArchivist = class extends AbstractArchivist {
|
|
27
|
+
static {
|
|
28
|
+
__name(this, "MemoryArchivist");
|
|
29
|
+
}
|
|
30
|
+
static configSchemas = [
|
|
31
|
+
MemoryArchivistConfigSchema,
|
|
32
|
+
ArchivistConfigSchema
|
|
33
|
+
];
|
|
34
|
+
_cache;
|
|
35
|
+
get cache() {
|
|
36
|
+
this._cache = this._cache ?? new LRUCache({
|
|
37
|
+
max: this.max
|
|
38
|
+
});
|
|
39
|
+
return this._cache;
|
|
40
|
+
}
|
|
41
|
+
get max() {
|
|
42
|
+
return this.config?.max ?? 1e4;
|
|
43
|
+
}
|
|
44
|
+
get queries() {
|
|
45
|
+
return [
|
|
46
|
+
ArchivistAllQuerySchema,
|
|
47
|
+
ArchivistDeleteQuerySchema,
|
|
48
|
+
ArchivistClearQuerySchema,
|
|
49
|
+
ArchivistInsertQuerySchema,
|
|
50
|
+
ArchivistCommitQuerySchema,
|
|
51
|
+
...super.queries
|
|
52
|
+
];
|
|
53
|
+
}
|
|
54
|
+
allHandler() {
|
|
55
|
+
return compact(this.cache.dump().map((value) => PayloadHasher.hashFields(value[1].value)));
|
|
56
|
+
}
|
|
57
|
+
clearHandler() {
|
|
58
|
+
this.cache.clear();
|
|
59
|
+
return this.emit("cleared", {
|
|
60
|
+
module: this
|
|
61
|
+
});
|
|
62
|
+
}
|
|
63
|
+
async commitHandler() {
|
|
64
|
+
const payloads = assertEx(await this.allHandler(), "Nothing to commit");
|
|
65
|
+
const settled = await Promise.allSettled(compact(Object.values((await this.parents()).commit ?? [])?.map(async (parent) => {
|
|
66
|
+
const queryPayload = {
|
|
67
|
+
schema: ArchivistInsertQuerySchema
|
|
68
|
+
};
|
|
69
|
+
const query = await this.bindQuery(queryPayload, payloads);
|
|
70
|
+
return (await parent?.query(query[0], query[1]))?.[0];
|
|
71
|
+
})));
|
|
72
|
+
await this.clearHandler();
|
|
73
|
+
return compact(settled.filter(fulfilled).map((result) => result.value));
|
|
74
|
+
}
|
|
75
|
+
async deleteHandler(hashes) {
|
|
76
|
+
const payloadPairs = await Promise.all((await this.get(hashes)).map(async (payload) => [
|
|
77
|
+
await PayloadHasher.hashAsync(payload),
|
|
78
|
+
payload
|
|
79
|
+
]));
|
|
80
|
+
const deletedPairs = compact(await Promise.all(payloadPairs.map(([hash, payload]) => {
|
|
81
|
+
return this.cache.delete(hash) ? [
|
|
82
|
+
hash,
|
|
83
|
+
payload
|
|
84
|
+
] : void 0;
|
|
85
|
+
})));
|
|
86
|
+
return deletedPairs.map(([hash]) => hash);
|
|
87
|
+
}
|
|
88
|
+
getHandler(hashes) {
|
|
89
|
+
return compact(hashes.map((hash) => this.cache.get(hash)));
|
|
90
|
+
}
|
|
91
|
+
async insertHandler(payloads) {
|
|
92
|
+
const insertedPayloads = await Promise.all(payloads.map((payload) => {
|
|
93
|
+
return this.insertPayloadIntoCache(payload);
|
|
94
|
+
}));
|
|
95
|
+
return insertedPayloads;
|
|
96
|
+
}
|
|
97
|
+
async insertPayloadIntoCache(payload) {
|
|
98
|
+
const wrapper = PayloadWrapper.wrap(payload);
|
|
99
|
+
const payloadWithMeta = {
|
|
100
|
+
...PayloadHasher.hashFields(payload),
|
|
101
|
+
_hash: await wrapper.hashAsync(),
|
|
102
|
+
_timestamp: Date.now()
|
|
103
|
+
};
|
|
104
|
+
this.cache.set(payloadWithMeta._hash, payloadWithMeta);
|
|
105
|
+
return payload;
|
|
106
|
+
}
|
|
107
|
+
};
|
|
108
|
+
MemoryArchivist = _ts_decorate([
|
|
109
|
+
creatableModule()
|
|
110
|
+
], MemoryArchivist);
|
|
111
|
+
export {
|
|
112
|
+
MemoryArchivist,
|
|
113
|
+
MemoryArchivistConfigSchema
|
|
114
|
+
};
|
|
115
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +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 { Payload } from '@xyo-network/payload-model'\nimport { PayloadWrapper } from '@xyo-network/payload-wrapper'\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 _cache?: LRUCache<string, Payload>\n\n get cache() {\n this._cache = this._cache ?? new LRUCache<string, Payload>({ 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 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: string[]): Promise<string[]> {\n const payloadPairs: [string, Payload][] = await Promise.all(\n (await this.get(hashes)).map<Promise<[string, Payload]>>(async (payload) => [await PayloadHasher.hashAsync(payload), payload]),\n )\n const deletedPairs: [string, Payload][] = compact(\n await Promise.all(\n payloadPairs.map<[string, Payload] | undefined>(([hash, payload]) => {\n return this.cache.delete(hash) ? [hash, payload] : undefined\n }),\n ),\n )\n return deletedPairs.map(([hash]) => hash)\n }\n\n protected override getHandler(hashes: string[]): Promisable<Payload[]> {\n return compact(hashes.map((hash) => this.cache.get(hash)))\n }\n\n protected override async insertHandler(payloads: Payload[]): Promise<Payload[]> {\n const insertedPayloads = await Promise.all(\n payloads.map((payload) => {\n return this.insertPayloadIntoCache(payload)\n }),\n )\n\n return insertedPayloads\n }\n\n private async insertPayloadIntoCache(payload: Payload): Promise<Payload> {\n const wrapper = PayloadWrapper.wrap(payload)\n const payloadWithMeta = { ...PayloadHasher.hashFields(payload), _hash: await wrapper.hashAsync(), _timestamp: Date.now() }\n this.cache.set(payloadWithMeta._hash, payloadWithMeta)\n return payload\n }\n}\n"],"mappings":"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","names":["assertEx","compact","fulfilled","AbstractArchivist","ArchivistAllQuerySchema","ArchivistClearQuerySchema","ArchivistCommitQuerySchema","ArchivistConfigSchema","ArchivistDeleteQuerySchema","ArchivistInsertQuerySchema","PayloadHasher","creatableModule","PayloadWrapper","LRUCache","MemoryArchivistConfigSchema","MemoryArchivist","AbstractArchivist","configSchemas","ArchivistConfigSchema","_cache","cache","LRUCache","max","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","payloadPairs","all","get","payload","hashAsync","deletedPairs","hash","delete","undefined","getHandler","insertHandler","insertedPayloads","insertPayloadIntoCache","wrapper","PayloadWrapper","wrap","payloadWithMeta","_hash","_timestamp","Date","now","set","creatableModule"]}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { Promisable, PromisableArray } from '@xylabs/promise';
|
|
2
|
+
import { AbstractArchivist } from '@xyo-network/archivist-abstract';
|
|
3
|
+
import { ArchivistConfig, ArchivistModuleEventData, ArchivistParams } from '@xyo-network/archivist-model';
|
|
4
|
+
import { BoundWitness } from '@xyo-network/boundwitness-model';
|
|
5
|
+
import { AnyConfigSchema } from '@xyo-network/module-model';
|
|
6
|
+
import { Payload } from '@xyo-network/payload-model';
|
|
7
|
+
export type CookieArchivistConfigSchema = 'network.xyo.archivist.cookie.config';
|
|
8
|
+
export declare const CookieArchivistConfigSchema: CookieArchivistConfigSchema;
|
|
9
|
+
export type CookieArchivistConfig = ArchivistConfig<{
|
|
10
|
+
domain?: string;
|
|
11
|
+
maxEntries?: number;
|
|
12
|
+
maxEntrySize?: number;
|
|
13
|
+
namespace?: string;
|
|
14
|
+
schema: CookieArchivistConfigSchema;
|
|
15
|
+
}>;
|
|
16
|
+
export type CookieArchivistParams = ArchivistParams<AnyConfigSchema<CookieArchivistConfig>>;
|
|
17
|
+
export declare class CookieArchivist<TParams extends CookieArchivistParams, TEventData extends ArchivistModuleEventData = ArchivistModuleEventData> extends AbstractArchivist<TParams, TEventData> {
|
|
18
|
+
static configSchemas: "network.xyo.archivist.cookie.config"[];
|
|
19
|
+
get domain(): string | undefined;
|
|
20
|
+
get maxEntries(): number;
|
|
21
|
+
get maxEntrySize(): number;
|
|
22
|
+
get namespace(): string;
|
|
23
|
+
get queries(): string[];
|
|
24
|
+
protected allHandler(): PromisableArray<Payload>;
|
|
25
|
+
protected clearHandler(): void | Promise<void>;
|
|
26
|
+
protected commitHandler(): Promise<BoundWitness[]>;
|
|
27
|
+
protected deleteHandler(hashes: string[]): Promise<string[]>;
|
|
28
|
+
protected getHandler(hashes: string[]): Promisable<Payload[]>;
|
|
29
|
+
protected insertHandler(payloads: Payload[]): Promise<Payload[]>;
|
|
30
|
+
private keyFromHash;
|
|
31
|
+
}
|
|
32
|
+
//# sourceMappingURL=CookieArchivist.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CookieArchivist.d.ts","sourceRoot":"","sources":["../../src/CookieArchivist.ts"],"names":[],"mappings":"AAEA,OAAO,EAAa,UAAU,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAA;AACxE,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAA;AACnE,OAAO,EAIL,eAAe,EAIf,wBAAwB,EACxB,eAAe,EAChB,MAAM,8BAA8B,CAAA;AACrC,OAAO,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAA;AAE9D,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAA;AAC3D,OAAO,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAA;AAIpD,MAAM,MAAM,2BAA2B,GAAG,qCAAqC,CAAA;AAC/E,eAAO,MAAM,2BAA2B,EAAE,2BAAmE,CAAA;AAE7G,MAAM,MAAM,qBAAqB,GAAG,eAAe,CAAC;IAClD,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,MAAM,EAAE,2BAA2B,CAAA;CACpC,CAAC,CAAA;AAEF,MAAM,MAAM,qBAAqB,GAAG,eAAe,CAAC,eAAe,CAAC,qBAAqB,CAAC,CAAC,CAAA;AAE3F,qBAAa,eAAe,CAC1B,OAAO,SAAS,qBAAqB,EACrC,UAAU,SAAS,wBAAwB,GAAG,wBAAwB,CACtE,SAAQ,iBAAiB,CAAC,OAAO,EAAE,UAAU,CAAC;IAC9C,OAAgB,aAAa,0CAAgC;IAE7D,IAAI,MAAM,uBAET;IAED,IAAI,UAAU,WAGb;IAED,IAAI,YAAY,WAGf;IAED,IAAI,SAAS,WAEZ;IAED,IAAa,OAAO,IAAI,MAAM,EAAE,CAS/B;cAEkB,UAAU,IAAI,eAAe,CAAC,OAAO,CAAC;cAWtC,YAAY,IAAI,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;cAa9B,aAAa,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC;cAuBxC,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;cAexD,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,UAAU,CAAC,OAAO,EAAE,CAAC;cAS7C,aAAa,CAAC,QAAQ,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;IAmB/E,OAAO,CAAC,WAAW;CAGpB"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { Promisable, PromisableArray } from '@xylabs/promise';
|
|
2
|
+
import { AbstractArchivist } from '@xyo-network/archivist-abstract';
|
|
3
|
+
import { ArchivistConfig, ArchivistModuleEventData, ArchivistParams } from '@xyo-network/archivist-model';
|
|
4
|
+
import { BoundWitness } from '@xyo-network/boundwitness-model';
|
|
5
|
+
import { AnyConfigSchema } from '@xyo-network/module-model';
|
|
6
|
+
import { Payload } from '@xyo-network/payload-model';
|
|
7
|
+
export type CookieArchivistConfigSchema = 'network.xyo.archivist.cookie.config';
|
|
8
|
+
export declare const CookieArchivistConfigSchema: CookieArchivistConfigSchema;
|
|
9
|
+
export type CookieArchivistConfig = ArchivistConfig<{
|
|
10
|
+
domain?: string;
|
|
11
|
+
maxEntries?: number;
|
|
12
|
+
maxEntrySize?: number;
|
|
13
|
+
namespace?: string;
|
|
14
|
+
schema: CookieArchivistConfigSchema;
|
|
15
|
+
}>;
|
|
16
|
+
export type CookieArchivistParams = ArchivistParams<AnyConfigSchema<CookieArchivistConfig>>;
|
|
17
|
+
export declare class CookieArchivist<TParams extends CookieArchivistParams, TEventData extends ArchivistModuleEventData = ArchivistModuleEventData> extends AbstractArchivist<TParams, TEventData> {
|
|
18
|
+
static configSchemas: "network.xyo.archivist.cookie.config"[];
|
|
19
|
+
get domain(): string | undefined;
|
|
20
|
+
get maxEntries(): number;
|
|
21
|
+
get maxEntrySize(): number;
|
|
22
|
+
get namespace(): string;
|
|
23
|
+
get queries(): string[];
|
|
24
|
+
protected allHandler(): PromisableArray<Payload>;
|
|
25
|
+
protected clearHandler(): void | Promise<void>;
|
|
26
|
+
protected commitHandler(): Promise<BoundWitness[]>;
|
|
27
|
+
protected deleteHandler(hashes: string[]): Promise<string[]>;
|
|
28
|
+
protected getHandler(hashes: string[]): Promisable<Payload[]>;
|
|
29
|
+
protected insertHandler(payloads: Payload[]): Promise<Payload[]>;
|
|
30
|
+
private keyFromHash;
|
|
31
|
+
}
|
|
32
|
+
//# sourceMappingURL=CookieArchivist.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CookieArchivist.d.ts","sourceRoot":"","sources":["../../src/CookieArchivist.ts"],"names":[],"mappings":"AAEA,OAAO,EAAa,UAAU,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAA;AACxE,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAA;AACnE,OAAO,EAIL,eAAe,EAIf,wBAAwB,EACxB,eAAe,EAChB,MAAM,8BAA8B,CAAA;AACrC,OAAO,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAA;AAE9D,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAA;AAC3D,OAAO,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAA;AAIpD,MAAM,MAAM,2BAA2B,GAAG,qCAAqC,CAAA;AAC/E,eAAO,MAAM,2BAA2B,EAAE,2BAAmE,CAAA;AAE7G,MAAM,MAAM,qBAAqB,GAAG,eAAe,CAAC;IAClD,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,MAAM,EAAE,2BAA2B,CAAA;CACpC,CAAC,CAAA;AAEF,MAAM,MAAM,qBAAqB,GAAG,eAAe,CAAC,eAAe,CAAC,qBAAqB,CAAC,CAAC,CAAA;AAE3F,qBAAa,eAAe,CAC1B,OAAO,SAAS,qBAAqB,EACrC,UAAU,SAAS,wBAAwB,GAAG,wBAAwB,CACtE,SAAQ,iBAAiB,CAAC,OAAO,EAAE,UAAU,CAAC;IAC9C,OAAgB,aAAa,0CAAgC;IAE7D,IAAI,MAAM,uBAET;IAED,IAAI,UAAU,WAGb;IAED,IAAI,YAAY,WAGf;IAED,IAAI,SAAS,WAEZ;IAED,IAAa,OAAO,IAAI,MAAM,EAAE,CAS/B;cAEkB,UAAU,IAAI,eAAe,CAAC,OAAO,CAAC;cAWtC,YAAY,IAAI,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;cAa9B,aAAa,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC;cAuBxC,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;cAexD,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,UAAU,CAAC,OAAO,EAAE,CAAC;cAS7C,aAAa,CAAC,QAAQ,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;IAmB/E,OAAO,CAAC,WAAW;CAGpB"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { Promisable, PromisableArray } from '@xylabs/promise';
|
|
2
|
+
import { AbstractArchivist } from '@xyo-network/archivist-abstract';
|
|
3
|
+
import { ArchivistConfig, ArchivistModuleEventData, ArchivistParams } from '@xyo-network/archivist-model';
|
|
4
|
+
import { BoundWitness } from '@xyo-network/boundwitness-model';
|
|
5
|
+
import { AnyConfigSchema } from '@xyo-network/module-model';
|
|
6
|
+
import { Payload } from '@xyo-network/payload-model';
|
|
7
|
+
export type CookieArchivistConfigSchema = 'network.xyo.archivist.cookie.config';
|
|
8
|
+
export declare const CookieArchivistConfigSchema: CookieArchivistConfigSchema;
|
|
9
|
+
export type CookieArchivistConfig = ArchivistConfig<{
|
|
10
|
+
domain?: string;
|
|
11
|
+
maxEntries?: number;
|
|
12
|
+
maxEntrySize?: number;
|
|
13
|
+
namespace?: string;
|
|
14
|
+
schema: CookieArchivistConfigSchema;
|
|
15
|
+
}>;
|
|
16
|
+
export type CookieArchivistParams = ArchivistParams<AnyConfigSchema<CookieArchivistConfig>>;
|
|
17
|
+
export declare class CookieArchivist<TParams extends CookieArchivistParams, TEventData extends ArchivistModuleEventData = ArchivistModuleEventData> extends AbstractArchivist<TParams, TEventData> {
|
|
18
|
+
static configSchemas: "network.xyo.archivist.cookie.config"[];
|
|
19
|
+
get domain(): string | undefined;
|
|
20
|
+
get maxEntries(): number;
|
|
21
|
+
get maxEntrySize(): number;
|
|
22
|
+
get namespace(): string;
|
|
23
|
+
get queries(): string[];
|
|
24
|
+
protected allHandler(): PromisableArray<Payload>;
|
|
25
|
+
protected clearHandler(): void | Promise<void>;
|
|
26
|
+
protected commitHandler(): Promise<BoundWitness[]>;
|
|
27
|
+
protected deleteHandler(hashes: string[]): Promise<string[]>;
|
|
28
|
+
protected getHandler(hashes: string[]): Promisable<Payload[]>;
|
|
29
|
+
protected insertHandler(payloads: Payload[]): Promise<Payload[]>;
|
|
30
|
+
private keyFromHash;
|
|
31
|
+
}
|
|
32
|
+
//# sourceMappingURL=CookieArchivist.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CookieArchivist.d.ts","sourceRoot":"","sources":["../../src/CookieArchivist.ts"],"names":[],"mappings":"AAEA,OAAO,EAAa,UAAU,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAA;AACxE,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAA;AACnE,OAAO,EAIL,eAAe,EAIf,wBAAwB,EACxB,eAAe,EAChB,MAAM,8BAA8B,CAAA;AACrC,OAAO,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAA;AAE9D,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAA;AAC3D,OAAO,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAA;AAIpD,MAAM,MAAM,2BAA2B,GAAG,qCAAqC,CAAA;AAC/E,eAAO,MAAM,2BAA2B,EAAE,2BAAmE,CAAA;AAE7G,MAAM,MAAM,qBAAqB,GAAG,eAAe,CAAC;IAClD,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,MAAM,EAAE,2BAA2B,CAAA;CACpC,CAAC,CAAA;AAEF,MAAM,MAAM,qBAAqB,GAAG,eAAe,CAAC,eAAe,CAAC,qBAAqB,CAAC,CAAC,CAAA;AAE3F,qBAAa,eAAe,CAC1B,OAAO,SAAS,qBAAqB,EACrC,UAAU,SAAS,wBAAwB,GAAG,wBAAwB,CACtE,SAAQ,iBAAiB,CAAC,OAAO,EAAE,UAAU,CAAC;IAC9C,OAAgB,aAAa,0CAAgC;IAE7D,IAAI,MAAM,uBAET;IAED,IAAI,UAAU,WAGb;IAED,IAAI,YAAY,WAGf;IAED,IAAI,SAAS,WAEZ;IAED,IAAa,OAAO,IAAI,MAAM,EAAE,CAS/B;cAEkB,UAAU,IAAI,eAAe,CAAC,OAAO,CAAC;cAWtC,YAAY,IAAI,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;cAa9B,aAAa,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC;cAuBxC,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;cAexD,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,UAAU,CAAC,OAAO,EAAE,CAAC;cAS7C,aAAa,CAAC,QAAQ,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;IAmB/E,OAAO,CAAC,WAAW;CAGpB"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { Promisable, PromisableArray } from '@xylabs/promise';
|
|
2
|
+
import { AbstractArchivist } from '@xyo-network/archivist-abstract';
|
|
3
|
+
import { ArchivistConfig, ArchivistInstance, ArchivistModuleEventData } from '@xyo-network/archivist-model';
|
|
4
|
+
import { BoundWitness } from '@xyo-network/boundwitness-model';
|
|
5
|
+
import { AnyConfigSchema, ModuleInstance, ModuleParams } from '@xyo-network/module-model';
|
|
6
|
+
import { Payload } from '@xyo-network/payload-model';
|
|
7
|
+
import { LRUCache } from 'lru-cache';
|
|
8
|
+
export type MemoryArchivistConfigSchema = 'network.xyo.archivist.memory.config';
|
|
9
|
+
export declare const MemoryArchivistConfigSchema: MemoryArchivistConfigSchema;
|
|
10
|
+
export type MemoryArchivistConfig = ArchivistConfig<{
|
|
11
|
+
max?: number;
|
|
12
|
+
schema: MemoryArchivistConfigSchema | ArchivistConfig['schema'];
|
|
13
|
+
}>;
|
|
14
|
+
export type MemoryArchivistParams<TConfig extends AnyConfigSchema<MemoryArchivistConfig> = AnyConfigSchema<MemoryArchivistConfig>> = ModuleParams<TConfig>;
|
|
15
|
+
export declare class MemoryArchivist<TParams extends MemoryArchivistParams<AnyConfigSchema<MemoryArchivistConfig>> = MemoryArchivistParams, TEventData extends ArchivistModuleEventData = ArchivistModuleEventData> extends AbstractArchivist<TParams, TEventData> implements ArchivistInstance, ModuleInstance {
|
|
16
|
+
static configSchemas: string[];
|
|
17
|
+
private _cache?;
|
|
18
|
+
get cache(): LRUCache<string, {
|
|
19
|
+
schema: string;
|
|
20
|
+
} & object, unknown>;
|
|
21
|
+
get max(): number;
|
|
22
|
+
get queries(): string[];
|
|
23
|
+
protected allHandler(): PromisableArray<Payload>;
|
|
24
|
+
protected clearHandler(): void | Promise<void>;
|
|
25
|
+
protected commitHandler(): Promise<BoundWitness[]>;
|
|
26
|
+
protected deleteHandler(hashes: string[]): Promise<string[]>;
|
|
27
|
+
protected getHandler(hashes: string[]): Promisable<Payload[]>;
|
|
28
|
+
protected insertHandler(payloads: Payload[]): Promise<Payload[]>;
|
|
29
|
+
private insertPayloadIntoCache;
|
|
30
|
+
}
|
|
31
|
+
//# sourceMappingURL=MemoryArchivist.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MemoryArchivist.d.ts","sourceRoot":"","sources":["../../src/MemoryArchivist.ts"],"names":[],"mappings":"AAEA,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;AAC1G,OAAO,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAA;AAEpD,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,MAAM,CAAC,CAA2B;IAE1C,IAAI,KAAK;;yBAGR;IAED,IAAI,GAAG,WAEN;IAED,IAAa,OAAO,aASnB;cAEkB,UAAU,IAAI,eAAe,CAAC,OAAO,CAAC;cAItC,YAAY,IAAI,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;cAK9B,aAAa,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC;cAiBxC,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;cAcxD,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,UAAU,CAAC,OAAO,EAAE,CAAC;cAI7C,aAAa,CAAC,QAAQ,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;YAUjE,sBAAsB;CAMrC"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { Promisable, PromisableArray } from '@xylabs/promise';
|
|
2
|
+
import { AbstractArchivist } from '@xyo-network/archivist-abstract';
|
|
3
|
+
import { ArchivistConfig, ArchivistInstance, ArchivistModuleEventData } from '@xyo-network/archivist-model';
|
|
4
|
+
import { BoundWitness } from '@xyo-network/boundwitness-model';
|
|
5
|
+
import { AnyConfigSchema, ModuleInstance, ModuleParams } from '@xyo-network/module-model';
|
|
6
|
+
import { Payload } from '@xyo-network/payload-model';
|
|
7
|
+
import { LRUCache } from 'lru-cache';
|
|
8
|
+
export type MemoryArchivistConfigSchema = 'network.xyo.archivist.memory.config';
|
|
9
|
+
export declare const MemoryArchivistConfigSchema: MemoryArchivistConfigSchema;
|
|
10
|
+
export type MemoryArchivistConfig = ArchivistConfig<{
|
|
11
|
+
max?: number;
|
|
12
|
+
schema: MemoryArchivistConfigSchema | ArchivistConfig['schema'];
|
|
13
|
+
}>;
|
|
14
|
+
export type MemoryArchivistParams<TConfig extends AnyConfigSchema<MemoryArchivistConfig> = AnyConfigSchema<MemoryArchivistConfig>> = ModuleParams<TConfig>;
|
|
15
|
+
export declare class MemoryArchivist<TParams extends MemoryArchivistParams<AnyConfigSchema<MemoryArchivistConfig>> = MemoryArchivistParams, TEventData extends ArchivistModuleEventData = ArchivistModuleEventData> extends AbstractArchivist<TParams, TEventData> implements ArchivistInstance, ModuleInstance {
|
|
16
|
+
static configSchemas: string[];
|
|
17
|
+
private _cache?;
|
|
18
|
+
get cache(): LRUCache<string, {
|
|
19
|
+
schema: string;
|
|
20
|
+
} & object, unknown>;
|
|
21
|
+
get max(): number;
|
|
22
|
+
get queries(): string[];
|
|
23
|
+
protected allHandler(): PromisableArray<Payload>;
|
|
24
|
+
protected clearHandler(): void | Promise<void>;
|
|
25
|
+
protected commitHandler(): Promise<BoundWitness[]>;
|
|
26
|
+
protected deleteHandler(hashes: string[]): Promise<string[]>;
|
|
27
|
+
protected getHandler(hashes: string[]): Promisable<Payload[]>;
|
|
28
|
+
protected insertHandler(payloads: Payload[]): Promise<Payload[]>;
|
|
29
|
+
private insertPayloadIntoCache;
|
|
30
|
+
}
|
|
31
|
+
//# sourceMappingURL=MemoryArchivist.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MemoryArchivist.d.ts","sourceRoot":"","sources":["../../src/MemoryArchivist.ts"],"names":[],"mappings":"AAEA,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;AAC1G,OAAO,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAA;AAEpD,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,MAAM,CAAC,CAA2B;IAE1C,IAAI,KAAK;;yBAGR;IAED,IAAI,GAAG,WAEN;IAED,IAAa,OAAO,aASnB;cAEkB,UAAU,IAAI,eAAe,CAAC,OAAO,CAAC;cAItC,YAAY,IAAI,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;cAK9B,aAAa,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC;cAiBxC,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;cAcxD,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,UAAU,CAAC,OAAO,EAAE,CAAC;cAI7C,aAAa,CAAC,QAAQ,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;YAUjE,sBAAsB;CAMrC"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { Promisable, PromisableArray } from '@xylabs/promise';
|
|
2
|
+
import { AbstractArchivist } from '@xyo-network/archivist-abstract';
|
|
3
|
+
import { ArchivistConfig, ArchivistInstance, ArchivistModuleEventData } from '@xyo-network/archivist-model';
|
|
4
|
+
import { BoundWitness } from '@xyo-network/boundwitness-model';
|
|
5
|
+
import { AnyConfigSchema, ModuleInstance, ModuleParams } from '@xyo-network/module-model';
|
|
6
|
+
import { Payload } from '@xyo-network/payload-model';
|
|
7
|
+
import { LRUCache } from 'lru-cache';
|
|
8
|
+
export type MemoryArchivistConfigSchema = 'network.xyo.archivist.memory.config';
|
|
9
|
+
export declare const MemoryArchivistConfigSchema: MemoryArchivistConfigSchema;
|
|
10
|
+
export type MemoryArchivistConfig = ArchivistConfig<{
|
|
11
|
+
max?: number;
|
|
12
|
+
schema: MemoryArchivistConfigSchema | ArchivistConfig['schema'];
|
|
13
|
+
}>;
|
|
14
|
+
export type MemoryArchivistParams<TConfig extends AnyConfigSchema<MemoryArchivistConfig> = AnyConfigSchema<MemoryArchivistConfig>> = ModuleParams<TConfig>;
|
|
15
|
+
export declare class MemoryArchivist<TParams extends MemoryArchivistParams<AnyConfigSchema<MemoryArchivistConfig>> = MemoryArchivistParams, TEventData extends ArchivistModuleEventData = ArchivistModuleEventData> extends AbstractArchivist<TParams, TEventData> implements ArchivistInstance, ModuleInstance {
|
|
16
|
+
static configSchemas: string[];
|
|
17
|
+
private _cache?;
|
|
18
|
+
get cache(): LRUCache<string, {
|
|
19
|
+
schema: string;
|
|
20
|
+
} & object, unknown>;
|
|
21
|
+
get max(): number;
|
|
22
|
+
get queries(): string[];
|
|
23
|
+
protected allHandler(): PromisableArray<Payload>;
|
|
24
|
+
protected clearHandler(): void | Promise<void>;
|
|
25
|
+
protected commitHandler(): Promise<BoundWitness[]>;
|
|
26
|
+
protected deleteHandler(hashes: string[]): Promise<string[]>;
|
|
27
|
+
protected getHandler(hashes: string[]): Promisable<Payload[]>;
|
|
28
|
+
protected insertHandler(payloads: Payload[]): Promise<Payload[]>;
|
|
29
|
+
private insertPayloadIntoCache;
|
|
30
|
+
}
|
|
31
|
+
//# sourceMappingURL=MemoryArchivist.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MemoryArchivist.d.ts","sourceRoot":"","sources":["../../src/MemoryArchivist.ts"],"names":[],"mappings":"AAEA,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;AAC1G,OAAO,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAA;AAEpD,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,MAAM,CAAC,CAA2B;IAE1C,IAAI,KAAK;;yBAGR;IAED,IAAI,GAAG,WAEN;IAED,IAAa,OAAO,aASnB;cAEkB,UAAU,IAAI,eAAe,CAAC,OAAO,CAAC;cAItC,YAAY,IAAI,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;cAK9B,aAAa,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC;cAiBxC,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;cAcxD,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,UAAU,CAAC,OAAO,EAAE,CAAC;cAI7C,aAAa,CAAC,QAAQ,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;YAUjE,sBAAsB;CAMrC"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { Promisable, PromisableArray } from '@xylabs/promise';
|
|
2
|
+
import { AbstractArchivist } from '@xyo-network/archivist-abstract';
|
|
3
|
+
import { ArchivistConfig, ArchivistInstance, ArchivistModuleEventData, ArchivistParams } from '@xyo-network/archivist-model';
|
|
4
|
+
import { BoundWitness } from '@xyo-network/boundwitness-model';
|
|
5
|
+
import { AnyConfigSchema } from '@xyo-network/module-model';
|
|
6
|
+
import { Payload } from '@xyo-network/payload-model';
|
|
7
|
+
export type StorageArchivistConfigSchema = 'network.xyo.archivist.storage.config';
|
|
8
|
+
export declare const StorageArchivistConfigSchema: StorageArchivistConfigSchema;
|
|
9
|
+
export type StorageArchivistConfig = ArchivistConfig<{
|
|
10
|
+
maxEntries?: number;
|
|
11
|
+
maxEntrySize?: number;
|
|
12
|
+
namespace?: string;
|
|
13
|
+
persistAccount?: boolean;
|
|
14
|
+
schema: StorageArchivistConfigSchema;
|
|
15
|
+
type?: 'local' | 'session' | 'page';
|
|
16
|
+
}>;
|
|
17
|
+
export type StorageArchivistParams = ArchivistParams<AnyConfigSchema<StorageArchivistConfig>>;
|
|
18
|
+
export declare class StorageArchivist<TParams extends StorageArchivistParams = StorageArchivistParams, TEventData extends ArchivistModuleEventData = ArchivistModuleEventData> extends AbstractArchivist<TParams, TEventData> implements ArchivistInstance {
|
|
19
|
+
static configSchemas: "network.xyo.archivist.storage.config"[];
|
|
20
|
+
private _privateStorage;
|
|
21
|
+
private _storage;
|
|
22
|
+
get maxEntries(): number;
|
|
23
|
+
get maxEntrySize(): number;
|
|
24
|
+
get namespace(): string;
|
|
25
|
+
get persistAccount(): boolean;
|
|
26
|
+
get queries(): string[];
|
|
27
|
+
get type(): "local" | "session" | "page";
|
|
28
|
+
private get privateStorage();
|
|
29
|
+
private get storage();
|
|
30
|
+
protected allHandler(): PromisableArray<Payload>;
|
|
31
|
+
protected clearHandler(): void | Promise<void>;
|
|
32
|
+
protected commitHandler(): Promise<BoundWitness[]>;
|
|
33
|
+
protected deleteHandler(hashes: string[]): Promise<string[]>;
|
|
34
|
+
protected getHandler(hashes: string[]): Promisable<Payload[]>;
|
|
35
|
+
protected insertHandler(payloads: Payload[]): Promise<Payload[]>;
|
|
36
|
+
protected saveAccount(): void;
|
|
37
|
+
protected startHandler(): Promise<boolean>;
|
|
38
|
+
}
|
|
39
|
+
//# sourceMappingURL=StorageArchivist.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"StorageArchivist.d.ts","sourceRoot":"","sources":["../../src/StorageArchivist.ts"],"names":[],"mappings":"AAEA,OAAO,EAAa,UAAU,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAA;AACxE,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAA;AACnE,OAAO,EAIL,eAAe,EAIf,iBAAiB,EACjB,wBAAwB,EACxB,eAAe,EAChB,MAAM,8BAA8B,CAAA;AACrC,OAAO,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAA;AAE9D,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAA;AAC3D,OAAO,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAA;AAIpD,MAAM,MAAM,4BAA4B,GAAG,sCAAsC,CAAA;AACjF,eAAO,MAAM,4BAA4B,EAAE,4BAAqE,CAAA;AAEhH,MAAM,MAAM,sBAAsB,GAAG,eAAe,CAAC;IACnD,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,MAAM,EAAE,4BAA4B,CAAA;IACpC,IAAI,CAAC,EAAE,OAAO,GAAG,SAAS,GAAG,MAAM,CAAA;CACpC,CAAC,CAAA;AAEF,MAAM,MAAM,sBAAsB,GAAG,eAAe,CAAC,eAAe,CAAC,sBAAsB,CAAC,CAAC,CAAA;AAC7F,qBAAa,gBAAgB,CACzB,OAAO,SAAS,sBAAsB,GAAG,sBAAsB,EAC/D,UAAU,SAAS,wBAAwB,GAAG,wBAAwB,CAExE,SAAQ,iBAAiB,CAAC,OAAO,EAAE,UAAU,CAC7C,YAAW,iBAAiB;IAE5B,OAAgB,aAAa,2CAAiC;IAE9D,OAAO,CAAC,eAAe,CAAuB;IAC9C,OAAO,CAAC,QAAQ,CAAuB;IAEvC,IAAI,UAAU,WAEb;IAED,IAAI,YAAY,WAEf;IAED,IAAI,SAAS,WAEZ;IAED,IAAI,cAAc,YAEjB;IAED,IAAa,OAAO,IAAI,MAAM,EAAE,CAS/B;IAED,IAAI,IAAI,iCAEP;IAGD,OAAO,KAAK,cAAc,GAGzB;IAGD,OAAO,KAAK,OAAO,GAGlB;cAoBkB,UAAU,IAAI,eAAe,CAAC,OAAO,CAAC;cAKtC,YAAY,IAAI,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;cAM9B,aAAa,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC;cAoBxC,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;cAexD,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,UAAU,CAAC,OAAO,EAAE,CAAC;cAQ7C,aAAa,CAAC,QAAQ,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;IAc/E,SAAS,CAAC,WAAW;cAQI,YAAY;CAKtC"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { Promisable, PromisableArray } from '@xylabs/promise';
|
|
2
|
+
import { AbstractArchivist } from '@xyo-network/archivist-abstract';
|
|
3
|
+
import { ArchivistConfig, ArchivistInstance, ArchivistModuleEventData, ArchivistParams } from '@xyo-network/archivist-model';
|
|
4
|
+
import { BoundWitness } from '@xyo-network/boundwitness-model';
|
|
5
|
+
import { AnyConfigSchema } from '@xyo-network/module-model';
|
|
6
|
+
import { Payload } from '@xyo-network/payload-model';
|
|
7
|
+
export type StorageArchivistConfigSchema = 'network.xyo.archivist.storage.config';
|
|
8
|
+
export declare const StorageArchivistConfigSchema: StorageArchivistConfigSchema;
|
|
9
|
+
export type StorageArchivistConfig = ArchivistConfig<{
|
|
10
|
+
maxEntries?: number;
|
|
11
|
+
maxEntrySize?: number;
|
|
12
|
+
namespace?: string;
|
|
13
|
+
persistAccount?: boolean;
|
|
14
|
+
schema: StorageArchivistConfigSchema;
|
|
15
|
+
type?: 'local' | 'session' | 'page';
|
|
16
|
+
}>;
|
|
17
|
+
export type StorageArchivistParams = ArchivistParams<AnyConfigSchema<StorageArchivistConfig>>;
|
|
18
|
+
export declare class StorageArchivist<TParams extends StorageArchivistParams = StorageArchivistParams, TEventData extends ArchivistModuleEventData = ArchivistModuleEventData> extends AbstractArchivist<TParams, TEventData> implements ArchivistInstance {
|
|
19
|
+
static configSchemas: "network.xyo.archivist.storage.config"[];
|
|
20
|
+
private _privateStorage;
|
|
21
|
+
private _storage;
|
|
22
|
+
get maxEntries(): number;
|
|
23
|
+
get maxEntrySize(): number;
|
|
24
|
+
get namespace(): string;
|
|
25
|
+
get persistAccount(): boolean;
|
|
26
|
+
get queries(): string[];
|
|
27
|
+
get type(): "local" | "session" | "page";
|
|
28
|
+
private get privateStorage();
|
|
29
|
+
private get storage();
|
|
30
|
+
protected allHandler(): PromisableArray<Payload>;
|
|
31
|
+
protected clearHandler(): void | Promise<void>;
|
|
32
|
+
protected commitHandler(): Promise<BoundWitness[]>;
|
|
33
|
+
protected deleteHandler(hashes: string[]): Promise<string[]>;
|
|
34
|
+
protected getHandler(hashes: string[]): Promisable<Payload[]>;
|
|
35
|
+
protected insertHandler(payloads: Payload[]): Promise<Payload[]>;
|
|
36
|
+
protected saveAccount(): void;
|
|
37
|
+
protected startHandler(): Promise<boolean>;
|
|
38
|
+
}
|
|
39
|
+
//# sourceMappingURL=StorageArchivist.d.ts.map
|