@vef-framework/core 1.0.116 → 1.0.118

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.
@@ -1 +1 @@
1
- /*! VefFramework version: 1.0.116, build time: 2025-03-10T07:29:22.754Z, made by Venus. */import{useQuery,keepPreviousData,useSuspenseQuery,useMutation,useIsFetching,useIsMutating,QueryClientProvider}from"@tanstack/react-query";import{createElement}from"react";import{createQueryClient}from"./query-client.js";import{createRequestClient}from"./request-client.js";var __defProp=Object.defineProperty,__typeError=msg=>{throw TypeError(msg)},__defNormalProp=(obj,key,value)=>key in obj?__defProp(obj,key,{enumerable:!0,configurable:!0,writable:!0,value}):obj[key]=value,__publicField=(obj,key,value)=>__defNormalProp(obj,typeof key!="symbol"?key+"":key,value),__accessCheck=(obj,member,msg)=>member.has(obj)||__typeError("Cannot "+msg),__privateGet=(obj,member,getter)=>(__accessCheck(obj,member,"read from private field"),getter?getter.call(obj):member.get(obj)),__privateAdd=(obj,member,value)=>member.has(obj)?__typeError("Cannot add the same private member more than once"):member instanceof WeakSet?member.add(obj):member.set(obj,value),__privateSet=(obj,member,value,setter)=>(__accessCheck(obj,member,"write to private field"),setter?setter.call(obj,value):member.set(obj,value),value),__privateMethod=(obj,member,method)=>(__accessCheck(obj,member,"access private method"),method),_queryClient,_requestClient,_requestMethods,_currentSignal,_ApiClient_instances,selectData_fn,wrapRefetchFn_fn,createQueryResult_fn,createApi_fn;class ApiClient{constructor(options){this.options=options,__privateAdd(this,_ApiClient_instances),__publicField(this,"useApiQuery"),__publicField(this,"useSuspenseApiQuery"),__publicField(this,"useApiMutation"),__publicField(this,"useIsFetching"),__publicField(this,"useIsMutating"),__publicField(this,"QueryClientProvider"),__privateAdd(this,_queryClient),__privateAdd(this,_requestClient),__privateAdd(this,_requestMethods),__privateAdd(this,_currentSignal),__privateSet(this,_queryClient,createQueryClient(options)),__privateSet(this,_requestClient,createRequestClient(options)),__privateSet(this,_requestMethods,{get:async(url,options2)=>{const signal=__privateGet(this,_currentSignal);return __privateSet(this,_currentSignal,void 0),await __privateGet(this,_requestClient).get(url,{...options2,signal})},post:async(url,data,options2)=>{const signal=__privateGet(this,_currentSignal);return __privateSet(this,_currentSignal,void 0),await __privateGet(this,_requestClient).post(url,data,{...options2,signal})},put:async(url,data,options2)=>{const signal=__privateGet(this,_currentSignal);return __privateSet(this,_currentSignal,void 0),await __privateGet(this,_requestClient).put(url,data,{...options2,signal})},delete:async(url,options2)=>{const signal=__privateGet(this,_currentSignal);return __privateSet(this,_currentSignal,void 0),await __privateGet(this,_requestClient).delete(url,{...options2,signal})}});const that=this;this.useApiQuery=function(queryFn,args,options2){var _a;const{keepPreviousData:keepPreviousData$1,placeholderData,initialData,...restOptions}=options2??{},result=useQuery({queryKey:[queryFn.key,args],queryFn:({signal})=>queryFn(args,{signal}),select:__privateMethod(that,_ApiClient_instances,selectData_fn),placeholderData:placeholderData??keepPreviousData$1===!0?keepPreviousData:void 0,initialData:initialData?{code:0,message:"ok",data:initialData}:void 0,...restOptions});return __privateMethod(_a=that,_ApiClient_instances,createQueryResult_fn).call(_a,result)},this.useSuspenseApiQuery=function(queryFn,args,options2){const{keepPreviousData:keepPreviousData2,initialData,...restOptions}=options2??{},{data,refetch}=useSuspenseQuery({queryKey:[queryFn.key,args],queryFn:({signal})=>queryFn(args,{signal}),select:__privateMethod(that,_ApiClient_instances,selectData_fn),initialData:initialData?{code:0,message:"ok",data:initialData}:void 0,...restOptions});return{data,refetch:__privateMethod(this,_ApiClient_instances,wrapRefetchFn_fn).call(this,refetch)}},this.useApiMutation=function(mutationFn){const{isPending,isIdle,isError,isSuccess,error,data,mutateAsync}=useMutation({mutationKey:[mutationFn.key],mutationFn:args=>mutationFn(args)});return{mutate:async args=>await mutateAsync(args),isPending,isIdle,isError,isSuccess,message:data?.message,error:error??void 0,data:data?.data}},this.useIsFetching=function(apiKey,args){return useIsFetching({queryKey:arguments.length>1?[apiKey,args]:[apiKey],type:"active",exact:!1})>0},this.useIsMutating=function(apiKey){return useIsMutating({mutationKey:[apiKey],exact:!1})>0},this.QueryClientProvider=function({children}){return createElement(QueryClientProvider,{client:__privateGet(that,_queryClient)},children)}}async fetchApiQuery(queryFn,args,options){const{initialData,...restOptions}=options??{};return(await __privateGet(this,_queryClient).fetchQuery({queryKey:[queryFn.key,args],queryFn:({signal})=>queryFn(args,{signal}),initialData:initialData?{code:0,message:"ok",data:initialData}:void 0,...restOptions})).data}createQueryApi(key,factory){const apiFn=__privateMethod(this,_ApiClient_instances,createApi_fn).call(this,key,factory);return apiFn.useQuery=this.useApiQuery.bind(this,apiFn),apiFn.useSuspenseQuery=this.useSuspenseApiQuery.bind(this,apiFn),apiFn.fetchQuery=this.fetchApiQuery.bind(this,apiFn),apiFn.getQueryData=this.getApiQueryData.bind(this,key),apiFn.getQueriesData=this.getApiQueriesData.bind(this,key),apiFn.setQueryData=(data,args)=>this.setApiQueryData(data,key,args),apiFn.ensureQueryData=this.ensureApiQueryData.bind(this,apiFn),apiFn.removeQueries=this.removeApiQueries.bind(this,key),apiFn.invalidateQueries=this.invalidateApiQueries.bind(this,key),apiFn.resetQueries=this.resetApiQueries.bind(this,key),apiFn.refetchQueries=this.refetchApiQueries.bind(this,key),apiFn.cancelQueries=this.cancelApiQueries.bind(this,key),apiFn.isFetching=this.isFetching.bind(this,key),apiFn.useIsFetching=this.useIsFetching.bind(void 0,key),Object.freeze(apiFn)}createMutationApi(key,factory,relatedQueries=[]){const apiFn=__privateMethod(this,_ApiClient_instances,createApi_fn).call(this,key,factory);return apiFn.relatedQueries=Object.freeze(relatedQueries),apiFn.useMutation=this.useApiMutation.bind(this,apiFn),apiFn.refetchRelatedQueries=function(){return Promise.all(relatedQueries.map(query=>query.refetchQueries()))},apiFn.invalidateRelatedQueries=function(){return Promise.all(relatedQueries.map(query=>query.invalidateQueries()))},apiFn.isMutating=this.isMutating.bind(this,key),apiFn.useIsMutating=this.useIsMutating.bind(void 0,key),Object.freeze(apiFn)}getApiQueryData(apiKey,args){return __privateGet(this,_queryClient).getQueryData(arguments.length>1?[apiKey,args]:[apiKey])}getApiQueriesData(apiKey,args){return __privateGet(this,_queryClient).getQueriesData({queryKey:arguments.length>1?[apiKey,args]:[apiKey],type:"active",exact:!1})}setApiQueryData(data,apiKey,args){__privateGet(this,_queryClient).setQueryData(arguments.length>2?[apiKey,args]:[apiKey],data)}async ensureApiQueryData(queryFn,args,options){const{initialData,...restOptions}=options??{};return(await __privateGet(this,_queryClient).ensureQueryData({queryKey:[queryFn.key,args],queryFn:({signal})=>queryFn(args,{signal}),initialData:initialData?{code:0,message:"ok",data:initialData}:void 0,...restOptions,revalidateIfStale:!0})).data}removeApiQueries(apiKey,args){__privateGet(this,_queryClient).removeQueries({type:"all",exact:!1,queryKey:arguments.length>1?[apiKey,args]:[apiKey]})}invalidateApiQueries(apiKey,args){return __privateGet(this,_queryClient).invalidateQueries({queryKey:arguments.length>1?[apiKey,args]:[apiKey],type:"all",exact:!1,stale:!1,refetchType:"active"},{throwOnError:!1,cancelRefetch:!1})}resetApiQueries(apiKey,args){return __privateGet(this,_queryClient).resetQueries({queryKey:arguments.length>1?[apiKey,args]:[apiKey],type:"active",exact:!1},{cancelRefetch:!0,throwOnError:!1})}refetchApiQueries(apiKey,args){return __privateGet(this,_queryClient).refetchQueries({queryKey:arguments.length>1?[apiKey,args]:[apiKey],type:"active",exact:!1},{throwOnError:!1,cancelRefetch:!1})}cancelApiQueries(apiKey,args){return __privateGet(this,_queryClient).cancelQueries({queryKey:arguments.length>1?[apiKey,args]:[apiKey],type:"active",exact:!1},{revert:!0,silent:!0})}isFetching(apiKey,args){return __privateGet(this,_queryClient).isFetching({queryKey:arguments.length>1?[apiKey,args]:[apiKey],type:"active",exact:!1})>0}isMutating(apiKey){return __privateGet(this,_queryClient).isMutating({mutationKey:[apiKey],exact:!1})>0}}_queryClient=new WeakMap,_requestClient=new WeakMap,_requestMethods=new WeakMap,_currentSignal=new WeakMap,_ApiClient_instances=new WeakSet,selectData_fn=function(data){return data.data},wrapRefetchFn_fn=function(refetch){return async options=>{const result=await refetch(options);return{isSuccess:result.isSuccess,isError:result.isError,error:result.error,data:result.data}}},createQueryResult_fn=function({isPending,isFetching,isLoading,isRefetching,isSuccess,isPlaceholderData,isError,isLoadingError,isRefetchError,isStale,error,data,refetch}){return{isPending,isSuccess,isError,isLoadingError,isRefetchError,isLoading,isFetching,isRefetching,isPlaceholderData,isStale,error:error??void 0,data,refetch:__privateMethod(this,_ApiClient_instances,wrapRefetchFn_fn).call(this,refetch)}},createApi_fn=function(key,factory){const fn=factory(__privateGet(this,_requestMethods)),apiFn=async(args,apiOptions)=>(__privateSet(this,_currentSignal,apiOptions?.signal),await fn(args));return apiFn.key=key,apiFn};function createApiClient(options){return Object.freeze(new ApiClient(options))}/*! VefFramework is a blazingly high-level, modern, flexible, easy-to-use UI framework made by Venus. Follow me on Github: https://github.com/ilxqx! @ilxqx */export{ApiClient,createApiClient};
1
+ /*! VefFramework version: 1.0.118, build time: 2025-03-11T06:26:31.511Z, made by Venus. */import{useQuery,keepPreviousData,useSuspenseQuery,useMutation,useIsFetching,useIsMutating,QueryClientProvider}from"@tanstack/react-query";import{createElement}from"react";import{createQueryClient}from"./query-client.js";import{createRequestClient}from"./request-client.js";var __defProp=Object.defineProperty,__typeError=msg=>{throw TypeError(msg)},__defNormalProp=(obj,key,value)=>key in obj?__defProp(obj,key,{enumerable:!0,configurable:!0,writable:!0,value}):obj[key]=value,__publicField=(obj,key,value)=>__defNormalProp(obj,typeof key!="symbol"?key+"":key,value),__accessCheck=(obj,member,msg)=>member.has(obj)||__typeError("Cannot "+msg),__privateGet=(obj,member,getter)=>(__accessCheck(obj,member,"read from private field"),getter?getter.call(obj):member.get(obj)),__privateAdd=(obj,member,value)=>member.has(obj)?__typeError("Cannot add the same private member more than once"):member instanceof WeakSet?member.add(obj):member.set(obj,value),__privateSet=(obj,member,value,setter)=>(__accessCheck(obj,member,"write to private field"),setter?setter.call(obj,value):member.set(obj,value),value),__privateMethod=(obj,member,method)=>(__accessCheck(obj,member,"access private method"),method),_queryClient,_requestClient,_requestMethods,_currentSignal,_ApiClient_instances,selectData_fn,wrapRefetchFn_fn,createQueryResult_fn,createApi_fn;class ApiClient{constructor(options){this.options=options,__privateAdd(this,_ApiClient_instances),__publicField(this,"useApiQuery"),__publicField(this,"useSuspenseApiQuery"),__publicField(this,"useApiMutation"),__publicField(this,"useIsFetching"),__publicField(this,"useIsMutating"),__publicField(this,"QueryClientProvider"),__privateAdd(this,_queryClient),__privateAdd(this,_requestClient),__privateAdd(this,_requestMethods),__privateAdd(this,_currentSignal),__privateSet(this,_queryClient,createQueryClient(options)),__privateSet(this,_requestClient,createRequestClient(options)),__privateSet(this,_requestMethods,{get:async(url,options2)=>{const signal=__privateGet(this,_currentSignal);return __privateSet(this,_currentSignal,void 0),await __privateGet(this,_requestClient).get(url,{...options2,signal})},post:async(url,data,options2)=>{const signal=__privateGet(this,_currentSignal);return __privateSet(this,_currentSignal,void 0),await __privateGet(this,_requestClient).post(url,data,{...options2,signal})},put:async(url,data,options2)=>{const signal=__privateGet(this,_currentSignal);return __privateSet(this,_currentSignal,void 0),await __privateGet(this,_requestClient).put(url,data,{...options2,signal})},delete:async(url,options2)=>{const signal=__privateGet(this,_currentSignal);return __privateSet(this,_currentSignal,void 0),await __privateGet(this,_requestClient).delete(url,{...options2,signal})}});const that=this;this.useApiQuery=function(queryFn,args,options2){var _a;const{keepPreviousData:keepPreviousData$1,placeholderData,initialData,...restOptions}=options2??{},result=useQuery({queryKey:[queryFn.key,args],queryFn:({signal})=>queryFn(args,{signal}),select:__privateMethod(that,_ApiClient_instances,selectData_fn),placeholderData:placeholderData??keepPreviousData$1===!0?keepPreviousData:void 0,initialData:initialData?{code:0,message:"ok",data:initialData}:void 0,...restOptions});return __privateMethod(_a=that,_ApiClient_instances,createQueryResult_fn).call(_a,result)},this.useSuspenseApiQuery=function(queryFn,args,options2){const{keepPreviousData:keepPreviousData2,initialData,...restOptions}=options2??{},{data,refetch}=useSuspenseQuery({queryKey:[queryFn.key,args],queryFn:({signal})=>queryFn(args,{signal}),select:__privateMethod(that,_ApiClient_instances,selectData_fn),initialData:initialData?{code:0,message:"ok",data:initialData}:void 0,...restOptions});return{data,refetch:__privateMethod(this,_ApiClient_instances,wrapRefetchFn_fn).call(this,refetch)}},this.useApiMutation=function(mutationFn){const{isPending,isIdle,isError,isSuccess,error,data,mutateAsync}=useMutation({mutationKey:[mutationFn.key],mutationFn:args=>mutationFn(args)});return{mutate:async args=>await mutateAsync(args),isPending,isIdle,isError,isSuccess,message:data?.message,error:error??void 0,data:data?.data}},this.useIsFetching=function(apiKey,args){return useIsFetching({queryKey:arguments.length>1?[apiKey,args]:[apiKey],type:"active",exact:!1})>0},this.useIsMutating=function(apiKey){return useIsMutating({mutationKey:[apiKey],exact:!1})>0},this.QueryClientProvider=function({children}){return createElement(QueryClientProvider,{client:__privateGet(that,_queryClient)},children)}}async fetchApiQuery(queryFn,args,options){const{initialData,...restOptions}=options??{};return(await __privateGet(this,_queryClient).fetchQuery({queryKey:[queryFn.key,args],queryFn:({signal})=>queryFn(args,{signal}),initialData:initialData?{code:0,message:"ok",data:initialData}:void 0,...restOptions})).data}createQueryApi(key,factory){const apiFn=__privateMethod(this,_ApiClient_instances,createApi_fn).call(this,key,factory);return apiFn.useQuery=this.useApiQuery.bind(this,apiFn),apiFn.useSuspenseQuery=this.useSuspenseApiQuery.bind(this,apiFn),apiFn.fetchQuery=this.fetchApiQuery.bind(this,apiFn),apiFn.getQueryData=this.getApiQueryData.bind(this,key),apiFn.getQueriesData=this.getApiQueriesData.bind(this,key),apiFn.setQueryData=(data,args)=>this.setApiQueryData(data,key,args),apiFn.ensureQueryData=this.ensureApiQueryData.bind(this,apiFn),apiFn.removeQueries=this.removeApiQueries.bind(this,key),apiFn.invalidateQueries=this.invalidateApiQueries.bind(this,key),apiFn.resetQueries=this.resetApiQueries.bind(this,key),apiFn.refetchQueries=this.refetchApiQueries.bind(this,key),apiFn.cancelQueries=this.cancelApiQueries.bind(this,key),apiFn.isFetching=this.isFetching.bind(this,key),apiFn.useIsFetching=this.useIsFetching.bind(void 0,key),Object.freeze(apiFn)}createMutationApi(key,factory,relatedQueries=[]){const apiFn=__privateMethod(this,_ApiClient_instances,createApi_fn).call(this,key,factory);return apiFn.relatedQueries=Object.freeze(relatedQueries),apiFn.useMutation=this.useApiMutation.bind(this,apiFn),apiFn.refetchRelatedQueries=function(){return Promise.all(relatedQueries.map(query=>query.refetchQueries()))},apiFn.invalidateRelatedQueries=function(){return Promise.all(relatedQueries.map(query=>query.invalidateQueries()))},apiFn.isMutating=this.isMutating.bind(this,key),apiFn.useIsMutating=this.useIsMutating.bind(void 0,key),Object.freeze(apiFn)}getApiQueryData(apiKey,args){return __privateGet(this,_queryClient).getQueryData(arguments.length>1?[apiKey,args]:[apiKey])}getApiQueriesData(apiKey,args){return __privateGet(this,_queryClient).getQueriesData({queryKey:arguments.length>1?[apiKey,args]:[apiKey],type:"active",exact:!1})}setApiQueryData(data,apiKey,args){__privateGet(this,_queryClient).setQueryData(arguments.length>2?[apiKey,args]:[apiKey],data)}async ensureApiQueryData(queryFn,args,options){const{initialData,...restOptions}=options??{};return(await __privateGet(this,_queryClient).ensureQueryData({queryKey:[queryFn.key,args],queryFn:({signal})=>queryFn(args,{signal}),initialData:initialData?{code:0,message:"ok",data:initialData}:void 0,...restOptions,revalidateIfStale:!0})).data}removeApiQueries(apiKey,args){__privateGet(this,_queryClient).removeQueries({type:"all",exact:!1,queryKey:arguments.length>1?[apiKey,args]:[apiKey]})}invalidateApiQueries(apiKey,args){return __privateGet(this,_queryClient).invalidateQueries({queryKey:arguments.length>1?[apiKey,args]:[apiKey],type:"all",exact:!1,stale:!1,refetchType:"active"},{throwOnError:!1,cancelRefetch:!1})}resetApiQueries(apiKey,args){return __privateGet(this,_queryClient).resetQueries({queryKey:arguments.length>1?[apiKey,args]:[apiKey],type:"active",exact:!1},{cancelRefetch:!0,throwOnError:!1})}refetchApiQueries(apiKey,args){return __privateGet(this,_queryClient).refetchQueries({queryKey:arguments.length>1?[apiKey,args]:[apiKey],type:"active",exact:!1},{throwOnError:!1,cancelRefetch:!1})}cancelApiQueries(apiKey,args){return __privateGet(this,_queryClient).cancelQueries({queryKey:arguments.length>1?[apiKey,args]:[apiKey],type:"active",exact:!1},{revert:!0,silent:!0})}isFetching(apiKey,args){return __privateGet(this,_queryClient).isFetching({queryKey:arguments.length>1?[apiKey,args]:[apiKey],type:"active",exact:!1})>0}isMutating(apiKey){return __privateGet(this,_queryClient).isMutating({mutationKey:[apiKey],exact:!1})>0}}_queryClient=new WeakMap,_requestClient=new WeakMap,_requestMethods=new WeakMap,_currentSignal=new WeakMap,_ApiClient_instances=new WeakSet,selectData_fn=function(data){return data.data},wrapRefetchFn_fn=function(refetch){return async options=>{const result=await refetch(options);return{isSuccess:result.isSuccess,isError:result.isError,error:result.error,data:result.data}}},createQueryResult_fn=function({isPending,isFetching,isLoading,isRefetching,isSuccess,isPlaceholderData,isError,isLoadingError,isRefetchError,isStale,error,data,refetch}){return{isPending,isSuccess,isError,isLoadingError,isRefetchError,isLoading,isFetching,isRefetching,isPlaceholderData,isStale,error:error??void 0,data,refetch:__privateMethod(this,_ApiClient_instances,wrapRefetchFn_fn).call(this,refetch)}},createApi_fn=function(key,factory){const fn=factory(__privateGet(this,_requestMethods)),apiFn=async(args,apiOptions)=>(__privateSet(this,_currentSignal,apiOptions?.signal),await fn(args));return apiFn.key=key,apiFn};function createApiClient(options){return Object.freeze(new ApiClient(options))}/*! VefFramework is a blazingly high-level, modern, flexible, easy-to-use UI framework made by Venus. Follow me on Github: https://github.com/ilxqx! @ilxqx */export{ApiClient,createApiClient};
@@ -1 +1 @@
1
- /*! VefFramework version: 1.0.116, build time: 2025-03-10T07:29:22.754Z, made by Venus. */import{VefError}from"@vef-framework/shared";import{createContext,useMemo,createElement,useContext}from"react";const Context=createContext(null),ApiContextProvider=({client,dataDictionaryApi,loginApi,logoutApi,fetchAuthenticatedUserApi,children})=>{const apiContext=useMemo(()=>{const stubQueryApi=client.createQueryApi("_vefStubQueryApi",()=>stubData=>Promise.resolve({code:0,message:"ok",data:stubData})),asyncFnQueryApi=client.createQueryApi("_vefAsyncFnQueryApi",()=>async({args,fn})=>({code:0,message:"ok",data:await fn(...args)})),stubMutationApi=client.createMutationApi("_vefStubMutationApi",()=>stubData=>Promise.resolve({code:0,message:"ok",data:stubData})),asyncFnMutationApi=client.createMutationApi("_vefAsyncFnMutationApi",()=>async({args,fn})=>({code:0,message:"ok",data:await fn(...args)}));return Object.freeze({useApiQuery:client.useApiQuery,useSuspenseApiQuery:client.useSuspenseApiQuery,useApiMutation:client.useApiMutation,useIsFetching:client.useIsFetching,useIsMutating:client.useIsMutating,fetchApiQuery:client.fetchApiQuery.bind(client),createQueryApi:client.createQueryApi.bind(client),createMutationApi:client.createMutationApi.bind(client),getApiQueryData:client.getApiQueryData.bind(client),getApiQueriesData:client.getApiQueriesData.bind(client),setApiQueryData:client.setApiQueryData.bind(client),ensureApiQueryData:client.ensureApiQueryData.bind(client),removeApiQueries:client.removeApiQueries.bind(client),invalidateApiQueries:client.invalidateApiQueries.bind(client),resetApiQueries:client.resetApiQueries.bind(client),refetchApiQueries:client.refetchApiQueries.bind(client),cancelApiQueries:client.cancelApiQueries.bind(client),isFetching:client.isFetching.bind(client),isMutating:client.isMutating.bind(client),stubQueryApi,asyncFnQueryApi,stubMutationApi,asyncFnMutationApi,dataDictionaryApi,loginApi,logoutApi,fetchAuthenticatedUserApi})},[client,dataDictionaryApi,loginApi,logoutApi,fetchAuthenticatedUserApi]);return createElement(Context.Provider,{value:apiContext},createElement(client.QueryClientProvider,{},children))};function useApiContext(){const context=useContext(Context);if(context===null)throw new VefError(-1,"Api context not found: Please ensure useApiContext is called within an ApiContextProvider");return context}/*! VefFramework is a blazingly high-level, modern, flexible, easy-to-use UI framework made by Venus. Follow me on Github: https://github.com/ilxqx! @ilxqx */export{ApiContextProvider,useApiContext};
1
+ /*! VefFramework version: 1.0.118, build time: 2025-03-11T06:26:31.511Z, made by Venus. */import{VefError}from"@vef-framework/shared";import{createContext,useMemo,createElement,useContext}from"react";const Context=createContext(null),ApiContextProvider=({client,dataDictionaryApi,loginApi,logoutApi,fetchAuthenticatedUserApi,children})=>{const apiContext=useMemo(()=>{const stubQueryApi=client.createQueryApi("_vefStubQueryApi",()=>stubData=>Promise.resolve({code:0,message:"ok",data:stubData})),asyncFnQueryApi=client.createQueryApi("_vefAsyncFnQueryApi",()=>async({args,fn})=>({code:0,message:"ok",data:await fn(...args)})),stubMutationApi=client.createMutationApi("_vefStubMutationApi",()=>stubData=>Promise.resolve({code:0,message:"ok",data:stubData})),asyncFnMutationApi=client.createMutationApi("_vefAsyncFnMutationApi",()=>async({args,fn})=>({code:0,message:"ok",data:await fn(...args)}));return Object.freeze({useApiQuery:client.useApiQuery,useSuspenseApiQuery:client.useSuspenseApiQuery,useApiMutation:client.useApiMutation,useIsFetching:client.useIsFetching,useIsMutating:client.useIsMutating,fetchApiQuery:client.fetchApiQuery.bind(client),createQueryApi:client.createQueryApi.bind(client),createMutationApi:client.createMutationApi.bind(client),getApiQueryData:client.getApiQueryData.bind(client),getApiQueriesData:client.getApiQueriesData.bind(client),setApiQueryData:client.setApiQueryData.bind(client),ensureApiQueryData:client.ensureApiQueryData.bind(client),removeApiQueries:client.removeApiQueries.bind(client),invalidateApiQueries:client.invalidateApiQueries.bind(client),resetApiQueries:client.resetApiQueries.bind(client),refetchApiQueries:client.refetchApiQueries.bind(client),cancelApiQueries:client.cancelApiQueries.bind(client),isFetching:client.isFetching.bind(client),isMutating:client.isMutating.bind(client),stubQueryApi,asyncFnQueryApi,stubMutationApi,asyncFnMutationApi,dataDictionaryApi,loginApi,logoutApi,fetchAuthenticatedUserApi})},[client,dataDictionaryApi,loginApi,logoutApi,fetchAuthenticatedUserApi]);return createElement(Context.Provider,{value:apiContext},createElement(client.QueryClientProvider,{},children))};function useApiContext(){const context=useContext(Context);if(context===null)throw new VefError(-1,"Api context not found: Please ensure useApiContext is called within an ApiContextProvider");return context}/*! VefFramework is a blazingly high-level, modern, flexible, easy-to-use UI framework made by Venus. Follow me on Github: https://github.com/ilxqx! @ilxqx */export{ApiContextProvider,useApiContext};
package/es/api/index.js CHANGED
@@ -1 +1 @@
1
- /*! VefFramework version: 1.0.116, build time: 2025-03-10T07:29:22.754Z, made by Venus. */import{ApiClient,createApiClient}from"./api-client.js";import{ApiContextProvider,useApiContext}from"./api-context.js";import{useQueryErrorResetBoundary}from"@tanstack/react-query";/*! VefFramework is a blazingly high-level, modern, flexible, easy-to-use UI framework made by Venus. Follow me on Github: https://github.com/ilxqx! @ilxqx */export{ApiClient,ApiContextProvider,createApiClient,useApiContext,useQueryErrorResetBoundary};
1
+ /*! VefFramework version: 1.0.118, build time: 2025-03-11T06:26:31.511Z, made by Venus. */import{ApiClient,createApiClient}from"./api-client.js";import{ApiContextProvider,useApiContext}from"./api-context.js";import{useQueryErrorResetBoundary}from"@tanstack/react-query";/*! VefFramework is a blazingly high-level, modern, flexible, easy-to-use UI framework made by Venus. Follow me on Github: https://github.com/ilxqx! @ilxqx */export{ApiClient,ApiContextProvider,createApiClient,useApiContext,useQueryErrorResetBoundary};
@@ -1 +1 @@
1
- /*! VefFramework version: 1.0.116, build time: 2025-03-10T07:29:22.754Z, made by Venus. */import{QueryClient}from"@tanstack/react-query";function createQueryClient(options){const staleTime=options?.staleTime??1/0,gcTime=options?.gcTime??10*60*1e3;return new QueryClient({defaultOptions:{queries:{networkMode:"always",staleTime,gcTime,retry:!1,structuralSharing:!0,throwOnError:!1,refetchOnMount:!1,refetchOnReconnect:!0,refetchOnWindowFocus:!0},mutations:{networkMode:"always",gcTime:staleTime,retry:!1,throwOnError:!1}}})}/*! VefFramework is a blazingly high-level, modern, flexible, easy-to-use UI framework made by Venus. Follow me on Github: https://github.com/ilxqx! @ilxqx */export{createQueryClient};
1
+ /*! VefFramework version: 1.0.118, build time: 2025-03-11T06:26:31.511Z, made by Venus. */import{QueryClient}from"@tanstack/react-query";function createQueryClient(options){const staleTime=options?.staleTime??1/0,gcTime=options?.gcTime??10*60*1e3;return new QueryClient({defaultOptions:{queries:{networkMode:"always",staleTime,gcTime,retry:!1,structuralSharing:!0,throwOnError:!1,refetchOnMount:!1,refetchOnReconnect:!0,refetchOnWindowFocus:!0},mutations:{networkMode:"always",gcTime:staleTime,retry:!1,throwOnError:!1}}})}/*! VefFramework is a blazingly high-level, modern, flexible, easy-to-use UI framework made by Venus. Follow me on Github: https://github.com/ilxqx! @ilxqx */export{createQueryClient};
@@ -1 +1 @@
1
- /*! VefFramework version: 1.0.116, build time: 2025-03-10T07:29:22.754Z, made by Venus. */import{isNullish,VefError,showInfoMessage,showWarningMessage,isString,showErrorMessage,isFunction}from"@vef-framework/shared";import axios,{CanceledError}from"axios";import qs from"qs";var __typeError=msg=>{throw TypeError(msg)},__accessCheck=(obj,member,msg)=>member.has(obj)||__typeError("Cannot "+msg),__privateGet=(obj,member,getter)=>(__accessCheck(obj,member,"read from private field"),getter?getter.call(obj):member.get(obj)),__privateAdd=(obj,member,value)=>member.has(obj)?__typeError("Cannot add the same private member more than once"):member instanceof WeakSet?member.add(obj):member.set(obj,value),__privateSet=(obj,member,value,setter)=>(__accessCheck(obj,member,"write to private field"),setter?setter.call(obj,value):member.set(obj,value),value),_axiosInstance;const pathParamRegex=/\{\w+\}/;class RequestClient{constructor(options){this.options=options,__privateAdd(this,_axiosInstance);const{baseUrl,timeout,getAccessToken,successCode=0,unauthorizedCode=1e3,accessDeniedCode=1002,tokenExpiredCode=1001,onUnauthorized,onAccessDenied}=options;__privateSet(this,_axiosInstance,axios.create({baseURL:baseUrl,timeout:timeout??1e3*30,headers:{"Content-Type":"application/json"},paramsSerializer:params=>qs.stringify(params,{arrayFormat:"repeat",skipNulls:!0,charset:"utf-8"}),responseType:"json",validateStatus:()=>!0})),__privateGet(this,_axiosInstance).interceptors.request.use(config=>{const token=getAccessToken?.();token&&(config.headers.Authorization=`Bearer ${token}`);const{url}=config;return url&&pathParamRegex.test(url)&&(config.url=url.replace(pathParamRegex,(_,key)=>{const value=config.params?.[key];if(isNullish(value))throw new Error(`Path parameter ${key} is nil`);return value})),config}),__privateGet(this,_axiosInstance).interceptors.response.use(async response=>{const{code,message}=response.data;if(code===successCode)return response;throw code===unauthorizedCode?await onUnauthorized?.():code===tokenExpiredCode?(showInfoMessage("登录已失效"),await onUnauthorized?.()):code===accessDeniedCode?(showWarningMessage(`${message},请联系管理员为您开通`),await onAccessDenied?.()):showWarningMessage(message),new VefError(code,message)},error=>{if(error instanceof CanceledError)return Promise.reject(error);const{response,message}=error;if(response?.data){const errorMessage=`处理请求响应信息异常:${message??"无"}`;return Promise.reject(new VefError(response.status,errorMessage))}else{let errorMessage=message??(isString(error)?error:"");return errorMessage==="Network Error"?errorMessage="接口连接异常可能原因:网络不通或存在跨域问题。":errorMessage.includes("timeout")?errorMessage="接口请求超时":errorMessage.includes("Request failed with status code")?errorMessage=`接口状态码异常:${message.substring(message.length-3)}`:errorMessage="接口未知异常",showErrorMessage(errorMessage),Promise.reject(new VefError(-1,errorMessage))}})}async get(url,options){return(await __privateGet(this,_axiosInstance).get(url,{params:options?.params,signal:options?.signal})).data}async post(url,data,options){return(await __privateGet(this,_axiosInstance).post(url,data,{params:options?.params,signal:options?.signal})).data}async put(url,data,options){return(await __privateGet(this,_axiosInstance).put(url,data,{params:options?.params,signal:options?.signal})).data}async delete(url,options){return(await __privateGet(this,_axiosInstance).delete(url,{params:options?.params,signal:options?.signal})).data}async upload(url,data,options){return(await __privateGet(this,_axiosInstance).postForm(url,data,{params:options?.params,signal:options?.signal,onUploadProgress:isFunction(options?.onProgress)?progressEvent=>{const total=progressEvent.lengthComputable?progressEvent.total??0:0,{loaded}=progressEvent,percent=Math.round(loaded/total*100);options.onProgress?.(percent)}:void 0})).data}async download(url,options){const{data,headers}=await __privateGet(this,_axiosInstance).get(url,{params:options?.params,responseType:"blob",onDownloadProgress:isFunction(options?.onProgress)?progressEvent=>{const total=progressEvent.lengthComputable?progressEvent.total??0:0,{loaded}=progressEvent,percent=Math.round(loaded/total*100);options.onProgress?.(percent)}:void 0});let response=null;try{response=JSON.parse(await data.text())}catch{}if(response&&response.code!==0)throw new VefError(response.code,response.message);const contentDisposition=headers.get("content-disposition");if(isString(contentDisposition)){const matches=/filename[^;=\n]*=(?<name>(?<quote>['"]).*?\2|[^;\n]*)/.exec(contentDisposition);if(matches&&matches.groups){const{name}=matches.groups,fileName=decodeURIComponent(name),a=document.createElement("a");a.href=URL.createObjectURL(data),a.download=isFunction(options?.fileName)?options.fileName(fileName):options?.fileName??fileName,a.click(),URL.revokeObjectURL(a.href)}}}}_axiosInstance=new WeakMap;function createRequestClient(options){return Object.freeze(new RequestClient(options))}/*! VefFramework is a blazingly high-level, modern, flexible, easy-to-use UI framework made by Venus. Follow me on Github: https://github.com/ilxqx! @ilxqx */export{RequestClient,createRequestClient};
1
+ /*! VefFramework version: 1.0.118, build time: 2025-03-11T06:26:31.511Z, made by Venus. */import{isNullish,VefError,showInfoMessage,showWarningMessage,isString,showErrorMessage,isFunction}from"@vef-framework/shared";import axios,{CanceledError}from"axios";import qs from"qs";var __typeError=msg=>{throw TypeError(msg)},__accessCheck=(obj,member,msg)=>member.has(obj)||__typeError("Cannot "+msg),__privateGet=(obj,member,getter)=>(__accessCheck(obj,member,"read from private field"),getter?getter.call(obj):member.get(obj)),__privateAdd=(obj,member,value)=>member.has(obj)?__typeError("Cannot add the same private member more than once"):member instanceof WeakSet?member.add(obj):member.set(obj,value),__privateSet=(obj,member,value,setter)=>(__accessCheck(obj,member,"write to private field"),setter?setter.call(obj,value):member.set(obj,value),value),_axiosInstance;const pathParamRegex=/\{\w+\}/;class RequestClient{constructor(options){this.options=options,__privateAdd(this,_axiosInstance);const{baseUrl,timeout,getAccessToken,successCode=0,unauthorizedCode=1e3,accessDeniedCode=1002,tokenExpiredCode=1001,onUnauthorized,onAccessDenied}=options;__privateSet(this,_axiosInstance,axios.create({baseURL:baseUrl,timeout:timeout??1e3*30,headers:{"Content-Type":"application/json"},paramsSerializer:params=>qs.stringify(params,{arrayFormat:"repeat",skipNulls:!0,charset:"utf-8"}),responseType:"json",validateStatus:()=>!0})),__privateGet(this,_axiosInstance).interceptors.request.use(config=>{const token=getAccessToken?.();token&&(config.headers.Authorization=`Bearer ${token}`);const{url}=config;return url&&pathParamRegex.test(url)&&(config.url=url.replace(pathParamRegex,(_,key)=>{const value=config.params?.[key];if(isNullish(value))throw new Error(`Path parameter ${key} is nil`);return value})),config}),__privateGet(this,_axiosInstance).interceptors.response.use(async response=>{const{code,message}=response.data;if(code===successCode)return response;throw code===unauthorizedCode?await onUnauthorized?.():code===tokenExpiredCode?(showInfoMessage("登录已失效"),await onUnauthorized?.()):code===accessDeniedCode?(showWarningMessage(`${message},请联系管理员为您开通`),await onAccessDenied?.()):showWarningMessage(message),new VefError(code,message)},error=>{if(error instanceof CanceledError)return Promise.reject(error);const{response,message}=error;if(response?.data){const errorMessage=`处理请求响应信息异常:${message??"无"}`;return Promise.reject(new VefError(response.status,errorMessage))}else{let errorMessage=message??(isString(error)?error:"");return errorMessage==="Network Error"?errorMessage="接口连接异常可能原因:网络不通或存在跨域问题。":errorMessage.includes("timeout")?errorMessage="接口请求超时":errorMessage.includes("Request failed with status code")?errorMessage=`接口状态码异常:${message.substring(message.length-3)}`:errorMessage="接口未知异常",showErrorMessage(errorMessage),Promise.reject(new VefError(-1,errorMessage))}})}async get(url,options){return(await __privateGet(this,_axiosInstance).get(url,{params:options?.params,headers:options?.headers,signal:options?.signal})).data}async post(url,data,options){return(await __privateGet(this,_axiosInstance).post(url,data,{params:options?.params,headers:options?.headers,signal:options?.signal})).data}async put(url,data,options){return(await __privateGet(this,_axiosInstance).put(url,data,{params:options?.params,headers:options?.headers,signal:options?.signal})).data}async delete(url,options){return(await __privateGet(this,_axiosInstance).delete(url,{params:options?.params,headers:options?.headers,signal:options?.signal})).data}async upload(url,data,options){return(await __privateGet(this,_axiosInstance).postForm(url,data,{params:options?.params,headers:options?.headers,signal:options?.signal,onUploadProgress:isFunction(options?.onProgress)?progressEvent=>{const total=progressEvent.lengthComputable?progressEvent.total??0:0,{loaded}=progressEvent,percent=Math.round(loaded/total*100);options.onProgress?.(percent)}:void 0})).data}async download(url,options){const{data,headers}=await __privateGet(this,_axiosInstance).get(url,{params:options?.params,headers:options?.headers,responseType:"blob",onDownloadProgress:isFunction(options?.onProgress)?progressEvent=>{const total=progressEvent.lengthComputable?progressEvent.total??0:0,{loaded}=progressEvent,percent=Math.round(loaded/total*100);options.onProgress?.(percent)}:void 0});let response=null;try{response=JSON.parse(await data.text())}catch{}if(response&&response.code!==0)throw new VefError(response.code,response.message);const contentDisposition=headers.get("content-disposition");if(isString(contentDisposition)){const matches=/filename[^;=\n]*=(?<name>(?<quote>['"]).*?\2|[^;\n]*)/.exec(contentDisposition);if(matches&&matches.groups){const{name}=matches.groups,fileName=decodeURIComponent(name),a=document.createElement("a");a.href=URL.createObjectURL(data),a.download=isFunction(options?.fileName)?options.fileName(fileName):options?.fileName??fileName,a.click(),URL.revokeObjectURL(a.href)}}}}_axiosInstance=new WeakMap;function createRequestClient(options){return Object.freeze(new RequestClient(options))}/*! VefFramework is a blazingly high-level, modern, flexible, easy-to-use UI framework made by Venus. Follow me on Github: https://github.com/ilxqx! @ilxqx */export{RequestClient,createRequestClient};
@@ -1 +1 @@
1
- /*! VefFramework version: 1.0.116, build time: 2025-03-10T07:29:22.754Z, made by Venus. */import{isString,VefError}from"@vef-framework/shared";import{createContext,useMemo,createElement,useContext}from"react";const Context=createContext(null),AuthContextProvider=({permissionChecker,children})=>{const authContext=useMemo(()=>({checkPermission:token=>permissionChecker?isString(token)?permissionChecker(token):permissionChecker(token.key):!0}),[permissionChecker]);return createElement(Context.Provider,{value:authContext},children)};function useAuthContext(){const context=useContext(Context);if(context===null)throw new VefError(-1,"useAuthContext must be used within a AuthContextProvider");return context}/*! VefFramework is a blazingly high-level, modern, flexible, easy-to-use UI framework made by Venus. Follow me on Github: https://github.com/ilxqx! @ilxqx */export{AuthContextProvider,useAuthContext};
1
+ /*! VefFramework version: 1.0.118, build time: 2025-03-11T06:26:31.511Z, made by Venus. */import{isString,VefError}from"@vef-framework/shared";import{createContext,useMemo,createElement,useContext}from"react";const Context=createContext(null),AuthContextProvider=({permissionChecker,children})=>{const authContext=useMemo(()=>({checkPermission:token=>permissionChecker?isString(token)?permissionChecker(token):permissionChecker(token.key):!0}),[permissionChecker]);return createElement(Context.Provider,{value:authContext},children)};function useAuthContext(){const context=useContext(Context);if(context===null)throw new VefError(-1,"useAuthContext must be used within a AuthContextProvider");return context}/*! VefFramework is a blazingly high-level, modern, flexible, easy-to-use UI framework made by Venus. Follow me on Github: https://github.com/ilxqx! @ilxqx */export{AuthContextProvider,useAuthContext};
package/es/auth/index.js CHANGED
@@ -1 +1 @@
1
- /*! VefFramework version: 1.0.116, build time: 2025-03-10T07:29:22.754Z, made by Venus. */import{AuthContextProvider,useAuthContext}from"./auth-context.js";/*! VefFramework is a blazingly high-level, modern, flexible, easy-to-use UI framework made by Venus. Follow me on Github: https://github.com/ilxqx! @ilxqx */export{AuthContextProvider,useAuthContext};
1
+ /*! VefFramework version: 1.0.118, build time: 2025-03-11T06:26:31.511Z, made by Venus. */import{AuthContextProvider,useAuthContext}from"./auth-context.js";/*! VefFramework is a blazingly high-level, modern, flexible, easy-to-use UI framework made by Venus. Follow me on Github: https://github.com/ilxqx! @ilxqx */export{AuthContextProvider,useAuthContext};
@@ -1 +1 @@
1
- /*! VefFramework version: 1.0.116, build time: 2025-03-10T07:29:22.754Z, made by Venus. */import{parseArgs,getAt,isQuotedString,rmEscapes}from"./helpers.js";function compile(expr){let provideTokens;const requirements=new Set,x=function(operand,tokens){return typeof operand=="function"?operand(tokens):operand},operatorRegistry=[{"&&":(l,r,t)=>x(l,t)&&x(r,t),"||":(l,r,t)=>x(l,t)||x(r,t)},{"===":(l,r,t)=>x(l,t)===x(r,t),"!==":(l,r,t)=>x(l,t)!==x(r,t),"==":(l,r,t)=>x(l,t)==x(r,t),"!=":(l,r,t)=>x(l,t)!=x(r,t),">=":(l,r,t)=>x(l,t)>=x(r,t),"<=":(l,r,t)=>x(l,t)<=x(r,t),">":(l,r,t)=>x(l,t)>x(r,t),"<":(l,r,t)=>x(l,t)<x(r,t)},{"+":(l,r,t)=>x(l,t)+x(r,t),"-":(l,r,t)=>x(l,t)-x(r,t)},{"*":(l,r,t)=>x(l,t)*x(r,t),"/":(l,r,t)=>x(l,t)/x(r,t),"%":(l,r,t)=>x(l,t)%x(r,t)}],operatorSymbols=operatorRegistry.reduce((s,g)=>s.concat(Object.keys(g)),[]),operatorChars=new Set(operatorSymbols.map(key=>key.charAt(0)));function getOp(symbols,char,p,expression){const candidates=symbols.filter(s=>s.startsWith(char));return candidates.length?candidates.find(symbol=>expression.length>=p+symbol.length&&expression.substring(p,p+symbol.length)===symbol?symbol:!1):!1}function getStep(p,expression,direction=1){let next=direction?expression.substring(p+1).trim():expression.substring(0,p).trim();if(!next.length)return-1;if(!direction){const reversed=next.split("").reverse(),start=reversed.findIndex(char2=>operatorChars.has(char2));next=reversed.slice(start).join("")}const[char]=next;return operatorRegistry.findIndex(operators=>{const symbols=Object.keys(operators);return!!getOp(symbols,char,0,next)})}function getTail(pos,expression){let tail="";const{length}=expression;let depth=0;for(let p=pos;p<length;p++){const char=expression.charAt(p);if(char==="(")depth++;else if(char===")")depth--;else if(depth===0&&char===" ")continue;if(depth===0&&getOp(operatorSymbols,char,p,expression))return[tail,p-1];tail+=char}return[tail,expression.length-1]}function compileExpr(expression,step=0){const operators=operatorRegistry[step],{length}=expression,symbols=Object.keys(operators);let depth=0,quote=!1,op=null,operand="",left=null,operation,lastChar,char="",parenthetical="",parenQuote="",startP=0;const addTo=(depth2,char2)=>{depth2?parenthetical+=char2:operand+=char2};for(let p=0;p<length;p++)if(lastChar=char,char=expression.charAt(p),(char==="'"||char==='"')&&lastChar!=="\\"&&(depth===0&&!quote||depth&&!parenQuote)){depth?parenQuote=char:quote=char,addTo(depth,char);continue}else if(quote&&(char!==quote||lastChar==="\\")||parenQuote&&(char!==parenQuote||lastChar==="\\")){addTo(depth,char);continue}else if(quote===char){quote=!1,addTo(depth,char);continue}else if(parenQuote===char){parenQuote=!1,addTo(depth,char);continue}else{if(char===" ")continue;if(char==="(")depth===0?startP=p:parenthetical+=char,depth++;else if(char===")")if(depth--,depth===0){const fn=typeof operand=="string"&&operand.startsWith("$")?operand:void 0,hasTail=fn&&expression.charAt(p+1)===".";let tail="";hasTail&&([tail,p]=getTail(p+2,expression));const lStep=op?step:getStep(startP,expression,0),rStep=getStep(p,expression);lStep===-1&&rStep===-1?(operand=evaluate(parenthetical,-1,fn,tail),typeof operand=="string"&&(operand=parenthetical)):op&&(lStep>=rStep||rStep===-1)&&step===lStep?(left=op.bind(null,evaluate(parenthetical,-1,fn,tail)),op=null,operand=""):rStep>lStep&&step===rStep?operand=evaluate(parenthetical,-1,fn,tail):operand+=`(${parenthetical})${hasTail?`.${tail}`:""}`,parenthetical=""}else parenthetical+=char;else if(depth===0&&(operation=getOp(symbols,char,p,expression))){p===0&&console.error(103,[operation,expression]),p+=operation.length-1,p===expression.length-1&&console.error(104,[operation,expression]),op?operand&&(left=op.bind(null,evaluate(operand,step)),op=operators[operation].bind(null,left),operand=""):left?(op=operators[operation].bind(null,evaluate(left,step)),left=null):(op=operators[operation].bind(null,evaluate(operand,step)),operand="");continue}else addTo(depth,char)}return operand&&op&&(op=op.bind(null,evaluate(operand,step))),op=!op&&left?left:op,!op&&operand&&(op=(v,t)=>typeof v=="function"?v(t):v,op=op.bind(null,evaluate(operand,step))),!op&&!operand&&console.error(105,expression),op}function evaluate(operand,step,fnToken,tail){if(fnToken){const fn=evaluate(fnToken,operatorRegistry.length);let userFuncReturn,tailCall=tail?compile(`$${tail}`):!1;if(typeof fn=="function"){const args=parseArgs(String(operand)).map(arg=>evaluate(arg,-1));return tokens=>{const userFunc=fn(tokens);return typeof userFunc!="function"?(console.warn(150,fnToken),userFunc):(userFuncReturn=userFunc(...args.map(arg=>typeof arg=="function"?arg(tokens):arg)),tailCall&&(tailCall=tailCall.provide(subTokens=>{const rootTokens=provideTokens(subTokens);return subTokens.reduce((tokenSet,token)=>{if(token===tail||tail?.startsWith(`${token}(`)){const value=getAt(userFuncReturn,token);tokenSet[token]=()=>value}else tokenSet[token]=rootTokens[token];return tokenSet},{})})),tailCall?tailCall():userFuncReturn)}}}else if(typeof operand=="string"){if(operand==="true")return!0;if(operand==="false")return!1;if(operand==="undefined")return;if(isQuotedString(operand))return rmEscapes(operand.substring(1,operand.length-1));if(!Number.isNaN(+operand))return Number(operand);if(step<operatorRegistry.length-1)return compileExpr(operand,step+1);if(operand.startsWith("$")){const cleaned=operand.substring(1);return requirements.add(cleaned),function(tokens){return cleaned in tokens?tokens[cleaned]():void 0}}return operand}return operand}const compiled=compileExpr(expr),identifiers=Array.from(requirements);function provide(callback){return provideTokens=callback,Object.assign(compiled.bind(null,callback(identifiers)),{provide})}return Object.assign(compiled,{provide})}/*! VefFramework is a blazingly high-level, modern, flexible, easy-to-use UI framework made by Venus. Follow me on Github: https://github.com/ilxqx! @ilxqx */export{compile};
1
+ /*! VefFramework version: 1.0.118, build time: 2025-03-11T06:26:31.511Z, made by Venus. */import{parseArgs,getAt,isQuotedString,rmEscapes}from"./helpers.js";function compile(expr){let provideTokens;const requirements=new Set,x=function(operand,tokens){return typeof operand=="function"?operand(tokens):operand},operatorRegistry=[{"&&":(l,r,t)=>x(l,t)&&x(r,t),"||":(l,r,t)=>x(l,t)||x(r,t)},{"===":(l,r,t)=>x(l,t)===x(r,t),"!==":(l,r,t)=>x(l,t)!==x(r,t),"==":(l,r,t)=>x(l,t)==x(r,t),"!=":(l,r,t)=>x(l,t)!=x(r,t),">=":(l,r,t)=>x(l,t)>=x(r,t),"<=":(l,r,t)=>x(l,t)<=x(r,t),">":(l,r,t)=>x(l,t)>x(r,t),"<":(l,r,t)=>x(l,t)<x(r,t)},{"+":(l,r,t)=>x(l,t)+x(r,t),"-":(l,r,t)=>x(l,t)-x(r,t)},{"*":(l,r,t)=>x(l,t)*x(r,t),"/":(l,r,t)=>x(l,t)/x(r,t),"%":(l,r,t)=>x(l,t)%x(r,t)}],operatorSymbols=operatorRegistry.reduce((s,g)=>s.concat(Object.keys(g)),[]),operatorChars=new Set(operatorSymbols.map(key=>key.charAt(0)));function getOp(symbols,char,p,expression){const candidates=symbols.filter(s=>s.startsWith(char));return candidates.length?candidates.find(symbol=>expression.length>=p+symbol.length&&expression.substring(p,p+symbol.length)===symbol?symbol:!1):!1}function getStep(p,expression,direction=1){let next=direction?expression.substring(p+1).trim():expression.substring(0,p).trim();if(!next.length)return-1;if(!direction){const reversed=next.split("").reverse(),start=reversed.findIndex(char2=>operatorChars.has(char2));next=reversed.slice(start).join("")}const[char]=next;return operatorRegistry.findIndex(operators=>{const symbols=Object.keys(operators);return!!getOp(symbols,char,0,next)})}function getTail(pos,expression){let tail="";const{length}=expression;let depth=0;for(let p=pos;p<length;p++){const char=expression.charAt(p);if(char==="(")depth++;else if(char===")")depth--;else if(depth===0&&char===" ")continue;if(depth===0&&getOp(operatorSymbols,char,p,expression))return[tail,p-1];tail+=char}return[tail,expression.length-1]}function compileExpr(expression,step=0){const operators=operatorRegistry[step],{length}=expression,symbols=Object.keys(operators);let depth=0,quote=!1,op=null,operand="",left=null,operation,lastChar,char="",parenthetical="",parenQuote="",startP=0;const addTo=(depth2,char2)=>{depth2?parenthetical+=char2:operand+=char2};for(let p=0;p<length;p++)if(lastChar=char,char=expression.charAt(p),(char==="'"||char==='"')&&lastChar!=="\\"&&(depth===0&&!quote||depth&&!parenQuote)){depth?parenQuote=char:quote=char,addTo(depth,char);continue}else if(quote&&(char!==quote||lastChar==="\\")||parenQuote&&(char!==parenQuote||lastChar==="\\")){addTo(depth,char);continue}else if(quote===char){quote=!1,addTo(depth,char);continue}else if(parenQuote===char){parenQuote=!1,addTo(depth,char);continue}else{if(char===" ")continue;if(char==="(")depth===0?startP=p:parenthetical+=char,depth++;else if(char===")")if(depth--,depth===0){const fn=typeof operand=="string"&&operand.startsWith("$")?operand:void 0,hasTail=fn&&expression.charAt(p+1)===".";let tail="";hasTail&&([tail,p]=getTail(p+2,expression));const lStep=op?step:getStep(startP,expression,0),rStep=getStep(p,expression);lStep===-1&&rStep===-1?(operand=evaluate(parenthetical,-1,fn,tail),typeof operand=="string"&&(operand=parenthetical)):op&&(lStep>=rStep||rStep===-1)&&step===lStep?(left=op.bind(null,evaluate(parenthetical,-1,fn,tail)),op=null,operand=""):rStep>lStep&&step===rStep?operand=evaluate(parenthetical,-1,fn,tail):operand+=`(${parenthetical})${hasTail?`.${tail}`:""}`,parenthetical=""}else parenthetical+=char;else if(depth===0&&(operation=getOp(symbols,char,p,expression))){p===0&&console.error(103,[operation,expression]),p+=operation.length-1,p===expression.length-1&&console.error(104,[operation,expression]),op?operand&&(left=op.bind(null,evaluate(operand,step)),op=operators[operation].bind(null,left),operand=""):left?(op=operators[operation].bind(null,evaluate(left,step)),left=null):(op=operators[operation].bind(null,evaluate(operand,step)),operand="");continue}else addTo(depth,char)}return operand&&op&&(op=op.bind(null,evaluate(operand,step))),op=!op&&left?left:op,!op&&operand&&(op=(v,t)=>typeof v=="function"?v(t):v,op=op.bind(null,evaluate(operand,step))),!op&&!operand&&console.error(105,expression),op}function evaluate(operand,step,fnToken,tail){if(fnToken){const fn=evaluate(fnToken,operatorRegistry.length);let userFuncReturn,tailCall=tail?compile(`$${tail}`):!1;if(typeof fn=="function"){const args=parseArgs(String(operand)).map(arg=>evaluate(arg,-1));return tokens=>{const userFunc=fn(tokens);return typeof userFunc!="function"?(console.warn(150,fnToken),userFunc):(userFuncReturn=userFunc(...args.map(arg=>typeof arg=="function"?arg(tokens):arg)),tailCall&&(tailCall=tailCall.provide(subTokens=>{const rootTokens=provideTokens(subTokens);return subTokens.reduce((tokenSet,token)=>{if(token===tail||tail?.startsWith(`${token}(`)){const value=getAt(userFuncReturn,token);tokenSet[token]=()=>value}else tokenSet[token]=rootTokens[token];return tokenSet},{})})),tailCall?tailCall():userFuncReturn)}}}else if(typeof operand=="string"){if(operand==="true")return!0;if(operand==="false")return!1;if(operand==="undefined")return;if(isQuotedString(operand))return rmEscapes(operand.substring(1,operand.length-1));if(!Number.isNaN(+operand))return Number(operand);if(step<operatorRegistry.length-1)return compileExpr(operand,step+1);if(operand.startsWith("$")){const cleaned=operand.substring(1);return requirements.add(cleaned),function(tokens){return cleaned in tokens?tokens[cleaned]():void 0}}return operand}return operand}const compiled=compileExpr(expr),identifiers=Array.from(requirements);function provide(callback){return provideTokens=callback,Object.assign(compiled.bind(null,callback(identifiers)),{provide})}return Object.assign(compiled,{provide})}/*! VefFramework is a blazingly high-level, modern, flexible, easy-to-use UI framework made by Venus. Follow me on Github: https://github.com/ilxqx! @ilxqx */export{compile};
@@ -1 +1 @@
1
- /*! VefFramework version: 1.0.116, build time: 2025-03-10T07:29:22.754Z, made by Venus. */function has(obj,property){return Object.hasOwn(obj,property)}function getAt(obj,addr){if(!obj||typeof obj!="object")return null;const segments=addr.split(".");let o=obj;for(const i in segments){const segment=segments[i];if(has(o,segment)&&(o=o[segment]),+i===segments.length-1)return o;if(!o||typeof o!="object")return null}return null}function isQuotedString(str){if(str[0]!=='"'&&str[0]!=="'"||str[0]!==str[str.length-1])return!1;const[quoteType]=str;for(let p=1;p<str.length;p++)if(str[p]===quoteType&&(p===1||str[p-1]!=="\\")&&p!==str.length-1)return!1;return!0}function parseArgs(str){const args=[];let arg="",depth=0,quote="",lastChar="";for(let p=0;p<str.length;p++){const char=str.charAt(p);char===quote&&lastChar!=="\\"?quote="":(char==="'"||char==='"')&&!quote&&lastChar!=="\\"?quote=char:char==="("&&!quote?depth++:char===")"&&!quote&&depth--,char===","&&!quote&&depth===0?(args.push(arg),arg=""):(char!==" "||quote)&&(arg+=char),lastChar=char}return arg&&args.push(arg),args}function rmEscapes(str){if(!str.length)return"";let clean="",lastChar="";for(let p=0;p<str.length;p++){const char=str.charAt(p);(char!=="\\"||lastChar==="\\")&&(clean+=char),lastChar=char}return clean}/*! VefFramework is a blazingly high-level, modern, flexible, easy-to-use UI framework made by Venus. Follow me on Github: https://github.com/ilxqx! @ilxqx */export{getAt,has,isQuotedString,parseArgs,rmEscapes};
1
+ /*! VefFramework version: 1.0.118, build time: 2025-03-11T06:26:31.511Z, made by Venus. */function has(obj,property){return Object.hasOwn(obj,property)}function getAt(obj,addr){if(!obj||typeof obj!="object")return null;const segments=addr.split(".");let o=obj;for(const i in segments){const segment=segments[i];if(has(o,segment)&&(o=o[segment]),+i===segments.length-1)return o;if(!o||typeof o!="object")return null}return null}function isQuotedString(str){if(str[0]!=='"'&&str[0]!=="'"||str[0]!==str[str.length-1])return!1;const[quoteType]=str;for(let p=1;p<str.length;p++)if(str[p]===quoteType&&(p===1||str[p-1]!=="\\")&&p!==str.length-1)return!1;return!0}function parseArgs(str){const args=[];let arg="",depth=0,quote="",lastChar="";for(let p=0;p<str.length;p++){const char=str.charAt(p);char===quote&&lastChar!=="\\"?quote="":(char==="'"||char==='"')&&!quote&&lastChar!=="\\"?quote=char:char==="("&&!quote?depth++:char===")"&&!quote&&depth--,char===","&&!quote&&depth===0?(args.push(arg),arg=""):(char!==" "||quote)&&(arg+=char),lastChar=char}return arg&&args.push(arg),args}function rmEscapes(str){if(!str.length)return"";let clean="",lastChar="";for(let p=0;p<str.length;p++){const char=str.charAt(p);(char!=="\\"||lastChar==="\\")&&(clean+=char),lastChar=char}return clean}/*! VefFramework is a blazingly high-level, modern, flexible, easy-to-use UI framework made by Venus. Follow me on Github: https://github.com/ilxqx! @ilxqx */export{getAt,has,isQuotedString,parseArgs,rmEscapes};
package/es/index.js CHANGED
@@ -1 +1 @@
1
- /*! VefFramework version: 1.0.116, build time: 2025-03-10T07:29:22.754Z, made by Venus. */import"./api/index.js";import"./auth/index.js";import{compile}from"./expr/compiler.js";import{ApiClient,createApiClient}from"./api/api-client.js";import{useQueryErrorResetBoundary}from"@tanstack/react-query";import{ApiContextProvider,useApiContext}from"./api/api-context.js";import{AuthContextProvider,useAuthContext}from"./auth/auth-context.js";/*! VefFramework is a blazingly high-level, modern, flexible, easy-to-use UI framework made by Venus. Follow me on Github: https://github.com/ilxqx! @ilxqx */export{ApiClient,ApiContextProvider,AuthContextProvider,compile,createApiClient,useApiContext,useAuthContext,useQueryErrorResetBoundary};
1
+ /*! VefFramework version: 1.0.118, build time: 2025-03-11T06:26:31.511Z, made by Venus. */import"./api/index.js";import"./auth/index.js";import{compile}from"./expr/compiler.js";import{ApiClient,createApiClient}from"./api/api-client.js";import{useQueryErrorResetBoundary}from"@tanstack/react-query";import{ApiContextProvider,useApiContext}from"./api/api-context.js";import{AuthContextProvider,useAuthContext}from"./auth/auth-context.js";/*! VefFramework is a blazingly high-level, modern, flexible, easy-to-use UI framework made by Venus. Follow me on Github: https://github.com/ilxqx! @ilxqx */export{ApiClient,ApiContextProvider,AuthContextProvider,compile,createApiClient,useApiContext,useAuthContext,useQueryErrorResetBoundary};
@@ -1 +1 @@
1
- /*! VefFramework version: 1.0.116, build time: 2025-03-10T07:29:22.754Z, made by Venus. */function createDispatcher(){const middlewares=[];let currentIndex=0;const dispatcher=middleware=>middlewares.push(middleware),dispatch=payload=>{const current=middlewares[currentIndex];return typeof current=="function"?current(payload,explicitPayload=>(currentIndex++,dispatch(explicitPayload))):(currentIndex=0,payload)};return dispatcher.dispatch=dispatch,dispatcher.unshift=middleware=>middlewares.unshift(middleware),dispatcher.remove=middleware=>{const index=middlewares.indexOf(middleware);index>-1&&middlewares.splice(index,1)},dispatcher}/*! VefFramework is a blazingly high-level, modern, flexible, easy-to-use UI framework made by Venus. Follow me on Github: https://github.com/ilxqx! @ilxqx */export{createDispatcher as default};
1
+ /*! VefFramework version: 1.0.118, build time: 2025-03-11T06:26:31.511Z, made by Venus. */function createDispatcher(){const middlewares=[];let currentIndex=0;const dispatcher=middleware=>middlewares.push(middleware),dispatch=payload=>{const current=middlewares[currentIndex];return typeof current=="function"?current(payload,explicitPayload=>(currentIndex++,dispatch(explicitPayload))):(currentIndex=0,payload)};return dispatcher.dispatch=dispatch,dispatcher.unshift=middleware=>middlewares.unshift(middleware),dispatcher.remove=middleware=>{const index=middlewares.indexOf(middleware);index>-1&&middlewares.splice(index,1)},dispatcher}/*! VefFramework is a blazingly high-level, modern, flexible, easy-to-use UI framework made by Venus. Follow me on Github: https://github.com/ilxqx! @ilxqx */export{createDispatcher as default};
@@ -1 +1 @@
1
- "use strict";/*! VefFramework version: 1.0.116, build time: 2025-03-10T07:29:22.754Z, made by Venus. */Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const reactQuery=require("@tanstack/react-query"),react=require("react"),queryClient=require("./query-client.cjs"),requestClient=require("./request-client.cjs");var __defProp=Object.defineProperty,__typeError=msg=>{throw TypeError(msg)},__defNormalProp=(obj,key,value)=>key in obj?__defProp(obj,key,{enumerable:!0,configurable:!0,writable:!0,value}):obj[key]=value,__publicField=(obj,key,value)=>__defNormalProp(obj,typeof key!="symbol"?key+"":key,value),__accessCheck=(obj,member,msg)=>member.has(obj)||__typeError("Cannot "+msg),__privateGet=(obj,member,getter)=>(__accessCheck(obj,member,"read from private field"),getter?getter.call(obj):member.get(obj)),__privateAdd=(obj,member,value)=>member.has(obj)?__typeError("Cannot add the same private member more than once"):member instanceof WeakSet?member.add(obj):member.set(obj,value),__privateSet=(obj,member,value,setter)=>(__accessCheck(obj,member,"write to private field"),setter?setter.call(obj,value):member.set(obj,value),value),__privateMethod=(obj,member,method)=>(__accessCheck(obj,member,"access private method"),method),_queryClient,_requestClient,_requestMethods,_currentSignal,_ApiClient_instances,selectData_fn,wrapRefetchFn_fn,createQueryResult_fn,createApi_fn;class ApiClient{constructor(options){this.options=options,__privateAdd(this,_ApiClient_instances),__publicField(this,"useApiQuery"),__publicField(this,"useSuspenseApiQuery"),__publicField(this,"useApiMutation"),__publicField(this,"useIsFetching"),__publicField(this,"useIsMutating"),__publicField(this,"QueryClientProvider"),__privateAdd(this,_queryClient),__privateAdd(this,_requestClient),__privateAdd(this,_requestMethods),__privateAdd(this,_currentSignal),__privateSet(this,_queryClient,queryClient.createQueryClient(options)),__privateSet(this,_requestClient,requestClient.createRequestClient(options)),__privateSet(this,_requestMethods,{get:async(url,options2)=>{const signal=__privateGet(this,_currentSignal);return __privateSet(this,_currentSignal,void 0),await __privateGet(this,_requestClient).get(url,{...options2,signal})},post:async(url,data,options2)=>{const signal=__privateGet(this,_currentSignal);return __privateSet(this,_currentSignal,void 0),await __privateGet(this,_requestClient).post(url,data,{...options2,signal})},put:async(url,data,options2)=>{const signal=__privateGet(this,_currentSignal);return __privateSet(this,_currentSignal,void 0),await __privateGet(this,_requestClient).put(url,data,{...options2,signal})},delete:async(url,options2)=>{const signal=__privateGet(this,_currentSignal);return __privateSet(this,_currentSignal,void 0),await __privateGet(this,_requestClient).delete(url,{...options2,signal})}});const that=this;this.useApiQuery=function(queryFn,args,options2){var _a;const{keepPreviousData,placeholderData,initialData,...restOptions}=options2??{},result=reactQuery.useQuery({queryKey:[queryFn.key,args],queryFn:({signal})=>queryFn(args,{signal}),select:__privateMethod(that,_ApiClient_instances,selectData_fn),placeholderData:placeholderData??keepPreviousData===!0?reactQuery.keepPreviousData:void 0,initialData:initialData?{code:0,message:"ok",data:initialData}:void 0,...restOptions});return __privateMethod(_a=that,_ApiClient_instances,createQueryResult_fn).call(_a,result)},this.useSuspenseApiQuery=function(queryFn,args,options2){const{keepPreviousData,initialData,...restOptions}=options2??{},{data,refetch}=reactQuery.useSuspenseQuery({queryKey:[queryFn.key,args],queryFn:({signal})=>queryFn(args,{signal}),select:__privateMethod(that,_ApiClient_instances,selectData_fn),initialData:initialData?{code:0,message:"ok",data:initialData}:void 0,...restOptions});return{data,refetch:__privateMethod(this,_ApiClient_instances,wrapRefetchFn_fn).call(this,refetch)}},this.useApiMutation=function(mutationFn){const{isPending,isIdle,isError,isSuccess,error,data,mutateAsync}=reactQuery.useMutation({mutationKey:[mutationFn.key],mutationFn:args=>mutationFn(args)});return{mutate:async args=>await mutateAsync(args),isPending,isIdle,isError,isSuccess,message:data?.message,error:error??void 0,data:data?.data}},this.useIsFetching=function(apiKey,args){return reactQuery.useIsFetching({queryKey:arguments.length>1?[apiKey,args]:[apiKey],type:"active",exact:!1})>0},this.useIsMutating=function(apiKey){return reactQuery.useIsMutating({mutationKey:[apiKey],exact:!1})>0},this.QueryClientProvider=function({children}){return react.createElement(reactQuery.QueryClientProvider,{client:__privateGet(that,_queryClient)},children)}}async fetchApiQuery(queryFn,args,options){const{initialData,...restOptions}=options??{};return(await __privateGet(this,_queryClient).fetchQuery({queryKey:[queryFn.key,args],queryFn:({signal})=>queryFn(args,{signal}),initialData:initialData?{code:0,message:"ok",data:initialData}:void 0,...restOptions})).data}createQueryApi(key,factory){const apiFn=__privateMethod(this,_ApiClient_instances,createApi_fn).call(this,key,factory);return apiFn.useQuery=this.useApiQuery.bind(this,apiFn),apiFn.useSuspenseQuery=this.useSuspenseApiQuery.bind(this,apiFn),apiFn.fetchQuery=this.fetchApiQuery.bind(this,apiFn),apiFn.getQueryData=this.getApiQueryData.bind(this,key),apiFn.getQueriesData=this.getApiQueriesData.bind(this,key),apiFn.setQueryData=(data,args)=>this.setApiQueryData(data,key,args),apiFn.ensureQueryData=this.ensureApiQueryData.bind(this,apiFn),apiFn.removeQueries=this.removeApiQueries.bind(this,key),apiFn.invalidateQueries=this.invalidateApiQueries.bind(this,key),apiFn.resetQueries=this.resetApiQueries.bind(this,key),apiFn.refetchQueries=this.refetchApiQueries.bind(this,key),apiFn.cancelQueries=this.cancelApiQueries.bind(this,key),apiFn.isFetching=this.isFetching.bind(this,key),apiFn.useIsFetching=this.useIsFetching.bind(void 0,key),Object.freeze(apiFn)}createMutationApi(key,factory,relatedQueries=[]){const apiFn=__privateMethod(this,_ApiClient_instances,createApi_fn).call(this,key,factory);return apiFn.relatedQueries=Object.freeze(relatedQueries),apiFn.useMutation=this.useApiMutation.bind(this,apiFn),apiFn.refetchRelatedQueries=function(){return Promise.all(relatedQueries.map(query=>query.refetchQueries()))},apiFn.invalidateRelatedQueries=function(){return Promise.all(relatedQueries.map(query=>query.invalidateQueries()))},apiFn.isMutating=this.isMutating.bind(this,key),apiFn.useIsMutating=this.useIsMutating.bind(void 0,key),Object.freeze(apiFn)}getApiQueryData(apiKey,args){return __privateGet(this,_queryClient).getQueryData(arguments.length>1?[apiKey,args]:[apiKey])}getApiQueriesData(apiKey,args){return __privateGet(this,_queryClient).getQueriesData({queryKey:arguments.length>1?[apiKey,args]:[apiKey],type:"active",exact:!1})}setApiQueryData(data,apiKey,args){__privateGet(this,_queryClient).setQueryData(arguments.length>2?[apiKey,args]:[apiKey],data)}async ensureApiQueryData(queryFn,args,options){const{initialData,...restOptions}=options??{};return(await __privateGet(this,_queryClient).ensureQueryData({queryKey:[queryFn.key,args],queryFn:({signal})=>queryFn(args,{signal}),initialData:initialData?{code:0,message:"ok",data:initialData}:void 0,...restOptions,revalidateIfStale:!0})).data}removeApiQueries(apiKey,args){__privateGet(this,_queryClient).removeQueries({type:"all",exact:!1,queryKey:arguments.length>1?[apiKey,args]:[apiKey]})}invalidateApiQueries(apiKey,args){return __privateGet(this,_queryClient).invalidateQueries({queryKey:arguments.length>1?[apiKey,args]:[apiKey],type:"all",exact:!1,stale:!1,refetchType:"active"},{throwOnError:!1,cancelRefetch:!1})}resetApiQueries(apiKey,args){return __privateGet(this,_queryClient).resetQueries({queryKey:arguments.length>1?[apiKey,args]:[apiKey],type:"active",exact:!1},{cancelRefetch:!0,throwOnError:!1})}refetchApiQueries(apiKey,args){return __privateGet(this,_queryClient).refetchQueries({queryKey:arguments.length>1?[apiKey,args]:[apiKey],type:"active",exact:!1},{throwOnError:!1,cancelRefetch:!1})}cancelApiQueries(apiKey,args){return __privateGet(this,_queryClient).cancelQueries({queryKey:arguments.length>1?[apiKey,args]:[apiKey],type:"active",exact:!1},{revert:!0,silent:!0})}isFetching(apiKey,args){return __privateGet(this,_queryClient).isFetching({queryKey:arguments.length>1?[apiKey,args]:[apiKey],type:"active",exact:!1})>0}isMutating(apiKey){return __privateGet(this,_queryClient).isMutating({mutationKey:[apiKey],exact:!1})>0}}_queryClient=new WeakMap,_requestClient=new WeakMap,_requestMethods=new WeakMap,_currentSignal=new WeakMap,_ApiClient_instances=new WeakSet,selectData_fn=function(data){return data.data},wrapRefetchFn_fn=function(refetch){return async options=>{const result=await refetch(options);return{isSuccess:result.isSuccess,isError:result.isError,error:result.error,data:result.data}}},createQueryResult_fn=function({isPending,isFetching,isLoading,isRefetching,isSuccess,isPlaceholderData,isError,isLoadingError,isRefetchError,isStale,error,data,refetch}){return{isPending,isSuccess,isError,isLoadingError,isRefetchError,isLoading,isFetching,isRefetching,isPlaceholderData,isStale,error:error??void 0,data,refetch:__privateMethod(this,_ApiClient_instances,wrapRefetchFn_fn).call(this,refetch)}},createApi_fn=function(key,factory){const fn=factory(__privateGet(this,_requestMethods)),apiFn=async(args,apiOptions)=>(__privateSet(this,_currentSignal,apiOptions?.signal),await fn(args));return apiFn.key=key,apiFn};function createApiClient(options){return Object.freeze(new ApiClient(options))}exports.ApiClient=ApiClient,exports.createApiClient=createApiClient;/*! VefFramework is a blazingly high-level, modern, flexible, easy-to-use UI framework made by Venus. Follow me on Github: https://github.com/ilxqx! @ilxqx */
1
+ "use strict";/*! VefFramework version: 1.0.118, build time: 2025-03-11T06:26:31.511Z, made by Venus. */Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const reactQuery=require("@tanstack/react-query"),react=require("react"),queryClient=require("./query-client.cjs"),requestClient=require("./request-client.cjs");var __defProp=Object.defineProperty,__typeError=msg=>{throw TypeError(msg)},__defNormalProp=(obj,key,value)=>key in obj?__defProp(obj,key,{enumerable:!0,configurable:!0,writable:!0,value}):obj[key]=value,__publicField=(obj,key,value)=>__defNormalProp(obj,typeof key!="symbol"?key+"":key,value),__accessCheck=(obj,member,msg)=>member.has(obj)||__typeError("Cannot "+msg),__privateGet=(obj,member,getter)=>(__accessCheck(obj,member,"read from private field"),getter?getter.call(obj):member.get(obj)),__privateAdd=(obj,member,value)=>member.has(obj)?__typeError("Cannot add the same private member more than once"):member instanceof WeakSet?member.add(obj):member.set(obj,value),__privateSet=(obj,member,value,setter)=>(__accessCheck(obj,member,"write to private field"),setter?setter.call(obj,value):member.set(obj,value),value),__privateMethod=(obj,member,method)=>(__accessCheck(obj,member,"access private method"),method),_queryClient,_requestClient,_requestMethods,_currentSignal,_ApiClient_instances,selectData_fn,wrapRefetchFn_fn,createQueryResult_fn,createApi_fn;class ApiClient{constructor(options){this.options=options,__privateAdd(this,_ApiClient_instances),__publicField(this,"useApiQuery"),__publicField(this,"useSuspenseApiQuery"),__publicField(this,"useApiMutation"),__publicField(this,"useIsFetching"),__publicField(this,"useIsMutating"),__publicField(this,"QueryClientProvider"),__privateAdd(this,_queryClient),__privateAdd(this,_requestClient),__privateAdd(this,_requestMethods),__privateAdd(this,_currentSignal),__privateSet(this,_queryClient,queryClient.createQueryClient(options)),__privateSet(this,_requestClient,requestClient.createRequestClient(options)),__privateSet(this,_requestMethods,{get:async(url,options2)=>{const signal=__privateGet(this,_currentSignal);return __privateSet(this,_currentSignal,void 0),await __privateGet(this,_requestClient).get(url,{...options2,signal})},post:async(url,data,options2)=>{const signal=__privateGet(this,_currentSignal);return __privateSet(this,_currentSignal,void 0),await __privateGet(this,_requestClient).post(url,data,{...options2,signal})},put:async(url,data,options2)=>{const signal=__privateGet(this,_currentSignal);return __privateSet(this,_currentSignal,void 0),await __privateGet(this,_requestClient).put(url,data,{...options2,signal})},delete:async(url,options2)=>{const signal=__privateGet(this,_currentSignal);return __privateSet(this,_currentSignal,void 0),await __privateGet(this,_requestClient).delete(url,{...options2,signal})}});const that=this;this.useApiQuery=function(queryFn,args,options2){var _a;const{keepPreviousData,placeholderData,initialData,...restOptions}=options2??{},result=reactQuery.useQuery({queryKey:[queryFn.key,args],queryFn:({signal})=>queryFn(args,{signal}),select:__privateMethod(that,_ApiClient_instances,selectData_fn),placeholderData:placeholderData??keepPreviousData===!0?reactQuery.keepPreviousData:void 0,initialData:initialData?{code:0,message:"ok",data:initialData}:void 0,...restOptions});return __privateMethod(_a=that,_ApiClient_instances,createQueryResult_fn).call(_a,result)},this.useSuspenseApiQuery=function(queryFn,args,options2){const{keepPreviousData,initialData,...restOptions}=options2??{},{data,refetch}=reactQuery.useSuspenseQuery({queryKey:[queryFn.key,args],queryFn:({signal})=>queryFn(args,{signal}),select:__privateMethod(that,_ApiClient_instances,selectData_fn),initialData:initialData?{code:0,message:"ok",data:initialData}:void 0,...restOptions});return{data,refetch:__privateMethod(this,_ApiClient_instances,wrapRefetchFn_fn).call(this,refetch)}},this.useApiMutation=function(mutationFn){const{isPending,isIdle,isError,isSuccess,error,data,mutateAsync}=reactQuery.useMutation({mutationKey:[mutationFn.key],mutationFn:args=>mutationFn(args)});return{mutate:async args=>await mutateAsync(args),isPending,isIdle,isError,isSuccess,message:data?.message,error:error??void 0,data:data?.data}},this.useIsFetching=function(apiKey,args){return reactQuery.useIsFetching({queryKey:arguments.length>1?[apiKey,args]:[apiKey],type:"active",exact:!1})>0},this.useIsMutating=function(apiKey){return reactQuery.useIsMutating({mutationKey:[apiKey],exact:!1})>0},this.QueryClientProvider=function({children}){return react.createElement(reactQuery.QueryClientProvider,{client:__privateGet(that,_queryClient)},children)}}async fetchApiQuery(queryFn,args,options){const{initialData,...restOptions}=options??{};return(await __privateGet(this,_queryClient).fetchQuery({queryKey:[queryFn.key,args],queryFn:({signal})=>queryFn(args,{signal}),initialData:initialData?{code:0,message:"ok",data:initialData}:void 0,...restOptions})).data}createQueryApi(key,factory){const apiFn=__privateMethod(this,_ApiClient_instances,createApi_fn).call(this,key,factory);return apiFn.useQuery=this.useApiQuery.bind(this,apiFn),apiFn.useSuspenseQuery=this.useSuspenseApiQuery.bind(this,apiFn),apiFn.fetchQuery=this.fetchApiQuery.bind(this,apiFn),apiFn.getQueryData=this.getApiQueryData.bind(this,key),apiFn.getQueriesData=this.getApiQueriesData.bind(this,key),apiFn.setQueryData=(data,args)=>this.setApiQueryData(data,key,args),apiFn.ensureQueryData=this.ensureApiQueryData.bind(this,apiFn),apiFn.removeQueries=this.removeApiQueries.bind(this,key),apiFn.invalidateQueries=this.invalidateApiQueries.bind(this,key),apiFn.resetQueries=this.resetApiQueries.bind(this,key),apiFn.refetchQueries=this.refetchApiQueries.bind(this,key),apiFn.cancelQueries=this.cancelApiQueries.bind(this,key),apiFn.isFetching=this.isFetching.bind(this,key),apiFn.useIsFetching=this.useIsFetching.bind(void 0,key),Object.freeze(apiFn)}createMutationApi(key,factory,relatedQueries=[]){const apiFn=__privateMethod(this,_ApiClient_instances,createApi_fn).call(this,key,factory);return apiFn.relatedQueries=Object.freeze(relatedQueries),apiFn.useMutation=this.useApiMutation.bind(this,apiFn),apiFn.refetchRelatedQueries=function(){return Promise.all(relatedQueries.map(query=>query.refetchQueries()))},apiFn.invalidateRelatedQueries=function(){return Promise.all(relatedQueries.map(query=>query.invalidateQueries()))},apiFn.isMutating=this.isMutating.bind(this,key),apiFn.useIsMutating=this.useIsMutating.bind(void 0,key),Object.freeze(apiFn)}getApiQueryData(apiKey,args){return __privateGet(this,_queryClient).getQueryData(arguments.length>1?[apiKey,args]:[apiKey])}getApiQueriesData(apiKey,args){return __privateGet(this,_queryClient).getQueriesData({queryKey:arguments.length>1?[apiKey,args]:[apiKey],type:"active",exact:!1})}setApiQueryData(data,apiKey,args){__privateGet(this,_queryClient).setQueryData(arguments.length>2?[apiKey,args]:[apiKey],data)}async ensureApiQueryData(queryFn,args,options){const{initialData,...restOptions}=options??{};return(await __privateGet(this,_queryClient).ensureQueryData({queryKey:[queryFn.key,args],queryFn:({signal})=>queryFn(args,{signal}),initialData:initialData?{code:0,message:"ok",data:initialData}:void 0,...restOptions,revalidateIfStale:!0})).data}removeApiQueries(apiKey,args){__privateGet(this,_queryClient).removeQueries({type:"all",exact:!1,queryKey:arguments.length>1?[apiKey,args]:[apiKey]})}invalidateApiQueries(apiKey,args){return __privateGet(this,_queryClient).invalidateQueries({queryKey:arguments.length>1?[apiKey,args]:[apiKey],type:"all",exact:!1,stale:!1,refetchType:"active"},{throwOnError:!1,cancelRefetch:!1})}resetApiQueries(apiKey,args){return __privateGet(this,_queryClient).resetQueries({queryKey:arguments.length>1?[apiKey,args]:[apiKey],type:"active",exact:!1},{cancelRefetch:!0,throwOnError:!1})}refetchApiQueries(apiKey,args){return __privateGet(this,_queryClient).refetchQueries({queryKey:arguments.length>1?[apiKey,args]:[apiKey],type:"active",exact:!1},{throwOnError:!1,cancelRefetch:!1})}cancelApiQueries(apiKey,args){return __privateGet(this,_queryClient).cancelQueries({queryKey:arguments.length>1?[apiKey,args]:[apiKey],type:"active",exact:!1},{revert:!0,silent:!0})}isFetching(apiKey,args){return __privateGet(this,_queryClient).isFetching({queryKey:arguments.length>1?[apiKey,args]:[apiKey],type:"active",exact:!1})>0}isMutating(apiKey){return __privateGet(this,_queryClient).isMutating({mutationKey:[apiKey],exact:!1})>0}}_queryClient=new WeakMap,_requestClient=new WeakMap,_requestMethods=new WeakMap,_currentSignal=new WeakMap,_ApiClient_instances=new WeakSet,selectData_fn=function(data){return data.data},wrapRefetchFn_fn=function(refetch){return async options=>{const result=await refetch(options);return{isSuccess:result.isSuccess,isError:result.isError,error:result.error,data:result.data}}},createQueryResult_fn=function({isPending,isFetching,isLoading,isRefetching,isSuccess,isPlaceholderData,isError,isLoadingError,isRefetchError,isStale,error,data,refetch}){return{isPending,isSuccess,isError,isLoadingError,isRefetchError,isLoading,isFetching,isRefetching,isPlaceholderData,isStale,error:error??void 0,data,refetch:__privateMethod(this,_ApiClient_instances,wrapRefetchFn_fn).call(this,refetch)}},createApi_fn=function(key,factory){const fn=factory(__privateGet(this,_requestMethods)),apiFn=async(args,apiOptions)=>(__privateSet(this,_currentSignal,apiOptions?.signal),await fn(args));return apiFn.key=key,apiFn};function createApiClient(options){return Object.freeze(new ApiClient(options))}exports.ApiClient=ApiClient,exports.createApiClient=createApiClient;/*! VefFramework is a blazingly high-level, modern, flexible, easy-to-use UI framework made by Venus. Follow me on Github: https://github.com/ilxqx! @ilxqx */
@@ -1 +1 @@
1
- "use strict";/*! VefFramework version: 1.0.116, build time: 2025-03-10T07:29:22.754Z, made by Venus. */Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const shared=require("@vef-framework/shared"),react=require("react"),Context=react.createContext(null),ApiContextProvider=({client,dataDictionaryApi,loginApi,logoutApi,fetchAuthenticatedUserApi,children})=>{const apiContext=react.useMemo(()=>{const stubQueryApi=client.createQueryApi("_vefStubQueryApi",()=>stubData=>Promise.resolve({code:0,message:"ok",data:stubData})),asyncFnQueryApi=client.createQueryApi("_vefAsyncFnQueryApi",()=>async({args,fn})=>({code:0,message:"ok",data:await fn(...args)})),stubMutationApi=client.createMutationApi("_vefStubMutationApi",()=>stubData=>Promise.resolve({code:0,message:"ok",data:stubData})),asyncFnMutationApi=client.createMutationApi("_vefAsyncFnMutationApi",()=>async({args,fn})=>({code:0,message:"ok",data:await fn(...args)}));return Object.freeze({useApiQuery:client.useApiQuery,useSuspenseApiQuery:client.useSuspenseApiQuery,useApiMutation:client.useApiMutation,useIsFetching:client.useIsFetching,useIsMutating:client.useIsMutating,fetchApiQuery:client.fetchApiQuery.bind(client),createQueryApi:client.createQueryApi.bind(client),createMutationApi:client.createMutationApi.bind(client),getApiQueryData:client.getApiQueryData.bind(client),getApiQueriesData:client.getApiQueriesData.bind(client),setApiQueryData:client.setApiQueryData.bind(client),ensureApiQueryData:client.ensureApiQueryData.bind(client),removeApiQueries:client.removeApiQueries.bind(client),invalidateApiQueries:client.invalidateApiQueries.bind(client),resetApiQueries:client.resetApiQueries.bind(client),refetchApiQueries:client.refetchApiQueries.bind(client),cancelApiQueries:client.cancelApiQueries.bind(client),isFetching:client.isFetching.bind(client),isMutating:client.isMutating.bind(client),stubQueryApi,asyncFnQueryApi,stubMutationApi,asyncFnMutationApi,dataDictionaryApi,loginApi,logoutApi,fetchAuthenticatedUserApi})},[client,dataDictionaryApi,loginApi,logoutApi,fetchAuthenticatedUserApi]);return react.createElement(Context.Provider,{value:apiContext},react.createElement(client.QueryClientProvider,{},children))};function useApiContext(){const context=react.useContext(Context);if(context===null)throw new shared.VefError(-1,"Api context not found: Please ensure useApiContext is called within an ApiContextProvider");return context}exports.ApiContextProvider=ApiContextProvider,exports.useApiContext=useApiContext;/*! VefFramework is a blazingly high-level, modern, flexible, easy-to-use UI framework made by Venus. Follow me on Github: https://github.com/ilxqx! @ilxqx */
1
+ "use strict";/*! VefFramework version: 1.0.118, build time: 2025-03-11T06:26:31.511Z, made by Venus. */Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const shared=require("@vef-framework/shared"),react=require("react"),Context=react.createContext(null),ApiContextProvider=({client,dataDictionaryApi,loginApi,logoutApi,fetchAuthenticatedUserApi,children})=>{const apiContext=react.useMemo(()=>{const stubQueryApi=client.createQueryApi("_vefStubQueryApi",()=>stubData=>Promise.resolve({code:0,message:"ok",data:stubData})),asyncFnQueryApi=client.createQueryApi("_vefAsyncFnQueryApi",()=>async({args,fn})=>({code:0,message:"ok",data:await fn(...args)})),stubMutationApi=client.createMutationApi("_vefStubMutationApi",()=>stubData=>Promise.resolve({code:0,message:"ok",data:stubData})),asyncFnMutationApi=client.createMutationApi("_vefAsyncFnMutationApi",()=>async({args,fn})=>({code:0,message:"ok",data:await fn(...args)}));return Object.freeze({useApiQuery:client.useApiQuery,useSuspenseApiQuery:client.useSuspenseApiQuery,useApiMutation:client.useApiMutation,useIsFetching:client.useIsFetching,useIsMutating:client.useIsMutating,fetchApiQuery:client.fetchApiQuery.bind(client),createQueryApi:client.createQueryApi.bind(client),createMutationApi:client.createMutationApi.bind(client),getApiQueryData:client.getApiQueryData.bind(client),getApiQueriesData:client.getApiQueriesData.bind(client),setApiQueryData:client.setApiQueryData.bind(client),ensureApiQueryData:client.ensureApiQueryData.bind(client),removeApiQueries:client.removeApiQueries.bind(client),invalidateApiQueries:client.invalidateApiQueries.bind(client),resetApiQueries:client.resetApiQueries.bind(client),refetchApiQueries:client.refetchApiQueries.bind(client),cancelApiQueries:client.cancelApiQueries.bind(client),isFetching:client.isFetching.bind(client),isMutating:client.isMutating.bind(client),stubQueryApi,asyncFnQueryApi,stubMutationApi,asyncFnMutationApi,dataDictionaryApi,loginApi,logoutApi,fetchAuthenticatedUserApi})},[client,dataDictionaryApi,loginApi,logoutApi,fetchAuthenticatedUserApi]);return react.createElement(Context.Provider,{value:apiContext},react.createElement(client.QueryClientProvider,{},children))};function useApiContext(){const context=react.useContext(Context);if(context===null)throw new shared.VefError(-1,"Api context not found: Please ensure useApiContext is called within an ApiContextProvider");return context}exports.ApiContextProvider=ApiContextProvider,exports.useApiContext=useApiContext;/*! VefFramework is a blazingly high-level, modern, flexible, easy-to-use UI framework made by Venus. Follow me on Github: https://github.com/ilxqx! @ilxqx */
package/lib/api/index.cjs CHANGED
@@ -1 +1 @@
1
- "use strict";/*! VefFramework version: 1.0.116, build time: 2025-03-10T07:29:22.754Z, made by Venus. */Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const apiClient=require("./api-client.cjs"),apiContext=require("./api-context.cjs"),reactQuery=require("@tanstack/react-query");exports.ApiClient=apiClient.ApiClient,exports.createApiClient=apiClient.createApiClient,exports.ApiContextProvider=apiContext.ApiContextProvider,exports.useApiContext=apiContext.useApiContext,Object.defineProperty(exports,"useQueryErrorResetBoundary",{enumerable:!0,get:()=>reactQuery.useQueryErrorResetBoundary});/*! VefFramework is a blazingly high-level, modern, flexible, easy-to-use UI framework made by Venus. Follow me on Github: https://github.com/ilxqx! @ilxqx */
1
+ "use strict";/*! VefFramework version: 1.0.118, build time: 2025-03-11T06:26:31.511Z, made by Venus. */Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const apiClient=require("./api-client.cjs"),apiContext=require("./api-context.cjs"),reactQuery=require("@tanstack/react-query");exports.ApiClient=apiClient.ApiClient,exports.createApiClient=apiClient.createApiClient,exports.ApiContextProvider=apiContext.ApiContextProvider,exports.useApiContext=apiContext.useApiContext,Object.defineProperty(exports,"useQueryErrorResetBoundary",{enumerable:!0,get:()=>reactQuery.useQueryErrorResetBoundary});/*! VefFramework is a blazingly high-level, modern, flexible, easy-to-use UI framework made by Venus. Follow me on Github: https://github.com/ilxqx! @ilxqx */
@@ -1 +1 @@
1
- "use strict";/*! VefFramework version: 1.0.116, build time: 2025-03-10T07:29:22.754Z, made by Venus. */Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const reactQuery=require("@tanstack/react-query");function createQueryClient(options){const staleTime=options?.staleTime??1/0,gcTime=options?.gcTime??10*60*1e3;return new reactQuery.QueryClient({defaultOptions:{queries:{networkMode:"always",staleTime,gcTime,retry:!1,structuralSharing:!0,throwOnError:!1,refetchOnMount:!1,refetchOnReconnect:!0,refetchOnWindowFocus:!0},mutations:{networkMode:"always",gcTime:staleTime,retry:!1,throwOnError:!1}}})}exports.createQueryClient=createQueryClient;/*! VefFramework is a blazingly high-level, modern, flexible, easy-to-use UI framework made by Venus. Follow me on Github: https://github.com/ilxqx! @ilxqx */
1
+ "use strict";/*! VefFramework version: 1.0.118, build time: 2025-03-11T06:26:31.511Z, made by Venus. */Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const reactQuery=require("@tanstack/react-query");function createQueryClient(options){const staleTime=options?.staleTime??1/0,gcTime=options?.gcTime??10*60*1e3;return new reactQuery.QueryClient({defaultOptions:{queries:{networkMode:"always",staleTime,gcTime,retry:!1,structuralSharing:!0,throwOnError:!1,refetchOnMount:!1,refetchOnReconnect:!0,refetchOnWindowFocus:!0},mutations:{networkMode:"always",gcTime:staleTime,retry:!1,throwOnError:!1}}})}exports.createQueryClient=createQueryClient;/*! VefFramework is a blazingly high-level, modern, flexible, easy-to-use UI framework made by Venus. Follow me on Github: https://github.com/ilxqx! @ilxqx */
@@ -1 +1 @@
1
- "use strict";/*! VefFramework version: 1.0.116, build time: 2025-03-10T07:29:22.754Z, made by Venus. */Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const shared=require("@vef-framework/shared"),axios=require("axios"),qs=require("qs");var __typeError=msg=>{throw TypeError(msg)},__accessCheck=(obj,member,msg)=>member.has(obj)||__typeError("Cannot "+msg),__privateGet=(obj,member,getter)=>(__accessCheck(obj,member,"read from private field"),getter?getter.call(obj):member.get(obj)),__privateAdd=(obj,member,value)=>member.has(obj)?__typeError("Cannot add the same private member more than once"):member instanceof WeakSet?member.add(obj):member.set(obj,value),__privateSet=(obj,member,value,setter)=>(__accessCheck(obj,member,"write to private field"),setter?setter.call(obj,value):member.set(obj,value),value),_axiosInstance;const pathParamRegex=/\{\w+\}/;class RequestClient{constructor(options){this.options=options,__privateAdd(this,_axiosInstance);const{baseUrl,timeout,getAccessToken,successCode=0,unauthorizedCode=1e3,accessDeniedCode=1002,tokenExpiredCode=1001,onUnauthorized,onAccessDenied}=options;__privateSet(this,_axiosInstance,axios.create({baseURL:baseUrl,timeout:timeout??1e3*30,headers:{"Content-Type":"application/json"},paramsSerializer:params=>qs.stringify(params,{arrayFormat:"repeat",skipNulls:!0,charset:"utf-8"}),responseType:"json",validateStatus:()=>!0})),__privateGet(this,_axiosInstance).interceptors.request.use(config=>{const token=getAccessToken?.();token&&(config.headers.Authorization=`Bearer ${token}`);const{url}=config;return url&&pathParamRegex.test(url)&&(config.url=url.replace(pathParamRegex,(_,key)=>{const value=config.params?.[key];if(shared.isNullish(value))throw new Error(`Path parameter ${key} is nil`);return value})),config}),__privateGet(this,_axiosInstance).interceptors.response.use(async response=>{const{code,message}=response.data;if(code===successCode)return response;throw code===unauthorizedCode?await onUnauthorized?.():code===tokenExpiredCode?(shared.showInfoMessage("登录已失效"),await onUnauthorized?.()):code===accessDeniedCode?(shared.showWarningMessage(`${message},请联系管理员为您开通`),await onAccessDenied?.()):shared.showWarningMessage(message),new shared.VefError(code,message)},error=>{if(error instanceof axios.CanceledError)return Promise.reject(error);const{response,message}=error;if(response?.data){const errorMessage=`处理请求响应信息异常:${message??"无"}`;return Promise.reject(new shared.VefError(response.status,errorMessage))}else{let errorMessage=message??(shared.isString(error)?error:"");return errorMessage==="Network Error"?errorMessage="接口连接异常可能原因:网络不通或存在跨域问题。":errorMessage.includes("timeout")?errorMessage="接口请求超时":errorMessage.includes("Request failed with status code")?errorMessage=`接口状态码异常:${message.substring(message.length-3)}`:errorMessage="接口未知异常",shared.showErrorMessage(errorMessage),Promise.reject(new shared.VefError(-1,errorMessage))}})}async get(url,options){return(await __privateGet(this,_axiosInstance).get(url,{params:options?.params,signal:options?.signal})).data}async post(url,data,options){return(await __privateGet(this,_axiosInstance).post(url,data,{params:options?.params,signal:options?.signal})).data}async put(url,data,options){return(await __privateGet(this,_axiosInstance).put(url,data,{params:options?.params,signal:options?.signal})).data}async delete(url,options){return(await __privateGet(this,_axiosInstance).delete(url,{params:options?.params,signal:options?.signal})).data}async upload(url,data,options){return(await __privateGet(this,_axiosInstance).postForm(url,data,{params:options?.params,signal:options?.signal,onUploadProgress:shared.isFunction(options?.onProgress)?progressEvent=>{const total=progressEvent.lengthComputable?progressEvent.total??0:0,{loaded}=progressEvent,percent=Math.round(loaded/total*100);options.onProgress?.(percent)}:void 0})).data}async download(url,options){const{data,headers}=await __privateGet(this,_axiosInstance).get(url,{params:options?.params,responseType:"blob",onDownloadProgress:shared.isFunction(options?.onProgress)?progressEvent=>{const total=progressEvent.lengthComputable?progressEvent.total??0:0,{loaded}=progressEvent,percent=Math.round(loaded/total*100);options.onProgress?.(percent)}:void 0});let response=null;try{response=JSON.parse(await data.text())}catch{}if(response&&response.code!==0)throw new shared.VefError(response.code,response.message);const contentDisposition=headers.get("content-disposition");if(shared.isString(contentDisposition)){const matches=/filename[^;=\n]*=(?<name>(?<quote>['"]).*?\2|[^;\n]*)/.exec(contentDisposition);if(matches&&matches.groups){const{name}=matches.groups,fileName=decodeURIComponent(name),a=document.createElement("a");a.href=URL.createObjectURL(data),a.download=shared.isFunction(options?.fileName)?options.fileName(fileName):options?.fileName??fileName,a.click(),URL.revokeObjectURL(a.href)}}}}_axiosInstance=new WeakMap;function createRequestClient(options){return Object.freeze(new RequestClient(options))}exports.RequestClient=RequestClient,exports.createRequestClient=createRequestClient;/*! VefFramework is a blazingly high-level, modern, flexible, easy-to-use UI framework made by Venus. Follow me on Github: https://github.com/ilxqx! @ilxqx */
1
+ "use strict";/*! VefFramework version: 1.0.118, build time: 2025-03-11T06:26:31.511Z, made by Venus. */Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const shared=require("@vef-framework/shared"),axios=require("axios"),qs=require("qs");var __typeError=msg=>{throw TypeError(msg)},__accessCheck=(obj,member,msg)=>member.has(obj)||__typeError("Cannot "+msg),__privateGet=(obj,member,getter)=>(__accessCheck(obj,member,"read from private field"),getter?getter.call(obj):member.get(obj)),__privateAdd=(obj,member,value)=>member.has(obj)?__typeError("Cannot add the same private member more than once"):member instanceof WeakSet?member.add(obj):member.set(obj,value),__privateSet=(obj,member,value,setter)=>(__accessCheck(obj,member,"write to private field"),setter?setter.call(obj,value):member.set(obj,value),value),_axiosInstance;const pathParamRegex=/\{\w+\}/;class RequestClient{constructor(options){this.options=options,__privateAdd(this,_axiosInstance);const{baseUrl,timeout,getAccessToken,successCode=0,unauthorizedCode=1e3,accessDeniedCode=1002,tokenExpiredCode=1001,onUnauthorized,onAccessDenied}=options;__privateSet(this,_axiosInstance,axios.create({baseURL:baseUrl,timeout:timeout??1e3*30,headers:{"Content-Type":"application/json"},paramsSerializer:params=>qs.stringify(params,{arrayFormat:"repeat",skipNulls:!0,charset:"utf-8"}),responseType:"json",validateStatus:()=>!0})),__privateGet(this,_axiosInstance).interceptors.request.use(config=>{const token=getAccessToken?.();token&&(config.headers.Authorization=`Bearer ${token}`);const{url}=config;return url&&pathParamRegex.test(url)&&(config.url=url.replace(pathParamRegex,(_,key)=>{const value=config.params?.[key];if(shared.isNullish(value))throw new Error(`Path parameter ${key} is nil`);return value})),config}),__privateGet(this,_axiosInstance).interceptors.response.use(async response=>{const{code,message}=response.data;if(code===successCode)return response;throw code===unauthorizedCode?await onUnauthorized?.():code===tokenExpiredCode?(shared.showInfoMessage("登录已失效"),await onUnauthorized?.()):code===accessDeniedCode?(shared.showWarningMessage(`${message},请联系管理员为您开通`),await onAccessDenied?.()):shared.showWarningMessage(message),new shared.VefError(code,message)},error=>{if(error instanceof axios.CanceledError)return Promise.reject(error);const{response,message}=error;if(response?.data){const errorMessage=`处理请求响应信息异常:${message??"无"}`;return Promise.reject(new shared.VefError(response.status,errorMessage))}else{let errorMessage=message??(shared.isString(error)?error:"");return errorMessage==="Network Error"?errorMessage="接口连接异常可能原因:网络不通或存在跨域问题。":errorMessage.includes("timeout")?errorMessage="接口请求超时":errorMessage.includes("Request failed with status code")?errorMessage=`接口状态码异常:${message.substring(message.length-3)}`:errorMessage="接口未知异常",shared.showErrorMessage(errorMessage),Promise.reject(new shared.VefError(-1,errorMessage))}})}async get(url,options){return(await __privateGet(this,_axiosInstance).get(url,{params:options?.params,headers:options?.headers,signal:options?.signal})).data}async post(url,data,options){return(await __privateGet(this,_axiosInstance).post(url,data,{params:options?.params,headers:options?.headers,signal:options?.signal})).data}async put(url,data,options){return(await __privateGet(this,_axiosInstance).put(url,data,{params:options?.params,headers:options?.headers,signal:options?.signal})).data}async delete(url,options){return(await __privateGet(this,_axiosInstance).delete(url,{params:options?.params,headers:options?.headers,signal:options?.signal})).data}async upload(url,data,options){return(await __privateGet(this,_axiosInstance).postForm(url,data,{params:options?.params,headers:options?.headers,signal:options?.signal,onUploadProgress:shared.isFunction(options?.onProgress)?progressEvent=>{const total=progressEvent.lengthComputable?progressEvent.total??0:0,{loaded}=progressEvent,percent=Math.round(loaded/total*100);options.onProgress?.(percent)}:void 0})).data}async download(url,options){const{data,headers}=await __privateGet(this,_axiosInstance).get(url,{params:options?.params,headers:options?.headers,responseType:"blob",onDownloadProgress:shared.isFunction(options?.onProgress)?progressEvent=>{const total=progressEvent.lengthComputable?progressEvent.total??0:0,{loaded}=progressEvent,percent=Math.round(loaded/total*100);options.onProgress?.(percent)}:void 0});let response=null;try{response=JSON.parse(await data.text())}catch{}if(response&&response.code!==0)throw new shared.VefError(response.code,response.message);const contentDisposition=headers.get("content-disposition");if(shared.isString(contentDisposition)){const matches=/filename[^;=\n]*=(?<name>(?<quote>['"]).*?\2|[^;\n]*)/.exec(contentDisposition);if(matches&&matches.groups){const{name}=matches.groups,fileName=decodeURIComponent(name),a=document.createElement("a");a.href=URL.createObjectURL(data),a.download=shared.isFunction(options?.fileName)?options.fileName(fileName):options?.fileName??fileName,a.click(),URL.revokeObjectURL(a.href)}}}}_axiosInstance=new WeakMap;function createRequestClient(options){return Object.freeze(new RequestClient(options))}exports.RequestClient=RequestClient,exports.createRequestClient=createRequestClient;/*! VefFramework is a blazingly high-level, modern, flexible, easy-to-use UI framework made by Venus. Follow me on Github: https://github.com/ilxqx! @ilxqx */
@@ -1 +1 @@
1
- "use strict";/*! VefFramework version: 1.0.116, build time: 2025-03-10T07:29:22.754Z, made by Venus. */Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const shared=require("@vef-framework/shared"),react=require("react"),Context=react.createContext(null),AuthContextProvider=({permissionChecker,children})=>{const authContext=react.useMemo(()=>({checkPermission:token=>permissionChecker?shared.isString(token)?permissionChecker(token):permissionChecker(token.key):!0}),[permissionChecker]);return react.createElement(Context.Provider,{value:authContext},children)};function useAuthContext(){const context=react.useContext(Context);if(context===null)throw new shared.VefError(-1,"useAuthContext must be used within a AuthContextProvider");return context}exports.AuthContextProvider=AuthContextProvider,exports.useAuthContext=useAuthContext;/*! VefFramework is a blazingly high-level, modern, flexible, easy-to-use UI framework made by Venus. Follow me on Github: https://github.com/ilxqx! @ilxqx */
1
+ "use strict";/*! VefFramework version: 1.0.118, build time: 2025-03-11T06:26:31.511Z, made by Venus. */Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const shared=require("@vef-framework/shared"),react=require("react"),Context=react.createContext(null),AuthContextProvider=({permissionChecker,children})=>{const authContext=react.useMemo(()=>({checkPermission:token=>permissionChecker?shared.isString(token)?permissionChecker(token):permissionChecker(token.key):!0}),[permissionChecker]);return react.createElement(Context.Provider,{value:authContext},children)};function useAuthContext(){const context=react.useContext(Context);if(context===null)throw new shared.VefError(-1,"useAuthContext must be used within a AuthContextProvider");return context}exports.AuthContextProvider=AuthContextProvider,exports.useAuthContext=useAuthContext;/*! VefFramework is a blazingly high-level, modern, flexible, easy-to-use UI framework made by Venus. Follow me on Github: https://github.com/ilxqx! @ilxqx */
@@ -1 +1 @@
1
- "use strict";/*! VefFramework version: 1.0.116, build time: 2025-03-10T07:29:22.754Z, made by Venus. */Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const authContext=require("./auth-context.cjs");exports.AuthContextProvider=authContext.AuthContextProvider,exports.useAuthContext=authContext.useAuthContext;/*! VefFramework is a blazingly high-level, modern, flexible, easy-to-use UI framework made by Venus. Follow me on Github: https://github.com/ilxqx! @ilxqx */
1
+ "use strict";/*! VefFramework version: 1.0.118, build time: 2025-03-11T06:26:31.511Z, made by Venus. */Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const authContext=require("./auth-context.cjs");exports.AuthContextProvider=authContext.AuthContextProvider,exports.useAuthContext=authContext.useAuthContext;/*! VefFramework is a blazingly high-level, modern, flexible, easy-to-use UI framework made by Venus. Follow me on Github: https://github.com/ilxqx! @ilxqx */
@@ -1 +1 @@
1
- "use strict";/*! VefFramework version: 1.0.116, build time: 2025-03-10T07:29:22.754Z, made by Venus. */Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const helpers=require("./helpers.cjs");function compile(expr){let provideTokens;const requirements=new Set,x=function(operand,tokens){return typeof operand=="function"?operand(tokens):operand},operatorRegistry=[{"&&":(l,r,t)=>x(l,t)&&x(r,t),"||":(l,r,t)=>x(l,t)||x(r,t)},{"===":(l,r,t)=>x(l,t)===x(r,t),"!==":(l,r,t)=>x(l,t)!==x(r,t),"==":(l,r,t)=>x(l,t)==x(r,t),"!=":(l,r,t)=>x(l,t)!=x(r,t),">=":(l,r,t)=>x(l,t)>=x(r,t),"<=":(l,r,t)=>x(l,t)<=x(r,t),">":(l,r,t)=>x(l,t)>x(r,t),"<":(l,r,t)=>x(l,t)<x(r,t)},{"+":(l,r,t)=>x(l,t)+x(r,t),"-":(l,r,t)=>x(l,t)-x(r,t)},{"*":(l,r,t)=>x(l,t)*x(r,t),"/":(l,r,t)=>x(l,t)/x(r,t),"%":(l,r,t)=>x(l,t)%x(r,t)}],operatorSymbols=operatorRegistry.reduce((s,g)=>s.concat(Object.keys(g)),[]),operatorChars=new Set(operatorSymbols.map(key=>key.charAt(0)));function getOp(symbols,char,p,expression){const candidates=symbols.filter(s=>s.startsWith(char));return candidates.length?candidates.find(symbol=>expression.length>=p+symbol.length&&expression.substring(p,p+symbol.length)===symbol?symbol:!1):!1}function getStep(p,expression,direction=1){let next=direction?expression.substring(p+1).trim():expression.substring(0,p).trim();if(!next.length)return-1;if(!direction){const reversed=next.split("").reverse(),start=reversed.findIndex(char2=>operatorChars.has(char2));next=reversed.slice(start).join("")}const[char]=next;return operatorRegistry.findIndex(operators=>{const symbols=Object.keys(operators);return!!getOp(symbols,char,0,next)})}function getTail(pos,expression){let tail="";const{length}=expression;let depth=0;for(let p=pos;p<length;p++){const char=expression.charAt(p);if(char==="(")depth++;else if(char===")")depth--;else if(depth===0&&char===" ")continue;if(depth===0&&getOp(operatorSymbols,char,p,expression))return[tail,p-1];tail+=char}return[tail,expression.length-1]}function compileExpr(expression,step=0){const operators=operatorRegistry[step],{length}=expression,symbols=Object.keys(operators);let depth=0,quote=!1,op=null,operand="",left=null,operation,lastChar,char="",parenthetical="",parenQuote="",startP=0;const addTo=(depth2,char2)=>{depth2?parenthetical+=char2:operand+=char2};for(let p=0;p<length;p++)if(lastChar=char,char=expression.charAt(p),(char==="'"||char==='"')&&lastChar!=="\\"&&(depth===0&&!quote||depth&&!parenQuote)){depth?parenQuote=char:quote=char,addTo(depth,char);continue}else if(quote&&(char!==quote||lastChar==="\\")||parenQuote&&(char!==parenQuote||lastChar==="\\")){addTo(depth,char);continue}else if(quote===char){quote=!1,addTo(depth,char);continue}else if(parenQuote===char){parenQuote=!1,addTo(depth,char);continue}else{if(char===" ")continue;if(char==="(")depth===0?startP=p:parenthetical+=char,depth++;else if(char===")")if(depth--,depth===0){const fn=typeof operand=="string"&&operand.startsWith("$")?operand:void 0,hasTail=fn&&expression.charAt(p+1)===".";let tail="";hasTail&&([tail,p]=getTail(p+2,expression));const lStep=op?step:getStep(startP,expression,0),rStep=getStep(p,expression);lStep===-1&&rStep===-1?(operand=evaluate(parenthetical,-1,fn,tail),typeof operand=="string"&&(operand=parenthetical)):op&&(lStep>=rStep||rStep===-1)&&step===lStep?(left=op.bind(null,evaluate(parenthetical,-1,fn,tail)),op=null,operand=""):rStep>lStep&&step===rStep?operand=evaluate(parenthetical,-1,fn,tail):operand+=`(${parenthetical})${hasTail?`.${tail}`:""}`,parenthetical=""}else parenthetical+=char;else if(depth===0&&(operation=getOp(symbols,char,p,expression))){p===0&&console.error(103,[operation,expression]),p+=operation.length-1,p===expression.length-1&&console.error(104,[operation,expression]),op?operand&&(left=op.bind(null,evaluate(operand,step)),op=operators[operation].bind(null,left),operand=""):left?(op=operators[operation].bind(null,evaluate(left,step)),left=null):(op=operators[operation].bind(null,evaluate(operand,step)),operand="");continue}else addTo(depth,char)}return operand&&op&&(op=op.bind(null,evaluate(operand,step))),op=!op&&left?left:op,!op&&operand&&(op=(v,t)=>typeof v=="function"?v(t):v,op=op.bind(null,evaluate(operand,step))),!op&&!operand&&console.error(105,expression),op}function evaluate(operand,step,fnToken,tail){if(fnToken){const fn=evaluate(fnToken,operatorRegistry.length);let userFuncReturn,tailCall=tail?compile(`$${tail}`):!1;if(typeof fn=="function"){const args=helpers.parseArgs(String(operand)).map(arg=>evaluate(arg,-1));return tokens=>{const userFunc=fn(tokens);return typeof userFunc!="function"?(console.warn(150,fnToken),userFunc):(userFuncReturn=userFunc(...args.map(arg=>typeof arg=="function"?arg(tokens):arg)),tailCall&&(tailCall=tailCall.provide(subTokens=>{const rootTokens=provideTokens(subTokens);return subTokens.reduce((tokenSet,token)=>{if(token===tail||tail?.startsWith(`${token}(`)){const value=helpers.getAt(userFuncReturn,token);tokenSet[token]=()=>value}else tokenSet[token]=rootTokens[token];return tokenSet},{})})),tailCall?tailCall():userFuncReturn)}}}else if(typeof operand=="string"){if(operand==="true")return!0;if(operand==="false")return!1;if(operand==="undefined")return;if(helpers.isQuotedString(operand))return helpers.rmEscapes(operand.substring(1,operand.length-1));if(!Number.isNaN(+operand))return Number(operand);if(step<operatorRegistry.length-1)return compileExpr(operand,step+1);if(operand.startsWith("$")){const cleaned=operand.substring(1);return requirements.add(cleaned),function(tokens){return cleaned in tokens?tokens[cleaned]():void 0}}return operand}return operand}const compiled=compileExpr(expr),identifiers=Array.from(requirements);function provide(callback){return provideTokens=callback,Object.assign(compiled.bind(null,callback(identifiers)),{provide})}return Object.assign(compiled,{provide})}exports.compile=compile;/*! VefFramework is a blazingly high-level, modern, flexible, easy-to-use UI framework made by Venus. Follow me on Github: https://github.com/ilxqx! @ilxqx */
1
+ "use strict";/*! VefFramework version: 1.0.118, build time: 2025-03-11T06:26:31.511Z, made by Venus. */Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const helpers=require("./helpers.cjs");function compile(expr){let provideTokens;const requirements=new Set,x=function(operand,tokens){return typeof operand=="function"?operand(tokens):operand},operatorRegistry=[{"&&":(l,r,t)=>x(l,t)&&x(r,t),"||":(l,r,t)=>x(l,t)||x(r,t)},{"===":(l,r,t)=>x(l,t)===x(r,t),"!==":(l,r,t)=>x(l,t)!==x(r,t),"==":(l,r,t)=>x(l,t)==x(r,t),"!=":(l,r,t)=>x(l,t)!=x(r,t),">=":(l,r,t)=>x(l,t)>=x(r,t),"<=":(l,r,t)=>x(l,t)<=x(r,t),">":(l,r,t)=>x(l,t)>x(r,t),"<":(l,r,t)=>x(l,t)<x(r,t)},{"+":(l,r,t)=>x(l,t)+x(r,t),"-":(l,r,t)=>x(l,t)-x(r,t)},{"*":(l,r,t)=>x(l,t)*x(r,t),"/":(l,r,t)=>x(l,t)/x(r,t),"%":(l,r,t)=>x(l,t)%x(r,t)}],operatorSymbols=operatorRegistry.reduce((s,g)=>s.concat(Object.keys(g)),[]),operatorChars=new Set(operatorSymbols.map(key=>key.charAt(0)));function getOp(symbols,char,p,expression){const candidates=symbols.filter(s=>s.startsWith(char));return candidates.length?candidates.find(symbol=>expression.length>=p+symbol.length&&expression.substring(p,p+symbol.length)===symbol?symbol:!1):!1}function getStep(p,expression,direction=1){let next=direction?expression.substring(p+1).trim():expression.substring(0,p).trim();if(!next.length)return-1;if(!direction){const reversed=next.split("").reverse(),start=reversed.findIndex(char2=>operatorChars.has(char2));next=reversed.slice(start).join("")}const[char]=next;return operatorRegistry.findIndex(operators=>{const symbols=Object.keys(operators);return!!getOp(symbols,char,0,next)})}function getTail(pos,expression){let tail="";const{length}=expression;let depth=0;for(let p=pos;p<length;p++){const char=expression.charAt(p);if(char==="(")depth++;else if(char===")")depth--;else if(depth===0&&char===" ")continue;if(depth===0&&getOp(operatorSymbols,char,p,expression))return[tail,p-1];tail+=char}return[tail,expression.length-1]}function compileExpr(expression,step=0){const operators=operatorRegistry[step],{length}=expression,symbols=Object.keys(operators);let depth=0,quote=!1,op=null,operand="",left=null,operation,lastChar,char="",parenthetical="",parenQuote="",startP=0;const addTo=(depth2,char2)=>{depth2?parenthetical+=char2:operand+=char2};for(let p=0;p<length;p++)if(lastChar=char,char=expression.charAt(p),(char==="'"||char==='"')&&lastChar!=="\\"&&(depth===0&&!quote||depth&&!parenQuote)){depth?parenQuote=char:quote=char,addTo(depth,char);continue}else if(quote&&(char!==quote||lastChar==="\\")||parenQuote&&(char!==parenQuote||lastChar==="\\")){addTo(depth,char);continue}else if(quote===char){quote=!1,addTo(depth,char);continue}else if(parenQuote===char){parenQuote=!1,addTo(depth,char);continue}else{if(char===" ")continue;if(char==="(")depth===0?startP=p:parenthetical+=char,depth++;else if(char===")")if(depth--,depth===0){const fn=typeof operand=="string"&&operand.startsWith("$")?operand:void 0,hasTail=fn&&expression.charAt(p+1)===".";let tail="";hasTail&&([tail,p]=getTail(p+2,expression));const lStep=op?step:getStep(startP,expression,0),rStep=getStep(p,expression);lStep===-1&&rStep===-1?(operand=evaluate(parenthetical,-1,fn,tail),typeof operand=="string"&&(operand=parenthetical)):op&&(lStep>=rStep||rStep===-1)&&step===lStep?(left=op.bind(null,evaluate(parenthetical,-1,fn,tail)),op=null,operand=""):rStep>lStep&&step===rStep?operand=evaluate(parenthetical,-1,fn,tail):operand+=`(${parenthetical})${hasTail?`.${tail}`:""}`,parenthetical=""}else parenthetical+=char;else if(depth===0&&(operation=getOp(symbols,char,p,expression))){p===0&&console.error(103,[operation,expression]),p+=operation.length-1,p===expression.length-1&&console.error(104,[operation,expression]),op?operand&&(left=op.bind(null,evaluate(operand,step)),op=operators[operation].bind(null,left),operand=""):left?(op=operators[operation].bind(null,evaluate(left,step)),left=null):(op=operators[operation].bind(null,evaluate(operand,step)),operand="");continue}else addTo(depth,char)}return operand&&op&&(op=op.bind(null,evaluate(operand,step))),op=!op&&left?left:op,!op&&operand&&(op=(v,t)=>typeof v=="function"?v(t):v,op=op.bind(null,evaluate(operand,step))),!op&&!operand&&console.error(105,expression),op}function evaluate(operand,step,fnToken,tail){if(fnToken){const fn=evaluate(fnToken,operatorRegistry.length);let userFuncReturn,tailCall=tail?compile(`$${tail}`):!1;if(typeof fn=="function"){const args=helpers.parseArgs(String(operand)).map(arg=>evaluate(arg,-1));return tokens=>{const userFunc=fn(tokens);return typeof userFunc!="function"?(console.warn(150,fnToken),userFunc):(userFuncReturn=userFunc(...args.map(arg=>typeof arg=="function"?arg(tokens):arg)),tailCall&&(tailCall=tailCall.provide(subTokens=>{const rootTokens=provideTokens(subTokens);return subTokens.reduce((tokenSet,token)=>{if(token===tail||tail?.startsWith(`${token}(`)){const value=helpers.getAt(userFuncReturn,token);tokenSet[token]=()=>value}else tokenSet[token]=rootTokens[token];return tokenSet},{})})),tailCall?tailCall():userFuncReturn)}}}else if(typeof operand=="string"){if(operand==="true")return!0;if(operand==="false")return!1;if(operand==="undefined")return;if(helpers.isQuotedString(operand))return helpers.rmEscapes(operand.substring(1,operand.length-1));if(!Number.isNaN(+operand))return Number(operand);if(step<operatorRegistry.length-1)return compileExpr(operand,step+1);if(operand.startsWith("$")){const cleaned=operand.substring(1);return requirements.add(cleaned),function(tokens){return cleaned in tokens?tokens[cleaned]():void 0}}return operand}return operand}const compiled=compileExpr(expr),identifiers=Array.from(requirements);function provide(callback){return provideTokens=callback,Object.assign(compiled.bind(null,callback(identifiers)),{provide})}return Object.assign(compiled,{provide})}exports.compile=compile;/*! VefFramework is a blazingly high-level, modern, flexible, easy-to-use UI framework made by Venus. Follow me on Github: https://github.com/ilxqx! @ilxqx */
@@ -1 +1 @@
1
- "use strict";/*! VefFramework version: 1.0.116, build time: 2025-03-10T07:29:22.754Z, made by Venus. */Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});function has(obj,property){return Object.hasOwn(obj,property)}function getAt(obj,addr){if(!obj||typeof obj!="object")return null;const segments=addr.split(".");let o=obj;for(const i in segments){const segment=segments[i];if(has(o,segment)&&(o=o[segment]),+i===segments.length-1)return o;if(!o||typeof o!="object")return null}return null}function isQuotedString(str){if(str[0]!=='"'&&str[0]!=="'"||str[0]!==str[str.length-1])return!1;const[quoteType]=str;for(let p=1;p<str.length;p++)if(str[p]===quoteType&&(p===1||str[p-1]!=="\\")&&p!==str.length-1)return!1;return!0}function parseArgs(str){const args=[];let arg="",depth=0,quote="",lastChar="";for(let p=0;p<str.length;p++){const char=str.charAt(p);char===quote&&lastChar!=="\\"?quote="":(char==="'"||char==='"')&&!quote&&lastChar!=="\\"?quote=char:char==="("&&!quote?depth++:char===")"&&!quote&&depth--,char===","&&!quote&&depth===0?(args.push(arg),arg=""):(char!==" "||quote)&&(arg+=char),lastChar=char}return arg&&args.push(arg),args}function rmEscapes(str){if(!str.length)return"";let clean="",lastChar="";for(let p=0;p<str.length;p++){const char=str.charAt(p);(char!=="\\"||lastChar==="\\")&&(clean+=char),lastChar=char}return clean}exports.getAt=getAt,exports.has=has,exports.isQuotedString=isQuotedString,exports.parseArgs=parseArgs,exports.rmEscapes=rmEscapes;/*! VefFramework is a blazingly high-level, modern, flexible, easy-to-use UI framework made by Venus. Follow me on Github: https://github.com/ilxqx! @ilxqx */
1
+ "use strict";/*! VefFramework version: 1.0.118, build time: 2025-03-11T06:26:31.511Z, made by Venus. */Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});function has(obj,property){return Object.hasOwn(obj,property)}function getAt(obj,addr){if(!obj||typeof obj!="object")return null;const segments=addr.split(".");let o=obj;for(const i in segments){const segment=segments[i];if(has(o,segment)&&(o=o[segment]),+i===segments.length-1)return o;if(!o||typeof o!="object")return null}return null}function isQuotedString(str){if(str[0]!=='"'&&str[0]!=="'"||str[0]!==str[str.length-1])return!1;const[quoteType]=str;for(let p=1;p<str.length;p++)if(str[p]===quoteType&&(p===1||str[p-1]!=="\\")&&p!==str.length-1)return!1;return!0}function parseArgs(str){const args=[];let arg="",depth=0,quote="",lastChar="";for(let p=0;p<str.length;p++){const char=str.charAt(p);char===quote&&lastChar!=="\\"?quote="":(char==="'"||char==='"')&&!quote&&lastChar!=="\\"?quote=char:char==="("&&!quote?depth++:char===")"&&!quote&&depth--,char===","&&!quote&&depth===0?(args.push(arg),arg=""):(char!==" "||quote)&&(arg+=char),lastChar=char}return arg&&args.push(arg),args}function rmEscapes(str){if(!str.length)return"";let clean="",lastChar="";for(let p=0;p<str.length;p++){const char=str.charAt(p);(char!=="\\"||lastChar==="\\")&&(clean+=char),lastChar=char}return clean}exports.getAt=getAt,exports.has=has,exports.isQuotedString=isQuotedString,exports.parseArgs=parseArgs,exports.rmEscapes=rmEscapes;/*! VefFramework is a blazingly high-level, modern, flexible, easy-to-use UI framework made by Venus. Follow me on Github: https://github.com/ilxqx! @ilxqx */
package/lib/index.cjs CHANGED
@@ -1 +1 @@
1
- "use strict";/*! VefFramework version: 1.0.116, build time: 2025-03-10T07:29:22.754Z, made by Venus. */Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"}),require("./api/index.cjs"),require("./auth/index.cjs");const compiler=require("./expr/compiler.cjs"),apiClient=require("./api/api-client.cjs"),reactQuery=require("@tanstack/react-query"),apiContext=require("./api/api-context.cjs"),authContext=require("./auth/auth-context.cjs");exports.compile=compiler.compile,exports.ApiClient=apiClient.ApiClient,exports.createApiClient=apiClient.createApiClient,Object.defineProperty(exports,"useQueryErrorResetBoundary",{enumerable:!0,get:()=>reactQuery.useQueryErrorResetBoundary}),exports.ApiContextProvider=apiContext.ApiContextProvider,exports.useApiContext=apiContext.useApiContext,exports.AuthContextProvider=authContext.AuthContextProvider,exports.useAuthContext=authContext.useAuthContext;/*! VefFramework is a blazingly high-level, modern, flexible, easy-to-use UI framework made by Venus. Follow me on Github: https://github.com/ilxqx! @ilxqx */
1
+ "use strict";/*! VefFramework version: 1.0.118, build time: 2025-03-11T06:26:31.511Z, made by Venus. */Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"}),require("./api/index.cjs"),require("./auth/index.cjs");const compiler=require("./expr/compiler.cjs"),apiClient=require("./api/api-client.cjs"),reactQuery=require("@tanstack/react-query"),apiContext=require("./api/api-context.cjs"),authContext=require("./auth/auth-context.cjs");exports.compile=compiler.compile,exports.ApiClient=apiClient.ApiClient,exports.createApiClient=apiClient.createApiClient,Object.defineProperty(exports,"useQueryErrorResetBoundary",{enumerable:!0,get:()=>reactQuery.useQueryErrorResetBoundary}),exports.ApiContextProvider=apiContext.ApiContextProvider,exports.useApiContext=apiContext.useApiContext,exports.AuthContextProvider=authContext.AuthContextProvider,exports.useAuthContext=authContext.useAuthContext;/*! VefFramework is a blazingly high-level, modern, flexible, easy-to-use UI framework made by Venus. Follow me on Github: https://github.com/ilxqx! @ilxqx */
@@ -1 +1 @@
1
- "use strict";/*! VefFramework version: 1.0.116, build time: 2025-03-10T07:29:22.754Z, made by Venus. */Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});function createDispatcher(){const middlewares=[];let currentIndex=0;const dispatcher=middleware=>middlewares.push(middleware),dispatch=payload=>{const current=middlewares[currentIndex];return typeof current=="function"?current(payload,explicitPayload=>(currentIndex++,dispatch(explicitPayload))):(currentIndex=0,payload)};return dispatcher.dispatch=dispatch,dispatcher.unshift=middleware=>middlewares.unshift(middleware),dispatcher.remove=middleware=>{const index=middlewares.indexOf(middleware);index>-1&&middlewares.splice(index,1)},dispatcher}exports.default=createDispatcher;/*! VefFramework is a blazingly high-level, modern, flexible, easy-to-use UI framework made by Venus. Follow me on Github: https://github.com/ilxqx! @ilxqx */
1
+ "use strict";/*! VefFramework version: 1.0.118, build time: 2025-03-11T06:26:31.511Z, made by Venus. */Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});function createDispatcher(){const middlewares=[];let currentIndex=0;const dispatcher=middleware=>middlewares.push(middleware),dispatch=payload=>{const current=middlewares[currentIndex];return typeof current=="function"?current(payload,explicitPayload=>(currentIndex++,dispatch(explicitPayload))):(currentIndex=0,payload)};return dispatcher.dispatch=dispatch,dispatcher.unshift=middleware=>middlewares.unshift(middleware),dispatcher.remove=middleware=>{const index=middlewares.indexOf(middleware);index>-1&&middlewares.splice(index,1)},dispatcher}exports.default=createDispatcher;/*! VefFramework is a blazingly high-level, modern, flexible, easy-to-use UI framework made by Venus. Follow me on Github: https://github.com/ilxqx! @ilxqx */
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@vef-framework/core",
3
3
  "type": "module",
4
- "version": "1.0.116",
4
+ "version": "1.0.118",
5
5
  "private": false,
6
6
  "packageManager": "pnpm@9.15.0",
7
7
  "description": "The core of the VEF framework",
@@ -36,7 +36,7 @@
36
36
  "use-sync-external-store": "^1.4.0",
37
37
  "@tanstack/react-query": "5.67.2",
38
38
  "@tanstack/react-router": "1.114.3",
39
- "@vef-framework/shared": "1.0.116",
39
+ "@vef-framework/shared": "1.0.118",
40
40
  "axios": "1.8.2",
41
41
  "qs": "6.14.0"
42
42
  },
@@ -20,6 +20,7 @@ export interface RequestClientOptions {
20
20
  export interface RequestOptions<P extends ObjectType = ObjectValue> {
21
21
  signal?: GenericAbortSignal;
22
22
  params?: P;
23
+ headers?: Record<string, string | string[]>;
23
24
  onProgress?: Consumer<number>;
24
25
  }
25
26
  /**