├── .babelrc ├── .gitignore ├── .travis.yml ├── .vscode ├── launch.json └── settings.json ├── LICENSE ├── README.md ├── VERSION ├── blog └── 多平台小程序开发的差异性总结.md ├── lerna.json ├── package.json ├── packages ├── ebus │ ├── README.md │ ├── event-emitter.ts │ ├── index.ts │ ├── package-lock.json │ ├── package.json │ └── test │ │ └── index.js ├── func-helper │ ├── .gitignore │ ├── debug.js │ ├── hook.ts │ ├── index.ts │ ├── package.json │ ├── replace.ts │ └── test │ │ └── index.js ├── inject │ ├── README.md │ ├── config.ts │ ├── index.ts │ ├── name.d.ts │ ├── package-lock.json │ ├── package.json │ ├── plugins │ │ ├── ebus.ts │ │ ├── mixin.ts │ │ └── set-data.ts │ ├── types.ts │ └── util.ts ├── mixin │ ├── README.md │ ├── api.ts │ ├── debug.js │ ├── hook.ts │ ├── index.ts │ ├── mrege.ts │ ├── package-lock.json │ ├── package.json │ ├── store.ts │ ├── test │ │ └── index.js │ └── view.ts ├── mpspec │ ├── .gitignore │ ├── index.ts │ ├── package.json │ ├── validater.ts │ └── xml.ts ├── mpxml-parser │ ├── README.md │ ├── adapter │ │ ├── attr-base.ts │ │ ├── attr-for.ts │ │ ├── attr-where.ts │ │ ├── content.ts │ │ └── index.ts │ ├── content.ts │ ├── debug.js │ ├── index.ts │ ├── message.ts │ ├── package-lock.json │ ├── package.json │ ├── parse.ts │ ├── serialize.ts │ ├── spec.ts │ ├── test │ │ └── index.js │ ├── throw.ts │ ├── util.ts │ └── var.ts ├── mpxml-translator │ ├── .gitignore │ ├── index.ts │ ├── mp.ts │ ├── package-lock.json │ └── package.json ├── set-data │ ├── README.md │ ├── debug.js │ ├── index.ts │ ├── package-lock.json │ ├── package.json │ └── test │ │ └── index.js ├── standardization │ ├── .gitignore │ ├── component.ts │ ├── global.ts │ ├── package.json │ └── tool.ts ├── types │ ├── README.md │ ├── api.ts │ ├── ebus.ts │ ├── func-helper.ts │ ├── global.d.ts │ ├── index.ts │ ├── inject.ts │ ├── mixin.ts │ ├── mock-web.ts │ ├── mpspec.ts │ ├── mpxml-parser.ts │ ├── mpxml-translator.ts │ ├── package-lock.json │ ├── package.json │ ├── platform.ts │ ├── set-data.ts │ ├── util.ts │ └── view.ts └── util │ ├── .travis.yml │ ├── README.md │ ├── index.ts │ ├── package-lock.json │ └── package.json └── tsconfig.json /.babelrc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/imingyu/mpkit/HEAD/.babelrc -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/imingyu/mpkit/HEAD/.gitignore -------------------------------------------------------------------------------- /.travis.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/imingyu/mpkit/HEAD/.travis.yml -------------------------------------------------------------------------------- /.vscode/launch.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/imingyu/mpkit/HEAD/.vscode/launch.json -------------------------------------------------------------------------------- /.vscode/settings.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/imingyu/mpkit/HEAD/.vscode/settings.json -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/imingyu/mpkit/HEAD/LICENSE -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/imingyu/mpkit/HEAD/README.md -------------------------------------------------------------------------------- /VERSION: -------------------------------------------------------------------------------- 1 | 1.1.1 -------------------------------------------------------------------------------- /blog/多平台小程序开发的差异性总结.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/imingyu/mpkit/HEAD/blog/多平台小程序开发的差异性总结.md -------------------------------------------------------------------------------- /lerna.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/imingyu/mpkit/HEAD/lerna.json -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/imingyu/mpkit/HEAD/package.json -------------------------------------------------------------------------------- /packages/ebus/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/imingyu/mpkit/HEAD/packages/ebus/README.md -------------------------------------------------------------------------------- /packages/ebus/event-emitter.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/imingyu/mpkit/HEAD/packages/ebus/event-emitter.ts -------------------------------------------------------------------------------- /packages/ebus/index.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/imingyu/mpkit/HEAD/packages/ebus/index.ts -------------------------------------------------------------------------------- /packages/ebus/package-lock.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/imingyu/mpkit/HEAD/packages/ebus/package-lock.json -------------------------------------------------------------------------------- /packages/ebus/package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/imingyu/mpkit/HEAD/packages/ebus/package.json -------------------------------------------------------------------------------- /packages/ebus/test/index.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/imingyu/mpkit/HEAD/packages/ebus/test/index.js -------------------------------------------------------------------------------- /packages/func-helper/.gitignore: -------------------------------------------------------------------------------- 1 | *.d.ts -------------------------------------------------------------------------------- /packages/func-helper/debug.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/imingyu/mpkit/HEAD/packages/func-helper/debug.js -------------------------------------------------------------------------------- /packages/func-helper/hook.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/imingyu/mpkit/HEAD/packages/func-helper/hook.ts -------------------------------------------------------------------------------- /packages/func-helper/index.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/imingyu/mpkit/HEAD/packages/func-helper/index.ts -------------------------------------------------------------------------------- /packages/func-helper/package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/imingyu/mpkit/HEAD/packages/func-helper/package.json -------------------------------------------------------------------------------- /packages/func-helper/replace.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/imingyu/mpkit/HEAD/packages/func-helper/replace.ts -------------------------------------------------------------------------------- /packages/func-helper/test/index.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/imingyu/mpkit/HEAD/packages/func-helper/test/index.js -------------------------------------------------------------------------------- /packages/inject/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/imingyu/mpkit/HEAD/packages/inject/README.md -------------------------------------------------------------------------------- /packages/inject/config.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/imingyu/mpkit/HEAD/packages/inject/config.ts -------------------------------------------------------------------------------- /packages/inject/index.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/imingyu/mpkit/HEAD/packages/inject/index.ts -------------------------------------------------------------------------------- /packages/inject/name.d.ts: -------------------------------------------------------------------------------- 1 | declare module "*.json"; 2 | -------------------------------------------------------------------------------- /packages/inject/package-lock.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/imingyu/mpkit/HEAD/packages/inject/package-lock.json -------------------------------------------------------------------------------- /packages/inject/package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/imingyu/mpkit/HEAD/packages/inject/package.json -------------------------------------------------------------------------------- /packages/inject/plugins/ebus.ts: -------------------------------------------------------------------------------- 1 | export * from "@mpkit/ebus"; 2 | -------------------------------------------------------------------------------- /packages/inject/plugins/mixin.ts: -------------------------------------------------------------------------------- 1 | export * from "@mpkit/mixin"; 2 | -------------------------------------------------------------------------------- /packages/inject/plugins/set-data.ts: -------------------------------------------------------------------------------- 1 | export * from "@mpkit/set-data"; 2 | -------------------------------------------------------------------------------- /packages/inject/types.ts: -------------------------------------------------------------------------------- 1 | export * from "@mpkit/types"; 2 | -------------------------------------------------------------------------------- /packages/inject/util.ts: -------------------------------------------------------------------------------- 1 | export * from "@mpkit/util"; 2 | -------------------------------------------------------------------------------- /packages/mixin/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/imingyu/mpkit/HEAD/packages/mixin/README.md -------------------------------------------------------------------------------- /packages/mixin/api.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/imingyu/mpkit/HEAD/packages/mixin/api.ts -------------------------------------------------------------------------------- /packages/mixin/debug.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/imingyu/mpkit/HEAD/packages/mixin/debug.js -------------------------------------------------------------------------------- /packages/mixin/hook.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/imingyu/mpkit/HEAD/packages/mixin/hook.ts -------------------------------------------------------------------------------- /packages/mixin/index.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/imingyu/mpkit/HEAD/packages/mixin/index.ts -------------------------------------------------------------------------------- /packages/mixin/mrege.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/imingyu/mpkit/HEAD/packages/mixin/mrege.ts -------------------------------------------------------------------------------- /packages/mixin/package-lock.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/imingyu/mpkit/HEAD/packages/mixin/package-lock.json -------------------------------------------------------------------------------- /packages/mixin/package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/imingyu/mpkit/HEAD/packages/mixin/package.json -------------------------------------------------------------------------------- /packages/mixin/store.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/imingyu/mpkit/HEAD/packages/mixin/store.ts -------------------------------------------------------------------------------- /packages/mixin/test/index.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/imingyu/mpkit/HEAD/packages/mixin/test/index.js -------------------------------------------------------------------------------- /packages/mixin/view.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/imingyu/mpkit/HEAD/packages/mixin/view.ts -------------------------------------------------------------------------------- /packages/mpspec/.gitignore: -------------------------------------------------------------------------------- 1 | *.d.ts -------------------------------------------------------------------------------- /packages/mpspec/index.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/imingyu/mpkit/HEAD/packages/mpspec/index.ts -------------------------------------------------------------------------------- /packages/mpspec/package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/imingyu/mpkit/HEAD/packages/mpspec/package.json -------------------------------------------------------------------------------- /packages/mpspec/validater.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/imingyu/mpkit/HEAD/packages/mpspec/validater.ts -------------------------------------------------------------------------------- /packages/mpspec/xml.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/imingyu/mpkit/HEAD/packages/mpspec/xml.ts -------------------------------------------------------------------------------- /packages/mpxml-parser/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/imingyu/mpkit/HEAD/packages/mpxml-parser/README.md -------------------------------------------------------------------------------- /packages/mpxml-parser/adapter/attr-base.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/imingyu/mpkit/HEAD/packages/mpxml-parser/adapter/attr-base.ts -------------------------------------------------------------------------------- /packages/mpxml-parser/adapter/attr-for.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/imingyu/mpkit/HEAD/packages/mpxml-parser/adapter/attr-for.ts -------------------------------------------------------------------------------- /packages/mpxml-parser/adapter/attr-where.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/imingyu/mpkit/HEAD/packages/mpxml-parser/adapter/attr-where.ts -------------------------------------------------------------------------------- /packages/mpxml-parser/adapter/content.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/imingyu/mpkit/HEAD/packages/mpxml-parser/adapter/content.ts -------------------------------------------------------------------------------- /packages/mpxml-parser/adapter/index.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/imingyu/mpkit/HEAD/packages/mpxml-parser/adapter/index.ts -------------------------------------------------------------------------------- /packages/mpxml-parser/content.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/imingyu/mpkit/HEAD/packages/mpxml-parser/content.ts -------------------------------------------------------------------------------- /packages/mpxml-parser/debug.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/imingyu/mpkit/HEAD/packages/mpxml-parser/debug.js -------------------------------------------------------------------------------- /packages/mpxml-parser/index.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/imingyu/mpkit/HEAD/packages/mpxml-parser/index.ts -------------------------------------------------------------------------------- /packages/mpxml-parser/message.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/imingyu/mpkit/HEAD/packages/mpxml-parser/message.ts -------------------------------------------------------------------------------- /packages/mpxml-parser/package-lock.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/imingyu/mpkit/HEAD/packages/mpxml-parser/package-lock.json -------------------------------------------------------------------------------- /packages/mpxml-parser/package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/imingyu/mpkit/HEAD/packages/mpxml-parser/package.json -------------------------------------------------------------------------------- /packages/mpxml-parser/parse.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/imingyu/mpkit/HEAD/packages/mpxml-parser/parse.ts -------------------------------------------------------------------------------- /packages/mpxml-parser/serialize.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/imingyu/mpkit/HEAD/packages/mpxml-parser/serialize.ts -------------------------------------------------------------------------------- /packages/mpxml-parser/spec.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/imingyu/mpkit/HEAD/packages/mpxml-parser/spec.ts -------------------------------------------------------------------------------- /packages/mpxml-parser/test/index.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/imingyu/mpkit/HEAD/packages/mpxml-parser/test/index.js -------------------------------------------------------------------------------- /packages/mpxml-parser/throw.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/imingyu/mpkit/HEAD/packages/mpxml-parser/throw.ts -------------------------------------------------------------------------------- /packages/mpxml-parser/util.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/imingyu/mpkit/HEAD/packages/mpxml-parser/util.ts -------------------------------------------------------------------------------- /packages/mpxml-parser/var.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/imingyu/mpkit/HEAD/packages/mpxml-parser/var.ts -------------------------------------------------------------------------------- /packages/mpxml-translator/.gitignore: -------------------------------------------------------------------------------- 1 | *.d.ts -------------------------------------------------------------------------------- /packages/mpxml-translator/index.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/imingyu/mpkit/HEAD/packages/mpxml-translator/index.ts -------------------------------------------------------------------------------- /packages/mpxml-translator/mp.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/imingyu/mpkit/HEAD/packages/mpxml-translator/mp.ts -------------------------------------------------------------------------------- /packages/mpxml-translator/package-lock.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/imingyu/mpkit/HEAD/packages/mpxml-translator/package-lock.json -------------------------------------------------------------------------------- /packages/mpxml-translator/package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/imingyu/mpkit/HEAD/packages/mpxml-translator/package.json -------------------------------------------------------------------------------- /packages/set-data/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/imingyu/mpkit/HEAD/packages/set-data/README.md -------------------------------------------------------------------------------- /packages/set-data/debug.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/imingyu/mpkit/HEAD/packages/set-data/debug.js -------------------------------------------------------------------------------- /packages/set-data/index.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/imingyu/mpkit/HEAD/packages/set-data/index.ts -------------------------------------------------------------------------------- /packages/set-data/package-lock.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/imingyu/mpkit/HEAD/packages/set-data/package-lock.json -------------------------------------------------------------------------------- /packages/set-data/package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/imingyu/mpkit/HEAD/packages/set-data/package.json -------------------------------------------------------------------------------- /packages/set-data/test/index.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/imingyu/mpkit/HEAD/packages/set-data/test/index.js -------------------------------------------------------------------------------- /packages/standardization/.gitignore: -------------------------------------------------------------------------------- 1 | *.d.ts -------------------------------------------------------------------------------- /packages/standardization/component.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/imingyu/mpkit/HEAD/packages/standardization/component.ts -------------------------------------------------------------------------------- /packages/standardization/global.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/imingyu/mpkit/HEAD/packages/standardization/global.ts -------------------------------------------------------------------------------- /packages/standardization/package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/imingyu/mpkit/HEAD/packages/standardization/package.json -------------------------------------------------------------------------------- /packages/standardization/tool.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/imingyu/mpkit/HEAD/packages/standardization/tool.ts -------------------------------------------------------------------------------- /packages/types/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/imingyu/mpkit/HEAD/packages/types/README.md -------------------------------------------------------------------------------- /packages/types/api.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/imingyu/mpkit/HEAD/packages/types/api.ts -------------------------------------------------------------------------------- /packages/types/ebus.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/imingyu/mpkit/HEAD/packages/types/ebus.ts -------------------------------------------------------------------------------- /packages/types/func-helper.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/imingyu/mpkit/HEAD/packages/types/func-helper.ts -------------------------------------------------------------------------------- /packages/types/global.d.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/imingyu/mpkit/HEAD/packages/types/global.d.ts -------------------------------------------------------------------------------- /packages/types/index.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/imingyu/mpkit/HEAD/packages/types/index.ts -------------------------------------------------------------------------------- /packages/types/inject.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/imingyu/mpkit/HEAD/packages/types/inject.ts -------------------------------------------------------------------------------- /packages/types/mixin.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/imingyu/mpkit/HEAD/packages/types/mixin.ts -------------------------------------------------------------------------------- /packages/types/mock-web.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/imingyu/mpkit/HEAD/packages/types/mock-web.ts -------------------------------------------------------------------------------- /packages/types/mpspec.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/imingyu/mpkit/HEAD/packages/types/mpspec.ts -------------------------------------------------------------------------------- /packages/types/mpxml-parser.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/imingyu/mpkit/HEAD/packages/types/mpxml-parser.ts -------------------------------------------------------------------------------- /packages/types/mpxml-translator.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/imingyu/mpkit/HEAD/packages/types/mpxml-translator.ts -------------------------------------------------------------------------------- /packages/types/package-lock.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/imingyu/mpkit/HEAD/packages/types/package-lock.json -------------------------------------------------------------------------------- /packages/types/package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/imingyu/mpkit/HEAD/packages/types/package.json -------------------------------------------------------------------------------- /packages/types/platform.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/imingyu/mpkit/HEAD/packages/types/platform.ts -------------------------------------------------------------------------------- /packages/types/set-data.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/imingyu/mpkit/HEAD/packages/types/set-data.ts -------------------------------------------------------------------------------- /packages/types/util.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/imingyu/mpkit/HEAD/packages/types/util.ts -------------------------------------------------------------------------------- /packages/types/view.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/imingyu/mpkit/HEAD/packages/types/view.ts -------------------------------------------------------------------------------- /packages/util/.travis.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/imingyu/mpkit/HEAD/packages/util/.travis.yml -------------------------------------------------------------------------------- /packages/util/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/imingyu/mpkit/HEAD/packages/util/README.md -------------------------------------------------------------------------------- /packages/util/index.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/imingyu/mpkit/HEAD/packages/util/index.ts -------------------------------------------------------------------------------- /packages/util/package-lock.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/imingyu/mpkit/HEAD/packages/util/package-lock.json -------------------------------------------------------------------------------- /packages/util/package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/imingyu/mpkit/HEAD/packages/util/package.json -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/imingyu/mpkit/HEAD/tsconfig.json --------------------------------------------------------------------------------