Socket
Socket
Sign inDemoInstall

nativescript-plugin-firebase-updated

Package Overview
Dependencies
45
Maintainers
1
Versions
38
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

Comparing version 2110.4.0 to 2210.4.0

25

admob/admob-common.js

@@ -1,5 +0,2 @@

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.rewardedVideoCallbacks = exports.BANNER_DEFAULTS = exports.AD_SIZE = void 0;
exports.AD_SIZE = {
export const AD_SIZE = {
SMART_BANNER: "SMART",

@@ -14,3 +11,3 @@ LARGE_BANNER: "LARGE",

};
exports.BANNER_DEFAULTS = {
export const BANNER_DEFAULTS = {
margins: {

@@ -24,17 +21,17 @@ top: -1,

};
exports.rewardedVideoCallbacks = {
onRewarded: function (reward) { return console.warn("onRewarded callback not set - the fallback implementation caught this reward: " + JSON.stringify(reward)); },
onLeftApplication: function () {
export const rewardedVideoCallbacks = {
onRewarded: (reward) => console.warn("onRewarded callback not set - the fallback implementation caught this reward: " + JSON.stringify(reward)),
onLeftApplication: () => {
},
onClosed: function () {
onClosed: () => {
},
onOpened: function () {
onOpened: () => {
},
onStarted: function () {
onStarted: () => {
},
onCompleted: function () {
onCompleted: () => {
},
onLoaded: function () {
onLoaded: () => {
},
onFailedToLoad: function (err) { return console.warn("onFailedToLoad not set - the fallback implementation caught this error: " + err); },
onFailedToLoad: (err) => console.warn("onFailedToLoad not set - the fallback implementation caught this error: " + err),
};

@@ -1,39 +0,35 @@

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.hideBanner = exports.showRewardedVideoAd = exports.preloadRewardedVideoAd = exports.showInterstitial = exports.preloadInterstitial = exports.showBanner = exports.AD_SIZE = void 0;
var firebase_common_1 = require("../firebase-common");
var admob_common_1 = require("./admob-common");
Object.defineProperty(exports, "AD_SIZE", { enumerable: true, get: function () { return admob_common_1.AD_SIZE; } });
var appModule = require("@nativescript/core/application");
var frame_1 = require("@nativescript/core/ui/frame");
var utils_1 = require("@nativescript/core/utils/utils");
function showBanner(arg) {
var _this = this;
return new Promise(function (resolve, reject) {
import { firebase } from "../firebase-common";
import { AD_SIZE, BANNER_DEFAULTS, rewardedVideoCallbacks } from "./admob-common";
import * as appModule from "@nativescript/core/application";
import { topmost } from "@nativescript/core/ui/frame";
import { layout } from "@nativescript/core/utils/utils";
export { AD_SIZE };
export function showBanner(arg) {
return new Promise((resolve, reject) => {
try {
var settings = firebase_common_1.firebase.merge(arg, admob_common_1.BANNER_DEFAULTS);
if (firebase_common_1.firebase.admob.adView !== null && firebase_common_1.firebase.admob.adView !== undefined) {
var parent_1 = firebase_common_1.firebase.admob.adView.getParent();
if (parent_1 !== null) {
parent_1.removeView(firebase_common_1.firebase.admob.adView);
const settings = firebase.merge(arg, BANNER_DEFAULTS);
if (firebase.admob.adView !== null && firebase.admob.adView !== undefined) {
const parent = firebase.admob.adView.getParent();
if (parent !== null) {
parent.removeView(firebase.admob.adView);
}
}
firebase_common_1.firebase.admob.adView = new com.google.android.gms.ads.AdView(appModule.android.foregroundActivity);
firebase_common_1.firebase.admob.adView.setAdUnitId(settings.androidBannerId);
var bannerType = _getBannerType(settings.size);
firebase_common_1.firebase.admob.adView.setAdSize(bannerType);
_this.resolve = resolve;
_this.reject = reject;
var BannerAdListener = com.google.android.gms.ads.AdListener.extend({
firebase.admob.adView = new com.google.android.gms.ads.AdView(appModule.android.foregroundActivity);
firebase.admob.adView.setAdUnitId(settings.androidBannerId);
const bannerType = _getBannerType(settings.size);
firebase.admob.adView.setAdSize(bannerType);
this.resolve = resolve;
this.reject = reject;
const BannerAdListener = com.google.android.gms.ads.AdListener.extend({
resolve: null,
reject: null,
onAdLoaded: function () { return _this.resolve(); },
onAdFailedToLoad: function (errorCode) { return _this.reject(errorCode); },
onAdClicked: function () { return arg.onClicked && arg.onClicked(); },
onAdOpened: function () { return arg.onOpened && arg.onOpened(); },
onAdLeftApplication: function () { return arg.onLeftApplication && arg.onLeftApplication(); },
onAdClosed: function () {
if (firebase_common_1.firebase.admob.adView) {
firebase_common_1.firebase.admob.adView.setAdListener(null);
firebase_common_1.firebase.admob.adView = null;
onAdLoaded: () => this.resolve(),
onAdFailedToLoad: errorCode => this.reject(errorCode),
onAdClicked: () => arg.onClicked && arg.onClicked(),
onAdOpened: () => arg.onOpened && arg.onOpened(),
onAdLeftApplication: () => arg.onLeftApplication && arg.onLeftApplication(),
onAdClosed: () => {
if (firebase.admob.adView) {
firebase.admob.adView.setAdListener(null);
firebase.admob.adView = null;
}

@@ -43,7 +39,7 @@ arg.onClosed && arg.onClosed();

});
firebase_common_1.firebase.admob.adView.setAdListener(new BannerAdListener());
var ad = _buildAdRequest(settings);
firebase_common_1.firebase.admob.adView.loadAd(ad);
var density = utils_1.layout.getDisplayDensity(), top_1 = settings.margins.top * density, bottom = settings.margins.bottom * density;
var relativeLayoutParams = new android.widget.RelativeLayout.LayoutParams(android.widget.RelativeLayout.LayoutParams.MATCH_PARENT, android.widget.RelativeLayout.LayoutParams.WRAP_CONTENT);
firebase.admob.adView.setAdListener(new BannerAdListener());
const ad = _buildAdRequest(settings);
firebase.admob.adView.loadAd(ad);
const density = layout.getDisplayDensity(), top = settings.margins.top * density, bottom = settings.margins.bottom * density;
const relativeLayoutParams = new android.widget.RelativeLayout.LayoutParams(android.widget.RelativeLayout.LayoutParams.MATCH_PARENT, android.widget.RelativeLayout.LayoutParams.WRAP_CONTENT);
if (bottom > -1) {

@@ -54,17 +50,17 @@ relativeLayoutParams.bottomMargin = bottom;

else {
if (top_1 > -1) {
relativeLayoutParams.topMargin = top_1;
if (top > -1) {
relativeLayoutParams.topMargin = top;
}
relativeLayoutParams.addRule(android.widget.RelativeLayout.ALIGN_PARENT_TOP);
}
var adViewLayout_1 = new android.widget.RelativeLayout(appModule.android.foregroundActivity);
adViewLayout_1.addView(firebase_common_1.firebase.admob.adView, relativeLayoutParams);
var relativeLayoutParamsOuter_1 = new android.widget.RelativeLayout.LayoutParams(android.widget.RelativeLayout.LayoutParams.MATCH_PARENT, android.widget.RelativeLayout.LayoutParams.MATCH_PARENT);
setTimeout(function () {
var top = frame_1.topmost();
const adViewLayout = new android.widget.RelativeLayout(appModule.android.foregroundActivity);
adViewLayout.addView(firebase.admob.adView, relativeLayoutParams);
const relativeLayoutParamsOuter = new android.widget.RelativeLayout.LayoutParams(android.widget.RelativeLayout.LayoutParams.MATCH_PARENT, android.widget.RelativeLayout.LayoutParams.MATCH_PARENT);
setTimeout(() => {
const top = topmost();
if (top !== undefined && top.currentPage && top.currentPage.android && top.currentPage.android.getParent()) {
top.currentPage.android.getParent().addView(adViewLayout_1, relativeLayoutParamsOuter_1);
top.currentPage.android.getParent().addView(adViewLayout, relativeLayoutParamsOuter);
}
else if (appModule.android && appModule.android.foregroundActivity) {
appModule.android.foregroundActivity.getWindow().getDecorView().addView(adViewLayout_1, relativeLayoutParamsOuter_1);
appModule.android.foregroundActivity.getWindow().getDecorView().addView(adViewLayout, relativeLayoutParamsOuter);
}

@@ -82,23 +78,21 @@ else {

}
exports.showBanner = showBanner;
function preloadInterstitial(arg) {
var _this = this;
return new Promise(function (resolve, reject) {
export function preloadInterstitial(arg) {
return new Promise((resolve, reject) => {
try {
var settings = firebase_common_1.firebase.merge(arg, admob_common_1.BANNER_DEFAULTS);
var activity = appModule.android.foregroundActivity || appModule.android.startActivity;
firebase_common_1.firebase.admob.interstitialView = new com.google.android.gms.ads.InterstitialAd(activity);
firebase_common_1.firebase.admob.interstitialView.setAdUnitId(settings.androidInterstitialId);
_this.resolve = resolve;
_this.reject = reject;
var InterstitialAdListener = com.google.android.gms.ads.AdListener.extend({
onAdLoaded: function () { return _this.resolve(); },
onAdFailedToLoad: function (errorCode) { return _this.reject(errorCode); },
onAdClicked: function () { return arg.onClicked && arg.onClicked(); },
onAdOpened: function () { return arg.onOpened && arg.onOpened(); },
onAdLeftApplication: function () { return arg.onLeftApplication && arg.onLeftApplication(); },
onAdClosed: function () {
if (firebase_common_1.firebase.admob.interstitialView) {
firebase_common_1.firebase.admob.interstitialView.setAdListener(null);
firebase_common_1.firebase.admob.interstitialView = null;
const settings = firebase.merge(arg, BANNER_DEFAULTS);
const activity = appModule.android.foregroundActivity || appModule.android.startActivity;
firebase.admob.interstitialView = new com.google.android.gms.ads.InterstitialAd(activity);
firebase.admob.interstitialView.setAdUnitId(settings.androidInterstitialId);
this.resolve = resolve;
this.reject = reject;
const InterstitialAdListener = com.google.android.gms.ads.AdListener.extend({
onAdLoaded: () => this.resolve(),
onAdFailedToLoad: errorCode => this.reject(errorCode),
onAdClicked: () => arg.onClicked && arg.onClicked(),
onAdOpened: () => arg.onOpened && arg.onOpened(),
onAdLeftApplication: () => arg.onLeftApplication && arg.onLeftApplication(),
onAdClosed: () => {
if (firebase.admob.interstitialView) {
firebase.admob.interstitialView.setAdListener(null);
firebase.admob.interstitialView = null;
}

@@ -109,5 +103,5 @@ arg.onAdClosed && arg.onAdClosed();

});
firebase_common_1.firebase.admob.interstitialView.setAdListener(new InterstitialAdListener());
var ad = _buildAdRequest(settings);
firebase_common_1.firebase.admob.interstitialView.loadAd(ad);
firebase.admob.interstitialView.setAdListener(new InterstitialAdListener());
const ad = _buildAdRequest(settings);
firebase.admob.interstitialView.loadAd(ad);
}

@@ -120,9 +114,8 @@ catch (ex) {

}
exports.preloadInterstitial = preloadInterstitial;
function showInterstitial(arg) {
return new Promise(function (resolve, reject) {
export function showInterstitial(arg) {
return new Promise((resolve, reject) => {
try {
if (!arg) {
if (firebase_common_1.firebase.admob.interstitialView) {
firebase_common_1.firebase.admob.interstitialView.show();
if (firebase.admob.interstitialView) {
firebase.admob.interstitialView.show();
resolve();

@@ -135,21 +128,21 @@ }

}
var settings = firebase_common_1.firebase.merge(arg, admob_common_1.BANNER_DEFAULTS);
var activity = appModule.android.foregroundActivity || appModule.android.startActivity;
firebase_common_1.firebase.admob.interstitialView = new com.google.android.gms.ads.InterstitialAd(activity);
firebase_common_1.firebase.admob.interstitialView.setAdUnitId(settings.androidInterstitialId);
var InterstitialAdListener = com.google.android.gms.ads.AdListener.extend({
onAdLoaded: function () {
if (firebase_common_1.firebase.admob.interstitialView) {
firebase_common_1.firebase.admob.interstitialView.show();
const settings = firebase.merge(arg, BANNER_DEFAULTS);
const activity = appModule.android.foregroundActivity || appModule.android.startActivity;
firebase.admob.interstitialView = new com.google.android.gms.ads.InterstitialAd(activity);
firebase.admob.interstitialView.setAdUnitId(settings.androidInterstitialId);
const InterstitialAdListener = com.google.android.gms.ads.AdListener.extend({
onAdLoaded: () => {
if (firebase.admob.interstitialView) {
firebase.admob.interstitialView.show();
}
resolve();
},
onAdFailedToLoad: function (errorCode) { return reject(errorCode); },
onAdClicked: function () { return arg.onClicked && arg.onClicked(); },
onAdOpened: function () { return arg.onOpened && arg.onOpened(); },
onAdLeftApplication: function () { return arg.onLeftApplication && arg.onLeftApplication(); },
onAdClosed: function () {
if (firebase_common_1.firebase.admob.interstitialView) {
firebase_common_1.firebase.admob.interstitialView.setAdListener(null);
firebase_common_1.firebase.admob.interstitialView = null;
onAdFailedToLoad: errorCode => reject(errorCode),
onAdClicked: () => arg.onClicked && arg.onClicked(),
onAdOpened: () => arg.onOpened && arg.onOpened(),
onAdLeftApplication: () => arg.onLeftApplication && arg.onLeftApplication(),
onAdClosed: () => {
if (firebase.admob.interstitialView) {
firebase.admob.interstitialView.setAdListener(null);
firebase.admob.interstitialView = null;
}

@@ -160,5 +153,5 @@ arg.onAdClosed && arg.onAdClosed();

});
firebase_common_1.firebase.admob.interstitialView.setAdListener(new InterstitialAdListener());
var ad = _buildAdRequest(settings);
firebase_common_1.firebase.admob.interstitialView.loadAd(ad);
firebase.admob.interstitialView.setAdListener(new InterstitialAdListener());
const ad = _buildAdRequest(settings);
firebase.admob.interstitialView.loadAd(ad);
}

@@ -171,14 +164,13 @@ catch (ex) {

}
exports.showInterstitial = showInterstitial;
function preloadRewardedVideoAd(arg) {
return new Promise(function (resolve, reject) {
export function preloadRewardedVideoAd(arg) {
return new Promise((resolve, reject) => {
try {
var settings = firebase_common_1.firebase.merge(arg, admob_common_1.BANNER_DEFAULTS);
var activity = appModule.android.foregroundActivity || appModule.android.startActivity;
firebase_common_1.firebase.admob.rewardedAdVideoView = com.google.android.gms.ads.MobileAds.getRewardedVideoAdInstance(activity);
admob_common_1.rewardedVideoCallbacks.onLoaded = resolve;
admob_common_1.rewardedVideoCallbacks.onFailedToLoad = reject;
var RewardedVideoAdListener = com.google.android.gms.ads.reward.RewardedVideoAdListener.extend({
onRewarded: function (reward) {
admob_common_1.rewardedVideoCallbacks.onRewarded({
const settings = firebase.merge(arg, BANNER_DEFAULTS);
const activity = appModule.android.foregroundActivity || appModule.android.startActivity;
firebase.admob.rewardedAdVideoView = com.google.android.gms.ads.MobileAds.getRewardedVideoAdInstance(activity);
rewardedVideoCallbacks.onLoaded = resolve;
rewardedVideoCallbacks.onFailedToLoad = reject;
const RewardedVideoAdListener = com.google.android.gms.ads.reward.RewardedVideoAdListener.extend({
onRewarded(reward) {
rewardedVideoCallbacks.onRewarded({
amount: reward.getAmount(),

@@ -188,31 +180,31 @@ type: reward.getType()

},
onRewardedVideoAdLeftApplication: function () {
admob_common_1.rewardedVideoCallbacks.onLeftApplication();
onRewardedVideoAdLeftApplication() {
rewardedVideoCallbacks.onLeftApplication();
},
onRewardedVideoAdClosed: function () {
if (firebase_common_1.firebase.admob.rewardedAdVideoView) {
firebase_common_1.firebase.admob.rewardedAdVideoView.setRewardedVideoAdListener(null);
firebase_common_1.firebase.admob.rewardedAdVideoView = null;
onRewardedVideoAdClosed() {
if (firebase.admob.rewardedAdVideoView) {
firebase.admob.rewardedAdVideoView.setRewardedVideoAdListener(null);
firebase.admob.rewardedAdVideoView = null;
}
admob_common_1.rewardedVideoCallbacks.onClosed();
rewardedVideoCallbacks.onClosed();
},
onRewardedVideoAdFailedToLoad: function (errorCode) {
admob_common_1.rewardedVideoCallbacks.onFailedToLoad(errorCode);
onRewardedVideoAdFailedToLoad(errorCode) {
rewardedVideoCallbacks.onFailedToLoad(errorCode);
},
onRewardedVideoAdLoaded: function () {
admob_common_1.rewardedVideoCallbacks.onLoaded();
onRewardedVideoAdLoaded() {
rewardedVideoCallbacks.onLoaded();
},
onRewardedVideoAdOpened: function () {
admob_common_1.rewardedVideoCallbacks.onOpened();
onRewardedVideoAdOpened() {
rewardedVideoCallbacks.onOpened();
},
onRewardedVideoStarted: function () {
admob_common_1.rewardedVideoCallbacks.onStarted();
onRewardedVideoStarted() {
rewardedVideoCallbacks.onStarted();
},
onRewardedVideoCompleted: function () {
admob_common_1.rewardedVideoCallbacks.onCompleted();
onRewardedVideoCompleted() {
rewardedVideoCallbacks.onCompleted();
}
});
firebase_common_1.firebase.admob.rewardedAdVideoView.setRewardedVideoAdListener(new RewardedVideoAdListener());
var ad = _buildAdRequest(settings);
firebase_common_1.firebase.admob.rewardedAdVideoView.loadAd(settings.androidAdPlacementId, ad);
firebase.admob.rewardedAdVideoView.setRewardedVideoAdListener(new RewardedVideoAdListener());
const ad = _buildAdRequest(settings);
firebase.admob.rewardedAdVideoView.loadAd(settings.androidAdPlacementId, ad);
}

@@ -225,7 +217,6 @@ catch (ex) {

}
exports.preloadRewardedVideoAd = preloadRewardedVideoAd;
function showRewardedVideoAd(arg) {
return new Promise(function (resolve, reject) {
export function showRewardedVideoAd(arg) {
return new Promise((resolve, reject) => {
try {
if (!firebase_common_1.firebase.admob.rewardedAdVideoView) {
if (!firebase.admob.rewardedAdVideoView) {
reject("Please call 'preloadRewardedVideoAd' first");

@@ -235,20 +226,20 @@ return;

if (arg.onRewarded) {
admob_common_1.rewardedVideoCallbacks.onRewarded = arg.onRewarded;
rewardedVideoCallbacks.onRewarded = arg.onRewarded;
}
if (arg.onLeftApplication) {
admob_common_1.rewardedVideoCallbacks.onLeftApplication = arg.onLeftApplication;
rewardedVideoCallbacks.onLeftApplication = arg.onLeftApplication;
}
if (arg.onClosed) {
admob_common_1.rewardedVideoCallbacks.onClosed = arg.onClosed;
rewardedVideoCallbacks.onClosed = arg.onClosed;
}
if (arg.onOpened) {
admob_common_1.rewardedVideoCallbacks.onOpened = arg.onOpened;
rewardedVideoCallbacks.onOpened = arg.onOpened;
}
if (arg.onStarted) {
admob_common_1.rewardedVideoCallbacks.onStarted = arg.onStarted;
rewardedVideoCallbacks.onStarted = arg.onStarted;
}
if (arg.onCompleted) {
admob_common_1.rewardedVideoCallbacks.onCompleted = arg.onCompleted;
rewardedVideoCallbacks.onCompleted = arg.onCompleted;
}
firebase_common_1.firebase.admob.rewardedAdVideoView.show();
firebase.admob.rewardedAdVideoView.show();
resolve();

@@ -262,12 +253,11 @@ }

}
exports.showRewardedVideoAd = showRewardedVideoAd;
function hideBanner() {
return new Promise(function (resolve, reject) {
export function hideBanner() {
return new Promise((resolve, reject) => {
try {
if (firebase_common_1.firebase.admob.adView !== null) {
var parent_2 = firebase_common_1.firebase.admob.adView.getParent();
if (parent_2 !== null) {
parent_2.removeView(firebase_common_1.firebase.admob.adView);
if (firebase.admob.adView !== null) {
const parent = firebase.admob.adView.getParent();
if (parent !== null) {
parent.removeView(firebase.admob.adView);
}
firebase_common_1.firebase.admob.adView = null;
firebase.admob.adView = null;
}

@@ -282,20 +272,19 @@ resolve();

}
exports.hideBanner = hideBanner;
function _getBannerType(size) {
if (size === admob_common_1.AD_SIZE.BANNER) {
if (size === AD_SIZE.BANNER) {
return com.google.android.gms.ads.AdSize.BANNER;
}
else if (size === admob_common_1.AD_SIZE.LARGE_BANNER) {
else if (size === AD_SIZE.LARGE_BANNER) {
return com.google.android.gms.ads.AdSize.LARGE_BANNER;
}
else if (size === admob_common_1.AD_SIZE.MEDIUM_RECTANGLE) {
else if (size === AD_SIZE.MEDIUM_RECTANGLE) {
return com.google.android.gms.ads.AdSize.MEDIUM_RECTANGLE;
}
else if (size === admob_common_1.AD_SIZE.FULL_BANNER) {
else if (size === AD_SIZE.FULL_BANNER) {
return com.google.android.gms.ads.AdSize.FULL_BANNER;
}
else if (size === admob_common_1.AD_SIZE.LEADERBOARD) {
else if (size === AD_SIZE.LEADERBOARD) {
return com.google.android.gms.ads.AdSize.LEADERBOARD;
}
else if (size === admob_common_1.AD_SIZE.SMART_BANNER) {
else if (size === AD_SIZE.SMART_BANNER) {
return com.google.android.gms.ads.AdSize.SMART_BANNER;

@@ -308,8 +297,8 @@ }

function _buildAdRequest(settings) {
var builder = new com.google.android.gms.ads.AdRequest.Builder();
const builder = new com.google.android.gms.ads.AdRequest.Builder();
if (settings.testing) {
builder.addTestDevice(com.google.android.gms.ads.AdRequest.DEVICE_ID_EMULATOR);
var activity = appModule.android.foregroundActivity || appModule.android.startActivity;
var ANDROID_ID = android.provider.Settings.Secure.getString(activity.getContentResolver(), android.provider.Settings.Secure.ANDROID_ID);
var deviceId = _md5(ANDROID_ID);
const activity = appModule.android.foregroundActivity || appModule.android.startActivity;
const ANDROID_ID = android.provider.Settings.Secure.getString(activity.getContentResolver(), android.provider.Settings.Secure.ANDROID_ID);
let deviceId = _md5(ANDROID_ID);
if (deviceId !== null) {

@@ -322,9 +311,9 @@ deviceId = deviceId.toUpperCase();

if (settings.keywords !== undefined && settings.keywords.length > 0) {
for (var i = 0; i < settings.keywords.length; i++) {
for (let i = 0; i < settings.keywords.length; i++) {
builder.addKeyword(settings.keywords[i]);
}
}
var bundle = new android.os.Bundle();
const bundle = new android.os.Bundle();
bundle.putInt("nativescript", 1);
var adextras = new com.google.android.gms.ads.mediation.admob.AdMobExtras(bundle);
const adextras = new com.google.android.gms.ads.mediation.admob.AdMobExtras(bundle);
return builder.build();

@@ -334,13 +323,13 @@ }

try {
var digest = java.security.MessageDigest.getInstance("MD5");
var bytes = [];
for (var j = 0; j < input.length; ++j) {
const digest = java.security.MessageDigest.getInstance("MD5");
const bytes = [];
for (let j = 0; j < input.length; ++j) {
bytes.push(input.charCodeAt(j));
}
var s = new java.lang.String(input);
const s = new java.lang.String(input);
digest.update(s.getBytes());
var messageDigest = digest.digest();
var hexString = "";
for (var i = 0; i < messageDigest.length; i++) {
var h = java.lang.Integer.toHexString(0xFF & messageDigest[i]);
const messageDigest = digest.digest();
let hexString = "";
for (let i = 0; i < messageDigest.length; i++) {
let h = java.lang.Integer.toHexString(0xFF & messageDigest[i]);
while (h.length < 2)

@@ -347,0 +336,0 @@ h = "0" + h;

@@ -1,13 +0,10 @@

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.hideBanner = exports.showRewardedVideoAd = exports.preloadRewardedVideoAd = exports.showInterstitial = exports.preloadInterstitial = exports.showBanner = exports.AD_SIZE = void 0;
var platform_1 = require("@nativescript/core/platform");
var enums_1 = require("@nativescript/core/ui/enums");
var firebase_common_1 = require("../firebase-common");
var admob_common_1 = require("./admob-common");
Object.defineProperty(exports, "AD_SIZE", { enumerable: true, get: function () { return admob_common_1.AD_SIZE; } });
var _bannerOptions = undefined;
var _rewardBasedVideoAdDelegate = undefined;
function showBanner(arg) {
return new Promise(function (resolve, reject) {
import { Device } from "@nativescript/core/platform";
import { DeviceType } from "@nativescript/core/ui/enums";
import { firebase } from "../firebase-common";
import { AD_SIZE, BANNER_DEFAULTS, rewardedVideoCallbacks } from "./admob-common";
export { AD_SIZE };
let _bannerOptions = undefined;
let _rewardBasedVideoAdDelegate = undefined;
export function showBanner(arg) {
return new Promise((resolve, reject) => {
try {

@@ -18,21 +15,21 @@ if (typeof (GADRequest) === "undefined") {

}
if (firebase_common_1.firebase.admob.adView !== null && firebase_common_1.firebase.admob.adView !== undefined) {
firebase_common_1.firebase.admob.adView.removeFromSuperview();
firebase_common_1.firebase.admob.adView = null;
if (firebase.admob.adView !== null && firebase.admob.adView !== undefined) {
firebase.admob.adView.removeFromSuperview();
firebase.admob.adView = null;
}
admob_common_1.BANNER_DEFAULTS.view = UIApplication.sharedApplication.keyWindow.rootViewController.view;
var settings = firebase_common_1.firebase.merge(arg, admob_common_1.BANNER_DEFAULTS);
BANNER_DEFAULTS.view = UIApplication.sharedApplication.keyWindow.rootViewController.view;
const settings = firebase.merge(arg, BANNER_DEFAULTS);
_bannerOptions = settings;
var view = settings.view;
var bannerType = _getBannerType(settings.size);
var adWidth = bannerType.size.width === 0 ? view.frame.size.width : bannerType.size.width;
var adHeight = bannerType.size.smartHeight ? bannerType.size.smartHeight : bannerType.size.height;
var originX = (view.frame.size.width - adWidth) / 2;
var originY = settings.margins.top > -1 ? settings.margins.top : (settings.margins.bottom > -1 ? view.frame.size.height - adHeight - settings.margins.bottom : 0.0);
var origin_1 = CGPointMake(originX, originY);
firebase_common_1.firebase.admob.adView = GADBannerView.alloc().initWithAdSizeOrigin(bannerType, origin_1);
firebase_common_1.firebase.admob.adView.adUnitID = settings.iosBannerId;
var adRequest = GADRequest.request();
const view = settings.view;
const bannerType = _getBannerType(settings.size);
const adWidth = bannerType.size.width === 0 ? view.frame.size.width : bannerType.size.width;
const adHeight = bannerType.size.smartHeight ? bannerType.size.smartHeight : bannerType.size.height;
const originX = (view.frame.size.width - adWidth) / 2;
const originY = settings.margins.top > -1 ? settings.margins.top : (settings.margins.bottom > -1 ? view.frame.size.height - adHeight - settings.margins.bottom : 0.0);
const origin = CGPointMake(originX, originY);
firebase.admob.adView = GADBannerView.alloc().initWithAdSizeOrigin(bannerType, origin);
firebase.admob.adView.adUnitID = settings.iosBannerId;
const adRequest = GADRequest.request();
if (settings.testing) {
var testDevices = [];
let testDevices = [];
try {

@@ -51,5 +48,5 @@ testDevices.push("Simulator");

}
firebase_common_1.firebase.admob.adView.rootViewController = UIApplication.sharedApplication.keyWindow.rootViewController;
firebase_common_1.firebase.admob.adView.loadRequest(adRequest);
var delegate_1 = GADBannerViewDelegateImpl.new().initWithOptionsAndCallback(arg, function (ad, error) {
firebase.admob.adView.rootViewController = UIApplication.sharedApplication.keyWindow.rootViewController;
firebase.admob.adView.loadRequest(adRequest);
let delegate = GADBannerViewDelegateImpl.new().initWithOptionsAndCallback(arg, (ad, error) => {
if (error) {

@@ -61,10 +58,10 @@ reject(error.localizedDescription);

}
}, function () {
}, () => {
arg.onClosed && arg.onClosed();
CFRelease(delegate_1);
delegate_1 = undefined;
CFRelease(delegate);
delegate = undefined;
});
CFRetain(delegate_1);
firebase_common_1.firebase.admob.adView.delegate = delegate_1;
view.addSubview(firebase_common_1.firebase.admob.adView);
CFRetain(delegate);
firebase.admob.adView.delegate = delegate;
view.addSubview(firebase.admob.adView);
}

@@ -77,5 +74,4 @@ catch (ex) {

}
exports.showBanner = showBanner;
function preloadInterstitial(arg) {
return new Promise(function (resolve, reject) {
export function preloadInterstitial(arg) {
return new Promise((resolve, reject) => {
try {

@@ -86,5 +82,5 @@ if (typeof (GADRequest) === "undefined") {

}
var settings = firebase_common_1.firebase.merge(arg, admob_common_1.BANNER_DEFAULTS);
firebase_common_1.firebase.admob.interstitialView = GADInterstitial.alloc().initWithAdUnitID(settings.iosInterstitialId);
var delegate_2 = GADInterstitialDelegateImpl.new().initWithOptionsAndCallback(arg, function (ad, error) {
const settings = firebase.merge(arg, BANNER_DEFAULTS);
firebase.admob.interstitialView = GADInterstitial.alloc().initWithAdUnitID(settings.iosInterstitialId);
let delegate = GADInterstitialDelegateImpl.new().initWithOptionsAndCallback(arg, (ad, error) => {
if (error) {

@@ -96,13 +92,13 @@ reject(error.localizedDescription);

}
}, function () {
}, () => {
arg.onAdClosed && arg.onAdClosed();
arg.onClosed && arg.onClosed();
CFRelease(delegate_2);
delegate_2 = undefined;
CFRelease(delegate);
delegate = undefined;
});
CFRetain(delegate_2);
firebase_common_1.firebase.admob.interstitialView.delegate = delegate_2;
var adRequest = GADRequest.request();
CFRetain(delegate);
firebase.admob.interstitialView.delegate = delegate;
const adRequest = GADRequest.request();
if (settings.testing) {
var testDevices = [];
let testDevices = [];
try {

@@ -118,3 +114,3 @@ testDevices.push("Simulator");

}
firebase_common_1.firebase.admob.interstitialView.loadRequest(adRequest);
firebase.admob.interstitialView.loadRequest(adRequest);
}

@@ -127,5 +123,4 @@ catch (ex) {

}
exports.preloadInterstitial = preloadInterstitial;
function showInterstitial(arg) {
return new Promise(function (resolve, reject) {
export function showInterstitial(arg) {
return new Promise((resolve, reject) => {
try {

@@ -137,4 +132,4 @@ if (typeof (GADRequest) === "undefined") {

if (!arg) {
if (firebase_common_1.firebase.admob.interstitialView) {
firebase_common_1.firebase.admob.interstitialView.presentFromRootViewController(UIApplication.sharedApplication.keyWindow.rootViewController);
if (firebase.admob.interstitialView) {
firebase.admob.interstitialView.presentFromRootViewController(UIApplication.sharedApplication.keyWindow.rootViewController);
resolve();

@@ -147,5 +142,5 @@ }

}
var settings = firebase_common_1.firebase.merge(arg, admob_common_1.BANNER_DEFAULTS);
firebase_common_1.firebase.admob.interstitialView = GADInterstitial.alloc().initWithAdUnitID(settings.iosInterstitialId);
var delegate_3 = GADInterstitialDelegateImpl.new().initWithOptionsAndCallback(arg, function (ad, error) {
const settings = firebase.merge(arg, BANNER_DEFAULTS);
firebase.admob.interstitialView = GADInterstitial.alloc().initWithAdUnitID(settings.iosInterstitialId);
let delegate = GADInterstitialDelegateImpl.new().initWithOptionsAndCallback(arg, (ad, error) => {
if (error) {

@@ -155,13 +150,13 @@ reject(error.localizedDescription);

else {
firebase_common_1.firebase.admob.interstitialView.presentFromRootViewController(UIApplication.sharedApplication.keyWindow.rootViewController);
firebase.admob.interstitialView.presentFromRootViewController(UIApplication.sharedApplication.keyWindow.rootViewController);
resolve();
}
CFRelease(delegate_3);
delegate_3 = undefined;
CFRelease(delegate);
delegate = undefined;
});
CFRetain(delegate_3);
firebase_common_1.firebase.admob.interstitialView.delegate = delegate_3;
var adRequest = GADRequest.request();
CFRetain(delegate);
firebase.admob.interstitialView.delegate = delegate;
const adRequest = GADRequest.request();
if (settings.testing) {
var testDevices = [];
let testDevices = [];
try {

@@ -177,3 +172,3 @@ testDevices.push("Simulator");

}
firebase_common_1.firebase.admob.interstitialView.loadRequest(adRequest);
firebase.admob.interstitialView.loadRequest(adRequest);
}

@@ -186,5 +181,4 @@ catch (ex) {

}
exports.showInterstitial = showInterstitial;
function preloadRewardedVideoAd(arg) {
return new Promise(function (resolve, reject) {
export function preloadRewardedVideoAd(arg) {
return new Promise((resolve, reject) => {
try {

@@ -195,12 +189,12 @@ if (typeof (GADRequest) === "undefined") {

}
var onLoaded = function () { return resolve(); };
var onError = function (err) { return reject(err); };
const onLoaded = () => resolve();
const onError = err => reject(err);
_rewardBasedVideoAdDelegate = GADRewardBasedVideoAdDelegateImpl.new().initWithCallback(onLoaded, onError);
CFRetain(_rewardBasedVideoAdDelegate);
firebase_common_1.firebase.admob.rewardedAdVideoView = GADRewardBasedVideoAd.sharedInstance();
firebase_common_1.firebase.admob.rewardedAdVideoView.delegate = _rewardBasedVideoAdDelegate;
var settings = firebase_common_1.firebase.merge(arg, admob_common_1.BANNER_DEFAULTS);
var adRequest = GADRequest.request();
firebase.admob.rewardedAdVideoView = GADRewardBasedVideoAd.sharedInstance();
firebase.admob.rewardedAdVideoView.delegate = _rewardBasedVideoAdDelegate;
const settings = firebase.merge(arg, BANNER_DEFAULTS);
const adRequest = GADRequest.request();
if (settings.testing) {
var testDevices = [];
let testDevices = [];
try {

@@ -216,3 +210,3 @@ testDevices.push("Simulator");

}
firebase_common_1.firebase.admob.rewardedAdVideoView.loadRequestWithAdUnitID(adRequest, settings.iosAdPlacementId);
firebase.admob.rewardedAdVideoView.loadRequestWithAdUnitID(adRequest, settings.iosAdPlacementId);
}

@@ -225,5 +219,4 @@ catch (ex) {

}
exports.preloadRewardedVideoAd = preloadRewardedVideoAd;
function showRewardedVideoAd(arg) {
return new Promise(function (resolve, reject) {
export function showRewardedVideoAd(arg) {
return new Promise((resolve, reject) => {
try {

@@ -234,3 +227,3 @@ if (typeof (GADRequest) === "undefined") {

}
if (!firebase_common_1.firebase.admob.rewardedAdVideoView) {
if (!firebase.admob.rewardedAdVideoView) {
reject("Please call 'preloadRewardedVideoAd' first");

@@ -240,20 +233,20 @@ return;

if (arg.onRewarded) {
admob_common_1.rewardedVideoCallbacks.onRewarded = arg.onRewarded;
rewardedVideoCallbacks.onRewarded = arg.onRewarded;
}
if (arg.onLeftApplication) {
admob_common_1.rewardedVideoCallbacks.onLeftApplication = arg.onLeftApplication;
rewardedVideoCallbacks.onLeftApplication = arg.onLeftApplication;
}
if (arg.onClosed) {
admob_common_1.rewardedVideoCallbacks.onClosed = arg.onClosed;
rewardedVideoCallbacks.onClosed = arg.onClosed;
}
if (arg.onOpened) {
admob_common_1.rewardedVideoCallbacks.onOpened = arg.onOpened;
rewardedVideoCallbacks.onOpened = arg.onOpened;
}
if (arg.onStarted) {
admob_common_1.rewardedVideoCallbacks.onStarted = arg.onStarted;
rewardedVideoCallbacks.onStarted = arg.onStarted;
}
if (arg.onCompleted) {
admob_common_1.rewardedVideoCallbacks.onCompleted = arg.onCompleted;
rewardedVideoCallbacks.onCompleted = arg.onCompleted;
}
firebase_common_1.firebase.admob.rewardedAdVideoView.presentFromRootViewController(UIApplication.sharedApplication.keyWindow.rootViewController);
firebase.admob.rewardedAdVideoView.presentFromRootViewController(UIApplication.sharedApplication.keyWindow.rootViewController);
resolve();

@@ -267,9 +260,8 @@ }

}
exports.showRewardedVideoAd = showRewardedVideoAd;
function hideBanner() {
return new Promise(function (resolve, reject) {
export function hideBanner() {
return new Promise((resolve, reject) => {
try {
if (firebase_common_1.firebase.admob.adView !== null) {
firebase_common_1.firebase.admob.adView.removeFromSuperview();
firebase_common_1.firebase.admob.adView = null;
if (firebase.admob.adView !== null) {
firebase.admob.adView.removeFromSuperview();
firebase.admob.adView = null;
}

@@ -284,26 +276,25 @@ resolve();

}
exports.hideBanner = hideBanner;
function _getBannerType(size) {
if (size === admob_common_1.AD_SIZE.BANNER) {
if (size === AD_SIZE.BANNER) {
return { "size": { "width": 320, "height": 50 }, "flags": 0 };
}
else if (size === admob_common_1.AD_SIZE.LARGE_BANNER) {
else if (size === AD_SIZE.LARGE_BANNER) {
return { "size": { "width": 320, "height": 100 }, "flags": 0 };
}
else if (size === admob_common_1.AD_SIZE.MEDIUM_RECTANGLE) {
else if (size === AD_SIZE.MEDIUM_RECTANGLE) {
return { "size": { "width": 300, "height": 250 }, "flags": 0 };
}
else if (size === admob_common_1.AD_SIZE.FULL_BANNER) {
else if (size === AD_SIZE.FULL_BANNER) {
return { "size": { "width": 468, "height": 60 }, "flags": 0 };
}
else if (size === admob_common_1.AD_SIZE.LEADERBOARD) {
else if (size === AD_SIZE.LEADERBOARD) {
return { "size": { "width": 728, "height": 90 }, "flags": 0 };
}
else if (size === admob_common_1.AD_SIZE.SKYSCRAPER) {
else if (size === AD_SIZE.SKYSCRAPER) {
return { "size": { "width": 120, "height": 600 }, "flags": 0 };
}
else if (size === admob_common_1.AD_SIZE.SMART_BANNER || size === admob_common_1.AD_SIZE.FLUID) {
var orientation_1 = UIDevice.currentDevice.orientation;
var isIPad = platform_1.Device.deviceType === enums_1.DeviceType.Tablet;
if (orientation_1 === 1 || orientation_1 === 2) {
else if (size === AD_SIZE.SMART_BANNER || size === AD_SIZE.FLUID) {
const orientation = UIDevice.currentDevice.orientation;
const isIPad = Device.deviceType === DeviceType.Tablet;
if (orientation === 1 || orientation === 2) {
return { "size": { "width": 0, "height": 0, "smartHeight": isIPad ? 90 : 50 }, "flags": 18 };

@@ -319,15 +310,10 @@ }

}
var GADInterstitialDelegateImpl = (function (_super) {
__extends(GADInterstitialDelegateImpl, _super);
function GADInterstitialDelegateImpl() {
return _super !== null && _super.apply(this, arguments) || this;
}
GADInterstitialDelegateImpl.new = function () {
class GADInterstitialDelegateImpl extends NSObject {
static new() {
if (GADInterstitialDelegateImpl.ObjCProtocols.length === 0 && typeof (GADInterstitialDelegate) !== "undefined") {
GADInterstitialDelegateImpl.ObjCProtocols.push(GADInterstitialDelegate);
}
return _super.new.call(this);
};
GADInterstitialDelegateImpl.prototype.initWithOptionsAndCallback = function (options, callback, onAdCloseCallback) {
if (onAdCloseCallback === void 0) { onAdCloseCallback = null; }
return super.new();
}
initWithOptionsAndCallback(options, callback, onAdCloseCallback = null) {
this.options = options;

@@ -337,31 +323,25 @@ this.callback = callback;

return this;
};
GADInterstitialDelegateImpl.prototype.interstitialDidReceiveAd = function (ad) {
}
interstitialDidReceiveAd(ad) {
this.callback(ad);
};
GADInterstitialDelegateImpl.prototype.interstitialDidDismissScreen = function (ad) {
}
interstitialDidDismissScreen(ad) {
this.onAdCloseCallback();
};
GADInterstitialDelegateImpl.prototype.interstitialDidFailToReceiveAdWithError = function (ad, error) {
}
interstitialDidFailToReceiveAdWithError(ad, error) {
this.callback(ad, error);
};
GADInterstitialDelegateImpl.prototype.interstitialWillLeaveApplication = function (ad) {
}
interstitialWillLeaveApplication(ad) {
this.options.onLeftApplication && this.options.onLeftApplication();
};
GADInterstitialDelegateImpl.ObjCProtocols = [];
return GADInterstitialDelegateImpl;
}(NSObject));
var GADBannerViewDelegateImpl = (function (_super) {
__extends(GADBannerViewDelegateImpl, _super);
function GADBannerViewDelegateImpl() {
return _super !== null && _super.apply(this, arguments) || this;
}
GADBannerViewDelegateImpl.new = function () {
}
GADInterstitialDelegateImpl.ObjCProtocols = [];
class GADBannerViewDelegateImpl extends NSObject {
static new() {
if (GADBannerViewDelegateImpl.ObjCProtocols.length === 0 && typeof (GADBannerViewDelegate) !== "undefined") {
GADBannerViewDelegateImpl.ObjCProtocols.push(GADBannerViewDelegate);
}
return _super.new.call(this);
};
GADBannerViewDelegateImpl.prototype.initWithOptionsAndCallback = function (options, callback, onAdCloseCallback) {
if (onAdCloseCallback === void 0) { onAdCloseCallback = null; }
return super.new();
}
initWithOptionsAndCallback(options, callback, onAdCloseCallback = null) {
this.options = options;

@@ -371,37 +351,32 @@ this.callback = callback;

return this;
};
GADBannerViewDelegateImpl.prototype.adViewDidReceiveAd = function (bannerView) {
}
adViewDidReceiveAd(bannerView) {
this.callback(bannerView, null);
};
GADBannerViewDelegateImpl.prototype.adViewDidFailToReceiveAdWithError = function (bannerView, error) {
}
adViewDidFailToReceiveAdWithError(bannerView, error) {
this.callback(bannerView, error);
};
GADBannerViewDelegateImpl.prototype.adViewDidDismissScreen = function (bannerView) {
}
adViewDidDismissScreen(bannerView) {
this.onAdCloseCallback();
};
GADBannerViewDelegateImpl.prototype.adViewWillLeaveApplication = function (bannerView) {
}
adViewWillLeaveApplication(bannerView) {
this.options.onLeftApplication && this.options.onLeftApplication();
};
GADBannerViewDelegateImpl.ObjCProtocols = [];
return GADBannerViewDelegateImpl;
}(NSObject));
var GADRewardBasedVideoAdDelegateImpl = (function (_super) {
__extends(GADRewardBasedVideoAdDelegateImpl, _super);
function GADRewardBasedVideoAdDelegateImpl() {
return _super !== null && _super.apply(this, arguments) || this;
}
GADRewardBasedVideoAdDelegateImpl.new = function () {
}
GADBannerViewDelegateImpl.ObjCProtocols = [];
class GADRewardBasedVideoAdDelegateImpl extends NSObject {
static new() {
if (GADRewardBasedVideoAdDelegateImpl.ObjCProtocols.length === 0 && typeof (GADRewardBasedVideoAdDelegate) !== "undefined") {
GADRewardBasedVideoAdDelegateImpl.ObjCProtocols.push(GADRewardBasedVideoAdDelegate);
}
return _super.new.call(this);
};
GADRewardBasedVideoAdDelegateImpl.prototype.initWithCallback = function (loaded, error) {
return super.new();
}
initWithCallback(loaded, error) {
this._loaded = loaded;
this._error = error;
return this;
};
GADRewardBasedVideoAdDelegateImpl.prototype.rewardBasedVideoAdDidClose = function (rewardBasedVideoAd) {
firebase_common_1.firebase.admob.rewardedAdVideoView = undefined;
admob_common_1.rewardedVideoCallbacks.onClosed();
}
rewardBasedVideoAdDidClose(rewardBasedVideoAd) {
firebase.admob.rewardedAdVideoView = undefined;
rewardedVideoCallbacks.onClosed();
setTimeout(function () {

@@ -411,29 +386,28 @@ CFRelease(_rewardBasedVideoAdDelegate);

});
};
GADRewardBasedVideoAdDelegateImpl.prototype.rewardBasedVideoAdDidCompletePlaying = function (rewardBasedVideoAd) {
admob_common_1.rewardedVideoCallbacks.onCompleted();
};
GADRewardBasedVideoAdDelegateImpl.prototype.rewardBasedVideoAdDidFailToLoadWithError = function (rewardBasedVideoAd, error) {
}
rewardBasedVideoAdDidCompletePlaying(rewardBasedVideoAd) {
rewardedVideoCallbacks.onCompleted();
}
rewardBasedVideoAdDidFailToLoadWithError(rewardBasedVideoAd, error) {
this._error(error.localizedDescription);
};
GADRewardBasedVideoAdDelegateImpl.prototype.rewardBasedVideoAdDidOpen = function (rewardBasedVideoAd) {
admob_common_1.rewardedVideoCallbacks.onOpened();
};
GADRewardBasedVideoAdDelegateImpl.prototype.rewardBasedVideoAdDidReceiveAd = function (rewardBasedVideoAd) {
}
rewardBasedVideoAdDidOpen(rewardBasedVideoAd) {
rewardedVideoCallbacks.onOpened();
}
rewardBasedVideoAdDidReceiveAd(rewardBasedVideoAd) {
this._loaded();
};
GADRewardBasedVideoAdDelegateImpl.prototype.rewardBasedVideoAdDidRewardUserWithReward = function (rewardBasedVideoAd, reward) {
admob_common_1.rewardedVideoCallbacks.onRewarded({
}
rewardBasedVideoAdDidRewardUserWithReward(rewardBasedVideoAd, reward) {
rewardedVideoCallbacks.onRewarded({
amount: reward.amount ? reward.amount.doubleValue : undefined,
type: reward.type
});
};
GADRewardBasedVideoAdDelegateImpl.prototype.rewardBasedVideoAdDidStartPlaying = function (rewardBasedVideoAd) {
admob_common_1.rewardedVideoCallbacks.onStarted();
};
GADRewardBasedVideoAdDelegateImpl.prototype.rewardBasedVideoAdWillLeaveApplication = function (rewardBasedVideoAd) {
admob_common_1.rewardedVideoCallbacks.onLeftApplication();
};
GADRewardBasedVideoAdDelegateImpl.ObjCProtocols = [];
return GADRewardBasedVideoAdDelegateImpl;
}(NSObject));
}
rewardBasedVideoAdDidStartPlaying(rewardBasedVideoAd) {
rewardedVideoCallbacks.onStarted();
}
rewardBasedVideoAdWillLeaveApplication(rewardBasedVideoAd) {
rewardedVideoCallbacks.onLeftApplication();
}
}
GADRewardBasedVideoAdDelegateImpl.ObjCProtocols = [];

@@ -1,5 +0,2 @@

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.admob = void 0;
var ads = require("./admob");
exports.admob = ads;
import * as ads from "./admob";
export const admob = ads;

@@ -1,6 +0,3 @@

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.validateAnalyticsParam = exports.validateAnalyticsKey = exports.ENABLE_ANALYTICS_HINT = void 0;
exports.ENABLE_ANALYTICS_HINT = "⚠️ You're calling an Analytics function but have not enabled it. Please add 'analytics: true' to 'firebase.nativescript.json' and remove the 'node_modules' and 'platforms' folders.";
function validateAnalyticsKey(key) {
export const ENABLE_ANALYTICS_HINT = "⚠️ You're calling an Analytics function but have not enabled it. Please add 'analytics: true' to 'firebase.nativescript.json' and remove the 'node_modules' and 'platforms' folders.";
export function validateAnalyticsKey(key) {
if (key === undefined || key === null) {

@@ -51,7 +48,5 @@ return "Argument 'key' is missing";

}
exports.validateAnalyticsKey = validateAnalyticsKey;
function validateAnalyticsParam(param) {
export function validateAnalyticsParam(param) {
return validateAnalyticsParamKey(param.key) || validateAnalyticsParamValue(param.value);
}
exports.validateAnalyticsParam = validateAnalyticsParam;
function validateAnalyticsParamKey(key) {

@@ -58,0 +53,0 @@ if (key === undefined) {

@@ -1,14 +0,11 @@

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.setSessionTimeoutDuration = exports.setAnalyticsCollectionEnabled = exports.setScreenName = exports.setUserProperty = exports.setUserId = exports.logComplexEvent = exports.logEvent = void 0;
var appModule = require("@nativescript/core/application");
var analytics_common_1 = require("./analytics-common");
function logEvent(options) {
return new Promise(function (resolve, reject) {
import * as appModule from "@nativescript/core/application";
import { ENABLE_ANALYTICS_HINT, validateAnalyticsKey, validateAnalyticsParam } from "./analytics-common";
export function logEvent(options) {
return new Promise((resolve, reject) => {
if (!isAnalyticsAvailable()) {
reject(analytics_common_1.ENABLE_ANALYTICS_HINT);
reject(ENABLE_ANALYTICS_HINT);
return;
}
try {
var validationError = analytics_common_1.validateAnalyticsKey(options.key);
const validationError = validateAnalyticsKey(options.key);
if (validationError !== undefined) {

@@ -18,7 +15,7 @@ reject(validationError);

}
var bundle = new android.os.Bundle();
const bundle = new android.os.Bundle();
if (options.parameters !== undefined) {
for (var p in options.parameters) {
var param = options.parameters[p];
var validationParamError = analytics_common_1.validateAnalyticsParam(param);
for (const p in options.parameters) {
const param = options.parameters[p];
const validationParamError = validateAnalyticsParam(param);
if (validationParamError !== undefined) {

@@ -42,7 +39,6 @@ reject(validationParamError);

}
exports.logEvent = logEvent;
function logComplexEvent(options) {
return new Promise(function (resolve, reject) {
export function logComplexEvent(options) {
return new Promise((resolve, reject) => {
if (!isAnalyticsAvailable()) {
reject(analytics_common_1.ENABLE_ANALYTICS_HINT);
reject(ENABLE_ANALYTICS_HINT);
return;

@@ -55,3 +51,3 @@ }

}
var bundle = new android.os.Bundle();
let bundle = new android.os.Bundle();
if (options.parameters !== undefined) {

@@ -69,7 +65,6 @@ bundle = buildBundle(options.parameters);

}
exports.logComplexEvent = logComplexEvent;
function setUserId(arg) {
return new Promise(function (resolve, reject) {
export function setUserId(arg) {
return new Promise((resolve, reject) => {
if (!isAnalyticsAvailable()) {
reject(analytics_common_1.ENABLE_ANALYTICS_HINT);
reject(ENABLE_ANALYTICS_HINT);
return;

@@ -91,7 +86,6 @@ }

}
exports.setUserId = setUserId;
function setUserProperty(options) {
return new Promise(function (resolve, reject) {
export function setUserProperty(options) {
return new Promise((resolve, reject) => {
if (!isAnalyticsAvailable()) {
reject(analytics_common_1.ENABLE_ANALYTICS_HINT);
reject(ENABLE_ANALYTICS_HINT);
return;

@@ -117,7 +111,6 @@ }

}
exports.setUserProperty = setUserProperty;
function setScreenName(options) {
return new Promise(function (resolve, reject) {
export function setScreenName(options) {
return new Promise((resolve, reject) => {
if (!isAnalyticsAvailable()) {
reject(analytics_common_1.ENABLE_ANALYTICS_HINT);
reject(ENABLE_ANALYTICS_HINT);
return;

@@ -139,4 +132,3 @@ }

}
exports.setScreenName = setScreenName;
function setAnalyticsCollectionEnabled(enabled) {
export function setAnalyticsCollectionEnabled(enabled) {
if (isAnalyticsAvailable()) {

@@ -146,4 +138,3 @@ com.google.firebase.analytics.FirebaseAnalytics.getInstance(appModule.android.context || appModule.getNativeApplication()).setAnalyticsCollectionEnabled(enabled);

}
exports.setAnalyticsCollectionEnabled = setAnalyticsCollectionEnabled;
function setSessionTimeoutDuration(seconds) {
export function setSessionTimeoutDuration(seconds) {
if (isAnalyticsAvailable()) {

@@ -153,9 +144,8 @@ com.google.firebase.analytics.FirebaseAnalytics.getInstance(appModule.android.context || appModule.getNativeApplication()).setSessionTimeoutDuration(seconds * 1000);

}
exports.setSessionTimeoutDuration = setSessionTimeoutDuration;
function getArrayList(array) {
var returnArray = new java.util.ArrayList();
for (var p in array) {
var param = array[p];
let returnArray = new java.util.ArrayList();
for (const p in array) {
const param = array[p];
if (param.parameters !== undefined) {
var bundle = buildBundle(param.parameters);
let bundle = buildBundle(param.parameters);
returnArray.add(bundle);

@@ -170,5 +160,5 @@ }

function buildBundle(params) {
var bundle = new android.os.Bundle();
for (var p in params) {
var param = params[p];
const bundle = new android.os.Bundle();
for (const p in params) {
const param = params[p];
if (param.value !== undefined) {

@@ -202,3 +192,3 @@ if (param.type === "string") {

if (typeof (com.google.firebase.analytics) === "undefined" || typeof (com.google.firebase.analytics.FirebaseAnalytics) === "undefined") {
console.log(analytics_common_1.ENABLE_ANALYTICS_HINT);
console.log(ENABLE_ANALYTICS_HINT);
return false;

@@ -205,0 +195,0 @@ }

@@ -1,13 +0,10 @@

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.iOSHandleOpenURL = exports.setSessionTimeoutDuration = exports.setAnalyticsCollectionEnabled = exports.setScreenName = exports.setUserProperty = exports.setUserId = exports.logComplexEvent = exports.logEvent = void 0;
var analytics_common_1 = require("./analytics-common");
function logEvent(options) {
return new Promise(function (resolve, reject) {
import { ENABLE_ANALYTICS_HINT, validateAnalyticsKey, validateAnalyticsParam } from "./analytics-common";
export function logEvent(options) {
return new Promise((resolve, reject) => {
if (!isAnalyticsAvailable()) {
reject(analytics_common_1.ENABLE_ANALYTICS_HINT);
reject(ENABLE_ANALYTICS_HINT);
return;
}
try {
var validationError = analytics_common_1.validateAnalyticsKey(options.key);
const validationError = validateAnalyticsKey(options.key);
if (validationError !== undefined) {

@@ -17,7 +14,7 @@ reject(validationError);

}
var dic = NSMutableDictionary.new();
const dic = NSMutableDictionary.new();
if (options.parameters !== undefined) {
for (var p in options.parameters) {
var param = options.parameters[p];
var validationParamError = analytics_common_1.validateAnalyticsParam(param);
for (let p in options.parameters) {
const param = options.parameters[p];
const validationParamError = validateAnalyticsParam(param);
if (validationParamError !== undefined) {

@@ -41,22 +38,21 @@ reject(validationParamError);

}
exports.logEvent = logEvent;
function logComplexEvent(options) {
return new Promise(function (resolve, reject) {
export function logComplexEvent(options) {
return new Promise((resolve, reject) => {
if (!isAnalyticsAvailable()) {
reject(analytics_common_1.ENABLE_ANALYTICS_HINT);
reject(ENABLE_ANALYTICS_HINT);
return;
}
try {
var dic = NSMutableDictionary.new();
const dic = NSMutableDictionary.new();
if (options.parameters !== undefined) {
for (var p in options.parameters) {
var param = options.parameters[p];
for (let p in options.parameters) {
const param = options.parameters[p];
if (param.type === "array" && param.value !== undefined) {
var listArray = [];
for (var val in param.value) {
var value = param.value[val];
const listArray = [];
for (let val in param.value) {
const value = param.value[val];
if (value.parameters !== undefined) {
var dicTemp = NSMutableDictionary.new();
for (var i in value.parameters) {
var item = value.parameters[i];
const dicTemp = NSMutableDictionary.new();
for (let i in value.parameters) {
const item = value.parameters[i];
if (item.type !== "array" && item.value !== undefined && item.key !== undefined) {

@@ -85,7 +81,6 @@ dicTemp.setObjectForKey(item.value, item.key);

}
exports.logComplexEvent = logComplexEvent;
function setUserId(arg) {
return new Promise(function (resolve, reject) {
export function setUserId(arg) {
return new Promise((resolve, reject) => {
if (!isAnalyticsAvailable()) {
reject(analytics_common_1.ENABLE_ANALYTICS_HINT);
reject(ENABLE_ANALYTICS_HINT);
return;

@@ -107,7 +102,6 @@ }

}
exports.setUserId = setUserId;
function setUserProperty(options) {
return new Promise(function (resolve, reject) {
export function setUserProperty(options) {
return new Promise((resolve, reject) => {
if (!isAnalyticsAvailable()) {
reject(analytics_common_1.ENABLE_ANALYTICS_HINT);
reject(ENABLE_ANALYTICS_HINT);
return;

@@ -133,7 +127,6 @@ }

}
exports.setUserProperty = setUserProperty;
function setScreenName(options) {
return new Promise(function (resolve, reject) {
export function setScreenName(options) {
return new Promise((resolve, reject) => {
if (!isAnalyticsAvailable()) {
reject(analytics_common_1.ENABLE_ANALYTICS_HINT);
reject(ENABLE_ANALYTICS_HINT);
return;

@@ -155,4 +148,3 @@ }

}
exports.setScreenName = setScreenName;
function setAnalyticsCollectionEnabled(enabled) {
export function setAnalyticsCollectionEnabled(enabled) {
if (isAnalyticsAvailable()) {

@@ -162,4 +154,3 @@ FIRAnalytics.setAnalyticsCollectionEnabled(enabled);

}
exports.setAnalyticsCollectionEnabled = setAnalyticsCollectionEnabled;
function setSessionTimeoutDuration(seconds) {
export function setSessionTimeoutDuration(seconds) {
if (isAnalyticsAvailable()) {

@@ -169,4 +160,3 @@ FIRAnalytics.setSessionTimeoutInterval(seconds);

}
exports.setSessionTimeoutDuration = setSessionTimeoutDuration;
function iOSHandleOpenURL(url) {
export function iOSHandleOpenURL(url) {
if (isAnalyticsAvailable()) {

@@ -176,6 +166,5 @@ FIRAnalytics.handleOpenURL(url);

}
exports.iOSHandleOpenURL = iOSHandleOpenURL;
function isAnalyticsAvailable() {
if (typeof (FIRAnalytics) === "undefined") {
console.log(analytics_common_1.ENABLE_ANALYTICS_HINT);
console.log(ENABLE_ANALYTICS_HINT);
return false;

@@ -182,0 +171,0 @@ }

@@ -1,5 +0,2 @@

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.analytics = void 0;
var analytz = require("./analytics");
exports.analytics = analytz;
import * as analytz from "./analytics";
export const analytics = analytz;

@@ -1,18 +0,12 @@

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.auth = void 0;
var firebase = require("../../firebase");
var firebase_1 = require("../../firebase");
var auth;
import * as firebase from "../../firebase";
import { LoginType } from "../../firebase";
export var auth;
(function (auth) {
var Auth = (function () {
function Auth() {
}
Auth.prototype.loginHelper = function (options) {
var _this = this;
return new Promise(function (resolve, reject) {
class Auth {
loginHelper(options) {
return new Promise((resolve, reject) => {
firebase.login(options)
.then(function (user) {
_this.currentUser = user;
_this.authStateChangedHandler && _this.authStateChangedHandler(user);
.then((user) => {
this.currentUser = user;
this.authStateChangedHandler && this.authStateChangedHandler(user);
resolve({

@@ -24,5 +18,5 @@ additionalUserInfo: user.additionalUserInfo,

});
}).catch(function (err) {
var code = 'auth/exception';
var message = err.toString();
}).catch(err => {
let code = 'auth/exception';
let message = err.toString();
if (message.includes('com.google.firebase.auth.FirebaseAuthInvalidCredentialsException')) {

@@ -34,3 +28,3 @@ code = 'auth/wrong-password';

}
_this.authStateOnErrorHandler && _this.authStateOnErrorHandler(err.toString());
this.authStateOnErrorHandler && this.authStateOnErrorHandler(err.toString());
reject({

@@ -42,5 +36,4 @@ code: code,

});
};
Auth.prototype.onAuthStateChanged = function (handler, error, completed) {
var _this = this;
}
onAuthStateChanged(handler, error, completed) {
this.authStateChangedHandler = handler;

@@ -51,18 +44,17 @@ if (error)

handler(this.currentUser);
return function () {
_this.authStateChangedHandler = undefined;
_this.authStateOnErrorHandler = undefined;
return () => {
this.authStateChangedHandler = undefined;
this.authStateOnErrorHandler = undefined;
};
};
Auth.prototype.signOut = function () {
var _this = this;
return new Promise(function (resolve, reject) {
}
signOut() {
return new Promise((resolve, reject) => {
firebase.logout()
.then(function () {
_this.currentUser = undefined;
_this.authStateChangedHandler && _this.authStateChangedHandler();
.then(() => {
this.currentUser = undefined;
this.authStateChangedHandler && this.authStateChangedHandler();
resolve();
})
.catch(function (err) {
_this.authStateOnErrorHandler && _this.authStateOnErrorHandler(err);
.catch(err => {
this.authStateOnErrorHandler && this.authStateOnErrorHandler(err);
reject({

@@ -73,12 +65,11 @@ message: err

});
};
Auth.prototype.unlink = function (providerId) {
var _this = this;
return new Promise(function (resolve, reject) {
}
unlink(providerId) {
return new Promise((resolve, reject) => {
firebase.unlink(providerId)
.then(function (user) {
_this.currentUser = user;
.then(user => {
this.currentUser = user;
resolve(user);
})
.catch(function (err) {
.catch(err => {
reject({

@@ -89,6 +80,6 @@ message: err

});
};
Auth.prototype.signInWithEmailAndPassword = function (email, password) {
var emailOption = {
type: firebase_1.LoginType.PASSWORD,
}
signInWithEmailAndPassword(email, password) {
const emailOption = {
type: LoginType.PASSWORD,
passwordOptions: {

@@ -100,6 +91,6 @@ email: email,

return this.loginHelper(emailOption);
};
Auth.prototype.signInWithCustomToken = function (token) {
var customTokenOption = {
type: firebase_1.LoginType.CUSTOM,
}
signInWithCustomToken(token) {
const customTokenOption = {
type: LoginType.CUSTOM,
customOptions: {

@@ -110,12 +101,12 @@ token: token

return this.loginHelper(customTokenOption);
};
Auth.prototype.signInAnonymously = function () {
var anonymousOption = {
type: firebase_1.LoginType.ANONYMOUS
}
signInAnonymously() {
const anonymousOption = {
type: LoginType.ANONYMOUS
};
return this.loginHelper(anonymousOption);
};
Auth.prototype.sendSignInLinkToEmail = function (email, actionCodeSettings) {
var sendSignInLinklOption = {
type: firebase_1.LoginType.EMAIL_LINK,
}
sendSignInLinkToEmail(email, actionCodeSettings) {
const sendSignInLinklOption = {
type: LoginType.EMAIL_LINK,
emailLinkOptions: {

@@ -127,5 +118,5 @@ email: email,

return this.loginHelper(sendSignInLinklOption);
};
Auth.prototype.signInWithEmailLink = function (email, emailLink) {
var signInWithEmailOption = {
}
signInWithEmailLink(email, emailLink) {
const signInWithEmailOption = {
type: firebase.LoginType.EMAIL_LINK,

@@ -138,42 +129,40 @@ emailLinkOptions: {

return this.loginHelper(signInWithEmailOption);
};
Auth.prototype.createUserWithEmailAndPassword = function (email, password) {
var _this = this;
return new Promise(function (resolve, reject) {
}
createUserWithEmailAndPassword(email, password) {
return new Promise((resolve, reject) => {
firebase.createUser({
email: email,
password: password
}).then(function (user) {
_this.currentUser = user;
}).then((user) => {
this.currentUser = user;
resolve(user);
}).catch(function (err) { return reject(err); });
}).catch(err => reject(err));
});
};
Auth.prototype.updateEmail = function (newEmail) {
return new Promise(function (resolve, reject) {
}
updateEmail(newEmail) {
return new Promise((resolve, reject) => {
firebase.updateEmail(newEmail)
.then(function () { return resolve(); })
.catch(function (err) { return reject(err); });
.then(() => resolve())
.catch(err => reject(err));
});
};
Auth.prototype.updatePassword = function (newPassword) {
return new Promise(function (resolve, reject) {
}
updatePassword(newPassword) {
return new Promise((resolve, reject) => {
firebase.updatePassword(newPassword)
.then(function () { return resolve(); })
.catch(function (err) { return reject(err); });
.then(() => resolve())
.catch(err => reject(err));
});
};
Auth.prototype.sendPasswordResetEmail = function (email) {
return new Promise(function (resolve, reject) {
}
sendPasswordResetEmail(email) {
return new Promise((resolve, reject) => {
firebase.sendPasswordResetEmail(email)
.then(function () { return resolve(); })
.catch(function (err) { return reject(err); });
.then(() => resolve())
.catch(err => reject(err));
});
};
Auth.prototype.fetchSignInMethodsForEmail = function (email) {
}
fetchSignInMethodsForEmail(email) {
return firebase.fetchSignInMethodsForEmail(email);
};
return Auth;
}());
}
}
auth.Auth = Auth;
})(auth = exports.auth || (exports.auth = {}));
})(auth || (auth = {}));

@@ -1,15 +0,11 @@

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.database = void 0;
var firebase = require("../../firebase");
var NextPushId_1 = require("./util/NextPushId");
var database;
import * as firebase from "../../firebase";
import { nextPushId } from "./util/NextPushId";
export var database;
(function (database) {
var Query = (function () {
function Query(path) {
class Query {
constructor(path) {
this.path = path;
}
Query.prototype.on = function (eventType, callback, cancelCallbackOrContext, context) {
var _this = this;
var onValueEvent = function (result) {
on(eventType, callback, cancelCallbackOrContext, context) {
const onValueEvent = result => {
if (result.error) {

@@ -21,13 +17,13 @@ callback(result);

key: result.key,
val: function () { return result.value; },
exists: function () { return !!result.value; }
val: () => result.value,
exists: () => !!result.value
});
}
};
firebase.addValueEventListener(onValueEvent, this.path).then(function (result) {
if (!Query.registeredListeners.has(_this.path)) {
Query.registeredListeners.set(_this.path, []);
firebase.addValueEventListener(onValueEvent, this.path).then((result) => {
if (!Query.registeredListeners.has(this.path)) {
Query.registeredListeners.set(this.path, []);
}
Query.registeredListeners.set(_this.path, Query.registeredListeners.get(_this.path).concat(result.listeners));
}, function (error) {
Query.registeredListeners.set(this.path, Query.registeredListeners.get(this.path).concat(result.listeners));
}, error => {
console.log("firebase.database().on error: " + error);

@@ -40,37 +36,34 @@ });

return null;
};
Query.prototype.off = function (eventType, callback, context) {
var _this = this;
}
off(eventType, callback, context) {
if (Query.registeredListeners.has(this.path)) {
firebase.removeEventListeners(Query.registeredListeners.get(this.path), this.path).then(function (result) { return Query.registeredListeners.delete(_this.path); }, function (error) { return console.log("firebase.database().off error: " + error); });
firebase.removeEventListeners(Query.registeredListeners.get(this.path), this.path).then(result => Query.registeredListeners.delete(this.path), error => console.log("firebase.database().off error: " + error));
}
Query.registeredCallbacks.delete(this.path);
return null;
};
Query.prototype.once = function (eventType, successCallback, failureCallbackOrContext, context) {
var _this = this;
return new Promise(function (resolve, reject) {
firebase.getValue(_this.path).then(function (result) {
}
once(eventType, successCallback, failureCallbackOrContext, context) {
return new Promise((resolve, reject) => {
firebase.getValue(this.path).then(result => {
resolve({
key: result.key,
val: function () { return result.value; },
exists: function () { return !!result.value; }
val: () => result.value,
exists: () => !!result.value
});
});
});
};
Query.prototype.getOnValueEventHandler = function () {
var _this = this;
return function (result) {
var callbacks = Query.registeredCallbacks.get(_this.path);
callbacks && callbacks.map(function (callback) {
}
getOnValueEventHandler() {
return result => {
const callbacks = Query.registeredCallbacks.get(this.path);
callbacks && callbacks.map(callback => {
callback({
key: result.key,
val: function () { return result.value; },
exists: function () { return !!result.value; }
val: () => result.value,
exists: () => !!result.value
});
});
};
};
Query.prototype.orderByChild = function (child) {
}
orderByChild(child) {
firebase.query(this.getOnValueEventHandler(), this.path, {

@@ -83,4 +76,4 @@ orderBy: {

return this;
};
Query.prototype.orderByKey = function () {
}
orderByKey() {
firebase.query(this.getOnValueEventHandler(), this.path, {

@@ -92,4 +85,4 @@ orderBy: {

return this;
};
Query.prototype.orderByPriority = function () {
}
orderByPriority() {
firebase.query(this.getOnValueEventHandler(), this.path, {

@@ -101,4 +94,4 @@ orderBy: {

return this;
};
Query.prototype.orderByValue = function () {
}
orderByValue() {
firebase.query(this.getOnValueEventHandler(), this.path, {

@@ -110,14 +103,9 @@ orderBy: {

return this;
};
Query.registeredListeners = new Map();
Query.registeredCallbacks = new Map();
return Query;
}());
}
}
Query.registeredListeners = new Map();
Query.registeredCallbacks = new Map();
database.Query = Query;
var Reference = (function (_super) {
__extends(Reference, _super);
function Reference() {
return _super !== null && _super.apply(this, arguments) || this;
}
Reference.prototype.getKey = function () {
class Reference extends Query {
getKey() {
if (!this.path) {

@@ -129,17 +117,12 @@ return null;

}
};
Object.defineProperty(Reference.prototype, "key", {
get: function () {
return this.getKey();
},
enumerable: false,
configurable: true
});
Reference.prototype.set = function (value, onComplete) {
var _this = this;
return new Promise(function (resolve, reject) {
firebase.setValue(_this.path, value).then(function () {
}
get key() {
return this.getKey();
}
set(value, onComplete) {
return new Promise((resolve, reject) => {
firebase.setValue(this.path, value).then(() => {
onComplete && onComplete(null);
resolve(null);
}).catch(function (err) {
}).catch(err => {
onComplete && onComplete(err);

@@ -149,14 +132,14 @@ reject(err);

});
};
Reference.prototype.child = function (path) {
return new Reference(this.path ? this.path + "/" + path : path);
};
Reference.prototype.push = function (value, onComplete) {
var now = new Date().getTime();
var name = NextPushId_1.nextPushId(now);
var thennablePushRef = this.child(name);
var pushRef = this.child(name);
var promise;
}
child(path) {
return new Reference(this.path ? `${this.path}/${path}` : path);
}
push(value, onComplete) {
const now = new Date().getTime();
const name = nextPushId(now);
const thennablePushRef = this.child(name);
const pushRef = this.child(name);
let promise;
if (value != null) {
promise = thennablePushRef.set(value, onComplete).then(function () { return pushRef; });
promise = thennablePushRef.set(value, onComplete).then(() => pushRef);
}

@@ -169,14 +152,13 @@ else {

if (typeof onComplete === 'function') {
promise.catch(function () {
promise.catch(() => {
});
}
return thennablePushRef;
};
Reference.prototype.remove = function (onComplete) {
var _this = this;
return new Promise(function (resolve, reject) {
firebase.remove(_this.path).then(function () {
}
remove(onComplete) {
return new Promise((resolve, reject) => {
firebase.remove(this.path).then(() => {
onComplete && onComplete(null);
resolve(null);
}).catch(function (err) {
}).catch(err => {
onComplete && onComplete(err);

@@ -186,21 +168,17 @@ reject(err);

});
};
Reference.prototype.onDisconnect = function () {
}
onDisconnect() {
return firebase.onDisconnect(this.path);
};
Reference.prototype.transaction = function (transactionUpdate, onComplete, applyLocally) {
}
transaction(transactionUpdate, onComplete, applyLocally) {
return firebase.transaction(this.path, transactionUpdate, onComplete);
};
return Reference;
}(Query));
}
}
database.Reference = Reference;
var Database = (function () {
function Database() {
class Database {
ref(path) {
return new Reference(path);
}
Database.prototype.ref = function (path) {
return new Reference(path);
};
return Database;
}());
}
database.Database = Database;
})(database = exports.database || (exports.database = {}));
})(database || (database = {}));

@@ -1,13 +0,10 @@

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.nextPushId = void 0;
exports.nextPushId = (function () {
var PUSH_CHARS = '-0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz';
var lastPushTime = 0;
var lastRandChars = [];
export const nextPushId = (function () {
const PUSH_CHARS = '-0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz';
let lastPushTime = 0;
const lastRandChars = [];
return function (now) {
var duplicateTime = now === lastPushTime;
const duplicateTime = now === lastPushTime;
lastPushTime = now;
var i;
var timeStampChars = new Array(8);
let i;
const timeStampChars = new Array(8);
for (i = 7; i >= 0; i--) {

@@ -17,3 +14,3 @@ timeStampChars[i] = PUSH_CHARS.charAt(now % 64);

}
var id = timeStampChars.join('');
let id = timeStampChars.join('');
if (!duplicateTime) {

@@ -20,0 +17,0 @@ for (i = 0; i < 12; i++) {

@@ -1,60 +0,42 @@

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.firestore = void 0;
var firebase = require("../../firebase");
var firestore;
import * as firebase from "../../firebase";
export var firestore;
(function (firestore) {
var Firestore = (function () {
function Firestore() {
class Firestore {
collection(collectionPath) {
return firebase.firestore.collection(collectionPath);
}
Firestore.prototype.collection = function (collectionPath) {
return firebase.firestore.collection(collectionPath);
};
Firestore.prototype.collectionGroup = function (id) {
collectionGroup(id) {
return firebase.firestore.collectionGroup(id);
};
Firestore.prototype.doc = function (path) {
}
doc(path) {
return firebase.firestore.docRef(path);
};
Firestore.prototype.FieldValue = function () {
}
FieldValue() {
return {
type: undefined,
value: undefined,
serverTimestamp: function () { return "SERVER_TIMESTAMP"; },
delete: function () { return "DELETE_FIELD"; },
arrayUnion: function () {
var elements = [];
for (var _i = 0; _i < arguments.length; _i++) {
elements[_i] = arguments[_i];
}
return new firebase.firestore.FieldValue("ARRAY_UNION", elements);
},
arrayRemove: function () {
var elements = [];
for (var _i = 0; _i < arguments.length; _i++) {
elements[_i] = arguments[_i];
}
return new firebase.firestore.FieldValue("ARRAY_REMOVE", elements);
},
increment: function (n) { return new firebase.firestore.FieldValue("INCREMENT", n); }
serverTimestamp: () => "SERVER_TIMESTAMP",
delete: () => "DELETE_FIELD",
arrayUnion: (...elements) => new firebase.firestore.FieldValue("ARRAY_UNION", elements),
arrayRemove: (...elements) => new firebase.firestore.FieldValue("ARRAY_REMOVE", elements),
increment: (n) => new firebase.firestore.FieldValue("INCREMENT", n)
};
};
Firestore.prototype.GeoPoint = function (latitude, longitude) {
}
GeoPoint(latitude, longitude) {
return firebase.firestore.GeoPoint(latitude, longitude);
};
Firestore.prototype.runTransaction = function (updateFunction) {
}
runTransaction(updateFunction) {
return firebase.firestore.runTransaction(updateFunction);
};
Firestore.prototype.batch = function () {
}
batch() {
return firebase.firestore.batch();
};
Firestore.prototype.settings = function (settings) {
}
settings(settings) {
firebase.firestore.settings(settings);
};
Firestore.prototype.clearPersistence = function () {
}
clearPersistence() {
return firebase.firestore.clearPersistence();
};
return Firestore;
}());
}
}
firestore.Firestore = Firestore;
})(firestore = exports.firestore || (exports.firestore = {}));
})(firestore || (firestore = {}));

@@ -1,16 +0,10 @@

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.functions = void 0;
var firebase = require("../../firebase");
var functions;
import * as firebase from "../../firebase";
export var functions;
(function (functions) {
var Functions = (function () {
function Functions() {
class Functions {
httpsCallable(functionName, region) {
return firebase.functions.httpsCallable(functionName, region);
}
Functions.prototype.httpsCallable = function (functionName, region) {
return firebase.functions.httpsCallable(functionName, region);
};
return Functions;
}());
}
functions.Functions = Functions;
})(functions = exports.functions || (exports.functions = {}));
})(functions || (functions = {}));

@@ -1,16 +0,12 @@

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.storage = exports.functions = exports.firestore = exports.database = exports.auth = exports.initializeApp = void 0;
var firebase = require("../firebase");
var auth_1 = require("./auth");
var database_1 = require("./database");
var firestore_1 = require("./firestore");
var storage_1 = require("./storage");
var functions_1 = require("./functions");
function initializeApp(options, name) {
import * as firebase from "../firebase";
import { auth as firebaseAuthModule } from "./auth";
import { database as firebaseDatabaseModule } from "./database";
import { firestore as firebaseFirestoreModule } from "./firestore";
import { storage as firebaseStorageModule } from "./storage";
import { functions as firebaseFunctionsModule } from "./functions";
export function initializeApp(options, name) {
return firebase.init(options);
}
exports.initializeApp = initializeApp;
var authCache;
function auth(app) {
let authCache;
export function auth(app) {
if (app) {

@@ -20,9 +16,8 @@ console.log("The 'app' param is ignored at the moment.");

if (!authCache) {
authCache = new auth_1.auth.Auth();
authCache = new firebaseAuthModule.Auth();
}
return authCache;
}
exports.auth = auth;
var dbCache;
function database(app) {
let dbCache;
export function database(app) {
if (app) {

@@ -32,9 +27,8 @@ console.log("The 'app' param is ignored at the moment.");

if (!dbCache) {
dbCache = new database_1.database.Database();
dbCache = new firebaseDatabaseModule.Database();
}
return dbCache;
}
exports.database = database;
var firestoreCache;
function firestore(app) {
let firestoreCache;
export function firestore(app) {
if (app) {

@@ -44,8 +38,7 @@ console.log("The 'app' param is ignored at the moment.");

if (!firestoreCache) {
firestoreCache = new firestore_1.firestore.Firestore();
firestoreCache = new firebaseFirestoreModule.Firestore();
}
return firestoreCache;
}
exports.firestore = firestore;
var functionsCache;
let functionsCache;
(function (database) {

@@ -56,4 +49,4 @@ function enableLogging(logger, persistent) {

database.enableLogging = enableLogging;
})(database = exports.database || (exports.database = {}));
function functions(app) {
})(database || (database = {}));
export function functions(app) {
if (app) {

@@ -63,9 +56,8 @@ console.log("The 'app' param is ignored at the moment.");

if (!functionsCache) {
functionsCache = new functions_1.functions.Functions();
functionsCache = new firebaseFunctionsModule.Functions();
}
return functionsCache;
}
exports.functions = functions;
var storageCache;
function storage(app) {
let storageCache;
export function storage(app) {
if (app) {

@@ -75,6 +67,5 @@ console.log("The 'app' param is ignored at the moment.");

if (!storageCache) {
storageCache = new storage_1.storage.Storage();
storageCache = new firebaseStorageModule.Storage();
}
return storageCache;
}
exports.storage = storage;

@@ -1,10 +0,7 @@

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.storage = void 0;
var file_system_1 = require("@nativescript/core/file-system");
var firebaseStorage = require("../../storage/storage");
var storage;
import { File } from "@nativescript/core/file-system";
import * as firebaseStorage from "../../storage/storage";
export var storage;
(function (storage) {
var Reference = (function () {
function Reference(path) {
class Reference {
constructor(path) {
this.fullPath = this.path;

@@ -19,37 +16,36 @@ this.path = path;

}
Reference.prototype.child = function (path) {
return new Reference(this.path ? this.path + "/" + path : path);
};
Reference.prototype.delete = function () {
child(path) {
return new Reference(this.path ? `${this.path}/${path}` : path);
}
delete() {
return firebaseStorage.deleteFile({
remoteFullPath: this.path
});
};
Reference.prototype.getDownloadURL = function () {
}
getDownloadURL() {
return firebaseStorage.getDownloadUrl({
remoteFullPath: this.path
});
};
Reference.prototype.getMetadata = function () {
}
getMetadata() {
return firebaseStorage.getDownloadUrl({
remoteFullPath: this.path
});
};
Reference.prototype.listAll = function () {
}
listAll() {
return firebaseStorage.listAll({
remoteFullPath: this.path
});
};
Reference.prototype.put = function (data, metadata) {
var _this = this;
return new Promise(function (resolve, reject) {
}
put(data, metadata) {
return new Promise((resolve, reject) => {
firebaseStorage.uploadFile({
localFile: data instanceof file_system_1.File ? data : undefined,
localFullPath: !(data instanceof file_system_1.File) ? data : undefined,
remoteFullPath: _this.path,
onProgress: function (progress) { return console.log("Upload progress: " + progress.percentageCompleted + "% completed"); },
metadata: metadata
}).then(function (result) {
_this.getDownloadURL()
.then(function (url) {
localFile: data instanceof File ? data : undefined,
localFullPath: !(data instanceof File) ? data : undefined,
remoteFullPath: this.path,
onProgress: progress => console.log(`Upload progress: ${progress.percentageCompleted}% completed`),
metadata
}).then((result) => {
this.getDownloadURL()
.then(url => {
resolve({

@@ -60,6 +56,6 @@ downloadURL: url,

});
}).catch(function (err) { return reject(err); });
}).catch(err => reject(err));
});
};
Reference.prototype.download = function (downloadToPath) {
}
download(downloadToPath) {
return firebaseStorage.downloadFile({

@@ -69,15 +65,11 @@ localFullPath: downloadToPath,

});
};
return Reference;
}());
}
}
storage.Reference = Reference;
var Storage = (function () {
function Storage() {
class Storage {
ref() {
return new Reference();
}
Storage.prototype.ref = function () {
return new Reference();
};
return Storage;
}());
}
storage.Storage = Storage;
})(storage = exports.storage || (exports.storage = {}));
})(storage || (storage = {}));

@@ -1,4 +0,1 @@

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.ENABLE_CRASHLYTICS_HINT = void 0;
exports.ENABLE_CRASHLYTICS_HINT = "⚠️ You're calling a Crashlytics function but have not enabled it. Please add 'crashlytics: true' to 'firebase.nativescript.json' and remove the 'node_modules' and 'platforms' folders.";
export const ENABLE_CRASHLYTICS_HINT = "⚠️ You're calling a Crashlytics function but have not enabled it. Please add 'crashlytics: true' to 'firebase.nativescript.json' and remove the 'node_modules' and 'platforms' folders.";

@@ -1,7 +0,4 @@

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.setCrashlyticsCollectionEnabled = exports.crash = exports.setUserId = exports.setDouble = exports.setInt = exports.setFloat = exports.setBool = exports.setString = exports.log = exports.sendCrashLog = void 0;
var crashlytics_common_1 = require("./crashlytics-common");
var appModule = require("@nativescript/core/application");
function sendCrashLog(exception) {
import { ENABLE_CRASHLYTICS_HINT } from "./crashlytics-common";
import * as appModule from '@nativescript/core/application';
export function sendCrashLog(exception) {
if (isCrashlyticsAvailable()) {

@@ -11,4 +8,3 @@ com.crashlytics.android.Crashlytics.logException(exception);

}
exports.sendCrashLog = sendCrashLog;
function log(msg, tag, priority) {
export function log(msg, tag, priority) {
if (isCrashlyticsAvailable()) {

@@ -23,4 +19,3 @@ if (tag && priority) {

}
exports.log = log;
function setString(key, value) {
export function setString(key, value) {
if (isCrashlyticsAvailable()) {

@@ -30,4 +25,3 @@ com.crashlytics.android.Crashlytics.setString(key, value);

}
exports.setString = setString;
function setBool(key, value) {
export function setBool(key, value) {
if (isCrashlyticsAvailable()) {

@@ -37,4 +31,3 @@ com.crashlytics.android.Crashlytics.setBool(key, value);

}
exports.setBool = setBool;
function setFloat(key, value) {
export function setFloat(key, value) {
if (isCrashlyticsAvailable()) {

@@ -44,4 +37,3 @@ com.crashlytics.android.Crashlytics.setFloat(key, value);

}
exports.setFloat = setFloat;
function setInt(key, value) {
export function setInt(key, value) {
if (isCrashlyticsAvailable()) {

@@ -51,4 +43,3 @@ com.crashlytics.android.Crashlytics.setInt(key, value);

}
exports.setInt = setInt;
function setDouble(key, value) {
export function setDouble(key, value) {
if (isCrashlyticsAvailable()) {

@@ -58,4 +49,3 @@ com.crashlytics.android.Crashlytics.setDouble(key, value);

}
exports.setDouble = setDouble;
function setUserId(id) {
export function setUserId(id) {
if (isCrashlyticsAvailable()) {

@@ -65,4 +55,3 @@ com.crashlytics.android.Crashlytics.setUserIdentifier(id);

}
exports.setUserId = setUserId;
function crash() {
export function crash() {
if (isCrashlyticsAvailable()) {

@@ -72,4 +61,3 @@ com.crashlytics.android.Crashlytics.getInstance().crash();

}
exports.crash = crash;
function setCrashlyticsCollectionEnabled(enabled) {
export function setCrashlyticsCollectionEnabled(enabled) {
if (isCrashlyticsAvailable()) {

@@ -79,6 +67,5 @@ io.fabric.sdk.android.Fabric.with(appModule.getNativeApplication(), [new com.crashlytics.android.Crashlytics()]);

}
exports.setCrashlyticsCollectionEnabled = setCrashlyticsCollectionEnabled;
function isCrashlyticsAvailable() {
if (typeof (com.crashlytics) === "undefined" || typeof (com.crashlytics.android.Crashlytics) === "undefined") {
console.log(crashlytics_common_1.ENABLE_CRASHLYTICS_HINT);
console.log(ENABLE_CRASHLYTICS_HINT);
return false;

@@ -85,0 +72,0 @@ }

@@ -1,6 +0,3 @@

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.setCrashlyticsCollectionEnabled = exports.crash = exports.setUserId = exports.setDouble = exports.setInt = exports.setFloat = exports.setBool = exports.setString = exports.log = exports.sendCrashLog = void 0;
var crashlytics_common_1 = require("./crashlytics-common");
function sendCrashLog(exception) {
import { ENABLE_CRASHLYTICS_HINT } from "./crashlytics-common";
export function sendCrashLog(exception) {
if (isCrashlyticsAvailable()) {

@@ -10,4 +7,3 @@ Crashlytics.sharedInstance().recordError(exception);

}
exports.sendCrashLog = sendCrashLog;
function log(msg, tag, priority) {
export function log(msg, tag, priority) {
if (isCrashlyticsAvailable()) {

@@ -22,4 +18,3 @@ if (tag) {

}
exports.log = log;
function setString(key, value) {
export function setString(key, value) {
if (isCrashlyticsAvailable()) {

@@ -29,4 +24,3 @@ Crashlytics.sharedInstance().setObjectValueForKey(value, key);

}
exports.setString = setString;
function setBool(key, value) {
export function setBool(key, value) {
if (isCrashlyticsAvailable()) {

@@ -36,4 +30,3 @@ Crashlytics.sharedInstance().setBoolValueForKey(value, key);

}
exports.setBool = setBool;
function setFloat(key, value) {
export function setFloat(key, value) {
if (isCrashlyticsAvailable()) {

@@ -43,4 +36,3 @@ Crashlytics.sharedInstance().setFloatValueForKey(value, key);

}
exports.setFloat = setFloat;
function setInt(key, value) {
export function setInt(key, value) {
if (isCrashlyticsAvailable()) {

@@ -50,4 +42,3 @@ Crashlytics.sharedInstance().setIntValueForKey(value, key);

}
exports.setInt = setInt;
function setDouble(key, value) {
export function setDouble(key, value) {
if (isCrashlyticsAvailable()) {

@@ -57,4 +48,3 @@ Crashlytics.sharedInstance().setFloatValueForKey(value, key);

}
exports.setDouble = setDouble;
function setUserId(id) {
export function setUserId(id) {
if (isCrashlyticsAvailable()) {

@@ -64,4 +54,3 @@ Crashlytics.sharedInstance().setUserIdentifier(id);

}
exports.setUserId = setUserId;
function crash() {
export function crash() {
if (isCrashlyticsAvailable()) {

@@ -72,4 +61,3 @@ Crashlytics.sharedInstance().crash();

}
exports.crash = crash;
function setCrashlyticsCollectionEnabled(enabled) {
export function setCrashlyticsCollectionEnabled(enabled) {
if (isCrashlyticsAvailable()) {

@@ -79,6 +67,5 @@ Fabric.with(NSArray.arrayWithObject(Crashlytics.class()));

}
exports.setCrashlyticsCollectionEnabled = setCrashlyticsCollectionEnabled;
function isCrashlyticsAvailable() {
if (typeof (Crashlytics) === "undefined") {
console.log(crashlytics_common_1.ENABLE_CRASHLYTICS_HINT);
console.log(ENABLE_CRASHLYTICS_HINT);
return false;

@@ -85,0 +72,0 @@ }

@@ -1,5 +0,2 @@

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.crashlytics = void 0;
var crashlytz = require("./crashlytics");
exports.crashlytics = crashlytz;
import * as crashlytz from "./crashlytics";
export const crashlytics = crashlytz;

@@ -1,46 +0,27 @@

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.isDocumentReference = exports.DocumentSnapshot = exports.firebase = exports.GeoPoint = exports.FieldValue = void 0;
var dialogs_1 = require("@nativescript/core/ui/dialogs");
var application_settings_1 = require("@nativescript/core/application-settings");
var admob = require("./admob/admob");
var analytics = require("./analytics/analytics");
var crashlytics = require("./crashlytics/crashlytics");
var performance = require("./performance/performance");
var storage = require("./storage/storage");
var mlkit = require("./mlkit");
var FieldValue = (function () {
function FieldValue(type, value) {
import { prompt } from "@nativescript/core/ui/dialogs";
import { getString, setString } from "@nativescript/core/application-settings";
import * as admob from "./admob/admob";
import * as analytics from "./analytics/analytics";
import * as crashlytics from "./crashlytics/crashlytics";
import * as performance from "./performance/performance";
import * as storage from "./storage/storage";
import * as mlkit from "./mlkit";
export class FieldValue {
constructor(type, value) {
this.type = type;
this.value = value;
}
FieldValue.serverTimestamp = function () { return "SERVER_TIMESTAMP"; };
FieldValue.delete = function () { return "DELETE_FIELD"; };
FieldValue.arrayUnion = function () {
var elements = [];
for (var _i = 0; _i < arguments.length; _i++) {
elements[_i] = arguments[_i];
}
return new FieldValue("ARRAY_UNION", elements);
};
FieldValue.arrayRemove = function () {
var elements = [];
for (var _i = 0; _i < arguments.length; _i++) {
elements[_i] = arguments[_i];
}
return new FieldValue("ARRAY_REMOVE", elements);
};
FieldValue.increment = function (n) { return new exports.firebase.firestore.FieldValue("INCREMENT", n); };
return FieldValue;
}());
exports.FieldValue = FieldValue;
var GeoPoint = (function () {
function GeoPoint(latitude, longitude) {
}
FieldValue.serverTimestamp = () => "SERVER_TIMESTAMP";
FieldValue.delete = () => "DELETE_FIELD";
FieldValue.arrayUnion = (...elements) => new FieldValue("ARRAY_UNION", elements);
FieldValue.arrayRemove = (...elements) => new FieldValue("ARRAY_REMOVE", elements);
FieldValue.increment = (n) => new firebase.firestore.FieldValue("INCREMENT", n);
export class GeoPoint {
constructor(latitude, longitude) {
this.latitude = latitude;
this.longitude = longitude;
}
return GeoPoint;
}());
exports.GeoPoint = GeoPoint;
exports.firebase = {
}
export const firebase = {
initialized: false,

@@ -53,11 +34,11 @@ instance: null,

_dynamicLinkCallback: null,
admob: admob,
analytics: analytics,
crashlytics: crashlytics,
performance: performance,
storage: storage,
mlkit: mlkit,
admob,
analytics,
crashlytics,
performance,
storage,
mlkit,
firestore: {
FieldValue: FieldValue,
GeoPoint: function (latitude, longitude) { return new GeoPoint(latitude, longitude); }
FieldValue,
GeoPoint: (latitude, longitude) => new GeoPoint(latitude, longitude)
},

@@ -104,12 +85,12 @@ dynamicLinks: {

},
addAuthStateListener: function (listener) {
if (exports.firebase.authStateListeners.indexOf(listener) === -1) {
exports.firebase.authStateListeners.push(listener);
addAuthStateListener: listener => {
if (firebase.authStateListeners.indexOf(listener) === -1) {
firebase.authStateListeners.push(listener);
}
return true;
},
removeAuthStateListener: function (listener) {
var index = exports.firebase.authStateListeners.indexOf(listener);
removeAuthStateListener: listener => {
const index = firebase.authStateListeners.indexOf(listener);
if (index >= 0) {
exports.firebase.authStateListeners.splice(index, 1);
firebase.authStateListeners.splice(index, 1);
return true;

@@ -121,7 +102,7 @@ }

},
hasAuthStateListener: function (listener) {
return exports.firebase.authStateListeners.indexOf(listener) >= 0;
hasAuthStateListener: listener => {
return firebase.authStateListeners.indexOf(listener) >= 0;
},
notifyAuthStateListeners: function (data) {
exports.firebase.authStateListeners.forEach(function (listener) {
notifyAuthStateListeners: data => {
firebase.authStateListeners.forEach(listener => {
try {

@@ -143,9 +124,9 @@ if (listener.thisArg) {

},
rememberEmailForEmailLinkLogin: function (email) {
application_settings_1.setString("FirebasePlugin.EmailLinkLogin", email);
rememberEmailForEmailLinkLogin: (email) => {
setString("FirebasePlugin.EmailLinkLogin", email);
},
getRememberedEmailForEmailLinkLogin: function () {
return application_settings_1.getString("FirebasePlugin.EmailLinkLogin");
getRememberedEmailForEmailLinkLogin: () => {
return getString("FirebasePlugin.EmailLinkLogin");
},
strongTypeify: function (value) {
strongTypeify: value => {
if (value === "true") {

@@ -165,8 +146,8 @@ value = true;

},
requestPhoneAuthVerificationCode: function (onUserResponse, verificationPrompt) {
requestPhoneAuthVerificationCode: (onUserResponse, verificationPrompt) => {
if (verificationPrompt.promise) {
verificationPrompt.promise().then(function (result) { return onUserResponse(result); });
verificationPrompt.promise().then(result => onUserResponse(result));
}
else {
dialogs_1.prompt(verificationPrompt || "Verification code").then(function (promptResult) {
prompt(verificationPrompt || "Verification code").then(promptResult => {
if (!promptResult.result) {

@@ -181,3 +162,3 @@ onUserResponse(undefined);

},
moveLoginOptionsToObjects: function (loginOptions) {
moveLoginOptionsToObjects: loginOptions => {
if (loginOptions.email) {

@@ -229,7 +210,7 @@ console.log("Please update your code: the 'email' property is deprecated and now expected at 'passwordOptions.email'");

},
merge: function (obj1, obj2) {
var result = {};
for (var i in obj1) {
merge: (obj1, obj2) => {
const result = {};
for (let i in obj1) {
if ((i in obj2) && (typeof obj1[i] === "object") && (i !== null)) {
result[i] = exports.firebase.merge(obj1[i], obj2[i]);
result[i] = firebase.merge(obj1[i], obj2[i]);
}

@@ -240,3 +221,3 @@ else {

}
for (var i in obj2) {
for (let i in obj2) {
if (i in result) {

@@ -250,15 +231,12 @@ continue;

};
var DocumentSnapshot = (function () {
function DocumentSnapshot(id, exists, documentData, ref) {
export class DocumentSnapshot {
constructor(id, exists, documentData, ref) {
this.id = id;
this.exists = exists;
this.ref = ref;
this.data = function () { return exists ? documentData : undefined; };
this.data = () => exists ? documentData : undefined;
}
return DocumentSnapshot;
}());
exports.DocumentSnapshot = DocumentSnapshot;
function isDocumentReference(object) {
}
export function isDocumentReference(object) {
return object && object.discriminator === "docRef";
}
exports.isDocumentReference = isDocumentReference;

@@ -1,18 +0,14 @@

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.useFunctionsEmulator = exports.httpsCallable = void 0;
var firebase_common_1 = require("../firebase-common");
function httpsCallable(functionName, region) {
if (region === void 0) { region = "us-central1"; }
var instance = com.google.firebase.functions.FirebaseFunctions.getInstance(region);
return function (data) { return new Promise(function (resolve, reject) {
var actData = firebase_common_1.firebase.toValue(data);
import { firebase as firebaseCommon } from "../firebase-common";
export function httpsCallable(functionName, region = "us-central1") {
const instance = com.google.firebase.functions.FirebaseFunctions.getInstance(region);
return (data) => new Promise((resolve, reject) => {
const actData = firebaseCommon.toValue(data);
return instance.getHttpsCallable(functionName)
.call(actData)
.continueWith(new com.google.android.gms.tasks.Continuation({
then: function (task) {
then: (task) => {
try {
var result = task.getResult();
var resultData = result.getData();
resolve(firebase_common_1.firebase.toJsObject(resultData));
const result = task.getResult();
const resultData = result.getData();
resolve(firebaseCommon.toJsObject(resultData));
}

@@ -25,9 +21,7 @@ catch (e) {

}));
}); };
});
}
exports.httpsCallable = httpsCallable;
function useFunctionsEmulator(origin) {
export function useFunctionsEmulator(origin) {
com.google.firebase.functions.FirebaseFunctions.getInstance()
.useFunctionsEmulator(origin);
}
exports.useFunctionsEmulator = useFunctionsEmulator;

@@ -1,6 +0,3 @@

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.useFunctionsEmulator = exports.httpsCallable = void 0;
var utils_1 = require("../utils");
var functions;
import { firebaseUtils } from '../utils';
let functions;
function getFunctions(region) {

@@ -12,7 +9,7 @@ if (!functions) {

}
function httpsCallable(functionName, region) {
var functions = getFunctions(region);
return function (data) { return new Promise(function (resolve, reject) {
var callable = functions.HTTPSCallableWithName(functionName);
var handleCompletion = function (result, err) {
export function httpsCallable(functionName, region) {
const functions = getFunctions(region);
return (data) => new Promise((resolve, reject) => {
const callable = functions.HTTPSCallableWithName(functionName);
const handleCompletion = (result, err) => {
if (err) {

@@ -23,3 +20,3 @@ reject(err.localizedDescription);

if (result) {
resolve(utils_1.firebaseUtils.toJsObject(result.data));
resolve(firebaseUtils.toJsObject(result.data));
}

@@ -33,9 +30,7 @@ };

}
}); };
});
}
exports.httpsCallable = httpsCallable;
function useFunctionsEmulator(origin) {
var functions = getFunctions();
export function useFunctionsEmulator(origin) {
const functions = getFunctions();
functions.useFunctionsEmulatorOrigin(origin);
}
exports.useFunctionsEmulator = useFunctionsEmulator;

@@ -1,5 +0,2 @@

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.functions = void 0;
var callableFns = require("./functions");
exports.functions = callableFns;
import * as callableFns from "./functions";
export const functions = callableFns;

@@ -1,7 +0,4 @@

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.triggerEvent = exports.onMessageImpression = exports.onMessageClicked = void 0;
function onMessageClicked(callback) {
var listener = new com.google.firebase.inappmessaging.FirebaseInAppMessagingClickListener({
messageClicked: function (message, action) {
export function onMessageClicked(callback) {
const listener = new com.google.firebase.inappmessaging.FirebaseInAppMessagingClickListener({
messageClicked: (message, action) => {
callback({

@@ -14,6 +11,5 @@ campaignName: message.getCampaignName()

}
exports.onMessageClicked = onMessageClicked;
function onMessageImpression(callback) {
var listener = new com.google.firebase.inappmessaging.FirebaseInAppMessagingImpressionListener({
impressionDetected: function (message) {
export function onMessageImpression(callback) {
const listener = new com.google.firebase.inappmessaging.FirebaseInAppMessagingImpressionListener({
impressionDetected: (message) => {
callback({

@@ -26,6 +22,4 @@ campaignName: message.getCampaignName()

}
exports.onMessageImpression = onMessageImpression;
function triggerEvent(eventName) {
export function triggerEvent(eventName) {
com.google.firebase.inappmessaging.FirebaseInAppMessaging.getInstance().triggerEvent(eventName);
}
exports.triggerEvent = triggerEvent;

@@ -1,19 +0,13 @@

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.triggerEvent = exports.onMessageImpression = exports.onMessageClicked = void 0;
var _firInAppMessagingDisplayDelegate;
function onMessageClicked(callback) {
let _firInAppMessagingDisplayDelegate;
export function onMessageClicked(callback) {
ensureDelegate();
_firInAppMessagingDisplayDelegate.setOnMessageClickedCallback(callback);
}
exports.onMessageClicked = onMessageClicked;
function onMessageImpression(callback) {
export function onMessageImpression(callback) {
ensureDelegate();
_firInAppMessagingDisplayDelegate.setOnMessageImpressionCallback(callback);
}
exports.onMessageImpression = onMessageImpression;
function triggerEvent(eventName) {
export function triggerEvent(eventName) {
FIRInAppMessaging.inAppMessaging().triggerEvent(eventName);
}
exports.triggerEvent = triggerEvent;
function ensureDelegate() {

@@ -24,23 +18,19 @@ if (!_firInAppMessagingDisplayDelegate) {

}
var FIRInAppMessagingDisplayDelegateImpl = (function (_super) {
__extends(FIRInAppMessagingDisplayDelegateImpl, _super);
function FIRInAppMessagingDisplayDelegateImpl() {
return _super !== null && _super.apply(this, arguments) || this;
}
FIRInAppMessagingDisplayDelegateImpl.new = function () {
class FIRInAppMessagingDisplayDelegateImpl extends NSObject {
static new() {
if (FIRInAppMessagingDisplayDelegateImpl.ObjCProtocols.length === 0 && typeof (FIRInAppMessagingDisplayDelegate) !== "undefined") {
FIRInAppMessagingDisplayDelegateImpl.ObjCProtocols.push(FIRInAppMessagingDisplayDelegate);
}
return _super.new.call(this);
};
FIRInAppMessagingDisplayDelegateImpl.prototype.setOnMessageClickedCallback = function (callback) {
return super.new();
}
setOnMessageClickedCallback(callback) {
this.onMessageClickedCallback = callback;
};
FIRInAppMessagingDisplayDelegateImpl.prototype.setOnMessageImpressionCallback = function (callback) {
}
setOnMessageImpressionCallback(callback) {
this.onMessageImpressionCallback = callback;
};
FIRInAppMessagingDisplayDelegateImpl.prototype.displayErrorForMessageError = function (inAppMessage, error) {
}
displayErrorForMessageError(inAppMessage, error) {
console.log("InAppMessaging error: " + error.localizedDescription);
};
FIRInAppMessagingDisplayDelegateImpl.prototype.impressionDetectedForMessage = function (inAppMessage) {
}
impressionDetectedForMessage(inAppMessage) {
console.log("InAppMessaging impression");

@@ -50,4 +40,4 @@ this.onMessageImpressionCallback && this.onMessageImpressionCallback({

});
};
FIRInAppMessagingDisplayDelegateImpl.prototype.messageClicked = function (inAppMessage) {
}
messageClicked(inAppMessage) {
console.log("InAppMessaging clicked");

@@ -57,4 +47,4 @@ this.onMessageClickedCallback && this.onMessageClickedCallback({

});
};
FIRInAppMessagingDisplayDelegateImpl.prototype.messageClickedWithAction = function (inAppMessage, action) {
}
messageClickedWithAction(inAppMessage, action) {
console.log("InAppMessaging clicked with action, text: " + action.actionText + ", url: " + action.actionURL);

@@ -66,8 +56,7 @@ this.onMessageClickedCallback && this.onMessageClickedCallback({

});
};
FIRInAppMessagingDisplayDelegateImpl.prototype.messageDismissedDismissType = function (inAppMessage, dismissType) {
}
messageDismissedDismissType(inAppMessage, dismissType) {
console.log("InAppMessaging dismissed");
};
FIRInAppMessagingDisplayDelegateImpl.ObjCProtocols = [];
return FIRInAppMessagingDisplayDelegateImpl;
}(NSObject));
}
}
FIRInAppMessagingDisplayDelegateImpl.ObjCProtocols = [];

@@ -1,5 +0,2 @@

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.inappmessaging = void 0;
var inappmessage = require("./inappmessaging");
exports.inappmessaging = inappmessage;
import * as inappmessage from "./inappmessaging";
export const inappmessaging = inappmessage;

@@ -1,5 +0,2 @@

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.messaging = void 0;
var msging = require("./messaging");
exports.messaging = msging;
import * as msging from "./messaging";
export const messaging = msging;

@@ -1,17 +0,14 @@

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.areNotificationsEnabled = exports.unsubscribeFromTopic = exports.subscribeToTopic = exports.unregisterForPushNotifications = exports.registerForPushNotifications = exports.addOnPushTokenReceivedCallback = exports.addOnMessageReceivedCallback = exports.getCurrentPushToken = exports.registerForInteractivePush = exports.onAppModuleResumeEvent = exports.onAppModuleLaunchEvent = exports.initFirebaseMessaging = void 0;
var firebase_common_1 = require("../firebase-common");
var appModule = require("@nativescript/core/application");
var application = require("@nativescript/core/application");
var NotificationManagerCompatClass = useAndroidX() ? global.androidx.core.app.NotificationManagerCompat : android.support.v4.app.NotificationManagerCompat;
var _launchNotification = null;
var _senderId = null;
import { firebase } from "../firebase-common";
import * as appModule from "@nativescript/core/application";
import * as application from "@nativescript/core/application";
const NotificationManagerCompatClass = useAndroidX() ? global.androidx.core.app.NotificationManagerCompat : android.support.v4.app.NotificationManagerCompat;
let _launchNotification = null;
let _senderId = null;
function getSenderId() {
return new Promise(function (resolve, reject) {
return new Promise((resolve, reject) => {
if (_senderId !== null) {
resolve(_senderId);
}
var setSenderIdAndResolve = function () {
var senderIdResourceId = application.android.context.getResources().getIdentifier("gcm_defaultSenderId", "string", application.android.context.getPackageName());
const setSenderIdAndResolve = () => {
const senderIdResourceId = application.android.context.getResources().getIdentifier("gcm_defaultSenderId", "string", application.android.context.getPackageName());
if (senderIdResourceId === 0) {

@@ -24,3 +21,3 @@ throw new Error("####################### Seems like you did not include 'google-services.json' in your project! Firebase Messaging will not work properly. #######################");

if (!application.android.context) {
appModule.on(appModule.launchEvent, function () { return setSenderIdAndResolve(); });
appModule.on(appModule.launchEvent, () => setSenderIdAndResolve());
}

@@ -32,3 +29,3 @@ else {

}
function initFirebaseMessaging(options) {
export function initFirebaseMessaging(options) {
if (!options) {

@@ -44,30 +41,28 @@ return;

}
exports.initFirebaseMessaging = initFirebaseMessaging;
function onAppModuleLaunchEvent(args) {
export function onAppModuleLaunchEvent(args) {
org.nativescript.plugins.firebase.FirebasePluginLifecycleCallbacks.registerCallbacks(appModule.android.nativeApp);
}
exports.onAppModuleLaunchEvent = onAppModuleLaunchEvent;
function onAppModuleResumeEvent(args) {
var intent = args.android.getIntent();
var extras = intent.getExtras();
export function onAppModuleResumeEvent(args) {
const intent = args.android.getIntent();
const extras = intent.getExtras();
if (extras !== null && extras.keySet().contains("from")) {
var result_1 = {
let result = {
foreground: false,
data: {}
};
var iterator = extras.keySet().iterator();
const iterator = extras.keySet().iterator();
while (iterator.hasNext()) {
var key = iterator.next();
const key = iterator.next();
if (key !== "from" && key !== "collapse_key") {
result_1[key] = extras.get(key);
result_1.data[key] = extras.get(key);
result[key] = extras.get(key);
result.data[key] = extras.get(key);
}
}
intent.removeExtra("from");
if (firebase_common_1.firebase._receivedNotificationCallback === null) {
_launchNotification = result_1;
if (firebase._receivedNotificationCallback === null) {
_launchNotification = result;
}
else {
setTimeout(function () {
firebase_common_1.firebase._receivedNotificationCallback(result_1);
setTimeout(() => {
firebase._receivedNotificationCallback(result);
});

@@ -77,9 +72,7 @@ }

}
exports.onAppModuleResumeEvent = onAppModuleResumeEvent;
function registerForInteractivePush(model) {
export function registerForInteractivePush(model) {
console.log("'registerForInteractivePush' is not currently implemented on Android");
}
exports.registerForInteractivePush = registerForInteractivePush;
function getCurrentPushToken() {
return new Promise(function (resolve, reject) {
export function getCurrentPushToken() {
return new Promise((resolve, reject) => {
try {

@@ -90,6 +83,6 @@ if (typeof (com.google.firebase.messaging || com.google.firebase.iid) === "undefined") {

}
getSenderId().then(function (senderId) {
getSenderId().then(senderId => {
org.nativescript.plugins.firebase.FirebasePlugin.getCurrentPushToken(senderId, new org.nativescript.plugins.firebase.FirebasePluginListener({
success: function (token) { return resolve(token); },
error: function (err) { return reject(err); }
success: token => resolve(token),
error: err => reject(err)
}));

@@ -104,10 +97,9 @@ });

}
exports.getCurrentPushToken = getCurrentPushToken;
function addOnMessageReceivedCallback(callback) {
return new Promise(function (resolve, reject) {
export function addOnMessageReceivedCallback(callback) {
return new Promise((resolve, reject) => {
try {
firebase_common_1.firebase._receivedNotificationCallback = callback;
firebase._receivedNotificationCallback = callback;
org.nativescript.plugins.firebase.FirebasePlugin.setOnNotificationReceivedCallback(new org.nativescript.plugins.firebase.FirebasePluginListener({
success: function (notification) { return callback(JSON.parse(notification)); },
error: function (err) { return console.log("Error handling message: " + err); }
success: notification => callback(JSON.parse(notification)),
error: err => console.log("Error handling message: " + err)
}));

@@ -126,20 +118,19 @@ if (_launchNotification !== null) {

}
exports.addOnMessageReceivedCallback = addOnMessageReceivedCallback;
function addOnPushTokenReceivedCallback(callback) {
return new Promise(function (resolve, reject) {
export function addOnPushTokenReceivedCallback(callback) {
return new Promise((resolve, reject) => {
try {
var tokenReturned_1 = false;
let tokenReturned = false;
org.nativescript.plugins.firebase.FirebasePlugin.setOnPushTokenReceivedCallback(new org.nativescript.plugins.firebase.FirebasePluginListener({
success: function (token) {
tokenReturned_1 = true;
success: token => {
tokenReturned = true;
callback(token);
},
error: function (err) { return console.log("addOnPushTokenReceivedCallback error: " + err); }
error: err => console.log("addOnPushTokenReceivedCallback error: " + err)
}));
setTimeout(function () {
if (!tokenReturned_1) {
getSenderId().then(function (senderId) {
setTimeout(() => {
if (!tokenReturned) {
getSenderId().then(senderId => {
org.nativescript.plugins.firebase.FirebasePlugin.getCurrentPushToken(senderId, new org.nativescript.plugins.firebase.FirebasePluginListener({
success: function (token) { return callback(token); },
error: function (err) { return console.log(err); }
success: token => callback(token),
error: err => console.log(err)
}));

@@ -157,5 +148,4 @@ });

}
exports.addOnPushTokenReceivedCallback = addOnPushTokenReceivedCallback;
function registerForPushNotifications(options) {
return new Promise(function (resolve, reject) {
export function registerForPushNotifications(options) {
return new Promise((resolve, reject) => {
try {

@@ -168,7 +158,7 @@ if (typeof (com.google.firebase.messaging) === "undefined") {

getSenderId()
.then(function (senderId) {
.then(senderId => {
org.nativescript.plugins.firebase.FirebasePlugin.registerForPushNotifications(senderId);
resolve();
})
.catch(function (e) { return reject(e); });
.catch(e => reject(e));
}

@@ -181,5 +171,4 @@ catch (ex) {

}
exports.registerForPushNotifications = registerForPushNotifications;
function unregisterForPushNotifications() {
return new Promise(function (resolve, reject) {
export function unregisterForPushNotifications() {
return new Promise((resolve, reject) => {
try {

@@ -190,3 +179,3 @@ if (typeof (com.google.firebase.messaging) === "undefined") {

}
getSenderId().then(function (senderId) { return org.nativescript.plugins.firebase.FirebasePlugin.unregisterForPushNotifications(senderId); });
getSenderId().then(senderId => org.nativescript.plugins.firebase.FirebasePlugin.unregisterForPushNotifications(senderId));
resolve();

@@ -200,5 +189,4 @@ }

}
exports.unregisterForPushNotifications = unregisterForPushNotifications;
function subscribeToTopic(topicName) {
return new Promise(function (resolve, reject) {
export function subscribeToTopic(topicName) {
return new Promise((resolve, reject) => {
try {

@@ -209,4 +197,4 @@ if (typeof (com.google.firebase.messaging) === "undefined") {

}
var onCompleteListener = new com.google.android.gms.tasks.OnCompleteListener({
onComplete: function (task) { return task.isSuccessful() ? resolve() : reject(task.getException() && task.getException().getReason ? task.getException().getReason() : task.getException()); }
const onCompleteListener = new com.google.android.gms.tasks.OnCompleteListener({
onComplete: task => task.isSuccessful() ? resolve() : reject(task.getException() && task.getException().getReason ? task.getException().getReason() : task.getException())
});

@@ -223,5 +211,4 @@ com.google.firebase.messaging.FirebaseMessaging.getInstance()

}
exports.subscribeToTopic = subscribeToTopic;
function unsubscribeFromTopic(topicName) {
return new Promise(function (resolve, reject) {
export function unsubscribeFromTopic(topicName) {
return new Promise((resolve, reject) => {
try {

@@ -232,4 +219,4 @@ if (typeof (com.google.firebase.messaging) === "undefined") {

}
var onCompleteListener = new com.google.android.gms.tasks.OnCompleteListener({
onComplete: function (task) { return task.isSuccessful() ? resolve() : reject(task.getException() && task.getException().getReason ? task.getException().getReason() : task.getException()); }
const onCompleteListener = new com.google.android.gms.tasks.OnCompleteListener({
onComplete: task => task.isSuccessful() ? resolve() : reject(task.getException() && task.getException().getReason ? task.getException().getReason() : task.getException())
});

@@ -246,8 +233,7 @@ com.google.firebase.messaging.FirebaseMessaging.getInstance()

}
exports.unsubscribeFromTopic = unsubscribeFromTopic;
function useAndroidX() {
return global.androidx && global.androidx.appcompat;
}
function areNotificationsEnabled() {
var androidSdkVersion = android.os.Build.VERSION.SDK_INT;
export function areNotificationsEnabled() {
const androidSdkVersion = android.os.Build.VERSION.SDK_INT;
if (androidSdkVersion >= 24) {

@@ -261,2 +247,1 @@ return NotificationManagerCompatClass.from(application.android.context).areNotificationsEnabled();

}
exports.areNotificationsEnabled = areNotificationsEnabled;

@@ -1,26 +0,23 @@

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.areNotificationsEnabled = exports.NotificationActionResponse = exports.PushNotificationModel = exports.IosPushSettings = exports.IosInteractiveNotificationActionOptions = exports.IosInteractivePushSettings = exports.onTokenRefreshNotification = exports.unsubscribeFromTopic = exports.subscribeToTopic = exports.prepAppDelegate = exports.registerForInteractivePush = exports.addBackgroundRemoteNotificationHandler = exports.addOnPushTokenReceivedCallback = exports.handleRemoteNotification = exports.unregisterForPushNotifications = exports.registerForPushNotifications = exports.getCurrentPushToken = exports.addOnMessageReceivedCallback = exports.initFirebaseMessaging = void 0;
var applicationSettings = require("@nativescript/core/application-settings");
var application = require("@nativescript/core/application");
var platform_1 = require("@nativescript/core/platform");
var firebase_common_1 = require("../firebase-common");
var utils_1 = require("../utils");
var _notificationActionTakenCallback;
var _pendingNotifications = [];
var _pendingActionTakenNotifications = [];
var _pushToken;
var _receivedPushTokenCallback;
var _receivedNotificationCallback;
var _registerForRemoteNotificationsRanThisSession = false;
var _userNotificationCenterDelegate;
var _firebaseRemoteMessageDelegate;
var _showNotifications = true;
var _showNotificationsWhenInForeground = false;
var _userNotificationCenterDidReceiveNotificationResponseWithCompletionHandler;
var _autoClearBadge = true;
var _resolveWhenDidRegisterForNotifications;
var _rejectWhenDidFailToRegisterForNotifications;
var NOTIFICATIONS_REGISTRATION_KEY = "Firebase-RegisterForRemoteNotifications";
function initFirebaseMessaging(options) {
import * as applicationSettings from "@nativescript/core/application-settings";
import * as application from "@nativescript/core/application";
import { Device } from "@nativescript/core/platform";
import { firebase } from "../firebase-common";
import { firebaseUtils } from "../utils";
let _notificationActionTakenCallback;
let _pendingNotifications = [];
let _pendingActionTakenNotifications = [];
let _pushToken;
let _receivedPushTokenCallback;
let _receivedNotificationCallback;
let _registerForRemoteNotificationsRanThisSession = false;
let _userNotificationCenterDelegate;
let _firebaseRemoteMessageDelegate;
let _showNotifications = true;
let _showNotificationsWhenInForeground = false;
let _userNotificationCenterDidReceiveNotificationResponseWithCompletionHandler;
let _autoClearBadge = true;
let _resolveWhenDidRegisterForNotifications;
let _rejectWhenDidFailToRegisterForNotifications;
const NOTIFICATIONS_REGISTRATION_KEY = "Firebase-RegisterForRemoteNotifications";
export function initFirebaseMessaging(options) {
if (!options) {

@@ -40,5 +37,4 @@ return;

}
exports.initFirebaseMessaging = initFirebaseMessaging;
function addOnMessageReceivedCallback(callback) {
return new Promise(function (resolve, reject) {
export function addOnMessageReceivedCallback(callback) {
return new Promise((resolve, reject) => {
try {

@@ -57,5 +53,4 @@ applicationSettings.setBoolean(NOTIFICATIONS_REGISTRATION_KEY, true);

}
exports.addOnMessageReceivedCallback = addOnMessageReceivedCallback;
function getCurrentPushToken() {
return new Promise(function (resolve, reject) {
export function getCurrentPushToken() {
return new Promise((resolve, reject) => {
try {

@@ -75,5 +70,4 @@ if (typeof (FIRMessaging) !== "undefined") {

}
exports.getCurrentPushToken = getCurrentPushToken;
function registerForPushNotifications(options) {
return new Promise(function (resolve, reject) {
export function registerForPushNotifications(options) {
return new Promise((resolve, reject) => {
try {

@@ -90,5 +84,4 @@ initFirebaseMessaging(options);

}
exports.registerForPushNotifications = registerForPushNotifications;
function unregisterForPushNotifications() {
return new Promise(function (resolve, reject) {
export function unregisterForPushNotifications() {
return new Promise((resolve, reject) => {
try {

@@ -104,8 +97,7 @@ UIApplication.sharedApplication.unregisterForRemoteNotifications();

}
exports.unregisterForPushNotifications = unregisterForPushNotifications;
function handleRemoteNotification(app, userInfo) {
var userInfoJSON = utils_1.firebaseUtils.toJsObject(userInfo);
var aps = userInfo.objectForKey("aps");
export function handleRemoteNotification(app, userInfo) {
const userInfoJSON = firebaseUtils.toJsObject(userInfo);
const aps = userInfo.objectForKey("aps");
if (aps !== null) {
var alrt = aps.objectForKey("alert");
const alrt = aps.objectForKey("alert");
if (alrt !== null && alrt.objectForKey) {

@@ -123,5 +115,4 @@ userInfoJSON.title = alrt.objectForKey("title");

}
exports.handleRemoteNotification = handleRemoteNotification;
function addOnPushTokenReceivedCallback(callback) {
return new Promise(function (resolve, reject) {
export function addOnPushTokenReceivedCallback(callback) {
return new Promise((resolve, reject) => {
try {

@@ -143,5 +134,4 @@ _receivedPushTokenCallback = callback;

}
exports.addOnPushTokenReceivedCallback = addOnPushTokenReceivedCallback;
function addBackgroundRemoteNotificationHandler(appDelegate) {
appDelegate.prototype.applicationDidRegisterForRemoteNotificationsWithDeviceToken = function (application, deviceToken) {
export function addBackgroundRemoteNotificationHandler(appDelegate) {
appDelegate.prototype.applicationDidRegisterForRemoteNotificationsWithDeviceToken = (application, deviceToken) => {
if (areNotificationsEnabled()) {

@@ -157,3 +147,3 @@ _resolveWhenDidRegisterForNotifications && _resolveWhenDidRegisterForNotifications();

else {
var token = deviceToken.debugDescription.replace(/[< >]/g, "");
const token = deviceToken.debugDescription.replace(/[< >]/g, "");
_pushToken = token;

@@ -165,3 +155,3 @@ if (_receivedPushTokenCallback) {

};
appDelegate.prototype.applicationDidFailToRegisterForRemoteNotificationsWithError = function (application, error) {
appDelegate.prototype.applicationDidFailToRegisterForRemoteNotificationsWithError = (application, error) => {
if (error.localizedDescription.indexOf("not supported in the simulator") > -1) {

@@ -174,5 +164,5 @@ _resolveWhenDidRegisterForNotifications && _resolveWhenDidRegisterForNotifications();

};
appDelegate.prototype.applicationDidReceiveRemoteNotificationFetchCompletionHandler = function (app, notification, completionHandler) {
appDelegate.prototype.applicationDidReceiveRemoteNotificationFetchCompletionHandler = (app, notification, completionHandler) => {
if (typeof (FIRAuth) !== "undefined") {
if (firebase_common_1.firebase._configured && FIRAuth.auth().canHandleNotification(notification)) {
if (firebase._configured && FIRAuth.auth().canHandleNotification(notification)) {
completionHandler(1);

@@ -186,9 +176,8 @@ return;

}
exports.addBackgroundRemoteNotificationHandler = addBackgroundRemoteNotificationHandler;
function registerForInteractivePush(model) {
var nativeActions = [];
model.iosSettings.interactiveSettings.actions.forEach((function (action) {
var notificationActionOptions = action.options ? action.options.valueOf() : UNNotificationActionOptionNone;
var actionType = action.type || "button";
var nativeAction;
export function registerForInteractivePush(model) {
let nativeActions = [];
model.iosSettings.interactiveSettings.actions.forEach(((action) => {
let notificationActionOptions = action.options ? action.options.valueOf() : UNNotificationActionOptionNone;
let actionType = action.type || "button";
let nativeAction;
if (actionType === "input") {

@@ -205,9 +194,9 @@ nativeAction = UNTextInputNotificationAction.actionWithIdentifierTitleOptionsTextInputButtonTitleTextInputPlaceholder(action.identifier, action.title, notificationActionOptions, action.submitLabel || "Submit", action.placeholder);

}));
var actions = NSArray.arrayWithArray(nativeActions);
var nativeCategories = [];
model.iosSettings.interactiveSettings.categories.forEach(function (category) {
var nativeCategory = UNNotificationCategory.categoryWithIdentifierActionsIntentIdentifiersOptions(category.identifier, actions, null, null);
let actions = NSArray.arrayWithArray(nativeActions);
let nativeCategories = [];
model.iosSettings.interactiveSettings.categories.forEach(category => {
let nativeCategory = UNNotificationCategory.categoryWithIdentifierActionsIntentIdentifiersOptions(category.identifier, actions, null, null);
nativeCategories.push(nativeCategory);
});
var nsSetCategories = new NSSet(nativeCategories);
const nsSetCategories = new NSSet(nativeCategories);
UNUserNotificationCenter.currentNotificationCenter().setNotificationCategories(nsSetCategories);

@@ -218,6 +207,5 @@ if (model.onNotificationActionTakenCallback) {

}
exports.registerForInteractivePush = registerForInteractivePush;
function prepAppDelegate() {
_addObserver("com.firebase.iid.notif.refresh-token", function (notification) { return exports.onTokenRefreshNotification(notification.object); });
_addObserver(UIApplicationDidFinishLaunchingNotification, function (appNotification) {
export function prepAppDelegate() {
_addObserver("com.firebase.iid.notif.refresh-token", notification => onTokenRefreshNotification(notification.object));
_addObserver(UIApplicationDidFinishLaunchingNotification, appNotification => {
if (applicationSettings.getBoolean(NOTIFICATIONS_REGISTRATION_KEY, false)) {

@@ -227,3 +215,3 @@ _registerForRemoteNotifications();

});
_addObserver(UIApplicationDidBecomeActiveNotification, function (appNotification) {
_addObserver(UIApplicationDidBecomeActiveNotification, appNotification => {
_processPendingNotifications();

@@ -235,5 +223,4 @@ if (typeof (FIRMessaging) !== "undefined") {

}
exports.prepAppDelegate = prepAppDelegate;
function subscribeToTopic(topicName) {
return new Promise(function (resolve, reject) {
export function subscribeToTopic(topicName) {
return new Promise((resolve, reject) => {
try {

@@ -244,3 +231,3 @@ if (typeof (FIRMessaging) === "undefined") {

}
FIRMessaging.messaging().subscribeToTopicCompletion(topicName, function (error) {
FIRMessaging.messaging().subscribeToTopicCompletion(topicName, (error) => {
error ? reject(error.localizedDescription) : resolve();

@@ -255,5 +242,4 @@ });

}
exports.subscribeToTopic = subscribeToTopic;
function unsubscribeFromTopic(topicName) {
return new Promise(function (resolve, reject) {
export function unsubscribeFromTopic(topicName) {
return new Promise((resolve, reject) => {
try {

@@ -264,3 +250,3 @@ if (typeof (FIRMessaging) === "undefined") {

}
FIRMessaging.messaging().unsubscribeFromTopicCompletion(topicName, function (error) {
FIRMessaging.messaging().unsubscribeFromTopicCompletion(topicName, error => {
error ? reject(error.localizedDescription) : resolve();

@@ -275,4 +261,3 @@ });

}
exports.unsubscribeFromTopic = unsubscribeFromTopic;
exports.onTokenRefreshNotification = function (token) {
export const onTokenRefreshNotification = token => {
_pushToken = token;

@@ -283,9 +268,5 @@ if (_receivedPushTokenCallback) {

};
var IosInteractivePushSettings = (function () {
function IosInteractivePushSettings() {
}
return IosInteractivePushSettings;
}());
exports.IosInteractivePushSettings = IosInteractivePushSettings;
var IosInteractiveNotificationActionOptions;
export class IosInteractivePushSettings {
}
export var IosInteractiveNotificationActionOptions;
(function (IosInteractiveNotificationActionOptions) {

@@ -295,26 +276,13 @@ IosInteractiveNotificationActionOptions[IosInteractiveNotificationActionOptions["authenticationRequired"] = 1] = "authenticationRequired";

IosInteractiveNotificationActionOptions[IosInteractiveNotificationActionOptions["foreground"] = 4] = "foreground";
})(IosInteractiveNotificationActionOptions = exports.IosInteractiveNotificationActionOptions || (exports.IosInteractiveNotificationActionOptions = {}));
var IosPushSettings = (function () {
function IosPushSettings() {
}
return IosPushSettings;
}());
exports.IosPushSettings = IosPushSettings;
var PushNotificationModel = (function () {
function PushNotificationModel() {
}
return PushNotificationModel;
}());
exports.PushNotificationModel = PushNotificationModel;
var NotificationActionResponse = (function () {
function NotificationActionResponse() {
}
return NotificationActionResponse;
}());
exports.NotificationActionResponse = NotificationActionResponse;
function areNotificationsEnabled() {
})(IosInteractiveNotificationActionOptions || (IosInteractiveNotificationActionOptions = {}));
export class IosPushSettings {
}
export class PushNotificationModel {
}
export class NotificationActionResponse {
}
export function areNotificationsEnabled() {
return UIApplication.sharedApplication.currentUserNotificationSettings.types > 0;
}
exports.areNotificationsEnabled = areNotificationsEnabled;
var updateUserInfo = function (userInfoJSON) {
const updateUserInfo = userInfoJSON => {
if (userInfoJSON.aps && userInfoJSON.aps.alert) {

@@ -327,3 +295,3 @@ userInfoJSON.title = userInfoJSON.aps.alert.title;

}
Object.keys(userInfoJSON).forEach(function (key) {
Object.keys(userInfoJSON).forEach(key => {
if (key !== "data")

@@ -335,5 +303,5 @@ userInfoJSON.data[key] = userInfoJSON[key];

function _registerForRemoteNotifications(resolve, reject) {
var app = UIApplication.sharedApplication;
let app = UIApplication.sharedApplication;
if (!app) {
application.on("launch", function () { return _registerForRemoteNotifications(resolve, reject); });
application.on("launch", () => _registerForRemoteNotifications(resolve, reject));
return;

@@ -348,5 +316,5 @@ }

_rejectWhenDidFailToRegisterForNotifications = reject;
if (parseInt(platform_1.Device.osVersion) >= 10) {
var authorizationOptions = 4 | 2 | 1;
UNUserNotificationCenter.currentNotificationCenter().requestAuthorizationWithOptionsCompletionHandler(authorizationOptions, function (granted, error) {
if (parseInt(Device.osVersion) >= 10) {
const authorizationOptions = 4 | 2 | 1;
UNUserNotificationCenter.currentNotificationCenter().requestAuthorizationWithOptionsCompletionHandler(authorizationOptions, (granted, error) => {
if (!error) {

@@ -357,3 +325,3 @@ if (app === null) {

if (app !== null) {
utils_1.firebaseUtils.invokeOnRunLoop(function () { return app.registerForRemoteNotifications(); });
firebaseUtils.invokeOnRunLoop(() => app.registerForRemoteNotifications());
}

@@ -367,11 +335,11 @@ }

if (_showNotifications) {
_userNotificationCenterDelegate = UNUserNotificationCenterDelegateImpl.new().initWithCallback(function (unnotification, actionIdentifier, inputText) {
var userInfo = unnotification.request.content.userInfo;
var userInfoJSON = utils_1.firebaseUtils.toJsObject(userInfo);
_userNotificationCenterDelegate = UNUserNotificationCenterDelegateImpl.new().initWithCallback((unnotification, actionIdentifier, inputText) => {
const userInfo = unnotification.request.content.userInfo;
const userInfoJSON = firebaseUtils.toJsObject(userInfo);
updateUserInfo(userInfoJSON);
if (actionIdentifier) {
_pendingActionTakenNotifications.push({
actionIdentifier: actionIdentifier,
userInfoJSON: userInfoJSON,
inputText: inputText
actionIdentifier,
userInfoJSON,
inputText
});

@@ -395,7 +363,7 @@ if (_notificationActionTakenCallback) {

if (typeof (FIRMessaging) !== "undefined") {
_firebaseRemoteMessageDelegate = FIRMessagingDelegateImpl.new().initWithCallback(function (appDataDictionary) {
var userInfoJSON = utils_1.firebaseUtils.toJsObject(appDataDictionary);
_firebaseRemoteMessageDelegate = FIRMessagingDelegateImpl.new().initWithCallback((appDataDictionary) => {
const userInfoJSON = firebaseUtils.toJsObject(appDataDictionary);
updateUserInfo(userInfoJSON);
_pendingNotifications.push(userInfoJSON);
var asJs = utils_1.firebaseUtils.toJsObject(appDataDictionary.objectForKey("notification"));
const asJs = firebaseUtils.toJsObject(appDataDictionary.objectForKey("notification"));
if (asJs) {

@@ -405,3 +373,3 @@ userInfoJSON.title = asJs.title;

}
var app = UIApplication.sharedApplication;
const app = UIApplication.sharedApplication;
if (app.applicationState === 0) {

@@ -421,5 +389,5 @@ userInfoJSON.foreground = true;

else {
var notificationTypes = 4 | 1 | 2 | 1;
var notificationSettings = UIUserNotificationSettings.settingsForTypesCategories(notificationTypes, null);
utils_1.firebaseUtils.invokeOnRunLoop(function () {
const notificationTypes = 4 | 1 | 2 | 1;
const notificationSettings = UIUserNotificationSettings.settingsForTypesCategories(notificationTypes, null);
firebaseUtils.invokeOnRunLoop(() => {
app.registerForRemoteNotifications();

@@ -431,3 +399,3 @@ });

function _addOnNotificationActionTakenCallback(callback) {
return new Promise(function (resolve, reject) {
return new Promise((resolve, reject) => {
try {

@@ -445,9 +413,9 @@ _notificationActionTakenCallback = callback;

function _processPendingNotifications() {
var app = UIApplication.sharedApplication;
const app = UIApplication.sharedApplication;
if (!app) {
application.on("launch", function () { return _processPendingNotifications(); });
application.on("launch", () => _processPendingNotifications());
return;
}
if (_receivedNotificationCallback) {
for (var p in _pendingNotifications) {
for (let p in _pendingNotifications) {
_receivedNotificationCallback(_pendingNotifications[p]);

@@ -462,9 +430,9 @@ }

function _processPendingActionTakenNotifications() {
var app = UIApplication.sharedApplication;
const app = UIApplication.sharedApplication;
if (!app) {
application.on("launch", function () { return _processPendingNotifications(); });
application.on("launch", () => _processPendingNotifications());
return;
}
if (_notificationActionTakenCallback) {
for (var p in _pendingActionTakenNotifications) {
for (let p in _pendingActionTakenNotifications) {
_notificationActionTakenCallback(_pendingActionTakenNotifications[p].actionIdentifier, _pendingActionTakenNotifications[p].userInfoJSON, _pendingActionTakenNotifications[p].inputText);

@@ -481,3 +449,3 @@ }

}
var UNUserNotificationCenterDelegateImpl = (function (_super) {
var UNUserNotificationCenterDelegateImpl = /** @class */ (function (_super) {
__extends(UNUserNotificationCenterDelegateImpl, _super);

@@ -499,8 +467,9 @@ function UNUserNotificationCenterDelegateImpl() {

var userInfo = notification.request.content.userInfo;
var userInfoJSON = utils_1.firebaseUtils.toJsObject(userInfo);
if (_showNotificationsWhenInForeground ||
userInfoJSON["gcm.notification.showWhenInForeground"] === "true" ||
userInfoJSON["showWhenInForeground"] === true ||
(userInfoJSON.aps && userInfoJSON.aps.showWhenInForeground === true)) {
completionHandler(4 | 2 | 1);
var userInfoJSON = firebaseUtils.toJsObject(userInfo);
if (_showNotificationsWhenInForeground || // Default value, in case we always want to show when in foreground.
userInfoJSON["gcm.notification.showWhenInForeground"] === "true" || // This is for FCM, ...
userInfoJSON["showWhenInForeground"] === true || // ...this is for non-FCM...
(userInfoJSON.aps && userInfoJSON.aps.showWhenInForeground === true) // ...and this as well (so users can choose where to put it).
) {
completionHandler(UNNotificationPresentationOptions.Alert | UNNotificationPresentationOptions.Sound | UNNotificationPresentationOptions.Badge);
}

@@ -513,2 +482,3 @@ else {

UNUserNotificationCenterDelegateImpl.prototype.userNotificationCenterDidReceiveNotificationResponseWithCompletionHandler = function (center, response, completionHandler) {
// let's ignore "dismiss" actions
if (response && response.actionIdentifier === UNNotificationDismissActionIdentifier) {

@@ -527,3 +497,3 @@ completionHandler();

}(NSObject));
var FIRMessagingDelegateImpl = (function (_super) {
var FIRMessagingDelegateImpl = /** @class */ (function (_super) {
__extends(FIRMessagingDelegateImpl, _super);

@@ -547,3 +517,3 @@ function FIRMessagingDelegateImpl() {

FIRMessagingDelegateImpl.prototype.messagingDidReceiveRegistrationToken = function (messaging, fcmToken) {
exports.onTokenRefreshNotification(fcmToken);
onTokenRefreshNotification(fcmToken);
};

@@ -550,0 +520,0 @@ FIRMessagingDelegateImpl.ObjCProtocols = [];

@@ -1,30 +0,21 @@

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.MLKitAutoML = exports.confidenceThresholdProperty = exports.localModelResourceFolderProperty = void 0;
var properties_1 = require("@nativescript/core/ui/core/properties");
var mlkit_cameraview_1 = require("../mlkit-cameraview");
exports.localModelResourceFolderProperty = new properties_1.Property({
import { Property } from "@nativescript/core/ui/core/properties";
import { MLKitCameraView } from "../mlkit-cameraview";
export const localModelResourceFolderProperty = new Property({
name: "localModelResourceFolder",
defaultValue: null,
});
exports.confidenceThresholdProperty = new properties_1.Property({
export const confidenceThresholdProperty = new Property({
name: "confidenceThreshold",
defaultValue: 0.5,
});
var MLKitAutoML = (function (_super) {
__extends(MLKitAutoML, _super);
function MLKitAutoML() {
return _super !== null && _super.apply(this, arguments) || this;
export class MLKitAutoML extends MLKitCameraView {
[localModelResourceFolderProperty.setNative](value) {
this.localModelResourceFolder = value;
}
MLKitAutoML.prototype[exports.localModelResourceFolderProperty.setNative] = function (value) {
this.localModelResourceFolder = value;
};
MLKitAutoML.prototype[exports.confidenceThresholdProperty.setNative] = function (value) {
[confidenceThresholdProperty.setNative](value) {
this.confidenceThreshold = parseFloat(value);
};
MLKitAutoML.scanResultEvent = "scanResult";
return MLKitAutoML;
}(mlkit_cameraview_1.MLKitCameraView));
exports.MLKitAutoML = MLKitAutoML;
exports.localModelResourceFolderProperty.register(MLKitAutoML);
exports.confidenceThresholdProperty.register(MLKitAutoML);
}
}
MLKitAutoML.scanResultEvent = "scanResult";
localModelResourceFolderProperty.register(MLKitAutoML);
confidenceThresholdProperty.register(MLKitAutoML);

@@ -1,25 +0,17 @@

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.labelImage = exports.MLKitAutoML = void 0;
var image_source_1 = require("@nativescript/core/image-source");
var automl_common_1 = require("./automl-common");
var MLKitAutoML = (function (_super) {
__extends(MLKitAutoML, _super);
function MLKitAutoML() {
return _super !== null && _super.apply(this, arguments) || this;
import { ImageSource } from "@nativescript/core/image-source";
import { MLKitAutoML as MLKitAutoMLBase } from "./automl-common";
export class MLKitAutoML extends MLKitAutoMLBase {
createDetector() {
return getDetector(this.localModelResourceFolder, this.confidenceThreshold);
}
MLKitAutoML.prototype.createDetector = function () {
return getDetector(this.localModelResourceFolder, this.confidenceThreshold);
};
MLKitAutoML.prototype.createSuccessListener = function () {
var _this = this;
createSuccessListener() {
return new com.google.android.gms.tasks.OnSuccessListener({
onSuccess: function (labels) {
onSuccess: labels => {
if (labels.size() === 0)
return;
var result = {
const result = {
labels: []
};
for (var i = 0; i < labels.size(); i++) {
var label = labels.get(i);
for (let i = 0; i < labels.size(); i++) {
const label = labels.get(i);
result.labels.push({

@@ -30,5 +22,5 @@ text: label.getText(),

}
_this.notify({
this.notify({
eventName: MLKitAutoML.scanResultEvent,
object: _this,
object: this,
value: result

@@ -38,11 +30,9 @@ });

});
};
return MLKitAutoML;
}(automl_common_1.MLKitAutoML));
exports.MLKitAutoML = MLKitAutoML;
}
}
function getDetector(localModelResourceFolder, confidenceThreshold) {
var model = new com.google.firebase.ml.vision.automl.FirebaseAutoMLLocalModel.Builder()
const model = new com.google.firebase.ml.vision.automl.FirebaseAutoMLLocalModel.Builder()
.setAssetFilePath(localModelResourceFolder + "/manifest.json")
.build();
var labelDetectorOptions = new com.google.firebase.ml.vision.label.FirebaseVisionOnDeviceAutoMLImageLabelerOptions.Builder(model)
const labelDetectorOptions = new com.google.firebase.ml.vision.label.FirebaseVisionOnDeviceAutoMLImageLabelerOptions.Builder(model)
.setConfidenceThreshold(confidenceThreshold)

@@ -53,14 +43,14 @@ .build();

}
function labelImage(options) {
return new Promise(function (resolve, reject) {
export function labelImage(options) {
return new Promise((resolve, reject) => {
try {
var firebaseVisionAutoMLImageLabeler_1 = getDetector(options.localModelResourceFolder, options.confidenceThreshold || 0.5);
var onSuccessListener = new com.google.android.gms.tasks.OnSuccessListener({
onSuccess: function (labels) {
var result = {
const firebaseVisionAutoMLImageLabeler = getDetector(options.localModelResourceFolder, options.confidenceThreshold || 0.5);
const onSuccessListener = new com.google.android.gms.tasks.OnSuccessListener({
onSuccess: labels => {
const result = {
labels: []
};
if (labels) {
for (var i = 0; i < labels.size(); i++) {
var label = labels.get(i);
for (let i = 0; i < labels.size(); i++) {
const label = labels.get(i);
result.labels.push({

@@ -73,9 +63,9 @@ text: label.getText(),

resolve(result);
firebaseVisionAutoMLImageLabeler_1.close();
firebaseVisionAutoMLImageLabeler.close();
}
});
var onFailureListener = new com.google.android.gms.tasks.OnFailureListener({
onFailure: function (exception) { return reject(exception.getMessage()); }
const onFailureListener = new com.google.android.gms.tasks.OnFailureListener({
onFailure: exception => reject(exception.getMessage())
});
firebaseVisionAutoMLImageLabeler_1
firebaseVisionAutoMLImageLabeler
.processImage(getImage(options))

@@ -91,6 +81,5 @@ .addOnSuccessListener(onSuccessListener)

}
exports.labelImage = labelImage;
function getImage(options) {
var image = options.image instanceof image_source_1.ImageSource ? options.image.android : options.image.imageSource.android;
const image = options.image instanceof ImageSource ? options.image.android : options.image.imageSource.android;
return com.google.firebase.ml.vision.common.FirebaseVisionImage.fromBitmap(image);
}

@@ -1,17 +0,9 @@

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.labelImage = exports.MLKitAutoML = void 0;
var image_source_1 = require("@nativescript/core/image-source");
var automl_common_1 = require("./automl-common");
var MLKitAutoML = (function (_super) {
__extends(MLKitAutoML, _super);
function MLKitAutoML() {
return _super !== null && _super.apply(this, arguments) || this;
import { ImageSource } from "@nativescript/core/image-source";
import { MLKitAutoML as MLKitAutoMLBase } from "./automl-common";
export class MLKitAutoML extends MLKitAutoMLBase {
createDetector() {
return getDetector(this.localModelResourceFolder, this.confidenceThreshold);
}
MLKitAutoML.prototype.createDetector = function () {
return getDetector(this.localModelResourceFolder, this.confidenceThreshold);
};
MLKitAutoML.prototype.createSuccessListener = function () {
var _this = this;
return function (labels, error) {
createSuccessListener() {
return (labels, error) => {
if (error !== null) {

@@ -21,7 +13,7 @@ console.log(error.localizedDescription);

else if (labels !== null && labels.count > 0) {
var result = {
const result = {
labels: []
};
for (var i = 0, l = labels.count; i < l; i++) {
var label = labels.objectAtIndex(i);
for (let i = 0, l = labels.count; i < l; i++) {
const label = labels.objectAtIndex(i);
result.labels.push({

@@ -32,5 +24,5 @@ text: label.text,

}
_this.notify({
this.notify({
eventName: MLKitAutoML.scanResultEvent,
object: _this,
object: this,
value: result

@@ -40,22 +32,20 @@ });

};
};
MLKitAutoML.prototype.rotateRecording = function () {
}
rotateRecording() {
return true;
};
return MLKitAutoML;
}(automl_common_1.MLKitAutoML));
exports.MLKitAutoML = MLKitAutoML;
}
}
function getDetector(localModelResourceFolder, confidenceThreshold) {
var manifestPath = NSBundle.mainBundle.pathForResourceOfTypeInDirectory("manifest", "json", localModelResourceFolder);
var fIRAutoMLLocalModel = FIRAutoMLLocalModel.alloc().initWithManifestPath(manifestPath);
var options = FIRVisionOnDeviceAutoMLImageLabelerOptions.alloc().initWithLocalModel(fIRAutoMLLocalModel);
const manifestPath = NSBundle.mainBundle.pathForResourceOfTypeInDirectory("manifest", "json", localModelResourceFolder);
const fIRAutoMLLocalModel = FIRAutoMLLocalModel.alloc().initWithManifestPath(manifestPath);
const options = FIRVisionOnDeviceAutoMLImageLabelerOptions.alloc().initWithLocalModel(fIRAutoMLLocalModel);
options.confidenceThreshold = confidenceThreshold || 0.5;
var fIRVisionImageLabeler = FIRVision.vision().onDeviceAutoMLImageLabelerWithOptions(options);
const fIRVisionImageLabeler = FIRVision.vision().onDeviceAutoMLImageLabelerWithOptions(options);
return fIRVisionImageLabeler;
}
function labelImage(options) {
return new Promise(function (resolve, reject) {
export function labelImage(options) {
return new Promise((resolve, reject) => {
try {
var labelDetector = getDetector(options.localModelResourceFolder, options.confidenceThreshold);
labelDetector.processImageCompletion(getImage(options), function (labels, error) {
const labelDetector = getDetector(options.localModelResourceFolder, options.confidenceThreshold);
labelDetector.processImageCompletion(getImage(options), (labels, error) => {
if (error !== null) {

@@ -65,7 +55,7 @@ reject(error.localizedDescription);

else if (labels !== null) {
var result = {
const result = {
labels: []
};
for (var i = 0, l = labels.count; i < l; i++) {
var label = labels.objectAtIndex(i);
for (let i = 0, l = labels.count; i < l; i++) {
const label = labels.objectAtIndex(i);
result.labels.push({

@@ -86,6 +76,5 @@ text: label.text,

}
exports.labelImage = labelImage;
function getImage(options) {
var image = options.image instanceof image_source_1.ImageSource ? options.image.ios : options.image.imageSource.ios;
const image = options.image instanceof ImageSource ? options.image.ios : options.image.imageSource.ios;
return FIRVisionImage.alloc().initWithImage(image);
}

@@ -1,8 +0,5 @@

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.MLKitBarcodeScanner = exports.supportInverseBarcodesProperty = exports.reportDuplicatesProperty = exports.beepOnScanProperty = exports.formatsProperty = exports.BarcodeFormat = void 0;
var view_base_1 = require("@nativescript/core/ui/core/view-base");
var properties_1 = require("@nativescript/core/ui/core/properties");
var mlkit_cameraview_1 = require("../mlkit-cameraview");
var BarcodeFormat;
import { booleanConverter } from "@nativescript/core/ui/core/view-base";
import { Property } from "@nativescript/core/ui/core/properties";
import { MLKitCameraView } from "../mlkit-cameraview";
export var BarcodeFormat;
(function (BarcodeFormat) {

@@ -22,45 +19,39 @@ BarcodeFormat[BarcodeFormat["CODE_128"] = 1] = "CODE_128";

BarcodeFormat[BarcodeFormat["AZTEC"] = 4096] = "AZTEC";
})(BarcodeFormat = exports.BarcodeFormat || (exports.BarcodeFormat = {}));
exports.formatsProperty = new properties_1.Property({
})(BarcodeFormat || (BarcodeFormat = {}));
export const formatsProperty = new Property({
name: "formats",
defaultValue: null,
});
exports.beepOnScanProperty = new properties_1.Property({
export const beepOnScanProperty = new Property({
name: "beepOnScan",
defaultValue: true,
valueConverter: view_base_1.booleanConverter
valueConverter: booleanConverter
});
exports.reportDuplicatesProperty = new properties_1.Property({
export const reportDuplicatesProperty = new Property({
name: "reportDuplicates",
defaultValue: false,
valueConverter: view_base_1.booleanConverter
valueConverter: booleanConverter
});
exports.supportInverseBarcodesProperty = new properties_1.Property({
export const supportInverseBarcodesProperty = new Property({
name: "supportInverseBarcodes",
defaultValue: false,
valueConverter: view_base_1.booleanConverter
valueConverter: booleanConverter
});
var MLKitBarcodeScanner = (function (_super) {
__extends(MLKitBarcodeScanner, _super);
function MLKitBarcodeScanner() {
return _super !== null && _super.apply(this, arguments) || this;
export class MLKitBarcodeScanner extends MLKitCameraView {
[formatsProperty.setNative](value) {
this.formats = value;
}
MLKitBarcodeScanner.prototype[exports.formatsProperty.setNative] = function (value) {
this.formats = value;
};
MLKitBarcodeScanner.prototype[exports.beepOnScanProperty.setNative] = function (value) {
[beepOnScanProperty.setNative](value) {
this.beepOnScan = value;
};
MLKitBarcodeScanner.prototype[exports.reportDuplicatesProperty.setNative] = function (value) {
}
[reportDuplicatesProperty.setNative](value) {
this.reportDuplicates = value;
};
MLKitBarcodeScanner.prototype[exports.supportInverseBarcodesProperty.setNative] = function (value) {
}
[supportInverseBarcodesProperty.setNative](value) {
this.supportInverseBarcodes = value;
};
return MLKitBarcodeScanner;
}(mlkit_cameraview_1.MLKitCameraView));
exports.MLKitBarcodeScanner = MLKitBarcodeScanner;
exports.formatsProperty.register(MLKitBarcodeScanner);
exports.beepOnScanProperty.register(MLKitBarcodeScanner);
exports.reportDuplicatesProperty.register(MLKitBarcodeScanner);
exports.supportInverseBarcodesProperty.register(MLKitBarcodeScanner);
}
}
formatsProperty.register(MLKitBarcodeScanner);
beepOnScanProperty.register(MLKitBarcodeScanner);
reportDuplicatesProperty.register(MLKitBarcodeScanner);
supportInverseBarcodesProperty.register(MLKitBarcodeScanner);

@@ -1,18 +0,13 @@

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.scanBarcodesOnDevice = exports.MLKitBarcodeScanner = exports.BarcodeFormat = void 0;
var image_source_1 = require("@nativescript/core/image-source");
var barcodescanning_common_1 = require("./barcodescanning-common");
Object.defineProperty(exports, "BarcodeFormat", { enumerable: true, get: function () { return barcodescanning_common_1.BarcodeFormat; } });
var application = require("@nativescript/core/application");
var gmsTasks = com.google.android.gms.tasks;
var MLKitBarcodeScanner = (function (_super) {
__extends(MLKitBarcodeScanner, _super);
function MLKitBarcodeScanner() {
var _this = _super !== null && _super.apply(this, arguments) || this;
_this.inverseThrottle = 0;
return _this;
import { ImageSource } from "@nativescript/core/image-source";
import { BarcodeFormat, MLKitBarcodeScanner as MLKitBarcodeScannerBase } from "./barcodescanning-common";
import * as application from "@nativescript/core/application";
export { BarcodeFormat };
const gmsTasks = com.google.android.gms.tasks;
export class MLKitBarcodeScanner extends MLKitBarcodeScannerBase {
constructor() {
super(...arguments);
this.inverseThrottle = 0;
}
MLKitBarcodeScanner.prototype.disposeNativeView = function () {
_super.prototype.disposeNativeView.call(this);
disposeNativeView() {
super.disposeNativeView();
if (this.player) {

@@ -22,15 +17,15 @@ this.player.release();

}
};
MLKitBarcodeScanner.prototype.createDetector = function () {
var formats;
}
createDetector() {
let formats;
if (this.formats) {
formats = [];
var requestedFormats = this.formats.split(",");
requestedFormats.forEach(function (format) { return formats.push(barcodescanning_common_1.BarcodeFormat[format.trim().toUpperCase()]); });
const requestedFormats = this.formats.split(",");
requestedFormats.forEach(format => formats.push(BarcodeFormat[format.trim().toUpperCase()]));
}
if (this.beepOnScan) {
var activity = (application.android.foregroundActivity || application.android.startActivity);
const activity = (application.android.foregroundActivity || application.android.startActivity);
activity.setVolumeControlStream(android.media.AudioManager.STREAM_MUSIC);
try {
var file = application.android.context.getResources().getIdentifier("beep", "raw", application.android.context.getPackageName());
const file = application.android.context.getResources().getIdentifier("beep", "raw", application.android.context.getPackageName());
if (file === 0) {

@@ -41,3 +36,3 @@ console.log("No 'beep.*' soundfile found in the resources /raw folder. There will be no audible feedback upon scanning a barcode.");

this.player = new android.media.MediaPlayer();
var fileDescriptor = application.android.context.getResources().openRawResourceFd(file);
const fileDescriptor = application.android.context.getResources().openRawResourceFd(file);
try {

@@ -62,18 +57,17 @@ this.player.setDataSource(fileDescriptor.getFileDescriptor(), fileDescriptor.getStartOffset(), fileDescriptor.getLength());

return getBarcodeDetector(formats);
};
MLKitBarcodeScanner.prototype.createSuccessListener = function () {
var _this = this;
}
createSuccessListener() {
return new gmsTasks.OnSuccessListener({
onSuccess: function (barcodes) {
var result = {
onSuccess: barcodes => {
const result = {
barcodes: []
};
if (barcodes && barcodes.size() > 0) {
var image = _this.lastVisionImage && _this.lastVisionImage.getBitmap ? _this.lastVisionImage.getBitmap() : null;
for (var i = 0; i < barcodes.size(); i++) {
var barcode = barcodes.get(i);
const image = this.lastVisionImage && this.lastVisionImage.getBitmap ? this.lastVisionImage.getBitmap() : null;
for (let i = 0; i < barcodes.size(); i++) {
const barcode = barcodes.get(i);
result.barcodes.push({
value: barcode.getRawValue(),
displayValue: barcode.getDisplayValue(),
format: barcodescanning_common_1.BarcodeFormat[barcode.getFormat()],
format: BarcodeFormat[barcode.getFormat()],
android: barcode,

@@ -87,9 +81,9 @@ bounds: boundingBoxToBounds(barcode.getBoundingBox()),

}
if (_this.player) {
_this.player.start();
if (this.player) {
this.player.start();
}
}
_this.notify({
this.notify({
eventName: MLKitBarcodeScanner.scanResultEvent,
object: _this,
object: this,
value: result

@@ -99,4 +93,4 @@ });

});
};
MLKitBarcodeScanner.prototype.preProcessImage = function (byteArray) {
}
preProcessImage(byteArray) {
if (this.supportInverseBarcodes && this.inverseThrottle++ % 2 === 0) {

@@ -106,6 +100,4 @@ return byteArray = org.nativescript.plugins.firebase.mlkit.BitmapUtil.byteArrayBitwiseNotHelper(byteArray);

return byteArray;
};
return MLKitBarcodeScanner;
}(barcodescanning_common_1.MLKitBarcodeScanner));
exports.MLKitBarcodeScanner = MLKitBarcodeScanner;
}
}
function boundingBoxToBounds(rect) {

@@ -125,3 +117,3 @@ return {

if (formats && formats.length > 0) {
var firebaseVisionBarcodeDetectorOptions = new com.google.firebase.ml.vision.barcode.FirebaseVisionBarcodeDetectorOptions.Builder()
const firebaseVisionBarcodeDetectorOptions = new com.google.firebase.ml.vision.barcode.FirebaseVisionBarcodeDetectorOptions.Builder()
.setBarcodeFormats(formats[0], formats)

@@ -135,25 +127,25 @@ .build();

}
function scanBarcodesOnDevice(options) {
return new Promise(function (resolve, reject) {
export function scanBarcodesOnDevice(options) {
return new Promise((resolve, reject) => {
try {
var firebaseVisionBarcodeDetector_1 = getBarcodeDetector(options.formats);
var image_1 = options.image instanceof image_source_1.ImageSource ? options.image.android : options.image.imageSource.android;
var firImage = com.google.firebase.ml.vision.common.FirebaseVisionImage.fromBitmap(image_1);
var onSuccessListener = new gmsTasks.OnSuccessListener({
onSuccess: function (barcodes) {
var result = {
const firebaseVisionBarcodeDetector = getBarcodeDetector(options.formats);
const image = options.image instanceof ImageSource ? options.image.android : options.image.imageSource.android;
const firImage = com.google.firebase.ml.vision.common.FirebaseVisionImage.fromBitmap(image);
const onSuccessListener = new gmsTasks.OnSuccessListener({
onSuccess: barcodes => {
const result = {
barcodes: []
};
if (barcodes) {
for (var i = 0; i < barcodes.size(); i++) {
var barcode = barcodes.get(i);
for (let i = 0; i < barcodes.size(); i++) {
const barcode = barcodes.get(i);
result.barcodes.push({
value: barcode.getRawValue(),
displayValue: barcode.getDisplayValue(),
format: barcodescanning_common_1.BarcodeFormat[barcode.getFormat()],
format: BarcodeFormat[barcode.getFormat()],
android: barcode,
bounds: boundingBoxToBounds(barcode.getBoundingBox()),
image: {
width: image_1.getWidth(),
height: image_1.getHeight()
width: image.getWidth(),
height: image.getHeight()
}

@@ -164,9 +156,9 @@ });

resolve(result);
firebaseVisionBarcodeDetector_1.close();
firebaseVisionBarcodeDetector.close();
}
});
var onFailureListener = new gmsTasks.OnFailureListener({
onFailure: function (exception) { return reject(exception.getMessage()); }
const onFailureListener = new gmsTasks.OnFailureListener({
onFailure: exception => reject(exception.getMessage())
});
firebaseVisionBarcodeDetector_1
firebaseVisionBarcodeDetector
.detectInImage(firImage)

@@ -182,2 +174,1 @@ .addOnSuccessListener(onSuccessListener)

}
exports.scanBarcodesOnDevice = scanBarcodesOnDevice;

@@ -1,25 +0,20 @@

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.scanBarcodesOnDevice = exports.MLKitBarcodeScanner = exports.BarcodeFormat = void 0;
var image_source_1 = require("@nativescript/core/image-source");
var utils_1 = require("@nativescript/core/utils/utils");
var barcodescanning_common_1 = require("./barcodescanning-common");
Object.defineProperty(exports, "BarcodeFormat", { enumerable: true, get: function () { return barcodescanning_common_1.BarcodeFormat; } });
var MLKitBarcodeScanner = (function (_super) {
__extends(MLKitBarcodeScanner, _super);
function MLKitBarcodeScanner() {
var _this = _super !== null && _super.apply(this, arguments) || this;
_this.inverseThrottle = 0;
return _this;
import { ImageSource } from "@nativescript/core/image-source";
import { iOSNativeHelper as iosUtils } from "@nativescript/core/utils/utils";
import { BarcodeFormat, MLKitBarcodeScanner as MLKitBarcodeScannerBase } from "./barcodescanning-common";
export { BarcodeFormat };
export class MLKitBarcodeScanner extends MLKitBarcodeScannerBase {
constructor() {
super(...arguments);
this.inverseThrottle = 0;
}
MLKitBarcodeScanner.prototype.createDetector = function () {
var formats;
createDetector() {
let formats;
if (this.formats) {
formats = [];
var requestedFormats = this.formats.split(",");
requestedFormats.forEach(function (format) { return formats.push(barcodescanning_common_1.BarcodeFormat[format.trim().toUpperCase()]); });
const requestedFormats = this.formats.split(",");
requestedFormats.forEach(format => formats.push(BarcodeFormat[format.trim().toUpperCase()]));
}
if (this.beepOnScan) {
AVAudioSession.sharedInstance().setCategoryModeOptionsError(AVAudioSessionCategoryPlayback, AVAudioSessionModeDefault, 1);
var barcodeBundlePath = NSBundle.bundleWithIdentifier("org.nativescript.plugin.firebase.MLKit").bundlePath;
const barcodeBundlePath = NSBundle.bundleWithIdentifier("org.nativescript.plugin.firebase.MLKit").bundlePath;
this.player = new AVAudioPlayer({ contentsOfURL: NSURL.fileURLWithPath(barcodeBundlePath + "/beep.caf") });

@@ -31,6 +26,5 @@ this.player.numberOfLoops = 1;

return getBarcodeDetector(formats);
};
MLKitBarcodeScanner.prototype.createSuccessListener = function () {
var _this = this;
return function (barcodes, error) {
}
createSuccessListener() {
return (barcodes, error) => {
if (error !== null) {

@@ -40,17 +34,17 @@ console.log(error.localizedDescription);

else if (barcodes !== null) {
var result = {
const result = {
barcodes: []
};
for (var i = 0, l = barcodes.count; i < l; i++) {
var barcode = barcodes.objectAtIndex(i);
var image = _this.lastVisionImage;
var imageWidth = image.size.width;
var imageHeight = image.size.height;
var _a = barcode.frame.origin, x = _a.x, y = _a.y;
var _b = barcode.frame.size, width = _b.width, height = _b.height;
for (let i = 0, l = barcodes.count; i < l; i++) {
const barcode = barcodes.objectAtIndex(i);
const image = this.lastVisionImage;
let imageWidth = image.size.width;
let imageHeight = image.size.height;
let { x, y } = barcode.frame.origin;
let { width, height } = barcode.frame.size;
if (image) {
var origX = x;
var origWidth = width;
var origImageWidth = imageWidth;
if (utils_1.iOSNativeHelper.isLandscape()) {
const origX = x;
const origWidth = width;
const origImageWidth = imageWidth;
if (iosUtils.isLandscape()) {
if (UIDevice.currentDevice.orientation === 4) {

@@ -73,12 +67,12 @@ x = image.size.width - (width + x);

displayValue: barcode.displayValue,
format: barcodescanning_common_1.BarcodeFormat[barcode.format],
format: BarcodeFormat[barcode.format],
ios: barcode,
bounds: {
origin: {
x: x,
y: y
x,
y
},
size: {
width: width,
height: height
width,
height
}

@@ -92,37 +86,35 @@ },

}
_this.notify({
this.notify({
eventName: MLKitBarcodeScanner.scanResultEvent,
object: _this,
object: this,
value: result
});
if (barcodes.count > 0 && _this.player) {
_this.player.play();
if (barcodes.count > 0 && this.player) {
this.player.play();
}
}
};
};
MLKitBarcodeScanner.prototype.rotateRecording = function () {
}
rotateRecording() {
return false;
};
MLKitBarcodeScanner.prototype.preProcessImage = function (image) {
}
preProcessImage(image) {
if (this.supportInverseBarcodes && this.inverseThrottle++ % 2 === 0) {
var filter = CIFilter.filterWithName('CIColorInvert');
var ciImg = CIImage.alloc().initWithImage(image);
const filter = CIFilter.filterWithName('CIColorInvert');
let ciImg = CIImage.alloc().initWithImage(image);
filter.setValueForKey(ciImg, kCIInputImageKey);
filter.setDefaults();
ciImg = filter.outputImage;
var context = CIContext.alloc().init();
var cgImg = context.createCGImageFromRect(ciImg, ciImg.extent);
const context = CIContext.alloc().init();
const cgImg = context.createCGImageFromRect(ciImg, ciImg.extent);
image = UIImage.alloc().initWithCGImage(cgImg);
}
return image;
};
return MLKitBarcodeScanner;
}(barcodescanning_common_1.MLKitBarcodeScanner));
exports.MLKitBarcodeScanner = MLKitBarcodeScanner;
}
}
function getBarcodeDetector(formats) {
if (formats && formats.length > 0) {
var barcodeFormats_1 = 0;
formats.forEach(function (format) { return barcodeFormats_1 |= format; });
return FIRVision.vision().barcodeDetectorWithOptions(FIRVisionBarcodeDetectorOptions.alloc().initWithFormats(barcodeFormats_1));
let barcodeFormats = 0;
formats.forEach(format => barcodeFormats |= format);
return FIRVision.vision().barcodeDetectorWithOptions(FIRVisionBarcodeDetectorOptions.alloc().initWithFormats(barcodeFormats));
}

@@ -133,9 +125,9 @@ else {

}
function scanBarcodesOnDevice(options) {
return new Promise(function (resolve, reject) {
export function scanBarcodesOnDevice(options) {
return new Promise((resolve, reject) => {
try {
var barcodeDetector = getBarcodeDetector(options.formats);
var image_1 = options.image instanceof image_source_1.ImageSource ? options.image.ios : options.image.imageSource.ios;
var firImage = FIRVisionImage.alloc().initWithImage(image_1);
barcodeDetector.detectInImageCompletion(firImage, function (barcodes, error) {
const barcodeDetector = getBarcodeDetector(options.formats);
const image = options.image instanceof ImageSource ? options.image.ios : options.image.imageSource.ios;
const firImage = FIRVisionImage.alloc().initWithImage(image);
barcodeDetector.detectInImageCompletion(firImage, (barcodes, error) => {
if (error !== null) {

@@ -145,16 +137,16 @@ reject(error.localizedDescription);

else if (barcodes !== null) {
var result = {
const result = {
barcodes: []
};
for (var i = 0, l = barcodes.count; i < l; i++) {
var barcode = barcodes.objectAtIndex(i);
for (let i = 0, l = barcodes.count; i < l; i++) {
const barcode = barcodes.objectAtIndex(i);
result.barcodes.push({
value: barcode.rawValue,
displayValue: barcode.displayValue,
format: barcodescanning_common_1.BarcodeFormat[barcode.format],
format: BarcodeFormat[barcode.format],
ios: barcode,
bounds: barcode.frame,
image: {
width: image_1.size.width,
height: image_1.size.height
width: image.size.width,
height: image.size.height
}

@@ -173,2 +165,1 @@ });

}
exports.scanBarcodesOnDevice = scanBarcodesOnDevice;

@@ -1,36 +0,29 @@

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.getLabelsFromFile = exports.getLabelsFromAppFolder = exports.MLKitCustomModel = exports.maxResultsProperty = exports.modelInputTypeProperty = exports.modelInputShapeProperty = exports.labelsFileProperty = exports.localModelFileProperty = void 0;
var fs = require("@nativescript/core/file-system");
var properties_1 = require("@nativescript/core/ui/core/properties");
var mlkit_cameraview_1 = require("../mlkit-cameraview");
exports.localModelFileProperty = new properties_1.Property({
import * as fs from "@nativescript/core/file-system";
import { Property } from "@nativescript/core/ui/core/properties";
import { MLKitCameraView } from "../mlkit-cameraview";
export const localModelFileProperty = new Property({
name: "localModelFile",
defaultValue: null,
});
exports.labelsFileProperty = new properties_1.Property({
export const labelsFileProperty = new Property({
name: "labelsFile",
defaultValue: null,
});
exports.modelInputShapeProperty = new properties_1.Property({
export const modelInputShapeProperty = new Property({
name: "modelInputShape",
defaultValue: null,
});
exports.modelInputTypeProperty = new properties_1.Property({
export const modelInputTypeProperty = new Property({
name: "modelInputType",
defaultValue: null,
});
exports.maxResultsProperty = new properties_1.Property({
export const maxResultsProperty = new Property({
name: "maxResults",
defaultValue: 5
});
var MLKitCustomModel = (function (_super) {
__extends(MLKitCustomModel, _super);
function MLKitCustomModel() {
return _super !== null && _super.apply(this, arguments) || this;
export class MLKitCustomModel extends MLKitCameraView {
[localModelFileProperty.setNative](value) {
this.localModelFile = value;
}
MLKitCustomModel.prototype[exports.localModelFileProperty.setNative] = function (value) {
this.localModelFile = value;
};
MLKitCustomModel.prototype[exports.labelsFileProperty.setNative] = function (value) {
[labelsFileProperty.setNative](value) {
this.labelsFile = value;

@@ -44,31 +37,28 @@ if (value.indexOf("~/") === 0) {

}
};
MLKitCustomModel.prototype[exports.maxResultsProperty.setNative] = function (value) {
}
[maxResultsProperty.setNative](value) {
this.maxResults = parseInt(value);
};
MLKitCustomModel.prototype[exports.modelInputShapeProperty.setNative] = function (value) {
}
[modelInputShapeProperty.setNative](value) {
if ((typeof value) === "string") {
this.modelInputShape = value.split(",").map(function (v) { return parseInt(v.trim()); });
this.modelInputShape = value.split(",").map(v => parseInt(v.trim()));
}
};
MLKitCustomModel.prototype[exports.modelInputTypeProperty.setNative] = function (value) {
}
[modelInputTypeProperty.setNative](value) {
this.modelInputType = value;
};
MLKitCustomModel.scanResultEvent = "scanResult";
return MLKitCustomModel;
}(mlkit_cameraview_1.MLKitCameraView));
exports.MLKitCustomModel = MLKitCustomModel;
exports.localModelFileProperty.register(MLKitCustomModel);
exports.labelsFileProperty.register(MLKitCustomModel);
exports.maxResultsProperty.register(MLKitCustomModel);
exports.modelInputShapeProperty.register(MLKitCustomModel);
exports.modelInputTypeProperty.register(MLKitCustomModel);
function getLabelsFromAppFolder(labelsFile) {
var labelsPath = fs.knownFolders.currentApp().path + labelsFile.substring(1);
}
}
MLKitCustomModel.scanResultEvent = "scanResult";
localModelFileProperty.register(MLKitCustomModel);
labelsFileProperty.register(MLKitCustomModel);
maxResultsProperty.register(MLKitCustomModel);
modelInputShapeProperty.register(MLKitCustomModel);
modelInputTypeProperty.register(MLKitCustomModel);
export function getLabelsFromAppFolder(labelsFile) {
const labelsPath = fs.knownFolders.currentApp().path + labelsFile.substring(1);
return getLabelsFromFile(labelsPath);
}
exports.getLabelsFromAppFolder = getLabelsFromAppFolder;
function getLabelsFromFile(labelsFile) {
var fileContents = fs.File.fromPath(labelsFile).readTextSync();
var lines = fileContents.split("\n");
export function getLabelsFromFile(labelsFile) {
const fileContents = fs.File.fromPath(labelsFile).readTextSync();
const lines = fileContents.split("\n");
while (lines[lines.length - 1].trim() === "") {

@@ -79,2 +69,1 @@ lines.pop();

}
exports.getLabelsFromFile = getLabelsFromFile;

@@ -1,19 +0,11 @@

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.useCustomModel = exports.MLKitCustomModel = void 0;
var fs = require("@nativescript/core/file-system");
var image_source_1 = require("@nativescript/core/image-source");
var custommodel_common_1 = require("./custommodel-common");
var gmsTasks = com.google.android.gms.tasks;
var MLKitCustomModel = (function (_super) {
__extends(MLKitCustomModel, _super);
function MLKitCustomModel() {
return _super !== null && _super.apply(this, arguments) || this;
}
MLKitCustomModel.prototype.createDetector = function () {
import * as fs from "@nativescript/core/file-system";
import { ImageSource } from "@nativescript/core/image-source";
import { getLabelsFromAppFolder, MLKitCustomModel as MLKitCustomModelBase } from "./custommodel-common";
const gmsTasks = com.google.android.gms.tasks;
export class MLKitCustomModel extends MLKitCustomModelBase {
createDetector() {
this.detector = getInterpreter(this.localModelFile);
return this.detector;
};
MLKitCustomModel.prototype.runDetector = function (imageByteBuffer, previewWidth, previewHeight) {
var _this = this;
}
runDetector(imageByteBuffer, previewWidth, previewHeight) {
if (this.detectorBusy) {

@@ -25,13 +17,13 @@ return;

this.onFailureListener = new gmsTasks.OnFailureListener({
onFailure: function (exception) {
onFailure: exception => {
console.log(exception.getMessage());
_this.detectorBusy = false;
this.detectorBusy = false;
}
});
}
var modelExpectsWidth = this.modelInputShape[1];
var modelExpectsHeight = this.modelInputShape[2];
var isQuantized = this.modelInputType !== "FLOAT32";
const modelExpectsWidth = this.modelInputShape[1];
const modelExpectsHeight = this.modelInputShape[2];
const isQuantized = this.modelInputType !== "FLOAT32";
if (!this.inputOutputOptions) {
var intArrayIn = Array.create("int", 4);
let intArrayIn = Array.create("int", 4);
intArrayIn[0] = this.modelInputShape[0];

@@ -41,4 +33,4 @@ intArrayIn[1] = modelExpectsWidth;

intArrayIn[3] = this.modelInputShape[3];
var inputType = isQuantized ? com.google.firebase.ml.custom.FirebaseModelDataType.BYTE : com.google.firebase.ml.custom.FirebaseModelDataType.FLOAT32;
var intArrayOut = Array.create("int", 2);
const inputType = isQuantized ? com.google.firebase.ml.custom.FirebaseModelDataType.BYTE : com.google.firebase.ml.custom.FirebaseModelDataType.FLOAT32;
let intArrayOut = Array.create("int", 2);
intArrayOut[0] = 1;

@@ -51,4 +43,4 @@ intArrayOut[1] = this.labels.length;

}
var input = org.nativescript.plugins.firebase.mlkit.BitmapUtil.byteBufferToByteBuffer(imageByteBuffer, previewWidth, previewHeight, modelExpectsWidth, modelExpectsHeight, isQuantized);
var inputs = new com.google.firebase.ml.custom.FirebaseModelInputs.Builder()
const input = org.nativescript.plugins.firebase.mlkit.BitmapUtil.byteBufferToByteBuffer(imageByteBuffer, previewWidth, previewHeight, modelExpectsWidth, modelExpectsHeight, isQuantized);
const inputs = new com.google.firebase.ml.custom.FirebaseModelInputs.Builder()
.add(input)

@@ -60,34 +52,31 @@ .build();

.addOnFailureListener(this.onFailureListener);
};
MLKitCustomModel.prototype.createSuccessListener = function () {
var _this = this;
}
createSuccessListener() {
this.onSuccessListener = new gmsTasks.OnSuccessListener({
onSuccess: function (output) {
var probabilities = output.getOutput(0)[0];
if (_this.labels.length !== probabilities.length) {
console.log("The number of labels (" + _this.labels.length + ") is not equal to the interpretation result (" + probabilities.length + ")!");
onSuccess: output => {
const probabilities = output.getOutput(0)[0];
if (this.labels.length !== probabilities.length) {
console.log(`The number of labels (${this.labels.length}) is not equal to the interpretation result (${probabilities.length})!`);
return;
}
var result = {
result: getSortedResult(_this.labels, probabilities, _this.maxResults)
const result = {
result: getSortedResult(this.labels, probabilities, this.maxResults)
};
_this.notify({
this.notify({
eventName: MLKitCustomModel.scanResultEvent,
object: _this,
object: this,
value: result
});
_this.detectorBusy = false;
this.detectorBusy = false;
}
});
return this.onSuccessListener;
};
return MLKitCustomModel;
}(custommodel_common_1.MLKitCustomModel));
exports.MLKitCustomModel = MLKitCustomModel;
var registeredModels = [];
}
}
const registeredModels = [];
function getInterpreter(localModelFile) {
var localModelName = localModelFile.lastIndexOf("/") === -1 ? localModelFile : localModelFile.substring(localModelFile.lastIndexOf("/") + 1);
var localModelRegistrationSuccess = false;
const localModelName = localModelFile.lastIndexOf("/") === -1 ? localModelFile : localModelFile.substring(localModelFile.lastIndexOf("/") + 1);
let localModelRegistrationSuccess = false;
if (localModelFile) {
var localModelBuilder = new com.google.firebase.ml.custom.FirebaseCustomLocalModel.Builder();
const localModelBuilder = new com.google.firebase.ml.custom.FirebaseCustomLocalModel.Builder();
if (localModelFile.indexOf("~/") === 0) {

@@ -99,3 +88,3 @@ localModelBuilder.setFilePath(fs.knownFolders.currentApp().path + localModelFile.substring(1));

}
var firModelOptions = new com.google.firebase.ml.custom.FirebaseModelInterpreterOptions.Builder(localModelBuilder.build()).build();
const firModelOptions = new com.google.firebase.ml.custom.FirebaseModelInterpreterOptions.Builder(localModelBuilder.build()).build();
return com.google.firebase.ml.custom.FirebaseModelInterpreter.getInstance(firModelOptions);

@@ -105,9 +94,9 @@ }

}
function useCustomModel(options) {
return new Promise(function (resolve, reject) {
export function useCustomModel(options) {
return new Promise((resolve, reject) => {
try {
var interpreter_1 = getInterpreter(options.localModelFile);
var labels_1;
const interpreter = getInterpreter(options.localModelFile);
let labels;
if (options.labelsFile.indexOf("~/") === 0) {
labels_1 = custommodel_common_1.getLabelsFromAppFolder(options.labelsFile);
labels = getLabelsFromAppFolder(options.labelsFile);
}

@@ -118,20 +107,20 @@ else {

}
var onSuccessListener = new gmsTasks.OnSuccessListener({
onSuccess: function (output) {
var probabilities = output.getOutput(0)[0];
if (labels_1.length !== probabilities.length) {
console.log("The number of labels in " + options.labelsFile + " (" + labels_1.length + ") is not equal to the interpretation result (" + probabilities.length + ")!");
const onSuccessListener = new gmsTasks.OnSuccessListener({
onSuccess: output => {
const probabilities = output.getOutput(0)[0];
if (labels.length !== probabilities.length) {
console.log(`The number of labels in ${options.labelsFile} (${labels.length}) is not equal to the interpretation result (${probabilities.length})!`);
return;
}
var result = {
result: getSortedResult(labels_1, probabilities, options.maxResults)
const result = {
result: getSortedResult(labels, probabilities, options.maxResults)
};
resolve(result);
interpreter_1.close();
interpreter.close();
}
});
var onFailureListener = new gmsTasks.OnFailureListener({
onFailure: function (exception) { return reject(exception.getMessage()); }
const onFailureListener = new gmsTasks.OnFailureListener({
onFailure: exception => reject(exception.getMessage())
});
var intArrayIn = Array.create("int", 4);
let intArrayIn = Array.create("int", 4);
intArrayIn[0] = options.modelInput[0].shape[0];

@@ -141,17 +130,17 @@ intArrayIn[1] = options.modelInput[0].shape[1];

intArrayIn[3] = options.modelInput[0].shape[3];
var isQuantized = options.modelInput[0].type !== "FLOAT32";
var inputType = isQuantized ? com.google.firebase.ml.custom.FirebaseModelDataType.BYTE : com.google.firebase.ml.custom.FirebaseModelDataType.FLOAT32;
var intArrayOut = Array.create("int", 2);
const isQuantized = options.modelInput[0].type !== "FLOAT32";
const inputType = isQuantized ? com.google.firebase.ml.custom.FirebaseModelDataType.BYTE : com.google.firebase.ml.custom.FirebaseModelDataType.FLOAT32;
let intArrayOut = Array.create("int", 2);
intArrayOut[0] = 1;
intArrayOut[1] = labels_1.length;
var inputOutputOptions = new com.google.firebase.ml.custom.FirebaseModelInputOutputOptions.Builder()
intArrayOut[1] = labels.length;
const inputOutputOptions = new com.google.firebase.ml.custom.FirebaseModelInputOutputOptions.Builder()
.setInputFormat(0, inputType, intArrayIn)
.setOutputFormat(0, inputType, intArrayOut)
.build();
var image = options.image instanceof image_source_1.ImageSource ? options.image.android : options.image.imageSource.android;
var input = org.nativescript.plugins.firebase.mlkit.BitmapUtil.bitmapToByteBuffer(image, options.modelInput[0].shape[1], options.modelInput[0].shape[2], isQuantized);
var inputs = new com.google.firebase.ml.custom.FirebaseModelInputs.Builder()
const image = options.image instanceof ImageSource ? options.image.android : options.image.imageSource.android;
const input = org.nativescript.plugins.firebase.mlkit.BitmapUtil.bitmapToByteBuffer(image, options.modelInput[0].shape[1], options.modelInput[0].shape[2], isQuantized);
const inputs = new com.google.firebase.ml.custom.FirebaseModelInputs.Builder()
.add(input)
.build();
interpreter_1
interpreter
.run(inputs, inputOutputOptions)

@@ -167,13 +156,11 @@ .addOnSuccessListener(onSuccessListener)

}
exports.useCustomModel = useCustomModel;
function getSortedResult(labels, probabilities, maxResults) {
if (maxResults === void 0) { maxResults = 5; }
var result = [];
labels.forEach(function (text, i) { return result.push({ text: text, confidence: probabilities[i] }); });
result.sort(function (a, b) { return a.confidence < b.confidence ? 1 : (a.confidence === b.confidence ? 0 : -1); });
function getSortedResult(labels, probabilities, maxResults = 5) {
const result = [];
labels.forEach((text, i) => result.push({ text, confidence: probabilities[i] }));
result.sort((a, b) => a.confidence < b.confidence ? 1 : (a.confidence === b.confidence ? 0 : -1));
if (result.length > maxResults) {
result.splice(maxResults);
}
result.map(function (r) { return r.confidence = (r.confidence & 0xff) / 255.0; });
result.map(r => r.confidence = (r.confidence & 0xff) / 255.0);
return result;
}

@@ -1,29 +0,21 @@

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.useCustomModel = exports.MLKitCustomModel = void 0;
var fs = require("@nativescript/core/file-system");
var image_source_1 = require("@nativescript/core/image-source");
var custommodel_common_1 = require("./custommodel-common");
var MLKitCustomModel = (function (_super) {
__extends(MLKitCustomModel, _super);
function MLKitCustomModel() {
return _super !== null && _super.apply(this, arguments) || this;
}
MLKitCustomModel.prototype.createDetector = function () {
import * as fs from "@nativescript/core/file-system";
import { ImageSource } from "@nativescript/core/image-source";
import { getLabelsFromAppFolder, getLabelsFromFile, MLKitCustomModel as MLKitCustomModelBase } from "./custommodel-common";
export class MLKitCustomModel extends MLKitCustomModelBase {
createDetector() {
this.modelInterpreter = getInterpreter(this.localModelFile);
return this.modelInterpreter;
};
MLKitCustomModel.prototype.runDetector = function (image, onComplete) {
var _this = this;
var modelExpectsWidth = this.modelInputShape[1];
var modelExpectsHeight = this.modelInputShape[2];
var isQuantized = this.modelInputType !== "FLOAT32";
}
runDetector(image, onComplete) {
const modelExpectsWidth = this.modelInputShape[1];
const modelExpectsHeight = this.modelInputShape[2];
const isQuantized = this.modelInputType !== "FLOAT32";
if (!this.inputOutputOptions) {
this.inputOutputOptions = FIRModelInputOutputOptions.new();
var inputType = void 0;
var arrIn_1 = NSMutableArray.new();
this.modelInputShape.forEach(function (dim) { return arrIn_1.addObject(dim); });
let inputType;
const arrIn = NSMutableArray.new();
this.modelInputShape.forEach(dim => arrIn.addObject(dim));
inputType = isQuantized ? 3 : 1;
this.inputOutputOptions.setInputFormatForIndexTypeDimensionsError(0, inputType, arrIn_1);
var arrOut = NSMutableArray.new();
this.inputOutputOptions.setInputFormatForIndexTypeDimensionsError(0, inputType, arrIn);
const arrOut = NSMutableArray.new();
arrOut.addObject(1);

@@ -33,3 +25,3 @@ arrOut.addObject(this.labels.length);

}
var inputData;
let inputData;
if (isQuantized) {

@@ -41,5 +33,5 @@ inputData = TNSMLKitCameraView.scaledDataWithSizeByteCountIsQuantized(image, CGSizeMake(modelExpectsWidth, modelExpectsHeight), modelExpectsWidth * modelExpectsHeight * this.modelInputShape[3] * this.modelInputShape[0], isQuantized);

}
var inputs = FIRModelInputs.new();
const inputs = FIRModelInputs.new();
inputs.addInputError(inputData);
this.modelInterpreter.runWithInputsOptionsCompletion(inputs, this.inputOutputOptions, function (outputs, error) {
this.modelInterpreter.runWithInputsOptionsCompletion(inputs, this.inputOutputOptions, (outputs, error) => {
if (error !== null) {

@@ -49,14 +41,14 @@ console.log(error.localizedDescription);

else if (outputs !== null) {
var probabilities = outputs.outputAtIndexError(0)[0];
if (_this.labels.length !== probabilities.count) {
console.log("The number of labels (" + _this.labels.length + ") is not equal to the interpretation result (" + probabilities.count + ")!");
const probabilities = outputs.outputAtIndexError(0)[0];
if (this.labels.length !== probabilities.count) {
console.log(`The number of labels (${this.labels.length}) is not equal to the interpretation result (${probabilities.count})!`);
onComplete();
}
else {
var result = {
result: getSortedResult(_this.labels, probabilities, _this.maxResults)
const result = {
result: getSortedResult(this.labels, probabilities, this.maxResults)
};
_this.notify({
this.notify({
eventName: MLKitCustomModel.scanResultEvent,
object: _this,
object: this,
value: result

@@ -68,6 +60,5 @@ });

});
};
MLKitCustomModel.prototype.createSuccessListener = function () {
var _this = this;
return function (outputs, error) {
}
createSuccessListener() {
return (outputs, error) => {
if (error !== null) {

@@ -77,9 +68,9 @@ console.log(error.localizedDescription);

else if (outputs !== null) {
var result = {
const result = {
result: []
};
console.log(">>> outputs: " + outputs);
_this.notify({
this.notify({
eventName: MLKitCustomModel.scanResultEvent,
object: _this,
object: this,
value: result

@@ -89,12 +80,10 @@ });

};
};
MLKitCustomModel.prototype.rotateRecording = function () {
}
rotateRecording() {
return false;
};
return MLKitCustomModel;
}(custommodel_common_1.MLKitCustomModel));
exports.MLKitCustomModel = MLKitCustomModel;
}
}
function getInterpreter(localModelFile) {
if (localModelFile) {
var localModelFilePath = void 0;
let localModelFilePath;
if (localModelFile.indexOf("~/") === 0) {

@@ -106,3 +95,3 @@ localModelFilePath = fs.knownFolders.currentApp().path + localModelFile.substring(1);

}
var localModel = FIRCustomLocalModel.alloc().initWithModelPath(localModelFilePath);
const localModel = FIRCustomLocalModel.alloc().initWithModelPath(localModelFilePath);
if (localModel) {

@@ -117,8 +106,8 @@ return FIRModelInterpreter.modelInterpreterForLocalModel(localModel);

}
function useCustomModel(options) {
return new Promise(function (resolve, reject) {
export function useCustomModel(options) {
return new Promise((resolve, reject) => {
try {
var image = options.image instanceof image_source_1.ImageSource ? options.image.ios : options.image.imageSource.ios;
var isQuant = options.modelInput[0].type !== "FLOAT32";
var inputData = void 0;
const image = options.image instanceof ImageSource ? options.image.ios : options.image.imageSource.ios;
const isQuant = options.modelInput[0].type !== "FLOAT32";
let inputData;
if (isQuant) {

@@ -130,26 +119,26 @@ inputData = TNSMLKitCameraView.scaledDataWithSizeByteCountIsQuantized(image, CGSizeMake(options.modelInput[0].shape[1], options.modelInput[0].shape[2]), options.modelInput[0].shape[1] * options.modelInput[0].shape[2] * options.modelInput[0].shape[3] * options.modelInput[0].shape[0], options.modelInput[0].type !== "FLOAT32");

}
var inputs = FIRModelInputs.new();
const inputs = FIRModelInputs.new();
inputs.addInputError(inputData);
var inputOptions_1 = FIRModelInputOutputOptions.new();
var inputType_1;
options.modelInput.forEach(function (dimensionAndType, i) {
var arrIn = NSMutableArray.new();
dimensionAndType.shape.forEach(function (dim) { return arrIn.addObject(dim); });
inputType_1 = dimensionAndType.type === "FLOAT32" ? 1 : 3;
inputOptions_1.setInputFormatForIndexTypeDimensionsError(i, inputType_1, arrIn);
const inputOptions = FIRModelInputOutputOptions.new();
let inputType;
options.modelInput.forEach((dimensionAndType, i) => {
const arrIn = NSMutableArray.new();
dimensionAndType.shape.forEach(dim => arrIn.addObject(dim));
inputType = dimensionAndType.type === "FLOAT32" ? 1 : 3;
inputOptions.setInputFormatForIndexTypeDimensionsError(i, inputType, arrIn);
});
var labels_1;
let labels;
if (options.labelsFile.indexOf("~/") === 0) {
labels_1 = custommodel_common_1.getLabelsFromAppFolder(options.labelsFile);
labels = getLabelsFromAppFolder(options.labelsFile);
}
else {
var labelsFile = NSBundle.mainBundle.pathForResourceOfType(options.labelsFile.substring(0, options.labelsFile.lastIndexOf(".")), options.labelsFile.substring(options.labelsFile.lastIndexOf(".") + 1));
labels_1 = custommodel_common_1.getLabelsFromFile(labelsFile);
const labelsFile = NSBundle.mainBundle.pathForResourceOfType(options.labelsFile.substring(0, options.labelsFile.lastIndexOf(".")), options.labelsFile.substring(options.labelsFile.lastIndexOf(".") + 1));
labels = getLabelsFromFile(labelsFile);
}
var arrOut = NSMutableArray.new();
const arrOut = NSMutableArray.new();
arrOut.addObject(1);
arrOut.addObject(labels_1.length);
inputOptions_1.setOutputFormatForIndexTypeDimensionsError(0, inputType_1, arrOut);
var modelInterpreter = getInterpreter(options.localModelFile);
modelInterpreter.runWithInputsOptionsCompletion(inputs, inputOptions_1, function (outputs, error) {
arrOut.addObject(labels.length);
inputOptions.setOutputFormatForIndexTypeDimensionsError(0, inputType, arrOut);
const modelInterpreter = getInterpreter(options.localModelFile);
modelInterpreter.runWithInputsOptionsCompletion(inputs, inputOptions, (outputs, error) => {
if (error !== null) {

@@ -159,9 +148,9 @@ reject(error.localizedDescription);

else if (outputs !== null) {
var probabilities = outputs.outputAtIndexError(0)[0];
if (labels_1.length !== probabilities.count) {
console.log("The number of labels in " + options.labelsFile + " (" + labels_1.length + ") is not equal to the interpretation result (" + probabilities.count + ")!");
const probabilities = outputs.outputAtIndexError(0)[0];
if (labels.length !== probabilities.count) {
console.log(`The number of labels in ${options.labelsFile} (${labels.length}) is not equal to the interpretation result (${probabilities.count})!`);
return;
}
var result = {
result: getSortedResult(labels_1, probabilities, options.maxResults)
const result = {
result: getSortedResult(labels, probabilities, options.maxResults)
};

@@ -178,14 +167,12 @@ resolve(result);

}
exports.useCustomModel = useCustomModel;
function getSortedResult(labels, probabilities, maxResults) {
if (maxResults === void 0) { maxResults = 5; }
var result = [];
labels.forEach(function (text, i) { return result.push({ text: text, confidence: probabilities.objectAtIndex(i) }); });
result.sort(function (a, b) { return a.confidence < b.confidence ? 1 : (a.confidence === b.confidence ? 0 : -1); });
function getSortedResult(labels, probabilities, maxResults = 5) {
const result = [];
labels.forEach((text, i) => result.push({ text, confidence: probabilities.objectAtIndex(i) }));
result.sort((a, b) => a.confidence < b.confidence ? 1 : (a.confidence === b.confidence ? 0 : -1));
if (result.length > maxResults) {
result.splice(maxResults);
}
var softmaxScale = 1.0 / 256.0;
result.map(function (r) { return r.confidence = NSNumber.numberWithFloat(softmaxScale * r.confidence); });
const softmaxScale = 1.0 / 256.0;
result.map(r => r.confidence = NSNumber.numberWithFloat(softmaxScale * r.confidence));
return result;
}

@@ -1,18 +0,15 @@

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.MLKitFaceDetection = exports.detectionModeProperty = exports.enableFaceTrackingProperty = exports.minimumFaceSizeProperty = void 0;
var view_base_1 = require("@nativescript/core/ui/core/view-base");
var properties_1 = require("@nativescript/core/ui/core/properties");
var mlkit_cameraview_1 = require("../mlkit-cameraview");
exports.minimumFaceSizeProperty = new properties_1.Property({
import { booleanConverter } from "@nativescript/core/ui/core/view-base";
import { Property, makeParser, makeValidator } from "@nativescript/core/ui/core/properties";
import { MLKitCameraView } from "../mlkit-cameraview";
export const minimumFaceSizeProperty = new Property({
name: "minimumFaceSize",
defaultValue: 0.1
});
exports.enableFaceTrackingProperty = new properties_1.Property({
export const enableFaceTrackingProperty = new Property({
name: "enableFaceTracking",
defaultValue: false,
valueConverter: view_base_1.booleanConverter
valueConverter: booleanConverter
});
var detectionModeConverter = properties_1.makeParser(properties_1.makeValidator("accurate", "fast"));
exports.detectionModeProperty = new properties_1.Property({
const detectionModeConverter = makeParser(makeValidator("accurate", "fast"));
export const detectionModeProperty = new Property({
name: "detectionMode",

@@ -22,22 +19,16 @@ defaultValue: "fast",

});
var MLKitFaceDetection = (function (_super) {
__extends(MLKitFaceDetection, _super);
function MLKitFaceDetection() {
return _super !== null && _super.apply(this, arguments) || this;
export class MLKitFaceDetection extends MLKitCameraView {
[minimumFaceSizeProperty.setNative](value) {
this.minimumFaceSize = value;
}
MLKitFaceDetection.prototype[exports.minimumFaceSizeProperty.setNative] = function (value) {
this.minimumFaceSize = value;
};
MLKitFaceDetection.prototype[exports.enableFaceTrackingProperty.setNative] = function (value) {
[enableFaceTrackingProperty.setNative](value) {
this.enableFaceTracking = value;
};
MLKitFaceDetection.prototype[exports.detectionModeProperty.setNative] = function (value) {
}
[detectionModeProperty.setNative](value) {
this.detectionMode = value;
};
MLKitFaceDetection.scanResultEvent = "scanResult";
return MLKitFaceDetection;
}(mlkit_cameraview_1.MLKitCameraView));
exports.MLKitFaceDetection = MLKitFaceDetection;
exports.minimumFaceSizeProperty.register(MLKitFaceDetection);
exports.enableFaceTrackingProperty.register(MLKitFaceDetection);
exports.detectionModeProperty.register(MLKitFaceDetection);
}
}
MLKitFaceDetection.scanResultEvent = "scanResult";
minimumFaceSizeProperty.register(MLKitFaceDetection);
enableFaceTrackingProperty.register(MLKitFaceDetection);
detectionModeProperty.register(MLKitFaceDetection);

@@ -1,13 +0,6 @@

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.detectFacesOnDevice = exports.MLKitFaceDetection = void 0;
var image_source_1 = require("@nativescript/core/image-source");
var facedetection_common_1 = require("./facedetection-common");
var gmsTasks = com.google.android.gms.tasks;
var MLKitFaceDetection = (function (_super) {
__extends(MLKitFaceDetection, _super);
function MLKitFaceDetection() {
return _super !== null && _super.apply(this, arguments) || this;
}
MLKitFaceDetection.prototype.createDetector = function () {
import { ImageSource } from "@nativescript/core/image-source";
import { MLKitFaceDetection as MLKitFaceDetectionBase } from "./facedetection-common";
const gmsTasks = com.google.android.gms.tasks;
export class MLKitFaceDetection extends MLKitFaceDetectionBase {
createDetector() {
return getFaceDetector({

@@ -18,14 +11,13 @@ detectionMode: this.detectionMode,

});
};
MLKitFaceDetection.prototype.createSuccessListener = function () {
var _this = this;
}
createSuccessListener() {
return new gmsTasks.OnSuccessListener({
onSuccess: function (faces) {
onSuccess: faces => {
if (!faces || faces.size() === 0)
return;
var result = {
const result = {
faces: []
};
for (var i = 0; i < faces.size(); i++) {
var face = faces.get(i);
for (let i = 0; i < faces.size(); i++) {
const face = faces.get(i);
result.faces.push({

@@ -41,5 +33,5 @@ bounds: boundingBoxToBounds(face.getBoundingBox()),

}
_this.notify({
this.notify({
eventName: MLKitFaceDetection.scanResultEvent,
object: _this,
object: this,
value: result

@@ -49,8 +41,6 @@ });

});
};
return MLKitFaceDetection;
}(facedetection_common_1.MLKitFaceDetection));
exports.MLKitFaceDetection = MLKitFaceDetection;
}
}
function getFaceDetector(options) {
var builder = new com.google.firebase.ml.vision.face.FirebaseVisionFaceDetectorOptions.Builder()
const builder = new com.google.firebase.ml.vision.face.FirebaseVisionFaceDetectorOptions.Builder()
.setPerformanceMode(options.detectionMode === "accurate" ? com.google.firebase.ml.vision.face.FirebaseVisionFaceDetectorOptions.ACCURATE : com.google.firebase.ml.vision.face.FirebaseVisionFaceDetectorOptions.FAST)

@@ -77,14 +67,14 @@ .setLandmarkMode(com.google.firebase.ml.vision.face.FirebaseVisionFaceDetectorOptions.ALL_LANDMARKS)

}
function detectFacesOnDevice(options) {
return new Promise(function (resolve, reject) {
export function detectFacesOnDevice(options) {
return new Promise((resolve, reject) => {
try {
var firebaseVisionFaceDetector_1 = getFaceDetector(options);
var onSuccessListener = new gmsTasks.OnSuccessListener({
onSuccess: function (faces) {
var result = {
const firebaseVisionFaceDetector = getFaceDetector(options);
const onSuccessListener = new gmsTasks.OnSuccessListener({
onSuccess: faces => {
const result = {
faces: []
};
if (faces) {
for (var i = 0; i < faces.size(); i++) {
var face = faces.get(i);
for (let i = 0; i < faces.size(); i++) {
const face = faces.get(i);
result.faces.push({

@@ -102,9 +92,9 @@ bounds: boundingBoxToBounds(face.getBoundingBox()),

resolve(result);
firebaseVisionFaceDetector_1.close();
firebaseVisionFaceDetector.close();
}
});
var onFailureListener = new gmsTasks.OnFailureListener({
onFailure: function (exception) { return reject(exception.getMessage()); }
const onFailureListener = new gmsTasks.OnFailureListener({
onFailure: exception => reject(exception.getMessage())
});
firebaseVisionFaceDetector_1
firebaseVisionFaceDetector
.detectInImage(getImage(options))

@@ -120,6 +110,5 @@ .addOnSuccessListener(onSuccessListener)

}
exports.detectFacesOnDevice = detectFacesOnDevice;
function getImage(options) {
var image = options.image instanceof image_source_1.ImageSource ? options.image.android : options.image.imageSource.android;
const image = options.image instanceof ImageSource ? options.image.android : options.image.imageSource.android;
return com.google.firebase.ml.vision.common.FirebaseVisionImage.fromBitmap(image);
}

@@ -1,13 +0,6 @@

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.detectFacesOnDevice = exports.MLKitFaceDetection = void 0;
var image_source_1 = require("@nativescript/core/image-source");
var utils_1 = require("@nativescript/core/utils/utils");
var facedetection_common_1 = require("./facedetection-common");
var MLKitFaceDetection = (function (_super) {
__extends(MLKitFaceDetection, _super);
function MLKitFaceDetection() {
return _super !== null && _super.apply(this, arguments) || this;
}
MLKitFaceDetection.prototype.createDetector = function () {
import { ImageSource } from "@nativescript/core/image-source";
import { iOSNativeHelper as iosUtils } from "@nativescript/core/utils/utils";
import { MLKitFaceDetection as MLKitFaceDetectionBase } from "./facedetection-common";
export class MLKitFaceDetection extends MLKitFaceDetectionBase {
createDetector() {
return getDetector({

@@ -18,6 +11,5 @@ detectionMode: this.detectionMode,

});
};
MLKitFaceDetection.prototype.createSuccessListener = function () {
var _this = this;
return function (faces, error) {
}
createSuccessListener() {
return (faces, error) => {
if (error !== null) {

@@ -27,7 +19,7 @@ console.log(error.localizedDescription);

else if (faces !== null && faces.count > 0) {
var result = {
const result = {
faces: []
};
for (var i = 0, l = faces.count; i < l; i++) {
var face = faces.objectAtIndex(i);
for (let i = 0, l = faces.count; i < l; i++) {
const face = faces.objectAtIndex(i);
result.faces.push({

@@ -43,5 +35,5 @@ smilingProbability: face.hasSmilingProbability ? face.smilingProbability : undefined,

}
_this.notify({
this.notify({
eventName: MLKitFaceDetection.scanResultEvent,
object: _this,
object: this,
value: result

@@ -51,20 +43,18 @@ });

};
};
MLKitFaceDetection.prototype.rotateRecording = function () {
}
rotateRecording() {
return false;
};
MLKitFaceDetection.prototype.getVisionOrientation = function (imageOrientation) {
if (imageOrientation === 0 && !utils_1.iOSNativeHelper.isLandscape()) {
}
getVisionOrientation(imageOrientation) {
if (imageOrientation === 0 && !iosUtils.isLandscape()) {
return 6;
}
else {
return _super.prototype.getVisionOrientation.call(this, imageOrientation);
return super.getVisionOrientation(imageOrientation);
}
};
return MLKitFaceDetection;
}(facedetection_common_1.MLKitFaceDetection));
exports.MLKitFaceDetection = MLKitFaceDetection;
}
}
function getDetector(options) {
var firVision = FIRVision.vision();
var firOptions = FIRVisionFaceDetectorOptions.new();
const firVision = FIRVision.vision();
const firOptions = FIRVisionFaceDetectorOptions.new();
firOptions.performanceMode = options.detectionMode === "accurate" ? 2 : 1;

@@ -77,7 +67,7 @@ firOptions.landmarkMode = 2;

}
function detectFacesOnDevice(options) {
return new Promise(function (resolve, reject) {
export function detectFacesOnDevice(options) {
return new Promise((resolve, reject) => {
try {
var faceDetector = getDetector(options);
faceDetector.processImageCompletion(getImage(options), function (faces, error) {
const faceDetector = getDetector(options);
faceDetector.processImageCompletion(getImage(options), (faces, error) => {
if (error !== null) {

@@ -87,7 +77,7 @@ reject(error.localizedDescription);

else if (faces !== null) {
var result = {
const result = {
faces: []
};
for (var i = 0, l = faces.count; i < l; i++) {
var face = faces.objectAtIndex(i);
for (let i = 0, l = faces.count; i < l; i++) {
const face = faces.objectAtIndex(i);
result.faces.push({

@@ -113,7 +103,6 @@ smilingProbability: face.hasSmilingProbability ? face.smilingProbability : undefined,

}
exports.detectFacesOnDevice = detectFacesOnDevice;
function getImage(options) {
var image = options.image instanceof image_source_1.ImageSource ? options.image.ios : options.image.imageSource.ios;
var newImage = UIImage.alloc().initWithCGImageScaleOrientation(image.CGImage, 1, 0);
const image = options.image instanceof ImageSource ? options.image.ios : options.image.imageSource.ios;
const newImage = UIImage.alloc().initWithCGImageScaleOrientation(image.CGImage, 1, 0);
return FIRVisionImage.alloc().initWithImage(newImage);
}

@@ -1,22 +0,13 @@

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.MLKitImageLabeling = exports.confidenceThresholdProperty = void 0;
var properties_1 = require("@nativescript/core/ui/core/properties");
var mlkit_cameraview_1 = require("../mlkit-cameraview");
exports.confidenceThresholdProperty = new properties_1.Property({
import { Property } from "@nativescript/core/ui/core/properties";
import { MLKitCameraView } from "../mlkit-cameraview";
export const confidenceThresholdProperty = new Property({
name: "confidenceThreshold",
defaultValue: 0.5,
});
var MLKitImageLabeling = (function (_super) {
__extends(MLKitImageLabeling, _super);
function MLKitImageLabeling() {
return _super !== null && _super.apply(this, arguments) || this;
export class MLKitImageLabeling extends MLKitCameraView {
[confidenceThresholdProperty.setNative](value) {
this.confidenceThreshold = parseFloat(value);
}
MLKitImageLabeling.prototype[exports.confidenceThresholdProperty.setNative] = function (value) {
this.confidenceThreshold = parseFloat(value);
};
MLKitImageLabeling.scanResultEvent = "scanResult";
return MLKitImageLabeling;
}(mlkit_cameraview_1.MLKitCameraView));
exports.MLKitImageLabeling = MLKitImageLabeling;
exports.confidenceThresholdProperty.register(MLKitImageLabeling);
}
MLKitImageLabeling.scanResultEvent = "scanResult";
confidenceThresholdProperty.register(MLKitImageLabeling);

@@ -1,25 +0,17 @@

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.labelImageCloud = exports.labelImageOnDevice = exports.MLKitImageLabeling = void 0;
var image_source_1 = require("@nativescript/core/image-source");
var imagelabeling_common_1 = require("./imagelabeling-common");
var MLKitImageLabeling = (function (_super) {
__extends(MLKitImageLabeling, _super);
function MLKitImageLabeling() {
return _super !== null && _super.apply(this, arguments) || this;
import { ImageSource } from "@nativescript/core/image-source";
import { MLKitImageLabeling as MLKitImageLabelingBase } from "./imagelabeling-common";
export class MLKitImageLabeling extends MLKitImageLabelingBase {
createDetector() {
return getDetector(this.confidenceThreshold);
}
MLKitImageLabeling.prototype.createDetector = function () {
return getDetector(this.confidenceThreshold);
};
MLKitImageLabeling.prototype.createSuccessListener = function () {
var _this = this;
createSuccessListener() {
return new com.google.android.gms.tasks.OnSuccessListener({
onSuccess: function (labels) {
onSuccess: labels => {
if (labels.size() === 0)
return;
var result = {
const result = {
labels: []
};
for (var i = 0; i < labels.size(); i++) {
var label = labels.get(i);
for (let i = 0; i < labels.size(); i++) {
const label = labels.get(i);
result.labels.push({

@@ -30,5 +22,5 @@ text: label.getText(),

}
_this.notify({
this.notify({
eventName: MLKitImageLabeling.scanResultEvent,
object: _this,
object: this,
value: result

@@ -38,8 +30,6 @@ });

});
};
return MLKitImageLabeling;
}(imagelabeling_common_1.MLKitImageLabeling));
exports.MLKitImageLabeling = MLKitImageLabeling;
}
}
function getDetector(confidenceThreshold) {
var labelDetectorOptions = new com.google.firebase.ml.vision.label.FirebaseVisionOnDeviceImageLabelerOptions.Builder()
const labelDetectorOptions = new com.google.firebase.ml.vision.label.FirebaseVisionOnDeviceImageLabelerOptions.Builder()
.setConfidenceThreshold(confidenceThreshold)

@@ -49,14 +39,14 @@ .build();

}
function labelImageOnDevice(options) {
return new Promise(function (resolve, reject) {
export function labelImageOnDevice(options) {
return new Promise((resolve, reject) => {
try {
var firebaseVisionLabelDetector_1 = getDetector(options.confidenceThreshold || 0.5);
var onSuccessListener = new com.google.android.gms.tasks.OnSuccessListener({
onSuccess: function (labels) {
var result = {
const firebaseVisionLabelDetector = getDetector(options.confidenceThreshold || 0.5);
const onSuccessListener = new com.google.android.gms.tasks.OnSuccessListener({
onSuccess: labels => {
const result = {
labels: []
};
if (labels) {
for (var i = 0; i < labels.size(); i++) {
var label = labels.get(i);
for (let i = 0; i < labels.size(); i++) {
const label = labels.get(i);
result.labels.push({

@@ -69,9 +59,9 @@ text: label.getText(),

resolve(result);
firebaseVisionLabelDetector_1.close();
firebaseVisionLabelDetector.close();
}
});
var onFailureListener = new com.google.android.gms.tasks.OnFailureListener({
onFailure: function (exception) { return reject(exception.getMessage()); }
const onFailureListener = new com.google.android.gms.tasks.OnFailureListener({
onFailure: exception => reject(exception.getMessage())
});
firebaseVisionLabelDetector_1
firebaseVisionLabelDetector
.processImage(getImage(options))

@@ -87,18 +77,17 @@ .addOnSuccessListener(onSuccessListener)

}
exports.labelImageOnDevice = labelImageOnDevice;
function labelImageCloud(options) {
return new Promise(function (resolve, reject) {
export function labelImageCloud(options) {
return new Promise((resolve, reject) => {
try {
var cloudDetectorOptions = new com.google.firebase.ml.vision.label.FirebaseVisionCloudImageLabelerOptions.Builder()
const cloudDetectorOptions = new com.google.firebase.ml.vision.label.FirebaseVisionCloudImageLabelerOptions.Builder()
.setConfidenceThreshold(options.confidenceThreshold || 0.5)
.build();
var firebaseVisionCloudLabelDetector_1 = com.google.firebase.ml.vision.FirebaseVision.getInstance().getCloudImageLabeler(cloudDetectorOptions);
var onSuccessListener = new com.google.android.gms.tasks.OnSuccessListener({
onSuccess: function (labels) {
var result = {
const firebaseVisionCloudLabelDetector = com.google.firebase.ml.vision.FirebaseVision.getInstance().getCloudImageLabeler(cloudDetectorOptions);
const onSuccessListener = new com.google.android.gms.tasks.OnSuccessListener({
onSuccess: labels => {
const result = {
labels: []
};
if (labels) {
for (var i = 0; i < labels.size(); i++) {
var label = labels.get(i);
for (let i = 0; i < labels.size(); i++) {
const label = labels.get(i);
result.labels.push({

@@ -111,9 +100,9 @@ text: label.getText(),

resolve(result);
firebaseVisionCloudLabelDetector_1.close();
firebaseVisionCloudLabelDetector.close();
}
});
var onFailureListener = new com.google.android.gms.tasks.OnFailureListener({
onFailure: function (exception) { return reject(exception.getMessage()); }
const onFailureListener = new com.google.android.gms.tasks.OnFailureListener({
onFailure: exception => reject(exception.getMessage())
});
firebaseVisionCloudLabelDetector_1
firebaseVisionCloudLabelDetector
.processImage(getImage(options))

@@ -129,6 +118,5 @@ .addOnSuccessListener(onSuccessListener)

}
exports.labelImageCloud = labelImageCloud;
function getImage(options) {
var image = options.image instanceof image_source_1.ImageSource ? options.image.android : options.image.imageSource.android;
const image = options.image instanceof ImageSource ? options.image.android : options.image.imageSource.android;
return com.google.firebase.ml.vision.common.FirebaseVisionImage.fromBitmap(image);
}

@@ -1,17 +0,9 @@

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.labelImageCloud = exports.labelImageOnDevice = exports.MLKitImageLabeling = void 0;
var image_source_1 = require("@nativescript/core/image-source");
var imagelabeling_common_1 = require("./imagelabeling-common");
var MLKitImageLabeling = (function (_super) {
__extends(MLKitImageLabeling, _super);
function MLKitImageLabeling() {
return _super !== null && _super.apply(this, arguments) || this;
import { ImageSource } from "@nativescript/core/image-source";
import { MLKitImageLabeling as MLKitImageLabelingBase } from "./imagelabeling-common";
export class MLKitImageLabeling extends MLKitImageLabelingBase {
createDetector() {
return getDetector(this.confidenceThreshold);
}
MLKitImageLabeling.prototype.createDetector = function () {
return getDetector(this.confidenceThreshold);
};
MLKitImageLabeling.prototype.createSuccessListener = function () {
var _this = this;
return function (labels, error) {
createSuccessListener() {
return (labels, error) => {
if (error !== null) {

@@ -21,7 +13,7 @@ console.log(error.localizedDescription);

else if (labels !== null && labels.count > 0) {
var result = {
const result = {
labels: []
};
for (var i = 0, l = labels.count; i < l; i++) {
var label = labels.objectAtIndex(i);
for (let i = 0, l = labels.count; i < l; i++) {
const label = labels.objectAtIndex(i);
result.labels.push({

@@ -32,5 +24,5 @@ text: label.text,

}
_this.notify({
this.notify({
eventName: MLKitImageLabeling.scanResultEvent,
object: _this,
object: this,
value: result

@@ -40,20 +32,18 @@ });

};
};
MLKitImageLabeling.prototype.rotateRecording = function () {
}
rotateRecording() {
return true;
};
return MLKitImageLabeling;
}(imagelabeling_common_1.MLKitImageLabeling));
exports.MLKitImageLabeling = MLKitImageLabeling;
}
}
function getDetector(confidenceThreshold) {
var firVision = FIRVision.vision();
var fIRVisionOnDeviceImageLabelerOptions = FIRVisionOnDeviceImageLabelerOptions.new();
const firVision = FIRVision.vision();
const fIRVisionOnDeviceImageLabelerOptions = FIRVisionOnDeviceImageLabelerOptions.new();
fIRVisionOnDeviceImageLabelerOptions.confidenceThreshold = confidenceThreshold || 0.5;
return firVision.onDeviceImageLabelerWithOptions(fIRVisionOnDeviceImageLabelerOptions);
}
function labelImageOnDevice(options) {
return new Promise(function (resolve, reject) {
export function labelImageOnDevice(options) {
return new Promise((resolve, reject) => {
try {
var labelDetector = getDetector(options.confidenceThreshold);
labelDetector.processImageCompletion(getImage(options), function (labels, error) {
const labelDetector = getDetector(options.confidenceThreshold);
labelDetector.processImageCompletion(getImage(options), (labels, error) => {
if (error !== null) {

@@ -63,7 +53,7 @@ reject(error.localizedDescription);

else if (labels !== null) {
var result = {
const result = {
labels: []
};
for (var i = 0, l = labels.count; i < l; i++) {
var label = labels.objectAtIndex(i);
for (let i = 0, l = labels.count; i < l; i++) {
const label = labels.objectAtIndex(i);
result.labels.push({

@@ -84,11 +74,10 @@ text: label.text,

}
exports.labelImageOnDevice = labelImageOnDevice;
function labelImageCloud(options) {
return new Promise(function (resolve, reject) {
export function labelImageCloud(options) {
return new Promise((resolve, reject) => {
try {
var fIRVisionCloudImageLabelerOptions = FIRVisionCloudImageLabelerOptions.new();
const fIRVisionCloudImageLabelerOptions = FIRVisionCloudImageLabelerOptions.new();
fIRVisionCloudImageLabelerOptions.confidenceThreshold = options.confidenceThreshold || 0.5;
var firVision = FIRVision.vision();
var labeler = firVision.cloudImageLabelerWithOptions(fIRVisionCloudImageLabelerOptions);
labeler.processImageCompletion(getImage(options), function (labels, error) {
const firVision = FIRVision.vision();
const labeler = firVision.cloudImageLabelerWithOptions(fIRVisionCloudImageLabelerOptions);
labeler.processImageCompletion(getImage(options), (labels, error) => {
if (error !== null) {

@@ -98,7 +87,7 @@ reject(error.localizedDescription);

else if (labels !== null) {
var result = {
const result = {
labels: []
};
for (var i = 0, l = labels.count; i < l; i++) {
var label = labels.objectAtIndex(i);
for (let i = 0, l = labels.count; i < l; i++) {
const label = labels.objectAtIndex(i);
result.labels.push({

@@ -120,6 +109,5 @@ text: label.text,

}
exports.labelImageCloud = labelImageCloud;
function getImage(options) {
var image = options.image instanceof image_source_1.ImageSource ? options.image.ios : options.image.imageSource.ios;
const image = options.image instanceof ImageSource ? options.image.ios : options.image.imageSource.ios;
return FIRVisionImage.alloc().initWithImage(image);
}

@@ -1,25 +0,12 @@

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.smartreply = exports.translation = exports.naturallanguageidentification = exports.automl = exports.custommodel = exports.landmarkrecognition = exports.objectdetection = exports.imagelabeling = exports.facedetection = exports.barcodescanning = exports.textrecognition = void 0;
var textrecognition = require("./textrecognition");
exports.textrecognition = textrecognition;
var barcodescanning = require("./barcodescanning");
exports.barcodescanning = barcodescanning;
var facedetection = require("./facedetection");
exports.facedetection = facedetection;
var imagelabeling = require("./imagelabeling");
exports.imagelabeling = imagelabeling;
var objectdetection = require("./objectdetection");
exports.objectdetection = objectdetection;
var landmarkrecognition = require("./landmarkrecognition");
exports.landmarkrecognition = landmarkrecognition;
var custommodel = require("./custommodel");
exports.custommodel = custommodel;
var automl = require("./automl");
exports.automl = automl;
var naturallanguageidentification = require("./naturallanguageidentification");
exports.naturallanguageidentification = naturallanguageidentification;
var translation = require("./translation");
exports.translation = translation;
var smartreply = require("./smartreply");
exports.smartreply = smartreply;
import * as textrecognition from "./textrecognition";
import * as barcodescanning from "./barcodescanning";
import * as facedetection from "./facedetection";
import * as imagelabeling from "./imagelabeling";
import * as objectdetection from "./objectdetection";
import * as landmarkrecognition from "./landmarkrecognition";
import * as custommodel from "./custommodel";
import * as automl from "./automl";
import * as naturallanguageidentification from "./naturallanguageidentification";
import * as translation from "./translation";
import * as smartreply from "./smartreply";
export { textrecognition, barcodescanning, facedetection, imagelabeling, objectdetection, landmarkrecognition, custommodel, automl, naturallanguageidentification, translation, smartreply };

@@ -1,7 +0,4 @@

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.recognizeLandmarksCloud = void 0;
var image_source_1 = require("@nativescript/core/image-source");
import { ImageSource } from "@nativescript/core/image-source";
function getDetector(modelType, confidenceThreshold) {
var landmarkDetectorOptions = new com.google.firebase.ml.vision.cloud.FirebaseVisionCloudDetectorOptions.Builder()
const landmarkDetectorOptions = new com.google.firebase.ml.vision.cloud.FirebaseVisionCloudDetectorOptions.Builder()
.setModelType(modelType === "latest" ? com.google.firebase.ml.vision.cloud.FirebaseVisionCloudDetectorOptions.LATEST_MODEL : com.google.firebase.ml.vision.cloud.FirebaseVisionCloudDetectorOptions.STABLE_MODEL)

@@ -12,14 +9,14 @@ .setMaxResults(confidenceThreshold || 10)

}
function recognizeLandmarksCloud(options) {
return new Promise(function (resolve, reject) {
export function recognizeLandmarksCloud(options) {
return new Promise((resolve, reject) => {
try {
var firebaseVisionLandmarkDetector_1 = getDetector(options.modelType, options.maxResults);
var onSuccessListener = new com.google.android.gms.tasks.OnSuccessListener({
onSuccess: function (landmarks) {
var result = {
const firebaseVisionLandmarkDetector = getDetector(options.modelType, options.maxResults);
const onSuccessListener = new com.google.android.gms.tasks.OnSuccessListener({
onSuccess: landmarks => {
const result = {
landmarks: []
};
if (landmarks) {
for (var i = 0; i < landmarks.size(); i++) {
var landmark = landmarks.get(i);
for (let i = 0; i < landmarks.size(); i++) {
const landmark = landmarks.get(i);
result.landmarks.push({

@@ -32,9 +29,9 @@ name: landmark.getLandmark(),

resolve(result);
firebaseVisionLandmarkDetector_1.close();
firebaseVisionLandmarkDetector.close();
}
});
var onFailureListener = new com.google.android.gms.tasks.OnFailureListener({
onFailure: function (exception) { return reject(exception.getMessage()); }
const onFailureListener = new com.google.android.gms.tasks.OnFailureListener({
onFailure: exception => reject(exception.getMessage())
});
firebaseVisionLandmarkDetector_1
firebaseVisionLandmarkDetector
.detectInImage(getImage(options))

@@ -50,6 +47,5 @@ .addOnSuccessListener(onSuccessListener)

}
exports.recognizeLandmarksCloud = recognizeLandmarksCloud;
function getImage(options) {
var image = options.image instanceof image_source_1.ImageSource ? options.image.android : options.image.imageSource.android;
const image = options.image instanceof ImageSource ? options.image.android : options.image.imageSource.android;
return com.google.firebase.ml.vision.common.FirebaseVisionImage.fromBitmap(image);
}

@@ -1,8 +0,5 @@

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.recognizeLandmarksCloud = void 0;
var image_source_1 = require("@nativescript/core/image-source");
import { ImageSource } from "@nativescript/core/image-source";
function getDetector(modelType, maxResults) {
var firVision = FIRVision.vision();
var fIRVisionCloudDetectorOptions = FIRVisionCloudDetectorOptions.alloc();
const firVision = FIRVision.vision();
const fIRVisionCloudDetectorOptions = FIRVisionCloudDetectorOptions.alloc();
fIRVisionCloudDetectorOptions.modelType = modelType === "latest" ? 1 : 0;

@@ -12,7 +9,7 @@ fIRVisionCloudDetectorOptions.maxResults = maxResults || 10;

}
function recognizeLandmarksCloud(options) {
return new Promise(function (resolve, reject) {
export function recognizeLandmarksCloud(options) {
return new Promise((resolve, reject) => {
try {
var landmarkDetector = getDetector(options.modelType, options.maxResults);
landmarkDetector.detectInImageCompletion(getImage(options), function (landmarks, error) {
const landmarkDetector = getDetector(options.modelType, options.maxResults);
landmarkDetector.detectInImageCompletion(getImage(options), (landmarks, error) => {
if (error !== null) {

@@ -22,7 +19,7 @@ reject(error.localizedDescription);

else if (landmarks !== null) {
var result = {
const result = {
landmarks: []
};
for (var i = 0, l = landmarks.count; i < l; i++) {
var landmark = landmarks.objectAtIndex(i);
for (let i = 0, l = landmarks.count; i < l; i++) {
const landmark = landmarks.objectAtIndex(i);
console.log(">> detected landmark: " + landmark);

@@ -44,6 +41,5 @@ result.landmarks.push({

}
exports.recognizeLandmarksCloud = recognizeLandmarksCloud;
function getImage(options) {
var image = options.image instanceof image_source_1.ImageSource ? options.image.ios : options.image.imageSource.ios;
const image = options.image instanceof ImageSource ? options.image.ios : options.image.imageSource.ios;
return FIRVisionImage.alloc().initWithImage(image);
}

@@ -1,61 +0,52 @@

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.MLKitCameraView = exports.pauseProperty = exports.torchOnProperty = exports.preferFrontCameraProperty = exports.processEveryNthFrameProperty = void 0;
var content_view_1 = require("@nativescript/core/ui/content-view");
var properties_1 = require("@nativescript/core/ui/core/properties");
var view_base_1 = require("@nativescript/core/ui/core/view-base");
exports.processEveryNthFrameProperty = new properties_1.Property({
import { ContentView } from "@nativescript/core/ui/content-view";
import { Property } from "@nativescript/core/ui/core/properties";
import { booleanConverter } from "@nativescript/core/ui/core/view-base";
export const processEveryNthFrameProperty = new Property({
name: "processEveryNthFrame",
defaultValue: 10,
});
exports.preferFrontCameraProperty = new properties_1.Property({
export const preferFrontCameraProperty = new Property({
name: "preferFrontCamera",
defaultValue: false,
valueConverter: view_base_1.booleanConverter
valueConverter: booleanConverter
});
exports.torchOnProperty = new properties_1.Property({
export const torchOnProperty = new Property({
name: "torchOn",
defaultValue: false,
valueConverter: view_base_1.booleanConverter
valueConverter: booleanConverter
});
exports.pauseProperty = new properties_1.Property({
export const pauseProperty = new Property({
name: "pause",
defaultValue: false,
valueConverter: view_base_1.booleanConverter
valueConverter: booleanConverter
});
var MLKitCameraView = (function (_super) {
__extends(MLKitCameraView, _super);
function MLKitCameraView() {
return _super !== null && _super.apply(this, arguments) || this;
export class MLKitCameraView extends ContentView {
[processEveryNthFrameProperty.setNative](value) {
this.processEveryNthFrame = value;
}
MLKitCameraView.prototype[exports.processEveryNthFrameProperty.setNative] = function (value) {
this.processEveryNthFrame = value;
};
MLKitCameraView.prototype[exports.preferFrontCameraProperty.setNative] = function (value) {
[preferFrontCameraProperty.setNative](value) {
this.preferFrontCamera = value;
};
MLKitCameraView.prototype[exports.torchOnProperty.setNative] = function (value) {
}
[torchOnProperty.setNative](value) {
this.torchOn = value;
this.updateTorch();
};
MLKitCameraView.prototype[exports.pauseProperty.setNative] = function (value) {
}
[pauseProperty.setNative](value) {
this.pause = value;
this.pause ? this.pauseScanning() : this.resumeScanning();
};
MLKitCameraView.prototype.updateTorch = function () {
};
MLKitCameraView.prototype.pauseScanning = function () {
};
MLKitCameraView.prototype.resumeScanning = function () {
};
MLKitCameraView.prototype.preProcessImage = function (image) {
}
updateTorch() {
}
pauseScanning() {
}
resumeScanning() {
}
preProcessImage(image) {
return image;
};
MLKitCameraView.scanResultEvent = "scanResult";
return MLKitCameraView;
}(content_view_1.ContentView));
exports.MLKitCameraView = MLKitCameraView;
exports.processEveryNthFrameProperty.register(MLKitCameraView);
exports.preferFrontCameraProperty.register(MLKitCameraView);
exports.torchOnProperty.register(MLKitCameraView);
exports.pauseProperty.register(MLKitCameraView);
}
}
MLKitCameraView.scanResultEvent = "scanResult";
processEveryNthFrameProperty.register(MLKitCameraView);
preferFrontCameraProperty.register(MLKitCameraView);
torchOnProperty.register(MLKitCameraView);
pauseProperty.register(MLKitCameraView);

@@ -1,28 +0,20 @@

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.MLKitCameraView = void 0;
var application = require("@nativescript/core/application");
var utils = require("@nativescript/core/utils/utils");
var mlkit_cameraview_common_1 = require("./mlkit-cameraview-common");
var ActivityCompatClass = useAndroidX() ? global.androidx.core.app.ActivityCompat : android.support.v4.app.ActivityCompat;
var ContentPackageName = useAndroidX() ? global.androidx.core.content : android.support.v4.content;
var CAMERA_PERMISSION_REQUEST_CODE = 502;
var SizePair = (function () {
function SizePair() {
}
return SizePair;
}());
import * as application from "@nativescript/core/application";
import * as utils from "@nativescript/core/utils/utils";
import { MLKitCameraView as MLKitCameraViewBase } from "./mlkit-cameraview-common";
const ActivityCompatClass = useAndroidX() ? global.androidx.core.app.ActivityCompat : android.support.v4.app.ActivityCompat;
const ContentPackageName = useAndroidX() ? global.androidx.core.content : android.support.v4.content;
const CAMERA_PERMISSION_REQUEST_CODE = 502;
class SizePair {
}
function useAndroidX() {
return global.androidx && global.androidx.appcompat;
}
var MLKitCameraView = (function (_super) {
__extends(MLKitCameraView, _super);
function MLKitCameraView() {
var _this = _super !== null && _super.apply(this, arguments) || this;
_this.bytesToByteBuffer = new Map();
_this.pendingFrameData = null;
return _this;
export class MLKitCameraView extends MLKitCameraViewBase {
constructor() {
super(...arguments);
this.bytesToByteBuffer = new Map();
this.pendingFrameData = null;
}
MLKitCameraView.prototype.disposeNativeView = function () {
_super.prototype.disposeNativeView.call(this);
disposeNativeView() {
super.disposeNativeView();
this.surfaceView = null;

@@ -49,6 +41,5 @@ if (this.camera != null) {

this.pendingFrameData = null;
};
MLKitCameraView.prototype.createNativeView = function () {
var _this = this;
var nativeView = _super.prototype.createNativeView.call(this);
}
createNativeView() {
let nativeView = super.createNativeView();
if (this.hasCamera()) {

@@ -59,6 +50,6 @@ if (this.wasCameraPermissionGranted()) {

else {
var permissionCb_1 = function (args) {
const permissionCb = (args) => {
if (args.requestCode === CAMERA_PERMISSION_REQUEST_CODE) {
application.android.off(application.AndroidApplication.activityRequestPermissionsEvent, permissionCb_1);
for (var i = 0; i < args.permissions.length; i++) {
application.android.off(application.AndroidApplication.activityRequestPermissionsEvent, permissionCb);
for (let i = 0; i < args.permissions.length; i++) {
if (args.grantResults[i] === android.content.pm.PackageManager.PERMISSION_DENIED) {

@@ -69,6 +60,6 @@ console.log("Camera permission denied");

}
_this.initView(nativeView);
this.initView(nativeView);
}
};
application.android.on(application.AndroidApplication.activityRequestPermissionsEvent, permissionCb_1);
application.android.on(application.AndroidApplication.activityRequestPermissionsEvent, permissionCb);
ActivityCompatClass.requestPermissions(application.android.foregroundActivity || application.android.startActivity, [android.Manifest.permission.CAMERA], CAMERA_PERMISSION_REQUEST_CODE);

@@ -81,9 +72,8 @@ }

return nativeView;
};
MLKitCameraView.prototype.initNativeView = function () {
var _this = this;
_super.prototype.initNativeView.call(this);
application.on("resume", function (arg) { return _this.runCamera(); });
};
MLKitCameraView.prototype.hasCamera = function () {
}
initNativeView() {
super.initNativeView();
application.on("resume", arg => this.runCamera());
}
hasCamera() {
return !!utils.ad

@@ -93,5 +83,5 @@ .getApplicationContext()

.hasSystemFeature("android.hardware.camera");
};
MLKitCameraView.prototype.wasCameraPermissionGranted = function () {
var hasPermission = android.os.Build.VERSION.SDK_INT < 23;
}
wasCameraPermissionGranted() {
let hasPermission = android.os.Build.VERSION.SDK_INT < 23;
if (!hasPermission) {

@@ -102,28 +92,27 @@ hasPermission = android.content.pm.PackageManager.PERMISSION_GRANTED ===

return hasPermission;
};
MLKitCameraView.prototype.initView = function (nativeView) {
}
initView(nativeView) {
this.surfaceView = new android.view.SurfaceView(utils.ad.getApplicationContext());
nativeView.addView(this.surfaceView);
this.runCamera();
};
MLKitCameraView.prototype.runCamera = function () {
var _this = this;
setTimeout(function () {
if (!_this.surfaceView) {
}
runCamera() {
setTimeout(() => {
if (!this.surfaceView) {
return;
}
try {
var surfaceHolder = _this.surfaceView.getHolder();
var cameraFacingRequested = _this.preferFrontCamera ? android.hardware.Camera.CameraInfo.CAMERA_FACING_FRONT : android.hardware.Camera.CameraInfo.CAMERA_FACING_BACK;
var cameraInfo = new android.hardware.Camera.CameraInfo();
var requestedCameraId_1 = android.hardware.Camera.CameraInfo.CAMERA_FACING_BACK;
for (var i = 0; i < android.hardware.Camera.getNumberOfCameras(); ++i) {
const surfaceHolder = this.surfaceView.getHolder();
const cameraFacingRequested = this.preferFrontCamera ? android.hardware.Camera.CameraInfo.CAMERA_FACING_FRONT : android.hardware.Camera.CameraInfo.CAMERA_FACING_BACK;
const cameraInfo = new android.hardware.Camera.CameraInfo();
let requestedCameraId = android.hardware.Camera.CameraInfo.CAMERA_FACING_BACK;
for (let i = 0; i < android.hardware.Camera.getNumberOfCameras(); ++i) {
android.hardware.Camera.getCameraInfo(i, cameraInfo);
if (cameraInfo.facing === cameraFacingRequested) {
requestedCameraId_1 = i;
requestedCameraId = i;
break;
}
}
_this.camera = android.hardware.Camera.open(requestedCameraId_1);
var sizePair = _this.selectSizePair(_this.camera, 1400, 1200);
this.camera = android.hardware.Camera.open(requestedCameraId);
let sizePair = this.selectSizePair(this.camera, 1400, 1200);
if (!sizePair) {

@@ -133,76 +122,76 @@ console.log("Could not find suitable preview size.");

}
var pictureSize = sizePair.pictureSize;
var previewSize_1 = sizePair.previewSize;
var parameters_1 = _this.camera.getParameters();
const pictureSize = sizePair.pictureSize;
const previewSize = sizePair.previewSize;
const parameters = this.camera.getParameters();
if (pictureSize) {
parameters_1.setPictureSize(pictureSize.width, pictureSize.height);
parameters.setPictureSize(pictureSize.width, pictureSize.height);
}
parameters_1.setPreviewSize(previewSize_1.width, previewSize_1.height);
parameters_1.setPreviewFormat(android.graphics.ImageFormat.NV21);
parameters.setPreviewSize(previewSize.width, previewSize.height);
parameters.setPreviewFormat(android.graphics.ImageFormat.NV21);
application.off("orientationChanged");
application.on("orientationChanged", function () {
_this.setRotation(_this.camera, parameters_1, requestedCameraId_1);
setTimeout(function () {
_this.fixStretch(previewSize_1);
_this.setMetadata(previewSize_1);
application.on("orientationChanged", () => {
this.setRotation(this.camera, parameters, requestedCameraId);
setTimeout(() => {
this.fixStretch(previewSize);
this.setMetadata(previewSize);
}, 700);
});
_this.setRotation(_this.camera, parameters_1, requestedCameraId_1);
_this.fixStretch(previewSize_1);
if (parameters_1.getSupportedFocusModes().contains(android.hardware.Camera.Parameters.FOCUS_MODE_CONTINUOUS_VIDEO)) {
parameters_1.setFocusMode(android.hardware.Camera.Parameters.FOCUS_MODE_CONTINUOUS_VIDEO);
this.setRotation(this.camera, parameters, requestedCameraId);
this.fixStretch(previewSize);
if (parameters.getSupportedFocusModes().contains(android.hardware.Camera.Parameters.FOCUS_MODE_CONTINUOUS_VIDEO)) {
parameters.setFocusMode(android.hardware.Camera.Parameters.FOCUS_MODE_CONTINUOUS_VIDEO);
}
if (_this.torchOn) {
if (parameters_1.getSupportedFlashModes() && parameters_1.getSupportedFlashModes().contains(android.hardware.Camera.Parameters.FLASH_MODE_TORCH)) {
parameters_1.setFlashMode(android.hardware.Camera.Parameters.FLASH_MODE_TORCH);
if (this.torchOn) {
if (parameters.getSupportedFlashModes() && parameters.getSupportedFlashModes().contains(android.hardware.Camera.Parameters.FLASH_MODE_TORCH)) {
parameters.setFlashMode(android.hardware.Camera.Parameters.FLASH_MODE_TORCH);
}
}
_this.camera.setParameters(parameters_1);
_this.detector = _this.createDetector();
var onSuccessListener_1 = _this.createSuccessListener();
var onFailureListener_1 = _this.createFailureListener();
_this.setMetadata(previewSize_1);
var throttle_1 = 0;
_this.camera.setPreviewCallbackWithBuffer(new android.hardware.Camera.PreviewCallback({
onPreviewFrame: function (byteArray, camera) {
if (_this.pendingFrameData !== null) {
camera.addCallbackBuffer(_this.pendingFrameData.array());
_this.pendingFrameData = null;
this.camera.setParameters(parameters);
this.detector = this.createDetector();
const onSuccessListener = this.createSuccessListener();
const onFailureListener = this.createFailureListener();
this.setMetadata(previewSize);
let throttle = 0;
this.camera.setPreviewCallbackWithBuffer(new android.hardware.Camera.PreviewCallback({
onPreviewFrame: (byteArray, camera) => {
if (this.pendingFrameData !== null) {
camera.addCallbackBuffer(this.pendingFrameData.array());
this.pendingFrameData = null;
}
if (!_this.bytesToByteBuffer.has(byteArray)) {
if (!this.bytesToByteBuffer.has(byteArray)) {
console.log("Skipping frame");
return;
}
byteArray = _this.preProcessImage(byteArray);
_this.pendingFrameData = _this.bytesToByteBuffer.get(byteArray);
if (throttle_1++ % _this.processEveryNthFrame !== 0) {
byteArray = this.preProcessImage(byteArray);
this.pendingFrameData = this.bytesToByteBuffer.get(byteArray);
if (throttle++ % this.processEveryNthFrame !== 0) {
return;
}
var data = _this.pendingFrameData;
if (_this.detector.processImage) {
_this.lastVisionImage = com.google.firebase.ml.vision.common.FirebaseVisionImage.fromByteBuffer(data, _this.metadata);
_this.detector
.processImage(_this.lastVisionImage)
.addOnSuccessListener(onSuccessListener_1)
.addOnFailureListener(onFailureListener_1);
let data = this.pendingFrameData;
if (this.detector.processImage) {
this.lastVisionImage = com.google.firebase.ml.vision.common.FirebaseVisionImage.fromByteBuffer(data, this.metadata);
this.detector
.processImage(this.lastVisionImage)
.addOnSuccessListener(onSuccessListener)
.addOnFailureListener(onFailureListener);
}
else if (_this.detector.detectInImage) {
_this.lastVisionImage = com.google.firebase.ml.vision.common.FirebaseVisionImage.fromByteBuffer(data, _this.metadata);
_this.detector
.detectInImage(_this.lastVisionImage)
.addOnSuccessListener(onSuccessListener_1)
.addOnFailureListener(onFailureListener_1);
else if (this.detector.detectInImage) {
this.lastVisionImage = com.google.firebase.ml.vision.common.FirebaseVisionImage.fromByteBuffer(data, this.metadata);
this.detector
.detectInImage(this.lastVisionImage)
.addOnSuccessListener(onSuccessListener)
.addOnFailureListener(onFailureListener);
}
else {
_this.runDetector(data, previewSize_1.width, previewSize_1.height);
this.runDetector(data, previewSize.width, previewSize.height);
}
}
}));
_this.camera.addCallbackBuffer(_this.createPreviewBuffer(previewSize_1));
_this.camera.addCallbackBuffer(_this.createPreviewBuffer(previewSize_1));
_this.camera.addCallbackBuffer(_this.createPreviewBuffer(previewSize_1));
_this.camera.addCallbackBuffer(_this.createPreviewBuffer(previewSize_1));
_this.camera.setPreviewDisplay(surfaceHolder);
if (!_this.pause) {
_this.camera.startPreview();
this.camera.addCallbackBuffer(this.createPreviewBuffer(previewSize));
this.camera.addCallbackBuffer(this.createPreviewBuffer(previewSize));
this.camera.addCallbackBuffer(this.createPreviewBuffer(previewSize));
this.camera.addCallbackBuffer(this.createPreviewBuffer(previewSize));
this.camera.setPreviewDisplay(surfaceHolder);
if (!this.pause) {
this.camera.startPreview();
}

@@ -214,4 +203,4 @@ }

}, 500);
};
MLKitCameraView.prototype.setMetadata = function (previewSize) {
}
setMetadata(previewSize) {
this.metadata =

@@ -224,10 +213,10 @@ new com.google.firebase.ml.vision.common.FirebaseVisionImageMetadata.Builder()

.build();
};
MLKitCameraView.prototype.fixStretch = function (previewSize) {
var measuredWidth = this.surfaceView.getMeasuredWidth();
var measuredHeight = this.surfaceView.getMeasuredHeight();
var scale = previewSize.width / previewSize.height;
var invertedScale = previewSize.height / previewSize.width;
var measuredScale = measuredWidth / measuredHeight;
var scaleX = 1, scaleY = 1;
}
fixStretch(previewSize) {
let measuredWidth = this.surfaceView.getMeasuredWidth();
let measuredHeight = this.surfaceView.getMeasuredHeight();
let scale = previewSize.width / previewSize.height;
let invertedScale = previewSize.height / previewSize.width;
let measuredScale = measuredWidth / measuredHeight;
let scaleX = 1, scaleY = 1;
if (this.rotation == 1 || this.rotation == 3) {

@@ -249,40 +238,40 @@ if (measuredScale <= scale) {

}
var correction = scaleX / scaleY > 1 ? scaleX / scaleY : 1;
const correction = scaleX / scaleY > 1 ? scaleX / scaleY : 1;
this.surfaceView.setScaleX(scaleX * correction);
this.surfaceView.setScaleY(scaleY * correction);
};
MLKitCameraView.prototype.updateTorch = function () {
}
updateTorch() {
if (this.camera) {
var parameters = this.camera.getParameters();
const parameters = this.camera.getParameters();
parameters.setFlashMode(this.torchOn ? android.hardware.Camera.Parameters.FLASH_MODE_TORCH : android.hardware.Camera.Parameters.FLASH_MODE_OFF);
this.camera.setParameters(parameters);
}
};
MLKitCameraView.prototype.pauseScanning = function () {
}
pauseScanning() {
if (this.camera != null) {
this.camera.stopPreview();
}
};
MLKitCameraView.prototype.resumeScanning = function () {
}
resumeScanning() {
this.runCamera();
};
MLKitCameraView.prototype.runDetector = function (imageByteBuffer, width, height) {
}
runDetector(imageByteBuffer, width, height) {
throw new Error("No custom detector implemented for detector " + this.detector + ", so 'runDetector' can't do its thing");
};
MLKitCameraView.prototype.createFailureListener = function () {
}
createFailureListener() {
return new com.google.android.gms.tasks.OnFailureListener({
onFailure: function (exception) { return console.log(exception.getMessage()); }
onFailure: exception => console.log(exception.getMessage())
});
};
MLKitCameraView.prototype.generateValidPreviewSizeList = function (camera) {
var parameters = camera.getParameters();
var supportedPreviewSizes = parameters.getSupportedPreviewSizes();
var supportedPictureSizes = parameters.getSupportedPictureSizes();
var validPreviewSizes = [];
for (var i = 0; i < supportedPreviewSizes.size(); i++) {
var previewSize = supportedPreviewSizes.get(i);
var previewAspectRatio = previewSize.width / previewSize.height;
for (var j = 0; j < supportedPictureSizes.size(); j++) {
var pictureSize = supportedPictureSizes.get(j);
var pictureAspectRatio = pictureSize.width / pictureSize.height;
}
generateValidPreviewSizeList(camera) {
let parameters = camera.getParameters();
let supportedPreviewSizes = parameters.getSupportedPreviewSizes();
let supportedPictureSizes = parameters.getSupportedPictureSizes();
let validPreviewSizes = [];
for (let i = 0; i < supportedPreviewSizes.size(); i++) {
let previewSize = supportedPreviewSizes.get(i);
let previewAspectRatio = previewSize.width / previewSize.height;
for (let j = 0; j < supportedPictureSizes.size(); j++) {
let pictureSize = supportedPictureSizes.get(j);
let pictureAspectRatio = pictureSize.width / pictureSize.height;
if (Math.abs(previewAspectRatio - pictureAspectRatio) < 0.01) {

@@ -296,4 +285,4 @@ validPreviewSizes.push({ previewSize: previewSize, pictureSize: pictureSize });

console.log("No preview sizes have a corresponding same-aspect-ratio picture size");
for (var i = 0; i < supportedPreviewSizes.size(); i++) {
var previewSize = supportedPreviewSizes.get(i);
for (let i = 0; i < supportedPreviewSizes.size(); i++) {
let previewSize = supportedPreviewSizes.get(i);
validPreviewSizes.push({ previewSize: previewSize, pictureSize: null });

@@ -303,11 +292,11 @@ }

return validPreviewSizes;
};
MLKitCameraView.prototype.selectSizePair = function (camera, desiredWidth, desiredHeight) {
var validPreviewSizes = this.generateValidPreviewSizeList(camera);
var selectedPair = null;
var minDiff = java.lang.Integer.MAX_VALUE;
for (var i = 0; i < validPreviewSizes.length; i++) {
var sizePair = validPreviewSizes[i];
var size = sizePair.previewSize;
var diff = Math.abs(size.width - desiredWidth) + Math.abs(size.height - desiredHeight);
}
selectSizePair(camera, desiredWidth, desiredHeight) {
const validPreviewSizes = this.generateValidPreviewSizeList(camera);
let selectedPair = null;
let minDiff = java.lang.Integer.MAX_VALUE;
for (let i = 0; i < validPreviewSizes.length; i++) {
const sizePair = validPreviewSizes[i];
let size = sizePair.previewSize;
let diff = Math.abs(size.width - desiredWidth) + Math.abs(size.height - desiredHeight);
if (diff < minDiff) {

@@ -319,9 +308,9 @@ selectedPair = sizePair;

return selectedPair;
};
MLKitCameraView.prototype.createPreviewBuffer = function (previewSize) {
var bitsPerPixel = android.graphics.ImageFormat.getBitsPerPixel(android.graphics.ImageFormat.NV21);
var sizeInBits = previewSize.height * previewSize.width * bitsPerPixel;
var bufferSize = Math.ceil(sizeInBits / 8.0) + 1;
var byteArray = Array.create('byte', bufferSize);
var buffer = java.nio.ByteBuffer.wrap(byteArray);
}
createPreviewBuffer(previewSize) {
let bitsPerPixel = android.graphics.ImageFormat.getBitsPerPixel(android.graphics.ImageFormat.NV21);
let sizeInBits = previewSize.height * previewSize.width * bitsPerPixel;
let bufferSize = Math.ceil(sizeInBits / 8.0) + 1;
let byteArray = Array.create('byte', bufferSize);
let buffer = java.nio.ByteBuffer.wrap(byteArray);
if (!buffer.hasArray() || (buffer.array() !== byteArray)) {

@@ -334,7 +323,7 @@ console.log("Failed to create valid buffer for camera source.");

}
};
MLKitCameraView.prototype.setRotation = function (camera, parameters, cameraId) {
var windowManager = (application.android.foregroundActivity || application.android.startActivity).getSystemService(android.content.Context.WINDOW_SERVICE);
var degrees = 0;
var deviceRotation = windowManager.getDefaultDisplay().getRotation();
}
setRotation(camera, parameters, cameraId) {
let windowManager = (application.android.foregroundActivity || application.android.startActivity).getSystemService(android.content.Context.WINDOW_SERVICE);
let degrees = 0;
const deviceRotation = windowManager.getDefaultDisplay().getRotation();
switch (deviceRotation) {

@@ -356,6 +345,6 @@ case android.view.Surface.ROTATION_0:

}
var cameraInfo = new android.hardware.Camera.CameraInfo();
const cameraInfo = new android.hardware.Camera.CameraInfo();
android.hardware.Camera.getCameraInfo(cameraId, cameraInfo);
var angle;
var displayAngle;
let angle;
let displayAngle;
if (cameraInfo.facing === android.hardware.Camera.CameraInfo.CAMERA_FACING_FRONT) {

@@ -372,5 +361,3 @@ angle = (cameraInfo.orientation + degrees) % 360;

parameters.setRotation(angle);
};
return MLKitCameraView;
}(mlkit_cameraview_common_1.MLKitCameraView));
exports.MLKitCameraView = MLKitCameraView;
}
}

@@ -1,14 +0,7 @@

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.MLKitCameraView = void 0;
var utils_1 = require("@nativescript/core/utils");
var application = require("@nativescript/core/application");
var mlkit_cameraview_common_1 = require("./mlkit-cameraview-common");
var MLKitCameraView = (function (_super) {
__extends(MLKitCameraView, _super);
function MLKitCameraView() {
return _super !== null && _super.apply(this, arguments) || this;
}
MLKitCameraView.prototype.disposeNativeView = function () {
_super.prototype.disposeNativeView.call(this);
import { iOSNativeHelper as iosUtils } from "@nativescript/core/utils";
import * as application from "@nativescript/core/application";
import { MLKitCameraView as MLKitCameraViewBase } from "./mlkit-cameraview-common";
export class MLKitCameraView extends MLKitCameraViewBase {
disposeNativeView() {
super.disposeNativeView();
if (this.captureSession) {

@@ -22,5 +15,5 @@ this.captureSession.stopRunning();

application.off("orientationChanged");
};
MLKitCameraView.prototype.createNativeView = function () {
var v = _super.prototype.createNativeView.call(this);
}
createNativeView() {
let v = super.createNativeView();
if (this.canUseCamera()) {

@@ -33,4 +26,4 @@ this.initView();

return v;
};
MLKitCameraView.prototype.canUseCamera = function () {
}
canUseCamera() {
try {

@@ -44,5 +37,4 @@ return !!AVCaptureDeviceDiscoverySession &&

}
};
MLKitCameraView.prototype.initView = function () {
var _this = this;
}
initView() {
this.captureDevice = AVCaptureDeviceDiscoverySession.discoverySessionWithDeviceTypesMediaTypePosition([AVCaptureDeviceTypeBuiltInWideAngleCamera], AVMediaTypeVideo, this.preferFrontCamera ? 2 : 1).devices.firstObject;

@@ -55,3 +47,3 @@ if (this.torchOn) {

try {
var captureDeviceInput = AVCaptureDeviceInput.deviceInputWithDeviceError(this.captureDevice);
const captureDeviceInput = AVCaptureDeviceInput.deviceInputWithDeviceError(this.captureDevice);
this.captureSession.addInput(captureDeviceInput);

@@ -65,4 +57,4 @@ }

this.previewLayer.videoGravity = AVLayerVideoGravityResizeAspectFill;
if (utils_1.iOSNativeHelper.isLandscape()) {
var deviceOrientation = UIDevice.currentDevice.orientation;
if (iosUtils.isLandscape()) {
const deviceOrientation = UIDevice.currentDevice.orientation;
this.previewLayer.connection.videoOrientation = deviceOrientation === 3 ? 3 : 4;

@@ -75,21 +67,21 @@ }

application.on("orientationChanged", this.rotateOnOrientationChange.bind(this));
setTimeout(function () {
if (_this.ios) {
_this.ios.layer.addSublayer(_this.previewLayer);
setTimeout(() => {
if (this.ios) {
this.ios.layer.addSublayer(this.previewLayer);
}
if (!_this.pause) {
_this.captureSession.startRunning();
if (!this.pause) {
this.captureSession.startRunning();
}
_this.cameraView = TNSMLKitCameraView.alloc().initWithCaptureSession(_this.captureSession);
_this.cameraView.processEveryXFrames = _this.processEveryNthFrame;
if (_this.rotateRecording()) {
_this.cameraView.imageOrientation = 3;
this.cameraView = TNSMLKitCameraView.alloc().initWithCaptureSession(this.captureSession);
this.cameraView.processEveryXFrames = this.processEveryNthFrame;
if (this.rotateRecording()) {
this.cameraView.imageOrientation = 3;
}
_this.cameraView.delegate = TNSMLKitCameraViewDelegateImpl.createWithOwnerResultCallbackAndOptions(new WeakRef(_this), function (data) { }, _this.preProcessImage, {});
this.cameraView.delegate = TNSMLKitCameraViewDelegateImpl.createWithOwnerResultCallbackAndOptions(new WeakRef(this), data => { }, this.preProcessImage, {});
}, 0);
};
MLKitCameraView.prototype.rotateOnOrientationChange = function (args) {
}
rotateOnOrientationChange(args) {
if (this.previewLayer) {
if (args.newValue === "landscape") {
var deviceOrientation = UIDevice.currentDevice.orientation;
const deviceOrientation = UIDevice.currentDevice.orientation;
this.previewLayer.connection.videoOrientation = deviceOrientation === 3 ? 3 : 4;

@@ -101,10 +93,10 @@ }

}
};
MLKitCameraView.prototype.onLayout = function (left, top, right, bottom) {
_super.prototype.onLayout.call(this, left, top, right, bottom);
}
onLayout(left, top, right, bottom) {
super.onLayout(left, top, right, bottom);
if (this.previewLayer && this.ios && this.canUseCamera()) {
this.previewLayer.frame = this.ios.layer.bounds;
}
};
MLKitCameraView.prototype.getVisionOrientation = function (imageOrientation) {
}
getVisionOrientation(imageOrientation) {
if (imageOrientation === 0) {

@@ -137,5 +129,5 @@ return 1;

}
};
MLKitCameraView.prototype.updateTorch = function () {
var device = this.captureDevice;
}
updateTorch() {
const device = this.captureDevice;
if (device && device.hasTorch && device.lockForConfiguration()) {

@@ -152,31 +144,27 @@ if (this.torchOn) {

}
};
MLKitCameraView.prototype.pauseScanning = function () {
}
pauseScanning() {
if (this.captureSession && this.captureSession.running) {
this.captureSession.stopRunning();
}
};
MLKitCameraView.prototype.resumeScanning = function () {
}
resumeScanning() {
if (this.captureSession && !this.captureSession.running) {
this.captureSession.startRunning();
}
};
MLKitCameraView.prototype.runDetector = function (image, onComplete) {
}
runDetector(image, onComplete) {
throw new Error("No custom detector implemented, so 'runDetector' can't do its thing");
};
return MLKitCameraView;
}(mlkit_cameraview_common_1.MLKitCameraView));
exports.MLKitCameraView = MLKitCameraView;
var TNSMLKitCameraViewDelegateImpl = (function (_super) {
__extends(TNSMLKitCameraViewDelegateImpl, _super);
function TNSMLKitCameraViewDelegateImpl() {
var _this = _super !== null && _super.apply(this, arguments) || this;
_this.detectorBusy = false;
return _this;
}
TNSMLKitCameraViewDelegateImpl.createWithOwnerResultCallbackAndOptions = function (owner, callback, preProcessImageCallback, options) {
}
class TNSMLKitCameraViewDelegateImpl extends NSObject {
constructor() {
super(...arguments);
this.detectorBusy = false;
}
static createWithOwnerResultCallbackAndOptions(owner, callback, preProcessImageCallback, options) {
if (TNSMLKitCameraViewDelegateImpl.ObjCProtocols.length === 0 && typeof (TNSMLKitCameraViewDelegate) !== "undefined") {
TNSMLKitCameraViewDelegateImpl.ObjCProtocols.push(TNSMLKitCameraViewDelegate);
}
var delegate = TNSMLKitCameraViewDelegateImpl.new();
let delegate = TNSMLKitCameraViewDelegateImpl.new();
delegate.owner = owner;

@@ -189,5 +177,4 @@ delegate.options = options;

return delegate;
};
TNSMLKitCameraViewDelegateImpl.prototype.cameraDidOutputImage = function (image) {
var _this = this;
}
cameraDidOutputImage(image) {
if (!image || this.detectorBusy) {

@@ -197,9 +184,9 @@ return;

this.detectorBusy = true;
var onComplete = function () {
_this.detectorBusy = false;
const onComplete = () => {
this.detectorBusy = false;
};
this.owner.get().lastVisionImage = image;
if (this.detector.detectInImageCompletion) {
this.detector.detectInImageCompletion(this.uiImageToFIRVisionImage(image), function (result, error) {
_this.onSuccessListener(result, error);
this.detector.detectInImageCompletion(this.uiImageToFIRVisionImage(image), (result, error) => {
this.onSuccessListener(result, error);
onComplete();

@@ -209,4 +196,4 @@ });

else if (this.detector.processImageCompletion) {
this.detector.processImageCompletion(this.uiImageToFIRVisionImage(image), function (result, error) {
_this.onSuccessListener(result, error);
this.detector.processImageCompletion(this.uiImageToFIRVisionImage(image), (result, error) => {
this.onSuccessListener(result, error);
onComplete();

@@ -218,13 +205,12 @@ });

}
};
TNSMLKitCameraViewDelegateImpl.prototype.uiImageToFIRVisionImage = function (image) {
}
uiImageToFIRVisionImage(image) {
image = this.preProcessImageCallback(image);
var fIRVisionImage = FIRVisionImage.alloc().initWithImage(image);
var fIRVisionImageMetadata = FIRVisionImageMetadata.new();
const fIRVisionImage = FIRVisionImage.alloc().initWithImage(image);
const fIRVisionImageMetadata = FIRVisionImageMetadata.new();
fIRVisionImageMetadata.orientation = this.owner.get().getVisionOrientation(image.imageOrientation);
fIRVisionImage.metadata = fIRVisionImageMetadata;
return fIRVisionImage;
};
TNSMLKitCameraViewDelegateImpl.ObjCProtocols = [];
return TNSMLKitCameraViewDelegateImpl;
}(NSObject));
}
}
TNSMLKitCameraViewDelegateImpl.ObjCProtocols = [];

@@ -1,6 +0,3 @@

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.indentifyPossibleLanguages = exports.identifyNaturalLanguage = void 0;
function identifyNaturalLanguage(options) {
return new Promise(function (resolve, reject) {
export function identifyNaturalLanguage(options) {
return new Promise((resolve, reject) => {
try {

@@ -11,3 +8,3 @@ if (!options.text) {

}
var languageIdentifier = com.google.firebase.ml.naturallanguage.FirebaseNaturalLanguage.getInstance().getLanguageIdentification(new com.google.firebase.ml.naturallanguage.languageid.FirebaseLanguageIdentificationOptions.Builder()
const languageIdentifier = com.google.firebase.ml.naturallanguage.FirebaseNaturalLanguage.getInstance().getLanguageIdentification(new com.google.firebase.ml.naturallanguage.languageid.FirebaseLanguageIdentificationOptions.Builder()
.setConfidenceThreshold(options.confidenceThreshold || 0.5)

@@ -17,5 +14,5 @@ .build());

.addOnSuccessListener(new com.google.android.gms.tasks.OnSuccessListener({
onSuccess: function (languageCode) {
onSuccess: languageCode => {
if (languageCode && languageCode !== "und") {
resolve({ languageCode: languageCode });
resolve({ languageCode });
}

@@ -28,3 +25,3 @@ else {

.addOnFailureListener(new com.google.android.gms.tasks.OnFailureListener({
onFailure: function (exception) { return reject(exception.getMessage()); }
onFailure: exception => reject(exception.getMessage())
}));

@@ -38,7 +35,6 @@ }

}
exports.identifyNaturalLanguage = identifyNaturalLanguage;
function indentifyPossibleLanguages(options) {
return new Promise(function (resolve, reject) {
export function indentifyPossibleLanguages(options) {
return new Promise((resolve, reject) => {
try {
var languageIdentifier = com.google.firebase.ml.naturallanguage.FirebaseNaturalLanguage.getInstance().getLanguageIdentification(new com.google.firebase.ml.naturallanguage.languageid.FirebaseLanguageIdentificationOptions.Builder()
const languageIdentifier = com.google.firebase.ml.naturallanguage.FirebaseNaturalLanguage.getInstance().getLanguageIdentification(new com.google.firebase.ml.naturallanguage.languageid.FirebaseLanguageIdentificationOptions.Builder()
.setConfidenceThreshold(options.confidenceThreshold || 0.01)

@@ -48,7 +44,7 @@ .build());

.addOnSuccessListener(new com.google.android.gms.tasks.OnSuccessListener({
onSuccess: function (languages) {
var langs = [];
onSuccess: languages => {
const langs = [];
if (languages && languages.get(0).getLanguageCode() !== "und") {
for (var i = 0; i < languages.size(); i++) {
var l = languages.get(i);
for (let i = 0; i < languages.size(); i++) {
const l = languages.get(i);
langs.push({

@@ -64,3 +60,3 @@ languageCode: l.getLanguageCode(),

.addOnFailureListener(new com.google.android.gms.tasks.OnFailureListener({
onFailure: function (exception) { return reject(exception.getMessage()); }
onFailure: exception => reject(exception.getMessage())
}));

@@ -74,2 +70,1 @@ }

}
exports.indentifyPossibleLanguages = indentifyPossibleLanguages;

@@ -1,6 +0,3 @@

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.indentifyPossibleLanguages = exports.identifyNaturalLanguage = void 0;
function identifyNaturalLanguage(options) {
return new Promise(function (resolve, reject) {
export function identifyNaturalLanguage(options) {
return new Promise((resolve, reject) => {
try {

@@ -11,5 +8,5 @@ if (!options.text) {

}
var naturalLanguage = FIRNaturalLanguage.naturalLanguage();
var languageId = naturalLanguage.languageIdentificationWithOptions(FIRLanguageIdentificationOptions.alloc().initWithConfidenceThreshold(options.confidenceThreshold || 0.5));
languageId.identifyLanguageForTextCompletion(options.text, function (languageCode, error) {
const naturalLanguage = FIRNaturalLanguage.naturalLanguage();
const languageId = naturalLanguage.languageIdentificationWithOptions(FIRLanguageIdentificationOptions.alloc().initWithConfidenceThreshold(options.confidenceThreshold || 0.5));
languageId.identifyLanguageForTextCompletion(options.text, (languageCode, error) => {
if (error !== null) {

@@ -21,3 +18,3 @@ console.log("Failed with error: " + error.localizedDescription);

console.log("Identified language: " + languageCode);
resolve({ languageCode: languageCode });
resolve({ languageCode });
}

@@ -36,9 +33,8 @@ else {

}
exports.identifyNaturalLanguage = identifyNaturalLanguage;
function indentifyPossibleLanguages(options) {
return new Promise(function (resolve, reject) {
export function indentifyPossibleLanguages(options) {
return new Promise((resolve, reject) => {
try {
var naturalLanguage = FIRNaturalLanguage.naturalLanguage();
var languageId = naturalLanguage.languageIdentificationWithOptions(FIRLanguageIdentificationOptions.alloc().initWithConfidenceThreshold(options.confidenceThreshold || 0.01));
languageId.identifyPossibleLanguagesForTextCompletion(options.text, function (languages, error) {
const naturalLanguage = FIRNaturalLanguage.naturalLanguage();
const languageId = naturalLanguage.languageIdentificationWithOptions(FIRLanguageIdentificationOptions.alloc().initWithConfidenceThreshold(options.confidenceThreshold || 0.01));
languageId.identifyPossibleLanguagesForTextCompletion(options.text, (languages, error) => {
if (error !== null) {

@@ -53,5 +49,5 @@ console.log("Failed with error: " + error.localizedDescription);

else {
var langs = [];
for (var i = 0; i < languages.count; i++) {
var l = languages.objectAtIndex(i);
const langs = [];
for (let i = 0; i < languages.count; i++) {
const l = languages.objectAtIndex(i);
langs.push({

@@ -72,2 +68,1 @@ languageCode: l.languageCode,

}
exports.indentifyPossibleLanguages = indentifyPossibleLanguages;

@@ -1,31 +0,23 @@

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.detectObjects = exports.MLKitObjectDetection = void 0;
var image_source_1 = require("@nativescript/core/image-source");
var objectdetection_common_1 = require("./objectdetection-common");
var MLKitObjectDetection = (function (_super) {
__extends(MLKitObjectDetection, _super);
function MLKitObjectDetection() {
return _super !== null && _super.apply(this, arguments) || this;
import { ImageSource } from "@nativescript/core/image-source";
import { MLKitObjectDetection as MLKitObjectDetectionBase, ObjectDetectionCategory } from "./objectdetection-common";
export class MLKitObjectDetection extends MLKitObjectDetectionBase {
createDetector() {
return getDetector(this.classify, this.multiple);
}
MLKitObjectDetection.prototype.createDetector = function () {
return getDetector(this.classify, this.multiple);
};
MLKitObjectDetection.prototype.createSuccessListener = function () {
var _this = this;
createSuccessListener() {
return new com.google.android.gms.tasks.OnSuccessListener({
onSuccess: function (objects) {
onSuccess: objects => {
console.log(">> onSuccess @ " + new Date().getTime() + ", objects: " + objects.size());
if (objects.size() === 0)
return;
var result = {
const result = {
objects: []
};
var image = _this.lastVisionImage && _this.lastVisionImage.getBitmap ? _this.lastVisionImage.getBitmap() : null;
for (var i = 0; i < objects.size(); i++) {
const image = this.lastVisionImage && this.lastVisionImage.getBitmap ? this.lastVisionImage.getBitmap() : null;
for (let i = 0; i < objects.size(); i++) {
result.objects.push(getMLKitObjectDetectionResultItem(objects.get(i), image));
}
_this.notify({
this.notify({
eventName: MLKitObjectDetection.scanResultEvent,
object: _this,
object: this,
value: result

@@ -35,8 +27,6 @@ });

});
};
return MLKitObjectDetection;
}(objectdetection_common_1.MLKitObjectDetection));
exports.MLKitObjectDetection = MLKitObjectDetection;
}
}
function getDetector(classify, multiple) {
var builder = new com.google.firebase.ml.vision.objects.FirebaseVisionObjectDetectorOptions.Builder()
const builder = new com.google.firebase.ml.vision.objects.FirebaseVisionObjectDetectorOptions.Builder()
.setDetectorMode(com.google.firebase.ml.vision.objects.FirebaseVisionObjectDetectorOptions.SINGLE_IMAGE_MODE);

@@ -51,26 +41,26 @@ if (classify) {

}
function detectObjects(options) {
return new Promise(function (resolve, reject) {
export function detectObjects(options) {
return new Promise((resolve, reject) => {
try {
var firebaseObjectDetector_1 = getDetector(options.classify, options.multiple);
var image_1 = options.image instanceof image_source_1.ImageSource ? options.image.android : options.image.imageSource.android;
var firImage = com.google.firebase.ml.vision.common.FirebaseVisionImage.fromBitmap(image_1);
var onSuccessListener = new com.google.android.gms.tasks.OnSuccessListener({
onSuccess: function (objects) {
var result = {
const firebaseObjectDetector = getDetector(options.classify, options.multiple);
const image = options.image instanceof ImageSource ? options.image.android : options.image.imageSource.android;
const firImage = com.google.firebase.ml.vision.common.FirebaseVisionImage.fromBitmap(image);
const onSuccessListener = new com.google.android.gms.tasks.OnSuccessListener({
onSuccess: objects => {
const result = {
objects: []
};
if (objects) {
for (var i = 0; i < objects.size(); i++) {
result.objects.push(getMLKitObjectDetectionResultItem(objects.get(i), image_1));
for (let i = 0; i < objects.size(); i++) {
result.objects.push(getMLKitObjectDetectionResultItem(objects.get(i), image));
}
}
resolve(result);
firebaseObjectDetector_1.close();
firebaseObjectDetector.close();
}
});
var onFailureListener = new com.google.android.gms.tasks.OnFailureListener({
onFailure: function (exception) { return reject(exception.getMessage()); }
const onFailureListener = new com.google.android.gms.tasks.OnFailureListener({
onFailure: exception => reject(exception.getMessage())
});
firebaseObjectDetector_1
firebaseObjectDetector
.processImage(firImage)

@@ -86,3 +76,2 @@ .addOnSuccessListener(onSuccessListener)

}
exports.detectObjects = detectObjects;
function getMLKitObjectDetectionResultItem(obj, image) {

@@ -92,3 +81,3 @@ return {

confidence: obj.getClassificationConfidence() ? obj.getClassificationConfidence().doubleValue() : undefined,
category: objectdetection_common_1.ObjectDetectionCategory[obj.getClassificationCategory()],
category: ObjectDetectionCategory[obj.getClassificationCategory()],
bounds: boundingBoxToBounds(obj.getBoundingBox()),

@@ -102,3 +91,3 @@ image: !image ? null : {

function getImage(options) {
var image = options.image instanceof image_source_1.ImageSource ? options.image.android : options.image.imageSource.android;
const image = options.image instanceof ImageSource ? options.image.android : options.image.imageSource.android;
return com.google.firebase.ml.vision.common.FirebaseVisionImage.fromBitmap(image);

@@ -105,0 +94,0 @@ }

@@ -1,18 +0,10 @@

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.detectObjects = exports.MLKitObjectDetection = void 0;
var image_source_1 = require("@nativescript/core/image-source");
var utils_1 = require("@nativescript/core/utils/utils");
var objectdetection_common_1 = require("./objectdetection-common");
var MLKitObjectDetection = (function (_super) {
__extends(MLKitObjectDetection, _super);
function MLKitObjectDetection() {
return _super !== null && _super.apply(this, arguments) || this;
import { ImageSource } from "@nativescript/core/image-source";
import { iOSNativeHelper as iosUtils } from "@nativescript/core/utils/utils";
import { MLKitObjectDetection as MLKitObjectDetectionBase, ObjectDetectionCategory } from "./objectdetection-common";
export class MLKitObjectDetection extends MLKitObjectDetectionBase {
createDetector() {
return getDetector(true, this.classify, this.multiple);
}
MLKitObjectDetection.prototype.createDetector = function () {
return getDetector(true, this.classify, this.multiple);
};
MLKitObjectDetection.prototype.createSuccessListener = function () {
var _this = this;
return function (objects, error) {
createSuccessListener() {
return (objects, error) => {
if (error !== null) {

@@ -22,12 +14,12 @@ console.log(error.localizedDescription);

else if (objects !== null && objects.count > 0) {
var result = {
const result = {
objects: []
};
for (var i = 0, l = objects.count; i < l; i++) {
var obj = objects.objectAtIndex(i);
result.objects.push(getMLKitObjectDetectionResultItem(obj, _this.lastVisionImage));
for (let i = 0, l = objects.count; i < l; i++) {
const obj = objects.objectAtIndex(i);
result.objects.push(getMLKitObjectDetectionResultItem(obj, this.lastVisionImage));
}
_this.notify({
this.notify({
eventName: MLKitObjectDetection.scanResultEvent,
object: _this,
object: this,
value: result

@@ -37,12 +29,10 @@ });

};
};
MLKitObjectDetection.prototype.rotateRecording = function () {
}
rotateRecording() {
return true;
};
return MLKitObjectDetection;
}(objectdetection_common_1.MLKitObjectDetection));
exports.MLKitObjectDetection = MLKitObjectDetection;
}
}
function getDetector(stream, classify, multiple) {
var firVision = FIRVision.vision();
var fIRVisionObjectDetectorOptions = FIRVisionObjectDetectorOptions.new();
const firVision = FIRVision.vision();
const fIRVisionObjectDetectorOptions = FIRVisionObjectDetectorOptions.new();
fIRVisionObjectDetectorOptions.detectorMode = stream ? 1 : 0;

@@ -53,7 +43,7 @@ fIRVisionObjectDetectorOptions.shouldEnableClassification = classify || false;

}
function detectObjects(options) {
return new Promise(function (resolve, reject) {
export function detectObjects(options) {
return new Promise((resolve, reject) => {
try {
var detector = getDetector(false, options.classify, options.multiple);
detector.processImageCompletion(getImage(options), function (objects, error) {
const detector = getDetector(false, options.classify, options.multiple);
detector.processImageCompletion(getImage(options), (objects, error) => {
if (error !== null) {

@@ -63,8 +53,8 @@ reject(error.localizedDescription);

else if (objects !== null) {
var result = {
const result = {
objects: []
};
var image = options.image instanceof image_source_1.ImageSource ? options.image.ios : options.image.imageSource.ios;
for (var i = 0, l = objects.count; i < l; i++) {
var obj = objects.objectAtIndex(i);
const image = options.image instanceof ImageSource ? options.image.ios : options.image.imageSource.ios;
for (let i = 0, l = objects.count; i < l; i++) {
const obj = objects.objectAtIndex(i);
result.objects.push(getMLKitObjectDetectionResultItem(obj, image));

@@ -82,16 +72,15 @@ }

}
exports.detectObjects = detectObjects;
function getMLKitObjectDetectionResultItem(obj, image) {
console.log(">> getMLKitObjectDetectionResultItem, image: " + image);
var imageWidth;
var imageHeight;
var _a = obj.frame.origin, x = _a.x, y = _a.y;
var _b = obj.frame.size, width = _b.width, height = _b.height;
let imageWidth;
let imageHeight;
let { x, y } = obj.frame.origin;
let { width, height } = obj.frame.size;
if (image) {
imageWidth = image.size.width;
imageHeight = image.size.height;
var origX = x;
var origWidth = width;
var origImageWidth = imageWidth;
if (utils_1.iOSNativeHelper.isLandscape()) {
const origX = x;
const origWidth = width;
const origImageWidth = imageWidth;
if (iosUtils.isLandscape()) {
if (UIDevice.currentDevice.orientation === 4) {

@@ -113,3 +102,3 @@ x = image.size.width - (width + x);

id: obj.trackingID,
category: objectdetection_common_1.ObjectDetectionCategory[obj.classificationCategory],
category: ObjectDetectionCategory[obj.classificationCategory],
confidence: obj.confidence,

@@ -119,8 +108,8 @@ ios: obj,

origin: {
x: x,
y: y
x,
y
},
size: {
width: width,
height: height
width,
height
}

@@ -135,4 +124,4 @@ },

function getImage(options) {
var image = options.image instanceof image_source_1.ImageSource ? options.image.ios : options.image.imageSource.ios;
const image = options.image instanceof ImageSource ? options.image.ios : options.image.imageSource.ios;
return FIRVisionImage.alloc().initWithImage(image);
}

@@ -1,8 +0,5 @@

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.MLKitObjectDetection = exports.multipleProperty = exports.classifyProperty = exports.ObjectDetectionCategory = void 0;
var properties_1 = require("@nativescript/core/ui/core/properties");
var view_base_1 = require("@nativescript/core/ui/core/view-base");
var mlkit_cameraview_1 = require("../mlkit-cameraview");
var ObjectDetectionCategory;
import { Property } from "@nativescript/core/ui/core/properties";
import { booleanConverter } from "@nativescript/core/ui/core/view-base";
import { MLKitCameraView } from "../mlkit-cameraview";
export var ObjectDetectionCategory;
(function (ObjectDetectionCategory) {

@@ -15,29 +12,23 @@ ObjectDetectionCategory[ObjectDetectionCategory["Unknown"] = 0] = "Unknown";

ObjectDetectionCategory[ObjectDetectionCategory["Plants"] = 5] = "Plants";
})(ObjectDetectionCategory = exports.ObjectDetectionCategory || (exports.ObjectDetectionCategory = {}));
exports.classifyProperty = new properties_1.Property({
})(ObjectDetectionCategory || (ObjectDetectionCategory = {}));
export const classifyProperty = new Property({
name: "classify",
defaultValue: false,
valueConverter: view_base_1.booleanConverter
valueConverter: booleanConverter
});
exports.multipleProperty = new properties_1.Property({
export const multipleProperty = new Property({
name: "multiple",
defaultValue: false,
valueConverter: view_base_1.booleanConverter
valueConverter: booleanConverter
});
var MLKitObjectDetection = (function (_super) {
__extends(MLKitObjectDetection, _super);
function MLKitObjectDetection() {
return _super !== null && _super.apply(this, arguments) || this;
export class MLKitObjectDetection extends MLKitCameraView {
[classifyProperty.setNative](value) {
this.classify = value;
}
MLKitObjectDetection.prototype[exports.classifyProperty.setNative] = function (value) {
this.classify = value;
};
MLKitObjectDetection.prototype[exports.multipleProperty.setNative] = function (value) {
[multipleProperty.setNative](value) {
this.multiple = value;
};
MLKitObjectDetection.scanResultEvent = "scanResult";
return MLKitObjectDetection;
}(mlkit_cameraview_1.MLKitCameraView));
exports.MLKitObjectDetection = MLKitObjectDetection;
exports.classifyProperty.register(MLKitObjectDetection);
exports.multipleProperty.register(MLKitObjectDetection);
}
}
MLKitObjectDetection.scanResultEvent = "scanResult";
classifyProperty.register(MLKitObjectDetection);
multipleProperty.register(MLKitObjectDetection);

@@ -1,20 +0,17 @@

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.suggestReplies = void 0;
function suggestReplies(options) {
return new Promise(function (resolve, reject) {
export function suggestReplies(options) {
return new Promise((resolve, reject) => {
try {
var conversation_1 = new java.util.ArrayList();
options.conversation.forEach(function (m) {
const conversation = new java.util.ArrayList();
options.conversation.forEach(m => {
if (m.localUser) {
conversation_1.add(com.google.firebase.ml.naturallanguage.smartreply.FirebaseTextMessage.createForLocalUser(m.text, m.timestamp));
conversation.add(com.google.firebase.ml.naturallanguage.smartreply.FirebaseTextMessage.createForLocalUser(m.text, m.timestamp));
}
else {
conversation_1.add(com.google.firebase.ml.naturallanguage.smartreply.FirebaseTextMessage.createForRemoteUser(m.text, m.timestamp, m.userId));
conversation.add(com.google.firebase.ml.naturallanguage.smartreply.FirebaseTextMessage.createForRemoteUser(m.text, m.timestamp, m.userId));
}
});
var smartReply = com.google.firebase.ml.naturallanguage.FirebaseNaturalLanguage.getInstance().getSmartReply();
smartReply.suggestReplies(conversation_1)
const smartReply = com.google.firebase.ml.naturallanguage.FirebaseNaturalLanguage.getInstance().getSmartReply();
smartReply.suggestReplies(conversation)
.addOnSuccessListener(new com.google.android.gms.tasks.OnSuccessListener({
onSuccess: function (result) {
onSuccess: (result) => {
if (result.getStatus() == com.google.firebase.ml.naturallanguage.smartreply.SmartReplySuggestionResult.STATUS_NOT_SUPPORTED_LANGUAGE) {

@@ -27,5 +24,5 @@ reject("Unsupported language");

else if (result.getStatus() == com.google.firebase.ml.naturallanguage.smartreply.SmartReplySuggestionResult.STATUS_SUCCESS) {
var suggestions = [];
for (var i = 0; i < result.getSuggestions().size(); i++) {
var s = result.getSuggestions().get(i);
const suggestions = [];
for (let i = 0; i < result.getSuggestions().size(); i++) {
const s = result.getSuggestions().get(i);
suggestions.push(s.getText());

@@ -41,3 +38,3 @@ }

.addOnFailureListener(new com.google.android.gms.tasks.OnFailureListener({
onFailure: function (exception) { return reject(exception.getMessage()); }
onFailure: exception => reject(exception.getMessage())
}));

@@ -51,2 +48,1 @@ }

}
exports.suggestReplies = suggestReplies;

@@ -1,12 +0,9 @@

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.suggestReplies = void 0;
function suggestReplies(options) {
return new Promise(function (resolve, reject) {
export function suggestReplies(options) {
return new Promise((resolve, reject) => {
try {
var naturalLanguage = FIRNaturalLanguage.naturalLanguage();
var smartReply = naturalLanguage.smartReply();
var conversation_1 = NSMutableArray.new();
options.conversation.forEach(function (m) { return conversation_1.addObject(FIRTextMessage.alloc().initWithTextTimestampUserIDIsLocalUser(m.text, m.timestamp, m.userId, m.localUser)); });
smartReply.suggestRepliesForMessagesCompletion(conversation_1, function (result, error) {
const naturalLanguage = FIRNaturalLanguage.naturalLanguage();
const smartReply = naturalLanguage.smartReply();
const conversation = NSMutableArray.new();
options.conversation.forEach(m => conversation.addObject(FIRTextMessage.alloc().initWithTextTimestampUserIDIsLocalUser(m.text, m.timestamp, m.userId, m.localUser)));
smartReply.suggestRepliesForMessagesCompletion(conversation, (result, error) => {
if (error) {

@@ -25,5 +22,5 @@ reject(error.localizedDescription);

else if (result.status === 0) {
var suggestions = [];
for (var i = 0; i < result.suggestions.count; i++) {
var s = result.suggestions.objectAtIndex(i);
const suggestions = [];
for (let i = 0; i < result.suggestions.count; i++) {
const s = result.suggestions.objectAtIndex(i);
suggestions.push(s.text);

@@ -44,2 +41,1 @@ }

}
exports.suggestReplies = suggestReplies;

@@ -1,22 +0,14 @@

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.recognizeTextCloud = exports.recognizeTextOnDevice = exports.MLKitTextRecognition = void 0;
var image_source_1 = require("@nativescript/core/image-source");
var textrecognition_common_1 = require("./textrecognition-common");
var MLKitTextRecognition = (function (_super) {
__extends(MLKitTextRecognition, _super);
function MLKitTextRecognition() {
return _super !== null && _super.apply(this, arguments) || this;
import { ImageSource } from "@nativescript/core/image-source";
import { MLKitTextRecognition as MLKitTextRecognitionBase } from "./textrecognition-common";
export class MLKitTextRecognition extends MLKitTextRecognitionBase {
createDetector() {
return com.google.firebase.ml.vision.FirebaseVision.getInstance().getOnDeviceTextRecognizer();
}
MLKitTextRecognition.prototype.createDetector = function () {
return com.google.firebase.ml.vision.FirebaseVision.getInstance().getOnDeviceTextRecognizer();
};
MLKitTextRecognition.prototype.createSuccessListener = function () {
var _this = this;
createSuccessListener() {
return new com.google.android.gms.tasks.OnSuccessListener({
onSuccess: function (firebaseVisionText) {
onSuccess: firebaseVisionText => {
if (firebaseVisionText.getTextBlocks().size() > 0) {
_this.notify({
this.notify({
eventName: MLKitTextRecognition.scanResultEvent,
object: _this,
object: this,
value: getResult(firebaseVisionText)

@@ -27,6 +19,4 @@ });

});
};
return MLKitTextRecognition;
}(textrecognition_common_1.MLKitTextRecognition));
exports.MLKitTextRecognition = MLKitTextRecognition;
}
}
function boundingBoxToBounds(rect) {

@@ -48,3 +38,3 @@ return {

}
var result = {
const result = {
text: firebaseVisionText.getText(),

@@ -54,12 +44,12 @@ blocks: [],

};
for (var i = 0; i < firebaseVisionText.getTextBlocks().size(); i++) {
var textBlock = firebaseVisionText.getTextBlocks().get(i);
var lines = textBlock.getLines();
var lns = [];
for (var j = 0; j < lines.size(); j++) {
var line = lines.get(j);
var elements = line.getElements();
var elms = [];
for (var k = 0; k < elements.size(); k++) {
var element = elements.get(k);
for (let i = 0; i < firebaseVisionText.getTextBlocks().size(); i++) {
const textBlock = firebaseVisionText.getTextBlocks().get(i);
const lines = textBlock.getLines();
const lns = [];
for (let j = 0; j < lines.size(); j++) {
const line = lines.get(j);
const elements = line.getElements();
const elms = [];
for (let k = 0; k < elements.size(); k++) {
const element = elements.get(k);
elms.push({

@@ -86,16 +76,16 @@ text: element.getText(),

}
function recognizeTextOnDevice(options) {
return new Promise(function (resolve, reject) {
export function recognizeTextOnDevice(options) {
return new Promise((resolve, reject) => {
try {
var firebaseVisionTextRecognizer_1 = com.google.firebase.ml.vision.FirebaseVision.getInstance().getOnDeviceTextRecognizer();
var onSuccessListener = new com.google.android.gms.tasks.OnSuccessListener({
onSuccess: function (firebaseVisionText) {
const firebaseVisionTextRecognizer = com.google.firebase.ml.vision.FirebaseVision.getInstance().getOnDeviceTextRecognizer();
const onSuccessListener = new com.google.android.gms.tasks.OnSuccessListener({
onSuccess: firebaseVisionText => {
resolve(getResult(firebaseVisionText));
firebaseVisionTextRecognizer_1.close();
firebaseVisionTextRecognizer.close();
}
});
var onFailureListener = new com.google.android.gms.tasks.OnFailureListener({
onFailure: function (exception) { return reject(exception.getMessage()); }
const onFailureListener = new com.google.android.gms.tasks.OnFailureListener({
onFailure: exception => reject(exception.getMessage())
});
firebaseVisionTextRecognizer_1
firebaseVisionTextRecognizer
.processImage(getImage(options))

@@ -111,17 +101,16 @@ .addOnSuccessListener(onSuccessListener)

}
exports.recognizeTextOnDevice = recognizeTextOnDevice;
function recognizeTextCloud(options) {
return new Promise(function (resolve, reject) {
export function recognizeTextCloud(options) {
return new Promise((resolve, reject) => {
try {
var firebaseVisionCloudTextRecognizer_1 = com.google.firebase.ml.vision.FirebaseVision.getInstance().getCloudTextRecognizer();
var onSuccessListener = new com.google.android.gms.tasks.OnSuccessListener({
onSuccess: function (firebaseVisionText) {
const firebaseVisionCloudTextRecognizer = com.google.firebase.ml.vision.FirebaseVision.getInstance().getCloudTextRecognizer();
const onSuccessListener = new com.google.android.gms.tasks.OnSuccessListener({
onSuccess: firebaseVisionText => {
resolve(getResult(firebaseVisionText));
firebaseVisionCloudTextRecognizer_1.close();
firebaseVisionCloudTextRecognizer.close();
}
});
var onFailureListener = new com.google.android.gms.tasks.OnFailureListener({
onFailure: function (exception) { return reject(exception.getMessage()); }
const onFailureListener = new com.google.android.gms.tasks.OnFailureListener({
onFailure: exception => reject(exception.getMessage())
});
firebaseVisionCloudTextRecognizer_1
firebaseVisionCloudTextRecognizer
.processImage(getImage(options))

@@ -137,6 +126,5 @@ .addOnSuccessListener(onSuccessListener)

}
exports.recognizeTextCloud = recognizeTextCloud;
function getImage(options) {
var image = options.image instanceof image_source_1.ImageSource ? options.image.android : options.image.imageSource.android;
const image = options.image instanceof ImageSource ? options.image.android : options.image.imageSource.android;
return com.google.firebase.ml.vision.common.FirebaseVisionImage.fromBitmap(image);
}

@@ -1,18 +0,10 @@

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.recognizeTextCloud = exports.recognizeTextOnDevice = exports.MLKitTextRecognition = void 0;
var image_source_1 = require("@nativescript/core/image-source");
var textrecognition_common_1 = require("./textrecognition-common");
var MLKitTextRecognition = (function (_super) {
__extends(MLKitTextRecognition, _super);
function MLKitTextRecognition() {
return _super !== null && _super.apply(this, arguments) || this;
import { ImageSource } from "@nativescript/core/image-source";
import { MLKitTextRecognition as MLKitTextRecognitionBase } from "./textrecognition-common";
export class MLKitTextRecognition extends MLKitTextRecognitionBase {
createDetector() {
const firVision = FIRVision.vision();
return firVision.onDeviceTextRecognizer();
}
MLKitTextRecognition.prototype.createDetector = function () {
var firVision = FIRVision.vision();
return firVision.onDeviceTextRecognizer();
};
MLKitTextRecognition.prototype.createSuccessListener = function () {
var _this = this;
return function (visionText, error) {
createSuccessListener() {
return (visionText, error) => {
if (error !== null) {

@@ -22,5 +14,5 @@ console.log(error.localizedDescription);

else if (visionText !== null) {
_this.notify({
this.notify({
eventName: MLKitTextRecognition.scanResultEvent,
object: _this,
object: this,
value: getResult(visionText)

@@ -30,9 +22,7 @@ });

};
};
MLKitTextRecognition.prototype.rotateRecording = function () {
}
rotateRecording() {
return true;
};
return MLKitTextRecognition;
}(textrecognition_common_1.MLKitTextRecognition));
exports.MLKitTextRecognition = MLKitTextRecognition;
}
}
function getResult(visionText) {

@@ -42,3 +32,3 @@ if (visionText === null) {

}
var result = {
const result = {
text: visionText.text,

@@ -48,5 +38,5 @@ blocks: [],

};
var _loop_1 = function (i, l) {
var feature = visionText.blocks.objectAtIndex(i);
var resultFeature = {
for (let i = 0, l = visionText.blocks.count; i < l; i++) {
const feature = visionText.blocks.objectAtIndex(i);
const resultFeature = {
text: feature.text,

@@ -57,4 +47,4 @@ confidence: feature.confidence,

};
var addLineToResult = function (line) {
var resultLine = {
const addLineToResult = (line) => {
const resultLine = {
text: feature.text,

@@ -65,4 +55,4 @@ confidence: line.confidence,

};
for (var a = 0, m = line.elements.count; a < m; a++) {
var element = line.elements.objectAtIndex(a);
for (let a = 0, m = line.elements.count; a < m; a++) {
const element = line.elements.objectAtIndex(a);
resultLine.elements.push({

@@ -76,4 +66,4 @@ text: element.text,

if (feature instanceof FIRVisionTextBlock) {
var textBlock = feature;
for (var j = 0, k = textBlock.lines.count; j < k; j++) {
const textBlock = feature;
for (let j = 0, k = textBlock.lines.count; j < k; j++) {
addLineToResult(textBlock.lines.objectAtIndex(j));

@@ -86,14 +76,11 @@ }

result.blocks.push(resultFeature);
};
for (var i = 0, l = visionText.blocks.count; i < l; i++) {
_loop_1(i, l);
}
return result;
}
function recognizeTextOnDevice(options) {
return new Promise(function (resolve, reject) {
export function recognizeTextOnDevice(options) {
return new Promise((resolve, reject) => {
try {
var firVision = FIRVision.vision();
var textDetector = firVision.onDeviceTextRecognizer();
textDetector.processImageCompletion(getImage(options), function (visionText, error) {
const firVision = FIRVision.vision();
const textDetector = firVision.onDeviceTextRecognizer();
textDetector.processImageCompletion(getImage(options), (visionText, error) => {
if (error !== null) {

@@ -113,11 +100,10 @@ reject(error.localizedDescription);

}
exports.recognizeTextOnDevice = recognizeTextOnDevice;
function recognizeTextCloud(options) {
return new Promise(function (resolve, reject) {
export function recognizeTextCloud(options) {
return new Promise((resolve, reject) => {
try {
var fIRVisionCloudDetectorOptions = FIRVisionCloudTextRecognizerOptions.new();
const fIRVisionCloudDetectorOptions = FIRVisionCloudTextRecognizerOptions.new();
fIRVisionCloudDetectorOptions.modelType = 0;
var firVision = FIRVision.vision();
var textDetector = firVision.cloudTextRecognizerWithOptions(fIRVisionCloudDetectorOptions);
textDetector.processImageCompletion(getImage(options), function (visionText, error) {
const firVision = FIRVision.vision();
const textDetector = firVision.cloudTextRecognizerWithOptions(fIRVisionCloudDetectorOptions);
textDetector.processImageCompletion(getImage(options), (visionText, error) => {
console.log(">>> recognizeTextCloud error? " + error + ", visionText? " + visionText);

@@ -141,6 +127,5 @@ if (error !== null) {

}
exports.recognizeTextCloud = recognizeTextCloud;
function getImage(options) {
var image = options.image instanceof image_source_1.ImageSource ? options.image.ios : options.image.imageSource.ios;
const image = options.image instanceof ImageSource ? options.image.ios : options.image.imageSource.ios;
return FIRVisionImage.alloc().initWithImage(image);
}

@@ -1,24 +0,15 @@

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.MLKitTextRecognition = exports.reportDuplicatesProperty = void 0;
var view_base_1 = require("@nativescript/core/ui/core/view-base");
var properties_1 = require("@nativescript/core/ui/core/properties");
var mlkit_cameraview_1 = require("../mlkit-cameraview");
exports.reportDuplicatesProperty = new properties_1.Property({
import { booleanConverter } from "@nativescript/core/ui/core/view-base";
import { Property } from "@nativescript/core/ui/core/properties";
import { MLKitCameraView } from "../mlkit-cameraview";
export const reportDuplicatesProperty = new Property({
name: "reportDuplicates",
defaultValue: false,
valueConverter: view_base_1.booleanConverter
valueConverter: booleanConverter
});
var MLKitTextRecognition = (function (_super) {
__extends(MLKitTextRecognition, _super);
function MLKitTextRecognition() {
return _super !== null && _super.apply(this, arguments) || this;
export class MLKitTextRecognition extends MLKitCameraView {
[reportDuplicatesProperty.setNative](value) {
this.reportDuplicates = value;
}
MLKitTextRecognition.prototype[exports.reportDuplicatesProperty.setNative] = function (value) {
this.reportDuplicates = value;
};
MLKitTextRecognition.scanResultEvent = "scanResult";
return MLKitTextRecognition;
}(mlkit_cameraview_1.MLKitCameraView));
exports.MLKitTextRecognition = MLKitTextRecognition;
exports.reportDuplicatesProperty.register(MLKitTextRecognition);
}
MLKitTextRecognition.scanResultEvent = "scanResult";
reportDuplicatesProperty.register(MLKitTextRecognition);

@@ -1,26 +0,22 @@

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.translateText = exports.ensureTranslationModelDownloaded = void 0;
function ensureTranslationModelDownloaded(options) {
return new Promise(function (resolve, reject) {
export function ensureTranslationModelDownloaded(options) {
return new Promise((resolve, reject) => {
_downloadTranslationModelIfNeeded(options)
.then(function () { return resolve(); })
.then(() => resolve())
.catch(reject);
});
}
exports.ensureTranslationModelDownloaded = ensureTranslationModelDownloaded;
function translateText(options) {
return new Promise(function (resolve, reject) {
export function translateText(options) {
return new Promise((resolve, reject) => {
try {
var onSuccessListener_1 = new com.google.android.gms.tasks.OnSuccessListener({
onSuccess: function (result) { return resolve(result); }
const onSuccessListener = new com.google.android.gms.tasks.OnSuccessListener({
onSuccess: (result) => resolve(result)
});
var onFailureListener_1 = new com.google.android.gms.tasks.OnFailureListener({
onFailure: function (exception) { return reject(exception.getMessage()); }
const onFailureListener = new com.google.android.gms.tasks.OnFailureListener({
onFailure: exception => reject(exception.getMessage())
});
_downloadTranslationModelIfNeeded(options)
.then(function (translator) {
.then(translator => {
translator.translate(options.text)
.addOnSuccessListener(onSuccessListener_1)
.addOnFailureListener(onFailureListener_1);
.addOnSuccessListener(onSuccessListener)
.addOnFailureListener(onFailureListener);
})

@@ -35,23 +31,22 @@ .catch(reject);

}
exports.translateText = translateText;
function _downloadTranslationModelIfNeeded(options) {
return new Promise(function (resolve, reject) {
return new Promise((resolve, reject) => {
try {
var source = +com.google.firebase.ml.naturallanguage.translate.FirebaseTranslateLanguage.languageForLanguageCode(options.from);
var target = +com.google.firebase.ml.naturallanguage.translate.FirebaseTranslateLanguage.languageForLanguageCode(options.to);
var firTranslatorOptions = new com.google.firebase.ml.naturallanguage.translate.FirebaseTranslatorOptions.Builder()
const source = +com.google.firebase.ml.naturallanguage.translate.FirebaseTranslateLanguage.languageForLanguageCode(options.from);
const target = +com.google.firebase.ml.naturallanguage.translate.FirebaseTranslateLanguage.languageForLanguageCode(options.to);
const firTranslatorOptions = new com.google.firebase.ml.naturallanguage.translate.FirebaseTranslatorOptions.Builder()
.setSourceLanguage(source)
.setTargetLanguage(target)
.build();
var firTranslator_1 = com.google.firebase.ml.naturallanguage.FirebaseNaturalLanguage.getInstance().getTranslator(firTranslatorOptions);
var modelDownloadConditions = new com.google.firebase.ml.common.modeldownload.FirebaseModelDownloadConditions.Builder()
const firTranslator = com.google.firebase.ml.naturallanguage.FirebaseNaturalLanguage.getInstance().getTranslator(firTranslatorOptions);
const modelDownloadConditions = new com.google.firebase.ml.common.modeldownload.FirebaseModelDownloadConditions.Builder()
.requireWifi()
.build();
var onSuccessListener = new com.google.android.gms.tasks.OnSuccessListener({
onSuccess: function () { return resolve(firTranslator_1); }
const onSuccessListener = new com.google.android.gms.tasks.OnSuccessListener({
onSuccess: () => resolve(firTranslator)
});
var onFailureListener = new com.google.android.gms.tasks.OnFailureListener({
onFailure: function (exception) { return reject(exception.getMessage()); }
const onFailureListener = new com.google.android.gms.tasks.OnFailureListener({
onFailure: exception => reject(exception.getMessage())
});
firTranslator_1.downloadModelIfNeeded(modelDownloadConditions)
firTranslator.downloadModelIfNeeded(modelDownloadConditions)
.addOnSuccessListener(onSuccessListener)

@@ -58,0 +53,0 @@ .addOnFailureListener(onFailureListener);

@@ -1,18 +0,14 @@

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.translateText = exports.ensureTranslationModelDownloaded = void 0;
function ensureTranslationModelDownloaded(options) {
return new Promise(function (resolve, reject) {
export function ensureTranslationModelDownloaded(options) {
return new Promise((resolve, reject) => {
_downloadTranslationModelIfNeeded(options)
.then(function () { return resolve(); })
.then(() => resolve())
.catch(reject);
});
}
exports.ensureTranslationModelDownloaded = ensureTranslationModelDownloaded;
function translateText(options) {
return new Promise(function (resolve, reject) {
export function translateText(options) {
return new Promise((resolve, reject) => {
try {
_downloadTranslationModelIfNeeded(options)
.then(function (firTranslator) {
firTranslator.translateTextCompletion(options.text, (function (result, error) {
.then(firTranslator => {
firTranslator.translateTextCompletion(options.text, ((result, error) => {
error ? reject(error.localizedDescription) : resolve(result);

@@ -29,12 +25,11 @@ }));

}
exports.translateText = translateText;
function _downloadTranslationModelIfNeeded(options) {
return new Promise(function (resolve, reject) {
return new Promise((resolve, reject) => {
try {
var firTranslatorOptions = FIRTranslatorOptions.alloc().initWithSourceLanguageTargetLanguage(FIRTranslateLanguageForLanguageCode(options.from), FIRTranslateLanguageForLanguageCode(options.to));
var nl = FIRNaturalLanguage.naturalLanguage();
var firTranslator_1 = nl.translatorWithOptions(firTranslatorOptions);
var firModelDownloadConditions = FIRModelDownloadConditions.alloc().initWithAllowsCellularAccessAllowsBackgroundDownloading(false, true);
firTranslator_1.downloadModelIfNeededWithConditionsCompletion(firModelDownloadConditions, function (error) {
error ? reject(error.localizedDescription) : resolve(firTranslator_1);
const firTranslatorOptions = FIRTranslatorOptions.alloc().initWithSourceLanguageTargetLanguage(FIRTranslateLanguageForLanguageCode(options.from), FIRTranslateLanguageForLanguageCode(options.to));
const nl = FIRNaturalLanguage.naturalLanguage();
const firTranslator = nl.translatorWithOptions(firTranslatorOptions);
const firModelDownloadConditions = FIRModelDownloadConditions.alloc().initWithAllowsCellularAccessAllowsBackgroundDownloading(false, true);
firTranslator.downloadModelIfNeededWithConditionsCompletion(firModelDownloadConditions, (error) => {
error ? reject(error.localizedDescription) : resolve(firTranslator);
});

@@ -41,0 +36,0 @@ }

{
"name": "nativescript-plugin-firebase-updated",
"version": "2110.4.0",
"version": "2210.4.0",
"description": "Fire. Base. Firebase!",

@@ -39,3 +39,3 @@ "main": "firebase",

"config": "node scripts/postinstall.js config",
"tsc": "tsc -skipLibCheck",
"tsc": "ts-patch install && tsc -skipLibCheck",
"plugin.tscwatch": "npm run tsc -- -w",

@@ -140,4 +140,5 @@ "package": "cd ../publish && ./pack.sh",

"prompt-lite": "~0.1.1",
"xcode": "~0.9.3",
"semver": "~5.7.1"
"semver": "~5.7.1",
"ts-node": "^9.0.0",
"xcode": "~0.9.3"
},

@@ -147,3 +148,5 @@ "devDependencies": {

"@nativescript/types": "~7.0.0",
"@nativescript/webpack": "~3.0.0",
"rimraf": "~2.7.1",
"ts-patch": "^1.3.0",
"tslint": "~5.20.1",

@@ -150,0 +153,0 @@ "typescript": "~3.9.0"

@@ -1,5 +0,2 @@

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.performance = void 0;
var perf = require("./performance");
exports.performance = perf;
import * as perf from "./performance";
export const performance = perf;

@@ -1,41 +0,35 @@

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.FirebaseTrace = exports.startTrace = void 0;
function startTrace(name) {
var trace = com.google.firebase.perf.FirebasePerformance.getInstance().newTrace(name);
export function startTrace(name) {
const trace = com.google.firebase.perf.FirebasePerformance.getInstance().newTrace(name);
trace.start();
return new FirebaseTrace(trace);
}
exports.startTrace = startTrace;
var FirebaseTrace = (function () {
function FirebaseTrace(nativeTrace) {
export class FirebaseTrace {
constructor(nativeTrace) {
this.nativeTrace = nativeTrace;
}
FirebaseTrace.prototype.setValue = function (attribute, value) {
setValue(attribute, value) {
this.nativeTrace.putAttribute(attribute, value);
};
FirebaseTrace.prototype.getValue = function (attribute) {
}
getValue(attribute) {
return this.nativeTrace.getAttribute(attribute);
};
FirebaseTrace.prototype.getAttributes = function () {
var attributes = this.nativeTrace.getAttributes();
var node = {};
var iterator = attributes.entrySet().iterator();
}
getAttributes() {
const attributes = this.nativeTrace.getAttributes();
const node = {};
const iterator = attributes.entrySet().iterator();
while (iterator.hasNext()) {
var item = iterator.next();
const item = iterator.next();
node[item.getKey()] = item.getValue();
}
return node;
};
FirebaseTrace.prototype.removeAttribute = function (attribute) {
}
removeAttribute(attribute) {
this.nativeTrace.removeAttribute(attribute);
};
FirebaseTrace.prototype.incrementMetric = function (metric, by) {
}
incrementMetric(metric, by) {
this.nativeTrace.incrementMetric(metric, by);
};
FirebaseTrace.prototype.stop = function () {
}
stop() {
this.nativeTrace.stop();
};
return FirebaseTrace;
}());
exports.FirebaseTrace = FirebaseTrace;
}
}

@@ -1,33 +0,27 @@

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.FirebaseTrace = exports.startTrace = void 0;
var utils_1 = require("../utils");
function startTrace(name) {
import { firebaseUtils } from "../utils";
export function startTrace(name) {
return new FirebaseTrace(FIRPerformance.startTraceWithName(name));
}
exports.startTrace = startTrace;
var FirebaseTrace = (function () {
function FirebaseTrace(nativeTrace) {
export class FirebaseTrace {
constructor(nativeTrace) {
this.nativeTrace = nativeTrace;
}
FirebaseTrace.prototype.setValue = function (attribute, value) {
setValue(attribute, value) {
this.nativeTrace.setValueForAttribute(value, attribute);
};
FirebaseTrace.prototype.getValue = function (attribute) {
}
getValue(attribute) {
return this.nativeTrace.valueForAttribute(attribute);
};
FirebaseTrace.prototype.getAttributes = function () {
return utils_1.firebaseUtils.toJsObject(this.nativeTrace.attributes);
};
FirebaseTrace.prototype.removeAttribute = function (attribute) {
}
getAttributes() {
return firebaseUtils.toJsObject(this.nativeTrace.attributes);
}
removeAttribute(attribute) {
this.nativeTrace.removeAttribute(attribute);
};
FirebaseTrace.prototype.incrementMetric = function (metric, by) {
}
incrementMetric(metric, by) {
this.nativeTrace.incrementMetricByInt(metric, by);
};
FirebaseTrace.prototype.stop = function () {
}
stop() {
this.nativeTrace.stop();
};
return FirebaseTrace;
}());
exports.FirebaseTrace = FirebaseTrace;
}
}

@@ -1,5 +0,2 @@

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.storage = void 0;
var strg = require("./storage");
exports.storage = strg;
import * as strg from "./storage";
export const storage = strg;

@@ -1,6 +0,3 @@

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.ListResult = void 0;
var ListResult = (function () {
function ListResult(items, prefixes, nextPageToken) {
export class ListResult {
constructor(items, prefixes, nextPageToken) {
this.items = items;

@@ -10,4 +7,2 @@ this.prefixes = prefixes;

}
return ListResult;
}());
exports.ListResult = ListResult;
}

@@ -1,8 +0,5 @@

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.listAll = exports.deleteFile = exports.getDownloadUrl = exports.downloadFile = exports.uploadFile = void 0;
var file_system_1 = require("@nativescript/core/file-system");
var firebase_common_1 = require("../firebase-common");
var storage_common_1 = require("./storage-common");
var gmsTasks = com.google.android.gms ? com.google.android.gms.tasks : undefined;
import { File } from "@nativescript/core/file-system";
import { firebase } from "../firebase-common";
import { ListResult as ListResultBase } from "./storage-common";
const gmsTasks = com.google.android.gms ? com.google.android.gms.tasks : undefined;
function getReference(nativeReference, listOptions) {

@@ -14,9 +11,9 @@ return {

fullPath: nativeReference.getPath(),
listAll: function () { return listAll({ remoteFullPath: nativeReference.getPath(), bucket: listOptions.bucket }); }
listAll: () => listAll({ remoteFullPath: nativeReference.getPath(), bucket: listOptions.bucket })
};
}
function getReferences(nativeReferences, listOptions) {
var references = [];
for (var i = 0; i < nativeReferences.size(); i++) {
var ref = nativeReferences.get(i);
const references = [];
for (let i = 0; i < nativeReferences.size(); i++) {
const ref = nativeReferences.get(i);
references.push(getReference(ref, listOptions));

@@ -26,15 +23,12 @@ }

}
var ListResult = (function (_super) {
__extends(ListResult, _super);
function ListResult(listResult, listOptions) {
var _this = _super.call(this, getReferences(listResult.getItems(), listOptions), getReferences(listResult.getPrefixes(), listOptions), listResult.getPageToken()) || this;
_this.listResult = listResult;
_this.listOptions = listOptions;
_this.android = listResult;
delete _this.listResult;
delete _this.listOptions;
return _this;
class ListResult extends ListResultBase {
constructor(listResult, listOptions) {
super(getReferences(listResult.getItems(), listOptions), getReferences(listResult.getPrefixes(), listOptions), listResult.getPageToken());
this.listResult = listResult;
this.listOptions = listOptions;
this.android = listResult;
delete this.listResult;
delete this.listOptions;
}
return ListResult;
}(storage_common_1.ListResult));
}
function getStorageRef(reject, arg) {

@@ -52,4 +46,4 @@ if (typeof (com.google.firebase.storage) === "undefined") {

}
else if (firebase_common_1.firebase.storageBucket) {
return firebase_common_1.firebase.storageBucket;
else if (firebase.storageBucket) {
return firebase.storageBucket;
}

@@ -60,13 +54,13 @@ else {

}
function uploadFile(arg) {
return new Promise(function (resolve, reject) {
export function uploadFile(arg) {
return new Promise((resolve, reject) => {
try {
var storageRef = getStorageRef(reject, arg);
const storageRef = getStorageRef(reject, arg);
if (!storageRef) {
return;
}
var storageReference = storageRef.child(arg.remoteFullPath);
var onSuccessListener = new gmsTasks.OnSuccessListener({
onSuccess: function (uploadTaskSnapshot) {
var metadata = uploadTaskSnapshot.getMetadata();
const storageReference = storageRef.child(arg.remoteFullPath);
const onSuccessListener = new gmsTasks.OnSuccessListener({
onSuccess: uploadTaskSnapshot => {
const metadata = uploadTaskSnapshot.getMetadata();
resolve({

@@ -82,11 +76,11 @@ name: metadata.getName(),

});
var onFailureListener = new gmsTasks.OnFailureListener({
onFailure: function (exception) {
const onFailureListener = new gmsTasks.OnFailureListener({
onFailure: exception => {
reject("Upload failed. " + exception);
}
});
var onProgressListener = new com.google.firebase.storage.OnProgressListener({
onProgress: function (snapshot) {
const onProgressListener = new com.google.firebase.storage.OnProgressListener({
onProgress: (snapshot) => {
if (typeof (arg.onProgress) === "function") {
var fractionCompleted = snapshot.getBytesTransferred() / snapshot.getTotalByteCount();
const fractionCompleted = snapshot.getBytesTransferred() / snapshot.getTotalByteCount();
arg.onProgress({

@@ -99,5 +93,5 @@ fractionCompleted: fractionCompleted,

});
var metadata = null;
let metadata = null;
if (arg.metadata) {
var metadataBuilder = new com.google.firebase.storage.StorageMetadata.Builder();
const metadataBuilder = new com.google.firebase.storage.StorageMetadata.Builder();
if (arg.metadata.cacheControl) {

@@ -119,3 +113,3 @@ metadataBuilder.setCacheControl(arg.metadata.cacheControl);

if (arg.metadata.customMetadata) {
for (var p in arg.metadata.customMetadata) {
for (let p in arg.metadata.customMetadata) {
metadataBuilder.setCustomMetadata(p, arg.metadata.customMetadata[p]);

@@ -131,3 +125,3 @@ }

}
var localFileUrl = android.net.Uri.fromFile(new java.io.File(arg.localFile.path));
const localFileUrl = android.net.Uri.fromFile(new java.io.File(arg.localFile.path));
storageReference.putFile(localFileUrl, metadata)

@@ -139,7 +133,7 @@ .addOnFailureListener(onFailureListener)

else if (arg.localFullPath) {
if (!file_system_1.File.exists(arg.localFullPath)) {
if (!File.exists(arg.localFullPath)) {
reject("File does not exist: " + arg.localFullPath);
return;
}
var localFileUrl = android.net.Uri.fromFile(new java.io.File(arg.localFullPath));
const localFileUrl = android.net.Uri.fromFile(new java.io.File(arg.localFullPath));
storageReference.putFile(localFileUrl, metadata)

@@ -160,18 +154,17 @@ .addOnFailureListener(onFailureListener)

}
exports.uploadFile = uploadFile;
function downloadFile(arg) {
return new Promise(function (resolve, reject) {
export function downloadFile(arg) {
return new Promise((resolve, reject) => {
try {
var storageRef = getStorageRef(reject, arg);
const storageRef = getStorageRef(reject, arg);
if (!storageRef) {
return;
}
var storageReference = storageRef.child(arg.remoteFullPath);
var onSuccessListener = new gmsTasks.OnSuccessListener({
onSuccess: function (downloadTaskSnapshot) { return resolve(); }
const storageReference = storageRef.child(arg.remoteFullPath);
const onSuccessListener = new gmsTasks.OnSuccessListener({
onSuccess: downloadTaskSnapshot => resolve()
});
var onFailureListener = new gmsTasks.OnFailureListener({
onFailure: function (exception) { return reject("Download failed. " + exception); }
const onFailureListener = new gmsTasks.OnFailureListener({
onFailure: exception => reject("Download failed. " + exception)
});
var localFilePath = void 0;
let localFilePath;
if (arg.localFile) {

@@ -191,3 +184,3 @@ if (typeof (arg.localFile) !== "object") {

}
var file = new java.io.File(localFilePath);
const file = new java.io.File(localFilePath);
storageReference.getFile(file)

@@ -203,18 +196,17 @@ .addOnSuccessListener(onSuccessListener)

}
exports.downloadFile = downloadFile;
function getDownloadUrl(arg) {
return new Promise(function (resolve, reject) {
export function getDownloadUrl(arg) {
return new Promise((resolve, reject) => {
try {
var storageRef = getStorageRef(reject, arg);
const storageRef = getStorageRef(reject, arg);
if (!storageRef) {
return;
}
var storageReference = storageRef.child(arg.remoteFullPath);
var onSuccessListener = new gmsTasks.OnSuccessListener({
onSuccess: function (uri) {
const storageReference = storageRef.child(arg.remoteFullPath);
const onSuccessListener = new gmsTasks.OnSuccessListener({
onSuccess: uri => {
resolve(uri.toString());
}
});
var onFailureListener = new gmsTasks.OnFailureListener({
onFailure: function (exception) {
const onFailureListener = new gmsTasks.OnFailureListener({
onFailure: exception => {
reject(exception.getMessage());

@@ -233,18 +225,17 @@ }

}
exports.getDownloadUrl = getDownloadUrl;
function deleteFile(arg) {
return new Promise(function (resolve, reject) {
export function deleteFile(arg) {
return new Promise((resolve, reject) => {
try {
var storageRef = getStorageRef(reject, arg);
const storageRef = getStorageRef(reject, arg);
if (!storageRef) {
return;
}
var storageReference = storageRef.child(arg.remoteFullPath);
var onSuccessListener = new gmsTasks.OnSuccessListener({
onSuccess: function () {
const storageReference = storageRef.child(arg.remoteFullPath);
const onSuccessListener = new gmsTasks.OnSuccessListener({
onSuccess: () => {
resolve();
}
});
var onFailureListener = new gmsTasks.OnFailureListener({
onFailure: function (exception) {
const onFailureListener = new gmsTasks.OnFailureListener({
onFailure: exception => {
reject(exception.getMessage());

@@ -263,19 +254,18 @@ }

}
exports.deleteFile = deleteFile;
function listAll(listOptions) {
return new Promise(function (resolve, reject) {
export function listAll(listOptions) {
return new Promise((resolve, reject) => {
try {
var storageRef = getStorageRef(reject, listOptions);
const storageRef = getStorageRef(reject, listOptions);
if (!storageRef) {
return;
}
var onSuccessListener = new gmsTasks.OnSuccessListener({
onSuccess: function (result) { return resolve(new ListResult(result, listOptions)); }
const onSuccessListener = new gmsTasks.OnSuccessListener({
onSuccess: result => resolve(new ListResult(result, listOptions))
});
var onFailureListener = new gmsTasks.OnFailureListener({
onFailure: function (exception) {
const onFailureListener = new gmsTasks.OnFailureListener({
onFailure: exception => {
reject(exception.getCause() ? exception.getCause().getMessage() : exception.getMessage());
}
});
var storageReference = storageRef.child(listOptions.remoteFullPath);
const storageReference = storageRef.child(listOptions.remoteFullPath);
storageReference.listAll()

@@ -291,2 +281,1 @@ .addOnSuccessListener(onSuccessListener)

}
exports.listAll = listAll;

@@ -1,6 +0,3 @@

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.listAll = exports.deleteFile = exports.getDownloadUrl = exports.downloadFile = exports.uploadFile = void 0;
var firebase_common_1 = require("../firebase-common");
var storage_common_1 = require("./storage-common");
import { firebase } from "../firebase-common";
import { ListResult as ListResultBase } from "./storage-common";
function getReference(nativeReference, listOptions) {

@@ -12,9 +9,9 @@ return {

fullPath: nativeReference.fullPath,
listAll: function () { return listAll({ remoteFullPath: nativeReference.fullPath, bucket: listOptions.bucket }); }
listAll: () => listAll({ remoteFullPath: nativeReference.fullPath, bucket: listOptions.bucket })
};
}
function getReferences(nativeReferences, listOptions) {
var references = [];
for (var i = 0, l = nativeReferences.count; i < l; i++) {
var ref = nativeReferences.objectAtIndex(i);
const references = [];
for (let i = 0, l = nativeReferences.count; i < l; i++) {
const ref = nativeReferences.objectAtIndex(i);
references.push(getReference(ref, listOptions));

@@ -24,15 +21,12 @@ }

}
var ListResult = (function (_super) {
__extends(ListResult, _super);
function ListResult(listResult, listOptions) {
var _this = _super.call(this, getReferences(listResult.items, listOptions), getReferences(listResult.prefixes, listOptions), listResult.pageToken) || this;
_this.listResult = listResult;
_this.listOptions = listOptions;
_this.ios = listResult;
delete _this.listResult;
delete _this.listOptions;
return _this;
class ListResult extends ListResultBase {
constructor(listResult, listOptions) {
super(getReferences(listResult.items, listOptions), getReferences(listResult.prefixes, listOptions), listResult.pageToken);
this.listResult = listResult;
this.listOptions = listOptions;
this.ios = listResult;
delete this.listResult;
delete this.listOptions;
}
return ListResult;
}(storage_common_1.ListResult));
}
function getStorageRef(reject, arg) {

@@ -50,4 +44,4 @@ if (typeof (FIRStorage) === "undefined") {

}
else if (firebase_common_1.firebase.storageBucket) {
return firebase_common_1.firebase.storageBucket;
else if (firebase.storageBucket) {
return firebase.storageBucket;
}

@@ -58,6 +52,6 @@ else {

}
function uploadFile(arg) {
return new Promise(function (resolve, reject) {
export function uploadFile(arg) {
return new Promise((resolve, reject) => {
try {
var onCompletion = function (metadata, error) {
const onCompletion = (metadata, error) => {
if (error) {

@@ -77,9 +71,9 @@ reject(error.localizedDescription);

};
var storageRef = getStorageRef(reject, arg);
const storageRef = getStorageRef(reject, arg);
if (!storageRef) {
return;
}
var fIRStorageReference = storageRef.child(arg.remoteFullPath);
var fIRStorageUploadTask = null;
var metadata = null;
const fIRStorageReference = storageRef.child(arg.remoteFullPath);
let fIRStorageUploadTask = null;
let metadata = null;
if (arg.metadata) {

@@ -93,4 +87,4 @@ metadata = FIRStorageMetadata.new();

if (arg.metadata.customMetadata) {
var customMetadata = NSMutableDictionary.new();
for (var p in arg.metadata.customMetadata) {
const customMetadata = NSMutableDictionary.new();
for (let p in arg.metadata.customMetadata) {
customMetadata.setObjectForKey(arg.metadata.customMetadata[p], p);

@@ -116,3 +110,3 @@ }

if (fIRStorageUploadTask !== null) {
fIRStorageUploadTask.observeStatusHandler(2, function (snapshot) {
fIRStorageUploadTask.observeStatusHandler(2, snapshot => {
if (!snapshot.error && typeof (arg.onProgress) === "function") {

@@ -133,7 +127,6 @@ arg.onProgress({

}
exports.uploadFile = uploadFile;
function downloadFile(arg) {
return new Promise(function (resolve, reject) {
export function downloadFile(arg) {
return new Promise((resolve, reject) => {
try {
var onCompletion = function (url, error) {
const onCompletion = (url, error) => {
if (error) {

@@ -146,8 +139,8 @@ reject(error.localizedDescription);

};
var storageRef = getStorageRef(reject, arg);
const storageRef = getStorageRef(reject, arg);
if (!storageRef) {
return;
}
var fIRStorageReference = storageRef.child(arg.remoteFullPath);
var localFilePath = void 0;
const fIRStorageReference = storageRef.child(arg.remoteFullPath);
let localFilePath;
if (arg.localFile) {

@@ -167,3 +160,3 @@ if (typeof (arg.localFile) !== "object") {

}
var localFileUrl = NSURL.fileURLWithPath(localFilePath);
const localFileUrl = NSURL.fileURLWithPath(localFilePath);
fIRStorageReference.writeToFileCompletion(localFileUrl, onCompletion);

@@ -177,7 +170,6 @@ }

}
exports.downloadFile = downloadFile;
function getDownloadUrl(arg) {
return new Promise(function (resolve, reject) {
export function getDownloadUrl(arg) {
return new Promise((resolve, reject) => {
try {
var onCompletion = function (url, error) {
const onCompletion = (url, error) => {
if (error) {

@@ -190,7 +182,7 @@ reject(error.localizedDescription);

};
var storageRef = getStorageRef(reject, arg);
const storageRef = getStorageRef(reject, arg);
if (!storageRef) {
return;
}
var fIRStorageReference = storageRef.child(arg.remoteFullPath);
const fIRStorageReference = storageRef.child(arg.remoteFullPath);
fIRStorageReference.downloadURLWithCompletion(onCompletion);

@@ -204,7 +196,6 @@ }

}
exports.getDownloadUrl = getDownloadUrl;
function deleteFile(arg) {
return new Promise(function (resolve, reject) {
export function deleteFile(arg) {
return new Promise((resolve, reject) => {
try {
var onCompletion = function (error) {
const onCompletion = error => {
if (error) {

@@ -217,7 +208,7 @@ reject(error.localizedDescription);

};
var storageRef = getStorageRef(reject, arg);
const storageRef = getStorageRef(reject, arg);
if (!storageRef) {
return;
}
var fIRStorageFileRef = storageRef.child(arg.remoteFullPath);
const fIRStorageFileRef = storageRef.child(arg.remoteFullPath);
fIRStorageFileRef.deleteWithCompletion(onCompletion);

@@ -231,12 +222,11 @@ }

}
exports.deleteFile = deleteFile;
function listAll(listOptions) {
return new Promise(function (resolve, reject) {
export function listAll(listOptions) {
return new Promise((resolve, reject) => {
try {
var storageRef = getStorageRef(reject, listOptions);
const storageRef = getStorageRef(reject, listOptions);
if (!storageRef) {
return;
}
var fIRStorageReference = storageRef.child(listOptions.remoteFullPath);
fIRStorageReference.listAllWithCompletion(function (result, error) {
const fIRStorageReference = storageRef.child(listOptions.remoteFullPath);
fIRStorageReference.listAllWithCompletion((result, error) => {
if (error) {

@@ -256,2 +246,1 @@ reject(error.localizedDescription);

}
exports.listAll = listAll;

@@ -1,11 +0,8 @@

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.firebaseUtils = exports.Utils = void 0;
var firebase_common_1 = require("./firebase-common");
var types_1 = require("@nativescript/core/utils/types");
var Utils = (function () {
function Utils() {
this.invokeOnRunLoop = (function () {
var runloop = CFRunLoopGetMain();
return function (func) {
import { firebase } from "./firebase-common";
import { getClass } from "@nativescript/core/utils/types";
export class Utils {
constructor() {
this.invokeOnRunLoop = (() => {
const runloop = CFRunLoopGetMain();
return func => {
CFRunLoopPerformBlock(runloop, kCFRunLoopDefaultMode, func);

@@ -16,7 +13,7 @@ CFRunLoopWakeUp(runloop);

}
Utils.prototype.toJsObject = function (objCObj) {
toJsObject(objCObj) {
if (objCObj === null || typeof objCObj !== "object") {
return objCObj;
}
var node, key, i, l, oKeyArr = objCObj.allKeys;
let node, key, i, l, oKeyArr = objCObj.allKeys;
if (oKeyArr === undefined && objCObj.count !== undefined) {

@@ -33,3 +30,3 @@ node = [];

key = oKeyArr.objectAtIndex(i);
var val = objCObj.valueForKey(key);
const val = objCObj.valueForKey(key);
if (val === null) {

@@ -46,5 +43,5 @@ node[key] = null;

return node;
};
Utils.prototype.getValueForClass = function (val) {
switch (types_1.getClass(val)) {
}
getValueForClass(val) {
switch (getClass(val)) {
case 'NSArray':

@@ -68,15 +65,13 @@ case 'NSMutableArray':

case 'FIRDocumentReference':
var path = val.path;
var lastSlashIndex = path.lastIndexOf("/");
return firebase_common_1.firebase.firestore._getDocumentReference(val, path.substring(0, lastSlashIndex), path.substring(lastSlashIndex + 1));
const path = val.path;
const lastSlashIndex = path.lastIndexOf("/");
return firebase.firestore._getDocumentReference(val, path.substring(0, lastSlashIndex), path.substring(lastSlashIndex + 1));
case 'FIRGeoPoint':
return firebase_common_1.firebase.firestore.GeoPoint(val.latitude, val.longitude);
return firebase.firestore.GeoPoint(val.latitude, val.longitude);
default:
console.log("Please report this at https://github.com/EddyVerbruggen/nativescript-plugin-firebase/issues: iOS toJsObject is missing a converter for class '" + types_1.getClass(val) + "'. Casting to String as a fallback.");
console.log("Please report this at https://github.com/EddyVerbruggen/nativescript-plugin-firebase/issues: iOS toJsObject is missing a converter for class '" + getClass(val) + "'. Casting to String as a fallback.");
return String(val);
}
};
return Utils;
}());
exports.Utils = Utils;
exports.firebaseUtils = new Utils();
}
}
export const firebaseUtils = new Utils();

@@ -1,8 +0,5 @@

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.Sha256 = exports.getNonce = void 0;
var CHARSET = "0123456789ABCDEFGHIJKLMNOPQRSTUVXYZabcdefghijklmnopqrstuvwxyz-._";
function getNonce(length) {
var text = "";
for (var i = 0; i < length; i++) {
const CHARSET = "0123456789ABCDEFGHIJKLMNOPQRSTUVXYZabcdefghijklmnopqrstuvwxyz-._";
export function getNonce(length) {
let text = "";
for (let i = 0; i < length; i++) {
text += CHARSET.charAt(Math.floor(Math.random() * CHARSET.length));

@@ -12,18 +9,16 @@ }

}
exports.getNonce = getNonce;
function Sha256(input) {
var nsStr = NSString.stringWithString(input);
var nsData = nsStr.dataUsingEncoding(NSUTF8StringEncoding);
var hash = NSMutableData.dataWithLength(32);
export function Sha256(input) {
const nsStr = NSString.stringWithString(input);
const nsData = nsStr.dataUsingEncoding(NSUTF8StringEncoding);
const hash = NSMutableData.dataWithLength(32);
CC_SHA256(nsData.bytes, nsData.length, hash.mutableBytes);
var data = NSData.dataWithBytesLength(hash.mutableBytes, 32);
const data = NSData.dataWithBytesLength(hash.mutableBytes, 32);
return _Format(data);
}
exports.Sha256 = Sha256;
function _Format(data) {
var buffer = interop.bufferFromData(data);
var view = new Uint8Array(buffer);
var result = "";
for (var i = 0; i !== data.length; ++i) {
var tmp = view[i].toString(16);
const buffer = interop.bufferFromData(data);
const view = new Uint8Array(buffer);
let result = "";
for (let i = 0; i !== data.length; ++i) {
let tmp = view[i].toString(16);
if (tmp.length === 1) {

@@ -30,0 +25,0 @@ result += "0";

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc