transone 0.3.0 → 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -1,4 +1,4 @@
1
- import{$ as ze,A as pe,Aa as pr,B as fe,Ba as u,C as ce,D as ge,E as me,F as xe,G as Re,H as Te,I as Ve,J as ye,K as be,L as Fe,M as Me,N as je,O as ke,P as he,Q as ve,R as Ce,S as we,T as Ae,U as Ee,V as Oe,W as Pe,X as Se,Y as qe,Z as Le,_ as $e,a as B,aa as Be,b as D,ba as De,c as G,ca as Ge,d as H,da as He,e as I,ea as Ie,f as J,fa as Je,g as K,ga as Ke,h as N,ha as Ne,i as Q,ia as Qe,j as U,ja as Ue,k as W,ka as We,l as X,la as d,m as Y,ma as Xe,n as Z,na as Ye,o as _,oa as Ze,p as ee,pa as _e,q as re,qa as er,r as te,ra as rr,s as oe,sa as tr,t as ne,ta as or,u as ie,ua as nr,v as le,va as ir,w as se,wa as lr,x as ae,xa as sr,y as de,ya as ar,z as ue,za as dr}from"./index-49z4707x.js";import{Ea as ur}from"./index-d5wsetxf.js";import{Fa as fr,Ga as cr,Ha as gr,Ia as mr,Ja as xr,Ka as Rr,La as Tr,Ma as Vr,Na as yr,Oa as br}from"./index-xp7y2crt.js";function p(e){return e instanceof Error?e.message:String(e)}function f(e,r,t){try{let n=e(r,t);if(n===!0)return;return n===!1?"Validation failed":n}catch(n){return p(n)}}function g(e="This field is required"){return(r)=>{if(r===null||r===void 0)return e;if(typeof r==="string"&&r.trim().length===0)return e;if(Array.isArray(r)&&r.length===0)return e;return!0}}function m(e,r=`Must be at least ${e} characters`){return(t)=>typeof t==="string"&&t.length>=e?!0:r}function x(e){return e}function R(e,r){let t={},n=(o)=>{let i=r[o]??[],l=d(e,o),s=i.map((a)=>f(a,l,e)).filter((a)=>a!==void 0);if(s.length===0)delete t[o];else t[o]=s;return{valid:s.length===0,errors:s}};return{model:e,errors:t,validate(){let o={};return Object.keys(r).forEach((i)=>{let l=n(i);if(!l.valid)o[i]=l.errors}),{valid:Object.keys(o).length===0,errors:o}},validateField:n,resetErrors(){Object.keys(t).forEach((o)=>delete t[o])}}}function E(e={}){return new u(e)}var O="0.3.0",P="transone";export{Pe as A,xe as Article,Re as Aside,we as Blockquote,de as Button,Ce as Code,dr as Component,lr as ComponentRenderStrategy,le as Div,or as ElementRenderStrategy,ke as Em,ge as Footer,qe as Form,Te as H1,Ve as H2,ye as H3,be as H4,Fe as H5,Me as H6,ce as Header,Se as Img,ue as Input,Tr as InterceptorManager,Le as Label,Oe as Li,fe as Main,Ye as ModelBindingController,me as Nav,Ee as Ol,u as OneApp,Be as Option,ae as P,ve as Pre,H as ReactiveSystem,nr as RendererContext,Vr as Request,fr as RequestError,Ze as Router,_e as RouterLink,er as RouterView,pe as Section,ze as Select,sr as SlotRenderStrategy,he as Small,se as Span,je as Strong,De as Table,ie as Tag,He as Tbody,Ke as Td,ar as TemplateEngine,ir as TextRenderStrategy,$e as Textarea,Je as Th,Ge as Thead,Ie as Tr,Ae as Ul,mr as adapters,N as computed,xr as createAdapter,E as createApp,Ne as createComponent,R as createForm,yr as createRequest,rr as createRouter,gr as detectPlatform,Ue as each,K as effect,G as flushSync,d as getModelValue,ne as h,re as isComponentNode,te as isHTMLNode,Z as isReactive,_ as isReadonly,U as isRef,cr as isRequestError,oe as isSlotProvider,m as minLength,We as modelPath,P as name,D as nextTick,I as reactive,B as reactiveScheduler,J as readonly,Q as ref,pr as renderHtmlDocument,ur as renderStyleSheet,br as request,g as required,Rr as resolveAdapter,Xe as setModelValue,Qe as slot,X as stop,ee as toChildren,W as unref,tr as useRouter,x as validate,O as version,Y as watch};
1
+ import{$ as ze,A as pe,Aa as pr,B as fe,Ba as u,C as ce,D as ge,E as me,F as xe,G as Re,H as Te,I as Ve,J as ye,K as be,L as Fe,M as Me,N as je,O as ke,P as he,Q as ve,R as Ce,S as we,T as Ae,U as Ee,V as Oe,W as Pe,X as Se,Y as qe,Z as Le,_ as $e,a as B,aa as Be,b as D,ba as De,c as G,ca as Ge,d as H,da as He,e as I,ea as Ie,f as J,fa as Je,g as K,ga as Ke,h as N,ha as Ne,i as Q,ia as Qe,j as U,ja as Ue,k as W,ka as We,l as X,la as d,m as Y,ma as Xe,n as Z,na as Ye,o as _,oa as Ze,p as ee,pa as _e,q as re,qa as er,r as te,ra as rr,s as oe,sa as tr,t as ne,ta as or,u as ie,ua as nr,v as le,va as ir,w as se,wa as lr,x as ae,xa as sr,y as de,ya as ar,z as ue,za as dr}from"./index-rmgr0qs2.js";import{Ea as ur}from"./index-qmpx307q.js";import{Fa as fr,Ga as cr,Ha as gr,Ia as mr,Ja as xr,Ka as Rr,La as Tr,Ma as Vr,Na as yr,Oa as br}from"./index-xp7y2crt.js";function p(e){return e instanceof Error?e.message:String(e)}function f(e,r,t){try{let n=e(r,t);if(n===!0)return;return n===!1?"Validation failed":n}catch(n){return p(n)}}function g(e="This field is required"){return(r)=>{if(r===null||r===void 0)return e;if(typeof r==="string"&&r.trim().length===0)return e;if(Array.isArray(r)&&r.length===0)return e;return!0}}function m(e,r=`Must be at least ${e} characters`){return(t)=>typeof t==="string"&&t.length>=e?!0:r}function x(e){return e}function R(e,r){let t={},n=(o)=>{let i=r[o]??[],l=d(e,o),s=i.map((a)=>f(a,l,e)).filter((a)=>a!==void 0);if(s.length===0)delete t[o];else t[o]=s;return{valid:s.length===0,errors:s}};return{model:e,errors:t,validate(){let o={};return Object.keys(r).forEach((i)=>{let l=n(i);if(!l.valid)o[i]=l.errors}),{valid:Object.keys(o).length===0,errors:o}},validateField:n,resetErrors(){Object.keys(t).forEach((o)=>delete t[o])}}}function E(e={}){return new u(e)}var O="0.4.0",P="transone";export{Pe as A,xe as Article,Re as Aside,we as Blockquote,de as Button,Ce as Code,dr as Component,lr as ComponentRenderStrategy,le as Div,or as ElementRenderStrategy,ke as Em,ge as Footer,qe as Form,Te as H1,Ve as H2,ye as H3,be as H4,Fe as H5,Me as H6,ce as Header,Se as Img,ue as Input,Tr as InterceptorManager,Le as Label,Oe as Li,fe as Main,Ye as ModelBindingController,me as Nav,Ee as Ol,u as OneApp,Be as Option,ae as P,ve as Pre,H as ReactiveSystem,nr as RendererContext,Vr as Request,fr as RequestError,Ze as Router,_e as RouterLink,er as RouterView,pe as Section,ze as Select,sr as SlotRenderStrategy,he as Small,se as Span,je as Strong,De as Table,ie as Tag,He as Tbody,Ke as Td,ar as TemplateEngine,ir as TextRenderStrategy,$e as Textarea,Je as Th,Ge as Thead,Ie as Tr,Ae as Ul,mr as adapters,N as computed,xr as createAdapter,E as createApp,Ne as createComponent,R as createForm,yr as createRequest,rr as createRouter,gr as detectPlatform,Ue as each,K as effect,G as flushSync,d as getModelValue,ne as h,re as isComponentNode,te as isHTMLNode,Z as isReactive,_ as isReadonly,U as isRef,cr as isRequestError,oe as isSlotProvider,m as minLength,We as modelPath,P as name,D as nextTick,I as reactive,B as reactiveScheduler,J as readonly,Q as ref,pr as renderHtmlDocument,ur as renderStyleSheet,br as request,g as required,Rr as resolveAdapter,Xe as setModelValue,Qe as slot,X as stop,ee as toChildren,W as unref,tr as useRouter,x as validate,O as version,Y as watch};
2
2
 
3
- //# debugId=CBF629252CF02FBB64756E2164756E21
3
+ //# debugId=119FD941ECAE2BD264756E2164756E21
4
4
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -3,9 +3,9 @@
3
3
  "sources": ["../lib/core/form.ts", "../lib/index.ts"],
4
4
  "sourcesContent": [
5
5
  "import { getModelValue } from './model';\n\nexport type ValidationResult = boolean | string;\n\nexport type ValidationRule<T = unknown> = (\n value: T,\n model: object\n) => ValidationResult;\n\nexport type ValidationRules<TModel extends object> = {\n [TPath in keyof TModel & string]?: readonly ValidationRule[];\n} & Record<string, readonly ValidationRule[] | undefined>;\n\nexport interface FieldValidationResult {\n valid: boolean;\n errors: string[];\n}\n\nexport interface FormValidationResult {\n valid: boolean;\n errors: Record<string, string[]>;\n}\n\nexport interface FormController<TModel extends object> {\n readonly model: TModel;\n readonly errors: Record<string, string[]>;\n validate(): FormValidationResult;\n validateField(path: string): FieldValidationResult;\n resetErrors(): void;\n}\n\nfunction errorMessage(error: unknown): string {\n return error instanceof Error ? error.message : String(error);\n}\n\nfunction runRule(\n rule: ValidationRule,\n value: unknown,\n model: object\n): string | undefined {\n try {\n const result = rule(value, model);\n if (result === true) {\n return undefined;\n }\n return result === false ? 'Validation failed' : result;\n } catch (error) {\n return errorMessage(error);\n }\n}\n\nexport function required(message = 'This field is required'): ValidationRule {\n return (value) => {\n if (value === null || value === undefined) {\n return message;\n }\n if (typeof value === 'string' && value.trim().length === 0) {\n return message;\n }\n if (Array.isArray(value) && value.length === 0) {\n return message;\n }\n return true;\n };\n}\n\nexport function minLength(\n length: number,\n message = `Must be at least ${length} characters`\n): ValidationRule {\n return (value) =>\n typeof value === 'string' && value.length >= length ? true : message;\n}\n\nexport function validate(rule: ValidationRule): ValidationRule {\n return rule;\n}\n\nexport function createForm<TModel extends object>(\n model: TModel,\n rules: ValidationRules<TModel>\n): FormController<TModel> {\n const errors: Record<string, string[]> = {};\n\n const validateField = (path: string): FieldValidationResult => {\n const fieldRules = rules[path] ?? [];\n const value = getModelValue(model as Record<string, unknown>, path);\n const fieldErrors = fieldRules\n .map((rule) => runRule(rule, value, model))\n .filter((message): message is string => message !== undefined);\n\n if (fieldErrors.length === 0) {\n delete errors[path];\n } else {\n errors[path] = fieldErrors;\n }\n\n return { valid: fieldErrors.length === 0, errors: fieldErrors };\n };\n\n return {\n model,\n errors,\n validate(): FormValidationResult {\n const allErrors: Record<string, string[]> = {};\n Object.keys(rules).forEach((path) => {\n const result = validateField(path);\n if (!result.valid) {\n allErrors[path] = result.errors;\n }\n });\n return { valid: Object.keys(allErrors).length === 0, errors: allErrors };\n },\n validateField,\n resetErrors(): void {\n Object.keys(errors).forEach((path) => delete errors[path]);\n },\n };\n}\n",
6
- "import { OneApp, AppOptions } from './core/app';\nimport type { ComponentProps } from './core/component';\n\n// 导出核心功能\nexport * from './core';\n\n// 导出路由功能\nexport * from './router';\n\n// 导出跨端请求模块\nexport * from './request';\n\n// 创建应用实例的主函数\nexport function createApp<\n TState extends object = Record<string, unknown>,\n TConfig extends object = Record<string, unknown>,\n TRootProps extends ComponentProps = ComponentProps,\n>(\n options: AppOptions<TState, TConfig, TRootProps> = {}\n): OneApp<TState, TConfig, TRootProps> {\n return new OneApp(options);\n}\n\n// 导出框架名称和版本\nexport const version = '0.3.0';\nexport const name = 'transone';\n"
6
+ "import { OneApp, AppOptions } from './core/app';\nimport type { ComponentProps } from './core/component';\n\n// 导出核心功能\nexport * from './core';\n\n// 导出路由功能\nexport * from './router';\n\n// 导出跨端请求模块\nexport * from './request';\n\n// 创建应用实例的主函数\nexport function createApp<\n TState extends object = Record<string, unknown>,\n TConfig extends object = Record<string, unknown>,\n TRootProps extends ComponentProps = ComponentProps,\n>(\n options: AppOptions<TState, TConfig, TRootProps> = {}\n): OneApp<TState, TConfig, TRootProps> {\n return new OneApp(options);\n}\n\n// 导出框架名称和版本\nexport const version = '0.4.0';\nexport const name = 'transone';\n"
7
7
  ],
8
8
  "mappings": "i2BA+BA,SAAS,CAAY,CAAC,EAAwB,CAC5C,OAAO,aAAiB,MAAQ,EAAM,QAAU,OAAO,CAAK,EAG9D,SAAS,CAAO,CACd,EACA,EACA,EACoB,CACpB,GAAI,CACF,IAAM,EAAS,EAAK,EAAO,CAAK,EAChC,GAAI,IAAW,GACb,OAEF,OAAO,IAAW,GAAQ,oBAAsB,EAChD,MAAO,EAAO,CACd,OAAO,EAAa,CAAK,GAItB,SAAS,CAAQ,CAAC,EAAU,yBAA0C,CAC3E,MAAO,CAAC,IAAU,CAChB,GAAI,IAAU,MAAQ,IAAU,OAC9B,OAAO,EAET,GAAI,OAAO,IAAU,UAAY,EAAM,KAAK,EAAE,SAAW,EACvD,OAAO,EAET,GAAI,MAAM,QAAQ,CAAK,GAAK,EAAM,SAAW,EAC3C,OAAO,EAET,MAAO,IAIJ,SAAS,CAAS,CACvB,EACA,EAAU,oBAAoB,eACd,CAChB,MAAO,CAAC,IACN,OAAO,IAAU,UAAY,EAAM,QAAU,EAAS,GAAO,EAG1D,SAAS,CAAQ,CAAC,EAAsC,CAC7D,OAAO,EAGF,SAAS,CAAiC,CAC/C,EACA,EACwB,CACxB,IAAM,EAAmC,CAAC,EAEpC,EAAgB,CAAC,IAAwC,CAC7D,IAAM,EAAa,EAAM,IAAS,CAAC,EAC7B,EAAQ,EAAc,EAAkC,CAAI,EAC5D,EAAc,EACjB,IAAI,CAAC,IAAS,EAAQ,EAAM,EAAO,CAAK,CAAC,EACzC,OAAO,CAAC,IAA+B,IAAY,MAAS,EAE/D,GAAI,EAAY,SAAW,EACzB,OAAO,EAAO,GAEd,OAAO,GAAQ,EAGjB,MAAO,CAAE,MAAO,EAAY,SAAW,EAAG,OAAQ,CAAY,GAGhE,MAAO,CACL,QACA,SACA,QAAQ,EAAyB,CAC/B,IAAM,EAAsC,CAAC,EAO7C,OANA,OAAO,KAAK,CAAK,EAAE,QAAQ,CAAC,IAAS,CACnC,IAAM,EAAS,EAAc,CAAI,EACjC,GAAI,CAAC,EAAO,MACV,EAAU,GAAQ,EAAO,OAE5B,EACM,CAAE,MAAO,OAAO,KAAK,CAAS,EAAE,SAAW,EAAG,OAAQ,CAAU,GAEzE,gBACA,WAAW,EAAS,CAClB,OAAO,KAAK,CAAM,EAAE,QAAQ,CAAC,IAAS,OAAO,EAAO,EAAK,EAE7D,ECxGK,SAAS,CAIf,CACC,EAAmD,CAAC,EACf,CACrC,OAAO,IAAI,EAAO,CAAO,EAIpB,IAAM,EAAU,QACV,EAAO",
9
- "debugId": "CBF629252CF02FBB64756E2164756E21",
9
+ "debugId": "119FD941ECAE2BD264756E2164756E21",
10
10
  "names": []
11
11
  }
@@ -1,4 +1,4 @@
1
- import{oa as a,pa as b,qa as c,ra as d,sa as e}from"../index-49z4707x.js";import"../index-d5wsetxf.js";export{a as Router,b as RouterLink,c as RouterView,d as createRouter,e as useRouter};
1
+ import{oa as a,pa as b,qa as c,ra as d,sa as e}from"../index-rmgr0qs2.js";import"../index-qmpx307q.js";export{a as Router,b as RouterLink,c as RouterView,d as createRouter,e as useRouter};
2
2
 
3
3
  //# debugId=C414913A2B2EE6FA64756E2164756E21
4
4
  //# sourceMappingURL=index.js.map
@@ -1,4 +1,4 @@
1
- import{Da as f,Ea as m}from"../index-d5wsetxf.js";export{f as StyleManager,m as renderStyleSheet};
1
+ import{Da as f,Ea as m}from"../index-qmpx307q.js";export{f as StyleManager,m as renderStyleSheet};
2
2
 
3
3
  //# debugId=17CBBF4901184E9464756E2164756E21
4
4
  //# sourceMappingURL=index.js.map
@@ -3,7 +3,7 @@
3
3
  * 1rpx = 视口宽度 / 750,且视口宽度上限 750px(桌面端不再放大,页面按
4
4
  * 750px 基准居中显示,与小程序设计宽一致)。
5
5
  */
6
- /** 根 CSS 变量:--cyy-rpx 为 1rpx 的等效长度 */
7
- export declare const ROOT_RPX_RULE = ":root{--cyy-rpx:calc(min(100vw, 750px) / 750);}";
8
- /** 把字符串/数值中的 `N rpx` 替换为 `calc(N * var(--cyy-rpx))` */
6
+ /** 根 CSS 变量:--tu-rpx 为 1rpx 的等效长度 */
7
+ export declare const ROOT_RPX_RULE = ":root{--tu-rpx:calc(min(100vw, 750px) / 750);}";
8
+ /** 把字符串/数值中的 `N rpx` 替换为 `calc(N * var(--tu-rpx))` */
9
9
  export declare function convertRpx(value: string | number): string;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "transone",
3
- "version": "0.3.0",
3
+ "version": "0.4.0",
4
4
  "description": "TransOne 是跨端前端框架:一份 TypeScript 源码,编译期静态转换为 Web 与多端小程序原生产物,产物不携带框架运行时",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -46,7 +46,7 @@
46
46
  "miniprogram",
47
47
  "transpile"
48
48
  ],
49
- "homepage": "https://github.com/geektech-team/transone/tree/main/packages/transone",
49
+ "homepage": "https://geektech-team.github.io/transone/packages/transone/",
50
50
  "author": "Jimmie Max(Qianyu)",
51
51
  "license": "MIT",
52
52
  "engines": {