From d0f6ef80fcf93311efee6b1c0861d0eadf9f81bd Mon Sep 17 00:00:00 2001 From: Dan Groshev Date: Wed, 31 Jan 2024 16:53:40 +0000 Subject: [PATCH] Update the project to Node 20 (#2691) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ### Change Type - [x] `internal` — Any other changes that don't affect the published package --- .github/actions/setup/action.yml | 2 +- apps/docs/package.json | 2 +- apps/health-worker/package.json | 2 +- apps/vscode/editor/package.json | 2 +- package.json | 4 +- .../src/lib/utils/sync/indexedDb.test.ts | 30 +- packages/state/src/lib/react/track.test.tsx | 12 +- .../src/lib/react/useStateTracking.test.tsx | 16 +- .../state/src/lib/react/useValue.test.tsx | 4 +- packages/store/src/lib/test/migrate.test.ts | 22 +- .../store/src/lib/test/recordStore.test.ts | 172 ++-- .../__snapshots__/LineShapeUtil.test.ts.snap | 12 +- packages/tldraw/src/test/Editor.test.tsx | 4 +- .../src/test/TLSessionStateSnapshot.test.ts | 10 +- .../test/__snapshots__/groups.test.ts.snap | 8 +- .../test/__snapshots__/resizing.test.ts.snap | 16 +- .../__snapshots__/packShapes.test.ts.snap | 40 +- .../__snapshots__/zoomToFit.test.ts.snap | 4 +- packages/tldraw/src/test/resizing.test.ts | 74 +- packages/tldraw/src/test/translating.test.ts | 2 +- packages/tlschema/src/migrations.test.ts | 10 +- packages/tlsync/src/test/chunk.test.ts | 21 +- packages/tlsync/src/test/diff.test.ts | 50 +- packages/validate/src/test/validation.test.ts | 4 +- scripts/package.json | 2 +- yarn.lock | 744 +++++++++--------- 26 files changed, 622 insertions(+), 647 deletions(-) diff --git a/.github/actions/setup/action.yml b/.github/actions/setup/action.yml index 18421e9fc..9810a0165 100644 --- a/.github/actions/setup/action.yml +++ b/.github/actions/setup/action.yml @@ -13,7 +13,7 @@ runs: - name: Setup Node.js Environment uses: actions/setup-node@v3 with: - node-version: 18.18.2 + node-version: 20.11.0 cache: 'yarn' - name: Install dependencies diff --git a/apps/docs/package.json b/apps/docs/package.json index 11829ba81..6f5ba5cb1 100644 --- a/apps/docs/package.json +++ b/apps/docs/package.json @@ -49,7 +49,7 @@ "@radix-ui/react-accordion": "^1.1.2", "@radix-ui/react-navigation-menu": "^1.1.4", "@types/broken-link-checker": "^0.7.1", - "@types/node": "^18.7.3", + "@types/node": "~20.11", "@types/sqlite3": "^3.1.9", "@types/ws": "^8.5.9", "@vercel/analytics": "^1.1.1", diff --git a/apps/health-worker/package.json b/apps/health-worker/package.json index 93504dc0d..0a17aec57 100644 --- a/apps/health-worker/package.json +++ b/apps/health-worker/package.json @@ -13,7 +13,7 @@ }, "devDependencies": { "@cloudflare/workers-types": "^4.20230821.0", - "@types/node": "^18.7.3", + "@types/node": "~20.11", "discord-api-types": "^0.37.67", "typescript": "^5.2.2", "wrangler": "3.16.0" diff --git a/apps/vscode/editor/package.json b/apps/vscode/editor/package.json index 280c3ea32..976b4bba1 100644 --- a/apps/vscode/editor/package.json +++ b/apps/vscode/editor/package.json @@ -35,7 +35,7 @@ "@tldraw/assets": "workspace:*", "@tldraw/tldraw": "workspace:*", "@types/fs-extra": "^11.0.1", - "@types/node": "^18.7.3", + "@types/node": "~20.11", "@types/react": "^18.2.47", "@types/react-dom": "^18.2.18", "@types/react-router-dom": "^5.1.8", diff --git a/package.json b/package.json index e0e205fbd..be0d111fd 100644 --- a/package.json +++ b/package.json @@ -75,7 +75,7 @@ "@swc/jest": "^0.2.26", "@types/glob": "^8.1.0", "@types/jest": "^28.1.2", - "@types/node": "^18.7.3", + "@types/node": "~20.11", "@types/react": "^18.2.47", "@types/react-dom": "^18.2.18", "@typescript-eslint/eslint-plugin": "^5.57.0", @@ -91,7 +91,7 @@ "eslint-plugin-react-hooks": "^4.6.0", "fs-extra": "^11.1.0", "husky": "^8.0.0", - "jest": "^28.1.1", + "jest": "^29.7.0", "json5": "^2.2.3", "lazyrepo": "0.0.0-alpha.27", "lint-staged": ">=10", diff --git a/packages/editor/src/lib/utils/sync/indexedDb.test.ts b/packages/editor/src/lib/utils/sync/indexedDb.test.ts index fa32e9397..78c66a458 100644 --- a/packages/editor/src/lib/utils/sync/indexedDb.test.ts +++ b/packages/editor/src/lib/utils/sync/indexedDb.test.ts @@ -25,7 +25,7 @@ describe('storeSnapshotInIndexedDb', () => { }) expect(getAllIndexDbNames()).toMatchInlineSnapshot(` - Array [ + [ "TLDRAW_DOCUMENT_v2test-0", ] `) @@ -37,7 +37,7 @@ describe('storeSnapshotInIndexedDb', () => { }) expect(getAllIndexDbNames()).toMatchInlineSnapshot(` - Array [ + [ "TLDRAW_DOCUMENT_v2test-0", "TLDRAW_DOCUMENT_v2test-1", ] @@ -50,7 +50,7 @@ describe('storeSnapshotInIndexedDb', () => { }) expect(getAllIndexDbNames()).toMatchInlineSnapshot(` - Array [ + [ "TLDRAW_DOCUMENT_v2test-0", "TLDRAW_DOCUMENT_v2test-1", ] @@ -58,7 +58,7 @@ describe('storeSnapshotInIndexedDb', () => { }) it('allows reading back the snapshot', async () => { - expect(getAllIndexDbNames()).toMatchInlineSnapshot(`Array []`) + expect(getAllIndexDbNames()).toMatchInlineSnapshot(`[]`) await storeSnapshotInIndexedDb({ persistenceKey: 'test-0', schema, @@ -75,19 +75,19 @@ describe('storeSnapshotInIndexedDb', () => { }) expect(getAllIndexDbNames()).toMatchInlineSnapshot(` - Array [ + [ "TLDRAW_DOCUMENT_v2test-0", ] `) const records = (await loadDataFromStore({ persistenceKey: 'test-0' }))?.records expect(records).toMatchInlineSnapshot(` - Array [ - Object { + [ + { "id": "page:1", "name": "steve", }, - Object { + { "id": "shape:1", "type": "rectangle", }, @@ -117,7 +117,7 @@ describe('storeSnapshotInIndexedDb', () => { (await loadDataFromStore({ persistenceKey: 'test-0', sessionId: 'session-0' })) ?.sessionStateSnapshot ).toMatchInlineSnapshot(` - Object { + { "foo": "bar", } `) @@ -136,7 +136,7 @@ describe('storeSnapshotInIndexedDb', () => { (await loadDataFromStore({ persistenceKey: 'test-0', sessionId: 'session-0' })) ?.sessionStateSnapshot ).toMatchInlineSnapshot(` - Object { + { "foo": "bar", } `) @@ -145,7 +145,7 @@ describe('storeSnapshotInIndexedDb', () => { (await loadDataFromStore({ persistenceKey: 'test-0', sessionId: 'session-1' })) ?.sessionStateSnapshot ).toMatchInlineSnapshot(` - Object { + { "hello": "world", } `) @@ -205,16 +205,16 @@ describe(storeChangesInIndexedDb, () => { }) expect((await loadDataFromStore({ persistenceKey: 'test-0' }))?.records).toMatchInlineSnapshot(` - Array [ - Object { + [ + { "id": "asset:1", "version": 0, }, - Object { + { "id": "asset:2", "version": 0, }, - Object { + { "id": "page:1", "version": 1, }, diff --git a/packages/state/src/lib/react/track.test.tsx b/packages/state/src/lib/react/track.test.tsx index 481f177c4..714843373 100644 --- a/packages/state/src/lib/react/track.test.tsx +++ b/packages/state/src/lib/react/track.test.tsx @@ -22,7 +22,7 @@ test("tracked components are memo'd", async () => { }) expect(view!.toJSON()).toMatchInlineSnapshot(` - Array [ + [ "a", "b", "c", @@ -44,7 +44,7 @@ test("tracked components are memo'd", async () => { expect(numRenders).toBe(2) expect(view!.toJSON()).toMatchInlineSnapshot(` - Array [ + [ "a", "b", "d", @@ -73,7 +73,7 @@ test("it's fine to call track on components that are already memo'd", async () = }) expect(view!.toJSON()).toMatchInlineSnapshot(` - Array [ + [ "a", "b", "c", @@ -95,7 +95,7 @@ test("it's fine to call track on components that are already memo'd", async () = expect(numRenders).toBe(2) expect(view!.toJSON()).toMatchInlineSnapshot(` - Array [ + [ "a", "b", "d", @@ -206,7 +206,7 @@ test("tracked zombie-children don't throw", async () => { }) expect(view!.toJSON()).toMatchInlineSnapshot(` - Array [ + [ "1", "2", "3", @@ -219,7 +219,7 @@ test("tracked zombie-children don't throw", async () => { }) expect(view!.toJSON()).toMatchInlineSnapshot(` - Array [ + [ "1", "3", ] diff --git a/packages/state/src/lib/react/useStateTracking.test.tsx b/packages/state/src/lib/react/useStateTracking.test.tsx index 9915938ac..c9a5c4d66 100644 --- a/packages/state/src/lib/react/useStateTracking.test.tsx +++ b/packages/state/src/lib/react/useStateTracking.test.tsx @@ -19,7 +19,7 @@ describe('useStateTracking', () => { view = create() }) expect(view!.toJSON()).toMatchInlineSnapshot(` - Array [ + [ "You are ", "0", " years old", @@ -31,7 +31,7 @@ describe('useStateTracking', () => { }) expect(view!.toJSON()).toMatchInlineSnapshot(` - Array [ + [ "You are ", "1", " years old", @@ -63,7 +63,7 @@ describe('useStateTracking', () => { }) expect(view!.toJSON()).toMatchInlineSnapshot(` - Array [ + [ "You are ", "0", " years old and ", @@ -77,7 +77,7 @@ describe('useStateTracking', () => { }) expect(view!.toJSON()).toMatchInlineSnapshot(` - Array [ + [ "You are ", "1", " years old and ", @@ -91,7 +91,7 @@ describe('useStateTracking', () => { }) expect(view!.toJSON()).toMatchInlineSnapshot(` - Array [ + [ "You are ", "1", " years old and ", @@ -142,7 +142,7 @@ describe('useStateTracking', () => { }) expect(view.toJSON()).toMatchInlineSnapshot(` - Array [ + [ "You are ", "1", " years old", @@ -167,7 +167,7 @@ describe('useStateTracking', () => { }) expect(view!.toJSON()).toMatchInlineSnapshot(` - Array [ + [ "You are ", "0", " years old", @@ -181,7 +181,7 @@ describe('useStateTracking', () => { }) expect(view!.toJSON()).toMatchInlineSnapshot(` - Array [ + [ "You are ", "1", " years old", diff --git a/packages/state/src/lib/react/useValue.test.tsx b/packages/state/src/lib/react/useValue.test.tsx index 62d50d015..198351433 100644 --- a/packages/state/src/lib/react/useValue.test.tsx +++ b/packages/state/src/lib/react/useValue.test.tsx @@ -114,7 +114,7 @@ test("useValue doesn't throw when used in a zombie-child component", async () => }) expect(view!.toJSON()).toMatchInlineSnapshot(` - Array [ + [ "1", "2", "3", @@ -127,7 +127,7 @@ test("useValue doesn't throw when used in a zombie-child component", async () => }) expect(view!.toJSON()).toMatchInlineSnapshot(` - Array [ + [ "1", "3", ] diff --git a/packages/store/src/lib/test/migrate.test.ts b/packages/store/src/lib/test/migrate.test.ts index 2095ff8a9..325669d65 100644 --- a/packages/store/src/lib/test/migrate.test.ts +++ b/packages/store/src/lib/test/migrate.test.ts @@ -8,19 +8,19 @@ const serializedV1Schenma = testSchemaV1.serialize() test('serializedV0Schenma', () => { expect(serializedV0Schenma).toMatchInlineSnapshot(` - Object { - "recordVersions": Object { - "org": Object { + { + "recordVersions": { + "org": { "version": 0, }, - "shape": Object { + "shape": { "subTypeKey": "type", - "subTypeVersions": Object { + "subTypeVersions": { "rectangle": 0, }, "version": 0, }, - "user": Object { + "user": { "version": 0, }, }, @@ -32,17 +32,17 @@ test('serializedV0Schenma', () => { test('serializedV1Schenma', () => { expect(serializedV1Schenma).toMatchInlineSnapshot(` - Object { - "recordVersions": Object { - "shape": Object { + { + "recordVersions": { + "shape": { "subTypeKey": "type", - "subTypeVersions": Object { + "subTypeVersions": { "oval": 1, "rectangle": 1, }, "version": 2, }, - "user": Object { + "user": { "version": 2, }, }, diff --git a/packages/store/src/lib/test/recordStore.test.ts b/packages/store/src/lib/test/recordStore.test.ts index 798768728..74bbe7775 100644 --- a/packages/store/src/lib/test/recordStore.test.ts +++ b/packages/store/src/lib/test/recordStore.test.ts @@ -107,18 +107,18 @@ describe('Store', () => { store.put([Author.create({ name: 'J.R.R Tolkein', id: Author.createId('tolkein') })]) expect(lastDiff!).toMatchInlineSnapshot(` - Array [ - Object { - "added": Object { - "author:tolkein": Object { + [ + { + "added": { + "author:tolkein": { "id": "author:tolkein", "isPseudonym": false, "name": "J.R.R Tolkein", "typeName": "author", }, }, - "removed": Object {}, - "updated": Object {}, + "removed": {}, + "updated": {}, }, ] `) @@ -126,19 +126,19 @@ describe('Store', () => { store.update(Author.createId('tolkein'), (r) => ({ ...r, name: 'Jimmy Tolks' })) expect(lastDiff!).toMatchInlineSnapshot(` - Array [ - Object { - "added": Object {}, - "removed": Object {}, - "updated": Object { - "author:tolkein": Array [ - Object { + [ + { + "added": {}, + "removed": {}, + "updated": { + "author:tolkein": [ + { "id": "author:tolkein", "isPseudonym": false, "name": "J.R.R Tolkein", "typeName": "author", }, - Object { + { "id": "author:tolkein", "isPseudonym": false, "name": "Jimmy Tolks", @@ -153,18 +153,18 @@ describe('Store', () => { store.remove([Author.createId('tolkein')]) expect(lastDiff!).toMatchInlineSnapshot(` - Array [ - Object { - "added": Object {}, - "removed": Object { - "author:tolkein": Object { + [ + { + "added": {}, + "removed": { + "author:tolkein": { "id": "author:tolkein", "isPseudonym": false, "name": "Jimmy Tolks", "typeName": "author", }, }, - "updated": Object {}, + "updated": {}, }, ] `) @@ -181,30 +181,30 @@ describe('Store', () => { }) expect(lastDiff!).toMatchInlineSnapshot(` - Array [ - Object { - "added": Object { - "author:cj": Object { + [ + { + "added": { + "author:cj": { "id": "author:cj", "isPseudonym": false, "name": "Carter, Jimmy", "typeName": "author", }, - "author:dfw": Object { + "author:dfw": { "id": "author:dfw", "isPseudonym": false, "name": "David Foster Wallace", "typeName": "author", }, - "author:tolkein": Object { + "author:tolkein": { "id": "author:tolkein", "isPseudonym": false, "name": "Jimmy Tolks", "typeName": "author", }, }, - "removed": Object {}, - "updated": Object {}, + "removed": {}, + "updated": {}, }, ] `) @@ -284,8 +284,8 @@ describe('Store', () => { store.put([Author.create({ name: 'J.R.R Tolkein', id: Author.createId('tolkein') })]) expect(lastIdDiff).toMatchInlineSnapshot(` - Array [ - Object { + [ + { "added": Set { "author:tolkein", }, @@ -300,8 +300,8 @@ describe('Store', () => { }) expect(lastIdDiff).toMatchInlineSnapshot(` - Array [ - Object { + [ + { "added": Set { "author:mcavoy", "author:cassidy", @@ -343,35 +343,35 @@ describe('Store', () => { await new Promise((resolve) => requestAnimationFrame(resolve)) expect(listener).toHaveBeenCalledTimes(1) expect(listener.mock.lastCall[0]).toMatchInlineSnapshot(` - Object { - "changes": Object { - "added": Object { - "author:cassidy": Object { + { + "changes": { + "added": { + "author:cassidy": { "id": "author:cassidy", "isPseudonym": false, "name": "Butch Cassidy", "typeName": "author", }, - "author:mcavoy": Object { + "author:mcavoy": { "id": "author:mcavoy", "isPseudonym": false, "name": "James McAvoy", "typeName": "author", }, - "author:tolkein": Object { + "author:tolkein": { "id": "author:tolkein", "isPseudonym": false, "name": "J.R.R Tolkein", "typeName": "author", }, - "book:hobbit": Object { + "book:hobbit": { "author": "author:tolkein", "id": "book:hobbit", "numPages": 300, "title": "The Hobbit", "typeName": "book", }, - "book:lotr": Object { + "book:lotr": { "author": "author:tolkein", "id": "book:lotr", "numPages": 1000, @@ -379,8 +379,8 @@ describe('Store', () => { "typeName": "book", }, }, - "removed": Object {}, - "updated": Object {}, + "removed": {}, + "updated": {}, }, "source": "user", } @@ -398,34 +398,34 @@ describe('Store', () => { expect(listener).toHaveBeenCalledTimes(2) expect(listener.mock.lastCall[0]).toMatchInlineSnapshot(` - Object { - "changes": Object { - "added": Object {}, - "removed": Object {}, - "updated": Object { - "author:tolkein": Array [ - Object { + { + "changes": { + "added": {}, + "removed": {}, + "updated": { + "author:tolkein": [ + { "id": "author:tolkein", "isPseudonym": false, "name": "J.R.R Tolkein", "typeName": "author", }, - Object { + { "id": "author:tolkein", "isPseudonym": false, "name": "Jimmy Tolks", "typeName": "author", }, ], - "book:lotr": Array [ - Object { + "book:lotr": [ + { "author": "author:tolkein", "id": "book:lotr", "numPages": 1000, "title": "The Lord of the Rings", "typeName": "book", }, - Object { + { "author": "author:tolkein", "id": "book:lotr", "numPages": 42, @@ -451,11 +451,11 @@ describe('Store', () => { expect(listener).toHaveBeenCalledTimes(3) expect(listener.mock.lastCall[0]).toMatchInlineSnapshot(` - Object { - "changes": Object { - "added": Object {}, - "removed": Object { - "book:lotr": Object { + { + "changes": { + "added": {}, + "removed": { + "book:lotr": { "author": "author:tolkein", "id": "book:lotr", "numPages": 42, @@ -463,15 +463,15 @@ describe('Store', () => { "typeName": "book", }, }, - "updated": Object { - "author:mcavoy": Array [ - Object { + "updated": { + "author:mcavoy": [ + { "id": "author:mcavoy", "isPseudonym": false, "name": "James McAvoy", "typeName": "author", }, - Object { + { "id": "author:mcavoy", "isPseudonym": false, "name": "Sookie Houseboat", @@ -511,17 +511,17 @@ describe('Store', () => { expect(listener).toHaveBeenCalledTimes(1) expect(listener.mock.calls[0][0].changes).toMatchInlineSnapshot(` - Object { - "added": Object { - "visit:jimmy": Object { - "booksInBasket": Array [], + { + "added": { + "visit:jimmy": { + "booksInBasket": [], "id": "visit:jimmy", "typeName": "visit", "visitorName": "Jimmy Beans", }, }, - "removed": Object {}, - "updated": Object {}, + "removed": {}, + "updated": {}, } `) }) @@ -540,17 +540,17 @@ describe('Store', () => { expect(listener).toHaveBeenCalledTimes(1) expect(listener.mock.calls[0][0].changes).toMatchInlineSnapshot(` - Object { - "added": Object { - "author:salinger": Object { + { + "added": { + "author:salinger": { "id": "author:salinger", "isPseudonym": false, "name": "J.D. Salinger", "typeName": "author", }, }, - "removed": Object {}, - "updated": Object {}, + "removed": {}, + "updated": {}, } `) }) @@ -583,15 +583,15 @@ describe('Store', () => { expect(listener).toHaveBeenCalledTimes(1) expect(listener.mock.calls[0][0].changes).toMatchInlineSnapshot(` - Object { - "added": Object { - "author:tolkien": Object { + { + "added": { + "author:tolkien": { "id": "author:tolkien", "isPseudonym": false, "name": "J.R.R Tolkien", "typeName": "author", }, - "book:hobbit": Object { + "book:hobbit": { "author": "author:tolkien", "id": "book:hobbit", "numPages": 300, @@ -599,8 +599,8 @@ describe('Store', () => { "typeName": "book", }, }, - "removed": Object {}, - "updated": Object {}, + "removed": {}, + "updated": {}, } `) }) @@ -633,23 +633,23 @@ describe('Store', () => { expect(listener).toHaveBeenCalledTimes(1) expect(listener.mock.calls[0][0].changes).toMatchInlineSnapshot(` - Object { - "added": Object { - "author:salinger": Object { + { + "added": { + "author:salinger": { "id": "author:salinger", "isPseudonym": false, "name": "J.D. Salinger", "typeName": "author", }, - "visit:jimmy": Object { - "booksInBasket": Array [], + "visit:jimmy": { + "booksInBasket": [], "id": "visit:jimmy", "typeName": "visit", "visitorName": "Jimmy Beans", }, }, - "removed": Object {}, - "updated": Object {}, + "removed": {}, + "updated": {}, } `) }) diff --git a/packages/tldraw/src/lib/shapes/line/__snapshots__/LineShapeUtil.test.ts.snap b/packages/tldraw/src/lib/shapes/line/__snapshots__/LineShapeUtil.test.ts.snap index ffd4f880f..6eead315d 100644 --- a/packages/tldraw/src/lib/shapes/line/__snapshots__/LineShapeUtil.test.ts.snap +++ b/packages/tldraw/src/lib/shapes/line/__snapshots__/LineShapeUtil.test.ts.snap @@ -1,18 +1,18 @@ // Jest Snapshot v1, https://goo.gl/fbAQLP exports[`Misc resizes: line shape after resize 1`] = ` -Object { +{ "id": "shape:line1", "index": "a1", "isLocked": false, - "meta": Object {}, + "meta": {}, "opacity": 1, "parentId": "page:page", - "props": Object { + "props": { "color": "black", "dash": "draw", - "handles": Object { - "end": Object { + "handles": { + "end": { "canBind": false, "id": "end", "index": "a2", @@ -20,7 +20,7 @@ Object { "x": 100, "y": 700, }, - "start": Object { + "start": { "canBind": false, "id": "start", "index": "a1", diff --git a/packages/tldraw/src/test/Editor.test.tsx b/packages/tldraw/src/test/Editor.test.tsx index c138e0b3e..ca4e3f6db 100644 --- a/packages/tldraw/src/test/Editor.test.tsx +++ b/packages/tldraw/src/test/Editor.test.tsx @@ -511,13 +511,13 @@ describe('getShapeUtil', () => { it('throws if that shape type isnt registered', () => { const myMissingShape = { type: 'missing' } as TLShape expect(() => editor.getShapeUtil(myMissingShape)).toThrowErrorMatchingInlineSnapshot( - `"No shape util found for type \\"missing\\""` + `"No shape util found for type "missing""` ) }) it('throws if that type isnt registered', () => { expect(() => editor.getShapeUtil('missing')).toThrowErrorMatchingInlineSnapshot( - `"No shape util found for type \\"missing\\""` + `"No shape util found for type "missing""` ) }) }) diff --git a/packages/tldraw/src/test/TLSessionStateSnapshot.test.ts b/packages/tldraw/src/test/TLSessionStateSnapshot.test.ts index f3e03ecb0..c0166e59e 100644 --- a/packages/tldraw/src/test/TLSessionStateSnapshot.test.ts +++ b/packages/tldraw/src/test/TLSessionStateSnapshot.test.ts @@ -124,23 +124,23 @@ describe(extractSessionStateFromLegacySnapshot, () => { } expect(extractSessionStateFromLegacySnapshot(oldSnapshot as any)).toMatchInlineSnapshot(` - Object { + { "currentPageId": "page:whatever", "exportBackground": false, "isDebugMode": false, "isFocusMode": false, "isGridMode": false, "isToolLocked": false, - "pageStates": Array [ - Object { - "camera": Object { + "pageStates": [ + { + "camera": { "x": 0, "y": 0, "z": 1, }, "focusedGroupId": null, "pageId": "page:whatever", - "selectedShapeIds": Array [ + "selectedShapeIds": [ "shape:whatever", ], }, diff --git a/packages/tldraw/src/test/__snapshots__/groups.test.ts.snap b/packages/tldraw/src/test/__snapshots__/groups.test.ts.snap index a6e0c5d2e..94caa49f0 100644 --- a/packages/tldraw/src/test/__snapshots__/groups.test.ts.snap +++ b/packages/tldraw/src/test/__snapshots__/groups.test.ts.snap @@ -1,7 +1,7 @@ // Jest Snapshot v1, https://goo.gl/fbAQLP exports[`creating new shapes pencil lines will reisze the group appropriately if the new shape changes the group bounds: box shape after second resize 1`] = ` -Object { +{ "h": 40, "w": 40, "x": -20, @@ -10,7 +10,7 @@ Object { `; exports[`creating new shapes pencil lines will reisze the group appropriately if the new shape changes the group bounds: group shape after second resize 1`] = ` -Object { +{ "h": 120, "w": 120, "x": -20, @@ -28,7 +28,7 @@ Box { `; exports[`creating new shapes pencil lines works if the shape drawing begins outside of the current group bounds: box shape after resize 1`] = ` -Object { +{ "h": 50, "w": 50, "x": -100, @@ -37,7 +37,7 @@ Object { `; exports[`creating new shapes pencil lines works if the shape drawing begins outside of the current group bounds: group with line 1`] = ` -Object { +{ "h": 200, "w": 200, "x": -100, diff --git a/packages/tldraw/src/test/__snapshots__/resizing.test.ts.snap b/packages/tldraw/src/test/__snapshots__/resizing.test.ts.snap index aac67b5b6..fe130ef53 100644 --- a/packages/tldraw/src/test/__snapshots__/resizing.test.ts.snap +++ b/packages/tldraw/src/test/__snapshots__/resizing.test.ts.snap @@ -1,29 +1,29 @@ // Jest Snapshot v1, https://goo.gl/fbAQLP exports[`When resizing a shape with children Resizes a rotated draw shape: draw shape after rotating 1`] = ` -Object { +{ "id": "shape:lineA", "index": "a3", "isLocked": false, - "meta": Object {}, + "meta": {}, "opacity": 1, "parentId": "shape:boxA", - "props": Object { + "props": { "color": "black", "dash": "draw", "fill": "none", "isClosed": false, "isComplete": false, "isPen": false, - "segments": Array [ - Object { - "points": Array [ - Object { + "segments": [ + { + "points": [ + { "x": 0, "y": 0, "z": 0.5, }, - Object { + { "x": 110, "y": 110, "z": 0.5, diff --git a/packages/tldraw/src/test/commands/__snapshots__/packShapes.test.ts.snap b/packages/tldraw/src/test/commands/__snapshots__/packShapes.test.ts.snap index 439227edb..579050fa0 100644 --- a/packages/tldraw/src/test/commands/__snapshots__/packShapes.test.ts.snap +++ b/packages/tldraw/src/test/commands/__snapshots__/packShapes.test.ts.snap @@ -1,15 +1,15 @@ // Jest Snapshot v1, https://goo.gl/fbAQLP exports[`editor.packShapes packs rotated shapes: packed shapes 1`] = ` -Array [ - Object { +[ + { "id": "shape:boxA", "index": "a1", "isLocked": false, - "meta": Object {}, + "meta": {}, "opacity": 1, "parentId": "wahtever", - "props": Object { + "props": { "align": "middle", "color": "black", "dash": "draw", @@ -31,14 +31,14 @@ Array [ "x": 134, "y": 250, }, - Object { + { "id": "shape:boxB", "index": "a2", "isLocked": false, - "meta": Object {}, + "meta": {}, "opacity": 1, "parentId": "wahtever", - "props": Object { + "props": { "align": "middle", "color": "black", "dash": "draw", @@ -60,14 +60,14 @@ Array [ "x": 150, "y": 150, }, - Object { + { "id": "shape:boxC", "index": "a3", "isLocked": false, - "meta": Object {}, + "meta": {}, "opacity": 1, "parentId": "wahtever", - "props": Object { + "props": { "align": "middle", "color": "black", "dash": "draw", @@ -93,15 +93,15 @@ Array [ `; exports[`editor.packShapes packs shapes: packed shapes 1`] = ` -Array [ - Object { +[ + { "id": "shape:boxA", "index": "a1", "isLocked": false, - "meta": Object {}, + "meta": {}, "opacity": 1, "parentId": "wahtever", - "props": Object { + "props": { "align": "middle", "color": "black", "dash": "draw", @@ -123,14 +123,14 @@ Array [ "x": 84, "y": 200, }, - Object { + { "id": "shape:boxB", "index": "a2", "isLocked": false, - "meta": Object {}, + "meta": {}, "opacity": 1, "parentId": "wahtever", - "props": Object { + "props": { "align": "middle", "color": "black", "dash": "draw", @@ -152,14 +152,14 @@ Array [ "x": 200, "y": 200, }, - Object { + { "id": "shape:boxC", "index": "a3", "isLocked": false, - "meta": Object {}, + "meta": {}, "opacity": 1, "parentId": "wahtever", - "props": Object { + "props": { "align": "middle", "color": "black", "dash": "draw", diff --git a/packages/tldraw/src/test/commands/__snapshots__/zoomToFit.test.ts.snap b/packages/tldraw/src/test/commands/__snapshots__/zoomToFit.test.ts.snap index 5903ed07c..b75dd2cc2 100644 --- a/packages/tldraw/src/test/commands/__snapshots__/zoomToFit.test.ts.snap +++ b/packages/tldraw/src/test/commands/__snapshots__/zoomToFit.test.ts.snap @@ -1,9 +1,9 @@ // Jest Snapshot v1, https://goo.gl/fbAQLP exports[`converts correctly: Zoom to Fit Camera 1`] = ` -Object { +{ "id": "static", - "meta": Object {}, + "meta": {}, "typeName": "camera", "x": 330.435496777593, "y": 22.261531457640388, diff --git a/packages/tldraw/src/test/resizing.test.ts b/packages/tldraw/src/test/resizing.test.ts index 9f78012c5..bd3d788b1 100644 --- a/packages/tldraw/src/test/resizing.test.ts +++ b/packages/tldraw/src/test/resizing.test.ts @@ -1117,7 +1117,7 @@ describe('snapping while resizing', () => { expect(editor.getShape(ids.boxX)).toMatchObject({ x: 60, y: 81, props: { w: 80, h: 59 } }) expect(getSnapLines(editor)).toMatchInlineSnapshot(` - Array [ + [ "60,0 60,40 60,81 60,140 60,180 60,220", ] `) @@ -1154,7 +1154,7 @@ describe('snapping while resizing', () => { expect(editor.getShape(ids.boxX)).toMatchObject({ x: 81, y: 60, props: { w: 59, h: 80 } }) expect(getSnapLines(editor)).toMatchInlineSnapshot(` - Array [ + [ "0,60 40,60 81,60 140,60 180,60 220,60", ] `) @@ -1190,7 +1190,7 @@ describe('snapping while resizing', () => { expect(editor.getShape(ids.boxX)).toMatchObject({ x: 60, y: 60, props: { w: 80, h: 80 } }) expect(getSnapLines(editor)).toMatchInlineSnapshot(` - Array [ + [ "0,60 40,60 60,60 140,60 180,60 220,60", "60,0 60,40 60,60 60,140 60,180 60,220", ] @@ -1354,7 +1354,7 @@ describe('snapping while resizing from center', () => { props: { w: 60, h: 100 }, }) expect(getSnapLines(editor)).toMatchInlineSnapshot(` - Array [ + [ "40,120 60,120 80,120 100,120", "40,20 60,20 80,20 100,20", ] @@ -1437,7 +1437,7 @@ describe('snapping while resizing from center', () => { props: { w: 100, h: 60 }, }) expect(getSnapLines(editor)).toMatchInlineSnapshot(` - Array [ + [ "120,40 120,60 120,80 120,100", "20,40 20,60 20,80 20,100", ] @@ -1467,7 +1467,7 @@ describe('snapping while resizing from center', () => { }) expect(getSnapLines(editor)).toMatchInlineSnapshot(` - Array [ + [ "120,20 120,60 120,80 120,120", "20,120 60,120 80,120 120,120", "20,20 20,60 20,80 20,120", @@ -1507,7 +1507,7 @@ describe('snapping while resizing from center', () => { }) expect(getSnapLines(editor)).toMatchInlineSnapshot(` - Array [ + [ "120,40 120,60 120,80 120,100", "20,40 20,60 20,80 20,100", ] @@ -1538,7 +1538,7 @@ describe('snapping while resizing from center', () => { }) expect(getSnapLines(editor)).toMatchInlineSnapshot(` - Array [ + [ "120,20 120,60 120,80 120,120", "20,120 60,120 80,120 120,120", "20,20 20,60 20,80 20,120", @@ -1578,7 +1578,7 @@ describe('snapping while resizing from center', () => { }) expect(getSnapLines(editor)).toMatchInlineSnapshot(` - Array [ + [ "120,40 120,60 120,80 120,100", "20,40 20,60 20,80 20,100", ] @@ -1609,7 +1609,7 @@ describe('snapping while resizing from center', () => { }) expect(getSnapLines(editor)).toMatchInlineSnapshot(` - Array [ + [ "120,20 120,60 120,80 120,120", "20,120 60,120 80,120 120,120", "20,20 20,60 20,80 20,120", @@ -1649,7 +1649,7 @@ describe('snapping while resizing from center', () => { }) expect(getSnapLines(editor)).toMatchInlineSnapshot(` - Array [ + [ "120,40 120,60 120,80 120,100", "20,40 20,60 20,80 20,100", ] @@ -1680,7 +1680,7 @@ describe('snapping while resizing from center', () => { }) expect(getSnapLines(editor)).toMatchInlineSnapshot(` - Array [ + [ "120,20 120,60 120,80 120,120", "20,120 60,120 80,120 120,120", "20,20 20,60 20,80 20,120", @@ -1744,7 +1744,7 @@ describe('snapping while resizing with aspect ratio locked', () => { expect(editor.getShape(ids.boxX)).toMatchObject({ x: 30, y: 20, props: { w: 80, h: 80 } }) expect(getSnapLines(editor)).toMatchInlineSnapshot(` - Array [ + [ "30,20 60,20 80,20 110,20", ] `) @@ -1778,7 +1778,7 @@ describe('snapping while resizing with aspect ratio locked', () => { expect(editor.getShape(ids.boxX)).toMatchObject({ x: 40, y: 30, props: { w: 80, h: 80 } }) expect(getSnapLines(editor)).toMatchInlineSnapshot(` - Array [ + [ "120,30 120,60 120,80 120,110", ] `) @@ -1812,7 +1812,7 @@ describe('snapping while resizing with aspect ratio locked', () => { expect(editor.getShape(ids.boxX)).toMatchObject({ x: 30, y: 40, props: { w: 80, h: 80 } }) expect(getSnapLines(editor)).toMatchInlineSnapshot(` - Array [ + [ "30,120 60,120 80,120 110,120", ] `) @@ -1846,7 +1846,7 @@ describe('snapping while resizing with aspect ratio locked', () => { expect(editor.getShape(ids.boxX)).toMatchObject({ x: 20, y: 30, props: { w: 80, h: 80 } }) expect(getSnapLines(editor)).toMatchInlineSnapshot(` - Array [ + [ "20,30 20,60 20,80 20,110", ] `) @@ -1879,7 +1879,7 @@ describe('snapping while resizing with aspect ratio locked', () => { expect(editor.getShape(ids.boxX)).toMatchObject({ x: 40, y: 20, props: { w: 80, h: 80 } }) expect(getSnapLines(editor)).toMatchInlineSnapshot(` - Array [ + [ "120,20 120,60 120,80 120,100", "40,20 60,20 80,20 120,20", ] @@ -1913,7 +1913,7 @@ describe('snapping while resizing with aspect ratio locked', () => { expect(editor.getShape(ids.boxX)).toMatchObject({ x: 40, y: 40, props: { w: 80, h: 80 } }) expect(getSnapLines(editor)).toMatchInlineSnapshot(` - Array [ + [ "120,40 120,60 120,80 120,120", "40,120 60,120 80,120 120,120", ] @@ -1947,7 +1947,7 @@ describe('snapping while resizing with aspect ratio locked', () => { expect(editor.getShape(ids.boxX)).toMatchObject({ x: 20, y: 40, props: { w: 80, h: 80 } }) expect(getSnapLines(editor)).toMatchInlineSnapshot(` - Array [ + [ "20,120 60,120 80,120 100,120", "20,40 20,60 20,80 20,120", ] @@ -1981,7 +1981,7 @@ describe('snapping while resizing with aspect ratio locked', () => { expect(editor.getShape(ids.boxX)).toMatchObject({ x: 20, y: 20, props: { w: 80, h: 80 } }) expect(getSnapLines(editor)).toMatchInlineSnapshot(` - Array [ + [ "20,20 20,60 20,80 20,100", "20,20 60,20 80,20 100,20", ] @@ -2368,7 +2368,7 @@ describe('snapping while resizing a shape that has been rotated by multiples of h: 60, }) expect(getSnapLines(editor)).toMatchInlineSnapshot(` - Array [ + [ "120,40 120,60 120,80 120,100", ] `) @@ -2398,7 +2398,7 @@ describe('snapping while resizing a shape that has been rotated by multiples of h: 60, }) expect(getSnapLines(editor)).toMatchInlineSnapshot(` - Array [ + [ "120,40 120,60 120,80 120,100", "20,40 20,60 20,80 20,100", ] @@ -2435,7 +2435,7 @@ describe('snapping while resizing a shape that has been rotated by multiples of expect(editor.getShapePageBounds(ids.boxX)!.h).toBeCloseTo(80) expect(getSnapLines(editor)).toMatchInlineSnapshot(` - Array [ + [ "40,20 60,20 80,20 100,20", ] `) @@ -2463,7 +2463,7 @@ describe('snapping while resizing a shape that has been rotated by multiples of expect(editor.getShapePageBounds(ids.boxX)!.h).toBeCloseTo(80) expect(getSnapLines(editor)).toMatchInlineSnapshot(` - Array [ + [ "30,20 60,20 80,20 110,20", ] `) @@ -2498,7 +2498,7 @@ describe('snapping while resizing a shape that has been rotated by multiples of expect(editor.getShapePageBounds(ids.boxX)!.h).toBeCloseTo(80) expect(getSnapLines(editor)).toMatchInlineSnapshot(` - Array [ + [ "20,120 60,120 80,120 100,120", "20,40 20,60 20,80 20,120", ] @@ -2529,7 +2529,7 @@ describe('snapping while resizing a shape that has been rotated by multiples of expect(editor.getShapePageBounds(ids.boxX)!.h).toBeCloseTo(100) expect(getSnapLines(editor)).toMatchInlineSnapshot(` - Array [ + [ "120,20 120,60 120,80 120,120", "20,120 60,120 80,120 120,120", "20,20 20,60 20,80 20,120", @@ -2567,7 +2567,7 @@ describe('snapping while resizing a shape that has been rotated by multiples of expect(editor.getShapePageBounds(ids.boxX)!.h).toBeCloseTo(60) expect(getSnapLines(editor)).toMatchInlineSnapshot(` - Array [ + [ "120,40 120,60 120,80 120,100", ] `) @@ -2596,7 +2596,7 @@ describe('snapping while resizing a shape that has been rotated by multiples of expect(editor.getShapePageBounds(ids.boxX)!.h).toBeCloseTo(60) expect(getSnapLines(editor)).toMatchInlineSnapshot(` - Array [ + [ "120,40 120,60 120,80 120,100", "20,40 20,60 20,80 20,100", ] @@ -2664,7 +2664,7 @@ describe('snapping while resizing an inverted shape', () => { }) expect(getSnapLines(editor)).toMatchInlineSnapshot(` - Array [ + [ "40,120 60,120 80,120 100,120", ] `) @@ -2703,7 +2703,7 @@ describe('snapping while resizing an inverted shape', () => { }) expect(getSnapLines(editor)).toMatchInlineSnapshot(` - Array [ + [ "20,40 20,60 20,80 20,100", ] `) @@ -2742,7 +2742,7 @@ describe('snapping while resizing an inverted shape', () => { }) expect(getSnapLines(editor)).toMatchInlineSnapshot(` - Array [ + [ "40,20 60,20 80,20 100,20", ] `) @@ -2780,7 +2780,7 @@ describe('snapping while resizing an inverted shape', () => { h: 60, }) expect(getSnapLines(editor)).toMatchInlineSnapshot(` - Array [ + [ "120,40 120,60 120,80 120,100", ] `) @@ -2818,7 +2818,7 @@ describe('snapping while resizing an inverted shape', () => { h: 20, }) expect(getSnapLines(editor)).toMatchInlineSnapshot(` - Array [ + [ "20,120 40,120 60,120 80,120", "20,60 20,80 20,100 20,120", ] @@ -2858,7 +2858,7 @@ describe('snapping while resizing an inverted shape', () => { h: 20, }) expect(getSnapLines(editor)).toMatchInlineSnapshot(` - Array [ + [ "20,20 20,40 20,60 20,80", "20,20 40,20 60,20 80,20", ] @@ -2896,7 +2896,7 @@ describe('snapping while resizing an inverted shape', () => { h: 20, }) expect(getSnapLines(editor)).toMatchInlineSnapshot(` - Array [ + [ "120,20 120,40 120,60 120,80", "60,20 80,20 100,20 120,20", ] @@ -2934,7 +2934,7 @@ describe('snapping while resizing an inverted shape', () => { h: 20, }) expect(getSnapLines(editor)).toMatchInlineSnapshot(` - Array [ + [ "120,60 120,80 120,100 120,120", "60,120 80,120 100,120 120,120", ] @@ -2981,7 +2981,7 @@ describe('snapping while the grid is enabled', () => { editor.keyDown('Control') expect(editor.getShapePageBounds(ids.boxA)!.w).toEqual(60) expect(getSnapLines(editor)).toMatchInlineSnapshot(` - Array [ + [ "0,0 60,0 80,0", "0,20 60,20 80,20", "60,0 60,20", diff --git a/packages/tldraw/src/test/translating.test.ts b/packages/tldraw/src/test/translating.test.ts index b0dfaf65c..8c45565ae 100644 --- a/packages/tldraw/src/test/translating.test.ts +++ b/packages/tldraw/src/test/translating.test.ts @@ -1546,7 +1546,7 @@ describe('snap lines', () => { }) expect(getSnapLines(editor)).toMatchInlineSnapshot(` - Array [ + [ "0,0 0,100 0,200 0,300", "0,0 100,0 200,0 300,0", "0,100 100,100 200,100 300,100", diff --git a/packages/tlschema/src/migrations.test.ts b/packages/tlschema/src/migrations.test.ts index 566cfa62e..e403e2141 100644 --- a/packages/tlschema/src/migrations.test.ts +++ b/packages/tlschema/src/migrations.test.ts @@ -1055,7 +1055,7 @@ describe('user config refactor', () => { // it cannot be added back so it should add some meaningless id in there // in practice, because we bumped the store version, this down migrator will never be used expect(down(next)).toMatchInlineSnapshot(` - Object { + { "id": "instance:123", "typeName": "instance", "userId": "user:none", @@ -1104,11 +1104,11 @@ describe('making instance state independent', () => { expect(up(prev)).toEqual(next) // down should never be called expect(down(next)).toMatchInlineSnapshot(` - Object { + { "cameraId": "camera:void", "id": "instance_page_state:123", "instanceId": "instance:instance", - "selectedShapeIds": Array [], + "selectedShapeIds": [], "typeName": "instance_page_state", } `) @@ -1135,10 +1135,10 @@ describe('making instance state independent', () => { // down should never be called expect(down(next)).toMatchInlineSnapshot(` - Object { + { "id": "instance_presence:123", "instanceId": "instance:instance", - "selectedShapeIds": Array [], + "selectedShapeIds": [], "typeName": "instance_presence", } `) diff --git a/packages/tlsync/src/test/chunk.test.ts b/packages/tlsync/src/test/chunk.test.ts index e19edf082..93d169f79 100644 --- a/packages/tlsync/src/test/chunk.test.ts +++ b/packages/tlsync/src/test/chunk.test.ts @@ -3,7 +3,7 @@ import { JsonChunkAssembler, chunk } from '../lib/chunk' describe('chunk', () => { it('chunks a string', () => { expect(chunk('hello there my good world', 5)).toMatchInlineSnapshot(` - Array [ + [ "8_h", "7_ell", "6_o t", @@ -17,7 +17,7 @@ describe('chunk', () => { `) expect(chunk('hello there my good world', 10)).toMatchInlineSnapshot(` - Array [ + [ "3_h", "2_ello the", "1_re my go", @@ -29,7 +29,7 @@ describe('chunk', () => { it('does not chunk the string if it is small enough', () => { const chunks = chunk('hello', 100) expect(chunks).toMatchInlineSnapshot(` - Array [ + [ "hello", ] `) @@ -38,7 +38,7 @@ describe('chunk', () => { it('makes sure the chunk length does not exceed the given message size', () => { const chunks = chunk('dark and stormy tonight', 4) expect(chunks).toMatchInlineSnapshot(` - Array [ + [ "12_d", "11_a", "10_r", @@ -59,7 +59,7 @@ describe('chunk', () => { it('does its best if the chunk size is too small', () => { const chunks = chunk('once upon a time', 1) expect(chunks).toMatchInlineSnapshot(` - Array [ + [ "15_o", "14_n", "13_c", @@ -109,9 +109,12 @@ describe('json unchunker', () => { const result = unchunker.handleMessage(chunk) expect(result).toBeNull() } - expect( - unchunker.handleMessage(chunks[chunks.length - 1])?.error?.message - ).toMatchInlineSnapshot(`"Unexpected token w in JSON at position 10"`) + + const node18Error = `Unexpected token w in JSON at position 10` + const node20Error = `Unexpected token 'w', "\\{"hello": world"}" is not valid JSON` + expect(unchunker.handleMessage(chunks[chunks.length - 1])?.error?.message).toMatch( + new RegExp(`${node18Error}|${node20Error}`) + ) // and the next one should be fine expect(unchunker.handleMessage('{"ok": true}')).toEqual({ data: { ok: true } }) @@ -152,7 +155,7 @@ describe('json unchunker', () => { // it only likes json objects const unchunker = new JsonChunkAssembler() expect(unchunker.handleMessage('["yo"]')?.error?.message).toMatchInlineSnapshot( - `"Invalid chunk: \\"[\\\\\\"yo\\\\\\"]...\\""` + `"Invalid chunk: "[\\"yo\\"]...""` ) // and the next one should be fine diff --git a/packages/tlsync/src/test/diff.test.ts b/packages/tlsync/src/test/diff.test.ts index e69373f27..5feacc119 100644 --- a/packages/tlsync/src/test/diff.test.ts +++ b/packages/tlsync/src/test/diff.test.ts @@ -16,13 +16,13 @@ describe('nested arrays', () => { } expect(diffRecord(a, b)).toMatchInlineSnapshot(` - Object { - "arr": Array [ + { + "arr": [ "patch", - Object { - "1": Array [ + { + "1": [ "append", - Array [ + [ 7, 8, ], @@ -49,13 +49,13 @@ describe('nested arrays', () => { } expect(diffRecord(a, b)).toMatchInlineSnapshot(` - Object { - "arr": Array [ + { + "arr": [ "patch", - Object { - "0": Array [ + { + "0": [ "append", - Array [ + [ 4, 5, 6, @@ -85,14 +85,14 @@ describe('objects inside arrays', () => { } expect(diffRecord(a, b)).toMatchInlineSnapshot(` - Object { - "arr": Array [ + { + "arr": [ "patch", - Object { - "1": Array [ + { + "1": [ "patch", - Object { - "c": Array [ + { + "c": [ "put", 7, ], @@ -119,16 +119,16 @@ describe('objects inside arrays', () => { } expect(diffRecord(a, b)).toMatchInlineSnapshot(` - Object { - "arr": Array [ + { + "arr": [ "put", - Array [ - Object { + [ + { "a": 1, "b": 2, "c": 5, }, - Object { + { "a": 4, "b": 5, "c": 7, @@ -153,8 +153,8 @@ test('deleting things from a record', () => { const patch = diffRecord(a, b) expect(patch).toMatchInlineSnapshot(` - Object { - "c": Array [ + { + "c": [ "delete", ], } @@ -177,8 +177,8 @@ test('adding things things to a record', () => { const patch = diffRecord(a, b) expect(patch).toMatchInlineSnapshot(` - Object { - "c": Array [ + { + "c": [ "put", 3, ], diff --git a/packages/validate/src/test/validation.test.ts b/packages/validate/src/test/validation.test.ts index 18e3b8382..5b49b7edf 100644 --- a/packages/validate/src/test/validation.test.ts +++ b/packages/validate/src/test/validation.test.ts @@ -70,7 +70,7 @@ describe('validations', () => { }) ).validate({ id: 'abc13', color: 'rubbish' }) ).toThrowErrorMatchingInlineSnapshot( - `"At shape(id = abc13).color: Expected \\"red\\" or \\"green\\" or \\"blue\\", got rubbish"` + `"At shape(id = abc13).color: Expected "red" or "green" or "blue", got rubbish"` ) }) @@ -97,7 +97,7 @@ describe('validations', () => { expect(() => nested.validate({ animal: { type: 'cow', moo: true, id: 'abc123' } }) ).toThrowErrorMatchingInlineSnapshot( - `"At animal.type: Expected one of \\"cat\\" or \\"dog\\", got \\"cow\\""` + `"At animal.type: Expected one of "cat" or "dog", got "cow""` ) expect(() => diff --git a/scripts/package.json b/scripts/package.json index 1236faa31..d0d3e7126 100644 --- a/scripts/package.json +++ b/scripts/package.json @@ -31,7 +31,7 @@ "@aws-sdk/client-s3": "^3.440.0", "@aws-sdk/lib-storage": "^3.440.0", "@types/is-ci": "^3.0.0", - "@types/node": "^18.7.3", + "@types/node": "~20.11", "@types/tar": "^6.1.7", "@typescript-eslint/utils": "^5.59.0", "ast-types": "^0.14.2", diff --git a/yarn.lock b/yarn.lock index ebbad9297..45cef31de 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1377,7 +1377,7 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-syntax-jsx@npm:^7.18.6, @babel/plugin-syntax-jsx@npm:^7.23.3": +"@babel/plugin-syntax-jsx@npm:^7.18.6, @babel/plugin-syntax-jsx@npm:^7.23.3, @babel/plugin-syntax-jsx@npm:^7.7.2": version: 7.23.3 resolution: "@babel/plugin-syntax-jsx@npm:7.23.3" dependencies: @@ -2269,7 +2269,7 @@ __metadata: languageName: node linkType: hard -"@babel/traverse@npm:^7.18.6, @babel/traverse@npm:^7.23.9, @babel/traverse@npm:^7.7.2": +"@babel/traverse@npm:^7.18.6, @babel/traverse@npm:^7.23.9": version: 7.23.9 resolution: "@babel/traverse@npm:7.23.9" dependencies: @@ -3559,51 +3559,50 @@ __metadata: languageName: node linkType: hard -"@jest/console@npm:^28.1.3": - version: 28.1.3 - resolution: "@jest/console@npm:28.1.3" +"@jest/console@npm:^29.7.0": + version: 29.7.0 + resolution: "@jest/console@npm:29.7.0" dependencies: - "@jest/types": "npm:^28.1.3" + "@jest/types": "npm:^29.6.3" "@types/node": "npm:*" chalk: "npm:^4.0.0" - jest-message-util: "npm:^28.1.3" - jest-util: "npm:^28.1.3" + jest-message-util: "npm:^29.7.0" + jest-util: "npm:^29.7.0" slash: "npm:^3.0.0" - checksum: 82153eb24e61bd442bff350a7537d598e7c49097aabd9545b340582dcf1f17e5749baa342a67e564816a3a6ce746038b618ed9f66702140264bfa1e1d5cc9e5e + checksum: 4a80c750e8a31f344233cb9951dee9b77bf6b89377cb131f8b3cde07ff218f504370133a5963f6a786af4d2ce7f85642db206ff7a15f99fe58df4c38ac04899e languageName: node linkType: hard -"@jest/core@npm:^28.1.3": - version: 28.1.3 - resolution: "@jest/core@npm:28.1.3" +"@jest/core@npm:^29.7.0": + version: 29.7.0 + resolution: "@jest/core@npm:29.7.0" dependencies: - "@jest/console": "npm:^28.1.3" - "@jest/reporters": "npm:^28.1.3" - "@jest/test-result": "npm:^28.1.3" - "@jest/transform": "npm:^28.1.3" - "@jest/types": "npm:^28.1.3" + "@jest/console": "npm:^29.7.0" + "@jest/reporters": "npm:^29.7.0" + "@jest/test-result": "npm:^29.7.0" + "@jest/transform": "npm:^29.7.0" + "@jest/types": "npm:^29.6.3" "@types/node": "npm:*" ansi-escapes: "npm:^4.2.1" chalk: "npm:^4.0.0" ci-info: "npm:^3.2.0" exit: "npm:^0.1.2" graceful-fs: "npm:^4.2.9" - jest-changed-files: "npm:^28.1.3" - jest-config: "npm:^28.1.3" - jest-haste-map: "npm:^28.1.3" - jest-message-util: "npm:^28.1.3" - jest-regex-util: "npm:^28.0.2" - jest-resolve: "npm:^28.1.3" - jest-resolve-dependencies: "npm:^28.1.3" - jest-runner: "npm:^28.1.3" - jest-runtime: "npm:^28.1.3" - jest-snapshot: "npm:^28.1.3" - jest-util: "npm:^28.1.3" - jest-validate: "npm:^28.1.3" - jest-watcher: "npm:^28.1.3" + jest-changed-files: "npm:^29.7.0" + jest-config: "npm:^29.7.0" + jest-haste-map: "npm:^29.7.0" + jest-message-util: "npm:^29.7.0" + jest-regex-util: "npm:^29.6.3" + jest-resolve: "npm:^29.7.0" + jest-resolve-dependencies: "npm:^29.7.0" + jest-runner: "npm:^29.7.0" + jest-runtime: "npm:^29.7.0" + jest-snapshot: "npm:^29.7.0" + jest-util: "npm:^29.7.0" + jest-validate: "npm:^29.7.0" + jest-watcher: "npm:^29.7.0" micromatch: "npm:^4.0.4" - pretty-format: "npm:^28.1.3" - rimraf: "npm:^3.0.0" + pretty-format: "npm:^29.7.0" slash: "npm:^3.0.0" strip-ansi: "npm:^6.0.0" peerDependencies: @@ -3611,7 +3610,7 @@ __metadata: peerDependenciesMeta: node-notifier: optional: true - checksum: 72b56c7591dd1ec325c40e9f60f8111e17d4a09c918b7e5882de58ed1c656d6d34f085dfbdb49f65e6ac95b49919976c7b07821663cbcccd7f3a55c29db542b9 + checksum: ab6ac2e562d083faac7d8152ec1cc4eccc80f62e9579b69ed40aedf7211a6b2d57024a6cd53c4e35fd051c39a236e86257d1d99ebdb122291969a0a04563b51e languageName: node linkType: hard @@ -3624,18 +3623,6 @@ __metadata: languageName: node linkType: hard -"@jest/environment@npm:^28.1.3": - version: 28.1.3 - resolution: "@jest/environment@npm:28.1.3" - dependencies: - "@jest/fake-timers": "npm:^28.1.3" - "@jest/types": "npm:^28.1.3" - "@types/node": "npm:*" - jest-mock: "npm:^28.1.3" - checksum: 63a8efd099f8d5cd70398c7608d45fc91a5796b14d8f9f8c7fdb3a529e42004e3b60cf0c6e117cc88305d18ab7bb453f803a737e09293e9027a1e76ce835da57 - languageName: node - linkType: hard - "@jest/environment@npm:^29.7.0": version: 29.7.0 resolution: "@jest/environment@npm:29.7.0" @@ -3666,27 +3653,13 @@ __metadata: languageName: node linkType: hard -"@jest/expect@npm:^28.1.3": - version: 28.1.3 - resolution: "@jest/expect@npm:28.1.3" +"@jest/expect@npm:^29.7.0": + version: 29.7.0 + resolution: "@jest/expect@npm:29.7.0" dependencies: - expect: "npm:^28.1.3" - jest-snapshot: "npm:^28.1.3" - checksum: 31ea089e83a4c24f850043a97dfd777a352dd28a936819785f3d0de6e0bd537bfbfa8fd2df081db1adc68a6a55699e7d4ab3990d6a54e41753d86e5d2b66df2f - languageName: node - linkType: hard - -"@jest/fake-timers@npm:^28.1.3": - version: 28.1.3 - resolution: "@jest/fake-timers@npm:28.1.3" - dependencies: - "@jest/types": "npm:^28.1.3" - "@sinonjs/fake-timers": "npm:^9.1.2" - "@types/node": "npm:*" - jest-message-util: "npm:^28.1.3" - jest-mock: "npm:^28.1.3" - jest-util: "npm:^28.1.3" - checksum: 4002208f6637adc374175c97e845a19783f58874e9503fb956b801061ba1869a218964cf4631e1ac348e06e1667e982ceb94734db63ccfafdf37508f6b59be17 + expect: "npm:^29.7.0" + jest-snapshot: "npm:^29.7.0" + checksum: fea6c3317a8da5c840429d90bfe49d928e89c9e89fceee2149b93a11b7e9c73d2f6e4d7cdf647163da938fc4e2169e4490be6bae64952902bc7a701033fd4880 languageName: node linkType: hard @@ -3704,27 +3677,28 @@ __metadata: languageName: node linkType: hard -"@jest/globals@npm:^28.1.3": - version: 28.1.3 - resolution: "@jest/globals@npm:28.1.3" +"@jest/globals@npm:^29.7.0": + version: 29.7.0 + resolution: "@jest/globals@npm:29.7.0" dependencies: - "@jest/environment": "npm:^28.1.3" - "@jest/expect": "npm:^28.1.3" - "@jest/types": "npm:^28.1.3" - checksum: 3504bb23de629d466c6f2b6b75d2e1c1b10caccbbcfb7eaa82d22cc37711c8e364c243929581184846605c023b475ea6c42c2e3ea5994429a988d8d527af32cd + "@jest/environment": "npm:^29.7.0" + "@jest/expect": "npm:^29.7.0" + "@jest/types": "npm:^29.6.3" + jest-mock: "npm:^29.7.0" + checksum: 97dbb9459135693ad3a422e65ca1c250f03d82b2a77f6207e7fa0edd2c9d2015fbe4346f3dc9ebff1678b9d8da74754d4d440b7837497f8927059c0642a22123 languageName: node linkType: hard -"@jest/reporters@npm:^28.1.3": - version: 28.1.3 - resolution: "@jest/reporters@npm:28.1.3" +"@jest/reporters@npm:^29.7.0": + version: 29.7.0 + resolution: "@jest/reporters@npm:29.7.0" dependencies: "@bcoe/v8-coverage": "npm:^0.2.3" - "@jest/console": "npm:^28.1.3" - "@jest/test-result": "npm:^28.1.3" - "@jest/transform": "npm:^28.1.3" - "@jest/types": "npm:^28.1.3" - "@jridgewell/trace-mapping": "npm:^0.3.13" + "@jest/console": "npm:^29.7.0" + "@jest/test-result": "npm:^29.7.0" + "@jest/transform": "npm:^29.7.0" + "@jest/types": "npm:^29.6.3" + "@jridgewell/trace-mapping": "npm:^0.3.18" "@types/node": "npm:*" chalk: "npm:^4.0.0" collect-v8-coverage: "npm:^1.0.0" @@ -3732,24 +3706,23 @@ __metadata: glob: "npm:^7.1.3" graceful-fs: "npm:^4.2.9" istanbul-lib-coverage: "npm:^3.0.0" - istanbul-lib-instrument: "npm:^5.1.0" + istanbul-lib-instrument: "npm:^6.0.0" istanbul-lib-report: "npm:^3.0.0" istanbul-lib-source-maps: "npm:^4.0.0" istanbul-reports: "npm:^3.1.3" - jest-message-util: "npm:^28.1.3" - jest-util: "npm:^28.1.3" - jest-worker: "npm:^28.1.3" + jest-message-util: "npm:^29.7.0" + jest-util: "npm:^29.7.0" + jest-worker: "npm:^29.7.0" slash: "npm:^3.0.0" string-length: "npm:^4.0.1" strip-ansi: "npm:^6.0.0" - terminal-link: "npm:^2.0.0" v8-to-istanbul: "npm:^9.0.1" peerDependencies: node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 peerDependenciesMeta: node-notifier: optional: true - checksum: bdce58bf1cf1fc0f7fb0c2ae02b5a9a1da32da83ee4697b2b23b8a5b0ac056af55dac07dcf7e869f963943e935da3bd26a788c478b6d52064c77320530d95a89 + checksum: a17d1644b26dea14445cedd45567f4ba7834f980be2ef74447204e14238f121b50d8b858fde648083d2cd8f305f81ba434ba49e37a5f4237a6f2a61180cc73dc languageName: node linkType: hard @@ -3771,61 +3744,61 @@ __metadata: languageName: node linkType: hard -"@jest/source-map@npm:^28.1.2": - version: 28.1.2 - resolution: "@jest/source-map@npm:28.1.2" +"@jest/source-map@npm:^29.6.3": + version: 29.6.3 + resolution: "@jest/source-map@npm:29.6.3" dependencies: - "@jridgewell/trace-mapping": "npm:^0.3.13" + "@jridgewell/trace-mapping": "npm:^0.3.18" callsites: "npm:^3.0.0" graceful-fs: "npm:^4.2.9" - checksum: b82a5c2e93d35d86779c61a02ccb967d1b5cd2e9dd67d26d8add44958637cbbb99daeeb8129c7653389cb440dc2a2f5ae4d2183dc453c67669ff98938b775a3a + checksum: bcc5a8697d471396c0003b0bfa09722c3cd879ad697eb9c431e6164e2ea7008238a01a07193dfe3cbb48b1d258eb7251f6efcea36f64e1ebc464ea3c03ae2deb languageName: node linkType: hard -"@jest/test-result@npm:^28.1.3": - version: 28.1.3 - resolution: "@jest/test-result@npm:28.1.3" +"@jest/test-result@npm:^29.7.0": + version: 29.7.0 + resolution: "@jest/test-result@npm:29.7.0" dependencies: - "@jest/console": "npm:^28.1.3" - "@jest/types": "npm:^28.1.3" + "@jest/console": "npm:^29.7.0" + "@jest/types": "npm:^29.6.3" "@types/istanbul-lib-coverage": "npm:^2.0.0" collect-v8-coverage: "npm:^1.0.0" - checksum: d343f08e6e4971e8132540014711c5d29887651b036f03db8c7e9d6509fe9801316f0a6a393cd0af0431c50e6d1c1d310957f06b6cc20c08cab2e67b66a00c88 + checksum: c073ab7dfe3c562bff2b8fee6cc724ccc20aa96bcd8ab48ccb2aa309b4c0c1923a9e703cea386bd6ae9b71133e92810475bb9c7c22328fc63f797ad3324ed189 languageName: node linkType: hard -"@jest/test-sequencer@npm:^28.1.3": - version: 28.1.3 - resolution: "@jest/test-sequencer@npm:28.1.3" +"@jest/test-sequencer@npm:^29.7.0": + version: 29.7.0 + resolution: "@jest/test-sequencer@npm:29.7.0" dependencies: - "@jest/test-result": "npm:^28.1.3" + "@jest/test-result": "npm:^29.7.0" graceful-fs: "npm:^4.2.9" - jest-haste-map: "npm:^28.1.3" + jest-haste-map: "npm:^29.7.0" slash: "npm:^3.0.0" - checksum: a2f05475c39a8e3e446a0f98c6830aa2492daffe8286db58c95e1870479ed4c2a74e2e51fac1d8b2958858aeb194331145c217d04482fb9312ba1a9e7dded171 + checksum: 4420c26a0baa7035c5419b0892ff8ffe9a41b1583ec54a10db3037cd46a7e29dd3d7202f8aa9d376e9e53be5f8b1bc0d16e1de6880a6d319b033b01dc4c8f639 languageName: node linkType: hard -"@jest/transform@npm:^28.1.3": - version: 28.1.3 - resolution: "@jest/transform@npm:28.1.3" +"@jest/transform@npm:^29.7.0": + version: 29.7.0 + resolution: "@jest/transform@npm:29.7.0" dependencies: "@babel/core": "npm:^7.11.6" - "@jest/types": "npm:^28.1.3" - "@jridgewell/trace-mapping": "npm:^0.3.13" + "@jest/types": "npm:^29.6.3" + "@jridgewell/trace-mapping": "npm:^0.3.18" babel-plugin-istanbul: "npm:^6.1.1" chalk: "npm:^4.0.0" - convert-source-map: "npm:^1.4.0" - fast-json-stable-stringify: "npm:^2.0.0" + convert-source-map: "npm:^2.0.0" + fast-json-stable-stringify: "npm:^2.1.0" graceful-fs: "npm:^4.2.9" - jest-haste-map: "npm:^28.1.3" - jest-regex-util: "npm:^28.0.2" - jest-util: "npm:^28.1.3" + jest-haste-map: "npm:^29.7.0" + jest-regex-util: "npm:^29.6.3" + jest-util: "npm:^29.7.0" micromatch: "npm:^4.0.4" pirates: "npm:^4.0.4" slash: "npm:^3.0.0" - write-file-atomic: "npm:^4.0.1" - checksum: 89bc17ca22d5e81eb35e9549beaa5778da0209c12c108552322b72fa7b41a387d119168dea28fd9415f16883fc6dd7a811690654ebb958375e70158b4d0e2965 + write-file-atomic: "npm:^4.0.2" + checksum: 30f42293545ab037d5799c81d3e12515790bb58513d37f788ce32d53326d0d72ebf5b40f989e6896739aa50a5f77be44686e510966370d58511d5ad2637c68c1 languageName: node linkType: hard @@ -3922,7 +3895,7 @@ __metadata: languageName: node linkType: hard -"@jridgewell/trace-mapping@npm:^0.3.12, @jridgewell/trace-mapping@npm:^0.3.13, @jridgewell/trace-mapping@npm:^0.3.17, @jridgewell/trace-mapping@npm:^0.3.20, @jridgewell/trace-mapping@npm:^0.3.9": +"@jridgewell/trace-mapping@npm:^0.3.12, @jridgewell/trace-mapping@npm:^0.3.17, @jridgewell/trace-mapping@npm:^0.3.18, @jridgewell/trace-mapping@npm:^0.3.20, @jridgewell/trace-mapping@npm:^0.3.9": version: 0.3.22 resolution: "@jridgewell/trace-mapping@npm:0.3.22" dependencies: @@ -6301,15 +6274,6 @@ __metadata: languageName: node linkType: hard -"@sinonjs/commons@npm:^1.7.0": - version: 1.8.6 - resolution: "@sinonjs/commons@npm:1.8.6" - dependencies: - type-detect: "npm:4.0.8" - checksum: 51987338fd8b4d1e135822ad593dd23a3288764aa41d83c695124d512bc38b87eece859078008651ecc7f1df89a7e558a515dc6f02d21a93be4ba50b39a28914 - languageName: node - linkType: hard - "@sinonjs/commons@npm:^3.0.0": version: 3.0.0 resolution: "@sinonjs/commons@npm:3.0.0" @@ -6328,15 +6292,6 @@ __metadata: languageName: node linkType: hard -"@sinonjs/fake-timers@npm:^9.1.2": - version: 9.1.2 - resolution: "@sinonjs/fake-timers@npm:9.1.2" - dependencies: - "@sinonjs/commons": "npm:^1.7.0" - checksum: 033c74ad389b0655b6af2fa1af31dddf45878e65879f06c5d1940e0ceb053a234f2f46c728dcd97df8ee9312431e45dd7aedaee3a69d47f73a2001a7547fc3d6 - languageName: node - linkType: hard - "@smithy/abort-controller@npm:^2.0.1, @smithy/abort-controller@npm:^2.0.16": version: 2.0.16 resolution: "@smithy/abort-controller@npm:2.0.16" @@ -7242,7 +7197,7 @@ __metadata: "@radix-ui/react-accordion": "npm:^1.1.2" "@radix-ui/react-navigation-menu": "npm:^1.1.4" "@types/broken-link-checker": "npm:^0.7.1" - "@types/node": "npm:^18.7.3" + "@types/node": "npm:~20.11" "@types/sqlite3": "npm:^3.1.9" "@types/ws": "npm:^8.5.9" "@vercel/analytics": "npm:^1.1.1" @@ -7359,7 +7314,7 @@ __metadata: "@swc/jest": "npm:^0.2.26" "@types/glob": "npm:^8.1.0" "@types/jest": "npm:^28.1.2" - "@types/node": "npm:^18.7.3" + "@types/node": "npm:~20.11" "@types/react": "npm:^18.2.47" "@types/react-dom": "npm:^18.2.18" "@typescript-eslint/eslint-plugin": "npm:^5.57.0" @@ -7377,7 +7332,7 @@ __metadata: eslint-plugin-react-hooks: "npm:^4.6.0" fs-extra: "npm:^11.1.0" husky: "npm:^8.0.0" - jest: "npm:^28.1.1" + jest: "npm:^29.7.0" json5: "npm:^2.2.3" lazyrepo: "npm:0.0.0-alpha.27" lint-staged: "npm:>=10" @@ -7401,7 +7356,7 @@ __metadata: "@aws-sdk/client-s3": "npm:^3.440.0" "@aws-sdk/lib-storage": "npm:^3.440.0" "@types/is-ci": "npm:^3.0.0" - "@types/node": "npm:^18.7.3" + "@types/node": "npm:~20.11" "@types/tar": "npm:^6.1.7" "@typescript-eslint/utils": "npm:^5.59.0" ast-types: "npm:^0.14.2" @@ -7551,7 +7506,7 @@ __metadata: "@tldraw/assets": "workspace:*" "@tldraw/tldraw": "workspace:*" "@types/fs-extra": "npm:^11.0.1" - "@types/node": "npm:^18.7.3" + "@types/node": "npm:~20.11" "@types/react": "npm:^18.2.47" "@types/react-dom": "npm:^18.2.18" "@types/react-router-dom": "npm:^5.1.8" @@ -8136,12 +8091,12 @@ __metadata: languageName: node linkType: hard -"@types/node@npm:*": - version: 20.11.0 - resolution: "@types/node@npm:20.11.0" +"@types/node@npm:*, @types/node@npm:~20.11": + version: 20.11.11 + resolution: "@types/node@npm:20.11.11" dependencies: undici-types: "npm:~5.26.4" - checksum: 8da60a8ccb65181c3d6f7686ddc5f1b1616cafa14d9e520a866adff82c17cc99336a78dd7ce7bee8f54e2332946f678b0e3aa377fbaaf751d3c05b64600872c6 + checksum: b5603c6576af14d90b03d21d9c5b7dac372770681bcd336bab30092b42d9e41c06c613dbd016f99b9bce586a5f1540f4aa7d83acb6e79da1a38e2c0914e817cf languageName: node linkType: hard @@ -8152,7 +8107,7 @@ __metadata: languageName: node linkType: hard -"@types/node@npm:^18.11.18, @types/node@npm:^18.7.3": +"@types/node@npm:^18.11.18": version: 18.19.6 resolution: "@types/node@npm:18.19.6" dependencies: @@ -8175,13 +8130,6 @@ __metadata: languageName: node linkType: hard -"@types/prettier@npm:^2.1.5": - version: 2.7.3 - resolution: "@types/prettier@npm:2.7.3" - checksum: cda84c19acc3bf327545b1ce71114a7d08efbd67b5030b9e8277b347fa57b05178045f70debe1d363ff7efdae62f237260713aafc2d7217e06fc99b048a88497 - languageName: node - linkType: hard - "@types/prop-types@npm:*": version: 15.7.11 resolution: "@types/prop-types@npm:15.7.11" @@ -9857,20 +9805,20 @@ __metadata: languageName: node linkType: hard -"babel-jest@npm:^28.1.3": - version: 28.1.3 - resolution: "babel-jest@npm:28.1.3" +"babel-jest@npm:^29.7.0": + version: 29.7.0 + resolution: "babel-jest@npm:29.7.0" dependencies: - "@jest/transform": "npm:^28.1.3" + "@jest/transform": "npm:^29.7.0" "@types/babel__core": "npm:^7.1.14" babel-plugin-istanbul: "npm:^6.1.1" - babel-preset-jest: "npm:^28.1.3" + babel-preset-jest: "npm:^29.6.3" chalk: "npm:^4.0.0" graceful-fs: "npm:^4.2.9" slash: "npm:^3.0.0" peerDependencies: "@babel/core": ^7.8.0 - checksum: 6dcbf194a037fb3df18d2aee56a3919a98a9b34292d1eb4aad823ebfa8b67f5a55f897213c1aafd52183928e99770319b8a094681ccb2910dc9993e6a7c1fd61 + checksum: 8a0953bd813b3a8926008f7351611055548869e9a53dd36d6e7e96679001f71e65fd7dbfe253265c3ba6a4e630dc7c845cf3e78b17d758ef1880313ce8fba258 languageName: node linkType: hard @@ -9887,15 +9835,15 @@ __metadata: languageName: node linkType: hard -"babel-plugin-jest-hoist@npm:^28.1.3": - version: 28.1.3 - resolution: "babel-plugin-jest-hoist@npm:28.1.3" +"babel-plugin-jest-hoist@npm:^29.6.3": + version: 29.6.3 + resolution: "babel-plugin-jest-hoist@npm:29.6.3" dependencies: "@babel/template": "npm:^7.3.3" "@babel/types": "npm:^7.3.3" "@types/babel__core": "npm:^7.1.14" "@types/babel__traverse": "npm:^7.0.6" - checksum: 355e383dae2b50efa0aff73a751f6bc55e7ae19ddfe72c73f4a0ad7667a671175aba17d824833d98b33602da18dd04e5e5d37d03c4f245940d8664c45ad29df5 + checksum: 9bfa86ec4170bd805ab8ca5001ae50d8afcb30554d236ba4a7ffc156c1a92452e220e4acbd98daefc12bf0216fccd092d0a2efed49e7e384ec59e0597a926d65 languageName: node linkType: hard @@ -9957,15 +9905,15 @@ __metadata: languageName: node linkType: hard -"babel-preset-jest@npm:^28.1.3": - version: 28.1.3 - resolution: "babel-preset-jest@npm:28.1.3" +"babel-preset-jest@npm:^29.6.3": + version: 29.6.3 + resolution: "babel-preset-jest@npm:29.6.3" dependencies: - babel-plugin-jest-hoist: "npm:^28.1.3" + babel-plugin-jest-hoist: "npm:^29.6.3" babel-preset-current-node-syntax: "npm:^1.0.0" peerDependencies: "@babel/core": ^7.0.0 - checksum: 8248a4a5ca4242cc06ad13b10b9183ad2664da8fb0da060c352223dcf286f0ce9c708fa17901dc44ecabec25e6d309e5e5b9830a61dd777c3925f187a345a47d + checksum: aa4ff2a8a728d9d698ed521e3461a109a1e66202b13d3494e41eea30729a5e7cc03b3a2d56c594423a135429c37bf63a9fa8b0b9ce275298be3095a88c69f6fb languageName: node linkType: hard @@ -11139,13 +11087,6 @@ __metadata: languageName: node linkType: hard -"convert-source-map@npm:^1.4.0": - version: 1.9.0 - resolution: "convert-source-map@npm:1.9.0" - checksum: dc55a1f28ddd0e9485ef13565f8f756b342f9a46c4ae18b843fe3c30c675d058d6a4823eff86d472f187b176f0adf51ea7b69ea38be34be4a63cbbf91b0593c8 - languageName: node - linkType: hard - "convert-source-map@npm:^2.0.0": version: 2.0.0 resolution: "convert-source-map@npm:2.0.0" @@ -11227,6 +11168,23 @@ __metadata: languageName: node linkType: hard +"create-jest@npm:^29.7.0": + version: 29.7.0 + resolution: "create-jest@npm:29.7.0" + dependencies: + "@jest/types": "npm:^29.6.3" + chalk: "npm:^4.0.0" + exit: "npm:^0.1.2" + graceful-fs: "npm:^4.2.9" + jest-config: "npm:^29.7.0" + jest-util: "npm:^29.7.0" + prompts: "npm:^2.0.1" + bin: + create-jest: bin/create-jest.js + checksum: 847b4764451672b4174be4d5c6d7d63442ec3aa5f3de52af924e4d996d87d7801c18e125504f25232fc75840f6625b3ac85860fac6ce799b5efae7bdcaf4a2b7 + languageName: node + linkType: hard + "create-require@npm:^1.1.0": version: 1.1.1 resolution: "create-require@npm:1.1.1" @@ -11558,6 +11516,18 @@ __metadata: languageName: node linkType: hard +"dedent@npm:^1.0.0": + version: 1.5.1 + resolution: "dedent@npm:1.5.1" + peerDependencies: + babel-plugin-macros: ^3.1.0 + peerDependenciesMeta: + babel-plugin-macros: + optional: true + checksum: fc00a8bc3dfb7c413a778dc40ee8151b6c6ff35159d641f36ecd839c1df5c6e0ec5f4992e658c82624a1a62aaecaffc23b9c965ceb0bbf4d698bfc16469ac27d + languageName: node + linkType: hard + "deep-equal@npm:^2.0.5": version: 2.2.3 resolution: "deep-equal@npm:2.2.3" @@ -12076,10 +12046,10 @@ __metadata: languageName: node linkType: hard -"emittery@npm:^0.10.2": - version: 0.10.2 - resolution: "emittery@npm:0.10.2" - checksum: fa86fc2b1f4c792d7d479a4de1a6a1f74b0b597770bae770336f0be6501e64be0995aa07d284ae502b269f5cec960cd0c44c91dd090d06d8deecee6d9787e396 +"emittery@npm:^0.13.1": + version: 0.13.1 + resolution: "emittery@npm:0.13.1" + checksum: fbe214171d878b924eedf1757badf58a5dce071cd1fa7f620fa841a0901a80d6da47ff05929d53163105e621ce11a71b9d8acb1148ffe1745e045145f6e69521 languageName: node linkType: hard @@ -13641,7 +13611,7 @@ __metadata: languageName: node linkType: hard -"expect@npm:^28.0.0, expect@npm:^28.1.3": +"expect@npm:^28.0.0": version: 28.1.3 resolution: "expect@npm:28.1.3" dependencies: @@ -13654,7 +13624,7 @@ __metadata: languageName: node linkType: hard -"expect@npm:^29.0.0": +"expect@npm:^29.0.0, expect@npm:^29.7.0": version: 29.7.0 resolution: "expect@npm:29.7.0" dependencies: @@ -15139,7 +15109,7 @@ __metadata: dependencies: "@cloudflare/workers-types": "npm:^4.20230821.0" "@tldraw/utils": "workspace:*" - "@types/node": "npm:^18.7.3" + "@types/node": "npm:~20.11" discord-api-types: "npm:^0.37.67" typescript: "npm:^5.2.2" wrangler: "npm:3.16.0" @@ -16169,7 +16139,7 @@ __metadata: languageName: node linkType: hard -"istanbul-lib-instrument@npm:^5.0.4, istanbul-lib-instrument@npm:^5.1.0": +"istanbul-lib-instrument@npm:^5.0.4": version: 5.2.1 resolution: "istanbul-lib-instrument@npm:5.2.1" dependencies: @@ -16182,6 +16152,19 @@ __metadata: languageName: node linkType: hard +"istanbul-lib-instrument@npm:^6.0.0": + version: 6.0.1 + resolution: "istanbul-lib-instrument@npm:6.0.1" + dependencies: + "@babel/core": "npm:^7.12.3" + "@babel/parser": "npm:^7.14.7" + "@istanbuljs/schema": "npm:^0.1.2" + istanbul-lib-coverage: "npm:^3.2.0" + semver: "npm:^7.5.4" + checksum: 95fd8c66e586840989cb3c7819c6da66c4742a6fedbf16b51a5c7f1898941ad07b79ddff020f479d3a1d76743ecdbf255d93c35221875687477d4b118026e7e7 + languageName: node + linkType: hard + "istanbul-lib-report@npm:^3.0.0": version: 3.0.1 resolution: "istanbul-lib-report@npm:3.0.1" @@ -16278,58 +16261,59 @@ __metadata: languageName: node linkType: hard -"jest-changed-files@npm:^28.1.3": - version: 28.1.3 - resolution: "jest-changed-files@npm:28.1.3" +"jest-changed-files@npm:^29.7.0": + version: 29.7.0 + resolution: "jest-changed-files@npm:29.7.0" dependencies: execa: "npm:^5.0.0" + jest-util: "npm:^29.7.0" p-limit: "npm:^3.1.0" - checksum: 206be715fed00c70d69f46f6274129816b2959dd9fe5d77b7c929d572eef8f55092baea48f51cf45848edd17e23b00aa720201b5e7781904e6ede06ba666e668 + checksum: 3d93742e56b1a73a145d55b66e96711fbf87ef89b96c2fab7cfdfba8ec06612591a982111ca2b712bb853dbc16831ec8b43585a2a96b83862d6767de59cbf83d languageName: node linkType: hard -"jest-circus@npm:^28.1.3": - version: 28.1.3 - resolution: "jest-circus@npm:28.1.3" +"jest-circus@npm:^29.7.0": + version: 29.7.0 + resolution: "jest-circus@npm:29.7.0" dependencies: - "@jest/environment": "npm:^28.1.3" - "@jest/expect": "npm:^28.1.3" - "@jest/test-result": "npm:^28.1.3" - "@jest/types": "npm:^28.1.3" + "@jest/environment": "npm:^29.7.0" + "@jest/expect": "npm:^29.7.0" + "@jest/test-result": "npm:^29.7.0" + "@jest/types": "npm:^29.6.3" "@types/node": "npm:*" chalk: "npm:^4.0.0" co: "npm:^4.6.0" - dedent: "npm:^0.7.0" + dedent: "npm:^1.0.0" is-generator-fn: "npm:^2.0.0" - jest-each: "npm:^28.1.3" - jest-matcher-utils: "npm:^28.1.3" - jest-message-util: "npm:^28.1.3" - jest-runtime: "npm:^28.1.3" - jest-snapshot: "npm:^28.1.3" - jest-util: "npm:^28.1.3" + jest-each: "npm:^29.7.0" + jest-matcher-utils: "npm:^29.7.0" + jest-message-util: "npm:^29.7.0" + jest-runtime: "npm:^29.7.0" + jest-snapshot: "npm:^29.7.0" + jest-util: "npm:^29.7.0" p-limit: "npm:^3.1.0" - pretty-format: "npm:^28.1.3" + pretty-format: "npm:^29.7.0" + pure-rand: "npm:^6.0.0" slash: "npm:^3.0.0" stack-utils: "npm:^2.0.3" - checksum: 3ac1f369cadbdd1982c123c04bc69f140b9790a8d0a729084f53aa13154bbdf318ba162dc70daecc37ef1d620afa339408d6b99a0314306238c547dc6a25b4a3 + checksum: 716a8e3f40572fd0213bcfc1da90274bf30d856e5133af58089a6ce45089b63f4d679bd44e6be9d320e8390483ebc3ae9921981993986d21639d9019b523123d languageName: node linkType: hard -"jest-cli@npm:^28.1.3": - version: 28.1.3 - resolution: "jest-cli@npm:28.1.3" +"jest-cli@npm:^29.7.0": + version: 29.7.0 + resolution: "jest-cli@npm:29.7.0" dependencies: - "@jest/core": "npm:^28.1.3" - "@jest/test-result": "npm:^28.1.3" - "@jest/types": "npm:^28.1.3" + "@jest/core": "npm:^29.7.0" + "@jest/test-result": "npm:^29.7.0" + "@jest/types": "npm:^29.6.3" chalk: "npm:^4.0.0" + create-jest: "npm:^29.7.0" exit: "npm:^0.1.2" - graceful-fs: "npm:^4.2.9" import-local: "npm:^3.0.2" - jest-config: "npm:^28.1.3" - jest-util: "npm:^28.1.3" - jest-validate: "npm:^28.1.3" - prompts: "npm:^2.0.1" + jest-config: "npm:^29.7.0" + jest-util: "npm:^29.7.0" + jest-validate: "npm:^29.7.0" yargs: "npm:^17.3.1" peerDependencies: node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 @@ -16338,34 +16322,34 @@ __metadata: optional: true bin: jest: bin/jest.js - checksum: 935a0c517e7b972e60543fdb921302fc63d78e629ab077195c91336279c0815978ca2e03c65ec6dbff3226a5c4ee64b13c7ef5a86387330c9da54454cd4bbbfb + checksum: 6cc62b34d002c034203065a31e5e9a19e7c76d9e8ef447a6f70f759c0714cb212c6245f75e270ba458620f9c7b26063cd8cf6cd1f7e3afd659a7cc08add17307 languageName: node linkType: hard -"jest-config@npm:^28.1.3": - version: 28.1.3 - resolution: "jest-config@npm:28.1.3" +"jest-config@npm:^29.7.0": + version: 29.7.0 + resolution: "jest-config@npm:29.7.0" dependencies: "@babel/core": "npm:^7.11.6" - "@jest/test-sequencer": "npm:^28.1.3" - "@jest/types": "npm:^28.1.3" - babel-jest: "npm:^28.1.3" + "@jest/test-sequencer": "npm:^29.7.0" + "@jest/types": "npm:^29.6.3" + babel-jest: "npm:^29.7.0" chalk: "npm:^4.0.0" ci-info: "npm:^3.2.0" deepmerge: "npm:^4.2.2" glob: "npm:^7.1.3" graceful-fs: "npm:^4.2.9" - jest-circus: "npm:^28.1.3" - jest-environment-node: "npm:^28.1.3" - jest-get-type: "npm:^28.0.2" - jest-regex-util: "npm:^28.0.2" - jest-resolve: "npm:^28.1.3" - jest-runner: "npm:^28.1.3" - jest-util: "npm:^28.1.3" - jest-validate: "npm:^28.1.3" + jest-circus: "npm:^29.7.0" + jest-environment-node: "npm:^29.7.0" + jest-get-type: "npm:^29.6.3" + jest-regex-util: "npm:^29.6.3" + jest-resolve: "npm:^29.7.0" + jest-runner: "npm:^29.7.0" + jest-util: "npm:^29.7.0" + jest-validate: "npm:^29.7.0" micromatch: "npm:^4.0.4" parse-json: "npm:^5.2.0" - pretty-format: "npm:^28.1.3" + pretty-format: "npm:^29.7.0" slash: "npm:^3.0.0" strip-json-comments: "npm:^3.1.1" peerDependencies: @@ -16376,7 +16360,7 @@ __metadata: optional: true ts-node: optional: true - checksum: 457d8709e24e0e4d8a8a8e074a65092e896d80f30d80c0448f8ce6a24bd0b30060a1a593a20aa7fb8c3c2228d519f0a979ccdff3a176efb60afc7187785d59cf + checksum: 6bdf570e9592e7d7dd5124fc0e21f5fe92bd15033513632431b211797e3ab57eaa312f83cc6481b3094b72324e369e876f163579d60016677c117ec4853cf02b languageName: node linkType: hard @@ -16404,25 +16388,25 @@ __metadata: languageName: node linkType: hard -"jest-docblock@npm:^28.1.1": - version: 28.1.1 - resolution: "jest-docblock@npm:28.1.1" +"jest-docblock@npm:^29.7.0": + version: 29.7.0 + resolution: "jest-docblock@npm:29.7.0" dependencies: detect-newline: "npm:^3.0.0" - checksum: 4062cb9ba54c88c88f5452fcd054937f35755240014ea277ff8dbfde30efcbdb77a4844a09279e55ec98f2fe9a1978a9b8583315e93fdf03602a619ae070356b + checksum: 8d48818055bc96c9e4ec2e217a5a375623c0d0bfae8d22c26e011074940c202aa2534a3362294c81d981046885c05d304376afba9f2874143025981148f3e96d languageName: node linkType: hard -"jest-each@npm:^28.1.3": - version: 28.1.3 - resolution: "jest-each@npm:28.1.3" +"jest-each@npm:^29.7.0": + version: 29.7.0 + resolution: "jest-each@npm:29.7.0" dependencies: - "@jest/types": "npm:^28.1.3" + "@jest/types": "npm:^29.6.3" chalk: "npm:^4.0.0" - jest-get-type: "npm:^28.0.2" - jest-util: "npm:^28.1.3" - pretty-format: "npm:^28.1.3" - checksum: 4877cdda70048923ad6aabf25779e3e2c6bc580253d95739b8af291fbc506b95b043031b498f26807093abe9e6e93ecd7b50e3ce5b7ab175fc21637a197a248b + jest-get-type: "npm:^29.6.3" + jest-util: "npm:^29.7.0" + pretty-format: "npm:^29.7.0" + checksum: bd1a077654bdaa013b590deb5f7e7ade68f2e3289180a8c8f53bc8a49f3b40740c0ec2d3a3c1aee906f682775be2bebbac37491d80b634d15276b0aa0f2e3fda languageName: node linkType: hard @@ -16447,17 +16431,17 @@ __metadata: languageName: node linkType: hard -"jest-environment-node@npm:^28.1.3": - version: 28.1.3 - resolution: "jest-environment-node@npm:28.1.3" +"jest-environment-node@npm:^29.7.0": + version: 29.7.0 + resolution: "jest-environment-node@npm:29.7.0" dependencies: - "@jest/environment": "npm:^28.1.3" - "@jest/fake-timers": "npm:^28.1.3" - "@jest/types": "npm:^28.1.3" + "@jest/environment": "npm:^29.7.0" + "@jest/fake-timers": "npm:^29.7.0" + "@jest/types": "npm:^29.6.3" "@types/node": "npm:*" - jest-mock: "npm:^28.1.3" - jest-util: "npm:^28.1.3" - checksum: ab9ec5c57309a0ca40ebc58ba84b4980445f24d351cc3292c8c8715062c7ea14442d9d8e7701eccb9cb810f425bbdb7eba631fd76fb1835b92150b6bdda7cb18 + jest-mock: "npm:^29.7.0" + jest-util: "npm:^29.7.0" + checksum: 9cf7045adf2307cc93aed2f8488942e39388bff47ec1df149a997c6f714bfc66b2056768973770d3f8b1bf47396c19aa564877eb10ec978b952c6018ed1bd637 languageName: node linkType: hard @@ -16475,36 +16459,36 @@ __metadata: languageName: node linkType: hard -"jest-haste-map@npm:^28.1.3": - version: 28.1.3 - resolution: "jest-haste-map@npm:28.1.3" +"jest-haste-map@npm:^29.7.0": + version: 29.7.0 + resolution: "jest-haste-map@npm:29.7.0" dependencies: - "@jest/types": "npm:^28.1.3" + "@jest/types": "npm:^29.6.3" "@types/graceful-fs": "npm:^4.1.3" "@types/node": "npm:*" anymatch: "npm:^3.0.3" fb-watchman: "npm:^2.0.0" fsevents: "npm:^2.3.2" graceful-fs: "npm:^4.2.9" - jest-regex-util: "npm:^28.0.2" - jest-util: "npm:^28.1.3" - jest-worker: "npm:^28.1.3" + jest-regex-util: "npm:^29.6.3" + jest-util: "npm:^29.7.0" + jest-worker: "npm:^29.7.0" micromatch: "npm:^4.0.4" walker: "npm:^1.0.8" dependenciesMeta: fsevents: optional: true - checksum: c78e0e81e3f138f379440fb2ddfdc3753da377b74477df02ef404d5de1508d6545d28cf02516713dbde093a8c112098be6f50080a7a8fab6b888992720322a57 + checksum: 8531b42003581cb18a69a2774e68c456fb5a5c3280b1b9b77475af9e346b6a457250f9d756bfeeae2fe6cbc9ef28434c205edab9390ee970a919baddfa08bb85 languageName: node linkType: hard -"jest-leak-detector@npm:^28.1.3": - version: 28.1.3 - resolution: "jest-leak-detector@npm:28.1.3" +"jest-leak-detector@npm:^29.7.0": + version: 29.7.0 + resolution: "jest-leak-detector@npm:29.7.0" dependencies: - jest-get-type: "npm:^28.0.2" - pretty-format: "npm:^28.1.3" - checksum: 2e976a4880cf9af11f53a19f6a3820e0f90b635a900737a5427fc42e337d5628ba446dcd7c020ecea3806cf92bc0bbf6982ed62a9cd84e5a13d8751aa30fbbb7 + jest-get-type: "npm:^29.6.3" + pretty-format: "npm:^29.7.0" + checksum: e3950e3ddd71e1d0c22924c51a300a1c2db6cf69ec1e51f95ccf424bcc070f78664813bef7aed4b16b96dfbdeea53fe358f8aeaaea84346ae15c3735758f1605 languageName: node linkType: hard @@ -16566,16 +16550,6 @@ __metadata: languageName: node linkType: hard -"jest-mock@npm:^28.1.3": - version: 28.1.3 - resolution: "jest-mock@npm:28.1.3" - dependencies: - "@jest/types": "npm:^28.1.3" - "@types/node": "npm:*" - checksum: 43cbec0ceddea795b8b2bc09f8632eecc97b88ef018a9c9737b887ed6cbdbda000a436e9165dce2bccfbb949be8b0daca6faa530dc390d43a0e5e3099f3ae216 - languageName: node - linkType: hard - "jest-mock@npm:^29.7.0": version: 29.7.0 resolution: "jest-mock@npm:29.7.0" @@ -16599,127 +16573,124 @@ __metadata: languageName: node linkType: hard -"jest-regex-util@npm:^28.0.2": - version: 28.0.2 - resolution: "jest-regex-util@npm:28.0.2" - checksum: 0ea8c5c82ec88bc85e273c0ec82e0c0f35f7a1e2d055070e50f0cc2a2177f848eec55f73e37ae0d045c3db5014c42b2f90ac62c1ab3fdb354d2abd66a9e08add +"jest-regex-util@npm:^29.6.3": + version: 29.6.3 + resolution: "jest-regex-util@npm:29.6.3" + checksum: 0518beeb9bf1228261695e54f0feaad3606df26a19764bc19541e0fc6e2a3737191904607fb72f3f2ce85d9c16b28df79b7b1ec9443aa08c3ef0e9efda6f8f2a languageName: node linkType: hard -"jest-resolve-dependencies@npm:^28.1.3": - version: 28.1.3 - resolution: "jest-resolve-dependencies@npm:28.1.3" +"jest-resolve-dependencies@npm:^29.7.0": + version: 29.7.0 + resolution: "jest-resolve-dependencies@npm:29.7.0" dependencies: - jest-regex-util: "npm:^28.0.2" - jest-snapshot: "npm:^28.1.3" - checksum: 5c3128ea5f702a22141116b6a3d83c594c192d3e17b7235a1d47ecd64bcd9aa4924100668804e6b54faf5a1437a366f37165a2ea7170a2ce35899323b4ed7aac + jest-regex-util: "npm:^29.6.3" + jest-snapshot: "npm:^29.7.0" + checksum: 1e206f94a660d81e977bcfb1baae6450cb4a81c92e06fad376cc5ea16b8e8c6ea78c383f39e95591a9eb7f925b6a1021086c38941aa7c1b8a6a813c2f6e93675 languageName: node linkType: hard -"jest-resolve@npm:^28.1.3": - version: 28.1.3 - resolution: "jest-resolve@npm:28.1.3" +"jest-resolve@npm:^29.7.0": + version: 29.7.0 + resolution: "jest-resolve@npm:29.7.0" dependencies: chalk: "npm:^4.0.0" graceful-fs: "npm:^4.2.9" - jest-haste-map: "npm:^28.1.3" + jest-haste-map: "npm:^29.7.0" jest-pnp-resolver: "npm:^1.2.2" - jest-util: "npm:^28.1.3" - jest-validate: "npm:^28.1.3" + jest-util: "npm:^29.7.0" + jest-validate: "npm:^29.7.0" resolve: "npm:^1.20.0" - resolve.exports: "npm:^1.1.0" + resolve.exports: "npm:^2.0.0" slash: "npm:^3.0.0" - checksum: 742b2301a43172206bf88d405df73d19510cfd4eacb0fb16d620157de408e9f7399567a57c86c61b30aaa303c15d88a77b38a69ad0230d288e44db4d44d5f724 + checksum: faa466fd9bc69ea6c37a545a7c6e808e073c66f46ab7d3d8a6ef084f8708f201b85d5fe1799789578b8b47fa1de47b9ee47b414d1863bc117a49e032ba77b7c7 languageName: node linkType: hard -"jest-runner@npm:^28.1.3": - version: 28.1.3 - resolution: "jest-runner@npm:28.1.3" +"jest-runner@npm:^29.7.0": + version: 29.7.0 + resolution: "jest-runner@npm:29.7.0" dependencies: - "@jest/console": "npm:^28.1.3" - "@jest/environment": "npm:^28.1.3" - "@jest/test-result": "npm:^28.1.3" - "@jest/transform": "npm:^28.1.3" - "@jest/types": "npm:^28.1.3" + "@jest/console": "npm:^29.7.0" + "@jest/environment": "npm:^29.7.0" + "@jest/test-result": "npm:^29.7.0" + "@jest/transform": "npm:^29.7.0" + "@jest/types": "npm:^29.6.3" "@types/node": "npm:*" chalk: "npm:^4.0.0" - emittery: "npm:^0.10.2" + emittery: "npm:^0.13.1" graceful-fs: "npm:^4.2.9" - jest-docblock: "npm:^28.1.1" - jest-environment-node: "npm:^28.1.3" - jest-haste-map: "npm:^28.1.3" - jest-leak-detector: "npm:^28.1.3" - jest-message-util: "npm:^28.1.3" - jest-resolve: "npm:^28.1.3" - jest-runtime: "npm:^28.1.3" - jest-util: "npm:^28.1.3" - jest-watcher: "npm:^28.1.3" - jest-worker: "npm:^28.1.3" + jest-docblock: "npm:^29.7.0" + jest-environment-node: "npm:^29.7.0" + jest-haste-map: "npm:^29.7.0" + jest-leak-detector: "npm:^29.7.0" + jest-message-util: "npm:^29.7.0" + jest-resolve: "npm:^29.7.0" + jest-runtime: "npm:^29.7.0" + jest-util: "npm:^29.7.0" + jest-watcher: "npm:^29.7.0" + jest-worker: "npm:^29.7.0" p-limit: "npm:^3.1.0" source-map-support: "npm:0.5.13" - checksum: 0fb6ed4f628650da9ff502b89bfdf98ea7f3015ad0369429c223ddae793573d9c5f350e95756e8bb827e2e6e3de03e5cb94569075c5788e574697b63c09d80ae + checksum: 9d8748a494bd90f5c82acea99be9e99f21358263ce6feae44d3f1b0cd90991b5df5d18d607e73c07be95861ee86d1cbab2a3fc6ca4b21805f07ac29d47c1da1e languageName: node linkType: hard -"jest-runtime@npm:^28.1.3": - version: 28.1.3 - resolution: "jest-runtime@npm:28.1.3" +"jest-runtime@npm:^29.7.0": + version: 29.7.0 + resolution: "jest-runtime@npm:29.7.0" dependencies: - "@jest/environment": "npm:^28.1.3" - "@jest/fake-timers": "npm:^28.1.3" - "@jest/globals": "npm:^28.1.3" - "@jest/source-map": "npm:^28.1.2" - "@jest/test-result": "npm:^28.1.3" - "@jest/transform": "npm:^28.1.3" - "@jest/types": "npm:^28.1.3" + "@jest/environment": "npm:^29.7.0" + "@jest/fake-timers": "npm:^29.7.0" + "@jest/globals": "npm:^29.7.0" + "@jest/source-map": "npm:^29.6.3" + "@jest/test-result": "npm:^29.7.0" + "@jest/transform": "npm:^29.7.0" + "@jest/types": "npm:^29.6.3" + "@types/node": "npm:*" chalk: "npm:^4.0.0" cjs-module-lexer: "npm:^1.0.0" collect-v8-coverage: "npm:^1.0.0" - execa: "npm:^5.0.0" glob: "npm:^7.1.3" graceful-fs: "npm:^4.2.9" - jest-haste-map: "npm:^28.1.3" - jest-message-util: "npm:^28.1.3" - jest-mock: "npm:^28.1.3" - jest-regex-util: "npm:^28.0.2" - jest-resolve: "npm:^28.1.3" - jest-snapshot: "npm:^28.1.3" - jest-util: "npm:^28.1.3" + jest-haste-map: "npm:^29.7.0" + jest-message-util: "npm:^29.7.0" + jest-mock: "npm:^29.7.0" + jest-regex-util: "npm:^29.6.3" + jest-resolve: "npm:^29.7.0" + jest-snapshot: "npm:^29.7.0" + jest-util: "npm:^29.7.0" slash: "npm:^3.0.0" strip-bom: "npm:^4.0.0" - checksum: d3d91b3f1082bbe3f87dc11ad7abce12f323797d98b3fa5ef7fb5efbd6d30e42041e3732cb8be5d41f0c8d8312d14461381d829ed1fe4e3712cfc82ea4a586fc + checksum: 59eb58eb7e150e0834a2d0c0d94f2a0b963ae7182cfa6c63f2b49b9c6ef794e5193ef1634e01db41420c36a94cefc512cdd67a055cd3e6fa2f41eaf0f82f5a20 languageName: node linkType: hard -"jest-snapshot@npm:^28.1.3": - version: 28.1.3 - resolution: "jest-snapshot@npm:28.1.3" +"jest-snapshot@npm:^29.7.0": + version: 29.7.0 + resolution: "jest-snapshot@npm:29.7.0" dependencies: "@babel/core": "npm:^7.11.6" "@babel/generator": "npm:^7.7.2" + "@babel/plugin-syntax-jsx": "npm:^7.7.2" "@babel/plugin-syntax-typescript": "npm:^7.7.2" - "@babel/traverse": "npm:^7.7.2" "@babel/types": "npm:^7.3.3" - "@jest/expect-utils": "npm:^28.1.3" - "@jest/transform": "npm:^28.1.3" - "@jest/types": "npm:^28.1.3" - "@types/babel__traverse": "npm:^7.0.6" - "@types/prettier": "npm:^2.1.5" + "@jest/expect-utils": "npm:^29.7.0" + "@jest/transform": "npm:^29.7.0" + "@jest/types": "npm:^29.6.3" babel-preset-current-node-syntax: "npm:^1.0.0" chalk: "npm:^4.0.0" - expect: "npm:^28.1.3" + expect: "npm:^29.7.0" graceful-fs: "npm:^4.2.9" - jest-diff: "npm:^28.1.3" - jest-get-type: "npm:^28.0.2" - jest-haste-map: "npm:^28.1.3" - jest-matcher-utils: "npm:^28.1.3" - jest-message-util: "npm:^28.1.3" - jest-util: "npm:^28.1.3" + jest-diff: "npm:^29.7.0" + jest-get-type: "npm:^29.6.3" + jest-matcher-utils: "npm:^29.7.0" + jest-message-util: "npm:^29.7.0" + jest-util: "npm:^29.7.0" natural-compare: "npm:^1.4.0" - pretty-format: "npm:^28.1.3" - semver: "npm:^7.3.5" - checksum: 4e1f4e2aa5ccc776f1fdaab75f96342534f737df0d43458e0614af362f7e80097909f69e5d8f2d0aed2caae07fa122b1cf7b8da0c97c44c3b2d06da472d7ad79 + pretty-format: "npm:^29.7.0" + semver: "npm:^7.5.3" + checksum: cb19a3948256de5f922d52f251821f99657339969bf86843bd26cf3332eae94883e8260e3d2fba46129a27c3971c1aa522490e460e16c7fad516e82d10bbf9f8 languageName: node linkType: hard @@ -16751,33 +16722,33 @@ __metadata: languageName: node linkType: hard -"jest-validate@npm:^28.1.3": - version: 28.1.3 - resolution: "jest-validate@npm:28.1.3" +"jest-validate@npm:^29.7.0": + version: 29.7.0 + resolution: "jest-validate@npm:29.7.0" dependencies: - "@jest/types": "npm:^28.1.3" + "@jest/types": "npm:^29.6.3" camelcase: "npm:^6.2.0" chalk: "npm:^4.0.0" - jest-get-type: "npm:^28.0.2" + jest-get-type: "npm:^29.6.3" leven: "npm:^3.1.0" - pretty-format: "npm:^28.1.3" - checksum: c49c8c64b4afbfb5c7434cfd30f8adbe7c6f57ce3ad6be55cfd65403f9ae664822badc1f27844ae800b23c84653bea834e928ad79e18ea0afdc4aa2d0a121156 + pretty-format: "npm:^29.7.0" + checksum: 8ee1163666d8eaa16d90a989edba2b4a3c8ab0ffaa95ad91b08ca42b015bfb70e164b247a5b17f9de32d096987cada63ed8491ab82761bfb9a28bc34b27ae161 languageName: node linkType: hard -"jest-watcher@npm:^28.1.3": - version: 28.1.3 - resolution: "jest-watcher@npm:28.1.3" +"jest-watcher@npm:^29.7.0": + version: 29.7.0 + resolution: "jest-watcher@npm:29.7.0" dependencies: - "@jest/test-result": "npm:^28.1.3" - "@jest/types": "npm:^28.1.3" + "@jest/test-result": "npm:^29.7.0" + "@jest/types": "npm:^29.6.3" "@types/node": "npm:*" ansi-escapes: "npm:^4.2.1" chalk: "npm:^4.0.0" - emittery: "npm:^0.10.2" - jest-util: "npm:^28.1.3" + emittery: "npm:^0.13.1" + jest-util: "npm:^29.7.0" string-length: "npm:^4.0.1" - checksum: e6d2c099d461408a992d144c230112fb282b2d8f54c49227bdb0c3efcfa5ecab70a019fc57d8ad6360000459087bb942c4f72670b52fc5b97ac0d9834f87d24e + checksum: 4f616e0345676631a7034b1d94971aaa719f0cd4a6041be2aa299be437ea047afd4fe05c48873b7963f5687a2f6c7cbf51244be8b14e313b97bfe32b1e127e55 languageName: node linkType: hard @@ -16792,25 +16763,26 @@ __metadata: languageName: node linkType: hard -"jest-worker@npm:^28.1.3": - version: 28.1.3 - resolution: "jest-worker@npm:28.1.3" +"jest-worker@npm:^29.7.0": + version: 29.7.0 + resolution: "jest-worker@npm:29.7.0" dependencies: "@types/node": "npm:*" + jest-util: "npm:^29.7.0" merge-stream: "npm:^2.0.0" supports-color: "npm:^8.0.0" - checksum: 0b5992308276ac8440a789e5317ff8feaa496cd9a0512c9cd73dbb9b6d2ff81b717cef1aa20113633c7280c9e29319af00a4d53d6bb35adbd1e3c01f0c290152 + checksum: 364cbaef00d8a2729fc760227ad34b5e60829e0869bd84976bdfbd8c0d0f9c2f22677b3e6dd8afa76ed174765351cd12bae3d4530c62eefb3791055127ca9745 languageName: node linkType: hard -"jest@npm:^28.1.1": - version: 28.1.3 - resolution: "jest@npm:28.1.3" +"jest@npm:^29.7.0": + version: 29.7.0 + resolution: "jest@npm:29.7.0" dependencies: - "@jest/core": "npm:^28.1.3" - "@jest/types": "npm:^28.1.3" + "@jest/core": "npm:^29.7.0" + "@jest/types": "npm:^29.6.3" import-local: "npm:^3.0.2" - jest-cli: "npm:^28.1.3" + jest-cli: "npm:^29.7.0" peerDependencies: node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 peerDependenciesMeta: @@ -16818,7 +16790,7 @@ __metadata: optional: true bin: jest: bin/jest.js - checksum: fb7c93e8a9d4c760a59e2b7638886f9f05465a14a88e263dca448f205464434967897a89784a37f7623999dfc33206d3d61d0acdc83eed99c4474d84a4ed3cf8 + checksum: 97023d78446098c586faaa467fbf2c6b07ff06e2c85a19e3926adb5b0effe9ac60c4913ae03e2719f9c01ae8ffd8d92f6b262cedb9555ceeb5d19263d8c6362a languageName: node linkType: hard @@ -20910,6 +20882,13 @@ __metadata: languageName: node linkType: hard +"pure-rand@npm:^6.0.0": + version: 6.0.4 + resolution: "pure-rand@npm:6.0.4" + checksum: 34fed0abe99d3db7ddc459c12e1eda6bff05db6a17f2017a1ae12202271ccf276fb223b442653518c719671c1b339bbf97f27ba9276dba0997c89e45c4e6a3bf + languageName: node + linkType: hard + "purgecss@npm:^5.0.0": version: 5.0.0 resolution: "purgecss@npm:5.0.0" @@ -21810,14 +21789,7 @@ __metadata: languageName: node linkType: hard -"resolve.exports@npm:^1.1.0": - version: 1.1.1 - resolution: "resolve.exports@npm:1.1.1" - checksum: de58c30aca30883f0e29910e4ad1b7b9986ec5f69434ef2e957ddbe52d3250e138ddd2688e8cd67909b4ee9bf3437424c718a5962d59edd610f035b861ef8441 - languageName: node - linkType: hard - -"resolve.exports@npm:^2.0.2": +"resolve.exports@npm:^2.0.0, resolve.exports@npm:^2.0.2": version: 2.0.2 resolution: "resolve.exports@npm:2.0.2" checksum: f1cc0b6680f9a7e0345d783e0547f2a5110d8336b3c2a4227231dd007271ffd331fd722df934f017af90bae0373920ca0d4005da6f76cb3176c8ae426370f893 @@ -23386,7 +23358,7 @@ __metadata: languageName: node linkType: hard -"terminal-link@npm:^2.0.0, terminal-link@npm:^2.1.1": +"terminal-link@npm:^2.1.1": version: 2.1.1 resolution: "terminal-link@npm:2.1.1" dependencies: @@ -25545,7 +25517,7 @@ __metadata: languageName: node linkType: hard -"write-file-atomic@npm:^4.0.1": +"write-file-atomic@npm:^4.0.2": version: 4.0.2 resolution: "write-file-atomic@npm:4.0.2" dependencies: