diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS
deleted file mode 100644
index dea6d0b6f0..0000000000
--- a/.github/CODEOWNERS
+++ /dev/null
@@ -1,5 +0,0 @@
-* @ionic-team/cli
-
-/packages/@ionic @dwieeb
-/packages/@ionic/discover @manucorporat
-/packages/ionic @dwieeb
diff --git a/package.json b/package.json
index a47772e109..5456c7805e 100644
--- a/package.json
+++ b/package.json
@@ -20,7 +20,9 @@
"chokidar-cli": "^1.2.0",
"husky": "^1.1.0",
"lerna": "^2.9.1",
- "tslint-ionic-rules": "0.0.19"
+ "tslint": "^5.9.1",
+ "tslint-ionic-rules": "0.0.21",
+ "typescript": "~3.2.1"
},
"husky": {
"hooks": {
diff --git a/packages/@ionic/cli-framework/CHANGELOG.md b/packages/@ionic/cli-framework/CHANGELOG.md
index e55fc7249d..89a3374440 100644
--- a/packages/@ionic/cli-framework/CHANGELOG.md
+++ b/packages/@ionic/cli-framework/CHANGELOG.md
@@ -3,6 +3,14 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
+
+## [1.5.1](https://github.com/ionic-team/ionic-cli/compare/@ionic/cli-framework@1.5.0...@ionic/cli-framework@1.5.1) (2018-12-19)
+
+
+
+
+**Note:** Version bump only for package @ionic/cli-framework
+
# [1.5.0](https://github.com/ionic-team/ionic-cli/compare/@ionic/cli-framework@1.4.0...@ionic/cli-framework@1.5.0) (2018-11-27)
diff --git a/packages/@ionic/cli-framework/package.json b/packages/@ionic/cli-framework/package.json
index 5c6fb604a9..d82b5eb489 100644
--- a/packages/@ionic/cli-framework/package.json
+++ b/packages/@ionic/cli-framework/package.json
@@ -1,6 +1,6 @@
{
"name": "@ionic/cli-framework",
- "version": "1.5.0",
+ "version": "1.5.1",
"description": "The foundation framework of the Ionic CLI",
"homepage": "https://ionicframework.com/",
"author": "Ionic Team (https://ionicframework.com) ",
@@ -11,7 +11,7 @@
},
"scripts": {
"clean": "rimraf index.* definitions.* errors.* guards.* lib utils",
- "lint": "tslint --config tslint.js --project tsconfig.json",
+ "lint": "tslint --project tsconfig.json",
"build": "npm run clean && tsc",
"watch": "tsc -w --preserveWatchOutput",
"test": "jest --maxWorkers=4",
@@ -27,7 +27,7 @@
},
"license": "MIT",
"dependencies": {
- "@ionic/utils-fs": "0.0.5",
+ "@ionic/utils-fs": "0.0.6",
"chalk": "^2.3.0",
"debug": "^4.0.0",
"inquirer": "^6.0.0",
@@ -37,7 +37,7 @@
"rimraf": "^2.6.2",
"slice-ansi": "^2.0.0",
"stream-combiner2": "^1.1.1",
- "string-width": "^2.1.1",
+ "string-width": "^3.0.0",
"strip-ansi": "^5.0.0",
"tree-kill": "1.2.1",
"tslib": "^1.9.0",
@@ -65,6 +65,6 @@
"lint-staged": "^8.0.0",
"ts-jest": "^23.10.1",
"tslint": "^5.9.1",
- "typescript": "~3.1.1"
+ "typescript": "~3.2.1"
}
}
diff --git a/packages/@ionic/cli-framework/tslint.js b/packages/@ionic/cli-framework/tslint.js
deleted file mode 100644
index 922c453b48..0000000000
--- a/packages/@ionic/cli-framework/tslint.js
+++ /dev/null
@@ -1,3 +0,0 @@
-module.exports = {
- "extends": "../../../tslint.base",
-};
diff --git a/packages/@ionic/cli-framework/tslint.json b/packages/@ionic/cli-framework/tslint.json
new file mode 100644
index 0000000000..fd69973875
--- /dev/null
+++ b/packages/@ionic/cli-framework/tslint.json
@@ -0,0 +1,3 @@
+{
+ "extends": "../../../tslint.base.json"
+}
diff --git a/packages/@ionic/discover/CHANGELOG.md b/packages/@ionic/discover/CHANGELOG.md
index 8127589029..3675deeaee 100644
--- a/packages/@ionic/discover/CHANGELOG.md
+++ b/packages/@ionic/discover/CHANGELOG.md
@@ -3,6 +3,14 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
+
+## [1.0.9](https://github.com/ionic-team/ionic-cli/compare/@ionic/discover@1.0.8...@ionic/discover@1.0.9) (2018-12-19)
+
+
+
+
+**Note:** Version bump only for package @ionic/discover
+
## [1.0.8](https://github.com/ionic-team/ionic-cli/compare/@ionic/discover@1.0.7...@ionic/discover@1.0.8) (2018-11-20)
diff --git a/packages/@ionic/discover/package.json b/packages/@ionic/discover/package.json
index d30bc5b966..a06afa78c8 100644
--- a/packages/@ionic/discover/package.json
+++ b/packages/@ionic/discover/package.json
@@ -1,6 +1,6 @@
{
"name": "@ionic/discover",
- "version": "1.0.8",
+ "version": "1.0.9",
"description": "Simple UDP based protocol for service discovery implemented in pure JS.",
"main": "dist/index.js",
"types": "dist/index.d.ts",
@@ -21,7 +21,7 @@
},
"scripts": {
"clean": "rimraf dist",
- "lint": "tslint --config tslint.js --project tsconfig.json",
+ "lint": "tslint --project tsconfig.json",
"build": "npm run clean && tsc",
"watch": "tsc -w --preserveWatchOutput",
"test": "jest --maxWorkers=4",
@@ -53,6 +53,6 @@
"rimraf": "^2.6.2",
"ts-jest": "^23.10.1",
"tslint": "^5.9.1",
- "typescript": "~3.1.1"
+ "typescript": "~3.2.1"
}
}
diff --git a/packages/@ionic/discover/tslint.js b/packages/@ionic/discover/tslint.js
deleted file mode 100644
index 922c453b48..0000000000
--- a/packages/@ionic/discover/tslint.js
+++ /dev/null
@@ -1,3 +0,0 @@
-module.exports = {
- "extends": "../../../tslint.base",
-};
diff --git a/packages/@ionic/discover/tslint.json b/packages/@ionic/discover/tslint.json
new file mode 100644
index 0000000000..fd69973875
--- /dev/null
+++ b/packages/@ionic/discover/tslint.json
@@ -0,0 +1,3 @@
+{
+ "extends": "../../../tslint.base.json"
+}
diff --git a/packages/@ionic/lab/CHANGELOG.md b/packages/@ionic/lab/CHANGELOG.md
index 26b2bf3972..15836d6a77 100644
--- a/packages/@ionic/lab/CHANGELOG.md
+++ b/packages/@ionic/lab/CHANGELOG.md
@@ -3,6 +3,20 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
+
+## [1.0.16](https://github.com/ionic-team/ionic-cli/compare/@ionic/lab@1.0.15...@ionic/lab@1.0.16) (2018-12-19)
+
+
+### Bug Fixes
+
+* **lab:** correct statusbar position ([#3766](https://github.com/ionic-team/ionic-cli/issues/3766)) ([b37fa03](https://github.com/ionic-team/ionic-cli/commit/b37fa03))
+* **lab:** default cursor for platform titles ([b215beb](https://github.com/ionic-team/ionic-cli/commit/b215beb))
+* **lab:** improve dev experience on smaller screens ([45a6c58](https://github.com/ionic-team/ionic-cli/commit/45a6c58))
+* **lab:** statusbar padding for all versions ([4fa13a3](https://github.com/ionic-team/ionic-cli/commit/4fa13a3))
+
+
+
+
## [1.0.15](https://github.com/ionic-team/ionic-cli/compare/@ionic/lab@1.0.14...@ionic/lab@1.0.15) (2018-11-27)
diff --git a/packages/@ionic/lab/package.json b/packages/@ionic/lab/package.json
index cd8091a898..42fb3296d6 100644
--- a/packages/@ionic/lab/package.json
+++ b/packages/@ionic/lab/package.json
@@ -1,6 +1,6 @@
{
"name": "@ionic/lab",
- "version": "1.0.15",
+ "version": "1.0.16",
"description": "Ionic Lab utility for developing Ionic apps, used by Ionic CLI",
"bin": {
"ionic-lab": "./bin/ionic-lab"
@@ -28,12 +28,12 @@
"clean": "npm run clean.tsc",
"clean.tsc": "rimraf dist",
"clean.stencil": "rimraf www",
- "lint": "tslint --config tslint.js --project tsconfig.json",
+ "lint": "tslint --project tsconfig.json",
"build": "npm run build.tsc && npm run build.stencil",
"build.stencil": "npm run clean.stencil && stencil build",
"build.tsc": "npm run clean.tsc && tsc",
"watch": "npm run watch.tsc",
- "watch.stencil": "npm run clean.stencil && concurrently \"stencil build --dev --watch\" \"stencil-dev-server --address localhost --httpPort 8900 --no-open\"",
+ "watch.stencil": "npm run clean.stencil && stencil build --dev --watch --serve --address localhost --port 8900 --no-open",
"watch.tsc": "tsc -w --preserveWatchOutput",
"prepublishOnly": "npm run build"
},
@@ -42,25 +42,24 @@
"*.{ts,tsx}": "npm run lint"
},
"ignore": [
+ "src/stencil/**",
"**/__tests__/*.{ts,tsx}"
]
},
"dependencies": {
- "@ionic/cli-framework": "1.5.0",
- "@ionic/utils-fs": "0.0.5",
+ "@ionic/cli-framework": "1.5.1",
+ "@ionic/utils-fs": "0.0.6",
"chalk": "^2.3.0",
"express": "^4.16.2",
"tslib": "^1.9.0"
},
"devDependencies": {
- "@stencil/core": "^0.15.0",
- "@stencil/dev-server": "0.0.18",
+ "@stencil/core": "^0.16.0",
"@types/express": "^4.11.0",
"@types/node": "^6.0.101",
- "concurrently": "^4.0.1",
"lint-staged": "^8.0.0",
"rimraf": "^2.6.2",
"tslint": "^5.9.1",
- "typescript": "~3.1.1"
+ "typescript": "~3.2.1"
}
}
diff --git a/packages/@ionic/lab/src/stencil/assets/app.css b/packages/@ionic/lab/src/stencil/assets/app.css
index f2e3dcaf1d..620a151685 100644
--- a/packages/@ionic/lab/src/stencil/assets/app.css
+++ b/packages/@ionic/lab/src/stencil/assets/app.css
@@ -46,9 +46,6 @@ header .icon {
margin-top: -3px;
font-size: 22px;
color: var(--icon-color);
-}
-
-.icon {
cursor: pointer;
}
diff --git a/packages/@ionic/lab/src/stencil/assets/variables.css b/packages/@ionic/lab/src/stencil/assets/variables.css
index 2884b67c04..8eacff28ee 100644
--- a/packages/@ionic/lab/src/stencil/assets/variables.css
+++ b/packages/@ionic/lab/src/stencil/assets/variables.css
@@ -32,4 +32,8 @@
--main-bg: var(--body-bg);
--section-bg: #151a21;
--font-color: #a2a9b4;
+
+ --frame-ratio: .562; /* width/height */
+ --frame-default-width: 375px;
+ --frame-default-height: calc(var(--frame-default-width) / var(--frame-ratio));
}
diff --git a/packages/@ionic/lab/src/stencil/components/ionlab-device-frame/ionlab-device-frame.css b/packages/@ionic/lab/src/stencil/components/ionlab-device-frame/ionlab-device-frame.css
index a9fcf42c09..dc7016920d 100644
--- a/packages/@ionic/lab/src/stencil/components/ionlab-device-frame/ionlab-device-frame.css
+++ b/packages/@ionic/lab/src/stencil/components/ionlab-device-frame/ionlab-device-frame.css
@@ -70,21 +70,17 @@ ionlab-device-frame .frame-container iframe {
background-image: url('/assets/ios-statusbar.png');
}
-#device-android .frame-container iframe {
- margin-top: 20px;
- height: calc(var(--frame-height) - 20px);
-}
-
#device-android .frame-container .statusbar {
background-image: url('/assets/android-statusbar.png');
}
-#device-windows .frame-container iframe {
- margin-top: 20px;
- height: calc(var(--frame-height) - 20px);
-}
-
#device-windows .frame-container .statusbar {
background-image: url('/assets/wp-statusbar.png');
background-color: #fff;
}
+
+@media only screen and (max-height: 850px) {
+ ionlab-device-frame h2 {
+ display: none;
+ }
+}
diff --git a/packages/@ionic/lab/src/stencil/components/ionlab-preview/ionlab-preview.css b/packages/@ionic/lab/src/stencil/components/ionlab-preview/ionlab-preview.css
index fbb5113c41..05acf61224 100644
--- a/packages/@ionic/lab/src/stencil/components/ionlab-preview/ionlab-preview.css
+++ b/packages/@ionic/lab/src/stencil/components/ionlab-preview/ionlab-preview.css
@@ -3,8 +3,8 @@ ionlab-preview {
flex: 1;
overflow: scroll;
- --frame-width: 375px;
- --frame-height: 667px;
+ --frame-width: var(--frame-default-width);
+ --frame-height: var(--frame-default-height);
}
ionlab-preview > div {
@@ -17,3 +17,16 @@ ionlab-preview > div {
padding-bottom: 60px;
min-height: 100%;
}
+
+@media only screen and (max-height: 850px) {
+ ionlab-preview {
+ overflow: hidden;
+
+ --frame-width: 300px;
+ --frame-height: calc(var(--frame-width) / var(--frame-ratio));
+ }
+
+ ionlab-preview > div {
+ padding-bottom: 0;
+ }
+}
diff --git a/packages/@ionic/lab/src/stencil/components/ionlab-preview/ionlab-preview.tsx b/packages/@ionic/lab/src/stencil/components/ionlab-preview/ionlab-preview.tsx
index 9238530ca9..5965bc0526 100644
--- a/packages/@ionic/lab/src/stencil/components/ionlab-preview/ionlab-preview.tsx
+++ b/packages/@ionic/lab/src/stencil/components/ionlab-preview/ionlab-preview.tsx
@@ -21,16 +21,10 @@ export class Preview {
if (this.projectType === 'angular') {
qp['ionic:mode'] = platformMode(platform);
qp['ionic:persistConfig'] = 'true';
-
- if (platform === PLATFORM_IOS) {
- qp['ionic:_forceStatusbarPadding'] = 'true';
- }
+ qp['ionic:_forceStatusbarPadding'] = 'true';
} else if (this.projectType === 'ionic-angular') {
qp['ionicplatform'] = platform;
-
- if (platform === PLATFORM_IOS) {
- qp['ionicstatusbarpadding'] = 'true';
- }
+ qp['ionicstatusbarpadding'] = 'true';
}
return `${this.url}?${Object.keys(qp).map(k => `${encodeURIComponent(k)}=${encodeURIComponent(qp[k])}`).join('&')}`;
diff --git a/packages/@ionic/lab/src/stencil/components/ionlab-sidebar/ionlab-sidebar.css b/packages/@ionic/lab/src/stencil/components/ionlab-sidebar/ionlab-sidebar.css
index 64d732f8f1..17189bff7a 100644
--- a/packages/@ionic/lab/src/stencil/components/ionlab-sidebar/ionlab-sidebar.css
+++ b/packages/@ionic/lab/src/stencil/components/ionlab-sidebar/ionlab-sidebar.css
@@ -21,6 +21,7 @@ ionlab-sidebar h3 .icon {
font-size: 24px;
color: var(--font-color);
margin-top: -5px;
+ cursor: pointer;
}
ionlab-sidebar .menu {
diff --git a/packages/@ionic/lab/src/stencil/index.html b/packages/@ionic/lab/src/stencil/index.html
index ecc4cc602b..5f2b9aee51 100644
--- a/packages/@ionic/lab/src/stencil/index.html
+++ b/packages/@ionic/lab/src/stencil/index.html
@@ -6,7 +6,7 @@
-
+
diff --git a/packages/@ionic/lab/stencil.config.js b/packages/@ionic/lab/stencil.config.js
index 647db6cb3b..1659408598 100644
--- a/packages/@ionic/lab/stencil.config.js
+++ b/packages/@ionic/lab/stencil.config.js
@@ -1,5 +1,4 @@
exports.config = {
- namespace: 'ionlab',
srcDir: 'src/stencil',
outputTargets: [
{
@@ -7,9 +6,6 @@ exports.config = {
serviceWorker: false,
},
],
- bundles: [
- { components: ['ionlab-app', 'ionlab-platform-dropdown'] }
- ],
copy: [
{ src: 'assets' },
],
diff --git a/packages/@ionic/lab/tslint.js b/packages/@ionic/lab/tslint.js
deleted file mode 100644
index 922c453b48..0000000000
--- a/packages/@ionic/lab/tslint.js
+++ /dev/null
@@ -1,3 +0,0 @@
-module.exports = {
- "extends": "../../../tslint.base",
-};
diff --git a/packages/@ionic/lab/tslint.json b/packages/@ionic/lab/tslint.json
new file mode 100644
index 0000000000..fd69973875
--- /dev/null
+++ b/packages/@ionic/lab/tslint.json
@@ -0,0 +1,3 @@
+{
+ "extends": "../../../tslint.base.json"
+}
diff --git a/packages/@ionic/utils-fs/CHANGELOG.md b/packages/@ionic/utils-fs/CHANGELOG.md
index 0aa858d6af..cf4d3f4579 100644
--- a/packages/@ionic/utils-fs/CHANGELOG.md
+++ b/packages/@ionic/utils-fs/CHANGELOG.md
@@ -3,6 +3,14 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
+
+## [0.0.6](https://github.com/ionic-team/ionic-cli/compare/@ionic/utils-fs@0.0.5...@ionic/utils-fs@0.0.6) (2018-12-19)
+
+
+
+
+**Note:** Version bump only for package @ionic/utils-fs
+
## [0.0.5](https://github.com/ionic-team/ionic-cli/compare/@ionic/utils-fs@0.0.4...@ionic/utils-fs@0.0.5) (2018-11-20)
diff --git a/packages/@ionic/utils-fs/package.json b/packages/@ionic/utils-fs/package.json
index df91f59afa..522f688e51 100644
--- a/packages/@ionic/utils-fs/package.json
+++ b/packages/@ionic/utils-fs/package.json
@@ -1,6 +1,6 @@
{
"name": "@ionic/utils-fs",
- "version": "0.0.5",
+ "version": "0.0.6",
"description": "Filesystem utils for Node",
"main": "dist/index.js",
"types": "dist/index.d.ts",
@@ -21,7 +21,7 @@
},
"scripts": {
"clean": "rimraf dist",
- "lint": "tslint --config tslint.js --project tsconfig.json",
+ "lint": "tslint --project tsconfig.json",
"build": "npm run clean && tsc",
"watch": "tsc -w --preserveWatchOutput",
"test": "jest --maxWorkers=4",
@@ -53,6 +53,6 @@
"rimraf": "^2.6.2",
"ts-jest": "^23.10.1",
"tslint": "^5.9.1",
- "typescript": "~3.1.1"
+ "typescript": "~3.2.1"
}
}
diff --git a/packages/@ionic/utils-fs/tslint.js b/packages/@ionic/utils-fs/tslint.js
deleted file mode 100644
index 922c453b48..0000000000
--- a/packages/@ionic/utils-fs/tslint.js
+++ /dev/null
@@ -1,3 +0,0 @@
-module.exports = {
- "extends": "../../../tslint.base",
-};
diff --git a/packages/@ionic/utils-fs/tslint.json b/packages/@ionic/utils-fs/tslint.json
new file mode 100644
index 0000000000..fd69973875
--- /dev/null
+++ b/packages/@ionic/utils-fs/tslint.json
@@ -0,0 +1,3 @@
+{
+ "extends": "../../../tslint.base.json"
+}
diff --git a/packages/@ionic/utils-network/CHANGELOG.md b/packages/@ionic/utils-network/CHANGELOG.md
index 9f5777a285..851d8fafdf 100644
--- a/packages/@ionic/utils-network/CHANGELOG.md
+++ b/packages/@ionic/utils-network/CHANGELOG.md
@@ -3,6 +3,14 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
+
+## [0.0.5](https://github.com/ionic-team/ionic-cli/compare/@ionic/utils-network@0.0.4...@ionic/utils-network@0.0.5) (2018-12-19)
+
+
+
+
+**Note:** Version bump only for package @ionic/utils-network
+
## [0.0.4](https://github.com/ionic-team/ionic-cli/compare/@ionic/utils-network@0.0.3...@ionic/utils-network@0.0.4) (2018-10-31)
diff --git a/packages/@ionic/utils-network/package.json b/packages/@ionic/utils-network/package.json
index b42fc68ebc..b2e081e35c 100644
--- a/packages/@ionic/utils-network/package.json
+++ b/packages/@ionic/utils-network/package.json
@@ -1,6 +1,6 @@
{
"name": "@ionic/utils-network",
- "version": "0.0.4",
+ "version": "0.0.5",
"description": "Network utils for Node",
"main": "dist/index.js",
"types": "dist/index.d.ts",
@@ -21,7 +21,7 @@
},
"scripts": {
"clean": "rimraf dist",
- "lint": "tslint --config tslint.js --project tsconfig.json",
+ "lint": "tslint --project tsconfig.json",
"build": "npm run clean && tsc",
"watch": "tsc -w --preserveWatchOutput",
"test": "jest --maxWorkers=4",
@@ -49,6 +49,6 @@
"rimraf": "^2.6.2",
"ts-jest": "^23.10.1",
"tslint": "^5.9.1",
- "typescript": "~3.1.1"
+ "typescript": "~3.2.1"
}
}
diff --git a/packages/@ionic/utils-network/tslint.js b/packages/@ionic/utils-network/tslint.js
deleted file mode 100644
index 922c453b48..0000000000
--- a/packages/@ionic/utils-network/tslint.js
+++ /dev/null
@@ -1,3 +0,0 @@
-module.exports = {
- "extends": "../../../tslint.base",
-};
diff --git a/packages/@ionic/utils-network/tslint.json b/packages/@ionic/utils-network/tslint.json
new file mode 100644
index 0000000000..fd69973875
--- /dev/null
+++ b/packages/@ionic/utils-network/tslint.json
@@ -0,0 +1,3 @@
+{
+ "extends": "../../../tslint.base.json"
+}
diff --git a/packages/@ionic/v1-toolkit/CHANGELOG.md b/packages/@ionic/v1-toolkit/CHANGELOG.md
index 815a900df3..c8c7b88fa0 100644
--- a/packages/@ionic/v1-toolkit/CHANGELOG.md
+++ b/packages/@ionic/v1-toolkit/CHANGELOG.md
@@ -3,6 +3,14 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
+
+## [1.0.15](https://github.com/ionic-team/ionic-cli/compare/@ionic/v1-toolkit@1.0.14...@ionic/v1-toolkit@1.0.15) (2018-12-19)
+
+
+
+
+**Note:** Version bump only for package @ionic/v1-toolkit
+
## [1.0.14](https://github.com/ionic-team/ionic-cli/compare/@ionic/v1-toolkit@1.0.13...@ionic/v1-toolkit@1.0.14) (2018-11-27)
diff --git a/packages/@ionic/v1-toolkit/package.json b/packages/@ionic/v1-toolkit/package.json
index 88a2f7652f..c8dc8fbc53 100644
--- a/packages/@ionic/v1-toolkit/package.json
+++ b/packages/@ionic/v1-toolkit/package.json
@@ -1,6 +1,6 @@
{
"name": "@ionic/v1-toolkit",
- "version": "1.0.14",
+ "version": "1.0.15",
"description": "Utility CLI for Ionic 1.x apps, used by Ionic CLI",
"bin": {
"ionic-v1": "./bin/ionic-v1"
@@ -26,7 +26,7 @@
},
"scripts": {
"clean": "rimraf dist",
- "lint": "tslint --config tslint.js --project tsconfig.json",
+ "lint": "tslint --project tsconfig.json",
"build": "npm run clean && tsc",
"watch": "tsc -w --preserveWatchOutput",
"test": "jest --maxWorkers=4",
@@ -41,8 +41,8 @@
]
},
"dependencies": {
- "@ionic/cli-framework": "1.5.0",
- "@ionic/utils-fs": "0.0.5",
+ "@ionic/cli-framework": "1.5.1",
+ "@ionic/utils-fs": "0.0.6",
"chalk": "^2.3.0",
"chokidar": "^2.0.0",
"debug": "^4.0.0",
@@ -68,6 +68,6 @@
"rimraf": "^2.6.2",
"ts-jest": "^23.10.1",
"tslint": "^5.9.1",
- "typescript": "~3.1.1"
+ "typescript": "~3.2.1"
}
}
diff --git a/packages/@ionic/v1-toolkit/src/lib/gulp.ts b/packages/@ionic/v1-toolkit/src/lib/gulp.ts
index c4ee1d9e16..bc83da15e5 100644
--- a/packages/@ionic/v1-toolkit/src/lib/gulp.ts
+++ b/packages/@ionic/v1-toolkit/src/lib/gulp.ts
@@ -69,7 +69,8 @@ export async function runTask(name: string): Promise {
try {
const gulp = await loadGulp();
- const gulpStart = promisify(gulp.start.bind(gulp));
+ const boundStart = gulp.start.bind(gulp);
+ const gulpStart = promisify(boundStart as any);
process.stdout.write(`${timestamp()} Invoking ${chalk.cyan(name)} gulp task.\n`);
await gulpStart(name);
diff --git a/packages/@ionic/v1-toolkit/tslint.js b/packages/@ionic/v1-toolkit/tslint.js
deleted file mode 100644
index 922c453b48..0000000000
--- a/packages/@ionic/v1-toolkit/tslint.js
+++ /dev/null
@@ -1,3 +0,0 @@
-module.exports = {
- "extends": "../../../tslint.base",
-};
diff --git a/packages/@ionic/v1-toolkit/tslint.json b/packages/@ionic/v1-toolkit/tslint.json
new file mode 100644
index 0000000000..fd69973875
--- /dev/null
+++ b/packages/@ionic/v1-toolkit/tslint.json
@@ -0,0 +1,3 @@
+{
+ "extends": "../../../tslint.base.json"
+}
diff --git a/packages/cli-scripts/CHANGELOG.md b/packages/cli-scripts/CHANGELOG.md
index 099ddb46f5..08a01040c2 100644
--- a/packages/cli-scripts/CHANGELOG.md
+++ b/packages/cli-scripts/CHANGELOG.md
@@ -3,6 +3,14 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
+
+## [0.0.25](https://github.com/ionic-team/ionic-cli/compare/cli-scripts@0.0.24...cli-scripts@0.0.25) (2018-12-19)
+
+
+
+
+**Note:** Version bump only for package cli-scripts
+
## [0.0.24](https://github.com/ionic-team/ionic-cli/compare/cli-scripts@0.0.23...cli-scripts@0.0.24) (2018-11-27)
diff --git a/packages/cli-scripts/package.json b/packages/cli-scripts/package.json
index 6d8301b8b3..f8351f69ac 100644
--- a/packages/cli-scripts/package.json
+++ b/packages/cli-scripts/package.json
@@ -1,13 +1,13 @@
{
"private": true,
"name": "cli-scripts",
- "version": "0.0.24",
+ "version": "0.0.25",
"bin": {
"ionic-cli-scripts": "./bin/ionic-cli-scripts"
},
"scripts": {
"clean": "rimraf dist",
- "lint": "tslint --config tslint.js --project tsconfig.json",
+ "lint": "tslint --project tsconfig.json",
"build": "npm run clean && tsc",
"watch": "tsc -w --preserveWatchOutput",
"test": "jest --maxWorkers=4",
@@ -24,12 +24,12 @@
"main": "./dist/index.js",
"types": "./dist/index.d.ts",
"dependencies": {
- "@ionic/cli-framework": "1.5.0",
- "@ionic/utils-fs": "0.0.5",
+ "@ionic/cli-framework": "1.5.1",
+ "@ionic/utils-fs": "0.0.6",
"ansi-styles": "^3.2.0",
"chalk": "^2.3.0",
"escape-string-regexp": "^1.0.5",
- "ionic": "4.5.0",
+ "ionic": "4.6.0",
"strip-ansi": "^5.0.0",
"tslib": "^1.9.0"
},
@@ -45,6 +45,6 @@
"rimraf": "^2.6.2",
"ts-jest": "^23.10.1",
"tslint": "^5.9.1",
- "typescript": "~3.1.1"
+ "typescript": "~3.2.1"
}
}
diff --git a/packages/cli-scripts/tslint.js b/packages/cli-scripts/tslint.js
deleted file mode 100644
index f4c265d6bf..0000000000
--- a/packages/cli-scripts/tslint.js
+++ /dev/null
@@ -1,3 +0,0 @@
-module.exports = {
- "extends": "../../tslint.base",
-};
diff --git a/packages/cli-scripts/tslint.json b/packages/cli-scripts/tslint.json
new file mode 100644
index 0000000000..a6e3c32c8f
--- /dev/null
+++ b/packages/cli-scripts/tslint.json
@@ -0,0 +1,3 @@
+{
+ "extends": "../../tslint.base.json"
+}
diff --git a/packages/ionic/CHANGELOG.md b/packages/ionic/CHANGELOG.md
index 353a7d8d5b..759a2401a4 100644
--- a/packages/ionic/CHANGELOG.md
+++ b/packages/ionic/CHANGELOG.md
@@ -3,6 +3,23 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
+
+# [4.6.0](https://github.com/ionic-team/ionic-cli/compare/ionic@4.5.0...ionic@4.6.0) (2018-12-19)
+
+
+### Bug Fixes
+
+* **cordova:** warn for prepare w/o platforms ([385bdf2](https://github.com/ionic-team/ionic-cli/commit/385bdf2))
+
+
+### Features
+
+* **serve:** collapse numbered chunk output and summarize ([5ac6834](https://github.com/ionic-team/ionic-cli/commit/5ac6834))
+* **start:** update for Ionic Framework 4.0 RC ([7e943cc](https://github.com/ionic-team/ionic-cli/commit/7e943cc))
+
+
+
+
# [4.5.0](https://github.com/ionic-team/ionic-cli/compare/ionic@4.4.0...ionic@4.5.0) (2018-11-27)
diff --git a/packages/ionic/package.json b/packages/ionic/package.json
index b17392a8dd..30f5ae6454 100644
--- a/packages/ionic/package.json
+++ b/packages/ionic/package.json
@@ -1,6 +1,6 @@
{
"name": "ionic",
- "version": "4.5.0",
+ "version": "4.6.0",
"description": "A tool for creating and developing Ionic Framework mobile apps.",
"homepage": "https://ionicframework.com",
"author": "Ionic Team (https://ionicframework.com) ",
@@ -14,7 +14,7 @@
"types": "./index.d.ts",
"scripts": {
"clean": "rimraf index.* bootstrap.* constants.* definitions.* guards.* lib commands",
- "lint": "tslint --config tslint.js --project tsconfig.json",
+ "lint": "tslint --project tsconfig.json",
"build": "npm run clean && tsc",
"watch": "tsc -w --preserveWatchOutput",
"test": "jest --maxWorkers=4",
@@ -48,10 +48,10 @@
},
"license": "MIT",
"dependencies": {
- "@ionic/cli-framework": "1.5.0",
- "@ionic/discover": "1.0.8",
- "@ionic/utils-fs": "0.0.5",
- "@ionic/utils-network": "0.0.4",
+ "@ionic/cli-framework": "1.5.1",
+ "@ionic/discover": "1.0.9",
+ "@ionic/utils-fs": "0.0.6",
+ "@ionic/utils-network": "0.0.5",
"chalk": "^2.3.0",
"debug": "^4.0.0",
"diff": "^3.4.0",
@@ -96,6 +96,6 @@
"source-map": "^0.7.0",
"ts-jest": "^23.10.1",
"tslint": "^5.9.1",
- "typescript": "~3.1.1"
+ "typescript": "~3.2.1"
}
}
diff --git a/packages/ionic/src/commands/cordova/prepare.ts b/packages/ionic/src/commands/cordova/prepare.ts
index 2516dfd531..32e0000569 100644
--- a/packages/ionic/src/commands/cordova/prepare.ts
+++ b/packages/ionic/src/commands/cordova/prepare.ts
@@ -57,19 +57,33 @@ You may wish to use ${chalk.green('ionic cordova prepare')} if you run your proj
}
async run(inputs: CommandLineInputs, options: CommandLineOptions): Promise {
+ const { getPlatforms } = await import('../../lib/integrations/cordova/project');
const [ platform ] = inputs;
if (!this.project) {
throw new FatalException(`Cannot run ${chalk.green('ionic cordova prepare')} outside a project directory.`);
}
- await this.checkForPlatformInstallation(platform, {
- promptToInstall: true,
- promptToInstallRefusalMsg: (
- `Can't prepare for ${chalk.green(platform)} unless the platform is installed.\n` +
- `Did you mean just ${chalk.green('ionic cordova prepare')}?\n`
- ),
- });
+ if (platform) {
+ await this.checkForPlatformInstallation(platform, {
+ promptToInstall: true,
+ promptToInstallRefusalMsg: (
+ `Cannot prepare for ${chalk.green(platform)} unless the platform is installed.\n` +
+ `Did you mean just ${chalk.green('ionic cordova prepare')}?\n`
+ ),
+ });
+ } else {
+ const platforms = await getPlatforms(this.integration.root);
+
+ if (platforms.length === 0) {
+ this.env.log.warn(
+ `No platforms added to this project. Cannot prepare native platforms without any installed.\n` +
+ `Run ${chalk.green('ionic cordova platform add ')} to add native platforms.`
+ );
+
+ throw new FatalException('', 0);
+ }
+ }
const metadata = await this.getMetadata();
diff --git a/packages/ionic/src/commands/serve.ts b/packages/ionic/src/commands/serve.ts
index ee2a069ad7..daff4e0099 100644
--- a/packages/ionic/src/commands/serve.ts
+++ b/packages/ionic/src/commands/serve.ts
@@ -68,7 +68,7 @@ export class ServeCommand extends Command implements CommandPreRun {
},
];
- const exampleCommands = ['', '-c', '--local', '--lab'];
+ const exampleCommands = ['', '--local', '--lab'];
let description = `
Easily spin up a development server which launches in your browser. It watches for changes in your source files and automatically reloads with the updated build.
diff --git a/packages/ionic/src/commands/start.ts b/packages/ionic/src/commands/start.ts
index c82a1bb4cd..834c8bc459 100644
--- a/packages/ionic/src/commands/start.ts
+++ b/packages/ionic/src/commands/start.ts
@@ -228,9 +228,9 @@ ${chalk.cyan('[1]')}: ${chalk.bold('https://ionicframework.com/docs/cli/starters
if (!options['type']) {
if (this.env.flags.interactive) {
this.env.log.info(
- `You are about to create an Ionic 3 app. Would you like to try Ionic 4 ${chalk.red.bold('(beta)')}?\n` +
+ `You are about to create an Ionic 3 app. Would you like to try the release candidate for Ionic 4?\n` +
`Ionic 4 uses the power of the modern Web and embraces the Angular CLI and Angular Router to bring you the best version of Ionic ever. See our blog announcement${chalk.cyan('[1]')} and documentation${chalk.cyan('[2]')} for more information. We'd love to hear your feedback on our latest version!\n\n` +
- `${chalk.cyan('[1]')}: ${chalk.bold('https://blog.ionicframework.com/announcing-ionic-4-beta/')}\n` +
+ `${chalk.cyan('[1]')}: ${chalk.bold('https://blog.ionicframework.com/ionic-framework-4-0-rc-shipped-paving-way-for-final')}\n` +
`${chalk.cyan('[2]')}: ${chalk.bold('https://beta.ionicframework.com/docs/')}\n`
);
}
@@ -690,6 +690,8 @@ ${chalk.cyan('[1]')}: ${chalk.bold('https://ionicframework.com/docs/cli/starters
async showNextSteps(projectDir: string, cloned: boolean, linkConfirmed: boolean) {
const steps = [
`Go to your ${cloned ? 'cloned' : 'newly created'} project: ${chalk.green(`cd ${prettyPath(projectDir)}`)}`,
+ `Run ${chalk.green('ionic serve')} within the app directory to see your app`,
+ `Build features and components: ${chalk.bold('https://beta.ionicframework.com/docs/building/scaffolding')}`,
`Get Ionic DevApp for easy device testing: ${chalk.bold('https://bit.ly/ionic-dev-app')}`,
];
diff --git a/packages/ionic/src/lib/integrations/cordova/__tests__/project.ts b/packages/ionic/src/lib/integrations/cordova/__tests__/project.ts
index 8229e79ce3..7d3a201d68 100644
--- a/packages/ionic/src/lib/integrations/cordova/__tests__/project.ts
+++ b/packages/ionic/src/lib/integrations/cordova/__tests__/project.ts
@@ -7,14 +7,22 @@ describe('ionic', () => {
describe('getPlatforms', () => {
- it('should filter out platforms.json and empty string', async () => {
- spyOn(fsSpy, 'readDir').and.callFake(async () => ['.DS_Store', 'android', 'ios', 'platforms.json', '']);
+ it('should filter out files and hidden files/folders', async () => {
+ const files = [['.DS_Store', false], ['.dir', true], ['android', true], ['ios', true], ['platforms.json', false]];
+ spyOn(fsSpy, 'readDirSafe').and.callFake(async () => files.map(([f]) => f));
+ spyOn(fsSpy, 'statSafe').and.callFake(async (p) => ({
+ isDirectory: () => {
+ const file = files.find(([f]) => p.endsWith(f));
+ return typeof file !== 'undefined' && file[1];
+ },
+ }));
+
const platforms = await project.getPlatforms('/path/to/proj');
expect(platforms).toEqual(['android', 'ios']);
});
it('should not error if directory empty', async () => {
- spyOn(fsSpy, 'readDir').and.callFake(async () => []);
+ spyOn(fsSpy, 'readDirSafe').and.callFake(async () => []);
const platforms = await project.getPlatforms('/path/to/proj');
expect(platforms).toEqual([]);
});
diff --git a/packages/ionic/src/lib/integrations/cordova/project.ts b/packages/ionic/src/lib/integrations/cordova/project.ts
index cdb4736c38..3e9edba757 100644
--- a/packages/ionic/src/lib/integrations/cordova/project.ts
+++ b/packages/ionic/src/lib/integrations/cordova/project.ts
@@ -1,9 +1,15 @@
import * as path from 'path';
-import { readDirSafe } from '@ionic/utils-fs';
+import { filter } from '@ionic/cli-framework/utils/array';
+import { readDirSafe, statSafe } from '@ionic/utils-fs';
export async function getPlatforms(projectDir: string): Promise {
const platformsDir = path.resolve(projectDir, 'platforms');
- const dirContents = await readDirSafe(platformsDir);
- return dirContents.filter(f => f && f !== 'platforms.json' && !f.startsWith('.'));
+ const contents = await readDirSafe(platformsDir);
+ const platforms = await filter(contents, async file => {
+ const stat = await statSafe(path.join(platformsDir, file));
+ return !file.startsWith('.') && typeof stat !== 'undefined' && stat.isDirectory();
+ });
+
+ return platforms;
}
diff --git a/packages/ionic/src/lib/project/angular/build.ts b/packages/ionic/src/lib/project/angular/build.ts
index f36a0fb82f..5b8b608f1f 100644
--- a/packages/ionic/src/lib/project/angular/build.ts
+++ b/packages/ionic/src/lib/project/angular/build.ts
@@ -33,7 +33,7 @@ export class AngularBuildRunner extends BuildRunner {
description: `
${chalk.green('ionic build')} uses the Angular CLI. Use ${chalk.green('ng build --help')} to list all Angular CLI options for building your app. See the ${chalk.green('ng build')} docs${chalk.cyan('[1]')} for explanations. Options not listed below are considered advanced and can be passed to the ${chalk.green('ng')} CLI using the ${chalk.green('--')} separator after the Ionic CLI arguments. See the examples.
-${chalk.cyan('[1]')}: ${chalk.bold('https://github.com/angular/angular-cli/wiki/build')}`,
+${chalk.cyan('[1]')}: ${chalk.bold('https://angular.io/cli/build')}`,
options: [
{
name: 'prod',
diff --git a/packages/ionic/src/lib/project/angular/serve.ts b/packages/ionic/src/lib/project/angular/serve.ts
index cb89e4d205..0bb6890f05 100644
--- a/packages/ionic/src/lib/project/angular/serve.ts
+++ b/packages/ionic/src/lib/project/angular/serve.ts
@@ -1,6 +1,7 @@
import chalk from 'chalk';
import { CommandGroup, OptionGroup, ParsedArgs, unparseArgs } from '@ionic/cli-framework';
+import { stripAnsi } from '@ionic/cli-framework/utils/format';
import { findClosestOpenPort } from '@ionic/utils-network';
import { AngularServeOptions, CommandLineInputs, CommandLineOptions, CommandMetadata, ServeDetails } from '../../../definitions';
@@ -25,7 +26,7 @@ ${chalk.green('ionic serve')} uses the Angular CLI. Use ${chalk.green('ng serve
The dev server can use HTTPS via the ${chalk.green('--ssl')} option ${chalk.bold.red('(experimental)')}. There are several known issues with HTTPS. See issue #3305${chalk.cyan('[2]')}.
-${chalk.cyan('[1]')}: ${chalk.bold('https://github.com/angular/angular-cli/wiki/serve')}
+${chalk.cyan('[1]')}: ${chalk.bold('https://angular.io/cli/serve')}
${chalk.cyan('[2]')}: ${chalk.bold('https://github.com/ionic-team/ionic-cli/issues/3305')}`,
options: [
{
@@ -116,17 +117,40 @@ export class AngularServeCLI extends ServeCLI {
readonly program = 'ng';
readonly prefix = 'ng';
readonly script = SERVE_SCRIPT;
+ protected chunks = 0;
+
+ async serve(options: AngularServeOptions): Promise {
+ this.on('compile', chunks => {
+ if (chunks > 0) {
+ this.e.log.info(`... and ${chalk.bold(chunks.toString())} additional chunks`);
+ }
+ });
+
+ return super.serve(options);
+ }
protected stdoutFilter(line: string): boolean {
if (this.resolvedProgram !== this.program) {
return super.stdoutFilter(line);
}
- if (line.includes('Development Server is listening')) {
+ const strippedLine = stripAnsi(line);
+
+ if (strippedLine.includes('Development Server is listening')) {
this.emit('ready');
return false;
}
+ if (strippedLine.match(/.*chunk\s{\d+}.+/)) {
+ this.chunks++;
+ return false;
+ }
+
+ if (strippedLine.includes('Compiled successfully')) {
+ this.emit('compile', this.chunks);
+ this.chunks = 0;
+ }
+
return true;
}
diff --git a/packages/ionic/src/lib/project/ionic-angular/serve.ts b/packages/ionic/src/lib/project/ionic-angular/serve.ts
index e560577e42..562018c6c2 100644
--- a/packages/ionic/src/lib/project/ionic-angular/serve.ts
+++ b/packages/ionic/src/lib/project/ionic-angular/serve.ts
@@ -78,7 +78,7 @@ export class IonicAngularServeRunner extends ServeRunner {
// TODO: Adding 'x' to aliases here has some weird behavior with minimist.
},
],
+ exampleCommands: [
+ '-c',
+ ],
};
}
diff --git a/packages/ionic/src/lib/serve.ts b/packages/ionic/src/lib/serve.ts
index 1628b94b88..a213197d9c 100644
--- a/packages/ionic/src/lib/serve.ts
+++ b/packages/ionic/src/lib/serve.ts
@@ -386,9 +386,12 @@ export interface ServeCLIOptions {
}
export interface ServeCLI {
+ emit(event: 'compile', chunks: number): boolean;
+ emit(event: 'ready'): boolean;
+ on(event: 'compile', handler: (chunks: number) => void): this;
on(event: 'ready', handler: () => void): this;
+ once(event: 'compile', handler: (chunks: number) => void): this;
once(event: 'ready', handler: () => void): this;
- emit(event: 'ready'): boolean;
}
export abstract class ServeCLI extends EventEmitter {
diff --git a/packages/ionic/tslint.js b/packages/ionic/tslint.js
deleted file mode 100644
index f4c265d6bf..0000000000
--- a/packages/ionic/tslint.js
+++ /dev/null
@@ -1,3 +0,0 @@
-module.exports = {
- "extends": "../../tslint.base",
-};
diff --git a/packages/ionic/tslint.json b/packages/ionic/tslint.json
new file mode 100644
index 0000000000..a6e3c32c8f
--- /dev/null
+++ b/packages/ionic/tslint.json
@@ -0,0 +1,3 @@
+{
+ "extends": "../../tslint.base.json"
+}
diff --git a/tslint.base.js b/tslint.base.js
deleted file mode 100644
index 658c51f89f..0000000000
--- a/tslint.base.js
+++ /dev/null
@@ -1,8 +0,0 @@
-module.exports = {
- "extends": "tslint-ionic-rules/strict",
- "rules": {
- "forin": false, // TODO
- "no-empty-interface": false, // TODO
- "strict-boolean-conditions": false,
- },
-};
diff --git a/tslint.base.json b/tslint.base.json
new file mode 100644
index 0000000000..5331d517e6
--- /dev/null
+++ b/tslint.base.json
@@ -0,0 +1,8 @@
+{
+ "extends": "tslint-ionic-rules/strict",
+ "rules": {
+ "forin": false,
+ "no-empty-interface": false,
+ "strict-boolean-conditions": false
+ }
+}