├── .editorconfig
├── .eslintrc.js
├── .git-ftp-include
├── .github
├── FUNDING.yml
├── dependabot.yml
└── workflows
│ ├── auto-dependency-updater.yml
│ ├── codeql-analysis.yml
│ ├── deploy-docs.yml
│ ├── node-12-to-14.npm-6.test.yml
│ ├── publish-to-npmjs.dry.yml
│ ├── publish-to-npmjs.yml
│ ├── update-changelog.yml
│ └── weekly-releases.yml
├── .gitignore
├── .npmrc
├── .prettierignore
├── .vscode
└── settings.json
├── CHANGELOG.md
├── CODE_OF_CONDUCT.md
├── CONTRIBUTING.md
├── GUIDE.md
├── LICENSE.md
├── README.md
├── SECURITY.md
├── angular-tsconfigs
├── tsconfig.app.json
├── tsconfig.json
└── tsconfig.test.json
├── commitlint.config.js
├── docs
├── .vitepress
│ ├── config.js
│ ├── styles
│ │ └── styles.css
│ └── theme
│ │ └── index.js
├── arc
│ └── index.md
├── assets
│ ├── demo.sh
│ ├── leanup-migrate-1.2-module.png
│ ├── logo.inline.svg
│ ├── logo.only.svg
│ └── logo.svg
├── changelog
│ └── index.md
├── config
│ └── index.md
├── guide
│ ├── index.md
│ ├── installation
│ │ └── index.md
│ ├── migration
│ │ └── index.md
│ ├── showcase
│ │ └── index.md
│ └── usage
│ │ └── index.md
├── index.md
└── motivation
│ └── index.md
├── lerna.json
├── package-lock.json
├── package.json
├── packages
├── create-leanup
│ ├── .gitignore
│ ├── .ts-prunerc.js
│ ├── LICENSE
│ ├── README.md
│ ├── package-lock.json
│ ├── package.json
│ ├── src
│ │ └── cli.ts
│ ├── templates
│ │ ├── angular
│ │ │ ├── .editorconfig
│ │ │ ├── .eslintignore
│ │ │ ├── .eslintrc.js
│ │ │ ├── .mocharc.js
│ │ │ ├── .npmrc
│ │ │ ├── .prettierignore
│ │ │ ├── .ts-prunerc.js
│ │ │ ├── .vscode
│ │ │ │ └── settings.json
│ │ │ ├── README.md
│ │ │ ├── angular.json
│ │ │ ├── gitignore
│ │ │ ├── index.html
│ │ │ ├── nightwatch.conf.js
│ │ │ ├── nyc.config.js
│ │ │ ├── package.json
│ │ │ ├── postcss.config.js
│ │ │ ├── prettier.config.js
│ │ │ ├── public
│ │ │ │ └── index.html
│ │ │ ├── snowpack.config.js
│ │ │ ├── src
│ │ │ │ ├── angular.main.ts
│ │ │ │ ├── angular.module.ts
│ │ │ │ ├── app.run.ts
│ │ │ │ ├── assets
│ │ │ │ │ ├── logo.angular.png
│ │ │ │ │ └── logo.leanupjs.png
│ │ │ │ ├── components
│ │ │ │ │ ├── app
│ │ │ │ │ │ ├── component.angular.ts
│ │ │ │ │ │ └── controller.ts
│ │ │ │ │ ├── input
│ │ │ │ │ │ └── component.angular.ts
│ │ │ │ │ └── series
│ │ │ │ │ │ ├── create
│ │ │ │ │ │ ├── component.angular.ts
│ │ │ │ │ │ └── controller.ts
│ │ │ │ │ │ ├── edit
│ │ │ │ │ │ ├── component.angular.ts
│ │ │ │ │ │ └── controller.ts
│ │ │ │ │ │ ├── editor
│ │ │ │ │ │ ├── component.angular.ts
│ │ │ │ │ │ ├── controller.ts
│ │ │ │ │ │ └── editor.form.ts
│ │ │ │ │ │ └── list
│ │ │ │ │ │ ├── component.angular.ts
│ │ │ │ │ │ └── controller.ts
│ │ │ │ ├── main.ts
│ │ │ │ ├── models
│ │ │ │ │ ├── framework.interface.ts
│ │ │ │ │ ├── measured-item.model.ts
│ │ │ │ │ └── measured-series.model.ts
│ │ │ │ ├── services
│ │ │ │ │ ├── measurements
│ │ │ │ │ │ └── service.ts
│ │ │ │ │ ├── router
│ │ │ │ │ │ └── service.ts
│ │ │ │ │ └── storage
│ │ │ │ │ │ ├── mock.json
│ │ │ │ │ │ └── service.ts
│ │ │ │ ├── shares
│ │ │ │ │ ├── constant.ts
│ │ │ │ │ ├── filters.ts
│ │ │ │ │ ├── register.ts
│ │ │ │ │ ├── routing.ts
│ │ │ │ │ └── utils.ts
│ │ │ │ ├── style.sass
│ │ │ │ └── types
│ │ │ │ │ └── images.d.ts
│ │ │ ├── tests
│ │ │ │ ├── e2e.test.js
│ │ │ │ ├── e2e
│ │ │ │ │ ├── app-test.js
│ │ │ │ │ └── ecosia.js
│ │ │ │ └── unit
│ │ │ │ │ ├── injector.test.ts
│ │ │ │ │ └── openapi.test.ts
│ │ │ ├── tsconfig.app.json
│ │ │ ├── tsconfig.json
│ │ │ ├── webpack.config.mjs
│ │ │ └── windi.config.js
│ │ ├── angularjs
│ │ │ ├── .editorconfig
│ │ │ ├── .eslintignore
│ │ │ ├── .eslintrc.js
│ │ │ ├── .mocharc.js
│ │ │ ├── .npmrc
│ │ │ ├── .prettierignore
│ │ │ ├── .ts-prunerc.js
│ │ │ ├── .vscode
│ │ │ │ └── settings.json
│ │ │ ├── README.md
│ │ │ ├── babel.config.js
│ │ │ ├── gitignore
│ │ │ ├── index.html
│ │ │ ├── nightwatch.conf.js
│ │ │ ├── nyc.config.js
│ │ │ ├── package.json
│ │ │ ├── postcss.config.js
│ │ │ ├── prettier.config.js
│ │ │ ├── public
│ │ │ │ └── index.html
│ │ │ ├── snowpack.config.js
│ │ │ ├── src
│ │ │ │ ├── angularjs.main.ts
│ │ │ │ ├── angularjs.module.ts
│ │ │ │ ├── app.run.ts
│ │ │ │ ├── assets
│ │ │ │ │ ├── logo.angularjs.png
│ │ │ │ │ └── logo.leanupjs.png
│ │ │ │ ├── components
│ │ │ │ │ ├── app
│ │ │ │ │ │ ├── component.angularjs.ts
│ │ │ │ │ │ └── controller.ts
│ │ │ │ │ ├── input
│ │ │ │ │ │ └── component.angularjs.ts
│ │ │ │ │ └── series
│ │ │ │ │ │ ├── create
│ │ │ │ │ │ ├── component.angularjs.ts
│ │ │ │ │ │ └── controller.ts
│ │ │ │ │ │ ├── edit
│ │ │ │ │ │ ├── component.angularjs.ts
│ │ │ │ │ │ └── controller.ts
│ │ │ │ │ │ ├── editor
│ │ │ │ │ │ ├── component.angularjs.ts
│ │ │ │ │ │ ├── controller.ts
│ │ │ │ │ │ └── editor.form.ts
│ │ │ │ │ │ └── list
│ │ │ │ │ │ ├── component.angularjs.ts
│ │ │ │ │ │ └── controller.ts
│ │ │ │ ├── main.ts
│ │ │ │ ├── models
│ │ │ │ │ ├── framework.interface.ts
│ │ │ │ │ ├── measured-item.model.ts
│ │ │ │ │ └── measured-series.model.ts
│ │ │ │ ├── services
│ │ │ │ │ ├── measurements
│ │ │ │ │ │ └── service.ts
│ │ │ │ │ ├── router
│ │ │ │ │ │ └── service.ts
│ │ │ │ │ └── storage
│ │ │ │ │ │ ├── mock.json
│ │ │ │ │ │ └── service.ts
│ │ │ │ ├── shares
│ │ │ │ │ ├── constant.ts
│ │ │ │ │ ├── filters.ts
│ │ │ │ │ ├── register.ts
│ │ │ │ │ ├── routing.ts
│ │ │ │ │ └── utils.ts
│ │ │ │ ├── style.sass
│ │ │ │ └── types
│ │ │ │ │ └── images.d.ts
│ │ │ ├── tests
│ │ │ │ ├── e2e.test.js
│ │ │ │ ├── e2e
│ │ │ │ │ ├── app-test.js
│ │ │ │ │ └── ecosia.js
│ │ │ │ └── unit
│ │ │ │ │ ├── injector.test.ts
│ │ │ │ │ └── openapi.test.ts
│ │ │ ├── tsconfig.json
│ │ │ ├── vite.config.js
│ │ │ ├── webpack.config.js
│ │ │ └── windi.config.js
│ │ ├── aurelia
│ │ │ ├── .editorconfig
│ │ │ ├── .eslintignore
│ │ │ ├── .eslintrc.js
│ │ │ ├── .mocharc.js
│ │ │ ├── .npmrc
│ │ │ ├── .prettierignore
│ │ │ ├── .ts-prunerc.js
│ │ │ ├── .vscode
│ │ │ │ └── settings.json
│ │ │ ├── README.md
│ │ │ ├── gitignore
│ │ │ ├── index.html
│ │ │ ├── nightwatch.conf.js
│ │ │ ├── nyc.config.js
│ │ │ ├── package.json
│ │ │ ├── postcss.config.js
│ │ │ ├── prettier.config.js
│ │ │ ├── public
│ │ │ │ └── index.html
│ │ │ ├── src
│ │ │ │ ├── app.run.ts
│ │ │ │ ├── assets
│ │ │ │ │ ├── logo.aurelia.png
│ │ │ │ │ └── logo.leanupjs.png
│ │ │ │ ├── aurelia.main.ts
│ │ │ │ ├── components
│ │ │ │ │ ├── app
│ │ │ │ │ │ ├── component.aurelia.html
│ │ │ │ │ │ ├── component.aurelia.ts
│ │ │ │ │ │ └── controller.ts
│ │ │ │ │ ├── input
│ │ │ │ │ │ ├── component.aurelia.html
│ │ │ │ │ │ └── component.aurelia.ts
│ │ │ │ │ └── series
│ │ │ │ │ │ ├── create
│ │ │ │ │ │ ├── component.aurelia.html
│ │ │ │ │ │ ├── component.aurelia.ts
│ │ │ │ │ │ └── controller.ts
│ │ │ │ │ │ ├── edit
│ │ │ │ │ │ ├── component.aurelia.html
│ │ │ │ │ │ ├── component.aurelia.ts
│ │ │ │ │ │ └── controller.ts
│ │ │ │ │ │ ├── editor
│ │ │ │ │ │ ├── component.aurelia.html
│ │ │ │ │ │ ├── component.aurelia.ts
│ │ │ │ │ │ ├── controller.ts
│ │ │ │ │ │ └── editor.form.ts
│ │ │ │ │ │ └── list
│ │ │ │ │ │ ├── component.aurelia.html
│ │ │ │ │ │ ├── component.aurelia.ts
│ │ │ │ │ │ └── controller.ts
│ │ │ │ ├── main.ts
│ │ │ │ ├── models
│ │ │ │ │ ├── framework.interface.ts
│ │ │ │ │ ├── measured-item.model.ts
│ │ │ │ │ └── measured-series.model.ts
│ │ │ │ ├── services
│ │ │ │ │ ├── measurements
│ │ │ │ │ │ └── service.ts
│ │ │ │ │ ├── router
│ │ │ │ │ │ └── service.ts
│ │ │ │ │ └── storage
│ │ │ │ │ │ ├── mock.json
│ │ │ │ │ │ └── service.ts
│ │ │ │ ├── shares
│ │ │ │ │ ├── constant.ts
│ │ │ │ │ ├── filters.ts
│ │ │ │ │ ├── register.ts
│ │ │ │ │ ├── routing.ts
│ │ │ │ │ └── utils.ts
│ │ │ │ ├── style.sass
│ │ │ │ └── types
│ │ │ │ │ └── images.d.ts
│ │ │ ├── tests
│ │ │ │ ├── e2e.test.js
│ │ │ │ ├── e2e
│ │ │ │ │ ├── app-test.js
│ │ │ │ │ └── ecosia.js
│ │ │ │ └── unit
│ │ │ │ │ ├── injector.test.ts
│ │ │ │ │ └── openapi.test.ts
│ │ │ ├── tsconfig.json
│ │ │ ├── webpack.config.js
│ │ │ └── windi.config.js
│ │ ├── inferno
│ │ │ ├── .editorconfig
│ │ │ ├── .eslintignore
│ │ │ ├── .eslintrc.js
│ │ │ ├── .mocharc.js
│ │ │ ├── .npmrc
│ │ │ ├── .prettierignore
│ │ │ ├── .ts-prunerc.js
│ │ │ ├── .vscode
│ │ │ │ └── settings.json
│ │ │ ├── README.md
│ │ │ ├── babel.config.js
│ │ │ ├── gitignore
│ │ │ ├── index.html
│ │ │ ├── nightwatch.conf.js
│ │ │ ├── nyc.config.js
│ │ │ ├── package.json
│ │ │ ├── postcss.config.js
│ │ │ ├── prettier.config.js
│ │ │ ├── public
│ │ │ │ └── index.html
│ │ │ ├── snowpack.config.js
│ │ │ ├── src
│ │ │ │ ├── app.run.ts
│ │ │ │ ├── assets
│ │ │ │ │ ├── logo.inferno.png
│ │ │ │ │ └── logo.leanupjs.png
│ │ │ │ ├── components
│ │ │ │ │ ├── app
│ │ │ │ │ │ ├── component.inferno.tsx
│ │ │ │ │ │ └── controller.ts
│ │ │ │ │ ├── input
│ │ │ │ │ │ └── component.inferno.tsx
│ │ │ │ │ └── series
│ │ │ │ │ │ ├── create
│ │ │ │ │ │ ├── component.inferno.tsx
│ │ │ │ │ │ └── controller.ts
│ │ │ │ │ │ ├── edit
│ │ │ │ │ │ ├── component.inferno.tsx
│ │ │ │ │ │ └── controller.ts
│ │ │ │ │ │ ├── editor
│ │ │ │ │ │ ├── component.inferno.tsx
│ │ │ │ │ │ ├── controller.ts
│ │ │ │ │ │ └── editor.form.ts
│ │ │ │ │ │ └── list
│ │ │ │ │ │ ├── component.inferno.tsx
│ │ │ │ │ │ └── controller.ts
│ │ │ │ ├── inferno.main.tsx
│ │ │ │ ├── main.ts
│ │ │ │ ├── models
│ │ │ │ │ ├── framework.interface.ts
│ │ │ │ │ ├── measured-item.model.ts
│ │ │ │ │ └── measured-series.model.ts
│ │ │ │ ├── services
│ │ │ │ │ ├── measurements
│ │ │ │ │ │ └── service.ts
│ │ │ │ │ ├── router
│ │ │ │ │ │ └── service.ts
│ │ │ │ │ └── storage
│ │ │ │ │ │ ├── mock.json
│ │ │ │ │ │ └── service.ts
│ │ │ │ ├── shares
│ │ │ │ │ ├── constant.ts
│ │ │ │ │ ├── filters.ts
│ │ │ │ │ ├── register.ts
│ │ │ │ │ ├── routing.ts
│ │ │ │ │ └── utils.ts
│ │ │ │ ├── style.sass
│ │ │ │ └── types
│ │ │ │ │ └── images.d.ts
│ │ │ ├── tests
│ │ │ │ ├── e2e.test.js
│ │ │ │ ├── e2e
│ │ │ │ │ ├── app-test.js
│ │ │ │ │ └── ecosia.js
│ │ │ │ └── unit
│ │ │ │ │ ├── injector.test.ts
│ │ │ │ │ └── openapi.test.ts
│ │ │ ├── tsconfig.json
│ │ │ ├── vite.config.js
│ │ │ ├── webpack.config.js
│ │ │ └── windi.config.js
│ │ ├── lit-element
│ │ │ ├── .editorconfig
│ │ │ ├── .eslintignore
│ │ │ ├── .eslintrc.js
│ │ │ ├── .mocharc.js
│ │ │ ├── .npmrc
│ │ │ ├── .prettierignore
│ │ │ ├── .ts-prunerc.js
│ │ │ ├── .vscode
│ │ │ │ └── settings.json
│ │ │ ├── README.md
│ │ │ ├── gitignore
│ │ │ ├── index.html
│ │ │ ├── nightwatch.conf.js
│ │ │ ├── nyc.config.js
│ │ │ ├── package.json
│ │ │ ├── postcss.config.js
│ │ │ ├── prettier.config.js
│ │ │ ├── public
│ │ │ │ └── index.html
│ │ │ ├── snowpack.config.js
│ │ │ ├── src
│ │ │ │ ├── app.run.ts
│ │ │ │ ├── assets
│ │ │ │ │ ├── logo.leanupjs.png
│ │ │ │ │ └── logo.polymer.png
│ │ │ │ ├── components
│ │ │ │ │ ├── app
│ │ │ │ │ │ ├── component.lit-element.ts
│ │ │ │ │ │ └── controller.ts
│ │ │ │ │ ├── component.lit-element.ts
│ │ │ │ │ ├── input
│ │ │ │ │ │ └── component.lit-element.ts
│ │ │ │ │ └── series
│ │ │ │ │ │ ├── create
│ │ │ │ │ │ ├── component.lit-element.ts
│ │ │ │ │ │ └── controller.ts
│ │ │ │ │ │ ├── edit
│ │ │ │ │ │ ├── component.lit-element.ts
│ │ │ │ │ │ └── controller.ts
│ │ │ │ │ │ ├── editor
│ │ │ │ │ │ ├── component.lit-element.ts
│ │ │ │ │ │ ├── controller.ts
│ │ │ │ │ │ └── editor.form.ts
│ │ │ │ │ │ └── list
│ │ │ │ │ │ ├── component.lit-element.ts
│ │ │ │ │ │ └── controller.ts
│ │ │ │ ├── lit-element.main.ts
│ │ │ │ ├── main.ts
│ │ │ │ ├── models
│ │ │ │ │ ├── framework.interface.ts
│ │ │ │ │ ├── measured-item.model.ts
│ │ │ │ │ └── measured-series.model.ts
│ │ │ │ ├── services
│ │ │ │ │ ├── measurements
│ │ │ │ │ │ └── service.ts
│ │ │ │ │ ├── router
│ │ │ │ │ │ └── service.ts
│ │ │ │ │ └── storage
│ │ │ │ │ │ ├── mock.json
│ │ │ │ │ │ └── service.ts
│ │ │ │ ├── shares
│ │ │ │ │ ├── constant.ts
│ │ │ │ │ ├── filters.ts
│ │ │ │ │ ├── register.ts
│ │ │ │ │ ├── routing.ts
│ │ │ │ │ └── utils.ts
│ │ │ │ ├── style.sass
│ │ │ │ └── types
│ │ │ │ │ └── images.d.ts
│ │ │ ├── tests
│ │ │ │ ├── e2e.test.js
│ │ │ │ ├── e2e
│ │ │ │ │ ├── app-test.js
│ │ │ │ │ └── ecosia.js
│ │ │ │ └── unit
│ │ │ │ │ ├── injector.test.ts
│ │ │ │ │ └── openapi.test.ts
│ │ │ ├── tsconfig.json
│ │ │ ├── vite.config.js
│ │ │ ├── webpack.config.js
│ │ │ └── windi.config.js
│ │ ├── preact
│ │ │ ├── .editorconfig
│ │ │ ├── .eslintignore
│ │ │ ├── .eslintrc.js
│ │ │ ├── .mocharc.js
│ │ │ ├── .npmrc
│ │ │ ├── .prettierignore
│ │ │ ├── .ts-prunerc.js
│ │ │ ├── .vscode
│ │ │ │ └── settings.json
│ │ │ ├── README.md
│ │ │ ├── gitignore
│ │ │ ├── index.html
│ │ │ ├── nightwatch.conf.js
│ │ │ ├── nyc.config.js
│ │ │ ├── package.json
│ │ │ ├── postcss.config.js
│ │ │ ├── prettier.config.js
│ │ │ ├── public
│ │ │ │ └── index.html
│ │ │ ├── snowpack.config.js
│ │ │ ├── src
│ │ │ │ ├── app.run.ts
│ │ │ │ ├── assets
│ │ │ │ │ ├── logo.leanupjs.png
│ │ │ │ │ └── logo.preact.png
│ │ │ │ ├── components
│ │ │ │ │ ├── app
│ │ │ │ │ │ ├── component.preact.tsx
│ │ │ │ │ │ └── controller.ts
│ │ │ │ │ ├── input
│ │ │ │ │ │ └── component.preact.tsx
│ │ │ │ │ └── series
│ │ │ │ │ │ ├── create
│ │ │ │ │ │ ├── component.preact.tsx
│ │ │ │ │ │ └── controller.ts
│ │ │ │ │ │ ├── edit
│ │ │ │ │ │ ├── component.preact.tsx
│ │ │ │ │ │ └── controller.ts
│ │ │ │ │ │ ├── editor
│ │ │ │ │ │ ├── component.preact.tsx
│ │ │ │ │ │ ├── controller.ts
│ │ │ │ │ │ └── editor.form.ts
│ │ │ │ │ │ └── list
│ │ │ │ │ │ ├── component.preact.tsx
│ │ │ │ │ │ └── controller.ts
│ │ │ │ ├── main.ts
│ │ │ │ ├── models
│ │ │ │ │ ├── framework.interface.ts
│ │ │ │ │ ├── measured-item.model.ts
│ │ │ │ │ └── measured-series.model.ts
│ │ │ │ ├── preact.main.tsx
│ │ │ │ ├── services
│ │ │ │ │ ├── measurements
│ │ │ │ │ │ └── service.ts
│ │ │ │ │ ├── router
│ │ │ │ │ │ └── service.ts
│ │ │ │ │ └── storage
│ │ │ │ │ │ ├── mock.json
│ │ │ │ │ │ └── service.ts
│ │ │ │ ├── shares
│ │ │ │ │ ├── constant.ts
│ │ │ │ │ ├── filters.ts
│ │ │ │ │ ├── register.ts
│ │ │ │ │ ├── routing.ts
│ │ │ │ │ └── utils.ts
│ │ │ │ ├── style.sass
│ │ │ │ └── types
│ │ │ │ │ └── images.d.ts
│ │ │ ├── tests
│ │ │ │ ├── e2e.test.js
│ │ │ │ ├── e2e
│ │ │ │ │ ├── app-test.js
│ │ │ │ │ └── ecosia.js
│ │ │ │ └── unit
│ │ │ │ │ ├── injector.test.ts
│ │ │ │ │ └── openapi.test.ts
│ │ │ ├── tsconfig.json
│ │ │ ├── vite.config.js
│ │ │ ├── webpack.config.js
│ │ │ └── windi.config.js
│ │ ├── react
│ │ │ ├── .editorconfig
│ │ │ ├── .eslintignore
│ │ │ ├── .eslintrc.js
│ │ │ ├── .mocharc.js
│ │ │ ├── .npmrc
│ │ │ ├── .prettierignore
│ │ │ ├── .ts-prunerc.js
│ │ │ ├── .vscode
│ │ │ │ └── settings.json
│ │ │ ├── README.md
│ │ │ ├── gitignore
│ │ │ ├── index.html
│ │ │ ├── nightwatch.conf.js
│ │ │ ├── nyc.config.js
│ │ │ ├── package.json
│ │ │ ├── postcss.config.js
│ │ │ ├── prettier.config.js
│ │ │ ├── public
│ │ │ │ └── index.html
│ │ │ ├── snowpack.config.js
│ │ │ ├── src
│ │ │ │ ├── app.run.ts
│ │ │ │ ├── assets
│ │ │ │ │ ├── logo.leanupjs.png
│ │ │ │ │ └── logo.react.png
│ │ │ │ ├── components
│ │ │ │ │ ├── app
│ │ │ │ │ │ ├── component.react.tsx
│ │ │ │ │ │ └── controller.ts
│ │ │ │ │ ├── input
│ │ │ │ │ │ └── component.react.tsx
│ │ │ │ │ └── series
│ │ │ │ │ │ ├── create
│ │ │ │ │ │ ├── component.react.tsx
│ │ │ │ │ │ └── controller.ts
│ │ │ │ │ │ ├── edit
│ │ │ │ │ │ ├── component.react.tsx
│ │ │ │ │ │ └── controller.ts
│ │ │ │ │ │ ├── editor
│ │ │ │ │ │ ├── component.react.tsx
│ │ │ │ │ │ ├── controller.ts
│ │ │ │ │ │ └── editor.form.ts
│ │ │ │ │ │ └── list
│ │ │ │ │ │ ├── component.react.tsx
│ │ │ │ │ │ └── controller.ts
│ │ │ │ ├── main.ts
│ │ │ │ ├── models
│ │ │ │ │ ├── framework.interface.ts
│ │ │ │ │ ├── measured-item.model.ts
│ │ │ │ │ └── measured-series.model.ts
│ │ │ │ ├── react.main.tsx
│ │ │ │ ├── services
│ │ │ │ │ ├── measurements
│ │ │ │ │ │ └── service.ts
│ │ │ │ │ ├── router
│ │ │ │ │ │ └── service.ts
│ │ │ │ │ └── storage
│ │ │ │ │ │ ├── mock.json
│ │ │ │ │ │ └── service.ts
│ │ │ │ ├── shares
│ │ │ │ │ ├── constant.ts
│ │ │ │ │ ├── filters.ts
│ │ │ │ │ ├── register.ts
│ │ │ │ │ ├── routing.ts
│ │ │ │ │ └── utils.ts
│ │ │ │ ├── style.sass
│ │ │ │ └── types
│ │ │ │ │ └── images.d.ts
│ │ │ ├── tests
│ │ │ │ ├── e2e.test.js
│ │ │ │ ├── e2e
│ │ │ │ │ ├── app-test.js
│ │ │ │ │ └── ecosia.js
│ │ │ │ └── unit
│ │ │ │ │ ├── injector.test.ts
│ │ │ │ │ └── openapi.test.ts
│ │ │ ├── tsconfig.json
│ │ │ ├── vite.config.js
│ │ │ ├── webpack.config.js
│ │ │ └── windi.config.js
│ │ ├── solid
│ │ │ ├── .editorconfig
│ │ │ ├── .eslintignore
│ │ │ ├── .eslintrc.js
│ │ │ ├── .mocharc.js
│ │ │ ├── .npmrc
│ │ │ ├── .prettierignore
│ │ │ ├── .ts-prunerc.js
│ │ │ ├── .vscode
│ │ │ │ └── settings.json
│ │ │ ├── README.md
│ │ │ ├── babel.config.js
│ │ │ ├── gitignore
│ │ │ ├── index.html
│ │ │ ├── nightwatch.conf.js
│ │ │ ├── nyc.config.js
│ │ │ ├── package.json
│ │ │ ├── postcss.config.js
│ │ │ ├── prettier.config.js
│ │ │ ├── public
│ │ │ │ └── index.html
│ │ │ ├── snowpack.config.js
│ │ │ ├── src
│ │ │ │ ├── app.run.ts
│ │ │ │ ├── assets
│ │ │ │ │ ├── logo.leanupjs.png
│ │ │ │ │ └── logo.solid.png
│ │ │ │ ├── components
│ │ │ │ │ ├── app
│ │ │ │ │ │ ├── component.solid.tsx
│ │ │ │ │ │ └── controller.ts
│ │ │ │ │ ├── input
│ │ │ │ │ │ └── component.solid.tsx
│ │ │ │ │ └── series
│ │ │ │ │ │ ├── create
│ │ │ │ │ │ ├── component.solid.tsx
│ │ │ │ │ │ └── controller.ts
│ │ │ │ │ │ ├── edit
│ │ │ │ │ │ ├── component.solid.tsx
│ │ │ │ │ │ └── controller.ts
│ │ │ │ │ │ ├── editor
│ │ │ │ │ │ ├── component.solid.tsx
│ │ │ │ │ │ ├── controller.ts
│ │ │ │ │ │ └── editor.form.ts
│ │ │ │ │ │ └── list
│ │ │ │ │ │ ├── component.solid.tsx
│ │ │ │ │ │ └── controller.ts
│ │ │ │ ├── main.ts
│ │ │ │ ├── models
│ │ │ │ │ ├── framework.interface.ts
│ │ │ │ │ ├── measured-item.model.ts
│ │ │ │ │ └── measured-series.model.ts
│ │ │ │ ├── services
│ │ │ │ │ ├── measurements
│ │ │ │ │ │ └── service.ts
│ │ │ │ │ ├── router
│ │ │ │ │ │ └── service.ts
│ │ │ │ │ └── storage
│ │ │ │ │ │ ├── mock.json
│ │ │ │ │ │ └── service.ts
│ │ │ │ ├── shares
│ │ │ │ │ ├── constant.ts
│ │ │ │ │ ├── filters.ts
│ │ │ │ │ ├── register.ts
│ │ │ │ │ ├── routing.ts
│ │ │ │ │ └── utils.ts
│ │ │ │ ├── solid.main.tsx
│ │ │ │ ├── style.sass
│ │ │ │ └── types
│ │ │ │ │ └── images.d.ts
│ │ │ ├── tests
│ │ │ │ ├── e2e.test.js
│ │ │ │ ├── e2e
│ │ │ │ │ ├── app-test.js
│ │ │ │ │ └── ecosia.js
│ │ │ │ └── unit
│ │ │ │ │ ├── injector.test.ts
│ │ │ │ │ └── openapi.test.ts
│ │ │ ├── tsconfig.json
│ │ │ ├── vite.config.js
│ │ │ ├── webpack.config.js
│ │ │ └── windi.config.js
│ │ ├── svelte
│ │ │ ├── .editorconfig
│ │ │ ├── .eslintignore
│ │ │ ├── .eslintrc.js
│ │ │ ├── .mocharc.js
│ │ │ ├── .npmrc
│ │ │ ├── .prettierignore
│ │ │ ├── .ts-prunerc.js
│ │ │ ├── .vscode
│ │ │ │ └── settings.json
│ │ │ ├── README.md
│ │ │ ├── gitignore
│ │ │ ├── index.html
│ │ │ ├── nightwatch.conf.js
│ │ │ ├── nyc.config.js
│ │ │ ├── package.json
│ │ │ ├── postcss.config.js
│ │ │ ├── prettier.config.js
│ │ │ ├── public
│ │ │ │ └── index.html
│ │ │ ├── snowpack.config.js
│ │ │ ├── src
│ │ │ │ ├── app.run.ts
│ │ │ │ ├── assets
│ │ │ │ │ ├── logo.leanupjs.png
│ │ │ │ │ └── logo.svelte.png
│ │ │ │ ├── components
│ │ │ │ │ ├── app
│ │ │ │ │ │ ├── component.svelte
│ │ │ │ │ │ └── controller.ts
│ │ │ │ │ ├── input
│ │ │ │ │ │ └── component.svelte
│ │ │ │ │ └── series
│ │ │ │ │ │ ├── create
│ │ │ │ │ │ ├── component.svelte
│ │ │ │ │ │ └── controller.ts
│ │ │ │ │ │ ├── edit
│ │ │ │ │ │ ├── component.svelte
│ │ │ │ │ │ └── controller.ts
│ │ │ │ │ │ ├── editor
│ │ │ │ │ │ ├── component.svelte
│ │ │ │ │ │ ├── controller.ts
│ │ │ │ │ │ └── editor.form.ts
│ │ │ │ │ │ └── list
│ │ │ │ │ │ ├── component.svelte
│ │ │ │ │ │ └── controller.ts
│ │ │ │ ├── main.ts
│ │ │ │ ├── models
│ │ │ │ │ ├── framework.interface.ts
│ │ │ │ │ ├── measured-item.model.ts
│ │ │ │ │ └── measured-series.model.ts
│ │ │ │ ├── services
│ │ │ │ │ ├── measurements
│ │ │ │ │ │ └── service.ts
│ │ │ │ │ ├── router
│ │ │ │ │ │ └── service.ts
│ │ │ │ │ └── storage
│ │ │ │ │ │ ├── mock.json
│ │ │ │ │ │ └── service.ts
│ │ │ │ ├── shares
│ │ │ │ │ ├── constant.ts
│ │ │ │ │ ├── filters.ts
│ │ │ │ │ ├── register.ts
│ │ │ │ │ ├── routing.ts
│ │ │ │ │ └── utils.ts
│ │ │ │ ├── style.sass
│ │ │ │ ├── svelte.main.ts
│ │ │ │ └── types
│ │ │ │ │ └── images.d.ts
│ │ │ ├── tests
│ │ │ │ ├── e2e.test.js
│ │ │ │ ├── e2e
│ │ │ │ │ ├── app-test.js
│ │ │ │ │ └── ecosia.js
│ │ │ │ └── unit
│ │ │ │ │ ├── injector.test.ts
│ │ │ │ │ └── openapi.test.ts
│ │ │ ├── tsconfig.json
│ │ │ ├── vite.config.js
│ │ │ ├── webpack.config.js
│ │ │ └── windi.config.js
│ │ ├── vanilla
│ │ │ ├── .editorconfig
│ │ │ ├── .eslintignore
│ │ │ ├── .eslintrc.js
│ │ │ ├── .mocharc.js
│ │ │ ├── .npmrc
│ │ │ ├── .prettierignore
│ │ │ ├── .ts-prunerc.js
│ │ │ ├── .vscode
│ │ │ │ └── settings.json
│ │ │ ├── README.md
│ │ │ ├── gitignore
│ │ │ ├── index.html
│ │ │ ├── nightwatch.conf.js
│ │ │ ├── nyc.config.js
│ │ │ ├── package.json
│ │ │ ├── postcss.config.js
│ │ │ ├── prettier.config.js
│ │ │ ├── public
│ │ │ │ └── index.html
│ │ │ ├── snowpack.config.js
│ │ │ ├── src
│ │ │ │ ├── app.run.ts
│ │ │ │ ├── assets
│ │ │ │ │ ├── logo.leanupjs.png
│ │ │ │ │ └── logo.vanilla.png
│ │ │ │ ├── components
│ │ │ │ │ ├── app
│ │ │ │ │ │ ├── component.vanilla.ts
│ │ │ │ │ │ └── controller.ts
│ │ │ │ │ ├── component.vanilla.ts
│ │ │ │ │ └── series
│ │ │ │ │ │ ├── create
│ │ │ │ │ │ ├── component.vanilla.ts
│ │ │ │ │ │ └── controller.ts
│ │ │ │ │ │ ├── edit
│ │ │ │ │ │ └── controller.ts
│ │ │ │ │ │ ├── editor
│ │ │ │ │ │ ├── controller.ts
│ │ │ │ │ │ └── editor.form.ts
│ │ │ │ │ │ └── list
│ │ │ │ │ │ ├── component.vanilla.ts
│ │ │ │ │ │ └── controller.ts
│ │ │ │ ├── main.ts
│ │ │ │ ├── main.vanilla.ts
│ │ │ │ ├── models
│ │ │ │ │ ├── framework.interface.ts
│ │ │ │ │ ├── measured-item.model.ts
│ │ │ │ │ └── measured-series.model.ts
│ │ │ │ ├── services
│ │ │ │ │ ├── measurements
│ │ │ │ │ │ └── service.ts
│ │ │ │ │ ├── router
│ │ │ │ │ │ └── service.ts
│ │ │ │ │ └── storage
│ │ │ │ │ │ ├── mock.json
│ │ │ │ │ │ └── service.ts
│ │ │ │ ├── shares
│ │ │ │ │ ├── constant.ts
│ │ │ │ │ ├── filters.ts
│ │ │ │ │ ├── register.ts
│ │ │ │ │ ├── routing.ts
│ │ │ │ │ └── utils.ts
│ │ │ │ ├── style.sass
│ │ │ │ └── types
│ │ │ │ │ └── images.d.ts
│ │ │ ├── tests
│ │ │ │ ├── e2e.test.js
│ │ │ │ ├── e2e
│ │ │ │ │ ├── app-test.js
│ │ │ │ │ └── ecosia.js
│ │ │ │ └── unit
│ │ │ │ │ ├── injector.test.ts
│ │ │ │ │ └── openapi.test.ts
│ │ │ ├── tsconfig.json
│ │ │ ├── vite.config.js
│ │ │ ├── webpack.config.js
│ │ │ └── windi.config.js
│ │ ├── vue
│ │ │ ├── .editorconfig
│ │ │ ├── .eslintignore
│ │ │ ├── .eslintrc.js
│ │ │ ├── .mocharc.js
│ │ │ ├── .npmrc
│ │ │ ├── .prettierignore
│ │ │ ├── .ts-prunerc.js
│ │ │ ├── .vscode
│ │ │ │ └── settings.json
│ │ │ ├── README.md
│ │ │ ├── gitignore
│ │ │ ├── index.html
│ │ │ ├── nightwatch.conf.js
│ │ │ ├── nyc.config.js
│ │ │ ├── package.json
│ │ │ ├── postcss.config.js
│ │ │ ├── prettier.config.js
│ │ │ ├── public
│ │ │ │ └── index.html
│ │ │ ├── src
│ │ │ │ ├── app.run.ts
│ │ │ │ ├── assets
│ │ │ │ │ ├── logo.leanupjs.png
│ │ │ │ │ └── logo.vue.png
│ │ │ │ ├── components
│ │ │ │ │ ├── app
│ │ │ │ │ │ ├── component.vue
│ │ │ │ │ │ └── controller.ts
│ │ │ │ │ ├── input
│ │ │ │ │ │ └── component.vue
│ │ │ │ │ └── series
│ │ │ │ │ │ ├── create
│ │ │ │ │ │ ├── component.vue
│ │ │ │ │ │ └── controller.ts
│ │ │ │ │ │ ├── edit
│ │ │ │ │ │ ├── component.vue
│ │ │ │ │ │ └── controller.ts
│ │ │ │ │ │ ├── editor
│ │ │ │ │ │ ├── component.vue
│ │ │ │ │ │ ├── controller.ts
│ │ │ │ │ │ └── editor.form.ts
│ │ │ │ │ │ └── list
│ │ │ │ │ │ ├── component.vue
│ │ │ │ │ │ └── controller.ts
│ │ │ │ ├── main.ts
│ │ │ │ ├── models
│ │ │ │ │ ├── framework.interface.ts
│ │ │ │ │ ├── measured-item.model.ts
│ │ │ │ │ └── measured-series.model.ts
│ │ │ │ ├── services
│ │ │ │ │ ├── measurements
│ │ │ │ │ │ └── service.ts
│ │ │ │ │ ├── router
│ │ │ │ │ │ └── service.ts
│ │ │ │ │ └── storage
│ │ │ │ │ │ ├── mock.json
│ │ │ │ │ │ └── service.ts
│ │ │ │ ├── shares
│ │ │ │ │ ├── constant.ts
│ │ │ │ │ ├── filters.ts
│ │ │ │ │ ├── register.ts
│ │ │ │ │ ├── routing.ts
│ │ │ │ │ └── utils.ts
│ │ │ │ ├── style.sass
│ │ │ │ ├── types
│ │ │ │ │ └── images.d.ts
│ │ │ │ └── vue.main.ts
│ │ │ ├── tests
│ │ │ │ ├── e2e.test.js
│ │ │ │ ├── e2e
│ │ │ │ │ ├── app-test.js
│ │ │ │ │ └── ecosia.js
│ │ │ │ └── unit
│ │ │ │ │ ├── injector.test.ts
│ │ │ │ │ └── openapi.test.ts
│ │ │ ├── tsconfig.json
│ │ │ ├── webpack.config.js
│ │ │ └── windi.config.js
│ │ └── vue3
│ │ │ ├── .editorconfig
│ │ │ ├── .eslintignore
│ │ │ ├── .eslintrc.js
│ │ │ ├── .mocharc.js
│ │ │ ├── .npmrc
│ │ │ ├── .prettierignore
│ │ │ ├── .ts-prunerc.js
│ │ │ ├── .vscode
│ │ │ └── settings.json
│ │ │ ├── README.md
│ │ │ ├── gitignore
│ │ │ ├── index.html
│ │ │ ├── nightwatch.conf.js
│ │ │ ├── nyc.config.js
│ │ │ ├── package.json
│ │ │ ├── postcss.config.js
│ │ │ ├── prettier.config.js
│ │ │ ├── public
│ │ │ └── index.html
│ │ │ ├── snowpack.config.js
│ │ │ ├── src
│ │ │ ├── app.run.ts
│ │ │ ├── assets
│ │ │ │ ├── logo.leanupjs.png
│ │ │ │ └── logo.vue.png
│ │ │ ├── components
│ │ │ │ ├── app
│ │ │ │ │ ├── component.vue
│ │ │ │ │ └── controller.ts
│ │ │ │ ├── input
│ │ │ │ │ └── component.vue
│ │ │ │ └── series
│ │ │ │ │ ├── create
│ │ │ │ │ ├── component.vue
│ │ │ │ │ └── controller.ts
│ │ │ │ │ ├── edit
│ │ │ │ │ ├── component.vue
│ │ │ │ │ └── controller.ts
│ │ │ │ │ ├── editor
│ │ │ │ │ ├── component.vue
│ │ │ │ │ ├── controller.ts
│ │ │ │ │ └── editor.form.ts
│ │ │ │ │ └── list
│ │ │ │ │ ├── component.vue
│ │ │ │ │ └── controller.ts
│ │ │ ├── main.ts
│ │ │ ├── models
│ │ │ │ ├── framework.interface.ts
│ │ │ │ ├── measured-item.model.ts
│ │ │ │ └── measured-series.model.ts
│ │ │ ├── services
│ │ │ │ ├── measurements
│ │ │ │ │ └── service.ts
│ │ │ │ ├── router
│ │ │ │ │ └── service.ts
│ │ │ │ └── storage
│ │ │ │ │ ├── mock.json
│ │ │ │ │ └── service.ts
│ │ │ ├── shares
│ │ │ │ ├── constant.ts
│ │ │ │ ├── filters.ts
│ │ │ │ ├── register.ts
│ │ │ │ ├── routing.ts
│ │ │ │ └── utils.ts
│ │ │ ├── style.sass
│ │ │ ├── types
│ │ │ │ └── images.d.ts
│ │ │ └── vue.main.ts
│ │ │ ├── tests
│ │ │ ├── e2e.test.js
│ │ │ ├── e2e
│ │ │ │ ├── app-test.js
│ │ │ │ └── ecosia.js
│ │ │ └── unit
│ │ │ │ ├── injector.test.ts
│ │ │ │ └── openapi.test.ts
│ │ │ ├── tsconfig.json
│ │ │ ├── vite.config.js
│ │ │ ├── webpack.config.js
│ │ │ └── windi.config.js
│ └── tsconfig.json
├── form
│ ├── .gitignore
│ ├── .mocharc.js
│ ├── README.md
│ ├── nyc.config.js
│ ├── package-lock.json
│ ├── package.json
│ ├── src
│ │ ├── controls
│ │ │ ├── controls-json.test.ts
│ │ │ ├── controls.test.ts
│ │ │ ├── controls.ts
│ │ │ ├── index.ts
│ │ │ └── interfaces.ts
│ │ ├── handlers
│ │ │ ├── format.handler.ts
│ │ │ ├── formatters
│ │ │ │ ├── abstract.formatter.ts
│ │ │ │ ├── iban.formatter.test.ts
│ │ │ │ ├── iban.formatter.ts
│ │ │ │ └── index.ts
│ │ │ ├── index.ts
│ │ │ ├── validation.handler.test.ts
│ │ │ ├── validation.handler.ts
│ │ │ └── validators
│ │ │ │ ├── abstract.validator.test.ts
│ │ │ │ ├── abstract.validator.ts
│ │ │ │ ├── digits.validator.ts
│ │ │ │ ├── email.validator.ts
│ │ │ │ ├── index.ts
│ │ │ │ ├── is-true.validator.ts
│ │ │ │ ├── max-length.validator.ts
│ │ │ │ ├── min-length.validator.ts
│ │ │ │ ├── non-required.validator.ts
│ │ │ │ ├── not.validator.ts
│ │ │ │ ├── pattern.validator.ts
│ │ │ │ └── required.validator.ts
│ │ └── index.ts
│ ├── tsconfig.build.json
│ └── tsconfig.json
├── lib
│ ├── .gitignore
│ ├── .mocharc.js
│ ├── ES6.md
│ ├── README.md
│ ├── nyc.config.js
│ ├── package-lock.json
│ ├── package.json
│ ├── src
│ │ ├── architecture
│ │ │ ├── component.ts
│ │ │ ├── controller.ts
│ │ │ ├── decorators.ts
│ │ │ ├── index.ts
│ │ │ └── interfaces.ts
│ │ ├── components
│ │ │ ├── index.ts
│ │ │ └── vanilla.ts
│ │ ├── helpers
│ │ │ ├── index.ts
│ │ │ ├── injector.test.ts
│ │ │ ├── injector.ts
│ │ │ ├── log.ts
│ │ │ └── validator.ts
│ │ ├── index.ts
│ │ ├── pattern
│ │ │ ├── index.ts
│ │ │ ├── list-of.test.ts
│ │ │ └── list-of.ts
│ │ └── shares
│ │ │ ├── filters.ts
│ │ │ └── index.ts
│ ├── tsconfig.build.json
│ └── tsconfig.json
├── openapi
│ ├── .gitignore
│ ├── README.md
│ ├── openapitools.json
│ ├── package-lock.json
│ ├── package.json
│ ├── scripts
│ │ ├── add-bearer-handling.js
│ │ └── create-package-json.js
│ └── src
│ │ ├── models
│ │ └── version.yml
│ │ ├── openapi.yml
│ │ └── paths
│ │ └── version.yml
└── stack
│ ├── bundlers
│ ├── vite
│ │ ├── .gitignore
│ │ ├── README.md
│ │ ├── package-lock.json
│ │ ├── package.json
│ │ └── vite.config.js
│ └── webpack
│ │ ├── .gitignore
│ │ ├── README.md
│ │ ├── package-lock.json
│ │ ├── package.json
│ │ ├── src
│ │ ├── cjs
│ │ │ └── webpack.config.ts
│ │ └── mjs
│ │ │ ├── index.d.ts
│ │ │ └── webpack.config.ts
│ │ ├── tsconfig.cjs.json
│ │ ├── tsconfig.json
│ │ └── tsconfig.mjs.json
│ ├── core
│ ├── .eslintrc.js
│ ├── .gitignore
│ ├── .mocharc.js
│ ├── .npmignore
│ ├── README.md
│ ├── nightwatch.conf.js
│ ├── nyc.config.js
│ ├── package-lock.json
│ ├── package.json
│ ├── prettier.config.js
│ ├── src
│ │ ├── cjs
│ │ │ └── index.ts
│ │ ├── mjs
│ │ │ └── index.ts
│ │ ├── proxies.ts
│ │ └── replacements.ts
│ ├── tsconfig.cjs.json
│ ├── tsconfig.json
│ └── tsconfig.mjs.json
│ ├── frameworks
│ ├── angular
│ │ ├── .gitignore
│ │ ├── README.md
│ │ ├── package-lock.json
│ │ ├── package.json
│ │ ├── snowpack.config.js
│ │ ├── src
│ │ │ ├── cjs
│ │ │ │ └── webpack.config.ts
│ │ │ └── mjs
│ │ │ │ ├── index.d.ts
│ │ │ │ └── webpack.config.ts
│ │ ├── tsconfig.cjs.json
│ │ ├── tsconfig.json
│ │ ├── tsconfig.mjs.json
│ │ └── webpack.config.js
│ ├── angularjs
│ │ ├── .gitignore
│ │ ├── README.md
│ │ ├── babel.config.js
│ │ ├── package-lock.json
│ │ ├── package.json
│ │ ├── snowpack.config.js
│ │ ├── src
│ │ │ └── webpack.config.ts
│ │ ├── tsconfig.json
│ │ └── webpack.config.js
│ ├── aurelia
│ │ ├── .gitignore
│ │ ├── README.md
│ │ ├── package-lock.json
│ │ ├── package.json
│ │ ├── src
│ │ │ └── webpack.config.ts
│ │ ├── tsconfig.json
│ │ └── webpack.config.js
│ ├── inferno
│ │ ├── .gitignore
│ │ ├── README.md
│ │ ├── babel.config.js
│ │ ├── package-lock.json
│ │ ├── package.json
│ │ ├── snowpack.config.js
│ │ ├── src
│ │ │ └── webpack.config.ts
│ │ ├── tsconfig.json
│ │ ├── vite.config.js
│ │ └── webpack.config.js
│ ├── lit-element
│ │ ├── README.md
│ │ ├── package-lock.json
│ │ └── package.json
│ ├── preact
│ │ ├── .gitignore
│ │ ├── README.md
│ │ ├── package-lock.json
│ │ ├── package.json
│ │ ├── snowpack.config.js
│ │ ├── src
│ │ │ └── webpack.config.ts
│ │ ├── tsconfig.json
│ │ ├── vite.config.js
│ │ └── webpack.config.js
│ ├── react
│ │ ├── .gitignore
│ │ ├── README.md
│ │ ├── package-lock.json
│ │ ├── package.json
│ │ ├── src
│ │ │ └── webpack.config.ts
│ │ ├── tsconfig.json
│ │ └── webpack.config.js
│ ├── solid
│ │ ├── .gitignore
│ │ ├── README.md
│ │ ├── babel.config.js
│ │ ├── package-lock.json
│ │ ├── package.json
│ │ ├── snowpack.config.js
│ │ ├── src
│ │ │ └── webpack.config.ts
│ │ ├── tsconfig.json
│ │ ├── vite.config.js
│ │ └── webpack.config.js
│ ├── svelte
│ │ ├── .gitignore
│ │ ├── README.md
│ │ ├── package-lock.json
│ │ ├── package.json
│ │ ├── snowpack.config.js
│ │ ├── src
│ │ │ └── webpack.config.ts
│ │ ├── tsconfig.json
│ │ ├── vite.config.js
│ │ └── webpack.config.js
│ ├── vue
│ │ ├── .gitignore
│ │ ├── README.md
│ │ ├── package-lock.json
│ │ ├── package.json
│ │ ├── src
│ │ │ └── webpack.config.ts
│ │ ├── tsconfig.json
│ │ └── webpack.config.js
│ └── vue3
│ │ ├── .gitignore
│ │ ├── README.md
│ │ ├── package-lock.json
│ │ ├── package.json
│ │ ├── snowpack.config.js
│ │ ├── src
│ │ └── webpack.config.ts
│ │ ├── tsconfig.json
│ │ ├── vite.config.js
│ │ └── webpack.config.js
│ └── plugins
│ ├── babel
│ ├── .gitignore
│ ├── README.md
│ ├── babel.config.js
│ ├── package-lock.json
│ ├── package.json
│ ├── src
│ │ └── webpack.config.ts
│ └── tsconfig.json
│ ├── cucumber
│ ├── .gitignore
│ ├── README.md
│ ├── cucumber.conf.js
│ ├── cucumber.js
│ ├── index.js
│ ├── package-lock.json
│ ├── package.json
│ ├── src
│ │ └── cli.ts
│ ├── template
│ │ ├── cucumber.conf.js
│ │ ├── cucumber.js
│ │ └── tests
│ │ │ └── cucumber
│ │ │ ├── features
│ │ │ ├── demo.feature
│ │ │ └── google.feature
│ │ │ └── step-definitions
│ │ │ ├── demo.js
│ │ │ └── google.js
│ └── tsconfig.json
│ ├── git-hooks
│ ├── README.md
│ ├── commitlint.config.js
│ ├── package-lock.json
│ ├── package.json
│ └── template
│ │ └── commitlint.config.js
│ └── pwa
│ ├── .gitignore
│ ├── README.md
│ ├── index.js
│ ├── package-lock.json
│ ├── package.json
│ ├── src
│ ├── cli.js
│ └── cli.ts
│ ├── template
│ ├── pwa-manifest.config.js
│ └── workbox-config.js
│ ├── tsconfig.json
│ └── webpack.config.js
├── prettier.config.js
└── scripts
├── .gitignore
├── access-all.sh
├── access.sh
├── delete-tags.sh
├── deprecate-all.sh
├── deprecate-all.webpack.sh
├── deprecate.sh
├── dist-tag-all.sh
├── dist-tag.sh
├── package.js
├── sh.exe.stackdump
├── unpublish-1.0.sh
├── unpublish-1.1-a.sh
├── unpublish-1.1-b.sh
├── unpublish-1.2.sh
├── unpublish-all.sh
├── unpublish-loop.sh
├── unpublish.all.sh
├── unpublish.set.sh
├── unpublish.sh
├── wake-up-all.sh
└── wake-up.sh
/.editorconfig:
--------------------------------------------------------------------------------
1 | # http://editorconfig.org
2 |
3 | root = true
4 |
5 | [*]
6 | charset = utf-8
7 | indent_style = space
8 | indent_size = 2
9 | end_of_line = lf
10 | insert_final_newline = true
11 | trim_trailing_whitespace = true
12 |
13 | [*.md]
14 | insert_final_newline = false
15 | trim_trailing_whitespace = false
16 |
--------------------------------------------------------------------------------
/.eslintrc.js:
--------------------------------------------------------------------------------
1 | module.exports = require('./packages/stack/core/.eslintrc');
2 |
--------------------------------------------------------------------------------
/.git-ftp-include:
--------------------------------------------------------------------------------
1 | !dist/
--------------------------------------------------------------------------------
/.github/FUNDING.yml:
--------------------------------------------------------------------------------
1 | open_collective: leanupjs
2 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | /.husky
2 | /docs/.vitepress/dist
3 |
4 | .DS_Store
5 | .reports/
6 | dist/
7 | node_modules/
8 | # templates/
9 | *.log
10 | *.tgz
11 |
--------------------------------------------------------------------------------
/.npmrc:
--------------------------------------------------------------------------------
1 | @leanupjs:registry=https://npm.pkg.github.com
2 |
3 | # - npm
4 | legacy-peer-deps=true
5 |
6 | # - pnpm
7 | # auto-install-peers=false
8 | # shamefully-hoist=true
9 | strict-peer-dependencies=false
10 |
--------------------------------------------------------------------------------
/.prettierignore:
--------------------------------------------------------------------------------
1 | **/assets/**
2 | *.feature
3 | *.sass
4 | *.scss
--------------------------------------------------------------------------------
/SECURITY.md:
--------------------------------------------------------------------------------
1 | # Security Policy
2 |
3 | ## Supported Versions
4 |
5 | Use this section to tell people about which versions of your project are
6 | currently being supported with security updates.
7 |
8 | | Version | Supported |
9 | | -------- | ------------------ |
10 | | 2.0.x-rc | :white_check_mark: |
11 | | 1.2.x | :white_check_mark: |
12 | | 1.1.x | :white_check_mark: |
13 | | 1.0.x | :x: |
14 |
15 | ## Reporting a Vulnerability
16 |
17 | Use this section to tell people how to report a vulnerability.
18 |
19 | Tell them where to go, how often they can expect to get an update on a
20 | reported vulnerability, what to expect if the vulnerability is accepted or
21 | declined, etc.
22 |
--------------------------------------------------------------------------------
/angular-tsconfigs/tsconfig.app.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": "./tsconfig.test.json",
3 | "compilerOptions": {
4 | "baseUrl": "./",
5 | "declaration": false,
6 | "downlevelIteration": true,
7 | "forceConsistentCasingInFileNames": true,
8 | "removeComments": false,
9 | "strict": false
10 | },
11 | "angularCompilerOptions": {
12 | "enableIvy": false,
13 | "fullTemplateTypeCheck": true,
14 | "strictInjectionParameters": true
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/commitlint.config.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | extends: ['@commitlint/config-conventional'],
3 | };
4 |
--------------------------------------------------------------------------------
/docs/.vitepress/styles/styles.css:
--------------------------------------------------------------------------------
1 | :root {
2 | --c-brand: #006335;
3 | --c-brand-light: #006335;
4 |
5 | --bg-colored-light: rgb(255, 255, 255);
6 | }
7 |
--------------------------------------------------------------------------------
/docs/.vitepress/theme/index.js:
--------------------------------------------------------------------------------
1 | import Theme from 'vitepress/theme';
2 |
3 | import '../styles/styles.css';
4 |
5 | export default {
6 | ...Theme,
7 | };
8 |
--------------------------------------------------------------------------------
/docs/assets/leanup-migrate-1.2-module.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/leanupjs/leanup/2603659c93ceab96c643a05a9b8f836d17b60ea9/docs/assets/leanup-migrate-1.2-module.png
--------------------------------------------------------------------------------
/docs/guide/index.md:
--------------------------------------------------------------------------------
1 | # Guide
2 |
3 | The `@leanup stack` only contains the selected tools and their default configuration. No specific things are implemented, such as a dedicated CLI.
4 |
5 | This means that all commands for developing, testing or building etc. the app relate to the configuration of the `npm scripts`.
6 |
7 | ## Technical risks
8 |
9 | The technical risks are minimal, because their is no own stuff inside. You can change each individual tool if you want.
10 |
11 | ## Installation
12 |
13 | Read more about the installation [here](installation/).
14 |
15 | ## Migration
16 |
17 | Read more about the migration [here](migration/).
18 |
19 | ## Usage
20 |
21 | Read more about the usage [here](usage/).
22 |
--------------------------------------------------------------------------------
/lerna.json:
--------------------------------------------------------------------------------
1 | {
2 | "packages": [
3 | "packages/create-leanup",
4 | "packages/form",
5 | "packages/lib",
6 | "packages/openapi",
7 | "packages/stack/bundlers/vite",
8 | "packages/stack/bundlers/webpack",
9 | "packages/stack/core",
10 | "packages/stack/frameworks/**",
11 | "packages/stack/plugins"
12 | ],
13 | "useNx": false,
14 | "version": "2.0.0-rc.86"
15 | }
--------------------------------------------------------------------------------
/packages/create-leanup/.gitignore:
--------------------------------------------------------------------------------
1 | /my-app*/
2 |
--------------------------------------------------------------------------------
/packages/create-leanup/.ts-prunerc.js:
--------------------------------------------------------------------------------
1 | // https://github.com/nadeesha/ts-prune
2 | https: module.exports = {
3 | ignore: 'defaults|node_modules|templates',
4 | };
5 |
--------------------------------------------------------------------------------
/packages/create-leanup/src/cli.ts:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env node
2 |
3 | import { create } from 'create-create-cli';
4 | import { resolve } from 'path';
5 |
6 | const templateRoot = resolve(__dirname, '..', 'templates');
7 |
8 | const caveat = `
9 | Your app on leanup stack has been created successfully!
10 | `;
11 |
12 | // See https://github.com/uetchy/create-create-app/blob/master/README.md for other options.
13 |
14 | create('create-leanup', {
15 | templateRoot,
16 | defaultTemplate: 'react',
17 | defaultPackageManager: 'pnpm',
18 | promptForPackageManager: true,
19 | promptForTemplate: true,
20 | caveat,
21 | });
22 |
--------------------------------------------------------------------------------
/packages/create-leanup/templates/angular/.editorconfig:
--------------------------------------------------------------------------------
1 | # http://editorconfig.org
2 |
3 | root = true
4 |
5 | [*]
6 | charset = utf-8
7 | indent_style = space
8 | indent_size = 2
9 | end_of_line = lf
10 | insert_final_newline = true
11 | trim_trailing_whitespace = true
12 |
13 | [*.md]
14 | insert_final_newline = false
15 | trim_trailing_whitespace = false
16 |
--------------------------------------------------------------------------------
/packages/create-leanup/templates/angular/.eslintignore:
--------------------------------------------------------------------------------
1 | **/assets/**
--------------------------------------------------------------------------------
/packages/create-leanup/templates/angular/.eslintrc.js:
--------------------------------------------------------------------------------
1 | module.exports = require('@leanup/stack/.eslintrc');
2 |
--------------------------------------------------------------------------------
/packages/create-leanup/templates/angular/.mocharc.js:
--------------------------------------------------------------------------------
1 | module.exports = require('@leanup/stack/.mocharc');
2 |
--------------------------------------------------------------------------------
/packages/create-leanup/templates/angular/.npmrc:
--------------------------------------------------------------------------------
1 | auto-install-peers=true
2 | shamefully-hoist=true
3 |
--------------------------------------------------------------------------------
/packages/create-leanup/templates/angular/.prettierignore:
--------------------------------------------------------------------------------
1 | **/assets/**
2 | *.feature
3 | *.sass
4 | *.scss
--------------------------------------------------------------------------------
/packages/create-leanup/templates/angular/.ts-prunerc.js:
--------------------------------------------------------------------------------
1 | // https://github.com/nadeesha/ts-prune
2 | https: module.exports = {
3 | // ignore: '(arg-types|form/form|mermaid|src/index|stories).tsx?',
4 | // skip: 'autogen',
5 | };
6 |
--------------------------------------------------------------------------------
/packages/create-leanup/templates/angular/gitignore:
--------------------------------------------------------------------------------
1 | /.husky
2 | /.reports
3 | /dist
4 | /hint-report
5 | /node_modules
6 | *.log
7 |
--------------------------------------------------------------------------------
/packages/create-leanup/templates/angular/nightwatch.conf.js:
--------------------------------------------------------------------------------
1 | module.exports = require('@leanup/stack/nightwatch.conf');
2 |
--------------------------------------------------------------------------------
/packages/create-leanup/templates/angular/nyc.config.js:
--------------------------------------------------------------------------------
1 | module.exports = require('@leanup/stack/nyc.config');
2 |
--------------------------------------------------------------------------------
/packages/create-leanup/templates/angular/postcss.config.js:
--------------------------------------------------------------------------------
1 | // ## Migrate from 1.1 to 1.2
2 |
3 | // ### Changes
4 |
5 | // 1. ⛔ `autoprefixer` was removed from stack, it is to handle in project scope
6 | // 2. ⛔ `cssnano` was removed from default template, it is to handle in project scope
7 | // 3. ⛔ `postcss.config.js` was removed from stack, it is to handle in project scope
8 |
9 | module.exports = {
10 | plugins: [
11 | require('postcss-windicss')({
12 | touchMode: 'insert-comment',
13 | }),
14 | ],
15 | };
16 |
--------------------------------------------------------------------------------
/packages/create-leanup/templates/angular/prettier.config.js:
--------------------------------------------------------------------------------
1 | module.exports = require('@leanup/stack/prettier.config');
2 |
--------------------------------------------------------------------------------
/packages/create-leanup/templates/angular/snowpack.config.js:
--------------------------------------------------------------------------------
1 | module.exports = require('@leanup/stack-angular/snowpack.config');
2 |
--------------------------------------------------------------------------------
/packages/create-leanup/templates/angular/src/assets/logo.angular.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/leanupjs/leanup/2603659c93ceab96c643a05a9b8f836d17b60ea9/packages/create-leanup/templates/angular/src/assets/logo.angular.png
--------------------------------------------------------------------------------
/packages/create-leanup/templates/angular/src/assets/logo.leanupjs.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/leanupjs/leanup/2603659c93ceab96c643a05a9b8f836d17b60ea9/packages/create-leanup/templates/angular/src/assets/logo.leanupjs.png
--------------------------------------------------------------------------------
/packages/create-leanup/templates/angular/src/components/input/component.angular.ts:
--------------------------------------------------------------------------------
1 | import { Component, Input } from '@angular/core';
2 | import { InputControl } from '@leanup/form';
3 |
4 | @Component({
5 | selector: 'app-input',
6 | template: `
7 |
8 |
9 |
10 |
11 | `,
12 | })
13 | export class InputComponent {
14 | @Input() public control!: InputControl;
15 | }
16 |
--------------------------------------------------------------------------------
/packages/create-leanup/templates/angular/src/components/series/editor/controller.ts:
--------------------------------------------------------------------------------
1 | import { AbstractController } from '@leanup/lib';
2 |
3 | export class EditorSerieController extends AbstractController {}
4 |
--------------------------------------------------------------------------------
/packages/create-leanup/templates/angular/src/components/series/editor/editor.form.ts:
--------------------------------------------------------------------------------
1 | import { FormControl, InputControl } from '@leanup/form';
2 |
3 | export class EditorForm extends FormControl {
4 | public constructor(name: string) {
5 | super(name);
6 | this.addControl(
7 | new InputControl('title', {
8 | label: 'Title',
9 | value: '',
10 | })
11 | );
12 | this.addControl(
13 | new InputControl('unit', {
14 | label: 'Unit',
15 | value: '',
16 | })
17 | );
18 | }
19 | }
20 |
--------------------------------------------------------------------------------
/packages/create-leanup/templates/angular/src/main.ts:
--------------------------------------------------------------------------------
1 | import './angular.main';
2 |
--------------------------------------------------------------------------------
/packages/create-leanup/templates/angular/src/models/framework.interface.ts:
--------------------------------------------------------------------------------
1 | export interface Framework {
2 | name: string;
3 | version: string;
4 | }
5 |
--------------------------------------------------------------------------------
/packages/create-leanup/templates/angular/src/models/measured-item.model.ts:
--------------------------------------------------------------------------------
1 | export class MeasuredItemModel {
2 | private date: Date;
3 | private value: number;
4 |
5 | public constructor(date: Date, value: number) {
6 | this.date = date;
7 | this.value = value;
8 | }
9 |
10 | public getDate(): Date {
11 | return this.date;
12 | }
13 | public getValue(): number {
14 | return this.value;
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/packages/create-leanup/templates/angular/src/services/storage/mock.json:
--------------------------------------------------------------------------------
1 | {
2 | "measuredSeries": [
3 | { "id": 5, "title": "Gas", "unit": "m³" },
4 | { "id": 4, "title": "Strom", "unit": "kWh" },
5 | { "id": 3, "title": "Wasser", "unit": "m³" },
6 | { "id": 2, "title": "Außentemparatur", "unit": "°C" },
7 | { "id": 1, "title": "Sonnenstunden", "unit": "h" }
8 | ]
9 | }
10 |
--------------------------------------------------------------------------------
/packages/create-leanup/templates/angular/src/shares/register.ts:
--------------------------------------------------------------------------------
1 | import { DI } from '@leanup/lib';
2 | import { VersionApi } from '@leanup/openapi-demo';
3 |
4 | import { MeasurementService } from '../services/measurements/service';
5 | import { RouterService } from '../services/router/service';
6 | import { StorageService } from '../services/storage/service';
7 |
8 | // RouterService is an example as static class.
9 | DI.register('RouterService', RouterService);
10 |
11 | DI.register('StorageService', new StorageService());
12 | DI.register('MeasurementService', new MeasurementService());
13 | DI.register('VersionApi', new VersionApi());
14 |
--------------------------------------------------------------------------------
/packages/create-leanup/templates/angular/src/shares/routing.ts:
--------------------------------------------------------------------------------
1 | import { RouterService } from '../services/router/service';
2 |
3 | RouterService.register([
4 | {
5 | url: 'series',
6 | },
7 | {
8 | url: 'series/create',
9 | },
10 | {
11 | url: 'series/:id/edit',
12 | },
13 | ]);
14 |
--------------------------------------------------------------------------------
/packages/create-leanup/templates/angular/src/shares/utils.ts:
--------------------------------------------------------------------------------
1 | export function typeIt(json: Object): T {
2 | const typed = JSON.parse(JSON.stringify(json)) as { default: T };
3 | return typed.default;
4 | }
5 |
--------------------------------------------------------------------------------
/packages/create-leanup/templates/angular/src/types/images.d.ts:
--------------------------------------------------------------------------------
1 | declare module '*.jpeg';
2 | declare module '*.jpg';
3 | declare module '*.png';
4 | declare module '*.gif';
5 |
--------------------------------------------------------------------------------
/packages/create-leanup/templates/angular/tests/e2e/ecosia.js:
--------------------------------------------------------------------------------
1 | describe(`Demo's`, () => {
2 | it('ecosia.org', (browser) => {
3 | browser
4 | .url('https://www.ecosia.org/')
5 | .waitForElementVisible('body')
6 | .assert.titleContains('Ecosia')
7 | .assert.visible('input[type=search]')
8 | .setValue('input[type=search]', 'nightwatch')
9 | .assert.visible('button[type=submit]')
10 | .click('button[type=submit]')
11 | .assert.containsText('.mainline-results', 'Nightwatch.js')
12 | .end();
13 | });
14 | });
15 |
--------------------------------------------------------------------------------
/packages/create-leanup/templates/angular/tests/unit/openapi.test.ts:
--------------------------------------------------------------------------------
1 | import { expect } from 'chai';
2 |
3 | import { IVersion, IVersionLabelEnum } from '@leanup/openapi-demo';
4 |
5 | describe(`Test: OpenAPI`, () => {
6 | const label: IVersionLabelEnum = IVersionLabelEnum.Latest;
7 | const version: IVersion = {
8 | major: 1,
9 | minor: 2,
10 | patch: 3,
11 | text: '1.2.3',
12 | label: label,
13 | };
14 |
15 | it('Test Version', () => {
16 | expect(version.text).be.equal('1.2.3');
17 | });
18 | });
19 |
--------------------------------------------------------------------------------
/packages/create-leanup/templates/angular/webpack.config.mjs:
--------------------------------------------------------------------------------
1 | import webpackConfig from '@leanup/stack-angular';
2 |
3 | export default (env, argv) => {
4 | return webpackConfig(env, argv)
5 | }
6 |
--------------------------------------------------------------------------------
/packages/create-leanup/templates/angular/windi.config.js:
--------------------------------------------------------------------------------
1 | import { defineConfig } from 'windicss/helpers';
2 |
3 | export default defineConfig({
4 | darkMode: 'media',
5 | extract: {
6 | include: ['src/**/*.{html,svelte,ts,tsx,vue}'],
7 | },
8 | plugins: [require('windicss/plugin/filters')],
9 | });
10 |
--------------------------------------------------------------------------------
/packages/create-leanup/templates/angularjs/.editorconfig:
--------------------------------------------------------------------------------
1 | # http://editorconfig.org
2 |
3 | root = true
4 |
5 | [*]
6 | charset = utf-8
7 | indent_style = space
8 | indent_size = 2
9 | end_of_line = lf
10 | insert_final_newline = true
11 | trim_trailing_whitespace = true
12 |
13 | [*.md]
14 | insert_final_newline = false
15 | trim_trailing_whitespace = false
16 |
--------------------------------------------------------------------------------
/packages/create-leanup/templates/angularjs/.eslintignore:
--------------------------------------------------------------------------------
1 | **/assets/**
--------------------------------------------------------------------------------
/packages/create-leanup/templates/angularjs/.eslintrc.js:
--------------------------------------------------------------------------------
1 | module.exports = require('@leanup/stack/.eslintrc');
2 |
--------------------------------------------------------------------------------
/packages/create-leanup/templates/angularjs/.mocharc.js:
--------------------------------------------------------------------------------
1 | module.exports = require('@leanup/stack/.mocharc');
2 |
--------------------------------------------------------------------------------
/packages/create-leanup/templates/angularjs/.npmrc:
--------------------------------------------------------------------------------
1 | auto-install-peers=true
2 | shamefully-hoist=true
3 |
--------------------------------------------------------------------------------
/packages/create-leanup/templates/angularjs/.prettierignore:
--------------------------------------------------------------------------------
1 | **/assets/**
2 | *.feature
3 | *.sass
4 | *.scss
--------------------------------------------------------------------------------
/packages/create-leanup/templates/angularjs/.ts-prunerc.js:
--------------------------------------------------------------------------------
1 | // https://github.com/nadeesha/ts-prune
2 | https: module.exports = {
3 | // ignore: '(arg-types|form/form|mermaid|src/index|stories).tsx?',
4 | // skip: 'autogen',
5 | };
6 |
--------------------------------------------------------------------------------
/packages/create-leanup/templates/angularjs/babel.config.js:
--------------------------------------------------------------------------------
1 | module.exports = require('@leanup/stack-angularjs/babel.config');
2 |
--------------------------------------------------------------------------------
/packages/create-leanup/templates/angularjs/gitignore:
--------------------------------------------------------------------------------
1 | /.husky
2 | /.reports
3 | /dist
4 | /hint-report
5 | /node_modules
6 | *.log
7 |
--------------------------------------------------------------------------------
/packages/create-leanup/templates/angularjs/nightwatch.conf.js:
--------------------------------------------------------------------------------
1 | module.exports = require('@leanup/stack/nightwatch.conf');
2 |
--------------------------------------------------------------------------------
/packages/create-leanup/templates/angularjs/nyc.config.js:
--------------------------------------------------------------------------------
1 | module.exports = require('@leanup/stack/nyc.config');
2 |
--------------------------------------------------------------------------------
/packages/create-leanup/templates/angularjs/postcss.config.js:
--------------------------------------------------------------------------------
1 | // ## Migrate from 1.1 to 1.2
2 |
3 | // ### Changes
4 |
5 | // 1. ⛔ `autoprefixer` was removed from stack, it is to handle in project scope
6 | // 2. ⛔ `cssnano` was removed from default template, it is to handle in project scope
7 | // 3. ⛔ `postcss.config.js` was removed from stack, it is to handle in project scope
8 |
9 | module.exports = {
10 | plugins: [
11 | require('postcss-windicss')({
12 | touchMode: 'insert-comment',
13 | }),
14 | ],
15 | };
16 |
--------------------------------------------------------------------------------
/packages/create-leanup/templates/angularjs/prettier.config.js:
--------------------------------------------------------------------------------
1 | module.exports = require('@leanup/stack/prettier.config');
2 |
--------------------------------------------------------------------------------
/packages/create-leanup/templates/angularjs/snowpack.config.js:
--------------------------------------------------------------------------------
1 | module.exports = require('@leanup/stack-angularjs/snowpack.config');
2 |
--------------------------------------------------------------------------------
/packages/create-leanup/templates/angularjs/src/angularjs.module.ts:
--------------------------------------------------------------------------------
1 | import * as angular from 'angular';
2 |
3 | export const ANGULARJS_MODULE: angular.IModule = angular.module('app', []);
4 |
--------------------------------------------------------------------------------
/packages/create-leanup/templates/angularjs/src/assets/logo.angularjs.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/leanupjs/leanup/2603659c93ceab96c643a05a9b8f836d17b60ea9/packages/create-leanup/templates/angularjs/src/assets/logo.angularjs.png
--------------------------------------------------------------------------------
/packages/create-leanup/templates/angularjs/src/assets/logo.leanupjs.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/leanupjs/leanup/2603659c93ceab96c643a05a9b8f836d17b60ea9/packages/create-leanup/templates/angularjs/src/assets/logo.leanupjs.png
--------------------------------------------------------------------------------
/packages/create-leanup/templates/angularjs/src/components/series/create/component.angularjs.ts:
--------------------------------------------------------------------------------
1 | import { ANGULARJS_MODULE } from '../../../angularjs.module';
2 | import { CreateSerieController } from './controller';
3 |
4 | ANGULARJS_MODULE.component('createSerie', {
5 | controller: ['$scope', CreateSerieController],
6 | template: `
7 |
15 | `,
16 | });
17 |
--------------------------------------------------------------------------------
/packages/create-leanup/templates/angularjs/src/components/series/editor/component.angularjs.ts:
--------------------------------------------------------------------------------
1 | import { ANGULARJS_MODULE } from '../../../angularjs.module';
2 | import { EditorSerieController } from './controller';
3 |
4 | ANGULARJS_MODULE.component('editorSerie', {
5 | bindings: {
6 | editorForm: '<',
7 | },
8 | controller: ['$scope', EditorSerieController],
9 | template: `
10 |
14 | `,
15 | });
16 |
--------------------------------------------------------------------------------
/packages/create-leanup/templates/angularjs/src/components/series/editor/controller.ts:
--------------------------------------------------------------------------------
1 | import { AbstractController } from '@leanup/lib';
2 |
3 | export class EditorSerieController extends AbstractController {}
4 |
--------------------------------------------------------------------------------
/packages/create-leanup/templates/angularjs/src/components/series/editor/editor.form.ts:
--------------------------------------------------------------------------------
1 | import { FormControl, InputControl } from '@leanup/form';
2 |
3 | export class EditorForm extends FormControl {
4 | public constructor(name: string) {
5 | super(name);
6 | this.addControl(
7 | new InputControl('title', {
8 | label: 'Title',
9 | value: '',
10 | })
11 | );
12 | this.addControl(
13 | new InputControl('unit', {
14 | label: 'Unit',
15 | value: '',
16 | })
17 | );
18 | }
19 | }
20 |
--------------------------------------------------------------------------------
/packages/create-leanup/templates/angularjs/src/main.ts:
--------------------------------------------------------------------------------
1 | import './angularjs.main';
2 |
--------------------------------------------------------------------------------
/packages/create-leanup/templates/angularjs/src/models/framework.interface.ts:
--------------------------------------------------------------------------------
1 | export interface Framework {
2 | name: string;
3 | version: string;
4 | }
5 |
--------------------------------------------------------------------------------
/packages/create-leanup/templates/angularjs/src/models/measured-item.model.ts:
--------------------------------------------------------------------------------
1 | export class MeasuredItemModel {
2 | private date: Date;
3 | private value: number;
4 |
5 | public constructor(date: Date, value: number) {
6 | this.date = date;
7 | this.value = value;
8 | }
9 |
10 | public getDate(): Date {
11 | return this.date;
12 | }
13 | public getValue(): number {
14 | return this.value;
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/packages/create-leanup/templates/angularjs/src/services/storage/mock.json:
--------------------------------------------------------------------------------
1 | {
2 | "measuredSeries": [
3 | { "id": 5, "title": "Gas", "unit": "m³" },
4 | { "id": 4, "title": "Strom", "unit": "kWh" },
5 | { "id": 3, "title": "Wasser", "unit": "m³" },
6 | { "id": 2, "title": "Außentemparatur", "unit": "°C" },
7 | { "id": 1, "title": "Sonnenstunden", "unit": "h" }
8 | ]
9 | }
10 |
--------------------------------------------------------------------------------
/packages/create-leanup/templates/angularjs/src/shares/register.ts:
--------------------------------------------------------------------------------
1 | import { DI } from '@leanup/lib';
2 | import { VersionApi } from '@leanup/openapi-demo';
3 |
4 | import { MeasurementService } from '../services/measurements/service';
5 | import { RouterService } from '../services/router/service';
6 | import { StorageService } from '../services/storage/service';
7 |
8 | // RouterService is an example as static class.
9 | DI.register('RouterService', RouterService);
10 |
11 | DI.register('StorageService', new StorageService());
12 | DI.register('MeasurementService', new MeasurementService());
13 | DI.register('VersionApi', new VersionApi());
14 |
--------------------------------------------------------------------------------
/packages/create-leanup/templates/angularjs/src/shares/routing.ts:
--------------------------------------------------------------------------------
1 | import { RouterService } from '../services/router/service';
2 |
3 | RouterService.register([
4 | {
5 | url: 'series',
6 | },
7 | {
8 | url: 'series/create',
9 | },
10 | {
11 | url: 'series/:id/edit',
12 | },
13 | ]);
14 |
--------------------------------------------------------------------------------
/packages/create-leanup/templates/angularjs/src/shares/utils.ts:
--------------------------------------------------------------------------------
1 | export function typeIt(json: Object): T {
2 | const typed = JSON.parse(JSON.stringify(json)) as { default: T };
3 | return typed.default;
4 | }
5 |
--------------------------------------------------------------------------------
/packages/create-leanup/templates/angularjs/src/types/images.d.ts:
--------------------------------------------------------------------------------
1 | declare module '*.jpeg';
2 | declare module '*.jpg';
3 | declare module '*.png';
4 | declare module '*.gif';
5 |
--------------------------------------------------------------------------------
/packages/create-leanup/templates/angularjs/tests/e2e/ecosia.js:
--------------------------------------------------------------------------------
1 | describe(`Demo's`, () => {
2 | it('ecosia.org', (browser) => {
3 | browser
4 | .url('https://www.ecosia.org/')
5 | .waitForElementVisible('body')
6 | .assert.titleContains('Ecosia')
7 | .assert.visible('input[type=search]')
8 | .setValue('input[type=search]', 'nightwatch')
9 | .assert.visible('button[type=submit]')
10 | .click('button[type=submit]')
11 | .assert.containsText('.mainline-results', 'Nightwatch.js')
12 | .end();
13 | });
14 | });
15 |
--------------------------------------------------------------------------------
/packages/create-leanup/templates/angularjs/tests/unit/openapi.test.ts:
--------------------------------------------------------------------------------
1 | import { expect } from 'chai';
2 |
3 | import { IVersion, IVersionLabelEnum } from '@leanup/openapi-demo';
4 |
5 | describe(`Test: OpenAPI`, () => {
6 | const label: IVersionLabelEnum = IVersionLabelEnum.Latest;
7 | const version: IVersion = {
8 | major: 1,
9 | minor: 2,
10 | patch: 3,
11 | text: '1.2.3',
12 | label: label,
13 | };
14 |
15 | it('Test Version', () => {
16 | expect(version.text).be.equal('1.2.3');
17 | });
18 | });
19 |
--------------------------------------------------------------------------------
/packages/create-leanup/templates/angularjs/vite.config.js:
--------------------------------------------------------------------------------
1 | module.exports = require('@leanup/stack-vite/vite.config');
2 |
--------------------------------------------------------------------------------
/packages/create-leanup/templates/angularjs/webpack.config.js:
--------------------------------------------------------------------------------
1 | module.exports = require('@leanup/stack-angularjs/webpack.config');
2 |
--------------------------------------------------------------------------------
/packages/create-leanup/templates/angularjs/windi.config.js:
--------------------------------------------------------------------------------
1 | import { defineConfig } from 'windicss/helpers';
2 |
3 | export default defineConfig({
4 | darkMode: 'media',
5 | extract: {
6 | include: ['src/**/*.{html,svelte,ts,tsx,vue}'],
7 | },
8 | plugins: [require('windicss/plugin/filters')],
9 | });
10 |
--------------------------------------------------------------------------------
/packages/create-leanup/templates/aurelia/.editorconfig:
--------------------------------------------------------------------------------
1 | # http://editorconfig.org
2 |
3 | root = true
4 |
5 | [*]
6 | charset = utf-8
7 | indent_style = space
8 | indent_size = 2
9 | end_of_line = lf
10 | insert_final_newline = true
11 | trim_trailing_whitespace = true
12 |
13 | [*.md]
14 | insert_final_newline = false
15 | trim_trailing_whitespace = false
16 |
--------------------------------------------------------------------------------
/packages/create-leanup/templates/aurelia/.eslintignore:
--------------------------------------------------------------------------------
1 | **/assets/**
--------------------------------------------------------------------------------
/packages/create-leanup/templates/aurelia/.eslintrc.js:
--------------------------------------------------------------------------------
1 | module.exports = require('@leanup/stack/.eslintrc');
2 |
--------------------------------------------------------------------------------
/packages/create-leanup/templates/aurelia/.mocharc.js:
--------------------------------------------------------------------------------
1 | module.exports = require('@leanup/stack/.mocharc');
2 |
--------------------------------------------------------------------------------
/packages/create-leanup/templates/aurelia/.npmrc:
--------------------------------------------------------------------------------
1 | auto-install-peers=true
2 | shamefully-hoist=true
3 |
--------------------------------------------------------------------------------
/packages/create-leanup/templates/aurelia/.prettierignore:
--------------------------------------------------------------------------------
1 | **/assets/**
2 | *.feature
3 | *.sass
4 | *.scss
--------------------------------------------------------------------------------
/packages/create-leanup/templates/aurelia/.ts-prunerc.js:
--------------------------------------------------------------------------------
1 | // https://github.com/nadeesha/ts-prune
2 | https: module.exports = {
3 | // ignore: '(arg-types|form/form|mermaid|src/index|stories).tsx?',
4 | // skip: 'autogen',
5 | };
6 |
--------------------------------------------------------------------------------
/packages/create-leanup/templates/aurelia/gitignore:
--------------------------------------------------------------------------------
1 | /.husky
2 | /.reports
3 | /dist
4 | /hint-report
5 | /node_modules
6 | *.log
7 |
--------------------------------------------------------------------------------
/packages/create-leanup/templates/aurelia/nightwatch.conf.js:
--------------------------------------------------------------------------------
1 | module.exports = require('@leanup/stack/nightwatch.conf');
2 |
--------------------------------------------------------------------------------
/packages/create-leanup/templates/aurelia/nyc.config.js:
--------------------------------------------------------------------------------
1 | module.exports = require('@leanup/stack/nyc.config');
2 |
--------------------------------------------------------------------------------
/packages/create-leanup/templates/aurelia/postcss.config.js:
--------------------------------------------------------------------------------
1 | // ## Migrate from 1.1 to 1.2
2 |
3 | // ### Changes
4 |
5 | // 1. ⛔ `autoprefixer` was removed from stack, it is to handle in project scope
6 | // 2. ⛔ `cssnano` was removed from default template, it is to handle in project scope
7 | // 3. ⛔ `postcss.config.js` was removed from stack, it is to handle in project scope
8 |
9 | module.exports = {
10 | plugins: [
11 | require('postcss-windicss')({
12 | touchMode: 'insert-comment',
13 | }),
14 | ],
15 | };
16 |
--------------------------------------------------------------------------------
/packages/create-leanup/templates/aurelia/prettier.config.js:
--------------------------------------------------------------------------------
1 | module.exports = require('@leanup/stack/prettier.config');
2 |
--------------------------------------------------------------------------------
/packages/create-leanup/templates/aurelia/src/assets/logo.aurelia.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/leanupjs/leanup/2603659c93ceab96c643a05a9b8f836d17b60ea9/packages/create-leanup/templates/aurelia/src/assets/logo.aurelia.png
--------------------------------------------------------------------------------
/packages/create-leanup/templates/aurelia/src/assets/logo.leanupjs.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/leanupjs/leanup/2603659c93ceab96c643a05a9b8f836d17b60ea9/packages/create-leanup/templates/aurelia/src/assets/logo.leanupjs.png
--------------------------------------------------------------------------------
/packages/create-leanup/templates/aurelia/src/components/input/component.aurelia.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/packages/create-leanup/templates/aurelia/src/components/input/component.aurelia.ts:
--------------------------------------------------------------------------------
1 | import { bindable, bindingMode } from 'aurelia-framework';
2 |
3 | import { InputControl } from '@leanup/form';
4 |
5 | export class AppInput {
6 | @bindable({ defaultBindingMode: bindingMode.twoWay })
7 | public control!: InputControl;
8 | }
9 |
--------------------------------------------------------------------------------
/packages/create-leanup/templates/aurelia/src/components/series/create/component.aurelia.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
9 |
10 |
--------------------------------------------------------------------------------
/packages/create-leanup/templates/aurelia/src/components/series/create/component.aurelia.ts:
--------------------------------------------------------------------------------
1 | import { CreateSerieController } from './controller';
2 |
3 | export class CreateSerie extends CreateSerieController {}
4 |
--------------------------------------------------------------------------------
/packages/create-leanup/templates/aurelia/src/components/series/edit/component.aurelia.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
10 |
11 |
--------------------------------------------------------------------------------
/packages/create-leanup/templates/aurelia/src/components/series/edit/component.aurelia.ts:
--------------------------------------------------------------------------------
1 | import { bindable, bindingMode } from 'aurelia-framework';
2 |
3 | import { ResolvedRoute } from '../../app/controller';
4 | import { EditSerieController } from '../edit/controller';
5 |
6 | export class EditSerie extends EditSerieController {
7 | @bindable({ defaultBindingMode: bindingMode.twoWay })
8 | public resolvedRoute!: ResolvedRoute;
9 |
10 | public bind(): void {
11 | this.changeMeasuredSerie(parseInt(this.resolvedRoute.data?.id || '0'));
12 | }
13 | }
14 |
--------------------------------------------------------------------------------
/packages/create-leanup/templates/aurelia/src/components/series/editor/component.aurelia.html:
--------------------------------------------------------------------------------
1 |
2 |
7 |
8 |
--------------------------------------------------------------------------------
/packages/create-leanup/templates/aurelia/src/components/series/editor/component.aurelia.ts:
--------------------------------------------------------------------------------
1 | import { bindable, bindingMode } from 'aurelia-framework';
2 |
3 | import { EditorSerieController } from './controller';
4 | import { EditorForm } from './editor.form';
5 |
6 | export class EditorSerie extends EditorSerieController {
7 | @bindable({ defaultBindingMode: bindingMode.twoWay })
8 | public editorForm!: EditorForm;
9 | }
10 |
--------------------------------------------------------------------------------
/packages/create-leanup/templates/aurelia/src/components/series/editor/controller.ts:
--------------------------------------------------------------------------------
1 | import { AbstractController } from '@leanup/lib';
2 |
3 | export class EditorSerieController extends AbstractController {}
4 |
--------------------------------------------------------------------------------
/packages/create-leanup/templates/aurelia/src/components/series/editor/editor.form.ts:
--------------------------------------------------------------------------------
1 | import { FormControl, InputControl } from '@leanup/form';
2 |
3 | export class EditorForm extends FormControl {
4 | public constructor(name: string) {
5 | super(name);
6 | this.addControl(
7 | new InputControl('title', {
8 | label: 'Title',
9 | value: '',
10 | })
11 | );
12 | this.addControl(
13 | new InputControl('unit', {
14 | label: 'Unit',
15 | value: '',
16 | })
17 | );
18 | }
19 | }
20 |
--------------------------------------------------------------------------------
/packages/create-leanup/templates/aurelia/src/components/series/list/component.aurelia.ts:
--------------------------------------------------------------------------------
1 | import { ListSerieController } from './controller';
2 |
3 | export class ListSerie extends ListSerieController {}
4 |
--------------------------------------------------------------------------------
/packages/create-leanup/templates/aurelia/src/main.ts:
--------------------------------------------------------------------------------
1 | import './aurelia.main';
2 |
--------------------------------------------------------------------------------
/packages/create-leanup/templates/aurelia/src/models/framework.interface.ts:
--------------------------------------------------------------------------------
1 | export interface Framework {
2 | name: string;
3 | version: string;
4 | }
5 |
--------------------------------------------------------------------------------
/packages/create-leanup/templates/aurelia/src/models/measured-item.model.ts:
--------------------------------------------------------------------------------
1 | export class MeasuredItemModel {
2 | private date: Date;
3 | private value: number;
4 |
5 | public constructor(date: Date, value: number) {
6 | this.date = date;
7 | this.value = value;
8 | }
9 |
10 | public getDate(): Date {
11 | return this.date;
12 | }
13 | public getValue(): number {
14 | return this.value;
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/packages/create-leanup/templates/aurelia/src/services/storage/mock.json:
--------------------------------------------------------------------------------
1 | {
2 | "measuredSeries": [
3 | { "id": 5, "title": "Gas", "unit": "m³" },
4 | { "id": 4, "title": "Strom", "unit": "kWh" },
5 | { "id": 3, "title": "Wasser", "unit": "m³" },
6 | { "id": 2, "title": "Außentemparatur", "unit": "°C" },
7 | { "id": 1, "title": "Sonnenstunden", "unit": "h" }
8 | ]
9 | }
10 |
--------------------------------------------------------------------------------
/packages/create-leanup/templates/aurelia/src/shares/register.ts:
--------------------------------------------------------------------------------
1 | import { DI } from '@leanup/lib';
2 | import { VersionApi } from '@leanup/openapi-demo';
3 |
4 | import { MeasurementService } from '../services/measurements/service';
5 | import { RouterService } from '../services/router/service';
6 | import { StorageService } from '../services/storage/service';
7 |
8 | // RouterService is an example as static class.
9 | DI.register('RouterService', RouterService);
10 |
11 | DI.register('StorageService', new StorageService());
12 | DI.register('MeasurementService', new MeasurementService());
13 | DI.register('VersionApi', new VersionApi());
14 |
--------------------------------------------------------------------------------
/packages/create-leanup/templates/aurelia/src/shares/routing.ts:
--------------------------------------------------------------------------------
1 | import { RouterService } from '../services/router/service';
2 |
3 | RouterService.register([
4 | {
5 | url: 'series',
6 | },
7 | {
8 | url: 'series/create',
9 | },
10 | {
11 | url: 'series/:id/edit',
12 | },
13 | ]);
14 |
--------------------------------------------------------------------------------
/packages/create-leanup/templates/aurelia/src/shares/utils.ts:
--------------------------------------------------------------------------------
1 | export function typeIt(json: Object): T {
2 | const typed = JSON.parse(JSON.stringify(json)) as { default: T };
3 | return typed.default;
4 | }
5 |
--------------------------------------------------------------------------------
/packages/create-leanup/templates/aurelia/src/types/images.d.ts:
--------------------------------------------------------------------------------
1 | declare module '*.jpeg';
2 | declare module '*.jpg';
3 | declare module '*.png';
4 | declare module '*.gif';
5 |
--------------------------------------------------------------------------------
/packages/create-leanup/templates/aurelia/tests/e2e/ecosia.js:
--------------------------------------------------------------------------------
1 | describe(`Demo's`, () => {
2 | it('ecosia.org', (browser) => {
3 | browser
4 | .url('https://www.ecosia.org/')
5 | .waitForElementVisible('body')
6 | .assert.titleContains('Ecosia')
7 | .assert.visible('input[type=search]')
8 | .setValue('input[type=search]', 'nightwatch')
9 | .assert.visible('button[type=submit]')
10 | .click('button[type=submit]')
11 | .assert.containsText('.mainline-results', 'Nightwatch.js')
12 | .end();
13 | });
14 | });
15 |
--------------------------------------------------------------------------------
/packages/create-leanup/templates/aurelia/tests/unit/openapi.test.ts:
--------------------------------------------------------------------------------
1 | import { expect } from 'chai';
2 |
3 | import { IVersion, IVersionLabelEnum } from '@leanup/openapi-demo';
4 |
5 | describe(`Test: OpenAPI`, () => {
6 | const label: IVersionLabelEnum = IVersionLabelEnum.Latest;
7 | const version: IVersion = {
8 | major: 1,
9 | minor: 2,
10 | patch: 3,
11 | text: '1.2.3',
12 | label: label,
13 | };
14 |
15 | it('Test Version', () => {
16 | expect(version.text).be.equal('1.2.3');
17 | });
18 | });
19 |
--------------------------------------------------------------------------------
/packages/create-leanup/templates/aurelia/webpack.config.js:
--------------------------------------------------------------------------------
1 | module.exports = require('@leanup/stack-aurelia/webpack.config');
2 |
--------------------------------------------------------------------------------
/packages/create-leanup/templates/aurelia/windi.config.js:
--------------------------------------------------------------------------------
1 | import { defineConfig } from 'windicss/helpers';
2 |
3 | export default defineConfig({
4 | darkMode: 'media',
5 | extract: {
6 | include: ['src/**/*.{html,svelte,ts,tsx,vue}'],
7 | },
8 | plugins: [require('windicss/plugin/filters')],
9 | });
10 |
--------------------------------------------------------------------------------
/packages/create-leanup/templates/inferno/.editorconfig:
--------------------------------------------------------------------------------
1 | # http://editorconfig.org
2 |
3 | root = true
4 |
5 | [*]
6 | charset = utf-8
7 | indent_style = space
8 | indent_size = 2
9 | end_of_line = lf
10 | insert_final_newline = true
11 | trim_trailing_whitespace = true
12 |
13 | [*.md]
14 | insert_final_newline = false
15 | trim_trailing_whitespace = false
16 |
--------------------------------------------------------------------------------
/packages/create-leanup/templates/inferno/.eslintignore:
--------------------------------------------------------------------------------
1 | **/assets/**
--------------------------------------------------------------------------------
/packages/create-leanup/templates/inferno/.eslintrc.js:
--------------------------------------------------------------------------------
1 | module.exports = require('@leanup/stack/.eslintrc');
2 |
--------------------------------------------------------------------------------
/packages/create-leanup/templates/inferno/.mocharc.js:
--------------------------------------------------------------------------------
1 | module.exports = require('@leanup/stack/.mocharc');
2 |
--------------------------------------------------------------------------------
/packages/create-leanup/templates/inferno/.npmrc:
--------------------------------------------------------------------------------
1 | auto-install-peers=true
2 | shamefully-hoist=true
3 |
--------------------------------------------------------------------------------
/packages/create-leanup/templates/inferno/.prettierignore:
--------------------------------------------------------------------------------
1 | **/assets/**
2 | *.feature
3 | *.sass
4 | *.scss
--------------------------------------------------------------------------------
/packages/create-leanup/templates/inferno/.ts-prunerc.js:
--------------------------------------------------------------------------------
1 | // https://github.com/nadeesha/ts-prune
2 | https: module.exports = {
3 | // ignore: '(arg-types|form/form|mermaid|src/index|stories).tsx?',
4 | // skip: 'autogen',
5 | };
6 |
--------------------------------------------------------------------------------
/packages/create-leanup/templates/inferno/babel.config.js:
--------------------------------------------------------------------------------
1 | module.exports = require('@leanup/stack-inferno/babel.config');
2 |
--------------------------------------------------------------------------------
/packages/create-leanup/templates/inferno/gitignore:
--------------------------------------------------------------------------------
1 | /.husky
2 | /.reports
3 | /dist
4 | /hint-report
5 | /node_modules
6 | *.log
7 |
--------------------------------------------------------------------------------
/packages/create-leanup/templates/inferno/nightwatch.conf.js:
--------------------------------------------------------------------------------
1 | module.exports = require('@leanup/stack/nightwatch.conf');
2 |
--------------------------------------------------------------------------------
/packages/create-leanup/templates/inferno/nyc.config.js:
--------------------------------------------------------------------------------
1 | module.exports = require('@leanup/stack/nyc.config');
2 |
--------------------------------------------------------------------------------
/packages/create-leanup/templates/inferno/postcss.config.js:
--------------------------------------------------------------------------------
1 | // ## Migrate from 1.1 to 1.2
2 |
3 | // ### Changes
4 |
5 | // 1. ⛔ `autoprefixer` was removed from stack, it is to handle in project scope
6 | // 2. ⛔ `cssnano` was removed from default template, it is to handle in project scope
7 | // 3. ⛔ `postcss.config.js` was removed from stack, it is to handle in project scope
8 |
9 | module.exports = {
10 | plugins: [
11 | require('postcss-windicss')({
12 | touchMode: 'insert-comment',
13 | }),
14 | ],
15 | };
16 |
--------------------------------------------------------------------------------
/packages/create-leanup/templates/inferno/prettier.config.js:
--------------------------------------------------------------------------------
1 | module.exports = require('@leanup/stack/prettier.config');
2 |
--------------------------------------------------------------------------------
/packages/create-leanup/templates/inferno/snowpack.config.js:
--------------------------------------------------------------------------------
1 | module.exports = require('@leanup/stack-inferno/snowpack.config');
2 |
--------------------------------------------------------------------------------
/packages/create-leanup/templates/inferno/src/assets/logo.inferno.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/leanupjs/leanup/2603659c93ceab96c643a05a9b8f836d17b60ea9/packages/create-leanup/templates/inferno/src/assets/logo.inferno.png
--------------------------------------------------------------------------------
/packages/create-leanup/templates/inferno/src/assets/logo.leanupjs.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/leanupjs/leanup/2603659c93ceab96c643a05a9b8f836d17b60ea9/packages/create-leanup/templates/inferno/src/assets/logo.leanupjs.png
--------------------------------------------------------------------------------
/packages/create-leanup/templates/inferno/src/components/series/editor/controller.ts:
--------------------------------------------------------------------------------
1 | import { AbstractController } from '@leanup/lib';
2 |
3 | export class EditorSerieController extends AbstractController {}
4 |
--------------------------------------------------------------------------------
/packages/create-leanup/templates/inferno/src/components/series/editor/editor.form.ts:
--------------------------------------------------------------------------------
1 | import { FormControl, InputControl } from '@leanup/form';
2 |
3 | export class EditorForm extends FormControl {
4 | public constructor(name: string) {
5 | super(name);
6 | this.addControl(
7 | new InputControl('title', {
8 | label: 'Title',
9 | value: '',
10 | })
11 | );
12 | this.addControl(
13 | new InputControl('unit', {
14 | label: 'Unit',
15 | value: '',
16 | })
17 | );
18 | }
19 | }
20 |
--------------------------------------------------------------------------------
/packages/create-leanup/templates/inferno/src/inferno.main.tsx:
--------------------------------------------------------------------------------
1 | import { render } from 'inferno';
2 | import * as PACKAGE_JSON from '../node_modules/inferno/package.json';
3 |
4 | import { run } from './app.run';
5 | import { AppComponent } from './components/app/component.inferno';
6 | import { typeIt } from './shares/utils';
7 |
8 | const TYPED_PACKAGE_JSON = typeIt<{ version: string }>(PACKAGE_JSON);
9 |
10 | run('Inferno', TYPED_PACKAGE_JSON.version, () => {
11 | const htmlDivElement: HTMLDivElement | null = document.querySelector('div#inferno');
12 | if (htmlDivElement instanceof HTMLDivElement) {
13 | render(, htmlDivElement);
14 | }
15 | });
16 |
--------------------------------------------------------------------------------
/packages/create-leanup/templates/inferno/src/main.ts:
--------------------------------------------------------------------------------
1 | import './inferno.main';
2 |
--------------------------------------------------------------------------------
/packages/create-leanup/templates/inferno/src/models/framework.interface.ts:
--------------------------------------------------------------------------------
1 | export interface Framework {
2 | name: string;
3 | version: string;
4 | }
5 |
--------------------------------------------------------------------------------
/packages/create-leanup/templates/inferno/src/models/measured-item.model.ts:
--------------------------------------------------------------------------------
1 | export class MeasuredItemModel {
2 | private date: Date;
3 | private value: number;
4 |
5 | public constructor(date: Date, value: number) {
6 | this.date = date;
7 | this.value = value;
8 | }
9 |
10 | public getDate(): Date {
11 | return this.date;
12 | }
13 | public getValue(): number {
14 | return this.value;
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/packages/create-leanup/templates/inferno/src/services/storage/mock.json:
--------------------------------------------------------------------------------
1 | {
2 | "measuredSeries": [
3 | { "id": 5, "title": "Gas", "unit": "m³" },
4 | { "id": 4, "title": "Strom", "unit": "kWh" },
5 | { "id": 3, "title": "Wasser", "unit": "m³" },
6 | { "id": 2, "title": "Außentemparatur", "unit": "°C" },
7 | { "id": 1, "title": "Sonnenstunden", "unit": "h" }
8 | ]
9 | }
10 |
--------------------------------------------------------------------------------
/packages/create-leanup/templates/inferno/src/shares/register.ts:
--------------------------------------------------------------------------------
1 | import { DI } from '@leanup/lib';
2 | import { VersionApi } from '@leanup/openapi-demo';
3 |
4 | import { MeasurementService } from '../services/measurements/service';
5 | import { RouterService } from '../services/router/service';
6 | import { StorageService } from '../services/storage/service';
7 |
8 | // RouterService is an example as static class.
9 | DI.register('RouterService', RouterService);
10 |
11 | DI.register('StorageService', new StorageService());
12 | DI.register('MeasurementService', new MeasurementService());
13 | DI.register('VersionApi', new VersionApi());
14 |
--------------------------------------------------------------------------------
/packages/create-leanup/templates/inferno/src/shares/routing.ts:
--------------------------------------------------------------------------------
1 | import { RouterService } from '../services/router/service';
2 |
3 | RouterService.register([
4 | {
5 | url: 'series',
6 | },
7 | {
8 | url: 'series/create',
9 | },
10 | {
11 | url: 'series/:id/edit',
12 | },
13 | ]);
14 |
--------------------------------------------------------------------------------
/packages/create-leanup/templates/inferno/src/shares/utils.ts:
--------------------------------------------------------------------------------
1 | export function typeIt(json: Object): T {
2 | const typed = JSON.parse(JSON.stringify(json)) as { default: T };
3 | return typed.default;
4 | }
5 |
--------------------------------------------------------------------------------
/packages/create-leanup/templates/inferno/src/types/images.d.ts:
--------------------------------------------------------------------------------
1 | declare module '*.jpeg';
2 | declare module '*.jpg';
3 | declare module '*.png';
4 | declare module '*.gif';
5 |
--------------------------------------------------------------------------------
/packages/create-leanup/templates/inferno/tests/e2e/ecosia.js:
--------------------------------------------------------------------------------
1 | describe(`Demo's`, () => {
2 | it('ecosia.org', (browser) => {
3 | browser
4 | .url('https://www.ecosia.org/')
5 | .waitForElementVisible('body')
6 | .assert.titleContains('Ecosia')
7 | .assert.visible('input[type=search]')
8 | .setValue('input[type=search]', 'nightwatch')
9 | .assert.visible('button[type=submit]')
10 | .click('button[type=submit]')
11 | .assert.containsText('.mainline-results', 'Nightwatch.js')
12 | .end();
13 | });
14 | });
15 |
--------------------------------------------------------------------------------
/packages/create-leanup/templates/inferno/tests/unit/openapi.test.ts:
--------------------------------------------------------------------------------
1 | import { expect } from 'chai';
2 |
3 | import { IVersion, IVersionLabelEnum } from '@leanup/openapi-demo';
4 |
5 | describe(`Test: OpenAPI`, () => {
6 | const label: IVersionLabelEnum = IVersionLabelEnum.Latest;
7 | const version: IVersion = {
8 | major: 1,
9 | minor: 2,
10 | patch: 3,
11 | text: '1.2.3',
12 | label: label,
13 | };
14 |
15 | it('Test Version', () => {
16 | expect(version.text).be.equal('1.2.3');
17 | });
18 | });
19 |
--------------------------------------------------------------------------------
/packages/create-leanup/templates/inferno/vite.config.js:
--------------------------------------------------------------------------------
1 | module.exports = require('@leanup/stack-vite/vite.config');
2 |
--------------------------------------------------------------------------------
/packages/create-leanup/templates/inferno/webpack.config.js:
--------------------------------------------------------------------------------
1 | module.exports = require('@leanup/stack-inferno/webpack.config');
2 |
--------------------------------------------------------------------------------
/packages/create-leanup/templates/inferno/windi.config.js:
--------------------------------------------------------------------------------
1 | import { defineConfig } from 'windicss/helpers';
2 |
3 | export default defineConfig({
4 | darkMode: 'media',
5 | extract: {
6 | include: ['src/**/*.{html,svelte,ts,tsx,vue}'],
7 | },
8 | plugins: [require('windicss/plugin/filters')],
9 | });
10 |
--------------------------------------------------------------------------------
/packages/create-leanup/templates/lit-element/.editorconfig:
--------------------------------------------------------------------------------
1 | # http://editorconfig.org
2 |
3 | root = true
4 |
5 | [*]
6 | charset = utf-8
7 | indent_style = space
8 | indent_size = 2
9 | end_of_line = lf
10 | insert_final_newline = true
11 | trim_trailing_whitespace = true
12 |
13 | [*.md]
14 | insert_final_newline = false
15 | trim_trailing_whitespace = false
16 |
--------------------------------------------------------------------------------
/packages/create-leanup/templates/lit-element/.eslintignore:
--------------------------------------------------------------------------------
1 | **/assets/**
--------------------------------------------------------------------------------
/packages/create-leanup/templates/lit-element/.eslintrc.js:
--------------------------------------------------------------------------------
1 | module.exports = require('@leanup/stack/.eslintrc');
2 |
--------------------------------------------------------------------------------
/packages/create-leanup/templates/lit-element/.mocharc.js:
--------------------------------------------------------------------------------
1 | module.exports = require('@leanup/stack/.mocharc');
2 |
--------------------------------------------------------------------------------
/packages/create-leanup/templates/lit-element/.npmrc:
--------------------------------------------------------------------------------
1 | auto-install-peers=true
2 | shamefully-hoist=true
3 |
--------------------------------------------------------------------------------
/packages/create-leanup/templates/lit-element/.prettierignore:
--------------------------------------------------------------------------------
1 | **/assets/**
2 | *.feature
3 | *.sass
4 | *.scss
--------------------------------------------------------------------------------
/packages/create-leanup/templates/lit-element/.ts-prunerc.js:
--------------------------------------------------------------------------------
1 | // https://github.com/nadeesha/ts-prune
2 | https: module.exports = {
3 | // ignore: '(arg-types|form/form|mermaid|src/index|stories).tsx?',
4 | // skip: 'autogen',
5 | };
6 |
--------------------------------------------------------------------------------
/packages/create-leanup/templates/lit-element/gitignore:
--------------------------------------------------------------------------------
1 | /.husky
2 | /.reports
3 | /dist
4 | /hint-report
5 | /node_modules
6 | *.log
7 |
--------------------------------------------------------------------------------
/packages/create-leanup/templates/lit-element/nightwatch.conf.js:
--------------------------------------------------------------------------------
1 | module.exports = require('@leanup/stack/nightwatch.conf');
2 |
--------------------------------------------------------------------------------
/packages/create-leanup/templates/lit-element/nyc.config.js:
--------------------------------------------------------------------------------
1 | module.exports = require('@leanup/stack/nyc.config');
2 |
--------------------------------------------------------------------------------
/packages/create-leanup/templates/lit-element/postcss.config.js:
--------------------------------------------------------------------------------
1 | // ## Migrate from 1.1 to 1.2
2 |
3 | // ### Changes
4 |
5 | // 1. ⛔ `autoprefixer` was removed from stack, it is to handle in project scope
6 | // 2. ⛔ `cssnano` was removed from default template, it is to handle in project scope
7 | // 3. ⛔ `postcss.config.js` was removed from stack, it is to handle in project scope
8 |
9 | module.exports = {
10 | plugins: [
11 | require('postcss-windicss')({
12 | touchMode: 'insert-comment',
13 | }),
14 | ],
15 | };
16 |
--------------------------------------------------------------------------------
/packages/create-leanup/templates/lit-element/prettier.config.js:
--------------------------------------------------------------------------------
1 | module.exports = require('@leanup/stack/prettier.config');
2 |
--------------------------------------------------------------------------------
/packages/create-leanup/templates/lit-element/snowpack.config.js:
--------------------------------------------------------------------------------
1 | module.exports = require('@leanup/stack-snowpack/snowpack.config');
2 |
--------------------------------------------------------------------------------
/packages/create-leanup/templates/lit-element/src/assets/logo.leanupjs.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/leanupjs/leanup/2603659c93ceab96c643a05a9b8f836d17b60ea9/packages/create-leanup/templates/lit-element/src/assets/logo.leanupjs.png
--------------------------------------------------------------------------------
/packages/create-leanup/templates/lit-element/src/assets/logo.polymer.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/leanupjs/leanup/2603659c93ceab96c643a05a9b8f836d17b60ea9/packages/create-leanup/templates/lit-element/src/assets/logo.polymer.png
--------------------------------------------------------------------------------
/packages/create-leanup/templates/lit-element/src/components/component.lit-element.ts:
--------------------------------------------------------------------------------
1 | import { LitElement } from 'lit-element';
2 |
3 | export class LitElementComponent extends LitElement {
4 | public createRenderRoot(): LitElementComponent {
5 | return this;
6 | }
7 | }
8 |
--------------------------------------------------------------------------------
/packages/create-leanup/templates/lit-element/src/components/series/editor/controller.ts:
--------------------------------------------------------------------------------
1 | import { AbstractController } from '@leanup/lib';
2 |
3 | export class EditorSerieController extends AbstractController {}
4 |
--------------------------------------------------------------------------------
/packages/create-leanup/templates/lit-element/src/components/series/editor/editor.form.ts:
--------------------------------------------------------------------------------
1 | import { FormControl, InputControl } from '@leanup/form';
2 |
3 | export class EditorForm extends FormControl {
4 | public constructor(name: string) {
5 | super(name);
6 | this.addControl(
7 | new InputControl('title', {
8 | label: 'Title',
9 | value: '',
10 | })
11 | );
12 | this.addControl(
13 | new InputControl('unit', {
14 | label: 'Unit',
15 | value: '',
16 | })
17 | );
18 | }
19 | }
20 |
--------------------------------------------------------------------------------
/packages/create-leanup/templates/lit-element/src/lit-element.main.ts:
--------------------------------------------------------------------------------
1 | import './components/app/component.lit-element';
2 |
3 | import * as PACKAGE_JSON from '../node_modules/lit-element/package.json';
4 |
5 | import { run } from './app.run';
6 | import { typeIt } from './shares/utils';
7 |
8 | const TYPED_PACKAGE_JSON = typeIt<{ version: string }>(PACKAGE_JSON);
9 |
10 | run('lit-element', TYPED_PACKAGE_JSON.version, () => {
11 | // Render the template to the document
12 | const htmlDivElement: HTMLDivElement | null = document.querySelector('div#lit-element');
13 | if (htmlDivElement instanceof HTMLDivElement) {
14 | htmlDivElement.innerHTML = '';
15 | }
16 | });
17 |
--------------------------------------------------------------------------------
/packages/create-leanup/templates/lit-element/src/main.ts:
--------------------------------------------------------------------------------
1 | import './lit-element.main';
2 |
3 | // import './preact.main';
4 |
--------------------------------------------------------------------------------
/packages/create-leanup/templates/lit-element/src/models/framework.interface.ts:
--------------------------------------------------------------------------------
1 | export interface Framework {
2 | name: string;
3 | version: string;
4 | }
5 |
--------------------------------------------------------------------------------
/packages/create-leanup/templates/lit-element/src/models/measured-item.model.ts:
--------------------------------------------------------------------------------
1 | export class MeasuredItemModel {
2 | private date: Date;
3 | private value: number;
4 |
5 | public constructor(date: Date, value: number) {
6 | this.date = date;
7 | this.value = value;
8 | }
9 |
10 | public getDate(): Date {
11 | return this.date;
12 | }
13 | public getValue(): number {
14 | return this.value;
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/packages/create-leanup/templates/lit-element/src/services/storage/mock.json:
--------------------------------------------------------------------------------
1 | {
2 | "measuredSeries": [
3 | { "id": 5, "title": "Gas", "unit": "m³" },
4 | { "id": 4, "title": "Strom", "unit": "kWh" },
5 | { "id": 3, "title": "Wasser", "unit": "m³" },
6 | { "id": 2, "title": "Außentemparatur", "unit": "°C" },
7 | { "id": 1, "title": "Sonnenstunden", "unit": "h" }
8 | ]
9 | }
10 |
--------------------------------------------------------------------------------
/packages/create-leanup/templates/lit-element/src/shares/register.ts:
--------------------------------------------------------------------------------
1 | import { DI } from '@leanup/lib';
2 | import { VersionApi } from '@leanup/openapi-demo';
3 |
4 | import { MeasurementService } from '../services/measurements/service';
5 | import { RouterService } from '../services/router/service';
6 | import { StorageService } from '../services/storage/service';
7 |
8 | // RouterService is an example as static class.
9 | DI.register('RouterService', RouterService);
10 |
11 | DI.register('StorageService', new StorageService());
12 | DI.register('MeasurementService', new MeasurementService());
13 | DI.register('VersionApi', new VersionApi());
14 |
--------------------------------------------------------------------------------
/packages/create-leanup/templates/lit-element/src/shares/routing.ts:
--------------------------------------------------------------------------------
1 | import { RouterService } from '../services/router/service';
2 |
3 | RouterService.register([
4 | {
5 | url: 'series',
6 | },
7 | {
8 | url: 'series/create',
9 | },
10 | {
11 | url: 'series/:id/edit',
12 | },
13 | ]);
14 |
--------------------------------------------------------------------------------
/packages/create-leanup/templates/lit-element/src/shares/utils.ts:
--------------------------------------------------------------------------------
1 | export function typeIt(json: Object): T {
2 | const typed = JSON.parse(JSON.stringify(json)) as { default: T };
3 | return typed.default;
4 | }
5 |
--------------------------------------------------------------------------------
/packages/create-leanup/templates/lit-element/src/types/images.d.ts:
--------------------------------------------------------------------------------
1 | declare module '*.jpeg';
2 | declare module '*.jpg';
3 | declare module '*.png';
4 | declare module '*.gif';
5 |
--------------------------------------------------------------------------------
/packages/create-leanup/templates/lit-element/tests/e2e/ecosia.js:
--------------------------------------------------------------------------------
1 | describe(`Demo's`, () => {
2 | it('ecosia.org', (browser) => {
3 | browser
4 | .url('https://www.ecosia.org/')
5 | .waitForElementVisible('body')
6 | .assert.titleContains('Ecosia')
7 | .assert.visible('input[type=search]')
8 | .setValue('input[type=search]', 'nightwatch')
9 | .assert.visible('button[type=submit]')
10 | .click('button[type=submit]')
11 | .assert.containsText('.mainline-results', 'Nightwatch.js')
12 | .end();
13 | });
14 | });
15 |
--------------------------------------------------------------------------------
/packages/create-leanup/templates/lit-element/tests/unit/openapi.test.ts:
--------------------------------------------------------------------------------
1 | import { expect } from 'chai';
2 |
3 | import { IVersion, IVersionLabelEnum } from '@leanup/openapi-demo';
4 |
5 | describe(`Test: OpenAPI`, () => {
6 | const label: IVersionLabelEnum = IVersionLabelEnum.Latest;
7 | const version: IVersion = {
8 | major: 1,
9 | minor: 2,
10 | patch: 3,
11 | text: '1.2.3',
12 | label: label,
13 | };
14 |
15 | it('Test Version', () => {
16 | expect(version.text).be.equal('1.2.3');
17 | });
18 | });
19 |
--------------------------------------------------------------------------------
/packages/create-leanup/templates/lit-element/vite.config.js:
--------------------------------------------------------------------------------
1 | module.exports = require('@leanup/stack-vite/vite.config');
2 |
--------------------------------------------------------------------------------
/packages/create-leanup/templates/lit-element/webpack.config.js:
--------------------------------------------------------------------------------
1 | module.exports = require('@leanup/stack-webpack');
2 |
--------------------------------------------------------------------------------
/packages/create-leanup/templates/lit-element/windi.config.js:
--------------------------------------------------------------------------------
1 | import { defineConfig } from 'windicss/helpers';
2 |
3 | export default defineConfig({
4 | darkMode: 'media',
5 | extract: {
6 | include: ['src/**/*.{html,svelte,ts,tsx,vue}'],
7 | },
8 | plugins: [require('windicss/plugin/filters')],
9 | });
10 |
--------------------------------------------------------------------------------
/packages/create-leanup/templates/preact/.editorconfig:
--------------------------------------------------------------------------------
1 | # http://editorconfig.org
2 |
3 | root = true
4 |
5 | [*]
6 | charset = utf-8
7 | indent_style = space
8 | indent_size = 2
9 | end_of_line = lf
10 | insert_final_newline = true
11 | trim_trailing_whitespace = true
12 |
13 | [*.md]
14 | insert_final_newline = false
15 | trim_trailing_whitespace = false
16 |
--------------------------------------------------------------------------------
/packages/create-leanup/templates/preact/.eslintignore:
--------------------------------------------------------------------------------
1 | **/assets/**
--------------------------------------------------------------------------------
/packages/create-leanup/templates/preact/.eslintrc.js:
--------------------------------------------------------------------------------
1 | module.exports = require('@leanup/stack/.eslintrc');
2 |
--------------------------------------------------------------------------------
/packages/create-leanup/templates/preact/.mocharc.js:
--------------------------------------------------------------------------------
1 | module.exports = require('@leanup/stack/.mocharc');
2 |
--------------------------------------------------------------------------------
/packages/create-leanup/templates/preact/.npmrc:
--------------------------------------------------------------------------------
1 | auto-install-peers=true
2 | shamefully-hoist=true
3 |
--------------------------------------------------------------------------------
/packages/create-leanup/templates/preact/.prettierignore:
--------------------------------------------------------------------------------
1 | **/assets/**
2 | *.feature
3 | *.sass
4 | *.scss
--------------------------------------------------------------------------------
/packages/create-leanup/templates/preact/.ts-prunerc.js:
--------------------------------------------------------------------------------
1 | // https://github.com/nadeesha/ts-prune
2 | https: module.exports = {
3 | // ignore: '(arg-types|form/form|mermaid|src/index|stories).tsx?',
4 | // skip: 'autogen',
5 | };
6 |
--------------------------------------------------------------------------------
/packages/create-leanup/templates/preact/gitignore:
--------------------------------------------------------------------------------
1 | /.husky
2 | /.reports
3 | /dist
4 | /hint-report
5 | /node_modules
6 | *.log
7 |
--------------------------------------------------------------------------------
/packages/create-leanup/templates/preact/nightwatch.conf.js:
--------------------------------------------------------------------------------
1 | module.exports = require('@leanup/stack/nightwatch.conf');
2 |
--------------------------------------------------------------------------------
/packages/create-leanup/templates/preact/nyc.config.js:
--------------------------------------------------------------------------------
1 | module.exports = require('@leanup/stack/nyc.config');
2 |
--------------------------------------------------------------------------------
/packages/create-leanup/templates/preact/postcss.config.js:
--------------------------------------------------------------------------------
1 | // ## Migrate from 1.1 to 1.2
2 |
3 | // ### Changes
4 |
5 | // 1. ⛔ `autoprefixer` was removed from stack, it is to handle in project scope
6 | // 2. ⛔ `cssnano` was removed from default template, it is to handle in project scope
7 | // 3. ⛔ `postcss.config.js` was removed from stack, it is to handle in project scope
8 |
9 | module.exports = {
10 | plugins: [
11 | require('postcss-windicss')({
12 | touchMode: 'insert-comment',
13 | }),
14 | ],
15 | };
16 |
--------------------------------------------------------------------------------
/packages/create-leanup/templates/preact/prettier.config.js:
--------------------------------------------------------------------------------
1 | module.exports = require('@leanup/stack/prettier.config');
2 |
--------------------------------------------------------------------------------
/packages/create-leanup/templates/preact/snowpack.config.js:
--------------------------------------------------------------------------------
1 | module.exports = require('@leanup/stack-preact/snowpack.config');
2 |
--------------------------------------------------------------------------------
/packages/create-leanup/templates/preact/src/assets/logo.leanupjs.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/leanupjs/leanup/2603659c93ceab96c643a05a9b8f836d17b60ea9/packages/create-leanup/templates/preact/src/assets/logo.leanupjs.png
--------------------------------------------------------------------------------
/packages/create-leanup/templates/preact/src/assets/logo.preact.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/leanupjs/leanup/2603659c93ceab96c643a05a9b8f836d17b60ea9/packages/create-leanup/templates/preact/src/assets/logo.preact.png
--------------------------------------------------------------------------------
/packages/create-leanup/templates/preact/src/components/series/editor/controller.ts:
--------------------------------------------------------------------------------
1 | import { AbstractController } from '@leanup/lib';
2 |
3 | export class EditorSerieController extends AbstractController {}
4 |
--------------------------------------------------------------------------------
/packages/create-leanup/templates/preact/src/components/series/editor/editor.form.ts:
--------------------------------------------------------------------------------
1 | import { FormControl, InputControl } from '@leanup/form';
2 |
3 | export class EditorForm extends FormControl {
4 | public constructor(name: string) {
5 | super(name);
6 | this.addControl(
7 | new InputControl('title', {
8 | label: 'Title',
9 | value: '',
10 | })
11 | );
12 | this.addControl(
13 | new InputControl('unit', {
14 | label: 'Unit',
15 | value: '',
16 | })
17 | );
18 | }
19 | }
20 |
--------------------------------------------------------------------------------
/packages/create-leanup/templates/preact/src/main.ts:
--------------------------------------------------------------------------------
1 | import './preact.main';
2 |
--------------------------------------------------------------------------------
/packages/create-leanup/templates/preact/src/models/framework.interface.ts:
--------------------------------------------------------------------------------
1 | export interface Framework {
2 | name: string;
3 | version: string;
4 | }
5 |
--------------------------------------------------------------------------------
/packages/create-leanup/templates/preact/src/models/measured-item.model.ts:
--------------------------------------------------------------------------------
1 | export class MeasuredItemModel {
2 | private date: Date;
3 | private value: number;
4 |
5 | public constructor(date: Date, value: number) {
6 | this.date = date;
7 | this.value = value;
8 | }
9 |
10 | public getDate(): Date {
11 | return this.date;
12 | }
13 | public getValue(): number {
14 | return this.value;
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/packages/create-leanup/templates/preact/src/preact.main.tsx:
--------------------------------------------------------------------------------
1 | import 'preact/debug';
2 |
3 | import { render } from 'preact';
4 | import * as PACKAGE_JSON from 'preact/package.json';
5 |
6 | import { run } from './app.run';
7 | import { AppComponent } from './components/app/component.preact';
8 | import { typeIt } from './shares/utils';
9 |
10 | const TYPED_PACKAGE_JSON = typeIt<{ version: string }>(PACKAGE_JSON);
11 |
12 | run('Preact', TYPED_PACKAGE_JSON.version, () => {
13 | const htmlDivElement: HTMLDivElement | null = document.querySelector('div#preact');
14 | if (htmlDivElement instanceof HTMLDivElement) {
15 | render(, htmlDivElement);
16 | }
17 | });
18 |
--------------------------------------------------------------------------------
/packages/create-leanup/templates/preact/src/services/storage/mock.json:
--------------------------------------------------------------------------------
1 | {
2 | "measuredSeries": [
3 | { "id": 5, "title": "Gas", "unit": "m³" },
4 | { "id": 4, "title": "Strom", "unit": "kWh" },
5 | { "id": 3, "title": "Wasser", "unit": "m³" },
6 | { "id": 2, "title": "Außentemparatur", "unit": "°C" },
7 | { "id": 1, "title": "Sonnenstunden", "unit": "h" }
8 | ]
9 | }
10 |
--------------------------------------------------------------------------------
/packages/create-leanup/templates/preact/src/shares/register.ts:
--------------------------------------------------------------------------------
1 | import { DI } from '@leanup/lib';
2 | import { VersionApi } from '@leanup/openapi-demo';
3 |
4 | import { MeasurementService } from '../services/measurements/service';
5 | import { RouterService } from '../services/router/service';
6 | import { StorageService } from '../services/storage/service';
7 |
8 | // RouterService is an example as static class.
9 | DI.register('RouterService', RouterService);
10 |
11 | DI.register('StorageService', new StorageService());
12 | DI.register('MeasurementService', new MeasurementService());
13 | DI.register('VersionApi', new VersionApi());
14 |
--------------------------------------------------------------------------------
/packages/create-leanup/templates/preact/src/shares/routing.ts:
--------------------------------------------------------------------------------
1 | import { RouterService } from '../services/router/service';
2 |
3 | RouterService.register([
4 | {
5 | url: 'series',
6 | },
7 | {
8 | url: 'series/create',
9 | },
10 | {
11 | url: 'series/:id/edit',
12 | },
13 | ]);
14 |
--------------------------------------------------------------------------------
/packages/create-leanup/templates/preact/src/shares/utils.ts:
--------------------------------------------------------------------------------
1 | export function typeIt(json: Object): T {
2 | const typed = JSON.parse(JSON.stringify(json)) as { default: T };
3 | return typed.default;
4 | }
5 |
--------------------------------------------------------------------------------
/packages/create-leanup/templates/preact/src/types/images.d.ts:
--------------------------------------------------------------------------------
1 | declare module '*.jpeg';
2 | declare module '*.jpg';
3 | declare module '*.png';
4 | declare module '*.gif';
5 |
--------------------------------------------------------------------------------
/packages/create-leanup/templates/preact/tests/e2e/ecosia.js:
--------------------------------------------------------------------------------
1 | describe(`Demo's`, () => {
2 | it('ecosia.org', (browser) => {
3 | browser
4 | .url('https://www.ecosia.org/')
5 | .waitForElementVisible('body')
6 | .assert.titleContains('Ecosia')
7 | .assert.visible('input[type=search]')
8 | .setValue('input[type=search]', 'nightwatch')
9 | .assert.visible('button[type=submit]')
10 | .click('button[type=submit]')
11 | .assert.containsText('.mainline-results', 'Nightwatch.js')
12 | .end();
13 | });
14 | });
15 |
--------------------------------------------------------------------------------
/packages/create-leanup/templates/preact/tests/unit/openapi.test.ts:
--------------------------------------------------------------------------------
1 | import { expect } from 'chai';
2 |
3 | import { IVersion, IVersionLabelEnum } from '@leanup/openapi-demo';
4 |
5 | describe(`Test: OpenAPI`, () => {
6 | const label: IVersionLabelEnum = IVersionLabelEnum.Latest;
7 | const version: IVersion = {
8 | major: 1,
9 | minor: 2,
10 | patch: 3,
11 | text: '1.2.3',
12 | label: label,
13 | };
14 |
15 | it('Test Version', () => {
16 | expect(version.text).be.equal('1.2.3');
17 | });
18 | });
19 |
--------------------------------------------------------------------------------
/packages/create-leanup/templates/preact/vite.config.js:
--------------------------------------------------------------------------------
1 | module.exports = require('@leanup/stack-preact/vite.config');
2 |
--------------------------------------------------------------------------------
/packages/create-leanup/templates/preact/webpack.config.js:
--------------------------------------------------------------------------------
1 | module.exports = require('@leanup/stack-preact/webpack.config');
2 |
--------------------------------------------------------------------------------
/packages/create-leanup/templates/preact/windi.config.js:
--------------------------------------------------------------------------------
1 | import { defineConfig } from 'windicss/helpers';
2 |
3 | export default defineConfig({
4 | darkMode: 'media',
5 | extract: {
6 | include: ['src/**/*.{html,svelte,ts,tsx,vue}'],
7 | },
8 | plugins: [require('windicss/plugin/filters')],
9 | });
10 |
--------------------------------------------------------------------------------
/packages/create-leanup/templates/react/.editorconfig:
--------------------------------------------------------------------------------
1 | # http://editorconfig.org
2 |
3 | root = true
4 |
5 | [*]
6 | charset = utf-8
7 | indent_style = space
8 | indent_size = 2
9 | end_of_line = lf
10 | insert_final_newline = true
11 | trim_trailing_whitespace = true
12 |
13 | [*.md]
14 | insert_final_newline = false
15 | trim_trailing_whitespace = false
16 |
--------------------------------------------------------------------------------
/packages/create-leanup/templates/react/.eslintignore:
--------------------------------------------------------------------------------
1 | **/assets/**
--------------------------------------------------------------------------------
/packages/create-leanup/templates/react/.eslintrc.js:
--------------------------------------------------------------------------------
1 | module.exports = require('@leanup/stack/.eslintrc');
2 |
--------------------------------------------------------------------------------
/packages/create-leanup/templates/react/.mocharc.js:
--------------------------------------------------------------------------------
1 | module.exports = require('@leanup/stack/.mocharc');
2 |
--------------------------------------------------------------------------------
/packages/create-leanup/templates/react/.npmrc:
--------------------------------------------------------------------------------
1 | auto-install-peers=true
2 | shamefully-hoist=true
3 |
--------------------------------------------------------------------------------
/packages/create-leanup/templates/react/.prettierignore:
--------------------------------------------------------------------------------
1 | **/assets/**
2 | *.feature
3 | *.sass
4 | *.scss
--------------------------------------------------------------------------------
/packages/create-leanup/templates/react/.ts-prunerc.js:
--------------------------------------------------------------------------------
1 | // https://github.com/nadeesha/ts-prune
2 | https: module.exports = {
3 | // ignore: '(arg-types|form/form|mermaid|src/index|stories).tsx?',
4 | // skip: 'autogen',
5 | };
6 |
--------------------------------------------------------------------------------
/packages/create-leanup/templates/react/gitignore:
--------------------------------------------------------------------------------
1 | /.husky
2 | /.reports
3 | /dist
4 | /hint-report
5 | /node_modules
6 | *.log
7 |
--------------------------------------------------------------------------------
/packages/create-leanup/templates/react/nightwatch.conf.js:
--------------------------------------------------------------------------------
1 | module.exports = require('@leanup/stack/nightwatch.conf');
2 |
--------------------------------------------------------------------------------
/packages/create-leanup/templates/react/nyc.config.js:
--------------------------------------------------------------------------------
1 | module.exports = require('@leanup/stack/nyc.config');
2 |
--------------------------------------------------------------------------------
/packages/create-leanup/templates/react/postcss.config.js:
--------------------------------------------------------------------------------
1 | // ## Migrate from 1.1 to 1.2
2 |
3 | // ### Changes
4 |
5 | // 1. ⛔ `autoprefixer` was removed from stack, it is to handle in project scope
6 | // 2. ⛔ `cssnano` was removed from default template, it is to handle in project scope
7 | // 3. ⛔ `postcss.config.js` was removed from stack, it is to handle in project scope
8 |
9 | module.exports = {
10 | plugins: [
11 | require('postcss-windicss')({
12 | touchMode: 'insert-comment',
13 | }),
14 | ],
15 | };
16 |
--------------------------------------------------------------------------------
/packages/create-leanup/templates/react/prettier.config.js:
--------------------------------------------------------------------------------
1 | module.exports = require('@leanup/stack/prettier.config');
2 |
--------------------------------------------------------------------------------
/packages/create-leanup/templates/react/snowpack.config.js:
--------------------------------------------------------------------------------
1 | module.exports = require('@leanup/stack-snowpack/snowpack.config');
2 |
--------------------------------------------------------------------------------
/packages/create-leanup/templates/react/src/assets/logo.leanupjs.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/leanupjs/leanup/2603659c93ceab96c643a05a9b8f836d17b60ea9/packages/create-leanup/templates/react/src/assets/logo.leanupjs.png
--------------------------------------------------------------------------------
/packages/create-leanup/templates/react/src/assets/logo.react.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/leanupjs/leanup/2603659c93ceab96c643a05a9b8f836d17b60ea9/packages/create-leanup/templates/react/src/assets/logo.react.png
--------------------------------------------------------------------------------
/packages/create-leanup/templates/react/src/components/series/editor/controller.ts:
--------------------------------------------------------------------------------
1 | import { AbstractController } from '@leanup/lib';
2 |
3 | export class EditorSerieController extends AbstractController {}
4 |
--------------------------------------------------------------------------------
/packages/create-leanup/templates/react/src/components/series/editor/editor.form.ts:
--------------------------------------------------------------------------------
1 | import { FormControl, InputControl } from '@leanup/form';
2 |
3 | export class EditorForm extends FormControl {
4 | public constructor(name: string) {
5 | super(name);
6 | this.addControl(
7 | new InputControl('title', {
8 | label: 'Title',
9 | value: '',
10 | })
11 | );
12 | this.addControl(
13 | new InputControl('unit', {
14 | label: 'Unit',
15 | value: '',
16 | })
17 | );
18 | }
19 | }
20 |
--------------------------------------------------------------------------------
/packages/create-leanup/templates/react/src/main.ts:
--------------------------------------------------------------------------------
1 | import './react.main';
2 |
--------------------------------------------------------------------------------
/packages/create-leanup/templates/react/src/models/framework.interface.ts:
--------------------------------------------------------------------------------
1 | export interface Framework {
2 | name: string;
3 | version: string;
4 | }
5 |
--------------------------------------------------------------------------------
/packages/create-leanup/templates/react/src/models/measured-item.model.ts:
--------------------------------------------------------------------------------
1 | export class MeasuredItemModel {
2 | private date: Date;
3 | private value: number;
4 |
5 | public constructor(date: Date, value: number) {
6 | this.date = date;
7 | this.value = value;
8 | }
9 |
10 | public getDate(): Date {
11 | return this.date;
12 | }
13 | public getValue(): number {
14 | return this.value;
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/packages/create-leanup/templates/react/src/react.main.tsx:
--------------------------------------------------------------------------------
1 | import React from 'react';
2 | import { createRoot } from 'react-dom/client';
3 | import * as PACKAGE_JSON from 'react/package.json';
4 |
5 | import { run } from './app.run';
6 | import { AppComponent } from './components/app/component.react';
7 | import { typeIt } from './shares/utils';
8 |
9 | const TYPED_PACKAGE_JSON = typeIt<{ version: string }>(PACKAGE_JSON);
10 |
11 | run('React', TYPED_PACKAGE_JSON.version, () => {
12 | const htmlDivElement: HTMLDivElement | null = document.querySelector('div#react');
13 | if (htmlDivElement instanceof HTMLDivElement) {
14 | const root = createRoot(htmlDivElement);
15 | root.render();
16 | }
17 | });
18 |
--------------------------------------------------------------------------------
/packages/create-leanup/templates/react/src/services/storage/mock.json:
--------------------------------------------------------------------------------
1 | {
2 | "measuredSeries": [
3 | { "id": 5, "title": "Gas", "unit": "m³" },
4 | { "id": 4, "title": "Strom", "unit": "kWh" },
5 | { "id": 3, "title": "Wasser", "unit": "m³" },
6 | { "id": 2, "title": "Außentemparatur", "unit": "°C" },
7 | { "id": 1, "title": "Sonnenstunden", "unit": "h" }
8 | ]
9 | }
10 |
--------------------------------------------------------------------------------
/packages/create-leanup/templates/react/src/shares/register.ts:
--------------------------------------------------------------------------------
1 | import { DI } from '@leanup/lib';
2 | import { VersionApi } from '@leanup/openapi-demo';
3 |
4 | import { MeasurementService } from '../services/measurements/service';
5 | import { RouterService } from '../services/router/service';
6 | import { StorageService } from '../services/storage/service';
7 |
8 | // RouterService is an example as static class.
9 | DI.register('RouterService', RouterService);
10 |
11 | DI.register('StorageService', new StorageService());
12 | DI.register('MeasurementService', new MeasurementService());
13 | DI.register('VersionApi', new VersionApi());
14 |
--------------------------------------------------------------------------------
/packages/create-leanup/templates/react/src/shares/routing.ts:
--------------------------------------------------------------------------------
1 | import { RouterService } from '../services/router/service';
2 |
3 | RouterService.register([
4 | {
5 | url: 'series',
6 | },
7 | {
8 | url: 'series/create',
9 | },
10 | {
11 | url: 'series/:id/edit',
12 | },
13 | ]);
14 |
--------------------------------------------------------------------------------
/packages/create-leanup/templates/react/src/shares/utils.ts:
--------------------------------------------------------------------------------
1 | export function typeIt(json: Object): T {
2 | const typed = JSON.parse(JSON.stringify(json)) as { default: T };
3 | return typed.default;
4 | }
5 |
--------------------------------------------------------------------------------
/packages/create-leanup/templates/react/src/types/images.d.ts:
--------------------------------------------------------------------------------
1 | declare module '*.jpeg';
2 | declare module '*.jpg';
3 | declare module '*.png';
4 | declare module '*.gif';
5 |
--------------------------------------------------------------------------------
/packages/create-leanup/templates/react/tests/e2e/ecosia.js:
--------------------------------------------------------------------------------
1 | describe(`Demo's`, () => {
2 | it('ecosia.org', (browser) => {
3 | browser
4 | .url('https://www.ecosia.org/')
5 | .waitForElementVisible('body')
6 | .assert.titleContains('Ecosia')
7 | .assert.visible('input[type=search]')
8 | .setValue('input[type=search]', 'nightwatch')
9 | .assert.visible('button[type=submit]')
10 | .click('button[type=submit]')
11 | .assert.containsText('.mainline-results', 'Nightwatch.js')
12 | .end();
13 | });
14 | });
15 |
--------------------------------------------------------------------------------
/packages/create-leanup/templates/react/tests/unit/openapi.test.ts:
--------------------------------------------------------------------------------
1 | import { expect } from 'chai';
2 |
3 | import { IVersion, IVersionLabelEnum } from '@leanup/openapi-demo';
4 |
5 | describe(`Test: OpenAPI`, () => {
6 | const label: IVersionLabelEnum = IVersionLabelEnum.Latest;
7 | const version: IVersion = {
8 | major: 1,
9 | minor: 2,
10 | patch: 3,
11 | text: '1.2.3',
12 | label: label,
13 | };
14 |
15 | it('Test Version', () => {
16 | expect(version.text).be.equal('1.2.3');
17 | });
18 | });
19 |
--------------------------------------------------------------------------------
/packages/create-leanup/templates/react/vite.config.js:
--------------------------------------------------------------------------------
1 | module.exports = require('@leanup/stack-vite/vite.config');
2 |
--------------------------------------------------------------------------------
/packages/create-leanup/templates/react/webpack.config.js:
--------------------------------------------------------------------------------
1 | module.exports = require('@leanup/stack-react/webpack.config');
2 |
--------------------------------------------------------------------------------
/packages/create-leanup/templates/react/windi.config.js:
--------------------------------------------------------------------------------
1 | import { defineConfig } from 'windicss/helpers';
2 |
3 | export default defineConfig({
4 | darkMode: 'media',
5 | extract: {
6 | include: ['src/**/*.{html,svelte,ts,tsx,vue}'],
7 | },
8 | plugins: [require('windicss/plugin/filters')],
9 | });
10 |
--------------------------------------------------------------------------------
/packages/create-leanup/templates/solid/.editorconfig:
--------------------------------------------------------------------------------
1 | # http://editorconfig.org
2 |
3 | root = true
4 |
5 | [*]
6 | charset = utf-8
7 | indent_style = space
8 | indent_size = 2
9 | end_of_line = lf
10 | insert_final_newline = true
11 | trim_trailing_whitespace = true
12 |
13 | [*.md]
14 | insert_final_newline = false
15 | trim_trailing_whitespace = false
16 |
--------------------------------------------------------------------------------
/packages/create-leanup/templates/solid/.eslintignore:
--------------------------------------------------------------------------------
1 | **/assets/**
--------------------------------------------------------------------------------
/packages/create-leanup/templates/solid/.eslintrc.js:
--------------------------------------------------------------------------------
1 | module.exports = require('@leanup/stack/.eslintrc');
2 |
--------------------------------------------------------------------------------
/packages/create-leanup/templates/solid/.mocharc.js:
--------------------------------------------------------------------------------
1 | module.exports = require('@leanup/stack/.mocharc');
2 |
--------------------------------------------------------------------------------
/packages/create-leanup/templates/solid/.npmrc:
--------------------------------------------------------------------------------
1 | auto-install-peers=true
2 | shamefully-hoist=true
3 |
--------------------------------------------------------------------------------
/packages/create-leanup/templates/solid/.prettierignore:
--------------------------------------------------------------------------------
1 | **/assets/**
2 | *.feature
3 | *.sass
4 | *.scss
--------------------------------------------------------------------------------
/packages/create-leanup/templates/solid/.ts-prunerc.js:
--------------------------------------------------------------------------------
1 | // https://github.com/nadeesha/ts-prune
2 | https: module.exports = {
3 | // ignore: '(arg-types|form/form|mermaid|src/index|stories).tsx?',
4 | // skip: 'autogen',
5 | };
6 |
--------------------------------------------------------------------------------
/packages/create-leanup/templates/solid/babel.config.js:
--------------------------------------------------------------------------------
1 | module.exports = require('@leanup/stack-solid/babel.config');
2 |
--------------------------------------------------------------------------------
/packages/create-leanup/templates/solid/gitignore:
--------------------------------------------------------------------------------
1 | /.husky
2 | /.reports
3 | /dist
4 | /hint-report
5 | /node_modules
6 | *.log
7 |
--------------------------------------------------------------------------------
/packages/create-leanup/templates/solid/nightwatch.conf.js:
--------------------------------------------------------------------------------
1 | module.exports = require('@leanup/stack/nightwatch.conf');
2 |
--------------------------------------------------------------------------------
/packages/create-leanup/templates/solid/nyc.config.js:
--------------------------------------------------------------------------------
1 | module.exports = require('@leanup/stack/nyc.config');
2 |
--------------------------------------------------------------------------------
/packages/create-leanup/templates/solid/postcss.config.js:
--------------------------------------------------------------------------------
1 | // ## Migrate from 1.1 to 1.2
2 |
3 | // ### Changes
4 |
5 | // 1. ⛔ `autoprefixer` was removed from stack, it is to handle in project scope
6 | // 2. ⛔ `cssnano` was removed from default template, it is to handle in project scope
7 | // 3. ⛔ `postcss.config.js` was removed from stack, it is to handle in project scope
8 |
9 | module.exports = {
10 | plugins: [
11 | require('postcss-windicss')({
12 | touchMode: 'insert-comment',
13 | }),
14 | ],
15 | };
16 |
--------------------------------------------------------------------------------
/packages/create-leanup/templates/solid/prettier.config.js:
--------------------------------------------------------------------------------
1 | module.exports = require('@leanup/stack/prettier.config');
2 |
--------------------------------------------------------------------------------
/packages/create-leanup/templates/solid/snowpack.config.js:
--------------------------------------------------------------------------------
1 | module.exports = require('@leanup/stack-solid/snowpack.config');
2 |
--------------------------------------------------------------------------------
/packages/create-leanup/templates/solid/src/assets/logo.leanupjs.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/leanupjs/leanup/2603659c93ceab96c643a05a9b8f836d17b60ea9/packages/create-leanup/templates/solid/src/assets/logo.leanupjs.png
--------------------------------------------------------------------------------
/packages/create-leanup/templates/solid/src/assets/logo.solid.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/leanupjs/leanup/2603659c93ceab96c643a05a9b8f836d17b60ea9/packages/create-leanup/templates/solid/src/assets/logo.solid.png
--------------------------------------------------------------------------------
/packages/create-leanup/templates/solid/src/components/series/editor/component.solid.tsx:
--------------------------------------------------------------------------------
1 | import { Component } from 'solid-js';
2 |
3 | import { InputControl } from '@leanup/form';
4 |
5 | import { InputComponent } from '../../input/component.solid';
6 | import { EditorForm } from './editor.form';
7 |
8 | interface Props {
9 | editorForm: EditorForm;
10 | }
11 |
12 | export const EditorSerieComponent: Component = (props: Props) => {
13 | return (
14 |
15 |
16 |
17 |
18 | );
19 | };
20 |
--------------------------------------------------------------------------------
/packages/create-leanup/templates/solid/src/components/series/editor/controller.ts:
--------------------------------------------------------------------------------
1 | import { AbstractController } from '@leanup/lib';
2 |
3 | export class EditorSerieController extends AbstractController {}
4 |
--------------------------------------------------------------------------------
/packages/create-leanup/templates/solid/src/components/series/editor/editor.form.ts:
--------------------------------------------------------------------------------
1 | import { FormControl, InputControl } from '@leanup/form';
2 |
3 | export class EditorForm extends FormControl {
4 | public constructor(name: string) {
5 | super(name);
6 | this.addControl(
7 | new InputControl('title', {
8 | label: 'Title',
9 | value: '',
10 | })
11 | );
12 | this.addControl(
13 | new InputControl('unit', {
14 | label: 'Unit',
15 | value: '',
16 | })
17 | );
18 | }
19 | }
20 |
--------------------------------------------------------------------------------
/packages/create-leanup/templates/solid/src/main.ts:
--------------------------------------------------------------------------------
1 | import './solid.main';
2 |
--------------------------------------------------------------------------------
/packages/create-leanup/templates/solid/src/models/framework.interface.ts:
--------------------------------------------------------------------------------
1 | export interface Framework {
2 | name: string;
3 | version: string;
4 | }
5 |
--------------------------------------------------------------------------------
/packages/create-leanup/templates/solid/src/models/measured-item.model.ts:
--------------------------------------------------------------------------------
1 | export class MeasuredItemModel {
2 | private date: Date;
3 | private value: number;
4 |
5 | public constructor(date: Date, value: number) {
6 | this.date = date;
7 | this.value = value;
8 | }
9 |
10 | public getDate(): Date {
11 | return this.date;
12 | }
13 | public getValue(): number {
14 | return this.value;
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/packages/create-leanup/templates/solid/src/services/storage/mock.json:
--------------------------------------------------------------------------------
1 | {
2 | "measuredSeries": [
3 | { "id": 5, "title": "Gas", "unit": "m³" },
4 | { "id": 4, "title": "Strom", "unit": "kWh" },
5 | { "id": 3, "title": "Wasser", "unit": "m³" },
6 | { "id": 2, "title": "Außentemparatur", "unit": "°C" },
7 | { "id": 1, "title": "Sonnenstunden", "unit": "h" }
8 | ]
9 | }
10 |
--------------------------------------------------------------------------------
/packages/create-leanup/templates/solid/src/shares/register.ts:
--------------------------------------------------------------------------------
1 | import { DI } from '@leanup/lib';
2 | import { VersionApi } from '@leanup/openapi-demo';
3 |
4 | import { MeasurementService } from '../services/measurements/service';
5 | import { RouterService } from '../services/router/service';
6 | import { StorageService } from '../services/storage/service';
7 |
8 | // RouterService is an example as static class.
9 | DI.register('RouterService', RouterService);
10 |
11 | DI.register('StorageService', new StorageService());
12 | DI.register('MeasurementService', new MeasurementService());
13 | DI.register('VersionApi', new VersionApi());
14 |
--------------------------------------------------------------------------------
/packages/create-leanup/templates/solid/src/shares/routing.ts:
--------------------------------------------------------------------------------
1 | import { RouterService } from '../services/router/service';
2 |
3 | RouterService.register([
4 | {
5 | url: 'series',
6 | },
7 | {
8 | url: 'series/create',
9 | },
10 | {
11 | url: 'series/:id/edit',
12 | },
13 | ]);
14 |
--------------------------------------------------------------------------------
/packages/create-leanup/templates/solid/src/shares/utils.ts:
--------------------------------------------------------------------------------
1 | export function typeIt(json: Object): T {
2 | const typed = JSON.parse(JSON.stringify(json)) as { default: T };
3 | return typed.default;
4 | }
5 |
--------------------------------------------------------------------------------
/packages/create-leanup/templates/solid/src/solid.main.tsx:
--------------------------------------------------------------------------------
1 | import { render } from 'solid-js/web';
2 |
3 | import * as PACKAGE_JSON from '../node_modules/solid-js/package.json';
4 | import { run } from './app.run';
5 | import { AppComponent } from './components/app/component.solid';
6 | import { typeIt } from './shares/utils';
7 |
8 | const TYPED_PACKAGE_JSON = typeIt<{ version: string }>(PACKAGE_JSON);
9 |
10 | run('Solid', TYPED_PACKAGE_JSON.version, () => {
11 | const htmlDivElement: HTMLDivElement | null = document.querySelector('div#solid');
12 | if (htmlDivElement instanceof HTMLDivElement) {
13 | render(() => , htmlDivElement);
14 | }
15 | });
16 |
--------------------------------------------------------------------------------
/packages/create-leanup/templates/solid/src/types/images.d.ts:
--------------------------------------------------------------------------------
1 | declare module '*.jpeg';
2 | declare module '*.jpg';
3 | declare module '*.png';
4 | declare module '*.gif';
5 |
--------------------------------------------------------------------------------
/packages/create-leanup/templates/solid/tests/e2e/ecosia.js:
--------------------------------------------------------------------------------
1 | describe(`Demo's`, () => {
2 | it('ecosia.org', (browser) => {
3 | browser
4 | .url('https://www.ecosia.org/')
5 | .waitForElementVisible('body')
6 | .assert.titleContains('Ecosia')
7 | .assert.visible('input[type=search]')
8 | .setValue('input[type=search]', 'nightwatch')
9 | .assert.visible('button[type=submit]')
10 | .click('button[type=submit]')
11 | .assert.containsText('.mainline-results', 'Nightwatch.js')
12 | .end();
13 | });
14 | });
15 |
--------------------------------------------------------------------------------
/packages/create-leanup/templates/solid/tests/unit/openapi.test.ts:
--------------------------------------------------------------------------------
1 | import { expect } from 'chai';
2 |
3 | import { IVersion, IVersionLabelEnum } from '@leanup/openapi-demo';
4 |
5 | describe(`Test: OpenAPI`, () => {
6 | const label: IVersionLabelEnum = IVersionLabelEnum.Latest;
7 | const version: IVersion = {
8 | major: 1,
9 | minor: 2,
10 | patch: 3,
11 | text: '1.2.3',
12 | label: label,
13 | };
14 |
15 | it('Test Version', () => {
16 | expect(version.text).be.equal('1.2.3');
17 | });
18 | });
19 |
--------------------------------------------------------------------------------
/packages/create-leanup/templates/solid/vite.config.js:
--------------------------------------------------------------------------------
1 | module.exports = require('@leanup/stack-solid/vite.config');
2 |
--------------------------------------------------------------------------------
/packages/create-leanup/templates/solid/webpack.config.js:
--------------------------------------------------------------------------------
1 | module.exports = require('@leanup/stack-solid/webpack.config');
2 |
--------------------------------------------------------------------------------
/packages/create-leanup/templates/solid/windi.config.js:
--------------------------------------------------------------------------------
1 | import { defineConfig } from 'windicss/helpers';
2 |
3 | export default defineConfig({
4 | darkMode: 'media',
5 | extract: {
6 | include: ['src/**/*.{html,svelte,ts,tsx,vue}'],
7 | },
8 | plugins: [require('windicss/plugin/filters')],
9 | });
10 |
--------------------------------------------------------------------------------
/packages/create-leanup/templates/svelte/.editorconfig:
--------------------------------------------------------------------------------
1 | # http://editorconfig.org
2 |
3 | root = true
4 |
5 | [*]
6 | charset = utf-8
7 | indent_style = space
8 | indent_size = 2
9 | end_of_line = lf
10 | insert_final_newline = true
11 | trim_trailing_whitespace = true
12 |
13 | [*.md]
14 | insert_final_newline = false
15 | trim_trailing_whitespace = false
16 |
--------------------------------------------------------------------------------
/packages/create-leanup/templates/svelte/.eslintignore:
--------------------------------------------------------------------------------
1 | **/assets/**
--------------------------------------------------------------------------------
/packages/create-leanup/templates/svelte/.eslintrc.js:
--------------------------------------------------------------------------------
1 | module.exports = require('@leanup/stack/.eslintrc');
2 |
--------------------------------------------------------------------------------
/packages/create-leanup/templates/svelte/.mocharc.js:
--------------------------------------------------------------------------------
1 | module.exports = require('@leanup/stack/.mocharc');
2 |
--------------------------------------------------------------------------------
/packages/create-leanup/templates/svelte/.npmrc:
--------------------------------------------------------------------------------
1 | auto-install-peers=true
2 | shamefully-hoist=true
3 |
--------------------------------------------------------------------------------
/packages/create-leanup/templates/svelte/.prettierignore:
--------------------------------------------------------------------------------
1 | **/assets/**
2 | *.feature
3 | *.sass
4 | *.scss
--------------------------------------------------------------------------------
/packages/create-leanup/templates/svelte/.ts-prunerc.js:
--------------------------------------------------------------------------------
1 | // https://github.com/nadeesha/ts-prune
2 | https: module.exports = {
3 | // ignore: '(arg-types|form/form|mermaid|src/index|stories).tsx?',
4 | // skip: 'autogen',
5 | };
6 |
--------------------------------------------------------------------------------
/packages/create-leanup/templates/svelte/gitignore:
--------------------------------------------------------------------------------
1 | /.husky
2 | /.reports
3 | /dist
4 | /hint-report
5 | /node_modules
6 | *.log
7 |
--------------------------------------------------------------------------------
/packages/create-leanup/templates/svelte/nightwatch.conf.js:
--------------------------------------------------------------------------------
1 | module.exports = require('@leanup/stack/nightwatch.conf');
2 |
--------------------------------------------------------------------------------
/packages/create-leanup/templates/svelte/nyc.config.js:
--------------------------------------------------------------------------------
1 | module.exports = require('@leanup/stack/nyc.config');
2 |
--------------------------------------------------------------------------------
/packages/create-leanup/templates/svelte/postcss.config.js:
--------------------------------------------------------------------------------
1 | // ## Migrate from 1.1 to 1.2
2 |
3 | // ### Changes
4 |
5 | // 1. ⛔ `autoprefixer` was removed from stack, it is to handle in project scope
6 | // 2. ⛔ `cssnano` was removed from default template, it is to handle in project scope
7 | // 3. ⛔ `postcss.config.js` was removed from stack, it is to handle in project scope
8 |
9 | module.exports = {
10 | plugins: [
11 | require('postcss-windicss')({
12 | touchMode: 'insert-comment',
13 | }),
14 | ],
15 | };
16 |
--------------------------------------------------------------------------------
/packages/create-leanup/templates/svelte/prettier.config.js:
--------------------------------------------------------------------------------
1 | module.exports = require('@leanup/stack/prettier.config');
2 |
--------------------------------------------------------------------------------
/packages/create-leanup/templates/svelte/snowpack.config.js:
--------------------------------------------------------------------------------
1 | module.exports = require('@leanup/stack-svelte/snowpack.config');
2 |
--------------------------------------------------------------------------------
/packages/create-leanup/templates/svelte/src/assets/logo.leanupjs.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/leanupjs/leanup/2603659c93ceab96c643a05a9b8f836d17b60ea9/packages/create-leanup/templates/svelte/src/assets/logo.leanupjs.png
--------------------------------------------------------------------------------
/packages/create-leanup/templates/svelte/src/assets/logo.svelte.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/leanupjs/leanup/2603659c93ceab96c643a05a9b8f836d17b60ea9/packages/create-leanup/templates/svelte/src/assets/logo.svelte.png
--------------------------------------------------------------------------------
/packages/create-leanup/templates/svelte/src/components/input/component.svelte:
--------------------------------------------------------------------------------
1 |
4 |
5 |
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/packages/create-leanup/templates/svelte/src/components/series/editor/component.svelte:
--------------------------------------------------------------------------------
1 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/packages/create-leanup/templates/svelte/src/components/series/editor/controller.ts:
--------------------------------------------------------------------------------
1 | import { AbstractController } from '@leanup/lib';
2 |
3 | export class EditorSerieController extends AbstractController {}
4 |
--------------------------------------------------------------------------------
/packages/create-leanup/templates/svelte/src/components/series/editor/editor.form.ts:
--------------------------------------------------------------------------------
1 | import { FormControl, InputControl } from '@leanup/form';
2 |
3 | export class EditorForm extends FormControl {
4 | public constructor(name: string) {
5 | super(name);
6 | this.addControl(
7 | new InputControl('title', {
8 | label: 'Title',
9 | value: '',
10 | })
11 | );
12 | this.addControl(
13 | new InputControl('unit', {
14 | label: 'Unit',
15 | value: '',
16 | })
17 | );
18 | }
19 | }
20 |
--------------------------------------------------------------------------------
/packages/create-leanup/templates/svelte/src/main.ts:
--------------------------------------------------------------------------------
1 | import './svelte.main';
2 |
--------------------------------------------------------------------------------
/packages/create-leanup/templates/svelte/src/models/framework.interface.ts:
--------------------------------------------------------------------------------
1 | export interface Framework {
2 | name: string;
3 | version: string;
4 | }
5 |
--------------------------------------------------------------------------------
/packages/create-leanup/templates/svelte/src/models/measured-item.model.ts:
--------------------------------------------------------------------------------
1 | export class MeasuredItemModel {
2 | private date: Date;
3 | private value: number;
4 |
5 | public constructor(date: Date, value: number) {
6 | this.date = date;
7 | this.value = value;
8 | }
9 |
10 | public getDate(): Date {
11 | return this.date;
12 | }
13 | public getValue(): number {
14 | return this.value;
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/packages/create-leanup/templates/svelte/src/services/storage/mock.json:
--------------------------------------------------------------------------------
1 | {
2 | "measuredSeries": [
3 | { "id": 5, "title": "Gas", "unit": "m³" },
4 | { "id": 4, "title": "Strom", "unit": "kWh" },
5 | { "id": 3, "title": "Wasser", "unit": "m³" },
6 | { "id": 2, "title": "Außentemparatur", "unit": "°C" },
7 | { "id": 1, "title": "Sonnenstunden", "unit": "h" }
8 | ]
9 | }
10 |
--------------------------------------------------------------------------------
/packages/create-leanup/templates/svelte/src/shares/register.ts:
--------------------------------------------------------------------------------
1 | import { DI } from '@leanup/lib';
2 | import { VersionApi } from '@leanup/openapi-demo';
3 |
4 | import { MeasurementService } from '../services/measurements/service';
5 | import { RouterService } from '../services/router/service';
6 | import { StorageService } from '../services/storage/service';
7 |
8 | // RouterService is an example as static class.
9 | DI.register('RouterService', RouterService);
10 |
11 | DI.register('StorageService', new StorageService());
12 | DI.register('MeasurementService', new MeasurementService());
13 | DI.register('VersionApi', new VersionApi());
14 |
--------------------------------------------------------------------------------
/packages/create-leanup/templates/svelte/src/shares/routing.ts:
--------------------------------------------------------------------------------
1 | import { RouterService } from '../services/router/service';
2 |
3 | RouterService.register([
4 | {
5 | url: 'series',
6 | },
7 | {
8 | url: 'series/create',
9 | },
10 | {
11 | url: 'series/:id/edit',
12 | },
13 | ]);
14 |
--------------------------------------------------------------------------------
/packages/create-leanup/templates/svelte/src/shares/utils.ts:
--------------------------------------------------------------------------------
1 | export function typeIt(json: Object): T {
2 | const typed = JSON.parse(JSON.stringify(json)) as { default: T };
3 | return typed.default;
4 | }
5 |
--------------------------------------------------------------------------------
/packages/create-leanup/templates/svelte/src/types/images.d.ts:
--------------------------------------------------------------------------------
1 | declare module '*.jpeg';
2 | declare module '*.jpg';
3 | declare module '*.png';
4 | declare module '*.gif';
5 |
--------------------------------------------------------------------------------
/packages/create-leanup/templates/svelte/tests/e2e/ecosia.js:
--------------------------------------------------------------------------------
1 | describe(`Demo's`, () => {
2 | it('ecosia.org', (browser) => {
3 | browser
4 | .url('https://www.ecosia.org/')
5 | .waitForElementVisible('body')
6 | .assert.titleContains('Ecosia')
7 | .assert.visible('input[type=search]')
8 | .setValue('input[type=search]', 'nightwatch')
9 | .assert.visible('button[type=submit]')
10 | .click('button[type=submit]')
11 | .assert.containsText('.mainline-results', 'Nightwatch.js')
12 | .end();
13 | });
14 | });
15 |
--------------------------------------------------------------------------------
/packages/create-leanup/templates/svelte/tests/unit/openapi.test.ts:
--------------------------------------------------------------------------------
1 | import { expect } from 'chai';
2 |
3 | import { IVersion, IVersionLabelEnum } from '@leanup/openapi-demo';
4 |
5 | describe(`Test: OpenAPI`, () => {
6 | const label: IVersionLabelEnum = IVersionLabelEnum.Latest;
7 | const version: IVersion = {
8 | major: 1,
9 | minor: 2,
10 | patch: 3,
11 | text: '1.2.3',
12 | label: label,
13 | };
14 |
15 | it('Test Version', () => {
16 | expect(version.text).be.equal('1.2.3');
17 | });
18 | });
19 |
--------------------------------------------------------------------------------
/packages/create-leanup/templates/svelte/vite.config.js:
--------------------------------------------------------------------------------
1 | module.exports = require('@leanup/stack-svelte/vite.config');
2 |
--------------------------------------------------------------------------------
/packages/create-leanup/templates/svelte/webpack.config.js:
--------------------------------------------------------------------------------
1 | module.exports = require('@leanup/stack-svelte/webpack.config');
2 |
--------------------------------------------------------------------------------
/packages/create-leanup/templates/svelte/windi.config.js:
--------------------------------------------------------------------------------
1 | import { defineConfig } from 'windicss/helpers';
2 |
3 | export default defineConfig({
4 | darkMode: 'media',
5 | extract: {
6 | include: ['src/**/*.{html,svelte,ts,tsx,vue}'],
7 | },
8 | plugins: [require('windicss/plugin/filters')],
9 | });
10 |
--------------------------------------------------------------------------------
/packages/create-leanup/templates/vanilla/.editorconfig:
--------------------------------------------------------------------------------
1 | # http://editorconfig.org
2 |
3 | root = true
4 |
5 | [*]
6 | charset = utf-8
7 | indent_style = space
8 | indent_size = 2
9 | end_of_line = lf
10 | insert_final_newline = true
11 | trim_trailing_whitespace = true
12 |
13 | [*.md]
14 | insert_final_newline = false
15 | trim_trailing_whitespace = false
16 |
--------------------------------------------------------------------------------
/packages/create-leanup/templates/vanilla/.eslintignore:
--------------------------------------------------------------------------------
1 | **/assets/**
--------------------------------------------------------------------------------
/packages/create-leanup/templates/vanilla/.eslintrc.js:
--------------------------------------------------------------------------------
1 | module.exports = require('@leanup/stack/.eslintrc');
2 |
--------------------------------------------------------------------------------
/packages/create-leanup/templates/vanilla/.mocharc.js:
--------------------------------------------------------------------------------
1 | module.exports = require('@leanup/stack/.mocharc');
2 |
--------------------------------------------------------------------------------
/packages/create-leanup/templates/vanilla/.npmrc:
--------------------------------------------------------------------------------
1 | auto-install-peers=true
2 | shamefully-hoist=true
3 |
--------------------------------------------------------------------------------
/packages/create-leanup/templates/vanilla/.prettierignore:
--------------------------------------------------------------------------------
1 | **/assets/**
2 | *.feature
3 | *.sass
4 | *.scss
--------------------------------------------------------------------------------
/packages/create-leanup/templates/vanilla/.ts-prunerc.js:
--------------------------------------------------------------------------------
1 | // https://github.com/nadeesha/ts-prune
2 | https: module.exports = {
3 | // ignore: '(arg-types|form/form|mermaid|src/index|stories).tsx?',
4 | // skip: 'autogen',
5 | };
6 |
--------------------------------------------------------------------------------
/packages/create-leanup/templates/vanilla/gitignore:
--------------------------------------------------------------------------------
1 | /.husky
2 | /.reports
3 | /dist
4 | /hint-report
5 | /node_modules
6 | *.log
7 |
--------------------------------------------------------------------------------
/packages/create-leanup/templates/vanilla/nightwatch.conf.js:
--------------------------------------------------------------------------------
1 | module.exports = require('@leanup/stack/nightwatch.conf');
2 |
--------------------------------------------------------------------------------
/packages/create-leanup/templates/vanilla/nyc.config.js:
--------------------------------------------------------------------------------
1 | module.exports = require('@leanup/stack/nyc.config');
2 |
--------------------------------------------------------------------------------
/packages/create-leanup/templates/vanilla/postcss.config.js:
--------------------------------------------------------------------------------
1 | // ## Migrate from 1.1 to 1.2
2 |
3 | // ### Changes
4 |
5 | // 1. ⛔ `autoprefixer` was removed from stack, it is to handle in project scope
6 | // 2. ⛔ `cssnano` was removed from default template, it is to handle in project scope
7 | // 3. ⛔ `postcss.config.js` was removed from stack, it is to handle in project scope
8 |
9 | module.exports = {
10 | plugins: [
11 | require('postcss-windicss')({
12 | touchMode: 'insert-comment',
13 | }),
14 | ],
15 | };
16 |
--------------------------------------------------------------------------------
/packages/create-leanup/templates/vanilla/prettier.config.js:
--------------------------------------------------------------------------------
1 | module.exports = require('@leanup/stack/prettier.config');
2 |
--------------------------------------------------------------------------------
/packages/create-leanup/templates/vanilla/snowpack.config.js:
--------------------------------------------------------------------------------
1 | module.exports = require('@leanup/stack-snowpack/snowpack.config');
2 |
--------------------------------------------------------------------------------
/packages/create-leanup/templates/vanilla/src/assets/logo.leanupjs.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/leanupjs/leanup/2603659c93ceab96c643a05a9b8f836d17b60ea9/packages/create-leanup/templates/vanilla/src/assets/logo.leanupjs.png
--------------------------------------------------------------------------------
/packages/create-leanup/templates/vanilla/src/assets/logo.vanilla.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/leanupjs/leanup/2603659c93ceab96c643a05a9b8f836d17b60ea9/packages/create-leanup/templates/vanilla/src/assets/logo.vanilla.png
--------------------------------------------------------------------------------
/packages/create-leanup/templates/vanilla/src/components/component.vanilla.ts:
--------------------------------------------------------------------------------
1 | export class VanillaComponent extends HTMLElement {
2 | protected readonly dom: HTMLElement | ShadowRoot;
3 |
4 | public constructor() {
5 | super();
6 | this.dom = this;
7 | // this.attachShadow({ delegatesFocus: true, mode: 'open' });
8 | // this.dom = this.shadowRoot;
9 | }
10 |
11 | // tslint:disable-next-line: no-empty
12 | protected render(): void {}
13 |
14 | public connectedCallback(): void {
15 | this.render();
16 | }
17 | }
18 |
--------------------------------------------------------------------------------
/packages/create-leanup/templates/vanilla/src/components/series/editor/controller.ts:
--------------------------------------------------------------------------------
1 | import { AbstractController } from '@leanup/lib';
2 |
3 | export class EditorSerieController extends AbstractController {}
4 |
--------------------------------------------------------------------------------
/packages/create-leanup/templates/vanilla/src/components/series/editor/editor.form.ts:
--------------------------------------------------------------------------------
1 | import { FormControl, InputControl } from '@leanup/form';
2 |
3 | export class EditorForm extends FormControl {
4 | public constructor(name: string) {
5 | super(name);
6 | this.addControl(
7 | new InputControl('title', {
8 | label: 'Title',
9 | value: '',
10 | })
11 | );
12 | this.addControl(
13 | new InputControl('unit', {
14 | label: 'Unit',
15 | value: '',
16 | })
17 | );
18 | }
19 | }
20 |
--------------------------------------------------------------------------------
/packages/create-leanup/templates/vanilla/src/main.ts:
--------------------------------------------------------------------------------
1 | import './main.vanilla';
2 |
--------------------------------------------------------------------------------
/packages/create-leanup/templates/vanilla/src/main.vanilla.ts:
--------------------------------------------------------------------------------
1 | import './components/app/component.vanilla';
2 |
3 | import { run } from './app.run';
4 |
5 | run('Vanilla', null, () => {
6 | const htmlDivElement: HTMLDivElement | null = document.querySelector('div#vanilla');
7 | const appElement: HTMLElement = document.createElement('wc-app');
8 | htmlDivElement.appendChild(appElement);
9 | });
10 |
--------------------------------------------------------------------------------
/packages/create-leanup/templates/vanilla/src/models/framework.interface.ts:
--------------------------------------------------------------------------------
1 | export interface Framework {
2 | name: string;
3 | version: string;
4 | }
5 |
--------------------------------------------------------------------------------
/packages/create-leanup/templates/vanilla/src/models/measured-item.model.ts:
--------------------------------------------------------------------------------
1 | export class MeasuredItemModel {
2 | private date: Date;
3 | private value: number;
4 |
5 | public constructor(date: Date, value: number) {
6 | this.date = date;
7 | this.value = value;
8 | }
9 |
10 | public getDate(): Date {
11 | return this.date;
12 | }
13 | public getValue(): number {
14 | return this.value;
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/packages/create-leanup/templates/vanilla/src/services/storage/mock.json:
--------------------------------------------------------------------------------
1 | {
2 | "measuredSeries": [
3 | { "id": 5, "title": "Gas", "unit": "m³" },
4 | { "id": 4, "title": "Strom", "unit": "kWh" },
5 | { "id": 3, "title": "Wasser", "unit": "m³" },
6 | { "id": 2, "title": "Außentemparatur", "unit": "°C" },
7 | { "id": 1, "title": "Sonnenstunden", "unit": "h" }
8 | ]
9 | }
10 |
--------------------------------------------------------------------------------
/packages/create-leanup/templates/vanilla/src/shares/register.ts:
--------------------------------------------------------------------------------
1 | import { DI } from '@leanup/lib';
2 | import { VersionApi } from '@leanup/openapi-demo';
3 |
4 | import { MeasurementService } from '../services/measurements/service';
5 | import { RouterService } from '../services/router/service';
6 | import { StorageService } from '../services/storage/service';
7 |
8 | // RouterService is an example as static class.
9 | DI.register('RouterService', RouterService);
10 |
11 | DI.register('StorageService', new StorageService());
12 | DI.register('MeasurementService', new MeasurementService());
13 | DI.register('VersionApi', new VersionApi());
14 |
--------------------------------------------------------------------------------
/packages/create-leanup/templates/vanilla/src/shares/routing.ts:
--------------------------------------------------------------------------------
1 | import { RouterService } from '../services/router/service';
2 |
3 | RouterService.register([
4 | {
5 | url: 'series',
6 | },
7 | {
8 | url: 'series/create',
9 | },
10 | {
11 | url: 'series/:id/edit',
12 | },
13 | ]);
14 |
--------------------------------------------------------------------------------
/packages/create-leanup/templates/vanilla/src/shares/utils.ts:
--------------------------------------------------------------------------------
1 | export function typeIt(json: Object): T {
2 | const typed = JSON.parse(JSON.stringify(json)) as { default: T };
3 | return typed.default;
4 | }
5 |
--------------------------------------------------------------------------------
/packages/create-leanup/templates/vanilla/src/types/images.d.ts:
--------------------------------------------------------------------------------
1 | declare module '*.jpeg';
2 | declare module '*.jpg';
3 | declare module '*.png';
4 | declare module '*.gif';
5 |
--------------------------------------------------------------------------------
/packages/create-leanup/templates/vanilla/tests/e2e/ecosia.js:
--------------------------------------------------------------------------------
1 | describe(`Demo's`, () => {
2 | it('ecosia.org', (browser) => {
3 | browser
4 | .url('https://www.ecosia.org/')
5 | .waitForElementVisible('body')
6 | .assert.titleContains('Ecosia')
7 | .assert.visible('input[type=search]')
8 | .setValue('input[type=search]', 'nightwatch')
9 | .assert.visible('button[type=submit]')
10 | .click('button[type=submit]')
11 | .assert.containsText('.mainline-results', 'Nightwatch.js')
12 | .end();
13 | });
14 | });
15 |
--------------------------------------------------------------------------------
/packages/create-leanup/templates/vanilla/tests/unit/openapi.test.ts:
--------------------------------------------------------------------------------
1 | import { expect } from 'chai';
2 |
3 | import { IVersion, IVersionLabelEnum } from '@leanup/openapi-demo';
4 |
5 | describe(`Test: OpenAPI`, () => {
6 | const label: IVersionLabelEnum = IVersionLabelEnum.Latest;
7 | const version: IVersion = {
8 | major: 1,
9 | minor: 2,
10 | patch: 3,
11 | text: '1.2.3',
12 | label: label,
13 | };
14 |
15 | it('Test Version', () => {
16 | expect(version.text).be.equal('1.2.3');
17 | });
18 | });
19 |
--------------------------------------------------------------------------------
/packages/create-leanup/templates/vanilla/vite.config.js:
--------------------------------------------------------------------------------
1 | module.exports = require('@leanup/stack-vite/vite.config');
2 |
--------------------------------------------------------------------------------
/packages/create-leanup/templates/vanilla/webpack.config.js:
--------------------------------------------------------------------------------
1 | module.exports = require('@leanup/stack-webpack');
2 |
--------------------------------------------------------------------------------
/packages/create-leanup/templates/vanilla/windi.config.js:
--------------------------------------------------------------------------------
1 | import { defineConfig } from 'windicss/helpers';
2 |
3 | export default defineConfig({
4 | darkMode: 'media',
5 | extract: {
6 | include: ['src/**/*.{html,svelte,ts,tsx,vue}'],
7 | },
8 | plugins: [require('windicss/plugin/filters')],
9 | });
10 |
--------------------------------------------------------------------------------
/packages/create-leanup/templates/vue/.editorconfig:
--------------------------------------------------------------------------------
1 | # http://editorconfig.org
2 |
3 | root = true
4 |
5 | [*]
6 | charset = utf-8
7 | indent_style = space
8 | indent_size = 2
9 | end_of_line = lf
10 | insert_final_newline = true
11 | trim_trailing_whitespace = true
12 |
13 | [*.md]
14 | insert_final_newline = false
15 | trim_trailing_whitespace = false
16 |
--------------------------------------------------------------------------------
/packages/create-leanup/templates/vue/.eslintignore:
--------------------------------------------------------------------------------
1 | **/assets/**
--------------------------------------------------------------------------------
/packages/create-leanup/templates/vue/.eslintrc.js:
--------------------------------------------------------------------------------
1 | module.exports = require('@leanup/stack/.eslintrc');
2 |
--------------------------------------------------------------------------------
/packages/create-leanup/templates/vue/.mocharc.js:
--------------------------------------------------------------------------------
1 | module.exports = require('@leanup/stack/.mocharc');
2 |
--------------------------------------------------------------------------------
/packages/create-leanup/templates/vue/.npmrc:
--------------------------------------------------------------------------------
1 | auto-install-peers=true
2 | shamefully-hoist=true
3 |
--------------------------------------------------------------------------------
/packages/create-leanup/templates/vue/.prettierignore:
--------------------------------------------------------------------------------
1 | **/assets/**
2 | *.feature
3 | *.sass
4 | *.scss
--------------------------------------------------------------------------------
/packages/create-leanup/templates/vue/.ts-prunerc.js:
--------------------------------------------------------------------------------
1 | // https://github.com/nadeesha/ts-prune
2 | https: module.exports = {
3 | // ignore: '(arg-types|form/form|mermaid|src/index|stories).tsx?',
4 | // skip: 'autogen',
5 | };
6 |
--------------------------------------------------------------------------------
/packages/create-leanup/templates/vue/gitignore:
--------------------------------------------------------------------------------
1 | /.husky
2 | /.reports
3 | /dist
4 | /hint-report
5 | /node_modules
6 | *.log
7 |
--------------------------------------------------------------------------------
/packages/create-leanup/templates/vue/nightwatch.conf.js:
--------------------------------------------------------------------------------
1 | module.exports = require('@leanup/stack/nightwatch.conf');
2 |
--------------------------------------------------------------------------------
/packages/create-leanup/templates/vue/nyc.config.js:
--------------------------------------------------------------------------------
1 | module.exports = require('@leanup/stack/nyc.config');
2 |
--------------------------------------------------------------------------------
/packages/create-leanup/templates/vue/postcss.config.js:
--------------------------------------------------------------------------------
1 | // ## Migrate from 1.1 to 1.2
2 |
3 | // ### Changes
4 |
5 | // 1. ⛔ `autoprefixer` was removed from stack, it is to handle in project scope
6 | // 2. ⛔ `cssnano` was removed from default template, it is to handle in project scope
7 | // 3. ⛔ `postcss.config.js` was removed from stack, it is to handle in project scope
8 |
9 | module.exports = {
10 | plugins: [
11 | require('postcss-windicss')({
12 | touchMode: 'insert-comment',
13 | }),
14 | ],
15 | };
16 |
--------------------------------------------------------------------------------
/packages/create-leanup/templates/vue/prettier.config.js:
--------------------------------------------------------------------------------
1 | module.exports = require('@leanup/stack/prettier.config');
2 |
--------------------------------------------------------------------------------
/packages/create-leanup/templates/vue/src/assets/logo.leanupjs.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/leanupjs/leanup/2603659c93ceab96c643a05a9b8f836d17b60ea9/packages/create-leanup/templates/vue/src/assets/logo.leanupjs.png
--------------------------------------------------------------------------------
/packages/create-leanup/templates/vue/src/assets/logo.vue.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/leanupjs/leanup/2603659c93ceab96c643a05a9b8f836d17b60ea9/packages/create-leanup/templates/vue/src/assets/logo.vue.png
--------------------------------------------------------------------------------
/packages/create-leanup/templates/vue/src/components/input/component.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
20 |
--------------------------------------------------------------------------------
/packages/create-leanup/templates/vue/src/components/series/editor/component.vue:
--------------------------------------------------------------------------------
1 |
2 |
6 |
7 |
8 |
24 |
--------------------------------------------------------------------------------
/packages/create-leanup/templates/vue/src/components/series/editor/controller.ts:
--------------------------------------------------------------------------------
1 | import { AbstractController } from '@leanup/lib';
2 |
3 | export class EditorSerieController extends AbstractController {}
4 |
--------------------------------------------------------------------------------
/packages/create-leanup/templates/vue/src/components/series/editor/editor.form.ts:
--------------------------------------------------------------------------------
1 | import { FormControl, InputControl } from '@leanup/form';
2 |
3 | export class EditorForm extends FormControl {
4 | public constructor(name: string) {
5 | super(name);
6 | this.addControl(
7 | new InputControl('title', {
8 | label: 'Title',
9 | value: '',
10 | })
11 | );
12 | this.addControl(
13 | new InputControl('unit', {
14 | label: 'Unit',
15 | value: '',
16 | })
17 | );
18 | }
19 | }
20 |
--------------------------------------------------------------------------------
/packages/create-leanup/templates/vue/src/main.ts:
--------------------------------------------------------------------------------
1 | import './vue.main';
2 |
--------------------------------------------------------------------------------
/packages/create-leanup/templates/vue/src/models/framework.interface.ts:
--------------------------------------------------------------------------------
1 | export interface Framework {
2 | name: string;
3 | version: string;
4 | }
5 |
--------------------------------------------------------------------------------
/packages/create-leanup/templates/vue/src/models/measured-item.model.ts:
--------------------------------------------------------------------------------
1 | export class MeasuredItemModel {
2 | private date: Date;
3 | private value: number;
4 |
5 | public constructor(date: Date, value: number) {
6 | this.date = date;
7 | this.value = value;
8 | }
9 |
10 | public getDate(): Date {
11 | return this.date;
12 | }
13 | public getValue(): number {
14 | return this.value;
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/packages/create-leanup/templates/vue/src/services/storage/mock.json:
--------------------------------------------------------------------------------
1 | {
2 | "measuredSeries": [
3 | { "id": 5, "title": "Gas", "unit": "m³" },
4 | { "id": 4, "title": "Strom", "unit": "kWh" },
5 | { "id": 3, "title": "Wasser", "unit": "m³" },
6 | { "id": 2, "title": "Außentemparatur", "unit": "°C" },
7 | { "id": 1, "title": "Sonnenstunden", "unit": "h" }
8 | ]
9 | }
10 |
--------------------------------------------------------------------------------
/packages/create-leanup/templates/vue/src/shares/register.ts:
--------------------------------------------------------------------------------
1 | import { DI } from '@leanup/lib';
2 | import { VersionApi } from '@leanup/openapi-demo';
3 |
4 | import { MeasurementService } from '../services/measurements/service';
5 | import { RouterService } from '../services/router/service';
6 | import { StorageService } from '../services/storage/service';
7 |
8 | // RouterService is an example as static class.
9 | DI.register('RouterService', RouterService);
10 |
11 | DI.register('StorageService', new StorageService());
12 | DI.register('MeasurementService', new MeasurementService());
13 | DI.register('VersionApi', new VersionApi());
14 |
--------------------------------------------------------------------------------
/packages/create-leanup/templates/vue/src/shares/routing.ts:
--------------------------------------------------------------------------------
1 | import { RouterService } from '../services/router/service';
2 |
3 | RouterService.register([
4 | {
5 | url: 'series',
6 | },
7 | {
8 | url: 'series/create',
9 | },
10 | {
11 | url: 'series/:id/edit',
12 | },
13 | ]);
14 |
--------------------------------------------------------------------------------
/packages/create-leanup/templates/vue/src/shares/utils.ts:
--------------------------------------------------------------------------------
1 | export function typeIt(json: Object): T {
2 | const typed = JSON.parse(JSON.stringify(json)) as { default: T };
3 | return typed.default;
4 | }
5 |
--------------------------------------------------------------------------------
/packages/create-leanup/templates/vue/src/types/images.d.ts:
--------------------------------------------------------------------------------
1 | declare module '*.jpeg';
2 | declare module '*.jpg';
3 | declare module '*.png';
4 | declare module '*.gif';
5 |
--------------------------------------------------------------------------------
/packages/create-leanup/templates/vue/tests/e2e/ecosia.js:
--------------------------------------------------------------------------------
1 | describe(`Demo's`, () => {
2 | it('ecosia.org', (browser) => {
3 | browser
4 | .url('https://www.ecosia.org/')
5 | .waitForElementVisible('body')
6 | .assert.titleContains('Ecosia')
7 | .assert.visible('input[type=search]')
8 | .setValue('input[type=search]', 'nightwatch')
9 | .assert.visible('button[type=submit]')
10 | .click('button[type=submit]')
11 | .assert.containsText('.mainline-results', 'Nightwatch.js')
12 | .end();
13 | });
14 | });
15 |
--------------------------------------------------------------------------------
/packages/create-leanup/templates/vue/tests/unit/openapi.test.ts:
--------------------------------------------------------------------------------
1 | import { expect } from 'chai';
2 |
3 | import { IVersion, IVersionLabelEnum } from '@leanup/openapi-demo';
4 |
5 | describe(`Test: OpenAPI`, () => {
6 | const label: IVersionLabelEnum = IVersionLabelEnum.Latest;
7 | const version: IVersion = {
8 | major: 1,
9 | minor: 2,
10 | patch: 3,
11 | text: '1.2.3',
12 | label: label,
13 | };
14 |
15 | it('Test Version', () => {
16 | expect(version.text).be.equal('1.2.3');
17 | });
18 | });
19 |
--------------------------------------------------------------------------------
/packages/create-leanup/templates/vue/webpack.config.js:
--------------------------------------------------------------------------------
1 | module.exports = require('@leanup/stack-vue/webpack.config');
2 |
--------------------------------------------------------------------------------
/packages/create-leanup/templates/vue/windi.config.js:
--------------------------------------------------------------------------------
1 | import { defineConfig } from 'windicss/helpers';
2 |
3 | export default defineConfig({
4 | darkMode: 'media',
5 | extract: {
6 | include: ['src/**/*.{html,svelte,ts,tsx,vue}'],
7 | },
8 | plugins: [require('windicss/plugin/filters')],
9 | });
10 |
--------------------------------------------------------------------------------
/packages/create-leanup/templates/vue3/.editorconfig:
--------------------------------------------------------------------------------
1 | # http://editorconfig.org
2 |
3 | root = true
4 |
5 | [*]
6 | charset = utf-8
7 | indent_style = space
8 | indent_size = 2
9 | end_of_line = lf
10 | insert_final_newline = true
11 | trim_trailing_whitespace = true
12 |
13 | [*.md]
14 | insert_final_newline = false
15 | trim_trailing_whitespace = false
16 |
--------------------------------------------------------------------------------
/packages/create-leanup/templates/vue3/.eslintignore:
--------------------------------------------------------------------------------
1 | **/assets/**
--------------------------------------------------------------------------------
/packages/create-leanup/templates/vue3/.eslintrc.js:
--------------------------------------------------------------------------------
1 | module.exports = require('@leanup/stack/.eslintrc');
2 |
--------------------------------------------------------------------------------
/packages/create-leanup/templates/vue3/.mocharc.js:
--------------------------------------------------------------------------------
1 | module.exports = require('@leanup/stack/.mocharc');
2 |
--------------------------------------------------------------------------------
/packages/create-leanup/templates/vue3/.npmrc:
--------------------------------------------------------------------------------
1 | auto-install-peers=true
2 | shamefully-hoist=true
3 |
--------------------------------------------------------------------------------
/packages/create-leanup/templates/vue3/.prettierignore:
--------------------------------------------------------------------------------
1 | **/assets/**
2 | *.feature
3 | *.sass
4 | *.scss
--------------------------------------------------------------------------------
/packages/create-leanup/templates/vue3/.ts-prunerc.js:
--------------------------------------------------------------------------------
1 | // https://github.com/nadeesha/ts-prune
2 | https: module.exports = {
3 | // ignore: '(arg-types|form/form|mermaid|src/index|stories).tsx?',
4 | // skip: 'autogen',
5 | };
6 |
--------------------------------------------------------------------------------
/packages/create-leanup/templates/vue3/gitignore:
--------------------------------------------------------------------------------
1 | /.husky
2 | /.reports
3 | /dist
4 | /hint-report
5 | /node_modules
6 | *.log
7 |
--------------------------------------------------------------------------------
/packages/create-leanup/templates/vue3/nightwatch.conf.js:
--------------------------------------------------------------------------------
1 | module.exports = require('@leanup/stack/nightwatch.conf');
2 |
--------------------------------------------------------------------------------
/packages/create-leanup/templates/vue3/nyc.config.js:
--------------------------------------------------------------------------------
1 | module.exports = require('@leanup/stack/nyc.config');
2 |
--------------------------------------------------------------------------------
/packages/create-leanup/templates/vue3/postcss.config.js:
--------------------------------------------------------------------------------
1 | // ## Migrate from 1.1 to 1.2
2 |
3 | // ### Changes
4 |
5 | // 1. ⛔ `autoprefixer` was removed from stack, it is to handle in project scope
6 | // 2. ⛔ `cssnano` was removed from default template, it is to handle in project scope
7 | // 3. ⛔ `postcss.config.js` was removed from stack, it is to handle in project scope
8 |
9 | module.exports = {
10 | plugins: [
11 | require('postcss-windicss')({
12 | touchMode: 'insert-comment',
13 | }),
14 | ],
15 | };
16 |
--------------------------------------------------------------------------------
/packages/create-leanup/templates/vue3/prettier.config.js:
--------------------------------------------------------------------------------
1 | module.exports = require('@leanup/stack/prettier.config');
2 |
--------------------------------------------------------------------------------
/packages/create-leanup/templates/vue3/snowpack.config.js:
--------------------------------------------------------------------------------
1 | module.exports = require('@leanup/stack-vue3/snowpack.config');
2 |
--------------------------------------------------------------------------------
/packages/create-leanup/templates/vue3/src/assets/logo.leanupjs.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/leanupjs/leanup/2603659c93ceab96c643a05a9b8f836d17b60ea9/packages/create-leanup/templates/vue3/src/assets/logo.leanupjs.png
--------------------------------------------------------------------------------
/packages/create-leanup/templates/vue3/src/assets/logo.vue.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/leanupjs/leanup/2603659c93ceab96c643a05a9b8f836d17b60ea9/packages/create-leanup/templates/vue3/src/assets/logo.vue.png
--------------------------------------------------------------------------------
/packages/create-leanup/templates/vue3/src/components/input/component.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
18 |
--------------------------------------------------------------------------------
/packages/create-leanup/templates/vue3/src/components/series/editor/component.vue:
--------------------------------------------------------------------------------
1 |
2 |
6 |
7 |
8 |
24 |
--------------------------------------------------------------------------------
/packages/create-leanup/templates/vue3/src/components/series/editor/controller.ts:
--------------------------------------------------------------------------------
1 | import { AbstractController } from '@leanup/lib';
2 |
3 | export class EditorSerieController extends AbstractController {}
4 |
--------------------------------------------------------------------------------
/packages/create-leanup/templates/vue3/src/components/series/editor/editor.form.ts:
--------------------------------------------------------------------------------
1 | import { FormControl, InputControl } from '@leanup/form';
2 |
3 | export class EditorForm extends FormControl {
4 | public constructor(name: string) {
5 | super(name);
6 | this.addControl(
7 | new InputControl('title', {
8 | label: 'Title',
9 | value: '',
10 | })
11 | );
12 | this.addControl(
13 | new InputControl('unit', {
14 | label: 'Unit',
15 | value: '',
16 | })
17 | );
18 | }
19 | }
20 |
--------------------------------------------------------------------------------
/packages/create-leanup/templates/vue3/src/main.ts:
--------------------------------------------------------------------------------
1 | import './vue.main';
2 |
--------------------------------------------------------------------------------
/packages/create-leanup/templates/vue3/src/models/framework.interface.ts:
--------------------------------------------------------------------------------
1 | export interface Framework {
2 | name: string;
3 | version: string;
4 | }
5 |
--------------------------------------------------------------------------------
/packages/create-leanup/templates/vue3/src/models/measured-item.model.ts:
--------------------------------------------------------------------------------
1 | export class MeasuredItemModel {
2 | private date: Date;
3 | private value: number;
4 |
5 | public constructor(date: Date, value: number) {
6 | this.date = date;
7 | this.value = value;
8 | }
9 |
10 | public getDate(): Date {
11 | return this.date;
12 | }
13 | public getValue(): number {
14 | return this.value;
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/packages/create-leanup/templates/vue3/src/services/storage/mock.json:
--------------------------------------------------------------------------------
1 | {
2 | "measuredSeries": [
3 | { "id": 5, "title": "Gas", "unit": "m³" },
4 | { "id": 4, "title": "Strom", "unit": "kWh" },
5 | { "id": 3, "title": "Wasser", "unit": "m³" },
6 | { "id": 2, "title": "Außentemparatur", "unit": "°C" },
7 | { "id": 1, "title": "Sonnenstunden", "unit": "h" }
8 | ]
9 | }
10 |
--------------------------------------------------------------------------------
/packages/create-leanup/templates/vue3/src/shares/register.ts:
--------------------------------------------------------------------------------
1 | import { DI } from '@leanup/lib';
2 | import { VersionApi } from '@leanup/openapi-demo';
3 |
4 | import { MeasurementService } from '../services/measurements/service';
5 | import { RouterService } from '../services/router/service';
6 | import { StorageService } from '../services/storage/service';
7 |
8 | // RouterService is an example as static class.
9 | DI.register('RouterService', RouterService);
10 |
11 | DI.register('StorageService', new StorageService());
12 | DI.register('MeasurementService', new MeasurementService());
13 | DI.register('VersionApi', new VersionApi());
14 |
--------------------------------------------------------------------------------
/packages/create-leanup/templates/vue3/src/shares/routing.ts:
--------------------------------------------------------------------------------
1 | import { RouterService } from '../services/router/service';
2 |
3 | RouterService.register([
4 | {
5 | url: 'series',
6 | },
7 | {
8 | url: 'series/create',
9 | },
10 | {
11 | url: 'series/:id/edit',
12 | },
13 | ]);
14 |
--------------------------------------------------------------------------------
/packages/create-leanup/templates/vue3/src/shares/utils.ts:
--------------------------------------------------------------------------------
1 | export function typeIt(json: Object): T {
2 | const typed = JSON.parse(JSON.stringify(json)) as { default: T };
3 | return typed.default;
4 | }
5 |
--------------------------------------------------------------------------------
/packages/create-leanup/templates/vue3/src/types/images.d.ts:
--------------------------------------------------------------------------------
1 | declare module '*.jpeg';
2 | declare module '*.jpg';
3 | declare module '*.png';
4 | declare module '*.gif';
5 |
--------------------------------------------------------------------------------
/packages/create-leanup/templates/vue3/tests/e2e/ecosia.js:
--------------------------------------------------------------------------------
1 | describe(`Demo's`, () => {
2 | it('ecosia.org', (browser) => {
3 | browser
4 | .url('https://www.ecosia.org/')
5 | .waitForElementVisible('body')
6 | .assert.titleContains('Ecosia')
7 | .assert.visible('input[type=search]')
8 | .setValue('input[type=search]', 'nightwatch')
9 | .assert.visible('button[type=submit]')
10 | .click('button[type=submit]')
11 | .assert.containsText('.mainline-results', 'Nightwatch.js')
12 | .end();
13 | });
14 | });
15 |
--------------------------------------------------------------------------------
/packages/create-leanup/templates/vue3/tests/unit/openapi.test.ts:
--------------------------------------------------------------------------------
1 | import { expect } from 'chai';
2 |
3 | import { IVersion, IVersionLabelEnum } from '@leanup/openapi-demo';
4 |
5 | describe(`Test: OpenAPI`, () => {
6 | const label: IVersionLabelEnum = IVersionLabelEnum.Latest;
7 | const version: IVersion = {
8 | major: 1,
9 | minor: 2,
10 | patch: 3,
11 | text: '1.2.3',
12 | label: label,
13 | };
14 |
15 | it('Test Version', () => {
16 | expect(version.text).be.equal('1.2.3');
17 | });
18 | });
19 |
--------------------------------------------------------------------------------
/packages/create-leanup/templates/vue3/vite.config.js:
--------------------------------------------------------------------------------
1 | module.exports = require('@leanup/stack-vue3/vite.config');
2 |
--------------------------------------------------------------------------------
/packages/create-leanup/templates/vue3/webpack.config.js:
--------------------------------------------------------------------------------
1 | module.exports = require('@leanup/stack-vue3/webpack.config');
2 |
--------------------------------------------------------------------------------
/packages/create-leanup/templates/vue3/windi.config.js:
--------------------------------------------------------------------------------
1 | import { defineConfig } from 'windicss/helpers';
2 |
3 | export default defineConfig({
4 | darkMode: 'media',
5 | extract: {
6 | include: ['src/**/*.{html,svelte,ts,tsx,vue}'],
7 | },
8 | plugins: [require('windicss/plugin/filters')],
9 | });
10 |
--------------------------------------------------------------------------------
/packages/form/.gitignore:
--------------------------------------------------------------------------------
1 | /cjs
2 | /esm
3 | /umd
4 | /types
--------------------------------------------------------------------------------
/packages/form/.mocharc.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 |
3 | // Here's a JavaScript-based config file.
4 | // If you need conditional logic, you might want to use this type of config.
5 | // Otherwise, JSON or YAML is recommended.
6 |
7 | module.exports = {
8 | extension: ['js', 'jsx', 'ts', 'tsx'],
9 | reporter: 'spec',
10 | require: ['esbuild-register', 'jsdom-global/register', 'mock-local-storage'],
11 | spec: ['src/**/*.spec.*s*', 'src/**/*.test.*s*', 'tests/unit/**/*.spec.*s*', 'tests/unit/**/*.test.*s*'],
12 | };
13 |
14 | // Source: https://github.com/mochajs/mocha/tree/master/example/config
15 |
--------------------------------------------------------------------------------
/packages/form/src/controls/index.ts:
--------------------------------------------------------------------------------
1 | export * from './controls';
2 |
--------------------------------------------------------------------------------
/packages/form/src/handlers/formatters/abstract.formatter.ts:
--------------------------------------------------------------------------------
1 | export abstract class AbstractFormatter {
2 | abstract format(value: unknown): unknown;
3 | abstract parse(value: unknown): unknown;
4 | }
5 |
--------------------------------------------------------------------------------
/packages/form/src/handlers/formatters/index.ts:
--------------------------------------------------------------------------------
1 | export * from './abstract.formatter';
2 | export * from './iban.formatter';
3 |
--------------------------------------------------------------------------------
/packages/form/src/handlers/index.ts:
--------------------------------------------------------------------------------
1 | export * from './formatters';
2 | export * from './validators';
3 | export * from './format.handler';
4 | export * from './validation.handler';
5 |
--------------------------------------------------------------------------------
/packages/form/src/handlers/validators/abstract.validator.test.ts:
--------------------------------------------------------------------------------
1 | import { expect } from 'chai';
2 | import sonon, { spy } from 'sinon';
3 |
4 | import { Log } from '@leanup/lib';
5 |
6 | import { AbstractValidator } from './abstract.validator';
7 |
8 | describe('AbstractValidator', () => {
9 | const validator: AbstractValidator = new AbstractValidator(undefined);
10 | let spyElement;
11 |
12 | beforeEach(() => {
13 | spyElement = spy(Log, 'debug');
14 | });
15 |
16 | afterEach(() => {
17 | sonon.restore();
18 | });
19 |
20 | it('Standard-Meldung ist', () => {
21 | expect(validator.message).to.equal(`An unknown validation error occurred.`);
22 | });
23 | });
24 |
--------------------------------------------------------------------------------
/packages/form/src/handlers/validators/digits.validator.ts:
--------------------------------------------------------------------------------
1 | import { PatternValidator } from './pattern.validator';
2 |
3 | export const DIGITS_VALIDATION_REGEXP: RegExp = /^\d+$/;
4 |
5 | export class DigitsValidator extends PatternValidator {
6 | constructor(message: string = 'Please enter a number.') {
7 | super(DIGITS_VALIDATION_REGEXP, message);
8 | }
9 | }
10 |
11 | export const DEFAULT_DIGITS_VALIDATOR = new DigitsValidator();
12 |
--------------------------------------------------------------------------------
/packages/form/src/handlers/validators/email.validator.ts:
--------------------------------------------------------------------------------
1 | import { PatternValidator } from './pattern.validator';
2 |
3 | // https://stackoverflow.com/questions/201323/how-can-i-validate-an-email-address-using-a-regular-expression
4 | export const EMAIL_VALIDATION_REGEXP: RegExp =
5 | /^(([^<>()[\]\\.,;:\s@"]+(\.[^<>()[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;
6 |
7 | export class EmailValidator extends PatternValidator {
8 | constructor(message: string = 'The email address has not the correct format.') {
9 | super(EMAIL_VALIDATION_REGEXP, message);
10 | }
11 | }
12 |
--------------------------------------------------------------------------------
/packages/form/src/handlers/validators/index.ts:
--------------------------------------------------------------------------------
1 | export * from './abstract.validator';
2 | export * from './digits.validator';
3 | export * from './email.validator';
4 | export * from './is-true.validator';
5 | export * from './max-length.validator';
6 | export * from './min-length.validator';
7 | export * from './non-required.validator';
8 | export * from './not.validator';
9 | export * from './pattern.validator';
10 | export * from './required.validator';
11 |
--------------------------------------------------------------------------------
/packages/form/src/handlers/validators/is-true.validator.ts:
--------------------------------------------------------------------------------
1 | import { NonRequiredValidator } from './non-required.validator';
2 |
3 | export class IsTrueValidator extends NonRequiredValidator {
4 | constructor(message: string = 'Please confirm the note.') {
5 | super(message);
6 | }
7 |
8 | public validate(value: any): boolean {
9 | return value === true;
10 | }
11 | }
12 |
--------------------------------------------------------------------------------
/packages/form/src/handlers/validators/max-length.validator.ts:
--------------------------------------------------------------------------------
1 | import { NonRequiredValidator } from './non-required.validator';
2 |
3 | export class MaxLengthValidator extends NonRequiredValidator {
4 | // --- Properties ---
5 | public maxLength: number;
6 |
7 | constructor(maxLength: number, message: string = `The entry must not be longer than ${maxLength} characters.`) {
8 | super(message);
9 | this.maxLength = maxLength;
10 | }
11 |
12 | public validate(value: any): boolean {
13 | return typeof value === 'string' && value.length <= this.maxLength;
14 | }
15 | }
16 |
--------------------------------------------------------------------------------
/packages/form/src/handlers/validators/min-length.validator.ts:
--------------------------------------------------------------------------------
1 | import { NonRequiredValidator } from './non-required.validator';
2 |
3 | export class MinLengthValidator extends NonRequiredValidator {
4 | // --- Properties ---
5 | public minLength: number;
6 |
7 | constructor(minLength: number, message: string = `The entry must not be shorter than ${minLength} characters.`) {
8 | super(message);
9 | this.minLength = minLength;
10 | }
11 |
12 | public validate(value: any): boolean {
13 | return typeof value === 'string' && value.length >= this.minLength;
14 | }
15 | }
16 |
--------------------------------------------------------------------------------
/packages/form/src/handlers/validators/non-required.validator.ts:
--------------------------------------------------------------------------------
1 | import { AbstractValidator } from './abstract.validator';
2 | import { DEFAULT_REQUIRED_VALIDATOR } from './required.validator';
3 |
4 | export abstract class NonRequiredValidator extends AbstractValidator {
5 | public valid(value: any): boolean {
6 | return DEFAULT_REQUIRED_VALIDATOR.valid(value) === false || this.validate(value);
7 | }
8 |
9 | abstract validate(value: any): boolean;
10 | }
11 |
--------------------------------------------------------------------------------
/packages/form/src/handlers/validators/not.validator.ts:
--------------------------------------------------------------------------------
1 | import { AbstractValidator } from './abstract.validator';
2 | import { NonRequiredValidator } from './non-required.validator';
3 |
4 | export class NotValidator extends NonRequiredValidator {
5 | // --- Properties ---
6 | public validator: AbstractValidator;
7 |
8 | constructor(validator: AbstractValidator, message: string) {
9 | super(message);
10 | this.validator = validator;
11 | }
12 |
13 | public validate(value: any): boolean {
14 | return this.validator.valid(value) === false;
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/packages/form/src/handlers/validators/required.validator.ts:
--------------------------------------------------------------------------------
1 | import { AbstractValidator } from './abstract.validator';
2 |
3 | export class RequiredValidator extends AbstractValidator {
4 | constructor(message: string = 'Please enter a value.') {
5 | super(message);
6 | }
7 |
8 | public valid(value: any): boolean {
9 | return value !== undefined && value !== null && value.toString().length > 0;
10 | }
11 | }
12 |
13 | export const DEFAULT_REQUIRED_VALIDATOR: RequiredValidator = new RequiredValidator();
14 |
--------------------------------------------------------------------------------
/packages/form/src/index.ts:
--------------------------------------------------------------------------------
1 | export * from './controls';
2 | export * from './handlers';
3 |
--------------------------------------------------------------------------------
/packages/form/tsconfig.build.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": "./tsconfig.json",
3 | "exclude": ["src/**/*.test.ts"]
4 | }
5 |
--------------------------------------------------------------------------------
/packages/form/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "compilerOptions": {
3 | "moduleResolution": "node",
4 | "forceConsistentCasingInFileNames": true,
5 | "importHelpers": true,
6 | "sourceMap": true,
7 | "strict": true,
8 | "skipLibCheck": true,
9 | "removeComments": true,
10 | "target": "ES2015",
11 | "types": ["chai", "mocha", "node"],
12 | "typeRoots": ["node_modules/@types"]
13 | },
14 | "include": ["src"]
15 | }
16 |
--------------------------------------------------------------------------------
/packages/lib/.gitignore:
--------------------------------------------------------------------------------
1 | /cjs
2 | /esm
3 | /umd
4 | /types
--------------------------------------------------------------------------------
/packages/lib/.mocharc.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 |
3 | // Here's a JavaScript-based config file.
4 | // If you need conditional logic, you might want to use this type of config.
5 | // Otherwise, JSON or YAML is recommended.
6 |
7 | module.exports = {
8 | extension: ['js', 'jsx', 'ts', 'tsx'],
9 | reporter: 'spec',
10 | require: ['esbuild-register', 'jsdom-global/register', 'mock-local-storage'],
11 | spec: ['src/**/*.spec.*s*', 'src/**/*.test.*s*', 'tests/unit/**/*.spec.*s*', 'tests/unit/**/*.test.*s*'],
12 | };
13 |
14 | // Source: https://github.com/mochajs/mocha/tree/master/example/config
15 |
--------------------------------------------------------------------------------
/packages/lib/ES6.md:
--------------------------------------------------------------------------------
1 | https://hackernoon.com/es6-modules-today-with-typescript-22969cd360f0
2 | https://dev.to/remshams/rolling-up-a-multi-module-system-esm-cjs-compatible-npm-library-with-typescript-and-babel-3gjg
--------------------------------------------------------------------------------
/packages/lib/src/architecture/component.ts:
--------------------------------------------------------------------------------
1 | import { AbstractController } from './controller';
2 |
3 | export interface GenericComponent {
4 | ctrl: AbstractController;
5 | }
6 |
--------------------------------------------------------------------------------
/packages/lib/src/architecture/decorators.ts:
--------------------------------------------------------------------------------
1 | export const ArchController = () => {
2 | return () => {};
3 | };
4 | export const ArchModel = () => {
5 | return () => {};
6 | };
7 | export const ArchService = () => {
8 | return () => {};
9 | };
10 | export const ArchView = () => {
11 | return () => {};
12 | };
13 |
--------------------------------------------------------------------------------
/packages/lib/src/architecture/index.ts:
--------------------------------------------------------------------------------
1 | export * from './component';
2 | export * from './controller';
3 | export * from './decorators';
4 | export * from './interfaces';
5 |
--------------------------------------------------------------------------------
/packages/lib/src/architecture/interfaces.ts:
--------------------------------------------------------------------------------
1 | export interface ViewControllerCouple {
2 | hooks?: {
3 | doDistroy?: Function;
4 | doRender?: Function;
5 | };
6 | }
7 |
--------------------------------------------------------------------------------
/packages/lib/src/components/index.ts:
--------------------------------------------------------------------------------
1 | export * from './vanilla';
2 |
--------------------------------------------------------------------------------
/packages/lib/src/components/vanilla.ts:
--------------------------------------------------------------------------------
1 | export class VanillaComponent extends HTMLElement {
2 | protected readonly dom: HTMLElement | ShadowRoot;
3 |
4 | constructor() {
5 | super();
6 | this.dom = this;
7 | // this.attachShadow({ delegatesFocus: true, mode: 'open' });
8 | // this.dom = this.shadowRoot;
9 | }
10 |
11 | // tslint:disable-next-line: no-empty
12 | protected render() {}
13 |
14 | public connectedCallback() {
15 | this.render();
16 | }
17 | }
18 |
--------------------------------------------------------------------------------
/packages/lib/src/helpers/index.ts:
--------------------------------------------------------------------------------
1 | export * from './injector';
2 | export * from './log';
3 |
--------------------------------------------------------------------------------
/packages/lib/src/helpers/validator.ts:
--------------------------------------------------------------------------------
1 | export class Validator {
2 | private constructor() {}
3 |
4 | public static isNumber(any: any): boolean {
5 | return isNaN(any) === false && typeof any === 'number';
6 | }
7 |
8 | public static isArray(any: any, minLength = 0): boolean {
9 | return Array.isArray(any) && any.length >= minLength;
10 | }
11 |
12 | public static isObject(any: any): boolean {
13 | return typeof any === 'object' && any !== null && this.isArray(any) === false;
14 | }
15 |
16 | public static isString(any: any, minLength = 0): boolean {
17 | return typeof any === 'string' && any.length >= minLength;
18 | }
19 | }
20 |
--------------------------------------------------------------------------------
/packages/lib/src/index.ts:
--------------------------------------------------------------------------------
1 | export * from './architecture';
2 | export * from './components';
3 | export * from './helpers';
4 | export * from './pattern';
5 | export * from './shares';
6 |
--------------------------------------------------------------------------------
/packages/lib/src/pattern/index.ts:
--------------------------------------------------------------------------------
1 | export * from './list-of';
2 |
--------------------------------------------------------------------------------
/packages/lib/src/pattern/list-of.test.ts:
--------------------------------------------------------------------------------
1 | import { assert } from 'chai';
2 |
3 | import { SetOf } from './list-of';
4 |
5 | describe('Test: SetOf', () => {
6 | const setOf = new SetOf(Function);
7 |
8 | function test(value: any) {
9 | it(`Validator accept only Functions (${value})`, () => {
10 | assert.equal(setOf.length, 0);
11 | setOf.add(value);
12 | assert.equal(setOf.length, 0);
13 | });
14 | }
15 |
16 | test('');
17 | test(1);
18 | test(null);
19 | test({});
20 | test([1, 1]);
21 |
22 | it(`Validator accept a AbstractValidator`, () => {
23 | assert.equal(setOf.length, 0);
24 | setOf.add(new Function());
25 | assert.equal(setOf.length, 1);
26 | });
27 | });
28 |
--------------------------------------------------------------------------------
/packages/lib/src/shares/index.ts:
--------------------------------------------------------------------------------
1 | export * from './filters';
2 |
--------------------------------------------------------------------------------
/packages/lib/tsconfig.build.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": "./tsconfig.json",
3 | "exclude": ["src/**/*.test.ts"]
4 | }
5 |
--------------------------------------------------------------------------------
/packages/lib/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "compilerOptions": {
3 | "moduleResolution": "node",
4 | "forceConsistentCasingInFileNames": true,
5 | "importHelpers": true,
6 | "sourceMap": true,
7 | "strict": false,
8 | "skipLibCheck": true,
9 | "removeComments": true,
10 | "target": "ES2015",
11 | "types": ["chai", "loglevel", "mocha", "node", "sinon"],
12 | "typeRoots": ["node_modules/@types"]
13 | },
14 | "include": ["src"]
15 | }
16 |
--------------------------------------------------------------------------------
/packages/openapi/.gitignore:
--------------------------------------------------------------------------------
1 | /dist
2 | /node_modules
3 | /typescript-rxjs
4 |
--------------------------------------------------------------------------------
/packages/openapi/openapitools.json:
--------------------------------------------------------------------------------
1 | {
2 | "$schema": "node_modules/@openapitools/openapi-generator-cli/config.schema.json",
3 | "spaces": 2,
4 | "generator-cli": {
5 | "version": "5.2.1"
6 | }
7 | }
8 |
--------------------------------------------------------------------------------
/packages/openapi/src/models/version.yml:
--------------------------------------------------------------------------------
1 | IVersion:
2 | type: object
3 | properties:
4 | major:
5 | type: integer
6 | format: int64
7 | example: 1
8 | minor:
9 | type: integer
10 | format: int64
11 | example: 0
12 | patch:
13 | type: integer
14 | format: int64
15 | example: 0
16 | text:
17 | type: string
18 | example: 1.0.0
19 | label:
20 | type: string
21 | enum:
22 | - latest
23 | - next
24 | - rc
25 | - beta
26 | - alpha
27 |
--------------------------------------------------------------------------------
/packages/openapi/src/openapi.yml:
--------------------------------------------------------------------------------
1 | openapi: 3.0.3
2 | info:
3 | title: Leanup Stack API
4 | version: 1.2.0
5 | servers:
6 | - url: http://localhost:9080/api/v1
7 | description: Development
8 | paths:
9 | /version:
10 | $ref: 'paths/version.yml'
11 |
--------------------------------------------------------------------------------
/packages/openapi/src/paths/version.yml:
--------------------------------------------------------------------------------
1 | get:
2 | tags:
3 | - Version
4 | summery: Version
5 | responses:
6 | 200:
7 | description: OK
8 | content:
9 | application/json:
10 | schema:
11 | $ref: '../models/version.yml#/IVersion'
12 |
--------------------------------------------------------------------------------
/packages/stack/bundlers/vite/.gitignore:
--------------------------------------------------------------------------------
1 | lib
2 |
--------------------------------------------------------------------------------
/packages/stack/bundlers/webpack/.gitignore:
--------------------------------------------------------------------------------
1 | /dist
2 |
--------------------------------------------------------------------------------
/packages/stack/bundlers/webpack/src/mjs/index.d.ts:
--------------------------------------------------------------------------------
1 | declare module 'copy-modules-webpack-plugin';
2 | declare module 'copy-webpack-plugin';
3 | declare module 'mini-css-extract-plugin';
4 | declare module 'sass';
5 |
--------------------------------------------------------------------------------
/packages/stack/bundlers/webpack/tsconfig.cjs.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": "./tsconfig.json",
3 | "compilerOptions": {
4 | "module": "CommonJS",
5 | "target": "ES2015"
6 | },
7 | "include": ["src/cjs/**/*.ts"]
8 | }
9 |
--------------------------------------------------------------------------------
/packages/stack/bundlers/webpack/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "compilerOptions": {
3 | "esModuleInterop": true,
4 | "moduleResolution": "node",
5 | "forceConsistentCasingInFileNames": true,
6 | "importHelpers": true,
7 | "sourceMap": true,
8 | "strict": true,
9 | "outDir": "./",
10 | "skipLibCheck": true,
11 | "removeComments": true,
12 | "types": ["node"],
13 | "pretty": true,
14 | "typeRoots": ["node_modules/@types"]
15 | },
16 | "include": ["src/**/*.ts"],
17 | "exclude": ["node_modules"]
18 | }
19 |
--------------------------------------------------------------------------------
/packages/stack/bundlers/webpack/tsconfig.mjs.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": "./tsconfig.json",
3 | "compilerOptions": {
4 | "module": "ESNext",
5 | "target": "ESNext"
6 | },
7 | "include": ["src/mjs/**/*.ts"]
8 | }
9 |
--------------------------------------------------------------------------------
/packages/stack/core/.gitignore:
--------------------------------------------------------------------------------
1 | /dist
2 |
--------------------------------------------------------------------------------
/packages/stack/core/.mocharc.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 |
3 | // Here's a JavaScript-based config file.
4 | // If you need conditional logic, you might want to use this type of config.
5 | // Otherwise, JSON or YAML is recommended.
6 |
7 | module.exports = {
8 | extension: ['js', 'jsx', 'ts', 'tsx'],
9 | reporter: 'spec',
10 | require: ['esbuild-register', 'jsdom-global/register', 'mock-local-storage'],
11 | spec: ['src/**/*.spec.*s*', 'src/**/*.test.*s*', 'tests/unit/**/*.spec.*s*', 'tests/unit/**/*.test.*s*'],
12 | };
13 |
14 | // Source: https://github.com/mochajs/mocha/tree/master/example/config
15 |
--------------------------------------------------------------------------------
/packages/stack/core/.npmignore:
--------------------------------------------------------------------------------
1 | tsconfig.json
--------------------------------------------------------------------------------
/packages/stack/core/prettier.config.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | printWidth: 120,
3 | singleQuote: true,
4 | };
5 |
--------------------------------------------------------------------------------
/packages/stack/core/src/proxies.ts:
--------------------------------------------------------------------------------
1 | const path = require('path');
2 |
3 | export let PROXIES: Object = {};
4 | try {
5 | PROXIES = require(path.join(process.cwd(), `proxy.conf.json`));
6 | } catch (error) {
7 | PROXIES = {};
8 | }
9 |
--------------------------------------------------------------------------------
/packages/stack/core/tsconfig.cjs.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": "./tsconfig.json",
3 | "compilerOptions": {
4 | "module": "CommonJS",
5 | "target": "ES2015"
6 | },
7 | "include": ["src/cjs/**/*.ts"]
8 | }
9 |
--------------------------------------------------------------------------------
/packages/stack/core/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "compilerOptions": {
3 | "esModuleInterop": true,
4 | "moduleResolution": "node",
5 | "forceConsistentCasingInFileNames": true,
6 | "importHelpers": true,
7 | "sourceMap": true,
8 | "strict": true,
9 | "outDir": "./",
10 | "skipLibCheck": true,
11 | "module": "ESNext",
12 | "removeComments": true,
13 | "types": ["node"],
14 | "pretty": true,
15 | "typeRoots": ["node_modules/@types"]
16 | },
17 | "include": ["src/**/*.ts"],
18 | "exclude": ["node_modules"]
19 | }
20 |
--------------------------------------------------------------------------------
/packages/stack/core/tsconfig.mjs.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": "./tsconfig.json",
3 | "compilerOptions": {
4 | "module": "ESNext",
5 | "target": "ESNext"
6 | },
7 | "include": ["src/mjs/**/*.ts"]
8 | }
9 |
--------------------------------------------------------------------------------
/packages/stack/frameworks/angular/.gitignore:
--------------------------------------------------------------------------------
1 | /dist
2 |
--------------------------------------------------------------------------------
/packages/stack/frameworks/angular/snowpack.config.js:
--------------------------------------------------------------------------------
1 | // https://www.npmjs.com/package/snowpack-plugin-angular (deprecated)
2 | // https://www.npmjs.com/package/angular-snowpack-plugin (not maintained)
3 |
4 | const config = require('@leanup/stack-snowpack/snowpack.config');
5 |
6 | // config.plugins.push([
7 | // 'angular-snowpack-plugin',
8 | // {
9 | // angularJson: './angular.json',
10 | // },
11 | // ]);
12 | config.plugins.push([
13 | 'snowpack-plugin-angular',
14 | {
15 | args: '--project ./tsconfig.app.json',
16 | },
17 | ]);
18 |
19 | module.exports = config;
20 |
--------------------------------------------------------------------------------
/packages/stack/frameworks/angular/src/mjs/index.d.ts:
--------------------------------------------------------------------------------
1 | declare module '@leanup/stack-webpack';
2 | declare module '@ngtools/webpack';
3 |
--------------------------------------------------------------------------------
/packages/stack/frameworks/angular/tsconfig.cjs.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": "./tsconfig.json",
3 | "compilerOptions": {
4 | "module": "CommonJS",
5 | "target": "ES2015"
6 | },
7 | "include": ["src/cjs/**/*.ts"]
8 | }
9 |
--------------------------------------------------------------------------------
/packages/stack/frameworks/angular/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "compilerOptions": {
3 | "esModuleInterop": true,
4 | "moduleResolution": "node",
5 | "forceConsistentCasingInFileNames": true,
6 | "importHelpers": true,
7 | "sourceMap": true,
8 | "strict": true,
9 | "outDir": "./",
10 | "skipLibCheck": true,
11 | "module": "ESNext",
12 | "removeComments": true,
13 | "types": ["node"],
14 | "pretty": true,
15 | "typeRoots": ["node_modules/@types"]
16 | },
17 | "include": ["src/**/*.ts"],
18 | "exclude": ["node_modules"]
19 | }
20 |
--------------------------------------------------------------------------------
/packages/stack/frameworks/angular/tsconfig.mjs.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": "./tsconfig.json",
3 | "compilerOptions": {
4 | "module": "ESNext",
5 | "target": "ESNext"
6 | },
7 | "include": ["src/mjs/**/*.ts"]
8 | }
9 |
--------------------------------------------------------------------------------
/packages/stack/frameworks/angular/webpack.config.js:
--------------------------------------------------------------------------------
1 | module.exports = require('./lib/webpack.config').default;
2 |
--------------------------------------------------------------------------------
/packages/stack/frameworks/angularjs/.gitignore:
--------------------------------------------------------------------------------
1 | lib
--------------------------------------------------------------------------------
/packages/stack/frameworks/angularjs/babel.config.js:
--------------------------------------------------------------------------------
1 | const config = require('@leanup/stack-plugin-babel/babel.config');
2 |
3 | config.plugins.push('angularjs-annotate');
4 |
5 | module.exports = config;
6 |
--------------------------------------------------------------------------------
/packages/stack/frameworks/angularjs/snowpack.config.js:
--------------------------------------------------------------------------------
1 | const config = require('@leanup/stack-snowpack/snowpack.config');
2 |
3 | config.plugins.push('@snowpack/plugin-babel');
4 |
5 | module.exports = config;
6 |
--------------------------------------------------------------------------------
/packages/stack/frameworks/angularjs/src/webpack.config.ts:
--------------------------------------------------------------------------------
1 | import { BABEL_LOADER } from '@leanup/stack-plugin-babel/lib/webpack.config';
2 | import webpackConfig from '@leanup/stack-webpack';
3 |
4 | export default function webpackAngularJSConfig(env: any, argv: any): Object {
5 | return webpackConfig(env, argv, [BABEL_LOADER]);
6 | }
7 |
--------------------------------------------------------------------------------
/packages/stack/frameworks/angularjs/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "compilerOptions": {
3 | "moduleResolution": "node",
4 | "forceConsistentCasingInFileNames": true,
5 | "importHelpers": true,
6 | "declaration": true,
7 | "sourceMap": true,
8 | "strict": true,
9 | "outDir": "./lib",
10 | "skipLibCheck": true,
11 | "module": "UMD",
12 | "removeComments": true,
13 | "target": "ES2015",
14 | "types": ["node"],
15 | "typeRoots": ["node_modules/@types"]
16 | },
17 | "include": ["src/**/*.ts"],
18 | "exclude": ["node_modules/**/*", "src/**/*.test.ts"]
19 | }
20 |
--------------------------------------------------------------------------------
/packages/stack/frameworks/angularjs/webpack.config.js:
--------------------------------------------------------------------------------
1 | module.exports = require('./lib/webpack.config').default;
2 |
--------------------------------------------------------------------------------
/packages/stack/frameworks/aurelia/.gitignore:
--------------------------------------------------------------------------------
1 | lib
--------------------------------------------------------------------------------
/packages/stack/frameworks/aurelia/src/webpack.config.ts:
--------------------------------------------------------------------------------
1 | import webpackConfig from '@leanup/stack-webpack';
2 |
3 | export default function webpackAureliaConfig(env: any, argv: any): Object {
4 | const config: any = webpackConfig(env, argv);
5 | const path = require('path');
6 |
7 | const { AureliaPlugin } = require('aurelia-webpack-plugin');
8 | config.plugins.push(new AureliaPlugin());
9 |
10 | config.module.rules.push({
11 | test: /\.html$/,
12 | loader: 'html-loader',
13 | });
14 |
15 | config.resolve.modules.push(path.resolve(process.cwd(), 'src'));
16 | config.resolve.modules.push(path.resolve(process.cwd(), 'node_modules'));
17 |
18 | return config;
19 | }
20 |
--------------------------------------------------------------------------------
/packages/stack/frameworks/aurelia/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "compilerOptions": {
3 | "moduleResolution": "node",
4 | "forceConsistentCasingInFileNames": true,
5 | "importHelpers": true,
6 | "declaration": true,
7 | "sourceMap": true,
8 | "strict": true,
9 | "outDir": "./lib",
10 | "skipLibCheck": true,
11 | "module": "UMD",
12 | "removeComments": true,
13 | "target": "ES2015",
14 | "types": ["node"],
15 | "typeRoots": ["node_modules/@types"]
16 | },
17 | "include": ["src/**/*.ts"],
18 | "exclude": ["node_modules/**/*", "src/**/*.test.ts"]
19 | }
20 |
--------------------------------------------------------------------------------
/packages/stack/frameworks/aurelia/webpack.config.js:
--------------------------------------------------------------------------------
1 | module.exports = require('./lib/webpack.config').default;
2 |
--------------------------------------------------------------------------------
/packages/stack/frameworks/inferno/.gitignore:
--------------------------------------------------------------------------------
1 | lib
--------------------------------------------------------------------------------
/packages/stack/frameworks/inferno/babel.config.js:
--------------------------------------------------------------------------------
1 | const config = require('@leanup/stack-plugin-babel/babel.config');
2 |
3 | config.plugins.push([
4 | 'babel-plugin-inferno',
5 | {
6 | imports: true,
7 | },
8 | ]);
9 |
10 | module.exports = config;
11 |
--------------------------------------------------------------------------------
/packages/stack/frameworks/inferno/snowpack.config.js:
--------------------------------------------------------------------------------
1 | const config = require('@leanup/stack-snowpack/snowpack.config');
2 |
3 | config.plugins.push('@snowpack/plugin-babel');
4 |
5 | module.exports = config;
6 |
--------------------------------------------------------------------------------
/packages/stack/frameworks/inferno/src/webpack.config.ts:
--------------------------------------------------------------------------------
1 | import { BABEL_LOADER } from '@leanup/stack-plugin-babel/lib/webpack.config';
2 | import webpackConfig from '@leanup/stack-webpack';
3 |
4 | export default function webpackInfernoConfig(env: any, argv: any): Object {
5 | const config: any = webpackConfig(env, argv, [BABEL_LOADER]);
6 |
7 | config.resolve.alias['inferno'] =
8 | process.env.NODE_ENV === 'production' ? 'inferno/dist/index.esm.js' : 'inferno/dist/index.dev.esm.js';
9 |
10 | return config;
11 | }
12 |
--------------------------------------------------------------------------------
/packages/stack/frameworks/inferno/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "compilerOptions": {
3 | "moduleResolution": "node",
4 | "forceConsistentCasingInFileNames": true,
5 | "importHelpers": true,
6 | "declaration": true,
7 | "sourceMap": true,
8 | "strict": true,
9 | "outDir": "./lib",
10 | "skipLibCheck": true,
11 | "module": "UMD",
12 | "removeComments": true,
13 | "target": "ES2015",
14 | "types": ["node"],
15 | "typeRoots": ["node_modules/@types"]
16 | },
17 | "include": ["src/**/*.ts"],
18 | "exclude": ["node_modules/**/*", "src/**/*.test.ts"]
19 | }
20 |
--------------------------------------------------------------------------------
/packages/stack/frameworks/inferno/vite.config.js:
--------------------------------------------------------------------------------
1 | const config = require('@leanup/stack-vite/vite.config');
2 |
3 | config.resolve = config.resolve || {};
4 | config.resolve.alias = config.resolve.alias || {};
5 | config.resolve.alias['inferno'] =
6 | process.env.NODE_ENV === 'production' ? 'inferno/dist/index.esm.js' : 'inferno/dist/index.dev.esm.js';
7 |
8 | module.exports = config;
9 |
--------------------------------------------------------------------------------
/packages/stack/frameworks/inferno/webpack.config.js:
--------------------------------------------------------------------------------
1 | module.exports = require('./lib/webpack.config').default;
2 |
--------------------------------------------------------------------------------
/packages/stack/frameworks/lit-element/package-lock.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "@leanup/stack-lit-element",
3 | "version": "2.0.0-rc.80",
4 | "lockfileVersion": 1,
5 | "requires": true,
6 | "dependencies": {
7 | "regenerator-runtime": {
8 | "version": "0.13.11",
9 | "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz",
10 | "integrity": "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg=="
11 | }
12 | }
13 | }
14 |
--------------------------------------------------------------------------------
/packages/stack/frameworks/preact/.gitignore:
--------------------------------------------------------------------------------
1 | lib
--------------------------------------------------------------------------------
/packages/stack/frameworks/preact/snowpack.config.js:
--------------------------------------------------------------------------------
1 | const config = require('@leanup/stack-snowpack/snowpack.config');
2 |
3 | config.alias = config.alias || {};
4 | config.alias['react'] = 'preact/compat';
5 | config.alias['react-dom'] = 'preact/compat';
6 |
7 | module.exports = config;
8 |
--------------------------------------------------------------------------------
/packages/stack/frameworks/preact/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "compilerOptions": {
3 | "moduleResolution": "node",
4 | "forceConsistentCasingInFileNames": true,
5 | "importHelpers": true,
6 | "declaration": true,
7 | "sourceMap": true,
8 | "strict": true,
9 | "outDir": "./lib",
10 | "skipLibCheck": true,
11 | "module": "UMD",
12 | "removeComments": true,
13 | "target": "ES2015",
14 | "types": ["node"],
15 | "typeRoots": ["node_modules/@types"]
16 | },
17 | "include": ["src/**/*.ts"],
18 | "exclude": ["node_modules/**/*", "src/**/*.test.ts"]
19 | }
20 |
--------------------------------------------------------------------------------
/packages/stack/frameworks/preact/vite.config.js:
--------------------------------------------------------------------------------
1 | const { mergeConfig } = require('vite');
2 | const preact = require('@preact/preset-vite');
3 | const { unsetConfigPlugin } = require('vite-plugin-unset');
4 |
5 | module.exports = mergeConfig(require('@leanup/stack-vite/vite.config'), {
6 | plugins: [
7 | preact.default(),
8 | unsetConfigPlugin({
9 | esbuild: {
10 | jsxInject: undefined,
11 | },
12 | }),
13 | ],
14 | });
15 |
--------------------------------------------------------------------------------
/packages/stack/frameworks/preact/webpack.config.js:
--------------------------------------------------------------------------------
1 | module.exports = require('./lib/webpack.config').default;
2 |
--------------------------------------------------------------------------------
/packages/stack/frameworks/react/.gitignore:
--------------------------------------------------------------------------------
1 | lib
--------------------------------------------------------------------------------
/packages/stack/frameworks/react/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "compilerOptions": {
3 | "moduleResolution": "node",
4 | "forceConsistentCasingInFileNames": true,
5 | "importHelpers": true,
6 | "declaration": true,
7 | "sourceMap": true,
8 | "strict": true,
9 | "outDir": "./lib",
10 | "skipLibCheck": true,
11 | "module": "UMD",
12 | "removeComments": true,
13 | "target": "ES2015",
14 | "types": ["node"],
15 | "typeRoots": ["node_modules/@types"]
16 | },
17 | "include": ["src/**/*.ts"],
18 | "exclude": ["node_modules/**/*", "src/**/*.test.ts"]
19 | }
20 |
--------------------------------------------------------------------------------
/packages/stack/frameworks/react/webpack.config.js:
--------------------------------------------------------------------------------
1 | module.exports = require('./lib/webpack.config').default;
2 |
--------------------------------------------------------------------------------
/packages/stack/frameworks/solid/.gitignore:
--------------------------------------------------------------------------------
1 | lib
--------------------------------------------------------------------------------
/packages/stack/frameworks/solid/babel.config.js:
--------------------------------------------------------------------------------
1 | const config = require('@leanup/stack-plugin-babel/babel.config');
2 |
3 | config.presets = Array.isArray(config.presets) ? config.presets : [];
4 | config.presets.push('solid');
5 |
6 | module.exports = config;
7 |
--------------------------------------------------------------------------------
/packages/stack/frameworks/solid/snowpack.config.js:
--------------------------------------------------------------------------------
1 | const config = require('@leanup/stack-snowpack/snowpack.config');
2 |
3 | config.plugins.push('@snowpack/plugin-babel');
4 |
5 | module.exports = config;
6 |
--------------------------------------------------------------------------------
/packages/stack/frameworks/solid/src/webpack.config.ts:
--------------------------------------------------------------------------------
1 | import { BABEL_LOADER } from '@leanup/stack-plugin-babel/lib/webpack.config';
2 | import webpackConfig from '@leanup/stack-webpack';
3 |
4 | export default function webpackSolidConfig(env: any, argv: any): Object {
5 | const config: any = webpackConfig(env, argv, [BABEL_LOADER]);
6 | return config;
7 | }
8 |
--------------------------------------------------------------------------------
/packages/stack/frameworks/solid/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "compilerOptions": {
3 | "moduleResolution": "node",
4 | "forceConsistentCasingInFileNames": true,
5 | "importHelpers": true,
6 | "declaration": true,
7 | "sourceMap": true,
8 | "strict": true,
9 | "outDir": "./lib",
10 | "skipLibCheck": true,
11 | "module": "UMD",
12 | "removeComments": true,
13 | "target": "ES2015",
14 | "types": ["node"],
15 | "typeRoots": ["node_modules/@types"]
16 | },
17 | "include": ["src/**/*.ts"],
18 | "exclude": ["node_modules/**/*", "src/**/*.test.ts"]
19 | }
20 |
--------------------------------------------------------------------------------
/packages/stack/frameworks/solid/vite.config.js:
--------------------------------------------------------------------------------
1 | const config = require('@leanup/stack-vite/vite.config');
2 | // https://www.npmjs.com/package/vite-plugin-solid
3 | module.exports = config;
4 |
--------------------------------------------------------------------------------
/packages/stack/frameworks/solid/webpack.config.js:
--------------------------------------------------------------------------------
1 | module.exports = require('./lib/webpack.config').default;
2 |
--------------------------------------------------------------------------------
/packages/stack/frameworks/svelte/.gitignore:
--------------------------------------------------------------------------------
1 | lib
--------------------------------------------------------------------------------
/packages/stack/frameworks/svelte/snowpack.config.js:
--------------------------------------------------------------------------------
1 | const config = require('@leanup/stack-snowpack/snowpack.config');
2 |
3 | config.plugins.push('@snowpack/plugin-svelte');
4 |
5 | module.exports = config;
6 |
--------------------------------------------------------------------------------
/packages/stack/frameworks/svelte/src/webpack.config.ts:
--------------------------------------------------------------------------------
1 | import webpackConfig from '@leanup/stack-webpack';
2 |
3 | export default function webpackSvelteConfig(env: any, argv: any): Object {
4 | const config: any = webpackConfig(env, argv);
5 |
6 | config.module.rules.push({
7 | test: /\.svelte$/,
8 | use: 'svelte-loader',
9 | });
10 |
11 | return config;
12 | }
13 |
--------------------------------------------------------------------------------
/packages/stack/frameworks/svelte/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "compilerOptions": {
3 | "moduleResolution": "node",
4 | "forceConsistentCasingInFileNames": true,
5 | "importHelpers": true,
6 | "declaration": true,
7 | "sourceMap": true,
8 | "strict": true,
9 | "outDir": "./lib",
10 | "skipLibCheck": true,
11 | "module": "UMD",
12 | "removeComments": true,
13 | "target": "ES2015",
14 | "types": ["node"],
15 | "typeRoots": ["node_modules/@types"]
16 | },
17 | "include": ["src/**/*.ts"],
18 | "exclude": ["node_modules/**/*", "src/**/*.test.ts"]
19 | }
20 |
--------------------------------------------------------------------------------
/packages/stack/frameworks/svelte/vite.config.js:
--------------------------------------------------------------------------------
1 | const config = require('@leanup/stack/vite.config');
2 | const svelte = require('vite-plugin-svelte');
3 |
4 | config.plugins = config.plugins || [];
5 | config.plugins.push(svelte());
6 |
7 | module.exports = config;
8 |
--------------------------------------------------------------------------------
/packages/stack/frameworks/svelte/webpack.config.js:
--------------------------------------------------------------------------------
1 | module.exports = require('./lib/webpack.config').default;
2 |
--------------------------------------------------------------------------------
/packages/stack/frameworks/vue/.gitignore:
--------------------------------------------------------------------------------
1 | lib
--------------------------------------------------------------------------------
/packages/stack/frameworks/vue/src/webpack.config.ts:
--------------------------------------------------------------------------------
1 | import webpackConfig from '@leanup/stack-webpack';
2 |
3 | export default function webpackVueConfig(env: any, argv: any): Object {
4 | const config: any = webpackConfig(env, argv);
5 |
6 | const VueLoaderPlugin = require('vue-loader/lib/plugin');
7 | config.plugins.push(new VueLoaderPlugin());
8 |
9 | config.module.rules.push({
10 | test: /\.vue$/,
11 | loader: 'vue-loader',
12 | });
13 |
14 | return config;
15 | }
16 |
--------------------------------------------------------------------------------
/packages/stack/frameworks/vue/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "compilerOptions": {
3 | "moduleResolution": "node",
4 | "forceConsistentCasingInFileNames": true,
5 | "importHelpers": true,
6 | "declaration": true,
7 | "sourceMap": true,
8 | "strict": true,
9 | "outDir": "./lib",
10 | "skipLibCheck": true,
11 | "module": "UMD",
12 | "removeComments": true,
13 | "target": "ES2015",
14 | "types": ["node"],
15 | "typeRoots": ["node_modules/@types"]
16 | },
17 | "include": ["src/**/*.ts"],
18 | "exclude": ["node_modules/**/*", "src/**/*.test.ts"]
19 | }
20 |
--------------------------------------------------------------------------------
/packages/stack/frameworks/vue/webpack.config.js:
--------------------------------------------------------------------------------
1 | module.exports = require('./lib/webpack.config').default;
2 |
--------------------------------------------------------------------------------
/packages/stack/frameworks/vue3/.gitignore:
--------------------------------------------------------------------------------
1 | lib
--------------------------------------------------------------------------------
/packages/stack/frameworks/vue3/snowpack.config.js:
--------------------------------------------------------------------------------
1 | const config = require('@leanup/stack-snowpack/snowpack.config');
2 |
3 | config.plugins.push('@snowpack/plugin-vue');
4 |
5 | module.exports = config;
6 |
--------------------------------------------------------------------------------
/packages/stack/frameworks/vue3/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "compilerOptions": {
3 | "moduleResolution": "node",
4 | "forceConsistentCasingInFileNames": true,
5 | "importHelpers": true,
6 | "declaration": true,
7 | "sourceMap": true,
8 | "strict": true,
9 | "outDir": "./lib",
10 | "skipLibCheck": true,
11 | "module": "UMD",
12 | "removeComments": true,
13 | "target": "ES2015",
14 | "types": ["node"],
15 | "typeRoots": ["node_modules/@types"]
16 | },
17 | "include": ["src/**/*.ts"],
18 | "exclude": ["node_modules/**/*", "src/**/*.test.ts"]
19 | }
20 |
--------------------------------------------------------------------------------
/packages/stack/frameworks/vue3/vite.config.js:
--------------------------------------------------------------------------------
1 | const config = require('@leanup/stack/vite.config');
2 | const vue = require('@vitejs/plugin-vue');
3 |
4 | config.plugins = config.plugins || [];
5 | config.plugins.push(vue());
6 |
7 | module.exports = config;
8 |
--------------------------------------------------------------------------------
/packages/stack/frameworks/vue3/webpack.config.js:
--------------------------------------------------------------------------------
1 | module.exports = require('./lib/webpack.config').default;
2 |
--------------------------------------------------------------------------------
/packages/stack/plugins/babel/.gitignore:
--------------------------------------------------------------------------------
1 | lib
--------------------------------------------------------------------------------
/packages/stack/plugins/babel/src/webpack.config.ts:
--------------------------------------------------------------------------------
1 | const path = require('path');
2 |
3 | export const BABEL_LOADER = {
4 | test: /\.(j|t)sx$/,
5 | use: {
6 | loader: 'babel-loader',
7 | options: Object.assign(
8 | {
9 | cacheCompression: false,
10 | cacheDirectory: true,
11 | },
12 | require(path.join(process.cwd(), './babel.config'))
13 | ),
14 | },
15 | };
16 |
--------------------------------------------------------------------------------
/packages/stack/plugins/babel/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "compilerOptions": {
3 | "moduleResolution": "node",
4 | "forceConsistentCasingInFileNames": true,
5 | "importHelpers": true,
6 | "declaration": true,
7 | "sourceMap": true,
8 | "strict": true,
9 | "outDir": "./lib",
10 | "skipLibCheck": true,
11 | "module": "UMD",
12 | "removeComments": true,
13 | "target": "ES2015",
14 | "types": ["node"],
15 | "typeRoots": ["node_modules/@types"]
16 | },
17 | "include": ["src/**/*.ts"],
18 | "exclude": ["node_modules/**/*", "src/**/*.test.ts"]
19 | }
20 |
--------------------------------------------------------------------------------
/packages/stack/plugins/cucumber/.gitignore:
--------------------------------------------------------------------------------
1 | lib
--------------------------------------------------------------------------------
/packages/stack/plugins/cucumber/cucumber.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | default: '--publish-quiet',
3 | };
4 |
--------------------------------------------------------------------------------
/packages/stack/plugins/cucumber/index.js:
--------------------------------------------------------------------------------
1 | module.exports = __dirname;
2 |
--------------------------------------------------------------------------------
/packages/stack/plugins/cucumber/template/cucumber.conf.js:
--------------------------------------------------------------------------------
1 | module.exports = require('@leanup/cli-cucumber/cucumber.conf');
2 |
--------------------------------------------------------------------------------
/packages/stack/plugins/cucumber/template/cucumber.js:
--------------------------------------------------------------------------------
1 | module.exports = require('@leanup/cli-cucumber/cucumber');
2 |
--------------------------------------------------------------------------------
/packages/stack/plugins/cucumber/template/tests/cucumber/features/google.feature:
--------------------------------------------------------------------------------
1 | Feature: Google Search
2 |
3 | Scenario: Searching Google
4 |
5 | Given I open Google's search page
6 | Then the title is "Google"
7 | And the Google search form exists
--------------------------------------------------------------------------------
/packages/stack/plugins/cucumber/template/tests/cucumber/step-definitions/google.js:
--------------------------------------------------------------------------------
1 | const { client } = require('nightwatch-api');
2 | const { Given, Then } = require('@cucumber/cucumber');
3 |
4 | Given(/^I open Google's search page$/, () => {
5 | return client.url('http://google.com').waitForElementVisible('body', 1000);
6 | });
7 |
8 | Then(/^the title is "([^"]*)"$/, (title) => {
9 | return client.assert.title(title);
10 | });
11 |
12 | Then(/^the Google search form exists$/, () => {
13 | return client.assert.visible('input[name="q"]');
14 | });
15 |
--------------------------------------------------------------------------------
/packages/stack/plugins/cucumber/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "compilerOptions": {
3 | "moduleResolution": "node",
4 | "forceConsistentCasingInFileNames": true,
5 | "importHelpers": true,
6 | "declaration": true,
7 | "sourceMap": true,
8 | "strict": true,
9 | "outDir": "./lib",
10 | "skipLibCheck": true,
11 | "module": "UMD",
12 | "removeComments": true,
13 | "target": "ES2015",
14 | "types": ["node"],
15 | "typeRoots": ["node_modules/@types"]
16 | },
17 | "include": ["src/**/*.ts"],
18 | "exclude": ["node_modules/**/*", "src/**/*.test.ts"]
19 | }
20 |
--------------------------------------------------------------------------------
/packages/stack/plugins/git-hooks/commitlint.config.js:
--------------------------------------------------------------------------------
1 | /**
2 | * Documentation
3 | * - https://commitlint.js.org/
4 | * - https://commitlint.js.org/#/concepts-commit-conventions
5 | * - https://commitlint.js.org/#/reference-configuration
6 | */
7 | module.exports = {
8 | extends: ['@commitlint/config-conventional'],
9 | formatter: '@commitlint/format',
10 | };
11 |
--------------------------------------------------------------------------------
/packages/stack/plugins/git-hooks/template/commitlint.config.js:
--------------------------------------------------------------------------------
1 | module.exports = require('@leanup/git-hooks/commitlint.config');
2 |
--------------------------------------------------------------------------------
/packages/stack/plugins/pwa/.gitignore:
--------------------------------------------------------------------------------
1 | lib
--------------------------------------------------------------------------------
/packages/stack/plugins/pwa/index.js:
--------------------------------------------------------------------------------
1 | module.exports = __dirname;
2 |
--------------------------------------------------------------------------------
/packages/stack/plugins/pwa/src/cli.js:
--------------------------------------------------------------------------------
1 | module.exports = (CLI) => {
2 | CLI.addOptionToCommand(['build', 'serve'], [
3 | { flags: '--pwa [generateSW|injectManifest]', description: 'gernerate pwa manifest and service worker' },
4 | ]);
5 | CLI.addActionToCommand(['build', 'serve'], (options) => {
6 | const spawnArgs = [];
7 | if (options.pwa) {
8 | spawnArgs.push(`--pwa=${options.pwa}`);
9 | }
10 | return spawnArgs;
11 | });
12 | };
13 | export {};
14 |
--------------------------------------------------------------------------------
/packages/stack/plugins/pwa/src/cli.ts:
--------------------------------------------------------------------------------
1 | import { AbstractCLI } from '@leanup/cli/lib/abstract-cli';
2 | import { BuildOps } from '@leanup/cli/lib/interfaces';
3 |
4 | interface PwaOps extends BuildOps {
5 | pwa: string;
6 | }
7 |
8 | module.exports = (CLI: AbstractCLI) => {
9 | CLI.addOptionToCommand(
10 | ['build', 'serve'],
11 | [{ flags: '--pwa [generateSW|injectManifest]', description: 'gernerate pwa manifest and service worker' }]
12 | );
13 | CLI.addActionToCommand(['build', 'serve'], (options: PwaOps) => {
14 | const spawnArgs = [];
15 | if (options.pwa) {
16 | spawnArgs.push(`--pwa=${options.pwa}`);
17 | }
18 | return spawnArgs;
19 | });
20 | };
21 |
--------------------------------------------------------------------------------
/packages/stack/plugins/pwa/template/pwa-manifest.config.js:
--------------------------------------------------------------------------------
1 | const path = require('path');
2 | module.exports = {
3 | name: '@template/pwa - SPA/PWA',
4 | short_name: '@template/pwa',
5 | description: '...',
6 | lang: 'de-DE',
7 | start_url: 'https://',
8 | display: 'standalone',
9 | orientation: 'any',
10 | theme_color: '#C8A2C8',
11 | background_color: '#DCD0FF',
12 | filename: 'manifest.json',
13 | icons: [
14 | {
15 | src: path.resolve('public/assets/pwa.icon.png'),
16 | sizes: [96, 128, 192, 256, 384, 512],
17 | },
18 | ],
19 | crossorigin: null,
20 | inject: true,
21 | fingerprints: false,
22 | ios: false,
23 | publicPath: null,
24 | includeDirectory: true,
25 | };
26 |
--------------------------------------------------------------------------------
/packages/stack/plugins/pwa/template/workbox-config.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | swDest: 'dist/sw.js',
3 | runtimeCaching: [
4 | {
5 | urlPattern: /\.(css|gif|gz|jpg|js|png|html|json)$/,
6 | handler: 'CacheFirst'
7 | }
8 | ],
9 | skipWaiting: true,
10 | clientsClaim: true
11 | };
12 |
--------------------------------------------------------------------------------
/packages/stack/plugins/pwa/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "compilerOptions": {
3 | "moduleResolution": "node",
4 | "forceConsistentCasingInFileNames": true,
5 | "importHelpers": true,
6 | "declaration": true,
7 | "sourceMap": true,
8 | "strict": true,
9 | "outDir": "./lib",
10 | "skipLibCheck": true,
11 | "module": "UMD",
12 | "removeComments": true,
13 | "target": "ES2015",
14 | "types": ["node"],
15 | "typeRoots": ["node_modules/@types"]
16 | },
17 | "include": ["src/**/*.ts"],
18 | "exclude": ["node_modules/**/*", "src/**/*.test.ts"]
19 | }
20 |
--------------------------------------------------------------------------------
/prettier.config.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | ...require('./packages/stack/core/prettier.config'),
3 | svelteSortOrder: 'options-styles-scripts-markup',
4 | svelteStrictMode: true,
5 | svelteBracketNewLine: true,
6 | svelteAllowShorthand: false,
7 | svelteIndentScriptAndStyle: false,
8 | };
9 |
--------------------------------------------------------------------------------
/scripts/.gitignore:
--------------------------------------------------------------------------------
1 | workspace
--------------------------------------------------------------------------------
/scripts/access.sh:
--------------------------------------------------------------------------------
1 | echo
2 | echo npm access "$1" "@leanup/$2"
3 | npm access "$1" "@leanup/$2"
--------------------------------------------------------------------------------
/scripts/deprecate.sh:
--------------------------------------------------------------------------------
1 | echo
2 | echo npm deprecate "@leanup/$1@$2" "$3"
3 | npm deprecate "@leanup/$1@$2" "$3"
--------------------------------------------------------------------------------
/scripts/dist-tag.sh:
--------------------------------------------------------------------------------
1 | echo
2 | echo npm dist-tag $1 @leanup/$2@$3 "$4"
3 | npm dist-tag $1 @leanup/$2@$3 "$4"
4 |
5 | echo npm dist-tag ls @leanup/$2
6 | npm dist-tag ls @leanup/$2
7 |
--------------------------------------------------------------------------------
/scripts/package.js:
--------------------------------------------------------------------------------
1 | require("fs").writeFileSync(
2 | require('path').resolve(process.cwd(), process.argv[2], 'package.json'),
3 | `{
4 | "type": "${process.argv[3]}"
5 | }
6 | `,
7 | {
8 | encoding: "utf8",
9 | }
10 | );
11 |
--------------------------------------------------------------------------------
/scripts/unpublish-1.0.sh:
--------------------------------------------------------------------------------
1 | for i in {0..4}
2 | do
3 | sh unpublish-all.sh "1.0.0-beta.$i"
4 | done
5 |
6 | bash ./unpublish-all.sh "1.0.0-rc.0"
7 |
8 | for i in {500..527}
9 | do
10 | sh unpublish-all.sh "1.0.0-rc.$i"
11 | done
12 |
13 | for i in {0..3}
14 | do
15 | sh unpublish-all.sh "1.0.22-webpack.$i"
16 | done
17 |
18 | for i in {0..15}
19 | do
20 | sh unpublish-all.sh "1.1.0-webpack.$i"
21 | done
--------------------------------------------------------------------------------
/scripts/unpublish-1.1-a.sh:
--------------------------------------------------------------------------------
1 | for i in {0..100}
2 | do
3 | sh unpublish-all.sh "1.1.0-rc.$i"
4 | done
--------------------------------------------------------------------------------
/scripts/unpublish-1.1-b.sh:
--------------------------------------------------------------------------------
1 | for i in {100..230}
2 | do
3 | sh unpublish-all.sh "1.1.0-rc.$i"
4 | done
--------------------------------------------------------------------------------
/scripts/unpublish-1.2.sh:
--------------------------------------------------------------------------------
1 | for i in {0..2}
2 | do
3 | bash ./unpublish-all.sh "1.2.0-beta.$i"
4 | done
5 |
6 | for i in {0..31}
7 | do
8 | bash ./unpublish-all.sh "1.2.0-rc.$i"
9 | done
--------------------------------------------------------------------------------
/scripts/unpublish-loop.sh:
--------------------------------------------------------------------------------
1 | for (( i=$(($2)); i<=$(($3)); i++ ))
2 | do
3 | sh unpublish-all.sh $1.$i
4 | done
--------------------------------------------------------------------------------
/scripts/unpublish.set.sh:
--------------------------------------------------------------------------------
1 | # sh unpublish.all.sh 1.1.0-rc.200
2 | # sh unpublish.all.sh 1.1.0-rc.201
3 | # sh unpublish.all.sh 1.1.0-rc.202
4 | # sh unpublish.all.sh 1.1.0-rc.203
5 | # sh unpublish.all.sh 1.1.0-rc.204
6 | # sh unpublish.all.sh 1.1.0-rc.205
7 | # sh unpublish.all.sh 1.1.0-rc.206
8 | sh unpublish.all.sh 1.1.0-rc.207
--------------------------------------------------------------------------------
/scripts/unpublish.sh:
--------------------------------------------------------------------------------
1 | bash ./access.sh restricted $1
2 |
3 | bash ./deprecate.sh "$1" "$2" "The version $2 of the package @leanup/$1 is no longer maintained and will be removed from the registry shortly. Instead, please switch to a newer, well-maintained version."
4 | # bash ./deprecate.sh "$1" "$2" "This version $2 of the package @leanup/$1 contains a bug and is marked as deprecated. Instead, please switch to a newer, well-maintained version."
5 |
6 | echo
7 | echo npm unpublish --force "@leanup/$1@$2"
8 | npm unpublish --force "@leanup/$1@$2"
9 |
10 | bash ./access.sh public $1
--------------------------------------------------------------------------------
/scripts/wake-up-all.sh:
--------------------------------------------------------------------------------
1 | sh wake-up.sh angular "$1" "$2"
2 | sh wake-up.sh angularjs "$1" "$2"
3 | sh wake-up.sh aurelia "$1" "$2"
4 | sh wake-up.sh inferno "$1" "$2"
5 | sh wake-up.sh lit-element "$1" "$2"
6 | sh wake-up.sh preact "$1" "$2"
7 | sh wake-up.sh react "$1" "$2"
8 | sh wake-up.sh solid "$1" "$2"
9 | sh wake-up.sh svelte "$1" "$2"
10 | sh wake-up.sh vanilla "$1" "$2"
11 | sh wake-up.sh vue "$1" "$2"
12 | sh wake-up.sh vue3 "$1" "$2"
13 |
--------------------------------------------------------------------------------