@exactjs/core 0.6.0 → 0.6.2

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.
Files changed (61) hide show
  1. package/dist/client/component/resumption.js +3 -1
  2. package/dist/client/component/resumption.js.map +1 -1
  3. package/dist/client/framework/server-task-helpers.d.ts +1 -1
  4. package/dist/client/framework/server-task-helpers.d.ts.map +1 -1
  5. package/dist/client/framework/server-task-helpers.js +1 -1
  6. package/dist/client/framework/server-task-helpers.js.map +1 -1
  7. package/dist/client/tasks/frame-continuation.d.ts +1 -1
  8. package/dist/client/tasks/frame-continuation.d.ts.map +1 -1
  9. package/dist/client/tasks/frame-continuation.js +21 -10
  10. package/dist/client/tasks/frame-continuation.js.map +1 -1
  11. package/dist/client/tasks/frame-runtime.d.ts +2 -2
  12. package/dist/client/tasks/frame-runtime.d.ts.map +1 -1
  13. package/dist/client/tasks/frame-runtime.js +14 -6
  14. package/dist/client/tasks/frame-runtime.js.map +1 -1
  15. package/dist/client/tasks/resources.d.ts.map +1 -1
  16. package/dist/client/tasks/resources.js +6 -3
  17. package/dist/client/tasks/resources.js.map +1 -1
  18. package/dist/client/tasks/scheduled-reactions.d.ts.map +1 -1
  19. package/dist/client/tasks/scheduled-reactions.js +9 -2
  20. package/dist/client/tasks/scheduled-reactions.js.map +1 -1
  21. package/dist/component/resumption.js +3 -1
  22. package/dist/component/resumption.js.map +1 -1
  23. package/dist/framework/server-task-helpers.d.ts +1 -1
  24. package/dist/framework/server-task-helpers.d.ts.map +1 -1
  25. package/dist/framework/server-task-helpers.js +1 -1
  26. package/dist/framework/server-task-helpers.js.map +1 -1
  27. package/dist/server/component/resumption.js +3 -1
  28. package/dist/server/component/resumption.js.map +1 -1
  29. package/dist/server/framework/server-task-helpers.d.ts +1 -1
  30. package/dist/server/framework/server-task-helpers.d.ts.map +1 -1
  31. package/dist/server/framework/server-task-helpers.js +1 -1
  32. package/dist/server/framework/server-task-helpers.js.map +1 -1
  33. package/dist/server/tasks/frame-continuation.d.ts +1 -1
  34. package/dist/server/tasks/frame-continuation.d.ts.map +1 -1
  35. package/dist/server/tasks/frame-continuation.js +21 -10
  36. package/dist/server/tasks/frame-continuation.js.map +1 -1
  37. package/dist/server/tasks/frame-runtime.d.ts +2 -2
  38. package/dist/server/tasks/frame-runtime.d.ts.map +1 -1
  39. package/dist/server/tasks/frame-runtime.js +14 -6
  40. package/dist/server/tasks/frame-runtime.js.map +1 -1
  41. package/dist/server/tasks/resources.d.ts.map +1 -1
  42. package/dist/server/tasks/resources.js +6 -3
  43. package/dist/server/tasks/resources.js.map +1 -1
  44. package/dist/server/tasks/scheduled-reactions.d.ts.map +1 -1
  45. package/dist/server/tasks/scheduled-reactions.js +9 -2
  46. package/dist/server/tasks/scheduled-reactions.js.map +1 -1
  47. package/dist/tasks/frame-continuation.d.ts +1 -1
  48. package/dist/tasks/frame-continuation.d.ts.map +1 -1
  49. package/dist/tasks/frame-continuation.js +21 -10
  50. package/dist/tasks/frame-continuation.js.map +1 -1
  51. package/dist/tasks/frame-runtime.d.ts +2 -2
  52. package/dist/tasks/frame-runtime.d.ts.map +1 -1
  53. package/dist/tasks/frame-runtime.js +14 -6
  54. package/dist/tasks/frame-runtime.js.map +1 -1
  55. package/dist/tasks/resources.d.ts.map +1 -1
  56. package/dist/tasks/resources.js +6 -3
  57. package/dist/tasks/resources.js.map +1 -1
  58. package/dist/tasks/scheduled-reactions.d.ts.map +1 -1
  59. package/dist/tasks/scheduled-reactions.js +9 -2
  60. package/dist/tasks/scheduled-reactions.js.map +1 -1
  61. package/package.json +2 -2
@@ -1 +1 @@
1
- {"version":3,"file":"resources.js","sourceRoot":"","sources":["../../src/tasks/resources.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,KAAK,EACL,wBAAwB,EACxB,MAAM,EACN,yBAAyB,EACzB,MAAM,qCAAqC,CAAC;AAE7C,OAAO,EAAE,2BAA2B,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC1E,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAW5D,OAAO,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AACjF,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAErD,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAExD,MAAM,UAAU,GAAG,IAAI,OAAO,EAAqC,CAAC;AAEpE,oEAAoE;AACpE,MAAM,UAAU,cAAc,CAAC,MAAmB,EAAE,KAA2B;IAC9E,UAAU,CAAC,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;AAC/B,CAAC;AACD,MAAM,mBAAmB,GAAG,IAAI,OAAO,EAAmC,CAAC;AAC3E,MAAM,aAAa,GAAG,IAAI,OAAO,EAAkC,CAAC;AACpE,MAAM,uBAAuB,GAAG,IAAI,OAAO,EAA0C,CAAC;AAEtF,uFAAuF;AACvF,MAAM,UAAU,iBAAiB,CAAC,MAAmB,EAAE,QAAoB;IAC1E,IAAI,MAAM,CAAC,OAAO;QAAE,OAAO;IAC3B,IAAI,MAAM,GAAG,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IACvC,IAAI,CAAC,MAAM,EAAE,CAAC;QACb,MAAM,GAAG,EAAE,CAAC;QACZ,aAAa,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAClC,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,oBAAoB,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;IACtF,CAAC;IACD,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AACvB,CAAC;AAED,yFAAyF;AACzF,MAAM,UAAU,oBAAoB,CAAC,MAAmB;IACvD,MAAM,MAAM,GAAG,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IACzC,IAAI,CAAC,MAAM;QAAE,OAAO;IACpB,aAAa,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAC7B,KAAK,CAAC,GAAG,EAAE;QACV,KAAK,MAAM,QAAQ,IAAI,MAAM;YAAE,QAAQ,EAAE,CAAC;IAC3C,CAAC,CAAC,CAAC;AACJ,CAAC;AAED,sEAAsE;AACtE,MAAM,UAAU,oBAAoB,CAAC,MAAmB;IACvD,aAAa,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAC7B,uBAAuB,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;AACxC,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,oBAAoB,CACnC,MAAmB,EACnB,MAAc,EACd,IAA4B,EAC5B,IAAmB,EACnB,MAA0C,EAC1C,IAAmC;IAEnC,IAAI,MAAM,CAAC,OAAO;QAAE,OAAO,SAAS,CAAC;IACrC,MAAM,KAAK,GAAG,OAAO,IAAI,KAAK,UAAU,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;IACzD,MAAM,UAAU,GAAG,kBAAkB,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IACpD,MAAM,GAAG,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC;IAC/B,MAAM,OAAO,GAAG,yBAAyB,CAAC,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;IACpE,MAAM,MAAM,GAAG,wBAAwB,CAAC,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;IAC3E,IAAI,OAAO,EAAE,CAAC;QACb,IAAI,SAAS,GAAG,uBAAuB,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACpD,IAAI,CAAC,SAAS,EAAE,CAAC;YAChB,SAAS,GAAG,EAAE,CAAC;YACf,uBAAuB,CAAC,GAAG,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;YAC/C,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,oBAAoB,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;QACtF,CAAC;QACD,SAAS,CAAC,IAAI,CAAC,kBAAkB,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC;IAC/D,CAAC;IACD,OAAO,MAAM,CAAC;AACf,CAAC;AAED,sFAAsF;AACtF,MAAM,UAAU,2BAA2B,CAC1C,MAAmB;IAEnB,MAAM,SAAS,GAAG,uBAAuB,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IACtD,uBAAuB,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IACvC,OAAO,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC;AAClD,CAAC;AAED,SAAS,kBAAkB,CAAC,MAAc,EAAE,IAA4B;IACvE,IAAI,KAAK,GAAY,MAAM,CAAC;IAC5B,KAAK,MAAM,OAAO,IAAI,IAAI;QAAE,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,KAAe,EAAE,OAAO,CAAC,CAAC;IAC1E,OAAO,KAAK,CAAC;AACd,CAAC;AAED,SAAS,yBAAyB,CACjC,KAAc,EACd,IAAmB,EACnB,MAAc,EACd,IAAwB;IAExB,IAAI,IAAI,KAAK,KAAK,IAAI,KAAK,YAAY,GAAG,EAAE,CAAC;QAC5C,IAAI,MAAM,KAAK,OAAO;YAAE,OAAO,KAAK,CAAC,IAAI,GAAG,CAAC,CAAC;QAC9C,IAAI,MAAM,KAAK,QAAQ;YAAE,OAAO,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC3D,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;QAC5B,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACvE,CAAC;IACD,IAAI,IAAI,KAAK,KAAK,IAAI,KAAK,YAAY,GAAG,EAAE,CAAC;QAC5C,IAAI,MAAM,KAAK,OAAO;YAAE,OAAO,KAAK,CAAC,IAAI,GAAG,CAAC,CAAC;QAC9C,IAAI,MAAM,KAAK,QAAQ;YAAE,OAAO,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC3D,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACpC,CAAC;IACD,OAAO,IAAI,CAAC;AACb,CAAC;AAED,SAAS,kBAAkB,CAC1B,IAA4B,EAC5B,IAAmB,EACnB,MAAc,EACd,IAAwB;IAExB,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC5C,IAAI,IAAI,KAAK,KAAK,EAAE,CAAC;QACpB,IAAI,MAAM,KAAK,KAAK;YACnB,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAC/F,IAAI,MAAM,KAAK,QAAQ;YACtB,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,YAAY,EAAE,GAAG,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAC1E,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,WAAW,EAAE,CAAC;IACnD,CAAC;IACD,IAAI,MAAM,KAAK,KAAK;QAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAC9F,IAAI,MAAM,KAAK,QAAQ;QACtB,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAC5E,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,WAAW,EAAE,CAAC;AACnD,CAAC;AAED,mFAAmF;AACnF,MAAM,UAAU,mBAAmB,CAAC,MAAmB,EAAE,OAAoB;IAC5E,IAAI,MAAM,GAAG,IAAI,CAAC;IAClB,MAAM,GAAG,GAAG,GAAS,EAAE;QACtB,IAAI,CAAC,MAAM;YAAE,OAAO;QACpB,MAAM,GAAG,KAAK,CAAC;QACf,MAAM,CAAC,mBAAmB,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;QACzC,IAAI,CAAC;YACJ,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YACtC,IAAI,aAAa,CAAC,MAAM,CAAC,EAAE,CAAC;gBAC3B,uBAAuB,CACtB,MAAM,EACN,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;oBACvC,uBAAuB,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;gBACxC,CAAC,CAAC,CACF,CAAC;YACH,CAAC;QACF,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAChB,uBAAuB,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;QACxC,CAAC;IACF,CAAC,CAAC;IACF,IAAI,MAAM,CAAC,OAAO;QAAE,GAAG,EAAE,CAAC;;QACrB,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,GAAG,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;AAC5D,CAAC;AAED,SAAS,uBAAuB,CAAC,MAAmB,EAAE,OAAsB;IAC3E,IAAI,OAAO,GAAG,mBAAmB,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAC9C,IAAI,CAAC,OAAO,EAAE,CAAC;QACd,OAAO,GAAG,IAAI,GAAG,EAAE,CAAC;QACpB,mBAAmB,CAAC,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC1C,CAAC;IACD,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IACrB,KAAK,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE;QACzB,OAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QACzB,IAAI,CAAC,OAAQ,CAAC,IAAI;YAAE,mBAAmB,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IACxD,CAAC,CAAC,CAAC;AACJ,CAAC;AAED,iGAAiG;AACjG,MAAM,UAAU,wBAAwB,CACvC,MAA+B;IAE/B,IAAI,CAAC,MAAM;QAAE,OAAO,SAAS,CAAC;IAC9B,MAAM,OAAO,GAAG,mBAAmB,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAChD,IAAI,CAAC,OAAO,EAAE,IAAI;QAAE,OAAO,SAAS,CAAC;IACrC,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;AACxD,CAAC;AAED,gFAAgF;AAChF,MAAM,UAAU,eAAe,CAC9B,MAAmB,EACnB,QAAW,EACX,QAA2F;IAE3F,mBAAmB,CAAC,MAAM,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,mBAAmB,CAAC,QAAQ,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC;IACzF,OAAO,QAAQ,CAAC;AACjB,CAAC;AAED,uEAAuE;AACvE,MAAM,UAAU,gBAAgB,CAC/B,MAAmB,EACnB,QAA8C,EAC9C,OAAyB;IAEzB,MAAM,QAAQ,GAAG,UAMhB,CAAC;IACF,IAAI,MAAM,GAAG,CAAC,CAAC;IACf,MAAM,MAAM,GAAG,GAAG,EAAE,CAAC,QAAQ,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC;IACzD,MAAM,GAAG,QAAQ,CAAC,mBAAmB,CAAC,CAAC,QAAQ,EAAE,EAAE;QAClD,MAAM,CAAC,mBAAmB,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QAC5C,IAAI,CAAC,MAAM,CAAC,OAAO;YAAE,eAAe,CAAC,MAAM,EAAE,eAAe,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC;IACzF,CAAC,EAAE,OAAO,CAAC,CAAC;IACZ,IAAI,MAAM,CAAC,OAAO;QAAE,MAAM,EAAE,CAAC;;QACxB,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;IAC9D,OAAO,MAAM,CAAC;AACf,CAAC;AAED,SAAS,mBAAmB,CAC3B,QAAW,EACX,QAGY,EACZ,MAAe;IAEf,IAAI,OAAO,QAAQ,KAAK,UAAU;QAAE,OAAO,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IACtE,IAAI,QAAQ,KAAK,MAAM,EAAE,CAAC;QACzB,IAAI,OAAO,QAAQ,KAAK,UAAU;YAAE,OAAO,QAAQ,EAAE,CAAC;QACtD,OAAO;IACR,CAAC;IACD,IAAI,CAAC,QAAQ,IAAI,CAAC,OAAO,QAAQ,KAAK,QAAQ,IAAI,OAAO,QAAQ,KAAK,UAAU,CAAC;QAAE,OAAO;IAC1F,IAAI,QAAQ,KAAK,QAAQ;QAAE,OAAO,oBAAoB,CAAC,QAAQ,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;IACnF,IAAI,QAAQ;QAAE,OAAO,oBAAoB,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;IAC9D,MAAM,OAAO,GAAG,MAAyE,CAAC;IAC1F,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC;QAC1B,MAAM,MAAM,GAAG,oBAAoB,CAAC,QAAQ,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC;QACpE,IAAI,MAAM,KAAK,SAAS;YAAE,OAAO,MAAM,CAAC;IACzC,CAAC;IACD,IAAI,OAAO,CAAC,OAAO;QAAE,OAAO,oBAAoB,CAAC,QAAQ,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;AAC7E,CAAC;AAED,SAAS,oBAAoB,CAC5B,QAAgB,EAChB,GAAgB,EAChB,GAAG,IAAe;IAElB,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,GAAG,CAAY,CAAC;IACrD,IAAI,OAAO,MAAM,KAAK,UAAU;QAAE,OAAO,MAAM,CAAC,KAAK,CAAC,QAAQ,EAAE,IAAI,CAAyB,CAAC;AAC/F,CAAC;AAED,SAAS,uBAAuB,CAAC,MAAmB,EAAE,KAAc;IACnE,MAAM,QAAQ,GAAG,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IACxC,IAAI,QAAQ,EAAE,CAAC;QACd,oBAAoB,CAAC,QAAQ,EAAE,iBAAiB,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,kBAAkB,CAAC,CAAC,CAAC;QAC/F,OAAO;IACR,CAAC;IACD,iBAAiB,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,8BAA8B,EAAE,KAAK,CAAC,CAAC;AACnF,CAAC;AAED,mFAAmF;AACnF,MAAM,UAAU,WAAW,CAC1B,MAAmB,EACnB,OAAgC,EAChC,KAAc,EACd,GAAG,IAAU;IAEb,MAAM,KAAK,GAAG,GAAG,EAAE,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;IAC1C,MAAM,OAAO,GAAG,UAAU,CACzB,CAAC,GAAG,MAAY,EAAE,EAAE;QACnB,MAAM,CAAC,mBAAmB,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QAC3C,IAAI,CAAC,MAAM,CAAC,OAAO;YAAE,eAAe,CAAC,MAAM,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC;IACnF,CAAC,EACD,KAAK,EACL,GAAG,IAAI,CACP,CAAC;IACF,IAAI,MAAM,CAAC,OAAO;QAAE,KAAK,EAAE,CAAC;;QACvB,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;IAC7D,OAAO,OAAO,CAAC;AAChB,CAAC;AAED,2FAA2F;AAC3F,MAAM,UAAU,YAAY,CAC3B,MAAmB,EACnB,OAAgC,EAChC,KAAc,EACd,GAAG,IAAU;IAEb,MAAM,QAAQ,GAAG,WAAW,CAC3B,CAAC,GAAG,MAAY,EAAE,EAAE;QACnB,IAAI,CAAC,MAAM,CAAC,OAAO;YAAE,eAAe,CAAC,MAAM,EAAE,UAAU,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC;IACpF,CAAC,EACD,KAAK,EACL,GAAG,IAAI,CACP,CAAC;IACF,IAAI,MAAM,CAAC,OAAO;QAAE,aAAa,CAAC,QAAQ,CAAC,CAAC;;QACvC,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,aAAa,CAAC,QAAQ,CAAC,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;IACrF,OAAO,QAAQ,CAAC;AACjB,CAAC;AAED,wFAAwF;AACxF,MAAM,UAAU,kBAAkB,CAAC,MAAmB,EAAE,OAA+B;IACtF,MAAM,QAAQ,GAAG,UAGhB,CAAC;IACF,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,MAAM,MAAM,GAAG,GAAG,EAAE,CAAC,QAAQ,CAAC,oBAAoB,CAAC,KAAK,CAAC,CAAC;IAC1D,KAAK,GAAG,QAAQ,CAAC,qBAAqB,CAAC,CAAC,IAAI,EAAE,EAAE;QAC/C,MAAM,CAAC,mBAAmB,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QAC5C,IAAI,CAAC,MAAM,CAAC,OAAO;YAAE,eAAe,CAAC,MAAM,EAAE,iBAAiB,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;IACtF,CAAC,CAAC,CAAC;IACH,IAAI,MAAM,CAAC,OAAO;QAAE,MAAM,EAAE,CAAC;;QACxB,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;IAC9D,OAAO,KAAK,CAAC;AACd,CAAC;AAED,+EAA+E;AAC/E,MAAM,UAAU,YAAY,CAC3B,MAAmB,EACnB,QAAW;IAEX,mBAAmB,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,UAAU,EAAE,CAAC,CAAC;IACzD,OAAO,QAAQ,CAAC;AACjB,CAAC;AAED,SAAS,eAAe,CAAC,MAAmB,EAAE,KAAa,EAAE,QAAoB;IAChF,IAAI,CAAC;QACJ,QAAQ,EAAE,CAAC;IACZ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QAChB,MAAM,QAAQ,GAAG,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACxC,IAAI,QAAQ;YAAE,oBAAoB,CAAC,QAAQ,EAAE,iBAAiB,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAC;;YAC3F,uBAAuB,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IAC7C,CAAC;AACF,CAAC;AAED,6FAA6F;AAC7F,MAAM,UAAU,SAAS,CACxB,MAAmB,EACnB,OAA8D,EAC9D,KAAc,EACd,IAA8B;IAE9B,MAAM,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IACxC,MAAM,QAAQ,GAAG,OAAO,CAAC,MAAM,CAAC;IAChC,MAAM,QAAQ,GAAG,aAAa,CAAC,QAAQ,CAAC;QACvC,CAAC,CAAC,2BAA2B,CAAC,QAAQ,EAAE,MAAM,CAAC;QAC/C,CAAC,CAAC,SAAS,CAAC;IACb,OAAO,CAAC,MAAM,GAAG,QAAQ,EAAE,MAAM,IAAI,MAAM,CAAC;IAC5C,IAAI,CAAC;QACJ,MAAM,MAAM,GAAG,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;QACvC,IAAI,QAAQ,IAAI,aAAa,CAAC,MAAM,CAAC,EAAE,CAAC;YACvC,KAAK,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC;QAChF,CAAC;;YAAM,QAAQ,EAAE,OAAO,EAAE,CAAC;QAC3B,OAAO,MAAM,CAAC;IACf,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QAChB,QAAQ,EAAE,OAAO,EAAE,CAAC;QACpB,MAAM,KAAK,CAAC;IACb,CAAC;AACF,CAAC;AAED,SAAS,gBAAgB,KAAU,CAAC;AAEpC;;;;;GAKG;AACH,MAAM,UAAU,SAAS,CAAI,MAAmB,EAAE,KAAyB;IAC1E,IAAI,MAAM,CAAC,OAAO;QAAE,OAAO,OAAO,CAAC,MAAM,CAAC,IAAI,gBAAgB,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;IAC/E,OAAO,IAAI,OAAO,CAAI,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACzC,IAAI,OAAO,GAAG,KAAK,CAAC;QACpB,IAAI,aAAuC,CAAC;QAC5C,MAAM,KAAK,GAAG,GAAG,EAAE;YAClB,IAAI,OAAO;gBAAE,OAAO;YACpB,OAAO,GAAG,IAAI,CAAC;YACf,aAAa,EAAE,EAAE,CAAC;YAClB,aAAa,GAAG,SAAS,CAAC;YAC1B,eAAe,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,gBAAgB,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QAC5E,CAAC,CAAC;QACF,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;QACxD,MAAM,MAAM,GAAG,CAAC,MAAe,EAAE,MAAe,EAAE,EAAE;YACnD,IAAI,OAAO;gBAAE,OAAO;YACpB,OAAO,GAAG,IAAI,CAAC;YACf,MAAM,CAAC,mBAAmB,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;YAC3C,eAAe,CAAC,MAAM,EAAE,GAAG,EAAE;gBAC5B,IAAI,MAAM;oBAAE,MAAM,CAAC,MAAM,CAAC,CAAC;qBACtB,IAAI,MAAM,CAAC,OAAO;oBAAE,MAAM,CAAC,IAAI,gBAAgB,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;;oBAChE,OAAO,CAAC,MAAW,CAAC,CAAC;YAC3B,CAAC,CAAC,CAAC;QACJ,CAAC,CAAC;QACF,MAAM,YAAY,GAAG,CAAC,MAAe,EAAE,MAAe,EAAE,EAAE;YACzD,IAAI,OAAO;gBAAE,OAAO;YACpB,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;YACrC,IAAI,KAAK,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC;gBACzB,aAAa,GAAG,yBAAyB,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,EAAE;oBAC3D,aAAa,GAAG,SAAS,CAAC;oBAC1B,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;gBACxB,CAAC,CAAC,CAAC;gBACH,OAAO;YACR,CAAC;YACD,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QACxB,CAAC,CAAC;QACF,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,IAAI,CAC1B,CAAC,MAAM,EAAE,EAAE,CAAC,YAAY,CAAC,MAAM,EAAE,KAAK,CAAC,EACvC,CAAC,KAAc,EAAE,EAAE,CAAC,YAAY,CAAC,KAAK,EAAE,IAAI,CAAC,CAC7C,CAAC;IACH,CAAC,CAAC,CAAC;AACJ,CAAC","sourcesContent":["import {\n\tbatch,\n\tmutateReactiveCollection,\n\tunwrap,\n\tscheduleEffectScopeResume\n} from '@exactjs/reactive/framework/runtime';\n\nimport { createDisposableAbortSignal, isAbortSignal } from './signals.js';\nimport { isPromiseLike } from '../component/async-value.js';\n\nimport type {\n\tAnyComponentInstance,\n\tTaskCleanup,\n\tTaskIdleDeadline,\n\tTaskIdleOptions,\n\tTaskResourceDisposal\n} from '../component/contracts.js';\nimport type { ExactCollectionMutation } from '../component-contracts.js';\n\nimport { createErrorReport, handleComponentError } from '../component/errors.js';\nimport { TaskCancellation } from './cancellation.js';\nimport { resumeTaskFrame } from './frame-runtime.js';\n\nimport { logFrameworkEvent } from '../component/log.js';\n\nconst taskOwners = new WeakMap<AbortSignal, AnyComponentInstance>();\n\n/** Associates a task generation signal with its component owner. */\nexport function trackTaskOwner(signal: AbortSignal, owner: AnyComponentInstance): void {\n\ttaskOwners.set(signal, owner);\n}\nconst taskCleanupPromises = new WeakMap<AbortSignal, Set<Promise<void>>>();\nconst taskMutations = new WeakMap<AbortSignal, Array<() => void>>();\nconst taskCollectionMutations = new WeakMap<AbortSignal, ExactCollectionMutation[]>();\n\n/** Stages a compiler-generated mutation until its blocking task generation commits. */\nexport function stageTaskMutation(signal: AbortSignal, mutation: () => void): void {\n\tif (signal.aborted) return;\n\tlet staged = taskMutations.get(signal);\n\tif (!staged) {\n\t\tstaged = [];\n\t\ttaskMutations.set(signal, staged);\n\t\tsignal.addEventListener('abort', () => discardTaskMutations(signal), { once: true });\n\t}\n\tstaged.push(mutation);\n}\n\n/** Publishes staged mutations for a successful task generation as one reactive batch. */\nexport function publishTaskMutations(signal: AbortSignal): void {\n\tconst staged = taskMutations.get(signal);\n\tif (!staged) return;\n\ttaskMutations.delete(signal);\n\tbatch(() => {\n\t\tfor (const mutation of staged) mutation();\n\t});\n}\n\n/** Discards every unpublished mutation owned by a task generation. */\nexport function discardTaskMutations(signal: AbortSignal): void {\n\ttaskMutations.delete(signal);\n\ttaskCollectionMutations.delete(signal);\n}\n\n/**\n * Applies a server-task collection mutation and records the smallest ordered\n * response delta that can reproduce the successful change in the browser.\n */\nexport function mutateTaskCollection(\n\tsignal: AbortSignal,\n\ttarget: object,\n\tpath: readonly PropertyKey[],\n\tkind: 'map' | 'set',\n\tmethod: 'set' | 'add' | 'delete' | 'clear',\n\targs: unknown[] | (() => unknown[])\n): unknown {\n\tif (signal.aborted) return undefined;\n\tconst input = typeof args === 'function' ? args() : args;\n\tconst collection = readTaskCollection(target, path);\n\tconst raw = unwrap(collection);\n\tconst changed = collectionMutationChanges(raw, kind, method, input);\n\tconst result = mutateReactiveCollection(target, path, kind, method, input);\n\tif (changed) {\n\t\tlet mutations = taskCollectionMutations.get(signal);\n\t\tif (!mutations) {\n\t\t\tmutations = [];\n\t\t\ttaskCollectionMutations.set(signal, mutations);\n\t\t\tsignal.addEventListener('abort', () => discardTaskMutations(signal), { once: true });\n\t\t}\n\t\tmutations.push(collectionMutation(path, kind, method, input));\n\t}\n\treturn result;\n}\n\n/** Takes the ordered collection deltas produced by one successful task generation. */\nexport function takeTaskCollectionMutations(\n\tsignal: AbortSignal\n): readonly ExactCollectionMutation[] | undefined {\n\tconst mutations = taskCollectionMutations.get(signal);\n\ttaskCollectionMutations.delete(signal);\n\treturn mutations?.length ? mutations : undefined;\n}\n\nfunction readTaskCollection(target: object, path: readonly PropertyKey[]): unknown {\n\tlet value: unknown = target;\n\tfor (const segment of path) value = Reflect.get(value as object, segment);\n\treturn value;\n}\n\nfunction collectionMutationChanges(\n\tvalue: unknown,\n\tkind: 'map' | 'set',\n\tmethod: string,\n\targs: readonly unknown[]\n): boolean {\n\tif (kind === 'map' && value instanceof Map) {\n\t\tif (method === 'clear') return value.size > 0;\n\t\tif (method === 'delete') return value.has(unwrap(args[0]));\n\t\tconst key = unwrap(args[0]);\n\t\treturn !value.has(key) || !Object.is(value.get(key), unwrap(args[1]));\n\t}\n\tif (kind === 'set' && value instanceof Set) {\n\t\tif (method === 'clear') return value.size > 0;\n\t\tif (method === 'delete') return value.has(unwrap(args[0]));\n\t\treturn !value.has(unwrap(args[0]));\n\t}\n\treturn true;\n}\n\nfunction collectionMutation(\n\tpath: readonly PropertyKey[],\n\tkind: 'map' | 'set',\n\tmethod: string,\n\targs: readonly unknown[]\n): ExactCollectionMutation {\n\tconst location = path.map(String).join('.');\n\tif (kind === 'map') {\n\t\tif (method === 'set')\n\t\t\treturn { path: location, operation: 'map-set', key: unwrap(args[0]), value: unwrap(args[1]) };\n\t\tif (method === 'delete')\n\t\t\treturn { path: location, operation: 'map-delete', key: unwrap(args[0]) };\n\t\treturn { path: location, operation: 'map-clear' };\n\t}\n\tif (method === 'add') return { path: location, operation: 'set-add', value: unwrap(args[0]) };\n\tif (method === 'delete')\n\t\treturn { path: location, operation: 'set-delete', value: unwrap(args[0]) };\n\treturn { path: location, operation: 'set-clear' };\n}\n\n/** Registers once-only task cleanup and reports asynchronous disposal failures. */\nexport function registerTaskCleanup(signal: AbortSignal, cleanup: TaskCleanup): void {\n\tlet active = true;\n\tconst run = (): void => {\n\t\tif (!active) return;\n\t\tactive = false;\n\t\tsignal.removeEventListener('abort', run);\n\t\ttry {\n\t\t\tconst result = cleanup(signal.reason);\n\t\t\tif (isPromiseLike(result)) {\n\t\t\t\ttrackTaskCleanupPromise(\n\t\t\t\t\tsignal,\n\t\t\t\t\tPromise.resolve(result).catch((error) => {\n\t\t\t\t\t\treportTaskResourceError(signal, error);\n\t\t\t\t\t})\n\t\t\t\t);\n\t\t\t}\n\t\t} catch (error) {\n\t\t\treportTaskResourceError(signal, error);\n\t\t}\n\t};\n\tif (signal.aborted) run();\n\telse signal.addEventListener('abort', run, { once: true });\n}\n\nfunction trackTaskCleanupPromise(signal: AbortSignal, promise: Promise<void>): void {\n\tlet pending = taskCleanupPromises.get(signal);\n\tif (!pending) {\n\t\tpending = new Set();\n\t\ttaskCleanupPromises.set(signal, pending);\n\t}\n\tpending.add(promise);\n\tvoid promise.finally(() => {\n\t\tpending!.delete(promise);\n\t\tif (!pending!.size) taskCleanupPromises.delete(signal);\n\t});\n}\n\n/** Waits for registered task cleanup promises and preserves failures for aggregate reporting. */\nexport function drainTaskCleanupPromises(\n\tsignal: AbortSignal | undefined\n): Promise<void> | undefined {\n\tif (!signal) return undefined;\n\tconst pending = taskCleanupPromises.get(signal);\n\tif (!pending?.size) return undefined;\n\treturn Promise.all([...pending]).then(() => undefined);\n}\n\n/** Owns a disposable value while preserving the value and expression result. */\nexport function ownTaskResource<T>(\n\tsignal: AbortSignal,\n\tresource: T,\n\tdisposal?: TaskResourceDisposal | ((resource: T, reason?: unknown) => void | Promise<void>)\n): T {\n\tregisterTaskCleanup(signal, (reason) => disposeTaskResource(resource, disposal, reason));\n\treturn resource;\n}\n\n/** Compiler helper for idle callbacks owned by one task generation. */\nexport function taskIdleCallback(\n\tsignal: AbortSignal,\n\tcallback: (deadline: TaskIdleDeadline) => void,\n\toptions?: TaskIdleOptions\n): number {\n\tconst platform = globalThis as typeof globalThis & {\n\t\trequestIdleCallback(\n\t\t\tcallback: (deadline: TaskIdleDeadline) => void,\n\t\t\toptions?: TaskIdleOptions\n\t\t): number;\n\t\tcancelIdleCallback(handle: number): void;\n\t};\n\tlet handle = 0;\n\tconst cancel = () => platform.cancelIdleCallback(handle);\n\thandle = platform.requestIdleCallback((deadline) => {\n\t\tsignal.removeEventListener('abort', cancel);\n\t\tif (!signal.aborted) runTaskCallback(signal, 'idle-callback', () => callback(deadline));\n\t}, options);\n\tif (signal.aborted) cancel();\n\telse signal.addEventListener('abort', cancel, { once: true });\n\treturn handle;\n}\n\nfunction disposeTaskResource<T>(\n\tresource: T,\n\tdisposal:\n\t\t| TaskResourceDisposal\n\t\t| ((resource: T, reason?: unknown) => void | Promise<void>)\n\t\t| undefined,\n\treason: unknown\n): void | Promise<void> {\n\tif (typeof disposal === 'function') return disposal(resource, reason);\n\tif (disposal === 'call') {\n\t\tif (typeof resource === 'function') return resource();\n\t\treturn;\n\t}\n\tif (!resource || (typeof resource !== 'object' && typeof resource !== 'function')) return;\n\tif (disposal === 'cancel') return invokeResourceMethod(resource, 'cancel', reason);\n\tif (disposal) return invokeResourceMethod(resource, disposal);\n\tconst symbols = Symbol as SymbolConstructor & { asyncDispose?: symbol; dispose?: symbol };\n\tif (symbols.asyncDispose) {\n\t\tconst result = invokeResourceMethod(resource, symbols.asyncDispose);\n\t\tif (result !== undefined) return result;\n\t}\n\tif (symbols.dispose) return invokeResourceMethod(resource, symbols.dispose);\n}\n\nfunction invokeResourceMethod(\n\tresource: object,\n\tkey: PropertyKey,\n\t...args: unknown[]\n): void | Promise<void> | undefined {\n\tconst method = Reflect.get(resource, key) as unknown;\n\tif (typeof method === 'function') return method.apply(resource, args) as void | Promise<void>;\n}\n\nfunction reportTaskResourceError(signal: AbortSignal, error: unknown): void {\n\tconst instance = taskOwners.get(signal);\n\tif (instance) {\n\t\thandleComponentError(instance, createErrorReport(error, 'task', instance, 'resource-cleanup'));\n\t\treturn;\n\t}\n\tlogFrameworkEvent('error', 'core', 'task', 'task resource cleanup failed', error);\n}\n\n/** Compiler helpers for resources whose lifetime is owned by a task generation. */\nexport function taskTimeout<Args extends unknown[]>(\n\tsignal: AbortSignal,\n\thandler: (...args: Args) => void,\n\tdelay?: number,\n\t...args: Args\n): ReturnType<typeof setTimeout> {\n\tconst abort = () => clearTimeout(timeout);\n\tconst timeout = setTimeout(\n\t\t(...values: Args) => {\n\t\t\tsignal.removeEventListener('abort', abort);\n\t\t\tif (!signal.aborted) runTaskCallback(signal, 'timeout', () => handler(...values));\n\t\t},\n\t\tdelay,\n\t\t...args\n\t);\n\tif (signal.aborted) abort();\n\telse signal.addEventListener('abort', abort, { once: true });\n\treturn timeout;\n}\n\n/** Starts an interval whose timer is cleared automatically when the task signal aborts. */\nexport function taskInterval<Args extends unknown[]>(\n\tsignal: AbortSignal,\n\thandler: (...args: Args) => void,\n\tdelay?: number,\n\t...args: Args\n): ReturnType<typeof setInterval> {\n\tconst interval = setInterval(\n\t\t(...values: Args) => {\n\t\t\tif (!signal.aborted) runTaskCallback(signal, 'interval', () => handler(...values));\n\t\t},\n\t\tdelay,\n\t\t...args\n\t);\n\tif (signal.aborted) clearInterval(interval);\n\telse signal.addEventListener('abort', () => clearInterval(interval), { once: true });\n\treturn interval;\n}\n\n/** Requests an animation frame that is cancelled automatically with the owning task. */\nexport function taskAnimationFrame(signal: AbortSignal, handler: (time: number) => void): number {\n\tconst platform = globalThis as typeof globalThis & {\n\t\trequestAnimationFrame(callback: (time: number) => void): number;\n\t\tcancelAnimationFrame(id: number): void;\n\t};\n\tlet frame = 0;\n\tconst cancel = () => platform.cancelAnimationFrame(frame);\n\tframe = platform.requestAnimationFrame((time) => {\n\t\tsignal.removeEventListener('abort', cancel);\n\t\tif (!signal.aborted) runTaskCallback(signal, 'animation-frame', () => handler(time));\n\t});\n\tif (signal.aborted) cancel();\n\telse signal.addEventListener('abort', cancel, { once: true });\n\treturn frame;\n}\n\n/** Owns an observer instance and disconnects it when the task is cancelled. */\nexport function taskObserver<T extends { disconnect(): void }>(\n\tsignal: AbortSignal,\n\tobserver: T\n): T {\n\tregisterTaskCleanup(signal, () => observer.disconnect());\n\treturn observer;\n}\n\nfunction runTaskCallback(signal: AbortSignal, phase: string, callback: () => void): void {\n\ttry {\n\t\tcallback();\n\t} catch (error) {\n\t\tconst instance = taskOwners.get(signal);\n\t\tif (instance) handleComponentError(instance, createErrorReport(error, 'task', instance, phase));\n\t\telse reportTaskResourceError(signal, error);\n\t}\n}\n\n/** Runs fetch with the task signal combined with any caller-provided cancellation signal. */\nexport function taskFetch<T>(\n\tsignal: AbortSignal,\n\tfetcher: (input: unknown, init?: Record<string, unknown>) => T,\n\tinput: unknown,\n\tinit?: Record<string, unknown>\n): T {\n\tconst options = init ? { ...init } : {};\n\tconst existing = options.signal;\n\tconst combined = isAbortSignal(existing)\n\t\t? createDisposableAbortSignal(existing, signal)\n\t\t: undefined;\n\toptions.signal = combined?.signal ?? signal;\n\ttry {\n\t\tconst result = fetcher(input, options);\n\t\tif (combined && isPromiseLike(result)) {\n\t\t\tvoid Promise.resolve(result).finally(combined.dispose).catch(ignoreSettlement);\n\t\t} else combined?.dispose();\n\t\treturn result;\n\t} catch (error) {\n\t\tcombined?.dispose();\n\t\tthrow error;\n\t}\n}\n\nfunction ignoreSettlement(): void {}\n\n/**\n * Awaits a value while retaining task cancellation and Activity parking semantics.\n *\n * The source promise continues while its component scope is paused. Its authored continuation\n * remains parked until the scope resumes, and cancellation can still reject during that wait.\n */\nexport function taskAwait<T>(signal: AbortSignal, value: T | PromiseLike<T>): Promise<T> {\n\tif (signal.aborted) return Promise.reject(new TaskCancellation(signal.reason));\n\treturn new Promise<T>((resolve, reject) => {\n\t\tlet settled = false;\n\t\tlet releaseWaiter: (() => void) | undefined;\n\t\tconst abort = () => {\n\t\t\tif (settled) return;\n\t\t\tsettled = true;\n\t\t\treleaseWaiter?.();\n\t\t\treleaseWaiter = undefined;\n\t\t\tresumeTaskFrame(signal, () => reject(new TaskCancellation(signal.reason)));\n\t\t};\n\t\tsignal.addEventListener('abort', abort, { once: true });\n\t\tconst finish = (result: unknown, failed: boolean) => {\n\t\t\tif (settled) return;\n\t\t\tsettled = true;\n\t\t\tsignal.removeEventListener('abort', abort);\n\t\t\tresumeTaskFrame(signal, () => {\n\t\t\t\tif (failed) reject(result);\n\t\t\t\telse if (signal.aborted) reject(new TaskCancellation(signal.reason));\n\t\t\t\telse resolve(result as T);\n\t\t\t});\n\t\t};\n\t\tconst continueTask = (result: unknown, failed: boolean) => {\n\t\t\tif (settled) return;\n\t\t\tconst owner = taskOwners.get(signal);\n\t\t\tif (owner?.scope.paused) {\n\t\t\t\treleaseWaiter = scheduleEffectScopeResume(owner.scope, () => {\n\t\t\t\t\treleaseWaiter = undefined;\n\t\t\t\t\tfinish(result, failed);\n\t\t\t\t});\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tfinish(result, failed);\n\t\t};\n\t\tPromise.resolve(value).then(\n\t\t\t(result) => continueTask(result, false),\n\t\t\t(error: unknown) => continueTask(error, true)\n\t\t);\n\t});\n}\n"]}
1
+ {"version":3,"file":"resources.js","sourceRoot":"","sources":["../../src/tasks/resources.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n\tbatch,\n\tmutateReactiveCollection,\n\tunwrap,\n\tscheduleEffectScopeResume\n} from '@exactjs/reactive/framework/runtime';\n\nimport { createDisposableAbortSignal, isAbortSignal } from './signals.js';\nimport { isPromiseLike } from '../component/async-value.js';\n\nimport type {\n\tAnyComponentInstance,\n\tTaskCleanup,\n\tTaskIdleDeadline,\n\tTaskIdleOptions,\n\tTaskResourceDisposal\n} from '../component/contracts.js';\nimport type { ExactCollectionMutation } from '../component-contracts.js';\n\nimport { createErrorReport, handleComponentError } from '../component/errors.js';\nimport { TaskCancellation } from './cancellation.js';\nimport { resumeTaskFrame } from './frame-runtime.js';\n\nimport { logFrameworkEvent } from '../component/log.js';\n\nconst taskOwners = new WeakMap<AbortSignal, AnyComponentInstance>();\n\n/** Associates a task generation signal with its component owner. */\nexport function trackTaskOwner(signal: AbortSignal, owner: AnyComponentInstance): void {\n\ttaskOwners.set(signal, owner);\n}\nconst taskCleanupPromises = new WeakMap<AbortSignal, Set<Promise<void>>>();\nconst taskMutations = new WeakMap<AbortSignal, Array<() => void>>();\nconst taskCollectionMutations = new WeakMap<AbortSignal, ExactCollectionMutation[]>();\n\n/** Stages a compiler-generated mutation until its blocking task generation commits. */\nexport function stageTaskMutation(signal: AbortSignal, mutation: () => void): void {\n\tif (signal.aborted) return;\n\tlet staged = taskMutations.get(signal);\n\tif (!staged) {\n\t\tstaged = [];\n\t\ttaskMutations.set(signal, staged);\n\t\tsignal.addEventListener('abort', () => discardTaskMutations(signal), { once: true });\n\t}\n\tstaged.push(mutation);\n}\n\n/** Publishes staged mutations for a successful task generation as one reactive batch. */\nexport function publishTaskMutations(signal: AbortSignal): void {\n\tconst staged = taskMutations.get(signal);\n\tif (!staged) return;\n\ttaskMutations.delete(signal);\n\tbatch(() => {\n\t\tfor (const mutation of staged) mutation();\n\t});\n}\n\n/** Discards every unpublished mutation owned by a task generation. */\nexport function discardTaskMutations(signal: AbortSignal): void {\n\ttaskMutations.delete(signal);\n\ttaskCollectionMutations.delete(signal);\n}\n\n/**\n * Applies a server-task collection mutation and records the smallest ordered\n * response delta that can reproduce the successful change in the browser.\n */\nexport function mutateTaskCollection(\n\tsignal: AbortSignal,\n\ttarget: object,\n\tpath: readonly PropertyKey[],\n\tkind: 'map' | 'set',\n\tmethod: 'set' | 'add' | 'delete' | 'clear',\n\targs: unknown[] | (() => unknown[])\n): unknown {\n\tif (signal.aborted) return undefined;\n\tconst input = typeof args === 'function' ? args() : args;\n\tconst collection = readTaskCollection(target, path);\n\tconst raw = unwrap(collection);\n\tconst changed = collectionMutationChanges(raw, kind, method, input);\n\tconst result = mutateReactiveCollection(target, path, kind, method, input);\n\tif (changed) {\n\t\tlet mutations = taskCollectionMutations.get(signal);\n\t\tif (!mutations) {\n\t\t\tmutations = [];\n\t\t\ttaskCollectionMutations.set(signal, mutations);\n\t\t\tsignal.addEventListener('abort', () => discardTaskMutations(signal), { once: true });\n\t\t}\n\t\tmutations.push(collectionMutation(path, kind, method, input));\n\t}\n\treturn result;\n}\n\n/** Takes the ordered collection deltas produced by one successful task generation. */\nexport function takeTaskCollectionMutations(\n\tsignal: AbortSignal\n): readonly ExactCollectionMutation[] | undefined {\n\tconst mutations = taskCollectionMutations.get(signal);\n\ttaskCollectionMutations.delete(signal);\n\treturn mutations?.length ? mutations : undefined;\n}\n\nfunction readTaskCollection(target: object, path: readonly PropertyKey[]): unknown {\n\tlet value: unknown = target;\n\tfor (const segment of path) value = Reflect.get(value as object, segment);\n\treturn value;\n}\n\nfunction collectionMutationChanges(\n\tvalue: unknown,\n\tkind: 'map' | 'set',\n\tmethod: string,\n\targs: readonly unknown[]\n): boolean {\n\tif (kind === 'map' && value instanceof Map) {\n\t\tif (method === 'clear') return value.size > 0;\n\t\tif (method === 'delete') return value.has(unwrap(args[0]));\n\t\tconst key = unwrap(args[0]);\n\t\treturn !value.has(key) || !Object.is(value.get(key), unwrap(args[1]));\n\t}\n\tif (kind === 'set' && value instanceof Set) {\n\t\tif (method === 'clear') return value.size > 0;\n\t\tif (method === 'delete') return value.has(unwrap(args[0]));\n\t\treturn !value.has(unwrap(args[0]));\n\t}\n\treturn true;\n}\n\nfunction collectionMutation(\n\tpath: readonly PropertyKey[],\n\tkind: 'map' | 'set',\n\tmethod: string,\n\targs: readonly unknown[]\n): ExactCollectionMutation {\n\tconst location = path.map(String).join('.');\n\tif (kind === 'map') {\n\t\tif (method === 'set')\n\t\t\treturn { path: location, operation: 'map-set', key: unwrap(args[0]), value: unwrap(args[1]) };\n\t\tif (method === 'delete')\n\t\t\treturn { path: location, operation: 'map-delete', key: unwrap(args[0]) };\n\t\treturn { path: location, operation: 'map-clear' };\n\t}\n\tif (method === 'add') return { path: location, operation: 'set-add', value: unwrap(args[0]) };\n\tif (method === 'delete')\n\t\treturn { path: location, operation: 'set-delete', value: unwrap(args[0]) };\n\treturn { path: location, operation: 'set-clear' };\n}\n\n/** Registers once-only task cleanup and reports asynchronous disposal failures. */\nexport function registerTaskCleanup(signal: AbortSignal, cleanup: TaskCleanup): void {\n\tlet active = true;\n\tconst run = (): void => {\n\t\tif (!active) return;\n\t\tactive = false;\n\t\tsignal.removeEventListener('abort', run);\n\t\ttry {\n\t\t\tconst result = cleanup(signal.reason);\n\t\t\tif (isPromiseLike(result)) {\n\t\t\t\ttrackTaskCleanupPromise(\n\t\t\t\t\tsignal,\n\t\t\t\t\tPromise.resolve(result).catch((error) => {\n\t\t\t\t\t\treportTaskResourceError(signal, error);\n\t\t\t\t\t})\n\t\t\t\t);\n\t\t\t}\n\t\t} catch (error) {\n\t\t\treportTaskResourceError(signal, error);\n\t\t}\n\t};\n\tif (signal.aborted) run();\n\telse signal.addEventListener('abort', run, { once: true });\n}\n\nfunction trackTaskCleanupPromise(signal: AbortSignal, promise: Promise<void>): void {\n\tlet pending = taskCleanupPromises.get(signal);\n\tif (!pending) {\n\t\tpending = new Set();\n\t\ttaskCleanupPromises.set(signal, pending);\n\t}\n\tpending.add(promise);\n\tvoid promise.finally(() => {\n\t\tpending!.delete(promise);\n\t\tif (!pending!.size) taskCleanupPromises.delete(signal);\n\t});\n}\n\n/** Waits for registered task cleanup promises and preserves failures for aggregate reporting. */\nexport function drainTaskCleanupPromises(\n\tsignal: AbortSignal | undefined\n): Promise<void> | undefined {\n\tif (!signal) return undefined;\n\tconst pending = taskCleanupPromises.get(signal);\n\tif (!pending?.size) return undefined;\n\treturn Promise.all([...pending]).then(() => undefined);\n}\n\n/** Owns a disposable value while preserving the value and expression result. */\nexport function ownTaskResource<T>(\n\tsignal: AbortSignal,\n\tresource: T,\n\tdisposal?: TaskResourceDisposal | ((resource: T, reason?: unknown) => void | Promise<void>)\n): T {\n\tregisterTaskCleanup(signal, (reason) => disposeTaskResource(resource, disposal, reason));\n\treturn resource;\n}\n\n/** Compiler helper for idle callbacks owned by one task generation. */\nexport function taskIdleCallback(\n\tsignal: AbortSignal,\n\tcallback: (deadline: TaskIdleDeadline) => void,\n\toptions?: TaskIdleOptions\n): number {\n\tconst platform = globalThis as typeof globalThis & {\n\t\trequestIdleCallback(\n\t\t\tcallback: (deadline: TaskIdleDeadline) => void,\n\t\t\toptions?: TaskIdleOptions\n\t\t): number;\n\t\tcancelIdleCallback(handle: number): void;\n\t};\n\tlet handle = 0;\n\tconst cancel = () => platform.cancelIdleCallback(handle);\n\thandle = platform.requestIdleCallback((deadline) => {\n\t\tsignal.removeEventListener('abort', cancel);\n\t\tif (!signal.aborted) runTaskCallback(signal, 'idle-callback', () => callback(deadline));\n\t}, options);\n\tif (signal.aborted) cancel();\n\telse signal.addEventListener('abort', cancel, { once: true });\n\treturn handle;\n}\n\nfunction disposeTaskResource<T>(\n\tresource: T,\n\tdisposal:\n\t\t| TaskResourceDisposal\n\t\t| ((resource: T, reason?: unknown) => void | Promise<void>)\n\t\t| undefined,\n\treason: unknown\n): void | Promise<void> {\n\tif (typeof disposal === 'function') return disposal(resource, reason);\n\tif (disposal === 'call') {\n\t\tif (typeof resource === 'function') return resource();\n\t\treturn;\n\t}\n\tif (!resource || (typeof resource !== 'object' && typeof resource !== 'function')) return;\n\tif (disposal === 'cancel') return invokeResourceMethod(resource, 'cancel', reason);\n\tif (disposal) return invokeResourceMethod(resource, disposal);\n\tconst symbols = Symbol as SymbolConstructor & { asyncDispose?: symbol; dispose?: symbol };\n\tif (symbols.asyncDispose) {\n\t\tconst result = invokeResourceMethod(resource, symbols.asyncDispose);\n\t\tif (result !== undefined) return result;\n\t}\n\tif (symbols.dispose) return invokeResourceMethod(resource, symbols.dispose);\n}\n\nfunction invokeResourceMethod(\n\tresource: object,\n\tkey: PropertyKey,\n\t...args: unknown[]\n): void | Promise<void> | undefined {\n\tconst method = Reflect.get(resource, key) as unknown;\n\tif (typeof method === 'function') return method.apply(resource, args) as void | Promise<void>;\n}\n\nfunction reportTaskResourceError(signal: AbortSignal, error: unknown): void {\n\tconst instance = taskOwners.get(signal);\n\tif (instance) {\n\t\thandleComponentError(instance, createErrorReport(error, 'task', instance, 'resource-cleanup'));\n\t\treturn;\n\t}\n\tlogFrameworkEvent('error', 'core', 'task', 'task resource cleanup failed', error);\n}\n\n/** Compiler helpers for resources whose lifetime is owned by a task generation. */\nexport function taskTimeout<Args extends unknown[]>(\n\tsignal: AbortSignal,\n\thandler: (...args: Args) => void,\n\tdelay?: number,\n\t...args: Args\n): ReturnType<typeof setTimeout> {\n\tconst abort = () => clearTimeout(timeout);\n\tconst timeout = setTimeout(\n\t\t(...values: Args) => {\n\t\t\tsignal.removeEventListener('abort', abort);\n\t\t\tif (!signal.aborted) runTaskCallback(signal, 'timeout', () => handler(...values));\n\t\t},\n\t\tdelay,\n\t\t...args\n\t);\n\tif (signal.aborted) abort();\n\telse signal.addEventListener('abort', abort, { once: true });\n\treturn timeout;\n}\n\n/** Starts an interval whose timer is cleared automatically when the task signal aborts. */\nexport function taskInterval<Args extends unknown[]>(\n\tsignal: AbortSignal,\n\thandler: (...args: Args) => void,\n\tdelay?: number,\n\t...args: Args\n): ReturnType<typeof setInterval> {\n\tconst interval = setInterval(\n\t\t(...values: Args) => {\n\t\t\tif (!signal.aborted) runTaskCallback(signal, 'interval', () => handler(...values));\n\t\t},\n\t\tdelay,\n\t\t...args\n\t);\n\tif (signal.aborted) clearInterval(interval);\n\telse signal.addEventListener('abort', () => clearInterval(interval), { once: true });\n\treturn interval;\n}\n\n/** Requests an animation frame that is cancelled automatically with the owning task. */\nexport function taskAnimationFrame(signal: AbortSignal, handler: (time: number) => void): number {\n\tconst platform = globalThis as typeof globalThis & {\n\t\trequestAnimationFrame(callback: (time: number) => void): number;\n\t\tcancelAnimationFrame(id: number): void;\n\t};\n\tlet frame = 0;\n\tconst cancel = () => platform.cancelAnimationFrame(frame);\n\tframe = platform.requestAnimationFrame((time) => {\n\t\tsignal.removeEventListener('abort', cancel);\n\t\tif (!signal.aborted) runTaskCallback(signal, 'animation-frame', () => handler(time));\n\t});\n\tif (signal.aborted) cancel();\n\telse signal.addEventListener('abort', cancel, { once: true });\n\treturn frame;\n}\n\n/** Owns an observer instance and disconnects it when the task is cancelled. */\nexport function taskObserver<T extends { disconnect(): void }>(\n\tsignal: AbortSignal,\n\tobserver: T\n): T {\n\tregisterTaskCleanup(signal, () => observer.disconnect());\n\treturn observer;\n}\n\nfunction runTaskCallback(signal: AbortSignal, phase: string, callback: () => void): void {\n\ttry {\n\t\tcallback();\n\t} catch (error) {\n\t\tconst instance = taskOwners.get(signal);\n\t\tif (instance) handleComponentError(instance, createErrorReport(error, 'task', instance, phase));\n\t\telse reportTaskResourceError(signal, error);\n\t}\n}\n\n/** Runs fetch with the task signal combined with any caller-provided cancellation signal. */\nexport function taskFetch<T>(\n\tsignal: AbortSignal,\n\tfetcher: (input: unknown, init?: Record<string, unknown>) => T,\n\tinput: unknown,\n\tinit?: Record<string, unknown>\n): T {\n\tconst options = init ? { ...init } : {};\n\tconst existing = options.signal;\n\tconst combined = isAbortSignal(existing)\n\t\t? createDisposableAbortSignal(existing, signal)\n\t\t: undefined;\n\toptions.signal = combined?.signal ?? signal;\n\ttry {\n\t\tconst result = fetcher(input, options);\n\t\tif (combined && isPromiseLike(result)) {\n\t\t\tvoid Promise.resolve(result).finally(combined.dispose).catch(ignoreSettlement);\n\t\t} else combined?.dispose();\n\t\treturn result;\n\t} catch (error) {\n\t\tcombined?.dispose();\n\t\tthrow error;\n\t}\n}\n\nfunction ignoreSettlement(): void {}\n\n/**\n * Awaits a value while retaining task cancellation and Activity parking semantics.\n *\n * The source promise continues while its component scope is paused. Its authored continuation\n * remains parked until the scope resumes, and cancellation can still reject during that wait.\n */\nexport function taskAwait<T>(signal: AbortSignal, value: T | PromiseLike<T>): Promise<T> {\n\tif (signal.aborted) {\n\t\t// The source expression has already executed and still owns a possible rejection.\n\t\tvoid Promise.resolve(value).catch(ignoreSettlement);\n\t\treturn Promise.reject(new TaskCancellation(signal.reason));\n\t}\n\treturn new Promise<T>((resolve, reject) => {\n\t\tlet settled = false;\n\t\tlet releaseWaiter: (() => void) | undefined;\n\t\tconst abort = () => {\n\t\t\tif (settled) return;\n\t\t\tsettled = true;\n\t\t\treleaseWaiter?.();\n\t\t\treleaseWaiter = undefined;\n\t\t\tresumeTaskFrame(signal, () => reject(new TaskCancellation(signal.reason)));\n\t\t};\n\t\tsignal.addEventListener('abort', abort, { once: true });\n\t\tconst finish = (result: unknown, failed: boolean) => {\n\t\t\tif (settled) return;\n\t\t\tsettled = true;\n\t\t\tsignal.removeEventListener('abort', abort);\n\t\t\tresumeTaskFrame(signal, () => {\n\t\t\t\tif (failed) reject(result);\n\t\t\t\telse if (signal.aborted) reject(new TaskCancellation(signal.reason));\n\t\t\t\telse resolve(result as T);\n\t\t\t});\n\t\t};\n\t\tconst continueTask = (result: unknown, failed: boolean) => {\n\t\t\tif (settled) return;\n\t\t\tconst owner = taskOwners.get(signal);\n\t\t\tif (owner?.scope.active && owner.scope.paused) {\n\t\t\t\treleaseWaiter = scheduleEffectScopeResume(owner.scope, () => {\n\t\t\t\t\treleaseWaiter = undefined;\n\t\t\t\t\tcontinueTask(result, failed);\n\t\t\t\t});\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tfinish(result, failed);\n\t\t};\n\t\tPromise.resolve(value).then(\n\t\t\t(result) => continueTask(result, false),\n\t\t\t(error: unknown) => continueTask(error, true)\n\t\t);\n\t});\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"scheduled-reactions.d.ts","sourceRoot":"","sources":["../../src/tasks/scheduled-reactions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,qCAAqC,CAAC;AAEhF,OAAO,EAAuB,KAAK,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAwBjF,sFAAsF;AACtF,wBAAgB,6BAA6B,CAAC,MAAM,EAAE,eAAe,GAAG,oBAAoB,CAmC3F"}
1
+ {"version":3,"file":"scheduled-reactions.d.ts","sourceRoot":"","sources":["../../src/tasks/scheduled-reactions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,qCAAqC,CAAC;AAEhF,OAAO,EAAuB,KAAK,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAwBjF,sFAAsF;AACtF,wBAAgB,6BAA6B,CAAC,MAAM,EAAE,eAAe,GAAG,oBAAoB,CA2C3F"}
@@ -35,9 +35,16 @@ export function acquireScheduledReactionBatch(parent) {
35
35
  run(work) {
36
36
  if (released)
37
37
  return;
38
+ if (batch.signal.aborted) {
39
+ // Invalidation observes already committed state, and the live observer may have
40
+ // coalesced newer writes. Retire its cancelled task lease without discarding the
41
+ // observation or resuming the stale producer. Reaction scope disposal is owned
42
+ // by the scheduler; genuine observer failures still propagate normally.
43
+ release(new TaskCancellation(batch.signal.reason), true);
44
+ withTaskFrameRecord(undefined, work);
45
+ return;
46
+ }
38
47
  try {
39
- if (batch.signal.aborted)
40
- throw new TaskCancellation(batch.signal.reason);
41
48
  withTaskFrameRecord(batch.frame, work);
42
49
  }
43
50
  catch (error) {
@@ -1 +1 @@
1
- {"version":3,"file":"scheduled-reactions.js","sourceRoot":"","sources":["../../src/tasks/scheduled-reactions.ts"],"names":[],"mappings":"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","sourcesContent":["import type { ScheduledWorkContext } from '@exactjs/reactive/framework/runtime';\nimport { TaskCancellation } from './cancellation.js';\nimport { taskFrameTokenBrand, type TaskFrameRecord } from './frame-contracts.js';\nimport { taskFrameInspectionAttached } from './frame-inspection-capability.js';\nimport {\n\tallocateTaskFrameId,\n\tattachTaskFrameSettlement,\n\tcurrentTaskFrameRecord,\n\texecuteTaskFrame,\n\twithTaskFrameRecord\n} from './frame-runtime.js';\nimport { settleTaskFrameChildren } from './frame-settlement.js';\n\ntype ScheduledReactionBatch = {\n\treadonly frame: TaskFrameRecord;\n\treadonly signal: AbortSignal;\n\treadonly resolve: () => void;\n\treadonly reject: (error: unknown) => void;\n\tpending: number;\n\tfailed: boolean;\n\tfailure?: unknown;\n\tclosed: boolean;\n};\n\nconst scheduledReactionBatches = new WeakMap<TaskFrameRecord, ScheduledReactionBatch>();\n\n/** Acquires one lease on the consequence frame shared by a task invalidation wave. */\nexport function acquireScheduledReactionBatch(parent: TaskFrameRecord): ScheduledWorkContext {\n\tlet batch = scheduledReactionBatches.get(parent);\n\tif (!batch || batch.closed) {\n\t\tbatch = createScheduledReactionBatch(parent);\n\t\tscheduledReactionBatches.set(parent, batch);\n\t}\n\tbatch.pending++;\n\tlet released = false;\n\tconst release = (error?: unknown, failed = false) => {\n\t\tif (released) return;\n\t\treleased = true;\n\t\tif (failed && !batch!.failed) {\n\t\t\tbatch!.failed = true;\n\t\t\tbatch!.failure = error;\n\t\t}\n\t\tif (--batch!.pending !== 0) return;\n\t\tbatch!.closed = true;\n\t\tif (scheduledReactionBatches.get(parent) === batch) scheduledReactionBatches.delete(parent);\n\t\tif (batch!.failed) batch!.reject(batch!.failure);\n\t\telse batch!.resolve();\n\t};\n\treturn {\n\t\trun(work) {\n\t\t\tif (released) return;\n\t\t\ttry {\n\t\t\t\tif (batch!.signal.aborted) throw new TaskCancellation(batch!.signal.reason);\n\t\t\t\twithTaskFrameRecord(batch!.frame, work);\n\t\t\t} catch (error) {\n\t\t\t\trelease(error, true);\n\t\t\t\tthrow error;\n\t\t\t}\n\t\t\trelease();\n\t\t},\n\t\tcancel: release\n\t};\n}\n\nfunction createScheduledReactionBatch(parent: TaskFrameRecord): ScheduledReactionBatch {\n\treturn taskFrameInspectionAttached(parent)\n\t\t? createInspectedScheduledReactionBatch(parent)\n\t\t: createInlineScheduledReactionBatch(parent);\n}\n\n/** Attaches one completion lease without a complete public task frame. */\nfunction createInlineScheduledReactionBatch(parent: TaskFrameRecord): ScheduledReactionBatch {\n\tlet controller: AbortController | undefined;\n\tlet acceptCompletion!: () => void;\n\tlet rejectCompletion!: (error: unknown) => void;\n\tconst completion = new Promise<void>((accept, fail) => {\n\t\tacceptCompletion = accept;\n\t\trejectCompletion = fail;\n\t});\n\tconst frame: TaskFrameRecord = {\n\t\t[taskFrameTokenBrand]: true,\n\t\tid: allocateTaskFrameId(),\n\t\towner: parent.owner,\n\t\tparent,\n\t\tget controller() {\n\t\t\tif (!controller) {\n\t\t\t\tcontroller = new AbortController();\n\t\t\t\tlinkAbort(parent.controller.signal, controller);\n\t\t\t}\n\t\t\treturn controller;\n\t\t},\n\t\tkind: 'reactive',\n\t\tlabel: 'reactive consequences',\n\t\tactivation: parent.activation,\n\t\tgeneration: parent.generation,\n\t\tplacement: parent.placement,\n\t\tconcurrency: parent.concurrency,\n\t\tpriority: parent.priority,\n\t\treadiness: parent.readiness,\n\t\tstartedAt: monotonicTimestamp(),\n\t\tproducerOpen: true,\n\t\tsettled: false\n\t};\n\tattachTaskFrameSettlement(parent, completion);\n\treturn {\n\t\tframe,\n\t\tsignal: parent.controller.signal,\n\t\tresolve() {\n\t\t\tframe.producerOpen = false;\n\t\t\tvoid settleTaskFrameChildren(frame).then(\n\t\t\t\t() => finishInlineFrame(frame, acceptCompletion),\n\t\t\t\t(error) => finishInlineFrame(frame, () => rejectCompletion(error))\n\t\t\t);\n\t\t},\n\t\treject(error) {\n\t\t\tframe.producerOpen = false;\n\t\t\tcontroller?.abort(error);\n\t\t\tconst finish = () => finishInlineFrame(frame, () => rejectCompletion(error));\n\t\t\tvoid settleTaskFrameChildren(frame).then(finish, finish);\n\t\t},\n\t\tpending: 0,\n\t\tfailed: false,\n\t\tclosed: false\n\t};\n}\n\nfunction finishInlineFrame(frame: TaskFrameRecord, settle: () => void): void {\n\tframe.settled = true;\n\tsettle();\n}\n\n/** Retains the complete consequence projection while DevTools inspection is attached. */\nfunction createInspectedScheduledReactionBatch(parent: TaskFrameRecord): ScheduledReactionBatch {\n\tlet resolve!: () => void;\n\tlet reject!: (error: unknown) => void;\n\tconst completion = new Promise<void>((accept, fail) => {\n\t\tresolve = accept;\n\t\treject = fail;\n\t});\n\tlet frame!: TaskFrameRecord;\n\tconst execution = executeTaskFrame(\n\t\t{\n\t\t\tparent,\n\t\t\towner: parent.owner,\n\t\t\tactivation: parent.activation,\n\t\t\tkind: 'reactive',\n\t\t\tlabel: 'reactive consequences',\n\t\t\tpublicContext: false\n\t\t},\n\t\t() => {\n\t\t\tframe = currentTaskFrameRecord()!;\n\t\t\treturn completion;\n\t\t}\n\t);\n\tvoid execution.catch(() => undefined);\n\treturn {\n\t\tframe,\n\t\tsignal: frame.controller.signal,\n\t\tresolve,\n\t\treject,\n\t\tpending: 0,\n\t\tfailed: false,\n\t\tclosed: false\n\t};\n}\n\nfunction linkAbort(signal: AbortSignal, target: AbortController): void {\n\tif (signal.aborted) target.abort(signal.reason);\n\telse signal.addEventListener('abort', () => target.abort(signal.reason), { once: true });\n}\n\nfunction monotonicTimestamp(): number {\n\treturn globalThis.performance?.now() ?? Date.now();\n}\n"]}
1
+ {"version":3,"file":"scheduled-reactions.js","sourceRoot":"","sources":["../../src/tasks/scheduled-reactions.ts"],"names":[],"mappings":"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","sourcesContent":["import type { ScheduledWorkContext } from '@exactjs/reactive/framework/runtime';\nimport { TaskCancellation } from './cancellation.js';\nimport { taskFrameTokenBrand, type TaskFrameRecord } from './frame-contracts.js';\nimport { taskFrameInspectionAttached } from './frame-inspection-capability.js';\nimport {\n\tallocateTaskFrameId,\n\tattachTaskFrameSettlement,\n\tcurrentTaskFrameRecord,\n\texecuteTaskFrame,\n\twithTaskFrameRecord\n} from './frame-runtime.js';\nimport { settleTaskFrameChildren } from './frame-settlement.js';\n\ntype ScheduledReactionBatch = {\n\treadonly frame: TaskFrameRecord;\n\treadonly signal: AbortSignal;\n\treadonly resolve: () => void;\n\treadonly reject: (error: unknown) => void;\n\tpending: number;\n\tfailed: boolean;\n\tfailure?: unknown;\n\tclosed: boolean;\n};\n\nconst scheduledReactionBatches = new WeakMap<TaskFrameRecord, ScheduledReactionBatch>();\n\n/** Acquires one lease on the consequence frame shared by a task invalidation wave. */\nexport function acquireScheduledReactionBatch(parent: TaskFrameRecord): ScheduledWorkContext {\n\tlet batch = scheduledReactionBatches.get(parent);\n\tif (!batch || batch.closed) {\n\t\tbatch = createScheduledReactionBatch(parent);\n\t\tscheduledReactionBatches.set(parent, batch);\n\t}\n\tbatch.pending++;\n\tlet released = false;\n\tconst release = (error?: unknown, failed = false) => {\n\t\tif (released) return;\n\t\treleased = true;\n\t\tif (failed && !batch!.failed) {\n\t\t\tbatch!.failed = true;\n\t\t\tbatch!.failure = error;\n\t\t}\n\t\tif (--batch!.pending !== 0) return;\n\t\tbatch!.closed = true;\n\t\tif (scheduledReactionBatches.get(parent) === batch) scheduledReactionBatches.delete(parent);\n\t\tif (batch!.failed) batch!.reject(batch!.failure);\n\t\telse batch!.resolve();\n\t};\n\treturn {\n\t\trun(work) {\n\t\t\tif (released) return;\n\t\t\tif (batch!.signal.aborted) {\n\t\t\t\t// Invalidation observes already committed state, and the live observer may have\n\t\t\t\t// coalesced newer writes. Retire its cancelled task lease without discarding the\n\t\t\t\t// observation or resuming the stale producer. Reaction scope disposal is owned\n\t\t\t\t// by the scheduler; genuine observer failures still propagate normally.\n\t\t\t\trelease(new TaskCancellation(batch!.signal.reason), true);\n\t\t\t\twithTaskFrameRecord(undefined, work);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\ttry {\n\t\t\t\twithTaskFrameRecord(batch!.frame, work);\n\t\t\t} catch (error) {\n\t\t\t\trelease(error, true);\n\t\t\t\tthrow error;\n\t\t\t}\n\t\t\trelease();\n\t\t},\n\t\tcancel: release\n\t};\n}\n\nfunction createScheduledReactionBatch(parent: TaskFrameRecord): ScheduledReactionBatch {\n\treturn taskFrameInspectionAttached(parent)\n\t\t? createInspectedScheduledReactionBatch(parent)\n\t\t: createInlineScheduledReactionBatch(parent);\n}\n\n/** Attaches one completion lease without a complete public task frame. */\nfunction createInlineScheduledReactionBatch(parent: TaskFrameRecord): ScheduledReactionBatch {\n\tlet controller: AbortController | undefined;\n\tlet acceptCompletion!: () => void;\n\tlet rejectCompletion!: (error: unknown) => void;\n\tconst completion = new Promise<void>((accept, fail) => {\n\t\tacceptCompletion = accept;\n\t\trejectCompletion = fail;\n\t});\n\tconst frame: TaskFrameRecord = {\n\t\t[taskFrameTokenBrand]: true,\n\t\tid: allocateTaskFrameId(),\n\t\towner: parent.owner,\n\t\tparent,\n\t\tget controller() {\n\t\t\tif (!controller) {\n\t\t\t\tcontroller = new AbortController();\n\t\t\t\tlinkAbort(parent.controller.signal, controller);\n\t\t\t}\n\t\t\treturn controller;\n\t\t},\n\t\tkind: 'reactive',\n\t\tlabel: 'reactive consequences',\n\t\tactivation: parent.activation,\n\t\tgeneration: parent.generation,\n\t\tplacement: parent.placement,\n\t\tconcurrency: parent.concurrency,\n\t\tpriority: parent.priority,\n\t\treadiness: parent.readiness,\n\t\tstartedAt: monotonicTimestamp(),\n\t\tproducerOpen: true,\n\t\tsettled: false\n\t};\n\tattachTaskFrameSettlement(parent, completion);\n\treturn {\n\t\tframe,\n\t\tsignal: parent.controller.signal,\n\t\tresolve() {\n\t\t\tframe.producerOpen = false;\n\t\t\tvoid settleTaskFrameChildren(frame).then(\n\t\t\t\t() => finishInlineFrame(frame, acceptCompletion),\n\t\t\t\t(error) => finishInlineFrame(frame, () => rejectCompletion(error))\n\t\t\t);\n\t\t},\n\t\treject(error) {\n\t\t\tframe.producerOpen = false;\n\t\t\tcontroller?.abort(error);\n\t\t\tconst finish = () => finishInlineFrame(frame, () => rejectCompletion(error));\n\t\t\tvoid settleTaskFrameChildren(frame).then(finish, finish);\n\t\t},\n\t\tpending: 0,\n\t\tfailed: false,\n\t\tclosed: false\n\t};\n}\n\nfunction finishInlineFrame(frame: TaskFrameRecord, settle: () => void): void {\n\tframe.settled = true;\n\tsettle();\n}\n\n/** Retains the complete consequence projection while DevTools inspection is attached. */\nfunction createInspectedScheduledReactionBatch(parent: TaskFrameRecord): ScheduledReactionBatch {\n\tlet resolve!: () => void;\n\tlet reject!: (error: unknown) => void;\n\tconst completion = new Promise<void>((accept, fail) => {\n\t\tresolve = accept;\n\t\treject = fail;\n\t});\n\tlet frame!: TaskFrameRecord;\n\tconst execution = executeTaskFrame(\n\t\t{\n\t\t\tparent,\n\t\t\towner: parent.owner,\n\t\t\tactivation: parent.activation,\n\t\t\tkind: 'reactive',\n\t\t\tlabel: 'reactive consequences',\n\t\t\tpublicContext: false\n\t\t},\n\t\t() => {\n\t\t\tframe = currentTaskFrameRecord()!;\n\t\t\treturn completion;\n\t\t}\n\t);\n\tvoid execution.catch(() => undefined);\n\treturn {\n\t\tframe,\n\t\tsignal: frame.controller.signal,\n\t\tresolve,\n\t\treject,\n\t\tpending: 0,\n\t\tfailed: false,\n\t\tclosed: false\n\t};\n}\n\nfunction linkAbort(signal: AbortSignal, target: AbortController): void {\n\tif (signal.aborted) target.abort(signal.reason);\n\telse signal.addEventListener('abort', () => target.abort(signal.reason), { once: true });\n}\n\nfunction monotonicTimestamp(): number {\n\treturn globalThis.performance?.now() ?? Date.now();\n}\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@exactjs/core",
3
- "version": "0.6.0",
3
+ "version": "0.6.2",
4
4
  "type": "module",
5
5
  "files": [
6
6
  "AGENTS.md",
@@ -308,7 +308,7 @@
308
308
  "ErrorBoundary"
309
309
  ],
310
310
  "dependencies": {
311
- "@exactjs/devtools-protocol": "^0.5.0",
311
+ "@exactjs/devtools-protocol": "^0.5.0 || ^0.6.0",
312
312
  "@exactjs/reactive": "^0.6.0"
313
313
  },
314
314
  "scripts": {