jazz-tools 0.17.14 → 0.18.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/.svelte-kit/__package__/jazz.class.svelte.js +1 -1
- package/.svelte-kit/__package__/media/image.svelte +3 -9
- package/.svelte-kit/__package__/media/image.svelte.d.ts +1 -6
- package/.svelte-kit/__package__/media/image.svelte.d.ts.map +1 -1
- package/.svelte-kit/__package__/media/image.types.d.ts +7 -0
- package/.svelte-kit/__package__/media/image.types.d.ts.map +1 -0
- package/.svelte-kit/__package__/media/image.types.js +1 -0
- package/.svelte-kit/__package__/tests/media/image.svelte.test.js +31 -31
- package/.turbo/turbo-build.log +50 -50
- package/CHANGELOG.md +31 -0
- package/dist/browser/index.js +2 -2
- package/dist/browser/index.js.map +1 -1
- package/dist/{chunk-LZOF6WP5.js → chunk-HJ3GTGY7.js} +1320 -1018
- package/dist/chunk-HJ3GTGY7.js.map +1 -0
- package/dist/index.js +18 -18
- package/dist/index.js.map +1 -1
- package/dist/inspector/{custom-element-ZSNTCECD.js → custom-element-WCY6D3QJ.js} +3 -3
- package/dist/inspector/{custom-element-ZSNTCECD.js.map → custom-element-WCY6D3QJ.js.map} +1 -1
- package/dist/inspector/index.js +1 -1
- package/dist/inspector/index.js.map +1 -1
- package/dist/inspector/register-custom-element.js +1 -1
- package/dist/media/{chunk-E5J3WLQW.js → chunk-KR2V6X2N.js} +14 -9
- package/dist/media/chunk-KR2V6X2N.js.map +1 -0
- package/dist/media/create-image.d.ts +6 -6
- package/dist/media/index.browser.d.ts +6 -6
- package/dist/media/index.browser.js +1 -1
- package/dist/media/index.d.ts +1 -1
- package/dist/media/index.js +1 -1
- package/dist/media/index.native.d.ts +6 -6
- package/dist/media/index.native.js +1 -1
- package/dist/media/utils.d.ts.map +1 -1
- package/dist/prosemirror/index.js +2 -2
- package/dist/prosemirror/index.js.map +1 -1
- package/dist/react/index.js +7 -5
- package/dist/react/index.js.map +1 -1
- package/dist/react-core/hooks.d.ts.map +1 -1
- package/dist/react-core/index.js +4658 -23
- package/dist/react-core/index.js.map +1 -1
- package/dist/react-native-core/index.js +1 -1
- package/dist/react-native-core/index.js.map +1 -1
- package/dist/svelte/jazz.class.svelte.js +1 -1
- package/dist/svelte/media/image.svelte +3 -9
- package/dist/svelte/media/image.svelte.d.ts +1 -6
- package/dist/svelte/media/image.svelte.d.ts.map +1 -1
- package/dist/svelte/media/image.types.d.ts +7 -0
- package/dist/svelte/media/image.types.d.ts.map +1 -0
- package/dist/svelte/media/image.types.js +1 -0
- package/dist/svelte/tests/media/image.svelte.test.js +31 -31
- package/dist/testing.js +18 -14
- package/dist/testing.js.map +1 -1
- package/dist/tools/coValues/CoFieldInit.d.ts +13 -0
- package/dist/tools/coValues/CoFieldInit.d.ts.map +1 -0
- package/dist/tools/coValues/CoValueBase.d.ts +18 -15
- package/dist/tools/coValues/CoValueBase.d.ts.map +1 -1
- package/dist/tools/coValues/account.d.ts +100 -46
- package/dist/tools/coValues/account.d.ts.map +1 -1
- package/dist/tools/coValues/coFeed.d.ts +78 -62
- package/dist/tools/coValues/coFeed.d.ts.map +1 -1
- package/dist/tools/coValues/coList.d.ts +212 -99
- package/dist/tools/coValues/coList.d.ts.map +1 -1
- package/dist/tools/coValues/coMap.d.ts +200 -192
- package/dist/tools/coValues/coMap.d.ts.map +1 -1
- package/dist/tools/coValues/coPlainText.d.ts +30 -22
- package/dist/tools/coValues/coPlainText.d.ts.map +1 -1
- package/dist/tools/coValues/deepLoading.d.ts +13 -13
- package/dist/tools/coValues/deepLoading.d.ts.map +1 -1
- package/dist/tools/coValues/extensions/imageDef.d.ts +1 -1
- package/dist/tools/coValues/group.d.ts +32 -32
- package/dist/tools/coValues/group.d.ts.map +1 -1
- package/dist/tools/coValues/inbox.d.ts.map +1 -1
- package/dist/tools/coValues/interfaces.d.ts +18 -17
- package/dist/tools/coValues/interfaces.d.ts.map +1 -1
- package/dist/tools/coValues/profile.d.ts +6 -5
- package/dist/tools/coValues/profile.d.ts.map +1 -1
- package/dist/tools/coValues/schemaUnion.d.ts +3 -3
- package/dist/tools/coValues/schemaUnion.d.ts.map +1 -1
- package/dist/tools/exports.d.ts +1 -1
- package/dist/tools/exports.d.ts.map +1 -1
- package/dist/tools/implementation/anonymousJazzAgent.d.ts +2 -1
- package/dist/tools/implementation/anonymousJazzAgent.d.ts.map +1 -1
- package/dist/tools/implementation/schema.d.ts +5 -5
- package/dist/tools/implementation/schema.d.ts.map +1 -1
- package/dist/tools/implementation/symbols.d.ts +2 -0
- package/dist/tools/implementation/symbols.d.ts.map +1 -1
- package/dist/tools/implementation/zodSchema/schemaTypes/AccountSchema.d.ts +2 -2
- package/dist/tools/implementation/zodSchema/schemaTypes/AccountSchema.d.ts.map +1 -1
- package/dist/tools/implementation/zodSchema/schemaTypes/CoFeedSchema.d.ts +6 -2
- package/dist/tools/implementation/zodSchema/schemaTypes/CoFeedSchema.d.ts.map +1 -1
- package/dist/tools/implementation/zodSchema/schemaTypes/CoListSchema.d.ts +8 -3
- package/dist/tools/implementation/zodSchema/schemaTypes/CoListSchema.d.ts.map +1 -1
- package/dist/tools/implementation/zodSchema/schemaTypes/CoMapSchema.d.ts +12 -7
- package/dist/tools/implementation/zodSchema/schemaTypes/CoMapSchema.d.ts.map +1 -1
- package/dist/tools/implementation/zodSchema/schemaTypes/CoRecordSchema.d.ts +13 -7
- package/dist/tools/implementation/zodSchema/schemaTypes/CoRecordSchema.d.ts.map +1 -1
- package/dist/tools/implementation/zodSchema/schemaTypes/FileStreamSchema.d.ts +11 -2
- package/dist/tools/implementation/zodSchema/schemaTypes/FileStreamSchema.d.ts.map +1 -1
- package/dist/tools/implementation/zodSchema/schemaTypes/PlainTextSchema.d.ts +4 -0
- package/dist/tools/implementation/zodSchema/schemaTypes/PlainTextSchema.d.ts.map +1 -1
- package/dist/tools/implementation/zodSchema/schemaTypes/RichTextSchema.d.ts +4 -0
- package/dist/tools/implementation/zodSchema/schemaTypes/RichTextSchema.d.ts.map +1 -1
- package/dist/tools/implementation/zodSchema/typeConverters/{CoFieldInit.d.ts → CoFieldSchemaInit.d.ts} +7 -7
- package/dist/tools/implementation/zodSchema/typeConverters/CoFieldSchemaInit.d.ts.map +1 -0
- package/dist/tools/implementation/zodSchema/typeConverters/InstanceOfSchema.d.ts +4 -4
- package/dist/tools/implementation/zodSchema/typeConverters/InstanceOfSchema.d.ts.map +1 -1
- package/dist/tools/implementation/zodSchema/typeConverters/InstanceOfSchemaCoValuesNullable.d.ts +4 -4
- package/dist/tools/implementation/zodSchema/typeConverters/InstanceOfSchemaCoValuesNullable.d.ts.map +1 -1
- package/dist/tools/implementation/zodSchema/zodCo.d.ts +2 -2
- package/dist/tools/implementation/zodSchema/zodCo.d.ts.map +1 -1
- package/dist/tools/internal.d.ts +2 -1
- package/dist/tools/internal.d.ts.map +1 -1
- package/dist/tools/lib/migration.d.ts +1 -1
- package/dist/tools/lib/migration.d.ts.map +1 -1
- package/dist/tools/subscribe/SubscriptionScope.d.ts.map +1 -1
- package/dist/tools/subscribe/index.d.ts +1 -1
- package/dist/tools/subscribe/index.d.ts.map +1 -1
- package/dist/tools/subscribe/utils.d.ts +2 -2
- package/dist/tools/subscribe/utils.d.ts.map +1 -1
- package/dist/tools/testing.d.ts.map +1 -1
- package/dist/tools/tests/utils.d.ts +2 -6
- package/dist/tools/tests/utils.d.ts.map +1 -1
- package/dist/worker/index.js +3 -3
- package/dist/worker/index.js.map +1 -1
- package/package.json +4 -4
- package/src/browser/auth/PasskeyAuth.ts +2 -2
- package/src/browser/createBrowserContext.ts +2 -2
- package/src/browser/tests/PasskeyAuth.test.ts +2 -2
- package/src/inspector/custom-element.tsx +2 -2
- package/src/inspector/viewer/new-app.tsx +1 -1
- package/src/media/create-image.test.ts +7 -7
- package/src/media/create-image.ts +5 -3
- package/src/media/index.ts +1 -1
- package/src/media/utils.test.ts +72 -66
- package/src/media/utils.ts +9 -6
- package/src/prosemirror/lib/plugin.ts +1 -1
- package/src/prosemirror/lib/sync.ts +1 -1
- package/src/prosemirror/tests/plugin.test.ts +4 -4
- package/src/react/media/image.tsx +2 -2
- package/src/react/tests/media/image.test.tsx +52 -32
- package/src/react-core/hooks.ts +11 -5
- package/src/react-core/tests/useAccount.test.ts +16 -22
- package/src/react-core/tests/useCoState.test.ts +19 -19
- package/src/react-core/tests/useInboxSender.test.ts +5 -2
- package/src/react-core/tests/usePassPhraseAuth.test.ts +6 -6
- package/src/react-native-core/media/image.tsx +1 -1
- package/src/svelte/jazz.class.svelte.ts +1 -1
- package/src/svelte/media/image.svelte +3 -9
- package/src/svelte/media/image.types.ts +7 -0
- package/src/svelte/tests/media/image.svelte.test.ts +34 -32
- package/src/tools/auth/DemoAuth.ts +2 -2
- package/src/tools/auth/PassphraseAuth.ts +2 -2
- package/src/tools/auth/clerk/index.ts +2 -2
- package/src/tools/auth/clerk/tests/JazzClerkAuth.test.ts +1 -1
- package/src/tools/coValues/CoFieldInit.ts +20 -0
- package/src/tools/coValues/CoValueBase.ts +40 -60
- package/src/tools/coValues/account.ts +306 -232
- package/src/tools/coValues/coFeed.ts +185 -153
- package/src/tools/coValues/coList.ts +507 -334
- package/src/tools/coValues/coMap.ts +420 -286
- package/src/tools/coValues/coPlainText.ts +94 -110
- package/src/tools/coValues/deepLoading.ts +13 -13
- package/src/tools/coValues/group.ts +100 -114
- package/src/tools/coValues/inbox.ts +16 -14
- package/src/tools/coValues/interfaces.ts +49 -31
- package/src/tools/coValues/profile.ts +8 -6
- package/src/tools/coValues/request.ts +9 -9
- package/src/tools/coValues/schemaUnion.ts +11 -5
- package/src/tools/exports.ts +1 -1
- package/src/tools/implementation/ContextManager.ts +4 -4
- package/src/tools/implementation/anonymousJazzAgent.ts +2 -1
- package/src/tools/implementation/createContext.ts +1 -1
- package/src/tools/implementation/devtoolsFormatters.ts +9 -9
- package/src/tools/implementation/invites.ts +2 -2
- package/src/tools/implementation/schema.ts +7 -7
- package/src/tools/implementation/symbols.ts +3 -0
- package/src/tools/implementation/zodSchema/schemaTypes/AccountSchema.ts +2 -2
- package/src/tools/implementation/zodSchema/schemaTypes/CoFeedSchema.ts +11 -2
- package/src/tools/implementation/zodSchema/schemaTypes/CoListSchema.ts +18 -7
- package/src/tools/implementation/zodSchema/schemaTypes/CoMapSchema.ts +17 -7
- package/src/tools/implementation/zodSchema/schemaTypes/CoRecordSchema.ts +20 -11
- package/src/tools/implementation/zodSchema/schemaTypes/FileStreamSchema.ts +19 -2
- package/src/tools/implementation/zodSchema/schemaTypes/PlainTextSchema.ts +6 -0
- package/src/tools/implementation/zodSchema/schemaTypes/RichTextSchema.ts +6 -0
- package/src/tools/implementation/zodSchema/typeConverters/{CoFieldInit.ts → CoFieldSchemaInit.ts} +11 -11
- package/src/tools/implementation/zodSchema/typeConverters/InstanceOfSchema.ts +4 -4
- package/src/tools/implementation/zodSchema/typeConverters/InstanceOfSchemaCoValuesNullable.ts +4 -4
- package/src/tools/implementation/zodSchema/zodCo.ts +2 -2
- package/src/tools/internal.ts +2 -1
- package/src/tools/lib/migration.ts +5 -5
- package/src/tools/subscribe/SubscriptionScope.ts +32 -24
- package/src/tools/subscribe/index.ts +4 -4
- package/src/tools/subscribe/utils.ts +11 -11
- package/src/tools/testing.ts +17 -13
- package/src/tools/tests/ContextManager.test.ts +68 -57
- package/src/tools/tests/PassphraseAuth.test.ts +2 -2
- package/src/tools/tests/account.test.ts +139 -69
- package/src/tools/tests/coDiscriminatedUnion.test-d.ts +12 -6
- package/src/tools/tests/coDiscriminatedUnion.test.ts +26 -17
- package/src/tools/tests/coFeed.test-d.ts +18 -17
- package/src/tools/tests/coFeed.test.ts +108 -97
- package/src/tools/tests/coList.test-d.ts +18 -23
- package/src/tools/tests/coList.test.ts +350 -165
- package/src/tools/tests/coMap.record.test-d.ts +9 -13
- package/src/tools/tests/coMap.record.test.ts +37 -23
- package/src/tools/tests/coMap.test-d.ts +43 -21
- package/src/tools/tests/coMap.test.ts +360 -182
- package/src/tools/tests/coOptional.test.ts +28 -13
- package/src/tools/tests/coPlainText.test.ts +15 -15
- package/src/tools/tests/createContext.test.ts +14 -14
- package/src/tools/tests/deepLoading.test.ts +95 -94
- package/src/tools/tests/exportImport.test.ts +61 -41
- package/src/tools/tests/groupsAndAccounts.test.ts +333 -116
- package/src/tools/tests/inbox.test.ts +22 -17
- package/src/tools/tests/interfaces.test.ts +12 -11
- package/src/tools/tests/invites.test.ts +6 -4
- package/src/tools/tests/load.test.ts +20 -18
- package/src/tools/tests/patterns/notifications.test.ts +6 -6
- package/src/tools/tests/patterns/quest.test.ts +3 -3
- package/src/tools/tests/patterns/requestToJoin.test.ts +22 -22
- package/src/tools/tests/request.test.ts +38 -39
- package/src/tools/tests/schemaUnion.test.ts +64 -10
- package/src/tools/tests/subscribe.test.ts +64 -64
- package/src/tools/tests/testing.test.ts +5 -9
- package/src/tools/tests/utils.ts +3 -3
- package/src/tools/tests/zod.test.ts +3 -3
- package/src/worker/index.ts +3 -3
- package/dist/chunk-LZOF6WP5.js.map +0 -1
- package/dist/media/chunk-E5J3WLQW.js.map +0 -1
- package/dist/tools/implementation/zodSchema/typeConverters/CoFieldInit.d.ts.map +0 -1
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/tools/subscribe/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,UAAU,EAAE,MAAM,QAAQ,CAAC;
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/tools/subscribe/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,UAAU,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAEtD,OAAO,EACL,OAAO,EACP,UAAU,EAGX,MAAM,gBAAgB,CAAC;AAExB,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAE3D,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,UAAU,GAAG,IAAI,GAAG,SAAS,CAUnE;AAED,wBAAgB,aAAa,CAAC,CAAC,SAAS,OAAO,EAC7C,GAAG,EAAE,UAAU,CAAC,CAAC,CAAC,EAClB,GAAG,EAAE,UAAU,EACf,iBAAiB,EAAE,iBAAiB,CAAC,CAAC,CAAC;;;;EAgBxC"}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"testing.d.ts","sourceRoot":"","sources":["../../src/tools/testing.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AAEnC,OAAO,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AAC/D,OAAO,EACL,OAAO,EACP,YAAY,EACZ,KAAK,kBAAkB,EAEvB,cAAc,EACd,iBAAiB,EACjB,gBAAgB,EAChB,kBAAkB,EAClB,2BAA2B,EAC3B,2BAA2B,EAM5B,MAAM,eAAe,CAAC;AAOvB,qBAAa,YAAa,SAAQ,YAAY;WAC/B,MAAM;CAoBpB;AAED,wBAAgB,gCAAgC,0BAiC/C;AAKD,wBAAsB,qBAAqB,CACzC,CAAC,SACG,CAAC,YAAY,CAAC,OAAO,CAAC,GAAG,cAAc,CAAC,OAAO,CAAC,CAAC,GACjD,iBAAiB,EACrB,OAAO,CAAC,EAAE;IACV,sBAAsB,CAAC,EAAE,OAAO,CAAC;IACjC,aAAa,CAAC,EAAE,CAAC,CAAC;IAClB,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACzC,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAuD/B;AAED,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,OAAO,QAEhD;AAED;;;;;;;;;GASG;AACH,wBAAgB,uBAAuB,CAAC,MAAM,EAC5C,QAAQ,EAAE,MAAM,MAAM,GACrB,MAAM,CAcR;AAED,wBAAsB,mBAAmB;;GASxC;AAED,MAAM,MAAM,2BAA2B,CAAC,GAAG,SAAS,OAAO,IACzD,2BAA2B,CAAC,GAAG,CAAC,GAAG;IACjC,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,aAAa,CAAC,EAAE,YAAY,CAAC,GAAG,CAAC,GAAG,cAAc,CAAC,GAAG,CAAC,CAAC;IACxD,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B,CAAC;AAEJ,qBAAa,sBAAsB,CACjC,GAAG,SAAS,OAAO,CACnB,SAAQ,kBAAkB,CAAC,GAAG,EAAE,2BAA2B,CAAC,GAAG,CAAC,CAAC;IACjE,MAAM,CAAC,kBAAkB,CAAC,GAAG,SAAS,OAAO,EAC3C,OAAO,CAAC,EAAE,GAAG,GAAG;QAAE,KAAK,EAAE,kBAAkB,CAAA;KAAE,EAC7C,KAAK,CAAC,EAAE,2BAA2B,CAAC,GAAG,CAAC;IAS1C,MAAM,CAAC,WAAW,CAAC,GAAG,SAAS,OAAO,EACpC,OAAO,EAAE,GAAG,EACZ,KAAK,CAAC,EAAE,2BAA2B,CAAC,GAAG,CAAC;IA0C1C,MAAM,CAAC,SAAS,CAAC,GAAG,SAAS,OAAO,EAClC,EAAE,KAAK,EAAE,EAAE;QAAE,KAAK,EAAE,kBAAkB,CAAA;KAAE,EACxC,KAAK,GAAE,2BAA2B,CAAC,GAAG,CAAM;IAmBxC,aAAa,CACjB,KAAK,EAAE,2BAA2B,CAAC,GAAG,CAAC,EACvC,SAAS,CAAC,EAAE,2BAA2B;;
|
1
|
+
{"version":3,"file":"testing.d.ts","sourceRoot":"","sources":["../../src/tools/testing.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AAEnC,OAAO,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AAC/D,OAAO,EACL,OAAO,EACP,YAAY,EACZ,KAAK,kBAAkB,EAEvB,cAAc,EACd,iBAAiB,EACjB,gBAAgB,EAChB,kBAAkB,EAClB,2BAA2B,EAC3B,2BAA2B,EAM5B,MAAM,eAAe,CAAC;AAOvB,qBAAa,YAAa,SAAQ,YAAY;WAC/B,MAAM;CAoBpB;AAED,wBAAgB,gCAAgC,0BAiC/C;AAKD,wBAAsB,qBAAqB,CACzC,CAAC,SACG,CAAC,YAAY,CAAC,OAAO,CAAC,GAAG,cAAc,CAAC,OAAO,CAAC,CAAC,GACjD,iBAAiB,EACrB,OAAO,CAAC,EAAE;IACV,sBAAsB,CAAC,EAAE,OAAO,CAAC;IACjC,aAAa,CAAC,EAAE,CAAC,CAAC;IAClB,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACzC,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAuD/B;AAED,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,OAAO,QAEhD;AAED;;;;;;;;;GASG;AACH,wBAAgB,uBAAuB,CAAC,MAAM,EAC5C,QAAQ,EAAE,MAAM,MAAM,GACrB,MAAM,CAcR;AAED,wBAAsB,mBAAmB;;GASxC;AAED,MAAM,MAAM,2BAA2B,CAAC,GAAG,SAAS,OAAO,IACzD,2BAA2B,CAAC,GAAG,CAAC,GAAG;IACjC,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,aAAa,CAAC,EAAE,YAAY,CAAC,GAAG,CAAC,GAAG,cAAc,CAAC,GAAG,CAAC,CAAC;IACxD,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B,CAAC;AAEJ,qBAAa,sBAAsB,CACjC,GAAG,SAAS,OAAO,CACnB,SAAQ,kBAAkB,CAAC,GAAG,EAAE,2BAA2B,CAAC,GAAG,CAAC,CAAC;IACjE,MAAM,CAAC,kBAAkB,CAAC,GAAG,SAAS,OAAO,EAC3C,OAAO,CAAC,EAAE,GAAG,GAAG;QAAE,KAAK,EAAE,kBAAkB,CAAA;KAAE,EAC7C,KAAK,CAAC,EAAE,2BAA2B,CAAC,GAAG,CAAC;IAS1C,MAAM,CAAC,WAAW,CAAC,GAAG,SAAS,OAAO,EACpC,OAAO,EAAE,GAAG,EACZ,KAAK,CAAC,EAAE,2BAA2B,CAAC,GAAG,CAAC;IA0C1C,MAAM,CAAC,SAAS,CAAC,GAAG,SAAS,OAAO,EAClC,EAAE,KAAK,EAAE,EAAE;QAAE,KAAK,EAAE,kBAAkB,CAAA;KAAE,EACxC,KAAK,GAAE,2BAA2B,CAAC,GAAG,CAAM;IAmBxC,aAAa,CACjB,KAAK,EAAE,2BAA2B,CAAC,GAAG,CAAC,EACvC,SAAS,CAAC,EAAE,2BAA2B;;uBA2E+8N,cAAc;;;;;;;;CA7CvgO;AAED,wBAAsB,YAAY,CAChC,CAAC,EAAE,OAAO,EACV,CAAC,EAAE,OAAO,EACV,KAAK,GAAE,QAAQ,GAAG,QAAmB,EACrC,KAAK,GAAE,QAAQ,GAAG,QAAmB,iBAgBtC;AAED,wBAAsB,iBAAiB,CAAC,EACtC,UAAkB,GACnB,GAAE;IACD,UAAU,CAAC,EAAE,OAAO,CAAC;CACjB,oBAgBL"}
|
@@ -3,13 +3,9 @@ import { CoID, LocalNode, RawCoValue } from "cojson";
|
|
3
3
|
import { Account } from "../index";
|
4
4
|
import { CoValueFromRaw } from "../internal";
|
5
5
|
export declare function setupAccount(): Promise<{
|
6
|
-
me:
|
7
|
-
isLocalNodeOwner: true;
|
8
|
-
sessionID: import("cojson").SessionID;
|
9
|
-
_raw: import("cojson").RawAccount;
|
10
|
-
};
|
6
|
+
me: import("../internal").ControlledAccount;
|
11
7
|
meOnSecondPeer: Account | ({
|
12
|
-
[x: string]: any;
|
8
|
+
readonly [x: string]: any;
|
13
9
|
} & Account);
|
14
10
|
}>;
|
15
11
|
export declare function setupTwoNodes(options?: {
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/tools/tests/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAuB,MAAM,qBAAqB,CAAC;AAExE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AAGrD,OAAO,EACL,OAAO,EAGR,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAI7C,wBAAsB,YAAY
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/tools/tests/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAuB,MAAM,qBAAqB,CAAC;AAExE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AAGrD,OAAO,EACL,OAAO,EAGR,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAI7C,wBAAsB,YAAY;;;;;GA+BjC;AAED,wBAAsB,aAAa,CAAC,OAAO,CAAC,EAAE;IAC5C,mBAAmB,CAAC,EAAE,cAAc,CAAC,OAAO,CAAC,GAAG,YAAY,CAAC,OAAO,CAAC,CAAC;CACvE;;;;;GAgDA;AAED,wBAAgB,OAAO,CACrB,QAAQ,EAAE,MAAM,OAAO,GAAG,IAAI,GAAG,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC,iBA2BzD;AAED,wBAAsB,iBAAiB,CAAC,CAAC,SAAS,UAAU,EAC1D,IAAI,EAAE,SAAS,EACf,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC,GACV,OAAO,CAAC,CAAC,CAAC,CAMZ"}
|
package/dist/worker/index.js
CHANGED
@@ -57,13 +57,13 @@ async function startWorker(options) {
|
|
57
57
|
crypto: options.crypto ?? await WasmCrypto.create()
|
58
58
|
});
|
59
59
|
const account = context.account;
|
60
|
-
node = account.
|
61
|
-
if (!account.
|
60
|
+
node = account.$jazz.localNode;
|
61
|
+
if (!account.$jazz.refs.profile?.id) {
|
62
62
|
throw new Error("Account has no profile");
|
63
63
|
}
|
64
64
|
const inbox = await Inbox.load(account);
|
65
65
|
async function done() {
|
66
|
-
await context.account.waitForAllCoValuesSync();
|
66
|
+
await context.account.$jazz.waitForAllCoValuesSync();
|
67
67
|
wsPeer.disable();
|
68
68
|
context.done();
|
69
69
|
}
|
package/dist/worker/index.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"sources":["../../src/worker/index.ts"],"sourcesContent":["import { AgentSecret, CryptoProvider, LocalNode, Peer } from \"cojson\";\nimport {\n type AnyWebSocketConstructor,\n WebSocketPeerWithReconnection,\n} from \"cojson-transport-ws\";\nimport { WasmCrypto } from \"cojson/crypto/WasmCrypto\";\nimport {\n Account,\n AccountClass,\n AnyAccountSchema,\n CoValueFromRaw,\n Inbox,\n InstanceOfSchema,\n createJazzContextFromExistingCredentials,\n randomSessionProvider,\n} from \"jazz-tools\";\n\ntype WorkerOptions<\n S extends\n | (AccountClass<Account> & CoValueFromRaw<Account>)\n | AnyAccountSchema,\n> = {\n accountID?: string;\n accountSecret?: string;\n syncServer?: string;\n WebSocket?: AnyWebSocketConstructor;\n AccountSchema?: S;\n crypto?: CryptoProvider;\n};\n\n/** @category Context Creation */\nexport async function startWorker<\n S extends\n | (AccountClass<Account> & CoValueFromRaw<Account>)\n | AnyAccountSchema,\n>(options: WorkerOptions<S>) {\n const {\n accountID = process.env.JAZZ_WORKER_ACCOUNT,\n accountSecret = process.env.JAZZ_WORKER_SECRET,\n syncServer = \"wss://cloud.jazz.tools\",\n AccountSchema = Account as unknown as S,\n } = options;\n\n let node: LocalNode | undefined = undefined;\n\n const peersToLoadFrom: Peer[] = [];\n\n const wsPeer = new WebSocketPeerWithReconnection({\n peer: syncServer,\n reconnectionTimeout: 100,\n addPeer: (peer) => {\n if (node) {\n node.syncManager.addPeer(peer);\n } else {\n peersToLoadFrom.push(peer);\n }\n },\n removePeer: () => {},\n WebSocketConstructor: options.WebSocket,\n });\n\n wsPeer.enable();\n\n if (!accountID) {\n throw new Error(\"No accountID provided\");\n }\n if (!accountSecret) {\n throw new Error(\"No accountSecret provided\");\n }\n if (!accountID.startsWith(\"co_\")) {\n throw new Error(\"Invalid accountID\");\n }\n if (!accountSecret?.startsWith(\"sealerSecret_\")) {\n throw new Error(\"Invalid accountSecret\");\n }\n\n const context = await createJazzContextFromExistingCredentials({\n credentials: {\n accountID: accountID,\n secret: accountSecret as AgentSecret,\n },\n AccountSchema,\n // TODO: locked sessions similar to browser\n sessionProvider: randomSessionProvider,\n peersToLoadFrom,\n crypto: options.crypto ?? (await WasmCrypto.create()),\n });\n\n const account = context.account as InstanceOfSchema<S>;\n node = account.
|
1
|
+
{"version":3,"sources":["../../src/worker/index.ts"],"sourcesContent":["import { AgentSecret, CryptoProvider, LocalNode, Peer } from \"cojson\";\nimport {\n type AnyWebSocketConstructor,\n WebSocketPeerWithReconnection,\n} from \"cojson-transport-ws\";\nimport { WasmCrypto } from \"cojson/crypto/WasmCrypto\";\nimport {\n Account,\n AccountClass,\n AnyAccountSchema,\n CoValueFromRaw,\n Inbox,\n InstanceOfSchema,\n createJazzContextFromExistingCredentials,\n randomSessionProvider,\n} from \"jazz-tools\";\n\ntype WorkerOptions<\n S extends\n | (AccountClass<Account> & CoValueFromRaw<Account>)\n | AnyAccountSchema,\n> = {\n accountID?: string;\n accountSecret?: string;\n syncServer?: string;\n WebSocket?: AnyWebSocketConstructor;\n AccountSchema?: S;\n crypto?: CryptoProvider;\n};\n\n/** @category Context Creation */\nexport async function startWorker<\n S extends\n | (AccountClass<Account> & CoValueFromRaw<Account>)\n | AnyAccountSchema,\n>(options: WorkerOptions<S>) {\n const {\n accountID = process.env.JAZZ_WORKER_ACCOUNT,\n accountSecret = process.env.JAZZ_WORKER_SECRET,\n syncServer = \"wss://cloud.jazz.tools\",\n AccountSchema = Account as unknown as S,\n } = options;\n\n let node: LocalNode | undefined = undefined;\n\n const peersToLoadFrom: Peer[] = [];\n\n const wsPeer = new WebSocketPeerWithReconnection({\n peer: syncServer,\n reconnectionTimeout: 100,\n addPeer: (peer) => {\n if (node) {\n node.syncManager.addPeer(peer);\n } else {\n peersToLoadFrom.push(peer);\n }\n },\n removePeer: () => {},\n WebSocketConstructor: options.WebSocket,\n });\n\n wsPeer.enable();\n\n if (!accountID) {\n throw new Error(\"No accountID provided\");\n }\n if (!accountSecret) {\n throw new Error(\"No accountSecret provided\");\n }\n if (!accountID.startsWith(\"co_\")) {\n throw new Error(\"Invalid accountID\");\n }\n if (!accountSecret?.startsWith(\"sealerSecret_\")) {\n throw new Error(\"Invalid accountSecret\");\n }\n\n const context = await createJazzContextFromExistingCredentials({\n credentials: {\n accountID: accountID,\n secret: accountSecret as AgentSecret,\n },\n AccountSchema,\n // TODO: locked sessions similar to browser\n sessionProvider: randomSessionProvider,\n peersToLoadFrom,\n crypto: options.crypto ?? (await WasmCrypto.create()),\n });\n\n const account = context.account as InstanceOfSchema<S>;\n node = account.$jazz.localNode;\n\n if (!account.$jazz.refs.profile?.id) {\n throw new Error(\"Account has no profile\");\n }\n\n const inbox = await Inbox.load(account);\n\n async function done() {\n await context.account.$jazz.waitForAllCoValuesSync();\n\n wsPeer.disable();\n context.done();\n }\n\n const inboxPublicApi = {\n subscribe: inbox.subscribe.bind(inbox) as Inbox[\"subscribe\"],\n };\n\n return {\n worker: context.account as InstanceOfSchema<S>,\n experimental: {\n inbox: inboxPublicApi,\n },\n waitForConnection() {\n return wsPeer.waitUntilConnected();\n },\n subscribeToConnectionChange(listener: (connected: boolean) => void) {\n wsPeer.subscribe(listener);\n\n return () => {\n wsPeer.unsubscribe(listener);\n };\n },\n done,\n };\n}\n"],"mappings":";AACA;AAAA,EAEE;AAAA,OACK;AACP,SAAS,kBAAkB;AAC3B;AAAA,EACE;AAAA,EAIA;AAAA,EAEA;AAAA,EACA;AAAA,OACK;AAgBP,eAAsB,YAIpB,SAA2B;AAC3B,QAAM;AAAA,IACJ,YAAY,QAAQ,IAAI;AAAA,IACxB,gBAAgB,QAAQ,IAAI;AAAA,IAC5B,aAAa;AAAA,IACb,gBAAgB;AAAA,EAClB,IAAI;AAEJ,MAAI,OAA8B;AAElC,QAAM,kBAA0B,CAAC;AAEjC,QAAM,SAAS,IAAI,8BAA8B;AAAA,IAC/C,MAAM;AAAA,IACN,qBAAqB;AAAA,IACrB,SAAS,CAAC,SAAS;AACjB,UAAI,MAAM;AACR,aAAK,YAAY,QAAQ,IAAI;AAAA,MAC/B,OAAO;AACL,wBAAgB,KAAK,IAAI;AAAA,MAC3B;AAAA,IACF;AAAA,IACA,YAAY,MAAM;AAAA,IAAC;AAAA,IACnB,sBAAsB,QAAQ;AAAA,EAChC,CAAC;AAED,SAAO,OAAO;AAEd,MAAI,CAAC,WAAW;AACd,UAAM,IAAI,MAAM,uBAAuB;AAAA,EACzC;AACA,MAAI,CAAC,eAAe;AAClB,UAAM,IAAI,MAAM,2BAA2B;AAAA,EAC7C;AACA,MAAI,CAAC,UAAU,WAAW,KAAK,GAAG;AAChC,UAAM,IAAI,MAAM,mBAAmB;AAAA,EACrC;AACA,MAAI,CAAC,eAAe,WAAW,eAAe,GAAG;AAC/C,UAAM,IAAI,MAAM,uBAAuB;AAAA,EACzC;AAEA,QAAM,UAAU,MAAM,yCAAyC;AAAA,IAC7D,aAAa;AAAA,MACX;AAAA,MACA,QAAQ;AAAA,IACV;AAAA,IACA;AAAA;AAAA,IAEA,iBAAiB;AAAA,IACjB;AAAA,IACA,QAAQ,QAAQ,UAAW,MAAM,WAAW,OAAO;AAAA,EACrD,CAAC;AAED,QAAM,UAAU,QAAQ;AACxB,SAAO,QAAQ,MAAM;AAErB,MAAI,CAAC,QAAQ,MAAM,KAAK,SAAS,IAAI;AACnC,UAAM,IAAI,MAAM,wBAAwB;AAAA,EAC1C;AAEA,QAAM,QAAQ,MAAM,MAAM,KAAK,OAAO;AAEtC,iBAAe,OAAO;AACpB,UAAM,QAAQ,QAAQ,MAAM,uBAAuB;AAEnD,WAAO,QAAQ;AACf,YAAQ,KAAK;AAAA,EACf;AAEA,QAAM,iBAAiB;AAAA,IACrB,WAAW,MAAM,UAAU,KAAK,KAAK;AAAA,EACvC;AAEA,SAAO;AAAA,IACL,QAAQ,QAAQ;AAAA,IAChB,cAAc;AAAA,MACZ,OAAO;AAAA,IACT;AAAA,IACA,oBAAoB;AAClB,aAAO,OAAO,mBAAmB;AAAA,IACnC;AAAA,IACA,4BAA4B,UAAwC;AAClE,aAAO,UAAU,QAAQ;AAEzB,aAAO,MAAM;AACX,eAAO,YAAY,QAAQ;AAAA,MAC7B;AAAA,IACF;AAAA,IACA;AAAA,EACF;AACF;","names":[]}
|
package/package.json
CHANGED
@@ -140,7 +140,7 @@
|
|
140
140
|
},
|
141
141
|
"type": "module",
|
142
142
|
"license": "MIT",
|
143
|
-
"version": "0.
|
143
|
+
"version": "0.18.0",
|
144
144
|
"dependencies": {
|
145
145
|
"@manuscripts/prosemirror-recreate-steps": "^0.1.4",
|
146
146
|
"@scure/base": "1.2.1",
|
@@ -156,9 +156,9 @@
|
|
156
156
|
"prosemirror-state": "^1.4.3",
|
157
157
|
"prosemirror-transform": "^1.9.0",
|
158
158
|
"zod": "3.25.76",
|
159
|
-
"cojson": "0.
|
160
|
-
"cojson-storage-indexeddb": "0.
|
161
|
-
"cojson-transport-ws": "0.
|
159
|
+
"cojson": "0.18.0",
|
160
|
+
"cojson-storage-indexeddb": "0.18.0",
|
161
|
+
"cojson-transport-ws": "0.18.0"
|
162
162
|
},
|
163
163
|
"devDependencies": {
|
164
164
|
"@scure/bip39": "^1.3.0",
|
@@ -82,14 +82,14 @@ export class BrowserPasskeyAuth {
|
|
82
82
|
username,
|
83
83
|
});
|
84
84
|
|
85
|
-
const currentAccount = await Account.getMe().ensureLoaded({
|
85
|
+
const currentAccount = await Account.getMe().$jazz.ensureLoaded({
|
86
86
|
resolve: {
|
87
87
|
profile: true,
|
88
88
|
},
|
89
89
|
});
|
90
90
|
|
91
91
|
if (username.trim().length !== 0) {
|
92
|
-
currentAccount.profile.name
|
92
|
+
currentAccount.profile.$jazz.set("name", username);
|
93
93
|
}
|
94
94
|
|
95
95
|
await this.authSecretStorage.set({
|
@@ -272,7 +272,7 @@ export function createInviteLink<C extends CoValue>(
|
|
272
272
|
valueHint,
|
273
273
|
}: { baseURL?: string; valueHint?: string } = {},
|
274
274
|
): string {
|
275
|
-
const coValueCore = value.
|
275
|
+
const coValueCore = value.$jazz.raw.core;
|
276
276
|
let currentCoValue = coValueCore;
|
277
277
|
|
278
278
|
while (currentCoValue.verified.header.ruleset.type === "ownedByGroup") {
|
@@ -289,7 +289,7 @@ export function createInviteLink<C extends CoValue>(
|
|
289
289
|
const inviteSecret = group.createInvite(role);
|
290
290
|
|
291
291
|
return `${baseURL}#/invite/${valueHint ? valueHint + "/" : ""}${
|
292
|
-
value.id
|
292
|
+
value.$jazz.id
|
293
293
|
}/${inviteSecret}`;
|
294
294
|
}
|
295
295
|
|
@@ -198,7 +198,7 @@ describe("BrowserPasskeyAuth", () => {
|
|
198
198
|
|
199
199
|
await auth.signUp("");
|
200
200
|
|
201
|
-
const currentAccount = await Account.getMe().ensureLoaded({
|
201
|
+
const currentAccount = await Account.getMe().$jazz.ensureLoaded({
|
202
202
|
resolve: {
|
203
203
|
profile: true,
|
204
204
|
},
|
@@ -230,7 +230,7 @@ describe("BrowserPasskeyAuth", () => {
|
|
230
230
|
|
231
231
|
await auth.signUp("testuser");
|
232
232
|
|
233
|
-
const currentAccount = await Account.getMe().ensureLoaded({
|
233
|
+
const currentAccount = await Account.getMe().$jazz.ensureLoaded({
|
234
234
|
resolve: {
|
235
235
|
profile: true,
|
236
236
|
},
|
@@ -53,8 +53,8 @@ export class JazzInspectorElement extends HTMLElement {
|
|
53
53
|
|
54
54
|
this.root?.render(
|
55
55
|
<JazzInspectorInternal
|
56
|
-
localNode={this.account.
|
57
|
-
accountId={this.account.
|
56
|
+
localNode={this.account.$jazz.localNode}
|
57
|
+
accountId={this.account.$jazz.raw.id}
|
58
58
|
/>,
|
59
59
|
);
|
60
60
|
}
|
@@ -10,7 +10,7 @@ describe("createImage", async () => {
|
|
10
10
|
const getPlaceholderBase64 = vi.fn();
|
11
11
|
const createFileStreamFromSource = vi
|
12
12
|
.fn()
|
13
|
-
.mockResolvedValue(FileStream.create({ owner: account
|
13
|
+
.mockResolvedValue(FileStream.create({ owner: account }));
|
14
14
|
const resize = vi.fn();
|
15
15
|
|
16
16
|
const createImage = createImageFactory({
|
@@ -33,7 +33,7 @@ describe("createImage", async () => {
|
|
33
33
|
getImageSize.mockResolvedValue({ width: 1, height: 1 });
|
34
34
|
|
35
35
|
const image = await createImage(imageBlob, {
|
36
|
-
owner: account
|
36
|
+
owner: account,
|
37
37
|
placeholder: false,
|
38
38
|
progressive: false,
|
39
39
|
});
|
@@ -60,7 +60,7 @@ describe("createImage", async () => {
|
|
60
60
|
);
|
61
61
|
|
62
62
|
const image = await createImage(imageBlob, {
|
63
|
-
owner: account
|
63
|
+
owner: account,
|
64
64
|
placeholder: "blur",
|
65
65
|
progressive: false,
|
66
66
|
});
|
@@ -83,7 +83,7 @@ describe("createImage", async () => {
|
|
83
83
|
resize.mockResolvedValue(new Blob([White1920], { type: "image/png" }));
|
84
84
|
|
85
85
|
const image = await createImage(imageBlob, {
|
86
|
-
owner: account
|
86
|
+
owner: account,
|
87
87
|
placeholder: false,
|
88
88
|
progressive: false,
|
89
89
|
maxSize: 256,
|
@@ -109,7 +109,7 @@ describe("createImage", async () => {
|
|
109
109
|
getImageSize.mockResolvedValue({ width: 1, height: 1 });
|
110
110
|
|
111
111
|
const image = await createImage(imageBlob, {
|
112
|
-
owner: account
|
112
|
+
owner: account,
|
113
113
|
placeholder: false,
|
114
114
|
progressive: false,
|
115
115
|
maxSize: 256,
|
@@ -136,7 +136,7 @@ describe("createImage", async () => {
|
|
136
136
|
resize.mockResolvedValue(new Blob([White1920], { type: "image/png" }));
|
137
137
|
|
138
138
|
const image = await createImage(imageBlob, {
|
139
|
-
owner: account
|
139
|
+
owner: account,
|
140
140
|
progressive: true,
|
141
141
|
placeholder: false,
|
142
142
|
});
|
@@ -164,7 +164,7 @@ describe("createImage", async () => {
|
|
164
164
|
resize.mockResolvedValue(new Blob([White1920], { type: "image/png" }));
|
165
165
|
|
166
166
|
const image = await createImage(imageBlob, {
|
167
|
-
owner: account
|
167
|
+
owner: account,
|
168
168
|
maxSize: 256,
|
169
169
|
placeholder: false,
|
170
170
|
progressive: true,
|
@@ -137,7 +137,7 @@ async function createImage(
|
|
137
137
|
* On the client side, the image will be loaded progressively, starting from the smallest size and increasing the size until the original size is reached.
|
138
138
|
*/
|
139
139
|
if (options?.progressive) {
|
140
|
-
imageCoValue.progressive
|
140
|
+
imageCoValue.$jazz.set("progressive", true);
|
141
141
|
|
142
142
|
const resizes = ([256, 1024, 2048] as const).filter(
|
143
143
|
(s) =>
|
@@ -153,8 +153,10 @@ async function createImage(
|
|
153
153
|
);
|
154
154
|
|
155
155
|
const blob = await impl.resize(imageBlobOrFile, width, height);
|
156
|
-
imageCoValue
|
157
|
-
|
156
|
+
imageCoValue.$jazz.set(
|
157
|
+
`${width}x${height}`,
|
158
|
+
await impl.createFileStreamFromSource(blob, options?.owner),
|
159
|
+
);
|
158
160
|
}
|
159
161
|
}
|
160
162
|
|
package/src/media/index.ts
CHANGED
@@ -27,7 +27,7 @@ export { createImageFactory };
|
|
27
27
|
* // Creates ImageDefinition with a blurry placeholder, limited to 1024px
|
28
28
|
* // on the longest side, and multiple resolutions automatically
|
29
29
|
* const image = await createImage(file, {
|
30
|
-
* owner: me.
|
30
|
+
* owner: me.$jazz.owner,
|
31
31
|
* maxSize: 1024,
|
32
32
|
* placeholder: "blur",
|
33
33
|
* progressive: true,
|
package/src/media/utils.test.ts
CHANGED
@@ -28,104 +28,104 @@ describe("highestResAvailable", async () => {
|
|
28
28
|
});
|
29
29
|
|
30
30
|
it("returns original if progressive is false", async () => {
|
31
|
-
const original = await createFileStream(account.
|
31
|
+
const original = await createFileStream(account.$jazz.owner);
|
32
32
|
const imageDef = ImageDefinition.create(
|
33
33
|
{
|
34
34
|
originalSize: [1920, 1080],
|
35
35
|
progressive: false,
|
36
36
|
original,
|
37
37
|
},
|
38
|
-
{ owner: account.
|
38
|
+
{ owner: account.$jazz.owner },
|
39
39
|
);
|
40
40
|
|
41
|
-
imageDef
|
41
|
+
imageDef.$jazz.set("1920x1080", original);
|
42
42
|
|
43
43
|
const result = highestResAvailable(imageDef, 256, 256);
|
44
|
-
expect(result?.image.id).toBe(original.id);
|
44
|
+
expect(result?.image.$jazz.id).toBe(original.$jazz.id);
|
45
45
|
});
|
46
46
|
|
47
47
|
it("returns original if progressive is true but no resizes present", async () => {
|
48
|
-
const original = await createFileStream(account.
|
48
|
+
const original = await createFileStream(account.$jazz.owner, 1);
|
49
49
|
const imageDef = ImageDefinition.create(
|
50
50
|
{
|
51
51
|
originalSize: [1920, 1080],
|
52
52
|
progressive: true,
|
53
53
|
original,
|
54
54
|
},
|
55
|
-
{ owner: account.
|
55
|
+
{ owner: account.$jazz.owner },
|
56
56
|
);
|
57
57
|
|
58
|
-
imageDef
|
58
|
+
imageDef.$jazz.set("1920x1080", original);
|
59
59
|
|
60
60
|
const result = highestResAvailable(imageDef, 256, 256);
|
61
|
-
expect(result?.image.id).toBe(original.id);
|
61
|
+
expect(result?.image.$jazz.id).toBe(original.$jazz.id);
|
62
62
|
});
|
63
63
|
|
64
64
|
it("returns closest available resize if progressive is true", async () => {
|
65
|
-
const original = await createFileStream(account.
|
66
|
-
const resize256 = await createFileStream(account.
|
65
|
+
const original = await createFileStream(account.$jazz.owner);
|
66
|
+
const resize256 = await createFileStream(account.$jazz.owner, 1);
|
67
67
|
const imageDef = ImageDefinition.create(
|
68
68
|
{
|
69
69
|
originalSize: [1920, 1080],
|
70
70
|
progressive: true,
|
71
71
|
original,
|
72
72
|
},
|
73
|
-
{ owner: account.
|
73
|
+
{ owner: account.$jazz.owner },
|
74
74
|
);
|
75
75
|
|
76
|
-
imageDef
|
77
|
-
imageDef
|
76
|
+
imageDef.$jazz.set("1920x1080", original);
|
77
|
+
imageDef.$jazz.set("256x256", resize256);
|
78
78
|
|
79
79
|
const result = highestResAvailable(imageDef, 256, 256);
|
80
|
-
expect(result?.image.id).toBe(resize256.id);
|
80
|
+
expect(result?.image.$jazz.id).toBe(resize256.$jazz.id);
|
81
81
|
});
|
82
82
|
|
83
83
|
it("returns original if wanted size matches original size", async () => {
|
84
|
-
const original = await createFileStream(account.
|
84
|
+
const original = await createFileStream(account.$jazz.owner);
|
85
85
|
const imageDef = ImageDefinition.create(
|
86
86
|
{
|
87
87
|
originalSize: [1024, 1024],
|
88
88
|
progressive: true,
|
89
89
|
original,
|
90
90
|
},
|
91
|
-
{ owner: account.
|
91
|
+
{ owner: account.$jazz.owner },
|
92
92
|
);
|
93
93
|
|
94
|
-
imageDef
|
94
|
+
imageDef.$jazz.set("1024x1024", original);
|
95
95
|
|
96
96
|
const result = highestResAvailable(imageDef, 1024, 1024);
|
97
|
-
expect(result?.image.id).toBe(original.id);
|
97
|
+
expect(result?.image.$jazz.id).toBe(original.$jazz.id);
|
98
98
|
});
|
99
99
|
|
100
100
|
it("returns best fit among multiple resizes", async () => {
|
101
|
-
const original = await createFileStream(account.
|
102
|
-
const resize256 = await createFileStream(account.
|
103
|
-
const resize1024 = await createFileStream(account.
|
104
|
-
const resize2048 = await createFileStream(account.
|
101
|
+
const original = await createFileStream(account.$jazz.owner);
|
102
|
+
const resize256 = await createFileStream(account.$jazz.owner, 1);
|
103
|
+
const resize1024 = await createFileStream(account.$jazz.owner, 1);
|
104
|
+
const resize2048 = await createFileStream(account.$jazz.owner, 1);
|
105
105
|
const imageDef = ImageDefinition.create(
|
106
106
|
{
|
107
107
|
originalSize: [2048, 2048],
|
108
108
|
progressive: true,
|
109
109
|
original,
|
110
110
|
},
|
111
|
-
{ owner: account.
|
111
|
+
{ owner: account.$jazz.owner },
|
112
112
|
);
|
113
113
|
|
114
|
-
imageDef
|
115
|
-
imageDef
|
116
|
-
imageDef
|
114
|
+
imageDef.$jazz.set("256x256", resize256);
|
115
|
+
imageDef.$jazz.set("1024x1024", resize1024);
|
116
|
+
imageDef.$jazz.set("2048x2048", resize2048);
|
117
117
|
|
118
118
|
// Closest to 900x900 is 1024
|
119
119
|
const result = highestResAvailable(imageDef, 900, 900);
|
120
|
-
expect(result?.image.id).toBe(resize1024.id);
|
120
|
+
expect(result?.image.$jazz.id).toBe(resize1024.$jazz.id);
|
121
121
|
});
|
122
122
|
|
123
123
|
it("returns the best fit resolution", async () => {
|
124
|
-
const original = await createFileStream(account.
|
125
|
-
const resize256 = await createFileStream(account.
|
126
|
-
const resize2048 = await createFileStream(account.
|
124
|
+
const original = await createFileStream(account.$jazz.owner, 1);
|
125
|
+
const resize256 = await createFileStream(account.$jazz.owner, 1);
|
126
|
+
const resize2048 = await createFileStream(account.$jazz.owner, 1);
|
127
127
|
// 1024 is not loaded yet
|
128
|
-
const resize1024 = FileStream.create({ owner: account.
|
128
|
+
const resize1024 = FileStream.create({ owner: account.$jazz.owner });
|
129
129
|
resize1024.start({ mimeType: "image/jpeg" });
|
130
130
|
// Don't end resize1024, so it has no chunks
|
131
131
|
|
@@ -135,42 +135,42 @@ describe("highestResAvailable", async () => {
|
|
135
135
|
progressive: true,
|
136
136
|
original,
|
137
137
|
},
|
138
|
-
{ owner: account.
|
138
|
+
{ owner: account.$jazz.owner },
|
139
139
|
);
|
140
|
-
imageDef
|
141
|
-
imageDef
|
142
|
-
imageDef
|
140
|
+
imageDef.$jazz.set("256x256", resize256);
|
141
|
+
imageDef.$jazz.set("1024x1024", resize1024);
|
142
|
+
imageDef.$jazz.set("2048x2048", resize2048);
|
143
143
|
|
144
144
|
// Closest to 900x900 is 1024
|
145
145
|
const result = highestResAvailable(imageDef, 900, 900);
|
146
|
-
expect(result?.image.id).toBe(resize2048.id);
|
146
|
+
expect(result?.image.$jazz.id).toBe(resize2048.$jazz.id);
|
147
147
|
});
|
148
148
|
|
149
149
|
it("returns original if no resizes are loaded (missing chunks)", async () => {
|
150
|
-
const original = await createFileStream(account.
|
150
|
+
const original = await createFileStream(account.$jazz.owner);
|
151
151
|
const imageDef = ImageDefinition.create(
|
152
152
|
{
|
153
153
|
originalSize: [256, 256],
|
154
154
|
progressive: true,
|
155
155
|
original,
|
156
156
|
},
|
157
|
-
{ owner: account.
|
157
|
+
{ owner: account.$jazz.owner },
|
158
158
|
);
|
159
159
|
|
160
|
-
imageDef
|
160
|
+
imageDef.$jazz.set("256x256", original);
|
161
161
|
// 1024 is not loaded yet
|
162
|
-
const resize1024 = FileStream.create({ owner: account.
|
162
|
+
const resize1024 = FileStream.create({ owner: account.$jazz.owner });
|
163
163
|
resize1024.start({ mimeType: "image/jpeg" });
|
164
164
|
// Don't end resize1024, so it has no chunks
|
165
|
-
imageDef
|
165
|
+
imageDef.$jazz.set("1024x1024", resize1024);
|
166
166
|
|
167
167
|
const result = highestResAvailable(imageDef, 1024, 1024);
|
168
168
|
// Only original is valid
|
169
|
-
expect(result?.image.id).toBe(original.id);
|
169
|
+
expect(result?.image.$jazz.id).toBe(original.$jazz.id);
|
170
170
|
});
|
171
171
|
|
172
172
|
it("returns the first loaded resize if original is not loaded yet(missing chunks)", async () => {
|
173
|
-
const original = FileStream.create({ owner: account.
|
173
|
+
const original = FileStream.create({ owner: account.$jazz.owner });
|
174
174
|
original.start({ mimeType: "image/jpeg" });
|
175
175
|
// Don't call .end(), so it has no chunks
|
176
176
|
|
@@ -180,18 +180,21 @@ describe("highestResAvailable", async () => {
|
|
180
180
|
progressive: true,
|
181
181
|
original,
|
182
182
|
},
|
183
|
-
{ owner: account.
|
183
|
+
{ owner: account.$jazz.owner },
|
184
184
|
);
|
185
185
|
|
186
|
-
imageDef
|
186
|
+
imageDef.$jazz.set(
|
187
|
+
"256x256",
|
188
|
+
await createFileStream(account.$jazz.owner, 1),
|
189
|
+
);
|
187
190
|
|
188
191
|
const result = highestResAvailable(imageDef, 1024, 1024);
|
189
192
|
// Only original is valid
|
190
|
-
expect(result?.image.id).toBe(imageDef["256x256"].id);
|
193
|
+
expect(result?.image.$jazz.id).toBe(imageDef["256x256"]!.$jazz.id);
|
191
194
|
});
|
192
195
|
|
193
196
|
it("returns the highest resolution if no good match is found", async () => {
|
194
|
-
const original = await createFileStream(account.
|
197
|
+
const original = await createFileStream(account.$jazz.owner, 1);
|
195
198
|
|
196
199
|
const imageDef = ImageDefinition.create(
|
197
200
|
{
|
@@ -199,14 +202,17 @@ describe("highestResAvailable", async () => {
|
|
199
202
|
progressive: true,
|
200
203
|
original,
|
201
204
|
},
|
202
|
-
{ owner: account.
|
205
|
+
{ owner: account.$jazz.owner },
|
203
206
|
);
|
204
207
|
|
205
|
-
imageDef
|
206
|
-
|
208
|
+
imageDef.$jazz.set(
|
209
|
+
"256x256",
|
210
|
+
await createFileStream(account.$jazz.owner, 1),
|
211
|
+
);
|
212
|
+
imageDef.$jazz.set("300x300", original);
|
207
213
|
|
208
214
|
const result = highestResAvailable(imageDef, 1024, 1024);
|
209
|
-
expect(result?.image.id).toBe(original.id);
|
215
|
+
expect(result?.image.$jazz.id).toBe(original.$jazz.id);
|
210
216
|
});
|
211
217
|
});
|
212
218
|
|
@@ -237,12 +243,12 @@ describe("loadImageBySize", async () => {
|
|
237
243
|
},
|
238
244
|
{ owner },
|
239
245
|
);
|
240
|
-
imageDef
|
246
|
+
imageDef.$jazz.set(`${originalSize[0]}x${originalSize[1]}`, original);
|
241
247
|
|
242
248
|
for (const size of sizes) {
|
243
249
|
if (!size) continue;
|
244
250
|
const [w, h] = size;
|
245
|
-
imageDef
|
251
|
+
imageDef.$jazz.set(`${w}x${h}`, await createFileStream(owner, 1));
|
246
252
|
}
|
247
253
|
return imageDef;
|
248
254
|
};
|
@@ -250,7 +256,7 @@ describe("loadImageBySize", async () => {
|
|
250
256
|
it("returns original if progressive is false", async () => {
|
251
257
|
const imageDef = await createImageDef([[1920, 1080]], false);
|
252
258
|
const result = await loadImageBySize(imageDef, 256, 256);
|
253
|
-
expect(result?.image.id).toBe(imageDef["1920x1080"]
|
259
|
+
expect(result?.image.$jazz.id).toBe(imageDef["1920x1080"]!.$jazz.id);
|
254
260
|
});
|
255
261
|
|
256
262
|
it("returns the original image already loaded", async () => {
|
@@ -266,20 +272,20 @@ describe("loadImageBySize", async () => {
|
|
266
272
|
setActiveAccount(account2);
|
267
273
|
|
268
274
|
const result = await loadImageBySize(imageDef, 256, 256);
|
269
|
-
expect(result?.image.id).toBe(imageDef["1920x1080"]
|
275
|
+
expect(result?.image.$jazz.id).toBe(imageDef["1920x1080"]!.$jazz.id);
|
270
276
|
expect(result?.image.isBinaryStreamEnded()).toBe(true);
|
271
277
|
expect(result?.image.asBase64()).toStrictEqual(expect.any(String));
|
272
278
|
});
|
273
279
|
|
274
280
|
it("returns null if no sizes are available", async () => {
|
275
|
-
const original = await createFileStream(account.
|
281
|
+
const original = await createFileStream(account.$jazz.owner, 1);
|
276
282
|
const imageDef = ImageDefinition.create(
|
277
283
|
{
|
278
284
|
originalSize: [1920, 1080],
|
279
285
|
progressive: true,
|
280
286
|
original,
|
281
287
|
},
|
282
|
-
{ owner: account.
|
288
|
+
{ owner: account.$jazz.owner },
|
283
289
|
);
|
284
290
|
const result = await loadImageBySize(imageDef, 256, 256);
|
285
291
|
expect(result).toBeNull();
|
@@ -290,8 +296,8 @@ describe("loadImageBySize", async () => {
|
|
290
296
|
[256, 256],
|
291
297
|
[1920, 1080],
|
292
298
|
]);
|
293
|
-
const result = await loadImageBySize(imageDef.id, 256, 256);
|
294
|
-
expect(result?.image.id).toBe(imageDef["256x256"]
|
299
|
+
const result = await loadImageBySize(imageDef.$jazz.id, 256, 256);
|
300
|
+
expect(result?.image.$jazz.id).toBe(imageDef["256x256"]!.$jazz.id);
|
295
301
|
expect(result?.width).toBe(256);
|
296
302
|
expect(result?.height).toBe(256);
|
297
303
|
});
|
@@ -303,7 +309,7 @@ describe("loadImageBySize", async () => {
|
|
303
309
|
[2048, 2048],
|
304
310
|
]);
|
305
311
|
const result = await loadImageBySize(imageDef, 900, 900);
|
306
|
-
expect(result?.image.id).toBe(imageDef["1024x1024"]
|
312
|
+
expect(result?.image.$jazz.id).toBe(imageDef["1024x1024"]!.$jazz.id);
|
307
313
|
expect(result?.width).toBe(1024);
|
308
314
|
expect(result?.height).toBe(1024);
|
309
315
|
});
|
@@ -314,20 +320,20 @@ describe("loadImageBySize", async () => {
|
|
314
320
|
[300, 300],
|
315
321
|
]);
|
316
322
|
const result = await loadImageBySize(imageDef, 1024, 1024);
|
317
|
-
expect(result?.image.id).toBe(imageDef["300x300"]
|
323
|
+
expect(result?.image.$jazz.id).toBe(imageDef["300x300"]!.$jazz.id);
|
318
324
|
expect(result?.width).toBe(300);
|
319
325
|
expect(result?.height).toBe(300);
|
320
326
|
});
|
321
327
|
|
322
328
|
it("returns null if the best target is not loaded", async () => {
|
323
|
-
const original = await createFileStream(account.
|
329
|
+
const original = await createFileStream(account.$jazz.owner, 1);
|
324
330
|
const imageDef = ImageDefinition.create(
|
325
331
|
{
|
326
332
|
originalSize: [256, 256],
|
327
333
|
progressive: true,
|
328
334
|
original,
|
329
335
|
},
|
330
|
-
{ owner: account.
|
336
|
+
{ owner: account.$jazz.owner },
|
331
337
|
);
|
332
338
|
// No resizes added
|
333
339
|
const result = await loadImageBySize(imageDef, 1024, 1024);
|
@@ -340,7 +346,7 @@ describe("loadImageBySize", async () => {
|
|
340
346
|
[1024, 1024],
|
341
347
|
]);
|
342
348
|
const result = await loadImageBySize(imageDef, 1024, 1024);
|
343
|
-
expect(result?.image.id).toBe(imageDef["1024x1024"]
|
349
|
+
expect(result?.image.$jazz.id).toBe(imageDef["1024x1024"]!.$jazz.id);
|
344
350
|
expect(result?.width).toBe(1024);
|
345
351
|
expect(result?.height).toBe(1024);
|
346
352
|
});
|
@@ -365,9 +371,9 @@ describe("loadImageBySize", async () => {
|
|
365
371
|
const account2 = await createJazzTestAccount();
|
366
372
|
setActiveAccount(account2);
|
367
373
|
|
368
|
-
const result = await loadImageBySize(imageDef.id, 1024, 1024);
|
374
|
+
const result = await loadImageBySize(imageDef.$jazz.id, 1024, 1024);
|
369
375
|
expect(result).not.toBeNull();
|
370
|
-
expect(result?.image.id).toBe(imageDef["1024x1024"]
|
376
|
+
expect(result?.image.$jazz.id).toBe(imageDef["1024x1024"]!.$jazz.id);
|
371
377
|
expect(result?.image.isBinaryStreamEnded()).toBe(true);
|
372
378
|
expect(result?.image.asBase64()).toStrictEqual(expect.any(String));
|
373
379
|
});
|