jazz-tools 0.11.5 → 0.11.7
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 +5 -5
- package/CHANGELOG.md +18 -0
- package/dist/{chunk-IOK4K3XC.js → chunk-HH3Z4JSB.js} +65 -43
- package/dist/chunk-HH3Z4JSB.js.map +1 -0
- package/dist/coValues/extensions/imageDef.d.ts +1 -0
- package/dist/coValues/extensions/imageDef.d.ts.map +1 -1
- package/dist/coValues/interfaces.d.ts.map +1 -1
- package/dist/exports.d.ts +1 -1
- package/dist/exports.d.ts.map +1 -1
- package/dist/implementation/subscriptionScope.d.ts +2 -1
- package/dist/implementation/subscriptionScope.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/testing.js +1 -1
- package/dist/tests/imageDef.test.d.ts +2 -0
- package/dist/tests/imageDef.test.d.ts.map +1 -0
- package/package.json +2 -2
- package/src/coValues/extensions/imageDef.ts +22 -15
- package/src/coValues/group.ts +1 -1
- package/src/coValues/interfaces.ts +12 -1
- package/src/exports.ts +1 -0
- package/src/implementation/subscriptionScope.ts +59 -32
- package/src/tests/coFeed.test.ts +32 -0
- package/src/tests/imageDef.test.ts +269 -0
- package/src/tests/subscribe.test.ts +52 -2
- package/dist/chunk-IOK4K3XC.js.map +0 -1
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"imageDef.d.ts","sourceRoot":"","sources":["../../../src/coValues/extensions/imageDef.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAuB,MAAM,mBAAmB,CAAC;AAC5D,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAEpC,sBAAsB;AACtB,qBAAa,eAAgB,SAAQ,KAAK;IACxC,YAAY,uBAA+B;IAC3C,kBAAkB,CAAC,yBAAa;IAEhC,CAAC,EAAE,CAAC,KAAK,CAAC,wBAAsB;IAChC,CAAC,GAAG,EAAE,GAAG,MAAM,IAAI,MAAM,EAAE,GAAG,EAAE,CAAC,UAAU,GAAG,IAAI,CAAC,CAAC;IAEpD,mBAAmB,CAAC,OAAO,CAAC,EAAE;QAC5B,QAAQ,CAAC,EAAE,MAAM,CAAC;
|
1
|
+
{"version":3,"file":"imageDef.d.ts","sourceRoot":"","sources":["../../../src/coValues/extensions/imageDef.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAuB,MAAM,mBAAmB,CAAC;AAC5D,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAEpC,sBAAsB;AACtB,qBAAa,eAAgB,SAAQ,KAAK;IACxC,YAAY,uBAA+B;IAC3C,kBAAkB,CAAC,yBAAa;IAEhC,CAAC,EAAE,CAAC,KAAK,CAAC,wBAAsB;IAChC,CAAC,GAAG,EAAE,GAAG,MAAM,IAAI,MAAM,EAAE,GAAG,EAAE,CAAC,UAAU,GAAG,IAAI,CAAC,CAAC;IAEpD,mBAAmB,CAAC,OAAO,CAAC,EAAE;QAC5B,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,WAAW,CAAC,EAAE,MAAM,CAAC;KACtB,GAAG;QAAE,GAAG,EAAE,GAAG,MAAM,IAAI,MAAM,EAAE,CAAC;QAAC,MAAM,EAAE,UAAU,CAAA;KAAE,GAAG,SAAS;CA+CnE"}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"interfaces.d.ts","sourceRoot":"","sources":["../../src/coValues/interfaces.ts"],"names":[],"mappings":"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
|
1
|
+
{"version":3,"file":"interfaces.d.ts","sourceRoot":"","sources":["../../src/coValues/interfaces.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,iBAAiB,EACjB,mBAAmB,EACnB,UAAU,EACX,MAAM,QAAQ,CAAC;AAGhB,OAAO,EAAE,kBAAkB,EAAE,MAAM,yCAAyC,CAAC;AAC7E,OAAO,KAAK,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC7D,OAAO,EAGL,OAAO,EAER,MAAM,gBAAgB,CAAC;AAExB,OAAO,EAAE,KAAK,OAAO,EAAE,MAAM,cAAc,CAAC;AAE5C,OAAO,EAAE,KAAK,KAAK,EAAE,MAAM,YAAY,CAAC;AAGxC,oCAAoC;AAEpC,MAAM,WAAW,YAAY,CAAC,KAAK,SAAS,OAAO,GAAG,OAAO;IAC3D,cAAc;IAEd,KAAK,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,KAAK,CAAC;CAC7B;AAED,MAAM,WAAW,cAAc,CAAC,CAAC,SAAS,OAAO;IAC/C,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;CAC5B;AAED,oCAAoC;AAEpC,MAAM,WAAW,OAAO;IACtB,wBAAwB;IACxB,QAAQ,CAAC,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC;IACtB,6BAA6B;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,8BAA8B;IAC9B,MAAM,EAAE,OAAO,GAAG,KAAK,CAAC;IACxB,0BAA0B;IAC1B,IAAI,EAAE,UAAU,CAAC;IACjB,gBAAgB;IAChB,QAAQ,CAAC,SAAS,EAAE,OAAO,GAAG,kBAAkB,CAAC;IACjD,0CAA0C;IAE1C,MAAM,CAAC,GAAG,CAAC,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,EAAE,GAAG,GAAG,EAAE,GAAG,MAAM,GAAG,MAAM,CAAC;IACzE,0CAA0C;IAE1C,CAAC,OAAO,CAAC,IAAI,GAAG,CAAC;CAClB;AAGD,wBAAgB,SAAS,CAAC,KAAK,EAAE,GAAG,GAAG,KAAK,IAAI,OAAO,CAEtD;AAED,wBAAgB,cAAc,CAAC,CAAC,SAAS,OAAO,EAE9C,KAAK,EAAE,GAAG,GACT,KAAK,IAAI,YAAY,CAAC,CAAC,CAAC,GAAG,cAAc,CAAC,CAAC,CAAC,CAE9C;AAED;;;;;;;;;;;GAWG;AACH,MAAM,MAAM,EAAE,CAAC,CAAC,IAAI,mBAAmB,CAAC,OAAO,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;AAE9D,KAAK,QAAQ,CAAC,GAAG,CAAC,CAAC,IAAI;IAAE,MAAM,CAAC,CAAC,EAAE,KAAK,GAAG,CAAC,CAAA;CAAE,CAAC;AAE/C,gBAAgB;AAChB,qBAAa,WAAY,YAAW,OAAO;IACjC,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,UAAU,CAAC;IACzB,0BAA0B;IAClB,WAAW,EAAE,MAAM,CAAC;IAE5B,IAAI,MAAM,IAAI,OAAO,GAAG,KAAK,CAa5B;IAED,eAAe;IACf,IAAI,SAAS,iCAUZ;gBAGW,GAAG,KAAK,EAAE,GAAG;IAOzB,0BAA0B;IAC1B,MAAM,CAAC,OAAO,CAAC,CAAC,SAAS,OAAO,EAAE,IAAI,EAAE,YAAY,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,UAAU,GAAG,CAAC;IAK5E,MAAM,IAAI,MAAM,GAAG,GAAG,EAAE,GAAG,MAAM;IAQjC,CAAC,OAAO,CAAC;IAIT,6BAA6B;IAC7B,MAAM,CAAC,EAAE,SAAS,YAAY,GAAG,cAAc,CAAC,OAAO,CAAC,EACtD,EAAE,EAAE,EAAE,GACL,YAAY,CAAC,EAAE,CAAC;CAQpB;AAED,wBAAgB,oBAAoB,CAAC,CAAC,SAAS,OAAO,EAAE,KAAK,EAC3D,GAAG,EAAE,YAAY,CAAC,CAAC,CAAC,EACpB,EAAE,EAAE,EAAE,CAAC,OAAO,CAAC,EACf,SAAS,EAAE,OAAO,GAAG,kBAAkB,GAAG,CAAC,KAAK,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,EAC/D,KAAK,CAAC,EAAE,KAAK,GAAG,QAAQ,CAAC,CAAC,CAAC,GAC1B,OAAO,CAAC,YAAY,CAAC,CAAC,EAAE,KAAK,CAAC,GAAG,SAAS,CAAC,CAW7C;AAED,wBAAgB,WAAW,CAAC,CAAC,SAAS,OAAO,EAAE,KAAK,EAClD,GAAG,EAAE,YAAY,CAAC,CAAC,CAAC,EACpB,EAAE,EAAE,EAAE,CAAC,OAAO,CAAC,EACf,EAAE,EAAE,OAAO,GAAG,kBAAkB,EAChC,KAAK,EAAE,KAAK,GAAG,QAAQ,CAAC,CAAC,CAAC,GACzB,OAAO,CAAC,YAAY,CAAC,CAAC,EAAE,KAAK,CAAC,GAAG,SAAS,CAAC,CAgB7C;AAED,wBAAsB,mBAAmB,CAAC,CAAC,SAAS,OAAO,EAAE,KAAK,EAChE,QAAQ,EAAE,CAAC,EACX,KAAK,EAAE,KAAK,GAAG,QAAQ,CAAC,CAAC,CAAC,GACzB,OAAO,CAAC,YAAY,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAajC;AAED,wBAAgB,2BAA2B,CAAC,CAAC,SAAS,OAAO,EAAE,KAAK,EAClE,GAAG,EAAE,YAAY,CAAC,CAAC,CAAC,EACpB,EAAE,EAAE,EAAE,CAAC,OAAO,CAAC,EACf,SAAS,EAAE,OAAO,GAAG,kBAAkB,GAAG,CAAC,KAAK,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,EAC/D,eAAe,EACX,CAAC,KAAK,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,GACrB,CAAC,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC,EAAE,KAAK,CAAC,KAAK,IAAI,CAAC,EAC7C,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC,EAAE,KAAK,CAAC,KAAK,IAAI,SAoC3C,IAAI,CAVZ;AAED,wBAAgB,kBAAkB,CAAC,CAAC,SAAS,OAAO,EAAE,KAAK,EACzD,GAAG,EAAE,YAAY,CAAC,CAAC,CAAC,EACpB,EAAE,EAAE,EAAE,CAAC,OAAO,CAAC,EACf,EAAE,EAAE,OAAO,GAAG,kBAAkB,EAChC,KAAK,EAAE,KAAK,GAAG,QAAQ,CAAC,CAAC,CAAC,EAC1B,QAAQ,EAAE,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,WAAW,EAAE,MAAM,IAAI,KAAK,IAAI,EAC1E,aAAa,CAAC,EAAE,MAAM,IAAI,EAC1B,cAAc,CAAC,EAAE,OAAO,GACvB,MAAM,IAAI,CAyDZ;AAED,wBAAgB,uBAAuB,CAAC,CAAC,SAAS,OAAO,EAAE,KAAK,EAAE,OAAO,CAAC,EAAE;IAC1E,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B;;qBAKQ,YAAY,CAAC,CAAC,CAAC,MAChB,EAAE,CAAC,OAAO,CAAC,MACX,OAAO,GAAG,kBAAkB,SACzB,KAAK,GAAG,QAAQ,CAAC,CAAC,CAAC,YAChB,MAAM,IAAI,kBACJ,MAAM,IAAI;EAmC7B;AAED,wBAAgB,0BAA0B,CAAC,CAAC,SAAS,OAAO,EAAE,KAAK,EACjE,QAAQ,EAAE,CAAC,EACX,KAAK,EAAE,KAAK,GAAG,QAAQ,CAAC,CAAC,CAAC,EAC1B,QAAQ,EAAE,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC,EAAE,KAAK,CAAC,KAAK,IAAI,GAChD,MAAM,IAAI,CAQZ;AAED,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,OAAO,GAAG,QAAQ,IAAI,OAAO,CAMxE;AAED,wBAAgB,wBAAwB,CACtC,QAAQ,EAAE,OAAO,GAChB,QAAQ,IAAI,kBAAkB,CAMhC;AAED,wBAAgB,yBAAyB,CACvC,OAAO,EACH;IACE,KAAK,CAAC,EAAE,OAAO,GAAG,KAAK,CAAC;IACxB,MAAM,CAAC,EAAE,iBAAiB,CAAC,YAAY,CAAC,CAAC;CAC1C,GACD,OAAO,GACP,KAAK,GACL,SAAS;;;;;EAsBd;AAED,wBAAgB,uBAAuB,CACrC,OAAO,EACH;IACE,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB,GACD,OAAO,GACP,SAAS;;EASd"}
|
package/dist/exports.d.ts
CHANGED
@@ -3,7 +3,7 @@ export type { CoValue, ID } from "./internal.js";
|
|
3
3
|
export { Encoders, co } from "./internal.js";
|
4
4
|
export { Inbox, InboxSender } from "./coValues/inbox.js";
|
5
5
|
export { Account, isControlledAccount, type AccountClass, type AccountCreationProps, } from "./coValues/account.js";
|
6
|
-
export { BinaryCoStream, CoFeed, CoStream, FileStream, } from "./coValues/coFeed.js";
|
6
|
+
export { BinaryCoStream, CoFeed, CoStream, type CoFeedEntry, FileStream, } from "./coValues/coFeed.js";
|
7
7
|
export { CoList } from "./coValues/coList.js";
|
8
8
|
export { CoMap, type CoMapInit } from "./coValues/coMap.js";
|
9
9
|
export { CoPlainText, type TextPos } from "./coValues/coPlainText.js";
|
package/dist/exports.d.ts.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"exports.d.ts","sourceRoot":"","sources":["../src/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,YAAY,EAAE,OAAO,EAAE,EAAE,EAAE,MAAM,eAAe,CAAC;AAEjD,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,eAAe,CAAC;AAE7C,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAEzD,OAAO,EACL,OAAO,EACP,mBAAmB,EACnB,KAAK,YAAY,EACjB,KAAK,oBAAoB,GAC1B,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,cAAc,EACd,MAAM,EACN,QAAQ,EACR,UAAU,GACX,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAC9C,OAAO,EAAE,KAAK,EAAE,KAAK,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAE,WAAW,EAAE,KAAK,OAAO,EAAE,MAAM,2BAA2B,CAAC;AACtE,OAAO,EACL,UAAU,EACV,KAAK,EACL,KAAK,QAAQ,EACb,KAAK,QAAQ,EACb,KAAK,YAAY,GAClB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,eAAe,EAAE,MAAM,mCAAmC,CAAC;AACpE,OAAO,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAC5C,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACvD,OAAO,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAChD,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAExD,YAAY,EAAE,YAAY,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAE1E,OAAO,EACL,uBAAuB,EACvB,WAAW,EACX,kBAAkB,GACnB,MAAM,eAAe,CAAC;AAEvB,OAAO,EACL,kBAAkB,EAClB,KAAK,2BAA2B,GACjC,MAAM,oCAAoC,CAAC;AAE5C,OAAO,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAChE,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,GAC5B,MAAM,eAAe,CAAC;AAEvB,mBAAmB,YAAY,CAAC"}
|
1
|
+
{"version":3,"file":"exports.d.ts","sourceRoot":"","sources":["../src/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,YAAY,EAAE,OAAO,EAAE,EAAE,EAAE,MAAM,eAAe,CAAC;AAEjD,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,eAAe,CAAC;AAE7C,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAEzD,OAAO,EACL,OAAO,EACP,mBAAmB,EACnB,KAAK,YAAY,EACjB,KAAK,oBAAoB,GAC1B,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,cAAc,EACd,MAAM,EACN,QAAQ,EACR,KAAK,WAAW,EAChB,UAAU,GACX,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAC9C,OAAO,EAAE,KAAK,EAAE,KAAK,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAE,WAAW,EAAE,KAAK,OAAO,EAAE,MAAM,2BAA2B,CAAC;AACtE,OAAO,EACL,UAAU,EACV,KAAK,EACL,KAAK,QAAQ,EACb,KAAK,QAAQ,EACb,KAAK,YAAY,GAClB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,eAAe,EAAE,MAAM,mCAAmC,CAAC;AACpE,OAAO,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAC5C,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACvD,OAAO,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAChD,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAExD,YAAY,EAAE,YAAY,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAE1E,OAAO,EACL,uBAAuB,EACvB,WAAW,EACX,kBAAkB,GACnB,MAAM,eAAe,CAAC;AAEvB,OAAO,EACL,kBAAkB,EAClB,KAAK,2BAA2B,GACjC,MAAM,oCAAoC,CAAC;AAE5C,OAAO,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAChE,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,GAC5B,MAAM,eAAe,CAAC;AAEvB,mBAAmB,YAAY,CAAC"}
|
@@ -25,9 +25,10 @@ export declare class SubscriptionScope<Root extends CoValue> {
|
|
25
25
|
parents: {
|
26
26
|
[id: ID<CoValue>]: Set<ID<CoValue>>;
|
27
27
|
};
|
28
|
+
syncResolution: boolean;
|
28
29
|
constructor(root: Root, rootSchema: CoValueClass<Root> & CoValueFromRaw<Root>, onUpdate: (newRoot: Root, scope: SubscriptionScope<Root>) => void);
|
29
30
|
onRefAccessedOrSet(fromId: ID<CoValue>, accessedOrSetId: ID<CoValue> | undefined): void;
|
30
|
-
invalidate(id: ID<CoValue>,
|
31
|
+
invalidate(id: ID<CoValue>, seen?: Set<ID<CoValue>>): void;
|
31
32
|
unsubscribeAll: () => void;
|
32
33
|
}
|
33
34
|
//# sourceMappingURL=subscriptionScope.d.ts.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"subscriptionScope.d.ts","sourceRoot":"","sources":["../../src/implementation/subscriptionScope.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,
|
1
|
+
{"version":3,"file":"subscriptionScope.d.ts","sourceRoot":"","sources":["../../src/implementation/subscriptionScope.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAA0B,UAAU,EAAE,MAAM,QAAQ,CAAC;AACjE,OAAO,EAAE,KAAK,OAAO,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,KAAK,EACV,kBAAkB,EAClB,OAAO,EACP,YAAY,EACZ,cAAc,EACd,EAAE,EACH,MAAM,gBAAgB,CAAC;AAExB,eAAO,MAAM,mBAAmB,0CAI7B,CAAC;AAEJ,qBAAa,iBAAiB,CAAC,IAAI,SAAS,OAAO;IACjD,OAAO,EAAE,MAAM,CAAkD;IACjE,UAAU,EAAE,OAAO,GAAG,kBAAkB,CAAC;IACzC,OAAO;eAEM,SAAS;2BAAqB,OAAO;;eACrC,QAAQ;kBAAY,MAAM,IAAI;OACvC;IACJ,SAAS,EAAE;QACT,KAAK,EAAE,QAAQ,CAAC;QAChB,KAAK,EAAE,UAAU,CAAC;QAClB,QAAQ,EAAE,MAAM,IAAI,CAAC;KACtB,CAAC;IACF,cAAc,EAAE,MAAM,IAAI,CAAC;IAC3B,eAAe,EAAE,OAAO,CAAS;IACjC,YAAY,EAAE;QAAE,CAAC,EAAE,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,OAAO,CAAA;KAAE,CAAM;IAClD,OAAO,EAAE;QAAE,CAAC,EAAE,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAA;KAAE,CAAM;IACtD,cAAc,EAAE,OAAO,CAAS;gBAG9B,IAAI,EAAE,IAAI,EACV,UAAU,EAAE,YAAY,CAAC,IAAI,CAAC,GAAG,cAAc,CAAC,IAAI,CAAC,EACrD,QAAQ,EAAE,CAAC,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,iBAAiB,CAAC,IAAI,CAAC,KAAK,IAAI;IA4BnE,kBAAkB,CAChB,MAAM,EAAE,EAAE,CAAC,OAAO,CAAC,EACnB,eAAe,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,SAAS;IAqD1C,UAAU,CAAC,EAAE,EAAE,EAAE,CAAC,OAAO,CAAC,EAAE,IAAI,GAAE,GAAG,CAAC,EAAE,CAAC,OAAO,CAAC,CAAa;IAU9D,cAAc,aASZ;CACH"}
|
package/dist/index.js
CHANGED
package/dist/testing.js
CHANGED
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"imageDef.test.d.ts","sourceRoot":"","sources":["../../src/tests/imageDef.test.ts"],"names":[],"mappings":""}
|
package/package.json
CHANGED
@@ -17,11 +17,11 @@
|
|
17
17
|
},
|
18
18
|
"type": "module",
|
19
19
|
"license": "MIT",
|
20
|
-
"version": "0.11.
|
20
|
+
"version": "0.11.7",
|
21
21
|
"dependencies": {
|
22
22
|
"@scure/bip39": "^1.3.0",
|
23
23
|
"fast-myers-diff": "^3.2.0",
|
24
|
-
"cojson": "0.11.
|
24
|
+
"cojson": "0.11.7"
|
25
25
|
},
|
26
26
|
"devDependencies": {
|
27
27
|
"tsup": "8.3.5",
|
@@ -12,6 +12,7 @@ export class ImageDefinition extends CoMap {
|
|
12
12
|
|
13
13
|
highestResAvailable(options?: {
|
14
14
|
maxWidth?: number;
|
15
|
+
targetWidth?: number;
|
15
16
|
}): { res: `${number}x${number}`; stream: FileStream } | undefined {
|
16
17
|
if (!subscriptionsScopes.get(this)) {
|
17
18
|
console.warn(
|
@@ -19,33 +20,39 @@ export class ImageDefinition extends CoMap {
|
|
19
20
|
);
|
20
21
|
}
|
21
22
|
|
22
|
-
const resolutions = Object.keys(this).filter(
|
23
|
-
(
|
24
|
-
key.match(/^\d+x\d+$/) &&
|
25
|
-
(options?.maxWidth === undefined ||
|
26
|
-
Number(key.split("x")[0]) <= options.maxWidth),
|
23
|
+
const resolutions = Object.keys(this).filter((key) =>
|
24
|
+
key.match(/^\d+x\d+$/),
|
27
25
|
) as `${number}x${number}`[];
|
28
26
|
|
29
|
-
|
27
|
+
let maxWidth = options?.maxWidth;
|
28
|
+
|
29
|
+
if (options?.targetWidth) {
|
30
|
+
const targetWidth = options.targetWidth;
|
31
|
+
const widths = resolutions.map((res) => Number(res.split("x")[0]));
|
32
|
+
|
33
|
+
maxWidth = Math.min(...widths.filter((w) => w >= targetWidth));
|
34
|
+
}
|
35
|
+
|
36
|
+
const validResolutions = resolutions.filter(
|
37
|
+
(key) => maxWidth === undefined || Number(key.split("x")[0]) <= maxWidth,
|
38
|
+
) as `${number}x${number}`[];
|
39
|
+
|
40
|
+
// Sort the resolutions by width, smallest to largest
|
41
|
+
validResolutions.sort((a, b) => {
|
30
42
|
const aWidth = Number(a.split("x")[0]);
|
31
43
|
const bWidth = Number(b.split("x")[0]);
|
32
|
-
return aWidth - bWidth;
|
44
|
+
return aWidth - bWidth; // Sort smallest to largest
|
33
45
|
});
|
34
46
|
|
35
47
|
let highestAvailableResolution: `${number}x${number}` | undefined;
|
36
48
|
|
37
|
-
for (const resolution of
|
49
|
+
for (const resolution of validResolutions) {
|
38
50
|
if (this[resolution] && this[resolution]?.getChunks()) {
|
39
51
|
highestAvailableResolution = resolution;
|
40
|
-
} else {
|
41
|
-
return (
|
42
|
-
highestAvailableResolution && {
|
43
|
-
res: highestAvailableResolution,
|
44
|
-
stream: this[highestAvailableResolution]!,
|
45
|
-
}
|
46
|
-
);
|
47
52
|
}
|
48
53
|
}
|
54
|
+
|
55
|
+
// Return the highest complete resolution if we found one
|
49
56
|
return (
|
50
57
|
highestAvailableResolution && {
|
51
58
|
res: highestAvailableResolution,
|
package/src/coValues/group.ts
CHANGED
@@ -212,7 +212,7 @@ export class Group extends CoValueBase implements CoValue {
|
|
212
212
|
}
|
213
213
|
|
214
214
|
getParentGroups(): Array<Group> {
|
215
|
-
return this._raw.getParentGroups().map((
|
215
|
+
return this._raw.getParentGroups().map((group) => Group.fromRaw(group));
|
216
216
|
}
|
217
217
|
|
218
218
|
extend(
|
@@ -269,11 +269,22 @@ export function subscribeToCoValue<V extends CoValue, Depth>(
|
|
269
269
|
return;
|
270
270
|
}
|
271
271
|
if (unsubscribed) return;
|
272
|
+
|
272
273
|
const subscription = new SubscriptionScope(
|
273
274
|
value,
|
274
275
|
cls as CoValueClass<V> & CoValueFromRaw<V>,
|
275
276
|
(update, subscription) => {
|
276
|
-
|
277
|
+
// fullfillsDepth may trigger a syncronous update while accessing values
|
278
|
+
// we want to discard those to avoid invalid updates
|
279
|
+
if (subscription.syncResolution) return false;
|
280
|
+
|
281
|
+
// Enabling syncResolution during fullfillsDepth access to block any
|
282
|
+
// unnecessery update triggers related to in-memory values
|
283
|
+
subscription.syncResolution = true;
|
284
|
+
const isLoaded = fulfillsDepth(depth, update);
|
285
|
+
subscription.syncResolution = false;
|
286
|
+
|
287
|
+
if (isLoaded) {
|
277
288
|
listener(
|
278
289
|
update as DeeplyLoaded<V, Depth>,
|
279
290
|
subscription.unsubscribeAll,
|
package/src/exports.ts
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
import type { RawCoValue } from "cojson";
|
1
|
+
import type { CoValueCore, LocalNode, RawCoValue } from "cojson";
|
2
2
|
import { type Account } from "../coValues/account.js";
|
3
3
|
import type {
|
4
4
|
AnonymousJazzAgent,
|
@@ -14,8 +14,6 @@ export const subscriptionsScopes = new WeakMap<
|
|
14
14
|
SubscriptionScope<any>
|
15
15
|
>();
|
16
16
|
|
17
|
-
const TRACE_INVALIDATIONS = false;
|
18
|
-
|
19
17
|
export class SubscriptionScope<Root extends CoValue> {
|
20
18
|
scopeID: string = `scope-${Math.random().toString(36).slice(2)}`;
|
21
19
|
subscriber: Account | AnonymousJazzAgent;
|
@@ -33,6 +31,7 @@ export class SubscriptionScope<Root extends CoValue> {
|
|
33
31
|
scheduledUpdate: boolean = false;
|
34
32
|
cachedValues: { [id: ID<CoValue>]: CoValue } = {};
|
35
33
|
parents: { [id: ID<CoValue>]: Set<ID<CoValue>> } = {};
|
34
|
+
syncResolution: boolean = false;
|
36
35
|
|
37
36
|
constructor(
|
38
37
|
root: Root,
|
@@ -49,6 +48,7 @@ export class SubscriptionScope<Root extends CoValue> {
|
|
49
48
|
subscriptionsScopes.set(root, this);
|
50
49
|
|
51
50
|
this.subscriber = root._loadedAs;
|
51
|
+
|
52
52
|
this.scheduleUpdate = () => {
|
53
53
|
const value = rootSchema.fromRaw(this.rootEntry.value) as Root;
|
54
54
|
subscriptionsScopes.set(value, this);
|
@@ -86,42 +86,46 @@ export class SubscriptionScope<Root extends CoValue> {
|
|
86
86
|
this.subscriber._type === "Account"
|
87
87
|
? this.subscriber._raw.core.node
|
88
88
|
: this.subscriber.node;
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
state
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
|
105
|
-
|
106
|
-
|
107
|
-
|
108
|
-
|
109
|
-
|
89
|
+
|
90
|
+
loadCoValue(
|
91
|
+
node,
|
92
|
+
accessedOrSetId,
|
93
|
+
(core) => {
|
94
|
+
if (
|
95
|
+
loadingEntry.state === "loading" &&
|
96
|
+
loadingEntry.immediatelyUnsub
|
97
|
+
) {
|
98
|
+
return;
|
99
|
+
}
|
100
|
+
if (core !== "unavailable") {
|
101
|
+
const entry = {
|
102
|
+
state: "loaded" as const,
|
103
|
+
rawUnsub: () => {}, // placeholder
|
104
|
+
};
|
105
|
+
this.entries.set(accessedOrSetId, entry);
|
106
|
+
|
107
|
+
const rawUnsub = core.subscribe((rawUpdate) => {
|
108
|
+
if (!rawUpdate) return;
|
109
|
+
|
110
|
+
this.invalidate(accessedOrSetId);
|
111
|
+
this.scheduleUpdate();
|
112
|
+
});
|
113
|
+
|
114
|
+
entry.rawUnsub = rawUnsub;
|
115
|
+
}
|
116
|
+
},
|
117
|
+
this.syncResolution,
|
118
|
+
);
|
110
119
|
}
|
111
120
|
}
|
112
121
|
|
113
|
-
invalidate(
|
114
|
-
id: ID<CoValue>,
|
115
|
-
fromChild?: ID<CoValue>,
|
116
|
-
seen: Set<ID<CoValue>> = new Set(),
|
117
|
-
) {
|
122
|
+
invalidate(id: ID<CoValue>, seen: Set<ID<CoValue>> = new Set()) {
|
118
123
|
if (seen.has(id)) return;
|
119
|
-
|
120
|
-
console.log("invalidating", fromChild, "->", id, this.cachedValues[id]);
|
124
|
+
|
121
125
|
delete this.cachedValues[id];
|
122
126
|
seen.add(id);
|
123
127
|
for (const parent of this.parents[id] || []) {
|
124
|
-
this.invalidate(parent,
|
128
|
+
this.invalidate(parent, seen);
|
125
129
|
}
|
126
130
|
}
|
127
131
|
|
@@ -136,3 +140,26 @@ export class SubscriptionScope<Root extends CoValue> {
|
|
136
140
|
this.entries.clear();
|
137
141
|
};
|
138
142
|
}
|
143
|
+
|
144
|
+
/**
|
145
|
+
* Loads a CoValue from the node and calls the callback with the result.
|
146
|
+
|
147
|
+
* If the CoValue is already loaded, the callback is called synchronously.
|
148
|
+
* If the CoValue is not loaded, the callback is called asynchronously.
|
149
|
+
*/
|
150
|
+
function loadCoValue(
|
151
|
+
node: LocalNode,
|
152
|
+
id: ID<CoValue>,
|
153
|
+
callback: (value: CoValueCore | "unavailable") => void,
|
154
|
+
syncResolution: boolean,
|
155
|
+
) {
|
156
|
+
const entry = node.coValuesStore.get(id);
|
157
|
+
|
158
|
+
if (entry.state.type === "available" && syncResolution) {
|
159
|
+
callback(entry.state.coValue);
|
160
|
+
} else {
|
161
|
+
void node.loadCoValueCore(id).then((core) => {
|
162
|
+
callback(core);
|
163
|
+
});
|
164
|
+
}
|
165
|
+
}
|
package/src/tests/coFeed.test.ts
CHANGED
@@ -470,6 +470,38 @@ describe("FileStream.loadAsBlob", async () => {
|
|
470
470
|
});
|
471
471
|
});
|
472
472
|
|
473
|
+
describe("FileStream progress tracking", async () => {
|
474
|
+
test("createFromBlob should report upload progress correctly", async () => {
|
475
|
+
// Create 5MB test blob
|
476
|
+
const testData = new Uint8Array(5 * 1024 * 1024); // 5MB instead of 500KB
|
477
|
+
for (let i = 0; i < testData.length; i++) testData[i] = i % 256;
|
478
|
+
const testBlob = new Blob([testData]);
|
479
|
+
|
480
|
+
// Collect progress updates
|
481
|
+
const progressUpdates: number[] = [];
|
482
|
+
await FileStream.createFromBlob(testBlob, {
|
483
|
+
onProgress: (progress) => progressUpdates.push(progress),
|
484
|
+
});
|
485
|
+
|
486
|
+
// Verify progress reporting
|
487
|
+
expect(progressUpdates.length).toBeGreaterThan(1);
|
488
|
+
|
489
|
+
// Check values between 0-1, increasing, with final=1
|
490
|
+
progressUpdates.forEach((p) => {
|
491
|
+
expect(p).toBeGreaterThanOrEqual(0);
|
492
|
+
expect(p).toBeLessThanOrEqual(1);
|
493
|
+
});
|
494
|
+
|
495
|
+
for (let i = 1; i < progressUpdates.length; i++) {
|
496
|
+
expect(progressUpdates[i]!).toBeGreaterThanOrEqual(
|
497
|
+
progressUpdates[i - 1]!,
|
498
|
+
);
|
499
|
+
}
|
500
|
+
|
501
|
+
expect(progressUpdates[progressUpdates.length - 1]).toBe(1);
|
502
|
+
});
|
503
|
+
});
|
504
|
+
|
473
505
|
describe("waitForSync", async () => {
|
474
506
|
test("CoFeed: should resolve when the value is uploaded", async () => {
|
475
507
|
class TestStream extends CoFeed.Of(co.string) {}
|