Skip to content

Commit e7be6ec

Browse files
committed
Merge branch 'master' into blixt/master
2 parents db7a713 + 2c9d431 commit e7be6ec

File tree

1,105 files changed

+32899
-10034
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

1,105 files changed

+32899
-10034
lines changed

.github/workflows/gh-pages.yml

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,17 +11,18 @@ jobs:
1111
contents: write
1212
strategy:
1313
matrix:
14-
node-version: [20.x]
14+
node-version: [24.x]
1515
steps:
1616
- uses: actions/checkout@v4
17+
- run: corepack enable
1718
- name: Use Node.js ${{ matrix.node-version }}
1819
uses: actions/setup-node@v4
1920
with:
2021
node-version: ${{ matrix.node-version }}
2122
cache: yarn
2223
- run: yarn install --frozen-lockfile
2324
- run: yarn typedoc
24-
- run: yarn coverage
25+
- run: yarn test:coverage
2526
- run: yarn build:pages
2627
- name: Publish to gh-pages
2728
uses: peaceiris/actions-gh-pages@v4

.github/workflows/pr.yml

Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -13,45 +13,45 @@ jobs:
1313
runs-on: ubuntu-latest
1414
strategy:
1515
matrix:
16-
node-version: [20.x]
16+
node-version: [20.x, 22.x, 24.x]
1717
steps:
18-
- uses: actions/checkout@v3
18+
- uses: actions/checkout@v4
19+
- run: corepack enable
1920
- name: Use Node.js ${{ matrix.node-version }}
20-
uses: actions/setup-node@v3
21+
uses: actions/setup-node@v4
2122
with:
2223
node-version: ${{ matrix.node-version }}
2324
cache: yarn
2425
- run: yarn install --frozen-lockfile
25-
- run: yarn test:ci --ci
26+
- run: yarn test
2627
lint-and-co:
2728
runs-on: ubuntu-latest
2829
strategy:
2930
matrix:
30-
node-version: [20.x]
31+
node-version: [20.x, 22.x, 24.x]
3132
steps:
32-
- uses: actions/checkout@v3
33+
- uses: actions/checkout@v4
34+
- run: corepack enable
3335
- name: Use Node.js ${{ matrix.node-version }}
34-
uses: actions/setup-node@v3
36+
uses: actions/setup-node@v4
3537
with:
3638
node-version: ${{ matrix.node-version }}
3739
cache: yarn
3840
- run: yarn install --frozen-lockfile
39-
- run: yarn build:all
40-
- run: yarn lint
4141
- run: yarn format
42-
- run: yarn test:cli:pointer
43-
- run: yarn test:cli:patch
44-
- run: yarn test:cli:pack
45-
- run: yarn demo:json-patch
42+
- run: yarn lint
43+
- run: yarn typecheck
44+
- run: yarn build
4645
typedoc:
4746
runs-on: ubuntu-latest
4847
strategy:
4948
matrix:
50-
node-version: [20.x]
49+
node-version: [20.x, 22.x, 24.x]
5150
steps:
52-
- uses: actions/checkout@v3
51+
- uses: actions/checkout@v4
52+
- run: corepack enable
5353
- name: Use Node.js ${{ matrix.node-version }}
54-
uses: actions/setup-node@v3
54+
uses: actions/setup-node@v4
5555
with:
5656
node-version: ${{ matrix.node-version }}
5757
cache: yarn

.github/workflows/release.yml

Lines changed: 0 additions & 34 deletions
This file was deleted.

.yarnrc.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
nodeLinker: node-modules

CHANGELOG.md

Lines changed: 198 additions & 0 deletions
Large diffs are not rendered by default.

biome.json

Lines changed: 16 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,11 @@
11
{
2-
"$schema": "https://biomejs.dev/schemas/1.9.3/schema.json",
3-
"organizeImports": {
4-
"enabled": true
5-
},
2+
"$schema": "https://biomejs.dev/schemas/2.2.6/schema.json",
63
"formatter": {
74
"indentStyle": "space",
85
"lineWidth": 120
96
},
107
"javascript": {
8+
"jsxRuntime": "reactClassic",
119
"formatter": {
1210
"quoteStyle": "single",
1311
"trailingCommas": "all",
@@ -25,25 +23,36 @@
2523
"noInferrableTypes": "off",
2624
"noUselessElse": "off",
2725
"noParameterAssign": "off",
28-
"noCommaOperator": "off",
2926
"useSingleVarDeclarator": "off",
27+
"noUnusedTemplateLiteral": "off",
3028
"useLiteralEnumMembers": "off"
3129
},
3230
"suspicious": {
3331
"noExplicitAny": "off",
3432
"useIsArray": "off",
3533
"noAssignInExpressions": "off",
34+
"useIterableCallbackReturn": "off",
35+
"useAdjacentOverloadSignatures": "off",
3636
"noConfusingLabels": "off",
3737
"noConfusingVoidType": "off",
38-
"noConstEnum": "off"
38+
"noConstEnum": "off",
39+
"noSelfCompare": "off"
3940
},
4041
"complexity": {
4142
"noStaticOnlyClass": "off",
4243
"useOptionalChain": "off",
44+
"noCommaOperator": "off",
4345
"noUselessLabel": "off"
4446
},
47+
"security": {
48+
"noGlobalEval": "off"
49+
},
4550
"a11y": {
46-
"noSvgWithoutTitle": "off"
51+
"noSvgWithoutTitle": "off",
52+
"noStaticElementInteractions": "off"
53+
},
54+
"correctness": {
55+
"noUnusedFunctionParameters": "off"
4756
},
4857
"performance": {
4958
"noDelete": "off"

package.json

Lines changed: 33 additions & 112 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
2-
"name": "json-joy",
3-
"version": "17.43.0",
2+
"name": "json-joy-monorepo",
3+
"version": "17.56.0",
44
"description": "Collection of libraries for building collaborative editing apps.",
55
"author": {
66
"name": "streamich",
@@ -13,67 +13,27 @@
1313
"type": "github",
1414
"url": "https://github.com/sponsors/streamich"
1515
},
16-
"engines": {
17-
"node": ">=10.0"
18-
},
19-
"main": "lib/index.js",
20-
"types": "lib/index.d.ts",
21-
"typings": "lib/index.d.ts",
22-
"bin": {
23-
"jj": "./bin/jj.js",
24-
"json-pack": "./bin/json-pack.js",
25-
"json-pack-test": "./bin/json-pack-test.js",
26-
"json-unpack": "./bin/json-unpack.js",
27-
"json-pointer": "./bin/json-pointer.js",
28-
"json-pointer-test": "./bin/json-pointer-test.js",
29-
"json-patch": "./bin/json-patch.js",
30-
"json-patch-test": "./bin/json-patch-test.js"
31-
},
32-
"files": [
33-
"LICENSE",
34-
"bin/",
35-
"lib/",
36-
"esm/"
37-
],
3816
"scripts": {
39-
"format": "biome format ./src",
40-
"format:fix": "biome format --write ./src",
41-
"lint": "biome lint ./src",
42-
"lint:fix": "biome lint --write ./src",
43-
"clean": "npx [email protected] lib es6 es2019 es2020 esm typedocs coverage gh-pages yarn-error.log src/**/__bench__/node_modules src/**/__bench__/yarn-error.log",
44-
"build:es2020": "tsc --project tsconfig.build.json --module commonjs --target es2020 --outDir lib",
45-
"build:esm": "tsc --project tsconfig.build.json --module ESNext --target ESNEXT --outDir esm",
46-
"build:all": "npx [email protected] \"yarn build:es2020\" \"yarn build:esm\"",
47-
"build": "yarn build:es2020",
48-
"jest": "jest",
49-
"test": "jest --maxWorkers 7",
50-
"test:all": "yarn lint && yarn test && yarn build:all && yarn test:cli:pointer && yarn test:cli:patch && yarn test:cli:pack && yarn demo:json-patch",
51-
"test:ci": "yarn jest --maxWorkers 3 --no-cache",
52-
"test:cli": "yarn test:cli:pointer && yarn test:cli:patch && yarn test:cli:pack",
53-
"test:cli:pointer": "./bin/json-pointer-test.js ./bin/json-pointer.js",
54-
"test:cli:patch": "./bin/json-patch-test.js ./bin/json-patch.js",
55-
"test:cli:pack": "./bin/json-pack-test.js ./bin/json-pack.js",
56-
"demo:json-patch": "npx ts-node src/json-patch/__demos__/json-patch.ts",
57-
"demo:ui:peritext": "webpack serve --config ./src/json-crdt-peritext-ui/__demos__/webpack.config.js",
58-
"bench:json-crdt:traces:crdt-libs": "cd src/json-crdt/__bench__ && yarn && yarn bench:traces:crdt-libs",
59-
"bench:json-crdt:traces:non-crdt-libs": "cd src/json-crdt/__bench__ && yarn && yarn bench:traces:non-crdt-libs",
60-
"bench:json-crdt:concurrent-traces": "cd src/json-crdt/__bench__ && yarn && yarn bench:concurrent-traces",
61-
"bench:json-crdt:codecs:encoding": "cd src/json-crdt/__bench__ && yarn && yarn bench:codecs:encoding",
62-
"bench:json-crdt:codecs:decoding": "cd src/json-crdt/__bench__ && yarn && yarn bench:codecs:decoding",
63-
"bench:json-crdt:codecs:encoding:json": "cd src/json-crdt/__bench__ && yarn && yarn bench:codecs:encoding:json",
64-
"bench:json-crdt:codecs:encoding:libs": "cd src/json-crdt/__bench__ && yarn && yarn bench:codecs:encoding:libs",
65-
"bench:json-crdt:codecs:sizes": "cd src/json-crdt/__bench__ && yarn && yarn bench:codecs:sizes",
66-
"bench:json-ot:ot-string:apply": "cd src/json-ot/__bench__ && yarn && yarn bench:ot-string:apply",
67-
"bench:json-ot:ot-string:compose-and-transform": "yarn build && cd src/json-ot/__bench__ && yarn && yarn bench:ot-string:compose-and-transform",
68-
"coverage": "yarn test --collectCoverage",
69-
"typedoc": "npx [email protected] --tsconfig tsconfig.build.json",
70-
"build:pages": "npx [email protected] gh-pages && mkdir -p gh-pages && cp -r typedocs/* gh-pages && cp -r coverage gh-pages/coverage",
17+
"clean": "rimraf lib coverage typedocs gh-pages && yarn workspaces foreach -Apt run clean",
18+
"build": "yarn workspaces foreach -Apt run build",
19+
"test": "node -r ts-node/register ./node_modules/.bin/jest --maxWorkers 7",
20+
"test:coverage": "node -r ts-node/register ./node_modules/.bin/jest --maxWorkers 7 --collectCoverage",
21+
"format": "biome format ./packages/*/src",
22+
"format:fix": "biome format --write ./packages/*/src",
23+
"lint": "biome lint ./packages/*/src",
24+
"lint:fix": "biome lint --write ./packages/*/src",
25+
"typecheck": "yarn workspaces foreach -Apt run typecheck",
26+
"typedoc": "npx [email protected] --tsconfig tsconfig.typedoc.json",
27+
"build:pages": "rimraf gh-pages && mkdir -p gh-pages && cp -r typedocs/* gh-pages && cp -r coverage gh-pages/coverage",
7128
"deploy:pages": "gh-pages -d gh-pages",
72-
"publish-coverage-and-typedocs": "yarn typedoc && yarn coverage && yarn build:pages && yarn deploy:pages",
73-
"jj": "npx ts-node src/json-cli/jj.ts",
29+
"publish-coverage-and-typedocs": "yarn typedoc && yarn test:coverage && yarn build:pages && yarn deploy:pages",
7430
"upgrade:check": "npx [email protected]",
7531
"upgrade:interactive": "npx [email protected] --interactive"
7632
},
33+
"private": true,
34+
"workspaces": [
35+
"packages/*"
36+
],
7737
"peerDependencies": {
7838
"rxjs": "7",
7939
"tslib": "2"
@@ -83,26 +43,13 @@
8343
"optional": true
8444
}
8545
},
86-
"dependencies": {
87-
"@jsonjoy.com/base64": "^1.1.2",
88-
"@jsonjoy.com/json-expression": "^1.0.0",
89-
"@jsonjoy.com/json-pack": "^1.1.0",
90-
"@jsonjoy.com/json-pointer": "^1.0.0",
91-
"@jsonjoy.com/json-type": "^1.0.0",
92-
"@jsonjoy.com/util": "^1.6.0",
93-
"arg": "^5.0.2",
94-
"hyperdyperid": "^1.2.0",
95-
"nano-css": "^5.6.2",
96-
"sonic-forest": "^1.2.0",
97-
"thingies": "^2.1.1",
98-
"tree-dump": "^1.0.2",
99-
"very-small-parser": "^1.12.0"
100-
},
10146
"devDependencies": {
102-
"@biomejs/biome": "^1.9.4",
47+
"@biomejs/biome": "^2.2.6",
48+
"@monaco-editor/react": "^4.7.0",
10349
"@radix-ui/react-icons": "^1.3.1",
10450
"@types/benchmark": "^2.1.5",
10551
"@types/jest": "^29.5.12",
52+
"@types/node": "^24.8.1",
10653
"@types/react": "^18.3.11",
10754
"@types/react-dom": "^18.3.0",
10855
"benchmark": "^2.1.4",
@@ -111,44 +58,36 @@
11158
"collaborative-input": "^1.6.1",
11259
"collaborative-ui": "^1.6.0",
11360
"config-galore": "^1.0.0",
114-
"editing-traces": "https://github.com/streamich/editing-traces#6494020428530a6e382378b98d1d7e31334e2d7b",
61+
"editing-traces": "https://github.com/streamich/editing-traces#145f79871a7bf54162f55d84eb6b8381db7b65b8",
11562
"fast-diff": "^1.3.0",
11663
"fast-json-patch": "^3.1.1",
11764
"html-webpack-plugin": "^5.6.0",
11865
"jest": "^29.7.0",
11966
"json-crdt-traces": "https://github.com/streamich/json-crdt-traces#ec825401dc05cbb74b9e0b3c4d6527399f54d54d",
12067
"json-logic-js": "^2.0.2",
68+
"monaco-editor": "^0.54.0",
12169
"nano-theme": "^1.4.3",
12270
"nice-ui": "^1.30.0",
12371
"quill-delta": "^5.1.0",
12472
"react": "^18.3.1",
12573
"react-dom": "^18.3.1",
74+
"rimraf": "^6.0.1",
12675
"rxjs": "^7.8.2",
127-
"ts-jest": "^29.1.2",
128-
"ts-loader": "^9.5.1",
76+
"ts-jest": "^29.4.0",
77+
"ts-loader": "^9.5.2",
12978
"ts-node": "^10.9.2",
130-
"tslib": "^2.6.2",
131-
"tslint": "^6.1.3",
132-
"tslint-config-common": "^1.6.2",
133-
"typescript": "^5.4.5",
79+
"tslib": "^2.8.1",
80+
"typescript": "^5.8.3",
13481
"use-t": "^1.6.3",
13582
"webpack": "^5.95.0",
13683
"webpack-cli": "^5.1.4",
13784
"webpack-dev-server": "^5.1.0",
13885
"yjs": "^13.6.18"
13986
},
14087
"jest": {
141-
"moduleFileExtensions": [
142-
"ts",
143-
"js"
144-
],
145-
"transform": {
146-
"^.+\\.ts$": "ts-jest"
147-
},
148-
"transformIgnorePatterns": [
149-
".*/node_modules/.*"
150-
],
151-
"testRegex": ".*/(__tests__|__jest__|demo)/.*\\.(test|spec)\\.ts$"
88+
"projects": [
89+
"packages/*/package.json"
90+
]
15291
},
15392
"config": {
15493
"commitizen": {
@@ -176,25 +115,6 @@
176115
}
177116
}
178117
},
179-
"release": {
180-
"branches": [
181-
"master",
182-
{
183-
"name": "next",
184-
"prerelease": true
185-
}
186-
],
187-
"prepare": [
188-
"@semantic-release/changelog",
189-
"@semantic-release/npm",
190-
"@semantic-release/git"
191-
],
192-
"verifyConditions": [
193-
"@semantic-release/changelog",
194-
"@semantic-release/npm",
195-
"@semantic-release/git"
196-
]
197-
},
198118
"keywords": [
199119
"collaborative",
200120
"multiplayer",
@@ -236,5 +156,6 @@
236156
"json-type",
237157
"json-type-value",
238158
"json-walk"
239-
]
159+
],
160+
"packageManager": "[email protected]"
240161
}

0 commit comments

Comments
 (0)