@wordpress/core-data 7.37.1-next.v.0 → 7.38.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +2 -0
- package/build/actions.cjs +14 -2
- package/build/actions.cjs.map +2 -2
- package/build/entities.cjs +35 -45
- package/build/entities.cjs.map +2 -2
- package/build/private-selectors.cjs +2 -4
- package/build/private-selectors.cjs.map +2 -2
- package/build/resolvers.cjs +11 -2
- package/build/resolvers.cjs.map +2 -2
- package/build/types.cjs.map +1 -1
- package/build/utils/crdt-blocks.cjs +63 -41
- package/build/utils/crdt-blocks.cjs.map +2 -2
- package/build/utils/crdt-utils.cjs +44 -0
- package/build/utils/crdt-utils.cjs.map +7 -0
- package/build/utils/crdt.cjs +33 -37
- package/build/utils/crdt.cjs.map +2 -2
- package/build-module/actions.mjs +14 -2
- package/build-module/actions.mjs.map +2 -2
- package/build-module/entities.mjs +35 -47
- package/build-module/entities.mjs.map +2 -2
- package/build-module/private-selectors.mjs +2 -4
- package/build-module/private-selectors.mjs.map +2 -2
- package/build-module/resolvers.mjs +11 -2
- package/build-module/resolvers.mjs.map +2 -2
- package/build-module/utils/crdt-blocks.mjs +64 -42
- package/build-module/utils/crdt-blocks.mjs.map +2 -2
- package/build-module/utils/crdt-utils.mjs +17 -0
- package/build-module/utils/crdt-utils.mjs.map +7 -0
- package/build-module/utils/crdt.mjs +37 -37
- package/build-module/utils/crdt.mjs.map +2 -2
- package/build-types/actions.d.ts.map +1 -1
- package/build-types/entities.d.ts.map +1 -1
- package/build-types/index.d.ts.map +1 -1
- package/build-types/private-selectors.d.ts.map +1 -1
- package/build-types/resolvers.d.ts.map +1 -1
- package/build-types/types.d.ts +0 -5
- package/build-types/types.d.ts.map +1 -1
- package/build-types/utils/crdt-blocks.d.ts +14 -5
- package/build-types/utils/crdt-blocks.d.ts.map +1 -1
- package/build-types/utils/crdt-utils.d.ts +53 -0
- package/build-types/utils/crdt-utils.d.ts.map +1 -0
- package/build-types/utils/crdt.d.ts +19 -1
- package/build-types/utils/crdt.d.ts.map +1 -1
- package/package.json +18 -18
- package/src/actions.js +13 -2
- package/src/entities.js +38 -54
- package/src/private-selectors.ts +3 -4
- package/src/resolvers.js +15 -7
- package/src/test/entities.js +11 -9
- package/src/test/resolvers.js +3 -45
- package/src/types.ts +0 -6
- package/src/utils/crdt-blocks.ts +101 -99
- package/src/utils/crdt-utils.ts +77 -0
- package/src/utils/crdt.ts +76 -57
- package/src/utils/test/crdt.ts +28 -16
package/src/utils/test/crdt.ts
CHANGED
|
@@ -19,17 +19,17 @@ import {
|
|
|
19
19
|
applyPostChangesToCRDTDoc,
|
|
20
20
|
getPostChangesFromCRDTDoc,
|
|
21
21
|
type PostChanges,
|
|
22
|
+
type YPostRecord,
|
|
22
23
|
} from '../crdt';
|
|
23
24
|
import type { YBlock, YBlocks } from '../crdt-blocks';
|
|
25
|
+
import { createYMap, getRootMap, type YMapWrap } from '../crdt-utils';
|
|
24
26
|
import type { Post, Type } from '../../entity-types';
|
|
25
27
|
|
|
26
28
|
describe( 'crdt', () => {
|
|
27
29
|
let doc: Y.Doc;
|
|
28
|
-
let map: Y.Map< string | object | YBlocks >;
|
|
29
30
|
|
|
30
31
|
beforeEach( () => {
|
|
31
32
|
doc = new Y.Doc();
|
|
32
|
-
map = doc.getMap( CRDT_RECORD_MAP_KEY );
|
|
33
33
|
jest.clearAllMocks();
|
|
34
34
|
} );
|
|
35
35
|
|
|
@@ -40,6 +40,12 @@ describe( 'crdt', () => {
|
|
|
40
40
|
describe( 'applyPostChangesToCRDTDoc', () => {
|
|
41
41
|
const mockPostType = {} as Type;
|
|
42
42
|
|
|
43
|
+
let map: YMapWrap< YPostRecord >;
|
|
44
|
+
|
|
45
|
+
beforeEach( () => {
|
|
46
|
+
map = getRootMap< YPostRecord >( doc, CRDT_RECORD_MAP_KEY );
|
|
47
|
+
} );
|
|
48
|
+
|
|
43
49
|
it( 'applies simple property changes', () => {
|
|
44
50
|
const changes = {
|
|
45
51
|
title: 'New Title',
|
|
@@ -164,7 +170,7 @@ describe( 'crdt', () => {
|
|
|
164
170
|
},
|
|
165
171
|
};
|
|
166
172
|
|
|
167
|
-
const metaMap =
|
|
173
|
+
const metaMap = createYMap();
|
|
168
174
|
metaMap.set( 'some_meta', 'old value' );
|
|
169
175
|
map.set( 'meta', metaMap );
|
|
170
176
|
|
|
@@ -180,7 +186,7 @@ describe( 'crdt', () => {
|
|
|
180
186
|
},
|
|
181
187
|
};
|
|
182
188
|
|
|
183
|
-
const metaMap =
|
|
189
|
+
const metaMap = createYMap();
|
|
184
190
|
metaMap.set( 'some_meta', 'old value' );
|
|
185
191
|
map.set( 'meta', metaMap );
|
|
186
192
|
|
|
@@ -201,9 +207,9 @@ describe( 'crdt', () => {
|
|
|
201
207
|
|
|
202
208
|
applyPostChangesToCRDTDoc( doc, changes, mockPostType );
|
|
203
209
|
|
|
204
|
-
const metaMap = map.get( 'meta' )
|
|
210
|
+
const metaMap = map.get( 'meta' );
|
|
205
211
|
expect( metaMap ).toBeInstanceOf( Y.Map );
|
|
206
|
-
expect( metaMap
|
|
212
|
+
expect( metaMap?.get( 'custom_field' ) ).toBe( 'value' );
|
|
207
213
|
} );
|
|
208
214
|
} );
|
|
209
215
|
|
|
@@ -216,7 +222,10 @@ describe( 'crdt', () => {
|
|
|
216
222
|
},
|
|
217
223
|
} as unknown as Type;
|
|
218
224
|
|
|
225
|
+
let map: YMapWrap< YPostRecord >;
|
|
226
|
+
|
|
219
227
|
beforeEach( () => {
|
|
228
|
+
map = getRootMap< YPostRecord >( doc, CRDT_RECORD_MAP_KEY );
|
|
220
229
|
map.set( 'title', 'CRDT Title' );
|
|
221
230
|
map.set( 'status', 'draft' );
|
|
222
231
|
map.set( 'date', '2025-01-01' );
|
|
@@ -344,9 +353,9 @@ describe( 'crdt', () => {
|
|
|
344
353
|
} );
|
|
345
354
|
|
|
346
355
|
it( 'includes meta in changes', () => {
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
356
|
+
const metaMap = createYMap();
|
|
357
|
+
metaMap.set( 'public_meta', 'new value' );
|
|
358
|
+
map.set( 'meta', metaMap );
|
|
350
359
|
|
|
351
360
|
const editedRecord = {
|
|
352
361
|
meta: {
|
|
@@ -366,9 +375,9 @@ describe( 'crdt', () => {
|
|
|
366
375
|
} );
|
|
367
376
|
|
|
368
377
|
it( 'includes non-single meta in changes', () => {
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
378
|
+
const metaMap = createYMap();
|
|
379
|
+
metaMap.set( 'public_meta', [ 'value', 'value 2' ] );
|
|
380
|
+
map.set( 'meta', metaMap );
|
|
372
381
|
|
|
373
382
|
const editedRecord = {
|
|
374
383
|
meta: {
|
|
@@ -388,10 +397,13 @@ describe( 'crdt', () => {
|
|
|
388
397
|
} );
|
|
389
398
|
|
|
390
399
|
it( 'excludes disallowed meta keys in changes', () => {
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
400
|
+
const metaMap = createYMap();
|
|
401
|
+
metaMap.set( 'public_meta', 'new value' );
|
|
402
|
+
metaMap.set(
|
|
403
|
+
WORDPRESS_META_KEY_FOR_CRDT_DOC_PERSISTENCE,
|
|
404
|
+
'exclude me'
|
|
405
|
+
);
|
|
406
|
+
map.set( 'meta', metaMap );
|
|
395
407
|
|
|
396
408
|
const editedRecord = {
|
|
397
409
|
meta: {
|