effect 4.0.0-beta.14 → 4.0.0-beta.16

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 (82) hide show
  1. package/dist/Channel.d.ts +6 -6
  2. package/dist/Channel.d.ts.map +1 -1
  3. package/dist/Channel.js +4 -4
  4. package/dist/Channel.js.map +1 -1
  5. package/dist/Effect.d.ts +7 -7
  6. package/dist/Effect.d.ts.map +1 -1
  7. package/dist/Effect.js.map +1 -1
  8. package/dist/Schema.d.ts +43 -0
  9. package/dist/Schema.d.ts.map +1 -1
  10. package/dist/Schema.js +37 -0
  11. package/dist/Schema.js.map +1 -1
  12. package/dist/SchemaParser.d.ts +5 -0
  13. package/dist/SchemaParser.d.ts.map +1 -1
  14. package/dist/SchemaParser.js +10 -0
  15. package/dist/SchemaParser.js.map +1 -1
  16. package/dist/SchemaTransformation.d.ts +70 -3
  17. package/dist/SchemaTransformation.d.ts.map +1 -1
  18. package/dist/SchemaTransformation.js +79 -4
  19. package/dist/SchemaTransformation.js.map +1 -1
  20. package/dist/Stream.d.ts +7 -7
  21. package/dist/Stream.d.ts.map +1 -1
  22. package/dist/Stream.js +8 -6
  23. package/dist/Stream.js.map +1 -1
  24. package/dist/Types.d.ts +70 -0
  25. package/dist/Types.d.ts.map +1 -1
  26. package/dist/internal/effect.js +4 -4
  27. package/dist/internal/effect.js.map +1 -1
  28. package/dist/internal/schema/schema.js +1 -0
  29. package/dist/internal/schema/schema.js.map +1 -1
  30. package/dist/unstable/ai/LanguageModel.d.ts +2 -0
  31. package/dist/unstable/ai/LanguageModel.d.ts.map +1 -1
  32. package/dist/unstable/ai/LanguageModel.js.map +1 -1
  33. package/dist/unstable/cli/Command.d.ts +34 -4
  34. package/dist/unstable/cli/Command.d.ts.map +1 -1
  35. package/dist/unstable/cli/Command.js +73 -24
  36. package/dist/unstable/cli/Command.js.map +1 -1
  37. package/dist/unstable/cli/GlobalFlag.d.ts +21 -56
  38. package/dist/unstable/cli/GlobalFlag.d.ts.map +1 -1
  39. package/dist/unstable/cli/GlobalFlag.js +9 -48
  40. package/dist/unstable/cli/GlobalFlag.js.map +1 -1
  41. package/dist/unstable/cli/internal/command.d.ts +3 -0
  42. package/dist/unstable/cli/internal/command.d.ts.map +1 -1
  43. package/dist/unstable/cli/internal/command.js +2 -0
  44. package/dist/unstable/cli/internal/command.js.map +1 -1
  45. package/dist/unstable/cli/internal/help.d.ts +18 -4
  46. package/dist/unstable/cli/internal/help.d.ts.map +1 -1
  47. package/dist/unstable/cli/internal/help.js +61 -7
  48. package/dist/unstable/cli/internal/help.js.map +1 -1
  49. package/dist/unstable/httpapi/HttpApiBuilder.d.ts +10 -4
  50. package/dist/unstable/httpapi/HttpApiBuilder.d.ts.map +1 -1
  51. package/dist/unstable/httpapi/HttpApiBuilder.js +17 -6
  52. package/dist/unstable/httpapi/HttpApiBuilder.js.map +1 -1
  53. package/dist/unstable/httpapi/HttpApiEndpoint.d.ts +7 -2
  54. package/dist/unstable/httpapi/HttpApiEndpoint.d.ts.map +1 -1
  55. package/dist/unstable/httpapi/HttpApiEndpoint.js.map +1 -1
  56. package/dist/unstable/httpapi/OpenApi.d.ts.map +1 -1
  57. package/dist/unstable/httpapi/OpenApi.js +11 -1
  58. package/dist/unstable/httpapi/OpenApi.js.map +1 -1
  59. package/dist/unstable/reactivity/AtomHttpApi.d.ts +2 -2
  60. package/dist/unstable/reactivity/AtomHttpApi.d.ts.map +1 -1
  61. package/dist/unstable/reactivity/AtomRegistry.js +2 -6
  62. package/dist/unstable/reactivity/AtomRegistry.js.map +1 -1
  63. package/package.json +1 -1
  64. package/src/Channel.ts +24 -14
  65. package/src/Effect.ts +30 -8
  66. package/src/Schema.ts +61 -0
  67. package/src/SchemaParser.ts +11 -0
  68. package/src/SchemaTransformation.ts +85 -4
  69. package/src/Stream.ts +46 -22
  70. package/src/Types.ts +66 -0
  71. package/src/internal/effect.ts +41 -14
  72. package/src/internal/schema/schema.ts +1 -0
  73. package/src/unstable/ai/LanguageModel.ts +9 -6
  74. package/src/unstable/cli/Command.ts +119 -31
  75. package/src/unstable/cli/GlobalFlag.ts +36 -114
  76. package/src/unstable/cli/internal/command.ts +5 -0
  77. package/src/unstable/cli/internal/help.ts +103 -22
  78. package/src/unstable/httpapi/HttpApiBuilder.ts +68 -13
  79. package/src/unstable/httpapi/HttpApiEndpoint.ts +13 -4
  80. package/src/unstable/httpapi/OpenApi.ts +18 -1
  81. package/src/unstable/reactivity/AtomHttpApi.ts +2 -2
  82. package/src/unstable/reactivity/AtomRegistry.ts +2 -6
@@ -268,9 +268,7 @@ class RegistryImpl {
268
268
  }
269
269
  removeNodeTimeout(node) {
270
270
  const bucket = this.nodeTimeoutBucket.get(node);
271
- if (bucket === undefined) {
272
- return;
273
- }
271
+ if (bucket === undefined) return;
274
272
  this.nodeTimeoutBucket.delete(node);
275
273
  this.scheduleNodeRemoval(node);
276
274
  const [nodes, handle] = this.timeoutBuckets.get(bucket);
@@ -285,10 +283,8 @@ class RegistryImpl {
285
283
  const nodes = this.timeoutBuckets.get(bucket)[0];
286
284
  this.timeoutBuckets.delete(bucket);
287
285
  nodes.forEach(node => {
288
- if (!node.canBeRemoved) {
289
- return;
290
- }
291
286
  this.nodeTimeoutBucket.delete(node);
287
+ if (!node.canBeRemoved) return;
292
288
  this.nodes.delete(atomKey(node.atom));
293
289
  this.onNodeRemoved?.(node);
294
290
  this.#currentSweepTTL = node.atom.idleTTL ?? this.defaultIdleTTL;
@@ -1 +1 @@
1
- {"version":3,"file":"AtomRegistry.js","names":["Effect","Exit","Fiber","constVoid","dual","Layer","Option","hasProperty","Queue","MixedScheduler","Scope","ServiceMap","Stream","Result","TypeId","isAtomRegistry","u","make","options","RegistryImpl","initialValues","scheduleTask","timeoutResolution","defaultIdleTTL","AtomRegistry","Service","layerOptions","effect","gen","scope","registry","addFinalizer","sync","dispose","layer","toStream","self","atom","callback","queue","suspend","fiber","getCurrent","getUnsafe","services","cancel","subscribe","value","offerUnsafe","immediate","toStreamResult","pipe","filter","isNotInitial","mapEffect","result","_tag","succeed","failCause","cause","changes","getResult","args","suspendOnWaiting","resume","get","waiting","toExit","mount","acquireRelease","release","constImmediate","notifyListener","listener","SerializableTypeId","atomKey","key","scheduler","schedulerAsync","onNodeAdded","onNodeRemoved","constructor","undefined","Math","round","ensureNode","setValue","nodes","Map","preloadedSerializable","timeoutBuckets","nodeTimeoutBucket","disposed","getNodes","set","write","writeContext","setSerializable","encoded","modify","f","node","update","refresh","invalidateAtom","remove","_value","canBeRemoved","scheduleNodeRemoval","atomHasTtl","keepAlive","idleTTL","createNode","removeNodeTimeout","has","delete","decoded","decode","Error","scheduleAtomRemoval","NodeImpl","invalidate","removeNode","setNodeTimeout","currentSweepTTL","ttl","ceil","timestamp","Date","now","bucket","entry","Set","setTimeout","sweepBucket","add","handle","size","clearTimeout","forEach","reset","clear","NodeFlags","alive","initialized","waitingForValue","NodeState","uninitialized","stale","valid","removed","WriteContextImpl","state","lifetime","parents","previousParents","children","listeners","skipInvalidation","currentState","length","makeLifetime","read","i","removeChild","valueOption","none","some","batchState","phase","BatchPhase","collect","notify","Object","is","invalidateChildren","addParent","parent","push","index","indexOf","pop","child","disposeLifetime","lazy","childrenAreActive","commit","current","stack","stackIndex","len","LifetimeProto","finalizers","isFn","resultOnce","never","once","setResult","someOnce","isSome","isNone","refreshSelf","setSelf","a","stream","empty","withoutInitialValue","streamResult","setPrototypeOf","disabled","depth","batch","batchRebuildNode"],"sources":["../../../src/unstable/reactivity/AtomRegistry.ts"],"sourcesContent":[null],"mappings":"AAAA;;;AAGA,OAAO,KAAKA,MAAM,MAAM,iBAAiB;AACzC,OAAO,KAAKC,IAAI,MAAM,eAAe;AACrC,OAAO,KAAKC,KAAK,MAAM,gBAAgB;AACvC,SAASC,SAAS,EAAEC,IAAI,QAAQ,mBAAmB;AACnD,OAAO,KAAKC,KAAK,MAAM,gBAAgB;AACvC,OAAO,KAAKC,MAAM,MAAM,iBAAiB;AACzC,SAASC,WAAW,QAAQ,oBAAoB;AAChD,OAAO,KAAKC,KAAK,MAAM,gBAAgB;AAEvC,SAASC,cAAc,QAAQ,oBAAoB;AACnD,OAAO,KAAKC,KAAK,MAAM,gBAAgB;AACvC,OAAO,KAAKC,UAAU,MAAM,qBAAqB;AACjD,OAAO,KAAKC,MAAM,MAAM,iBAAiB;AACzC,OAAO,KAAKC,MAAM,MAAM,kBAAkB;AAS1C;;;;AAIA,OAAO,MAAMC,MAAM,GAAW,iCAAiC;AAE/D;;;;AAIA,OAAO,MAAMC,cAAc,GAAIC,CAAU,IAAwBT,WAAW,CAACS,CAAC,EAAEF,MAAM,CAAC;AAwCvF;;;;AAIA,OAAO,MAAMG,IAAI,GACfC,OAKa,IAEb,IAAIC,YAAY,CACdD,OAAO,EAAEE,aAAa,EACtBF,OAAO,EAAEG,YAAY,EACrBH,OAAO,EAAEI,iBAAiB,EAC1BJ,OAAO,EAAEK,cAAc,CACxB;AAEH;;;;AAIA,OAAO,MAAMC,YAAY,gBAAGb,UAAU,CAACc,OAAO,CAAeX,MAAM,CAAC;AAEpE;;;;AAIA,OAAO,MAAMY,YAAY,GAAIR,OAK5B,IACCb,KAAK,CAACsB,MAAM,CACVH,YAAY,EACZxB,MAAM,CAAC4B,GAAG,CAAC,aAAS;EAClB,MAAMC,KAAK,GAAG,OAAO7B,MAAM,CAAC6B,KAAK;EACjC,MAAMC,QAAQ,GAAGb,IAAI,CAAC;IACpB,GAAGC,OAAO;IACVG,YAAY,EAAEH,OAAO,EAAEG;GACxB,CAAC;EACF,OAAOX,KAAK,CAACqB,YAAY,CAACF,KAAK,EAAE7B,MAAM,CAACgC,IAAI,CAAC,MAAMF,QAAQ,CAACG,OAAO,EAAE,CAAC,CAAC;EACvE,OAAOH,QAAQ;AACjB,CAAC,CAAC,CACH;AAEH;;;;AAIA,OAAO,MAAMI,KAAK,gBAA8BR,YAAY,EAAE;AAE9D;AACA;AACA;AAEA;;;;AAIA,OAAO,MAAMS,QAAQ,gBAmBjB/B,IAAI,CACN,CAAC,EACD,CAAIgC,IAAkB,EAAEC,IAAkB,KACxCzB,MAAM,CAAC0B,QAAQ,CAQXC,KAAK,IACPvC,MAAM,CAACwC,OAAO,CAAC,MAAK;EAClB,MAAMC,KAAK,GAAGvC,KAAK,CAACwC,UAAU,EAAG;EACjC,MAAMb,KAAK,GAAGlB,UAAU,CAACgC,SAAS,CAACF,KAAK,CAACG,QAAQ,EAAElC,KAAK,CAACA,KAAK,CAAC;EAC/D,MAAMmC,MAAM,GAAGT,IAAI,CAACU,SAAS,CAACT,IAAI,EAAGU,KAAK,IAAKvC,KAAK,CAACwC,WAAW,CAACT,KAAK,EAAEQ,KAAK,CAAC,EAAE;IAC9EE,SAAS,EAAE;GACZ,CAAC;EACF,OAAOvC,KAAK,CAACqB,YAAY,CAACF,KAAK,EAAE7B,MAAM,CAACgC,IAAI,CAACa,MAAM,CAAC,CAAC;AACvD,CAAC,CAAC,CACH,CACJ;AAED;;;;AAIA,OAAO,MAAMK,cAAc,gBAWvB9C,IAAI,CACN,CAAC,EACD,CAAOgC,IAAkB,EAAEC,IAAyC,KAClEF,QAAQ,CAACC,IAAI,EAAEC,IAAI,CAAC,CAACc,IAAI,CACvBvC,MAAM,CAACwC,MAAM,CAACvC,MAAM,CAACwC,YAAY,CAAC,EAClCzC,MAAM,CAAC0C,SAAS,CAAEC,MAAM,IACtBA,MAAM,CAACC,IAAI,KAAK,SAAS,GAAGxD,MAAM,CAACyD,OAAO,CAACF,MAAM,CAACR,KAAK,CAAC,GAAG/C,MAAM,CAAC0D,SAAS,CAACH,MAAM,CAACI,KAAK,CAAC,CAC1F,EACD/C,MAAM,CAACgD,OAAO,CACf,CACJ;AAED;;;;AAIA,OAAO,MAAMC,SAAS,gBAsBlBzD,IAAI,CACL0D,IAAI,IAAK/C,cAAc,CAAC+C,IAAI,CAAC,CAAC,CAAC,CAAC,EACjC,CAAO1B,IAAkB,EAAEC,IAAyC,EAAEnB,OAErE,KAAyB;EACxB,MAAM6C,gBAAgB,GAAG7C,OAAO,EAAE6C,gBAAgB,IAAI,KAAK;EAC3D,OAAO/D,MAAM,CAACsC,QAAQ,CAAE0B,MAAM,IAAI;IAChC,MAAMT,MAAM,GAAGnB,IAAI,CAAC6B,GAAG,CAAC5B,IAAI,CAAC;IAC7B,IAAIkB,MAAM,CAACC,IAAI,KAAK,SAAS,IAAI,EAAEO,gBAAgB,IAAIR,MAAM,CAACW,OAAO,CAAC,EAAE;MACtE,OAAOF,MAAM,CAACnD,MAAM,CAACsD,MAAM,CAACZ,MAAM,CAAQ,CAAC;IAC7C;IACA,MAAMV,MAAM,GAAGT,IAAI,CAACU,SAAS,CAACT,IAAI,EAAGU,KAAK,IAAI;MAC5C,IAAIA,KAAK,CAACS,IAAI,KAAK,SAAS,IAAI,EAAEO,gBAAgB,IAAIhB,KAAK,CAACmB,OAAO,CAAC,EAAE;QACpEF,MAAM,CAACnD,MAAM,CAACsD,MAAM,CAACpB,KAAK,CAAQ,CAAC;QACnCF,MAAM,EAAE;MACV;IACF,CAAC,CAAC;IACF,OAAO7C,MAAM,CAACgC,IAAI,CAACa,MAAM,CAAC;EAC5B,CAAC,CAAC;AACJ,CAAC,CACF;AAED;;;;AAIA,OAAO,MAAMuB,KAAK,gBAWdhE,IAAI,CACN,CAAC,EACD,CAAIgC,IAAkB,EAAEC,IAAkB,KACxCrC,MAAM,CAACqE,cAAc,CACnBrE,MAAM,CAACgC,IAAI,CAAC,MAAMI,IAAI,CAACgC,KAAK,CAAC/B,IAAI,CAAC,CAAC,EAClCiC,OAAO,IAAKtE,MAAM,CAACgC,IAAI,CAACsC,OAAO,CAAC,CAClC,CACJ;AAED;AACA;AACA;AAEA,MAAMC,cAAc,GAAG;EAAEtB,SAAS,EAAE;AAAI,CAAE;AAE1C,MAAMuB,cAAc,GAAIC,QAAoB,IAAU;EACpDA,QAAQ,EAAE;AACZ,CAAC;AAED,MAAMC,kBAAkB,GAA4B,qCAAqC;AACzF,MAAMC,OAAO,GAAOtC,IAAkB,IACpCqC,kBAAkB,IAAIrC,IAAI,GAAIA,IAA+B,CAACqC,kBAAkB,CAAC,CAACE,GAAG,GAAGvC,IAAI;AAE9F,MAAMlB,YAAY;EACP,CAACL,MAAM;EACPQ,iBAAiB;EACjBC,cAAc;EACdsD,SAAS;EACTC,cAAc;EACvBC,WAAW;EACXC,aAAa;EAEbC,YACE7D,aAAwD,EACxDC,YAA6C,EAC7CC,iBAA0B,EAC1BC,cAAuB;IAEvB,IAAI,CAACT,MAAM,CAAC,GAAGA,MAAM;IACrB,IAAI,CAAC+D,SAAS,GAAG,IAAIpE,cAAc,CAAC,MAAM,EAAEY,YAAY,CAAC;IACzD,IAAI,CAACyD,cAAc,GAAG,IAAIrE,cAAc,CAAC,OAAO,EAAEY,YAAY,CAAC;IAC/D,IAAI,CAACE,cAAc,GAAGA,cAAc;IAEpC,IAAID,iBAAiB,KAAK4D,SAAS,IAAI3D,cAAc,KAAK2D,SAAS,EAAE;MACnE,IAAI,CAAC5D,iBAAiB,GAAG6D,IAAI,CAACC,KAAK,CAAC7D,cAAc,GAAG,CAAC,CAAC;IACzD,CAAC,MAAM;MACL,IAAI,CAACD,iBAAiB,GAAGA,iBAAiB,IAAI,IAAI;IACpD;IACA,IAAIF,aAAa,KAAK8D,SAAS,EAAE;MAC/B,KAAK,MAAM,CAAC7C,IAAI,EAAEU,KAAK,CAAC,IAAI3B,aAAa,EAAE;QACzC,IAAI,CAACiE,UAAU,CAAChD,IAAI,CAAC,CAACiD,QAAQ,CAACvC,KAAK,CAAC;MACvC;IACF;EACF;EAESwC,KAAK,gBAAG,IAAIC,GAAG,EAA0C;EACzDC,qBAAqB,gBAAG,IAAID,GAAG,EAAmB;EAClDE,cAAc,gBAAG,IAAIF,GAAG,EAAgE;EACxFG,iBAAiB,gBAAG,IAAIH,GAAG,EAAyB;EAC7DI,QAAQ,GAAG,KAAK;EAEhBC,QAAQA,CAAA;IACN,OAAO,IAAI,CAACN,KAAK;EACnB;EAEAtB,GAAGA,CAAI5B,IAAkB;IACvB,OAAO,IAAI,CAACgD,UAAU,CAAChD,IAAI,CAAC,CAACU,KAAK,EAAE;EACtC;EAEA+C,GAAGA,CAAOzD,IAAyB,EAAEU,KAAQ;IAC3CV,IAAI,CAAC0D,KAAK,CAAC,IAAI,CAACV,UAAU,CAAChD,IAAI,CAAC,CAAC2D,YAAY,EAAEjD,KAAK,CAAC;EACvD;EAEAkD,eAAeA,CAACrB,GAAW,EAAEsB,OAAgB;IAC3C,IAAI,CAACT,qBAAqB,CAACK,GAAG,CAAClB,GAAG,EAAEsB,OAAO,CAAC;EAC9C;EAEAC,MAAMA,CAAU9D,IAAyB,EAAE+D,CAA2C;IACpF,MAAMC,IAAI,GAAG,IAAI,CAAChB,UAAU,CAAChD,IAAI,CAAC;IAClC,MAAMkB,MAAM,GAAG6C,CAAC,CAACC,IAAI,CAACtD,KAAK,EAAE,CAAC;IAC9BV,IAAI,CAAC0D,KAAK,CAACM,IAAI,CAACL,YAAY,EAAEzC,MAAM,CAAC,CAAC,CAAC,CAAC;IACxC,OAAOA,MAAM,CAAC,CAAC,CAAC;EAClB;EAEA+C,MAAMA,CAAOjE,IAAyB,EAAE+D,CAAc;IACpD,MAAMC,IAAI,GAAG,IAAI,CAAChB,UAAU,CAAChD,IAAI,CAAC;IAClCA,IAAI,CAAC0D,KAAK,CAACM,IAAI,CAACL,YAAY,EAAEI,CAAC,CAACC,IAAI,CAACtD,KAAK,EAAE,CAAC,CAAC;EAChD;EAEAwD,OAAO,GAAOlE,IAAkB,IAAU;IACxC,IAAIA,IAAI,CAACkE,OAAO,KAAKrB,SAAS,EAAE;MAC9B7C,IAAI,CAACkE,OAAO,CAAC,IAAI,CAACA,OAAO,CAAC;IAC5B,CAAC,MAAM;MACL,IAAI,CAACC,cAAc,CAACnE,IAAI,CAAC;IAC3B;EACF,CAAC;EAEDS,SAASA,CAAIT,IAAkB,EAAE+D,CAAiB,EAAElF,OAA0C;IAC5F,MAAMmF,IAAI,GAAG,IAAI,CAAChB,UAAU,CAAChD,IAAI,CAAC;IAClC,IAAInB,OAAO,EAAE+B,SAAS,EAAE;MACtBmD,CAAC,CAACC,IAAI,CAACtD,KAAK,EAAE,CAAC;IACjB;IACA,MAAM0D,MAAM,GAAGJ,IAAI,CAACvD,SAAS,CAAC;MAC5BsD,CAAC,CAACC,IAAI,CAACK,MAAM,CAAC;IAChB,CAAC,CAAC;IACF,OAAO,MAAK;MACVD,MAAM,EAAE;MACR,IAAIJ,IAAI,CAACM,YAAY,EAAE;QACrB,IAAI,CAACC,mBAAmB,CAACP,IAAI,CAAC;MAChC;IACF,CAAC;EACH;EAEAjC,KAAKA,CAAI/B,IAAkB;IACzB,OAAO,IAAI,CAACS,SAAS,CAACT,IAAI,EAAElC,SAAS,EAAEoE,cAAc,CAAC;EACxD;EAEAsC,UAAUA,CAACxE,IAAoB;IAC7B,OAAO,CAACA,IAAI,CAACyE,SAAS,IAAIzE,IAAI,CAAC0E,OAAO,KAAK,CAAC,KAAK1E,IAAI,CAAC0E,OAAO,KAAK7B,SAAS,IAAI,IAAI,CAAC3D,cAAc,KAAK2D,SAAS,CAAC;EACnH;EAEAG,UAAUA,CAAIhD,IAAkB;IAC9B,MAAMuC,GAAG,GAAGD,OAAO,CAACtC,IAAI,CAAC;IACzB,IAAIgE,IAAI,GAAG,IAAI,CAACd,KAAK,CAACtB,GAAG,CAACW,GAAG,CAAC;IAC9B,IAAIyB,IAAI,KAAKnB,SAAS,EAAE;MACtBmB,IAAI,GAAG,IAAI,CAACW,UAAU,CAAC3E,IAAI,CAAC;MAC5B,IAAI,CAACkD,KAAK,CAACO,GAAG,CAAClB,GAAG,EAAEyB,IAAI,CAAC;MACzB,IAAI,CAACtB,WAAW,GAAGsB,IAAI,CAAC;IAC1B,CAAC,MAAM,IAAI,IAAI,CAACQ,UAAU,CAACxE,IAAI,CAAC,EAAE;MAChC,IAAI,CAAC4E,iBAAiB,CAACZ,IAAI,CAAC;IAC9B;IACA,IAAI,OAAOzB,GAAG,KAAK,QAAQ,IAAI,IAAI,CAACa,qBAAqB,CAACyB,GAAG,CAACtC,GAAG,CAAC,EAAE;MAClE,MAAMsB,OAAO,GAAG,IAAI,CAACT,qBAAqB,CAACxB,GAAG,CAACW,GAAG,CAAC;MACnD,IAAI,CAACa,qBAAqB,CAAC0B,MAAM,CAACvC,GAAG,CAAC;MACtC,MAAMwC,OAAO,GAAI/E,IAAsC,CAACqC,kBAAkB,CAAC,CAAC2C,MAAM,CAACnB,OAAO,CAAC;MAC3FG,IAAI,CAACf,QAAQ,CAAC8B,OAAO,CAAC;IACxB;IACA,OAAOf,IAAI;EACb;EAEAW,UAAUA,CAAI3E,IAAkB;IAC9B,IAAI,IAAI,CAACuD,QAAQ,EAAE;MACjB,MAAM,IAAI0B,KAAK,CAAC,sBAAsBjF,IAAI,wBAAwB,CAAC;IACrE;IAEA,IAAI,CAACA,IAAI,CAACyE,SAAS,EAAE;MACnB,IAAI,CAACS,mBAAmB,CAAClF,IAAI,CAAC;IAChC;IACA,OAAO,IAAImF,QAAQ,CAAC,IAAI,EAAEnF,IAAI,CAAC;EACjC;EAEAmE,cAAc,GAAOnE,IAAkB,IAAU;IAC/C,IAAI,CAACgD,UAAU,CAAChD,IAAI,CAAC,CAACoF,UAAU,EAAE;EACpC,CAAC;EAEDF,mBAAmBA,CAAClF,IAAoB;IACtC,IAAI,CAACyC,cAAc,CAACzD,YAAY,CAAC,MAAK;MACpC,MAAMgF,IAAI,GAAG,IAAI,CAACd,KAAK,CAACtB,GAAG,CAACU,OAAO,CAACtC,IAAI,CAAC,CAAC;MAC1C,IAAIgE,IAAI,KAAKnB,SAAS,IAAImB,IAAI,CAACM,YAAY,EAAE;QAC3C,IAAI,CAACe,UAAU,CAACrB,IAAI,CAAC;MACvB;IACF,CAAC,EAAE,CAAC,CAAC;EACP;EAEAO,mBAAmBA,CAACP,IAAmB;IACrC,IAAI,CAACvB,cAAc,CAACzD,YAAY,CAAC,MAAK;MACpC,IAAIgF,IAAI,CAACM,YAAY,EAAE;QACrB,IAAI,CAACe,UAAU,CAACrB,IAAI,CAAC;MACvB;IACF,CAAC,EAAE,CAAC,CAAC;EACP;EAEAqB,UAAUA,CAACrB,IAAmB;IAC5B,IAAI,IAAI,CAACQ,UAAU,CAACR,IAAI,CAAChE,IAAI,CAAC,EAAE;MAC9B,IAAI,CAACsF,cAAc,CAACtB,IAAI,CAAC;IAC3B,CAAC,MAAM;MACL,IAAI,CAACd,KAAK,CAAC4B,MAAM,CAACxC,OAAO,CAAC0B,IAAI,CAAChE,IAAI,CAAC,CAAC;MACrCgE,IAAI,CAACI,MAAM,EAAE;MACb,IAAI,CAACzB,aAAa,GAAGqB,IAAI,CAAC;IAC5B;EACF;EAEAsB,cAAcA,CAACtB,IAAmB;IAChC,IAAI,IAAI,CAACV,iBAAiB,CAACuB,GAAG,CAACb,IAAI,CAAC,EAAE;MACpC;IACF;IAEA,IAAIU,OAAO,GAAGV,IAAI,CAAChE,IAAI,CAAC0E,OAAO,IAAI,IAAI,CAACxF,cAAe;IACvD,IAAI,IAAI,CAAC,CAAAqG,eAAgB,KAAK,IAAI,EAAE;MAClCb,OAAO,IAAI,IAAI,CAAC,CAAAa,eAAgB;MAChC,IAAIb,OAAO,IAAI,CAAC,EAAE;QAChB,IAAI,CAACxB,KAAK,CAAC4B,MAAM,CAACxC,OAAO,CAAC0B,IAAI,CAAChE,IAAI,CAAC,CAAC;QACrCgE,IAAI,CAACI,MAAM,EAAE;QACb,IAAI,CAACzB,aAAa,GAAGqB,IAAI,CAAC;QAC1B;MACF;IACF;IACA,MAAMwB,GAAG,GAAG1C,IAAI,CAAC2C,IAAI,CAACf,OAAQ,GAAG,IAAI,CAACzF,iBAAiB,CAAC,GAAG,IAAI,CAACA,iBAAiB;IACjF,MAAMyG,SAAS,GAAGC,IAAI,CAACC,GAAG,EAAE,GAAGJ,GAAG;IAClC,MAAMK,MAAM,GAAGH,SAAS,GAAIA,SAAS,GAAG,IAAI,CAACzG,iBAAkB,GAAG,IAAI,CAACA,iBAAiB;IAExF,IAAI6G,KAAK,GAAG,IAAI,CAACzC,cAAc,CAACzB,GAAG,CAACiE,MAAM,CAAC;IAC3C,IAAIC,KAAK,KAAKjD,SAAS,EAAE;MACvBiD,KAAK,GAAG,CACN,IAAIC,GAAG,EAAiB,EACxBC,UAAU,CAAC,MAAM,IAAI,CAACC,WAAW,CAACJ,MAAM,CAAC,EAAEA,MAAM,GAAGF,IAAI,CAACC,GAAG,EAAE,CAAQ,CACvE;MACD,IAAI,CAACvC,cAAc,CAACI,GAAG,CAACoC,MAAM,EAAEC,KAAK,CAAC;IACxC;IACAA,KAAK,CAAC,CAAC,CAAC,CAACI,GAAG,CAAClC,IAAI,CAAC;IAClB,IAAI,CAACV,iBAAiB,CAACG,GAAG,CAACO,IAAI,EAAE6B,MAAM,CAAC;EAC1C;EAEAjB,iBAAiBA,CAACZ,IAAmB;IACnC,MAAM6B,MAAM,GAAG,IAAI,CAACvC,iBAAiB,CAAC1B,GAAG,CAACoC,IAAI,CAAC;IAC/C,IAAI6B,MAAM,KAAKhD,SAAS,EAAE;MACxB;IACF;IACA,IAAI,CAACS,iBAAiB,CAACwB,MAAM,CAACd,IAAI,CAAC;IACnC,IAAI,CAACO,mBAAmB,CAACP,IAAI,CAAC;IAE9B,MAAM,CAACd,KAAK,EAAEiD,MAAM,CAAC,GAAG,IAAI,CAAC9C,cAAc,CAACzB,GAAG,CAACiE,MAAM,CAAE;IACxD3C,KAAK,CAAC4B,MAAM,CAACd,IAAI,CAAC;IAClB,IAAId,KAAK,CAACkD,IAAI,KAAK,CAAC,EAAE;MACpBC,YAAY,CAACF,MAAM,CAAC;MACpB,IAAI,CAAC9C,cAAc,CAACyB,MAAM,CAACe,MAAM,CAAC;IACpC;EACF;EAEA,CAAAN,eAAgB,GAAkB,IAAI;EACtCU,WAAWA,CAACJ,MAAc;IACxB,MAAM3C,KAAK,GAAG,IAAI,CAACG,cAAc,CAACzB,GAAG,CAACiE,MAAM,CAAE,CAAC,CAAC,CAAC;IACjD,IAAI,CAACxC,cAAc,CAACyB,MAAM,CAACe,MAAM,CAAC;IAElC3C,KAAK,CAACoD,OAAO,CAAEtC,IAAI,IAAI;MACrB,IAAI,CAACA,IAAI,CAACM,YAAY,EAAE;QACtB;MACF;MACA,IAAI,CAAChB,iBAAiB,CAACwB,MAAM,CAACd,IAAI,CAAC;MACnC,IAAI,CAACd,KAAK,CAAC4B,MAAM,CAACxC,OAAO,CAAC0B,IAAI,CAAChE,IAAI,CAAC,CAAC;MACrC,IAAI,CAAC2C,aAAa,GAAGqB,IAAI,CAAC;MAC1B,IAAI,CAAC,CAAAuB,eAAgB,GAAGvB,IAAI,CAAChE,IAAI,CAAC0E,OAAO,IAAI,IAAI,CAACxF,cAAe;MACjE8E,IAAI,CAACI,MAAM,EAAE;MACb,IAAI,CAAC,CAAAmB,eAAgB,GAAG,IAAI;IAC9B,CAAC,CAAC;EACJ;EAEAgB,KAAKA,CAAA;IACH,IAAI,CAAClD,cAAc,CAACiD,OAAO,CAAC,CAAC,GAAGH,MAAM,CAAC,KAAKE,YAAY,CAACF,MAAM,CAAC,CAAC;IACjE,IAAI,CAAC9C,cAAc,CAACmD,KAAK,EAAE;IAC3B,IAAI,CAAClD,iBAAiB,CAACkD,KAAK,EAAE;IAE9B,IAAI,CAACtD,KAAK,CAACoD,OAAO,CAAEtC,IAAI,IAAI;MAC1BA,IAAI,CAACI,MAAM,EAAE;MACb,IAAI,CAACzB,aAAa,GAAGqB,IAAI,CAAC;IAC5B,CAAC,CAAC;IACF,IAAI,CAACd,KAAK,CAACsD,KAAK,EAAE;EACpB;EAEA5G,OAAOA,CAAA;IACL,IAAI,CAAC2D,QAAQ,GAAG,IAAI;IACpB,IAAI,CAACgD,KAAK,EAAE;EACd;;AAGF,MAAME,SAAS,GAAG;EAChBC,KAAK,EAAE,CAAC;EAAE;EACVC,WAAW,EAAE,CAAC;EAAE;EAChBC,eAAe,EAAE,CAAC,CAAC;CACX;AAGV,MAAMC,SAAS,GAAG;EAChBC,aAAa,EAAEL,SAAS,CAACC,KAAK,GAAGD,SAAS,CAACG,eAAe;EAC1DG,KAAK,EAAEN,SAAS,CAACC,KAAK,GAAGD,SAAS,CAACE,WAAW,GAAGF,SAAS,CAACG,eAAe;EAC1EI,KAAK,EAAEP,SAAS,CAACC,KAAK,GAAGD,SAAS,CAACE,WAAW;EAC9CM,OAAO,EAAE;CACD;AAGV,MAAM9B,QAAQ;EACZvC,YACEnD,QAAsB,EACtBO,IAAkB;IAElB,IAAI,CAACP,QAAQ,GAAGA,QAAQ;IACxB,IAAI,CAACO,IAAI,GAAGA,IAAI;IAChB,IAAI,CAAC2D,YAAY,GAAG,IAAIuD,gBAAgB,CAACzH,QAAQ,EAAE,IAAI,CAAC;EAC1D;EAESA,QAAQ;EACRO,IAAI;EACbmH,KAAK,GAAcN,SAAS,CAACC,aAAa;EAC1CM,QAAQ;EACRzD,YAAY;EAEZ0D,OAAO,GAAyB,EAAE;EAClCC,eAAe;EACfC,QAAQ,GAAyB,EAAE;EACnCC,SAAS,gBAAoB,IAAIzB,GAAG,EAAE;EACtC0B,gBAAgB,GAAG,KAAK;EAExBC,YAAYA,CAAA;IACV,QAAQ,IAAI,CAACP,KAAK;MAChB,KAAKN,SAAS,CAACC,aAAa;QAC1B,OAAO,eAAe;MACxB,KAAKD,SAAS,CAACE,KAAK;QAClB,OAAO,OAAO;MAChB,KAAKF,SAAS,CAACG,KAAK;QAClB,OAAO,OAAO;MAChB;QACE,OAAO,SAAS;IACpB;EACF;EAEA,IAAI1C,YAAYA,CAAA;IACd,OAAO,CAAC,IAAI,CAACtE,IAAI,CAACyE,SAAS,IAAI,IAAI,CAAC+C,SAAS,CAACpB,IAAI,KAAK,CAAC,IAAI,IAAI,CAACmB,QAAQ,CAACI,MAAM,KAAK,CAAC,IAAI,IAAI,CAACR,KAAK,KAAK,CAAC;EAC5G;EAEA9C,MAAM,GAAMxB,SAAgB;EAC5BnC,KAAKA,CAAA;IACH,IAAI,CAAC,IAAI,CAACyG,KAAK,GAAGV,SAAS,CAACG,eAAe,MAAM,CAAC,EAAE;MAClD,IAAI,CAACQ,QAAQ,GAAGQ,YAAY,CAAC,IAAI,CAAC;MAClC,MAAMlH,KAAK,GAAG,IAAI,CAACV,IAAI,CAAC6H,IAAI,CAAC,IAAI,CAACT,QAAQ,CAAC;MAC3C,IAAI,CAAC,IAAI,CAACD,KAAK,GAAGV,SAAS,CAACG,eAAe,MAAM,CAAC,EAAE;QAClD,IAAI,CAAC3D,QAAQ,CAACvC,KAAK,CAAC;MACtB;MAEA,IAAI,IAAI,CAAC4G,eAAe,EAAE;QACxB,MAAMD,OAAO,GAAG,IAAI,CAACC,eAAe;QACpC,IAAI,CAACA,eAAe,GAAGzE,SAAS;QAChC,KAAK,IAAIiF,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGT,OAAO,CAACM,MAAM,EAAEG,CAAC,EAAE,EAAE;UACvCT,OAAO,CAACS,CAAC,CAAC,CAACC,WAAW,CAAC,IAAI,CAAC;UAC5B,IAAIV,OAAO,CAACS,CAAC,CAAC,CAACxD,YAAY,EAAE;YAC3B,IAAI,CAAC7E,QAAQ,CAAC8E,mBAAmB,CAAC8C,OAAO,CAACS,CAAC,CAAC,CAAC;UAC/C;QACF;MACF;IACF;IAEA,OAAO,IAAI,CAACzD,MAAM;EACpB;EAEA2D,WAAWA,CAAA;IACT,IAAI,CAAC,IAAI,CAACb,KAAK,GAAGV,SAAS,CAACE,WAAW,MAAM,CAAC,EAAE;MAC9C,OAAO1I,MAAM,CAACgK,IAAI,EAAE;IACtB;IACA,OAAOhK,MAAM,CAACiK,IAAI,CAAC,IAAI,CAAC7D,MAAM,CAAC;EACjC;EAEApB,QAAQA,CAACvC,KAAQ;IACf,IAAI,CAAC,IAAI,CAACyG,KAAK,GAAGV,SAAS,CAACE,WAAW,MAAM,CAAC,EAAE;MAC9C,IAAI,CAACQ,KAAK,GAAGN,SAAS,CAACG,KAAK;MAC5B,IAAI,CAAC3C,MAAM,GAAG3D,KAAK;MAEnB,IAAIyH,UAAU,CAACC,KAAK,KAAKC,UAAU,CAACC,OAAO,EAAE;QAC3CH,UAAU,CAACI,MAAM,CAACrC,GAAG,CAAC,IAAI,CAAC;MAC7B,CAAC,MAAM;QACL,IAAI,CAACqC,MAAM,EAAE;MACf;MAEA;IACF;IAEA,IAAI,CAACpB,KAAK,GAAGN,SAAS,CAACG,KAAK;IAC5B,IAAIwB,MAAM,CAACC,EAAE,CAAC,IAAI,CAACpE,MAAM,EAAE3D,KAAK,CAAC,EAAE;MACjC;IACF;IAEA,IAAI,CAAC2D,MAAM,GAAG3D,KAAK;IACnB,IAAI,IAAI,CAAC+G,gBAAgB,EAAE;MACzB,IAAI,CAACA,gBAAgB,GAAG,KAAK;IAC/B,CAAC,MAAM;MACL,IAAI,CAACiB,kBAAkB,EAAE;IAC3B;IAEA,IAAI,IAAI,CAAClB,SAAS,CAACpB,IAAI,GAAG,CAAC,EAAE;MAC3B,IAAI+B,UAAU,CAACC,KAAK,KAAKC,UAAU,CAACC,OAAO,EAAE;QAC3CH,UAAU,CAACI,MAAM,CAACrC,GAAG,CAAC,IAAI,CAAC;MAC7B,CAAC,MAAM;QACL,IAAI,CAACqC,MAAM,EAAE;MACf;IACF;EACF;EAEAI,SAASA,CAACC,MAAqB;IAC7B,IAAI,CAACvB,OAAO,CAACwB,IAAI,CAACD,MAAM,CAAC;IACzB,IAAI,IAAI,CAACtB,eAAe,KAAKzE,SAAS,EAAE;MACtC,MAAMiG,KAAK,GAAG,IAAI,CAACxB,eAAe,CAACyB,OAAO,CAACH,MAAM,CAAC;MAClD,IAAIE,KAAK,KAAK,CAAC,CAAC,EAAE;QAChB,IAAI,CAACxB,eAAe,CAACwB,KAAK,CAAC,GAAG,IAAI,CAACxB,eAAe,CAAC,IAAI,CAACA,eAAe,CAACK,MAAM,GAAG,CAAC,CAAC;QACnF,IAAI,IAAI,CAACL,eAAe,CAAC0B,GAAG,EAAE,KAAKnG,SAAS,EAAE;UAC5C,IAAI,CAACyE,eAAe,GAAGzE,SAAS;QAClC;MACF;IACF;IAEA,IAAI+F,MAAM,CAACrB,QAAQ,CAACwB,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE;MACxCH,MAAM,CAACrB,QAAQ,CAACsB,IAAI,CAAC,IAAI,CAAC;MAC1B,IAAID,MAAM,CAACnB,gBAAgB,EAAE;QAC3BmB,MAAM,CAACnB,gBAAgB,GAAG,KAAK;MACjC;IACF;EACF;EAEAM,WAAWA,CAACkB,KAAoB;IAC9B,MAAMH,KAAK,GAAG,IAAI,CAACvB,QAAQ,CAACwB,OAAO,CAACE,KAAK,CAAC;IAC1C,IAAIH,KAAK,KAAK,CAAC,CAAC,EAAE;MAChB,IAAI,CAACvB,QAAQ,CAACuB,KAAK,CAAC,GAAG,IAAI,CAACvB,QAAQ,CAAC,IAAI,CAACA,QAAQ,CAACI,MAAM,GAAG,CAAC,CAAC;MAC9D,IAAI,CAACJ,QAAQ,CAACyB,GAAG,EAAE;IACrB;EACF;EAEA5D,UAAUA,CAAA;IACR,IAAI,IAAI,CAAC+B,KAAK,KAAKN,SAAS,CAACG,KAAK,EAAE;MAClC,IAAI,CAACG,KAAK,GAAGN,SAAS,CAACE,KAAK;MAC5B,IAAI,CAACmC,eAAe,EAAE;IACxB;IAEA,IAAIf,UAAU,CAACC,KAAK,KAAKC,UAAU,CAACC,OAAO,EAAE;MAC3CH,UAAU,CAACpB,KAAK,CAAC8B,IAAI,CAAC,IAAI,CAAC;IAC7B,CAAC,MAAM,IAAI,IAAI,CAAC7I,IAAI,CAACmJ,IAAI,IAAI,IAAI,CAAC3B,SAAS,CAACpB,IAAI,KAAK,CAAC,IAAI,CAACgD,iBAAiB,CAAC,IAAI,CAAC7B,QAAQ,CAAC,EAAE;MAC3F,IAAI,CAACmB,kBAAkB,EAAE;MACzB,IAAI,CAACjB,gBAAgB,GAAG,IAAI;IAC9B,CAAC,MAAM;MACL,IAAI,CAAC/G,KAAK,EAAE;IACd;EACF;EAEAgI,kBAAkBA,CAAA;IAChB,IAAI,IAAI,CAACnB,QAAQ,CAACI,MAAM,KAAK,CAAC,EAAE;MAC9B;IACF;IAEA,MAAMJ,QAAQ,GAAG,IAAI,CAACA,QAAQ;IAC9B,IAAI,CAACA,QAAQ,GAAG,EAAE;IAClB,KAAK,IAAIO,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGP,QAAQ,CAACI,MAAM,EAAEG,CAAC,EAAE,EAAE;MACxCP,QAAQ,CAACO,CAAC,CAAC,CAAC1C,UAAU,EAAE;IAC1B;EACF;EAEAmD,MAAMA,CAAA;IACJ,IAAI,CAACf,SAAS,CAAClB,OAAO,CAACnE,cAAc,CAAC;IAEtC,IAAIgG,UAAU,CAACC,KAAK,KAAKC,UAAU,CAACgB,MAAM,EAAE;MAC1ClB,UAAU,CAACI,MAAM,CAACzD,MAAM,CAAC,IAAI,CAAC;IAChC;EACF;EAEAoE,eAAeA,CAAA;IACb,IAAI,IAAI,CAAC9B,QAAQ,KAAKvE,SAAS,EAAE;MAC/B,IAAI,CAACuE,QAAQ,CAACxH,OAAO,EAAE;MACvB,IAAI,CAACwH,QAAQ,GAAGvE,SAAS;IAC3B;IAEA,IAAI,IAAI,CAACwE,OAAO,CAACM,MAAM,KAAK,CAAC,EAAE;MAC7B,IAAI,CAACL,eAAe,GAAG,IAAI,CAACD,OAAO;MACnC,IAAI,CAACA,OAAO,GAAG,EAAE;IACnB;EACF;EAEAjD,MAAMA,CAAA;IACJ,IAAI,CAAC+C,KAAK,GAAGN,SAAS,CAACI,OAAO;IAC9B,IAAI,CAACO,SAAS,CAAChB,KAAK,EAAE;IAEtB,IAAI,IAAI,CAACY,QAAQ,KAAKvE,SAAS,EAAE;MAC/B;IACF;IAEA,IAAI,CAACqG,eAAe,EAAE;IAEtB,IAAI,IAAI,CAAC5B,eAAe,KAAKzE,SAAS,EAAE;MACtC;IACF;IAEA,MAAMwE,OAAO,GAAG,IAAI,CAACC,eAAe;IACpC,IAAI,CAACA,eAAe,GAAGzE,SAAS;IAChC,KAAK,IAAIiF,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGT,OAAO,CAACM,MAAM,EAAEG,CAAC,EAAE,EAAE;MACvCT,OAAO,CAACS,CAAC,CAAC,CAACC,WAAW,CAAC,IAAI,CAAC;MAC5B,IAAIV,OAAO,CAACS,CAAC,CAAC,CAACxD,YAAY,EAAE;QAC3B,IAAI,CAAC7E,QAAQ,CAAC4F,UAAU,CAACgC,OAAO,CAACS,CAAC,CAAC,CAAC;MACtC;IACF;EACF;EAEArH,SAASA,CAAC2B,QAAoB;IAC5B,IAAI,CAACoF,SAAS,CAACtB,GAAG,CAAC9D,QAAQ,CAAC;IAC5B,OAAO,MAAM,IAAI,CAACoF,SAAS,CAAC1C,MAAM,CAAC1C,QAAQ,CAAC;EAC9C;;AAGF,SAASgH,iBAAiBA,CAAC7B,QAA8B;EACvD,IAAIA,QAAQ,CAACI,MAAM,KAAK,CAAC,EAAE;IACzB,OAAO,KAAK;EACd;EACA,IAAI2B,OAAO,GAAqC/B,QAAQ;EACxD,IAAIgC,KAA8C;EAClD,IAAIC,UAAU,GAAG,CAAC;EAClB,OAAOF,OAAO,KAAKzG,SAAS,EAAE;IAC5B,KAAK,IAAIiF,CAAC,GAAG,CAAC,EAAE2B,GAAG,GAAGH,OAAO,CAAC3B,MAAM,EAAEG,CAAC,GAAG2B,GAAG,EAAE3B,CAAC,EAAE,EAAE;MAClD,MAAMmB,KAAK,GAAGK,OAAO,CAACxB,CAAC,CAAC;MACxB,IAAI,CAACmB,KAAK,CAACjJ,IAAI,CAACmJ,IAAI,IAAIF,KAAK,CAACzB,SAAS,CAACpB,IAAI,GAAG,CAAC,EAAE;QAChD,OAAO,IAAI;MACb,CAAC,MAAM,IAAI6C,KAAK,CAAC1B,QAAQ,CAACI,MAAM,GAAG,CAAC,EAAE;QACpC,IAAI4B,KAAK,KAAK1G,SAAS,EAAE;UACvB0G,KAAK,GAAG,CAACN,KAAK,CAAC1B,QAAQ,CAAC;QAC1B,CAAC,MAAM;UACLgC,KAAK,CAACV,IAAI,CAACI,KAAK,CAAC1B,QAAQ,CAAC;QAC5B;MACF;IACF;IACA+B,OAAO,GAAGC,KAAK,GAAGC,UAAU,EAAE,CAAC;EACjC;EACA,OAAO,KAAK;AACd;AAUA,MAAME,aAAa,GAAqE;EACtF,IAAIjK,QAAQA,CAAA;IACV,OAAQ,IAAsB,CAACuE,IAAI,CAACvE,QAAQ;EAC9C,CAAC;EAEDC,YAAYA,CAAsBqE,CAAa;IAC7C,IAAI,IAAI,CAACR,QAAQ,EAAE,OAAOQ,CAAC,EAAE;IAC7B,IAAI,CAAC4F,UAAU,KAAK,EAAE;IACtB,IAAI,CAACA,UAAU,CAACd,IAAI,CAAC9E,CAAC,CAAC;EACzB,CAAC;EAEDnC,GAAGA,CAAyB5B,IAAkB;IAC5C,IAAI,IAAI,CAACuD,QAAQ,EAAE;MACjB,OAAO,IAAI,CAACS,IAAI,CAACvE,QAAQ,CAACmC,GAAG,CAAC5B,IAAI,CAAC;IACrC;IACA,MAAM4I,MAAM,GAAG,IAAI,CAAC5E,IAAI,CAACvE,QAAQ,CAACuD,UAAU,CAAChD,IAAI,CAAC;IAClD,IAAI,CAACgE,IAAI,CAAC2E,SAAS,CAACC,MAAM,CAAC;IAC3B,OAAOA,MAAM,CAAClI,KAAK,EAAE;EACvB,CAAC;EAEDQ,MAAMA,CAA4BlB,IAAyC,EAAEnB,OAE5E;IACC,IAAI,IAAI,CAAC0E,QAAQ,IAAI,IAAI,CAACqG,IAAI,EAAE;MAC9B,OAAO,IAAI,CAACC,UAAU,CAAC7J,IAAI,EAAEnB,OAAO,CAAC;IACvC;IACA,MAAMqC,MAAM,GAAG,IAAI,CAACU,GAAG,CAAC5B,IAAI,CAAC;IAC7B,IAAInB,OAAO,EAAE6C,gBAAgB,IAAIR,MAAM,CAACW,OAAO,EAAE;MAC/C,OAAOlE,MAAM,CAACmM,KAAK;IACrB;IACA,QAAQ5I,MAAM,CAACC,IAAI;MACjB,KAAK,SAAS;QAAE;UACd,OAAOxD,MAAM,CAACmM,KAAK;QACrB;MACA,KAAK,SAAS;QAAE;UACd,OAAOlM,IAAI,CAACyD,SAAS,CAACH,MAAM,CAACI,KAAK,CAAC;QACrC;MACA,KAAK,SAAS;QAAE;UACd,OAAO3D,MAAM,CAACyD,OAAO,CAACF,MAAM,CAACR,KAAK,CAAC;QACrC;IACF;EACF,CAAC;EAEDmJ,UAAUA,CAA4B7J,IAAyC,EAAEnB,OAEhF;IACC,OAAOlB,MAAM,CAACsC,QAAQ,CAAQ0B,MAAM,IAAI;MACtC,MAAMT,MAAM,GAAG,IAAI,CAAC6I,IAAI,CAAC/J,IAAI,CAAC;MAC9B,IAAIkB,MAAM,CAACC,IAAI,KAAK,SAAS,IAAI,EAAEtC,OAAO,EAAE6C,gBAAgB,IAAIR,MAAM,CAACW,OAAO,CAAC,EAAE;QAC/E,OAAOF,MAAM,CAACnD,MAAM,CAACsD,MAAM,CAACZ,MAAM,CAAQ,CAAC;MAC7C;MACA,MAAMV,MAAM,GAAG,IAAI,CAACwD,IAAI,CAACvE,QAAQ,CAACgB,SAAS,CAACT,IAAI,EAAGkB,MAAM,IAAI;QAC3D,IAAIA,MAAM,CAACC,IAAI,KAAK,SAAS,IAAKtC,OAAO,EAAE6C,gBAAgB,IAAIR,MAAM,CAACW,OAAQ,EAAE;QAChFrB,MAAM,EAAE;QACRmB,MAAM,CAACnD,MAAM,CAACsD,MAAM,CAACZ,MAAM,CAAQ,CAAC;MACtC,CAAC,EAAE;QAAEN,SAAS,EAAE;MAAK,CAAE,CAAC;MACxB,OAAOjD,MAAM,CAACgC,IAAI,CAACa,MAAM,CAAC;IAC5B,CAAC,CAAC;EACJ,CAAC;EAEDwJ,SAASA,CAEPhK,IAAgD,EAChDU,KAAQ;IAER,IAAI,IAAI,CAAC6C,QAAQ,EAAE,OAAO5F,MAAM,CAACmM,KAAK;IACtC,IAAI,CAAC9F,IAAI,CAACvE,QAAQ,CAACgE,GAAG,CAACzD,IAAI,EAAEU,KAAK,CAAC;IACnC,OAAO,IAAI,CAACmJ,UAAU,CAAC7J,IAAI,EAAE;MAAE0B,gBAAgB,EAAE;IAAI,CAAE,CAAC;EAC1D,CAAC;EAEDwG,IAAIA,CAAyBlI,IAAiC;IAC5D,IAAI,IAAI,CAACuD,QAAQ,IAAI,IAAI,CAACqG,IAAI,EAAE;MAC9B,OAAO,IAAI,CAACK,QAAQ,CAACjK,IAAI,CAAC;IAC5B;IACA,MAAMkB,MAAM,GAAG,IAAI,CAACU,GAAG,CAAC5B,IAAI,CAAC;IAC7B,OAAOkB,MAAM,CAACC,IAAI,KAAK,MAAM,GAAGxD,MAAM,CAACmM,KAAK,GAAGnM,MAAM,CAACyD,OAAO,CAACF,MAAM,CAACR,KAAK,CAAC;EAC7E,CAAC;EAEDuJ,QAAQA,CAAyBjK,IAAiC;IAChE,OAAOrC,MAAM,CAACsC,QAAQ,CAAK0B,MAAM,IAAI;MACnC,MAAMT,MAAM,GAAG,IAAI,CAAC6I,IAAI,CAAC/J,IAAI,CAAC;MAC9B,IAAI/B,MAAM,CAACiM,MAAM,CAAChJ,MAAM,CAAC,EAAE;QACzB,OAAOS,MAAM,CAAChE,MAAM,CAACyD,OAAO,CAACF,MAAM,CAACR,KAAK,CAAC,CAAC;MAC7C;MACA,MAAMF,MAAM,GAAG,IAAI,CAACwD,IAAI,CAACvE,QAAQ,CAACgB,SAAS,CAACT,IAAI,EAAGkB,MAAM,IAAI;QAC3D,IAAIjD,MAAM,CAACkM,MAAM,CAACjJ,MAAM,CAAC,EAAE;QAC3BV,MAAM,EAAE;QACRmB,MAAM,CAAChE,MAAM,CAACyD,OAAO,CAACF,MAAM,CAACR,KAAK,CAAC,CAAC;MACtC,CAAC,EAAE;QAAEE,SAAS,EAAE;MAAK,CAAE,CAAC;MACxB,OAAOjD,MAAM,CAACgC,IAAI,CAACa,MAAM,CAAC;IAC5B,CAAC,CAAC;EACJ,CAAC;EAEDuJ,IAAIA,CAAyB/J,IAAkB;IAC7C,OAAO,IAAI,CAACgE,IAAI,CAACvE,QAAQ,CAACmC,GAAG,CAAC5B,IAAI,CAAC;EACrC,CAAC;EAEDD,IAAIA,CAAA;IACF,IAAI,IAAI,CAACwD,QAAQ,EAAE,OAAOtF,MAAM,CAACgK,IAAI,EAAE;IACvC,OAAO,IAAI,CAACjE,IAAI,CAACgE,WAAW,EAAS;EACvC,CAAC;EAED9D,OAAOA,CAAyBlE,IAAkB;IAChD,IAAI,IAAI,CAACuD,QAAQ,EAAE;IACnB,IAAI,CAACS,IAAI,CAACvE,QAAQ,CAACyE,OAAO,CAAClE,IAAI,CAAC;EAClC,CAAC;EAEDoK,WAAWA,CAAA;IACT,IAAI,IAAI,CAAC7G,QAAQ,EAAE;IACnB,IAAI,CAACS,IAAI,CAACoB,UAAU,EAAE;EACxB,CAAC;EAEDrD,KAAKA,CAAyB/B,IAAkB;IAC9C,IAAI,IAAI,CAACuD,QAAQ,EAAE;IACnB,IAAI,CAAC7D,YAAY,CAAC,IAAI,CAACsE,IAAI,CAACvE,QAAQ,CAACsC,KAAK,CAAC/B,IAAI,CAAC,CAAC;EACnD,CAAC;EAEDS,SAASA,CAAyBT,IAAkB,EAAE+D,CAAiB,EAAElF,OAExE;IACC,IAAI,IAAI,CAAC0E,QAAQ,EAAE;IACnB,IAAI,CAAC7D,YAAY,CAAC,IAAI,CAACsE,IAAI,CAACvE,QAAQ,CAACgB,SAAS,CAACT,IAAI,EAAE+D,CAAC,EAAElF,OAAO,CAAC,CAAC;EACnE,CAAC;EAEDwL,OAAOA,CAAyBC,CAAI;IAClC,IAAI,IAAI,CAAC/G,QAAQ,EAAE;IACnB,IAAI,CAACS,IAAI,CAACf,QAAQ,CAACqH,CAAQ,CAAC;EAC9B,CAAC;EAED7G,GAAGA,CAA4BzD,IAAyB,EAAEU,KAAQ;IAChE,IAAI,IAAI,CAAC6C,QAAQ,EAAE;IACnB,IAAI,CAACS,IAAI,CAACvE,QAAQ,CAACgE,GAAG,CAACzD,IAAI,EAAEU,KAAK,CAAC;EACrC,CAAC;EAED6J,MAAMA,CAAyBvK,IAAkB,EAAEnB,OAElD;IACC,IAAI,IAAI,CAAC0E,QAAQ,EAAE,OAAOhF,MAAM,CAACiM,KAAK;IACtC,OAAOjM,MAAM,CAAC0B,QAAQ,CAAKC,KAAK,IAC9BvC,MAAM,CAACgC,IAAI,CAAC,MAAK;MACf,IAAI,CAACc,SAAS,CAACT,IAAI,EAAGU,KAAK,IAAKvC,KAAK,CAACwC,WAAW,CAACT,KAAK,EAAEQ,KAAK,CAAC,EAAE;QAC/DE,SAAS,EAAE,CAAC/B,OAAO,EAAE4L;OACtB,CAAC;IACJ,CAAC,CAAC,CACH;EACH,CAAC;EAEDC,YAAYA,CAA4B1K,IAAyC,EAAEnB,OAGlF;IACC,OAAO,IAAI,CAAC0L,MAAM,CAACvK,IAAI,EAAEnB,OAAO,CAAC,CAACiC,IAAI,CACpCvC,MAAM,CAACwC,MAAM,CAACvC,MAAM,CAACwC,YAAY,CAAC,EAClCzC,MAAM,CAAC0C,SAAS,CAAEC,MAAM,IACtBA,MAAM,CAACC,IAAI,KAAK,SAAS,GAAGxD,MAAM,CAACyD,OAAO,CAACF,MAAM,CAACR,KAAK,CAAC,GAAG/C,MAAM,CAAC0D,SAAS,CAACH,MAAM,CAACI,KAAK,CAAC,CAC1F,CACF;EACH,CAAC;EAED1B,OAAOA,CAAA;IACL,IAAI,CAAC2D,QAAQ,GAAG,IAAI;IACpB,IAAI,IAAI,CAACoG,UAAU,KAAK9G,SAAS,EAAE;MACjC;IACF;IAEA,MAAM8G,UAAU,GAAG,IAAI,CAACA,UAAU;IAClC,IAAI,CAACA,UAAU,GAAG9G,SAAS;IAC3B,KAAK,IAAIiF,CAAC,GAAG6B,UAAU,CAAChC,MAAM,GAAG,CAAC,EAAEG,CAAC,IAAI,CAAC,EAAEA,CAAC,EAAE,EAAE;MAC/C6B,UAAU,CAAC7B,CAAC,CAAC,EAAE;IACjB;EACF;CACD;AAED,MAAMF,YAAY,GAAO5D,IAAiB,IAAiB;EACzD,SAASpC,GAAGA,CAAI5B,IAAkB;IAChC,IAAI4B,GAAG,CAAC2B,QAAQ,EAAE;MAChB,OAAOS,IAAI,CAACvE,QAAQ,CAACmC,GAAG,CAAC5B,IAAI,CAAC;IAChC,CAAC,MAAM,IAAI4B,GAAG,CAACgI,IAAI,EAAE;MACnB,OAAO5F,IAAI,CAACvE,QAAQ,CAACmC,GAAG,CAAC5B,IAAI,CAAC;IAChC;IACA,MAAM4I,MAAM,GAAG5E,IAAI,CAACvE,QAAQ,CAACuD,UAAU,CAAChD,IAAI,CAAC;IAC7C,MAAMU,KAAK,GAAGkI,MAAM,CAAClI,KAAK,EAAE;IAC5BsD,IAAI,CAAC2E,SAAS,CAACC,MAAM,CAAC;IACtB,OAAOlI,KAAK;EACd;EACA8H,MAAM,CAACmC,cAAc,CAAC/I,GAAG,EAAE8H,aAAa,CAAC;EACzC9H,GAAG,CAACgI,IAAI,GAAG,KAAK;EAChBhI,GAAG,CAAC2B,QAAQ,GAAG,KAAK;EACpB3B,GAAG,CAAC+H,UAAU,GAAG9G,SAAS;EAC1BjB,GAAG,CAACoC,IAAI,GAAGA,IAAI;EACf,OAAOpC,GAAU;AACnB,CAAC;AAED,MAAMsF,gBAAgB;EACpBtE,YACEnD,QAAsB,EACtBuE,IAAiB;IAEjB,IAAI,CAACvE,QAAQ,GAAGA,QAAQ;IACxB,IAAI,CAACuE,IAAI,GAAGA,IAAI;EAClB;EACSvE,QAAQ;EACRuE,IAAI;EACbpC,GAAGA,CAAI5B,IAAkB;IACvB,OAAO,IAAI,CAACP,QAAQ,CAACmC,GAAG,CAAC5B,IAAI,CAAC;EAChC;EACAyD,GAAGA,CAAOzD,IAAyB,EAAEU,KAAQ;IAC3C,OAAO,IAAI,CAACjB,QAAQ,CAACgE,GAAG,CAACzD,IAAI,EAAEU,KAAK,CAAC;EACvC;EACA2J,OAAOA,CAAC3J,KAAU;IAChB,OAAO,IAAI,CAACsD,IAAI,CAACf,QAAQ,CAACvC,KAAK,CAAC;EAClC;EACA0J,WAAWA,CAAA;IACT,OAAO,IAAI,CAACpG,IAAI,CAACoB,UAAU,EAAE;EAC/B;;AAGF;AACA;AACA;AAEA;AACA,OAAO,MAAMiD,UAAU,GAAG;EACxBuC,QAAQ,EAAE,CAAC;EACXtC,OAAO,EAAE,CAAC;EACVe,MAAM,EAAE;CACA;AAKV;AACA,OAAO,MAAMlB,UAAU,GAAG;EACxBC,KAAK,EAAEC,UAAU,CAACuC,QAAsB;EACxCC,KAAK,EAAE,CAAC;EACR9D,KAAK,EAAE,EAA0B;EACjCwB,MAAM,eAAE,IAAIxC,GAAG;CAChB;AAED;AACA,OAAM,SAAU+E,KAAKA,CAAC/G,CAAa;EACjCoE,UAAU,CAACC,KAAK,GAAGC,UAAU,CAACC,OAAO;EACrCH,UAAU,CAAC0C,KAAK,EAAE;EAClB,IAAI;IACF9G,CAAC,EAAE;IACH,IAAIoE,UAAU,CAAC0C,KAAK,KAAK,CAAC,EAAE;MAC1B,KAAK,IAAI/C,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGK,UAAU,CAACpB,KAAK,CAACY,MAAM,EAAEG,CAAC,EAAE,EAAE;QAChDiD,gBAAgB,CAAC5C,UAAU,CAACpB,KAAK,CAACe,CAAC,CAAC,CAAC;MACvC;MACAK,UAAU,CAACC,KAAK,GAAGC,UAAU,CAACgB,MAAM;MACpC,KAAK,MAAMrF,IAAI,IAAImE,UAAU,CAACI,MAAM,EAAE;QACpCvE,IAAI,CAACuE,MAAM,EAAE;MACf;MACAJ,UAAU,CAACI,MAAM,CAAC/B,KAAK,EAAE;IAC3B;EACF,CAAC,SAAS;IACR2B,UAAU,CAAC0C,KAAK,EAAE;IAClB,IAAI1C,UAAU,CAAC0C,KAAK,KAAK,CAAC,EAAE;MAC1B1C,UAAU,CAACC,KAAK,GAAGC,UAAU,CAACuC,QAAQ;MACtCzC,UAAU,CAACpB,KAAK,GAAG,EAAE;IACvB;EACF;AACF;AAEA,SAASgE,gBAAgBA,CAAC/G,IAAmB;EAC3C,IAAIA,IAAI,CAACmD,KAAK,KAAKN,SAAS,CAACG,KAAK,EAAE;IAClC;EACF;EAEA,KAAK,IAAIc,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAG9D,IAAI,CAACqD,OAAO,CAACM,MAAM,EAAEG,CAAC,EAAE,EAAE;IAC5C,MAAMc,MAAM,GAAG5E,IAAI,CAACqD,OAAO,CAACS,CAAC,CAAC;IAC9B,IAAIc,MAAM,CAACzB,KAAK,KAAKN,SAAS,CAACG,KAAK,EAAE;MACpC+D,gBAAgB,CAACnC,MAAM,CAAC;IAC1B;EACF;EAEA;EACA,IAAI5E,IAAI,CAACmD,KAAK,KAAKN,SAAS,CAACG,KAAK,EAAE;IAClChD,IAAI,CAACtD,KAAK,EAAE;EACd;AACF","ignoreList":[]}
1
+ {"version":3,"file":"AtomRegistry.js","names":["Effect","Exit","Fiber","constVoid","dual","Layer","Option","hasProperty","Queue","MixedScheduler","Scope","ServiceMap","Stream","Result","TypeId","isAtomRegistry","u","make","options","RegistryImpl","initialValues","scheduleTask","timeoutResolution","defaultIdleTTL","AtomRegistry","Service","layerOptions","effect","gen","scope","registry","addFinalizer","sync","dispose","layer","toStream","self","atom","callback","queue","suspend","fiber","getCurrent","getUnsafe","services","cancel","subscribe","value","offerUnsafe","immediate","toStreamResult","pipe","filter","isNotInitial","mapEffect","result","_tag","succeed","failCause","cause","changes","getResult","args","suspendOnWaiting","resume","get","waiting","toExit","mount","acquireRelease","release","constImmediate","notifyListener","listener","SerializableTypeId","atomKey","key","scheduler","schedulerAsync","onNodeAdded","onNodeRemoved","constructor","undefined","Math","round","ensureNode","setValue","nodes","Map","preloadedSerializable","timeoutBuckets","nodeTimeoutBucket","disposed","getNodes","set","write","writeContext","setSerializable","encoded","modify","f","node","update","refresh","invalidateAtom","remove","_value","canBeRemoved","scheduleNodeRemoval","atomHasTtl","keepAlive","idleTTL","createNode","removeNodeTimeout","has","delete","decoded","decode","Error","scheduleAtomRemoval","NodeImpl","invalidate","removeNode","setNodeTimeout","currentSweepTTL","ttl","ceil","timestamp","Date","now","bucket","entry","Set","setTimeout","sweepBucket","add","handle","size","clearTimeout","forEach","reset","clear","NodeFlags","alive","initialized","waitingForValue","NodeState","uninitialized","stale","valid","removed","WriteContextImpl","state","lifetime","parents","previousParents","children","listeners","skipInvalidation","currentState","length","makeLifetime","read","i","removeChild","valueOption","none","some","batchState","phase","BatchPhase","collect","notify","Object","is","invalidateChildren","addParent","parent","push","index","indexOf","pop","child","disposeLifetime","lazy","childrenAreActive","commit","current","stack","stackIndex","len","LifetimeProto","finalizers","isFn","resultOnce","never","once","setResult","someOnce","isSome","isNone","refreshSelf","setSelf","a","stream","empty","withoutInitialValue","streamResult","setPrototypeOf","disabled","depth","batch","batchRebuildNode"],"sources":["../../../src/unstable/reactivity/AtomRegistry.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "effect",
3
3
  "type": "module",
4
- "version": "4.0.0-beta.14",
4
+ "version": "4.0.0-beta.16",
5
5
  "license": "MIT",
6
6
  "description": "The missing standard library for TypeScript, for writing production-grade software.",
7
7
  "homepage": "https://effect.website",
package/src/Channel.ts CHANGED
@@ -5528,11 +5528,13 @@ export const catchReason: {
5528
5528
  errorTag: K,
5529
5529
  reasonTag: RK,
5530
5530
  f: (
5531
- reason: Types.ExtractReason<Types.ExtractTag<Types.NoInfer<OutErr>, K>, RK>
5531
+ reason: Types.ExtractReason<Types.ExtractTag<Types.NoInfer<OutErr>, K>, RK>,
5532
+ error: Types.NarrowReason<Types.ExtractTag<Types.NoInfer<OutErr>, K>, RK>
5532
5533
  ) => Channel<OutElem1, OutErr1, OutDone1, InElem1, InErr1, InDone1, Env1>,
5533
5534
  orElse?:
5534
5535
  | ((
5535
- reason: Types.ExcludeReason<Types.ExtractTag<Types.NoInfer<OutErr>, K>, RK>
5536
+ reason: Types.ExcludeReason<Types.ExtractTag<Types.NoInfer<OutErr>, K>, RK>,
5537
+ error: Types.OmitReason<Types.ExtractTag<Types.NoInfer<OutErr>, K>, RK>
5536
5538
  ) => Channel<OutElem2, OutErr2, OutDone2, InElem2, InErr2, InDone2, Env2>)
5537
5539
  | undefined
5538
5540
  ): <
@@ -5615,11 +5617,13 @@ export const catchReason: {
5615
5617
  errorTag: K,
5616
5618
  reasonTag: RK,
5617
5619
  f: (
5618
- reason: Types.ExtractReason<Types.ExtractTag<Types.NoInfer<OutErr>, K>, RK>
5620
+ reason: Types.ExtractReason<Types.ExtractTag<Types.NoInfer<OutErr>, K>, RK>,
5621
+ error: Types.NarrowReason<Types.ExtractTag<Types.NoInfer<OutErr>, K>, RK>
5619
5622
  ) => Channel<OutElem1, OutErr1, OutDone1, InElem1, InErr1, InDone1, Env1>,
5620
5623
  orElse?:
5621
5624
  | ((
5622
- reason: Types.ExcludeReason<Types.ExtractTag<Types.NoInfer<OutErr>, K>, RK>
5625
+ reason: Types.ExcludeReason<Types.ExtractTag<Types.NoInfer<OutErr>, K>, RK>,
5626
+ error: Types.OmitReason<Types.ExtractTag<Types.NoInfer<OutErr>, K>, RK>
5623
5627
  ) => Channel<OutElem2, OutErr2, OutDone2, InElem2, InErr2, InDone2, Env2>)
5624
5628
  | undefined
5625
5629
  ): Channel<
@@ -5660,11 +5664,13 @@ export const catchReason: {
5660
5664
  errorTag: K,
5661
5665
  reasonTag: RK,
5662
5666
  f: (
5663
- reason: Types.ExtractReason<Types.ExtractTag<Types.NoInfer<OutErr>, K>, RK>
5667
+ reason: Types.ExtractReason<Types.ExtractTag<Types.NoInfer<OutErr>, K>, RK>,
5668
+ error: Types.NarrowReason<Types.ExtractTag<Types.NoInfer<OutErr>, K>, RK>
5664
5669
  ) => Channel<OutElem1, OutErr1, OutDone1, InElem1, InErr1, InDone1, Env1>,
5665
5670
  orElse?:
5666
5671
  | ((
5667
- reason: Types.ExcludeReason<Types.ExtractTag<Types.NoInfer<OutErr>, K>, RK>
5672
+ reason: Types.ExcludeReason<Types.ExtractTag<Types.NoInfer<OutErr>, K>, RK>,
5673
+ error: Types.OmitReason<Types.ExtractTag<Types.NoInfer<OutErr>, K>, RK>
5668
5674
  ) => Channel<OutElem2, OutErr2, OutDone2, InElem2, InErr2, InDone2, Env2>)
5669
5675
  | undefined
5670
5676
  ): Channel<
@@ -5690,9 +5696,9 @@ export const catchReason: {
5690
5696
  if (isTagged(error, errorTag) && hasProperty(error, "reason")) {
5691
5697
  const reason = error.reason as Types.ExcludeReason<Types.ExtractTag<Types.NoInfer<OutErr>, K>, RK>
5692
5698
  if (isTagged(reason, reasonTag)) {
5693
- return f(reason as any)
5699
+ return f(reason as any, error as any)
5694
5700
  }
5695
- return orElse ? orElse(reason) as any : fail(error) as any
5701
+ return orElse ? orElse(reason, error as any) as any : fail(error) as any
5696
5702
  }
5697
5703
  return fail(error) as any
5698
5704
  }
@@ -5716,7 +5722,8 @@ export const catchReasons: {
5716
5722
  OutErr,
5717
5723
  Cases extends {
5718
5724
  [RK in Types.ReasonTags<Types.ExtractTag<Types.NoInfer<OutErr>, K>>]+?: (
5719
- reason: Types.ExtractReason<Types.ExtractTag<Types.NoInfer<OutErr>, K>, RK>
5725
+ reason: Types.ExtractReason<Types.ExtractTag<Types.NoInfer<OutErr>, K>, RK>,
5726
+ error: Types.NarrowReason<Types.ExtractTag<Types.NoInfer<OutErr>, K>, RK>
5720
5727
  ) => Channel<any, any, any, any, any, any, any>
5721
5728
  },
5722
5729
  OutElem2 = Types.unassigned,
@@ -5731,7 +5738,8 @@ export const catchReasons: {
5731
5738
  cases: Cases,
5732
5739
  orElse?:
5733
5740
  | ((
5734
- reason: Types.ExcludeReason<Types.ExtractTag<Types.NoInfer<OutErr>, K>, Extract<keyof Cases, string>>
5741
+ reason: Types.ExcludeReason<Types.ExtractTag<Types.NoInfer<OutErr>, K>, Extract<keyof Cases, string>>,
5742
+ error: Types.OmitReason<Types.ExtractTag<Types.NoInfer<OutErr>, K>, Extract<keyof Cases, string>>
5735
5743
  ) => Channel<OutElem2, OutErr2, OutDone2, InElem2, InErr2, InDone2, Env2>)
5736
5744
  | undefined
5737
5745
  ): <OutElem, OutDone, InElem, InErr, InDone, Env>(
@@ -5797,7 +5805,8 @@ export const catchReasons: {
5797
5805
  K extends Types.Tags<OutErr>,
5798
5806
  Cases extends {
5799
5807
  [RK in Types.ReasonTags<Types.ExtractTag<OutErr, K>>]+?: (
5800
- reason: Types.ExtractReason<Types.ExtractTag<OutErr, K>, RK>
5808
+ reason: Types.ExtractReason<Types.ExtractTag<OutErr, K>, RK>,
5809
+ error: Types.NarrowReason<Types.ExtractTag<OutErr, K>, RK>
5801
5810
  ) => Channel<any, any, any, any, any, any, any>
5802
5811
  },
5803
5812
  OutElem2 = Types.unassigned,
@@ -5813,7 +5822,8 @@ export const catchReasons: {
5813
5822
  cases: Cases,
5814
5823
  orElse?:
5815
5824
  | ((
5816
- reason: Types.ExcludeReason<Types.ExtractTag<Types.NoInfer<OutErr>, K>, Extract<keyof Cases, string>>
5825
+ reason: Types.ExcludeReason<Types.ExtractTag<Types.NoInfer<OutErr>, K>, Extract<keyof Cases, string>>,
5826
+ error: Types.OmitReason<Types.ExtractTag<Types.NoInfer<OutErr>, K>, Extract<keyof Cases, string>>
5817
5827
  ) => Channel<OutElem2, OutErr2, OutDone2, InElem2, InErr2, InDone2, Env2>)
5818
5828
  | undefined
5819
5829
  ): Channel<
@@ -5872,9 +5882,9 @@ export const catchReasons: {
5872
5882
  const reason = error.reason as { readonly _tag: string }
5873
5883
  keys ??= new Set(Object.keys(cases))
5874
5884
  if (keys.has(reason._tag)) {
5875
- return (cases as any)[reason._tag](reason as any)
5885
+ return (cases as any)[reason._tag](reason as any, error)
5876
5886
  }
5877
- return orElse ? orElse(reason) as any : fail(error) as any
5887
+ return orElse ? orElse(reason, error) as any : fail(error) as any
5878
5888
  }
5879
5889
  return fail(error) as any
5880
5890
  })
package/src/Effect.ts CHANGED
@@ -116,7 +116,9 @@ import type {
116
116
  ExcludeTag,
117
117
  ExtractReason,
118
118
  ExtractTag,
119
+ NarrowReason,
119
120
  NoInfer,
121
+ OmitReason,
120
122
  ReasonOf,
121
123
  ReasonTags,
122
124
  Simplify,
@@ -4534,8 +4536,16 @@ export const catchReason: {
4534
4536
  >(
4535
4537
  errorTag: K,
4536
4538
  reasonTag: RK,
4537
- f: (reason: ExtractReason<ExtractTag<NoInfer<E>, K>, RK>) => Effect<A2, E2, R2>,
4538
- orElse?: ((reasons: ExcludeReason<ExtractTag<NoInfer<E>, K>, RK>) => Effect<A3, E3, R3>) | undefined
4539
+ f: (
4540
+ reason: ExtractReason<ExtractTag<NoInfer<E>, K>, RK>,
4541
+ error: NarrowReason<ExtractTag<NoInfer<E>, K>, RK>
4542
+ ) => Effect<A2, E2, R2>,
4543
+ orElse?:
4544
+ | ((
4545
+ reasons: ExcludeReason<ExtractTag<NoInfer<E>, K>, RK>,
4546
+ error: OmitReason<ExtractTag<NoInfer<E>, K>, RK>
4547
+ ) => Effect<A3, E3, R3>)
4548
+ | undefined
4539
4549
  ): <A, R>(
4540
4550
  self: Effect<A, E, R>
4541
4551
  ) => Effect<A | A2 | Exclude<A3, unassigned>, (A3 extends unassigned ? E : ExcludeTag<E, K>) | E2 | E3, R | R2 | R3>
@@ -4590,8 +4600,10 @@ export const catchReason: {
4590
4600
  self: Effect<A, E, R>,
4591
4601
  errorTag: K,
4592
4602
  reasonTag: RK,
4593
- f: (reason: ExtractReason<ExtractTag<E, K>, RK>) => Effect<A2, E2, R2>,
4594
- orElse?: ((reasons: ExcludeReason<ExtractTag<E, K>, RK>) => Effect<A3, E3, R3>) | undefined
4603
+ f: (reason: ExtractReason<ExtractTag<E, K>, RK>, error: NarrowReason<ExtractTag<E, K>, RK>) => Effect<A2, E2, R2>,
4604
+ orElse?:
4605
+ | ((reasons: ExcludeReason<ExtractTag<E, K>, RK>, error: OmitReason<ExtractTag<E, K>, RK>) => Effect<A3, E3, R3>)
4606
+ | undefined
4595
4607
  ): Effect<A | A2 | Exclude<A3, unassigned>, (A3 extends unassigned ? E : ExcludeTag<E, K>) | E2 | E3, R | R2 | R3>
4596
4608
  } = internal.catchReason
4597
4609
 
@@ -4669,7 +4681,8 @@ export const catchReasons: {
4669
4681
  E,
4670
4682
  Cases extends {
4671
4683
  [RK in ReasonTags<ExtractTag<NoInfer<E>, K>>]+?: (
4672
- reason: ExtractReason<ExtractTag<NoInfer<E>, K>, RK>
4684
+ reason: ExtractReason<ExtractTag<NoInfer<E>, K>, RK>,
4685
+ error: NarrowReason<ExtractTag<NoInfer<E>, K>, RK>
4673
4686
  ) => Effect<any, any, any>
4674
4687
  },
4675
4688
  A2 = unassigned,
@@ -4679,7 +4692,10 @@ export const catchReasons: {
4679
4692
  errorTag: K,
4680
4693
  cases: Cases,
4681
4694
  orElse?:
4682
- | ((reason: ExcludeReason<ExtractTag<NoInfer<E>, K>, Extract<keyof Cases, string>>) => Effect<A2, E2, R2>)
4695
+ | ((
4696
+ reason: ExcludeReason<ExtractTag<NoInfer<E>, K>, Extract<keyof Cases, string>>,
4697
+ error: OmitReason<ExtractTag<NoInfer<E>, K>, Extract<keyof Cases, string>>
4698
+ ) => Effect<A2, E2, R2>)
4683
4699
  | undefined
4684
4700
  ): <A, R>(
4685
4701
  self: Effect<A, E, R>
@@ -4740,7 +4756,10 @@ export const catchReasons: {
4740
4756
  R,
4741
4757
  K extends Tags<E>,
4742
4758
  Cases extends {
4743
- [RK in ReasonTags<ExtractTag<E, K>>]+?: (reason: ExtractReason<ExtractTag<E, K>, RK>) => Effect<any, any, any>
4759
+ [RK in ReasonTags<ExtractTag<E, K>>]+?: (
4760
+ reason: ExtractReason<ExtractTag<E, K>, RK>,
4761
+ error: NarrowReason<ExtractTag<E, K>, RK>
4762
+ ) => Effect<any, any, any>
4744
4763
  },
4745
4764
  A2 = unassigned,
4746
4765
  E2 = never,
@@ -4750,7 +4769,10 @@ export const catchReasons: {
4750
4769
  errorTag: K,
4751
4770
  cases: Cases,
4752
4771
  orElse?:
4753
- | ((reason: ExcludeReason<ExtractTag<NoInfer<E>, K>, Extract<keyof Cases, string>>) => Effect<A2, E2, R2>)
4772
+ | ((
4773
+ reason: ExcludeReason<ExtractTag<NoInfer<E>, K>, Extract<keyof Cases, string>>,
4774
+ error: OmitReason<ExtractTag<NoInfer<E>, K>, Extract<keyof Cases, string>>
4775
+ ) => Effect<A2, E2, R2>)
4754
4776
  | undefined
4755
4777
  ): Effect<
4756
4778
  | A
package/src/Schema.ts CHANGED
@@ -153,6 +153,7 @@ export interface Bottom<
153
153
  * @throws {Error} The issue is contained in the error cause.
154
154
  */
155
155
  makeUnsafe(input: this["~type.make.in"], options?: MakeOptions): this["Type"]
156
+ makeOption(input: this["~type.make.in"], options?: MakeOptions): Option_.Option<this["Type"]>
156
157
  }
157
158
 
158
159
  /**
@@ -5419,6 +5420,63 @@ export function OptionFromNullOr<S extends Top>(schema: S): OptionFromNullOr<S>
5419
5420
  ))
5420
5421
  }
5421
5422
 
5423
+ /**
5424
+ * @since 4.0.0
5425
+ */
5426
+ export interface OptionFromUndefinedOr<S extends Top> extends decodeTo<Option<toType<S>>, UndefinedOr<S>> {}
5427
+
5428
+ /**
5429
+ * Decodes an undefined-or value `T` to a required `Option<T>` value.
5430
+ *
5431
+ * Decoding:
5432
+ * - `undefined` is decoded as `None`
5433
+ * - other values are decoded as `Some`
5434
+ *
5435
+ * Encoding:
5436
+ * - `None` is encoded as `undefined`
5437
+ * - `Some` is encoded as the value
5438
+ *
5439
+ * @category Option
5440
+ * @since 4.0.0
5441
+ */
5442
+ export function OptionFromUndefinedOr<S extends Top>(schema: S): OptionFromUndefinedOr<S> {
5443
+ return UndefinedOr(schema).pipe(decodeTo(
5444
+ Option(toType(schema)),
5445
+ Transformation.optionFromUndefinedOr()
5446
+ ))
5447
+ }
5448
+
5449
+ /**
5450
+ * @since 4.0.0
5451
+ */
5452
+ export interface OptionFromNullishOr<S extends Top> extends decodeTo<Option<toType<S>>, NullishOr<S>> {}
5453
+
5454
+ /**
5455
+ * Decodes a nullish value `T` to a required `Option<T>` value.
5456
+ *
5457
+ * Decoding:
5458
+ * - `null` and `undefined` are decoded as `None`
5459
+ * - other values are decoded as `Some`
5460
+ *
5461
+ * Encoding:
5462
+ * - `None` is encoded as `null` or `undefined` depending on the provided `options.onNoneEncoding` (defaults to `undefined`)
5463
+ * - `Some` is encoded as the value
5464
+ *
5465
+ * @category Option
5466
+ * @since 4.0.0
5467
+ */
5468
+ export function OptionFromNullishOr<S extends Top>(
5469
+ schema: S,
5470
+ options?: {
5471
+ onNoneEncoding: null | undefined
5472
+ }
5473
+ ): OptionFromNullishOr<S> {
5474
+ return NullishOr(schema).pipe(decodeTo(
5475
+ Option(toType(schema)),
5476
+ Transformation.optionFromNullishOr(options)
5477
+ ))
5478
+ }
5479
+
5422
5480
  /**
5423
5481
  * @since 4.0.0
5424
5482
  */
@@ -7978,6 +8036,9 @@ function makeClass<
7978
8036
  static makeUnsafe(input: S["~type.make.in"], options?: MakeOptions): Self {
7979
8037
  return new this(input, options)
7980
8038
  }
8039
+ static makeOption(input: S["~type.make.in"], options?: MakeOptions): Option_.Option<Self> {
8040
+ return Parser.makeOption(getClassSchema(this) as any)(input, options) as any
8041
+ }
7981
8042
  static annotate(annotations: Annotations.Declaration<Self, readonly [S]>) {
7982
8043
  return this.rebuild(AST.annotate(this.ast, annotations))
7983
8044
  }
@@ -53,6 +53,17 @@ export function makeEffect<S extends Schema.Top>(schema: S) {
53
53
  }
54
54
  }
55
55
 
56
+ /**
57
+ * @category Constructing
58
+ * @since 4.0.0
59
+ */
60
+ export function makeOption<S extends Schema.Top>(schema: S) {
61
+ const parser = makeEffect(schema)
62
+ return (input: S["~type.make.in"], options?: Schema.MakeOptions): Option.Option<S["Type"]> => {
63
+ return Exit.getSuccess(Effect.runSyncExit(parser(input, options) as any))
64
+ }
65
+ }
66
+
56
67
  /**
57
68
  * @category Constructing
58
69
  * @since 4.0.0
@@ -1006,8 +1006,7 @@ export const errorFromErrorJsonEncoded = (options?: {
1006
1006
  * ```
1007
1007
  *
1008
1008
  * See also:
1009
- * - {@link optionFromOptionalKey}
1010
- * - {@link optionFromOptional}
1009
+ * - {@link optionFromNullishOr}
1011
1010
  *
1012
1011
  * @since 4.0.0
1013
1012
  */
@@ -1018,6 +1017,88 @@ export function optionFromNullOr<T>(): Transformation<Option.Option<T>, T | null
1018
1017
  })
1019
1018
  }
1020
1019
 
1020
+ /**
1021
+ * Decodes `T | undefined` into `Option<T>` and encodes `Option<T>` back
1022
+ * to `T | undefined`.
1023
+ *
1024
+ * When to use this:
1025
+ * - Converting undefined-or API fields to `Option`.
1026
+ *
1027
+ * Behavior:
1028
+ * - Decode: `undefined` → `Option.none()`, non-undefined → `Option.some(value)`.
1029
+ * - Encode: `Option.none()` → `undefined`, `Option.some(value)` → `value`.
1030
+ * - Pure and synchronous.
1031
+ *
1032
+ * **Example** (Option from undefined-or)
1033
+ *
1034
+ * ```ts
1035
+ * import { Schema, SchemaTransformation } from "effect"
1036
+ *
1037
+ * const schema = Schema.UndefinedOr(Schema.String).pipe(
1038
+ * Schema.decodeTo(
1039
+ * Schema.Option(Schema.String),
1040
+ * SchemaTransformation.optionFromUndefinedOr()
1041
+ * )
1042
+ * )
1043
+ * ```
1044
+ *
1045
+ * See also:
1046
+ * - {@link optionFromOptionalKey}
1047
+ * - {@link optionFromOptional}
1048
+ *
1049
+ * @since 4.0.0
1050
+ */
1051
+ export function optionFromUndefinedOr<T>(): Transformation<Option.Option<T>, T | undefined> {
1052
+ return transform({
1053
+ decode: Option.fromUndefinedOr,
1054
+ encode: Option.getOrUndefined
1055
+ })
1056
+ }
1057
+
1058
+ /**
1059
+ * Decodes `T | null | undefined` into `Option<T>` and encodes `Option<T>`
1060
+ * back to `T | null` or `T | undefined` depending on the provided `options.onNoneEncoding` (defaults to `undefined`).
1061
+ *
1062
+ * When to use this:
1063
+ * - Converting nullish API fields to `Option` when both `null` and
1064
+ * `undefined` represent absence.
1065
+ *
1066
+ * Behavior:
1067
+ * - Decode: `null` or `undefined` → `Option.none()`, otherwise → `Option.some(value)`.
1068
+ * - Encode: `Option.none()` → `null` or `undefined` (per `options.onNoneEncoding`),
1069
+ * `Option.some(value)` → `value`.
1070
+ * - Pure and synchronous.
1071
+ *
1072
+ * **Example** (Option from nullish, encoding None as null)
1073
+ *
1074
+ * ```ts
1075
+ * import { Schema, SchemaTransformation } from "effect"
1076
+ *
1077
+ * const schema = Schema.NullishOr(Schema.String).pipe(
1078
+ * Schema.decodeTo(
1079
+ * Schema.Option(Schema.String),
1080
+ * SchemaTransformation.optionFromNullishOr({ onNoneEncoding: null })
1081
+ * )
1082
+ * )
1083
+ * ```
1084
+ *
1085
+ * See also:
1086
+ * - {@link optionFromNullOr}
1087
+ * - {@link optionFromUndefinedOr}
1088
+ *
1089
+ * @since 4.0.0
1090
+ */
1091
+ export function optionFromNullishOr<T>(
1092
+ options?: {
1093
+ onNoneEncoding: null | undefined
1094
+ }
1095
+ ): Transformation<Option.Option<T>, T | null | undefined> {
1096
+ return transform({
1097
+ decode: Option.fromNullishOr,
1098
+ encode: options?.onNoneEncoding === null ? Option.getOrNull : Option.getOrUndefined
1099
+ })
1100
+ }
1101
+
1021
1102
  /**
1022
1103
  * Decodes an optional struct key into `Option<T>` and encodes `Option<T>`
1023
1104
  * back to an optional key.
@@ -1047,8 +1128,8 @@ export function optionFromNullOr<T>(): Transformation<Option.Option<T>, T | null
1047
1128
  * ```
1048
1129
  *
1049
1130
  * See also:
1050
- * - {@link optionFromNullOr}
1051
1131
  * - {@link optionFromOptional}
1132
+ * - {@link optionFromUndefinedOr}
1052
1133
  * - {@link transformOptional}
1053
1134
  *
1054
1135
  * @since 4.0.0
@@ -1088,8 +1169,8 @@ export function optionFromOptionalKey<T>(): Transformation<Option.Option<T>, T>
1088
1169
  * ```
1089
1170
  *
1090
1171
  * See also:
1091
- * - {@link optionFromNullOr}
1092
1172
  * - {@link optionFromOptionalKey}
1173
+ * - {@link optionFromUndefinedOr}
1093
1174
  * - {@link transformOptional}
1094
1175
  *
1095
1176
  * @since 4.0.0