apprun 3.38.0 → 3.38.1

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 (56) hide show
  1. package/.claude/settings.local.json +18 -0
  2. package/.docs/done/2026/07/13/explicit-pretty-links.md +32 -0
  3. package/.docs/done/2026/07/13/first-render-dom-attributes.md +18 -0
  4. package/.docs/plans/2026/07/13/plan-explicit-pretty-links.md +119 -0
  5. package/.docs/plans/2026/07/13/plan-first-render-dom-attributes.md +66 -0
  6. package/.docs/plans/2026/07/13/plan-play-typescript-runtime.md +77 -0
  7. package/.docs/plans/2026/07/13/plan-release-3-38-1-docs.md +74 -0
  8. package/.docs/reqs/2026/07/13/req-explicit-pretty-links.md +46 -0
  9. package/.docs/reqs/2026/07/13/req-first-render-dom-attributes.md +31 -0
  10. package/.docs/reqs/2026/07/13/req-play-typescript-runtime.md +29 -0
  11. package/.docs/reqs/2026/07/13/req-release-3-38-1-docs.md +34 -0
  12. package/.playwright-mcp/console-2026-06-24T18-37-47-881Z.log +17 -0
  13. package/CHANGELOG.md +8 -1
  14. package/README.md +3 -2
  15. package/WHATSNEW.md +26 -6
  16. package/apprun.d.ts +4 -1
  17. package/cli/app.js +7 -0
  18. package/dist/apprun-code.js +1 -1
  19. package/dist/apprun-code.js.map +1 -1
  20. package/dist/apprun-dev-tools.js +1 -1
  21. package/dist/apprun-dev-tools.js.map +1 -1
  22. package/dist/apprun-html.esm.js +3 -3
  23. package/dist/apprun-html.esm.js.map +1 -1
  24. package/dist/apprun-html.js +1 -1
  25. package/dist/apprun-html.js.map +1 -1
  26. package/dist/apprun-play-html.esm.js +2 -2
  27. package/dist/apprun-play-html.esm.js.map +1 -1
  28. package/dist/apprun-play.js +1 -1
  29. package/dist/apprun-play.js.map +1 -1
  30. package/dist/apprun.esm.js +1 -1
  31. package/dist/apprun.esm.js.map +1 -1
  32. package/dist/apprun.js +1 -1
  33. package/dist/apprun.js.map +1 -1
  34. package/dist/createState.js.map +1 -1
  35. package/esm/apprun-code.js +15 -3
  36. package/esm/apprun-code.js.map +1 -1
  37. package/esm/apprun-play.js +8 -2
  38. package/esm/apprun-play.js.map +1 -1
  39. package/esm/apprun.js +16 -8
  40. package/esm/apprun.js.map +1 -1
  41. package/esm/router.js +3 -2
  42. package/esm/router.js.map +1 -1
  43. package/esm/types.js +1 -0
  44. package/esm/types.js.map +1 -1
  45. package/esm/vdom-my-prop-attr.js +5 -11
  46. package/esm/vdom-my-prop-attr.js.map +1 -1
  47. package/jsx-runtime.js +1 -1
  48. package/jsx-runtime.js.map +1 -1
  49. package/package.json +1 -1
  50. package/src/apprun-code.tsx +15 -3
  51. package/src/apprun-play.tsx +8 -2
  52. package/src/apprun.ts +16 -8
  53. package/src/router.ts +3 -2
  54. package/src/types.ts +3 -0
  55. package/src/vdom-my-prop-attr.ts +5 -11
  56. package/error.log +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"dist/createState.js","mappings":"CAAA,SAA2CA,EAAMC,GAC1B,iBAAZC,SAA0C,iBAAXC,OACxCA,OAAOD,QAAUD,IACQ,mBAAXG,QAAyBA,OAAOC,IAC9CD,OAAO,GAAIH,GACe,iBAAZC,QACdA,QAAgB,OAAID,IAEpBD,EAAa,OAAIC,GAClB,CATD,CASGK,MAAM,I,mBCRT,IAAIC,EAAsB,CCA1BA,EAAwB,CAACL,EAASM,KACjC,IAAI,IAAIC,KAAOD,EACXD,EAAoBG,EAAEF,EAAYC,KAASF,EAAoBG,EAAER,EAASO,IAC5EE,OAAOC,eAAeV,EAASO,EAAK,CAAEI,YAAY,EAAMC,IAAKN,EAAWC,IAE1E,ECNDF,EAAwB,CAACQ,EAAKC,IAAUL,OAAOM,UAAUC,eAAeC,KAAKJ,EAAKC,GCClFT,EAAyBL,IACH,oBAAXkB,QAA0BA,OAAOC,aAC1CV,OAAOC,eAAeV,EAASkB,OAAOC,YAAa,CAAEC,MAAO,WAE7DX,OAAOC,eAAeV,EAAS,aAAc,CAAEoB,OAAO,GAAO,G,uCCJ9D,IAAIC,EAAUH,OAAOI,IAAI,iBACrBC,EAAYL,OAAOI,IAAI,mBACvBE,EAAcN,OAAOI,IAAI,eAkC7B,SAASG,EAAIC,KAAUC,GAMrB,MAAM,IAAIC,MACR,8BAA8BF,2CAElC,CAGA,IAAIG,EAAiBpB,OAAOoB,eAC5B,SAASC,EAAQV,GACf,QAASA,KAAWA,EAAMI,EAC5B,CACA,SAASO,EAAYX,GACnB,QAAKA,IAEEY,EAAcZ,IAAUa,MAAMC,QAAQd,MAAYA,EAAMG,MAAgBH,EAAMe,cAAcZ,IAAca,EAAMhB,IAAUiB,EAAMjB,GACzI,CACA,IAAIkB,EAAmB7B,OAAOM,UAAUoB,YAAYI,WACpD,SAASP,EAAcZ,GACrB,IAAKA,GAA0B,iBAAVA,EACnB,OAAO,EACT,MAAMoB,EAAQX,EAAeT,GAC7B,GAAc,OAAVoB,EACF,OAAO,EAET,MAAMC,EAAOhC,OAAOO,eAAeC,KAAKuB,EAAO,gBAAkBA,EAAML,YACvE,OAAIM,IAAShC,QAES,mBAARgC,GAAsBC,SAASH,SAAStB,KAAKwB,KAAUH,CACvE,CAMA,SAASK,EAAK9B,EAAK+B,GACQ,IAArBC,EAAYhC,GACdiC,QAAQC,QAAQlC,GAAKmC,SAASzC,IAC5BqC,EAAKrC,EAAKM,EAAIN,GAAMM,EAAI,IAG1BA,EAAImC,SAAQ,CAACC,EAAOC,IAAUN,EAAKM,EAAOD,EAAOpC,IAErD,CACA,SAASgC,EAAYM,GACnB,MAAMC,EAAQD,EAAM3B,GACpB,OAAO4B,EAAQA,EAAMC,MAAQpB,MAAMC,QAAQiB,GAAS,EAAgBf,EAAMe,GAAS,EAAcd,EAAMc,GAAS,EAAc,CAChI,CACA,SAASG,EAAIH,EAAOrC,GAClB,OAA8B,IAAvB+B,EAAYM,GAAyBA,EAAMG,IAAIxC,GAAQL,OAAOM,UAAUC,eAAeC,KAAKkC,EAAOrC,EAC5G,CAIA,SAASyC,EAAIJ,EAAOK,EAAgBpC,GAClC,MAAMqC,EAAIZ,EAAYM,GACZ,IAANM,EACFN,EAAMI,IAAIC,EAAgBpC,GACb,IAANqC,EACPN,EAAMO,IAAItC,GAEV+B,EAAMK,GAAkBpC,CAC5B,CAQA,SAASgB,EAAMuB,GACb,OAAOA,aAAkBC,GAC3B,CACA,SAASvB,EAAMsB,GACb,OAAOA,aAAkBE,GAC3B,CACA,SAASC,EAAOV,GACd,OAAOA,EAAMW,OAASX,EAAMY,KAC9B,CACA,SAASC,EAAYC,EAAMC,GACzB,GAAI/B,EAAM8B,GACR,OAAO,IAAIN,IAAIM,GAEjB,GAAI7B,EAAM6B,GACR,OAAO,IAAIL,IAAIK,GAEjB,GAAIjC,MAAMC,QAAQgC,GAChB,OAAOjC,MAAMlB,UAAUqD,MAAMnD,KAAKiD,GACpC,MAAMG,EAAUrC,EAAckC,GAC9B,IAAe,IAAXC,GAA8B,eAAXA,IAA4BE,EAAS,CAC1D,MAAMC,EAAc7D,OAAO8D,0BAA0BL,UAC9CI,EAAY9C,GACnB,IAAIgD,EAAO1B,QAAQC,QAAQuB,GAC3B,IAAK,IAAIG,EAAI,EAAGA,EAAID,EAAKE,OAAQD,IAAK,CACpC,MAAMlE,EAAMiE,EAAKC,GACXE,EAAOL,EAAY/D,IACH,IAAlBoE,EAAKC,WACPD,EAAKC,UAAW,EAChBD,EAAKE,cAAe,IAElBF,EAAK/D,KAAO+D,EAAKpB,OACnBe,EAAY/D,GAAO,CACjBsE,cAAc,EACdD,UAAU,EAEVjE,WAAYgE,EAAKhE,WACjBS,MAAO8C,EAAK3D,IAElB,CACA,OAAOE,OAAOqE,OAAOjD,EAAeqC,GAAOI,EAC7C,CAAO,CACL,MAAM9B,EAAQX,EAAeqC,GAC7B,GAAc,OAAV1B,GAAkB6B,EACpB,MAAO,IAAKH,GAEd,MAAMrD,EAAMJ,OAAOqE,OAAOtC,GAC1B,OAAO/B,OAAOsE,OAAOlE,EAAKqD,EAC5B,CACF,CACA,SAASc,EAAOnE,EAAKoE,GAAO,GAC1B,OAAIC,EAASrE,IAAQiB,EAAQjB,KAASkB,EAAYlB,KAE9CgC,EAAYhC,GAAO,IACrBA,EAAI0C,IAAM1C,EAAI6C,IAAM7C,EAAIsE,MAAQtE,EAAIuE,OAASC,GAE/C5E,OAAOuE,OAAOnE,GACVoE,GACFxE,OAAO6E,QAAQzE,GAAKmC,SAAQ,EAAEzC,EAAKa,KAAW4D,EAAO5D,GAAO,MANrDP,CAQX,CACA,SAASwE,IACP5D,EAAI,EACN,CACA,SAASyD,EAASrE,GAChB,OAAOJ,OAAOyE,SAASrE,EACzB,CAGA,IAcI0E,EAdAC,EAAU,CAAC,EACf,SAASC,EAAUC,GACjB,MAAMC,EAASH,EAAQE,GAIvB,OAHKC,GACHlE,EAAI,GAECkE,CACT,CAQA,SAASC,IACP,OAAOL,CACT,CAYA,SAASM,EAAkBC,EAAOC,GAC5BA,IACFN,EAAU,WACVK,EAAME,SAAW,GACjBF,EAAMG,gBAAkB,GACxBH,EAAMI,eAAiBH,EAE3B,CACA,SAASI,EAAYL,GACnBM,EAAWN,GACXA,EAAMO,QAAQrD,QAAQsD,GACtBR,EAAMO,QAAU,IAClB,CACA,SAASD,EAAWN,GACdA,IAAUP,IACZA,EAAeO,EAAMS,QAEzB,CACA,SAASC,EAAWC,GAClB,OAAOlB,EA7BA,CACLc,QAAS,GACTE,QA2BgChB,EA1BhCmB,OA0B8CD,EAvB9CE,gBAAgB,EAChBC,mBAAoB,EAuBxB,CACA,SAASN,EAAYO,GACnB,MAAMzD,EAAQyD,EAAMrF,GACA,IAAhB4B,EAAMC,OAA4C,IAAhBD,EAAMC,MAC1CD,EAAM0D,UAEN1D,EAAM2D,UAAW,CACrB,CAGA,SAASC,EAAcC,EAAQnB,GAC7BA,EAAMc,mBAAqBd,EAAMO,QAAQ3B,OACzC,MAAMwC,EAAYpB,EAAMO,QAAQ,GA2BhC,YA1B8B,IAAXY,GAAqBA,IAAWC,GAE7CA,EAAU1F,GAAa2F,YACzBhB,EAAYL,GACZrE,EAAI,IAEFM,EAAYkF,KACdA,EAASG,EAAStB,EAAOmB,GACpBnB,EAAMS,SACTc,EAAYvB,EAAOmB,IAEnBnB,EAAME,UACRP,EAAU,WAAW6B,4BACnBJ,EAAU1F,GAAawC,MACvBiD,EACAnB,EAAME,SACNF,EAAMG,kBAIVgB,EAASG,EAAStB,EAAOoB,EAAW,IAEtCf,EAAYL,GACRA,EAAME,UACRF,EAAMI,eAAeJ,EAAME,SAAUF,EAAMG,iBAEtCgB,IAAW5F,EAAU4F,OAAS,CACvC,CACA,SAASG,EAASG,EAAWnG,EAAOoG,GAClC,GAAItC,EAAS9D,GACX,OAAOA,EACT,MAAMgC,EAAQhC,EAAMI,GACpB,IAAK4B,EAKH,OAJAT,EACEvB,GACA,CAACb,EAAKkH,IAAeC,EAAiBH,EAAWnE,EAAOhC,EAAOb,EAAKkH,EAAYD,KAE3EpG,EAET,GAAIgC,EAAMuE,SAAWJ,EACnB,OAAOnG,EACT,IAAKgC,EAAM+D,UAET,OADAE,EAAYE,EAAWnE,EAAMY,OAAO,GAC7BZ,EAAMY,MAEf,IAAKZ,EAAMwE,WAAY,CACrBxE,EAAMwE,YAAa,EACnBxE,EAAMuE,OAAOf,qBACb,MAAMK,EAAS7D,EAAMW,MACrB,IAAI8D,EAAaZ,EACba,GAAS,EACO,IAAhB1E,EAAMC,QACRwE,EAAa,IAAIhE,IAAIoD,GACrBA,EAAO9B,QACP2C,GAAS,GAEXnF,EACEkF,GACA,CAACtH,EAAKkH,IAAeC,EAAiBH,EAAWnE,EAAO6D,EAAQ1G,EAAKkH,EAAYD,EAAMM,KAEzFT,EAAYE,EAAWN,GAAQ,GAC3BO,GAAQD,EAAUvB,UACpBP,EAAU,WAAWsC,iBACnB3E,EACAoE,EACAD,EAAUvB,SACVuB,EAAUtB,gBAGhB,CACA,OAAO7C,EAAMW,KACf,CACA,SAAS2D,EAAiBH,EAAWS,EAAaC,EAAcnH,EAAM2G,EAAYS,EAAUC,GAG1F,GAAIrG,EAAQ2F,GAAa,CACvB,MAEMW,EAAMhB,EAASG,EAAWE,EAFnBS,GAAYF,GAAqC,IAAtBA,EAAY3E,QACnDC,EAAI0E,EAAYK,UAAWvH,GAAQoH,EAASI,OAAOxH,QAAQ,GAG5D,GADAyC,EAAI0E,EAAcnH,EAAMsH,IACpBtG,EAAQsG,GAGV,OAFAb,EAAUZ,gBAAiB,CAG/B,MAAWwB,GACTF,EAAavE,IAAI+D,GAEnB,GAAI1F,EAAY0F,KAAgBvC,EAASuC,GAAa,CACpD,IAAKF,EAAUb,OAAO6B,aAAehB,EAAUX,mBAAqB,EAClE,OAEFQ,EAASG,EAAWE,GACdO,GAAgBA,EAAYL,OAAOpB,SAA4B,iBAATzF,IAAqBL,OAAOM,UAAUyH,qBAAqBvH,KAAKgH,EAAcnH,IACxIuG,EAAYE,EAAWE,EAC3B,CACF,CACA,SAASJ,EAAYvB,EAAO1E,EAAO6D,GAAO,IACnCa,EAAMS,SAAWT,EAAMY,OAAO6B,aAAezC,EAAMa,gBACtD3B,EAAO5D,EAAO6D,EAElB,CAuCA,IAAIwD,EAAc,CAChB,GAAA7H,CAAIwC,EAAOtC,GACT,GAAIA,IAASU,EACX,OAAO4B,EACT,MAAMsF,EAAS5E,EAAOV,GACtB,IAAKE,EAAIoF,EAAQ5H,GACf,OAwGN,SAA2BsC,EAAOsF,EAAQ5H,GACxC,MAAM6D,EAAOgE,EAAuBD,EAAQ5H,GAC5C,OAAO6D,EAAO,UAAWA,EAAOA,EAAKvD,MAGnCuD,EAAK/D,KAAKK,KAAKmC,EAAMwF,aACnB,CACN,CA/GaC,CAAkBzF,EAAOsF,EAAQ5H,GAE1C,MAAMM,EAAQsH,EAAO5H,GACrB,OAAIsC,EAAMwE,aAAe7F,EAAYX,GAC5BA,EAELA,IAAU0H,EAAK1F,EAAMY,MAAOlD,IAC9BiI,EAAY3F,GACLA,EAAMW,MAAMjD,GAAQkI,EAAY5H,EAAOgC,IAEzChC,CACT,EACAkC,IAAG,CAACF,EAAOtC,IACFA,KAAQgD,EAAOV,GAExBL,QAAQK,GACCN,QAAQC,QAAQe,EAAOV,IAEhC,GAAAG,CAAIH,EAAOtC,EAAMM,GACf,MAAMuD,EAAOgE,EAAuB7E,EAAOV,GAAQtC,GACnD,GAAI6D,GAAMpB,IAER,OADAoB,EAAKpB,IAAItC,KAAKmC,EAAMwF,OAAQxH,IACrB,EAET,IAAKgC,EAAM+D,UAAW,CACpB,MAAM8B,EAAWH,EAAKhF,EAAOV,GAAQtC,GAC/BoI,EAAeD,IAAWzH,GAChC,GAAI0H,GAAgBA,EAAalF,QAAU5C,EAGzC,OAFAgC,EAAMW,MAAMjD,GAAQM,EACpBgC,EAAMiF,UAAUvH,IAAQ,GACjB,EAET,KA1TMqI,EA0TC/H,MA1TEgI,EA0TKH,GAxTH,IAANE,GAAW,EAAIA,GAAM,EAAIC,EAEzBD,GAAMA,GAAKC,GAAMA,UAsTgB,IAAVhI,GAAoBkC,EAAIF,EAAMY,MAAOlD,IAC/D,OAAO,EACTiI,EAAY3F,GACZiG,EAAYjG,EACd,CA9TJ,IAAY+F,EAAGC,EA+TX,OAAIhG,EAAMW,MAAMjD,KAAUM,SACf,IAAVA,GAAoBN,KAAQsC,EAAMW,QACnCuF,OAAOC,MAAMnI,IAAUkI,OAAOC,MAAMnG,EAAMW,MAAMjD,MAEhDsC,EAAMW,MAAMjD,GAAQM,EACpBgC,EAAMiF,UAAUvH,IAAQ,IAFf,CAIX,EACA0I,eAAc,CAACpG,EAAOtC,UACY,IAA5BgI,EAAK1F,EAAMY,MAAOlD,IAAoBA,KAAQsC,EAAMY,OACtDZ,EAAMiF,UAAUvH,IAAQ,EACxBiI,EAAY3F,GACZiG,EAAYjG,WAELA,EAAMiF,UAAUvH,GAErBsC,EAAMW,cACDX,EAAMW,MAAMjD,IAEd,GAIT,wBAAA2I,CAAyBrG,EAAOtC,GAC9B,MAAM4I,EAAQ5F,EAAOV,GACfuB,EAAO7B,QAAQ2G,yBAAyBC,EAAO5I,GACrD,OAAK6D,EAEE,CACLC,UAAU,EACVC,aAA8B,IAAhBzB,EAAMC,OAAoC,WAATvC,EAC/CH,WAAYgE,EAAKhE,WACjBS,MAAOsI,EAAM5I,IALN6D,CAOX,EACA,cAAAjE,GACEe,EAAI,GACN,EACAI,eAAeuB,GACNvB,EAAeuB,EAAMY,OAE9B,cAAA2F,GACElI,EAAI,GACN,GAEEmI,EAAa,CAAC,EAiBlB,SAASd,EAAKjC,EAAO/F,GACnB,MAAMsC,EAAQyD,EAAMrF,GAEpB,OADe4B,EAAQU,EAAOV,GAASyD,GACzB/F,EAChB,CASA,SAAS6H,EAAuBD,EAAQ5H,GACtC,KAAMA,KAAQ4H,GACZ,OACF,IAAIlG,EAAQX,EAAe6G,GAC3B,KAAOlG,GAAO,CACZ,MAAMmC,EAAOlE,OAAOgJ,yBAAyBjH,EAAO1B,GACpD,GAAI6D,EACF,OAAOA,EACTnC,EAAQX,EAAeW,EACzB,CAEF,CACA,SAAS6G,EAAYjG,GACdA,EAAM+D,YACT/D,EAAM+D,WAAY,EACd/D,EAAMmD,SACR8C,EAAYjG,EAAMmD,SAGxB,CACA,SAASwC,EAAY3F,GACdA,EAAMW,QACTX,EAAMW,MAAQE,EACZb,EAAMY,MACNZ,EAAMuE,OAAOjB,OAAOmD,uBAG1B,CAkJA,SAASb,EAAY5H,EAAO0I,GAC1B,MAAMjD,EAAQzE,EAAMhB,GAASqE,EAAU,UAAUsE,UAAU3I,EAAO0I,GAAUzH,EAAMjB,GAASqE,EAAU,UAAUuE,UAAU5I,EAAO0I,GAxUlI,SAA0B5F,EAAM4F,GAC9B,MAAM5H,EAAUD,MAAMC,QAAQgC,GACxBd,EAAQ,CACZC,MAAOnB,EAAU,EAAgB,EAEjCyF,OAAQmC,EAASA,EAAOnC,OAAS/B,IAEjCuB,WAAW,EAEXS,YAAY,EAEZS,UAAW,CAAC,EAEZ9B,QAASuD,EAET9F,MAAOE,EAEP0E,OAAQ,KAGR7E,MAAO,KAEP+C,QAAS,KACTmD,WAAW,GAEb,IAAItG,EAASP,EACT8G,EAAQzB,EACRvG,IACFyB,EAAS,CAACP,GACV8G,EAAQN,GAEV,MAAM,OAAEO,EAAM,MAAEC,GAAUC,MAAMC,UAAU3G,EAAQuG,GAGlD,OAFA9G,EAAMwF,OAASwB,EACfhH,EAAM0D,QAAUqD,EACTC,CACT,CAqS4IG,CAAiBnJ,EAAO0I,GAGlK,OAFcA,EAASA,EAAOnC,OAAS/B,KACjCS,QAAQmE,KAAK3D,GACZA,CACT,CAQA,SAAS4D,EAAYrJ,GACnB,IAAKW,EAAYX,IAAU8D,EAAS9D,GAClC,OAAOA,EACT,MAAMgC,EAAQhC,EAAMI,GACpB,IAAIkJ,EACJ,GAAItH,EAAO,CACT,IAAKA,EAAM+D,UACT,OAAO/D,EAAMY,MACfZ,EAAMwE,YAAa,EACnB8C,EAAOzG,EAAY7C,EAAOgC,EAAMuE,OAAOjB,OAAOmD,sBAChD,MACEa,EAAOzG,EAAY7C,GAAO,GAQ5B,OANAuB,EAAK+H,GAAM,CAACnK,EAAKkH,KACflE,EAAImH,EAAMnK,EAAKkK,EAAYhD,GAAY,IAErCrE,IACFA,EAAMwE,YAAa,GAEd8C,CACT,CA3OA/H,EAAK8F,GAAa,CAAClI,EAAKoK,KACtBf,EAAWrJ,GAAO,WAEhB,OADAqK,UAAU,GAAKA,UAAU,GAAG,GACrBD,EAAGE,MAAMzK,KAAMwK,UACxB,CAAC,IAEHhB,EAAWJ,eAAiB,SAASpG,EAAOtC,GAG1C,OAAO8I,EAAWrG,IAAItC,KAAKb,KAAMgD,EAAOtC,OAAM,EAChD,EACA8I,EAAWrG,IAAM,SAASH,EAAOtC,EAAMM,GAGrC,OAAOqH,EAAYlF,IAAItC,KAAKb,KAAMgD,EAAM,GAAItC,EAAMM,EAAOgC,EAAM,GACjE,EAqsBA,IAAI0H,EAAQ,IAzpBC,MACX,WAAA3I,CAAY4I,GACV3K,KAAKmI,aAAc,EACnBnI,KAAKyJ,uBAAwB,EAoB7BzJ,KAAK4K,QAAU,CAAC9G,EAAM+G,EAAQlF,KAC5B,GAAoB,mBAAT7B,GAAyC,mBAAX+G,EAAuB,CAC9D,MAAMC,EAAcD,EACpBA,EAAS/G,EACT,MAAMiH,EAAO/K,KACb,OAAO,SAAwBgL,EAAQF,KAAgBvJ,GACrD,OAAOwJ,EAAKH,QAAQI,GAAQvE,GAAUoE,EAAOhK,KAAKb,KAAMyG,KAAUlF,IACpE,CACF,CAKA,IAAIsF,EACJ,GALsB,mBAAXgE,GACTxJ,EAAI,QACgB,IAAlBsE,GAAqD,mBAAlBA,GACrCtE,EAAI,GAEFM,EAAYmC,GAAO,CACrB,MAAM4B,EAAQU,EAAWpG,MACnBgK,EAAQpB,EAAY9E,OAAM,GAChC,IAAImH,GAAW,EACf,IACEpE,EAASgE,EAAOb,GAChBiB,GAAW,CACb,CAAE,QACIA,EACFlF,EAAYL,GAEZM,EAAWN,EACf,CAEA,OADAD,EAAkBC,EAAOC,GAClBiB,EAAcC,EAAQnB,EAC/B,CAAO,IAAK5B,GAAwB,iBAATA,EAAmB,CAQ5C,GAPA+C,EAASgE,EAAO/G,QACD,IAAX+C,IACFA,EAAS/C,GACP+C,IAAW5F,IACb4F,OAAS,GACP7G,KAAKmI,aACPvD,EAAOiC,GAAQ,GACblB,EAAe,CACjB,MAAMuF,EAAI,GACJC,EAAK,GACX9F,EAAU,WAAW6B,4BAA4BpD,EAAM+C,EAAQqE,EAAGC,GAClExF,EAAcuF,EAAGC,EACnB,CACA,OAAOtE,CACT,CACExF,EAAI,EAAQ,EAEhBrB,KAAKoL,mBAAqB,CAACtH,EAAM+G,KAC/B,GAAoB,mBAAT/G,EACT,MAAO,CAACd,KAAUzB,IAASvB,KAAKoL,mBAAmBpI,GAAQyD,GAAU3C,EAAK2C,KAAUlF,KAEtF,IAAI8J,EAASC,EAKb,MAAO,CAJQtL,KAAK4K,QAAQ9G,EAAM+G,GAAQ,CAACK,EAAGC,KAC5CE,EAAUH,EACVI,EAAiBH,CAAE,IAELE,EAASC,EAAe,EAER,kBAAvBX,GAAQY,YACjBvL,KAAKwL,cAAcb,EAAOY,YACgB,kBAAjCZ,GAAQc,sBACjBzL,KAAK0L,wBAAwBf,EAAOc,qBACxC,CACA,WAAAE,CAAY7H,GAiEd,IAAiB9C,EAhERW,EAAYmC,IACfzC,EAAI,GACFK,EAAQoC,KA+DTpC,EADUV,EA7DI8C,IA+DjBzC,EAAI,IA/DFyC,EAgEGuG,EAAYrJ,IA/DjB,MAAM0E,EAAQU,EAAWpG,MACnBgK,EAAQpB,EAAY9E,OAAM,GAGhC,OAFAkG,EAAM5I,GAAayI,WAAY,EAC/B7D,EAAWN,GACJsE,CACT,CACA,WAAA4B,CAAYnF,EAAOd,GACjB,MAAM3C,EAAQyD,GAASA,EAAMrF,GACxB4B,GAAUA,EAAM6G,WACnBxI,EAAI,GACN,MAAQkG,OAAQ7B,GAAU1C,EAE1B,OADAyC,EAAkBC,EAAOC,GAClBiB,OAAc,EAAQlB,EAC/B,CAMA,aAAA8F,CAAcxK,GACZhB,KAAKmI,YAAcnH,CACrB,CAMA,uBAAA0K,CAAwB1K,GACtBhB,KAAKyJ,sBAAwBzI,CAC/B,CACA,YAAA6K,CAAa/H,EAAMuH,GACjB,IAAIhH,EACJ,IAAKA,EAAIgH,EAAQ/G,OAAS,EAAGD,GAAK,EAAGA,IAAK,CACxC,MAAMyH,EAAQT,EAAQhH,GACtB,GAA0B,IAAtByH,EAAM1E,KAAK9C,QAA6B,YAAbwH,EAAMC,GAAkB,CACrDjI,EAAOgI,EAAM9K,MACb,KACF,CACF,CACIqD,GAAK,IACPgH,EAAUA,EAAQrH,MAAMK,EAAI,IAE9B,MAAM2H,EAAmB3G,EAAU,WAAW4G,cAC9C,OAAIvK,EAAQoC,GACHkI,EAAiBlI,EAAMuH,GAEzBrL,KAAK4K,QACV9G,GACC2C,GAAUuF,EAAiBvF,EAAO4E,IAEvC,GA6gBET,EAAUF,EAAME,QCxqCb,SAASsB,EACd3B,GAEA,MAAO,CAACvH,KAAazB,IACZqJ,EAAQ5H,GAAQyD,IACrB8D,EAAG9D,KAAUlF,EAAK,GAGxB,C,ODiqCyBmJ,EAAMU,mBAAmBe,KAChDzB,GAEkBA,EAAMc,cAAcW,KAAKzB,GACfA,EAAMgB,wBAAwBS,KAAKzB,GAC9CA,EAAMmB,aAAaM,KAAKzB,GACzBA,EAAMiB,YAAYQ,KAAKzB,GACvBA,EAAMkB,YAAYO,KAAKzB,G","sources":["webpack://apprun/webpack/universalModuleDefinition","webpack://apprun/webpack/bootstrap","webpack://apprun/webpack/runtime/define property getters","webpack://apprun/webpack/runtime/hasOwnProperty shorthand","webpack://apprun/webpack/runtime/make namespace object","webpack://apprun/./node_modules/immer/dist/immer.mjs","webpack://apprun/./src/createState.ts"],"sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"apprun\"] = factory();\n\telse\n\t\troot[\"apprun\"] = factory();\n})(this, () => {\nreturn ","// The require scope\nvar __webpack_require__ = {};\n\n","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","// src/utils/env.ts\nvar NOTHING = Symbol.for(\"immer-nothing\");\nvar DRAFTABLE = Symbol.for(\"immer-draftable\");\nvar DRAFT_STATE = Symbol.for(\"immer-state\");\n\n// src/utils/errors.ts\nvar errors = process.env.NODE_ENV !== \"production\" ? [\n // All error codes, starting by 0:\n function(plugin) {\n return `The plugin for '${plugin}' has not been loaded into Immer. To enable the plugin, import and call \\`enable${plugin}()\\` when initializing your application.`;\n },\n function(thing) {\n return `produce can only be called on things that are draftable: plain objects, arrays, Map, Set or classes that are marked with '[immerable]: true'. Got '${thing}'`;\n },\n \"This object has been frozen and should not be mutated\",\n function(data) {\n return \"Cannot use a proxy that has been revoked. Did you pass an object from inside an immer function to an async process? \" + data;\n },\n \"An immer producer returned a new value *and* modified its draft. Either return a new value *or* modify the draft.\",\n \"Immer forbids circular references\",\n \"The first or second argument to `produce` must be a function\",\n \"The third argument to `produce` must be a function or undefined\",\n \"First argument to `createDraft` must be a plain object, an array, or an immerable object\",\n \"First argument to `finishDraft` must be a draft returned by `createDraft`\",\n function(thing) {\n return `'current' expects a draft, got: ${thing}`;\n },\n \"Object.defineProperty() cannot be used on an Immer draft\",\n \"Object.setPrototypeOf() cannot be used on an Immer draft\",\n \"Immer only supports deleting array indices\",\n \"Immer only supports setting array indices and the 'length' property\",\n function(thing) {\n return `'original' expects a draft, got: ${thing}`;\n }\n // Note: if more errors are added, the errorOffset in Patches.ts should be increased\n // See Patches.ts for additional errors\n] : [];\nfunction die(error, ...args) {\n if (process.env.NODE_ENV !== \"production\") {\n const e = errors[error];\n const msg = typeof e === \"function\" ? e.apply(null, args) : e;\n throw new Error(`[Immer] ${msg}`);\n }\n throw new Error(\n `[Immer] minified error nr: ${error}. Full error at: https://bit.ly/3cXEKWf`\n );\n}\n\n// src/utils/common.ts\nvar getPrototypeOf = Object.getPrototypeOf;\nfunction isDraft(value) {\n return !!value && !!value[DRAFT_STATE];\n}\nfunction isDraftable(value) {\n if (!value)\n return false;\n return isPlainObject(value) || Array.isArray(value) || !!value[DRAFTABLE] || !!value.constructor?.[DRAFTABLE] || isMap(value) || isSet(value);\n}\nvar objectCtorString = Object.prototype.constructor.toString();\nfunction isPlainObject(value) {\n if (!value || typeof value !== \"object\")\n return false;\n const proto = getPrototypeOf(value);\n if (proto === null) {\n return true;\n }\n const Ctor = Object.hasOwnProperty.call(proto, \"constructor\") && proto.constructor;\n if (Ctor === Object)\n return true;\n return typeof Ctor == \"function\" && Function.toString.call(Ctor) === objectCtorString;\n}\nfunction original(value) {\n if (!isDraft(value))\n die(15, value);\n return value[DRAFT_STATE].base_;\n}\nfunction each(obj, iter) {\n if (getArchtype(obj) === 0 /* Object */) {\n Reflect.ownKeys(obj).forEach((key) => {\n iter(key, obj[key], obj);\n });\n } else {\n obj.forEach((entry, index) => iter(index, entry, obj));\n }\n}\nfunction getArchtype(thing) {\n const state = thing[DRAFT_STATE];\n return state ? state.type_ : Array.isArray(thing) ? 1 /* Array */ : isMap(thing) ? 2 /* Map */ : isSet(thing) ? 3 /* Set */ : 0 /* Object */;\n}\nfunction has(thing, prop) {\n return getArchtype(thing) === 2 /* Map */ ? thing.has(prop) : Object.prototype.hasOwnProperty.call(thing, prop);\n}\nfunction get(thing, prop) {\n return getArchtype(thing) === 2 /* Map */ ? thing.get(prop) : thing[prop];\n}\nfunction set(thing, propOrOldValue, value) {\n const t = getArchtype(thing);\n if (t === 2 /* Map */)\n thing.set(propOrOldValue, value);\n else if (t === 3 /* Set */) {\n thing.add(value);\n } else\n thing[propOrOldValue] = value;\n}\nfunction is(x, y) {\n if (x === y) {\n return x !== 0 || 1 / x === 1 / y;\n } else {\n return x !== x && y !== y;\n }\n}\nfunction isMap(target) {\n return target instanceof Map;\n}\nfunction isSet(target) {\n return target instanceof Set;\n}\nfunction latest(state) {\n return state.copy_ || state.base_;\n}\nfunction shallowCopy(base, strict) {\n if (isMap(base)) {\n return new Map(base);\n }\n if (isSet(base)) {\n return new Set(base);\n }\n if (Array.isArray(base))\n return Array.prototype.slice.call(base);\n const isPlain = isPlainObject(base);\n if (strict === true || strict === \"class_only\" && !isPlain) {\n const descriptors = Object.getOwnPropertyDescriptors(base);\n delete descriptors[DRAFT_STATE];\n let keys = Reflect.ownKeys(descriptors);\n for (let i = 0; i < keys.length; i++) {\n const key = keys[i];\n const desc = descriptors[key];\n if (desc.writable === false) {\n desc.writable = true;\n desc.configurable = true;\n }\n if (desc.get || desc.set)\n descriptors[key] = {\n configurable: true,\n writable: true,\n // could live with !!desc.set as well here...\n enumerable: desc.enumerable,\n value: base[key]\n };\n }\n return Object.create(getPrototypeOf(base), descriptors);\n } else {\n const proto = getPrototypeOf(base);\n if (proto !== null && isPlain) {\n return { ...base };\n }\n const obj = Object.create(proto);\n return Object.assign(obj, base);\n }\n}\nfunction freeze(obj, deep = false) {\n if (isFrozen(obj) || isDraft(obj) || !isDraftable(obj))\n return obj;\n if (getArchtype(obj) > 1) {\n obj.set = obj.add = obj.clear = obj.delete = dontMutateFrozenCollections;\n }\n Object.freeze(obj);\n if (deep)\n Object.entries(obj).forEach(([key, value]) => freeze(value, true));\n return obj;\n}\nfunction dontMutateFrozenCollections() {\n die(2);\n}\nfunction isFrozen(obj) {\n return Object.isFrozen(obj);\n}\n\n// src/utils/plugins.ts\nvar plugins = {};\nfunction getPlugin(pluginKey) {\n const plugin = plugins[pluginKey];\n if (!plugin) {\n die(0, pluginKey);\n }\n return plugin;\n}\nfunction loadPlugin(pluginKey, implementation) {\n if (!plugins[pluginKey])\n plugins[pluginKey] = implementation;\n}\n\n// src/core/scope.ts\nvar currentScope;\nfunction getCurrentScope() {\n return currentScope;\n}\nfunction createScope(parent_, immer_) {\n return {\n drafts_: [],\n parent_,\n immer_,\n // Whenever the modified draft contains a draft from another scope, we\n // need to prevent auto-freezing so the unowned draft can be finalized.\n canAutoFreeze_: true,\n unfinalizedDrafts_: 0\n };\n}\nfunction usePatchesInScope(scope, patchListener) {\n if (patchListener) {\n getPlugin(\"Patches\");\n scope.patches_ = [];\n scope.inversePatches_ = [];\n scope.patchListener_ = patchListener;\n }\n}\nfunction revokeScope(scope) {\n leaveScope(scope);\n scope.drafts_.forEach(revokeDraft);\n scope.drafts_ = null;\n}\nfunction leaveScope(scope) {\n if (scope === currentScope) {\n currentScope = scope.parent_;\n }\n}\nfunction enterScope(immer2) {\n return currentScope = createScope(currentScope, immer2);\n}\nfunction revokeDraft(draft) {\n const state = draft[DRAFT_STATE];\n if (state.type_ === 0 /* Object */ || state.type_ === 1 /* Array */)\n state.revoke_();\n else\n state.revoked_ = true;\n}\n\n// src/core/finalize.ts\nfunction processResult(result, scope) {\n scope.unfinalizedDrafts_ = scope.drafts_.length;\n const baseDraft = scope.drafts_[0];\n const isReplaced = result !== void 0 && result !== baseDraft;\n if (isReplaced) {\n if (baseDraft[DRAFT_STATE].modified_) {\n revokeScope(scope);\n die(4);\n }\n if (isDraftable(result)) {\n result = finalize(scope, result);\n if (!scope.parent_)\n maybeFreeze(scope, result);\n }\n if (scope.patches_) {\n getPlugin(\"Patches\").generateReplacementPatches_(\n baseDraft[DRAFT_STATE].base_,\n result,\n scope.patches_,\n scope.inversePatches_\n );\n }\n } else {\n result = finalize(scope, baseDraft, []);\n }\n revokeScope(scope);\n if (scope.patches_) {\n scope.patchListener_(scope.patches_, scope.inversePatches_);\n }\n return result !== NOTHING ? result : void 0;\n}\nfunction finalize(rootScope, value, path) {\n if (isFrozen(value))\n return value;\n const state = value[DRAFT_STATE];\n if (!state) {\n each(\n value,\n (key, childValue) => finalizeProperty(rootScope, state, value, key, childValue, path)\n );\n return value;\n }\n if (state.scope_ !== rootScope)\n return value;\n if (!state.modified_) {\n maybeFreeze(rootScope, state.base_, true);\n return state.base_;\n }\n if (!state.finalized_) {\n state.finalized_ = true;\n state.scope_.unfinalizedDrafts_--;\n const result = state.copy_;\n let resultEach = result;\n let isSet2 = false;\n if (state.type_ === 3 /* Set */) {\n resultEach = new Set(result);\n result.clear();\n isSet2 = true;\n }\n each(\n resultEach,\n (key, childValue) => finalizeProperty(rootScope, state, result, key, childValue, path, isSet2)\n );\n maybeFreeze(rootScope, result, false);\n if (path && rootScope.patches_) {\n getPlugin(\"Patches\").generatePatches_(\n state,\n path,\n rootScope.patches_,\n rootScope.inversePatches_\n );\n }\n }\n return state.copy_;\n}\nfunction finalizeProperty(rootScope, parentState, targetObject, prop, childValue, rootPath, targetIsSet) {\n if (process.env.NODE_ENV !== \"production\" && childValue === targetObject)\n die(5);\n if (isDraft(childValue)) {\n const path = rootPath && parentState && parentState.type_ !== 3 /* Set */ && // Set objects are atomic since they have no keys.\n !has(parentState.assigned_, prop) ? rootPath.concat(prop) : void 0;\n const res = finalize(rootScope, childValue, path);\n set(targetObject, prop, res);\n if (isDraft(res)) {\n rootScope.canAutoFreeze_ = false;\n } else\n return;\n } else if (targetIsSet) {\n targetObject.add(childValue);\n }\n if (isDraftable(childValue) && !isFrozen(childValue)) {\n if (!rootScope.immer_.autoFreeze_ && rootScope.unfinalizedDrafts_ < 1) {\n return;\n }\n finalize(rootScope, childValue);\n if ((!parentState || !parentState.scope_.parent_) && typeof prop !== \"symbol\" && Object.prototype.propertyIsEnumerable.call(targetObject, prop))\n maybeFreeze(rootScope, childValue);\n }\n}\nfunction maybeFreeze(scope, value, deep = false) {\n if (!scope.parent_ && scope.immer_.autoFreeze_ && scope.canAutoFreeze_) {\n freeze(value, deep);\n }\n}\n\n// src/core/proxy.ts\nfunction createProxyProxy(base, parent) {\n const isArray = Array.isArray(base);\n const state = {\n type_: isArray ? 1 /* Array */ : 0 /* Object */,\n // Track which produce call this is associated with.\n scope_: parent ? parent.scope_ : getCurrentScope(),\n // True for both shallow and deep changes.\n modified_: false,\n // Used during finalization.\n finalized_: false,\n // Track which properties have been assigned (true) or deleted (false).\n assigned_: {},\n // The parent draft state.\n parent_: parent,\n // The base state.\n base_: base,\n // The base proxy.\n draft_: null,\n // set below\n // The base copy with any updated values.\n copy_: null,\n // Called by the `produce` function.\n revoke_: null,\n isManual_: false\n };\n let target = state;\n let traps = objectTraps;\n if (isArray) {\n target = [state];\n traps = arrayTraps;\n }\n const { revoke, proxy } = Proxy.revocable(target, traps);\n state.draft_ = proxy;\n state.revoke_ = revoke;\n return proxy;\n}\nvar objectTraps = {\n get(state, prop) {\n if (prop === DRAFT_STATE)\n return state;\n const source = latest(state);\n if (!has(source, prop)) {\n return readPropFromProto(state, source, prop);\n }\n const value = source[prop];\n if (state.finalized_ || !isDraftable(value)) {\n return value;\n }\n if (value === peek(state.base_, prop)) {\n prepareCopy(state);\n return state.copy_[prop] = createProxy(value, state);\n }\n return value;\n },\n has(state, prop) {\n return prop in latest(state);\n },\n ownKeys(state) {\n return Reflect.ownKeys(latest(state));\n },\n set(state, prop, value) {\n const desc = getDescriptorFromProto(latest(state), prop);\n if (desc?.set) {\n desc.set.call(state.draft_, value);\n return true;\n }\n if (!state.modified_) {\n const current2 = peek(latest(state), prop);\n const currentState = current2?.[DRAFT_STATE];\n if (currentState && currentState.base_ === value) {\n state.copy_[prop] = value;\n state.assigned_[prop] = false;\n return true;\n }\n if (is(value, current2) && (value !== void 0 || has(state.base_, prop)))\n return true;\n prepareCopy(state);\n markChanged(state);\n }\n if (state.copy_[prop] === value && // special case: handle new props with value 'undefined'\n (value !== void 0 || prop in state.copy_) || // special case: NaN\n Number.isNaN(value) && Number.isNaN(state.copy_[prop]))\n return true;\n state.copy_[prop] = value;\n state.assigned_[prop] = true;\n return true;\n },\n deleteProperty(state, prop) {\n if (peek(state.base_, prop) !== void 0 || prop in state.base_) {\n state.assigned_[prop] = false;\n prepareCopy(state);\n markChanged(state);\n } else {\n delete state.assigned_[prop];\n }\n if (state.copy_) {\n delete state.copy_[prop];\n }\n return true;\n },\n // Note: We never coerce `desc.value` into an Immer draft, because we can't make\n // the same guarantee in ES5 mode.\n getOwnPropertyDescriptor(state, prop) {\n const owner = latest(state);\n const desc = Reflect.getOwnPropertyDescriptor(owner, prop);\n if (!desc)\n return desc;\n return {\n writable: true,\n configurable: state.type_ !== 1 /* Array */ || prop !== \"length\",\n enumerable: desc.enumerable,\n value: owner[prop]\n };\n },\n defineProperty() {\n die(11);\n },\n getPrototypeOf(state) {\n return getPrototypeOf(state.base_);\n },\n setPrototypeOf() {\n die(12);\n }\n};\nvar arrayTraps = {};\neach(objectTraps, (key, fn) => {\n arrayTraps[key] = function() {\n arguments[0] = arguments[0][0];\n return fn.apply(this, arguments);\n };\n});\narrayTraps.deleteProperty = function(state, prop) {\n if (process.env.NODE_ENV !== \"production\" && isNaN(parseInt(prop)))\n die(13);\n return arrayTraps.set.call(this, state, prop, void 0);\n};\narrayTraps.set = function(state, prop, value) {\n if (process.env.NODE_ENV !== \"production\" && prop !== \"length\" && isNaN(parseInt(prop)))\n die(14);\n return objectTraps.set.call(this, state[0], prop, value, state[0]);\n};\nfunction peek(draft, prop) {\n const state = draft[DRAFT_STATE];\n const source = state ? latest(state) : draft;\n return source[prop];\n}\nfunction readPropFromProto(state, source, prop) {\n const desc = getDescriptorFromProto(source, prop);\n return desc ? `value` in desc ? desc.value : (\n // This is a very special case, if the prop is a getter defined by the\n // prototype, we should invoke it with the draft as context!\n desc.get?.call(state.draft_)\n ) : void 0;\n}\nfunction getDescriptorFromProto(source, prop) {\n if (!(prop in source))\n return void 0;\n let proto = getPrototypeOf(source);\n while (proto) {\n const desc = Object.getOwnPropertyDescriptor(proto, prop);\n if (desc)\n return desc;\n proto = getPrototypeOf(proto);\n }\n return void 0;\n}\nfunction markChanged(state) {\n if (!state.modified_) {\n state.modified_ = true;\n if (state.parent_) {\n markChanged(state.parent_);\n }\n }\n}\nfunction prepareCopy(state) {\n if (!state.copy_) {\n state.copy_ = shallowCopy(\n state.base_,\n state.scope_.immer_.useStrictShallowCopy_\n );\n }\n}\n\n// src/core/immerClass.ts\nvar Immer2 = class {\n constructor(config) {\n this.autoFreeze_ = true;\n this.useStrictShallowCopy_ = false;\n /**\n * The `produce` function takes a value and a \"recipe function\" (whose\n * return value often depends on the base state). The recipe function is\n * free to mutate its first argument however it wants. All mutations are\n * only ever applied to a __copy__ of the base state.\n *\n * Pass only a function to create a \"curried producer\" which relieves you\n * from passing the recipe function every time.\n *\n * Only plain objects and arrays are made mutable. All other objects are\n * considered uncopyable.\n *\n * Note: This function is __bound__ to its `Immer` instance.\n *\n * @param {any} base - the initial state\n * @param {Function} recipe - function that receives a proxy of the base state as first argument and which can be freely modified\n * @param {Function} patchListener - optional function that will be called with all the patches produced here\n * @returns {any} a new state, or the initial state if nothing was modified\n */\n this.produce = (base, recipe, patchListener) => {\n if (typeof base === \"function\" && typeof recipe !== \"function\") {\n const defaultBase = recipe;\n recipe = base;\n const self = this;\n return function curriedProduce(base2 = defaultBase, ...args) {\n return self.produce(base2, (draft) => recipe.call(this, draft, ...args));\n };\n }\n if (typeof recipe !== \"function\")\n die(6);\n if (patchListener !== void 0 && typeof patchListener !== \"function\")\n die(7);\n let result;\n if (isDraftable(base)) {\n const scope = enterScope(this);\n const proxy = createProxy(base, void 0);\n let hasError = true;\n try {\n result = recipe(proxy);\n hasError = false;\n } finally {\n if (hasError)\n revokeScope(scope);\n else\n leaveScope(scope);\n }\n usePatchesInScope(scope, patchListener);\n return processResult(result, scope);\n } else if (!base || typeof base !== \"object\") {\n result = recipe(base);\n if (result === void 0)\n result = base;\n if (result === NOTHING)\n result = void 0;\n if (this.autoFreeze_)\n freeze(result, true);\n if (patchListener) {\n const p = [];\n const ip = [];\n getPlugin(\"Patches\").generateReplacementPatches_(base, result, p, ip);\n patchListener(p, ip);\n }\n return result;\n } else\n die(1, base);\n };\n this.produceWithPatches = (base, recipe) => {\n if (typeof base === \"function\") {\n return (state, ...args) => this.produceWithPatches(state, (draft) => base(draft, ...args));\n }\n let patches, inversePatches;\n const result = this.produce(base, recipe, (p, ip) => {\n patches = p;\n inversePatches = ip;\n });\n return [result, patches, inversePatches];\n };\n if (typeof config?.autoFreeze === \"boolean\")\n this.setAutoFreeze(config.autoFreeze);\n if (typeof config?.useStrictShallowCopy === \"boolean\")\n this.setUseStrictShallowCopy(config.useStrictShallowCopy);\n }\n createDraft(base) {\n if (!isDraftable(base))\n die(8);\n if (isDraft(base))\n base = current(base);\n const scope = enterScope(this);\n const proxy = createProxy(base, void 0);\n proxy[DRAFT_STATE].isManual_ = true;\n leaveScope(scope);\n return proxy;\n }\n finishDraft(draft, patchListener) {\n const state = draft && draft[DRAFT_STATE];\n if (!state || !state.isManual_)\n die(9);\n const { scope_: scope } = state;\n usePatchesInScope(scope, patchListener);\n return processResult(void 0, scope);\n }\n /**\n * Pass true to automatically freeze all copies created by Immer.\n *\n * By default, auto-freezing is enabled.\n */\n setAutoFreeze(value) {\n this.autoFreeze_ = value;\n }\n /**\n * Pass true to enable strict shallow copy.\n *\n * By default, immer does not copy the object descriptors such as getter, setter and non-enumrable properties.\n */\n setUseStrictShallowCopy(value) {\n this.useStrictShallowCopy_ = value;\n }\n applyPatches(base, patches) {\n let i;\n for (i = patches.length - 1; i >= 0; i--) {\n const patch = patches[i];\n if (patch.path.length === 0 && patch.op === \"replace\") {\n base = patch.value;\n break;\n }\n }\n if (i > -1) {\n patches = patches.slice(i + 1);\n }\n const applyPatchesImpl = getPlugin(\"Patches\").applyPatches_;\n if (isDraft(base)) {\n return applyPatchesImpl(base, patches);\n }\n return this.produce(\n base,\n (draft) => applyPatchesImpl(draft, patches)\n );\n }\n};\nfunction createProxy(value, parent) {\n const draft = isMap(value) ? getPlugin(\"MapSet\").proxyMap_(value, parent) : isSet(value) ? getPlugin(\"MapSet\").proxySet_(value, parent) : createProxyProxy(value, parent);\n const scope = parent ? parent.scope_ : getCurrentScope();\n scope.drafts_.push(draft);\n return draft;\n}\n\n// src/core/current.ts\nfunction current(value) {\n if (!isDraft(value))\n die(10, value);\n return currentImpl(value);\n}\nfunction currentImpl(value) {\n if (!isDraftable(value) || isFrozen(value))\n return value;\n const state = value[DRAFT_STATE];\n let copy;\n if (state) {\n if (!state.modified_)\n return state.base_;\n state.finalized_ = true;\n copy = shallowCopy(value, state.scope_.immer_.useStrictShallowCopy_);\n } else {\n copy = shallowCopy(value, true);\n }\n each(copy, (key, childValue) => {\n set(copy, key, currentImpl(childValue));\n });\n if (state) {\n state.finalized_ = false;\n }\n return copy;\n}\n\n// src/plugins/patches.ts\nfunction enablePatches() {\n const errorOffset = 16;\n if (process.env.NODE_ENV !== \"production\") {\n errors.push(\n 'Sets cannot have \"replace\" patches.',\n function(op) {\n return \"Unsupported patch operation: \" + op;\n },\n function(path) {\n return \"Cannot apply patch, path doesn't resolve: \" + path;\n },\n \"Patching reserved attributes like __proto__, prototype and constructor is not allowed\"\n );\n }\n const REPLACE = \"replace\";\n const ADD = \"add\";\n const REMOVE = \"remove\";\n function generatePatches_(state, basePath, patches, inversePatches) {\n switch (state.type_) {\n case 0 /* Object */:\n case 2 /* Map */:\n return generatePatchesFromAssigned(\n state,\n basePath,\n patches,\n inversePatches\n );\n case 1 /* Array */:\n return generateArrayPatches(state, basePath, patches, inversePatches);\n case 3 /* Set */:\n return generateSetPatches(\n state,\n basePath,\n patches,\n inversePatches\n );\n }\n }\n function generateArrayPatches(state, basePath, patches, inversePatches) {\n let { base_, assigned_ } = state;\n let copy_ = state.copy_;\n if (copy_.length < base_.length) {\n ;\n [base_, copy_] = [copy_, base_];\n [patches, inversePatches] = [inversePatches, patches];\n }\n for (let i = 0; i < base_.length; i++) {\n if (assigned_[i] && copy_[i] !== base_[i]) {\n const path = basePath.concat([i]);\n patches.push({\n op: REPLACE,\n path,\n // Need to maybe clone it, as it can in fact be the original value\n // due to the base/copy inversion at the start of this function\n value: clonePatchValueIfNeeded(copy_[i])\n });\n inversePatches.push({\n op: REPLACE,\n path,\n value: clonePatchValueIfNeeded(base_[i])\n });\n }\n }\n for (let i = base_.length; i < copy_.length; i++) {\n const path = basePath.concat([i]);\n patches.push({\n op: ADD,\n path,\n // Need to maybe clone it, as it can in fact be the original value\n // due to the base/copy inversion at the start of this function\n value: clonePatchValueIfNeeded(copy_[i])\n });\n }\n for (let i = copy_.length - 1; base_.length <= i; --i) {\n const path = basePath.concat([i]);\n inversePatches.push({\n op: REMOVE,\n path\n });\n }\n }\n function generatePatchesFromAssigned(state, basePath, patches, inversePatches) {\n const { base_, copy_ } = state;\n each(state.assigned_, (key, assignedValue) => {\n const origValue = get(base_, key);\n const value = get(copy_, key);\n const op = !assignedValue ? REMOVE : has(base_, key) ? REPLACE : ADD;\n if (origValue === value && op === REPLACE)\n return;\n const path = basePath.concat(key);\n patches.push(op === REMOVE ? { op, path } : { op, path, value });\n inversePatches.push(\n op === ADD ? { op: REMOVE, path } : op === REMOVE ? { op: ADD, path, value: clonePatchValueIfNeeded(origValue) } : { op: REPLACE, path, value: clonePatchValueIfNeeded(origValue) }\n );\n });\n }\n function generateSetPatches(state, basePath, patches, inversePatches) {\n let { base_, copy_ } = state;\n let i = 0;\n base_.forEach((value) => {\n if (!copy_.has(value)) {\n const path = basePath.concat([i]);\n patches.push({\n op: REMOVE,\n path,\n value\n });\n inversePatches.unshift({\n op: ADD,\n path,\n value\n });\n }\n i++;\n });\n i = 0;\n copy_.forEach((value) => {\n if (!base_.has(value)) {\n const path = basePath.concat([i]);\n patches.push({\n op: ADD,\n path,\n value\n });\n inversePatches.unshift({\n op: REMOVE,\n path,\n value\n });\n }\n i++;\n });\n }\n function generateReplacementPatches_(baseValue, replacement, patches, inversePatches) {\n patches.push({\n op: REPLACE,\n path: [],\n value: replacement === NOTHING ? void 0 : replacement\n });\n inversePatches.push({\n op: REPLACE,\n path: [],\n value: baseValue\n });\n }\n function applyPatches_(draft, patches) {\n patches.forEach((patch) => {\n const { path, op } = patch;\n let base = draft;\n for (let i = 0; i < path.length - 1; i++) {\n const parentType = getArchtype(base);\n let p = path[i];\n if (typeof p !== \"string\" && typeof p !== \"number\") {\n p = \"\" + p;\n }\n if ((parentType === 0 /* Object */ || parentType === 1 /* Array */) && (p === \"__proto__\" || p === \"constructor\"))\n die(errorOffset + 3);\n if (typeof base === \"function\" && p === \"prototype\")\n die(errorOffset + 3);\n base = get(base, p);\n if (typeof base !== \"object\")\n die(errorOffset + 2, path.join(\"/\"));\n }\n const type = getArchtype(base);\n const value = deepClonePatchValue(patch.value);\n const key = path[path.length - 1];\n switch (op) {\n case REPLACE:\n switch (type) {\n case 2 /* Map */:\n return base.set(key, value);\n case 3 /* Set */:\n die(errorOffset);\n default:\n return base[key] = value;\n }\n case ADD:\n switch (type) {\n case 1 /* Array */:\n return key === \"-\" ? base.push(value) : base.splice(key, 0, value);\n case 2 /* Map */:\n return base.set(key, value);\n case 3 /* Set */:\n return base.add(value);\n default:\n return base[key] = value;\n }\n case REMOVE:\n switch (type) {\n case 1 /* Array */:\n return base.splice(key, 1);\n case 2 /* Map */:\n return base.delete(key);\n case 3 /* Set */:\n return base.delete(patch.value);\n default:\n return delete base[key];\n }\n default:\n die(errorOffset + 1, op);\n }\n });\n return draft;\n }\n function deepClonePatchValue(obj) {\n if (!isDraftable(obj))\n return obj;\n if (Array.isArray(obj))\n return obj.map(deepClonePatchValue);\n if (isMap(obj))\n return new Map(\n Array.from(obj.entries()).map(([k, v]) => [k, deepClonePatchValue(v)])\n );\n if (isSet(obj))\n return new Set(Array.from(obj).map(deepClonePatchValue));\n const cloned = Object.create(getPrototypeOf(obj));\n for (const key in obj)\n cloned[key] = deepClonePatchValue(obj[key]);\n if (has(obj, DRAFTABLE))\n cloned[DRAFTABLE] = obj[DRAFTABLE];\n return cloned;\n }\n function clonePatchValueIfNeeded(obj) {\n if (isDraft(obj)) {\n return deepClonePatchValue(obj);\n } else\n return obj;\n }\n loadPlugin(\"Patches\", {\n applyPatches_,\n generatePatches_,\n generateReplacementPatches_\n });\n}\n\n// src/plugins/mapset.ts\nfunction enableMapSet() {\n class DraftMap extends Map {\n constructor(target, parent) {\n super();\n this[DRAFT_STATE] = {\n type_: 2 /* Map */,\n parent_: parent,\n scope_: parent ? parent.scope_ : getCurrentScope(),\n modified_: false,\n finalized_: false,\n copy_: void 0,\n assigned_: void 0,\n base_: target,\n draft_: this,\n isManual_: false,\n revoked_: false\n };\n }\n get size() {\n return latest(this[DRAFT_STATE]).size;\n }\n has(key) {\n return latest(this[DRAFT_STATE]).has(key);\n }\n set(key, value) {\n const state = this[DRAFT_STATE];\n assertUnrevoked(state);\n if (!latest(state).has(key) || latest(state).get(key) !== value) {\n prepareMapCopy(state);\n markChanged(state);\n state.assigned_.set(key, true);\n state.copy_.set(key, value);\n state.assigned_.set(key, true);\n }\n return this;\n }\n delete(key) {\n if (!this.has(key)) {\n return false;\n }\n const state = this[DRAFT_STATE];\n assertUnrevoked(state);\n prepareMapCopy(state);\n markChanged(state);\n if (state.base_.has(key)) {\n state.assigned_.set(key, false);\n } else {\n state.assigned_.delete(key);\n }\n state.copy_.delete(key);\n return true;\n }\n clear() {\n const state = this[DRAFT_STATE];\n assertUnrevoked(state);\n if (latest(state).size) {\n prepareMapCopy(state);\n markChanged(state);\n state.assigned_ = /* @__PURE__ */ new Map();\n each(state.base_, (key) => {\n state.assigned_.set(key, false);\n });\n state.copy_.clear();\n }\n }\n forEach(cb, thisArg) {\n const state = this[DRAFT_STATE];\n latest(state).forEach((_value, key, _map) => {\n cb.call(thisArg, this.get(key), key, this);\n });\n }\n get(key) {\n const state = this[DRAFT_STATE];\n assertUnrevoked(state);\n const value = latest(state).get(key);\n if (state.finalized_ || !isDraftable(value)) {\n return value;\n }\n if (value !== state.base_.get(key)) {\n return value;\n }\n const draft = createProxy(value, state);\n prepareMapCopy(state);\n state.copy_.set(key, draft);\n return draft;\n }\n keys() {\n return latest(this[DRAFT_STATE]).keys();\n }\n values() {\n const iterator = this.keys();\n return {\n [Symbol.iterator]: () => this.values(),\n next: () => {\n const r = iterator.next();\n if (r.done)\n return r;\n const value = this.get(r.value);\n return {\n done: false,\n value\n };\n }\n };\n }\n entries() {\n const iterator = this.keys();\n return {\n [Symbol.iterator]: () => this.entries(),\n next: () => {\n const r = iterator.next();\n if (r.done)\n return r;\n const value = this.get(r.value);\n return {\n done: false,\n value: [r.value, value]\n };\n }\n };\n }\n [(DRAFT_STATE, Symbol.iterator)]() {\n return this.entries();\n }\n }\n function proxyMap_(target, parent) {\n return new DraftMap(target, parent);\n }\n function prepareMapCopy(state) {\n if (!state.copy_) {\n state.assigned_ = /* @__PURE__ */ new Map();\n state.copy_ = new Map(state.base_);\n }\n }\n class DraftSet extends Set {\n constructor(target, parent) {\n super();\n this[DRAFT_STATE] = {\n type_: 3 /* Set */,\n parent_: parent,\n scope_: parent ? parent.scope_ : getCurrentScope(),\n modified_: false,\n finalized_: false,\n copy_: void 0,\n base_: target,\n draft_: this,\n drafts_: /* @__PURE__ */ new Map(),\n revoked_: false,\n isManual_: false\n };\n }\n get size() {\n return latest(this[DRAFT_STATE]).size;\n }\n has(value) {\n const state = this[DRAFT_STATE];\n assertUnrevoked(state);\n if (!state.copy_) {\n return state.base_.has(value);\n }\n if (state.copy_.has(value))\n return true;\n if (state.drafts_.has(value) && state.copy_.has(state.drafts_.get(value)))\n return true;\n return false;\n }\n add(value) {\n const state = this[DRAFT_STATE];\n assertUnrevoked(state);\n if (!this.has(value)) {\n prepareSetCopy(state);\n markChanged(state);\n state.copy_.add(value);\n }\n return this;\n }\n delete(value) {\n if (!this.has(value)) {\n return false;\n }\n const state = this[DRAFT_STATE];\n assertUnrevoked(state);\n prepareSetCopy(state);\n markChanged(state);\n return state.copy_.delete(value) || (state.drafts_.has(value) ? state.copy_.delete(state.drafts_.get(value)) : (\n /* istanbul ignore next */\n false\n ));\n }\n clear() {\n const state = this[DRAFT_STATE];\n assertUnrevoked(state);\n if (latest(state).size) {\n prepareSetCopy(state);\n markChanged(state);\n state.copy_.clear();\n }\n }\n values() {\n const state = this[DRAFT_STATE];\n assertUnrevoked(state);\n prepareSetCopy(state);\n return state.copy_.values();\n }\n entries() {\n const state = this[DRAFT_STATE];\n assertUnrevoked(state);\n prepareSetCopy(state);\n return state.copy_.entries();\n }\n keys() {\n return this.values();\n }\n [(DRAFT_STATE, Symbol.iterator)]() {\n return this.values();\n }\n forEach(cb, thisArg) {\n const iterator = this.values();\n let result = iterator.next();\n while (!result.done) {\n cb.call(thisArg, result.value, result.value, this);\n result = iterator.next();\n }\n }\n }\n function proxySet_(target, parent) {\n return new DraftSet(target, parent);\n }\n function prepareSetCopy(state) {\n if (!state.copy_) {\n state.copy_ = /* @__PURE__ */ new Set();\n state.base_.forEach((value) => {\n if (isDraftable(value)) {\n const draft = createProxy(value, state);\n state.drafts_.set(value, draft);\n state.copy_.add(draft);\n } else {\n state.copy_.add(value);\n }\n });\n }\n }\n function assertUnrevoked(state) {\n if (state.revoked_)\n die(3, JSON.stringify(latest(state)));\n }\n loadPlugin(\"MapSet\", { proxyMap_, proxySet_ });\n}\n\n// src/immer.ts\nvar immer = new Immer2();\nvar produce = immer.produce;\nvar produceWithPatches = immer.produceWithPatches.bind(\n immer\n);\nvar setAutoFreeze = immer.setAutoFreeze.bind(immer);\nvar setUseStrictShallowCopy = immer.setUseStrictShallowCopy.bind(immer);\nvar applyPatches = immer.applyPatches.bind(immer);\nvar createDraft = immer.createDraft.bind(immer);\nvar finishDraft = immer.finishDraft.bind(immer);\nfunction castDraft(value) {\n return value;\n}\nfunction castImmutable(value) {\n return value;\n}\nexport {\n Immer2 as Immer,\n applyPatches,\n castDraft,\n castImmutable,\n createDraft,\n current,\n enableMapSet,\n enablePatches,\n finishDraft,\n freeze,\n DRAFTABLE as immerable,\n isDraft,\n isDraftable,\n NOTHING as nothing,\n original,\n produce,\n produceWithPatches,\n setAutoFreeze,\n setUseStrictShallowCopy\n};\n//# sourceMappingURL=immer.mjs.map","import { produce, Draft } from 'immer';\n\nexport function createState<T = unknown>(\n fn: (draft: Draft<T>, ...args: any[]) => void\n): (state: T, ...args: any[]) => T {\n return (state: T, ...args: any[]): T => {\n return produce(state, (draft) => {\n fn(draft, ...args);\n });\n };\n}\n"],"names":["root","factory","exports","module","define","amd","this","__webpack_require__","definition","key","o","Object","defineProperty","enumerable","get","obj","prop","prototype","hasOwnProperty","call","Symbol","toStringTag","value","NOTHING","for","DRAFTABLE","DRAFT_STATE","die","error","args","Error","getPrototypeOf","isDraft","isDraftable","isPlainObject","Array","isArray","constructor","isMap","isSet","objectCtorString","toString","proto","Ctor","Function","each","iter","getArchtype","Reflect","ownKeys","forEach","entry","index","thing","state","type_","has","set","propOrOldValue","t","add","target","Map","Set","latest","copy_","base_","shallowCopy","base","strict","slice","isPlain","descriptors","getOwnPropertyDescriptors","keys","i","length","desc","writable","configurable","create","assign","freeze","deep","isFrozen","clear","delete","dontMutateFrozenCollections","entries","currentScope","plugins","getPlugin","pluginKey","plugin","getCurrentScope","usePatchesInScope","scope","patchListener","patches_","inversePatches_","patchListener_","revokeScope","leaveScope","drafts_","revokeDraft","parent_","enterScope","immer2","immer_","canAutoFreeze_","unfinalizedDrafts_","draft","revoke_","revoked_","processResult","result","baseDraft","modified_","finalize","maybeFreeze","generateReplacementPatches_","rootScope","path","childValue","finalizeProperty","scope_","finalized_","resultEach","isSet2","generatePatches_","parentState","targetObject","rootPath","targetIsSet","res","assigned_","concat","autoFreeze_","propertyIsEnumerable","objectTraps","source","getDescriptorFromProto","draft_","readPropFromProto","peek","prepareCopy","createProxy","current2","currentState","x","y","markChanged","Number","isNaN","deleteProperty","getOwnPropertyDescriptor","owner","setPrototypeOf","arrayTraps","useStrictShallowCopy_","parent","proxyMap_","proxySet_","isManual_","traps","revoke","proxy","Proxy","revocable","createProxyProxy","push","currentImpl","copy","fn","arguments","apply","immer","config","produce","recipe","defaultBase","self","base2","hasError","p","ip","produceWithPatches","patches","inversePatches","autoFreeze","setAutoFreeze","useStrictShallowCopy","setUseStrictShallowCopy","createDraft","finishDraft","applyPatches","patch","op","applyPatchesImpl","applyPatches_","createState","bind"],"sourceRoot":""}
1
+ {"version":3,"file":"dist/createState.js","mappings":"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","sources":["webpack://apprun/webpack/universalModuleDefinition","webpack://apprun/webpack/bootstrap","webpack://apprun/webpack/runtime/define property getters","webpack://apprun/webpack/runtime/hasOwnProperty shorthand","webpack://apprun/webpack/runtime/make namespace object","webpack://apprun/./node_modules/immer/dist/immer.mjs","webpack://apprun/./src/createState.ts"],"sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"apprun\"] = factory();\n\telse\n\t\troot[\"apprun\"] = factory();\n})(this, () => {\nreturn ","// The require scope\nvar __webpack_require__ = {};\n\n","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","// src/utils/env.ts\nvar NOTHING = Symbol.for(\"immer-nothing\");\nvar DRAFTABLE = Symbol.for(\"immer-draftable\");\nvar DRAFT_STATE = Symbol.for(\"immer-state\");\n\n// src/utils/errors.ts\nvar errors = process.env.NODE_ENV !== \"production\" ? [\n // All error codes, starting by 0:\n function(plugin) {\n return `The plugin for '${plugin}' has not been loaded into Immer. To enable the plugin, import and call \\`enable${plugin}()\\` when initializing your application.`;\n },\n function(thing) {\n return `produce can only be called on things that are draftable: plain objects, arrays, Map, Set or classes that are marked with '[immerable]: true'. Got '${thing}'`;\n },\n \"This object has been frozen and should not be mutated\",\n function(data) {\n return \"Cannot use a proxy that has been revoked. Did you pass an object from inside an immer function to an async process? \" + data;\n },\n \"An immer producer returned a new value *and* modified its draft. Either return a new value *or* modify the draft.\",\n \"Immer forbids circular references\",\n \"The first or second argument to `produce` must be a function\",\n \"The third argument to `produce` must be a function or undefined\",\n \"First argument to `createDraft` must be a plain object, an array, or an immerable object\",\n \"First argument to `finishDraft` must be a draft returned by `createDraft`\",\n function(thing) {\n return `'current' expects a draft, got: ${thing}`;\n },\n \"Object.defineProperty() cannot be used on an Immer draft\",\n \"Object.setPrototypeOf() cannot be used on an Immer draft\",\n \"Immer only supports deleting array indices\",\n \"Immer only supports setting array indices and the 'length' property\",\n function(thing) {\n return `'original' expects a draft, got: ${thing}`;\n }\n // Note: if more errors are added, the errorOffset in Patches.ts should be increased\n // See Patches.ts for additional errors\n] : [];\nfunction die(error, ...args) {\n if (process.env.NODE_ENV !== \"production\") {\n const e = errors[error];\n const msg = typeof e === \"function\" ? e.apply(null, args) : e;\n throw new Error(`[Immer] ${msg}`);\n }\n throw new Error(\n `[Immer] minified error nr: ${error}. Full error at: https://bit.ly/3cXEKWf`\n );\n}\n\n// src/utils/common.ts\nvar getPrototypeOf = Object.getPrototypeOf;\nfunction isDraft(value) {\n return !!value && !!value[DRAFT_STATE];\n}\nfunction isDraftable(value) {\n if (!value)\n return false;\n return isPlainObject(value) || Array.isArray(value) || !!value[DRAFTABLE] || !!value.constructor?.[DRAFTABLE] || isMap(value) || isSet(value);\n}\nvar objectCtorString = Object.prototype.constructor.toString();\nfunction isPlainObject(value) {\n if (!value || typeof value !== \"object\")\n return false;\n const proto = getPrototypeOf(value);\n if (proto === null) {\n return true;\n }\n const Ctor = Object.hasOwnProperty.call(proto, \"constructor\") && proto.constructor;\n if (Ctor === Object)\n return true;\n return typeof Ctor == \"function\" && Function.toString.call(Ctor) === objectCtorString;\n}\nfunction original(value) {\n if (!isDraft(value))\n die(15, value);\n return value[DRAFT_STATE].base_;\n}\nfunction each(obj, iter) {\n if (getArchtype(obj) === 0 /* Object */) {\n Reflect.ownKeys(obj).forEach((key) => {\n iter(key, obj[key], obj);\n });\n } else {\n obj.forEach((entry, index) => iter(index, entry, obj));\n }\n}\nfunction getArchtype(thing) {\n const state = thing[DRAFT_STATE];\n return state ? state.type_ : Array.isArray(thing) ? 1 /* Array */ : isMap(thing) ? 2 /* Map */ : isSet(thing) ? 3 /* Set */ : 0 /* Object */;\n}\nfunction has(thing, prop) {\n return getArchtype(thing) === 2 /* Map */ ? thing.has(prop) : Object.prototype.hasOwnProperty.call(thing, prop);\n}\nfunction get(thing, prop) {\n return getArchtype(thing) === 2 /* Map */ ? thing.get(prop) : thing[prop];\n}\nfunction set(thing, propOrOldValue, value) {\n const t = getArchtype(thing);\n if (t === 2 /* Map */)\n thing.set(propOrOldValue, value);\n else if (t === 3 /* Set */) {\n thing.add(value);\n } else\n thing[propOrOldValue] = value;\n}\nfunction is(x, y) {\n if (x === y) {\n return x !== 0 || 1 / x === 1 / y;\n } else {\n return x !== x && y !== y;\n }\n}\nfunction isMap(target) {\n return target instanceof Map;\n}\nfunction isSet(target) {\n return target instanceof Set;\n}\nfunction latest(state) {\n return state.copy_ || state.base_;\n}\nfunction shallowCopy(base, strict) {\n if (isMap(base)) {\n return new Map(base);\n }\n if (isSet(base)) {\n return new Set(base);\n }\n if (Array.isArray(base))\n return Array.prototype.slice.call(base);\n const isPlain = isPlainObject(base);\n if (strict === true || strict === \"class_only\" && !isPlain) {\n const descriptors = Object.getOwnPropertyDescriptors(base);\n delete descriptors[DRAFT_STATE];\n let keys = Reflect.ownKeys(descriptors);\n for (let i = 0; i < keys.length; i++) {\n const key = keys[i];\n const desc = descriptors[key];\n if (desc.writable === false) {\n desc.writable = true;\n desc.configurable = true;\n }\n if (desc.get || desc.set)\n descriptors[key] = {\n configurable: true,\n writable: true,\n // could live with !!desc.set as well here...\n enumerable: desc.enumerable,\n value: base[key]\n };\n }\n return Object.create(getPrototypeOf(base), descriptors);\n } else {\n const proto = getPrototypeOf(base);\n if (proto !== null && isPlain) {\n return { ...base };\n }\n const obj = Object.create(proto);\n return Object.assign(obj, base);\n }\n}\nfunction freeze(obj, deep = false) {\n if (isFrozen(obj) || isDraft(obj) || !isDraftable(obj))\n return obj;\n if (getArchtype(obj) > 1) {\n obj.set = obj.add = obj.clear = obj.delete = dontMutateFrozenCollections;\n }\n Object.freeze(obj);\n if (deep)\n Object.entries(obj).forEach(([key, value]) => freeze(value, true));\n return obj;\n}\nfunction dontMutateFrozenCollections() {\n die(2);\n}\nfunction isFrozen(obj) {\n return Object.isFrozen(obj);\n}\n\n// src/utils/plugins.ts\nvar plugins = {};\nfunction getPlugin(pluginKey) {\n const plugin = plugins[pluginKey];\n if (!plugin) {\n die(0, pluginKey);\n }\n return plugin;\n}\nfunction loadPlugin(pluginKey, implementation) {\n if (!plugins[pluginKey])\n plugins[pluginKey] = implementation;\n}\n\n// src/core/scope.ts\nvar currentScope;\nfunction getCurrentScope() {\n return currentScope;\n}\nfunction createScope(parent_, immer_) {\n return {\n drafts_: [],\n parent_,\n immer_,\n // Whenever the modified draft contains a draft from another scope, we\n // need to prevent auto-freezing so the unowned draft can be finalized.\n canAutoFreeze_: true,\n unfinalizedDrafts_: 0\n };\n}\nfunction usePatchesInScope(scope, patchListener) {\n if (patchListener) {\n getPlugin(\"Patches\");\n scope.patches_ = [];\n scope.inversePatches_ = [];\n scope.patchListener_ = patchListener;\n }\n}\nfunction revokeScope(scope) {\n leaveScope(scope);\n scope.drafts_.forEach(revokeDraft);\n scope.drafts_ = null;\n}\nfunction leaveScope(scope) {\n if (scope === currentScope) {\n currentScope = scope.parent_;\n }\n}\nfunction enterScope(immer2) {\n return currentScope = createScope(currentScope, immer2);\n}\nfunction revokeDraft(draft) {\n const state = draft[DRAFT_STATE];\n if (state.type_ === 0 /* Object */ || state.type_ === 1 /* Array */)\n state.revoke_();\n else\n state.revoked_ = true;\n}\n\n// src/core/finalize.ts\nfunction processResult(result, scope) {\n scope.unfinalizedDrafts_ = scope.drafts_.length;\n const baseDraft = scope.drafts_[0];\n const isReplaced = result !== void 0 && result !== baseDraft;\n if (isReplaced) {\n if (baseDraft[DRAFT_STATE].modified_) {\n revokeScope(scope);\n die(4);\n }\n if (isDraftable(result)) {\n result = finalize(scope, result);\n if (!scope.parent_)\n maybeFreeze(scope, result);\n }\n if (scope.patches_) {\n getPlugin(\"Patches\").generateReplacementPatches_(\n baseDraft[DRAFT_STATE].base_,\n result,\n scope.patches_,\n scope.inversePatches_\n );\n }\n } else {\n result = finalize(scope, baseDraft, []);\n }\n revokeScope(scope);\n if (scope.patches_) {\n scope.patchListener_(scope.patches_, scope.inversePatches_);\n }\n return result !== NOTHING ? result : void 0;\n}\nfunction finalize(rootScope, value, path) {\n if (isFrozen(value))\n return value;\n const state = value[DRAFT_STATE];\n if (!state) {\n each(\n value,\n (key, childValue) => finalizeProperty(rootScope, state, value, key, childValue, path)\n );\n return value;\n }\n if (state.scope_ !== rootScope)\n return value;\n if (!state.modified_) {\n maybeFreeze(rootScope, state.base_, true);\n return state.base_;\n }\n if (!state.finalized_) {\n state.finalized_ = true;\n state.scope_.unfinalizedDrafts_--;\n const result = state.copy_;\n let resultEach = result;\n let isSet2 = false;\n if (state.type_ === 3 /* Set */) {\n resultEach = new Set(result);\n result.clear();\n isSet2 = true;\n }\n each(\n resultEach,\n (key, childValue) => finalizeProperty(rootScope, state, result, key, childValue, path, isSet2)\n );\n maybeFreeze(rootScope, result, false);\n if (path && rootScope.patches_) {\n getPlugin(\"Patches\").generatePatches_(\n state,\n path,\n rootScope.patches_,\n rootScope.inversePatches_\n );\n }\n }\n return state.copy_;\n}\nfunction finalizeProperty(rootScope, parentState, targetObject, prop, childValue, rootPath, targetIsSet) {\n if (process.env.NODE_ENV !== \"production\" && childValue === targetObject)\n die(5);\n if (isDraft(childValue)) {\n const path = rootPath && parentState && parentState.type_ !== 3 /* Set */ && // Set objects are atomic since they have no keys.\n !has(parentState.assigned_, prop) ? rootPath.concat(prop) : void 0;\n const res = finalize(rootScope, childValue, path);\n set(targetObject, prop, res);\n if (isDraft(res)) {\n rootScope.canAutoFreeze_ = false;\n } else\n return;\n } else if (targetIsSet) {\n targetObject.add(childValue);\n }\n if (isDraftable(childValue) && !isFrozen(childValue)) {\n if (!rootScope.immer_.autoFreeze_ && rootScope.unfinalizedDrafts_ < 1) {\n return;\n }\n finalize(rootScope, childValue);\n if ((!parentState || !parentState.scope_.parent_) && typeof prop !== \"symbol\" && Object.prototype.propertyIsEnumerable.call(targetObject, prop))\n maybeFreeze(rootScope, childValue);\n }\n}\nfunction maybeFreeze(scope, value, deep = false) {\n if (!scope.parent_ && scope.immer_.autoFreeze_ && scope.canAutoFreeze_) {\n freeze(value, deep);\n }\n}\n\n// src/core/proxy.ts\nfunction createProxyProxy(base, parent) {\n const isArray = Array.isArray(base);\n const state = {\n type_: isArray ? 1 /* Array */ : 0 /* Object */,\n // Track which produce call this is associated with.\n scope_: parent ? parent.scope_ : getCurrentScope(),\n // True for both shallow and deep changes.\n modified_: false,\n // Used during finalization.\n finalized_: false,\n // Track which properties have been assigned (true) or deleted (false).\n assigned_: {},\n // The parent draft state.\n parent_: parent,\n // The base state.\n base_: base,\n // The base proxy.\n draft_: null,\n // set below\n // The base copy with any updated values.\n copy_: null,\n // Called by the `produce` function.\n revoke_: null,\n isManual_: false\n };\n let target = state;\n let traps = objectTraps;\n if (isArray) {\n target = [state];\n traps = arrayTraps;\n }\n const { revoke, proxy } = Proxy.revocable(target, traps);\n state.draft_ = proxy;\n state.revoke_ = revoke;\n return proxy;\n}\nvar objectTraps = {\n get(state, prop) {\n if (prop === DRAFT_STATE)\n return state;\n const source = latest(state);\n if (!has(source, prop)) {\n return readPropFromProto(state, source, prop);\n }\n const value = source[prop];\n if (state.finalized_ || !isDraftable(value)) {\n return value;\n }\n if (value === peek(state.base_, prop)) {\n prepareCopy(state);\n return state.copy_[prop] = createProxy(value, state);\n }\n return value;\n },\n has(state, prop) {\n return prop in latest(state);\n },\n ownKeys(state) {\n return Reflect.ownKeys(latest(state));\n },\n set(state, prop, value) {\n const desc = getDescriptorFromProto(latest(state), prop);\n if (desc?.set) {\n desc.set.call(state.draft_, value);\n return true;\n }\n if (!state.modified_) {\n const current2 = peek(latest(state), prop);\n const currentState = current2?.[DRAFT_STATE];\n if (currentState && currentState.base_ === value) {\n state.copy_[prop] = value;\n state.assigned_[prop] = false;\n return true;\n }\n if (is(value, current2) && (value !== void 0 || has(state.base_, prop)))\n return true;\n prepareCopy(state);\n markChanged(state);\n }\n if (state.copy_[prop] === value && // special case: handle new props with value 'undefined'\n (value !== void 0 || prop in state.copy_) || // special case: NaN\n Number.isNaN(value) && Number.isNaN(state.copy_[prop]))\n return true;\n state.copy_[prop] = value;\n state.assigned_[prop] = true;\n return true;\n },\n deleteProperty(state, prop) {\n if (peek(state.base_, prop) !== void 0 || prop in state.base_) {\n state.assigned_[prop] = false;\n prepareCopy(state);\n markChanged(state);\n } else {\n delete state.assigned_[prop];\n }\n if (state.copy_) {\n delete state.copy_[prop];\n }\n return true;\n },\n // Note: We never coerce `desc.value` into an Immer draft, because we can't make\n // the same guarantee in ES5 mode.\n getOwnPropertyDescriptor(state, prop) {\n const owner = latest(state);\n const desc = Reflect.getOwnPropertyDescriptor(owner, prop);\n if (!desc)\n return desc;\n return {\n writable: true,\n configurable: state.type_ !== 1 /* Array */ || prop !== \"length\",\n enumerable: desc.enumerable,\n value: owner[prop]\n };\n },\n defineProperty() {\n die(11);\n },\n getPrototypeOf(state) {\n return getPrototypeOf(state.base_);\n },\n setPrototypeOf() {\n die(12);\n }\n};\nvar arrayTraps = {};\neach(objectTraps, (key, fn) => {\n arrayTraps[key] = function() {\n arguments[0] = arguments[0][0];\n return fn.apply(this, arguments);\n };\n});\narrayTraps.deleteProperty = function(state, prop) {\n if (process.env.NODE_ENV !== \"production\" && isNaN(parseInt(prop)))\n die(13);\n return arrayTraps.set.call(this, state, prop, void 0);\n};\narrayTraps.set = function(state, prop, value) {\n if (process.env.NODE_ENV !== \"production\" && prop !== \"length\" && isNaN(parseInt(prop)))\n die(14);\n return objectTraps.set.call(this, state[0], prop, value, state[0]);\n};\nfunction peek(draft, prop) {\n const state = draft[DRAFT_STATE];\n const source = state ? latest(state) : draft;\n return source[prop];\n}\nfunction readPropFromProto(state, source, prop) {\n const desc = getDescriptorFromProto(source, prop);\n return desc ? `value` in desc ? desc.value : (\n // This is a very special case, if the prop is a getter defined by the\n // prototype, we should invoke it with the draft as context!\n desc.get?.call(state.draft_)\n ) : void 0;\n}\nfunction getDescriptorFromProto(source, prop) {\n if (!(prop in source))\n return void 0;\n let proto = getPrototypeOf(source);\n while (proto) {\n const desc = Object.getOwnPropertyDescriptor(proto, prop);\n if (desc)\n return desc;\n proto = getPrototypeOf(proto);\n }\n return void 0;\n}\nfunction markChanged(state) {\n if (!state.modified_) {\n state.modified_ = true;\n if (state.parent_) {\n markChanged(state.parent_);\n }\n }\n}\nfunction prepareCopy(state) {\n if (!state.copy_) {\n state.copy_ = shallowCopy(\n state.base_,\n state.scope_.immer_.useStrictShallowCopy_\n );\n }\n}\n\n// src/core/immerClass.ts\nvar Immer2 = class {\n constructor(config) {\n this.autoFreeze_ = true;\n this.useStrictShallowCopy_ = false;\n /**\n * The `produce` function takes a value and a \"recipe function\" (whose\n * return value often depends on the base state). The recipe function is\n * free to mutate its first argument however it wants. All mutations are\n * only ever applied to a __copy__ of the base state.\n *\n * Pass only a function to create a \"curried producer\" which relieves you\n * from passing the recipe function every time.\n *\n * Only plain objects and arrays are made mutable. All other objects are\n * considered uncopyable.\n *\n * Note: This function is __bound__ to its `Immer` instance.\n *\n * @param {any} base - the initial state\n * @param {Function} recipe - function that receives a proxy of the base state as first argument and which can be freely modified\n * @param {Function} patchListener - optional function that will be called with all the patches produced here\n * @returns {any} a new state, or the initial state if nothing was modified\n */\n this.produce = (base, recipe, patchListener) => {\n if (typeof base === \"function\" && typeof recipe !== \"function\") {\n const defaultBase = recipe;\n recipe = base;\n const self = this;\n return function curriedProduce(base2 = defaultBase, ...args) {\n return self.produce(base2, (draft) => recipe.call(this, draft, ...args));\n };\n }\n if (typeof recipe !== \"function\")\n die(6);\n if (patchListener !== void 0 && typeof patchListener !== \"function\")\n die(7);\n let result;\n if (isDraftable(base)) {\n const scope = enterScope(this);\n const proxy = createProxy(base, void 0);\n let hasError = true;\n try {\n result = recipe(proxy);\n hasError = false;\n } finally {\n if (hasError)\n revokeScope(scope);\n else\n leaveScope(scope);\n }\n usePatchesInScope(scope, patchListener);\n return processResult(result, scope);\n } else if (!base || typeof base !== \"object\") {\n result = recipe(base);\n if (result === void 0)\n result = base;\n if (result === NOTHING)\n result = void 0;\n if (this.autoFreeze_)\n freeze(result, true);\n if (patchListener) {\n const p = [];\n const ip = [];\n getPlugin(\"Patches\").generateReplacementPatches_(base, result, p, ip);\n patchListener(p, ip);\n }\n return result;\n } else\n die(1, base);\n };\n this.produceWithPatches = (base, recipe) => {\n if (typeof base === \"function\") {\n return (state, ...args) => this.produceWithPatches(state, (draft) => base(draft, ...args));\n }\n let patches, inversePatches;\n const result = this.produce(base, recipe, (p, ip) => {\n patches = p;\n inversePatches = ip;\n });\n return [result, patches, inversePatches];\n };\n if (typeof config?.autoFreeze === \"boolean\")\n this.setAutoFreeze(config.autoFreeze);\n if (typeof config?.useStrictShallowCopy === \"boolean\")\n this.setUseStrictShallowCopy(config.useStrictShallowCopy);\n }\n createDraft(base) {\n if (!isDraftable(base))\n die(8);\n if (isDraft(base))\n base = current(base);\n const scope = enterScope(this);\n const proxy = createProxy(base, void 0);\n proxy[DRAFT_STATE].isManual_ = true;\n leaveScope(scope);\n return proxy;\n }\n finishDraft(draft, patchListener) {\n const state = draft && draft[DRAFT_STATE];\n if (!state || !state.isManual_)\n die(9);\n const { scope_: scope } = state;\n usePatchesInScope(scope, patchListener);\n return processResult(void 0, scope);\n }\n /**\n * Pass true to automatically freeze all copies created by Immer.\n *\n * By default, auto-freezing is enabled.\n */\n setAutoFreeze(value) {\n this.autoFreeze_ = value;\n }\n /**\n * Pass true to enable strict shallow copy.\n *\n * By default, immer does not copy the object descriptors such as getter, setter and non-enumrable properties.\n */\n setUseStrictShallowCopy(value) {\n this.useStrictShallowCopy_ = value;\n }\n applyPatches(base, patches) {\n let i;\n for (i = patches.length - 1; i >= 0; i--) {\n const patch = patches[i];\n if (patch.path.length === 0 && patch.op === \"replace\") {\n base = patch.value;\n break;\n }\n }\n if (i > -1) {\n patches = patches.slice(i + 1);\n }\n const applyPatchesImpl = getPlugin(\"Patches\").applyPatches_;\n if (isDraft(base)) {\n return applyPatchesImpl(base, patches);\n }\n return this.produce(\n base,\n (draft) => applyPatchesImpl(draft, patches)\n );\n }\n};\nfunction createProxy(value, parent) {\n const draft = isMap(value) ? getPlugin(\"MapSet\").proxyMap_(value, parent) : isSet(value) ? getPlugin(\"MapSet\").proxySet_(value, parent) : createProxyProxy(value, parent);\n const scope = parent ? parent.scope_ : getCurrentScope();\n scope.drafts_.push(draft);\n return draft;\n}\n\n// src/core/current.ts\nfunction current(value) {\n if (!isDraft(value))\n die(10, value);\n return currentImpl(value);\n}\nfunction currentImpl(value) {\n if (!isDraftable(value) || isFrozen(value))\n return value;\n const state = value[DRAFT_STATE];\n let copy;\n if (state) {\n if (!state.modified_)\n return state.base_;\n state.finalized_ = true;\n copy = shallowCopy(value, state.scope_.immer_.useStrictShallowCopy_);\n } else {\n copy = shallowCopy(value, true);\n }\n each(copy, (key, childValue) => {\n set(copy, key, currentImpl(childValue));\n });\n if (state) {\n state.finalized_ = false;\n }\n return copy;\n}\n\n// src/plugins/patches.ts\nfunction enablePatches() {\n const errorOffset = 16;\n if (process.env.NODE_ENV !== \"production\") {\n errors.push(\n 'Sets cannot have \"replace\" patches.',\n function(op) {\n return \"Unsupported patch operation: \" + op;\n },\n function(path) {\n return \"Cannot apply patch, path doesn't resolve: \" + path;\n },\n \"Patching reserved attributes like __proto__, prototype and constructor is not allowed\"\n );\n }\n const REPLACE = \"replace\";\n const ADD = \"add\";\n const REMOVE = \"remove\";\n function generatePatches_(state, basePath, patches, inversePatches) {\n switch (state.type_) {\n case 0 /* Object */:\n case 2 /* Map */:\n return generatePatchesFromAssigned(\n state,\n basePath,\n patches,\n inversePatches\n );\n case 1 /* Array */:\n return generateArrayPatches(state, basePath, patches, inversePatches);\n case 3 /* Set */:\n return generateSetPatches(\n state,\n basePath,\n patches,\n inversePatches\n );\n }\n }\n function generateArrayPatches(state, basePath, patches, inversePatches) {\n let { base_, assigned_ } = state;\n let copy_ = state.copy_;\n if (copy_.length < base_.length) {\n ;\n [base_, copy_] = [copy_, base_];\n [patches, inversePatches] = [inversePatches, patches];\n }\n for (let i = 0; i < base_.length; i++) {\n if (assigned_[i] && copy_[i] !== base_[i]) {\n const path = basePath.concat([i]);\n patches.push({\n op: REPLACE,\n path,\n // Need to maybe clone it, as it can in fact be the original value\n // due to the base/copy inversion at the start of this function\n value: clonePatchValueIfNeeded(copy_[i])\n });\n inversePatches.push({\n op: REPLACE,\n path,\n value: clonePatchValueIfNeeded(base_[i])\n });\n }\n }\n for (let i = base_.length; i < copy_.length; i++) {\n const path = basePath.concat([i]);\n patches.push({\n op: ADD,\n path,\n // Need to maybe clone it, as it can in fact be the original value\n // due to the base/copy inversion at the start of this function\n value: clonePatchValueIfNeeded(copy_[i])\n });\n }\n for (let i = copy_.length - 1; base_.length <= i; --i) {\n const path = basePath.concat([i]);\n inversePatches.push({\n op: REMOVE,\n path\n });\n }\n }\n function generatePatchesFromAssigned(state, basePath, patches, inversePatches) {\n const { base_, copy_ } = state;\n each(state.assigned_, (key, assignedValue) => {\n const origValue = get(base_, key);\n const value = get(copy_, key);\n const op = !assignedValue ? REMOVE : has(base_, key) ? REPLACE : ADD;\n if (origValue === value && op === REPLACE)\n return;\n const path = basePath.concat(key);\n patches.push(op === REMOVE ? { op, path } : { op, path, value });\n inversePatches.push(\n op === ADD ? { op: REMOVE, path } : op === REMOVE ? { op: ADD, path, value: clonePatchValueIfNeeded(origValue) } : { op: REPLACE, path, value: clonePatchValueIfNeeded(origValue) }\n );\n });\n }\n function generateSetPatches(state, basePath, patches, inversePatches) {\n let { base_, copy_ } = state;\n let i = 0;\n base_.forEach((value) => {\n if (!copy_.has(value)) {\n const path = basePath.concat([i]);\n patches.push({\n op: REMOVE,\n path,\n value\n });\n inversePatches.unshift({\n op: ADD,\n path,\n value\n });\n }\n i++;\n });\n i = 0;\n copy_.forEach((value) => {\n if (!base_.has(value)) {\n const path = basePath.concat([i]);\n patches.push({\n op: ADD,\n path,\n value\n });\n inversePatches.unshift({\n op: REMOVE,\n path,\n value\n });\n }\n i++;\n });\n }\n function generateReplacementPatches_(baseValue, replacement, patches, inversePatches) {\n patches.push({\n op: REPLACE,\n path: [],\n value: replacement === NOTHING ? void 0 : replacement\n });\n inversePatches.push({\n op: REPLACE,\n path: [],\n value: baseValue\n });\n }\n function applyPatches_(draft, patches) {\n patches.forEach((patch) => {\n const { path, op } = patch;\n let base = draft;\n for (let i = 0; i < path.length - 1; i++) {\n const parentType = getArchtype(base);\n let p = path[i];\n if (typeof p !== \"string\" && typeof p !== \"number\") {\n p = \"\" + p;\n }\n if ((parentType === 0 /* Object */ || parentType === 1 /* Array */) && (p === \"__proto__\" || p === \"constructor\"))\n die(errorOffset + 3);\n if (typeof base === \"function\" && p === \"prototype\")\n die(errorOffset + 3);\n base = get(base, p);\n if (typeof base !== \"object\")\n die(errorOffset + 2, path.join(\"/\"));\n }\n const type = getArchtype(base);\n const value = deepClonePatchValue(patch.value);\n const key = path[path.length - 1];\n switch (op) {\n case REPLACE:\n switch (type) {\n case 2 /* Map */:\n return base.set(key, value);\n case 3 /* Set */:\n die(errorOffset);\n default:\n return base[key] = value;\n }\n case ADD:\n switch (type) {\n case 1 /* Array */:\n return key === \"-\" ? base.push(value) : base.splice(key, 0, value);\n case 2 /* Map */:\n return base.set(key, value);\n case 3 /* Set */:\n return base.add(value);\n default:\n return base[key] = value;\n }\n case REMOVE:\n switch (type) {\n case 1 /* Array */:\n return base.splice(key, 1);\n case 2 /* Map */:\n return base.delete(key);\n case 3 /* Set */:\n return base.delete(patch.value);\n default:\n return delete base[key];\n }\n default:\n die(errorOffset + 1, op);\n }\n });\n return draft;\n }\n function deepClonePatchValue(obj) {\n if (!isDraftable(obj))\n return obj;\n if (Array.isArray(obj))\n return obj.map(deepClonePatchValue);\n if (isMap(obj))\n return new Map(\n Array.from(obj.entries()).map(([k, v]) => [k, deepClonePatchValue(v)])\n );\n if (isSet(obj))\n return new Set(Array.from(obj).map(deepClonePatchValue));\n const cloned = Object.create(getPrototypeOf(obj));\n for (const key in obj)\n cloned[key] = deepClonePatchValue(obj[key]);\n if (has(obj, DRAFTABLE))\n cloned[DRAFTABLE] = obj[DRAFTABLE];\n return cloned;\n }\n function clonePatchValueIfNeeded(obj) {\n if (isDraft(obj)) {\n return deepClonePatchValue(obj);\n } else\n return obj;\n }\n loadPlugin(\"Patches\", {\n applyPatches_,\n generatePatches_,\n generateReplacementPatches_\n });\n}\n\n// src/plugins/mapset.ts\nfunction enableMapSet() {\n class DraftMap extends Map {\n constructor(target, parent) {\n super();\n this[DRAFT_STATE] = {\n type_: 2 /* Map */,\n parent_: parent,\n scope_: parent ? parent.scope_ : getCurrentScope(),\n modified_: false,\n finalized_: false,\n copy_: void 0,\n assigned_: void 0,\n base_: target,\n draft_: this,\n isManual_: false,\n revoked_: false\n };\n }\n get size() {\n return latest(this[DRAFT_STATE]).size;\n }\n has(key) {\n return latest(this[DRAFT_STATE]).has(key);\n }\n set(key, value) {\n const state = this[DRAFT_STATE];\n assertUnrevoked(state);\n if (!latest(state).has(key) || latest(state).get(key) !== value) {\n prepareMapCopy(state);\n markChanged(state);\n state.assigned_.set(key, true);\n state.copy_.set(key, value);\n state.assigned_.set(key, true);\n }\n return this;\n }\n delete(key) {\n if (!this.has(key)) {\n return false;\n }\n const state = this[DRAFT_STATE];\n assertUnrevoked(state);\n prepareMapCopy(state);\n markChanged(state);\n if (state.base_.has(key)) {\n state.assigned_.set(key, false);\n } else {\n state.assigned_.delete(key);\n }\n state.copy_.delete(key);\n return true;\n }\n clear() {\n const state = this[DRAFT_STATE];\n assertUnrevoked(state);\n if (latest(state).size) {\n prepareMapCopy(state);\n markChanged(state);\n state.assigned_ = /* @__PURE__ */ new Map();\n each(state.base_, (key) => {\n state.assigned_.set(key, false);\n });\n state.copy_.clear();\n }\n }\n forEach(cb, thisArg) {\n const state = this[DRAFT_STATE];\n latest(state).forEach((_value, key, _map) => {\n cb.call(thisArg, this.get(key), key, this);\n });\n }\n get(key) {\n const state = this[DRAFT_STATE];\n assertUnrevoked(state);\n const value = latest(state).get(key);\n if (state.finalized_ || !isDraftable(value)) {\n return value;\n }\n if (value !== state.base_.get(key)) {\n return value;\n }\n const draft = createProxy(value, state);\n prepareMapCopy(state);\n state.copy_.set(key, draft);\n return draft;\n }\n keys() {\n return latest(this[DRAFT_STATE]).keys();\n }\n values() {\n const iterator = this.keys();\n return {\n [Symbol.iterator]: () => this.values(),\n next: () => {\n const r = iterator.next();\n if (r.done)\n return r;\n const value = this.get(r.value);\n return {\n done: false,\n value\n };\n }\n };\n }\n entries() {\n const iterator = this.keys();\n return {\n [Symbol.iterator]: () => this.entries(),\n next: () => {\n const r = iterator.next();\n if (r.done)\n return r;\n const value = this.get(r.value);\n return {\n done: false,\n value: [r.value, value]\n };\n }\n };\n }\n [(DRAFT_STATE, Symbol.iterator)]() {\n return this.entries();\n }\n }\n function proxyMap_(target, parent) {\n return new DraftMap(target, parent);\n }\n function prepareMapCopy(state) {\n if (!state.copy_) {\n state.assigned_ = /* @__PURE__ */ new Map();\n state.copy_ = new Map(state.base_);\n }\n }\n class DraftSet extends Set {\n constructor(target, parent) {\n super();\n this[DRAFT_STATE] = {\n type_: 3 /* Set */,\n parent_: parent,\n scope_: parent ? parent.scope_ : getCurrentScope(),\n modified_: false,\n finalized_: false,\n copy_: void 0,\n base_: target,\n draft_: this,\n drafts_: /* @__PURE__ */ new Map(),\n revoked_: false,\n isManual_: false\n };\n }\n get size() {\n return latest(this[DRAFT_STATE]).size;\n }\n has(value) {\n const state = this[DRAFT_STATE];\n assertUnrevoked(state);\n if (!state.copy_) {\n return state.base_.has(value);\n }\n if (state.copy_.has(value))\n return true;\n if (state.drafts_.has(value) && state.copy_.has(state.drafts_.get(value)))\n return true;\n return false;\n }\n add(value) {\n const state = this[DRAFT_STATE];\n assertUnrevoked(state);\n if (!this.has(value)) {\n prepareSetCopy(state);\n markChanged(state);\n state.copy_.add(value);\n }\n return this;\n }\n delete(value) {\n if (!this.has(value)) {\n return false;\n }\n const state = this[DRAFT_STATE];\n assertUnrevoked(state);\n prepareSetCopy(state);\n markChanged(state);\n return state.copy_.delete(value) || (state.drafts_.has(value) ? state.copy_.delete(state.drafts_.get(value)) : (\n /* istanbul ignore next */\n false\n ));\n }\n clear() {\n const state = this[DRAFT_STATE];\n assertUnrevoked(state);\n if (latest(state).size) {\n prepareSetCopy(state);\n markChanged(state);\n state.copy_.clear();\n }\n }\n values() {\n const state = this[DRAFT_STATE];\n assertUnrevoked(state);\n prepareSetCopy(state);\n return state.copy_.values();\n }\n entries() {\n const state = this[DRAFT_STATE];\n assertUnrevoked(state);\n prepareSetCopy(state);\n return state.copy_.entries();\n }\n keys() {\n return this.values();\n }\n [(DRAFT_STATE, Symbol.iterator)]() {\n return this.values();\n }\n forEach(cb, thisArg) {\n const iterator = this.values();\n let result = iterator.next();\n while (!result.done) {\n cb.call(thisArg, result.value, result.value, this);\n result = iterator.next();\n }\n }\n }\n function proxySet_(target, parent) {\n return new DraftSet(target, parent);\n }\n function prepareSetCopy(state) {\n if (!state.copy_) {\n state.copy_ = /* @__PURE__ */ new Set();\n state.base_.forEach((value) => {\n if (isDraftable(value)) {\n const draft = createProxy(value, state);\n state.drafts_.set(value, draft);\n state.copy_.add(draft);\n } else {\n state.copy_.add(value);\n }\n });\n }\n }\n function assertUnrevoked(state) {\n if (state.revoked_)\n die(3, JSON.stringify(latest(state)));\n }\n loadPlugin(\"MapSet\", { proxyMap_, proxySet_ });\n}\n\n// src/immer.ts\nvar immer = new Immer2();\nvar produce = immer.produce;\nvar produceWithPatches = immer.produceWithPatches.bind(\n immer\n);\nvar setAutoFreeze = immer.setAutoFreeze.bind(immer);\nvar setUseStrictShallowCopy = immer.setUseStrictShallowCopy.bind(immer);\nvar applyPatches = immer.applyPatches.bind(immer);\nvar createDraft = immer.createDraft.bind(immer);\nvar finishDraft = immer.finishDraft.bind(immer);\nfunction castDraft(value) {\n return value;\n}\nfunction castImmutable(value) {\n return value;\n}\nexport {\n Immer2 as Immer,\n applyPatches,\n castDraft,\n castImmutable,\n createDraft,\n current,\n enableMapSet,\n enablePatches,\n finishDraft,\n freeze,\n DRAFTABLE as immerable,\n isDraft,\n isDraftable,\n NOTHING as nothing,\n original,\n produce,\n produceWithPatches,\n setAutoFreeze,\n setUseStrictShallowCopy\n};\n//# sourceMappingURL=immer.mjs.map","import { produce, Draft } from 'immer';\n\nexport function createState<T = unknown>(\n fn: (draft: Draft<T>, ...args: any[]) => void\n): (state: T, ...args: any[]) => T {\n return (state: T, ...args: any[]): T => {\n return produce(state, (draft) => {\n fn(draft, ...args);\n });\n };\n}\n"],"names":["root","factory","exports","module","define","amd","this","__webpack_require__","definition","key","o","Object","defineProperty","enumerable","get","obj","prop","prototype","hasOwnProperty","call","Symbol","toStringTag","value","NOTHING","for","DRAFTABLE","DRAFT_STATE","die","error","args","Error","getPrototypeOf","isDraft","isDraftable","isPlainObject","Array","isArray","constructor","isMap","isSet","objectCtorString","toString","proto","Ctor","Function","each","iter","getArchtype","Reflect","ownKeys","forEach","entry","index","thing","state","type_","has","set","propOrOldValue","t","add","target","Map","Set","latest","copy_","base_","shallowCopy","base","strict","slice","isPlain","descriptors","getOwnPropertyDescriptors","keys","i","length","desc","writable","configurable","create","assign","freeze","deep","isFrozen","clear","delete","dontMutateFrozenCollections","entries","currentScope","plugins","getPlugin","pluginKey","plugin","getCurrentScope","usePatchesInScope","scope","patchListener","patches_","inversePatches_","patchListener_","revokeScope","leaveScope","drafts_","revokeDraft","parent_","enterScope","immer2","immer_","canAutoFreeze_","unfinalizedDrafts_","draft","revoke_","revoked_","processResult","result","baseDraft","modified_","finalize","maybeFreeze","generateReplacementPatches_","rootScope","path","childValue","finalizeProperty","scope_","finalized_","resultEach","isSet2","generatePatches_","parentState","targetObject","rootPath","targetIsSet","res","assigned_","concat","autoFreeze_","propertyIsEnumerable","objectTraps","source","getDescriptorFromProto","draft_","readPropFromProto","peek","prepareCopy","createProxy","current2","currentState","x","y","markChanged","Number","isNaN","deleteProperty","getOwnPropertyDescriptor","owner","setPrototypeOf","arrayTraps","useStrictShallowCopy_","parent","proxyMap_","proxySet_","isManual_","traps","revoke","proxy","Proxy","revocable","createProxyProxy","push","currentImpl","copy","fn","arguments","apply","immer","config","produce","recipe","defaultBase","self","base2","hasError","p","ip","produceWithPatches","patches","inversePatches","autoFreeze","setAutoFreeze","useStrictShallowCopy","setUseStrictShallowCopy","createDraft","finishDraft","applyPatches","patch","op","applyPatchesImpl","applyPatches_","createState","bind"],"sourceRoot":""}
@@ -1,3 +1,15 @@
1
+ /**
2
+ * AppRun playground custom element.
3
+ *
4
+ * Generates an isolated preview document, compiles JSX/TypeScript in the
5
+ * browser, and renders the result with AppRun. The TypeScript CDN dependency
6
+ * uses an explicit version and browser bundle path so the `ts` global is
7
+ * available before preview compilation begins.
8
+ *
9
+ * Recent Changes:
10
+ * - Executes compiled script-style examples synchronously before the preview
11
+ * document finishes DOMContentLoaded, preserving startup configuration.
12
+ */
1
13
  import { app, Component } from './apprun';
2
14
  const styles = `
3
15
  .CodeMirror, .apprun-play iframe {
@@ -40,7 +52,7 @@ const code_html = code => `<!DOCTYPE html>
40
52
  margin: 2em;
41
53
  }
42
54
  </style>
43
- <script src="https://cdn.jsdelivr.net/npm/typescript@latest"></script>
55
+ <script src="https://cdn.jsdelivr.net/npm/typescript@5.8.3/lib/typescript.js"></script>
44
56
  <script src="dist/apprun-html.js"></script>
45
57
  </head>
46
58
  <body>
@@ -53,7 +65,7 @@ const compiled = ts.transpileModule(code, {
53
65
  "jsxFactory": "app.h",
54
66
  "jsxFragmentFactory": "app.Fragment",
55
67
  "target": "es2020",
56
- "module": "esnext",
68
+ "module": "none",
57
69
  },
58
70
  reportDiagnostics: true,
59
71
  });
@@ -77,7 +89,7 @@ if (compiled.diagnostics && compiled.diagnostics.length) {
77
89
  document.body.appendChild(pre);
78
90
  };
79
91
  const script = document.createElement('script');
80
- script.type = 'module';
92
+ script.type = 'text/javascript';
81
93
  script.text = compiled.outputText;
82
94
  document.body.appendChild(script);
83
95
  }
@@ -1 +1 @@
1
- {"version":3,"file":"apprun-code.js","sourceRoot":"","sources":["../src/apprun-code.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAI1C,MAAM,MAAM,GAAG;;;;;;;;;;;;;;;;;;;;CAoBd,CAAC;AAEF,MAAM,UAAU,GAAG,IAAI,CAAC,EAAE;IACxB,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC;SACjC,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC;SACrB,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC;SACrB,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC;SACvB,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;AAC3B,CAAC,CAAA;AAED,MAAM,SAAS,GAAG,IAAI,CAAC,EAAE,CAAC;;;;;;;;;;;;;;;;;sCAiBY,UAAU,CAAC,IAAI,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QAuC9C,CAAC;AAGT,MAAM,IAAK,SAAQ,SAAS;IAA5B;;QACE,SAAI,GAAG,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,EAAE;YAC7B,OAAO;gBACL,qBAAQ,MAAM,CAAS;gBACtB,SAAS,CAAC,CAAC;oBACV,eAAK,KAAK,EAAC,aAAa;wBACtB,kBAAQ,KAAK,EAAC,SAAS,GAAG,CACtB;oBACN,CAAC;wBACD,eAAK,KAAK,EAAC,aAAa;4BACtB,eAAK,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,WAAW;gCAChC,oBAAU,KAAK,EAAC,QAAQ,IAAE,IAAI,CAAY,CACtC;4BACN,eAAK,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,QAAQ;gCAC7B,kBAAQ,KAAK,EAAC,SAAS,GAAG,CACtB,CACF,CACP,CAAC;QACN,CAAC,CAAA;QAED,YAAO,GAAG,KAAK,CAAC,EAAE;YAChB,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC;YAChC,MAAM,OAAO,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC;YACjC,MAAM,SAAS,GAAG,KAAK,CAAC,WAAW,CAAC,CAAC;YACrC,MAAM,UAAU,GAAG,KAAK,CAAC,YAAY,CAAC,CAAC;YAEvC,IAAI,SAAS,CAAC;YACd,IAAI,OAAO,EAAE,CAAC;gBACZ,SAAS,GAAG,QAAQ,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;YAC/C,CAAC;iBAAM,CAAC;gBACN,SAAS,GAAG,OAAO,CAAC,sBAAsB;oBACxC,OAAO,CAAC,aAAa,CAAC,sBAAsB,CAAC;YACjD,CAAC;YAED,MAAM,IAAI,GAAG,SAAS,EAAE,SAAS,CAAC,WAAW;mBACxC,SAAS,EAAE,KAAK,CAAC,gBAAgB;mBACjC,OAAO,CAAC,WAAW,CAAA,CAAC,kBAAkB;YAE3C,IAAI,SAAS;gBAAE,SAAS,CAAC,KAAK,CAAC,OAAO,GAAG,MAAM,CAAC;YAEhD,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,UAAU,EAAE,CAAC;QACzC,CAAC,CAAA;QAGD,aAAQ,GAAG,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,UAAU,EAAE,EAAE,EAAE;YAC7C,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC;YAEhC,MAAM,QAAQ,GAAG,OAAO,CAAC,aAAa,CAAC,sBAAsB,CAAQ,CAAC;YACtE,IAAI,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC,uBAAuB,CAAC,CAAC;YAC5D,IAAI,CAAC,MAAM,IAAI,CAAC,QAAQ;gBAAE,OAAO;YAEjC,MAAM,QAAQ,GAAG,IAAI,CAAC,EAAE;gBACtB,MAAM,YAAY,GAAG,MAAM,CAAC,SAAS,EAAE,CAAC;gBACxC,MAAM,CAAC,UAAU,EAAE,YAAY,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;gBACtD,MAAM,GAAG,YAAY,CAAC;gBACtB,MAAM,GAAG,GAAG,MAAM,CAAC,aAAa,EAAE,QAAQ,CAAC;gBAC3C,IAAI,CAAC,GAAG;oBAAE,OAAO;gBACjB,GAAG,CAAC,IAAI,EAAE,CAAC;gBACX,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC;oBAC5B,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;;oBAEhB,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;gBAC7B,GAAG,CAAC,KAAK,EAAE,CAAC;YACd,CAAC,CAAA;YAED,IAAI,IAAI;gBAAE,QAAQ,CAAC,IAAI,CAAC,CAAC;YACzB,IAAI,SAAS,IAAI,CAAC,QAAQ;gBAAE,OAAO;YAEnC,IAAI,UAAU;gBAAE,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,KAAK,GAAG,UAAU,CAAC;YAEhE,IAAI,OAAO,UAAU,KAAK,WAAW,EAAE,CAAC;gBACtC,QAAQ,CAAC,OAAO,GAAG,GAAG,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;YACpD,CAAC;iBAAM,CAAC;gBACN,MAAM,MAAM,GAAG,UAAU,CAAC,YAAY,CAAC,QAAQ,EAAE;oBAC/C,WAAW,EAAE,IAAI;oBACjB,IAAI,EAAE,KAAK;iBACZ,CAAC,CAAC;gBACH,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;gBACtB,MAAM,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;YACvD,CAAC;QACH,CAAC,CAAA;IACH,CAAC;CAAA;AAED,GAAG,CAAC,YAAY,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC"}
1
+ {"version":3,"file":"apprun-code.js","sourceRoot":"","sources":["../src/apprun-code.tsx"],"names":[],"mappings":"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"}
@@ -1,3 +1,9 @@
1
+ /**
2
+ * AppRun documentation playground custom element.
3
+ *
4
+ * Compiles browser-global TypeScript/JSX examples into synchronous scripts so
5
+ * startup configuration runs before the preview document's DOMContentLoaded.
6
+ */
1
7
  import { app, Component } from './apprun';
2
8
  const popup_div = `<div id="play-popup" class="overlay">
3
9
  <style id="apprun-play-style">
@@ -123,7 +129,7 @@ const compiled = ts.transpileModule(code, {
123
129
  "jsxFactory": "app.h",
124
130
  "jsxFragmentFactory": "app.Fragment",
125
131
  "target": "es2020",
126
- "module": "esnext",
132
+ "module": "none",
127
133
  },
128
134
  reportDiagnostics: true,
129
135
  });
@@ -147,7 +153,7 @@ if (compiled.diagnostics && compiled.diagnostics.length) {
147
153
  document.body.appendChild(pre);
148
154
  };
149
155
  const script = document.createElement('script');
150
- script.type = 'module';
156
+ script.type = 'text/javascript';
151
157
  script.text = compiled.outputText;
152
158
  document.body.appendChild(script);
153
159
  }
@@ -1 +1 @@
1
- {"version":3,"file":"apprun-play.js","sourceRoot":"","sources":["../src/apprun-play.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"apprun-play.js","sourceRoot":"","sources":["../src/apprun-play.tsx"],"names":[],"mappings":"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"}
package/esm/apprun.js CHANGED
@@ -24,6 +24,7 @@
24
24
  * - Virtual DOM rendering with multiple renderer support
25
25
  * - Component lifecycle management
26
26
  * - Client-side routing with hash/path support
27
+ * - Explicit pretty-link path routing through app.use_prettyLink()
27
28
  * - Web Components integration
28
29
  * - React compatibility layer
29
30
  * - TypeScript support with strong typing
@@ -37,6 +38,7 @@
37
38
  * - Safer element access with proper type assertions
38
39
  *
39
40
  * Recent Changes:
41
+ * - Restored hash routing and normal browser navigation as the default; pretty-link interception is opt-in
40
42
  * - Modified addComponents to accept (element, components) where components is a key-value object with routes as keys and components as values
41
43
  * - Simplified component mounting API for better usability
42
44
  *
@@ -54,6 +56,8 @@
54
56
  * }
55
57
  *
56
58
  * // Mount multiple components
59
+ * // Required only when browser /path links should use SPA navigation.
60
+ * app.use_prettyLink();
57
61
  * app.addComponents(document.body, {
58
62
  * '/home': MyComponent,
59
63
  * '/about': AnotherComponent
@@ -95,22 +99,22 @@ if (!app.start) {
95
99
  app.query = app.query || app.runAsync;
96
100
  const NOOP = _ => { };
97
101
  app.on('/', NOOP);
102
+ app.on('#', NOOP);
98
103
  app.on('debug', _ => NOOP);
99
104
  app.on(ROUTER_EVENT, NOOP);
100
105
  app.on(ROUTER_404_EVENT, NOOP);
101
106
  app.route = route;
102
107
  app.on('route', url => app['route'] && app['route'](url));
108
+ let prettyLinks = false;
109
+ /** Select SPA path-link routing before DOMContentLoaded; hash routing is the default. */
110
+ app.use_prettyLink = (enabled = true) => {
111
+ prettyLinks = enabled;
112
+ };
103
113
  if (typeof document === 'object') {
104
114
  document.addEventListener("DOMContentLoaded", () => {
105
115
  const no_init_route = document.body.hasAttribute('apprun-no-init') || app['no-init-route'] || false;
106
- const use_hash = app.find('#') || app.find('#/') || false;
107
- // console.log(`AppRun ${app.version} started with ${use_hash ? 'hash' : 'path'} routing. Initial load: ${init_load ? 'disabled' : 'enabled'}.`);
108
- window.addEventListener('hashchange', () => route(location.hash));
109
- window.addEventListener('popstate', () => route(location.pathname));
110
- if (use_hash) {
111
- !no_init_route && route(location.hash);
112
- }
113
- else {
116
+ if (prettyLinks) {
117
+ window.addEventListener('popstate', () => route(location.pathname));
114
118
  !no_init_route && (() => {
115
119
  const basePath = app.basePath || '';
116
120
  let initialPath = location.pathname;
@@ -139,6 +143,10 @@ if (!app.start) {
139
143
  }
140
144
  });
141
145
  }
146
+ else {
147
+ window.addEventListener('hashchange', () => route(location.hash));
148
+ !no_init_route && route(location.hash);
149
+ }
142
150
  });
143
151
  }
144
152
  if (typeof window === 'object') {
package/esm/apprun.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"apprun.js","sourceRoot":"","sources":["../src/apprun.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"apprun.js","sourceRoot":"","sources":["../src/apprun.ts"],"names":[],"mappings":"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"}
package/esm/router.js CHANGED
@@ -9,7 +9,7 @@
9
9
  * 2. Path-based routing (/path)
10
10
  * - Works with browser history API
11
11
  * - Requires server configuration for SPA routing
12
- * - Handles popstate events automatically
12
+ * - Handles browser links and popstate after app.use_prettyLink() opts in before initialization
13
13
  * 3. Event-based navigation
14
14
  * - Routes trigger corresponding component events
15
15
  * - Automatic route parameter extraction
@@ -38,7 +38,7 @@
38
38
  *
39
39
  * // Navigate programmatically
40
40
  * app.run('route', '#/home');
41
- * route('/users/123'); // Direct routing
41
+ * route('/users/123'); // Direct routing does not require pretty-link mode
42
42
  *
43
43
  * // Hierarchical matching examples
44
44
  * app.on('/api', (operation, id) => // Handle /api/users/123);
@@ -50,6 +50,7 @@
50
50
  * // If handler found at /api, it receives: ('v1', 'users', '123')
51
51
  *
52
52
  * // Base Path Support (NEW):
53
+ * app.use_prettyLink(); // Enable automatic browser path navigation before initialization
53
54
  * app.basePath = '/myapp'; // For sub-directory deployments
54
55
  * // Links: <a href="/users/123"> (relative paths)
55
56
  * // Navigation: /myapp/users/123 (full path)
package/esm/router.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"router.js","sourceRoot":"","sources":["../src/router.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"router.js","sourceRoot":"","sources":["../src/router.ts"],"names":[],"mappings":"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"}
package/esm/types.js CHANGED
@@ -19,6 +19,7 @@
19
19
  * - ActionOptions: Action behavior options (render, history, global, callback)
20
20
  * - MountOptions: Component mounting options (global events, routing, transitions)
21
21
  * - AppStartOptions: Application startup configuration with lifecycle hooks
22
+ * - IApp.use_prettyLink: Explicit startup selection for path-link routing
22
23
  *
23
24
  * Features:
24
25
  * - Strong typing for component lifecycle
package/esm/types.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsDG"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuDG"}
@@ -3,24 +3,18 @@
3
3
  * Standards-compliant property/attribute handling with caching and special element support
4
4
  * Features: Skip logic for preserving user interactions during VDOM reconciliation
5
5
  * Exports: updateProps - Main function for DOM element property updates
6
- * Updated: 2025-01-14 - Skip logic for focus-sensitive (selection), scroll, and media properties
6
+ * Updated: 2026-07-13 - Restore stale class cleanup when first-render VDOM props are null
7
7
  */
8
8
  import { find, html, svg } from 'property-information';
9
9
  const ATTR_PROPS = '_props';
10
10
  const propertyInfoCache = new Map();
11
11
  // Merge old and new props, handling className -> class conversion and null cleanup
12
12
  function mergeProps(oldProps, newProps) {
13
- if (newProps) {
14
- newProps['class'] = newProps['class'] || newProps['className'];
15
- delete newProps['className'];
16
- }
13
+ newProps = newProps || {};
14
+ newProps['class'] = newProps['class'] || newProps['className'];
15
+ delete newProps['className'];
17
16
  if (!oldProps || Object.keys(oldProps).length === 0)
18
- return newProps || {};
19
- if (!newProps || Object.keys(newProps).length === 0) {
20
- const props = {};
21
- Object.keys(oldProps).forEach(p => props[p] = null);
22
- return props;
23
- }
17
+ return newProps;
24
18
  const props = {};
25
19
  Object.keys(oldProps).forEach(p => {
26
20
  if (!(p in newProps))