{"version":3,"sources":["node_modules/uuid/dist/esm-browser/rng.js","node_modules/uuid/dist/esm-browser/regex.js","node_modules/uuid/dist/esm-browser/validate.js","node_modules/uuid/dist/esm-browser/stringify.js","node_modules/uuid/dist/esm-browser/native.js","node_modules/uuid/dist/esm-browser/v4.js","src/app/shared/utilities/http.ts","src/app/core/services/myqq/myqq.service.ts"],"sourcesContent":["// Unique ID creation requires a high quality random # generator. In the browser we therefore\n// require the crypto API and do not support built-in fallback to lower quality random number\n// generators (like Math.random()).\nlet getRandomValues;\nconst rnds8 = new Uint8Array(16);\nexport default function rng() {\n // lazy load so that environments that need to polyfill have a chance to do so\n if (!getRandomValues) {\n // getRandomValues needs to be invoked in a context where \"this\" is a Crypto implementation.\n getRandomValues = typeof crypto !== 'undefined' && crypto.getRandomValues && crypto.getRandomValues.bind(crypto);\n if (!getRandomValues) {\n throw new Error('crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported');\n }\n }\n return getRandomValues(rnds8);\n}","export default /^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i;","import REGEX from './regex.js';\nfunction validate(uuid) {\n return typeof uuid === 'string' && REGEX.test(uuid);\n}\nexport default validate;","import validate from './validate.js';\n/**\n * Convert array of 16 byte values to UUID string format of the form:\n * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\n */\n\nconst byteToHex = [];\nfor (let i = 0; i < 256; ++i) {\n byteToHex.push((i + 0x100).toString(16).slice(1));\n}\nexport function unsafeStringify(arr, offset = 0) {\n // Note: Be careful editing this code! It's been tuned for performance\n // and works in ways you may not expect. See https://github.com/uuidjs/uuid/pull/434\n return (byteToHex[arr[offset + 0]] + byteToHex[arr[offset + 1]] + byteToHex[arr[offset + 2]] + byteToHex[arr[offset + 3]] + '-' + byteToHex[arr[offset + 4]] + byteToHex[arr[offset + 5]] + '-' + byteToHex[arr[offset + 6]] + byteToHex[arr[offset + 7]] + '-' + byteToHex[arr[offset + 8]] + byteToHex[arr[offset + 9]] + '-' + byteToHex[arr[offset + 10]] + byteToHex[arr[offset + 11]] + byteToHex[arr[offset + 12]] + byteToHex[arr[offset + 13]] + byteToHex[arr[offset + 14]] + byteToHex[arr[offset + 15]]).toLowerCase();\n}\nfunction stringify(arr, offset = 0) {\n const uuid = unsafeStringify(arr, offset); // Consistency check for valid UUID. If this throws, it's likely due to one\n // of the following:\n // - One or more input array values don't map to a hex octet (leading to\n // \"undefined\" in the uuid)\n // - Invalid input values for the RFC `version` or `variant` fields\n\n if (!validate(uuid)) {\n throw TypeError('Stringified UUID is invalid');\n }\n return uuid;\n}\nexport default stringify;","const randomUUID = typeof crypto !== 'undefined' && crypto.randomUUID && crypto.randomUUID.bind(crypto);\nexport default {\n randomUUID\n};","import native from './native.js';\nimport rng from './rng.js';\nimport { unsafeStringify } from './stringify.js';\nfunction v4(options, buf, offset) {\n if (native.randomUUID && !buf && !options) {\n return native.randomUUID();\n }\n options = options || {};\n const rnds = options.random || (options.rng || rng)(); // Per 4.4, set bits for version and `clock_seq_hi_and_reserved`\n\n rnds[6] = rnds[6] & 0x0f | 0x40;\n rnds[8] = rnds[8] & 0x3f | 0x80; // Copy bytes to buffer, if provided\n\n if (buf) {\n offset = offset || 0;\n for (let i = 0; i < 16; ++i) {\n buf[offset + i] = rnds[i];\n }\n return buf;\n }\n return unsafeStringify(rnds);\n}\nexport default v4;","import { HttpErrorResponse, HttpHeaders } from \"@angular/common/http\";\n\nimport { Observable, of, throwError } from \"rxjs\";\nimport { catchError } from \"rxjs/operators\";\nimport { ResultsPage } from \"./types\";\n\nexport class ValidationError extends Error {\n constructor(message) {\n super(message);\n this.name = \"ValidationError\";\n this.message = message;\n }\n\n toJSON() {\n return {\n name: this.name,\n message: this.message,\n };\n }\n}\n\nexport const catchCodes = (\n codes: number[],\n recover: (code: number, error: HttpErrorResponse) => T\n) => (obs: Observable): Observable =>\n obs.pipe(\n catchError((err) =>\n err instanceof HttpErrorResponse && codes.some((c) => err.status === c)\n ? of(recover(err.status, err))\n : throwError(err)\n )\n );\n\nexport const version = (\n v: number,\n options?: { headers: HttpHeaders }\n): { headers: HttpHeaders } => {\n const h =\n options && options.headers && options.headers instanceof HttpHeaders\n ? options.headers\n : new HttpHeaders();\n\n return { headers: h.set(\"Accept-Version\", `v${v}`) };\n};\n\nexport const pager = (\n { offset, limit }: ResultsPage,\n options?: { headers: HttpHeaders }\n): { headers: HttpHeaders } => {\n const h =\n options && options.headers && options.headers instanceof HttpHeaders\n ? options.headers\n : new HttpHeaders();\n\n return {\n headers: h\n .set(\"X-Paging-Offset\", offset.toString())\n .set(\"X-Paging-Page-Size\", limit.toString()),\n };\n};\n","import { Injectable } from \"@angular/core\";\nimport { HttpClient } from \"@angular/common/http\";\n\nimport { Store } from \"@ngrx/store\";\n\nimport { Observable, of, throwError } from \"rxjs\";\nimport { map, switchMap } from \"rxjs/operators\";\nimport { v4 as uuid } from \"uuid\";\n\nimport { fold } from \"fp-ts/es6/Either\";\nimport { fromNullable, none } from \"fp-ts/es6/Option\";\nimport { DecodeError, Decoder, draw, nullable } from \"io-ts/Decoder\";\n\nimport { log, LogLevels } from \"src/app/core/ngrx/logger\";\nimport { PaymentMethod } from \"src/app/shared/modules/stripe/stripe-definitions/payment-method\";\n\nimport { environment } from \"src/environments/environment\";\n\nimport {\n AcceptRetentionOfferResponse,\n Account,\n AccountCheckLast4PlateRequest,\n AccountCheckResponse,\n AccountInfoResponse,\n AccountQuota,\n CheckEligibilityForRetentionOfferResponse,\n CancelMembershipRequest,\n CancelMembershipResponse,\n CancelReason,\n CancelReasonArray,\n CustomerPaymentMethod,\n CustomerPaymentMethodArray,\n GetProfileResponse,\n GetSubscriptionResponse,\n Order,\n PayInvoiceResponse,\n PostCalculateOrderRequest,\n PostCalculateOrderResponse,\n PostPaymentMethodRequest,\n PostPaymentMethodResponse,\n PostSubmitOrderRequest,\n PostSubmitOrderResponse,\n Promo,\n PromoDetails,\n Region,\n RegionArray,\n StoreArray,\n SubscriptionDetail,\n SwapReason,\n SwapReasonArray,\n Vehicle,\n VehicleArray,\n VehicleSwapRequest,\n VehicleSwapResponse,\n RegionMenu,\n AppVersion,\n OrderSearchResult,\n MarketingContentArray,\n B2bBenefit,\n LinkB2CAccountResponse,\n LinkB2CAccountRequest,\n KustomerRequest,\n KustomerResponse,\n} from \"./myqq.models\";\nimport {\n catchCodes,\n pager,\n ValidationError,\n version,\n} from \"src/app/shared/utilities/http\";\nimport { ResultsPage } from \"src/app/shared/utilities/types\";\n\n/**\n * This service only wraps the HTTP client. It keeps no state.\n */\n@Injectable()\nexport class MyQQService {\n readonly url = environment.URLs.MyQQ;\n\n constructor(readonly http: HttpClient, readonly store$: Store) {}\n\n throwAndLogError(error: DecodeError): Observable {\n const err = new ValidationError(draw(error));\n\n this.store$.dispatch(\n log({\n level: LogLevels.ERROR,\n data: {\n error: err,\n },\n message: \"Validation Error\",\n })\n );\n return throwError(err);\n }\n\n // Raw HTTP response data to structured object\n decodeMap = ({ decode }: Decoder) => (\n obs: Observable\n ): Observable =>\n obs.pipe(\n map(decode),\n switchMap(\n fold(\n (left) => this.throwAndLogError(left),\n (right) => of(right)\n )\n )\n );\n\n /**\n * Profile Endpoints\n * Keep in mind that getMyProfile returns both a keycloak profile and\n * potentially a Qsys account.\n */\n getMyProfile(): Observable {\n return this.http\n .get(`${this.url}/me/profile`)\n .pipe(this.decodeMap(GetProfileResponse));\n }\n\n newAccount(account: Account): Observable {\n return this.http\n .post(`${this.url}/me`, {\n personId: uuid(),\n ...account,\n })\n .pipe(this.decodeMap(Account));\n }\n\n updateAccount(account: Account): Observable {\n return this.http\n .patch(`${this.url}/me`, account)\n .pipe(this.decodeMap(Account));\n }\n\n /**\n * Region Endpoints\n */\n getAllRegions(): Observable[]> {\n return this.http\n .get(`${this.url}/regions`)\n .pipe(this.decodeMap(RegionArray));\n }\n\n /**\n * Vehicle Endpoints\n */\n getVehicles(): Observable {\n return this.http\n .get(`${this.url}/me/vehicles`, version(2))\n .pipe(this.decodeMap(VehicleArray));\n }\n patchVehicle(vehicle: Vehicle): Observable {\n return this.http.patch(\n `${this.url}/me/vehicles/${vehicle.vehicleId}`,\n vehicle\n );\n }\n // Runs various checks and if passes adds the vehicle\n // To add a vehicle with fewer chacks, use POST /me/vehicles with the same payload\n postVehicle(vehicle: Partial): Observable {\n return this.http.post(\n `${this.url}/me/vehicles/check-add`,\n vehicle\n );\n }\n\n // TODO: add correct response type\n removeVehicle(req: Vehicle): Observable {\n return this.http.post(`${this.url}/me/vehicles/remove`, {\n vehicles: [req.vehicleId],\n });\n }\n\n /**\n * Stripe Subscription\n */\n getMySubscriptions(): Observable {\n return this.http\n .get(`${this.url}/me/subscription`, version(2))\n .pipe(\n this.decodeMap(GetSubscriptionResponse),\n map((res) => fromNullable(res)),\n catchCodes([404], () => none)\n );\n }\n\n /**\n * Orders\n */\n getMyOrders(page: ResultsPage): Observable {\n return this.http\n .get(\n `${this.url}/me/orders/search`,\n pager(page, version(2))\n )\n .pipe(this.decodeMap(OrderSearchResult));\n }\n\n getOrderById(orderId: string): Observable {\n return this.http\n .get(`${this.url}/me/orders/${orderId}`)\n .pipe(this.decodeMap(Order));\n }\n\n /**\n * Payment Methods\n */\n getMyPaymentMethods(): Observable {\n return this.http\n .get(\n `${this.url}/me/paymentmethods`,\n version(2)\n )\n .pipe(this.decodeMap(nullable(CustomerPaymentMethodArray)));\n }\n postPaymentMethod(\n method: CustomerPaymentMethod\n ): Observable {\n return this.http\n .post(\n `${this.url}/me/paymentmethods/update`,\n method\n )\n .pipe(this.decodeMap(CustomerPaymentMethod));\n }\n\n newPaymentMethod(\n data: PostPaymentMethodRequest\n ): Observable {\n return this.http\n .post(`${this.url}/me/paymentmethods`, data)\n .pipe(this.decodeMap(PostPaymentMethodResponse));\n }\n\n /**\n * Account Linking Methods\n */\n accountLookup(\n paymentMethod: PaymentMethod\n ): Observable {\n return this.http\n .get(\n `${this.url}/account/check/${paymentMethod.id}`,\n version(2)\n )\n .pipe(this.decodeMap(AccountCheckResponse));\n }\n\n accountLookupLast4Plate(\n data: AccountCheckLast4PlateRequest\n ): Observable {\n return this.http\n .post(`${this.url}/account/check`, data, version(2))\n .pipe(this.decodeMap(AccountCheckResponse));\n }\n\n // TODO: Add correct response type\n linkAccount(accountId: string, data = {}): Observable {\n return this.http.post(`${this.url}/account/link/${accountId}`, data);\n }\n\n // TODO: Add correct response type\n relinkAccount(accountId: string, data = {}): Observable {\n return this.http.post(`${this.url}/me/relink/${accountId}`, data);\n }\n\n /**\n * Get price table (subscription and flock prices) for a user based on their\n * home store id (pulled from the jwt).\n */\n getPriceTable(): Observable {\n return this.http\n .get(`${this.url}/me/menu`, version(3))\n .pipe(this.decodeMap(RegionMenu));\n }\n\n getPriceTableByZip(zip: string): Observable {\n if (!zip || zip == \"\") {\n zip = \"default\";\n }\n return this.http\n .get(`${this.url}/menu/zip/${zip}`, version(4))\n .pipe(this.decodeMap(RegionMenu));\n }\n\n checkPromoCode(serialNo: string): Observable {\n return this.http\n .get(`${this.url}/promos/${serialNo}`)\n .pipe(this.decodeMap(Promo));\n }\n\n /**\n * Order Calculate\n */\n calculateOrder(\n order: PostCalculateOrderRequest\n ): Observable {\n return this.http\n .post(\n `${this.url}/me/orders/calculate`,\n order\n )\n .pipe(this.decodeMap(PostCalculateOrderResponse));\n }\n\n /**\n * Order Submit\n */\n submitOrder(\n order: PostSubmitOrderRequest\n ): Observable {\n return this.http\n .post(\n `${this.url}/me/orders/submit`,\n order,\n version(2)\n )\n .pipe(this.decodeMap(PostCalculateOrderResponse));\n }\n\n /**\n * Get AccountInfoNew\n */\n accountInfo(): Observable {\n return this.http\n .get(`${this.url}/me`)\n .pipe(this.decodeMap(AccountInfoResponse));\n }\n\n /*\n * Pay invoice\n */\n payInvoice(invoiceId: string): Observable {\n return this.http\n .post(`${this.url}/me/invoice/${invoiceId}/pay`, null)\n .pipe(this.decodeMap(PayInvoiceResponse));\n }\n\n /**\n * Store Endpoints\n */\n getAllStores(): Observable {\n return this.http\n .get(`${this.url}/stores`)\n .pipe(this.decodeMap(StoreArray));\n }\n\n /**\n * Promo Endpoints\n * @param code Promo code\n * @returns PromoDetails\n *\n * Dummy for now (endpoiint not yet implemented)\n * TODO: Make this real\n */\n getPromoDetails(code: string): Observable {\n // Immediately return empty if no code is passed in\n // (this makes life easier when there's no promo e.g. in plans page)\n if (!code) {\n return of({} as PromoDetails).pipe(this.decodeMap(PromoDetails));\n }\n return this.http\n .get(\n `${this.url}/promos/${code.toUpperCase()}/details`,\n version(2)\n )\n .pipe(this.decodeMap(PromoDetails));\n }\n\n getCompanyWidePromoDetails(): Observable {\n return this.http\n .get(`${this.url}/promos/companywide`, version(2))\n .pipe(this.decodeMap(PromoDetails));\n }\n\n /**\n * Swap Membership endpoints\n */\n getAccountQuota(): Observable {\n return this.http\n .get(`${this.url}/me/quota`)\n .pipe(this.decodeMap(AccountQuota));\n }\n\n getSwapReasons(): Observable {\n return this.http\n .get(`${this.url}/swapreasons`)\n .pipe(this.decodeMap(SwapReasonArray));\n }\n\n swapVehicleOnMembership(\n swapRequest: VehicleSwapRequest\n ): Observable {\n return this.http.post(\n `${this.url}/me/swapmembership`,\n swapRequest\n );\n }\n\n /**\n * Cancel Membership endpoints\n */\n cancelMembership(\n cancelRequest: CancelMembershipRequest\n ): Observable {\n return this.http.post(\n `${this.url}/me/orders/cancel`,\n cancelRequest\n );\n }\n\n checkEligibilityForRetentionOffer(\n startTimestamp: number\n ): Observable {\n return this.http.get(\n `${this.url}/retention/${startTimestamp}`\n );\n }\n\n acceptRetentionOffer(): Observable {\n return this.http.post(\n `${this.url}/retention`,\n { accept: true }\n );\n }\n\n getCancelReasons(): Observable {\n return this.http\n .get(`${this.url}/cancelreasons`)\n .pipe(this.decodeMap(CancelReasonArray));\n }\n\n getAppMinVersion(): Observable {\n return this.http\n .get(`${this.url}/versions`, version(2))\n .pipe(this.decodeMap(AppVersion));\n }\n\n getMarketingContents(): Observable {\n return this.http\n .get(`${this.url}/marketingcontent`)\n .pipe(this.decodeMap(MarketingContentArray));\n }\n\n /**\n * B2B Endpoints\n */\n\n getB2bBenefit(): Observable {\n return this.http.get(`${this.url}/me/b2b`, version(2));\n }\n\n linkB2cWithCode(\n request: LinkB2CAccountRequest\n ): Observable {\n return this.http.post(\n `${this.url}/me/b2b`,\n request\n );\n }\n\n /**\n * Kustomer Endpoint\n */\n\n sendContactForm(request: KustomerRequest): Observable {\n return this.http.post(\n `${this.url}/kustomer/contact`,\n request\n );\n }\n}\n"],"mappings":"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","names":["getRandomValues","rnds8","rng","regex_default","validate","uuid","regex_default","validate_default","byteToHex","i","unsafeStringify","arr","offset","randomUUID","native_default","v4","options","buf","offset","native_default","rnds","rng","unsafeStringify","v4_default","ValidationError","Error","constructor","message","name","toJSON","catchCodes","codes","recover","obs","pipe","catchError","err","HttpErrorResponse","some","c","status","of","throwError","version","v","options","headers","HttpHeaders","set","pager","offset","limit","toString","MyQQService","constructor","http","store$","url","environment","URLs","MyQQ","decodeMap","decode","obs","pipe","map","switchMap","fold","left","throwAndLogError","right","of","error","err","ValidationError","draw","dispatch","log","level","LogLevels","ERROR","data","message","throwError","getMyProfile","get","GetProfileResponse","newAccount","account","post","__spreadValues","personId","uuid","Account","updateAccount","patch","getAllRegions","RegionArray","getVehicles","version","VehicleArray","patchVehicle","vehicle","vehicleId","postVehicle","removeVehicle","req","vehicles","getMySubscriptions","GetSubscriptionResponse","res","fromNullable","catchCodes","none","getMyOrders","page","pager","OrderSearchResult","getOrderById","orderId","Order","getMyPaymentMethods","nullable","CustomerPaymentMethodArray","postPaymentMethod","method","CustomerPaymentMethod","newPaymentMethod","PostPaymentMethodResponse","accountLookup","paymentMethod","id","AccountCheckResponse","accountLookupLast4Plate","linkAccount","accountId","relinkAccount","getPriceTable","RegionMenu","getPriceTableByZip","zip","checkPromoCode","serialNo","Promo","calculateOrder","order","PostCalculateOrderResponse","submitOrder","accountInfo","AccountInfoResponse","payInvoice","invoiceId","PayInvoiceResponse","getAllStores","StoreArray","getPromoDetails","code","toUpperCase","PromoDetails","getCompanyWidePromoDetails","getAccountQuota","AccountQuota","getSwapReasons","SwapReasonArray","swapVehicleOnMembership","swapRequest","cancelMembership","cancelRequest","checkEligibilityForRetentionOffer","startTimestamp","acceptRetentionOffer","accept","getCancelReasons","CancelReasonArray","getAppMinVersion","AppVersion","getMarketingContents","MarketingContentArray","getB2bBenefit","linkB2cWithCode","request","sendContactForm","ɵɵinject","HttpClient","Store","factory","ɵfac","_MyQQService"],"x_google_ignoreList":[0,1,2,3,4,5]}