diff --git a/.github/workflows/Zapier.yml b/.github/ISSUE_TEMPLATE/workflows/Zapier.yml similarity index 100% rename from .github/workflows/Zapier.yml rename to .github/ISSUE_TEMPLATE/workflows/Zapier.yml diff --git a/.github/workflows/release-drafter.yml b/.github/ISSUE_TEMPLATE/workflows/release-drafter.yml similarity index 100% rename from .github/workflows/release-drafter.yml rename to .github/ISSUE_TEMPLATE/workflows/release-drafter.yml diff --git a/MigrationGuide.md b/MigrationGuide.md new file mode 100644 index 0000000..cfd6582 --- /dev/null +++ b/MigrationGuide.md @@ -0,0 +1,244 @@ + +# Migration Guide + +## Version 2 +### Intro +In this release, we are making a significant shift from a device-centered model to a user-centered model. This means that instead of identifying devices, we now focus on identifying individual users. This update is part of a larger effort to shift towards a user-oriented omni-channel messaging system. + +To facilitate this change, the externalId approach for identifying users is being replaced by the login and logout methods. In addition, the SDK now makes use of namespaces such as User, Notifications, and Slidedown to better separate code. + +This guide will walk you through these and other important changes in the version 16 update. + +### Overview +Under the new model, the concept of a "player" is being updated to include three new concepts: users, subscriptions, and aliases. + +### Users +Users own subscriptions and are identified by aliases which are used to point to users using different alias schemes. + +### Subscriptions + +Subscriptions refer to the way in which a user can receive various communication methods offered by OneSignal, including push notifications, SMS, and email. + +### Aliases +Aliases are identifiers that point to users and are made up of an alias label and id. Users can have multiple aliases. Consider the need to identify a user with your own application's unique identifier as well as identifiers from other integrated applications. + +The SDK will use `external_id` as the default alias label for the public `OneSignal.login("1234")` method. + +**Alias Example:** +``` +"aliases": [ + { + "label": "external_id", + "id": "1234" + }, + { + "label": "my_alias", + "id": "5678" + } +] +``` + +```js +// WebSDK-specific example +{ + external_id: "1234", + my_alias: "5678" +} +``` + +# Guide +## 1. Setup Changes +### Service Worker File + +From: +```js +importScripts("https://onesignal.com/sdks/OneSignalSDKWorker.js"); +``` + +To: +```js +importScripts("https://onesignal.com/sdks/web/v16/OneSignalSDK.sw.js"); +``` + +## 2. External User ID +Update any usages of `OneSignal.setExternalId` to `OneSignal.login` or `OneSignal.logout` +From: +```js +OneSignal.setExternalId("myId"); +``` + +To: +```js +OneSignal.login("myId"); +``` + +Use `OneSignal.logout();` instead anywhere you have `OneSignal.setExternalId("");` or are setting it to `null`. + +## 3. API Changes +Update your code to use the new API. The following namespaces are on the `OneSignal` object. + +### User Namespace + +Example: +```js +OneSignal.User.addAlias("my_alias", "1234"); +``` + +All user functions are synchronous. + +| Function Name | Description | Argument List | +| --------------- | ---------------------------------------------- | ------------------------------------ | +| `addAlias` | Adds a new alias for the current user. | `label: string, id: string` | +| `addAliases` | Adds multiple aliases for the current user. | `aliases: { [key: string]: string }` | +| `removeAlias` | Removes an alias for the current user. | `label: string` | +| `removeAliases` | Removes multiple aliases for the current user. | `labels: string[]` | +| `addEmail` | Adds an email address for the current user. | `email: string` | +| `removeEmail` | Removes an email address for the current user. | `email: string` | +| `addSms` | Adds an SMS number for the current user. | `smsNumber: string` | +| `removeSms` | Removes an SMS number for the current user. | `smsNumber: string` | +| `addTag` | Adds a tag for the current user. | `key: string, value: string` | +| `addTags` | Adds multiple tags for the current user. | `tags: { [key: string]: string }` | +| `removeTag` | Removes a tag for the current user. | `key: string` | +| `removeTags` | Removes multiple tags for the current user. | `keys: string[]` | + +### Notifications Namespace + +Example: +```js +await OneSignal.Notifications.requestPermission(); +``` + + +| Sync/Async | Property/Function | Description | Argument List | +| ---------- | ----------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `async` | `setDefaultUrl()` | Sets the default URL for notifications. | `url` (string) | +| `async` | `setDefaultTitle()` | Sets the default title for notifications. | `title` (string) | +| `sync` | `isPushSupported()` | Returns true if the current browser supports web push. | | +| `async` | `requestPermission()` | Requests push notifications permission via the native browser prompt. | | +| | `permission` | Returns true if your site has permission to display notifications. | | +| | `permissionNative` | Returns browser's native notification permission status; `"default"`(end-user has not accept or decided yet), `"granted"`, or `"denied"`. | | +| `sync` | `addEventListener()` | Adds an event listener for the following events:

- `click`
- `foregroundWillDisplay`
- `dismiss`
- `permissionPromptDisplay`
- `permissionChange`*
* argument type: bool | - `` (string)
- `(arg: ) => {}` (callback) | +| `sync` | `removeEventListener()` | Removes the event listener. | `() => {}` (the event listener you want to remove) | + + + +### Slidedown Namespace + +Example: +```js +await OneSignal.Slidedown.promptPush(); +``` + +| Sync/Async | Function Name | Description | Argument List | +| ---------- | ---------------------- | ------------------------------------------------------------------------ | ---------------------------------------------------------------------------- | +| `async` | `promptPush` | Displays the notification permission prompt. | `options` (AutoPromptOptions) | +| `async` | `promptPushCategories` | Displays the notification permission prompt for notification categories. | `options` (AutoPromptOptions) | +| `async` | `promptSms` | Displays the SMS subscription prompt. | `options` (AutoPromptOptions) | +| `async` | `promptEmail` | Displays the email subscription prompt. | `options` (AutoPromptOptions) | +| `async` | `promptSmsAndEmail` | Displays the SMS and email subscription prompts. | `options` (AutoPromptOptions) | +| `sync` | `addEventListener` | Adds an event listener for the `slidedownShown` event. | - `event` ("slidedownShown"),
- `listener` ((wasShown: boolean) => void) | +| `sync` | `removeEventListener` | Removes an event listener for the `slidedownShown` event. | - `event` ("slidedownShown")
- `listener` ((wasShown: boolean) => void) | + + + +### Push Subscription Namespace + +Example: +```js +OneSignal.User.PushSubscription.optIn(); +``` + +| Sync/Async | Property/Function | Description | Argument List | +| ---------- | ----------------------- | --------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------- | +| | `id` | Gets the current user's ID. | | +| | `token` | Gets the current user's push notification token. | | +| | `optedIn` | Gets a boolean value indicating whether the current user is subscribed to push notifications. | | +| `async` | `optIn()` | Subscribes the current user to push notifications. | | +| `async` | `optOut()` | Unsubscribes the current user from push notifications. | | +| `sync` | `addEventListener()` | Adds an event listener for the `change` event. | - `event` ("change")
- `listener` ((change: SubscriptionChangeEvent) => void) | +| `sync` | `removeEventListener()` | Removes an event listener for the `change` event. | - `event` ("change")
- `listener` ((change: SubscriptionChangeEvent) => void) | + +### Debug Namespace + +Example: +```js +OneSignal.Debug.setLogLevel(“trace”); +``` + +| Function Name | Description | Argument List | +| --------------- | ---------------------------------------------- | ------------------------------------ | +| `setLogLevel` | Turns on logging with the given log level. | `setLogLevel: string`
- `"trace"`
- `"debug"`
- `"info"`
- `"warn"`
- `"error"` | + +# Limitations +* HTTP environments are no longer supported. +* AMP environments are not supported. +* Identity verification not available yet, coming soon. + +# Glossary + +**OneSignal user** + +      *(noun) lowercase* + +      A user of the OneSignal service. + +**user** + +      *(noun) lowercase* + +      An end-user of an application using the OneSignal service. They may or may not have a subscription. + +**user ID** + +      *(noun) lowercase* + +      A OneSignal-provisioned unique identifier for Users (User.onesignal_id). + + +**user external ID** + +      *(noun) lowercase* + +      A customer-provisioned unique identifier for Users (User.external_id). + + +**user alias** + +      *(noun) lowercase* + +      A customer provisioned key-value pair used to uniquely identify a User. + + +**subscription** + +      *(noun) lowercase* + +      An established communication channel between an App and its User, such as a push-subscribed device, email address, or SMS-subscribed phone number. + + +**subscription ID** + +      *(noun) lowercase* + +      A OneSignal-provisioned unique identifier for a single subscription. + + +**notification** + +      *(noun) lowercase* + +      A unidirectional outbound communication message from an App to one or more Users via their Subscriptions. + + +**notification ID** + +      *(noun) lowercase* + +      A OneSignal-provisioned unique identifier for Notifications (Notification.id). + + +**notification external ID** + +      *(noun) lowercase* + +      A customer-provisioned unique identifier for Notifications (Notification.external_id). diff --git a/README.md b/README.md index 9155ce9..c56d82c 100644 --- a/README.md +++ b/README.md @@ -1,17 +1,31 @@

welcome to onesignal-ngx 👋

-[![npm version](https://img.shields.io/npm/v/onesignal-ngx.svg)](https://www.npmjs.com/package/onesignal-ngx) [![npm downloads](https://img.shields.io/npm/dm/onesignal-ngx.svg)](https://www.npmjs.com/package/onesignal-ngx) +

+ + Version + + + Documentation + + + Maintenance + + + Twitter: onesignal + +

+ +> This is a JavaScript module that can be used to easily include [OneSignal](https://onesignal.com/) code in a website that uses Angular for its front-end codebase. -Angular OneSignal Plugin: Make it easy to integrate OneSignal with your Angular website! - -This is a JavaScript module that can be used to easily include [OneSignal](https://onesignal.com/) code in a website that uses Angular for its front-end codebase. +* 🏠 [Homepage](https://onesignal.com) +* 🖤 [npm](https://www.npmjs.com/package/onesignal-ngx) -OneSignal is the world's leader for Mobile Push Notifications, Web Push, and In-App Messaging. It is trusted by 1,300,000+ businesses to send 5 billion Push Notifications per day. +OneSignal is the world's leader for Mobile Push Notifications, Web Push, and In-App Messaging. It is trusted by 2 million+ businesses to send 9 billion Push Notifications per day. You can find more information on OneSignal [here](https://onesignal.com/). -* 🏠 [Homepage](https://onesignal.com) -* 🖤 [npm](https://www.npmjs.com/package/onesignal-ngx) +> Upgrading from Version 1? +See our [migration guide](./MigrationGuide.md) to get started. ## Contents - [Install](#install) @@ -74,9 +88,32 @@ this.oneSignal.init({ appId: 'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx' }).then(() = ``` ### Init Options -You can pass other options to the `init` function. Use these options to configure personalized prompt options, auto-resubscribe, and more ([full list of initialization options](https://documentation.onesignal.com/docs/web-push-sdk#init)). - -#### Service Worker Params +You can pass other options to the `init` function. Use these options to configure personalized prompt options, auto-resubscribe, and more ([full list of initialization options](https://documentation.onesignal.com/v11.0/docs/web-sdk#init)). + +
+ Expand to see more options + + | Property Name | Type | Description | +| ---------------------------| --------------------- | -------------------------------------------------- | +| `appId` | `string` | The ID of your OneSignal app. | +| `autoRegister` | `boolean` (optional) | Whether or not to automatically register the user. | +| `autoResubscribe` | `boolean` (optional) | Whether or not to automatically resubscribe the user. | +| `path` | `string` (optional) | The path to the OneSignal service worker file. | +| `serviceWorkerPath` | `string` (optional) | The path to the OneSignal service worker script. | +| `serviceWorkerUpdaterPath` | `string` (optional) | The path to the OneSignal service worker updater script. | +| `subdomainName` | `string` (optional) | The subdomain of your OneSignal app. | +| `allowLocalhostAsSecureOrigin` | `boolean` (optional) | Whether or not to allow localhost as a secure origin. | +| `requiresUserPrivacyConsent`| `boolean` (optional) | Whether or not the user's consent is required. | +| `persistNotification` | `boolean` (optional) | Whether or not notifications should persist. | +| `notificationClickHandlerMatch`| `string` (optional) | The URL match pattern for notification clicks. | +| `notificationClickHandlerAction`| `string` (optional)| The action to perform when a notification is clicked. | +| `welcomeNotification` | `object` (optional) | The welcome notification configuration. | +| `notifyButton` | `object` (optional) | The notify button configuration. | +| `promptOptions` | `object` (optional) | Additional options for the subscription prompt. | +| `webhooks` | `object` (optional) | The webhook configuration. | +| `[key: string]` | `any` | Additional properties can be added as needed. | + +**Service Worker Params** You can customize the location and filenames of service worker assets. You are also able to specify the specific scope that your service worker should control. You can read more [here](https://documentation.onesignal.com/docs/onesignal-service-worker-faq#sdk-parameter-reference-for-service-workers). In this distribution, you can specify the parameters via the following: @@ -86,6 +123,10 @@ In this distribution, you can specify the parameters via the following: | `serviceWorkerParam` | Use to specify the scope, or the path the service worker has control of. Example: `{ scope: "/js/push/onesignal/" }` | | `serviceWorkerPath` | The path to the service worker file. | +
+ +--- + **Example**: ```js this.oneSignal.init({ @@ -109,76 +150,59 @@ Visit `https://yoursite.com/OneSignalSDKWorker.js` in the address bar to make su If you uploaded the file but you cannot access it via your browser search bar, make sure you have told Angular about it via the `assets` param in your `angular.json` file. --- -## OneSignal API ### Typescript This package includes Typescript support. ```ts class OneSignal { - init(options: IInitObject): Promise; - on(event: string, listener: () => void): void; - off(event: string, listener: () => void): void; - once(event: string, listener: () => void): void; - isPushNotificationsEnabled(callback?: Action): Promise; - showHttpPrompt(options?: AutoPromptOptions): Promise; - registerForPushNotifications(options?: RegisterOptions): Promise; - setDefaultNotificationUrl(url: string): Promise; - setDefaultTitle(title: string): Promise; - getTags(callback?: Action): Promise; - sendTag(key: string, value: any, callback?: Action): Promise; - sendTags(tags: TagsObject, callback?: Action): Promise; - deleteTag(tag: string): Promise>; - deleteTags(tags: Array, callback?: Action>): Promise>; - addListenerForNotificationOpened(callback?: Action): Promise; - setSubscription(newSubscription: boolean): Promise; - showHttpPermissionRequest(options?: AutoPromptOptions): Promise; - showNativePrompt(): Promise; - showSlidedownPrompt(options?: AutoPromptOptions): Promise; - showCategorySlidedown(options?: AutoPromptOptions): Promise; - showSmsSlidedown(options?: AutoPromptOptions): Promise; - showEmailSlidedown(options?: AutoPromptOptions): Promise; - showSmsAndEmailSlidedown(options?: AutoPromptOptions): Promise; - getNotificationPermission(onComplete?: Function): Promise; - getUserId(callback?: Action): Promise; - getSubscription(callback?: Action): Promise; - setEmail(email: string, options?: SetEmailOptions): Promise; - setSMSNumber(smsNumber: string, options?: SetSMSOptions): Promise; - logoutEmail(): Promise; - logoutSMS(): Promise; - setExternalUserId(externalUserId: string | undefined | null, authHash?: string): Promise; - removeExternalUserId(): Promise; - getExternalUserId(): Promise; - provideUserConsent(consent: boolean): Promise; - getEmailId(callback?: Action): Promise; - getSMSId(callback?: Action): Promise; - sendOutcome(outcomeName: string, outcomeWeight?: number | undefined): Promise; + Slidedown: IOneSignalSlidedown; + Notifications: IOneSignalNotifications; + Session: IOneSignalSession; + User: IOneSignalUser; + Debug: IOneSignalDebug; + login(externalId: string, jwtToken?: string): Promise; + logout(): Promise; + init(options: IInitObject): Promise; + setConsentGiven(consent: boolean): Promise; + setConsentRequired(requiresConsent: boolean): Promise; } ``` ### OneSignal API -See the official [OneSignal WebSDK reference](https://documentation.onesignal.com/docs/web-push-sdk) for information on all available SDK functions. +See the official [OneSignal WebSDK reference](https://documentation.onesignal.com/v11.0/docs/web-sdk) for information on all available SDK functions. --- ## Advanced Usage ### Events and Event Listeners Use listeners to react to OneSignal-related events: -* `subscriptionChange` -* `permissionPromptDisplay` -* `notificationPermissionChange` -* `popoverShown` -* `customPromptClick` -* `notificationDisplay` -* `notificationDismiss` +### Notifications Namespace +| Event Name | Callback Argument Type | +|-|-| +|'click' | NotificationClickEvent| +|'foregroundWillDisplay'| NotificationForegroundWillDisplayEvent +| 'dismiss'| NotificationDismissEvent| +|'permissionChange'| boolean| +|'permissionPromptDisplay'| void| + +### Slidedown Namespace +| Event Name | Callback Argument Type | +|-|-| +|'slidedownShown' | boolean | + +### Push Subscription Namespace +| Event Name | Callback Argument Type | +|-|-| +|'change' | boolean | **Example** ```js -this.oneSignal.on('subscriptionChange', function(isSubscribed) { - console.log("The user's subscription state is now:", isSubscribed); +this.oneSignal.Notifications.addEventListener('click', (event) => { + console.log("The notification was clicked!", event); }); ``` -See the [OneSignal WebSDK Reference](https://documentation.onesignal.com/docs/web-push-sdk) for more info on the available event listeners. +See the [OneSignal WebSDK Reference](https://documentation.onesignal.com/v11.0/docs/web-sdk) for more info on the available event listeners. ## Troubleshooting @@ -190,7 +214,7 @@ In your `angular.json`, see if the `serviceWorker` flag is set to `true`. The fl ## 🤝 Contributing -Contributions, issues and feature requests are welcome!
Feel free to check [issues page](https://github.com/OneSignal/onesignal-ngx/issues). +Contributions, issues and feature requests are welcome!
Feel free to check [issues page](https://github.com/OneSignal/onesignal-ngx/issues). ## Show your support @@ -208,7 +232,7 @@ Reach out to us via our [Discord server](https://discord.com/invite/EP7gf6Uz7G)! ## 📝 License -Copyright © 2021 [OneSignal](https://github.com/OneSignal).
+Copyright © 2023 [OneSignal](https://github.com/OneSignal).
This project is [MIT](https://github.com/OneSignal/onesignal-ngx/blob/main/LICENSE) licensed. diff --git a/bundles/onesignal-ngx.umd.js b/bundles/onesignal-ngx.umd.js index 711e8bf..fcecb95 100644 --- a/bundles/onesignal-ngx.umd.js +++ b/bundles/onesignal-ngx.umd.js @@ -24,1017 +24,469 @@ var i0__namespace = /*#__PURE__*/_interopNamespace(i0); - /*! ***************************************************************************** - Copyright (c) Microsoft Corporation. - - Permission to use, copy, modify, and/or distribute this software for any - purpose with or without fee is hereby granted. - - THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH - REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY - AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, - INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM - LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR - OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR - PERFORMANCE OF THIS SOFTWARE. - ***************************************************************************** */ - /* global Reflect, Promise */ - var extendStatics = function (d, b) { - extendStatics = Object.setPrototypeOf || - ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || - function (d, b) { for (var p in b) - if (Object.prototype.hasOwnProperty.call(b, p)) - d[p] = b[p]; }; - return extendStatics(d, b); - }; - function __extends(d, b) { - if (typeof b !== "function" && b !== null) - throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); - extendStatics(d, b); - function __() { this.constructor = d; } - d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + function oneSignalLogin(externalId, jwtToken) { + return new Promise(function (resolve, reject) { + var _a; + if (isOneSignalScriptFailed) { + reject(); + } + (_a = window.OneSignalDeferred) === null || _a === void 0 ? void 0 : _a.push(function (oneSignal) { + oneSignal.login(externalId, jwtToken) + .then(function (value) { return resolve(value); }) + .catch(function (error) { return reject(error); }); + }); + }); } - var __assign = function () { - __assign = Object.assign || function __assign(t) { - for (var s, i = 1, n = arguments.length; i < n; i++) { - s = arguments[i]; - for (var p in s) - if (Object.prototype.hasOwnProperty.call(s, p)) - t[p] = s[p]; + function oneSignalLogout() { + return new Promise(function (resolve, reject) { + var _a; + if (isOneSignalScriptFailed) { + reject(); } - return t; - }; - return __assign.apply(this, arguments); - }; - function __rest(s, e) { - var t = {}; - for (var p in s) - if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) - t[p] = s[p]; - if (s != null && typeof Object.getOwnPropertySymbols === "function") - for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) { - if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) - t[p[i]] = s[p[i]]; + (_a = window.OneSignalDeferred) === null || _a === void 0 ? void 0 : _a.push(function (oneSignal) { + oneSignal.logout() + .then(function (value) { return resolve(value); }) + .catch(function (error) { return reject(error); }); + }); + }); + } + function oneSignalSetConsentGiven(consent) { + return new Promise(function (resolve, reject) { + var _a; + if (isOneSignalScriptFailed) { + reject(); } - return t; + (_a = window.OneSignalDeferred) === null || _a === void 0 ? void 0 : _a.push(function (oneSignal) { + oneSignal.setConsentGiven(consent) + .then(function (value) { return resolve(value); }) + .catch(function (error) { return reject(error); }); + }); + }); } - function __decorate(decorators, target, key, desc) { - var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; - if (typeof Reflect === "object" && typeof Reflect.decorate === "function") - r = Reflect.decorate(decorators, target, key, desc); - else - for (var i = decorators.length - 1; i >= 0; i--) - if (d = decorators[i]) - r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; - return c > 3 && r && Object.defineProperty(target, key, r), r; + function oneSignalSetConsentRequired(requiresConsent) { + return new Promise(function (resolve, reject) { + var _a; + if (isOneSignalScriptFailed) { + reject(); + } + (_a = window.OneSignalDeferred) === null || _a === void 0 ? void 0 : _a.push(function (oneSignal) { + oneSignal.setConsentRequired(requiresConsent) + .then(function (value) { return resolve(value); }) + .catch(function (error) { return reject(error); }); + }); + }); } - function __param(paramIndex, decorator) { - return function (target, key) { decorator(target, key, paramIndex); }; + function slidedownPromptPush(options) { + return new Promise(function (resolve, reject) { + var _a; + if (isOneSignalScriptFailed) { + reject(); + } + (_a = window.OneSignalDeferred) === null || _a === void 0 ? void 0 : _a.push(function (oneSignal) { + oneSignal.Slidedown.promptPush(options) + .then(function (value) { return resolve(value); }) + .catch(function (error) { return reject(error); }); + }); + }); } - function __metadata(metadataKey, metadataValue) { - if (typeof Reflect === "object" && typeof Reflect.metadata === "function") - return Reflect.metadata(metadataKey, metadataValue); + function slidedownPromptPushCategories(options) { + return new Promise(function (resolve, reject) { + var _a; + if (isOneSignalScriptFailed) { + reject(); + } + (_a = window.OneSignalDeferred) === null || _a === void 0 ? void 0 : _a.push(function (oneSignal) { + oneSignal.Slidedown.promptPushCategories(options) + .then(function (value) { return resolve(value); }) + .catch(function (error) { return reject(error); }); + }); + }); } - function __awaiter(thisArg, _arguments, P, generator) { - function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { try { - step(generator.next(value)); + function slidedownPromptSms(options) { + return new Promise(function (resolve, reject) { + var _a; + if (isOneSignalScriptFailed) { + reject(); } - catch (e) { - reject(e); - } } - function rejected(value) { try { - step(generator["throw"](value)); + (_a = window.OneSignalDeferred) === null || _a === void 0 ? void 0 : _a.push(function (oneSignal) { + oneSignal.Slidedown.promptSms(options) + .then(function (value) { return resolve(value); }) + .catch(function (error) { return reject(error); }); + }); + }); + } + function slidedownPromptEmail(options) { + return new Promise(function (resolve, reject) { + var _a; + if (isOneSignalScriptFailed) { + reject(); } - catch (e) { - reject(e); - } } - function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } - step((generator = generator.apply(thisArg, _arguments || [])).next()); + (_a = window.OneSignalDeferred) === null || _a === void 0 ? void 0 : _a.push(function (oneSignal) { + oneSignal.Slidedown.promptEmail(options) + .then(function (value) { return resolve(value); }) + .catch(function (error) { return reject(error); }); + }); }); } - function __generator(thisArg, body) { - var _ = { label: 0, sent: function () { if (t[0] & 1) - throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; - return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function () { return this; }), g; - function verb(n) { return function (v) { return step([n, v]); }; } - function step(op) { - if (f) - throw new TypeError("Generator is already executing."); - while (_) - try { - if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) - return t; - if (y = 0, t) - op = [op[0] & 2, t.value]; - switch (op[0]) { - case 0: - case 1: - t = op; - break; - case 4: - _.label++; - return { value: op[1], done: false }; - case 5: - _.label++; - y = op[1]; - op = [0]; - continue; - case 7: - op = _.ops.pop(); - _.trys.pop(); - continue; - default: - if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { - _ = 0; - continue; - } - if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { - _.label = op[1]; - break; - } - if (op[0] === 6 && _.label < t[1]) { - _.label = t[1]; - t = op; - break; - } - if (t && _.label < t[2]) { - _.label = t[2]; - _.ops.push(op); - break; - } - if (t[2]) - _.ops.pop(); - _.trys.pop(); - continue; - } - op = body.call(thisArg, _); - } - catch (e) { - op = [6, e]; - y = 0; - } - finally { - f = t = 0; - } - if (op[0] & 5) - throw op[1]; - return { value: op[0] ? op[1] : void 0, done: true }; - } + function slidedownPromptSmsAndEmail(options) { + return new Promise(function (resolve, reject) { + var _a; + if (isOneSignalScriptFailed) { + reject(); + } + (_a = window.OneSignalDeferred) === null || _a === void 0 ? void 0 : _a.push(function (oneSignal) { + oneSignal.Slidedown.promptSmsAndEmail(options) + .then(function (value) { return resolve(value); }) + .catch(function (error) { return reject(error); }); + }); + }); } - var __createBinding = Object.create ? (function (o, m, k, k2) { - if (k2 === undefined) - k2 = k; - Object.defineProperty(o, k2, { enumerable: true, get: function () { return m[k]; } }); - }) : (function (o, m, k, k2) { - if (k2 === undefined) - k2 = k; - o[k2] = m[k]; - }); - function __exportStar(m, o) { - for (var p in m) - if (p !== "default" && !Object.prototype.hasOwnProperty.call(o, p)) - __createBinding(o, m, p); + function slidedownAddEventListener(event, listener) { + var _a; + (_a = window.OneSignalDeferred) === null || _a === void 0 ? void 0 : _a.push(function (oneSignal) { + oneSignal.Slidedown.addEventListener(event, listener); + }); } - function __values(o) { - var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0; - if (m) - return m.call(o); - if (o && typeof o.length === "number") - return { - next: function () { - if (o && i >= o.length) - o = void 0; - return { value: o && o[i++], done: !o }; - } - }; - throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined."); + function slidedownRemoveEventListener(event, listener) { + var _a; + (_a = window.OneSignalDeferred) === null || _a === void 0 ? void 0 : _a.push(function (oneSignal) { + oneSignal.Slidedown.removeEventListener(event, listener); + }); } - function __read(o, n) { - var m = typeof Symbol === "function" && o[Symbol.iterator]; - if (!m) - return o; - var i = m.call(o), r, ar = [], e; - try { - while ((n === void 0 || n-- > 0) && !(r = i.next()).done) - ar.push(r.value); - } - catch (error) { - e = { error: error }; - } - finally { - try { - if (r && !r.done && (m = i["return"])) - m.call(i); + function notificationsSetDefaultUrl(url) { + return new Promise(function (resolve, reject) { + var _a; + if (isOneSignalScriptFailed) { + reject(); } - finally { - if (e) - throw e.error; + (_a = window.OneSignalDeferred) === null || _a === void 0 ? void 0 : _a.push(function (oneSignal) { + oneSignal.Notifications.setDefaultUrl(url) + .then(function (value) { return resolve(value); }) + .catch(function (error) { return reject(error); }); + }); + }); + } + function notificationsSetDefaultTitle(title) { + return new Promise(function (resolve, reject) { + var _a; + if (isOneSignalScriptFailed) { + reject(); } - } - return ar; + (_a = window.OneSignalDeferred) === null || _a === void 0 ? void 0 : _a.push(function (oneSignal) { + oneSignal.Notifications.setDefaultTitle(title) + .then(function (value) { return resolve(value); }) + .catch(function (error) { return reject(error); }); + }); + }); + } + function notificationsRequestPermission() { + return new Promise(function (resolve, reject) { + var _a; + if (isOneSignalScriptFailed) { + reject(); + } + (_a = window.OneSignalDeferred) === null || _a === void 0 ? void 0 : _a.push(function (oneSignal) { + oneSignal.Notifications.requestPermission() + .then(function (value) { return resolve(value); }) + .catch(function (error) { return reject(error); }); + }); + }); } - /** @deprecated */ - function __spread() { - for (var ar = [], i = 0; i < arguments.length; i++) - ar = ar.concat(__read(arguments[i])); - return ar; + function notificationsAddEventListener(event, listener) { + var _a; + (_a = window.OneSignalDeferred) === null || _a === void 0 ? void 0 : _a.push(function (oneSignal) { + oneSignal.Notifications.addEventListener(event, listener); + }); } - /** @deprecated */ - function __spreadArrays() { - for (var s = 0, i = 0, il = arguments.length; i < il; i++) - s += arguments[i].length; - for (var r = Array(s), k = 0, i = 0; i < il; i++) - for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++) - r[k] = a[j]; - return r; + function notificationsRemoveEventListener(event, listener) { + var _a; + (_a = window.OneSignalDeferred) === null || _a === void 0 ? void 0 : _a.push(function (oneSignal) { + oneSignal.Notifications.removeEventListener(event, listener); + }); } - function __spreadArray(to, from, pack) { - if (pack || arguments.length === 2) - for (var i = 0, l = from.length, ar; i < l; i++) { - if (ar || !(i in from)) { - if (!ar) - ar = Array.prototype.slice.call(from, 0, i); - ar[i] = from[i]; - } + function sessionSendOutcome(outcomeName, outcomeWeight) { + return new Promise(function (resolve, reject) { + var _a; + if (isOneSignalScriptFailed) { + reject(); + } + (_a = window.OneSignalDeferred) === null || _a === void 0 ? void 0 : _a.push(function (oneSignal) { + oneSignal.Session.sendOutcome(outcomeName, outcomeWeight) + .then(function (value) { return resolve(value); }) + .catch(function (error) { return reject(error); }); + }); + }); + } + function sessionSendUniqueOutcome(outcomeName) { + return new Promise(function (resolve, reject) { + var _a; + if (isOneSignalScriptFailed) { + reject(); } - return to.concat(ar || Array.prototype.slice.call(from)); + (_a = window.OneSignalDeferred) === null || _a === void 0 ? void 0 : _a.push(function (oneSignal) { + oneSignal.Session.sendUniqueOutcome(outcomeName) + .then(function (value) { return resolve(value); }) + .catch(function (error) { return reject(error); }); + }); + }); } - function __await(v) { - return this instanceof __await ? (this.v = v, this) : new __await(v); + function userAddAlias(label, id) { + var _a; + (_a = window.OneSignalDeferred) === null || _a === void 0 ? void 0 : _a.push(function (oneSignal) { + oneSignal.User.addAlias(label, id); + }); } - function __asyncGenerator(thisArg, _arguments, generator) { - if (!Symbol.asyncIterator) - throw new TypeError("Symbol.asyncIterator is not defined."); - var g = generator.apply(thisArg, _arguments || []), i, q = []; - return i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i; - function verb(n) { if (g[n]) - i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; } - function resume(n, v) { try { - step(g[n](v)); - } - catch (e) { - settle(q[0][3], e); - } } - function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); } - function fulfill(value) { resume("next", value); } - function reject(value) { resume("throw", value); } - function settle(f, v) { if (f(v), q.shift(), q.length) - resume(q[0][0], q[0][1]); } + function userAddAliases(aliases) { + var _a; + (_a = window.OneSignalDeferred) === null || _a === void 0 ? void 0 : _a.push(function (oneSignal) { + oneSignal.User.addAliases(aliases); + }); } - function __asyncDelegator(o) { - var i, p; - return i = {}, verb("next"), verb("throw", function (e) { throw e; }), verb("return"), i[Symbol.iterator] = function () { return this; }, i; - function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === "return" } : f ? f(v) : v; } : f; } + function userRemoveAlias(label) { + var _a; + (_a = window.OneSignalDeferred) === null || _a === void 0 ? void 0 : _a.push(function (oneSignal) { + oneSignal.User.removeAlias(label); + }); } - function __asyncValues(o) { - if (!Symbol.asyncIterator) - throw new TypeError("Symbol.asyncIterator is not defined."); - var m = o[Symbol.asyncIterator], i; - return m ? m.call(o) : (o = typeof __values === "function" ? __values(o) : o[Symbol.iterator](), i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i); - function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; } - function settle(resolve, reject, d, v) { Promise.resolve(v).then(function (v) { resolve({ value: v, done: d }); }, reject); } + function userRemoveAliases(labels) { + var _a; + (_a = window.OneSignalDeferred) === null || _a === void 0 ? void 0 : _a.push(function (oneSignal) { + oneSignal.User.removeAliases(labels); + }); } - function __makeTemplateObject(cooked, raw) { - if (Object.defineProperty) { - Object.defineProperty(cooked, "raw", { value: raw }); - } - else { - cooked.raw = raw; - } - return cooked; + function userAddEmail(email) { + var _a; + (_a = window.OneSignalDeferred) === null || _a === void 0 ? void 0 : _a.push(function (oneSignal) { + oneSignal.User.addEmail(email); + }); } - ; - var __setModuleDefault = Object.create ? (function (o, v) { - Object.defineProperty(o, "default", { enumerable: true, value: v }); - }) : function (o, v) { - o["default"] = v; - }; - function __importStar(mod) { - if (mod && mod.__esModule) - return mod; - var result = {}; - if (mod != null) - for (var k in mod) - if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) - __createBinding(result, mod, k); - __setModuleDefault(result, mod); - return result; + function userRemoveEmail(email) { + var _a; + (_a = window.OneSignalDeferred) === null || _a === void 0 ? void 0 : _a.push(function (oneSignal) { + oneSignal.User.removeEmail(email); + }); } - function __importDefault(mod) { - return (mod && mod.__esModule) ? mod : { default: mod }; + function userAddSms(smsNumber) { + var _a; + (_a = window.OneSignalDeferred) === null || _a === void 0 ? void 0 : _a.push(function (oneSignal) { + oneSignal.User.addSms(smsNumber); + }); } - function __classPrivateFieldGet(receiver, state, kind, f) { - if (kind === "a" && !f) - throw new TypeError("Private accessor was defined without a getter"); - if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) - throw new TypeError("Cannot read private member from an object whose class did not declare it"); - return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver); + function userRemoveSms(smsNumber) { + var _a; + (_a = window.OneSignalDeferred) === null || _a === void 0 ? void 0 : _a.push(function (oneSignal) { + oneSignal.User.removeSms(smsNumber); + }); } - function __classPrivateFieldSet(receiver, state, value, kind, f) { - if (kind === "m") - throw new TypeError("Private method is not writable"); - if (kind === "a" && !f) - throw new TypeError("Private accessor was defined without a setter"); - if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) - throw new TypeError("Cannot write private member to an object whose class did not declare it"); - return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value; + function userAddTag(key, value) { + var _a; + (_a = window.OneSignalDeferred) === null || _a === void 0 ? void 0 : _a.push(function (oneSignal) { + oneSignal.User.addTag(key, value); + }); + } + function userAddTags(tags) { + var _a; + (_a = window.OneSignalDeferred) === null || _a === void 0 ? void 0 : _a.push(function (oneSignal) { + oneSignal.User.addTags(tags); + }); + } + function userRemoveTag(key) { + var _a; + (_a = window.OneSignalDeferred) === null || _a === void 0 ? void 0 : _a.push(function (oneSignal) { + oneSignal.User.removeTag(key); + }); + } + function userRemoveTags(keys) { + var _a; + (_a = window.OneSignalDeferred) === null || _a === void 0 ? void 0 : _a.push(function (oneSignal) { + oneSignal.User.removeTags(keys); + }); + } + function pushSubscriptionOptIn() { + return new Promise(function (resolve, reject) { + var _a; + if (isOneSignalScriptFailed) { + reject(); + } + (_a = window.OneSignalDeferred) === null || _a === void 0 ? void 0 : _a.push(function (oneSignal) { + oneSignal.User.PushSubscription.optIn() + .then(function (value) { return resolve(value); }) + .catch(function (error) { return reject(error); }); + }); + }); + } + function pushSubscriptionOptOut() { + return new Promise(function (resolve, reject) { + var _a; + if (isOneSignalScriptFailed) { + reject(); + } + (_a = window.OneSignalDeferred) === null || _a === void 0 ? void 0 : _a.push(function (oneSignal) { + oneSignal.User.PushSubscription.optOut() + .then(function (value) { return resolve(value); }) + .catch(function (error) { return reject(error); }); + }); + }); + } + function pushSubscriptionAddEventListener(event, listener) { + var _a; + (_a = window.OneSignalDeferred) === null || _a === void 0 ? void 0 : _a.push(function (oneSignal) { + oneSignal.User.PushSubscription.addEventListener(event, listener); + }); + } + function pushSubscriptionRemoveEventListener(event, listener) { + var _a; + (_a = window.OneSignalDeferred) === null || _a === void 0 ? void 0 : _a.push(function (oneSignal) { + oneSignal.User.PushSubscription.removeEventListener(event, listener); + }); + } + function debugSetLogLevel(logLevel) { + var _a; + (_a = window.OneSignalDeferred) === null || _a === void 0 ? void 0 : _a.push(function (oneSignal) { + oneSignal.Debug.setLogLevel(logLevel); + }); + } + var PushSubscriptionNamespace = { + get id() { var _a, _b, _c; return (_c = (_b = (_a = window.OneSignal) === null || _a === void 0 ? void 0 : _a.User) === null || _b === void 0 ? void 0 : _b.PushSubscription) === null || _c === void 0 ? void 0 : _c.id; }, + get token() { var _a, _b, _c; return (_c = (_b = (_a = window.OneSignal) === null || _a === void 0 ? void 0 : _a.User) === null || _b === void 0 ? void 0 : _b.PushSubscription) === null || _c === void 0 ? void 0 : _c.token; }, + get optedIn() { var _a, _b, _c; return (_c = (_b = (_a = window.OneSignal) === null || _a === void 0 ? void 0 : _a.User) === null || _b === void 0 ? void 0 : _b.PushSubscription) === null || _c === void 0 ? void 0 : _c.optedIn; }, + optIn: pushSubscriptionOptIn, + optOut: pushSubscriptionOptOut, + addEventListener: pushSubscriptionAddEventListener, + removeEventListener: pushSubscriptionRemoveEventListener, + }; + var UserNamespace = { + addAlias: userAddAlias, + addAliases: userAddAliases, + removeAlias: userRemoveAlias, + removeAliases: userRemoveAliases, + addEmail: userAddEmail, + removeEmail: userRemoveEmail, + addSms: userAddSms, + removeSms: userRemoveSms, + addTag: userAddTag, + addTags: userAddTags, + removeTag: userRemoveTag, + removeTags: userRemoveTags, + PushSubscription: PushSubscriptionNamespace, + }; + var SessionNamespace = { + sendOutcome: sessionSendOutcome, + sendUniqueOutcome: sessionSendUniqueOutcome, + }; + var DebugNamespace = { + setLogLevel: debugSetLogLevel, + }; + var SlidedownNamespace = { + promptPush: slidedownPromptPush, + promptPushCategories: slidedownPromptPushCategories, + promptSms: slidedownPromptSms, + promptEmail: slidedownPromptEmail, + promptSmsAndEmail: slidedownPromptSmsAndEmail, + addEventListener: slidedownAddEventListener, + removeEventListener: slidedownRemoveEventListener, + }; + var NotificationsNamespace = { + get permissionNative() { var _a, _b, _c; return (_c = (_b = (_a = window.OneSignal) === null || _a === void 0 ? void 0 : _a.Notifications) === null || _b === void 0 ? void 0 : _b.permissionNative) !== null && _c !== void 0 ? _c : 'default'; }, + get permission() { var _a, _b, _c; return (_c = (_b = (_a = window.OneSignal) === null || _a === void 0 ? void 0 : _a.Notifications) === null || _b === void 0 ? void 0 : _b.permission) !== null && _c !== void 0 ? _c : false; }, + setDefaultUrl: notificationsSetDefaultUrl, + setDefaultTitle: notificationsSetDefaultTitle, + isPushSupported: isPushSupported, + requestPermission: notificationsRequestPermission, + addEventListener: notificationsAddEventListener, + removeEventListener: notificationsRemoveEventListener, + }; + /** + * @PublicApi + */ + function isPushSupported() { + return isPushNotificationsSupported(); } - var ONESIGNAL_SDK_ID = 'onesignal-sdk'; - var ONE_SIGNAL_SCRIPT_SRC = 'https://cdn.onesignal.com/sdks/OneSignalSDK.js'; - var ONESIGNAL_NOT_SETUP_ERROR = 'OneSignal is not setup correctly.'; - var MAX_TIMEOUT = 30; + var ONE_SIGNAL_SCRIPT_SRC = 'https://cdn.onesignal.com/sdks/web/v16/OneSignalSDK.page.js'; + // true if the script is successfully loaded from CDN. + var isOneSignalInitialized = false; + // true if the script fails to load from CDN. A separate flag is necessary + // to disambiguate between a CDN load failure and a delayed call to + // OneSignal#init. + var isOneSignalScriptFailed = false; + if (window) { + window.OneSignalDeferred = window.OneSignalDeferred || []; + addSDKScript(); + } + /** + * The following code is copied directly from the native SDK source file BrowserSupportsPush.ts + * S T A R T + */ + // Checks if the browser supports push notifications by checking if specific + // classes and properties on them exist + function isPushNotificationsSupported() { + return supportsVapidPush() || supportsSafariPush(); + } + function isMacOSSafariInIframe() { + // Fallback detection for Safari on macOS in an iframe context + return window.top !== window && // isContextIframe + navigator.vendor === 'Apple Computer, Inc.' && // isSafari + navigator.platform === 'MacIntel'; // isMacOS + } + function supportsSafariPush() { + return (window.safari && typeof window.safari.pushNotification !== 'undefined') || + isMacOSSafariInIframe(); + } + // Does the browser support the standard Push API + function supportsVapidPush() { + return typeof PushSubscriptionOptions !== 'undefined' && + PushSubscriptionOptions.prototype.hasOwnProperty('applicationServerKey'); + } + /* E N D */ + function handleOnError() { + isOneSignalScriptFailed = true; + } + function addSDKScript() { + var script = document.createElement('script'); + script.id = ONESIGNAL_SDK_ID; + script.defer = true; + script.src = ONE_SIGNAL_SCRIPT_SRC; + // Always resolve whether or not the script is successfully initialized. + // This is important for users who may block cdn.onesignal.com w/ adblock. + script.onerror = function () { + handleOnError(); + }; + document.head.appendChild(script); + } var OneSignal = /** @class */ (function () { function OneSignal() { - var _this = this; - this.isOneSignalInitialized = false; - this.ngOneSignalFunctionQueue = []; - /* H E L P E R S */ - this.injectScript = function () { - var script = document.createElement('script'); - script.id = ONESIGNAL_SDK_ID; - script.src = ONE_SIGNAL_SCRIPT_SRC; - script.async = true; - document.head.appendChild(script); - }; - this.doesOneSignalExist = function () { - if (window.OneSignal) { - return true; - } - return false; - }; - this.processQueuedOneSignalFunctions = function () { - _this.ngOneSignalFunctionQueue.forEach(function (element) { - var _a; - var name = element.name, args = element.args, promiseResolver = element.promiseResolver; - if (!!promiseResolver) { - _this[name].apply(_this, __spread(args)).then(function (result) { - promiseResolver(result); - }); - } - else { - (_a = window.OneSignal)[name].apply(_a, __spread(args)); - } - }); - }; - this.setupOneSignalIfMissing = function () { - if (!_this.doesOneSignalExist()) { - window.OneSignal = window.OneSignal || []; - } - }; + this.User = UserNamespace; + this.Session = SessionNamespace; + this.Debug = DebugNamespace; + this.Slidedown = SlidedownNamespace; + this.Notifications = NotificationsNamespace; + this.login = oneSignalLogin; + this.logout = oneSignalLogout; + this.setConsentGiven = oneSignalSetConsentGiven; + this.setConsentRequired = oneSignalSetConsentRequired; } /* P U B L I C */ + /** + * @PublicApi + */ OneSignal.prototype.init = function (options) { - var _this = this; - return new Promise(function (resolve) { - if (_this.isOneSignalInitialized) { - return; - } - _this.injectScript(); - _this.setupOneSignalIfMissing(); - window.OneSignal.push(function () { - window.OneSignal.init(options); - }); - var timeout = setTimeout(function () { - console.error(ONESIGNAL_NOT_SETUP_ERROR); - }, MAX_TIMEOUT * 1000); - window.OneSignal.push(function () { - clearTimeout(timeout); - _this.isOneSignalInitialized = true; - _this.processQueuedOneSignalFunctions(); - resolve(); - }); - }); - }; - OneSignal.prototype.on = function (event, listener) { - if (!this.doesOneSignalExist()) { - this.ngOneSignalFunctionQueue.push({ - name: 'on', - args: arguments, - }); - return; + if (isOneSignalInitialized) { + return Promise.reject("OneSignal is already initialized."); } - window.OneSignal.push(function () { - window.OneSignal.on(event, listener); - }); - }; - OneSignal.prototype.off = function (event, listener) { - if (!this.doesOneSignalExist()) { - this.ngOneSignalFunctionQueue.push({ - name: 'off', - args: arguments, - }); - return; + if (!options || !options.appId) { + throw new Error('You need to provide your OneSignal appId.'); } - window.OneSignal.push(function () { - window.OneSignal.off(event, listener); - }); - }; - OneSignal.prototype.once = function (event, listener) { - if (!this.doesOneSignalExist()) { - this.ngOneSignalFunctionQueue.push({ - name: 'once', - args: arguments, - }); - return; + if (!document) { + return Promise.reject("Document is not defined."); } - window.OneSignal.push(function () { - window.OneSignal.once(event, listener); - }); - }; - OneSignal.prototype.isPushNotificationsEnabled = function (callback) { - var _this = this; - return new Promise(function (resolve, reject) { - if (!_this.doesOneSignalExist()) { - _this.ngOneSignalFunctionQueue.push({ - name: 'isPushNotificationsEnabled', - args: arguments, - promiseResolver: resolve, - }); - return; - } - window.OneSignal.push(function () { - window.OneSignal.isPushNotificationsEnabled(callback) - .then(function (value) { return resolve(value); }) - .catch(function (error) { return reject(error); }); - }); - }); - }; - OneSignal.prototype.showHttpPrompt = function (options) { - var _this = this; - return new Promise(function (resolve, reject) { - if (!_this.doesOneSignalExist()) { - _this.ngOneSignalFunctionQueue.push({ - name: 'showHttpPrompt', - args: arguments, - promiseResolver: resolve, - }); - return; - } - window.OneSignal.push(function () { - window.OneSignal.showHttpPrompt(options) - .then(function (value) { return resolve(value); }) - .catch(function (error) { return reject(error); }); - }); - }); - }; - OneSignal.prototype.registerForPushNotifications = function (options) { - var _this = this; - return new Promise(function (resolve, reject) { - if (!_this.doesOneSignalExist()) { - _this.ngOneSignalFunctionQueue.push({ - name: 'registerForPushNotifications', - args: arguments, - promiseResolver: resolve, - }); - return; - } - window.OneSignal.push(function () { - window.OneSignal.registerForPushNotifications(options) - .then(function (value) { return resolve(value); }) - .catch(function (error) { return reject(error); }); - }); - }); - }; - OneSignal.prototype.setDefaultNotificationUrl = function (url) { - var _this = this; - return new Promise(function (resolve, reject) { - if (!_this.doesOneSignalExist()) { - _this.ngOneSignalFunctionQueue.push({ - name: 'setDefaultNotificationUrl', - args: arguments, - promiseResolver: resolve, - }); - return; - } - window.OneSignal.push(function () { - window.OneSignal.setDefaultNotificationUrl(url) - .then(function (value) { return resolve(value); }) - .catch(function (error) { return reject(error); }); - }); - }); - }; - OneSignal.prototype.setDefaultTitle = function (title) { - var _this = this; - return new Promise(function (resolve, reject) { - if (!_this.doesOneSignalExist()) { - _this.ngOneSignalFunctionQueue.push({ - name: 'setDefaultTitle', - args: arguments, - promiseResolver: resolve, - }); - return; - } - window.OneSignal.push(function () { - window.OneSignal.setDefaultTitle(title) - .then(function (value) { return resolve(value); }) - .catch(function (error) { return reject(error); }); - }); - }); - }; - OneSignal.prototype.getTags = function (callback) { - var _this = this; - return new Promise(function (resolve, reject) { - if (!_this.doesOneSignalExist()) { - _this.ngOneSignalFunctionQueue.push({ - name: 'getTags', - args: arguments, - promiseResolver: resolve, - }); - return; - } - window.OneSignal.push(function () { - window.OneSignal.getTags(callback) - .then(function (value) { return resolve(value); }) - .catch(function (error) { return reject(error); }); - }); - }); - }; - OneSignal.prototype.sendTag = function (key, value, callback) { - var _this = this; - return new Promise(function (resolve, reject) { - if (!_this.doesOneSignalExist()) { - _this.ngOneSignalFunctionQueue.push({ - name: 'sendTag', - args: arguments, - promiseResolver: resolve, - }); - return; - } - window.OneSignal.push(function () { - window.OneSignal.sendTag(key, value, callback) - .then(function (value) { return resolve(value); }) - .catch(function (error) { return reject(error); }); - }); - }); - }; - OneSignal.prototype.sendTags = function (tags, callback) { - var _this = this; - return new Promise(function (resolve, reject) { - if (!_this.doesOneSignalExist()) { - _this.ngOneSignalFunctionQueue.push({ - name: 'sendTags', - args: arguments, - promiseResolver: resolve, - }); - return; - } - window.OneSignal.push(function () { - window.OneSignal.sendTags(tags, callback) - .then(function (value) { return resolve(value); }) - .catch(function (error) { return reject(error); }); - }); - }); - }; - OneSignal.prototype.deleteTag = function (tag) { - var _this = this; - return new Promise(function (resolve, reject) { - if (!_this.doesOneSignalExist()) { - _this.ngOneSignalFunctionQueue.push({ - name: 'deleteTag', - args: arguments, - promiseResolver: resolve, - }); - return; - } - window.OneSignal.push(function () { - window.OneSignal.deleteTag(tag) - .then(function (value) { return resolve(value); }) - .catch(function (error) { return reject(error); }); - }); - }); - }; - OneSignal.prototype.deleteTags = function (tags, callback) { - var _this = this; - return new Promise(function (resolve, reject) { - if (!_this.doesOneSignalExist()) { - _this.ngOneSignalFunctionQueue.push({ - name: 'deleteTags', - args: arguments, - promiseResolver: resolve, - }); - return; - } - window.OneSignal.push(function () { - window.OneSignal.deleteTags(tags, callback) - .then(function (value) { return resolve(value); }) - .catch(function (error) { return reject(error); }); - }); - }); - }; - OneSignal.prototype.addListenerForNotificationOpened = function (callback) { - var _this = this; - return new Promise(function (resolve, reject) { - if (!_this.doesOneSignalExist()) { - _this.ngOneSignalFunctionQueue.push({ - name: 'addListenerForNotificationOpened', - args: arguments, - promiseResolver: resolve, - }); - return; - } - window.OneSignal.push(function () { - window.OneSignal.addListenerForNotificationOpened(callback) - .then(function (value) { return resolve(value); }) - .catch(function (error) { return reject(error); }); - }); - }); - }; - OneSignal.prototype.setSubscription = function (newSubscription) { - var _this = this; - return new Promise(function (resolve, reject) { - if (!_this.doesOneSignalExist()) { - _this.ngOneSignalFunctionQueue.push({ - name: 'setSubscription', - args: arguments, - promiseResolver: resolve, - }); - return; - } - window.OneSignal.push(function () { - window.OneSignal.setSubscription(newSubscription) - .then(function (value) { return resolve(value); }) - .catch(function (error) { return reject(error); }); - }); - }); - }; - OneSignal.prototype.showHttpPermissionRequest = function (options) { - var _this = this; - return new Promise(function (resolve, reject) { - if (!_this.doesOneSignalExist()) { - _this.ngOneSignalFunctionQueue.push({ - name: 'showHttpPermissionRequest', - args: arguments, - promiseResolver: resolve, - }); - return; - } - window.OneSignal.push(function () { - window.OneSignal.showHttpPermissionRequest(options) - .then(function (value) { return resolve(value); }) - .catch(function (error) { return reject(error); }); - }); - }); - }; - OneSignal.prototype.showNativePrompt = function () { - var _this = this; - return new Promise(function (resolve, reject) { - if (!_this.doesOneSignalExist()) { - _this.ngOneSignalFunctionQueue.push({ - name: 'showNativePrompt', - args: arguments, - promiseResolver: resolve, - }); - return; - } - window.OneSignal.push(function () { - window.OneSignal.showNativePrompt() - .then(function (value) { return resolve(value); }) - .catch(function (error) { return reject(error); }); - }); - }); - }; - OneSignal.prototype.showSlidedownPrompt = function (options) { - var _this = this; - return new Promise(function (resolve, reject) { - if (!_this.doesOneSignalExist()) { - _this.ngOneSignalFunctionQueue.push({ - name: 'showSlidedownPrompt', - args: arguments, - promiseResolver: resolve, - }); - return; - } - window.OneSignal.push(function () { - window.OneSignal.showSlidedownPrompt(options) - .then(function (value) { return resolve(value); }) - .catch(function (error) { return reject(error); }); - }); - }); - }; - OneSignal.prototype.showCategorySlidedown = function (options) { - var _this = this; - return new Promise(function (resolve, reject) { - if (!_this.doesOneSignalExist()) { - _this.ngOneSignalFunctionQueue.push({ - name: 'showCategorySlidedown', - args: arguments, - promiseResolver: resolve, - }); - return; - } - window.OneSignal.push(function () { - window.OneSignal.showCategorySlidedown(options) - .then(function (value) { return resolve(value); }) - .catch(function (error) { return reject(error); }); - }); - }); - }; - OneSignal.prototype.showSmsSlidedown = function (options) { - var _this = this; - return new Promise(function (resolve, reject) { - if (!_this.doesOneSignalExist()) { - _this.ngOneSignalFunctionQueue.push({ - name: 'showSmsSlidedown', - args: arguments, - promiseResolver: resolve, - }); - return; - } - window.OneSignal.push(function () { - window.OneSignal.showSmsSlidedown(options) - .then(function (value) { return resolve(value); }) - .catch(function (error) { return reject(error); }); - }); - }); - }; - OneSignal.prototype.showEmailSlidedown = function (options) { - var _this = this; - return new Promise(function (resolve, reject) { - if (!_this.doesOneSignalExist()) { - _this.ngOneSignalFunctionQueue.push({ - name: 'showEmailSlidedown', - args: arguments, - promiseResolver: resolve, - }); - return; - } - window.OneSignal.push(function () { - window.OneSignal.showEmailSlidedown(options) - .then(function (value) { return resolve(value); }) - .catch(function (error) { return reject(error); }); - }); - }); - }; - OneSignal.prototype.showSmsAndEmailSlidedown = function (options) { - var _this = this; - return new Promise(function (resolve, reject) { - if (!_this.doesOneSignalExist()) { - _this.ngOneSignalFunctionQueue.push({ - name: 'showSmsAndEmailSlidedown', - args: arguments, - promiseResolver: resolve, - }); - return; - } - window.OneSignal.push(function () { - window.OneSignal.showSmsAndEmailSlidedown(options) - .then(function (value) { return resolve(value); }) - .catch(function (error) { return reject(error); }); - }); - }); - }; - OneSignal.prototype.getNotificationPermission = function (onComplete) { - var _this = this; - return new Promise(function (resolve, reject) { - if (!_this.doesOneSignalExist()) { - _this.ngOneSignalFunctionQueue.push({ - name: 'getNotificationPermission', - args: arguments, - promiseResolver: resolve, - }); - return; - } - window.OneSignal.push(function () { - window.OneSignal.getNotificationPermission(onComplete) - .then(function (value) { return resolve(value); }) - .catch(function (error) { return reject(error); }); - }); - }); - }; - OneSignal.prototype.getUserId = function (callback) { - var _this = this; - return new Promise(function (resolve, reject) { - if (!_this.doesOneSignalExist()) { - _this.ngOneSignalFunctionQueue.push({ - name: 'getUserId', - args: arguments, - promiseResolver: resolve, - }); - return; - } - window.OneSignal.push(function () { - window.OneSignal.getUserId(callback) - .then(function (value) { return resolve(value); }) - .catch(function (error) { return reject(error); }); - }); - }); - }; - OneSignal.prototype.getSubscription = function (callback) { - var _this = this; - return new Promise(function (resolve, reject) { - if (!_this.doesOneSignalExist()) { - _this.ngOneSignalFunctionQueue.push({ - name: 'getSubscription', - args: arguments, - promiseResolver: resolve, - }); - return; - } - window.OneSignal.push(function () { - window.OneSignal.getSubscription(callback) - .then(function (value) { return resolve(value); }) - .catch(function (error) { return reject(error); }); - }); - }); - }; - OneSignal.prototype.setEmail = function (email, options) { - var _this = this; - return new Promise(function (resolve, reject) { - if (!_this.doesOneSignalExist()) { - _this.ngOneSignalFunctionQueue.push({ - name: 'setEmail', - args: arguments, - promiseResolver: resolve, - }); - return; - } - window.OneSignal.push(function () { - window.OneSignal.setEmail(email, options) - .then(function (value) { return resolve(value); }) - .catch(function (error) { return reject(error); }); - }); - }); - }; - OneSignal.prototype.setSMSNumber = function (smsNumber, options) { - var _this = this; - return new Promise(function (resolve, reject) { - if (!_this.doesOneSignalExist()) { - _this.ngOneSignalFunctionQueue.push({ - name: 'setSMSNumber', - args: arguments, - promiseResolver: resolve, - }); - return; - } - window.OneSignal.push(function () { - window.OneSignal.setSMSNumber(smsNumber, options) - .then(function (value) { return resolve(value); }) - .catch(function (error) { return reject(error); }); - }); - }); - }; - OneSignal.prototype.logoutEmail = function () { - var _this = this; - return new Promise(function (resolve, reject) { - if (!_this.doesOneSignalExist()) { - _this.ngOneSignalFunctionQueue.push({ - name: 'logoutEmail', - args: arguments, - promiseResolver: resolve, - }); - return; - } - window.OneSignal.push(function () { - window.OneSignal.logoutEmail() - .then(function (value) { return resolve(value); }) - .catch(function (error) { return reject(error); }); - }); - }); - }; - OneSignal.prototype.logoutSMS = function () { - var _this = this; - return new Promise(function (resolve, reject) { - if (!_this.doesOneSignalExist()) { - _this.ngOneSignalFunctionQueue.push({ - name: 'logoutSMS', - args: arguments, - promiseResolver: resolve, - }); - return; - } - window.OneSignal.push(function () { - window.OneSignal.logoutSMS() - .then(function (value) { return resolve(value); }) - .catch(function (error) { return reject(error); }); - }); - }); - }; - OneSignal.prototype.setExternalUserId = function (externalUserId, authHash) { - var _this = this; - return new Promise(function (resolve, reject) { - if (!_this.doesOneSignalExist()) { - _this.ngOneSignalFunctionQueue.push({ - name: 'setExternalUserId', - args: arguments, - promiseResolver: resolve, - }); - return; - } - window.OneSignal.push(function () { - window.OneSignal.setExternalUserId(externalUserId, authHash) - .then(function (value) { return resolve(value); }) - .catch(function (error) { return reject(error); }); - }); - }); - }; - OneSignal.prototype.removeExternalUserId = function () { - var _this = this; - return new Promise(function (resolve, reject) { - if (!_this.doesOneSignalExist()) { - _this.ngOneSignalFunctionQueue.push({ - name: 'removeExternalUserId', - args: arguments, - promiseResolver: resolve, - }); - return; - } - window.OneSignal.push(function () { - window.OneSignal.removeExternalUserId() - .then(function (value) { return resolve(value); }) - .catch(function (error) { return reject(error); }); - }); - }); - }; - OneSignal.prototype.getExternalUserId = function () { - var _this = this; - return new Promise(function (resolve, reject) { - if (!_this.doesOneSignalExist()) { - _this.ngOneSignalFunctionQueue.push({ - name: 'getExternalUserId', - args: arguments, - promiseResolver: resolve, - }); - return; - } - window.OneSignal.push(function () { - window.OneSignal.getExternalUserId() - .then(function (value) { return resolve(value); }) - .catch(function (error) { return reject(error); }); - }); - }); - }; - OneSignal.prototype.provideUserConsent = function (consent) { - var _this = this; - return new Promise(function (resolve, reject) { - if (!_this.doesOneSignalExist()) { - _this.ngOneSignalFunctionQueue.push({ - name: 'provideUserConsent', - args: arguments, - promiseResolver: resolve, - }); - return; - } - window.OneSignal.push(function () { - window.OneSignal.provideUserConsent(consent) - .then(function (value) { return resolve(value); }) - .catch(function (error) { return reject(error); }); - }); - }); - }; - OneSignal.prototype.getEmailId = function (callback) { - var _this = this; - return new Promise(function (resolve, reject) { - if (!_this.doesOneSignalExist()) { - _this.ngOneSignalFunctionQueue.push({ - name: 'getEmailId', - args: arguments, - promiseResolver: resolve, - }); - return; - } - window.OneSignal.push(function () { - window.OneSignal.getEmailId(callback) - .then(function (value) { return resolve(value); }) - .catch(function (error) { return reject(error); }); - }); - }); - }; - OneSignal.prototype.getSMSId = function (callback) { - var _this = this; - return new Promise(function (resolve, reject) { - if (!_this.doesOneSignalExist()) { - _this.ngOneSignalFunctionQueue.push({ - name: 'getSMSId', - args: arguments, - promiseResolver: resolve, - }); - return; - } - window.OneSignal.push(function () { - window.OneSignal.getSMSId(callback) - .then(function (value) { return resolve(value); }) - .catch(function (error) { return reject(error); }); - }); - }); - }; - OneSignal.prototype.sendOutcome = function (outcomeName, outcomeWeight) { - var _this = this; - return new Promise(function (resolve, reject) { - if (!_this.doesOneSignalExist()) { - _this.ngOneSignalFunctionQueue.push({ - name: 'sendOutcome', - args: arguments, - promiseResolver: resolve, + return new Promise(function (resolve) { + var _a; + (_a = window.OneSignalDeferred) === null || _a === void 0 ? void 0 : _a.push(function (oneSignal) { + oneSignal.init(options).then(function () { + isOneSignalInitialized = true; + resolve(); }); - return; - } - window.OneSignal.push(function () { - window.OneSignal.sendOutcome(outcomeName, outcomeWeight) - .then(function (value) { return resolve(value); }) - .catch(function (error) { return reject(error); }); }); }); }; diff --git a/bundles/onesignal-ngx.umd.js.map b/bundles/onesignal-ngx.umd.js.map index e98f419..7541bc6 100644 --- a/bundles/onesignal-ngx.umd.js.map +++ b/bundles/onesignal-ngx.umd.js.map @@ -1 +1 @@ -{"version":3,"file":"onesignal-ngx.umd.js","sources":["../../../node_modules/tslib/tslib.es6.js","../../../projects/onesignal-ngx/src/lib/onesignal-ngx.service.ts","../../../projects/onesignal-ngx/src/lib/onesignal-ngx.component.ts","../../../projects/onesignal-ngx/src/lib/onesignal-ngx.module.ts","../../../projects/onesignal-ngx/src/public-api.ts","../../../projects/onesignal-ngx/src/onesignal-ngx.ts"],"sourcesContent":["/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n","type Action = (item: T) => void;\ninterface AutoPromptOptions { force?: boolean; forceSlidedownOverNative?: boolean; slidedownPromptOptions?: IOneSignalAutoPromptOptions; }\ninterface RegisterOptions { modalPrompt?: boolean; httpPermissionRequest?: boolean; slidedown?: boolean; autoAccept?: boolean }\ninterface SetSMSOptions { identifierAuthHash?: string; }\ninterface SetEmailOptions { identifierAuthHash?: string; emailAuthHash?: string; }\ninterface TagsObject { [key: string]: T; }\ninterface IOneSignalAutoPromptOptions { force?: boolean; forceSlidedownOverNative?: boolean; isInUpdateMode?: boolean; categoryOptions?: IOneSignalCategories; }\ninterface IOneSignalCategories { positiveUpdateButton: string; negativeUpdateButton: string; savingButtonText: string; errorButtonText: string; updateMessage: string; tags: IOneSignalTagCategory[]; }\ninterface IOneSignalTagCategory { tag: string; label: string; checked?: boolean; }\n\ninterface IInitObject {\n appId: string;\n subdomainName?: string;\n requiresUserPrivacyConsent?: boolean;\n promptOptions?: object;\n welcomeNotification?: object;\n notifyButton?: object;\n persistNotification?: boolean;\n webhooks?: object;\n autoResubscribe?: boolean;\n autoRegister?: boolean;\n notificationClickHandlerMatch?: string;\n notificationClickHandlerAction?: string;\n serviceWorkerParam?: { scope: string };\n serviceWorkerPath?: string;\n serviceWorkerUpdaterPath?: string;\n path?: string;\n allowLocalhostAsSecureOrigin?: boolean;\n [key: string]: any;\n}\n\nimport { Injectable } from '@angular/core';\nconst ONESIGNAL_SDK_ID = 'onesignal-sdk';\nconst ONE_SIGNAL_SCRIPT_SRC = 'https://cdn.onesignal.com/sdks/OneSignalSDK.js';\nconst ONESIGNAL_NOT_SETUP_ERROR = 'OneSignal is not setup correctly.';\nconst MAX_TIMEOUT = 30;\n\ndeclare global {\n interface Window {\n OneSignal: any;\n }\n}\n\ninterface IOneSignalFunctionCall {\n name: string;\n args: IArguments;\n promiseResolver?: Function;\n}\n\ninterface IOneSignal {\n [key: string]: any;\n}\n\n@Injectable({\n providedIn: 'root'\n})\nexport class OneSignal implements IOneSignal {\n private isOneSignalInitialized = false;\n private ngOneSignalFunctionQueue: IOneSignalFunctionCall[] = [];\n\n constructor() { }\n\n /* H E L P E R S */\n\n private injectScript = () => {\n const script = document.createElement('script');\n script.id = ONESIGNAL_SDK_ID;\n script.src = ONE_SIGNAL_SCRIPT_SRC;\n script.async = true;\n document.head.appendChild(script);\n }\n\n private doesOneSignalExist = () => {\n if (window.OneSignal) {\n return true;\n }\n return false;\n }\n\n private processQueuedOneSignalFunctions = () => {\n this.ngOneSignalFunctionQueue.forEach(element => {\n const { name, args, promiseResolver } = element;\n\n if (!!promiseResolver) {\n (this as IOneSignal)[name](...args).then((result: any) => {\n promiseResolver(result);\n });\n } else {\n window.OneSignal[name](...args);\n }\n });\n }\n\n private setupOneSignalIfMissing = () => {\n if (!this.doesOneSignalExist()) {\n window.OneSignal = window.OneSignal || [];\n }\n }\n\n /* P U B L I C */\n\n init(options: IInitObject): Promise {\n return new Promise(resolve => {\n if (this.isOneSignalInitialized) {\n return;\n }\n\n this.injectScript();\n this.setupOneSignalIfMissing();\n window.OneSignal.push(() => {\n window.OneSignal.init(options);\n });\n\n const timeout = setTimeout(() => {\n console.error(ONESIGNAL_NOT_SETUP_ERROR);\n }, MAX_TIMEOUT * 1_000);\n\n window.OneSignal.push(() => {\n clearTimeout(timeout);\n this.isOneSignalInitialized = true;\n this.processQueuedOneSignalFunctions();\n resolve();\n });\n });\n }\n\n\n on(event: string, listener: (eventData?: any) => void): void {\n if (!this.doesOneSignalExist()) {\n this.ngOneSignalFunctionQueue.push({\n name: 'on',\n args: arguments,\n });\n return;\n }\n\n window.OneSignal.push(() => {\n window.OneSignal.on(event, listener);\n });\n }\n\n off(event: string, listener: (eventData?: any) => void): void {\n if (!this.doesOneSignalExist()) {\n this.ngOneSignalFunctionQueue.push({\n name: 'off',\n args: arguments,\n });\n return;\n }\n\n window.OneSignal.push(() => {\n window.OneSignal.off(event, listener);\n });\n }\n\n once(event: string, listener: (eventData?: any) => void): void {\n if (!this.doesOneSignalExist()) {\n this.ngOneSignalFunctionQueue.push({\n name: 'once',\n args: arguments,\n });\n return;\n }\n\n window.OneSignal.push(() => {\n window.OneSignal.once(event, listener);\n });\n }\n\n isPushNotificationsEnabled(callback?: Action): Promise {\n return new Promise((resolve, reject) => {\n if (!this.doesOneSignalExist()) {\n this.ngOneSignalFunctionQueue.push({\n name: 'isPushNotificationsEnabled',\n args: arguments,\n promiseResolver: resolve,\n });\n return;\n }\n\n window.OneSignal.push(() => {\n window.OneSignal.isPushNotificationsEnabled(callback)\n .then((value: Promise) => resolve(value))\n .catch((error: Error) => reject(error));\n });\n });\n }\n\n showHttpPrompt(options?: AutoPromptOptions): Promise {\n return new Promise((resolve, reject) => {\n if (!this.doesOneSignalExist()) {\n this.ngOneSignalFunctionQueue.push({\n name: 'showHttpPrompt',\n args: arguments,\n promiseResolver: resolve,\n });\n return;\n }\n\n window.OneSignal.push(() => {\n window.OneSignal.showHttpPrompt(options)\n .then((value: Promise) => resolve(value))\n .catch((error: Error) => reject(error));\n });\n });\n }\n\n registerForPushNotifications(options?: RegisterOptions): Promise {\n return new Promise((resolve, reject) => {\n if (!this.doesOneSignalExist()) {\n this.ngOneSignalFunctionQueue.push({\n name: 'registerForPushNotifications',\n args: arguments,\n promiseResolver: resolve,\n });\n return;\n }\n\n window.OneSignal.push(() => {\n window.OneSignal.registerForPushNotifications(options)\n .then((value: Promise) => resolve(value))\n .catch((error: Error) => reject(error));\n });\n });\n }\n\n setDefaultNotificationUrl(url: string): Promise {\n return new Promise((resolve, reject) => {\n if (!this.doesOneSignalExist()) {\n this.ngOneSignalFunctionQueue.push({\n name: 'setDefaultNotificationUrl',\n args: arguments,\n promiseResolver: resolve,\n });\n return;\n }\n\n window.OneSignal.push(() => {\n window.OneSignal.setDefaultNotificationUrl(url)\n .then((value: Promise) => resolve(value))\n .catch((error: Error) => reject(error));\n });\n });\n }\n\n setDefaultTitle(title: string): Promise {\n return new Promise((resolve, reject) => {\n if (!this.doesOneSignalExist()) {\n this.ngOneSignalFunctionQueue.push({\n name: 'setDefaultTitle',\n args: arguments,\n promiseResolver: resolve,\n });\n return;\n }\n\n window.OneSignal.push(() => {\n window.OneSignal.setDefaultTitle(title)\n .then((value: Promise) => resolve(value))\n .catch((error: Error) => reject(error));\n });\n });\n }\n\n getTags(callback?: Action): Promise {\n return new Promise((resolve, reject) => {\n if (!this.doesOneSignalExist()) {\n this.ngOneSignalFunctionQueue.push({\n name: 'getTags',\n args: arguments,\n promiseResolver: resolve,\n });\n return;\n }\n\n window.OneSignal.push(() => {\n window.OneSignal.getTags(callback)\n .then((value: Promise) => resolve(value))\n .catch((error: Error) => reject(error));\n });\n });\n }\n\n sendTag(key: string, value: any, callback?: Action): Promise {\n return new Promise((resolve, reject) => {\n if (!this.doesOneSignalExist()) {\n this.ngOneSignalFunctionQueue.push({\n name: 'sendTag',\n args: arguments,\n promiseResolver: resolve,\n });\n return;\n }\n\n window.OneSignal.push(() => {\n window.OneSignal.sendTag(key, value, callback)\n .then((value: Promise) => resolve(value))\n .catch((error: Error) => reject(error));\n });\n });\n }\n\n sendTags(tags: TagsObject, callback?: Action): Promise {\n return new Promise((resolve, reject) => {\n if (!this.doesOneSignalExist()) {\n this.ngOneSignalFunctionQueue.push({\n name: 'sendTags',\n args: arguments,\n promiseResolver: resolve,\n });\n return;\n }\n\n window.OneSignal.push(() => {\n window.OneSignal.sendTags(tags, callback)\n .then((value: Promise) => resolve(value))\n .catch((error: Error) => reject(error));\n });\n });\n }\n\n deleteTag(tag: string): Promise> {\n return new Promise((resolve, reject) => {\n if (!this.doesOneSignalExist()) {\n this.ngOneSignalFunctionQueue.push({\n name: 'deleteTag',\n args: arguments,\n promiseResolver: resolve,\n });\n return;\n }\n\n window.OneSignal.push(() => {\n window.OneSignal.deleteTag(tag)\n .then((value: Promise>) => resolve(value))\n .catch((error: Error) => reject(error));\n });\n });\n }\n\n deleteTags(tags: Array, callback?: Action>): Promise> {\n return new Promise((resolve, reject) => {\n if (!this.doesOneSignalExist()) {\n this.ngOneSignalFunctionQueue.push({\n name: 'deleteTags',\n args: arguments,\n promiseResolver: resolve,\n });\n return;\n }\n\n window.OneSignal.push(() => {\n window.OneSignal.deleteTags(tags, callback)\n .then((value: Promise>) => resolve(value))\n .catch((error: Error) => reject(error));\n });\n });\n }\n\n addListenerForNotificationOpened(callback?: Action): Promise {\n return new Promise((resolve, reject) => {\n if (!this.doesOneSignalExist()) {\n this.ngOneSignalFunctionQueue.push({\n name: 'addListenerForNotificationOpened',\n args: arguments,\n promiseResolver: resolve,\n });\n return;\n }\n\n window.OneSignal.push(() => {\n window.OneSignal.addListenerForNotificationOpened(callback)\n .then((value: Promise) => resolve(value))\n .catch((error: Error) => reject(error));\n });\n });\n }\n\n setSubscription(newSubscription: boolean): Promise {\n return new Promise((resolve, reject) => {\n if (!this.doesOneSignalExist()) {\n this.ngOneSignalFunctionQueue.push({\n name: 'setSubscription',\n args: arguments,\n promiseResolver: resolve,\n });\n return;\n }\n\n window.OneSignal.push(() => {\n window.OneSignal.setSubscription(newSubscription)\n .then((value: Promise) => resolve(value))\n .catch((error: Error) => reject(error));\n });\n });\n }\n\n showHttpPermissionRequest(options?: AutoPromptOptions): Promise {\n return new Promise((resolve, reject) => {\n if (!this.doesOneSignalExist()) {\n this.ngOneSignalFunctionQueue.push({\n name: 'showHttpPermissionRequest',\n args: arguments,\n promiseResolver: resolve,\n });\n return;\n }\n\n window.OneSignal.push(() => {\n window.OneSignal.showHttpPermissionRequest(options)\n .then((value: Promise) => resolve(value))\n .catch((error: Error) => reject(error));\n });\n });\n }\n\n showNativePrompt(): Promise {\n return new Promise((resolve, reject) => {\n if (!this.doesOneSignalExist()) {\n this.ngOneSignalFunctionQueue.push({\n name: 'showNativePrompt',\n args: arguments,\n promiseResolver: resolve,\n });\n return;\n }\n\n window.OneSignal.push(() => {\n window.OneSignal.showNativePrompt()\n .then((value: Promise) => resolve(value))\n .catch((error: Error) => reject(error));\n });\n });\n }\n\n showSlidedownPrompt(options?: AutoPromptOptions): Promise {\n return new Promise((resolve, reject) => {\n if (!this.doesOneSignalExist()) {\n this.ngOneSignalFunctionQueue.push({\n name: 'showSlidedownPrompt',\n args: arguments,\n promiseResolver: resolve,\n });\n return;\n }\n\n window.OneSignal.push(() => {\n window.OneSignal.showSlidedownPrompt(options)\n .then((value: Promise) => resolve(value))\n .catch((error: Error) => reject(error));\n });\n });\n }\n\n showCategorySlidedown(options?: AutoPromptOptions): Promise {\n return new Promise((resolve, reject) => {\n if (!this.doesOneSignalExist()) {\n this.ngOneSignalFunctionQueue.push({\n name: 'showCategorySlidedown',\n args: arguments,\n promiseResolver: resolve,\n });\n return;\n }\n\n window.OneSignal.push(() => {\n window.OneSignal.showCategorySlidedown(options)\n .then((value: Promise) => resolve(value))\n .catch((error: Error) => reject(error));\n });\n });\n }\n\n showSmsSlidedown(options?: AutoPromptOptions): Promise {\n return new Promise((resolve, reject) => {\n if (!this.doesOneSignalExist()) {\n this.ngOneSignalFunctionQueue.push({\n name: 'showSmsSlidedown',\n args: arguments,\n promiseResolver: resolve,\n });\n return;\n }\n\n window.OneSignal.push(() => {\n window.OneSignal.showSmsSlidedown(options)\n .then((value: Promise) => resolve(value))\n .catch((error: Error) => reject(error));\n });\n });\n }\n\n showEmailSlidedown(options?: AutoPromptOptions): Promise {\n return new Promise((resolve, reject) => {\n if (!this.doesOneSignalExist()) {\n this.ngOneSignalFunctionQueue.push({\n name: 'showEmailSlidedown',\n args: arguments,\n promiseResolver: resolve,\n });\n return;\n }\n\n window.OneSignal.push(() => {\n window.OneSignal.showEmailSlidedown(options)\n .then((value: Promise) => resolve(value))\n .catch((error: Error) => reject(error));\n });\n });\n }\n\n showSmsAndEmailSlidedown(options?: AutoPromptOptions): Promise {\n return new Promise((resolve, reject) => {\n if (!this.doesOneSignalExist()) {\n this.ngOneSignalFunctionQueue.push({\n name: 'showSmsAndEmailSlidedown',\n args: arguments,\n promiseResolver: resolve,\n });\n return;\n }\n\n window.OneSignal.push(() => {\n window.OneSignal.showSmsAndEmailSlidedown(options)\n .then((value: Promise) => resolve(value))\n .catch((error: Error) => reject(error));\n });\n });\n }\n\n getNotificationPermission(onComplete?: Action): Promise {\n return new Promise((resolve, reject) => {\n if (!this.doesOneSignalExist()) {\n this.ngOneSignalFunctionQueue.push({\n name: 'getNotificationPermission',\n args: arguments,\n promiseResolver: resolve,\n });\n return;\n }\n\n window.OneSignal.push(() => {\n window.OneSignal.getNotificationPermission(onComplete)\n .then((value: Promise) => resolve(value))\n .catch((error: Error) => reject(error));\n });\n });\n }\n\n getUserId(callback?: Action): Promise {\n return new Promise((resolve, reject) => {\n if (!this.doesOneSignalExist()) {\n this.ngOneSignalFunctionQueue.push({\n name: 'getUserId',\n args: arguments,\n promiseResolver: resolve,\n });\n return;\n }\n\n window.OneSignal.push(() => {\n window.OneSignal.getUserId(callback)\n .then((value: Promise) => resolve(value))\n .catch((error: Error) => reject(error));\n });\n });\n }\n\n getSubscription(callback?: Action): Promise {\n return new Promise((resolve, reject) => {\n if (!this.doesOneSignalExist()) {\n this.ngOneSignalFunctionQueue.push({\n name: 'getSubscription',\n args: arguments,\n promiseResolver: resolve,\n });\n return;\n }\n\n window.OneSignal.push(() => {\n window.OneSignal.getSubscription(callback)\n .then((value: Promise) => resolve(value))\n .catch((error: Error) => reject(error));\n });\n });\n }\n\n setEmail(email: string, options?: SetEmailOptions): Promise {\n return new Promise((resolve, reject) => {\n if (!this.doesOneSignalExist()) {\n this.ngOneSignalFunctionQueue.push({\n name: 'setEmail',\n args: arguments,\n promiseResolver: resolve,\n });\n return;\n }\n\n window.OneSignal.push(() => {\n window.OneSignal.setEmail(email, options)\n .then((value: Promise) => resolve(value))\n .catch((error: Error) => reject(error));\n });\n });\n }\n\n setSMSNumber(smsNumber: string, options?: SetSMSOptions): Promise {\n return new Promise((resolve, reject) => {\n if (!this.doesOneSignalExist()) {\n this.ngOneSignalFunctionQueue.push({\n name: 'setSMSNumber',\n args: arguments,\n promiseResolver: resolve,\n });\n return;\n }\n\n window.OneSignal.push(() => {\n window.OneSignal.setSMSNumber(smsNumber, options)\n .then((value: Promise) => resolve(value))\n .catch((error: Error) => reject(error));\n });\n });\n }\n\n logoutEmail(): Promise {\n return new Promise((resolve, reject) => {\n if (!this.doesOneSignalExist()) {\n this.ngOneSignalFunctionQueue.push({\n name: 'logoutEmail',\n args: arguments,\n promiseResolver: resolve,\n });\n return;\n }\n\n window.OneSignal.push(() => {\n window.OneSignal.logoutEmail()\n .then((value: Promise) => resolve(value))\n .catch((error: Error) => reject(error));\n });\n });\n }\n\n logoutSMS(): Promise {\n return new Promise((resolve, reject) => {\n if (!this.doesOneSignalExist()) {\n this.ngOneSignalFunctionQueue.push({\n name: 'logoutSMS',\n args: arguments,\n promiseResolver: resolve,\n });\n return;\n }\n\n window.OneSignal.push(() => {\n window.OneSignal.logoutSMS()\n .then((value: Promise) => resolve(value))\n .catch((error: Error) => reject(error));\n });\n });\n }\n\n setExternalUserId(externalUserId: string | undefined | null, authHash?: string): Promise {\n return new Promise((resolve, reject) => {\n if (!this.doesOneSignalExist()) {\n this.ngOneSignalFunctionQueue.push({\n name: 'setExternalUserId',\n args: arguments,\n promiseResolver: resolve,\n });\n return;\n }\n\n window.OneSignal.push(() => {\n window.OneSignal.setExternalUserId(externalUserId, authHash)\n .then((value: Promise) => resolve(value))\n .catch((error: Error) => reject(error));\n });\n });\n }\n\n removeExternalUserId(): Promise {\n return new Promise((resolve, reject) => {\n if (!this.doesOneSignalExist()) {\n this.ngOneSignalFunctionQueue.push({\n name: 'removeExternalUserId',\n args: arguments,\n promiseResolver: resolve,\n });\n return;\n }\n\n window.OneSignal.push(() => {\n window.OneSignal.removeExternalUserId()\n .then((value: Promise) => resolve(value))\n .catch((error: Error) => reject(error));\n });\n });\n }\n\n getExternalUserId(): Promise {\n return new Promise((resolve, reject) => {\n if (!this.doesOneSignalExist()) {\n this.ngOneSignalFunctionQueue.push({\n name: 'getExternalUserId',\n args: arguments,\n promiseResolver: resolve,\n });\n return;\n }\n\n window.OneSignal.push(() => {\n window.OneSignal.getExternalUserId()\n .then((value: Promise) => resolve(value))\n .catch((error: Error) => reject(error));\n });\n });\n }\n\n provideUserConsent(consent: boolean): Promise {\n return new Promise((resolve, reject) => {\n if (!this.doesOneSignalExist()) {\n this.ngOneSignalFunctionQueue.push({\n name: 'provideUserConsent',\n args: arguments,\n promiseResolver: resolve,\n });\n return;\n }\n\n window.OneSignal.push(() => {\n window.OneSignal.provideUserConsent(consent)\n .then((value: Promise) => resolve(value))\n .catch((error: Error) => reject(error));\n });\n });\n }\n\n getEmailId(callback?: Action): Promise {\n return new Promise((resolve, reject) => {\n if (!this.doesOneSignalExist()) {\n this.ngOneSignalFunctionQueue.push({\n name: 'getEmailId',\n args: arguments,\n promiseResolver: resolve,\n });\n return;\n }\n\n window.OneSignal.push(() => {\n window.OneSignal.getEmailId(callback)\n .then((value: Promise) => resolve(value))\n .catch((error: Error) => reject(error));\n });\n });\n }\n\n getSMSId(callback?: Action): Promise {\n return new Promise((resolve, reject) => {\n if (!this.doesOneSignalExist()) {\n this.ngOneSignalFunctionQueue.push({\n name: 'getSMSId',\n args: arguments,\n promiseResolver: resolve,\n });\n return;\n }\n\n window.OneSignal.push(() => {\n window.OneSignal.getSMSId(callback)\n .then((value: Promise) => resolve(value))\n .catch((error: Error) => reject(error));\n });\n });\n }\n\n sendOutcome(outcomeName: string, outcomeWeight?: number | undefined): Promise {\n return new Promise((resolve, reject) => {\n if (!this.doesOneSignalExist()) {\n this.ngOneSignalFunctionQueue.push({\n name: 'sendOutcome',\n args: arguments,\n promiseResolver: resolve,\n });\n return;\n }\n\n window.OneSignal.push(() => {\n window.OneSignal.sendOutcome(outcomeName, outcomeWeight)\n .then((value: Promise) => resolve(value))\n .catch((error: Error) => reject(error));\n });\n });\n }\n}\n","import { Component, OnInit } from '@angular/core';\n\n@Component({\n selector: 'onesignal-onesignal-ngx',\n template: `\n

\n onesignal-ngx works!\n

\n `,\n styles: [\n ]\n})\nexport class OnesignalNgxComponent implements OnInit {\n\n constructor() { }\n\n ngOnInit(): void {\n }\n\n}\n","import { NgModule } from '@angular/core';\nimport { OnesignalNgxComponent } from './onesignal-ngx.component';\n\n\n\n@NgModule({\n declarations: [OnesignalNgxComponent],\n imports: [\n ],\n exports: [OnesignalNgxComponent]\n})\nexport class OnesignalNgxModule { }\n","/*\n * Public API Surface of onesignal-ngx\n */\n\nexport * from './lib/onesignal-ngx.service';\nexport * from './lib/onesignal-ngx.component';\nexport * from './lib/onesignal-ngx.module';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["Injectable","Component","NgModule"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"onesignal-ngx.umd.js","sources":["../../../projects/onesignal-ngx/src/lib/onesignal-ngx.service.ts","../../../projects/onesignal-ngx/src/lib/onesignal-ngx.component.ts","../../../projects/onesignal-ngx/src/lib/onesignal-ngx.module.ts","../../../projects/onesignal-ngx/src/public-api.ts","../../../projects/onesignal-ngx/src/onesignal-ngx.ts"],"sourcesContent":["interface AutoPromptOptions { force?: boolean; forceSlidedownOverNative?: boolean; slidedownPromptOptions?: IOneSignalAutoPromptOptions; }\ninterface IOneSignalAutoPromptOptions { force?: boolean; forceSlidedownOverNative?: boolean; isInUpdateMode?: boolean; categoryOptions?: IOneSignalCategories; }\ninterface IOneSignalCategories { positiveUpdateButton: string; negativeUpdateButton: string; savingButtonText: string; errorButtonText: string; updateMessage: string; tags: IOneSignalTagCategory[]; }\ninterface IOneSignalTagCategory { tag: string; label: string; checked?: boolean; }\ntype PushSubscriptionNamespaceProperties = { id: string | null | undefined; token: string | null | undefined; optedIn: boolean; };\ntype SubscriptionChangeEvent = { previous: PushSubscriptionNamespaceProperties; current: PushSubscriptionNamespaceProperties; };\ntype NotificationEventName = 'click' | 'foregroundWillDisplay' | 'dismiss' | 'permissionChange' | 'permissionPromptDisplay';\ntype SlidedownEventName = 'slidedownShown';\ntype OneSignalDeferredLoadedCallback = (onesignal: IOneSignalOneSignal) => void;\ninterface IOSNotification {\n /**\n * The OneSignal notification id;\n * - Primary id on OneSignal's REST API and dashboard\n */\n readonly notificationId: string;\n\n /**\n * Visible title text on the notification\n */\n readonly title?: string;\n\n /**\n * Visible body text on the notification\n */\n readonly body: string;\n\n /**\n * Visible icon the notification; URL format\n */\n readonly icon?: string;\n\n /**\n * Visible small badgeIcon that displays on some devices; URL format\n * Example: On Android's status bar\n */\n readonly badgeIcon?: string;\n\n /**\n * Visible image on the notification; URL format\n */\n readonly image?: string;\n\n /**\n * Visible buttons on the notification\n */\n readonly actionButtons?: IOSNotificationActionButton[];\n\n /**\n * If this value is the same as existing notification, it will replace it\n * Can be set when creating the notification with \"Web Push Topic\" on the dashboard\n * or web_push_topic from the REST API.\n */\n readonly topic?: string;\n\n /**\n * Custom object that was sent with the notification;\n * definable when creating the notification from the OneSignal REST API or dashboard\n */\n readonly additionalData?: object;\n\n /**\n * URL to open when clicking or tapping on the notification\n */\n readonly launchURL?: string;\n\n /**\n * Confirm the push was received by reporting back to OneSignal\n */\n readonly confirmDelivery: boolean;\n}\n\ninterface IOSNotificationActionButton {\n /**\n * Any unique identifier to represent which button was clicked. This is typically passed back to the service worker\n * and host page through events to identify which button was clicked.\n * e.g. 'like-button'\n */\n readonly actionId: string;\n /**\n * The notification action button's text.\n */\n readonly text: string;\n /**\n * A valid publicly reachable HTTPS URL to an image.\n */\n readonly icon?: string;\n /**\n * The URL to open the web browser to when this action button is clicked.\n */\n readonly launchURL?: string;\n}\n\ninterface NotificationClickResult {\n readonly actionId?: string;\n readonly url?: string;\n}\n\ntype NotificationEventTypeMap = {\n 'click': NotificationClickEvent;\n 'foregroundWillDisplay': NotificationForegroundWillDisplayEvent;\n 'dismiss': NotificationDismissEvent;\n 'permissionChange': boolean;\n 'permissionPromptDisplay': void;\n}\n\ninterface NotificationForegroundWillDisplayEvent {\n readonly notification: IOSNotification;\n preventDefault(): void;\n}\n\ninterface NotificationDismissEvent {\n notification: IOSNotification;\n}\n\ninterface NotificationClickEvent {\n readonly notification: IOSNotification;\n readonly result: NotificationClickResult;\n}\n\n\ninterface IInitObject {\n appId: string;\n subdomainName?: string;\n requiresUserPrivacyConsent?: boolean;\n promptOptions?: object;\n welcomeNotification?: object;\n notifyButton?: object;\n persistNotification?: boolean;\n webhooks?: object;\n autoResubscribe?: boolean;\n autoRegister?: boolean;\n notificationClickHandlerMatch?: string;\n notificationClickHandlerAction?: string;\n serviceWorkerParam?: { scope: string };\n serviceWorkerPath?: string;\n serviceWorkerUpdaterPath?: string;\n path?: string;\n allowLocalhostAsSecureOrigin?: boolean;\n [key: string]: any;\n}\n\ninterface IOneSignalOneSignal {\n\tSlidedown: IOneSignalSlidedown;\n\tNotifications: IOneSignalNotifications;\n\tSession: IOneSignalSession;\n\tUser: IOneSignalUser;\n\tDebug: IOneSignalDebug;\n\tlogin(externalId: string, jwtToken?: string): Promise;\n\tlogout(): Promise;\n\tinit(options: IInitObject): Promise;\n\tsetConsentGiven(consent: boolean): Promise;\n\tsetConsentRequired(requiresConsent: boolean): Promise;\n}\ninterface IOneSignalNotifications {\n\tpermissionNative: NotificationPermission;\n\tpermission: boolean;\n\tsetDefaultUrl(url: string): Promise;\n\tsetDefaultTitle(title: string): Promise;\n\tisPushSupported(): boolean;\n\trequestPermission(): Promise;\n\taddEventListener(event: K, listener: (obj: NotificationEventTypeMap[K]) => void): void;\n\tremoveEventListener(event: K, listener: (obj: NotificationEventTypeMap[K]) => void): void;\n}\ninterface IOneSignalSlidedown {\n\tpromptPush(options?: AutoPromptOptions): Promise;\n\tpromptPushCategories(options?: AutoPromptOptions): Promise;\n\tpromptSms(options?: AutoPromptOptions): Promise;\n\tpromptEmail(options?: AutoPromptOptions): Promise;\n\tpromptSmsAndEmail(options?: AutoPromptOptions): Promise;\n\taddEventListener(event: SlidedownEventName, listener: (wasShown: boolean) => void): void;\n\tremoveEventListener(event: SlidedownEventName, listener: (wasShown: boolean) => void): void;\n}\ninterface IOneSignalDebug {\n\tsetLogLevel(logLevel: string): void;\n}\ninterface IOneSignalSession {\n\tsendOutcome(outcomeName: string, outcomeWeight?: number): Promise;\n\tsendUniqueOutcome(outcomeName: string): Promise;\n}\ninterface IOneSignalUser {\n\tPushSubscription: IOneSignalPushSubscription;\n\taddAlias(label: string, id: string): void;\n\taddAliases(aliases: { [key: string]: string }): void;\n\tremoveAlias(label: string): void;\n\tremoveAliases(labels: string[]): void;\n\taddEmail(email: string): void;\n\tremoveEmail(email: string): void;\n\taddSms(smsNumber: string): void;\n\tremoveSms(smsNumber: string): void;\n\taddTag(key: string, value: string): void;\n\taddTags(tags: { [key: string]: string }): void;\n\tremoveTag(key: string): void;\n\tremoveTags(keys: string[]): void;\n}\ninterface IOneSignalPushSubscription {\n\tid: string | null | undefined;\n\ttoken: string | null | undefined;\n\toptedIn: boolean | undefined;\n\toptIn(): Promise;\n\toptOut(): Promise;\n\taddEventListener(event: 'change', listener: (change: SubscriptionChangeEvent) => void): void;\n\tremoveEventListener(event: 'change', listener: (change: SubscriptionChangeEvent) => void): void;\n}\n\nfunction oneSignalLogin(externalId: string, jwtToken?: string): Promise {\n return new Promise((resolve, reject) => {\n if (isOneSignalScriptFailed) {\n reject();\n }\n\n window.OneSignalDeferred?.push((oneSignal: IOneSignalOneSignal) => {\n oneSignal.login(externalId, jwtToken)\n .then((value: any) => resolve(value))\n .catch((error: Error) => reject(error));\n });\n });\n}\n\nfunction oneSignalLogout(): Promise {\n return new Promise((resolve, reject) => {\n if (isOneSignalScriptFailed) {\n reject();\n }\n\n window.OneSignalDeferred?.push((oneSignal: IOneSignalOneSignal) => {\n oneSignal.logout()\n .then((value: any) => resolve(value))\n .catch((error: Error) => reject(error));\n });\n });\n}\n\nfunction oneSignalSetConsentGiven(consent: boolean): Promise {\n return new Promise((resolve, reject) => {\n if (isOneSignalScriptFailed) {\n reject();\n }\n\n window.OneSignalDeferred?.push((oneSignal: IOneSignalOneSignal) => {\n oneSignal.setConsentGiven(consent)\n .then((value: any) => resolve(value))\n .catch((error: Error) => reject(error));\n });\n });\n}\n\nfunction oneSignalSetConsentRequired(requiresConsent: boolean): Promise {\n return new Promise((resolve, reject) => {\n if (isOneSignalScriptFailed) {\n reject();\n }\n\n window.OneSignalDeferred?.push((oneSignal: IOneSignalOneSignal) => {\n oneSignal.setConsentRequired(requiresConsent)\n .then((value: any) => resolve(value))\n .catch((error: Error) => reject(error));\n });\n });\n}\n\nfunction slidedownPromptPush(options?: AutoPromptOptions): Promise {\n return new Promise((resolve, reject) => {\n if (isOneSignalScriptFailed) {\n reject();\n }\n\n window.OneSignalDeferred?.push((oneSignal: IOneSignalOneSignal) => {\n oneSignal.Slidedown.promptPush(options)\n .then((value: any) => resolve(value))\n .catch((error: Error) => reject(error));\n });\n });\n}\n\nfunction slidedownPromptPushCategories(options?: AutoPromptOptions): Promise {\n return new Promise((resolve, reject) => {\n if (isOneSignalScriptFailed) {\n reject();\n }\n\n window.OneSignalDeferred?.push((oneSignal: IOneSignalOneSignal) => {\n oneSignal.Slidedown.promptPushCategories(options)\n .then((value: any) => resolve(value))\n .catch((error: Error) => reject(error));\n });\n });\n}\n\nfunction slidedownPromptSms(options?: AutoPromptOptions): Promise {\n return new Promise((resolve, reject) => {\n if (isOneSignalScriptFailed) {\n reject();\n }\n\n window.OneSignalDeferred?.push((oneSignal: IOneSignalOneSignal) => {\n oneSignal.Slidedown.promptSms(options)\n .then((value: any) => resolve(value))\n .catch((error: Error) => reject(error));\n });\n });\n}\n\nfunction slidedownPromptEmail(options?: AutoPromptOptions): Promise {\n return new Promise((resolve, reject) => {\n if (isOneSignalScriptFailed) {\n reject();\n }\n\n window.OneSignalDeferred?.push((oneSignal: IOneSignalOneSignal) => {\n oneSignal.Slidedown.promptEmail(options)\n .then((value: any) => resolve(value))\n .catch((error: Error) => reject(error));\n });\n });\n}\n\nfunction slidedownPromptSmsAndEmail(options?: AutoPromptOptions): Promise {\n return new Promise((resolve, reject) => {\n if (isOneSignalScriptFailed) {\n reject();\n }\n\n window.OneSignalDeferred?.push((oneSignal: IOneSignalOneSignal) => {\n oneSignal.Slidedown.promptSmsAndEmail(options)\n .then((value: any) => resolve(value))\n .catch((error: Error) => reject(error));\n });\n });\n}\n\nfunction slidedownAddEventListener(event: SlidedownEventName, listener: (wasShown: boolean) => void): void {\n window.OneSignalDeferred?.push((oneSignal: IOneSignalOneSignal) => {\n oneSignal.Slidedown.addEventListener(event, listener);\n });\n}\n\nfunction slidedownRemoveEventListener(event: SlidedownEventName, listener: (wasShown: boolean) => void): void {\n window.OneSignalDeferred?.push((oneSignal: IOneSignalOneSignal) => {\n oneSignal.Slidedown.removeEventListener(event, listener);\n });\n}\n\nfunction notificationsSetDefaultUrl(url: string): Promise {\n return new Promise((resolve, reject) => {\n if (isOneSignalScriptFailed) {\n reject();\n }\n\n window.OneSignalDeferred?.push((oneSignal: IOneSignalOneSignal) => {\n oneSignal.Notifications.setDefaultUrl(url)\n .then((value: any) => resolve(value))\n .catch((error: Error) => reject(error));\n });\n });\n}\n\nfunction notificationsSetDefaultTitle(title: string): Promise {\n return new Promise((resolve, reject) => {\n if (isOneSignalScriptFailed) {\n reject();\n }\n\n window.OneSignalDeferred?.push((oneSignal: IOneSignalOneSignal) => {\n oneSignal.Notifications.setDefaultTitle(title)\n .then((value: any) => resolve(value))\n .catch((error: Error) => reject(error));\n });\n });\n}\n\nfunction notificationsRequestPermission(): Promise {\n return new Promise((resolve, reject) => {\n if (isOneSignalScriptFailed) {\n reject();\n }\n\n window.OneSignalDeferred?.push((oneSignal: IOneSignalOneSignal) => {\n oneSignal.Notifications.requestPermission()\n .then((value: any) => resolve(value))\n .catch((error: Error) => reject(error));\n });\n });\n}\n\nfunction notificationsAddEventListener(event: K, listener: (obj: NotificationEventTypeMap[K]) => void): void {\n window.OneSignalDeferred?.push((oneSignal: IOneSignalOneSignal) => {\n oneSignal.Notifications.addEventListener(event, listener);\n });\n}\n\nfunction notificationsRemoveEventListener(event: K, listener: (obj: NotificationEventTypeMap[K]) => void): void {\n window.OneSignalDeferred?.push((oneSignal: IOneSignalOneSignal) => {\n oneSignal.Notifications.removeEventListener(event, listener);\n });\n}\n\nfunction sessionSendOutcome(outcomeName: string, outcomeWeight?: number): Promise {\n return new Promise((resolve, reject) => {\n if (isOneSignalScriptFailed) {\n reject();\n }\n\n window.OneSignalDeferred?.push((oneSignal: IOneSignalOneSignal) => {\n oneSignal.Session.sendOutcome(outcomeName, outcomeWeight)\n .then((value: any) => resolve(value))\n .catch((error: Error) => reject(error));\n });\n });\n}\n\nfunction sessionSendUniqueOutcome(outcomeName: string): Promise {\n return new Promise((resolve, reject) => {\n if (isOneSignalScriptFailed) {\n reject();\n }\n\n window.OneSignalDeferred?.push((oneSignal: IOneSignalOneSignal) => {\n oneSignal.Session.sendUniqueOutcome(outcomeName)\n .then((value: any) => resolve(value))\n .catch((error: Error) => reject(error));\n });\n });\n}\n\nfunction userAddAlias(label: string, id: string): void {\n window.OneSignalDeferred?.push((oneSignal: IOneSignalOneSignal) => {\n oneSignal.User.addAlias(label, id);\n });\n}\n\nfunction userAddAliases(aliases: { [key: string]: string }): void {\n window.OneSignalDeferred?.push((oneSignal: IOneSignalOneSignal) => {\n oneSignal.User.addAliases(aliases);\n });\n}\n\nfunction userRemoveAlias(label: string): void {\n window.OneSignalDeferred?.push((oneSignal: IOneSignalOneSignal) => {\n oneSignal.User.removeAlias(label);\n });\n}\n\nfunction userRemoveAliases(labels: string[]): void {\n window.OneSignalDeferred?.push((oneSignal: IOneSignalOneSignal) => {\n oneSignal.User.removeAliases(labels);\n });\n}\n\nfunction userAddEmail(email: string): void {\n window.OneSignalDeferred?.push((oneSignal: IOneSignalOneSignal) => {\n oneSignal.User.addEmail(email);\n });\n}\n\nfunction userRemoveEmail(email: string): void {\n window.OneSignalDeferred?.push((oneSignal: IOneSignalOneSignal) => {\n oneSignal.User.removeEmail(email);\n });\n}\n\nfunction userAddSms(smsNumber: string): void {\n window.OneSignalDeferred?.push((oneSignal: IOneSignalOneSignal) => {\n oneSignal.User.addSms(smsNumber);\n });\n}\n\nfunction userRemoveSms(smsNumber: string): void {\n window.OneSignalDeferred?.push((oneSignal: IOneSignalOneSignal) => {\n oneSignal.User.removeSms(smsNumber);\n });\n}\n\nfunction userAddTag(key: string, value: string): void {\n window.OneSignalDeferred?.push((oneSignal: IOneSignalOneSignal) => {\n oneSignal.User.addTag(key, value);\n });\n}\n\nfunction userAddTags(tags: { [key: string]: string }): void {\n window.OneSignalDeferred?.push((oneSignal: IOneSignalOneSignal) => {\n oneSignal.User.addTags(tags);\n });\n}\n\nfunction userRemoveTag(key: string): void {\n window.OneSignalDeferred?.push((oneSignal: IOneSignalOneSignal) => {\n oneSignal.User.removeTag(key);\n });\n}\n\nfunction userRemoveTags(keys: string[]): void {\n window.OneSignalDeferred?.push((oneSignal: IOneSignalOneSignal) => {\n oneSignal.User.removeTags(keys);\n });\n}\n\nfunction pushSubscriptionOptIn(): Promise {\n return new Promise((resolve, reject) => {\n if (isOneSignalScriptFailed) {\n reject();\n }\n\n window.OneSignalDeferred?.push((oneSignal: IOneSignalOneSignal) => {\n oneSignal.User.PushSubscription.optIn()\n .then((value: any) => resolve(value))\n .catch((error: Error) => reject(error));\n });\n });\n}\n\nfunction pushSubscriptionOptOut(): Promise {\n return new Promise((resolve, reject) => {\n if (isOneSignalScriptFailed) {\n reject();\n }\n\n window.OneSignalDeferred?.push((oneSignal: IOneSignalOneSignal) => {\n oneSignal.User.PushSubscription.optOut()\n .then((value: any) => resolve(value))\n .catch((error: Error) => reject(error));\n });\n });\n}\n\nfunction pushSubscriptionAddEventListener(event: 'change', listener: (change: SubscriptionChangeEvent) => void): void {\n window.OneSignalDeferred?.push((oneSignal: IOneSignalOneSignal) => {\n oneSignal.User.PushSubscription.addEventListener(event, listener);\n });\n}\n\nfunction pushSubscriptionRemoveEventListener(event: 'change', listener: (change: SubscriptionChangeEvent) => void): void {\n window.OneSignalDeferred?.push((oneSignal: IOneSignalOneSignal) => {\n oneSignal.User.PushSubscription.removeEventListener(event, listener);\n });\n}\n\nfunction debugSetLogLevel(logLevel: string): void {\n window.OneSignalDeferred?.push((oneSignal: IOneSignalOneSignal) => {\n oneSignal.Debug.setLogLevel(logLevel);\n });\n}\n\nconst PushSubscriptionNamespace: IOneSignalPushSubscription = {\n\tget id(): string | null | undefined { return window.OneSignal?.User?.PushSubscription?.id },\n\tget token(): string | null | undefined { return window.OneSignal?.User?.PushSubscription?.token },\n\tget optedIn(): boolean | undefined { return window.OneSignal?.User?.PushSubscription?.optedIn },\n\toptIn: pushSubscriptionOptIn,\n\toptOut: pushSubscriptionOptOut,\n\taddEventListener: pushSubscriptionAddEventListener,\n\tremoveEventListener: pushSubscriptionRemoveEventListener,\n};\n\nconst UserNamespace: IOneSignalUser = {\n\taddAlias: userAddAlias,\n\taddAliases: userAddAliases,\n\tremoveAlias: userRemoveAlias,\n\tremoveAliases: userRemoveAliases,\n\taddEmail: userAddEmail,\n\tremoveEmail: userRemoveEmail,\n\taddSms: userAddSms,\n\tremoveSms: userRemoveSms,\n\taddTag: userAddTag,\n\taddTags: userAddTags,\n\tremoveTag: userRemoveTag,\n\tremoveTags: userRemoveTags,\n\tPushSubscription: PushSubscriptionNamespace,\n};\n\nconst SessionNamespace: IOneSignalSession = {\n\tsendOutcome: sessionSendOutcome,\n\tsendUniqueOutcome: sessionSendUniqueOutcome,\n};\n\nconst DebugNamespace: IOneSignalDebug = {\n\tsetLogLevel: debugSetLogLevel,\n};\n\nconst SlidedownNamespace: IOneSignalSlidedown = {\n\tpromptPush: slidedownPromptPush,\n\tpromptPushCategories: slidedownPromptPushCategories,\n\tpromptSms: slidedownPromptSms,\n\tpromptEmail: slidedownPromptEmail,\n\tpromptSmsAndEmail: slidedownPromptSmsAndEmail,\n\taddEventListener: slidedownAddEventListener,\n\tremoveEventListener: slidedownRemoveEventListener,\n};\n\nconst NotificationsNamespace: IOneSignalNotifications = {\n\tget permissionNative(): NotificationPermission { return window.OneSignal?.Notifications?.permissionNative ?? 'default'; },\n\tget permission(): boolean { return window.OneSignal?.Notifications?.permission ?? false; },\n\tsetDefaultUrl: notificationsSetDefaultUrl,\n\tsetDefaultTitle: notificationsSetDefaultTitle,\n\tisPushSupported,\n\trequestPermission: notificationsRequestPermission,\n\taddEventListener: notificationsAddEventListener,\n\tremoveEventListener: notificationsRemoveEventListener,\n};\n\n/**\n * @PublicApi\n */\nfunction isPushSupported(): boolean {\n return isPushNotificationsSupported();\n}\n\nimport { Injectable } from '@angular/core';\nconst ONESIGNAL_SDK_ID = 'onesignal-sdk';\nconst ONE_SIGNAL_SCRIPT_SRC = 'https://cdn.onesignal.com/sdks/web/v16/OneSignalSDK.page.js';\n\n// true if the script is successfully loaded from CDN.\nlet isOneSignalInitialized = false;\n// true if the script fails to load from CDN. A separate flag is necessary\n// to disambiguate between a CDN load failure and a delayed call to\n// OneSignal#init.\nlet isOneSignalScriptFailed = false;\n\nif (window) {\n window.OneSignalDeferred = window.OneSignalDeferred || [];\n addSDKScript();\n}\n\n/**\n * The following code is copied directly from the native SDK source file BrowserSupportsPush.ts\n * S T A R T\n */\n\n// Checks if the browser supports push notifications by checking if specific\n// classes and properties on them exist\nfunction isPushNotificationsSupported(): boolean {\n return supportsVapidPush() || supportsSafariPush();\n}\n\nfunction isMacOSSafariInIframe(): boolean {\n // Fallback detection for Safari on macOS in an iframe context\n return window.top !== window && // isContextIframe\n navigator.vendor === 'Apple Computer, Inc.' && // isSafari\n navigator.platform === 'MacIntel'; // isMacOS\n}\n\nfunction supportsSafariPush(): boolean {\n return (window.safari && typeof window.safari.pushNotification !== 'undefined') ||\n isMacOSSafariInIframe();\n}\n\n// Does the browser support the standard Push API\nfunction supportsVapidPush(): boolean {\n return typeof PushSubscriptionOptions !== 'undefined' &&\n PushSubscriptionOptions.prototype.hasOwnProperty('applicationServerKey');\n}\n/* E N D */\n\nfunction handleOnError(): void {\n isOneSignalScriptFailed = true;\n}\n\nfunction addSDKScript(): void {\n const script = document.createElement('script');\n script.id = ONESIGNAL_SDK_ID;\n script.defer = true;\n script.src = ONE_SIGNAL_SCRIPT_SRC;\n\n // Always resolve whether or not the script is successfully initialized.\n // This is important for users who may block cdn.onesignal.com w/ adblock.\n script.onerror = () => {\n handleOnError();\n };\n\n document.head.appendChild(script);\n}\n\n\ndeclare global {\n interface Window {\n OneSignalDeferred?: OneSignalDeferredLoadedCallback[];\n OneSignal?: IOneSignalOneSignal;\n safari?: {\n pushNotification: any;\n };\n }\n}\n\ninterface IOneSignalOneSignal {\n [key: string]: any;\n}\n\n@Injectable({\n providedIn: 'root'\n})\nexport class OneSignal implements IOneSignalOneSignal {\n [key: string]: any;\n\n constructor() { }\n\n /* P U B L I C */\n\n /**\n * @PublicApi\n */\n init(options: IInitObject): Promise {\n if (isOneSignalInitialized) {\n return Promise.reject(`OneSignal is already initialized.`);\n }\n\n if (!options || !options.appId) {\n throw new Error('You need to provide your OneSignal appId.');\n }\n\n if (!document) {\n return Promise.reject(`Document is not defined.`);\n }\n\n return new Promise((resolve) => {\n window.OneSignalDeferred?.push((oneSignal: IOneSignalOneSignal) => {\n oneSignal.init(options).then(() => {\n isOneSignalInitialized = true;\n resolve();\n });\n });\n });\n }\n\n\tUser = UserNamespace;\n\tSession = SessionNamespace;\n\tDebug = DebugNamespace;\n\tSlidedown = SlidedownNamespace;\n\tNotifications = NotificationsNamespace;\n\tlogin = oneSignalLogin;\n\tlogout = oneSignalLogout;\n\tsetConsentGiven = oneSignalSetConsentGiven;\n\tsetConsentRequired = oneSignalSetConsentRequired;\n}\n","import { Component, OnInit } from '@angular/core';\n\n@Component({\n selector: 'onesignal-onesignal-ngx',\n template: `\n

\n onesignal-ngx works!\n

\n `,\n styles: [\n ]\n})\nexport class OnesignalNgxComponent implements OnInit {\n\n constructor() { }\n\n ngOnInit(): void {\n }\n\n}\n","import { NgModule } from '@angular/core';\nimport { OnesignalNgxComponent } from './onesignal-ngx.component';\n\n\n\n@NgModule({\n declarations: [OnesignalNgxComponent],\n imports: [\n ],\n exports: [OnesignalNgxComponent]\n})\nexport class OnesignalNgxModule { }\n","/*\n * Public API Surface of onesignal-ngx\n */\n\nexport * from './lib/onesignal-ngx.service';\nexport * from './lib/onesignal-ngx.component';\nexport * from './lib/onesignal-ngx.module';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["Injectable","Component","NgModule"],"mappings":"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"} \ No newline at end of file diff --git a/bundles/onesignal-ngx.umd.min.js b/bundles/onesignal-ngx.umd.min.js index 6d2ab7d..4cd0827 100644 --- a/bundles/onesignal-ngx.umd.min.js +++ b/bundles/onesignal-ngx.umd.min.js @@ -1,16 +1,2 @@ -!function(n,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports,require("@angular/core")):"function"==typeof define&&define.amd?define("onesignal-ngx",["exports","@angular/core"],e):e((n="undefined"!=typeof globalThis?globalThis:n||self)["onesignal-ngx"]={},n.ng.core)}(this,(function(n,e){"use strict";function i(n){if(n&&n.__esModule)return n;var e=Object.create(null);return n&&Object.keys(n).forEach((function(i){if("default"!==i){var t=Object.getOwnPropertyDescriptor(n,i);Object.defineProperty(e,i,t.get?t:{enumerable:!0,get:function(){return n[i]}})}})),e.default=n,Object.freeze(e)}var t=i(e); -/*! ***************************************************************************** - Copyright (c) Microsoft Corporation. - - Permission to use, copy, modify, and/or distribute this software for any - purpose with or without fee is hereby granted. - - THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH - REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY - AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, - INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM - LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR - OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR - PERFORMANCE OF THIS SOFTWARE. - ***************************************************************************** */Object.create;function o(n,e){var i="function"==typeof Symbol&&n[Symbol.iterator];if(!i)return n;var t,o,r=i.call(n),u=[];try{for(;(void 0===e||e-- >0)&&!(t=r.next()).done;)u.push(t.value)}catch(n){o={error:n}}finally{try{t&&!t.done&&(i=r.return)&&i.call(r)}finally{if(o)throw o.error}}return u}function r(){for(var n=[],e=0;e\n onesignal-ngx works!\n

\n "}]}],s.ctorParameters=function(){return[]};var a=function(){};a.decorators=[{type:e.NgModule,args:[{declarations:[s],imports:[],exports:[s]}]}],n.OneSignal=u,n.OnesignalNgxComponent=s,n.OnesignalNgxModule=a,Object.defineProperty(n,"__esModule",{value:!0})})); +!function(n,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports,require("@angular/core")):"function"==typeof define&&define.amd?define("onesignal-ngx",["exports","@angular/core"],e):e((n="undefined"!=typeof globalThis?globalThis:n||self)["onesignal-ngx"]={},n.ng.core)}(this,(function(n,e){"use strict";function i(n){if(n&&n.__esModule)return n;var e=Object.create(null);return n&&Object.keys(n).forEach((function(i){if("default"!==i){var o=Object.getOwnPropertyDescriptor(n,i);Object.defineProperty(e,i,o.get?o:{enumerable:!0,get:function(){return n[i]}})}})),e.default=n,Object.freeze(e)}var o=i(e);function t(n,e){return new Promise((function(i,o){var t;g&&o(),null===(t=window.OneSignalDeferred)||void 0===t||t.push((function(t){t.login(n,e).then((function(n){return i(n)})).catch((function(n){return o(n)}))}))}))}function r(){return new Promise((function(n,e){var i;g&&e(),null===(i=window.OneSignalDeferred)||void 0===i||i.push((function(i){i.logout().then((function(e){return n(e)})).catch((function(n){return e(n)}))}))}))}function u(n){return new Promise((function(e,i){var o;g&&i(),null===(o=window.OneSignalDeferred)||void 0===o||o.push((function(o){o.setConsentGiven(n).then((function(n){return e(n)})).catch((function(n){return i(n)}))}))}))}function d(n){return new Promise((function(e,i){var o;g&&i(),null===(o=window.OneSignalDeferred)||void 0===o||o.push((function(o){o.setConsentRequired(n).then((function(n){return e(n)})).catch((function(n){return i(n)}))}))}))}var s={addAlias:function(n,e){var i;null===(i=window.OneSignalDeferred)||void 0===i||i.push((function(i){i.User.addAlias(n,e)}))},addAliases:function(n){var e;null===(e=window.OneSignalDeferred)||void 0===e||e.push((function(e){e.User.addAliases(n)}))},removeAlias:function(n){var e;null===(e=window.OneSignalDeferred)||void 0===e||e.push((function(e){e.User.removeAlias(n)}))},removeAliases:function(n){var e;null===(e=window.OneSignalDeferred)||void 0===e||e.push((function(e){e.User.removeAliases(n)}))},addEmail:function(n){var e;null===(e=window.OneSignalDeferred)||void 0===e||e.push((function(e){e.User.addEmail(n)}))},removeEmail:function(n){var e;null===(e=window.OneSignalDeferred)||void 0===e||e.push((function(e){e.User.removeEmail(n)}))},addSms:function(n){var e;null===(e=window.OneSignalDeferred)||void 0===e||e.push((function(e){e.User.addSms(n)}))},removeSms:function(n){var e;null===(e=window.OneSignalDeferred)||void 0===e||e.push((function(e){e.User.removeSms(n)}))},addTag:function(n,e){var i;null===(i=window.OneSignalDeferred)||void 0===i||i.push((function(i){i.User.addTag(n,e)}))},addTags:function(n){var e;null===(e=window.OneSignalDeferred)||void 0===e||e.push((function(e){e.User.addTags(n)}))},removeTag:function(n){var e;null===(e=window.OneSignalDeferred)||void 0===e||e.push((function(e){e.User.removeTag(n)}))},removeTags:function(n){var e;null===(e=window.OneSignalDeferred)||void 0===e||e.push((function(e){e.User.removeTags(n)}))},PushSubscription:{get id(){var n,e,i;return null===(i=null===(e=null===(n=window.OneSignal)||void 0===n?void 0:n.User)||void 0===e?void 0:e.PushSubscription)||void 0===i?void 0:i.id},get token(){var n,e,i;return null===(i=null===(e=null===(n=window.OneSignal)||void 0===n?void 0:n.User)||void 0===e?void 0:e.PushSubscription)||void 0===i?void 0:i.token},get optedIn(){var n,e,i;return null===(i=null===(e=null===(n=window.OneSignal)||void 0===n?void 0:n.User)||void 0===e?void 0:e.PushSubscription)||void 0===i?void 0:i.optedIn},optIn:function(){return new Promise((function(n,e){var i;g&&e(),null===(i=window.OneSignalDeferred)||void 0===i||i.push((function(i){i.User.PushSubscription.optIn().then((function(e){return n(e)})).catch((function(n){return e(n)}))}))}))},optOut:function(){return new Promise((function(n,e){var i;g&&e(),null===(i=window.OneSignalDeferred)||void 0===i||i.push((function(i){i.User.PushSubscription.optOut().then((function(e){return n(e)})).catch((function(n){return e(n)}))}))}))},addEventListener:function(n,e){var i;null===(i=window.OneSignalDeferred)||void 0===i||i.push((function(i){i.User.PushSubscription.addEventListener(n,e)}))},removeEventListener:function(n,e){var i;null===(i=window.OneSignalDeferred)||void 0===i||i.push((function(i){i.User.PushSubscription.removeEventListener(n,e)}))}}},a={sendOutcome:function(n,e){return new Promise((function(i,o){var t;g&&o(),null===(t=window.OneSignalDeferred)||void 0===t||t.push((function(t){t.Session.sendOutcome(n,e).then((function(n){return i(n)})).catch((function(n){return o(n)}))}))}))},sendUniqueOutcome:function(n){return new Promise((function(e,i){var o;g&&i(),null===(o=window.OneSignalDeferred)||void 0===o||o.push((function(o){o.Session.sendUniqueOutcome(n).then((function(n){return e(n)})).catch((function(n){return i(n)}))}))}))}},c={setLogLevel:function(n){var e;null===(e=window.OneSignalDeferred)||void 0===e||e.push((function(e){e.Debug.setLogLevel(n)}))}},l={promptPush:function(n){return new Promise((function(e,i){var o;g&&i(),null===(o=window.OneSignalDeferred)||void 0===o||o.push((function(o){o.Slidedown.promptPush(n).then((function(n){return e(n)})).catch((function(n){return i(n)}))}))}))},promptPushCategories:function(n){return new Promise((function(e,i){var o;g&&i(),null===(o=window.OneSignalDeferred)||void 0===o||o.push((function(o){o.Slidedown.promptPushCategories(n).then((function(n){return e(n)})).catch((function(n){return i(n)}))}))}))},promptSms:function(n){return new Promise((function(e,i){var o;g&&i(),null===(o=window.OneSignalDeferred)||void 0===o||o.push((function(o){o.Slidedown.promptSms(n).then((function(n){return e(n)})).catch((function(n){return i(n)}))}))}))},promptEmail:function(n){return new Promise((function(e,i){var o;g&&i(),null===(o=window.OneSignalDeferred)||void 0===o||o.push((function(o){o.Slidedown.promptEmail(n).then((function(n){return e(n)})).catch((function(n){return i(n)}))}))}))},promptSmsAndEmail:function(n){return new Promise((function(e,i){var o;g&&i(),null===(o=window.OneSignalDeferred)||void 0===o||o.push((function(o){o.Slidedown.promptSmsAndEmail(n).then((function(n){return e(n)})).catch((function(n){return i(n)}))}))}))},addEventListener:function(n,e){var i;null===(i=window.OneSignalDeferred)||void 0===i||i.push((function(i){i.Slidedown.addEventListener(n,e)}))},removeEventListener:function(n,e){var i;null===(i=window.OneSignalDeferred)||void 0===i||i.push((function(i){i.Slidedown.removeEventListener(n,e)}))}},f={get permissionNative(){var n,e,i;return null!==(i=null===(e=null===(n=window.OneSignal)||void 0===n?void 0:n.Notifications)||void 0===e?void 0:e.permissionNative)&&void 0!==i?i:"default"},get permission(){var n,e,i;return null!==(i=null===(e=null===(n=window.OneSignal)||void 0===n?void 0:n.Notifications)||void 0===e?void 0:e.permission)&&void 0!==i&&i},setDefaultUrl:function(n){return new Promise((function(e,i){var o;g&&i(),null===(o=window.OneSignalDeferred)||void 0===o||o.push((function(o){o.Notifications.setDefaultUrl(n).then((function(n){return e(n)})).catch((function(n){return i(n)}))}))}))},setDefaultTitle:function(n){return new Promise((function(e,i){var o;g&&i(),null===(o=window.OneSignalDeferred)||void 0===o||o.push((function(o){o.Notifications.setDefaultTitle(n).then((function(n){return e(n)})).catch((function(n){return i(n)}))}))}))},isPushSupported:function(){return"undefined"!=typeof PushSubscriptionOptions&&PushSubscriptionOptions.prototype.hasOwnProperty("applicationServerKey")||window.safari&&void 0!==window.safari.pushNotification||window.top!==window&&"Apple Computer, Inc."===navigator.vendor&&"MacIntel"===navigator.platform},requestPermission:function(){return new Promise((function(n,e){var i;g&&e(),null===(i=window.OneSignalDeferred)||void 0===i||i.push((function(i){i.Notifications.requestPermission().then((function(e){return n(e)})).catch((function(n){return e(n)}))}))}))},addEventListener:function(n,e){var i;null===(i=window.OneSignalDeferred)||void 0===i||i.push((function(i){i.Notifications.addEventListener(n,e)}))},removeEventListener:function(n,e){var i;null===(i=window.OneSignalDeferred)||void 0===i||i.push((function(i){i.Notifications.removeEventListener(n,e)}))}};var v,p="onesignal-sdk",w="https://cdn.onesignal.com/sdks/web/v16/OneSignalSDK.page.js",h=!1,g=!1;window&&(window.OneSignalDeferred=window.OneSignalDeferred||[],(v=document.createElement("script")).id=p,v.defer=!0,v.src=w,v.onerror=function(){g=!0},document.head.appendChild(v));var m=function(){function n(){this.User=s,this.Session=a,this.Debug=c,this.Slidedown=l,this.Notifications=f,this.login=t,this.logout=r,this.setConsentGiven=u,this.setConsentRequired=d}return n.prototype.init=function(n){if(h)return Promise.reject("OneSignal is already initialized.");if(!n||!n.appId)throw new Error("You need to provide your OneSignal appId.");return document?new Promise((function(e){var i;null===(i=window.OneSignalDeferred)||void 0===i||i.push((function(i){i.init(n).then((function(){h=!0,e()}))}))})):Promise.reject("Document is not defined.")},n}();m.ɵprov=o.ɵɵdefineInjectable({factory:function(){return new m},token:m,providedIn:"root"}),m.decorators=[{type:e.Injectable,args:[{providedIn:"root"}]}],m.ctorParameters=function(){return[]};var S=function(){function n(){}return n.prototype.ngOnInit=function(){},n}();S.decorators=[{type:e.Component,args:[{selector:"onesignal-onesignal-ngx",template:"\n

\n onesignal-ngx works!\n

\n "}]}],S.ctorParameters=function(){return[]};var O=function(){};O.decorators=[{type:e.NgModule,args:[{declarations:[S],imports:[],exports:[S]}]}],n.OneSignal=m,n.OnesignalNgxComponent=S,n.OnesignalNgxModule=O,Object.defineProperty(n,"__esModule",{value:!0})})); //# sourceMappingURL=onesignal-ngx.umd.min.js.map \ No newline at end of file diff --git a/bundles/onesignal-ngx.umd.min.js.map b/bundles/onesignal-ngx.umd.min.js.map index 5dff66c..99fdc3a 100644 --- a/bundles/onesignal-ngx.umd.min.js.map +++ b/bundles/onesignal-ngx.umd.min.js.map @@ -1 +1 @@ -{"version":3,"sources":["../../../node_modules/tslib/tslib.es6.js","../../../projects/onesignal-ngx/src/lib/onesignal-ngx.service.ts","../../../projects/onesignal-ngx/src/lib/onesignal-ngx.component.ts","../../../projects/onesignal-ngx/src/lib/onesignal-ngx.module.ts"],"names":["Object","create","__read","o","n","m","Symbol","iterator","r","e","i","call","ar","next","done","push","value","error","__spread","arguments","length","concat","OneSignal","_this","this","isOneSignalInitialized","ngOneSignalFunctionQueue","injectScript","script","document","createElement","id","src","async","head","appendChild","doesOneSignalExist","window","processQueuedOneSignalFunctions","forEach","element","name","args","promiseResolver","apply","then","result","_a","setupOneSignalIfMissing","prototype","init","options","Promise","resolve","timeout","setTimeout","console","MAX_TIMEOUT","clearTimeout","on","event","listener","off","once","isPushNotificationsEnabled","callback","reject","catch","showHttpPrompt","registerForPushNotifications","setDefaultNotificationUrl","url","setDefaultTitle","title","getTags","sendTag","key","sendTags","tags","deleteTag","tag","deleteTags","addListenerForNotificationOpened","setSubscription","newSubscription","showHttpPermissionRequest","showNativePrompt","showSlidedownPrompt","showCategorySlidedown","showSmsSlidedown","showEmailSlidedown","showSmsAndEmailSlidedown","getNotificationPermission","onComplete","getUserId","getSubscription","setEmail","email","setSMSNumber","smsNumber","logoutEmail","logoutSMS","setExternalUserId","externalUserId","authHash","removeExternalUserId","getExternalUserId","provideUserConsent","consent","getEmailId","getSMSId","sendOutcome","outcomeName","outcomeWeight","Injectable","providedIn","OnesignalNgxComponent","ngOnInit","Component","selector","template","NgModule","declarations","imports","exports"],"mappings":"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","sourcesContent":["/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n","type Action = (item: T) => void;\ninterface AutoPromptOptions { force?: boolean; forceSlidedownOverNative?: boolean; slidedownPromptOptions?: IOneSignalAutoPromptOptions; }\ninterface RegisterOptions { modalPrompt?: boolean; httpPermissionRequest?: boolean; slidedown?: boolean; autoAccept?: boolean }\ninterface SetSMSOptions { identifierAuthHash?: string; }\ninterface SetEmailOptions { identifierAuthHash?: string; emailAuthHash?: string; }\ninterface TagsObject { [key: string]: T; }\ninterface IOneSignalAutoPromptOptions { force?: boolean; forceSlidedownOverNative?: boolean; isInUpdateMode?: boolean; categoryOptions?: IOneSignalCategories; }\ninterface IOneSignalCategories { positiveUpdateButton: string; negativeUpdateButton: string; savingButtonText: string; errorButtonText: string; updateMessage: string; tags: IOneSignalTagCategory[]; }\ninterface IOneSignalTagCategory { tag: string; label: string; checked?: boolean; }\n\ninterface IInitObject {\n appId: string;\n subdomainName?: string;\n requiresUserPrivacyConsent?: boolean;\n promptOptions?: object;\n welcomeNotification?: object;\n notifyButton?: object;\n persistNotification?: boolean;\n webhooks?: object;\n autoResubscribe?: boolean;\n autoRegister?: boolean;\n notificationClickHandlerMatch?: string;\n notificationClickHandlerAction?: string;\n serviceWorkerParam?: { scope: string };\n serviceWorkerPath?: string;\n serviceWorkerUpdaterPath?: string;\n path?: string;\n allowLocalhostAsSecureOrigin?: boolean;\n [key: string]: any;\n}\n\nimport { Injectable } from '@angular/core';\nconst ONESIGNAL_SDK_ID = 'onesignal-sdk';\nconst ONE_SIGNAL_SCRIPT_SRC = 'https://cdn.onesignal.com/sdks/OneSignalSDK.js';\nconst ONESIGNAL_NOT_SETUP_ERROR = 'OneSignal is not setup correctly.';\nconst MAX_TIMEOUT = 30;\n\ndeclare global {\n interface Window {\n OneSignal: any;\n }\n}\n\ninterface IOneSignalFunctionCall {\n name: string;\n args: IArguments;\n promiseResolver?: Function;\n}\n\ninterface IOneSignal {\n [key: string]: any;\n}\n\n@Injectable({\n providedIn: 'root'\n})\nexport class OneSignal implements IOneSignal {\n private isOneSignalInitialized = false;\n private ngOneSignalFunctionQueue: IOneSignalFunctionCall[] = [];\n\n constructor() { }\n\n /* H E L P E R S */\n\n private injectScript = () => {\n const script = document.createElement('script');\n script.id = ONESIGNAL_SDK_ID;\n script.src = ONE_SIGNAL_SCRIPT_SRC;\n script.async = true;\n document.head.appendChild(script);\n }\n\n private doesOneSignalExist = () => {\n if (window.OneSignal) {\n return true;\n }\n return false;\n }\n\n private processQueuedOneSignalFunctions = () => {\n this.ngOneSignalFunctionQueue.forEach(element => {\n const { name, args, promiseResolver } = element;\n\n if (!!promiseResolver) {\n (this as IOneSignal)[name](...args).then((result: any) => {\n promiseResolver(result);\n });\n } else {\n window.OneSignal[name](...args);\n }\n });\n }\n\n private setupOneSignalIfMissing = () => {\n if (!this.doesOneSignalExist()) {\n window.OneSignal = window.OneSignal || [];\n }\n }\n\n /* P U B L I C */\n\n init(options: IInitObject): Promise {\n return new Promise(resolve => {\n if (this.isOneSignalInitialized) {\n return;\n }\n\n this.injectScript();\n this.setupOneSignalIfMissing();\n window.OneSignal.push(() => {\n window.OneSignal.init(options);\n });\n\n const timeout = setTimeout(() => {\n console.error(ONESIGNAL_NOT_SETUP_ERROR);\n }, MAX_TIMEOUT * 1_000);\n\n window.OneSignal.push(() => {\n clearTimeout(timeout);\n this.isOneSignalInitialized = true;\n this.processQueuedOneSignalFunctions();\n resolve();\n });\n });\n }\n\n\n on(event: string, listener: (eventData?: any) => void): void {\n if (!this.doesOneSignalExist()) {\n this.ngOneSignalFunctionQueue.push({\n name: 'on',\n args: arguments,\n });\n return;\n }\n\n window.OneSignal.push(() => {\n window.OneSignal.on(event, listener);\n });\n }\n\n off(event: string, listener: (eventData?: any) => void): void {\n if (!this.doesOneSignalExist()) {\n this.ngOneSignalFunctionQueue.push({\n name: 'off',\n args: arguments,\n });\n return;\n }\n\n window.OneSignal.push(() => {\n window.OneSignal.off(event, listener);\n });\n }\n\n once(event: string, listener: (eventData?: any) => void): void {\n if (!this.doesOneSignalExist()) {\n this.ngOneSignalFunctionQueue.push({\n name: 'once',\n args: arguments,\n });\n return;\n }\n\n window.OneSignal.push(() => {\n window.OneSignal.once(event, listener);\n });\n }\n\n isPushNotificationsEnabled(callback?: Action): Promise {\n return new Promise((resolve, reject) => {\n if (!this.doesOneSignalExist()) {\n this.ngOneSignalFunctionQueue.push({\n name: 'isPushNotificationsEnabled',\n args: arguments,\n promiseResolver: resolve,\n });\n return;\n }\n\n window.OneSignal.push(() => {\n window.OneSignal.isPushNotificationsEnabled(callback)\n .then((value: Promise) => resolve(value))\n .catch((error: Error) => reject(error));\n });\n });\n }\n\n showHttpPrompt(options?: AutoPromptOptions): Promise {\n return new Promise((resolve, reject) => {\n if (!this.doesOneSignalExist()) {\n this.ngOneSignalFunctionQueue.push({\n name: 'showHttpPrompt',\n args: arguments,\n promiseResolver: resolve,\n });\n return;\n }\n\n window.OneSignal.push(() => {\n window.OneSignal.showHttpPrompt(options)\n .then((value: Promise) => resolve(value))\n .catch((error: Error) => reject(error));\n });\n });\n }\n\n registerForPushNotifications(options?: RegisterOptions): Promise {\n return new Promise((resolve, reject) => {\n if (!this.doesOneSignalExist()) {\n this.ngOneSignalFunctionQueue.push({\n name: 'registerForPushNotifications',\n args: arguments,\n promiseResolver: resolve,\n });\n return;\n }\n\n window.OneSignal.push(() => {\n window.OneSignal.registerForPushNotifications(options)\n .then((value: Promise) => resolve(value))\n .catch((error: Error) => reject(error));\n });\n });\n }\n\n setDefaultNotificationUrl(url: string): Promise {\n return new Promise((resolve, reject) => {\n if (!this.doesOneSignalExist()) {\n this.ngOneSignalFunctionQueue.push({\n name: 'setDefaultNotificationUrl',\n args: arguments,\n promiseResolver: resolve,\n });\n return;\n }\n\n window.OneSignal.push(() => {\n window.OneSignal.setDefaultNotificationUrl(url)\n .then((value: Promise) => resolve(value))\n .catch((error: Error) => reject(error));\n });\n });\n }\n\n setDefaultTitle(title: string): Promise {\n return new Promise((resolve, reject) => {\n if (!this.doesOneSignalExist()) {\n this.ngOneSignalFunctionQueue.push({\n name: 'setDefaultTitle',\n args: arguments,\n promiseResolver: resolve,\n });\n return;\n }\n\n window.OneSignal.push(() => {\n window.OneSignal.setDefaultTitle(title)\n .then((value: Promise) => resolve(value))\n .catch((error: Error) => reject(error));\n });\n });\n }\n\n getTags(callback?: Action): Promise {\n return new Promise((resolve, reject) => {\n if (!this.doesOneSignalExist()) {\n this.ngOneSignalFunctionQueue.push({\n name: 'getTags',\n args: arguments,\n promiseResolver: resolve,\n });\n return;\n }\n\n window.OneSignal.push(() => {\n window.OneSignal.getTags(callback)\n .then((value: Promise) => resolve(value))\n .catch((error: Error) => reject(error));\n });\n });\n }\n\n sendTag(key: string, value: any, callback?: Action): Promise {\n return new Promise((resolve, reject) => {\n if (!this.doesOneSignalExist()) {\n this.ngOneSignalFunctionQueue.push({\n name: 'sendTag',\n args: arguments,\n promiseResolver: resolve,\n });\n return;\n }\n\n window.OneSignal.push(() => {\n window.OneSignal.sendTag(key, value, callback)\n .then((value: Promise) => resolve(value))\n .catch((error: Error) => reject(error));\n });\n });\n }\n\n sendTags(tags: TagsObject, callback?: Action): Promise {\n return new Promise((resolve, reject) => {\n if (!this.doesOneSignalExist()) {\n this.ngOneSignalFunctionQueue.push({\n name: 'sendTags',\n args: arguments,\n promiseResolver: resolve,\n });\n return;\n }\n\n window.OneSignal.push(() => {\n window.OneSignal.sendTags(tags, callback)\n .then((value: Promise) => resolve(value))\n .catch((error: Error) => reject(error));\n });\n });\n }\n\n deleteTag(tag: string): Promise> {\n return new Promise((resolve, reject) => {\n if (!this.doesOneSignalExist()) {\n this.ngOneSignalFunctionQueue.push({\n name: 'deleteTag',\n args: arguments,\n promiseResolver: resolve,\n });\n return;\n }\n\n window.OneSignal.push(() => {\n window.OneSignal.deleteTag(tag)\n .then((value: Promise>) => resolve(value))\n .catch((error: Error) => reject(error));\n });\n });\n }\n\n deleteTags(tags: Array, callback?: Action>): Promise> {\n return new Promise((resolve, reject) => {\n if (!this.doesOneSignalExist()) {\n this.ngOneSignalFunctionQueue.push({\n name: 'deleteTags',\n args: arguments,\n promiseResolver: resolve,\n });\n return;\n }\n\n window.OneSignal.push(() => {\n window.OneSignal.deleteTags(tags, callback)\n .then((value: Promise>) => resolve(value))\n .catch((error: Error) => reject(error));\n });\n });\n }\n\n addListenerForNotificationOpened(callback?: Action): Promise {\n return new Promise((resolve, reject) => {\n if (!this.doesOneSignalExist()) {\n this.ngOneSignalFunctionQueue.push({\n name: 'addListenerForNotificationOpened',\n args: arguments,\n promiseResolver: resolve,\n });\n return;\n }\n\n window.OneSignal.push(() => {\n window.OneSignal.addListenerForNotificationOpened(callback)\n .then((value: Promise) => resolve(value))\n .catch((error: Error) => reject(error));\n });\n });\n }\n\n setSubscription(newSubscription: boolean): Promise {\n return new Promise((resolve, reject) => {\n if (!this.doesOneSignalExist()) {\n this.ngOneSignalFunctionQueue.push({\n name: 'setSubscription',\n args: arguments,\n promiseResolver: resolve,\n });\n return;\n }\n\n window.OneSignal.push(() => {\n window.OneSignal.setSubscription(newSubscription)\n .then((value: Promise) => resolve(value))\n .catch((error: Error) => reject(error));\n });\n });\n }\n\n showHttpPermissionRequest(options?: AutoPromptOptions): Promise {\n return new Promise((resolve, reject) => {\n if (!this.doesOneSignalExist()) {\n this.ngOneSignalFunctionQueue.push({\n name: 'showHttpPermissionRequest',\n args: arguments,\n promiseResolver: resolve,\n });\n return;\n }\n\n window.OneSignal.push(() => {\n window.OneSignal.showHttpPermissionRequest(options)\n .then((value: Promise) => resolve(value))\n .catch((error: Error) => reject(error));\n });\n });\n }\n\n showNativePrompt(): Promise {\n return new Promise((resolve, reject) => {\n if (!this.doesOneSignalExist()) {\n this.ngOneSignalFunctionQueue.push({\n name: 'showNativePrompt',\n args: arguments,\n promiseResolver: resolve,\n });\n return;\n }\n\n window.OneSignal.push(() => {\n window.OneSignal.showNativePrompt()\n .then((value: Promise) => resolve(value))\n .catch((error: Error) => reject(error));\n });\n });\n }\n\n showSlidedownPrompt(options?: AutoPromptOptions): Promise {\n return new Promise((resolve, reject) => {\n if (!this.doesOneSignalExist()) {\n this.ngOneSignalFunctionQueue.push({\n name: 'showSlidedownPrompt',\n args: arguments,\n promiseResolver: resolve,\n });\n return;\n }\n\n window.OneSignal.push(() => {\n window.OneSignal.showSlidedownPrompt(options)\n .then((value: Promise) => resolve(value))\n .catch((error: Error) => reject(error));\n });\n });\n }\n\n showCategorySlidedown(options?: AutoPromptOptions): Promise {\n return new Promise((resolve, reject) => {\n if (!this.doesOneSignalExist()) {\n this.ngOneSignalFunctionQueue.push({\n name: 'showCategorySlidedown',\n args: arguments,\n promiseResolver: resolve,\n });\n return;\n }\n\n window.OneSignal.push(() => {\n window.OneSignal.showCategorySlidedown(options)\n .then((value: Promise) => resolve(value))\n .catch((error: Error) => reject(error));\n });\n });\n }\n\n showSmsSlidedown(options?: AutoPromptOptions): Promise {\n return new Promise((resolve, reject) => {\n if (!this.doesOneSignalExist()) {\n this.ngOneSignalFunctionQueue.push({\n name: 'showSmsSlidedown',\n args: arguments,\n promiseResolver: resolve,\n });\n return;\n }\n\n window.OneSignal.push(() => {\n window.OneSignal.showSmsSlidedown(options)\n .then((value: Promise) => resolve(value))\n .catch((error: Error) => reject(error));\n });\n });\n }\n\n showEmailSlidedown(options?: AutoPromptOptions): Promise {\n return new Promise((resolve, reject) => {\n if (!this.doesOneSignalExist()) {\n this.ngOneSignalFunctionQueue.push({\n name: 'showEmailSlidedown',\n args: arguments,\n promiseResolver: resolve,\n });\n return;\n }\n\n window.OneSignal.push(() => {\n window.OneSignal.showEmailSlidedown(options)\n .then((value: Promise) => resolve(value))\n .catch((error: Error) => reject(error));\n });\n });\n }\n\n showSmsAndEmailSlidedown(options?: AutoPromptOptions): Promise {\n return new Promise((resolve, reject) => {\n if (!this.doesOneSignalExist()) {\n this.ngOneSignalFunctionQueue.push({\n name: 'showSmsAndEmailSlidedown',\n args: arguments,\n promiseResolver: resolve,\n });\n return;\n }\n\n window.OneSignal.push(() => {\n window.OneSignal.showSmsAndEmailSlidedown(options)\n .then((value: Promise) => resolve(value))\n .catch((error: Error) => reject(error));\n });\n });\n }\n\n getNotificationPermission(onComplete?: Action): Promise {\n return new Promise((resolve, reject) => {\n if (!this.doesOneSignalExist()) {\n this.ngOneSignalFunctionQueue.push({\n name: 'getNotificationPermission',\n args: arguments,\n promiseResolver: resolve,\n });\n return;\n }\n\n window.OneSignal.push(() => {\n window.OneSignal.getNotificationPermission(onComplete)\n .then((value: Promise) => resolve(value))\n .catch((error: Error) => reject(error));\n });\n });\n }\n\n getUserId(callback?: Action): Promise {\n return new Promise((resolve, reject) => {\n if (!this.doesOneSignalExist()) {\n this.ngOneSignalFunctionQueue.push({\n name: 'getUserId',\n args: arguments,\n promiseResolver: resolve,\n });\n return;\n }\n\n window.OneSignal.push(() => {\n window.OneSignal.getUserId(callback)\n .then((value: Promise) => resolve(value))\n .catch((error: Error) => reject(error));\n });\n });\n }\n\n getSubscription(callback?: Action): Promise {\n return new Promise((resolve, reject) => {\n if (!this.doesOneSignalExist()) {\n this.ngOneSignalFunctionQueue.push({\n name: 'getSubscription',\n args: arguments,\n promiseResolver: resolve,\n });\n return;\n }\n\n window.OneSignal.push(() => {\n window.OneSignal.getSubscription(callback)\n .then((value: Promise) => resolve(value))\n .catch((error: Error) => reject(error));\n });\n });\n }\n\n setEmail(email: string, options?: SetEmailOptions): Promise {\n return new Promise((resolve, reject) => {\n if (!this.doesOneSignalExist()) {\n this.ngOneSignalFunctionQueue.push({\n name: 'setEmail',\n args: arguments,\n promiseResolver: resolve,\n });\n return;\n }\n\n window.OneSignal.push(() => {\n window.OneSignal.setEmail(email, options)\n .then((value: Promise) => resolve(value))\n .catch((error: Error) => reject(error));\n });\n });\n }\n\n setSMSNumber(smsNumber: string, options?: SetSMSOptions): Promise {\n return new Promise((resolve, reject) => {\n if (!this.doesOneSignalExist()) {\n this.ngOneSignalFunctionQueue.push({\n name: 'setSMSNumber',\n args: arguments,\n promiseResolver: resolve,\n });\n return;\n }\n\n window.OneSignal.push(() => {\n window.OneSignal.setSMSNumber(smsNumber, options)\n .then((value: Promise) => resolve(value))\n .catch((error: Error) => reject(error));\n });\n });\n }\n\n logoutEmail(): Promise {\n return new Promise((resolve, reject) => {\n if (!this.doesOneSignalExist()) {\n this.ngOneSignalFunctionQueue.push({\n name: 'logoutEmail',\n args: arguments,\n promiseResolver: resolve,\n });\n return;\n }\n\n window.OneSignal.push(() => {\n window.OneSignal.logoutEmail()\n .then((value: Promise) => resolve(value))\n .catch((error: Error) => reject(error));\n });\n });\n }\n\n logoutSMS(): Promise {\n return new Promise((resolve, reject) => {\n if (!this.doesOneSignalExist()) {\n this.ngOneSignalFunctionQueue.push({\n name: 'logoutSMS',\n args: arguments,\n promiseResolver: resolve,\n });\n return;\n }\n\n window.OneSignal.push(() => {\n window.OneSignal.logoutSMS()\n .then((value: Promise) => resolve(value))\n .catch((error: Error) => reject(error));\n });\n });\n }\n\n setExternalUserId(externalUserId: string | undefined | null, authHash?: string): Promise {\n return new Promise((resolve, reject) => {\n if (!this.doesOneSignalExist()) {\n this.ngOneSignalFunctionQueue.push({\n name: 'setExternalUserId',\n args: arguments,\n promiseResolver: resolve,\n });\n return;\n }\n\n window.OneSignal.push(() => {\n window.OneSignal.setExternalUserId(externalUserId, authHash)\n .then((value: Promise) => resolve(value))\n .catch((error: Error) => reject(error));\n });\n });\n }\n\n removeExternalUserId(): Promise {\n return new Promise((resolve, reject) => {\n if (!this.doesOneSignalExist()) {\n this.ngOneSignalFunctionQueue.push({\n name: 'removeExternalUserId',\n args: arguments,\n promiseResolver: resolve,\n });\n return;\n }\n\n window.OneSignal.push(() => {\n window.OneSignal.removeExternalUserId()\n .then((value: Promise) => resolve(value))\n .catch((error: Error) => reject(error));\n });\n });\n }\n\n getExternalUserId(): Promise {\n return new Promise((resolve, reject) => {\n if (!this.doesOneSignalExist()) {\n this.ngOneSignalFunctionQueue.push({\n name: 'getExternalUserId',\n args: arguments,\n promiseResolver: resolve,\n });\n return;\n }\n\n window.OneSignal.push(() => {\n window.OneSignal.getExternalUserId()\n .then((value: Promise) => resolve(value))\n .catch((error: Error) => reject(error));\n });\n });\n }\n\n provideUserConsent(consent: boolean): Promise {\n return new Promise((resolve, reject) => {\n if (!this.doesOneSignalExist()) {\n this.ngOneSignalFunctionQueue.push({\n name: 'provideUserConsent',\n args: arguments,\n promiseResolver: resolve,\n });\n return;\n }\n\n window.OneSignal.push(() => {\n window.OneSignal.provideUserConsent(consent)\n .then((value: Promise) => resolve(value))\n .catch((error: Error) => reject(error));\n });\n });\n }\n\n getEmailId(callback?: Action): Promise {\n return new Promise((resolve, reject) => {\n if (!this.doesOneSignalExist()) {\n this.ngOneSignalFunctionQueue.push({\n name: 'getEmailId',\n args: arguments,\n promiseResolver: resolve,\n });\n return;\n }\n\n window.OneSignal.push(() => {\n window.OneSignal.getEmailId(callback)\n .then((value: Promise) => resolve(value))\n .catch((error: Error) => reject(error));\n });\n });\n }\n\n getSMSId(callback?: Action): Promise {\n return new Promise((resolve, reject) => {\n if (!this.doesOneSignalExist()) {\n this.ngOneSignalFunctionQueue.push({\n name: 'getSMSId',\n args: arguments,\n promiseResolver: resolve,\n });\n return;\n }\n\n window.OneSignal.push(() => {\n window.OneSignal.getSMSId(callback)\n .then((value: Promise) => resolve(value))\n .catch((error: Error) => reject(error));\n });\n });\n }\n\n sendOutcome(outcomeName: string, outcomeWeight?: number | undefined): Promise {\n return new Promise((resolve, reject) => {\n if (!this.doesOneSignalExist()) {\n this.ngOneSignalFunctionQueue.push({\n name: 'sendOutcome',\n args: arguments,\n promiseResolver: resolve,\n });\n return;\n }\n\n window.OneSignal.push(() => {\n window.OneSignal.sendOutcome(outcomeName, outcomeWeight)\n .then((value: Promise) => resolve(value))\n .catch((error: Error) => reject(error));\n });\n });\n }\n}\n","import { Component, OnInit } from '@angular/core';\n\n@Component({\n selector: 'onesignal-onesignal-ngx',\n template: `\n

\n onesignal-ngx works!\n

\n `,\n styles: [\n ]\n})\nexport class OnesignalNgxComponent implements OnInit {\n\n constructor() { }\n\n ngOnInit(): void {\n }\n\n}\n","import { NgModule } from '@angular/core';\nimport { OnesignalNgxComponent } from './onesignal-ngx.component';\n\n\n\n@NgModule({\n declarations: [OnesignalNgxComponent],\n imports: [\n ],\n exports: [OnesignalNgxComponent]\n})\nexport class OnesignalNgxModule { }\n"]} \ No newline at end of file +{"version":3,"sources":["../../../projects/onesignal-ngx/src/lib/onesignal-ngx.service.ts","../../../projects/onesignal-ngx/src/lib/onesignal-ngx.component.ts","../../../projects/onesignal-ngx/src/lib/onesignal-ngx.module.ts"],"names":["oneSignalLogin","externalId","jwtToken","Promise","resolve","reject","isOneSignalScriptFailed","_a","window","OneSignalDeferred","push","oneSignal","login","then","value","catch","error","oneSignalLogout","logout","oneSignalSetConsentGiven","consent","setConsentGiven","oneSignalSetConsentRequired","requiresConsent","setConsentRequired","UserNamespace","addAlias","label","id","User","addAliases","aliases","removeAlias","removeAliases","labels","addEmail","email","removeEmail","addSms","smsNumber","removeSms","addTag","key","addTags","tags","removeTag","removeTags","keys","PushSubscription","_b","_c","OneSignal","token","optedIn","optIn","optOut","addEventListener","event","listener","removeEventListener","SessionNamespace","sendOutcome","outcomeName","outcomeWeight","Session","sendUniqueOutcome","DebugNamespace","setLogLevel","logLevel","Debug","SlidedownNamespace","promptPush","options","Slidedown","promptPushCategories","promptSms","promptEmail","promptSmsAndEmail","NotificationsNamespace","permissionNative","Notifications","permission","setDefaultUrl","url","setDefaultTitle","title","isPushSupported","PushSubscriptionOptions","prototype","hasOwnProperty","safari","pushNotification","top","navigator","vendor","platform","requestPermission","script","ONESIGNAL_SDK_ID","ONE_SIGNAL_SCRIPT_SRC","isOneSignalInitialized","document","createElement","defer","src","onerror","head","appendChild","this","init","appId","Error","Injectable","args","providedIn","OnesignalNgxComponent","ngOnInit","Component","selector","template","NgModule","declarations","imports","exports"],"mappings":"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","sourcesContent":["interface AutoPromptOptions { force?: boolean; forceSlidedownOverNative?: boolean; slidedownPromptOptions?: IOneSignalAutoPromptOptions; }\ninterface IOneSignalAutoPromptOptions { force?: boolean; forceSlidedownOverNative?: boolean; isInUpdateMode?: boolean; categoryOptions?: IOneSignalCategories; }\ninterface IOneSignalCategories { positiveUpdateButton: string; negativeUpdateButton: string; savingButtonText: string; errorButtonText: string; updateMessage: string; tags: IOneSignalTagCategory[]; }\ninterface IOneSignalTagCategory { tag: string; label: string; checked?: boolean; }\ntype PushSubscriptionNamespaceProperties = { id: string | null | undefined; token: string | null | undefined; optedIn: boolean; };\ntype SubscriptionChangeEvent = { previous: PushSubscriptionNamespaceProperties; current: PushSubscriptionNamespaceProperties; };\ntype NotificationEventName = 'click' | 'foregroundWillDisplay' | 'dismiss' | 'permissionChange' | 'permissionPromptDisplay';\ntype SlidedownEventName = 'slidedownShown';\ntype OneSignalDeferredLoadedCallback = (onesignal: IOneSignalOneSignal) => void;\ninterface IOSNotification {\n /**\n * The OneSignal notification id;\n * - Primary id on OneSignal's REST API and dashboard\n */\n readonly notificationId: string;\n\n /**\n * Visible title text on the notification\n */\n readonly title?: string;\n\n /**\n * Visible body text on the notification\n */\n readonly body: string;\n\n /**\n * Visible icon the notification; URL format\n */\n readonly icon?: string;\n\n /**\n * Visible small badgeIcon that displays on some devices; URL format\n * Example: On Android's status bar\n */\n readonly badgeIcon?: string;\n\n /**\n * Visible image on the notification; URL format\n */\n readonly image?: string;\n\n /**\n * Visible buttons on the notification\n */\n readonly actionButtons?: IOSNotificationActionButton[];\n\n /**\n * If this value is the same as existing notification, it will replace it\n * Can be set when creating the notification with \"Web Push Topic\" on the dashboard\n * or web_push_topic from the REST API.\n */\n readonly topic?: string;\n\n /**\n * Custom object that was sent with the notification;\n * definable when creating the notification from the OneSignal REST API or dashboard\n */\n readonly additionalData?: object;\n\n /**\n * URL to open when clicking or tapping on the notification\n */\n readonly launchURL?: string;\n\n /**\n * Confirm the push was received by reporting back to OneSignal\n */\n readonly confirmDelivery: boolean;\n}\n\ninterface IOSNotificationActionButton {\n /**\n * Any unique identifier to represent which button was clicked. This is typically passed back to the service worker\n * and host page through events to identify which button was clicked.\n * e.g. 'like-button'\n */\n readonly actionId: string;\n /**\n * The notification action button's text.\n */\n readonly text: string;\n /**\n * A valid publicly reachable HTTPS URL to an image.\n */\n readonly icon?: string;\n /**\n * The URL to open the web browser to when this action button is clicked.\n */\n readonly launchURL?: string;\n}\n\ninterface NotificationClickResult {\n readonly actionId?: string;\n readonly url?: string;\n}\n\ntype NotificationEventTypeMap = {\n 'click': NotificationClickEvent;\n 'foregroundWillDisplay': NotificationForegroundWillDisplayEvent;\n 'dismiss': NotificationDismissEvent;\n 'permissionChange': boolean;\n 'permissionPromptDisplay': void;\n}\n\ninterface NotificationForegroundWillDisplayEvent {\n readonly notification: IOSNotification;\n preventDefault(): void;\n}\n\ninterface NotificationDismissEvent {\n notification: IOSNotification;\n}\n\ninterface NotificationClickEvent {\n readonly notification: IOSNotification;\n readonly result: NotificationClickResult;\n}\n\n\ninterface IInitObject {\n appId: string;\n subdomainName?: string;\n requiresUserPrivacyConsent?: boolean;\n promptOptions?: object;\n welcomeNotification?: object;\n notifyButton?: object;\n persistNotification?: boolean;\n webhooks?: object;\n autoResubscribe?: boolean;\n autoRegister?: boolean;\n notificationClickHandlerMatch?: string;\n notificationClickHandlerAction?: string;\n serviceWorkerParam?: { scope: string };\n serviceWorkerPath?: string;\n serviceWorkerUpdaterPath?: string;\n path?: string;\n allowLocalhostAsSecureOrigin?: boolean;\n [key: string]: any;\n}\n\ninterface IOneSignalOneSignal {\n\tSlidedown: IOneSignalSlidedown;\n\tNotifications: IOneSignalNotifications;\n\tSession: IOneSignalSession;\n\tUser: IOneSignalUser;\n\tDebug: IOneSignalDebug;\n\tlogin(externalId: string, jwtToken?: string): Promise;\n\tlogout(): Promise;\n\tinit(options: IInitObject): Promise;\n\tsetConsentGiven(consent: boolean): Promise;\n\tsetConsentRequired(requiresConsent: boolean): Promise;\n}\ninterface IOneSignalNotifications {\n\tpermissionNative: NotificationPermission;\n\tpermission: boolean;\n\tsetDefaultUrl(url: string): Promise;\n\tsetDefaultTitle(title: string): Promise;\n\tisPushSupported(): boolean;\n\trequestPermission(): Promise;\n\taddEventListener(event: K, listener: (obj: NotificationEventTypeMap[K]) => void): void;\n\tremoveEventListener(event: K, listener: (obj: NotificationEventTypeMap[K]) => void): void;\n}\ninterface IOneSignalSlidedown {\n\tpromptPush(options?: AutoPromptOptions): Promise;\n\tpromptPushCategories(options?: AutoPromptOptions): Promise;\n\tpromptSms(options?: AutoPromptOptions): Promise;\n\tpromptEmail(options?: AutoPromptOptions): Promise;\n\tpromptSmsAndEmail(options?: AutoPromptOptions): Promise;\n\taddEventListener(event: SlidedownEventName, listener: (wasShown: boolean) => void): void;\n\tremoveEventListener(event: SlidedownEventName, listener: (wasShown: boolean) => void): void;\n}\ninterface IOneSignalDebug {\n\tsetLogLevel(logLevel: string): void;\n}\ninterface IOneSignalSession {\n\tsendOutcome(outcomeName: string, outcomeWeight?: number): Promise;\n\tsendUniqueOutcome(outcomeName: string): Promise;\n}\ninterface IOneSignalUser {\n\tPushSubscription: IOneSignalPushSubscription;\n\taddAlias(label: string, id: string): void;\n\taddAliases(aliases: { [key: string]: string }): void;\n\tremoveAlias(label: string): void;\n\tremoveAliases(labels: string[]): void;\n\taddEmail(email: string): void;\n\tremoveEmail(email: string): void;\n\taddSms(smsNumber: string): void;\n\tremoveSms(smsNumber: string): void;\n\taddTag(key: string, value: string): void;\n\taddTags(tags: { [key: string]: string }): void;\n\tremoveTag(key: string): void;\n\tremoveTags(keys: string[]): void;\n}\ninterface IOneSignalPushSubscription {\n\tid: string | null | undefined;\n\ttoken: string | null | undefined;\n\toptedIn: boolean | undefined;\n\toptIn(): Promise;\n\toptOut(): Promise;\n\taddEventListener(event: 'change', listener: (change: SubscriptionChangeEvent) => void): void;\n\tremoveEventListener(event: 'change', listener: (change: SubscriptionChangeEvent) => void): void;\n}\n\nfunction oneSignalLogin(externalId: string, jwtToken?: string): Promise {\n return new Promise((resolve, reject) => {\n if (isOneSignalScriptFailed) {\n reject();\n }\n\n window.OneSignalDeferred?.push((oneSignal: IOneSignalOneSignal) => {\n oneSignal.login(externalId, jwtToken)\n .then((value: any) => resolve(value))\n .catch((error: Error) => reject(error));\n });\n });\n}\n\nfunction oneSignalLogout(): Promise {\n return new Promise((resolve, reject) => {\n if (isOneSignalScriptFailed) {\n reject();\n }\n\n window.OneSignalDeferred?.push((oneSignal: IOneSignalOneSignal) => {\n oneSignal.logout()\n .then((value: any) => resolve(value))\n .catch((error: Error) => reject(error));\n });\n });\n}\n\nfunction oneSignalSetConsentGiven(consent: boolean): Promise {\n return new Promise((resolve, reject) => {\n if (isOneSignalScriptFailed) {\n reject();\n }\n\n window.OneSignalDeferred?.push((oneSignal: IOneSignalOneSignal) => {\n oneSignal.setConsentGiven(consent)\n .then((value: any) => resolve(value))\n .catch((error: Error) => reject(error));\n });\n });\n}\n\nfunction oneSignalSetConsentRequired(requiresConsent: boolean): Promise {\n return new Promise((resolve, reject) => {\n if (isOneSignalScriptFailed) {\n reject();\n }\n\n window.OneSignalDeferred?.push((oneSignal: IOneSignalOneSignal) => {\n oneSignal.setConsentRequired(requiresConsent)\n .then((value: any) => resolve(value))\n .catch((error: Error) => reject(error));\n });\n });\n}\n\nfunction slidedownPromptPush(options?: AutoPromptOptions): Promise {\n return new Promise((resolve, reject) => {\n if (isOneSignalScriptFailed) {\n reject();\n }\n\n window.OneSignalDeferred?.push((oneSignal: IOneSignalOneSignal) => {\n oneSignal.Slidedown.promptPush(options)\n .then((value: any) => resolve(value))\n .catch((error: Error) => reject(error));\n });\n });\n}\n\nfunction slidedownPromptPushCategories(options?: AutoPromptOptions): Promise {\n return new Promise((resolve, reject) => {\n if (isOneSignalScriptFailed) {\n reject();\n }\n\n window.OneSignalDeferred?.push((oneSignal: IOneSignalOneSignal) => {\n oneSignal.Slidedown.promptPushCategories(options)\n .then((value: any) => resolve(value))\n .catch((error: Error) => reject(error));\n });\n });\n}\n\nfunction slidedownPromptSms(options?: AutoPromptOptions): Promise {\n return new Promise((resolve, reject) => {\n if (isOneSignalScriptFailed) {\n reject();\n }\n\n window.OneSignalDeferred?.push((oneSignal: IOneSignalOneSignal) => {\n oneSignal.Slidedown.promptSms(options)\n .then((value: any) => resolve(value))\n .catch((error: Error) => reject(error));\n });\n });\n}\n\nfunction slidedownPromptEmail(options?: AutoPromptOptions): Promise {\n return new Promise((resolve, reject) => {\n if (isOneSignalScriptFailed) {\n reject();\n }\n\n window.OneSignalDeferred?.push((oneSignal: IOneSignalOneSignal) => {\n oneSignal.Slidedown.promptEmail(options)\n .then((value: any) => resolve(value))\n .catch((error: Error) => reject(error));\n });\n });\n}\n\nfunction slidedownPromptSmsAndEmail(options?: AutoPromptOptions): Promise {\n return new Promise((resolve, reject) => {\n if (isOneSignalScriptFailed) {\n reject();\n }\n\n window.OneSignalDeferred?.push((oneSignal: IOneSignalOneSignal) => {\n oneSignal.Slidedown.promptSmsAndEmail(options)\n .then((value: any) => resolve(value))\n .catch((error: Error) => reject(error));\n });\n });\n}\n\nfunction slidedownAddEventListener(event: SlidedownEventName, listener: (wasShown: boolean) => void): void {\n window.OneSignalDeferred?.push((oneSignal: IOneSignalOneSignal) => {\n oneSignal.Slidedown.addEventListener(event, listener);\n });\n}\n\nfunction slidedownRemoveEventListener(event: SlidedownEventName, listener: (wasShown: boolean) => void): void {\n window.OneSignalDeferred?.push((oneSignal: IOneSignalOneSignal) => {\n oneSignal.Slidedown.removeEventListener(event, listener);\n });\n}\n\nfunction notificationsSetDefaultUrl(url: string): Promise {\n return new Promise((resolve, reject) => {\n if (isOneSignalScriptFailed) {\n reject();\n }\n\n window.OneSignalDeferred?.push((oneSignal: IOneSignalOneSignal) => {\n oneSignal.Notifications.setDefaultUrl(url)\n .then((value: any) => resolve(value))\n .catch((error: Error) => reject(error));\n });\n });\n}\n\nfunction notificationsSetDefaultTitle(title: string): Promise {\n return new Promise((resolve, reject) => {\n if (isOneSignalScriptFailed) {\n reject();\n }\n\n window.OneSignalDeferred?.push((oneSignal: IOneSignalOneSignal) => {\n oneSignal.Notifications.setDefaultTitle(title)\n .then((value: any) => resolve(value))\n .catch((error: Error) => reject(error));\n });\n });\n}\n\nfunction notificationsRequestPermission(): Promise {\n return new Promise((resolve, reject) => {\n if (isOneSignalScriptFailed) {\n reject();\n }\n\n window.OneSignalDeferred?.push((oneSignal: IOneSignalOneSignal) => {\n oneSignal.Notifications.requestPermission()\n .then((value: any) => resolve(value))\n .catch((error: Error) => reject(error));\n });\n });\n}\n\nfunction notificationsAddEventListener(event: K, listener: (obj: NotificationEventTypeMap[K]) => void): void {\n window.OneSignalDeferred?.push((oneSignal: IOneSignalOneSignal) => {\n oneSignal.Notifications.addEventListener(event, listener);\n });\n}\n\nfunction notificationsRemoveEventListener(event: K, listener: (obj: NotificationEventTypeMap[K]) => void): void {\n window.OneSignalDeferred?.push((oneSignal: IOneSignalOneSignal) => {\n oneSignal.Notifications.removeEventListener(event, listener);\n });\n}\n\nfunction sessionSendOutcome(outcomeName: string, outcomeWeight?: number): Promise {\n return new Promise((resolve, reject) => {\n if (isOneSignalScriptFailed) {\n reject();\n }\n\n window.OneSignalDeferred?.push((oneSignal: IOneSignalOneSignal) => {\n oneSignal.Session.sendOutcome(outcomeName, outcomeWeight)\n .then((value: any) => resolve(value))\n .catch((error: Error) => reject(error));\n });\n });\n}\n\nfunction sessionSendUniqueOutcome(outcomeName: string): Promise {\n return new Promise((resolve, reject) => {\n if (isOneSignalScriptFailed) {\n reject();\n }\n\n window.OneSignalDeferred?.push((oneSignal: IOneSignalOneSignal) => {\n oneSignal.Session.sendUniqueOutcome(outcomeName)\n .then((value: any) => resolve(value))\n .catch((error: Error) => reject(error));\n });\n });\n}\n\nfunction userAddAlias(label: string, id: string): void {\n window.OneSignalDeferred?.push((oneSignal: IOneSignalOneSignal) => {\n oneSignal.User.addAlias(label, id);\n });\n}\n\nfunction userAddAliases(aliases: { [key: string]: string }): void {\n window.OneSignalDeferred?.push((oneSignal: IOneSignalOneSignal) => {\n oneSignal.User.addAliases(aliases);\n });\n}\n\nfunction userRemoveAlias(label: string): void {\n window.OneSignalDeferred?.push((oneSignal: IOneSignalOneSignal) => {\n oneSignal.User.removeAlias(label);\n });\n}\n\nfunction userRemoveAliases(labels: string[]): void {\n window.OneSignalDeferred?.push((oneSignal: IOneSignalOneSignal) => {\n oneSignal.User.removeAliases(labels);\n });\n}\n\nfunction userAddEmail(email: string): void {\n window.OneSignalDeferred?.push((oneSignal: IOneSignalOneSignal) => {\n oneSignal.User.addEmail(email);\n });\n}\n\nfunction userRemoveEmail(email: string): void {\n window.OneSignalDeferred?.push((oneSignal: IOneSignalOneSignal) => {\n oneSignal.User.removeEmail(email);\n });\n}\n\nfunction userAddSms(smsNumber: string): void {\n window.OneSignalDeferred?.push((oneSignal: IOneSignalOneSignal) => {\n oneSignal.User.addSms(smsNumber);\n });\n}\n\nfunction userRemoveSms(smsNumber: string): void {\n window.OneSignalDeferred?.push((oneSignal: IOneSignalOneSignal) => {\n oneSignal.User.removeSms(smsNumber);\n });\n}\n\nfunction userAddTag(key: string, value: string): void {\n window.OneSignalDeferred?.push((oneSignal: IOneSignalOneSignal) => {\n oneSignal.User.addTag(key, value);\n });\n}\n\nfunction userAddTags(tags: { [key: string]: string }): void {\n window.OneSignalDeferred?.push((oneSignal: IOneSignalOneSignal) => {\n oneSignal.User.addTags(tags);\n });\n}\n\nfunction userRemoveTag(key: string): void {\n window.OneSignalDeferred?.push((oneSignal: IOneSignalOneSignal) => {\n oneSignal.User.removeTag(key);\n });\n}\n\nfunction userRemoveTags(keys: string[]): void {\n window.OneSignalDeferred?.push((oneSignal: IOneSignalOneSignal) => {\n oneSignal.User.removeTags(keys);\n });\n}\n\nfunction pushSubscriptionOptIn(): Promise {\n return new Promise((resolve, reject) => {\n if (isOneSignalScriptFailed) {\n reject();\n }\n\n window.OneSignalDeferred?.push((oneSignal: IOneSignalOneSignal) => {\n oneSignal.User.PushSubscription.optIn()\n .then((value: any) => resolve(value))\n .catch((error: Error) => reject(error));\n });\n });\n}\n\nfunction pushSubscriptionOptOut(): Promise {\n return new Promise((resolve, reject) => {\n if (isOneSignalScriptFailed) {\n reject();\n }\n\n window.OneSignalDeferred?.push((oneSignal: IOneSignalOneSignal) => {\n oneSignal.User.PushSubscription.optOut()\n .then((value: any) => resolve(value))\n .catch((error: Error) => reject(error));\n });\n });\n}\n\nfunction pushSubscriptionAddEventListener(event: 'change', listener: (change: SubscriptionChangeEvent) => void): void {\n window.OneSignalDeferred?.push((oneSignal: IOneSignalOneSignal) => {\n oneSignal.User.PushSubscription.addEventListener(event, listener);\n });\n}\n\nfunction pushSubscriptionRemoveEventListener(event: 'change', listener: (change: SubscriptionChangeEvent) => void): void {\n window.OneSignalDeferred?.push((oneSignal: IOneSignalOneSignal) => {\n oneSignal.User.PushSubscription.removeEventListener(event, listener);\n });\n}\n\nfunction debugSetLogLevel(logLevel: string): void {\n window.OneSignalDeferred?.push((oneSignal: IOneSignalOneSignal) => {\n oneSignal.Debug.setLogLevel(logLevel);\n });\n}\n\nconst PushSubscriptionNamespace: IOneSignalPushSubscription = {\n\tget id(): string | null | undefined { return window.OneSignal?.User?.PushSubscription?.id },\n\tget token(): string | null | undefined { return window.OneSignal?.User?.PushSubscription?.token },\n\tget optedIn(): boolean | undefined { return window.OneSignal?.User?.PushSubscription?.optedIn },\n\toptIn: pushSubscriptionOptIn,\n\toptOut: pushSubscriptionOptOut,\n\taddEventListener: pushSubscriptionAddEventListener,\n\tremoveEventListener: pushSubscriptionRemoveEventListener,\n};\n\nconst UserNamespace: IOneSignalUser = {\n\taddAlias: userAddAlias,\n\taddAliases: userAddAliases,\n\tremoveAlias: userRemoveAlias,\n\tremoveAliases: userRemoveAliases,\n\taddEmail: userAddEmail,\n\tremoveEmail: userRemoveEmail,\n\taddSms: userAddSms,\n\tremoveSms: userRemoveSms,\n\taddTag: userAddTag,\n\taddTags: userAddTags,\n\tremoveTag: userRemoveTag,\n\tremoveTags: userRemoveTags,\n\tPushSubscription: PushSubscriptionNamespace,\n};\n\nconst SessionNamespace: IOneSignalSession = {\n\tsendOutcome: sessionSendOutcome,\n\tsendUniqueOutcome: sessionSendUniqueOutcome,\n};\n\nconst DebugNamespace: IOneSignalDebug = {\n\tsetLogLevel: debugSetLogLevel,\n};\n\nconst SlidedownNamespace: IOneSignalSlidedown = {\n\tpromptPush: slidedownPromptPush,\n\tpromptPushCategories: slidedownPromptPushCategories,\n\tpromptSms: slidedownPromptSms,\n\tpromptEmail: slidedownPromptEmail,\n\tpromptSmsAndEmail: slidedownPromptSmsAndEmail,\n\taddEventListener: slidedownAddEventListener,\n\tremoveEventListener: slidedownRemoveEventListener,\n};\n\nconst NotificationsNamespace: IOneSignalNotifications = {\n\tget permissionNative(): NotificationPermission { return window.OneSignal?.Notifications?.permissionNative ?? 'default'; },\n\tget permission(): boolean { return window.OneSignal?.Notifications?.permission ?? false; },\n\tsetDefaultUrl: notificationsSetDefaultUrl,\n\tsetDefaultTitle: notificationsSetDefaultTitle,\n\tisPushSupported,\n\trequestPermission: notificationsRequestPermission,\n\taddEventListener: notificationsAddEventListener,\n\tremoveEventListener: notificationsRemoveEventListener,\n};\n\n/**\n * @PublicApi\n */\nfunction isPushSupported(): boolean {\n return isPushNotificationsSupported();\n}\n\nimport { Injectable } from '@angular/core';\nconst ONESIGNAL_SDK_ID = 'onesignal-sdk';\nconst ONE_SIGNAL_SCRIPT_SRC = 'https://cdn.onesignal.com/sdks/web/v16/OneSignalSDK.page.js';\n\n// true if the script is successfully loaded from CDN.\nlet isOneSignalInitialized = false;\n// true if the script fails to load from CDN. A separate flag is necessary\n// to disambiguate between a CDN load failure and a delayed call to\n// OneSignal#init.\nlet isOneSignalScriptFailed = false;\n\nif (window) {\n window.OneSignalDeferred = window.OneSignalDeferred || [];\n addSDKScript();\n}\n\n/**\n * The following code is copied directly from the native SDK source file BrowserSupportsPush.ts\n * S T A R T\n */\n\n// Checks if the browser supports push notifications by checking if specific\n// classes and properties on them exist\nfunction isPushNotificationsSupported(): boolean {\n return supportsVapidPush() || supportsSafariPush();\n}\n\nfunction isMacOSSafariInIframe(): boolean {\n // Fallback detection for Safari on macOS in an iframe context\n return window.top !== window && // isContextIframe\n navigator.vendor === 'Apple Computer, Inc.' && // isSafari\n navigator.platform === 'MacIntel'; // isMacOS\n}\n\nfunction supportsSafariPush(): boolean {\n return (window.safari && typeof window.safari.pushNotification !== 'undefined') ||\n isMacOSSafariInIframe();\n}\n\n// Does the browser support the standard Push API\nfunction supportsVapidPush(): boolean {\n return typeof PushSubscriptionOptions !== 'undefined' &&\n PushSubscriptionOptions.prototype.hasOwnProperty('applicationServerKey');\n}\n/* E N D */\n\nfunction handleOnError(): void {\n isOneSignalScriptFailed = true;\n}\n\nfunction addSDKScript(): void {\n const script = document.createElement('script');\n script.id = ONESIGNAL_SDK_ID;\n script.defer = true;\n script.src = ONE_SIGNAL_SCRIPT_SRC;\n\n // Always resolve whether or not the script is successfully initialized.\n // This is important for users who may block cdn.onesignal.com w/ adblock.\n script.onerror = () => {\n handleOnError();\n };\n\n document.head.appendChild(script);\n}\n\n\ndeclare global {\n interface Window {\n OneSignalDeferred?: OneSignalDeferredLoadedCallback[];\n OneSignal?: IOneSignalOneSignal;\n safari?: {\n pushNotification: any;\n };\n }\n}\n\ninterface IOneSignalOneSignal {\n [key: string]: any;\n}\n\n@Injectable({\n providedIn: 'root'\n})\nexport class OneSignal implements IOneSignalOneSignal {\n [key: string]: any;\n\n constructor() { }\n\n /* P U B L I C */\n\n /**\n * @PublicApi\n */\n init(options: IInitObject): Promise {\n if (isOneSignalInitialized) {\n return Promise.reject(`OneSignal is already initialized.`);\n }\n\n if (!options || !options.appId) {\n throw new Error('You need to provide your OneSignal appId.');\n }\n\n if (!document) {\n return Promise.reject(`Document is not defined.`);\n }\n\n return new Promise((resolve) => {\n window.OneSignalDeferred?.push((oneSignal: IOneSignalOneSignal) => {\n oneSignal.init(options).then(() => {\n isOneSignalInitialized = true;\n resolve();\n });\n });\n });\n }\n\n\tUser = UserNamespace;\n\tSession = SessionNamespace;\n\tDebug = DebugNamespace;\n\tSlidedown = SlidedownNamespace;\n\tNotifications = NotificationsNamespace;\n\tlogin = oneSignalLogin;\n\tlogout = oneSignalLogout;\n\tsetConsentGiven = oneSignalSetConsentGiven;\n\tsetConsentRequired = oneSignalSetConsentRequired;\n}\n","import { Component, OnInit } from '@angular/core';\n\n@Component({\n selector: 'onesignal-onesignal-ngx',\n template: `\n

\n onesignal-ngx works!\n

\n `,\n styles: [\n ]\n})\nexport class OnesignalNgxComponent implements OnInit {\n\n constructor() { }\n\n ngOnInit(): void {\n }\n\n}\n","import { NgModule } from '@angular/core';\nimport { OnesignalNgxComponent } from './onesignal-ngx.component';\n\n\n\n@NgModule({\n declarations: [OnesignalNgxComponent],\n imports: [\n ],\n exports: [OnesignalNgxComponent]\n})\nexport class OnesignalNgxModule { }\n"]} \ No newline at end of file diff --git a/esm2015/lib/onesignal-ngx.service.js b/esm2015/lib/onesignal-ngx.service.js index 0d02236..00100b5 100644 --- a/esm2015/lib/onesignal-ngx.service.js +++ b/esm2015/lib/onesignal-ngx.service.js @@ -1,662 +1,468 @@ -import { Injectable } from '@angular/core'; -import * as i0 from "@angular/core"; -const ONESIGNAL_SDK_ID = 'onesignal-sdk'; -const ONE_SIGNAL_SCRIPT_SRC = 'https://cdn.onesignal.com/sdks/OneSignalSDK.js'; -const ONESIGNAL_NOT_SETUP_ERROR = 'OneSignal is not setup correctly.'; -const MAX_TIMEOUT = 30; -export class OneSignal { - constructor() { - this.isOneSignalInitialized = false; - this.ngOneSignalFunctionQueue = []; - /* H E L P E R S */ - this.injectScript = () => { - const script = document.createElement('script'); - script.id = ONESIGNAL_SDK_ID; - script.src = ONE_SIGNAL_SCRIPT_SRC; - script.async = true; - document.head.appendChild(script); - }; - this.doesOneSignalExist = () => { - if (window.OneSignal) { - return true; - } - return false; - }; - this.processQueuedOneSignalFunctions = () => { - this.ngOneSignalFunctionQueue.forEach(element => { - const { name, args, promiseResolver } = element; - if (!!promiseResolver) { - this[name](...args).then((result) => { - promiseResolver(result); - }); - } - else { - window.OneSignal[name](...args); - } - }); - }; - this.setupOneSignalIfMissing = () => { - if (!this.doesOneSignalExist()) { - window.OneSignal = window.OneSignal || []; - } - }; - } - /* P U B L I C */ - init(options) { - return new Promise(resolve => { - if (this.isOneSignalInitialized) { - return; - } - this.injectScript(); - this.setupOneSignalIfMissing(); - window.OneSignal.push(() => { - window.OneSignal.init(options); - }); - const timeout = setTimeout(() => { - console.error(ONESIGNAL_NOT_SETUP_ERROR); - }, MAX_TIMEOUT * 1000); - window.OneSignal.push(() => { - clearTimeout(timeout); - this.isOneSignalInitialized = true; - this.processQueuedOneSignalFunctions(); - resolve(); - }); - }); - } - on(event, listener) { - if (!this.doesOneSignalExist()) { - this.ngOneSignalFunctionQueue.push({ - name: 'on', - args: arguments, - }); - return; +function oneSignalLogin(externalId, jwtToken) { + return new Promise((resolve, reject) => { + var _a; + if (isOneSignalScriptFailed) { + reject(); } - window.OneSignal.push(() => { - window.OneSignal.on(event, listener); + (_a = window.OneSignalDeferred) === null || _a === void 0 ? void 0 : _a.push((oneSignal) => { + oneSignal.login(externalId, jwtToken) + .then((value) => resolve(value)) + .catch((error) => reject(error)); }); - } - off(event, listener) { - if (!this.doesOneSignalExist()) { - this.ngOneSignalFunctionQueue.push({ - name: 'off', - args: arguments, - }); - return; + }); +} +function oneSignalLogout() { + return new Promise((resolve, reject) => { + var _a; + if (isOneSignalScriptFailed) { + reject(); } - window.OneSignal.push(() => { - window.OneSignal.off(event, listener); + (_a = window.OneSignalDeferred) === null || _a === void 0 ? void 0 : _a.push((oneSignal) => { + oneSignal.logout() + .then((value) => resolve(value)) + .catch((error) => reject(error)); }); - } - once(event, listener) { - if (!this.doesOneSignalExist()) { - this.ngOneSignalFunctionQueue.push({ - name: 'once', - args: arguments, - }); - return; + }); +} +function oneSignalSetConsentGiven(consent) { + return new Promise((resolve, reject) => { + var _a; + if (isOneSignalScriptFailed) { + reject(); } - window.OneSignal.push(() => { - window.OneSignal.once(event, listener); - }); - } - isPushNotificationsEnabled(callback) { - return new Promise((resolve, reject) => { - if (!this.doesOneSignalExist()) { - this.ngOneSignalFunctionQueue.push({ - name: 'isPushNotificationsEnabled', - args: arguments, - promiseResolver: resolve, - }); - return; - } - window.OneSignal.push(() => { - window.OneSignal.isPushNotificationsEnabled(callback) - .then((value) => resolve(value)) - .catch((error) => reject(error)); - }); - }); - } - showHttpPrompt(options) { - return new Promise((resolve, reject) => { - if (!this.doesOneSignalExist()) { - this.ngOneSignalFunctionQueue.push({ - name: 'showHttpPrompt', - args: arguments, - promiseResolver: resolve, - }); - return; - } - window.OneSignal.push(() => { - window.OneSignal.showHttpPrompt(options) - .then((value) => resolve(value)) - .catch((error) => reject(error)); - }); - }); - } - registerForPushNotifications(options) { - return new Promise((resolve, reject) => { - if (!this.doesOneSignalExist()) { - this.ngOneSignalFunctionQueue.push({ - name: 'registerForPushNotifications', - args: arguments, - promiseResolver: resolve, - }); - return; - } - window.OneSignal.push(() => { - window.OneSignal.registerForPushNotifications(options) - .then((value) => resolve(value)) - .catch((error) => reject(error)); - }); - }); - } - setDefaultNotificationUrl(url) { - return new Promise((resolve, reject) => { - if (!this.doesOneSignalExist()) { - this.ngOneSignalFunctionQueue.push({ - name: 'setDefaultNotificationUrl', - args: arguments, - promiseResolver: resolve, - }); - return; - } - window.OneSignal.push(() => { - window.OneSignal.setDefaultNotificationUrl(url) - .then((value) => resolve(value)) - .catch((error) => reject(error)); - }); - }); - } - setDefaultTitle(title) { - return new Promise((resolve, reject) => { - if (!this.doesOneSignalExist()) { - this.ngOneSignalFunctionQueue.push({ - name: 'setDefaultTitle', - args: arguments, - promiseResolver: resolve, - }); - return; - } - window.OneSignal.push(() => { - window.OneSignal.setDefaultTitle(title) - .then((value) => resolve(value)) - .catch((error) => reject(error)); - }); - }); - } - getTags(callback) { - return new Promise((resolve, reject) => { - if (!this.doesOneSignalExist()) { - this.ngOneSignalFunctionQueue.push({ - name: 'getTags', - args: arguments, - promiseResolver: resolve, - }); - return; - } - window.OneSignal.push(() => { - window.OneSignal.getTags(callback) - .then((value) => resolve(value)) - .catch((error) => reject(error)); - }); - }); - } - sendTag(key, value, callback) { - return new Promise((resolve, reject) => { - if (!this.doesOneSignalExist()) { - this.ngOneSignalFunctionQueue.push({ - name: 'sendTag', - args: arguments, - promiseResolver: resolve, - }); - return; - } - window.OneSignal.push(() => { - window.OneSignal.sendTag(key, value, callback) - .then((value) => resolve(value)) - .catch((error) => reject(error)); - }); - }); - } - sendTags(tags, callback) { - return new Promise((resolve, reject) => { - if (!this.doesOneSignalExist()) { - this.ngOneSignalFunctionQueue.push({ - name: 'sendTags', - args: arguments, - promiseResolver: resolve, - }); - return; - } - window.OneSignal.push(() => { - window.OneSignal.sendTags(tags, callback) - .then((value) => resolve(value)) - .catch((error) => reject(error)); - }); - }); - } - deleteTag(tag) { - return new Promise((resolve, reject) => { - if (!this.doesOneSignalExist()) { - this.ngOneSignalFunctionQueue.push({ - name: 'deleteTag', - args: arguments, - promiseResolver: resolve, - }); - return; - } - window.OneSignal.push(() => { - window.OneSignal.deleteTag(tag) - .then((value) => resolve(value)) - .catch((error) => reject(error)); - }); - }); - } - deleteTags(tags, callback) { - return new Promise((resolve, reject) => { - if (!this.doesOneSignalExist()) { - this.ngOneSignalFunctionQueue.push({ - name: 'deleteTags', - args: arguments, - promiseResolver: resolve, - }); - return; - } - window.OneSignal.push(() => { - window.OneSignal.deleteTags(tags, callback) - .then((value) => resolve(value)) - .catch((error) => reject(error)); - }); - }); - } - addListenerForNotificationOpened(callback) { - return new Promise((resolve, reject) => { - if (!this.doesOneSignalExist()) { - this.ngOneSignalFunctionQueue.push({ - name: 'addListenerForNotificationOpened', - args: arguments, - promiseResolver: resolve, - }); - return; - } - window.OneSignal.push(() => { - window.OneSignal.addListenerForNotificationOpened(callback) - .then((value) => resolve(value)) - .catch((error) => reject(error)); - }); - }); - } - setSubscription(newSubscription) { - return new Promise((resolve, reject) => { - if (!this.doesOneSignalExist()) { - this.ngOneSignalFunctionQueue.push({ - name: 'setSubscription', - args: arguments, - promiseResolver: resolve, - }); - return; - } - window.OneSignal.push(() => { - window.OneSignal.setSubscription(newSubscription) - .then((value) => resolve(value)) - .catch((error) => reject(error)); - }); - }); - } - showHttpPermissionRequest(options) { - return new Promise((resolve, reject) => { - if (!this.doesOneSignalExist()) { - this.ngOneSignalFunctionQueue.push({ - name: 'showHttpPermissionRequest', - args: arguments, - promiseResolver: resolve, - }); - return; - } - window.OneSignal.push(() => { - window.OneSignal.showHttpPermissionRequest(options) - .then((value) => resolve(value)) - .catch((error) => reject(error)); - }); - }); - } - showNativePrompt() { - return new Promise((resolve, reject) => { - if (!this.doesOneSignalExist()) { - this.ngOneSignalFunctionQueue.push({ - name: 'showNativePrompt', - args: arguments, - promiseResolver: resolve, - }); - return; - } - window.OneSignal.push(() => { - window.OneSignal.showNativePrompt() - .then((value) => resolve(value)) - .catch((error) => reject(error)); - }); - }); - } - showSlidedownPrompt(options) { - return new Promise((resolve, reject) => { - if (!this.doesOneSignalExist()) { - this.ngOneSignalFunctionQueue.push({ - name: 'showSlidedownPrompt', - args: arguments, - promiseResolver: resolve, - }); - return; - } - window.OneSignal.push(() => { - window.OneSignal.showSlidedownPrompt(options) - .then((value) => resolve(value)) - .catch((error) => reject(error)); - }); - }); - } - showCategorySlidedown(options) { - return new Promise((resolve, reject) => { - if (!this.doesOneSignalExist()) { - this.ngOneSignalFunctionQueue.push({ - name: 'showCategorySlidedown', - args: arguments, - promiseResolver: resolve, - }); - return; - } - window.OneSignal.push(() => { - window.OneSignal.showCategorySlidedown(options) - .then((value) => resolve(value)) - .catch((error) => reject(error)); - }); - }); - } - showSmsSlidedown(options) { - return new Promise((resolve, reject) => { - if (!this.doesOneSignalExist()) { - this.ngOneSignalFunctionQueue.push({ - name: 'showSmsSlidedown', - args: arguments, - promiseResolver: resolve, - }); - return; - } - window.OneSignal.push(() => { - window.OneSignal.showSmsSlidedown(options) - .then((value) => resolve(value)) - .catch((error) => reject(error)); - }); + (_a = window.OneSignalDeferred) === null || _a === void 0 ? void 0 : _a.push((oneSignal) => { + oneSignal.setConsentGiven(consent) + .then((value) => resolve(value)) + .catch((error) => reject(error)); }); - } - showEmailSlidedown(options) { - return new Promise((resolve, reject) => { - if (!this.doesOneSignalExist()) { - this.ngOneSignalFunctionQueue.push({ - name: 'showEmailSlidedown', - args: arguments, - promiseResolver: resolve, - }); - return; - } - window.OneSignal.push(() => { - window.OneSignal.showEmailSlidedown(options) - .then((value) => resolve(value)) - .catch((error) => reject(error)); - }); - }); - } - showSmsAndEmailSlidedown(options) { - return new Promise((resolve, reject) => { - if (!this.doesOneSignalExist()) { - this.ngOneSignalFunctionQueue.push({ - name: 'showSmsAndEmailSlidedown', - args: arguments, - promiseResolver: resolve, - }); - return; - } - window.OneSignal.push(() => { - window.OneSignal.showSmsAndEmailSlidedown(options) - .then((value) => resolve(value)) - .catch((error) => reject(error)); - }); - }); - } - getNotificationPermission(onComplete) { - return new Promise((resolve, reject) => { - if (!this.doesOneSignalExist()) { - this.ngOneSignalFunctionQueue.push({ - name: 'getNotificationPermission', - args: arguments, - promiseResolver: resolve, - }); - return; - } - window.OneSignal.push(() => { - window.OneSignal.getNotificationPermission(onComplete) - .then((value) => resolve(value)) - .catch((error) => reject(error)); - }); + }); +} +function oneSignalSetConsentRequired(requiresConsent) { + return new Promise((resolve, reject) => { + var _a; + if (isOneSignalScriptFailed) { + reject(); + } + (_a = window.OneSignalDeferred) === null || _a === void 0 ? void 0 : _a.push((oneSignal) => { + oneSignal.setConsentRequired(requiresConsent) + .then((value) => resolve(value)) + .catch((error) => reject(error)); }); - } - getUserId(callback) { - return new Promise((resolve, reject) => { - if (!this.doesOneSignalExist()) { - this.ngOneSignalFunctionQueue.push({ - name: 'getUserId', - args: arguments, - promiseResolver: resolve, - }); - return; - } - window.OneSignal.push(() => { - window.OneSignal.getUserId(callback) - .then((value) => resolve(value)) - .catch((error) => reject(error)); - }); + }); +} +function slidedownPromptPush(options) { + return new Promise((resolve, reject) => { + var _a; + if (isOneSignalScriptFailed) { + reject(); + } + (_a = window.OneSignalDeferred) === null || _a === void 0 ? void 0 : _a.push((oneSignal) => { + oneSignal.Slidedown.promptPush(options) + .then((value) => resolve(value)) + .catch((error) => reject(error)); }); - } - getSubscription(callback) { - return new Promise((resolve, reject) => { - if (!this.doesOneSignalExist()) { - this.ngOneSignalFunctionQueue.push({ - name: 'getSubscription', - args: arguments, - promiseResolver: resolve, - }); - return; - } - window.OneSignal.push(() => { - window.OneSignal.getSubscription(callback) - .then((value) => resolve(value)) - .catch((error) => reject(error)); - }); + }); +} +function slidedownPromptPushCategories(options) { + return new Promise((resolve, reject) => { + var _a; + if (isOneSignalScriptFailed) { + reject(); + } + (_a = window.OneSignalDeferred) === null || _a === void 0 ? void 0 : _a.push((oneSignal) => { + oneSignal.Slidedown.promptPushCategories(options) + .then((value) => resolve(value)) + .catch((error) => reject(error)); }); - } - setEmail(email, options) { - return new Promise((resolve, reject) => { - if (!this.doesOneSignalExist()) { - this.ngOneSignalFunctionQueue.push({ - name: 'setEmail', - args: arguments, - promiseResolver: resolve, - }); - return; - } - window.OneSignal.push(() => { - window.OneSignal.setEmail(email, options) - .then((value) => resolve(value)) - .catch((error) => reject(error)); - }); + }); +} +function slidedownPromptSms(options) { + return new Promise((resolve, reject) => { + var _a; + if (isOneSignalScriptFailed) { + reject(); + } + (_a = window.OneSignalDeferred) === null || _a === void 0 ? void 0 : _a.push((oneSignal) => { + oneSignal.Slidedown.promptSms(options) + .then((value) => resolve(value)) + .catch((error) => reject(error)); }); - } - setSMSNumber(smsNumber, options) { - return new Promise((resolve, reject) => { - if (!this.doesOneSignalExist()) { - this.ngOneSignalFunctionQueue.push({ - name: 'setSMSNumber', - args: arguments, - promiseResolver: resolve, - }); - return; - } - window.OneSignal.push(() => { - window.OneSignal.setSMSNumber(smsNumber, options) - .then((value) => resolve(value)) - .catch((error) => reject(error)); - }); + }); +} +function slidedownPromptEmail(options) { + return new Promise((resolve, reject) => { + var _a; + if (isOneSignalScriptFailed) { + reject(); + } + (_a = window.OneSignalDeferred) === null || _a === void 0 ? void 0 : _a.push((oneSignal) => { + oneSignal.Slidedown.promptEmail(options) + .then((value) => resolve(value)) + .catch((error) => reject(error)); }); - } - logoutEmail() { - return new Promise((resolve, reject) => { - if (!this.doesOneSignalExist()) { - this.ngOneSignalFunctionQueue.push({ - name: 'logoutEmail', - args: arguments, - promiseResolver: resolve, - }); - return; - } - window.OneSignal.push(() => { - window.OneSignal.logoutEmail() - .then((value) => resolve(value)) - .catch((error) => reject(error)); - }); + }); +} +function slidedownPromptSmsAndEmail(options) { + return new Promise((resolve, reject) => { + var _a; + if (isOneSignalScriptFailed) { + reject(); + } + (_a = window.OneSignalDeferred) === null || _a === void 0 ? void 0 : _a.push((oneSignal) => { + oneSignal.Slidedown.promptSmsAndEmail(options) + .then((value) => resolve(value)) + .catch((error) => reject(error)); }); - } - logoutSMS() { - return new Promise((resolve, reject) => { - if (!this.doesOneSignalExist()) { - this.ngOneSignalFunctionQueue.push({ - name: 'logoutSMS', - args: arguments, - promiseResolver: resolve, - }); - return; - } - window.OneSignal.push(() => { - window.OneSignal.logoutSMS() - .then((value) => resolve(value)) - .catch((error) => reject(error)); - }); + }); +} +function slidedownAddEventListener(event, listener) { + var _a; + (_a = window.OneSignalDeferred) === null || _a === void 0 ? void 0 : _a.push((oneSignal) => { + oneSignal.Slidedown.addEventListener(event, listener); + }); +} +function slidedownRemoveEventListener(event, listener) { + var _a; + (_a = window.OneSignalDeferred) === null || _a === void 0 ? void 0 : _a.push((oneSignal) => { + oneSignal.Slidedown.removeEventListener(event, listener); + }); +} +function notificationsSetDefaultUrl(url) { + return new Promise((resolve, reject) => { + var _a; + if (isOneSignalScriptFailed) { + reject(); + } + (_a = window.OneSignalDeferred) === null || _a === void 0 ? void 0 : _a.push((oneSignal) => { + oneSignal.Notifications.setDefaultUrl(url) + .then((value) => resolve(value)) + .catch((error) => reject(error)); }); - } - setExternalUserId(externalUserId, authHash) { - return new Promise((resolve, reject) => { - if (!this.doesOneSignalExist()) { - this.ngOneSignalFunctionQueue.push({ - name: 'setExternalUserId', - args: arguments, - promiseResolver: resolve, - }); - return; - } - window.OneSignal.push(() => { - window.OneSignal.setExternalUserId(externalUserId, authHash) - .then((value) => resolve(value)) - .catch((error) => reject(error)); - }); + }); +} +function notificationsSetDefaultTitle(title) { + return new Promise((resolve, reject) => { + var _a; + if (isOneSignalScriptFailed) { + reject(); + } + (_a = window.OneSignalDeferred) === null || _a === void 0 ? void 0 : _a.push((oneSignal) => { + oneSignal.Notifications.setDefaultTitle(title) + .then((value) => resolve(value)) + .catch((error) => reject(error)); }); - } - removeExternalUserId() { - return new Promise((resolve, reject) => { - if (!this.doesOneSignalExist()) { - this.ngOneSignalFunctionQueue.push({ - name: 'removeExternalUserId', - args: arguments, - promiseResolver: resolve, - }); - return; - } - window.OneSignal.push(() => { - window.OneSignal.removeExternalUserId() - .then((value) => resolve(value)) - .catch((error) => reject(error)); - }); + }); +} +function notificationsRequestPermission() { + return new Promise((resolve, reject) => { + var _a; + if (isOneSignalScriptFailed) { + reject(); + } + (_a = window.OneSignalDeferred) === null || _a === void 0 ? void 0 : _a.push((oneSignal) => { + oneSignal.Notifications.requestPermission() + .then((value) => resolve(value)) + .catch((error) => reject(error)); }); - } - getExternalUserId() { - return new Promise((resolve, reject) => { - if (!this.doesOneSignalExist()) { - this.ngOneSignalFunctionQueue.push({ - name: 'getExternalUserId', - args: arguments, - promiseResolver: resolve, - }); - return; - } - window.OneSignal.push(() => { - window.OneSignal.getExternalUserId() - .then((value) => resolve(value)) - .catch((error) => reject(error)); - }); + }); +} +function notificationsAddEventListener(event, listener) { + var _a; + (_a = window.OneSignalDeferred) === null || _a === void 0 ? void 0 : _a.push((oneSignal) => { + oneSignal.Notifications.addEventListener(event, listener); + }); +} +function notificationsRemoveEventListener(event, listener) { + var _a; + (_a = window.OneSignalDeferred) === null || _a === void 0 ? void 0 : _a.push((oneSignal) => { + oneSignal.Notifications.removeEventListener(event, listener); + }); +} +function sessionSendOutcome(outcomeName, outcomeWeight) { + return new Promise((resolve, reject) => { + var _a; + if (isOneSignalScriptFailed) { + reject(); + } + (_a = window.OneSignalDeferred) === null || _a === void 0 ? void 0 : _a.push((oneSignal) => { + oneSignal.Session.sendOutcome(outcomeName, outcomeWeight) + .then((value) => resolve(value)) + .catch((error) => reject(error)); }); - } - provideUserConsent(consent) { - return new Promise((resolve, reject) => { - if (!this.doesOneSignalExist()) { - this.ngOneSignalFunctionQueue.push({ - name: 'provideUserConsent', - args: arguments, - promiseResolver: resolve, - }); - return; - } - window.OneSignal.push(() => { - window.OneSignal.provideUserConsent(consent) - .then((value) => resolve(value)) - .catch((error) => reject(error)); - }); + }); +} +function sessionSendUniqueOutcome(outcomeName) { + return new Promise((resolve, reject) => { + var _a; + if (isOneSignalScriptFailed) { + reject(); + } + (_a = window.OneSignalDeferred) === null || _a === void 0 ? void 0 : _a.push((oneSignal) => { + oneSignal.Session.sendUniqueOutcome(outcomeName) + .then((value) => resolve(value)) + .catch((error) => reject(error)); }); - } - getEmailId(callback) { - return new Promise((resolve, reject) => { - if (!this.doesOneSignalExist()) { - this.ngOneSignalFunctionQueue.push({ - name: 'getEmailId', - args: arguments, - promiseResolver: resolve, - }); - return; - } - window.OneSignal.push(() => { - window.OneSignal.getEmailId(callback) - .then((value) => resolve(value)) - .catch((error) => reject(error)); - }); + }); +} +function userAddAlias(label, id) { + var _a; + (_a = window.OneSignalDeferred) === null || _a === void 0 ? void 0 : _a.push((oneSignal) => { + oneSignal.User.addAlias(label, id); + }); +} +function userAddAliases(aliases) { + var _a; + (_a = window.OneSignalDeferred) === null || _a === void 0 ? void 0 : _a.push((oneSignal) => { + oneSignal.User.addAliases(aliases); + }); +} +function userRemoveAlias(label) { + var _a; + (_a = window.OneSignalDeferred) === null || _a === void 0 ? void 0 : _a.push((oneSignal) => { + oneSignal.User.removeAlias(label); + }); +} +function userRemoveAliases(labels) { + var _a; + (_a = window.OneSignalDeferred) === null || _a === void 0 ? void 0 : _a.push((oneSignal) => { + oneSignal.User.removeAliases(labels); + }); +} +function userAddEmail(email) { + var _a; + (_a = window.OneSignalDeferred) === null || _a === void 0 ? void 0 : _a.push((oneSignal) => { + oneSignal.User.addEmail(email); + }); +} +function userRemoveEmail(email) { + var _a; + (_a = window.OneSignalDeferred) === null || _a === void 0 ? void 0 : _a.push((oneSignal) => { + oneSignal.User.removeEmail(email); + }); +} +function userAddSms(smsNumber) { + var _a; + (_a = window.OneSignalDeferred) === null || _a === void 0 ? void 0 : _a.push((oneSignal) => { + oneSignal.User.addSms(smsNumber); + }); +} +function userRemoveSms(smsNumber) { + var _a; + (_a = window.OneSignalDeferred) === null || _a === void 0 ? void 0 : _a.push((oneSignal) => { + oneSignal.User.removeSms(smsNumber); + }); +} +function userAddTag(key, value) { + var _a; + (_a = window.OneSignalDeferred) === null || _a === void 0 ? void 0 : _a.push((oneSignal) => { + oneSignal.User.addTag(key, value); + }); +} +function userAddTags(tags) { + var _a; + (_a = window.OneSignalDeferred) === null || _a === void 0 ? void 0 : _a.push((oneSignal) => { + oneSignal.User.addTags(tags); + }); +} +function userRemoveTag(key) { + var _a; + (_a = window.OneSignalDeferred) === null || _a === void 0 ? void 0 : _a.push((oneSignal) => { + oneSignal.User.removeTag(key); + }); +} +function userRemoveTags(keys) { + var _a; + (_a = window.OneSignalDeferred) === null || _a === void 0 ? void 0 : _a.push((oneSignal) => { + oneSignal.User.removeTags(keys); + }); +} +function pushSubscriptionOptIn() { + return new Promise((resolve, reject) => { + var _a; + if (isOneSignalScriptFailed) { + reject(); + } + (_a = window.OneSignalDeferred) === null || _a === void 0 ? void 0 : _a.push((oneSignal) => { + oneSignal.User.PushSubscription.optIn() + .then((value) => resolve(value)) + .catch((error) => reject(error)); }); - } - getSMSId(callback) { - return new Promise((resolve, reject) => { - if (!this.doesOneSignalExist()) { - this.ngOneSignalFunctionQueue.push({ - name: 'getSMSId', - args: arguments, - promiseResolver: resolve, - }); - return; - } - window.OneSignal.push(() => { - window.OneSignal.getSMSId(callback) - .then((value) => resolve(value)) - .catch((error) => reject(error)); - }); + }); +} +function pushSubscriptionOptOut() { + return new Promise((resolve, reject) => { + var _a; + if (isOneSignalScriptFailed) { + reject(); + } + (_a = window.OneSignalDeferred) === null || _a === void 0 ? void 0 : _a.push((oneSignal) => { + oneSignal.User.PushSubscription.optOut() + .then((value) => resolve(value)) + .catch((error) => reject(error)); }); + }); +} +function pushSubscriptionAddEventListener(event, listener) { + var _a; + (_a = window.OneSignalDeferred) === null || _a === void 0 ? void 0 : _a.push((oneSignal) => { + oneSignal.User.PushSubscription.addEventListener(event, listener); + }); +} +function pushSubscriptionRemoveEventListener(event, listener) { + var _a; + (_a = window.OneSignalDeferred) === null || _a === void 0 ? void 0 : _a.push((oneSignal) => { + oneSignal.User.PushSubscription.removeEventListener(event, listener); + }); +} +function debugSetLogLevel(logLevel) { + var _a; + (_a = window.OneSignalDeferred) === null || _a === void 0 ? void 0 : _a.push((oneSignal) => { + oneSignal.Debug.setLogLevel(logLevel); + }); +} +const PushSubscriptionNamespace = { + get id() { var _a, _b, _c; return (_c = (_b = (_a = window.OneSignal) === null || _a === void 0 ? void 0 : _a.User) === null || _b === void 0 ? void 0 : _b.PushSubscription) === null || _c === void 0 ? void 0 : _c.id; }, + get token() { var _a, _b, _c; return (_c = (_b = (_a = window.OneSignal) === null || _a === void 0 ? void 0 : _a.User) === null || _b === void 0 ? void 0 : _b.PushSubscription) === null || _c === void 0 ? void 0 : _c.token; }, + get optedIn() { var _a, _b, _c; return (_c = (_b = (_a = window.OneSignal) === null || _a === void 0 ? void 0 : _a.User) === null || _b === void 0 ? void 0 : _b.PushSubscription) === null || _c === void 0 ? void 0 : _c.optedIn; }, + optIn: pushSubscriptionOptIn, + optOut: pushSubscriptionOptOut, + addEventListener: pushSubscriptionAddEventListener, + removeEventListener: pushSubscriptionRemoveEventListener, +}; +const UserNamespace = { + addAlias: userAddAlias, + addAliases: userAddAliases, + removeAlias: userRemoveAlias, + removeAliases: userRemoveAliases, + addEmail: userAddEmail, + removeEmail: userRemoveEmail, + addSms: userAddSms, + removeSms: userRemoveSms, + addTag: userAddTag, + addTags: userAddTags, + removeTag: userRemoveTag, + removeTags: userRemoveTags, + PushSubscription: PushSubscriptionNamespace, +}; +const SessionNamespace = { + sendOutcome: sessionSendOutcome, + sendUniqueOutcome: sessionSendUniqueOutcome, +}; +const DebugNamespace = { + setLogLevel: debugSetLogLevel, +}; +const SlidedownNamespace = { + promptPush: slidedownPromptPush, + promptPushCategories: slidedownPromptPushCategories, + promptSms: slidedownPromptSms, + promptEmail: slidedownPromptEmail, + promptSmsAndEmail: slidedownPromptSmsAndEmail, + addEventListener: slidedownAddEventListener, + removeEventListener: slidedownRemoveEventListener, +}; +const NotificationsNamespace = { + get permissionNative() { var _a, _b, _c; return (_c = (_b = (_a = window.OneSignal) === null || _a === void 0 ? void 0 : _a.Notifications) === null || _b === void 0 ? void 0 : _b.permissionNative) !== null && _c !== void 0 ? _c : 'default'; }, + get permission() { var _a, _b, _c; return (_c = (_b = (_a = window.OneSignal) === null || _a === void 0 ? void 0 : _a.Notifications) === null || _b === void 0 ? void 0 : _b.permission) !== null && _c !== void 0 ? _c : false; }, + setDefaultUrl: notificationsSetDefaultUrl, + setDefaultTitle: notificationsSetDefaultTitle, + isPushSupported, + requestPermission: notificationsRequestPermission, + addEventListener: notificationsAddEventListener, + removeEventListener: notificationsRemoveEventListener, +}; +/** + * @PublicApi + */ +function isPushSupported() { + return isPushNotificationsSupported(); +} +import { Injectable } from '@angular/core'; +import * as i0 from "@angular/core"; +const ONESIGNAL_SDK_ID = 'onesignal-sdk'; +const ONE_SIGNAL_SCRIPT_SRC = 'https://cdn.onesignal.com/sdks/web/v16/OneSignalSDK.page.js'; +// true if the script is successfully loaded from CDN. +let isOneSignalInitialized = false; +// true if the script fails to load from CDN. A separate flag is necessary +// to disambiguate between a CDN load failure and a delayed call to +// OneSignal#init. +let isOneSignalScriptFailed = false; +if (window) { + window.OneSignalDeferred = window.OneSignalDeferred || []; + addSDKScript(); +} +/** + * The following code is copied directly from the native SDK source file BrowserSupportsPush.ts + * S T A R T + */ +// Checks if the browser supports push notifications by checking if specific +// classes and properties on them exist +function isPushNotificationsSupported() { + return supportsVapidPush() || supportsSafariPush(); +} +function isMacOSSafariInIframe() { + // Fallback detection for Safari on macOS in an iframe context + return window.top !== window && // isContextIframe + navigator.vendor === 'Apple Computer, Inc.' && // isSafari + navigator.platform === 'MacIntel'; // isMacOS +} +function supportsSafariPush() { + return (window.safari && typeof window.safari.pushNotification !== 'undefined') || + isMacOSSafariInIframe(); +} +// Does the browser support the standard Push API +function supportsVapidPush() { + return typeof PushSubscriptionOptions !== 'undefined' && + PushSubscriptionOptions.prototype.hasOwnProperty('applicationServerKey'); +} +/* E N D */ +function handleOnError() { + isOneSignalScriptFailed = true; +} +function addSDKScript() { + const script = document.createElement('script'); + script.id = ONESIGNAL_SDK_ID; + script.defer = true; + script.src = ONE_SIGNAL_SCRIPT_SRC; + // Always resolve whether or not the script is successfully initialized. + // This is important for users who may block cdn.onesignal.com w/ adblock. + script.onerror = () => { + handleOnError(); + }; + document.head.appendChild(script); +} +export class OneSignal { + constructor() { + this.User = UserNamespace; + this.Session = SessionNamespace; + this.Debug = DebugNamespace; + this.Slidedown = SlidedownNamespace; + this.Notifications = NotificationsNamespace; + this.login = oneSignalLogin; + this.logout = oneSignalLogout; + this.setConsentGiven = oneSignalSetConsentGiven; + this.setConsentRequired = oneSignalSetConsentRequired; } - sendOutcome(outcomeName, outcomeWeight) { - return new Promise((resolve, reject) => { - if (!this.doesOneSignalExist()) { - this.ngOneSignalFunctionQueue.push({ - name: 'sendOutcome', - args: arguments, - promiseResolver: resolve, + /* P U B L I C */ + /** + * @PublicApi + */ + init(options) { + if (isOneSignalInitialized) { + return Promise.reject(`OneSignal is already initialized.`); + } + if (!options || !options.appId) { + throw new Error('You need to provide your OneSignal appId.'); + } + if (!document) { + return Promise.reject(`Document is not defined.`); + } + return new Promise((resolve) => { + var _a; + (_a = window.OneSignalDeferred) === null || _a === void 0 ? void 0 : _a.push((oneSignal) => { + oneSignal.init(options).then(() => { + isOneSignalInitialized = true; + resolve(); }); - return; - } - window.OneSignal.push(() => { - window.OneSignal.sendOutcome(outcomeName, outcomeWeight) - .then((value) => resolve(value)) - .catch((error) => reject(error)); }); }); } @@ -668,4 +474,4 @@ OneSignal.decorators = [ },] } ]; OneSignal.ctorParameters = () => []; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib25lc2lnbmFsLW5neC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvb25lc2lnbmFsLW5neC9zcmMvbGliL29uZXNpZ25hbC1uZ3guc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUErQkEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFDM0MsTUFBTSxnQkFBZ0IsR0FBRyxlQUFlLENBQUM7QUFDekMsTUFBTSxxQkFBcUIsR0FBRyxnREFBZ0QsQ0FBQztBQUMvRSxNQUFNLHlCQUF5QixHQUFHLG1DQUFtQyxDQUFDO0FBQ3RFLE1BQU0sV0FBVyxHQUFHLEVBQUUsQ0FBQztBQXFCdkIsTUFBTSxPQUFPLFNBQVM7SUFJcEI7UUFIUSwyQkFBc0IsR0FBRyxLQUFLLENBQUM7UUFDL0IsNkJBQXdCLEdBQTZCLEVBQUUsQ0FBQztRQUloRSxtQkFBbUI7UUFFWCxpQkFBWSxHQUFHLEdBQUcsRUFBRTtZQUMxQixNQUFNLE1BQU0sR0FBRyxRQUFRLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQ2hELE1BQU0sQ0FBQyxFQUFFLEdBQUcsZ0JBQWdCLENBQUM7WUFDN0IsTUFBTSxDQUFDLEdBQUcsR0FBRyxxQkFBcUIsQ0FBQztZQUNuQyxNQUFNLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQztZQUNwQixRQUFRLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNwQyxDQUFDLENBQUE7UUFFTyx1QkFBa0IsR0FBRyxHQUFHLEVBQUU7WUFDaEMsSUFBSSxNQUFNLENBQUMsU0FBUyxFQUFFO2dCQUNwQixPQUFPLElBQUksQ0FBQzthQUNiO1lBQ0QsT0FBTyxLQUFLLENBQUM7UUFDZixDQUFDLENBQUE7UUFFTyxvQ0FBK0IsR0FBRyxHQUFHLEVBQUU7WUFDN0MsSUFBSSxDQUFDLHdCQUF3QixDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsRUFB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QkFDSCxPQUFPO2FBQ1I7WUFFRCxNQUFNLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUU7Z0JBQ3pCLE1BQU0sQ0FBQyxTQUFTLENBQUMsV0FBVyxDQUFDLFdBQVcsRUFBRSxhQUFhLENBQUM7cUJBQ3JELElBQUksQ0FBQyxDQUFDLEtBQW9CLEVBQUUsRUFBRSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztxQkFDOUMsS0FBSyxDQUFDLENBQUMsS0FBWSxFQUFFLEVBQUUsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztZQUM1QyxDQUFDLENBQUMsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs7OztZQXJ1QkYsVUFBVSxTQUFDO2dCQUNWLFVBQVUsRUFBRSxNQUFNO2FBQ25CIiwic291cmNlc0NvbnRlbnQiOlsidHlwZSBBY3Rpb248VD4gPSAoaXRlbTogVCkgPT4gdm9pZDtcbmludGVyZmFjZSBBdXRvUHJvbXB0T3B0aW9ucyB7IGZvcmNlPzogYm9vbGVhbjsgZm9yY2VTbGlkZWRvd25PdmVyTmF0aXZlPzogYm9vbGVhbjsgc2xpZGVkb3duUHJvbXB0T3B0aW9ucz86IElPbmVTaWduYWxBdXRvUHJvbXB0T3B0aW9uczsgfVxuaW50ZXJmYWNlIFJlZ2lzdGVyT3B0aW9ucyB7IG1vZGFsUHJvbXB0PzogYm9vbGVhbjsgaHR0cFBlcm1pc3Npb25SZXF1ZXN0PzogYm9vbGVhbjsgc2xpZGVkb3duPzogYm9vbGVhbjsgYXV0b0FjY2VwdD86IGJvb2xlYW4gfVxuaW50ZXJmYWNlIFNldFNNU09wdGlvbnMgeyBpZGVudGlmaWVyQXV0aEhhc2g/OiBzdHJpbmc7IH1cbmludGVyZmFjZSBTZXRFbWFpbE9wdGlvbnMgeyBpZGVudGlmaWVyQXV0aEhhc2g/OiBzdHJpbmc7IGVtYWlsQXV0aEhhc2g/OiBzdHJpbmc7IH1cbmludGVyZmFjZSBUYWdzT2JqZWN0PFQ+IHsgW2tleTogc3RyaW5nXTogVDsgfVxuaW50ZXJmYWNlIElPbmVTaWduYWxBdXRvUHJvbXB0T3B0aW9ucyB7IGZvcmNlPzogYm9vbGVhbjsgZm9yY2VTbGlkZWRvd25PdmVyTmF0aXZlPzogYm9vbGVhbjsgaXNJblVwZGF0ZU1vZGU/OiBib29sZWFuOyBjYXRlZ29yeU9wdGlvbnM/OiBJT25lU2lnbmFsQ2F0ZWdvcmllczsgfVxuaW50ZXJmYWNlIElPbmVTaWduYWxDYXRlZ29yaWVzIHsgcG9zaXRpdmVVcGRhdGVCdXR0b246IHN0cmluZzsgbmVnYXRpdmVVcGRhdGVCdXR0b246IHN0cmluZzsgc2F2aW5nQnV0dG9uVGV4dDogc3RyaW5nOyBlcnJvckJ1dHRvblRleHQ6IHN0cmluZzsgdXBkYXRlTWVzc2FnZTogc3RyaW5nOyB0YWdzOiBJT25lU2lnbmFsVGFnQ2F0ZWdvcnlbXTsgfVxuaW50ZXJmYWNlIElPbmVTaWduYWxUYWdDYXRlZ29yeSB7IHRhZzogc3RyaW5nOyBsYWJlbDogc3RyaW5nOyBjaGVja2VkPzogYm9vbGVhbjsgfVxuXG5pbnRlcmZhY2UgSUluaXRPYmplY3Qge1xuICBhcHBJZDogc3RyaW5nO1xuICBzdWJkb21haW5OYW1lPzogc3RyaW5nO1xuICByZXF1aXJlc1VzZXJQcml2YWN5Q29uc2VudD86IGJvb2xlYW47XG4gIHByb21wdE9wdGlvbnM/OiBvYmplY3Q7XG4gIHdlbGNvbWVOb3RpZmljYXRpb24/OiBvYmplY3Q7XG4gIG5vdGlmeUJ1dHRvbj86IG9iamVjdDtcbiAgcGVyc2lzdE5vdGlmaWNhdGlvbj86IGJvb2xlYW47XG4gIHdlYmhvb2tzPzogb2JqZWN0O1xuICBhdXRvUmVzdWJzY3JpYmU/OiBib29sZWFuO1xuICBhdXRvUmVnaXN0ZXI/OiBib29sZWFuO1xuICBub3RpZmljYXRpb25DbGlja0hhbmRsZXJNYXRjaD86IHN0cmluZztcbiAgbm90aWZpY2F0aW9uQ2xpY2tIYW5kbGVyQWN0aW9uPzogc3RyaW5nO1xuICBzZXJ2aWNlV29ya2VyUGFyYW0/OiB7IHNjb3BlOiBzdHJpbmcgfTtcbiAgc2VydmljZVdvcmtlclBhdGg/OiBzdHJpbmc7XG4gIHNlcnZpY2VXb3JrZXJVcGRhdGVyUGF0aD86IHN0cmluZztcbiAgcGF0aD86IHN0cmluZztcbiAgYWxsb3dMb2NhbGhvc3RBc1NlY3VyZU9yaWdpbj86IGJvb2xlYW47XG4gIFtrZXk6IHN0cmluZ106IGFueTtcbn1cblxuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuY29uc3QgT05FU0lHTkFMX1NES19JRCA9ICdvbmVzaWduYWwtc2RrJztcbmNvbnN0IE9ORV9TSUdOQUxfU0NSSVBUX1NSQyA9ICdodHRwczovL2Nkbi5vbmVzaWduYWwuY29tL3Nka3MvT25lU2lnbmFsU0RLLmpzJztcbmNvbnN0IE9ORVNJR05BTF9OT1RfU0VUVVBfRVJST1IgPSAnT25lU2lnbmFsIGlzIG5vdCBzZXR1cCBjb3JyZWN0bHkuJztcbmNvbnN0IE1BWF9USU1FT1VUID0gMzA7XG5cbmRlY2xhcmUgZ2xvYmFsIHtcbiAgaW50ZXJmYWNlIFdpbmRvdyB7XG4gICAgT25lU2lnbmFsOiBhbnk7XG4gIH1cbn1cblxuaW50ZXJmYWNlIElPbmVTaWduYWxGdW5jdGlvbkNhbGwge1xuICBuYW1lOiBzdHJpbmc7XG4gIGFyZ3M6IElBcmd1bWVudHM7XG4gIHByb21pc2VSZXNvbHZlcj86IEZ1bmN0aW9uO1xufVxuXG5pbnRlcmZhY2UgSU9uZVNpZ25hbCB7XG4gIFtrZXk6IHN0cmluZ106IGFueTtcbn1cblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgT25lU2lnbmFsIGltcGxlbWVudHMgSU9uZVNpZ25hbCB7XG4gIHByaXZhdGUgaXNPbmVTaWduYWxJbml0aWFsaXplZCA9IGZhbHNlO1xuICBwcml2YXRlIG5nT25lU2lnbmFsRnVuY3Rpb25RdWV1ZTogSU9uZVNpZ25hbEZ1bmN0aW9uQ2FsbFtdID0gW107XG5cbiAgY29uc3RydWN0b3IoKSB7IH1cblxuICAvKiBIIEUgTCBQIEUgUiBTICovXG5cbiAgcHJpdmF0ZSBpbmplY3RTY3JpcHQgPSAoKSA9PiB7XG4gICAgY29uc3Qgc2NyaXB0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc2NyaXB0Jyk7XG4gICAgc2NyaXB0LmlkID0gT05FU0lHTkFMX1NES19JRDtcbiAgICBzY3JpcHQuc3JjID0gT05FX1NJR05BTF9TQ1JJUFRfU1JDO1xuICAgIHNjcmlwdC5hc3luYyA9IHRydWU7XG4gICAgZG9jdW1lbnQuaGVhZC5hcHBlbmRDaGlsZChzY3JpcHQpO1xuICB9XG5cbiAgcHJpdmF0ZSBkb2VzT25lU2lnbmFsRXhpc3QgPSAoKSA9PiB7XG4gICAgaWYgKHdpbmRvdy5PbmVTaWduYWwpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBwcml2YXRlIHByb2Nlc3NRdWV1ZWRPbmVTaWduYWxGdW5jdGlvbnMgPSAoKSA9PiB7XG4gICAgdGhpcy5uZ09uZVNpZ25hbEZ1bmN0aW9uUXVldWUuZm9yRWFjaChlbGVtZW50ID0+IHtcbiAgICAgIGNvbnN0IHsgbmFtZSwgYXJncywgcHJvbWlzZVJlc29sdmVyIH0gPSBlbGVtZW50O1xuXG4gICAgICBpZiAoISFwcm9taXNlUmVzb2x2ZXIpIHtcbiAgICAgICAgKHRoaXMgYXMgSU9uZVNpZ25hbClbbmFtZV0oLi4uYXJncykudGhlbigocmVzdWx0OiBhbnkpID0+IHtcbiAgICAgICAgICBwcm9taXNlUmVzb2x2ZXIocmVzdWx0KTtcbiAgICAgICAgfSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB3aW5kb3cuT25lU2lnbmFsW25hbWVdKC4uLmFyZ3MpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBzZXR1cE9uZVNpZ25hbElmTWlzc2luZyA9ICgpID0+IHtcbiAgICBpZiAoIXRoaXMuZG9lc09uZVNpZ25hbEV4aXN0KCkpIHtcbiAgICAgIHdpbmRvdy5PbmVTaWduYWwgPSB3aW5kb3cuT25lU2lnbmFsIHx8IFtdO1xuICAgIH1cbiAgfVxuXG4gIC8qIFAgVSBCIEwgSSBDICovXG5cbiAgaW5pdChvcHRpb25zOiBJSW5pdE9iamVjdCk6IFByb21pc2U8dm9pZD4ge1xuICAgIHJldHVybiBuZXcgUHJvbWlzZTx2b2lkPihyZXNvbHZlID0+IHtcbiAgICAgIGlmICh0aGlzLmlzT25lU2lnbmFsSW5pdGlhbGl6ZWQpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICB0aGlzLmluamVjdFNjcmlwdCgpO1xuICAgICAgdGhpcy5zZXR1cE9uZVNpZ25hbElmTWlzc2luZygpO1xuICAgICAgd2luZG93Lk9uZVNpZ25hbC5wdXNoKCgpID0+IHtcbiAgICAgICAgd2luZG93Lk9uZVNpZ25hbC5pbml0KG9wdGlvbnMpO1xuICAgICAgfSk7XG5cbiAgICAgIGNvbnN0IHRpbWVvdXQgPSBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgY29uc29sZS5lcnJvcihPTkVTSUdOQUxfTk9UX1NFVFVQX0VSUk9SKTtcbiAgICAgIH0sIE1BWF9USU1FT1VUICogMV8wMDApO1xuXG4gICAgICB3aW5kb3cuT25lU2lnbmFsLnB1c2goKCkgPT4ge1xuICAgICAgICBjbGVhclRpbWVvdXQodGltZW91dCk7XG4gICAgICAgIHRoaXMuaXNPbmVTaWduYWxJbml0aWFsaXplZCA9IHRydWU7XG4gICAgICAgIHRoaXMucHJvY2Vzc1F1ZXVlZE9uZVNpZ25hbEZ1bmN0aW9ucygpO1xuICAgICAgICByZXNvbHZlKCk7XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfVxuXG5cbiAgb24oZXZlbnQ6IHN0cmluZywgbGlzdGVuZXI6IChldmVudERhdGE/OiBhbnkpID0+IHZvaWQpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuZG9lc09uZVNpZ25hbEV4aXN0KCkpIHtcbiAgICAgIHRoaXMubmdPbmVTaWduYWxGdW5jdGlvblF1ZXVlLnB1c2goe1xuICAgICAgICBuYW1lOiAnb24nLFxuICAgICAgICBhcmdzOiBhcmd1bWVudHMsXG4gICAgICB9KTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB3aW5kb3cuT25lU2lnbmFsLnB1c2goKCkgPT4ge1xuICAgICAgd2luZG93Lk9uZVNpZ25hbC5vbihldmVudCwgbGlzdGVuZXIpO1xuICAgIH0pO1xuICB9XG5cbiAgb2ZmKGV2ZW50OiBzdHJpbmcsIGxpc3RlbmVyOiAoZXZlbnREYXRhPzogYW55KSA9PiB2b2lkKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLmRvZXNPbmVTaWduYWxFeGlzdCgpKSB7XG4gICAgICB0aGlzLm5nT25lU2lnbmFsRnVuY3Rpb25RdWV1ZS5wdXNoKHtcbiAgICAgICAgbmFtZTogJ29mZicsXG4gICAgICAgIGFyZ3M6IGFyZ3VtZW50cyxcbiAgICAgIH0pO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHdpbmRvdy5PbmVTaWduYWwucHVzaCgoKSA9PiB7XG4gICAgICB3aW5kb3cuT25lU2lnbmFsLm9mZihldmVudCwgbGlzdGVuZXIpO1xuICAgIH0pO1xuICB9XG5cbiAgb25jZShldmVudDogc3RyaW5nLCBsaXN0ZW5lcjogKGV2ZW50RGF0YT86IGFueSkgPT4gdm9pZCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5kb2VzT25lU2lnbmFsRXhpc3QoKSkge1xuICAgICAgdGhpcy5uZ09uZVNpZ25hbEZ1bmN0aW9uUXVldWUucHVzaCh7XG4gICAgICAgIG5hbWU6ICdvbmNlJyxcbiAgICAgICAgYXJnczogYXJndW1lbnRzLFxuICAgICAgfSk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgd2luZG93Lk9uZVNpZ25hbC5wdXNoKCgpID0+IHtcbiAgICAgIHdpbmRvdy5PbmVTaWduYWwub25jZShldmVudCwgbGlzdGVuZXIpO1xuICAgIH0pO1xuICB9XG5cbiAgaXNQdXNoTm90aWZpY2F0aW9uc0VuYWJsZWQoY2FsbGJhY2s/OiBBY3Rpb248Ym9vbGVhbj4pOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgaWYgKCF0aGlzLmRvZXNPbmVTaWduYWxFeGlzdCgpKSB7XG4gICAgICAgIHRoaXMubmdPbmVTaWduYWxGdW5jdGlvblF1ZXVlLnB1c2goe1xuICAgICAgICAgIG5hbWU6ICdpc1B1c2hOb3RpZmljYXRpb25zRW5hYmxlZCcsXG4gICAgICAgICAgYXJnczogYXJndW1lbnRzLFxuICAgICAgICAgIHByb21pc2VSZXNvbHZlcjogcmVzb2x2ZSxcbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgd2luZG93Lk9uZVNpZ25hbC5wdXNoKCgpID0+IHtcbiAgICAgICAgd2luZG93Lk9uZVNpZ25hbC5pc1B1c2hOb3RpZmljYXRpb25zRW5hYmxlZChjYWxsYmFjaylcbiAgICAgICAgICAudGhlbigodmFsdWU6IFByb21pc2U8Ym9vbGVhbj4pID0+IHJlc29sdmUodmFsdWUpKVxuICAgICAgICAgIC5jYXRjaCgoZXJyb3I6IEVycm9yKSA9PiByZWplY3QoZXJyb3IpKTtcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgc2hvd0h0dHBQcm9tcHQob3B0aW9ucz86IEF1dG9Qcm9tcHRPcHRpb25zKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgIGlmICghdGhpcy5kb2VzT25lU2lnbmFsRXhpc3QoKSkge1xuICAgICAgICB0aGlzLm5nT25lU2lnbmFsRnVuY3Rpb25RdWV1ZS5wdXNoKHtcbiAgICAgICAgICBuYW1lOiAnc2hvd0h0dHBQcm9tcHQnLFxuICAgICAgICAgIGFyZ3M6IGFyZ3VtZW50cyxcbiAgICAgICAgICBwcm9taXNlUmVzb2x2ZXI6IHJlc29sdmUsXG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIHdpbmRvdy5PbmVTaWduYWwucHVzaCgoKSA9PiB7XG4gICAgICAgIHdpbmRvdy5PbmVTaWduYWwuc2hvd0h0dHBQcm9tcHQob3B0aW9ucylcbiAgICAgICAgICAudGhlbigodmFsdWU6IFByb21pc2U8dm9pZD4pID0+IHJlc29sdmUodmFsdWUpKVxuICAgICAgICAgIC5jYXRjaCgoZXJyb3I6IEVycm9yKSA9PiByZWplY3QoZXJyb3IpKTtcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgcmVnaXN0ZXJGb3JQdXNoTm90aWZpY2F0aW9ucyhvcHRpb25zPzogUmVnaXN0ZXJPcHRpb25zKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgIGlmICghdGhpcy5kb2VzT25lU2lnbmFsRXhpc3QoKSkge1xuICAgICAgICB0aGlzLm5nT25lU2lnbmFsRnVuY3Rpb25RdWV1ZS5wdXNoKHtcbiAgICAgICAgICBuYW1lOiAncmVnaXN0ZXJGb3JQdXNoTm90aWZpY2F0aW9ucycsXG4gICAgICAgICAgYXJnczogYXJndW1lbnRzLFxuICAgICAgICAgIHByb21pc2VSZXNvbHZlcjogcmVzb2x2ZSxcbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgd2luZG93Lk9uZVNpZ25hbC5wdXNoKCgpID0+IHtcbiAgICAgICAgd2luZG93Lk9uZVNpZ25hbC5yZWdpc3RlckZvclB1c2hOb3RpZmljYXRpb25zKG9wdGlvbnMpXG4gICAgICAgICAgLnRoZW4oKHZhbHVlOiBQcm9taXNlPHZvaWQ+KSA9PiByZXNvbHZlKHZhbHVlKSlcbiAgICAgICAgICAuY2F0Y2goKGVycm9yOiBFcnJvcikgPT4gcmVqZWN0KGVycm9yKSk7XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfVxuXG4gIHNldERlZmF1bHROb3RpZmljYXRpb25VcmwodXJsOiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgaWYgKCF0aGlzLmRvZXNPbmVTaWduYWxFeGlzdCgpKSB7XG4gICAgICAgIHRoaXMubmdPbmVTaWduYWxGdW5jdGlvblF1ZXVlLnB1c2goe1xuICAgICAgICAgIG5hbWU6ICdzZXREZWZhdWx0Tm90aWZpY2F0aW9uVXJsJyxcbiAgICAgICAgICBhcmdzOiBhcmd1bWVudHMsXG4gICAgICAgICAgcHJvbWlzZVJlc29sdmVyOiByZXNvbHZlLFxuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICB3aW5kb3cuT25lU2lnbmFsLnB1c2goKCkgPT4ge1xuICAgICAgICB3aW5kb3cuT25lU2lnbmFsLnNldERlZmF1bHROb3RpZmljYXRpb25VcmwodXJsKVxuICAgICAgICAgIC50aGVuKCh2YWx1ZTogUHJvbWlzZTx2b2lkPikgPT4gcmVzb2x2ZSh2YWx1ZSkpXG4gICAgICAgICAgLmNhdGNoKChlcnJvcjogRXJyb3IpID0+IHJlamVjdChlcnJvcikpO1xuICAgICAgfSk7XG4gICAgfSk7XG4gIH1cblxuICBzZXREZWZhdWx0VGl0bGUodGl0bGU6IHN0cmluZyk6IFByb21pc2U8dm9pZD4ge1xuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICBpZiAoIXRoaXMuZG9lc09uZVNpZ25hbEV4aXN0KCkpIHtcbiAgICAgICAgdGhpcy5uZ09uZVNpZ25hbEZ1bmN0aW9uUXVldWUucHVzaCh7XG4gICAgICAgICAgbmFtZTogJ3NldERlZmF1bHRUaXRsZScsXG4gICAgICAgICAgYXJnczogYXJndW1lbnRzLFxuICAgICAgICAgIHByb21pc2VSZXNvbHZlcjogcmVzb2x2ZSxcbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgd2luZG93Lk9uZVNpZ25hbC5wdXNoKCgpID0+IHtcbiAgICAgICAgd2luZG93Lk9uZVNpZ25hbC5zZXREZWZhdWx0VGl0bGUodGl0bGUpXG4gICAgICAgICAgLnRoZW4oKHZhbHVlOiBQcm9taXNlPHZvaWQ+KSA9PiByZXNvbHZlKHZhbHVlKSlcbiAgICAgICAgICAuY2F0Y2goKGVycm9yOiBFcnJvcikgPT4gcmVqZWN0KGVycm9yKSk7XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfVxuXG4gIGdldFRhZ3MoY2FsbGJhY2s/OiBBY3Rpb248YW55Pik6IFByb21pc2U8dm9pZD4ge1xuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICBpZiAoIXRoaXMuZG9lc09uZVNpZ25hbEV4aXN0KCkpIHtcbiAgICAgICAgdGhpcy5uZ09uZVNpZ25hbEZ1bmN0aW9uUXVldWUucHVzaCh7XG4gICAgICAgICAgbmFtZTogJ2dldFRhZ3MnLFxuICAgICAgICAgIGFyZ3M6IGFyZ3VtZW50cyxcbiAgICAgICAgICBwcm9taXNlUmVzb2x2ZXI6IHJlc29sdmUsXG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIHdpbmRvdy5PbmVTaWduYWwucHVzaCgoKSA9PiB7XG4gICAgICAgIHdpbmRvdy5PbmVTaWduYWwuZ2V0VGFncyhjYWxsYmFjaylcbiAgICAgICAgICAudGhlbigodmFsdWU6IFByb21pc2U8dm9pZD4pID0+IHJlc29sdmUodmFsdWUpKVxuICAgICAgICAgIC5jYXRjaCgoZXJyb3I6IEVycm9yKSA9PiByZWplY3QoZXJyb3IpKTtcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgc2VuZFRhZyhrZXk6IHN0cmluZywgdmFsdWU6IGFueSwgY2FsbGJhY2s/OiBBY3Rpb248T2JqZWN0Pik6IFByb21pc2U8T2JqZWN0IHwgbnVsbD4ge1xuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICBpZiAoIXRoaXMuZG9lc09uZVNpZ25hbEV4aXN0KCkpIHtcbiAgICAgICAgdGhpcy5uZ09uZVNpZ25hbEZ1bmN0aW9uUXVldWUucHVzaCh7XG4gICAgICAgICAgbmFtZTogJ3NlbmRUYWcnLFxuICAgICAgICAgIGFyZ3M6IGFyZ3VtZW50cyxcbiAgICAgICAgICBwcm9taXNlUmVzb2x2ZXI6IHJlc29sdmUsXG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIHdpbmRvdy5PbmVTaWduYWwucHVzaCgoKSA9PiB7XG4gICAgICAgIHdpbmRvdy5PbmVTaWduYWwuc2VuZFRhZyhrZXksIHZhbHVlLCBjYWxsYmFjaylcbiAgICAgICAgICAudGhlbigodmFsdWU6IFByb21pc2U8T2JqZWN0IHwgbnVsbD4pID0+IHJlc29sdmUodmFsdWUpKVxuICAgICAgICAgIC5jYXRjaCgoZXJyb3I6IEVycm9yKSA9PiByZWplY3QoZXJyb3IpKTtcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgc2VuZFRhZ3ModGFnczogVGFnc09iamVjdDxhbnk+LCBjYWxsYmFjaz86IEFjdGlvbjxPYmplY3Q+KTogUHJvbWlzZTxPYmplY3QgfCBudWxsPiB7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgIGlmICghdGhpcy5kb2VzT25lU2lnbmFsRXhpc3QoKSkge1xuICAgICAgICB0aGlzLm5nT25lU2lnbmFsRnVuY3Rpb25RdWV1ZS5wdXNoKHtcbiAgICAgICAgICBuYW1lOiAnc2VuZFRhZ3MnLFxuICAgICAgICAgIGFyZ3M6IGFyZ3VtZW50cyxcbiAgICAgICAgICBwcm9taXNlUmVzb2x2ZXI6IHJlc29sdmUsXG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIHdpbmRvdy5PbmVTaWduYWwucHVzaCgoKSA9PiB7XG4gICAgICAgIHdpbmRvdy5PbmVTaWduYWwuc2VuZFRhZ3ModGFncywgY2FsbGJhY2spXG4gICAgICAgICAgLnRoZW4oKHZhbHVlOiBQcm9taXNlPE9iamVjdCB8IG51bGw+KSA9PiByZXNvbHZlKHZhbHVlKSlcbiAgICAgICAgICAuY2F0Y2goKGVycm9yOiBFcnJvcikgPT4gcmVqZWN0KGVycm9yKSk7XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfVxuXG4gIGRlbGV0ZVRhZyh0YWc6IHN0cmluZyk6IFByb21pc2U8QXJyYXk8c3RyaW5nPj4ge1xuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICBpZiAoIXRoaXMuZG9lc09uZVNpZ25hbEV4aXN0KCkpIHtcbiAgICAgICAgdGhpcy5uZ09uZVNpZ25hbEZ1bmN0aW9uUXVldWUucHVzaCh7XG4gICAgICAgICAgbmFtZTogJ2RlbGV0ZVRhZycsXG4gICAgICAgICAgYXJnczogYXJndW1lbnRzLFxuICAgICAgICAgIHByb21pc2VSZXNvbHZlcjogcmVzb2x2ZSxcbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgd2luZG93Lk9uZVNpZ25hbC5wdXNoKCgpID0+IHtcbiAgICAgICAgd2luZG93Lk9uZVNpZ25hbC5kZWxldGVUYWcodGFnKVxuICAgICAgICAgIC50aGVuKCh2YWx1ZTogUHJvbWlzZTxBcnJheTxzdHJpbmc+PikgPT4gcmVzb2x2ZSh2YWx1ZSkpXG4gICAgICAgICAgLmNhdGNoKChlcnJvcjogRXJyb3IpID0+IHJlamVjdChlcnJvcikpO1xuICAgICAgfSk7XG4gICAgfSk7XG4gIH1cblxuICBkZWxldGVUYWdzKHRhZ3M6IEFycmF5PHN0cmluZz4sIGNhbGxiYWNrPzogQWN0aW9uPEFycmF5PHN0cmluZz4+KTogUHJvbWlzZTxBcnJheTxzdHJpbmc+PiB7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgIGlmICghdGhpcy5kb2VzT25lU2lnbmFsRXhpc3QoKSkge1xuICAgICAgICB0aGlzLm5nT25lU2lnbmFsRnVuY3Rpb25RdWV1ZS5wdXNoKHtcbiAgICAgICAgICBuYW1lOiAnZGVsZXRlVGFncycsXG4gICAgICAgICAgYXJnczogYXJndW1lbnRzLFxuICAgICAgICAgIHByb21pc2VSZXNvbHZlcjogcmVzb2x2ZSxcbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgd2luZG93Lk9uZVNpZ25hbC5wdXNoKCgpID0+IHtcbiAgICAgICAgd2luZG93Lk9uZVNpZ25hbC5kZWxldGVUYWdzKHRhZ3MsIGNhbGxiYWNrKVxuICAgICAgICAgIC50aGVuKCh2YWx1ZTogUHJvbWlzZTxBcnJheTxzdHJpbmc+PikgPT4gcmVzb2x2ZSh2YWx1ZSkpXG4gICAgICAgICAgLmNhdGNoKChlcnJvcjogRXJyb3IpID0+IHJlamVjdChlcnJvcikpO1xuICAgICAgfSk7XG4gICAgfSk7XG4gIH1cblxuICBhZGRMaXN0ZW5lckZvck5vdGlmaWNhdGlvbk9wZW5lZChjYWxsYmFjaz86IEFjdGlvbjxOb3RpZmljYXRpb24+KTogUHJvbWlzZTx2b2lkPiB7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgIGlmICghdGhpcy5kb2VzT25lU2lnbmFsRXhpc3QoKSkge1xuICAgICAgICB0aGlzLm5nT25lU2lnbmFsRnVuY3Rpb25RdWV1ZS5wdXNoKHtcbiAgICAgICAgICBuYW1lOiAnYWRkTGlzdGVuZXJGb3JOb3RpZmljYXRpb25PcGVuZWQnLFxuICAgICAgICAgIGFyZ3M6IGFyZ3VtZW50cyxcbiAgICAgICAgICBwcm9taXNlUmVzb2x2ZXI6IHJlc29sdmUsXG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIHdpbmRvdy5PbmVTaWduYWwucHVzaCgoKSA9PiB7XG4gICAgICAgIHdpbmRvdy5PbmVTaWduYWwuYWRkTGlzdGVuZXJGb3JOb3RpZmljYXRpb25PcGVuZWQoY2FsbGJhY2spXG4gICAgICAgICAgLnRoZW4oKHZhbHVlOiBQcm9taXNlPHZvaWQ+KSA9PiByZXNvbHZlKHZhbHVlKSlcbiAgICAgICAgICAuY2F0Y2goKGVycm9yOiBFcnJvcikgPT4gcmVqZWN0KGVycm9yKSk7XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfVxuXG4gIHNldFN1YnNjcmlwdGlvbihuZXdTdWJzY3JpcHRpb246IGJvb2xlYW4pOiBQcm9taXNlPHZvaWQ+IHtcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgaWYgKCF0aGlzLmRvZXNPbmVTaWduYWxFeGlzdCgpKSB7XG4gICAgICAgIHRoaXMubmdPbmVTaWduYWxGdW5jdGlvblF1ZXVlLnB1c2goe1xuICAgICAgICAgIG5hbWU6ICdzZXRTdWJzY3JpcHRpb24nLFxuICAgICAgICAgIGFyZ3M6IGFyZ3VtZW50cyxcbiAgICAgICAgICBwcm9taXNlUmVzb2x2ZXI6IHJlc29sdmUsXG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIHdpbmRvdy5PbmVTaWduYWwucHVzaCgoKSA9PiB7XG4gICAgICAgIHdpbmRvdy5PbmVTaWduYWwuc2V0U3Vic2NyaXB0aW9uKG5ld1N1YnNjcmlwdGlvbilcbiAgICAgICAgICAudGhlbigodmFsdWU6IFByb21pc2U8dm9pZD4pID0+IHJlc29sdmUodmFsdWUpKVxuICAgICAgICAgIC5jYXRjaCgoZXJyb3I6IEVycm9yKSA9PiByZWplY3QoZXJyb3IpKTtcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgc2hvd0h0dHBQZXJtaXNzaW9uUmVxdWVzdChvcHRpb25zPzogQXV0b1Byb21wdE9wdGlvbnMpOiBQcm9taXNlPGFueT4ge1xuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICBpZiAoIXRoaXMuZG9lc09uZVNpZ25hbEV4aXN0KCkpIHtcbiAgICAgICAgdGhpcy5uZ09uZVNpZ25hbEZ1bmN0aW9uUXVldWUucHVzaCh7XG4gICAgICAgICAgbmFtZTogJ3Nob3dIdHRwUGVybWlzc2lvblJlcXVlc3QnLFxuICAgICAgICAgIGFyZ3M6IGFyZ3VtZW50cyxcbiAgICAgICAgICBwcm9taXNlUmVzb2x2ZXI6IHJlc29sdmUsXG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIHdpbmRvdy5PbmVTaWduYWwucHVzaCgoKSA9PiB7XG4gICAgICAgIHdpbmRvdy5PbmVTaWduYWwuc2hvd0h0dHBQZXJtaXNzaW9uUmVxdWVzdChvcHRpb25zKVxuICAgICAgICAgIC50aGVuKCh2YWx1ZTogUHJvbWlzZTxhbnk+KSA9PiByZXNvbHZlKHZhbHVlKSlcbiAgICAgICAgICAuY2F0Y2goKGVycm9yOiBFcnJvcikgPT4gcmVqZWN0KGVycm9yKSk7XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfVxuXG4gIHNob3dOYXRpdmVQcm9tcHQoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgIGlmICghdGhpcy5kb2VzT25lU2lnbmFsRXhpc3QoKSkge1xuICAgICAgICB0aGlzLm5nT25lU2lnbmFsRnVuY3Rpb25RdWV1ZS5wdXNoKHtcbiAgICAgICAgICBuYW1lOiAnc2hvd05hdGl2ZVByb21wdCcsXG4gICAgICAgICAgYXJnczogYXJndW1lbnRzLFxuICAgICAgICAgIHByb21pc2VSZXNvbHZlcjogcmVzb2x2ZSxcbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgd2luZG93Lk9uZVNpZ25hbC5wdXNoKCgpID0+IHtcbiAgICAgICAgd2luZG93Lk9uZVNpZ25hbC5zaG93TmF0aXZlUHJvbXB0KClcbiAgICAgICAgICAudGhlbigodmFsdWU6IFByb21pc2U8dm9pZD4pID0+IHJlc29sdmUodmFsdWUpKVxuICAgICAgICAgIC5jYXRjaCgoZXJyb3I6IEVycm9yKSA9PiByZWplY3QoZXJyb3IpKTtcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgc2hvd1NsaWRlZG93blByb21wdChvcHRpb25zPzogQXV0b1Byb21wdE9wdGlvbnMpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgaWYgKCF0aGlzLmRvZXNPbmVTaWduYWxFeGlzdCgpKSB7XG4gICAgICAgIHRoaXMubmdPbmVTaWduYWxGdW5jdGlvblF1ZXVlLnB1c2goe1xuICAgICAgICAgIG5hbWU6ICdzaG93U2xpZGVkb3duUHJvbXB0JyxcbiAgICAgICAgICBhcmdzOiBhcmd1bWVudHMsXG4gICAgICAgICAgcHJvbWlzZVJlc29sdmVyOiByZXNvbHZlLFxuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICB3aW5kb3cuT25lU2lnbmFsLnB1c2goKCkgPT4ge1xuICAgICAgICB3aW5kb3cuT25lU2lnbmFsLnNob3dTbGlkZWRvd25Qcm9tcHQob3B0aW9ucylcbiAgICAgICAgICAudGhlbigodmFsdWU6IFByb21pc2U8dm9pZD4pID0+IHJlc29sdmUodmFsdWUpKVxuICAgICAgICAgIC5jYXRjaCgoZXJyb3I6IEVycm9yKSA9PiByZWplY3QoZXJyb3IpKTtcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgc2hvd0NhdGVnb3J5U2xpZGVkb3duKG9wdGlvbnM/OiBBdXRvUHJvbXB0T3B0aW9ucyk6IFByb21pc2U8dm9pZD4ge1xuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICBpZiAoIXRoaXMuZG9lc09uZVNpZ25hbEV4aXN0KCkpIHtcbiAgICAgICAgdGhpcy5uZ09uZVNpZ25hbEZ1bmN0aW9uUXVldWUucHVzaCh7XG4gICAgICAgICAgbmFtZTogJ3Nob3dDYXRlZ29yeVNsaWRlZG93bicsXG4gICAgICAgICAgYXJnczogYXJndW1lbnRzLFxuICAgICAgICAgIHByb21pc2VSZXNvbHZlcjogcmVzb2x2ZSxcbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgd2luZG93Lk9uZVNpZ25hbC5wdXNoKCgpID0+IHtcbiAgICAgICAgd2luZG93Lk9uZVNpZ25hbC5zaG93Q2F0ZWdvcnlTbGlkZWRvd24ob3B0aW9ucylcbiAgICAgICAgICAudGhlbigodmFsdWU6IFByb21pc2U8dm9pZD4pID0+IHJlc29sdmUodmFsdWUpKVxuICAgICAgICAgIC5jYXRjaCgoZXJyb3I6IEVycm9yKSA9PiByZWplY3QoZXJyb3IpKTtcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgc2hvd1Ntc1NsaWRlZG93bihvcHRpb25zPzogQXV0b1Byb21wdE9wdGlvbnMpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgaWYgKCF0aGlzLmRvZXNPbmVTaWduYWxFeGlzdCgpKSB7XG4gICAgICAgIHRoaXMubmdPbmVTaWduYWxGdW5jdGlvblF1ZXVlLnB1c2goe1xuICAgICAgICAgIG5hbWU6ICdzaG93U21zU2xpZGVkb3duJyxcbiAgICAgICAgICBhcmdzOiBhcmd1bWVudHMsXG4gICAgICAgICAgcHJvbWlzZVJlc29sdmVyOiByZXNvbHZlLFxuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICB3aW5kb3cuT25lU2lnbmFsLnB1c2goKCkgPT4ge1xuICAgICAgICB3aW5kb3cuT25lU2lnbmFsLnNob3dTbXNTbGlkZWRvd24ob3B0aW9ucylcbiAgICAgICAgICAudGhlbigodmFsdWU6IFByb21pc2U8dm9pZD4pID0+IHJlc29sdmUodmFsdWUpKVxuICAgICAgICAgIC5jYXRjaCgoZXJyb3I6IEVycm9yKSA9PiByZWplY3QoZXJyb3IpKTtcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgc2hvd0VtYWlsU2xpZGVkb3duKG9wdGlvbnM/OiBBdXRvUHJvbXB0T3B0aW9ucyk6IFByb21pc2U8dm9pZD4ge1xuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICBpZiAoIXRoaXMuZG9lc09uZVNpZ25hbEV4aXN0KCkpIHtcbiAgICAgICAgdGhpcy5uZ09uZVNpZ25hbEZ1bmN0aW9uUXVldWUucHVzaCh7XG4gICAgICAgICAgbmFtZTogJ3Nob3dFbWFpbFNsaWRlZG93bicsXG4gICAgICAgICAgYXJnczogYXJndW1lbnRzLFxuICAgICAgICAgIHByb21pc2VSZXNvbHZlcjogcmVzb2x2ZSxcbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgd2luZG93Lk9uZVNpZ25hbC5wdXNoKCgpID0+IHtcbiAgICAgICAgd2luZG93Lk9uZVNpZ25hbC5zaG93RW1haWxTbGlkZWRvd24ob3B0aW9ucylcbiAgICAgICAgICAudGhlbigodmFsdWU6IFByb21pc2U8dm9pZD4pID0+IHJlc29sdmUodmFsdWUpKVxuICAgICAgICAgIC5jYXRjaCgoZXJyb3I6IEVycm9yKSA9PiByZWplY3QoZXJyb3IpKTtcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgc2hvd1Ntc0FuZEVtYWlsU2xpZGVkb3duKG9wdGlvbnM/OiBBdXRvUHJvbXB0T3B0aW9ucyk6IFByb21pc2U8dm9pZD4ge1xuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICBpZiAoIXRoaXMuZG9lc09uZVNpZ25hbEV4aXN0KCkpIHtcbiAgICAgICAgdGhpcy5uZ09uZVNpZ25hbEZ1bmN0aW9uUXVldWUucHVzaCh7XG4gICAgICAgICAgbmFtZTogJ3Nob3dTbXNBbmRFbWFpbFNsaWRlZG93bicsXG4gICAgICAgICAgYXJnczogYXJndW1lbnRzLFxuICAgICAgICAgIHByb21pc2VSZXNvbHZlcjogcmVzb2x2ZSxcbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgd2luZG93Lk9uZVNpZ25hbC5wdXNoKCgpID0+IHtcbiAgICAgICAgd2luZG93Lk9uZVNpZ25hbC5zaG93U21zQW5kRW1haWxTbGlkZWRvd24ob3B0aW9ucylcbiAgICAgICAgICAudGhlbigodmFsdWU6IFByb21pc2U8dm9pZD4pID0+IHJlc29sdmUodmFsdWUpKVxuICAgICAgICAgIC5jYXRjaCgoZXJyb3I6IEVycm9yKSA9PiByZWplY3QoZXJyb3IpKTtcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgZ2V0Tm90aWZpY2F0aW9uUGVybWlzc2lvbihvbkNvbXBsZXRlPzogQWN0aW9uPE5vdGlmaWNhdGlvblBlcm1pc3Npb24+KTogUHJvbWlzZTxOb3RpZmljYXRpb25QZXJtaXNzaW9uPiB7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgIGlmICghdGhpcy5kb2VzT25lU2lnbmFsRXhpc3QoKSkge1xuICAgICAgICB0aGlzLm5nT25lU2lnbmFsRnVuY3Rpb25RdWV1ZS5wdXNoKHtcbiAgICAgICAgICBuYW1lOiAnZ2V0Tm90aWZpY2F0aW9uUGVybWlzc2lvbicsXG4gICAgICAgICAgYXJnczogYXJndW1lbnRzLFxuICAgICAgICAgIHByb21pc2VSZXNvbHZlcjogcmVzb2x2ZSxcbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgd2luZG93Lk9uZVNpZ25hbC5wdXNoKCgpID0+IHtcbiAgICAgICAgd2luZG93Lk9uZVNpZ25hbC5nZXROb3RpZmljYXRpb25QZXJtaXNzaW9uKG9uQ29tcGxldGUpXG4gICAgICAgICAgLnRoZW4oKHZhbHVlOiBQcm9taXNlPE5vdGlmaWNhdGlvblBlcm1pc3Npb24+KSA9PiByZXNvbHZlKHZhbHVlKSlcbiAgICAgICAgICAuY2F0Y2goKGVycm9yOiBFcnJvcikgPT4gcmVqZWN0KGVycm9yKSk7XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfVxuXG4gIGdldFVzZXJJZChjYWxsYmFjaz86IEFjdGlvbjxzdHJpbmcgfCB1bmRlZmluZWQgfCBudWxsPik6IFByb21pc2U8c3RyaW5nIHwgdW5kZWZpbmVkIHwgbnVsbD4ge1xuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICBpZiAoIXRoaXMuZG9lc09uZVNpZ25hbEV4aXN0KCkpIHtcbiAgICAgICAgdGhpcy5uZ09uZVNpZ25hbEZ1bmN0aW9uUXVldWUucHVzaCh7XG4gICAgICAgICAgbmFtZTogJ2dldFVzZXJJZCcsXG4gICAgICAgICAgYXJnczogYXJndW1lbnRzLFxuICAgICAgICAgIHByb21pc2VSZXNvbHZlcjogcmVzb2x2ZSxcbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgd2luZG93Lk9uZVNpZ25hbC5wdXNoKCgpID0+IHtcbiAgICAgICAgd2luZG93Lk9uZVNpZ25hbC5nZXRVc2VySWQoY2FsbGJhY2spXG4gICAgICAgICAgLnRoZW4oKHZhbHVlOiBQcm9taXNlPHN0cmluZyB8IHVuZGVmaW5lZCB8IG51bGw+KSA9PiByZXNvbHZlKHZhbHVlKSlcbiAgICAgICAgICAuY2F0Y2goKGVycm9yOiBFcnJvcikgPT4gcmVqZWN0KGVycm9yKSk7XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfVxuXG4gIGdldFN1YnNjcmlwdGlvbihjYWxsYmFjaz86IEFjdGlvbjxib29sZWFuPik6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICBpZiAoIXRoaXMuZG9lc09uZVNpZ25hbEV4aXN0KCkpIHtcbiAgICAgICAgdGhpcy5uZ09uZVNpZ25hbEZ1bmN0aW9uUXVldWUucHVzaCh7XG4gICAgICAgICAgbmFtZTogJ2dldFN1YnNjcmlwdGlvbicsXG4gICAgICAgICAgYXJnczogYXJndW1lbnRzLFxuICAgICAgICAgIHByb21pc2VSZXNvbHZlcjogcmVzb2x2ZSxcbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgd2luZG93Lk9uZVNpZ25hbC5wdXNoKCgpID0+IHtcbiAgICAgICAgd2luZG93Lk9uZVNpZ25hbC5nZXRTdWJzY3JpcHRpb24oY2FsbGJhY2spXG4gICAgICAgICAgLnRoZW4oKHZhbHVlOiBQcm9taXNlPGJvb2xlYW4+KSA9PiByZXNvbHZlKHZhbHVlKSlcbiAgICAgICAgICAuY2F0Y2goKGVycm9yOiBFcnJvcikgPT4gcmVqZWN0KGVycm9yKSk7XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfVxuXG4gIHNldEVtYWlsKGVtYWlsOiBzdHJpbmcsIG9wdGlvbnM/OiBTZXRFbWFpbE9wdGlvbnMpOiBQcm9taXNlPHN0cmluZ3xudWxsPiB7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgIGlmICghdGhpcy5kb2VzT25lU2lnbmFsRXhpc3QoKSkge1xuICAgICAgICB0aGlzLm5nT25lU2lnbmFsRnVuY3Rpb25RdWV1ZS5wdXNoKHtcbiAgICAgICAgICBuYW1lOiAnc2V0RW1haWwnLFxuICAgICAgICAgIGFyZ3M6IGFyZ3VtZW50cyxcbiAgICAgICAgICBwcm9taXNlUmVzb2x2ZXI6IHJlc29sdmUsXG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIHdpbmRvdy5PbmVTaWduYWwucHVzaCgoKSA9PiB7XG4gICAgICAgIHdpbmRvdy5PbmVTaWduYWwuc2V0RW1haWwoZW1haWwsIG9wdGlvbnMpXG4gICAgICAgICAgLnRoZW4oKHZhbHVlOiBQcm9taXNlPHN0cmluZ3xudWxsPikgPT4gcmVzb2x2ZSh2YWx1ZSkpXG4gICAgICAgICAgLmNhdGNoKChlcnJvcjogRXJyb3IpID0+IHJlamVjdChlcnJvcikpO1xuICAgICAgfSk7XG4gICAgfSk7XG4gIH1cblxuICBzZXRTTVNOdW1iZXIoc21zTnVtYmVyOiBzdHJpbmcsIG9wdGlvbnM/OiBTZXRTTVNPcHRpb25zKTogUHJvbWlzZTxzdHJpbmcgfCBudWxsPiB7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgIGlmICghdGhpcy5kb2VzT25lU2lnbmFsRXhpc3QoKSkge1xuICAgICAgICB0aGlzLm5nT25lU2lnbmFsRnVuY3Rpb25RdWV1ZS5wdXNoKHtcbiAgICAgICAgICBuYW1lOiAnc2V0U01TTnVtYmVyJyxcbiAgICAgICAgICBhcmdzOiBhcmd1bWVudHMsXG4gICAgICAgICAgcHJvbWlzZVJlc29sdmVyOiByZXNvbHZlLFxuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICB3aW5kb3cuT25lU2lnbmFsLnB1c2goKCkgPT4ge1xuICAgICAgICB3aW5kb3cuT25lU2lnbmFsLnNldFNNU051bWJlcihzbXNOdW1iZXIsIG9wdGlvbnMpXG4gICAgICAgICAgLnRoZW4oKHZhbHVlOiBQcm9taXNlPHN0cmluZyB8IG51bGw+KSA9PiByZXNvbHZlKHZhbHVlKSlcbiAgICAgICAgICAuY2F0Y2goKGVycm9yOiBFcnJvcikgPT4gcmVqZWN0KGVycm9yKSk7XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfVxuXG4gIGxvZ291dEVtYWlsKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICBpZiAoIXRoaXMuZG9lc09uZVNpZ25hbEV4aXN0KCkpIHtcbiAgICAgICAgdGhpcy5uZ09uZVNpZ25hbEZ1bmN0aW9uUXVldWUucHVzaCh7XG4gICAgICAgICAgbmFtZTogJ2xvZ291dEVtYWlsJyxcbiAgICAgICAgICBhcmdzOiBhcmd1bWVudHMsXG4gICAgICAgICAgcHJvbWlzZVJlc29sdmVyOiByZXNvbHZlLFxuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICB3aW5kb3cuT25lU2lnbmFsLnB1c2goKCkgPT4ge1xuICAgICAgICB3aW5kb3cuT25lU2lnbmFsLmxvZ291dEVtYWlsKClcbiAgICAgICAgICAudGhlbigodmFsdWU6IFByb21pc2U8dm9pZD4pID0+IHJlc29sdmUodmFsdWUpKVxuICAgICAgICAgIC5jYXRjaCgoZXJyb3I6IEVycm9yKSA9PiByZWplY3QoZXJyb3IpKTtcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgbG9nb3V0U01TKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICBpZiAoIXRoaXMuZG9lc09uZVNpZ25hbEV4aXN0KCkpIHtcbiAgICAgICAgdGhpcy5uZ09uZVNpZ25hbEZ1bmN0aW9uUXVldWUucHVzaCh7XG4gICAgICAgICAgbmFtZTogJ2xvZ291dFNNUycsXG4gICAgICAgICAgYXJnczogYXJndW1lbnRzLFxuICAgICAgICAgIHByb21pc2VSZXNvbHZlcjogcmVzb2x2ZSxcbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgd2luZG93Lk9uZVNpZ25hbC5wdXNoKCgpID0+IHtcbiAgICAgICAgd2luZG93Lk9uZVNpZ25hbC5sb2dvdXRTTVMoKVxuICAgICAgICAgIC50aGVuKCh2YWx1ZTogUHJvbWlzZTx2b2lkPikgPT4gcmVzb2x2ZSh2YWx1ZSkpXG4gICAgICAgICAgLmNhdGNoKChlcnJvcjogRXJyb3IpID0+IHJlamVjdChlcnJvcikpO1xuICAgICAgfSk7XG4gICAgfSk7XG4gIH1cblxuICBzZXRFeHRlcm5hbFVzZXJJZChleHRlcm5hbFVzZXJJZDogc3RyaW5nIHwgdW5kZWZpbmVkIHwgbnVsbCwgYXV0aEhhc2g/OiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgaWYgKCF0aGlzLmRvZXNPbmVTaWduYWxFeGlzdCgpKSB7XG4gICAgICAgIHRoaXMubmdPbmVTaWduYWxGdW5jdGlvblF1ZXVlLnB1c2goe1xuICAgICAgICAgIG5hbWU6ICdzZXRFeHRlcm5hbFVzZXJJZCcsXG4gICAgICAgICAgYXJnczogYXJndW1lbnRzLFxuICAgICAgICAgIHByb21pc2VSZXNvbHZlcjogcmVzb2x2ZSxcbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgd2luZG93Lk9uZVNpZ25hbC5wdXNoKCgpID0+IHtcbiAgICAgICAgd2luZG93Lk9uZVNpZ25hbC5zZXRFeHRlcm5hbFVzZXJJZChleHRlcm5hbFVzZXJJZCwgYXV0aEhhc2gpXG4gICAgICAgICAgLnRoZW4oKHZhbHVlOiBQcm9taXNlPHZvaWQ+KSA9PiByZXNvbHZlKHZhbHVlKSlcbiAgICAgICAgICAuY2F0Y2goKGVycm9yOiBFcnJvcikgPT4gcmVqZWN0KGVycm9yKSk7XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfVxuXG4gIHJlbW92ZUV4dGVybmFsVXNlcklkKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICBpZiAoIXRoaXMuZG9lc09uZVNpZ25hbEV4aXN0KCkpIHtcbiAgICAgICAgdGhpcy5uZ09uZVNpZ25hbEZ1bmN0aW9uUXVldWUucHVzaCh7XG4gICAgICAgICAgbmFtZTogJ3JlbW92ZUV4dGVybmFsVXNlcklkJyxcbiAgICAgICAgICBhcmdzOiBhcmd1bWVudHMsXG4gICAgICAgICAgcHJvbWlzZVJlc29sdmVyOiByZXNvbHZlLFxuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICB3aW5kb3cuT25lU2lnbmFsLnB1c2goKCkgPT4ge1xuICAgICAgICB3aW5kb3cuT25lU2lnbmFsLnJlbW92ZUV4dGVybmFsVXNlcklkKClcbiAgICAgICAgICAudGhlbigodmFsdWU6IFByb21pc2U8dm9pZD4pID0+IHJlc29sdmUodmFsdWUpKVxuICAgICAgICAgIC5jYXRjaCgoZXJyb3I6IEVycm9yKSA9PiByZWplY3QoZXJyb3IpKTtcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgZ2V0RXh0ZXJuYWxVc2VySWQoKTogUHJvbWlzZTxzdHJpbmcgfCB1bmRlZmluZWQgfCBudWxsPiB7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgIGlmICghdGhpcy5kb2VzT25lU2lnbmFsRXhpc3QoKSkge1xuICAgICAgICB0aGlzLm5nT25lU2lnbmFsRnVuY3Rpb25RdWV1ZS5wdXNoKHtcbiAgICAgICAgICBuYW1lOiAnZ2V0RXh0ZXJuYWxVc2VySWQnLFxuICAgICAgICAgIGFyZ3M6IGFyZ3VtZW50cyxcbiAgICAgICAgICBwcm9taXNlUmVzb2x2ZXI6IHJlc29sdmUsXG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIHdpbmRvdy5PbmVTaWduYWwucHVzaCgoKSA9PiB7XG4gICAgICAgIHdpbmRvdy5PbmVTaWduYWwuZ2V0RXh0ZXJuYWxVc2VySWQoKVxuICAgICAgICAgIC50aGVuKCh2YWx1ZTogUHJvbWlzZTxzdHJpbmcgfCB1bmRlZmluZWQgfCBudWxsPikgPT4gcmVzb2x2ZSh2YWx1ZSkpXG4gICAgICAgICAgLmNhdGNoKChlcnJvcjogRXJyb3IpID0+IHJlamVjdChlcnJvcikpO1xuICAgICAgfSk7XG4gICAgfSk7XG4gIH1cblxuICBwcm92aWRlVXNlckNvbnNlbnQoY29uc2VudDogYm9vbGVhbik6IFByb21pc2U8dm9pZD4ge1xuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICBpZiAoIXRoaXMuZG9lc09uZVNpZ25hbEV4aXN0KCkpIHtcbiAgICAgICAgdGhpcy5uZ09uZVNpZ25hbEZ1bmN0aW9uUXVldWUucHVzaCh7XG4gICAgICAgICAgbmFtZTogJ3Byb3ZpZGVVc2VyQ29uc2VudCcsXG4gICAgICAgICAgYXJnczogYXJndW1lbnRzLFxuICAgICAgICAgIHByb21pc2VSZXNvbHZlcjogcmVzb2x2ZSxcbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgd2luZG93Lk9uZVNpZ25hbC5wdXNoKCgpID0+IHtcbiAgICAgICAgd2luZG93Lk9uZVNpZ25hbC5wcm92aWRlVXNlckNvbnNlbnQoY29uc2VudClcbiAgICAgICAgICAudGhlbigodmFsdWU6IFByb21pc2U8dm9pZD4pID0+IHJlc29sdmUodmFsdWUpKVxuICAgICAgICAgIC5jYXRjaCgoZXJyb3I6IEVycm9yKSA9PiByZWplY3QoZXJyb3IpKTtcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgZ2V0RW1haWxJZChjYWxsYmFjaz86IEFjdGlvbjxzdHJpbmcgfCB1bmRlZmluZWQ+KTogUHJvbWlzZTxzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkPiB7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgIGlmICghdGhpcy5kb2VzT25lU2lnbmFsRXhpc3QoKSkge1xuICAgICAgICB0aGlzLm5nT25lU2lnbmFsRnVuY3Rpb25RdWV1ZS5wdXNoKHtcbiAgICAgICAgICBuYW1lOiAnZ2V0RW1haWxJZCcsXG4gICAgICAgICAgYXJnczogYXJndW1lbnRzLFxuICAgICAgICAgIHByb21pc2VSZXNvbHZlcjogcmVzb2x2ZSxcbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgd2luZG93Lk9uZVNpZ25hbC5wdXNoKCgpID0+IHtcbiAgICAgICAgd2luZG93Lk9uZVNpZ25hbC5nZXRFbWFpbElkKGNhbGxiYWNrKVxuICAgICAgICAgIC50aGVuKCh2YWx1ZTogUHJvbWlzZTxzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkPikgPT4gcmVzb2x2ZSh2YWx1ZSkpXG4gICAgICAgICAgLmNhdGNoKChlcnJvcjogRXJyb3IpID0+IHJlamVjdChlcnJvcikpO1xuICAgICAgfSk7XG4gICAgfSk7XG4gIH1cblxuICBnZXRTTVNJZChjYWxsYmFjaz86IEFjdGlvbjxzdHJpbmcgfCB1bmRlZmluZWQ+KTogUHJvbWlzZTxzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkPiB7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgIGlmICghdGhpcy5kb2VzT25lU2lnbmFsRXhpc3QoKSkge1xuICAgICAgICB0aGlzLm5nT25lU2lnbmFsRnVuY3Rpb25RdWV1ZS5wdXNoKHtcbiAgICAgICAgICBuYW1lOiAnZ2V0U01TSWQnLFxuICAgICAgICAgIGFyZ3M6IGFyZ3VtZW50cyxcbiAgICAgICAgICBwcm9taXNlUmVzb2x2ZXI6IHJlc29sdmUsXG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIHdpbmRvdy5PbmVTaWduYWwucHVzaCgoKSA9PiB7XG4gICAgICAgIHdpbmRvdy5PbmVTaWduYWwuZ2V0U01TSWQoY2FsbGJhY2spXG4gICAgICAgICAgLnRoZW4oKHZhbHVlOiBQcm9taXNlPHN0cmluZyB8IG51bGwgfCB1bmRlZmluZWQ+KSA9PiByZXNvbHZlKHZhbHVlKSlcbiAgICAgICAgICAuY2F0Y2goKGVycm9yOiBFcnJvcikgPT4gcmVqZWN0KGVycm9yKSk7XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfVxuXG4gIHNlbmRPdXRjb21lKG91dGNvbWVOYW1lOiBzdHJpbmcsIG91dGNvbWVXZWlnaHQ/OiBudW1iZXIgfCB1bmRlZmluZWQpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgaWYgKCF0aGlzLmRvZXNPbmVTaWduYWxFeGlzdCgpKSB7XG4gICAgICAgIHRoaXMubmdPbmVTaWduYWxGdW5jdGlvblF1ZXVlLnB1c2goe1xuICAgICAgICAgIG5hbWU6ICdzZW5kT3V0Y29tZScsXG4gICAgICAgICAgYXJnczogYXJndW1lbnRzLFxuICAgICAgICAgIHByb21pc2VSZXNvbHZlcjogcmVzb2x2ZSxcbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgd2luZG93Lk9uZVNpZ25hbC5wdXNoKCgpID0+IHtcbiAgICAgICAgd2luZG93Lk9uZVNpZ25hbC5zZW5kT3V0Y29tZShvdXRjb21lTmFtZSwgb3V0Y29tZVdlaWdodClcbiAgICAgICAgICAudGhlbigodmFsdWU6IFByb21pc2U8dm9pZD4pID0+IHJlc29sdmUodmFsdWUpKVxuICAgICAgICAgIC5jYXRjaCgoZXJyb3I6IEVycm9yKSA9PiByZWplY3QoZXJyb3IpKTtcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG59XG4iXX0= \ No newline at end of file +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib25lc2lnbmFsLW5neC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvb25lc2lnbmFsLW5neC9zcmMvbGliL29uZXNpZ25hbC1uZ3guc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUE0TUEsU0FBUyxjQUFjLENBQUMsVUFBa0IsRUFBRSxRQUFpQjtJQUMzRCxPQUFPLElBQUksT0FBTyxDQUFDLENBQUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxFQUFFOztRQUNyQyxJQUFJLHVCQUF1QixFQUFFO1lBQzNCLE1BQU0sRUFBRSxDQUFDO1NBQ1Y7UUFFRCxNQUFBLE1BQU0sQ0FBQyxpQkFBaUIsMENBQUUsSUFBSSxDQUFDLENBQUMsU0FBOEIsRUFBRSxFQUFFO1lBQ2hFLFNBQVMsQ0FBQyxLQUFLLENBQUMsVUFBVSxFQUFFLFFBQVEsQ0FBQztpQkFDbEMsSUFBSSxDQUFDLENBQUMsS0FBVSxFQUFFLEVBQUUsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7aUJBQ3BDLEtBQUssQ0FBQyxDQUFDLEtBQVksRUFBRSxFQUFFLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFDNUMsQ0FBQyxFQUFFO0lBQ0wsQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDO0FBRUQsU0FBUyxlQUFlO0lBQ3RCLE9BQU8sSUFBSSxPQUFPLENBQUMsQ0FBQyxPQUFPLEVBQUUsTUFBTSxFQUFFLEVBQUU7O1FBQ3JDLElBQUksdUJBQXVCLEVBQUU7WUFDM0IsTUFBTSxFQUFFLENBQUM7U0FDVjtRQUVELE1BQUEsTUFBTSxDQUFDLGlCQUFpQiwwQ0FBRSxJQUFJLENBQUMsQ0FBQyxTQUE4QixFQUFFLEVBQUU7WUFDaEUsU0FBUyxDQUFDLE1BQU0sRUFBRTtpQkFDZixJQUFJLENBQUMsQ0FBQyxLQUFVLEVBQUUsRUFBRSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztpQkFDcEMsS0FBSyxDQUFD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QW9CO1FBQ3ZCLElBQUksc0JBQXNCLEVBQUU7WUFDMUIsT0FBTyxPQUFPLENBQUMsTUFBTSxDQUFDLG1DQUFtQyxDQUFDLENBQUM7U0FDNUQ7UUFFRCxJQUFJLENBQUMsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRTtZQUM5QixNQUFNLElBQUksS0FBSyxDQUFDLDJDQUEyQyxDQUFDLENBQUM7U0FDOUQ7UUFFRCxJQUFJLENBQUMsUUFBUSxFQUFFO1lBQ2IsT0FBTyxPQUFPLENBQUMsTUFBTSxDQUFDLDBCQUEwQixDQUFDLENBQUM7U0FDbkQ7UUFFRCxPQUFPLElBQUksT0FBTyxDQUFPLENBQUMsT0FBTyxFQUFFLEVBQUU7O1lBQ25DLE1BQUEsTUFBTSxDQUFDLGlCQUFpQiwwQ0FBRSxJQUFJLENBQUMsQ0FBQyxTQUE4QixFQUFFLEVBQUU7Z0JBQ2hFLFNBQVMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRTtvQkFDaEMsc0JBQXNCLEdBQUcsSUFBSSxDQUFDO29CQUM5QixPQUFPLEVBQUUsQ0FBQztnQkFDWixDQUFDLENBQUMsQ0FBQztZQUNMLENBQUMsRUFBRTtRQUNMLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs7OztZQWxDRixVQUFVLFNBQUM7Z0JBQ1YsVUFBVSxFQUFFLE1BQU07YUFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbnRlcmZhY2UgQXV0b1Byb21wdE9wdGlvbnMgeyBmb3JjZT86IGJvb2xlYW47IGZvcmNlU2xpZGVkb3duT3Zlck5hdGl2ZT86IGJvb2xlYW47IHNsaWRlZG93blByb21wdE9wdGlvbnM/OiBJT25lU2lnbmFsQXV0b1Byb21wdE9wdGlvbnM7IH1cbmludGVyZmFjZSBJT25lU2lnbmFsQXV0b1Byb21wdE9wdGlvbnMgeyBmb3JjZT86IGJvb2xlYW47IGZvcmNlU2xpZGVkb3duT3Zlck5hdGl2ZT86IGJvb2xlYW47IGlzSW5VcGRhdGVNb2RlPzogYm9vbGVhbjsgY2F0ZWdvcnlPcHRpb25zPzogSU9uZVNpZ25hbENhdGVnb3JpZXM7IH1cbmludGVyZmFjZSBJT25lU2lnbmFsQ2F0ZWdvcmllcyB7IHBvc2l0aXZlVXBkYXRlQnV0dG9uOiBzdHJpbmc7IG5lZ2F0aXZlVXBkYXRlQnV0dG9uOiBzdHJpbmc7IHNhdmluZ0J1dHRvblRleHQ6IHN0cmluZzsgZXJyb3JCdXR0b25UZXh0OiBzdHJpbmc7IHVwZGF0ZU1lc3NhZ2U6IHN0cmluZzsgdGFnczogSU9uZVNpZ25hbFRhZ0NhdGVnb3J5W107IH1cbmludGVyZmFjZSBJT25lU2lnbmFsVGFnQ2F0ZWdvcnkgeyB0YWc6IHN0cmluZzsgbGFiZWw6IHN0cmluZzsgY2hlY2tlZD86IGJvb2xlYW47IH1cbnR5cGUgUHVzaFN1YnNjcmlwdGlvbk5hbWVzcGFjZVByb3BlcnRpZXMgPSB7IGlkOiBzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkOyB0b2tlbjogc3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZDsgb3B0ZWRJbjogYm9vbGVhbjsgfTtcbnR5cGUgU3Vic2NyaXB0aW9uQ2hhbmdlRXZlbnQgPSB7IHByZXZpb3VzOiBQdXNoU3Vic2NyaXB0aW9uTmFtZXNwYWNlUHJvcGVydGllczsgY3VycmVudDogUHVzaFN1YnNjcmlwdGlvbk5hbWVzcGFjZVByb3BlcnRpZXM7IH07XG50eXBlIE5vdGlmaWNhdGlvbkV2ZW50TmFtZSA9ICdjbGljaycgfCAnZm9yZWdyb3VuZFdpbGxEaXNwbGF5JyB8ICdkaXNtaXNzJyB8ICdwZXJtaXNzaW9uQ2hhbmdlJyB8ICdwZXJtaXNzaW9uUHJvbXB0RGlzcGxheSc7XG50eXBlIFNsaWRlZG93bkV2ZW50TmFtZSA9ICdzbGlkZWRvd25TaG93bic7XG50eXBlIE9uZVNpZ25hbERlZmVycmVkTG9hZGVkQ2FsbGJhY2sgPSAob25lc2lnbmFsOiBJT25lU2lnbmFsT25lU2lnbmFsKSA9PiB2b2lkO1xuaW50ZXJmYWNlIElPU05vdGlmaWNhdGlvbiB7XG4gIC8qKlxuICAgKiBUaGUgT25lU2lnbmFsIG5vdGlmaWNhdGlvbiBpZDtcbiAgICogIC0gUHJpbWFyeSBpZCBvbiBPbmVTaWduYWwncyBSRVNUIEFQSSBhbmQgZGFzaGJvYXJkXG4gICAqL1xuICByZWFkb25seSBub3RpZmljYXRpb25JZDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBWaXNpYmxlIHRpdGxlIHRleHQgb24gdGhlIG5vdGlmaWNhdGlvblxuICAgKi9cbiAgcmVhZG9ubHkgdGl0bGU/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFZpc2libGUgYm9keSB0ZXh0IG9uIHRoZSBub3RpZmljYXRpb25cbiAgICovXG4gIHJlYWRvbmx5IGJvZHk6IHN0cmluZztcblxuICAvKipcbiAgICogVmlzaWJsZSBpY29uIHRoZSBub3RpZmljYXRpb247IFVSTCBmb3JtYXRcbiAgICovXG4gIHJlYWRvbmx5IGljb24/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFZpc2libGUgc21hbGwgYmFkZ2VJY29uIHRoYXQgZGlzcGxheXMgb24gc29tZSBkZXZpY2VzOyBVUkwgZm9ybWF0XG4gICAqIEV4YW1wbGU6IE9uIEFuZHJvaWQncyBzdGF0dXMgYmFyXG4gICAqL1xuICByZWFkb25seSBiYWRnZUljb24/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFZpc2libGUgaW1hZ2Ugb24gdGhlIG5vdGlmaWNhdGlvbjsgVVJMIGZvcm1hdFxuICAgKi9cbiAgcmVhZG9ubHkgaW1hZ2U/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFZpc2libGUgYnV0dG9ucyBvbiB0aGUgbm90aWZpY2F0aW9uXG4gICAqL1xuICByZWFkb25seSBhY3Rpb25CdXR0b25zPzogSU9TTm90aWZpY2F0aW9uQWN0aW9uQnV0dG9uW107XG5cbiAgLyoqXG4gICAqIElmIHRoaXMgdmFsdWUgaXMgdGhlIHNhbWUgYXMgZXhpc3Rpbmcgbm90aWZpY2F0aW9uLCBpdCB3aWxsIHJlcGxhY2UgaXRcbiAgICogQ2FuIGJlIHNldCB3aGVuIGNyZWF0aW5nIHRoZSBub3RpZmljYXRpb24gd2l0aCBcIldlYiBQdXNoIFRvcGljXCIgb24gdGhlIGRhc2hib2FyZFxuICAgKiBvciB3ZWJfcHVzaF90b3BpYyBmcm9tIHRoZSBSRVNUIEFQSS5cbiAgKi9cbiAgcmVhZG9ubHkgdG9waWM/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEN1c3RvbSBvYmplY3QgdGhhdCB3YXMgc2VudCB3aXRoIHRoZSBub3RpZmljYXRpb247XG4gICAqIGRlZmluYWJsZSB3aGVuIGNyZWF0aW5nIHRoZSBub3RpZmljYXRpb24gZnJvbSB0aGUgT25lU2lnbmFsIFJFU1QgQVBJIG9yIGRhc2hib2FyZFxuICAgKi9cbiAgcmVhZG9ubHkgYWRkaXRpb25hbERhdGE/OiBvYmplY3Q7XG5cbiAgLyoqXG4gICAqIFVSTCB0byBvcGVuIHdoZW4gY2xpY2tpbmcgb3IgdGFwcGluZyBvbiB0aGUgbm90aWZpY2F0aW9uXG4gICAqL1xuICByZWFkb25seSBsYXVuY2hVUkw/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIENvbmZpcm0gdGhlIHB1c2ggd2FzIHJlY2VpdmVkIGJ5IHJlcG9ydGluZyBiYWNrIHRvIE9uZVNpZ25hbFxuICAgKi9cbiAgcmVhZG9ubHkgY29uZmlybURlbGl2ZXJ5OiBib29sZWFuO1xufVxuXG5pbnRlcmZhY2UgSU9TTm90aWZpY2F0aW9uQWN0aW9uQnV0dG9uIHtcbiAgLyoqXG4gICAqIEFueSB1bmlxdWUgaWRlbnRpZmllciB0byByZXByZXNlbnQgd2hpY2ggYnV0dG9uIHdhcyBjbGlja2VkLiBUaGlzIGlzIHR5cGljYWxseSBwYXNzZWQgYmFjayB0byB0aGUgc2VydmljZSB3b3JrZXJcbiAgICogYW5kIGhvc3QgcGFnZSB0aHJvdWdoIGV2ZW50cyB0byBpZGVudGlmeSB3aGljaCBidXR0b24gd2FzIGNsaWNrZWQuXG4gICAqIGUuZy4gJ2xpa2UtYnV0dG9uJ1xuICAgKi9cbiAgcmVhZG9ubHkgYWN0aW9uSWQ6IHN0cmluZztcbiAgLyoqXG4gICAqIFRoZSBub3RpZmljYXRpb24gYWN0aW9uIGJ1dHRvbidzIHRleHQuXG4gICAqL1xuICByZWFkb25seSB0ZXh0OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBBIHZhbGlkIHB1YmxpY2x5IHJlYWNoYWJsZSBIVFRQUyBVUkwgdG8gYW4gaW1hZ2UuXG4gICAqL1xuICByZWFkb25seSBpY29uPzogc3RyaW5nO1xuICAvKipcbiAgICogVGhlIFVSTCB0byBvcGVuIHRoZSB3ZWIgYnJvd3NlciB0byB3aGVuIHRoaXMgYWN0aW9uIGJ1dHRvbiBpcyBjbGlja2VkLlxuICAgKi9cbiAgcmVhZG9ubHkgbGF1bmNoVVJMPzogc3RyaW5nO1xufVxuXG5pbnRlcmZhY2UgTm90aWZpY2F0aW9uQ2xpY2tSZXN1bHQge1xuICByZWFkb25seSBhY3Rpb25JZD86IHN0cmluZztcbiAgcmVhZG9ubHkgdXJsPzogc3RyaW5nO1xufVxuXG50eXBlIE5vdGlmaWNhdGlvbkV2ZW50VHlwZU1hcCA9IHtcbiAgJ2NsaWNrJzogTm90aWZpY2F0aW9uQ2xpY2tFdmVudDtcbiAgJ2ZvcmVncm91bmRXaWxsRGlzcGxheSc6IE5vdGlmaWNhdGlvbkZvcmVncm91bmRXaWxsRGlzcGxheUV2ZW50O1xuICAnZGlzbWlzcyc6IE5vdGlmaWNhdGlvbkRpc21pc3NFdmVudDtcbiAgJ3Blcm1pc3Npb25DaGFuZ2UnOiBib29sZWFuO1xuICAncGVybWlzc2lvblByb21wdERpc3BsYXknOiB2b2lkO1xufVxuXG5pbnRlcmZhY2UgTm90aWZpY2F0aW9uRm9yZWdyb3VuZFdpbGxEaXNwbGF5RXZlbnQge1xuICByZWFkb25seSBub3RpZmljYXRpb246IElPU05vdGlmaWNhdGlvbjtcbiAgcHJldmVudERlZmF1bHQoKTogdm9pZDtcbn1cblxuaW50ZXJmYWNlIE5vdGlmaWNhdGlvbkRpc21pc3NFdmVudCB7XG4gIG5vdGlmaWNhdGlvbjogSU9TTm90aWZpY2F0aW9uO1xufVxuXG5pbnRlcmZhY2UgTm90aWZpY2F0aW9uQ2xpY2tFdmVudCB7XG4gIHJlYWRvbmx5IG5vdGlmaWNhdGlvbjogSU9TTm90aWZpY2F0aW9uO1xuICByZWFkb25seSByZXN1bHQ6IE5vdGlmaWNhdGlvbkNsaWNrUmVzdWx0O1xufVxuXG5cbmludGVyZmFjZSBJSW5pdE9iamVjdCB7XG4gIGFwcElkOiBzdHJpbmc7XG4gIHN1YmRvbWFpbk5hbWU/OiBzdHJpbmc7XG4gIHJlcXVpcmVzVXNlclByaXZhY3lDb25zZW50PzogYm9vbGVhbjtcbiAgcHJvbXB0T3B0aW9ucz86IG9iamVjdDtcbiAgd2VsY29tZU5vdGlmaWNhdGlvbj86IG9iamVjdDtcbiAgbm90aWZ5QnV0dG9uPzogb2JqZWN0O1xuICBwZXJzaXN0Tm90aWZpY2F0aW9uPzogYm9vbGVhbjtcbiAgd2ViaG9va3M/OiBvYmplY3Q7XG4gIGF1dG9SZXN1YnNjcmliZT86IGJvb2xlYW47XG4gIGF1dG9SZWdpc3Rlcj86IGJvb2xlYW47XG4gIG5vdGlmaWNhdGlvbkNsaWNrSGFuZGxlck1hdGNoPzogc3RyaW5nO1xuICBub3RpZmljYXRpb25DbGlja0hhbmRsZXJBY3Rpb24/OiBzdHJpbmc7XG4gIHNlcnZpY2VXb3JrZXJQYXJhbT86IHsgc2NvcGU6IHN0cmluZyB9O1xuICBzZXJ2aWNlV29ya2VyUGF0aD86IHN0cmluZztcbiAgc2VydmljZVdvcmtlclVwZGF0ZXJQYXRoPzogc3RyaW5nO1xuICBwYXRoPzogc3RyaW5nO1xuICBhbGxvd0xvY2FsaG9zdEFzU2VjdXJlT3JpZ2luPzogYm9vbGVhbjtcbiAgW2tleTogc3RyaW5nXTogYW55O1xufVxuXG5pbnRlcmZhY2UgSU9uZVNpZ25hbE9uZVNpZ25hbCB7XG5cdFNsaWRlZG93bjogSU9uZVNpZ25hbFNsaWRlZG93bjtcblx0Tm90aWZpY2F0aW9uczogSU9uZVNpZ25hbE5vdGlmaWNhdGlvbnM7XG5cdFNlc3Npb246IElPbmVTaWduYWxTZXNzaW9uO1xuXHRVc2VyOiBJT25lU2lnbmFsVXNlcjtcblx0RGVidWc6IElPbmVTaWduYWxEZWJ1Zztcblx0bG9naW4oZXh0ZXJuYWxJZDogc3RyaW5nLCBqd3RUb2tlbj86IHN0cmluZyk6IFByb21pc2U8dm9pZD47XG5cdGxvZ291dCgpOiBQcm9taXNlPHZvaWQ+O1xuXHRpbml0KG9wdGlvbnM6IElJbml0T2JqZWN0KTogUHJvbWlzZTx2b2lkPjtcblx0c2V0Q29uc2VudEdpdmVuKGNvbnNlbnQ6IGJvb2xlYW4pOiBQcm9taXNlPHZvaWQ+O1xuXHRzZXRDb25zZW50UmVxdWlyZWQocmVxdWlyZXNDb25zZW50OiBib29sZWFuKTogUHJvbWlzZTx2b2lkPjtcbn1cbmludGVyZmFjZSBJT25lU2lnbmFsTm90aWZpY2F0aW9ucyB7XG5cdHBlcm1pc3Npb25OYXRpdmU6IE5vdGlmaWNhdGlvblBlcm1pc3Npb247XG5cdHBlcm1pc3Npb246IGJvb2xlYW47XG5cdHNldERlZmF1bHRVcmwodXJsOiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+O1xuXHRzZXREZWZhdWx0VGl0bGUodGl0bGU6IHN0cmluZyk6IFByb21pc2U8dm9pZD47XG5cdGlzUHVzaFN1cHBvcnRlZCgpOiBib29sZWFuO1xuXHRyZXF1ZXN0UGVybWlzc2lvbigpOiBQcm9taXNlPHZvaWQ+O1xuXHRhZGRFdmVudExpc3RlbmVyPEsgZXh0ZW5kcyBOb3RpZmljYXRpb25FdmVudE5hbWU+KGV2ZW50OiBLLCBsaXN0ZW5lcjogKG9iajogTm90aWZpY2F0aW9uRXZlbnRUeXBlTWFwW0tdKSA9PiB2b2lkKTogdm9pZDtcblx0cmVtb3ZlRXZlbnRMaXN0ZW5lcjxLIGV4dGVuZHMgTm90aWZpY2F0aW9uRXZlbnROYW1lPihldmVudDogSywgbGlzdGVuZXI6IChvYmo6IE5vdGlmaWNhdGlvbkV2ZW50VHlwZU1hcFtLXSkgPT4gdm9pZCk6IHZvaWQ7XG59XG5pbnRlcmZhY2UgSU9uZVNpZ25hbFNsaWRlZG93biB7XG5cdHByb21wdFB1c2gob3B0aW9ucz86IEF1dG9Qcm9tcHRPcHRpb25zKTogUHJvbWlzZTx2b2lkPjtcblx0cHJvbXB0UHVzaENhdGVnb3JpZXMob3B0aW9ucz86IEF1dG9Qcm9tcHRPcHRpb25zKTogUHJvbWlzZTx2b2lkPjtcblx0cHJvbXB0U21zKG9wdGlvbnM/OiBBdXRvUHJvbXB0T3B0aW9ucyk6IFByb21pc2U8dm9pZD47XG5cdHByb21wdEVtYWlsKG9wdGlvbnM/OiBBdXRvUHJvbXB0T3B0aW9ucyk6IFByb21pc2U8dm9pZD47XG5cdHByb21wdFNtc0FuZEVtYWlsKG9wdGlvbnM/OiBBdXRvUHJvbXB0T3B0aW9ucyk6IFByb21pc2U8dm9pZD47XG5cdGFkZEV2ZW50TGlzdGVuZXIoZXZlbnQ6IFNsaWRlZG93bkV2ZW50TmFtZSwgbGlzdGVuZXI6ICh3YXNTaG93bjogYm9vbGVhbikgPT4gdm9pZCk6IHZvaWQ7XG5cdHJlbW92ZUV2ZW50TGlzdGVuZXIoZXZlbnQ6IFNsaWRlZG93bkV2ZW50TmFtZSwgbGlzdGVuZXI6ICh3YXNTaG93bjogYm9vbGVhbikgPT4gdm9pZCk6IHZvaWQ7XG59XG5pbnRlcmZhY2UgSU9uZVNpZ25hbERlYnVnIHtcblx0c2V0TG9nTGV2ZWwobG9nTGV2ZWw6IHN0cmluZyk6IHZvaWQ7XG59XG5pbnRlcmZhY2UgSU9uZVNpZ25hbFNlc3Npb24ge1xuXHRzZW5kT3V0Y29tZShvdXRjb21lTmFtZTogc3RyaW5nLCBvdXRjb21lV2VpZ2h0PzogbnVtYmVyKTogUHJvbWlzZTx2b2lkPjtcblx0c2VuZFVuaXF1ZU91dGNvbWUob3V0Y29tZU5hbWU6IHN0cmluZyk6IFByb21pc2U8dm9pZD47XG59XG5pbnRlcmZhY2UgSU9uZVNpZ25hbFVzZXIge1xuXHRQdXNoU3Vic2NyaXB0aW9uOiBJT25lU2lnbmFsUHVzaFN1YnNjcmlwdGlvbjtcblx0YWRkQWxpYXMobGFiZWw6IHN0cmluZywgaWQ6IHN0cmluZyk6IHZvaWQ7XG5cdGFkZEFsaWFzZXMoYWxpYXNlczogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfSk6IHZvaWQ7XG5cdHJlbW92ZUFsaWFzKGxhYmVsOiBzdHJpbmcpOiB2b2lkO1xuXHRyZW1vdmVBbGlhc2VzKGxhYmVsczogc3RyaW5nW10pOiB2b2lkO1xuXHRhZGRFbWFpbChlbWFpbDogc3RyaW5nKTogdm9pZDtcblx0cmVtb3ZlRW1haWwoZW1haWw6IHN0cmluZyk6IHZvaWQ7XG5cdGFkZFNtcyhzbXNOdW1iZXI6IHN0cmluZyk6IHZvaWQ7XG5cdHJlbW92ZVNtcyhzbXNOdW1iZXI6IHN0cmluZyk6IHZvaWQ7XG5cdGFkZFRhZyhrZXk6IHN0cmluZywgdmFsdWU6IHN0cmluZyk6IHZvaWQ7XG5cdGFkZFRhZ3ModGFnczogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfSk6IHZvaWQ7XG5cdHJlbW92ZVRhZyhrZXk6IHN0cmluZyk6IHZvaWQ7XG5cdHJlbW92ZVRhZ3Moa2V5czogc3RyaW5nW10pOiB2b2lkO1xufVxuaW50ZXJmYWNlIElPbmVTaWduYWxQdXNoU3Vic2NyaXB0aW9uIHtcblx0aWQ6IHN0cmluZyB8IG51bGwgfCB1bmRlZmluZWQ7XG5cdHRva2VuOiBzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkO1xuXHRvcHRlZEluOiBib29sZWFuIHwgdW5kZWZpbmVkO1xuXHRvcHRJbigpOiBQcm9taXNlPHZvaWQ+O1xuXHRvcHRPdXQoKTogUHJvbWlzZTx2b2lkPjtcblx0YWRkRXZlbnRMaXN0ZW5lcihldmVudDogJ2NoYW5nZScsIGxpc3RlbmVyOiAoY2hhbmdlOiBTdWJzY3JpcHRpb25DaGFuZ2VFdmVudCkgPT4gdm9pZCk6IHZvaWQ7XG5cdHJlbW92ZUV2ZW50TGlzdGVuZXIoZXZlbnQ6ICdjaGFuZ2UnLCBsaXN0ZW5lcjogKGNoYW5nZTogU3Vic2NyaXB0aW9uQ2hhbmdlRXZlbnQpID0+IHZvaWQpOiB2b2lkO1xufVxuXG5mdW5jdGlvbiBvbmVTaWduYWxMb2dpbihleHRlcm5hbElkOiBzdHJpbmcsIGp3dFRva2VuPzogc3RyaW5nKTogUHJvbWlzZTx2b2lkPiB7XG4gIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgaWYgKGlzT25lU2lnbmFsU2NyaXB0RmFpbGVkKSB7XG4gICAgICByZWplY3QoKTtcbiAgICB9XG5cbiAgICB3aW5kb3cuT25lU2lnbmFsRGVmZXJyZWQ/LnB1c2goKG9uZVNpZ25hbDogSU9uZVNpZ25hbE9uZVNpZ25hbCkgPT4ge1xuICAgICAgb25lU2lnbmFsLmxvZ2luKGV4dGVybmFsSWQsIGp3dFRva2VuKVxuICAgICAgICAudGhlbigodmFsdWU6IGFueSkgPT4gcmVzb2x2ZSh2YWx1ZSkpXG4gICAgICAgIC5jYXRjaCgoZXJyb3I6IEVycm9yKSA9PiByZWplY3QoZXJyb3IpKTtcbiAgICB9KTtcbiAgfSk7XG59XG5cbmZ1bmN0aW9uIG9uZVNpZ25hbExvZ291dCgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICBpZiAoaXNPbmVTaWduYWxTY3JpcHRGYWlsZWQpIHtcbiAgICAgIHJlamVjdCgpO1xuICAgIH1cblxuICAgIHdpbmRvdy5PbmVTaWduYWxEZWZlcnJlZD8ucHVzaCgob25lU2lnbmFsOiBJT25lU2lnbmFsT25lU2lnbmFsKSA9PiB7XG4gICAgICBvbmVTaWduYWwubG9nb3V0KClcbiAgICAgICAgLnRoZW4oKHZhbHVlOiBhbnkpID0+IHJlc29sdmUodmFsdWUpKVxuICAgICAgICAuY2F0Y2goKGVycm9yOiBFcnJvcikgPT4gcmVqZWN0KGVycm9yKSk7XG4gICAgfSk7XG4gIH0pO1xufVxuXG5mdW5jdGlvbiBvbmVTaWduYWxTZXRDb25zZW50R2l2ZW4oY29uc2VudDogYm9vbGVhbik6IFByb21pc2U8dm9pZD4ge1xuICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgIGlmIChpc09uZVNpZ25hbFNjcmlwdEZhaWxlZCkge1xuICAgICAgcmVqZWN0KCk7XG4gICAgfVxuXG4gICAgd2luZG93Lk9uZVNpZ25hbERlZmVycmVkPy5wdXNoKChvbmVTaWduYWw6IElPbmVTaWduYWxPbmVTaWduYWwpID0+IHtcbiAgICAgIG9uZVNpZ25hbC5zZXRDb25zZW50R2l2ZW4oY29uc2VudClcbiAgICAgICAgLnRoZW4oKHZhbHVlOiBhbnkpID0+IHJlc29sdmUodmFsdWUpKVxuICAgICAgICAuY2F0Y2goKGVycm9yOiBFcnJvcikgPT4gcmVqZWN0KGVycm9yKSk7XG4gICAgfSk7XG4gIH0pO1xufVxuXG5mdW5jdGlvbiBvbmVTaWduYWxTZXRDb25zZW50UmVxdWlyZWQocmVxdWlyZXNDb25zZW50OiBib29sZWFuKTogUHJvbWlzZTx2b2lkPiB7XG4gIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgaWYgKGlzT25lU2lnbmFsU2NyaXB0RmFpbGVkKSB7XG4gICAgICByZWplY3QoKTtcbiAgICB9XG5cbiAgICB3aW5kb3cuT25lU2lnbmFsRGVmZXJyZWQ/LnB1c2goKG9uZVNpZ25hbDogSU9uZVNpZ25hbE9uZVNpZ25hbCkgPT4ge1xuICAgICAgb25lU2lnbmFsLnNldENvbnNlbnRSZXF1aXJlZChyZXF1aXJlc0NvbnNlbnQpXG4gICAgICAgIC50aGVuKCh2YWx1ZTogYW55KSA9PiByZXNvbHZlKHZhbHVlKSlcbiAgICAgICAgLmNhdGNoKChlcnJvcjogRXJyb3IpID0+IHJlamVjdChlcnJvcikpO1xuICAgIH0pO1xuICB9KTtcbn1cblxuZnVuY3Rpb24gc2xpZGVkb3duUHJvbXB0UHVzaChvcHRpb25zPzogQXV0b1Byb21wdE9wdGlvbnMpOiBQcm9taXNlPHZvaWQ+IHtcbiAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICBpZiAoaXNPbmVTaWduYWxTY3JpcHRGYWlsZWQpIHtcbiAgICAgIHJlamVjdCgpO1xuICAgIH1cblxuICAgIHdpbmRvdy5PbmVTaWduYWxEZWZlcnJlZD8ucHVzaCgob25lU2lnbmFsOiBJT25lU2lnbmFsT25lU2lnbmFsKSA9PiB7XG4gICAgICBvbmVTaWduYWwuU2xpZGVkb3duLnByb21wdFB1c2gob3B0aW9ucylcbiAgICAgICAgLnRoZW4oKHZhbHVlOiBhbnkpID0+IHJlc29sdmUodmFsdWUpKVxuICAgICAgICAuY2F0Y2goKGVycm9yOiBFcnJvcikgPT4gcmVqZWN0KGVycm9yKSk7XG4gICAgfSk7XG4gIH0pO1xufVxuXG5mdW5jdGlvbiBzbGlkZWRvd25Qcm9tcHRQdXNoQ2F0ZWdvcmllcyhvcHRpb25zPzogQXV0b1Byb21wdE9wdGlvbnMpOiBQcm9taXNlPHZvaWQ+IHtcbiAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICBpZiAoaXNPbmVTaWduYWxTY3JpcHRGYWlsZWQpIHtcbiAgICAgIHJlamVjdCgpO1xuICAgIH1cblxuICAgIHdpbmRvdy5PbmVTaWduYWxEZWZlcnJlZD8ucHVzaCgob25lU2lnbmFsOiBJT25lU2lnbmFsT25lU2lnbmFsKSA9PiB7XG4gICAgICBvbmVTaWduYWwuU2xpZGVkb3duLnByb21wdFB1c2hDYXRlZ29yaWVzKG9wdGlvbnMpXG4gICAgICAgIC50aGVuKCh2YWx1ZTogYW55KSA9PiByZXNvbHZlKHZhbHVlKSlcbiAgICAgICAgLmNhdGNoKChlcnJvcjogRXJyb3IpID0+IHJlamVjdChlcnJvcikpO1xuICAgIH0pO1xuICB9KTtcbn1cblxuZnVuY3Rpb24gc2xpZGVkb3duUHJvbXB0U21zKG9wdGlvbnM/OiBBdXRvUHJvbXB0T3B0aW9ucyk6IFByb21pc2U8dm9pZD4ge1xuICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgIGlmIChpc09uZVNpZ25hbFNjcmlwdEZhaWxlZCkge1xuICAgICAgcmVqZWN0KCk7XG4gICAgfVxuXG4gICAgd2luZG93Lk9uZVNpZ25hbERlZmVycmVkPy5wdXNoKChvbmVTaWduYWw6IElPbmVTaWduYWxPbmVTaWduYWwpID0+IHtcbiAgICAgIG9uZVNpZ25hbC5TbGlkZWRvd24ucHJvbXB0U21zKG9wdGlvbnMpXG4gICAgICAgIC50aGVuKCh2YWx1ZTogYW55KSA9PiByZXNvbHZlKHZhbHVlKSlcbiAgICAgICAgLmNhdGNoKChlcnJvcjogRXJyb3IpID0+IHJlamVjdChlcnJvcikpO1xuICAgIH0pO1xuICB9KTtcbn1cblxuZnVuY3Rpb24gc2xpZGVkb3duUHJvbXB0RW1haWwob3B0aW9ucz86IEF1dG9Qcm9tcHRPcHRpb25zKTogUHJvbWlzZTx2b2lkPiB7XG4gIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgaWYgKGlzT25lU2lnbmFsU2NyaXB0RmFpbGVkKSB7XG4gICAgICByZWplY3QoKTtcbiAgICB9XG5cbiAgICB3aW5kb3cuT25lU2lnbmFsRGVmZXJyZWQ/LnB1c2goKG9uZVNpZ25hbDogSU9uZVNpZ25hbE9uZVNpZ25hbCkgPT4ge1xuICAgICAgb25lU2lnbmFsLlNsaWRlZG93bi5wcm9tcHRFbWFpbChvcHRpb25zKVxuICAgICAgICAudGhlbigodmFsdWU6IGFueSkgPT4gcmVzb2x2ZSh2YWx1ZSkpXG4gICAgICAgIC5jYXRjaCgoZXJyb3I6IEVycm9yKSA9PiByZWplY3QoZXJyb3IpKTtcbiAgICB9KTtcbiAgfSk7XG59XG5cbmZ1bmN0aW9uIHNsaWRlZG93blByb21wdFNtc0FuZEVtYWlsKG9wdGlvbnM/OiBBdXRvUHJvbXB0T3B0aW9ucyk6IFByb21pc2U8dm9pZD4ge1xuICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgIGlmIChpc09uZVNpZ25hbFNjcmlwdEZhaWxlZCkge1xuICAgICAgcmVqZWN0KCk7XG4gICAgfVxuXG4gICAgd2luZG93Lk9uZVNpZ25hbERlZmVycmVkPy5wdXNoKChvbmVTaWduYWw6IElPbmVTaWduYWxPbmVTaWduYWwpID0+IHtcbiAgICAgIG9uZVNpZ25hbC5TbGlkZWRvd24ucHJvbXB0U21zQW5kRW1haWwob3B0aW9ucylcbiAgICAgICAgLnRoZW4oKHZhbHVlOiBhbnkpID0+IHJlc29sdmUodmFsdWUpKVxuICAgICAgICAuY2F0Y2goKGVycm9yOiBFcnJvcikgPT4gcmVqZWN0KGVycm9yKSk7XG4gICAgfSk7XG4gIH0pO1xufVxuXG5mdW5jdGlvbiBzbGlkZWRvd25BZGRFdmVudExpc3RlbmVyKGV2ZW50OiBTbGlkZWRvd25FdmVudE5hbWUsIGxpc3RlbmVyOiAod2FzU2hvd246IGJvb2xlYW4pID0+IHZvaWQpOiB2b2lkIHtcbiAgd2luZG93Lk9uZVNpZ25hbERlZmVycmVkPy5wdXNoKChvbmVTaWduYWw6IElPbmVTaWduYWxPbmVTaWduYWwpID0+IHtcbiAgICBvbmVTaWduYWwuU2xpZGVkb3duLmFkZEV2ZW50TGlzdGVuZXIoZXZlbnQsIGxpc3RlbmVyKTtcbiAgfSk7XG59XG5cbmZ1bmN0aW9uIHNsaWRlZG93blJlbW92ZUV2ZW50TGlzdGVuZXIoZXZlbnQ6IFNsaWRlZG93bkV2ZW50TmFtZSwgbGlzdGVuZXI6ICh3YXNTaG93bjogYm9vbGVhbikgPT4gdm9pZCk6IHZvaWQge1xuICB3aW5kb3cuT25lU2lnbmFsRGVmZXJyZWQ/LnB1c2goKG9uZVNpZ25hbDogSU9uZVNpZ25hbE9uZVNpZ25hbCkgPT4ge1xuICAgIG9uZVNpZ25hbC5TbGlkZWRvd24ucmVtb3ZlRXZlbnRMaXN0ZW5lcihldmVudCwgbGlzdGVuZXIpO1xuICB9KTtcbn1cblxuZnVuY3Rpb24gbm90aWZpY2F0aW9uc1NldERlZmF1bHRVcmwodXJsOiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+IHtcbiAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICBpZiAoaXNPbmVTaWduYWxTY3JpcHRGYWlsZWQpIHtcbiAgICAgIHJlamVjdCgpO1xuICAgIH1cblxuICAgIHdpbmRvdy5PbmVTaWduYWxEZWZlcnJlZD8ucHVzaCgob25lU2lnbmFsOiBJT25lU2lnbmFsT25lU2lnbmFsKSA9PiB7XG4gICAgICBvbmVTaWduYWwuTm90aWZpY2F0aW9ucy5zZXREZWZhdWx0VXJsKHVybClcbiAgICAgICAgLnRoZW4oKHZhbHVlOiBhbnkpID0+IHJlc29sdmUodmFsdWUpKVxuICAgICAgICAuY2F0Y2goKGVycm9yOiBFcnJvcikgPT4gcmVqZWN0KGVycm9yKSk7XG4gICAgfSk7XG4gIH0pO1xufVxuXG5mdW5jdGlvbiBub3RpZmljYXRpb25zU2V0RGVmYXVsdFRpdGxlKHRpdGxlOiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+IHtcbiAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICBpZiAoaXNPbmVTaWduYWxTY3JpcHRGYWlsZWQpIHtcbiAgICAgIHJlamVjdCgpO1xuICAgIH1cblxuICAgIHdpbmRvdy5PbmVTaWduYWxEZWZlcnJlZD8ucHVzaCgob25lU2lnbmFsOiBJT25lU2lnbmFsT25lU2lnbmFsKSA9PiB7XG4gICAgICBvbmVTaWduYWwuTm90aWZpY2F0aW9ucy5zZXREZWZhdWx0VGl0bGUodGl0bGUpXG4gICAgICAgIC50aGVuKCh2YWx1ZTogYW55KSA9PiByZXNvbHZlKHZhbHVlKSlcbiAgICAgICAgLmNhdGNoKChlcnJvcjogRXJyb3IpID0+IHJlamVjdChlcnJvcikpO1xuICAgIH0pO1xuICB9KTtcbn1cblxuZnVuY3Rpb24gbm90aWZpY2F0aW9uc1JlcXVlc3RQZXJtaXNzaW9uKCk6IFByb21pc2U8dm9pZD4ge1xuICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgIGlmIChpc09uZVNpZ25hbFNjcmlwdEZhaWxlZCkge1xuICAgICAgcmVqZWN0KCk7XG4gICAgfVxuXG4gICAgd2luZG93Lk9uZVNpZ25hbERlZmVycmVkPy5wdXNoKChvbmVTaWduYWw6IElPbmVTaWduYWxPbmVTaWduYWwpID0+IHtcbiAgICAgIG9uZVNpZ25hbC5Ob3RpZmljYXRpb25zLnJlcXVlc3RQZXJtaXNzaW9uKClcbiAgICAgICAgLnRoZW4oKHZhbHVlOiBhbnkpID0+IHJlc29sdmUodmFsdWUpKVxuICAgICAgICAuY2F0Y2goKGVycm9yOiBFcnJvcikgPT4gcmVqZWN0KGVycm9yKSk7XG4gICAgfSk7XG4gIH0pO1xufVxuXG5mdW5jdGlvbiBub3RpZmljYXRpb25zQWRkRXZlbnRMaXN0ZW5lcjxLIGV4dGVuZHMgTm90aWZpY2F0aW9uRXZlbnROYW1lPihldmVudDogSywgbGlzdGVuZXI6IChvYmo6IE5vdGlmaWNhdGlvbkV2ZW50VHlwZU1hcFtLXSkgPT4gdm9pZCk6IHZvaWQge1xuICB3aW5kb3cuT25lU2lnbmFsRGVmZXJyZWQ/LnB1c2goKG9uZVNpZ25hbDogSU9uZVNpZ25hbE9uZVNpZ25hbCkgPT4ge1xuICAgIG9uZVNpZ25hbC5Ob3RpZmljYXRpb25zLmFkZEV2ZW50TGlzdGVuZXIoZXZlbnQsIGxpc3RlbmVyKTtcbiAgfSk7XG59XG5cbmZ1bmN0aW9uIG5vdGlmaWNhdGlvbnNSZW1vdmVFdmVudExpc3RlbmVyPEsgZXh0ZW5kcyBOb3RpZmljYXRpb25FdmVudE5hbWU+KGV2ZW50OiBLLCBsaXN0ZW5lcjogKG9iajogTm90aWZpY2F0aW9uRXZlbnRUeXBlTWFwW0tdKSA9PiB2b2lkKTogdm9pZCB7XG4gIHdpbmRvdy5PbmVTaWduYWxEZWZlcnJlZD8ucHVzaCgob25lU2lnbmFsOiBJT25lU2lnbmFsT25lU2lnbmFsKSA9PiB7XG4gICAgb25lU2lnbmFsLk5vdGlmaWNhdGlvbnMucmVtb3ZlRXZlbnRMaXN0ZW5lcihldmVudCwgbGlzdGVuZXIpO1xuICB9KTtcbn1cblxuZnVuY3Rpb24gc2Vzc2lvblNlbmRPdXRjb21lKG91dGNvbWVOYW1lOiBzdHJpbmcsIG91dGNvbWVXZWlnaHQ/OiBudW1iZXIpOiBQcm9taXNlPHZvaWQ+IHtcbiAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICBpZiAoaXNPbmVTaWduYWxTY3JpcHRGYWlsZWQpIHtcbiAgICAgIHJlamVjdCgpO1xuICAgIH1cblxuICAgIHdpbmRvdy5PbmVTaWduYWxEZWZlcnJlZD8ucHVzaCgob25lU2lnbmFsOiBJT25lU2lnbmFsT25lU2lnbmFsKSA9PiB7XG4gICAgICBvbmVTaWduYWwuU2Vzc2lvbi5zZW5kT3V0Y29tZShvdXRjb21lTmFtZSwgb3V0Y29tZVdlaWdodClcbiAgICAgICAgLnRoZW4oKHZhbHVlOiBhbnkpID0+IHJlc29sdmUodmFsdWUpKVxuICAgICAgICAuY2F0Y2goKGVycm9yOiBFcnJvcikgPT4gcmVqZWN0KGVycm9yKSk7XG4gICAgfSk7XG4gIH0pO1xufVxuXG5mdW5jdGlvbiBzZXNzaW9uU2VuZFVuaXF1ZU91dGNvbWUob3V0Y29tZU5hbWU6IHN0cmluZyk6IFByb21pc2U8dm9pZD4ge1xuICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgIGlmIChpc09uZVNpZ25hbFNjcmlwdEZhaWxlZCkge1xuICAgICAgcmVqZWN0KCk7XG4gICAgfVxuXG4gICAgd2luZG93Lk9uZVNpZ25hbERlZmVycmVkPy5wdXNoKChvbmVTaWduYWw6IElPbmVTaWduYWxPbmVTaWduYWwpID0+IHtcbiAgICAgIG9uZVNpZ25hbC5TZXNzaW9uLnNlbmRVbmlxdWVPdXRjb21lKG91dGNvbWVOYW1lKVxuICAgICAgICAudGhlbigodmFsdWU6IGFueSkgPT4gcmVzb2x2ZSh2YWx1ZSkpXG4gICAgICAgIC5jYXRjaCgoZXJyb3I6IEVycm9yKSA9PiByZWplY3QoZXJyb3IpKTtcbiAgICB9KTtcbiAgfSk7XG59XG5cbmZ1bmN0aW9uIHVzZXJBZGRBbGlhcyhsYWJlbDogc3RyaW5nLCBpZDogc3RyaW5nKTogdm9pZCB7XG4gIHdpbmRvdy5PbmVTaWduYWxEZWZlcnJlZD8ucHVzaCgob25lU2lnbmFsOiBJT25lU2lnbmFsT25lU2lnbmFsKSA9PiB7XG4gICAgb25lU2lnbmFsLlVzZXIuYWRkQWxpYXMobGFiZWwsIGlkKTtcbiAgfSk7XG59XG5cbmZ1bmN0aW9uIHVzZXJBZGRBbGlhc2VzKGFsaWFzZXM6IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH0pOiB2b2lkIHtcbiAgd2luZG93Lk9uZVNpZ25hbERlZmVycmVkPy5wdXNoKChvbmVTaWduYWw6IElPbmVTaWduYWxPbmVTaWduYWwpID0+IHtcbiAgICBvbmVTaWduYWwuVXNlci5hZGRBbGlhc2VzKGFsaWFzZXMpO1xuICB9KTtcbn1cblxuZnVuY3Rpb24gdXNlclJlbW92ZUFsaWFzKGxhYmVsOiBzdHJpbmcpOiB2b2lkIHtcbiAgd2luZG93Lk9uZVNpZ25hbERlZmVycmVkPy5wdXNoKChvbmVTaWduYWw6IElPbmVTaWduYWxPbmVTaWduYWwpID0+IHtcbiAgICBvbmVTaWduYWwuVXNlci5yZW1vdmVBbGlhcyhsYWJlbCk7XG4gIH0pO1xufVxuXG5mdW5jdGlvbiB1c2VyUmVtb3ZlQWxpYXNlcyhsYWJlbHM6IHN0cmluZ1tdKTogdm9pZCB7XG4gIHdpbmRvdy5PbmVTaWduYWxEZWZlcnJlZD8ucHVzaCgob25lU2lnbmFsOiBJT25lU2lnbmFsT25lU2lnbmFsKSA9PiB7XG4gICAgb25lU2lnbmFsLlVzZXIucmVtb3ZlQWxpYXNlcyhsYWJlbHMpO1xuICB9KTtcbn1cblxuZnVuY3Rpb24gdXNlckFkZEVtYWlsKGVtYWlsOiBzdHJpbmcpOiB2b2lkIHtcbiAgd2luZG93Lk9uZVNpZ25hbERlZmVycmVkPy5wdXNoKChvbmVTaWduYWw6IElPbmVTaWduYWxPbmVTaWduYWwpID0+IHtcbiAgICBvbmVTaWduYWwuVXNlci5hZGRFbWFpbChlbWFpbCk7XG4gIH0pO1xufVxuXG5mdW5jdGlvbiB1c2VyUmVtb3ZlRW1haWwoZW1haWw6IHN0cmluZyk6IHZvaWQge1xuICB3aW5kb3cuT25lU2lnbmFsRGVmZXJyZWQ/LnB1c2goKG9uZVNpZ25hbDogSU9uZVNpZ25hbE9uZVNpZ25hbCkgPT4ge1xuICAgIG9uZVNpZ25hbC5Vc2VyLnJlbW92ZUVtYWlsKGVtYWlsKTtcbiAgfSk7XG59XG5cbmZ1bmN0aW9uIHVzZXJBZGRTbXMoc21zTnVtYmVyOiBzdHJpbmcpOiB2b2lkIHtcbiAgd2luZG93Lk9uZVNpZ25hbERlZmVycmVkPy5wdXNoKChvbmVTaWduYWw6IElPbmVTaWduYWxPbmVTaWduYWwpID0+IHtcbiAgICBvbmVTaWduYWwuVXNlci5hZGRTbXMoc21zTnVtYmVyKTtcbiAgfSk7XG59XG5cbmZ1bmN0aW9uIHVzZXJSZW1vdmVTbXMoc21zTnVtYmVyOiBzdHJpbmcpOiB2b2lkIHtcbiAgd2luZG93Lk9uZVNpZ25hbERlZmVycmVkPy5wdXNoKChvbmVTaWduYWw6IElPbmVTaWduYWxPbmVTaWduYWwpID0+IHtcbiAgICBvbmVTaWduYWwuVXNlci5yZW1vdmVTbXMoc21zTnVtYmVyKTtcbiAgfSk7XG59XG5cbmZ1bmN0aW9uIHVzZXJBZGRUYWcoa2V5OiBzdHJpbmcsIHZhbHVlOiBzdHJpbmcpOiB2b2lkIHtcbiAgd2luZG93Lk9uZVNpZ25hbERlZmVycmVkPy5wdXNoKChvbmVTaWduYWw6IElPbmVTaWduYWxPbmVTaWduYWwpID0+IHtcbiAgICBvbmVTaWduYWwuVXNlci5hZGRUYWcoa2V5LCB2YWx1ZSk7XG4gIH0pO1xufVxuXG5mdW5jdGlvbiB1c2VyQWRkVGFncyh0YWdzOiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9KTogdm9pZCB7XG4gIHdpbmRvdy5PbmVTaWduYWxEZWZlcnJlZD8ucHVzaCgob25lU2lnbmFsOiBJT25lU2lnbmFsT25lU2lnbmFsKSA9PiB7XG4gICAgb25lU2lnbmFsLlVzZXIuYWRkVGFncyh0YWdzKTtcbiAgfSk7XG59XG5cbmZ1bmN0aW9uIHVzZXJSZW1vdmVUYWcoa2V5OiBzdHJpbmcpOiB2b2lkIHtcbiAgd2luZG93Lk9uZVNpZ25hbERlZmVycmVkPy5wdXNoKChvbmVTaWduYWw6IElPbmVTaWduYWxPbmVTaWduYWwpID0+IHtcbiAgICBvbmVTaWduYWwuVXNlci5yZW1vdmVUYWcoa2V5KTtcbiAgfSk7XG59XG5cbmZ1bmN0aW9uIHVzZXJSZW1vdmVUYWdzKGtleXM6IHN0cmluZ1tdKTogdm9pZCB7XG4gIHdpbmRvdy5PbmVTaWduYWxEZWZlcnJlZD8ucHVzaCgob25lU2lnbmFsOiBJT25lU2lnbmFsT25lU2lnbmFsKSA9PiB7XG4gICAgb25lU2lnbmFsLlVzZXIucmVtb3ZlVGFncyhrZXlzKTtcbiAgfSk7XG59XG5cbmZ1bmN0aW9uIHB1c2hTdWJzY3JpcHRpb25PcHRJbigpOiBQcm9taXNlPHZvaWQ+IHtcbiAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICBpZiAoaXNPbmVTaWduYWxTY3JpcHRGYWlsZWQpIHtcbiAgICAgIHJlamVjdCgpO1xuICAgIH1cblxuICAgIHdpbmRvdy5PbmVTaWduYWxEZWZlcnJlZD8ucHVzaCgob25lU2lnbmFsOiBJT25lU2lnbmFsT25lU2lnbmFsKSA9PiB7XG4gICAgICBvbmVTaWduYWwuVXNlci5QdXNoU3Vic2NyaXB0aW9uLm9wdEluKClcbiAgICAgICAgLnRoZW4oKHZhbHVlOiBhbnkpID0+IHJlc29sdmUodmFsdWUpKVxuICAgICAgICAuY2F0Y2goKGVycm9yOiBFcnJvcikgPT4gcmVqZWN0KGVycm9yKSk7XG4gICAgfSk7XG4gIH0pO1xufVxuXG5mdW5jdGlvbiBwdXNoU3Vic2NyaXB0aW9uT3B0T3V0KCk6IFByb21pc2U8dm9pZD4ge1xuICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgIGlmIChpc09uZVNpZ25hbFNjcmlwdEZhaWxlZCkge1xuICAgICAgcmVqZWN0KCk7XG4gICAgfVxuXG4gICAgd2luZG93Lk9uZVNpZ25hbERlZmVycmVkPy5wdXNoKChvbmVTaWduYWw6IElPbmVTaWduYWxPbmVTaWduYWwpID0+IHtcbiAgICAgIG9uZVNpZ25hbC5Vc2VyLlB1c2hTdWJzY3JpcHRpb24ub3B0T3V0KClcbiAgICAgICAgLnRoZW4oKHZhbHVlOiBhbnkpID0+IHJlc29sdmUodmFsdWUpKVxuICAgICAgICAuY2F0Y2goKGVycm9yOiBFcnJvcikgPT4gcmVqZWN0KGVycm9yKSk7XG4gICAgfSk7XG4gIH0pO1xufVxuXG5mdW5jdGlvbiBwdXNoU3Vic2NyaXB0aW9uQWRkRXZlbnRMaXN0ZW5lcihldmVudDogJ2NoYW5nZScsIGxpc3RlbmVyOiAoY2hhbmdlOiBTdWJzY3JpcHRpb25DaGFuZ2VFdmVudCkgPT4gdm9pZCk6IHZvaWQge1xuICB3aW5kb3cuT25lU2lnbmFsRGVmZXJyZWQ/LnB1c2goKG9uZVNpZ25hbDogSU9uZVNpZ25hbE9uZVNpZ25hbCkgPT4ge1xuICAgIG9uZVNpZ25hbC5Vc2VyLlB1c2hTdWJzY3JpcHRpb24uYWRkRXZlbnRMaXN0ZW5lcihldmVudCwgbGlzdGVuZXIpO1xuICB9KTtcbn1cblxuZnVuY3Rpb24gcHVzaFN1YnNjcmlwdGlvblJlbW92ZUV2ZW50TGlzdGVuZXIoZXZlbnQ6ICdjaGFuZ2UnLCBsaXN0ZW5lcjogKGNoYW5nZTogU3Vic2NyaXB0aW9uQ2hhbmdlRXZlbnQpID0+IHZvaWQpOiB2b2lkIHtcbiAgd2luZG93Lk9uZVNpZ25hbERlZmVycmVkPy5wdXNoKChvbmVTaWduYWw6IElPbmVTaWduYWxPbmVTaWduYWwpID0+IHtcbiAgICBvbmVTaWduYWwuVXNlci5QdXNoU3Vic2NyaXB0aW9uLnJlbW92ZUV2ZW50TGlzdGVuZXIoZXZlbnQsIGxpc3RlbmVyKTtcbiAgfSk7XG59XG5cbmZ1bmN0aW9uIGRlYnVnU2V0TG9nTGV2ZWwobG9nTGV2ZWw6IHN0cmluZyk6IHZvaWQge1xuICB3aW5kb3cuT25lU2lnbmFsRGVmZXJyZWQ/LnB1c2goKG9uZVNpZ25hbDogSU9uZVNpZ25hbE9uZVNpZ25hbCkgPT4ge1xuICAgIG9uZVNpZ25hbC5EZWJ1Zy5zZXRMb2dMZXZlbChsb2dMZXZlbCk7XG4gIH0pO1xufVxuXG5jb25zdCBQdXNoU3Vic2NyaXB0aW9uTmFtZXNwYWNlOiBJT25lU2lnbmFsUHVzaFN1YnNjcmlwdGlvbiA9IHtcblx0Z2V0IGlkKCk6IHN0cmluZyB8IG51bGwgfCB1bmRlZmluZWQgeyByZXR1cm4gd2luZG93Lk9uZVNpZ25hbD8uVXNlcj8uUHVzaFN1YnNjcmlwdGlvbj8uaWQgfSxcblx0Z2V0IHRva2VuKCk6IHN0cmluZyB8IG51bGwgfCB1bmRlZmluZWQgeyByZXR1cm4gd2luZG93Lk9uZVNpZ25hbD8uVXNlcj8uUHVzaFN1YnNjcmlwdGlvbj8udG9rZW4gfSxcblx0Z2V0IG9wdGVkSW4oKTogYm9vbGVhbiB8IHVuZGVmaW5lZCB7IHJldHVybiB3aW5kb3cuT25lU2lnbmFsPy5Vc2VyPy5QdXNoU3Vic2NyaXB0aW9uPy5vcHRlZEluIH0sXG5cdG9wdEluOiBwdXNoU3Vic2NyaXB0aW9uT3B0SW4sXG5cdG9wdE91dDogcHVzaFN1YnNjcmlwdGlvbk9wdE91dCxcblx0YWRkRXZlbnRMaXN0ZW5lcjogcHVzaFN1YnNjcmlwdGlvbkFkZEV2ZW50TGlzdGVuZXIsXG5cdHJlbW92ZUV2ZW50TGlzdGVuZXI6IHB1c2hTdWJzY3JpcHRpb25SZW1vdmVFdmVudExpc3RlbmVyLFxufTtcblxuY29uc3QgVXNlck5hbWVzcGFjZTogSU9uZVNpZ25hbFVzZXIgPSB7XG5cdGFkZEFsaWFzOiB1c2VyQWRkQWxpYXMsXG5cdGFkZEFsaWFzZXM6IHVzZXJBZGRBbGlhc2VzLFxuXHRyZW1vdmVBbGlhczogdXNlclJlbW92ZUFsaWFzLFxuXHRyZW1vdmVBbGlhc2VzOiB1c2VyUmVtb3ZlQWxpYXNlcyxcblx0YWRkRW1haWw6IHVzZXJBZGRFbWFpbCxcblx0cmVtb3ZlRW1haWw6IHVzZXJSZW1vdmVFbWFpbCxcblx0YWRkU21zOiB1c2VyQWRkU21zLFxuXHRyZW1vdmVTbXM6IHVzZXJSZW1vdmVTbXMsXG5cdGFkZFRhZzogdXNlckFkZFRhZyxcblx0YWRkVGFnczogdXNlckFkZFRhZ3MsXG5cdHJlbW92ZVRhZzogdXNlclJlbW92ZVRhZyxcblx0cmVtb3ZlVGFnczogdXNlclJlbW92ZVRhZ3MsXG5cdFB1c2hTdWJzY3JpcHRpb246IFB1c2hTdWJzY3JpcHRpb25OYW1lc3BhY2UsXG59O1xuXG5jb25zdCBTZXNzaW9uTmFtZXNwYWNlOiBJT25lU2lnbmFsU2Vzc2lvbiA9IHtcblx0c2VuZE91dGNvbWU6IHNlc3Npb25TZW5kT3V0Y29tZSxcblx0c2VuZFVuaXF1ZU91dGNvbWU6IHNlc3Npb25TZW5kVW5pcXVlT3V0Y29tZSxcbn07XG5cbmNvbnN0IERlYnVnTmFtZXNwYWNlOiBJT25lU2lnbmFsRGVidWcgPSB7XG5cdHNldExvZ0xldmVsOiBkZWJ1Z1NldExvZ0xldmVsLFxufTtcblxuY29uc3QgU2xpZGVkb3duTmFtZXNwYWNlOiBJT25lU2lnbmFsU2xpZGVkb3duID0ge1xuXHRwcm9tcHRQdXNoOiBzbGlkZWRvd25Qcm9tcHRQdXNoLFxuXHRwcm9tcHRQdXNoQ2F0ZWdvcmllczogc2xpZGVkb3duUHJvbXB0UHVzaENhdGVnb3JpZXMsXG5cdHByb21wdFNtczogc2xpZGVkb3duUHJvbXB0U21zLFxuXHRwcm9tcHRFbWFpbDogc2xpZGVkb3duUHJvbXB0RW1haWwsXG5cdHByb21wdFNtc0FuZEVtYWlsOiBzbGlkZWRvd25Qcm9tcHRTbXNBbmRFbWFpbCxcblx0YWRkRXZlbnRMaXN0ZW5lcjogc2xpZGVkb3duQWRkRXZlbnRMaXN0ZW5lcixcblx0cmVtb3ZlRXZlbnRMaXN0ZW5lcjogc2xpZGVkb3duUmVtb3ZlRXZlbnRMaXN0ZW5lcixcbn07XG5cbmNvbnN0IE5vdGlmaWNhdGlvbnNOYW1lc3BhY2U6IElPbmVTaWduYWxOb3RpZmljYXRpb25zID0ge1xuXHRnZXQgcGVybWlzc2lvbk5hdGl2ZSgpOiBOb3RpZmljYXRpb25QZXJtaXNzaW9uIHsgcmV0dXJuIHdpbmRvdy5PbmVTaWduYWw/Lk5vdGlmaWNhdGlvbnM/LnBlcm1pc3Npb25OYXRpdmUgPz8gJ2RlZmF1bHQnOyB9LFxuXHRnZXQgcGVybWlzc2lvbigpOiBib29sZWFuIHsgcmV0dXJuIHdpbmRvdy5PbmVTaWduYWw/Lk5vdGlmaWNhdGlvbnM/LnBlcm1pc3Npb24gPz8gZmFsc2U7IH0sXG5cdHNldERlZmF1bHRVcmw6IG5vdGlmaWNhdGlvbnNTZXREZWZhdWx0VXJsLFxuXHRzZXREZWZhdWx0VGl0bGU6IG5vdGlmaWNhdGlvbnNTZXREZWZhdWx0VGl0bGUsXG5cdGlzUHVzaFN1cHBvcnRlZCxcblx0cmVxdWVzdFBlcm1pc3Npb246IG5vdGlmaWNhdGlvbnNSZXF1ZXN0UGVybWlzc2lvbixcblx0YWRkRXZlbnRMaXN0ZW5lcjogbm90aWZpY2F0aW9uc0FkZEV2ZW50TGlzdGVuZXIsXG5cdHJlbW92ZUV2ZW50TGlzdGVuZXI6IG5vdGlmaWNhdGlvbnNSZW1vdmVFdmVudExpc3RlbmVyLFxufTtcblxuLyoqXG4gKiBAUHVibGljQXBpXG4gKi9cbmZ1bmN0aW9uIGlzUHVzaFN1cHBvcnRlZCgpOiBib29sZWFuIHtcbiAgcmV0dXJuIGlzUHVzaE5vdGlmaWNhdGlvbnNTdXBwb3J0ZWQoKTtcbn1cblxuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuY29uc3QgT05FU0lHTkFMX1NES19JRCA9ICdvbmVzaWduYWwtc2RrJztcbmNvbnN0IE9ORV9TSUdOQUxfU0NSSVBUX1NSQyA9ICdodHRwczovL2Nkbi5vbmVzaWduYWwuY29tL3Nka3Mvd2ViL3YxNi9PbmVTaWduYWxTREsucGFnZS5qcyc7XG5cbi8vIHRydWUgaWYgdGhlIHNjcmlwdCBpcyBzdWNjZXNzZnVsbHkgbG9hZGVkIGZyb20gQ0ROLlxubGV0IGlzT25lU2lnbmFsSW5pdGlhbGl6ZWQgPSBmYWxzZTtcbi8vIHRydWUgaWYgdGhlIHNjcmlwdCBmYWlscyB0byBsb2FkIGZyb20gQ0ROLiBBIHNlcGFyYXRlIGZsYWcgaXMgbmVjZXNzYXJ5XG4vLyB0byBkaXNhbWJpZ3VhdGUgYmV0d2VlbiBhIENETiBsb2FkIGZhaWx1cmUgYW5kIGEgZGVsYXllZCBjYWxsIHRvXG4vLyBPbmVTaWduYWwjaW5pdC5cbmxldCBpc09uZVNpZ25hbFNjcmlwdEZhaWxlZCA9IGZhbHNlO1xuXG5pZiAod2luZG93KSB7XG4gIHdpbmRvdy5PbmVTaWduYWxEZWZlcnJlZCA9IHdpbmRvdy5PbmVTaWduYWxEZWZlcnJlZCB8fCBbXTtcbiAgYWRkU0RLU2NyaXB0KCk7XG59XG5cbi8qKlxuICogVGhlIGZvbGxvd2luZyBjb2RlIGlzIGNvcGllZCBkaXJlY3RseSBmcm9tIHRoZSBuYXRpdmUgU0RLIHNvdXJjZSBmaWxlIEJyb3dzZXJTdXBwb3J0c1B1c2gudHNcbiAqIFMgVCBBIFIgVFxuICovXG5cbi8vIENoZWNrcyBpZiB0aGUgYnJvd3NlciBzdXBwb3J0cyBwdXNoIG5vdGlmaWNhdGlvbnMgYnkgY2hlY2tpbmcgaWYgc3BlY2lmaWNcbi8vICAgY2xhc3NlcyBhbmQgcHJvcGVydGllcyBvbiB0aGVtIGV4aXN0XG5mdW5jdGlvbiBpc1B1c2hOb3RpZmljYXRpb25zU3VwcG9ydGVkKCk6IGJvb2xlYW4ge1xuICByZXR1cm4gc3VwcG9ydHNWYXBpZFB1c2goKSB8fCBzdXBwb3J0c1NhZmFyaVB1c2goKTtcbn1cblxuZnVuY3Rpb24gaXNNYWNPU1NhZmFyaUluSWZyYW1lKCk6IGJvb2xlYW4ge1xuICAvLyBGYWxsYmFjayBkZXRlY3Rpb24gZm9yIFNhZmFyaSBvbiBtYWNPUyBpbiBhbiBpZnJhbWUgY29udGV4dFxuICByZXR1cm4gd2luZG93LnRvcCAhPT0gd2luZG93ICYmIC8vIGlzQ29udGV4dElmcmFtZVxuICBuYXZpZ2F0b3IudmVuZG9yID09PSAnQXBwbGUgQ29tcHV0ZXIsIEluYy4nICYmIC8vIGlzU2FmYXJpXG4gIG5hdmlnYXRvci5wbGF0Zm9ybSA9PT0gJ01hY0ludGVsJzsgLy8gaXNNYWNPU1xufVxuXG5mdW5jdGlvbiBzdXBwb3J0c1NhZmFyaVB1c2goKTogYm9vbGVhbiB7XG4gIHJldHVybiAod2luZG93LnNhZmFyaSAmJiB0eXBlb2Ygd2luZG93LnNhZmFyaS5wdXNoTm90aWZpY2F0aW9uICE9PSAndW5kZWZpbmVkJykgfHxcbiAgICAgICAgICBpc01hY09TU2FmYXJpSW5JZnJhbWUoKTtcbn1cblxuLy8gRG9lcyB0aGUgYnJvd3NlciBzdXBwb3J0IHRoZSBzdGFuZGFyZCBQdXNoIEFQSVxuZnVuY3Rpb24gc3VwcG9ydHNWYXBpZFB1c2goKTogYm9vbGVhbiB7XG4gIHJldHVybiB0eXBlb2YgUHVzaFN1YnNjcmlwdGlvbk9wdGlvbnMgIT09ICd1bmRlZmluZWQnICYmXG4gICAgICAgIFB1c2hTdWJzY3JpcHRpb25PcHRpb25zLnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eSgnYXBwbGljYXRpb25TZXJ2ZXJLZXknKTtcbn1cbi8qIEUgTiBEICovXG5cbmZ1bmN0aW9uIGhhbmRsZU9uRXJyb3IoKTogdm9pZCB7XG4gIGlzT25lU2lnbmFsU2NyaXB0RmFpbGVkID0gdHJ1ZTtcbn1cblxuZnVuY3Rpb24gYWRkU0RLU2NyaXB0KCk6IHZvaWQge1xuICBjb25zdCBzY3JpcHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzY3JpcHQnKTtcbiAgc2NyaXB0LmlkID0gT05FU0lHTkFMX1NES19JRDtcbiAgc2NyaXB0LmRlZmVyID0gdHJ1ZTtcbiAgc2NyaXB0LnNyYyA9IE9ORV9TSUdOQUxfU0NSSVBUX1NSQztcblxuICAvLyBBbHdheXMgcmVzb2x2ZSB3aGV0aGVyIG9yIG5vdCB0aGUgc2NyaXB0IGlzIHN1Y2Nlc3NmdWxseSBpbml0aWFsaXplZC5cbiAgLy8gVGhpcyBpcyBpbXBvcnRhbnQgZm9yIHVzZXJzIHdobyBtYXkgYmxvY2sgY2RuLm9uZXNpZ25hbC5jb20gdy8gYWRibG9jay5cbiAgc2NyaXB0Lm9uZXJyb3IgPSAoKSA9PiB7XG4gICAgaGFuZGxlT25FcnJvcigpO1xuICB9O1xuXG4gIGRvY3VtZW50LmhlYWQuYXBwZW5kQ2hpbGQoc2NyaXB0KTtcbn1cblxuXG5kZWNsYXJlIGdsb2JhbCB7XG4gIGludGVyZmFjZSBXaW5kb3cge1xuICAgIE9uZVNpZ25hbERlZmVycmVkPzogT25lU2lnbmFsRGVmZXJyZWRMb2FkZWRDYWxsYmFja1tdO1xuICAgIE9uZVNpZ25hbD86IElPbmVTaWduYWxPbmVTaWduYWw7XG4gICAgc2FmYXJpPzoge1xuICAgICAgcHVzaE5vdGlmaWNhdGlvbjogYW55O1xuICAgIH07XG4gIH1cbn1cblxuaW50ZXJmYWNlIElPbmVTaWduYWxPbmVTaWduYWwge1xuICBba2V5OiBzdHJpbmddOiBhbnk7XG59XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIE9uZVNpZ25hbCBpbXBsZW1lbnRzIElPbmVTaWduYWxPbmVTaWduYWwge1xuICBba2V5OiBzdHJpbmddOiBhbnk7XG5cbiAgY29uc3RydWN0b3IoKSB7IH1cblxuICAvKiBQIFUgQiBMIEkgQyAqL1xuXG4gIC8qKlxuICAgKiBAUHVibGljQXBpXG4gICAqL1xuICBpbml0KG9wdGlvbnM6IElJbml0T2JqZWN0KTogUHJvbWlzZTx2b2lkPiB7XG4gICAgaWYgKGlzT25lU2lnbmFsSW5pdGlhbGl6ZWQpIHtcbiAgICAgIHJldHVybiBQcm9taXNlLnJlamVjdChgT25lU2lnbmFsIGlzIGFscmVhZHkgaW5pdGlhbGl6ZWQuYCk7XG4gICAgfVxuXG4gICAgaWYgKCFvcHRpb25zIHx8ICFvcHRpb25zLmFwcElkKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ1lvdSBuZWVkIHRvIHByb3ZpZGUgeW91ciBPbmVTaWduYWwgYXBwSWQuJyk7XG4gICAgfVxuXG4gICAgaWYgKCFkb2N1bWVudCkge1xuICAgICAgcmV0dXJuIFByb21pc2UucmVqZWN0KGBEb2N1bWVudCBpcyBub3QgZGVmaW5lZC5gKTtcbiAgICB9XG5cbiAgICByZXR1cm4gbmV3IFByb21pc2U8dm9pZD4oKHJlc29sdmUpID0+IHtcbiAgICAgIHdpbmRvdy5PbmVTaWduYWxEZWZlcnJlZD8ucHVzaCgob25lU2lnbmFsOiBJT25lU2lnbmFsT25lU2lnbmFsKSA9PiB7XG4gICAgICAgIG9uZVNpZ25hbC5pbml0KG9wdGlvbnMpLnRoZW4oKCkgPT4ge1xuICAgICAgICAgIGlzT25lU2lnbmFsSW5pdGlhbGl6ZWQgPSB0cnVlO1xuICAgICAgICAgIHJlc29sdmUoKTtcbiAgICAgICAgfSk7XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfVxuXG5cdFVzZXIgPSBVc2VyTmFtZXNwYWNlO1xuXHRTZXNzaW9uID0gU2Vzc2lvbk5hbWVzcGFjZTtcblx0RGVidWcgPSBEZWJ1Z05hbWVzcGFjZTtcblx0U2xpZGVkb3duID0gU2xpZGVkb3duTmFtZXNwYWNlO1xuXHROb3RpZmljYXRpb25zID0gTm90aWZpY2F0aW9uc05hbWVzcGFjZTtcblx0bG9naW4gPSBvbmVTaWduYWxMb2dpbjtcblx0bG9nb3V0ID0gb25lU2lnbmFsTG9nb3V0O1xuXHRzZXRDb25zZW50R2l2ZW4gPSBvbmVTaWduYWxTZXRDb25zZW50R2l2ZW47XG5cdHNldENvbnNlbnRSZXF1aXJlZCA9IG9uZVNpZ25hbFNldENvbnNlbnRSZXF1aXJlZDtcbn1cbiJdfQ== \ No newline at end of file diff --git a/fesm2015/onesignal-ngx.js b/fesm2015/onesignal-ngx.js index d3ec479..28832a5 100644 --- a/fesm2015/onesignal-ngx.js +++ b/fesm2015/onesignal-ngx.js @@ -1,663 +1,469 @@ import * as i0 from '@angular/core'; import { Injectable, Component, NgModule } from '@angular/core'; -const ONESIGNAL_SDK_ID = 'onesignal-sdk'; -const ONE_SIGNAL_SCRIPT_SRC = 'https://cdn.onesignal.com/sdks/OneSignalSDK.js'; -const ONESIGNAL_NOT_SETUP_ERROR = 'OneSignal is not setup correctly.'; -const MAX_TIMEOUT = 30; -class OneSignal { - constructor() { - this.isOneSignalInitialized = false; - this.ngOneSignalFunctionQueue = []; - /* H E L P E R S */ - this.injectScript = () => { - const script = document.createElement('script'); - script.id = ONESIGNAL_SDK_ID; - script.src = ONE_SIGNAL_SCRIPT_SRC; - script.async = true; - document.head.appendChild(script); - }; - this.doesOneSignalExist = () => { - if (window.OneSignal) { - return true; - } - return false; - }; - this.processQueuedOneSignalFunctions = () => { - this.ngOneSignalFunctionQueue.forEach(element => { - const { name, args, promiseResolver } = element; - if (!!promiseResolver) { - this[name](...args).then((result) => { - promiseResolver(result); - }); - } - else { - window.OneSignal[name](...args); - } - }); - }; - this.setupOneSignalIfMissing = () => { - if (!this.doesOneSignalExist()) { - window.OneSignal = window.OneSignal || []; - } - }; - } - /* P U B L I C */ - init(options) { - return new Promise(resolve => { - if (this.isOneSignalInitialized) { - return; - } - this.injectScript(); - this.setupOneSignalIfMissing(); - window.OneSignal.push(() => { - window.OneSignal.init(options); - }); - const timeout = setTimeout(() => { - console.error(ONESIGNAL_NOT_SETUP_ERROR); - }, MAX_TIMEOUT * 1000); - window.OneSignal.push(() => { - clearTimeout(timeout); - this.isOneSignalInitialized = true; - this.processQueuedOneSignalFunctions(); - resolve(); - }); - }); - } - on(event, listener) { - if (!this.doesOneSignalExist()) { - this.ngOneSignalFunctionQueue.push({ - name: 'on', - args: arguments, - }); - return; +function oneSignalLogin(externalId, jwtToken) { + return new Promise((resolve, reject) => { + var _a; + if (isOneSignalScriptFailed) { + reject(); } - window.OneSignal.push(() => { - window.OneSignal.on(event, listener); + (_a = window.OneSignalDeferred) === null || _a === void 0 ? void 0 : _a.push((oneSignal) => { + oneSignal.login(externalId, jwtToken) + .then((value) => resolve(value)) + .catch((error) => reject(error)); }); - } - off(event, listener) { - if (!this.doesOneSignalExist()) { - this.ngOneSignalFunctionQueue.push({ - name: 'off', - args: arguments, - }); - return; + }); +} +function oneSignalLogout() { + return new Promise((resolve, reject) => { + var _a; + if (isOneSignalScriptFailed) { + reject(); } - window.OneSignal.push(() => { - window.OneSignal.off(event, listener); + (_a = window.OneSignalDeferred) === null || _a === void 0 ? void 0 : _a.push((oneSignal) => { + oneSignal.logout() + .then((value) => resolve(value)) + .catch((error) => reject(error)); }); - } - once(event, listener) { - if (!this.doesOneSignalExist()) { - this.ngOneSignalFunctionQueue.push({ - name: 'once', - args: arguments, - }); - return; + }); +} +function oneSignalSetConsentGiven(consent) { + return new Promise((resolve, reject) => { + var _a; + if (isOneSignalScriptFailed) { + reject(); } - window.OneSignal.push(() => { - window.OneSignal.once(event, listener); - }); - } - isPushNotificationsEnabled(callback) { - return new Promise((resolve, reject) => { - if (!this.doesOneSignalExist()) { - this.ngOneSignalFunctionQueue.push({ - name: 'isPushNotificationsEnabled', - args: arguments, - promiseResolver: resolve, - }); - return; - } - window.OneSignal.push(() => { - window.OneSignal.isPushNotificationsEnabled(callback) - .then((value) => resolve(value)) - .catch((error) => reject(error)); - }); - }); - } - showHttpPrompt(options) { - return new Promise((resolve, reject) => { - if (!this.doesOneSignalExist()) { - this.ngOneSignalFunctionQueue.push({ - name: 'showHttpPrompt', - args: arguments, - promiseResolver: resolve, - }); - return; - } - window.OneSignal.push(() => { - window.OneSignal.showHttpPrompt(options) - .then((value) => resolve(value)) - .catch((error) => reject(error)); - }); - }); - } - registerForPushNotifications(options) { - return new Promise((resolve, reject) => { - if (!this.doesOneSignalExist()) { - this.ngOneSignalFunctionQueue.push({ - name: 'registerForPushNotifications', - args: arguments, - promiseResolver: resolve, - }); - return; - } - window.OneSignal.push(() => { - window.OneSignal.registerForPushNotifications(options) - .then((value) => resolve(value)) - .catch((error) => reject(error)); - }); - }); - } - setDefaultNotificationUrl(url) { - return new Promise((resolve, reject) => { - if (!this.doesOneSignalExist()) { - this.ngOneSignalFunctionQueue.push({ - name: 'setDefaultNotificationUrl', - args: arguments, - promiseResolver: resolve, - }); - return; - } - window.OneSignal.push(() => { - window.OneSignal.setDefaultNotificationUrl(url) - .then((value) => resolve(value)) - .catch((error) => reject(error)); - }); - }); - } - setDefaultTitle(title) { - return new Promise((resolve, reject) => { - if (!this.doesOneSignalExist()) { - this.ngOneSignalFunctionQueue.push({ - name: 'setDefaultTitle', - args: arguments, - promiseResolver: resolve, - }); - return; - } - window.OneSignal.push(() => { - window.OneSignal.setDefaultTitle(title) - .then((value) => resolve(value)) - .catch((error) => reject(error)); - }); - }); - } - getTags(callback) { - return new Promise((resolve, reject) => { - if (!this.doesOneSignalExist()) { - this.ngOneSignalFunctionQueue.push({ - name: 'getTags', - args: arguments, - promiseResolver: resolve, - }); - return; - } - window.OneSignal.push(() => { - window.OneSignal.getTags(callback) - .then((value) => resolve(value)) - .catch((error) => reject(error)); - }); - }); - } - sendTag(key, value, callback) { - return new Promise((resolve, reject) => { - if (!this.doesOneSignalExist()) { - this.ngOneSignalFunctionQueue.push({ - name: 'sendTag', - args: arguments, - promiseResolver: resolve, - }); - return; - } - window.OneSignal.push(() => { - window.OneSignal.sendTag(key, value, callback) - .then((value) => resolve(value)) - .catch((error) => reject(error)); - }); - }); - } - sendTags(tags, callback) { - return new Promise((resolve, reject) => { - if (!this.doesOneSignalExist()) { - this.ngOneSignalFunctionQueue.push({ - name: 'sendTags', - args: arguments, - promiseResolver: resolve, - }); - return; - } - window.OneSignal.push(() => { - window.OneSignal.sendTags(tags, callback) - .then((value) => resolve(value)) - .catch((error) => reject(error)); - }); + (_a = window.OneSignalDeferred) === null || _a === void 0 ? void 0 : _a.push((oneSignal) => { + oneSignal.setConsentGiven(consent) + .then((value) => resolve(value)) + .catch((error) => reject(error)); }); - } - deleteTag(tag) { - return new Promise((resolve, reject) => { - if (!this.doesOneSignalExist()) { - this.ngOneSignalFunctionQueue.push({ - name: 'deleteTag', - args: arguments, - promiseResolver: resolve, - }); - return; - } - window.OneSignal.push(() => { - window.OneSignal.deleteTag(tag) - .then((value) => resolve(value)) - .catch((error) => reject(error)); - }); - }); - } - deleteTags(tags, callback) { - return new Promise((resolve, reject) => { - if (!this.doesOneSignalExist()) { - this.ngOneSignalFunctionQueue.push({ - name: 'deleteTags', - args: arguments, - promiseResolver: resolve, - }); - return; - } - window.OneSignal.push(() => { - window.OneSignal.deleteTags(tags, callback) - .then((value) => resolve(value)) - .catch((error) => reject(error)); - }); - }); - } - addListenerForNotificationOpened(callback) { - return new Promise((resolve, reject) => { - if (!this.doesOneSignalExist()) { - this.ngOneSignalFunctionQueue.push({ - name: 'addListenerForNotificationOpened', - args: arguments, - promiseResolver: resolve, - }); - return; - } - window.OneSignal.push(() => { - window.OneSignal.addListenerForNotificationOpened(callback) - .then((value) => resolve(value)) - .catch((error) => reject(error)); - }); - }); - } - setSubscription(newSubscription) { - return new Promise((resolve, reject) => { - if (!this.doesOneSignalExist()) { - this.ngOneSignalFunctionQueue.push({ - name: 'setSubscription', - args: arguments, - promiseResolver: resolve, - }); - return; - } - window.OneSignal.push(() => { - window.OneSignal.setSubscription(newSubscription) - .then((value) => resolve(value)) - .catch((error) => reject(error)); - }); - }); - } - showHttpPermissionRequest(options) { - return new Promise((resolve, reject) => { - if (!this.doesOneSignalExist()) { - this.ngOneSignalFunctionQueue.push({ - name: 'showHttpPermissionRequest', - args: arguments, - promiseResolver: resolve, - }); - return; - } - window.OneSignal.push(() => { - window.OneSignal.showHttpPermissionRequest(options) - .then((value) => resolve(value)) - .catch((error) => reject(error)); - }); - }); - } - showNativePrompt() { - return new Promise((resolve, reject) => { - if (!this.doesOneSignalExist()) { - this.ngOneSignalFunctionQueue.push({ - name: 'showNativePrompt', - args: arguments, - promiseResolver: resolve, - }); - return; - } - window.OneSignal.push(() => { - window.OneSignal.showNativePrompt() - .then((value) => resolve(value)) - .catch((error) => reject(error)); - }); - }); - } - showSlidedownPrompt(options) { - return new Promise((resolve, reject) => { - if (!this.doesOneSignalExist()) { - this.ngOneSignalFunctionQueue.push({ - name: 'showSlidedownPrompt', - args: arguments, - promiseResolver: resolve, - }); - return; - } - window.OneSignal.push(() => { - window.OneSignal.showSlidedownPrompt(options) - .then((value) => resolve(value)) - .catch((error) => reject(error)); - }); - }); - } - showCategorySlidedown(options) { - return new Promise((resolve, reject) => { - if (!this.doesOneSignalExist()) { - this.ngOneSignalFunctionQueue.push({ - name: 'showCategorySlidedown', - args: arguments, - promiseResolver: resolve, - }); - return; - } - window.OneSignal.push(() => { - window.OneSignal.showCategorySlidedown(options) - .then((value) => resolve(value)) - .catch((error) => reject(error)); - }); - }); - } - showSmsSlidedown(options) { - return new Promise((resolve, reject) => { - if (!this.doesOneSignalExist()) { - this.ngOneSignalFunctionQueue.push({ - name: 'showSmsSlidedown', - args: arguments, - promiseResolver: resolve, - }); - return; - } - window.OneSignal.push(() => { - window.OneSignal.showSmsSlidedown(options) - .then((value) => resolve(value)) - .catch((error) => reject(error)); - }); - }); - } - showEmailSlidedown(options) { - return new Promise((resolve, reject) => { - if (!this.doesOneSignalExist()) { - this.ngOneSignalFunctionQueue.push({ - name: 'showEmailSlidedown', - args: arguments, - promiseResolver: resolve, - }); - return; - } - window.OneSignal.push(() => { - window.OneSignal.showEmailSlidedown(options) - .then((value) => resolve(value)) - .catch((error) => reject(error)); - }); - }); - } - showSmsAndEmailSlidedown(options) { - return new Promise((resolve, reject) => { - if (!this.doesOneSignalExist()) { - this.ngOneSignalFunctionQueue.push({ - name: 'showSmsAndEmailSlidedown', - args: arguments, - promiseResolver: resolve, - }); - return; - } - window.OneSignal.push(() => { - window.OneSignal.showSmsAndEmailSlidedown(options) - .then((value) => resolve(value)) - .catch((error) => reject(error)); - }); - }); - } - getNotificationPermission(onComplete) { - return new Promise((resolve, reject) => { - if (!this.doesOneSignalExist()) { - this.ngOneSignalFunctionQueue.push({ - name: 'getNotificationPermission', - args: arguments, - promiseResolver: resolve, - }); - return; - } - window.OneSignal.push(() => { - window.OneSignal.getNotificationPermission(onComplete) - .then((value) => resolve(value)) - .catch((error) => reject(error)); - }); + }); +} +function oneSignalSetConsentRequired(requiresConsent) { + return new Promise((resolve, reject) => { + var _a; + if (isOneSignalScriptFailed) { + reject(); + } + (_a = window.OneSignalDeferred) === null || _a === void 0 ? void 0 : _a.push((oneSignal) => { + oneSignal.setConsentRequired(requiresConsent) + .then((value) => resolve(value)) + .catch((error) => reject(error)); }); - } - getUserId(callback) { - return new Promise((resolve, reject) => { - if (!this.doesOneSignalExist()) { - this.ngOneSignalFunctionQueue.push({ - name: 'getUserId', - args: arguments, - promiseResolver: resolve, - }); - return; - } - window.OneSignal.push(() => { - window.OneSignal.getUserId(callback) - .then((value) => resolve(value)) - .catch((error) => reject(error)); - }); + }); +} +function slidedownPromptPush(options) { + return new Promise((resolve, reject) => { + var _a; + if (isOneSignalScriptFailed) { + reject(); + } + (_a = window.OneSignalDeferred) === null || _a === void 0 ? void 0 : _a.push((oneSignal) => { + oneSignal.Slidedown.promptPush(options) + .then((value) => resolve(value)) + .catch((error) => reject(error)); }); - } - getSubscription(callback) { - return new Promise((resolve, reject) => { - if (!this.doesOneSignalExist()) { - this.ngOneSignalFunctionQueue.push({ - name: 'getSubscription', - args: arguments, - promiseResolver: resolve, - }); - return; - } - window.OneSignal.push(() => { - window.OneSignal.getSubscription(callback) - .then((value) => resolve(value)) - .catch((error) => reject(error)); - }); + }); +} +function slidedownPromptPushCategories(options) { + return new Promise((resolve, reject) => { + var _a; + if (isOneSignalScriptFailed) { + reject(); + } + (_a = window.OneSignalDeferred) === null || _a === void 0 ? void 0 : _a.push((oneSignal) => { + oneSignal.Slidedown.promptPushCategories(options) + .then((value) => resolve(value)) + .catch((error) => reject(error)); }); - } - setEmail(email, options) { - return new Promise((resolve, reject) => { - if (!this.doesOneSignalExist()) { - this.ngOneSignalFunctionQueue.push({ - name: 'setEmail', - args: arguments, - promiseResolver: resolve, - }); - return; - } - window.OneSignal.push(() => { - window.OneSignal.setEmail(email, options) - .then((value) => resolve(value)) - .catch((error) => reject(error)); - }); + }); +} +function slidedownPromptSms(options) { + return new Promise((resolve, reject) => { + var _a; + if (isOneSignalScriptFailed) { + reject(); + } + (_a = window.OneSignalDeferred) === null || _a === void 0 ? void 0 : _a.push((oneSignal) => { + oneSignal.Slidedown.promptSms(options) + .then((value) => resolve(value)) + .catch((error) => reject(error)); }); - } - setSMSNumber(smsNumber, options) { - return new Promise((resolve, reject) => { - if (!this.doesOneSignalExist()) { - this.ngOneSignalFunctionQueue.push({ - name: 'setSMSNumber', - args: arguments, - promiseResolver: resolve, - }); - return; - } - window.OneSignal.push(() => { - window.OneSignal.setSMSNumber(smsNumber, options) - .then((value) => resolve(value)) - .catch((error) => reject(error)); - }); + }); +} +function slidedownPromptEmail(options) { + return new Promise((resolve, reject) => { + var _a; + if (isOneSignalScriptFailed) { + reject(); + } + (_a = window.OneSignalDeferred) === null || _a === void 0 ? void 0 : _a.push((oneSignal) => { + oneSignal.Slidedown.promptEmail(options) + .then((value) => resolve(value)) + .catch((error) => reject(error)); }); - } - logoutEmail() { - return new Promise((resolve, reject) => { - if (!this.doesOneSignalExist()) { - this.ngOneSignalFunctionQueue.push({ - name: 'logoutEmail', - args: arguments, - promiseResolver: resolve, - }); - return; - } - window.OneSignal.push(() => { - window.OneSignal.logoutEmail() - .then((value) => resolve(value)) - .catch((error) => reject(error)); - }); + }); +} +function slidedownPromptSmsAndEmail(options) { + return new Promise((resolve, reject) => { + var _a; + if (isOneSignalScriptFailed) { + reject(); + } + (_a = window.OneSignalDeferred) === null || _a === void 0 ? void 0 : _a.push((oneSignal) => { + oneSignal.Slidedown.promptSmsAndEmail(options) + .then((value) => resolve(value)) + .catch((error) => reject(error)); }); - } - logoutSMS() { - return new Promise((resolve, reject) => { - if (!this.doesOneSignalExist()) { - this.ngOneSignalFunctionQueue.push({ - name: 'logoutSMS', - args: arguments, - promiseResolver: resolve, - }); - return; - } - window.OneSignal.push(() => { - window.OneSignal.logoutSMS() - .then((value) => resolve(value)) - .catch((error) => reject(error)); - }); + }); +} +function slidedownAddEventListener(event, listener) { + var _a; + (_a = window.OneSignalDeferred) === null || _a === void 0 ? void 0 : _a.push((oneSignal) => { + oneSignal.Slidedown.addEventListener(event, listener); + }); +} +function slidedownRemoveEventListener(event, listener) { + var _a; + (_a = window.OneSignalDeferred) === null || _a === void 0 ? void 0 : _a.push((oneSignal) => { + oneSignal.Slidedown.removeEventListener(event, listener); + }); +} +function notificationsSetDefaultUrl(url) { + return new Promise((resolve, reject) => { + var _a; + if (isOneSignalScriptFailed) { + reject(); + } + (_a = window.OneSignalDeferred) === null || _a === void 0 ? void 0 : _a.push((oneSignal) => { + oneSignal.Notifications.setDefaultUrl(url) + .then((value) => resolve(value)) + .catch((error) => reject(error)); }); - } - setExternalUserId(externalUserId, authHash) { - return new Promise((resolve, reject) => { - if (!this.doesOneSignalExist()) { - this.ngOneSignalFunctionQueue.push({ - name: 'setExternalUserId', - args: arguments, - promiseResolver: resolve, - }); - return; - } - window.OneSignal.push(() => { - window.OneSignal.setExternalUserId(externalUserId, authHash) - .then((value) => resolve(value)) - .catch((error) => reject(error)); - }); + }); +} +function notificationsSetDefaultTitle(title) { + return new Promise((resolve, reject) => { + var _a; + if (isOneSignalScriptFailed) { + reject(); + } + (_a = window.OneSignalDeferred) === null || _a === void 0 ? void 0 : _a.push((oneSignal) => { + oneSignal.Notifications.setDefaultTitle(title) + .then((value) => resolve(value)) + .catch((error) => reject(error)); }); - } - removeExternalUserId() { - return new Promise((resolve, reject) => { - if (!this.doesOneSignalExist()) { - this.ngOneSignalFunctionQueue.push({ - name: 'removeExternalUserId', - args: arguments, - promiseResolver: resolve, - }); - return; - } - window.OneSignal.push(() => { - window.OneSignal.removeExternalUserId() - .then((value) => resolve(value)) - .catch((error) => reject(error)); - }); + }); +} +function notificationsRequestPermission() { + return new Promise((resolve, reject) => { + var _a; + if (isOneSignalScriptFailed) { + reject(); + } + (_a = window.OneSignalDeferred) === null || _a === void 0 ? void 0 : _a.push((oneSignal) => { + oneSignal.Notifications.requestPermission() + .then((value) => resolve(value)) + .catch((error) => reject(error)); }); - } - getExternalUserId() { - return new Promise((resolve, reject) => { - if (!this.doesOneSignalExist()) { - this.ngOneSignalFunctionQueue.push({ - name: 'getExternalUserId', - args: arguments, - promiseResolver: resolve, - }); - return; - } - window.OneSignal.push(() => { - window.OneSignal.getExternalUserId() - .then((value) => resolve(value)) - .catch((error) => reject(error)); - }); + }); +} +function notificationsAddEventListener(event, listener) { + var _a; + (_a = window.OneSignalDeferred) === null || _a === void 0 ? void 0 : _a.push((oneSignal) => { + oneSignal.Notifications.addEventListener(event, listener); + }); +} +function notificationsRemoveEventListener(event, listener) { + var _a; + (_a = window.OneSignalDeferred) === null || _a === void 0 ? void 0 : _a.push((oneSignal) => { + oneSignal.Notifications.removeEventListener(event, listener); + }); +} +function sessionSendOutcome(outcomeName, outcomeWeight) { + return new Promise((resolve, reject) => { + var _a; + if (isOneSignalScriptFailed) { + reject(); + } + (_a = window.OneSignalDeferred) === null || _a === void 0 ? void 0 : _a.push((oneSignal) => { + oneSignal.Session.sendOutcome(outcomeName, outcomeWeight) + .then((value) => resolve(value)) + .catch((error) => reject(error)); }); - } - provideUserConsent(consent) { - return new Promise((resolve, reject) => { - if (!this.doesOneSignalExist()) { - this.ngOneSignalFunctionQueue.push({ - name: 'provideUserConsent', - args: arguments, - promiseResolver: resolve, - }); - return; - } - window.OneSignal.push(() => { - window.OneSignal.provideUserConsent(consent) - .then((value) => resolve(value)) - .catch((error) => reject(error)); - }); + }); +} +function sessionSendUniqueOutcome(outcomeName) { + return new Promise((resolve, reject) => { + var _a; + if (isOneSignalScriptFailed) { + reject(); + } + (_a = window.OneSignalDeferred) === null || _a === void 0 ? void 0 : _a.push((oneSignal) => { + oneSignal.Session.sendUniqueOutcome(outcomeName) + .then((value) => resolve(value)) + .catch((error) => reject(error)); }); - } - getEmailId(callback) { - return new Promise((resolve, reject) => { - if (!this.doesOneSignalExist()) { - this.ngOneSignalFunctionQueue.push({ - name: 'getEmailId', - args: arguments, - promiseResolver: resolve, - }); - return; - } - window.OneSignal.push(() => { - window.OneSignal.getEmailId(callback) - .then((value) => resolve(value)) - .catch((error) => reject(error)); - }); + }); +} +function userAddAlias(label, id) { + var _a; + (_a = window.OneSignalDeferred) === null || _a === void 0 ? void 0 : _a.push((oneSignal) => { + oneSignal.User.addAlias(label, id); + }); +} +function userAddAliases(aliases) { + var _a; + (_a = window.OneSignalDeferred) === null || _a === void 0 ? void 0 : _a.push((oneSignal) => { + oneSignal.User.addAliases(aliases); + }); +} +function userRemoveAlias(label) { + var _a; + (_a = window.OneSignalDeferred) === null || _a === void 0 ? void 0 : _a.push((oneSignal) => { + oneSignal.User.removeAlias(label); + }); +} +function userRemoveAliases(labels) { + var _a; + (_a = window.OneSignalDeferred) === null || _a === void 0 ? void 0 : _a.push((oneSignal) => { + oneSignal.User.removeAliases(labels); + }); +} +function userAddEmail(email) { + var _a; + (_a = window.OneSignalDeferred) === null || _a === void 0 ? void 0 : _a.push((oneSignal) => { + oneSignal.User.addEmail(email); + }); +} +function userRemoveEmail(email) { + var _a; + (_a = window.OneSignalDeferred) === null || _a === void 0 ? void 0 : _a.push((oneSignal) => { + oneSignal.User.removeEmail(email); + }); +} +function userAddSms(smsNumber) { + var _a; + (_a = window.OneSignalDeferred) === null || _a === void 0 ? void 0 : _a.push((oneSignal) => { + oneSignal.User.addSms(smsNumber); + }); +} +function userRemoveSms(smsNumber) { + var _a; + (_a = window.OneSignalDeferred) === null || _a === void 0 ? void 0 : _a.push((oneSignal) => { + oneSignal.User.removeSms(smsNumber); + }); +} +function userAddTag(key, value) { + var _a; + (_a = window.OneSignalDeferred) === null || _a === void 0 ? void 0 : _a.push((oneSignal) => { + oneSignal.User.addTag(key, value); + }); +} +function userAddTags(tags) { + var _a; + (_a = window.OneSignalDeferred) === null || _a === void 0 ? void 0 : _a.push((oneSignal) => { + oneSignal.User.addTags(tags); + }); +} +function userRemoveTag(key) { + var _a; + (_a = window.OneSignalDeferred) === null || _a === void 0 ? void 0 : _a.push((oneSignal) => { + oneSignal.User.removeTag(key); + }); +} +function userRemoveTags(keys) { + var _a; + (_a = window.OneSignalDeferred) === null || _a === void 0 ? void 0 : _a.push((oneSignal) => { + oneSignal.User.removeTags(keys); + }); +} +function pushSubscriptionOptIn() { + return new Promise((resolve, reject) => { + var _a; + if (isOneSignalScriptFailed) { + reject(); + } + (_a = window.OneSignalDeferred) === null || _a === void 0 ? void 0 : _a.push((oneSignal) => { + oneSignal.User.PushSubscription.optIn() + .then((value) => resolve(value)) + .catch((error) => reject(error)); }); - } - getSMSId(callback) { - return new Promise((resolve, reject) => { - if (!this.doesOneSignalExist()) { - this.ngOneSignalFunctionQueue.push({ - name: 'getSMSId', - args: arguments, - promiseResolver: resolve, - }); - return; - } - window.OneSignal.push(() => { - window.OneSignal.getSMSId(callback) - .then((value) => resolve(value)) - .catch((error) => reject(error)); - }); + }); +} +function pushSubscriptionOptOut() { + return new Promise((resolve, reject) => { + var _a; + if (isOneSignalScriptFailed) { + reject(); + } + (_a = window.OneSignalDeferred) === null || _a === void 0 ? void 0 : _a.push((oneSignal) => { + oneSignal.User.PushSubscription.optOut() + .then((value) => resolve(value)) + .catch((error) => reject(error)); }); + }); +} +function pushSubscriptionAddEventListener(event, listener) { + var _a; + (_a = window.OneSignalDeferred) === null || _a === void 0 ? void 0 : _a.push((oneSignal) => { + oneSignal.User.PushSubscription.addEventListener(event, listener); + }); +} +function pushSubscriptionRemoveEventListener(event, listener) { + var _a; + (_a = window.OneSignalDeferred) === null || _a === void 0 ? void 0 : _a.push((oneSignal) => { + oneSignal.User.PushSubscription.removeEventListener(event, listener); + }); +} +function debugSetLogLevel(logLevel) { + var _a; + (_a = window.OneSignalDeferred) === null || _a === void 0 ? void 0 : _a.push((oneSignal) => { + oneSignal.Debug.setLogLevel(logLevel); + }); +} +const PushSubscriptionNamespace = { + get id() { var _a, _b, _c; return (_c = (_b = (_a = window.OneSignal) === null || _a === void 0 ? void 0 : _a.User) === null || _b === void 0 ? void 0 : _b.PushSubscription) === null || _c === void 0 ? void 0 : _c.id; }, + get token() { var _a, _b, _c; return (_c = (_b = (_a = window.OneSignal) === null || _a === void 0 ? void 0 : _a.User) === null || _b === void 0 ? void 0 : _b.PushSubscription) === null || _c === void 0 ? void 0 : _c.token; }, + get optedIn() { var _a, _b, _c; return (_c = (_b = (_a = window.OneSignal) === null || _a === void 0 ? void 0 : _a.User) === null || _b === void 0 ? void 0 : _b.PushSubscription) === null || _c === void 0 ? void 0 : _c.optedIn; }, + optIn: pushSubscriptionOptIn, + optOut: pushSubscriptionOptOut, + addEventListener: pushSubscriptionAddEventListener, + removeEventListener: pushSubscriptionRemoveEventListener, +}; +const UserNamespace = { + addAlias: userAddAlias, + addAliases: userAddAliases, + removeAlias: userRemoveAlias, + removeAliases: userRemoveAliases, + addEmail: userAddEmail, + removeEmail: userRemoveEmail, + addSms: userAddSms, + removeSms: userRemoveSms, + addTag: userAddTag, + addTags: userAddTags, + removeTag: userRemoveTag, + removeTags: userRemoveTags, + PushSubscription: PushSubscriptionNamespace, +}; +const SessionNamespace = { + sendOutcome: sessionSendOutcome, + sendUniqueOutcome: sessionSendUniqueOutcome, +}; +const DebugNamespace = { + setLogLevel: debugSetLogLevel, +}; +const SlidedownNamespace = { + promptPush: slidedownPromptPush, + promptPushCategories: slidedownPromptPushCategories, + promptSms: slidedownPromptSms, + promptEmail: slidedownPromptEmail, + promptSmsAndEmail: slidedownPromptSmsAndEmail, + addEventListener: slidedownAddEventListener, + removeEventListener: slidedownRemoveEventListener, +}; +const NotificationsNamespace = { + get permissionNative() { var _a, _b, _c; return (_c = (_b = (_a = window.OneSignal) === null || _a === void 0 ? void 0 : _a.Notifications) === null || _b === void 0 ? void 0 : _b.permissionNative) !== null && _c !== void 0 ? _c : 'default'; }, + get permission() { var _a, _b, _c; return (_c = (_b = (_a = window.OneSignal) === null || _a === void 0 ? void 0 : _a.Notifications) === null || _b === void 0 ? void 0 : _b.permission) !== null && _c !== void 0 ? _c : false; }, + setDefaultUrl: notificationsSetDefaultUrl, + setDefaultTitle: notificationsSetDefaultTitle, + isPushSupported, + requestPermission: notificationsRequestPermission, + addEventListener: notificationsAddEventListener, + removeEventListener: notificationsRemoveEventListener, +}; +/** + * @PublicApi + */ +function isPushSupported() { + return isPushNotificationsSupported(); +} +const ONESIGNAL_SDK_ID = 'onesignal-sdk'; +const ONE_SIGNAL_SCRIPT_SRC = 'https://cdn.onesignal.com/sdks/web/v16/OneSignalSDK.page.js'; +// true if the script is successfully loaded from CDN. +let isOneSignalInitialized = false; +// true if the script fails to load from CDN. A separate flag is necessary +// to disambiguate between a CDN load failure and a delayed call to +// OneSignal#init. +let isOneSignalScriptFailed = false; +if (window) { + window.OneSignalDeferred = window.OneSignalDeferred || []; + addSDKScript(); +} +/** + * The following code is copied directly from the native SDK source file BrowserSupportsPush.ts + * S T A R T + */ +// Checks if the browser supports push notifications by checking if specific +// classes and properties on them exist +function isPushNotificationsSupported() { + return supportsVapidPush() || supportsSafariPush(); +} +function isMacOSSafariInIframe() { + // Fallback detection for Safari on macOS in an iframe context + return window.top !== window && // isContextIframe + navigator.vendor === 'Apple Computer, Inc.' && // isSafari + navigator.platform === 'MacIntel'; // isMacOS +} +function supportsSafariPush() { + return (window.safari && typeof window.safari.pushNotification !== 'undefined') || + isMacOSSafariInIframe(); +} +// Does the browser support the standard Push API +function supportsVapidPush() { + return typeof PushSubscriptionOptions !== 'undefined' && + PushSubscriptionOptions.prototype.hasOwnProperty('applicationServerKey'); +} +/* E N D */ +function handleOnError() { + isOneSignalScriptFailed = true; +} +function addSDKScript() { + const script = document.createElement('script'); + script.id = ONESIGNAL_SDK_ID; + script.defer = true; + script.src = ONE_SIGNAL_SCRIPT_SRC; + // Always resolve whether or not the script is successfully initialized. + // This is important for users who may block cdn.onesignal.com w/ adblock. + script.onerror = () => { + handleOnError(); + }; + document.head.appendChild(script); +} +class OneSignal { + constructor() { + this.User = UserNamespace; + this.Session = SessionNamespace; + this.Debug = DebugNamespace; + this.Slidedown = SlidedownNamespace; + this.Notifications = NotificationsNamespace; + this.login = oneSignalLogin; + this.logout = oneSignalLogout; + this.setConsentGiven = oneSignalSetConsentGiven; + this.setConsentRequired = oneSignalSetConsentRequired; } - sendOutcome(outcomeName, outcomeWeight) { - return new Promise((resolve, reject) => { - if (!this.doesOneSignalExist()) { - this.ngOneSignalFunctionQueue.push({ - name: 'sendOutcome', - args: arguments, - promiseResolver: resolve, + /* P U B L I C */ + /** + * @PublicApi + */ + init(options) { + if (isOneSignalInitialized) { + return Promise.reject(`OneSignal is already initialized.`); + } + if (!options || !options.appId) { + throw new Error('You need to provide your OneSignal appId.'); + } + if (!document) { + return Promise.reject(`Document is not defined.`); + } + return new Promise((resolve) => { + var _a; + (_a = window.OneSignalDeferred) === null || _a === void 0 ? void 0 : _a.push((oneSignal) => { + oneSignal.init(options).then(() => { + isOneSignalInitialized = true; + resolve(); }); - return; - } - window.OneSignal.push(() => { - window.OneSignal.sendOutcome(outcomeName, outcomeWeight) - .then((value) => resolve(value)) - .catch((error) => reject(error)); }); }); } diff --git a/fesm2015/onesignal-ngx.js.map b/fesm2015/onesignal-ngx.js.map index 1da3856..d3dcb2d 100644 --- a/fesm2015/onesignal-ngx.js.map +++ b/fesm2015/onesignal-ngx.js.map @@ -1 +1 @@ -{"version":3,"file":"onesignal-ngx.js","sources":["../../../projects/onesignal-ngx/src/lib/onesignal-ngx.service.ts","../../../projects/onesignal-ngx/src/lib/onesignal-ngx.component.ts","../../../projects/onesignal-ngx/src/lib/onesignal-ngx.module.ts","../../../projects/onesignal-ngx/src/public-api.ts","../../../projects/onesignal-ngx/src/onesignal-ngx.ts"],"sourcesContent":["type Action = (item: T) => void;\ninterface AutoPromptOptions { force?: boolean; forceSlidedownOverNative?: boolean; slidedownPromptOptions?: IOneSignalAutoPromptOptions; }\ninterface RegisterOptions { modalPrompt?: boolean; httpPermissionRequest?: boolean; slidedown?: boolean; autoAccept?: boolean }\ninterface SetSMSOptions { identifierAuthHash?: string; }\ninterface SetEmailOptions { identifierAuthHash?: string; emailAuthHash?: string; }\ninterface TagsObject { [key: string]: T; }\ninterface IOneSignalAutoPromptOptions { force?: boolean; forceSlidedownOverNative?: boolean; isInUpdateMode?: boolean; categoryOptions?: IOneSignalCategories; }\ninterface IOneSignalCategories { positiveUpdateButton: string; negativeUpdateButton: string; savingButtonText: string; errorButtonText: string; updateMessage: string; tags: IOneSignalTagCategory[]; }\ninterface IOneSignalTagCategory { tag: string; label: string; checked?: boolean; }\n\ninterface IInitObject {\n appId: string;\n subdomainName?: string;\n requiresUserPrivacyConsent?: boolean;\n promptOptions?: object;\n welcomeNotification?: object;\n notifyButton?: object;\n persistNotification?: boolean;\n webhooks?: object;\n autoResubscribe?: boolean;\n autoRegister?: boolean;\n notificationClickHandlerMatch?: string;\n notificationClickHandlerAction?: string;\n serviceWorkerParam?: { scope: string };\n serviceWorkerPath?: string;\n serviceWorkerUpdaterPath?: string;\n path?: string;\n allowLocalhostAsSecureOrigin?: boolean;\n [key: string]: any;\n}\n\nimport { Injectable } from '@angular/core';\nconst ONESIGNAL_SDK_ID = 'onesignal-sdk';\nconst ONE_SIGNAL_SCRIPT_SRC = 'https://cdn.onesignal.com/sdks/OneSignalSDK.js';\nconst ONESIGNAL_NOT_SETUP_ERROR = 'OneSignal is not setup correctly.';\nconst MAX_TIMEOUT = 30;\n\ndeclare global {\n interface Window {\n OneSignal: any;\n }\n}\n\ninterface IOneSignalFunctionCall {\n name: string;\n args: IArguments;\n promiseResolver?: Function;\n}\n\ninterface IOneSignal {\n [key: string]: any;\n}\n\n@Injectable({\n providedIn: 'root'\n})\nexport class OneSignal implements IOneSignal {\n private isOneSignalInitialized = false;\n private ngOneSignalFunctionQueue: IOneSignalFunctionCall[] = [];\n\n constructor() { }\n\n /* H E L P E R S */\n\n private injectScript = () => {\n const script = document.createElement('script');\n script.id = ONESIGNAL_SDK_ID;\n script.src = ONE_SIGNAL_SCRIPT_SRC;\n script.async = true;\n document.head.appendChild(script);\n }\n\n private doesOneSignalExist = () => {\n if (window.OneSignal) {\n return true;\n }\n return false;\n }\n\n private processQueuedOneSignalFunctions = () => {\n this.ngOneSignalFunctionQueue.forEach(element => {\n const { name, args, promiseResolver } = element;\n\n if (!!promiseResolver) {\n (this as IOneSignal)[name](...args).then((result: any) => {\n promiseResolver(result);\n });\n } else {\n window.OneSignal[name](...args);\n }\n });\n }\n\n private setupOneSignalIfMissing = () => {\n if (!this.doesOneSignalExist()) {\n window.OneSignal = window.OneSignal || [];\n }\n }\n\n /* P U B L I C */\n\n init(options: IInitObject): Promise {\n return new Promise(resolve => {\n if (this.isOneSignalInitialized) {\n return;\n }\n\n this.injectScript();\n this.setupOneSignalIfMissing();\n window.OneSignal.push(() => {\n window.OneSignal.init(options);\n });\n\n const timeout = setTimeout(() => {\n console.error(ONESIGNAL_NOT_SETUP_ERROR);\n }, MAX_TIMEOUT * 1_000);\n\n window.OneSignal.push(() => {\n clearTimeout(timeout);\n this.isOneSignalInitialized = true;\n this.processQueuedOneSignalFunctions();\n resolve();\n });\n });\n }\n\n\n on(event: string, listener: (eventData?: any) => void): void {\n if (!this.doesOneSignalExist()) {\n this.ngOneSignalFunctionQueue.push({\n name: 'on',\n args: arguments,\n });\n return;\n }\n\n window.OneSignal.push(() => {\n window.OneSignal.on(event, listener);\n });\n }\n\n off(event: string, listener: (eventData?: any) => void): void {\n if (!this.doesOneSignalExist()) {\n this.ngOneSignalFunctionQueue.push({\n name: 'off',\n args: arguments,\n });\n return;\n }\n\n window.OneSignal.push(() => {\n window.OneSignal.off(event, listener);\n });\n }\n\n once(event: string, listener: (eventData?: any) => void): void {\n if (!this.doesOneSignalExist()) {\n this.ngOneSignalFunctionQueue.push({\n name: 'once',\n args: arguments,\n });\n return;\n }\n\n window.OneSignal.push(() => {\n window.OneSignal.once(event, listener);\n });\n }\n\n isPushNotificationsEnabled(callback?: Action): Promise {\n return new Promise((resolve, reject) => {\n if (!this.doesOneSignalExist()) {\n this.ngOneSignalFunctionQueue.push({\n name: 'isPushNotificationsEnabled',\n args: arguments,\n promiseResolver: resolve,\n });\n return;\n }\n\n window.OneSignal.push(() => {\n window.OneSignal.isPushNotificationsEnabled(callback)\n .then((value: Promise) => resolve(value))\n .catch((error: Error) => reject(error));\n });\n });\n }\n\n showHttpPrompt(options?: AutoPromptOptions): Promise {\n return new Promise((resolve, reject) => {\n if (!this.doesOneSignalExist()) {\n this.ngOneSignalFunctionQueue.push({\n name: 'showHttpPrompt',\n args: arguments,\n promiseResolver: resolve,\n });\n return;\n }\n\n window.OneSignal.push(() => {\n window.OneSignal.showHttpPrompt(options)\n .then((value: Promise) => resolve(value))\n .catch((error: Error) => reject(error));\n });\n });\n }\n\n registerForPushNotifications(options?: RegisterOptions): Promise {\n return new Promise((resolve, reject) => {\n if (!this.doesOneSignalExist()) {\n this.ngOneSignalFunctionQueue.push({\n name: 'registerForPushNotifications',\n args: arguments,\n promiseResolver: resolve,\n });\n return;\n }\n\n window.OneSignal.push(() => {\n window.OneSignal.registerForPushNotifications(options)\n .then((value: Promise) => resolve(value))\n .catch((error: Error) => reject(error));\n });\n });\n }\n\n setDefaultNotificationUrl(url: string): Promise {\n return new Promise((resolve, reject) => {\n if (!this.doesOneSignalExist()) {\n this.ngOneSignalFunctionQueue.push({\n name: 'setDefaultNotificationUrl',\n args: arguments,\n promiseResolver: resolve,\n });\n return;\n }\n\n window.OneSignal.push(() => {\n window.OneSignal.setDefaultNotificationUrl(url)\n .then((value: Promise) => resolve(value))\n .catch((error: Error) => reject(error));\n });\n });\n }\n\n setDefaultTitle(title: string): Promise {\n return new Promise((resolve, reject) => {\n if (!this.doesOneSignalExist()) {\n this.ngOneSignalFunctionQueue.push({\n name: 'setDefaultTitle',\n args: arguments,\n promiseResolver: resolve,\n });\n return;\n }\n\n window.OneSignal.push(() => {\n window.OneSignal.setDefaultTitle(title)\n .then((value: Promise) => resolve(value))\n .catch((error: Error) => reject(error));\n });\n });\n }\n\n getTags(callback?: Action): Promise {\n return new Promise((resolve, reject) => {\n if (!this.doesOneSignalExist()) {\n this.ngOneSignalFunctionQueue.push({\n name: 'getTags',\n args: arguments,\n promiseResolver: resolve,\n });\n return;\n }\n\n window.OneSignal.push(() => {\n window.OneSignal.getTags(callback)\n .then((value: Promise) => resolve(value))\n .catch((error: Error) => reject(error));\n });\n });\n }\n\n sendTag(key: string, value: any, callback?: Action): Promise {\n return new Promise((resolve, reject) => {\n if (!this.doesOneSignalExist()) {\n this.ngOneSignalFunctionQueue.push({\n name: 'sendTag',\n args: arguments,\n promiseResolver: resolve,\n });\n return;\n }\n\n window.OneSignal.push(() => {\n window.OneSignal.sendTag(key, value, callback)\n .then((value: Promise) => resolve(value))\n .catch((error: Error) => reject(error));\n });\n });\n }\n\n sendTags(tags: TagsObject, callback?: Action): Promise {\n return new Promise((resolve, reject) => {\n if (!this.doesOneSignalExist()) {\n this.ngOneSignalFunctionQueue.push({\n name: 'sendTags',\n args: arguments,\n promiseResolver: resolve,\n });\n return;\n }\n\n window.OneSignal.push(() => {\n window.OneSignal.sendTags(tags, callback)\n .then((value: Promise) => resolve(value))\n .catch((error: Error) => reject(error));\n });\n });\n }\n\n deleteTag(tag: string): Promise> {\n return new Promise((resolve, reject) => {\n if (!this.doesOneSignalExist()) {\n this.ngOneSignalFunctionQueue.push({\n name: 'deleteTag',\n args: arguments,\n promiseResolver: resolve,\n });\n return;\n }\n\n window.OneSignal.push(() => {\n window.OneSignal.deleteTag(tag)\n .then((value: Promise>) => resolve(value))\n .catch((error: Error) => reject(error));\n });\n });\n }\n\n deleteTags(tags: Array, callback?: Action>): Promise> {\n return new Promise((resolve, reject) => {\n if (!this.doesOneSignalExist()) {\n this.ngOneSignalFunctionQueue.push({\n name: 'deleteTags',\n args: arguments,\n promiseResolver: resolve,\n });\n return;\n }\n\n window.OneSignal.push(() => {\n window.OneSignal.deleteTags(tags, callback)\n .then((value: Promise>) => resolve(value))\n .catch((error: Error) => reject(error));\n });\n });\n }\n\n addListenerForNotificationOpened(callback?: Action): Promise {\n return new Promise((resolve, reject) => {\n if (!this.doesOneSignalExist()) {\n this.ngOneSignalFunctionQueue.push({\n name: 'addListenerForNotificationOpened',\n args: arguments,\n promiseResolver: resolve,\n });\n return;\n }\n\n window.OneSignal.push(() => {\n window.OneSignal.addListenerForNotificationOpened(callback)\n .then((value: Promise) => resolve(value))\n .catch((error: Error) => reject(error));\n });\n });\n }\n\n setSubscription(newSubscription: boolean): Promise {\n return new Promise((resolve, reject) => {\n if (!this.doesOneSignalExist()) {\n this.ngOneSignalFunctionQueue.push({\n name: 'setSubscription',\n args: arguments,\n promiseResolver: resolve,\n });\n return;\n }\n\n window.OneSignal.push(() => {\n window.OneSignal.setSubscription(newSubscription)\n .then((value: Promise) => resolve(value))\n .catch((error: Error) => reject(error));\n });\n });\n }\n\n showHttpPermissionRequest(options?: AutoPromptOptions): Promise {\n return new Promise((resolve, reject) => {\n if (!this.doesOneSignalExist()) {\n this.ngOneSignalFunctionQueue.push({\n name: 'showHttpPermissionRequest',\n args: arguments,\n promiseResolver: resolve,\n });\n return;\n }\n\n window.OneSignal.push(() => {\n window.OneSignal.showHttpPermissionRequest(options)\n .then((value: Promise) => resolve(value))\n .catch((error: Error) => reject(error));\n });\n });\n }\n\n showNativePrompt(): Promise {\n return new Promise((resolve, reject) => {\n if (!this.doesOneSignalExist()) {\n this.ngOneSignalFunctionQueue.push({\n name: 'showNativePrompt',\n args: arguments,\n promiseResolver: resolve,\n });\n return;\n }\n\n window.OneSignal.push(() => {\n window.OneSignal.showNativePrompt()\n .then((value: Promise) => resolve(value))\n .catch((error: Error) => reject(error));\n });\n });\n }\n\n showSlidedownPrompt(options?: AutoPromptOptions): Promise {\n return new Promise((resolve, reject) => {\n if (!this.doesOneSignalExist()) {\n this.ngOneSignalFunctionQueue.push({\n name: 'showSlidedownPrompt',\n args: arguments,\n promiseResolver: resolve,\n });\n return;\n }\n\n window.OneSignal.push(() => {\n window.OneSignal.showSlidedownPrompt(options)\n .then((value: Promise) => resolve(value))\n .catch((error: Error) => reject(error));\n });\n });\n }\n\n showCategorySlidedown(options?: AutoPromptOptions): Promise {\n return new Promise((resolve, reject) => {\n if (!this.doesOneSignalExist()) {\n this.ngOneSignalFunctionQueue.push({\n name: 'showCategorySlidedown',\n args: arguments,\n promiseResolver: resolve,\n });\n return;\n }\n\n window.OneSignal.push(() => {\n window.OneSignal.showCategorySlidedown(options)\n .then((value: Promise) => resolve(value))\n .catch((error: Error) => reject(error));\n });\n });\n }\n\n showSmsSlidedown(options?: AutoPromptOptions): Promise {\n return new Promise((resolve, reject) => {\n if (!this.doesOneSignalExist()) {\n this.ngOneSignalFunctionQueue.push({\n name: 'showSmsSlidedown',\n args: arguments,\n promiseResolver: resolve,\n });\n return;\n }\n\n window.OneSignal.push(() => {\n window.OneSignal.showSmsSlidedown(options)\n .then((value: Promise) => resolve(value))\n .catch((error: Error) => reject(error));\n });\n });\n }\n\n showEmailSlidedown(options?: AutoPromptOptions): Promise {\n return new Promise((resolve, reject) => {\n if (!this.doesOneSignalExist()) {\n this.ngOneSignalFunctionQueue.push({\n name: 'showEmailSlidedown',\n args: arguments,\n promiseResolver: resolve,\n });\n return;\n }\n\n window.OneSignal.push(() => {\n window.OneSignal.showEmailSlidedown(options)\n .then((value: Promise) => resolve(value))\n .catch((error: Error) => reject(error));\n });\n });\n }\n\n showSmsAndEmailSlidedown(options?: AutoPromptOptions): Promise {\n return new Promise((resolve, reject) => {\n if (!this.doesOneSignalExist()) {\n this.ngOneSignalFunctionQueue.push({\n name: 'showSmsAndEmailSlidedown',\n args: arguments,\n promiseResolver: resolve,\n });\n return;\n }\n\n window.OneSignal.push(() => {\n window.OneSignal.showSmsAndEmailSlidedown(options)\n .then((value: Promise) => resolve(value))\n .catch((error: Error) => reject(error));\n });\n });\n }\n\n getNotificationPermission(onComplete?: Action): Promise {\n return new Promise((resolve, reject) => {\n if (!this.doesOneSignalExist()) {\n this.ngOneSignalFunctionQueue.push({\n name: 'getNotificationPermission',\n args: arguments,\n promiseResolver: resolve,\n });\n return;\n }\n\n window.OneSignal.push(() => {\n window.OneSignal.getNotificationPermission(onComplete)\n .then((value: Promise) => resolve(value))\n .catch((error: Error) => reject(error));\n });\n });\n }\n\n getUserId(callback?: Action): Promise {\n return new Promise((resolve, reject) => {\n if (!this.doesOneSignalExist()) {\n this.ngOneSignalFunctionQueue.push({\n name: 'getUserId',\n args: arguments,\n promiseResolver: resolve,\n });\n return;\n }\n\n window.OneSignal.push(() => {\n window.OneSignal.getUserId(callback)\n .then((value: Promise) => resolve(value))\n .catch((error: Error) => reject(error));\n });\n });\n }\n\n getSubscription(callback?: Action): Promise {\n return new Promise((resolve, reject) => {\n if (!this.doesOneSignalExist()) {\n this.ngOneSignalFunctionQueue.push({\n name: 'getSubscription',\n args: arguments,\n promiseResolver: resolve,\n });\n return;\n }\n\n window.OneSignal.push(() => {\n window.OneSignal.getSubscription(callback)\n .then((value: Promise) => resolve(value))\n .catch((error: Error) => reject(error));\n });\n });\n }\n\n setEmail(email: string, options?: SetEmailOptions): Promise {\n return new Promise((resolve, reject) => {\n if (!this.doesOneSignalExist()) {\n this.ngOneSignalFunctionQueue.push({\n name: 'setEmail',\n args: arguments,\n promiseResolver: resolve,\n });\n return;\n }\n\n window.OneSignal.push(() => {\n window.OneSignal.setEmail(email, options)\n .then((value: Promise) => resolve(value))\n .catch((error: Error) => reject(error));\n });\n });\n }\n\n setSMSNumber(smsNumber: string, options?: SetSMSOptions): Promise {\n return new Promise((resolve, reject) => {\n if (!this.doesOneSignalExist()) {\n this.ngOneSignalFunctionQueue.push({\n name: 'setSMSNumber',\n args: arguments,\n promiseResolver: resolve,\n });\n return;\n }\n\n window.OneSignal.push(() => {\n window.OneSignal.setSMSNumber(smsNumber, options)\n .then((value: Promise) => resolve(value))\n .catch((error: Error) => reject(error));\n });\n });\n }\n\n logoutEmail(): Promise {\n return new Promise((resolve, reject) => {\n if (!this.doesOneSignalExist()) {\n this.ngOneSignalFunctionQueue.push({\n name: 'logoutEmail',\n args: arguments,\n promiseResolver: resolve,\n });\n return;\n }\n\n window.OneSignal.push(() => {\n window.OneSignal.logoutEmail()\n .then((value: Promise) => resolve(value))\n .catch((error: Error) => reject(error));\n });\n });\n }\n\n logoutSMS(): Promise {\n return new Promise((resolve, reject) => {\n if (!this.doesOneSignalExist()) {\n this.ngOneSignalFunctionQueue.push({\n name: 'logoutSMS',\n args: arguments,\n promiseResolver: resolve,\n });\n return;\n }\n\n window.OneSignal.push(() => {\n window.OneSignal.logoutSMS()\n .then((value: Promise) => resolve(value))\n .catch((error: Error) => reject(error));\n });\n });\n }\n\n setExternalUserId(externalUserId: string | undefined | null, authHash?: string): Promise {\n return new Promise((resolve, reject) => {\n if (!this.doesOneSignalExist()) {\n this.ngOneSignalFunctionQueue.push({\n name: 'setExternalUserId',\n args: arguments,\n promiseResolver: resolve,\n });\n return;\n }\n\n window.OneSignal.push(() => {\n window.OneSignal.setExternalUserId(externalUserId, authHash)\n .then((value: Promise) => resolve(value))\n .catch((error: Error) => reject(error));\n });\n });\n }\n\n removeExternalUserId(): Promise {\n return new Promise((resolve, reject) => {\n if (!this.doesOneSignalExist()) {\n this.ngOneSignalFunctionQueue.push({\n name: 'removeExternalUserId',\n args: arguments,\n promiseResolver: resolve,\n });\n return;\n }\n\n window.OneSignal.push(() => {\n window.OneSignal.removeExternalUserId()\n .then((value: Promise) => resolve(value))\n .catch((error: Error) => reject(error));\n });\n });\n }\n\n getExternalUserId(): Promise {\n return new Promise((resolve, reject) => {\n if (!this.doesOneSignalExist()) {\n this.ngOneSignalFunctionQueue.push({\n name: 'getExternalUserId',\n args: arguments,\n promiseResolver: resolve,\n });\n return;\n }\n\n window.OneSignal.push(() => {\n window.OneSignal.getExternalUserId()\n .then((value: Promise) => resolve(value))\n .catch((error: Error) => reject(error));\n });\n });\n }\n\n provideUserConsent(consent: boolean): Promise {\n return new Promise((resolve, reject) => {\n if (!this.doesOneSignalExist()) {\n this.ngOneSignalFunctionQueue.push({\n name: 'provideUserConsent',\n args: arguments,\n promiseResolver: resolve,\n });\n return;\n }\n\n window.OneSignal.push(() => {\n window.OneSignal.provideUserConsent(consent)\n .then((value: Promise) => resolve(value))\n .catch((error: Error) => reject(error));\n });\n });\n }\n\n getEmailId(callback?: Action): Promise {\n return new Promise((resolve, reject) => {\n if (!this.doesOneSignalExist()) {\n this.ngOneSignalFunctionQueue.push({\n name: 'getEmailId',\n args: arguments,\n promiseResolver: resolve,\n });\n return;\n }\n\n window.OneSignal.push(() => {\n window.OneSignal.getEmailId(callback)\n .then((value: Promise) => resolve(value))\n .catch((error: Error) => reject(error));\n });\n });\n }\n\n getSMSId(callback?: Action): Promise {\n return new Promise((resolve, reject) => {\n if (!this.doesOneSignalExist()) {\n this.ngOneSignalFunctionQueue.push({\n name: 'getSMSId',\n args: arguments,\n promiseResolver: resolve,\n });\n return;\n }\n\n window.OneSignal.push(() => {\n window.OneSignal.getSMSId(callback)\n .then((value: Promise) => resolve(value))\n .catch((error: Error) => reject(error));\n });\n });\n }\n\n sendOutcome(outcomeName: string, outcomeWeight?: number | undefined): Promise {\n return new Promise((resolve, reject) => {\n if (!this.doesOneSignalExist()) {\n this.ngOneSignalFunctionQueue.push({\n name: 'sendOutcome',\n args: arguments,\n promiseResolver: resolve,\n });\n return;\n }\n\n window.OneSignal.push(() => {\n window.OneSignal.sendOutcome(outcomeName, outcomeWeight)\n .then((value: Promise) => resolve(value))\n .catch((error: Error) => reject(error));\n });\n });\n }\n}\n","import { Component, OnInit } from '@angular/core';\n\n@Component({\n selector: 'onesignal-onesignal-ngx',\n template: `\n

\n onesignal-ngx works!\n

\n `,\n styles: [\n ]\n})\nexport class OnesignalNgxComponent implements OnInit {\n\n constructor() { }\n\n ngOnInit(): void {\n }\n\n}\n","import { NgModule } from '@angular/core';\nimport { OnesignalNgxComponent } from './onesignal-ngx.component';\n\n\n\n@NgModule({\n declarations: [OnesignalNgxComponent],\n imports: [\n ],\n exports: [OnesignalNgxComponent]\n})\nexport class OnesignalNgxModule { }\n","/*\n * Public API Surface of onesignal-ngx\n */\n\nexport * from './lib/onesignal-ngx.service';\nexport * from './lib/onesignal-ngx.component';\nexport * from './lib/onesignal-ngx.module';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"onesignal-ngx.js","sources":["../../../projects/onesignal-ngx/src/lib/onesignal-ngx.service.ts","../../../projects/onesignal-ngx/src/lib/onesignal-ngx.component.ts","../../../projects/onesignal-ngx/src/lib/onesignal-ngx.module.ts","../../../projects/onesignal-ngx/src/public-api.ts","../../../projects/onesignal-ngx/src/onesignal-ngx.ts"],"sourcesContent":["interface AutoPromptOptions { force?: boolean; forceSlidedownOverNative?: boolean; slidedownPromptOptions?: IOneSignalAutoPromptOptions; }\ninterface IOneSignalAutoPromptOptions { force?: boolean; forceSlidedownOverNative?: boolean; isInUpdateMode?: boolean; categoryOptions?: IOneSignalCategories; }\ninterface IOneSignalCategories { positiveUpdateButton: string; negativeUpdateButton: string; savingButtonText: string; errorButtonText: string; updateMessage: string; tags: IOneSignalTagCategory[]; }\ninterface IOneSignalTagCategory { tag: string; label: string; checked?: boolean; }\ntype PushSubscriptionNamespaceProperties = { id: string | null | undefined; token: string | null | undefined; optedIn: boolean; };\ntype SubscriptionChangeEvent = { previous: PushSubscriptionNamespaceProperties; current: PushSubscriptionNamespaceProperties; };\ntype NotificationEventName = 'click' | 'foregroundWillDisplay' | 'dismiss' | 'permissionChange' | 'permissionPromptDisplay';\ntype SlidedownEventName = 'slidedownShown';\ntype OneSignalDeferredLoadedCallback = (onesignal: IOneSignalOneSignal) => void;\ninterface IOSNotification {\n /**\n * The OneSignal notification id;\n * - Primary id on OneSignal's REST API and dashboard\n */\n readonly notificationId: string;\n\n /**\n * Visible title text on the notification\n */\n readonly title?: string;\n\n /**\n * Visible body text on the notification\n */\n readonly body: string;\n\n /**\n * Visible icon the notification; URL format\n */\n readonly icon?: string;\n\n /**\n * Visible small badgeIcon that displays on some devices; URL format\n * Example: On Android's status bar\n */\n readonly badgeIcon?: string;\n\n /**\n * Visible image on the notification; URL format\n */\n readonly image?: string;\n\n /**\n * Visible buttons on the notification\n */\n readonly actionButtons?: IOSNotificationActionButton[];\n\n /**\n * If this value is the same as existing notification, it will replace it\n * Can be set when creating the notification with \"Web Push Topic\" on the dashboard\n * or web_push_topic from the REST API.\n */\n readonly topic?: string;\n\n /**\n * Custom object that was sent with the notification;\n * definable when creating the notification from the OneSignal REST API or dashboard\n */\n readonly additionalData?: object;\n\n /**\n * URL to open when clicking or tapping on the notification\n */\n readonly launchURL?: string;\n\n /**\n * Confirm the push was received by reporting back to OneSignal\n */\n readonly confirmDelivery: boolean;\n}\n\ninterface IOSNotificationActionButton {\n /**\n * Any unique identifier to represent which button was clicked. This is typically passed back to the service worker\n * and host page through events to identify which button was clicked.\n * e.g. 'like-button'\n */\n readonly actionId: string;\n /**\n * The notification action button's text.\n */\n readonly text: string;\n /**\n * A valid publicly reachable HTTPS URL to an image.\n */\n readonly icon?: string;\n /**\n * The URL to open the web browser to when this action button is clicked.\n */\n readonly launchURL?: string;\n}\n\ninterface NotificationClickResult {\n readonly actionId?: string;\n readonly url?: string;\n}\n\ntype NotificationEventTypeMap = {\n 'click': NotificationClickEvent;\n 'foregroundWillDisplay': NotificationForegroundWillDisplayEvent;\n 'dismiss': NotificationDismissEvent;\n 'permissionChange': boolean;\n 'permissionPromptDisplay': void;\n}\n\ninterface NotificationForegroundWillDisplayEvent {\n readonly notification: IOSNotification;\n preventDefault(): void;\n}\n\ninterface NotificationDismissEvent {\n notification: IOSNotification;\n}\n\ninterface NotificationClickEvent {\n readonly notification: IOSNotification;\n readonly result: NotificationClickResult;\n}\n\n\ninterface IInitObject {\n appId: string;\n subdomainName?: string;\n requiresUserPrivacyConsent?: boolean;\n promptOptions?: object;\n welcomeNotification?: object;\n notifyButton?: object;\n persistNotification?: boolean;\n webhooks?: object;\n autoResubscribe?: boolean;\n autoRegister?: boolean;\n notificationClickHandlerMatch?: string;\n notificationClickHandlerAction?: string;\n serviceWorkerParam?: { scope: string };\n serviceWorkerPath?: string;\n serviceWorkerUpdaterPath?: string;\n path?: string;\n allowLocalhostAsSecureOrigin?: boolean;\n [key: string]: any;\n}\n\ninterface IOneSignalOneSignal {\n\tSlidedown: IOneSignalSlidedown;\n\tNotifications: IOneSignalNotifications;\n\tSession: IOneSignalSession;\n\tUser: IOneSignalUser;\n\tDebug: IOneSignalDebug;\n\tlogin(externalId: string, jwtToken?: string): Promise;\n\tlogout(): Promise;\n\tinit(options: IInitObject): Promise;\n\tsetConsentGiven(consent: boolean): Promise;\n\tsetConsentRequired(requiresConsent: boolean): Promise;\n}\ninterface IOneSignalNotifications {\n\tpermissionNative: NotificationPermission;\n\tpermission: boolean;\n\tsetDefaultUrl(url: string): Promise;\n\tsetDefaultTitle(title: string): Promise;\n\tisPushSupported(): boolean;\n\trequestPermission(): Promise;\n\taddEventListener(event: K, listener: (obj: NotificationEventTypeMap[K]) => void): void;\n\tremoveEventListener(event: K, listener: (obj: NotificationEventTypeMap[K]) => void): void;\n}\ninterface IOneSignalSlidedown {\n\tpromptPush(options?: AutoPromptOptions): Promise;\n\tpromptPushCategories(options?: AutoPromptOptions): Promise;\n\tpromptSms(options?: AutoPromptOptions): Promise;\n\tpromptEmail(options?: AutoPromptOptions): Promise;\n\tpromptSmsAndEmail(options?: AutoPromptOptions): Promise;\n\taddEventListener(event: SlidedownEventName, listener: (wasShown: boolean) => void): void;\n\tremoveEventListener(event: SlidedownEventName, listener: (wasShown: boolean) => void): void;\n}\ninterface IOneSignalDebug {\n\tsetLogLevel(logLevel: string): void;\n}\ninterface IOneSignalSession {\n\tsendOutcome(outcomeName: string, outcomeWeight?: number): Promise;\n\tsendUniqueOutcome(outcomeName: string): Promise;\n}\ninterface IOneSignalUser {\n\tPushSubscription: IOneSignalPushSubscription;\n\taddAlias(label: string, id: string): void;\n\taddAliases(aliases: { [key: string]: string }): void;\n\tremoveAlias(label: string): void;\n\tremoveAliases(labels: string[]): void;\n\taddEmail(email: string): void;\n\tremoveEmail(email: string): void;\n\taddSms(smsNumber: string): void;\n\tremoveSms(smsNumber: string): void;\n\taddTag(key: string, value: string): void;\n\taddTags(tags: { [key: string]: string }): void;\n\tremoveTag(key: string): void;\n\tremoveTags(keys: string[]): void;\n}\ninterface IOneSignalPushSubscription {\n\tid: string | null | undefined;\n\ttoken: string | null | undefined;\n\toptedIn: boolean | undefined;\n\toptIn(): Promise;\n\toptOut(): Promise;\n\taddEventListener(event: 'change', listener: (change: SubscriptionChangeEvent) => void): void;\n\tremoveEventListener(event: 'change', listener: (change: SubscriptionChangeEvent) => void): void;\n}\n\nfunction oneSignalLogin(externalId: string, jwtToken?: string): Promise {\n return new Promise((resolve, reject) => {\n if (isOneSignalScriptFailed) {\n reject();\n }\n\n window.OneSignalDeferred?.push((oneSignal: IOneSignalOneSignal) => {\n oneSignal.login(externalId, jwtToken)\n .then((value: any) => resolve(value))\n .catch((error: Error) => reject(error));\n });\n });\n}\n\nfunction oneSignalLogout(): Promise {\n return new Promise((resolve, reject) => {\n if (isOneSignalScriptFailed) {\n reject();\n }\n\n window.OneSignalDeferred?.push((oneSignal: IOneSignalOneSignal) => {\n oneSignal.logout()\n .then((value: any) => resolve(value))\n .catch((error: Error) => reject(error));\n });\n });\n}\n\nfunction oneSignalSetConsentGiven(consent: boolean): Promise {\n return new Promise((resolve, reject) => {\n if (isOneSignalScriptFailed) {\n reject();\n }\n\n window.OneSignalDeferred?.push((oneSignal: IOneSignalOneSignal) => {\n oneSignal.setConsentGiven(consent)\n .then((value: any) => resolve(value))\n .catch((error: Error) => reject(error));\n });\n });\n}\n\nfunction oneSignalSetConsentRequired(requiresConsent: boolean): Promise {\n return new Promise((resolve, reject) => {\n if (isOneSignalScriptFailed) {\n reject();\n }\n\n window.OneSignalDeferred?.push((oneSignal: IOneSignalOneSignal) => {\n oneSignal.setConsentRequired(requiresConsent)\n .then((value: any) => resolve(value))\n .catch((error: Error) => reject(error));\n });\n });\n}\n\nfunction slidedownPromptPush(options?: AutoPromptOptions): Promise {\n return new Promise((resolve, reject) => {\n if (isOneSignalScriptFailed) {\n reject();\n }\n\n window.OneSignalDeferred?.push((oneSignal: IOneSignalOneSignal) => {\n oneSignal.Slidedown.promptPush(options)\n .then((value: any) => resolve(value))\n .catch((error: Error) => reject(error));\n });\n });\n}\n\nfunction slidedownPromptPushCategories(options?: AutoPromptOptions): Promise {\n return new Promise((resolve, reject) => {\n if (isOneSignalScriptFailed) {\n reject();\n }\n\n window.OneSignalDeferred?.push((oneSignal: IOneSignalOneSignal) => {\n oneSignal.Slidedown.promptPushCategories(options)\n .then((value: any) => resolve(value))\n .catch((error: Error) => reject(error));\n });\n });\n}\n\nfunction slidedownPromptSms(options?: AutoPromptOptions): Promise {\n return new Promise((resolve, reject) => {\n if (isOneSignalScriptFailed) {\n reject();\n }\n\n window.OneSignalDeferred?.push((oneSignal: IOneSignalOneSignal) => {\n oneSignal.Slidedown.promptSms(options)\n .then((value: any) => resolve(value))\n .catch((error: Error) => reject(error));\n });\n });\n}\n\nfunction slidedownPromptEmail(options?: AutoPromptOptions): Promise {\n return new Promise((resolve, reject) => {\n if (isOneSignalScriptFailed) {\n reject();\n }\n\n window.OneSignalDeferred?.push((oneSignal: IOneSignalOneSignal) => {\n oneSignal.Slidedown.promptEmail(options)\n .then((value: any) => resolve(value))\n .catch((error: Error) => reject(error));\n });\n });\n}\n\nfunction slidedownPromptSmsAndEmail(options?: AutoPromptOptions): Promise {\n return new Promise((resolve, reject) => {\n if (isOneSignalScriptFailed) {\n reject();\n }\n\n window.OneSignalDeferred?.push((oneSignal: IOneSignalOneSignal) => {\n oneSignal.Slidedown.promptSmsAndEmail(options)\n .then((value: any) => resolve(value))\n .catch((error: Error) => reject(error));\n });\n });\n}\n\nfunction slidedownAddEventListener(event: SlidedownEventName, listener: (wasShown: boolean) => void): void {\n window.OneSignalDeferred?.push((oneSignal: IOneSignalOneSignal) => {\n oneSignal.Slidedown.addEventListener(event, listener);\n });\n}\n\nfunction slidedownRemoveEventListener(event: SlidedownEventName, listener: (wasShown: boolean) => void): void {\n window.OneSignalDeferred?.push((oneSignal: IOneSignalOneSignal) => {\n oneSignal.Slidedown.removeEventListener(event, listener);\n });\n}\n\nfunction notificationsSetDefaultUrl(url: string): Promise {\n return new Promise((resolve, reject) => {\n if (isOneSignalScriptFailed) {\n reject();\n }\n\n window.OneSignalDeferred?.push((oneSignal: IOneSignalOneSignal) => {\n oneSignal.Notifications.setDefaultUrl(url)\n .then((value: any) => resolve(value))\n .catch((error: Error) => reject(error));\n });\n });\n}\n\nfunction notificationsSetDefaultTitle(title: string): Promise {\n return new Promise((resolve, reject) => {\n if (isOneSignalScriptFailed) {\n reject();\n }\n\n window.OneSignalDeferred?.push((oneSignal: IOneSignalOneSignal) => {\n oneSignal.Notifications.setDefaultTitle(title)\n .then((value: any) => resolve(value))\n .catch((error: Error) => reject(error));\n });\n });\n}\n\nfunction notificationsRequestPermission(): Promise {\n return new Promise((resolve, reject) => {\n if (isOneSignalScriptFailed) {\n reject();\n }\n\n window.OneSignalDeferred?.push((oneSignal: IOneSignalOneSignal) => {\n oneSignal.Notifications.requestPermission()\n .then((value: any) => resolve(value))\n .catch((error: Error) => reject(error));\n });\n });\n}\n\nfunction notificationsAddEventListener(event: K, listener: (obj: NotificationEventTypeMap[K]) => void): void {\n window.OneSignalDeferred?.push((oneSignal: IOneSignalOneSignal) => {\n oneSignal.Notifications.addEventListener(event, listener);\n });\n}\n\nfunction notificationsRemoveEventListener(event: K, listener: (obj: NotificationEventTypeMap[K]) => void): void {\n window.OneSignalDeferred?.push((oneSignal: IOneSignalOneSignal) => {\n oneSignal.Notifications.removeEventListener(event, listener);\n });\n}\n\nfunction sessionSendOutcome(outcomeName: string, outcomeWeight?: number): Promise {\n return new Promise((resolve, reject) => {\n if (isOneSignalScriptFailed) {\n reject();\n }\n\n window.OneSignalDeferred?.push((oneSignal: IOneSignalOneSignal) => {\n oneSignal.Session.sendOutcome(outcomeName, outcomeWeight)\n .then((value: any) => resolve(value))\n .catch((error: Error) => reject(error));\n });\n });\n}\n\nfunction sessionSendUniqueOutcome(outcomeName: string): Promise {\n return new Promise((resolve, reject) => {\n if (isOneSignalScriptFailed) {\n reject();\n }\n\n window.OneSignalDeferred?.push((oneSignal: IOneSignalOneSignal) => {\n oneSignal.Session.sendUniqueOutcome(outcomeName)\n .then((value: any) => resolve(value))\n .catch((error: Error) => reject(error));\n });\n });\n}\n\nfunction userAddAlias(label: string, id: string): void {\n window.OneSignalDeferred?.push((oneSignal: IOneSignalOneSignal) => {\n oneSignal.User.addAlias(label, id);\n });\n}\n\nfunction userAddAliases(aliases: { [key: string]: string }): void {\n window.OneSignalDeferred?.push((oneSignal: IOneSignalOneSignal) => {\n oneSignal.User.addAliases(aliases);\n });\n}\n\nfunction userRemoveAlias(label: string): void {\n window.OneSignalDeferred?.push((oneSignal: IOneSignalOneSignal) => {\n oneSignal.User.removeAlias(label);\n });\n}\n\nfunction userRemoveAliases(labels: string[]): void {\n window.OneSignalDeferred?.push((oneSignal: IOneSignalOneSignal) => {\n oneSignal.User.removeAliases(labels);\n });\n}\n\nfunction userAddEmail(email: string): void {\n window.OneSignalDeferred?.push((oneSignal: IOneSignalOneSignal) => {\n oneSignal.User.addEmail(email);\n });\n}\n\nfunction userRemoveEmail(email: string): void {\n window.OneSignalDeferred?.push((oneSignal: IOneSignalOneSignal) => {\n oneSignal.User.removeEmail(email);\n });\n}\n\nfunction userAddSms(smsNumber: string): void {\n window.OneSignalDeferred?.push((oneSignal: IOneSignalOneSignal) => {\n oneSignal.User.addSms(smsNumber);\n });\n}\n\nfunction userRemoveSms(smsNumber: string): void {\n window.OneSignalDeferred?.push((oneSignal: IOneSignalOneSignal) => {\n oneSignal.User.removeSms(smsNumber);\n });\n}\n\nfunction userAddTag(key: string, value: string): void {\n window.OneSignalDeferred?.push((oneSignal: IOneSignalOneSignal) => {\n oneSignal.User.addTag(key, value);\n });\n}\n\nfunction userAddTags(tags: { [key: string]: string }): void {\n window.OneSignalDeferred?.push((oneSignal: IOneSignalOneSignal) => {\n oneSignal.User.addTags(tags);\n });\n}\n\nfunction userRemoveTag(key: string): void {\n window.OneSignalDeferred?.push((oneSignal: IOneSignalOneSignal) => {\n oneSignal.User.removeTag(key);\n });\n}\n\nfunction userRemoveTags(keys: string[]): void {\n window.OneSignalDeferred?.push((oneSignal: IOneSignalOneSignal) => {\n oneSignal.User.removeTags(keys);\n });\n}\n\nfunction pushSubscriptionOptIn(): Promise {\n return new Promise((resolve, reject) => {\n if (isOneSignalScriptFailed) {\n reject();\n }\n\n window.OneSignalDeferred?.push((oneSignal: IOneSignalOneSignal) => {\n oneSignal.User.PushSubscription.optIn()\n .then((value: any) => resolve(value))\n .catch((error: Error) => reject(error));\n });\n });\n}\n\nfunction pushSubscriptionOptOut(): Promise {\n return new Promise((resolve, reject) => {\n if (isOneSignalScriptFailed) {\n reject();\n }\n\n window.OneSignalDeferred?.push((oneSignal: IOneSignalOneSignal) => {\n oneSignal.User.PushSubscription.optOut()\n .then((value: any) => resolve(value))\n .catch((error: Error) => reject(error));\n });\n });\n}\n\nfunction pushSubscriptionAddEventListener(event: 'change', listener: (change: SubscriptionChangeEvent) => void): void {\n window.OneSignalDeferred?.push((oneSignal: IOneSignalOneSignal) => {\n oneSignal.User.PushSubscription.addEventListener(event, listener);\n });\n}\n\nfunction pushSubscriptionRemoveEventListener(event: 'change', listener: (change: SubscriptionChangeEvent) => void): void {\n window.OneSignalDeferred?.push((oneSignal: IOneSignalOneSignal) => {\n oneSignal.User.PushSubscription.removeEventListener(event, listener);\n });\n}\n\nfunction debugSetLogLevel(logLevel: string): void {\n window.OneSignalDeferred?.push((oneSignal: IOneSignalOneSignal) => {\n oneSignal.Debug.setLogLevel(logLevel);\n });\n}\n\nconst PushSubscriptionNamespace: IOneSignalPushSubscription = {\n\tget id(): string | null | undefined { return window.OneSignal?.User?.PushSubscription?.id },\n\tget token(): string | null | undefined { return window.OneSignal?.User?.PushSubscription?.token },\n\tget optedIn(): boolean | undefined { return window.OneSignal?.User?.PushSubscription?.optedIn },\n\toptIn: pushSubscriptionOptIn,\n\toptOut: pushSubscriptionOptOut,\n\taddEventListener: pushSubscriptionAddEventListener,\n\tremoveEventListener: pushSubscriptionRemoveEventListener,\n};\n\nconst UserNamespace: IOneSignalUser = {\n\taddAlias: userAddAlias,\n\taddAliases: userAddAliases,\n\tremoveAlias: userRemoveAlias,\n\tremoveAliases: userRemoveAliases,\n\taddEmail: userAddEmail,\n\tremoveEmail: userRemoveEmail,\n\taddSms: userAddSms,\n\tremoveSms: userRemoveSms,\n\taddTag: userAddTag,\n\taddTags: userAddTags,\n\tremoveTag: userRemoveTag,\n\tremoveTags: userRemoveTags,\n\tPushSubscription: PushSubscriptionNamespace,\n};\n\nconst SessionNamespace: IOneSignalSession = {\n\tsendOutcome: sessionSendOutcome,\n\tsendUniqueOutcome: sessionSendUniqueOutcome,\n};\n\nconst DebugNamespace: IOneSignalDebug = {\n\tsetLogLevel: debugSetLogLevel,\n};\n\nconst SlidedownNamespace: IOneSignalSlidedown = {\n\tpromptPush: slidedownPromptPush,\n\tpromptPushCategories: slidedownPromptPushCategories,\n\tpromptSms: slidedownPromptSms,\n\tpromptEmail: slidedownPromptEmail,\n\tpromptSmsAndEmail: slidedownPromptSmsAndEmail,\n\taddEventListener: slidedownAddEventListener,\n\tremoveEventListener: slidedownRemoveEventListener,\n};\n\nconst NotificationsNamespace: IOneSignalNotifications = {\n\tget permissionNative(): NotificationPermission { return window.OneSignal?.Notifications?.permissionNative ?? 'default'; },\n\tget permission(): boolean { return window.OneSignal?.Notifications?.permission ?? false; },\n\tsetDefaultUrl: notificationsSetDefaultUrl,\n\tsetDefaultTitle: notificationsSetDefaultTitle,\n\tisPushSupported,\n\trequestPermission: notificationsRequestPermission,\n\taddEventListener: notificationsAddEventListener,\n\tremoveEventListener: notificationsRemoveEventListener,\n};\n\n/**\n * @PublicApi\n */\nfunction isPushSupported(): boolean {\n return isPushNotificationsSupported();\n}\n\nimport { Injectable } from '@angular/core';\nconst ONESIGNAL_SDK_ID = 'onesignal-sdk';\nconst ONE_SIGNAL_SCRIPT_SRC = 'https://cdn.onesignal.com/sdks/web/v16/OneSignalSDK.page.js';\n\n// true if the script is successfully loaded from CDN.\nlet isOneSignalInitialized = false;\n// true if the script fails to load from CDN. A separate flag is necessary\n// to disambiguate between a CDN load failure and a delayed call to\n// OneSignal#init.\nlet isOneSignalScriptFailed = false;\n\nif (window) {\n window.OneSignalDeferred = window.OneSignalDeferred || [];\n addSDKScript();\n}\n\n/**\n * The following code is copied directly from the native SDK source file BrowserSupportsPush.ts\n * S T A R T\n */\n\n// Checks if the browser supports push notifications by checking if specific\n// classes and properties on them exist\nfunction isPushNotificationsSupported(): boolean {\n return supportsVapidPush() || supportsSafariPush();\n}\n\nfunction isMacOSSafariInIframe(): boolean {\n // Fallback detection for Safari on macOS in an iframe context\n return window.top !== window && // isContextIframe\n navigator.vendor === 'Apple Computer, Inc.' && // isSafari\n navigator.platform === 'MacIntel'; // isMacOS\n}\n\nfunction supportsSafariPush(): boolean {\n return (window.safari && typeof window.safari.pushNotification !== 'undefined') ||\n isMacOSSafariInIframe();\n}\n\n// Does the browser support the standard Push API\nfunction supportsVapidPush(): boolean {\n return typeof PushSubscriptionOptions !== 'undefined' &&\n PushSubscriptionOptions.prototype.hasOwnProperty('applicationServerKey');\n}\n/* E N D */\n\nfunction handleOnError(): void {\n isOneSignalScriptFailed = true;\n}\n\nfunction addSDKScript(): void {\n const script = document.createElement('script');\n script.id = ONESIGNAL_SDK_ID;\n script.defer = true;\n script.src = ONE_SIGNAL_SCRIPT_SRC;\n\n // Always resolve whether or not the script is successfully initialized.\n // This is important for users who may block cdn.onesignal.com w/ adblock.\n script.onerror = () => {\n handleOnError();\n };\n\n document.head.appendChild(script);\n}\n\n\ndeclare global {\n interface Window {\n OneSignalDeferred?: OneSignalDeferredLoadedCallback[];\n OneSignal?: IOneSignalOneSignal;\n safari?: {\n pushNotification: any;\n };\n }\n}\n\ninterface IOneSignalOneSignal {\n [key: string]: any;\n}\n\n@Injectable({\n providedIn: 'root'\n})\nexport class OneSignal implements IOneSignalOneSignal {\n [key: string]: any;\n\n constructor() { }\n\n /* P U B L I C */\n\n /**\n * @PublicApi\n */\n init(options: IInitObject): Promise {\n if (isOneSignalInitialized) {\n return Promise.reject(`OneSignal is already initialized.`);\n }\n\n if (!options || !options.appId) {\n throw new Error('You need to provide your OneSignal appId.');\n }\n\n if (!document) {\n return Promise.reject(`Document is not defined.`);\n }\n\n return new Promise((resolve) => {\n window.OneSignalDeferred?.push((oneSignal: IOneSignalOneSignal) => {\n oneSignal.init(options).then(() => {\n isOneSignalInitialized = true;\n resolve();\n });\n });\n });\n }\n\n\tUser = UserNamespace;\n\tSession = SessionNamespace;\n\tDebug = DebugNamespace;\n\tSlidedown = SlidedownNamespace;\n\tNotifications = NotificationsNamespace;\n\tlogin = oneSignalLogin;\n\tlogout = oneSignalLogout;\n\tsetConsentGiven = oneSignalSetConsentGiven;\n\tsetConsentRequired = oneSignalSetConsentRequired;\n}\n","import { Component, OnInit } from '@angular/core';\n\n@Component({\n selector: 'onesignal-onesignal-ngx',\n template: `\n

\n onesignal-ngx works!\n

\n `,\n styles: [\n ]\n})\nexport class OnesignalNgxComponent implements OnInit {\n\n constructor() { }\n\n ngOnInit(): void {\n }\n\n}\n","import { NgModule } from '@angular/core';\nimport { OnesignalNgxComponent } from './onesignal-ngx.component';\n\n\n\n@NgModule({\n declarations: [OnesignalNgxComponent],\n imports: [\n ],\n exports: [OnesignalNgxComponent]\n})\nexport class OnesignalNgxModule { }\n","/*\n * Public API Surface of onesignal-ngx\n */\n\nexport * from './lib/onesignal-ngx.service';\nexport * from './lib/onesignal-ngx.component';\nexport * from './lib/onesignal-ngx.module';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/lib/onesignal-ngx.service.d.ts b/lib/onesignal-ngx.service.d.ts index 9de622f..fba4c53 100644 --- a/lib/onesignal-ngx.service.d.ts +++ b/lib/onesignal-ngx.service.d.ts @@ -1,25 +1,8 @@ -declare type Action = (item: T) => void; interface AutoPromptOptions { force?: boolean; forceSlidedownOverNative?: boolean; slidedownPromptOptions?: IOneSignalAutoPromptOptions; } -interface RegisterOptions { - modalPrompt?: boolean; - httpPermissionRequest?: boolean; - slidedown?: boolean; - autoAccept?: boolean; -} -interface SetSMSOptions { - identifierAuthHash?: string; -} -interface SetEmailOptions { - identifierAuthHash?: string; - emailAuthHash?: string; -} -interface TagsObject { - [key: string]: T; -} interface IOneSignalAutoPromptOptions { force?: boolean; forceSlidedownOverNative?: boolean; @@ -39,6 +22,111 @@ interface IOneSignalTagCategory { label: string; checked?: boolean; } +declare type PushSubscriptionNamespaceProperties = { + id: string | null | undefined; + token: string | null | undefined; + optedIn: boolean; +}; +declare type SubscriptionChangeEvent = { + previous: PushSubscriptionNamespaceProperties; + current: PushSubscriptionNamespaceProperties; +}; +declare type NotificationEventName = 'click' | 'foregroundWillDisplay' | 'dismiss' | 'permissionChange' | 'permissionPromptDisplay'; +declare type SlidedownEventName = 'slidedownShown'; +declare type OneSignalDeferredLoadedCallback = (onesignal: IOneSignalOneSignal) => void; +interface IOSNotification { + /** + * The OneSignal notification id; + * - Primary id on OneSignal's REST API and dashboard + */ + readonly notificationId: string; + /** + * Visible title text on the notification + */ + readonly title?: string; + /** + * Visible body text on the notification + */ + readonly body: string; + /** + * Visible icon the notification; URL format + */ + readonly icon?: string; + /** + * Visible small badgeIcon that displays on some devices; URL format + * Example: On Android's status bar + */ + readonly badgeIcon?: string; + /** + * Visible image on the notification; URL format + */ + readonly image?: string; + /** + * Visible buttons on the notification + */ + readonly actionButtons?: IOSNotificationActionButton[]; + /** + * If this value is the same as existing notification, it will replace it + * Can be set when creating the notification with "Web Push Topic" on the dashboard + * or web_push_topic from the REST API. + */ + readonly topic?: string; + /** + * Custom object that was sent with the notification; + * definable when creating the notification from the OneSignal REST API or dashboard + */ + readonly additionalData?: object; + /** + * URL to open when clicking or tapping on the notification + */ + readonly launchURL?: string; + /** + * Confirm the push was received by reporting back to OneSignal + */ + readonly confirmDelivery: boolean; +} +interface IOSNotificationActionButton { + /** + * Any unique identifier to represent which button was clicked. This is typically passed back to the service worker + * and host page through events to identify which button was clicked. + * e.g. 'like-button' + */ + readonly actionId: string; + /** + * The notification action button's text. + */ + readonly text: string; + /** + * A valid publicly reachable HTTPS URL to an image. + */ + readonly icon?: string; + /** + * The URL to open the web browser to when this action button is clicked. + */ + readonly launchURL?: string; +} +interface NotificationClickResult { + readonly actionId?: string; + readonly url?: string; +} +declare type NotificationEventTypeMap = { + 'click': NotificationClickEvent; + 'foregroundWillDisplay': NotificationForegroundWillDisplayEvent; + 'dismiss': NotificationDismissEvent; + 'permissionChange': boolean; + 'permissionPromptDisplay': void; +}; +interface NotificationForegroundWillDisplayEvent { + readonly notification: IOSNotification; + preventDefault(): void; +} +interface NotificationDismissEvent { + notification: IOSNotification; +} +interface NotificationClickEvent { + readonly notification: IOSNotification; + readonly result: NotificationClickResult; +} interface IInitObject { appId: string; subdomainName?: string; @@ -61,58 +149,103 @@ interface IInitObject { allowLocalhostAsSecureOrigin?: boolean; [key: string]: any; } +interface IOneSignalOneSignal { + Slidedown: IOneSignalSlidedown; + Notifications: IOneSignalNotifications; + Session: IOneSignalSession; + User: IOneSignalUser; + Debug: IOneSignalDebug; + login(externalId: string, jwtToken?: string): Promise; + logout(): Promise; + init(options: IInitObject): Promise; + setConsentGiven(consent: boolean): Promise; + setConsentRequired(requiresConsent: boolean): Promise; +} +interface IOneSignalNotifications { + permissionNative: NotificationPermission; + permission: boolean; + setDefaultUrl(url: string): Promise; + setDefaultTitle(title: string): Promise; + isPushSupported(): boolean; + requestPermission(): Promise; + addEventListener(event: K, listener: (obj: NotificationEventTypeMap[K]) => void): void; + removeEventListener(event: K, listener: (obj: NotificationEventTypeMap[K]) => void): void; +} +interface IOneSignalSlidedown { + promptPush(options?: AutoPromptOptions): Promise; + promptPushCategories(options?: AutoPromptOptions): Promise; + promptSms(options?: AutoPromptOptions): Promise; + promptEmail(options?: AutoPromptOptions): Promise; + promptSmsAndEmail(options?: AutoPromptOptions): Promise; + addEventListener(event: SlidedownEventName, listener: (wasShown: boolean) => void): void; + removeEventListener(event: SlidedownEventName, listener: (wasShown: boolean) => void): void; +} +interface IOneSignalDebug { + setLogLevel(logLevel: string): void; +} +interface IOneSignalSession { + sendOutcome(outcomeName: string, outcomeWeight?: number): Promise; + sendUniqueOutcome(outcomeName: string): Promise; +} +interface IOneSignalUser { + PushSubscription: IOneSignalPushSubscription; + addAlias(label: string, id: string): void; + addAliases(aliases: { + [key: string]: string; + }): void; + removeAlias(label: string): void; + removeAliases(labels: string[]): void; + addEmail(email: string): void; + removeEmail(email: string): void; + addSms(smsNumber: string): void; + removeSms(smsNumber: string): void; + addTag(key: string, value: string): void; + addTags(tags: { + [key: string]: string; + }): void; + removeTag(key: string): void; + removeTags(keys: string[]): void; +} +interface IOneSignalPushSubscription { + id: string | null | undefined; + token: string | null | undefined; + optedIn: boolean | undefined; + optIn(): Promise; + optOut(): Promise; + addEventListener(event: 'change', listener: (change: SubscriptionChangeEvent) => void): void; + removeEventListener(event: 'change', listener: (change: SubscriptionChangeEvent) => void): void; +} +declare function oneSignalLogin(externalId: string, jwtToken?: string): Promise; +declare function oneSignalLogout(): Promise; +declare function oneSignalSetConsentGiven(consent: boolean): Promise; +declare function oneSignalSetConsentRequired(requiresConsent: boolean): Promise; declare global { interface Window { - OneSignal: any; + OneSignalDeferred?: OneSignalDeferredLoadedCallback[]; + OneSignal?: IOneSignalOneSignal; + safari?: { + pushNotification: any; + }; } } -interface IOneSignal { +interface IOneSignalOneSignal { [key: string]: any; } -export declare class OneSignal implements IOneSignal { - private isOneSignalInitialized; - private ngOneSignalFunctionQueue; +export declare class OneSignal implements IOneSignalOneSignal { + [key: string]: any; constructor(); - private injectScript; - private doesOneSignalExist; - private processQueuedOneSignalFunctions; - private setupOneSignalIfMissing; + /** + * @PublicApi + */ init(options: IInitObject): Promise; - on(event: string, listener: (eventData?: any) => void): void; - off(event: string, listener: (eventData?: any) => void): void; - once(event: string, listener: (eventData?: any) => void): void; - isPushNotificationsEnabled(callback?: Action): Promise; - showHttpPrompt(options?: AutoPromptOptions): Promise; - registerForPushNotifications(options?: RegisterOptions): Promise; - setDefaultNotificationUrl(url: string): Promise; - setDefaultTitle(title: string): Promise; - getTags(callback?: Action): Promise; - sendTag(key: string, value: any, callback?: Action): Promise; - sendTags(tags: TagsObject, callback?: Action): Promise; - deleteTag(tag: string): Promise>; - deleteTags(tags: Array, callback?: Action>): Promise>; - addListenerForNotificationOpened(callback?: Action): Promise; - setSubscription(newSubscription: boolean): Promise; - showHttpPermissionRequest(options?: AutoPromptOptions): Promise; - showNativePrompt(): Promise; - showSlidedownPrompt(options?: AutoPromptOptions): Promise; - showCategorySlidedown(options?: AutoPromptOptions): Promise; - showSmsSlidedown(options?: AutoPromptOptions): Promise; - showEmailSlidedown(options?: AutoPromptOptions): Promise; - showSmsAndEmailSlidedown(options?: AutoPromptOptions): Promise; - getNotificationPermission(onComplete?: Action): Promise; - getUserId(callback?: Action): Promise; - getSubscription(callback?: Action): Promise; - setEmail(email: string, options?: SetEmailOptions): Promise; - setSMSNumber(smsNumber: string, options?: SetSMSOptions): Promise; - logoutEmail(): Promise; - logoutSMS(): Promise; - setExternalUserId(externalUserId: string | undefined | null, authHash?: string): Promise; - removeExternalUserId(): Promise; - getExternalUserId(): Promise; - provideUserConsent(consent: boolean): Promise; - getEmailId(callback?: Action): Promise; - getSMSId(callback?: Action): Promise; - sendOutcome(outcomeName: string, outcomeWeight?: number | undefined): Promise; + User: IOneSignalUser; + Session: IOneSignalSession; + Debug: IOneSignalDebug; + Slidedown: IOneSignalSlidedown; + Notifications: IOneSignalNotifications; + login: typeof oneSignalLogin; + logout: typeof oneSignalLogout; + setConsentGiven: typeof oneSignalSetConsentGiven; + setConsentRequired: typeof oneSignalSetConsentRequired; } export {}; diff --git a/onesignal-ngx.metadata.json b/onesignal-ngx.metadata.json index cb2ce55..6aee2b9 100644 --- a/onesignal-ngx.metadata.json +++ b/onesignal-ngx.metadata.json @@ -1 +1 @@ -{"__symbolic":"module","version":4,"metadata":{"OneSignal":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":53,"character":1},"arguments":[{"providedIn":"root"}]}],"members":{"__ctor__":[{"__symbolic":"constructor"}],"init":[{"__symbolic":"method"}],"on":[{"__symbolic":"method"}],"off":[{"__symbolic":"method"}],"once":[{"__symbolic":"method"}],"isPushNotificationsEnabled":[{"__symbolic":"method"}],"showHttpPrompt":[{"__symbolic":"method"}],"registerForPushNotifications":[{"__symbolic":"method"}],"setDefaultNotificationUrl":[{"__symbolic":"method"}],"setDefaultTitle":[{"__symbolic":"method"}],"getTags":[{"__symbolic":"method"}],"sendTag":[{"__symbolic":"method"}],"sendTags":[{"__symbolic":"method"}],"deleteTag":[{"__symbolic":"method"}],"deleteTags":[{"__symbolic":"method"}],"addListenerForNotificationOpened":[{"__symbolic":"method"}],"setSubscription":[{"__symbolic":"method"}],"showHttpPermissionRequest":[{"__symbolic":"method"}],"showNativePrompt":[{"__symbolic":"method"}],"showSlidedownPrompt":[{"__symbolic":"method"}],"showCategorySlidedown":[{"__symbolic":"method"}],"showSmsSlidedown":[{"__symbolic":"method"}],"showEmailSlidedown":[{"__symbolic":"method"}],"showSmsAndEmailSlidedown":[{"__symbolic":"method"}],"getNotificationPermission":[{"__symbolic":"method"}],"getUserId":[{"__symbolic":"method"}],"getSubscription":[{"__symbolic":"method"}],"setEmail":[{"__symbolic":"method"}],"setSMSNumber":[{"__symbolic":"method"}],"logoutEmail":[{"__symbolic":"method"}],"logoutSMS":[{"__symbolic":"method"}],"setExternalUserId":[{"__symbolic":"method"}],"removeExternalUserId":[{"__symbolic":"method"}],"getExternalUserId":[{"__symbolic":"method"}],"provideUserConsent":[{"__symbolic":"method"}],"getEmailId":[{"__symbolic":"method"}],"getSMSId":[{"__symbolic":"method"}],"sendOutcome":[{"__symbolic":"method"}]},"statics":{"ɵprov":{}}},"OnesignalNgxComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":2,"character":1},"arguments":[{"selector":"onesignal-onesignal-ngx","template":"\n

\n onesignal-ngx works!\n

\n ","styles":[]}]}],"members":{"__ctor__":[{"__symbolic":"constructor"}],"ngOnInit":[{"__symbolic":"method"}]}},"OnesignalNgxModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":5,"character":1},"arguments":[{"declarations":[{"__symbolic":"reference","name":"OnesignalNgxComponent"}],"imports":[],"exports":[{"__symbolic":"reference","name":"OnesignalNgxComponent"}]}]}],"members":{}}},"origins":{"OneSignal":"./lib/onesignal-ngx.service","OnesignalNgxComponent":"./lib/onesignal-ngx.component","OnesignalNgxModule":"./lib/onesignal-ngx.module"},"importAs":"onesignal-ngx"} \ No newline at end of file +{"__symbolic":"module","version":4,"metadata":{"OneSignal":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":685,"character":1},"arguments":[{"providedIn":"root"}]}],"members":{"__ctor__":[{"__symbolic":"constructor"}],"init":[{"__symbolic":"method"}]},"statics":{"ɵprov":{}}},"OnesignalNgxComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":2,"character":1},"arguments":[{"selector":"onesignal-onesignal-ngx","template":"\n

\n onesignal-ngx works!\n

\n ","styles":[]}]}],"members":{"__ctor__":[{"__symbolic":"constructor"}],"ngOnInit":[{"__symbolic":"method"}]}},"OnesignalNgxModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":5,"character":1},"arguments":[{"declarations":[{"__symbolic":"reference","name":"OnesignalNgxComponent"}],"imports":[],"exports":[{"__symbolic":"reference","name":"OnesignalNgxComponent"}]}]}],"members":{}}},"origins":{"OneSignal":"./lib/onesignal-ngx.service","OnesignalNgxComponent":"./lib/onesignal-ngx.component","OnesignalNgxModule":"./lib/onesignal-ngx.module"},"importAs":"onesignal-ngx"} \ No newline at end of file diff --git a/package.json b/package.json index 58a8b6e..53f8b0d 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "onesignal-ngx", - "version": "1.0.2", + "version": "2.0.0", "description": "This is a JavaScript module that can be used to easily include OneSignal code in a website or app that uses Angular for its front-end codebase.", "author": "rgomezp", "contributors": [