cojson 0.9.12 → 0.9.18
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/.turbo/turbo-build.log +3 -3
- package/CHANGELOG.md +12 -0
- package/dist/native/PeerState.js +5 -1
- package/dist/native/PeerState.js.map +1 -1
- package/dist/native/base64url.js +0 -6
- package/dist/native/base64url.js.map +1 -1
- package/dist/native/coValueCore.js +4 -10
- package/dist/native/coValueCore.js.map +1 -1
- package/dist/native/coValueState.js +8 -4
- package/dist/native/coValueState.js.map +1 -1
- package/dist/native/coValues/account.js +2 -1
- package/dist/native/coValues/account.js.map +1 -1
- package/dist/native/coValues/coList.js +0 -7
- package/dist/native/coValues/coList.js.map +1 -1
- package/dist/native/coValues/coStream.js +3 -8
- package/dist/native/coValues/coStream.js.map +1 -1
- package/dist/native/coValues/group.js +3 -2
- package/dist/native/coValues/group.js.map +1 -1
- package/dist/native/crypto/PureJSCrypto.js +2 -1
- package/dist/native/crypto/PureJSCrypto.js.map +1 -1
- package/dist/native/crypto/WasmCrypto.js +2 -2
- package/dist/native/crypto/WasmCrypto.js.map +1 -1
- package/dist/native/crypto/crypto.js +2 -4
- package/dist/native/crypto/crypto.js.map +1 -1
- package/dist/native/exports.js +2 -1
- package/dist/native/exports.js.map +1 -1
- package/dist/native/localNode.js +7 -6
- package/dist/native/localNode.js.map +1 -1
- package/dist/native/logger.js +58 -0
- package/dist/native/logger.js.map +1 -0
- package/dist/native/permissions.js +8 -8
- package/dist/native/permissions.js.map +1 -1
- package/dist/native/storage/FileSystem.js +0 -10
- package/dist/native/storage/FileSystem.js.map +1 -1
- package/dist/native/storage/index.js +12 -19
- package/dist/native/storage/index.js.map +1 -1
- package/dist/native/sync.js +42 -29
- package/dist/native/sync.js.map +1 -1
- package/dist/web/PeerState.js +5 -1
- package/dist/web/PeerState.js.map +1 -1
- package/dist/web/base64url.js +0 -6
- package/dist/web/base64url.js.map +1 -1
- package/dist/web/coValueCore.js +4 -10
- package/dist/web/coValueCore.js.map +1 -1
- package/dist/web/coValueState.js +8 -4
- package/dist/web/coValueState.js.map +1 -1
- package/dist/web/coValues/account.js +2 -1
- package/dist/web/coValues/account.js.map +1 -1
- package/dist/web/coValues/coList.js +0 -7
- package/dist/web/coValues/coList.js.map +1 -1
- package/dist/web/coValues/coStream.js +3 -8
- package/dist/web/coValues/coStream.js.map +1 -1
- package/dist/web/coValues/group.js +3 -2
- package/dist/web/coValues/group.js.map +1 -1
- package/dist/web/crypto/PureJSCrypto.js +2 -1
- package/dist/web/crypto/PureJSCrypto.js.map +1 -1
- package/dist/web/crypto/WasmCrypto.js +2 -2
- package/dist/web/crypto/WasmCrypto.js.map +1 -1
- package/dist/web/crypto/crypto.js +2 -4
- package/dist/web/crypto/crypto.js.map +1 -1
- package/dist/web/exports.js +2 -1
- package/dist/web/exports.js.map +1 -1
- package/dist/web/localNode.js +7 -6
- package/dist/web/localNode.js.map +1 -1
- package/dist/web/logger.js +58 -0
- package/dist/web/logger.js.map +1 -0
- package/dist/web/permissions.js +8 -8
- package/dist/web/permissions.js.map +1 -1
- package/dist/web/storage/FileSystem.js +0 -10
- package/dist/web/storage/FileSystem.js.map +1 -1
- package/dist/web/storage/index.js +12 -19
- package/dist/web/storage/index.js.map +1 -1
- package/dist/web/sync.js +42 -29
- package/dist/web/sync.js.map +1 -1
- package/package.json +1 -1
- package/src/PeerState.ts +5 -1
- package/src/base64url.ts +1 -6
- package/src/coValueCore.ts +4 -10
- package/src/coValueState.ts +8 -4
- package/src/coValues/account.ts +2 -1
- package/src/coValues/coList.ts +0 -7
- package/src/coValues/coStream.ts +3 -8
- package/src/coValues/group.ts +3 -2
- package/src/crypto/PureJSCrypto.ts +4 -1
- package/src/crypto/WasmCrypto.ts +4 -2
- package/src/crypto/crypto.ts +2 -4
- package/src/exports.ts +4 -1
- package/src/localNode.ts +9 -9
- package/src/logger.ts +80 -0
- package/src/permissions.ts +10 -16
- package/src/storage/FileSystem.ts +0 -12
- package/src/storage/index.ts +18 -33
- package/src/sync.ts +49 -39
- package/src/tests/PeerState.test.ts +0 -3
- package/src/tests/logger.test.ts +149 -0
|
@@ -49,12 +49,9 @@ describe("PeerState", () => {
|
|
|
49
49
|
|
|
50
50
|
test("should perform graceful shutdown", () => {
|
|
51
51
|
const { mockPeer, peerState } = setup();
|
|
52
|
-
const consoleSpy = vi.spyOn(console, "debug").mockImplementation(() => {});
|
|
53
52
|
peerState.gracefulShutdown();
|
|
54
53
|
expect(mockPeer.outgoing.close).toHaveBeenCalled();
|
|
55
54
|
expect(peerState.closed).toBe(true);
|
|
56
|
-
expect(consoleSpy).toHaveBeenCalledWith("Gracefully closing", "test-peer");
|
|
57
|
-
consoleSpy.mockRestore();
|
|
58
55
|
});
|
|
59
56
|
|
|
60
57
|
test("should empty the queue when closing", async () => {
|
|
@@ -0,0 +1,149 @@
|
|
|
1
|
+
import { describe, expect, test, vi } from "vitest";
|
|
2
|
+
import { LogLevel, Logger } from "../logger";
|
|
3
|
+
|
|
4
|
+
describe("Logger", () => {
|
|
5
|
+
describe("Log Level Filtering", () => {
|
|
6
|
+
test("should respect log level hierarchy", () => {
|
|
7
|
+
const mockLogSystem = {
|
|
8
|
+
debug: vi.fn(),
|
|
9
|
+
info: vi.fn(),
|
|
10
|
+
warn: vi.fn(),
|
|
11
|
+
error: vi.fn(),
|
|
12
|
+
};
|
|
13
|
+
|
|
14
|
+
const logger = new Logger(LogLevel.WARN, mockLogSystem);
|
|
15
|
+
|
|
16
|
+
logger.debug("Debug message");
|
|
17
|
+
logger.info("Info message");
|
|
18
|
+
logger.warn("Warning message");
|
|
19
|
+
logger.error("Error message");
|
|
20
|
+
|
|
21
|
+
expect(mockLogSystem.debug).not.toHaveBeenCalled();
|
|
22
|
+
expect(mockLogSystem.info).not.toHaveBeenCalled();
|
|
23
|
+
expect(mockLogSystem.warn).toHaveBeenCalledWith(
|
|
24
|
+
"Warning message",
|
|
25
|
+
undefined,
|
|
26
|
+
);
|
|
27
|
+
expect(mockLogSystem.error).toHaveBeenCalledWith(
|
|
28
|
+
"Error message",
|
|
29
|
+
undefined,
|
|
30
|
+
);
|
|
31
|
+
});
|
|
32
|
+
|
|
33
|
+
test("should pass additional arguments to log system", () => {
|
|
34
|
+
const mockLogSystem = {
|
|
35
|
+
debug: vi.fn(),
|
|
36
|
+
info: vi.fn(),
|
|
37
|
+
warn: vi.fn(),
|
|
38
|
+
error: vi.fn(),
|
|
39
|
+
};
|
|
40
|
+
|
|
41
|
+
const logger = new Logger(LogLevel.DEBUG, mockLogSystem);
|
|
42
|
+
|
|
43
|
+
logger.debug("Debug message", { foo: "bar" });
|
|
44
|
+
|
|
45
|
+
expect(mockLogSystem.debug).toHaveBeenCalledWith("Debug message", {
|
|
46
|
+
foo: "bar",
|
|
47
|
+
});
|
|
48
|
+
});
|
|
49
|
+
});
|
|
50
|
+
|
|
51
|
+
describe("Log System Configuration", () => {
|
|
52
|
+
test("should allow changing log level at runtime", () => {
|
|
53
|
+
const mockLogSystem = {
|
|
54
|
+
debug: vi.fn(),
|
|
55
|
+
info: vi.fn(),
|
|
56
|
+
warn: vi.fn(),
|
|
57
|
+
error: vi.fn(),
|
|
58
|
+
};
|
|
59
|
+
|
|
60
|
+
const logger = new Logger(LogLevel.ERROR, mockLogSystem);
|
|
61
|
+
|
|
62
|
+
logger.warn("Warning 1"); // Should not log
|
|
63
|
+
expect(mockLogSystem.warn).not.toHaveBeenCalled();
|
|
64
|
+
|
|
65
|
+
logger.setLevel(LogLevel.WARN);
|
|
66
|
+
logger.warn("Warning 2"); // Should log
|
|
67
|
+
expect(mockLogSystem.warn).toHaveBeenCalledWith("Warning 2", undefined);
|
|
68
|
+
});
|
|
69
|
+
|
|
70
|
+
test("should allow changing log system at runtime", () => {
|
|
71
|
+
const mockLogSystem1 = {
|
|
72
|
+
debug: vi.fn(),
|
|
73
|
+
info: vi.fn(),
|
|
74
|
+
warn: vi.fn(),
|
|
75
|
+
error: vi.fn(),
|
|
76
|
+
};
|
|
77
|
+
|
|
78
|
+
const mockLogSystem2 = {
|
|
79
|
+
debug: vi.fn(),
|
|
80
|
+
info: vi.fn(),
|
|
81
|
+
warn: vi.fn(),
|
|
82
|
+
error: vi.fn(),
|
|
83
|
+
};
|
|
84
|
+
|
|
85
|
+
const logger = new Logger(LogLevel.INFO, mockLogSystem1);
|
|
86
|
+
|
|
87
|
+
logger.info("Message 1");
|
|
88
|
+
expect(mockLogSystem1.info).toHaveBeenCalledWith("Message 1", undefined);
|
|
89
|
+
expect(mockLogSystem2.info).not.toHaveBeenCalled();
|
|
90
|
+
|
|
91
|
+
logger.setLogSystem(mockLogSystem2);
|
|
92
|
+
logger.info("Message 2");
|
|
93
|
+
expect(mockLogSystem2.info).toHaveBeenCalledWith("Message 2", undefined);
|
|
94
|
+
expect(mockLogSystem1.info).toHaveBeenCalledTimes(1);
|
|
95
|
+
});
|
|
96
|
+
});
|
|
97
|
+
|
|
98
|
+
describe("Default Console Log System", () => {
|
|
99
|
+
test("should use console methods by default", () => {
|
|
100
|
+
const consoleSpy = {
|
|
101
|
+
debug: vi.spyOn(console, "debug").mockImplementation(() => {}),
|
|
102
|
+
info: vi.spyOn(console, "info").mockImplementation(() => {}),
|
|
103
|
+
warn: vi.spyOn(console, "warn").mockImplementation(() => {}),
|
|
104
|
+
error: vi.spyOn(console, "error").mockImplementation(() => {}),
|
|
105
|
+
};
|
|
106
|
+
|
|
107
|
+
const logger = new Logger();
|
|
108
|
+
logger.setLevel(LogLevel.DEBUG);
|
|
109
|
+
const testMessage = "Test message";
|
|
110
|
+
const testArgs = { data: "test" };
|
|
111
|
+
|
|
112
|
+
logger.debug(testMessage, testArgs);
|
|
113
|
+
logger.info(testMessage, testArgs);
|
|
114
|
+
logger.warn(testMessage, testArgs);
|
|
115
|
+
logger.error(testMessage, testArgs);
|
|
116
|
+
|
|
117
|
+
expect(consoleSpy.debug).toHaveBeenCalledWith(testMessage, testArgs);
|
|
118
|
+
expect(consoleSpy.info).toHaveBeenCalledWith(testMessage, testArgs);
|
|
119
|
+
expect(consoleSpy.warn).toHaveBeenCalledWith(testMessage, testArgs);
|
|
120
|
+
expect(consoleSpy.error).toHaveBeenCalledWith(testMessage, testArgs);
|
|
121
|
+
|
|
122
|
+
// Cleanup
|
|
123
|
+
Object.values(consoleSpy).forEach((spy) => spy.mockRestore());
|
|
124
|
+
});
|
|
125
|
+
});
|
|
126
|
+
|
|
127
|
+
describe("Log Level NONE", () => {
|
|
128
|
+
test("should not log anything when level is NONE", () => {
|
|
129
|
+
const mockLogSystem = {
|
|
130
|
+
debug: vi.fn(),
|
|
131
|
+
info: vi.fn(),
|
|
132
|
+
warn: vi.fn(),
|
|
133
|
+
error: vi.fn(),
|
|
134
|
+
};
|
|
135
|
+
|
|
136
|
+
const logger = new Logger(LogLevel.NONE, mockLogSystem);
|
|
137
|
+
|
|
138
|
+
logger.debug("Debug message");
|
|
139
|
+
logger.info("Info message");
|
|
140
|
+
logger.warn("Warning message");
|
|
141
|
+
logger.error("Error message");
|
|
142
|
+
|
|
143
|
+
expect(mockLogSystem.debug).not.toHaveBeenCalled();
|
|
144
|
+
expect(mockLogSystem.info).not.toHaveBeenCalled();
|
|
145
|
+
expect(mockLogSystem.warn).not.toHaveBeenCalled();
|
|
146
|
+
expect(mockLogSystem.error).not.toHaveBeenCalled();
|
|
147
|
+
});
|
|
148
|
+
});
|
|
149
|
+
});
|