UNPKG

@secrethub/ngx-stripe

Version:

The core package for ngx-stripe, for using stripe.js in your application

177 lines 13.4 kB
/** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,uselessCode} checked by tsc */ import { Observable } from 'rxjs'; import { Inject, Injectable } from '@angular/core'; import { STRIPE_OPTIONS, STRIPE_PUBLIC_KEY, STRIPE_SCRIPT_LOCATION, STRIPE_VERSION } from '../model/stripe.constant'; import { SupportedVersions } from '../model/SupportedVersions'; import * as i0 from "@angular/core"; import * as i1 from "../model/stripe.constant"; var StripeLoader = /** @class */ (function () { function StripeLoader(version, options, key) { this.version = version; this.options = options; this.key = key; } /** * Fetches the stripe instance from the DOM * * @return The Stripe instance or null if it is not yet registered */ /** * Fetches the stripe instance from the DOM * * @param {?} key * @param {?} options * @return {?} The Stripe instance or null if it is not yet registered */ StripeLoader.getStripeInstance = /** * Fetches the stripe instance from the DOM * * @param {?} key * @param {?} options * @return {?} The Stripe instance or null if it is not yet registered */ function (key, options) { /** @type {?} */ var stripeInstance = window[StripeLoader.STRIPE_WINDOW_KEY]; if (stripeInstance) { return stripeInstance(key, options); } return null; }; /** * Checks whether or not StripeJS has been loaded */ /** * Checks whether or not StripeJS has been loaded * @return {?} */ StripeLoader.isStripeLoaded = /** * Checks whether or not StripeJS has been loaded * @return {?} */ function () { return !!window[StripeLoader.STRIPE_WINDOW_KEY]; }; /** * Injects the script tag into the body of the page in order to lazy * load the Stripe script * * @return Observable to indicate when the script has finished loading */ /** * Injects the script tag into the body of the page in order to lazy * load the Stripe script * * @return {?} Observable to indicate when the script has finished loading */ StripeLoader.prototype.loadScript = /** * Injects the script tag into the body of the page in order to lazy * load the Stripe script * * @return {?} Observable to indicate when the script has finished loading */ function () { var _this = this; return new Observable(function (observer) { if (!StripeLoader.isStripeLoaded()) { /** @type {?} */ var script = StripeLoader.constructScript(_this.getStripeScriptUrl()); script.onload = (function () { observer.next(StripeLoader.getStripeInstance(_this.key, _this.options)); observer.complete(); }); script.onerror = function () { observer.error('Failed to load the Stripe script!'); observer.complete(); }; document.body.appendChild(script); } else { observer.next(StripeLoader.getStripeInstance(_this.key, _this.options)); observer.complete(); } }); }; /** * Constructs the url that should be used for loading the Stripe script * @return URL to stripe script location */ /** * Constructs the url that should be used for loading the Stripe script * @return {?} URL to stripe script location */ StripeLoader.prototype.getStripeScriptUrl = /** * Constructs the url that should be used for loading the Stripe script * @return {?} URL to stripe script location */ function () { return STRIPE_SCRIPT_LOCATION + this.version + '/'; }; /** * Constructs a script element that loads javascript from the given url * @param url - The URL from which the javascript should be loaded * * @return A script element that can be attached to the DOM */ /** * Constructs a script element that loads javascript from the given url * @param {?} url - The URL from which the javascript should be loaded * * @return {?} A script element that can be attached to the DOM */ StripeLoader.constructScript = /** * Constructs a script element that loads javascript from the given url * @param {?} url - The URL from which the javascript should be loaded * * @return {?} A script element that can be attached to the DOM */ function (url) { /** @type {?} */ var script = document.createElement('script'); script.type = 'text/javascript'; script.async = true; script.defer = true; script.src = url; return script; }; /** * The key under which the stripe script is placed in the * window object * * @default 'Stripe' */ StripeLoader.STRIPE_WINDOW_KEY = 'Stripe'; StripeLoader.decorators = [ { type: Injectable, args: [{ providedIn: 'root', },] } ]; StripeLoader.ctorParameters = function () { return [ { type: SupportedVersions, decorators: [{ type: Inject, args: [STRIPE_VERSION,] }] }, { type: undefined, decorators: [{ type: Inject, args: [STRIPE_OPTIONS,] }] }, { type: String, decorators: [{ type: Inject, args: [STRIPE_PUBLIC_KEY,] }] } ]; }; /** @nocollapse */ StripeLoader.ngInjectableDef = i0.defineInjectable({ factory: function StripeLoader_Factory() { return new StripeLoader(i0.inject(i1.STRIPE_VERSION), i0.inject(i1.STRIPE_OPTIONS), i0.inject(i1.STRIPE_PUBLIC_KEY)); }, token: StripeLoader, providedIn: "root" }); return StripeLoader; }()); export { StripeLoader }; if (false) { /** * The key under which the stripe script is placed in the * window object * * \@default 'Stripe' * @type {?} */ StripeLoader.STRIPE_WINDOW_KEY; /** @type {?} */ StripeLoader.prototype.version; /** @type {?} */ StripeLoader.prototype.options; /** @type {?} */ StripeLoader.prototype.key; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RyaXBlLWxvYWRlci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHNlY3JldGh1Yi9uZ3gtc3RyaXBlLyIsInNvdXJjZXMiOlsibGliL3NlcnZpY2VzL3N0cmlwZS1sb2FkZXIuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsT0FBTyxFQUFDLFVBQVUsRUFBYSxNQUFNLE1BQU0sQ0FBQztBQUM1QyxPQUFPLEVBQUMsTUFBTSxFQUFFLFVBQVUsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUNqRCxPQUFPLEVBQUMsY0FBYyxFQUFFLGlCQUFpQixFQUFFLHNCQUFzQixFQUFFLGNBQWMsRUFBQyxNQUFNLDBCQUEwQixDQUFDO0FBQ25ILE9BQU8sRUFBQyxpQkFBaUIsRUFBQyxNQUFNLDRCQUE0QixDQUFDOzs7QUFHN0Q7SUFhRSxzQkFBNEMsT0FBMEIsRUFDMUIsT0FBNEIsRUFDekIsR0FBVztRQUZkLFlBQU8sR0FBUCxPQUFPLENBQW1CO1FBQzFCLFlBQU8sR0FBUCxPQUFPLENBQXFCO1FBQ3pCLFFBQUcsR0FBSCxHQUFHLENBQVE7SUFDMUQsQ0FBQztJQUVEOzs7O09BSUc7Ozs7Ozs7O0lBQ1csOEJBQWlCOzs7Ozs7O0lBQS9CLFVBQWdDLEdBQVcsRUFBRSxPQUE0Qjs7WUFDakUsY0FBYyxHQUFHLE1BQU0sQ0FBQyxZQUFZLENBQUMsaUJBQWlCLENBQUM7UUFDN0QsSUFBSSxjQUFjLEVBQUU7WUFDbEIsT0FBTyxjQUFjLENBQUMsR0FBRyxFQUFFLE9BQU8sQ0FBQyxDQUFDO1NBQ3JDO1FBQ0QsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQ7O09BRUc7Ozs7O0lBQ1csMkJBQWM7Ozs7SUFBNUI7UUFDRSxPQUFPLENBQUMsQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLGlCQUFpQixDQUFDLENBQUM7SUFDbEQsQ0FBQztJQUVEOzs7OztPQUtHOzs7Ozs7O0lBQ0ksaUNBQVU7Ozs7OztJQUFqQjtRQUFBLGlCQXFCQztRQXBCQyxPQUFPLElBQUksVUFBVSxDQUFXLFVBQUMsUUFBOEI7WUFDN0QsSUFBSSxDQUFDLFlBQVksQ0FBQyxjQUFjLEVBQUUsRUFBRTs7b0JBQzVCLE1BQU0sR0FBRyxZQUFZLENBQUMsZUFBZSxDQUFDLEtBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO2dCQUV0RSxNQUFNLENBQUMsTUFBTSxHQUFHLENBQUM7b0JBQ2YsUUFBUSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsaUJBQWlCLENBQUMsS0FBSSxDQUFDLEdBQUcsRUFBRSxLQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztvQkFDdEUsUUFBUSxDQUFDLFFBQVEsRUFBRSxDQUFDO2dCQUN0QixDQUFDLENBQUMsQ0FBQztnQkFFSCxNQUFNLENBQUMsT0FBTyxHQUFHO29CQUNmLFFBQVEsQ0FBQyxLQUFLLENBQUMsbUNBQW1DLENBQUMsQ0FBQztvQkFDcEQsUUFBUSxDQUFDLFFBQVEsRUFBRSxDQUFDO2dCQUN0QixDQUFDLENBQUM7Z0JBRUYsUUFBUSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLENBQUM7YUFDbkM7aUJBQU07Z0JBQ0wsUUFBUSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsaUJBQWlCLENBQUMsS0FBSSxDQUFDLEdBQUcsRUFBRSxLQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztnQkFDdEUsUUFBUSxDQUFDLFFBQVEsRUFBRSxDQUFDO2FBQ3JCO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQ7OztPQUdHOzs7OztJQUNLLHlDQUFrQjs7OztJQUExQjtRQUNFLE9BQU8sc0JBQXNCLEdBQUcsSUFBSSxDQUFDLE9BQU8sR0FBRyxHQUFHLENBQUM7SUFDckQsQ0FBQztJQUVEOzs7OztPQUtHOzs7Ozs7O0lBQ1ksNEJBQWU7Ozs7OztJQUE5QixVQUErQixHQUFXOztZQUNsQyxNQUFNLEdBQUcsUUFBUSxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUM7UUFDL0MsTUFBTSxDQUFDLElBQUksR0FBRyxpQkFBaUIsQ0FBQztRQUNoQyxNQUFNLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQztRQUNwQixNQUFNLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQztRQUNwQixNQUFNLENBQUMsR0FBRyxHQUFHLEdBQUcsQ0FBQztRQUVqQixPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0lBcEZEOzs7OztPQUtHO0lBQ3FCLDhCQUFpQixHQUFHLFFBQVEsQ0FBQzs7Z0JBWHRELFVBQVUsU0FBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkI7OztnQkFMTyxpQkFBaUIsdUJBZ0JWLE1BQU0sU0FBQyxjQUFjO2dEQUNyQixNQUFNLFNBQUMsY0FBYzs2Q0FDckIsTUFBTSxTQUFDLGlCQUFpQjs7O3VCQXJCdkM7Q0FnR0MsQUExRkQsSUEwRkM7U0F2RlksWUFBWTs7Ozs7Ozs7O0lBUXZCLCtCQUFxRDs7SUFFekMsK0JBQTBEOztJQUMxRCwrQkFBNEQ7O0lBQzVELDJCQUE4QyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7T2JzZXJ2YWJsZSwgU3Vic2NyaWJlcn0gZnJvbSAncnhqcyc7XG5pbXBvcnQge0luamVjdCwgSW5qZWN0YWJsZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1NUUklQRV9PUFRJT05TLCBTVFJJUEVfUFVCTElDX0tFWSwgU1RSSVBFX1NDUklQVF9MT0NBVElPTiwgU1RSSVBFX1ZFUlNJT059IGZyb20gJy4uL21vZGVsL3N0cmlwZS5jb25zdGFudCc7XG5pbXBvcnQge1N1cHBvcnRlZFZlcnNpb25zfSBmcm9tICcuLi9tb2RlbC9TdXBwb3J0ZWRWZXJzaW9ucyc7XG5pbXBvcnQge1N0cmlwZUNvbmZpZ09wdGlvbnMsIFN0cmlwZUpTfSBmcm9tICdzdHJpcGVqcyc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBTdHJpcGVMb2FkZXIge1xuXG4gIC8qKlxuICAgKiBUaGUga2V5IHVuZGVyIHdoaWNoIHRoZSBzdHJpcGUgc2NyaXB0IGlzIHBsYWNlZCBpbiB0aGVcbiAgICogd2luZG93IG9iamVjdFxuICAgKlxuICAgKiBAZGVmYXVsdCAnU3RyaXBlJ1xuICAgKi9cbiAgcHJpdmF0ZSBzdGF0aWMgcmVhZG9ubHkgU1RSSVBFX1dJTkRPV19LRVkgPSAnU3RyaXBlJztcblxuICBjb25zdHJ1Y3RvcihASW5qZWN0KFNUUklQRV9WRVJTSU9OKSBwcml2YXRlIHZlcnNpb246IFN1cHBvcnRlZFZlcnNpb25zLFxuICAgICAgICAgICAgICBASW5qZWN0KFNUUklQRV9PUFRJT05TKSBwcml2YXRlIG9wdGlvbnM6IFN0cmlwZUNvbmZpZ09wdGlvbnMsXG4gICAgICAgICAgICAgIEBJbmplY3QoU1RSSVBFX1BVQkxJQ19LRVkpIHByaXZhdGUga2V5OiBzdHJpbmcpIHtcbiAgfVxuXG4gIC8qKlxuICAgKiBGZXRjaGVzIHRoZSBzdHJpcGUgaW5zdGFuY2UgZnJvbSB0aGUgRE9NXG4gICAqXG4gICAqIEByZXR1cm4gVGhlIFN0cmlwZSBpbnN0YW5jZSBvciBudWxsIGlmIGl0IGlzIG5vdCB5ZXQgcmVnaXN0ZXJlZFxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBnZXRTdHJpcGVJbnN0YW5jZShrZXk6IHN0cmluZywgb3B0aW9uczogU3RyaXBlQ29uZmlnT3B0aW9ucyk6IFN0cmlwZUpTIHwgbnVsbCB7XG4gICAgY29uc3Qgc3RyaXBlSW5zdGFuY2UgPSB3aW5kb3dbU3RyaXBlTG9hZGVyLlNUUklQRV9XSU5ET1dfS0VZXTtcbiAgICBpZiAoc3RyaXBlSW5zdGFuY2UpIHtcbiAgICAgIHJldHVybiBzdHJpcGVJbnN0YW5jZShrZXksIG9wdGlvbnMpO1xuICAgIH1cbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIC8qKlxuICAgKiBDaGVja3Mgd2hldGhlciBvciBub3QgU3RyaXBlSlMgaGFzIGJlZW4gbG9hZGVkXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGlzU3RyaXBlTG9hZGVkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhIXdpbmRvd1tTdHJpcGVMb2FkZXIuU1RSSVBFX1dJTkRPV19LRVldO1xuICB9XG5cbiAgLyoqXG4gICAqIEluamVjdHMgdGhlIHNjcmlwdCB0YWcgaW50byB0aGUgYm9keSBvZiB0aGUgcGFnZSBpbiBvcmRlciB0byBsYXp5XG4gICAqIGxvYWQgdGhlIFN0cmlwZSBzY3JpcHRcbiAgICpcbiAgICogQHJldHVybiBPYnNlcnZhYmxlIHRvIGluZGljYXRlIHdoZW4gdGhlIHNjcmlwdCBoYXMgZmluaXNoZWQgbG9hZGluZ1xuICAgKi9cbiAgcHVibGljIGxvYWRTY3JpcHQoKTogT2JzZXJ2YWJsZTxTdHJpcGVKUz4ge1xuICAgIHJldHVybiBuZXcgT2JzZXJ2YWJsZTxTdHJpcGVKUz4oKG9ic2VydmVyOiBTdWJzY3JpYmVyPFN0cmlwZUpTPikgPT4ge1xuICAgICAgaWYgKCFTdHJpcGVMb2FkZXIuaXNTdHJpcGVMb2FkZWQoKSkge1xuICAgICAgICBjb25zdCBzY3JpcHQgPSBTdHJpcGVMb2FkZXIuY29uc3RydWN0U2NyaXB0KHRoaXMuZ2V0U3RyaXBlU2NyaXB0VXJsKCkpO1xuXG4gICAgICAgIHNjcmlwdC5vbmxvYWQgPSAoKCkgPT4ge1xuICAgICAgICAgIG9ic2VydmVyLm5leHQoU3RyaXBlTG9hZGVyLmdldFN0cmlwZUluc3RhbmNlKHRoaXMua2V5LCB0aGlzLm9wdGlvbnMpKTtcbiAgICAgICAgICBvYnNlcnZlci5jb21wbGV0ZSgpO1xuICAgICAgICB9KTtcblxuICAgICAgICBzY3JpcHQub25lcnJvciA9ICgpID0+IHtcbiAgICAgICAgICBvYnNlcnZlci5lcnJvcignRmFpbGVkIHRvIGxvYWQgdGhlIFN0cmlwZSBzY3JpcHQhJyk7XG4gICAgICAgICAgb2JzZXJ2ZXIuY29tcGxldGUoKTtcbiAgICAgICAgfTtcblxuICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHNjcmlwdCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBvYnNlcnZlci5uZXh0KFN0cmlwZUxvYWRlci5nZXRTdHJpcGVJbnN0YW5jZSh0aGlzLmtleSwgdGhpcy5vcHRpb25zKSk7XG4gICAgICAgIG9ic2VydmVyLmNvbXBsZXRlKCk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogQ29uc3RydWN0cyB0aGUgdXJsIHRoYXQgc2hvdWxkIGJlIHVzZWQgZm9yIGxvYWRpbmcgdGhlIFN0cmlwZSBzY3JpcHRcbiAgICogQHJldHVybiBVUkwgdG8gc3RyaXBlIHNjcmlwdCBsb2NhdGlvblxuICAgKi9cbiAgcHJpdmF0ZSBnZXRTdHJpcGVTY3JpcHRVcmwoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gU1RSSVBFX1NDUklQVF9MT0NBVElPTiArIHRoaXMudmVyc2lvbiArICcvJztcbiAgfVxuXG4gIC8qKlxuICAgKiBDb25zdHJ1Y3RzIGEgc2NyaXB0IGVsZW1lbnQgdGhhdCBsb2FkcyBqYXZhc2NyaXB0IGZyb20gdGhlIGdpdmVuIHVybFxuICAgKiBAcGFyYW0gdXJsIC0gVGhlIFVSTCBmcm9tIHdoaWNoIHRoZSBqYXZhc2NyaXB0IHNob3VsZCBiZSBsb2FkZWRcbiAgICpcbiAgICogQHJldHVybiBBIHNjcmlwdCBlbGVtZW50IHRoYXQgY2FuIGJlIGF0dGFjaGVkIHRvIHRoZSBET01cbiAgICovXG4gIHByaXZhdGUgc3RhdGljIGNvbnN0cnVjdFNjcmlwdCh1cmw6IHN0cmluZyk6IEhUTUxTY3JpcHRFbGVtZW50IHtcbiAgICBjb25zdCBzY3JpcHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzY3JpcHQnKTtcbiAgICBzY3JpcHQudHlwZSA9ICd0ZXh0L2phdmFzY3JpcHQnO1xuICAgIHNjcmlwdC5hc3luYyA9IHRydWU7XG4gICAgc2NyaXB0LmRlZmVyID0gdHJ1ZTtcbiAgICBzY3JpcHQuc3JjID0gdXJsO1xuXG4gICAgcmV0dXJuIHNjcmlwdDtcbiAgfVxufVxuIl19