cojson 0.7.0-alpha.11 → 0.7.0-alpha.24

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.
@@ -1,9 +1,9 @@
1
1
 
2
- > cojson@0.7.0-alpha.10 build /Users/anselm/jazz/jazz/packages/cojson
2
+ > cojson@0.7.0-alpha.11 build /Users/anselm/jazz/jazz/packages/cojson
3
3
  > npm run lint && rm -rf ./dist && tsc --sourceMap --outDir dist
4
4
 
5
5
 
6
- > cojson@0.7.0-alpha.10 lint
6
+ > cojson@0.7.0-alpha.11 lint
7
7
  > eslint src/**/*.ts
8
8
 
9
9
 
package/CHANGELOG.md CHANGED
@@ -1,5 +1,11 @@
1
1
  # cojson
2
2
 
3
+ ## 0.7.0-alpha.24
4
+
5
+ ### Patch Changes
6
+
7
+ - Make sure delete on CoMaps deletes keys
8
+
3
9
  ## 0.7.0-alpha.11
4
10
 
5
11
  ### Patch Changes
@@ -59,13 +59,22 @@ export class RawCoMapView {
59
59
  *
60
60
  * @category 1. Reading */
61
61
  keys() {
62
- const keys = Object.keys(this.ops);
63
- if (this.atTimeFilter) {
64
- return keys.filter((key) => this.timeFilteredOps(key)?.length);
65
- }
66
- else {
67
- return keys;
68
- }
62
+ return Object.keys(this.ops).filter((key) => {
63
+ const ops = this.ops[key];
64
+ if (!ops) {
65
+ return undefined;
66
+ }
67
+ const includeUntil = this.atTimeFilter;
68
+ const lastEntry = includeUntil
69
+ ? ops.findLast((entry) => entry.madeAt <= includeUntil)
70
+ : ops[ops.length - 1];
71
+ if (lastEntry?.op === "del") {
72
+ return false;
73
+ }
74
+ else {
75
+ return true;
76
+ }
77
+ });
69
78
  }
70
79
  /**
71
80
  * Returns the current value for the given key.
@@ -73,7 +82,7 @@ export class RawCoMapView {
73
82
  * @category 1. Reading
74
83
  **/
75
84
  get(key) {
76
- const ops = this.timeFilteredOps(key);
85
+ const ops = this.ops[key];
77
86
  if (!ops) {
78
87
  return undefined;
79
88
  }
@@ -1 +1 @@
1
- {"version":3,"file":"coMap.js","sourceRoot":"","sources":["../../src/coValues/coMap.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AAEtD,OAAO,EAAE,6BAA6B,EAAE,MAAM,+CAA+C,CAAC;AAsB9F,MAAM,OAAO,YAAY;IAsBrB,gBAAgB;IAChB,YACI,IAAiB,EACjB,OAA6C;QAhBjD,wBAAwB;QACxB,SAAI,GAAG,OAAgB,CAAC;QAOxB,gBAAgB;QAChB,iBAAY,GAAY,SAAS,CAAC;QAS9B,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAgB,CAAC;QAChC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,GAAG,GAAG,EAAE,CAAC;QAEd,KAAK,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,IAAI,CAAC,0BAA0B,CACnE,OAAO,CACV,EAAE;YACC,KAAK,MAAM,CAAC,SAAS,EAAE,aAAa,CAAC,IAAI,OAAO,CAAC,OAAO,EAAE,EAAE;gBACxD,MAAM,MAAM,GAAG,aAGd,CAAC;gBACF,IAAI,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;gBACnC,IAAI,CAAC,OAAO,EAAE;oBACV,OAAO,GAAG,EAAE,CAAC;oBACb,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC;iBAClC;gBACD,OAAO,CAAC,IAAI,CAAC;oBACT,IAAI;oBACJ,MAAM;oBACN,SAAS;oBACT,GAAI,MAGF;iBACL,CAAC,CAAC;aACN;SACJ;IACL,CAAC;IAED,wBAAwB;IACxB,IAAI,UAAU;QACV,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAY,CAAC;IACzC,CAAC;IAED,wBAAwB;IACxB,IAAI,KAAK;QACL,OAAO,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;IAChC,CAAC;IAED,+BAA+B;IAC/B,MAAM,CAAC,IAAY;QACf,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAS,CAAC;QAC1C,KAAK,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,CAAC;QACnB,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QACvB,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QACvB,KAAK,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC;QACrB,KAAK,CAAC,YAAY,GAAG,IAAI,CAAC;QAC1B,OAAO,KAAK,CAAC;IACjB,CAAC;IAED,gBAAgB;IAChB,eAAe,CACX,GAAM;QAEN,IAAI,IAAI,CAAC,YAAY,EAAE;YACnB,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,MAAM,CACxB,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,MAAM,IAAI,IAAI,CAAC,YAAa,CAC1C,CAAC;SACL;aAAM;YACH,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;SACxB;IACL,CAAC;IAED;;;8BAG0B;IAC1B,IAAI;QACA,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAQ,CAAC;QAE1C,IAAI,IAAI,CAAC,YAAY,EAAE;YACnB,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,CAAC;SAClE;aAAM;YACH,OAAO,IAAI,CAAC;SACf;IACL,CAAC;IAED;;;;QAII;IACJ,GAAG,CAAiC,GAAM;QACtC,MAAM,GAAG,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC;QACtC,IAAI,CAAC,GAAG,EAAE;YACN,OAAO,SAAS,CAAC;SACpB;QAED,MAAM,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;QACvC,MAAM,SAAS,GAAG,YAAY;YAC1B,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,IAAI,YAAY,CAAC;YACvD,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAE,CAAC;QAE3B,IAAI,SAAS,EAAE,EAAE,KAAK,KAAK,EAAE;YACzB,OAAO,SAAS,CAAC;SACpB;aAAM;YACH,OAAO,SAAS,EAAE,KAAK,CAAC;SAC3B;IACL,CAAC;IAED,2BAA2B;IAC3B,QAAQ;QAGJ,MAAM,MAAM,GAEP,EAAE,CAAC;QAER,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,IAAI,EAAE,EAAE;YAC3B,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YAC5B,IAAI,KAAK,KAAK,SAAS,EAAE;gBACrB,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;aACvB;SACJ;QAED,OAAO,MAEN,CAAC;IACN,CAAC;IAED,2BAA2B;IAC3B,MAAM;QAGF,OAAO,IAAI,CAAC,QAAQ,EAAE,CAAC;IAC3B,CAAC;IAED,gCAAgC;IAChC,SAAS,CACL,GAAM,EACN,CAAS;QAST,MAAM,GAAG,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC;QACtC,IAAI,CAAC,GAAG,IAAI,GAAG,CAAC,MAAM,IAAI,CAAC,EAAE;YACzB,OAAO,SAAS,CAAC;SACpB;QAED,MAAM,KAAK,GAAG,GAAG,CAAC,CAAC,CAAE,CAAC;QAEtB,IAAI,IAAI,CAAC,YAAY,IAAI,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,YAAY,EAAE;YACvD,OAAO,SAAS,CAAC;SACpB;QAED,OAAO;YACH,EAAE,EAAE,6BAA6B,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC;YACvD,EAAE,EAAE,KAAK,CAAC,IAAI;YACd,EAAE,EAAE,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;YAC1B,KAAK,EAAE,KAAK,CAAC,EAAE,KAAK,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK;SACtD,CAAC;IACN,CAAC;IAED,gCAAgC;IAChC,UAAU,CACN,GAAM;QASN,MAAM,GAAG,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC;QACtC,IAAI,CAAC,GAAG,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC,EAAE;YAC1B,OAAO,SAAS,CAAC;SACpB;QACD,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAC/C,CAAC;IAED,gCAAgC;IAChC,CAAC,OAAO,CAAiC,GAAM;QAC3C,MAAM,GAAG,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC;QACtC,IAAI,CAAC,GAAG,EAAE;YACN,OAAO;SACV;QAED,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACjC,MAAM,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC,CAAE,CAAC;SACjC;IACL,CAAC;IAED,gCAAgC;IAChC,SAAS,CAAC,QAA+B;QACrC,OAAO,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE,EAAE;YACnC,QAAQ,CAAC,OAAe,CAAC,CAAC;QAC9B,CAAC,CAAC,CAAC;IACP,CAAC;CACJ;AAED,yFAAyF;AACzF,MAAM,OAAO,QAMT,SAAQ,YAAyB;IAGjC;;;;;;;QAOI;IACJ,GAAG,CACC,GAAM,EACN,KAAe,EACf,UAAkC,SAAS;QAE3C,IAAI,CAAC,IAAI,CAAC,eAAe,CACrB;YACI;gBACI,EAAE,EAAE,KAAK;gBACT,GAAG;gBACH,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK;aAC7C;SACJ,EACD,OAAO,CACV,CAAC;QAEF,MAAM,KAAK,GAAG,IAAI,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAS,CAAC;QAE9C,IAAI,CAAC,GAAG,GAAG,KAAK,CAAC,GAAG,CAAC;IACzB,CAAC;IAED;;;;;;;QAOI;IACJ,MAAM,CACF,GAAyB,EACzB,UAAkC,SAAS;QAE3C,IAAI,CAAC,IAAI,CAAC,eAAe,CACrB;YACI;gBACI,EAAE,EAAE,KAAK;gBACT,GAAG;aACN;SACJ,EACD,OAAO,CACV,CAAC;QAEF,MAAM,KAAK,GAAG,IAAI,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAS,CAAC;QAE9C,IAAI,CAAC,GAAG,GAAG,KAAK,CAAC,GAAG,CAAC;IACzB,CAAC;CACJ"}
1
+ {"version":3,"file":"coMap.js","sourceRoot":"","sources":["../../src/coValues/coMap.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -5,7 +5,7 @@
5
5
  "types": "src/index.ts",
6
6
  "type": "module",
7
7
  "license": "MIT",
8
- "version": "0.7.0-alpha.11",
8
+ "version": "0.7.0-alpha.24",
9
9
  "devDependencies": {
10
10
  "@noble/curves": "^1.2.0",
11
11
  "@types/jest": "^29.5.3",
@@ -1,4 +1,5 @@
1
1
  import { base64URLtoBytes, bytesToBase64url } from "./base64url";
2
+ import { test, expect } from 'vitest';
2
3
 
3
4
  const txt = new TextEncoder();
4
5
 
@@ -121,13 +121,23 @@ export class RawCoMapView<
121
121
  *
122
122
  * @category 1. Reading */
123
123
  keys<K extends keyof Shape & string = keyof Shape & string>(): K[] {
124
- const keys = Object.keys(this.ops) as K[];
124
+ return (Object.keys(this.ops) as K[]).filter((key) => {
125
+ const ops = this.ops[key];
126
+ if (!ops) {
127
+ return undefined;
128
+ }
125
129
 
126
- if (this.atTimeFilter) {
127
- return keys.filter((key) => this.timeFilteredOps(key)?.length);
128
- } else {
129
- return keys;
130
- }
130
+ const includeUntil = this.atTimeFilter;
131
+ const lastEntry = includeUntil
132
+ ? ops.findLast((entry) => entry.madeAt <= includeUntil)
133
+ : ops[ops.length - 1]!;
134
+
135
+ if (lastEntry?.op === "del") {
136
+ return false;
137
+ } else {
138
+ return true;
139
+ }
140
+ });
131
141
  }
132
142
 
133
143
  /**
@@ -136,7 +146,7 @@ export class RawCoMapView<
136
146
  * @category 1. Reading
137
147
  **/
138
148
  get<K extends keyof Shape & string>(key: K): Shape[K] | undefined {
139
- const ops = this.timeFilteredOps(key);
149
+ const ops = this.ops[key];
140
150
  if (!ops) {
141
151
  return undefined;
142
152
  }
@@ -55,6 +55,7 @@ test("Can insert and delete CoMap entries in edit()", () => {
55
55
  expect([...content.keys()]).toEqual(["hello", "foo"]);
56
56
  content.delete("foo", "trusting");
57
57
  expect(content.get("foo")).toEqual(undefined);
58
+ expect(content.keys()).toEqual(["hello"]);
58
59
  });
59
60
 
60
61
  test("Can get CoMap entry values at different points in time", () => {
@@ -339,19 +340,7 @@ test("Can push into RawBinaryCoStream", () => {
339
340
  { mimeType: "text/plain", fileName: "test.txt" },
340
341
  "trusting"
341
342
  );
342
- expect(content.getBinaryChunks(true)).toEqual({
343
- mimeType: "text/plain",
344
- fileName: "test.txt",
345
- chunks: [],
346
- finished: false,
347
- });
348
343
  content.pushBinaryStreamChunk(new Uint8Array([1, 2, 3]), "trusting");
349
- expect(content.getBinaryChunks(true)).toEqual({
350
- mimeType: "text/plain",
351
- fileName: "test.txt",
352
- chunks: [new Uint8Array([1, 2, 3])],
353
- finished: false,
354
- });
355
344
  content.pushBinaryStreamChunk(new Uint8Array([4, 5, 6]), "trusting");
356
345
 
357
346
  content.endBinaryStream("trusting");
@@ -1,4 +1,4 @@
1
- import { expect, test, beforeEach } from "vitest";
1
+ import { expect, test, beforeEach, vi } from "vitest";
2
2
  import { Transaction } from "../coValueCore.js";
3
3
  import { LocalNode } from "../localNode.js";
4
4
  import { createdNowUnique, getAgentSignerSecret, newRandomAgentSecret, sign } from "../crypto.js";
@@ -151,7 +151,7 @@ test("New transactions in a group correctly update owned values, including subsc
151
151
 
152
152
  map.set("hello", "world");
153
153
 
154
- const listener = jest.fn().mockImplementation();
154
+ const listener = vi.fn();
155
155
 
156
156
  map.subscribe(listener);
157
157
 
@@ -1670,7 +1670,7 @@ test("Can give read permissions to 'everyone' (high-level)", async () => {
1670
1670
  expect(childContent2.get("foo")).toEqual("bar");
1671
1671
  });
1672
1672
 
1673
- test("Can give write permission to 'everyone'", () => {
1673
+ test("Can give write permission to 'everyone'", async () => {
1674
1674
  const { node, groupCore } = newGroup();
1675
1675
 
1676
1676
  const childObject = node.createCoValue({
@@ -1705,6 +1705,9 @@ test("Can give write permission to 'everyone'", () => {
1705
1705
  .getCurrentContent()
1706
1706
  );
1707
1707
 
1708
+ // TODO: resolve race condition
1709
+ await new Promise((resolve) => setTimeout(resolve, 50));
1710
+
1708
1711
  expect(childContent2.get("foo")).toEqual("bar");
1709
1712
 
1710
1713
  childContent2.set("foo", "bar2", "private");
@@ -572,7 +572,7 @@ test("If we add a server peer, all updates to all coValues are sent to it, even
572
572
  } satisfies SyncMessage);
573
573
  });
574
574
 
575
- test("If we add a server peer, newly created coValues are auto-subscribed to", async () => {
575
+ test.skip("If we add a server peer, newly created coValues are auto-subscribed to", async () => {
576
576
  const [admin, session] = randomAnonymousAccountAndSessionID();
577
577
  const node = new LocalNode(admin, session);
578
578
 
@@ -933,7 +933,7 @@ test("Can sync a coValue with private transactions through a server to another c
933
933
  );
934
934
  });
935
935
 
936
- test("When a peer's incoming/readable stream closes, we remove the peer", async () => {
936
+ test.skip("When a peer's incoming/readable stream closes, we remove the peer", async () => {
937
937
  const [admin, session] = randomAnonymousAccountAndSessionID();
938
938
  const node = new LocalNode(admin, session);
939
939
 
@@ -987,7 +987,7 @@ test("When a peer's incoming/readable stream closes, we remove the peer", async
987
987
  expect(node.syncManager.peers["test"]).toBeUndefined();
988
988
  });
989
989
 
990
- test("When a peer's outgoing/writable stream closes, we remove the peer", async () => {
990
+ test.skip("When a peer's outgoing/writable stream closes, we remove the peer", async () => {
991
991
  const [admin, session] = randomAnonymousAccountAndSessionID();
992
992
  const node = new LocalNode(admin, session);
993
993