@mpkit/types
Advanced tools
| export interface MkReplaceFunc<T extends Function = Function> { | ||
| (original: T, replacer: T, callback?: MkReplaceFuncCallback): T; | ||
| } | ||
| export interface MkReplaceFuncStore<T extends Function = Function> { | ||
| data?: any; | ||
| original: T; | ||
| replace(): any; | ||
| restore(): any; | ||
| } | ||
| export interface MkReplaceFuncCallback<T extends Function = Function> { | ||
| (store: MkReplaceFuncStore<T>): any; | ||
| } | ||
| export declare type MkFuncHookErrorType = "RejectReason" | "MethodException" | "BeforeException" | "AfterException" | "CatchException" | "CompleteException" | "DoneException"; | ||
| export interface MkFuncHookError<T = Error> { | ||
| type: MkFuncHookErrorType; | ||
| error: T; | ||
| } | ||
| export interface MkFuncStepResult { | ||
| step: MkFuncHookName | "func"; | ||
| result?: any; | ||
| } | ||
| /**函数钩子状态 */ | ||
| export interface MkFuncHookState<S = any> { | ||
| /**函数执行的this对象 */ | ||
| ctx: any; | ||
| /**函数本身 */ | ||
| func: Function; | ||
| /**函数参数列表 */ | ||
| args: any[]; | ||
| /**函数执行后的结果 */ | ||
| result?: any; | ||
| /**每一步执行的结果 */ | ||
| stepResultList: MkFuncStepResult[]; | ||
| /**该字段为true,则不执行后面的流程(不包括done和catch钩子),如果函数体已经执行,则不会影响result,否则将判断state.result不为undefined时,返回其做为函数结果 */ | ||
| stop?: boolean; | ||
| /**所有流程是否都已经结束 */ | ||
| done?: boolean; | ||
| /**代表函数返回需等待回调执行 */ | ||
| needDoneCallback?: boolean; | ||
| /**如果函数返回需要执行回调,请在特定时期执行该回调,该回调执行后将影响fulfilled和value字段 */ | ||
| doneCallback: (err: Error, res?: any) => {}; | ||
| /**函数执行后,Promise/Callback状态是否是执行态(resolve),该字段值可能由函数返回的Promise或者doneCallback决定,具体看两者执行时机 */ | ||
| fulfilled?: boolean; | ||
| /**函数执行后,Promise/Callback的状态是执行态时,将值存入该字段,该字段值可能由函数返回的Promise或者doneCallback决定,具体看两者执行时机 */ | ||
| value?: any; | ||
| /**函数额外的状态,开发者可在before等钩子中向此字段中注入数据,已达到多个钩子间的数据共享 */ | ||
| state: S; | ||
| /**函数发生异常列表 */ | ||
| errors?: MkFuncHookError[]; | ||
| } | ||
| export interface MkFuncHookHandler<S = any> { | ||
| (state: MkFuncHookState<S>): any; | ||
| } | ||
| export declare type MkFuncHookName = "before" | "after" | "catch" | "complete" | "done"; | ||
| /**函数钩子 */ | ||
| export interface MkFuncHook<S = any> { | ||
| /**函数执行前钩子 */ | ||
| before?: MkFuncHookHandler<S> | MkFuncHookHandler<S>[]; | ||
| /**函数执行后钩子 */ | ||
| after?: MkFuncHookHandler<S> | MkFuncHookHandler<S>[]; | ||
| /**函数执行过程中发生异常后的钩子,此钩子可能被执行多次 */ | ||
| catch?: MkFuncHookHandler<S> | MkFuncHookHandler<S>[]; | ||
| /**函数执行返回Promise时,等Promise结束后执行钩子 */ | ||
| complete?: MkFuncHookHandler<S> | MkFuncHookHandler<S>[]; | ||
| /**函数执行返回Promise则done在complete后执行,否则在after后执行 */ | ||
| done?: MkFuncHookHandler<S> | MkFuncHookHandler<S>[]; | ||
| } | ||
| export interface MkFuncHookResult<T extends Function = Function> { | ||
| func: T; | ||
| disable(name?: MkFuncHookName): any; | ||
| enable(name?: MkFuncHookName): any; | ||
| } |
+2
-64
| /*! | ||
| * MpKit v1.0.17 | ||
| * MpKit v1.1.0 | ||
| * (c) 2020-2021 imingyu<mingyuhisoft@163.com> | ||
| * Released under the MIT License. | ||
| * Github: https://github.com/imingyu/mpkit/tree/master/packages//types/dist/index.cjs.js | ||
| * Github: https://github.com/imingyu/mpkit/tree/master/packages/types | ||
| */ | ||
@@ -11,51 +11,2 @@ 'use strict'; | ||
| var forgivingXmlParser = require('forgiving-xml-parser'); | ||
| (function (MpRequestOptionsMethod) { | ||
| MpRequestOptionsMethod["OPTIONS"] = "OPTIONS"; | ||
| MpRequestOptionsMethod["GET"] = "GET"; | ||
| MpRequestOptionsMethod["POST"] = "POST"; | ||
| MpRequestOptionsMethod["HEAD"] = "HEAD"; | ||
| MpRequestOptionsMethod["PUT"] = "PUT"; | ||
| MpRequestOptionsMethod["DELETE"] = "DELETE"; | ||
| MpRequestOptionsMethod["TRACE"] = "TRACE"; | ||
| MpRequestOptionsMethod["CONNECT"] = "CONNECT"; | ||
| })(exports.MpRequestOptionsMethod || (exports.MpRequestOptionsMethod = {})); | ||
| (function (MpPlatform) { | ||
| MpPlatform["wechat"] = "wechat"; | ||
| MpPlatform["alipay"] = "alipay"; | ||
| MpPlatform["smart"] = "smart"; | ||
| MpPlatform["tiktok"] = "tiktok"; | ||
| MpPlatform["unknown"] = "unknown"; | ||
| })(exports.MpPlatform || (exports.MpPlatform = {})); | ||
| (function (MpViewType) { | ||
| MpViewType["App"] = "App"; | ||
| MpViewType["Page"] = "Page"; | ||
| MpViewType["Component"] = "Component"; | ||
| })(exports.MpViewType || (exports.MpViewType = {})); | ||
| (function (MpXmlContentType) { | ||
| MpXmlContentType["static"] = "static"; | ||
| MpXmlContentType["dynamic"] = "dynamic"; | ||
| })(exports.MpXmlContentType || (exports.MpXmlContentType = {})); | ||
| (function (MkXmlParseMessagePosition) { | ||
| MkXmlParseMessagePosition["text"] = "text"; | ||
| MkXmlParseMessagePosition["attr"] = "attr"; | ||
| })(exports.MkXmlParseMessagePosition || (exports.MkXmlParseMessagePosition = {})); | ||
| (function (MkMpXmlAstContentType) { | ||
| MkMpXmlAstContentType["static"] = "static"; | ||
| MkMpXmlAstContentType["dataBinding"] = "dataBinding"; | ||
| })(exports.MkMpXmlAstContentType || (exports.MkMpXmlAstContentType = {})); | ||
| (function (MkMpXmlNodeValidateResultLevel) { | ||
| MkMpXmlNodeValidateResultLevel["success"] = "success"; | ||
| MkMpXmlNodeValidateResultLevel["fail"] = "fail"; | ||
| MkMpXmlNodeValidateResultLevel["warn"] = "warn"; | ||
| MkMpXmlNodeValidateResultLevel["ignore"] = "ignore"; | ||
| })(exports.MkMpXmlNodeValidateResultLevel || (exports.MkMpXmlNodeValidateResultLevel = {})); | ||
| (function (MkMpXmlAttrContentType) { | ||
@@ -66,15 +17,2 @@ MkMpXmlAttrContentType["string"] = "string"; | ||
| })(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 $mkDiffSetDataBeforeValue: 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;;;;;;;;;;;;;;;"} | ||
| {"version":3,"file":"index.cjs.js","sources":["../mpspec.ts"],"sourcesContent":["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 const 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 const 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":["MkMpXmlAttrContentType"],"mappings":";;;;;;;;;;AAsFA,WAAYA;AACRA,EAAAA,gCAAA,WAAA;AACAA,EAAAA,iCAAA,YAAA;AACAA,EAAAA,gCAAA,WAAA;AACH,CAJD,EAAYA,8BAAsB,KAAtBA,8BAAsB,KAAA,CAAlC;;"} |
+3
-66
| /*! | ||
| * MpKit v1.0.17 | ||
| * MpKit v1.1.0 | ||
| * (c) 2020-2021 imingyu<mingyuhisoft@163.com> | ||
| * Released under the MIT License. | ||
| * Github: https://github.com/imingyu/mpkit/tree/master/packages//types/dist/index.esm.js | ||
| * Github: https://github.com/imingyu/mpkit/tree/master/packages/types | ||
| */ | ||
| export { FxNodeCloseType, FxNodeType } from 'forgiving-xml-parser'; | ||
| var MpRequestOptionsMethod; | ||
| (function (MpRequestOptionsMethod) { | ||
| MpRequestOptionsMethod["OPTIONS"] = "OPTIONS"; | ||
| MpRequestOptionsMethod["GET"] = "GET"; | ||
| MpRequestOptionsMethod["POST"] = "POST"; | ||
| MpRequestOptionsMethod["HEAD"] = "HEAD"; | ||
| MpRequestOptionsMethod["PUT"] = "PUT"; | ||
| MpRequestOptionsMethod["DELETE"] = "DELETE"; | ||
| MpRequestOptionsMethod["TRACE"] = "TRACE"; | ||
| MpRequestOptionsMethod["CONNECT"] = "CONNECT"; | ||
| })(MpRequestOptionsMethod || (MpRequestOptionsMethod = {})); | ||
| var MpPlatform; | ||
| (function (MpPlatform) { | ||
| MpPlatform["wechat"] = "wechat"; | ||
| MpPlatform["alipay"] = "alipay"; | ||
| MpPlatform["smart"] = "smart"; | ||
| MpPlatform["tiktok"] = "tiktok"; | ||
| MpPlatform["unknown"] = "unknown"; | ||
| })(MpPlatform || (MpPlatform = {})); | ||
| var MpViewType; | ||
| (function (MpViewType) { | ||
| MpViewType["App"] = "App"; | ||
| MpViewType["Page"] = "Page"; | ||
| MpViewType["Component"] = "Component"; | ||
| })(MpViewType || (MpViewType = {})); | ||
| var MpXmlContentType; | ||
| (function (MpXmlContentType) { | ||
| MpXmlContentType["static"] = "static"; | ||
| MpXmlContentType["dynamic"] = "dynamic"; | ||
| })(MpXmlContentType || (MpXmlContentType = {})); | ||
| var MkXmlParseMessagePosition; | ||
| (function (MkXmlParseMessagePosition) { | ||
| MkXmlParseMessagePosition["text"] = "text"; | ||
| MkXmlParseMessagePosition["attr"] = "attr"; | ||
| })(MkXmlParseMessagePosition || (MkXmlParseMessagePosition = {})); | ||
| var MkMpXmlAstContentType; | ||
| (function (MkMpXmlAstContentType) { | ||
| MkMpXmlAstContentType["static"] = "static"; | ||
| MkMpXmlAstContentType["dataBinding"] = "dataBinding"; | ||
| })(MkMpXmlAstContentType || (MkMpXmlAstContentType = {})); | ||
| var MkMpXmlNodeValidateResultLevel; | ||
| (function (MkMpXmlNodeValidateResultLevel) { | ||
| MkMpXmlNodeValidateResultLevel["success"] = "success"; | ||
| MkMpXmlNodeValidateResultLevel["fail"] = "fail"; | ||
| MkMpXmlNodeValidateResultLevel["warn"] = "warn"; | ||
| MkMpXmlNodeValidateResultLevel["ignore"] = "ignore"; | ||
| })(MkMpXmlNodeValidateResultLevel || (MkMpXmlNodeValidateResultLevel = {})); | ||
| var MkMpXmlAttrContentType; | ||
@@ -78,3 +15,3 @@ | ||
| export { MkMpXmlAstContentType, MkMpXmlAttrContentType, MkMpXmlNodeValidateResultLevel, MkXmlParseMessagePosition, MpPlatform, MpRequestOptionsMethod, MpViewType, MpXmlContentType }; | ||
| export { MkMpXmlAttrContentType }; | ||
| //# 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 $mkDiffSetDataBeforeValue: 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;;;;"} | ||
| {"version":3,"file":"index.esm.js","sources":["../mpspec.ts"],"sourcesContent":["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 const 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 const 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":["MkMpXmlAttrContentType"],"mappings":";;;;;;IAsFYA;;AAAZ,WAAYA;AACRA,EAAAA,gCAAA,WAAA;AACAA,EAAAA,iCAAA,YAAA;AACAA,EAAAA,gCAAA,WAAA;AACH,CAJD,EAAYA,sBAAsB,KAAtBA,sBAAsB,KAAA,CAAlC;;;;"} |
+6
-66
| /*! | ||
| * MpKit v1.0.17 | ||
| * MpKit v1.1.0 | ||
| * (c) 2020-2021 imingyu<mingyuhisoft@163.com> | ||
| * Released under the MIT License. | ||
| * Github: https://github.com/imingyu/mpkit/tree/master/packages//types/dist/index.umd.js | ||
| * Github: https://github.com/imingyu/mpkit/tree/master/packages/types | ||
| */ | ||
| (function (global, factory) { | ||
| 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'; | ||
| 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'; | ||
| (function (MpRequestOptionsMethod) { | ||
| MpRequestOptionsMethod["OPTIONS"] = "OPTIONS"; | ||
| MpRequestOptionsMethod["GET"] = "GET"; | ||
| MpRequestOptionsMethod["POST"] = "POST"; | ||
| MpRequestOptionsMethod["HEAD"] = "HEAD"; | ||
| MpRequestOptionsMethod["PUT"] = "PUT"; | ||
| MpRequestOptionsMethod["DELETE"] = "DELETE"; | ||
| MpRequestOptionsMethod["TRACE"] = "TRACE"; | ||
| MpRequestOptionsMethod["CONNECT"] = "CONNECT"; | ||
| })(exports.MpRequestOptionsMethod || (exports.MpRequestOptionsMethod = {})); | ||
| (function (MpPlatform) { | ||
| MpPlatform["wechat"] = "wechat"; | ||
| MpPlatform["alipay"] = "alipay"; | ||
| MpPlatform["smart"] = "smart"; | ||
| MpPlatform["tiktok"] = "tiktok"; | ||
| MpPlatform["unknown"] = "unknown"; | ||
| })(exports.MpPlatform || (exports.MpPlatform = {})); | ||
| (function (MpViewType) { | ||
| MpViewType["App"] = "App"; | ||
| MpViewType["Page"] = "Page"; | ||
| MpViewType["Component"] = "Component"; | ||
| })(exports.MpViewType || (exports.MpViewType = {})); | ||
| (function (MpXmlContentType) { | ||
| MpXmlContentType["static"] = "static"; | ||
| MpXmlContentType["dynamic"] = "dynamic"; | ||
| })(exports.MpXmlContentType || (exports.MpXmlContentType = {})); | ||
| (function (MkXmlParseMessagePosition) { | ||
| MkXmlParseMessagePosition["text"] = "text"; | ||
| MkXmlParseMessagePosition["attr"] = "attr"; | ||
| })(exports.MkXmlParseMessagePosition || (exports.MkXmlParseMessagePosition = {})); | ||
| (function (MkMpXmlAstContentType) { | ||
| MkMpXmlAstContentType["static"] = "static"; | ||
| MkMpXmlAstContentType["dataBinding"] = "dataBinding"; | ||
| })(exports.MkMpXmlAstContentType || (exports.MkMpXmlAstContentType = {})); | ||
| (function (MkMpXmlNodeValidateResultLevel) { | ||
| MkMpXmlNodeValidateResultLevel["success"] = "success"; | ||
| MkMpXmlNodeValidateResultLevel["fail"] = "fail"; | ||
| MkMpXmlNodeValidateResultLevel["warn"] = "warn"; | ||
| MkMpXmlNodeValidateResultLevel["ignore"] = "ignore"; | ||
| })(exports.MkMpXmlNodeValidateResultLevel || (exports.MkMpXmlNodeValidateResultLevel = {})); | ||
| (function (MkMpXmlAttrContentType) { | ||
@@ -66,15 +19,2 @@ MkMpXmlAttrContentType["string"] = "string"; | ||
| 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 }); | ||
@@ -81,0 +21,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 $mkDiffSetDataBeforeValue: 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;;;;;;;;;;;;;;;;;;;;;"} | ||
| {"version":3,"file":"index.umd.js","sources":["../mpspec.ts"],"sourcesContent":["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 const 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 const 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":["MkMpXmlAttrContentType"],"mappings":";;;;;;;;;;;;IAsFA,WAAYA;IACRA,EAAAA,gCAAA,WAAA;IACAA,EAAAA,iCAAA,YAAA;IACAA,EAAAA,gCAAA,WAAA;IACH,CAJD,EAAYA,8BAAsB,KAAtBA,8BAAsB,KAAA,CAAlC;;;;;;;;"} |
+3
-3
| { | ||
| "name": "@mpkit/types", | ||
| "version": "1.0.17", | ||
| "version": "1.1.0", | ||
| "description": "mpkit包相关typescript类型", | ||
@@ -36,5 +36,5 @@ "author": "imingyu <mingyuhisoft@163.com>", | ||
| "dependencies": { | ||
| "forgiving-xml-parser": "^1.3.0" | ||
| "forgiving-xml-parser": "^1.4.0" | ||
| }, | ||
| "gitHead": "9b3b1871ec8eb30e659c484ccece5666e1631204" | ||
| "gitHead": "b9391d69f8dab1c05c97ae7f170469c8bd0f9f96" | ||
| } |
+2
-25
| export interface MpApiCallback { | ||
| (res?: any): any; | ||
| } | ||
| export interface MpApiMethodArg { | ||
| export interface MpApiMethodOptions { | ||
| success: MpApiCallback; | ||
@@ -11,3 +11,3 @@ fail: MpApiCallback; | ||
| export interface MpApiMethod { | ||
| (options?: MpApiMethodArg | any): any; | ||
| (options?: MpApiMethodOptions | any): any; | ||
| } | ||
@@ -17,24 +17,1 @@ export interface MpApiVar { | ||
| } | ||
| export declare enum MpRequestOptionsMethod { | ||
| OPTIONS = "OPTIONS", | ||
| GET = "GET", | ||
| POST = "POST", | ||
| HEAD = "HEAD", | ||
| PUT = "PUT", | ||
| DELETE = "DELETE", | ||
| TRACE = "TRACE", | ||
| CONNECT = "CONNECT" | ||
| } | ||
| export interface MpRequestOptions extends MpApiMethodArg { | ||
| url: string; | ||
| method: MpRequestOptionsMethod; | ||
| headers?: { | ||
| [prop: string]: string | number; | ||
| }; | ||
| } | ||
| export interface MpRequestTask { | ||
| abort: Function; | ||
| } | ||
| export interface MpApiRequestMethod { | ||
| (options: MpRequestOptions): MpRequestTask; | ||
| } |
+1
-0
@@ -12,2 +12,3 @@ export * from "./api"; | ||
| export * from "./mpspec"; | ||
| export * from "./func-helper"; | ||
| export { FxNodeAdapter, FxNodeCloseType, FxNodeType, FxTryStep, } from "forgiving-xml-parser"; |
+20
-1
@@ -1,3 +0,6 @@ | ||
| import { MpViewType, MpView } from "./view"; | ||
| import { MpViewType, MpView, MpViewComponetPropSpec, MpViewComponentLifes, MpViewComponentPageLifes } from "./view"; | ||
| import { MkMap, MkEnumMap } from "./util"; | ||
| export interface MkMixinMethodHookState { | ||
| id: string; | ||
| } | ||
| interface MpMethodHookLike { | ||
@@ -23,2 +26,18 @@ before?(methodName: string, methodArgs: any[], methodHandler: Function | Array<Function | string>, funId?: string): any; | ||
| } | ||
| export interface MkViewFormatSpec { | ||
| specialProps?: { | ||
| lifetimes?: MkEnumMap<MpViewComponentLifes, Function | string>[]; | ||
| pageLifetimes?: MkEnumMap<MpViewComponentPageLifes, Function | string>[]; | ||
| properties?: Array<{ | ||
| [prop: string]: Function | MpViewComponetPropSpec | any; | ||
| }>; | ||
| methods?: Array<{ | ||
| [prop: string]: Function; | ||
| }>; | ||
| }; | ||
| methodMap?: { | ||
| [prop: string]: Function[]; | ||
| }; | ||
| [prop: string]: any; | ||
| } | ||
| export {}; |
+2
-2
@@ -21,3 +21,3 @@ import { MpPlatform } from "./platform"; | ||
| } | ||
| export declare enum MkMpXmlAstContentType { | ||
| export declare const enum MkMpXmlAstContentType { | ||
| static = "static", | ||
@@ -52,3 +52,3 @@ dataBinding = "dataBinding" | ||
| } | ||
| export declare enum MkMpXmlNodeValidateResultLevel { | ||
| export declare const enum MkMpXmlNodeValidateResultLevel { | ||
| success = "success", | ||
@@ -55,0 +55,0 @@ fail = "fail", |
@@ -13,3 +13,3 @@ import { MkOmit, MkMap } from "./util"; | ||
| else: string; | ||
| xmlFileSuffix?: string; | ||
| xmlFileSuffix: string; | ||
| xjsNodeName?: string; | ||
@@ -24,2 +24,10 @@ xjsFileSuffix?: string; | ||
| includeSrcAttrName?: string; | ||
| mpxUnit: string; | ||
| cssFileSuffix: string; | ||
| triggerCustomEvent: boolean; | ||
| bindEvent: boolean; | ||
| catchEvent: boolean; | ||
| mutBindEvent: boolean; | ||
| captureBindEvent: boolean; | ||
| captureCatchEvent: boolean; | ||
| } | ||
@@ -69,3 +77,3 @@ export declare type MkPlatformNodeAdapterMap = { | ||
| } | ||
| export declare enum MpXmlContentType { | ||
| export declare const enum MpXmlContentType { | ||
| static = "static", | ||
@@ -90,6 +98,2 @@ dynamic = "dynamic" | ||
| } | ||
| export declare enum MkXmlParseMessagePosition { | ||
| text = "text", | ||
| attr = "attr" | ||
| } | ||
| export interface MkXmlParseMessage extends FxWrong { | ||
@@ -96,0 +100,0 @@ target?: FxNode | FxNodeJSON; |
@@ -1,2 +0,2 @@ | ||
| export declare enum MpPlatform { | ||
| export declare const enum MpPlatform { | ||
| wechat = "wechat", | ||
@@ -3,0 +3,0 @@ alipay = "alipay", |
+2
-2
@@ -30,3 +30,3 @@ import { MkEnumMap } from "./util"; | ||
| } | ||
| export declare enum MpViewType { | ||
| export declare const enum MpViewType { | ||
| App = "App", | ||
@@ -51,3 +51,3 @@ Page = "Page", | ||
| properties?: { | ||
| [prop: string]: Function | MpViewComponetPropSpec; | ||
| [prop: string]: Function | MpViewComponetPropSpec | any; | ||
| }; | ||
@@ -54,0 +54,0 @@ lifetimes?: MkEnumMap<MpViewComponentLifes, Function | string>; |
23
4.55%43769
-45.24%647
-11%Updated