@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.
Files changed (82) hide show
  1. package/dist/cjs/indexes.d.ts +1 -0
  2. package/dist/cjs/indexes.js +5 -1
  3. package/dist/cjs/indexes.js.map +1 -1
  4. package/dist/cjs/migration.d.ts +7 -0
  5. package/dist/cjs/migration.js +53 -9
  6. package/dist/cjs/migration.js.map +1 -1
  7. package/dist/cjs/oids.d.ts +2 -0
  8. package/dist/cjs/oids.js +30 -4
  9. package/dist/cjs/oids.js.map +1 -1
  10. package/dist/cjs/oids.test.js +3 -0
  11. package/dist/cjs/oids.test.js.map +1 -1
  12. package/dist/cjs/operation.js +12 -3
  13. package/dist/cjs/operation.js.map +1 -1
  14. package/dist/cjs/operation.test.js +151 -1
  15. package/dist/cjs/operation.test.js.map +1 -1
  16. package/dist/cjs/schema/defaults.test.js +3 -3
  17. package/dist/cjs/schema/defaults.test.js.map +1 -1
  18. package/dist/cjs/schema/{defaults.d.ts → fields.d.ts} +3 -0
  19. package/dist/cjs/schema/{defaults.js → fields.js} +48 -3
  20. package/dist/cjs/schema/fields.js.map +1 -0
  21. package/dist/cjs/schema/index.d.ts +1 -1
  22. package/dist/cjs/schema/index.js +1 -1
  23. package/dist/cjs/schema/index.js.map +1 -1
  24. package/dist/cjs/schema/types/fields.d.ts +6 -0
  25. package/dist/cjs/schema/validation.d.ts +3 -0
  26. package/dist/cjs/schema/validation.js +87 -0
  27. package/dist/cjs/schema/validation.js.map +1 -0
  28. package/dist/cjs/timestamp.test.js +11 -0
  29. package/dist/cjs/timestamp.test.js.map +1 -1
  30. package/dist/cjs/utils.d.ts +5 -1
  31. package/dist/cjs/utils.js +9 -5
  32. package/dist/cjs/utils.js.map +1 -1
  33. package/dist/esm/indexes.d.ts +1 -0
  34. package/dist/esm/indexes.js +4 -0
  35. package/dist/esm/indexes.js.map +1 -1
  36. package/dist/esm/migration.d.ts +7 -0
  37. package/dist/esm/migration.js +54 -10
  38. package/dist/esm/migration.js.map +1 -1
  39. package/dist/esm/oids.d.ts +2 -0
  40. package/dist/esm/oids.js +27 -3
  41. package/dist/esm/oids.js.map +1 -1
  42. package/dist/esm/oids.test.js +4 -1
  43. package/dist/esm/oids.test.js.map +1 -1
  44. package/dist/esm/operation.js +13 -4
  45. package/dist/esm/operation.js.map +1 -1
  46. package/dist/esm/operation.test.js +151 -1
  47. package/dist/esm/operation.test.js.map +1 -1
  48. package/dist/esm/schema/defaults.test.js +1 -1
  49. package/dist/esm/schema/defaults.test.js.map +1 -1
  50. package/dist/esm/schema/{defaults.d.ts → fields.d.ts} +3 -0
  51. package/dist/esm/schema/{defaults.js → fields.js} +44 -2
  52. package/dist/esm/schema/fields.js.map +1 -0
  53. package/dist/esm/schema/index.d.ts +1 -1
  54. package/dist/esm/schema/index.js +1 -1
  55. package/dist/esm/schema/index.js.map +1 -1
  56. package/dist/esm/schema/types/fields.d.ts +6 -0
  57. package/dist/esm/schema/validation.d.ts +3 -0
  58. package/dist/esm/schema/validation.js +82 -0
  59. package/dist/esm/schema/validation.js.map +1 -0
  60. package/dist/esm/timestamp.test.js +12 -1
  61. package/dist/esm/timestamp.test.js.map +1 -1
  62. package/dist/esm/utils.d.ts +5 -1
  63. package/dist/esm/utils.js +9 -5
  64. package/dist/esm/utils.js.map +1 -1
  65. package/dist/tsconfig-cjs.tsbuildinfo +1 -1
  66. package/dist/tsconfig.tsbuildinfo +1 -1
  67. package/package.json +1 -1
  68. package/src/indexes.ts +5 -0
  69. package/src/migration.ts +86 -20
  70. package/src/oids.test.ts +7 -0
  71. package/src/oids.ts +31 -3
  72. package/src/operation.test.ts +157 -1
  73. package/src/operation.ts +19 -3
  74. package/src/schema/defaults.test.ts +1 -1
  75. package/src/schema/{defaults.ts → fields.ts} +55 -1
  76. package/src/schema/index.ts +1 -1
  77. package/src/schema/types/fields.ts +6 -1
  78. package/src/schema/validation.ts +99 -0
  79. package/src/timestamp.test.ts +13 -0
  80. package/src/utils.ts +9 -5
  81. package/dist/cjs/schema/defaults.js.map +0 -1
  82. package/dist/esm/schema/defaults.js.map +0 -1
@@ -4,7 +4,13 @@ import { assignOid, assignOidsToAllSubObjects, createRef, getOid, } from './oids
4
4
  import { applyPatch, applyOperations, diffToPatches, initialToPatches, substituteRefsWithObjects, } from './operation.js';
5
5
  function createClock(init = 0) {
6
6
  let i = init;
7
- return () => (i++).toString();
7
+ const clock = () => (i++).toString();
8
+ Object.defineProperty(clock, 'current', {
9
+ get() {
10
+ return i;
11
+ },
12
+ });
13
+ return clock;
8
14
  }
9
15
  describe('creating diff patch operations', () => {
10
16
  describe('on flat objects', () => {
@@ -477,6 +483,150 @@ describe('creating diff patch operations', () => {
477
483
  ]
478
484
  `);
479
485
  });
486
+ it('should assign a new OID to objects which had an incompatible existing OID', () => {
487
+ const from = {
488
+ foo: {
489
+ bar: [1, 2, 3],
490
+ },
491
+ };
492
+ assignOid(from, 'test/a');
493
+ assignOidsToAllSubObjects(from, createClock());
494
+ const to = {
495
+ foo: {
496
+ bar: [1, 2],
497
+ },
498
+ };
499
+ assignOid(to, 'test/a');
500
+ assignOid(to.foo, 'uff/b');
501
+ assignOidsToAllSubObjects(to.foo, createClock());
502
+ expect(diffToPatches(from, to, createClock(), createClock(5), [], {
503
+ mergeUnknownObjects: true,
504
+ })).toMatchInlineSnapshot(`
505
+ [
506
+ {
507
+ "data": {
508
+ "op": "initialize",
509
+ "value": [
510
+ 1,
511
+ 2,
512
+ ],
513
+ },
514
+ "oid": "test/a:6",
515
+ "timestamp": "0",
516
+ },
517
+ {
518
+ "data": {
519
+ "op": "initialize",
520
+ "value": {
521
+ "bar": {
522
+ "@@type": "ref",
523
+ "id": "test/a:6",
524
+ },
525
+ },
526
+ },
527
+ "oid": "test/a:5",
528
+ "timestamp": "1",
529
+ },
530
+ {
531
+ "data": {
532
+ "name": "foo",
533
+ "op": "set",
534
+ "value": {
535
+ "@@type": "ref",
536
+ "id": "test/a:5",
537
+ },
538
+ },
539
+ "oid": "test/a",
540
+ "timestamp": "2",
541
+ },
542
+ {
543
+ "data": {
544
+ "op": "delete",
545
+ },
546
+ "oid": "test/a:0",
547
+ "timestamp": "3",
548
+ },
549
+ ]
550
+ `);
551
+ });
552
+ // an edge case - if a subobject which contains nested objects changes identity,
553
+ // this gets written as a new init patch tree - we want to ensure all init subobjects
554
+ // in that tree have compatible OIDs.
555
+ it('should assign a new OID to objects which have an incompatible OID when parent identity changes', () => {
556
+ const from = {
557
+ bar: [],
558
+ };
559
+ assignOid(from, 'test/a');
560
+ assignOid(from.bar, 'test/random');
561
+ const to = {
562
+ bar: [{ baz: 1 }, { baz: 2 }],
563
+ };
564
+ assignOid(to, 'test/a');
565
+ assignOidsToAllSubObjects(to, createClock());
566
+ assignOid(to.bar[0], 'uff/b');
567
+ expect(diffToPatches(from, to, createClock(), createClock(5), [], {
568
+ mergeUnknownObjects: true,
569
+ })).toMatchInlineSnapshot(`
570
+ [
571
+ {
572
+ "data": {
573
+ "op": "initialize",
574
+ "value": {
575
+ "baz": 1,
576
+ },
577
+ },
578
+ "oid": "test/a:5",
579
+ "timestamp": "0",
580
+ },
581
+ {
582
+ "data": {
583
+ "op": "initialize",
584
+ "value": {
585
+ "baz": 2,
586
+ },
587
+ },
588
+ "oid": "test/a:2",
589
+ "timestamp": "1",
590
+ },
591
+ {
592
+ "data": {
593
+ "op": "initialize",
594
+ "value": [
595
+ {
596
+ "@@type": "ref",
597
+ "id": "test/a:5",
598
+ },
599
+ {
600
+ "@@type": "ref",
601
+ "id": "test/a:2",
602
+ },
603
+ ],
604
+ },
605
+ "oid": "test/a:0",
606
+ "timestamp": "2",
607
+ },
608
+ {
609
+ "data": {
610
+ "name": "bar",
611
+ "op": "set",
612
+ "value": {
613
+ "@@type": "ref",
614
+ "id": "test/a:0",
615
+ },
616
+ },
617
+ "oid": "test/a",
618
+ "timestamp": "3",
619
+ },
620
+ {
621
+ "data": {
622
+ "op": "delete",
623
+ },
624
+ "oid": "test/random",
625
+ "timestamp": "4",
626
+ },
627
+ ]
628
+ `);
629
+ });
480
630
  });
481
631
  describe('substituting refs with objects', () => {
482
632
  it('does nothing when no refs exist', () => {
@@ -1 +1 @@
1
- {"version":3,"file":"operation.test.js","sourceRoot":"","sources":["../../src/operation.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"operation.test.js","sourceRoot":"","sources":["../../src/operation.test.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import { describe, expect, it } from 'vitest';
2
- import { getFieldDefault } from './defaults.js';
2
+ import { getFieldDefault } from './fields.js';
3
3
  import { assignOid, createOid, maybeGetOid } from '../oids.js';
4
4
  describe('getting field defaults', () => {
5
5
  it('does not apply the same oid from the previous application', () => {
@@ -1 +1 @@
1
- {"version":3,"file":"defaults.test.js","sourceRoot":"","sources":["../../../src/schema/defaults.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EAAE,SAAS,EAAE,SAAS,EAAU,WAAW,EAAE,MAAM,YAAY,CAAC;AAEvE,QAAQ,CAAC,wBAAwB,EAAE,GAAG,EAAE;IACvC,EAAE,CAAC,2DAA2D,EAAE,GAAG,EAAE;QACpE,MAAM,KAAK,GAAG;YACb,IAAI,EAAE,KAAK;YACX,OAAO,EAAE;gBACR,EAAE,EAAE,KAAK;gBACT,IAAI,EAAE,MAAM;aACZ;SACQ,CAAC;QACX,MAAM,KAAK,GAAG,eAAe,CAAC,KAAK,CAAC,CAAC;QACrC,SAAS,CAAC,KAAK,EAAE,SAAS,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC;QACzC,MAAM,MAAM,GAAG,eAAe,CAAC,KAAK,CAAC,CAAC;QACtC,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAC7C,CAAC,CAAC,CAAC;AACJ,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"defaults.test.js","sourceRoot":"","sources":["../../../src/schema/defaults.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,EAAE,SAAS,EAAE,SAAS,EAAU,WAAW,EAAE,MAAM,YAAY,CAAC;AAEvE,QAAQ,CAAC,wBAAwB,EAAE,GAAG,EAAE;IACvC,EAAE,CAAC,2DAA2D,EAAE,GAAG,EAAE;QACpE,MAAM,KAAK,GAAG;YACb,IAAI,EAAE,KAAK;YACX,OAAO,EAAE;gBACR,EAAE,EAAE,KAAK;gBACT,IAAI,EAAE,MAAM;aACZ;SACQ,CAAC;QACX,MAAM,KAAK,GAAG,eAAe,CAAC,KAAK,CAAC,CAAC;QACrC,SAAS,CAAC,KAAK,EAAE,SAAS,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC;QACzC,MAAM,MAAM,GAAG,eAAe,CAAC,KAAK,CAAC,CAAC;QACtC,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAC7C,CAAC,CAAC,CAAC;AACJ,CAAC,CAAC,CAAC"}
@@ -1,4 +1,7 @@
1
1
  import type { StorageFieldSchema, StorageCollectionSchema } from './types.js';
2
+ export declare function isNullable(field: StorageFieldSchema): boolean | undefined;
2
3
  export declare function addFieldDefaults(collection: StorageCollectionSchema, value: any): any;
3
4
  export declare function traverseCollectionFieldsAndApplyDefaults(value: any, field: StorageFieldSchema): any;
4
5
  export declare function getFieldDefault(field: StorageFieldSchema): any;
6
+ export declare function removeExtraProperties(collection: StorageCollectionSchema, value: any): any;
7
+ export declare function traverseCollectionFieldsAndRemoveExtraProperties(value: any, field: StorageFieldSchema): void;
@@ -1,8 +1,19 @@
1
1
  import { LEGACY_OID_KEY, OID_KEY } from '../oids.js';
2
+ import { isObject } from '../utils.js';
3
+ export function isNullable(field) {
4
+ if (field.type === 'any')
5
+ return true;
6
+ if (field.type === 'map')
7
+ return false;
8
+ return field.nullable;
9
+ }
2
10
  export function addFieldDefaults(collection, value) {
3
11
  for (const [key, field] of Object.entries(collection.fields)) {
4
12
  const defaultValue = getFieldDefault(field);
5
- if (defaultValue !== undefined && value[key] === undefined) {
13
+ if ((defaultValue !== undefined && value[key] === undefined) ||
14
+ // covers the case where a previously nullable field
15
+ // now has a default during a new migration
16
+ (!isNullable(field) && value[key] === null)) {
6
17
  value[key] = defaultValue;
7
18
  }
8
19
  if (value[key]) {
@@ -63,4 +74,35 @@ export function getFieldDefault(field) {
63
74
  }
64
75
  return undefined;
65
76
  }
66
- //# sourceMappingURL=defaults.js.map
77
+ export function removeExtraProperties(collection, value) {
78
+ for (const [key, fieldValue] of Object.entries(value)) {
79
+ // MUST NOT DELETE THESE!
80
+ if (key === OID_KEY || key === LEGACY_OID_KEY)
81
+ continue;
82
+ if (!collection.fields[key]) {
83
+ delete value[key];
84
+ }
85
+ else {
86
+ traverseCollectionFieldsAndRemoveExtraProperties(fieldValue, collection.fields[key]);
87
+ }
88
+ }
89
+ return value;
90
+ }
91
+ export function traverseCollectionFieldsAndRemoveExtraProperties(value, field) {
92
+ if (isObject(value) && field.type === 'object') {
93
+ for (const [key, fieldValue] of Object.entries(value)) {
94
+ if (!field.properties[key]) {
95
+ delete value[key];
96
+ }
97
+ else {
98
+ traverseCollectionFieldsAndRemoveExtraProperties(fieldValue, field.properties[key]);
99
+ }
100
+ }
101
+ }
102
+ else if (Array.isArray(value) && field.type === 'array') {
103
+ for (const item of value) {
104
+ traverseCollectionFieldsAndRemoveExtraProperties(item, field.items);
105
+ }
106
+ }
107
+ }
108
+ //# sourceMappingURL=fields.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fields.js","sourceRoot":"","sources":["../../../src/schema/fields.ts"],"names":[],"mappings":"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"}
@@ -5,4 +5,4 @@ export declare function schema<Schema extends StorageSchema<{
5
5
  }>>(input: Schema): Schema;
6
6
  export * from './types.js';
7
7
  export * from './indexFilters.js';
8
- export * from './defaults.js';
8
+ export * from './fields.js';
@@ -6,5 +6,5 @@ export function schema(input) {
6
6
  }
7
7
  export * from './types.js';
8
8
  export * from './indexFilters.js';
9
- export * from './defaults.js';
9
+ export * from './fields.js';
10
10
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/schema/index.ts"],"names":[],"mappings":"AAQA,MAAM,UAAU,UAAU,CAIxB,KAA6D;IAC9D,OAAO,KAAK,CAAC;AACd,CAAC;AAED,MAAM,UAAU,MAAM,CAIpB,KAAa;IACd,OAAO,KAAK,CAAC;AACd,CAAC;AAED,cAAc,YAAY,CAAC;AAE3B,cAAc,mBAAmB,CAAC;AAClC,cAAc,eAAe,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/schema/index.ts"],"names":[],"mappings":"AAQA,MAAM,UAAU,UAAU,CAIxB,KAA6D;IAC9D,OAAO,KAAK,CAAC;AACd,CAAC;AAED,MAAM,UAAU,MAAM,CAIpB,KAAa;IACd,OAAO,KAAK,CAAC;AACd,CAAC;AAED,cAAc,YAAY,CAAC;AAE3B,cAAc,mBAAmB,CAAC;AAClC,cAAc,aAAa,CAAC"}
@@ -37,6 +37,12 @@ export declare type StorageMapFieldSchema<V extends NestedStorageFieldSchema> =
37
37
  export declare type StorageFileFieldSchema = {
38
38
  type: 'file';
39
39
  nullable?: boolean;
40
+ /**
41
+ * Instructs the client to download synced files to local storage on first request for offline use.
42
+ * Leave this false to save storage space on the client, at the cost of requiring a network
43
+ * connection to use files created by other devices.
44
+ */
45
+ downloadRemote?: boolean;
40
46
  };
41
47
  export declare type StorageFieldSchema = StorageStringFieldSchema | StorageNumberFieldSchema | StorageBooleanFieldSchema | StorageArrayFieldSchema | StorageObjectFieldSchema | StorageAnyFieldSchema | StorageMapFieldSchema<any> | StorageFileFieldSchema;
42
48
  export declare type NestedStorageStringFieldSchema = {
@@ -0,0 +1,3 @@
1
+ import { StorageCollectionSchema, StorageFieldSchema } from './types.js';
2
+ export declare function validateEntity(schema: StorageCollectionSchema, entity: any): void;
3
+ export declare function validateEntityField(field: StorageFieldSchema, value: any, fieldPath?: string[]): void;
@@ -0,0 +1,82 @@
1
+ import { LEGACY_OID_KEY, OID_KEY } from '../oids.js';
2
+ import { isObject } from '../utils.js';
3
+ export function validateEntity(schema, entity) {
4
+ for (const [key, value] of Object.entries(entity)) {
5
+ if (!schema.fields[key]) {
6
+ throw new Error(`Invalid field "${key}"`);
7
+ }
8
+ if (value) {
9
+ validateEntityField(schema.fields[key], value);
10
+ }
11
+ }
12
+ }
13
+ export function validateEntityField(field, value, fieldPath = []) {
14
+ if (field.type === 'object') {
15
+ if (!isObject(value)) {
16
+ if (value === null && field.nullable)
17
+ return;
18
+ throw new Error(`Expected object${field.nullable ? ' or null' : ''} for field ${formatField(fieldPath)}}`);
19
+ }
20
+ for (const [key, subField] of Object.entries(field.properties)) {
21
+ if (value[key]) {
22
+ validateEntityField(subField, value[key]);
23
+ }
24
+ }
25
+ for (const key of Object.keys(value)) {
26
+ if (!field.properties[key]) {
27
+ throw new Error(`Invalid field "${key}" on value ${formatField(fieldPath)}`);
28
+ }
29
+ }
30
+ }
31
+ else if (field.type === 'array') {
32
+ if (!Array.isArray(value)) {
33
+ if (value === null && field.nullable)
34
+ return;
35
+ throw new Error(`Expected array${field.nullable ? ' or null' : ''} for field ${formatField(fieldPath)}}`);
36
+ }
37
+ for (const item of value) {
38
+ validateEntityField(field.items, item);
39
+ }
40
+ }
41
+ else if (field.type === 'map') {
42
+ if (!isObject(value)) {
43
+ throw new Error(`Expected map for field ${formatField(fieldPath)}}`);
44
+ }
45
+ for (const [key, item] of Object.entries(value)) {
46
+ // santiy check to weed out any id field
47
+ if (key === OID_KEY || key === LEGACY_OID_KEY)
48
+ continue;
49
+ validateEntityField(field.values, item);
50
+ }
51
+ }
52
+ else if (field.type === 'string') {
53
+ if (typeof value !== 'string') {
54
+ if (value === null && field.nullable)
55
+ return;
56
+ throw new Error(`Expected string ${field.nullable ? ' or null' : ''} for field ${formatField(fieldPath)}}`);
57
+ }
58
+ }
59
+ else if (field.type === 'boolean') {
60
+ if (typeof value !== 'boolean') {
61
+ if (value === null && field.nullable)
62
+ return;
63
+ throw new Error(`Expected boolean ${field.nullable ? ' or null' : ''} for field ${formatField(fieldPath)}}`);
64
+ }
65
+ }
66
+ else if (field.type === 'number') {
67
+ if (typeof value !== 'number') {
68
+ if (value === null && field.nullable)
69
+ return;
70
+ throw new Error(`Expected number ${field.nullable ? ' or null' : ''} for field ${formatField(fieldPath)}}`);
71
+ }
72
+ }
73
+ else if (field.type === 'file') {
74
+ if (value === null && !field.nullable) {
75
+ throw new Error(`Expected file for field ${formatField(fieldPath)}}`);
76
+ }
77
+ }
78
+ }
79
+ function formatField(fieldPath) {
80
+ return fieldPath.join('.');
81
+ }
82
+ //# sourceMappingURL=validation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validation.js","sourceRoot":"","sources":["../../../src/schema/validation.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import { describe, expect, it, vitest } from 'vitest';
2
- import { convertOldHlcTimestamp, HybridLogicalClockTimestampProvider, OLD_encodeVersion, OLD_serializeHlcTimestamp, } from './timestamp.js';
2
+ import { convertOldHlcTimestamp, encodeVersion, HybridLogicalClockTimestampProvider, OLD_encodeVersion, OLD_serializeHlcTimestamp, } from './timestamp.js';
3
3
  describe('the hybrid logical clock', () => {
4
4
  it('always produces incrementing timestamps', async () => {
5
5
  const clock = new HybridLogicalClockTimestampProvider();
@@ -89,4 +89,15 @@ describe('the hybrid logical clock', () => {
89
89
  expect(clock.getWallClockTime(now)).toEqual(time.getTime());
90
90
  });
91
91
  });
92
+ describe('version encoding', () => {
93
+ it('orders 1 before 2', () => {
94
+ expect(encodeVersion(1) < encodeVersion(2)).toBe(true);
95
+ });
96
+ it('orders 32 before 33', () => {
97
+ expect(encodeVersion(32) < encodeVersion(33)).toBe(true);
98
+ });
99
+ it('orders 34 before 35', () => {
100
+ expect(encodeVersion(34) < encodeVersion(35)).toBe(true);
101
+ });
102
+ });
92
103
  //# sourceMappingURL=timestamp.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"timestamp.test.js","sourceRoot":"","sources":["../../src/timestamp.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"timestamp.test.js","sourceRoot":"","sources":["../../src/timestamp.test.ts"],"names":[],"mappings":"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"}
@@ -6,7 +6,11 @@ export declare function getSortedIndex<T>(array: T[], insert: T, compare: (a: T,
6
6
  * of key insertion order
7
7
  */
8
8
  export declare function stableStringify(obj: any): string;
9
- export declare function cloneDeep<T>(obj: T): T;
9
+ /**
10
+ * A version of structured cloning which preserves object identity
11
+ * references in the system.
12
+ */
13
+ export declare function cloneDeep<T>(obj: T, copyOids?: boolean): T;
10
14
  export declare function hashObject(obj: any): string;
11
15
  export declare function isObject(obj: any): any;
12
16
  export declare function roughSizeOfObject(object: any): number;
package/dist/esm/utils.js CHANGED
@@ -44,20 +44,24 @@ function orderedReplacer(_, v) {
44
44
  export function stableStringify(obj) {
45
45
  return JSON.stringify(obj, orderedReplacer);
46
46
  }
47
- export function cloneDeep(obj) {
48
- if (isObject(obj)) {
47
+ /**
48
+ * A version of structured cloning which preserves object identity
49
+ * references in the system.
50
+ */
51
+ export function cloneDeep(obj, copyOids = true) {
52
+ if (isObject(obj) || Array.isArray(obj)) {
49
53
  const oid = maybeGetOid(obj);
50
54
  let clone;
51
55
  if (Array.isArray(obj)) {
52
- clone = obj.map(cloneDeep);
56
+ clone = obj.map((v) => cloneDeep(v, copyOids));
53
57
  }
54
58
  else {
55
59
  clone = {};
56
60
  for (const [key, value] of Object.entries(obj)) {
57
- clone[key] = cloneDeep(value);
61
+ clone[key] = cloneDeep(value, copyOids);
58
62
  }
59
63
  }
60
- if (oid) {
64
+ if (copyOids && oid) {
61
65
  assignOid(clone, oid);
62
66
  }
63
67
  return clone;
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,MAAM,CAAC;AAC1B,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAEnD,MAAM,UAAU,IAAI,CACnB,GAAM,EACN,IAAY;IAEZ,MAAM,MAAM,GAAQ,EAAE,CAAC;IACvB,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE;QACvB,MAAM,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC;KACvB;IACD,OAAO,MAAM,CAAC;AACf,CAAC;AAED,MAAM,UAAU,IAAI,CACnB,GAAM,EACN,IAAY;IAEZ,MAAM,MAAM,GAAQ,EAAE,CAAC;IACvB,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;QACnC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAW,CAAC,EAAE;YAChC,MAAM,CAAC,GAAG,CAAC,GAAI,GAAW,CAAC,GAAG,CAAC,CAAC;SAChC;KACD;IACD,OAAO,MAAM,CAAC;AACf,CAAC;AAED,MAAM,UAAU,cAAc,CAC7B,KAAU,EACV,MAAS,EACT,OAA+B;IAE/B,IAAI,GAAG,GAAG,CAAC,CAAC;IACZ,IAAI,IAAI,GAAG,KAAK,CAAC,MAAM,CAAC;IACxB,OAAO,GAAG,GAAG,IAAI,EAAE;QAClB,MAAM,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;QAC/B,MAAM,GAAG,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,CAAC;QACxC,IAAI,GAAG,GAAG,CAAC,EAAE;YACZ,GAAG,GAAG,GAAG,GAAG,CAAC,CAAC;SACd;aAAM;YACN,IAAI,GAAG,GAAG,CAAC;SACX;KACD;IACD,OAAO,GAAG,CAAC;AACZ,CAAC;AAED,SAAS,eAAe,CAAC,CAAM,EAAE,CAAM;IACtC,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,KAAK,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;QAC5D,OAAO,CAAC,CAAC;KACT;IACD,OAAO,MAAM,CAAC,WAAW,CACxB,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CACxE,CAAC;AACH,CAAC;AACD;;;GAGG;AACH,MAAM,UAAU,eAAe,CAAC,GAAQ;IACvC,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,eAAe,CAAC,CAAC;AAC7C,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,SAAS,CAAI,GAAM,EAAE,QAAQ,GAAG,IAAI;IACnD,IAAI,QAAQ,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;QACxC,MAAM,GAAG,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC;QAC7B,IAAI,KAAU,CAAC;QACf,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;YACvB,KAAK,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,SAAS,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAM,CAAC;SACpD;aAAM;YACN,KAAK,GAAG,EAAE,CAAC;YACX,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,GAAU,CAAC,EAAE;gBACtD,KAAK,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;aACxC;SACD;QACD,IAAI,QAAQ,IAAI,GAAG,EAAE;YACpB,SAAS,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;SACtB;QACD,OAAO,KAAK,CAAC;KACb;IACD,OAAO,GAAG,CAAC;AACZ,CAAC;AAED,oBAAoB;AACpB,MAAM,UAAU,UAAU,CAAC,GAAQ;IAClC,OAAO,eAAe,CAAC,GAAG,CAAC,CAAC;AAC7B,CAAC;AAED,MAAM,UAAU,QAAQ,CAAC,GAAQ;IAChC,OAAO,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ,CAAC;AACvC,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,MAAW;IAC5C,IAAI,UAAU,GAAG,EAAE,CAAC;IACpB,IAAI,KAAK,GAAG,CAAC,MAAM,CAAC,CAAC;IACrB,IAAI,KAAK,GAAG,CAAC,CAAC;IAEd,OAAO,KAAK,CAAC,MAAM,EAAE;QACpB,IAAI,KAAK,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC;QAExB,IAAI,OAAO,KAAK,KAAK,SAAS,EAAE;YAC/B,KAAK,IAAI,CAAC,CAAC;SACX;aAAM,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;YACrC,KAAK,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;SAC1B;aAAM,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;YACrC,KAAK,IAAI,CAAC,CAAC;SACX;aAAM,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE;YACzE,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAEvB,KAAK,IAAI,CAAC,IAAI,KAAK,EAAE;gBACpB,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;aACrB;SACD;KACD;IACD,OAAO,KAAK,CAAC;AACd,CAAC;AAED,MAAM,UAAU,MAAM,CACrB,SAAc,EACd,UAAkB,kBAAkB;IAEpC,IAAI,CAAC,SAAS,EAAE;QACf,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC;KACzB;AACF,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,MAAM,GAAG,EAAE;IACrC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;AAC/C,CAAC;AAED,MAAM,UAAU,aAAa,CAAI,KAAU,EAAE,SAA+B;IAC3E,KAAK,IAAI,CAAC,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE;QAC3C,IAAI,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE;YACxB,OAAO,CAAC,CAAC;SACT;KACD;IACD,OAAO,CAAC,CAAC,CAAC;AACX,CAAC"}