jazz-tools 0.7.0-alpha.3 → 0.7.0-alpha.31

Sign up to get free protection for your applications and to get access to all the features.
Files changed (51) hide show
  1. package/.turbo/turbo-build.log +78 -8
  2. package/CHANGELOG.md +181 -0
  3. package/dist/coValues/account.js +81 -41
  4. package/dist/coValues/account.js.map +1 -1
  5. package/dist/coValues/coList.js +156 -104
  6. package/dist/coValues/coList.js.map +1 -1
  7. package/dist/coValues/coMap.js +182 -163
  8. package/dist/coValues/coMap.js.map +1 -1
  9. package/dist/coValues/coStream.js +202 -71
  10. package/dist/coValues/coStream.js.map +1 -1
  11. package/dist/coValues/extensions/imageDef.js +13 -8
  12. package/dist/coValues/extensions/imageDef.js.map +1 -1
  13. package/dist/coValues/group.js +46 -38
  14. package/dist/coValues/group.js.map +1 -1
  15. package/dist/coValues/interfaces.js +23 -5
  16. package/dist/coValues/interfaces.js.map +1 -1
  17. package/dist/implementation/refs.js +26 -12
  18. package/dist/implementation/refs.js.map +1 -1
  19. package/dist/implementation/schema.js +38 -1
  20. package/dist/implementation/schema.js.map +1 -1
  21. package/dist/implementation/symbols.js +5 -0
  22. package/dist/implementation/symbols.js.map +1 -0
  23. package/dist/index.js +4 -3
  24. package/dist/index.js.map +1 -1
  25. package/dist/internal.js +1 -0
  26. package/dist/internal.js.map +1 -1
  27. package/dist/tests/coList.test.js +32 -36
  28. package/dist/tests/coList.test.js.map +1 -1
  29. package/dist/tests/coMap.test.js +170 -59
  30. package/dist/tests/coMap.test.js.map +1 -1
  31. package/dist/tests/coStream.test.js +59 -64
  32. package/dist/tests/coStream.test.js.map +1 -1
  33. package/dist/tests/groupsAndAccounts.test.js +88 -0
  34. package/dist/tests/groupsAndAccounts.test.js.map +1 -0
  35. package/package.json +5 -4
  36. package/src/coValues/account.ts +129 -105
  37. package/src/coValues/coList.ts +200 -131
  38. package/src/coValues/coMap.ts +243 -305
  39. package/src/coValues/coStream.ts +300 -127
  40. package/src/coValues/extensions/imageDef.ts +14 -16
  41. package/src/coValues/group.ts +90 -106
  42. package/src/coValues/interfaces.ts +33 -12
  43. package/src/implementation/refs.ts +42 -25
  44. package/src/implementation/schema.ts +69 -46
  45. package/src/implementation/symbols.ts +12 -0
  46. package/src/index.ts +10 -8
  47. package/src/internal.ts +1 -0
  48. package/src/tests/coList.test.ts +35 -39
  49. package/src/tests/coMap.test.ts +176 -81
  50. package/src/tests/coStream.test.ts +76 -81
  51. package/src/tests/groupsAndAccounts.test.ts +100 -0
@@ -1 +1 @@
1
- {"version":3,"file":"coStream.test.js","sourceRoot":"","sources":["../../src/tests/coStream.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"coStream.test.js","sourceRoot":"","sources":["../../src/tests/coStream.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AAE5D,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAC3D,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAC;AACvC,OAAO,EAAE,cAAc,EAAM,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,IAAI,CAAC;AAG1E,IAAI,CAAC,CAAC,QAAQ,IAAI,UAAU,CAAC,EAAE,CAAC;IAC5B,8DAA8D;IAC7D,UAAkB,CAAC,MAAM,GAAG,SAAS,CAAC;AAC3C,CAAC;AAED,UAAU,CAAC,KAAK,IAAI,EAAE;IAClB,MAAM,SAAS,CAAC;AACpB,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,4BAA4B,EAAE,KAAK,IAAI,EAAE;IAC9C,MAAM,EAAE,GAAG,MAAM,OAAO,CAAC,MAAM,CAAC;QAC5B,aAAa,EAAE,EAAE,IAAI,EAAE,mBAAmB,EAAE;KAC/C,CAAC,CAAC;IAEH,MAAM,UAAW,SAAQ,QAAQ,CAAC,EAAE,CAAC,EAAE,CAAC,MAAM,CAAC;KAAG;IAElD,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC;IAE1D,IAAI,CAAC,cAAc,EAAE,GAAG,EAAE;QACtB,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QAC7C,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC,SAAS,CAAC,EAAE,KAAK,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IACnE,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,UAAU,EAAE,GAAG,EAAE;QACtB,IAAI,CAAC,SAAS,EAAE,GAAG,EAAE;YACjB,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACrB,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;YAC9C,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC,SAAS,CAAC,EAAE,KAAK,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;YAEhE,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YACtB,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;YAC/C,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC,SAAS,CAAC,EAAE,KAAK,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QACrE,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,qBAAqB,EAAE,KAAK,IAAI,EAAE;IACvC,MAAM,iBAAkB,SAAQ,QAAQ,CAAC,EAAE,CAAC,EAAE,CAAC,MAAM,CAAC;QAClD,YAAY,CAAC,OAAoB;YAC7B,OAAO,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,EAAE,KAAK,CAAC;QACzC,CAAC;KACJ;IAED,MAAM,YAAa,SAAQ,QAAQ,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;KAAG;IAEpE,MAAM,UAAW,SAAQ,QAAQ,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;KAAG;IAE7D,MAAM,iBAAiB,GAAG,KAAK,IAAI,EAAE;QACjC,MAAM,EAAE,GAAG,MAAM,OAAO,CAAC,MAAM,CAAC;YAC5B,aAAa,EAAE,EAAE,IAAI,EAAE,mBAAmB,EAAE;SAC/C,CAAC,CAAC;QAEH,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM,CAC5B;YACI,YAAY,CAAC,MAAM,CACf,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC,EACnD,EAAE,KAAK,EAAE,EAAE,EAAE,CAChB;SACJ,EACD,EAAE,KAAK,EAAE,EAAE,EAAE,CAChB,CAAC;QAEF,OAAO,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC;IAC1B,CAAC,CAAC;IAEF,IAAI,CAAC,cAAc,EAAE,KAAK,IAAI,EAAE;QAC5B,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,MAAM,iBAAiB,EAAE,CAAC;QACjD,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC,OAAO,CAChE,MAAM,CACT,CAAC;IACN,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,0BAA0B,EAAE,KAAK,IAAI,EAAE;QACxC,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,MAAM,iBAAiB,EAAE,CAAC;QACjD,MAAM,CAAC,aAAa,EAAE,UAAU,CAAC,GAAG,cAAc,CAC9C,SAAS,EACT,QAAQ,EACR,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,CAC/C,CAAC;QACF,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;QAClD,MAAM,cAAc,GAAG,MAAM,OAAO,CAAC,MAAM,CAAC;YACxC,SAAS,EAAE,EAAE,CAAC,EAAE;YAChB,aAAa,EAAE,EAAE,CAAC,IAAI,CAAC,WAAW;YAClC,eAAe,EAAE,CAAC,aAAa,CAAC;YAChC,SAAS,EAAE,kBAAkB,CAAC,EAAE,CAAC,EAAS,CAAC;SAC9C,CAAC,CAAC;QAEH,MAAM,YAAY,GAAG,MAAM,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE;YAClD,EAAE,EAAE,cAAc;SACrB,CAAC,CAAC;QAEH,MAAM,CAAC,YAAY,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACnD,MAAM,CAAC,YAAY,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC,OAAO,CAC1C,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,CAC3B,CAAC;QAEF,MAAM,kBAAkB,GAAG,MAAM,YAAY,CAAC,IAAI,CAC9C,MAAM,CAAC,EAAE,CAAC,EAAE,CAAE,CAAC,KAAM,CAAC,EAAE,EACxB,EAAE,EAAE,EAAE,cAAc,EAAE,CACzB,CAAC;QAEF,oEAAoE;QACpE,MAAM,CAAC,YAAY,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,OAAO,CAC5C,kBAAkB,EAAE,EAAE,CACzB,CAAC;QACF,MAAM,CAAC,YAAY,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACnE,yEAAyE;QACzE,MAAM,CAAC,YAAY,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,OAAO,CACjD,kBAAkB,EAAE,EAAE,CACzB,CAAC;QACF,MAAM,CAAC,YAAY,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC,OAAO,CAC1D,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,CAC3C,CAAC;QAEF,MAAM,uBAAuB,GAAG,MAAM,iBAAiB,CAAC,IAAI,CACxD,MAAM,CAAC,EAAE,CAAC,EAAE,CAAE,CAAC,KAAM,CAAC,EAAE,CAAC,EAAE,CAAE,CAAC,KAAM,CAAC,EAAE,EACvC,EAAE,EAAE,EAAE,cAAc,EAAE,CACzB,CAAC;QAEF,gEAAgE;QAChE,8BAA8B;QAC9B,KAAK;QACL,MAAM,CAAC,YAAY,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,OAAO,CAC5D,uBAAuB,EAAE,EAAE,CAC9B,CAAC;QACF,MAAM,CACF,YAAY,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,YAAY,CAAC,EAAE,CAAC,EAAE,CAAC,CACpE,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;QACtB,yEAAyE;QACzE,MAAM,CAAC,YAAY,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,OAAO,CACjD,kBAAkB,EAAE,EAAE,CACzB,CAAC;QACF,MAAM,CAAC,YAAY,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,OAAO,CACjE,uBAAuB,EAAE,EAAE,CAC9B,CAAC;QAEF,MAAM,iBAAiB,GAAG,YAAY,CAAC,MAAM,CACzC,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,EAAE,EAAE,KAAK,EAAE,cAAc,EAAE,CAAC,CAAC,EACjE,EAAE,KAAK,EAAE,cAAc,EAAE,CAC5B,CAAC;QACF,YAAY,EAAE,IAAI,CAAC,iBAAiB,CAAC,CAAC;QACtC,mEAAmE;QACnE,MAAM,CAAC,YAAY,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,iBAAiB,EAAE,EAAE,CAAC,CAAC;QACxE,MAAM,CAAC,YAAY,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,OAAO,CACjD,iBAAiB,EAAE,EAAE,CACxB,CAAC;QACF,MAAM,CAAC,YAAY,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,OAAO,CAC5D,iBAAiB,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,CACtC,CAAC;QACF,MAAM,CACF,YAAY,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,YAAY,CAAC,EAAE,CAAC,EAAE,CAAC,CACpE,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;IAC5B,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,gCAAgC,EAAE,KAAK,IAAI,EAAE;QAC9C,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,MAAM,iBAAiB,EAAE,CAAC;QAEjD,MAAM,CAAC,aAAa,EAAE,YAAY,CAAC,GAAG,cAAc,CAChD,SAAS,EACT,QAAQ,EACR,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,CAC/C,CAAC;QAEF,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;QAEpD,MAAM,cAAc,GAAG,MAAM,OAAO,CAAC,MAAM,CAAC;YACxC,SAAS,EAAE,EAAE,CAAC,EAAE;YAChB,aAAa,EAAE,EAAE,CAAC,IAAI,CAAC,WAAW;YAClC,eAAe,EAAE,CAAC,aAAa,CAAC;YAChC,SAAS,EAAE,kBAAkB,CAAC,EAAE,CAAC,EAAS,CAAC;SAC9C,CAAC,CAAC;QAEH,MAAM,MAAM,CAAC,UAAU,CACnB,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;YACnB,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS,EAAc,CAAC,CAAC;YAEtD,UAAU,CAAC,SAAS,CAChB,MAAM,CAAC,EAAE,EACT,EAAE,EAAE,EAAE,cAAc,EAAE,EACtB,CAAC,gBAAgB,EAAE,EAAE;gBACjB,OAAO,CAAC,GAAG,CACP,yBAAyB,EACzB,gBAAgB,CAAC,EAAE,CAAC,EAAE,CAAC,CAC1B,CAAC;gBACF,OAAO,CAAC,GAAG,CACP,gDAAgD,EAChD,gBAAgB,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,CACjD,CAAC;gBACF,OAAO,CAAC,GAAG,CACP,gEAAgE,EAChE,gBAAgB,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAC5C,EAAE,CAAC,EAAE,CACR,EAAE,KAAK,CACX,CAAC;gBACF,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,EAAE,gBAAgB,CAAC,CAAC,CAAC;YAC5D,CAAC,CACJ,CAAC;YAGF,MAAM,EAAE,GAAM,MAAM,CAAC;YAErB,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;YAC5C,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YAE5C,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;YAC5C,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC,WAAW,EAAE,CAAC;YAC5C,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAEzD,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;YAC5C,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC,WAAW,EAAE,CAAC;YAC5D,MAAM,CACF,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,CACxD,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAEf,OAAO,CAAC,EAAE,CAAC,EAAE,CAAE,CAAC,KAAM,CAAC,EAAE,CAAC,EAAE,CAAE,CAAC,KAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAEpD,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;YAC5C,MAAM,CACF,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,CACxD,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAEhB,uDAAuD;YACvD,MAAM,cAAc,GAAG,iBAAiB,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,EAAE;gBACxD,KAAK,EAAE,cAAc;aACxB,CAAC,CAAC;YAEH,MAAM,SAAS,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC,cAAc,CAAC,EAAE;gBACpD,KAAK,EAAE,cAAc;aACxB,CAAC,CAAC;YAEH,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YAExB,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;YAC5C,MAAM,CACF,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,CACxD,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAEjB,oDAAoD;YACpD,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAC3B,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;YAC5C,MAAM,CACF,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,CACxD,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAClB,CAAC,CAAC,CACL,CAAC;IACN,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,kCAAkC,EAAE,KAAK,IAAI,EAAE;IACpD,MAAM,EAAE,GAAG,MAAM,OAAO,CAAC,MAAM,CAAC;QAC5B,aAAa,EAAE,EAAE,IAAI,EAAE,mBAAmB,EAAE;KAC/C,CAAC,CAAC;IAEH,MAAM,MAAM,GAAG,cAAc,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC;IAEpD,IAAI,CAAC,cAAc,EAAE,GAAG,EAAE;QACtB,MAAM,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAC/C,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,UAAU,EAAE,GAAG,EAAE;QAClB,MAAM,CAAC,KAAK,CAAC,EAAE,QAAQ,EAAE,YAAY,EAAE,CAAC,CAAC;QACzC,MAAM,CAAC,IAAI,CAAC,IAAI,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QACvC,MAAM,CAAC,IAAI,CAAC,IAAI,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QACvC,MAAM,CAAC,GAAG,EAAE,CAAC;QAEb,MAAM,MAAM,GAAG,MAAM,CAAC,SAAS,EAAE,CAAC;QAClC,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAC5C,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,OAAO,CAAC;YAC3B,IAAI,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;YACzB,IAAI,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;SAC5B,CAAC,CAAC;QACH,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACxC,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,uCAAuC,EAAE,KAAK,IAAI,EAAE;IACzD,MAAM,iBAAiB,GAAG,KAAK,IAAI,EAAE;QACjC,MAAM,EAAE,GAAG,MAAM,OAAO,CAAC,MAAM,CAAC;YAC5B,aAAa,EAAE,EAAE,IAAI,EAAE,mBAAmB,EAAE;SAC/C,CAAC,CAAC;QAEH,MAAM,MAAM,GAAG,cAAc,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC;QAEpD,MAAM,CAAC,KAAK,CAAC,EAAE,QAAQ,EAAE,YAAY,EAAE,CAAC,CAAC;QACzC,MAAM,CAAC,IAAI,CAAC,IAAI,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QACvC,MAAM,CAAC,IAAI,CAAC,IAAI,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QACvC,MAAM,CAAC,GAAG,EAAE,CAAC;QAEb,OAAO,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC;IAC1B,CAAC,CAAC;IAEF,IAAI,CAAC,cAAc,EAAE,KAAK,IAAI,EAAE;QAC5B,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,MAAM,iBAAiB,EAAE,CAAC;QACjD,MAAM,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC,OAAO,CAAC;YAC/B,QAAQ,EAAE,YAAY;YACtB,MAAM,EAAE,CAAC,IAAI,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;YAC9D,QAAQ,EAAE,IAAI;SACjB,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,0BAA0B,EAAE,KAAK,IAAI,EAAE;QACxC,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,MAAM,iBAAiB,EAAE,CAAC;QACjD,MAAM,CAAC,aAAa,EAAE,YAAY,CAAC,GAAG,cAAc,CAChD,SAAS,EACT,QAAQ,EACR,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,CAC/C,CAAC;QACF,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;QACpD,MAAM,cAAc,GAAG,MAAM,OAAO,CAAC,MAAM,CAAC;YACxC,SAAS,EAAE,EAAE,CAAC,EAAE;YAChB,aAAa,EAAE,EAAE,CAAC,IAAI,CAAC,WAAW;YAClC,eAAe,EAAE,CAAC,aAAa,CAAC;YAChC,SAAS,EAAE,kBAAkB,CAAC,EAAE,CAAC,EAAS,CAAC;SAC9C,CAAC,CAAC;QAEH,MAAM,YAAY,GAAG,MAAM,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE;YACtD,EAAE,EAAE,cAAc;SACrB,CAAC,CAAC;QAEH,MAAM,CAAC,YAAY,EAAE,SAAS,EAAE,CAAC,CAAC,OAAO,CAAC;YACtC,QAAQ,EAAE,YAAY;YACtB,MAAM,EAAE,CAAC,IAAI,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;YAC9D,QAAQ,EAAE,IAAI;SACjB,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,cAAc,EAAE,KAAK,IAAI,EAAE;QAC5B,MAAM,EAAE,EAAE,EAAE,GAAG,MAAM,iBAAiB,EAAE,CAAC;QAEzC,MAAM,MAAM,GAAG,cAAc,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC;QAEpD,MAAM,CAAC,aAAa,EAAE,YAAY,CAAC,GAAG,cAAc,CAChD,SAAS,EACT,QAAQ,EACR,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,CAC/C,CAAC;QAEF,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;QAEpD,MAAM,cAAc,GAAG,MAAM,OAAO,CAAC,MAAM,CAAC;YACxC,SAAS,EAAE,EAAE,CAAC,EAAE;YAChB,aAAa,EAAE,EAAE,CAAC,IAAI,CAAC,WAAW;YAClC,eAAe,EAAE,CAAC,aAAa,CAAC;YAChC,SAAS,EAAE,kBAAkB,CAAC,EAAE,CAAC,EAAS,CAAC;SAC9C,CAAC,CAAC;QAEH,MAAM,MAAM,CAAC,UAAU,CACnB,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;YACnB,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS,EAAkB,CAAC,CAAC;YAE1D,cAAc,CAAC,SAAS,CACpB,MAAM,CAAC,EAAE,EACT,EAAE,EAAE,EAAE,cAAc,EAAE,EACtB,CAAC,gBAAgB,EAAE,EAAE;gBACjB,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,EAAE,gBAAgB,CAAC,CAAC,CAAC;YAC5D,CAAC,CACJ,CAAC;YAEF,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;YAC5C,MAAM,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YAE5C,MAAM,CAAC,KAAK,CAAC,EAAE,QAAQ,EAAE,YAAY,EAAE,CAAC,CAAC;YAEzC,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;YAC5C,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,eAAe,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC;gBACzD,QAAQ,EAAE,YAAY;gBACtB,QAAQ,EAAE,SAAS;gBACnB,MAAM,EAAE,EAAE;gBACV,cAAc,EAAE,SAAS;gBACzB,QAAQ,EAAE,KAAK;aAClB,CAAC,CAAC;YAEH,MAAM,CAAC,IAAI,CAAC,IAAI,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;YAEvC,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;YAC5C,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,eAAe,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC;gBACzD,QAAQ,EAAE,YAAY;gBACtB,QAAQ,EAAE,SAAS;gBACnB,MAAM,EAAE,CAAC,IAAI,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;gBACnC,cAAc,EAAE,SAAS;gBACzB,QAAQ,EAAE,KAAK;aAClB,CAAC,CAAC;YAEH,MAAM,CAAC,IAAI,CAAC,IAAI,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;YAEvC,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;YAC5C,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,eAAe,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC;gBACzD,QAAQ,EAAE,YAAY;gBACtB,QAAQ,EAAE,SAAS;gBACnB,MAAM,EAAE;oBACJ,IAAI,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;oBACzB,IAAI,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;iBAC5B;gBACD,cAAc,EAAE,SAAS;gBACzB,QAAQ,EAAE,KAAK;aAClB,CAAC,CAAC;YAEH,MAAM,CAAC,GAAG,EAAE,CAAC;YAEb,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;YAC5C,MAAM,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC,OAAO,CAAC;gBAChC,QAAQ,EAAE,YAAY;gBACtB,QAAQ,EAAE,SAAS;gBACnB,MAAM,EAAE;oBACJ,IAAI,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;oBACzB,IAAI,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;iBAC5B;gBACD,cAAc,EAAE,SAAS;gBACzB,QAAQ,EAAE,IAAI;aACjB,CAAC,CAAC;QACP,CAAC,CAAC,CACL,CAAC;IACN,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC"}
@@ -0,0 +1,88 @@
1
+ import { expect, describe, test, beforeEach } from "vitest";
2
+ import { webcrypto } from "node:crypto";
3
+ import { Account, jazzReady, CoMap, co, Group } from "..";
4
+ if (!("crypto" in globalThis)) {
5
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
6
+ globalThis.crypto = webcrypto;
7
+ }
8
+ beforeEach(async () => {
9
+ await jazzReady;
10
+ });
11
+ describe("Custom accounts and groups", async () => {
12
+ var _a;
13
+ class CustomProfile extends CoMap {
14
+ constructor() {
15
+ super(...arguments);
16
+ this.name = co.string;
17
+ this.color = co.string;
18
+ }
19
+ }
20
+ class CustomAccount extends Account {
21
+ constructor() {
22
+ super(...arguments);
23
+ this.profile = co.ref(CustomProfile);
24
+ this.root = co.ref(CoMap);
25
+ }
26
+ migrate(creationProps) {
27
+ if (creationProps) {
28
+ const profileGroup = Group.create({ owner: this });
29
+ profileGroup.addMember("everyone", "reader");
30
+ this.profile = CustomProfile.create({ name: creationProps.name, color: "blue" }, { owner: this });
31
+ }
32
+ }
33
+ }
34
+ class CustomGroup extends Group {
35
+ constructor() {
36
+ super(...arguments);
37
+ this.profile = co.null;
38
+ this.root = co.null;
39
+ this[_a] = co.ref(CustomAccount);
40
+ }
41
+ get nMembers() {
42
+ return this.members.length;
43
+ }
44
+ }
45
+ _a = co.members;
46
+ test("Custom account and group", async () => {
47
+ const me = await CustomAccount.create({
48
+ creationProps: { name: "Hermes Puggington" },
49
+ });
50
+ expect(me.profile).toBeDefined();
51
+ expect(me.profile?.name).toBe("Hermes Puggington");
52
+ expect(me.profile?.color).toBe("blue");
53
+ const group = new CustomGroup({ owner: me });
54
+ group.addMember("everyone", "reader");
55
+ expect(group.members).toMatchObject([
56
+ { id: me.id, role: "admin" },
57
+ { id: "everyone", role: "reader" },
58
+ ]);
59
+ expect(group.nMembers).toBe(2);
60
+ await new Promise((resolve) => {
61
+ group.subscribe((update) => {
62
+ const meAsMember = update.members.find((member) => {
63
+ return member.id === me.id && member.account?.profile;
64
+ });
65
+ if (meAsMember) {
66
+ expect(meAsMember.account?.profile?.name).toBe("Hermes Puggington");
67
+ expect(meAsMember.account?.profile?.color).toBe("blue");
68
+ resolve();
69
+ }
70
+ });
71
+ });
72
+ class MyMap extends CoMap {
73
+ constructor() {
74
+ super(...arguments);
75
+ this.name = co.string;
76
+ }
77
+ }
78
+ const map = MyMap.create({ name: "test" }, { owner: group });
79
+ const meAsCastMember = map._owner
80
+ .as(CustomGroup)
81
+ .members.find((member) => member.id === me.id);
82
+ expect(meAsCastMember?.account?.profile?.name).toBe("Hermes Puggington");
83
+ expect(meAsCastMember?.account?.profile?.color).toBe("blue");
84
+ expect(map._owner.nMembers).toBeUndefined();
85
+ expect(map._owner.as(CustomGroup).nMembers).toBe(2);
86
+ });
87
+ });
88
+ //# sourceMappingURL=groupsAndAccounts.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"groupsAndAccounts.test.js","sourceRoot":"","sources":["../../src/tests/groupsAndAccounts.test.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -5,11 +5,12 @@
5
5
  "types": "src/index.ts",
6
6
  "type": "module",
7
7
  "license": "MIT",
8
- "version": "0.7.0-alpha.3",
8
+ "version": "0.7.0-alpha.31",
9
9
  "dependencies": {
10
- "@effect/schema": "^0.64.20",
11
- "effect": "^2.4.18",
12
- "cojson": "0.7.0-alpha.1"
10
+ "@effect/schema": "^0.66.6",
11
+ "fast-check": "^3.17.2",
12
+ "effect": "^3.0",
13
+ "cojson": "0.7.0-alpha.29"
13
14
  },
14
15
  "devDependencies": {
15
16
  "typescript": "^5.3.3",
@@ -15,40 +15,43 @@ import type {
15
15
  CoMap,
16
16
  CoValue,
17
17
  CoValueClass,
18
- FieldDescriptor,
19
- Group,
18
+ Schema,
20
19
  ID,
21
- RefField,
20
+ RefEncoded,
22
21
  SubclassedConstructor,
23
22
  UnavailableError,
24
23
  } from "../internal.js";
25
- import { CoValueBase, Profile, ValueRef, inspect } from "../internal.js";
24
+ import {
25
+ Group,
26
+ CoValueBase,
27
+ MembersSym,
28
+ Profile,
29
+ Ref,
30
+ SchemaInit,
31
+ inspect,
32
+ subscriptionsScopes,
33
+ } from "../internal.js";
26
34
  import type { Stream } from "effect/Stream";
27
35
 
28
- export class Account<
29
- Def extends { profile: Profile | null; root: CoMap | null } = {
30
- profile: Profile | null;
31
- root: CoMap | null;
32
- },
33
- >
36
+ export class Account
34
37
  extends CoValueBase
35
38
  implements CoValue<"Account", RawAccount | RawControlledAccount>
36
39
  {
37
- id!: ID<this>;
38
- _type!: "Account";
39
- _raw!: RawAccount | RawControlledAccount;
40
+ declare id: ID<this>;
41
+ declare _type: "Account";
42
+ declare _raw: RawAccount | RawControlledAccount;
40
43
 
41
- static _encoding: any;
42
- get _encoding(): {
43
- profile: FieldDescriptor;
44
- root: FieldDescriptor;
44
+ static _schema: any;
45
+ get _schema(): {
46
+ profile: Schema;
47
+ root: Schema;
45
48
  } {
46
- return (this.constructor as typeof Account)._encoding;
49
+ return (this.constructor as typeof Account)._schema;
47
50
  }
48
51
  static {
49
- this._encoding = {
50
- profile: { ref: () => Profile },
51
- root: { json: true },
52
+ this._schema = {
53
+ profile: () => Profile satisfies Schema,
54
+ root: "json" satisfies Schema,
52
55
  } as any;
53
56
  }
54
57
 
@@ -61,59 +64,47 @@ export class Account<
61
64
  : Account.fromNode(this._raw.core.node);
62
65
  }
63
66
 
64
- profile!: NonNullable<Def["profile"]> | null;
65
- root!: NonNullable<Def["root"]> | null;
67
+ declare profile: Profile | null;
68
+ declare root: CoMap | null;
66
69
 
67
- get _refs(): {
68
- profile: NonNullable<Def["profile"]> extends Profile
69
- ? ValueRef<NonNullable<Def["profile"]>> | null
70
- : null;
71
- root: NonNullable<Def["root"]> extends CoMap
72
- ? ValueRef<NonNullable<Def["root"]>> | null
73
- : null;
74
- } {
75
- const profileID = this._raw.get("profile") as unknown as ID<
76
- NonNullable<Def["profile"]>
77
- > | undefined;
70
+ get _refs() {
71
+ const profileID = this._raw.get("profile") as unknown as
72
+ | ID<NonNullable<this["profile"]>>
73
+ | undefined;
78
74
  const rootID = this._raw.get("root") as unknown as
79
- | ID<NonNullable<Def["root"]>>
75
+ | ID<NonNullable<this["root"]>>
80
76
  | undefined;
77
+
81
78
  return {
82
- profile: profileID && (new ValueRef(
83
- profileID,
84
- this._loadedAs,
85
- (
86
- this._encoding.profile as RefField<
87
- NonNullable<Def["profile"]> & CoValue
79
+ profile:
80
+ profileID &&
81
+ (new Ref(
82
+ profileID,
83
+ this._loadedAs,
84
+ this._schema.profile as RefEncoded<
85
+ NonNullable<this["profile"]> & CoValue
88
86
  >
89
- ).ref()
90
- )) as any,
87
+ ) as any as NonNullable<this["profile"]> extends Profile
88
+ ? Ref<NonNullable<this["profile"]>> | null
89
+ : null),
91
90
  root:
92
91
  rootID &&
93
- (new ValueRef(
92
+ (new Ref(
94
93
  rootID,
95
94
  this._loadedAs,
96
- (
97
- this._encoding.root as RefField<NonNullable<Def["root"]> & CoValue>
98
- ).ref()
99
- ) as any),
95
+ this._schema.root as RefEncoded<
96
+ NonNullable<this["root"]> & CoValue
97
+ >
98
+ ) as any as NonNullable<this["root"]> extends CoMap
99
+ ? Ref<NonNullable<this["root"]>> | null
100
+ : null),
100
101
  };
101
102
  }
102
103
 
103
104
  isMe: boolean;
104
105
  sessionID: SessionID | undefined;
105
106
 
106
- constructor(init: undefined, options: { owner: Group | Account });
107
- constructor(
108
- init: undefined,
109
- options: { fromRaw: RawAccount | RawControlledAccount }
110
- );
111
- constructor(
112
- init: undefined,
113
- options:
114
- | { fromRaw: RawAccount | RawControlledAccount }
115
- | { owner: Group | Account }
116
- ) {
107
+ constructor(options: { fromRaw: RawAccount | RawControlledAccount }) {
117
108
  super();
118
109
  if (!("fromRaw" in options)) {
119
110
  throw new Error(
@@ -128,40 +119,17 @@ export class Account<
128
119
  enumerable: false,
129
120
  },
130
121
  _raw: { value: options.fromRaw, enumerable: false },
131
- profile: {
132
- get: () => {
133
- const ref = this._refs.profile;
134
- return ref ? ref.accessFrom(this) : (undefined as any);
135
- },
136
- set: (value: Def["profile"] | null) => {
137
- if (value) {
138
- this._raw.set(
139
- "profile",
140
- value.id as unknown as CoID<RawCoMap>
141
- );
142
- }
143
- },
144
- },
145
- root: {
146
- get: () => {
147
- const ref = this._refs.root;
148
- return ref ? ref.accessFrom(this) : (undefined as any);
149
- },
150
- set: (value: Def["root"] | null) => {
151
- if (value) {
152
- this._raw.set(
153
- "root",
154
- value.id as unknown as CoID<RawCoMap>
155
- );
156
- }
157
- },
158
- },
159
122
  });
160
123
 
161
124
  if (this.isMe) {
162
125
  (this as Account & Me).sessionID =
163
126
  options.fromRaw.core.node.currentSessionID;
164
127
  }
128
+
129
+ return new Proxy(
130
+ this,
131
+ AccountAndGroupProxyHandler as ProxyHandler<this>
132
+ );
165
133
  }
166
134
 
167
135
  myRole(): "admin" | undefined {
@@ -198,19 +166,19 @@ export class Account<
198
166
  static async create<A extends Account>(
199
167
  this: SubclassedConstructor<A> & typeof Account,
200
168
  options: {
201
- name: string;
169
+ creationProps: { name: string };
202
170
  initialAgentSecret?: AgentSecret;
203
171
  peersToLoadFrom?: Peer[];
204
172
  }
205
173
  ): Promise<A & Me> {
206
174
  const { node } = await LocalNode.withNewlyCreatedAccount({
207
175
  ...options,
208
- migration: async (rawAccount) => {
209
- const account = new this(undefined, {
176
+ migration: async (rawAccount, _node, creationProps) => {
177
+ const account = new this({
210
178
  fromRaw: rawAccount,
211
179
  }) as A & Me;
212
180
 
213
- await account.migrate?.();
181
+ await account.migrate?.(creationProps);
214
182
  },
215
183
  });
216
184
 
@@ -231,12 +199,12 @@ export class Account<
231
199
  accountSecret: options.accountSecret,
232
200
  sessionID: options.sessionID,
233
201
  peersToLoadFrom: options.peersToLoadFrom,
234
- migration: async (rawAccount) => {
235
- const account = new this(undefined, {
202
+ migration: async (rawAccount, _node, creationProps) => {
203
+ const account = new this({
236
204
  fromRaw: rawAccount,
237
205
  }) as A & Me;
238
206
 
239
- await account.migrate?.();
207
+ await account.migrate?.(creationProps);
240
208
  },
241
209
  });
242
210
 
@@ -247,7 +215,7 @@ export class Account<
247
215
  this: SubclassedConstructor<A>,
248
216
  node: LocalNode
249
217
  ): A & Me {
250
- return new this(undefined, {
218
+ return new this({
251
219
  fromRaw: node.account as RawControlledAccount,
252
220
  }) as A & Me;
253
221
  }
@@ -263,20 +231,76 @@ export class Account<
263
231
  return this.toJSON();
264
232
  }
265
233
 
266
- static encoding<V extends Account>(
267
- this: { new (...args: any[]): V } & CoValueClass<V> & { _encoding: any },
268
- fields: {
269
- profile: V["_encoding"]["profile"];
270
- root: V["_encoding"]["root"];
234
+ migrate(creationProps?: { name: string }): void | Promise<void> {
235
+ if (creationProps) {
236
+ const profileGroup = Group.create({ owner: this });
237
+ profileGroup.addMember("everyone", "reader");
238
+ this.profile = Profile.create(
239
+ { name: creationProps.name },
240
+ { owner: profileGroup }
241
+ );
271
242
  }
272
- ) {
273
- this._encoding ||= {};
274
- Object.assign(this._encoding, fields);
275
243
  }
276
-
277
- migrate: (() => void | Promise<void>) | undefined;
278
244
  }
279
245
 
246
+ export const AccountAndGroupProxyHandler: ProxyHandler<Account | Group> = {
247
+ get(target, key, receiver) {
248
+ if (key === "profile") {
249
+ const ref = target._refs.profile;
250
+ return ref ? ref.accessFrom(receiver) : (undefined as any);
251
+ } else if (key === "root") {
252
+ const ref = target._refs.root;
253
+ return ref ? ref.accessFrom(receiver) : (undefined as any);
254
+ } else {
255
+ return Reflect.get(target, key, receiver);
256
+ }
257
+ },
258
+ set(target, key, value, receiver) {
259
+ if (
260
+ (key === "profile" || key === "root" || key === MembersSym) &&
261
+ typeof value === "object" &&
262
+ SchemaInit in value
263
+ ) {
264
+ (target.constructor as typeof CoMap)._schema ||= {};
265
+ (target.constructor as typeof CoMap)._schema[key] =
266
+ value[SchemaInit];
267
+ return true;
268
+ } else if (key === "profile") {
269
+ if (value) {
270
+ target._raw.set(
271
+ "profile",
272
+ value.id as unknown as CoID<RawCoMap>,
273
+ "trusting"
274
+ );
275
+ }
276
+ subscriptionsScopes.get(receiver)?.onRefAccessedOrSet(value.id);
277
+ return true;
278
+ } else if (key === "root") {
279
+ if (value) {
280
+ target._raw.set("root", value.id as unknown as CoID<RawCoMap>);
281
+ }
282
+ subscriptionsScopes.get(receiver)?.onRefAccessedOrSet(value.id);
283
+ return true;
284
+ } else {
285
+ return Reflect.set(target, key, value, receiver);
286
+ }
287
+ },
288
+ defineProperty(target, key, descriptor) {
289
+ if (
290
+ (key === "profile" || key === "root" || key === MembersSym) &&
291
+ typeof descriptor.value === "object" &&
292
+ SchemaInit in descriptor.value
293
+ ) {
294
+ (target.constructor as typeof CoMap)._schema ||= {};
295
+ (target.constructor as typeof CoMap)._schema[key] =
296
+ descriptor.value[SchemaInit];
297
+ return true;
298
+ } else {
299
+ return Reflect.defineProperty(target, key, descriptor);
300
+ }
301
+ },
302
+ };
303
+
280
304
  export interface Me {
281
305
  id: ID<any>;
282
306
  isMe: true;