@langchain/langgraph-checkpoint 1.0.0 → 1.0.1
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/base.cjs +4 -5
- package/dist/base.cjs.map +1 -1
- package/dist/base.d.cts +0 -1
- package/dist/base.d.cts.map +1 -1
- package/dist/base.d.ts +0 -1
- package/dist/base.d.ts.map +1 -1
- package/dist/base.js +1 -2
- package/dist/base.js.map +1 -1
- package/dist/cache/base.cjs +2 -3
- package/dist/cache/base.cjs.map +1 -1
- package/dist/cache/base.d.cts.map +1 -1
- package/dist/cache/base.d.ts.map +1 -1
- package/dist/cache/base.js +1 -2
- package/dist/cache/base.js.map +1 -1
- package/dist/cache/index.cjs +2 -2
- package/dist/cache/index.js +3 -4
- package/dist/cache/memory.cjs +7 -10
- package/dist/cache/memory.cjs.map +1 -1
- package/dist/cache/memory.d.cts.map +1 -1
- package/dist/cache/memory.d.ts.map +1 -1
- package/dist/cache/memory.js +6 -9
- package/dist/cache/memory.js.map +1 -1
- package/dist/id.cjs +2 -4
- package/dist/id.cjs.map +1 -1
- package/dist/id.d.cts +0 -4
- package/dist/id.d.cts.map +1 -1
- package/dist/id.d.ts +0 -4
- package/dist/id.d.ts.map +1 -1
- package/dist/id.js +1 -2
- package/dist/id.js.map +1 -1
- package/dist/index.cjs +12 -12
- package/dist/index.js +1 -2
- package/dist/memory.cjs +5 -8
- package/dist/memory.cjs.map +1 -1
- package/dist/memory.d.cts +0 -1
- package/dist/memory.d.cts.map +1 -1
- package/dist/memory.d.ts +0 -1
- package/dist/memory.d.ts.map +1 -1
- package/dist/memory.js +3 -6
- package/dist/memory.js.map +1 -1
- package/dist/serde/base.d.cts +0 -2
- package/dist/serde/base.d.cts.map +1 -1
- package/dist/serde/base.d.ts +0 -2
- package/dist/serde/base.d.ts.map +1 -1
- package/dist/serde/jsonplus.cjs +13 -15
- package/dist/serde/jsonplus.cjs.map +1 -1
- package/dist/serde/jsonplus.js +10 -11
- package/dist/serde/jsonplus.js.map +1 -1
- package/dist/serde/types.cjs +1 -2
- package/dist/serde/types.cjs.map +1 -1
- package/dist/serde/types.d.cts +0 -3
- package/dist/serde/types.d.cts.map +1 -1
- package/dist/serde/types.d.ts +0 -3
- package/dist/serde/types.d.ts.map +1 -1
- package/dist/serde/types.js +1 -1
- package/dist/serde/utils/fast-safe-stringify/index.cjs +1 -2
- package/dist/serde/utils/fast-safe-stringify/index.cjs.map +1 -1
- package/dist/serde/utils/fast-safe-stringify/index.js +1 -1
- package/dist/serde/utils/fast-safe-stringify/index.js.map +1 -1
- package/dist/store/base.cjs +1 -2
- package/dist/store/base.cjs.map +1 -1
- package/dist/store/base.d.cts +0 -1
- package/dist/store/base.d.cts.map +1 -1
- package/dist/store/base.d.ts +0 -1
- package/dist/store/base.d.ts.map +1 -1
- package/dist/store/base.js +1 -1
- package/dist/store/base.js.map +1 -1
- package/dist/store/batch.cjs +3 -5
- package/dist/store/batch.cjs.map +1 -1
- package/dist/store/batch.d.cts +0 -3
- package/dist/store/batch.d.cts.map +1 -1
- package/dist/store/batch.d.ts +0 -3
- package/dist/store/batch.d.ts.map +1 -1
- package/dist/store/batch.js +2 -4
- package/dist/store/batch.js.map +1 -1
- package/dist/store/memory.cjs +8 -14
- package/dist/store/memory.cjs.map +1 -1
- package/dist/store/memory.d.cts +0 -2
- package/dist/store/memory.d.cts.map +1 -1
- package/dist/store/memory.d.ts +0 -2
- package/dist/store/memory.d.ts.map +1 -1
- package/dist/store/memory.js +6 -12
- package/dist/store/memory.js.map +1 -1
- package/dist/store/utils.cjs +31 -35
- package/dist/store/utils.cjs.map +1 -1
- package/dist/store/utils.js +31 -34
- package/dist/store/utils.js.map +1 -1
- package/dist/types.d.cts.map +1 -1
- package/dist/types.d.ts.map +1 -1
- package/package.json +20 -19
- package/CHANGELOG.md +0 -25
- package/dist/_virtual/rolldown_runtime.cjs +0 -25
package/dist/base.cjs
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
1
|
-
const require_id = require(
|
|
2
|
-
const require_types = require(
|
|
3
|
-
const require_jsonplus = require(
|
|
4
|
-
|
|
1
|
+
const require_id = require("./id.cjs");
|
|
2
|
+
const require_types = require("./serde/types.cjs");
|
|
3
|
+
const require_jsonplus = require("./serde/jsonplus.cjs");
|
|
5
4
|
//#region src/base.ts
|
|
6
5
|
function deepCopy(obj) {
|
|
7
6
|
if (typeof obj !== "object" || obj === null) return obj;
|
|
@@ -77,7 +76,6 @@ const WRITES_IDX_MAP = {
|
|
|
77
76
|
function getCheckpointId(config) {
|
|
78
77
|
return config.configurable?.checkpoint_id || config.configurable?.thread_ts || "";
|
|
79
78
|
}
|
|
80
|
-
|
|
81
79
|
//#endregion
|
|
82
80
|
exports.BaseCheckpointSaver = BaseCheckpointSaver;
|
|
83
81
|
exports.WRITES_IDX_MAP = WRITES_IDX_MAP;
|
|
@@ -87,4 +85,5 @@ exports.deepCopy = deepCopy;
|
|
|
87
85
|
exports.emptyCheckpoint = emptyCheckpoint;
|
|
88
86
|
exports.getCheckpointId = getCheckpointId;
|
|
89
87
|
exports.maxChannelVersion = maxChannelVersion;
|
|
88
|
+
|
|
90
89
|
//# sourceMappingURL=base.cjs.map
|
package/dist/base.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base.cjs","names":["uuid6","JsonPlusSerializer","
|
|
1
|
+
{"version":3,"file":"base.cjs","names":["uuid6","JsonPlusSerializer","ERROR","SCHEDULED","INTERRUPT","RESUME"],"sources":["../src/base.ts"],"sourcesContent":["import type { RunnableConfig } from \"@langchain/core/runnables\";\nimport { SerializerProtocol } from \"./serde/base.js\";\nimport { uuid6 } from \"./id.js\";\nimport type {\n PendingWrite,\n CheckpointPendingWrite,\n CheckpointMetadata,\n} from \"./types.js\";\nimport { ERROR, INTERRUPT, RESUME, SCHEDULED } from \"./serde/types.js\";\nimport { JsonPlusSerializer } from \"./serde/jsonplus.js\";\n\n/** @inline */\ntype ChannelVersion = number | string;\n\nexport type ChannelVersions = Record<string, ChannelVersion>;\n\nexport interface Checkpoint<\n N extends string = string,\n C extends string = string\n> {\n /**\n * The version of the checkpoint format. Currently 4\n */\n v: number;\n /**\n * Checkpoint ID {uuid6}\n */\n id: string;\n /**\n * Timestamp {new Date().toISOString()}\n */\n ts: string;\n /**\n * @default {}\n */\n channel_values: Record<C, unknown>;\n /**\n * @default {}\n */\n channel_versions: Record<C, ChannelVersion>;\n /**\n * @default {}\n */\n versions_seen: Record<N, Record<C, ChannelVersion>>;\n}\n\nexport interface ReadonlyCheckpoint extends Readonly<Checkpoint> {\n readonly channel_values: Readonly<Record<string, unknown>>;\n readonly channel_versions: Readonly<Record<string, ChannelVersion>>;\n readonly versions_seen: Readonly<\n Record<string, Readonly<Record<string, ChannelVersion>>>\n >;\n}\n\nexport function deepCopy<T>(obj: T): T {\n if (typeof obj !== \"object\" || obj === null) {\n return obj;\n }\n\n const newObj = Array.isArray(obj) ? [] : {};\n\n for (const key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n (newObj as Record<PropertyKey, unknown>)[key] = deepCopy(\n (obj as Record<string, unknown>)[key]\n );\n }\n }\n\n return newObj as T;\n}\n\n/** @hidden */\nexport function emptyCheckpoint(): Checkpoint {\n return {\n v: 4,\n id: uuid6(-2),\n ts: new Date().toISOString(),\n channel_values: {},\n channel_versions: {},\n versions_seen: {},\n };\n}\n\n/** @hidden */\nexport function copyCheckpoint(checkpoint: ReadonlyCheckpoint): Checkpoint {\n return {\n v: checkpoint.v,\n id: checkpoint.id,\n ts: checkpoint.ts,\n channel_values: { ...checkpoint.channel_values },\n channel_versions: { ...checkpoint.channel_versions },\n versions_seen: deepCopy(checkpoint.versions_seen),\n };\n}\n\nexport interface CheckpointTuple {\n config: RunnableConfig;\n checkpoint: Checkpoint;\n metadata?: CheckpointMetadata;\n parentConfig?: RunnableConfig;\n pendingWrites?: CheckpointPendingWrite[];\n}\n\nexport type CheckpointListOptions = {\n limit?: number;\n before?: RunnableConfig;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n filter?: Record<string, any>;\n};\n\nexport abstract class BaseCheckpointSaver<V extends string | number = number> {\n serde: SerializerProtocol = new JsonPlusSerializer();\n\n constructor(serde?: SerializerProtocol) {\n this.serde = serde || this.serde;\n }\n\n async get(config: RunnableConfig): Promise<Checkpoint | undefined> {\n const value = await this.getTuple(config);\n return value ? value.checkpoint : undefined;\n }\n\n abstract getTuple(\n config: RunnableConfig\n ): Promise<CheckpointTuple | undefined>;\n\n abstract list(\n config: RunnableConfig,\n options?: CheckpointListOptions\n ): AsyncGenerator<CheckpointTuple>;\n\n abstract put(\n config: RunnableConfig,\n checkpoint: Checkpoint,\n metadata: CheckpointMetadata,\n newVersions: ChannelVersions\n ): Promise<RunnableConfig>;\n\n /**\n * Store intermediate writes linked to a checkpoint.\n */\n abstract putWrites(\n config: RunnableConfig,\n writes: PendingWrite[],\n taskId: string\n ): Promise<void>;\n\n /**\n * Delete all checkpoints and writes associated with a specific thread ID.\n * @param threadId The thread ID whose checkpoints should be deleted.\n */\n abstract deleteThread(threadId: string): Promise<void>;\n\n /**\n * Generate the next version ID for a channel.\n *\n * Default is to use integer versions, incrementing by 1. If you override, you can use str/int/float versions,\n * as long as they are monotonically increasing.\n */\n getNextVersion(current: V | undefined): V {\n if (typeof current === \"string\") {\n throw new Error(\"Please override this method to use string versions.\");\n }\n return (\n current !== undefined && typeof current === \"number\" ? current + 1 : 1\n ) as V;\n }\n}\n\nexport function compareChannelVersions(\n a: ChannelVersion,\n b: ChannelVersion\n): number {\n if (typeof a === \"number\" && typeof b === \"number\") {\n return Math.sign(a - b);\n }\n\n return String(a).localeCompare(String(b));\n}\n\nexport function maxChannelVersion(\n ...versions: ChannelVersion[]\n): ChannelVersion {\n return versions.reduce((max, version, idx) => {\n if (idx === 0) return version;\n return compareChannelVersions(max, version) >= 0 ? max : version;\n });\n}\n\n/**\n * Mapping from error type to error index.\n * Regular writes just map to their index in the list of writes being saved.\n * Special writes (e.g. errors) map to negative indices, to avoid those writes from\n * conflicting with regular writes.\n * Each Checkpointer implementation should use this mapping in put_writes.\n */\nexport const WRITES_IDX_MAP: Record<string, number> = {\n [ERROR]: -1,\n [SCHEDULED]: -2,\n [INTERRUPT]: -3,\n [RESUME]: -4,\n};\n\nexport function getCheckpointId(config: RunnableConfig): string {\n return (\n config.configurable?.checkpoint_id || config.configurable?.thread_ts || \"\"\n );\n}\n"],"mappings":";;;;AAsDA,SAAgB,SAAY,KAAW;AACrC,KAAI,OAAO,QAAQ,YAAY,QAAQ,KACrC,QAAO;CAGT,MAAM,SAAS,MAAM,QAAQ,IAAI,GAAG,EAAE,GAAG,EAAE;AAE3C,MAAK,MAAM,OAAO,IAChB,KAAI,OAAO,UAAU,eAAe,KAAK,KAAK,IAAI,CAC/C,QAAwC,OAAO,SAC7C,IAAgC,KAClC;AAIL,QAAO;;;AAIT,SAAgB,kBAA8B;AAC5C,QAAO;EACL,GAAG;EACH,IAAIA,WAAAA,MAAM,GAAG;EACb,qBAAI,IAAI,MAAM,EAAC,aAAa;EAC5B,gBAAgB,EAAE;EAClB,kBAAkB,EAAE;EACpB,eAAe,EAAE;EAClB;;;AAIH,SAAgB,eAAe,YAA4C;AACzE,QAAO;EACL,GAAG,WAAW;EACd,IAAI,WAAW;EACf,IAAI,WAAW;EACf,gBAAgB,EAAE,GAAG,WAAW,gBAAgB;EAChD,kBAAkB,EAAE,GAAG,WAAW,kBAAkB;EACpD,eAAe,SAAS,WAAW,cAAc;EAClD;;AAkBH,IAAsB,sBAAtB,MAA8E;CAC5E,QAA4B,IAAIC,iBAAAA,oBAAoB;CAEpD,YAAY,OAA4B;AACtC,OAAK,QAAQ,SAAS,KAAK;;CAG7B,MAAM,IAAI,QAAyD;EACjE,MAAM,QAAQ,MAAM,KAAK,SAAS,OAAO;AACzC,SAAO,QAAQ,MAAM,aAAa,KAAA;;;;;;;;CAwCpC,eAAe,SAA2B;AACxC,MAAI,OAAO,YAAY,SACrB,OAAM,IAAI,MAAM,sDAAsD;AAExE,SACE,YAAY,KAAA,KAAa,OAAO,YAAY,WAAW,UAAU,IAAI;;;AAK3E,SAAgB,uBACd,GACA,GACQ;AACR,KAAI,OAAO,MAAM,YAAY,OAAO,MAAM,SACxC,QAAO,KAAK,KAAK,IAAI,EAAE;AAGzB,QAAO,OAAO,EAAE,CAAC,cAAc,OAAO,EAAE,CAAC;;AAG3C,SAAgB,kBACd,GAAG,UACa;AAChB,QAAO,SAAS,QAAQ,KAAK,SAAS,QAAQ;AAC5C,MAAI,QAAQ,EAAG,QAAO;AACtB,SAAO,uBAAuB,KAAK,QAAQ,IAAI,IAAI,MAAM;GACzD;;;;;;;;;AAUJ,MAAa,iBAAyC;EACnDC,cAAAA,QAAQ;EACRC,cAAAA,YAAY;EACZC,cAAAA,YAAY;EACZC,cAAAA,SAAS;CACX;AAED,SAAgB,gBAAgB,QAAgC;AAC9D,QACE,OAAO,cAAc,iBAAiB,OAAO,cAAc,aAAa"}
|
package/dist/base.d.cts
CHANGED
|
@@ -52,7 +52,6 @@ interface CheckpointTuple {
|
|
|
52
52
|
type CheckpointListOptions = {
|
|
53
53
|
limit?: number;
|
|
54
54
|
before?: RunnableConfig;
|
|
55
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
56
55
|
filter?: Record<string, any>;
|
|
57
56
|
};
|
|
58
57
|
declare abstract class BaseCheckpointSaver<V extends string | number = number> {
|
package/dist/base.d.cts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base.d.cts","names":[
|
|
1
|
+
{"version":3,"file":"base.d.cts","names":[],"sources":["../src/base.ts"],"mappings":";;;;;;KAYK,cAAA;AAAA,KAEO,eAAA,GAAkB,MAAA,SAAe,cAAA;AAAA,UAE5B,UAAA;;;;EAOf,CAAA;EATyB;;;EAazB,EAAA;EAXe;;;EAef,EAAA;EAIgB;;;EAAhB,cAAA,EAAgB,MAAA,CAAO,CAAA;EAQD;;;EAJtB,gBAAA,EAAkB,MAAA,CAAO,CAAA,EAAG,cAAA;EAIb;;;EAAf,aAAA,EAAe,MAAA,CAAO,CAAA,EAAG,MAAA,CAAO,CAAA,EAAG,cAAA;AAAA;AAAA,UAGpB,kBAAA,SAA2B,QAAA,CAAS,UAAA;EAAA,SAC1C,cAAA,EAAgB,QAAA,CAAS,MAAA;EAAA,SACzB,gBAAA,EAAkB,QAAA,CAAS,MAAA,SAAe,cAAA;EAAA,SAC1C,aAAA,EAAe,QAAA,CACtB,MAAA,SAAe,QAAA,CAAS,MAAA,SAAe,cAAA;AAAA;AAAA,iBAI3B,QAAA,GAAA,CAAY,GAAA,EAAK,CAAA,GAAI,CAAA;;iBAmBrB,eAAA,CAAA,GAAmB,UAAA;;iBAYnB,cAAA,CAAe,UAAA,EAAY,kBAAA,GAAqB,UAAA;AAAA,UAW/C,eAAA;EACf,MAAA,EAAQ,cAAA;EACR,UAAA,EAAY,UAAA;EACZ,QAAA,GAAW,kBAAA;EACX,YAAA,GAAe,cAAA;EACf,aAAA,GAAgB,sBAAA;AAAA;AAAA,KAGN,qBAAA;EACV,KAAA;EACA,MAAA,GAAS,cAAA;EAET,MAAA,GAAS,MAAA;AAAA;AAAA,uBAGW,mBAAA;EACpB,KAAA,EAAO,kBAAA;EAEP,WAAA,CAAY,KAAA,GAAQ,kBAAA;EAId,GAAA,CAAI,MAAA,EAAQ,cAAA,GAAiB,OAAA,CAAQ,UAAA;EAAA,SAKlC,QAAA,CACP,MAAA,EAAQ,cAAA,GACP,OAAA,CAAQ,eAAA;EAAA,SAEF,IAAA,CACP,MAAA,EAAQ,cAAA,EACR,OAAA,GAAU,qBAAA,GACT,cAAA,CAAe,eAAA;EAAA,SAET,GAAA,CACP,MAAA,EAAQ,cAAA,EACR,UAAA,EAAY,UAAA,EACZ,QAAA,EAAU,kBAAA,EACV,WAAA,EAAa,eAAA,GACZ,OAAA,CAAQ,cAAA;EAvFM;;;EAAA,SA4FR,SAAA,CACP,MAAA,EAAQ,cAAA,EACR,MAAA,EAAQ,YAAA,IACR,MAAA,WACC,OAAA;EApG+C;;;;EAAA,SA0GzC,YAAA,CAAa,QAAA,WAAmB,OAAA;EAzGhB;;;;;;EAiHzB,cAAA,CAAe,OAAA,EAAS,CAAA,eAAgB,CAAA;AAAA;AAAA,iBAU1B,sBAAA,CACd,CAAA,EAAG,cAAA,EACH,CAAA,EAAG,cAAA;AAAA,iBASW,iBAAA,CAAA,GACX,QAAA,EAAU,cAAA,KACZ,cAAA;;;;;AAjIH;;;cA+Ia,cAAA,EAAgB,MAAA;AAAA,iBAOb,eAAA,CAAgB,MAAA,EAAQ,cAAA"}
|
package/dist/base.d.ts
CHANGED
|
@@ -52,7 +52,6 @@ interface CheckpointTuple {
|
|
|
52
52
|
type CheckpointListOptions = {
|
|
53
53
|
limit?: number;
|
|
54
54
|
before?: RunnableConfig;
|
|
55
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
56
55
|
filter?: Record<string, any>;
|
|
57
56
|
};
|
|
58
57
|
declare abstract class BaseCheckpointSaver<V extends string | number = number> {
|
package/dist/base.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base.d.ts","names":[
|
|
1
|
+
{"version":3,"file":"base.d.ts","names":[],"sources":["../src/base.ts"],"mappings":";;;;;;KAYK,cAAA;AAAA,KAEO,eAAA,GAAkB,MAAA,SAAe,cAAA;AAAA,UAE5B,UAAA;;;;EAOf,CAAA;EATyB;;;EAazB,EAAA;EAXe;;;EAef,EAAA;EAIgB;;;EAAhB,cAAA,EAAgB,MAAA,CAAO,CAAA;EAQD;;;EAJtB,gBAAA,EAAkB,MAAA,CAAO,CAAA,EAAG,cAAA;EAIb;;;EAAf,aAAA,EAAe,MAAA,CAAO,CAAA,EAAG,MAAA,CAAO,CAAA,EAAG,cAAA;AAAA;AAAA,UAGpB,kBAAA,SAA2B,QAAA,CAAS,UAAA;EAAA,SAC1C,cAAA,EAAgB,QAAA,CAAS,MAAA;EAAA,SACzB,gBAAA,EAAkB,QAAA,CAAS,MAAA,SAAe,cAAA;EAAA,SAC1C,aAAA,EAAe,QAAA,CACtB,MAAA,SAAe,QAAA,CAAS,MAAA,SAAe,cAAA;AAAA;AAAA,iBAI3B,QAAA,GAAA,CAAY,GAAA,EAAK,CAAA,GAAI,CAAA;;iBAmBrB,eAAA,CAAA,GAAmB,UAAA;;iBAYnB,cAAA,CAAe,UAAA,EAAY,kBAAA,GAAqB,UAAA;AAAA,UAW/C,eAAA;EACf,MAAA,EAAQ,cAAA;EACR,UAAA,EAAY,UAAA;EACZ,QAAA,GAAW,kBAAA;EACX,YAAA,GAAe,cAAA;EACf,aAAA,GAAgB,sBAAA;AAAA;AAAA,KAGN,qBAAA;EACV,KAAA;EACA,MAAA,GAAS,cAAA;EAET,MAAA,GAAS,MAAA;AAAA;AAAA,uBAGW,mBAAA;EACpB,KAAA,EAAO,kBAAA;EAEP,WAAA,CAAY,KAAA,GAAQ,kBAAA;EAId,GAAA,CAAI,MAAA,EAAQ,cAAA,GAAiB,OAAA,CAAQ,UAAA;EAAA,SAKlC,QAAA,CACP,MAAA,EAAQ,cAAA,GACP,OAAA,CAAQ,eAAA;EAAA,SAEF,IAAA,CACP,MAAA,EAAQ,cAAA,EACR,OAAA,GAAU,qBAAA,GACT,cAAA,CAAe,eAAA;EAAA,SAET,GAAA,CACP,MAAA,EAAQ,cAAA,EACR,UAAA,EAAY,UAAA,EACZ,QAAA,EAAU,kBAAA,EACV,WAAA,EAAa,eAAA,GACZ,OAAA,CAAQ,cAAA;EAvFM;;;EAAA,SA4FR,SAAA,CACP,MAAA,EAAQ,cAAA,EACR,MAAA,EAAQ,YAAA,IACR,MAAA,WACC,OAAA;EApG+C;;;;EAAA,SA0GzC,YAAA,CAAa,QAAA,WAAmB,OAAA;EAzGhB;;;;;;EAiHzB,cAAA,CAAe,OAAA,EAAS,CAAA,eAAgB,CAAA;AAAA;AAAA,iBAU1B,sBAAA,CACd,CAAA,EAAG,cAAA,EACH,CAAA,EAAG,cAAA;AAAA,iBASW,iBAAA,CAAA,GACX,QAAA,EAAU,cAAA,KACZ,cAAA;;;;;AAjIH;;;cA+Ia,cAAA,EAAgB,MAAA;AAAA,iBAOb,eAAA,CAAgB,MAAA,EAAQ,cAAA"}
|
package/dist/base.js
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import { uuid6 } from "./id.js";
|
|
2
2
|
import { ERROR, INTERRUPT, RESUME, SCHEDULED } from "./serde/types.js";
|
|
3
3
|
import { JsonPlusSerializer } from "./serde/jsonplus.js";
|
|
4
|
-
|
|
5
4
|
//#region src/base.ts
|
|
6
5
|
function deepCopy(obj) {
|
|
7
6
|
if (typeof obj !== "object" || obj === null) return obj;
|
|
@@ -77,7 +76,7 @@ const WRITES_IDX_MAP = {
|
|
|
77
76
|
function getCheckpointId(config) {
|
|
78
77
|
return config.configurable?.checkpoint_id || config.configurable?.thread_ts || "";
|
|
79
78
|
}
|
|
80
|
-
|
|
81
79
|
//#endregion
|
|
82
80
|
export { BaseCheckpointSaver, WRITES_IDX_MAP, compareChannelVersions, copyCheckpoint, deepCopy, emptyCheckpoint, getCheckpointId, maxChannelVersion };
|
|
81
|
+
|
|
83
82
|
//# sourceMappingURL=base.js.map
|
package/dist/base.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base.js","names":[
|
|
1
|
+
{"version":3,"file":"base.js","names":[],"sources":["../src/base.ts"],"sourcesContent":["import type { RunnableConfig } from \"@langchain/core/runnables\";\nimport { SerializerProtocol } from \"./serde/base.js\";\nimport { uuid6 } from \"./id.js\";\nimport type {\n PendingWrite,\n CheckpointPendingWrite,\n CheckpointMetadata,\n} from \"./types.js\";\nimport { ERROR, INTERRUPT, RESUME, SCHEDULED } from \"./serde/types.js\";\nimport { JsonPlusSerializer } from \"./serde/jsonplus.js\";\n\n/** @inline */\ntype ChannelVersion = number | string;\n\nexport type ChannelVersions = Record<string, ChannelVersion>;\n\nexport interface Checkpoint<\n N extends string = string,\n C extends string = string\n> {\n /**\n * The version of the checkpoint format. Currently 4\n */\n v: number;\n /**\n * Checkpoint ID {uuid6}\n */\n id: string;\n /**\n * Timestamp {new Date().toISOString()}\n */\n ts: string;\n /**\n * @default {}\n */\n channel_values: Record<C, unknown>;\n /**\n * @default {}\n */\n channel_versions: Record<C, ChannelVersion>;\n /**\n * @default {}\n */\n versions_seen: Record<N, Record<C, ChannelVersion>>;\n}\n\nexport interface ReadonlyCheckpoint extends Readonly<Checkpoint> {\n readonly channel_values: Readonly<Record<string, unknown>>;\n readonly channel_versions: Readonly<Record<string, ChannelVersion>>;\n readonly versions_seen: Readonly<\n Record<string, Readonly<Record<string, ChannelVersion>>>\n >;\n}\n\nexport function deepCopy<T>(obj: T): T {\n if (typeof obj !== \"object\" || obj === null) {\n return obj;\n }\n\n const newObj = Array.isArray(obj) ? [] : {};\n\n for (const key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n (newObj as Record<PropertyKey, unknown>)[key] = deepCopy(\n (obj as Record<string, unknown>)[key]\n );\n }\n }\n\n return newObj as T;\n}\n\n/** @hidden */\nexport function emptyCheckpoint(): Checkpoint {\n return {\n v: 4,\n id: uuid6(-2),\n ts: new Date().toISOString(),\n channel_values: {},\n channel_versions: {},\n versions_seen: {},\n };\n}\n\n/** @hidden */\nexport function copyCheckpoint(checkpoint: ReadonlyCheckpoint): Checkpoint {\n return {\n v: checkpoint.v,\n id: checkpoint.id,\n ts: checkpoint.ts,\n channel_values: { ...checkpoint.channel_values },\n channel_versions: { ...checkpoint.channel_versions },\n versions_seen: deepCopy(checkpoint.versions_seen),\n };\n}\n\nexport interface CheckpointTuple {\n config: RunnableConfig;\n checkpoint: Checkpoint;\n metadata?: CheckpointMetadata;\n parentConfig?: RunnableConfig;\n pendingWrites?: CheckpointPendingWrite[];\n}\n\nexport type CheckpointListOptions = {\n limit?: number;\n before?: RunnableConfig;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n filter?: Record<string, any>;\n};\n\nexport abstract class BaseCheckpointSaver<V extends string | number = number> {\n serde: SerializerProtocol = new JsonPlusSerializer();\n\n constructor(serde?: SerializerProtocol) {\n this.serde = serde || this.serde;\n }\n\n async get(config: RunnableConfig): Promise<Checkpoint | undefined> {\n const value = await this.getTuple(config);\n return value ? value.checkpoint : undefined;\n }\n\n abstract getTuple(\n config: RunnableConfig\n ): Promise<CheckpointTuple | undefined>;\n\n abstract list(\n config: RunnableConfig,\n options?: CheckpointListOptions\n ): AsyncGenerator<CheckpointTuple>;\n\n abstract put(\n config: RunnableConfig,\n checkpoint: Checkpoint,\n metadata: CheckpointMetadata,\n newVersions: ChannelVersions\n ): Promise<RunnableConfig>;\n\n /**\n * Store intermediate writes linked to a checkpoint.\n */\n abstract putWrites(\n config: RunnableConfig,\n writes: PendingWrite[],\n taskId: string\n ): Promise<void>;\n\n /**\n * Delete all checkpoints and writes associated with a specific thread ID.\n * @param threadId The thread ID whose checkpoints should be deleted.\n */\n abstract deleteThread(threadId: string): Promise<void>;\n\n /**\n * Generate the next version ID for a channel.\n *\n * Default is to use integer versions, incrementing by 1. If you override, you can use str/int/float versions,\n * as long as they are monotonically increasing.\n */\n getNextVersion(current: V | undefined): V {\n if (typeof current === \"string\") {\n throw new Error(\"Please override this method to use string versions.\");\n }\n return (\n current !== undefined && typeof current === \"number\" ? current + 1 : 1\n ) as V;\n }\n}\n\nexport function compareChannelVersions(\n a: ChannelVersion,\n b: ChannelVersion\n): number {\n if (typeof a === \"number\" && typeof b === \"number\") {\n return Math.sign(a - b);\n }\n\n return String(a).localeCompare(String(b));\n}\n\nexport function maxChannelVersion(\n ...versions: ChannelVersion[]\n): ChannelVersion {\n return versions.reduce((max, version, idx) => {\n if (idx === 0) return version;\n return compareChannelVersions(max, version) >= 0 ? max : version;\n });\n}\n\n/**\n * Mapping from error type to error index.\n * Regular writes just map to their index in the list of writes being saved.\n * Special writes (e.g. errors) map to negative indices, to avoid those writes from\n * conflicting with regular writes.\n * Each Checkpointer implementation should use this mapping in put_writes.\n */\nexport const WRITES_IDX_MAP: Record<string, number> = {\n [ERROR]: -1,\n [SCHEDULED]: -2,\n [INTERRUPT]: -3,\n [RESUME]: -4,\n};\n\nexport function getCheckpointId(config: RunnableConfig): string {\n return (\n config.configurable?.checkpoint_id || config.configurable?.thread_ts || \"\"\n );\n}\n"],"mappings":";;;;AAsDA,SAAgB,SAAY,KAAW;AACrC,KAAI,OAAO,QAAQ,YAAY,QAAQ,KACrC,QAAO;CAGT,MAAM,SAAS,MAAM,QAAQ,IAAI,GAAG,EAAE,GAAG,EAAE;AAE3C,MAAK,MAAM,OAAO,IAChB,KAAI,OAAO,UAAU,eAAe,KAAK,KAAK,IAAI,CAC/C,QAAwC,OAAO,SAC7C,IAAgC,KAClC;AAIL,QAAO;;;AAIT,SAAgB,kBAA8B;AAC5C,QAAO;EACL,GAAG;EACH,IAAI,MAAM,GAAG;EACb,qBAAI,IAAI,MAAM,EAAC,aAAa;EAC5B,gBAAgB,EAAE;EAClB,kBAAkB,EAAE;EACpB,eAAe,EAAE;EAClB;;;AAIH,SAAgB,eAAe,YAA4C;AACzE,QAAO;EACL,GAAG,WAAW;EACd,IAAI,WAAW;EACf,IAAI,WAAW;EACf,gBAAgB,EAAE,GAAG,WAAW,gBAAgB;EAChD,kBAAkB,EAAE,GAAG,WAAW,kBAAkB;EACpD,eAAe,SAAS,WAAW,cAAc;EAClD;;AAkBH,IAAsB,sBAAtB,MAA8E;CAC5E,QAA4B,IAAI,oBAAoB;CAEpD,YAAY,OAA4B;AACtC,OAAK,QAAQ,SAAS,KAAK;;CAG7B,MAAM,IAAI,QAAyD;EACjE,MAAM,QAAQ,MAAM,KAAK,SAAS,OAAO;AACzC,SAAO,QAAQ,MAAM,aAAa,KAAA;;;;;;;;CAwCpC,eAAe,SAA2B;AACxC,MAAI,OAAO,YAAY,SACrB,OAAM,IAAI,MAAM,sDAAsD;AAExE,SACE,YAAY,KAAA,KAAa,OAAO,YAAY,WAAW,UAAU,IAAI;;;AAK3E,SAAgB,uBACd,GACA,GACQ;AACR,KAAI,OAAO,MAAM,YAAY,OAAO,MAAM,SACxC,QAAO,KAAK,KAAK,IAAI,EAAE;AAGzB,QAAO,OAAO,EAAE,CAAC,cAAc,OAAO,EAAE,CAAC;;AAG3C,SAAgB,kBACd,GAAG,UACa;AAChB,QAAO,SAAS,QAAQ,KAAK,SAAS,QAAQ;AAC5C,MAAI,QAAQ,EAAG,QAAO;AACtB,SAAO,uBAAuB,KAAK,QAAQ,IAAI,IAAI,MAAM;GACzD;;;;;;;;;AAUJ,MAAa,iBAAyC;EACnD,QAAQ;EACR,YAAY;EACZ,YAAY;EACZ,SAAS;CACX;AAED,SAAgB,gBAAgB,QAAgC;AAC9D,QACE,OAAO,cAAc,iBAAiB,OAAO,cAAc,aAAa"}
|
package/dist/cache/base.cjs
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
const require_jsonplus = require(
|
|
2
|
-
|
|
1
|
+
const require_jsonplus = require("../serde/jsonplus.cjs");
|
|
3
2
|
//#region src/cache/base.ts
|
|
4
3
|
var BaseCache = class {
|
|
5
4
|
serde = new require_jsonplus.JsonPlusSerializer();
|
|
@@ -12,7 +11,7 @@ var BaseCache = class {
|
|
|
12
11
|
this.serde = serde || this.serde;
|
|
13
12
|
}
|
|
14
13
|
};
|
|
15
|
-
|
|
16
14
|
//#endregion
|
|
17
15
|
exports.BaseCache = BaseCache;
|
|
16
|
+
|
|
18
17
|
//# sourceMappingURL=base.cjs.map
|
package/dist/cache/base.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base.cjs","names":["JsonPlusSerializer"],"sources":["../../src/cache/base.ts"],"sourcesContent":["import { SerializerProtocol } from \"../serde/base.js\";\nimport { JsonPlusSerializer } from \"../serde/jsonplus.js\";\n\nexport type CacheNamespace = string[];\nexport type CacheFullKey = [namespace: CacheNamespace, key: string];\n\nexport abstract class BaseCache<V = unknown> {\n serde: SerializerProtocol = new JsonPlusSerializer();\n\n /**\n * Initialize the cache with a serializer.\n *\n * @param serde - The serializer to use.\n */\n constructor(serde?: SerializerProtocol) {\n this.serde = serde || this.serde;\n }\n\n /**\n * Get the cached values for the given keys.\n *\n * @param keys - The keys to get.\n */\n abstract get(\n keys: CacheFullKey[]\n ): Promise<{ key: CacheFullKey; value: V }[]>;\n\n /**\n * Set the cached values for the given keys and TTLs.\n *\n * @param pairs - The pairs to set.\n */\n abstract set(\n pairs: { key: CacheFullKey; value: V; ttl?: number }[]\n ): Promise<void>;\n\n /**\n * Delete the cached values for the given namespaces.\n * If no namespaces are provided, clear all cached values.\n *\n * @param namespaces - The namespaces to clear.\n */\n abstract clear(namespaces: CacheNamespace[]): Promise<void>;\n}\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"base.cjs","names":["JsonPlusSerializer"],"sources":["../../src/cache/base.ts"],"sourcesContent":["import { SerializerProtocol } from \"../serde/base.js\";\nimport { JsonPlusSerializer } from \"../serde/jsonplus.js\";\n\nexport type CacheNamespace = string[];\nexport type CacheFullKey = [namespace: CacheNamespace, key: string];\n\nexport abstract class BaseCache<V = unknown> {\n serde: SerializerProtocol = new JsonPlusSerializer();\n\n /**\n * Initialize the cache with a serializer.\n *\n * @param serde - The serializer to use.\n */\n constructor(serde?: SerializerProtocol) {\n this.serde = serde || this.serde;\n }\n\n /**\n * Get the cached values for the given keys.\n *\n * @param keys - The keys to get.\n */\n abstract get(\n keys: CacheFullKey[]\n ): Promise<{ key: CacheFullKey; value: V }[]>;\n\n /**\n * Set the cached values for the given keys and TTLs.\n *\n * @param pairs - The pairs to set.\n */\n abstract set(\n pairs: { key: CacheFullKey; value: V; ttl?: number }[]\n ): Promise<void>;\n\n /**\n * Delete the cached values for the given namespaces.\n * If no namespaces are provided, clear all cached values.\n *\n * @param namespaces - The namespaces to clear.\n */\n abstract clear(namespaces: CacheNamespace[]): Promise<void>;\n}\n"],"mappings":";;AAMA,IAAsB,YAAtB,MAA6C;CAC3C,QAA4B,IAAIA,iBAAAA,oBAAoB;;;;;;CAOpD,YAAY,OAA4B;AACtC,OAAK,QAAQ,SAAS,KAAK"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base.d.cts","names":[
|
|
1
|
+
{"version":3,"file":"base.d.cts","names":[],"sources":["../../src/cache/base.ts"],"mappings":";;;KAGY,cAAA;AAAA,KACA,YAAA,IAAgB,SAAA,EAAW,cAAA,EAAgB,GAAA;AAAA,uBAEjC,SAAA;EACpB,KAAA,EAAO,kBAAA;;;;AAHT;;EAUE,WAAA,CAAY,KAAA,GAAQ,kBAAA;EAV+B;;;;;EAAA,SAmB1C,GAAA,CACP,IAAA,EAAM,YAAA,KACL,OAAA;IAAU,GAAA,EAAK,YAAA;IAAc,KAAA,EAAO,CAAA;EAAA;EAlBhC;;;;;EAAA,SAyBE,GAAA,CACP,KAAA;IAAS,GAAA,EAAK,YAAA;IAAc,KAAA,EAAO,CAAA;IAAG,GAAA;EAAA,MACrC,OAAA;EAQ2C;;;;;;EAAA,SAArC,KAAA,CAAM,UAAA,EAAY,cAAA,KAAmB,OAAA;AAAA"}
|
package/dist/cache/base.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base.d.ts","names":[
|
|
1
|
+
{"version":3,"file":"base.d.ts","names":[],"sources":["../../src/cache/base.ts"],"mappings":";;;KAGY,cAAA;AAAA,KACA,YAAA,IAAgB,SAAA,EAAW,cAAA,EAAgB,GAAA;AAAA,uBAEjC,SAAA;EACpB,KAAA,EAAO,kBAAA;;;;AAHT;;EAUE,WAAA,CAAY,KAAA,GAAQ,kBAAA;EAV+B;;;;;EAAA,SAmB1C,GAAA,CACP,IAAA,EAAM,YAAA,KACL,OAAA;IAAU,GAAA,EAAK,YAAA;IAAc,KAAA,EAAO,CAAA;EAAA;EAlBhC;;;;;EAAA,SAyBE,GAAA,CACP,KAAA;IAAS,GAAA,EAAK,YAAA;IAAc,KAAA,EAAO,CAAA;IAAG,GAAA;EAAA,MACrC,OAAA;EAQ2C;;;;;;EAAA,SAArC,KAAA,CAAM,UAAA,EAAY,cAAA,KAAmB,OAAA;AAAA"}
|
package/dist/cache/base.js
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import { JsonPlusSerializer } from "../serde/jsonplus.js";
|
|
2
|
-
|
|
3
2
|
//#region src/cache/base.ts
|
|
4
3
|
var BaseCache = class {
|
|
5
4
|
serde = new JsonPlusSerializer();
|
|
@@ -12,7 +11,7 @@ var BaseCache = class {
|
|
|
12
11
|
this.serde = serde || this.serde;
|
|
13
12
|
}
|
|
14
13
|
};
|
|
15
|
-
|
|
16
14
|
//#endregion
|
|
17
15
|
export { BaseCache };
|
|
16
|
+
|
|
18
17
|
//# sourceMappingURL=base.js.map
|
package/dist/cache/base.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base.js","names":[],"sources":["../../src/cache/base.ts"],"sourcesContent":["import { SerializerProtocol } from \"../serde/base.js\";\nimport { JsonPlusSerializer } from \"../serde/jsonplus.js\";\n\nexport type CacheNamespace = string[];\nexport type CacheFullKey = [namespace: CacheNamespace, key: string];\n\nexport abstract class BaseCache<V = unknown> {\n serde: SerializerProtocol = new JsonPlusSerializer();\n\n /**\n * Initialize the cache with a serializer.\n *\n * @param serde - The serializer to use.\n */\n constructor(serde?: SerializerProtocol) {\n this.serde = serde || this.serde;\n }\n\n /**\n * Get the cached values for the given keys.\n *\n * @param keys - The keys to get.\n */\n abstract get(\n keys: CacheFullKey[]\n ): Promise<{ key: CacheFullKey; value: V }[]>;\n\n /**\n * Set the cached values for the given keys and TTLs.\n *\n * @param pairs - The pairs to set.\n */\n abstract set(\n pairs: { key: CacheFullKey; value: V; ttl?: number }[]\n ): Promise<void>;\n\n /**\n * Delete the cached values for the given namespaces.\n * If no namespaces are provided, clear all cached values.\n *\n * @param namespaces - The namespaces to clear.\n */\n abstract clear(namespaces: CacheNamespace[]): Promise<void>;\n}\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"base.js","names":[],"sources":["../../src/cache/base.ts"],"sourcesContent":["import { SerializerProtocol } from \"../serde/base.js\";\nimport { JsonPlusSerializer } from \"../serde/jsonplus.js\";\n\nexport type CacheNamespace = string[];\nexport type CacheFullKey = [namespace: CacheNamespace, key: string];\n\nexport abstract class BaseCache<V = unknown> {\n serde: SerializerProtocol = new JsonPlusSerializer();\n\n /**\n * Initialize the cache with a serializer.\n *\n * @param serde - The serializer to use.\n */\n constructor(serde?: SerializerProtocol) {\n this.serde = serde || this.serde;\n }\n\n /**\n * Get the cached values for the given keys.\n *\n * @param keys - The keys to get.\n */\n abstract get(\n keys: CacheFullKey[]\n ): Promise<{ key: CacheFullKey; value: V }[]>;\n\n /**\n * Set the cached values for the given keys and TTLs.\n *\n * @param pairs - The pairs to set.\n */\n abstract set(\n pairs: { key: CacheFullKey; value: V; ttl?: number }[]\n ): Promise<void>;\n\n /**\n * Delete the cached values for the given namespaces.\n * If no namespaces are provided, clear all cached values.\n *\n * @param namespaces - The namespaces to clear.\n */\n abstract clear(namespaces: CacheNamespace[]): Promise<void>;\n}\n"],"mappings":";;AAMA,IAAsB,YAAtB,MAA6C;CAC3C,QAA4B,IAAI,oBAAoB;;;;;;CAOpD,YAAY,OAA4B;AACtC,OAAK,QAAQ,SAAS,KAAK"}
|
package/dist/cache/index.cjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
require("./base.cjs");
|
|
2
|
+
require("./memory.cjs");
|
package/dist/cache/index.js
CHANGED
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import
|
|
2
|
-
import
|
|
3
|
-
|
|
4
|
-
export { };
|
|
1
|
+
import "./base.js";
|
|
2
|
+
import "./memory.js";
|
|
3
|
+
export {};
|
package/dist/cache/memory.cjs
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
const require_base = require(
|
|
2
|
-
|
|
1
|
+
const require_base = require("./base.cjs");
|
|
3
2
|
//#region src/cache/memory.ts
|
|
4
3
|
var InMemoryCache = class extends require_base.BaseCache {
|
|
5
4
|
cache = {};
|
|
@@ -11,13 +10,11 @@ var InMemoryCache = class extends require_base.BaseCache {
|
|
|
11
10
|
const strNamespace = namespace.join(",");
|
|
12
11
|
if (strNamespace in this.cache && key in this.cache[strNamespace]) {
|
|
13
12
|
const cached = this.cache[strNamespace][key];
|
|
14
|
-
if (cached.exp == null || now < cached.exp) {
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
}];
|
|
20
|
-
} else delete this.cache[strNamespace][key];
|
|
13
|
+
if (cached.exp == null || now < cached.exp) return [{
|
|
14
|
+
key: fullKey,
|
|
15
|
+
value: await this.serde.loadsTyped(cached.enc, cached.val)
|
|
16
|
+
}];
|
|
17
|
+
else delete this.cache[strNamespace][key];
|
|
21
18
|
}
|
|
22
19
|
return [];
|
|
23
20
|
}))).flat();
|
|
@@ -48,7 +45,7 @@ var InMemoryCache = class extends require_base.BaseCache {
|
|
|
48
45
|
}
|
|
49
46
|
}
|
|
50
47
|
};
|
|
51
|
-
|
|
52
48
|
//#endregion
|
|
53
49
|
exports.InMemoryCache = InMemoryCache;
|
|
50
|
+
|
|
54
51
|
//# sourceMappingURL=memory.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"memory.cjs","names":["BaseCache"],"sources":["../../src/cache/memory.ts"],"sourcesContent":["import { BaseCache, type CacheFullKey, type CacheNamespace } from \"./base.js\";\n\nexport class InMemoryCache<V = unknown> extends BaseCache<V> {\n private cache: {\n [namespace: string]: {\n [key: string]: {\n enc: string;\n val: Uint8Array | string;\n exp: number | null;\n };\n };\n } = {};\n\n async get(keys: CacheFullKey[]): Promise<{ key: CacheFullKey; value: V }[]> {\n if (!keys.length) return [];\n const now = Date.now();\n return (\n await Promise.all(\n keys.map(\n async (fullKey): Promise<{ key: CacheFullKey; value: V }[]> => {\n const [namespace, key] = fullKey;\n const strNamespace = namespace.join(\",\");\n\n if (strNamespace in this.cache && key in this.cache[strNamespace]) {\n const cached = this.cache[strNamespace][key];\n if (cached.exp == null || now < cached.exp) {\n const value = await this.serde.loadsTyped(\n cached.enc,\n cached.val\n );\n return [{ key: fullKey, value }];\n } else {\n delete this.cache[strNamespace][key];\n }\n }\n\n return [];\n }\n )\n )\n ).flat();\n }\n\n async set(\n pairs: { key: CacheFullKey; value: V; ttl?: number }[]\n ): Promise<void> {\n const now = Date.now();\n for (const { key: fullKey, value, ttl } of pairs) {\n const [namespace, key] = fullKey;\n const strNamespace = namespace.join(\",\");\n const [enc, val] = await this.serde.dumpsTyped(value);\n const exp = ttl != null ? ttl * 1000 + now : null;\n\n this.cache[strNamespace] ??= {};\n this.cache[strNamespace][key] = { enc, val, exp };\n }\n }\n\n async clear(namespaces: CacheNamespace[]): Promise<void> {\n if (!namespaces.length) {\n this.cache = {};\n return;\n }\n\n for (const namespace of namespaces) {\n const strNamespace = namespace.join(\",\");\n if (strNamespace in this.cache) delete this.cache[strNamespace];\n }\n }\n}\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"memory.cjs","names":["BaseCache"],"sources":["../../src/cache/memory.ts"],"sourcesContent":["import { BaseCache, type CacheFullKey, type CacheNamespace } from \"./base.js\";\n\nexport class InMemoryCache<V = unknown> extends BaseCache<V> {\n private cache: {\n [namespace: string]: {\n [key: string]: {\n enc: string;\n val: Uint8Array | string;\n exp: number | null;\n };\n };\n } = {};\n\n async get(keys: CacheFullKey[]): Promise<{ key: CacheFullKey; value: V }[]> {\n if (!keys.length) return [];\n const now = Date.now();\n return (\n await Promise.all(\n keys.map(\n async (fullKey): Promise<{ key: CacheFullKey; value: V }[]> => {\n const [namespace, key] = fullKey;\n const strNamespace = namespace.join(\",\");\n\n if (strNamespace in this.cache && key in this.cache[strNamespace]) {\n const cached = this.cache[strNamespace][key];\n if (cached.exp == null || now < cached.exp) {\n const value = await this.serde.loadsTyped(\n cached.enc,\n cached.val\n );\n return [{ key: fullKey, value }];\n } else {\n delete this.cache[strNamespace][key];\n }\n }\n\n return [];\n }\n )\n )\n ).flat();\n }\n\n async set(\n pairs: { key: CacheFullKey; value: V; ttl?: number }[]\n ): Promise<void> {\n const now = Date.now();\n for (const { key: fullKey, value, ttl } of pairs) {\n const [namespace, key] = fullKey;\n const strNamespace = namespace.join(\",\");\n const [enc, val] = await this.serde.dumpsTyped(value);\n const exp = ttl != null ? ttl * 1000 + now : null;\n\n this.cache[strNamespace] ??= {};\n this.cache[strNamespace][key] = { enc, val, exp };\n }\n }\n\n async clear(namespaces: CacheNamespace[]): Promise<void> {\n if (!namespaces.length) {\n this.cache = {};\n return;\n }\n\n for (const namespace of namespaces) {\n const strNamespace = namespace.join(\",\");\n if (strNamespace in this.cache) delete this.cache[strNamespace];\n }\n }\n}\n"],"mappings":";;AAEA,IAAa,gBAAb,cAAgDA,aAAAA,UAAa;CAC3D,QAQI,EAAE;CAEN,MAAM,IAAI,MAAkE;AAC1E,MAAI,CAAC,KAAK,OAAQ,QAAO,EAAE;EAC3B,MAAM,MAAM,KAAK,KAAK;AACtB,UACE,MAAM,QAAQ,IACZ,KAAK,IACH,OAAO,YAAwD;GAC7D,MAAM,CAAC,WAAW,OAAO;GACzB,MAAM,eAAe,UAAU,KAAK,IAAI;AAExC,OAAI,gBAAgB,KAAK,SAAS,OAAO,KAAK,MAAM,eAAe;IACjE,MAAM,SAAS,KAAK,MAAM,cAAc;AACxC,QAAI,OAAO,OAAO,QAAQ,MAAM,OAAO,IAKrC,QAAO,CAAC;KAAE,KAAK;KAAS,OAJV,MAAM,KAAK,MAAM,WAC7B,OAAO,KACP,OAAO,IACR;KAC8B,CAAC;QAEhC,QAAO,KAAK,MAAM,cAAc;;AAIpC,UAAO,EAAE;IAEZ,CACF,EACD,MAAM;;CAGV,MAAM,IACJ,OACe;EACf,MAAM,MAAM,KAAK,KAAK;AACtB,OAAK,MAAM,EAAE,KAAK,SAAS,OAAO,SAAS,OAAO;GAChD,MAAM,CAAC,WAAW,OAAO;GACzB,MAAM,eAAe,UAAU,KAAK,IAAI;GACxC,MAAM,CAAC,KAAK,OAAO,MAAM,KAAK,MAAM,WAAW,MAAM;GACrD,MAAM,MAAM,OAAO,OAAO,MAAM,MAAO,MAAM;AAE7C,QAAK,MAAM,kBAAkB,EAAE;AAC/B,QAAK,MAAM,cAAc,OAAO;IAAE;IAAK;IAAK;IAAK;;;CAIrD,MAAM,MAAM,YAA6C;AACvD,MAAI,CAAC,WAAW,QAAQ;AACtB,QAAK,QAAQ,EAAE;AACf;;AAGF,OAAK,MAAM,aAAa,YAAY;GAClC,MAAM,eAAe,UAAU,KAAK,IAAI;AACxC,OAAI,gBAAgB,KAAK,MAAO,QAAO,KAAK,MAAM"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"memory.d.cts","names":[
|
|
1
|
+
{"version":3,"file":"memory.d.cts","names":[],"sources":["../../src/cache/memory.ts"],"mappings":";;;cAEa,aAAA,sBAAmC,SAAA,CAAU,CAAA;EAAA,QAChD,KAAA;EAUF,GAAA,CAAI,IAAA,EAAM,YAAA,KAAiB,OAAA;IAAU,GAAA,EAAK,YAAA;IAAc,KAAA,EAAO,CAAA;EAAA;EA8B/D,GAAA,CACJ,KAAA;IAAS,GAAA,EAAK,YAAA;IAAc,KAAA,EAAO,CAAA;IAAG,GAAA;EAAA,MACrC,OAAA;EAaG,KAAA,CAAM,UAAA,EAAY,cAAA,KAAmB,OAAA;AAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"memory.d.ts","names":[
|
|
1
|
+
{"version":3,"file":"memory.d.ts","names":[],"sources":["../../src/cache/memory.ts"],"mappings":";;;cAEa,aAAA,sBAAmC,SAAA,CAAU,CAAA;EAAA,QAChD,KAAA;EAUF,GAAA,CAAI,IAAA,EAAM,YAAA,KAAiB,OAAA;IAAU,GAAA,EAAK,YAAA;IAAc,KAAA,EAAO,CAAA;EAAA;EA8B/D,GAAA,CACJ,KAAA;IAAS,GAAA,EAAK,YAAA;IAAc,KAAA,EAAO,CAAA;IAAG,GAAA;EAAA,MACrC,OAAA;EAaG,KAAA,CAAM,UAAA,EAAY,cAAA,KAAmB,OAAA;AAAA"}
|
package/dist/cache/memory.js
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import { BaseCache } from "./base.js";
|
|
2
|
-
|
|
3
2
|
//#region src/cache/memory.ts
|
|
4
3
|
var InMemoryCache = class extends BaseCache {
|
|
5
4
|
cache = {};
|
|
@@ -11,13 +10,11 @@ var InMemoryCache = class extends BaseCache {
|
|
|
11
10
|
const strNamespace = namespace.join(",");
|
|
12
11
|
if (strNamespace in this.cache && key in this.cache[strNamespace]) {
|
|
13
12
|
const cached = this.cache[strNamespace][key];
|
|
14
|
-
if (cached.exp == null || now < cached.exp) {
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
}];
|
|
20
|
-
} else delete this.cache[strNamespace][key];
|
|
13
|
+
if (cached.exp == null || now < cached.exp) return [{
|
|
14
|
+
key: fullKey,
|
|
15
|
+
value: await this.serde.loadsTyped(cached.enc, cached.val)
|
|
16
|
+
}];
|
|
17
|
+
else delete this.cache[strNamespace][key];
|
|
21
18
|
}
|
|
22
19
|
return [];
|
|
23
20
|
}))).flat();
|
|
@@ -48,7 +45,7 @@ var InMemoryCache = class extends BaseCache {
|
|
|
48
45
|
}
|
|
49
46
|
}
|
|
50
47
|
};
|
|
51
|
-
|
|
52
48
|
//#endregion
|
|
53
49
|
export { InMemoryCache };
|
|
50
|
+
|
|
54
51
|
//# sourceMappingURL=memory.js.map
|
package/dist/cache/memory.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"memory.js","names":[],"sources":["../../src/cache/memory.ts"],"sourcesContent":["import { BaseCache, type CacheFullKey, type CacheNamespace } from \"./base.js\";\n\nexport class InMemoryCache<V = unknown> extends BaseCache<V> {\n private cache: {\n [namespace: string]: {\n [key: string]: {\n enc: string;\n val: Uint8Array | string;\n exp: number | null;\n };\n };\n } = {};\n\n async get(keys: CacheFullKey[]): Promise<{ key: CacheFullKey; value: V }[]> {\n if (!keys.length) return [];\n const now = Date.now();\n return (\n await Promise.all(\n keys.map(\n async (fullKey): Promise<{ key: CacheFullKey; value: V }[]> => {\n const [namespace, key] = fullKey;\n const strNamespace = namespace.join(\",\");\n\n if (strNamespace in this.cache && key in this.cache[strNamespace]) {\n const cached = this.cache[strNamespace][key];\n if (cached.exp == null || now < cached.exp) {\n const value = await this.serde.loadsTyped(\n cached.enc,\n cached.val\n );\n return [{ key: fullKey, value }];\n } else {\n delete this.cache[strNamespace][key];\n }\n }\n\n return [];\n }\n )\n )\n ).flat();\n }\n\n async set(\n pairs: { key: CacheFullKey; value: V; ttl?: number }[]\n ): Promise<void> {\n const now = Date.now();\n for (const { key: fullKey, value, ttl } of pairs) {\n const [namespace, key] = fullKey;\n const strNamespace = namespace.join(\",\");\n const [enc, val] = await this.serde.dumpsTyped(value);\n const exp = ttl != null ? ttl * 1000 + now : null;\n\n this.cache[strNamespace] ??= {};\n this.cache[strNamespace][key] = { enc, val, exp };\n }\n }\n\n async clear(namespaces: CacheNamespace[]): Promise<void> {\n if (!namespaces.length) {\n this.cache = {};\n return;\n }\n\n for (const namespace of namespaces) {\n const strNamespace = namespace.join(\",\");\n if (strNamespace in this.cache) delete this.cache[strNamespace];\n }\n }\n}\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"memory.js","names":[],"sources":["../../src/cache/memory.ts"],"sourcesContent":["import { BaseCache, type CacheFullKey, type CacheNamespace } from \"./base.js\";\n\nexport class InMemoryCache<V = unknown> extends BaseCache<V> {\n private cache: {\n [namespace: string]: {\n [key: string]: {\n enc: string;\n val: Uint8Array | string;\n exp: number | null;\n };\n };\n } = {};\n\n async get(keys: CacheFullKey[]): Promise<{ key: CacheFullKey; value: V }[]> {\n if (!keys.length) return [];\n const now = Date.now();\n return (\n await Promise.all(\n keys.map(\n async (fullKey): Promise<{ key: CacheFullKey; value: V }[]> => {\n const [namespace, key] = fullKey;\n const strNamespace = namespace.join(\",\");\n\n if (strNamespace in this.cache && key in this.cache[strNamespace]) {\n const cached = this.cache[strNamespace][key];\n if (cached.exp == null || now < cached.exp) {\n const value = await this.serde.loadsTyped(\n cached.enc,\n cached.val\n );\n return [{ key: fullKey, value }];\n } else {\n delete this.cache[strNamespace][key];\n }\n }\n\n return [];\n }\n )\n )\n ).flat();\n }\n\n async set(\n pairs: { key: CacheFullKey; value: V; ttl?: number }[]\n ): Promise<void> {\n const now = Date.now();\n for (const { key: fullKey, value, ttl } of pairs) {\n const [namespace, key] = fullKey;\n const strNamespace = namespace.join(\",\");\n const [enc, val] = await this.serde.dumpsTyped(value);\n const exp = ttl != null ? ttl * 1000 + now : null;\n\n this.cache[strNamespace] ??= {};\n this.cache[strNamespace][key] = { enc, val, exp };\n }\n }\n\n async clear(namespaces: CacheNamespace[]): Promise<void> {\n if (!namespaces.length) {\n this.cache = {};\n return;\n }\n\n for (const namespace of namespaces) {\n const strNamespace = namespace.join(\",\");\n if (strNamespace in this.cache) delete this.cache[strNamespace];\n }\n }\n}\n"],"mappings":";;AAEA,IAAa,gBAAb,cAAgD,UAAa;CAC3D,QAQI,EAAE;CAEN,MAAM,IAAI,MAAkE;AAC1E,MAAI,CAAC,KAAK,OAAQ,QAAO,EAAE;EAC3B,MAAM,MAAM,KAAK,KAAK;AACtB,UACE,MAAM,QAAQ,IACZ,KAAK,IACH,OAAO,YAAwD;GAC7D,MAAM,CAAC,WAAW,OAAO;GACzB,MAAM,eAAe,UAAU,KAAK,IAAI;AAExC,OAAI,gBAAgB,KAAK,SAAS,OAAO,KAAK,MAAM,eAAe;IACjE,MAAM,SAAS,KAAK,MAAM,cAAc;AACxC,QAAI,OAAO,OAAO,QAAQ,MAAM,OAAO,IAKrC,QAAO,CAAC;KAAE,KAAK;KAAS,OAJV,MAAM,KAAK,MAAM,WAC7B,OAAO,KACP,OAAO,IACR;KAC8B,CAAC;QAEhC,QAAO,KAAK,MAAM,cAAc;;AAIpC,UAAO,EAAE;IAEZ,CACF,EACD,MAAM;;CAGV,MAAM,IACJ,OACe;EACf,MAAM,MAAM,KAAK,KAAK;AACtB,OAAK,MAAM,EAAE,KAAK,SAAS,OAAO,SAAS,OAAO;GAChD,MAAM,CAAC,WAAW,OAAO;GACzB,MAAM,eAAe,UAAU,KAAK,IAAI;GACxC,MAAM,CAAC,KAAK,OAAO,MAAM,KAAK,MAAM,WAAW,MAAM;GACrD,MAAM,MAAM,OAAO,OAAO,MAAM,MAAO,MAAM;AAE7C,QAAK,MAAM,kBAAkB,EAAE;AAC/B,QAAK,MAAM,cAAc,OAAO;IAAE;IAAK;IAAK;IAAK;;;CAIrD,MAAM,MAAM,YAA6C;AACvD,MAAI,CAAC,WAAW,QAAQ;AACtB,QAAK,QAAQ,EAAE;AACf;;AAGF,OAAK,MAAM,aAAa,YAAY;GAClC,MAAM,eAAe,UAAU,KAAK,IAAI;AACxC,OAAI,gBAAgB,KAAK,MAAO,QAAO,KAAK,MAAM"}
|
package/dist/id.cjs
CHANGED
|
@@ -1,6 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
const uuid = require_rolldown_runtime.__toESM(require("uuid"));
|
|
3
|
-
|
|
1
|
+
let uuid = require("uuid");
|
|
4
2
|
//#region src/id.ts
|
|
5
3
|
function uuid6(clockseq) {
|
|
6
4
|
return (0, uuid.v6)({ clockseq });
|
|
@@ -9,8 +7,8 @@ function uuid5(name, namespace) {
|
|
|
9
7
|
const namespaceBytes = namespace.replace(/-/g, "").match(/.{2}/g).map((byte) => parseInt(byte, 16));
|
|
10
8
|
return (0, uuid.v5)(name, new Uint8Array(namespaceBytes));
|
|
11
9
|
}
|
|
12
|
-
|
|
13
10
|
//#endregion
|
|
14
11
|
exports.uuid5 = uuid5;
|
|
15
12
|
exports.uuid6 = uuid6;
|
|
13
|
+
|
|
16
14
|
//# sourceMappingURL=id.cjs.map
|
package/dist/id.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"id.cjs","names":[],"sources":["../src/id.ts"],"sourcesContent":["import { v5, v6 } from \"uuid\";\n\nexport function uuid6(clockseq: number): string {\n return v6({ clockseq });\n}\n\n// Skip UUID validation check, since UUID6s\n// generated with negative clockseq are not\n// technically compliant, but still work.\n// See: https://github.com/uuidjs/uuid/issues/511\nexport function uuid5(name: string, namespace: string): string {\n const namespaceBytes = namespace\n .replace(/-/g, \"\")\n .match(/.{2}/g)!\n .map((byte) => parseInt(byte, 16));\n return v5(name, new Uint8Array(namespaceBytes));\n}\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"id.cjs","names":[],"sources":["../src/id.ts"],"sourcesContent":["import { v5, v6 } from \"uuid\";\n\nexport function uuid6(clockseq: number): string {\n return v6({ clockseq });\n}\n\n// Skip UUID validation check, since UUID6s\n// generated with negative clockseq are not\n// technically compliant, but still work.\n// See: https://github.com/uuidjs/uuid/issues/511\nexport function uuid5(name: string, namespace: string): string {\n const namespaceBytes = namespace\n .replace(/-/g, \"\")\n .match(/.{2}/g)!\n .map((byte) => parseInt(byte, 16));\n return v5(name, new Uint8Array(namespaceBytes));\n}\n"],"mappings":";;AAEA,SAAgB,MAAM,UAA0B;AAC9C,SAAA,GAAA,KAAA,IAAU,EAAE,UAAU,CAAC;;AAOzB,SAAgB,MAAM,MAAc,WAA2B;CAC7D,MAAM,iBAAiB,UACpB,QAAQ,MAAM,GAAG,CACjB,MAAM,QAAQ,CACd,KAAK,SAAS,SAAS,MAAM,GAAG,CAAC;AACpC,SAAA,GAAA,KAAA,IAAU,MAAM,IAAI,WAAW,eAAe,CAAC"}
|
package/dist/id.d.cts
CHANGED
|
@@ -1,9 +1,5 @@
|
|
|
1
1
|
//#region src/id.d.ts
|
|
2
2
|
declare function uuid6(clockseq: number): string;
|
|
3
|
-
// Skip UUID validation check, since UUID6s
|
|
4
|
-
// generated with negative clockseq are not
|
|
5
|
-
// technically compliant, but still work.
|
|
6
|
-
// See: https://github.com/uuidjs/uuid/issues/511
|
|
7
3
|
declare function uuid5(name: string, namespace: string): string;
|
|
8
4
|
//#endregion
|
|
9
5
|
export { uuid5, uuid6 };
|
package/dist/id.d.cts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"id.d.cts","names":[
|
|
1
|
+
{"version":3,"file":"id.d.cts","names":[],"sources":["../src/id.ts"],"mappings":";iBAEgB,KAAA,CAAM,QAAA;AAAA,iBAQN,KAAA,CAAM,IAAA,UAAc,SAAA"}
|
package/dist/id.d.ts
CHANGED
|
@@ -1,9 +1,5 @@
|
|
|
1
1
|
//#region src/id.d.ts
|
|
2
2
|
declare function uuid6(clockseq: number): string;
|
|
3
|
-
// Skip UUID validation check, since UUID6s
|
|
4
|
-
// generated with negative clockseq are not
|
|
5
|
-
// technically compliant, but still work.
|
|
6
|
-
// See: https://github.com/uuidjs/uuid/issues/511
|
|
7
3
|
declare function uuid5(name: string, namespace: string): string;
|
|
8
4
|
//#endregion
|
|
9
5
|
export { uuid5, uuid6 };
|
package/dist/id.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"id.d.ts","names":[
|
|
1
|
+
{"version":3,"file":"id.d.ts","names":[],"sources":["../src/id.ts"],"mappings":";iBAEgB,KAAA,CAAM,QAAA;AAAA,iBAQN,KAAA,CAAM,IAAA,UAAc,SAAA"}
|
package/dist/id.js
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import { v5, v6 } from "uuid";
|
|
2
|
-
|
|
3
2
|
//#region src/id.ts
|
|
4
3
|
function uuid6(clockseq) {
|
|
5
4
|
return v6({ clockseq });
|
|
@@ -8,7 +7,7 @@ function uuid5(name, namespace) {
|
|
|
8
7
|
const namespaceBytes = namespace.replace(/-/g, "").match(/.{2}/g).map((byte) => parseInt(byte, 16));
|
|
9
8
|
return v5(name, new Uint8Array(namespaceBytes));
|
|
10
9
|
}
|
|
11
|
-
|
|
12
10
|
//#endregion
|
|
13
11
|
export { uuid5, uuid6 };
|
|
12
|
+
|
|
14
13
|
//# sourceMappingURL=id.js.map
|
package/dist/id.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"id.js","names":[],"sources":["../src/id.ts"],"sourcesContent":["import { v5, v6 } from \"uuid\";\n\nexport function uuid6(clockseq: number): string {\n return v6({ clockseq });\n}\n\n// Skip UUID validation check, since UUID6s\n// generated with negative clockseq are not\n// technically compliant, but still work.\n// See: https://github.com/uuidjs/uuid/issues/511\nexport function uuid5(name: string, namespace: string): string {\n const namespaceBytes = namespace\n .replace(/-/g, \"\")\n .match(/.{2}/g)!\n .map((byte) => parseInt(byte, 16));\n return v5(name, new Uint8Array(namespaceBytes));\n}\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"id.js","names":[],"sources":["../src/id.ts"],"sourcesContent":["import { v5, v6 } from \"uuid\";\n\nexport function uuid6(clockseq: number): string {\n return v6({ clockseq });\n}\n\n// Skip UUID validation check, since UUID6s\n// generated with negative clockseq are not\n// technically compliant, but still work.\n// See: https://github.com/uuidjs/uuid/issues/511\nexport function uuid5(name: string, namespace: string): string {\n const namespaceBytes = namespace\n .replace(/-/g, \"\")\n .match(/.{2}/g)!\n .map((byte) => parseInt(byte, 16));\n return v5(name, new Uint8Array(namespaceBytes));\n}\n"],"mappings":";;AAEA,SAAgB,MAAM,UAA0B;AAC9C,QAAO,GAAG,EAAE,UAAU,CAAC;;AAOzB,SAAgB,MAAM,MAAc,WAA2B;CAC7D,MAAM,iBAAiB,UACpB,QAAQ,MAAM,GAAG,CACjB,MAAM,QAAQ,CACd,KAAK,SAAS,SAAS,MAAM,GAAG,CAAC;AACpC,QAAO,GAAG,MAAM,IAAI,WAAW,eAAe,CAAC"}
|
package/dist/index.cjs
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
|
-
|
|
2
|
-
const
|
|
3
|
-
const
|
|
4
|
-
const
|
|
5
|
-
const
|
|
6
|
-
const
|
|
7
|
-
const
|
|
8
|
-
const
|
|
9
|
-
const
|
|
10
|
-
require(
|
|
11
|
-
|
|
1
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
|
+
const require_id = require("./id.cjs");
|
|
3
|
+
const require_types = require("./serde/types.cjs");
|
|
4
|
+
const require_base = require("./base.cjs");
|
|
5
|
+
const require_memory = require("./memory.cjs");
|
|
6
|
+
const require_base$1 = require("./store/base.cjs");
|
|
7
|
+
const require_batch = require("./store/batch.cjs");
|
|
8
|
+
const require_memory$1 = require("./store/memory.cjs");
|
|
9
|
+
const require_base$2 = require("./cache/base.cjs");
|
|
10
|
+
const require_memory$2 = require("./cache/memory.cjs");
|
|
11
|
+
require("./cache/index.cjs");
|
|
12
12
|
exports.AsyncBatchedStore = require_batch.AsyncBatchedStore;
|
|
13
13
|
exports.BaseCache = require_base$2.BaseCache;
|
|
14
14
|
exports.BaseCheckpointSaver = require_base.BaseCheckpointSaver;
|
|
@@ -33,4 +33,4 @@ exports.getTextAtPath = require_base$1.getTextAtPath;
|
|
|
33
33
|
exports.maxChannelVersion = require_base.maxChannelVersion;
|
|
34
34
|
exports.tokenizePath = require_base$1.tokenizePath;
|
|
35
35
|
exports.uuid5 = require_id.uuid5;
|
|
36
|
-
exports.uuid6 = require_id.uuid6;
|
|
36
|
+
exports.uuid6 = require_id.uuid6;
|
package/dist/index.js
CHANGED
|
@@ -8,5 +8,4 @@ import { InMemoryStore, MemoryStore } from "./store/memory.js";
|
|
|
8
8
|
import { BaseCache } from "./cache/base.js";
|
|
9
9
|
import { InMemoryCache } from "./cache/memory.js";
|
|
10
10
|
import "./cache/index.js";
|
|
11
|
-
|
|
12
|
-
export { AsyncBatchedStore, BaseCache, BaseCheckpointSaver, BaseStore, ERROR, INTERRUPT, InMemoryCache, InMemoryStore, InvalidNamespaceError, MemorySaver, MemoryStore, RESUME, SCHEDULED, TASKS, WRITES_IDX_MAP, compareChannelVersions, copyCheckpoint, deepCopy, emptyCheckpoint, getCheckpointId, getTextAtPath, maxChannelVersion, tokenizePath, uuid5, uuid6 };
|
|
11
|
+
export { AsyncBatchedStore, BaseCache, BaseCheckpointSaver, BaseStore, ERROR, INTERRUPT, InMemoryCache, InMemoryStore, InvalidNamespaceError, MemorySaver, MemoryStore, RESUME, SCHEDULED, TASKS, WRITES_IDX_MAP, compareChannelVersions, copyCheckpoint, deepCopy, emptyCheckpoint, getCheckpointId, getTextAtPath, maxChannelVersion, tokenizePath, uuid5, uuid6 };
|
package/dist/memory.cjs
CHANGED
|
@@ -1,6 +1,5 @@
|
|
|
1
|
-
const require_types = require(
|
|
2
|
-
const require_base = require(
|
|
3
|
-
|
|
1
|
+
const require_types = require("./serde/types.cjs");
|
|
2
|
+
const require_base = require("./base.cjs");
|
|
4
3
|
//#region src/memory.ts
|
|
5
4
|
function _generateKey(threadId, checkpointNamespace, checkpointId) {
|
|
6
5
|
return JSON.stringify([
|
|
@@ -68,8 +67,7 @@ var MemorySaver = class extends require_base.BaseCheckpointSaver {
|
|
|
68
67
|
const checkpoints = this.storage[thread_id]?.[checkpoint_ns];
|
|
69
68
|
if (checkpoints !== void 0) {
|
|
70
69
|
checkpoint_id = Object.keys(checkpoints).sort((a, b) => b.localeCompare(a))[0];
|
|
71
|
-
const
|
|
72
|
-
const [checkpoint, metadata, parentCheckpointId] = saved;
|
|
70
|
+
const [checkpoint, metadata, parentCheckpointId] = checkpoints[checkpoint_id];
|
|
73
71
|
const key = _generateKey(thread_id, checkpoint_ns, checkpoint_id);
|
|
74
72
|
const deserializedCheckpoint = await this.serde.loadsTyped("json", checkpoint);
|
|
75
73
|
if (deserializedCheckpoint.v < 4 && parentCheckpointId !== void 0) await this._migratePendingSends(deserializedCheckpoint, thread_id, checkpoint_ns, parentCheckpointId);
|
|
@@ -98,7 +96,6 @@ var MemorySaver = class extends require_base.BaseCheckpointSaver {
|
|
|
98
96
|
return checkpointTuple;
|
|
99
97
|
}
|
|
100
98
|
}
|
|
101
|
-
return void 0;
|
|
102
99
|
}
|
|
103
100
|
async *list(config, options) {
|
|
104
101
|
let { before, limit, filter } = options ?? {};
|
|
@@ -113,7 +110,7 @@ var MemorySaver = class extends require_base.BaseCheckpointSaver {
|
|
|
113
110
|
if (configCheckpointId && checkpointId !== configCheckpointId) continue;
|
|
114
111
|
if (before && before.configurable?.checkpoint_id && checkpointId >= before.configurable.checkpoint_id) continue;
|
|
115
112
|
const metadata = await this.serde.loadsTyped("json", metadataStr);
|
|
116
|
-
if (filter && !Object.entries(filter).every(([key
|
|
113
|
+
if (filter && !Object.entries(filter).every(([key, value]) => metadata[key] === value)) continue;
|
|
117
114
|
if (limit !== void 0) {
|
|
118
115
|
if (limit <= 0) break;
|
|
119
116
|
limit -= 1;
|
|
@@ -193,7 +190,7 @@ var MemorySaver = class extends require_base.BaseCheckpointSaver {
|
|
|
193
190
|
for (const key of Object.keys(this.writes)) if (_parseKey(key).threadId === threadId) delete this.writes[key];
|
|
194
191
|
}
|
|
195
192
|
};
|
|
196
|
-
|
|
197
193
|
//#endregion
|
|
198
194
|
exports.MemorySaver = MemorySaver;
|
|
195
|
+
|
|
199
196
|
//# sourceMappingURL=memory.cjs.map
|