jazz-tools 0.18.28 → 0.18.29
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/.turbo/turbo-build.log +58 -58
- package/CHANGELOG.md +10 -0
- package/dist/{chunk-YOL3XDDW.js → chunk-F55R554M.js} +34 -21
- package/dist/chunk-F55R554M.js.map +1 -0
- package/dist/index.js +3 -1
- package/dist/index.js.map +1 -1
- package/dist/inspector/{custom-element-A7UAELEG.js → custom-element-35MDW4SW.js} +1840 -1837
- package/dist/inspector/{custom-element-A7UAELEG.js.map → custom-element-35MDW4SW.js.map} +1 -1
- package/dist/inspector/custom-element.d.ts.map +1 -1
- package/dist/inspector/index.d.ts +1 -1
- package/dist/inspector/index.d.ts.map +1 -1
- package/dist/inspector/index.js +0 -1
- package/dist/inspector/index.js.map +1 -1
- package/dist/inspector/register-custom-element.js +1 -1
- package/dist/testing.js +1 -1
- package/dist/tools/coValues/interfaces.d.ts +9 -2
- package/dist/tools/coValues/interfaces.d.ts.map +1 -1
- package/dist/tools/exports.d.ts +2 -2
- package/dist/tools/exports.d.ts.map +1 -1
- package/package.json +5 -5
- package/src/inspector/custom-element.tsx +4 -0
- package/src/inspector/index.tsx +0 -2
- package/src/tools/coValues/coList.ts +3 -3
- package/src/tools/coValues/coMap.ts +3 -3
- package/src/tools/coValues/interfaces.ts +49 -18
- package/src/tools/exports.ts +1 -1
- package/src/tools/tests/coMap.unique.test.ts +106 -1
- package/dist/chunk-YOL3XDDW.js.map +0 -1
package/dist/testing.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { type CoValueUniqueness, type CojsonInternalTypes, type RawCoValue } from "cojson";
|
|
2
|
-
import { Account, AnonymousJazzAgent, CoValueClassOrSchema, type Group, RefsToResolve, RefsToResolveStrict, ResolveQuery, ResolveQueryStrict, Resolved, SubscriptionScope, TypeSym, inspect } from "../internal.js";
|
|
2
|
+
import { Account, AnonymousJazzAgent, CoValueClassOrSchema, type Group, Loaded, RefsToResolve, RefsToResolveStrict, ResolveQuery, ResolveQueryStrict, Resolved, SubscriptionScope, TypeSym, inspect } from "../internal.js";
|
|
3
3
|
import type { BranchDefinition } from "../subscribe/types.js";
|
|
4
4
|
import { CoValueHeader } from "cojson/dist/coValueCore/verifiedState.js";
|
|
5
5
|
/** @category Abstract interfaces */
|
|
@@ -110,7 +110,14 @@ export declare function parseGroupCreateOptions(options: {
|
|
|
110
110
|
owner: Account;
|
|
111
111
|
};
|
|
112
112
|
export declare function getIdFromHeader(header: CoValueHeader, loadAs?: Account | AnonymousJazzAgent | Group): `co_z${string}`;
|
|
113
|
-
export declare function unstable_loadUnique<
|
|
113
|
+
export declare function unstable_loadUnique<S extends CoValueClassOrSchema, const R extends ResolveQuery<S>>(schema: S, options: {
|
|
114
|
+
unique: CoValueUniqueness["uniqueness"];
|
|
115
|
+
onCreateWhenMissing?: () => void;
|
|
116
|
+
onUpdateWhenFound?: (value: Loaded<S, R>) => void;
|
|
117
|
+
owner: Account | Group;
|
|
118
|
+
resolve?: ResolveQueryStrict<S, R>;
|
|
119
|
+
}): Promise<Loaded<S, R> | null>;
|
|
120
|
+
export declare function internalLoadUnique<V extends CoValue, R extends RefsToResolve<V>>(cls: CoValueClass<V>, options: {
|
|
114
121
|
header: CoValueHeader;
|
|
115
122
|
onCreateWhenMissing?: () => void;
|
|
116
123
|
onUpdateWhenFound?: (value: Resolved<V, R>) => void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"interfaces.d.ts","sourceRoot":"","sources":["../../../src/tools/coValues/interfaces.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,iBAAiB,EACtB,KAAK,mBAAmB,EACxB,KAAK,UAAU,EAChB,MAAM,QAAQ,CAAC;AAEhB,OAAO,EACL,OAAO,EACP,kBAAkB,EAClB,oBAAoB,EACpB,KAAK,KAAK,
|
|
1
|
+
{"version":3,"file":"interfaces.d.ts","sourceRoot":"","sources":["../../../src/tools/coValues/interfaces.ts"],"names":[],"mappings":"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"}
|
package/dist/tools/exports.d.ts
CHANGED
|
@@ -8,8 +8,8 @@ export { CoValueBase } from "./internal.js";
|
|
|
8
8
|
export { Profile } from "./internal.js";
|
|
9
9
|
export { SchemaUnion } from "./internal.js";
|
|
10
10
|
export { co } from "./internal.js";
|
|
11
|
-
export type { CoValueClass, CoValueFromRaw, DeeplyLoaded, Resolved, RefsToResolve, RefsToResolveStrict, CoMapInit_DEPRECATED as CoMapInit, CoFeedEntry, TextPos, AccountClass, AccountCreationProps, BaseProfileShape,
|
|
12
|
-
export { CoMap, CoList, BinaryCoStream, CoFeed, CoStream, FileStream, CoPlainText, CoRichText, Account, isControlledAccount, loadCoValue, subscribeToCoValue, ImageDefinition, SubscriptionScope, exportCoValue, importContentPieces, Ref, } from "./internal.js";
|
|
11
|
+
export type { CoValueClass, CoValueFromRaw, DeeplyLoaded, Resolved, RefsToResolve, RefsToResolveStrict, CoMapInit_DEPRECATED as CoMapInit, CoFeedEntry, TextPos, AccountClass, AccountCreationProps, BaseProfileShape, } from "./internal.js";
|
|
12
|
+
export { CoMap, CoList, BinaryCoStream, CoFeed, CoStream, FileStream, CoPlainText, CoRichText, Account, isControlledAccount, loadCoValue, subscribeToCoValue, ImageDefinition, SubscriptionScope, exportCoValue, importContentPieces, Ref, unstable_loadUnique, } from "./internal.js";
|
|
13
13
|
export { JazzContextManager, type JazzContextManagerAuthProps, } from "./internal.js";
|
|
14
14
|
export { AuthSecretStorage, type AuthSetPayload, } from "./auth/AuthSecretStorage.js";
|
|
15
15
|
export { JazzClerkAuth, MinimalClerkClient, isClerkCredentials, BrowserClerkAuth, } from "./auth/clerk/index.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"exports.d.ts","sourceRoot":"","sources":["../../src/tools/exports.ts"],"names":[],"mappings":"AAAA,YAAY,EACV,OAAO,EACP,iBAAiB,EACjB,cAAc,EACd,YAAY,EACZ,IAAI,EACJ,SAAS,EACT,WAAW,GACZ,MAAM,QAAQ,CAAC;AAEhB,OAAO,KAAK,CAAC,MAAM,2CAA2C,CAAC;AAE/D,YAAY,EAAE,OAAO,EAAE,EAAE,EAAE,MAAM,eAAe,CAAC;AAEjD,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAElD,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAEnD,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AACtC,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AACxC,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAE5C,OAAO,EAAE,EAAE,EAAE,MAAM,eAAe,CAAC;AAEnC,YAAY,EACV,YAAY,EACZ,cAAc,EACd,YAAY,EACZ,QAAQ,EACR,aAAa,EACb,mBAAmB,EACnB,oBAAoB,IAAI,SAAS,EACjC,WAAW,EACX,OAAO,EACP,YAAY,EACZ,oBAAoB,EACpB,gBAAgB,
|
|
1
|
+
{"version":3,"file":"exports.d.ts","sourceRoot":"","sources":["../../src/tools/exports.ts"],"names":[],"mappings":"AAAA,YAAY,EACV,OAAO,EACP,iBAAiB,EACjB,cAAc,EACd,YAAY,EACZ,IAAI,EACJ,SAAS,EACT,WAAW,GACZ,MAAM,QAAQ,CAAC;AAEhB,OAAO,KAAK,CAAC,MAAM,2CAA2C,CAAC;AAE/D,YAAY,EAAE,OAAO,EAAE,EAAE,EAAE,MAAM,eAAe,CAAC;AAEjD,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAElD,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAEnD,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AACtC,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AACxC,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAE5C,OAAO,EAAE,EAAE,EAAE,MAAM,eAAe,CAAC;AAEnC,YAAY,EACV,YAAY,EACZ,cAAc,EACd,YAAY,EACZ,QAAQ,EACR,aAAa,EACb,mBAAmB,EACnB,oBAAoB,IAAI,SAAS,EACjC,WAAW,EACX,OAAO,EACP,YAAY,EACZ,oBAAoB,EACpB,gBAAgB,GACjB,MAAM,eAAe,CAAC;AAEvB,OAAO,EACL,KAAK,EACL,MAAM,EACN,cAAc,EACd,MAAM,EACN,QAAQ,EACR,UAAU,EACV,WAAW,EACX,UAAU,EACV,OAAO,EACP,mBAAmB,EACnB,WAAW,EACX,kBAAkB,EAClB,eAAe,EACf,iBAAiB,EACjB,aAAa,EACb,mBAAmB,EACnB,GAAG,EACH,mBAAmB,GACpB,MAAM,eAAe,CAAC;AAEvB,OAAO,EACL,kBAAkB,EAClB,KAAK,2BAA2B,GACjC,MAAM,eAAe,CAAC;AAEvB,OAAO,EACL,iBAAiB,EACjB,KAAK,cAAc,GACpB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EACL,aAAa,EACb,kBAAkB,EAClB,kBAAkB,EAClB,gBAAgB,GACjB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,cAAc,EAAE,KAAK,OAAO,EAAE,MAAM,0BAA0B,CAAC;AACxE,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAC5D,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAE1D,OAAO,EACL,gBAAgB,EAChB,eAAe,EACf,iBAAiB,GAClB,MAAM,6BAA6B,CAAC;AAErC,OAAO,EACL,kBAAkB,EAClB,0BAA0B,EAC1B,wCAAwC,EACxC,8BAA8B,EAC9B,iBAAiB,EACjB,qBAAqB,EACrB,KAAK,UAAU,EACf,KAAK,WAAW,EAChB,KAAK,sBAAsB,EAC3B,KAAK,gBAAgB,GACtB,MAAM,eAAe,CAAC;AAEvB,mBAAmB,YAAY,CAAC;AAEhC,OAAO,EACL,oCAAoC,EACpC,KAAK,gBAAgB,EACrB,KAAK,gCAAgC,EACrC,KAAK,oBAAoB,EACzB,KAAK,MAAM,EACX,KAAK,gBAAgB,EACrB,KAAK,mBAAmB,EACxB,KAAK,iBAAiB,IAAI,gBAAgB,EAC1C,KAAK,YAAY,EACjB,KAAK,kBAAkB,GACxB,MAAM,eAAe,CAAC;AAEvB,OAAO,EACL,0BAA0B,EAC1B,gBAAgB,EAChB,kBAAkB,EAClB,mBAAmB,EACnB,iBAAiB,EACjB,cAAc,EACd,KAAK,SAAS,GACf,MAAM,uBAAuB,CAAC;AAE/B,cAAc,gBAAgB,CAAC"}
|
package/package.json
CHANGED
|
@@ -187,7 +187,7 @@
|
|
|
187
187
|
},
|
|
188
188
|
"type": "module",
|
|
189
189
|
"license": "MIT",
|
|
190
|
-
"version": "0.18.
|
|
190
|
+
"version": "0.18.29",
|
|
191
191
|
"dependencies": {
|
|
192
192
|
"@manuscripts/prosemirror-recreate-steps": "^0.1.4",
|
|
193
193
|
"@scure/base": "1.2.1",
|
|
@@ -195,7 +195,7 @@
|
|
|
195
195
|
"@tiptap/core": "^2.12.0",
|
|
196
196
|
"clsx": "^2.0.0",
|
|
197
197
|
"fast-myers-diff": "^3.2.0",
|
|
198
|
-
"goober": "^2.1.
|
|
198
|
+
"goober": "^2.1.18",
|
|
199
199
|
"prosemirror-example-setup": "^1.2.2",
|
|
200
200
|
"prosemirror-menu": "^1.2.4",
|
|
201
201
|
"prosemirror-model": "^1.21.1",
|
|
@@ -204,9 +204,9 @@
|
|
|
204
204
|
"prosemirror-transform": "^1.9.0",
|
|
205
205
|
"use-sync-external-store": "^1.5.0",
|
|
206
206
|
"zod": "4.1.11",
|
|
207
|
-
"cojson": "0.18.
|
|
208
|
-
"cojson-storage-indexeddb": "0.18.
|
|
209
|
-
"cojson-transport-ws": "0.18.
|
|
207
|
+
"cojson": "0.18.29",
|
|
208
|
+
"cojson-storage-indexeddb": "0.18.29",
|
|
209
|
+
"cojson-transport-ws": "0.18.29"
|
|
210
210
|
},
|
|
211
211
|
"devDependencies": {
|
|
212
212
|
"@scure/bip39": "^1.3.0",
|
|
@@ -1,7 +1,11 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import { setup } from "goober";
|
|
1
3
|
import { Account } from "jazz-tools";
|
|
2
4
|
import { createRoot } from "react-dom/client";
|
|
3
5
|
import { JazzInspectorInternal } from "./viewer/new-app.js";
|
|
4
6
|
|
|
7
|
+
setup(React.createElement);
|
|
8
|
+
|
|
5
9
|
export class JazzInspectorElement extends HTMLElement {
|
|
6
10
|
private root: ReturnType<typeof createRoot> | null = null;
|
|
7
11
|
|
package/src/inspector/index.tsx
CHANGED
|
@@ -30,8 +30,6 @@ export function JazzInspector({ position = "right" }: { position?: Position }) {
|
|
|
30
30
|
const localNode = context.node;
|
|
31
31
|
const me = "me" in context ? context.me : undefined;
|
|
32
32
|
|
|
33
|
-
if (process.env.NODE_ENV !== "development") return null;
|
|
34
|
-
|
|
35
33
|
return (
|
|
36
34
|
<JazzInspectorInternal
|
|
37
35
|
position={position}
|
|
@@ -22,7 +22,7 @@ import {
|
|
|
22
22
|
TypeSym,
|
|
23
23
|
BranchDefinition,
|
|
24
24
|
getIdFromHeader,
|
|
25
|
-
|
|
25
|
+
internalLoadUnique,
|
|
26
26
|
} from "../internal.js";
|
|
27
27
|
import {
|
|
28
28
|
AnonymousJazzAgent,
|
|
@@ -380,7 +380,7 @@ export class CoList<out Item = any>
|
|
|
380
380
|
options.owner.$jazz.id,
|
|
381
381
|
);
|
|
382
382
|
|
|
383
|
-
return
|
|
383
|
+
return internalLoadUnique(this, {
|
|
384
384
|
header,
|
|
385
385
|
owner: options.owner,
|
|
386
386
|
resolve: options.resolve,
|
|
@@ -423,7 +423,7 @@ export class CoList<out Item = any>
|
|
|
423
423
|
|
|
424
424
|
if (!owner) return owner;
|
|
425
425
|
|
|
426
|
-
return
|
|
426
|
+
return internalLoadUnique(this, {
|
|
427
427
|
header,
|
|
428
428
|
owner,
|
|
429
429
|
resolve: options?.resolve,
|
|
@@ -29,7 +29,7 @@ import {
|
|
|
29
29
|
TypeSym,
|
|
30
30
|
BranchDefinition,
|
|
31
31
|
getIdFromHeader,
|
|
32
|
-
|
|
32
|
+
internalLoadUnique,
|
|
33
33
|
} from "../internal.js";
|
|
34
34
|
import {
|
|
35
35
|
Account,
|
|
@@ -499,7 +499,7 @@ export class CoMap extends CoValueBase implements CoValue {
|
|
|
499
499
|
options.owner.$jazz.id,
|
|
500
500
|
);
|
|
501
501
|
|
|
502
|
-
return
|
|
502
|
+
return internalLoadUnique(this, {
|
|
503
503
|
header,
|
|
504
504
|
owner: options.owner,
|
|
505
505
|
resolve: options.resolve,
|
|
@@ -544,7 +544,7 @@ export class CoMap extends CoValueBase implements CoValue {
|
|
|
544
544
|
|
|
545
545
|
if (!owner) return owner;
|
|
546
546
|
|
|
547
|
-
return
|
|
547
|
+
return internalLoadUnique(this, {
|
|
548
548
|
header,
|
|
549
549
|
owner,
|
|
550
550
|
resolve: options?.resolve,
|
|
@@ -461,6 +461,41 @@ export function getIdFromHeader(
|
|
|
461
461
|
}
|
|
462
462
|
|
|
463
463
|
export async function unstable_loadUnique<
|
|
464
|
+
S extends CoValueClassOrSchema,
|
|
465
|
+
const R extends ResolveQuery<S>,
|
|
466
|
+
>(
|
|
467
|
+
schema: S,
|
|
468
|
+
options: {
|
|
469
|
+
unique: CoValueUniqueness["uniqueness"];
|
|
470
|
+
onCreateWhenMissing?: () => void;
|
|
471
|
+
onUpdateWhenFound?: (value: Loaded<S, R>) => void;
|
|
472
|
+
owner: Account | Group;
|
|
473
|
+
resolve?: ResolveQueryStrict<S, R>;
|
|
474
|
+
},
|
|
475
|
+
): Promise<Loaded<S, R> | null> {
|
|
476
|
+
const cls = coValueClassFromCoValueClassOrSchema(schema);
|
|
477
|
+
|
|
478
|
+
if (
|
|
479
|
+
!("_getUniqueHeader" in cls) ||
|
|
480
|
+
typeof cls._getUniqueHeader !== "function"
|
|
481
|
+
) {
|
|
482
|
+
throw new Error("CoValue class does not support unique headers");
|
|
483
|
+
}
|
|
484
|
+
|
|
485
|
+
const header = cls._getUniqueHeader(options.unique, options.owner.$jazz.id);
|
|
486
|
+
|
|
487
|
+
return internalLoadUnique(cls, {
|
|
488
|
+
header,
|
|
489
|
+
onCreateWhenMissing: options.onCreateWhenMissing,
|
|
490
|
+
// @ts-expect-error loaded is not compatible with Resolved at type level, but they are the same thing
|
|
491
|
+
onUpdateWhenFound: options.onUpdateWhenFound,
|
|
492
|
+
owner: options.owner,
|
|
493
|
+
// @ts-expect-error loaded is not compatible with Resolved at type level, but they are the same thing
|
|
494
|
+
resolve: options.resolve,
|
|
495
|
+
}) as unknown as Loaded<S, R> | null;
|
|
496
|
+
}
|
|
497
|
+
|
|
498
|
+
export async function internalLoadUnique<
|
|
464
499
|
V extends CoValue,
|
|
465
500
|
R extends RefsToResolve<V>,
|
|
466
501
|
>(
|
|
@@ -484,32 +519,28 @@ export async function unstable_loadUnique<
|
|
|
484
519
|
// retrying failures
|
|
485
520
|
// This way when we want to upsert we are sure that, if the load failed
|
|
486
521
|
// it failed because the unique value was missing
|
|
487
|
-
|
|
522
|
+
await loadCoValueWithoutMe(cls, id, {
|
|
488
523
|
skipRetry: true,
|
|
489
524
|
loadAs,
|
|
490
525
|
});
|
|
491
526
|
|
|
492
|
-
|
|
493
|
-
// if load returns unavailable, we check the state in localNode
|
|
494
|
-
// to ward against race conditions that would happen when
|
|
495
|
-
// running the same upsert unique concurrently
|
|
496
|
-
if (!result && node.getCoValue(id).hasVerifiedContent()) {
|
|
497
|
-
result = await loadCoValueWithoutMe(cls, id, {
|
|
498
|
-
loadAs,
|
|
499
|
-
});
|
|
500
|
-
}
|
|
527
|
+
const isAvailable = node.getCoValue(id).hasVerifiedContent();
|
|
501
528
|
|
|
502
|
-
|
|
503
|
-
|
|
529
|
+
// if load returns unavailable, we check the state in localNode
|
|
530
|
+
// to ward against race conditions that would happen when
|
|
531
|
+
// running the same upsert unique concurrently
|
|
532
|
+
if (options.onCreateWhenMissing && !isAvailable) {
|
|
533
|
+
options.onCreateWhenMissing();
|
|
504
534
|
|
|
505
|
-
|
|
506
|
-
|
|
507
|
-
|
|
508
|
-
|
|
509
|
-
}
|
|
535
|
+
return loadCoValueWithoutMe(cls, id, {
|
|
536
|
+
loadAs,
|
|
537
|
+
resolve: options.resolve,
|
|
538
|
+
});
|
|
510
539
|
}
|
|
511
540
|
|
|
512
|
-
if (!
|
|
541
|
+
if (!isAvailable) {
|
|
542
|
+
return null;
|
|
543
|
+
}
|
|
513
544
|
|
|
514
545
|
if (options.onUpdateWhenFound) {
|
|
515
546
|
// we deeply load the value, retrying any failures
|
package/src/tools/exports.ts
CHANGED
|
@@ -36,7 +36,6 @@ export type {
|
|
|
36
36
|
AccountClass,
|
|
37
37
|
AccountCreationProps,
|
|
38
38
|
BaseProfileShape,
|
|
39
|
-
unstable_loadUnique,
|
|
40
39
|
} from "./internal.js";
|
|
41
40
|
|
|
42
41
|
export {
|
|
@@ -57,6 +56,7 @@ export {
|
|
|
57
56
|
exportCoValue,
|
|
58
57
|
importContentPieces,
|
|
59
58
|
Ref,
|
|
59
|
+
unstable_loadUnique,
|
|
60
60
|
} from "./internal.js";
|
|
61
61
|
|
|
62
62
|
export {
|
|
@@ -5,7 +5,12 @@ import {
|
|
|
5
5
|
createJazzTestAccount,
|
|
6
6
|
runWithoutActiveAccount,
|
|
7
7
|
} from "../testing";
|
|
8
|
-
import {
|
|
8
|
+
import {
|
|
9
|
+
Group,
|
|
10
|
+
co,
|
|
11
|
+
activeAccountContext,
|
|
12
|
+
unstable_loadUnique,
|
|
13
|
+
} from "../internal";
|
|
9
14
|
import { z } from "../exports";
|
|
10
15
|
|
|
11
16
|
beforeEach(async () => {
|
|
@@ -47,6 +52,61 @@ describe("Creating and finding unique CoMaps", async () => {
|
|
|
47
52
|
expect(foundAlice).toEqual(alice);
|
|
48
53
|
});
|
|
49
54
|
|
|
55
|
+
test("should work with unstable_loadUnique", async () => {
|
|
56
|
+
const group = Group.create();
|
|
57
|
+
|
|
58
|
+
const Person = co.map({
|
|
59
|
+
name: z.string(),
|
|
60
|
+
_height: z.number(),
|
|
61
|
+
birthday: z.date(),
|
|
62
|
+
color: z.string(),
|
|
63
|
+
});
|
|
64
|
+
|
|
65
|
+
const alice = Person.create(
|
|
66
|
+
{
|
|
67
|
+
name: "Alice",
|
|
68
|
+
_height: 100,
|
|
69
|
+
birthday: new Date("1990-01-01"),
|
|
70
|
+
color: "red",
|
|
71
|
+
},
|
|
72
|
+
{ owner: group, unique: { name: "Alice" } },
|
|
73
|
+
);
|
|
74
|
+
|
|
75
|
+
const foundAlice = await unstable_loadUnique(Person, {
|
|
76
|
+
unique: { name: "Alice" },
|
|
77
|
+
owner: group,
|
|
78
|
+
});
|
|
79
|
+
expect(foundAlice).toEqual(alice);
|
|
80
|
+
});
|
|
81
|
+
|
|
82
|
+
test("should upsert with unstable_loadUnique", async () => {
|
|
83
|
+
const group = Group.create();
|
|
84
|
+
|
|
85
|
+
const Person = co.map({
|
|
86
|
+
name: z.string(),
|
|
87
|
+
_height: z.number(),
|
|
88
|
+
birthday: z.date(),
|
|
89
|
+
color: z.string(),
|
|
90
|
+
});
|
|
91
|
+
|
|
92
|
+
const alice = await unstable_loadUnique(Person, {
|
|
93
|
+
unique: { name: "Alice" },
|
|
94
|
+
onCreateWhenMissing: () => {
|
|
95
|
+
Person.create(
|
|
96
|
+
{
|
|
97
|
+
name: "Alice",
|
|
98
|
+
_height: 100,
|
|
99
|
+
birthday: new Date("1990-01-01"),
|
|
100
|
+
color: "red",
|
|
101
|
+
},
|
|
102
|
+
{ owner: group, unique: { name: "Alice" } },
|
|
103
|
+
);
|
|
104
|
+
},
|
|
105
|
+
owner: group,
|
|
106
|
+
});
|
|
107
|
+
expect(alice?.name).toEqual("Alice");
|
|
108
|
+
});
|
|
109
|
+
|
|
50
110
|
test("manual upserting pattern", async () => {
|
|
51
111
|
// Schema
|
|
52
112
|
const Event = co.map({
|
|
@@ -124,6 +184,51 @@ describe("Creating and finding unique CoMaps", async () => {
|
|
|
124
184
|
});
|
|
125
185
|
});
|
|
126
186
|
|
|
187
|
+
test("upserting a existent value without enough permissions should not throw", async () => {
|
|
188
|
+
const Event = co.map({
|
|
189
|
+
title: z.string(),
|
|
190
|
+
identifier: z.string(),
|
|
191
|
+
external_id: z.string(),
|
|
192
|
+
});
|
|
193
|
+
|
|
194
|
+
const sourceData = {
|
|
195
|
+
title: "Test Event Title",
|
|
196
|
+
identifier: "test-event-identifier",
|
|
197
|
+
_id: "test-event-external-id",
|
|
198
|
+
};
|
|
199
|
+
const workspace = Group.create();
|
|
200
|
+
|
|
201
|
+
const initialEvent = await Event.upsertUnique({
|
|
202
|
+
value: {
|
|
203
|
+
title: sourceData.title,
|
|
204
|
+
identifier: sourceData.identifier,
|
|
205
|
+
external_id: sourceData._id,
|
|
206
|
+
},
|
|
207
|
+
unique: sourceData.identifier,
|
|
208
|
+
owner: workspace,
|
|
209
|
+
});
|
|
210
|
+
|
|
211
|
+
const alice = await createJazzTestAccount({
|
|
212
|
+
isCurrentActiveAccount: true,
|
|
213
|
+
});
|
|
214
|
+
|
|
215
|
+
const workspaceOnAlice = await Group.load(workspace.$jazz.id, {
|
|
216
|
+
loadAs: alice,
|
|
217
|
+
});
|
|
218
|
+
assert(workspaceOnAlice);
|
|
219
|
+
|
|
220
|
+
const eventOnAlice = await Event.upsertUnique({
|
|
221
|
+
value: {
|
|
222
|
+
title: sourceData.title,
|
|
223
|
+
identifier: sourceData.identifier,
|
|
224
|
+
external_id: sourceData._id,
|
|
225
|
+
},
|
|
226
|
+
unique: sourceData.identifier,
|
|
227
|
+
owner: workspaceOnAlice,
|
|
228
|
+
});
|
|
229
|
+
expect(eventOnAlice).toBeNull();
|
|
230
|
+
});
|
|
231
|
+
|
|
127
232
|
test("upserting without an active account", async () => {
|
|
128
233
|
const account = activeAccountContext.get();
|
|
129
234
|
|