@langchain/langgraph-checkpoint 0.0.2 → 0.0.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/serde/jsonplus.cjs +49 -19
- package/dist/serde/jsonplus.js +49 -19
- package/package.json +1 -1
package/dist/serde/jsonplus.cjs
CHANGED
|
@@ -4,6 +4,52 @@ exports.JsonPlusSerializer = void 0;
|
|
|
4
4
|
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
5
5
|
/* eslint-disable no-instanceof/no-instanceof */
|
|
6
6
|
const load_1 = require("@langchain/core/load");
|
|
7
|
+
function isLangChainSerializable(value) {
|
|
8
|
+
return (typeof value.lc_serializable === "boolean" && Array.isArray(value.lc_id));
|
|
9
|
+
}
|
|
10
|
+
function isLangChainSerializedObject(value) {
|
|
11
|
+
return (value !== null &&
|
|
12
|
+
value.lc === 1 &&
|
|
13
|
+
value.type === "constructor" &&
|
|
14
|
+
Array.isArray(value.id));
|
|
15
|
+
}
|
|
16
|
+
const _serialize = (value, seen = new WeakSet()) => {
|
|
17
|
+
const defaultValue = _default("", value);
|
|
18
|
+
if (defaultValue === null) {
|
|
19
|
+
return "null";
|
|
20
|
+
}
|
|
21
|
+
else if (typeof defaultValue === "string") {
|
|
22
|
+
return JSON.stringify(defaultValue);
|
|
23
|
+
}
|
|
24
|
+
else if (typeof defaultValue === "number" ||
|
|
25
|
+
typeof defaultValue === "boolean") {
|
|
26
|
+
return defaultValue.toString();
|
|
27
|
+
}
|
|
28
|
+
else if (typeof defaultValue === "object") {
|
|
29
|
+
if (seen.has(defaultValue)) {
|
|
30
|
+
throw new TypeError("Circular reference detected");
|
|
31
|
+
}
|
|
32
|
+
seen.add(defaultValue);
|
|
33
|
+
if (Array.isArray(defaultValue)) {
|
|
34
|
+
const result = `[${defaultValue
|
|
35
|
+
.map((item) => _serialize(item, seen))
|
|
36
|
+
.join(",")}]`;
|
|
37
|
+
seen.delete(defaultValue);
|
|
38
|
+
return result;
|
|
39
|
+
}
|
|
40
|
+
else if (isLangChainSerializable(defaultValue)) {
|
|
41
|
+
return JSON.stringify(defaultValue);
|
|
42
|
+
}
|
|
43
|
+
else {
|
|
44
|
+
const entries = Object.entries(defaultValue).map(([k, v]) => `${JSON.stringify(k)}:${_serialize(v, seen)}`);
|
|
45
|
+
const result = `{${entries.join(",")}}`;
|
|
46
|
+
seen.delete(defaultValue);
|
|
47
|
+
return result;
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
// Only be reached for functions or symbols
|
|
51
|
+
return JSON.stringify(defaultValue);
|
|
52
|
+
};
|
|
7
53
|
async function _reviver(value) {
|
|
8
54
|
if (value && typeof value === "object") {
|
|
9
55
|
if (value.lc === 2 && value.type === "undefined") {
|
|
@@ -42,7 +88,7 @@ async function _reviver(value) {
|
|
|
42
88
|
return value;
|
|
43
89
|
}
|
|
44
90
|
}
|
|
45
|
-
else if (value
|
|
91
|
+
else if (isLangChainSerializedObject(value)) {
|
|
46
92
|
return (0, load_1.load)(JSON.stringify(value));
|
|
47
93
|
}
|
|
48
94
|
else if (Array.isArray(value)) {
|
|
@@ -94,24 +140,8 @@ function _default(_key, obj) {
|
|
|
94
140
|
}
|
|
95
141
|
class JsonPlusSerializer {
|
|
96
142
|
_dumps(obj) {
|
|
97
|
-
const
|
|
98
|
-
|
|
99
|
-
if (Array.isArray(value)) {
|
|
100
|
-
// Handle arrays
|
|
101
|
-
return value.map((item) => _default(key, item));
|
|
102
|
-
}
|
|
103
|
-
else {
|
|
104
|
-
// Handle objects
|
|
105
|
-
const serialized = {};
|
|
106
|
-
for (const [k, v] of Object.entries(value)) {
|
|
107
|
-
serialized[k] = _default(k, v);
|
|
108
|
-
}
|
|
109
|
-
return serialized;
|
|
110
|
-
}
|
|
111
|
-
}
|
|
112
|
-
return _default(key, value);
|
|
113
|
-
});
|
|
114
|
-
return new TextEncoder().encode(jsonString);
|
|
143
|
+
const encoder = new TextEncoder();
|
|
144
|
+
return encoder.encode(_serialize(obj));
|
|
115
145
|
}
|
|
116
146
|
dumpsTyped(obj) {
|
|
117
147
|
if (obj instanceof Uint8Array) {
|
package/dist/serde/jsonplus.js
CHANGED
|
@@ -1,6 +1,52 @@
|
|
|
1
1
|
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
2
2
|
/* eslint-disable no-instanceof/no-instanceof */
|
|
3
3
|
import { load } from "@langchain/core/load";
|
|
4
|
+
function isLangChainSerializable(value) {
|
|
5
|
+
return (typeof value.lc_serializable === "boolean" && Array.isArray(value.lc_id));
|
|
6
|
+
}
|
|
7
|
+
function isLangChainSerializedObject(value) {
|
|
8
|
+
return (value !== null &&
|
|
9
|
+
value.lc === 1 &&
|
|
10
|
+
value.type === "constructor" &&
|
|
11
|
+
Array.isArray(value.id));
|
|
12
|
+
}
|
|
13
|
+
const _serialize = (value, seen = new WeakSet()) => {
|
|
14
|
+
const defaultValue = _default("", value);
|
|
15
|
+
if (defaultValue === null) {
|
|
16
|
+
return "null";
|
|
17
|
+
}
|
|
18
|
+
else if (typeof defaultValue === "string") {
|
|
19
|
+
return JSON.stringify(defaultValue);
|
|
20
|
+
}
|
|
21
|
+
else if (typeof defaultValue === "number" ||
|
|
22
|
+
typeof defaultValue === "boolean") {
|
|
23
|
+
return defaultValue.toString();
|
|
24
|
+
}
|
|
25
|
+
else if (typeof defaultValue === "object") {
|
|
26
|
+
if (seen.has(defaultValue)) {
|
|
27
|
+
throw new TypeError("Circular reference detected");
|
|
28
|
+
}
|
|
29
|
+
seen.add(defaultValue);
|
|
30
|
+
if (Array.isArray(defaultValue)) {
|
|
31
|
+
const result = `[${defaultValue
|
|
32
|
+
.map((item) => _serialize(item, seen))
|
|
33
|
+
.join(",")}]`;
|
|
34
|
+
seen.delete(defaultValue);
|
|
35
|
+
return result;
|
|
36
|
+
}
|
|
37
|
+
else if (isLangChainSerializable(defaultValue)) {
|
|
38
|
+
return JSON.stringify(defaultValue);
|
|
39
|
+
}
|
|
40
|
+
else {
|
|
41
|
+
const entries = Object.entries(defaultValue).map(([k, v]) => `${JSON.stringify(k)}:${_serialize(v, seen)}`);
|
|
42
|
+
const result = `{${entries.join(",")}}`;
|
|
43
|
+
seen.delete(defaultValue);
|
|
44
|
+
return result;
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
// Only be reached for functions or symbols
|
|
48
|
+
return JSON.stringify(defaultValue);
|
|
49
|
+
};
|
|
4
50
|
async function _reviver(value) {
|
|
5
51
|
if (value && typeof value === "object") {
|
|
6
52
|
if (value.lc === 2 && value.type === "undefined") {
|
|
@@ -39,7 +85,7 @@ async function _reviver(value) {
|
|
|
39
85
|
return value;
|
|
40
86
|
}
|
|
41
87
|
}
|
|
42
|
-
else if (value
|
|
88
|
+
else if (isLangChainSerializedObject(value)) {
|
|
43
89
|
return load(JSON.stringify(value));
|
|
44
90
|
}
|
|
45
91
|
else if (Array.isArray(value)) {
|
|
@@ -91,24 +137,8 @@ function _default(_key, obj) {
|
|
|
91
137
|
}
|
|
92
138
|
export class JsonPlusSerializer {
|
|
93
139
|
_dumps(obj) {
|
|
94
|
-
const
|
|
95
|
-
|
|
96
|
-
if (Array.isArray(value)) {
|
|
97
|
-
// Handle arrays
|
|
98
|
-
return value.map((item) => _default(key, item));
|
|
99
|
-
}
|
|
100
|
-
else {
|
|
101
|
-
// Handle objects
|
|
102
|
-
const serialized = {};
|
|
103
|
-
for (const [k, v] of Object.entries(value)) {
|
|
104
|
-
serialized[k] = _default(k, v);
|
|
105
|
-
}
|
|
106
|
-
return serialized;
|
|
107
|
-
}
|
|
108
|
-
}
|
|
109
|
-
return _default(key, value);
|
|
110
|
-
});
|
|
111
|
-
return new TextEncoder().encode(jsonString);
|
|
140
|
+
const encoder = new TextEncoder();
|
|
141
|
+
return encoder.encode(_serialize(obj));
|
|
112
142
|
}
|
|
113
143
|
dumpsTyped(obj) {
|
|
114
144
|
if (obj instanceof Uint8Array) {
|