🚀 Socket Launch Week Day 5:Introducing Repository Access Permissions and Custom Roles.Learn more
Sign In

@mpkit/types

Package Overview
Dependencies
Maintainers
1
Versions
12
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@mpkit/types - npm Package Compare versions

Comparing version
1.0.12
to
1.0.15
+16
-14
dist/index.cjs.js
/*!
* 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;;;;;;;;;;;;;;;"}
/*!
* 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;;;;"}
/*!
* 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;;;;;;;;;;;;;;;;;;;;;"}
{
"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"
}

@@ -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";

@@ -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"}