@mpkit/types
Advanced tools
+16
-14
| /*! | ||
| * MpKit v1.0.12 | ||
| * MpKit v1.0.15 | ||
| * (c) 2020-2021 imingyu<mingyuhisoft@163.com> | ||
@@ -11,2 +11,4 @@ * Released under the MIT License. | ||
| var forgivingXmlParser = require('forgiving-xml-parser'); | ||
| (function (MpRequestOptionsMethod) { | ||
@@ -37,15 +39,2 @@ MpRequestOptionsMethod["OPTIONS"] = "OPTIONS"; | ||
| (function (MpWhereType) { | ||
| MpWhereType["if"] = "if"; | ||
| MpWhereType["elseif"] = "elseif"; | ||
| MpWhereType["else"] = "else"; | ||
| })(exports.MpWhereType || (exports.MpWhereType = {})); | ||
| (function (MpEachType) { | ||
| MpEachType["key"] = "key"; | ||
| MpEachType["for"] = "for"; | ||
| MpEachType["forItem"] = "forItem"; | ||
| MpEachType["forIndex"] = "forIndex"; | ||
| })(exports.MpEachType || (exports.MpEachType = {})); | ||
| (function (MpXmlContentType) { | ||
@@ -78,2 +67,15 @@ MpXmlContentType["static"] = "static"; | ||
| })(exports.MkMpXmlAttrContentType || (exports.MkMpXmlAttrContentType = {})); | ||
| Object.defineProperty(exports, 'FxNodeCloseType', { | ||
| enumerable: true, | ||
| get: function () { | ||
| return forgivingXmlParser.FxNodeCloseType; | ||
| } | ||
| }); | ||
| Object.defineProperty(exports, 'FxNodeType', { | ||
| enumerable: true, | ||
| get: function () { | ||
| return forgivingXmlParser.FxNodeType; | ||
| } | ||
| }); | ||
| //# sourceMappingURL=index.cjs.js.map |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"index.cjs.js","sources":["../api.ts","../platform.ts","../view.ts","../mpxml-parser.ts","../mpspec.ts"],"sourcesContent":["export interface MpApiCallback {\n (res?: any);\n}\nexport interface MpApiMethodArg {\n success: MpApiCallback;\n fail: MpApiCallback;\n complete: MpApiCallback;\n [prop: string]: any;\n}\nexport interface MpApiMethod {\n (options?: MpApiMethodArg | any): any;\n}\n\nexport interface MpApiVar {\n [prop: string]: MpApiMethod;\n}\nexport enum MpRequestOptionsMethod {\n OPTIONS = \"OPTIONS\",\n GET = \"GET\",\n POST = \"POST\",\n HEAD = \"HEAD\",\n PUT = \"PUT\",\n DELETE = \"DELETE\",\n TRACE = \"TRACE\",\n CONNECT = \"CONNECT\",\n}\nexport interface MpRequestOptions extends MpApiMethodArg {\n url: string;\n method: MpRequestOptionsMethod;\n headers?: {\n [prop: string]: string | number;\n };\n}\nexport interface MpRequestTask {\n abort: Function;\n}\nexport interface MpApiRequestMethod {\n (options: MpRequestOptions): MpRequestTask;\n}\n","export enum MpPlatform {\n wechat = \"wechat\",\n alipay = \"alipay\",\n smart = \"smart\",\n tiktok = \"tiktok\",\n unknown = \"unknown\",\n}\n","import { MkEnumMap } from \"./util\";\nimport { MkSetData } from \"./set-data\";\nexport interface MpAppLaunchOptions {}\nexport interface MpViewInitLife<V, T> {\n (this: V, options: T): void;\n}\nexport interface MpViewLife<V> {\n (this: V): void;\n}\nexport type MpViewInitLifes = \"onLaunch\" | \"onLoad\" | \"created\" | \"onInit\";\nexport type MpViewMountLifes = \"onShow\" | \"attached\" | \"didMount\";\n// 小程序App实例\nexport interface MpViewApp extends MpViewAppSpec, MpView {}\n// 小程序App函数接收的配置对象\nexport interface MpViewAppSpec {\n onLaunch: MpViewInitLife<MpViewApp, MpAppLaunchOptions>;\n onShow: MpViewInitLife<MpViewApp, MpAppLaunchOptions>;\n onHide: MpViewLife<MpViewApp>;\n onError: MpViewLife<MpViewApp>;\n [prop: string]: any;\n}\nexport interface MpAlipayViewApp extends MpViewApp, MpAlipayViewAppSpec {}\nexport interface MpAlipayViewAppSpec extends MpViewAppSpec {\n onShareAppMessage: MpViewLife<MpAlipayViewApp>;\n}\n\nexport interface MpViewFactory {\n (spec: MpViewAppSpec | MpViewPageSpec | MpViewComponentSpec | any): void;\n}\nexport enum MpViewType {\n App = \"App\",\n Page = \"Page\",\n Component = \"Component\",\n}\nexport interface MpViewSpec {\n data: any;\n}\nexport interface MpViewComponetPropSpec {\n type: Function;\n default?: any;\n observer?: Function;\n}\nexport interface MpViewPageSpec extends MpViewSpec {\n [prop: string]: any;\n}\nexport type MpViewComponentLifes =\n | \"created\"\n | \"attached\"\n | \"ready\"\n | \"moved\"\n | \"detached\"\n | \"error\";\nexport type MpViewComponentPageLifes = \"show\" | \"hide\" | \"resize\";\nexport interface MpViewComponentSpec extends MpViewSpec {\n properties?: {\n [prop: string]: Function | MpViewComponetPropSpec;\n };\n lifetimes?: MkEnumMap<MpViewComponentLifes, Function | string>;\n pageLifetimes?: MkEnumMap<MpViewComponentPageLifes, Function | string>;\n methods: {\n [prop: string]: Function;\n };\n [prop: string]: any;\n}\nexport interface MpView {\n $mkSpec: MpViewSpec;\n $mkType: MpViewType;\n $mkKey: string;\n $mkKeyIsDefine?: string;\n $mkNativeSetData: MpSetDataHandler;\n $mkSetData: MkSetData;\n $mkSetDataIsBind?: boolean;\n $mkReadyData: any;\n data: any;\n setData: MpSetDataHandler;\n}\nexport interface MpWechatSelectOwnerComponent {\n (): void | MpView;\n}\nexport interface MpWechatView extends MpView {\n __wxExparserNodeId__: string;\n __wxWebviewId__: number;\n is: string;\n selectOwnerComponent: MpWechatSelectOwnerComponent;\n}\nexport interface MpWechatPageView extends MpWechatView {\n route: string;\n}\nexport interface MpTiktokView extends MpView {\n __webviewId__: number;\n __nodeId__: number;\n is: string;\n}\nexport interface MpComponentPropObserver {\n (this: MpView, oldValue: any, newVal: any): void;\n}\n\nexport interface MpComponentPropSpec {\n type: Function;\n default: any;\n observer: MpComponentPropObserver;\n}\n\nexport interface MpAlipayView extends MpView {\n $id: number;\n}\n\nexport interface MpAlipayViewPage extends MpAlipayView {\n $viewId: string;\n route: string;\n}\nexport interface MpAlipayViewComponent extends MpAlipayView {\n $page: MpAlipayViewPage;\n is: string;\n props: {\n [prop: string]: any;\n __tag: string;\n };\n}\nexport interface MpSmartViewPage extends MpView {\n route: string;\n}\nexport interface MpSmartViewComponent extends MpView {\n componentName: string;\n nodeId: string;\n pageinstance: MpSmartViewPage;\n is: string;\n}\nexport interface MpSetDataHandler {\n (data: any, callback?: Function): void;\n}\n","import { MkOmit, MkMap, MkEnumMap } from \"./util\";\nimport {\n FxNode,\n FxParseResult,\n FxWrong,\n FxLocation,\n FxNodeJSON,\n FxEventHandler,\n FxNodeAdapter,\n} from \"forgiving-xml-parser\";\nimport { MpPlatform } from \"./platform\";\nexport interface MpSpec {\n [prop: string]: MkEnumMap<MpPlatform, MpViewSyntaxSpec>;\n}\nexport interface MpViewSyntaxSpec {\n namespace: string;\n for: string;\n forItem: string;\n forIndex: string;\n key: string;\n if: string;\n elseif: string;\n else: string;\n forAndWhereAttrNeedBracket: boolean;\n}\nexport enum MpWhereType {\n if = \"if\",\n elseif = \"elseif\",\n else = \"else\",\n}\nexport enum MpEachType {\n key = \"key\",\n for = \"for\",\n forItem = \"forItem\",\n forIndex = \"forIndex\",\n}\nexport interface MkMpXmlParseOptions {\n onEvent?: FxEventHandler;\n}\nexport interface MkXmlContent {\n type: MpXmlContentType;\n value: string;\n locationInfo?: FxLocation;\n}\nexport interface MkXmlContentParseResult {\n contents: MkXmlContent[];\n leftStaticContents: MkXmlContent[];\n leftStaticContentsIsEmpty: boolean;\n rightStaticContents: MkXmlContent[];\n rightStaticContentsIsEmpty: boolean;\n betweenStaticContents: MkXmlContent[];\n dynamicContents: MkXmlContent[];\n}\nexport interface MpForAttrContent extends MkXmlContent {\n type: MpXmlContentType;\n value: string;\n featureList?: string;\n featureItem?: string;\n featureIndex?: string;\n featureKey?: string;\n}\nexport interface IMkMpXmlAttrParseAdapter {\n parse(\n attr: FxNodeJSON,\n parent?: FxNodeJSON | LikeFxParseContext,\n grandpa?: FxNodeJSON | LikeFxParseContext\n ): MkXmlNode;\n}\nexport interface IMkMpXmlContentParseAdapter {\n parse(\n content: string,\n node?: FxNodeJSON,\n parent?: FxNodeJSON | LikeFxParseContext,\n grandpa?: FxNodeJSON | LikeFxParseContext\n ): MkXmlContent[];\n}\nexport interface IMkMpXmlParseAdapter {\n attrAdapters: MkMap<IMkMpXmlAttrParseAdapter>;\n contentAdapter: IMkMpXmlContentParseAdapter;\n}\nexport enum MpXmlContentType {\n static = \"static\",\n dynamic = \"dynamic\",\n}\nexport interface MkXmlNodeJSON\n extends MkOmit<FxNodeJSON, \"attrs\" | \"children\"> {\n attrs?: MkXmlNodeJSON[];\n children?: MkXmlNodeJSON[];\n mpContents?: MpForAttrContent[] | MkXmlContent[];\n special?: MpWhereType | MpEachType;\n}\nexport interface LikeFxParseContext {\n nodes?: FxNode[] | FxNodeJSON[] | MkXmlNodeJSON[] | MkXmlNode[];\n}\nexport interface MkXmlNode\n extends MkOmit<MkXmlNodeJSON, \"attrs\" | \"children\" | \"parent\"> {\n attrs?: MkXmlNode[];\n children?: MkXmlNode[];\n mpContents?: MpForAttrContent[] | MkXmlContent[];\n parent?: MkXmlNode;\n // 前一个兄弟:只在非text和comment的node上存在,且Sibling本身也非text和comment\n previousSibling?: MkXmlNode;\n // 后一个兄弟:只在非text和comment的node上存在,且Sibling本身也非text和comment\n nextSibling?: MkXmlNode;\n}\n\nexport enum MkXmlParseMessagePosition {\n text = \"text\",\n attr = \"attr\",\n}\nexport interface MkXmlParseMessage extends FxWrong {\n // position: MkXmlParseMessagePosition;\n target?: FxNode | FxNodeJSON;\n}\n\nexport interface MkXmlParseResult extends MkOmit<FxParseResult, \"nodes\"> {\n nodes?: MkXmlNode[];\n}\n\nexport interface MkXmlParseResultBase {\n error?: FxWrong;\n nodes?: MkXmlNode[];\n}\n\nexport interface MkMpXmlParseAdapterFormater {\n parseAdapter?: IMkMpXmlParseAdapter;\n hasAttrAdapter: boolean;\n hasContentAdapter: boolean;\n}\nexport interface MkNodeSerializer {\n (\n nodes: FxNodeJSON[],\n handler: MkNodeSerializeHandler,\n parentNode?: FxNodeJSON\n ): string;\n}\nexport interface MkNodeSerializeHandler {\n (\n currentNode: MkXmlNodeJSON,\n brotherNodes: MkXmlNodeJSON[],\n rootNodes: MkXmlNodeJSON[],\n rootSerializer: MkNodeSerializer,\n parentNode: FxNodeJSON,\n adapter: FxNodeAdapter,\n serializeResult: string\n ): string;\n}\n","import { MpPlatform } from \"./platform\";\nimport { MkOmit, MkRequireAll } from \"./util\";\n\nexport type MkMpSDKVersion<\n N extends number = number,\n S extends string = `${N}.${N}.${N}`\n> = S;\n\nexport interface LikeMkMpSDKVersionSupport {\n supportVersion?: MkMpSDKVersion;\n}\nexport interface MkMpSDKVersionSupport\n extends MkRequireAll<LikeMkMpSDKVersionSupport> {}\n\n// xml绑定变量语法,如:{{xx}}\nexport interface LikeMkMpXmlDataBinding {\n // 左边界字符串\n leftBoundaryChar?: string;\n // 右边界字符串\n rightBoundaryChar?: string;\n // 左边界符距离内容可被允许包含的空白字符数量,小于0|undefined=允许左边界与内容之间出现空白字符且不限数量;0=不允许;大于0代表必须有,且数量一致\n leftBoundarySpace?: number;\n // 右边界符距离内容可被允许包含的空白字符数量,小于0|undefined=允许左边界与内容之间出现空白字符且不限数量;0=不允许;大于0代表必须有,且数量一致\n rightBoundarySpace?: number;\n}\nexport interface MkMpXmlDataBinding\n extends MkRequireAll<LikeMkMpXmlDataBinding> {}\n\n// 是否支持数据绑定\nexport interface MkMpXmlSupportDataBinding {\n // 是否支持变量绑定\n dataBinding?: MkMpXmlDataBinding;\n // 支持的变量绑定数量,0代表不支持,小于0代表支持无限个,大于0代表具体数量\n dataBindingCount?: number;\n}\nexport enum MkMpXmlAstContentType {\n static = \"static\",\n dataBinding = \"dataBinding\",\n}\nexport interface MkMpXmlAstContent {\n type: MkMpXmlAstContentType;\n value: string;\n}\n// xml ast 节点\nexport interface MkMpXmlAstNode {\n name: string;\n content?: string;\n mpContents?: MkMpXmlAstContent[];\n}\n// xml ast 属性\nexport interface MkMpXmlAstAttr extends MkMpXmlAstNode {}\n// xml ast 元素\nexport interface MkMpXmlAstElement extends MkMpXmlAstNode {\n attrs?: MkMpXmlAstAttr[];\n children?: MkMpXmlAstElement[];\n // 前一个兄弟:只在非text和comment的node上存在,且Sibling本身也非text和comment\n previousSibling?: MkMpXmlAstElement;\n // 后一个兄弟:只在非text和comment的node上存在,且Sibling本身也非text和comment\n nextSibling?: MkMpXmlAstElement;\n}\n\nexport interface MkMpXmlAstPreviousSiblingFinder {\n (node: MkMpXmlAstElement, siblings: MkMpXmlAstElement[]): MkMpXmlAstElement;\n}\n\n// xml 属性验证器\nexport interface MkMpXmlNodeValidater {\n (\n attr: MkMpXmlAstAttr, // 属性ast对象\n parent: MkMpXmlAstElement, // 属性的父节点ast对象\n grandpa?: MkMpXmlAstElement, // 属性的爷爷节点ast对象\n previousSiblingFinder?: MkMpXmlAstPreviousSiblingFinder // 查找前一个节点的函数\n ): boolean | MkMpXmlNodeValidateResult;\n}\nexport enum MkMpXmlNodeValidateResultLevel {\n success = \"success\",\n fail = \"fail\",\n warn = \"warn\",\n ignore = \"ignore\",\n}\nexport interface MkMpXmlNodeValidateResult {\n pass: boolean;\n level: MkMpXmlNodeValidateResultLevel;\n code: string;\n message: string;\n}\nexport enum MkMpXmlAttrContentType {\n string = \"string\",\n boolean = \"boolean\",\n number = \"number\",\n}\n// xml 属性 技术特性\nexport interface LikeMkMpXmlAttrSpec\n extends MkMpXmlSupportDataBinding,\n LikeMkMpSDKVersionSupport {\n // 内容必选?0|undefined=可有可没有,小于0=必须没有,1=必须有,但是可为空,大于1=必须有,且不为空(含任意字符串)\n requireContent?: number;\n // 是否必选?0|undefined=可有可没有,小于0=必须没有,大于0=必须有\n require?: number;\n // 该属性是否是事件绑定\n isEvent?: boolean;\n // 内容类型\n contentType?: MkMpXmlAttrContentType | MkMpXmlAttrContentType[];\n // 默认内容\n defaultContent?: any;\n validater?: MkMpXmlNodeValidater;\n}\n\nexport interface MkMpXmlAttrSpec\n extends MkOmit<\n MkRequireAll<LikeMkMpXmlAttrSpec>,\n \"defaultContent\" | \"validater\"\n > {\n defaultContent?: any;\n validater?: MkMpXmlNodeValidater;\n}\n\nexport interface MkMpXmlNodeSpecMap<T> {\n // 匹配所有目标节点\n _common?: T;\n // 指定的名称均匹配不上时,采用此特性,最后采用的特性将是_common&&_unclaimed\n _unclaimed?: T;\n // 按照名称匹配,最后的该名称对应的节点特定将是此属性与_common的合并体\n [p: string]: T;\n}\n\nexport interface LikeMkMpXmlElementSpec\n extends MkMpXmlSupportDataBinding,\n LikeMkMpSDKVersionSupport {\n // 节点关闭类型,0|undefined=自关闭或结束标签关闭均可以;小于0=只可以自关闭方式关闭;大于0=必须通过结束标签关闭\n closeType?: number;\n // 属性特性\n attrsSpec?: MkMpXmlNodeSpecMap<LikeMkMpXmlAttrSpec>;\n}\n// xml 节点 技术特性\nexport interface MkMpXmlElementSpec\n extends MkOmit<MkRequireAll<LikeMkMpXmlElementSpec>, \"attrsSpec\">,\n MkMpSDKVersionSupport {\n attrsSpec: MkMpXmlNodeSpecMap<MkMpXmlAttrSpec>;\n}\n// xml 节点对象\nexport interface MkMpXmlElement {\n id?: string;\n dataset?: {\n [p: string]: any;\n };\n}\n// xml 事件对象\nexport interface MkMpXmlBaseEvent<T = undefined> {\n type: string;\n timeStamp: number;\n target: MkMpXmlElement;\n currentTarget: MkMpXmlElement;\n detail?: T;\n}\n\n// xml 事件处理程序\nexport interface MkMpXmlEventHandler<D = undefined, T = MkMpXmlBaseEvent<D>> {\n (event: T);\n}\n\n// xml 技术特性\nexport interface LikeMkMpXmlSpec\n extends MkMpXmlNodeSpecMap<LikeMkMpXmlElementSpec> {}\nexport interface MkMpXmlSpec extends MkMpXmlNodeSpecMap<MkMpXmlElementSpec> {}\n\nexport interface MkMpPlatformSpec<T> {\n [MpPlatform.wechat]: T;\n [MpPlatform.alipay]: T;\n [MpPlatform.smart]: T;\n [MpPlatform.tiktok]: T;\n}\n"],"names":["MpRequestOptionsMethod","MpPlatform","MpViewType","MpWhereType","MpEachType","MpXmlContentType","MkXmlParseMessagePosition","MkMpXmlAstContentType","MkMpXmlNodeValidateResultLevel","MkMpXmlAttrContentType"],"mappings":";;;;;;;;;;AAgBA,WAAYA;AACRA,EAAAA,iCAAA,YAAA;AACAA,EAAAA,6BAAA,QAAA;AACAA,EAAAA,8BAAA,SAAA;AACAA,EAAAA,8BAAA,SAAA;AACAA,EAAAA,6BAAA,QAAA;AACAA,EAAAA,gCAAA,WAAA;AACAA,EAAAA,+BAAA,UAAA;AACAA,EAAAA,iCAAA,YAAA;AACH,CATD,EAAYA,8BAAsB,KAAtBA,8BAAsB,KAAA,CAAlC;;AChBA,WAAYC;AACRA,EAAAA,oBAAA,WAAA;AACAA,EAAAA,oBAAA,WAAA;AACAA,EAAAA,mBAAA,UAAA;AACAA,EAAAA,oBAAA,WAAA;AACAA,EAAAA,qBAAA,YAAA;AACH,CAND,EAAYA,kBAAU,KAAVA,kBAAU,KAAA,CAAtB;;AC6BA,WAAYC;AACRA,EAAAA,iBAAA,QAAA;AACAA,EAAAA,kBAAA,SAAA;AACAA,EAAAA,uBAAA,cAAA;AACH,CAJD,EAAYA,kBAAU,KAAVA,kBAAU,KAAA,CAAtB;;ACJA,WAAYC;AACRA,EAAAA,iBAAA,OAAA;AACAA,EAAAA,qBAAA,WAAA;AACAA,EAAAA,mBAAA,SAAA;AACH,CAJD,EAAYA,mBAAW,KAAXA,mBAAW,KAAA,CAAvB;;AAKA,WAAYC;AACRA,EAAAA,iBAAA,QAAA;AACAA,EAAAA,iBAAA,QAAA;AACAA,EAAAA,qBAAA,YAAA;AACAA,EAAAA,sBAAA,aAAA;AACH,CALD,EAAYA,kBAAU,KAAVA,kBAAU,KAAA,CAAtB;;AAkDA,WAAYC;AACRA,EAAAA,0BAAA,WAAA;AACAA,EAAAA,2BAAA,YAAA;AACH,CAHD,EAAYA,wBAAgB,KAAhBA,wBAAgB,KAAA,CAA5B;;AA0BA,WAAYC;AACRA,EAAAA,iCAAA,SAAA;AACAA,EAAAA,iCAAA,SAAA;AACH,CAHD,EAAYA,iCAAyB,KAAzBA,iCAAyB,KAAA,CAArC;;ACvEA,WAAYC;AACRA,EAAAA,+BAAA,WAAA;AACAA,EAAAA,oCAAA,gBAAA;AACH,CAHD,EAAYA,6BAAqB,KAArBA,6BAAqB,KAAA,CAAjC;;AAuCA,WAAYC;AACRA,EAAAA,yCAAA,YAAA;AACAA,EAAAA,sCAAA,SAAA;AACAA,EAAAA,sCAAA,SAAA;AACAA,EAAAA,wCAAA,WAAA;AACH,CALD,EAAYA,sCAA8B,KAA9BA,sCAA8B,KAAA,CAA1C;;AAYA,WAAYC;AACRA,EAAAA,gCAAA,WAAA;AACAA,EAAAA,iCAAA,YAAA;AACAA,EAAAA,gCAAA,WAAA;AACH,CAJD,EAAYA,8BAAsB,KAAtBA,8BAAsB,KAAA,CAAlC;;"} | ||
| {"version":3,"file":"index.cjs.js","sources":["../api.ts","../platform.ts","../view.ts","../mpxml-parser.ts","../mpspec.ts"],"sourcesContent":["export interface MpApiCallback {\n (res?: any);\n}\nexport interface MpApiMethodArg {\n success: MpApiCallback;\n fail: MpApiCallback;\n complete: MpApiCallback;\n [prop: string]: any;\n}\nexport interface MpApiMethod {\n (options?: MpApiMethodArg | any): any;\n}\n\nexport interface MpApiVar {\n [prop: string]: MpApiMethod;\n}\nexport enum MpRequestOptionsMethod {\n OPTIONS = \"OPTIONS\",\n GET = \"GET\",\n POST = \"POST\",\n HEAD = \"HEAD\",\n PUT = \"PUT\",\n DELETE = \"DELETE\",\n TRACE = \"TRACE\",\n CONNECT = \"CONNECT\",\n}\nexport interface MpRequestOptions extends MpApiMethodArg {\n url: string;\n method: MpRequestOptionsMethod;\n headers?: {\n [prop: string]: string | number;\n };\n}\nexport interface MpRequestTask {\n abort: Function;\n}\nexport interface MpApiRequestMethod {\n (options: MpRequestOptions): MpRequestTask;\n}\n","export enum MpPlatform {\n wechat = \"wechat\",\n alipay = \"alipay\",\n smart = \"smart\",\n tiktok = \"tiktok\",\n unknown = \"unknown\",\n}\n","import { MkEnumMap } from \"./util\";\nimport { MkSetData } from \"./set-data\";\nexport interface MpAppLaunchOptions {}\nexport interface MpViewInitLife<V, T> {\n (this: V, options: T): void;\n}\nexport interface MpViewLife<V> {\n (this: V): void;\n}\nexport type MpViewInitLifes = \"onLaunch\" | \"onLoad\" | \"created\" | \"onInit\";\nexport type MpViewMountLifes = \"onShow\" | \"attached\" | \"didMount\";\n// 小程序App实例\nexport interface MpViewApp extends MpViewAppSpec, MpView {}\n// 小程序App函数接收的配置对象\nexport interface MpViewAppSpec {\n onLaunch: MpViewInitLife<MpViewApp, MpAppLaunchOptions>;\n onShow: MpViewInitLife<MpViewApp, MpAppLaunchOptions>;\n onHide: MpViewLife<MpViewApp>;\n onError: MpViewLife<MpViewApp>;\n [prop: string]: any;\n}\nexport interface MpAlipayViewApp extends MpViewApp, MpAlipayViewAppSpec {}\nexport interface MpAlipayViewAppSpec extends MpViewAppSpec {\n onShareAppMessage: MpViewLife<MpAlipayViewApp>;\n}\n\nexport interface MpViewFactory {\n (spec: MpViewAppSpec | MpViewPageSpec | MpViewComponentSpec | any): void;\n}\nexport enum MpViewType {\n App = \"App\",\n Page = \"Page\",\n Component = \"Component\",\n}\nexport interface MpViewSpec {\n data: any;\n}\nexport interface MpViewComponetPropSpec {\n type: Function;\n default?: any;\n observer?: Function;\n}\nexport interface MpViewPageSpec extends MpViewSpec {\n [prop: string]: any;\n}\nexport type MpViewComponentLifes =\n | \"created\"\n | \"attached\"\n | \"ready\"\n | \"moved\"\n | \"detached\"\n | \"error\";\nexport type MpViewComponentPageLifes = \"show\" | \"hide\" | \"resize\";\nexport interface MpViewComponentSpec extends MpViewSpec {\n properties?: {\n [prop: string]: Function | MpViewComponetPropSpec;\n };\n lifetimes?: MkEnumMap<MpViewComponentLifes, Function | string>;\n pageLifetimes?: MkEnumMap<MpViewComponentPageLifes, Function | string>;\n methods: {\n [prop: string]: Function;\n };\n [prop: string]: any;\n}\nexport interface MpView {\n $mkSpec: MpViewSpec;\n $mkType: MpViewType;\n $mkKey: string;\n $mkKeyIsDefine?: string;\n $mkNativeSetData: MpSetDataHandler;\n $mkSetData: MkSetData;\n $mkSetDataIsBind?: boolean;\n $mkReadyData: any;\n data: any;\n setData: MpSetDataHandler;\n}\nexport interface MpWechatSelectOwnerComponent {\n (): void | MpView;\n}\nexport interface MpWechatView extends MpView {\n __wxExparserNodeId__: string;\n __wxWebviewId__: number;\n is: string;\n selectOwnerComponent: MpWechatSelectOwnerComponent;\n}\nexport interface MpWechatPageView extends MpWechatView {\n route: string;\n}\nexport interface MpTiktokView extends MpView {\n __webviewId__: number;\n __nodeId__: number;\n is: string;\n}\nexport interface MpComponentPropObserver {\n (this: MpView, oldValue: any, newVal: any): void;\n}\n\nexport interface MpComponentPropSpec {\n type: Function;\n default: any;\n observer: MpComponentPropObserver;\n}\n\nexport interface MpAlipayView extends MpView {\n $id: number;\n}\n\nexport interface MpAlipayViewPage extends MpAlipayView {\n $viewId: string;\n route: string;\n}\nexport interface MpAlipayViewComponent extends MpAlipayView {\n $page: MpAlipayViewPage;\n is: string;\n props: {\n [prop: string]: any;\n __tag: string;\n };\n}\nexport interface MpSmartViewPage extends MpView {\n route: string;\n}\nexport interface MpSmartViewComponent extends MpView {\n componentName: string;\n nodeId: string;\n pageinstance: MpSmartViewPage;\n is: string;\n}\nexport interface MpSetDataHandler {\n (data: any, callback?: Function): void;\n}\n","import { MkOmit, MkMap } from \"./util\";\nimport {\n FxNode,\n FxParseResult,\n FxWrong,\n FxLocation,\n FxNodeJSON,\n FxEventHandler,\n FxNodeAdapter,\n FxSerializeOptions,\n FxEventType,\n FxNodeType,\n} from \"forgiving-xml-parser\";\nimport { MpPlatform } from \"./platform\";\nexport interface MpViewSyntaxSpec {\n namespace: string;\n for: string;\n forItem: string;\n forIndex: string;\n key: string;\n if: string;\n elseIf: string;\n else: string;\n xmlFileSuffix?: string;\n xjsNodeName?: string;\n xjsFileSuffix?: string;\n xjsModuleAttrName?: string;\n xjsSrcAttrName?: string;\n forAndWhereAttrNeedBracket: boolean;\n importNodeName?: string;\n importSrcAttrName?: string;\n includeNodeName?: string;\n includeSrcAttrName?: string;\n}\n\n// export interface MkMpXmlParseRuleMatcher extends FxEventHandler {}\n// export interface MkMpXmlParseRuleHnalder extends FxEventHandler {}\n// export interface MkMpXmlParseRule {\n// target: FxEventType | FxNodeType | MkMpXmlParseRuleMatcher;\n// handler: MkMpXmlParseRuleHnalder;\n// }\nexport type MkPlatformNodeAdapterMap = {\n [prop in MpPlatform]?: FxNodeAdapter[];\n};\nexport interface MkMpXmlParseOptions {\n onEvent?: FxEventHandler;\n // rules?: MkMpXmlParseRule[];\n}\nexport interface MkMpXmlSerializeOptions extends FxSerializeOptions {}\nexport interface MkXmlContent {\n type: MpXmlContentType;\n value: string;\n locationInfo?: FxLocation;\n}\nexport interface MkXmlContentParseResult {\n contents: MkXmlContent[];\n leftStaticContents: MkXmlContent[];\n leftStaticContentsIsEmpty: boolean;\n rightStaticContents: MkXmlContent[];\n rightStaticContentsIsEmpty: boolean;\n betweenStaticContents: MkXmlContent[];\n dynamicContents: MkXmlContent[];\n}\nexport interface MpForAttrContent extends MkXmlContent {\n type: MpXmlContentType;\n value: string;\n featureList?: string;\n featureItem?: string;\n featureIndex?: string;\n featureKey?: string;\n}\nexport interface MkMpXmlParseContext {\n xjsModuleNames?: []; // 该页面引入的wxs/sjs...之类的模块名称\n}\nexport interface IMkMpXmlAttrParseAdapter {\n parse(\n attr: FxNodeJSON,\n parent?: FxNodeJSON | LikeFxParseContext,\n grandpa?: FxNodeJSON | LikeFxParseContext\n ): MkXmlNode;\n}\nexport interface IMkMpXmlContentParseAdapter {\n parse(\n content: string,\n node?: FxNodeJSON,\n parent?: FxNodeJSON | LikeFxParseContext,\n grandpa?: FxNodeJSON | LikeFxParseContext\n ): MkXmlContent[];\n}\nexport interface IMkMpXmlParseAdapter {\n attrAdapters: MkMap<IMkMpXmlAttrParseAdapter>;\n contentAdapter: IMkMpXmlContentParseAdapter;\n}\nexport enum MpXmlContentType {\n static = \"static\",\n dynamic = \"dynamic\",\n}\nexport interface MkXmlNodeJSON\n extends MkOmit<FxNodeJSON, \"attrs\" | \"children\"> {\n attrs?: MkXmlNodeJSON[];\n children?: MkXmlNodeJSON[];\n mpContents?: MpForAttrContent[] | MkXmlContent[];\n}\nexport interface LikeFxParseContext {\n nodes?: FxNode[] | FxNodeJSON[] | MkXmlNodeJSON[] | MkXmlNode[];\n}\nexport interface MkXmlNode\n extends MkOmit<MkXmlNodeJSON, \"attrs\" | \"children\" | \"parent\"> {\n attrs?: MkXmlNode[];\n children?: MkXmlNode[];\n mpContents?: MpForAttrContent[] | MkXmlContent[];\n parent?: MkXmlNode;\n // 前一个兄弟:只在非text和comment的node上存在,且Sibling本身也非text和comment\n previousSibling?: MkXmlNode;\n // 后一个兄弟:只在非text和comment的node上存在,且Sibling本身也非text和comment\n nextSibling?: MkXmlNode;\n}\n\nexport enum MkXmlParseMessagePosition {\n text = \"text\",\n attr = \"attr\",\n}\nexport interface MkXmlParseMessage extends FxWrong {\n // position: MkXmlParseMessagePosition;\n target?: FxNode | FxNodeJSON;\n}\n\nexport interface MkXmlParseResult extends MkOmit<FxParseResult, \"nodes\"> {\n nodes?: MkXmlNode[];\n}\n\nexport interface MkXmlParseResultBase {\n error?: FxWrong;\n nodes?: MkXmlNode[];\n}\n\nexport interface MkMpXmlParseAdapterFormater {\n parseAdapter?: IMkMpXmlParseAdapter;\n hasAttrAdapter: boolean;\n hasContentAdapter: boolean;\n}\nexport interface MkNodeSerializer {\n (\n nodes: FxNodeJSON[],\n handler: MkNodeSerializeHandler,\n parentNode?: FxNodeJSON\n ): string;\n}\nexport interface MkNodeSerializeHandler {\n (\n currentNode: MkXmlNodeJSON,\n brotherNodes: MkXmlNodeJSON[],\n rootNodes: MkXmlNodeJSON[],\n rootSerializer: MkNodeSerializer,\n parentNode: FxNodeJSON,\n adapter: FxNodeAdapter,\n serializeResult: string\n ): string;\n}\n","import { MpPlatform } from \"./platform\";\nimport { MkOmit, MkRequireAll } from \"./util\";\n\nexport type MkMpSDKVersion<\n N extends number = number,\n S extends string = `${N}.${N}.${N}`\n> = S;\n\nexport interface LikeMkMpSDKVersionSupport {\n supportVersion?: MkMpSDKVersion;\n}\nexport interface MkMpSDKVersionSupport\n extends MkRequireAll<LikeMkMpSDKVersionSupport> {}\n\n// xml绑定变量语法,如:{{xx}}\nexport interface LikeMkMpXmlDataBinding {\n // 左边界字符串\n leftBoundaryChar?: string;\n // 右边界字符串\n rightBoundaryChar?: string;\n // 左边界符距离内容可被允许包含的空白字符数量,小于0|undefined=允许左边界与内容之间出现空白字符且不限数量;0=不允许;大于0代表必须有,且数量一致\n leftBoundarySpace?: number;\n // 右边界符距离内容可被允许包含的空白字符数量,小于0|undefined=允许左边界与内容之间出现空白字符且不限数量;0=不允许;大于0代表必须有,且数量一致\n rightBoundarySpace?: number;\n}\nexport interface MkMpXmlDataBinding\n extends MkRequireAll<LikeMkMpXmlDataBinding> {}\n\n// 是否支持数据绑定\nexport interface MkMpXmlSupportDataBinding {\n // 是否支持变量绑定\n dataBinding?: MkMpXmlDataBinding;\n // 支持的变量绑定数量,0代表不支持,小于0代表支持无限个,大于0代表具体数量\n dataBindingCount?: number;\n}\nexport enum MkMpXmlAstContentType {\n static = \"static\",\n dataBinding = \"dataBinding\",\n}\nexport interface MkMpXmlAstContent {\n type: MkMpXmlAstContentType;\n value: string;\n}\n// xml ast 节点\nexport interface MkMpXmlAstNode {\n name: string;\n content?: string;\n mpContents?: MkMpXmlAstContent[];\n}\n// xml ast 属性\nexport interface MkMpXmlAstAttr extends MkMpXmlAstNode {}\n// xml ast 元素\nexport interface MkMpXmlAstElement extends MkMpXmlAstNode {\n attrs?: MkMpXmlAstAttr[];\n children?: MkMpXmlAstElement[];\n // 前一个兄弟:只在非text和comment的node上存在,且Sibling本身也非text和comment\n previousSibling?: MkMpXmlAstElement;\n // 后一个兄弟:只在非text和comment的node上存在,且Sibling本身也非text和comment\n nextSibling?: MkMpXmlAstElement;\n}\n\nexport interface MkMpXmlAstPreviousSiblingFinder {\n (node: MkMpXmlAstElement, siblings: MkMpXmlAstElement[]): MkMpXmlAstElement;\n}\n\n// xml 属性验证器\nexport interface MkMpXmlNodeValidater {\n (\n attr: MkMpXmlAstAttr, // 属性ast对象\n parent: MkMpXmlAstElement, // 属性的父节点ast对象\n grandpa?: MkMpXmlAstElement, // 属性的爷爷节点ast对象\n previousSiblingFinder?: MkMpXmlAstPreviousSiblingFinder // 查找前一个节点的函数\n ): boolean | MkMpXmlNodeValidateResult;\n}\nexport enum MkMpXmlNodeValidateResultLevel {\n success = \"success\",\n fail = \"fail\",\n warn = \"warn\",\n ignore = \"ignore\",\n}\nexport interface MkMpXmlNodeValidateResult {\n pass: boolean;\n level: MkMpXmlNodeValidateResultLevel;\n code: string;\n message: string;\n}\nexport enum MkMpXmlAttrContentType {\n string = \"string\",\n boolean = \"boolean\",\n number = \"number\",\n}\n// xml 属性 技术特性\nexport interface LikeMkMpXmlAttrSpec\n extends MkMpXmlSupportDataBinding,\n LikeMkMpSDKVersionSupport {\n // 内容必选?0|undefined=可有可没有,小于0=必须没有,1=必须有,但是可为空,大于1=必须有,且不为空(含任意字符串)\n requireContent?: number;\n // 是否必选?0|undefined=可有可没有,小于0=必须没有,大于0=必须有\n require?: number;\n // 该属性是否是事件绑定\n isEvent?: boolean;\n // 内容类型\n contentType?: MkMpXmlAttrContentType | MkMpXmlAttrContentType[];\n // 默认内容\n defaultContent?: any;\n validater?: MkMpXmlNodeValidater;\n}\n\nexport interface MkMpXmlAttrSpec\n extends MkOmit<\n MkRequireAll<LikeMkMpXmlAttrSpec>,\n \"defaultContent\" | \"validater\"\n > {\n defaultContent?: any;\n validater?: MkMpXmlNodeValidater;\n}\n\nexport interface MkMpXmlNodeSpecMap<T> {\n // 匹配所有目标节点\n _common?: T;\n // 指定的名称均匹配不上时,采用此特性,最后采用的特性将是_common&&_unclaimed\n _unclaimed?: T;\n // 按照名称匹配,最后的该名称对应的节点特定将是此属性与_common的合并体\n [p: string]: T;\n}\n\nexport interface LikeMkMpXmlElementSpec\n extends MkMpXmlSupportDataBinding,\n LikeMkMpSDKVersionSupport {\n // 节点关闭类型,0|undefined=自关闭或结束标签关闭均可以;小于0=只可以自关闭方式关闭;大于0=必须通过结束标签关闭\n closeType?: number;\n // 属性特性\n attrsSpec?: MkMpXmlNodeSpecMap<LikeMkMpXmlAttrSpec>;\n}\n// xml 节点 技术特性\nexport interface MkMpXmlElementSpec\n extends MkOmit<MkRequireAll<LikeMkMpXmlElementSpec>, \"attrsSpec\">,\n MkMpSDKVersionSupport {\n attrsSpec: MkMpXmlNodeSpecMap<MkMpXmlAttrSpec>;\n}\n// xml 节点对象\nexport interface MkMpXmlElement {\n id?: string;\n dataset?: {\n [p: string]: any;\n };\n}\n// xml 事件对象\nexport interface MkMpXmlBaseEvent<T = undefined> {\n type: string;\n timeStamp: number;\n target: MkMpXmlElement;\n currentTarget: MkMpXmlElement;\n detail?: T;\n}\n\n// xml 事件处理程序\nexport interface MkMpXmlEventHandler<D = undefined, T = MkMpXmlBaseEvent<D>> {\n (event: T);\n}\n\n// xml 技术特性\nexport interface LikeMkMpXmlSpec\n extends MkMpXmlNodeSpecMap<LikeMkMpXmlElementSpec> {}\nexport interface MkMpXmlSpec extends MkMpXmlNodeSpecMap<MkMpXmlElementSpec> {}\n\nexport interface MkMpPlatformSpec<T> {\n [MpPlatform.wechat]: T;\n [MpPlatform.alipay]: T;\n [MpPlatform.smart]: T;\n [MpPlatform.tiktok]: T;\n}\n"],"names":["MpRequestOptionsMethod","MpPlatform","MpViewType","MpXmlContentType","MkXmlParseMessagePosition","MkMpXmlAstContentType","MkMpXmlNodeValidateResultLevel","MkMpXmlAttrContentType"],"mappings":";;;;;;;;;;;;AAgBA,WAAYA;AACRA,EAAAA,iCAAA,YAAA;AACAA,EAAAA,6BAAA,QAAA;AACAA,EAAAA,8BAAA,SAAA;AACAA,EAAAA,8BAAA,SAAA;AACAA,EAAAA,6BAAA,QAAA;AACAA,EAAAA,gCAAA,WAAA;AACAA,EAAAA,+BAAA,UAAA;AACAA,EAAAA,iCAAA,YAAA;AACH,CATD,EAAYA,8BAAsB,KAAtBA,8BAAsB,KAAA,CAAlC;;AChBA,WAAYC;AACRA,EAAAA,oBAAA,WAAA;AACAA,EAAAA,oBAAA,WAAA;AACAA,EAAAA,mBAAA,UAAA;AACAA,EAAAA,oBAAA,WAAA;AACAA,EAAAA,qBAAA,YAAA;AACH,CAND,EAAYA,kBAAU,KAAVA,kBAAU,KAAA,CAAtB;;AC6BA,WAAYC;AACRA,EAAAA,iBAAA,QAAA;AACAA,EAAAA,kBAAA,SAAA;AACAA,EAAAA,uBAAA,cAAA;AACH,CAJD,EAAYA,kBAAU,KAAVA,kBAAU,KAAA,CAAtB;;ACgEA,WAAYC;AACRA,EAAAA,0BAAA,WAAA;AACAA,EAAAA,2BAAA,YAAA;AACH,CAHD,EAAYA,wBAAgB,KAAhBA,wBAAgB,KAAA,CAA5B;;AAyBA,WAAYC;AACRA,EAAAA,iCAAA,SAAA;AACAA,EAAAA,iCAAA,SAAA;AACH,CAHD,EAAYA,iCAAyB,KAAzBA,iCAAyB,KAAA,CAArC;;ACnFA,WAAYC;AACRA,EAAAA,+BAAA,WAAA;AACAA,EAAAA,oCAAA,gBAAA;AACH,CAHD,EAAYA,6BAAqB,KAArBA,6BAAqB,KAAA,CAAjC;;AAuCA,WAAYC;AACRA,EAAAA,yCAAA,YAAA;AACAA,EAAAA,sCAAA,SAAA;AACAA,EAAAA,sCAAA,SAAA;AACAA,EAAAA,wCAAA,WAAA;AACH,CALD,EAAYA,sCAA8B,KAA9BA,sCAA8B,KAAA,CAA1C;;AAYA,WAAYC;AACRA,EAAAA,gCAAA,WAAA;AACAA,EAAAA,iCAAA,YAAA;AACAA,EAAAA,gCAAA,WAAA;AACH,CAJD,EAAYA,8BAAsB,KAAtBA,8BAAsB,KAAA,CAAlC;;;;;;;;;;;;;;;"} |
+4
-19
| /*! | ||
| * MpKit v1.0.12 | ||
| * MpKit v1.0.15 | ||
| * (c) 2020-2021 imingyu<mingyuhisoft@163.com> | ||
@@ -7,2 +7,4 @@ * Released under the MIT License. | ||
| */ | ||
| export { FxNodeCloseType, FxNodeType } from 'forgiving-xml-parser'; | ||
| var MpRequestOptionsMethod; | ||
@@ -39,19 +41,2 @@ | ||
| var MpWhereType; | ||
| (function (MpWhereType) { | ||
| MpWhereType["if"] = "if"; | ||
| MpWhereType["elseif"] = "elseif"; | ||
| MpWhereType["else"] = "else"; | ||
| })(MpWhereType || (MpWhereType = {})); | ||
| var MpEachType; | ||
| (function (MpEachType) { | ||
| MpEachType["key"] = "key"; | ||
| MpEachType["for"] = "for"; | ||
| MpEachType["forItem"] = "forItem"; | ||
| MpEachType["forIndex"] = "forIndex"; | ||
| })(MpEachType || (MpEachType = {})); | ||
| var MpXmlContentType; | ||
@@ -95,3 +80,3 @@ | ||
| export { MkMpXmlAstContentType, MkMpXmlAttrContentType, MkMpXmlNodeValidateResultLevel, MkXmlParseMessagePosition, MpEachType, MpPlatform, MpRequestOptionsMethod, MpViewType, MpWhereType, MpXmlContentType }; | ||
| export { MkMpXmlAstContentType, MkMpXmlAttrContentType, MkMpXmlNodeValidateResultLevel, MkXmlParseMessagePosition, MpPlatform, MpRequestOptionsMethod, MpViewType, MpXmlContentType }; | ||
| //# sourceMappingURL=index.esm.js.map |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"index.esm.js","sources":["../api.ts","../platform.ts","../view.ts","../mpxml-parser.ts","../mpspec.ts"],"sourcesContent":["export interface MpApiCallback {\n (res?: any);\n}\nexport interface MpApiMethodArg {\n success: MpApiCallback;\n fail: MpApiCallback;\n complete: MpApiCallback;\n [prop: string]: any;\n}\nexport interface MpApiMethod {\n (options?: MpApiMethodArg | any): any;\n}\n\nexport interface MpApiVar {\n [prop: string]: MpApiMethod;\n}\nexport enum MpRequestOptionsMethod {\n OPTIONS = \"OPTIONS\",\n GET = \"GET\",\n POST = \"POST\",\n HEAD = \"HEAD\",\n PUT = \"PUT\",\n DELETE = \"DELETE\",\n TRACE = \"TRACE\",\n CONNECT = \"CONNECT\",\n}\nexport interface MpRequestOptions extends MpApiMethodArg {\n url: string;\n method: MpRequestOptionsMethod;\n headers?: {\n [prop: string]: string | number;\n };\n}\nexport interface MpRequestTask {\n abort: Function;\n}\nexport interface MpApiRequestMethod {\n (options: MpRequestOptions): MpRequestTask;\n}\n","export enum MpPlatform {\n wechat = \"wechat\",\n alipay = \"alipay\",\n smart = \"smart\",\n tiktok = \"tiktok\",\n unknown = \"unknown\",\n}\n","import { MkEnumMap } from \"./util\";\nimport { MkSetData } from \"./set-data\";\nexport interface MpAppLaunchOptions {}\nexport interface MpViewInitLife<V, T> {\n (this: V, options: T): void;\n}\nexport interface MpViewLife<V> {\n (this: V): void;\n}\nexport type MpViewInitLifes = \"onLaunch\" | \"onLoad\" | \"created\" | \"onInit\";\nexport type MpViewMountLifes = \"onShow\" | \"attached\" | \"didMount\";\n// 小程序App实例\nexport interface MpViewApp extends MpViewAppSpec, MpView {}\n// 小程序App函数接收的配置对象\nexport interface MpViewAppSpec {\n onLaunch: MpViewInitLife<MpViewApp, MpAppLaunchOptions>;\n onShow: MpViewInitLife<MpViewApp, MpAppLaunchOptions>;\n onHide: MpViewLife<MpViewApp>;\n onError: MpViewLife<MpViewApp>;\n [prop: string]: any;\n}\nexport interface MpAlipayViewApp extends MpViewApp, MpAlipayViewAppSpec {}\nexport interface MpAlipayViewAppSpec extends MpViewAppSpec {\n onShareAppMessage: MpViewLife<MpAlipayViewApp>;\n}\n\nexport interface MpViewFactory {\n (spec: MpViewAppSpec | MpViewPageSpec | MpViewComponentSpec | any): void;\n}\nexport enum MpViewType {\n App = \"App\",\n Page = \"Page\",\n Component = \"Component\",\n}\nexport interface MpViewSpec {\n data: any;\n}\nexport interface MpViewComponetPropSpec {\n type: Function;\n default?: any;\n observer?: Function;\n}\nexport interface MpViewPageSpec extends MpViewSpec {\n [prop: string]: any;\n}\nexport type MpViewComponentLifes =\n | \"created\"\n | \"attached\"\n | \"ready\"\n | \"moved\"\n | \"detached\"\n | \"error\";\nexport type MpViewComponentPageLifes = \"show\" | \"hide\" | \"resize\";\nexport interface MpViewComponentSpec extends MpViewSpec {\n properties?: {\n [prop: string]: Function | MpViewComponetPropSpec;\n };\n lifetimes?: MkEnumMap<MpViewComponentLifes, Function | string>;\n pageLifetimes?: MkEnumMap<MpViewComponentPageLifes, Function | string>;\n methods: {\n [prop: string]: Function;\n };\n [prop: string]: any;\n}\nexport interface MpView {\n $mkSpec: MpViewSpec;\n $mkType: MpViewType;\n $mkKey: string;\n $mkKeyIsDefine?: string;\n $mkNativeSetData: MpSetDataHandler;\n $mkSetData: MkSetData;\n $mkSetDataIsBind?: boolean;\n $mkReadyData: any;\n data: any;\n setData: MpSetDataHandler;\n}\nexport interface MpWechatSelectOwnerComponent {\n (): void | MpView;\n}\nexport interface MpWechatView extends MpView {\n __wxExparserNodeId__: string;\n __wxWebviewId__: number;\n is: string;\n selectOwnerComponent: MpWechatSelectOwnerComponent;\n}\nexport interface MpWechatPageView extends MpWechatView {\n route: string;\n}\nexport interface MpTiktokView extends MpView {\n __webviewId__: number;\n __nodeId__: number;\n is: string;\n}\nexport interface MpComponentPropObserver {\n (this: MpView, oldValue: any, newVal: any): void;\n}\n\nexport interface MpComponentPropSpec {\n type: Function;\n default: any;\n observer: MpComponentPropObserver;\n}\n\nexport interface MpAlipayView extends MpView {\n $id: number;\n}\n\nexport interface MpAlipayViewPage extends MpAlipayView {\n $viewId: string;\n route: string;\n}\nexport interface MpAlipayViewComponent extends MpAlipayView {\n $page: MpAlipayViewPage;\n is: string;\n props: {\n [prop: string]: any;\n __tag: string;\n };\n}\nexport interface MpSmartViewPage extends MpView {\n route: string;\n}\nexport interface MpSmartViewComponent extends MpView {\n componentName: string;\n nodeId: string;\n pageinstance: MpSmartViewPage;\n is: string;\n}\nexport interface MpSetDataHandler {\n (data: any, callback?: Function): void;\n}\n","import { MkOmit, MkMap, MkEnumMap } from \"./util\";\nimport {\n FxNode,\n FxParseResult,\n FxWrong,\n FxLocation,\n FxNodeJSON,\n FxEventHandler,\n FxNodeAdapter,\n} from \"forgiving-xml-parser\";\nimport { MpPlatform } from \"./platform\";\nexport interface MpSpec {\n [prop: string]: MkEnumMap<MpPlatform, MpViewSyntaxSpec>;\n}\nexport interface MpViewSyntaxSpec {\n namespace: string;\n for: string;\n forItem: string;\n forIndex: string;\n key: string;\n if: string;\n elseif: string;\n else: string;\n forAndWhereAttrNeedBracket: boolean;\n}\nexport enum MpWhereType {\n if = \"if\",\n elseif = \"elseif\",\n else = \"else\",\n}\nexport enum MpEachType {\n key = \"key\",\n for = \"for\",\n forItem = \"forItem\",\n forIndex = \"forIndex\",\n}\nexport interface MkMpXmlParseOptions {\n onEvent?: FxEventHandler;\n}\nexport interface MkXmlContent {\n type: MpXmlContentType;\n value: string;\n locationInfo?: FxLocation;\n}\nexport interface MkXmlContentParseResult {\n contents: MkXmlContent[];\n leftStaticContents: MkXmlContent[];\n leftStaticContentsIsEmpty: boolean;\n rightStaticContents: MkXmlContent[];\n rightStaticContentsIsEmpty: boolean;\n betweenStaticContents: MkXmlContent[];\n dynamicContents: MkXmlContent[];\n}\nexport interface MpForAttrContent extends MkXmlContent {\n type: MpXmlContentType;\n value: string;\n featureList?: string;\n featureItem?: string;\n featureIndex?: string;\n featureKey?: string;\n}\nexport interface IMkMpXmlAttrParseAdapter {\n parse(\n attr: FxNodeJSON,\n parent?: FxNodeJSON | LikeFxParseContext,\n grandpa?: FxNodeJSON | LikeFxParseContext\n ): MkXmlNode;\n}\nexport interface IMkMpXmlContentParseAdapter {\n parse(\n content: string,\n node?: FxNodeJSON,\n parent?: FxNodeJSON | LikeFxParseContext,\n grandpa?: FxNodeJSON | LikeFxParseContext\n ): MkXmlContent[];\n}\nexport interface IMkMpXmlParseAdapter {\n attrAdapters: MkMap<IMkMpXmlAttrParseAdapter>;\n contentAdapter: IMkMpXmlContentParseAdapter;\n}\nexport enum MpXmlContentType {\n static = \"static\",\n dynamic = \"dynamic\",\n}\nexport interface MkXmlNodeJSON\n extends MkOmit<FxNodeJSON, \"attrs\" | \"children\"> {\n attrs?: MkXmlNodeJSON[];\n children?: MkXmlNodeJSON[];\n mpContents?: MpForAttrContent[] | MkXmlContent[];\n special?: MpWhereType | MpEachType;\n}\nexport interface LikeFxParseContext {\n nodes?: FxNode[] | FxNodeJSON[] | MkXmlNodeJSON[] | MkXmlNode[];\n}\nexport interface MkXmlNode\n extends MkOmit<MkXmlNodeJSON, \"attrs\" | \"children\" | \"parent\"> {\n attrs?: MkXmlNode[];\n children?: MkXmlNode[];\n mpContents?: MpForAttrContent[] | MkXmlContent[];\n parent?: MkXmlNode;\n // 前一个兄弟:只在非text和comment的node上存在,且Sibling本身也非text和comment\n previousSibling?: MkXmlNode;\n // 后一个兄弟:只在非text和comment的node上存在,且Sibling本身也非text和comment\n nextSibling?: MkXmlNode;\n}\n\nexport enum MkXmlParseMessagePosition {\n text = \"text\",\n attr = \"attr\",\n}\nexport interface MkXmlParseMessage extends FxWrong {\n // position: MkXmlParseMessagePosition;\n target?: FxNode | FxNodeJSON;\n}\n\nexport interface MkXmlParseResult extends MkOmit<FxParseResult, \"nodes\"> {\n nodes?: MkXmlNode[];\n}\n\nexport interface MkXmlParseResultBase {\n error?: FxWrong;\n nodes?: MkXmlNode[];\n}\n\nexport interface MkMpXmlParseAdapterFormater {\n parseAdapter?: IMkMpXmlParseAdapter;\n hasAttrAdapter: boolean;\n hasContentAdapter: boolean;\n}\nexport interface MkNodeSerializer {\n (\n nodes: FxNodeJSON[],\n handler: MkNodeSerializeHandler,\n parentNode?: FxNodeJSON\n ): string;\n}\nexport interface MkNodeSerializeHandler {\n (\n currentNode: MkXmlNodeJSON,\n brotherNodes: MkXmlNodeJSON[],\n rootNodes: MkXmlNodeJSON[],\n rootSerializer: MkNodeSerializer,\n parentNode: FxNodeJSON,\n adapter: FxNodeAdapter,\n serializeResult: string\n ): string;\n}\n","import { MpPlatform } from \"./platform\";\nimport { MkOmit, MkRequireAll } from \"./util\";\n\nexport type MkMpSDKVersion<\n N extends number = number,\n S extends string = `${N}.${N}.${N}`\n> = S;\n\nexport interface LikeMkMpSDKVersionSupport {\n supportVersion?: MkMpSDKVersion;\n}\nexport interface MkMpSDKVersionSupport\n extends MkRequireAll<LikeMkMpSDKVersionSupport> {}\n\n// xml绑定变量语法,如:{{xx}}\nexport interface LikeMkMpXmlDataBinding {\n // 左边界字符串\n leftBoundaryChar?: string;\n // 右边界字符串\n rightBoundaryChar?: string;\n // 左边界符距离内容可被允许包含的空白字符数量,小于0|undefined=允许左边界与内容之间出现空白字符且不限数量;0=不允许;大于0代表必须有,且数量一致\n leftBoundarySpace?: number;\n // 右边界符距离内容可被允许包含的空白字符数量,小于0|undefined=允许左边界与内容之间出现空白字符且不限数量;0=不允许;大于0代表必须有,且数量一致\n rightBoundarySpace?: number;\n}\nexport interface MkMpXmlDataBinding\n extends MkRequireAll<LikeMkMpXmlDataBinding> {}\n\n// 是否支持数据绑定\nexport interface MkMpXmlSupportDataBinding {\n // 是否支持变量绑定\n dataBinding?: MkMpXmlDataBinding;\n // 支持的变量绑定数量,0代表不支持,小于0代表支持无限个,大于0代表具体数量\n dataBindingCount?: number;\n}\nexport enum MkMpXmlAstContentType {\n static = \"static\",\n dataBinding = \"dataBinding\",\n}\nexport interface MkMpXmlAstContent {\n type: MkMpXmlAstContentType;\n value: string;\n}\n// xml ast 节点\nexport interface MkMpXmlAstNode {\n name: string;\n content?: string;\n mpContents?: MkMpXmlAstContent[];\n}\n// xml ast 属性\nexport interface MkMpXmlAstAttr extends MkMpXmlAstNode {}\n// xml ast 元素\nexport interface MkMpXmlAstElement extends MkMpXmlAstNode {\n attrs?: MkMpXmlAstAttr[];\n children?: MkMpXmlAstElement[];\n // 前一个兄弟:只在非text和comment的node上存在,且Sibling本身也非text和comment\n previousSibling?: MkMpXmlAstElement;\n // 后一个兄弟:只在非text和comment的node上存在,且Sibling本身也非text和comment\n nextSibling?: MkMpXmlAstElement;\n}\n\nexport interface MkMpXmlAstPreviousSiblingFinder {\n (node: MkMpXmlAstElement, siblings: MkMpXmlAstElement[]): MkMpXmlAstElement;\n}\n\n// xml 属性验证器\nexport interface MkMpXmlNodeValidater {\n (\n attr: MkMpXmlAstAttr, // 属性ast对象\n parent: MkMpXmlAstElement, // 属性的父节点ast对象\n grandpa?: MkMpXmlAstElement, // 属性的爷爷节点ast对象\n previousSiblingFinder?: MkMpXmlAstPreviousSiblingFinder // 查找前一个节点的函数\n ): boolean | MkMpXmlNodeValidateResult;\n}\nexport enum MkMpXmlNodeValidateResultLevel {\n success = \"success\",\n fail = \"fail\",\n warn = \"warn\",\n ignore = \"ignore\",\n}\nexport interface MkMpXmlNodeValidateResult {\n pass: boolean;\n level: MkMpXmlNodeValidateResultLevel;\n code: string;\n message: string;\n}\nexport enum MkMpXmlAttrContentType {\n string = \"string\",\n boolean = \"boolean\",\n number = \"number\",\n}\n// xml 属性 技术特性\nexport interface LikeMkMpXmlAttrSpec\n extends MkMpXmlSupportDataBinding,\n LikeMkMpSDKVersionSupport {\n // 内容必选?0|undefined=可有可没有,小于0=必须没有,1=必须有,但是可为空,大于1=必须有,且不为空(含任意字符串)\n requireContent?: number;\n // 是否必选?0|undefined=可有可没有,小于0=必须没有,大于0=必须有\n require?: number;\n // 该属性是否是事件绑定\n isEvent?: boolean;\n // 内容类型\n contentType?: MkMpXmlAttrContentType | MkMpXmlAttrContentType[];\n // 默认内容\n defaultContent?: any;\n validater?: MkMpXmlNodeValidater;\n}\n\nexport interface MkMpXmlAttrSpec\n extends MkOmit<\n MkRequireAll<LikeMkMpXmlAttrSpec>,\n \"defaultContent\" | \"validater\"\n > {\n defaultContent?: any;\n validater?: MkMpXmlNodeValidater;\n}\n\nexport interface MkMpXmlNodeSpecMap<T> {\n // 匹配所有目标节点\n _common?: T;\n // 指定的名称均匹配不上时,采用此特性,最后采用的特性将是_common&&_unclaimed\n _unclaimed?: T;\n // 按照名称匹配,最后的该名称对应的节点特定将是此属性与_common的合并体\n [p: string]: T;\n}\n\nexport interface LikeMkMpXmlElementSpec\n extends MkMpXmlSupportDataBinding,\n LikeMkMpSDKVersionSupport {\n // 节点关闭类型,0|undefined=自关闭或结束标签关闭均可以;小于0=只可以自关闭方式关闭;大于0=必须通过结束标签关闭\n closeType?: number;\n // 属性特性\n attrsSpec?: MkMpXmlNodeSpecMap<LikeMkMpXmlAttrSpec>;\n}\n// xml 节点 技术特性\nexport interface MkMpXmlElementSpec\n extends MkOmit<MkRequireAll<LikeMkMpXmlElementSpec>, \"attrsSpec\">,\n MkMpSDKVersionSupport {\n attrsSpec: MkMpXmlNodeSpecMap<MkMpXmlAttrSpec>;\n}\n// xml 节点对象\nexport interface MkMpXmlElement {\n id?: string;\n dataset?: {\n [p: string]: any;\n };\n}\n// xml 事件对象\nexport interface MkMpXmlBaseEvent<T = undefined> {\n type: string;\n timeStamp: number;\n target: MkMpXmlElement;\n currentTarget: MkMpXmlElement;\n detail?: T;\n}\n\n// xml 事件处理程序\nexport interface MkMpXmlEventHandler<D = undefined, T = MkMpXmlBaseEvent<D>> {\n (event: T);\n}\n\n// xml 技术特性\nexport interface LikeMkMpXmlSpec\n extends MkMpXmlNodeSpecMap<LikeMkMpXmlElementSpec> {}\nexport interface MkMpXmlSpec extends MkMpXmlNodeSpecMap<MkMpXmlElementSpec> {}\n\nexport interface MkMpPlatformSpec<T> {\n [MpPlatform.wechat]: T;\n [MpPlatform.alipay]: T;\n [MpPlatform.smart]: T;\n [MpPlatform.tiktok]: T;\n}\n"],"names":["MpRequestOptionsMethod","MpPlatform","MpViewType","MpWhereType","MpEachType","MpXmlContentType","MkXmlParseMessagePosition","MkMpXmlAstContentType","MkMpXmlNodeValidateResultLevel","MkMpXmlAttrContentType"],"mappings":";;;;;;IAgBYA;;AAAZ,WAAYA;AACRA,EAAAA,iCAAA,YAAA;AACAA,EAAAA,6BAAA,QAAA;AACAA,EAAAA,8BAAA,SAAA;AACAA,EAAAA,8BAAA,SAAA;AACAA,EAAAA,6BAAA,QAAA;AACAA,EAAAA,gCAAA,WAAA;AACAA,EAAAA,+BAAA,UAAA;AACAA,EAAAA,iCAAA,YAAA;AACH,CATD,EAAYA,sBAAsB,KAAtBA,sBAAsB,KAAA,CAAlC;;IChBYC;;AAAZ,WAAYA;AACRA,EAAAA,oBAAA,WAAA;AACAA,EAAAA,oBAAA,WAAA;AACAA,EAAAA,mBAAA,UAAA;AACAA,EAAAA,oBAAA,WAAA;AACAA,EAAAA,qBAAA,YAAA;AACH,CAND,EAAYA,UAAU,KAAVA,UAAU,KAAA,CAAtB;;IC6BYC;;AAAZ,WAAYA;AACRA,EAAAA,iBAAA,QAAA;AACAA,EAAAA,kBAAA,SAAA;AACAA,EAAAA,uBAAA,cAAA;AACH,CAJD,EAAYA,UAAU,KAAVA,UAAU,KAAA,CAAtB;;ICJYC;;AAAZ,WAAYA;AACRA,EAAAA,iBAAA,OAAA;AACAA,EAAAA,qBAAA,WAAA;AACAA,EAAAA,mBAAA,SAAA;AACH,CAJD,EAAYA,WAAW,KAAXA,WAAW,KAAA,CAAvB;;IAKYC;;AAAZ,WAAYA;AACRA,EAAAA,iBAAA,QAAA;AACAA,EAAAA,iBAAA,QAAA;AACAA,EAAAA,qBAAA,YAAA;AACAA,EAAAA,sBAAA,aAAA;AACH,CALD,EAAYA,UAAU,KAAVA,UAAU,KAAA,CAAtB;;IAkDYC;;AAAZ,WAAYA;AACRA,EAAAA,0BAAA,WAAA;AACAA,EAAAA,2BAAA,YAAA;AACH,CAHD,EAAYA,gBAAgB,KAAhBA,gBAAgB,KAAA,CAA5B;;IA0BYC;;AAAZ,WAAYA;AACRA,EAAAA,iCAAA,SAAA;AACAA,EAAAA,iCAAA,SAAA;AACH,CAHD,EAAYA,yBAAyB,KAAzBA,yBAAyB,KAAA,CAArC;;ICvEYC;;AAAZ,WAAYA;AACRA,EAAAA,+BAAA,WAAA;AACAA,EAAAA,oCAAA,gBAAA;AACH,CAHD,EAAYA,qBAAqB,KAArBA,qBAAqB,KAAA,CAAjC;;IAuCYC;;AAAZ,WAAYA;AACRA,EAAAA,yCAAA,YAAA;AACAA,EAAAA,sCAAA,SAAA;AACAA,EAAAA,sCAAA,SAAA;AACAA,EAAAA,wCAAA,WAAA;AACH,CALD,EAAYA,8BAA8B,KAA9BA,8BAA8B,KAAA,CAA1C;;IAYYC;;AAAZ,WAAYA;AACRA,EAAAA,gCAAA,WAAA;AACAA,EAAAA,iCAAA,YAAA;AACAA,EAAAA,gCAAA,WAAA;AACH,CAJD,EAAYA,sBAAsB,KAAtBA,sBAAsB,KAAA,CAAlC;;;;"} | ||
| {"version":3,"file":"index.esm.js","sources":["../api.ts","../platform.ts","../view.ts","../mpxml-parser.ts","../mpspec.ts"],"sourcesContent":["export interface MpApiCallback {\n (res?: any);\n}\nexport interface MpApiMethodArg {\n success: MpApiCallback;\n fail: MpApiCallback;\n complete: MpApiCallback;\n [prop: string]: any;\n}\nexport interface MpApiMethod {\n (options?: MpApiMethodArg | any): any;\n}\n\nexport interface MpApiVar {\n [prop: string]: MpApiMethod;\n}\nexport enum MpRequestOptionsMethod {\n OPTIONS = \"OPTIONS\",\n GET = \"GET\",\n POST = \"POST\",\n HEAD = \"HEAD\",\n PUT = \"PUT\",\n DELETE = \"DELETE\",\n TRACE = \"TRACE\",\n CONNECT = \"CONNECT\",\n}\nexport interface MpRequestOptions extends MpApiMethodArg {\n url: string;\n method: MpRequestOptionsMethod;\n headers?: {\n [prop: string]: string | number;\n };\n}\nexport interface MpRequestTask {\n abort: Function;\n}\nexport interface MpApiRequestMethod {\n (options: MpRequestOptions): MpRequestTask;\n}\n","export enum MpPlatform {\n wechat = \"wechat\",\n alipay = \"alipay\",\n smart = \"smart\",\n tiktok = \"tiktok\",\n unknown = \"unknown\",\n}\n","import { MkEnumMap } from \"./util\";\nimport { MkSetData } from \"./set-data\";\nexport interface MpAppLaunchOptions {}\nexport interface MpViewInitLife<V, T> {\n (this: V, options: T): void;\n}\nexport interface MpViewLife<V> {\n (this: V): void;\n}\nexport type MpViewInitLifes = \"onLaunch\" | \"onLoad\" | \"created\" | \"onInit\";\nexport type MpViewMountLifes = \"onShow\" | \"attached\" | \"didMount\";\n// 小程序App实例\nexport interface MpViewApp extends MpViewAppSpec, MpView {}\n// 小程序App函数接收的配置对象\nexport interface MpViewAppSpec {\n onLaunch: MpViewInitLife<MpViewApp, MpAppLaunchOptions>;\n onShow: MpViewInitLife<MpViewApp, MpAppLaunchOptions>;\n onHide: MpViewLife<MpViewApp>;\n onError: MpViewLife<MpViewApp>;\n [prop: string]: any;\n}\nexport interface MpAlipayViewApp extends MpViewApp, MpAlipayViewAppSpec {}\nexport interface MpAlipayViewAppSpec extends MpViewAppSpec {\n onShareAppMessage: MpViewLife<MpAlipayViewApp>;\n}\n\nexport interface MpViewFactory {\n (spec: MpViewAppSpec | MpViewPageSpec | MpViewComponentSpec | any): void;\n}\nexport enum MpViewType {\n App = \"App\",\n Page = \"Page\",\n Component = \"Component\",\n}\nexport interface MpViewSpec {\n data: any;\n}\nexport interface MpViewComponetPropSpec {\n type: Function;\n default?: any;\n observer?: Function;\n}\nexport interface MpViewPageSpec extends MpViewSpec {\n [prop: string]: any;\n}\nexport type MpViewComponentLifes =\n | \"created\"\n | \"attached\"\n | \"ready\"\n | \"moved\"\n | \"detached\"\n | \"error\";\nexport type MpViewComponentPageLifes = \"show\" | \"hide\" | \"resize\";\nexport interface MpViewComponentSpec extends MpViewSpec {\n properties?: {\n [prop: string]: Function | MpViewComponetPropSpec;\n };\n lifetimes?: MkEnumMap<MpViewComponentLifes, Function | string>;\n pageLifetimes?: MkEnumMap<MpViewComponentPageLifes, Function | string>;\n methods: {\n [prop: string]: Function;\n };\n [prop: string]: any;\n}\nexport interface MpView {\n $mkSpec: MpViewSpec;\n $mkType: MpViewType;\n $mkKey: string;\n $mkKeyIsDefine?: string;\n $mkNativeSetData: MpSetDataHandler;\n $mkSetData: MkSetData;\n $mkSetDataIsBind?: boolean;\n $mkReadyData: any;\n data: any;\n setData: MpSetDataHandler;\n}\nexport interface MpWechatSelectOwnerComponent {\n (): void | MpView;\n}\nexport interface MpWechatView extends MpView {\n __wxExparserNodeId__: string;\n __wxWebviewId__: number;\n is: string;\n selectOwnerComponent: MpWechatSelectOwnerComponent;\n}\nexport interface MpWechatPageView extends MpWechatView {\n route: string;\n}\nexport interface MpTiktokView extends MpView {\n __webviewId__: number;\n __nodeId__: number;\n is: string;\n}\nexport interface MpComponentPropObserver {\n (this: MpView, oldValue: any, newVal: any): void;\n}\n\nexport interface MpComponentPropSpec {\n type: Function;\n default: any;\n observer: MpComponentPropObserver;\n}\n\nexport interface MpAlipayView extends MpView {\n $id: number;\n}\n\nexport interface MpAlipayViewPage extends MpAlipayView {\n $viewId: string;\n route: string;\n}\nexport interface MpAlipayViewComponent extends MpAlipayView {\n $page: MpAlipayViewPage;\n is: string;\n props: {\n [prop: string]: any;\n __tag: string;\n };\n}\nexport interface MpSmartViewPage extends MpView {\n route: string;\n}\nexport interface MpSmartViewComponent extends MpView {\n componentName: string;\n nodeId: string;\n pageinstance: MpSmartViewPage;\n is: string;\n}\nexport interface MpSetDataHandler {\n (data: any, callback?: Function): void;\n}\n","import { MkOmit, MkMap } from \"./util\";\nimport {\n FxNode,\n FxParseResult,\n FxWrong,\n FxLocation,\n FxNodeJSON,\n FxEventHandler,\n FxNodeAdapter,\n FxSerializeOptions,\n FxEventType,\n FxNodeType,\n} from \"forgiving-xml-parser\";\nimport { MpPlatform } from \"./platform\";\nexport interface MpViewSyntaxSpec {\n namespace: string;\n for: string;\n forItem: string;\n forIndex: string;\n key: string;\n if: string;\n elseIf: string;\n else: string;\n xmlFileSuffix?: string;\n xjsNodeName?: string;\n xjsFileSuffix?: string;\n xjsModuleAttrName?: string;\n xjsSrcAttrName?: string;\n forAndWhereAttrNeedBracket: boolean;\n importNodeName?: string;\n importSrcAttrName?: string;\n includeNodeName?: string;\n includeSrcAttrName?: string;\n}\n\n// export interface MkMpXmlParseRuleMatcher extends FxEventHandler {}\n// export interface MkMpXmlParseRuleHnalder extends FxEventHandler {}\n// export interface MkMpXmlParseRule {\n// target: FxEventType | FxNodeType | MkMpXmlParseRuleMatcher;\n// handler: MkMpXmlParseRuleHnalder;\n// }\nexport type MkPlatformNodeAdapterMap = {\n [prop in MpPlatform]?: FxNodeAdapter[];\n};\nexport interface MkMpXmlParseOptions {\n onEvent?: FxEventHandler;\n // rules?: MkMpXmlParseRule[];\n}\nexport interface MkMpXmlSerializeOptions extends FxSerializeOptions {}\nexport interface MkXmlContent {\n type: MpXmlContentType;\n value: string;\n locationInfo?: FxLocation;\n}\nexport interface MkXmlContentParseResult {\n contents: MkXmlContent[];\n leftStaticContents: MkXmlContent[];\n leftStaticContentsIsEmpty: boolean;\n rightStaticContents: MkXmlContent[];\n rightStaticContentsIsEmpty: boolean;\n betweenStaticContents: MkXmlContent[];\n dynamicContents: MkXmlContent[];\n}\nexport interface MpForAttrContent extends MkXmlContent {\n type: MpXmlContentType;\n value: string;\n featureList?: string;\n featureItem?: string;\n featureIndex?: string;\n featureKey?: string;\n}\nexport interface MkMpXmlParseContext {\n xjsModuleNames?: []; // 该页面引入的wxs/sjs...之类的模块名称\n}\nexport interface IMkMpXmlAttrParseAdapter {\n parse(\n attr: FxNodeJSON,\n parent?: FxNodeJSON | LikeFxParseContext,\n grandpa?: FxNodeJSON | LikeFxParseContext\n ): MkXmlNode;\n}\nexport interface IMkMpXmlContentParseAdapter {\n parse(\n content: string,\n node?: FxNodeJSON,\n parent?: FxNodeJSON | LikeFxParseContext,\n grandpa?: FxNodeJSON | LikeFxParseContext\n ): MkXmlContent[];\n}\nexport interface IMkMpXmlParseAdapter {\n attrAdapters: MkMap<IMkMpXmlAttrParseAdapter>;\n contentAdapter: IMkMpXmlContentParseAdapter;\n}\nexport enum MpXmlContentType {\n static = \"static\",\n dynamic = \"dynamic\",\n}\nexport interface MkXmlNodeJSON\n extends MkOmit<FxNodeJSON, \"attrs\" | \"children\"> {\n attrs?: MkXmlNodeJSON[];\n children?: MkXmlNodeJSON[];\n mpContents?: MpForAttrContent[] | MkXmlContent[];\n}\nexport interface LikeFxParseContext {\n nodes?: FxNode[] | FxNodeJSON[] | MkXmlNodeJSON[] | MkXmlNode[];\n}\nexport interface MkXmlNode\n extends MkOmit<MkXmlNodeJSON, \"attrs\" | \"children\" | \"parent\"> {\n attrs?: MkXmlNode[];\n children?: MkXmlNode[];\n mpContents?: MpForAttrContent[] | MkXmlContent[];\n parent?: MkXmlNode;\n // 前一个兄弟:只在非text和comment的node上存在,且Sibling本身也非text和comment\n previousSibling?: MkXmlNode;\n // 后一个兄弟:只在非text和comment的node上存在,且Sibling本身也非text和comment\n nextSibling?: MkXmlNode;\n}\n\nexport enum MkXmlParseMessagePosition {\n text = \"text\",\n attr = \"attr\",\n}\nexport interface MkXmlParseMessage extends FxWrong {\n // position: MkXmlParseMessagePosition;\n target?: FxNode | FxNodeJSON;\n}\n\nexport interface MkXmlParseResult extends MkOmit<FxParseResult, \"nodes\"> {\n nodes?: MkXmlNode[];\n}\n\nexport interface MkXmlParseResultBase {\n error?: FxWrong;\n nodes?: MkXmlNode[];\n}\n\nexport interface MkMpXmlParseAdapterFormater {\n parseAdapter?: IMkMpXmlParseAdapter;\n hasAttrAdapter: boolean;\n hasContentAdapter: boolean;\n}\nexport interface MkNodeSerializer {\n (\n nodes: FxNodeJSON[],\n handler: MkNodeSerializeHandler,\n parentNode?: FxNodeJSON\n ): string;\n}\nexport interface MkNodeSerializeHandler {\n (\n currentNode: MkXmlNodeJSON,\n brotherNodes: MkXmlNodeJSON[],\n rootNodes: MkXmlNodeJSON[],\n rootSerializer: MkNodeSerializer,\n parentNode: FxNodeJSON,\n adapter: FxNodeAdapter,\n serializeResult: string\n ): string;\n}\n","import { MpPlatform } from \"./platform\";\nimport { MkOmit, MkRequireAll } from \"./util\";\n\nexport type MkMpSDKVersion<\n N extends number = number,\n S extends string = `${N}.${N}.${N}`\n> = S;\n\nexport interface LikeMkMpSDKVersionSupport {\n supportVersion?: MkMpSDKVersion;\n}\nexport interface MkMpSDKVersionSupport\n extends MkRequireAll<LikeMkMpSDKVersionSupport> {}\n\n// xml绑定变量语法,如:{{xx}}\nexport interface LikeMkMpXmlDataBinding {\n // 左边界字符串\n leftBoundaryChar?: string;\n // 右边界字符串\n rightBoundaryChar?: string;\n // 左边界符距离内容可被允许包含的空白字符数量,小于0|undefined=允许左边界与内容之间出现空白字符且不限数量;0=不允许;大于0代表必须有,且数量一致\n leftBoundarySpace?: number;\n // 右边界符距离内容可被允许包含的空白字符数量,小于0|undefined=允许左边界与内容之间出现空白字符且不限数量;0=不允许;大于0代表必须有,且数量一致\n rightBoundarySpace?: number;\n}\nexport interface MkMpXmlDataBinding\n extends MkRequireAll<LikeMkMpXmlDataBinding> {}\n\n// 是否支持数据绑定\nexport interface MkMpXmlSupportDataBinding {\n // 是否支持变量绑定\n dataBinding?: MkMpXmlDataBinding;\n // 支持的变量绑定数量,0代表不支持,小于0代表支持无限个,大于0代表具体数量\n dataBindingCount?: number;\n}\nexport enum MkMpXmlAstContentType {\n static = \"static\",\n dataBinding = \"dataBinding\",\n}\nexport interface MkMpXmlAstContent {\n type: MkMpXmlAstContentType;\n value: string;\n}\n// xml ast 节点\nexport interface MkMpXmlAstNode {\n name: string;\n content?: string;\n mpContents?: MkMpXmlAstContent[];\n}\n// xml ast 属性\nexport interface MkMpXmlAstAttr extends MkMpXmlAstNode {}\n// xml ast 元素\nexport interface MkMpXmlAstElement extends MkMpXmlAstNode {\n attrs?: MkMpXmlAstAttr[];\n children?: MkMpXmlAstElement[];\n // 前一个兄弟:只在非text和comment的node上存在,且Sibling本身也非text和comment\n previousSibling?: MkMpXmlAstElement;\n // 后一个兄弟:只在非text和comment的node上存在,且Sibling本身也非text和comment\n nextSibling?: MkMpXmlAstElement;\n}\n\nexport interface MkMpXmlAstPreviousSiblingFinder {\n (node: MkMpXmlAstElement, siblings: MkMpXmlAstElement[]): MkMpXmlAstElement;\n}\n\n// xml 属性验证器\nexport interface MkMpXmlNodeValidater {\n (\n attr: MkMpXmlAstAttr, // 属性ast对象\n parent: MkMpXmlAstElement, // 属性的父节点ast对象\n grandpa?: MkMpXmlAstElement, // 属性的爷爷节点ast对象\n previousSiblingFinder?: MkMpXmlAstPreviousSiblingFinder // 查找前一个节点的函数\n ): boolean | MkMpXmlNodeValidateResult;\n}\nexport enum MkMpXmlNodeValidateResultLevel {\n success = \"success\",\n fail = \"fail\",\n warn = \"warn\",\n ignore = \"ignore\",\n}\nexport interface MkMpXmlNodeValidateResult {\n pass: boolean;\n level: MkMpXmlNodeValidateResultLevel;\n code: string;\n message: string;\n}\nexport enum MkMpXmlAttrContentType {\n string = \"string\",\n boolean = \"boolean\",\n number = \"number\",\n}\n// xml 属性 技术特性\nexport interface LikeMkMpXmlAttrSpec\n extends MkMpXmlSupportDataBinding,\n LikeMkMpSDKVersionSupport {\n // 内容必选?0|undefined=可有可没有,小于0=必须没有,1=必须有,但是可为空,大于1=必须有,且不为空(含任意字符串)\n requireContent?: number;\n // 是否必选?0|undefined=可有可没有,小于0=必须没有,大于0=必须有\n require?: number;\n // 该属性是否是事件绑定\n isEvent?: boolean;\n // 内容类型\n contentType?: MkMpXmlAttrContentType | MkMpXmlAttrContentType[];\n // 默认内容\n defaultContent?: any;\n validater?: MkMpXmlNodeValidater;\n}\n\nexport interface MkMpXmlAttrSpec\n extends MkOmit<\n MkRequireAll<LikeMkMpXmlAttrSpec>,\n \"defaultContent\" | \"validater\"\n > {\n defaultContent?: any;\n validater?: MkMpXmlNodeValidater;\n}\n\nexport interface MkMpXmlNodeSpecMap<T> {\n // 匹配所有目标节点\n _common?: T;\n // 指定的名称均匹配不上时,采用此特性,最后采用的特性将是_common&&_unclaimed\n _unclaimed?: T;\n // 按照名称匹配,最后的该名称对应的节点特定将是此属性与_common的合并体\n [p: string]: T;\n}\n\nexport interface LikeMkMpXmlElementSpec\n extends MkMpXmlSupportDataBinding,\n LikeMkMpSDKVersionSupport {\n // 节点关闭类型,0|undefined=自关闭或结束标签关闭均可以;小于0=只可以自关闭方式关闭;大于0=必须通过结束标签关闭\n closeType?: number;\n // 属性特性\n attrsSpec?: MkMpXmlNodeSpecMap<LikeMkMpXmlAttrSpec>;\n}\n// xml 节点 技术特性\nexport interface MkMpXmlElementSpec\n extends MkOmit<MkRequireAll<LikeMkMpXmlElementSpec>, \"attrsSpec\">,\n MkMpSDKVersionSupport {\n attrsSpec: MkMpXmlNodeSpecMap<MkMpXmlAttrSpec>;\n}\n// xml 节点对象\nexport interface MkMpXmlElement {\n id?: string;\n dataset?: {\n [p: string]: any;\n };\n}\n// xml 事件对象\nexport interface MkMpXmlBaseEvent<T = undefined> {\n type: string;\n timeStamp: number;\n target: MkMpXmlElement;\n currentTarget: MkMpXmlElement;\n detail?: T;\n}\n\n// xml 事件处理程序\nexport interface MkMpXmlEventHandler<D = undefined, T = MkMpXmlBaseEvent<D>> {\n (event: T);\n}\n\n// xml 技术特性\nexport interface LikeMkMpXmlSpec\n extends MkMpXmlNodeSpecMap<LikeMkMpXmlElementSpec> {}\nexport interface MkMpXmlSpec extends MkMpXmlNodeSpecMap<MkMpXmlElementSpec> {}\n\nexport interface MkMpPlatformSpec<T> {\n [MpPlatform.wechat]: T;\n [MpPlatform.alipay]: T;\n [MpPlatform.smart]: T;\n [MpPlatform.tiktok]: T;\n}\n"],"names":["MpRequestOptionsMethod","MpPlatform","MpViewType","MpXmlContentType","MkXmlParseMessagePosition","MkMpXmlAstContentType","MkMpXmlNodeValidateResultLevel","MkMpXmlAttrContentType"],"mappings":";;;;;;;;IAgBYA;;AAAZ,WAAYA;AACRA,EAAAA,iCAAA,YAAA;AACAA,EAAAA,6BAAA,QAAA;AACAA,EAAAA,8BAAA,SAAA;AACAA,EAAAA,8BAAA,SAAA;AACAA,EAAAA,6BAAA,QAAA;AACAA,EAAAA,gCAAA,WAAA;AACAA,EAAAA,+BAAA,UAAA;AACAA,EAAAA,iCAAA,YAAA;AACH,CATD,EAAYA,sBAAsB,KAAtBA,sBAAsB,KAAA,CAAlC;;IChBYC;;AAAZ,WAAYA;AACRA,EAAAA,oBAAA,WAAA;AACAA,EAAAA,oBAAA,WAAA;AACAA,EAAAA,mBAAA,UAAA;AACAA,EAAAA,oBAAA,WAAA;AACAA,EAAAA,qBAAA,YAAA;AACH,CAND,EAAYA,UAAU,KAAVA,UAAU,KAAA,CAAtB;;IC6BYC;;AAAZ,WAAYA;AACRA,EAAAA,iBAAA,QAAA;AACAA,EAAAA,kBAAA,SAAA;AACAA,EAAAA,uBAAA,cAAA;AACH,CAJD,EAAYA,UAAU,KAAVA,UAAU,KAAA,CAAtB;;ICgEYC;;AAAZ,WAAYA;AACRA,EAAAA,0BAAA,WAAA;AACAA,EAAAA,2BAAA,YAAA;AACH,CAHD,EAAYA,gBAAgB,KAAhBA,gBAAgB,KAAA,CAA5B;;IAyBYC;;AAAZ,WAAYA;AACRA,EAAAA,iCAAA,SAAA;AACAA,EAAAA,iCAAA,SAAA;AACH,CAHD,EAAYA,yBAAyB,KAAzBA,yBAAyB,KAAA,CAArC;;ICnFYC;;AAAZ,WAAYA;AACRA,EAAAA,+BAAA,WAAA;AACAA,EAAAA,oCAAA,gBAAA;AACH,CAHD,EAAYA,qBAAqB,KAArBA,qBAAqB,KAAA,CAAjC;;IAuCYC;;AAAZ,WAAYA;AACRA,EAAAA,yCAAA,YAAA;AACAA,EAAAA,sCAAA,SAAA;AACAA,EAAAA,sCAAA,SAAA;AACAA,EAAAA,wCAAA,WAAA;AACH,CALD,EAAYA,8BAA8B,KAA9BA,8BAA8B,KAAA,CAA1C;;IAYYC;;AAAZ,WAAYA;AACRA,EAAAA,gCAAA,WAAA;AACAA,EAAAA,iCAAA,YAAA;AACAA,EAAAA,gCAAA,WAAA;AACH,CAJD,EAAYA,sBAAsB,KAAtBA,sBAAsB,KAAA,CAAlC;;;;"} |
+18
-18
| /*! | ||
| * MpKit v1.0.12 | ||
| * MpKit v1.0.15 | ||
| * (c) 2020-2021 imingyu<mingyuhisoft@163.com> | ||
@@ -8,6 +8,6 @@ * Released under the MIT License. | ||
| (function (global, factory) { | ||
| typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) : | ||
| typeof define === 'function' && define.amd ? define(['exports'], factory) : | ||
| (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.MpKitTypes = {})); | ||
| }(this, (function (exports) { 'use strict'; | ||
| typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('forgiving-xml-parser')) : | ||
| typeof define === 'function' && define.amd ? define(['exports', 'forgiving-xml-parser'], factory) : | ||
| (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.MpKitTypes = {}, global.forgivingXmlParser)); | ||
| }(this, (function (exports, forgivingXmlParser) { 'use strict'; | ||
@@ -39,15 +39,2 @@ (function (MpRequestOptionsMethod) { | ||
| (function (MpWhereType) { | ||
| MpWhereType["if"] = "if"; | ||
| MpWhereType["elseif"] = "elseif"; | ||
| MpWhereType["else"] = "else"; | ||
| })(exports.MpWhereType || (exports.MpWhereType = {})); | ||
| (function (MpEachType) { | ||
| MpEachType["key"] = "key"; | ||
| MpEachType["for"] = "for"; | ||
| MpEachType["forItem"] = "forItem"; | ||
| MpEachType["forIndex"] = "forIndex"; | ||
| })(exports.MpEachType || (exports.MpEachType = {})); | ||
| (function (MpXmlContentType) { | ||
@@ -81,2 +68,15 @@ MpXmlContentType["static"] = "static"; | ||
| Object.defineProperty(exports, 'FxNodeCloseType', { | ||
| enumerable: true, | ||
| get: function () { | ||
| return forgivingXmlParser.FxNodeCloseType; | ||
| } | ||
| }); | ||
| Object.defineProperty(exports, 'FxNodeType', { | ||
| enumerable: true, | ||
| get: function () { | ||
| return forgivingXmlParser.FxNodeType; | ||
| } | ||
| }); | ||
| Object.defineProperty(exports, '__esModule', { value: true }); | ||
@@ -83,0 +83,0 @@ |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"index.umd.js","sources":["../api.ts","../platform.ts","../view.ts","../mpxml-parser.ts","../mpspec.ts"],"sourcesContent":["export interface MpApiCallback {\n (res?: any);\n}\nexport interface MpApiMethodArg {\n success: MpApiCallback;\n fail: MpApiCallback;\n complete: MpApiCallback;\n [prop: string]: any;\n}\nexport interface MpApiMethod {\n (options?: MpApiMethodArg | any): any;\n}\n\nexport interface MpApiVar {\n [prop: string]: MpApiMethod;\n}\nexport enum MpRequestOptionsMethod {\n OPTIONS = \"OPTIONS\",\n GET = \"GET\",\n POST = \"POST\",\n HEAD = \"HEAD\",\n PUT = \"PUT\",\n DELETE = \"DELETE\",\n TRACE = \"TRACE\",\n CONNECT = \"CONNECT\",\n}\nexport interface MpRequestOptions extends MpApiMethodArg {\n url: string;\n method: MpRequestOptionsMethod;\n headers?: {\n [prop: string]: string | number;\n };\n}\nexport interface MpRequestTask {\n abort: Function;\n}\nexport interface MpApiRequestMethod {\n (options: MpRequestOptions): MpRequestTask;\n}\n","export enum MpPlatform {\n wechat = \"wechat\",\n alipay = \"alipay\",\n smart = \"smart\",\n tiktok = \"tiktok\",\n unknown = \"unknown\",\n}\n","import { MkEnumMap } from \"./util\";\nimport { MkSetData } from \"./set-data\";\nexport interface MpAppLaunchOptions {}\nexport interface MpViewInitLife<V, T> {\n (this: V, options: T): void;\n}\nexport interface MpViewLife<V> {\n (this: V): void;\n}\nexport type MpViewInitLifes = \"onLaunch\" | \"onLoad\" | \"created\" | \"onInit\";\nexport type MpViewMountLifes = \"onShow\" | \"attached\" | \"didMount\";\n// 小程序App实例\nexport interface MpViewApp extends MpViewAppSpec, MpView {}\n// 小程序App函数接收的配置对象\nexport interface MpViewAppSpec {\n onLaunch: MpViewInitLife<MpViewApp, MpAppLaunchOptions>;\n onShow: MpViewInitLife<MpViewApp, MpAppLaunchOptions>;\n onHide: MpViewLife<MpViewApp>;\n onError: MpViewLife<MpViewApp>;\n [prop: string]: any;\n}\nexport interface MpAlipayViewApp extends MpViewApp, MpAlipayViewAppSpec {}\nexport interface MpAlipayViewAppSpec extends MpViewAppSpec {\n onShareAppMessage: MpViewLife<MpAlipayViewApp>;\n}\n\nexport interface MpViewFactory {\n (spec: MpViewAppSpec | MpViewPageSpec | MpViewComponentSpec | any): void;\n}\nexport enum MpViewType {\n App = \"App\",\n Page = \"Page\",\n Component = \"Component\",\n}\nexport interface MpViewSpec {\n data: any;\n}\nexport interface MpViewComponetPropSpec {\n type: Function;\n default?: any;\n observer?: Function;\n}\nexport interface MpViewPageSpec extends MpViewSpec {\n [prop: string]: any;\n}\nexport type MpViewComponentLifes =\n | \"created\"\n | \"attached\"\n | \"ready\"\n | \"moved\"\n | \"detached\"\n | \"error\";\nexport type MpViewComponentPageLifes = \"show\" | \"hide\" | \"resize\";\nexport interface MpViewComponentSpec extends MpViewSpec {\n properties?: {\n [prop: string]: Function | MpViewComponetPropSpec;\n };\n lifetimes?: MkEnumMap<MpViewComponentLifes, Function | string>;\n pageLifetimes?: MkEnumMap<MpViewComponentPageLifes, Function | string>;\n methods: {\n [prop: string]: Function;\n };\n [prop: string]: any;\n}\nexport interface MpView {\n $mkSpec: MpViewSpec;\n $mkType: MpViewType;\n $mkKey: string;\n $mkKeyIsDefine?: string;\n $mkNativeSetData: MpSetDataHandler;\n $mkSetData: MkSetData;\n $mkSetDataIsBind?: boolean;\n $mkReadyData: any;\n data: any;\n setData: MpSetDataHandler;\n}\nexport interface MpWechatSelectOwnerComponent {\n (): void | MpView;\n}\nexport interface MpWechatView extends MpView {\n __wxExparserNodeId__: string;\n __wxWebviewId__: number;\n is: string;\n selectOwnerComponent: MpWechatSelectOwnerComponent;\n}\nexport interface MpWechatPageView extends MpWechatView {\n route: string;\n}\nexport interface MpTiktokView extends MpView {\n __webviewId__: number;\n __nodeId__: number;\n is: string;\n}\nexport interface MpComponentPropObserver {\n (this: MpView, oldValue: any, newVal: any): void;\n}\n\nexport interface MpComponentPropSpec {\n type: Function;\n default: any;\n observer: MpComponentPropObserver;\n}\n\nexport interface MpAlipayView extends MpView {\n $id: number;\n}\n\nexport interface MpAlipayViewPage extends MpAlipayView {\n $viewId: string;\n route: string;\n}\nexport interface MpAlipayViewComponent extends MpAlipayView {\n $page: MpAlipayViewPage;\n is: string;\n props: {\n [prop: string]: any;\n __tag: string;\n };\n}\nexport interface MpSmartViewPage extends MpView {\n route: string;\n}\nexport interface MpSmartViewComponent extends MpView {\n componentName: string;\n nodeId: string;\n pageinstance: MpSmartViewPage;\n is: string;\n}\nexport interface MpSetDataHandler {\n (data: any, callback?: Function): void;\n}\n","import { MkOmit, MkMap, MkEnumMap } from \"./util\";\nimport {\n FxNode,\n FxParseResult,\n FxWrong,\n FxLocation,\n FxNodeJSON,\n FxEventHandler,\n FxNodeAdapter,\n} from \"forgiving-xml-parser\";\nimport { MpPlatform } from \"./platform\";\nexport interface MpSpec {\n [prop: string]: MkEnumMap<MpPlatform, MpViewSyntaxSpec>;\n}\nexport interface MpViewSyntaxSpec {\n namespace: string;\n for: string;\n forItem: string;\n forIndex: string;\n key: string;\n if: string;\n elseif: string;\n else: string;\n forAndWhereAttrNeedBracket: boolean;\n}\nexport enum MpWhereType {\n if = \"if\",\n elseif = \"elseif\",\n else = \"else\",\n}\nexport enum MpEachType {\n key = \"key\",\n for = \"for\",\n forItem = \"forItem\",\n forIndex = \"forIndex\",\n}\nexport interface MkMpXmlParseOptions {\n onEvent?: FxEventHandler;\n}\nexport interface MkXmlContent {\n type: MpXmlContentType;\n value: string;\n locationInfo?: FxLocation;\n}\nexport interface MkXmlContentParseResult {\n contents: MkXmlContent[];\n leftStaticContents: MkXmlContent[];\n leftStaticContentsIsEmpty: boolean;\n rightStaticContents: MkXmlContent[];\n rightStaticContentsIsEmpty: boolean;\n betweenStaticContents: MkXmlContent[];\n dynamicContents: MkXmlContent[];\n}\nexport interface MpForAttrContent extends MkXmlContent {\n type: MpXmlContentType;\n value: string;\n featureList?: string;\n featureItem?: string;\n featureIndex?: string;\n featureKey?: string;\n}\nexport interface IMkMpXmlAttrParseAdapter {\n parse(\n attr: FxNodeJSON,\n parent?: FxNodeJSON | LikeFxParseContext,\n grandpa?: FxNodeJSON | LikeFxParseContext\n ): MkXmlNode;\n}\nexport interface IMkMpXmlContentParseAdapter {\n parse(\n content: string,\n node?: FxNodeJSON,\n parent?: FxNodeJSON | LikeFxParseContext,\n grandpa?: FxNodeJSON | LikeFxParseContext\n ): MkXmlContent[];\n}\nexport interface IMkMpXmlParseAdapter {\n attrAdapters: MkMap<IMkMpXmlAttrParseAdapter>;\n contentAdapter: IMkMpXmlContentParseAdapter;\n}\nexport enum MpXmlContentType {\n static = \"static\",\n dynamic = \"dynamic\",\n}\nexport interface MkXmlNodeJSON\n extends MkOmit<FxNodeJSON, \"attrs\" | \"children\"> {\n attrs?: MkXmlNodeJSON[];\n children?: MkXmlNodeJSON[];\n mpContents?: MpForAttrContent[] | MkXmlContent[];\n special?: MpWhereType | MpEachType;\n}\nexport interface LikeFxParseContext {\n nodes?: FxNode[] | FxNodeJSON[] | MkXmlNodeJSON[] | MkXmlNode[];\n}\nexport interface MkXmlNode\n extends MkOmit<MkXmlNodeJSON, \"attrs\" | \"children\" | \"parent\"> {\n attrs?: MkXmlNode[];\n children?: MkXmlNode[];\n mpContents?: MpForAttrContent[] | MkXmlContent[];\n parent?: MkXmlNode;\n // 前一个兄弟:只在非text和comment的node上存在,且Sibling本身也非text和comment\n previousSibling?: MkXmlNode;\n // 后一个兄弟:只在非text和comment的node上存在,且Sibling本身也非text和comment\n nextSibling?: MkXmlNode;\n}\n\nexport enum MkXmlParseMessagePosition {\n text = \"text\",\n attr = \"attr\",\n}\nexport interface MkXmlParseMessage extends FxWrong {\n // position: MkXmlParseMessagePosition;\n target?: FxNode | FxNodeJSON;\n}\n\nexport interface MkXmlParseResult extends MkOmit<FxParseResult, \"nodes\"> {\n nodes?: MkXmlNode[];\n}\n\nexport interface MkXmlParseResultBase {\n error?: FxWrong;\n nodes?: MkXmlNode[];\n}\n\nexport interface MkMpXmlParseAdapterFormater {\n parseAdapter?: IMkMpXmlParseAdapter;\n hasAttrAdapter: boolean;\n hasContentAdapter: boolean;\n}\nexport interface MkNodeSerializer {\n (\n nodes: FxNodeJSON[],\n handler: MkNodeSerializeHandler,\n parentNode?: FxNodeJSON\n ): string;\n}\nexport interface MkNodeSerializeHandler {\n (\n currentNode: MkXmlNodeJSON,\n brotherNodes: MkXmlNodeJSON[],\n rootNodes: MkXmlNodeJSON[],\n rootSerializer: MkNodeSerializer,\n parentNode: FxNodeJSON,\n adapter: FxNodeAdapter,\n serializeResult: string\n ): string;\n}\n","import { MpPlatform } from \"./platform\";\nimport { MkOmit, MkRequireAll } from \"./util\";\n\nexport type MkMpSDKVersion<\n N extends number = number,\n S extends string = `${N}.${N}.${N}`\n> = S;\n\nexport interface LikeMkMpSDKVersionSupport {\n supportVersion?: MkMpSDKVersion;\n}\nexport interface MkMpSDKVersionSupport\n extends MkRequireAll<LikeMkMpSDKVersionSupport> {}\n\n// xml绑定变量语法,如:{{xx}}\nexport interface LikeMkMpXmlDataBinding {\n // 左边界字符串\n leftBoundaryChar?: string;\n // 右边界字符串\n rightBoundaryChar?: string;\n // 左边界符距离内容可被允许包含的空白字符数量,小于0|undefined=允许左边界与内容之间出现空白字符且不限数量;0=不允许;大于0代表必须有,且数量一致\n leftBoundarySpace?: number;\n // 右边界符距离内容可被允许包含的空白字符数量,小于0|undefined=允许左边界与内容之间出现空白字符且不限数量;0=不允许;大于0代表必须有,且数量一致\n rightBoundarySpace?: number;\n}\nexport interface MkMpXmlDataBinding\n extends MkRequireAll<LikeMkMpXmlDataBinding> {}\n\n// 是否支持数据绑定\nexport interface MkMpXmlSupportDataBinding {\n // 是否支持变量绑定\n dataBinding?: MkMpXmlDataBinding;\n // 支持的变量绑定数量,0代表不支持,小于0代表支持无限个,大于0代表具体数量\n dataBindingCount?: number;\n}\nexport enum MkMpXmlAstContentType {\n static = \"static\",\n dataBinding = \"dataBinding\",\n}\nexport interface MkMpXmlAstContent {\n type: MkMpXmlAstContentType;\n value: string;\n}\n// xml ast 节点\nexport interface MkMpXmlAstNode {\n name: string;\n content?: string;\n mpContents?: MkMpXmlAstContent[];\n}\n// xml ast 属性\nexport interface MkMpXmlAstAttr extends MkMpXmlAstNode {}\n// xml ast 元素\nexport interface MkMpXmlAstElement extends MkMpXmlAstNode {\n attrs?: MkMpXmlAstAttr[];\n children?: MkMpXmlAstElement[];\n // 前一个兄弟:只在非text和comment的node上存在,且Sibling本身也非text和comment\n previousSibling?: MkMpXmlAstElement;\n // 后一个兄弟:只在非text和comment的node上存在,且Sibling本身也非text和comment\n nextSibling?: MkMpXmlAstElement;\n}\n\nexport interface MkMpXmlAstPreviousSiblingFinder {\n (node: MkMpXmlAstElement, siblings: MkMpXmlAstElement[]): MkMpXmlAstElement;\n}\n\n// xml 属性验证器\nexport interface MkMpXmlNodeValidater {\n (\n attr: MkMpXmlAstAttr, // 属性ast对象\n parent: MkMpXmlAstElement, // 属性的父节点ast对象\n grandpa?: MkMpXmlAstElement, // 属性的爷爷节点ast对象\n previousSiblingFinder?: MkMpXmlAstPreviousSiblingFinder // 查找前一个节点的函数\n ): boolean | MkMpXmlNodeValidateResult;\n}\nexport enum MkMpXmlNodeValidateResultLevel {\n success = \"success\",\n fail = \"fail\",\n warn = \"warn\",\n ignore = \"ignore\",\n}\nexport interface MkMpXmlNodeValidateResult {\n pass: boolean;\n level: MkMpXmlNodeValidateResultLevel;\n code: string;\n message: string;\n}\nexport enum MkMpXmlAttrContentType {\n string = \"string\",\n boolean = \"boolean\",\n number = \"number\",\n}\n// xml 属性 技术特性\nexport interface LikeMkMpXmlAttrSpec\n extends MkMpXmlSupportDataBinding,\n LikeMkMpSDKVersionSupport {\n // 内容必选?0|undefined=可有可没有,小于0=必须没有,1=必须有,但是可为空,大于1=必须有,且不为空(含任意字符串)\n requireContent?: number;\n // 是否必选?0|undefined=可有可没有,小于0=必须没有,大于0=必须有\n require?: number;\n // 该属性是否是事件绑定\n isEvent?: boolean;\n // 内容类型\n contentType?: MkMpXmlAttrContentType | MkMpXmlAttrContentType[];\n // 默认内容\n defaultContent?: any;\n validater?: MkMpXmlNodeValidater;\n}\n\nexport interface MkMpXmlAttrSpec\n extends MkOmit<\n MkRequireAll<LikeMkMpXmlAttrSpec>,\n \"defaultContent\" | \"validater\"\n > {\n defaultContent?: any;\n validater?: MkMpXmlNodeValidater;\n}\n\nexport interface MkMpXmlNodeSpecMap<T> {\n // 匹配所有目标节点\n _common?: T;\n // 指定的名称均匹配不上时,采用此特性,最后采用的特性将是_common&&_unclaimed\n _unclaimed?: T;\n // 按照名称匹配,最后的该名称对应的节点特定将是此属性与_common的合并体\n [p: string]: T;\n}\n\nexport interface LikeMkMpXmlElementSpec\n extends MkMpXmlSupportDataBinding,\n LikeMkMpSDKVersionSupport {\n // 节点关闭类型,0|undefined=自关闭或结束标签关闭均可以;小于0=只可以自关闭方式关闭;大于0=必须通过结束标签关闭\n closeType?: number;\n // 属性特性\n attrsSpec?: MkMpXmlNodeSpecMap<LikeMkMpXmlAttrSpec>;\n}\n// xml 节点 技术特性\nexport interface MkMpXmlElementSpec\n extends MkOmit<MkRequireAll<LikeMkMpXmlElementSpec>, \"attrsSpec\">,\n MkMpSDKVersionSupport {\n attrsSpec: MkMpXmlNodeSpecMap<MkMpXmlAttrSpec>;\n}\n// xml 节点对象\nexport interface MkMpXmlElement {\n id?: string;\n dataset?: {\n [p: string]: any;\n };\n}\n// xml 事件对象\nexport interface MkMpXmlBaseEvent<T = undefined> {\n type: string;\n timeStamp: number;\n target: MkMpXmlElement;\n currentTarget: MkMpXmlElement;\n detail?: T;\n}\n\n// xml 事件处理程序\nexport interface MkMpXmlEventHandler<D = undefined, T = MkMpXmlBaseEvent<D>> {\n (event: T);\n}\n\n// xml 技术特性\nexport interface LikeMkMpXmlSpec\n extends MkMpXmlNodeSpecMap<LikeMkMpXmlElementSpec> {}\nexport interface MkMpXmlSpec extends MkMpXmlNodeSpecMap<MkMpXmlElementSpec> {}\n\nexport interface MkMpPlatformSpec<T> {\n [MpPlatform.wechat]: T;\n [MpPlatform.alipay]: T;\n [MpPlatform.smart]: T;\n [MpPlatform.tiktok]: T;\n}\n"],"names":["MpRequestOptionsMethod","MpPlatform","MpViewType","MpWhereType","MpEachType","MpXmlContentType","MkXmlParseMessagePosition","MkMpXmlAstContentType","MkMpXmlNodeValidateResultLevel","MkMpXmlAttrContentType"],"mappings":";;;;;;;;;;;;IAgBA,WAAYA;IACRA,EAAAA,iCAAA,YAAA;IACAA,EAAAA,6BAAA,QAAA;IACAA,EAAAA,8BAAA,SAAA;IACAA,EAAAA,8BAAA,SAAA;IACAA,EAAAA,6BAAA,QAAA;IACAA,EAAAA,gCAAA,WAAA;IACAA,EAAAA,+BAAA,UAAA;IACAA,EAAAA,iCAAA,YAAA;IACH,CATD,EAAYA,8BAAsB,KAAtBA,8BAAsB,KAAA,CAAlC;;IChBA,WAAYC;IACRA,EAAAA,oBAAA,WAAA;IACAA,EAAAA,oBAAA,WAAA;IACAA,EAAAA,mBAAA,UAAA;IACAA,EAAAA,oBAAA,WAAA;IACAA,EAAAA,qBAAA,YAAA;IACH,CAND,EAAYA,kBAAU,KAAVA,kBAAU,KAAA,CAAtB;;IC6BA,WAAYC;IACRA,EAAAA,iBAAA,QAAA;IACAA,EAAAA,kBAAA,SAAA;IACAA,EAAAA,uBAAA,cAAA;IACH,CAJD,EAAYA,kBAAU,KAAVA,kBAAU,KAAA,CAAtB;;ICJA,WAAYC;IACRA,EAAAA,iBAAA,OAAA;IACAA,EAAAA,qBAAA,WAAA;IACAA,EAAAA,mBAAA,SAAA;IACH,CAJD,EAAYA,mBAAW,KAAXA,mBAAW,KAAA,CAAvB;;IAKA,WAAYC;IACRA,EAAAA,iBAAA,QAAA;IACAA,EAAAA,iBAAA,QAAA;IACAA,EAAAA,qBAAA,YAAA;IACAA,EAAAA,sBAAA,aAAA;IACH,CALD,EAAYA,kBAAU,KAAVA,kBAAU,KAAA,CAAtB;;IAkDA,WAAYC;IACRA,EAAAA,0BAAA,WAAA;IACAA,EAAAA,2BAAA,YAAA;IACH,CAHD,EAAYA,wBAAgB,KAAhBA,wBAAgB,KAAA,CAA5B;;IA0BA,WAAYC;IACRA,EAAAA,iCAAA,SAAA;IACAA,EAAAA,iCAAA,SAAA;IACH,CAHD,EAAYA,iCAAyB,KAAzBA,iCAAyB,KAAA,CAArC;;ICvEA,WAAYC;IACRA,EAAAA,+BAAA,WAAA;IACAA,EAAAA,oCAAA,gBAAA;IACH,CAHD,EAAYA,6BAAqB,KAArBA,6BAAqB,KAAA,CAAjC;;IAuCA,WAAYC;IACRA,EAAAA,yCAAA,YAAA;IACAA,EAAAA,sCAAA,SAAA;IACAA,EAAAA,sCAAA,SAAA;IACAA,EAAAA,wCAAA,WAAA;IACH,CALD,EAAYA,sCAA8B,KAA9BA,sCAA8B,KAAA,CAA1C;;IAYA,WAAYC;IACRA,EAAAA,gCAAA,WAAA;IACAA,EAAAA,iCAAA,YAAA;IACAA,EAAAA,gCAAA,WAAA;IACH,CAJD,EAAYA,8BAAsB,KAAtBA,8BAAsB,KAAA,CAAlC;;;;;;;;"} | ||
| {"version":3,"file":"index.umd.js","sources":["../api.ts","../platform.ts","../view.ts","../mpxml-parser.ts","../mpspec.ts"],"sourcesContent":["export interface MpApiCallback {\n (res?: any);\n}\nexport interface MpApiMethodArg {\n success: MpApiCallback;\n fail: MpApiCallback;\n complete: MpApiCallback;\n [prop: string]: any;\n}\nexport interface MpApiMethod {\n (options?: MpApiMethodArg | any): any;\n}\n\nexport interface MpApiVar {\n [prop: string]: MpApiMethod;\n}\nexport enum MpRequestOptionsMethod {\n OPTIONS = \"OPTIONS\",\n GET = \"GET\",\n POST = \"POST\",\n HEAD = \"HEAD\",\n PUT = \"PUT\",\n DELETE = \"DELETE\",\n TRACE = \"TRACE\",\n CONNECT = \"CONNECT\",\n}\nexport interface MpRequestOptions extends MpApiMethodArg {\n url: string;\n method: MpRequestOptionsMethod;\n headers?: {\n [prop: string]: string | number;\n };\n}\nexport interface MpRequestTask {\n abort: Function;\n}\nexport interface MpApiRequestMethod {\n (options: MpRequestOptions): MpRequestTask;\n}\n","export enum MpPlatform {\n wechat = \"wechat\",\n alipay = \"alipay\",\n smart = \"smart\",\n tiktok = \"tiktok\",\n unknown = \"unknown\",\n}\n","import { MkEnumMap } from \"./util\";\nimport { MkSetData } from \"./set-data\";\nexport interface MpAppLaunchOptions {}\nexport interface MpViewInitLife<V, T> {\n (this: V, options: T): void;\n}\nexport interface MpViewLife<V> {\n (this: V): void;\n}\nexport type MpViewInitLifes = \"onLaunch\" | \"onLoad\" | \"created\" | \"onInit\";\nexport type MpViewMountLifes = \"onShow\" | \"attached\" | \"didMount\";\n// 小程序App实例\nexport interface MpViewApp extends MpViewAppSpec, MpView {}\n// 小程序App函数接收的配置对象\nexport interface MpViewAppSpec {\n onLaunch: MpViewInitLife<MpViewApp, MpAppLaunchOptions>;\n onShow: MpViewInitLife<MpViewApp, MpAppLaunchOptions>;\n onHide: MpViewLife<MpViewApp>;\n onError: MpViewLife<MpViewApp>;\n [prop: string]: any;\n}\nexport interface MpAlipayViewApp extends MpViewApp, MpAlipayViewAppSpec {}\nexport interface MpAlipayViewAppSpec extends MpViewAppSpec {\n onShareAppMessage: MpViewLife<MpAlipayViewApp>;\n}\n\nexport interface MpViewFactory {\n (spec: MpViewAppSpec | MpViewPageSpec | MpViewComponentSpec | any): void;\n}\nexport enum MpViewType {\n App = \"App\",\n Page = \"Page\",\n Component = \"Component\",\n}\nexport interface MpViewSpec {\n data: any;\n}\nexport interface MpViewComponetPropSpec {\n type: Function;\n default?: any;\n observer?: Function;\n}\nexport interface MpViewPageSpec extends MpViewSpec {\n [prop: string]: any;\n}\nexport type MpViewComponentLifes =\n | \"created\"\n | \"attached\"\n | \"ready\"\n | \"moved\"\n | \"detached\"\n | \"error\";\nexport type MpViewComponentPageLifes = \"show\" | \"hide\" | \"resize\";\nexport interface MpViewComponentSpec extends MpViewSpec {\n properties?: {\n [prop: string]: Function | MpViewComponetPropSpec;\n };\n lifetimes?: MkEnumMap<MpViewComponentLifes, Function | string>;\n pageLifetimes?: MkEnumMap<MpViewComponentPageLifes, Function | string>;\n methods: {\n [prop: string]: Function;\n };\n [prop: string]: any;\n}\nexport interface MpView {\n $mkSpec: MpViewSpec;\n $mkType: MpViewType;\n $mkKey: string;\n $mkKeyIsDefine?: string;\n $mkNativeSetData: MpSetDataHandler;\n $mkSetData: MkSetData;\n $mkSetDataIsBind?: boolean;\n $mkReadyData: any;\n data: any;\n setData: MpSetDataHandler;\n}\nexport interface MpWechatSelectOwnerComponent {\n (): void | MpView;\n}\nexport interface MpWechatView extends MpView {\n __wxExparserNodeId__: string;\n __wxWebviewId__: number;\n is: string;\n selectOwnerComponent: MpWechatSelectOwnerComponent;\n}\nexport interface MpWechatPageView extends MpWechatView {\n route: string;\n}\nexport interface MpTiktokView extends MpView {\n __webviewId__: number;\n __nodeId__: number;\n is: string;\n}\nexport interface MpComponentPropObserver {\n (this: MpView, oldValue: any, newVal: any): void;\n}\n\nexport interface MpComponentPropSpec {\n type: Function;\n default: any;\n observer: MpComponentPropObserver;\n}\n\nexport interface MpAlipayView extends MpView {\n $id: number;\n}\n\nexport interface MpAlipayViewPage extends MpAlipayView {\n $viewId: string;\n route: string;\n}\nexport interface MpAlipayViewComponent extends MpAlipayView {\n $page: MpAlipayViewPage;\n is: string;\n props: {\n [prop: string]: any;\n __tag: string;\n };\n}\nexport interface MpSmartViewPage extends MpView {\n route: string;\n}\nexport interface MpSmartViewComponent extends MpView {\n componentName: string;\n nodeId: string;\n pageinstance: MpSmartViewPage;\n is: string;\n}\nexport interface MpSetDataHandler {\n (data: any, callback?: Function): void;\n}\n","import { MkOmit, MkMap } from \"./util\";\nimport {\n FxNode,\n FxParseResult,\n FxWrong,\n FxLocation,\n FxNodeJSON,\n FxEventHandler,\n FxNodeAdapter,\n FxSerializeOptions,\n FxEventType,\n FxNodeType,\n} from \"forgiving-xml-parser\";\nimport { MpPlatform } from \"./platform\";\nexport interface MpViewSyntaxSpec {\n namespace: string;\n for: string;\n forItem: string;\n forIndex: string;\n key: string;\n if: string;\n elseIf: string;\n else: string;\n xmlFileSuffix?: string;\n xjsNodeName?: string;\n xjsFileSuffix?: string;\n xjsModuleAttrName?: string;\n xjsSrcAttrName?: string;\n forAndWhereAttrNeedBracket: boolean;\n importNodeName?: string;\n importSrcAttrName?: string;\n includeNodeName?: string;\n includeSrcAttrName?: string;\n}\n\n// export interface MkMpXmlParseRuleMatcher extends FxEventHandler {}\n// export interface MkMpXmlParseRuleHnalder extends FxEventHandler {}\n// export interface MkMpXmlParseRule {\n// target: FxEventType | FxNodeType | MkMpXmlParseRuleMatcher;\n// handler: MkMpXmlParseRuleHnalder;\n// }\nexport type MkPlatformNodeAdapterMap = {\n [prop in MpPlatform]?: FxNodeAdapter[];\n};\nexport interface MkMpXmlParseOptions {\n onEvent?: FxEventHandler;\n // rules?: MkMpXmlParseRule[];\n}\nexport interface MkMpXmlSerializeOptions extends FxSerializeOptions {}\nexport interface MkXmlContent {\n type: MpXmlContentType;\n value: string;\n locationInfo?: FxLocation;\n}\nexport interface MkXmlContentParseResult {\n contents: MkXmlContent[];\n leftStaticContents: MkXmlContent[];\n leftStaticContentsIsEmpty: boolean;\n rightStaticContents: MkXmlContent[];\n rightStaticContentsIsEmpty: boolean;\n betweenStaticContents: MkXmlContent[];\n dynamicContents: MkXmlContent[];\n}\nexport interface MpForAttrContent extends MkXmlContent {\n type: MpXmlContentType;\n value: string;\n featureList?: string;\n featureItem?: string;\n featureIndex?: string;\n featureKey?: string;\n}\nexport interface MkMpXmlParseContext {\n xjsModuleNames?: []; // 该页面引入的wxs/sjs...之类的模块名称\n}\nexport interface IMkMpXmlAttrParseAdapter {\n parse(\n attr: FxNodeJSON,\n parent?: FxNodeJSON | LikeFxParseContext,\n grandpa?: FxNodeJSON | LikeFxParseContext\n ): MkXmlNode;\n}\nexport interface IMkMpXmlContentParseAdapter {\n parse(\n content: string,\n node?: FxNodeJSON,\n parent?: FxNodeJSON | LikeFxParseContext,\n grandpa?: FxNodeJSON | LikeFxParseContext\n ): MkXmlContent[];\n}\nexport interface IMkMpXmlParseAdapter {\n attrAdapters: MkMap<IMkMpXmlAttrParseAdapter>;\n contentAdapter: IMkMpXmlContentParseAdapter;\n}\nexport enum MpXmlContentType {\n static = \"static\",\n dynamic = \"dynamic\",\n}\nexport interface MkXmlNodeJSON\n extends MkOmit<FxNodeJSON, \"attrs\" | \"children\"> {\n attrs?: MkXmlNodeJSON[];\n children?: MkXmlNodeJSON[];\n mpContents?: MpForAttrContent[] | MkXmlContent[];\n}\nexport interface LikeFxParseContext {\n nodes?: FxNode[] | FxNodeJSON[] | MkXmlNodeJSON[] | MkXmlNode[];\n}\nexport interface MkXmlNode\n extends MkOmit<MkXmlNodeJSON, \"attrs\" | \"children\" | \"parent\"> {\n attrs?: MkXmlNode[];\n children?: MkXmlNode[];\n mpContents?: MpForAttrContent[] | MkXmlContent[];\n parent?: MkXmlNode;\n // 前一个兄弟:只在非text和comment的node上存在,且Sibling本身也非text和comment\n previousSibling?: MkXmlNode;\n // 后一个兄弟:只在非text和comment的node上存在,且Sibling本身也非text和comment\n nextSibling?: MkXmlNode;\n}\n\nexport enum MkXmlParseMessagePosition {\n text = \"text\",\n attr = \"attr\",\n}\nexport interface MkXmlParseMessage extends FxWrong {\n // position: MkXmlParseMessagePosition;\n target?: FxNode | FxNodeJSON;\n}\n\nexport interface MkXmlParseResult extends MkOmit<FxParseResult, \"nodes\"> {\n nodes?: MkXmlNode[];\n}\n\nexport interface MkXmlParseResultBase {\n error?: FxWrong;\n nodes?: MkXmlNode[];\n}\n\nexport interface MkMpXmlParseAdapterFormater {\n parseAdapter?: IMkMpXmlParseAdapter;\n hasAttrAdapter: boolean;\n hasContentAdapter: boolean;\n}\nexport interface MkNodeSerializer {\n (\n nodes: FxNodeJSON[],\n handler: MkNodeSerializeHandler,\n parentNode?: FxNodeJSON\n ): string;\n}\nexport interface MkNodeSerializeHandler {\n (\n currentNode: MkXmlNodeJSON,\n brotherNodes: MkXmlNodeJSON[],\n rootNodes: MkXmlNodeJSON[],\n rootSerializer: MkNodeSerializer,\n parentNode: FxNodeJSON,\n adapter: FxNodeAdapter,\n serializeResult: string\n ): string;\n}\n","import { MpPlatform } from \"./platform\";\nimport { MkOmit, MkRequireAll } from \"./util\";\n\nexport type MkMpSDKVersion<\n N extends number = number,\n S extends string = `${N}.${N}.${N}`\n> = S;\n\nexport interface LikeMkMpSDKVersionSupport {\n supportVersion?: MkMpSDKVersion;\n}\nexport interface MkMpSDKVersionSupport\n extends MkRequireAll<LikeMkMpSDKVersionSupport> {}\n\n// xml绑定变量语法,如:{{xx}}\nexport interface LikeMkMpXmlDataBinding {\n // 左边界字符串\n leftBoundaryChar?: string;\n // 右边界字符串\n rightBoundaryChar?: string;\n // 左边界符距离内容可被允许包含的空白字符数量,小于0|undefined=允许左边界与内容之间出现空白字符且不限数量;0=不允许;大于0代表必须有,且数量一致\n leftBoundarySpace?: number;\n // 右边界符距离内容可被允许包含的空白字符数量,小于0|undefined=允许左边界与内容之间出现空白字符且不限数量;0=不允许;大于0代表必须有,且数量一致\n rightBoundarySpace?: number;\n}\nexport interface MkMpXmlDataBinding\n extends MkRequireAll<LikeMkMpXmlDataBinding> {}\n\n// 是否支持数据绑定\nexport interface MkMpXmlSupportDataBinding {\n // 是否支持变量绑定\n dataBinding?: MkMpXmlDataBinding;\n // 支持的变量绑定数量,0代表不支持,小于0代表支持无限个,大于0代表具体数量\n dataBindingCount?: number;\n}\nexport enum MkMpXmlAstContentType {\n static = \"static\",\n dataBinding = \"dataBinding\",\n}\nexport interface MkMpXmlAstContent {\n type: MkMpXmlAstContentType;\n value: string;\n}\n// xml ast 节点\nexport interface MkMpXmlAstNode {\n name: string;\n content?: string;\n mpContents?: MkMpXmlAstContent[];\n}\n// xml ast 属性\nexport interface MkMpXmlAstAttr extends MkMpXmlAstNode {}\n// xml ast 元素\nexport interface MkMpXmlAstElement extends MkMpXmlAstNode {\n attrs?: MkMpXmlAstAttr[];\n children?: MkMpXmlAstElement[];\n // 前一个兄弟:只在非text和comment的node上存在,且Sibling本身也非text和comment\n previousSibling?: MkMpXmlAstElement;\n // 后一个兄弟:只在非text和comment的node上存在,且Sibling本身也非text和comment\n nextSibling?: MkMpXmlAstElement;\n}\n\nexport interface MkMpXmlAstPreviousSiblingFinder {\n (node: MkMpXmlAstElement, siblings: MkMpXmlAstElement[]): MkMpXmlAstElement;\n}\n\n// xml 属性验证器\nexport interface MkMpXmlNodeValidater {\n (\n attr: MkMpXmlAstAttr, // 属性ast对象\n parent: MkMpXmlAstElement, // 属性的父节点ast对象\n grandpa?: MkMpXmlAstElement, // 属性的爷爷节点ast对象\n previousSiblingFinder?: MkMpXmlAstPreviousSiblingFinder // 查找前一个节点的函数\n ): boolean | MkMpXmlNodeValidateResult;\n}\nexport enum MkMpXmlNodeValidateResultLevel {\n success = \"success\",\n fail = \"fail\",\n warn = \"warn\",\n ignore = \"ignore\",\n}\nexport interface MkMpXmlNodeValidateResult {\n pass: boolean;\n level: MkMpXmlNodeValidateResultLevel;\n code: string;\n message: string;\n}\nexport enum MkMpXmlAttrContentType {\n string = \"string\",\n boolean = \"boolean\",\n number = \"number\",\n}\n// xml 属性 技术特性\nexport interface LikeMkMpXmlAttrSpec\n extends MkMpXmlSupportDataBinding,\n LikeMkMpSDKVersionSupport {\n // 内容必选?0|undefined=可有可没有,小于0=必须没有,1=必须有,但是可为空,大于1=必须有,且不为空(含任意字符串)\n requireContent?: number;\n // 是否必选?0|undefined=可有可没有,小于0=必须没有,大于0=必须有\n require?: number;\n // 该属性是否是事件绑定\n isEvent?: boolean;\n // 内容类型\n contentType?: MkMpXmlAttrContentType | MkMpXmlAttrContentType[];\n // 默认内容\n defaultContent?: any;\n validater?: MkMpXmlNodeValidater;\n}\n\nexport interface MkMpXmlAttrSpec\n extends MkOmit<\n MkRequireAll<LikeMkMpXmlAttrSpec>,\n \"defaultContent\" | \"validater\"\n > {\n defaultContent?: any;\n validater?: MkMpXmlNodeValidater;\n}\n\nexport interface MkMpXmlNodeSpecMap<T> {\n // 匹配所有目标节点\n _common?: T;\n // 指定的名称均匹配不上时,采用此特性,最后采用的特性将是_common&&_unclaimed\n _unclaimed?: T;\n // 按照名称匹配,最后的该名称对应的节点特定将是此属性与_common的合并体\n [p: string]: T;\n}\n\nexport interface LikeMkMpXmlElementSpec\n extends MkMpXmlSupportDataBinding,\n LikeMkMpSDKVersionSupport {\n // 节点关闭类型,0|undefined=自关闭或结束标签关闭均可以;小于0=只可以自关闭方式关闭;大于0=必须通过结束标签关闭\n closeType?: number;\n // 属性特性\n attrsSpec?: MkMpXmlNodeSpecMap<LikeMkMpXmlAttrSpec>;\n}\n// xml 节点 技术特性\nexport interface MkMpXmlElementSpec\n extends MkOmit<MkRequireAll<LikeMkMpXmlElementSpec>, \"attrsSpec\">,\n MkMpSDKVersionSupport {\n attrsSpec: MkMpXmlNodeSpecMap<MkMpXmlAttrSpec>;\n}\n// xml 节点对象\nexport interface MkMpXmlElement {\n id?: string;\n dataset?: {\n [p: string]: any;\n };\n}\n// xml 事件对象\nexport interface MkMpXmlBaseEvent<T = undefined> {\n type: string;\n timeStamp: number;\n target: MkMpXmlElement;\n currentTarget: MkMpXmlElement;\n detail?: T;\n}\n\n// xml 事件处理程序\nexport interface MkMpXmlEventHandler<D = undefined, T = MkMpXmlBaseEvent<D>> {\n (event: T);\n}\n\n// xml 技术特性\nexport interface LikeMkMpXmlSpec\n extends MkMpXmlNodeSpecMap<LikeMkMpXmlElementSpec> {}\nexport interface MkMpXmlSpec extends MkMpXmlNodeSpecMap<MkMpXmlElementSpec> {}\n\nexport interface MkMpPlatformSpec<T> {\n [MpPlatform.wechat]: T;\n [MpPlatform.alipay]: T;\n [MpPlatform.smart]: T;\n [MpPlatform.tiktok]: T;\n}\n"],"names":["MpRequestOptionsMethod","MpPlatform","MpViewType","MpXmlContentType","MkXmlParseMessagePosition","MkMpXmlAstContentType","MkMpXmlNodeValidateResultLevel","MkMpXmlAttrContentType"],"mappings":";;;;;;;;;;;;IAgBA,WAAYA;IACRA,EAAAA,iCAAA,YAAA;IACAA,EAAAA,6BAAA,QAAA;IACAA,EAAAA,8BAAA,SAAA;IACAA,EAAAA,8BAAA,SAAA;IACAA,EAAAA,6BAAA,QAAA;IACAA,EAAAA,gCAAA,WAAA;IACAA,EAAAA,+BAAA,UAAA;IACAA,EAAAA,iCAAA,YAAA;IACH,CATD,EAAYA,8BAAsB,KAAtBA,8BAAsB,KAAA,CAAlC;;IChBA,WAAYC;IACRA,EAAAA,oBAAA,WAAA;IACAA,EAAAA,oBAAA,WAAA;IACAA,EAAAA,mBAAA,UAAA;IACAA,EAAAA,oBAAA,WAAA;IACAA,EAAAA,qBAAA,YAAA;IACH,CAND,EAAYA,kBAAU,KAAVA,kBAAU,KAAA,CAAtB;;IC6BA,WAAYC;IACRA,EAAAA,iBAAA,QAAA;IACAA,EAAAA,kBAAA,SAAA;IACAA,EAAAA,uBAAA,cAAA;IACH,CAJD,EAAYA,kBAAU,KAAVA,kBAAU,KAAA,CAAtB;;ICgEA,WAAYC;IACRA,EAAAA,0BAAA,WAAA;IACAA,EAAAA,2BAAA,YAAA;IACH,CAHD,EAAYA,wBAAgB,KAAhBA,wBAAgB,KAAA,CAA5B;;IAyBA,WAAYC;IACRA,EAAAA,iCAAA,SAAA;IACAA,EAAAA,iCAAA,SAAA;IACH,CAHD,EAAYA,iCAAyB,KAAzBA,iCAAyB,KAAA,CAArC;;ICnFA,WAAYC;IACRA,EAAAA,+BAAA,WAAA;IACAA,EAAAA,oCAAA,gBAAA;IACH,CAHD,EAAYA,6BAAqB,KAArBA,6BAAqB,KAAA,CAAjC;;IAuCA,WAAYC;IACRA,EAAAA,yCAAA,YAAA;IACAA,EAAAA,sCAAA,SAAA;IACAA,EAAAA,sCAAA,SAAA;IACAA,EAAAA,wCAAA,WAAA;IACH,CALD,EAAYA,sCAA8B,KAA9BA,sCAA8B,KAAA,CAA1C;;IAYA,WAAYC;IACRA,EAAAA,gCAAA,WAAA;IACAA,EAAAA,iCAAA,YAAA;IACAA,EAAAA,gCAAA,WAAA;IACH,CAJD,EAAYA,8BAAsB,KAAtBA,8BAAsB,KAAA,CAAlC;;;;;;;;;;;;;;;;;;;;;"} |
+3
-3
| { | ||
| "name": "@mpkit/types", | ||
| "version": "1.0.12", | ||
| "version": "1.0.15", | ||
| "description": "mpkit包相关typescript类型", | ||
@@ -36,5 +36,5 @@ "author": "imingyu <mingyuhisoft@163.com>", | ||
| "dependencies": { | ||
| "forgiving-xml-parser": "^1.1.3" | ||
| "forgiving-xml-parser": "^1.3.0" | ||
| }, | ||
| "gitHead": "8403a162ef15cc6f6f905716a0f70b63ccd0110c" | ||
| "gitHead": "1101779cc93cd11285102d66f3f9e29afb2c2aa3" | ||
| } |
+2
-0
@@ -10,2 +10,4 @@ export * from "./api"; | ||
| export * from "./mpxml-parser"; | ||
| export * from "./mpxml-translator"; | ||
| export * from "./mpspec"; | ||
| export { FxNodeAdapter, FxNodeCloseType, FxNodeType, FxTryStep, } from "forgiving-xml-parser"; |
+20
-18
@@ -1,7 +0,4 @@ | ||
| import { MkOmit, MkMap, MkEnumMap } from "./util"; | ||
| import { FxNode, FxParseResult, FxWrong, FxLocation, FxNodeJSON, FxEventHandler, FxNodeAdapter } from "forgiving-xml-parser"; | ||
| import { MkOmit, MkMap } from "./util"; | ||
| import { FxNode, FxParseResult, FxWrong, FxLocation, FxNodeJSON, FxEventHandler, FxNodeAdapter, FxSerializeOptions } from "forgiving-xml-parser"; | ||
| import { MpPlatform } from "./platform"; | ||
| export interface MpSpec { | ||
| [prop: string]: MkEnumMap<MpPlatform, MpViewSyntaxSpec>; | ||
| } | ||
| export interface MpViewSyntaxSpec { | ||
@@ -14,20 +11,23 @@ namespace: string; | ||
| if: string; | ||
| elseif: string; | ||
| elseIf: string; | ||
| else: string; | ||
| xmlFileSuffix?: string; | ||
| xjsNodeName?: string; | ||
| xjsFileSuffix?: string; | ||
| xjsModuleAttrName?: string; | ||
| xjsSrcAttrName?: string; | ||
| forAndWhereAttrNeedBracket: boolean; | ||
| importNodeName?: string; | ||
| importSrcAttrName?: string; | ||
| includeNodeName?: string; | ||
| includeSrcAttrName?: string; | ||
| } | ||
| export declare enum MpWhereType { | ||
| if = "if", | ||
| elseif = "elseif", | ||
| else = "else" | ||
| } | ||
| export declare enum MpEachType { | ||
| key = "key", | ||
| for = "for", | ||
| forItem = "forItem", | ||
| forIndex = "forIndex" | ||
| } | ||
| export declare type MkPlatformNodeAdapterMap = { | ||
| [prop in MpPlatform]?: FxNodeAdapter[]; | ||
| }; | ||
| export interface MkMpXmlParseOptions { | ||
| onEvent?: FxEventHandler; | ||
| } | ||
| export interface MkMpXmlSerializeOptions extends FxSerializeOptions { | ||
| } | ||
| export interface MkXmlContent { | ||
@@ -55,2 +55,5 @@ type: MpXmlContentType; | ||
| } | ||
| export interface MkMpXmlParseContext { | ||
| xjsModuleNames?: []; | ||
| } | ||
| export interface IMkMpXmlAttrParseAdapter { | ||
@@ -74,3 +77,2 @@ parse(attr: FxNodeJSON, parent?: FxNodeJSON | LikeFxParseContext, grandpa?: FxNodeJSON | LikeFxParseContext): MkXmlNode; | ||
| mpContents?: MpForAttrContent[] | MkXmlContent[]; | ||
| special?: MpWhereType | MpEachType; | ||
| } | ||
@@ -77,0 +79,0 @@ export interface LikeFxParseContext { |
| !function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).MpKitTypes={})}(this,function(e){"use strict";var t,n,o,p,i,a,s,l,r,M;(t=e.MpRequestOptionsMethod||(e.MpRequestOptionsMethod={})).OPTIONS="OPTIONS",t.GET="GET",t.POST="POST",t.HEAD="HEAD",t.PUT="PUT",t.DELETE="DELETE",t.TRACE="TRACE",t.CONNECT="CONNECT",(n=e.MpPlatform||(e.MpPlatform={})).wechat="wechat",n.alipay="alipay",n.smart="smart",n.tiktok="tiktok",n.unknown="unknown",(o=e.MpViewType||(e.MpViewType={})).App="App",o.Page="Page",o.Component="Component",(p=e.MpWhereType||(e.MpWhereType={})).if="if",p.elseif="elseif",p.else="else",(i=e.MpEachType||(e.MpEachType={})).key="key",i.for="for",i.forItem="forItem",i.forIndex="forIndex",(a=e.MpXmlContentType||(e.MpXmlContentType={})).static="static",a.dynamic="dynamic",(s=e.MkXmlParseMessagePosition||(e.MkXmlParseMessagePosition={})).text="text",s.attr="attr",(l=e.MkMpXmlAstContentType||(e.MkMpXmlAstContentType={})).static="static",l.dataBinding="dataBinding",(r=e.MkMpXmlNodeValidateResultLevel||(e.MkMpXmlNodeValidateResultLevel={})).success="success",r.fail="fail",r.warn="warn",r.ignore="ignore",(M=e.MkMpXmlAttrContentType||(e.MkMpXmlAttrContentType={})).string="string",M.boolean="boolean",M.number="number",Object.defineProperty(e,"__esModule",{value:!0})}); | ||
| //# sourceMappingURL=index.umd.mini.js.map |
| {"version":3,"file":"index.umd.mini.js","sources":["../api.ts","../platform.ts","../view.ts","../mpxml-parser.ts","../mpspec.ts"],"sourcesContent":["export interface MpApiCallback {\n (res?: any);\n}\nexport interface MpApiMethodArg {\n success: MpApiCallback;\n fail: MpApiCallback;\n complete: MpApiCallback;\n [prop: string]: any;\n}\nexport interface MpApiMethod {\n (options?: MpApiMethodArg | any): any;\n}\n\nexport interface MpApiVar {\n [prop: string]: MpApiMethod;\n}\nexport enum MpRequestOptionsMethod {\n OPTIONS = \"OPTIONS\",\n GET = \"GET\",\n POST = \"POST\",\n HEAD = \"HEAD\",\n PUT = \"PUT\",\n DELETE = \"DELETE\",\n TRACE = \"TRACE\",\n CONNECT = \"CONNECT\",\n}\nexport interface MpRequestOptions extends MpApiMethodArg {\n url: string;\n method: MpRequestOptionsMethod;\n headers?: {\n [prop: string]: string | number;\n };\n}\nexport interface MpRequestTask {\n abort: Function;\n}\nexport interface MpApiRequestMethod {\n (options: MpRequestOptions): MpRequestTask;\n}\n","export enum MpPlatform {\n wechat = \"wechat\",\n alipay = \"alipay\",\n smart = \"smart\",\n tiktok = \"tiktok\",\n unknown = \"unknown\",\n}\n","import { MkEnumMap } from \"./util\";\nimport { MkSetData } from \"./set-data\";\nexport interface MpAppLaunchOptions {}\nexport interface MpViewInitLife<V, T> {\n (this: V, options: T): void;\n}\nexport interface MpViewLife<V> {\n (this: V): void;\n}\nexport type MpViewInitLifes = \"onLaunch\" | \"onLoad\" | \"created\" | \"onInit\";\nexport type MpViewMountLifes = \"onShow\" | \"attached\" | \"didMount\";\n// 小程序App实例\nexport interface MpViewApp extends MpViewAppSpec, MpView {}\n// 小程序App函数接收的配置对象\nexport interface MpViewAppSpec {\n onLaunch: MpViewInitLife<MpViewApp, MpAppLaunchOptions>;\n onShow: MpViewInitLife<MpViewApp, MpAppLaunchOptions>;\n onHide: MpViewLife<MpViewApp>;\n onError: MpViewLife<MpViewApp>;\n [prop: string]: any;\n}\nexport interface MpAlipayViewApp extends MpViewApp, MpAlipayViewAppSpec {}\nexport interface MpAlipayViewAppSpec extends MpViewAppSpec {\n onShareAppMessage: MpViewLife<MpAlipayViewApp>;\n}\n\nexport interface MpViewFactory {\n (spec: MpViewAppSpec | MpViewPageSpec | MpViewComponentSpec | any): void;\n}\nexport enum MpViewType {\n App = \"App\",\n Page = \"Page\",\n Component = \"Component\",\n}\nexport interface MpViewSpec {\n data: any;\n}\nexport interface MpViewComponetPropSpec {\n type: Function;\n default?: any;\n observer?: Function;\n}\nexport interface MpViewPageSpec extends MpViewSpec {\n [prop: string]: any;\n}\nexport type MpViewComponentLifes =\n | \"created\"\n | \"attached\"\n | \"ready\"\n | \"moved\"\n | \"detached\"\n | \"error\";\nexport type MpViewComponentPageLifes = \"show\" | \"hide\" | \"resize\";\nexport interface MpViewComponentSpec extends MpViewSpec {\n properties?: {\n [prop: string]: Function | MpViewComponetPropSpec;\n };\n lifetimes?: MkEnumMap<MpViewComponentLifes, Function | string>;\n pageLifetimes?: MkEnumMap<MpViewComponentPageLifes, Function | string>;\n methods: {\n [prop: string]: Function;\n };\n [prop: string]: any;\n}\nexport interface MpView {\n $mkSpec: MpViewSpec;\n $mkType: MpViewType;\n $mkKey: string;\n $mkKeyIsDefine?: string;\n $mkNativeSetData: MpSetDataHandler;\n $mkSetData: MkSetData;\n $mkSetDataIsBind?: boolean;\n $mkReadyData: any;\n data: any;\n setData: MpSetDataHandler;\n}\nexport interface MpWechatSelectOwnerComponent {\n (): void | MpView;\n}\nexport interface MpWechatView extends MpView {\n __wxExparserNodeId__: string;\n __wxWebviewId__: number;\n is: string;\n selectOwnerComponent: MpWechatSelectOwnerComponent;\n}\nexport interface MpWechatPageView extends MpWechatView {\n route: string;\n}\nexport interface MpTiktokView extends MpView {\n __webviewId__: number;\n __nodeId__: number;\n is: string;\n}\nexport interface MpComponentPropObserver {\n (this: MpView, oldValue: any, newVal: any): void;\n}\n\nexport interface MpComponentPropSpec {\n type: Function;\n default: any;\n observer: MpComponentPropObserver;\n}\n\nexport interface MpAlipayView extends MpView {\n $id: number;\n}\n\nexport interface MpAlipayViewPage extends MpAlipayView {\n $viewId: string;\n route: string;\n}\nexport interface MpAlipayViewComponent extends MpAlipayView {\n $page: MpAlipayViewPage;\n is: string;\n props: {\n [prop: string]: any;\n __tag: string;\n };\n}\nexport interface MpSmartViewPage extends MpView {\n route: string;\n}\nexport interface MpSmartViewComponent extends MpView {\n componentName: string;\n nodeId: string;\n pageinstance: MpSmartViewPage;\n is: string;\n}\nexport interface MpSetDataHandler {\n (data: any, callback?: Function): void;\n}\n","import { MkOmit, MkMap, MkEnumMap } from \"./util\";\nimport {\n FxNode,\n FxParseResult,\n FxWrong,\n FxLocation,\n FxNodeJSON,\n FxEventHandler,\n FxNodeAdapter,\n} from \"forgiving-xml-parser\";\nimport { MpPlatform } from \"./platform\";\nexport interface MpSpec {\n [prop: string]: MkEnumMap<MpPlatform, MpViewSyntaxSpec>;\n}\nexport interface MpViewSyntaxSpec {\n namespace: string;\n for: string;\n forItem: string;\n forIndex: string;\n key: string;\n if: string;\n elseif: string;\n else: string;\n forAndWhereAttrNeedBracket: boolean;\n}\nexport enum MpWhereType {\n if = \"if\",\n elseif = \"elseif\",\n else = \"else\",\n}\nexport enum MpEachType {\n key = \"key\",\n for = \"for\",\n forItem = \"forItem\",\n forIndex = \"forIndex\",\n}\nexport interface MkMpXmlParseOptions {\n onEvent?: FxEventHandler;\n}\nexport interface MkXmlContent {\n type: MpXmlContentType;\n value: string;\n locationInfo?: FxLocation;\n}\nexport interface MkXmlContentParseResult {\n contents: MkXmlContent[];\n leftStaticContents: MkXmlContent[];\n leftStaticContentsIsEmpty: boolean;\n rightStaticContents: MkXmlContent[];\n rightStaticContentsIsEmpty: boolean;\n betweenStaticContents: MkXmlContent[];\n dynamicContents: MkXmlContent[];\n}\nexport interface MpForAttrContent extends MkXmlContent {\n type: MpXmlContentType;\n value: string;\n featureList?: string;\n featureItem?: string;\n featureIndex?: string;\n featureKey?: string;\n}\nexport interface IMkMpXmlAttrParseAdapter {\n parse(\n attr: FxNodeJSON,\n parent?: FxNodeJSON | LikeFxParseContext,\n grandpa?: FxNodeJSON | LikeFxParseContext\n ): MkXmlNode;\n}\nexport interface IMkMpXmlContentParseAdapter {\n parse(\n content: string,\n node?: FxNodeJSON,\n parent?: FxNodeJSON | LikeFxParseContext,\n grandpa?: FxNodeJSON | LikeFxParseContext\n ): MkXmlContent[];\n}\nexport interface IMkMpXmlParseAdapter {\n attrAdapters: MkMap<IMkMpXmlAttrParseAdapter>;\n contentAdapter: IMkMpXmlContentParseAdapter;\n}\nexport enum MpXmlContentType {\n static = \"static\",\n dynamic = \"dynamic\",\n}\nexport interface MkXmlNodeJSON\n extends MkOmit<FxNodeJSON, \"attrs\" | \"children\"> {\n attrs?: MkXmlNodeJSON[];\n children?: MkXmlNodeJSON[];\n mpContents?: MpForAttrContent[] | MkXmlContent[];\n special?: MpWhereType | MpEachType;\n}\nexport interface LikeFxParseContext {\n nodes?: FxNode[] | FxNodeJSON[] | MkXmlNodeJSON[] | MkXmlNode[];\n}\nexport interface MkXmlNode\n extends MkOmit<MkXmlNodeJSON, \"attrs\" | \"children\" | \"parent\"> {\n attrs?: MkXmlNode[];\n children?: MkXmlNode[];\n mpContents?: MpForAttrContent[] | MkXmlContent[];\n parent?: MkXmlNode;\n // 前一个兄弟:只在非text和comment的node上存在,且Sibling本身也非text和comment\n previousSibling?: MkXmlNode;\n // 后一个兄弟:只在非text和comment的node上存在,且Sibling本身也非text和comment\n nextSibling?: MkXmlNode;\n}\n\nexport enum MkXmlParseMessagePosition {\n text = \"text\",\n attr = \"attr\",\n}\nexport interface MkXmlParseMessage extends FxWrong {\n // position: MkXmlParseMessagePosition;\n target?: FxNode | FxNodeJSON;\n}\n\nexport interface MkXmlParseResult extends MkOmit<FxParseResult, \"nodes\"> {\n nodes?: MkXmlNode[];\n}\n\nexport interface MkXmlParseResultBase {\n error?: FxWrong;\n nodes?: MkXmlNode[];\n}\n\nexport interface MkMpXmlParseAdapterFormater {\n parseAdapter?: IMkMpXmlParseAdapter;\n hasAttrAdapter: boolean;\n hasContentAdapter: boolean;\n}\nexport interface MkNodeSerializer {\n (\n nodes: FxNodeJSON[],\n handler: MkNodeSerializeHandler,\n parentNode?: FxNodeJSON\n ): string;\n}\nexport interface MkNodeSerializeHandler {\n (\n currentNode: MkXmlNodeJSON,\n brotherNodes: MkXmlNodeJSON[],\n rootNodes: MkXmlNodeJSON[],\n rootSerializer: MkNodeSerializer,\n parentNode: FxNodeJSON,\n adapter: FxNodeAdapter,\n serializeResult: string\n ): string;\n}\n","import { MpPlatform } from \"./platform\";\nimport { MkOmit, MkRequireAll } from \"./util\";\n\nexport type MkMpSDKVersion<\n N extends number = number,\n S extends string = `${N}.${N}.${N}`\n> = S;\n\nexport interface LikeMkMpSDKVersionSupport {\n supportVersion?: MkMpSDKVersion;\n}\nexport interface MkMpSDKVersionSupport\n extends MkRequireAll<LikeMkMpSDKVersionSupport> {}\n\n// xml绑定变量语法,如:{{xx}}\nexport interface LikeMkMpXmlDataBinding {\n // 左边界字符串\n leftBoundaryChar?: string;\n // 右边界字符串\n rightBoundaryChar?: string;\n // 左边界符距离内容可被允许包含的空白字符数量,小于0|undefined=允许左边界与内容之间出现空白字符且不限数量;0=不允许;大于0代表必须有,且数量一致\n leftBoundarySpace?: number;\n // 右边界符距离内容可被允许包含的空白字符数量,小于0|undefined=允许左边界与内容之间出现空白字符且不限数量;0=不允许;大于0代表必须有,且数量一致\n rightBoundarySpace?: number;\n}\nexport interface MkMpXmlDataBinding\n extends MkRequireAll<LikeMkMpXmlDataBinding> {}\n\n// 是否支持数据绑定\nexport interface MkMpXmlSupportDataBinding {\n // 是否支持变量绑定\n dataBinding?: MkMpXmlDataBinding;\n // 支持的变量绑定数量,0代表不支持,小于0代表支持无限个,大于0代表具体数量\n dataBindingCount?: number;\n}\nexport enum MkMpXmlAstContentType {\n static = \"static\",\n dataBinding = \"dataBinding\",\n}\nexport interface MkMpXmlAstContent {\n type: MkMpXmlAstContentType;\n value: string;\n}\n// xml ast 节点\nexport interface MkMpXmlAstNode {\n name: string;\n content?: string;\n mpContents?: MkMpXmlAstContent[];\n}\n// xml ast 属性\nexport interface MkMpXmlAstAttr extends MkMpXmlAstNode {}\n// xml ast 元素\nexport interface MkMpXmlAstElement extends MkMpXmlAstNode {\n attrs?: MkMpXmlAstAttr[];\n children?: MkMpXmlAstElement[];\n // 前一个兄弟:只在非text和comment的node上存在,且Sibling本身也非text和comment\n previousSibling?: MkMpXmlAstElement;\n // 后一个兄弟:只在非text和comment的node上存在,且Sibling本身也非text和comment\n nextSibling?: MkMpXmlAstElement;\n}\n\nexport interface MkMpXmlAstPreviousSiblingFinder {\n (node: MkMpXmlAstElement, siblings: MkMpXmlAstElement[]): MkMpXmlAstElement;\n}\n\n// xml 属性验证器\nexport interface MkMpXmlNodeValidater {\n (\n attr: MkMpXmlAstAttr, // 属性ast对象\n parent: MkMpXmlAstElement, // 属性的父节点ast对象\n grandpa?: MkMpXmlAstElement, // 属性的爷爷节点ast对象\n previousSiblingFinder?: MkMpXmlAstPreviousSiblingFinder // 查找前一个节点的函数\n ): boolean | MkMpXmlNodeValidateResult;\n}\nexport enum MkMpXmlNodeValidateResultLevel {\n success = \"success\",\n fail = \"fail\",\n warn = \"warn\",\n ignore = \"ignore\",\n}\nexport interface MkMpXmlNodeValidateResult {\n pass: boolean;\n level: MkMpXmlNodeValidateResultLevel;\n code: string;\n message: string;\n}\nexport enum MkMpXmlAttrContentType {\n string = \"string\",\n boolean = \"boolean\",\n number = \"number\",\n}\n// xml 属性 技术特性\nexport interface LikeMkMpXmlAttrSpec\n extends MkMpXmlSupportDataBinding,\n LikeMkMpSDKVersionSupport {\n // 内容必选?0|undefined=可有可没有,小于0=必须没有,1=必须有,但是可为空,大于1=必须有,且不为空(含任意字符串)\n requireContent?: number;\n // 是否必选?0|undefined=可有可没有,小于0=必须没有,大于0=必须有\n require?: number;\n // 该属性是否是事件绑定\n isEvent?: boolean;\n // 内容类型\n contentType?: MkMpXmlAttrContentType | MkMpXmlAttrContentType[];\n // 默认内容\n defaultContent?: any;\n validater?: MkMpXmlNodeValidater;\n}\n\nexport interface MkMpXmlAttrSpec\n extends MkOmit<\n MkRequireAll<LikeMkMpXmlAttrSpec>,\n \"defaultContent\" | \"validater\"\n > {\n defaultContent?: any;\n validater?: MkMpXmlNodeValidater;\n}\n\nexport interface MkMpXmlNodeSpecMap<T> {\n // 匹配所有目标节点\n _common?: T;\n // 指定的名称均匹配不上时,采用此特性,最后采用的特性将是_common&&_unclaimed\n _unclaimed?: T;\n // 按照名称匹配,最后的该名称对应的节点特定将是此属性与_common的合并体\n [p: string]: T;\n}\n\nexport interface LikeMkMpXmlElementSpec\n extends MkMpXmlSupportDataBinding,\n LikeMkMpSDKVersionSupport {\n // 节点关闭类型,0|undefined=自关闭或结束标签关闭均可以;小于0=只可以自关闭方式关闭;大于0=必须通过结束标签关闭\n closeType?: number;\n // 属性特性\n attrsSpec?: MkMpXmlNodeSpecMap<LikeMkMpXmlAttrSpec>;\n}\n// xml 节点 技术特性\nexport interface MkMpXmlElementSpec\n extends MkOmit<MkRequireAll<LikeMkMpXmlElementSpec>, \"attrsSpec\">,\n MkMpSDKVersionSupport {\n attrsSpec: MkMpXmlNodeSpecMap<MkMpXmlAttrSpec>;\n}\n// xml 节点对象\nexport interface MkMpXmlElement {\n id?: string;\n dataset?: {\n [p: string]: any;\n };\n}\n// xml 事件对象\nexport interface MkMpXmlBaseEvent<T = undefined> {\n type: string;\n timeStamp: number;\n target: MkMpXmlElement;\n currentTarget: MkMpXmlElement;\n detail?: T;\n}\n\n// xml 事件处理程序\nexport interface MkMpXmlEventHandler<D = undefined, T = MkMpXmlBaseEvent<D>> {\n (event: T);\n}\n\n// xml 技术特性\nexport interface LikeMkMpXmlSpec\n extends MkMpXmlNodeSpecMap<LikeMkMpXmlElementSpec> {}\nexport interface MkMpXmlSpec extends MkMpXmlNodeSpecMap<MkMpXmlElementSpec> {}\n\nexport interface MkMpPlatformSpec<T> {\n [MpPlatform.wechat]: T;\n [MpPlatform.alipay]: T;\n [MpPlatform.smart]: T;\n [MpPlatform.tiktok]: T;\n}\n"],"names":["MpRequestOptionsMethod","MpPlatform","MpViewType","MpWhereType","MpEachType","MpXmlContentType","MkXmlParseMessagePosition","MkMpXmlAstContentType","MkMpXmlNodeValidateResultLevel","MkMpXmlAttrContentType"],"mappings":"iPAgBA,IAAYA,EChBAC,EC6BAC,ECJAC,EAKAC,EAkDAC,EA0BAC,ECvEAC,EAuCAC,EAYAC,GJtEAT,EAAAA,2BAAAA,gDAERA,YACAA,cACAA,cACAA,YACAA,kBACAA,gBACAA,qBCxBQC,EAAAA,eAAAA,kCAERA,kBACAA,gBACAA,kBACAA,qBCwBQC,EAAAA,eAAAA,4BAERA,cACAA,yBCPQC,EAAAA,gBAAAA,2BAERA,kBACAA,eAEQC,EAAAA,eAAAA,4BAERA,YACAA,oBACAA,uBA8CQC,EAAAA,qBAAAA,wCAERA,qBAwBQC,EAAAA,8BAAAA,6CAERA,eCzEQC,EAAAA,0BAAAA,6CAERA,6BAqCQC,EAAAA,mCAAAA,wDAERA,cACAA,cACAA,mBAQQC,EAAAA,2BAAAA,8CAERA,oBACAA"} |
Major refactor
Supply chain riskPackage has recently undergone a major refactor. It may be unstable or indicate significant internal changes. Use caution when updating to versions that include significant changes.
Found 1 instance in 1 package
Minified code
QualityThis package contains minified code. This may be harmless in some cases where minified code is included in packaged libraries, however packages on npm should not minify code.
Found 1 instance in 1 package
726
0.28%0
-100%0
-100%79717
-16.65%22
-8.33%Updated