@vef-framework-react/core 2.2.2 → 2.4.0

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 (142) hide show
  1. package/dist/cjs/api/client.cjs +1 -1
  2. package/dist/cjs/api/constants.cjs +1 -1
  3. package/dist/cjs/api/helpers.cjs +1 -1
  4. package/dist/cjs/api/index.cjs +1 -1
  5. package/dist/cjs/auth/helpers.cjs +1 -1
  6. package/dist/cjs/auth/index.cjs +1 -1
  7. package/dist/cjs/context/api-client.cjs +1 -1
  8. package/dist/cjs/context/app.cjs +1 -1
  9. package/dist/cjs/context/context-selector.cjs +1 -1
  10. package/dist/cjs/context/disabled.cjs +1 -1
  11. package/dist/cjs/context/index.cjs +1 -1
  12. package/dist/cjs/dnd/index.cjs +1 -1
  13. package/dist/cjs/http/client.cjs +1 -1
  14. package/dist/cjs/http/helpers.cjs +1 -1
  15. package/dist/cjs/http/index.cjs +1 -1
  16. package/dist/cjs/immer/index.cjs +1 -1
  17. package/dist/cjs/index.cjs +1 -1
  18. package/dist/cjs/motion/features.cjs +1 -1
  19. package/dist/cjs/motion/index.cjs +1 -1
  20. package/dist/cjs/motion/motion-provider.cjs +1 -1
  21. package/dist/cjs/query/helpers.cjs +1 -1
  22. package/dist/cjs/query/hooks.cjs +1 -1
  23. package/dist/cjs/query/index.cjs +1 -1
  24. package/dist/cjs/sse/client.cjs +1 -1
  25. package/dist/cjs/sse/helpers.cjs +1 -1
  26. package/dist/cjs/sse/index.cjs +1 -1
  27. package/dist/cjs/sse/stream-machine.cjs +1 -0
  28. package/dist/cjs/state/index.cjs +1 -1
  29. package/dist/cjs/state-machine/index.cjs +1 -1
  30. package/dist/cjs/storage/index.cjs +1 -1
  31. package/dist/cjs/storage/protocol.cjs +1 -1
  32. package/dist/cjs/storage/resumable/index.cjs +1 -1
  33. package/dist/cjs/storage/resumable/plan.cjs +1 -1
  34. package/dist/cjs/storage/uploader-machine.cjs +1 -0
  35. package/dist/cjs/storage/uploader.cjs +1 -1
  36. package/dist/cjs/store/bound.cjs +1 -1
  37. package/dist/cjs/store/index.cjs +1 -1
  38. package/dist/cjs/store/unbound.cjs +1 -1
  39. package/dist/cjs/store/use-deep.cjs +1 -1
  40. package/dist/es/api/client.js +1 -1
  41. package/dist/es/api/constants.js +1 -1
  42. package/dist/es/api/helpers.js +1 -1
  43. package/dist/es/api/index.js +1 -1
  44. package/dist/es/auth/helpers.js +1 -1
  45. package/dist/es/auth/index.js +1 -1
  46. package/dist/es/context/api-client.js +1 -1
  47. package/dist/es/context/app.js +1 -1
  48. package/dist/es/context/context-selector.js +1 -1
  49. package/dist/es/context/disabled.js +1 -1
  50. package/dist/es/context/index.js +1 -1
  51. package/dist/es/dnd/index.js +11 -10
  52. package/dist/es/http/client.js +1 -1
  53. package/dist/es/http/constants.js +1 -1
  54. package/dist/es/http/errors.js +1 -1
  55. package/dist/es/http/helpers.js +1 -1
  56. package/dist/es/http/index.js +1 -1
  57. package/dist/es/immer/index.js +1 -1
  58. package/dist/es/index.js +22 -22
  59. package/dist/es/motion/features.js +1 -1
  60. package/dist/es/motion/index.js +1 -1
  61. package/dist/es/motion/motion-provider.js +1 -1
  62. package/dist/es/query/constants.js +1 -1
  63. package/dist/es/query/helpers.js +1 -1
  64. package/dist/es/query/hooks.js +1 -1
  65. package/dist/es/query/index.js +1 -1
  66. package/dist/es/sse/client.js +61 -55
  67. package/dist/es/sse/helpers.js +1 -1
  68. package/dist/es/sse/index.js +1 -1
  69. package/dist/es/sse/stream-machine.js +102 -0
  70. package/dist/es/state/index.js +1 -1
  71. package/dist/es/state-machine/index.js +9 -9
  72. package/dist/es/storage/errors.js +1 -1
  73. package/dist/es/storage/index.js +1 -1
  74. package/dist/es/storage/protocol.js +1 -1
  75. package/dist/es/storage/resumable/fingerprint.js +1 -1
  76. package/dist/es/storage/resumable/index.js +1 -1
  77. package/dist/es/storage/resumable/persistence.js +1 -1
  78. package/dist/es/storage/resumable/plan.js +1 -1
  79. package/dist/es/storage/types.js +1 -1
  80. package/dist/es/storage/uploader-machine.js +88 -0
  81. package/dist/es/storage/uploader.js +135 -89
  82. package/dist/es/store/bound.js +1 -1
  83. package/dist/es/store/index.js +1 -1
  84. package/dist/es/store/unbound.js +1 -1
  85. package/dist/es/store/use-deep.js +1 -1
  86. package/dist/types/{auth → src/auth}/helpers.d.ts +3 -3
  87. package/dist/types/{dnd → src/dnd}/index.d.ts +3 -2
  88. package/dist/types/{index.d.ts → src/index.d.ts} +1 -1
  89. package/dist/types/{query → src/query}/hooks.d.ts +1 -1
  90. package/dist/types/src/sse/client.d.ts +24 -0
  91. package/dist/types/src/sse/stream-machine.d.ts +104 -0
  92. package/dist/types/src/storage/uploader-machine.d.ts +108 -0
  93. package/dist/types/{storage → src/storage}/uploader.d.ts +8 -2
  94. package/package.json +8 -8
  95. package/dist/types/sse/client.d.ts +0 -16
  96. /package/dist/types/{api → src/api}/client.d.ts +0 -0
  97. /package/dist/types/{api → src/api}/constants.d.ts +0 -0
  98. /package/dist/types/{api → src/api}/helpers.d.ts +0 -0
  99. /package/dist/types/{api → src/api}/index.d.ts +0 -0
  100. /package/dist/types/{api → src/api}/types.d.ts +0 -0
  101. /package/dist/types/{auth → src/auth}/index.d.ts +0 -0
  102. /package/dist/types/{auth → src/auth}/types.d.ts +0 -0
  103. /package/dist/types/{common → src/common}/index.d.ts +0 -0
  104. /package/dist/types/{common → src/common}/types.d.ts +0 -0
  105. /package/dist/types/{context → src/context}/api-client.d.ts +0 -0
  106. /package/dist/types/{context → src/context}/app.d.ts +0 -0
  107. /package/dist/types/{context → src/context}/context-selector.d.ts +0 -0
  108. /package/dist/types/{context → src/context}/disabled.d.ts +0 -0
  109. /package/dist/types/{context → src/context}/index.d.ts +0 -0
  110. /package/dist/types/{context → src/context}/types.d.ts +0 -0
  111. /package/dist/types/{http → src/http}/client.d.ts +0 -0
  112. /package/dist/types/{http → src/http}/constants.d.ts +0 -0
  113. /package/dist/types/{http → src/http}/errors.d.ts +0 -0
  114. /package/dist/types/{http → src/http}/helpers.d.ts +0 -0
  115. /package/dist/types/{http → src/http}/index.d.ts +0 -0
  116. /package/dist/types/{http → src/http}/types.d.ts +0 -0
  117. /package/dist/types/{immer → src/immer}/index.d.ts +0 -0
  118. /package/dist/types/{motion → src/motion}/features.d.ts +0 -0
  119. /package/dist/types/{motion → src/motion}/index.d.ts +0 -0
  120. /package/dist/types/{motion → src/motion}/motion-provider.d.ts +0 -0
  121. /package/dist/types/{query → src/query}/constants.d.ts +0 -0
  122. /package/dist/types/{query → src/query}/helpers.d.ts +0 -0
  123. /package/dist/types/{query → src/query}/index.d.ts +0 -0
  124. /package/dist/types/{query → src/query}/types.d.ts +0 -0
  125. /package/dist/types/{sse → src/sse}/helpers.d.ts +0 -0
  126. /package/dist/types/{sse → src/sse}/index.d.ts +0 -0
  127. /package/dist/types/{sse → src/sse}/types.d.ts +0 -0
  128. /package/dist/types/{state → src/state}/index.d.ts +0 -0
  129. /package/dist/types/{state-machine → src/state-machine}/index.d.ts +0 -0
  130. /package/dist/types/{storage → src/storage}/errors.d.ts +0 -0
  131. /package/dist/types/{storage → src/storage}/index.d.ts +0 -0
  132. /package/dist/types/{storage → src/storage}/protocol.d.ts +0 -0
  133. /package/dist/types/{storage → src/storage}/resumable/fingerprint.d.ts +0 -0
  134. /package/dist/types/{storage → src/storage}/resumable/index.d.ts +0 -0
  135. /package/dist/types/{storage → src/storage}/resumable/persistence.d.ts +0 -0
  136. /package/dist/types/{storage → src/storage}/resumable/plan.d.ts +0 -0
  137. /package/dist/types/{storage → src/storage}/types.d.ts +0 -0
  138. /package/dist/types/{store → src/store}/bound.d.ts +0 -0
  139. /package/dist/types/{store → src/store}/index.d.ts +0 -0
  140. /package/dist/types/{store → src/store}/types.d.ts +0 -0
  141. /package/dist/types/{store → src/store}/unbound.d.ts +0 -0
  142. /package/dist/types/{store → src/store}/use-deep.d.ts +0 -0
@@ -1 +1 @@
1
- require(`../_internal/_rolldown/runtime.cjs`);const e=require(`../http/helpers.cjs`),t=require(`../query/helpers.cjs`),n=require(`./constants.cjs`);let r=require(`@vef-framework-react/shared`);function i(e,t){return Object.defineProperty(e,`key`,{value:t,configurable:!1,writable:!1,enumerable:!1}),e}var a=class{#e;#t;#n;get[n.QUERY_CLIENT](){return this.#t}get[n.HTTP_CLIENT](){return this.#e}constructor(n){let{http:r,query:i}=n;this.#t=t.createQueryClient(i),this.#e=this.createProxiedHttpClient(e.createHttpClient(r))}createProxiedHttpClient(e){let t=new Map;return new Proxy(e,{get:(e,i,a)=>{let o=Reflect.get(e,i,a);if(!(0,r.isFunction)(o))return o;if(!t.has(i)){let r=n.PROXIED_METHODS.has(i)?(t,n)=>o.apply(e,[t,{...n,signal:this.#n}]):(...t)=>o.apply(e,t);t.set(i,r)}return t.get(i)}})}createQueryFn(e,t){let n=t(this.#e);return i(e=>{let{queryKey:t,signal:r,pageParam:i,meta:a}=e,[,o]=t;try{return this.#n=r,n(o,i,a)}finally{this.#n=void 0}},e)}createMutationFn(e,t){let n=t(this.#e);return i(e=>n(e),e)}fetchQuery(e){return this.#t.fetchQuery(e)}prefetchQuery(e){return this.#t.prefetchQuery(e)}executeMutation({mutationFn:e,params:t,...n}){return this.#t.getMutationCache().build(this.#t,{mutationKey:[e.key],mutationFn:e,...n}).execute(t)}};exports.ApiClient=a;
1
+ const e=require("../http/helpers.cjs"),t=require("../query/helpers.cjs"),n=require("./constants.cjs");let r=require("@vef-framework-react/shared");function i(e,t){return Object.defineProperty(e,"key",{value:t,configurable:!1,writable:!1,enumerable:!1}),e}var a=class{#e;#t;#n;get[n.QUERY_CLIENT](){return this.#t}get[n.HTTP_CLIENT](){return this.#e}constructor(n){let{http:r,query:i}=n;this.#t=t.createQueryClient(i),this.#e=this.createProxiedHttpClient(e.createHttpClient(r))}createProxiedHttpClient(e){let t=new Map;return new Proxy(e,{get:(e,i,a)=>{let o=Reflect.get(e,i,a);if(!(0,r.isFunction)(o))return o;if(!t.has(i)){let r=n.PROXIED_METHODS.has(i)?(t,n)=>o.apply(e,[t,{...n,signal:this.#n}]):(...t)=>o.apply(e,t);t.set(i,r)}return t.get(i)}})}createQueryFn(e,t){let n=t(this.#e);return i(e=>{let{queryKey:t,signal:r,pageParam:i,meta:a}=e,[,o]=t;try{return this.#n=r,n(o,i,a)}finally{this.#n=void 0}},e)}createMutationFn(e,t){let n=t(this.#e);return i(e=>n(e),e)}fetchQuery(e){return this.#t.fetchQuery(e)}prefetchQuery(e){return this.#t.prefetchQuery(e)}executeMutation({mutationFn:e,params:t,...n}){return this.#t.getMutationCache().build(this.#t,{mutationKey:[e.key],mutationFn:e,...n}).execute(t)}};exports.ApiClient=a;
@@ -1 +1 @@
1
- const e=require(`../http/constants.cjs`),t=require(`../query/constants.cjs`);var n=new Set([`get`,`post`,`put`,`delete`,`upload`,`download`]),r=Symbol.for(t.QUERY_CLIENT_KEY),i=Symbol.for(e.HTTP_CLIENT_KEY);exports.HTTP_CLIENT=i,exports.PROXIED_METHODS=n,exports.QUERY_CLIENT=r;
1
+ const e=require("../http/constants.cjs"),t=require("../query/constants.cjs");var n=new Set([`get`,`post`,`put`,`delete`,`upload`,`download`]),r=Symbol.for(t.QUERY_CLIENT_KEY),i=Symbol.for(e.HTTP_CLIENT_KEY);exports.HTTP_CLIENT=i,exports.PROXIED_METHODS=n,exports.QUERY_CLIENT=r;
@@ -1 +1 @@
1
- const e=require(`./client.cjs`);var t=`v1`;function n(t){return new e.ApiClient(t)}function r(e,n,r,i,a){return typeof r==`string`?{resource:e,action:n,version:r,params:i,meta:a}:{resource:e,action:n,version:t,params:r,meta:i}}exports.createApiClient=n,exports.createApiRequest=r;
1
+ const e=require("./client.cjs");var t=`v1`;function n(t){return new e.ApiClient(t)}function r(e,n,r,i,a){return typeof r==`string`?{resource:e,action:n,version:r,params:i,meta:a}:{resource:e,action:n,version:t,params:r,meta:i}}exports.createApiClient=n,exports.createApiRequest=r;
@@ -1 +1 @@
1
- require(`./constants.cjs`),require(`./client.cjs`),require(`./helpers.cjs`);
1
+ require("./constants.cjs"),require("./client.cjs"),require("./helpers.cjs");
@@ -1 +1 @@
1
- require(`../_internal/_rolldown/runtime.cjs`);let e=require(`@vef-framework-react/shared`);function t(t,n,r=`any`){if((0,e.isNullish)(n))return!0;let i=(0,e.isString)(n)?[n]:n;return r===`any`?i.some(e=>t(e)):i.every(e=>t(e))}exports.checkPermission=t;
1
+ let e=require("@vef-framework-react/shared");function t(t,n,r=`any`){if((0,e.isNullish)(n))return!0;let i=(0,e.isString)(n)?[n]:n;return r===`any`?i.some(e=>t(e)):i.every(e=>t(e))}exports.checkPermission=t;
@@ -1 +1 @@
1
- require(`./helpers.cjs`);
1
+ require("./helpers.cjs");
@@ -1 +1 @@
1
- require(`../_internal/_rolldown/runtime.cjs`);const e=require(`../api/constants.cjs`);let t=require(`@tanstack/react-query`),n=require(`react`),r=require(`@emotion/react/jsx-runtime`);var i=(0,n.createContext)(null);function a({value:n,children:a}){return(0,r.jsx)(i,{value:n,children:(0,r.jsx)(t.QueryClientProvider,{client:n[e.QUERY_CLIENT],children:a})})}function o(){let e=(0,n.use)(i);if(!e)throw Error(`useApiClient must be used within an ApiClientProvider.`);return e}exports.ApiClientProvider=a,exports.useApiClient=o;
1
+ const e=require("../api/constants.cjs");let t=require("@tanstack/react-query"),n=require("react"),r=require("@emotion/react/jsx-runtime");var i=(0,n.createContext)(null);function a({value:n,children:a}){return(0,r.jsx)(i,{value:n,children:(0,r.jsx)(t.QueryClientProvider,{client:n[e.QUERY_CLIENT],children:a})})}function o(){let e=(0,n.use)(i);if(!e)throw Error(`useApiClient must be used within an ApiClientProvider.`);return e}exports.ApiClientProvider=a,exports.useApiClient=o;
@@ -1 +1 @@
1
- require(`../_internal/_rolldown/runtime.cjs`);let e=require(`react`);var t=(0,e.createContext)({}),n=t.Provider;function r(){return(0,e.use)(t)}exports.AppContextProvider=n,exports.useAppContext=r;
1
+ let e=require("react");var t=(0,e.createContext)({}),n=t.Provider;function r(){return(0,e.use)(t)}exports.AppContextProvider=n,exports.useAppContext=r;
@@ -1 +1 @@
1
- require(`../_internal/_rolldown/runtime.cjs`);let e=require(`@vef-framework-react/shared`),t=require(`react`),n=require(`@emotion/react/jsx-runtime`);function r(r){let a=(0,t.createContext)(i(r));function o({value:e,children:r}){let[o]=(0,t.useState)(()=>i(e));return(0,t.useEffect)(()=>{Object.is(o.value,e)||(o.value=e,o.notify())}),(0,n.jsx)(a,{value:o,children:r})}o.displayName=`SelectorContextProvider`;function s(n){let r=(0,t.use)(a),i=()=>(0,e.isFunction)(n)?n(r.value):r.value;return(0,t.useSyncExternalStore)(r.subscribe,i,i)}return{Provider:o,useContext:s}}function i(e){let t=new Set;return{value:e,subscribe(e){return t.add(e),()=>t.delete(e)},notify(){for(let e of t)e()}}}exports.createContextWithSelector=r;
1
+ let e=require("@vef-framework-react/shared"),t=require("react"),n=require("@emotion/react/jsx-runtime");function r(r){let a=(0,t.createContext)(i(r));function o({value:e,children:r}){let[o]=(0,t.useState)(()=>i(e));return(0,t.useEffect)(()=>{Object.is(o.value,e)||(o.value=e,o.notify())}),(0,n.jsx)(a,{value:o,children:r})}o.displayName=`SelectorContextProvider`;function s(n){let r=(0,t.use)(a),i=()=>(0,e.isFunction)(n)?n(r.value):r.value;return(0,t.useSyncExternalStore)(r.subscribe,i,i)}return{Provider:o,useContext:s}}function i(e){let t=new Set;return{value:e,subscribe(e){return t.add(e),()=>t.delete(e)},notify(){for(let e of t)e()}}}exports.createContextWithSelector=r;
@@ -1 +1 @@
1
- require(`../_internal/_rolldown/runtime.cjs`);let e=require(`react`);var t=(0,e.createContext)(!1);function n(){return(0,e.use)(t)}var r=t.Provider;exports.DisabledProvider=r,exports.useDisabled=n;
1
+ let e=require("react");var t=(0,e.createContext)(!1);function n(){return(0,e.use)(t)}var r=t.Provider;exports.DisabledProvider=r,exports.useDisabled=n;
@@ -1 +1 @@
1
- require(`./api-client.cjs`),require(`./app.cjs`),require(`./context-selector.cjs`),require(`./disabled.cjs`);
1
+ require("./api-client.cjs"),require("./app.cjs"),require("./context-selector.cjs"),require("./disabled.cjs");
@@ -1 +1 @@
1
- require(`../_internal/_rolldown/runtime.cjs`),require(`@dnd-kit/abstract/modifiers`),require(`@dnd-kit/collision`),require(`@dnd-kit/dom`),require(`@dnd-kit/dom/modifiers`),require(`@dnd-kit/helpers`),require(`@dnd-kit/react`),require(`@dnd-kit/react/sortable`),require(`@hello-pangea/dnd`);
1
+ require("@dnd-kit/abstract"),require("@dnd-kit/abstract/modifiers"),require("@dnd-kit/collision"),require("@dnd-kit/dom"),require("@dnd-kit/dom/modifiers"),require("@dnd-kit/helpers"),require("@dnd-kit/react"),require("@dnd-kit/react/sortable"),require("@hello-pangea/dnd");
@@ -1 +1 @@
1
- const e=require(`../_internal/_rolldown/runtime.cjs`),t=require(`./constants.cjs`),n=require(`./errors.cjs`);let r=require(`@vef-framework-react/shared`),i=require(`axios`);i=e.__toESM(i,1);var a=class{#e;#t;#n=!1;#r=[];constructor(e){this.#t=e;let{baseUrl:n,timeout:a=t.DEFAULT_TIMEOUT}=e;this.#e=i.default.create({baseURL:n,allowAbsoluteUrls:!0,timeout:a,headers:{"Content-Type":`application/json`},paramsSerializer:e=>(0,r.encodeQueryString)(e,{arrayFormat:`repeat`,skipNulls:!0,charset:`utf-8`}),responseType:`json`,responseEncoding:`utf-8`,validateStatus:e=>e>=200&&e<300,withCredentials:!1,timeoutErrorMessage:`请求超时`}),this.initInterceptors()}initInterceptors(){this.#e.interceptors.request.use(this.handleRequest.bind(this),this.handleRequestError.bind(this)),this.#e.interceptors.response.use(this.handleResponse.bind(this),this.handleResponseError.bind(this))}matchesCode(e,t){return(0,r.isArray)(t)?t.includes(e):e===t}async handleRequest(e){let n=e.headers[t.SKIP_AUTH_HEADER]===`1`;if(this.#n&&!n&&!await new Promise(e=>{this.#r.push(e)}))throw Error(`登录已过期, 请重新登录`);return n?delete e.headers[t.SKIP_AUTH_HEADER]:await this.injectAccessToken(e),this.replacePathParams(e),e}handleRequestError(e){let{showErrorMessage:t}=this.#t,n=`发起请求失败: ${(e instanceof Error?e.message:String(e))||`未知错误`}`;return t?t(n):console.error(`[HttpClient] ${n}`),Promise.reject(e)}handleResponse(e){let{showWarningMessage:t,okCode:r=0}=this.#t,{code:i,message:a,data:o}=e.data;if(this.matchesCode(i,r))return e;throw t?t(a):console.warn(`[HttpClient] [${e.config.method}: ${e.config.url}] 返回错误: ${a}`),new n.BusinessError(i,a,o)}async handleResponseError(e){if(e instanceof i.CanceledError){if(e.response){let{method:t,url:n}=e.response.config;console.warn(`[HttpClient] [${t}: ${n}] 被取消`)}return}let{response:t}=e;if(!t)throw this.logError(`请求失败: ${e.message||`未知错误`}`),e;let{status:n,config:r,data:a}=t,{code:o,message:s}=a,c=`[${r.method}: ${r.url}]`;switch(n){case 400:this.logWarning(s,`${c} 参数错误: ${s}`);break;case 401:await this.handleUnauthorized(e,o,c);break;case 403:this.#t.showWarningMessage?.(`${s}, 请联系管理员为您开通`),console.warn(`[HttpClient] ${c} 访问被拒绝: ${s}`),await this.#t.onAccessDenied?.();break;default:this.logError(s,`${c} 返回错误: ${s}`)}throw e}async handleUnauthorized(e,t,n){let{tokenExpiredCode:r=[]}=this.#t;if(!this.matchesCode(t,r)){await this.#t.onUnauthenticated?.();return}if(this.#n)throw e;if(await this.tryRefreshToken())return this.retryRequest(e.response.config);this.logInfo(`登录已过期, 请重新登录`),await this.#t.onUnauthenticated?.()}logInfo(e){this.#t.showInfoMessage?this.#t.showInfoMessage(e):console.info(`[HttpClient] ${e}`)}logWarning(e,t){this.#t.showWarningMessage?this.#t.showWarningMessage(e):console.warn(`[HttpClient] ${t??e}`)}logError(e,t){this.#t.showErrorMessage?this.#t.showErrorMessage(e):console.error(`[HttpClient] ${t??e}`)}async injectAccessToken(e){let{getAuthTokens:t}=this.#t;if(!t)return;let n=await t();n?.accessToken&&(e.headers.Authorization=`Bearer ${n.accessToken}`)}replacePathParams(e){let{url:n,params:i={}}=e;!n||!t.PATH_PARAM_REGEX.test(n)||(t.PATH_PARAM_REGEX.lastIndex=0,e.url=n.replaceAll(t.PATH_PARAM_REGEX,(e,t)=>{if(!Object.hasOwn(i,t))return console.warn(`[HttpClient] 接口: ${n} 路径参数 ${t} 未在查询参数中定义, 请检查`),`unknown`;let a=i[t];return(0,r.isNullish)(a)?(console.warn(`[HttpClient] 接口: ${n} 路径参数 ${t} 在查询参数中为空, 请检查`),`unknown`):String(a)}))}async ensureTokenRefreshed(e=!0){if(this.#n)return new Promise(e=>{this.#r.push(e)});let t=await this.tryRefreshToken();return!t&&e&&await this.#t.onUnauthenticated?.(),t}async tryRefreshToken(){let{getAuthTokens:e,refreshToken:t,setAuthTokens:n}=this.#t;if(!e||!t||!n)return!1;this.#n=!0;let r=!1;try{let i=await e();if(!i)return!1;let a=await t(i);return await n(Object.freeze(a)),r=!0,!0}catch(e){return console.error(`[HttpClient] 刷新令牌失败: ${e}`),!1}finally{this.#n=!1;for(let e of this.#r)e(r);this.#r=[]}}async retryRequest(e){let t={...e};return await this.injectAccessToken(t),this.#e(t)}async get(e,t){return(await this.#e.get(e,t)).data}async post(e,t){let{data:n,...r}=t??{};return(await this.#e.post(e,n,r)).data}async put(e,t){let{data:n,...r}=t??{};return(await this.#e.put(e,n,r)).data}async delete(e,t){return(await this.#e.delete(e,t)).data}async upload(e,t){let{data:n,onProgress:i,...a}=t??{};return(await this.#e.postForm(e,n,{...a,onUploadProgress:(0,r.isFunction)(i)?i:void 0})).data}async download(e,n){let{method:i=`get`,data:a,onProgress:o,filename:s,...c}=n??{},l={...c,responseType:`blob`,responseEncoding:`binary`,onDownloadProgress:(0,r.isFunction)(o)?o:void 0},{data:u,headers:d}=i===`post`?await this.#e.post(e,a,l):await this.#e.get(e,l);try{let e=JSON.parse(await u.text());throw Error(e.message)}catch{}let f=d[`content-disposition`];if(!(0,r.isString)(f))return;let p=t.CONTENT_DISPOSITION_FILENAME_REGEX.exec(f);if(!p?.groups?.name)return;let m=decodeURIComponent(p.groups.name),h=URL.createObjectURL(u);try{let e=document.createElement(`a`);e.href=h,e.download=(0,r.isFunction)(s)?s(m):s??m,e.click()}finally{URL.revokeObjectURL(h)}}};exports.HttpClient=a;
1
+ const e=require("../_internal/_rolldown/runtime.cjs"),t=require("./constants.cjs"),n=require("./errors.cjs");let r=require("@vef-framework-react/shared"),i=require("axios");i=e.__toESM(i,1);var a=class{#e;#t;#n=!1;#r=[];constructor(e){this.#t=e;let{baseUrl:n,timeout:a=t.DEFAULT_TIMEOUT}=e;this.#e=i.default.create({baseURL:n,allowAbsoluteUrls:!0,timeout:a,headers:{"Content-Type":`application/json`},paramsSerializer:e=>(0,r.encodeQueryString)(e,{arrayFormat:`repeat`,skipNulls:!0,charset:`utf-8`}),responseType:`json`,responseEncoding:`utf-8`,validateStatus:e=>e>=200&&e<300,withCredentials:!1,timeoutErrorMessage:`请求超时`}),this.initInterceptors()}initInterceptors(){this.#e.interceptors.request.use(this.handleRequest.bind(this),this.handleRequestError.bind(this)),this.#e.interceptors.response.use(this.handleResponse.bind(this),this.handleResponseError.bind(this))}matchesCode(e,t){return(0,r.isArray)(t)?t.includes(e):e===t}async handleRequest(e){let n=e.headers[t.SKIP_AUTH_HEADER]===`1`;if(this.#n&&!n&&!await new Promise(e=>{this.#r.push(e)}))throw Error(`登录已过期, 请重新登录`);return n?delete e.headers[t.SKIP_AUTH_HEADER]:await this.injectAccessToken(e),this.replacePathParams(e),e}handleRequestError(e){let{showErrorMessage:t}=this.#t,n=`发起请求失败: ${(e instanceof Error?e.message:String(e))||`未知错误`}`;return t?t(n):console.error(`[HttpClient] ${n}`),Promise.reject(e)}handleResponse(e){let{showWarningMessage:t,okCode:r=0}=this.#t,{code:i,message:a,data:o}=e.data;if(this.matchesCode(i,r))return e;throw t?t(a):console.warn(`[HttpClient] [${e.config.method}: ${e.config.url}] 返回错误: ${a}`),new n.BusinessError(i,a,o)}async handleResponseError(e){if(e instanceof i.CanceledError){if(e.response){let{method:t,url:n}=e.response.config;console.warn(`[HttpClient] [${t}: ${n}] 被取消`)}return}let{response:t}=e;if(!t)throw this.logError(`请求失败: ${e.message||`未知错误`}`),e;let{status:n,config:r,data:a}=t,{code:o,message:s}=a,c=`[${r.method}: ${r.url}]`;switch(n){case 400:this.logWarning(s,`${c} 参数错误: ${s}`);break;case 401:await this.handleUnauthorized(e,o,c);break;case 403:this.#t.showWarningMessage?.(`${s}, 请联系管理员为您开通`),console.warn(`[HttpClient] ${c} 访问被拒绝: ${s}`),await this.#t.onAccessDenied?.();break;default:this.logError(s,`${c} 返回错误: ${s}`)}throw e}async handleUnauthorized(e,t,n){let{tokenExpiredCode:r=[]}=this.#t;if(!this.matchesCode(t,r)){await this.#t.onUnauthenticated?.();return}if(this.#n)throw e;if(await this.tryRefreshToken())return this.retryRequest(e.response.config);this.logInfo(`登录已过期, 请重新登录`),await this.#t.onUnauthenticated?.()}logInfo(e){this.#t.showInfoMessage?this.#t.showInfoMessage(e):console.info(`[HttpClient] ${e}`)}logWarning(e,t){this.#t.showWarningMessage?this.#t.showWarningMessage(e):console.warn(`[HttpClient] ${t??e}`)}logError(e,t){this.#t.showErrorMessage?this.#t.showErrorMessage(e):console.error(`[HttpClient] ${t??e}`)}async injectAccessToken(e){let{getAuthTokens:t}=this.#t;if(!t)return;let n=await t();n?.accessToken&&(e.headers.Authorization=`Bearer ${n.accessToken}`)}replacePathParams(e){let{url:n,params:i={}}=e;!n||!t.PATH_PARAM_REGEX.test(n)||(t.PATH_PARAM_REGEX.lastIndex=0,e.url=n.replaceAll(t.PATH_PARAM_REGEX,(e,t)=>{if(!Object.hasOwn(i,t))return console.warn(`[HttpClient] 接口: ${n} 路径参数 ${t} 未在查询参数中定义, 请检查`),`unknown`;let a=i[t];return(0,r.isNullish)(a)?(console.warn(`[HttpClient] 接口: ${n} 路径参数 ${t} 在查询参数中为空, 请检查`),`unknown`):String(a)}))}async ensureTokenRefreshed(e=!0){if(this.#n)return new Promise(e=>{this.#r.push(e)});let t=await this.tryRefreshToken();return!t&&e&&await this.#t.onUnauthenticated?.(),t}async tryRefreshToken(){let{getAuthTokens:e,refreshToken:t,setAuthTokens:n}=this.#t;if(!e||!t||!n)return!1;this.#n=!0;let r=!1;try{let i=await e();if(!i)return!1;let a=await t(i);return await n(Object.freeze(a)),r=!0,!0}catch(e){return console.error(`[HttpClient] 刷新令牌失败: ${e}`),!1}finally{this.#n=!1;for(let e of this.#r)e(r);this.#r=[]}}async retryRequest(e){let t={...e};return await this.injectAccessToken(t),this.#e(t)}async get(e,t){return(await this.#e.get(e,t)).data}async post(e,t){let{data:n,...r}=t??{};return(await this.#e.post(e,n,r)).data}async put(e,t){let{data:n,...r}=t??{};return(await this.#e.put(e,n,r)).data}async delete(e,t){return(await this.#e.delete(e,t)).data}async upload(e,t){let{data:n,onProgress:i,...a}=t??{};return(await this.#e.postForm(e,n,{...a,onUploadProgress:(0,r.isFunction)(i)?i:void 0})).data}async download(e,n){let{method:i=`get`,data:a,onProgress:o,filename:s,...c}=n??{},l={...c,responseType:`blob`,responseEncoding:`binary`,onDownloadProgress:(0,r.isFunction)(o)?o:void 0},{data:u,headers:d}=i===`post`?await this.#e.post(e,a,l):await this.#e.get(e,l);try{let e=JSON.parse(await u.text());throw Error(e.message)}catch{}let f=d[`content-disposition`];if(!(0,r.isString)(f))return;let p=t.CONTENT_DISPOSITION_FILENAME_REGEX.exec(f);if(!p?.groups?.name)return;let m=decodeURIComponent(p.groups.name),h=URL.createObjectURL(u);try{let e=document.createElement(`a`);e.href=h,e.download=(0,r.isFunction)(s)?s(m):s??m,e.click()}finally{URL.revokeObjectURL(h)}}};exports.HttpClient=a;
@@ -1 +1 @@
1
- require(`./errors.cjs`);const e=require(`./client.cjs`);function t(t){return Object.freeze(new e.HttpClient(t))}exports.createHttpClient=t;
1
+ require("./errors.cjs");const e=require("./client.cjs");function t(t){return Object.freeze(new e.HttpClient(t))}exports.createHttpClient=t;
@@ -1 +1 @@
1
- require(`./constants.cjs`),require(`./errors.cjs`),require(`./client.cjs`),require(`./helpers.cjs`);
1
+ require("./constants.cjs"),require("./errors.cjs"),require("./client.cjs"),require("./helpers.cjs");
@@ -1 +1 @@
1
- require(`../_internal/_rolldown/runtime.cjs`);let e=require(`immer`);require(`use-immer`),(0,e.enableMapSet)(),(0,e.enablePatches)(),(0,e.setAutoFreeze)(!1);
1
+ let e=require("immer");require("use-immer"),(0,e.enableMapSet)(),(0,e.enablePatches)(),(0,e.setAutoFreeze)(!1);
@@ -1 +1 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`}),require(`./_internal/_rolldown/runtime.cjs`);const e=require(`./http/constants.cjs`),t=require(`./query/hooks.cjs`),n=require(`./api/constants.cjs`),r=require(`./api/client.cjs`),i=require(`./api/helpers.cjs`),a=require(`./auth/helpers.cjs`),o=require(`./context/api-client.cjs`),s=require(`./context/app.cjs`),c=require(`./context/context-selector.cjs`),l=require(`./context/disabled.cjs`),u=require(`./motion/motion-provider.cjs`),d=require(`./sse/client.cjs`),f=require(`./sse/helpers.cjs`),p=require(`./state-machine/index.cjs`),m=require(`./storage/errors.cjs`),h=require(`./storage/protocol.cjs`),g=require(`./storage/resumable/fingerprint.cjs`),_=require(`./storage/resumable/persistence.cjs`),v=require(`./storage/resumable/plan.cjs`),y=require(`./storage/types.cjs`),b=require(`./storage/uploader.cjs`),x=require(`./store/bound.cjs`),S=require(`./store/unbound.cjs`),C=require(`./store/use-deep.cjs`);let w=require(`clsx`),T=require(`xstate`),E=require(`motion/react`),D=require(`jotai`),O=require(`@dnd-kit/abstract/modifiers`),k=require(`@hello-pangea/dnd`),A=require(`@dnd-kit/react`),j=require(`@dnd-kit/dom`),M=require(`@dnd-kit/dom/modifiers`),N=require(`immer`),P=require(`@dnd-kit/collision`),F=require(`@tanstack/react-query`),I=require(`motion/react-m`),L=require(`@dnd-kit/helpers`),R=require(`@xstate/react`),z=require(`use-immer`),B=require(`zustand/shallow`),V=require(`@dnd-kit/react/sortable`);Object.defineProperty(exports,`Actor`,{enumerable:!0,get:function(){return T.Actor}}),Object.defineProperty(exports,`AnimatePresence`,{enumerable:!0,get:function(){return E.AnimatePresence}}),exports.ApiClient=r.ApiClient,exports.ApiClientProvider=o.ApiClientProvider,exports.AppContextProvider=s.AppContextProvider,Object.defineProperty(exports,`AtomStoreProvider`,{enumerable:!0,get:function(){return D.Provider}}),Object.defineProperty(exports,`AxisModifier`,{enumerable:!0,get:function(){return O.AxisModifier}}),exports.DisabledProvider=l.DisabledProvider,Object.defineProperty(exports,`DragDropContext`,{enumerable:!0,get:function(){return k.DragDropContext}}),Object.defineProperty(exports,`DragDropProvider`,{enumerable:!0,get:function(){return A.DragDropProvider}}),Object.defineProperty(exports,`DragOverlay`,{enumerable:!0,get:function(){return A.DragOverlay}}),Object.defineProperty(exports,`Draggable`,{enumerable:!0,get:function(){return k.Draggable}}),Object.defineProperty(exports,`Droppable`,{enumerable:!0,get:function(){return k.Droppable}}),Object.defineProperty(exports,`Feedback`,{enumerable:!0,get:function(){return j.Feedback}}),exports.HTTP_CLIENT=n.HTTP_CLIENT,Object.defineProperty(exports,`KeyboardSensor`,{enumerable:!0,get:function(){return A.KeyboardSensor}}),Object.defineProperty(exports,`LayoutGroup`,{enumerable:!0,get:function(){return E.LayoutGroup}}),exports.LocalStoragePersistence=_.LocalStoragePersistence,exports.MotionProvider=u.default,exports.PRIVATE_PREFIX=y.PRIVATE_PREFIX,exports.PUBLIC_PREFIX=y.PUBLIC_PREFIX,Object.defineProperty(exports,`PointerSensor`,{enumerable:!0,get:function(){return A.PointerSensor}}),exports.PrefixFingerprinter=g.PrefixFingerprinter,exports.QUERY_CLIENT=n.QUERY_CLIENT,Object.defineProperty(exports,`Reorder`,{enumerable:!0,get:function(){return E.Reorder}}),Object.defineProperty(exports,`RestrictToElement`,{enumerable:!0,get:function(){return M.RestrictToElement}}),Object.defineProperty(exports,`RestrictToHorizontalAxis`,{enumerable:!0,get:function(){return O.RestrictToHorizontalAxis}}),Object.defineProperty(exports,`RestrictToVerticalAxis`,{enumerable:!0,get:function(){return O.RestrictToVerticalAxis}}),Object.defineProperty(exports,`RestrictToWindow`,{enumerable:!0,get:function(){return M.RestrictToWindow}}),exports.STORAGE_API_PATH=h.DEFAULT_API_PATH,exports.STORAGE_RESOURCE=h.DEFAULT_RESOURCE,exports.STORAGE_VERSION=h.DEFAULT_VERSION,Object.defineProperty(exports,`SnapModifier`,{enumerable:!0,get:function(){return O.SnapModifier}}),exports.SseClient=d.SseClient,exports.UploadAbortedError=m.UploadAbortedError,exports.UploadError=m.UploadError,exports.UploadPartError=m.UploadPartError,exports.UploadProtocolError=m.UploadProtocolError,exports.Uploader=b.Uploader,exports.WeakFingerprinter=g.WeakFingerprinter,exports.abortUpload=h.abortUpload,Object.defineProperty(exports,`applyPatches`,{enumerable:!0,get:function(){return N.applyPatches}}),Object.defineProperty(exports,`atom`,{enumerable:!0,get:function(){return D.atom}}),exports.checkPermission=a.checkPermission,Object.defineProperty(exports,`closestCenter`,{enumerable:!0,get:function(){return P.closestCenter}}),Object.defineProperty(exports,`closestCorners`,{enumerable:!0,get:function(){return P.closestCorners}}),Object.defineProperty(exports,`clsx`,{enumerable:!0,get:function(){return w.clsx}}),exports.completeUpload=h.completeUpload,Object.defineProperty(exports,`createActor`,{enumerable:!0,get:function(){return T.createActor}}),exports.createApiClient=i.createApiClient,exports.createApiRequest=i.createApiRequest,Object.defineProperty(exports,`createAtomStore`,{enumerable:!0,get:function(){return D.createStore}}),exports.createComponentStore=S.createComponentStore,exports.createContextWithSelector=c.createContextWithSelector,Object.defineProperty(exports,`createMachine`,{enumerable:!0,get:function(){return T.createMachine}}),exports.createPersistedStore=x.createPersistedStore,exports.createSseClient=f.createSseClient,exports.createStore=x.createStore,Object.defineProperty(exports,`currentState`,{enumerable:!0,get:function(){return N.current}}),Object.defineProperty(exports,`defaultCollisionDetection`,{enumerable:!0,get:function(){return P.defaultCollisionDetection}}),Object.defineProperty(exports,`defaultPreset`,{enumerable:!0,get:function(){return j.defaultPreset}}),Object.defineProperty(exports,`directionBiased`,{enumerable:!0,get:function(){return P.directionBiased}}),Object.defineProperty(exports,`getDefaultAtomStore`,{enumerable:!0,get:function(){return D.getDefaultStore}}),exports.initUpload=h.initUpload,Object.defineProperty(exports,`keepPreviousData`,{enumerable:!0,get:function(){return F.keepPreviousData}}),exports.listParts=h.listParts,Object.defineProperty(exports,`matchMutation`,{enumerable:!0,get:function(){return F.matchMutation}}),Object.defineProperty(exports,`matchQuery`,{enumerable:!0,get:function(){return F.matchQuery}}),Object.defineProperty(exports,`motion`,{enumerable:!0,get:function(){return I}}),Object.defineProperty(exports,`moveArrayItem`,{enumerable:!0,get:function(){return L.arrayMove}}),Object.defineProperty(exports,`moveDragItem`,{enumerable:!0,get:function(){return L.move}}),Object.defineProperty(exports,`originalState`,{enumerable:!0,get:function(){return N.original}}),Object.defineProperty(exports,`pointerDistance`,{enumerable:!0,get:function(){return P.pointerDistance}}),Object.defineProperty(exports,`pointerIntersection`,{enumerable:!0,get:function(){return P.pointerIntersection}}),Object.defineProperty(exports,`produce`,{enumerable:!0,get:function(){return N.produce}}),Object.defineProperty(exports,`produceWithPatches`,{enumerable:!0,get:function(){return N.produceWithPatches}}),exports.resolveResumePlan=v.resolveResumePlan,Object.defineProperty(exports,`restrictShapeToBoundingRectangle`,{enumerable:!0,get:function(){return O.restrictShapeToBoundingRectangle}}),Object.defineProperty(exports,`shapeIntersection`,{enumerable:!0,get:function(){return P.shapeIntersection}}),exports.skipAuthenticationHeader=e.SKIP_AUTH_HEADER,exports.skipAuthenticationValue=e.SKIP_AUTH_VALUE,Object.defineProperty(exports,`skipQueryToken`,{enumerable:!0,get:function(){return F.skipToken}}),Object.defineProperty(exports,`swapArrayItem`,{enumerable:!0,get:function(){return L.arraySwap}}),Object.defineProperty(exports,`swapDragItem`,{enumerable:!0,get:function(){return L.swap}}),Object.defineProperty(exports,`updateContext`,{enumerable:!0,get:function(){return T.assign}}),exports.uploadFile=b.uploadFile,exports.uploadPart=h.uploadPart,exports.useActor=p.useActor,Object.defineProperty(exports,`useActorRef`,{enumerable:!0,get:function(){return R.useActorRef}}),exports.useApiClient=o.useApiClient,exports.useAppContext=s.useAppContext,Object.defineProperty(exports,`useAtom`,{enumerable:!0,get:function(){return D.useAtom}}),Object.defineProperty(exports,`useAtomStore`,{enumerable:!0,get:function(){return D.useStore}}),Object.defineProperty(exports,`useAtomValue`,{enumerable:!0,get:function(){return D.useAtomValue}}),exports.useDeep=C.useDeep,exports.useDisabled=l.useDisabled,Object.defineProperty(exports,`useDragControls`,{enumerable:!0,get:function(){return E.useDragControls}}),Object.defineProperty(exports,`useDragDropMonitor`,{enumerable:!0,get:function(){return A.useDragDropMonitor}}),Object.defineProperty(exports,`useDraggable`,{enumerable:!0,get:function(){return A.useDraggable}}),Object.defineProperty(exports,`useDroppable`,{enumerable:!0,get:function(){return A.useDroppable}}),Object.defineProperty(exports,`useImmer`,{enumerable:!0,get:function(){return z.useImmer}}),Object.defineProperty(exports,`useImmerReducer`,{enumerable:!0,get:function(){return z.useImmerReducer}}),Object.defineProperty(exports,`useInView`,{enumerable:!0,get:function(){return E.useInView}}),exports.useInfiniteQuery=t.useInfiniteQuery,exports.useIsFetching=t.useIsFetching,exports.useIsMutating=t.useIsMutating,exports.useMutation=t.useMutation,exports.useMutationState=t.useMutationState,exports.useQueries=t.useQueries,exports.useQuery=t.useQuery,Object.defineProperty(exports,`useQueryClient`,{enumerable:!0,get:function(){return F.useQueryClient}}),Object.defineProperty(exports,`useQueryErrorResetBoundary`,{enumerable:!0,get:function(){return F.useQueryErrorResetBoundary}}),Object.defineProperty(exports,`useSetAtom`,{enumerable:!0,get:function(){return D.useSetAtom}}),Object.defineProperty(exports,`useShallow`,{enumerable:!0,get:function(){return B.useShallow}}),Object.defineProperty(exports,`useSortable`,{enumerable:!0,get:function(){return V.useSortable}});
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("./http/constants.cjs"),t=require("./query/hooks.cjs"),n=require("./api/constants.cjs"),r=require("./api/client.cjs"),i=require("./api/helpers.cjs"),a=require("./auth/helpers.cjs"),o=require("./context/api-client.cjs"),s=require("./context/app.cjs"),c=require("./context/context-selector.cjs"),l=require("./context/disabled.cjs"),u=require("./motion/motion-provider.cjs"),d=require("./sse/client.cjs"),f=require("./sse/helpers.cjs"),p=require("./state-machine/index.cjs"),m=require("./storage/errors.cjs"),h=require("./storage/protocol.cjs"),g=require("./storage/resumable/fingerprint.cjs"),_=require("./storage/resumable/persistence.cjs"),v=require("./storage/resumable/plan.cjs"),y=require("./storage/types.cjs"),b=require("./storage/uploader.cjs"),x=require("./store/bound.cjs"),S=require("./store/unbound.cjs"),C=require("./store/use-deep.cjs");let w=require("clsx"),T=require("xstate"),E=require("motion/react"),D=require("jotai"),O=require("@dnd-kit/abstract/modifiers"),k=require("@dnd-kit/abstract"),A=require("@hello-pangea/dnd"),j=require("@dnd-kit/react"),M=require("@dnd-kit/dom"),N=require("@dnd-kit/dom/modifiers"),P=require("immer"),F=require("@dnd-kit/collision"),I=require("@tanstack/react-query"),L=require("motion/react-m"),R=require("@dnd-kit/helpers"),z=require("@xstate/react"),B=require("use-immer"),V=require("zustand/shallow"),H=require("@dnd-kit/react/sortable");Object.defineProperty(exports,"Actor",{enumerable:!0,get:function(){return T.Actor}}),Object.defineProperty(exports,"AnimatePresence",{enumerable:!0,get:function(){return E.AnimatePresence}}),exports.ApiClient=r.ApiClient,exports.ApiClientProvider=o.ApiClientProvider,exports.AppContextProvider=s.AppContextProvider,Object.defineProperty(exports,"AtomStoreProvider",{enumerable:!0,get:function(){return D.Provider}}),Object.defineProperty(exports,"AxisModifier",{enumerable:!0,get:function(){return O.AxisModifier}}),Object.defineProperty(exports,"CollisionPriority",{enumerable:!0,get:function(){return k.CollisionPriority}}),exports.DisabledProvider=l.DisabledProvider,Object.defineProperty(exports,"DragDropContext",{enumerable:!0,get:function(){return A.DragDropContext}}),Object.defineProperty(exports,"DragDropProvider",{enumerable:!0,get:function(){return j.DragDropProvider}}),Object.defineProperty(exports,"DragOverlay",{enumerable:!0,get:function(){return j.DragOverlay}}),Object.defineProperty(exports,"Draggable",{enumerable:!0,get:function(){return A.Draggable}}),Object.defineProperty(exports,"Droppable",{enumerable:!0,get:function(){return A.Droppable}}),Object.defineProperty(exports,"Feedback",{enumerable:!0,get:function(){return M.Feedback}}),exports.HTTP_CLIENT=n.HTTP_CLIENT,Object.defineProperty(exports,"KeyboardSensor",{enumerable:!0,get:function(){return j.KeyboardSensor}}),Object.defineProperty(exports,"LayoutGroup",{enumerable:!0,get:function(){return E.LayoutGroup}}),exports.LocalStoragePersistence=_.LocalStoragePersistence,exports.MotionProvider=u.default,exports.PRIVATE_PREFIX=y.PRIVATE_PREFIX,exports.PUBLIC_PREFIX=y.PUBLIC_PREFIX,Object.defineProperty(exports,"PointerActivationConstraints",{enumerable:!0,get:function(){return M.PointerActivationConstraints}}),Object.defineProperty(exports,"PointerSensor",{enumerable:!0,get:function(){return j.PointerSensor}}),exports.PrefixFingerprinter=g.PrefixFingerprinter,exports.QUERY_CLIENT=n.QUERY_CLIENT,Object.defineProperty(exports,"Reorder",{enumerable:!0,get:function(){return E.Reorder}}),Object.defineProperty(exports,"RestrictToElement",{enumerable:!0,get:function(){return N.RestrictToElement}}),Object.defineProperty(exports,"RestrictToHorizontalAxis",{enumerable:!0,get:function(){return O.RestrictToHorizontalAxis}}),Object.defineProperty(exports,"RestrictToVerticalAxis",{enumerable:!0,get:function(){return O.RestrictToVerticalAxis}}),Object.defineProperty(exports,"RestrictToWindow",{enumerable:!0,get:function(){return N.RestrictToWindow}}),exports.STORAGE_API_PATH=h.DEFAULT_API_PATH,exports.STORAGE_RESOURCE=h.DEFAULT_RESOURCE,exports.STORAGE_VERSION=h.DEFAULT_VERSION,Object.defineProperty(exports,"SnapModifier",{enumerable:!0,get:function(){return O.SnapModifier}}),exports.SseClient=d.SseClient,exports.UploadAbortedError=m.UploadAbortedError,exports.UploadError=m.UploadError,exports.UploadPartError=m.UploadPartError,exports.UploadProtocolError=m.UploadProtocolError,exports.Uploader=b.Uploader,exports.WeakFingerprinter=g.WeakFingerprinter,exports.abortUpload=h.abortUpload,Object.defineProperty(exports,"applyPatches",{enumerable:!0,get:function(){return P.applyPatches}}),Object.defineProperty(exports,"atom",{enumerable:!0,get:function(){return D.atom}}),exports.checkPermission=a.checkPermission,Object.defineProperty(exports,"closestCenter",{enumerable:!0,get:function(){return F.closestCenter}}),Object.defineProperty(exports,"closestCorners",{enumerable:!0,get:function(){return F.closestCorners}}),Object.defineProperty(exports,"clsx",{enumerable:!0,get:function(){return w.clsx}}),exports.completeUpload=h.completeUpload,Object.defineProperty(exports,"createActor",{enumerable:!0,get:function(){return T.createActor}}),exports.createApiClient=i.createApiClient,exports.createApiRequest=i.createApiRequest,Object.defineProperty(exports,"createAtomStore",{enumerable:!0,get:function(){return D.createStore}}),exports.createComponentStore=S.createComponentStore,exports.createContextWithSelector=c.createContextWithSelector,Object.defineProperty(exports,"createMachine",{enumerable:!0,get:function(){return T.createMachine}}),exports.createPersistedStore=x.createPersistedStore,exports.createSseClient=f.createSseClient,exports.createStore=x.createStore,Object.defineProperty(exports,"currentState",{enumerable:!0,get:function(){return P.current}}),Object.defineProperty(exports,"defaultCollisionDetection",{enumerable:!0,get:function(){return F.defaultCollisionDetection}}),Object.defineProperty(exports,"defaultPreset",{enumerable:!0,get:function(){return M.defaultPreset}}),Object.defineProperty(exports,"directionBiased",{enumerable:!0,get:function(){return F.directionBiased}}),Object.defineProperty(exports,"getDefaultAtomStore",{enumerable:!0,get:function(){return D.getDefaultStore}}),exports.initUpload=h.initUpload,Object.defineProperty(exports,"keepPreviousData",{enumerable:!0,get:function(){return I.keepPreviousData}}),exports.listParts=h.listParts,Object.defineProperty(exports,"matchMutation",{enumerable:!0,get:function(){return I.matchMutation}}),Object.defineProperty(exports,"matchQuery",{enumerable:!0,get:function(){return I.matchQuery}}),Object.defineProperty(exports,"motion",{enumerable:!0,get:function(){return L}}),Object.defineProperty(exports,"moveArrayItem",{enumerable:!0,get:function(){return R.arrayMove}}),Object.defineProperty(exports,"moveDragItem",{enumerable:!0,get:function(){return R.move}}),Object.defineProperty(exports,"originalState",{enumerable:!0,get:function(){return P.original}}),Object.defineProperty(exports,"pointerDistance",{enumerable:!0,get:function(){return F.pointerDistance}}),Object.defineProperty(exports,"pointerIntersection",{enumerable:!0,get:function(){return F.pointerIntersection}}),Object.defineProperty(exports,"produce",{enumerable:!0,get:function(){return P.produce}}),Object.defineProperty(exports,"produceWithPatches",{enumerable:!0,get:function(){return P.produceWithPatches}}),exports.resolveResumePlan=v.resolveResumePlan,Object.defineProperty(exports,"restrictShapeToBoundingRectangle",{enumerable:!0,get:function(){return O.restrictShapeToBoundingRectangle}}),Object.defineProperty(exports,"shapeIntersection",{enumerable:!0,get:function(){return F.shapeIntersection}}),exports.skipAuthenticationHeader=e.SKIP_AUTH_HEADER,exports.skipAuthenticationValue=e.SKIP_AUTH_VALUE,Object.defineProperty(exports,"skipQueryToken",{enumerable:!0,get:function(){return I.skipToken}}),Object.defineProperty(exports,"swapArrayItem",{enumerable:!0,get:function(){return R.arraySwap}}),Object.defineProperty(exports,"swapDragItem",{enumerable:!0,get:function(){return R.swap}}),Object.defineProperty(exports,"updateContext",{enumerable:!0,get:function(){return T.assign}}),exports.uploadFile=b.uploadFile,exports.uploadPart=h.uploadPart,exports.useActor=p.useActor,Object.defineProperty(exports,"useActorRef",{enumerable:!0,get:function(){return z.useActorRef}}),exports.useApiClient=o.useApiClient,exports.useAppContext=s.useAppContext,Object.defineProperty(exports,"useAtom",{enumerable:!0,get:function(){return D.useAtom}}),Object.defineProperty(exports,"useAtomStore",{enumerable:!0,get:function(){return D.useStore}}),Object.defineProperty(exports,"useAtomValue",{enumerable:!0,get:function(){return D.useAtomValue}}),exports.useDeep=C.useDeep,exports.useDisabled=l.useDisabled,Object.defineProperty(exports,"useDragControls",{enumerable:!0,get:function(){return E.useDragControls}}),Object.defineProperty(exports,"useDragDropMonitor",{enumerable:!0,get:function(){return j.useDragDropMonitor}}),Object.defineProperty(exports,"useDragOperation",{enumerable:!0,get:function(){return j.useDragOperation}}),Object.defineProperty(exports,"useDraggable",{enumerable:!0,get:function(){return j.useDraggable}}),Object.defineProperty(exports,"useDroppable",{enumerable:!0,get:function(){return j.useDroppable}}),Object.defineProperty(exports,"useImmer",{enumerable:!0,get:function(){return B.useImmer}}),Object.defineProperty(exports,"useImmerReducer",{enumerable:!0,get:function(){return B.useImmerReducer}}),Object.defineProperty(exports,"useInView",{enumerable:!0,get:function(){return E.useInView}}),exports.useInfiniteQuery=t.useInfiniteQuery,exports.useIsFetching=t.useIsFetching,exports.useIsMutating=t.useIsMutating,exports.useMutation=t.useMutation,exports.useMutationState=t.useMutationState,exports.useQueries=t.useQueries,exports.useQuery=t.useQuery,Object.defineProperty(exports,"useQueryClient",{enumerable:!0,get:function(){return I.useQueryClient}}),Object.defineProperty(exports,"useQueryErrorResetBoundary",{enumerable:!0,get:function(){return I.useQueryErrorResetBoundary}}),Object.defineProperty(exports,"useSetAtom",{enumerable:!0,get:function(){return D.useSetAtom}}),Object.defineProperty(exports,"useShallow",{enumerable:!0,get:function(){return V.useShallow}}),Object.defineProperty(exports,"useSortable",{enumerable:!0,get:function(){return H.useSortable}});
@@ -1 +1 @@
1
- require(`../_internal/_rolldown/runtime.cjs`);let e=require(`motion/react`);Object.defineProperty(exports,`default`,{enumerable:!0,get:function(){return e.domMax}});
1
+ let e=require("motion/react");Object.defineProperty(exports,"default",{enumerable:!0,get:function(){return e.domMax}});
@@ -1 +1 @@
1
- const e=require(`../_internal/_rolldown/runtime.cjs`);require(`./motion-provider.cjs`),require(`motion/react`);let t=require(`motion/react-m`);t=e.__toESM(t,1);
1
+ const e=require("../_internal/_rolldown/runtime.cjs");require("./motion-provider.cjs"),require("motion/react");let t=require("motion/react-m");t=e.__toESM(t,1);
@@ -1 +1 @@
1
- require(`../_internal/_rolldown/runtime.cjs`);let e=require(`@vef-framework-react/shared`),t=require(`react`),n=require(`@emotion/react/jsx-runtime`),r=require(`motion/react`);var i=()=>Promise.resolve().then(()=>require(`./features.cjs`)).then(e=>e.default),a={duration:.2,ease:`easeInOut`};function o({children:o}){let[s]=(0,t.useState)(e.generateId);return(0,n.jsx)(r.LazyMotion,{features:i,children:(0,n.jsx)(r.MotionConfig,{nonce:s,reducedMotion:`user`,transition:a,children:o})})}exports.default=o;
1
+ let e=require("@vef-framework-react/shared"),t=require("react"),n=require("@emotion/react/jsx-runtime"),r=require("motion/react");var i=()=>Promise.resolve().then(()=>require("./features.cjs")).then(e=>e.default),a={duration:.2,ease:`easeInOut`};function o({children:o}){let[s]=(0,t.useState)(e.generateId);return(0,n.jsx)(r.LazyMotion,{features:i,children:(0,n.jsx)(r.MotionConfig,{nonce:s,reducedMotion:`user`,transition:a,children:o})})}exports.default=o;
@@ -1 +1 @@
1
- require(`../_internal/_rolldown/runtime.cjs`);let e=require(`@vef-framework-react/shared`),t=require(`@tanstack/react-query`);function n(n){let{staleTime:r=5e3,gcTime:i=3e5,showSuccessMessage:a}=n??{},o=new t.QueryClient({mutationCache:new t.MutationCache({onSuccess:async(n,r,i,s)=>{let{invalidates:c,shouldShowSuccessFeedback:l=!0}=s.meta??{};c&&await o.invalidateQueries({stale:!1,type:`all`,predicate:e=>c.some(n=>(0,t.matchQuery)({queryKey:n},e))}),l&&(0,e.isPlainObject)(n)&&Object.hasOwn(n,`message`)&&a?.(n.message)}}),defaultOptions:{queries:{staleTime:r,gcTime:i,networkMode:`online`,retry:!1,structuralSharing:!0,throwOnError:!1,refetchOnMount:!0,refetchOnReconnect:!0,refetchOnWindowFocus:!0,retryOnMount:!0,queryKeyHashFn:e.hashKey,experimental_prefetchInRender:!0},mutations:{gcTime:i,networkMode:`online`,retry:!1,throwOnError:!1}}});return o}exports.createQueryClient=n;
1
+ let e=require("@vef-framework-react/shared"),t=require("@tanstack/react-query");function n(n){let{staleTime:r=5e3,gcTime:i=3e5,showSuccessMessage:a}=n??{},o=new t.QueryClient({mutationCache:new t.MutationCache({onSuccess:async(n,r,i,s)=>{let{invalidates:c,shouldShowSuccessFeedback:l=!0}=s.meta??{};c&&await o.invalidateQueries({stale:!1,type:`all`,predicate:e=>c.some(n=>(0,t.matchQuery)({queryKey:n},e))}),l&&(0,e.isPlainObject)(n)&&Object.hasOwn(n,`message`)&&a?.(n.message)}}),defaultOptions:{queries:{staleTime:r,gcTime:i,networkMode:`online`,retry:!1,structuralSharing:!0,throwOnError:!1,refetchOnMount:!0,refetchOnReconnect:!0,refetchOnWindowFocus:!0,retryOnMount:!0,queryKeyHashFn:e.hashKey,experimental_prefetchInRender:!0},mutations:{gcTime:i,networkMode:`online`,retry:!1,throwOnError:!1}}});return o}exports.createQueryClient=n;
@@ -1 +1 @@
1
- require(`../_internal/_rolldown/runtime.cjs`);let e=require(`@tanstack/react-query`);function t(t){return(0,e.useQuery)(t)}function n(t){return(0,e.useInfiniteQuery)(t)}function r(t){return(0,e.useQueries)(t)}function i(t){return(0,e.useMutation)(t)}function a(t){return(0,e.useMutationState)(t)}function o(t){return(0,e.useIsFetching)(t)}function s(t){return(0,e.useIsMutating)(t)}exports.useInfiniteQuery=n,exports.useIsFetching=o,exports.useIsMutating=s,exports.useMutation=i,exports.useMutationState=a,exports.useQueries=r,exports.useQuery=t;
1
+ let e=require("@tanstack/react-query");function t(t){return(0,e.useQuery)(t)}function n(t){return(0,e.useInfiniteQuery)(t)}function r(t){return(0,e.useQueries)(t)}function i(t){return(0,e.useMutation)(t)}function a(t){return(0,e.useMutationState)(t)}function o(t){return(0,e.useIsFetching)(t)}function s(t){return(0,e.useIsMutating)(t)}exports.useInfiniteQuery=n,exports.useIsFetching=o,exports.useIsMutating=s,exports.useMutation=i,exports.useMutationState=a,exports.useQueries=r,exports.useQuery=t;
@@ -1 +1 @@
1
- require(`../_internal/_rolldown/runtime.cjs`),require(`./constants.cjs`),require(`./helpers.cjs`),require(`./hooks.cjs`),require(`@tanstack/react-query`);
1
+ require("./constants.cjs"),require("./helpers.cjs"),require("./hooks.cjs"),require("@tanstack/react-query");
@@ -1 +1 @@
1
- require(`../_internal/_rolldown/runtime.cjs`);let e=require(`@vef-framework-react/shared`),t=require(`@microsoft/fetch-event-source`);var n=class extends Error{constructor(){super(`Token expired`),this.name=`TokenExpiredError`}};function r(e,t){let n=t.toLowerCase();return Object.keys(e).some(e=>e.toLowerCase()===n)}function i(t,n){if(t!==void 0)return(0,e.isString)(t)?t:(r(n,`content-type`)||(n[`Content-Type`]=`application/json`),JSON.stringify(t))}var a=class{#e;#t=new Set;constructor(e={}){this.#e={enableRetry:!0,maxRetries:3,...e}}stream(e,t){return this.#n(e,t,!1)}abort(){for(let e of this.#t)e.abort();this.#t.clear()}async#n(e,r,a){let o=new AbortController;this.#t.add(o);let s=this.#r(e.signal,o),c=await this.#i(e.headers),l=i(e.body,c),u=0,d=!1,f=()=>{d||(d=!0,s?.(),this.#t.delete(o))};try{await(0,t.fetchEventSource)(e.url,{method:e.method??`POST`,headers:c,body:l,signal:o.signal,onopen:async e=>{if(e.status===401)throw new n;if(!e.ok)throw Error(`HTTP ${e.status}: ${e.statusText}`);let t=e.headers.get(`content-type`);if(t&&!t.includes(`text/event-stream`))throw Error(`Expected content-type to be text/event-stream, got ${t}`);u=0,await r.onOpen?.(e)},onmessage:e=>{r.onMessage({id:e.id,event:e.event,data:e.data})},onerror:e=>{if(o.signal.aborted)return;if(e instanceof n)throw e;if(this.#e.enableRetry&&u<this.#e.maxRetries){u++,console.warn(`SSE connection error, retrying (${u}/${this.#e.maxRetries})...`);return}let t=e;throw r.onError?.(t),this.#e.showErrorMessage?.(t.message),e},onclose:()=>{r.onClose?.()}})}catch(t){if(!await this.#a(t,e,r,a,f))throw t}finally{f()}}#r(e,t){if(!e)return;let n=()=>{t.abort(e.reason)};if(e.aborted){n();return}return e.addEventListener(`abort`,n,{once:!0}),()=>e.removeEventListener(`abort`,n)}async#i(e){let t={...e};try{let e=await this.#e.getAuthTokens?.();e?.accessToken&&!r(t,`authorization`)&&(t.Authorization=`Bearer ${e.accessToken}`)}catch(e){console.error(`Failed to get auth tokens:`,e)}return t}async#a(e,t,r,i,a){if(e instanceof Error&&e.name===`AbortError`)return!0;if(e instanceof n&&!i){if(await this.#o())return a(),await this.#n(t,r,!0),!0;let e=Error(`Authentication failed: token expired`);return r.onError?.(e),this.#e.showErrorMessage?.(e.message),!0}return!1}async#o(){let{onTokenExpired:e}=this.#e;if(!e)return!1;try{return await e()}catch(e){return console.error(`Failed to refresh token:`,e),!1}}};exports.SseClient=a;
1
+ const e=require("./stream-machine.cjs");let t=require("@vef-framework-react/shared"),n=require("@microsoft/fetch-event-source"),r=require("xstate");function i(e,t){let n=t.toLowerCase();return Object.keys(e).some(e=>e.toLowerCase()===n)}function a(e,n){if(e!==void 0)return(0,t.isString)(e)?e:(i(n,`content-type`)||(n[`Content-Type`]=`application/json`),JSON.stringify(e))}var o=class{#e;#t=new Set;constructor(e={}){this.#e={enableRetry:!0,maxRetries:3,...e}}stream(t,n){let i,a=(0,r.createActor)(e.createStreamMachine({runAttempt:()=>this.#n(t,n),refreshToken:()=>this.#a(),reportAuthFailure:()=>{let e=Error(`Authentication failed: token expired`);n.onError?.(e),this.#e.showErrorMessage?.(e.message)},recordFailure:e=>{i=e}}));return new Promise((e,t)=>{a.subscribe(n=>{if(n.status===`done`){if(n.value===`failed`){t(i);return}e()}}),a.start()})}abort(){for(let e of this.#t)e.abort();this.#t.clear()}async#n(t,r){let i=new AbortController;this.#t.add(i);let o=this.#r(t.signal,i),s=0;try{let o=await this.#i(t.headers),c=a(t.body,o);await(0,n.fetchEventSource)(t.url,{method:t.method??`POST`,headers:o,body:c,signal:i.signal,onopen:async t=>{if(t.status===401)throw new e.TokenExpiredError;if(!t.ok)throw Error(`HTTP ${t.status}: ${t.statusText}`);let n=t.headers.get(`content-type`);if(n&&!n.includes(`text/event-stream`))throw Error(`Expected content-type to be text/event-stream, got ${n}`);s=0,await r.onOpen?.(t)},onmessage:e=>{r.onMessage({id:e.id,event:e.event,data:e.data})},onerror:t=>{if(i.signal.aborted)return;if(t instanceof e.TokenExpiredError)throw t;if(this.#e.enableRetry&&s<this.#e.maxRetries){s++,console.warn(`SSE connection error, retrying (${s}/${this.#e.maxRetries})...`);return}let n=t;throw r.onError?.(n),this.#e.showErrorMessage?.(n.message),t},onclose:()=>{r.onClose?.()}})}finally{o?.(),this.#t.delete(i)}}#r(e,t){if(!e)return;let n=()=>{t.abort(e.reason)};if(e.aborted){n();return}return e.addEventListener(`abort`,n,{once:!0}),()=>e.removeEventListener(`abort`,n)}async#i(e){let t={...e};try{let e=await this.#e.getAuthTokens?.();e?.accessToken&&!i(t,`authorization`)&&(t.Authorization=`Bearer ${e.accessToken}`)}catch(e){console.error(`Failed to get auth tokens:`,e)}return t}async#a(){let{onTokenExpired:e}=this.#e;if(!e)return!1;try{return await e()}catch(e){return console.error(`Failed to refresh token:`,e),!1}}};exports.SseClient=o;
@@ -1 +1 @@
1
- const e=require(`./client.cjs`);function t(t){return new e.SseClient(t)}exports.createSseClient=t;
1
+ const e=require("./client.cjs");function t(t){return new e.SseClient(t)}exports.createSseClient=t;
@@ -1 +1 @@
1
- require(`./client.cjs`),require(`./helpers.cjs`);
1
+ require("./client.cjs"),require("./helpers.cjs");
@@ -0,0 +1 @@
1
+ let e=require("xstate");var t=class extends Error{constructor(){super(`Token expired`),this.name=`TokenExpiredError`}};function n(e){return e instanceof Error&&e.name===`AbortError`}function r(r){return(0,e.setup)({actors:{runAttempt:(0,e.fromPromise)(()=>r.runAttempt()),refreshToken:(0,e.fromPromise)(()=>r.refreshToken())},actions:{recordFailure:(e,t)=>{r.recordFailure(t.error)},reportAuthFailure:()=>{r.reportAuthFailure()}},guards:{wasAborted:(e,t)=>n(t.error),wasTokenExpired:(e,n)=>n.error instanceof t,refreshSucceeded:(e,t)=>t.refreshed}}).createMachine({id:`sseStream`,initial:`streaming`,states:{streaming:{invoke:{src:`runAttempt`,onDone:{target:`completed`},onError:[{guard:{type:`wasAborted`,params:({event:e})=>({error:e.error})},target:`completed`},{guard:{type:`wasTokenExpired`,params:({event:e})=>({error:e.error})},target:`refreshingToken`},{target:`failed`,actions:{type:`recordFailure`,params:({event:e})=>({error:e.error})}}]}},refreshingToken:{invoke:{src:`refreshToken`,onDone:[{guard:{type:`refreshSucceeded`,params:({event:e})=>({refreshed:e.output})},target:`retrying`},{target:`completed`,actions:`reportAuthFailure`}],onError:{target:`completed`,actions:`reportAuthFailure`}}},retrying:{invoke:{src:`runAttempt`,onDone:{target:`completed`},onError:[{guard:{type:`wasAborted`,params:({event:e})=>({error:e.error})},target:`completed`},{target:`failed`,actions:{type:`recordFailure`,params:({event:e})=>({error:e.error})}}]}},completed:{type:`final`},failed:{type:`final`}}})}exports.TokenExpiredError=t,exports.createStreamMachine=r;
@@ -1 +1 @@
1
- require(`../_internal/_rolldown/runtime.cjs`),require(`jotai`);
1
+ require("jotai");
@@ -1 +1 @@
1
- require(`../_internal/_rolldown/runtime.cjs`);let e=require(`@xstate/react`);require(`xstate`);function t(t,n,...[r]){let i=(0,e.useActorRef)(t,r);return[(0,e.useSelector)(i,n,Object.is),i.send,i]}exports.useActor=t;
1
+ require("xstate");let e=require("@xstate/react");function t(t,n,...[r]){let i=(0,e.useActorRef)(t,r);return[(0,e.useSelector)(i,n,Object.is),i.send,i]}exports.useActor=t;
@@ -1 +1 @@
1
- require(`./errors.cjs`),require(`./protocol.cjs`),require(`./resumable/fingerprint.cjs`),require(`./resumable/persistence.cjs`),require(`./resumable/plan.cjs`),require(`./types.cjs`),require(`./uploader.cjs`);
1
+ require("./errors.cjs"),require("./protocol.cjs"),require("./resumable/fingerprint.cjs"),require("./resumable/persistence.cjs"),require("./resumable/plan.cjs"),require("./types.cjs"),require("./uploader.cjs");
@@ -1 +1 @@
1
- const e=require(`../api/helpers.cjs`),t=require(`./errors.cjs`);var n=`/api`,r=`sys/storage`,i=`v1`,a=`init_upload`,o=`upload_part`,s=`list_parts`,c=`complete_upload`,l=`abort_upload`;async function u(n,r,i){try{return(await n.http.post(n.apiPath,{data:e.createApiRequest(n.resource,a,n.version,r),signal:i})).data}catch(e){throw new t.UploadProtocolError(a,`failed to initialize upload`,{cause:e})}}async function d(e,t){let n=new FormData;return n.append(`resource`,e.resource),n.append(`action`,o),n.append(`version`,e.version),n.append(`params`,JSON.stringify({claimId:t.claimId,partNumber:t.partNumber})),n.append(`file`,t.blob),(await e.http.upload(e.apiPath,{data:n,onProgress:t.onProgress,signal:t.signal})).data}async function f(n,r,i){try{return(await n.http.post(n.apiPath,{data:e.createApiRequest(n.resource,s,n.version,{claimId:r}),signal:i})).data}catch(e){throw new t.UploadProtocolError(s,`failed to list parts`,{cause:e})}}async function p(n,r,i){try{return(await n.http.post(n.apiPath,{data:e.createApiRequest(n.resource,c,n.version,{claimId:r}),signal:i})).data}catch(e){throw new t.UploadProtocolError(c,`failed to complete upload`,{cause:e})}}async function m(t,n,r){try{await t.http.post(t.apiPath,{data:e.createApiRequest(t.resource,l,t.version,{claimId:n})})}catch(e){r?.(e)}}exports.DEFAULT_API_PATH=n,exports.DEFAULT_RESOURCE=r,exports.DEFAULT_VERSION=i,exports.abortUpload=m,exports.completeUpload=p,exports.initUpload=u,exports.listParts=f,exports.uploadPart=d;
1
+ const e=require("../api/helpers.cjs"),t=require("./errors.cjs");var n=`/api`,r=`sys/storage`,i=`v1`,a=`init_upload`,o=`upload_part`,s=`list_parts`,c=`complete_upload`,l=`abort_upload`;async function u(n,r,i){try{return(await n.http.post(n.apiPath,{data:e.createApiRequest(n.resource,a,n.version,r),signal:i})).data}catch(e){throw new t.UploadProtocolError(a,`failed to initialize upload`,{cause:e})}}async function d(e,t){let n=new FormData;return n.append(`resource`,e.resource),n.append(`action`,o),n.append(`version`,e.version),n.append(`params`,JSON.stringify({claimId:t.claimId,partNumber:t.partNumber})),n.append(`file`,t.blob),(await e.http.upload(e.apiPath,{data:n,onProgress:t.onProgress,signal:t.signal})).data}async function f(n,r,i){try{return(await n.http.post(n.apiPath,{data:e.createApiRequest(n.resource,s,n.version,{claimId:r}),signal:i})).data}catch(e){throw new t.UploadProtocolError(s,`failed to list parts`,{cause:e})}}async function p(n,r,i){try{return(await n.http.post(n.apiPath,{data:e.createApiRequest(n.resource,c,n.version,{claimId:r}),signal:i})).data}catch(e){throw new t.UploadProtocolError(c,`failed to complete upload`,{cause:e})}}async function m(t,n,r){try{await t.http.post(t.apiPath,{data:e.createApiRequest(t.resource,l,t.version,{claimId:n})})}catch(e){r?.(e)}}exports.DEFAULT_API_PATH=n,exports.DEFAULT_RESOURCE=r,exports.DEFAULT_VERSION=i,exports.abortUpload=m,exports.completeUpload=p,exports.initUpload=u,exports.listParts=f,exports.uploadPart=d;
@@ -1 +1 @@
1
- require(`./fingerprint.cjs`),require(`./persistence.cjs`),require(`./plan.cjs`);
1
+ require("./fingerprint.cjs"),require("./persistence.cjs"),require("./plan.cjs");
@@ -1 +1 @@
1
- const e=require(`../protocol.cjs`);async function t(t){let{fingerprint:i,persistence:a,ctx:o,onResumeDetected:s=n,signal:c}=t,l=await a.load(i);if(!l)return{kind:`fresh`};if(r(l.expiresAt))return await a.remove(i),{kind:`fresh`};let u;try{u=(await e.listParts(o,l.claimId,c)).parts}catch{return await a.remove(i),{kind:`fresh`}}return(await s({record:l,completedParts:u})).kind===`discard`?(await a.remove(i),await e.abortUpload(o,l.claimId),{kind:`fresh`}):{kind:`resume`,claimId:l.claimId,key:l.key,partSize:l.partSize,partCount:l.partCount,expiresAt:l.expiresAt,completedParts:u}}function n(){return Promise.resolve({kind:`discard`})}function r(e){let t=Date.parse(e);return Number.isNaN(t)?!0:t<=Date.now()}exports.resolveResumePlan=t;
1
+ const e=require("../protocol.cjs");async function t(t){let{fingerprint:i,persistence:a,ctx:o,onResumeDetected:s=n,signal:c}=t,l=await a.load(i);if(!l)return{kind:`fresh`};if(r(l.expiresAt))return await a.remove(i),{kind:`fresh`};let u;try{u=(await e.listParts(o,l.claimId,c)).parts}catch{return await a.remove(i),{kind:`fresh`}}return(await s({record:l,completedParts:u})).kind===`discard`?(await a.remove(i),await e.abortUpload(o,l.claimId),{kind:`fresh`}):{kind:`resume`,claimId:l.claimId,key:l.key,partSize:l.partSize,partCount:l.partCount,expiresAt:l.expiresAt,completedParts:u}}function n(){return Promise.resolve({kind:`discard`})}function r(e){let t=Date.parse(e);return Number.isNaN(t)?!0:t<=Date.now()}exports.resolveResumePlan=t;
@@ -0,0 +1 @@
1
+ let e=require("xstate");function t(t){return(0,e.setup)({types:{events:{}},actors:{prepareSession:(0,e.fromPromise)(({input:e})=>t.prepareSession(e)),uploadParts:(0,e.fromPromise)(()=>t.uploadParts()),completeSession:(0,e.fromPromise)(()=>t.completeSession()),abortSession:(0,e.fromPromise)(()=>t.abortSession())},actions:{killTransport:()=>{t.killTransport()},recordFailure:(e,n)=>{t.recordFailure(n.error)}},guards:{abortRequested:()=>t.abortRequested()}}).createMachine({id:`uploader`,initial:`idle`,states:{idle:{on:{START:[{guard:`abortRequested`,target:`aborting`},{target:`initializing`}]}},initializing:{invoke:{src:`prepareSession`,input:({event:t})=>((0,e.assertEvent)(t,`START`),t.plan),onDone:{target:`uploading`},onError:{target:`failed`,actions:{type:`recordFailure`,params:({event:e})=>({error:e.error})}}},on:{ABORT:{target:`aborting`}}},uploading:{invoke:{src:`uploadParts`,onDone:{target:`completing`},onError:{target:`failed`,actions:{type:`recordFailure`,params:({event:e})=>({error:e.error})}}},on:{ABORT:{target:`aborting`}}},completing:{invoke:{src:`completeSession`,onDone:{target:`succeeded`},onError:{target:`failed`,actions:{type:`recordFailure`,params:({event:e})=>({error:e.error})}}},on:{ABORT:{target:`aborting`}}},aborting:{entry:`killTransport`,invoke:{src:`abortSession`,onDone:{target:`aborted`},onError:{target:`aborted`}}},succeeded:{type:`final`},failed:{type:`final`},aborted:{type:`final`}}})}exports.createUploaderMachine=t;
@@ -1 +1 @@
1
- const e=require(`./errors.cjs`),t=require(`./protocol.cjs`);var n=3,r=3,i=500,a=8e3;function o(e,t,n,r){return n<r?t:e-t*(r-1)}function s(t,n){return new Promise((r,i)=>{if(n.aborted){i(new e.UploadAbortedError);return}let a=setTimeout(()=>{n.removeEventListener(`abort`,o),r()},t),o=()=>{clearTimeout(a),n.removeEventListener(`abort`,o),i(new e.UploadAbortedError)};n.addEventListener(`abort`,o,{once:!0})})}var c=class{#e;#t;#n;#r;#i;#a;#o;#s;#c;#l;#u;#d;#f;#p;#m=`idle`;#h;#g;#_=0;#v=new Map;#y=1;#b=new Set;constructor(t,o,s={}){let c=s.init?.filename??(o instanceof File?o.name:``);if(!c)throw new e.UploadError(`Uploader requires a filename (set options.init.filename for Blob input)`);this.#e={http:t,apiPath:s.apiPath??`/api`,resource:s.resource??`sys/storage`,version:s.version??`v1`},this.#t=o,this.#n=c,this.#r=s.init?.contentType??(o instanceof File&&o.type||void 0),this.#i=s.init?.public,this.#a=Math.max(1,s.partConcurrency??n),this.#o=Math.max(1,s.maxPartRetries??r),this.#s=Math.max(0,s.retryBaseDelay??i),this.#c=Math.max(this.#s,s.retryMaxDelay??a),this.#l=s.onProgress,this.#u=s.onStatusChange,this.#d=s.onSessionOpened,this.#f=new AbortController,this.#p=this.#x(s.signal),this.#h={loaded:0,total:o.size,partsCompleted:0,partsTotal:0,percent:0}}get status(){return this.#m}get progress(){return this.#h}start(e){return this.#g||=this.#E(e??{kind:`fresh`}),this.#g}async abort(){if(this.#S())return;this.#f.abort();let e=this.#g;if(e)try{await e}catch{}}#x(e){if(!e)return;if(e.aborted){this.#f.abort();return}let t=()=>this.#f.abort();return e.addEventListener(`abort`,t,{once:!0}),()=>e.removeEventListener(`abort`,t)}#S(){return this.#m===`succeeded`||this.#m===`failed`||this.#m===`aborted`}#C(e){this.#m!==e&&(this.#m=e,this.#u?.(e))}#w(){let e=0;for(let t of this.#v.values())e+=t;let t=Math.min(this.#h.total,this.#_+e),n=this.#h.total===0?0:Math.floor(t/this.#h.total*100);this.#h={...this.#h,loaded:t,percent:n},this.#l?.(this.#h)}async#T(n){if(n.kind===`fresh`)return{session:await t.initUpload(this.#e,{filename:this.#n,size:this.#t.size,contentType:this.#r,public:this.#i},this.#f.signal),skipParts:new Set,completedBytes:0};let r=n.partSize*n.partCount,i=n.partSize*(n.partCount-1)+1;if(this.#t.size<i||this.#t.size>r)throw new e.UploadProtocolError(`resume`,`file size ${this.#t.size} does not fit the resumed session (partSize=${n.partSize}, partCount=${n.partCount})`);let a=new Set,o=0;for(let e of n.completedParts)a.add(e.partNumber),o+=e.size;return{session:{key:n.key,claimId:n.claimId,originalFilename:this.#n,partSize:n.partSize,partCount:n.partCount,expiresAt:n.expiresAt},skipParts:a,completedBytes:o}}async#E(n){let r;try{if(this.#f.signal.aborted)throw new e.UploadAbortedError;this.#C(`initializing`);let{session:i,skipParts:a,completedBytes:o}=await this.#T(n);({claimId:r}=i),this.#b=a,this.#_=o,this.#d?.({claimId:i.claimId,key:i.key,partSize:i.partSize,partCount:i.partCount,expiresAt:i.expiresAt}),this.#h={...this.#h,partsTotal:i.partCount,partsCompleted:a.size},this.#w(),this.#C(`uploading`),await this.#D(i),this.#C(`completing`);let s=await t.completeUpload(this.#e,i.claimId,this.#f.signal);return this.#C(`succeeded`),{bucket:s.bucket,key:s.key,eTag:s.eTag,size:s.size,contentType:s.contentType,lastModified:s.lastModified,originalFilename:s.originalFilename,metadata:s.metadata}}catch(n){let i=n instanceof e.UploadAbortedError;throw i&&this.#C(`aborting`),i&&r!==void 0&&await t.abortUpload(this.#e,r),this.#C(i?`aborted`:`failed`),this.#j(n)}finally{this.#p?.()}}async#D(e){let t=Math.min(this.#a,e.partCount),n=[];for(let r=0;r<t;r++)n.push(this.#O(e));try{await Promise.all(n)}catch(e){throw this.#f.abort(),e}}async#O(e){for(;!this.#f.signal.aborted;){let t=this.#k(e.partCount);if(t===null)return;await this.#A(e,t)}}#k(e){for(;this.#y<=e;){let e=this.#y++;if(!this.#b.has(e))return e}return null}async#A(n,r){let i=o(this.#t.size,n.partSize,r,n.partCount),a=(r-1)*n.partSize,c=this.#t.slice(a,a+i),l=0,u;for(;l<this.#o;){if(l++,this.#f.signal.aborted)throw new e.UploadAbortedError;try{this.#v.set(r,0),await t.uploadPart(this.#e,{claimId:n.claimId,partNumber:r,blob:c,onProgress:e=>{this.#v.set(r,Math.min(i,e.loaded)),this.#w()},signal:this.#f.signal}),this.#v.delete(r),this.#_+=i,this.#h={...this.#h,partsCompleted:this.#h.partsCompleted+1},this.#w();return}catch(t){if(this.#v.delete(r),u=t,this.#f.signal.aborted)throw new e.UploadAbortedError;if(l>=this.#o)break;await s(Math.min(this.#c,this.#s*2**(l-1)),this.#f.signal)}}throw new e.UploadPartError(r,l,{cause:u})}#j(t){return t instanceof e.UploadError?t:t instanceof Error?new e.UploadProtocolError(`unknown`,t.message,{cause:t}):new e.UploadProtocolError(`unknown`,String(t))}};function l(e,t,n){return new c(e,t,n).start()}exports.Uploader=c,exports.uploadFile=l;
1
+ const e=require("./errors.cjs"),t=require("./protocol.cjs"),n=require("./uploader-machine.cjs");let r=require("xstate");var i=3,a=3,o=500,s=8e3;function c(e,t,n,r){return n<r?t:e-t*(r-1)}function l(t,n){return new Promise((r,i)=>{if(n.aborted){i(new e.UploadAbortedError);return}let a=setTimeout(()=>{n.removeEventListener(`abort`,o),r()},t),o=()=>{clearTimeout(a),n.removeEventListener(`abort`,o),i(new e.UploadAbortedError)};n.addEventListener(`abort`,o,{once:!0})})}var u=class{#e;#t;#n;#r;#i;#a;#o;#s;#c;#l;#u;#d;#f;#p;#m;#h=`idle`;#g;#_;#v;#y;#b;#x;#S=0;#C=new Map;#w=1;#T=new Set;constructor(t,c,l={}){let u=l.init?.filename??(c instanceof File?c.name:``);if(!u)throw new e.UploadError(`Uploader requires a filename (set options.init.filename for Blob input)`);this.#e={http:t,apiPath:l.apiPath??`/api`,resource:l.resource??`sys/storage`,version:l.version??`v1`},this.#t=c,this.#n=u,this.#r=l.init?.contentType??(c instanceof File&&c.type||void 0),this.#i=l.init?.public,this.#a=Math.max(1,l.partConcurrency??i),this.#o=Math.max(1,l.maxPartRetries??a),this.#s=Math.max(0,l.retryBaseDelay??o),this.#c=Math.max(this.#s,l.retryMaxDelay??s),this.#l=l.onProgress,this.#u=l.onStatusChange,this.#d=l.onSessionOpened,this.#f=new AbortController,this.#p=this.#D(l.signal),this.#g={loaded:0,total:c.size,partsCompleted:0,partsTotal:0,percent:0},this.#m=(0,r.createActor)(n.createUploaderMachine({prepareSession:e=>this.#N(e),uploadParts:()=>this.#L(this.#A()),completeSession:()=>this.#F(),abortSession:()=>this.#I(),killTransport:()=>{this.#f.abort()},recordFailure:e=>{this.#b=e},abortRequested:()=>this.#f.signal.aborted})),this.#m.subscribe(e=>{this.#O(e.value),e.status===`done`&&this.#k(e.value)}),this.#m.start()}get status(){return this.#h}get progress(){return this.#g}start(e){return this.#_?this.#_:(this.#_=new Promise((e,t)=>{this.#v={resolve:e,reject:t}}),this.#m.send({type:`START`,plan:e??{kind:`fresh`}}),this.#_)}async abort(){if(this.#m.getSnapshot().status===`done`)return;this.#E();let e=this.#_;if(e)try{await e}catch{}}#E(){this.#m.send({type:`ABORT`}),this.#f.abort()}#D(e){if(!e)return;if(e.aborted){this.#f.abort();return}let t=()=>this.#E();return e.addEventListener(`abort`,t,{once:!0}),()=>e.removeEventListener(`abort`,t)}#O(e){this.#h!==e&&(this.#h=e,this.#u?.(e))}#k(t){this.#p?.();let n=this.#v;if(n)switch(t){case`succeeded`:n.resolve(this.#j());return;case`aborted`:n.reject(new e.UploadAbortedError);return;default:n.reject(this.#V(this.#b))}}#A(){if(!this.#y)throw new e.UploadError(`upload session is not open`);return this.#y}#j(){if(!this.#x)throw new e.UploadError(`upload result missing after completion`);return this.#x}#M(){let e=0;for(let t of this.#C.values())e+=t;let t=Math.min(this.#g.total,this.#S+e),n=this.#g.total===0?0:Math.floor(t/this.#g.total*100);this.#g={...this.#g,loaded:t,percent:n},this.#l?.(this.#g)}async#N(e){let{session:t,skipParts:n,completedBytes:r}=await this.#P(e);this.#y=t,this.#T=n,this.#S=r,this.#d?.({claimId:t.claimId,key:t.key,partSize:t.partSize,partCount:t.partCount,expiresAt:t.expiresAt}),this.#g={...this.#g,partsTotal:t.partCount,partsCompleted:n.size},this.#M()}async#P(n){if(n.kind===`fresh`)return{session:await t.initUpload(this.#e,{filename:this.#n,size:this.#t.size,contentType:this.#r,public:this.#i},this.#f.signal),skipParts:new Set,completedBytes:0};let r=n.partSize*n.partCount,i=n.partSize*(n.partCount-1)+1;if(this.#t.size<i||this.#t.size>r)throw new e.UploadProtocolError(`resume`,`file size ${this.#t.size} does not fit the resumed session (partSize=${n.partSize}, partCount=${n.partCount})`);let a=new Set,o=0;for(let e of n.completedParts)a.add(e.partNumber),o+=e.size;return{session:{key:n.key,claimId:n.claimId,originalFilename:this.#n,partSize:n.partSize,partCount:n.partCount,expiresAt:n.expiresAt},skipParts:a,completedBytes:o}}async#F(){let e=this.#A(),n=await t.completeUpload(this.#e,e.claimId,this.#f.signal);this.#x={bucket:n.bucket,key:n.key,eTag:n.eTag,size:n.size,contentType:n.contentType,lastModified:n.lastModified,originalFilename:n.originalFilename,metadata:n.metadata}}async#I(){let e=this.#y?.claimId;e!==void 0&&await t.abortUpload(this.#e,e)}async#L(e){let t=Math.min(this.#a,e.partCount),n=[];for(let r=0;r<t;r++)n.push(this.#R(e));try{await Promise.all(n)}catch(e){throw this.#f.abort(),e}}async#R(e){for(;!this.#f.signal.aborted;){let t=this.#z(e.partCount);if(t===null)return;await this.#B(e,t)}}#z(e){for(;this.#w<=e;){let e=this.#w++;if(!this.#T.has(e))return e}return null}async#B(n,r){let i=c(this.#t.size,n.partSize,r,n.partCount),a=(r-1)*n.partSize,o=this.#t.slice(a,a+i),s=0,u;for(;s<this.#o;){if(s++,this.#f.signal.aborted)throw new e.UploadAbortedError;try{this.#C.set(r,0),await t.uploadPart(this.#e,{claimId:n.claimId,partNumber:r,blob:o,onProgress:e=>{this.#C.set(r,Math.min(i,e.loaded)),this.#M()},signal:this.#f.signal}),this.#C.delete(r),this.#S+=i,this.#g={...this.#g,partsCompleted:this.#g.partsCompleted+1},this.#M();return}catch(t){if(this.#C.delete(r),u=t,this.#f.signal.aborted)throw new e.UploadAbortedError;if(s>=this.#o)break;await l(Math.min(this.#c,this.#s*2**(s-1)),this.#f.signal)}}throw new e.UploadPartError(r,s,{cause:u})}#V(t){return t instanceof e.UploadError?t:t instanceof Error?new e.UploadProtocolError(`unknown`,t.message,{cause:t}):new e.UploadProtocolError(`unknown`,String(t))}};function d(e,t,n){return new u(e,t,n).start()}exports.Uploader=u,exports.uploadFile=d;
@@ -1 +1 @@
1
- require(`../_internal/_rolldown/runtime.cjs`);let e=require(`@vef-framework-react/shared`),t=require(`zustand`),n=require(`zustand/middleware`),r=require(`zustand/middleware/immer`);function i(e){return(0,t.create)()((0,n.subscribeWithSelector)((0,r.immer)(e)))}function a(i,a){let{name:o,storage:s,selector:c}=a,l=`__VEF_STORE__${(0,e.constantCase)(o)}__`,u=s===`local`?localStorage:sessionStorage;return(0,t.create)()((0,n.subscribeWithSelector)((0,n.persist)((0,r.immer)(i),{name:l,version:1,storage:(0,n.createJSONStorage)(()=>u),partialize:c??e.identity})))}exports.createPersistedStore=a,exports.createStore=i;
1
+ let e=require("@vef-framework-react/shared"),t=require("zustand"),n=require("zustand/middleware"),r=require("zustand/middleware/immer");function i(e){return(0,t.create)()((0,n.subscribeWithSelector)((0,r.immer)(e)))}function a(i,a){let{name:o,storage:s,selector:c}=a,l=`__VEF_STORE__${(0,e.constantCase)(o)}__`,u=s===`local`?localStorage:sessionStorage;return(0,t.create)()((0,n.subscribeWithSelector)((0,n.persist)((0,r.immer)(i),{name:l,version:1,storage:(0,n.createJSONStorage)(()=>u),partialize:c??e.identity})))}exports.createPersistedStore=a,exports.createStore=i;
@@ -1 +1 @@
1
- require(`../_internal/_rolldown/runtime.cjs`),require(`./bound.cjs`),require(`./unbound.cjs`),require(`./use-deep.cjs`),require(`zustand/shallow`);
1
+ require("./bound.cjs"),require("./unbound.cjs"),require("./use-deep.cjs"),require("zustand/shallow");
@@ -1 +1 @@
1
- require(`../_internal/_rolldown/runtime.cjs`);let e=require(`@vef-framework-react/shared`),t=require(`react`),n=require(`@emotion/react/jsx-runtime`),r=require(`motion/react`),i=require(`zustand`),a=require(`zustand/middleware`),o=require(`zustand/middleware/immer`);var s=`__VEF_COMPONENT_STORE__`,c=new Map;function l(l,u,d){let f=`${l}StoreContext`,p=c.get(f);p||(p=(0,t.createContext)(null),p.displayName=f,c.set(f,p));let m=p;function h({children:c,initialState:l,storageKey:f}){let p=(0,t.useRef)(null),h=(0,t.useRef)(!1),g=(0,t.useRef)(l);if(g.current=l,!p.current||!h.current){let t=u;if(f&&d){let n=`${s}${(0,e.constantCase)(f)}__`,r=d.storage===`local`?localStorage:sessionStorage;p.current=(0,i.createStore)()((0,a.subscribeWithSelector)((0,a.persist)((0,o.immer)(t),{name:n,version:1,storage:(0,a.createJSONStorage)(()=>r),partialize:d.selector??e.identity})))}else p.current=(0,i.createStore)()((0,a.subscribeWithSelector)((0,o.immer)(t)));h.current=!0}return(0,r.useIsomorphicLayoutEffect)(()=>{!(0,e.isPlainObject)(g.current)||!p.current||p.current.setState(t=>{(0,e.mergeWith)(t,g.current,!0)})},[]),(0,n.jsx)(m,{value:p.current,children:c})}function g(){let e=(0,t.use)(m);if(!e){let e=`${l}Store is not found in the React context. Ensure the component is wrapped in ${l}StoreProvider.`;throw Error(e+``)}return e}function _(e){let t=g();return(0,i.useStore)(t,e)}return{StoreProvider:h,useStoreApi:g,useStore:_}}exports.createComponentStore=l;
1
+ let e=require("@vef-framework-react/shared"),t=require("react"),n=require("@emotion/react/jsx-runtime"),r=require("motion/react"),i=require("zustand"),a=require("zustand/middleware"),o=require("zustand/middleware/immer");var s=`__VEF_COMPONENT_STORE__`,c=new Map;function l(l,u,d){let f=`${l}StoreContext`,p=c.get(f);p||(p=(0,t.createContext)(null),p.displayName=f,c.set(f,p));let m=p;function h({children:c,initialState:l,storageKey:f}){let p=(0,t.useRef)(null),h=(0,t.useRef)(!1),g=(0,t.useRef)(l);if(g.current=l,!p.current||!h.current){let t=u;if(f&&d){let n=`${s}${(0,e.constantCase)(f)}__`,r=d.storage===`local`?localStorage:sessionStorage;p.current=(0,i.createStore)()((0,a.subscribeWithSelector)((0,a.persist)((0,o.immer)(t),{name:n,version:1,storage:(0,a.createJSONStorage)(()=>r),partialize:d.selector??e.identity})))}else p.current=(0,i.createStore)()((0,a.subscribeWithSelector)((0,o.immer)(t)));h.current=!0}return(0,r.useIsomorphicLayoutEffect)(()=>{!(0,e.isPlainObject)(g.current)||!p.current||p.current.setState(t=>{(0,e.mergeWith)(t,g.current,!0)})},[]),(0,n.jsx)(m,{value:p.current,children:c})}function g(){let e=(0,t.use)(m);if(!e){let e=`${l}Store is not found in the React context. Ensure the component is wrapped in ${l}StoreProvider.`;throw Error(e+``)}return e}function _(e){let t=g();return(0,i.useStore)(t,e)}return{StoreProvider:h,useStoreApi:g,useStore:_}}exports.createComponentStore=l;
@@ -1 +1 @@
1
- require(`../_internal/_rolldown/runtime.cjs`);let e=require(`@vef-framework-react/shared`),t=require(`react`);function n(n){let r=(0,t.useRef)(null);return t=>{let i=n(t);return(0,e.isDeepEqual)(r.current,i)?r.current:(r.current=i,i)}}exports.useDeep=n;
1
+ let e=require("@vef-framework-react/shared"),t=require("react");function n(n){let r=(0,t.useRef)(null);return t=>{let i=n(t);return(0,e.isDeepEqual)(r.current,i)?r.current:(r.current=i,i)}}exports.useDeep=n;
@@ -1,4 +1,4 @@
1
- /*! @vef-framework-react/core v2.2.2 made by Venus | 2026-05-18T12:43:53.772Z */
1
+ /*! @vef-framework-react/core v2.4.0 made by Venus | 2026-06-15T15:10:07.347Z */
2
2
  import { createHttpClient as e } from "../http/helpers.js";
3
3
  import { createQueryClient as t } from "../query/helpers.js";
4
4
  import { HTTP_CLIENT as n, PROXIED_METHODS as r, QUERY_CLIENT as i } from "./constants.js";
@@ -1,4 +1,4 @@
1
- /*! @vef-framework-react/core v2.2.2 made by Venus | 2026-05-18T12:43:53.772Z */
1
+ /*! @vef-framework-react/core v2.4.0 made by Venus | 2026-06-15T15:10:07.347Z */
2
2
  import { HTTP_CLIENT_KEY as e } from "../http/constants.js";
3
3
  import { QUERY_CLIENT_KEY as t } from "../query/constants.js";
4
4
  //#region src/api/constants.ts
@@ -1,4 +1,4 @@
1
- /*! @vef-framework-react/core v2.2.2 made by Venus | 2026-05-18T12:43:53.772Z */
1
+ /*! @vef-framework-react/core v2.4.0 made by Venus | 2026-06-15T15:10:07.347Z */
2
2
  import { ApiClient as e } from "./client.js";
3
3
  //#region src/api/helpers.ts
4
4
  var t = "v1";
@@ -1,4 +1,4 @@
1
- /*! @vef-framework-react/core v2.2.2 made by Venus | 2026-05-18T12:43:53.772Z */
1
+ /*! @vef-framework-react/core v2.4.0 made by Venus | 2026-06-15T15:10:07.347Z */
2
2
  import "./constants.js";
3
3
  import "./client.js";
4
4
  import "./helpers.js";
@@ -1,4 +1,4 @@
1
- /*! @vef-framework-react/core v2.2.2 made by Venus | 2026-05-18T12:43:53.772Z */
1
+ /*! @vef-framework-react/core v2.4.0 made by Venus | 2026-06-15T15:10:07.347Z */
2
2
  import { isNullish as e, isString as t } from "@vef-framework-react/shared";
3
3
  //#region src/auth/helpers.ts
4
4
  function n(n, r, i = "any") {
@@ -1,2 +1,2 @@
1
- /*! @vef-framework-react/core v2.2.2 made by Venus | 2026-05-18T12:43:53.772Z */
1
+ /*! @vef-framework-react/core v2.4.0 made by Venus | 2026-06-15T15:10:07.347Z */
2
2
  import "./helpers.js";
@@ -1,4 +1,4 @@
1
- /*! @vef-framework-react/core v2.2.2 made by Venus | 2026-05-18T12:43:53.772Z */
1
+ /*! @vef-framework-react/core v2.4.0 made by Venus | 2026-06-15T15:10:07.347Z */
2
2
  import { QUERY_CLIENT as e } from "../api/constants.js";
3
3
  import { QueryClientProvider as t } from "@tanstack/react-query";
4
4
  import { createContext as n, use as r } from "react";
@@ -1,4 +1,4 @@
1
- /*! @vef-framework-react/core v2.2.2 made by Venus | 2026-05-18T12:43:53.772Z */
1
+ /*! @vef-framework-react/core v2.4.0 made by Venus | 2026-06-15T15:10:07.347Z */
2
2
  import { createContext as e, use as t } from "react";
3
3
  //#region src/context/app.ts
4
4
  var n = e({}), r = n.Provider;
@@ -1,4 +1,4 @@
1
- /*! @vef-framework-react/core v2.2.2 made by Venus | 2026-05-18T12:43:53.772Z */
1
+ /*! @vef-framework-react/core v2.4.0 made by Venus | 2026-06-15T15:10:07.347Z */
2
2
  import { isFunction as e } from "@vef-framework-react/shared";
3
3
  import { createContext as t, use as n, useEffect as r, useState as i, useSyncExternalStore as a } from "react";
4
4
  import { jsx as o } from "@emotion/react/jsx-runtime";
@@ -1,4 +1,4 @@
1
- /*! @vef-framework-react/core v2.2.2 made by Venus | 2026-05-18T12:43:53.772Z */
1
+ /*! @vef-framework-react/core v2.4.0 made by Venus | 2026-06-15T15:10:07.347Z */
2
2
  import { createContext as e, use as t } from "react";
3
3
  //#region src/context/disabled.ts
4
4
  var n = e(!1);
@@ -1,4 +1,4 @@
1
- /*! @vef-framework-react/core v2.2.2 made by Venus | 2026-05-18T12:43:53.772Z */
1
+ /*! @vef-framework-react/core v2.4.0 made by Venus | 2026-06-15T15:10:07.347Z */
2
2
  import "./api-client.js";
3
3
  import "./app.js";
4
4
  import "./context-selector.js";
@@ -1,10 +1,11 @@
1
- /*! @vef-framework-react/core v2.2.2 made by Venus | 2026-05-18T12:43:53.772Z */
2
- import { AxisModifier as e, RestrictToHorizontalAxis as t, RestrictToVerticalAxis as n, SnapModifier as r, restrictShapeToBoundingRectangle as i } from "@dnd-kit/abstract/modifiers";
3
- import { closestCenter as a, closestCorners as o, defaultCollisionDetection as s, directionBiased as c, pointerDistance as l, pointerIntersection as u, shapeIntersection as d } from "@dnd-kit/collision";
4
- import { Feedback as f, defaultPreset as p } from "@dnd-kit/dom";
5
- import { RestrictToElement as m, RestrictToWindow as h } from "@dnd-kit/dom/modifiers";
6
- import { arrayMove as g, arraySwap as _, move as v, swap as y } from "@dnd-kit/helpers";
7
- import { DragDropProvider as b, DragOverlay as x, KeyboardSensor as S, PointerSensor as C, useDragDropMonitor as w, useDraggable as T, useDroppable as E } from "@dnd-kit/react";
8
- import { useSortable as D } from "@dnd-kit/react/sortable";
9
- import { DragDropContext as O, Draggable as k, Droppable as A } from "@hello-pangea/dnd";
10
- export { e as AxisModifier, O as DragDropContext, b as DragDropProvider, x as DragOverlay, k as Draggable, A as Droppable, f as Feedback, S as KeyboardSensor, C as PointerSensor, m as RestrictToElement, t as RestrictToHorizontalAxis, n as RestrictToVerticalAxis, h as RestrictToWindow, r as SnapModifier, a as closestCenter, o as closestCorners, s as defaultCollisionDetection, p as defaultPreset, c as directionBiased, g as moveArrayItem, v as moveDragItem, l as pointerDistance, u as pointerIntersection, i as restrictShapeToBoundingRectangle, d as shapeIntersection, _ as swapArrayItem, y as swapDragItem, w as useDragDropMonitor, T as useDraggable, E as useDroppable, D as useSortable };
1
+ /*! @vef-framework-react/core v2.4.0 made by Venus | 2026-06-15T15:10:07.347Z */
2
+ import { CollisionPriority as e } from "@dnd-kit/abstract";
3
+ import { AxisModifier as t, RestrictToHorizontalAxis as n, RestrictToVerticalAxis as r, SnapModifier as i, restrictShapeToBoundingRectangle as a } from "@dnd-kit/abstract/modifiers";
4
+ import { closestCenter as o, closestCorners as s, defaultCollisionDetection as c, directionBiased as l, pointerDistance as u, pointerIntersection as d, shapeIntersection as f } from "@dnd-kit/collision";
5
+ import { Feedback as p, PointerActivationConstraints as m, defaultPreset as h } from "@dnd-kit/dom";
6
+ import { RestrictToElement as g, RestrictToWindow as _ } from "@dnd-kit/dom/modifiers";
7
+ import { arrayMove as v, arraySwap as y, move as b, swap as x } from "@dnd-kit/helpers";
8
+ import { DragDropProvider as S, DragOverlay as C, KeyboardSensor as w, PointerSensor as T, useDragDropMonitor as E, useDragOperation as D, useDraggable as O, useDroppable as k } from "@dnd-kit/react";
9
+ import { useSortable as A } from "@dnd-kit/react/sortable";
10
+ import { DragDropContext as j, Draggable as M, Droppable as N } from "@hello-pangea/dnd";
11
+ export { t as AxisModifier, e as CollisionPriority, j as DragDropContext, S as DragDropProvider, C as DragOverlay, M as Draggable, N as Droppable, p as Feedback, w as KeyboardSensor, m as PointerActivationConstraints, T as PointerSensor, g as RestrictToElement, n as RestrictToHorizontalAxis, r as RestrictToVerticalAxis, _ as RestrictToWindow, i as SnapModifier, o as closestCenter, s as closestCorners, c as defaultCollisionDetection, h as defaultPreset, l as directionBiased, v as moveArrayItem, b as moveDragItem, u as pointerDistance, d as pointerIntersection, a as restrictShapeToBoundingRectangle, f as shapeIntersection, y as swapArrayItem, x as swapDragItem, E as useDragDropMonitor, D as useDragOperation, O as useDraggable, k as useDroppable, A as useSortable };
@@ -1,4 +1,4 @@
1
- /*! @vef-framework-react/core v2.2.2 made by Venus | 2026-05-18T12:43:53.772Z */
1
+ /*! @vef-framework-react/core v2.4.0 made by Venus | 2026-06-15T15:10:07.347Z */
2
2
  import { CONTENT_DISPOSITION_FILENAME_REGEX as e, DEFAULT_TIMEOUT as t, PATH_PARAM_REGEX as n, SKIP_AUTH_HEADER as r } from "./constants.js";
3
3
  import { BusinessError as i } from "./errors.js";
4
4
  import { encodeQueryString as a, isArray as o, isFunction as s, isNullish as c, isString as l } from "@vef-framework-react/shared";
@@ -1,4 +1,4 @@
1
- /*! @vef-framework-react/core v2.2.2 made by Venus | 2026-05-18T12:43:53.772Z */
1
+ /*! @vef-framework-react/core v2.4.0 made by Venus | 2026-06-15T15:10:07.347Z */
2
2
  //#region src/http/constants.ts
3
3
  var e = "__vef_http_client_key", t = /:(?<key>\w+)/g, n = /filename[^;=\n]*=(?<name>(?<quote>['"]).*?\2|[^;\n]*)/, r = "X-Skip-Authentication", i = "1", a = 3e4;
4
4
  //#endregion
@@ -1,4 +1,4 @@
1
- /*! @vef-framework-react/core v2.2.2 made by Venus | 2026-05-18T12:43:53.772Z */
1
+ /*! @vef-framework-react/core v2.4.0 made by Venus | 2026-06-15T15:10:07.347Z */
2
2
  //#region src/http/errors.ts
3
3
  var e = class extends Error {
4
4
  code;
@@ -1,4 +1,4 @@
1
- /*! @vef-framework-react/core v2.2.2 made by Venus | 2026-05-18T12:43:53.772Z */
1
+ /*! @vef-framework-react/core v2.4.0 made by Venus | 2026-06-15T15:10:07.347Z */
2
2
  import "./errors.js";
3
3
  import { HttpClient as e } from "./client.js";
4
4
  //#region src/http/helpers.ts
@@ -1,4 +1,4 @@
1
- /*! @vef-framework-react/core v2.2.2 made by Venus | 2026-05-18T12:43:53.772Z */
1
+ /*! @vef-framework-react/core v2.4.0 made by Venus | 2026-06-15T15:10:07.347Z */
2
2
  import "./constants.js";
3
3
  import "./errors.js";
4
4
  import "./client.js";
@@ -1,4 +1,4 @@
1
- /*! @vef-framework-react/core v2.2.2 made by Venus | 2026-05-18T12:43:53.772Z */
1
+ /*! @vef-framework-react/core v2.4.0 made by Venus | 2026-06-15T15:10:07.347Z */
2
2
  import { applyPatches as e, current as t, enableMapSet as n, enablePatches as r, original as i, produce as a, produceWithPatches as o, setAutoFreeze as s } from "immer";
3
3
  import { useImmer as c, useImmerReducer as l } from "use-immer";
4
4
  n(), r(), s(!1);