@verdant-web/common 1.12.0 → 1.13.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/cjs/indexes.d.ts +1 -0
- package/dist/cjs/indexes.js +5 -1
- package/dist/cjs/indexes.js.map +1 -1
- package/dist/cjs/migration.d.ts +7 -0
- package/dist/cjs/migration.js +53 -9
- package/dist/cjs/migration.js.map +1 -1
- package/dist/cjs/oids.d.ts +2 -0
- package/dist/cjs/oids.js +30 -4
- package/dist/cjs/oids.js.map +1 -1
- package/dist/cjs/oids.test.js +3 -0
- package/dist/cjs/oids.test.js.map +1 -1
- package/dist/cjs/operation.js +12 -3
- package/dist/cjs/operation.js.map +1 -1
- package/dist/cjs/operation.test.js +151 -1
- package/dist/cjs/operation.test.js.map +1 -1
- package/dist/cjs/schema/defaults.test.js +3 -3
- package/dist/cjs/schema/defaults.test.js.map +1 -1
- package/dist/cjs/schema/{defaults.d.ts → fields.d.ts} +3 -0
- package/dist/cjs/schema/{defaults.js → fields.js} +48 -3
- package/dist/cjs/schema/fields.js.map +1 -0
- package/dist/cjs/schema/index.d.ts +1 -1
- package/dist/cjs/schema/index.js +1 -1
- package/dist/cjs/schema/index.js.map +1 -1
- package/dist/cjs/schema/types/fields.d.ts +6 -0
- package/dist/cjs/schema/validation.d.ts +3 -0
- package/dist/cjs/schema/validation.js +87 -0
- package/dist/cjs/schema/validation.js.map +1 -0
- package/dist/cjs/timestamp.test.js +11 -0
- package/dist/cjs/timestamp.test.js.map +1 -1
- package/dist/cjs/utils.d.ts +5 -1
- package/dist/cjs/utils.js +9 -5
- package/dist/cjs/utils.js.map +1 -1
- package/dist/esm/indexes.d.ts +1 -0
- package/dist/esm/indexes.js +4 -0
- package/dist/esm/indexes.js.map +1 -1
- package/dist/esm/migration.d.ts +7 -0
- package/dist/esm/migration.js +54 -10
- package/dist/esm/migration.js.map +1 -1
- package/dist/esm/oids.d.ts +2 -0
- package/dist/esm/oids.js +27 -3
- package/dist/esm/oids.js.map +1 -1
- package/dist/esm/oids.test.js +4 -1
- package/dist/esm/oids.test.js.map +1 -1
- package/dist/esm/operation.js +13 -4
- package/dist/esm/operation.js.map +1 -1
- package/dist/esm/operation.test.js +151 -1
- package/dist/esm/operation.test.js.map +1 -1
- package/dist/esm/schema/defaults.test.js +1 -1
- package/dist/esm/schema/defaults.test.js.map +1 -1
- package/dist/esm/schema/{defaults.d.ts → fields.d.ts} +3 -0
- package/dist/esm/schema/{defaults.js → fields.js} +44 -2
- package/dist/esm/schema/fields.js.map +1 -0
- package/dist/esm/schema/index.d.ts +1 -1
- package/dist/esm/schema/index.js +1 -1
- package/dist/esm/schema/index.js.map +1 -1
- package/dist/esm/schema/types/fields.d.ts +6 -0
- package/dist/esm/schema/validation.d.ts +3 -0
- package/dist/esm/schema/validation.js +82 -0
- package/dist/esm/schema/validation.js.map +1 -0
- package/dist/esm/timestamp.test.js +12 -1
- package/dist/esm/timestamp.test.js.map +1 -1
- package/dist/esm/utils.d.ts +5 -1
- package/dist/esm/utils.js +9 -5
- package/dist/esm/utils.js.map +1 -1
- package/dist/tsconfig-cjs.tsbuildinfo +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +1 -1
- package/src/indexes.ts +5 -0
- package/src/migration.ts +86 -20
- package/src/oids.test.ts +7 -0
- package/src/oids.ts +31 -3
- package/src/operation.test.ts +157 -1
- package/src/operation.ts +19 -3
- package/src/schema/defaults.test.ts +1 -1
- package/src/schema/{defaults.ts → fields.ts} +55 -1
- package/src/schema/index.ts +1 -1
- package/src/schema/types/fields.ts +6 -1
- package/src/schema/validation.ts +99 -0
- package/src/timestamp.test.ts +13 -0
- package/src/utils.ts +9 -5
- package/dist/cjs/schema/defaults.js.map +0 -1
- package/dist/esm/schema/defaults.js.map +0 -1
package/src/timestamp.test.ts
CHANGED
|
@@ -2,6 +2,7 @@ import { describe, expect, it, vitest } from 'vitest';
|
|
|
2
2
|
import {
|
|
3
3
|
convertOldHlcTimestamp,
|
|
4
4
|
deserializeHlcTimestamp,
|
|
5
|
+
encodeVersion,
|
|
5
6
|
HybridLogicalClockTimestampProvider,
|
|
6
7
|
OLD_encodeVersion,
|
|
7
8
|
OLD_serializeHlcTimestamp,
|
|
@@ -111,3 +112,15 @@ describe('the hybrid logical clock', () => {
|
|
|
111
112
|
expect(clock.getWallClockTime(now)).toEqual(time.getTime());
|
|
112
113
|
});
|
|
113
114
|
});
|
|
115
|
+
|
|
116
|
+
describe('version encoding', () => {
|
|
117
|
+
it('orders 1 before 2', () => {
|
|
118
|
+
expect(encodeVersion(1) < encodeVersion(2)).toBe(true);
|
|
119
|
+
});
|
|
120
|
+
it('orders 32 before 33', () => {
|
|
121
|
+
expect(encodeVersion(32) < encodeVersion(33)).toBe(true);
|
|
122
|
+
});
|
|
123
|
+
it('orders 34 before 35', () => {
|
|
124
|
+
expect(encodeVersion(34) < encodeVersion(35)).toBe(true);
|
|
125
|
+
});
|
|
126
|
+
});
|
package/src/utils.ts
CHANGED
|
@@ -60,19 +60,23 @@ export function stableStringify(obj: any) {
|
|
|
60
60
|
return JSON.stringify(obj, orderedReplacer);
|
|
61
61
|
}
|
|
62
62
|
|
|
63
|
-
|
|
64
|
-
|
|
63
|
+
/**
|
|
64
|
+
* A version of structured cloning which preserves object identity
|
|
65
|
+
* references in the system.
|
|
66
|
+
*/
|
|
67
|
+
export function cloneDeep<T>(obj: T, copyOids = true): T {
|
|
68
|
+
if (isObject(obj) || Array.isArray(obj)) {
|
|
65
69
|
const oid = maybeGetOid(obj);
|
|
66
70
|
let clone: any;
|
|
67
71
|
if (Array.isArray(obj)) {
|
|
68
|
-
clone = obj.map(cloneDeep) as T;
|
|
72
|
+
clone = obj.map((v) => cloneDeep(v, copyOids)) as T;
|
|
69
73
|
} else {
|
|
70
74
|
clone = {};
|
|
71
75
|
for (const [key, value] of Object.entries(obj as any)) {
|
|
72
|
-
clone[key] = cloneDeep(value);
|
|
76
|
+
clone[key] = cloneDeep(value, copyOids);
|
|
73
77
|
}
|
|
74
78
|
}
|
|
75
|
-
if (oid) {
|
|
79
|
+
if (copyOids && oid) {
|
|
76
80
|
assignOid(clone, oid);
|
|
77
81
|
}
|
|
78
82
|
return clone;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"defaults.js","sourceRoot":"","sources":["../../../src/schema/defaults.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"defaults.js","sourceRoot":"","sources":["../../../src/schema/defaults.ts"],"names":[],"mappings":"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"}
|