Compare commits

...

768 Commits
v5 ... v5.34.0

Author SHA1 Message Date
Daniel Sogl
2377b979ad Merge branch 'master' of https://github.com/ionic-team/ionic-native 2021-06-29 15:22:36 +02:00
Daniel Sogl
0e3304e00e 5.34.0 2021-06-29 15:22:06 +02:00
Daniel Sogl
e2c7c93fed chore(GitHub): remove dependabot action 2021-06-29 15:21:04 +02:00
Daniel Sogl
3fcaed8c46 chore(package): bump deps 2021-06-29 15:19:46 +02:00
Daniel Sogl
83cb98f115 refactor(paytabs): run prettier 2021-06-29 15:19:01 +02:00
Daniel Sogl
f64b67310a refactor(checkout): run prettier 2021-06-29 15:18:48 +02:00
Tereza Jurić
944d25147f fix(mobile-messaging): revision of optional parameters (#3667) 2021-06-29 13:45:10 +02:00
Felipe Lopes
4f13426a6d feat(branch-io): add sendBranchEvent method; deprecated sendCommerceEvent (#3675) 2021-06-29 13:43:59 +02:00
Tim
c5d606633e fix(android-full-screen): add correct return type (#3677)
`isImmersiveModeSupported` returns a boolean in the [android code](https://github.com/mesmotronic/cordova-plugin-fullscreen/blob/master/src/android/com/mesmotronic/plugins/FullScreenPlugin.java#L129), so it also should here.
2021-06-29 13:43:44 +02:00
Mohamed Adly
9dd719bb07 feat(paytabs): add plugin (#3678)
* add paytabs plugin wrapper

* added comments and examples
2021-06-29 13:43:09 +02:00
Abdelrahman Iaaly
0dcbace822 feat(checkout): add plugin (#3687) 2021-06-29 13:40:14 +02:00
Philip Cesar Garay
383a88463a feat(in-app-purchase-2): added manageBilling method (#3690) 2021-06-29 13:39:20 +02:00
Krystof Celba
5a42e8cadf fix(smartlook): fix SmartlookResetSession.resetUser type to boolean (#3692) 2021-06-29 13:39:05 +02:00
Daniel Sogl
f19ddc7cde chore(github): add dependabot action 2021-06-21 13:41:17 +02:00
jcesarmobile
7736ca7747 chore: Update app-rate types (#3680) 2021-06-09 10:09:26 +02:00
Daniel Sogl
21e8811ea9 5.33.1 2021-05-28 17:41:47 +02:00
Daniel Sogl
14f900bbad chore(package): bump webpack 2021-05-28 17:37:28 +02:00
Daniel Sogl
0074f6fd47 chore(ci): ignore circle 2021-05-28 17:18:18 +02:00
Daniel Sogl
ae0088d53b chore(package): bump ts-node 2021-05-28 17:17:50 +02:00
Daniel Sogl
addfb065eb chore(package): bump jest 2021-05-28 17:15:20 +02:00
Daniel Sogl
e1747d9c51 chore(package): bump deps 2021-05-28 17:11:44 +02:00
Daniel Sogl
f1c7afd583 5.33.0 2021-05-11 08:22:23 +02:00
Daniel Sogl
8d8608bbfa chore(package): bump deps 2021-05-11 08:21:55 +02:00
Srinidhi
b2da307837 fix(unvired-cordova-sdk): Update the return type for startDiscoveryService api (#3647)
* feat(unvired-cordova-sdk): support login via email

* fix(unvired-cordova-sdk): return typed promise object for user settings

* fix(unvired-cordova-sdk): change return type to string for guid()

* doc(unvired-cordova-sdk): doc update

* doc(unvired-cordova-sdk): update doc

* feat(unvired-cordova-sdk): add support for metadata JSON

* doc(unvired-cordova-sdk): update doc

* doc(unvired-cordova-sdk): update doc

* feat(unvired-cordova-sdk): add methods to get and set log level

* fix(unvired-cordova-sdk): update the return type for getLog()

* feat(unvired-cordova-sdk): return platform name

* feat(unvired-cordova-sdk): add method to get log file path

* feat(unvired-cordova-sdk): test push notifications

* fix(unvired-cordova-sdk): define return for logRead

* doc(unvired-cordova-sdk): remove mobile only restriction for some apis

* feat(unvired-cordova-sdk): add new property containing HTTP status code.

* feat(unvired-cordova-sdk): add new functions to lock & unlock sending of data

* fix(unvired-cordova-sdk): update the return type for lock and unlock functions.

* fix(unvired-cordova-sdk): change the return type for lockDataSender api

* fix(unvired-cordova-sdk): fix the data type for ResultType and OutboxLockStatus

* doc(unvired-cordova-sdk): Update doc

* doc(unvired-cordova-sdk): Update doc

* feat(unvired-cordova-sdk): Added new notification type

* feat(unvired-cordova-sdk): delete outbox item based on lid

* fix(unvired-cordova-sdk): Update doc

* doc(unvired-cordova-sdk): Update doc for userSettings()

* feat(unvired-cordova-sdk): add new discovery api

* fix(unvired-cordova-sdk): rename the property

* doc(unvired-cordova-sdk): Doc update

* fix(unvired-cordova-sdk): Update the return type for startDiscoveryService api

* doc(unvired-cordova-sdk): Rename the loginParameter languageCode to loginLanguage.

* changes after doing npm install

Co-authored-by: Srinidhi Anand Rao <srinidhi.rao@unvired.io>
2021-05-11 08:06:47 +02:00
Nandan B N
da4ce96be4 feat(ble): update with setPin to allow set device pin (#3652) 2021-05-11 08:06:11 +02:00
Noah Cooper
826f8085a4 feat(facebook): add new methods (#3654)
* Add new methods

* Update reauthorizeDataAccess response type
2021-05-11 08:05:45 +02:00
MaximBelov
c05b3e9672 feat(local-backup): add plugin (#3656) 2021-05-11 08:05:18 +02:00
MaximBelov
575229412b feat(restart): add plugin (#3657) 2021-05-11 08:04:58 +02:00
MaximBelov
065e80cccf feat(background-upload): add INITIALIZED state (#3658) 2021-05-11 08:03:31 +02:00
MaximBelov
50f8a452ad feat(system-alert-window-permission): add plugin (#3659) 2021-05-11 08:03:00 +02:00
MaximBelov
443515582b feat(branch-io): add initSessionWithCallback method (#3660) 2021-05-11 08:02:23 +02:00
dependabot[bot]
380a7f77d7 chore(deps): bump ssri from 6.0.1 to 6.0.2 (#3653)
Bumps [ssri](https://github.com/npm/ssri) from 6.0.1 to 6.0.2.
- [Release notes](https://github.com/npm/ssri/releases)
- [Changelog](https://github.com/npm/ssri/blob/v6.0.2/CHANGELOG.md)
- [Commits](https://github.com/npm/ssri/compare/v6.0.1...v6.0.2)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-05-11 08:01:31 +02:00
dependabot[bot]
96162c07df chore(deps): bump hosted-git-info from 2.8.8 to 2.8.9 (#3664)
Bumps [hosted-git-info](https://github.com/npm/hosted-git-info) from 2.8.8 to 2.8.9.
- [Release notes](https://github.com/npm/hosted-git-info/releases)
- [Changelog](https://github.com/npm/hosted-git-info/blob/v2.8.9/CHANGELOG.md)
- [Commits](https://github.com/npm/hosted-git-info/compare/v2.8.8...v2.8.9)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-05-11 08:01:16 +02:00
dependabot[bot]
a2511f5994 chore(deps): bump handlebars from 4.7.6 to 4.7.7 (#3663)
Bumps [handlebars](https://github.com/wycats/handlebars.js) from 4.7.6 to 4.7.7.
- [Release notes](https://github.com/wycats/handlebars.js/releases)
- [Changelog](https://github.com/handlebars-lang/handlebars.js/blob/master/release-notes.md)
- [Commits](https://github.com/wycats/handlebars.js/compare/v4.7.6...v4.7.7)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-05-11 08:00:57 +02:00
Daniel Sogl
4d53d6d720 5.32.1 2021-04-15 22:48:12 +02:00
Daniel Sogl
3450399552 chore(package): bump deps 2021-04-15 22:47:57 +02:00
Hans Krywalsky
16fee2268a fix(network): onChange no longer causes error (#3651)
closes #3649
2021-04-15 22:42:29 +02:00
Daniel Sogl
6c99c3be03 5.32.0 2021-04-05 23:41:43 +02:00
Daniel Sogl
9b2374b3bc chore(package): bump deps 2021-04-05 23:41:28 +02:00
Laurent Goudet
b4227f2114 fix(build): publish Node (server) friendly bundles (#3483)
Co-authored-by: Daniel Sogl <mytechde@outlook.com>
2021-04-05 23:38:19 +02:00
Uglješa Erceg
0932e113b2 feat(adjust): add missing wrappers for cordova api (#3528)
* feat(adjust): add missing wrappers for cordova api

* feat(adjust): add missing wrappers for Adjust Cordova v4.26.0 API
2021-04-05 23:35:22 +02:00
Olyster
bbb96ed765 feat(sqlite):add androidDatabaseLocation Support (#3564)
* Update index.ts

* Update index.ts

Fix aterisk alignment to pass test
2021-04-05 23:34:28 +02:00
timkovik
31ee7efc22 feat(network): update Network plugin (#3608)
Extends onChange Observable with types of connection to which it changed
2021-04-05 23:33:36 +02:00
sertal70
2f69dd88cb feat(shortcuts-android): add cordova-plugin-shortcuts-android (#3609)
Co-authored-by: Sergio Talente <sergio@soundsofthings.com>
2021-04-05 23:32:58 +02:00
Luca Pawlik
f32da73a87 fix(bluetooth-le): add missing status type value and add missing (optional) address property to NotifyParams interface (#3613) 2021-04-05 23:32:25 +02:00
John Borges
cc79a1edb7 refactor(keychain-touch-id): more specific return types (#3615)
* chore: fixing typescript return types

* refactor(keychain-touch-id): more specific return types
2021-04-05 23:31:59 +02:00
Dominik Schwank
4fb07fa809 fix(app-rate): add missing types for onButtonClicked callback (#3616) 2021-04-05 23:31:43 +02:00
John Borges
3d7b777b19 feat(plugin): add MS App Center shared plugin (#3618)
* feat(plugin): add MS App Center shared plugin

* docs(app-center-shared): add incompatible doc
2021-04-05 23:31:29 +02:00
John Borges
2cb5f5c010 feat(plugin): add MS App Center LowMemory plugin (#3619)
* feat(plugin): add MS App Center LowMemory plugin

* refactor(app-center-low-memory): plugin decorator
2021-04-05 23:31:14 +02:00
Nico Lueg
46d0cecb27 feat(in-app-purchase-2): adds typings for transaction (#3621) 2021-04-05 23:30:53 +02:00
Sebastiaan Pasma
ca190db829 feat(plugin): Text to Speech Advanced (#3627)
* Text to speech advanced plugin

* Add @interface

* docs update

* jsdoc fix

* jsdoc fix
2021-04-05 23:30:28 +02:00
Noel De Martin
d698d5985b feat(network): declare connection enum with strings(#3630) 2021-04-05 23:30:07 +02:00
Adam Duren
8dcb6be4ea fix(in-app-purchase-2): fix typings for refresh (#3632)
Fixes the typings for the return value of `refresh` as described [here](https://github.com/j3k0/cordova-plugin-purchase/blob/dd6bf6f/doc/api.md#return-value-3)
2021-04-05 23:29:27 +02:00
Srinidhi
158bf637cd fix(unvired-cordova-sdk): changes to the property names and updated documentation (#3633)
* feat(unvired-cordova-sdk): support login via email

* fix(unvired-cordova-sdk): return typed promise object for user settings

* fix(unvired-cordova-sdk): change return type to string for guid()

* doc(unvired-cordova-sdk): doc update

* doc(unvired-cordova-sdk): update doc

* feat(unvired-cordova-sdk): add support for metadata JSON

* doc(unvired-cordova-sdk): update doc

* doc(unvired-cordova-sdk): update doc

* feat(unvired-cordova-sdk): add methods to get and set log level

* fix(unvired-cordova-sdk): update the return type for getLog()

* feat(unvired-cordova-sdk): return platform name

* feat(unvired-cordova-sdk): add method to get log file path

* feat(unvired-cordova-sdk): test push notifications

* fix(unvired-cordova-sdk): define return for logRead

* doc(unvired-cordova-sdk): remove mobile only restriction for some apis

* feat(unvired-cordova-sdk): add new property containing HTTP status code.

* feat(unvired-cordova-sdk): add new functions to lock & unlock sending of data

* fix(unvired-cordova-sdk): update the return type for lock and unlock functions.

* fix(unvired-cordova-sdk): change the return type for lockDataSender api

* fix(unvired-cordova-sdk): fix the data type for ResultType and OutboxLockStatus

* doc(unvired-cordova-sdk): Update doc

* doc(unvired-cordova-sdk): Update doc

* feat(unvired-cordova-sdk): Added new notification type

* feat(unvired-cordova-sdk): delete outbox item based on lid

* fix(unvired-cordova-sdk): Update doc

* doc(unvired-cordova-sdk): Update doc for userSettings()

* feat(unvired-cordova-sdk): add new discovery api

* fix(unvired-cordova-sdk): rename the property

* doc(unvired-cordova-sdk): Doc update

Co-authored-by: Srinidhi Anand Rao <srinidhi.rao@unvired.io>
2021-04-05 23:29:10 +02:00
Fedello
9b7db588a1 feat(power-optimization): plugin initial wrapper (#3642)
* feat(power-optimization):  plugin initial wrapper

* fix(power-optimization): Sync methods
2021-04-05 23:28:39 +02:00
aboedo
5d71d0d2bb feat(purchases): bump cordova-plugin-purchases from 2.0.0 to 2.1.1 (#3639)
* feat(purchases): bump cordova-plugin-purchases from 2.0.0 to 2.1.0

* bump version number to 2.1.1
2021-04-05 23:28:23 +02:00
dependabot[bot]
c6ad5e41ff chore(deps): bump elliptic from 6.5.3 to 6.5.4 (#3635)
Bumps [elliptic](https://github.com/indutny/elliptic) from 6.5.3 to 6.5.4.
- [Release notes](https://github.com/indutny/elliptic/releases)
- [Commits](https://github.com/indutny/elliptic/compare/v6.5.3...v6.5.4)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-04-05 23:28:08 +02:00
Philip Cesar Garay
b8de7f0721 feat(preview-any-file): add new methods for preview-any-file cordova (#3643)
* feat(adjust): add missing wrappers for cordova api

* feat(adjust): add missing wrappers for cordova api
2021-04-05 23:27:56 +02:00
dependabot[bot]
e5f710c8bb chore(deps): bump y18n from 3.2.1 to 3.2.2 (#3645)
Bumps [y18n](https://github.com/yargs/y18n) from 3.2.1 to 3.2.2.
- [Release notes](https://github.com/yargs/y18n/releases)
- [Changelog](https://github.com/yargs/y18n/blob/master/CHANGELOG.md)
- [Commits](https://github.com/yargs/y18n/commits)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-04-05 23:27:23 +02:00
Daniel Sogl
239ae32ad3 5.31.1 2021-01-23 18:53:33 +01:00
Daniel Sogl
f7a3c7127a fix(build): add correct build script typings
Co-Authored-By: Daniel Sogl <mytechde@outlook.com>
2021-01-23 18:53:12 +01:00
Daniel Sogl
80a537c0db 5.31.0 2021-01-23 18:43:43 +01:00
Daniel Sogl
2ae986727a Merge branch 'master' of https://github.com/ionic-team/ionic-native 2021-01-23 18:43:24 +01:00
Daniel Sogl
7a4df59189 docs(android-notch): adjust example
Co-Authored-By: Daniel Sogl <mytechde@outlook.com>
2021-01-23 18:43:16 +01:00
Daniel Sogl
337bba62c5 Delete rebase.yml 2021-01-23 18:42:09 +01:00
Daniel Sogl
a96faf1378 chore(package): upgrade to angular 11
BREAKING CHANGE: ionic-native now requires at least Angular 10 with ts-lib 2.0

Co-Authored-By: Daniel Sogl <mytechde@outlook.com>
2021-01-23 18:33:36 +01:00
Daniel Sogl
0467787085 chore(package): bump deps 2021-01-23 18:21:10 +01:00
Hans Krywalsky
0efa33f257 feat(advanced-http): duplicate methods sync to be able to abort requests (#3575)
* initial

* finish http-changes
2021-01-23 18:17:45 +01:00
Stéphane JAIS
182b403f69 feat(wonderpush): remove isReady method. (#3580)
Co-authored-by: Stéphane JAIS <stephane@wonderpush.com>
2021-01-23 18:17:11 +01:00
Sebastiaan Pasma
ddd269e7ab feat(in-app-purchase-2): add redeem() for opening redeem code dialog in iOS (#3581) 2021-01-23 18:16:58 +01:00
capc0
6b18c3d061 fix(launch-navigator): enableGeolocation and enableGeocoding typings (#3584)
based of https://github.com/dpa99c/phonegap-launch-navigator/blob/master/uk.co.workingedge.phonegap.plugin.launchnavigator.d.ts

Co-authored-by: Daniel Sogl <mytechde@outlook.com>
2021-01-23 18:16:34 +01:00
Olga Koroleva
bd8fbb3e1f feat(mobile-messaging): add Lists and date time for customAttributes (#3586) 2021-01-23 18:15:05 +01:00
weichunlai
3d1a73ebcb refactor(blink) id by adding blink id recognizer(#3555) (#3590) 2021-01-23 18:14:46 +01:00
CrisPRuz
96890c7b92 feat(android-notch): add cordova plugin wrapper (#3592)
* feat(android-notch): cordova plugin wrapper

* Update index.ts

Co-authored-by: Cristina <cape@gft.com>
Co-authored-by: Daniel Sogl <daniel@sogls.de>
2021-01-23 18:13:09 +01:00
Niklas Merz
26fd76dad0 fix(launchnavigator): make appSelection accessible (#3594) 2021-01-23 18:12:30 +01:00
capc0
72c99603db fix(firebase-messaging): adjust deleteToken/removeToken signature
fix token remove function name according to https://github.com/chemerisuk/cordova-plugin-firebase-messaging#deletetoken
2021-01-23 18:12:12 +01:00
Jonathan Fernandez
e7bc1b6709 feat(firebase-authentication): add signInWithApple method (#3597) 2021-01-23 18:11:26 +01:00
Evgeniy
3e92f64484 feat(app-rate): update plugin functions (#3598)
* cordova-plugin-apprate

* Update index.ts
2021-01-23 18:11:14 +01:00
dependabot[bot]
de6dee7de4 chore(deps): bump node-notifier from 8.0.0 to 8.0.1 (#3599)
Bumps [node-notifier](https://github.com/mikaelbr/node-notifier) from 8.0.0 to 8.0.1.
- [Release notes](https://github.com/mikaelbr/node-notifier/releases)
- [Changelog](https://github.com/mikaelbr/node-notifier/blob/v8.0.1/CHANGELOG.md)
- [Commits](https://github.com/mikaelbr/node-notifier/compare/v8.0.0...v8.0.1)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-01-23 18:10:40 +01:00
aboedo
bed8797a60 feat(purchases): bump cordova-plugin-purchases from 1.3.2 to 2.0.0 (#3601) 2021-01-23 18:10:31 +01:00
Hans Krywalsky
b4f0f07064 feat(facebook): add setAutoLogAppEventsEnabled method (#3606) 2021-01-23 18:10:13 +01:00
Noah Cooper
e4b171930d feat(facebook): update api and logPurchase methods to include additional arguments(#3607) 2021-01-23 18:09:57 +01:00
Noah Cooper
4a796cafe9 refactor(facebook): use cordova-plugin-facebook-connect (#3603) 2021-01-19 12:50:07 +01:00
dependabot[bot]
2950ff14d7 chore(deps): bump highlight.js from 10.1.2 to 10.4.1 (#3588)
Bumps [highlight.js](https://github.com/highlightjs/highlight.js) from 10.1.2 to 10.4.1.
- [Release notes](https://github.com/highlightjs/highlight.js/releases)
- [Changelog](https://github.com/highlightjs/highlight.js/blob/master/CHANGES.md)
- [Commits](https://github.com/highlightjs/highlight.js/compare/10.1.2...10.4.1)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2020-12-11 11:49:37 +01:00
dependabot[bot]
376501ef7e chore(deps): bump ini from 1.3.5 to 1.3.7 (#3595)
Bumps [ini](https://github.com/isaacs/ini) from 1.3.5 to 1.3.7.
- [Release notes](https://github.com/isaacs/ini/releases)
- [Commits](https://github.com/isaacs/ini/compare/v1.3.5...v1.3.7)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2020-12-11 11:49:19 +01:00
Daniel
6b468662b6 5.30.0 2020-11-20 23:54:23 +01:00
Daniel Sogl
a209c61547 chore(package): bump deps 2020-11-20 23:54:04 +01:00
Hans Krywalsky
07d7ace97d feat(dfu-update): add DfuUpdate Plugin Wrapper (#3514)
* feat(dfu-update): add DfuUpdate Plugin Wrapper

* repo url changed

* updateFirmware options are now presented via Object

* import fixed
2020-11-19 08:40:46 +01:00
MaximBelov
13f6da69ef feat(background-upload): add plugin (#3539)
* feat(background-upload): add plugin

* fix(background-upload): update usage
2020-11-19 08:40:22 +01:00
rajgoenka
bb1064225d feat(CustomUiSDK): add plugin for Paytm Custom UI SDK (#3546)
* added custom-uisdk index file

* feat(CustomUiSDK): add plugin for Paytm Custom UI SDK

* removed template generated comments and added ngx at the end to the import
2020-11-19 08:40:00 +01:00
agarwalnaveen22
78e92422ab feat(multiple-document-picker): add plugin (#3551)
* feat(multiple-document-picker): add plugin

* removed package json related changes
2020-11-19 08:39:32 +01:00
Hans Krywalsky
46853b4212 feat(core): add methodName to Cordova Decorator (#3558)
closes #3557
2020-11-19 08:38:39 +01:00
František Spurný
f71b65d6a7 feat(smartlook): update to 1.6.0 (#3562) 2020-11-19 08:38:04 +01:00
amit-kremer93
e486cfd9bf feat(AppsFlyer): update to 6.x.x (#3563)
* align with AppsFlyer Cordova plugin V6

* Update index.ts

Co-authored-by: Daniel Sogl <daniel@sogls.de>
2020-11-19 08:37:36 +01:00
Tomás Novau
7897f28d26 Update index.ts (#3565)
Adding to README.md instructions for capacitor support on Android.
2020-11-19 08:36:12 +01:00
aboedo
0f197ad9fc feat(purchases): update to plugin version 1.3.2 (#3566) 2020-11-19 08:35:49 +01:00
Eric Gopak
d7c6f8628d feat(firebase-dynamic-links): Add missing method getDynamicLink() (#3567) 2020-11-19 08:35:29 +01:00
Rubén Alonso Silvestre
af114f48e4 feat(firebase-vision): add image labelling (#3569)
* feat(firebase-vision): add image labelling

* style(firebase-vision): update asterisks to pass lint

* fix(firebase-vision): fix interfaces
2020-11-19 08:35:04 +01:00
adarsh-chaudhary
fd0cddc9d0 feat(AllInOneSDK): add check to restrict app invocation (#3570)
* feat(AllInOneSDK): add plugin for Paytm All-in-One SDK

* feat(all-in-one-sdk): add check to restrict app invocation
2020-11-19 08:34:45 +01:00
Hans Krywalsky
b3d5baa46e feat(bluetooth-le): Allow specifying transport mode for Android (#3571) 2020-11-19 08:34:14 +01:00
MaximBelov
68d245ef2c feat(intercom): added displayCarousel, displayArticle, setBottomPadding (#3572) 2020-11-19 08:33:45 +01:00
Aleksandar Noveski
4dda714761 feat(cordova-plugin-imap) initial 'native wrapper' commit (#3573) 2020-11-19 08:33:16 +01:00
Peter Wilkniss
ba39f7e9f2 fix(clevertap): remove duplicated methods
Closes #3517. Closes #3491
2020-11-16 13:15:17 -05:00
Daniel Sogl
52da729b8c chore(ci): use node 14.x 2020-11-05 13:27:38 +01:00
Daniel Sogl
46e0d6d396 chore(ci): use node 14.x 2020-11-05 13:26:49 +01:00
Daniel Sogl
5fc4ceada4 chore(ci): use node 14.x 2020-11-05 13:26:23 +01:00
Daniel Sogl
f04f1f479f 5.29.0 2020-10-16 19:29:23 +02:00
Daniel Sogl
da72795081 chore(package): bump deps 2020-10-16 19:25:41 +02:00
Sidnei Luiz Becker
f3ce3c4930 feat(social-sharing): Add missing method shareViaWhatsAppToPhone(#3513) 2020-10-16 19:22:25 +02:00
Ryan Gibbs
5a77eabf76 feat(adjust): updating to match official typings (#3523) 2020-10-16 19:21:38 +02:00
Pawel86400
99e6a5398f feat(fingerprint-air): add new functions (#3530)
* Add the new "registerBiometricSecret" and "loadBiometricSecret" methods for 'fingerprint-aio' plugin

* Update the response type for `loadBiometricSecret`

* Add new error msg for Secret not Found
2020-10-16 19:21:10 +02:00
Konstantin
14ec32b83c feat(mobile-messaging): add new fields to Message type and new method to display chat view (#3531)
Co-authored-by: Konstantin Latypov <Konstantin.Latypov@infobip.com>
2020-10-16 19:20:20 +02:00
Matt Barr
7b0195bdf4 fix(http): add missing type to serialiser property (#3532)
cordova http API allows for 'raw' serializer, and in fact 'raw' is referenced in several places in this file. It is even possible to set the serializer using `setDataSerializer('raw')`

This serializer is required for sending binary data.
2020-10-16 19:19:49 +02:00
adarsh-chaudhary
1f48c31a8e feat(all-in-one-sdk): add plugin for Paytm All-in-One SDK (#3536) 2020-10-16 19:19:05 +02:00
Hans Krywalsky
c62c137723 fix(diagnostics): locationAccuracyAuthorization Property missing in build (#3540) 2020-10-16 19:17:36 +02:00
Marius C. Bolik
3340e9a694 feat(appsfyler): add property waitForATTUserAuthorization to AppsflyerOptions (#3541) 2020-10-16 19:17:16 +02:00
Rodolfo Patane
4766ec7a35 fix(music-controls): update associated cordova plugin (#3543)
The original project message in github.com:

No longer maintained.
Gavin Henry (ghenry22) has been maintaining a fork that should be updated and working better than this one. Please use his fork.
2020-10-16 19:15:50 +02:00
MaximBelov
a37ea81488 chore(file-transfer): undeprecate (#3542) 2020-10-16 19:15:34 +02:00
aboedo
b5f7f952df feat(purchases): update to plugin version 1.3.0 (#3547) 2020-10-16 19:13:20 +02:00
David
5d1b5d5fda feat(firebase-x): add setLanguageCode method for auth (#3548)
Co-authored-by: david <david@192.168.1.36>
2020-10-16 19:12:52 +02:00
Erik
b2e82bea62 fix(in-App-purchase2) Correct type definition for date fields (#3549) 2020-10-16 19:09:38 +02:00
Pataar
d2a6b13059 docs(luxand): improve docs (#3550) 2020-10-16 19:09:13 +02:00
jcesarmobile
ce9db34e24 fix(in-app-purchase-2): change in-app-purchase-2 plugin id (#3553)
it was renamed from cc.fovea.cordova.purchase to cordova-plugin-purchase
2020-10-16 19:07:56 +02:00
Ville Raikko
36ae7dcad9 firebase-x: Add missing function reloadCurrentUser() (#3527) 2020-09-10 08:28:32 -04:00
Nicholas Hyatt
adca021f39 Merge pull request #3519 from ionic-team/remove-premier-apple-wallet-cta
remove the apple wallet premier decorator
2020-08-28 10:03:29 -05:00
Nicholas Hyatt
308e0f3f33 remove the apple wallet premier decorator 2020-08-28 09:59:25 -05:00
Daniel Sogl
8ce71132b0 5.28.0 2020-08-14 17:56:09 +02:00
Daniel Sogl
f6bf48d9b2 chore(package): bump deps 2020-08-14 17:53:47 +02:00
David Boho
579170a99e fix(geolocation): #3303 geolocation watchPosition return type (#3470)
* fix #3303 geolocation watchPosition return type

* watchPosition align docs
2020-08-14 17:38:14 +02:00
MohammadAli Zarei Matin
b0ffb0ec4a fix(metrix): change firebase api (#3473) 2020-08-14 17:37:21 +02:00
Cristiano Fromagio
eec3fec7ff feat(onesignal): add in-app messages methods (#3481) 2020-08-14 17:35:32 +02:00
Cesar de la Vega
a010bb1869 feat(purchases): update to plugin version 1.2.0 (#3482)
* updates to 1.2.0

* fixes linter errors
2020-08-14 17:35:06 +02:00
Aditya Sharma
26d10ef633 feat(clover-go): add support to pass signature and void payment (#3485)
Added support to pass signature incase the card payment require signature for authorisation
Added support to void any payment
Removed iOS platform for now as it will be supported in coming releases
2020-08-14 17:34:04 +02:00
Don Coleman
d7ccd454fb feat(nfc): update to phonegap-nfc@1.2.0 (#3486) 2020-08-14 17:33:43 +02:00
Nico Lueg
fab667f22c removed interface that doesn't apply to the api (#3487) 2020-08-14 17:33:22 +02:00
Hans Krywalsky
ccca644134 feat(diagnostics): Add support for new iOS14-LocationAccuracy Permission (#3490)
* feat(diagnostics): add support for new iOS14-LocationAccuracy Permission

* linting fixed
2020-08-14 17:32:47 +02:00
陈龙明
b4462d5e6c fix(ble): add missing method "isLocationEnabled" (#3495) 2020-08-14 17:32:01 +02:00
František Spurný
5aa5757795 feat(smartlook): update to 1.5.2 (#3498) 2020-08-14 17:31:40 +02:00
Carl Poole
85eaf92e58 docs(android): badges fyi for android docs (#3502) 2020-08-14 17:31:22 +02:00
Stefanic
1ffad79320 fix(ibeacon): undefined locationManager (#3505)
Change some cordova.plugins calls to window.cordova.plugins to
prevent 'Cannot read property 'locationManager' of undefined'
2020-08-14 17:31:03 +02:00
deniszpua
44f86f3ce5 fix(hyper-track): update to the modern sdk (#3508)
* Lint warnings fixed

* Misleading and unnecessary log statement removed
2020-08-14 17:30:41 +02:00
CodeTroopers
25bf7437b5 fix(ble) #3506 : leave a chance to client to reorder sequences (#3509)
* Fix #3506

* Update documenation
2020-08-14 17:30:18 +02:00
Matt Netkow
f413dab4e2 docs(spotify): Spotify Auth & Firebase Crashlytics 2020-08-10 09:10:32 -05:00
Matt Netkow
68c11192cd update 2020-08-10 09:02:32 -05:00
Daniel Sogl
5ec63841c3 chore(deps-dev): bump lodash from 4.17.15 to 4.17.19 (#3489)
Bumps [lodash](https://github.com/lodash/lodash) from 4.17.15 to 4.17.19.
- [Release notes](https://github.com/lodash/lodash/releases)
- [Commits](https://github.com/lodash/lodash/compare/4.17.15...4.17.19)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2020-08-07 10:47:30 +02:00
dependabot[bot]
a9294ecb51 chore(deps): bump elliptic from 6.5.2 to 6.5.3 (#3496)
Bumps [elliptic](https://github.com/indutny/elliptic) from 6.5.2 to 6.5.3.
- [Release notes](https://github.com/indutny/elliptic/releases)
- [Commits](https://github.com/indutny/elliptic/compare/v6.5.2...v6.5.3)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2020-08-07 10:47:17 +02:00
dependabot[bot]
c12aa6c9fa chore(deps-dev): bump lodash from 4.17.15 to 4.17.19
Bumps [lodash](https://github.com/lodash/lodash) from 4.17.15 to 4.17.19.
- [Release notes](https://github.com/lodash/lodash/releases)
- [Commits](https://github.com/lodash/lodash/compare/4.17.15...4.17.19)

Signed-off-by: dependabot[bot] <support@github.com>
2020-07-15 21:52:19 +00:00
Daniel Sogl
9f27d54f0e 5.27.0 2020-06-23 19:09:13 +02:00
Daniel Sogl
343cf7356f chore(package): bump deps 2020-06-23 19:06:37 +02:00
Konstantinos Tsanakas
7c95e66021 fix(camera-preview): tapFocus (#3467) 2020-06-23 19:03:42 +02:00
Edem Morny
9bf1eafc4e feat(vibes): add support for inbox messaging (#3466) 2020-06-23 19:03:09 +02:00
Knut Erik Langdahl
7b998b9644 feat(build-info): add plugin (#3465)
* feat(build-info): add plugin

* Update index.ts

Co-authored-by: Knut Erik Langdahl <knut.erik.langdahl@bekk.no>
Co-authored-by: Daniel Sogl <daniel@sogls.de>
2020-06-23 19:02:12 +02:00
Praveen Challa
7ae1df2489 feat(camera-preview): add record video functions (#3463)
* Update index.ts

Added video instance

* Fixed lints

Fixed lints
2020-06-23 19:01:14 +02:00
Miquel
b2afc131ca feat(admob): add interfaces and method typings (#3461)
* Update docs

* feat(cordova-admob) add interfaces and methods

Co-authored-by: Miquel Martín <miquel.martin@appfeel.com>
2020-06-23 19:00:31 +02:00
Victor Dias
32203e9ac1 feat(firebase-x): add missing methods from plugin, incl. authenticateUserWithApple (#3458) 2020-06-23 19:00:06 +02:00
Victor Dias
66896b2632 fix(firebase-x): indicate callback methods to verifyPhoneNumber (#3457)
- and remove callbacks methods on verifyNumber and signInWithCredential functions
2020-06-23 18:59:45 +02:00
Calum Murray
fe21b5b97c fix(app-rate): Add missing "openUrl" property to AppRatePreferences object (#3456) 2020-06-23 18:59:02 +02:00
Calum Murray
40b9295de6 fix(launch-review): Allow rating() callback to be invoked multiple times (#3455) 2020-06-23 18:58:22 +02:00
Daniel Sogl
2923504c7d chore(GitHub): pass trough GitHub variables 2020-06-11 19:30:09 +02:00
Daniel Sogl
030a78fc1b chore(docs): use GitHub variables 2020-06-11 19:27:38 +02:00
Daniel Sogl
aa535844b0 chore(GitHub): cache ionic site files 2020-06-11 18:59:40 +02:00
Daniel Sogl
be3f73a921 chore(GitHub): run docs deploy script on master 2020-06-11 18:53:25 +02:00
Daniel Sogl
809d664cf4 chore(GitHub): run docs prepare script on master 2020-06-11 18:47:26 +02:00
Daniel Sogl
4f2f8894d5 chore(GitHub): run git config script 2020-06-11 18:41:20 +02:00
philkry
742ff65596 feat(ios-aswebauthenticationsession): add plugin (#3421)
* feat(ios-aswebauthenticationsession): add plugin

* Update index.ts

* returning string instead of any

Co-authored-by: Daniel Sogl <daniel@sogls.de>
2020-06-11 18:14:21 +02:00
mcelikdev
79c3284434 feat(chooser): add getFileMetadata (#3425) 2020-06-11 18:13:34 +02:00
Rubén Alonso Silvestre
1aacb487a4 feat(firebase-vision): add barcodeDetector (#3426) 2020-06-11 18:10:08 +02:00
André Tissot
ef17dc5d07 feat(fcm): add requestPushPermissionIOS and createNotificationChannelAndroid functions (#3430) 2020-06-11 18:09:47 +02:00
bsorrentino
324334eb28 feat(broadcaster): align plugin API to version 4.1.0 (#3432) 2020-06-11 18:08:35 +02:00
Daniel Zen
389a3fb215 fix(jumio): update plugin reference and source (#3428)
* feat(jumio): add plugin

* Update index.ts

* docs(example & cordova repo)

* remove space at end of plugin name

* Readme description doesn't generate md file properly under certain conditions

Co-authored-by: Daniel Sogl <daniel@sogls.de>
2020-06-11 18:01:55 +02:00
SuryaClevertap
3df35b40ce feat(CleverTap): Update Plugin for Parity Support (#3435)
* feat(clevertap): add CleverTap plugin

* style(clevertap): cleanup stray lint error

* refactor

* feat(clevertap): update for latest CleverTap Cordova plugin

* chore: Update Repo from Ionic Native Repo

* fix: Code Changes for parity SDK-155

* fix: Indentation fixes for SDK-155

* fix: Code Repo fix while updating fork branch

* fix: Remove unnecessary adder .scripts Folder

* fix: Remove unwanted added folder .circleci

* fix: Remove unwanted added File .npmrc

* fix: Revert .Github Folder Changes to as per Ionic-Native master

* fix: Update changes as per ionic-native master

* fix: Code Repo fix while updating fork branch

fix: Remove unnecessary adder .scripts Folder

fix: Remove unwanted added folder .circleci

fix: Remove unwanted added File .npmrc

fix: Revert .Github Folder Changes to as per Ionic-Native master

fix: Update changes as per ionic-native master

Co-authored-by: Peter Wilkniss <peter@clevertap.com>
Co-authored-by: Daniel Sogl <mytechde@outlook.com>
Co-authored-by: Darshan Pania <darshan@clevertap.com>
2020-06-11 18:00:48 +02:00
Keenan Hawekotte
7f0975803f feat(firebase-dynamic-links): Update plugin for parity (#3437)
* Include other methods from cordova-firebase-dynamiclinks plugin

* Remove unnecessary dependency

* Run update to reset package lockfile
2020-06-11 18:00:11 +02:00
Jakob Engelbrecht
dc6e3313bb docs(our): add deprecation warning (#3439) 2020-06-11 17:59:34 +02:00
Frank Noorloos
4575cb6050 docs(mixpanel): add deprecated on identify (#3444) 2020-06-11 17:58:20 +02:00
Victor Dias
191c7a044d fix(firebase-x): add fakeVerificationCode param to verifyPhoneNumber (#3451)
- also fix misspelled timeOutDuration required param
2020-06-11 17:57:55 +02:00
Matt Netkow
46bbf633e4 Add premier and capIncompat metadata to plugins (#3453) 2020-06-11 17:56:34 +02:00
Matt Netkow
1567e8ff2f chore(readme): add community vs enterprise distinction 2020-06-09 10:38:08 -05:00
Daniel Sogl
69117131bd chore(package): bump deps 2020-05-20 09:39:50 +02:00
Daniel Sogl
8f20fc82f3 5.26.0 2020-05-16 14:51:11 +02:00
Daniel Sogl
3ddd672e00 chore(GitHub): add rebase action 2020-05-16 14:47:26 +02:00
Daniel Sogl
0f1cde634f chore(lint): run hook on all files 2020-05-16 14:44:54 +02:00
Daniel Sogl
4338c1c5ed chore(lint): extend prettier rules 2020-05-16 14:44:16 +02:00
Daniel Sogl
511a02d50b refactor(lib): run prettier 2020-05-16 14:40:49 +02:00
Daniel Sogl
f5133c691d feat(lib): add prettier 2020-05-16 14:40:25 +02:00
Daniel Sogl
12606198f6 chore(package): bump deps 2020-05-16 14:31:42 +02:00
Daniel Zen
13a8a6f1d9 feat(jumio): add plugin (#3423)
* feat(jumio): add plugin

* Update index.ts

Co-authored-by: Daniel Sogl <daniel@sogls.de>
2020-05-16 13:41:03 +02:00
Daniel Zen
e59a989fab fix(secure-storage-echo): method is inaccessible when device is not secure #3322 (#3424) 2020-05-16 13:35:54 +02:00
Daniel Sogl
fd8d83a48a chore(deps): bump typedoc to 0.17 2020-05-15 12:23:01 +02:00
Daniel Sogl
1dfd8a017a chore(package): bump deps 2020-05-15 12:13:28 +02:00
Daniel Zen
e715498d33 fix(secure-storage-echo): method is inaccessible when device is not secure #3322 (#3413) 2020-05-15 12:05:14 +02:00
Akshay Dwivedi
809e5ac14d feat(firebase-x): add getCurrentUser (#3389)
* feat(firebase-x): add getCurrentUser

add getCurrentUser method. fixes #3356

* Update index.ts

* resolve merge conflict

* resolve merge conflicts

Co-authored-by: Daniel Sogl <mytechde@outlook.com>
2020-05-15 12:04:15 +02:00
sync667
9892ce7a61 feat(in-app-purchase-2): add update function (#3416)
* feat(in-app-purchase-2): add update

Add update method from plugin. Fixes: #3411

* Trailing fix.

Whitespace removed.
2020-05-15 12:03:37 +02:00
Joshua Sherer
180b665c4b feat(native-view): add plugin (#3418)
* feat(native-view): add plugin

* feat(native-view): add plugin
2020-05-15 12:02:47 +02:00
MohammadAli Zarei Matin
26c912092c feat(metrix): add plugin (#3419) 2020-05-15 12:02:09 +02:00
Daniel Sogl
40e2a2e291 5.25.0 2020-05-05 11:19:34 +02:00
Daniel Sogl
85c3c47998 chore(package): bump deps 2020-05-05 11:16:27 +02:00
Paolo Tesser
825b2d6970 feat(pushape-push): add plugin (#3405) 2020-05-05 11:09:58 +02:00
František Spurný
ea053ccbe6 feat(smartlook): new api methods (#3402) 2020-05-05 11:06:55 +02:00
Alexander Bogdanov
c403330c0a feat(appsflyer): added registerUninstall function (#3401)
* fix(appsflyer): added missing registerUninstall()

According to appsflyer docs, there should be *registerUninstall()* method to allow tracking uninstalls for iOS:

https://github.com/AppsFlyerSDK/appsflyer-cordova-plugin/blob/master/docs/API.md#-registeruninstalltoken-void

* fixed asterisk alignment to pass CI test

* removed whitespace to pass CI test
2020-05-05 11:06:25 +02:00
Rubén Alonso Silvestre
a3d54a34b8 feat(firebase-vision): add plugin (#3400) 2020-05-05 11:04:21 +02:00
dependabot[bot]
3099b8c76c chore(deps): bump jquery from 3.4.1 to 3.5.0 (#3397)
Bumps [jquery](https://github.com/jquery/jquery) from 3.4.1 to 3.5.0.
- [Release notes](https://github.com/jquery/jquery/releases)
- [Commits](https://github.com/jquery/jquery/compare/3.4.1...3.5.0)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2020-05-05 11:03:37 +02:00
ebeling
8eacf8817c fix(bluetooth-le): change reconnect return signature to Observable<DeviceInfo> fixes #3374 (#3394) 2020-05-05 11:03:27 +02:00
Akshay Dwivedi
eceb7ca1fc feat(background-fetch): add taskId to finish method (#3390)
add taskId to finish method in background fetch. fixes #3361
2020-05-05 11:03:03 +02:00
Akshay Dwivedi
3d46715b9c feat(firebase-x): add getId (#3388)
* feat(firebase-x): add getId

add getId to get app instance id. fixes #3378

* Update index.ts
2020-05-05 11:01:26 +02:00
Akshay Dwivedi
e09592d2b9 feat(admob-plus): add setDevMode (#3387)
* feat(admob-plus): add setDevMode

fixes #3384 . add setDevode for admob-plus

* Update index.ts
2020-05-05 11:01:10 +02:00
aalshberi
61bbe3980c fix(firebase-x): return document id (#3386)
* fix for #3385

* adding spaces
2020-05-05 11:00:37 +02:00
Ashaba John
1db0ff741f feat(vibes-push-plugin): add Vibes Push plugin wrapper (#3368) 2020-05-05 10:59:44 +02:00
tatham
a391e37f90 feat(native-storage): add initWithSuiteName (#3365)
* feat(native-storage): add initWithSuiteName

* feat(native-storage): add initWithSuiteName

Co-authored-by: Colin Tatham <colin.tatham@melbournewater.com.au>
2020-05-05 10:59:13 +02:00
Daniel Sogl
3e0b0750d8 5.24.0 2020-04-17 05:32:35 +02:00
Daniel Sogl
b426819f92 chore(package): bump deps 2020-04-17 05:29:57 +02:00
Hitesh Jain
9e2f670d9d feat(usabilla-cordova-sdk): add plugin (#3362)
* feat(usabilla-cordova-sdk): add plugin

* fix(usabilla-cordova-sdk): Added interface for correct response
2020-04-17 05:21:50 +02:00
Don Coleman
8c25d1e311 feat(nfc): update to phonegap-nfc@1.1.1 (#3381) 2020-04-17 05:21:01 +02:00
San Leen
6458640ba7 feat(wechat): add openMiniProgram method (#3380) 2020-04-16 14:11:59 +02:00
Aditya Sharma
be05235a6e feat(clover-go): add CloverGo plugin (#3376)
* feat(clovergo): add CloverGo plugin

* fix(clovergo): remove template comments and added dscription

* fix(clovergo): Remove template comments, empty property and returned response interface

* fix(clovergo): Updated comments with correct returned response interface
2020-04-16 14:10:22 +02:00
Onyemaechi Okafor
83196bc947 feat(shop-checkout): add plugin (#3337)
* feat(plugin): ShopCheckout

* Add typings for returned promises
2020-04-15 21:33:06 +02:00
Kaspar
d2d5a5a96c docs(validateExpiryDate): expMonth param month 0 to 11 (#3349) 2020-04-15 21:30:49 +02:00
xtarx
bb80d00f58 signInWithVerificationId parameter mismatch (#3354)
by.chemerisuk.cordova.firebase.FirebaseAuthenticationPlugin.signInWithVerificationId argument 2 has type java.lang.String, got java.lang.Integer

smsCode has to be string instead of number
2020-04-15 21:29:46 +02:00
waliu
bfee712cdc feat(gao-de-location): update wrapper to match version 2.0.5 (#3358)
* Plug in update to 2.0.5

* Plug in update to 2.0.5
2020-04-15 21:29:07 +02:00
Ales Rosina
83bb4a96f9 fix(in-app-browser): add missing 'no' type (#3359) 2020-04-15 21:26:40 +02:00
Andrew Decker
e1350a2e7e feat(firebase-messaging): add getInstanceId (#3364) 2020-04-15 21:24:04 +02:00
Mark de Groot
96e9b19732 fix(health): HealthQueryOptionsAggregated bucket optional (#3370)
As said in the comment: `if specified, aggregation is grouped an array of "buckets" (windows of time),` the `bucket` field in `HealthQueryOptionsAggregated` should be optional.
2020-04-15 21:21:18 +02:00
Matt Netkow
3e78462163 docs(README): Add Ionic React and Capacitor usage instructions 2020-04-10 09:12:27 -05:00
Solee Choi
47b85a80a9 fix(iamport-cordova): fix data type of card_quota(#3372) 2020-04-09 13:35:49 +02:00
Konstantin
3af9c48f05 feat(MobileMessaging): add support for CustomEvents (#3373)
* feat(MobileMessaging): add methods for CustomEvents support

* fix(MobileMessaging) change customAttributes type

* fix(MobileMessaging): change methods return type

Co-authored-by: Konstantin Latypov <Konstantin.Latypov@infobip.com>
2020-04-09 13:34:19 +02:00
aboedo
739fe89400 feat(purchases): update to the latest plugin version (#3371) 2020-04-09 13:33:33 +02:00
Daniel Sogl
1f3bc1208c 5.23.0 2020-03-22 11:11:50 +01:00
Daniel Sogl
f896440ae2 chore(package): bump deps 2020-03-22 11:09:42 +01:00
kostap13
96e6711776 feat(mobile-messaging): add plugin (#3338)
* feat(MobileMessaging): add MobileMessaging plugin

* Update index.ts

* Update index.ts

Co-authored-by: Konstantin Latypov <Konstantin.Latypov@infobip.com>
Co-authored-by: Daniel Sogl <daniel@sogls.de>
2020-03-22 11:04:09 +01:00
Nick Vahalik
664e257442 feat(in-app-purchase-2): feat(in-app-purchase-2): update types and add getApplicationUsername function (#3320)
* Fixing interface types.

* Adding applicationUsername.
2020-03-22 11:00:42 +01:00
Srinidhi
2d1e2db9cd fix(unvired-cordova-sdk): fix the data type for ResultType and OutboxLockStatus (#3334)
* feat(unvired-cordova-sdk): support login via email

* fix(unvired-cordova-sdk): return typed promise object for user settings

* fix(unvired-cordova-sdk): change return type to string for guid()

* doc(unvired-cordova-sdk): doc update

* doc(unvired-cordova-sdk): update doc

* feat(unvired-cordova-sdk): add support for metadata JSON

* doc(unvired-cordova-sdk): update doc

* doc(unvired-cordova-sdk): update doc

* feat(unvired-cordova-sdk): add methods to get and set log level

* fix(unvired-cordova-sdk): update the return type for getLog()

* feat(unvired-cordova-sdk): return platform name

* feat(unvired-cordova-sdk): add method to get log file path

* feat(unvired-cordova-sdk): test push notifications

* fix(unvired-cordova-sdk): define return for logRead

* doc(unvired-cordova-sdk): remove mobile only restriction for some apis

* feat(unvired-cordova-sdk): add new property containing HTTP status code.

* feat(unvired-cordova-sdk): add new functions to lock & unlock sending of data

* fix(unvired-cordova-sdk): update the return type for lock and unlock functions.

* fix(unvired-cordova-sdk): change the return type for lockDataSender api

* fix(unvired-cordova-sdk): fix the data type for ResultType and OutboxLockStatus

Co-authored-by: Srinidhi Anand Rao <srinidhi.rao@unvired.io>
2020-03-22 10:59:56 +01:00
Daniel Sogl
58ea528ee5 Merge remote-tracking branch 'origin/master' 2020-03-22 10:55:15 +01:00
mkw
5471696664 fix(cordova-firebase-x): updated methods (#3339)
* fixed firebase-x ts file

* formatting

* remove config file

* spacing
2020-03-22 10:55:11 +01:00
mkw
5d768b2b9e fix(cordova-firebase-x) updated methods (#3339)
* fixed firebase-x ts file

* formatting

* remove config file

* spacing
2020-03-22 10:54:58 +01:00
Lucas
a0f91635fc feat(admob-free): add missing config properties (#3344) 2020-03-22 10:54:32 +01:00
Nick Vanselow
7bcbca7696 fix(email-composer): fix error when no mail apps (#3347)
When there are no apps installed that can handle "mail" then the "apps" array is returned as `null` from the plugin. Ensure we don't try to call `length` on `null`.
2020-03-22 10:54:00 +01:00
Daniel Sogl
52fc9f85ad Merge remote-tracking branch 'origin/master' 2020-03-22 10:53:26 +01:00
Miquel
fe89f2bf96 fix(admob): fix interstitialAdId parameter typo (#3348)
Co-authored-by: Miquel Martín <miquel.martin@appfeel.com>
2020-03-22 10:53:12 +01:00
Miquel
a57000a55a Update docs (#3348)
Co-authored-by: Miquel Martín <miquel.martin@appfeel.com>
2020-03-22 10:52:56 +01:00
dependabot[bot]
4091b1b37a chore(deps): bump acorn from 6.4.0 to 6.4.1 (#3345)
Bumps [acorn](https://github.com/acornjs/acorn) from 6.4.0 to 6.4.1.
- [Release notes](https://github.com/acornjs/acorn/releases)
- [Commits](https://github.com/acornjs/acorn/compare/6.4.0...6.4.1)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2020-03-14 12:03:51 +01:00
dependabot[bot]
78c3be4c9b chore(deps-dev): bump minimist from 1.2.0 to 1.2.2 (#3346)
Bumps [minimist](https://github.com/substack/minimist) from 1.2.0 to 1.2.2.
- [Release notes](https://github.com/substack/minimist/releases)
- [Commits](https://github.com/substack/minimist/compare/1.2.0...1.2.2)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2020-03-14 12:03:37 +01:00
Daniel Sogl
8e9575b6aa 5.22.0 2020-02-28 19:03:14 +01:00
Daniel Sogl
83eace835a chore(package): bump deps 2020-02-28 19:02:58 +01:00
Solee Choi
6277d8e997 feat(iamport-cordova): add iamport-cordova plugin on ionic-native (#3285)
* feat(iamport-cordova): add iamport-cordova plugin on ionic-native

* Update index.ts

* document cordova functions specifically

* fix lint error

* add document befroe function declarations

* Update index.ts

Co-authored-by: Daniel Sogl <daniel@sogls.de>
2020-02-28 19:01:23 +01:00
Srinidhi
53213bb57a feat(unvired-cordova-sdk): add new functions to lock and unlock sending of data (#3329)
* feat(unvired-cordova-sdk): support login via email

* fix(unvired-cordova-sdk): return typed promise object for user settings

* fix(unvired-cordova-sdk): change return type to string for guid()

* doc(unvired-cordova-sdk): doc update

* doc(unvired-cordova-sdk): update doc

* feat(unvired-cordova-sdk): add support for metadata JSON

* doc(unvired-cordova-sdk): update doc

* doc(unvired-cordova-sdk): update doc

* feat(unvired-cordova-sdk): add methods to get and set log level

* fix(unvired-cordova-sdk): update the return type for getLog()

* feat(unvired-cordova-sdk): return platform name

* feat(unvired-cordova-sdk): add method to get log file path

* feat(unvired-cordova-sdk): test push notifications

* fix(unvired-cordova-sdk): define return for logRead

* doc(unvired-cordova-sdk): remove mobile only restriction for some apis

* feat(unvired-cordova-sdk): add new property containing HTTP status code.

* feat(unvired-cordova-sdk): add new functions to lock & unlock sending of data

* fix(unvired-cordova-sdk): update the return type for lock and unlock functions.

* fix(unvired-cordova-sdk): change the return type for lockDataSender api
2020-02-28 18:56:54 +01:00
Amine
18bee4e298 fix(fcm): add missing clearAllNotifications, hasPermission and getAPNSToken (#3331)
* fix(fcm): add missing clearAllNotifications

* getAPNSToken method added

New version of `cordova-plugin-fcm-with-dependecy-updated` released: v4.0.0

_“The old FCMPlugin.getToken is focused on retrieving the FCM Token. For the IOS, APNS token can now be retrieved by the new method”_ (Show readme)[https://github.com/andrehtissot/cordova-plugin-fcm-with-dependecy-updated#version-400-12102019]

* hasPermission added

[Show readme.md](https://github.com/andrehtissot/cordova-plugin-fcm-with-dependecy-updated#version-320-16092019)

#### Checking for permissions
Useful for IOS. On android, it will always return `true`.

```javascript
FCMPlugin.hasPermission(function(doesIt){
    // doesIt === true => yes, push was allowed
    // doesIt === false => nope, push will not be available
    // doesIt === null => still not answered, recommended checking again later
    if(doesIt) {
        haveFun();
    }
});
```
# Conflicts:
#	src/@ionic-native/plugins/fcm/index.ts

Co-authored-by: Alexis Caffa <AlexisCaffa@users.noreply.github.com>
2020-02-28 18:56:08 +01:00
Daniel Sogl
7277c0fbe5 5.21.6 2020-02-22 12:36:15 +01:00
Daniel Sogl
b274a70ed9 chore(package): bump deps 2020-02-22 12:32:53 +01:00
Ray Chavez
a8eebb9212 fix(apple-pay): fix PKPaymentRequest must have valid merchantCapabilities in iOS 12 & 13 #3314
add missing IMerchantCapabilities and ISupportedNetworks types
2020-02-22 12:28:03 +01:00
gine
300f75ef92 fix(secure-storage): method is inaccessible when device is not secure #3322 2020-02-22 12:25:59 +01:00
mkw
45218102f3 feat(keychain-touch-id): added userAuthenticationRequired parameter to save method (#3324)
* added userAuthenticationRequired parameter to save method

* fixed whitespace
2020-02-22 12:23:38 +01:00
Daniel Sogl
a9774e07ae 5.21.5 2020-02-12 09:27:31 +01:00
Daniel Sogl
6016568c86 chore(package): compile with angular 9 2020-02-12 09:27:12 +01:00
Mike Hartington
95d402c7f5 5.21.4 2020-02-10 23:56:39 -05:00
Mike Hartington
df5f832664 fix(build): corrects npm publishing task
Ref #3311
2020-02-10 23:50:46 -05:00
Daniel Sogl
6112d724f2 5.21.3 2020-02-10 19:48:42 +01:00
Daniel Sogl
2913a68d8f Revert "chore(package): compile with angular 9"
This reverts commit 2ad03fa89b.
2020-02-10 19:47:23 +01:00
Daniel Sogl
4d346437f0 Revert "chore(package): refresh package-lock"
This reverts commit 4c07af7782.
2020-02-10 19:47:15 +01:00
Daniel Sogl
904455df9e 5.21.2 2020-02-09 18:11:03 +01:00
Daniel Sogl
cac9872796 5.21.1 2020-02-09 12:34:17 +01:00
Daniel Sogl
d4465681cf chore(package): bump deps 2020-02-09 12:31:46 +01:00
Daniel Sogl
fd3a8de693 5.21.0 2020-02-07 18:09:28 +01:00
Daniel Sogl
4c07af7782 chore(package): refresh package-lock 2020-02-07 18:07:07 +01:00
Daniel Sogl
2ad03fa89b chore(package): compile with angular 9 2020-02-07 18:03:59 +01:00
Daniel Sogl
ed37c68990 chore(package): bump jest 2020-02-07 18:00:13 +01:00
Daniel Sogl
66da511526 chore(package): bump deps 2020-02-07 17:59:18 +01:00
chriswatt
817f0d11b9 fix(background-geolocation): change syncThreshold type to number (#3299)
https://github.com/mauron85/cordova-plugin-background-geolocation#API

The syncThreshold parameter type is Number
2020-02-07 17:54:22 +01:00
Cesar de la Vega
c8d3afc91d fix(purchases): update to cordova-plugin-purchases@1.0.4 (#3301) 2020-02-07 17:53:29 +01:00
Srinidhi
3b18135ebf feat(unvired-cordova-sdk): add new property containing HTTP status code (#3302)
* feat(unvired-cordova-sdk): support login via email

* fix(unvired-cordova-sdk): return typed promise object for user settings

* fix(unvired-cordova-sdk): change return type to string for guid()

* doc(unvired-cordova-sdk): doc update

* doc(unvired-cordova-sdk): update doc

* feat(unvired-cordova-sdk): add support for metadata JSON

* doc(unvired-cordova-sdk): update doc

* doc(unvired-cordova-sdk): update doc

* feat(unvired-cordova-sdk): add methods to get and set log level

* fix(unvired-cordova-sdk): update the return type for getLog()

* feat(unvired-cordova-sdk): return platform name

* feat(unvired-cordova-sdk): add method to get log file path

* feat(unvired-cordova-sdk): test push notifications

* fix(unvired-cordova-sdk): define return for logRead

* doc(unvired-cordova-sdk): remove mobile only restriction for some apis

* feat(unvired-cordova-sdk): add new property containing HTTP status code.
2020-02-07 17:52:28 +01:00
Mike Hartington
614ade447f feat(): angular ivy support (#3309)
* init

* cleanup packagelock

* testing

* chore(package): refresh package-lock.json

* updates

* chore(): fix builds

* chore(): rework package-lock

* chore(): lint

Co-authored-by: Daniel Sogl <daniel@sogls.de>
2020-02-07 17:51:47 +01:00
Daniel Sogl
1bcaa39ffd 5.20.0 2020-01-27 06:43:25 +01:00
Daniel Sogl
82939763ee chore(package): upgrate typedoc to 0.16 2020-01-27 06:40:43 +01:00
Daniel Sogl
15ed431819 chore(package): bump deps 2020-01-27 06:30:45 +01:00
František Spurný
7baeab9fee docs(smartlook): extended usage sample (#3278)
* docs(smartlook): expanded usage sample

* docs(smartlook) fixed lint error

* Update index.ts

Co-authored-by: Daniel Sogl <daniel@sogls.de>
2020-01-27 06:25:50 +01:00
jospete
41895c165c feat(wifiwizard2): add cordova-plugin-wifiwizard2 typescript definitions (#3288)
* feat(cordova-plugin-wifiwizard2): add cordova-plugin-wifiwizard2 plugin definitions

* fix ts-lint errors
2020-01-27 06:20:25 +01:00
Stéphane JAIS
80f4ced369 docs(wonderpush): update title and description (#3294) 2020-01-27 06:19:45 +01:00
Marc Bornträger
95a67a813d feat(cordova-secure-storage-echo): add extra options interface (#3295) 2020-01-27 06:18:55 +01:00
Sefa Ilkimen
799cf94674 feat(http): update declaration for cordova plugin version 2.4.0 (#3298)
* feat(HTTP): update declaration for cordova plugin version 2.3.0

* feat(HTTP): update declaration for cordova plugin version 2.4.0
2020-01-27 06:18:05 +01:00
Antoine Brassard Lahey
2b2eb88a64 docs(firebase-x): add /ngx to import in usage example (#3277)
The path used to import FirebaseX in the usage example is wrong, it should end with /ngx
2020-01-17 10:53:21 +01:00
Daniel Sogl
7cad3f350f 5.19.1 2020-01-03 19:56:45 +01:00
Daniel Sogl
4c8ec5d1fc chore(package): change changelog script name 2020-01-03 19:56:33 +01:00
Daniel Sogl
82b632d772 chore(package): bump deps 2020-01-03 19:54:35 +01:00
Tim Brust
240feba76b fix(in-app-browser): adds missing customscheme type (#3276)
it also adds an overload to the `on` function to pass a generic string to support custom events.
2020-01-03 19:40:11 +01:00
kodolok
e55a1e1117 feat(firebase-x): add missing methods, parameter (#3273)
* feat(firebase-x): add colletion enable methods

add setCrashlyticsCollectionEnabled(), setPerformanceCollectionEnabled()

* feat(firebase-x): add parameter to logError

Add an optional stackTrace parameter to Crashlytics logError()

* fixed whitespace errors
2020-01-03 19:39:58 +01:00
Patrick Bußmann
8764440087 docs(sign-in-with-apple): updated documentation (#3270) 2020-01-03 19:39:48 +01:00
Daniel Sogl
07b958ac4e chore(): update changelog 2019-12-27 12:46:50 +01:00
Daniel Sogl
dd39c2fa85 5.19.0 2019-12-27 12:46:27 +01:00
Daniel Sogl
515b82d634 chore(package): bump deps 2019-12-27 12:45:44 +01:00
rigelglen
ecb0bb22ed feat(cordova-plugin-mlkit-translate): Add plugin (#3261) 2019-12-27 12:33:04 +01:00
Tim Brust
3f1fa37a8d feat(pdf-generator): add new pluign (#3268) 2019-12-27 12:09:44 +01:00
甘杨
a74c894064 feat(app-update): skip dialog boxes support (#3267) 2019-12-27 12:09:28 +01:00
Andrea
4d7e937d7a feat(firebase-analytics): add resetAnalyticsData to firebase-analytics (#3264)
added resetAnalyticsData method to firebase-analytics plugin
2019-12-27 12:08:40 +01:00
Akshay Dwivedi
fc90795a2c feat(camera-preview):add getCameraCharacteristics (#3260)
* feat(camera-preview):add getCameraCharacteristics

added getCameraCharacteristics to get the characteristics of all available cameras. #3163

* Update index.ts
2019-12-27 12:07:47 +01:00
Akshay Dwivedi
129ba4dbe2 feat(in-app-browser): add data in Event interface (#3258)
added data in Event interface for InApp Browser. fixes #3244
2019-12-27 12:07:26 +01:00
Venkadesh P
8582fac076 feat(unvired-cordova-sdk): added demo mode login api (#3256)
* feat(unvired-cordova-sdk): added demo mode login api

* feat(unvired-cordova-sdk): added new properties for demo mode.
2019-12-27 12:07:08 +01:00
Daniel Sogl
d0f665f6fc chore(): update changelog 2019-12-09 07:00:03 +01:00
Daniel Sogl
0254cf730e 5.18.0 2019-12-09 06:59:52 +01:00
Daniel Sogl
92a99145f8 chore(package): bump deps 2019-12-09 06:57:44 +01:00
Michael Read
a22ee6ed2b feat(in-app-browser): add "beforeload" callback method (#3249)
* fix(in-app-browser): Added missing callback method on the "beforeload" event ([issue#3152](https://github.com/ionic-team/ionic-native/issues/3152))

* fix(in-app-browser): Missing "beforeload" callback method
2019-12-09 06:52:58 +01:00
Dallas James
1aa89ae311 feat(ms-adal): add authentication settings (#3252) 2019-12-09 06:52:14 +01:00
Srinidhi
6f4d23d072 doc(unvired-cordova-sdk): remove mobile only restriction for some of the apis (#3251)
* feat(unvired-cordova-sdk): support login via email

* fix(unvired-cordova-sdk): return typed promise object for user settings

* fix(unvired-cordova-sdk): change return type to string for guid()

* doc(unvired-cordova-sdk): doc update

* doc(unvired-cordova-sdk): update doc

* feat(unvired-cordova-sdk): add support for metadata JSON

* doc(unvired-cordova-sdk): update doc

* doc(unvired-cordova-sdk): update doc

* feat(unvired-cordova-sdk): add methods to get and set log level

* fix(unvired-cordova-sdk): update the return type for getLog()

* feat(unvired-cordova-sdk): return platform name

* feat(unvired-cordova-sdk): add method to get log file path

* feat(unvired-cordova-sdk): test push notifications

* fix(unvired-cordova-sdk): define return for logRead

* doc(unvired-cordova-sdk): remove mobile only restriction for some apis
2019-12-09 06:51:34 +01:00
Dallas James
ecd451ceb3 fix(ms-adal): add missing "claims" parameter to "acquireTokenAsync" function (#3250)
* fix(ms-adal): add missing claims parameter

* add docs for new claims field
2019-12-09 06:50:40 +01:00
Sefa Ilkimen
bddc221b60 feat(http): update declaration for cordova plugin version 2.3.0 (#3247)
BREAKING CHANGE: you have to update to cordova-plugin-advanced-http@2.3 or later
2019-12-09 06:49:15 +01:00
Patrick Bußmann
27e844cbc2 docs(image-picker): updated configuration (#3245) 2019-12-09 06:46:36 +01:00
Daniel Sogl
b8695220ea chore(): update changelog 2019-11-26 17:11:35 +01:00
Daniel Sogl
364b30af59 5.17.1 2019-11-26 17:11:20 +01:00
Daniel Sogl
860d79828d chore(pacjage): bump deps 2019-11-26 17:11:11 +01:00
Daniel Sogl
9057dc2c93 fix(email-composer): Aligned function calls with Cordova plugin
Co-authored-by: ChelloApps<name@example.com>

closes: #3220
2019-11-26 17:05:56 +01:00
heremamit
5223dc7dd5 docs(update): Preview any file import path (#3237)
updated documents to reflect correct import path
2019-11-26 17:03:46 +01:00
Akshay Dwivedi
bb77620d0d fix(purchases): changed optional parameter oldSku (#3238)
changed optional parameter oldSkus to comply with the updated plugin code
2019-11-26 17:03:34 +01:00
Mike Hartington
b280ef4c55 Merge pull request #3240 from swernimo/master
fix(push): add showBadge to android channel
2019-11-26 09:10:05 -05:00
Sean Wernimont
8e79890251 fix(push): add showBadge to android channel 2019-11-25 15:35:55 -07:00
Daniel Sogl
f4a4bb9e55 chore(): update changelog 2019-11-19 09:43:14 +01:00
Daniel Sogl
d108776981 5.17.0 2019-11-19 09:43:01 +01:00
Daniel Sogl
8a65cc943a chore(package): bump deps 2019-11-19 09:40:33 +01:00
Akshay Dwivedi
d2e4d3e5ce feat(background-mode): add disableBatteryOptimizations function (#3235)
implemented disableBatteryOptimizations() method #3085
2019-11-19 09:36:31 +01:00
Akshay Dwivedi
3440dca70f feat(facebook): add activateApp function (#3234)
Added facebook4 plugin's activateApp method to manually start capturing events #3218
2019-11-19 09:35:53 +01:00
Patrick Bußmann
499cc5c075 fix(file): Changed resolveLocalFileSystemURL to FileEntryCallback instead of EntryCallback (#3231) 2019-11-19 09:35:23 +01:00
viniciuscostass
f2961fb4bb fix(firebase-x): adjust typings (#3228)
* Update index.ts

Added description field to IChannelOptions object and changed vibration type to get a number array

* Update index.ts

Added description field to IChannelOptions object and changed vibration type to get a number array
2019-11-19 09:35:03 +01:00
Ralph
48082eeaef feat(cordova-plugin-fingerprint-aio): change interface to support v3.0.0 release of plugin update index.ts (#3227) 2019-11-19 09:34:04 +01:00
Marius Backes
4c56d227a8 feat(sum-up): change affiliate key on runtime (#3223)
* feat(sum-up): change affiliate key on runtime

* Update index.ts
2019-11-19 09:33:38 +01:00
SnaiCrys
2fd4885fb1 fix(firebase-x): update types to match cordova-plugin-firebasex 7.0.0 (#3226)
BREAKING CHANGE: update firebase-x-cordova plugin to version 7

* fix(firebase-x): update types to match cordova-plugin-firebasex 7.0.0

* fix(firebase-x): Add getAPNSToken(), add `onApnsTokenReceived()`

* Add getAPNSToken() plugin API method to get the APNS token on iOS.
* (iOS) Add `onApnsTokenReceived()` to register a callback function to be invoked when the APNS token is allocated.

* fix lint errors
2019-11-19 09:33:22 +01:00
domschmidt
7d756394dd feat(printer): add v0.8.0 support (#3225)
Migrated interface to v0.8.0
Tested locally ok
2019-11-19 09:32:07 +01:00
Srinidhi
f4b03bcce4 feat(unvired-cordova-sdk): add method to get log file path (#3222)
* feat(unvired-cordova-sdk): support login via email

* fix(unvired-cordova-sdk): return typed promise object for user settings

* fix(unvired-cordova-sdk): change return type to string for guid()

* doc(unvired-cordova-sdk): doc update

* doc(unvired-cordova-sdk): update doc

* feat(unvired-cordova-sdk): add support for metadata JSON

* doc(unvired-cordova-sdk): update doc

* doc(unvired-cordova-sdk): update doc

* feat(unvired-cordova-sdk): add methods to get and set log level

* fix(unvired-cordova-sdk): update the return type for getLog()

* feat(unvired-cordova-sdk): return platform name

* feat(unvired-cordova-sdk): add method to get log file path

* feat(unvired-cordova-sdk): test push notifications

* fix(unvired-cordova-sdk): define return for logRead
2019-11-19 09:30:17 +01:00
abhishekksanghvi1989
01bfa5cc5e fix(push): add inline reply property (#3221) 2019-11-19 09:29:47 +01:00
Daniel Sogl
996bf00e85 chore(package): bump deps 2019-11-02 19:14:33 +01:00
Daniel Sogl
30360fe29d chore(): update changelog 2019-10-30 17:11:02 +01:00
Daniel Sogl
88bf517697 5.16.0 2019-10-30 17:10:56 +01:00
Daniel Sogl
e6ac206b8d chore(package): bump deps 2019-10-30 17:10:40 +01:00
ivans4
00ef998ee5 fix(bluetooth-le): add isConnectable to ScanParams interface (#3204) 2019-10-30 16:57:25 +01:00
daduryi
f81e181588 feat(cordova-plugin-getuisdk): Add GeTuiSdkPlugin plugin (#3212) 2019-10-30 16:56:50 +01:00
Slobodan Stojanović
08332b7c02 feat(fcm): add getAPNSToken and hasPermission methods (#3211) 2019-10-30 16:56:23 +01:00
Rad Azzouz
86cca49236 feat(pspdfkit-cordova): add PSPDFKit-Cordova plugin (#3210)
* feat(pspdfkit-cordova): add PSPDFKit-Cordova plugin

* Fix CI failure
2019-10-30 16:55:58 +01:00
Michael B
2718bccccc Fix wrong import path in documentation (#3209) 2019-10-30 16:55:12 +01:00
Srinidhi
042e36de08 feat(unvired-cordova-sdk): add methods to get and set log level and other functions. (#3207)
* feat(unvired-cordova-sdk): support login via email

* fix(unvired-cordova-sdk): return typed promise object for user settings

* fix(unvired-cordova-sdk): change return type to string for guid()

* doc(unvired-cordova-sdk): doc update

* doc(unvired-cordova-sdk): update doc

* feat(unvired-cordova-sdk): add support for metadata JSON

* doc(unvired-cordova-sdk): update doc

* doc(unvired-cordova-sdk): update doc

* feat(unvired-cordova-sdk): add methods to get and set log level

* fix(unvired-cordova-sdk): update the return type for getLog()

* feat(unvired-cordova-sdk): return platform name
2019-10-30 16:54:54 +01:00
Patrick Bußmann
ec933011e6 feat(sign-in-with-apple): Added Sign in with Apple (#3200)
* feat(Sign in with Apple): Added Sign in with Apple

* docs(Sign in with Apple): Updated interfaces to official ones
2019-10-30 16:54:14 +01:00
Nate Clark
2312665792 feat(cordova-plugin-discovery) add SSDP discovery plugin wrapper (#3194) 2019-10-30 16:51:10 +01:00
shubhamtewari
eae8c1000c feat(kommunicate): plugin for the kommunicate sdk (#3191)
* feat(kommunicate): create kommunicate plugin

* style(kommunicate): fix lint errors

* feat(kommunicate): add browser platform to
2019-10-30 16:50:54 +01:00
Juanma
509bd72dde feat(secure-storage-echo): added wrapper for newest plugin (#3190) 2019-10-30 16:49:28 +01:00
Daniel Sogl
fe38903e4b chore(github): add publish action 2019-10-30 16:43:05 +01:00
Daniel Sogl
1ebf447240 chore(package): bump deps 2019-10-28 17:47:27 +01:00
Daniel Sogl
4788104931 chore(github): adjust node action 2019-10-23 15:51:42 +02:00
Daniel Sogl
fdd38b97b6 chore(github): add node build action 2019-10-23 15:44:35 +02:00
Daniel Sogl
409a985142 chore(): update changelog 2019-10-18 16:08:54 +02:00
Daniel Sogl
8534061b2f 5.15.1 2019-10-18 16:08:48 +02:00
Daniel Sogl
275741faed chore(package): bump deps 2019-10-18 16:07:43 +02:00
jcesarmobile
4c5d70eacd Revert "fix(barcode-scanner): add missing shouldAutorotate property (#3096)" (#3192)
This reverts commit 8ce541ff9a.
2019-10-18 07:14:30 +02:00
San Leen
0b43c69993 fix(wechat): add missing cordova decorators (#3195)
fix wechat plugin
2019-10-18 07:13:51 +02:00
jing-zhou
fb5d47bff2 fix(alipay): adjust pay function properties (#3197)
* fix bug 'Success is not a function #158'
https://github.com/terikon/cordova-plugin-photo-library/issues/158

* alipay: add optional success, error callback
for pay()  method
2019-10-18 07:13:02 +02:00
Matt Netkow
7033a1822e fix(keyboard): add missing CordovaProperty import (#3201) 2019-10-18 07:11:39 +02:00
Daniel Sogl
a840a03e33 docs(secure-storage): replace deprecated repo with maintained repo
closes: #3157 #3125
2019-10-08 14:38:28 +02:00
Pavel Kroh
fb540f7774 docs(smartlook): add iOS platform (#3196) 2019-10-08 12:12:33 +02:00
Daniel Sogl
cb4d5b5064 chore(): update changelog 2019-10-04 16:35:56 +02:00
Daniel Sogl
265b4ba02f 5.15.0 2019-10-04 16:35:50 +02:00
Daniel Sogl
5fc13abb10 chore(package): bump deps 2019-10-04 16:35:32 +02:00
Matthew Harris
b7a4e44308 docs(camera): adjust example types (#3188)
It seems like these two definitions were switched around accidentally. I'm just going from the obvious logic of it. I don't know if there is some situation where the names are intentionally switched around? Please only accept PR if you can vouch for my change.
2019-10-04 16:32:20 +02:00
jcesarmobile
a1fb93707f fix(keyboard): Update types with new 2.2.0 methods (#3187) 2019-10-04 16:31:50 +02:00
Bryant P
a575233f23 fix(pro): Removing Pro native wrapper (#3186) 2019-10-04 16:31:31 +02:00
Min Yin
66f2e155f0 feat(web-socket-server): Add cordova plugin websocket server (#3183)
* Add Basic WebSocketServer Class

* Change for custom plugin fork

* Set cordova observable property

* Setup for custom fork of plugin

Using custom fork for better support for
observables. Use original repo when pull request
https://github.com/becvert/cordova-plugin-websocket-server/pull/64 is merged

* Add Documentation

* Remove double quotes with single quotes

* Fix lint issues

* Fix stop() docs
2019-10-04 16:30:42 +02:00
Simon
5f16fcd292 feat(emm-app-config): add plugin (#3181)
* Add Emm App Config plugin

Add [emm-app-config](https://github.com/oracle/cordova-plugin-emm-app-config) plugin to retrieve EMM application configuration

* Update index.ts
2019-10-04 16:29:59 +02:00
Sefa Ilkimen
fc6d1d0c7f feat(http): add type definitions for new features available in v2.2.0 (#3185)
- support uploading multiple files
- support response type `json
2019-09-30 07:48:22 +02:00
Min Yin
acec6cfb18 fix(web-server): add path to response (#3184) 2019-09-29 13:24:17 +02:00
MaximBelov
f5d94d824d docs(mobile-accessibility): adjust documentation (#3180)
* fix(mobile-accessibility): fix documentation

* Update index.ts
2019-09-29 13:23:45 +02:00
Stéphane JAIS
70d4fcd30e docs(wonderpush): fix usage example (#3177) 2019-09-29 13:22:47 +02:00
Srinidhi
5cea6141c4 docs(unvired-cordova-sdk): update doc (#3171)
* feat(unvired-cordova-sdk): support login via email

* fix(unvired-cordova-sdk): return typed promise object for user settings

* fix(unvired-cordova-sdk): change return type to string for guid()

* doc(unvired-cordova-sdk): doc update

* doc(unvired-cordova-sdk): update doc

* feat(unvired-cordova-sdk): add support for metadata JSON

* doc(unvired-cordova-sdk): update doc

* doc(unvired-cordova-sdk): update doc
2019-09-29 13:22:11 +02:00
nrikiji
cb543b9841 fix(line-login): adjustment parameter (#3172) 2019-09-29 13:21:49 +02:00
Daniel Sogl
3f172cc2b8 chore(): update changelog 2019-09-13 14:54:35 +02:00
Daniel Sogl
98b463b0d3 5.14.0 2019-09-13 14:54:30 +02:00
Daniel Sogl
8940301e87 Merge remote-tracking branch 'origin/master' 2019-09-13 14:54:03 +02:00
Daniel Sogl
493405426c chore(package): bump deps 2019-09-13 14:53:57 +02:00
Mostafa Mansour
fcec2d16b3 feat(preview-any-file): add new plugin to preview the … (#3156)
* feat(cordova-plugin-preview-any-file): add new plugin to preview the files in both ios and android

* fix lint error

* add missing descriptions

* add the reop link
2019-09-13 14:53:57 +02:00
Jose Andrés Pérez Arévalo
d9ded4d164 feat(ssh-connect): add new plugin for ssh connection (#3169) 2019-09-13 14:53:57 +02:00
Dalton Pearson
141f0e6e41 feat(document-scanner): add quality and base64 (#3168)
* feat(document-scanner): add quality and base64

* removed trailing whitespace
2019-09-13 14:53:57 +02:00
jcesarmobile
199380c0c3 fix(screen-orientation): add window element to eventObservable (#3166) 2019-09-13 14:53:57 +02:00
Alexander Vagner
a46e308ea8 fix(firebase-x): adjust typings for hasPermission (#3161)
Current version of plugin has change, described in https://github.com/dpa99c/cordova-plugin-firebasex#breaking-api-changes, this commit fixed `hasPermission()` method typings
2019-09-13 14:53:57 +02:00
Daniel Sogl
fb0ee819be chore(package): bump deps 2019-09-13 14:53:26 +02:00
Mostafa Mansour
1b6506f53a feat(preview-any-file): add new plugin to preview the … (#3156)
* feat(cordova-plugin-preview-any-file): add new plugin to preview the files in both ios and android

* fix lint error

* add missing descriptions

* add the reop link
2019-09-13 15:42:08 +03:00
Jose Andrés Pérez Arévalo
d539eb4f62 feat(ssh-connect): add new plugin for ssh connection (#3169) 2019-09-13 15:41:24 +03:00
Dalton Pearson
cfcd8d16a6 feat(document-scanner): add quality and base64 (#3168)
* feat(document-scanner): add quality and base64

* removed trailing whitespace
2019-09-13 15:40:28 +03:00
jcesarmobile
6bc1b932c8 fix(screen-orientation): add window element to eventObservable (#3166) 2019-09-13 15:39:52 +03:00
Alexander Vagner
650615e883 Fix typings for hasPermission() (#3161)
Current version of plugin has change, described in https://github.com/dpa99c/cordova-plugin-firebasex#breaking-api-changes, this commit fixed `hasPermission()` method typings
2019-09-13 15:38:23 +03:00
Domvel
8b3b2a4b27 fix(core): Return the window object as default instead of the boolean from the typeof comparison (#3160)
* Fixes #2972

https://github.com/ionic-team/ionic-native/issues/2972

* If window does not exist.

But is there a case where window does not exist? If ionic-native always runs in browsers enviroment (like Cordova / WebView) we could remove the `typeof` checks.
2019-09-13 15:38:01 +03:00
Bas ten Feld
2b347fe889 fix(app-rate) add missing locale properties (#3159) 2019-09-13 15:37:37 +03:00
Ken Sodemann
8032429faa doc(OCR): use the appropriate export name (#3158) 2019-09-05 12:20:20 +02:00
Daniel Sogl
4cb97eeec4 docs(ocr): update example 2019-09-04 22:56:01 +03:00
Daniel Sogl
1d878c6902 chore(): update changelog 2019-08-30 16:04:21 +02:00
Daniel Sogl
e65ce4a879 5.13.0 2019-08-30 16:04:15 +02:00
Daniel Sogl
bfa4f62e2b chore(package): use angular 8 and ts 3.5 2019-08-30 16:02:57 +02:00
Daniel Sogl
1af96d1369 chore(package): bump deps 2019-08-30 15:57:46 +02:00
Srinidhi
dcce3489f4 doc(unvired-cordova-sdk): update doc (#3147)
* feat(unvired-cordova-sdk): support login via email

* fix(unvired-cordova-sdk): return typed promise object for user settings

* fix(unvired-cordova-sdk): change return type to string for guid()

* doc(unvired-cordova-sdk): doc update

* doc(unvired-cordova-sdk): update doc

* feat(unvired-cordova-sdk): add support for metadata JSON

* doc(unvired-cordova-sdk): update doc
2019-08-30 15:55:27 +02:00
Saninn
3a5c790a56 bugfix: add response type to permission checking (#3149) 2019-08-30 15:53:47 +02:00
Ziyaddin Sadigov
73493e222f fix(network): rename onchange method name (#3146) 2019-08-30 15:52:55 +02:00
MaximBelov
26447d22ea fix(anyline): added official plugin (#3144) 2019-08-30 15:52:33 +02:00
Marius Backes
a55bb60d70 fix(theme-detection): added android platform (#3143) 2019-08-30 15:52:07 +02:00
jcesarmobile
4d1e0e6949 fix(in-app-browser): update types to match cordova-plugin-inappbrowser 3.1.0 (#3142)
* Update index.d.ts

Property comments are omitted if they are not marked with double asterisks. Added missing asterisks

* Update index.d.ts

Updated comments to match linter settings

* Fix lint errors and some missing comments

* add missing options and improve types
2019-08-30 15:51:38 +02:00
Alberto Varela
189570d255 feat(google-play-games-services): add new synchronous methods (#3138) 2019-08-30 15:51:29 +02:00
Stéphane JAIS
64ca73e5cc docs(wonderpush): fix usage formatting (#3137) 2019-08-12 06:52:03 +02:00
Daniel Sogl
4337515961 chore(): update changelog 2019-08-09 11:17:23 +02:00
Daniel Sogl
c0d4a2ee34 5.12.0 2019-08-09 11:17:15 +02:00
Daniel Sogl
1f7e6a5d02 chore(package): bump deps 2019-08-09 11:11:10 +02:00
Akshay Dwivedi
fd81a5e5b7 feat(file-chooser): add missing options param (#3136)
added missing optional parameter to support mime types
2019-08-09 11:09:22 +02:00
Eliran Assaraf
f3b8e34091 fix(chooser): @param accept is supposed to be optional (#3134) 2019-08-09 11:08:20 +02:00
Matthew Harris
5cc91bc79a fix(background-geolocation): enum not string (#3131)
based on [this stackoverflow issue](https://stackoverflow.com/questions/57293829/argument-of-type-location-is-not-assignable-to-parameter-of-type-backgroundge/57302110#57302110) it seems passing the string causes problems in (some / all) scenarios
2019-08-09 11:07:39 +02:00
Srinidhi
e37a7221b1 doc(unvired-cordova-sdk): update doc (#3130)
* feat(unvired-cordova-sdk): support login via email

* fix(unvired-cordova-sdk): return typed promise object for user settings

* fix(unvired-cordova-sdk): change return type to string for guid()

* doc(unvired-cordova-sdk): doc update
2019-08-09 11:07:11 +02:00
BultjerCMC
016023a7bb fix(ms-adal): use correct accessTokenType prop (#3128)
Removed a typo, which made the Access Token Type undefined all the time.
2019-08-09 11:06:38 +02:00
Matthew Harris
852df98647 docs(image-picker): set repo url to active repo (#3127)
Original repo hasn't had a commit since 2016. `Repo:` parameter already updated but intro docs wasn't.
2019-08-09 11:05:53 +02:00
jfgreffier
7696706080 feat(http): add sendRequest responseType option (#3120) 2019-08-09 11:05:17 +02:00
Daniel Sogl
2c0aa4f124 fix(intercom): added logout, displayHelpCenter, sendPushTokenToIntercom (#3119) 2019-08-09 11:05:05 +02:00
František Spurný
8bcbc955e0 feat(smartlook): add plugin (#3117) 2019-08-09 11:04:51 +02:00
Maxim Belov
3bb6b59112 fix(intercom): added logout, displayHelpCenter, sendPushTokenToIntercom 2019-07-29 22:50:13 +03:00
Daniel Sogl
f6e77db7b0 chore(): update changelog 2019-07-29 16:12:06 +02:00
Daniel Sogl
acc587aca2 5.11.0 2019-07-29 16:12:00 +02:00
Daniel Sogl
c77bdf17c1 chore(package): bump deps 2019-07-29 16:10:14 +02:00
Daniel Sogl
0c9bf3bf49 feat(urbanairship): add plugin (#3114)
feat(urbanairship): add plugin
2019-07-29 12:02:29 +02:00
Daniel Sogl
f54b9e0797 doc(unvired-cordova-sdk): improve doc (#3108)
* feat(unvired-cordova-sdk): add plugin

* style(unvired-cordova-sdk): fix style

* doc(unvired-cordova-sdk): add doc

* doc(unvired-cordova-sdk): update doc

* style(unvired-cordova-sdk): fix style

* doc(unvired-cordova-sdk): fix readme errors

* doc(unvired-cordova-sdk): update doc

* doc(unvired-cordova-sdk): improve doc

* doc(unvired-cordova-sdk): remove clearFunction
2019-07-29 12:00:01 +02:00
Stéphane JAIS
7e08680d31 feat(wonderpush): add plugin (#3107) 2019-07-29 11:59:51 +02:00
patryk-fuhrman
de83edb99b feat(cordova-plugin-firebasex): Add plugin (#3106) 2019-07-29 11:59:41 +02:00
Daniel Sogl
fac94485a0 Update index.ts 2019-07-29 11:58:04 +02:00
Maxim Belov
9c9ed3518f feat(urbanship): add plugin 2019-07-29 01:53:09 +03:00
Srinidhi Anand Rao
a0779de633 doc(unvired-cordova-sdk): remove clearFunction 2019-07-23 13:57:37 +05:30
Srinidhi Anand Rao
50408b08c6 Merge commit 'a2f5acb48c8d197fad55276ffcee7eee5cf3065f'
# Conflicts:
#	src/@ionic-native/plugins/unvired-cordova-sdk/index.ts
2019-07-21 19:32:45 +05:30
Srinidhi Anand Rao
767391a4b4 doc(unvired-cordova-sdk): improve doc 2019-07-21 19:27:25 +05:30
Daniel Sogl
a2f5acb48c chore(): update changelog 2019-07-12 20:27:59 +02:00
Daniel Sogl
3a3e9338e7 5.10.0 2019-07-12 20:27:53 +02:00
Daniel Sogl
8badd2943a feat(anyline): add plugin (#3101)
closes: #3074
Co-authored-by: niconaso
2019-07-12 20:26:22 +02:00
Daniel Sogl
9a46ab1a6d chore(build): remove "default" 2019-07-12 20:12:54 +02:00
Daniel Sogl
952a5c8e11 Merge remote-tracking branch 'origin/master' 2019-07-12 20:11:42 +02:00
Daniel Sogl
2a995d94ec chore(build): upgrate to node 12 and gulp 4 2019-07-12 20:11:26 +02:00
Daniel Sogl
941d394da9 chore(build): upgrate to node 12 and gulp 4 2019-07-12 20:09:33 +02:00
Daniel Sogl
cc1f25c38c chore(package): bump deps 2019-07-12 11:45:30 +02:00
nrikiji
7aa08109ce fix(line-login): add missing email prop (#3098) 2019-07-12 11:41:35 +02:00
reymav
8ce541ff9a fix(barcode-scanner): add missing shouldAutorotate property (#3096)
* Disable or enable Autorotate camera into barcode scanner plugin

* fix asterisks in jsdoc must be aligned
2019-07-12 11:40:52 +02:00
Patrick Bußmann
75190f5166 docs(deeplinks): Added informations about AASA (iOS) and Asset Links (Android) to documentation (#3094) 2019-07-12 11:40:36 +02:00
Srinidhi
c697139089 doc(unvired-cordova-sdk): doc update (#3090)
* feat(unvired-cordova-sdk): add plugin

* style(unvired-cordova-sdk): fix style

* doc(unvired-cordova-sdk): add doc

* doc(unvired-cordova-sdk): update doc

* style(unvired-cordova-sdk): fix style

* doc(unvired-cordova-sdk): fix readme errors

* doc(unvired-cordova-sdk): update doc
2019-07-12 11:40:19 +02:00
Anton Zagrebelny
717f6864f3 fix(biocatch): added android platform and updated repo (#3086) 2019-07-12 11:39:42 +02:00
Marius Backes
e9fa3ee6f2 feat(theme-detection): add plugin (#3082) 2019-07-12 11:39:23 +02:00
Srinidhi Anand Rao
28ce962677 doc(unvired-cordova-sdk): update doc 2019-07-12 14:57:43 +05:30
Srinidhi Anand Rao
f576c5f11e doc(unvired-cordova-sdk): fix readme errors 2019-07-05 17:14:52 +05:30
Srinidhi Anand Rao
f488a75e26 Merge commit '2b684fadb179af64ac179e0a878b4ffdec0e85aa'
# Conflicts:
#	src/@ionic-native/plugins/unvired-cordova-sdk/index.ts
2019-07-05 15:44:16 +05:30
Srinidhi Anand Rao
55fb503d81 style(unvired-cordova-sdk): fix style 2019-07-05 15:16:14 +05:30
Srinidhi Anand Rao
afe95a6752 doc(unvired-cordova-sdk): update doc 2019-07-05 13:15:01 +05:30
Srinidhi Anand Rao
2ca8bda8f7 doc(unvired-cordova-sdk): add doc 2019-07-04 18:12:29 +05:30
Daniel Sogl
2b684fadb1 chore(): update changelog 2019-07-01 19:34:57 +02:00
Daniel Sogl
7f2da56a28 5.9.0 2019-07-01 19:34:23 +02:00
Daniel Sogl
4a546bd11a 5.8.0 2019-07-01 19:34:20 +02:00
Daniel Sogl
a0f5254988 Revert "chore(build): use node 12"
This reverts commit 8521b32306.
2019-07-01 19:32:24 +02:00
Daniel Sogl
8521b32306 chore(build): use node 12 2019-07-01 19:30:30 +02:00
Daniel Sogl
d52278b2d1 chore(package): bump deps 2019-07-01 19:29:32 +02:00
Timo
2fadb6b0e1 fix(firebase): add missing decorator to clearAllNotifications (#3059) 2019-07-01 19:27:03 +02:00
Lars Mikkelsen
ad11ed21ac refactor(core): allow rxjs 5.5 as peer dependency (#3068)
This would allow Ionic v3 apps to use Ionic Native v5 wrappers.
2019-07-01 19:26:20 +02:00
Wasenshi
5857b9654c feat(calendar): add deleteEventById function (#3075)
* Update index.ts

Please add this function

* Update index.ts
2019-07-01 19:24:40 +02:00
jing-zhou
92d5764e01 fix(alipay): use correct pluginRef (#3081) 2019-07-01 19:20:22 +02:00
Marius Backes
a4db080786 feat(sum-up): add plugin (#3080) 2019-07-01 19:19:44 +02:00
Szymon Stasik
54ac2bfdf5 feat(diagnostic): add DENIED_ONCE introduced by diagnostic v5 (#3071)
cordova.plugins.diagnostic@5.0.0 introduced breaking change moving from `DENIED` to `DENIED_ONCE` and make the statuses semantically equal for iOS and Android. For backward compatibility `DENIED` is untouched in this PR but marked as deprecated
2019-07-01 19:18:11 +02:00
Srinidhi
9274083b24 feat(unvired-cordova-sdk): add plugin (#3061)
* feat(unvired-cordova-sdk): add plugin

* style(unvired-cordova-sdk): fix style
2019-07-01 19:17:38 +02:00
Cam Wiegert
d04396e631 chore(scripts): add installVariables to docs-json output (#3079) 2019-06-28 14:23:28 -05:00
perry
c4b4584d2d couchbase depreciation warning 2019-06-19 11:02:40 -05:00
Eliran Elnasi
1fc09098fe fix(in-app-purchase-2): add missing option to register function (#3063)
* Update TS type for register() method

It should accept also a list of IAPProductOptions

* Update index.ts
2019-06-17 14:52:19 +02:00
Zahid Mahmood
b217bdb62a docs(launch-review): add missing bracket (#3062) 2019-06-15 08:14:48 +02:00
Srinidhi Rao
1b60247807 style(unvired-cordova-sdk): fix style 2019-06-14 14:08:58 +05:30
Srinidhi Rao
b75f40c76e feat(unvired-cordova-sdk): add plugin 2019-06-14 13:41:48 +05:30
Daniel Sogl
09ca1a1843 chore(package): bump deps 2019-06-10 20:12:32 +02:00
hanatharesh2712
6cbb226ed2 feat(sms-retriever): add plugin (#3052)
* created index.ts file for sms retriver plugin wrapper for ionic native

created index.ts file for sms retriver plugin wrapper for ionic native
Plugin name : cordova-plugin-sms-retriever-manager

* resolved tslint errors

resolved tslint errors

* Update index.ts

* Update index.ts
2019-06-10 20:04:43 +02:00
Jean-Christophe Hoelt
ed80933b6c feat(in-app-purchase-2): add documentation (#3055)
Ported to typescript from the repo's README and API documentation.
2019-06-10 20:04:26 +02:00
Gyula Isoó
300d7c229c fix(music-control): use correct input type (#3054) 2019-06-10 20:03:34 +02:00
Hatem
43442ac4ea feat(apple-wallet): support plugin version 3.0 (#3053)
BREAKING: Requires `cordova-apple-wallet@3.0`
2019-06-10 20:00:44 +02:00
Szymon Stasik
12f2782fef feat(diagnostic): add requestRemoteNotificationsAuthorization method (#3051)
solves #3050

while diagnostic plugin docs may be confusing, the `requestRemoteNotificationsAuthorization(successCallback, errorCallback, types, omitRegistration)` signature is available in the sources:

0fac4a59d1/www/ios/diagnostic.notifications.js (L162)
2019-06-10 19:55:26 +02:00
Daniel Sogl
a586734b92 chore(): update changelog 2019-06-03 07:09:54 +02:00
Daniel Sogl
f58183260d 5.7.0 2019-06-03 07:09:06 +02:00
Daniel Sogl
a3c49fd17a chore(package): bump deps 2019-06-03 07:08:38 +02:00
Daniel Sogl
6ee94b93ba refactor(core): set rxjs version to 6.5
BREAKING: rxjs@6.5 is required
2019-06-03 07:06:55 +02:00
Anup Sharma
a0ec1252e0 feat(onesignal): add missing "setExternalUserId" and "removeExternalUserId" functions (#3049)
* Adding missing functions to index.ts file

The functions were missing, Please refer to the issue #2909 
https://github.com/ionic-team/ionic-native/issues/2909

* Updated comments

Updated comments which were failing tslint test

* removed trailing whitespace

removed trailing whitespace
2019-06-03 06:56:36 +02:00
Michael Fornaro
dfb0aa3d5d feat(device-accounts): add "getPermissionsByType" function (#3048) 2019-06-03 06:56:23 +02:00
Adam Duren
312c126cc8 docs(firebase-messaging): update docs to support requestPermission forceShow and getToken tokenType options (#3047) 2019-06-03 06:56:00 +02:00
Robert Coie
b79c8b1ea0 feat(ocr): add plugin (#3044) 2019-06-03 06:55:49 +02:00
Robert Coie
49e81cc414 feat(document-scanner): add plugin (#3043) 2019-06-03 06:55:40 +02:00
Jeff Julian
2942ebfae4 feat(blinkid): added support for card overlay (#3041) 2019-06-03 06:55:30 +02:00
Jean-Christophe Hoelt
4ae35cba9a feat(in-app-purchase-2): update TypeScript definitions (#3037) 2019-06-03 06:55:17 +02:00
Daniel Pereira
bb7b516c50 feat(full-screen-image): add plugin (#3026)
* feat(full-screen-image): add plugin

* Update index.ts
2019-06-03 06:55:00 +02:00
pranav9k
c0b092b242 feat(biometric-wrapper): add plugin (#3025) 2019-06-03 06:54:50 +02:00
Daniel Sogl
a2fe674a3f chore(): update changelog 2019-05-27 07:42:47 +02:00
Daniel Sogl
f12da1f4f5 5.6.1 2019-05-27 07:42:39 +02:00
Daniel Sogl
0e7bec3633 chore(package): bump deps 2019-05-27 07:22:40 +02:00
Adam Duren
7588eaf9fd refactor(firebase-config): update wrapper to latest release 2.0.0 (#3027)
* Remove deprecated namespace parameter

* Update for cordova-plugin-firebase-config@2.0.0
2019-05-27 07:20:12 +02:00
Robert Coie
c5a9d0d258 docs(developer): remove stale observation about methods being static (#3033) 2019-05-27 07:19:10 +02:00
Safery Hossain
18e4a9cda6 docs(music-controls): fix example code (#3036)
The function this.musicControls.subscribe().subscribe was not closed properly, I added the proper syntax for closing the tag.
2019-05-27 07:18:52 +02:00
perry
26f63c744d docs(rollbar): adding link to rollbar in description 2019-05-17 10:20:23 -05:00
Daniel Sogl
1cb4c989f9 chore(): update changelog 2019-05-16 07:07:12 +02:00
Daniel Sogl
c80d081c92 5.6.0 2019-05-16 07:07:04 +02:00
Daniel Sogl
3e0a7395ca chore(circle-ci): optim "npm install" 2019-05-16 07:04:44 +02:00
Daniel Sogl
4c6dc71cbe chore(package): bump deps 2019-05-16 07:04:01 +02:00
Daniel Sogl
81a10280cc feat(biocatch): add plugin #3019
feat(biocatch): add plugin
2019-05-16 06:56:16 +02:00
Daniel Sogl
56e4a7827f feat(camera-preview): add wrapper for camera preview snapshot #3018
feat(camera-preview): add wrapper for camera preview snapshot
2019-05-16 06:56:00 +02:00
Daniel Sogl
c4fe2b7203 feat(foreground-service): add plugin #3017
feat(foreground-service): add plugin
2019-05-16 06:55:42 +02:00
Daniel Sogl
0dc320bbd2 feat(FileOpener): add showOpenWithDialog function #3014
feat(FileOpener): Added method showOpenWithDialog
2019-05-16 06:55:27 +02:00
Daniel Sogl
b4201e1b52 fix(blinkid): correct issue with blink card #3011
fix(blinkid): correct issue with blink card
2019-05-16 06:55:02 +02:00
Daniel Sogl
9a4bef34bb refactor(device-accounts): update source #3010
refactor(device-accounts): update source
2019-05-16 06:54:45 +02:00
Daniel Sogl
2bc8bdc49c feat(firebase-crash): add plugin (#3003) 2019-05-16 06:54:24 +02:00
Romain
e363d98bd8 fix(firebase-crashlytics): update initialise method (#2990) (#2991) 2019-05-16 06:54:13 +02:00
Anton Zagrebelny
980447673b fix(biocatch): updateCustomerSessionID argument can be null 2019-05-14 19:00:24 +03:00
Anton Zagrebelny
7afed90b56 fix(biocatch): start publicKey is now required even if null 2019-05-14 18:46:30 +03:00
Anton Zagrebelny
0634e64b58 refactor(biocatch): fixed casing 2019-05-14 16:21:21 +03:00
Anton Zagrebelny
a42e7b8258 feat(biocatch): add Biocatch plugin 2019-05-14 15:40:43 +03:00
Marc Kassay
5b5c6e61ac feat(foreground-service): allows background services 2019-05-13 18:10:42 -04:00
max-in-to
79037743b8 feat(camera-preview): add wrapper for camera preview snapshot 2019-05-09 21:14:27 -07:00
nerdic-coder
ed36dc492d feat(FileOpener): Added method showOpenWithDialog 2019-05-08 16:32:53 +03:00
Jeff Julian
1f31954cb3 fix(blinkid): resolve issues with blink card 2019-05-03 19:16:55 -05:00
Jeff Julian
4601ea3e01 fix(blinkid): correct issue with blink card 2019-05-03 19:04:14 -05:00
Michael Fornaro
45c64b0394 Merge branch 'master' into master 2019-05-04 09:28:29 +10:00
Michael
591c290dbd Fixing pluginRef and plugin name to match maintained npm module 2019-05-04 09:23:12 +10:00
Julian Sanio
66b9d1a011 feat(firebase-crash): add plugin 2019-04-29 17:58:17 +02:00
Daniel Sogl
25ef7c98bc chore(): update changelog 2019-04-29 08:14:33 +02:00
Daniel Sogl
19ddf3fb93 5.5.1 2019-04-29 08:14:25 +02:00
Daniel Sogl
20a3791a88 chore(package): bump deps 2019-04-29 08:12:26 +02:00
Simone Colazzo
9800271352 feat(CameraPreview): add getHorizontalFOV callback (#3000) 2019-04-29 08:07:10 +02:00
Daniel Sogl
e288a5d757 fix(background-geolocation): update source
closes: #2979
2019-04-29 08:05:01 +02:00
Daniel Sogl
ab7c7fa491 chore(): update changelog 2019-04-19 19:06:25 +02:00
Daniel Sogl
9e306e7de1 5.5.0 2019-04-19 19:06:18 +02:00
Daniel Sogl
92e0cb2385 chore(package): bump deps 2019-04-19 19:03:43 +02:00
Niklas Merz
0800f4a414 docs(fingerprint-aio): change parameter description (#2995)
* docs(fingerprint-aio): change parameter description

* Update index.ts
2019-04-19 18:59:51 +02:00
Adam Duren
e47774b771 fix(firebase-messaging): fix the typings of the FCM message payload (#2998) 2019-04-19 18:58:38 +02:00
Tobias Kausch
c0ce17b170 fix(background-mode): update types definitions (#2997)
On the last PR https://github.com/ionic-team/ionic-native/pull/2982
there was a little typing problem for the .on event listener call.
2019-04-19 18:58:28 +02:00
Zac
c518c8114d fix(google-plus): mark login param as required (#2996) 2019-04-19 18:58:04 +02:00
Johan Dufour
21dc1f9a56 feat(spotify-auth): add Spotify OAuth plugin (#2989) 2019-04-19 18:56:52 +02:00
Cesar de la Vega
7ea51fcf06 feat(purchases): update plugin to v0.0.5 (#2988)
* Updates to Cordova plugin 0.0.5

* Makes underlyingErrorMessage optional
2019-04-19 18:56:28 +02:00
Michael Fornaro
c063652800 feat(device-accounts): update plugin source (#2976)
* feat: updating device account wrapper with maintained fork with android 8.0 compatibility

* updating func to include getPermission for email permissions on android 8.0+

* revert package-lock as per feedback

* fix conflicts in package-lock.json, revert back to commit 49d7ca7375
2019-04-19 18:56:17 +02:00
Daniel Sogl
9024ea516a fix(nfc): rename makeReadyOnly to makeReadOnly
fix: #2985
2019-04-11 20:20:36 +02:00
Michael
e92b7aeb74 fix conflicts in package-lock.json, revert back to commit 49d7ca7375 2019-04-08 08:07:33 +10:00
Michael
dc51c3e1e8 revert package-lock as per feedback 2019-04-08 08:04:23 +10:00
Daniel Sogl
4859387925 chore(): update changelog 2019-04-07 20:02:36 +02:00
Daniel Sogl
10787c8056 5.4.0 2019-04-07 20:02:29 +02:00
Wojciech Bubolka
f874185a35 feat(in-app-purchase-2): add manageSubscriptions() (#2980)
* feat(in-app-purchase-2): add manageSubscriptions()

* feat(in-app-purchase-2): add manageSubscriptions()
2019-04-07 19:59:58 +02:00
Daniel Sogl
00e34877f3 chore(package): bump deps 2019-04-07 19:59:37 +02:00
Daniel Sogl
4de49c37dd feat(nativegeocoder): update plugin to v3.2.0 (#2958) 2019-04-07 19:56:31 +02:00
Daniel Sogl
bd4b2e2bb4 feat(nativegeocoder): update plugin to v3.2.0 (#2958)
* feat(nativegeocoder): update plugin to v3.2.0

* update imports
2019-04-07 19:22:12 +02:00
malua
aa138c4cfe fix(facebook): use object notation, otherwise EVENTS is´ undefined (#2955)
* fix(facebook-events-object): use object notation, otherwise EVENTS is undefined

* reverted prettier double quotes to single quotes
2019-04-07 19:19:42 +02:00
Timur Girgin
4e60c631ae fix(in-app-purchase2): Registering a product with an alias is now optional (#2946)
According to the documentation, alias is optional
https://github.com/j3k0/cordova-plugin-purchase/blob/master/doc/api.md#storeregisterproduct
2019-04-07 19:15:17 +02:00
Arzan Bhorr
767d3b3dd4 feat(google-play-games-services): add getPlayerScore function (#2949) 2019-04-07 19:13:04 +02:00
Cesar de la Vega
39be27566b feat(purchases): add new plugin for purchases (#2940)
* feat(purchases): create new plugin

* style(purchases): fix double quotes linter warning

* Update instructions to add strip frameworks phase

* removes trailing space

* fixes jsdoc
2019-04-07 19:10:42 +02:00
selected-pixel-jameson
029f82f1fd feat(in-app-purchase-2): add missing property (#2961)
feat(in-app-purchase-2): add missing property
2019-04-07 19:09:59 +02:00
Julián Mesa Llopis
6a19509ded fix(ble): fix definitions (#2974)
* Fix bad definitions in blueooth-le module in initialize and enable funcions

* Fix MATCH_MODE_AGGRESSIVE

* Fix startScan return

* Fix connect return

* Fix rssi function return type

* Fix disconnect return.
Fix close return.
Fix discover return.
Fix services return.
Fix mtu return.
2019-04-07 19:09:22 +02:00
Johan Dufour
c75aeb9c39 fix(background-mode): update types definitions (#2982) 2019-04-07 19:07:48 +02:00
Michael
dcd95582d2 updating func to include getPermission for email permissions on android 8.0+ 2019-04-06 11:19:42 +11:00
Michael
354af9fe6f feat: updating device account wrapper with maintained fork with android 8.0 compatibility 2019-04-03 12:28:16 +11:00
Daniel Sogl
49d7ca7375 chore(): update changelog 2019-03-19 19:03:51 +01:00
Daniel Sogl
8d91856103 5.3.0 2019-03-19 19:03:39 +01:00
Daniel Sogl
5221c8cf41 Merge remote-tracking branch 'origin/master' 2019-03-19 18:36:42 +01:00
Daniel Sogl
d827db27b0 Revert "refactor(template): update Inject decorator"
BREAKING CHANGE: This reverts commit c5ae6362d7.
2019-03-19 18:36:21 +01:00
Daniel Sogl
b9e46730e3 Revert "refactor(template): update Inject decorator"
This reverts commit c5ae6362d7.
2019-03-19 18:35:00 +01:00
Daniel Sogl
fcda5ffcab Revert "refactor: optimize plugins for angular treeshaking"
This reverts commit 8b53c04dc5.
2019-03-19 18:34:54 +01:00
Daniel Sogl
6fde61d69c chore(package): bump deps 2019-03-19 18:34:22 +01:00
Daniel Sogl
c8ff885023 chore: fix linter 2019-03-19 18:25:24 +01:00
Cam Wiegert
06654afae3 fix(scripts): check for TypeDoc tags when selecting plugin class (#2963) 2019-03-14 13:35:32 -05:00
Cesar de la Vega
e1a25af0b5 chore(common): fix linter error (#2941)
fix linter error by using conditional expression instead of assigning to element in multiple places
2019-03-11 14:35:26 -04:00
Sebastian Baar
419b68217e update imports 2019-03-10 13:46:53 +01:00
Sebastian Baar
cd97375e63 feat(nativegeocoder): update plugin to v3.2.0 2019-03-10 13:45:30 +01:00
Cam Wiegert
b0dea6dc58 feat(scripts): add docs-json script (#2947) 2019-03-05 13:22:58 -06:00
Adam Bradley
7e090cc6f2 fix(ssr): remove cordova warning during ssr 2019-02-24 00:16:45 -06:00
Adam Bradley
c2029f7927 fix(ssr): fix window references 2019-02-23 17:05:19 -06:00
Adam Bradley
5b1bdc37e0 fix(ssr): fix window references 2019-02-23 16:54:09 -06:00
Adam Bradley
e3e8c85087 fix(ssr): check for window and document 2019-02-23 11:34:16 -06:00
Daniel Sogl
03c01c687e chore(): update changelog 2019-02-20 18:05:14 +01:00
Daniel Sogl
c0684cb3d8 5.2.0 2019-02-20 18:05:08 +01:00
Daniel Sogl
9a85a5cd62 chore(package): bump deps 2019-02-20 17:54:47 +01:00
Hatem
7ae2ad4e3e feat(apple-wallet): update wrapper to release 2.0 (#2935)
* Add AppleWallet class interface

* Update index.ts

* Update index.ts

* update readme

* feat (apple wallet ): add methods to check existence and ellibagility

* lint

* lint

* Update index.ts
2019-02-20 17:42:41 +01:00
Daniel Sogl
c5ae6362d7 refactor(template): update Inject decorator 2019-02-20 17:40:13 +01:00
Daniel Sogl
8b53c04dc5 refactor: optimize plugins for angular treeshaking
BREAKING CHANGE: You can remove the plugin import from the app.module.ts because of the changed Inject decorator
2019-02-20 17:37:39 +01:00
Daniel Sogl
64230319a2 feat(linkedin): delete plugin
BREAKING: Removes linked in plugin (https://engineering.linkedin.com/blog/2018/12/developer-program-updates)
closes: #2925
2019-02-14 16:54:40 +01:00
Daniel Sogl
3d8cdde7eb chore(): update changelog 2019-02-14 16:39:43 +01:00
Daniel Sogl
e1b7aca3a9 5.1.0 2019-02-14 16:39:37 +01:00
Daniel Sogl
9bdb2fac9d feat(app-launcher): add plugin
related: #2889
2019-02-14 16:37:41 +01:00
Daniel Sogl
41c6bcafe6 feat(firebase-crashlytics): add plugin
related: #2889
2019-02-14 16:34:26 +01:00
Daniel Sogl
d55d1d6f7f chore(build): set min core version 2019-02-14 16:29:31 +01:00
Darshan Pania
aed25a6642 feat(clevertap): update for latest CleverTap Cordova plugin (#2931)
* feat(clevertap): add CleverTap plugin

* style(clevertap): cleanup stray lint error

* refactor

* feat(clevertap): update for latest CleverTap Cordova plugin
2019-02-14 11:56:51 +01:00
Edmu
daf04566a1 feat(http): add sendRequest function (#2910)
Adds missing sendRequest feature that has been implemented to cordova-plugin-advanced
which allows overriding global options for single request being sent via this method

Closes #2824
2019-02-14 09:58:22 +01:00
Daniel Sogl
4cb2aee62b chore(package): bump deps 2019-02-14 09:58:03 +01:00
Daniel Sogl
63124f35fd fix(build): remove wrong jsdoc 2019-02-14 09:52:05 +01:00
Doumbia Mahamadou
632dec28ae feat(luxand): add plugin (#2883)
* add Luxand Face SDK plugin

* (fix): alphatize imports for luxand plugin

* fix: changes required

* add git repo url
2019-02-14 09:50:46 +01:00
Carson Chen Zoom
50e05349ec feat(zoom): add plugin (#2916) 2019-02-14 09:49:29 +01:00
Afshawn Lotfi
fd27136de7 feat(magnetometer): add plugin (#2917) 2019-02-14 09:49:00 +01:00
byrner75
2833da472a feat(quikkly): add plugin(#2923) 2019-02-14 09:48:29 +01:00
smelzer
c5ceba1aae feat(photo-viewer): add new params (#2895)
* Change for new 'headers' option

As of 1.1.19 of PhotoViewer, a new PhotoViewer option was added called 'headers' which allows for HTTP headers to be used when requesting the image.  This is useful for authenticated sites.

* Typo in example

* Added new PhotoViewerOptions

There are several other new PhotoViewerOptions besides 'headers' that need to be imported into the latest version.  I was selfishly only concerned about the one I needed, but the build really needs them all.
2019-02-14 09:47:03 +01:00
Keith D. Moore
e1a490357d fix(http): add 'legacy' as valid option to setSSLCertMode (#2913)
* Add 'legacy' as valid option to setSSLCertMode

Fixes #2912

* Add 'legacy' to params for setSSLCertMode

* Update index.ts
2019-02-14 09:46:07 +01:00
mysoret
959a9135e4 feat(abbyy-rtr): add new options (#2915)
* Update index.ts

cordova-plugin-abbyy-rtr-sdk has updated a new field of orientation as per the version 1.0.9

* Update index.ts
2019-02-14 09:45:37 +01:00
Cam Wiegert
fc0a238229 fix(google-play-games-services): correct Cordova plugin name typo (#2920)
closes ionic-team/ionic-docs#424
2019-02-14 09:44:44 +01:00
Daniel Sogl
eeb68f1706 docs(background-geolocation): update usage doc (#2924)
docs(background-geolocation): update usage doc
2019-02-14 09:44:24 +01:00
Daniel Sogl
bceb428690 fix(build): fixed duplicate import identifiers (#2914) 2019-02-14 09:41:26 +01:00
Daniel Sogl
242240c711 chore(lint): update lit-rules 2019-02-14 09:41:16 +01:00
arnauddrain
e9911aa4ad style(background-geolocation): remove trailing whitespace 2019-02-11 14:20:56 +01:00
arnauddrain
04798c7354 docs(background-geolocation): update usage doc 2019-02-11 14:10:53 +01:00
Justin Cuaresma
3aedde55d8 fix(build): fixed duplicate import identifiers 2019-02-01 23:09:50 -05:00
Daniel Sogl
92140cd2db refactor(): small changes 2019-01-26 20:20:55 +01:00
Daniel Sogl
184986f06b docs(readme-gen): remove beta tag 2019-01-24 20:01:57 +01:00
Daniel Sogl
2ce2725b2a docs(gene): remove beta tag 2019-01-24 20:01:03 +01:00
Daniel Sogl
3d8455ae35 docs(readme): remove beta notes 2019-01-24 19:58:56 +01:00
mhartington
bf7ba9bd01 chore(): remove beta flag from release 2019-01-23 14:53:15 -05:00
mhartington
0883240f60 chore(): bump 2019-01-23 14:37:02 -05:00
Nate Drake
b6f340ae82 fix(bluetooth-le): Fix typo in InitializeResult interface definition (#2891) 2019-01-23 16:35:25 +01:00
Daniel
0612aef725 chore(package): update deps 2019-01-23 08:10:51 +01:00
Daniel
4bf7ba6085 chore(build): update update_docs.sh 2019-01-23 08:06:04 +01:00
Daniel
707d40bd83 chore(build): fix lint errors 2019-01-23 08:04:14 +01:00
Daniel
b4e0764d71 chore(build): use node 10 2019-01-23 08:03:18 +01:00
Daniel
c1d7ce13dd chore(build): update utils.inc.sh 2019-01-23 08:02:24 +01:00
Daniel
999853eb32 chore(build): update prepare.sh 2019-01-23 07:58:54 +01:00
Daniel
dfd6714331 chore(package): refresh package-lock 2019-01-23 07:57:02 +01:00
Daniel
898c68bb5e Merge remote-tracking branch 'origin/v5' 2019-01-23 07:54:31 +01:00
Daniel Sogl
9250d49970 chore(): update changelog 2019-01-20 17:09:26 +01:00
Daniel Sogl
2397ef9d60 4.20.0 2019-01-20 17:09:14 +01:00
Daniel Sogl
dbd8b4c080 chore(package): bump deps 2019-01-20 17:06:51 +01:00
Daniel Sogl
1ba6f97082 feat(background-geolocation): add v3 functions and interfaces (#2393)
feat(background-geolocation): add v3 functions and interfaces
2019-01-19 09:42:59 +01:00
Nate Drake
c2f45616ac fix(bluetooth-le): Fix typo in interface definition (#2881) 2019-01-19 09:31:07 +01:00
Nicolas Naso
603d6943ef feat(lottie-splash-screen): add new plugin (#2880)
* feat(lottie-splash-screen): added new plugin

* Update index.ts
2019-01-19 09:30:41 +01:00
JaviRpo
3226f76ef9 feat(web-intent): Add missing type info (#2878) 2019-01-19 09:26:29 +01:00
TobyEb
874be0bb04 feat(colored-browser-tabs): added new plugin (#2876)
* feat(colored-browser-tabs): added new plugin

* feat(colored-browser-tabs): added new plugin

* feat(colored-browser-tabs): added new plugin

* Update index.ts

* Update index.ts
2019-01-19 09:23:32 +01:00
Srđan Tubin
9e6705df7f feat(adjust): add adjust sdk plugin (#2872)
* feat(adjust): add adjust sdk plugin

* Update index.ts
2019-01-19 09:15:44 +01:00
retreatnot
7c46d8c2fc feat(firebase): add clearAllNotifications method (#2867)
* feat(firebase): add clearAllNotifications method

Added new method clearAllNotifications()

https://github.com/arnesson/cordova-plugin-firebase/blob/master/docs/API.md#clearAllNotifications

* remove trailing whitespace
2019-01-19 09:15:35 +01:00
Daniel
7d3ddf89ae chore(): update changelog 2019-01-04 22:22:17 +01:00
Daniel
19b3e8f521 4.19.0 2019-01-04 22:22:10 +01:00
Daniel
c14ea31a8a chore(package): bump deps 2019-01-04 22:21:43 +01:00
AppFeel
707ce1cad9 feat(admob): add plugin (#2864)
* feat(admob): add plugin

* Update index.ts
2019-01-04 22:08:49 +01:00
ewwwgiddings
d33bcb0220 feat(in-app-browser): add 'beforeload' as option (#2863)
Please see the issue I created here for more information: https://github.com/ionic-team/ionic-native/issues/2861

This allows Ionic-Native to be used with the latest features of Cordova InAppBrowser's github.
2019-01-04 22:08:20 +01:00
AppFeel
5df3de7dc0 feat(analytics-firebase): add plugin (#2862)
* feat(analytics-firebase): upload analytics-firebase plugin

* Update index.ts
2019-01-04 22:08:07 +01:00
Matthew Harris
d499a4db8d docs(camera): fix markup (#2858)
camera xml example wasn't wrapped in code brackets
2019-01-04 22:07:46 +01:00
waliu
e2b25deff6 feat(gao-de-location): add plugin (#2857)
* Add a gaode Map Location

* 增加详细的返回信息

* Return type has been added

* Update index.ts
2019-01-04 22:07:01 +01:00
Eric Horodyski
c3de8dfaba feat(baidu-push): add plugin (#2838)
* Initial push.

* Revert tslint.json and switch imports around to be alphabetical.

* Remove non-used plugins to decrease build time.

* Finish the BaiduPush interface.

* Add observables.

* Restore other plugins.

* Restore file formatting.

* Update documentation.

* Update index.ts
2019-01-04 22:06:52 +01:00
Dima Vishnevetsky
448e064012 docs(firebase): add onNotificationOpen usage example (#2835) 2019-01-04 22:06:37 +01:00
João Mourão
6ef854f4f1 docs(camera): update xml in warning part (#2832)
* Update xml in warning part

* Update index.ts
2019-01-04 22:06:17 +01:00
J-Loup
ea3150e99a fix(health): fix typos (#2831) 2019-01-04 22:05:58 +01:00
shinya.saiho
3edd62e56c chore(template): reorder imports (#2839) 2018-12-27 09:31:04 +01:00
Daniel
b63102a5fa Fix random build errors 2018-12-01 16:34:42 +01:00
Daniel
df7ec0146c chore(): update changelog 2018-12-01 16:28:27 +01:00
Daniel
20878516b4 4.18.0 2018-12-01 16:28:20 +01:00
Simon Bang Terkildsen
b166cc51ea fix(local-notifications): update type of the every property (#2825) 2018-12-01 16:21:17 +01:00
Daniel
543fa64b35 Revert "bump deps"
This reverts commit dcac00e7ad.
2018-12-01 15:55:58 +01:00
Daniel
dcac00e7ad bump deps 2018-12-01 15:53:51 +01:00
Luka313
006570483d feat(downloader): add plugin (#2820)
* feat(downloader): add plugin

* Update index.ts
2018-12-01 15:49:50 +01:00
Ziyaddin Sadigov
b7594e201b docs(network): fix typo (#2828) 2018-12-01 15:48:53 +01:00
JMRMourao
1396b61215 docs(camera): improve docs (#2827) 2018-12-01 15:48:41 +01:00
Fabrício Júnio
4f8779a969 refactor(card-io): allow number as type for guideColor (#2815)
* Change guide color to string|number type 

When the platform is Android, the cordova plugin wait for an Int value to set the guide color.

* Update index.ts
2018-11-15 20:11:01 +01:00
nrikiji
7145afa24f feat(line-login): add loginWeb function (#2810)
* add line-login

* Update index.ts

* add params and result type

* Update index.ts

* Update index.ts

* feat(line-login)add method
2018-11-15 07:36:49 +01:00
Appie
66316d29fe refactor(keyboard-setResizeMode): use explicit type (#2811)
This will ensure consumers of this plugin don't need to go on a quest of finding what the possible values are, the values are derived from [here](https://github.com/ionic-team/cordova-plugin-ionic-keyboard#keyboardresizemode)
2018-11-15 07:35:39 +01:00
Suraj Rao
7dcd6b27a0 docs(sqlite): update usage example (#2805)
executeSql takes array param not object according to the function declaration in code.
2018-11-07 08:37:49 +01:00
Daniel
b98393462d chore(): update changelog 2018-11-02 18:04:49 +01:00
Daniel
f9011c89c8 4.17.0 2018-11-02 18:04:43 +01:00
Daniel
4b4b2c45a0 chore: bump deps 2018-11-02 17:54:07 +01:00
Antonio José López
43bfeb487a feat(firebase-authentication): add plugin (#2797)
* feat(firebase-authentication): add plugin

* Update index.ts

* Update index.ts
2018-11-02 17:18:41 +01:00
Philip
accfba8a40 docs(file): update jsdoc (#2757)
* Update index.ts: Fix JSDoc

* Update index.ts

* Update index.ts
2018-11-02 17:17:38 +01:00
nrikiji
dc4183da07 feat(line-login): add plugin (#2782)
* add line-login

* Update index.ts

* add params and result type

* Update index.ts

* Update index.ts
2018-11-02 17:09:15 +01:00
duncan-c
b61b33987f fix(contacts plugin): add the rawId parameter (#2799)
* fix(contacts plugin): add the rawId parameter

This adds the rawId parameter to the contact class which allows the rawId value to be passed to Android which is required for saving contacts.

* Update index.ts
2018-11-02 17:08:43 +01:00
dominic-ks
39b4b85631 docs(social-sharing): update web share api link (#2794)
Just a tiny error in an anchor link there.
2018-10-28 09:38:54 +01:00
Rick Sollet
669dd02285 docs(mobile-accessibility): update usage (#2795) 2018-10-28 09:38:03 +01:00
Ahsan Ayaz
a3bd19769f feat(crashlytics): allow user to set userIdentifier for crashlytics (#2792)
setting user identifier is available since cordova-plugin-firebase@2.0.3 (https://github.com/arnesson/cordova-plugin-firebase/blob/master/CHANGELOG.md#features)
added the functionality to the firebase ionic native plugin
2018-10-27 11:18:04 +02:00
Martin Kausche
ff3ef094e0 docs(admob-plus): fix the Plugin Name, added repo (#2781)
The newly added wrapper for Admob __Plus__  had Admob __Free__ as its name.

This resulted in a broken docs-Page, _Admob Free_ occurred twice, both showing infos for _Admob Plus_
2018-10-18 16:24:46 +02:00
Daniel
2933d40cdc chore(): update changelog 2018-10-17 19:55:57 +02:00
Daniel
874ae88ff4 4.16.0 2018-10-17 19:55:52 +02:00
Marco
a02ca715e9 docs(one-signal): fix target url for notification icon (#2780)
The correct path is described at the official documentation from OneSignal. 
Link: https://documentation.onesignal.com/docs/customize-notification-icons
2018-10-17 19:53:44 +02:00
Daniel Sogl
336b3ff89b fix(local-notifications): add missing functions (#2779)
closes: #2778
2018-10-17 19:53:22 +02:00
Stephen Wolff
2aa73b5546 feat(nfc): add NFC readerMode (#2777)
* Work on NFC reader-mode

* Remove dist files, not needed in plugin development folder

* Revert package changes

This reverts part of commit 24a893fdcf.

* Update index.ts

* Correct the flags and return types for the wrapper

* Add reader flags.

Thanks @sfaizanh
2018-10-17 19:52:52 +02:00
Jordan Benge
99cebcba0b feat(lastCam): add plugin (#2759)
* feat(lastCam): add plugin

* feat: added watchRecordingTimer observer

* fix(lastCam): update plugin name

* refactor: lint file and refactor description
2018-10-17 19:52:39 +02:00
Paul Stelzer
6c99ec8033 feat(admob-plus): Add admob-plus (#2753) 2018-10-17 19:52:25 +02:00
Faizan Hasan
a167bd85aa fix(keyboard) isVisible property missing (#2751)
* isVisible property missing

* fix(lint)

* fix(lint) CI

* fix(CordovaProperty) Imported CordovaProperty from core
2018-10-14 13:31:01 +02:00
Niklas Merz
487acd603b refactor(network): add enum for connection types (#2754) 2018-10-14 13:30:34 +02:00
Sultan
fb4d2640c1 docs(apple-wallet): update example (#2755)
* Add AppleWallet class interface

* Update index.ts

* Update index.ts

* update readme
2018-10-14 13:30:25 +02:00
Markus Karileet
4468b520ad feat(speechkit): plugin updated with voice parameter (#2761) 2018-10-14 13:30:11 +02:00
BradyShober
1a2dc3ee73 feat(firebase-messaging): add revokeToken function (#2763) 2018-10-14 13:30:00 +02:00
Max Lynch
00a1674fd6 Merge pull request #2758 from ajcrites/geo-msg
docs(geolocation): use more generic / professional message
2018-10-03 18:07:12 -05:00
Andrew Crites
2b14bd979e docs(geolocation): use more generic / professional message 2018-10-03 18:59:43 -04:00
Daniel Sogl
fcd6d26727 fix(keyboard): add missing property 2018-09-25 17:11:43 +02:00
Daniel
f95003cbe1 chore(): update changelog 2018-09-25 17:02:43 +02:00
Daniel
8e5f2e5ab3 4.15.0 2018-09-25 17:02:35 +02:00
Sultan
307477da78 feat(plugins): add AppleWallet (#2740)
* Add AppleWallet class interface

* Update index.ts

* Update index.ts
2018-09-25 16:57:01 +02:00
Daniel
f691883a29 disable failing unit test (tmp) 2018-09-25 16:54:58 +02:00
Daniel
0d5d4f30a9 docs(keyboard): fix small typo 2018-09-25 16:51:53 +02:00
Ken Sodemann
1457a1698b fix(keyboard): use cordova-plugin-ionic-keyboard (#2743)
Previous was using the deprecated keyboard plugin.

Fixes #2306
2018-09-25 16:50:29 +02:00
Rahul Pandey
bfd46eed16 feat(SqliteDbCopy):add plugin (#2731)
* feat(SqliteDbCopy):add plugin

* refactor(SqliteDbCopy):add success/error index

* Update index.ts
2018-09-25 16:44:53 +02:00
Bart Wesselink
3eff280127 feat(siri-shortcuts): Add clear option for the activated shortcut (#2734)
* feat(siri-shortcuts): Add clear option for the getActivatedShortcutOperation

* Update index.ts
2018-09-25 16:43:47 +02:00
Benoit Perrin
8116ddd139 feat(plugins): add web-server plugin (#2726)
* feat(plugins): add web-server plugin

Add support of the cordova-plugin-webserver plugin, to start a
a dynamic content web server on iOS and android devices.

* Update index.ts
2018-09-25 16:42:07 +02:00
Daniel
a6bcc9affd feat(taptic-engine): add missing functions and types 2018-09-18 22:35:58 +02:00
Daniel
c0d8c99e8d Merge remote-tracking branch 'origin/master' 2018-09-18 22:29:20 +02:00
Daniel
fe9655ed84 chore(build): fix publish script 2018-09-18 16:08:49 +02:00
Daniel
41c034cc19 chore(): update changelog 2018-09-18 16:03:39 +02:00
Daniel
89631a9fa6 4.14.0 2018-09-18 16:03:29 +02:00
Daniel
04db233b33 feat(chooster): add plugin
closes: #2612
2018-09-18 15:58:57 +02:00
Daniel
10d222dcea feat(local-notifications): add missing functions 2018-09-18 15:37:39 +02:00
Daniel
640da1b618 docs(ibeacon): typo 2018-09-18 15:22:17 +02:00
Daniel
aecb0f9460 chore(package): bump dgeni 2018-09-18 15:17:21 +02:00
Daniel
d077c48205 fix(web-intent): add missing properties
closes: #2701
2018-09-18 11:08:45 +02:00
Daniel
49d27e816c refactor(email-composer): reorder code 2018-09-18 11:03:02 +02:00
Daniel Sogl
3699fa9b50 fix(mobile-accessibility): add correct pluginRef
closes: #1860
2018-09-18 10:12:27 +02:00
Daniel
ab4f1f5bbe docs(onesignal): hide option from docs
closes: #1969
2018-09-18 10:08:24 +02:00
Daniel
51006a76a0 feat(onesignal): add missing functions
closes: #2504
2018-09-18 10:05:34 +02:00
Rishi Hindocha
8bab32173a fix(onesignal): add missing setLocationShared method (#2723)
* fix(onesignal): add missing setLocationShared method

* Update index.ts
2018-09-18 09:40:55 +02:00
Daniel Sogl
3ef9593704 fix(push): add missing Chanel options
closes: #2712
2018-09-18 09:30:09 +02:00
Daniel
ffae843c0f chore(): update changelog 2018-09-17 18:54:45 +02:00
Daniel
33e4392b63 refactor: remove unused lint rules 2018-09-17 17:59:41 +02:00
Daniel
9acbb9fcd6 refactor: follow only-arrow-functions lint rule 2018-09-17 17:56:35 +02:00
Daniel
c1e1c5cb79 refactor: follow order-imports lint rule 2018-09-17 17:50:36 +02:00
Daniel
0c7cfeeeb8 refactor: update lint rules 2018-09-17 17:09:46 +02:00
Daniel
a7830693af chore(scripts): remove fs-extra-promise 2018-09-17 15:14:37 +02:00
Daniel
b60d5d4851 chore(): update changelog 2018-09-15 11:15:09 +02:00
Daniel
0c4aeddd1b 4.13.0 2018-09-15 11:15:04 +02:00
Daniel
667de5ba26 Revert "chore(): update changelog"
This reverts commit 2c2c1e482c.
2018-09-15 11:14:49 +02:00
Daniel
2dc7ee8916 Revert "4.12.3"
This reverts commit 7c419b48ad.
2018-09-15 11:14:41 +02:00
Daniel
2c2c1e482c chore(): update changelog 2018-09-15 11:05:56 +02:00
Daniel
7c419b48ad 4.12.3 2018-09-15 11:05:48 +02:00
弄潮儿
0b9717636c feat(janalytics): add plugin (#2711)
* add janalytics native plugin

* add new plugin of wechat

* rm plugin wechat

* Update index.ts
2018-09-15 11:02:53 +02:00
弄潮儿
10ac9ff9de feat(wechat): add plugin (#2716)
* add janalytics native plugin

* add new plugin of wechat

* rm janalytics plugin

* Update index.ts

* Update index.ts

* Update index.ts
2018-09-15 11:01:10 +02:00
Paul Stelzer
90d75af9d1 feat(branch-io): Add branch.io attribution and invitation plugin (#2691)
* feat(branch-io): Add branch.io attribution and invitation plugin

* Update index.ts
2018-09-15 10:55:01 +02:00
Paul Stelzer
3b3f942ed5 feat(appsflyer): Added Appsflyer Cordova SDK as ionic native plugin (#2690)
* feat(appsflyer): Added Appsflyer Cordova SDK

* fix(appsflyer): Corrected promises

* fix(appsflyer): Add description

* fix(appsflyer): Missing semicolon

* Update index.ts
2018-09-15 10:48:17 +02:00
Niklas Merz
9601a64227 feat(calldirectory): add log function (#2708)
* feat(calldirectory): add log function

* Update index.ts
2018-09-15 10:43:11 +02:00
Paul Stelzer
22fd49b5d3 fix(in-app-review): Transfer Plugin to the correct folder (#2688) 2018-09-15 10:41:20 +02:00
ratnakar24
890129bfda fix(ms-adal): Update createAuthenticationContext (#2705)
* Update createAuthenticationContext

Update createAuthenticationContext to include validateAuthority flag since it is throwing Error: Fail to valid authority with errors: [50049].
Without the flag it is throwing Error: Fail to valid authority with errors: [50049].

* Update index.ts
2018-09-15 10:39:41 +02:00
Tyler Hall
6a9a871758 docs(onesignal): update incorrect path to hook file (#2715) 2018-09-15 10:39:14 +02:00
Todd Vrba
ac467c50ac feat(mixpanel): Update/add functions (#2697)
* Update mixpanel typings for Ionic native.

* Update index.ts
2018-09-15 10:37:52 +02:00
iAmMrHands
267149b16f feat(local-notifications): Added local additional local notification action fields (#2713) 2018-09-15 10:37:24 +02:00
somq
7047920a2a fix(bluetooth-le): Various methods fixes (#2707)
* feat(bluetooth-le): implemented all available methods and refactored existing ones

* fix(bluetooth-le): Removed @memberof jsdoc annotations to avoid ci check failure

* fix(bluetooth-le): Fixed multiple jsdocs typos/misformats preventing CI to pass checks while generating readmes

* fix(bluetooth-le): Removed package-lock.json

* Update index.ts

* fix(bluetooth-le): Fixed stringToBytes method, now properly takes a string as arg and return an Uint8Array

* fix(bluetooth-le): getAdapterInfo now returns an Observable for easier tracking of adapter states

* fix(bluetooth-le): Fixed missing cordova param (observable: true) in initializePeripheral method, fixed getAdapterInfo method, now return an adapterInfo object

* chore(bluetooth-le): Removed @description markup to allow a proper doc auto-format

* fix(bluetooth-le): Reverted getAdapterInfo method to a Promise return
2018-09-15 10:37:03 +02:00
Daniel
aad814fcf1 chore(): update changelog 2018-08-31 19:09:35 +02:00
Daniel
03d6b2373c 4.12.2 2018-08-31 19:09:24 +02:00
Daniel Kasper
d82e675442 fix(in-app-browser): fix mandatory options (#2684)
fix(in-app-browser): fix mandatory options
2018-08-31 19:05:33 +02:00
Daniel
1e84e23fd9 chore(): update changelog 2018-08-31 14:26:00 +02:00
Daniel
f3f12cb306 4.12.1 2018-08-31 14:25:53 +02:00
Daniel
b3bd0a83c7 chore(package): bump deps 2018-08-31 14:24:28 +02:00
rvdleun
03e4f0e439 feat(push): Added voip property to IOSPushOptions (#2681)
* feat(push): Added missing voip property to IOSPushOptions

* Update index.ts
2018-08-31 14:23:40 +02:00
Pandiarajan Nagarajan
a73146648f feat(aes256): Added new utility methods to generate secure key and secure IV (#2675) 2018-08-31 14:21:30 +02:00
Daniel Kasper
d90724ef70 feat(in-app-browser): Add missing InAppBrowserOptions-properties (#2669) 2018-08-31 14:21:19 +02:00
Brad Mallow
be0dc3dac4 fix(open-native-settings): allow supported input (#2666)
* allow supported input

* Update index.ts
2018-08-31 14:21:07 +02:00
Daniel
a0a64da518 chore(package): bump deps 2018-08-25 12:02:03 +02:00
somq
591ee87e05 feat(bluetooth-le): add bluetooth-le plugin (#2651)
* feat(bluetooth-le): implemented all available methods and refactored existing ones

* fix(bluetooth-le): Removed @memberof jsdoc annotations to avoid ci check failure

* fix(bluetooth-le): Fixed multiple jsdocs typos/misformats preventing CI to pass checks while generating readmes

* fix(bluetooth-le): Removed package-lock.json

* Update index.ts
2018-08-25 12:01:05 +02:00
Daniel
8db1dbef71 feat(http): add setSSLCertMode function 2018-08-21 20:39:21 +02:00
Daniel
73ae92d77c chore(): update changelog 2018-08-17 00:33:54 +02:00
Daniel
3c2753df64 4.12.0 2018-08-17 00:33:47 +02:00
Daniel
9035476833 chore(package): bump package-lock 2018-08-17 00:33:34 +02:00
Daniel
5f5e605e66 Merge remote-tracking branch 'origin/master' 2018-08-16 22:23:09 +02:00
Daniel
ea6746d134 chore(build): refactor 2018-08-16 22:23:03 +02:00
Daniel Sogl
753fa4a7a4 Update CHANGELOG.md 2018-08-16 22:19:18 +02:00
Daniel
ff784a4377 Auto stash before revert of "4.12.0" 2018-08-16 22:18:20 +02:00
Daniel
0764e28408 Revert "4.12.0"
This reverts commit 5825932e03.
2018-08-16 22:18:04 +02:00
Daniel
0197c88a03 chore(): update changelog 2018-08-16 22:10:36 +02:00
Daniel
5825932e03 4.12.0 2018-08-16 22:10:23 +02:00
Daniel
bccc8ac379 chore(package): update package-lock 2018-08-16 22:10:15 +02:00
Daniel
3eb382d438 chore(package): bump deps 2018-08-16 22:06:19 +02:00
Ashwin Dinesh
ca9a702808 feat(webengage): add optional config with initialization (#2637)
* feat(webengage): add optional config with initialization

* Update index.ts
2018-08-16 22:01:54 +02:00
Daniel Sogl
3f415f9bef fix(photo-library): interface missing includeVideos
Co-authored-by: @devdaddy 

closes: #2624
2018-08-16 21:58:30 +02:00
Luis Enrique Perez Alvarez
0c6d1eabe2 docs(onesignal): fix typo
OneSignla -> OneSignal
2018-08-16 21:56:11 +02:00
Niklas Merz
61fecf511b docs(firebase-dynamic-links): Change example (#2646)
* docs(firebase-dynamic-links): Change example

* Update index.ts
2018-08-16 21:55:59 +02:00
Daniel Ehrhardt
2ac52822b8 fix(extended-device-information): Fixed Memory Display Bug (#2641)
* Fixed Memory Display Bug with ExtendedDeviceInformation Plugin

* Update index.ts

* Update index.ts
2018-08-16 21:55:51 +02:00
rupendraa
229b62c10b feat(local-notifications): add new foreground property (#2633)
* Update index.ts

* Update index.ts
2018-08-16 21:55:17 +02:00
Gordeev Artem
9b4fd02fa5 feat(fabric): add fabric plugin (#2618)
* feat(fabric): add fabric plugin

* Update index.ts
2018-08-16 21:54:39 +02:00
Marat Dyatko
d10777a33b fix(network): bind listener to document instead of window (#2622)
We noticed that in some cases network state listeners are stopped triggering, but `navigator.onLine` still reflects the state correctly. I used the following code to debug and found out an issue with `window` and `document` difference:

```js
window.addEventListener("online", ()=>console.warn('WINDOW ONLINE'), false); // won't be triggered
window.addEventListener("online", ()=>console.warn('WINDOW ONLINE'), false); // won't be triggered
document.addEventListener("online", ()=>console.warn('DOCUMENT ONLINE'), false); // triggered
document.addEventListener("online", ()=>console.warn('DOCUMENT ONLINE'), false); // triggered
```

Also, according to plugin documentation, listeners should be bound to `document`: https://github.com/apache/cordova-plugin-network-information#offline
2018-08-01 04:41:51 -04:00
Daniel
4f26069ca6 chore(): update changelog 2018-07-29 10:05:10 +02:00
Daniel
40571e5c99 4.11.0 2018-07-29 10:04:57 +02:00
Daniel
83194f616b Revert "chore(package): upgrade fs-extra"
This reverts commit 4297c3d43e.
2018-07-29 09:59:53 +02:00
Daniel
b1f4df530a rerun build 2018-07-29 09:57:03 +02:00
Daniel
4297c3d43e chore(package): upgrade fs-extra 2018-07-29 09:52:36 +02:00
Daniel
95d495b468 chore(package): bump deps 2018-07-29 09:44:22 +02:00
Daniel
f0989d1b96 chore(package): upgrade to angular 5
BREAKING: Ionic Native v4 requires now Angular 5
2018-07-29 09:21:43 +02:00
Daniel
c113417878 docs(readme): update readme 2018-07-29 09:20:23 +02:00
Daniel
cedd6df423 Merge remote-tracking branch 'origin/master' 2018-07-29 09:16:11 +02:00
Daniel
4b14ce2eec refactor(http): change return type to any 2018-07-29 09:16:00 +02:00
pwilkniss
27d380ef4b feat(clevertap): add CleverTap plugin (#2609)
* feat(clevertap): add CleverTap plugin

* style(clevertap): cleanup stray lint error

* refactor
2018-07-29 09:13:37 +02:00
Ashwin Dinesh
bd5bd7ea9d feat(webengage): add webengage plugin (#2604)
* feat(webengage): add webengage plugin

* refactor
2018-07-29 09:11:05 +02:00
Jan Piotrowski
c6713862c5 refactor: Improve Ionic Native warnings (#2611)
- Explicitly spell out that this is coming from "Ionic Native", instead of just "Native"
- Improve sentence that explains 2 most common reasons for missing Cordova
2018-07-29 09:10:48 +02:00
Daniel
3b32e19bf1 feat(facebook): add getDeferredApplink function
closes: #2510
2018-07-29 09:10:17 +02:00
Daniel
4092831754 fix(http): add correct return types for downloadFile and uploadFile
closes: #2615
2018-07-29 08:57:16 +02:00
Daniel Sogl
c2fe5f8336 docs(contacts): mark as deprecated 2018-07-27 21:39:58 +02:00
Daniel
3f9067d090 chore(): update changelog 2018-07-25 12:57:52 +02:00
Daniel
36a4e81fe4 4.10.1 2018-07-25 12:57:38 +02:00
Gustavo Maximiliano Cortez
79cb478c26 fix(user-agent): Plugin not installed (#2607)
fix(user-agent): Plugin not installed
2018-07-24 16:59:19 +02:00
Dominik Geng
b635ba99ea fix(nfs): Optional arguments for records like textRecord (#2605)
fix(nfs): Optional arguments for records like textRecord
2018-07-24 16:59:02 +02:00
372 changed files with 38042 additions and 15921 deletions

46
.github/workflows/nodejs.yml vendored Normal file
View File

@@ -0,0 +1,46 @@
name: Node CI
on: [push]
jobs:
build:
runs-on: ubuntu-latest
strategy:
matrix:
node-version: [14.x]
steps:
- uses: actions/checkout@v1
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v1
with:
node-version: ${{ matrix.node-version }}
- name: Cache ionic site
id: ionic-site
uses: actions/cache@v2
with:
path: ~/ionic-site/
key: ionic-site-${{ hashFiles('**/package-lock.json') }}
- name: Setup git
run: bash ./scripts/git/config.sh
- name: Prepare ionic-site repo
if: github.ref == 'refs/heads/master'
run: bash ./scripts/docs/prepare.sh
- name: Install dependencies
run: npm ci
- name: Lint
run: npm run lint
- name: Build
run: npm run build
- name: Test
run: npm run test
- name: Readmes
run: npm run readmes
- name: Deploy doc
if: github.ref == 'refs/heads/master'
run: bash ./scripts/docs/update_docs.sh
env:
GITHUB_PROJECT_REPONAME: ${{ github.repository }}
GITHUB_SHA1: ${{ github.sha }}

38
.github/workflows/npmpublish.yml vendored Normal file
View File

@@ -0,0 +1,38 @@
name: Node.js Package
on:
release:
types: [created]
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v1
- uses: actions/setup-node@v1
with:
node-version: 14
- name: Install dependencies
run: npm ci
- name: Lint
run: npm run lint
- name: Build
run: npm run build
- name: Test
run: npm run test
- name: Readmes
run: npm run readmes
publish-npm:
needs: build
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v1
- uses: actions/setup-node@v1
with:
node-version: 14
registry-url: https://registry.npmjs.org/
- run: npm ci
- run: npm run shipit
env:
NODE_AUTH_TOKEN: ${{secrets.NPM_TOKEN}}

1
.gitignore vendored
View File

@@ -4,6 +4,7 @@ node_modules/
.tmp
aot/
scripts/ionic-native-bower
scripts/docs-json/*.json
dist/
src/@ionic-native/plugins/**/ngx
*.d.ts

1
.husky/.gitignore vendored Normal file
View File

@@ -0,0 +1 @@
_

4
.husky/pre-commit Executable file
View File

@@ -0,0 +1,4 @@
#!/bin/sh
. "$(dirname "$0")/_/husky.sh"
npx --no-install lint-staged

4
.husky/pre-push Executable file
View File

@@ -0,0 +1,4 @@
#!/bin/sh
. "$(dirname "$0")/_/husky.sh"
npm test

9
.prettierignore Normal file
View File

@@ -0,0 +1,9 @@
package.json
node_modules
.github
.vscode
dist
CHANGELOG.md
.husky
.prettierignore
LICENSE

3
.vscode/settings.json vendored Normal file
View File

@@ -0,0 +1,3 @@
{
"typescript.tsdk": "node_modules/typescript/lib"
}

File diff suppressed because it is too large Load Diff

View File

@@ -2,15 +2,14 @@
This is a short guide on creating new plugin wrappers for Ionic Native.
## Creating Plugin Wrappers
First, let's start by creating a new plugin wrapper from template.
```
// Call this command, and replace PluginName with the name of the plugin you wish to add
// Make sure to capitalize the first letter, or use CamelCase if necessary.
gulp plugin:create -n PluginName
// add -m flag to get a minimal template to start with
@@ -71,7 +70,7 @@ export class Geolocation {
Here, `plugin` is the name of the plugin package on npm and used when calling `cordova plugin add`.
`pluginRef` refers to the where on `window` the underlying Cordova plugin is normally exposed. For example, in the case of the Cordova Geolocation plugin, normally you would make calls like `window.navigator.geolocation.getCurrentPosition({}, success, error)`, so the `pluginRef` in this case is `navigator.geolocation`.
`pluginRef` refers to the where on `window` the underlying Cordova plugin is normally exposed. For example, in the case of the Cordova Geolocation plugin, normally you would make calls like `window.navigator.geolocation.getCurrentPosition({}, success, error)`, so the `pluginRef` in this case is `navigator.geolocation`.
#### Class Methods
@@ -86,9 +85,7 @@ Let's take a look at `getCurrentPosition` first.
It's just a stub. The `return` is only there to keep the TypeScript type-checker from complaining since we indicate that `getCurrentPosition` returns a `Promise<Geoposition>`.
By default, the `@Cordova` decorator wraps the plugin callbacks in a Promise that resolves when the success callback is called and rejects when the error callback is called. It also ensures that Cordova and the underlying plugin are available, and prints helpful diagnostics if they aren't.
You'll also notice that `getCurrentPosition` is a static method. That's because the plugin class is just a utility class to call the underlying Cordova plugin methods, it's not an instance and has no state.
By default, the `@Cordova` decorator wraps the plugin callbacks in a Promise that resolves when the success callback is called and rejects when the error callback is called. It also ensures that Cordova and the underlying plugin are available, and prints helpful diagnostics if they aren't.
Next, let's look at the `watchPosition` method.
@@ -105,7 +102,7 @@ The `@Cordova` decorator has a few more options now.
`observable` indicates that this method may call its callbacks multiple times, so `@Cordova` wraps it in an [`Observable`](https://github.com/ionic-team/ionic-native#promises-and-observables) instead of a Promise.
`callbackOrder` refers to the method signature of the underlying Cordova plugin, and tells Ionic Native which arguments are the callbacks to map to the wrapping Promise or Observable. In this case, the signature is [`watchPosition(success, error, options)`](https://github.com/apache/cordova-plugin-geolocation#navigatorgeolocationwatchposition), so we need to tell `@Cordova` that the callbacks are the first arguments, not the last arguments. For rare cases, you can also specify the options `successIndex` and `errorIndex` to indicate where in the argument list the callbacks are located.
`callbackOrder` refers to the method signature of the underlying Cordova plugin, and tells Ionic Native which arguments are the callbacks to map to the wrapping Promise or Observable. In this case, the signature is [`watchPosition(success, error, options)`](https://github.com/apache/cordova-plugin-geolocation#navigatorgeolocationwatchposition), so we need to tell `@Cordova` that the callbacks are the first arguments, not the last arguments. For rare cases, you can also specify the options `successIndex` and `errorIndex` to indicate where in the argument list the callbacks are located.
`clearFunction` is used in conjunction with the `observable` option and indicates the function to be called when the Observable is disposed.
@@ -128,43 +125,50 @@ We have very precise rules over how our git commit messages can be formatted. Th
`type(scope): subject`
#### Type
Must be one of the following:
* **fix**: A bug fix
* **feat**: A new feature
* **docs**: Documentation only changes
* **style**: Changes that do not affect the meaning of the code (white-space, formatting, missing semi-colons, etc)
* **refactor**: A code change that neither fixes a bug nor adds a feature
* **perf**: A code change that improves performance
* **test**: Adding missing tests
* **chore**: Changes to the build process or auxiliary tools and libraries such as documentation generation
- **fix**: A bug fix
- **feat**: A new feature
- **docs**: Documentation only changes
- **style**: Changes that do not affect the meaning of the code (white-space, formatting, missing semi-colons, etc)
- **refactor**: A code change that neither fixes a bug nor adds a feature
- **perf**: A code change that improves performance
- **test**: Adding missing tests
- **chore**: Changes to the build process or auxiliary tools and libraries such as documentation generation
#### Scope
The scope could be anything specifying place of the commit change. For example, the name of the plugin being changed
#### Subject
The subject contains succinct description of the change:
* use the imperative, present tense: "change" not "changed" nor "changes"
* do not capitalize first letter
* do not place a period (.) at the end
* entire length of the commit message must not go over 50 characters
- use the imperative, present tense: "change" not "changed" nor "changes"
- do not capitalize first letter
- do not place a period (.) at the end
- entire length of the commit message must not go over 50 characters
### Ionic Native Decorators
#### Plugin
A decorator to wrap the main plugin class, and any other classes that will use `@Cordova` or `@CordovaProperty` decorators. This decorator accepts the following configuration:
- *pluginName*: Plugin name, this should match the class name
- *plugin*: The plugin's NPM package, or Github URL if NPM is not available.
- *pluginRef*: The plugin object reference. Example: 'cordova.file'.
- *repo*: The plugin's Github Repository URL
- *install*: (optional) Install command. This is used in case a plugin has a custom install command (takes variables).
- *platforms*: An array of strings indicating the supported platforms.
- _pluginName_: Plugin name, this should match the class name
- _plugin_: The plugin's NPM package, or Github URL if NPM is not available.
- _pluginRef_: The plugin object reference. Example: 'cordova.file'.
- _repo_: The plugin's Github Repository URL
- _install_: (optional) Install command. This is used in case a plugin has a custom install command (takes variables).
- _platforms_: An array of strings indicating the supported platforms.
#### Cordova
Checks if the plugin and the method are available before executing. By default, the decorator will wrap the callbacks of the function and return a Promise. This decorator takes the following configuration options:
- **observable**: set to true to return an Observable
- **methodName**: an optional name of the cordova plugins method name (if different from wrappers method name)
- **clearFunction**: an optional name of a method to clear the observable we returned
- **clearWithArgs**: This can be used if clearFunction is set. Set this to true to call the clearFunction with the same arguments used in the initial function.
- **sync**: set to true if the method should return the value as-is without wrapping with Observable/Promise
@@ -181,6 +185,7 @@ Checks if the plugin and the method are available before executing. By default,
- **platforms**: array of strings indicating supported platforms. Specify this if the supported platforms doesn't match the plugin's supported platforms.
Example:
```ts
@Cordova()
someMethod(): Promise<any> { return; }
@@ -190,20 +195,25 @@ syncMethod(): number { }
```
#### CordovaProperty
Checks if the plugin and property exist before getting/setting the property's value
Example:
```ts
@CordovaProperty()
someProperty: string;
```
#### CordovaCheck
Checks if the plugin exists before performing a custom written method. By default, the method will return a promise that will reject with an error if the plugin is not available. This wrapper accepts two optional configurations:
Checks if the plugin exists before performing a custom written method. By default, the method will return a promise that will reject with an error if the plugin is not available. This wrapper accepts two optional configurations:
- **observable**: set to true to return an empty Observable if the plugin isn't available
- **sync**: set to true to return nothing if the plugin isn't available
Example:
```ts
@CordovaCheck()
someMethod(): Promise<any> {
@@ -212,9 +222,11 @@ someMethod(): Promise<any> {
```
#### CordovaFunctionOverride
Wrap a stub function in a call to a Cordova plugin, checking if both Cordova and the required plugin are installed.
Example:
```ts
@CordovaFunctionOverride()
someMethod(): Observable<any> { return; }

115
README.md
View File

@@ -6,18 +6,24 @@ Ionic Native is a curated set of wrappers for Cordova plugins that make adding a
Ionic Native wraps plugin callbacks in a Promise or Observable, providing a common interface for all plugins and making it easy to use plugins with Angular change detection.
Ionic Native is available in two versions:
1. Ionic Native [Community Edition](https://ionicframework.com/docs/native/community), featuring open source, community-maintained Cordova and Capacitor plugins and APIs.
2. Ionic Native [Enterprise Edition](https://ionicframework.com/docs/enterprise), featuring a library of Premier plugins and solutions that are fully supported and maintained by the Ionic team, with access to Ionic experts and a guaranteed response SLA to mission-critical app development.
## Capacitor Support
In addition to Cordova, Ionic Native also works with [Capacitor](https://capacitor.ionicframework.com), Ionic's official native runtime. Basic usage below. For complete details, [see the Capacitor documentation](https://capacitor.ionicframework.com/docs/cordova/using-cordova-plugins).
## Installation
Run following command to install Ionic Native in your project.
```bash
npm install @ionic-native/core@beta --save
npm install @ionic-native/core --save
```
You also need to install the Ionic Native package for each plugin you want to add. Please see the [Ionic Native documentation](https://ionicframework.com/docs/native/) for complete instructions on how to add and use the plugins.
**NOTE: to use Ionic Native v5, you must use the `@beta` tag when installing any NPM package.**
## Documentation
For the full Ionic Native documentation, please visit [https://ionicframework.com/docs/native/](https://ionicframework.com/docs/native/).
@@ -25,7 +31,8 @@ For the full Ionic Native documentation, please visit [https://ionicframework.co
### Basic Usage
#### Ionic/Angular apps
To use a plugin, import and add the plugin provider to your `@NgModule`, and then inject it where you wish to use it.
To use a plugin, import and add the plugin provider to your `@NgModule`, and then inject it where you wish to use it.
Make sure to import the injectable class from the `/ngx` directory as shown in the following examples:
```typescript
@@ -78,61 +85,106 @@ export class MyComponent {
}
```
#### Ionic/React apps
React apps must use Capacitor to build native mobile apps. However, Ionic Native (and therefore, Cordova plugins) can still be used.
```bash
# Install Core library (once per project)
npm install @ionic-native/core
# Install Ionic Native TypeScript wrapper
npm install @ionic-native/barcode-scanner
# Install Cordova plugin
npm install phonegap-plugin-barcodescanner
# Update native platform project(s) to include newly added plugin
ionic cap sync
```
Import the plugin object then use its static methods:
```typescript
import { BarcodeScanner } from '@ionic-native/barcode-scanner';
const Tab1: React.FC = () => {
const openScanner = async () => {
const data = await BarcodeScanner.scan();
console.log(`Barcode data: ${data.text}`);
};
return (
<IonPage>
<IonHeader>
<IonToolbar>
<IonTitle>Tab 1</IonTitle>
</IonToolbar>
</IonHeader>
<IonContent>
<IonButton onClick={openScanner}>Scan barcode</IonButton>
</IonContent>
</IonPage>
);
};
```
#### ES2015+/TypeScript
These modules can work in any ES2015+/TypeScript app (including Angular/Ionic apps). To use any plugin, import the class from the appropriate package, and use it's static methods.
```js
import { Camera } from '@ionic-native/camera';
document.addEventListener('deviceready', () => {
Camera.getPicture()
.then((data) => console.log('Took a picture!', data))
.catch((e) => console.log('Error occurred while taking a picture', e));
.then(data => console.log('Took a picture!', data))
.catch(e => console.log('Error occurred while taking a picture', e));
});
```
#### AngularJS
Ionic Native generates an AngularJS module in runtime and prepares a service for each plugin. To use the plugins in your AngularJS app:
1. Download the latest bundle from the [Github releases](https://github.com/ionic-team/ionic-native/releases) page.
2. Include it in `index.html` before your app's code.
3. Inject `ionic.native` module in your app.
4. Inject any plugin you would like to use with a `$cordova` prefix.
```js
angular.module('myApp', ['ionic.native'])
.controller('MyPageController', function($cordovaCamera) {
$cordovaCamera.getPicture()
.then(
function(data) {
console.log('Took a picture!', data);
},
function(err) {
console.log('Error occurred while taking a picture', err);
}
);
});
angular.module('myApp', ['ionic.native']).controller('MyPageController', function ($cordovaCamera) {
$cordovaCamera.getPicture().then(
function (data) {
console.log('Took a picture!', data);
},
function (err) {
console.log('Error occurred while taking a picture', err);
}
);
});
```
#### Vanilla JS
To use Ionic Native in any other setup:
1. Download the latest bundle from the [Github releases](https://github.com/ionic-team/ionic-native/releases) page.
2. Include it in `index.html` before your app's code.
3. Access any plugin using the global `IonicNative` variable.
```js
document.addEventListener('deviceready', function() {
IonicNative.Camera.getPicture()
.then(
function(data) {
console.log('Took a picture!', data);
},
function(err) {
console.log('Error occurred while taking a picture', err);
}
);
document.addEventListener('deviceready', function () {
IonicNative.Camera.getPicture().then(
function (data) {
console.log('Took a picture!', data);
},
function (err) {
console.log('Error occurred while taking a picture', err);
}
);
});
```
### Mocking and Browser Development (Ionic/Angular apps only)
Ionic Native makes it possible to mock plugins and develop nearly the entirety of your app in the browser or in `ionic serve`.
@@ -192,8 +244,8 @@ class CameraMock extends Camera {
entryComponents: [MyApp, HomePage],
providers: [
{ provide: ErrorHandler, useClass: IonicErrorHandler },
{ provide: Camera, useClass: CameraMock }
]
{ provide: Camera, useClass: CameraMock },
],
})
export class AppModule {}
```
@@ -208,7 +260,6 @@ Spent way too long diagnosing an issue only to realize a plugin wasn't firing or
Let us know or submit a PR! Take a look at [the Developer Guide](https://github.com/ionic-team/ionic-native/blob/master/DEVELOPER.md) for more on how to contribute. :heart:
# Credits
Ibby Hadeed - [@ihadeed](https://github.com/ihadeed)

View File

@@ -11,7 +11,7 @@ const flagConfig = {
string: ['port', 'version', 'ngVersion', 'animations'],
boolean: ['dry-run'],
alias: { p: 'port', v: 'version', a: 'ngVersion' },
default: { port: 8000 }
default: { port: 8000 },
},
flags = minimist(process.argv.slice(2), flagConfig);
@@ -24,7 +24,7 @@ gulp.task('lint', () => {
.pipe(
tslint({
formatter: 'verbose',
configuration: 'tslint.json'
configuration: 'tslint.json',
})
)
.pipe(tslint.report());
@@ -32,9 +32,7 @@ gulp.task('lint', () => {
gulp.task('plugin:create', () => {
if (flags.n && flags.n !== '') {
const src = flags.m
? './scripts/templates/wrap-min.tmpl'
: './scripts/templates/wrap.tmpl',
const src = flags.m ? './scripts/templates/wrap-min.tmpl' : './scripts/templates/wrap.tmpl',
pluginName = flags.n,
spaced = pluginName.replace(/(?!^)([A-Z])/g, ' $1'),
kebabCase = _.kebabCase(pluginName);

View File

@@ -3,30 +3,30 @@ jobs:
build:
working_directory: ~/ionic-native/
docker:
- image: node:8
- image: node:14
steps:
- checkout
- restore_cache:
key: ionic-site-{{ checksum "package.json" }}
key: ionic-site-{{ checksum "package.json" }}
- run:
name: Prepare ionic-site repo
command: |
if [ "${CIRCLE_BRANCH}" == "master" ]; then
./scripts/docs/prepare.sh
fi
name: Prepare ionic-site repo
command: |
if [ "${CIRCLE_BRANCH}" == "master" ]; then
./scripts/docs/prepare.sh
fi
- save_cache:
key: ionic-site-{{ checksum "package.json" }}
paths:
- ~/ionic-site/
key: ionic-site-{{ checksum "package.json" }}
paths:
- ~/ionic-site/
- restore_cache:
key: node_modules_{{ checksum "package.json" }}
key: node_modules_{{ checksum "package.json" }}
- run:
name: Install node modules
command: npm i
name: Install node modules
command: npm ci
- save_cache:
key: node_modules_{{ checksum "package.json" }}
paths:
- ~/ionic-native/node_modules/
key: node_modules_{{ checksum "package.json" }}
paths:
- ~/ionic-native/node_modules/
- run:
name: Run tslint
command: npm run lint

21490
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@@ -1,11 +1,12 @@
{
"name": "ionic-native",
"version": "5.0.0-beta.24",
"version": "5.34.0",
"description": "Native plugin wrappers for Cordova and Ionic with TypeScript, ES6+, Promise and Observable support",
"homepage": "https://ionicframework.com/",
"author": "Ionic Team <hi@ionic.io> (https://ionic.io)",
"license": "MIT",
"scripts": {
"prepare": "is-ci || husky install",
"test": "jest",
"test:watch": "jest --watch",
"build:core": "tsc -p tsconfig.core.json",
@@ -17,51 +18,63 @@
"npmpub": "ts-node -P scripts/tsconfig.json scripts/tasks/publish",
"lint": "gulp lint",
"readmes": "gulp readmes",
"changelog": "conventional-changelog -p angular -i CHANGELOG.md -s -r 0",
"postchangelog": "git commit -am \"chore(): update changelog\"",
"shipit": "npm run build && npm run readmes && npm run npmpub"
"docs-json": "ts-node -P scripts/tsconfig.json scripts/docs-json",
"version": "conventional-changelog -p angular -i CHANGELOG.md -s -r 0 && git add CHANGELOG.md",
"shipit": "npm run build && npm run readmes && npm run npmpub",
"prettier": "prettier src/**/* --write"
},
"dependencies": {
"tslib": "^2.3.0"
},
"devDependencies": {
"@angular/common": "^7.2.1",
"@angular/compiler": "^7.2.1",
"@angular/compiler-cli": "^7.2.1",
"@angular/core": "^7.2.1",
"@angular/common": "^11.2.14",
"@angular/compiler": "^11.2.14",
"@angular/compiler-cli": "^11.2.14",
"@angular/core": "^11.2.14",
"@types/cordova": "0.0.34",
"@types/fs-extra": "^5.0.4",
"@types/jest": "^23.3.13",
"@types/lodash": "^4.14.120",
"@types/node": "^10.12.18",
"@types/rimraf": "^2.0.2",
"@types/webpack": "^4.4.23",
"ajv": "^6.7.0",
"async-promise-queue": "^1.0.4",
"conventional-changelog-cli": "^2.0.11",
"cz-conventional-changelog": "^2.1.0",
"dgeni": "^0.4.11",
"@types/fs-extra": "^9.0.11",
"@types/jest": "^26.0.23",
"@types/lodash": "^4.14.170",
"@types/node": "^12.20.15",
"@types/rimraf": "^3.0.0",
"@types/webpack": "^5.28.0",
"async-promise-queue": "^1.0.5",
"conventional-changelog-cli": "^2.1.1",
"cz-conventional-changelog": "^3.3.0",
"dgeni": "^0.4.14",
"dgeni-packages": "0.16.10",
"fs-extra": "^7.0.1",
"gulp": "3.9.1",
"gulp-rename": "^1.4.0",
"gulp-replace": "^1.0.0",
"gulp-tslint": "^8.1.3",
"jest": "^23.6.0",
"lodash": "^4.17.11",
"minimist": "1.2.0",
"fs-extra": "^10.0.0",
"gulp": "^4.0.2",
"gulp-rename": "^2.0.0",
"gulp-replace": "^1.1.3",
"gulp-tslint": "^8.1.4",
"husky": "^6.0.0",
"is-ci": "^3.0.0",
"jest": "^27.0.6",
"lint-staged": "^11.0.0",
"lodash": "^4.17.21",
"minimist": "^1.2.5",
"natives": "^1.1.6",
"rimraf": "^2.6.3",
"rxjs": "^6.3.3",
"ts-jest": "^23.10.5",
"ts-node": "^7.0.1",
"tslint": "^5.12.1",
"prettier": "^2.3.2",
"rimraf": "^3.0.2",
"rollup": "^2.52.3",
"rxjs": "^6.6.7",
"ts-jest": "^27.0.3",
"ts-node": "^10.0.0",
"tslint": "~6.1.0",
"tslint-config-prettier": "^1.18.0",
"tslint-ionic-rules": "0.0.21",
"typescript": "3.2.4",
"uglifyjs-webpack-plugin": "^2.1.1",
"unminified-webpack-plugin": "^2.0.0",
"webpack": "^4.28.4",
"winston": "^3.1.0",
"zone.js": "^0.8.26"
"typedoc": "^0.18.0",
"typescript": "^4.1.6",
"typescript-tslint-plugin": "^1.0.1",
"uglifyjs-webpack-plugin": "^2.2.0",
"unminified-webpack-plugin": "^3.0.0",
"webpack": "^5.41.0",
"winston": "^3.3.3",
"zone.js": "^0.11.4"
},
"jest": {
"testEnvironment": "jsdom",
"transform": {
"^.+\\.tsx?$": "ts-jest"
},
@@ -85,5 +98,10 @@
"commitizen": {
"path": "./node_modules/cz-conventional-changelog"
}
},
"lint-staged": {
"*": [
"prettier src/**/* --write"
]
}
}

16
prettier.config.js Normal file
View File

@@ -0,0 +1,16 @@
module.exports = {
printWidth: 120,
tabWidth: 2,
useTabs: false,
semi: true,
singleQuote: true,
trailingComma: 'es5',
bracketSpacing: true,
jsxBracketSameLine: false,
arrowParens: 'avoid',
rangeStart: 0,
rangeEnd: Infinity,
requirePragma: false,
insertPragma: false,
proseWrap: 'preserve',
};

View File

@@ -18,7 +18,11 @@ export function getDecorator(node: ts.Node, index = 0): ts.Decorator {
}
export function hasDecorator(decoratorName: string, node: ts.Node): boolean {
return node.decorators && node.decorators.length && node.decorators.findIndex(d => getDecoratorName(d) === decoratorName) > -1;
return (
node.decorators &&
node.decorators.length &&
node.decorators.findIndex(d => getDecoratorName(d) === decoratorName) > -1
);
}
export function getDecoratorName(decorator: any) {
@@ -35,7 +39,7 @@ export function getDecoratorArgs(decorator: any) {
const args = {};
properties.forEach(prop => {
let val;
let val: number | boolean;
switch (prop.initializer.kind) {
case ts.SyntaxKind.StringLiteral:
@@ -96,9 +100,11 @@ export function convertValueToLiteral(val: any) {
* @returns Typescript Object Literal Expression
*/
function objectToObjectLiteral(obj: { [key: string]: any }): ts.ObjectLiteralExpression {
const newProperties: ts.ObjectLiteralElementLike[] = Object.keys(obj).map((key: string): ts.ObjectLiteralElementLike => {
return ts.createPropertyAssignment(ts.createLiteral(key), convertValueToLiteral(obj[key]) as ts.Expression);
});
const newProperties: ts.ObjectLiteralElementLike[] = Object.keys(obj).map(
(key: string): ts.ObjectLiteralElementLike => {
return ts.createPropertyAssignment(ts.createLiteral(key), convertValueToLiteral(obj[key]) as ts.Expression);
}
);
return ts.createObjectLiteral(newProperties);
}
@@ -116,10 +122,14 @@ function arrayToArrayLiteral(list: any[]): ts.ArrayLiteralExpression {
export function getMethodsForDecorator(decoratorName: string) {
switch (decoratorName) {
case 'CordovaProperty': return ['cordovaPropertyGet', 'cordovaPropertySet'];
case 'InstanceProperty': return ['instancePropertyGet', 'instancePropertySet'];
case 'CordovaCheck': return ['checkAvailability'];
case 'InstanceCheck': return ['instanceAvailability'];
case 'CordovaProperty':
return ['cordovaPropertyGet', 'cordovaPropertySet'];
case 'InstanceProperty':
return ['instancePropertyGet', 'instancePropertySet'];
case 'CordovaCheck':
return ['checkAvailability'];
case 'InstanceCheck':
return ['instanceAvailability'];
}
return [camelCase(decoratorName)];

View File

@@ -1,32 +1,34 @@
import * as ts from 'typescript';
import * as fs from 'fs-extra';
import * as path from 'path';
import * as ngc from '@angular/compiler-cli';
import * as rimraf from 'rimraf';
import * as rollup from 'rollup';
import { generateDeclarations } from './transpile';
import { clone } from 'lodash';
import { EmitFlags } from '@angular/compiler-cli';
import { EmitFlags, createCompilerHost, CompilerOptions, CompilerHost, createProgram } from '@angular/compiler-cli';
import { importsTransformer } from './transformers/imports';
import { pluginClassTransformer } from './transformers/plugin-class';
import { COMPILER_OPTIONS, PLUGIN_PATHS, ROOT } from './helpers';
export function getProgram(rootNames: string[] = createSourceFiles()) {
const options: ngc.CompilerOptions = clone(COMPILER_OPTIONS);
const options: CompilerOptions = clone(COMPILER_OPTIONS);
options.basePath = ROOT;
options.moduleResolution = ts.ModuleResolutionKind.NodeJs;
options.module = ts.ModuleKind.ES2015;
options.target = ts.ScriptTarget.ES5;
options.lib = ['dom', 'es2017'];
options.inlineSourceMap = true;
options.importHelpers = true;
options.inlineSources = true;
options.enableIvy = false;
delete options.baseUrl;
const host: ngc.CompilerHost = ngc.createCompilerHost({ options });
return ngc.createProgram({
const host: CompilerHost = createCompilerHost({ options });
return createProgram({
rootNames,
options,
host
host,
});
}
@@ -34,8 +36,9 @@ export function getProgram(rootNames: string[] = createSourceFiles()) {
export function transpileNgxCore() {
getProgram([path.resolve(ROOT, 'src/@ionic-native/core/index.ts')]).emit({
emitFlags: EmitFlags.Metadata,
emitCallback: ({ program, writeFile, customTransformers, cancellationToken, targetSourceFile }) =>
program.emit(targetSourceFile, writeFile, cancellationToken, true, customTransformers)
emitCallback: ({ program, writeFile, customTransformers, cancellationToken, targetSourceFile }) => {
return program.emit(targetSourceFile, writeFile, cancellationToken, true, customTransformers);
},
});
}
@@ -43,11 +46,8 @@ export function transpileNgx() {
getProgram().emit({
emitFlags: EmitFlags.Metadata,
customTransformers: {
beforeTs: [
importsTransformer(true),
pluginClassTransformer(true)
]
}
beforeTs: [importsTransformer(true), pluginClassTransformer(true)],
},
});
}
@@ -55,30 +55,59 @@ export function generateDeclarationFiles() {
generateDeclarations(PLUGIN_PATHS.map(p => p.replace('index.ts', 'ngx/index.ts')));
}
export function generateLegacyBundles() {
[
path.resolve(ROOT, 'dist/@ionic-native/core/index.js'),
...PLUGIN_PATHS.map(p =>
p.replace(path.join(ROOT, 'src'), path.join(ROOT, 'dist')).replace('index.ts', 'ngx/index.js')
),
].forEach(p =>
rollup
.rollup({
input: p,
onwarn(warning, warn) {
if (warning.code === 'UNUSED_EXTERNAL_IMPORT') return;
warn(warning);
},
external: ['@angular/core', '@ionic-native/core', 'rxjs', 'tslib'],
})
.then(bundle =>
bundle.write({
file: path.join(path.dirname(p), 'bundle.js'),
format: 'cjs',
})
)
);
}
// remove reference to @ionic-native/core decorators
export function modifyMetadata() {
PLUGIN_PATHS.map(p => p.replace(path.join(ROOT, 'src'), path.join(ROOT, 'dist')).replace('index.ts', 'ngx/index.metadata.json'))
.forEach(p => {
const content = fs.readJSONSync(p);
let _prop;
for (const prop in content[0].metadata) {
_prop = content[0].metadata[prop];
removeIonicNativeDecorators(_prop);
debugger;
PLUGIN_PATHS.map(p =>
p.replace(path.join(ROOT, 'src'), path.join(ROOT, 'dist')).replace('index.ts', 'ngx/index.metadata.json')
).forEach(p => {
const content = fs.readJSONSync(p);
let _prop: { members: { [x: string]: any[] } };
for (const prop in content[0].metadata) {
_prop = content[0].metadata[prop];
removeIonicNativeDecorators(_prop);
if (_prop.members) {
for (const memberProp in _prop.members) {
removeIonicNativeDecorators(_prop.members[memberProp][0]);
}
if (_prop.members) {
for (const memberProp in _prop.members) {
removeIonicNativeDecorators(_prop.members[memberProp][0]);
}
}
}
fs.writeJSONSync(p, content);
});
fs.writeJSONSync(p, content);
});
}
function removeIonicNativeDecorators(node: any) {
if (node.decorators && node.decorators.length) {
node.decorators = node.decorators.filter((d, i) => d.expression.module !== '@ionic-native/core');
node.decorators = node.decorators.filter(
(d: { expression: { module: string } }) => d.expression.module !== '@ionic-native/core'
);
}
if (node.decorators && !node.decorators.length) delete node.decorators;
@@ -99,7 +128,5 @@ function createSourceFiles(): string[] {
}
export function cleanupNgx() {
PLUGIN_PATHS.forEach((indexPath: string) =>
rimraf.sync(indexPath.replace('index.ts', 'ngx'))
);
PLUGIN_PATHS.forEach((indexPath: string) => rimraf.sync(indexPath.replace('index.ts', 'ngx')));
}

View File

@@ -37,7 +37,7 @@ export function extractInjectables() {
injectableClasses.push({
file: tsSourceFile.path,
className: (node as ts.ClassDeclaration).name.text,
dirName: tsSourceFile.path.split(/[\\\/]+/).reverse()[1]
dirName: tsSourceFile.path.split(/[\\\/]+/).reverse()[1],
});
}
},

View File

@@ -4,7 +4,10 @@ import { getMethodsForDecorator } from '../helpers';
function transformImports(file: ts.SourceFile, ctx: ts.TransformationContext, ngcBuild?: boolean) {
// remove angular imports
if (!ngcBuild) {
file.statements = (file.statements as any).filter((s: any) => !(s.kind === ts.SyntaxKind.ImportDeclaration && s.moduleSpecifier.text === '@angular/core'));
// @ts-expect-error
file.statements = (file.statements as any).filter(
(s: any) => !(s.kind === ts.SyntaxKind.ImportDeclaration && s.moduleSpecifier.text === '@angular/core')
);
}
// find the @ionic-native/core import statement
@@ -19,9 +22,9 @@ function transformImports(file: ts.SourceFile, ctx: ts.TransformationContext, ng
const decoratorRegex: RegExp = /@([a-zA-Z]+)\(/g;
const ignored: string [] = ['Plugin', 'Component', 'Injectable'];
const ignored: string[] = ['Plugin', 'Component', 'Injectable'];
const keep: string [] = ['getPromise', 'checkAvailability'];
const keep: string[] = ['getPromise', 'checkAvailability'];
let m;
@@ -35,12 +38,17 @@ function transformImports(file: ts.SourceFile, ctx: ts.TransformationContext, ng
if (decorators.length) {
let methods = [];
decorators.forEach(d => methods = getMethodsForDecorator(d).concat(methods));
decorators.forEach(d => (methods = getMethodsForDecorator(d).concat(methods)));
const methodElements = methods.map(m => ts.createIdentifier(m));
const methodNames = methodElements.map(el => el.escapedText);
importStatement.importClause.namedBindings.elements = [
ts.createIdentifier('IonicNativePlugin'),
...methods.map(m => ts.createIdentifier(m)),
...importStatement.importClause.namedBindings.elements.filter(el => keep.indexOf(el.name.text) !== -1)
...methodElements,
...importStatement.importClause.namedBindings.elements.filter(
el => keep.indexOf(el.name.text) !== -1 && methodNames.indexOf(el.name.text) === -1
),
];
if (ngcBuild) {
@@ -48,7 +56,7 @@ function transformImports(file: ts.SourceFile, ctx: ts.TransformationContext, ng
binding => {
if (binding.escapedText) {
binding.name = {
text: binding.escapedText
text: binding.escapedText,
};
}
return binding;

View File

@@ -31,7 +31,3 @@ export function transformMembers(cls: ts.ClassDeclaration) {
return members;
}

View File

@@ -1,6 +1,12 @@
import * as ts from 'typescript';
import { Logger } from '../../logger';
import { convertValueToLiteral, getDecorator, getDecoratorArgs, getDecoratorName, getMethodsForDecorator } from '../helpers';
import {
convertValueToLiteral,
getDecorator,
getDecoratorArgs,
getDecoratorName,
getMethodsForDecorator,
} from '../helpers';
export function transformMethod(method: ts.MethodDeclaration) {
if (!method) return;
@@ -10,11 +16,17 @@ export function transformMethod(method: ts.MethodDeclaration) {
decoratorArgs = getDecoratorArgs(decorator);
try {
return ts.createMethod(undefined, undefined, undefined, method.name, undefined, method.typeParameters, method.parameters, method.type, ts.createBlock([
ts.createReturn(
getMethodBlock(method, decoratorName, decoratorArgs)
)
]));
return ts.createMethod(
undefined,
undefined,
undefined,
method.name,
undefined,
method.typeParameters,
method.parameters,
method.type,
ts.createBlock([ts.createReturn(getMethodBlock(method, decoratorName, decoratorArgs))])
);
} catch (e) {
Logger.error('Error transforming method: ' + (method.name as any).text);
Logger.error(e.message);
@@ -28,22 +40,23 @@ function getMethodBlock(method: ts.MethodDeclaration, decoratorName: string, dec
case 'CordovaCheck':
case 'InstanceCheck':
// TODO remove function wrapper
return ts.createImmediatelyInvokedArrowFunction([ts.createIf(
ts.createBinary(
ts.createCall(ts.createIdentifier(decoratorMethod), undefined, [ts.createThis()]),
ts.SyntaxKind.EqualsEqualsEqualsToken,
ts.createTrue()
return ts.createImmediatelyInvokedArrowFunction([
ts.createIf(
ts.createBinary(
ts.createCall(ts.createIdentifier(decoratorMethod), undefined, [ts.createThis()]),
ts.SyntaxKind.EqualsEqualsEqualsToken,
ts.createTrue()
),
method.body
),
method.body
)]);
]);
default:
return ts.createCall(ts.createIdentifier(decoratorMethod), undefined, [
ts.createThis(),
ts.createLiteral((method.name as any).text),
ts.createLiteral(decoratorArgs?.methodName || (method.name as any).text),
convertValueToLiteral(decoratorArgs),
ts.createIdentifier('arguments')
ts.createIdentifier('arguments'),
]);
}
}

View File

@@ -1,12 +1,7 @@
import * as ts from 'typescript';
import { Logger } from '../../logger';
import {
convertValueToLiteral,
getDecorator,
getDecoratorArgs,
getDecoratorName
} from '../helpers';
import { convertValueToLiteral, getDecorator, getDecoratorArgs, getDecoratorName } from '../helpers';
import { transformMembers } from './members';
function transformClass(cls: any, ngcBuild?: boolean) {
@@ -48,17 +43,15 @@ function transformClass(cls: any, ngcBuild?: boolean) {
return cls;
}
function transformClasses(
file: ts.SourceFile,
ctx: ts.TransformationContext,
ngcBuild?: boolean
) {
function transformClasses(file: ts.SourceFile, ctx: ts.TransformationContext, ngcBuild?: boolean) {
Logger.silly('Transforming file: ' + file.fileName);
return ts.visitEachChild(
file,
node => {
if (node.kind !== ts.SyntaxKind.ClassDeclaration
|| (node.modifiers && node.modifiers.find(v => v.kind === ts.SyntaxKind.DeclareKeyword))) {
if (
node.kind !== ts.SyntaxKind.ClassDeclaration ||
(node.modifiers && node.modifiers.find(v => v.kind === ts.SyntaxKind.DeclareKeyword))
) {
return node;
}
return transformClass(node, ngcBuild);
@@ -67,9 +60,7 @@ function transformClasses(
);
}
export function pluginClassTransformer(
ngcBuild?: boolean
): ts.TransformerFactory<ts.SourceFile> {
export function pluginClassTransformer(ngcBuild?: boolean): ts.TransformerFactory<ts.SourceFile> {
return (ctx: ts.TransformationContext) => {
return tsSourceFile => {
if (tsSourceFile.fileName.indexOf('src/@ionic-native/plugins') > -1)

View File

@@ -32,9 +32,9 @@ export function transformProperty(members: any[], index: number) {
ts.createReturn(
ts.createCall(ts.createIdentifier(type + 'PropertyGet'), undefined, [
ts.createThis(),
ts.createLiteral((property.name as any).text)
ts.createLiteral((property.name as any).text),
])
)
),
])
);
@@ -42,24 +42,15 @@ export function transformProperty(members: any[], index: number) {
undefined,
undefined,
property.name,
[
ts.createParameter(
undefined,
undefined,
undefined,
'value',
undefined,
property.type
)
],
[ts.createParameter(undefined, undefined, undefined, 'value', undefined, property.type)],
ts.createBlock([
ts.createStatement(
ts.createCall(ts.createIdentifier(type + 'PropertySet'), undefined, [
ts.createThis(),
ts.createLiteral((property.name as any).text),
ts.createIdentifier('value')
ts.createIdentifier('value'),
])
)
),
])
);

View File

@@ -13,22 +13,16 @@ export function getCompilerHost() {
}
export function getProgram(declaration = false, pluginPaths: string[] = PLUGIN_PATHS) {
const compilerOptions: ts.CompilerOptions = clone(COMPILER_OPTIONS);
compilerOptions.declaration = declaration;
compilerOptions.moduleResolution = ts.ModuleResolutionKind.NodeJs;
compilerOptions.target = ts.ScriptTarget.ES5;
compilerOptions.module = ts.ModuleKind.ES2015;
compilerOptions.inlineSourceMap = true;
compilerOptions.inlineSources = true;
compilerOptions.lib = [
'lib.dom.d.ts',
'lib.es5.d.ts',
'lib.es2015.d.ts',
'lib.es2016.d.ts',
'lib.es2017.d.ts'
];
const compilerOptions: ts.CompilerOptions = clone(COMPILER_OPTIONS);
compilerOptions.declaration = declaration;
compilerOptions.moduleResolution = ts.ModuleResolutionKind.NodeJs;
compilerOptions.target = ts.ScriptTarget.ES5;
compilerOptions.module = ts.ModuleKind.ES2015;
compilerOptions.inlineSourceMap = true;
compilerOptions.inlineSources = true;
compilerOptions.lib = ['lib.dom.d.ts', 'lib.es5.d.ts', 'lib.es2015.d.ts', 'lib.es2016.d.ts', 'lib.es2017.d.ts'];
return ts.createProgram(pluginPaths, compilerOptions, getCompilerHost());
return ts.createProgram(pluginPaths, compilerOptions, getCompilerHost());
}
export function generateDeclarations(sourceFiles?: string[]) {
@@ -37,15 +31,10 @@ export function generateDeclarations(sourceFiles?: string[]) {
export function transpile() {
const emitResult = getProgram().emit(undefined, getCompilerHost().writeFile, undefined, false, {
before: [
extractInjectables(),
importsTransformer(),
pluginClassTransformer(),
]
before: [extractInjectables(), importsTransformer(), pluginClassTransformer()],
});
emitInjectableClasses();
return emitResult;
}

112
scripts/docs-json/index.ts Normal file
View File

@@ -0,0 +1,112 @@
import * as fs from 'fs-extra';
import { basename, dirname, resolve } from 'path';
import { Application } from 'typedoc';
import TypeDoc = require('typedoc');
import { runInNewContext } from 'vm';
interface Plugin {
packageName: string;
displayName: string;
description: string;
platforms: string[];
usage: string;
repo: string;
installVariables: string[];
cordovaPlugin: {
name: string;
};
premierSlug: string;
capacitorIncompatible: boolean;
}
const rootDir = resolve(__dirname, '../..');
const typedocTmp = resolve(__dirname, 'typedoc.tmp.json');
const pluginsDir = resolve(rootDir, 'src/@ionic-native/plugins');
const typedoc = new Application();
typedoc.options.addReader(new TypeDoc.TSConfigReader());
typedoc.options.addReader(new TypeDoc.TypeDocReader());
typedoc.bootstrap({
mode: 'modules',
ignoreCompilerErrors: true,
});
run(pluginsDir);
async function run(pluginsDir: string) {
const typedocData = await generateTypedoc(pluginsDir);
const modules = typedocData.children.filter(isModule);
const plugins = modules.filter(hasPlugin).map(processPlugin);
await fs.outputJson(resolve(__dirname, 'plugins.json'), plugins, {
spaces: 2,
});
}
async function generateTypedoc(root: string, outputPath = typedocTmp) {
const pluginDirs = await fs.readdir(root);
const paths = pluginDirs.map(dir => resolve(root, dir, 'index.ts'));
typedoc.generateJson(paths, outputPath);
return fs.readJson(outputPath);
}
function processPlugin(pluginModule): Plugin {
const pluginClass = pluginModule.children.find(isPlugin);
const decorator = getPluginDecorator(pluginClass);
const packageName = `@ionic-native/${basename(dirname(pluginModule.originalName))}`;
const displayName = getTag(pluginClass, 'name');
const usage = getTag(pluginClass, 'usage');
const description = getTag(pluginClass, 'description');
const premierSlug = getTag(pluginClass, 'premier');
const capIncompat = getTag(pluginClass, 'capacitorincompatible');
const capacitorIncompatible = capIncompat ? true : undefined;
return {
packageName,
displayName,
description,
usage,
platforms: decorator.platforms,
repo: decorator.repo,
installVariables: decorator.installVariables,
cordovaPlugin: {
name: decorator.plugin,
},
premierSlug,
capacitorIncompatible,
};
}
/**
* Typedoc only gives us the Plugin decorator internals
* as a string. So, rather than try to parse that with a RegExp,
* we evaluate it using Node's vm module.
*/
const getPluginDecorator = (child: any) => {
if (isPlugin(child)) {
const decorator = child.decorators.find(d => d.name === 'Plugin');
return runInNewContext(`(${decorator.arguments.config})`);
}
};
const getTag = (child: any, tagName: string): string => {
if (hasTags(child)) {
const tag = child.comment.tags.find(t => t.tag === tagName);
if (tag) {
return tag.text;
}
}
};
const isModule = (child: any): boolean => child.kind === 1;
const isClass = (child: any): boolean => child.kind === 128;
const isPlugin = (child: any): boolean =>
isClass(child) &&
hasTags(child) &&
Array.isArray(child.decorators) &&
child.decorators.some(d => d.name === 'Plugin');
const hasPlugin = (child: any): boolean => child.children.some(isPlugin);
const hasTags = (child: any): boolean => child.comment && Array.isArray(child.comment.tags);

View File

@@ -0,0 +1,3 @@
# docs-json
This script reads and generates [typedoc](https://github.com/TypeStrong/typedoc) data for each of the plugins in `src/@ionic-native/plugins`. That data is then formatted and output as `plugins.json` in this directory.

View File

@@ -1,3 +1,3 @@
module.exports = function(getLinkInfo) {
module.exports = function (getLinkInfo) {
getLinkInfo.useFirstAmbiguousLink = false;
};

View File

@@ -1,3 +1,3 @@
module.exports = function(log) {
module.exports = function (log) {
log.level = 'error'; //'silly', 'debug', 'info', 'warn', 'error'
};

View File

@@ -1,4 +1,3 @@
module.exports = function(parseTagsProcessor) {
parseTagsProcessor.tagDefinitions = parseTagsProcessor.tagDefinitions
.concat(require('../tag-defs/tag-defs'));
module.exports = function (parseTagsProcessor) {
parseTagsProcessor.tagDefinitions = parseTagsProcessor.tagDefinitions.concat(require('../tag-defs/tag-defs'));
};

View File

@@ -1,4 +1,4 @@
module.exports = function(templateEngine) {
module.exports = function (templateEngine) {
// Nunjucks and Angular conflict in their template bindings so change the Nunjucks
// Also conflict with Jekyll
templateEngine.config.tags = {
@@ -7,6 +7,6 @@ module.exports = function(templateEngine) {
blockStart: '<@',
blockEnd: '@>',
commentStart: '<#',
commentEnd: '#>'
commentEnd: '#>',
};
};

View File

@@ -1,4 +1,4 @@
module.exports = function(templateEngine) {
module.exports = function (templateEngine) {
// add custom filters to nunjucks
templateEngine.filters.push(
require('../filters/capital'),

View File

@@ -1,4 +1,4 @@
"use strict";
'use strict';
const Package = require('dgeni').Package,
jsdocPackage = require('dgeni-packages/jsdoc'),
nunjucksPackage = require('dgeni-packages/nunjucks'),
@@ -8,72 +8,68 @@ const Package = require('dgeni').Package,
config = require('../config.json');
module.exports = currentVersion => {
return (
new Package('ionic-native-docs', [jsdocPackage, nunjucksPackage, typescriptPackage, linksPackage])
return new Package('ionic-native-docs', [jsdocPackage, nunjucksPackage, typescriptPackage, linksPackage])
.processor(require('./processors/remove-private-members'))
.processor(require('./processors/hide-private-api'))
.processor(require('./processors/parse-optional'))
.processor(require('./processors/mark-properties'))
.processor(require('./processors/npm-id'))
.processor(require('./processors/jekyll'))
.processor(require('./processors/remove-private-members'))
.processor(require('./processors/hide-private-api'))
.processor(require('./processors/parse-optional'))
.processor(require('./processors/mark-properties'))
.processor(require('./processors/npm-id'))
.processor(require('./processors/jekyll'))
.config(require('./configs/log'))
.config(require('./configs/template-filters'))
.config(require('./configs/template-tags'))
.config(require('./configs/tag-defs'))
.config(require('./configs/links'))
.config(require('./configs/log'))
.config(require('./configs/template-filters'))
.config(require('./configs/template-tags'))
.config(require('./configs/tag-defs'))
.config(require('./configs/links'))
.config(function (renderDocsProcessor, computePathsProcessor) {
currentVersion = {
href: '/' + config.v2DocsDir.replace('content/', ''),
folder: '',
name: currentVersion,
};
.config(function(renderDocsProcessor, computePathsProcessor) {
renderDocsProcessor.extraData.version = {
list: [currentVersion],
current: currentVersion,
latest: currentVersion,
};
currentVersion = {
href: '/' + config.v2DocsDir.replace('content/', ''),
folder: '',
name: currentVersion
};
computePathsProcessor.pathTemplates = [
{
docTypes: ['class'],
getOutputPath: doc => 'content/' + config.v2DocsDir + '/' + doc.name + '/index.md',
},
];
})
renderDocsProcessor.extraData.version = {
list: [currentVersion],
current: currentVersion,
latest: currentVersion
};
//configure file reading
.config(function (readFilesProcessor, readTypeScriptModules) {
// Don't run unwanted processors since we are not using the normal file reading processor
readFilesProcessor.$enabled = false;
readFilesProcessor.basePath = path.resolve(__dirname, '../../..');
computePathsProcessor.pathTemplates = [{
docTypes: ['class'],
getOutputPath: doc => 'content/' + config.v2DocsDir + '/' + doc.name + '/index.md'
}];
readTypeScriptModules.basePath = path.resolve(__dirname, '../../..');
readTypeScriptModules.sourceFiles = ['./src/@ionic-native/plugins/**/*.ts'];
})
})
// Configure file writing
.config(function (writeFilesProcessor) {
writeFilesProcessor.outputFolder = '../ionic-site/';
})
//configure file reading
.config(function(readFilesProcessor, readTypeScriptModules) {
// Don't run unwanted processors since we are not using the normal file reading processor
readFilesProcessor.$enabled = false;
readFilesProcessor.basePath = path.resolve(__dirname, '../../..');
readTypeScriptModules.basePath = path.resolve(__dirname, '../../..');
readTypeScriptModules.sourceFiles = [
'./src/@ionic-native/plugins/**/*.ts'
];
})
// Configure file writing
.config(function(writeFilesProcessor) {
writeFilesProcessor.outputFolder = '../ionic-site/';
})
// Configure rendering
.config(function(templateFinder) {
templateFinder.templateFolders.unshift(path.resolve(__dirname, 'templates'));
// Specify how to match docs to templates.
templateFinder.templatePatterns = [
'${ doc.template }',
'${ doc.docType }.template.html',
'common.template.html'
];
});
// Configure rendering
.config(function (templateFinder) {
templateFinder.templateFolders.unshift(path.resolve(__dirname, 'templates'));
// Specify how to match docs to templates.
templateFinder.templatePatterns = [
'${ doc.template }',
'${ doc.docType }.template.html',
'common.template.html',
];
})
);
};

View File

@@ -1,4 +1,4 @@
"use strict";
'use strict';
const Package = require('dgeni').Package,
jsdocPackage = require('dgeni-packages/jsdoc'),
nunjucksPackage = require('dgeni-packages/nunjucks'),
@@ -8,68 +8,63 @@ const Package = require('dgeni').Package,
config = require('../config.json');
module.exports = currentVersion => {
return (
new Package('ionic-native-readmes', [jsdocPackage, nunjucksPackage, typescriptPackage, linksPackage])
return new Package('ionic-native-readmes', [jsdocPackage, nunjucksPackage, typescriptPackage, linksPackage])
.processor(require('./processors/readmes'))
.processor(require('./processors/remove-private-members'))
.processor(require('./processors/hide-private-api'))
.processor(require('./processors/npm-id'))
.processor(require('./processors/readmes'))
.processor(require('./processors/remove-private-members'))
.processor(require('./processors/hide-private-api'))
.processor(require('./processors/npm-id'))
.config(require('./configs/log'))
.config(require('./configs/template-filters'))
.config(require('./configs/template-tags'))
.config(require('./configs/tag-defs'))
.config(require('./configs/links'))
.config(require('./configs/log'))
.config(require('./configs/template-filters'))
.config(require('./configs/template-tags'))
.config(require('./configs/tag-defs'))
.config(require('./configs/links'))
.config(function (renderDocsProcessor, computePathsProcessor) {
currentVersion = {
href: '/' + config.v2DocsDir.replace('content/', ''),
folder: '',
name: currentVersion,
};
renderDocsProcessor.extraData.version = {
list: [currentVersion],
current: currentVersion,
latest: currentVersion,
};
.config(function(renderDocsProcessor, computePathsProcessor) {
computePathsProcessor.pathTemplates = [
{
docTypes: ['class'],
getOutputPath: doc =>
doc.originalModule.replace(config.pluginDir + '/', '').replace(/\/index$/, '/README.md'),
},
];
})
currentVersion = {
href: '/' + config.v2DocsDir.replace('content/', ''),
folder: '',
name: currentVersion
};
//configure file reading
.config(function (readFilesProcessor, readTypeScriptModules) {
// Don't run unwanted processors since we are not using the normal file reading processor
readFilesProcessor.$enabled = false;
readFilesProcessor.basePath = path.resolve(__dirname, '../../..');
renderDocsProcessor.extraData.version = {
list: [currentVersion],
current: currentVersion,
latest: currentVersion
};
readTypeScriptModules.basePath = path.resolve(path.resolve(__dirname, '../../..'));
readTypeScriptModules.sourceFiles = ['./src/@ionic-native/plugins/**/*.ts'];
})
computePathsProcessor.pathTemplates = [{
docTypes: ['class'],
getOutputPath: doc => doc.originalModule.replace(config.pluginDir + '/', '')
.replace(/\/index$/, '/README.md')
}];
// Configure file writing
.config(function (writeFilesProcessor) {
writeFilesProcessor.outputFolder = './dist/@ionic-native/';
})
})
//configure file reading
.config(function(readFilesProcessor, readTypeScriptModules) {
// Don't run unwanted processors since we are not using the normal file reading processor
readFilesProcessor.$enabled = false;
readFilesProcessor.basePath = path.resolve(__dirname, '../../..');
readTypeScriptModules.basePath = path.resolve(path.resolve(__dirname, '../../..'));
readTypeScriptModules.sourceFiles = ['./src/@ionic-native/plugins/**/*.ts'];
})
// Configure file writing
.config(function(writeFilesProcessor) {
writeFilesProcessor.outputFolder = './dist/@ionic-native/';
})
// Configure rendering
.config(function(templateFinder) {
templateFinder.templateFolders.unshift(path.resolve(__dirname, 'templates'));
// Specify how to match docs to templates.
templateFinder.templatePatterns = [
'${ doc.template }',
'${ doc.docType }.template.md',
'readme.template.md'
];
});
// Configure rendering
.config(function (templateFinder) {
templateFinder.templateFolders.unshift(path.resolve(__dirname, 'templates'));
// Specify how to match docs to templates.
templateFinder.templatePatterns = ['${ doc.template }', '${ doc.docType }.template.md', 'readme.template.md'];
})
);
};

View File

@@ -1,5 +1,5 @@
"use strict";
'use strict';
module.exports = {
name: 'capital',
process: str => str? str.charAt(0).toUpperCase() + str.substring(1) : ''
process: str => (str ? str.charAt(0).toUpperCase() + str.substring(1) : ''),
};

View File

@@ -1,4 +1,4 @@
"use strict";
'use strict';
const encoder = new require('node-html-encoder').Encoder();
function code(str, inline, lang) {
@@ -20,5 +20,5 @@ function code(str, inline, lang) {
module.exports = {
name: 'code',
process: (str, lang) => code(str, true, lang)
process: (str, lang) => code(str, true, lang),
};

View File

@@ -1,5 +1,5 @@
"use strict";
'use strict';
module.exports = {
name: 'dashify',
process: str => str? str.replace(/\s/g, '-') : ''
process: str => (str ? str.replace(/\s/g, '-') : ''),
};

View File

@@ -1,5 +1,5 @@
"use strict";
'use strict';
module.exports = {
name: 'dump',
process: obj => console.log(obj)
process: obj => console.log(obj),
};

View File

@@ -1,43 +1,39 @@
"use strict";
module.exports = function test(){
'use strict';
module.exports = function test() {
return {
name: 'debug',
$runBefore: ['rendering-docs'],
$process: function(docs){
docs.forEach(function(doc){
if (doc.name == "Camera"){
$process: function (docs) {
docs.forEach(function (doc) {
if (doc.name == 'Camera') {
console.log(doc.tags);
doc.tags.forEach(function(tag){
if(tag.tagName == 'classes'){
doc.tags.forEach(function (tag) {
if (tag.tagName == 'classes') {
}
});
doc.moduleDoc.exports.forEach(function(d,i){
if(d.name === 'CameraOptions') {
doc.moduleDoc.exports.forEach(function (d, i) {
if (d.name === 'CameraOptions') {
console.log('Name: ' + d.name);
console.log('Type: ' + d.docType);
console.log('First member: ', d.members[0]);
}
});
var exports = doc.exportSymbol.parent.exports;
for(var p in exports) {
if(p == 'CameraOptions')
{
for (var p in exports) {
if (p == 'CameraOptions') {
var x = exports[p];
console.log(x.members.quality);
}
}
doc.members.forEach(function(method){
if (method.name === "getPicture") {
doc.members.forEach(function (method) {
if (method.name === 'getPicture') {
console.log(method);
}
})
});
}
})
}
}
}
});
},
};
};

View File

@@ -1,9 +1,9 @@
"use strict";
'use strict';
module.exports = function removePrivateApi() {
return {
name: 'remove-private-api',
description: 'Prevent the private apis from being rendered',
$runBefore: ['rendering-docs'],
$process: docs => docs.filter(doc => !doc.private && (!doc.tags || !doc.tags.tagsByName.get('hidden')))
$process: docs => docs.filter(doc => !doc.private && (!doc.tags || !doc.tags.tagsByName.get('hidden'))),
};
};

View File

@@ -1,4 +1,4 @@
"use strict";
'use strict';
module.exports = function jekyll(renderDocsProcessor) {
return {
name: 'jekyll',
@@ -6,7 +6,6 @@ module.exports = function jekyll(renderDocsProcessor) {
$runAfter: ['paths-computed'],
$runBefore: ['rendering-docs'],
$process: docs => {
// pretty up and sort the docs object for menu generation
docs = docs.filter(doc => (!!doc.name && !!doc.outputPath) || doc.docType === 'index-page');
@@ -20,7 +19,7 @@ module.exports = function jekyll(renderDocsProcessor) {
const textA = a.name ? a.name.toUpperCase() : '',
textB = b.name ? b.name.toUpperCase() : '';
return (textA < textB) ? -1 : (textA > textB) ? 1 : 0;
return textA < textB ? -1 : textA > textB ? 1 : 0;
});
docs.forEach(doc => {
@@ -29,11 +28,9 @@ module.exports = function jekyll(renderDocsProcessor) {
}
doc.outputPath = doc.outputPath.toLowerCase().replace(/\s/g, '-');
doc.URL = doc.outputPath.replace('docs//', 'docs/')
.replace('/index.md', '')
.replace('content/', '');
doc.URL = doc.outputPath.replace('docs//', 'docs/').replace('/index.md', '').replace('content/', '');
// add trailing slash to plugin pages
if(!doc.URL.endsWith("/") && !doc.URL.endsWith(".html")) {
if (!doc.URL.endsWith('/') && !doc.URL.endsWith('.html')) {
doc.URL = doc.URL + '/';
}
@@ -57,10 +54,10 @@ module.exports = function jekyll(renderDocsProcessor) {
docType: 'nativeMenu',
id: 'native_menu',
template: 'native_menu.template.html',
outputPath: 'content/_includes/fluid/native_menu.html'
outputPath: 'content/_includes/fluid/native_menu.html',
});
return docs;
}
},
};
};

View File

@@ -1,15 +1,16 @@
"use strict";
'use strict';
module.exports = function markProperties() {
return {
name: 'mark-properties',
$runBefore: ['rendering-docs'],
$process: docs => docs.map(doc => {
for (let i in doc.members) {
if (doc.members.hasOwnProperty(i) && typeof doc.members[i].parameters === 'undefined') {
doc.members[i].isProperty = true;
$process: docs =>
docs.map(doc => {
for (let i in doc.members) {
if (doc.members.hasOwnProperty(i) && typeof doc.members[i].parameters === 'undefined') {
doc.members[i].isProperty = true;
}
}
}
return doc;
})
}
return doc;
}),
};
};

View File

@@ -1,4 +1,4 @@
"use strict";
'use strict';
module.exports = function npmId(renderDocsProcessor) {
return {
name: 'npm-id',
@@ -6,7 +6,7 @@ module.exports = function npmId(renderDocsProcessor) {
$runBefore: ['rendering-docs'],
$process: docs => {
// pretty up and sort the docs object for menu generation
docs = docs.filter(function(doc) {
docs = docs.filter(function (doc) {
return (!!doc.name && !!doc.outputPath) || doc.docType === 'index-page';
});
@@ -15,6 +15,6 @@ module.exports = function npmId(renderDocsProcessor) {
});
return docs;
}
},
};
};

View File

@@ -1,4 +1,4 @@
"use strict";
'use strict';
module.exports = function parseOptional() {
return {
$runBefore: ['rendering-docs'],
@@ -17,6 +17,6 @@ module.exports = function parseOptional() {
}
});
return docs;
}
}
},
};
};

View File

@@ -1,4 +1,4 @@
"use strict";
'use strict';
module.exports = function readmes(renderDocsProcessor) {
return {
name: 'readmes',
@@ -14,6 +14,6 @@ module.exports = function readmes(renderDocsProcessor) {
});
return docs;
}
},
};
};

View File

@@ -1,4 +1,4 @@
"use strict";
'use strict';
module.exports = function removePrivateMembers() {
return {
name: 'remove-private-members',
@@ -7,7 +7,6 @@ module.exports = function removePrivateMembers() {
$runBefore: ['rendering-docs'],
$process: docs => {
docs.forEach(doc => {
if (doc.members) {
doc.members = doc.members.filter(member => !member.tags.tagsByName.get('hidden'));
}
@@ -15,10 +14,9 @@ module.exports = function removePrivateMembers() {
if (doc.statics) {
doc.statics = doc.statics.filter(staticMethod => !staticMethod.tags.tagsByName.get('hidden'));
}
});
return docs;
}
},
};
};

View File

@@ -1,11 +1,11 @@
"use strict";
'use strict';
module.exports = [
{'name': 'advanced'},
{'name': 'demo'},
{'name': 'beta', transforms: (doc, tag, value) => typeof value !== 'undefined'}, // make the value true or undefined instead of '' or undefined
{'name': 'usage'},
{'name': 'hidden'}, // hide from docs
{'name': 'classes'}, // related classes
{'name': 'interfaces'}, // related interfaces
{'name': 'paid', transforms: (doc, tag, value) => typeof value !== 'undefined'} // paid plugin, set value to true
{ name: 'advanced' },
{ name: 'demo' },
{ name: 'beta', transforms: (doc, tag, value) => typeof value !== 'undefined' }, // make the value true or undefined instead of '' or undefined
{ name: 'usage' },
{ name: 'hidden' }, // hide from docs
{ name: 'classes' }, // related classes
{ name: 'interfaces' }, // related interfaces
{ name: 'paid', transforms: (doc, tag, value) => typeof value !== 'undefined' }, // paid plugin, set value to true
];

View File

@@ -11,172 +11,124 @@ doc: "<$ doc.name $>"
docType: "<$ doc.docType $>"
---
<@- macro interfaceTable(interface) -@>
<@ for export in doc.moduleDoc.exports -@>
<@ if export.name == interface @>
<table class="table param-table" style="margin:0;">
<@- macro interfaceTable(interface) -@> <@ for export in doc.moduleDoc.exports -@> <@ if export.name == interface @>
<table class="table param-table" style="margin: 0;">
<thead>
<tr>
<th>Param</th>
<th>Type</th>
<th>Details</th>
</tr>
<tr>
<th>Param</th>
<th>Type</th>
<th>Details</th>
</tr>
</thead>
<tbody>
<@ for param in export.members @>
<tr>
<td>
<$ param.name $>
</td>
<td>
<code><$ param.returnType | escape $></code>
</td>
<td>
<$ param.description | marked $>
<@ if param.optional @><em>(optional)</em><@ endif @>
</td>
</tr>
<@ endfor @>
<@ for param in export.members @>
<tr>
<td>
<$ param.name $>
</td>
<td>
<code><$ param.returnType | escape $></code>
</td>
<td>
<$ param.description | marked $> <@ if param.optional @><em>(optional)</em><@ endif @>
</td>
</tr>
<@ endfor @>
</tbody>
</table>
<@ endif @>
<@- endfor @>
<@- endmacro -@>
<@- macro githubViewLink(doc) -@>
<a href="https://github.com/ionic-team/ionic-native/tree/master/<$ doc.fileInfo.relativePath $>#L<$ doc.location.start.line+1 $>-L<$ doc.location.end.line+1 $>"><$ doc.fileInfo.relativePath $> (line <$ doc.location.start.line+1 $>)</a>
<@- endmacro -@>
<@- macro paramTable(params, isDirective) -@>
<table class="table param-table" style="margin:0;">
<@ endif @> <@- endfor @> <@- endmacro -@> <@- macro githubViewLink(doc) -@>
<a
href="https://github.com/ionic-team/ionic-native/tree/master/<$ doc.fileInfo.relativePath $>#L<$ doc.location.start.line+1 $>-L<$ doc.location.end.line+1 $>"
><$ doc.fileInfo.relativePath $> (line <$ doc.location.start.line+1 $>)</a
>
<@- endmacro -@> <@- macro paramTable(params, isDirective) -@>
<table class="table param-table" style="margin: 0;">
<thead>
<tr>
<th><@ if isDirective @>Attr<@ else @>Param<@ endif @></th>
<th>Type</th>
<th>Details</th>
</tr>
<tr>
<th><@ if isDirective @>Attr<@ else @>Param<@ endif @></th>
<th>Type</th>
<th>Details</th>
</tr>
</thead>
<tbody>
<@- for param in params @>
<tr>
<td>
<$ param.name $>
<@- if param.alias @>| <$ param.alias $><@ endif -@>
</td>
<td>
<$ typeList(param.typeList) $>
</td>
<td>
<$ param.description | marked $>
<@- if param.defaultValue @><p><em>(default: <$ param.defaultValue $>)</em></p><@ endif -@>
</td>
</tr>
<@ endfor -@>
<@- for param in params @>
<tr>
<td>
<$ param.name $> <@- if param.alias @>| <$ param.alias $><@ endif -@>
</td>
<td>
<$ typeList(param.typeList) $>
</td>
<td>
<$ param.description | marked $> <@- if param.defaultValue @>
<p><em>(default: <$ param.defaultValue $>)</em></p>
<@ endif -@>
</td>
</tr>
<@ endfor -@>
</tbody>
</table>
<@- endmacro -@>
<@- macro functionSyntax(fn) @>
<@- set sep = joiner(',&nbsp;') -@>
<code><$ fn.name $><@- if not fn.isProperty @>(<@ endif -@><@- for param in fn.params @><$ sep() $>
<@- if param.type.optional @>[<@- endif -@>
<$ param.name $>
<@- if param.type.optional -@>]<@- endif -@>
<@- endfor -@><@- if not fn.isProperty @>)<@- endif -@></code>
<@- endmacro -@>
<@- macro typeList(types) -@>
<@ set separator = joiner("|") @>
<@- for type in types @><$ separator() $><$ type | code $><@ endfor -@>
<@- endmacro -@>
<@- macro typeInfo(fn) -@>
<$ typeList(fn.typeList) $> <$ fn.description $>
<@- endmacro -@>
<@- macro documentPlatforms(method) -@>
<@- if method.decorators @>
<@ for prop in method.decorators[0].argumentInfo @>
<@ if prop.platforms @>
<@- endmacro -@> <@- macro functionSyntax(fn) @> <@- set sep = joiner(',&nbsp;') -@>
<code
><$ fn.name $><@- if not fn.isProperty @>(<@ endif -@><@- for param in fn.params @><$ sep() $> <@- if
param.type.optional @>[<@- endif -@> <$ param.name $> <@- if param.type.optional -@>]<@- endif -@> <@- endfor -@><@-
if not fn.isProperty @>)<@- endif -@></code
>
<@- endmacro -@> <@- macro typeList(types) -@> <@ set separator = joiner("|") @> <@- for type in types @><$ separator()
$><$ type | code $><@ endfor -@> <@- endmacro -@> <@- macro typeInfo(fn) -@> <$ typeList(fn.typeList) $> <$
fn.description $> <@- endmacro -@> <@- macro documentPlatforms(method) -@> <@- if method.decorators @> <@ for prop in
method.decorators[0].argumentInfo @> <@ if prop.platforms @>
<p>
<strong>Platforms:</strong>
<@- for platform in prop.platforms -@>
<strong class="tag"><$ platform $></strong>&nbsp;
<@- endfor -@>
<strong class="tag"><$ platform $></strong>&nbsp; <@- endfor -@>
</p>
<@ endif @>
<@ endfor @>
<@- endif @>
<@- endmacro -@>
<@ macro documentMethod(method) -@>
<@ endif @> <@ endfor @> <@- endif @> <@- endmacro -@> <@ macro documentMethod(method) -@>
<h3><a class="anchor" name="<$ method.name $>" href="#<$ method.name $>"></a><$ functionSyntax(method) $></h3>
<$ documentPlatforms(method) $>
<$ method.description $>
<@ if method.params -@>
<$ paramTable(method.params) $>
<@- endif @>
<@ if method.returns -@>
<$ documentPlatforms(method) $> <$ method.description $> <@ if method.params -@> <$ paramTable(method.params) $> <@-
endif @> <@ if method.returns -@>
<div class="return-value" markdown="1">
<i class="icon ion-arrow-return-left"></i>
<b>Returns:</b> <$ typeInfo(method.returns) $>
</div>
<@- endif @>
<@- endmacro -@>
<@- macro documentClass(doc) @>
<@- if doc.statics.length -@>
<@- endif @> <@- endmacro -@> <@- macro documentClass(doc) @> <@- if doc.statics.length -@>
<h2><a class="anchor" name="static-members" href="#static-members"></a>Static Members</h2>
<@ for method in doc.statics -@>
<$ documentMethod(method) $>
<@ endfor -@>
<@ endif @>
<# --- methods in class --- #>
<@ for method in doc.statics -@> <$ documentMethod(method) $> <@ endfor -@> <@ endif @> <# --- methods in class --- #>
<@- if doc.members and doc.members.length @>
<h2><a class="anchor" name="instance-members" href="#instance-members"></a>Instance Members</h2>
<@ for method in doc.members -@>
<$ documentMethod(method) $>
<@- endfor @>
<@- endif -@>
<@ endmacro @>
<@ for method in doc.members -@> <$ documentMethod(method) $> <@- endfor @> <@- endif -@> <@ endmacro @>
<h1 class="api-title"><$ doc.name $>
<@- if doc.beta == true -@>
<span class="beta" title="beta">&beta;</span>
<@- endif -@>
<@- if doc.paid == true -@>
<span class="paid" title="paid">Paid</span>
<h1 class="api-title">
<$ doc.name $> <@- if doc.beta == true -@>
<span class="beta" title="beta">&beta;</span>
<@- endif -@> <@- if doc.paid == true -@>
<span class="paid" title="paid">Paid</span>
<@- endif -@>
</h1>
<a class="improve-v2-docs" href="http://github.com/ionic-team/ionic-native/edit/master/<$ doc.fileInfo.relativePath|replace('/home/ubuntu/ionic-native/', '')|replace('//','/') $>#L<$ doc.location.start.line $>">
<a
class="improve-v2-docs"
href="http://github.com/ionic-team/ionic-native/edit/master/<$ doc.fileInfo.relativePath|replace('/home/ubuntu/ionic-native/', '')|replace('//','/') $>#L<$ doc.location.start.line $>"
>
Improve this doc
</a>
<# --- Decorators --- #>
<@- if doc.decorators @>
<@ for prop in doc.decorators[0].argumentInfo @>
<@ if doc.beta == true @>
<# --- Decorators --- #> <@- if doc.decorators @> <@ for prop in doc.decorators[0].argumentInfo @> <@ if doc.beta ==
true @>
<p class="beta-notice">
This plugin is still in beta stage and may not work as expected. Please
submit any issues to the <a target="_blank"
href="<$ prop.repo $>/issues">plugin repo</a>.
This plugin is still in beta stage and may not work as expected. Please submit any issues to the
<a target="_blank" href="<$ prop.repo $>/issues">plugin repo</a>.
</p>
<@ endif @>
<@ if doc.paid == true @>
<@ endif @> <@ if doc.paid == true @>
<p class="paid-notice">
This plugin might require a paid license, or might take a share of your app's earnings.
Check the <a target="_blank" rel="nofollow" href="<$ prop.repo $>">plugin's repo</a> for more information.
This plugin might require a paid license, or might take a share of your app's earnings. Check the
<a target="_blank" rel="nofollow" href="<$ prop.repo $>">plugin's repo</a> for more information.
</p>
<@ endif @>
<@ endif @> <# --- Plugin description --- #> <$ doc.description | marked $>
<# --- Plugin description --- #>
<$ doc.description | marked $>
<p>Repo:
<p>
Repo:
<a href="<$ prop.repo $>">
<$ prop.repo $>
</a>
@@ -185,115 +137,72 @@ docType: "<$ doc.docType $>"
<# --- Install commands --- #>
<h2><a class="anchor" name="installation" href="#installation"></a>Installation</h2>
<ol class="installation">
<li>Install the Cordova and Ionic Native plugins:<br>
<li>
Install the Cordova and Ionic Native plugins:<br />
<pre><code class="nohighlight">$ <@ if prop.install @><$ prop.install | replace('<', '&lt;').replace('>', '&gt;') $><@ else @>ionic cordova plugin add <$ prop.plugin $><@ endif @>
$ npm install @ionic-native/<$ doc.npmId $>@beta
$ npm install @ionic-native/<$ doc.npmId $>
</code></pre>
</li>
<li><a href="https://ionicframework.com/docs/native/#Add_Plugins_to_Your_App_Module">Add this plugin to your app's module</a></li>
<li>
<a href="https://ionicframework.com/docs/native/#Add_Plugins_to_Your_App_Module"
>Add this plugin to your app's module</a
>
</li>
</ol>
<# --- Plugin supported platforms --- #>
<@ if prop.platforms @>
<# --- Plugin supported platforms --- #> <@ if prop.platforms @>
<h2><a class="anchor" name="platforms" href="#platforms"></a>Supported platforms</h2>
<ul>
<@ for platform in prop.platforms -@>
<li><$ platform $></li>
<@- endfor @>
</ul>
<@ endif @>
<@ endfor @>
<@ endif -@> <# --- end of: if doc.decorators --- #>
<# --- Plugin usage --- #>
<@ if doc.usage @>
<@ endif @> <@ endfor @> <@ endif -@> <# --- end of: if doc.decorators --- #> <# --- Plugin usage --- #> <@ if doc.usage
@>
<h2><a class="anchor" name="usage" href="#usage"></a>Usage</h2>
<$ doc.usage | marked $>
<@ endif @>
<# --- Plugin attributes --- #>
<@- if doc.properties -@>
<$ doc.usage | marked $> <@ endif @> <# --- Plugin attributes --- #> <@- if doc.properties -@>
<h2><a class="anchor" name="attributes" href="#attributes"></a>Attributes:</h2>
<table class="table" style="margin:0;">
<table class="table" style="margin: 0;">
<thead>
<tr>
<th>Attribute</th>
<@ set hasTypes = false @>
<@ for prop in doc.properties @>
<@ if prop.type @>
<@ set hasTypes = true @>
<@ endif @>
<@ endfor @>
<@ if hasTypes @>
<th>Type</th>
<@ endif @>
<th>Description</th>
</tr>
<tr>
<th>Attribute</th>
<@ set hasTypes = false @> <@ for prop in doc.properties @> <@ if prop.type @> <@ set hasTypes = true @> <@ endif
@> <@ endfor @> <@ if hasTypes @>
<th>Type</th>
<@ endif @>
<th>Description</th>
</tr>
</thead>
<tbody>
<@- for prop in doc.properties -@>
<tr>
<td>
<$ prop.name $>
</td>
<@ if hasTypes @>
<td>
<$ prop.type.name $>
</td>
<@ endif @>
<td>
<$ prop.description $>
</td>
</tr>
<@ endfor -@>
<@- for prop in doc.properties -@>
<tr>
<td>
<$ prop.name $>
</td>
<@ if hasTypes @>
<td>
<$ prop.type.name $>
</td>
<@ endif @>
<td>
<$ prop.description $>
</td>
</tr>
<@ endfor -@>
</tbody>
</table>
<@- endif -@>
<# --- Plugin class documentation --- #>
<$ documentClass(doc) $>
<# --- Advanced usage --- #>
<@- if doc.advanced -@>
<@- endif -@> <# --- Plugin class documentation --- #> <$ documentClass(doc) $> <# --- Advanced usage --- #> <@- if
doc.advanced -@>
<h2><a class="anchor" name="advanced" href="#advanced"></a>Advanced</h2>
<$ doc.advanced | marked $>
<@- endif -@>
<# --- Other classes --- #>
<@- for tag in doc.tags.tags -@>
<@- if tag.tagName == 'classes' -@>
<@- set classes = tag.description.split('\n') -@>
<@- for item in classes -@>
<@- if item.length > 1 -@>
<@- for export in doc.moduleDoc.exports -@>
<@- if export.name == item -@>
<$ doc.advanced | marked $> <@- endif -@> <# --- Other classes --- #> <@- for tag in doc.tags.tags -@> <@- if
tag.tagName == 'classes' -@> <@- set classes = tag.description.split('\n') -@> <@- for item in classes -@> <@- if
item.length > 1 -@> <@- for export in doc.moduleDoc.exports -@> <@- if export.name == item -@>
<h2><a class="anchor" name="<$ item $>" href="#<$ item $>"></a><$ item $></h2>
<$ documentClass(export) $>
<@- endif -@>
<@- endfor -@>
<@- endif -@>
<@- endfor -@>
<@- endif -@>
<@- endfor -@>
<# --- Other interfaces --- #>
<@ for tag in doc.tags.tags -@>
<@ if tag.tagName == 'interfaces' @>
<@ set interfaces = tag.description.split('\n') @>
<@ for item in interfaces -@>
<@ if item.length > 1 @>
<$ documentClass(export) $> <@- endif -@> <@- endfor -@> <@- endif -@> <@- endfor -@> <@- endif -@> <@- endfor -@> <#
--- Other interfaces --- #> <@ for tag in doc.tags.tags -@> <@ if tag.tagName == 'interfaces' @> <@ set interfaces =
tag.description.split('\n') @> <@ for item in interfaces -@> <@ if item.length > 1 @>
<h2><a class="anchor" name="<$ item $>" href="#<$ item $>"></a><$ item $></h2>
<$ interfaceTable(item) $>
<@ endif @>
<@- endfor @>
<@ endif @>
<@- endfor @>
<# --- Related links --- #>
<@- if doc.see @>
<$ interfaceTable(item) $> <@ endif @> <@- endfor @> <@ endif @> <@- endfor @> <# --- Related links --- #> <@- if
doc.see @>
<h2><a class="anchor" name="related" href="#related"></a>Related</h2>
<@ for s in doc.see @>
<$ s | safe $>
<@- endfor -@>
<@- endif -@>
<@ for s in doc.see @> <$ s | safe $> <@- endfor -@> <@- endif -@>

View File

@@ -6,5 +6,9 @@
</li>
<@- for doc in docs @><@ if doc.URL and doc.private != true @>
<li class="capitalize {% if page.id == '<$ doc.name|lower|dashify $>' %}active{% endif %}">
<a href="<$ doc.URL $>"><$ doc.name $><@ if doc.paid == true @> <span class="paid">Paid</span><@ endif @><@ if doc.beta == true @> <span class="beta">&beta;</span><@ endif @></a>
</li><@ endif @><@ endfor @>
<a href="<$ doc.URL $>"
><$ doc.name $><@ if doc.paid == true @> <span class="paid">Paid</span><@ endif @><@ if doc.beta == true @>
<span class="beta">&beta;</span><@ endif @></a
>
</li>
<@ endif @><@ endfor @>

View File

@@ -5,6 +5,7 @@
# <$ doc.name $>
<@- if doc.beta == true @>
<p style="color:orange">
This plugin is still in beta stage and may not work as expected. Please
submit any issues to the <a target="_blank"
@@ -12,12 +13,11 @@
</p>
<@ endif -@>
<@ for prop in doc.decorators[0].argumentInfo @>
```
$ <@ if prop.install @><$ prop.install $><@ else @>ionic cordova plugin add <$ prop.plugin $><@ endif @>
$ npm install @ionic-native/<$ doc.npmId $>@beta
$ npm install @ionic-native/<$ doc.npmId $>
```
## [Usage Documentation](https://ionicframework.com/docs/native/<$ doc.fileInfo.relativePath|replace('/home/ubuntu/ionic-native/', '')|replace('//','/')|replace('index.ts','')|replace('src/@ionic-native/plugins/','') $>)
@@ -29,9 +29,11 @@ Plugin Repo: [<$ prop.repo $>](<$ prop.repo $>)
<@- if prop.platforms @>
## Supported platforms
<@ for platform in prop.platforms -@>
- <$ platform $>
<@ endfor @>
<@ endfor @>
<@ endif -@>

View File

@@ -6,35 +6,27 @@ const config = require('./config.json'),
Dgeni = require('dgeni');
module.exports = gulp => {
gulp.task('docs', [], () => {
gulp.task('docs', () => {
try {
const ionicPackage = require('./dgeni/dgeni-config')(
projectPackage.version
),
const ionicPackage = require('./dgeni/dgeni-config')(projectPackage.version),
dgeni = new Dgeni([ionicPackage]);
return dgeni
.generate()
.then(docs => console.log(docs.length + ' docs generated'));
return dgeni.generate().then(docs => console.log(docs.length + ' docs generated'));
} catch (err) {
console.log(err.stack);
}
});
gulp.task('readmes', [], function() {
gulp.task('readmes', () => {
fs.copySync(
path.resolve(__dirname, '..', '..', 'README.md'),
path.resolve(__dirname, '..', '..', config.pluginDir, 'core', 'README.md')
);
try {
const ionicPackage = require('./dgeni/dgeni-readmes-config')(
projectPackage.version
),
const ionicPackage = require('./dgeni/dgeni-readmes-config')(projectPackage.version),
dgeni = new Dgeni([ionicPackage]);
return dgeni
.generate()
.then(docs => console.log(docs.length + ' README files generated'));
return dgeni.generate().then(docs => console.log(docs.length + ' README files generated'));
} catch (err) {
console.log(err.stack);
}

View File

@@ -34,4 +34,4 @@ function run {
}
source $(dirname $0)/../utils.inc.sh
source $(dirname $0)/utils.inc.sh

View File

@@ -31,11 +31,11 @@ function run {
if [ $CHANGED -eq 0 ];
then
echo "-- No changes detected for the following commit, docs not updated."
echo "https://github.com/ionic-team/$CIRCLE_PROJECT_REPONAME/commit/$CIRCLE_SHA1"
echo "https://github.com/ionic-team/$GITHUB_PROJECT_REPONAME/commit/$GITHUB_SHA1"
else
git config --global user.email "hi@ionicframework.com"
git config --global user.name "Ionitron"
git commit -am "Automated build of native docs ionic-team/$CIRCLE_PROJECT_REPONAME@$CIRCLE_SHA1"
git commit -am "Automated build of native docs ionic-team/$GITHUB_PROJECT_REPONAME@$GITHUB_SHA1"
# in case a different commit was pushed to ionic-site during doc/demo gen,
# try to rebase around it before pushing
git fetch
@@ -47,4 +47,4 @@ function run {
fi
}
source $(dirname $0)/../utils.inc.sh
source $(dirname $0)/utils.inc.sh

View File

@@ -1,244 +1,241 @@
# bash utils from angularjs
# This file provides:
# - a default control flow
# * initializes the environment
# * call a function in your script based on the arguments
# - named argument parsing and automatic generation of the "usage" for your script
# - utility functions
#
# Usage:
# - define the variable ARGS_DEF (see below) with the arguments for your script
# - include this file using `source utils.inc` at the end of your script.
#
# Default control flow:
# 0. Set the current directory to the directory of the script. By this
# the script can be called from anywhere.
# 1. Parse the named arguments
# 2. [Redacted]
# 3. If the parameter "verbose" is set, the `-x` flag will be set in bash.
# 4. The function "init" will be called if it exists
# 5. If the parameter "action" is set, it will call the function with the name of that parameter.
# Otherwise the function "run" will be called.
#
# Named Argument Parsing:
# - The variable ARGS_DEF defines the valid command arguments
# * Required args syntax: --paramName=paramRegex
# * Optional args syntax: [--paramName=paramRegex]
# * e.g. ARG_DEFS=("--required_param=(.+)" "[--optional_param=(.+)]")
# - Checks that:
# * all arguments match to an entry in ARGS_DEF
# * all required arguments are present
# * all arguments match their regex
# - Afterwards, every paramter value will be stored in a variable
# with the name of the parameter in upper case (with dash converted to underscore).
#
# Special arguments that are always available:
# - "--action=.*": This parameter will be used to dispatch to a function with that name when the
# script is started
# - "--verbose=true": This will set the `-x` flag in bash so that all calls will be logged
#
# Utility functions:
# - readJsonProp
# - replaceJsonProp
# - resolveDir
# - getVar
# - serVar
# - isFunction
# always stop on errors
set -e
function usage {
echo "Usage: ${0} ${ARG_DEFS[@]}"
exit 1
}
function parseArgs {
local REQUIRED_ARG_NAMES=()
# -- helper functions
function varName {
# everything to upper case and dash to underscore
echo ${1//-/_} | tr '[:lower:]' '[:upper:]'
}
function readArgDefs {
local ARG_DEF
local AD_OPTIONAL
local AD_NAME
local AD_RE
# -- helper functions
function parseArgDef {
local ARG_DEF_REGEX="(\[?)--([^=]+)=(.*)"
if [[ ! $1 =~ $ARG_DEF_REGEX ]]; then
echo "Internal error: arg def has wrong format: $ARG_DEF"
exit 1
fi
AD_OPTIONAL="${BASH_REMATCH[1]}"
AD_NAME="${BASH_REMATCH[2]}"
AD_RE="${BASH_REMATCH[3]}"
if [[ $AD_OPTIONAL ]]; then
# Remove last bracket for optional args.
# Can't put this into the ARG_DEF_REGEX somehow...
AD_RE=${AD_RE%?}
fi
}
# -- run
for ARG_DEF in "${ARG_DEFS[@]}"
do
parseArgDef $ARG_DEF
local AD_NAME_UPPER=$(varName $AD_NAME)
setVar "${AD_NAME_UPPER}_OPTIONAL" "$AD_OPTIONAL"
setVar "${AD_NAME_UPPER}_RE" "$AD_RE"
if [[ ! $AD_OPTIONAL ]]; then
REQUIRED_ARG_NAMES+=($AD_NAME)
fi
done
}
function readAndValidateArgs {
local ARG_NAME
local ARG_VALUE
local ARG_NAME_UPPER
# -- helper functions
function parseArg {
local ARG_REGEX="--([^=]+)=?(.*)"
if [[ ! $1 =~ $ARG_REGEX ]]; then
echo "Can't parse argument $i"
usage
fi
ARG_NAME="${BASH_REMATCH[1]}"
ARG_VALUE="${BASH_REMATCH[2]}"
ARG_NAME_UPPER=$(varName $ARG_NAME)
}
function validateArg {
local AD_RE=$(getVar ${ARG_NAME_UPPER}_RE)
if [[ ! $AD_RE ]]; then
echo "Unknown option: $ARG_NAME"
usage
fi
if [[ ! $ARG_VALUE =~ ^${AD_RE}$ ]]; then
echo "Wrong format: $ARG_NAME"
usage;
fi
# validate that the "action" option points to a valid function
if [[ $ARG_NAME == "action" ]] && ! isFunction $ARG_VALUE; then
echo "No action $ARG_VALUE defined in this script"
usage;
fi
}
# -- run
for i in "$@"
do
parseArg $i
validateArg
setVar "${ARG_NAME_UPPER}" "$ARG_VALUE"
done
}
function checkMissingArgs {
local ARG_NAME
for ARG_NAME in "${REQUIRED_ARG_NAMES[@]}"
do
ARG_VALUE=$(getVar $(varName $ARG_NAME))
if [[ ! $ARG_VALUE ]]; then
echo "Missing: $ARG_NAME"
usage;
fi
done
}
# -- run
readArgDefs
readAndValidateArgs "$@"
checkMissingArgs
}
# getVar(varName)
function getVar {
echo ${!1}
}
# setVar(varName, varValue)
function setVar {
eval "$1=\"$2\""
}
# isFunction(name)
# - to be used in an if, so return 0 if successful and 1 if not!
function isFunction {
if [[ $(type -t $1) == "function" ]]; then
return 0
else
return 1
fi
}
# readJsonProp(jsonFile, property)
# - restriction: property needs to be on an own line!
function readJsonProp {
echo $(sed -En 's/.*"'$2'"[ ]*:[ ]*"(.*)".*/\1/p' $1)
}
# replaceJsonProp(jsonFile, property, newValue)
# - note: propertyRegex will be automatically placed into a
# capturing group! -> all other groups start at index 2!
function replaceJsonProp {
replaceInFile $1 "\"$2\": \".*?\"" "\"$2\": \"$3\""
}
# replaceInFile(file, findPattern, replacePattern)
function replaceInFile {
perl -pi -e "s/$2/$3/g;" $1
}
# resolveDir(relativeDir)
# - resolves a directory relative to the current script
function resolveDir {
echo $(cd $SCRIPT_DIR; cd $1; pwd)
}
function main {
# normalize the working dir to the directory of the script
cd $(dirname $0);SCRIPT_DIR=$(pwd)
ARG_DEFS+=("[--verbose=(true|false)]")
parseArgs "$@"
# --verbose argument
if [[ $VERBOSE == "true" ]]; then
set -x
fi
if isFunction init; then
init "$@"
fi
# jump to the function denoted by the --action argument,
# otherwise call the "run" function
if [[ $ACTION ]]; then
$ACTION "$@"
else
run "$@"
fi
}
main "$@"
# bash utils from angularjs
# This file provides:
# - a default control flow
# * initializes the environment
# * call a function in your script based on the arguments
# - named argument parsing and automatic generation of the "usage" for your script
# - utility functions
#
# Usage:
# - define the variable ARGS_DEF (see below) with the arguments for your script
# - include this file using `source utils.inc` at the end of your script.
#
# Default control flow:
# 0. Set the current directory to the directory of the script. By this
# the script can be called from anywhere.
# 1. Parse the named arguments
# 2. [Redacted]
# 3. If the parameter "verbose" is set, the `-x` flag will be set in bash.
# 4. The function "init" will be called if it exists
# 5. If the parameter "action" is set, it will call the function with the name of that parameter.
# Otherwise the function "run" will be called.
#
# Named Argument Parsing:
# - The variable ARGS_DEF defines the valid command arguments
# * Required args syntax: --paramName=paramRegex
# * Optional args syntax: [--paramName=paramRegex]
# * e.g. ARG_DEFS=("--required_param=(.+)" "[--optional_param=(.+)]")
# - Checks that:
# * all arguments match to an entry in ARGS_DEF
# * all required arguments are present
# * all arguments match their regex
# - Afterwards, every paramter value will be stored in a variable
# with the name of the parameter in upper case (with dash converted to underscore).
#
# Special arguments that are always available:
# - "--action=.*": This parameter will be used to dispatch to a function with that name when the
# script is started
# - "--verbose=true": This will set the `-x` flag in bash so that all calls will be logged
#
# Utility functions:
# - readJsonProp
# - replaceJsonProp
# - resolveDir
# - getVar
# - serVar
# - isFunction
# always stop on errors
set -e
function usage {
echo "Usage: ${0} ${ARG_DEFS[@]}"
exit 1
}
function parseArgs {
local REQUIRED_ARG_NAMES=()
# -- helper functions
function varName {
# everything to upper case and dash to underscore
echo ${1//-/_} | tr '[:lower:]' '[:upper:]'
}
function readArgDefs {
local ARG_DEF
local AD_OPTIONAL
local AD_NAME
local AD_RE
# -- helper functions
function parseArgDef {
local ARG_DEF_REGEX="(\[?)--([^=]+)=(.*)"
if [[ ! $1 =~ $ARG_DEF_REGEX ]]; then
echo "Internal error: arg def has wrong format: $ARG_DEF"
exit 1
fi
AD_OPTIONAL="${BASH_REMATCH[1]}"
AD_NAME="${BASH_REMATCH[2]}"
AD_RE="${BASH_REMATCH[3]}"
if [[ $AD_OPTIONAL ]]; then
# Remove last bracket for optional args.
# Can't put this into the ARG_DEF_REGEX somehow...
AD_RE=${AD_RE%?}
fi
}
# -- run
for ARG_DEF in "${ARG_DEFS[@]}"
do
parseArgDef $ARG_DEF
local AD_NAME_UPPER=$(varName $AD_NAME)
setVar "${AD_NAME_UPPER}_OPTIONAL" "$AD_OPTIONAL"
setVar "${AD_NAME_UPPER}_RE" "$AD_RE"
if [[ ! $AD_OPTIONAL ]]; then
REQUIRED_ARG_NAMES+=($AD_NAME)
fi
done
}
function readAndValidateArgs {
local ARG_NAME
local ARG_VALUE
local ARG_NAME_UPPER
# -- helper functions
function parseArg {
local ARG_REGEX="--([^=]+)=?(.*)"
if [[ ! $1 =~ $ARG_REGEX ]]; then
echo "Can't parse argument $i"
usage
fi
ARG_NAME="${BASH_REMATCH[1]}"
ARG_VALUE="${BASH_REMATCH[2]}"
ARG_NAME_UPPER=$(varName $ARG_NAME)
}
function validateArg {
local AD_RE=$(getVar ${ARG_NAME_UPPER}_RE)
if [[ ! $AD_RE ]]; then
echo "Unknown option: $ARG_NAME"
usage
fi
if [[ ! $ARG_VALUE =~ ^${AD_RE}$ ]]; then
echo "Wrong format: $ARG_NAME"
usage;
fi
# validate that the "action" option points to a valid function
if [[ $ARG_NAME == "action" ]] && ! isFunction $ARG_VALUE; then
echo "No action $ARG_VALUE defined in this script"
usage;
fi
}
# -- run
for i in "$@"
do
parseArg $i
validateArg
setVar "${ARG_NAME_UPPER}" "$ARG_VALUE"
done
}
function checkMissingArgs {
local ARG_NAME
for ARG_NAME in "${REQUIRED_ARG_NAMES[@]}"
do
ARG_VALUE=$(getVar $(varName $ARG_NAME))
if [[ ! $ARG_VALUE ]]; then
echo "Missing: $ARG_NAME"
usage;
fi
done
}
# -- run
readArgDefs
readAndValidateArgs "$@"
checkMissingArgs
}
# getVar(varName)
function getVar {
echo ${!1}
}
# setVar(varName, varValue)
function setVar {
eval "$1=\"$2\""
}
# isFunction(name)
# - to be used in an if, so return 0 if successful and 1 if not!
function isFunction {
if [[ $(type -t $1) == "function" ]]; then
return 0
else
return 1
fi
}
# readJsonProp(jsonFile, property)
# - restriction: property needs to be on an own line!
function readJsonProp {
echo $(sed -En 's/.*"'$2'"[ ]*:[ ]*"(.*)".*/\1/p' $1)
}
# replaceJsonProp(jsonFile, property, newValue)
# - note: propertyRegex will be automatically placed into a
# capturing group! -> all other groups start at index 2!
function replaceJsonProp {
replaceInFile $1 "\"$2\": \".*?\"" "\"$2\": \"$3\""
}
# replaceInFile(file, findPattern, replacePattern)
function replaceInFile {
perl -pi -e "s/$2/$3/g;" $1
}
# resolveDir(relativeDir)
# - resolves a directory relative to the current script
function resolveDir {
echo $(cd $SCRIPT_DIR; cd $1; pwd)
}
function main {
# normalize the working dir to the directory of the script
cd $(dirname $0);SCRIPT_DIR=$(pwd)
ARG_DEFS+=("[--verbose=(true|false)]")
parseArgs "$@"
# --verbose argument
if [[ $VERBOSE == "true" ]]; then
set -x
fi
if isFunction init; then
init "$@"
fi
# jump to the function denoted by the --action argument,
# otherwise call the "run" function
if [[ $ACTION ]]; then
$ACTION "$@"
else
run "$@"
fi
}
main "$@"

View File

@@ -7,5 +7,5 @@ const LOG_LEVEL = 'verbose';
export const Logger = createLogger({
level: LOG_LEVEL,
format: combine(colorize(), simple()),
transports: [new transports.Console({ level: LOG_LEVEL })]
transports: [new transports.Console({ level: LOG_LEVEL })],
});

View File

@@ -5,26 +5,20 @@ import * as unminifiedPlugin from 'unminified-webpack-plugin';
import * as webpack from 'webpack';
import { ROOT } from '../build/helpers';
import {
cleanEmittedData,
EMIT_PATH,
InjectableClassEntry
} from '../build/transformers/extract-injectables';
import { cleanEmittedData, EMIT_PATH, InjectableClassEntry } from '../build/transformers/extract-injectables';
import { Logger } from '../logger';
const DIST = path.resolve(ROOT, 'dist');
const INDEX_PATH = path.resolve(DIST, 'index.js');
const INJECTABLE_CLASSES = fs
.readJSONSync(EMIT_PATH)
.map((item: InjectableClassEntry) => {
item.file =
'./' +
item.file
.split(/[\/\\]+/)
.slice(-4, -1)
.join('/');
return item;
});
const INJECTABLE_CLASSES = fs.readJSONSync(EMIT_PATH).map((item: InjectableClassEntry) => {
item.file =
'./' +
item.file
.split(/[\/\\]+/)
.slice(-4, -1)
.join('/');
return item;
});
const webpackConfig: webpack.Configuration = {
mode: 'production',
@@ -33,36 +27,35 @@ const webpackConfig: webpack.Configuration = {
target: 'web',
output: {
path: DIST,
filename: 'ionic-native.min.js'
filename: 'ionic-native.min.js',
},
resolve: {
modules: ['node_modules'],
extensions: ['.js'],
alias: {
'@ionic-native/core': path.resolve(DIST, '@ionic-native/core/index.js')
}
'@ionic-native/core': path.resolve(DIST, '@ionic-native/core/index.js'),
},
},
module: {
rules: [
{
test: /\.js$/,
use: path.resolve(ROOT, 'scripts/build/remove-tslib-helpers.js')
}
]
use: path.resolve(ROOT, 'scripts/build/remove-tslib-helpers.js'),
},
],
},
plugins: [
new webpack.ProvidePlugin({
__extends: ['tslib', '__extends']
__extends: ['tslib', '__extends'],
}),
new webpack.optimize.OccurrenceOrderPlugin(true),
new webpack.DefinePlugin({
'process.env.NODE_ENV': JSON.stringify('production')
'process.env.NODE_ENV': JSON.stringify('production'),
}),
new uglifyJsPlugin({
sourceMap: true
sourceMap: true,
}),
new unminifiedPlugin()
]
new unminifiedPlugin(),
],
};
function getPluginImport(entry: InjectableClassEntry) {

View File

@@ -14,30 +14,21 @@ const outDirs = PLUGIN_PATHS.map(p =>
const injectableClasses = fs.readJSONSync(EMIT_PATH);
outDirs.forEach(dir => {
const classes = injectableClasses.filter(
entry => entry.dirName === dir.split(/[\\/]+/).pop()
);
const classes = injectableClasses.filter(entry => entry.dirName === dir.split(/[\\/]+/).pop());
let jsFile: string = fs.readFileSync(path.join(dir, 'index.js'), 'utf-8'),
dtsFile: string = fs.readFileSync(path.join(dir, 'index.d.ts'), 'utf-8');
classes.forEach(entry => {
dtsFile = dtsFile.replace(
`class ${entry.className} `,
'class ' + entry.className + 'Original '
);
dtsFile += `\nexport declare const ${entry.className}: ${
entry.className
}Original;`;
dtsFile = dtsFile.replace(`class ${entry.className} `, 'class ' + entry.className + 'Original ');
dtsFile += `\nexport declare const ${entry.className}: ${entry.className}Original;`;
jsFile = jsFile.replace(
new RegExp(`([\\s\\(])${entry.className}([\\s\\.;\\(,])`, 'g'),
'$1' + entry.className + 'Original$2'
);
jsFile = jsFile.replace(
`export { ${entry.className}Original }`,
`var ${entry.className} = new ${entry.className}Original();\nexport { ${
entry.className
} }`
`var ${entry.className} = new ${entry.className}Original();\nexport { ${entry.className} }`
);
});

View File

@@ -1,13 +1,15 @@
import {
cleanupNgx,
generateLegacyBundles,
generateDeclarationFiles,
modifyMetadata,
transpileNgx,
transpileNgxCore
transpileNgxCore,
} from '../build/ngx';
transpileNgxCore();
transpileNgx();
generateLegacyBundles();
generateDeclarationFiles();
modifyMetadata();
cleanupNgx();

View File

@@ -11,37 +11,39 @@ import { Logger } from '../logger';
// tslint:disable-next-line:no-var-requires
const MAIN_PACKAGE_JSON = require('../../package.json');
const VERSION = MAIN_PACKAGE_JSON.version;
const FLAGS = '--access public --tag beta';
const FLAGS = '--access public';
const PACKAGE_JSON_BASE = {
description: 'Ionic Native - Native plugins for ionic apps',
main: 'bundle.js',
module: 'index.js',
typings: 'index.d.ts',
author: 'ionic',
license: 'MIT',
repository: {
type: 'git',
url: 'https://github.com/ionic-team/ionic-native.git'
}
url: 'https://github.com/ionic-team/ionic-native.git',
},
};
const DIST = path.resolve(ROOT, 'dist/@ionic-native');
const PACKAGES = [];
const RXJS_VERSION = '*';
const MIN_CORE_VERSION = '^5.1.0';
const RXJS_VERSION = '^5.5.0 || ^6.5.0';
const PLUGIN_PEER_DEPENDENCIES = {
'@ionic-native/core': VERSION, // TODO change this in production
rxjs: RXJS_VERSION
'@ionic-native/core': MIN_CORE_VERSION,
rxjs: RXJS_VERSION,
};
function getPackageJsonContent(name, peerDependencies = {}, dependencies = {}) {
function getPackageJsonContent(name: string, peerDependencies = {}, dependencies = {}) {
return merge(PACKAGE_JSON_BASE, {
name: '@ionic-native/' + name,
dependencies,
peerDependencies,
version: VERSION
version: VERSION,
});
}
@@ -50,7 +52,10 @@ function writePackageJson(data: any, dir: string) {
fs.writeJSONSync(filePath, data);
PACKAGES.push(dir);
}
function writeNGXPackageJson(data: any, dir: string) {
const filePath = path.resolve(dir, 'package.json');
fs.writeJSONSync(filePath, data);
}
function prepare() {
// write @ionic-native/core package.json
writePackageJson(
@@ -61,41 +66,36 @@ function prepare() {
// write plugin package.json files
PLUGIN_PATHS.forEach((pluginPath: string) => {
const pluginName = pluginPath.split(/[\/\\]+/).slice(-2)[0];
const packageJsonContents = getPackageJsonContent(
pluginName,
PLUGIN_PEER_DEPENDENCIES
);
const packageJsonContents = getPackageJsonContent(pluginName, PLUGIN_PEER_DEPENDENCIES);
const dir = path.resolve(DIST, 'plugins', pluginName);
const ngxDir = path.join(dir, 'ngx');
writePackageJson(packageJsonContents, dir);
writeNGXPackageJson(packageJsonContents, ngxDir);
});
}
async function publish(ignoreErrors = false) {
Logger.profile('Publishing');
// upload 1 package per CPU thread at a time
const worker = Queue.async.asyncify((pkg: any) =>
new Promise<any>((resolve, reject) => {
exec(`npm publish ${pkg} ${FLAGS}`, (err, stdout) => {
if (stdout) {
Logger.verbose(stdout.trim());
resolve(stdout);
}
if (err) {
if (!ignoreErrors) {
if (
err.message.includes(
'You cannot publish over the previously published version'
)
) {
Logger.verbose('Ignoring duplicate version error.');
return resolve();
}
reject(err);
const worker = Queue.async.asyncify(
(pkg: any) =>
new Promise<string | void>((resolve, reject) => {
exec(`npm publish ${pkg} ${FLAGS}`, (err, stdout) => {
if (stdout) {
Logger.verbose(stdout.trim());
resolve(stdout);
}
}
});
})
if (err) {
if (!ignoreErrors) {
if (err.message.includes('You cannot publish over the previously published version')) {
Logger.verbose('Ignoring duplicate version error.');
return resolve();
}
reject(err);
}
}
});
})
);
try {

View File

@@ -6,7 +6,5 @@
"noImplicitAny": false,
"lib": ["es6"]
},
"exclude": [
"node_modules"
]
"exclude": ["node_modules"]
}

View File

@@ -1,25 +1,26 @@
export function checkReady() {
const DEVICE_READY_TIMEOUT = 5000;
if (typeof process === 'undefined') {
const win: any = typeof window !== 'undefined' ? window : {};
const DEVICE_READY_TIMEOUT = 5000;
// To help developers using cordova, we listen for the device ready event and
// log an error if it didn't fire in a reasonable amount of time. Generally,
// when this happens, developers should remove and reinstall plugins, since
// an inconsistent plugin is often the culprit.
const before = Date.now();
// To help developers using cordova, we listen for the device ready event and
// log an error if it didn't fire in a reasonable amount of time. Generally,
// when this happens, developers should remove and reinstall plugins, since
// an inconsistent plugin is often the culprit.
const before = Date.now();
let didFireReady = false;
document.addEventListener('deviceready', () => {
console.log(
`Ionic Native: deviceready event fired after ${Date.now() - before} ms`
);
didFireReady = true;
});
let didFireReady = false;
win.document.addEventListener('deviceready', () => {
console.log(`Ionic Native: deviceready event fired after ${Date.now() - before} ms`);
didFireReady = true;
});
setTimeout(() => {
if (!didFireReady && window.cordova) {
console.warn(
`Ionic Native: deviceready did not fire within ${DEVICE_READY_TIMEOUT}ms. This can happen when plugins are in an inconsistent state. Try removing plugins from plugins/ and reinstalling them.`
);
}
}, DEVICE_READY_TIMEOUT);
setTimeout(() => {
if (!didFireReady && win.cordova) {
console.warn(
`Ionic Native: deviceready did not fire within ${DEVICE_READY_TIMEOUT}ms. This can happen when plugins are in an inconsistent state. Try removing plugins from plugins/ and reinstalling them.`
);
}
}, DEVICE_READY_TIMEOUT);
}
}

View File

@@ -30,13 +30,9 @@ class MockInstancePluginObject {
class MockCordovaPlugin {
static ping = jest.fn((arg: string) => 'pong');
static pingAsync = jest.fn(
(arg: string, success: Function, error: Function) => success('pong')
);
static pingAsync = jest.fn((arg: string, success: Function, error: Function) => success('pong'));
ping = jest.fn((arg: string) => 'pong');
pingAsync = jest.fn((arg: string, success: Function, error: Function) =>
success('pong')
);
pingAsync = jest.fn((arg: string, success: Function, error: Function) => success('pong'));
}
describe('Common decorator functions', () => {
@@ -73,12 +69,8 @@ describe('Common decorator functions', () => {
test('original method should have received args', () => {
expect(MockCordovaPlugin.pingAsync.mock.calls[0][0]).toBe('pingpong');
expect(typeof MockCordovaPlugin.pingAsync.mock.calls[0][1]).toBe(
'function'
);
expect(typeof MockCordovaPlugin.pingAsync.mock.calls[0][2]).toBe(
'function'
);
expect(typeof MockCordovaPlugin.pingAsync.mock.calls[0][1]).toBe('function');
expect(typeof MockCordovaPlugin.pingAsync.mock.calls[0][2]).toBe('function');
});
});

View File

@@ -1,4 +1,4 @@
import { Observable, fromEvent } from 'rxjs';
import { fromEvent, Observable } from 'rxjs';
import { CordovaOptions } from './interfaces';
@@ -7,9 +7,7 @@ declare const window: any;
export const ERR_CORDOVA_NOT_AVAILABLE = { error: 'cordova_not_available' };
export const ERR_PLUGIN_NOT_INSTALLED = { error: 'plugin_not_installed' };
export function getPromise<T>(
callback: (resolve: Function, reject?: Function) => any
): Promise<T> {
export function getPromise<T>(callback: (resolve: Function, reject?: Function) => any): Promise<T> {
const tryNativePromise = () => {
if (Promise) {
return new Promise<T>((resolve, reject) => {
@@ -22,10 +20,9 @@ export function getPromise<T>(
}
};
if (window.angular) {
const injector = window.angular
.element(document.querySelector('[ng-app]') || document.body)
.injector();
if (typeof window !== 'undefined' && window.angular) {
const doc = window.document;
const injector = window.angular.element(doc.querySelector('[ng-app]') || doc.body).injector();
if (injector) {
const $q = injector.get('$q');
return $q((resolve: Function, reject: Function) => {
@@ -40,12 +37,7 @@ export function getPromise<T>(
return tryNativePromise();
}
export function wrapPromise(
pluginObj: any,
methodName: string,
args: any[],
opts: CordovaOptions = {}
) {
export function wrapPromise(pluginObj: any, methodName: string, args: any[], opts: CordovaOptions = {}) {
let pluginResult: any, rej: Function;
const p = getPromise((resolve: Function, reject: Function) => {
if (opts.destruct) {
@@ -58,14 +50,7 @@ export function wrapPromise(
(...args: any[]) => reject(args)
);
} else {
pluginResult = callCordovaPlugin(
pluginObj,
methodName,
args,
opts,
resolve,
reject
);
pluginResult = callCordovaPlugin(pluginObj, methodName, args, opts, resolve, reject);
}
rej = reject;
});
@@ -79,12 +64,7 @@ export function wrapPromise(
return p;
}
function wrapOtherPromise(
pluginObj: any,
methodName: string,
args: any[],
opts: any = {}
) {
function wrapOtherPromise(pluginObj: any, methodName: string, args: any[], opts: any = {}) {
return getPromise((resolve: Function, reject: Function) => {
const pluginResult = callCordovaPlugin(pluginObj, methodName, args, opts);
if (pluginResult) {
@@ -99,12 +79,7 @@ function wrapOtherPromise(
});
}
function wrapObservable(
pluginObj: any,
methodName: string,
args: any[],
opts: any = {}
) {
function wrapObservable(pluginObj: any, methodName: string, args: any[], opts: any = {}) {
return new Observable(observer => {
let pluginResult;
@@ -162,12 +137,15 @@ function wrapObservable(
/**
* Wrap the event with an observable
* @private
* @param event even name
* @param event event name
* @param element The element to attach the event listener to
* @returns {Observable}
*/
function wrapEventObservable(event: string, element: any): Observable<any> {
element = element ? get(window, element) : window;
element =
typeof window !== 'undefined' && element
? get(window, element)
: element || (typeof window !== 'undefined' ? window : {});
return fromEvent(element, event);
}
@@ -186,11 +164,7 @@ export function checkAvailability(
methodName?: string,
pluginName?: string
): boolean | { error: string };
export function checkAvailability(
plugin: any,
methodName?: string,
pluginName?: string
): boolean | { error: string } {
export function checkAvailability(plugin: any, methodName?: string, pluginName?: string): boolean | { error: string } {
let pluginRef, pluginInstance, pluginPackage;
if (typeof plugin === 'string') {
@@ -203,11 +177,8 @@ export function checkAvailability(
pluginInstance = getPlugin(pluginRef);
if (
!pluginInstance ||
(!!methodName && typeof pluginInstance[methodName] === 'undefined')
) {
if (!window.cordova) {
if (!pluginInstance || (!!methodName && typeof pluginInstance[methodName] === 'undefined')) {
if (typeof window === 'undefined' || !window.cordova) {
cordovaWarn(pluginName, methodName);
return ERR_CORDOVA_NOT_AVAILABLE;
}
@@ -223,23 +194,11 @@ export function checkAvailability(
* Checks if _objectInstance exists and has the method/property
* @private
*/
export function instanceAvailability(
pluginObj: any,
methodName?: string
): boolean {
return (
pluginObj._objectInstance &&
(!methodName ||
typeof pluginObj._objectInstance[methodName] !== 'undefined')
);
export function instanceAvailability(pluginObj: any, methodName?: string): boolean {
return pluginObj._objectInstance && (!methodName || typeof pluginObj._objectInstance[methodName] !== 'undefined');
}
export function setIndex(
args: any[],
opts: any = {},
resolve?: Function,
reject?: Function
): any {
export function setIndex(args: any[], opts: any = {}, resolve?: Function, reject?: Function): any {
// ignore resolve and reject in case sync
if (opts.sync) {
return args;
@@ -258,19 +217,12 @@ export function setIndex(
resolve(result);
}
});
} else if (
opts.callbackStyle === 'object' &&
opts.successName &&
opts.errorName
) {
} else if (opts.callbackStyle === 'object' && opts.successName && opts.errorName) {
const obj: any = {};
obj[opts.successName] = resolve;
obj[opts.errorName] = reject;
args.push(obj);
} else if (
typeof opts.successIndex !== 'undefined' ||
typeof opts.errorIndex !== 'undefined'
) {
} else if (typeof opts.successIndex !== 'undefined' || typeof opts.errorIndex !== 'undefined') {
const setSuccessIndex = () => {
// If we've specified a success/error index
if (opts.successIndex > args.length) {
@@ -339,15 +291,15 @@ export function callInstance(
args = setIndex(args, opts, resolve, reject);
if (instanceAvailability(pluginObj, methodName)) {
return pluginObj._objectInstance[methodName].apply(
pluginObj._objectInstance,
args
);
return pluginObj._objectInstance[methodName].apply(pluginObj._objectInstance, args);
}
}
export function getPlugin(pluginRef: string): any {
return get(window, pluginRef);
if (typeof window !== 'undefined') {
return get(window, pluginRef);
}
return null;
}
export function get(element: Element | Window, path: string) {
@@ -362,30 +314,16 @@ export function get(element: Element | Window, path: string) {
return obj;
}
export function pluginWarn(
pluginName: string,
plugin?: string,
method?: string
): void {
export function pluginWarn(pluginName: string, plugin?: string, method?: string): void {
if (method) {
console.warn(
'Native: tried calling ' +
pluginName +
'.' +
method +
', but the ' +
pluginName +
' plugin is not installed.'
'Native: tried calling ' + pluginName + '.' + method + ', but the ' + pluginName + ' plugin is not installed.'
);
} else {
console.warn(
`Native: tried accessing the ${pluginName} plugin but it's not installed.`
);
console.warn(`Native: tried accessing the ${pluginName} plugin but it's not installed.`);
}
if (plugin) {
console.warn(
`Install the ${pluginName} plugin: 'ionic cordova plugin add ${plugin}'`
);
console.warn(`Install the ${pluginName} plugin: 'ionic cordova plugin add ${plugin}'`);
}
}
@@ -395,20 +333,22 @@ export function pluginWarn(
* @param method
*/
export function cordovaWarn(pluginName: string, method?: string): void {
if (method) {
console.warn(
'Native: tried calling ' +
pluginName +
'.' +
method +
', but Cordova is not available. Make sure to include cordova.js or run in a device/simulator'
);
} else {
console.warn(
'Native: tried accessing the ' +
pluginName +
' plugin but Cordova is not available. Make sure to include cordova.js or run in a device/simulator'
);
if (typeof process === 'undefined') {
if (method) {
console.warn(
'Native: tried calling ' +
pluginName +
'.' +
method +
', but Cordova is not available. Make sure to include cordova.js or run in a device/simulator'
);
} else {
console.warn(
'Native: tried accessing the ' +
pluginName +
' plugin but Cordova is not available. Make sure to include cordova.js or run in a device/simulator'
);
}
}
}
@@ -419,11 +359,7 @@ export type WrapFn = (...args: any[]) => any;
/**
* @private
*/
export const wrap = (
pluginObj: any,
methodName: string,
opts: CordovaOptions = {}
): WrapFn => {
export const wrap = (pluginObj: any, methodName: string, opts: CordovaOptions = {}): WrapFn => {
return (...args: any[]) => {
if (opts.sync) {
// Sync doesn't wrap the plugin with a promise or observable, it returns the result as-is
@@ -443,11 +379,7 @@ export const wrap = (
/**
* @private
*/
export function wrapInstance(
pluginObj: any,
methodName: string,
opts: any = {}
): Function {
export function wrapInstance(pluginObj: any, methodName: string, opts: any = {}): Function {
return (...args: any[]) => {
if (opts.sync) {
return callInstance(pluginObj, methodName, args, opts);
@@ -515,14 +447,7 @@ export function wrapInstance(
(...args: any[]) => reject(args)
);
} else {
result = callInstance(
pluginObj,
methodName,
args,
opts,
resolve,
reject
);
result = callInstance(pluginObj, methodName, args, opts, resolve, reject);
}
if (result && result.then) {
result.then(resolve, reject);
@@ -543,14 +468,7 @@ export function wrapInstance(
(...args: any[]) => reject(args)
);
} else {
pluginResult = callInstance(
pluginObj,
methodName,
args,
opts,
resolve,
reject
);
pluginResult = callInstance(pluginObj, methodName, args, opts, resolve, reject);
}
rej = reject;
});

View File

@@ -1,4 +1,5 @@
import { Observable, Observer } from 'rxjs';
import { checkAvailability, getPlugin } from './common';
function overrideFunction(pluginObj: any, methodName: string): Observable<any> {
@@ -16,10 +17,6 @@ function overrideFunction(pluginObj: any, methodName: string): Observable<any> {
});
}
export function cordovaFunctionOverride(
pluginObj: any,
methodName: string,
args: IArguments | any[] = []
) {
export function cordovaFunctionOverride(pluginObj: any, methodName: string, args: IArguments | any[] = []) {
return overrideFunction(pluginObj, methodName);
}

View File

@@ -33,6 +33,10 @@ export interface PluginConfig {
export interface CordovaOptions {
destruct?: boolean;
/**
* If the method-name of the cordova plugin is different from the wrappers one, it can be defined here
*/
methodName?: string;
/**
* Set to true if the wrapped method is a sync function
*/

View File

@@ -2,47 +2,61 @@ import { checkAvailability } from './decorators/common';
import { get } from './util';
export class IonicNativePlugin {
static pluginName: string;
static pluginRef: string;
static plugin: string;
static repo: string;
static platforms: string[];
static install: string;
static pluginName = '';
static pluginRef = '';
static plugin = '';
static repo = '';
static platforms: string[] = [];
static install = '';
/**
* Returns a boolean that indicates whether the plugin is installed
* @return {boolean}
*/
static installed(): boolean { return checkAvailability(this.pluginRef) === true; }
static installed(): boolean {
const isAvailable = checkAvailability(this.pluginRef) === true;
return isAvailable;
}
/**
* Returns the original plugin object
*/
static getPlugin(): any { return get(window, this.pluginRef); }
static getPlugin(): any {
if (typeof window !== 'undefined') {
return get(window, this.pluginRef);
}
return null;
}
/**
* Returns the plugin's name
*/
static getPluginName(): string { return this.pluginName; }
static getPluginName(): string {
const pluginName = this.pluginName;
return pluginName;
}
/**
* Returns the plugin's reference
*/
static getPluginRef(): string { return this.pluginRef; }
static getPluginRef(): string {
const pluginRef = this.pluginRef;
return pluginRef;
}
/**
* Returns the plugin's install name
*/
static getPluginInstallName(): string { return this.plugin; }
static getPluginInstallName(): string {
const plugin = this.plugin;
return plugin;
}
/**
* Returns the plugin's supported platforms
*/
static getSupportedPlatforms(): string[] { return this.platforms || []; }
static getSupportedPlatforms(): string[] {
const platform = this.platforms;
return platform;
}
}

View File

@@ -6,7 +6,7 @@ declare const window: any;
* creates Angular 1 services of the form $cordovaSERVICE, ex: $cordovaStatusBar.
*/
export function initAngular1(plugins: any) {
if (window.angular) {
if (typeof window !== 'undefined' && window.angular) {
const ngModule = window.angular.module('ionic.native', []);
for (const name in plugins) {
@@ -19,7 +19,7 @@ export function initAngular1(plugins: any) {
const funcs = window.angular.copy(cls);
funcs.__proto__['name'] = name;
return funcs;
}
},
]);
})(serviceName, cls, name);
}

View File

@@ -7,7 +7,9 @@ export function get(element: Element | Window, path: string) {
const paths: string[] = path.split('.');
let obj: any = element;
for (let i = 0; i < paths.length; i++) {
if (!obj) { return null; }
if (!obj) {
return null;
}
obj = obj[paths[i]];
}
return obj;
@@ -17,9 +19,8 @@ export function get(element: Element | Window, path: string) {
* @private
*/
export function getPromise(callback: Function = () => {}): Promise<any> {
const tryNativePromise = () => {
if (window.Promise) {
if (typeof Promise === 'function' || (typeof window !== 'undefined' && window.Promise)) {
return new Promise<any>((resolve, reject) => {
callback(resolve, reject);
});

View File

@@ -9,7 +9,6 @@ declare const AbbyyRtrSdk: any;
* default setting will be used.
*/
export interface TextCaptureOptions {
/**
* The name of the license file. This file must be located in the
* www/rtr_assets/ directory in your project.
@@ -57,6 +56,11 @@ export interface TextCaptureOptions {
* the latest recognition result.
*/
isStopButtonVisible?: boolean;
/**
* Specify the orientation, possible values 'landscape' or 'portrait'.
*/
orientation?: string;
}
/**
@@ -64,7 +68,6 @@ export interface TextCaptureOptions {
* The callback you implement should parse this object and show results to user.
*/
export interface TextCaptureResult {
/**
* An array of objects representing recognized lines of text.
* These objects have the following keys:
@@ -75,7 +78,7 @@ export interface TextCaptureResult {
* · rect (string): position and size of the bounding rectangle,
* a string of 4 integers separated with whitespaces ("x y width height").
*/
textLines: { text: string, quadrangle: string, rect?: string }[];
textLines: { text: string; quadrangle: string; rect?: string }[];
/**
* Additional information. This object has the following keys:
@@ -91,10 +94,10 @@ export interface TextCaptureResult {
* the array contains language identifiers (["English", "French", "German"]).
*/
resultInfo: {
stabilityStatus: string,
userAction: string,
frameSize: string,
recognitionLanguages: string[]
stabilityStatus: string;
userAction: string;
frameSize: string;
recognitionLanguages: string[];
};
/**
@@ -114,7 +117,6 @@ export interface TextCaptureResult {
* keys: you must specify either one of them, but not both at the same time.
*/
export interface DataCaptureOptions {
/**
* The predefined data capture profile to use, for example: "MRZ".
* Note: For the list of supported documents, see Specifications — Data
@@ -134,10 +136,10 @@ export interface DataCaptureOptions {
* the regular expression that should be matched when capturing a field.
*/
customDataCaptureScenario?: {
name: string,
description: string,
recognitionLanguages: string[],
fields: { regEx: string }[]
name: string;
description: string;
recognitionLanguages: string[];
fields: { regEx: string }[];
};
/**
@@ -175,6 +177,11 @@ export interface DataCaptureOptions {
* the latest recognition result.
*/
isStopButtonVisible?: boolean;
/**
* Specify the orientation, possible values 'landscape' or 'portrait'.
*/
orientation?: string;
}
/**
@@ -182,7 +189,6 @@ export interface DataCaptureOptions {
* implement should parse this object and show results to user.
*/
export interface DataCaptureResult {
/**
* The data scheme which was applied during data capture.
* The value is an object which has two keys:
@@ -195,8 +201,8 @@ export interface DataCaptureResult {
* present in the result.
*/
dataScheme?: {
id: string,
name: string
id: string;
name: string;
};
/**
@@ -222,15 +228,15 @@ export interface DataCaptureResult {
* of 4 integers separated with whitespaces ("x y width height").
*/
dataFields: {
id: string,
name: string,
text: string,
quadrangle: string,
id: string;
name: string;
text: string;
quadrangle: string;
components: {
text: string,
quadrangle: string,
rect: string
}
text: string;
quadrangle: string;
rect: string;
};
};
/**
@@ -245,9 +251,9 @@ export interface DataCaptureResult {
* with 2 integers separated with a whitespace ("720 1280").
*/
resultInfo: {
stabilityStatus: string,
userAction: string,
frameSize: string
stabilityStatus: string;
userAction: string;
frameSize: string;
};
/**
@@ -293,11 +299,10 @@ export interface DataCaptureResult {
pluginRef: 'AbbyyRtrSdk',
repo: 'https://github.com/abbyysdk/RTR-SDK.Cordova',
install: 'ionic cordova plugin add cordova-plugin-abbyy-rtr-sdk',
platforms: ['Android', 'iOS']
platforms: ['Android', 'iOS'],
})
@Injectable()
export class AbbyyRTR extends IonicNativePlugin {
/**
* Opens a modal dialog with controls for the Text Capture scenario.
* @param {TextCaptureOptions} options

View File

@@ -93,7 +93,7 @@ export interface ActionSheetOptions {
plugin: 'cordova-plugin-actionsheet',
pluginRef: 'plugins.actionsheet',
repo: 'https://github.com/EddyVerbruggen/cordova-plugin-actionsheet',
platforms: ['Android', 'Browser', 'iOS', 'Windows', 'Windows Phone 8']
platforms: ['Android', 'Browser', 'iOS', 'Windows', 'Windows Phone 8'],
})
@Injectable()
export class ActionSheet extends IonicNativePlugin {
@@ -111,7 +111,7 @@ export class ActionSheet extends IonicNativePlugin {
THEME_HOLO_DARK: 2,
THEME_HOLO_LIGHT: 3,
THEME_DEVICE_DEFAULT_DARK: 4,
THEME_DEVICE_DEFAULT_LIGHT: 5
THEME_DEVICE_DEFAULT_LIGHT: 5,
};
/**

View File

@@ -45,17 +45,24 @@ export class AdjustConfig {
private delayStart = 0.0;
private logLevel: AdjustLogLevel = null;
private defaultTracker: string = null;
private urlStrategy: AdjustUrlStrategy = null;
private externalDeviceId: string = null;
private sendInBackground: boolean = null;
private shouldLaunchDeeplink: boolean = null;
private eventBufferingEnabled: boolean = null;
private userAgent: string = null;
private isDeviceKnown: boolean = null;
private needsCost: boolean = null;
private secretId: number = null;
private info1: number = null;
private info2: number = null;
private info3: number = null;
private info4: number = null;
private processName: string = null; // Android only
private preinstallTrackingEnabled: boolean = null; // Android only
private allowiAdInfoReading: boolean = null; // iOS only
private allowIdfaReading: boolean = null; // iOS only
private allowAdServicesInfoReading: boolean = null; // iOS only
private attributionCallback: (attribution: AdjustAttribution) => void = null;
private eventTrackingSucceededCallback: (event: AdjustEventSuccess) => void = null;
@@ -89,6 +96,14 @@ export class AdjustConfig {
this.defaultTracker = defaultTracker;
}
setExternalDeviceId(externalDeviceId: string) {
this.externalDeviceId = externalDeviceId;
}
setUrlStrategy(urlStrategy: AdjustUrlStrategy) {
this.urlStrategy = urlStrategy;
}
setSendInBackground(sendInBackground: boolean) {
this.sendInBackground = sendInBackground;
}
@@ -109,23 +124,39 @@ export class AdjustConfig {
this.isDeviceKnown = isDeviceKnown;
}
setNeedsCost(needsCost: boolean) {
this.needsCost = needsCost;
}
setProcessName(processName: string) {
this.processName = processName;
}
setPreinstallTrackingEnabled(preinstallTrackingEnabled: boolean) {
this.preinstallTrackingEnabled = preinstallTrackingEnabled;
}
setAllowiAdInfoReading(allowiAdInfoReading: boolean) {
this.allowiAdInfoReading = allowiAdInfoReading;
}
setAllowIdfaReading(allowIdfaReading: boolean) {
this.allowIdfaReading = allowIdfaReading;
}
setAllowAdServicesInfoReading(allowAdServicesInfoReading: boolean) {
this.allowAdServicesInfoReading = allowAdServicesInfoReading;
}
setAttributionCallbackListener(attributionCallback: (attribution: AdjustAttribution) => void) {
this.attributionCallback = attributionCallback;
}
setEventTrackingSucceededCallbackListener(
eventTrackingSucceededCallback: (event: AdjustEventSuccess) => void
) {
setEventTrackingSucceededCallbackListener(eventTrackingSucceededCallback: (event: AdjustEventSuccess) => void) {
this.eventTrackingSucceededCallback = eventTrackingSucceededCallback;
}
setEventTrackingFailedCallbackListener(
eventTrackingFailedCallback: (event: AdjustEventFailure) => void
) {
setEventTrackingFailedCallbackListener(eventTrackingFailedCallback: (event: AdjustEventFailure) => void) {
this.eventTrackingFailedCallback = eventTrackingFailedCallback;
}
@@ -135,9 +166,7 @@ export class AdjustConfig {
this.sessionTrackingSucceededCallback = sessionTrackingSucceededCallback;
}
setSessionTrackingFailedCallbackListener(
sessionTrackingFailedCallback: (session: AdjustSessionFailure) => void
) {
setSessionTrackingFailedCallbackListener(sessionTrackingFailedCallback: (session: AdjustSessionFailure) => void) {
this.sessionTrackingFailedCallback = sessionTrackingFailedCallback;
}
@@ -194,6 +223,92 @@ export class AdjustConfig {
}
}
export class AdjustAppStoreSubscription {
private price: string;
private currency: string;
private transactionId: string;
private receipt: string;
private transactionDate: string;
private salesRegion: string;
private callbackParameters: string[] = [];
private partnerParameters: string[] = [];
constructor(price: string, currency: string, transactionId: string, receipt: string) {
this.price = price;
this.currency = currency;
this.transactionId = transactionId;
this.receipt = receipt;
}
setTransactionDate(transactionDate: string): void {
this.transactionDate = transactionDate;
}
setSalesRegion(salesRegion: string): void {
this.salesRegion = salesRegion;
}
addCallbackParameter(key: string, value: string): void {
this.callbackParameters.push(key);
this.callbackParameters.push(value);
}
addPartnerParameter(key: string, value: string): void {
this.partnerParameters.push(key);
this.partnerParameters.push(value);
}
}
export class AdjustPlayStoreSubscription {
private price: string;
private currency: string;
private sku: string;
private orderId: string;
private signature: string;
private purchaseToken: string;
private purchaseTime: string;
private callbackParameters: string[] = [];
private partnerParameters: string[] = [];
constructor(price: string, currency: string, sku: string, orderId: string, signature: string, purchaseToken: string) {
this.price = price;
this.currency = currency;
this.sku = sku;
this.orderId = orderId;
this.signature = signature;
this.purchaseToken = purchaseToken;
}
setPurchaseTime(purchaseTime: string): void {
this.purchaseTime = purchaseTime;
}
addCallbackParameter(key: string, value: string): void {
this.callbackParameters.push(key);
this.callbackParameters.push(value);
}
addPartnerParameter(key: string, value: string): void {
this.partnerParameters.push(key);
this.partnerParameters.push(value);
}
}
export class AdjustThirdPartySharing {
private isEnabled: boolean;
private granularOptions: string[] = [];
constructor(isEnabled: boolean) {
this.isEnabled = isEnabled;
}
addGranularOption(partnerName: string, key: string, value: string): void {
this.granularOptions.push(partnerName);
this.granularOptions.push(key);
this.granularOptions.push(value);
}
}
export interface AdjustAttribution {
trackerToken: string;
trackerName: string;
@@ -203,6 +318,9 @@ export interface AdjustAttribution {
creative: string;
clickLabel: string;
adid: string;
costType: string;
costAmount: string;
costCurrency: string;
}
export interface AdjustSessionSuccess {
@@ -241,7 +359,7 @@ export interface AdjustEventFailure {
export enum AdjustEnvironment {
Sandbox = 'sandbox',
Production = 'production'
Production = 'production',
}
export enum AdjustLogLevel {
@@ -251,7 +369,34 @@ export enum AdjustLogLevel {
Warn = 'WARN',
Error = 'ERROR',
Assert = 'ASSERT',
Suppress = 'SUPPRESS'
Suppress = 'SUPPRESS',
}
export enum AdjustUrlStrategy {
India = 'India',
China = 'China',
}
export enum AdjustAdRevenueSource {
AdRevenueSourceMopub = 'mopub',
AdRevenueSourceAdmob = 'admob',
AdRevenueSourceFbNativeAd = 'facebook_native_ad',
AdRevenueSourceFbAudienceNetwork = 'facebook_audience_network',
AdRevenueSourceIronsource = 'ironsource',
AdRevenueSourceFyber = 'fyber',
AdRevenueSourceAerserv = 'aerserv',
AdRevenueSourceAppodeal = 'appodeal',
AdRevenueSourceAdincube = 'adincube',
AdRevenueSourceFusePowered = 'fusepowered',
AdRevenueSourceAddapptr = 'addapptr',
AdRevenueSourceMillennialMediation = 'millennial_mediation',
AdRevenueSourceFlurry = 'flurry',
AdRevenueSourceAdmost = 'admost',
AdRevenueSourceDeltadna = 'deltadna',
AdRevenueSourceUpsight = 'upsight',
AdRevenueSourceUnityAds = 'unityads',
AdRevenueSourceAdtoapp = 'adtoapp',
AdRevenueSourceTapdaq = 'tapdaq',
}
/**
@@ -263,7 +408,7 @@ export enum AdjustLogLevel {
*
* @usage
* ```typescript
* import { Adjust, AdjustConfig, AdjustEnvironment } from '@ionic-native/adjust/ngx';
* import { Adjust, AdjustConfig, AdjustEnvironment } from '@ionic-native/adjust';
*
* constructor(private adjust: Adjust) { }
*
@@ -284,16 +429,21 @@ export enum AdjustLogLevel {
* @classes
* AdjustEvent
* AdjustConfig
* AdjustAppStoreSubscription
* AdjustPlayStoreSubscription
* AdjustThirdPartySharing
* @enums
* AdjustEnvironment
* AdjustLogLevel
* AdjustUrlStrategy
* AdjustAdRevenueSource
*/
@Plugin({
pluginName: 'Adjust',
plugin: 'com.adjust.sdk',
pluginRef: 'Adjust',
repo: 'https://github.com/adjust/cordova_sdk',
platforms: ['Android', 'iOS']
platforms: ['Android', 'iOS'],
})
@Injectable()
export class Adjust extends IonicNativePlugin {
@@ -311,6 +461,42 @@ export class Adjust extends IonicNativePlugin {
@Cordova({ sync: true })
trackEvent(event: AdjustEvent): void {}
/**
* This method tracks App Store subscription
* @param {AdjustAppStoreSubscription} subscription Adjust App Store subscription object to be tracked
*/
@Cordova({ sync: true })
trackAppStoreSubscription(subscription: AdjustAppStoreSubscription): void {}
/**
* This method tracks Play Store subscription
* @param {AdjustPlayStoreSubscription} subscription Adjust Play Store subscription object to be tracked
*/
@Cordova({ sync: true })
trackPlayStoreSubscription(subscription: AdjustPlayStoreSubscription): void {}
/**
* This method tracks third party sharing choice
* @param {AdjustThirdPartySharing} thirdPartySharing Adjust third party sharing object to be tracked
*/
@Cordova({ sync: true })
trackThirdPartySharing(thirdPartySharing: AdjustThirdPartySharing): void {}
/**
* This method tracks ad revenue data
* @param {AdjustAdRevenueSource} source Ad revenue source
* @param {string} payload Ad revenue JSON string payload
*/
@Cordova({ sync: true })
trackAdRevenue(source: AdjustAdRevenueSource, payload: string): void {}
/**
* This method tracks measurement consent choice
* @param {boolean} measurementConsent set measurement consent to true or false
*/
@Cordova({ sync: true })
trackMeasurementConsent(measurementConsent: boolean): void {}
/**
* This method sets offline mode on or off
* @param {boolean} enabled set to true for offline mode on
@@ -356,6 +542,13 @@ export class Adjust extends IonicNativePlugin {
@Cordova({ sync: true })
gdprForgetMe(): void {}
/**
* You can now notify Adjust when a user has exercised their right to stop sharing their data with partners for marketing purposes, but has allowed it to be shared for statistics purposes.
* Calling the following method will instruct the Adjust SDK to communicate the user's choice to disable data sharing to the Adjust backend
*/
@Cordova({ sync: true })
disableThirdPartySharing(): void {}
/**
* Function used to get Google AdId
* @return {Promise<string>} Returns a promise with google AdId value
@@ -458,4 +651,30 @@ export class Adjust extends IonicNativePlugin {
*/
@Cordova({ sync: true })
sendFirstPackages(): void {}
/**
* Request Adjust SDK to show pop up dialog for asking user's consent to be tracked.
* In order to do this, call this function
* @return {Promise<number>} Returns a promise with user's consent value
*/
@Cordova()
requestTrackingAuthorizationWithCompletionHandler(): Promise<number> {
return;
}
/**
* You can update SKAdNetwork conversion value with calling this method
* @param {number} conversionValue conversion value for the user
*/
@Cordova({ sync: true })
updateConversionValue(conversionValue: number): void {}
/**
* To obtain the app tracking authorization status in iOS, call this function
* @return {Promise<number>} Returns a promise with app tracking authorization status
*/
@Cordova()
getAppTrackingAuthorizationStatus(): Promise<number> {
return;
}
}

View File

@@ -15,6 +15,23 @@ export interface AdMobFreeBannerConfig {
* Auto show ad when loaded
*/
autoShow?: boolean;
/**
* Child-directed setting. Default is not calling `tagForChildDirectedTreatment`.
* Set to `true` for `tagForChildDirectedTreatment(true)`.
* Set to `false` for `tagForChildDirectedTreatment(false)`.
*/
forChild?: boolean | null;
/**
* Designed for Families setting. Android-only. Default is not calling setIsDesignedForFamilies.
* Set to `true` for `setIsDesignedForFamilies(true)`.
* Set to `false` for `setIsDesignedForFamilies(false)`.
*/
forFamily?: boolean | null;
/**
* Location targeting. It accept an array in the form of `[latitude, longitude]`.
* Android-only. Default is not calling `setLatitude` and `setLongitude`.
*/
location?: number[] | null;
/**
* Set to true, to put banner at top
*/
@@ -46,6 +63,23 @@ export interface AdMobFreeInterstitialConfig {
* Auto show ad when loaded
*/
autoShow?: boolean;
/**
* Child-directed setting. Default is not calling `tagForChildDirectedTreatment`.
* Set to `true` for `tagForChildDirectedTreatment(true)`.
* Set to `false` for `tagForChildDirectedTreatment(false)`.
*/
forChild?: boolean | null;
/**
* Designed for Families setting. Android-only. Default is not calling setIsDesignedForFamilies.
* Set to `true` for `setIsDesignedForFamilies(true)`.
* Set to `false` for `setIsDesignedForFamilies(false)`.
*/
forFamily?: boolean | null;
/**
* Location targeting. It accept an array in the form of `[latitude, longitude]`.
* Android-only. Default is not calling `setLatitude` and `setLongitude`.
*/
location?: number[] | null;
}
export interface AdMobFreeRewardVideoConfig {
@@ -61,6 +95,23 @@ export interface AdMobFreeRewardVideoConfig {
* Auto show ad when loaded
*/
autoShow?: boolean;
/**
* Child-directed setting. Default is not calling `tagForChildDirectedTreatment`.
* Set to `true` for `tagForChildDirectedTreatment(true)`.
* Set to `false` for `tagForChildDirectedTreatment(false)`.
*/
forChild?: boolean | null;
/**
* Designed for Families setting. Android-only. Default is not calling setIsDesignedForFamilies.
* Set to `true` for `setIsDesignedForFamilies(true)`.
* Set to `false` for `setIsDesignedForFamilies(false)`.
*/
forFamily?: boolean | null;
/**
* Location targeting. It accept an array in the form of `[latitude, longitude]`.
* Android-only. Default is not calling `setLatitude` and `setLongitude`.
*/
location?: number[] | null;
}
/**
@@ -112,7 +163,7 @@ export interface AdMobFreeRewardVideoConfig {
plugin: 'cordova-plugin-admob-free',
pluginRef: 'admob',
repo: 'https://github.com/ratson/cordova-plugin-admob-free',
platforms: ['Android', 'iOS']
platforms: ['Android', 'iOS'],
})
@Injectable()
export class AdMobFree extends IonicNativePlugin {
@@ -139,7 +190,7 @@ export class AdMobFree extends IonicNativePlugin {
REWARD_VIDEO_CLOSE: 'admob.rewardvideo.events.CLOSE',
REWARD_VIDEO_EXIT_APP: 'admob.rewardvideo.events.EXIT_APP',
REWARD_VIDEO_START: 'admob.rewardvideo.events.START',
REWARD_VIDEO_REWARD: 'admob.rewardvideo.events.REWARD'
REWARD_VIDEO_REWARD: 'admob.rewardvideo.events.REWARD',
};
/**
@@ -176,7 +227,7 @@ export class AdMobFree extends IonicNativePlugin {
@Plugin({
pluginName: 'AdMobFree',
plugin: 'cordova-plugin-admob-free',
pluginRef: 'admob.banner'
pluginRef: 'admob.banner',
})
export class AdMobFreeBanner extends IonicNativePlugin {
/**
@@ -232,7 +283,7 @@ export class AdMobFreeBanner extends IonicNativePlugin {
@Plugin({
pluginName: 'AdMobFree',
plugin: 'cordova-plugin-admob-free',
pluginRef: 'admob.interstitial'
pluginRef: 'admob.interstitial',
})
export class AdMobFreeInterstitial extends IonicNativePlugin {
/**
@@ -279,7 +330,7 @@ export class AdMobFreeInterstitial extends IonicNativePlugin {
@Plugin({
pluginName: 'AdMobFree',
plugin: 'cordova-plugin-admob-free',
pluginRef: 'admob.rewardvideo'
pluginRef: 'admob.rewardvideo',
})
export class AdMobFreeRewardVideo extends IonicNativePlugin {
/**

View File

@@ -2,10 +2,12 @@ import { Injectable } from '@angular/core';
import { Cordova, IonicNativePlugin, Plugin } from '@ionic-native/core';
import { Observable, fromEvent } from 'rxjs';
export type AdUnitIDOption = string | {
android: string;
ios: string;
};
export type AdUnitIDOption =
| string
| {
android: string;
ios: string;
};
/**
* @name AdMob Plus
@@ -13,82 +15,87 @@ export type AdUnitIDOption = string | {
* AdMob Plus is the successor of cordova-plugin-admob-free, which provides a cleaner API and build with modern tools.
*/
@Plugin({
plugin: 'cordova-admob-plus',
pluginName: 'AdMob',
pluginRef: 'admob.banner',
repo: 'https://github.com/admob-plus/admob-plus',
platforms: ['Android', 'iOS']
plugin: 'cordova-admob-plus',
pluginName: 'AdMob',
pluginRef: 'admob.banner',
repo: 'https://github.com/admob-plus/admob-plus',
platforms: ['Android', 'iOS'],
})
export class Banner {
@Cordova({ otherPromise: true })
hide(): Promise<any> {
return Promise.resolve();
}
@Cordova({ otherPromise: true })
hide(): Promise<any> {
return Promise.resolve();
}
@Cordova({ otherPromise: true })
show(opts: { id?: AdUnitIDOption }): Promise<any> {
return Promise.resolve();
}
@Cordova({ otherPromise: true })
show(opts: { id?: AdUnitIDOption }): Promise<any> {
return Promise.resolve();
}
}
@Plugin({
plugin: 'cordova-admob-plus',
pluginName: 'AdMob',
pluginRef: 'admob.interstitial',
plugin: 'cordova-admob-plus',
pluginName: 'AdMob',
pluginRef: 'admob.interstitial',
})
export class Interstitial {
@Cordova({ otherPromise: true })
load(opts: { id?: AdUnitIDOption }): Promise<any> {
return Promise.resolve();
}
@Cordova({ otherPromise: true })
load(opts: { id?: AdUnitIDOption }): Promise<any> {
return Promise.resolve();
}
@Cordova({ otherPromise: true })
show(): Promise<any> {
return Promise.resolve();
}
@Cordova({ otherPromise: true })
show(): Promise<any> {
return Promise.resolve();
}
}
@Plugin({
plugin: 'cordova-admob-plus',
pluginName: 'AdMob',
pluginRef: 'admob.rewardVideo',
plugin: 'cordova-admob-plus',
pluginName: 'AdMob',
pluginRef: 'admob.rewardVideo',
})
export class RewardVideo {
@Cordova({ otherPromise: true })
load(opts: { id?: AdUnitIDOption }): Promise<any> {
return Promise.resolve();
}
@Cordova({ otherPromise: true })
load(opts: { id?: AdUnitIDOption }): Promise<any> {
return Promise.resolve();
}
@Cordova({ otherPromise: true })
show(): Promise<any> {
return Promise.resolve();
}
@Cordova({ otherPromise: true })
show(): Promise<any> {
return Promise.resolve();
}
}
@Plugin({
platforms: ['Android', 'iOS'],
plugin: 'cordova-admob-plus',
pluginName: 'AdMob',
pluginRef: 'admob',
repo: 'https://github.com/admob-plus/admob-plus',
platforms: ['Android', 'iOS'],
plugin: 'cordova-admob-plus',
pluginName: 'AdMob',
pluginRef: 'admob',
repo: 'https://github.com/admob-plus/admob-plus',
})
@Injectable()
export class AdMob extends IonicNativePlugin {
banner = new Banner();
interstitial = new Interstitial();
rewardVideo = new RewardVideo();
banner = new Banner();
interstitial = new Interstitial();
rewardVideo = new RewardVideo();
@Cordova({ otherPromise: true })
setAppMuted(value: boolean): Promise<any> {
return Promise.resolve();
}
@Cordova({ otherPromise: true })
setAppMuted(value: boolean): Promise<any> {
return Promise.resolve();
}
@Cordova({ otherPromise: true })
setAppVolume(value: number): Promise<any> {
return Promise.resolve();
}
@Cordova({ otherPromise: true })
setAppVolume(value: number): Promise<any> {
return Promise.resolve();
}
on(event: string): Observable<any> {
return fromEvent(document, event);
}
@Cordova({ sync: true })
setDevMode(value: boolean): void {
return undefined;
}
on(event: string): Observable<any> {
return fromEvent(document, event);
}
}

View File

@@ -100,6 +100,7 @@ export interface AdExtras {
/**
* @paid
* @name AdMob Pro
* @capacitorincompatible true
* @description
* Plugin for Google Ads, including AdMob / DFP (DoubleClick for publisher) and mediations to other Ad networks.
*
@@ -138,7 +139,7 @@ export interface AdExtras {
plugin: 'cordova-plugin-admobpro',
pluginRef: 'AdMob',
repo: 'https://github.com/floatinghotpot/cordova-admob-pro',
platforms: ['Android', 'iOS', 'Windows Phone 8']
platforms: ['Android', 'iOS', 'Windows Phone 8'],
})
@Injectable()
export class AdMobPro extends IonicNativePlugin {
@@ -165,7 +166,7 @@ export class AdMobPro extends IonicNativePlugin {
BOTTOM_LEFT: 7,
BOTTOM_CENTER: 8,
BOTTOM_RIGHT: 9,
POS_XY: 10
POS_XY: 10,
};
/**
@@ -182,7 +183,7 @@ export class AdMobPro extends IonicNativePlugin {
* Destroy the banner, remove it from screen.
*/
@Cordova({
sync: true
sync: true,
})
removeBanner(): void {}
@@ -191,7 +192,7 @@ export class AdMobPro extends IonicNativePlugin {
* @param {number} position Position. Use `AdMobPro.AD_POSITION` to set values.
*/
@Cordova({
sync: true
sync: true,
})
showBanner(position: number): void {}
@@ -201,7 +202,7 @@ export class AdMobPro extends IonicNativePlugin {
* @param {number} y Offset from screen top.
*/
@Cordova({
sync: true
sync: true,
})
showBannerAtXY(x: number, y: number): void {}
@@ -209,7 +210,7 @@ export class AdMobPro extends IonicNativePlugin {
* Hide the banner, remove it from screen, but can show it later
*/
@Cordova({
sync: true
sync: true,
})
hideBanner(): void {}
@@ -227,7 +228,7 @@ export class AdMobPro extends IonicNativePlugin {
* Show interstitial ad when it's ready
*/
@Cordova({
sync: true
sync: true,
})
showInterstitial(): void {}
@@ -245,7 +246,7 @@ export class AdMobPro extends IonicNativePlugin {
* Show a reward video ad
*/
@Cordova({
sync: true
sync: true,
})
showRewardVideoAd(): void {}
@@ -275,7 +276,7 @@ export class AdMobPro extends IonicNativePlugin {
@Cordova({
eventObservable: true,
event: 'onAdFailLoad',
element: 'document'
element: 'document',
})
onAdFailLoad(): Observable<any> {
return;
@@ -288,7 +289,7 @@ export class AdMobPro extends IonicNativePlugin {
@Cordova({
eventObservable: true,
event: 'onAdLoaded',
element: 'document'
element: 'document',
})
onAdLoaded(): Observable<any> {
return;
@@ -301,7 +302,7 @@ export class AdMobPro extends IonicNativePlugin {
@Cordova({
eventObservable: true,
event: 'onAdPresent',
element: 'document'
element: 'document',
})
onAdPresent(): Observable<any> {
return;
@@ -314,7 +315,7 @@ export class AdMobPro extends IonicNativePlugin {
@Cordova({
eventObservable: true,
event: 'onAdLeaveApp',
element: 'document'
element: 'document',
})
onAdLeaveApp(): Observable<any> {
return;
@@ -327,7 +328,7 @@ export class AdMobPro extends IonicNativePlugin {
@Cordova({
eventObservable: true,
event: 'onAdDismiss',
element: 'document'
element: 'document',
})
onAdDismiss(): Observable<any> {
return;

View File

@@ -2,24 +2,45 @@ import { Injectable } from '@angular/core';
import { Cordova, CordovaProperty, IonicNativePlugin, Plugin } from '@ionic-native/core';
import { Observable } from 'rxjs';
export interface AdmobOptions {
export interface AdmobBaseOptions {
/**
* Your publisher id code from your AdMob account
*/
publisherId: string;
/**
* (Optional) Your interstitial id code from your AdMob account. Defaults to publisherId
* (Optional) Your interstitial id code from your AdMob account. Defaults to bannerAdId
*/
interstitialAdId?: string;
/**
* (Optional) Your rewarded id code from your AdMob account. Defaults to publisherId
* (Optional) Indicates whether to put banner ads at top when set to true or at bottom when set to false. Defaults to false
*/
rewardedAdId?: string;
bannerAtTop?: boolean;
/**
* (Optional) Your tappx id for iOS apps. If Admob is configured, it is also used to backfill your lost inventory when there are no Admob ads available
* (Optional) Set to true to receive test ads (do not test with real ads as your account may be banned). Defaults to false
*/
isTesting?: boolean;
/**
* (Optional) Auto show banner ads when available (onAdLoaded event is called). Defaults to true
*/
autoShowBanner?: boolean;
/**
* (Optional) Auto show interstitial ads when available (onAdLoaded event is called). Defaults to true
*/
autoShowInterstitial?: boolean;
}
export interface AdmobOptions extends AdmobBaseOptions {
/**
* Your banner id code from your AdMob account (https://support.google.com/admob/answer/7356431?hl=en)
*/
bannerAdId: string;
/**
* Deprecated. Now is only used in web. It will be used as a bannerAdId only in case it is undefined.
*/
publisherId?: string;
/**
* (Optional) Your tappx id for iOS apps. If Admob is configured, it is also used to backfill your lost inventory (when there are no Admob ads available)
*/
tappxIdiOS?: string;
@@ -28,16 +49,21 @@ export interface AdmobOptions {
*/
tappxIdAndroid?: string;
/**
* AdMob rewarded id (https://support.google.com/admob/answer/7356431?hl=en)
*/
rewardedAdId?: string;
/**
* (Optional) Auto show rewarded ads when available (onAdLoaded event is called). Defaults to true
*/
autoShowRewarded?: boolean;
/**
* (Optional) If any of tappxId is present, it tells the percentage of traffic diverted to tappx. Defaults to 0.5 (50% of the traffic will be requested to Tappx)
*/
tappxShare?: number;
/**
* (Optional) Indicates whether to put banner ads at top when set to true or at bottom when set to false. Defaults to false
*/
bannerAtTop?: boolean;
/**
* (Optional) Indicates the size of banner ads
*/
@@ -53,34 +79,58 @@ export interface AdmobOptions {
*/
offsetStatusBar?: boolean;
/**
* (Optional) Set to true to receive test ads (do not test with real ads as your account may be banned). Defaults to false
*/
isTesting?: boolean;
/**
* (Options) A JSON object with additional {key: value} pairs
*/
adExtras?: any;
}
export interface AdmobWebOptions extends AdmobBaseOptions {
/**
* (Required) AdSense Publisher ID (https://support.google.com/adsense/answer/105516)
*/
publisherId: string;
/**
* (Optional) Auto show banner ads when available (onAdLoaded event is called). Defaults to true
* (Required) Your ad slot code from your AdSense account. Only for browser platform https://support.google.com/adsense/answer/105516
*/
autoShowBanner?: boolean;
adSlot: string;
/**
* (Optional) Auto show interstitial asd when available (onAdLoaded event is called). Defaults to true
* (Optional) Indicates if show a close button on interstitial browser ads. Only for browser platform
*/
autoShowInterstitial?: boolean;
interstitialShowCloseButton?: boolean;
/**
* (Optional) Auto show rewarded ads when available (onAdLoaded event is called). Defaults to true
* (Optional) Indicates the number of seconds that the interstitial ad waits before show the close button. Only for browser platform
*/
autoShowRewarded?: boolean;
secondsToShowCloseButton?: number;
/**
* (Optional) Indicates the number of seconds that the interstitial ad waits before close the ad. Only for browser platform
*/
secondsToCloseInterstitial?: number;
}
export interface AdMobEvent {
/**
* (Optional) AdMob supported type as seen in AD_TYPE
*/
adType?: string;
/**
* (Optional) AdMob error code
*/
error?: number;
/**
* (Optional) AdMob error reason
*/
reason?: string;
}
/**
* @name Admob
* @name AdMob
* @description
* Most complete Admob plugin with support for [Tappx](http://www.tappx.com/?h=dec334d63287772de859bdb4e977fce6) ads.
* Monetize your apps and games with AdMob ads, using latest Google AdMob SDK. With this plugin you can show AdMob ads easily!
@@ -92,14 +142,15 @@ export interface AdmobOptions {
* - [Tappx](http://www.tappx.com/?h=dec334d63287772de859bdb4e977fce6) ads
*
* @usage
* **Note:** No ads will be served on apps with package name `io.ionic.starter`. This is the default package name for new `ionic` apps. Make sure to rename the package name so ads can be displayed.
* ```typescript
* import { Admob, AdmobOptions } from '@ionic-native/admob/ngx';
* import { Admob, AdmobOptions } from '@ionic-native/admob';
*
*
* constructor(private admob: Admob) {
* // Admob options config
* const admobOptions: AdmobOptions = {
* publisherId: 'XXX-XXXX-XXXX',
* bannerAdId: 'XXX-XXXX-XXXX',
* interstitialAdId: 'XXX-XXXX-XXXX',
* rewardedAdId: 'XXX-XXXX-XXXX',
* isTesting: true,
@@ -233,11 +284,11 @@ export interface AdmobOptions {
* ```
*/
@Plugin({
pluginName: 'Admob',
pluginName: 'AdMob',
plugin: 'cordova-admob',
pluginRef: 'admob',
repo: 'https://github.com/appfeel/admob-google-cordova',
platforms: ['Android', 'iOS']
platforms: ['Android', 'iOS', 'Browser'],
})
@Injectable()
export class Admob extends IonicNativePlugin {
@@ -273,7 +324,7 @@ export class Admob extends IonicNativePlugin {
* @return {Promise<any>} Returns a promise that resolves when the options are set
*/
@Cordova()
setOptions(options: AdmobOptions): Promise<any> {
setOptions(options: AdmobOptions | AdmobWebOptions): Promise<any> {
return;
}
@@ -283,7 +334,7 @@ export class Admob extends IonicNativePlugin {
* @return {Promise<any>} Returns a promise that resolves when the banner view is created
*/
@Cordova()
createBannerView(options?: AdmobOptions): Promise<any> {
createBannerView(options?: AdmobOptions | AdmobWebOptions): Promise<any> {
return;
}
@@ -313,7 +364,7 @@ export class Admob extends IonicNativePlugin {
* @return {Promise<any>} Returns a promise that resolves when the interstitial ad is loaded
*/
@Cordova()
requestInterstitialAd(options?: AdmobOptions): Promise<any> {
requestInterstitialAd(options?: AdmobOptions | AdmobWebOptions): Promise<any> {
return;
}
@@ -335,7 +386,7 @@ export class Admob extends IonicNativePlugin {
* @return {Promise<any>} Returns a promise that resolves when the rewarded ad is loaded
*/
@Cordova()
requestRewardedAd(options?: AdmobOptions): Promise<any> {
requestRewardedAd(options?: AdmobOptions | AdmobWebOptions): Promise<any> {
return;
}
@@ -349,108 +400,173 @@ export class Admob extends IonicNativePlugin {
}
/**
* Called when an ad is received
* @returns {Observable<any>} Returns an observable when an ad is received
* Called when an ad is received.
*
* *WARNING*: only **ionic^4**. Older versions of ionic, use:
*
* ```js
* document.addEventListener(window.admob.events.onAdLoaded, () => { });
* ```
*
* Please refer to the documentation on https://admob-ionic.com/Events.
* @returns {Observable<AdMobEvent>} Returns an observable when an ad is received
*/
@Cordova({
eventObservable: true,
event: 'appfeel.cordova.admob.onAdLoaded',
element: document
element: document,
})
onAdLoaded(): Observable<any> {
onAdLoaded(): Observable<AdMobEvent> {
return;
}
/**
* Called when an ad request failed
* @returns {Observable<any>} Returns an observable when an ad request is failed
* Called when an ad request failed.
*
* *WARNING*: only **ionic^4**. Older versions of ionic, use:
*
* ```js
* document.addEventListener(window.admob.events.onAdFailedToLoad, () => { });
* ```
*
* Please refer to the documentation on https://admob-ionic.com/Events.
* @returns {Observable<AdMobEvent>} Returns an observable when an ad request is failed
*/
@Cordova({
eventObservable: true,
event: 'appfeel.cordova.admob.onAdFailedToLoad',
element: document
element: document,
})
onAdFailedToLoad(): Observable<any> {
onAdFailedToLoad(): Observable<AdMobEvent> {
return;
}
/**
* Called when an ad opens an overlay that covers the screen.
* Please note that onPause cordova event is raised when an interstitial is shown
* @returns {Observable<any>} Returns an observable when an ad is opened
* Please note that onPause cordova event is raised when an interstitial is shown.
*
* *WARNING*: only **ionic^4**. Older versions of ionic, use:
*
* ```js
* document.addEventListener(window.admob.events.onAdOpened, () => { });
* ```
*
* Please refer to the documentation on https://admob-ionic.com/Events.
* @returns {Observable<AdMobEvent>} Returns an observable when an ad is opened
*/
@Cordova({
eventObservable: true,
event: 'appfeel.cordova.admob.onAdOpened',
element: document
element: document,
})
onAdOpened(): Observable<any> {
onAdOpened(): Observable<AdMobEvent> {
return;
}
/**
* Called when the user is about to return to the application after clicking on an ad.
* Please note that onResume cordova event is raised when an interstitial is closed
* @returns {Observable<any>} Returns an observable when an ad is closed
* Please note that onResume cordova event is raised when an interstitial is closed.
*
* *WARNING*: only **ionic^4**. Older versions of ionic, use:
*
* ```js
* document.addEventListener(window.admob.events.onAdClosed, () => { });
* ```
*
* Please refer to the documentation on https://admob-ionic.com/Events.
* @returns {Observable<AdMobEvent>} Returns an observable when an ad is closed
*/
@Cordova({
eventObservable: true,
event: 'appfeel.cordova.admob.onAdClosed',
element: document
element: document,
})
onAdClosed(): Observable<any> {
onAdClosed(): Observable<AdMobEvent> {
return;
}
/**
* Called when the user leaves the application after clicking an ad (e.g., to go to the browser)
* @returns {Observable<any>} Returns an observable when an ad leaves the application
* @returns {Observable<AdMobEvent>} Returns an observable when an ad leaves the application.
*
* *WARNING*: only **ionic^4**. Older versions of ionic, use:
*
* ```js
* document.addEventListener(window.admob.events.onAdLeftApplication, () => { });
* ```
*
* Please refer to the documentation on https://admob-ionic.com/Events.
* @returns {Observable<AdMobEvent>} Returns an observable when application is left due to an ad click
*/
@Cordova({
eventObservable: true,
event: 'appfeel.cordova.admob.onAdLeftApplication',
element: document
element: document,
})
onAdLeftApplication(): Observable<any> {
onAdLeftApplication(): Observable<AdMobEvent> {
return;
}
/**
* Called when the user has been rewarded by an ad
* @returns {Observable<any>} Returns an observable when the user rewards an ad
* Called when the user has been rewarded by an ad.
*
* *WARNING*: only **ionic^4**. Older versions of ionic, use:
*
* ```js
* document.addEventListener(window.admob.events.onRewardedAd, () => { });
* ```
*
* Please refer to the documentation on https://admob-ionic.com/Events.
* @returns {Observable<AdMobEvent>} Returns an observable when the user rewards an ad
*/
@Cordova({
eventObservable: true,
event: 'appfeel.cordova.admob.onRewardedAd',
element: document
element: document,
})
onRewardedAd(): Observable<any> {
onRewardedAd(): Observable<AdMobEvent> {
return;
}
/**
* Called when the video of a rewarded ad started
* @returns {Observable<any>} Returns an observable when the video is started
* Called when the video of a rewarded ad started.
*
* *WARNING*: only **ionic^4**. Older versions of ionic, use:
*
* ```js
* document.addEventListener(window.admob.events.onRewardedAdVideoStarted, () => { });
* ```
*
* Please refer to the documentation on https://admob-ionic.com/Events.
* @returns {Observable<AdMobEvent>} Returns an observable when the video is started
*/
@Cordova({
eventObservable: true,
event: 'appfeel.cordova.admob.onRewardedAdVideoStarted',
element: document
element: document,
})
onRewardedAdVideoStarted(): Observable<any> {
onRewardedAdVideoStarted(): Observable<AdMobEvent> {
return;
}
/**
* Called when the video of a rewarded ad has completed
* @returns {Observable<any>} Returns an observable when the video is completed
* Called when the video of a rewarded ad has completed.
*
* *WARNING*: only **ionic^4**. Older versions of ionic, use:
*
* ```js
* document.addEventListener(window.admob.events.onRewardedAdVideoCompleted, () => { });
* ```
*
* Please refer to the documentation on https://admob-ionic.com/Events.
* @returns {Observable<AdMobEvent>} Returns an observable when the video is completed
*/
@Cordova({
eventObservable: true,
event: 'appfeel.cordova.admob.onRewardedAdVideoCompleted',
element: document
element: document,
})
onRewardedAdVideoCompleted(): Observable<any> {
onRewardedAdVideoCompleted(): Observable<AdMobEvent> {
return;
}
}

View File

@@ -52,7 +52,7 @@ import { Cordova, IonicNativePlugin, Plugin } from '@ionic-native/core';
pluginRef: 'cordova.plugins.AES256',
repo: 'https://github.com/Ideas2IT/cordova-aes256',
platforms: ['Android', 'iOS'],
install: 'ionic cordova plugin add cordova-plugin-aes256-encryption'
install: 'ionic cordova plugin add cordova-plugin-aes256-encryption',
})
@Injectable()
export class AES256 extends IonicNativePlugin {
@@ -101,5 +101,4 @@ export class AES256 extends IonicNativePlugin {
generateSecureIV(password: string): Promise<string> {
return;
}
}

View File

@@ -15,7 +15,7 @@ import { Cordova, IonicNativePlugin, Plugin } from '@ionic-native/core';
* constructor(private alipay: Alipay) {
*
* //alipayOrder is a string that has been generated and signed by the server side.
* this.alipay.pay(alipayOrder)
* this.alipay.pay(alipayOrder, success, error)
* .then(result => {
* console.log(result); // Success
* })
@@ -30,11 +30,11 @@ import { Cordova, IonicNativePlugin, Plugin } from '@ionic-native/core';
@Plugin({
pluginName: 'Alipay',
plugin: 'cordova-plugin-gubnoi-alipay',
pluginRef: 'Alipay',
pluginRef: 'cordova.plugins.alipay',
repo: 'https://github.com/jing-zhou/cordova-plugin-alipay',
install: 'ionic cordova plugin add cordova-plugin-gubnoi-alipay --variable APP_ID=your_app_id',
installVariables: ['APP_ID'],
platforms: ['Android', 'iOS']
platforms: ['Android', 'iOS'],
})
@Injectable()
export class Alipay extends IonicNativePlugin {
@@ -44,7 +44,7 @@ export class Alipay extends IonicNativePlugin {
* @returns {Promise<any>} Returns a Promise that resolves with the success return, or rejects with an error.
*/
@Cordova()
pay(order: string): Promise<any> {
pay(order: string, success?: (res?: any) => void, error?: (err?: any) => void): Promise<any> {
return;
}
}

View File

@@ -0,0 +1,84 @@
import { Injectable } from '@angular/core';
import {
Plugin,
Cordova,
CordovaProperty,
CordovaInstance,
InstanceProperty,
IonicNativePlugin,
} from '@ionic-native/core';
import { Observable } from 'rxjs';
/**
* @name AllInOneSDK
* @description
* Paytm All-in-One SDK plugin for Cordova/Ionic Applications
* Paytm All-in-One SDK provides a swift, secure and seamless payment experience to your users by invoking the Paytm app (if installed on your users smartphone) to complete payment for your order.
* Paytm All-in-One SDK enables payment acceptance via Paytm wallet, Paytm Payments Bank, saved Debit/Credit cards, Net Banking, BHIM UPI and EMI as available in your customers Paytm account. If Paytm app is not installed on a customer's device, the transaction will be processed via web view within the All-in-One SDK.
* For more information about Paytm All-in-One SDK, please visit https://developer.paytm.com/docs/all-in-one-sdk/hybrid-apps/cordova/
*
* @usage
* ```typescript
* import { AllInOneSDK } from '@ionic-native/all-in-one-sdk/ngx';
*
*
* constructor(private allInOneSDK: AllInOneSDK) { }
*
* ...
*
* For below parameters see [documentation](https://developer.paytm.com/docs/all-in-one-sdk/hybrid-apps/cordova/)
* let paymentIntent = { mid : merchantID, orderId: orderId, txnToken: transactionToken, amount: amount, isStaging: isStaging, callbackUrl:callBackURL, restrictAppInvoke:restrictAppInvoke }
*
* this.allInOneSDK.startTransaction(paymentIntent)
* .then((res: any) => console.log(res))
* .catch((error: any) => console.error(error));
*
* ```
*
* For iOS:
* After adding the plugin, open the iOS project, you can find the same at <projectName>/platforms/ios.
* In case merchant dont have callback URL, Add an entry into Info.plist LSApplicationQueriesSchemes(Array) Item 0 (String)-> paytm
* Add a URL Scheme “paytm”+”MID”
*
*/
@Plugin({
pluginName: 'AllInOneSDK',
plugin: 'cordova-paytm-allinonesdk',
pluginRef: 'AllInOneSDK',
repo: 'https://github.com/paytm/paytm-allinonesdk-ionic-cordova.git',
platforms: ['Android', 'iOS'],
})
export class AllInOneSDK extends IonicNativePlugin {
/**
* This function checks if Paytm Application is available on the device.
* If Paytm exists then it invokes Paytm Application with the parameters sent and creates an order.
* If the Paytm Application is not available the transaction is continued on a webView within All-in-One SDK.
* @param options {PaymentIntentModel} These parameters are required and will be used to create an order.
* @return {Promise<PaytmResponse>} Returns a promise that resolves when a transaction completes(both failed and successful).
*/
@Cordova()
startTransaction(options: PaymentIntentModel): Promise<PaytmResponse> {
return;
}
}
/**
* The response that will be recieved when any transaction is completed
*/
export interface PaytmResponse {
message: string;
response: string; // A stringified response of a hashmap returned from All-in-One SDK
}
/**
* For below parameters see [documentation](https://developer.paytm.com/docs/all-in-one-sdk/hybrid-apps/cordova/)
*/
export interface PaymentIntentModel {
mid: string; // Merchant ID
orderId: string; // Order ID
txnToken: string; // Transaction Token
amount: string; // Amount
isStaging: boolean; // Environment
callbackUrl: string; // Callback URL
restrictAppInvoke: boolean; // To enable or disable the paytm app invocation
}

View File

@@ -58,7 +58,7 @@ import { Cordova, CordovaProperty, IonicNativePlugin, Plugin } from '@ionic-nati
plugin: 'cordova-plugin-analytics',
pluginRef: 'analytics',
repo: 'https://github.com/appfeel/analytics-google',
platforms: ['Android', 'iOS']
platforms: ['Android', 'iOS'],
})
@Injectable()
export class AnalyticsFirebase extends IonicNativePlugin {

View File

@@ -178,7 +178,7 @@ export interface AndroidExoPlayerControllerConfig {
plugin: 'cordova-plugin-exoplayer',
pluginRef: 'ExoPlayer',
repo: 'https://github.com/frontyard/cordova-plugin-exoplayer',
platforms: ['Android']
platforms: ['Android'],
})
@Injectable()
export class AndroidExoplayer extends IonicNativePlugin {
@@ -192,7 +192,7 @@ export class AndroidExoplayer extends IonicNativePlugin {
clearFunction: 'close',
clearWithArgs: false,
successIndex: 1,
errorIndex: 2
errorIndex: 2,
})
show(parameters: AndroidExoPlayerParams): Observable<AndroidExoplayerState> {
return;
@@ -205,10 +205,7 @@ export class AndroidExoplayer extends IonicNativePlugin {
* @return {Promise<void>}
*/
@Cordova()
setStream(
url: string,
controller: AndroidExoPlayerControllerConfig
): Promise<void> {
setStream(url: string, controller: AndroidExoPlayerControllerConfig): Promise<void> {
return;
}

View File

@@ -155,7 +155,7 @@ export interface AFADeleteOptions {
plugin: 'cordova-plugin-android-fingerprint-auth',
pluginRef: 'FingerprintAuth',
repo: 'https://github.com/mjwheatley/cordova-plugin-android-fingerprint-auth',
platforms: ['Android']
platforms: ['Android'],
})
@Injectable()
export class AndroidFingerprintAuth extends IonicNativePlugin {
@@ -199,7 +199,7 @@ export class AndroidFingerprintAuth extends IonicNativePlugin {
MISSING_ACTION_PARAMETERS: 'MISSING_ACTION_PARAMETERS',
MISSING_PARAMETERS: 'MISSING_PARAMETERS',
NO_SUCH_ALGORITHM_EXCEPTION: 'NO_SUCH_ALGORITHM_EXCEPTION',
SECURITY_EXCEPTION: 'SECURITY_EXCEPTION'
SECURITY_EXCEPTION: 'SECURITY_EXCEPTION',
};
/**

View File

@@ -25,7 +25,7 @@ export enum AndroidSystemUiFlags {
/** View would like to remain interactive when hiding the status bar with SYSTEM_UI_FLAG_FULLSCREEN and/or hiding the navigation bar with SYSTEM_UI_FLAG_HIDE_NAVIGATION. SYSTEM_UI_FLAG_IMMERSIVE_STICKY */
ImmersiveSticky = 4096,
/** Requests the status bar to draw in a mode that is compatible with light status bar backgrounds. SYSTEM_UI_FLAG_LIGHT_STATUS_BAR */
LightStatusBar = 8192
LightStatusBar = 8192,
}
/**
@@ -53,7 +53,7 @@ export enum AndroidSystemUiFlags {
plugin: 'cordova-plugin-fullscreen',
pluginRef: 'AndroidFullScreen',
repo: 'https://github.com/mesmotronic/cordova-plugin-fullscreen',
platforms: ['Android']
platforms: ['Android'],
})
@Injectable()
export class AndroidFullScreen extends IonicNativePlugin {
@@ -71,7 +71,7 @@ export class AndroidFullScreen extends IonicNativePlugin {
* @return {Promise<void>}
*/
@Cordova()
isImmersiveModeSupported(): Promise<void> {
isImmersiveModeSupported(): Promise<boolean> {
return;
}

View File

@@ -0,0 +1,99 @@
import { Injectable } from '@angular/core';
import { Plugin, Cordova, IonicNativePlugin } from '@ionic-native/core';
/**
* @name Android Notch
* @description
* This plugin enables developers to get the cutout and android devices inset sizes
* It is based on the cordova plugin developed by @tobspr: https://github.com/tobspr/cordova-plugin-android-notch
* This plugin works on all android versions, but we can only detect notches starting from Android 9.
*
* @usage
* ```typescript
* import { AndroidNotch } from '@ionic-native/android-notch/ngx';
*
*
* constructor(private androidNotch: AndroidNotch) { }
*
* ...
*
*
* this.androidNotch.hasCutout()
* .then((px: number) => console.log('Inset size: '), px)
* .catch((error: any) => console.log('Error: ', error))
*
* this.androidNotch.getInsetTop()
* .then((px: number) => console.log('Inset size: '), px)
* .catch((error: any) => console.log('Error: ', error))
*
* this.androidNotch.getInsetRight()
* .then((px: number) => console.log('Inset size: '), px)
* .catch((error: any) => console.log('Error: ', error))
*
* this.androidNotch.getInsetBottom()
* .then((px: number) => console.log('Inset size: '), px)
* .catch((error: any) => console.log('Error: ', error))
*
* this.androidNotch.getInsetLeft()
* .then((px: number) => console.log('Inset size: '), px)
* .catch((error: any) => console.log('Error: ', error))
*
* ```
*/
@Plugin({
pluginName: 'AndroidNotch',
plugin: 'cordova-plugin-android-notch',
pluginRef: 'AndroidNotch',
repo: 'https://github.com/tobspr/cordova-plugin-android-notch.git',
platforms: ['Android'],
})
@Injectable()
export class AndroidNotch extends IonicNativePlugin {
/**
* Returns true if the android device has cutout
*
* @return {Promise<boolean>}
*/
@Cordova()
hasCutout(): Promise<boolean> {
return;
}
/**
* Returns the heigth of the top inset
*
* @return {Promise<number>}
*/
@Cordova()
getInsetTop(): Promise<number> {
return;
}
/**
* Returns the heigth of the right inset
*
* @return {Promise<number>}
*/
@Cordova()
getInsetRight(): Promise<number> {
return;
}
/**
* Returns the heigth of the bottom inset
* @return {Promise<number>}
*/
@Cordova()
getInsetBottom(): Promise<number> {
return;
}
/**
* Returns the heigth of the left inset
* @return {Promise<number>}
*/
@Cordova()
getInsetLeft(): Promise<number> {
return;
}
}

View File

@@ -3,6 +3,7 @@ import { Cordova, IonicNativePlugin, Plugin } from '@ionic-native/core';
/**
* @name Android Permissions
* @premier android-permissions
* @description
* This plugin is designed to support Android new permissions checking mechanism.
*
@@ -33,7 +34,7 @@ import { Cordova, IonicNativePlugin, Plugin } from '@ionic-native/core';
plugin: 'cordova-plugin-android-permissions',
pluginRef: 'cordova.plugins.permissions',
repo: 'https://github.com/NeoLSN/cordova-plugin-android-permissions',
platforms: ['Android']
platforms: ['Android'],
})
@Injectable()
export class AndroidPermissions extends IonicNativePlugin {
@@ -41,8 +42,7 @@ export class AndroidPermissions extends IonicNativePlugin {
ACCESS_CHECKIN_PROPERTIES: 'android.permission.ACCESS_CHECKIN_PROPERTIES',
ACCESS_COARSE_LOCATION: 'android.permission.ACCESS_COARSE_LOCATION',
ACCESS_FINE_LOCATION: 'android.permission.ACCESS_FINE_LOCATION',
ACCESS_LOCATION_EXTRA_COMMANDS:
'android.permission.ACCESS_LOCATION_EXTRA_COMMANDS',
ACCESS_LOCATION_EXTRA_COMMANDS: 'android.permission.ACCESS_LOCATION_EXTRA_COMMANDS',
ACCESS_MOCK_LOCATION: 'android.permission.ACCESS_MOCK_LOCATION',
ACCESS_NETWORK_STATE: 'android.permission.ACCESS_NETWORK_STATE',
ACCESS_SURFACE_FLINGER: 'android.permission.ACCESS_SURFACE_FLINGER',
@@ -53,14 +53,12 @@ export class AndroidPermissions extends IonicNativePlugin {
BATTERY_STATS: 'android.permission.BATTERY_STATS',
BIND_ACCESSIBILITY_SERVICE: 'android.permission.BIND_ACCESSIBILITY_SERVICE',
BIND_APPWIDGET: 'android.permission.BIND_APPWIDGET',
BIND_CARRIER_MESSAGING_SERVICE:
'android.permission.BIND_CARRIER_MESSAGING_SERVICE',
BIND_CARRIER_MESSAGING_SERVICE: 'android.permission.BIND_CARRIER_MESSAGING_SERVICE',
BIND_DEVICE_ADMIN: 'android.permission.BIND_DEVICE_ADMIN',
BIND_DREAM_SERVICE: 'android.permission.BIND_DREAM_SERVICE',
BIND_INPUT_METHOD: 'android.permission.BIND_INPUT_METHOD',
BIND_NFC_SERVICE: 'android.permission.BIND_NFC_SERVICE',
BIND_NOTIFICATION_LISTENER_SERVICE:
'android.permission.BIND_NOTIFICATION_LISTENER_SERVICE',
BIND_NOTIFICATION_LISTENER_SERVICE: 'android.permission.BIND_NOTIFICATION_LISTENER_SERVICE',
BIND_PRINT_SERVICE: 'android.permission.BIND_PRINT_SERVICE',
BIND_REMOTEVIEWS: 'android.permission.BIND_REMOTEVIEWS',
BIND_TEXT_SERVICE: 'android.permission.BIND_TEXT_SERVICE',
@@ -81,15 +79,12 @@ export class AndroidPermissions extends IonicNativePlugin {
CALL_PRIVILEGED: 'android.permission.CALL_PRIVILEGED',
CAMERA: 'android.permission.CAMERA',
CAPTURE_AUDIO_OUTPUT: 'android.permission.CAPTURE_AUDIO_OUTPUT',
CAPTURE_SECURE_VIDEO_OUTPUT:
'android.permission.CAPTURE_SECURE_VIDEO_OUTPUT',
CAPTURE_SECURE_VIDEO_OUTPUT: 'android.permission.CAPTURE_SECURE_VIDEO_OUTPUT',
CAPTURE_VIDEO_OUTPUT: 'android.permission.CAPTURE_VIDEO_OUTPUT',
CHANGE_COMPONENT_ENABLED_STATE:
'android.permission.CHANGE_COMPONENT_ENABLED_STATE',
CHANGE_COMPONENT_ENABLED_STATE: 'android.permission.CHANGE_COMPONENT_ENABLED_STATE',
CHANGE_CONFIGURATION: 'android.permission.CHANGE_CONFIGURATION',
CHANGE_NETWORK_STATE: 'android.permission.CHANGE_NETWORK_STATE',
CHANGE_WIFI_MULTICAST_STATE:
'android.permission.CHANGE_WIFI_MULTICAST_STATE',
CHANGE_WIFI_MULTICAST_STATE: 'android.permission.CHANGE_WIFI_MULTICAST_STATE',
CHANGE_WIFI_STATE: 'android.permission.CHANGE_WIFI_STATE',
CLEAR_APP_CACHE: 'android.permission.CLEAR_APP_CACHE',
CLEAR_APP_USER_DATA: 'android.permission.CLEAR_APP_USER_DATA',
@@ -135,8 +130,7 @@ export class AndroidPermissions extends IonicNativePlugin {
READ_CONTACTS: 'android.permission.READ_CONTACTS',
READ_EXTERNAL_STORAGE: 'android.permission.READ_EXTERNAL_STORAGE',
READ_FRAME_BUFFER: 'android.permission.READ_FRAME_BUFFER',
READ_HISTORY_BOOKMARKS:
'com.android.browser.permission.READ_HISTORY_BOOKMARKS',
READ_HISTORY_BOOKMARKS: 'com.android.browser.permission.READ_HISTORY_BOOKMARKS',
READ_INPUT_STATE: 'android.permission.READ_INPUT_STATE',
READ_LOGS: 'android.permission.READ_LOGS',
READ_PHONE_STATE: 'android.permission.READ_PHONE_STATE',
@@ -170,8 +164,7 @@ export class AndroidPermissions extends IonicNativePlugin {
SET_TIME_ZONE: 'android.permission.SET_TIME_ZONE',
SET_WALLPAPER: 'android.permission.SET_WALLPAPER',
SET_WALLPAPER_HINTS: 'android.permission.SET_WALLPAPER_HINTS',
SIGNAL_PERSISTENT_PROCESSES:
'android.permission.SIGNAL_PERSISTENT_PROCESSES',
SIGNAL_PERSISTENT_PROCESSES: 'android.permission.SIGNAL_PERSISTENT_PROCESSES',
STATUS_BAR: 'android.permission.STATUS_BAR',
SUBSCRIBED_FEEDS_READ: 'android.permission.SUBSCRIBED_FEEDS_READ',
SUBSCRIBED_FEEDS_WRITE: 'android.permission.SUBSCRIBED_FEEDS_WRITE',
@@ -189,8 +182,7 @@ export class AndroidPermissions extends IonicNativePlugin {
WRITE_CONTACTS: 'android.permission.WRITE_CONTACTS',
WRITE_EXTERNAL_STORAGE: 'android.permission.WRITE_EXTERNAL_STORAGE',
WRITE_GSERVICES: 'android.permission.WRITE_GSERVICES',
WRITE_HISTORY_BOOKMARKS:
'com.android.browser.permission.WRITE_HISTORY_BOOKMARKS',
WRITE_HISTORY_BOOKMARKS: 'com.android.browser.permission.WRITE_HISTORY_BOOKMARKS',
WRITE_PROFILE: 'android.permission.WRITE_PROFILE',
WRITE_SECURE_SETTINGS: 'android.permission.WRITE_SECURE_SETTINGS',
WRITE_SETTINGS: 'android.permission.WRITE_SETTINGS',
@@ -198,26 +190,26 @@ export class AndroidPermissions extends IonicNativePlugin {
WRITE_SOCIAL_STREAM: 'android.permission.WRITE_SOCIAL_STREAM',
WRITE_SYNC_SETTINGS: 'android.permission.WRITE_SYNC_SETTINGS',
WRITE_USER_DICTIONARY: 'android.permission.WRITE_USER_DICTIONARY',
WRITE_VOICEMAIL: 'com.android.voicemail.permission.WRITE_VOICEMAIL'
WRITE_VOICEMAIL: 'com.android.voicemail.permission.WRITE_VOICEMAIL',
};
/**
* Check permission
* @param {string} permission The name of the permission
* @return {Promise<any>} Returns a promise
* @return {Promise<AndroidPermissionResponse>} Returns a promise
*/
@Cordova()
checkPermission(permission: string): Promise<any> {
checkPermission(permission: string): Promise<AndroidPermissionResponse> {
return;
}
/**
* Request permission
* @param {string} permission The name of the permission to request
* @return {Promise<any>}
* @return {Promise<AndroidPermissionResponse>}
*/
@Cordova()
requestPermission(permission: string): Promise<any> {
requestPermission(permission: string): Promise<AndroidPermissionResponse> {
return;
}
@@ -234,10 +226,14 @@ export class AndroidPermissions extends IonicNativePlugin {
/**
* This function still works now, will not support in the future.
* @param {string} permission The name of the permission
* @return {Promise<any>} Returns a promise
* @return {Promise<AndroidPermissionResponse>} Returns a promise
*/
@Cordova()
hasPermission(permission: string): Promise<any> {
hasPermission(permission: string): Promise<AndroidPermissionResponse> {
return;
}
}
export interface AndroidPermissionResponse {
hasPermission: boolean;
}

View File

@@ -0,0 +1,51 @@
import { Injectable } from '@angular/core';
import { Cordova, IonicNativePlugin, Plugin } from '@ionic-native/core';
export interface AnylineOptions {
// Valid License Key
licenseKey: string;
// Scanning options
config: any;
}
/**
* @name Anyline
* @description
* Anyline provides an easy-to-use SDK for applications to enable Optical Character Recognition (OCR) on mobile devices.
*
* @usage
* ```typescript
* import { Anyline } from '@ionic-native/anyline/ngx';
*
*
* constructor(private anyline: Anyline) { }
*
* ...
*
*
* this.anyline.scan(options)
* .then((res: any) => console.log(res))
* .catch((error: any) => console.error(error));
*
* ```
*/
@Plugin({
pluginName: 'Anyline',
plugin: 'io-anyline-cordova',
pluginRef: 'Anyline',
repo: 'https://github.com/Anyline/anyline-ocr-cordova-module',
platforms: ['Android', 'iOS'],
})
@Injectable()
export class Anyline extends IonicNativePlugin {
/**
* Scan
* @param options {AnylineOptions} Scanning options
* @return {Promise<any>} Returns a promise that resolves when Code is captured
*/
@Cordova()
scan(options: AnylineOptions): Promise<any> {
return;
}
}

View File

@@ -37,11 +37,10 @@ import { Cordova, IonicNativePlugin, Plugin } from '@ionic-native/core';
plugin: 'cordova-plugin-appavailability',
pluginRef: 'appAvailability',
repo: 'https://github.com/ohh2ahh/AppAvailability',
platforms: ['Android', 'iOS']
platforms: ['Android', 'iOS'],
})
@Injectable()
export class AppAvailability extends IonicNativePlugin {
/**
* Checks if an app is available on device
* @param {string} app Package name on android, or URI scheme on iOS
@@ -51,5 +50,4 @@ export class AppAvailability extends IonicNativePlugin {
check(app: string): Promise<boolean> {
return;
}
}

View File

@@ -38,9 +38,8 @@ export interface StringMap {
pluginName: 'AppCenterAnalytics',
plugin: 'cordova-plugin-appcenter-analytics',
pluginRef: 'AppCenter.Analytics',
repo:
'https://github.com/Microsoft/appcenter-sdk-cordova/tree/master/cordova-plugin-appcenter-analytics',
platforms: ['Android', 'iOS']
repo: 'https://github.com/Microsoft/appcenter-sdk-cordova/tree/master/cordova-plugin-appcenter-analytics',
platforms: ['Android', 'iOS'],
})
@Injectable()
export class AppCenterAnalytics extends IonicNativePlugin {

View File

@@ -62,9 +62,8 @@ export interface AppCenterCrashReportDevice {
pluginName: 'AppCenterCrashes',
plugin: 'cordova-plugin-appcenter-crashes',
pluginRef: 'AppCenter.Crashes',
repo:
'https://github.com/Microsoft/appcenter-sdk-cordova/tree/master/cordova-plugin-appcenter-crashes',
platforms: ['Android', 'iOS']
repo: 'https://github.com/Microsoft/appcenter-sdk-cordova/tree/master/cordova-plugin-appcenter-crashes',
platforms: ['Android', 'iOS'],
})
@Injectable()
export class AppCenterCrashes extends IonicNativePlugin {

View File

@@ -0,0 +1,41 @@
import { Injectable } from '@angular/core';
import { Cordova, IonicNativePlugin, Plugin } from '@ionic-native/core';
/**
* @name App Center Low Memory
* @description
* Generates a low memory warning.
* For more info, please see: https://github.com/Microsoft/appcenter-sdk-cordova/tree/master/cordova-plugin-appcenter-generate-low-memory
*
* @usage
* ```typescript
* import { LowMemory } from '@ionic-native/app-center-low-memory/ngx';
*
* ...
*
* constructor(private lowMemory: LowMemory) { }
*
* async warning() {
* await this.lowMemory.generateLowMemory();
* }
* ```
*/
@Plugin({
pluginName: 'LowMemory',
plugin: 'https://github.com/Microsoft/appcenter-sdk-cordova/tree/master/cordova-plugin-appcenter-generate-low-memory',
pluginRef: 'LowMemory',
repo: 'https://github.com/Microsoft/appcenter-sdk-cordova/tree/master/cordova-plugin-appcenter-generate-low-memory',
platforms: ['Android', 'iOS'],
})
@Injectable()
export class LowMemory extends IonicNativePlugin {
/**
* Generates a low memory warning.
* For more info, please see: https://github.com/Microsoft/appcenter-sdk-cordova/tree/master/cordova-plugin-appcenter-generate-low-memory
* @returns {Promise<void>}
*/
@Cordova()
generateLowMemory(): Promise<void> {
return;
}
}

View File

@@ -29,9 +29,8 @@ import { Observable } from 'rxjs';
pluginName: 'AppCenterPush',
plugin: 'cordova-plugin-appcenter-push',
pluginRef: 'AppCenter.Push',
repo:
'https://github.com/Microsoft/appcenter-sdk-cordova/tree/master/cordova-plugin-appcenter-push',
platforms: ['Android', 'iOS']
repo: 'https://github.com/Microsoft/appcenter-sdk-cordova/tree/master/cordova-plugin-appcenter-push',
platforms: ['Android', 'iOS'],
})
@Injectable()
export class AppCenterPush extends IonicNativePlugin {
@@ -42,7 +41,7 @@ export class AppCenterPush extends IonicNativePlugin {
*/
@Cordova({
observable: true,
clearFunction: 'removeEventListener'
clearFunction: 'removeEventListener',
})
addEventListener(eventName: string): Observable<any> {
return;

View File

@@ -0,0 +1,62 @@
import { Injectable } from '@angular/core';
import { Cordova, IonicNativePlugin, Plugin } from '@ionic-native/core';
/**
* @name App Center Shared
* @capacitorincompatible true
* @description
* Exposes additional shared APIs for App Center.
*
* For more info, please see https://docs.microsoft.com/en-us/appcenter/sdk/other-apis/cordova
*
* @usage
* ```typescript
* import { AppCenter } from '@ionic-native/app-center-shared/ngx';
*
* ...
*
* constructor(private appCenterShared: AppCenter) { }
*
* async getInstallId() {
* const id = await this.appCenter.getInstallId();
* }
*
* async setUserId() {
* try{
* await this.appCenter.setUserId('i-am-john');
* } catch (e){
* console.log(e);
* }
* }
* ```
*/
@Plugin({
pluginName: 'AppCenter',
plugin: 'cordova-plugin-appcenter-shared',
pluginRef: 'AppCenter',
repo: 'https://github.com/Microsoft/appcenter-sdk-cordova/tree/master/cordova-plugin-appcenter-shared',
platforms: ['Android', 'iOS'],
})
@Injectable()
export class AppCenter extends IonicNativePlugin {
/**
* Returns AppCenter UUID.
* For more info, please see: https://docs.microsoft.com/en-us/appcenter/sdk/other-apis/cordova#identify-installations
* @returns {Promise<string>} Install ID
*/
@Cordova()
getInstallId(): Promise<string> {
return;
}
/**
* Set a user ID that's used to augment crash reports.
* For more info, please see: https://docs.microsoft.com/en-us/appcenter/sdk/other-apis/cordova#identify-users
* @param {string} userId Ex. "your-user-id"
* @returns {Promise<void>}
*/
@Cordova()
setUserId(userId: string): Promise<void> {
return;
}
}

View File

@@ -0,0 +1,66 @@
import { Injectable } from '@angular/core';
import { Cordova, IonicNativePlugin, Plugin } from '@ionic-native/core';
export interface AppLauncherOptions {
uri?: string;
packageName?: string;
}
/**
* @name App Launcher
* @description
* Simple Cordova plugin to see if other apps are installed and launch them.
*
* @usage
* ```typescript
* import { AppLauncher, AppLauncherOptions } from '@ionic-native/app-launcher/ngx';
* import { Platform } from '@ionic/angular';
*
* constructor(private appLauncher: AppLauncher, private platform: Platform) { }
*
* ...
*
* const options: AppLauncherOptions = {
* }
*
* if(this.platform.is('ios')) {
* options.uri = 'fb://'
* } else {
* options.packageName = 'com.facebook.katana'
* }
*
* this.appLauncher.canLaunch(options)
* .then((canLaunch: boolean) => console.log('Facebook is available'))
* .catch((error: any) => console.error('Facebook is not available'));
*
* ```
*/
@Plugin({
pluginName: 'AppLauncher',
plugin: 'cordova-plugin-app-launcher',
pluginRef: 'window.plugins.launcher',
repo: 'https://github.com/nchutchind/cordova-plugin-app-launcher',
platforms: ['Android', 'iOS'],
})
@Injectable()
export class AppLauncher extends IonicNativePlugin {
/**
* Check if any apps are installed that can launch via a specified URI or Package Name.
* @param options App Launcher options
* @return {Promise<any>} Returns a promise that resolves if the app is installed
*/
@Cordova()
canLaunch(options: AppLauncherOptions): Promise<boolean> {
return;
}
/**
* Launches the app via a specified URI or Package Name
* @param options App Launcher options
* @return {Promise<any>} Returns a promise that resolves the launched app
*/
@Cordova()
launch(options: AppLauncherOptions): Promise<any> {
return;
}
}

View File

@@ -27,11 +27,10 @@ import { Injectable } from '@angular/core';
plugin: 'cordova-plugin-appminimize',
pluginRef: 'plugins.appMinimize',
repo: 'https://github.com/tomloprod/cordova-plugin-appminimize',
platforms: ['Android']
platforms: ['Android'],
})
@Injectable()
export class AppMinimize extends IonicNativePlugin {
/**
* Minimizes the application
* @return {Promise<any>}
@@ -40,5 +39,4 @@ export class AppMinimize extends IonicNativePlugin {
minimize(): Promise<any> {
return;
}
}

View File

@@ -25,15 +25,7 @@ import { Injectable } from '@angular/core';
plugin: 'cordova-plugin-app-preferences',
pluginRef: 'plugins.appPreferences',
repo: 'https://github.com/apla/me.apla.cordova.app-preferences',
platforms: [
'Android',
'BlackBerry 10',
'Browser',
'iOS',
'macOS',
'Windows 8',
'Windows Phone'
]
platforms: ['Android', 'BlackBerry 10', 'Browser', 'iOS', 'macOS', 'Windows 8', 'Windows Phone'],
})
@Injectable()
export class AppPreferences extends IonicNativePlugin {
@@ -45,7 +37,7 @@ export class AppPreferences extends IonicNativePlugin {
* @return {Promise<any>} Returns a promise
*/
@Cordova({
callbackOrder: 'reverse'
callbackOrder: 'reverse',
})
fetch(dict: string, key?: string): Promise<any> {
return;
@@ -60,7 +52,7 @@ export class AppPreferences extends IonicNativePlugin {
* @return {Promise<any>} Returns a promise
*/
@Cordova({
callbackOrder: 'reverse'
callbackOrder: 'reverse',
})
store(dict: string, key: string, value?: any): Promise<any> {
return;
@@ -74,7 +66,7 @@ export class AppPreferences extends IonicNativePlugin {
* @return {Promise<any>} Returns a promise
*/
@Cordova({
callbackOrder: 'reverse'
callbackOrder: 'reverse',
})
remove(dict: string, key?: string): Promise<any> {
return;
@@ -86,7 +78,7 @@ export class AppPreferences extends IonicNativePlugin {
* @return {Promise<any>} Returns a promise
*/
@Cordova({
callbackOrder: 'reverse'
callbackOrder: 'reverse',
})
clearAll(): Promise<any> {
return;
@@ -98,7 +90,7 @@ export class AppPreferences extends IonicNativePlugin {
* @return {Promise<any>} Returns a promise
*/
@Cordova({
callbackOrder: 'reverse'
callbackOrder: 'reverse',
})
show(): Promise<any> {
return;
@@ -111,7 +103,7 @@ export class AppPreferences extends IonicNativePlugin {
* @return {Observable<any>} Returns an observable
*/
@Cordova({
observable: true
observable: true,
})
watch(subscribe: boolean): Observable<any> {
return;
@@ -126,7 +118,7 @@ export class AppPreferences extends IonicNativePlugin {
*/
@Cordova({
platforms: ['Android'],
sync: true
sync: true,
})
suite(suiteName: string): any {
return;
@@ -134,7 +126,7 @@ export class AppPreferences extends IonicNativePlugin {
@Cordova({
platforms: ['iOS'],
sync: true
sync: true,
})
iosSuite(suiteName: string): any {
return;
@@ -146,7 +138,7 @@ export class AppPreferences extends IonicNativePlugin {
* @returns {Object} Custom object, bound to that suite
*/
@Cordova({
platforms: ['iOS', 'Windows', 'Windows Phone 8']
platforms: ['iOS', 'Windows', 'Windows Phone 8'],
})
cloudSync(): Object {
return;
@@ -158,7 +150,7 @@ export class AppPreferences extends IonicNativePlugin {
* @returns {Object} Custom Object, bound to that suite
*/
@Cordova({
platforms: ['iOS', 'Windows', 'Windows Phone 8']
platforms: ['iOS', 'Windows', 'Windows Phone 8'],
})
defaults(): Object {
return;

View File

@@ -1,6 +1,50 @@
import { Injectable } from '@angular/core';
import { Cordova, CordovaProperty, IonicNativePlugin, Plugin } from '@ionic-native/core';
export enum AppRateReviewTypeIos {
/**
* Write review directly in your application (iOS 10.3+), limited to 3 prompts per year.
* Will fallback to 'AppStoreReview' for other iOS versions
*/
InAppReview = 'InAppReview',
/**
* Open the store within the app. Use this option as an alternative to inAppReview to avoid the rate action from doing nothing
*/
AppStoreReview = 'AppStoreReview',
/**
* Open the store using the openUrl preference (defaults to InAppBrowser). Be advised that WKWebView might not open the app store links
*/
InAppBrowser = 'InAppBrowser',
}
export enum AppRateReviewTypeAndroid {
/**
* Write review directly in your application. Will fallback to InAppBrowser if not available
*/
InAppReview = 'InAppReview',
/**
* Open the store using the openUrl preference (defaults to InAppBrowser)
*/
InAppBrowser = 'InAppBrowser',
}
export enum AppRatePromptType {
/**
* Prompt asking to rate the app.
*/
AppRatingPrompt = 'AppRatingPrompt',
/**
* Prompt asking to rate the app within the store.
*/
StoreRatingPrompt = 'StoreRatingPrompt',
/**
* Prompt asking to give feedback.
*/
FeedbackPrompt = 'FeedbackPrompt',
}
export interface AppRatePreferences {
/**
* Custom BCP 47 language tag
@@ -22,20 +66,28 @@ export interface AppRatePreferences {
*/
usesUntilPrompt?: number;
reviewType?: {
/**
* the type of review display to show the user on iOS
* Default: AppStoreReview
*/
ios?: AppRateReviewTypeIos;
/**
* the type of review display to show the user on Android
* Default: InAppBrowser
*/
android?: AppRateReviewTypeAndroid;
};
/**
* Simple Mode to display the rate dialog directly and bypass negative feedback filtering flow
*/
simpleMode?: boolean;
/**
* leave app or no when application page opened in app store (now supported only for iOS). Defaults to `false`
* Disabling would skip displaying a rate dialog if in app review is set and available. Defaults to `true`
*/
inAppReview?: boolean;
/**
* use custom view for rate dialog. Defaults to `false`
*/
useCustomRateDialog?: boolean;
showPromptForInAppReview?: boolean;
/**
* Custom locale object
@@ -51,6 +103,11 @@ export interface AppRatePreferences {
* App Store URLS
*/
storeAppURL?: AppUrls;
/**
* Open URL function
*/
openUrl?: (url: string) => void;
}
export interface AppRateCustomLocale {
@@ -80,22 +137,38 @@ export interface AppRateCustomLocale {
/** Feedback prompt title */
feedbackPromptTitle?: string;
/** Feedback prompt message */
appRatePromptMessage?: string;
/** Feedback prompt message */
feedbackPromptMessage?: string;
}
export interface AppRateLocales {
addLocale(localeObject: AppRateCustomLocale): AppRateCustomLocale;
getLocale(language: string, applicationTitle?: string, customLocale?: AppRateCustomLocale): AppRateCustomLocale;
getLocalesNames(): { [prop: string]: AppRateCustomLocale };
}
export interface AppRateCallbacks {
/**
* call back function. called when user clicked on rate-dialog buttons
*/
onButtonClicked?: Function;
onButtonClicked?: (buttonIndex: number, buttonLabel: string, promptType: AppRatePromptType) => void;
/**
* call back function. called when rate-dialog showing
*/
onRateDialogShow?: Function;
onRateDialogShow?: (rateCallback: (buttonIndex: number) => void) => void;
/**
* call back function. called when user clicked on negative feedback
*/
handleNegativeFeedback?: Function;
handleNegativeFeedback?: () => void;
done?: () => void;
}
export interface AppUrls {
@@ -127,6 +200,7 @@ export interface AppUrls {
/**
* @name App Rate
* @premier app-rate
* @description
* The AppRate plugin makes it easy to prompt the user to rate your app, either now, later, or never.
*
@@ -173,7 +247,7 @@ export interface AppUrls {
plugin: 'cordova-plugin-apprate',
pluginRef: 'AppRate',
repo: 'https://github.com/pushandplay/cordova-plugin-apprate',
platforms: ['Android', 'BlackBerry 10', 'iOS', 'Windows']
platforms: ['Android', 'BlackBerry 10', 'iOS', 'Windows'],
})
@Injectable()
export class AppRate extends IonicNativePlugin {
@@ -184,12 +258,38 @@ export class AppRate extends IonicNativePlugin {
@CordovaProperty()
preferences: AppRatePreferences;
/**
* Manager custom locales
*/
@CordovaProperty()
locales: AppRateLocales;
/**
* Set preferences
* @return void
*/
@Cordova()
setPreferences(pref: AppRatePreferences): void {
return;
}
/**
* Get preferences
* @return AppRatePreferences
*/
@Cordova()
getPreferences(): AppRatePreferences {
return;
}
/**
* Prompts the user for rating
* @param {boolean} immediately Show the rating prompt immediately.
*/
@Cordova()
promptForRating(immediately: boolean): void {}
promptForRating(immediately?: boolean): void {
return;
}
/**
* Immediately send the user to the app store rating page

View File

@@ -2,9 +2,11 @@ import { Injectable } from '@angular/core';
import { Cordova, IonicNativePlugin, Plugin } from '@ionic-native/core';
export interface AppUpdateOptions {
authType: string;
authType?: string;
username?: string;
password?: string;
skipPromptDialog?: boolean;
skipProgressDialog?: boolean;
}
/**
@@ -45,7 +47,7 @@ export interface AppUpdateOptions {
plugin: 'cordova-plugin-app-update',
pluginRef: 'AppUpdate',
repo: 'https://github.com/vaenow/cordova-plugin-app-update',
platforms: ['Android']
platforms: ['Android'],
})
@Injectable()
export class AppUpdate extends IonicNativePlugin {
@@ -56,7 +58,7 @@ export class AppUpdate extends IonicNativePlugin {
* @return {Promise<any>} Returns a promise that resolves when something happens
*/
@Cordova({
callbackOrder: 'reverse'
callbackOrder: 'reverse',
})
checkAppUpdate(updateUrl: string, options?: AppUpdateOptions): Promise<any> {
return;

View File

@@ -1,9 +1,9 @@
import { Injectable } from '@angular/core';
import { Cordova, IonicNativePlugin, Plugin } from '@ionic-native/core';
/**
* @name App Version
* @premier app-version
* @description
* Reads the version of your app from the target build settings.
*
@@ -30,24 +30,27 @@ import { Cordova, IonicNativePlugin, Plugin } from '@ionic-native/core';
plugin: 'cordova-plugin-app-version',
pluginRef: 'cordova.getAppVersion',
repo: 'https://github.com/whiteoctober/cordova-plugin-app-version',
platforms: ['Android', 'iOS', 'Windows']
platforms: ['Android', 'iOS', 'Windows'],
})
@Injectable()
export class AppVersion extends IonicNativePlugin {
/**
* Returns the name of the app, e.g.: "My Awesome App"
* @returns {Promise<string>}
*/
@Cordova()
getAppName(): Promise<string> { return; }
getAppName(): Promise<string> {
return;
}
/**
* Returns the package name of the app, e.g.: "com.example.myawesomeapp"
* @returns {Promise<string>}
*/
@Cordova()
getPackageName(): Promise<string> { return; }
getPackageName(): Promise<string> {
return;
}
/**
* Returns the build identifier of the app.
@@ -56,13 +59,16 @@ export class AppVersion extends IonicNativePlugin {
* @returns {Promise<string | number>}
*/
@Cordova()
getVersionCode(): Promise<string | number> { return; }
getVersionCode(): Promise<string | number> {
return;
}
/**
* Returns the version of the app, e.g.: "1.2.3"
* @returns {Promise<string>}
*/
@Cordova()
getVersionNumber(): Promise<string> { return; }
getVersionNumber(): Promise<string> {
return;
}
}

View File

@@ -7,13 +7,7 @@ export type IMakePayments =
| 'This device cannot make payments.'
| 'This device can make payments but has no supported cards';
export type IShippingType = 'shipping' | 'delivery' | 'store' | 'service';
export type IBillingRequirement =
| 'none'
| 'all'
| 'postcode'
| 'name'
| 'email'
| 'phone';
export type IBillingRequirement = 'none' | 'all' | 'postcode' | 'name' | 'email' | 'phone';
export type ITransactionStatus =
| 'success'
| 'failure'
@@ -24,9 +18,9 @@ export type ITransactionStatus =
| 'incorrect-pin'
| 'locked-pin';
export type ICompleteTransaction = 'Payment status applied.';
export type IUpdateItemsAndShippingStatus =
| 'Updated List Info'
| 'Did you make a payment request?';
export type IUpdateItemsAndShippingStatus = 'Updated List Info' | 'Did you make a payment request?';
export type IMerchantCapabilities = '3ds' | 'credit' | 'debit' | 'emv';
export type ISupportedNetworks = 'visa' | 'amex' | 'discover' | 'masterCard';
export interface IPaymentResponse {
billingNameFirst?: string;
@@ -84,6 +78,8 @@ export interface IOrder extends IOrderItemsAndShippingMethods {
billingAddressRequirement?: IBillingRequirement | IBillingRequirement[];
shippingAddressRequirement?: IBillingRequirement | IBillingRequirement[];
shippingType?: IShippingType;
merchantCapabilities?: IMerchantCapabilities | IMerchantCapabilities[];
supportedNetworks?: ISupportedNetworks | ISupportedNetworks[];
}
export interface ISelectedShippingContact {
@@ -151,7 +147,7 @@ export interface ISelectedShippingContact {
plugin: 'cordova-plugin-applepay',
pluginRef: 'ApplePay',
repo: 'https://github.com/samkelleher/cordova-plugin-applepay',
platforms: ['iOS']
platforms: ['iOS'],
})
@Injectable()
export class ApplePay extends IonicNativePlugin {
@@ -171,7 +167,7 @@ export class ApplePay extends IonicNativePlugin {
* }
*/
@Cordova({
otherPromise: true
otherPromise: true,
})
canMakePayments(): Promise<IMakePayments> {
return;
@@ -187,11 +183,9 @@ export class ApplePay extends IonicNativePlugin {
*/
@Cordova({
observable: true,
clearFunction: 'stopListeningForShippingContactSelection'
clearFunction: 'stopListeningForShippingContactSelection',
})
startListeningForShippingContactSelection(): Observable<
ISelectedShippingContact
> {
startListeningForShippingContactSelection(): Observable<ISelectedShippingContact> {
return;
}
@@ -201,7 +195,7 @@ export class ApplePay extends IonicNativePlugin {
* really only fail if this is called without starting listening
*/
@Cordova({
otherPromise: true
otherPromise: true,
})
stopListeningForShippingContactSelection(): Promise<boolean> {
return;
@@ -243,11 +237,9 @@ export class ApplePay extends IonicNativePlugin {
* });
*/
@Cordova({
otherPromise: true
otherPromise: true,
})
updateItemsAndShippingMethods(
list: IOrderItemsAndShippingMethods
): Promise<IUpdateItemsAndShippingStatus> {
updateItemsAndShippingMethods(list: IOrderItemsAndShippingMethods): Promise<IUpdateItemsAndShippingStatus> {
return;
}
@@ -322,7 +314,7 @@ export class ApplePay extends IonicNativePlugin {
* }
*/
@Cordova({
otherPromise: true
otherPromise: true,
})
makePaymentRequest(order: IOrder): Promise<IPaymentResponse> {
return;
@@ -338,11 +330,9 @@ export class ApplePay extends IonicNativePlugin {
*
*/
@Cordova({
otherPromise: true
otherPromise: true,
})
completeLastTransaction(
complete: ITransactionStatus
): Promise<ICompleteTransaction> {
completeLastTransaction(complete: ITransactionStatus): Promise<ICompleteTransaction> {
return;
}
}

View File

@@ -7,11 +7,28 @@ export interface EncryptedCardData {
wrappedKey: string;
}
export interface SignatureCertificatesData {
certificateSubCA: string;
certificateLeaf: string;
nonce: string;
nonceSignature: string;
}
export interface CardData {
cardholderName: string;
primaryAccountNumberSuffix: string;
localizedDescription?: string;
paymentNetwork: string;
paymentNetwork?: string;
}
export interface PairedDevicesFlags {
isInWallet: boolean;
isInWatch: boolean;
FPANID: string;
}
export interface WatchExistData {
isWatchPaired: boolean;
}
/**
@@ -26,91 +43,182 @@ export interface CardData {
*
* constructor(private appleWallet: AppleWallet) { }
*
*
* ...
*
*
* this.appleWallet.available()
* .then((res) => {
* // res is a boolean value, either true or false
* console.log("Is Apple Wallet available? ", res);
* // Simple call to determine if the current device supports Apple Pay and has a supported card installed.
* this.appleWallet.isAvailable()
* .then((res: boolean) => {
* // Expect res to be boolean
* })
* .catch((message) => {
* console.error("ERROR AVAILBLE>> ", message);
* .catch((err) => {
* // Catch {{err}} here
* });
*
* ...
*
* let data: cardData = {
* cardholderName: 'Test User',
* primaryAccountNumberSuffix: '1234',
* localizedDescription: 'Description of payment card',
* paymentNetwork: 'VISA'
* }
*
* // Simple call to check Card Eligibility
* this.appleWallet.checkCardEligibility(primaryAccountIdentifier: string)
* .then((res: boolean) => {
* // Expect res to be boolean
* })
* .catch((err) => {
* // Catch {{err}} here
* });
*
*
* ...
*
*
* // Simple call to checkCardEligibilityBySuffix
* this.appleWallet.checkCardEligibilityBySuffix(cardSuffix: string)
* .then((res: boolean) => {
* // Expect res to be boolean
* })
* .catch((err) => {
* // Catch {{err}} here
* });
*
*
* ...
*
* // Simple call to check out if there is any paired Watches so that you can toggle visibility of 'Add to Watch' button
* this.appleWallet.checkPairedDevices()
* .then((res: WatchExistData) => {
* // object contains boolean flags showing paired devices
* })
* .catch((err) => {
* // Catch {{err}} here
* });
*
*
* ...
*
*
*
* // Simple call to check paired devices with a card by its suffix
* this.appleWallet.checkPairedDevicesBySuffix(cardSuffix: string)
* .then((res: PairedDevicesFlags) => {
* // object contains boolean values that ensure that card is already exists in wallet or paired-watch
* })
* .catch((err) => {
* // Catch {{err}} here
* });
*
*
* ...
*
*
* // Simple call with the configuration data needed to instantiate a new PKAddPaymentPassViewController object.
* // This method provides the data needed to create a request to add your payment pass (credit/debit card). After a successful callback, pass the certificate chain to your issuer server-side using our callback delegate method `AppleWallet.completeAddPaymentPass`. The issuer server-side should returns an encrypted JSON payload containing the encrypted card data, which is required to be get the final response
*
* this.appleWallet.startAddPaymentPass(data: cardData)
* .then((res) => {
* console.log("startAddPaymentPass success response ", res);
* .then((res: SignatureCertificatesData) => {
* // User proceed and successfully asked to add card to his wallet
* // Use the callback response JSON payload to complete addition process
* })
* .catch((err) => {
* console.error("startAddPaymentPass ERROR response", err);
* // Catch {{err}} here
* });
*
*
* ...
*
* let data: encryptedCardData = {
* activationData: 'encoded Base64 activationData from your server',
* encryptedPassData: 'encoded Base64 encryptedPassData from your server',
* wrappedKey: 'encoded Base64 wrappedKey from your server',
* }
*
* this.appleWallet.encryptedCardData(data: encryptedCardData)
* .then((res) => {
* console.log("completeAddCardToAppleWallet success response ", res);
* this.appleWallet.completeAddPaymentPass(data: encryptedCardData)
* .then((res: string) => {
* // Expect res to be string either 'success' or 'error'
* })
* .catch((err) => {
* console.error("completeAddCardToAppleWallet ERROR response", err);
* // Catch {{err}} here
* // Error and can not add the card, or something wrong happend
* // PKAddPaymentPassViewController will be dismissed
* });
*
* ```
* @Interfaces
* EncryptedCardData
* SignatureCertificatesData
* CardData
* PairedDevicesFlags
* WatchExistData
*/
@Plugin({
pluginName: 'AppleWallet',
plugin: 'cordova-apple-wallet',
pluginRef: 'AppleWallet',
repo: 'https://github.com/tomavic/cordova-apple-wallet',
platforms: ['iOS']
platforms: ['iOS'],
})
@Injectable()
export class AppleWallet extends IonicNativePlugin {
/**
* Detects if the current device supports Apple Wallet
* @return {Promise<boolean>} Returns a promise
* Simple call to determine if the current device supports Apple Pay and has a supported card installed.
* @return {Promise<boolean>}
*/
@Cordova()
available(): Promise<boolean> {
isAvailable(): Promise<boolean> {
return;
}
/**
* Simple call to check Card Eligibility
* @param {string} primaryAccountIdentifier
* @return {Promise<boolean>}
*/
@Cordova()
checkCardEligibility(primaryAccountIdentifier: string): Promise<boolean> {
return;
}
/**
* Simple call to checkCardEligibilityBySuffix
* @param {string} cardSuffix
* @return {Promise<PairedDevicesFlags>}
*/
@Cordova()
checkCardEligibilityBySuffix(cardSuffix: string): Promise<boolean> {
return;
}
/**
* Simple call to check out if there is any paired Watches so that you can toggle visibility of 'Add to Watch' button
* @return {Promise<WatchExistData>}
*/
@Cordova()
checkPairedDevices(): Promise<WatchExistData> {
return;
}
/**
* Simple call to check paired devices with a card by its suffix
* @param {string} cardSuffix
* @return {Promise<PairedDevicesFlags>}
*/
@Cordova()
checkPairedDevicesBySuffix(cardSuffix: string): Promise<PairedDevicesFlags> {
return;
}
/**
* Simple call with the configuration data needed to instantiate a new PKAddPaymentPassViewController object.
* @param {cardData} data
* @return {Promise<any>} Returns a promise
* @return {Promise<SignatureCertificatesData>}
*/
@Cordova()
startAddPaymentPass(data: CardData): Promise<any> {
startAddPaymentPass(data: CardData): Promise<SignatureCertificatesData> {
return;
}
/**
* Simple call contains the card data needed to add a card to Apple Pay.
* Simple completion handler that takes encrypted card data returned from your server side, in order to get the final response from Apple to know if the card is added succesfully or not.
* @param {encryptedCardData} data
* @return {Promise<any>} Returns a promise
* @return {Promise<string>}
*/
@Cordova()
completeAddPaymentPass(data: EncryptedCardData): Promise<any> {
completeAddPaymentPass(data: EncryptedCardData): Promise<string> {
return;
}
}

View File

@@ -25,7 +25,7 @@ import { Observable } from 'rxjs';
plugin: 'https://github.com/appodeal/appodeal-cordova-plugin.git',
pluginRef: 'Appodeal',
repo: 'https://github.com/appodeal/appodeal-cordova-plugin',
platforms: ['iOS', 'Android']
platforms: ['iOS', 'Android'],
})
@Injectable()
export class Appodeal extends IonicNativePlugin {
@@ -37,7 +37,7 @@ export class Appodeal extends IonicNativePlugin {
BANNER_BOTTOM: 8,
BANNER_TOP: 16,
REWARDED_VIDEO: 128,
NON_SKIPPABLE_VIDEO: 256
NON_SKIPPABLE_VIDEO: 256,
};
/**
@@ -361,7 +361,7 @@ export class Appodeal extends IonicNativePlugin {
@Cordova({
eventObservable: true,
event: 'onInterstitialLoaded',
element: 'document'
element: 'document',
})
onInterstitialLoaded(): Observable<any> {
return;
@@ -370,7 +370,7 @@ export class Appodeal extends IonicNativePlugin {
@Cordova({
eventObservable: true,
event: 'onInterstitialFailedToLoad',
element: 'document'
element: 'document',
})
onInterstitialFailedToLoad(): Observable<any> {
return;
@@ -379,7 +379,7 @@ export class Appodeal extends IonicNativePlugin {
@Cordova({
eventObservable: true,
event: 'onInterstitialShown',
element: 'document'
element: 'document',
})
onInterstitialShown(): Observable<any> {
return;
@@ -388,7 +388,7 @@ export class Appodeal extends IonicNativePlugin {
@Cordova({
eventObservable: true,
event: 'onInterstitialClicked',
element: 'document'
element: 'document',
})
onInterstitialClicked(): Observable<any> {
return;
@@ -397,7 +397,7 @@ export class Appodeal extends IonicNativePlugin {
@Cordova({
eventObservable: true,
event: 'onInterstitialClosed',
element: 'document'
element: 'document',
})
onInterstitialClosed(): Observable<any> {
return;
@@ -406,7 +406,7 @@ export class Appodeal extends IonicNativePlugin {
@Cordova({
eventObservable: true,
event: 'onSkippableVideoLoaded',
element: 'document'
element: 'document',
})
onSkippableVideoLoaded(): Observable<any> {
return;
@@ -415,7 +415,7 @@ export class Appodeal extends IonicNativePlugin {
@Cordova({
eventObservable: true,
event: 'onSkippableVideoFailedToLoad',
element: 'document'
element: 'document',
})
onSkippableVideoFailedToLoad(): Observable<any> {
return;
@@ -424,7 +424,7 @@ export class Appodeal extends IonicNativePlugin {
@Cordova({
eventObservable: true,
event: 'onSkippableVideoShown',
element: 'document'
element: 'document',
})
onSkippableVideoShown(): Observable<any> {
return;
@@ -433,7 +433,7 @@ export class Appodeal extends IonicNativePlugin {
@Cordova({
eventObservable: true,
event: 'onSkippableVideoFinished',
element: 'document'
element: 'document',
})
onSkippableVideoFinished(): Observable<any> {
return;
@@ -442,7 +442,7 @@ export class Appodeal extends IonicNativePlugin {
@Cordova({
eventObservable: true,
event: 'onSkippableVideoClosed',
element: 'document'
element: 'document',
})
onSkippableVideoClosed(): Observable<any> {
return;
@@ -451,7 +451,7 @@ export class Appodeal extends IonicNativePlugin {
@Cordova({
eventObservable: true,
event: 'onRewardedVideoLoaded',
element: 'document'
element: 'document',
})
onRewardedVideoLoaded(): Observable<any> {
return;
@@ -460,7 +460,7 @@ export class Appodeal extends IonicNativePlugin {
@Cordova({
eventObservable: true,
event: 'onRewardedVideoFailedToLoad',
element: 'document'
element: 'document',
})
onRewardedVideoFailedToLoad(): Observable<any> {
return;
@@ -469,7 +469,7 @@ export class Appodeal extends IonicNativePlugin {
@Cordova({
eventObservable: true,
event: 'onRewardedVideoShown',
element: 'document'
element: 'document',
})
onRewardedVideoShown(): Observable<any> {
return;
@@ -478,7 +478,7 @@ export class Appodeal extends IonicNativePlugin {
@Cordova({
eventObservable: true,
event: 'onRewardedVideoFinished',
element: 'document'
element: 'document',
})
onRewardedVideoFinished(): Observable<any> {
return;
@@ -487,7 +487,7 @@ export class Appodeal extends IonicNativePlugin {
@Cordova({
eventObservable: true,
event: 'onRewardedVideoClosed',
element: 'document'
element: 'document',
})
onRewardedVideoClosed(): Observable<any> {
return;
@@ -496,7 +496,7 @@ export class Appodeal extends IonicNativePlugin {
@Cordova({
eventObservable: true,
event: 'onNonSkippableVideoLoaded',
element: 'document'
element: 'document',
})
onNonSkippableVideoLoaded(): Observable<any> {
return;
@@ -505,7 +505,7 @@ export class Appodeal extends IonicNativePlugin {
@Cordova({
eventObservable: true,
event: 'onNonSkippableVideoFailedToLoad',
element: 'document'
element: 'document',
})
onNonSkippableVideoFailedToLoad(): Observable<any> {
return;
@@ -514,7 +514,7 @@ export class Appodeal extends IonicNativePlugin {
@Cordova({
eventObservable: true,
event: 'onNonSkippableVideoShown',
element: 'document'
element: 'document',
})
onNonSkippableVideoShown(): Observable<any> {
return;
@@ -523,7 +523,7 @@ export class Appodeal extends IonicNativePlugin {
@Cordova({
eventObservable: true,
event: 'onNonSkippableVideoFinished',
element: 'document'
element: 'document',
})
onNonSkippableVideoFinished(): Observable<any> {
return;
@@ -532,7 +532,7 @@ export class Appodeal extends IonicNativePlugin {
@Cordova({
eventObservable: true,
event: 'onNonSkippableVideoClosed',
element: 'document'
element: 'document',
})
onNonSkippableVideoClosed(): Observable<any> {
return;
@@ -541,7 +541,7 @@ export class Appodeal extends IonicNativePlugin {
@Cordova({
eventObservable: true,
event: 'onBannerClicked',
element: 'document'
element: 'document',
})
onBannerClicked(): Observable<any> {
return;
@@ -550,7 +550,7 @@ export class Appodeal extends IonicNativePlugin {
@Cordova({
eventObservable: true,
event: 'onBannerFailedToLoad',
element: 'document'
element: 'document',
})
onBannerFailedToLoad(): Observable<any> {
return;
@@ -559,7 +559,7 @@ export class Appodeal extends IonicNativePlugin {
@Cordova({
eventObservable: true,
event: 'onBannerLoaded',
element: 'document'
element: 'document',
})
onBannerLoaded(): Observable<any> {
return;
@@ -568,7 +568,7 @@ export class Appodeal extends IonicNativePlugin {
@Cordova({
eventObservable: true,
event: 'onBannerShown',
element: 'document'
element: 'document',
})
onBannerShown(): Observable<any> {
return;
@@ -590,7 +590,7 @@ export class Appodeal extends IonicNativePlugin {
}
@Cordova({
platforms: ['Android']
platforms: ['Android'],
})
showTestScreen(value: any): void {}

Some files were not shown because too many files have changed in this diff Show More