@lehnihon/bit-form 2.2.19 → 2.2.26

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 (187) hide show
  1. package/README.md +10 -13
  2. package/dist/angular/index.cjs +1 -1
  3. package/dist/angular/index.cjs.map +1 -1
  4. package/dist/angular/index.d.cts +7 -7
  5. package/dist/angular/index.d.ts +7 -7
  6. package/dist/angular/index.js +1 -1
  7. package/dist/angular/index.js.map +1 -1
  8. package/dist/chunk-4WPLTOBT.cjs.map +1 -1
  9. package/dist/chunk-725CMNAV.cjs.map +1 -1
  10. package/dist/chunk-7T7L2TZX.js +2 -0
  11. package/dist/chunk-7T7L2TZX.js.map +1 -0
  12. package/dist/chunk-AV7YYSFI.cjs +2 -0
  13. package/dist/chunk-AV7YYSFI.cjs.map +1 -0
  14. package/dist/chunk-BSGJ3T5S.cjs.map +1 -1
  15. package/dist/chunk-CATA7YEV.js +2 -0
  16. package/dist/chunk-CATA7YEV.js.map +1 -0
  17. package/dist/chunk-EYCJKAK3.js +2 -0
  18. package/dist/chunk-EYCJKAK3.js.map +1 -0
  19. package/dist/chunk-GBHOCY7E.cjs +2 -0
  20. package/dist/chunk-GBHOCY7E.cjs.map +1 -0
  21. package/dist/{chunk-EPBSLPRL.cjs → chunk-H27ROY4F.cjs} +2 -2
  22. package/dist/chunk-H27ROY4F.cjs.map +1 -0
  23. package/dist/chunk-H3RTOA6X.cjs +2 -0
  24. package/dist/chunk-H3RTOA6X.cjs.map +1 -0
  25. package/dist/chunk-H6HGYVRV.cjs +2 -0
  26. package/dist/chunk-H6HGYVRV.cjs.map +1 -0
  27. package/dist/chunk-L42NQRVD.js +2 -0
  28. package/dist/{chunk-3WNZPBME.js.map → chunk-L42NQRVD.js.map} +1 -1
  29. package/dist/chunk-L57KMBXS.js +2 -0
  30. package/dist/chunk-L57KMBXS.js.map +1 -0
  31. package/dist/chunk-MBEQLBJB.js +2 -0
  32. package/dist/chunk-MBEQLBJB.js.map +1 -0
  33. package/dist/chunk-MFSDDSVG.cjs.map +1 -1
  34. package/dist/chunk-OWDDAM6C.cjs +2 -0
  35. package/dist/chunk-OWDDAM6C.cjs.map +1 -0
  36. package/dist/chunk-QKGTVKBU.cjs.map +1 -1
  37. package/dist/chunk-RHMJPKNV.cjs.map +1 -1
  38. package/dist/chunk-U6UFULNS.cjs +2 -0
  39. package/dist/chunk-U6UFULNS.cjs.map +1 -0
  40. package/dist/chunk-UBVVBVLS.js +2 -0
  41. package/dist/chunk-UBVVBVLS.js.map +1 -0
  42. package/dist/chunk-W5CLDRRE.cjs.map +1 -1
  43. package/dist/chunk-WKLCAC74.cjs +2 -0
  44. package/dist/chunk-WKLCAC74.cjs.map +1 -0
  45. package/dist/chunk-WYYVVM2C.js +2 -0
  46. package/dist/chunk-WYYVVM2C.js.map +1 -0
  47. package/dist/chunk-X3DGA5UC.cjs +2 -0
  48. package/dist/chunk-X3DGA5UC.cjs.map +1 -0
  49. package/dist/chunk-Y7TQTZY7.js +2 -0
  50. package/dist/chunk-Y7TQTZY7.js.map +1 -0
  51. package/dist/cli/index.cjs +21 -19
  52. package/dist/{config-types-bTt2lcw9.d.ts → config-types-DB6FaTiZ.d.ts} +3 -3
  53. package/dist/{config-types-Dbyt7t3D.d.cts → config-types-mZFlp2Bi.d.cts} +3 -3
  54. package/dist/core/bindings.cjs +1 -1
  55. package/dist/core/bindings.cjs.map +1 -1
  56. package/dist/core/bindings.d.cts +4 -4
  57. package/dist/core/bindings.d.ts +4 -4
  58. package/dist/core/bindings.js +1 -1
  59. package/dist/core/status.cjs.map +1 -1
  60. package/dist/core/status.d.cts +3 -3
  61. package/dist/core/status.d.ts +3 -3
  62. package/dist/core/store.cjs +1 -1
  63. package/dist/core/store.cjs.map +1 -1
  64. package/dist/core/store.d.cts +5 -5
  65. package/dist/core/store.d.ts +5 -5
  66. package/dist/core/store.js +1 -1
  67. package/dist/core/utils.cjs +1 -1
  68. package/dist/core/utils.cjs.map +1 -1
  69. package/dist/core/utils.js +1 -1
  70. package/dist/core.cjs +1 -1
  71. package/dist/core.cjs.map +1 -1
  72. package/dist/core.d.cts +4 -4
  73. package/dist/core.d.ts +4 -4
  74. package/dist/core.js +1 -1
  75. package/dist/devtools/bridge.cjs +1 -1
  76. package/dist/devtools/bridge.cjs.map +1 -1
  77. package/dist/devtools/bridge.js +1 -1
  78. package/dist/devtools/index.cjs +17 -17
  79. package/dist/devtools/index.cjs.map +1 -1
  80. package/dist/devtools/index.d.cts +2 -2
  81. package/dist/devtools/index.d.ts +2 -2
  82. package/dist/devtools/index.js +17 -17
  83. package/dist/devtools/index.js.map +1 -1
  84. package/dist/devtools/protocol.cjs.map +1 -1
  85. package/dist/index.cjs +1 -1
  86. package/dist/index.cjs.map +1 -1
  87. package/dist/index.d.cts +5 -5
  88. package/dist/index.d.ts +5 -5
  89. package/dist/index.js +1 -1
  90. package/dist/mask.cjs +1 -1
  91. package/dist/mask.cjs.map +1 -1
  92. package/dist/mask.d.cts +1 -1
  93. package/dist/mask.d.ts +1 -1
  94. package/dist/mask.js +1 -1
  95. package/dist/{meta-types-BC1VLABk.d.cts → meta-types-1Xcht8hj.d.cts} +1 -1
  96. package/dist/{meta-types-BC1VLABk.d.ts → meta-types-1Xcht8hj.d.ts} +1 -1
  97. package/dist/react/index.cjs +1 -1
  98. package/dist/react/index.cjs.map +1 -1
  99. package/dist/react/index.d.cts +6 -6
  100. package/dist/react/index.d.ts +6 -6
  101. package/dist/react/index.js +1 -1
  102. package/dist/react/index.js.map +1 -1
  103. package/dist/react-native/index.cjs +1 -1
  104. package/dist/react-native/index.cjs.map +1 -1
  105. package/dist/react-native/index.d.cts +5 -5
  106. package/dist/react-native/index.d.ts +5 -5
  107. package/dist/react-native/index.js +1 -1
  108. package/dist/resolvers/index.cjs +1 -1
  109. package/dist/resolvers/index.cjs.map +1 -1
  110. package/dist/resolvers/index.d.cts +0 -8
  111. package/dist/resolvers/index.d.ts +0 -8
  112. package/dist/resolvers/index.js +1 -1
  113. package/dist/resolvers/joi.cjs +1 -1
  114. package/dist/resolvers/joi.cjs.map +1 -1
  115. package/dist/resolvers/joi.js +1 -1
  116. package/dist/resolvers/joi.js.map +1 -1
  117. package/dist/resolvers/types.cjs.map +1 -1
  118. package/dist/resolvers/yup.cjs +1 -1
  119. package/dist/resolvers/yup.cjs.map +1 -1
  120. package/dist/resolvers/yup.js +1 -1
  121. package/dist/resolvers/yup.js.map +1 -1
  122. package/dist/resolvers/zod.cjs +1 -1
  123. package/dist/resolvers/zod.cjs.map +1 -1
  124. package/dist/resolvers/zod.js +1 -1
  125. package/dist/resolvers/zod.js.map +1 -1
  126. package/dist/{runtime-types-D1SRZr-n.d.cts → runtime-types-BLCkMgcy.d.cts} +1 -1
  127. package/dist/{runtime-types-D1SRZr-n.d.ts → runtime-types-BLCkMgcy.d.ts} +1 -1
  128. package/dist/{store-api-types-i-zmM25p.d.ts → store-api-types-CgRVo2DA.d.ts} +4 -4
  129. package/dist/{store-api-types-BPD27biP.d.cts → store-api-types-D7i0KWbr.d.cts} +4 -4
  130. package/dist/{use-bit-persist-BGH2Bazx.d.ts → use-bit-persist-CFcuAzwp.d.ts} +5 -5
  131. package/dist/{use-bit-persist-DiwICsEm.d.cts → use-bit-persist-Dsr69hme.d.cts} +5 -5
  132. package/dist/utils.cjs +1 -1
  133. package/dist/utils.cjs.map +1 -1
  134. package/dist/utils.js +1 -1
  135. package/dist/vue/index.cjs +1 -1
  136. package/dist/vue/index.cjs.map +1 -1
  137. package/dist/vue/index.d.cts +5 -5
  138. package/dist/vue/index.d.ts +5 -5
  139. package/dist/vue/index.js +1 -1
  140. package/dist/vue/index.js.map +1 -1
  141. package/package.json +84 -11
  142. package/dist/chunk-23DHXQOC.js +0 -2
  143. package/dist/chunk-23DHXQOC.js.map +0 -1
  144. package/dist/chunk-27LJCW56.cjs +0 -2
  145. package/dist/chunk-27LJCW56.cjs.map +0 -1
  146. package/dist/chunk-32RH5MSM.js +0 -2
  147. package/dist/chunk-32RH5MSM.js.map +0 -1
  148. package/dist/chunk-33TGLA5D.cjs +0 -2
  149. package/dist/chunk-33TGLA5D.cjs.map +0 -1
  150. package/dist/chunk-3CPIJF3Z.cjs +0 -2
  151. package/dist/chunk-3CPIJF3Z.cjs.map +0 -1
  152. package/dist/chunk-3KI3GEU3.cjs +0 -2
  153. package/dist/chunk-3KI3GEU3.cjs.map +0 -1
  154. package/dist/chunk-3WNZPBME.js +0 -2
  155. package/dist/chunk-5ILGCBKG.cjs +0 -2
  156. package/dist/chunk-5ILGCBKG.cjs.map +0 -1
  157. package/dist/chunk-7IO2KLSJ.cjs +0 -2
  158. package/dist/chunk-7IO2KLSJ.cjs.map +0 -1
  159. package/dist/chunk-AJUX7LYB.js +0 -2
  160. package/dist/chunk-AJUX7LYB.js.map +0 -1
  161. package/dist/chunk-B45EMB4Q.js +0 -2
  162. package/dist/chunk-B45EMB4Q.js.map +0 -1
  163. package/dist/chunk-CIS3YZSK.cjs +0 -2
  164. package/dist/chunk-CIS3YZSK.cjs.map +0 -1
  165. package/dist/chunk-EPBSLPRL.cjs.map +0 -1
  166. package/dist/chunk-ICYXODTQ.js +0 -2
  167. package/dist/chunk-ICYXODTQ.js.map +0 -1
  168. package/dist/chunk-JUDBIEZK.js +0 -2
  169. package/dist/chunk-JUDBIEZK.js.map +0 -1
  170. package/dist/chunk-K2JSAJAF.cjs +0 -2
  171. package/dist/chunk-K2JSAJAF.cjs.map +0 -1
  172. package/dist/chunk-K2KCQEER.js +0 -2
  173. package/dist/chunk-K2KCQEER.js.map +0 -1
  174. package/dist/chunk-K65TKDQ2.cjs +0 -2
  175. package/dist/chunk-K65TKDQ2.cjs.map +0 -1
  176. package/dist/chunk-S5A65JVL.cjs +0 -2
  177. package/dist/chunk-S5A65JVL.cjs.map +0 -1
  178. package/dist/chunk-SFVGMVIE.js +0 -2
  179. package/dist/chunk-SFVGMVIE.js.map +0 -1
  180. package/dist/chunk-T7TOEIOH.js +0 -2
  181. package/dist/chunk-T7TOEIOH.js.map +0 -1
  182. package/dist/chunk-TLUCO2ZN.cjs +0 -2
  183. package/dist/chunk-TLUCO2ZN.cjs.map +0 -1
  184. package/dist/chunk-WEZ5Q6YO.js +0 -2
  185. package/dist/chunk-WEZ5Q6YO.js.map +0 -1
  186. package/dist/chunk-Y34N5TWV.js +0 -2
  187. package/dist/chunk-Y34N5TWV.js.map +0 -1
@@ -0,0 +1,2 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } } function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }var _chunkU6UFULNScjs = require('./chunk-U6UFULNS.cjs');var _chunkH27ROY4Fcjs = require('./chunk-H27ROY4F.cjs');var _chunkRHMJPKNVcjs = require('./chunk-RHMJPKNV.cjs');var _chunkAV7YYSFIcjs = require('./chunk-AV7YYSFI.cjs');var _chunkOWDDAM6Ccjs = require('./chunk-OWDDAM6C.cjs');var _react = require('react');var _jsxruntime = require('react/jsx-runtime');var G=_react.createContext.call(void 0, null),vt= exports.a =({store:t,children:e})=>{let r=_react.useMemo.call(void 0, ()=>_chunkU6UFULNScjs.d.call(void 0, t),[t]),n=_react.useRef.call(void 0, !1);return _react.useEffect.call(void 0, ()=>(n.current=!1,()=>{n.current=!0,queueMicrotask(()=>{n.current&&(n.current=!1,_optionalChain([r, 'access', _2 => _2.feature, 'optionalAccess', _3 => _3.cleanup, 'optionalCall', _4 => _4()]))})}),[r]),_jsxruntime.jsx.call(void 0, G.Provider,{value:r,children:e})},S= exports.b =()=>{let t=_react.useContext.call(void 0, G);if(!t)throw new Error("BitForm hooks devem ser usados dentro de um BitFormProvider");return t};function Mt(){let t=S(),[e,r]=_react.useState.call(void 0, null),[n,s]=_react.useState.call(void 0, null),o=_react.useRef.call(void 0, null),c=_react.useCallback.call(void 0, p=>_chunkH27ROY4Fcjs.b.call(void 0, t,p),[t]),l=_react.useCallback.call(void 0, ()=>{let p=_chunkH27ROY4Fcjs.a.call(void 0, t);return o.current&&o.current.isValid===p.isValid&&o.current.isDirty===p.isDirty&&o.current.isSubmitting===p.isSubmitting?o.current:(o.current=p,p)},[t]),i=_react.useSyncExternalStore.call(void 0, c,l,l),a=_react.useMemo.call(void 0, ()=>_chunkH27ROY4Fcjs.i.call(void 0, t,{clearSubmissionState:()=>{r(null),s(null)},setSubmissionResult:p=>{s(p)},setSubmissionError:p=>{r(p)}}),[t]),{controller:m,actions:P}=a,b=_react.useCallback.call(void 0, m.submit,[m]),g=_react.useCallback.call(void 0, m.onSubmit,[m]),y=_react.useCallback.call(void 0, m.reset,[m]),F=_react.useCallback.call(void 0, m.getValues,[m]),h=_react.useCallback.call(void 0, m.getErrors,[m]),u=_react.useCallback.call(void 0, m.getTouched,[m]),B=_react.useCallback.call(void 0, m.getDirtyValues,[m]),R=_react.useMemo.call(void 0, ()=>({...i,submitError:e,lastResponse:n}),[i,e,n]);return _react.useMemo.call(void 0, ()=>({meta:R,getValues:F,getErrors:h,getTouched:u,getDirtyValues:B,submit:b,onSubmit:g,reset:y,...P}),[R,F,h,u,B,b,g,y,P])}function jt(t){let e=S(),r=_react.useMemo.call(void 0, ()=>_chunkH27ROY4Fcjs.g.call(void 0, e,t),[e,t]),n=_react.useRef.call(void 0, null),s=_react.useCallback.call(void 0, ()=>{let i=r.readItems();return n.current&&_chunkOWDDAM6Ccjs.c.call(void 0, n.current,i)?n.current:(n.current=i,i)},[r]),o=_react.useCallback.call(void 0, i=>e.observe.subscribePath(t,()=>i()),[e,t]),c=_react.useSyncExternalStore.call(void 0, o,s,s),l=_react.useMemo.call(void 0, ()=>r.getFields(c),[r,c]);return _react.useEffect.call(void 0, ()=>()=>{_chunkH27ROY4Fcjs.k.call(void 0, e,`${t}.`)},[e,t]),_react.useMemo.call(void 0, ()=>({fields:l,length:c.length,append:r.append,prepend:r.prepend,insert:r.insert,remove:r.remove,move:r.move,swap:r.swap,replace:r.replace,clear:r.clear}),[l,c.length,r])}function Wt(t){let e=S(),r=_react.useRef.call(void 0, null),n=_react.useCallback.call(void 0, ()=>{let i=e.read.getScopeStatus(t);return r.current&&_chunkRHMJPKNVcjs.b.call(void 0, r.current,i)?r.current:(r.current=i,i)},[e,t]),s=_react.useCallback.call(void 0, i=>e.observe.subscribeScopeStatus(t,()=>i()),[e,t]),o=_react.useSyncExternalStore.call(void 0, s,n,n),c=_react.useCallback.call(void 0, async()=>{let i=await e.feature.validate({scope:t}),a=e.read.getScopeErrors(t);return{valid:i,errors:a}},[e,t]),l=_react.useCallback.call(void 0, ()=>e.read.getScopeErrors(t),[e,t]);return _react.useMemo.call(void 0, ()=>({scopeName:t,status:o,errors:o.errors,validate:c,getErrors:l,isValid:!o.hasErrors,isDirty:o.isDirty}),[t,o,c,l])}function Gt(t){if(t.length===0)throw new Error("useBitSteps: scopeNames must not be empty");let e=S(),[r,n]=_react.useState.call(void 0, 0),s=_nullishCoalesce(t[r], () => ("")),o=_react.useRef.call(void 0, null),c=_react.useRef.call(void 0, s);c.current=s;let l=_react.useRef.call(void 0, r);l.current=r;let i=_react.useCallback.call(void 0, ()=>{let u=e.read.getScopeStatus(s);return o.current&&_chunkRHMJPKNVcjs.b.call(void 0, o.current,u)?o.current:(o.current=u,u)},[e,s]),a=_react.useSyncExternalStore.call(void 0, _react.useCallback.call(void 0, u=>e.observe.subscribeScopeStatus(s,()=>u()),[e,s]),i,i),m=_react.useCallback.call(void 0, async()=>{let u=await e.feature.validate({scope:s}),B=e.read.getScopeErrors(s);return{valid:u,errors:B}},[e,s]),P=_react.useCallback.call(void 0, ()=>e.read.getScopeErrors(s),[e,s]),b=_react.useCallback.call(void 0, async()=>{let u=c.current,B=l.current,R=e.read.getScopeFields(u);if(e.feature.hasValidationsInProgress(R))return!1;let p=await e.feature.validate({scope:u});if(B!==l.current)return!1;if(p)n(M=>Math.min(M+1,t.length-1));else{let M=e.read.getScopeErrors(u),C=Object.keys(M);C.length>0&&e.write.markFieldsTouched(C)}return p},[e,t.length]),g=_react.useCallback.call(void 0, ()=>{n(u=>Math.max(u-1,0))},[]),y=_react.useCallback.call(void 0, u=>{n(Math.max(0,Math.min(u-1,t.length-1)))},[t.length]),F=r===0,h=r>=t.length-1;return _react.useMemo.call(void 0, ()=>({step:r+1,stepIndex:r,scope:s,next:b,prev:g,goTo:y,isFirst:F,isLast:h,status:a,errors:a.errors,isValid:!a.hasErrors,isDirty:a.isDirty,validate:m,getErrors:P}),[r,s,b,g,y,F,h,a,m,P])}function Zt(t){let e=S(),r=_react.useRef.call(void 0, null),n=_react.useCallback.call(void 0, ()=>{let o=_chunkOWDDAM6Ccjs.f.call(void 0, e.read.getState().values,t);return r.current!==null&&_chunkOWDDAM6Ccjs.c.call(void 0, r.current,o)?r.current:(r.current=o,o)},[e,t]),s=_react.useCallback.call(void 0, o=>e.observe.subscribePath(t,()=>o()),[e,t]);return _react.useSyncExternalStore.call(void 0, s,n,n)}function se(){let t=S(),e=_react.useCallback.call(void 0, a=>_chunkH27ROY4Fcjs.e.call(void 0, t,a),[t]),r=_react.useRef.call(void 0, null),n=_react.useCallback.call(void 0, ()=>{let a=_chunkH27ROY4Fcjs.d.call(void 0, t);return r.current&&r.current.isSaving===a.isSaving&&r.current.isRestoring===a.isRestoring&&r.current.error===a.error?r.current:(r.current=a,a)},[t]),s=_react.useSyncExternalStore.call(void 0, e,n,n),o=_react.useCallback.call(void 0, async()=>t.feature.restorePersisted(),[t]),c=_react.useCallback.call(void 0, async()=>{await t.feature.forceSave()},[t]),l=_react.useCallback.call(void 0, async()=>{await t.feature.clearPersisted()},[t]),i=_react.useMemo.call(void 0, ()=>({isSaving:s.isSaving,isRestoring:s.isRestoring,error:s.error}),[s]);return _react.useMemo.call(void 0, ()=>({restore:o,save:c,clear:l,meta:i}),[o,c,l,i])}function me(t){let e=S(),r=_react.useRef.call(void 0, null);_react.useEffect.call(void 0, ()=>()=>_chunkH27ROY4Fcjs.j.call(void 0, e,t),[e,t]);let n=_react.useCallback.call(void 0, ()=>{let i=e.read.getFieldState(t),a=_chunkAV7YYSFIcjs.a.call(void 0, i,r.current);return r.current=a,a},[e,t]),s=_react.useCallback.call(void 0, i=>e.observe.subscribeFieldState(t,()=>i()),[e,t]),o=_react.useSyncExternalStore.call(void 0, s,n,n),c=_react.useCallback.call(void 0, i=>e.write.setField(t,i),[e,t]),l=_react.useCallback.call(void 0, ()=>e.write.blurField(t),[e,t]);return{fieldState:o,setValue:c,setBlur:l,store:e}}exports.a = vt; exports.b = S; exports.c = Mt; exports.d = me; exports.e = jt; exports.f = Wt; exports.g = Gt; exports.h = Zt; exports.i = se;
2
+ //# sourceMappingURL=chunk-WKLCAC74.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["/builds/kenji.ccp-group/bit-form/dist/chunk-WKLCAC74.cjs","../src/react/context.tsx","../src/react/use-bit-form.ts","../src/react/use-bit-array.ts"],"names":["BitContext","createContext","BitFormProvider","store","children","adapted","useMemo","createFrameworkStoreAdapter","cleanupPendingRef","useRef","useEffect","jsx","useBitStore","useContext","useBitForm","submitError","setSubmitError","useState","lastResponse","setLastResponse","lastMeta","subscribeMeta","useCallback","cb","subscribeFormMetaSnapshot","getMetaSnapshot","nextMeta","readFormMetaSnapshot","metaState","useSyncExternalStore","binding","createFrameworkFormBinding","result","error","controller","actions","submit","onSubmit","reset","getValues","getErrors","getTouched","getDirtyValues","meta","useBitArray","path","createArrayBinding","lastSnapshotRef","getSnapshot","next","valueEqual","subscribeArray","data","fields","cleanupRegisteredPrefix"],"mappings":"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","file":"/builds/kenji.ccp-group/bit-form/dist/chunk-WKLCAC74.cjs","sourcesContent":[null,"import React, { createContext, useContext, useEffect, useMemo, useRef } from \"react\";\nimport type { BitFrameworkStoreApi, BitStoreApi } from \"../core\";\nimport { createFrameworkStoreAdapter } from \"../core\";\n\nconst BitContext = createContext<BitFrameworkStoreApi<any> | null>(null);\n\ninterface BitFormProviderProps<T extends object> {\n store: BitFrameworkStoreApi<T> | BitStoreApi<T>;\n children: React.ReactNode;\n}\n\ninterface BitFormProviderRuntimeProps {\n store: unknown;\n children: React.ReactNode;\n}\n\ntype BitFormProviderComponent = {\n <T extends object>(props: BitFormProviderProps<T>): React.ReactElement;\n (props: BitFormProviderRuntimeProps): React.ReactElement;\n};\n\nexport const BitFormProvider: BitFormProviderComponent = ({\n store,\n children,\n}: BitFormProviderRuntimeProps) => {\n const adapted = useMemo(() => createFrameworkStoreAdapter(store), [store]);\n const cleanupPendingRef = useRef(false);\n\n useEffect(() => {\n // On mount (including Strict Mode remount), cancel any pending cleanup.\n cleanupPendingRef.current = false;\n\n return () => {\n // On unmount, flag that cleanup is pending and defer to microtask.\n // React Strict Mode double-mounts (mount → unmount → mount)\n // synchronously. The remount resets cleanupPendingRef before the\n // microtask fires, so Strict Mode cycles are safely ignored.\n cleanupPendingRef.current = true;\n queueMicrotask(() => {\n if (cleanupPendingRef.current) {\n cleanupPendingRef.current = false;\n (adapted as any).feature?.cleanup?.();\n }\n });\n };\n }, [adapted]);\n\n return (\n <BitContext.Provider value={adapted}>\n {children}\n </BitContext.Provider>\n );\n};\n\nexport const useBitStore = <T extends object>() => {\n const store = useContext(BitContext);\n if (!store)\n throw new Error(\n \"BitForm hooks devem ser usados dentro de um BitFormProvider\",\n );\n return store as BitFrameworkStoreApi<T>;\n};\n","import {\n useCallback,\n useMemo,\n useRef,\n useState,\n useSyncExternalStore,\n} from \"react\";\nimport {\n createFrameworkFormBinding,\n readFormMetaSnapshot,\n subscribeFormMetaSnapshot,\n} from \"../core\";\nimport { useBitStore } from \"./context\";\nimport type { UseBitFormResult } from \"./types\";\n\nexport function useBitForm<T extends object>(): UseBitFormResult<T> {\n const store = useBitStore<T>();\n\n const [submitError, setSubmitError] = useState<Error | null>(null);\n const [lastResponse, setLastResponse] = useState<unknown>(null);\n const lastMeta = useRef<ReturnType<typeof readFormMetaSnapshot<T>> | null>(\n null,\n );\n\n const subscribeMeta = useCallback(\n (cb: () => void) => subscribeFormMetaSnapshot(store, cb),\n [store],\n );\n const getMetaSnapshot = useCallback(() => {\n const nextMeta = readFormMetaSnapshot(store);\n\n if (\n lastMeta.current &&\n lastMeta.current.isValid === nextMeta.isValid &&\n lastMeta.current.isDirty === nextMeta.isDirty &&\n lastMeta.current.isSubmitting === nextMeta.isSubmitting\n ) {\n return lastMeta.current;\n }\n\n lastMeta.current = nextMeta;\n return nextMeta;\n }, [store]);\n\n const metaState = useSyncExternalStore(\n subscribeMeta,\n getMetaSnapshot,\n getMetaSnapshot,\n );\n\n const binding = useMemo(\n () =>\n createFrameworkFormBinding(store, {\n clearSubmissionState: () => {\n setSubmitError(null);\n setLastResponse(null);\n },\n setSubmissionResult: (result) => {\n setLastResponse(result);\n },\n setSubmissionError: (error) => {\n setSubmitError(error);\n },\n }),\n [store],\n );\n\n const { controller, actions } = binding;\n\n const submit = useCallback(controller.submit, [controller]);\n const onSubmit = useCallback(controller.onSubmit, [controller]);\n const reset = useCallback(controller.reset, [controller]);\n\n const getValues = useCallback(controller.getValues, [controller]);\n const getErrors = useCallback(controller.getErrors, [controller]);\n const getTouched = useCallback(controller.getTouched, [controller]);\n const getDirtyValues = useCallback(controller.getDirtyValues, [controller]);\n\n const meta = useMemo(\n () => ({\n ...metaState,\n submitError,\n lastResponse,\n }),\n [metaState, submitError, lastResponse],\n );\n\n return useMemo(\n () => ({\n // Metadata (grouped)\n meta,\n // Getters\n getValues,\n getErrors,\n getTouched,\n getDirtyValues,\n // Main actions (frequent use - flat)\n submit,\n onSubmit,\n reset,\n ...actions,\n }),\n [\n meta,\n getValues,\n getErrors,\n getTouched,\n getDirtyValues,\n submit,\n onSubmit,\n reset,\n actions,\n ],\n );\n}\n","import {\n useCallback,\n useEffect,\n useMemo,\n useRef,\n useSyncExternalStore,\n} from \"react\";\nimport {\n BitArrayPath,\n cleanupRegisteredPrefix,\n createArrayBinding,\n valueEqual,\n} from \"../core\";\nimport { useBitStore } from \"./context\";\n\nexport function useBitArray<\n TForm extends object = any,\n P extends BitArrayPath<TForm> = BitArrayPath<TForm>,\n>(path: P) {\n const store = useBitStore<TForm>();\n const controller = useMemo(\n () => createArrayBinding<TForm, P>(store, path),\n [store, path],\n );\n type ArraySnapshot = ReturnType<typeof controller.readItems>;\n const lastSnapshotRef = useRef<ArraySnapshot | null>(null);\n\n const getSnapshot = useCallback(() => {\n const next = controller.readItems();\n\n if (lastSnapshotRef.current && valueEqual(lastSnapshotRef.current, next)) {\n return lastSnapshotRef.current;\n }\n\n lastSnapshotRef.current = next;\n return next;\n }, [controller]);\n\n const subscribeArray = useCallback(\n (cb: () => void) => store.observe.subscribePath(path, () => cb()),\n [store, path],\n );\n\n const data = useSyncExternalStore(subscribeArray, getSnapshot, getSnapshot);\n\n const fields = useMemo(() => controller.getFields(data), [controller, data]);\n\n useEffect(() => {\n return () => {\n cleanupRegisteredPrefix(store, `${path as string}.`);\n };\n }, [store, path]);\n\n return useMemo(\n () => ({\n fields,\n length: data.length,\n append: controller.append,\n prepend: controller.prepend,\n insert: controller.insert,\n remove: controller.remove,\n move: controller.move,\n swap: controller.swap,\n replace: controller.replace,\n clear: controller.clear,\n }),\n [fields, data.length, controller],\n );\n}\n"]}
@@ -0,0 +1,2 @@
1
+ import{a as u,c as D}from"./chunk-K5X37E3U.js";import{a as R}from"./chunk-7T7L2TZX.js";function j(e){return{values:e.values,errors:e.errors,touched:e.touched,isValid:e.isValid,isDirty:e.isDirty,isSubmitting:e.isSubmitting,isValidating:e.isValidating,persist:e.persist}}function A(e){let t=e.getHistoryMetadata();return{...j(e.getState()),_meta:{canUndo:t.canUndo,canRedo:t.canRedo,totalSteps:t.historySize,currentIndex:t.historyIndex}}}function h(e){let t={};for(let[o,i]of Object.entries(e))try{t[o]=A(i)}catch(a){console.warn(`[bit-form] Failed to snapshot store "${o}":`,a)}return t}function O(e){if(!e||typeof e!="object")return!1;let t=e;return typeof t.getState=="function"&&typeof t.getHistoryMetadata=="function"}function x(e){if(!O(e))return!1;let t=e;return typeof t.undo=="function"&&typeof t.redo=="function"&&typeof t.reset=="function"}function k(e,t){let o=e[t];return x(o)?o:null}var b=null,E=50;function W(e,t=R){b&&(console.warn("[bit-form] Reiniciando ponte do DevTools (Fast Refresh detectado)."),b());let o=null,i=null,a,s=null,d,c=new Set,f=!1,p=0,g=3e4,S=n=>{if(o?.readyState===WebSocket.OPEN)try{o.send(JSON.stringify(n))}catch(r){console.warn("[bit-form] Failed to serialize/send message:",r)}},w=()=>{if(c.size!==0)try{let n=h(Array.from(c).reduce((r,l)=>{let m=t.stores[l];return m&&(r[l]=m),r},{}));c.clear(),s=null,Object.keys(n).length>0&&S({type:"STATE_UPDATE",protocolVersion:1,payload:n})}catch(n){console.warn("[bit-form] Failed to create snapshot:",n),c.clear(),s=null}},I=()=>{s||(s=setTimeout(()=>{w()},E))},y=()=>{f=!1;try{o=new WebSocket(e)}catch(n){console.error("[bit-form] Failed to create WebSocket:",n);let l=Math.min(1e3*Math.pow(2,p),g)*(.5+Math.random()*.5);p++,f||(d=setTimeout(y,l));return}o.onopen=()=>{p=0,console.log("[bit-form] \u{1F50C} Conectado ao CLI DevTools via WebSocket."),S({type:"HELLO",protocolVersion:1,payload:{role:"server",protocolVersion:1}});let n=h(t.stores);Object.keys(n).length>0&&S({type:"STATE_UPDATE",protocolVersion:1,payload:n}),i=t.subscribe((r,l)=>{c.add(r),I()}),a=setInterval(()=>{S({type:"PING",protocolVersion:1})},3e4)},o.onmessage=n=>{try{let r=JSON.parse(n.data);if(D(r)){let{storeId:l,action:m}=r.payload,T=k(t.stores,l);if(!T)return;switch(m){case"undo":T.undo();break;case"redo":T.redo();break;case"reset":T.reset();break}}}catch(r){console.warn("[bit-form] Erro ao processar comando do CLI:",r)}},o.onerror=n=>{console.error("[bit-form] WebSocket error:",n)},o.onclose=()=>{if(i&&i(),a&&clearInterval(a),s&&(clearTimeout(s),s=null),c.clear(),f)console.log("[bit-form] Ponte antiga encerrada com sucesso.");else{console.log("[bit-form] Conex\xE3o perdida. Reconectando...");let r=Math.min(1e3*Math.pow(2,p),g)*(.5+Math.random()*.5);p++,d=setTimeout(y,r)}}};y();let v=!1,B=()=>{v||(v=!0,f=!0,d&&(clearTimeout(d),d=void 0),i&&i(),a&&clearInterval(a),s&&(clearTimeout(s),s=null),c.clear(),o&&(o.readyState===WebSocket.OPEN||o.readyState===WebSocket.CONNECTING)&&o.close(),b=null)};return b=B,B}export{h as a,k as b,W as c};
2
+ //# sourceMappingURL=chunk-WYYVVM2C.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/devtools/store-snapshot.ts","../src/devtools/store-port.ts","../src/devtools/bridge.ts"],"sourcesContent":["import type { BitBusStorePort, BitState } from \"../core\";\nimport type { DevToolsStoreSnapshot, DevToolsStoreSnapshots } from \"./protocol\";\n\nfunction normalizeStoreState<T extends object>(\n state: Readonly<BitState<T>>,\n): Omit<DevToolsStoreSnapshot, \"_meta\"> {\n return {\n values: state.values,\n errors: state.errors as Record<string, unknown>,\n touched: state.touched as Record<string, unknown>,\n isValid: state.isValid,\n isDirty: state.isDirty,\n isSubmitting: state.isSubmitting,\n isValidating: state.isValidating as Record<string, unknown>,\n persist: state.persist,\n };\n}\n\nexport function createDevToolsStoreSnapshot<T extends object>(store: {\n getState: () => Readonly<BitState<T>>;\n getHistoryMetadata: () => {\n canUndo: boolean;\n canRedo: boolean;\n historySize: number;\n historyIndex: number;\n };\n}): DevToolsStoreSnapshot {\n const historyMeta = store.getHistoryMetadata();\n\n return {\n ...normalizeStoreState(store.getState()),\n _meta: {\n canUndo: historyMeta.canUndo,\n canRedo: historyMeta.canRedo,\n totalSteps: historyMeta.historySize,\n currentIndex: historyMeta.historyIndex,\n },\n };\n}\n\nexport function createDevToolsSnapshotMap(\n stores: Record<string, BitBusStorePort<object>>,\n): DevToolsStoreSnapshots {\n const snapshots: DevToolsStoreSnapshots = {};\n\n for (const [storeId, instance] of Object.entries(stores)) {\n try {\n snapshots[storeId] = createDevToolsStoreSnapshot(instance);\n } catch (e) {\n console.warn(`[bit-form] Failed to snapshot store \"${storeId}\":`, e);\n }\n }\n\n return snapshots;\n}\n","import type { BitBusStorePort } from \"../core\";\n\nexport type BitDevToolsReadableStore<T extends object = object> =\n BitBusStorePort<T>;\n\nexport type BitDevToolsActionableStore<T extends object = object> =\n BitBusStorePort<T>;\n\nexport function isDevToolsReadableStore(\n value: unknown,\n): value is BitDevToolsReadableStore<object> {\n if (!value || typeof value !== \"object\") {\n return false;\n }\n\n const candidate = value as unknown as Record<string, unknown>;\n\n return (\n typeof candidate.getState === \"function\" &&\n typeof candidate.getHistoryMetadata === \"function\"\n );\n}\n\nexport function isDevToolsActionableStore(\n value: unknown,\n): value is BitDevToolsActionableStore<object> {\n if (!isDevToolsReadableStore(value)) {\n return false;\n }\n\n const candidate = value as unknown as Record<string, unknown>;\n\n return (\n typeof candidate.undo === \"function\" &&\n typeof candidate.redo === \"function\" &&\n typeof candidate.reset === \"function\"\n );\n}\n\nexport function getDevToolsActionableStore(\n stores: Record<string, unknown>,\n storeId: string,\n): BitDevToolsActionableStore<object> | null {\n const candidate = stores[storeId];\n return isDevToolsActionableStore(candidate) ? candidate : null;\n}\n","import { bitBus } from \"../core\";\nimport type { BitBus } from \"../core\";\nimport type { BitBusStorePort } from \"../core\";\nimport { DEVTOOLS_PROTOCOL_VERSION, isDevToolsActionMessage } from \"./protocol\";\nimport { createDevToolsSnapshotMap } from \"./store-snapshot\";\nimport { getDevToolsActionableStore } from \"./store-port\";\n\nlet activeBridgeCleanup: (() => void) | null = null;\nconst STATE_BATCH_INTERVAL_MS = 50;\n\nexport function setupRemoteBridge(url: string, bus: BitBus = bitBus) {\n if (activeBridgeCleanup) {\n console.warn(\n \"[bit-form] Reiniciando ponte do DevTools (Fast Refresh detectado).\",\n );\n activeBridgeCleanup();\n }\n\n let socket: WebSocket | null = null;\n let unsubscribeBus: (() => void) | null = null;\n let heartbeatInterval: ReturnType<typeof setInterval> | undefined;\n let batchFlushTimeout: ReturnType<typeof setTimeout> | null = null;\n let reconnectTimer: ReturnType<typeof setTimeout> | undefined;\n const pendingStoreIds = new Set<string>();\n let isIntentionalDisconnect = false;\n let retries = 0;\n const MAX_RETRY_DELAY = 30000;\n\n const sendWhenOpen = (message: Record<string, unknown>) => {\n if (socket?.readyState !== WebSocket.OPEN) {\n return;\n }\n\n try {\n socket.send(JSON.stringify(message));\n } catch (e) {\n console.warn(\"[bit-form] Failed to serialize/send message:\", e);\n }\n };\n\n const flushPendingStoreUpdates = () => {\n if (pendingStoreIds.size === 0) {\n return;\n }\n\n try {\n const payload = createDevToolsSnapshotMap(\n Array.from(pendingStoreIds).reduce<\n Record<string, BitBusStorePort<object>>\n >((acc, storeId) => {\n const storeInstance = bus.stores[storeId];\n if (storeInstance) {\n acc[storeId] = storeInstance;\n }\n return acc;\n }, {}),\n );\n\n pendingStoreIds.clear();\n batchFlushTimeout = null;\n\n if (Object.keys(payload).length > 0) {\n sendWhenOpen({\n type: \"STATE_UPDATE\",\n protocolVersion: DEVTOOLS_PROTOCOL_VERSION,\n payload,\n });\n }\n } catch (e) {\n console.warn(\"[bit-form] Failed to create snapshot:\", e);\n pendingStoreIds.clear();\n batchFlushTimeout = null;\n }\n };\n\n const scheduleStoreFlush = () => {\n if (batchFlushTimeout) {\n return;\n }\n\n batchFlushTimeout = setTimeout(() => {\n flushPendingStoreUpdates();\n }, STATE_BATCH_INTERVAL_MS);\n };\n\n const connect = () => {\n isIntentionalDisconnect = false;\n try {\n socket = new WebSocket(url);\n } catch (e) {\n console.error(\"[bit-form] Failed to create WebSocket:\", e);\n const delay = Math.min(1000 * Math.pow(2, retries), MAX_RETRY_DELAY);\n const jitter = delay * (0.5 + Math.random() * 0.5);\n retries++;\n if (!isIntentionalDisconnect) {\n reconnectTimer = setTimeout(connect, jitter);\n }\n return;\n }\n\n socket.onopen = () => {\n retries = 0;\n console.log(\"[bit-form] 🔌 Conectado ao CLI DevTools via WebSocket.\");\n\n sendWhenOpen({\n type: \"HELLO\",\n protocolVersion: DEVTOOLS_PROTOCOL_VERSION,\n payload: { role: \"server\", protocolVersion: DEVTOOLS_PROTOCOL_VERSION },\n });\n\n const initialState = createDevToolsSnapshotMap(bus.stores);\n if (Object.keys(initialState).length > 0) {\n sendWhenOpen({\n type: \"STATE_UPDATE\",\n protocolVersion: DEVTOOLS_PROTOCOL_VERSION,\n payload: initialState,\n });\n }\n\n unsubscribeBus = bus.subscribe((storeId, _newState) => {\n pendingStoreIds.add(storeId);\n scheduleStoreFlush();\n });\n\n heartbeatInterval = setInterval(() => {\n sendWhenOpen({\n type: \"PING\",\n protocolVersion: DEVTOOLS_PROTOCOL_VERSION,\n });\n }, 30000);\n };\n\n socket.onmessage = (event) => {\n try {\n const message = JSON.parse(event.data) as unknown;\n\n if (isDevToolsActionMessage(message)) {\n const { storeId, action } = message.payload;\n const store = getDevToolsActionableStore(bus.stores, storeId);\n\n if (!store) {\n return;\n }\n\n switch (action) {\n case \"undo\":\n store.undo();\n break;\n case \"redo\":\n store.redo();\n break;\n case \"reset\":\n store.reset();\n break;\n }\n }\n } catch (e) {\n console.warn(\"[bit-form] Erro ao processar comando do CLI:\", e);\n }\n };\n\n socket.onerror = (event) => {\n console.error(\"[bit-form] WebSocket error:\", event);\n };\n\n socket.onclose = () => {\n if (unsubscribeBus) unsubscribeBus();\n if (heartbeatInterval) clearInterval(heartbeatInterval);\n if (batchFlushTimeout) {\n clearTimeout(batchFlushTimeout);\n batchFlushTimeout = null;\n }\n pendingStoreIds.clear();\n\n if (!isIntentionalDisconnect) {\n console.log(\"[bit-form] Conexão perdida. Reconectando...\");\n const delay = Math.min(1000 * Math.pow(2, retries), MAX_RETRY_DELAY);\n const jitter = delay * (0.5 + Math.random() * 0.5);\n retries++;\n reconnectTimer = setTimeout(connect, jitter);\n } else {\n console.log(\"[bit-form] Ponte antiga encerrada com sucesso.\");\n }\n };\n };\n\n connect();\n\n let cleanedUp = false;\n const cleanup = () => {\n if (cleanedUp) return;\n cleanedUp = true;\n isIntentionalDisconnect = true;\n if (reconnectTimer) {\n clearTimeout(reconnectTimer);\n reconnectTimer = undefined;\n }\n\n if (unsubscribeBus) unsubscribeBus();\n if (heartbeatInterval) clearInterval(heartbeatInterval);\n if (batchFlushTimeout) {\n clearTimeout(batchFlushTimeout);\n batchFlushTimeout = null;\n }\n pendingStoreIds.clear();\n if (\n socket &&\n (socket.readyState === WebSocket.OPEN ||\n socket.readyState === WebSocket.CONNECTING)\n ) {\n socket.close();\n }\n activeBridgeCleanup = null;\n };\n\n activeBridgeCleanup = cleanup;\n\n return cleanup;\n}\n"],"mappings":"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","names":["normalizeStoreState","state","createDevToolsStoreSnapshot","store","historyMeta","createDevToolsSnapshotMap","stores","snapshots","storeId","instance","e","isDevToolsReadableStore","value","candidate","isDevToolsActionableStore","getDevToolsActionableStore","stores","storeId","activeBridgeCleanup","STATE_BATCH_INTERVAL_MS","setupRemoteBridge","url","bus","bitBus","socket","unsubscribeBus","heartbeatInterval","batchFlushTimeout","reconnectTimer","pendingStoreIds","isIntentionalDisconnect","retries","MAX_RETRY_DELAY","sendWhenOpen","message","e","flushPendingStoreUpdates","payload","createDevToolsSnapshotMap","acc","storeId","storeInstance","scheduleStoreFlush","connect","jitter","initialState","_newState","event","isDevToolsActionMessage","action","store","getDevToolsActionableStore","cleanedUp","cleanup"]}
@@ -0,0 +1,2 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } } function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }var X={"#":/\d/,A:/[a-zA-Z]/,X:/[a-zA-Z0-9]/,H:/[0-9a-fA-F]/,U:/[A-Z]/,L:/[a-z]/,"*":/./},C= exports.a =(r,n)=>{if(r==null||r==="")return"";let t=String(r),c=t.startsWith("-"),o=n?n.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"):"",p=new RegExp(`[^a-zA-Z0-9${o}]`,"g"),m=t.replace(p,"");return c&&m&&!m.startsWith("-")?`-${m}`:m},te= exports.b =(r,n=2)=>{if(typeof r=="number")return r;if(!r)return 0;let t=String(r),c=t.includes("-"),o=t.replace(/\D/g,"");if(!o)return 0;let p=parseInt(o,10)/Math.pow(10,n);return c?-p:p},i= exports.c =(r,n)=>{let t=s=>s.split("").filter(e=>X[e]).length,c=Array.isArray(r)?r:[r];if(c.length===0)return{format:s=>s==null||s===""?"":String(s),parse:s=>String(_nullishCoalesce(s, () => ("")))};let o=[...c].sort((s,e)=>t(s)-t(e)),p=s=>{let e=o[o.length-1];for(let l of o)if(s<=t(l)){e=l;break}return e},m=s=>{let e=C(s,_optionalChain([n, 'optionalAccess', _2 => _2.allowChars]));if(!e&&!_optionalChain([n, 'optionalAccess', _3 => _3.guide]))return"";let l=p(e.length),a=_optionalChain([n, 'optionalAccess', _4 => _4.guide])||!1,d=_optionalChain([n, 'optionalAccess', _5 => _5.placeholderChar])||"_",k="",f=0;for(let h=0;h<l.length;h++){let g=l[h],x=X[g];if(f<e.length){let H=e[f];if(x)if(g==="U"&&(H=H.toUpperCase()),g==="L"&&(H=H.toLowerCase()),x.test(H))k+=H,f++;else if(a)k+=d;else break;else k+=g,H===g&&f++}else if(a)k+=x?d:g;else break}return k};return{format:m,parse:s=>{if(_optionalChain([n, 'optionalAccess', _6 => _6.customParse]))return n.customParse(s);let e=m(s);if(_optionalChain([n, 'optionalAccess', _7 => _7.saveRaw])){if(_optionalChain([n, 'optionalAccess', _8 => _8.guide])){let a=(n.placeholderChar||"_").replace(/[.*+?^${}()|[\]\\]/g,"\\$&"),d=new RegExp(a,"g");return e.replace(d,"")}return e}return C(e,_optionalChain([n, 'optionalAccess', _9 => _9.allowChars]))}}},u= exports.d =({prefix:r="",suffix:n="",thousand:t,decimal:c,precision:o=2,allowNegative:p=!0,saveRaw:m=!1})=>{let s=e=>{if(e==null||e==="")return"";let l=String(e);l.length>200&&(l=l.slice(0,200));let a=typeof e=="number"?Math.abs(e).toFixed(o).replace(/\D/g,""):l.replace(/\D/g,"");if(!a&&String(e).includes("-")&&p)return"-";if(!a)return"";let d=20;a.length>d&&(a=a.slice(0,d)),a=a.padStart(o+1,"0");let k=o>0?a.slice(0,-o).replace(/^0+(?=\d)/,"")||"0":a.replace(/^0+(?=\d)/,"")||"0",f=o>0?a.slice(-o):"",h=k.replace(/\B(?=(\d{3})+(?!\d))/g,t),x=(typeof e=="number"?e<0:String(e).includes("-"))&&p?"-":"";return o===0?`${x}${r}${h}${n}`:`${x}${r}${h}${c}${f}${n}`};return{format:s,parse:e=>{let l=te(e,o),a=p?l:Math.abs(l);return m?s(a):a}}},$= exports.e =r=>{let n=t=>/^3[47]/.test(t)?"#### ###### #####":/^3(?:0[0-5]|[68])/.test(t)?"#### ###### ####":"#### #### #### ####";return{format:t=>{let c=C(t,_optionalChain([r, 'optionalAccess', _10 => _10.allowChars])),o=n(c);return i(o,r).format(t)},parse:t=>{let c=C(t,_optionalChain([r, 'optionalAccess', _11 => _11.allowChars])),o=n(c);return i(o,r).parse(t)}}},M= exports.f =r=>{let t=(_optionalChain([r, 'optionalAccess', _12 => _12.format])||"DD/MM/YYYY")==="YYYY-MM-DD",c=i(t?"####-##-##":"##/##/####",r);return{format:o=>{let p=C(o);if(!p)return"";let m,s,e;if(t?(e=p.substring(0,4),s=p.substring(4,6),m=p.substring(6,8)):(m=p.substring(0,2),s=p.substring(2,4),e=p.substring(4,8)),m.length===2){let a=parseInt(m,10);if(a>31&&(a=31),a===0&&(a=1),s.length===2){let d=parseInt(s,10),k=e.length===4?parseInt(e,10):e.length>0?parseInt(e.padEnd(4,"0"),10):0,g=_nullishCoalesce({1:31,2:k>0&&(k%4===0&&k%100!==0||k%400===0)?29:28,3:31,4:30,5:31,6:30,7:31,8:31,9:30,10:31,11:30,12:31}[d], () => (31));a>g&&(a=g)}m=String(a).padStart(2,"0")}if(s.length===2){let a=parseInt(s,10);a>12&&(s="12"),a===0&&(s="01")}let l=t?`${e}${s}${m}`:`${m}${s}${e}`;return c.format(l)},parse:o=>c.parse(o)}};var S=u({prefix:"R$ ",thousand:".",decimal:",",precision:2}),y= exports.h =u({prefix:"$",thousand:",",decimal:".",precision:2}),D= exports.i =u({suffix:" \u20AC",thousand:".",decimal:",",precision:2}),b= exports.j =u({prefix:"\xA3",thousand:",",decimal:".",precision:2}),I= exports.k =u({prefix:"\xA5",thousand:",",decimal:".",precision:0}),Y= exports.l =u({suffix:"%",thousand:".",decimal:",",precision:1}),B= exports.m =u({thousand:".",decimal:",",precision:2}),P= exports.n =u({thousand:".",decimal:",",precision:0}),R= exports.o =i("###.###.###-##"),A= exports.p =i("##.###.###/####-##"),U= exports.q =i(["(##) ####-####","(##) #####-####"]),N= exports.r =i("(##) ####-####"),V= exports.s =i("#####-###"),w= exports.t =M({format:"DD/MM/YYYY",guide:!0,customParse:r=>{let n=r.replace(/_/g,""),t=n.split("/");return t.length===3&&t[2].length===4?`${t[2]}-${t[1]}-${t[0]}`:n.replace(/\D/g,"")}}),L= exports.u =i("##:##"),E= exports.v =i("###########"),Z= exports.w =i(["##.###.###","##.###.###-X"]),z= exports.x =i(["###.###.###-##","##.###.###/####-##"]),F= exports.y ={format(r){let n=String(_nullishCoalesce(r, () => (""))).replace(/[^a-zA-Z0-9]/g,"").toUpperCase().slice(0,7);if(n.length===0)return"";let t=n.slice(0,3),c=n.slice(3);return c.length===0?t:c.length>=2&&/[A-Z]/.test(c[1])?`${t}${c}`:`${t}-${c}`},parse(r){return String(_nullishCoalesce(r, () => (""))).replace(/[^a-zA-Z0-9]/g,"").toUpperCase().slice(0,7)}},O= exports.z =i("(###) ###-####"),T= exports.A =i("#####-####"),G= exports.B =i("##/##/####"),J= exports.C =i("###-##-####"),_= exports.D =$(),j= exports.E =i("####"),W= exports.F =M({format:"YYYY-MM-DD",saveRaw:!0,guide:!0}),q= exports.G =i("HH:HH:HH:HH:HH:HH"),K= exports.H =i("#HHHHHH"),Q= exports.I =i("###.###.###.###"),v= exports.J =i("HHHH:HHHH:HHHH:HHHH:HHHH:HHHH:HHHH:HHHH"),ee= exports.K =i("UU## XXXX XXXX XXXX XXXX XXXX XXXX XXXX XX",{allowChars:" "});var ae={brl:S,usd:y,eur:D,gbp:b,jpy:I,percent:Y,decimal:B,int:P,integer:P,cpf:R,cnpj:A,cpfCnpj:z,rg:Z,cep:V,cnh:E,plate:F,phone:U,landline:N,date:w,time:L,usPhone:O,zipCode:T,dateUS:G,ssn:J,cc:_,cvv:j,dateISO:W,ip:Q,ipv6:v,mac:q,color:K,iban:ee};exports.a = C; exports.b = te; exports.c = i; exports.d = u; exports.e = $; exports.f = M; exports.g = S; exports.h = y; exports.i = D; exports.j = b; exports.k = I; exports.l = Y; exports.m = B; exports.n = P; exports.o = R; exports.p = A; exports.q = U; exports.r = N; exports.s = V; exports.t = w; exports.u = L; exports.v = E; exports.w = Z; exports.x = z; exports.y = F; exports.z = O; exports.A = T; exports.B = G; exports.C = J; exports.D = _; exports.E = j; exports.F = W; exports.G = q; exports.H = K; exports.I = Q; exports.J = v; exports.K = ee; exports.L = ae;
2
+ //# sourceMappingURL=chunk-X3DGA5UC.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/core/mask/creators.ts"],"names":["tokens","unmask","value","allowChars","stringValue","isNegative","escapedChars","regex","clean"],"mappings":"AASA,qrBAAMA,CAAAA,CAAmB,CACvB,GAAA,CAAK,IAAA,CACL,CAAA,CAAG,UAAA,CACH,CAAA,CAAG,aAAA,CACH,CAAA,CAAG,aAAA,CACH,CAAA,CAAG,OAAA,CACH,CAAA,CAAG,OAAA,CACH,GAAA,CAAK,GACP,CAAA,CAEaC,CAAAA,aAAS,CACpBC,CAAAA,CACAC,CAAAA,CAAAA,EACW,CACX,EAAA,CAAID,CAAAA,EAAU,IAAA,EAA+BA,CAAAA,GAAU,EAAA,CAAI,MAAO,EAAA,CAClE,IAAME,CAAAA,CAAc,MAAA,CAAOF,CAAK,CAAA,CAC1BG,CAAAA,CAAaD,CAAAA,CAAY,UAAA,CAAW,GAAG,CAAA,CAEvCE,CAAAA,CAAeH,CAAAA,CACjBA,CAAAA,CAAW,OAAA,CAAQ,qBAAA,CAAuB,MAAM,CAAA,CAChD,EAAA,CACEI,CAAAA,CAAQ,IAAI,MAAA,CAAO,CAAA,WAAA,EAAcD,CAAY,CAAA,CAAA,CAAA,CAAK,GAAG,CAAA,CAErDE,CAAAA,CAAQJ,CAAAA,CAAY,OAAA,CAAQG,CAAAA,CAAO,EAAE,CAAA,CAC3C,OAAOF,CAAAA,EAAcG,CAAAA,EAAS,CAACA,CAAAA,CAAM,UAAA,CAAW,GAAG,CAAA,CAAI,CAAA,CAAA,EAAIA,CAAK,CAAA,CAAA","file":"/builds/kenji.ccp-group/bit-form/dist/chunk-X3DGA5UC.cjs","sourcesContent":["import {\n BitMask,\n CurrencyMaskConfig,\n DateMaskConfig,\n PatternMaskOptions,\n} from \"./types\";\n\ntype TokenMap = Record<string, RegExp>;\n\nconst tokens: TokenMap = {\n \"#\": /\\d/,\n A: /[a-zA-Z]/,\n X: /[a-zA-Z0-9]/,\n H: /[0-9a-fA-F]/,\n U: /[A-Z]/,\n L: /[a-z]/,\n \"*\": /./,\n};\n\nexport const unmask = (\n value: string | number | null | undefined,\n allowChars?: string,\n): string => {\n if (value === null || value === undefined || value === \"\") return \"\";\n const stringValue = String(value);\n const isNegative = stringValue.startsWith(\"-\");\n\n const escapedChars = allowChars\n ? allowChars.replace(/[.*+?^${}()|[\\]\\\\]/g, \"\\\\$&\")\n : \"\";\n const regex = new RegExp(`[^a-zA-Z0-9${escapedChars}]`, \"g\");\n\n const clean = stringValue.replace(regex, \"\");\n return isNegative && clean && !clean.startsWith(\"-\") ? `-${clean}` : clean;\n};\n\nexport const unmaskCurrency = (value: any, precision = 2): number => {\n if (typeof value === \"number\") return value;\n if (!value) return 0;\n\n const stringValue = String(value);\n const isNegative = stringValue.includes(\"-\");\n const digits = stringValue.replace(/\\D/g, \"\");\n\n if (!digits) return 0;\n\n const numberValue = parseInt(digits, 10) / Math.pow(10, precision);\n return isNegative ? -numberValue : numberValue;\n};\n\nexport const createPatternMask = (\n pattern: string | string[],\n options?: PatternMaskOptions,\n): BitMask => {\n const getRawLength = (p: string) =>\n p.split(\"\").filter((c) => tokens[c]).length;\n\n const patterns = Array.isArray(pattern) ? pattern : [pattern];\n\n if (patterns.length === 0) {\n return {\n format: (value: unknown) =>\n value === undefined || value === null || value === \"\"\n ? \"\"\n : String(value),\n parse: (value: unknown) => String(value ?? \"\"),\n };\n }\n\n const sortedPatterns = [...patterns].sort(\n (a, b) => getRawLength(a) - getRawLength(b),\n );\n\n const getActivePattern = (rawValueLength: number) => {\n let activePattern = sortedPatterns[sortedPatterns.length - 1];\n for (const candidate of sortedPatterns) {\n if (rawValueLength <= getRawLength(candidate)) {\n activePattern = candidate;\n break;\n }\n }\n return activePattern;\n };\n\n const formatValue = (value: string | number | null | undefined): string => {\n const stringVal = unmask(value, options?.allowChars);\n\n if (!stringVal && !options?.guide) {\n return \"\";\n }\n\n const activePattern = getActivePattern(stringVal.length);\n const showGuide = options?.guide || false;\n const placeholder = options?.placeholderChar || \"_\";\n\n let masked = \"\";\n let valueIndex = 0;\n\n for (let i = 0; i < activePattern.length; i++) {\n const patternChar = activePattern[i];\n const token = tokens[patternChar];\n\n if (valueIndex < stringVal.length) {\n let dataChar = stringVal[valueIndex];\n\n if (token) {\n if (patternChar === \"U\") dataChar = dataChar.toUpperCase();\n if (patternChar === \"L\") dataChar = dataChar.toLowerCase();\n\n if (token.test(dataChar)) {\n masked += dataChar;\n valueIndex++;\n } else if (showGuide) {\n masked += placeholder;\n } else {\n break;\n }\n } else {\n masked += patternChar;\n if (dataChar === patternChar) valueIndex++;\n }\n } else if (showGuide) {\n masked += token ? placeholder : patternChar;\n } else {\n break;\n }\n }\n\n return masked;\n };\n\n return {\n format: formatValue,\n parse: (value: string) => {\n if (options?.customParse) return options.customParse(value);\n\n const formatted = formatValue(value);\n\n if (options?.saveRaw) {\n if (options?.guide) {\n const placeholder = options.placeholderChar || \"_\";\n const escapedPlaceholder = placeholder.replace(\n /[.*+?^${}()|[\\]\\\\]/g,\n \"\\\\$&\",\n );\n const placeholderRegex = new RegExp(escapedPlaceholder, \"g\");\n\n return formatted.replace(placeholderRegex, \"\");\n }\n\n return formatted;\n }\n\n return unmask(formatted, options?.allowChars);\n },\n };\n};\n\nexport const createCurrencyMask = ({\n prefix = \"\",\n suffix = \"\",\n thousand,\n decimal,\n precision = 2,\n allowNegative = true,\n saveRaw = false,\n}: CurrencyMaskConfig): BitMask => {\n const formatFn = (value: any) => {\n if (value === undefined || value === null || value === \"\") return \"\";\n\n let rawString = String(value);\n // Truncate input BEFORE stripping non-digits to avoid ReDoS on huge strings\n if (rawString.length > 200) {\n rawString = rawString.slice(0, 200);\n }\n let stringValue =\n typeof value === \"number\"\n ? Math.abs(value).toFixed(precision).replace(/\\D/g, \"\")\n : rawString.replace(/\\D/g, \"\");\n\n if (!stringValue && String(value).includes(\"-\") && allowNegative)\n return \"-\";\n if (!stringValue) return \"\";\n\n // Truncate to prevent ReDoS on pathological input\n const MAX_CURRENCY_DIGITS = 20;\n if (stringValue.length > MAX_CURRENCY_DIGITS) {\n stringValue = stringValue.slice(0, MAX_CURRENCY_DIGITS);\n }\n\n stringValue = stringValue.padStart(precision + 1, \"0\");\n\n const integerPart =\n precision > 0\n ? stringValue.slice(0, -precision).replace(/^0+(?=\\d)/, \"\") || \"0\"\n : stringValue.replace(/^0+(?=\\d)/, \"\") || \"0\";\n const decimalPart = precision > 0 ? stringValue.slice(-precision) : \"\";\n\n const formattedInteger = integerPart.replace(\n /\\B(?=(\\d{3})+(?!\\d))/g,\n thousand,\n );\n\n const isNegative =\n typeof value === \"number\" ? value < 0 : String(value).includes(\"-\");\n const sign = isNegative && allowNegative ? \"-\" : \"\";\n\n if (precision === 0) {\n return `${sign}${prefix}${formattedInteger}${suffix}`;\n }\n\n return `${sign}${prefix}${formattedInteger}${decimal}${decimalPart}${suffix}`;\n };\n\n return {\n format: formatFn,\n parse: (value: string) => {\n const numericValue = unmaskCurrency(value, precision);\n const finalNumber = !allowNegative\n ? Math.abs(numericValue)\n : numericValue;\n if (saveRaw) return formatFn(finalNumber);\n return finalNumber;\n },\n };\n};\n\nexport const createCreditCardMask = (options?: PatternMaskOptions): BitMask => {\n // Função auxiliar para descobrir o padrão dinamicamente\n const getCardPattern = (rawValue: string) => {\n // Amex (American Express) começa com 34 ou 37 -> 15 dígitos\n if (/^3[47]/.test(rawValue)) {\n return \"#### ###### #####\";\n }\n // Diners Club começa com 300-305, 36 ou 38 -> 14 dígitos\n if (/^3(?:0[0-5]|[68])/.test(rawValue)) {\n return \"#### ###### ####\";\n }\n // Default: Visa, Mastercard, Discover, Elo, etc -> 16 dígitos\n return \"#### #### #### ####\";\n };\n\n return {\n format: (value: any) => {\n const stringVal = unmask(value, options?.allowChars);\n const pattern = getCardPattern(stringVal);\n const mask = createPatternMask(pattern, options);\n return mask.format(value);\n },\n parse: (value: string) => {\n const stringVal = unmask(value, options?.allowChars);\n const pattern = getCardPattern(stringVal);\n\n const mask = createPatternMask(pattern, options);\n return mask.parse(value);\n },\n };\n};\n\nexport const createDateMask = (config?: DateMaskConfig): BitMask => {\n const formatType = config?.format || \"DD/MM/YYYY\";\n const isISO = formatType === \"YYYY-MM-DD\";\n\n // Criamos a máscara base consoante o formato escolhido\n const baseMask = createPatternMask(\n isISO ? \"####-##-##\" : \"##/##/####\",\n config,\n );\n\n return {\n format: (value: any) => {\n let stringVal = unmask(value);\n if (!stringVal) return \"\";\n\n let day: string;\n let month: string;\n let year: string;\n\n // Separamos os componentes consoante o que o utilizador já digitou\n if (isISO) {\n year = stringVal.substring(0, 4);\n month = stringVal.substring(4, 6);\n day = stringVal.substring(6, 8);\n } else {\n day = stringVal.substring(0, 2);\n month = stringVal.substring(2, 4);\n year = stringVal.substring(4, 8);\n }\n\n // Validação do Dia (01 a 31) com limites por mês e ano bissexto\n if (day.length === 2) {\n let d = parseInt(day, 10);\n if (d > 31) d = 31;\n if (d === 0) d = 1;\n\n if (month.length === 2) {\n const m = parseInt(month, 10);\n const y =\n year.length === 4\n ? parseInt(year, 10)\n : year.length > 0\n ? parseInt(year.padEnd(4, \"0\"), 10)\n : 0;\n const isLeapYear =\n y > 0 && ((y % 4 === 0 && y % 100 !== 0) || y % 400 === 0);\n const daysInMonth: Record<number, number> = {\n 1: 31, 2: isLeapYear ? 29 : 28, 3: 31, 4: 30, 5: 31, 6: 30,\n 7: 31, 8: 31, 9: 30, 10: 31, 11: 30, 12: 31,\n };\n const maxDay = daysInMonth[m] ?? 31;\n if (d > maxDay) d = maxDay;\n }\n\n day = String(d).padStart(2, \"0\");\n }\n\n // Validação do Mês (01 a 12)\n if (month.length === 2) {\n const m = parseInt(month, 10);\n if (m > 12) month = \"12\";\n if (m === 0) month = \"01\";\n }\n\n // Reconstruímos a string limpa e passamos para o pattern normal\n const safeString = isISO\n ? `${year}${month}${day}`\n : `${day}${month}${year}`;\n\n return baseMask.format(safeString);\n },\n parse: (value: string) => {\n // Usamos a funcionalidade completa da máscara base (incluindo o saveRaw e o unmasking)\n return baseMask.parse(value);\n },\n };\n};\n"]}
@@ -0,0 +1,2 @@
1
+ import{d as r}from"./chunk-UBVVBVLS.js";function o(i,e){return e&&Object.is(e.value,i.value)&&e.error===i.error&&e.touched===i.touched&&e.isHidden===i.isHidden&&e.isRequired===i.isRequired&&e.isDirty===i.isDirty&&e.isValidating===i.isValidating?e:{value:i.value,error:i.error,touched:i.touched,isHidden:i.isHidden,isRequired:i.isRequired,isDirty:i.isDirty,isValidating:i.isValidating}}function d(i,e){return i===e?!0:!i||!e?!1:r(i.value,e.value)&&i.error===e.error&&i.touched===e.touched&&i.isHidden===e.isHidden&&i.isRequired===e.isRequired&&i.isDirty===e.isDirty&&i.isValidating===e.isValidating}var n=d;export{o as a,d as b,n as c};
2
+ //# sourceMappingURL=chunk-Y7TQTZY7.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/core/utils/field-state-snapshot.ts"],"sourcesContent":["/**\n * Field State Snapshot Utilities\n *\n * Shared utilities for creating and managing field state snapshots across frameworks\n * (React, Vue, Angular). Reduces code duplication while maintaining type safety.\n */\n\nimport type { BitFieldState } from \"../store/contracts/types\";\nimport { deepEqual } from \"../utils\";\n\n/**\n * Represents a stable snapshot of field state that can be compared for equality.\n */\nexport type BitFieldSnapshot<TValue = unknown> = BitFieldState<\n Record<string, unknown>,\n TValue\n>;\n\n/**\n * Creates or reuses a field state snapshot with shallow equality checking.\n *\n * This function prevents unnecessary re-renders in frameworks like React by\n * returning the same object reference when field state hasn't changed.\n *\n * @param nextState - The new field state from the store\n * @param lastSnapshot - The previous snapshot (can be null on first call)\n * @returns A stable snapshot object that can be used for equality comparison\n *\n * @example\n * ```typescript\n * const snapshot = createFieldStateSnapshot(store.getFieldState(\"email\"), lastSnapshot);\n * if (snapshot !== lastSnapshot) {\n * // Field state changed, update component\n * render(snapshot);\n * }\n * ```\n */\nexport function createFieldStateSnapshot<TValue = unknown>(\n nextState: {\n value: TValue;\n error: string | undefined;\n touched: boolean;\n isHidden: boolean;\n isRequired: boolean;\n isDirty: boolean;\n isValidating: boolean;\n },\n lastSnapshot: BitFieldSnapshot<TValue> | null,\n): BitFieldSnapshot<TValue> {\n // Use shallow equality: return cached if all fields are equal by reference\n if (lastSnapshot) {\n const shallowEqual =\n Object.is(lastSnapshot.value, nextState.value) &&\n lastSnapshot.error === nextState.error &&\n lastSnapshot.touched === nextState.touched &&\n lastSnapshot.isHidden === nextState.isHidden &&\n lastSnapshot.isRequired === nextState.isRequired &&\n lastSnapshot.isDirty === nextState.isDirty &&\n lastSnapshot.isValidating === nextState.isValidating;\n\n if (shallowEqual) {\n return lastSnapshot;\n }\n }\n\n return {\n value: nextState.value,\n error: nextState.error,\n touched: nextState.touched,\n isHidden: nextState.isHidden,\n isRequired: nextState.isRequired,\n isDirty: nextState.isDirty,\n isValidating: nextState.isValidating,\n };\n}\n\n/**\n * Deep comparison utility for field state snapshots.\n * Useful for scenarios where shallow comparison isn't sufficient (e.g., object/array values).\n *\n * @param snapshotA - First snapshot\n * @param snapshotB - Second snapshot\n * @returns true if snapshots are deeply equal\n */\nexport function areFieldSnapshotsEqual(\n snapshotA: BitFieldSnapshot | null | undefined,\n snapshotB: BitFieldSnapshot | null | undefined,\n): boolean {\n if (snapshotA === snapshotB) return true;\n if (!snapshotA || !snapshotB) return false;\n\n return (\n deepEqual(snapshotA.value, snapshotB.value) &&\n snapshotA.error === snapshotB.error &&\n snapshotA.touched === snapshotB.touched &&\n snapshotA.isHidden === snapshotB.isHidden &&\n snapshotA.isRequired === snapshotB.isRequired &&\n snapshotA.isDirty === snapshotB.isDirty &&\n snapshotA.isValidating === snapshotB.isValidating\n );\n}\n\nexport const areFieldStatesEqual = areFieldSnapshotsEqual;\n"],"mappings":"wCAqCO,SAASA,EACdC,EASAC,EAC0B,CAE1B,OAAIA,GAEA,OAAO,GAAGA,EAAa,MAAOD,EAAU,KAAK,GAC7CC,EAAa,QAAUD,EAAU,OACjCC,EAAa,UAAYD,EAAU,SACnCC,EAAa,WAAaD,EAAU,UACpCC,EAAa,aAAeD,EAAU,YACtCC,EAAa,UAAYD,EAAU,SACnCC,EAAa,eAAiBD,EAAU,aAGjCC,EAIJ,CACL,MAAOD,EAAU,MACjB,MAAOA,EAAU,MACjB,QAASA,EAAU,QACnB,SAAUA,EAAU,SACpB,WAAYA,EAAU,WACtB,QAASA,EAAU,QACnB,aAAcA,EAAU,YAC1B,CACF,CAUO,SAASE,EACdC,EACAC,EACS,CACT,OAAID,IAAcC,EAAkB,GAChC,CAACD,GAAa,CAACC,EAAkB,GAGnCC,EAAUF,EAAU,MAAOC,EAAU,KAAK,GAC1CD,EAAU,QAAUC,EAAU,OAC9BD,EAAU,UAAYC,EAAU,SAChCD,EAAU,WAAaC,EAAU,UACjCD,EAAU,aAAeC,EAAU,YACnCD,EAAU,UAAYC,EAAU,SAChCD,EAAU,eAAiBC,EAAU,YAEzC,CAEO,IAAME,EAAsBJ","names":["createFieldStateSnapshot","nextState","lastSnapshot","areFieldSnapshotsEqual","snapshotA","snapshotB","deepEqual","areFieldStatesEqual"]}
@@ -1,11 +1,11 @@
1
1
  #!/usr/bin/env node
2
- "use strict";var Or=Object.create;var Ze=Object.defineProperty;var Cr=Object.getOwnPropertyDescriptor;var Br=Object.getOwnPropertyNames;var Pr=Object.getPrototypeOf,Rr=Object.prototype.hasOwnProperty;var y=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports);var Ir=(t,e,r,s)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of Br(e))!Rr.call(t,i)&&i!==r&&Ze(t,i,{get:()=>e[i],enumerable:!(s=Cr(e,i))||s.enumerable});return t};var w=(t,e,r)=>(r=t!=null?Or(Pr(t)):{},Ir(e||!t||!t.__esModule?Ze(r,"default",{value:t,enumerable:!0}):r,t));var k=y((Gi,xt)=>{"use strict";var _t=["nodebuffer","arraybuffer","fragments"],gt=typeof Blob<"u";gt&&_t.push("blob");xt.exports={BINARY_TYPES:_t,CLOSE_TIMEOUT:3e4,EMPTY_BUFFER:Buffer.alloc(0),GUID:"258EAFA5-E914-47DA-95CA-C5AB0DC85B11",hasBlob:gt,kForOnEventAttribute:Symbol("kIsForOnEventAttribute"),kListener:Symbol("kListener"),kStatusCode:Symbol("status-code"),kWebSocket:Symbol("websocket"),NOOP:()=>{}}});var J=y((Vi,oe)=>{"use strict";var{EMPTY_BUFFER:Ar}=k(),Te=Buffer[Symbol.species];function Mr(t,e){if(t.length===0)return Ar;if(t.length===1)return t[0];let r=Buffer.allocUnsafe(e),s=0;for(let i=0;i<t.length;i++){let n=t[i];r.set(n,s),s+=n.length}return s<e?new Te(r.buffer,r.byteOffset,s):r}function yt(t,e,r,s,i){for(let n=0;n<i;n++)r[s+n]=t[n]^e[n&3]}function vt(t,e){for(let r=0;r<t.length;r++)t[r]^=e[r&3]}function Ur(t){return t.length===t.buffer.byteLength?t.buffer:t.buffer.slice(t.byteOffset,t.byteOffset+t.length)}function Ne(t){if(Ne.readOnly=!0,Buffer.isBuffer(t))return t;let e;return t instanceof ArrayBuffer?e=new Te(t):ArrayBuffer.isView(t)?e=new Te(t.buffer,t.byteOffset,t.byteLength):(e=Buffer.from(t),Ne.readOnly=!1),e}oe.exports={concat:Mr,mask:yt,toArrayBuffer:Ur,toBuffer:Ne,unmask:vt};if(!process.env.WS_NO_BUFFER_UTIL)try{let t=require("bufferutil");oe.exports.mask=function(e,r,s,i,n){n<48?yt(e,r,s,i,n):t.mask(e,r,s,i,n)},oe.exports.unmask=function(e,r){e.length<32?vt(e,r):t.unmask(e,r)}}catch{}});var Et=y((ji,St)=>{"use strict";var bt=Symbol("kDone"),ke=Symbol("kRun"),Oe=class{constructor(e){this[bt]=()=>{this.pending--,this[ke]()},this.concurrency=e||1/0,this.jobs=[],this.pending=0}add(e){this.jobs.push(e),this[ke]()}[ke](){if(this.pending!==this.concurrency&&this.jobs.length){let e=this.jobs.shift();this.pending++,e(this[bt])}}};St.exports=Oe});var ee=y((Hi,kt)=>{"use strict";var Q=require("zlib"),wt=J(),qr=Et(),{kStatusCode:Tt}=k(),Wr=Buffer[Symbol.species],$r=Buffer.from([0,0,255,255]),le=Symbol("permessage-deflate"),O=Symbol("total-length"),W=Symbol("callback"),R=Symbol("buffers"),$=Symbol("error"),ae,Ce=class{constructor(e,r,s){if(this._maxPayload=s|0,this._options=e||{},this._threshold=this._options.threshold!==void 0?this._options.threshold:1024,this._isServer=!!r,this._deflate=null,this._inflate=null,this.params=null,!ae){let i=this._options.concurrencyLimit!==void 0?this._options.concurrencyLimit:10;ae=new qr(i)}}static get extensionName(){return"permessage-deflate"}offer(){let e={};return this._options.serverNoContextTakeover&&(e.server_no_context_takeover=!0),this._options.clientNoContextTakeover&&(e.client_no_context_takeover=!0),this._options.serverMaxWindowBits&&(e.server_max_window_bits=this._options.serverMaxWindowBits),this._options.clientMaxWindowBits?e.client_max_window_bits=this._options.clientMaxWindowBits:this._options.clientMaxWindowBits==null&&(e.client_max_window_bits=!0),e}accept(e){return e=this.normalizeParams(e),this.params=this._isServer?this.acceptAsServer(e):this.acceptAsClient(e),this.params}cleanup(){if(this._inflate&&(this._inflate.close(),this._inflate=null),this._deflate){let e=this._deflate[W];this._deflate.close(),this._deflate=null,e&&e(new Error("The deflate stream was closed while data was being processed"))}}acceptAsServer(e){let r=this._options,s=e.find(i=>!(r.serverNoContextTakeover===!1&&i.server_no_context_takeover||i.server_max_window_bits&&(r.serverMaxWindowBits===!1||typeof r.serverMaxWindowBits=="number"&&r.serverMaxWindowBits>i.server_max_window_bits)||typeof r.clientMaxWindowBits=="number"&&!i.client_max_window_bits));if(!s)throw new Error("None of the extension offers can be accepted");return r.serverNoContextTakeover&&(s.server_no_context_takeover=!0),r.clientNoContextTakeover&&(s.client_no_context_takeover=!0),typeof r.serverMaxWindowBits=="number"&&(s.server_max_window_bits=r.serverMaxWindowBits),typeof r.clientMaxWindowBits=="number"?s.client_max_window_bits=r.clientMaxWindowBits:(s.client_max_window_bits===!0||r.clientMaxWindowBits===!1)&&delete s.client_max_window_bits,s}acceptAsClient(e){let r=e[0];if(this._options.clientNoContextTakeover===!1&&r.client_no_context_takeover)throw new Error('Unexpected parameter "client_no_context_takeover"');if(!r.client_max_window_bits)typeof this._options.clientMaxWindowBits=="number"&&(r.client_max_window_bits=this._options.clientMaxWindowBits);else if(this._options.clientMaxWindowBits===!1||typeof this._options.clientMaxWindowBits=="number"&&r.client_max_window_bits>this._options.clientMaxWindowBits)throw new Error('Unexpected or invalid parameter "client_max_window_bits"');return r}normalizeParams(e){return e.forEach(r=>{Object.keys(r).forEach(s=>{let i=r[s];if(i.length>1)throw new Error(`Parameter "${s}" must have only a single value`);if(i=i[0],s==="client_max_window_bits"){if(i!==!0){let n=+i;if(!Number.isInteger(n)||n<8||n>15)throw new TypeError(`Invalid value for parameter "${s}": ${i}`);i=n}else if(!this._isServer)throw new TypeError(`Invalid value for parameter "${s}": ${i}`)}else if(s==="server_max_window_bits"){let n=+i;if(!Number.isInteger(n)||n<8||n>15)throw new TypeError(`Invalid value for parameter "${s}": ${i}`);i=n}else if(s==="client_no_context_takeover"||s==="server_no_context_takeover"){if(i!==!0)throw new TypeError(`Invalid value for parameter "${s}": ${i}`)}else throw new Error(`Unknown parameter "${s}"`);r[s]=i})}),e}decompress(e,r,s){ae.add(i=>{this._decompress(e,r,(n,o)=>{i(),s(n,o)})})}compress(e,r,s){ae.add(i=>{this._compress(e,r,(n,o)=>{i(),s(n,o)})})}_decompress(e,r,s){let i=this._isServer?"client":"server";if(!this._inflate){let n=`${i}_max_window_bits`,o=typeof this.params[n]!="number"?Q.Z_DEFAULT_WINDOWBITS:this.params[n];this._inflate=Q.createInflateRaw({...this._options.zlibInflateOptions,windowBits:o}),this._inflate[le]=this,this._inflate[O]=0,this._inflate[R]=[],this._inflate.on("error",Vr),this._inflate.on("data",Nt)}this._inflate[W]=s,this._inflate.write(e),r&&this._inflate.write($r),this._inflate.flush(()=>{let n=this._inflate[$];if(n){this._inflate.close(),this._inflate=null,s(n);return}let o=wt.concat(this._inflate[R],this._inflate[O]);this._inflate._readableState.endEmitted?(this._inflate.close(),this._inflate=null):(this._inflate[O]=0,this._inflate[R]=[],r&&this.params[`${i}_no_context_takeover`]&&this._inflate.reset()),s(null,o)})}_compress(e,r,s){let i=this._isServer?"server":"client";if(!this._deflate){let n=`${i}_max_window_bits`,o=typeof this.params[n]!="number"?Q.Z_DEFAULT_WINDOWBITS:this.params[n];this._deflate=Q.createDeflateRaw({...this._options.zlibDeflateOptions,windowBits:o}),this._deflate[O]=0,this._deflate[R]=[],this._deflate.on("data",Gr)}this._deflate[W]=s,this._deflate.write(e),this._deflate.flush(Q.Z_SYNC_FLUSH,()=>{if(!this._deflate)return;let n=wt.concat(this._deflate[R],this._deflate[O]);r&&(n=new Wr(n.buffer,n.byteOffset,n.length-4)),this._deflate[W]=null,this._deflate[O]=0,this._deflate[R]=[],r&&this.params[`${i}_no_context_takeover`]&&this._deflate.reset(),s(null,n)})}};kt.exports=Ce;function Gr(t){this[R].push(t),this[O]+=t.length}function Nt(t){if(this[O]+=t.length,this[le]._maxPayload<1||this[O]<=this[le]._maxPayload){this[R].push(t);return}this[$]=new RangeError("Max payload size exceeded"),this[$].code="WS_ERR_UNSUPPORTED_MESSAGE_LENGTH",this[$][Tt]=1009,this.removeListener("data",Nt),this.reset()}function Vr(t){if(this[le]._inflate=null,this[$]){this[W](this[$]);return}t[Tt]=1007,this[W](t)}});var G=y((zi,ce)=>{"use strict";var{isUtf8:Ot}=require("buffer"),{hasBlob:jr}=k(),Hr=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,1,1,1,1,0,0,1,1,0,1,1,0,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,0,1,0];function zr(t){return t>=1e3&&t<=1014&&t!==1004&&t!==1005&&t!==1006||t>=3e3&&t<=4999}function Be(t){let e=t.length,r=0;for(;r<e;)if((t[r]&128)===0)r++;else if((t[r]&224)===192){if(r+1===e||(t[r+1]&192)!==128||(t[r]&254)===192)return!1;r+=2}else if((t[r]&240)===224){if(r+2>=e||(t[r+1]&192)!==128||(t[r+2]&192)!==128||t[r]===224&&(t[r+1]&224)===128||t[r]===237&&(t[r+1]&224)===160)return!1;r+=3}else if((t[r]&248)===240){if(r+3>=e||(t[r+1]&192)!==128||(t[r+2]&192)!==128||(t[r+3]&192)!==128||t[r]===240&&(t[r+1]&240)===128||t[r]===244&&t[r+1]>143||t[r]>244)return!1;r+=4}else return!1;return!0}function Yr(t){return jr&&typeof t=="object"&&typeof t.arrayBuffer=="function"&&typeof t.type=="string"&&typeof t.stream=="function"&&(t[Symbol.toStringTag]==="Blob"||t[Symbol.toStringTag]==="File")}ce.exports={isBlob:Yr,isValidStatusCode:zr,isValidUTF8:Be,tokenChars:Hr};if(Ot)ce.exports.isValidUTF8=function(t){return t.length<24?Be(t):Ot(t)};else if(!process.env.WS_NO_UTF_8_VALIDATE)try{let t=require("utf-8-validate");ce.exports.isValidUTF8=function(e){return e.length<32?Be(e):t(e)}}catch{}});var Fe=y((Yi,Ft)=>{"use strict";var{Writable:Xr}=require("stream"),Ct=ee(),{BINARY_TYPES:Kr,EMPTY_BUFFER:Bt,kStatusCode:Zr,kWebSocket:Jr}=k(),{concat:Pe,toArrayBuffer:Qr,unmask:es}=J(),{isValidStatusCode:ts,isValidUTF8:Pt}=G(),de=Buffer[Symbol.species],b=0,Rt=1,It=2,Lt=3,Re=4,Ie=5,fe=6,Le=class extends Xr{constructor(e={}){super(),this._allowSynchronousEvents=e.allowSynchronousEvents!==void 0?e.allowSynchronousEvents:!0,this._binaryType=e.binaryType||Kr[0],this._extensions=e.extensions||{},this._isServer=!!e.isServer,this._maxPayload=e.maxPayload|0,this._skipUTF8Validation=!!e.skipUTF8Validation,this[Jr]=void 0,this._bufferedBytes=0,this._buffers=[],this._compressed=!1,this._payloadLength=0,this._mask=void 0,this._fragmented=0,this._masked=!1,this._fin=!1,this._opcode=0,this._totalPayloadLength=0,this._messageLength=0,this._fragments=[],this._errored=!1,this._loop=!1,this._state=b}_write(e,r,s){if(this._opcode===8&&this._state==b)return s();this._bufferedBytes+=e.length,this._buffers.push(e),this.startLoop(s)}consume(e){if(this._bufferedBytes-=e,e===this._buffers[0].length)return this._buffers.shift();if(e<this._buffers[0].length){let s=this._buffers[0];return this._buffers[0]=new de(s.buffer,s.byteOffset+e,s.length-e),new de(s.buffer,s.byteOffset,e)}let r=Buffer.allocUnsafe(e);do{let s=this._buffers[0],i=r.length-e;e>=s.length?r.set(this._buffers.shift(),i):(r.set(new Uint8Array(s.buffer,s.byteOffset,e),i),this._buffers[0]=new de(s.buffer,s.byteOffset+e,s.length-e)),e-=s.length}while(e>0);return r}startLoop(e){this._loop=!0;do switch(this._state){case b:this.getInfo(e);break;case Rt:this.getPayloadLength16(e);break;case It:this.getPayloadLength64(e);break;case Lt:this.getMask();break;case Re:this.getData(e);break;case Ie:case fe:this._loop=!1;return}while(this._loop);this._errored||e()}getInfo(e){if(this._bufferedBytes<2){this._loop=!1;return}let r=this.consume(2);if((r[0]&48)!==0){let i=this.createError(RangeError,"RSV2 and RSV3 must be clear",!0,1002,"WS_ERR_UNEXPECTED_RSV_2_3");e(i);return}let s=(r[0]&64)===64;if(s&&!this._extensions[Ct.extensionName]){let i=this.createError(RangeError,"RSV1 must be clear",!0,1002,"WS_ERR_UNEXPECTED_RSV_1");e(i);return}if(this._fin=(r[0]&128)===128,this._opcode=r[0]&15,this._payloadLength=r[1]&127,this._opcode===0){if(s){let i=this.createError(RangeError,"RSV1 must be clear",!0,1002,"WS_ERR_UNEXPECTED_RSV_1");e(i);return}if(!this._fragmented){let i=this.createError(RangeError,"invalid opcode 0",!0,1002,"WS_ERR_INVALID_OPCODE");e(i);return}this._opcode=this._fragmented}else if(this._opcode===1||this._opcode===2){if(this._fragmented){let i=this.createError(RangeError,`invalid opcode ${this._opcode}`,!0,1002,"WS_ERR_INVALID_OPCODE");e(i);return}this._compressed=s}else if(this._opcode>7&&this._opcode<11){if(!this._fin){let i=this.createError(RangeError,"FIN must be set",!0,1002,"WS_ERR_EXPECTED_FIN");e(i);return}if(s){let i=this.createError(RangeError,"RSV1 must be clear",!0,1002,"WS_ERR_UNEXPECTED_RSV_1");e(i);return}if(this._payloadLength>125||this._opcode===8&&this._payloadLength===1){let i=this.createError(RangeError,`invalid payload length ${this._payloadLength}`,!0,1002,"WS_ERR_INVALID_CONTROL_PAYLOAD_LENGTH");e(i);return}}else{let i=this.createError(RangeError,`invalid opcode ${this._opcode}`,!0,1002,"WS_ERR_INVALID_OPCODE");e(i);return}if(!this._fin&&!this._fragmented&&(this._fragmented=this._opcode),this._masked=(r[1]&128)===128,this._isServer){if(!this._masked){let i=this.createError(RangeError,"MASK must be set",!0,1002,"WS_ERR_EXPECTED_MASK");e(i);return}}else if(this._masked){let i=this.createError(RangeError,"MASK must be clear",!0,1002,"WS_ERR_UNEXPECTED_MASK");e(i);return}this._payloadLength===126?this._state=Rt:this._payloadLength===127?this._state=It:this.haveLength(e)}getPayloadLength16(e){if(this._bufferedBytes<2){this._loop=!1;return}this._payloadLength=this.consume(2).readUInt16BE(0),this.haveLength(e)}getPayloadLength64(e){if(this._bufferedBytes<8){this._loop=!1;return}let r=this.consume(8),s=r.readUInt32BE(0);if(s>Math.pow(2,21)-1){let i=this.createError(RangeError,"Unsupported WebSocket frame: payload length > 2^53 - 1",!1,1009,"WS_ERR_UNSUPPORTED_DATA_PAYLOAD_LENGTH");e(i);return}this._payloadLength=s*Math.pow(2,32)+r.readUInt32BE(4),this.haveLength(e)}haveLength(e){if(this._payloadLength&&this._opcode<8&&(this._totalPayloadLength+=this._payloadLength,this._totalPayloadLength>this._maxPayload&&this._maxPayload>0)){let r=this.createError(RangeError,"Max payload size exceeded",!1,1009,"WS_ERR_UNSUPPORTED_MESSAGE_LENGTH");e(r);return}this._masked?this._state=Lt:this._state=Re}getMask(){if(this._bufferedBytes<4){this._loop=!1;return}this._mask=this.consume(4),this._state=Re}getData(e){let r=Bt;if(this._payloadLength){if(this._bufferedBytes<this._payloadLength){this._loop=!1;return}r=this.consume(this._payloadLength),this._masked&&(this._mask[0]|this._mask[1]|this._mask[2]|this._mask[3])!==0&&es(r,this._mask)}if(this._opcode>7){this.controlMessage(r,e);return}if(this._compressed){this._state=Ie,this.decompress(r,e);return}r.length&&(this._messageLength=this._totalPayloadLength,this._fragments.push(r)),this.dataMessage(e)}decompress(e,r){this._extensions[Ct.extensionName].decompress(e,this._fin,(i,n)=>{if(i)return r(i);if(n.length){if(this._messageLength+=n.length,this._messageLength>this._maxPayload&&this._maxPayload>0){let o=this.createError(RangeError,"Max payload size exceeded",!1,1009,"WS_ERR_UNSUPPORTED_MESSAGE_LENGTH");r(o);return}this._fragments.push(n)}this.dataMessage(r),this._state===b&&this.startLoop(r)})}dataMessage(e){if(!this._fin){this._state=b;return}let r=this._messageLength,s=this._fragments;if(this._totalPayloadLength=0,this._messageLength=0,this._fragmented=0,this._fragments=[],this._opcode===2){let i;this._binaryType==="nodebuffer"?i=Pe(s,r):this._binaryType==="arraybuffer"?i=Qr(Pe(s,r)):this._binaryType==="blob"?i=new Blob(s):i=s,this._allowSynchronousEvents?(this.emit("message",i,!0),this._state=b):(this._state=fe,setImmediate(()=>{this.emit("message",i,!0),this._state=b,this.startLoop(e)}))}else{let i=Pe(s,r);if(!this._skipUTF8Validation&&!Pt(i)){let n=this.createError(Error,"invalid UTF-8 sequence",!0,1007,"WS_ERR_INVALID_UTF8");e(n);return}this._state===Ie||this._allowSynchronousEvents?(this.emit("message",i,!1),this._state=b):(this._state=fe,setImmediate(()=>{this.emit("message",i,!1),this._state=b,this.startLoop(e)}))}}controlMessage(e,r){if(this._opcode===8){if(e.length===0)this._loop=!1,this.emit("conclude",1005,Bt),this.end();else{let s=e.readUInt16BE(0);if(!ts(s)){let n=this.createError(RangeError,`invalid status code ${s}`,!0,1002,"WS_ERR_INVALID_CLOSE_CODE");r(n);return}let i=new de(e.buffer,e.byteOffset+2,e.length-2);if(!this._skipUTF8Validation&&!Pt(i)){let n=this.createError(Error,"invalid UTF-8 sequence",!0,1007,"WS_ERR_INVALID_UTF8");r(n);return}this._loop=!1,this.emit("conclude",s,i),this.end()}this._state=b;return}this._allowSynchronousEvents?(this.emit(this._opcode===9?"ping":"pong",e),this._state=b):(this._state=fe,setImmediate(()=>{this.emit(this._opcode===9?"ping":"pong",e),this._state=b,this.startLoop(r)}))}createError(e,r,s,i,n){this._loop=!1,this._errored=!0;let o=new e(s?`Invalid WebSocket frame: ${r}`:r);return Error.captureStackTrace(o,this.createError),o.code=n,o[Zr]=i,o}};Ft.exports=Le});var Me=y((Ki,Mt)=>{"use strict";var{Duplex:Xi}=require("stream"),{randomFillSync:rs}=require("crypto"),Dt=ee(),{EMPTY_BUFFER:ss,kWebSocket:is,NOOP:ns}=k(),{isBlob:V,isValidStatusCode:os}=G(),{mask:At,toBuffer:L}=J(),S=Symbol("kByteLength"),as=Buffer.alloc(4),ue=8*1024,F,j=ue,E=0,ls=1,cs=2,De=class t{constructor(e,r,s){this._extensions=r||{},s&&(this._generateMask=s,this._maskBuffer=Buffer.alloc(4)),this._socket=e,this._firstFragment=!0,this._compress=!1,this._bufferedBytes=0,this._queue=[],this._state=E,this.onerror=ns,this[is]=void 0}static frame(e,r){let s,i=!1,n=2,o=!1;r.mask&&(s=r.maskBuffer||as,r.generateMask?r.generateMask(s):(j===ue&&(F===void 0&&(F=Buffer.alloc(ue)),rs(F,0,ue),j=0),s[0]=F[j++],s[1]=F[j++],s[2]=F[j++],s[3]=F[j++]),o=(s[0]|s[1]|s[2]|s[3])===0,n=6);let a;typeof e=="string"?(!r.mask||o)&&r[S]!==void 0?a=r[S]:(e=Buffer.from(e),a=e.length):(a=e.length,i=r.mask&&r.readOnly&&!o);let c=a;a>=65536?(n+=8,c=127):a>125&&(n+=2,c=126);let l=Buffer.allocUnsafe(i?a+n:n);return l[0]=r.fin?r.opcode|128:r.opcode,r.rsv1&&(l[0]|=64),l[1]=c,c===126?l.writeUInt16BE(a,2):c===127&&(l[2]=l[3]=0,l.writeUIntBE(a,4,6)),r.mask?(l[1]|=128,l[n-4]=s[0],l[n-3]=s[1],l[n-2]=s[2],l[n-1]=s[3],o?[l,e]:i?(At(e,s,l,n,a),[l]):(At(e,s,e,0,a),[l,e])):[l,e]}close(e,r,s,i){let n;if(e===void 0)n=ss;else{if(typeof e!="number"||!os(e))throw new TypeError("First argument must be a valid error code number");if(r===void 0||!r.length)n=Buffer.allocUnsafe(2),n.writeUInt16BE(e,0);else{let a=Buffer.byteLength(r);if(a>123)throw new RangeError("The message must not be greater than 123 bytes");n=Buffer.allocUnsafe(2+a),n.writeUInt16BE(e,0),typeof r=="string"?n.write(r,2):n.set(r,2)}}let o={[S]:n.length,fin:!0,generateMask:this._generateMask,mask:s,maskBuffer:this._maskBuffer,opcode:8,readOnly:!1,rsv1:!1};this._state!==E?this.enqueue([this.dispatch,n,!1,o,i]):this.sendFrame(t.frame(n,o),i)}ping(e,r,s){let i,n;if(typeof e=="string"?(i=Buffer.byteLength(e),n=!1):V(e)?(i=e.size,n=!1):(e=L(e),i=e.length,n=L.readOnly),i>125)throw new RangeError("The data size must not be greater than 125 bytes");let o={[S]:i,fin:!0,generateMask:this._generateMask,mask:r,maskBuffer:this._maskBuffer,opcode:9,readOnly:n,rsv1:!1};V(e)?this._state!==E?this.enqueue([this.getBlobData,e,!1,o,s]):this.getBlobData(e,!1,o,s):this._state!==E?this.enqueue([this.dispatch,e,!1,o,s]):this.sendFrame(t.frame(e,o),s)}pong(e,r,s){let i,n;if(typeof e=="string"?(i=Buffer.byteLength(e),n=!1):V(e)?(i=e.size,n=!1):(e=L(e),i=e.length,n=L.readOnly),i>125)throw new RangeError("The data size must not be greater than 125 bytes");let o={[S]:i,fin:!0,generateMask:this._generateMask,mask:r,maskBuffer:this._maskBuffer,opcode:10,readOnly:n,rsv1:!1};V(e)?this._state!==E?this.enqueue([this.getBlobData,e,!1,o,s]):this.getBlobData(e,!1,o,s):this._state!==E?this.enqueue([this.dispatch,e,!1,o,s]):this.sendFrame(t.frame(e,o),s)}send(e,r,s){let i=this._extensions[Dt.extensionName],n=r.binary?2:1,o=r.compress,a,c;typeof e=="string"?(a=Buffer.byteLength(e),c=!1):V(e)?(a=e.size,c=!1):(e=L(e),a=e.length,c=L.readOnly),this._firstFragment?(this._firstFragment=!1,o&&i&&i.params[i._isServer?"server_no_context_takeover":"client_no_context_takeover"]&&(o=a>=i._threshold),this._compress=o):(o=!1,n=0),r.fin&&(this._firstFragment=!0);let l={[S]:a,fin:r.fin,generateMask:this._generateMask,mask:r.mask,maskBuffer:this._maskBuffer,opcode:n,readOnly:c,rsv1:o};V(e)?this._state!==E?this.enqueue([this.getBlobData,e,this._compress,l,s]):this.getBlobData(e,this._compress,l,s):this._state!==E?this.enqueue([this.dispatch,e,this._compress,l,s]):this.dispatch(e,this._compress,l,s)}getBlobData(e,r,s,i){this._bufferedBytes+=s[S],this._state=cs,e.arrayBuffer().then(n=>{if(this._socket.destroyed){let a=new Error("The socket was closed while the blob was being read");process.nextTick(Ae,this,a,i);return}this._bufferedBytes-=s[S];let o=L(n);r?this.dispatch(o,r,s,i):(this._state=E,this.sendFrame(t.frame(o,s),i),this.dequeue())}).catch(n=>{process.nextTick(ds,this,n,i)})}dispatch(e,r,s,i){if(!r){this.sendFrame(t.frame(e,s),i);return}let n=this._extensions[Dt.extensionName];this._bufferedBytes+=s[S],this._state=ls,n.compress(e,s.fin,(o,a)=>{if(this._socket.destroyed){let c=new Error("The socket was closed while data was being compressed");Ae(this,c,i);return}this._bufferedBytes-=s[S],this._state=E,s.readOnly=!1,this.sendFrame(t.frame(a,s),i),this.dequeue()})}dequeue(){for(;this._state===E&&this._queue.length;){let e=this._queue.shift();this._bufferedBytes-=e[3][S],Reflect.apply(e[0],this,e.slice(1))}}enqueue(e){this._bufferedBytes+=e[3][S],this._queue.push(e)}sendFrame(e,r){e.length===2?(this._socket.cork(),this._socket.write(e[0]),this._socket.write(e[1],r),this._socket.uncork()):this._socket.write(e[0],r)}};Mt.exports=De;function Ae(t,e,r){typeof r=="function"&&r(e);for(let s=0;s<t._queue.length;s++){let i=t._queue[s],n=i[i.length-1];typeof n=="function"&&n(e)}}function ds(t,e,r){Ae(t,e,r),t.onerror(e)}});var zt=y((Zi,Ht)=>{"use strict";var{kForOnEventAttribute:te,kListener:Ue}=k(),Ut=Symbol("kCode"),qt=Symbol("kData"),Wt=Symbol("kError"),$t=Symbol("kMessage"),Gt=Symbol("kReason"),H=Symbol("kTarget"),Vt=Symbol("kType"),jt=Symbol("kWasClean"),C=class{constructor(e){this[H]=null,this[Vt]=e}get target(){return this[H]}get type(){return this[Vt]}};Object.defineProperty(C.prototype,"target",{enumerable:!0});Object.defineProperty(C.prototype,"type",{enumerable:!0});var D=class extends C{constructor(e,r={}){super(e),this[Ut]=r.code===void 0?0:r.code,this[Gt]=r.reason===void 0?"":r.reason,this[jt]=r.wasClean===void 0?!1:r.wasClean}get code(){return this[Ut]}get reason(){return this[Gt]}get wasClean(){return this[jt]}};Object.defineProperty(D.prototype,"code",{enumerable:!0});Object.defineProperty(D.prototype,"reason",{enumerable:!0});Object.defineProperty(D.prototype,"wasClean",{enumerable:!0});var z=class extends C{constructor(e,r={}){super(e),this[Wt]=r.error===void 0?null:r.error,this[$t]=r.message===void 0?"":r.message}get error(){return this[Wt]}get message(){return this[$t]}};Object.defineProperty(z.prototype,"error",{enumerable:!0});Object.defineProperty(z.prototype,"message",{enumerable:!0});var re=class extends C{constructor(e,r={}){super(e),this[qt]=r.data===void 0?null:r.data}get data(){return this[qt]}};Object.defineProperty(re.prototype,"data",{enumerable:!0});var fs={addEventListener(t,e,r={}){for(let i of this.listeners(t))if(!r[te]&&i[Ue]===e&&!i[te])return;let s;if(t==="message")s=function(n,o){let a=new re("message",{data:o?n:n.toString()});a[H]=this,he(e,this,a)};else if(t==="close")s=function(n,o){let a=new D("close",{code:n,reason:o.toString(),wasClean:this._closeFrameReceived&&this._closeFrameSent});a[H]=this,he(e,this,a)};else if(t==="error")s=function(n){let o=new z("error",{error:n,message:n.message});o[H]=this,he(e,this,o)};else if(t==="open")s=function(){let n=new C("open");n[H]=this,he(e,this,n)};else return;s[te]=!!r[te],s[Ue]=e,r.once?this.once(t,s):this.on(t,s)},removeEventListener(t,e){for(let r of this.listeners(t))if(r[Ue]===e&&!r[te]){this.removeListener(t,r);break}}};Ht.exports={CloseEvent:D,ErrorEvent:z,Event:C,EventTarget:fs,MessageEvent:re};function he(t,e,r){typeof t=="object"&&t.handleEvent?t.handleEvent.call(t,r):t.call(e,r)}});var qe=y((Ji,Yt)=>{"use strict";var{tokenChars:se}=G();function T(t,e,r){t[e]===void 0?t[e]=[r]:t[e].push(r)}function us(t){let e=Object.create(null),r=Object.create(null),s=!1,i=!1,n=!1,o,a,c=-1,l=-1,d=-1,f=0;for(;f<t.length;f++)if(l=t.charCodeAt(f),o===void 0)if(d===-1&&se[l]===1)c===-1&&(c=f);else if(f!==0&&(l===32||l===9))d===-1&&c!==-1&&(d=f);else if(l===59||l===44){if(c===-1)throw new SyntaxError(`Unexpected character at index ${f}`);d===-1&&(d=f);let m=t.slice(c,d);l===44?(T(e,m,r),r=Object.create(null)):o=m,c=d=-1}else throw new SyntaxError(`Unexpected character at index ${f}`);else if(a===void 0)if(d===-1&&se[l]===1)c===-1&&(c=f);else if(l===32||l===9)d===-1&&c!==-1&&(d=f);else if(l===59||l===44){if(c===-1)throw new SyntaxError(`Unexpected character at index ${f}`);d===-1&&(d=f),T(r,t.slice(c,d),!0),l===44&&(T(e,o,r),r=Object.create(null),o=void 0),c=d=-1}else if(l===61&&c!==-1&&d===-1)a=t.slice(c,f),c=d=-1;else throw new SyntaxError(`Unexpected character at index ${f}`);else if(i){if(se[l]!==1)throw new SyntaxError(`Unexpected character at index ${f}`);c===-1?c=f:s||(s=!0),i=!1}else if(n)if(se[l]===1)c===-1&&(c=f);else if(l===34&&c!==-1)n=!1,d=f;else if(l===92)i=!0;else throw new SyntaxError(`Unexpected character at index ${f}`);else if(l===34&&t.charCodeAt(f-1)===61)n=!0;else if(d===-1&&se[l]===1)c===-1&&(c=f);else if(c!==-1&&(l===32||l===9))d===-1&&(d=f);else if(l===59||l===44){if(c===-1)throw new SyntaxError(`Unexpected character at index ${f}`);d===-1&&(d=f);let m=t.slice(c,d);s&&(m=m.replace(/\\/g,""),s=!1),T(r,a,m),l===44&&(T(e,o,r),r=Object.create(null),o=void 0),a=void 0,c=d=-1}else throw new SyntaxError(`Unexpected character at index ${f}`);if(c===-1||n||l===32||l===9)throw new SyntaxError("Unexpected end of input");d===-1&&(d=f);let h=t.slice(c,d);return o===void 0?T(e,h,r):(a===void 0?T(r,h,!0):s?T(r,a,h.replace(/\\/g,"")):T(r,a,h),T(e,o,r)),e}function hs(t){return Object.keys(t).map(e=>{let r=t[e];return Array.isArray(r)||(r=[r]),r.map(s=>[e].concat(Object.keys(s).map(i=>{let n=s[i];return Array.isArray(n)||(n=[n]),n.map(o=>o===!0?i:`${i}=${o}`).join("; ")})).join("; ")).join(", ")}).join(", ")}Yt.exports={format:hs,parse:us}});var ge=y((tn,or)=>{"use strict";var ps=require("events"),ms=require("https"),_s=require("http"),Zt=require("net"),gs=require("tls"),{randomBytes:xs,createHash:ys}=require("crypto"),{Duplex:Qi,Readable:en}=require("stream"),{URL:We}=require("url"),I=ee(),vs=Fe(),bs=Me(),{isBlob:Ss}=G(),{BINARY_TYPES:Xt,CLOSE_TIMEOUT:Es,EMPTY_BUFFER:pe,GUID:ws,kForOnEventAttribute:$e,kListener:Ts,kStatusCode:Ns,kWebSocket:g,NOOP:Jt}=k(),{EventTarget:{addEventListener:ks,removeEventListener:Os}}=zt(),{format:Cs,parse:Bs}=qe(),{toBuffer:Ps}=J(),Qt=Symbol("kAborted"),Ge=[8,13],B=["CONNECTING","OPEN","CLOSING","CLOSED"],Rs=/^[!#$%&'*+\-.0-9A-Z^_`|a-z~]+$/,p=class t extends ps{constructor(e,r,s){super(),this._binaryType=Xt[0],this._closeCode=1006,this._closeFrameReceived=!1,this._closeFrameSent=!1,this._closeMessage=pe,this._closeTimer=null,this._errorEmitted=!1,this._extensions={},this._paused=!1,this._protocol="",this._readyState=t.CONNECTING,this._receiver=null,this._sender=null,this._socket=null,e!==null?(this._bufferedAmount=0,this._isServer=!1,this._redirects=0,r===void 0?r=[]:Array.isArray(r)||(typeof r=="object"&&r!==null?(s=r,r=[]):r=[r]),er(this,e,r,s)):(this._autoPong=s.autoPong,this._closeTimeout=s.closeTimeout,this._isServer=!0)}get binaryType(){return this._binaryType}set binaryType(e){Xt.includes(e)&&(this._binaryType=e,this._receiver&&(this._receiver._binaryType=e))}get bufferedAmount(){return this._socket?this._socket._writableState.length+this._sender._bufferedBytes:this._bufferedAmount}get extensions(){return Object.keys(this._extensions).join()}get isPaused(){return this._paused}get onclose(){return null}get onerror(){return null}get onopen(){return null}get onmessage(){return null}get protocol(){return this._protocol}get readyState(){return this._readyState}get url(){return this._url}setSocket(e,r,s){let i=new vs({allowSynchronousEvents:s.allowSynchronousEvents,binaryType:this.binaryType,extensions:this._extensions,isServer:this._isServer,maxPayload:s.maxPayload,skipUTF8Validation:s.skipUTF8Validation}),n=new bs(e,this._extensions,s.generateMask);this._receiver=i,this._sender=n,this._socket=e,i[g]=this,n[g]=this,e[g]=this,i.on("conclude",Fs),i.on("drain",Ds),i.on("error",As),i.on("message",Ms),i.on("ping",Us),i.on("pong",qs),n.onerror=Ws,e.setTimeout&&e.setTimeout(0),e.setNoDelay&&e.setNoDelay(),r.length>0&&e.unshift(r),e.on("close",sr),e.on("data",_e),e.on("end",ir),e.on("error",nr),this._readyState=t.OPEN,this.emit("open")}emitClose(){if(!this._socket){this._readyState=t.CLOSED,this.emit("close",this._closeCode,this._closeMessage);return}this._extensions[I.extensionName]&&this._extensions[I.extensionName].cleanup(),this._receiver.removeAllListeners(),this._readyState=t.CLOSED,this.emit("close",this._closeCode,this._closeMessage)}close(e,r){if(this.readyState!==t.CLOSED){if(this.readyState===t.CONNECTING){v(this,this._req,"WebSocket was closed before the connection was established");return}if(this.readyState===t.CLOSING){this._closeFrameSent&&(this._closeFrameReceived||this._receiver._writableState.errorEmitted)&&this._socket.end();return}this._readyState=t.CLOSING,this._sender.close(e,r,!this._isServer,s=>{s||(this._closeFrameSent=!0,(this._closeFrameReceived||this._receiver._writableState.errorEmitted)&&this._socket.end())}),rr(this)}}pause(){this.readyState===t.CONNECTING||this.readyState===t.CLOSED||(this._paused=!0,this._socket.pause())}ping(e,r,s){if(this.readyState===t.CONNECTING)throw new Error("WebSocket is not open: readyState 0 (CONNECTING)");if(typeof e=="function"?(s=e,e=r=void 0):typeof r=="function"&&(s=r,r=void 0),typeof e=="number"&&(e=e.toString()),this.readyState!==t.OPEN){Ve(this,e,s);return}r===void 0&&(r=!this._isServer),this._sender.ping(e||pe,r,s)}pong(e,r,s){if(this.readyState===t.CONNECTING)throw new Error("WebSocket is not open: readyState 0 (CONNECTING)");if(typeof e=="function"?(s=e,e=r=void 0):typeof r=="function"&&(s=r,r=void 0),typeof e=="number"&&(e=e.toString()),this.readyState!==t.OPEN){Ve(this,e,s);return}r===void 0&&(r=!this._isServer),this._sender.pong(e||pe,r,s)}resume(){this.readyState===t.CONNECTING||this.readyState===t.CLOSED||(this._paused=!1,this._receiver._writableState.needDrain||this._socket.resume())}send(e,r,s){if(this.readyState===t.CONNECTING)throw new Error("WebSocket is not open: readyState 0 (CONNECTING)");if(typeof r=="function"&&(s=r,r={}),typeof e=="number"&&(e=e.toString()),this.readyState!==t.OPEN){Ve(this,e,s);return}let i={binary:typeof e!="string",mask:!this._isServer,compress:!0,fin:!0,...r};this._extensions[I.extensionName]||(i.compress=!1),this._sender.send(e||pe,i,s)}terminate(){if(this.readyState!==t.CLOSED){if(this.readyState===t.CONNECTING){v(this,this._req,"WebSocket was closed before the connection was established");return}this._socket&&(this._readyState=t.CLOSING,this._socket.destroy())}}};Object.defineProperty(p,"CONNECTING",{enumerable:!0,value:B.indexOf("CONNECTING")});Object.defineProperty(p.prototype,"CONNECTING",{enumerable:!0,value:B.indexOf("CONNECTING")});Object.defineProperty(p,"OPEN",{enumerable:!0,value:B.indexOf("OPEN")});Object.defineProperty(p.prototype,"OPEN",{enumerable:!0,value:B.indexOf("OPEN")});Object.defineProperty(p,"CLOSING",{enumerable:!0,value:B.indexOf("CLOSING")});Object.defineProperty(p.prototype,"CLOSING",{enumerable:!0,value:B.indexOf("CLOSING")});Object.defineProperty(p,"CLOSED",{enumerable:!0,value:B.indexOf("CLOSED")});Object.defineProperty(p.prototype,"CLOSED",{enumerable:!0,value:B.indexOf("CLOSED")});["binaryType","bufferedAmount","extensions","isPaused","protocol","readyState","url"].forEach(t=>{Object.defineProperty(p.prototype,t,{enumerable:!0})});["open","error","close","message"].forEach(t=>{Object.defineProperty(p.prototype,`on${t}`,{enumerable:!0,get(){for(let e of this.listeners(t))if(e[$e])return e[Ts];return null},set(e){for(let r of this.listeners(t))if(r[$e]){this.removeListener(t,r);break}typeof e=="function"&&this.addEventListener(t,e,{[$e]:!0})}})});p.prototype.addEventListener=ks;p.prototype.removeEventListener=Os;or.exports=p;function er(t,e,r,s){let i={allowSynchronousEvents:!0,autoPong:!0,closeTimeout:Es,protocolVersion:Ge[1],maxPayload:104857600,skipUTF8Validation:!1,perMessageDeflate:!0,followRedirects:!1,maxRedirects:10,...s,socketPath:void 0,hostname:void 0,protocol:void 0,timeout:void 0,method:"GET",host:void 0,path:void 0,port:void 0};if(t._autoPong=i.autoPong,t._closeTimeout=i.closeTimeout,!Ge.includes(i.protocolVersion))throw new RangeError(`Unsupported protocol version: ${i.protocolVersion} (supported versions: ${Ge.join(", ")})`);let n;if(e instanceof We)n=e;else try{n=new We(e)}catch{throw new SyntaxError(`Invalid URL: ${e}`)}n.protocol==="http:"?n.protocol="ws:":n.protocol==="https:"&&(n.protocol="wss:"),t._url=n.href;let o=n.protocol==="wss:",a=n.protocol==="ws+unix:",c;if(n.protocol!=="ws:"&&!o&&!a?c=`The URL's protocol must be one of "ws:", "wss:", "http:", "https:", or "ws+unix:"`:a&&!n.pathname?c="The URL's pathname is empty":n.hash&&(c="The URL contains a fragment identifier"),c){let u=new SyntaxError(c);if(t._redirects===0)throw u;me(t,u);return}let l=o?443:80,d=xs(16).toString("base64"),f=o?ms.request:_s.request,h=new Set,m;if(i.createConnection=i.createConnection||(o?Ls:Is),i.defaultPort=i.defaultPort||l,i.port=n.port||l,i.host=n.hostname.startsWith("[")?n.hostname.slice(1,-1):n.hostname,i.headers={...i.headers,"Sec-WebSocket-Version":i.protocolVersion,"Sec-WebSocket-Key":d,Connection:"Upgrade",Upgrade:"websocket"},i.path=n.pathname+n.search,i.timeout=i.handshakeTimeout,i.perMessageDeflate&&(m=new I(i.perMessageDeflate!==!0?i.perMessageDeflate:{},!1,i.maxPayload),i.headers["Sec-WebSocket-Extensions"]=Cs({[I.extensionName]:m.offer()})),r.length){for(let u of r){if(typeof u!="string"||!Rs.test(u)||h.has(u))throw new SyntaxError("An invalid or duplicated subprotocol was specified");h.add(u)}i.headers["Sec-WebSocket-Protocol"]=r.join(",")}if(i.origin&&(i.protocolVersion<13?i.headers["Sec-WebSocket-Origin"]=i.origin:i.headers.Origin=i.origin),(n.username||n.password)&&(i.auth=`${n.username}:${n.password}`),a){let u=i.path.split(":");i.socketPath=u[0],i.path=u[1]}let _;if(i.followRedirects){if(t._redirects===0){t._originalIpc=a,t._originalSecure=o,t._originalHostOrSocketPath=a?i.socketPath:n.host;let u=s&&s.headers;if(s={...s,headers:{}},u)for(let[x,U]of Object.entries(u))s.headers[x.toLowerCase()]=U}else if(t.listenerCount("redirect")===0){let u=a?t._originalIpc?i.socketPath===t._originalHostOrSocketPath:!1:t._originalIpc?!1:n.host===t._originalHostOrSocketPath;(!u||t._originalSecure&&!o)&&(delete i.headers.authorization,delete i.headers.cookie,u||delete i.headers.host,i.auth=void 0)}i.auth&&!s.headers.authorization&&(s.headers.authorization="Basic "+Buffer.from(i.auth).toString("base64")),_=t._req=f(i),t._redirects&&t.emit("redirect",t.url,_)}else _=t._req=f(i);i.timeout&&_.on("timeout",()=>{v(t,_,"Opening handshake has timed out")}),_.on("error",u=>{_===null||_[Qt]||(_=t._req=null,me(t,u))}),_.on("response",u=>{let x=u.headers.location,U=u.statusCode;if(x&&i.followRedirects&&U>=300&&U<400){if(++t._redirects>i.maxRedirects){v(t,_,"Maximum redirects exceeded");return}_.abort();let K;try{K=new We(x,e)}catch{let q=new SyntaxError(`Invalid URL: ${x}`);me(t,q);return}er(t,K,r,s)}else t.emit("unexpected-response",_,u)||v(t,_,`Unexpected server response: ${u.statusCode}`)}),_.on("upgrade",(u,x,U)=>{if(t.emit("upgrade",u),t.readyState!==p.CONNECTING)return;_=t._req=null;let K=u.headers.upgrade;if(K===void 0||K.toLowerCase()!=="websocket"){v(t,x,"Invalid Upgrade header");return}let Ye=ys("sha1").update(d+ws).digest("base64");if(u.headers["sec-websocket-accept"]!==Ye){v(t,x,"Invalid Sec-WebSocket-Accept header");return}let q=u.headers["sec-websocket-protocol"],Z;if(q!==void 0?h.size?h.has(q)||(Z="Server sent an invalid subprotocol"):Z="Server sent a subprotocol but none was requested":h.size&&(Z="Server sent no subprotocol"),Z){v(t,x,Z);return}q&&(t._protocol=q);let Xe=u.headers["sec-websocket-extensions"];if(Xe!==void 0){if(!m){v(t,x,"Server sent a Sec-WebSocket-Extensions header but no extension was requested");return}let ye;try{ye=Bs(Xe)}catch{v(t,x,"Invalid Sec-WebSocket-Extensions header");return}let Ke=Object.keys(ye);if(Ke.length!==1||Ke[0]!==I.extensionName){v(t,x,"Server indicated an extension that was not requested");return}try{m.accept(ye[I.extensionName])}catch{v(t,x,"Invalid Sec-WebSocket-Extensions header");return}t._extensions[I.extensionName]=m}t.setSocket(x,U,{allowSynchronousEvents:i.allowSynchronousEvents,generateMask:i.generateMask,maxPayload:i.maxPayload,skipUTF8Validation:i.skipUTF8Validation})}),i.finishRequest?i.finishRequest(_,t):_.end()}function me(t,e){t._readyState=p.CLOSING,t._errorEmitted=!0,t.emit("error",e),t.emitClose()}function Is(t){return t.path=t.socketPath,Zt.connect(t)}function Ls(t){return t.path=void 0,!t.servername&&t.servername!==""&&(t.servername=Zt.isIP(t.host)?"":t.host),gs.connect(t)}function v(t,e,r){t._readyState=p.CLOSING;let s=new Error(r);Error.captureStackTrace(s,v),e.setHeader?(e[Qt]=!0,e.abort(),e.socket&&!e.socket.destroyed&&e.socket.destroy(),process.nextTick(me,t,s)):(e.destroy(s),e.once("error",t.emit.bind(t,"error")),e.once("close",t.emitClose.bind(t)))}function Ve(t,e,r){if(e){let s=Ss(e)?e.size:Ps(e).length;t._socket?t._sender._bufferedBytes+=s:t._bufferedAmount+=s}if(r){let s=new Error(`WebSocket is not open: readyState ${t.readyState} (${B[t.readyState]})`);process.nextTick(r,s)}}function Fs(t,e){let r=this[g];r._closeFrameReceived=!0,r._closeMessage=e,r._closeCode=t,r._socket[g]!==void 0&&(r._socket.removeListener("data",_e),process.nextTick(tr,r._socket),t===1005?r.close():r.close(t,e))}function Ds(){let t=this[g];t.isPaused||t._socket.resume()}function As(t){let e=this[g];e._socket[g]!==void 0&&(e._socket.removeListener("data",_e),process.nextTick(tr,e._socket),e.close(t[Ns])),e._errorEmitted||(e._errorEmitted=!0,e.emit("error",t))}function Kt(){this[g].emitClose()}function Ms(t,e){this[g].emit("message",t,e)}function Us(t){let e=this[g];e._autoPong&&e.pong(t,!this._isServer,Jt),e.emit("ping",t)}function qs(t){this[g].emit("pong",t)}function tr(t){t.resume()}function Ws(t){let e=this[g];e.readyState!==p.CLOSED&&(e.readyState===p.OPEN&&(e._readyState=p.CLOSING,rr(e)),this._socket.end(),e._errorEmitted||(e._errorEmitted=!0,e.emit("error",t)))}function rr(t){t._closeTimer=setTimeout(t._socket.destroy.bind(t._socket),t._closeTimeout)}function sr(){let t=this[g];if(this.removeListener("close",sr),this.removeListener("data",_e),this.removeListener("end",ir),t._readyState=p.CLOSING,!this._readableState.endEmitted&&!t._closeFrameReceived&&!t._receiver._writableState.errorEmitted&&this._readableState.length!==0){let e=this.read(this._readableState.length);t._receiver.write(e)}t._receiver.end(),this[g]=void 0,clearTimeout(t._closeTimer),t._receiver._writableState.finished||t._receiver._writableState.errorEmitted?t.emitClose():(t._receiver.on("error",Kt),t._receiver.on("finish",Kt))}function _e(t){this[g]._receiver.write(t)||this.pause()}function ir(){let t=this[g];t._readyState=p.CLOSING,t._receiver.end(),this.end()}function nr(){let t=this[g];this.removeListener("error",nr),this.on("error",Jt),t&&(t._readyState=p.CLOSING,this.destroy())}});var dr=y((sn,cr)=>{"use strict";var rn=ge(),{Duplex:$s}=require("stream");function ar(t){t.emit("close")}function Gs(){!this.destroyed&&this._writableState.finished&&this.destroy()}function lr(t){this.removeListener("error",lr),this.destroy(),this.listenerCount("error")===0&&this.emit("error",t)}function Vs(t,e){let r=!0,s=new $s({...e,autoDestroy:!1,emitClose:!1,objectMode:!1,writableObjectMode:!1});return t.on("message",function(n,o){let a=!o&&s._readableState.objectMode?n.toString():n;s.push(a)||t.pause()}),t.once("error",function(n){s.destroyed||(r=!1,s.destroy(n))}),t.once("close",function(){s.destroyed||s.push(null)}),s._destroy=function(i,n){if(t.readyState===t.CLOSED){n(i),process.nextTick(ar,s);return}let o=!1;t.once("error",function(c){o=!0,n(c)}),t.once("close",function(){o||n(i),process.nextTick(ar,s)}),r&&t.terminate()},s._final=function(i){if(t.readyState===t.CONNECTING){t.once("open",function(){s._final(i)});return}t._socket!==null&&(t._socket._writableState.finished?(i(),s._readableState.endEmitted&&s.destroy()):(t._socket.once("finish",function(){i()}),t.close()))},s._read=function(){t.isPaused&&t.resume()},s._write=function(i,n,o){if(t.readyState===t.CONNECTING){t.once("open",function(){s._write(i,n,o)});return}t.send(i,o)},s.on("end",Gs),s.on("error",lr),s}cr.exports=Vs});var ur=y((nn,fr)=>{"use strict";var{tokenChars:js}=G();function Hs(t){let e=new Set,r=-1,s=-1,i=0;for(i;i<t.length;i++){let o=t.charCodeAt(i);if(s===-1&&js[o]===1)r===-1&&(r=i);else if(i!==0&&(o===32||o===9))s===-1&&r!==-1&&(s=i);else if(o===44){if(r===-1)throw new SyntaxError(`Unexpected character at index ${i}`);s===-1&&(s=i);let a=t.slice(r,s);if(e.has(a))throw new SyntaxError(`The "${a}" subprotocol is duplicated`);e.add(a),r=s=-1}else throw new SyntaxError(`Unexpected character at index ${i}`)}if(r===-1||s!==-1)throw new SyntaxError("Unexpected end of input");let n=t.slice(r,i);if(e.has(n))throw new SyntaxError(`The "${n}" subprotocol is duplicated`);return e.add(n),e}fr.exports={parse:Hs}});var yr=y((an,xr)=>{"use strict";var zs=require("events"),xe=require("http"),{Duplex:on}=require("stream"),{createHash:Ys}=require("crypto"),hr=qe(),A=ee(),Xs=ur(),Ks=ge(),{CLOSE_TIMEOUT:Zs,GUID:Js,kWebSocket:Qs}=k(),ei=/^[+/0-9A-Za-z]{22}==$/,pr=0,mr=1,gr=2,je=class extends zs{constructor(e,r){if(super(),e={allowSynchronousEvents:!0,autoPong:!0,maxPayload:100*1024*1024,skipUTF8Validation:!1,perMessageDeflate:!1,handleProtocols:null,clientTracking:!0,closeTimeout:Zs,verifyClient:null,noServer:!1,backlog:null,server:null,host:null,path:null,port:null,WebSocket:Ks,...e},e.port==null&&!e.server&&!e.noServer||e.port!=null&&(e.server||e.noServer)||e.server&&e.noServer)throw new TypeError('One and only one of the "port", "server", or "noServer" options must be specified');if(e.port!=null?(this._server=xe.createServer((s,i)=>{let n=xe.STATUS_CODES[426];i.writeHead(426,{"Content-Length":n.length,"Content-Type":"text/plain"}),i.end(n)}),this._server.listen(e.port,e.host,e.backlog,r)):e.server&&(this._server=e.server),this._server){let s=this.emit.bind(this,"connection");this._removeListeners=ti(this._server,{listening:this.emit.bind(this,"listening"),error:this.emit.bind(this,"error"),upgrade:(i,n,o)=>{this.handleUpgrade(i,n,o,s)}})}e.perMessageDeflate===!0&&(e.perMessageDeflate={}),e.clientTracking&&(this.clients=new Set,this._shouldEmitClose=!1),this.options=e,this._state=pr}address(){if(this.options.noServer)throw new Error('The server is operating in "noServer" mode');return this._server?this._server.address():null}close(e){if(this._state===gr){e&&this.once("close",()=>{e(new Error("The server is not running"))}),process.nextTick(ie,this);return}if(e&&this.once("close",e),this._state!==mr)if(this._state=mr,this.options.noServer||this.options.server)this._server&&(this._removeListeners(),this._removeListeners=this._server=null),this.clients?this.clients.size?this._shouldEmitClose=!0:process.nextTick(ie,this):process.nextTick(ie,this);else{let r=this._server;this._removeListeners(),this._removeListeners=this._server=null,r.close(()=>{ie(this)})}}shouldHandle(e){if(this.options.path){let r=e.url.indexOf("?");if((r!==-1?e.url.slice(0,r):e.url)!==this.options.path)return!1}return!0}handleUpgrade(e,r,s,i){r.on("error",_r);let n=e.headers["sec-websocket-key"],o=e.headers.upgrade,a=+e.headers["sec-websocket-version"];if(e.method!=="GET"){M(this,e,r,405,"Invalid HTTP method");return}if(o===void 0||o.toLowerCase()!=="websocket"){M(this,e,r,400,"Invalid Upgrade header");return}if(n===void 0||!ei.test(n)){M(this,e,r,400,"Missing or invalid Sec-WebSocket-Key header");return}if(a!==13&&a!==8){M(this,e,r,400,"Missing or invalid Sec-WebSocket-Version header",{"Sec-WebSocket-Version":"13, 8"});return}if(!this.shouldHandle(e)){ne(r,400);return}let c=e.headers["sec-websocket-protocol"],l=new Set;if(c!==void 0)try{l=Xs.parse(c)}catch{M(this,e,r,400,"Invalid Sec-WebSocket-Protocol header");return}let d=e.headers["sec-websocket-extensions"],f={};if(this.options.perMessageDeflate&&d!==void 0){let h=new A(this.options.perMessageDeflate,!0,this.options.maxPayload);try{let m=hr.parse(d);m[A.extensionName]&&(h.accept(m[A.extensionName]),f[A.extensionName]=h)}catch{M(this,e,r,400,"Invalid or unacceptable Sec-WebSocket-Extensions header");return}}if(this.options.verifyClient){let h={origin:e.headers[`${a===8?"sec-websocket-origin":"origin"}`],secure:!!(e.socket.authorized||e.socket.encrypted),req:e};if(this.options.verifyClient.length===2){this.options.verifyClient(h,(m,_,u,x)=>{if(!m)return ne(r,_||401,u,x);this.completeUpgrade(f,n,l,e,r,s,i)});return}if(!this.options.verifyClient(h))return ne(r,401)}this.completeUpgrade(f,n,l,e,r,s,i)}completeUpgrade(e,r,s,i,n,o,a){if(!n.readable||!n.writable)return n.destroy();if(n[Qs])throw new Error("server.handleUpgrade() was called more than once with the same socket, possibly due to a misconfiguration");if(this._state>pr)return ne(n,503);let l=["HTTP/1.1 101 Switching Protocols","Upgrade: websocket","Connection: Upgrade",`Sec-WebSocket-Accept: ${Ys("sha1").update(r+Js).digest("base64")}`],d=new this.options.WebSocket(null,void 0,this.options);if(s.size){let f=this.options.handleProtocols?this.options.handleProtocols(s,i):s.values().next().value;f&&(l.push(`Sec-WebSocket-Protocol: ${f}`),d._protocol=f)}if(e[A.extensionName]){let f=e[A.extensionName].params,h=hr.format({[A.extensionName]:[f]});l.push(`Sec-WebSocket-Extensions: ${h}`),d._extensions=e}this.emit("headers",l,i),n.write(l.concat(`\r
2
+ "use strict";var Cr=Object.create;var Ze=Object.defineProperty;var Br=Object.getOwnPropertyDescriptor;var Pr=Object.getOwnPropertyNames;var Rr=Object.getPrototypeOf,Ir=Object.prototype.hasOwnProperty;var y=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports);var Lr=(t,e,r,s)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of Pr(e))!Ir.call(t,i)&&i!==r&&Ze(t,i,{get:()=>e[i],enumerable:!(s=Br(e,i))||s.enumerable});return t};var w=(t,e,r)=>(r=t!=null?Cr(Rr(t)):{},Lr(e||!t||!t.__esModule?Ze(r,"default",{value:t,enumerable:!0}):r,t));var O=y((ji,xt)=>{"use strict";var _t=["nodebuffer","arraybuffer","fragments"],gt=typeof Blob<"u";gt&&_t.push("blob");xt.exports={BINARY_TYPES:_t,CLOSE_TIMEOUT:3e4,EMPTY_BUFFER:Buffer.alloc(0),GUID:"258EAFA5-E914-47DA-95CA-C5AB0DC85B11",hasBlob:gt,kForOnEventAttribute:Symbol("kIsForOnEventAttribute"),kListener:Symbol("kListener"),kStatusCode:Symbol("status-code"),kWebSocket:Symbol("websocket"),NOOP:()=>{}}});var J=y((Gi,oe)=>{"use strict";var{EMPTY_BUFFER:Mr}=O(),Te=Buffer[Symbol.species];function Ur(t,e){if(t.length===0)return Mr;if(t.length===1)return t[0];let r=Buffer.allocUnsafe(e),s=0;for(let i=0;i<t.length;i++){let n=t[i];r.set(n,s),s+=n.length}return s<e?new Te(r.buffer,r.byteOffset,s):r}function yt(t,e,r,s,i){for(let n=0;n<i;n++)r[s+n]=t[n]^e[n&3]}function vt(t,e){for(let r=0;r<t.length;r++)t[r]^=e[r&3]}function qr(t){return t.length===t.buffer.byteLength?t.buffer:t.buffer.slice(t.byteOffset,t.byteOffset+t.length)}function Ne(t){if(Ne.readOnly=!0,Buffer.isBuffer(t))return t;let e;return t instanceof ArrayBuffer?e=new Te(t):ArrayBuffer.isView(t)?e=new Te(t.buffer,t.byteOffset,t.byteLength):(e=Buffer.from(t),Ne.readOnly=!1),e}oe.exports={concat:Ur,mask:yt,toArrayBuffer:qr,toBuffer:Ne,unmask:vt};if(!process.env.WS_NO_BUFFER_UTIL)try{let t=require("bufferutil");oe.exports.mask=function(e,r,s,i,n){n<48?yt(e,r,s,i,n):t.mask(e,r,s,i,n)},oe.exports.unmask=function(e,r){e.length<32?vt(e,r):t.unmask(e,r)}}catch{}});var Et=y((Vi,St)=>{"use strict";var bt=Symbol("kDone"),ke=Symbol("kRun"),Oe=class{constructor(e){this[bt]=()=>{this.pending--,this[ke]()},this.concurrency=e||1/0,this.jobs=[],this.pending=0}add(e){this.jobs.push(e),this[ke]()}[ke](){if(this.pending!==this.concurrency&&this.jobs.length){let e=this.jobs.shift();this.pending++,e(this[bt])}}};St.exports=Oe});var ee=y((Hi,kt)=>{"use strict";var Q=require("zlib"),wt=J(),Wr=Et(),{kStatusCode:Tt}=O(),$r=Buffer[Symbol.species],jr=Buffer.from([0,0,255,255]),le=Symbol("permessage-deflate"),C=Symbol("total-length"),$=Symbol("callback"),R=Symbol("buffers"),j=Symbol("error"),ae,Ce=class{constructor(e,r,s){if(this._maxPayload=s|0,this._options=e||{},this._threshold=this._options.threshold!==void 0?this._options.threshold:1024,this._isServer=!!r,this._deflate=null,this._inflate=null,this.params=null,!ae){let i=this._options.concurrencyLimit!==void 0?this._options.concurrencyLimit:10;ae=new Wr(i)}}static get extensionName(){return"permessage-deflate"}offer(){let e={};return this._options.serverNoContextTakeover&&(e.server_no_context_takeover=!0),this._options.clientNoContextTakeover&&(e.client_no_context_takeover=!0),this._options.serverMaxWindowBits&&(e.server_max_window_bits=this._options.serverMaxWindowBits),this._options.clientMaxWindowBits?e.client_max_window_bits=this._options.clientMaxWindowBits:this._options.clientMaxWindowBits==null&&(e.client_max_window_bits=!0),e}accept(e){return e=this.normalizeParams(e),this.params=this._isServer?this.acceptAsServer(e):this.acceptAsClient(e),this.params}cleanup(){if(this._inflate&&(this._inflate.close(),this._inflate=null),this._deflate){let e=this._deflate[$];this._deflate.close(),this._deflate=null,e&&e(new Error("The deflate stream was closed while data was being processed"))}}acceptAsServer(e){let r=this._options,s=e.find(i=>!(r.serverNoContextTakeover===!1&&i.server_no_context_takeover||i.server_max_window_bits&&(r.serverMaxWindowBits===!1||typeof r.serverMaxWindowBits=="number"&&r.serverMaxWindowBits>i.server_max_window_bits)||typeof r.clientMaxWindowBits=="number"&&!i.client_max_window_bits));if(!s)throw new Error("None of the extension offers can be accepted");return r.serverNoContextTakeover&&(s.server_no_context_takeover=!0),r.clientNoContextTakeover&&(s.client_no_context_takeover=!0),typeof r.serverMaxWindowBits=="number"&&(s.server_max_window_bits=r.serverMaxWindowBits),typeof r.clientMaxWindowBits=="number"?s.client_max_window_bits=r.clientMaxWindowBits:(s.client_max_window_bits===!0||r.clientMaxWindowBits===!1)&&delete s.client_max_window_bits,s}acceptAsClient(e){let r=e[0];if(this._options.clientNoContextTakeover===!1&&r.client_no_context_takeover)throw new Error('Unexpected parameter "client_no_context_takeover"');if(!r.client_max_window_bits)typeof this._options.clientMaxWindowBits=="number"&&(r.client_max_window_bits=this._options.clientMaxWindowBits);else if(this._options.clientMaxWindowBits===!1||typeof this._options.clientMaxWindowBits=="number"&&r.client_max_window_bits>this._options.clientMaxWindowBits)throw new Error('Unexpected or invalid parameter "client_max_window_bits"');return r}normalizeParams(e){return e.forEach(r=>{Object.keys(r).forEach(s=>{let i=r[s];if(i.length>1)throw new Error(`Parameter "${s}" must have only a single value`);if(i=i[0],s==="client_max_window_bits"){if(i!==!0){let n=+i;if(!Number.isInteger(n)||n<8||n>15)throw new TypeError(`Invalid value for parameter "${s}": ${i}`);i=n}else if(!this._isServer)throw new TypeError(`Invalid value for parameter "${s}": ${i}`)}else if(s==="server_max_window_bits"){let n=+i;if(!Number.isInteger(n)||n<8||n>15)throw new TypeError(`Invalid value for parameter "${s}": ${i}`);i=n}else if(s==="client_no_context_takeover"||s==="server_no_context_takeover"){if(i!==!0)throw new TypeError(`Invalid value for parameter "${s}": ${i}`)}else throw new Error(`Unknown parameter "${s}"`);r[s]=i})}),e}decompress(e,r,s){ae.add(i=>{this._decompress(e,r,(n,o)=>{i(),s(n,o)})})}compress(e,r,s){ae.add(i=>{this._compress(e,r,(n,o)=>{i(),s(n,o)})})}_decompress(e,r,s){let i=this._isServer?"client":"server";if(!this._inflate){let n=`${i}_max_window_bits`,o=typeof this.params[n]!="number"?Q.Z_DEFAULT_WINDOWBITS:this.params[n];this._inflate=Q.createInflateRaw({...this._options.zlibInflateOptions,windowBits:o}),this._inflate[le]=this,this._inflate[C]=0,this._inflate[R]=[],this._inflate.on("error",Vr),this._inflate.on("data",Nt)}this._inflate[$]=s,this._inflate.write(e),r&&this._inflate.write(jr),this._inflate.flush(()=>{let n=this._inflate[j];if(n){this._inflate.close(),this._inflate=null,s(n);return}let o=wt.concat(this._inflate[R],this._inflate[C]);this._inflate._readableState.endEmitted?(this._inflate.close(),this._inflate=null):(this._inflate[C]=0,this._inflate[R]=[],r&&this.params[`${i}_no_context_takeover`]&&this._inflate.reset()),s(null,o)})}_compress(e,r,s){let i=this._isServer?"server":"client";if(!this._deflate){let n=`${i}_max_window_bits`,o=typeof this.params[n]!="number"?Q.Z_DEFAULT_WINDOWBITS:this.params[n];this._deflate=Q.createDeflateRaw({...this._options.zlibDeflateOptions,windowBits:o}),this._deflate[C]=0,this._deflate[R]=[],this._deflate.on("data",Gr)}this._deflate[$]=s,this._deflate.write(e),this._deflate.flush(Q.Z_SYNC_FLUSH,()=>{if(!this._deflate)return;let n=wt.concat(this._deflate[R],this._deflate[C]);r&&(n=new $r(n.buffer,n.byteOffset,n.length-4)),this._deflate[$]=null,this._deflate[C]=0,this._deflate[R]=[],r&&this.params[`${i}_no_context_takeover`]&&this._deflate.reset(),s(null,n)})}};kt.exports=Ce;function Gr(t){this[R].push(t),this[C]+=t.length}function Nt(t){if(this[C]+=t.length,this[le]._maxPayload<1||this[C]<=this[le]._maxPayload){this[R].push(t);return}this[j]=new RangeError("Max payload size exceeded"),this[j].code="WS_ERR_UNSUPPORTED_MESSAGE_LENGTH",this[j][Tt]=1009,this.removeListener("data",Nt),this.reset()}function Vr(t){if(this[le]._inflate=null,this[j]){this[$](this[j]);return}t[Tt]=1007,this[$](t)}});var G=y((zi,ce)=>{"use strict";var{isUtf8:Ot}=require("buffer"),{hasBlob:Hr}=O(),zr=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,1,1,1,1,0,0,1,1,0,1,1,0,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,0,1,0];function Yr(t){return t>=1e3&&t<=1014&&t!==1004&&t!==1005&&t!==1006||t>=3e3&&t<=4999}function Be(t){let e=t.length,r=0;for(;r<e;)if((t[r]&128)===0)r++;else if((t[r]&224)===192){if(r+1===e||(t[r+1]&192)!==128||(t[r]&254)===192)return!1;r+=2}else if((t[r]&240)===224){if(r+2>=e||(t[r+1]&192)!==128||(t[r+2]&192)!==128||t[r]===224&&(t[r+1]&224)===128||t[r]===237&&(t[r+1]&224)===160)return!1;r+=3}else if((t[r]&248)===240){if(r+3>=e||(t[r+1]&192)!==128||(t[r+2]&192)!==128||(t[r+3]&192)!==128||t[r]===240&&(t[r+1]&240)===128||t[r]===244&&t[r+1]>143||t[r]>244)return!1;r+=4}else return!1;return!0}function Xr(t){return Hr&&typeof t=="object"&&typeof t.arrayBuffer=="function"&&typeof t.type=="string"&&typeof t.stream=="function"&&(t[Symbol.toStringTag]==="Blob"||t[Symbol.toStringTag]==="File")}ce.exports={isBlob:Xr,isValidStatusCode:Yr,isValidUTF8:Be,tokenChars:zr};if(Ot)ce.exports.isValidUTF8=function(t){return t.length<24?Be(t):Ot(t)};else if(!process.env.WS_NO_UTF_8_VALIDATE)try{let t=require("utf-8-validate");ce.exports.isValidUTF8=function(e){return e.length<32?Be(e):t(e)}}catch{}});var De=y((Yi,Dt)=>{"use strict";var{Writable:Kr}=require("stream"),Ct=ee(),{BINARY_TYPES:Zr,EMPTY_BUFFER:Bt,kStatusCode:Jr,kWebSocket:Qr}=O(),{concat:Pe,toArrayBuffer:es,unmask:ts}=J(),{isValidStatusCode:rs,isValidUTF8:Pt}=G(),de=Buffer[Symbol.species],b=0,Rt=1,It=2,Lt=3,Re=4,Ie=5,fe=6,Le=class extends Kr{constructor(e={}){super(),this._allowSynchronousEvents=e.allowSynchronousEvents!==void 0?e.allowSynchronousEvents:!0,this._binaryType=e.binaryType||Zr[0],this._extensions=e.extensions||{},this._isServer=!!e.isServer,this._maxPayload=e.maxPayload|0,this._skipUTF8Validation=!!e.skipUTF8Validation,this[Qr]=void 0,this._bufferedBytes=0,this._buffers=[],this._compressed=!1,this._payloadLength=0,this._mask=void 0,this._fragmented=0,this._masked=!1,this._fin=!1,this._opcode=0,this._totalPayloadLength=0,this._messageLength=0,this._fragments=[],this._errored=!1,this._loop=!1,this._state=b}_write(e,r,s){if(this._opcode===8&&this._state==b)return s();this._bufferedBytes+=e.length,this._buffers.push(e),this.startLoop(s)}consume(e){if(this._bufferedBytes-=e,e===this._buffers[0].length)return this._buffers.shift();if(e<this._buffers[0].length){let s=this._buffers[0];return this._buffers[0]=new de(s.buffer,s.byteOffset+e,s.length-e),new de(s.buffer,s.byteOffset,e)}let r=Buffer.allocUnsafe(e);do{let s=this._buffers[0],i=r.length-e;e>=s.length?r.set(this._buffers.shift(),i):(r.set(new Uint8Array(s.buffer,s.byteOffset,e),i),this._buffers[0]=new de(s.buffer,s.byteOffset+e,s.length-e)),e-=s.length}while(e>0);return r}startLoop(e){this._loop=!0;do switch(this._state){case b:this.getInfo(e);break;case Rt:this.getPayloadLength16(e);break;case It:this.getPayloadLength64(e);break;case Lt:this.getMask();break;case Re:this.getData(e);break;case Ie:case fe:this._loop=!1;return}while(this._loop);this._errored||e()}getInfo(e){if(this._bufferedBytes<2){this._loop=!1;return}let r=this.consume(2);if((r[0]&48)!==0){let i=this.createError(RangeError,"RSV2 and RSV3 must be clear",!0,1002,"WS_ERR_UNEXPECTED_RSV_2_3");e(i);return}let s=(r[0]&64)===64;if(s&&!this._extensions[Ct.extensionName]){let i=this.createError(RangeError,"RSV1 must be clear",!0,1002,"WS_ERR_UNEXPECTED_RSV_1");e(i);return}if(this._fin=(r[0]&128)===128,this._opcode=r[0]&15,this._payloadLength=r[1]&127,this._opcode===0){if(s){let i=this.createError(RangeError,"RSV1 must be clear",!0,1002,"WS_ERR_UNEXPECTED_RSV_1");e(i);return}if(!this._fragmented){let i=this.createError(RangeError,"invalid opcode 0",!0,1002,"WS_ERR_INVALID_OPCODE");e(i);return}this._opcode=this._fragmented}else if(this._opcode===1||this._opcode===2){if(this._fragmented){let i=this.createError(RangeError,`invalid opcode ${this._opcode}`,!0,1002,"WS_ERR_INVALID_OPCODE");e(i);return}this._compressed=s}else if(this._opcode>7&&this._opcode<11){if(!this._fin){let i=this.createError(RangeError,"FIN must be set",!0,1002,"WS_ERR_EXPECTED_FIN");e(i);return}if(s){let i=this.createError(RangeError,"RSV1 must be clear",!0,1002,"WS_ERR_UNEXPECTED_RSV_1");e(i);return}if(this._payloadLength>125||this._opcode===8&&this._payloadLength===1){let i=this.createError(RangeError,`invalid payload length ${this._payloadLength}`,!0,1002,"WS_ERR_INVALID_CONTROL_PAYLOAD_LENGTH");e(i);return}}else{let i=this.createError(RangeError,`invalid opcode ${this._opcode}`,!0,1002,"WS_ERR_INVALID_OPCODE");e(i);return}if(!this._fin&&!this._fragmented&&(this._fragmented=this._opcode),this._masked=(r[1]&128)===128,this._isServer){if(!this._masked){let i=this.createError(RangeError,"MASK must be set",!0,1002,"WS_ERR_EXPECTED_MASK");e(i);return}}else if(this._masked){let i=this.createError(RangeError,"MASK must be clear",!0,1002,"WS_ERR_UNEXPECTED_MASK");e(i);return}this._payloadLength===126?this._state=Rt:this._payloadLength===127?this._state=It:this.haveLength(e)}getPayloadLength16(e){if(this._bufferedBytes<2){this._loop=!1;return}this._payloadLength=this.consume(2).readUInt16BE(0),this.haveLength(e)}getPayloadLength64(e){if(this._bufferedBytes<8){this._loop=!1;return}let r=this.consume(8),s=r.readUInt32BE(0);if(s>Math.pow(2,21)-1){let i=this.createError(RangeError,"Unsupported WebSocket frame: payload length > 2^53 - 1",!1,1009,"WS_ERR_UNSUPPORTED_DATA_PAYLOAD_LENGTH");e(i);return}this._payloadLength=s*Math.pow(2,32)+r.readUInt32BE(4),this.haveLength(e)}haveLength(e){if(this._payloadLength&&this._opcode<8&&(this._totalPayloadLength+=this._payloadLength,this._totalPayloadLength>this._maxPayload&&this._maxPayload>0)){let r=this.createError(RangeError,"Max payload size exceeded",!1,1009,"WS_ERR_UNSUPPORTED_MESSAGE_LENGTH");e(r);return}this._masked?this._state=Lt:this._state=Re}getMask(){if(this._bufferedBytes<4){this._loop=!1;return}this._mask=this.consume(4),this._state=Re}getData(e){let r=Bt;if(this._payloadLength){if(this._bufferedBytes<this._payloadLength){this._loop=!1;return}r=this.consume(this._payloadLength),this._masked&&(this._mask[0]|this._mask[1]|this._mask[2]|this._mask[3])!==0&&ts(r,this._mask)}if(this._opcode>7){this.controlMessage(r,e);return}if(this._compressed){this._state=Ie,this.decompress(r,e);return}r.length&&(this._messageLength=this._totalPayloadLength,this._fragments.push(r)),this.dataMessage(e)}decompress(e,r){this._extensions[Ct.extensionName].decompress(e,this._fin,(i,n)=>{if(i)return r(i);if(n.length){if(this._messageLength+=n.length,this._messageLength>this._maxPayload&&this._maxPayload>0){let o=this.createError(RangeError,"Max payload size exceeded",!1,1009,"WS_ERR_UNSUPPORTED_MESSAGE_LENGTH");r(o);return}this._fragments.push(n)}this.dataMessage(r),this._state===b&&this.startLoop(r)})}dataMessage(e){if(!this._fin){this._state=b;return}let r=this._messageLength,s=this._fragments;if(this._totalPayloadLength=0,this._messageLength=0,this._fragmented=0,this._fragments=[],this._opcode===2){let i;this._binaryType==="nodebuffer"?i=Pe(s,r):this._binaryType==="arraybuffer"?i=es(Pe(s,r)):this._binaryType==="blob"?i=new Blob(s):i=s,this._allowSynchronousEvents?(this.emit("message",i,!0),this._state=b):(this._state=fe,setImmediate(()=>{this.emit("message",i,!0),this._state=b,this.startLoop(e)}))}else{let i=Pe(s,r);if(!this._skipUTF8Validation&&!Pt(i)){let n=this.createError(Error,"invalid UTF-8 sequence",!0,1007,"WS_ERR_INVALID_UTF8");e(n);return}this._state===Ie||this._allowSynchronousEvents?(this.emit("message",i,!1),this._state=b):(this._state=fe,setImmediate(()=>{this.emit("message",i,!1),this._state=b,this.startLoop(e)}))}}controlMessage(e,r){if(this._opcode===8){if(e.length===0)this._loop=!1,this.emit("conclude",1005,Bt),this.end();else{let s=e.readUInt16BE(0);if(!rs(s)){let n=this.createError(RangeError,`invalid status code ${s}`,!0,1002,"WS_ERR_INVALID_CLOSE_CODE");r(n);return}let i=new de(e.buffer,e.byteOffset+2,e.length-2);if(!this._skipUTF8Validation&&!Pt(i)){let n=this.createError(Error,"invalid UTF-8 sequence",!0,1007,"WS_ERR_INVALID_UTF8");r(n);return}this._loop=!1,this.emit("conclude",s,i),this.end()}this._state=b;return}this._allowSynchronousEvents?(this.emit(this._opcode===9?"ping":"pong",e),this._state=b):(this._state=fe,setImmediate(()=>{this.emit(this._opcode===9?"ping":"pong",e),this._state=b,this.startLoop(r)}))}createError(e,r,s,i,n){this._loop=!1,this._errored=!0;let o=new e(s?`Invalid WebSocket frame: ${r}`:r);return Error.captureStackTrace(o,this.createError),o.code=n,o[Jr]=i,o}};Dt.exports=Le});var Me=y((Ki,Mt)=>{"use strict";var{Duplex:Xi}=require("stream"),{randomFillSync:ss}=require("crypto"),Ft=ee(),{EMPTY_BUFFER:is,kWebSocket:ns,NOOP:os}=O(),{isBlob:V,isValidStatusCode:as}=G(),{mask:At,toBuffer:L}=J(),S=Symbol("kByteLength"),ls=Buffer.alloc(4),ue=8*1024,D,H=ue,E=0,cs=1,ds=2,Fe=class t{constructor(e,r,s){this._extensions=r||{},s&&(this._generateMask=s,this._maskBuffer=Buffer.alloc(4)),this._socket=e,this._firstFragment=!0,this._compress=!1,this._bufferedBytes=0,this._queue=[],this._state=E,this.onerror=os,this[ns]=void 0}static frame(e,r){let s,i=!1,n=2,o=!1;r.mask&&(s=r.maskBuffer||ls,r.generateMask?r.generateMask(s):(H===ue&&(D===void 0&&(D=Buffer.alloc(ue)),ss(D,0,ue),H=0),s[0]=D[H++],s[1]=D[H++],s[2]=D[H++],s[3]=D[H++]),o=(s[0]|s[1]|s[2]|s[3])===0,n=6);let l;typeof e=="string"?(!r.mask||o)&&r[S]!==void 0?l=r[S]:(e=Buffer.from(e),l=e.length):(l=e.length,i=r.mask&&r.readOnly&&!o);let c=l;l>=65536?(n+=8,c=127):l>125&&(n+=2,c=126);let a=Buffer.allocUnsafe(i?l+n:n);return a[0]=r.fin?r.opcode|128:r.opcode,r.rsv1&&(a[0]|=64),a[1]=c,c===126?a.writeUInt16BE(l,2):c===127&&(a[2]=a[3]=0,a.writeUIntBE(l,4,6)),r.mask?(a[1]|=128,a[n-4]=s[0],a[n-3]=s[1],a[n-2]=s[2],a[n-1]=s[3],o?[a,e]:i?(At(e,s,a,n,l),[a]):(At(e,s,e,0,l),[a,e])):[a,e]}close(e,r,s,i){let n;if(e===void 0)n=is;else{if(typeof e!="number"||!as(e))throw new TypeError("First argument must be a valid error code number");if(r===void 0||!r.length)n=Buffer.allocUnsafe(2),n.writeUInt16BE(e,0);else{let l=Buffer.byteLength(r);if(l>123)throw new RangeError("The message must not be greater than 123 bytes");n=Buffer.allocUnsafe(2+l),n.writeUInt16BE(e,0),typeof r=="string"?n.write(r,2):n.set(r,2)}}let o={[S]:n.length,fin:!0,generateMask:this._generateMask,mask:s,maskBuffer:this._maskBuffer,opcode:8,readOnly:!1,rsv1:!1};this._state!==E?this.enqueue([this.dispatch,n,!1,o,i]):this.sendFrame(t.frame(n,o),i)}ping(e,r,s){let i,n;if(typeof e=="string"?(i=Buffer.byteLength(e),n=!1):V(e)?(i=e.size,n=!1):(e=L(e),i=e.length,n=L.readOnly),i>125)throw new RangeError("The data size must not be greater than 125 bytes");let o={[S]:i,fin:!0,generateMask:this._generateMask,mask:r,maskBuffer:this._maskBuffer,opcode:9,readOnly:n,rsv1:!1};V(e)?this._state!==E?this.enqueue([this.getBlobData,e,!1,o,s]):this.getBlobData(e,!1,o,s):this._state!==E?this.enqueue([this.dispatch,e,!1,o,s]):this.sendFrame(t.frame(e,o),s)}pong(e,r,s){let i,n;if(typeof e=="string"?(i=Buffer.byteLength(e),n=!1):V(e)?(i=e.size,n=!1):(e=L(e),i=e.length,n=L.readOnly),i>125)throw new RangeError("The data size must not be greater than 125 bytes");let o={[S]:i,fin:!0,generateMask:this._generateMask,mask:r,maskBuffer:this._maskBuffer,opcode:10,readOnly:n,rsv1:!1};V(e)?this._state!==E?this.enqueue([this.getBlobData,e,!1,o,s]):this.getBlobData(e,!1,o,s):this._state!==E?this.enqueue([this.dispatch,e,!1,o,s]):this.sendFrame(t.frame(e,o),s)}send(e,r,s){let i=this._extensions[Ft.extensionName],n=r.binary?2:1,o=r.compress,l,c;typeof e=="string"?(l=Buffer.byteLength(e),c=!1):V(e)?(l=e.size,c=!1):(e=L(e),l=e.length,c=L.readOnly),this._firstFragment?(this._firstFragment=!1,o&&i&&i.params[i._isServer?"server_no_context_takeover":"client_no_context_takeover"]&&(o=l>=i._threshold),this._compress=o):(o=!1,n=0),r.fin&&(this._firstFragment=!0);let a={[S]:l,fin:r.fin,generateMask:this._generateMask,mask:r.mask,maskBuffer:this._maskBuffer,opcode:n,readOnly:c,rsv1:o};V(e)?this._state!==E?this.enqueue([this.getBlobData,e,this._compress,a,s]):this.getBlobData(e,this._compress,a,s):this._state!==E?this.enqueue([this.dispatch,e,this._compress,a,s]):this.dispatch(e,this._compress,a,s)}getBlobData(e,r,s,i){this._bufferedBytes+=s[S],this._state=ds,e.arrayBuffer().then(n=>{if(this._socket.destroyed){let l=new Error("The socket was closed while the blob was being read");process.nextTick(Ae,this,l,i);return}this._bufferedBytes-=s[S];let o=L(n);r?this.dispatch(o,r,s,i):(this._state=E,this.sendFrame(t.frame(o,s),i),this.dequeue())}).catch(n=>{process.nextTick(fs,this,n,i)})}dispatch(e,r,s,i){if(!r){this.sendFrame(t.frame(e,s),i);return}let n=this._extensions[Ft.extensionName];this._bufferedBytes+=s[S],this._state=cs,n.compress(e,s.fin,(o,l)=>{if(this._socket.destroyed){let c=new Error("The socket was closed while data was being compressed");Ae(this,c,i);return}this._bufferedBytes-=s[S],this._state=E,s.readOnly=!1,this.sendFrame(t.frame(l,s),i),this.dequeue()})}dequeue(){for(;this._state===E&&this._queue.length;){let e=this._queue.shift();this._bufferedBytes-=e[3][S],Reflect.apply(e[0],this,e.slice(1))}}enqueue(e){this._bufferedBytes+=e[3][S],this._queue.push(e)}sendFrame(e,r){e.length===2?(this._socket.cork(),this._socket.write(e[0]),this._socket.write(e[1],r),this._socket.uncork()):this._socket.write(e[0],r)}};Mt.exports=Fe;function Ae(t,e,r){typeof r=="function"&&r(e);for(let s=0;s<t._queue.length;s++){let i=t._queue[s],n=i[i.length-1];typeof n=="function"&&n(e)}}function fs(t,e,r){Ae(t,e,r),t.onerror(e)}});var zt=y((Zi,Ht)=>{"use strict";var{kForOnEventAttribute:te,kListener:Ue}=O(),Ut=Symbol("kCode"),qt=Symbol("kData"),Wt=Symbol("kError"),$t=Symbol("kMessage"),jt=Symbol("kReason"),z=Symbol("kTarget"),Gt=Symbol("kType"),Vt=Symbol("kWasClean"),B=class{constructor(e){this[z]=null,this[Gt]=e}get target(){return this[z]}get type(){return this[Gt]}};Object.defineProperty(B.prototype,"target",{enumerable:!0});Object.defineProperty(B.prototype,"type",{enumerable:!0});var F=class extends B{constructor(e,r={}){super(e),this[Ut]=r.code===void 0?0:r.code,this[jt]=r.reason===void 0?"":r.reason,this[Vt]=r.wasClean===void 0?!1:r.wasClean}get code(){return this[Ut]}get reason(){return this[jt]}get wasClean(){return this[Vt]}};Object.defineProperty(F.prototype,"code",{enumerable:!0});Object.defineProperty(F.prototype,"reason",{enumerable:!0});Object.defineProperty(F.prototype,"wasClean",{enumerable:!0});var Y=class extends B{constructor(e,r={}){super(e),this[Wt]=r.error===void 0?null:r.error,this[$t]=r.message===void 0?"":r.message}get error(){return this[Wt]}get message(){return this[$t]}};Object.defineProperty(Y.prototype,"error",{enumerable:!0});Object.defineProperty(Y.prototype,"message",{enumerable:!0});var re=class extends B{constructor(e,r={}){super(e),this[qt]=r.data===void 0?null:r.data}get data(){return this[qt]}};Object.defineProperty(re.prototype,"data",{enumerable:!0});var us={addEventListener(t,e,r={}){for(let i of this.listeners(t))if(!r[te]&&i[Ue]===e&&!i[te])return;let s;if(t==="message")s=function(n,o){let l=new re("message",{data:o?n:n.toString()});l[z]=this,he(e,this,l)};else if(t==="close")s=function(n,o){let l=new F("close",{code:n,reason:o.toString(),wasClean:this._closeFrameReceived&&this._closeFrameSent});l[z]=this,he(e,this,l)};else if(t==="error")s=function(n){let o=new Y("error",{error:n,message:n.message});o[z]=this,he(e,this,o)};else if(t==="open")s=function(){let n=new B("open");n[z]=this,he(e,this,n)};else return;s[te]=!!r[te],s[Ue]=e,r.once?this.once(t,s):this.on(t,s)},removeEventListener(t,e){for(let r of this.listeners(t))if(r[Ue]===e&&!r[te]){this.removeListener(t,r);break}}};Ht.exports={CloseEvent:F,ErrorEvent:Y,Event:B,EventTarget:us,MessageEvent:re};function he(t,e,r){typeof t=="object"&&t.handleEvent?t.handleEvent.call(t,r):t.call(e,r)}});var qe=y((Ji,Yt)=>{"use strict";var{tokenChars:se}=G();function N(t,e,r){t[e]===void 0?t[e]=[r]:t[e].push(r)}function hs(t){let e=Object.create(null),r=Object.create(null),s=!1,i=!1,n=!1,o,l,c=-1,a=-1,d=-1,f=0;for(;f<t.length;f++)if(a=t.charCodeAt(f),o===void 0)if(d===-1&&se[a]===1)c===-1&&(c=f);else if(f!==0&&(a===32||a===9))d===-1&&c!==-1&&(d=f);else if(a===59||a===44){if(c===-1)throw new SyntaxError(`Unexpected character at index ${f}`);d===-1&&(d=f);let p=t.slice(c,d);a===44?(N(e,p,r),r=Object.create(null)):o=p,c=d=-1}else throw new SyntaxError(`Unexpected character at index ${f}`);else if(l===void 0)if(d===-1&&se[a]===1)c===-1&&(c=f);else if(a===32||a===9)d===-1&&c!==-1&&(d=f);else if(a===59||a===44){if(c===-1)throw new SyntaxError(`Unexpected character at index ${f}`);d===-1&&(d=f),N(r,t.slice(c,d),!0),a===44&&(N(e,o,r),r=Object.create(null),o=void 0),c=d=-1}else if(a===61&&c!==-1&&d===-1)l=t.slice(c,f),c=d=-1;else throw new SyntaxError(`Unexpected character at index ${f}`);else if(i){if(se[a]!==1)throw new SyntaxError(`Unexpected character at index ${f}`);c===-1?c=f:s||(s=!0),i=!1}else if(n)if(se[a]===1)c===-1&&(c=f);else if(a===34&&c!==-1)n=!1,d=f;else if(a===92)i=!0;else throw new SyntaxError(`Unexpected character at index ${f}`);else if(a===34&&t.charCodeAt(f-1)===61)n=!0;else if(d===-1&&se[a]===1)c===-1&&(c=f);else if(c!==-1&&(a===32||a===9))d===-1&&(d=f);else if(a===59||a===44){if(c===-1)throw new SyntaxError(`Unexpected character at index ${f}`);d===-1&&(d=f);let p=t.slice(c,d);s&&(p=p.replace(/\\/g,""),s=!1),N(r,l,p),a===44&&(N(e,o,r),r=Object.create(null),o=void 0),l=void 0,c=d=-1}else throw new SyntaxError(`Unexpected character at index ${f}`);if(c===-1||n||a===32||a===9)throw new SyntaxError("Unexpected end of input");d===-1&&(d=f);let h=t.slice(c,d);return o===void 0?N(e,h,r):(l===void 0?N(r,h,!0):s?N(r,l,h.replace(/\\/g,"")):N(r,l,h),N(e,o,r)),e}function ps(t){return Object.keys(t).map(e=>{let r=t[e];return Array.isArray(r)||(r=[r]),r.map(s=>[e].concat(Object.keys(s).map(i=>{let n=s[i];return Array.isArray(n)||(n=[n]),n.map(o=>o===!0?i:`${i}=${o}`).join("; ")})).join("; ")).join(", ")}).join(", ")}Yt.exports={format:ps,parse:hs}});var ge=y((tn,or)=>{"use strict";var ms=require("events"),_s=require("https"),gs=require("http"),Zt=require("net"),xs=require("tls"),{randomBytes:ys,createHash:vs}=require("crypto"),{Duplex:Qi,Readable:en}=require("stream"),{URL:We}=require("url"),I=ee(),bs=De(),Ss=Me(),{isBlob:Es}=G(),{BINARY_TYPES:Xt,CLOSE_TIMEOUT:ws,EMPTY_BUFFER:pe,GUID:Ts,kForOnEventAttribute:$e,kListener:Ns,kStatusCode:ks,kWebSocket:g,NOOP:Jt}=O(),{EventTarget:{addEventListener:Os,removeEventListener:Cs}}=zt(),{format:Bs,parse:Ps}=qe(),{toBuffer:Rs}=J(),Qt=Symbol("kAborted"),je=[8,13],P=["CONNECTING","OPEN","CLOSING","CLOSED"],Is=/^[!#$%&'*+\-.0-9A-Z^_`|a-z~]+$/,m=class t extends ms{constructor(e,r,s){super(),this._binaryType=Xt[0],this._closeCode=1006,this._closeFrameReceived=!1,this._closeFrameSent=!1,this._closeMessage=pe,this._closeTimer=null,this._errorEmitted=!1,this._extensions={},this._paused=!1,this._protocol="",this._readyState=t.CONNECTING,this._receiver=null,this._sender=null,this._socket=null,e!==null?(this._bufferedAmount=0,this._isServer=!1,this._redirects=0,r===void 0?r=[]:Array.isArray(r)||(typeof r=="object"&&r!==null?(s=r,r=[]):r=[r]),er(this,e,r,s)):(this._autoPong=s.autoPong,this._closeTimeout=s.closeTimeout,this._isServer=!0)}get binaryType(){return this._binaryType}set binaryType(e){Xt.includes(e)&&(this._binaryType=e,this._receiver&&(this._receiver._binaryType=e))}get bufferedAmount(){return this._socket?this._socket._writableState.length+this._sender._bufferedBytes:this._bufferedAmount}get extensions(){return Object.keys(this._extensions).join()}get isPaused(){return this._paused}get onclose(){return null}get onerror(){return null}get onopen(){return null}get onmessage(){return null}get protocol(){return this._protocol}get readyState(){return this._readyState}get url(){return this._url}setSocket(e,r,s){let i=new bs({allowSynchronousEvents:s.allowSynchronousEvents,binaryType:this.binaryType,extensions:this._extensions,isServer:this._isServer,maxPayload:s.maxPayload,skipUTF8Validation:s.skipUTF8Validation}),n=new Ss(e,this._extensions,s.generateMask);this._receiver=i,this._sender=n,this._socket=e,i[g]=this,n[g]=this,e[g]=this,i.on("conclude",Fs),i.on("drain",As),i.on("error",Ms),i.on("message",Us),i.on("ping",qs),i.on("pong",Ws),n.onerror=$s,e.setTimeout&&e.setTimeout(0),e.setNoDelay&&e.setNoDelay(),r.length>0&&e.unshift(r),e.on("close",sr),e.on("data",_e),e.on("end",ir),e.on("error",nr),this._readyState=t.OPEN,this.emit("open")}emitClose(){if(!this._socket){this._readyState=t.CLOSED,this.emit("close",this._closeCode,this._closeMessage);return}this._extensions[I.extensionName]&&this._extensions[I.extensionName].cleanup(),this._receiver.removeAllListeners(),this._readyState=t.CLOSED,this.emit("close",this._closeCode,this._closeMessage)}close(e,r){if(this.readyState!==t.CLOSED){if(this.readyState===t.CONNECTING){v(this,this._req,"WebSocket was closed before the connection was established");return}if(this.readyState===t.CLOSING){this._closeFrameSent&&(this._closeFrameReceived||this._receiver._writableState.errorEmitted)&&this._socket.end();return}this._readyState=t.CLOSING,this._sender.close(e,r,!this._isServer,s=>{s||(this._closeFrameSent=!0,(this._closeFrameReceived||this._receiver._writableState.errorEmitted)&&this._socket.end())}),rr(this)}}pause(){this.readyState===t.CONNECTING||this.readyState===t.CLOSED||(this._paused=!0,this._socket.pause())}ping(e,r,s){if(this.readyState===t.CONNECTING)throw new Error("WebSocket is not open: readyState 0 (CONNECTING)");if(typeof e=="function"?(s=e,e=r=void 0):typeof r=="function"&&(s=r,r=void 0),typeof e=="number"&&(e=e.toString()),this.readyState!==t.OPEN){Ge(this,e,s);return}r===void 0&&(r=!this._isServer),this._sender.ping(e||pe,r,s)}pong(e,r,s){if(this.readyState===t.CONNECTING)throw new Error("WebSocket is not open: readyState 0 (CONNECTING)");if(typeof e=="function"?(s=e,e=r=void 0):typeof r=="function"&&(s=r,r=void 0),typeof e=="number"&&(e=e.toString()),this.readyState!==t.OPEN){Ge(this,e,s);return}r===void 0&&(r=!this._isServer),this._sender.pong(e||pe,r,s)}resume(){this.readyState===t.CONNECTING||this.readyState===t.CLOSED||(this._paused=!1,this._receiver._writableState.needDrain||this._socket.resume())}send(e,r,s){if(this.readyState===t.CONNECTING)throw new Error("WebSocket is not open: readyState 0 (CONNECTING)");if(typeof r=="function"&&(s=r,r={}),typeof e=="number"&&(e=e.toString()),this.readyState!==t.OPEN){Ge(this,e,s);return}let i={binary:typeof e!="string",mask:!this._isServer,compress:!0,fin:!0,...r};this._extensions[I.extensionName]||(i.compress=!1),this._sender.send(e||pe,i,s)}terminate(){if(this.readyState!==t.CLOSED){if(this.readyState===t.CONNECTING){v(this,this._req,"WebSocket was closed before the connection was established");return}this._socket&&(this._readyState=t.CLOSING,this._socket.destroy())}}};Object.defineProperty(m,"CONNECTING",{enumerable:!0,value:P.indexOf("CONNECTING")});Object.defineProperty(m.prototype,"CONNECTING",{enumerable:!0,value:P.indexOf("CONNECTING")});Object.defineProperty(m,"OPEN",{enumerable:!0,value:P.indexOf("OPEN")});Object.defineProperty(m.prototype,"OPEN",{enumerable:!0,value:P.indexOf("OPEN")});Object.defineProperty(m,"CLOSING",{enumerable:!0,value:P.indexOf("CLOSING")});Object.defineProperty(m.prototype,"CLOSING",{enumerable:!0,value:P.indexOf("CLOSING")});Object.defineProperty(m,"CLOSED",{enumerable:!0,value:P.indexOf("CLOSED")});Object.defineProperty(m.prototype,"CLOSED",{enumerable:!0,value:P.indexOf("CLOSED")});["binaryType","bufferedAmount","extensions","isPaused","protocol","readyState","url"].forEach(t=>{Object.defineProperty(m.prototype,t,{enumerable:!0})});["open","error","close","message"].forEach(t=>{Object.defineProperty(m.prototype,`on${t}`,{enumerable:!0,get(){for(let e of this.listeners(t))if(e[$e])return e[Ns];return null},set(e){for(let r of this.listeners(t))if(r[$e]){this.removeListener(t,r);break}typeof e=="function"&&this.addEventListener(t,e,{[$e]:!0})}})});m.prototype.addEventListener=Os;m.prototype.removeEventListener=Cs;or.exports=m;function er(t,e,r,s){let i={allowSynchronousEvents:!0,autoPong:!0,closeTimeout:ws,protocolVersion:je[1],maxPayload:104857600,skipUTF8Validation:!1,perMessageDeflate:!0,followRedirects:!1,maxRedirects:10,...s,socketPath:void 0,hostname:void 0,protocol:void 0,timeout:void 0,method:"GET",host:void 0,path:void 0,port:void 0};if(t._autoPong=i.autoPong,t._closeTimeout=i.closeTimeout,!je.includes(i.protocolVersion))throw new RangeError(`Unsupported protocol version: ${i.protocolVersion} (supported versions: ${je.join(", ")})`);let n;if(e instanceof We)n=e;else try{n=new We(e)}catch{throw new SyntaxError(`Invalid URL: ${e}`)}n.protocol==="http:"?n.protocol="ws:":n.protocol==="https:"&&(n.protocol="wss:"),t._url=n.href;let o=n.protocol==="wss:",l=n.protocol==="ws+unix:",c;if(n.protocol!=="ws:"&&!o&&!l?c=`The URL's protocol must be one of "ws:", "wss:", "http:", "https:", or "ws+unix:"`:l&&!n.pathname?c="The URL's pathname is empty":n.hash&&(c="The URL contains a fragment identifier"),c){let u=new SyntaxError(c);if(t._redirects===0)throw u;me(t,u);return}let a=o?443:80,d=ys(16).toString("base64"),f=o?_s.request:gs.request,h=new Set,p;if(i.createConnection=i.createConnection||(o?Ds:Ls),i.defaultPort=i.defaultPort||a,i.port=n.port||a,i.host=n.hostname.startsWith("[")?n.hostname.slice(1,-1):n.hostname,i.headers={...i.headers,"Sec-WebSocket-Version":i.protocolVersion,"Sec-WebSocket-Key":d,Connection:"Upgrade",Upgrade:"websocket"},i.path=n.pathname+n.search,i.timeout=i.handshakeTimeout,i.perMessageDeflate&&(p=new I(i.perMessageDeflate!==!0?i.perMessageDeflate:{},!1,i.maxPayload),i.headers["Sec-WebSocket-Extensions"]=Bs({[I.extensionName]:p.offer()})),r.length){for(let u of r){if(typeof u!="string"||!Is.test(u)||h.has(u))throw new SyntaxError("An invalid or duplicated subprotocol was specified");h.add(u)}i.headers["Sec-WebSocket-Protocol"]=r.join(",")}if(i.origin&&(i.protocolVersion<13?i.headers["Sec-WebSocket-Origin"]=i.origin:i.headers.Origin=i.origin),(n.username||n.password)&&(i.auth=`${n.username}:${n.password}`),l){let u=i.path.split(":");i.socketPath=u[0],i.path=u[1]}let _;if(i.followRedirects){if(t._redirects===0){t._originalIpc=l,t._originalSecure=o,t._originalHostOrSocketPath=l?i.socketPath:n.host;let u=s&&s.headers;if(s={...s,headers:{}},u)for(let[x,q]of Object.entries(u))s.headers[x.toLowerCase()]=q}else if(t.listenerCount("redirect")===0){let u=l?t._originalIpc?i.socketPath===t._originalHostOrSocketPath:!1:t._originalIpc?!1:n.host===t._originalHostOrSocketPath;(!u||t._originalSecure&&!o)&&(delete i.headers.authorization,delete i.headers.cookie,u||delete i.headers.host,i.auth=void 0)}i.auth&&!s.headers.authorization&&(s.headers.authorization="Basic "+Buffer.from(i.auth).toString("base64")),_=t._req=f(i),t._redirects&&t.emit("redirect",t.url,_)}else _=t._req=f(i);i.timeout&&_.on("timeout",()=>{v(t,_,"Opening handshake has timed out")}),_.on("error",u=>{_===null||_[Qt]||(_=t._req=null,me(t,u))}),_.on("response",u=>{let x=u.headers.location,q=u.statusCode;if(x&&i.followRedirects&&q>=300&&q<400){if(++t._redirects>i.maxRedirects){v(t,_,"Maximum redirects exceeded");return}_.abort();let K;try{K=new We(x,e)}catch{let W=new SyntaxError(`Invalid URL: ${x}`);me(t,W);return}er(t,K,r,s)}else t.emit("unexpected-response",_,u)||v(t,_,`Unexpected server response: ${u.statusCode}`)}),_.on("upgrade",(u,x,q)=>{if(t.emit("upgrade",u),t.readyState!==m.CONNECTING)return;_=t._req=null;let K=u.headers.upgrade;if(K===void 0||K.toLowerCase()!=="websocket"){v(t,x,"Invalid Upgrade header");return}let Ye=vs("sha1").update(d+Ts).digest("base64");if(u.headers["sec-websocket-accept"]!==Ye){v(t,x,"Invalid Sec-WebSocket-Accept header");return}let W=u.headers["sec-websocket-protocol"],Z;if(W!==void 0?h.size?h.has(W)||(Z="Server sent an invalid subprotocol"):Z="Server sent a subprotocol but none was requested":h.size&&(Z="Server sent no subprotocol"),Z){v(t,x,Z);return}W&&(t._protocol=W);let Xe=u.headers["sec-websocket-extensions"];if(Xe!==void 0){if(!p){v(t,x,"Server sent a Sec-WebSocket-Extensions header but no extension was requested");return}let ye;try{ye=Ps(Xe)}catch{v(t,x,"Invalid Sec-WebSocket-Extensions header");return}let Ke=Object.keys(ye);if(Ke.length!==1||Ke[0]!==I.extensionName){v(t,x,"Server indicated an extension that was not requested");return}try{p.accept(ye[I.extensionName])}catch{v(t,x,"Invalid Sec-WebSocket-Extensions header");return}t._extensions[I.extensionName]=p}t.setSocket(x,q,{allowSynchronousEvents:i.allowSynchronousEvents,generateMask:i.generateMask,maxPayload:i.maxPayload,skipUTF8Validation:i.skipUTF8Validation})}),i.finishRequest?i.finishRequest(_,t):_.end()}function me(t,e){t._readyState=m.CLOSING,t._errorEmitted=!0,t.emit("error",e),t.emitClose()}function Ls(t){return t.path=t.socketPath,Zt.connect(t)}function Ds(t){return t.path=void 0,!t.servername&&t.servername!==""&&(t.servername=Zt.isIP(t.host)?"":t.host),xs.connect(t)}function v(t,e,r){t._readyState=m.CLOSING;let s=new Error(r);Error.captureStackTrace(s,v),e.setHeader?(e[Qt]=!0,e.abort(),e.socket&&!e.socket.destroyed&&e.socket.destroy(),process.nextTick(me,t,s)):(e.destroy(s),e.once("error",t.emit.bind(t,"error")),e.once("close",t.emitClose.bind(t)))}function Ge(t,e,r){if(e){let s=Es(e)?e.size:Rs(e).length;t._socket?t._sender._bufferedBytes+=s:t._bufferedAmount+=s}if(r){let s=new Error(`WebSocket is not open: readyState ${t.readyState} (${P[t.readyState]})`);process.nextTick(r,s)}}function Fs(t,e){let r=this[g];r._closeFrameReceived=!0,r._closeMessage=e,r._closeCode=t,r._socket[g]!==void 0&&(r._socket.removeListener("data",_e),process.nextTick(tr,r._socket),t===1005?r.close():r.close(t,e))}function As(){let t=this[g];t.isPaused||t._socket.resume()}function Ms(t){let e=this[g];e._socket[g]!==void 0&&(e._socket.removeListener("data",_e),process.nextTick(tr,e._socket),e.close(t[ks])),e._errorEmitted||(e._errorEmitted=!0,e.emit("error",t))}function Kt(){this[g].emitClose()}function Us(t,e){this[g].emit("message",t,e)}function qs(t){let e=this[g];e._autoPong&&e.pong(t,!this._isServer,Jt),e.emit("ping",t)}function Ws(t){this[g].emit("pong",t)}function tr(t){t.resume()}function $s(t){let e=this[g];e.readyState!==m.CLOSED&&(e.readyState===m.OPEN&&(e._readyState=m.CLOSING,rr(e)),this._socket.end(),e._errorEmitted||(e._errorEmitted=!0,e.emit("error",t)))}function rr(t){t._closeTimer=setTimeout(t._socket.destroy.bind(t._socket),t._closeTimeout)}function sr(){let t=this[g];if(this.removeListener("close",sr),this.removeListener("data",_e),this.removeListener("end",ir),t._readyState=m.CLOSING,!this._readableState.endEmitted&&!t._closeFrameReceived&&!t._receiver._writableState.errorEmitted&&this._readableState.length!==0){let e=this.read(this._readableState.length);t._receiver.write(e)}t._receiver.end(),this[g]=void 0,clearTimeout(t._closeTimer),t._receiver._writableState.finished||t._receiver._writableState.errorEmitted?t.emitClose():(t._receiver.on("error",Kt),t._receiver.on("finish",Kt))}function _e(t){this[g]._receiver.write(t)||this.pause()}function ir(){let t=this[g];t._readyState=m.CLOSING,t._receiver.end(),this.end()}function nr(){let t=this[g];this.removeListener("error",nr),this.on("error",Jt),t&&(t._readyState=m.CLOSING,this.destroy())}});var dr=y((sn,cr)=>{"use strict";var rn=ge(),{Duplex:js}=require("stream");function ar(t){t.emit("close")}function Gs(){!this.destroyed&&this._writableState.finished&&this.destroy()}function lr(t){this.removeListener("error",lr),this.destroy(),this.listenerCount("error")===0&&this.emit("error",t)}function Vs(t,e){let r=!0,s=new js({...e,autoDestroy:!1,emitClose:!1,objectMode:!1,writableObjectMode:!1});return t.on("message",function(n,o){let l=!o&&s._readableState.objectMode?n.toString():n;s.push(l)||t.pause()}),t.once("error",function(n){s.destroyed||(r=!1,s.destroy(n))}),t.once("close",function(){s.destroyed||s.push(null)}),s._destroy=function(i,n){if(t.readyState===t.CLOSED){n(i),process.nextTick(ar,s);return}let o=!1;t.once("error",function(c){o=!0,n(c)}),t.once("close",function(){o||n(i),process.nextTick(ar,s)}),r&&t.terminate()},s._final=function(i){if(t.readyState===t.CONNECTING){t.once("open",function(){s._final(i)});return}t._socket!==null&&(t._socket._writableState.finished?(i(),s._readableState.endEmitted&&s.destroy()):(t._socket.once("finish",function(){i()}),t.close()))},s._read=function(){t.isPaused&&t.resume()},s._write=function(i,n,o){if(t.readyState===t.CONNECTING){t.once("open",function(){s._write(i,n,o)});return}t.send(i,o)},s.on("end",Gs),s.on("error",lr),s}cr.exports=Vs});var ur=y((nn,fr)=>{"use strict";var{tokenChars:Hs}=G();function zs(t){let e=new Set,r=-1,s=-1,i=0;for(i;i<t.length;i++){let o=t.charCodeAt(i);if(s===-1&&Hs[o]===1)r===-1&&(r=i);else if(i!==0&&(o===32||o===9))s===-1&&r!==-1&&(s=i);else if(o===44){if(r===-1)throw new SyntaxError(`Unexpected character at index ${i}`);s===-1&&(s=i);let l=t.slice(r,s);if(e.has(l))throw new SyntaxError(`The "${l}" subprotocol is duplicated`);e.add(l),r=s=-1}else throw new SyntaxError(`Unexpected character at index ${i}`)}if(r===-1||s!==-1)throw new SyntaxError("Unexpected end of input");let n=t.slice(r,i);if(e.has(n))throw new SyntaxError(`The "${n}" subprotocol is duplicated`);return e.add(n),e}fr.exports={parse:zs}});var yr=y((an,xr)=>{"use strict";var Ys=require("events"),xe=require("http"),{Duplex:on}=require("stream"),{createHash:Xs}=require("crypto"),hr=qe(),A=ee(),Ks=ur(),Zs=ge(),{CLOSE_TIMEOUT:Js,GUID:Qs,kWebSocket:ei}=O(),ti=/^[+/0-9A-Za-z]{22}==$/,pr=0,mr=1,gr=2,Ve=class extends Ys{constructor(e,r){if(super(),e={allowSynchronousEvents:!0,autoPong:!0,maxPayload:100*1024*1024,skipUTF8Validation:!1,perMessageDeflate:!1,handleProtocols:null,clientTracking:!0,closeTimeout:Js,verifyClient:null,noServer:!1,backlog:null,server:null,host:null,path:null,port:null,WebSocket:Zs,...e},e.port==null&&!e.server&&!e.noServer||e.port!=null&&(e.server||e.noServer)||e.server&&e.noServer)throw new TypeError('One and only one of the "port", "server", or "noServer" options must be specified');if(e.port!=null?(this._server=xe.createServer((s,i)=>{let n=xe.STATUS_CODES[426];i.writeHead(426,{"Content-Length":n.length,"Content-Type":"text/plain"}),i.end(n)}),this._server.listen(e.port,e.host,e.backlog,r)):e.server&&(this._server=e.server),this._server){let s=this.emit.bind(this,"connection");this._removeListeners=ri(this._server,{listening:this.emit.bind(this,"listening"),error:this.emit.bind(this,"error"),upgrade:(i,n,o)=>{this.handleUpgrade(i,n,o,s)}})}e.perMessageDeflate===!0&&(e.perMessageDeflate={}),e.clientTracking&&(this.clients=new Set,this._shouldEmitClose=!1),this.options=e,this._state=pr}address(){if(this.options.noServer)throw new Error('The server is operating in "noServer" mode');return this._server?this._server.address():null}close(e){if(this._state===gr){e&&this.once("close",()=>{e(new Error("The server is not running"))}),process.nextTick(ie,this);return}if(e&&this.once("close",e),this._state!==mr)if(this._state=mr,this.options.noServer||this.options.server)this._server&&(this._removeListeners(),this._removeListeners=this._server=null),this.clients?this.clients.size?this._shouldEmitClose=!0:process.nextTick(ie,this):process.nextTick(ie,this);else{let r=this._server;this._removeListeners(),this._removeListeners=this._server=null,r.close(()=>{ie(this)})}}shouldHandle(e){if(this.options.path){let r=e.url.indexOf("?");if((r!==-1?e.url.slice(0,r):e.url)!==this.options.path)return!1}return!0}handleUpgrade(e,r,s,i){r.on("error",_r);let n=e.headers["sec-websocket-key"],o=e.headers.upgrade,l=+e.headers["sec-websocket-version"];if(e.method!=="GET"){M(this,e,r,405,"Invalid HTTP method");return}if(o===void 0||o.toLowerCase()!=="websocket"){M(this,e,r,400,"Invalid Upgrade header");return}if(n===void 0||!ti.test(n)){M(this,e,r,400,"Missing or invalid Sec-WebSocket-Key header");return}if(l!==13&&l!==8){M(this,e,r,400,"Missing or invalid Sec-WebSocket-Version header",{"Sec-WebSocket-Version":"13, 8"});return}if(!this.shouldHandle(e)){ne(r,400);return}let c=e.headers["sec-websocket-protocol"],a=new Set;if(c!==void 0)try{a=Ks.parse(c)}catch{M(this,e,r,400,"Invalid Sec-WebSocket-Protocol header");return}let d=e.headers["sec-websocket-extensions"],f={};if(this.options.perMessageDeflate&&d!==void 0){let h=new A(this.options.perMessageDeflate,!0,this.options.maxPayload);try{let p=hr.parse(d);p[A.extensionName]&&(h.accept(p[A.extensionName]),f[A.extensionName]=h)}catch{M(this,e,r,400,"Invalid or unacceptable Sec-WebSocket-Extensions header");return}}if(this.options.verifyClient){let h={origin:e.headers[`${l===8?"sec-websocket-origin":"origin"}`],secure:!!(e.socket.authorized||e.socket.encrypted),req:e};if(this.options.verifyClient.length===2){this.options.verifyClient(h,(p,_,u,x)=>{if(!p)return ne(r,_||401,u,x);this.completeUpgrade(f,n,a,e,r,s,i)});return}if(!this.options.verifyClient(h))return ne(r,401)}this.completeUpgrade(f,n,a,e,r,s,i)}completeUpgrade(e,r,s,i,n,o,l){if(!n.readable||!n.writable)return n.destroy();if(n[ei])throw new Error("server.handleUpgrade() was called more than once with the same socket, possibly due to a misconfiguration");if(this._state>pr)return ne(n,503);let a=["HTTP/1.1 101 Switching Protocols","Upgrade: websocket","Connection: Upgrade",`Sec-WebSocket-Accept: ${Xs("sha1").update(r+Qs).digest("base64")}`],d=new this.options.WebSocket(null,void 0,this.options);if(s.size){let f=this.options.handleProtocols?this.options.handleProtocols(s,i):s.values().next().value;f&&(a.push(`Sec-WebSocket-Protocol: ${f}`),d._protocol=f)}if(e[A.extensionName]){let f=e[A.extensionName].params,h=hr.format({[A.extensionName]:[f]});a.push(`Sec-WebSocket-Extensions: ${h}`),d._extensions=e}this.emit("headers",a,i),n.write(a.concat(`\r
3
3
  `).join(`\r
4
- `)),n.removeListener("error",_r),d.setSocket(n,o,{allowSynchronousEvents:this.options.allowSynchronousEvents,maxPayload:this.options.maxPayload,skipUTF8Validation:this.options.skipUTF8Validation}),this.clients&&(this.clients.add(d),d.on("close",()=>{this.clients.delete(d),this._shouldEmitClose&&!this.clients.size&&process.nextTick(ie,this)})),a(d,i)}};xr.exports=je;function ti(t,e){for(let r of Object.keys(e))t.on(r,e[r]);return function(){for(let s of Object.keys(e))t.removeListener(s,e[s])}}function ie(t){t._state=gr,t.emit("close")}function _r(){this.destroy()}function ne(t,e,r,s){r=r||xe.STATUS_CODES[e],s={Connection:"close","Content-Type":"text/html","Content-Length":Buffer.byteLength(r),...s},t.once("finish",t.destroy),t.end(`HTTP/1.1 ${e} ${xe.STATUS_CODES[e]}\r
4
+ `)),n.removeListener("error",_r),d.setSocket(n,o,{allowSynchronousEvents:this.options.allowSynchronousEvents,maxPayload:this.options.maxPayload,skipUTF8Validation:this.options.skipUTF8Validation}),this.clients&&(this.clients.add(d),d.on("close",()=>{this.clients.delete(d),this._shouldEmitClose&&!this.clients.size&&process.nextTick(ie,this)})),l(d,i)}};xr.exports=Ve;function ri(t,e){for(let r of Object.keys(e))t.on(r,e[r]);return function(){for(let s of Object.keys(e))t.removeListener(s,e[s])}}function ie(t){t._state=gr,t.emit("close")}function _r(){this.destroy()}function ne(t,e,r,s){r=r||xe.STATUS_CODES[e],s={Connection:"close","Content-Type":"text/html","Content-Length":Buffer.byteLength(r),...s},t.once("finish",t.destroy),t.end(`HTTP/1.1 ${e} ${xe.STATUS_CODES[e]}\r
5
5
  `+Object.keys(s).map(i=>`${i}: ${s[i]}`).join(`\r
6
6
  `)+`\r
7
7
  \r
8
- `+r)}function M(t,e,r,s,i,n){if(t.listenerCount("wsClientError")){let o=new Error(i);Error.captureStackTrace(o,M),t.emit("wsClientError",o,r,e)}else ne(r,s,i,n)}});var P=w(require("fs"),1),N=w(require("path"),1);function Je(){return`"use client";
8
+ `+r)}function M(t,e,r,s,i,n){if(t.listenerCount("wsClientError")){let o=new Error(i);Error.captureStackTrace(o,M),t.emit("wsClientError",o,r,e)}else ne(r,s,i,n)}});var T=w(require("fs"),1),k=w(require("path"),1);function Je(){return`"use client";
9
9
 
10
10
  import { useBitField } from "@lehnihon/bit-form/react";
11
11
 
@@ -457,7 +457,7 @@ export function BitFormSelect({
457
457
  id,
458
458
  }: BitFormSelectProps) {
459
459
  const field = useBitField(path);
460
- const { field: valueField, meta } = field;
460
+ const { meta } = field;
461
461
 
462
462
  if (meta.isHidden) return null;
463
463
 
@@ -475,8 +475,8 @@ export function BitFormSelect({
475
475
  </label>
476
476
  )}
477
477
  <Select
478
- value={valueField.value ?? ""}
479
- onValueChange={(val) => valueField.setValue(val)}
478
+ value={field.value ?? ""}
479
+ onValueChange={(val) => field.setValue(val)}
480
480
  >
481
481
  <SelectTrigger
482
482
  id={inputId}
@@ -524,12 +524,12 @@ export function BitFormCheckbox({
524
524
  id,
525
525
  }: BitFormCheckboxProps) {
526
526
  const field = useBitField(path);
527
- const { field: valueField, meta } = field;
527
+ const { meta } = field;
528
528
 
529
529
  if (meta.isHidden) return null;
530
530
 
531
531
  const inputId = id ?? path;
532
- const checked = Boolean(valueField.value);
532
+ const checked = Boolean(field.value);
533
533
 
534
534
  return (
535
535
  <div className="space-y-2" data-invalid={meta.invalid || undefined}>
@@ -537,8 +537,8 @@ export function BitFormCheckbox({
537
537
  <Checkbox
538
538
  id={inputId}
539
539
  checked={checked}
540
- onCheckedChange={(checked) => valueField.setValue(!!checked)}
541
- onBlur={valueField.setBlur}
540
+ onCheckedChange={(checked) => field.setValue(!!checked)}
541
+ onBlur={field.setBlur}
542
542
  aria-invalid={meta.invalid || undefined}
543
543
  aria-required={meta.isRequired || undefined}
544
544
  className={className}
@@ -583,12 +583,12 @@ export function BitFormSwitch({
583
583
  id,
584
584
  }: BitFormSwitchProps) {
585
585
  const field = useBitField(path);
586
- const { field: valueField, meta } = field;
586
+ const { meta } = field;
587
587
 
588
588
  if (meta.isHidden) return null;
589
589
 
590
590
  const inputId = id ?? path;
591
- const checked = Boolean(valueField.value);
591
+ const checked = Boolean(field.value);
592
592
 
593
593
  return (
594
594
  <div className="space-y-2" data-invalid={meta.invalid || undefined}>
@@ -596,7 +596,7 @@ export function BitFormSwitch({
596
596
  <Switch
597
597
  id={inputId}
598
598
  checked={checked}
599
- onCheckedChange={(checked) => valueField.setValue(!!checked)}
599
+ onCheckedChange={(checked) => field.setValue(!!checked)}
600
600
  aria-invalid={meta.invalid || undefined}
601
601
  aria-required={meta.isRequired || undefined}
602
602
  className={className}
@@ -648,7 +648,7 @@ export function BitFormRadioGroup({
648
648
  id,
649
649
  }: BitFormRadioGroupProps) {
650
650
  const field = useBitField(path);
651
- const { field: valueField, meta } = field;
651
+ const { meta } = field;
652
652
 
653
653
  if (meta.isHidden) return null;
654
654
 
@@ -665,8 +665,8 @@ export function BitFormRadioGroup({
665
665
  </label>
666
666
  )}
667
667
  <RadioGroup
668
- value={valueField.value ?? ""}
669
- onValueChange={(val) => valueField.setValue(val)}
668
+ value={field.value ?? ""}
669
+ onValueChange={(val) => field.setValue(val)}
670
670
  className={className}
671
671
  aria-invalid={meta.invalid || undefined}
672
672
  aria-required={meta.isRequired || undefined}
@@ -692,7 +692,7 @@ export function BitFormRadioGroup({
692
692
  </div>
693
693
  );
694
694
  }
695
- `}var Ee={input:it,textarea:nt,select:ot,checkbox:at,switch:lt,"radio-group":ct},we=Object.keys(Ee);var dt={name:"shadcn",framework:"react",components:we,renderComponent(t,e){let r=t.toLowerCase().replace(/\s+/g,"-"),s=Ee[r];if(!s)throw new Error(`Unknown shadcn component: ${t}. Available: ${we.join(", ")}`);let i=s(e.uiPath);return{filename:r==="radio-group"?"bit-form-radio-group.tsx":`bit-form-${r}.tsx`,contents:i}}};var ft={shadcn:dt,html:st};function ut(t){return ft[t.toLowerCase()]}function ht(){return Object.keys(ft)}var Lr="@/components/ui";function Fr(t){let e=t[0]??"",r=t.slice(1),s=".",i=Lr,n=!1,o=!1,a=[];for(let c=0;c<r.length;c++){let l=r[c];if(l==="--path"){if(!r[c+1])throw new Error("bit-form add: --path requires a value");s=r[c+1],c++}else if(l==="--ui-path"){if(!r[c+1])throw new Error("bit-form add: --ui-path requires a value");i=r[c+1],c++}else l==="--overwrite"?n=!0:l==="--yes"||l==="-y"?o=!0:l.startsWith("--")||a.push(l)}return{adapter:e,components:a,flags:{path:s,uiPath:i,overwrite:n,yes:o}}}function Dr(t){let e=N.join(t,"components.json");try{return P.accessSync(e),!0}catch{return!1}}function pt(t){let{adapter:e,components:r,flags:s}=Fr(t);if(!e)throw new Error("bit-form add: missing adapter name. Example: bit-form add shadcn input");let i=ut(e);if(!i)throw new Error(`bit-form add: unknown adapter "${e}". Available: ${ht().join(", ")}`);let n=r.length>0?r:i.components;if(n.length===0)throw new Error("bit-form add: specify at least one component or use no arguments to add all.");let o=process.cwd(),a=N.resolve(o,s.path),c=N.relative(o,a);if(c.startsWith("..")||N.isAbsolute(c))throw new Error(`bit-form add: output directory must be inside the project root (resolved: ${a})`);i.name==="shadcn"&&!Dr(o)&&console.warn("Warning: components.json not found in project root. Make sure shadcn/ui is initialized (e.g. npx shadcn@latest init) or pass --ui-path to match your setup.");try{P.mkdirSync(a,{recursive:!0})}catch(d){let f=d instanceof Error?d.message:String(d);throw new Error(`bit-form add: could not create output directory: ${f}`,{cause:d})}let l={cwd:o,path:a,uiPath:s.uiPath,overwrite:s.overwrite,yes:s.yes};for(let d of n){let{filename:f,contents:h}=i.renderComponent(d,l),m=N.join(a,f);if(!s.overwrite&&P.existsSync(m)){console.log(`Skip ${f} (exists; use --overwrite to replace)`);continue}P.writeFileSync(m,h,"utf-8"),console.log(`Created ${f}`)}}var ze=w(require("fs"),1),wr=w(require("http"),1),Y=w(require("path"),1);function mt(t){return`
695
+ `}var Ee={input:it,textarea:nt,select:ot,checkbox:at,switch:lt,"radio-group":ct},we=Object.keys(Ee);var dt={name:"shadcn",framework:"react",components:we,renderComponent(t,e){let r=t.toLowerCase().replace(/\s+/g,"-"),s=Ee[r];if(!s)throw new Error(`Unknown shadcn component: ${t}. Available: ${we.join(", ")}`);let i=s(e.uiPath);return{filename:r==="radio-group"?"bit-form-radio-group.tsx":`bit-form-${r}.tsx`,contents:i}}};var ft={shadcn:dt,html:st};function ut(t){return ft[t.toLowerCase()]}function ht(){return Object.keys(ft)}var Dr="@/components/ui";function Fr(t){let e=t[0]??"",r=t.slice(1),s=".",i=Dr,n=!1,o=!1,l=[];for(let c=0;c<r.length;c++){let a=r[c];if(a==="--path"){if(!r[c+1])throw new Error("bit-form add: --path requires a value");s=r[c+1],c++}else if(a==="--ui-path"){if(!r[c+1])throw new Error("bit-form add: --ui-path requires a value");i=r[c+1],c++}else a==="--overwrite"?n=!0:a==="--yes"||a==="-y"?o=!0:a.startsWith("--")?console.warn(`bit-form add: Unknown flag "${a}" ignored.`):l.push(a)}return{adapter:e,components:l,flags:{path:s,uiPath:i,overwrite:n,yes:o}}}function Ar(t){let e=k.join(t,"components.json");try{return T.accessSync(e,T.constants.R_OK),!0}catch(r){return r?.code==="ENOENT"||console.warn(`bit-form add: Cannot read components.json (${r?.code??r?.message??r})`),!1}}function pt(t){let{adapter:e,components:r,flags:s}=Fr(t);if(!e)throw new Error("bit-form add: missing adapter name. Example: bit-form add shadcn input");let i=ut(e);if(!i)throw new Error(`bit-form add: unknown adapter "${e}". Available: ${ht().join(", ")}`);let n=r.length>0?r:i.components;if(n.length===0)throw new Error("bit-form add: specify at least one component or use no arguments to add all.");let o=process.cwd(),l=k.resolve(o,s.path),c=k.relative(o,l);if(c.startsWith("..")||k.isAbsolute(c))throw new Error(`bit-form add: output directory must be inside the project root (resolved: ${l})`);i.name==="shadcn"&&!Ar(o)&&console.warn("Warning: components.json not found in project root. Make sure shadcn/ui is initialized (e.g. npx shadcn@latest init) or pass --ui-path to match your setup.");try{T.mkdirSync(l,{recursive:!0})}catch(d){let f=d instanceof Error?d.message:String(d);throw new Error(`bit-form add: could not create output directory: ${f}`,{cause:d})}let a={cwd:o,path:l,uiPath:s.uiPath,overwrite:s.overwrite,yes:s.yes};for(let d of n){let{filename:f,contents:h}=i.renderComponent(d,a),p=k.join(l,f);if(!s.overwrite&&T.existsSync(p)){console.log(`Skip ${f} (exists; use --overwrite to replace)`);continue}T.writeFileSync(p,h,"utf-8"),console.log(`Created ${f}`)}}var ze=w(require("fs"),1),Tr=w(require("http"),1),U=w(require("path"),1);function mt(t){return`
696
696
  <!DOCTYPE html>
697
697
  <html lang="pt-BR">
698
698
  <head>
@@ -761,7 +761,7 @@ export function BitFormRadioGroup({
761
761
 
762
762
  initDevTools({
763
763
  mode: "remote",
764
- url: "ws://localhost:${t}",
764
+ url: "ws://localhost:${typeof t=="number"&&Number.isFinite(t)&&t>0&&t<65536?Math.floor(t):3e3}",
765
765
  container: document.body
766
766
  });
767
767
 
@@ -772,13 +772,15 @@ export function BitFormRadioGroup({
772
772
  if (btn && !panel) {
773
773
  btn.click();
774
774
  document.body.classList.add('has-panel');
775
+ observer.disconnect();
775
776
  }
776
777
  });
777
778
 
778
779
  observer.observe(document.body, { childList: true, subtree: true });
779
780
  </script>
780
781
  </body>
781
- </html>`}var ri=w(dr(),1),si=w(Fe(),1),ii=w(Me(),1),ni=w(ge(),1),He=w(yr(),1);function vr(t){return t.protocolVersion===1}function br(t){if(!t||typeof t!="object")return!1;let e=t;return e.type==="PING"&&vr(e)}function Sr(t){if(!t||typeof t!="object")return!1;let e=t;if(e.type!=="HELLO"||!e.payload||!vr(e))return!1;let r=e.payload;return(r.role==="client"||r.role==="server")&&r.protocolVersion===1}var oi=1*1024*1024,ai=100;function Er(t){let e=new He.default({server:t}),r=new Map;return e.on("connection",s=>{r.set(s,{count:0,resetAt:Date.now()+1e3}),s.on("message",i=>{let n=r.get(s);if(!n||(Date.now()>n.resetAt&&(n.count=0,n.resetAt=Date.now()+1e3),++n.count>ai))return;let o=i.toString();if(!(o.length>oi)){try{let a=JSON.parse(o);if(br(a)||Sr(a))return}catch{return}e.clients.forEach(a=>{a!==s&&a.readyState===1&&a.send(o)})}}),s.on("close",()=>{r.delete(s)})}),e}function Tr(t=3e3){let e=wr.default.createServer((r,s)=>{let i=r.url?.split("?")[0]??"";if(i==="/"||i==="/index.html"){s.writeHead(200,{"Content-Type":"text/html; charset=utf-8"}),s.end(mt(t));return}if(i.startsWith("/dist/")){let n=Y.default.resolve(__dirname,"..","..","dist"),o=i.slice(6),a;try{a=decodeURIComponent(o)}catch{s.writeHead(400),s.end("Bad Request");return}let c=Y.default.resolve(n,a),l=Y.default.relative(n,c);if(l.startsWith("..")||Y.default.isAbsolute(l)){s.writeHead(403),s.end("Forbidden");return}try{if(ze.default.existsSync(c)){let d=ze.default.readFileSync(c),f=Y.default.extname(c),h={".js":"application/javascript",".css":"text/css"};s.writeHead(200,{"Content-Type":h[f]||"text/plain"}),s.end(d)}else s.writeHead(404),s.end("Not Found")}catch{s.writeHead(500),s.end("Internal Error")}return}s.writeHead(404),s.end("Not Found")});Er(e),e.listen(t,()=>{console.log(`\u{1F680} BitForm DevServer rodando em http://localhost:${t}`)})}var X=process.argv.slice(2),Nr=X[0];if(Nr==="devtools"){let t=X.indexOf("-p")!==-1?X.indexOf("-p"):X.indexOf("--port"),e=t!==-1?Number(X[t+1]):3e3;Tr(e)}else if(Nr==="add")try{pt(X.slice(1))}catch(t){console.error(t.message),process.exit(1)}else console.log(`
782
+ </html>`}var si=w(dr(),1),ii=w(De(),1),ni=w(Me(),1),oi=w(ge(),1),He=w(yr(),1);function vr(t){return t.protocolVersion===1}function br(t){if(!t||typeof t!="object")return!1;let e=t;return e.type==="PING"&&vr(e)}function Sr(t){if(!t||typeof t!="object")return!1;let e=t;if(e.type!=="HELLO"||!e.payload||!vr(e))return!1;let r=e.payload;return(r.role==="client"||r.role==="server")&&r.protocolVersion===1}var Er=1*1024*1024,ai=100;function wr(t){let e=new He.default({server:t,maxPayload:Er}),r=50,s=0,i=new Map;e.on("connection",o=>{if(s>=r){o.close(1013,"Too many connections");return}s++,i.set(o,{count:0,resetAt:Date.now()+1e3}),o.on("message",l=>{let c=i.get(o);if(!c||(Date.now()>c.resetAt&&(c.count=0,c.resetAt=Date.now()+1e3),++c.count>ai))return;let a=l.toString();if(!(a.length>Er)){try{let d=JSON.parse(a);if(br(d)||Sr(d))return}catch{return}e.clients.forEach(d=>{d!==o&&d.readyState===1&&d.send(a)})}}),o.on("pong",()=>{o.__isAlive=!0}),o.on("close",()=>{s=Math.max(0,s-1),i.delete(o)})});let n=setInterval(()=>{e.clients.forEach(o=>{if(o.__isAlive===!1){o.terminate();return}o.__isAlive=!1,o.ping()})},3e4);return e.on("close",()=>{clearInterval(n),e.clients.forEach(o=>o.terminate())}),e}function Nr(t=3e3){let e=Tr.default.createServer((i,n)=>{let o=i.url?.split("?")[0]??"";if(o==="/"||o==="/index.html"){n.writeHead(200,{"Content-Type":"text/html; charset=utf-8","X-Content-Type-Options":"nosniff","X-Frame-Options":"DENY"}),n.end(mt(t));return}if(o.startsWith("/dist/")){let l=U.default.resolve(__dirname,"..","..","dist"),c=o.slice(6),a;try{a=decodeURIComponent(c)}catch{n.writeHead(400),n.end("Bad Request");return}let d=U.default.resolve(l,a),f=U.default.relative(l,d);if(f.startsWith("..")||U.default.isAbsolute(f)){n.writeHead(403),n.end("Forbidden");return}let h;try{h=ze.default.realpathSync(d)}catch{n.writeHead(404),n.end("Not Found");return}if(U.default.relative(l,h).startsWith("..")){n.writeHead(403),n.end("Forbidden");return}try{let p=ze.default.readFileSync(h),_=U.default.extname(h),u={".js":"application/javascript",".mjs":"application/javascript",".css":"text/css",".json":"application/json",".map":"application/json",".svg":"image/svg+xml",".html":"text/html"};n.writeHead(200,{"Content-Type":u[_]||"text/plain"}),n.end(p)}catch{n.writeHead(500),n.end("Internal Error")}return}n.writeHead(404),n.end("Not Found")});e.on("error",i=>{i.code==="EADDRINUSE"?console.error(`bit-form: Port ${t} is already in use.`):console.error("bit-form: Server error:",i.message),process.exit(1)});let r=wr(e);function s(){console.log(`
783
+ [bit-form] Shutting down...`),r.close(),e.close(()=>process.exit(0)),setTimeout(()=>process.exit(1),5e3)}process.on("SIGINT",s),process.on("SIGTERM",s),e.listen(t,()=>{console.log(`\u{1F680} BitForm DevServer rodando em http://localhost:${t}`)})}var X=process.argv.slice(2),kr=X[0];if(kr==="devtools"){let t=X.indexOf("-p")!==-1?X.indexOf("-p"):X.indexOf("--port"),e=t!==-1?X[t+1]:void 0,r=e?Number(e):3e3;e!==void 0&&(isNaN(r)||r<1||r>65535)&&(console.error(`bit-form: invalid port "${e}". Must be a number between 1 and 65535.`),process.exit(1)),Nr(r)}else if(kr==="add")try{pt(X.slice(1))}catch(t){console.error(t.message),process.exit(1)}else console.log(`
782
784
  \u{1F6E0} Bit-Form CLI
783
785
 
784
786
  Uso: