@infrab4a/connect-angular 1.0.0-beta.21 → 1.0.0-beta.22
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -642,7 +642,7 @@
|
|
|
642
642
|
lineItem: i2.LineItem.toInstance({
|
|
643
643
|
id: id,
|
|
644
644
|
name: name,
|
|
645
|
-
EAN: EAN,
|
|
645
|
+
EAN: EAN !== null && EAN !== void 0 ? EAN : product.EAN,
|
|
646
646
|
brand: product.brand,
|
|
647
647
|
slug: slug,
|
|
648
648
|
sku: sku,
|
|
@@ -653,7 +653,7 @@
|
|
|
653
653
|
quantity: (item.quantity || 0) + (quantity || 0),
|
|
654
654
|
pricePaid: pricePaid,
|
|
655
655
|
categories: (_g = product.categories) !== null && _g !== void 0 ? _g : [],
|
|
656
|
-
isGift: isGift,
|
|
656
|
+
isGift: isGift !== null && isGift !== void 0 ? isGift : null,
|
|
657
657
|
costPrice: item === null || item === void 0 ? void 0 : item.costPrice,
|
|
658
658
|
})
|
|
659
659
|
}];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"infrab4a-connect-angular.umd.js","sources":["../../../node_modules/tslib/tslib.es6.js","../../../projects/connect-angular/src/services/auth.service.ts","../../../projects/connect-angular/src/consts/default-shop.const.ts","../../../projects/connect-angular/src/consts/es-config.const.ts","../../../projects/connect-angular/src/consts/hasura-options.const.ts","../../../projects/connect-angular/src/services/errors/invalid-coupon.error.ts","../../../projects/connect-angular/src/services/errors/group-invalid-coupon.error.ts","../../../projects/connect-angular/src/services/coupon.service.ts","../../../projects/connect-angular/src/services/checkout.service.ts","../../../projects/connect-angular/src/services/cart.service.ts","../../../projects/connect-angular/src/services/checkout-subscription.service.ts","../../../projects/connect-angular/src/services/order.service.ts","../../../projects/connect-angular/src/services/home-shop.service.ts","../../../projects/connect-angular/src/angular-firebase-auth.module.ts","../../../projects/connect-angular/src/angular-elastic-search.module.ts","../../../projects/connect-angular/src/angular-firestore.module.ts","../../../projects/connect-angular/src/angular-hasura-graphql.module.ts","../../../projects/connect-angular/src/angular-connect.module.ts","../../../projects/connect-angular/src/infrab4a-connect-angular.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","import { Injectable, Inject } from '@angular/core'\r\nimport { AngularFireAuth } from '@angular/fire/auth'\r\nimport { User, UserRepository } from '@infrab4a/connect'\r\nimport { combineLatest, Observable, of } from 'rxjs'\r\nimport { catchError, map, mergeMap } from 'rxjs/operators'\r\nimport firebase from 'firebase/app'\r\n\r\n@Injectable()\r\nexport class AuthService {\r\n constructor(\r\n private readonly angularFireAuth: AngularFireAuth,\r\n @Inject('UserRepository') private readonly userRepository: UserRepository,\r\n ) {}\r\n\r\n getAuthstate(): Observable<{ user: User; isAnonymous: boolean }> {\r\n const observables: [Observable<firebase.User>, Observable<User>] = [\r\n this.angularFireAuth.authState.pipe(catchError(() => of(null))),\r\n this.getUser().pipe(catchError(() => of(null))),\r\n ]\r\n\r\n return combineLatest(observables).pipe(\r\n map(([fireUser, user]) => {\r\n return {\r\n user,\r\n isAnonymous: fireUser?.isAnonymous,\r\n } as { user: User; isAnonymous: boolean }\r\n }),\r\n )\r\n }\r\n\r\n getUser(): Observable<User> {\r\n return this.getFireUser().pipe(\r\n map((user) => user?.uid),\r\n mergeMap((id) => (id ? this.userRepository.get({ id }) : of(null))),\r\n )\r\n }\r\n\r\n getTokenId(): Observable<string> {\r\n return this.angularFireAuth.idToken\r\n }\r\n\r\n getFireUser(): Observable<firebase.User> {\r\n return this.angularFireAuth.user.pipe(catchError(() => of(null)))\r\n }\r\n}\r\n","export const DEFAULT_SHOP = 'DEFAULT_SHOP'\r\n","export const ES_CONFIG = 'ES_CONFIG'\r\n","export const HASURA_OPTIONS = 'HASURA_OPTIONS'\r\n","import { CustomError } from 'ts-custom-error'\r\n\r\nexport class InvalidCouponError extends CustomError {\r\n constructor(readonly message) {\r\n super(message)\r\n }\r\n}\r\n","import { CustomError } from 'ts-custom-error'\r\n\r\nimport { InvalidCouponError } from './invalid-coupon.error'\r\n\r\nexport class GroupInvalidCouponError extends CustomError {\r\n constructor(readonly errors: InvalidCouponError[]) {\r\n super('Many coupon errors throw')\r\n }\r\n}\r\n","import { Inject, Injectable } from '@angular/core'\r\nimport {\r\n CheckoutTypes,\r\n Coupon,\r\n CouponRepository,\r\n Exclusivities,\r\n FinancialCoupon,\r\n NotFoundError,\r\n Shops,\r\n Where,\r\n} from '@infrab4a/connect'\r\nimport { from, Observable, throwError, of } from 'rxjs'\r\nimport { concatMap, map } from 'rxjs/operators'\r\n\r\nimport { DEFAULT_SHOP } from '../consts'\r\n\r\nimport { GroupInvalidCouponError, InvalidCouponError } from './errors'\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class CouponService {\r\n constructor(\r\n @Inject('CouponRepository') private readonly couponRepository: CouponRepository,\r\n @Inject(DEFAULT_SHOP) private readonly defaultShop: Shops,\r\n ) {}\r\n\r\n checkCoupon(nickname: string, userEmail: string, checkoutType: CheckoutTypes): Observable<FinancialCoupon[]> {\r\n return from(\r\n this.couponRepository.find({\r\n filters: {\r\n nickname: { operator: Where.EQUALS, value: nickname },\r\n shopAvailability: { operator: Where.EQUALS, value: this.defaultShop },\r\n checkoutType: { operator: Where.EQUALS, value: checkoutType },\r\n },\r\n }),\r\n ).pipe(\r\n concatMap((coupons) =>\r\n coupons.count < 1 ? throwError(() => new NotFoundError('Coupon not found')) : of(coupons.data),\r\n ),\r\n map((coupons) => this.separateValidCoupons(coupons, userEmail)),\r\n map(({ valids, invalids }) => {\r\n if (!valids.length) throw new GroupInvalidCouponError(invalids)\r\n\r\n return valids\r\n }),\r\n )\r\n }\r\n\r\n private isValidCoupon(coupon: FinancialCoupon, userEmail: string): boolean {\r\n if (!this.emailIsFromCollaborator(userEmail) && coupon.exclusivityType === Exclusivities.COLLABORATORS)\r\n throw new InvalidCouponError('User is not a collaborator')\r\n if (coupon.exclusivityType === Exclusivities.SPECIFIC_USER && coupon.recipient !== userEmail)\r\n throw new InvalidCouponError('Coupon is not valid for user')\r\n if (coupon?.expiresIn < new Date()) throw new InvalidCouponError('Coupon is expired')\r\n\r\n return true\r\n }\r\n\r\n private emailIsFromCollaborator = (userEmail: string): boolean => !!userEmail?.match(/@b4a.com.br/g)\r\n\r\n private separateValidCoupons = (\r\n coupons: Coupon[],\r\n userEmail: string,\r\n ): { valids: FinancialCoupon[]; invalids: InvalidCouponError[] } =>\r\n coupons\r\n .map((coupon) => {\r\n try {\r\n if (!FinancialCoupon.isFinancialCoupon(coupon)) throw new InvalidCouponError('Coupon is not valid')\r\n if (this.isValidCoupon(coupon, userEmail)) return coupon\r\n } catch (error) {\r\n return error as InvalidCouponError\r\n }\r\n })\r\n .reduce(\r\n (current, coupon) => ({\r\n ...current,\r\n ...(FinancialCoupon.isFinancialCoupon(coupon)\r\n ? { valids: [...current.valids, coupon] }\r\n : { invalids: [...current.invalids, coupon] }),\r\n }),\r\n {\r\n valids: [] as FinancialCoupon[],\r\n invalids: [] as InvalidCouponError[],\r\n },\r\n )\r\n}\r\n","import { Inject, Injectable } from '@angular/core'\r\nimport {\r\n Checkout,\r\n CheckoutRepository,\r\n CheckoutTypes,\r\n FinancialCoupon,\r\n isNil,\r\n NotFoundError,\r\n OrderRepository,\r\n pick,\r\n Shops,\r\n User,\r\n UserRepository\r\n} from '@infrab4a/connect'\r\nimport cookie from 'js-cookie'\r\nimport { from, Observable, of, throwError } from 'rxjs'\r\nimport { concatMap } from 'rxjs/operators'\r\n\r\nimport { DEFAULT_SHOP } from '../consts'\r\n\r\nimport { CouponService } from './coupon.service'\r\nimport { RequiredCheckoutData } from './types'\r\n\r\n@Injectable()\r\nexport class CheckoutService {\r\n constructor(\r\n private readonly couponService: CouponService,\r\n @Inject('CheckoutRepository') private readonly checkoutRepository: CheckoutRepository,\r\n @Inject('OrderRepository') private readonly orderRepository: OrderRepository,\r\n @Inject('UserRepository') private readonly userRepository: UserRepository,\r\n @Inject(DEFAULT_SHOP) private readonly defaultShop: Shops,\r\n ) {}\r\n\r\n getCheckout(checkoutData?: RequiredCheckoutData): Observable<Checkout> {\r\n const checkoutId = cookie.get('checkoutId')\r\n\r\n if (!isNil(checkoutId)) return from(this.checkoutRepository.get({ id: checkoutId }))\r\n\r\n return from(this.createCheckout(checkoutData))\r\n }\r\n\r\n getUserByCheckout(checkoutId: string): Observable<User> {\r\n return from(this.checkoutRepository.get({ id: checkoutId })).pipe(\r\n concatMap((checkout) =>\r\n checkout?.user?.id ? of(checkout.user) : from(this.userRepository.get({ id: checkout.user.id })),\r\n ),\r\n concatMap((user) => of(user) || throwError(() => new NotFoundError('User is not found'))),\r\n )\r\n }\r\n\r\n updateCheckoutLineItems(checkout: Partial<Checkout>): Observable<Checkout> {\r\n return from(this.checkoutRepository.update(Checkout.toInstance({ id: checkout.id, lineItems: checkout.lineItems })))\r\n }\r\n\r\n updateCheckoutUser(checkout: Partial<Checkout>): Observable<Checkout> {\r\n return from(this.checkoutRepository.update(Checkout.toInstance({ id: checkout.id, user: checkout.user })))\r\n }\r\n\r\n clearCheckoutFromSession(): Observable<void> {\r\n cookie.remove('checkoutId')\r\n\r\n return of()\r\n }\r\n\r\n checkCoupon(nickname: string): Observable<FinancialCoupon> {\r\n return this.getCheckout().pipe(\r\n concatMap((checkout) =>\r\n this.couponService.checkCoupon(nickname, checkout.user?.email, CheckoutTypes.ECOMMERCE).pipe(\r\n concatMap((coupons) => of(coupons.shift())),\r\n concatMap((coupon) =>\r\n !!checkout.user?.email\r\n ? from(\r\n this.orderRepository.find({\r\n filters: { user: { email: checkout.user?.email }, coupon: { id: coupon.id } },\r\n }),\r\n ).pipe(\r\n concatMap((orders) => {\r\n if (orders.data.length >= (coupon.useLimit || Infinity))\r\n return throwError(() => new Error('Coupon is already applied'))\r\n\r\n return of(coupon)\r\n }),\r\n )\r\n : of(coupon),\r\n ),\r\n ),\r\n ),\r\n )\r\n }\r\n\r\n private async createCheckout(checkoutData?: RequiredCheckoutData): Promise<Checkout> {\r\n const checkout = await this.checkoutRepository.create({\r\n createdAt: new Date(),\r\n ...Checkout.toInstance(pick(checkoutData, ['user', 'shop'])).toPlain(),\r\n shop: checkoutData?.shop || this.defaultShop,\r\n })\r\n\r\n cookie.set('checkoutId', checkout.id)\r\n\r\n return checkout\r\n }\r\n}\r\n","import { Inject, Injectable } from '@angular/core'\r\nimport {\r\n Checkout,\r\n Coupon,\r\n CouponSubtypes,\r\n CouponTypes,\r\n FinancialCoupon,\r\n isNil,\r\n LineItem,\r\n ProductRepository,\r\n Shops,\r\n User,\r\n Where\r\n} from '@infrab4a/connect'\r\nimport { from, iif, Observable, of, Subject } from 'rxjs'\r\nimport { catchError, concatMap, map, mergeMap, tap } from 'rxjs/operators'\r\n\r\nimport { DEFAULT_SHOP } from '../consts'\r\n\r\nimport { AuthService } from './auth.service'\r\nimport { CheckoutService } from './checkout.service'\r\nimport { RequiredCheckoutData } from './types'\r\n\r\nexport type Cart = {\r\n [id: string]: LineItem\r\n}\r\n\r\n@Injectable()\r\nexport class CartService {\r\n private cartSubject: Subject<Cart> = new Subject()\r\n\r\n constructor(\r\n private readonly authService: AuthService,\r\n private readonly checkoutService: CheckoutService,\r\n @Inject(DEFAULT_SHOP) private readonly defaultShop: Shops,\r\n @Inject('ProductRepository') private readonly productRepository: ProductRepository,\r\n ) {}\r\n\r\n addItem(item: LineItem, quantity: number = 1): Observable<Cart> {\r\n\r\n return from(this.checkoutService.getCheckout())\r\n .pipe(\r\n concatMap(checkout => this.buildLineItem({ checkout, item, quantity: quantity || 1 })),\r\n mergeMap(({checkout, lineItem}) => this.updateLineItemInCart(lineItem, quantity || 1, checkout as Checkout)),\r\n tap((cart) => this.cartSubject.next(cart))\r\n )\r\n \r\n // .pipe(\r\n // concatMap(({ checkout, lineItem }) => this.updateLineItemInCart(lineItem, quantity || 1, checkout)),\r\n // tap((cart) => this.cartSubject.next(cart)),\r\n // )\r\n // return this.checkoutService.getCheckout().pipe(\r\n // map( async(checkout) => ({\r\n // checkout,\r\n // lineItem: await this.buildLineItem({ checkout, item, quantity: quantity || 1 }),\r\n // })),\r\n // concatMap(({ checkout, lineItem }) => this.updateLineItemInCart(lineItem, quantity || 1, checkout)),\r\n // tap((cart) => this.cartSubject.next(cart)),\r\n // )\r\n }\r\n\r\n decreaseItem(item: LineItem): Observable<Cart> {\r\n return this.checkoutService.getCheckout().pipe(\r\n map((checkout) => {\r\n const checkoutItem = checkout.lineItems?.find((lineItem) => lineItem.sku === item.sku)\r\n\r\n if (!isNil(checkoutItem)) checkoutItem.quantity -= checkoutItem.quantity > 1 ? 1 : 0\r\n\r\n return checkout\r\n }),\r\n concatMap((checkout) => this.checkoutService.updateCheckoutLineItems(checkout)),\r\n map((checkout) => this.generateCartObject(checkout.lineItems)),\r\n tap((cart) => this.cartSubject.next(cart)),\r\n )\r\n }\r\n\r\n getCart(checkout?: RequiredCheckoutData): Observable<Cart> {\r\n this.buildCartFromCheckout(checkout).subscribe((cart) => this.cartSubject.next(cart))\r\n\r\n return this.cartSubject\r\n }\r\n\r\n /**\r\n * @deprecated The method should not be used\r\n */\r\n getDiscount(coupon: Coupon & { id: string }): (subTotalPrice: number) => number {\r\n switch (coupon.type) {\r\n case CouponTypes.FINANCIAL:\r\n return this.getFinancialDiscount(coupon)\r\n case CouponTypes.PRODUCT:\r\n return (subTotalPrice: number) => subTotalPrice\r\n case CouponTypes.GIFTCARD:\r\n return this.getFinancialDiscount(coupon)\r\n case CouponTypes.VOUCHER:\r\n return (subTotalPrice: number) => subTotalPrice\r\n }\r\n }\r\n\r\n /**\r\n * @deprecated The method should not be used\r\n */\r\n getVariantPriceDiscount(item: LineItem, shop: Shops): Observable<number> {\r\n return this.authService.getUser().pipe(\r\n concatMap((user) =>\r\n iif(\r\n () => user.isSubscriber && !!item.getInfoByShop(shop).subscriberPrice,\r\n of(item.getInfoByShop(shop).subscriberPrice),\r\n of(item.getInfoByShop(shop).price),\r\n ),\r\n ),\r\n catchError(() => of(item.getInfoByShop(shop).price)),\r\n )\r\n }\r\n\r\n removeItem(item: LineItem): Observable<Cart> {\r\n return this.checkoutService.getCheckout().pipe(\r\n map((checkout) => {\r\n const index = checkout.lineItems.findIndex((lineItem) => lineItem.sku === item.sku)\r\n\r\n if (index >= 0) checkout.lineItems.splice(index, 1)\r\n\r\n return checkout\r\n }),\r\n concatMap((checkout) => this.checkoutService.updateCheckoutLineItems(checkout)),\r\n map((checkout) => this.generateCartObject(checkout.lineItems)),\r\n tap((cart) => this.cartSubject.next(cart)),\r\n )\r\n }\r\n\r\n updateUserCart(user: User): Observable<Cart> {\r\n return this.checkoutService.getCheckout().pipe(\r\n concatMap((checkout) =>\r\n this.checkoutService.updateCheckoutUser(Checkout.toInstance({ ...checkout.toPlain(), user })),\r\n ),\r\n concatMap((checkout) =>\r\n this.checkoutService.updateCheckoutLineItems(\r\n Checkout.toInstance({\r\n ...checkout.toPlain(),\r\n lineItems: checkout.lineItems?.map(async (item) => await this.buildLineItem({ checkout, item })) || [],\r\n }),\r\n ),\r\n ),\r\n map((checkout) => this.generateCartObject(checkout.lineItems)),\r\n tap((cart) => this.cartSubject.next(cart)),\r\n )\r\n }\r\n\r\n clearCart(): Observable<Cart> {\r\n return this.checkoutService.getCheckout().pipe(\r\n map((checkout) => {\r\n this.checkoutService.clearCheckoutFromSession()\r\n return checkout\r\n }),\r\n concatMap((oldCheckout) => this.buildCartFromCheckout(oldCheckout)),\r\n tap((cart) => this.cartSubject.next(cart)),\r\n )\r\n }\r\n\r\n private buildCartFromCheckout(checkoutData?: RequiredCheckoutData): Observable<Cart> {\r\n return this.checkoutService.getCheckout(checkoutData).pipe(\r\n map((checkout) => checkout.lineItems),\r\n concatMap((lineItems) => of(this.generateCartObject(lineItems))),\r\n )\r\n }\r\n\r\n private updateLineItemInCart = (lineItem: LineItem, quantity: number, checkout?: Checkout): Observable<Cart> =>\r\n (isNil(checkout) ? this.checkoutService.getCheckout() : of(checkout)).pipe(\r\n concatMap((checkoutLoaded) => {\r\n console.log('updateLineItemInCart1', checkoutLoaded)\r\n const items: LineItem[] = []\r\n const index = checkoutLoaded.lineItems?.map((checkoutItem) => checkoutItem.sku).indexOf(lineItem.sku)\r\n\r\n if (index > -1) {\r\n checkoutLoaded.lineItems[index].quantity += quantity\r\n checkoutLoaded.lineItems[index].pricePaid = lineItem.pricePaid\r\n } else\r\n checkoutLoaded.lineItems = items.concat(\r\n checkoutLoaded.lineItems ? checkoutLoaded.lineItems.concat([lineItem]) : [lineItem],\r\n )\r\n \r\n return this.checkoutService\r\n .updateCheckoutLineItems(checkoutLoaded)\r\n .pipe(map((updatedCheckout) => this.generateCartObject(updatedCheckout.lineItems)))\r\n }),\r\n )\r\n \r\n private generateCartObject = (items: LineItem[]): Cart => {\r\n const cart: Cart = {}\r\n\r\n items?.forEach(\r\n (item) =>\r\n (cart[item.sku] = LineItem.toInstance({\r\n ...(cart[item.sku] || item),\r\n quantity: (cart[item.sku]?.quantity || 0) + (item.quantity ? item.quantity : 1),\r\n })),\r\n )\r\n\r\n return cart\r\n }\r\n\r\n private buildLineItem = async ({\r\n checkout,\r\n item,\r\n quantity,\r\n }: {\r\n checkout: RequiredCheckoutData\r\n item: LineItem\r\n quantity?: number\r\n }) => {\r\n\r\n const product = await this.productRepository\r\n .find({ filters: { id: { operator: Where.EQUALS, value: item.id } }})\r\n .then((product => product.data.shift()))\r\n\r\n console.log('productRepository by id', product) \r\n console.log('buildLineItem', checkout, item, quantity)\r\n item.quantity = item?.quantity || checkout?.lineItems?.find((lineItem) => lineItem.sku === item.sku)?.quantity || 0\r\n\r\n if (this.checkMaxStock(item, quantity || 0))\r\n throw new Error('Desculpe! Temos apenas ' + item.stock?.quantity + ' em estoque.')\r\n\r\n const image = item.image || item.images?.shift()\r\n const { id, name, EAN, brand, slug, stock, price, weight, categories, sku } = item\r\n const isGift = item.isGift || null\r\n const pricePaid = this.getProductPrice({\r\n product: item,\r\n shop: checkout.shop || this.defaultShop,\r\n isSubscriber: checkout.user?.isSubscriber,\r\n })\r\n\r\n console.log('LineItem.toInstance', JSON.stringify({\r\n id,\r\n name,\r\n EAN,\r\n brand: product.brand,\r\n slug,\r\n sku,\r\n stock,\r\n price,\r\n image,\r\n weight: weight ?? product.weight,\r\n quantity: (item.quantity || 0) + (quantity || 0),\r\n pricePaid,\r\n categories: product.categories ?? [],\r\n isGift,\r\n costPrice: item?.costPrice\r\n }))\r\n \r\n return {\r\n checkout, \r\n lineItem: LineItem.toInstance({\r\n id,\r\n name,\r\n EAN,\r\n brand: product.brand,\r\n slug,\r\n sku,\r\n stock,\r\n price,\r\n image,\r\n weight: weight ?? product.weight,\r\n quantity: (item.quantity || 0) + (quantity || 0),\r\n pricePaid,\r\n categories: product.categories ?? [],\r\n isGift,\r\n costPrice: item?.costPrice,\r\n }\r\n )}\r\n }\r\n\r\n private getProductPrice = ({\r\n product,\r\n shop,\r\n isSubscriber,\r\n }: {\r\n product: LineItem\r\n shop: Shops\r\n isSubscriber: boolean\r\n }): number => {\r\n const info = product.getInfoByShop(shop)\r\n\r\n if (product.isGift) return 0\r\n\r\n return isSubscriber && info.subscriberPrice > 0 ? info.subscriberPrice : info.price\r\n }\r\n\r\n private checkMaxStock = (item: LineItem, quantity: number) => {\r\n const maxStock = item.stock?.quantity || 0\r\n const currentItemAmount = item.quantity || 0\r\n\r\n return currentItemAmount + quantity > maxStock\r\n }\r\n\r\n private getFinancialDiscount(coupon: Coupon & { id: string }): (subTotalPrice: number) => number {\r\n return (subTotalPrice) => {\r\n if (FinancialCoupon.isFinancialCoupon(coupon))\r\n switch (coupon.subtype) {\r\n case CouponSubtypes.ABSOLUTE:\r\n return subTotalPrice - coupon.discount * 100\r\n case CouponSubtypes.PERCENTAGE:\r\n return subTotalPrice * (1 - coupon.discount / 100)\r\n }\r\n }\r\n }\r\n}\r\n","import { Inject, Injectable } from '@angular/core'\r\nimport {\r\n CheckoutSubscription,\r\n CheckoutSubscriptionRepository,\r\n CheckoutTypes,\r\n FinancialCoupon,\r\n isNil,\r\n pick,\r\n SubscriptionRepository,\r\n} from '@infrab4a/connect'\r\nimport { forkJoin, from, Observable, of, throwError } from 'rxjs'\r\nimport { concatMap, map } from 'rxjs/operators'\r\nimport { RequiredCheckoutSubscriptionData } from './types'\r\nimport cookie from 'js-cookie'\r\n\r\nimport { CouponService } from './coupon.service'\r\nimport { GroupInvalidCouponError, InvalidCouponError } from './errors'\r\n\r\n@Injectable()\r\nexport class CheckoutSubscriptionService {\r\n constructor(\r\n @Inject('CheckoutSubscriptionRepository')\r\n private readonly checkoutSubscriptionRepository: CheckoutSubscriptionRepository,\r\n @Inject('SubscriptionRepository') private readonly subscriptionRepository: SubscriptionRepository,\r\n private readonly couponService: CouponService,\r\n ) {}\r\n\r\n getCheckoutSubscription(checkoutData?: RequiredCheckoutSubscriptionData): Observable<CheckoutSubscription> {\r\n const checkoutId = cookie.get('checkoutSubscriptionId')\r\n\r\n if (!isNil(checkoutId)) return from(this.checkoutSubscriptionRepository.get({ id: checkoutId }))\r\n\r\n return from(this.createCheckoutSubscription(checkoutData))\r\n }\r\n\r\n private async createCheckoutSubscription(\r\n checkoutData?: RequiredCheckoutSubscriptionData,\r\n ): Promise<CheckoutSubscription> {\r\n const checkout = await this.checkoutSubscriptionRepository.create({\r\n createdAt: new Date(),\r\n ...CheckoutSubscription.toInstance(pick(checkoutData, ['user', 'shop'])).toPlain(),\r\n })\r\n\r\n cookie.set('checkoutSubscriptionId', checkout.id)\r\n\r\n return checkout\r\n }\r\n\r\n clearCheckoutSubscriptionFromSession(): Observable<void> {\r\n cookie.remove('checkoutSubscriptionId')\r\n\r\n return of()\r\n }\r\n\r\n checkCoupon(nickname: string, userEmail: string): Observable<FinancialCoupon> {\r\n return this.getCheckoutSubscription().pipe(\r\n concatMap((checkout) =>\r\n this.couponService.checkCoupon(nickname, userEmail, CheckoutTypes.SUBSCRIPTION).pipe(\r\n concatMap((coupons) => {\r\n const couponsWithSamePlan = coupons.filter((coupon) => checkout.subscriptionPlan.name === coupon.plan)\r\n const couponsWithNoPlan = coupons.filter((coupon) => !coupon.plan)\r\n\r\n if (couponsWithSamePlan.length > 0) return of(couponsWithSamePlan)\r\n if (couponsWithNoPlan.length > 0) return of(couponsWithNoPlan)\r\n\r\n throw new Error(`Coupon subscription plan is invalid.`)\r\n }),\r\n concatMap((coupons) =>\r\n !!checkout.user?.email ? this.checkCouponsWithCheckout(coupons, checkout) : of(coupons),\r\n ),\r\n map((validatedCoupons) => validatedCoupons.shift()),\r\n ),\r\n ),\r\n )\r\n }\r\n\r\n private checkCouponsWithCheckout = (\r\n coupons: FinancialCoupon[],\r\n checkout: CheckoutSubscription,\r\n ): Observable<FinancialCoupon[]> =>\r\n forkJoin(\r\n coupons.map((coupon) =>\r\n from(\r\n this.subscriptionRepository.find({\r\n filters: { user: { email: checkout.user?.email }, coupon: { id: coupon.id } },\r\n }),\r\n ).pipe(map((subscriptions) => ({ coupon, subscriptions }))),\r\n ),\r\n ).pipe(\r\n map((results) =>\r\n results.map(({ coupon, subscriptions }) => {\r\n if (subscriptions.data.length >= (coupon.useLimit || Infinity))\r\n return new InvalidCouponError('Coupon is already applied')\r\n\r\n return coupon\r\n }),\r\n ),\r\n map((validatedCoupons) => ({\r\n valids: validatedCoupons.filter((coupon) => FinancialCoupon.isFinancialCoupon(coupon)) as FinancialCoupon[],\r\n invalids: validatedCoupons.filter((coupon) => coupon instanceof InvalidCouponError) as InvalidCouponError[],\r\n })),\r\n concatMap(({ valids, invalids }) =>\r\n valids.length ? of(valids) : throwError(new GroupInvalidCouponError(invalids)),\r\n ),\r\n )\r\n}\r\n","import { Injectable, Inject } from '@angular/core'\r\nimport { AngularFirestore, QueryDocumentSnapshot } from '@angular/fire/firestore'\r\nimport { Order, OrderFirestoreRepository } from '@infrab4a/connect'\r\nimport { from, Observable, Subject } from 'rxjs'\r\nimport { map, mergeMap, tap } from 'rxjs/operators'\r\n\r\n@Injectable()\r\nexport class OrderService {\r\n orderSubject = new Subject<Order>()\r\n\r\n constructor(\r\n private readonly angularFirestore: AngularFirestore,\r\n @Inject('OrderRepository') private readonly orderRepository: OrderFirestoreRepository,\r\n ) {}\r\n\r\n getOrder(id: string): Subject<Order> {\r\n this.angularFirestore\r\n .doc<QueryDocumentSnapshot<Order>>(`${this.orderRepository.collectionName}/${id}`)\r\n .valueChanges()\r\n .pipe(map((doc) => Order.toInstance(doc)))\r\n .subscribe((doc) => this.orderSubject.next(doc))\r\n\r\n return this.orderSubject\r\n }\r\n}\r\n","import { Injectable, Inject } from '@angular/core'\r\nimport {\r\n add,\r\n Banner,\r\n Category,\r\n CategoryRepository,\r\n Home,\r\n HomeCategoryGroup,\r\n HomeData,\r\n HomeRepository,\r\n pick,\r\n Product,\r\n ProductRepository,\r\n RequiredArgumentError,\r\n Shops,\r\n Where,\r\n} from '@infrab4a/connect'\r\nimport { forkJoin, from, Observable, of, throwError } from 'rxjs'\r\nimport { concatMap, map, tap } from 'rxjs/operators'\r\n\r\nimport { DEFAULT_SHOP } from '../consts'\r\n\r\ntype HomeConfigurationId = 'glamshop' | 'mens_market'\r\ntype BannerType = 'brand' | 'buyToWin' | 'block' | 'blog'\r\n\r\n@Injectable()\r\nexport class HomeShopService {\r\n private homeConfiguration: Home\r\n\r\n private get homeId(): HomeConfigurationId {\r\n if (this.defaultShop === Shops.GLAMSHOP) return 'glamshop'\r\n if (this.defaultShop === Shops.MENSMARKET) return 'mens_market'\r\n\r\n return null\r\n }\r\n\r\n constructor(\r\n @Inject('CategoryRepository') private readonly categoryRepository: CategoryRepository,\r\n @Inject('HomeRepository') private readonly homeRepository: HomeRepository,\r\n @Inject('ProductRepository') private readonly productRepository: ProductRepository,\r\n @Inject(DEFAULT_SHOP) private readonly defaultShop: Shops,\r\n ) {}\r\n\r\n getHomeData(): Observable<Home> {\r\n return this.getHomeConfiguration().pipe(\r\n map((home) => (home?.data?.expiresAt > new Date() ? home : null)),\r\n concatMap((home) =>\r\n home\r\n ? of(home)\r\n : forkJoin([this.getDiscoverProducts(), this.getFeaturedProducts(), this.getVerticalProducts()]).pipe(\r\n map(([discoverProducts, featuredProducts, verticalProducts]) => ({\r\n discoverProducts,\r\n featuredProducts,\r\n verticalProducts,\r\n })),\r\n concatMap((data) => this.saveHomeData(data)),\r\n ),\r\n ),\r\n )\r\n }\r\n\r\n getBanners(type: BannerType): Observable<Banner[]> {\r\n return this.getHomeConfiguration().pipe(\r\n map((home) => {\r\n if (type === 'brand') return home.brandsCarousel\r\n if (type === 'buyToWin') return [home.buyToWinBanner]\r\n if (type === 'block') return home.blockBanners\r\n if (type === 'blog') return [home.blogBanner]\r\n }),\r\n )\r\n }\r\n\r\n private getDiscoverProducts(): Observable<{ category: Category; products: Product[] }[]> {\r\n return this.getHomeConfiguration().pipe(\r\n concatMap((home) =>\r\n from(this.categoryRepository.getCategoriesForHome(home.discoverCategories)).pipe(\r\n map((groups) => groups.map(this.buildCategoryGroupWithRequiredData)),\r\n ),\r\n ),\r\n )\r\n }\r\n\r\n private getFeaturedProducts(): Observable<{ category: Category; products: Product[] }[]> {\r\n return this.getHomeConfiguration().pipe(\r\n concatMap((home) =>\r\n from(this.categoryRepository.getCategoriesForHome(home.featuredCategories)).pipe(\r\n map((groups) => groups.map(this.buildCategoryGroupWithRequiredData)),\r\n ),\r\n ),\r\n )\r\n }\r\n\r\n private getVerticalProducts(): Observable<{ category: Category; products: Product[] }[]> {\r\n return this.getHomeConfiguration().pipe(\r\n concatMap((home) =>\r\n forkJoin(\r\n home.verticalCarousels.filter(Boolean).map((id) =>\r\n from(this.categoryRepository.get({ id })).pipe(\r\n concatMap((category) =>\r\n from(\r\n this.productRepository.find({\r\n filters: { categories: { operator: Where.IN, value: [category.id] } },\r\n limits: { limit: 12 },\r\n }),\r\n ).pipe(map((products) => ({ category, products }))),\r\n ),\r\n map(({ category, products }) => ({ category, products: products.data })),\r\n map(this.buildCategoryGroupWithRequiredData),\r\n ),\r\n ),\r\n ),\r\n ),\r\n )\r\n }\r\n\r\n private getHomeConfiguration(): Observable<Home> {\r\n return of(this.homeConfiguration).pipe(\r\n concatMap((home) =>\r\n home\r\n ? of(home)\r\n : !this.homeId\r\n ? throwError(new RequiredArgumentError(['homeId']))\r\n : from(this.homeRepository.get({ id: this.homeId })).pipe(\r\n tap((homeLoaded) => (this.homeConfiguration = homeLoaded)),\r\n ),\r\n ),\r\n )\r\n }\r\n\r\n private saveHomeData(homeData: HomeData): Observable<Home> {\r\n const data = {\r\n createdAt: new Date(),\r\n expiresAt: add(new Date(), { hours: 1 }),\r\n data: homeData,\r\n }\r\n\r\n return from(\r\n this.homeRepository.update({\r\n id: this.homeId,\r\n data,\r\n }),\r\n ).pipe(\r\n tap(() => (this.homeConfiguration.data = data)),\r\n map(() => this.homeConfiguration),\r\n )\r\n }\r\n\r\n private buildCategoryGroupWithRequiredData = (group: HomeCategoryGroup): HomeCategoryGroup => ({\r\n category: Category.toInstance(pick(group.category.toPlain(), ['id', 'name', 'slug', 'conditions'])),\r\n products: group.products.map((product) =>\r\n Product.toInstance(\r\n pick(product.toPlain(), [\r\n 'id',\r\n 'price',\r\n 'reviews',\r\n 'hasVariants',\r\n 'slug',\r\n 'sku',\r\n 'stock',\r\n 'costPrice',\r\n 'images',\r\n 'miniatures',\r\n 'name',\r\n 'weight',\r\n ]),\r\n ),\r\n ),\r\n })\r\n}\r\n","import { ModuleWithProviders, NgModule } from '@angular/core'\r\nimport {\r\n AngularFireModule,\r\n FIREBASE_APP_NAME,\r\n FIREBASE_OPTIONS,\r\n FirebaseAppConfig,\r\n FirebaseOptions,\r\n} from '@angular/fire'\r\nimport { AngularFireAuth } from '@angular/fire/auth'\r\nimport {\r\n Authentication,\r\n AuthenticationFirebaseAuthService,\r\n AuthenticationService,\r\n Register,\r\n RegisterService,\r\n RegisterFirebaseAuthService,\r\n SignOut,\r\n UserRepository,\r\n RecoveryPassword,\r\n} from '@infrab4a/connect'\r\n\r\n@NgModule({\r\n imports: [AngularFireModule],\r\n providers: [\r\n {\r\n provide: 'Authentication',\r\n useFactory: (authenticationService: AuthenticationService, userRepository: UserRepository): Authentication => {\r\n return new Authentication(authenticationService, userRepository)\r\n },\r\n deps: ['AuthenticationService', 'UserRepository'],\r\n },\r\n {\r\n provide: 'AuthenticationService',\r\n useFactory: (angularFireAuth: AngularFireAuth): AuthenticationService => {\r\n return new AuthenticationFirebaseAuthService(angularFireAuth as any)\r\n },\r\n deps: [AngularFireAuth],\r\n },\r\n {\r\n provide: 'Register',\r\n useFactory: (registerService: RegisterService, userRepository: UserRepository): Register => {\r\n return new Register(registerService, userRepository)\r\n },\r\n deps: ['RegisterService', 'UserRepository'],\r\n },\r\n {\r\n provide: 'RegisterService',\r\n useFactory: (angularFireAuth: AngularFireAuth): RegisterService => {\r\n return new RegisterFirebaseAuthService(angularFireAuth as any)\r\n },\r\n deps: [AngularFireAuth],\r\n },\r\n {\r\n provide: 'SignOut',\r\n useFactory: (authenticationService: AuthenticationService): SignOut => {\r\n return new SignOut(authenticationService)\r\n },\r\n deps: ['AuthenticationService'],\r\n },\r\n {\r\n provide: 'RecoveryPassword',\r\n useFactory: (authenticationService: AuthenticationService): RecoveryPassword => {\r\n return new RecoveryPassword(authenticationService)\r\n },\r\n deps: ['AuthenticationService'],\r\n },\r\n ],\r\n})\r\nexport class AngularFirebaseAuthModule {\r\n static initializeApp(\r\n options: FirebaseOptions,\r\n nameOrConfig?: string | FirebaseAppConfig,\r\n ): ModuleWithProviders<AngularFireModule> {\r\n return {\r\n ngModule: AngularFirebaseAuthModule,\r\n providers: [\r\n { provide: FIREBASE_OPTIONS, useValue: options },\r\n { provide: FIREBASE_APP_NAME, useValue: nameOrConfig },\r\n ],\r\n }\r\n }\r\n}\r\n","import { ModuleWithProviders, NgModule } from '@angular/core'\r\nimport { AxiosElasticSearchConfig, AxiosAdapter, ProductsIndex } from '@infrab4a/connect'\r\n\r\nimport { ES_CONFIG } from './consts/es-config.const'\r\n\r\n@NgModule({\r\n providers: [\r\n {\r\n provide: ProductsIndex,\r\n useFactory: (configuration: AxiosElasticSearchConfig): ProductsIndex => {\r\n return new ProductsIndex(new AxiosAdapter(configuration))\r\n },\r\n deps: [ES_CONFIG],\r\n },\r\n ],\r\n})\r\nexport class AngularElasticSeachModule {\r\n static initializeApp(options: AxiosElasticSearchConfig): ModuleWithProviders<AngularElasticSeachModule> {\r\n return {\r\n ngModule: AngularElasticSeachModule,\r\n providers: [{ provide: ES_CONFIG, useValue: options }],\r\n }\r\n }\r\n}\r\n","import { ModuleWithProviders, NgModule } from '@angular/core'\r\nimport {\r\n AngularFireModule,\r\n FIREBASE_APP_NAME,\r\n FIREBASE_OPTIONS,\r\n FirebaseAppConfig,\r\n FirebaseOptions,\r\n} from '@angular/fire'\r\nimport { AngularFirestore } from '@angular/fire/firestore'\r\nimport {\r\n AxiosElasticSearchConfig,\r\n BeautyProfileRepository,\r\n Buy2WinFirestoreRepository,\r\n Buy2WinRepository,\r\n CategoryRepository,\r\n CategoryFirestoreRepository,\r\n CheckoutRepository,\r\n CheckoutFirestoreRepository,\r\n CheckoutSubscriptionFirestoreRepository,\r\n CheckoutSubscriptionRepository,\r\n CouponRepository,\r\n CouponFirestoreRepository,\r\n EditionRepository,\r\n HomeFirestoreRepository,\r\n HomeRepository,\r\n LeadRepository,\r\n LeadFirestoreRepository,\r\n LegacyOrderRepository,\r\n LegacyOrderFirestoreRepository,\r\n ShopMenuFirestoreRepository,\r\n ShopMenuRepository,\r\n OrderRepository,\r\n OrderFirestoreRepository,\r\n PaymentRepository,\r\n PaymentFirestoreRepository,\r\n ProductRepository,\r\n ProductFirestoreRepository,\r\n ProductsIndex,\r\n SubscriptionEditionFirestoreRepository,\r\n SubscriptionFirestoreRepository,\r\n SubscriptionPaymentFirestoreRepository,\r\n SubscriptionPaymentRepository,\r\n SubscriptionPlanFirestoreRepository,\r\n SubscriptionPlanRepository,\r\n SubscriptionProductFirestoreRepository,\r\n SubscriptionProductRepository,\r\n SubscriptionRepository,\r\n UserAddressRepository,\r\n UserAddressFirestoreRepository,\r\n UserBeautyProfileFirestoreRepository,\r\n UserFirestoreRepository,\r\n UserRepository,\r\n VariantRepository,\r\n ProductVariantFirestoreRepository,\r\n UserPaymentMethodRepository,\r\n UserPaymentMethodFirestoreRepository,\r\n} from '@infrab4a/connect'\r\n\r\nimport { AngularElasticSeachModule } from './angular-elastic-search.module'\r\nimport { ES_CONFIG } from './consts/es-config.const'\r\n\r\n@NgModule({\r\n imports: [AngularFireModule, AngularElasticSeachModule],\r\n providers: [\r\n {\r\n provide: 'BeautyProfileRepository',\r\n useFactory: (firestore: AngularFirestore, userRepository: UserFirestoreRepository): BeautyProfileRepository => {\r\n return new UserBeautyProfileFirestoreRepository(firestore.firestore, userRepository)\r\n },\r\n deps: [AngularFirestore, 'UserRepository'],\r\n },\r\n {\r\n provide: 'Buy2WinRepository',\r\n useFactory: (firestore: AngularFirestore): Buy2WinRepository => {\r\n return new Buy2WinFirestoreRepository(firestore.firestore)\r\n },\r\n deps: [AngularFirestore],\r\n },\r\n {\r\n provide: CategoryFirestoreRepository,\r\n useFactory: (firestore: AngularFirestore): CategoryRepository => {\r\n return new CategoryFirestoreRepository(firestore.firestore)\r\n },\r\n deps: [AngularFirestore],\r\n },\r\n {\r\n provide: 'CheckoutRepository',\r\n useFactory: (firestore: AngularFirestore): CheckoutRepository => {\r\n return new CheckoutFirestoreRepository(firestore.firestore)\r\n },\r\n deps: [AngularFirestore],\r\n },\r\n {\r\n provide: 'CheckoutSubscriptionRepository',\r\n useFactory: (firestore: AngularFirestore): CheckoutSubscriptionRepository => {\r\n return new CheckoutSubscriptionFirestoreRepository(firestore.firestore)\r\n },\r\n deps: [AngularFirestore],\r\n },\r\n {\r\n provide: 'CouponRepository',\r\n useFactory: (firestore: AngularFirestore): CouponRepository => {\r\n return new CouponFirestoreRepository(firestore.firestore)\r\n },\r\n deps: [AngularFirestore],\r\n },\r\n {\r\n provide: 'EditionRepository',\r\n useFactory: (\r\n firestore: AngularFirestore,\r\n subscriptionRepository: SubscriptionFirestoreRepository,\r\n ): EditionRepository => {\r\n return new SubscriptionEditionFirestoreRepository(firestore.firestore, subscriptionRepository)\r\n },\r\n deps: [AngularFirestore, 'SubscriptionRepository'],\r\n },\r\n {\r\n provide: 'HomeRepository',\r\n useFactory: (firestore: AngularFirestore): HomeRepository => {\r\n return new HomeFirestoreRepository(firestore.firestore)\r\n },\r\n deps: [AngularFirestore],\r\n },\r\n {\r\n provide: 'LeadRepository',\r\n useFactory: (firestore: AngularFirestore): LeadRepository => {\r\n return new LeadFirestoreRepository(firestore.firestore)\r\n },\r\n deps: [AngularFirestore],\r\n },\r\n {\r\n provide: 'LegacyOrderRepository',\r\n useFactory: (firestore: AngularFirestore): LegacyOrderRepository => {\r\n return new LegacyOrderFirestoreRepository(firestore.firestore)\r\n },\r\n deps: [AngularFirestore],\r\n },\r\n {\r\n provide: 'ShopMenuRepository',\r\n useFactory: (firestore: AngularFirestore): ShopMenuRepository => {\r\n return new ShopMenuFirestoreRepository(firestore.firestore)\r\n },\r\n deps: [AngularFirestore],\r\n },\r\n {\r\n provide: 'OrderRepository',\r\n useFactory: (firestore: AngularFirestore): OrderRepository => {\r\n return new OrderFirestoreRepository(firestore.firestore)\r\n },\r\n deps: [AngularFirestore],\r\n },\r\n {\r\n provide: 'PaymentRepository',\r\n useFactory: (firestore: AngularFirestore): PaymentRepository => {\r\n return new PaymentFirestoreRepository(firestore.firestore)\r\n },\r\n deps: [AngularFirestore],\r\n },\r\n {\r\n provide: ProductFirestoreRepository,\r\n useFactory: (firestore: AngularFirestore): ProductRepository => {\r\n return new ProductFirestoreRepository(firestore.firestore)\r\n },\r\n deps: [AngularFirestore],\r\n },\r\n {\r\n provide: 'SubscriptionPaymentRepository',\r\n useFactory: (\r\n firestore: AngularFirestore,\r\n subscriptionRepository: SubscriptionFirestoreRepository,\r\n ): SubscriptionPaymentRepository => {\r\n return new SubscriptionPaymentFirestoreRepository(firestore.firestore, subscriptionRepository)\r\n },\r\n deps: [AngularFirestore, 'SubscriptionRepository'],\r\n },\r\n {\r\n provide: 'SubscriptionPlanRepository',\r\n useFactory: (firestore: AngularFirestore): SubscriptionPlanRepository => {\r\n return new SubscriptionPlanFirestoreRepository(firestore.firestore)\r\n },\r\n deps: [AngularFirestore],\r\n },\r\n {\r\n provide: 'SubscriptionProductRepository',\r\n useFactory: (firestore: AngularFirestore): SubscriptionProductRepository => {\r\n return new SubscriptionProductFirestoreRepository(firestore.firestore)\r\n },\r\n deps: [AngularFirestore],\r\n },\r\n {\r\n provide: 'SubscriptionRepository',\r\n useFactory: (firestore: AngularFirestore): SubscriptionRepository => {\r\n return new SubscriptionFirestoreRepository(firestore.firestore)\r\n },\r\n deps: [AngularFirestore],\r\n },\r\n {\r\n provide: 'UserRepository',\r\n useFactory: (firestore: AngularFirestore): UserRepository => {\r\n return new UserFirestoreRepository(firestore.firestore)\r\n },\r\n deps: [AngularFirestore],\r\n },\r\n {\r\n provide: 'UserAddressRepository',\r\n useFactory: (firestore: AngularFirestore, userRepository: UserFirestoreRepository): UserAddressRepository => {\r\n return new UserAddressFirestoreRepository(firestore.firestore, userRepository)\r\n },\r\n deps: [AngularFirestore, 'UserRepository'],\r\n },\r\n {\r\n provide: 'UserPaymentMethodRepository',\r\n useFactory: (\r\n firestore: AngularFirestore,\r\n userRepository: UserFirestoreRepository,\r\n ): UserPaymentMethodRepository => {\r\n return new UserPaymentMethodFirestoreRepository(firestore.firestore, userRepository)\r\n },\r\n deps: [AngularFirestore, 'UserRepository'],\r\n },\r\n {\r\n provide: 'VariantRepository',\r\n useFactory: (firestore: AngularFirestore, productRepository: ProductFirestoreRepository): VariantRepository => {\r\n return new ProductVariantFirestoreRepository(firestore.firestore, productRepository)\r\n },\r\n deps: [AngularFirestore, ProductFirestoreRepository],\r\n },\r\n ],\r\n})\r\nexport class AngularFirestoreModule {\r\n static initializeApp(\r\n options: {\r\n firebase: FirebaseOptions\r\n elasticSearch: AxiosElasticSearchConfig\r\n },\r\n nameOrConfig?: string | FirebaseAppConfig,\r\n ): ModuleWithProviders<AngularFireModule> {\r\n return {\r\n ngModule: AngularFirestoreModule,\r\n providers: [\r\n { provide: FIREBASE_OPTIONS, useValue: options.firebase },\r\n { provide: FIREBASE_APP_NAME, useValue: nameOrConfig },\r\n { provide: ES_CONFIG, useValue: options.elasticSearch },\r\n ],\r\n }\r\n }\r\n}\r\n","import { ModuleWithProviders, NgModule } from '@angular/core'\r\nimport {\r\n CategoryRepository,\r\n CategoryHasuraGraphQLRepository,\r\n HasuraGraphQLAuthOptions,\r\n ProductRepository,\r\n ProductHasuraGraphQLRepository,\r\n} from '@infrab4a/connect'\r\n\r\nimport { HASURA_OPTIONS } from './consts'\r\n\r\nexport type HasuraGraphQLOptions = { endpoint: string; credentials: HasuraGraphQLAuthOptions }\r\n\r\n@NgModule({\r\n providers: [\r\n {\r\n provide: 'CategoryRepository',\r\n useExisting: CategoryHasuraGraphQLRepository,\r\n },\r\n {\r\n provide: CategoryHasuraGraphQLRepository,\r\n useFactory: (\r\n options: HasuraGraphQLOptions,\r\n productRepository: ProductHasuraGraphQLRepository,\r\n ): CategoryRepository => {\r\n return new CategoryHasuraGraphQLRepository(options.endpoint, options.credentials, productRepository)\r\n },\r\n deps: [HASURA_OPTIONS, ProductHasuraGraphQLRepository],\r\n },\r\n {\r\n provide: 'ProductRepository',\r\n useExisting: ProductHasuraGraphQLRepository,\r\n },\r\n {\r\n provide: ProductHasuraGraphQLRepository,\r\n useFactory: (options: HasuraGraphQLOptions): ProductRepository => {\r\n return new ProductHasuraGraphQLRepository(options.endpoint, options.credentials)\r\n },\r\n deps: [HASURA_OPTIONS],\r\n },\r\n ],\r\n})\r\nexport class AngularHasuraGraphQLModule {\r\n static initializeApp(options: {\r\n endpoint: string\r\n credentials: HasuraGraphQLAuthOptions\r\n }): ModuleWithProviders<AngularHasuraGraphQLModule> {\r\n return {\r\n ngModule: AngularHasuraGraphQLModule,\r\n providers: [{ provide: HASURA_OPTIONS, useValue: options }],\r\n }\r\n }\r\n}\r\n","import { ModuleWithProviders, NgModule } from '@angular/core'\r\nimport {\r\n AngularFireModule,\r\n FIREBASE_APP_NAME,\r\n FIREBASE_OPTIONS,\r\n FirebaseAppConfig,\r\n FirebaseOptions,\r\n} from '@angular/fire'\r\nimport { AxiosElasticSearchConfig, isNil, Shops } from '@infrab4a/connect'\r\n\r\nimport { AngularFirestoreModule } from './angular-firestore.module'\r\nimport { AngularHasuraGraphQLModule, HasuraGraphQLOptions } from './angular-hasura-graphql.module'\r\nimport {\r\n AuthService,\r\n CartService,\r\n CheckoutService,\r\n CheckoutSubscriptionService,\r\n CouponService,\r\n HomeShopService,\r\n OrderService,\r\n} from './services'\r\nimport { DEFAULT_SHOP, ES_CONFIG, HASURA_OPTIONS } from './consts'\r\n\r\n@NgModule({\r\n imports: [AngularFireModule, AngularFirestoreModule, AngularHasuraGraphQLModule],\r\n providers: [\r\n AuthService,\r\n CartService,\r\n CheckoutService,\r\n CheckoutSubscriptionService,\r\n CouponService,\r\n HomeShopService,\r\n OrderService,\r\n ],\r\n})\r\nexport class AngularConnectModule {\r\n static initializeApp(\r\n defaultShop: Shops,\r\n options: { firebase: FirebaseOptions; elasticSearch: AxiosElasticSearchConfig; hasura: HasuraGraphQLOptions },\r\n nameOrConfig?: string | FirebaseAppConfig,\r\n ): ModuleWithProviders<AngularFireModule> {\r\n return {\r\n ngModule: AngularConnectModule,\r\n providers: [\r\n ...(isNil(defaultShop) ? [] : [{ provide: DEFAULT_SHOP, useValue: defaultShop }]),\r\n ...(isNil(options?.firebase) ? [] : [{ provide: FIREBASE_OPTIONS, useValue: options?.firebase }]),\r\n ...(isNil(options?.firebase) ? [] : [{ provide: FIREBASE_APP_NAME, useValue: nameOrConfig }]),\r\n ...(isNil(options?.elasticSearch) ? [] : [{ provide: ES_CONFIG, useValue: options.elasticSearch }]),\r\n ...(isNil(options?.hasura) ? [] : [{ provide: HASURA_OPTIONS, useValue: options.hasura }]),\r\n ],\r\n }\r\n }\r\n}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["catchError","of","combineLatest","map","mergeMap","Injectable","Inject","CustomError","FinancialCoupon","from","Where","concatMap","throwError","NotFoundError","Exclusivities","cookie","isNil","Checkout","CheckoutTypes","pick","Subject","LineItem","tap","CouponTypes","iif","CouponSubtypes","forkJoin","CheckoutSubscription","Order","Category","Product","Shops","RequiredArgumentError","add","FIREBASE_OPTIONS","FIREBASE_APP_NAME","AngularFireModule","Authentication","AuthenticationFirebaseAuthService","AngularFireAuth","Register","RegisterFirebaseAuthService","SignOut","RecoveryPassword","NgModule","ProductsIndex","AxiosAdapter","UserBeautyProfileFirestoreRepository","AngularFirestore","Buy2WinFirestoreRepository","CategoryFirestoreRepository","CheckoutFirestoreRepository","CheckoutSubscriptionFirestoreRepository","CouponFirestoreRepository","SubscriptionEditionFirestoreRepository","HomeFirestoreRepository","LeadFirestoreRepository","LegacyOrderFirestoreRepository","ShopMenuFirestoreRepository","OrderFirestoreRepository","PaymentFirestoreRepository","ProductFirestoreRepository","SubscriptionPaymentFirestoreRepository","SubscriptionPlanFirestoreRepository","SubscriptionProductFirestoreRepository","SubscriptionFirestoreRepository","UserFirestoreRepository","UserAddressFirestoreRepository","UserPaymentMethodFirestoreRepository","ProductVariantFirestoreRepository","CategoryHasuraGraphQLRepository","ProductHasuraGraphQLRepository"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"infrab4a-connect-angular.umd.js","sources":["../../../node_modules/tslib/tslib.es6.js","../../../projects/connect-angular/src/services/auth.service.ts","../../../projects/connect-angular/src/consts/default-shop.const.ts","../../../projects/connect-angular/src/consts/es-config.const.ts","../../../projects/connect-angular/src/consts/hasura-options.const.ts","../../../projects/connect-angular/src/services/errors/invalid-coupon.error.ts","../../../projects/connect-angular/src/services/errors/group-invalid-coupon.error.ts","../../../projects/connect-angular/src/services/coupon.service.ts","../../../projects/connect-angular/src/services/checkout.service.ts","../../../projects/connect-angular/src/services/cart.service.ts","../../../projects/connect-angular/src/services/checkout-subscription.service.ts","../../../projects/connect-angular/src/services/order.service.ts","../../../projects/connect-angular/src/services/home-shop.service.ts","../../../projects/connect-angular/src/angular-firebase-auth.module.ts","../../../projects/connect-angular/src/angular-elastic-search.module.ts","../../../projects/connect-angular/src/angular-firestore.module.ts","../../../projects/connect-angular/src/angular-hasura-graphql.module.ts","../../../projects/connect-angular/src/angular-connect.module.ts","../../../projects/connect-angular/src/infrab4a-connect-angular.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","import { Injectable, Inject } from '@angular/core'\r\nimport { AngularFireAuth } from '@angular/fire/auth'\r\nimport { User, UserRepository } from '@infrab4a/connect'\r\nimport { combineLatest, Observable, of } from 'rxjs'\r\nimport { catchError, map, mergeMap } from 'rxjs/operators'\r\nimport firebase from 'firebase/app'\r\n\r\n@Injectable()\r\nexport class AuthService {\r\n constructor(\r\n private readonly angularFireAuth: AngularFireAuth,\r\n @Inject('UserRepository') private readonly userRepository: UserRepository,\r\n ) {}\r\n\r\n getAuthstate(): Observable<{ user: User; isAnonymous: boolean }> {\r\n const observables: [Observable<firebase.User>, Observable<User>] = [\r\n this.angularFireAuth.authState.pipe(catchError(() => of(null))),\r\n this.getUser().pipe(catchError(() => of(null))),\r\n ]\r\n\r\n return combineLatest(observables).pipe(\r\n map(([fireUser, user]) => {\r\n return {\r\n user,\r\n isAnonymous: fireUser?.isAnonymous,\r\n } as { user: User; isAnonymous: boolean }\r\n }),\r\n )\r\n }\r\n\r\n getUser(): Observable<User> {\r\n return this.getFireUser().pipe(\r\n map((user) => user?.uid),\r\n mergeMap((id) => (id ? this.userRepository.get({ id }) : of(null))),\r\n )\r\n }\r\n\r\n getTokenId(): Observable<string> {\r\n return this.angularFireAuth.idToken\r\n }\r\n\r\n getFireUser(): Observable<firebase.User> {\r\n return this.angularFireAuth.user.pipe(catchError(() => of(null)))\r\n }\r\n}\r\n","export const DEFAULT_SHOP = 'DEFAULT_SHOP'\r\n","export const ES_CONFIG = 'ES_CONFIG'\r\n","export const HASURA_OPTIONS = 'HASURA_OPTIONS'\r\n","import { CustomError } from 'ts-custom-error'\r\n\r\nexport class InvalidCouponError extends CustomError {\r\n constructor(readonly message) {\r\n super(message)\r\n }\r\n}\r\n","import { CustomError } from 'ts-custom-error'\r\n\r\nimport { InvalidCouponError } from './invalid-coupon.error'\r\n\r\nexport class GroupInvalidCouponError extends CustomError {\r\n constructor(readonly errors: InvalidCouponError[]) {\r\n super('Many coupon errors throw')\r\n }\r\n}\r\n","import { Inject, Injectable } from '@angular/core'\r\nimport {\r\n CheckoutTypes,\r\n Coupon,\r\n CouponRepository,\r\n Exclusivities,\r\n FinancialCoupon,\r\n NotFoundError,\r\n Shops,\r\n Where,\r\n} from '@infrab4a/connect'\r\nimport { from, Observable, throwError, of } from 'rxjs'\r\nimport { concatMap, map } from 'rxjs/operators'\r\n\r\nimport { DEFAULT_SHOP } from '../consts'\r\n\r\nimport { GroupInvalidCouponError, InvalidCouponError } from './errors'\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class CouponService {\r\n constructor(\r\n @Inject('CouponRepository') private readonly couponRepository: CouponRepository,\r\n @Inject(DEFAULT_SHOP) private readonly defaultShop: Shops,\r\n ) {}\r\n\r\n checkCoupon(nickname: string, userEmail: string, checkoutType: CheckoutTypes): Observable<FinancialCoupon[]> {\r\n return from(\r\n this.couponRepository.find({\r\n filters: {\r\n nickname: { operator: Where.EQUALS, value: nickname },\r\n shopAvailability: { operator: Where.EQUALS, value: this.defaultShop },\r\n checkoutType: { operator: Where.EQUALS, value: checkoutType },\r\n },\r\n }),\r\n ).pipe(\r\n concatMap((coupons) =>\r\n coupons.count < 1 ? throwError(() => new NotFoundError('Coupon not found')) : of(coupons.data),\r\n ),\r\n map((coupons) => this.separateValidCoupons(coupons, userEmail)),\r\n map(({ valids, invalids }) => {\r\n if (!valids.length) throw new GroupInvalidCouponError(invalids)\r\n\r\n return valids\r\n }),\r\n )\r\n }\r\n\r\n private isValidCoupon(coupon: FinancialCoupon, userEmail: string): boolean {\r\n if (!this.emailIsFromCollaborator(userEmail) && coupon.exclusivityType === Exclusivities.COLLABORATORS)\r\n throw new InvalidCouponError('User is not a collaborator')\r\n if (coupon.exclusivityType === Exclusivities.SPECIFIC_USER && coupon.recipient !== userEmail)\r\n throw new InvalidCouponError('Coupon is not valid for user')\r\n if (coupon?.expiresIn < new Date()) throw new InvalidCouponError('Coupon is expired')\r\n\r\n return true\r\n }\r\n\r\n private emailIsFromCollaborator = (userEmail: string): boolean => !!userEmail?.match(/@b4a.com.br/g)\r\n\r\n private separateValidCoupons = (\r\n coupons: Coupon[],\r\n userEmail: string,\r\n ): { valids: FinancialCoupon[]; invalids: InvalidCouponError[] } =>\r\n coupons\r\n .map((coupon) => {\r\n try {\r\n if (!FinancialCoupon.isFinancialCoupon(coupon)) throw new InvalidCouponError('Coupon is not valid')\r\n if (this.isValidCoupon(coupon, userEmail)) return coupon\r\n } catch (error) {\r\n return error as InvalidCouponError\r\n }\r\n })\r\n .reduce(\r\n (current, coupon) => ({\r\n ...current,\r\n ...(FinancialCoupon.isFinancialCoupon(coupon)\r\n ? { valids: [...current.valids, coupon] }\r\n : { invalids: [...current.invalids, coupon] }),\r\n }),\r\n {\r\n valids: [] as FinancialCoupon[],\r\n invalids: [] as InvalidCouponError[],\r\n },\r\n )\r\n}\r\n","import { Inject, Injectable } from '@angular/core'\r\nimport {\r\n Checkout,\r\n CheckoutRepository,\r\n CheckoutTypes,\r\n FinancialCoupon,\r\n isNil,\r\n NotFoundError,\r\n OrderRepository,\r\n pick,\r\n Shops,\r\n User,\r\n UserRepository\r\n} from '@infrab4a/connect'\r\nimport cookie from 'js-cookie'\r\nimport { from, Observable, of, throwError } from 'rxjs'\r\nimport { concatMap } from 'rxjs/operators'\r\n\r\nimport { DEFAULT_SHOP } from '../consts'\r\n\r\nimport { CouponService } from './coupon.service'\r\nimport { RequiredCheckoutData } from './types'\r\n\r\n@Injectable()\r\nexport class CheckoutService {\r\n constructor(\r\n private readonly couponService: CouponService,\r\n @Inject('CheckoutRepository') private readonly checkoutRepository: CheckoutRepository,\r\n @Inject('OrderRepository') private readonly orderRepository: OrderRepository,\r\n @Inject('UserRepository') private readonly userRepository: UserRepository,\r\n @Inject(DEFAULT_SHOP) private readonly defaultShop: Shops,\r\n ) {}\r\n\r\n getCheckout(checkoutData?: RequiredCheckoutData): Observable<Checkout> {\r\n const checkoutId = cookie.get('checkoutId')\r\n\r\n if (!isNil(checkoutId)) return from(this.checkoutRepository.get({ id: checkoutId }))\r\n\r\n return from(this.createCheckout(checkoutData))\r\n }\r\n\r\n getUserByCheckout(checkoutId: string): Observable<User> {\r\n return from(this.checkoutRepository.get({ id: checkoutId })).pipe(\r\n concatMap((checkout) =>\r\n checkout?.user?.id ? of(checkout.user) : from(this.userRepository.get({ id: checkout.user.id })),\r\n ),\r\n concatMap((user) => of(user) || throwError(() => new NotFoundError('User is not found'))),\r\n )\r\n }\r\n\r\n updateCheckoutLineItems(checkout: Partial<Checkout>): Observable<Checkout> {\r\n return from(this.checkoutRepository.update(Checkout.toInstance({ id: checkout.id, lineItems: checkout.lineItems })))\r\n }\r\n\r\n updateCheckoutUser(checkout: Partial<Checkout>): Observable<Checkout> {\r\n return from(this.checkoutRepository.update(Checkout.toInstance({ id: checkout.id, user: checkout.user })))\r\n }\r\n\r\n clearCheckoutFromSession(): Observable<void> {\r\n cookie.remove('checkoutId')\r\n\r\n return of()\r\n }\r\n\r\n checkCoupon(nickname: string): Observable<FinancialCoupon> {\r\n return this.getCheckout().pipe(\r\n concatMap((checkout) =>\r\n this.couponService.checkCoupon(nickname, checkout.user?.email, CheckoutTypes.ECOMMERCE).pipe(\r\n concatMap((coupons) => of(coupons.shift())),\r\n concatMap((coupon) =>\r\n !!checkout.user?.email\r\n ? from(\r\n this.orderRepository.find({\r\n filters: { user: { email: checkout.user?.email }, coupon: { id: coupon.id } },\r\n }),\r\n ).pipe(\r\n concatMap((orders) => {\r\n if (orders.data.length >= (coupon.useLimit || Infinity))\r\n return throwError(() => new Error('Coupon is already applied'))\r\n\r\n return of(coupon)\r\n }),\r\n )\r\n : of(coupon),\r\n ),\r\n ),\r\n ),\r\n )\r\n }\r\n\r\n private async createCheckout(checkoutData?: RequiredCheckoutData): Promise<Checkout> {\r\n const checkout = await this.checkoutRepository.create({\r\n createdAt: new Date(),\r\n ...Checkout.toInstance(pick(checkoutData, ['user', 'shop'])).toPlain(),\r\n shop: checkoutData?.shop || this.defaultShop,\r\n })\r\n\r\n cookie.set('checkoutId', checkout.id)\r\n\r\n return checkout\r\n }\r\n}\r\n","import { Inject, Injectable } from '@angular/core'\r\nimport {\r\n Checkout,\r\n Coupon,\r\n CouponSubtypes,\r\n CouponTypes,\r\n FinancialCoupon,\r\n isNil,\r\n LineItem,\r\n ProductRepository,\r\n Shops,\r\n User,\r\n Where\r\n} from '@infrab4a/connect'\r\nimport { from, iif, Observable, of, Subject } from 'rxjs'\r\nimport { catchError, concatMap, map, mergeMap, tap } from 'rxjs/operators'\r\n\r\nimport { DEFAULT_SHOP } from '../consts'\r\n\r\nimport { AuthService } from './auth.service'\r\nimport { CheckoutService } from './checkout.service'\r\nimport { RequiredCheckoutData } from './types'\r\n\r\nexport type Cart = {\r\n [id: string]: LineItem\r\n}\r\n\r\n@Injectable()\r\nexport class CartService {\r\n private cartSubject: Subject<Cart> = new Subject()\r\n\r\n constructor(\r\n private readonly authService: AuthService,\r\n private readonly checkoutService: CheckoutService,\r\n @Inject(DEFAULT_SHOP) private readonly defaultShop: Shops,\r\n @Inject('ProductRepository') private readonly productRepository: ProductRepository,\r\n ) {}\r\n\r\n addItem(item: LineItem, quantity: number = 1): Observable<Cart> {\r\n\r\n return from(this.checkoutService.getCheckout())\r\n .pipe(\r\n concatMap(checkout => this.buildLineItem({ checkout, item, quantity: quantity || 1 })),\r\n mergeMap(({checkout, lineItem}) => this.updateLineItemInCart(lineItem, quantity || 1, checkout as Checkout)),\r\n tap((cart) => this.cartSubject.next(cart))\r\n )\r\n \r\n // .pipe(\r\n // concatMap(({ checkout, lineItem }) => this.updateLineItemInCart(lineItem, quantity || 1, checkout)),\r\n // tap((cart) => this.cartSubject.next(cart)),\r\n // )\r\n // return this.checkoutService.getCheckout().pipe(\r\n // map( async(checkout) => ({\r\n // checkout,\r\n // lineItem: await this.buildLineItem({ checkout, item, quantity: quantity || 1 }),\r\n // })),\r\n // concatMap(({ checkout, lineItem }) => this.updateLineItemInCart(lineItem, quantity || 1, checkout)),\r\n // tap((cart) => this.cartSubject.next(cart)),\r\n // )\r\n }\r\n\r\n decreaseItem(item: LineItem): Observable<Cart> {\r\n return this.checkoutService.getCheckout().pipe(\r\n map((checkout) => {\r\n const checkoutItem = checkout.lineItems?.find((lineItem) => lineItem.sku === item.sku)\r\n\r\n if (!isNil(checkoutItem)) checkoutItem.quantity -= checkoutItem.quantity > 1 ? 1 : 0\r\n\r\n return checkout\r\n }),\r\n concatMap((checkout) => this.checkoutService.updateCheckoutLineItems(checkout)),\r\n map((checkout) => this.generateCartObject(checkout.lineItems)),\r\n tap((cart) => this.cartSubject.next(cart)),\r\n )\r\n }\r\n\r\n getCart(checkout?: RequiredCheckoutData): Observable<Cart> {\r\n this.buildCartFromCheckout(checkout).subscribe((cart) => this.cartSubject.next(cart))\r\n\r\n return this.cartSubject\r\n }\r\n\r\n /**\r\n * @deprecated The method should not be used\r\n */\r\n getDiscount(coupon: Coupon & { id: string }): (subTotalPrice: number) => number {\r\n switch (coupon.type) {\r\n case CouponTypes.FINANCIAL:\r\n return this.getFinancialDiscount(coupon)\r\n case CouponTypes.PRODUCT:\r\n return (subTotalPrice: number) => subTotalPrice\r\n case CouponTypes.GIFTCARD:\r\n return this.getFinancialDiscount(coupon)\r\n case CouponTypes.VOUCHER:\r\n return (subTotalPrice: number) => subTotalPrice\r\n }\r\n }\r\n\r\n /**\r\n * @deprecated The method should not be used\r\n */\r\n getVariantPriceDiscount(item: LineItem, shop: Shops): Observable<number> {\r\n return this.authService.getUser().pipe(\r\n concatMap((user) =>\r\n iif(\r\n () => user.isSubscriber && !!item.getInfoByShop(shop).subscriberPrice,\r\n of(item.getInfoByShop(shop).subscriberPrice),\r\n of(item.getInfoByShop(shop).price),\r\n ),\r\n ),\r\n catchError(() => of(item.getInfoByShop(shop).price)),\r\n )\r\n }\r\n\r\n removeItem(item: LineItem): Observable<Cart> {\r\n return this.checkoutService.getCheckout().pipe(\r\n map((checkout) => {\r\n const index = checkout.lineItems.findIndex((lineItem) => lineItem.sku === item.sku)\r\n\r\n if (index >= 0) checkout.lineItems.splice(index, 1)\r\n\r\n return checkout\r\n }),\r\n concatMap((checkout) => this.checkoutService.updateCheckoutLineItems(checkout)),\r\n map((checkout) => this.generateCartObject(checkout.lineItems)),\r\n tap((cart) => this.cartSubject.next(cart)),\r\n )\r\n }\r\n\r\n updateUserCart(user: User): Observable<Cart> {\r\n return this.checkoutService.getCheckout().pipe(\r\n concatMap((checkout) =>\r\n this.checkoutService.updateCheckoutUser(Checkout.toInstance({ ...checkout.toPlain(), user })),\r\n ),\r\n concatMap((checkout) =>\r\n this.checkoutService.updateCheckoutLineItems(\r\n Checkout.toInstance({\r\n ...checkout.toPlain(),\r\n lineItems: checkout.lineItems?.map(async (item) => await this.buildLineItem({ checkout, item })) || [],\r\n }),\r\n ),\r\n ),\r\n map((checkout) => this.generateCartObject(checkout.lineItems)),\r\n tap((cart) => this.cartSubject.next(cart)),\r\n )\r\n }\r\n\r\n clearCart(): Observable<Cart> {\r\n return this.checkoutService.getCheckout().pipe(\r\n map((checkout) => {\r\n this.checkoutService.clearCheckoutFromSession()\r\n return checkout\r\n }),\r\n concatMap((oldCheckout) => this.buildCartFromCheckout(oldCheckout)),\r\n tap((cart) => this.cartSubject.next(cart)),\r\n )\r\n }\r\n\r\n private buildCartFromCheckout(checkoutData?: RequiredCheckoutData): Observable<Cart> {\r\n return this.checkoutService.getCheckout(checkoutData).pipe(\r\n map((checkout) => checkout.lineItems),\r\n concatMap((lineItems) => of(this.generateCartObject(lineItems))),\r\n )\r\n }\r\n\r\n private updateLineItemInCart = (lineItem: LineItem, quantity: number, checkout?: Checkout): Observable<Cart> =>\r\n (isNil(checkout) ? this.checkoutService.getCheckout() : of(checkout)).pipe(\r\n concatMap((checkoutLoaded) => {\r\n console.log('updateLineItemInCart1', checkoutLoaded)\r\n const items: LineItem[] = []\r\n const index = checkoutLoaded.lineItems?.map((checkoutItem) => checkoutItem.sku).indexOf(lineItem.sku)\r\n\r\n if (index > -1) {\r\n checkoutLoaded.lineItems[index].quantity += quantity\r\n checkoutLoaded.lineItems[index].pricePaid = lineItem.pricePaid\r\n } else\r\n checkoutLoaded.lineItems = items.concat(\r\n checkoutLoaded.lineItems ? checkoutLoaded.lineItems.concat([lineItem]) : [lineItem],\r\n )\r\n \r\n return this.checkoutService\r\n .updateCheckoutLineItems(checkoutLoaded)\r\n .pipe(map((updatedCheckout) => this.generateCartObject(updatedCheckout.lineItems)))\r\n }),\r\n )\r\n \r\n private generateCartObject = (items: LineItem[]): Cart => {\r\n const cart: Cart = {}\r\n\r\n items?.forEach(\r\n (item) =>\r\n (cart[item.sku] = LineItem.toInstance({\r\n ...(cart[item.sku] || item),\r\n quantity: (cart[item.sku]?.quantity || 0) + (item.quantity ? item.quantity : 1),\r\n })),\r\n )\r\n\r\n return cart\r\n }\r\n\r\n private buildLineItem = async ({\r\n checkout,\r\n item,\r\n quantity,\r\n }: {\r\n checkout: RequiredCheckoutData\r\n item: LineItem\r\n quantity?: number\r\n }) => {\r\n\r\n const product = await this.productRepository\r\n .find({ filters: { id: { operator: Where.EQUALS, value: item.id } }})\r\n .then((product => product.data.shift()))\r\n\r\n console.log('productRepository by id', product) \r\n console.log('buildLineItem', checkout, item, quantity)\r\n item.quantity = item?.quantity || checkout?.lineItems?.find((lineItem) => lineItem.sku === item.sku)?.quantity || 0\r\n\r\n if (this.checkMaxStock(item, quantity || 0))\r\n throw new Error('Desculpe! Temos apenas ' + item.stock?.quantity + ' em estoque.')\r\n\r\n const image = item.image || item.images?.shift()\r\n const { id, name, EAN, brand, slug, stock, price, weight, categories, sku } = item\r\n const isGift = item.isGift || null\r\n const pricePaid = this.getProductPrice({\r\n product: item,\r\n shop: checkout.shop || this.defaultShop,\r\n isSubscriber: checkout.user?.isSubscriber,\r\n })\r\n\r\n console.log('LineItem.toInstance', JSON.stringify({\r\n id,\r\n name,\r\n EAN,\r\n brand: product.brand,\r\n slug,\r\n sku,\r\n stock,\r\n price,\r\n image,\r\n weight: weight ?? product.weight,\r\n quantity: (item.quantity || 0) + (quantity || 0),\r\n pricePaid,\r\n categories: product.categories ?? [],\r\n isGift,\r\n costPrice: item?.costPrice\r\n }))\r\n \r\n return {\r\n checkout, \r\n lineItem: LineItem.toInstance({\r\n id,\r\n name,\r\n EAN: EAN ?? product.EAN,\r\n brand: product.brand,\r\n slug,\r\n sku,\r\n stock,\r\n price,\r\n image,\r\n weight: weight ?? product.weight,\r\n quantity: (item.quantity || 0) + (quantity || 0),\r\n pricePaid,\r\n categories: product.categories ?? [],\r\n isGift: isGift ?? null,\r\n costPrice: item?.costPrice,\r\n }\r\n )}\r\n }\r\n\r\n private getProductPrice = ({\r\n product,\r\n shop,\r\n isSubscriber,\r\n }: {\r\n product: LineItem\r\n shop: Shops\r\n isSubscriber: boolean\r\n }): number => {\r\n const info = product.getInfoByShop(shop)\r\n\r\n if (product.isGift) return 0\r\n\r\n return isSubscriber && info.subscriberPrice > 0 ? info.subscriberPrice : info.price\r\n }\r\n\r\n private checkMaxStock = (item: LineItem, quantity: number) => {\r\n const maxStock = item.stock?.quantity || 0\r\n const currentItemAmount = item.quantity || 0\r\n\r\n return currentItemAmount + quantity > maxStock\r\n }\r\n\r\n private getFinancialDiscount(coupon: Coupon & { id: string }): (subTotalPrice: number) => number {\r\n return (subTotalPrice) => {\r\n if (FinancialCoupon.isFinancialCoupon(coupon))\r\n switch (coupon.subtype) {\r\n case CouponSubtypes.ABSOLUTE:\r\n return subTotalPrice - coupon.discount * 100\r\n case CouponSubtypes.PERCENTAGE:\r\n return subTotalPrice * (1 - coupon.discount / 100)\r\n }\r\n }\r\n }\r\n}\r\n","import { Inject, Injectable } from '@angular/core'\r\nimport {\r\n CheckoutSubscription,\r\n CheckoutSubscriptionRepository,\r\n CheckoutTypes,\r\n FinancialCoupon,\r\n isNil,\r\n pick,\r\n SubscriptionRepository,\r\n} from '@infrab4a/connect'\r\nimport { forkJoin, from, Observable, of, throwError } from 'rxjs'\r\nimport { concatMap, map } from 'rxjs/operators'\r\nimport { RequiredCheckoutSubscriptionData } from './types'\r\nimport cookie from 'js-cookie'\r\n\r\nimport { CouponService } from './coupon.service'\r\nimport { GroupInvalidCouponError, InvalidCouponError } from './errors'\r\n\r\n@Injectable()\r\nexport class CheckoutSubscriptionService {\r\n constructor(\r\n @Inject('CheckoutSubscriptionRepository')\r\n private readonly checkoutSubscriptionRepository: CheckoutSubscriptionRepository,\r\n @Inject('SubscriptionRepository') private readonly subscriptionRepository: SubscriptionRepository,\r\n private readonly couponService: CouponService,\r\n ) {}\r\n\r\n getCheckoutSubscription(checkoutData?: RequiredCheckoutSubscriptionData): Observable<CheckoutSubscription> {\r\n const checkoutId = cookie.get('checkoutSubscriptionId')\r\n\r\n if (!isNil(checkoutId)) return from(this.checkoutSubscriptionRepository.get({ id: checkoutId }))\r\n\r\n return from(this.createCheckoutSubscription(checkoutData))\r\n }\r\n\r\n private async createCheckoutSubscription(\r\n checkoutData?: RequiredCheckoutSubscriptionData,\r\n ): Promise<CheckoutSubscription> {\r\n const checkout = await this.checkoutSubscriptionRepository.create({\r\n createdAt: new Date(),\r\n ...CheckoutSubscription.toInstance(pick(checkoutData, ['user', 'shop'])).toPlain(),\r\n })\r\n\r\n cookie.set('checkoutSubscriptionId', checkout.id)\r\n\r\n return checkout\r\n }\r\n\r\n clearCheckoutSubscriptionFromSession(): Observable<void> {\r\n cookie.remove('checkoutSubscriptionId')\r\n\r\n return of()\r\n }\r\n\r\n checkCoupon(nickname: string, userEmail: string): Observable<FinancialCoupon> {\r\n return this.getCheckoutSubscription().pipe(\r\n concatMap((checkout) =>\r\n this.couponService.checkCoupon(nickname, userEmail, CheckoutTypes.SUBSCRIPTION).pipe(\r\n concatMap((coupons) => {\r\n const couponsWithSamePlan = coupons.filter((coupon) => checkout.subscriptionPlan.name === coupon.plan)\r\n const couponsWithNoPlan = coupons.filter((coupon) => !coupon.plan)\r\n\r\n if (couponsWithSamePlan.length > 0) return of(couponsWithSamePlan)\r\n if (couponsWithNoPlan.length > 0) return of(couponsWithNoPlan)\r\n\r\n throw new Error(`Coupon subscription plan is invalid.`)\r\n }),\r\n concatMap((coupons) =>\r\n !!checkout.user?.email ? this.checkCouponsWithCheckout(coupons, checkout) : of(coupons),\r\n ),\r\n map((validatedCoupons) => validatedCoupons.shift()),\r\n ),\r\n ),\r\n )\r\n }\r\n\r\n private checkCouponsWithCheckout = (\r\n coupons: FinancialCoupon[],\r\n checkout: CheckoutSubscription,\r\n ): Observable<FinancialCoupon[]> =>\r\n forkJoin(\r\n coupons.map((coupon) =>\r\n from(\r\n this.subscriptionRepository.find({\r\n filters: { user: { email: checkout.user?.email }, coupon: { id: coupon.id } },\r\n }),\r\n ).pipe(map((subscriptions) => ({ coupon, subscriptions }))),\r\n ),\r\n ).pipe(\r\n map((results) =>\r\n results.map(({ coupon, subscriptions }) => {\r\n if (subscriptions.data.length >= (coupon.useLimit || Infinity))\r\n return new InvalidCouponError('Coupon is already applied')\r\n\r\n return coupon\r\n }),\r\n ),\r\n map((validatedCoupons) => ({\r\n valids: validatedCoupons.filter((coupon) => FinancialCoupon.isFinancialCoupon(coupon)) as FinancialCoupon[],\r\n invalids: validatedCoupons.filter((coupon) => coupon instanceof InvalidCouponError) as InvalidCouponError[],\r\n })),\r\n concatMap(({ valids, invalids }) =>\r\n valids.length ? of(valids) : throwError(new GroupInvalidCouponError(invalids)),\r\n ),\r\n )\r\n}\r\n","import { Injectable, Inject } from '@angular/core'\r\nimport { AngularFirestore, QueryDocumentSnapshot } from '@angular/fire/firestore'\r\nimport { Order, OrderFirestoreRepository } from '@infrab4a/connect'\r\nimport { from, Observable, Subject } from 'rxjs'\r\nimport { map, mergeMap, tap } from 'rxjs/operators'\r\n\r\n@Injectable()\r\nexport class OrderService {\r\n orderSubject = new Subject<Order>()\r\n\r\n constructor(\r\n private readonly angularFirestore: AngularFirestore,\r\n @Inject('OrderRepository') private readonly orderRepository: OrderFirestoreRepository,\r\n ) {}\r\n\r\n getOrder(id: string): Subject<Order> {\r\n this.angularFirestore\r\n .doc<QueryDocumentSnapshot<Order>>(`${this.orderRepository.collectionName}/${id}`)\r\n .valueChanges()\r\n .pipe(map((doc) => Order.toInstance(doc)))\r\n .subscribe((doc) => this.orderSubject.next(doc))\r\n\r\n return this.orderSubject\r\n }\r\n}\r\n","import { Injectable, Inject } from '@angular/core'\r\nimport {\r\n add,\r\n Banner,\r\n Category,\r\n CategoryRepository,\r\n Home,\r\n HomeCategoryGroup,\r\n HomeData,\r\n HomeRepository,\r\n pick,\r\n Product,\r\n ProductRepository,\r\n RequiredArgumentError,\r\n Shops,\r\n Where,\r\n} from '@infrab4a/connect'\r\nimport { forkJoin, from, Observable, of, throwError } from 'rxjs'\r\nimport { concatMap, map, tap } from 'rxjs/operators'\r\n\r\nimport { DEFAULT_SHOP } from '../consts'\r\n\r\ntype HomeConfigurationId = 'glamshop' | 'mens_market'\r\ntype BannerType = 'brand' | 'buyToWin' | 'block' | 'blog'\r\n\r\n@Injectable()\r\nexport class HomeShopService {\r\n private homeConfiguration: Home\r\n\r\n private get homeId(): HomeConfigurationId {\r\n if (this.defaultShop === Shops.GLAMSHOP) return 'glamshop'\r\n if (this.defaultShop === Shops.MENSMARKET) return 'mens_market'\r\n\r\n return null\r\n }\r\n\r\n constructor(\r\n @Inject('CategoryRepository') private readonly categoryRepository: CategoryRepository,\r\n @Inject('HomeRepository') private readonly homeRepository: HomeRepository,\r\n @Inject('ProductRepository') private readonly productRepository: ProductRepository,\r\n @Inject(DEFAULT_SHOP) private readonly defaultShop: Shops,\r\n ) {}\r\n\r\n getHomeData(): Observable<Home> {\r\n return this.getHomeConfiguration().pipe(\r\n map((home) => (home?.data?.expiresAt > new Date() ? home : null)),\r\n concatMap((home) =>\r\n home\r\n ? of(home)\r\n : forkJoin([this.getDiscoverProducts(), this.getFeaturedProducts(), this.getVerticalProducts()]).pipe(\r\n map(([discoverProducts, featuredProducts, verticalProducts]) => ({\r\n discoverProducts,\r\n featuredProducts,\r\n verticalProducts,\r\n })),\r\n concatMap((data) => this.saveHomeData(data)),\r\n ),\r\n ),\r\n )\r\n }\r\n\r\n getBanners(type: BannerType): Observable<Banner[]> {\r\n return this.getHomeConfiguration().pipe(\r\n map((home) => {\r\n if (type === 'brand') return home.brandsCarousel\r\n if (type === 'buyToWin') return [home.buyToWinBanner]\r\n if (type === 'block') return home.blockBanners\r\n if (type === 'blog') return [home.blogBanner]\r\n }),\r\n )\r\n }\r\n\r\n private getDiscoverProducts(): Observable<{ category: Category; products: Product[] }[]> {\r\n return this.getHomeConfiguration().pipe(\r\n concatMap((home) =>\r\n from(this.categoryRepository.getCategoriesForHome(home.discoverCategories)).pipe(\r\n map((groups) => groups.map(this.buildCategoryGroupWithRequiredData)),\r\n ),\r\n ),\r\n )\r\n }\r\n\r\n private getFeaturedProducts(): Observable<{ category: Category; products: Product[] }[]> {\r\n return this.getHomeConfiguration().pipe(\r\n concatMap((home) =>\r\n from(this.categoryRepository.getCategoriesForHome(home.featuredCategories)).pipe(\r\n map((groups) => groups.map(this.buildCategoryGroupWithRequiredData)),\r\n ),\r\n ),\r\n )\r\n }\r\n\r\n private getVerticalProducts(): Observable<{ category: Category; products: Product[] }[]> {\r\n return this.getHomeConfiguration().pipe(\r\n concatMap((home) =>\r\n forkJoin(\r\n home.verticalCarousels.filter(Boolean).map((id) =>\r\n from(this.categoryRepository.get({ id })).pipe(\r\n concatMap((category) =>\r\n from(\r\n this.productRepository.find({\r\n filters: { categories: { operator: Where.IN, value: [category.id] } },\r\n limits: { limit: 12 },\r\n }),\r\n ).pipe(map((products) => ({ category, products }))),\r\n ),\r\n map(({ category, products }) => ({ category, products: products.data })),\r\n map(this.buildCategoryGroupWithRequiredData),\r\n ),\r\n ),\r\n ),\r\n ),\r\n )\r\n }\r\n\r\n private getHomeConfiguration(): Observable<Home> {\r\n return of(this.homeConfiguration).pipe(\r\n concatMap((home) =>\r\n home\r\n ? of(home)\r\n : !this.homeId\r\n ? throwError(new RequiredArgumentError(['homeId']))\r\n : from(this.homeRepository.get({ id: this.homeId })).pipe(\r\n tap((homeLoaded) => (this.homeConfiguration = homeLoaded)),\r\n ),\r\n ),\r\n )\r\n }\r\n\r\n private saveHomeData(homeData: HomeData): Observable<Home> {\r\n const data = {\r\n createdAt: new Date(),\r\n expiresAt: add(new Date(), { hours: 1 }),\r\n data: homeData,\r\n }\r\n\r\n return from(\r\n this.homeRepository.update({\r\n id: this.homeId,\r\n data,\r\n }),\r\n ).pipe(\r\n tap(() => (this.homeConfiguration.data = data)),\r\n map(() => this.homeConfiguration),\r\n )\r\n }\r\n\r\n private buildCategoryGroupWithRequiredData = (group: HomeCategoryGroup): HomeCategoryGroup => ({\r\n category: Category.toInstance(pick(group.category.toPlain(), ['id', 'name', 'slug', 'conditions'])),\r\n products: group.products.map((product) =>\r\n Product.toInstance(\r\n pick(product.toPlain(), [\r\n 'id',\r\n 'price',\r\n 'reviews',\r\n 'hasVariants',\r\n 'slug',\r\n 'sku',\r\n 'stock',\r\n 'costPrice',\r\n 'images',\r\n 'miniatures',\r\n 'name',\r\n 'weight',\r\n ]),\r\n ),\r\n ),\r\n })\r\n}\r\n","import { ModuleWithProviders, NgModule } from '@angular/core'\r\nimport {\r\n AngularFireModule,\r\n FIREBASE_APP_NAME,\r\n FIREBASE_OPTIONS,\r\n FirebaseAppConfig,\r\n FirebaseOptions,\r\n} from '@angular/fire'\r\nimport { AngularFireAuth } from '@angular/fire/auth'\r\nimport {\r\n Authentication,\r\n AuthenticationFirebaseAuthService,\r\n AuthenticationService,\r\n Register,\r\n RegisterService,\r\n RegisterFirebaseAuthService,\r\n SignOut,\r\n UserRepository,\r\n RecoveryPassword,\r\n} from '@infrab4a/connect'\r\n\r\n@NgModule({\r\n imports: [AngularFireModule],\r\n providers: [\r\n {\r\n provide: 'Authentication',\r\n useFactory: (authenticationService: AuthenticationService, userRepository: UserRepository): Authentication => {\r\n return new Authentication(authenticationService, userRepository)\r\n },\r\n deps: ['AuthenticationService', 'UserRepository'],\r\n },\r\n {\r\n provide: 'AuthenticationService',\r\n useFactory: (angularFireAuth: AngularFireAuth): AuthenticationService => {\r\n return new AuthenticationFirebaseAuthService(angularFireAuth as any)\r\n },\r\n deps: [AngularFireAuth],\r\n },\r\n {\r\n provide: 'Register',\r\n useFactory: (registerService: RegisterService, userRepository: UserRepository): Register => {\r\n return new Register(registerService, userRepository)\r\n },\r\n deps: ['RegisterService', 'UserRepository'],\r\n },\r\n {\r\n provide: 'RegisterService',\r\n useFactory: (angularFireAuth: AngularFireAuth): RegisterService => {\r\n return new RegisterFirebaseAuthService(angularFireAuth as any)\r\n },\r\n deps: [AngularFireAuth],\r\n },\r\n {\r\n provide: 'SignOut',\r\n useFactory: (authenticationService: AuthenticationService): SignOut => {\r\n return new SignOut(authenticationService)\r\n },\r\n deps: ['AuthenticationService'],\r\n },\r\n {\r\n provide: 'RecoveryPassword',\r\n useFactory: (authenticationService: AuthenticationService): RecoveryPassword => {\r\n return new RecoveryPassword(authenticationService)\r\n },\r\n deps: ['AuthenticationService'],\r\n },\r\n ],\r\n})\r\nexport class AngularFirebaseAuthModule {\r\n static initializeApp(\r\n options: FirebaseOptions,\r\n nameOrConfig?: string | FirebaseAppConfig,\r\n ): ModuleWithProviders<AngularFireModule> {\r\n return {\r\n ngModule: AngularFirebaseAuthModule,\r\n providers: [\r\n { provide: FIREBASE_OPTIONS, useValue: options },\r\n { provide: FIREBASE_APP_NAME, useValue: nameOrConfig },\r\n ],\r\n }\r\n }\r\n}\r\n","import { ModuleWithProviders, NgModule } from '@angular/core'\r\nimport { AxiosElasticSearchConfig, AxiosAdapter, ProductsIndex } from '@infrab4a/connect'\r\n\r\nimport { ES_CONFIG } from './consts/es-config.const'\r\n\r\n@NgModule({\r\n providers: [\r\n {\r\n provide: ProductsIndex,\r\n useFactory: (configuration: AxiosElasticSearchConfig): ProductsIndex => {\r\n return new ProductsIndex(new AxiosAdapter(configuration))\r\n },\r\n deps: [ES_CONFIG],\r\n },\r\n ],\r\n})\r\nexport class AngularElasticSeachModule {\r\n static initializeApp(options: AxiosElasticSearchConfig): ModuleWithProviders<AngularElasticSeachModule> {\r\n return {\r\n ngModule: AngularElasticSeachModule,\r\n providers: [{ provide: ES_CONFIG, useValue: options }],\r\n }\r\n }\r\n}\r\n","import { ModuleWithProviders, NgModule } from '@angular/core'\r\nimport {\r\n AngularFireModule,\r\n FIREBASE_APP_NAME,\r\n FIREBASE_OPTIONS,\r\n FirebaseAppConfig,\r\n FirebaseOptions,\r\n} from '@angular/fire'\r\nimport { AngularFirestore } from '@angular/fire/firestore'\r\nimport {\r\n AxiosElasticSearchConfig,\r\n BeautyProfileRepository,\r\n Buy2WinFirestoreRepository,\r\n Buy2WinRepository,\r\n CategoryRepository,\r\n CategoryFirestoreRepository,\r\n CheckoutRepository,\r\n CheckoutFirestoreRepository,\r\n CheckoutSubscriptionFirestoreRepository,\r\n CheckoutSubscriptionRepository,\r\n CouponRepository,\r\n CouponFirestoreRepository,\r\n EditionRepository,\r\n HomeFirestoreRepository,\r\n HomeRepository,\r\n LeadRepository,\r\n LeadFirestoreRepository,\r\n LegacyOrderRepository,\r\n LegacyOrderFirestoreRepository,\r\n ShopMenuFirestoreRepository,\r\n ShopMenuRepository,\r\n OrderRepository,\r\n OrderFirestoreRepository,\r\n PaymentRepository,\r\n PaymentFirestoreRepository,\r\n ProductRepository,\r\n ProductFirestoreRepository,\r\n ProductsIndex,\r\n SubscriptionEditionFirestoreRepository,\r\n SubscriptionFirestoreRepository,\r\n SubscriptionPaymentFirestoreRepository,\r\n SubscriptionPaymentRepository,\r\n SubscriptionPlanFirestoreRepository,\r\n SubscriptionPlanRepository,\r\n SubscriptionProductFirestoreRepository,\r\n SubscriptionProductRepository,\r\n SubscriptionRepository,\r\n UserAddressRepository,\r\n UserAddressFirestoreRepository,\r\n UserBeautyProfileFirestoreRepository,\r\n UserFirestoreRepository,\r\n UserRepository,\r\n VariantRepository,\r\n ProductVariantFirestoreRepository,\r\n UserPaymentMethodRepository,\r\n UserPaymentMethodFirestoreRepository,\r\n} from '@infrab4a/connect'\r\n\r\nimport { AngularElasticSeachModule } from './angular-elastic-search.module'\r\nimport { ES_CONFIG } from './consts/es-config.const'\r\n\r\n@NgModule({\r\n imports: [AngularFireModule, AngularElasticSeachModule],\r\n providers: [\r\n {\r\n provide: 'BeautyProfileRepository',\r\n useFactory: (firestore: AngularFirestore, userRepository: UserFirestoreRepository): BeautyProfileRepository => {\r\n return new UserBeautyProfileFirestoreRepository(firestore.firestore, userRepository)\r\n },\r\n deps: [AngularFirestore, 'UserRepository'],\r\n },\r\n {\r\n provide: 'Buy2WinRepository',\r\n useFactory: (firestore: AngularFirestore): Buy2WinRepository => {\r\n return new Buy2WinFirestoreRepository(firestore.firestore)\r\n },\r\n deps: [AngularFirestore],\r\n },\r\n {\r\n provide: CategoryFirestoreRepository,\r\n useFactory: (firestore: AngularFirestore): CategoryRepository => {\r\n return new CategoryFirestoreRepository(firestore.firestore)\r\n },\r\n deps: [AngularFirestore],\r\n },\r\n {\r\n provide: 'CheckoutRepository',\r\n useFactory: (firestore: AngularFirestore): CheckoutRepository => {\r\n return new CheckoutFirestoreRepository(firestore.firestore)\r\n },\r\n deps: [AngularFirestore],\r\n },\r\n {\r\n provide: 'CheckoutSubscriptionRepository',\r\n useFactory: (firestore: AngularFirestore): CheckoutSubscriptionRepository => {\r\n return new CheckoutSubscriptionFirestoreRepository(firestore.firestore)\r\n },\r\n deps: [AngularFirestore],\r\n },\r\n {\r\n provide: 'CouponRepository',\r\n useFactory: (firestore: AngularFirestore): CouponRepository => {\r\n return new CouponFirestoreRepository(firestore.firestore)\r\n },\r\n deps: [AngularFirestore],\r\n },\r\n {\r\n provide: 'EditionRepository',\r\n useFactory: (\r\n firestore: AngularFirestore,\r\n subscriptionRepository: SubscriptionFirestoreRepository,\r\n ): EditionRepository => {\r\n return new SubscriptionEditionFirestoreRepository(firestore.firestore, subscriptionRepository)\r\n },\r\n deps: [AngularFirestore, 'SubscriptionRepository'],\r\n },\r\n {\r\n provide: 'HomeRepository',\r\n useFactory: (firestore: AngularFirestore): HomeRepository => {\r\n return new HomeFirestoreRepository(firestore.firestore)\r\n },\r\n deps: [AngularFirestore],\r\n },\r\n {\r\n provide: 'LeadRepository',\r\n useFactory: (firestore: AngularFirestore): LeadRepository => {\r\n return new LeadFirestoreRepository(firestore.firestore)\r\n },\r\n deps: [AngularFirestore],\r\n },\r\n {\r\n provide: 'LegacyOrderRepository',\r\n useFactory: (firestore: AngularFirestore): LegacyOrderRepository => {\r\n return new LegacyOrderFirestoreRepository(firestore.firestore)\r\n },\r\n deps: [AngularFirestore],\r\n },\r\n {\r\n provide: 'ShopMenuRepository',\r\n useFactory: (firestore: AngularFirestore): ShopMenuRepository => {\r\n return new ShopMenuFirestoreRepository(firestore.firestore)\r\n },\r\n deps: [AngularFirestore],\r\n },\r\n {\r\n provide: 'OrderRepository',\r\n useFactory: (firestore: AngularFirestore): OrderRepository => {\r\n return new OrderFirestoreRepository(firestore.firestore)\r\n },\r\n deps: [AngularFirestore],\r\n },\r\n {\r\n provide: 'PaymentRepository',\r\n useFactory: (firestore: AngularFirestore): PaymentRepository => {\r\n return new PaymentFirestoreRepository(firestore.firestore)\r\n },\r\n deps: [AngularFirestore],\r\n },\r\n {\r\n provide: ProductFirestoreRepository,\r\n useFactory: (firestore: AngularFirestore): ProductRepository => {\r\n return new ProductFirestoreRepository(firestore.firestore)\r\n },\r\n deps: [AngularFirestore],\r\n },\r\n {\r\n provide: 'SubscriptionPaymentRepository',\r\n useFactory: (\r\n firestore: AngularFirestore,\r\n subscriptionRepository: SubscriptionFirestoreRepository,\r\n ): SubscriptionPaymentRepository => {\r\n return new SubscriptionPaymentFirestoreRepository(firestore.firestore, subscriptionRepository)\r\n },\r\n deps: [AngularFirestore, 'SubscriptionRepository'],\r\n },\r\n {\r\n provide: 'SubscriptionPlanRepository',\r\n useFactory: (firestore: AngularFirestore): SubscriptionPlanRepository => {\r\n return new SubscriptionPlanFirestoreRepository(firestore.firestore)\r\n },\r\n deps: [AngularFirestore],\r\n },\r\n {\r\n provide: 'SubscriptionProductRepository',\r\n useFactory: (firestore: AngularFirestore): SubscriptionProductRepository => {\r\n return new SubscriptionProductFirestoreRepository(firestore.firestore)\r\n },\r\n deps: [AngularFirestore],\r\n },\r\n {\r\n provide: 'SubscriptionRepository',\r\n useFactory: (firestore: AngularFirestore): SubscriptionRepository => {\r\n return new SubscriptionFirestoreRepository(firestore.firestore)\r\n },\r\n deps: [AngularFirestore],\r\n },\r\n {\r\n provide: 'UserRepository',\r\n useFactory: (firestore: AngularFirestore): UserRepository => {\r\n return new UserFirestoreRepository(firestore.firestore)\r\n },\r\n deps: [AngularFirestore],\r\n },\r\n {\r\n provide: 'UserAddressRepository',\r\n useFactory: (firestore: AngularFirestore, userRepository: UserFirestoreRepository): UserAddressRepository => {\r\n return new UserAddressFirestoreRepository(firestore.firestore, userRepository)\r\n },\r\n deps: [AngularFirestore, 'UserRepository'],\r\n },\r\n {\r\n provide: 'UserPaymentMethodRepository',\r\n useFactory: (\r\n firestore: AngularFirestore,\r\n userRepository: UserFirestoreRepository,\r\n ): UserPaymentMethodRepository => {\r\n return new UserPaymentMethodFirestoreRepository(firestore.firestore, userRepository)\r\n },\r\n deps: [AngularFirestore, 'UserRepository'],\r\n },\r\n {\r\n provide: 'VariantRepository',\r\n useFactory: (firestore: AngularFirestore, productRepository: ProductFirestoreRepository): VariantRepository => {\r\n return new ProductVariantFirestoreRepository(firestore.firestore, productRepository)\r\n },\r\n deps: [AngularFirestore, ProductFirestoreRepository],\r\n },\r\n ],\r\n})\r\nexport class AngularFirestoreModule {\r\n static initializeApp(\r\n options: {\r\n firebase: FirebaseOptions\r\n elasticSearch: AxiosElasticSearchConfig\r\n },\r\n nameOrConfig?: string | FirebaseAppConfig,\r\n ): ModuleWithProviders<AngularFireModule> {\r\n return {\r\n ngModule: AngularFirestoreModule,\r\n providers: [\r\n { provide: FIREBASE_OPTIONS, useValue: options.firebase },\r\n { provide: FIREBASE_APP_NAME, useValue: nameOrConfig },\r\n { provide: ES_CONFIG, useValue: options.elasticSearch },\r\n ],\r\n }\r\n }\r\n}\r\n","import { ModuleWithProviders, NgModule } from '@angular/core'\r\nimport {\r\n CategoryRepository,\r\n CategoryHasuraGraphQLRepository,\r\n HasuraGraphQLAuthOptions,\r\n ProductRepository,\r\n ProductHasuraGraphQLRepository,\r\n} from '@infrab4a/connect'\r\n\r\nimport { HASURA_OPTIONS } from './consts'\r\n\r\nexport type HasuraGraphQLOptions = { endpoint: string; credentials: HasuraGraphQLAuthOptions }\r\n\r\n@NgModule({\r\n providers: [\r\n {\r\n provide: 'CategoryRepository',\r\n useExisting: CategoryHasuraGraphQLRepository,\r\n },\r\n {\r\n provide: CategoryHasuraGraphQLRepository,\r\n useFactory: (\r\n options: HasuraGraphQLOptions,\r\n productRepository: ProductHasuraGraphQLRepository,\r\n ): CategoryRepository => {\r\n return new CategoryHasuraGraphQLRepository(options.endpoint, options.credentials, productRepository)\r\n },\r\n deps: [HASURA_OPTIONS, ProductHasuraGraphQLRepository],\r\n },\r\n {\r\n provide: 'ProductRepository',\r\n useExisting: ProductHasuraGraphQLRepository,\r\n },\r\n {\r\n provide: ProductHasuraGraphQLRepository,\r\n useFactory: (options: HasuraGraphQLOptions): ProductRepository => {\r\n return new ProductHasuraGraphQLRepository(options.endpoint, options.credentials)\r\n },\r\n deps: [HASURA_OPTIONS],\r\n },\r\n ],\r\n})\r\nexport class AngularHasuraGraphQLModule {\r\n static initializeApp(options: {\r\n endpoint: string\r\n credentials: HasuraGraphQLAuthOptions\r\n }): ModuleWithProviders<AngularHasuraGraphQLModule> {\r\n return {\r\n ngModule: AngularHasuraGraphQLModule,\r\n providers: [{ provide: HASURA_OPTIONS, useValue: options }],\r\n }\r\n }\r\n}\r\n","import { ModuleWithProviders, NgModule } from '@angular/core'\r\nimport {\r\n AngularFireModule,\r\n FIREBASE_APP_NAME,\r\n FIREBASE_OPTIONS,\r\n FirebaseAppConfig,\r\n FirebaseOptions,\r\n} from '@angular/fire'\r\nimport { AxiosElasticSearchConfig, isNil, Shops } from '@infrab4a/connect'\r\n\r\nimport { AngularFirestoreModule } from './angular-firestore.module'\r\nimport { AngularHasuraGraphQLModule, HasuraGraphQLOptions } from './angular-hasura-graphql.module'\r\nimport {\r\n AuthService,\r\n CartService,\r\n CheckoutService,\r\n CheckoutSubscriptionService,\r\n CouponService,\r\n HomeShopService,\r\n OrderService,\r\n} from './services'\r\nimport { DEFAULT_SHOP, ES_CONFIG, HASURA_OPTIONS } from './consts'\r\n\r\n@NgModule({\r\n imports: [AngularFireModule, AngularFirestoreModule, AngularHasuraGraphQLModule],\r\n providers: [\r\n AuthService,\r\n CartService,\r\n CheckoutService,\r\n CheckoutSubscriptionService,\r\n CouponService,\r\n HomeShopService,\r\n OrderService,\r\n ],\r\n})\r\nexport class AngularConnectModule {\r\n static initializeApp(\r\n defaultShop: Shops,\r\n options: { firebase: FirebaseOptions; elasticSearch: AxiosElasticSearchConfig; hasura: HasuraGraphQLOptions },\r\n nameOrConfig?: string | FirebaseAppConfig,\r\n ): ModuleWithProviders<AngularFireModule> {\r\n return {\r\n ngModule: AngularConnectModule,\r\n providers: [\r\n ...(isNil(defaultShop) ? [] : [{ provide: DEFAULT_SHOP, useValue: defaultShop }]),\r\n ...(isNil(options?.firebase) ? [] : [{ provide: FIREBASE_OPTIONS, useValue: options?.firebase }]),\r\n ...(isNil(options?.firebase) ? [] : [{ provide: FIREBASE_APP_NAME, useValue: nameOrConfig }]),\r\n ...(isNil(options?.elasticSearch) ? [] : [{ provide: ES_CONFIG, useValue: options.elasticSearch }]),\r\n ...(isNil(options?.hasura) ? [] : [{ provide: HASURA_OPTIONS, useValue: options.hasura }]),\r\n ],\r\n }\r\n }\r\n}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["catchError","of","combineLatest","map","mergeMap","Injectable","Inject","CustomError","FinancialCoupon","from","Where","concatMap","throwError","NotFoundError","Exclusivities","cookie","isNil","Checkout","CheckoutTypes","pick","Subject","LineItem","tap","CouponTypes","iif","CouponSubtypes","forkJoin","CheckoutSubscription","Order","Category","Product","Shops","RequiredArgumentError","add","FIREBASE_OPTIONS","FIREBASE_APP_NAME","AngularFireModule","Authentication","AuthenticationFirebaseAuthService","AngularFireAuth","Register","RegisterFirebaseAuthService","SignOut","RecoveryPassword","NgModule","ProductsIndex","AxiosAdapter","UserBeautyProfileFirestoreRepository","AngularFirestore","Buy2WinFirestoreRepository","CategoryFirestoreRepository","CheckoutFirestoreRepository","CheckoutSubscriptionFirestoreRepository","CouponFirestoreRepository","SubscriptionEditionFirestoreRepository","HomeFirestoreRepository","LeadFirestoreRepository","LegacyOrderFirestoreRepository","ShopMenuFirestoreRepository","OrderFirestoreRepository","PaymentFirestoreRepository","ProductFirestoreRepository","SubscriptionPaymentFirestoreRepository","SubscriptionPlanFirestoreRepository","SubscriptionProductFirestoreRepository","SubscriptionFirestoreRepository","UserFirestoreRepository","UserAddressFirestoreRepository","UserPaymentMethodFirestoreRepository","ProductVariantFirestoreRepository","CategoryHasuraGraphQLRepository","ProductHasuraGraphQLRepository"],"mappings":"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"}
|
|
@@ -80,7 +80,7 @@ export class CartService {
|
|
|
80
80
|
lineItem: LineItem.toInstance({
|
|
81
81
|
id,
|
|
82
82
|
name,
|
|
83
|
-
EAN,
|
|
83
|
+
EAN: EAN !== null && EAN !== void 0 ? EAN : product.EAN,
|
|
84
84
|
brand: product.brand,
|
|
85
85
|
slug,
|
|
86
86
|
sku,
|
|
@@ -91,7 +91,7 @@ export class CartService {
|
|
|
91
91
|
quantity: (item.quantity || 0) + (quantity || 0),
|
|
92
92
|
pricePaid,
|
|
93
93
|
categories: (_g = product.categories) !== null && _g !== void 0 ? _g : [],
|
|
94
|
-
isGift,
|
|
94
|
+
isGift: isGift !== null && isGift !== void 0 ? isGift : null,
|
|
95
95
|
costPrice: item === null || item === void 0 ? void 0 : item.costPrice,
|
|
96
96
|
})
|
|
97
97
|
};
|
|
@@ -205,4 +205,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.12", ngImpo
|
|
|
205
205
|
type: Inject,
|
|
206
206
|
args: ['ProductRepository']
|
|
207
207
|
}] }]; } });
|
|
208
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FydC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvY29ubmVjdC1hbmd1bGFyL3NyYy9zZXJ2aWNlcy9jYXJ0LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFBO0FBQ2xELE9BQU8sRUFDTCxRQUFRLEVBRVIsY0FBYyxFQUNkLFdBQVcsRUFDWCxlQUFlLEVBQ2YsS0FBSyxFQUNMLFFBQVEsRUFFUixLQUFLLEVBRUwsS0FBSyxFQUNOLE1BQU0sbUJBQW1CLENBQUE7QUFDMUIsT0FBTyxFQUFFLElBQUksRUFBRSxHQUFHLEVBQWMsRUFBRSxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQTtBQUN6RCxPQUFPLEVBQUUsVUFBVSxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsUUFBUSxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFBO0FBRTFFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxXQUFXLENBQUE7QUFFeEMsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFBO0FBQzVDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQTs7Ozs7QUFRcEQsTUFBTSxPQUFPLFdBQVc7SUFHdEIsWUFDbUIsV0FBd0IsRUFDeEIsZUFBZ0MsRUFDVixXQUFrQixFQUNYLGlCQUFvQztRQUhqRSxnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQUN4QixvQkFBZSxHQUFmLGVBQWUsQ0FBaUI7UUFDVixnQkFBVyxHQUFYLFdBQVcsQ0FBTztRQUNYLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBbUI7UUFONUUsZ0JBQVcsR0FBa0IsSUFBSSxPQUFPLEVBQUUsQ0FBQTtRQXdJMUMseUJBQW9CLEdBQUcsQ0FBQyxRQUFrQixFQUFFLFFBQWdCLEVBQUUsUUFBbUIsRUFBb0IsRUFBRSxDQUM3RyxD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ci9jb3JlJ1xyXG5pbXBvcnQge1xyXG4gIENoZWNrb3V0LFxyXG4gIENvdXBvbixcclxuICBDb3Vwb25TdWJ0eXBlcyxcclxuICBDb3Vwb25UeXBlcyxcclxuICBGaW5hbmNpYWxDb3Vwb24sXHJcbiAgaXNOaWwsXHJcbiAgTGluZUl0ZW0sXHJcbiAgUHJvZHVjdFJlcG9zaXRvcnksXHJcbiAgU2hvcHMsXHJcbiAgVXNlcixcclxuICBXaGVyZVxyXG59IGZyb20gJ0BpbmZyYWI0YS9jb25uZWN0J1xyXG5pbXBvcnQgeyBmcm9tLCBpaWYsIE9ic2VydmFibGUsIG9mLCBTdWJqZWN0IH0gZnJvbSAncnhqcydcclxuaW1wb3J0IHsgY2F0Y2hFcnJvciwgY29uY2F0TWFwLCBtYXAsIG1lcmdlTWFwLCB0YXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycydcclxuXHJcbmltcG9ydCB7IERFRkFVTFRfU0hPUCB9IGZyb20gJy4uL2NvbnN0cydcclxuXHJcbmltcG9ydCB7IEF1dGhTZXJ2aWNlIH0gZnJvbSAnLi9hdXRoLnNlcnZpY2UnXHJcbmltcG9ydCB7IENoZWNrb3V0U2VydmljZSB9IGZyb20gJy4vY2hlY2tvdXQuc2VydmljZSdcclxuaW1wb3J0IHsgUmVxdWlyZWRDaGVja291dERhdGEgfSBmcm9tICcuL3R5cGVzJ1xyXG5cclxuZXhwb3J0IHR5cGUgQ2FydCA9IHtcclxuICBbaWQ6IHN0cmluZ106IExpbmVJdGVtXHJcbn1cclxuXHJcbkBJbmplY3RhYmxlKClcclxuZXhwb3J0IGNsYXNzIENhcnRTZXJ2aWNlIHtcclxuICBwcml2YXRlIGNhcnRTdWJqZWN0OiBTdWJqZWN0PENhcnQ+ID0gbmV3IFN1YmplY3QoKVxyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgYXV0aFNlcnZpY2U6IEF1dGhTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSByZWFkb25seSBjaGVja291dFNlcnZpY2U6IENoZWNrb3V0U2VydmljZSxcclxuICAgIEBJbmplY3QoREVGQVVMVF9TSE9QKSBwcml2YXRlIHJlYWRvbmx5IGRlZmF1bHRTaG9wOiBTaG9wcyxcclxuICAgIEBJbmplY3QoJ1Byb2R1Y3RSZXBvc2l0b3J5JykgcHJpdmF0ZSByZWFkb25seSBwcm9kdWN0UmVwb3NpdG9yeTogUHJvZHVjdFJlcG9zaXRvcnksXHJcbiAgKSB7fVxyXG5cclxuICBhZGRJdGVtKGl0ZW06IExpbmVJdGVtLCBxdWFudGl0eTogbnVtYmVyID0gMSk6IE9ic2VydmFibGU8Q2FydD4ge1xyXG5cclxuICAgIHJldHVybiBmcm9tKHRoaXMuY2hlY2tvdXRTZXJ2aWNlLmdldENoZWNrb3V0KCkpXHJcbiAgICAgIC5waXBlKFxyXG4gICAgICAgIGNvbmNhdE1hcChjaGVja291dCA9PiB0aGlzLmJ1aWxkTGluZUl0ZW0oeyBjaGVja291dCwgaXRlbSwgcXVhbnRpdHk6IHF1YW50aXR5IHx8IDEgfSkpLFxyXG4gICAgICAgIG1lcmdlTWFwKCh7Y2hlY2tvdXQsIGxpbmVJdGVtfSkgPT4gdGhpcy51cGRhdGVMaW5lSXRlbUluQ2FydChsaW5lSXRlbSwgcXVhbnRpdHkgfHwgMSwgY2hlY2tvdXQgYXMgQ2hlY2tvdXQpKSxcclxuICAgICAgICB0YXAoKGNhcnQpID0+IHRoaXMuY2FydFN1YmplY3QubmV4dChjYXJ0KSlcclxuICAgICAgKVxyXG4gICAgXHJcbiAgICAvLyAucGlwZShcclxuICAgIC8vICAgY29uY2F0TWFwKCh7IGNoZWNrb3V0LCBsaW5lSXRlbSB9KSA9PiB0aGlzLnVwZGF0ZUxpbmVJdGVtSW5DYXJ0KGxpbmVJdGVtLCBxdWFudGl0eSB8fCAxLCBjaGVja291dCkpLFxyXG4gICAgLy8gICB0YXAoKGNhcnQpID0+IHRoaXMuY2FydFN1YmplY3QubmV4dChjYXJ0KSksXHJcbiAgICAvLyApXHJcbiAgICAvLyByZXR1cm4gdGhpcy5jaGVja291dFNlcnZpY2UuZ2V0Q2hlY2tvdXQoKS5waXBlKFxyXG4gICAgLy8gICBtYXAoIGFzeW5jKGNoZWNrb3V0KSA9PiAoe1xyXG4gICAgLy8gICAgIGNoZWNrb3V0LFxyXG4gICAgLy8gICAgIGxpbmVJdGVtOiBhd2FpdCB0aGlzLmJ1aWxkTGluZUl0ZW0oeyBjaGVja291dCwgaXRlbSwgcXVhbnRpdHk6IHF1YW50aXR5IHx8IDEgfSksXHJcbiAgICAvLyAgIH0pKSxcclxuICAgIC8vICAgY29uY2F0TWFwKCh7IGNoZWNrb3V0LCBsaW5lSXRlbSB9KSA9PiB0aGlzLnVwZGF0ZUxpbmVJdGVtSW5DYXJ0KGxpbmVJdGVtLCBxdWFudGl0eSB8fCAxLCBjaGVja291dCkpLFxyXG4gICAgLy8gICB0YXAoKGNhcnQpID0+IHRoaXMuY2FydFN1YmplY3QubmV4dChjYXJ0KSksXHJcbiAgICAvLyApXHJcbiAgfVxyXG5cclxuICBkZWNyZWFzZUl0ZW0oaXRlbTogTGluZUl0ZW0pOiBPYnNlcnZhYmxlPENhcnQ+IHtcclxuICAgIHJldHVybiB0aGlzLmNoZWNrb3V0U2VydmljZS5nZXRDaGVja291dCgpLnBpcGUoXHJcbiAgICAgIG1hcCgoY2hlY2tvdXQpID0+IHtcclxuICAgICAgICBjb25zdCBjaGVja291dEl0ZW0gPSBjaGVja291dC5saW5lSXRlbXM/LmZpbmQoKGxpbmVJdGVtKSA9PiBsaW5lSXRlbS5za3UgPT09IGl0ZW0uc2t1KVxyXG5cclxuICAgICAgICBpZiAoIWlzTmlsKGNoZWNrb3V0SXRlbSkpIGNoZWNrb3V0SXRlbS5xdWFudGl0eSAtPSBjaGVja291dEl0ZW0ucXVhbnRpdHkgPiAxID8gMSA6IDBcclxuXHJcbiAgICAgICAgcmV0dXJuIGNoZWNrb3V0XHJcbiAgICAgIH0pLFxyXG4gICAgICBjb25jYXRNYXAoKGNoZWNrb3V0KSA9PiB0aGlzLmNoZWNrb3V0U2VydmljZS51cGRhdGVDaGVja291dExpbmVJdGVtcyhjaGVja291dCkpLFxyXG4gICAgICBtYXAoKGNoZWNrb3V0KSA9PiB0aGlzLmdlbmVyYXRlQ2FydE9iamVjdChjaGVja291dC5saW5lSXRlbXMpKSxcclxuICAgICAgdGFwKChjYXJ0KSA9PiB0aGlzLmNhcnRTdWJqZWN0Lm5leHQoY2FydCkpLFxyXG4gICAgKVxyXG4gIH1cclxuXHJcbiAgZ2V0Q2FydChjaGVja291dD86IFJlcXVpcmVkQ2hlY2tvdXREYXRhKTogT2JzZXJ2YWJsZTxDYXJ0PiB7XHJcbiAgICB0aGlzLmJ1aWxkQ2FydEZyb21DaGVja291dChjaGVja291dCkuc3Vic2NyaWJlKChjYXJ0KSA9PiB0aGlzLmNhcnRTdWJqZWN0Lm5leHQoY2FydCkpXHJcblxyXG4gICAgcmV0dXJuIHRoaXMuY2FydFN1YmplY3RcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEBkZXByZWNhdGVkIFRoZSBtZXRob2Qgc2hvdWxkIG5vdCBiZSB1c2VkXHJcbiAgICovXHJcbiAgZ2V0RGlzY291bnQoY291cG9uOiBDb3Vwb24gJiB7IGlkOiBzdHJpbmcgfSk6IChzdWJUb3RhbFByaWNlOiBudW1iZXIpID0+IG51bWJlciB7XHJcbiAgICBzd2l0Y2ggKGNvdXBvbi50eXBlKSB7XHJcbiAgICAgIGNhc2UgQ291cG9uVHlwZXMuRklOQU5DSUFMOlxyXG4gICAgICAgIHJldHVybiB0aGlzLmdldEZpbmFuY2lhbERpc2NvdW50KGNvdXBvbilcclxuICAgICAgY2FzZSBDb3Vwb25UeXBlcy5QUk9EVUNUOlxyXG4gICAgICAgIHJldHVybiAoc3ViVG90YWxQcmljZTogbnVtYmVyKSA9PiBzdWJUb3RhbFByaWNlXHJcbiAgICAgIGNhc2UgQ291cG9uVHlwZXMuR0lGVENBUkQ6XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0RmluYW5jaWFsRGlzY291bnQoY291cG9uKVxyXG4gICAgICBjYXNlIENvdXBvblR5cGVzLlZPVUNIRVI6XHJcbiAgICAgICAgcmV0dXJuIChzdWJUb3RhbFByaWNlOiBudW1iZXIpID0+IHN1YlRvdGFsUHJpY2VcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEBkZXByZWNhdGVkIFRoZSBtZXRob2Qgc2hvdWxkIG5vdCBiZSB1c2VkXHJcbiAgICovXHJcbiAgZ2V0VmFyaWFudFByaWNlRGlzY291bnQoaXRlbTogTGluZUl0ZW0sIHNob3A6IFNob3BzKTogT2JzZXJ2YWJsZTxudW1iZXI+IHtcclxuICAgIHJldHVybiB0aGlzLmF1dGhTZXJ2aWNlLmdldFVzZXIoKS5waXBlKFxyXG4gICAgICBjb25jYXRNYXAoKHVzZXIpID0+XHJcbiAgICAgICAgaWlmKFxyXG4gICAgICAgICAgKCkgPT4gdXNlci5pc1N1YnNjcmliZXIgJiYgISFpdGVtLmdldEluZm9CeVNob3Aoc2hvcCkuc3Vic2NyaWJlclByaWNlLFxyXG4gICAgICAgICAgb2YoaXRlbS5nZXRJbmZvQnlTaG9wKHNob3ApLnN1YnNjcmliZXJQcmljZSksXHJcbiAgICAgICAgICBvZihpdGVtLmdldEluZm9CeVNob3Aoc2hvcCkucHJpY2UpLFxyXG4gICAgICAgICksXHJcbiAgICAgICksXHJcbiAgICAgIGNhdGNoRXJyb3IoKCkgPT4gb2YoaXRlbS5nZXRJbmZvQnlTaG9wKHNob3ApLnByaWNlKSksXHJcbiAgICApXHJcbiAgfVxyXG5cclxuICByZW1vdmVJdGVtKGl0ZW06IExpbmVJdGVtKTogT2JzZXJ2YWJsZTxDYXJ0PiB7XHJcbiAgICByZXR1cm4gdGhpcy5jaGVja291dFNlcnZpY2UuZ2V0Q2hlY2tvdXQoKS5waXBlKFxyXG4gICAgICBtYXAoKGNoZWNrb3V0KSA9PiB7XHJcbiAgICAgICAgY29uc3QgaW5kZXggPSBjaGVja291dC5saW5lSXRlbXMuZmluZEluZGV4KChsaW5lSXRlbSkgPT4gbGluZUl0ZW0uc2t1ID09PSBpdGVtLnNrdSlcclxuXHJcbiAgICAgICAgaWYgKGluZGV4ID49IDApIGNoZWNrb3V0LmxpbmVJdGVtcy5zcGxpY2UoaW5kZXgsIDEpXHJcblxyXG4gICAgICAgIHJldHVybiBjaGVja291dFxyXG4gICAgICB9KSxcclxuICAgICAgY29uY2F0TWFwKChjaGVja291dCkgPT4gdGhpcy5jaGVja291dFNlcnZpY2UudXBkYXRlQ2hlY2tvdXRMaW5lSXRlbXMoY2hlY2tvdXQpKSxcclxuICAgICAgbWFwKChjaGVja291dCkgPT4gdGhpcy5nZW5lcmF0ZUNhcnRPYmplY3QoY2hlY2tvdXQubGluZUl0ZW1zKSksXHJcbiAgICAgIHRhcCgoY2FydCkgPT4gdGhpcy5jYXJ0U3ViamVjdC5uZXh0KGNhcnQpKSxcclxuICAgIClcclxuICB9XHJcblxyXG4gIHVwZGF0ZVVzZXJDYXJ0KHVzZXI6IFVzZXIpOiBPYnNlcnZhYmxlPENhcnQ+IHtcclxuICAgIHJldHVybiB0aGlzLmNoZWNrb3V0U2VydmljZS5nZXRDaGVja291dCgpLnBpcGUoXHJcbiAgICAgIGNvbmNhdE1hcCgoY2hlY2tvdXQpID0+XHJcbiAgICAgICAgdGhpcy5jaGVja291dFNlcnZpY2UudXBkYXRlQ2hlY2tvdXRVc2VyKENoZWNrb3V0LnRvSW5zdGFuY2UoeyAuLi5jaGVja291dC50b1BsYWluKCksIHVzZXIgfSkpLFxyXG4gICAgICApLFxyXG4gICAgICBjb25jYXRNYXAoKGNoZWNrb3V0KSA9PlxyXG4gICAgICAgIHRoaXMuY2hlY2tvdXRTZXJ2aWNlLnVwZGF0ZUNoZWNrb3V0TGluZUl0ZW1zKFxyXG4gICAgICAgICAgQ2hlY2tvdXQudG9JbnN0YW5jZSh7XHJcbiAgICAgICAgICAgIC4uLmNoZWNrb3V0LnRvUGxhaW4oKSxcclxuICAgICAgICAgICAgbGluZUl0ZW1zOiBjaGVja291dC5saW5lSXRlbXM/Lm1hcChhc3luYyAoaXRlbSkgPT4gYXdhaXQgdGhpcy5idWlsZExpbmVJdGVtKHsgY2hlY2tvdXQsIGl0ZW0gfSkpIHx8IFtdLFxyXG4gICAgICAgICAgfSksXHJcbiAgICAgICAgKSxcclxuICAgICAgKSxcclxuICAgICAgbWFwKChjaGVja291dCkgPT4gdGhpcy5nZW5lcmF0ZUNhcnRPYmplY3QoY2hlY2tvdXQubGluZUl0ZW1zKSksXHJcbiAgICAgIHRhcCgoY2FydCkgPT4gdGhpcy5jYXJ0U3ViamVjdC5uZXh0KGNhcnQpKSxcclxuICAgIClcclxuICB9XHJcblxyXG4gIGNsZWFyQ2FydCgpOiBPYnNlcnZhYmxlPENhcnQ+IHtcclxuICAgIHJldHVybiB0aGlzLmNoZWNrb3V0U2VydmljZS5nZXRDaGVja291dCgpLnBpcGUoXHJcbiAgICAgIG1hcCgoY2hlY2tvdXQpID0+IHtcclxuICAgICAgICB0aGlzLmNoZWNrb3V0U2VydmljZS5jbGVhckNoZWNrb3V0RnJvbVNlc3Npb24oKVxyXG4gICAgICAgIHJldHVybiBjaGVja291dFxyXG4gICAgICB9KSxcclxuICAgICAgY29uY2F0TWFwKChvbGRDaGVja291dCkgPT4gdGhpcy5idWlsZENhcnRGcm9tQ2hlY2tvdXQob2xkQ2hlY2tvdXQpKSxcclxuICAgICAgdGFwKChjYXJ0KSA9PiB0aGlzLmNhcnRTdWJqZWN0Lm5leHQoY2FydCkpLFxyXG4gICAgKVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBidWlsZENhcnRGcm9tQ2hlY2tvdXQoY2hlY2tvdXREYXRhPzogUmVxdWlyZWRDaGVja291dERhdGEpOiBPYnNlcnZhYmxlPENhcnQ+IHtcclxuICAgIHJldHVybiB0aGlzLmNoZWNrb3V0U2VydmljZS5nZXRDaGVja291dChjaGVja291dERhdGEpLnBpcGUoXHJcbiAgICAgIG1hcCgoY2hlY2tvdXQpID0+IGNoZWNrb3V0LmxpbmVJdGVtcyksXHJcbiAgICAgIGNvbmNhdE1hcCgobGluZUl0ZW1zKSA9PiBvZih0aGlzLmdlbmVyYXRlQ2FydE9iamVjdChsaW5lSXRlbXMpKSksXHJcbiAgICApXHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHVwZGF0ZUxpbmVJdGVtSW5DYXJ0ID0gKGxpbmVJdGVtOiBMaW5lSXRlbSwgcXVhbnRpdHk6IG51bWJlciwgY2hlY2tvdXQ/OiBDaGVja291dCk6IE9ic2VydmFibGU8Q2FydD4gPT5cclxuICAgIChpc05pbChjaGVja291dCkgPyB0aGlzLmNoZWNrb3V0U2VydmljZS5nZXRDaGVja291dCgpIDogb2YoY2hlY2tvdXQpKS5waXBlKFxyXG4gICAgICBjb25jYXRNYXAoKGNoZWNrb3V0TG9hZGVkKSA9PiB7XHJcbiAgICAgICAgY29uc29sZS5sb2coJ3VwZGF0ZUxpbmVJdGVtSW5DYXJ0MScsIGNoZWNrb3V0TG9hZGVkKVxyXG4gICAgICAgIGNvbnN0IGl0ZW1zOiBMaW5lSXRlbVtdID0gW11cclxuICAgICAgICBjb25zdCBpbmRleCA9IGNoZWNrb3V0TG9hZGVkLmxpbmVJdGVtcz8ubWFwKChjaGVja291dEl0ZW0pID0+IGNoZWNrb3V0SXRlbS5za3UpLmluZGV4T2YobGluZUl0ZW0uc2t1KVxyXG5cclxuICAgICAgICBpZiAoaW5kZXggPiAtMSkge1xyXG4gICAgICAgICAgY2hlY2tvdXRMb2FkZWQubGluZUl0ZW1zW2luZGV4XS5xdWFudGl0eSArPSBxdWFudGl0eVxyXG4gICAgICAgICAgY2hlY2tvdXRMb2FkZWQubGluZUl0ZW1zW2luZGV4XS5wcmljZVBhaWQgPSBsaW5lSXRlbS5wcmljZVBhaWRcclxuICAgICAgICB9IGVsc2VcclxuICAgICAgICAgIGNoZWNrb3V0TG9hZGVkLmxpbmVJdGVtcyA9IGl0ZW1zLmNvbmNhdChcclxuICAgICAgICAgICAgY2hlY2tvdXRMb2FkZWQubGluZUl0ZW1zID8gY2hlY2tvdXRMb2FkZWQubGluZUl0ZW1zLmNvbmNhdChbbGluZUl0ZW1dKSA6IFtsaW5lSXRlbV0sXHJcbiAgICAgICAgICApXHJcbiAgICAgICAgXHJcbiAgICAgICAgcmV0dXJuIHRoaXMuY2hlY2tvdXRTZXJ2aWNlXHJcbiAgICAgICAgICAudXBkYXRlQ2hlY2tvdXRMaW5lSXRlbXMoY2hlY2tvdXRMb2FkZWQpXHJcbiAgICAgICAgICAucGlwZShtYXAoKHVwZGF0ZWRDaGVja291dCkgPT4gdGhpcy5nZW5lcmF0ZUNhcnRPYmplY3QodXBkYXRlZENoZWNrb3V0LmxpbmVJdGVtcykpKVxyXG4gICAgICB9KSxcclxuICAgIClcclxuICAgIFxyXG4gIHByaXZhdGUgZ2VuZXJhdGVDYXJ0T2JqZWN0ID0gKGl0ZW1zOiBMaW5lSXRlbVtdKTogQ2FydCA9PiB7XHJcbiAgICBjb25zdCBjYXJ0OiBDYXJ0ID0ge31cclxuXHJcbiAgICBpdGVtcz8uZm9yRWFjaChcclxuICAgICAgKGl0ZW0pID0+XHJcbiAgICAgICAgKGNhcnRbaXRlbS5za3VdID0gTGluZUl0ZW0udG9JbnN0YW5jZSh7XHJcbiAgICAgICAgICAuLi4oY2FydFtpdGVtLnNrdV0gfHwgaXRlbSksXHJcbiAgICAgICAgICBxdWFudGl0eTogKGNhcnRbaXRlbS5za3VdPy5xdWFudGl0eSB8fCAwKSArIChpdGVtLnF1YW50aXR5ID8gaXRlbS5xdWFudGl0eSA6IDEpLFxyXG4gICAgICAgIH0pKSxcclxuICAgIClcclxuXHJcbiAgICByZXR1cm4gY2FydFxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBidWlsZExpbmVJdGVtID0gYXN5bmMgKHtcclxuICAgIGNoZWNrb3V0LFxyXG4gICAgaXRlbSxcclxuICAgIHF1YW50aXR5LFxyXG4gIH06IHtcclxuICAgIGNoZWNrb3V0OiBSZXF1aXJlZENoZWNrb3V0RGF0YVxyXG4gICAgaXRlbTogTGluZUl0ZW1cclxuICAgIHF1YW50aXR5PzogbnVtYmVyXHJcbiAgfSkgPT4ge1xyXG5cclxuICAgIGNvbnN0IHByb2R1Y3QgPSBhd2FpdCB0aGlzLnByb2R1Y3RSZXBvc2l0b3J5XHJcbiAgICAgIC5maW5kKHsgZmlsdGVyczogeyBpZDogeyBvcGVyYXRvcjogV2hlcmUuRVFVQUxTLCB2YWx1ZTogaXRlbS5pZCB9IH19KVxyXG4gICAgICAudGhlbigocHJvZHVjdCA9PiBwcm9kdWN0LmRhdGEuc2hpZnQoKSkpXHJcblxyXG4gICAgY29uc29sZS5sb2coJ3Byb2R1Y3RSZXBvc2l0b3J5IGJ5IGlkJywgcHJvZHVjdCkgICAgICBcclxuICAgIGNvbnNvbGUubG9nKCdidWlsZExpbmVJdGVtJywgY2hlY2tvdXQsIGl0ZW0sIHF1YW50aXR5KVxyXG4gICAgaXRlbS5xdWFudGl0eSA9IGl0ZW0/LnF1YW50aXR5IHx8IGNoZWNrb3V0Py5saW5lSXRlbXM/LmZpbmQoKGxpbmVJdGVtKSA9PiBsaW5lSXRlbS5za3UgPT09IGl0ZW0uc2t1KT8ucXVhbnRpdHkgfHwgMFxyXG5cclxuICAgIGlmICh0aGlzLmNoZWNrTWF4U3RvY2soaXRlbSwgcXVhbnRpdHkgfHwgMCkpXHJcbiAgICAgIHRocm93IG5ldyBFcnJvcignRGVzY3VscGUhIFRlbW9zIGFwZW5hcyAnICsgaXRlbS5zdG9jaz8ucXVhbnRpdHkgKyAnIGVtIGVzdG9xdWUuJylcclxuXHJcbiAgICBjb25zdCBpbWFnZSA9IGl0ZW0uaW1hZ2UgfHwgaXRlbS5pbWFnZXM/LnNoaWZ0KClcclxuICAgIGNvbnN0IHsgaWQsIG5hbWUsIEVBTiwgYnJhbmQsIHNsdWcsIHN0b2NrLCBwcmljZSwgd2VpZ2h0LCBjYXRlZ29yaWVzLCBza3UgfSA9IGl0ZW1cclxuICAgIGNvbnN0IGlzR2lmdCA9IGl0ZW0uaXNHaWZ0IHx8IG51bGxcclxuICAgIGNvbnN0IHByaWNlUGFpZCA9IHRoaXMuZ2V0UHJvZHVjdFByaWNlKHtcclxuICAgICAgcHJvZHVjdDogaXRlbSxcclxuICAgICAgc2hvcDogY2hlY2tvdXQuc2hvcCB8fCB0aGlzLmRlZmF1bHRTaG9wLFxyXG4gICAgICBpc1N1YnNjcmliZXI6IGNoZWNrb3V0LnVzZXI/LmlzU3Vic2NyaWJlcixcclxuICAgIH0pXHJcblxyXG4gICAgY29uc29sZS5sb2coJ0xpbmVJdGVtLnRvSW5zdGFuY2UnLCBKU09OLnN0cmluZ2lmeSh7XHJcbiAgICAgIGlkLFxyXG4gICAgICBuYW1lLFxyXG4gICAgICBFQU4sXHJcbiAgICAgIGJyYW5kOiBwcm9kdWN0LmJyYW5kLFxyXG4gICAgICBzbHVnLFxyXG4gICAgICBza3UsXHJcbiAgICAgIHN0b2NrLFxyXG4gICAgICBwcmljZSxcclxuICAgICAgaW1hZ2UsXHJcbiAgICAgIHdlaWdodDogd2VpZ2h0ID8/IHByb2R1Y3Qud2VpZ2h0LFxyXG4gICAgICBxdWFudGl0eTogKGl0ZW0ucXVhbnRpdHkgfHwgMCkgKyAocXVhbnRpdHkgfHwgMCksXHJcbiAgICAgIHByaWNlUGFpZCxcclxuICAgICAgY2F0ZWdvcmllczogcHJvZHVjdC5jYXRlZ29yaWVzID8/IFtdLFxyXG4gICAgICBpc0dpZnQsXHJcbiAgICAgIGNvc3RQcmljZTogaXRlbT8uY29zdFByaWNlXHJcbiAgICB9KSlcclxuICAgICBcclxuICAgIHJldHVybiB7XHJcbiAgICAgIGNoZWNrb3V0LCBcclxuICAgICAgbGluZUl0ZW06IExpbmVJdGVtLnRvSW5zdGFuY2Uoe1xyXG4gICAgICAgIGlkLFxyXG4gICAgICAgIG5hbWUsXHJcbiAgICAgICAgRUFOLFxyXG4gICAgICAgIGJyYW5kOiBwcm9kdWN0LmJyYW5kLFxyXG4gICAgICAgIHNsdWcsXHJcbiAgICAgICAgc2t1LFxyXG4gICAgICAgIHN0b2NrLFxyXG4gICAgICAgIHByaWNlLFxyXG4gICAgICAgIGltYWdlLFxyXG4gICAgICAgIHdlaWdodDogd2VpZ2h0ID8/IHByb2R1Y3Qud2VpZ2h0LFxyXG4gICAgICAgIHF1YW50aXR5OiAoaXRlbS5xdWFudGl0eSB8fCAwKSArIChxdWFudGl0eSB8fCAwKSxcclxuICAgICAgICBwcmljZVBhaWQsXHJcbiAgICAgICAgY2F0ZWdvcmllczogcHJvZHVjdC5jYXRlZ29yaWVzID8/IFtdLFxyXG4gICAgICAgIGlzR2lmdCxcclxuICAgICAgICBjb3N0UHJpY2U6IGl0ZW0/LmNvc3RQcmljZSxcclxuICAgICAgfVxyXG4gICAgKX1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgZ2V0UHJvZHVjdFByaWNlID0gKHtcclxuICAgIHByb2R1Y3QsXHJcbiAgICBzaG9wLFxyXG4gICAgaXNTdWJzY3JpYmVyLFxyXG4gIH06IHtcclxuICAgIHByb2R1Y3Q6IExpbmVJdGVtXHJcbiAgICBzaG9wOiBTaG9wc1xyXG4gICAgaXNTdWJzY3JpYmVyOiBib29sZWFuXHJcbiAgfSk6IG51bWJlciA9PiB7XHJcbiAgICBjb25zdCBpbmZvID0gcHJvZHVjdC5nZXRJbmZvQnlTaG9wKHNob3ApXHJcblxyXG4gICAgaWYgKHByb2R1Y3QuaXNHaWZ0KSByZXR1cm4gMFxyXG5cclxuICAgIHJldHVybiBpc1N1YnNjcmliZXIgJiYgaW5mby5zdWJzY3JpYmVyUHJpY2UgPiAwID8gaW5mby5zdWJzY3JpYmVyUHJpY2UgOiBpbmZvLnByaWNlXHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGNoZWNrTWF4U3RvY2sgPSAoaXRlbTogTGluZUl0ZW0sIHF1YW50aXR5OiBudW1iZXIpID0+IHtcclxuICAgIGNvbnN0IG1heFN0b2NrID0gaXRlbS5zdG9jaz8ucXVhbnRpdHkgfHwgMFxyXG4gICAgY29uc3QgY3VycmVudEl0ZW1BbW91bnQgPSBpdGVtLnF1YW50aXR5IHx8IDBcclxuXHJcbiAgICByZXR1cm4gY3VycmVudEl0ZW1BbW91bnQgKyBxdWFudGl0eSA+IG1heFN0b2NrXHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGdldEZpbmFuY2lhbERpc2NvdW50KGNvdXBvbjogQ291cG9uICYgeyBpZDogc3RyaW5nIH0pOiAoc3ViVG90YWxQcmljZTogbnVtYmVyKSA9PiBudW1iZXIge1xyXG4gICAgcmV0dXJuIChzdWJUb3RhbFByaWNlKSA9PiB7XHJcbiAgICAgIGlmIChGaW5hbmNpYWxDb3Vwb24uaXNGaW5hbmNpYWxDb3Vwb24oY291cG9uKSlcclxuICAgICAgICBzd2l0Y2ggKGNvdXBvbi5zdWJ0eXBlKSB7XHJcbiAgICAgICAgICBjYXNlIENvdXBvblN1YnR5cGVzLkFCU09MVVRFOlxyXG4gICAgICAgICAgICByZXR1cm4gc3ViVG90YWxQcmljZSAtIGNvdXBvbi5kaXNjb3VudCAqIDEwMFxyXG4gICAgICAgICAgY2FzZSBDb3Vwb25TdWJ0eXBlcy5QRVJDRU5UQUdFOlxyXG4gICAgICAgICAgICByZXR1cm4gc3ViVG90YWxQcmljZSAqICgxIC0gY291cG9uLmRpc2NvdW50IC8gMTAwKVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbn1cclxuIl19
|
|
208
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FydC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvY29ubmVjdC1hbmd1bGFyL3NyYy9zZXJ2aWNlcy9jYXJ0LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFBO0FBQ2xELE9BQU8sRUFDTCxRQUFRLEVBRVIsY0FBYyxFQUNkLFdBQVcsRUFDWCxlQUFlLEVBQ2YsS0FBSyxFQUNMLFFBQVEsRUFFUixLQUFLLEVBRUwsS0FBSyxFQUNOLE1BQU0sbUJBQW1CLENBQUE7QUFDMUIsT0FBTyxFQUFFLElBQUksRUFBRSxHQUFHLEVBQWMsRUFBRSxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQTtBQUN6RCxPQUFPLEVBQUUsVUFBVSxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsUUFBUSxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFBO0FBRTFFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxXQUFXLENBQUE7QUFFeEMsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFBO0FBQzVDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQTs7Ozs7QUFRcEQsTUFBTSxPQUFPLFdBQVc7SUFHdEIsWUFDbUIsV0FBd0IsRUFDeEIsZUFBZ0MsRUFDVixXQUFrQixFQUNYLGlCQUFvQztRQUhqRSxnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQUN4QixvQkFBZSxHQUFmLGVBQWUsQ0FBaUI7UUFDVixnQkFBVyxHQUFYLFdBQVcsQ0FBTztRQUNYLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBbUI7UUFONUUsZ0JBQVcsR0FBa0IsSUFBSSxPQUFPLEVBQUUsQ0FBQTtRQXdJMUMseUJBQW9CLEdBQUcsQ0FBQyxRQUFrQixFQUFFLFFBQWdCLEVBQUUsUUFBbUIsRUFBb0IsRUFBRSxDQUM3RyxD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QVk7OzBCQUNuQixNQUFNOzJCQUFDLG1CQUFtQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXHJcbmltcG9ydCB7XHJcbiAgQ2hlY2tvdXQsXHJcbiAgQ291cG9uLFxyXG4gIENvdXBvblN1YnR5cGVzLFxyXG4gIENvdXBvblR5cGVzLFxyXG4gIEZpbmFuY2lhbENvdXBvbixcclxuICBpc05pbCxcclxuICBMaW5lSXRlbSxcclxuICBQcm9kdWN0UmVwb3NpdG9yeSxcclxuICBTaG9wcyxcclxuICBVc2VyLFxyXG4gIFdoZXJlXHJcbn0gZnJvbSAnQGluZnJhYjRhL2Nvbm5lY3QnXHJcbmltcG9ydCB7IGZyb20sIGlpZiwgT2JzZXJ2YWJsZSwgb2YsIFN1YmplY3QgfSBmcm9tICdyeGpzJ1xyXG5pbXBvcnQgeyBjYXRjaEVycm9yLCBjb25jYXRNYXAsIG1hcCwgbWVyZ2VNYXAsIHRhcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJ1xyXG5cclxuaW1wb3J0IHsgREVGQVVMVF9TSE9QIH0gZnJvbSAnLi4vY29uc3RzJ1xyXG5cclxuaW1wb3J0IHsgQXV0aFNlcnZpY2UgfSBmcm9tICcuL2F1dGguc2VydmljZSdcclxuaW1wb3J0IHsgQ2hlY2tvdXRTZXJ2aWNlIH0gZnJvbSAnLi9jaGVja291dC5zZXJ2aWNlJ1xyXG5pbXBvcnQgeyBSZXF1aXJlZENoZWNrb3V0RGF0YSB9IGZyb20gJy4vdHlwZXMnXHJcblxyXG5leHBvcnQgdHlwZSBDYXJ0ID0ge1xyXG4gIFtpZDogc3RyaW5nXTogTGluZUl0ZW1cclxufVxyXG5cclxuQEluamVjdGFibGUoKVxyXG5leHBvcnQgY2xhc3MgQ2FydFNlcnZpY2Uge1xyXG4gIHByaXZhdGUgY2FydFN1YmplY3Q6IFN1YmplY3Q8Q2FydD4gPSBuZXcgU3ViamVjdCgpXHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSByZWFkb25seSBhdXRoU2VydmljZTogQXV0aFNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IGNoZWNrb3V0U2VydmljZTogQ2hlY2tvdXRTZXJ2aWNlLFxyXG4gICAgQEluamVjdChERUZBVUxUX1NIT1ApIHByaXZhdGUgcmVhZG9ubHkgZGVmYXVsdFNob3A6IFNob3BzLFxyXG4gICAgQEluamVjdCgnUHJvZHVjdFJlcG9zaXRvcnknKSBwcml2YXRlIHJlYWRvbmx5IHByb2R1Y3RSZXBvc2l0b3J5OiBQcm9kdWN0UmVwb3NpdG9yeSxcclxuICApIHt9XHJcblxyXG4gIGFkZEl0ZW0oaXRlbTogTGluZUl0ZW0sIHF1YW50aXR5OiBudW1iZXIgPSAxKTogT2JzZXJ2YWJsZTxDYXJ0PiB7XHJcblxyXG4gICAgcmV0dXJuIGZyb20odGhpcy5jaGVja291dFNlcnZpY2UuZ2V0Q2hlY2tvdXQoKSlcclxuICAgICAgLnBpcGUoXHJcbiAgICAgICAgY29uY2F0TWFwKGNoZWNrb3V0ID0+IHRoaXMuYnVpbGRMaW5lSXRlbSh7IGNoZWNrb3V0LCBpdGVtLCBxdWFudGl0eTogcXVhbnRpdHkgfHwgMSB9KSksXHJcbiAgICAgICAgbWVyZ2VNYXAoKHtjaGVja291dCwgbGluZUl0ZW19KSA9PiB0aGlzLnVwZGF0ZUxpbmVJdGVtSW5DYXJ0KGxpbmVJdGVtLCBxdWFudGl0eSB8fCAxLCBjaGVja291dCBhcyBDaGVja291dCkpLFxyXG4gICAgICAgIHRhcCgoY2FydCkgPT4gdGhpcy5jYXJ0U3ViamVjdC5uZXh0KGNhcnQpKVxyXG4gICAgICApXHJcbiAgICBcclxuICAgIC8vIC5waXBlKFxyXG4gICAgLy8gICBjb25jYXRNYXAoKHsgY2hlY2tvdXQsIGxpbmVJdGVtIH0pID0+IHRoaXMudXBkYXRlTGluZUl0ZW1JbkNhcnQobGluZUl0ZW0sIHF1YW50aXR5IHx8IDEsIGNoZWNrb3V0KSksXHJcbiAgICAvLyAgIHRhcCgoY2FydCkgPT4gdGhpcy5jYXJ0U3ViamVjdC5uZXh0KGNhcnQpKSxcclxuICAgIC8vIClcclxuICAgIC8vIHJldHVybiB0aGlzLmNoZWNrb3V0U2VydmljZS5nZXRDaGVja291dCgpLnBpcGUoXHJcbiAgICAvLyAgIG1hcCggYXN5bmMoY2hlY2tvdXQpID0+ICh7XHJcbiAgICAvLyAgICAgY2hlY2tvdXQsXHJcbiAgICAvLyAgICAgbGluZUl0ZW06IGF3YWl0IHRoaXMuYnVpbGRMaW5lSXRlbSh7IGNoZWNrb3V0LCBpdGVtLCBxdWFudGl0eTogcXVhbnRpdHkgfHwgMSB9KSxcclxuICAgIC8vICAgfSkpLFxyXG4gICAgLy8gICBjb25jYXRNYXAoKHsgY2hlY2tvdXQsIGxpbmVJdGVtIH0pID0+IHRoaXMudXBkYXRlTGluZUl0ZW1JbkNhcnQobGluZUl0ZW0sIHF1YW50aXR5IHx8IDEsIGNoZWNrb3V0KSksXHJcbiAgICAvLyAgIHRhcCgoY2FydCkgPT4gdGhpcy5jYXJ0U3ViamVjdC5uZXh0KGNhcnQpKSxcclxuICAgIC8vIClcclxuICB9XHJcblxyXG4gIGRlY3JlYXNlSXRlbShpdGVtOiBMaW5lSXRlbSk6IE9ic2VydmFibGU8Q2FydD4ge1xyXG4gICAgcmV0dXJuIHRoaXMuY2hlY2tvdXRTZXJ2aWNlLmdldENoZWNrb3V0KCkucGlwZShcclxuICAgICAgbWFwKChjaGVja291dCkgPT4ge1xyXG4gICAgICAgIGNvbnN0IGNoZWNrb3V0SXRlbSA9IGNoZWNrb3V0LmxpbmVJdGVtcz8uZmluZCgobGluZUl0ZW0pID0+IGxpbmVJdGVtLnNrdSA9PT0gaXRlbS5za3UpXHJcblxyXG4gICAgICAgIGlmICghaXNOaWwoY2hlY2tvdXRJdGVtKSkgY2hlY2tvdXRJdGVtLnF1YW50aXR5IC09IGNoZWNrb3V0SXRlbS5xdWFudGl0eSA+IDEgPyAxIDogMFxyXG5cclxuICAgICAgICByZXR1cm4gY2hlY2tvdXRcclxuICAgICAgfSksXHJcbiAgICAgIGNvbmNhdE1hcCgoY2hlY2tvdXQpID0+IHRoaXMuY2hlY2tvdXRTZXJ2aWNlLnVwZGF0ZUNoZWNrb3V0TGluZUl0ZW1zKGNoZWNrb3V0KSksXHJcbiAgICAgIG1hcCgoY2hlY2tvdXQpID0+IHRoaXMuZ2VuZXJhdGVDYXJ0T2JqZWN0KGNoZWNrb3V0LmxpbmVJdGVtcykpLFxyXG4gICAgICB0YXAoKGNhcnQpID0+IHRoaXMuY2FydFN1YmplY3QubmV4dChjYXJ0KSksXHJcbiAgICApXHJcbiAgfVxyXG5cclxuICBnZXRDYXJ0KGNoZWNrb3V0PzogUmVxdWlyZWRDaGVja291dERhdGEpOiBPYnNlcnZhYmxlPENhcnQ+IHtcclxuICAgIHRoaXMuYnVpbGRDYXJ0RnJvbUNoZWNrb3V0KGNoZWNrb3V0KS5zdWJzY3JpYmUoKGNhcnQpID0+IHRoaXMuY2FydFN1YmplY3QubmV4dChjYXJ0KSlcclxuXHJcbiAgICByZXR1cm4gdGhpcy5jYXJ0U3ViamVjdFxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQGRlcHJlY2F0ZWQgVGhlIG1ldGhvZCBzaG91bGQgbm90IGJlIHVzZWRcclxuICAgKi9cclxuICBnZXREaXNjb3VudChjb3Vwb246IENvdXBvbiAmIHsgaWQ6IHN0cmluZyB9KTogKHN1YlRvdGFsUHJpY2U6IG51bWJlcikgPT4gbnVtYmVyIHtcclxuICAgIHN3aXRjaCAoY291cG9uLnR5cGUpIHtcclxuICAgICAgY2FzZSBDb3Vwb25UeXBlcy5GSU5BTkNJQUw6XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0RmluYW5jaWFsRGlzY291bnQoY291cG9uKVxyXG4gICAgICBjYXNlIENvdXBvblR5cGVzLlBST0RVQ1Q6XHJcbiAgICAgICAgcmV0dXJuIChzdWJUb3RhbFByaWNlOiBudW1iZXIpID0+IHN1YlRvdGFsUHJpY2VcclxuICAgICAgY2FzZSBDb3Vwb25UeXBlcy5HSUZUQ0FSRDpcclxuICAgICAgICByZXR1cm4gdGhpcy5nZXRGaW5hbmNpYWxEaXNjb3VudChjb3Vwb24pXHJcbiAgICAgIGNhc2UgQ291cG9uVHlwZXMuVk9VQ0hFUjpcclxuICAgICAgICByZXR1cm4gKHN1YlRvdGFsUHJpY2U6IG51bWJlcikgPT4gc3ViVG90YWxQcmljZVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQGRlcHJlY2F0ZWQgVGhlIG1ldGhvZCBzaG91bGQgbm90IGJlIHVzZWRcclxuICAgKi9cclxuICBnZXRWYXJpYW50UHJpY2VEaXNjb3VudChpdGVtOiBMaW5lSXRlbSwgc2hvcDogU2hvcHMpOiBPYnNlcnZhYmxlPG51bWJlcj4ge1xyXG4gICAgcmV0dXJuIHRoaXMuYXV0aFNlcnZpY2UuZ2V0VXNlcigpLnBpcGUoXHJcbiAgICAgIGNvbmNhdE1hcCgodXNlcikgPT5cclxuICAgICAgICBpaWYoXHJcbiAgICAgICAgICAoKSA9PiB1c2VyLmlzU3Vic2NyaWJlciAmJiAhIWl0ZW0uZ2V0SW5mb0J5U2hvcChzaG9wKS5zdWJzY3JpYmVyUHJpY2UsXHJcbiAgICAgICAgICBvZihpdGVtLmdldEluZm9CeVNob3Aoc2hvcCkuc3Vic2NyaWJlclByaWNlKSxcclxuICAgICAgICAgIG9mKGl0ZW0uZ2V0SW5mb0J5U2hvcChzaG9wKS5wcmljZSksXHJcbiAgICAgICAgKSxcclxuICAgICAgKSxcclxuICAgICAgY2F0Y2hFcnJvcigoKSA9PiBvZihpdGVtLmdldEluZm9CeVNob3Aoc2hvcCkucHJpY2UpKSxcclxuICAgIClcclxuICB9XHJcblxyXG4gIHJlbW92ZUl0ZW0oaXRlbTogTGluZUl0ZW0pOiBPYnNlcnZhYmxlPENhcnQ+IHtcclxuICAgIHJldHVybiB0aGlzLmNoZWNrb3V0U2VydmljZS5nZXRDaGVja291dCgpLnBpcGUoXHJcbiAgICAgIG1hcCgoY2hlY2tvdXQpID0+IHtcclxuICAgICAgICBjb25zdCBpbmRleCA9IGNoZWNrb3V0LmxpbmVJdGVtcy5maW5kSW5kZXgoKGxpbmVJdGVtKSA9PiBsaW5lSXRlbS5za3UgPT09IGl0ZW0uc2t1KVxyXG5cclxuICAgICAgICBpZiAoaW5kZXggPj0gMCkgY2hlY2tvdXQubGluZUl0ZW1zLnNwbGljZShpbmRleCwgMSlcclxuXHJcbiAgICAgICAgcmV0dXJuIGNoZWNrb3V0XHJcbiAgICAgIH0pLFxyXG4gICAgICBjb25jYXRNYXAoKGNoZWNrb3V0KSA9PiB0aGlzLmNoZWNrb3V0U2VydmljZS51cGRhdGVDaGVja291dExpbmVJdGVtcyhjaGVja291dCkpLFxyXG4gICAgICBtYXAoKGNoZWNrb3V0KSA9PiB0aGlzLmdlbmVyYXRlQ2FydE9iamVjdChjaGVja291dC5saW5lSXRlbXMpKSxcclxuICAgICAgdGFwKChjYXJ0KSA9PiB0aGlzLmNhcnRTdWJqZWN0Lm5leHQoY2FydCkpLFxyXG4gICAgKVxyXG4gIH1cclxuXHJcbiAgdXBkYXRlVXNlckNhcnQodXNlcjogVXNlcik6IE9ic2VydmFibGU8Q2FydD4ge1xyXG4gICAgcmV0dXJuIHRoaXMuY2hlY2tvdXRTZXJ2aWNlLmdldENoZWNrb3V0KCkucGlwZShcclxuICAgICAgY29uY2F0TWFwKChjaGVja291dCkgPT5cclxuICAgICAgICB0aGlzLmNoZWNrb3V0U2VydmljZS51cGRhdGVDaGVja291dFVzZXIoQ2hlY2tvdXQudG9JbnN0YW5jZSh7IC4uLmNoZWNrb3V0LnRvUGxhaW4oKSwgdXNlciB9KSksXHJcbiAgICAgICksXHJcbiAgICAgIGNvbmNhdE1hcCgoY2hlY2tvdXQpID0+XHJcbiAgICAgICAgdGhpcy5jaGVja291dFNlcnZpY2UudXBkYXRlQ2hlY2tvdXRMaW5lSXRlbXMoXHJcbiAgICAgICAgICBDaGVja291dC50b0luc3RhbmNlKHtcclxuICAgICAgICAgICAgLi4uY2hlY2tvdXQudG9QbGFpbigpLFxyXG4gICAgICAgICAgICBsaW5lSXRlbXM6IGNoZWNrb3V0LmxpbmVJdGVtcz8ubWFwKGFzeW5jIChpdGVtKSA9PiBhd2FpdCB0aGlzLmJ1aWxkTGluZUl0ZW0oeyBjaGVja291dCwgaXRlbSB9KSkgfHwgW10sXHJcbiAgICAgICAgICB9KSxcclxuICAgICAgICApLFxyXG4gICAgICApLFxyXG4gICAgICBtYXAoKGNoZWNrb3V0KSA9PiB0aGlzLmdlbmVyYXRlQ2FydE9iamVjdChjaGVja291dC5saW5lSXRlbXMpKSxcclxuICAgICAgdGFwKChjYXJ0KSA9PiB0aGlzLmNhcnRTdWJqZWN0Lm5leHQoY2FydCkpLFxyXG4gICAgKVxyXG4gIH1cclxuXHJcbiAgY2xlYXJDYXJ0KCk6IE9ic2VydmFibGU8Q2FydD4ge1xyXG4gICAgcmV0dXJuIHRoaXMuY2hlY2tvdXRTZXJ2aWNlLmdldENoZWNrb3V0KCkucGlwZShcclxuICAgICAgbWFwKChjaGVja291dCkgPT4ge1xyXG4gICAgICAgIHRoaXMuY2hlY2tvdXRTZXJ2aWNlLmNsZWFyQ2hlY2tvdXRGcm9tU2Vzc2lvbigpXHJcbiAgICAgICAgcmV0dXJuIGNoZWNrb3V0XHJcbiAgICAgIH0pLFxyXG4gICAgICBjb25jYXRNYXAoKG9sZENoZWNrb3V0KSA9PiB0aGlzLmJ1aWxkQ2FydEZyb21DaGVja291dChvbGRDaGVja291dCkpLFxyXG4gICAgICB0YXAoKGNhcnQpID0+IHRoaXMuY2FydFN1YmplY3QubmV4dChjYXJ0KSksXHJcbiAgICApXHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGJ1aWxkQ2FydEZyb21DaGVja291dChjaGVja291dERhdGE/OiBSZXF1aXJlZENoZWNrb3V0RGF0YSk6IE9ic2VydmFibGU8Q2FydD4ge1xyXG4gICAgcmV0dXJuIHRoaXMuY2hlY2tvdXRTZXJ2aWNlLmdldENoZWNrb3V0KGNoZWNrb3V0RGF0YSkucGlwZShcclxuICAgICAgbWFwKChjaGVja291dCkgPT4gY2hlY2tvdXQubGluZUl0ZW1zKSxcclxuICAgICAgY29uY2F0TWFwKChsaW5lSXRlbXMpID0+IG9mKHRoaXMuZ2VuZXJhdGVDYXJ0T2JqZWN0KGxpbmVJdGVtcykpKSxcclxuICAgIClcclxuICB9XHJcblxyXG4gIHByaXZhdGUgdXBkYXRlTGluZUl0ZW1JbkNhcnQgPSAobGluZUl0ZW06IExpbmVJdGVtLCBxdWFudGl0eTogbnVtYmVyLCBjaGVja291dD86IENoZWNrb3V0KTogT2JzZXJ2YWJsZTxDYXJ0PiA9PlxyXG4gICAgKGlzTmlsKGNoZWNrb3V0KSA/IHRoaXMuY2hlY2tvdXRTZXJ2aWNlLmdldENoZWNrb3V0KCkgOiBvZihjaGVja291dCkpLnBpcGUoXHJcbiAgICAgIGNvbmNhdE1hcCgoY2hlY2tvdXRMb2FkZWQpID0+IHtcclxuICAgICAgICBjb25zb2xlLmxvZygndXBkYXRlTGluZUl0ZW1JbkNhcnQxJywgY2hlY2tvdXRMb2FkZWQpXHJcbiAgICAgICAgY29uc3QgaXRlbXM6IExpbmVJdGVtW10gPSBbXVxyXG4gICAgICAgIGNvbnN0IGluZGV4ID0gY2hlY2tvdXRMb2FkZWQubGluZUl0ZW1zPy5tYXAoKGNoZWNrb3V0SXRlbSkgPT4gY2hlY2tvdXRJdGVtLnNrdSkuaW5kZXhPZihsaW5lSXRlbS5za3UpXHJcblxyXG4gICAgICAgIGlmIChpbmRleCA+IC0xKSB7XHJcbiAgICAgICAgICBjaGVja291dExvYWRlZC5saW5lSXRlbXNbaW5kZXhdLnF1YW50aXR5ICs9IHF1YW50aXR5XHJcbiAgICAgICAgICBjaGVja291dExvYWRlZC5saW5lSXRlbXNbaW5kZXhdLnByaWNlUGFpZCA9IGxpbmVJdGVtLnByaWNlUGFpZFxyXG4gICAgICAgIH0gZWxzZVxyXG4gICAgICAgICAgY2hlY2tvdXRMb2FkZWQubGluZUl0ZW1zID0gaXRlbXMuY29uY2F0KFxyXG4gICAgICAgICAgICBjaGVja291dExvYWRlZC5saW5lSXRlbXMgPyBjaGVja291dExvYWRlZC5saW5lSXRlbXMuY29uY2F0KFtsaW5lSXRlbV0pIDogW2xpbmVJdGVtXSxcclxuICAgICAgICAgIClcclxuICAgICAgICBcclxuICAgICAgICByZXR1cm4gdGhpcy5jaGVja291dFNlcnZpY2VcclxuICAgICAgICAgIC51cGRhdGVDaGVja291dExpbmVJdGVtcyhjaGVja291dExvYWRlZClcclxuICAgICAgICAgIC5waXBlKG1hcCgodXBkYXRlZENoZWNrb3V0KSA9PiB0aGlzLmdlbmVyYXRlQ2FydE9iamVjdCh1cGRhdGVkQ2hlY2tvdXQubGluZUl0ZW1zKSkpXHJcbiAgICAgIH0pLFxyXG4gICAgKVxyXG4gICAgXHJcbiAgcHJpdmF0ZSBnZW5lcmF0ZUNhcnRPYmplY3QgPSAoaXRlbXM6IExpbmVJdGVtW10pOiBDYXJ0ID0+IHtcclxuICAgIGNvbnN0IGNhcnQ6IENhcnQgPSB7fVxyXG5cclxuICAgIGl0ZW1zPy5mb3JFYWNoKFxyXG4gICAgICAoaXRlbSkgPT5cclxuICAgICAgICAoY2FydFtpdGVtLnNrdV0gPSBMaW5lSXRlbS50b0luc3RhbmNlKHtcclxuICAgICAgICAgIC4uLihjYXJ0W2l0ZW0uc2t1XSB8fCBpdGVtKSxcclxuICAgICAgICAgIHF1YW50aXR5OiAoY2FydFtpdGVtLnNrdV0/LnF1YW50aXR5IHx8IDApICsgKGl0ZW0ucXVhbnRpdHkgPyBpdGVtLnF1YW50aXR5IDogMSksXHJcbiAgICAgICAgfSkpLFxyXG4gICAgKVxyXG5cclxuICAgIHJldHVybiBjYXJ0XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGJ1aWxkTGluZUl0ZW0gPSBhc3luYyAoe1xyXG4gICAgY2hlY2tvdXQsXHJcbiAgICBpdGVtLFxyXG4gICAgcXVhbnRpdHksXHJcbiAgfToge1xyXG4gICAgY2hlY2tvdXQ6IFJlcXVpcmVkQ2hlY2tvdXREYXRhXHJcbiAgICBpdGVtOiBMaW5lSXRlbVxyXG4gICAgcXVhbnRpdHk/OiBudW1iZXJcclxuICB9KSA9PiB7XHJcblxyXG4gICAgY29uc3QgcHJvZHVjdCA9IGF3YWl0IHRoaXMucHJvZHVjdFJlcG9zaXRvcnlcclxuICAgICAgLmZpbmQoeyBmaWx0ZXJzOiB7IGlkOiB7IG9wZXJhdG9yOiBXaGVyZS5FUVVBTFMsIHZhbHVlOiBpdGVtLmlkIH0gfX0pXHJcbiAgICAgIC50aGVuKChwcm9kdWN0ID0+IHByb2R1Y3QuZGF0YS5zaGlmdCgpKSlcclxuXHJcbiAgICBjb25zb2xlLmxvZygncHJvZHVjdFJlcG9zaXRvcnkgYnkgaWQnLCBwcm9kdWN0KSAgICAgIFxyXG4gICAgY29uc29sZS5sb2coJ2J1aWxkTGluZUl0ZW0nLCBjaGVja291dCwgaXRlbSwgcXVhbnRpdHkpXHJcbiAgICBpdGVtLnF1YW50aXR5ID0gaXRlbT8ucXVhbnRpdHkgfHwgY2hlY2tvdXQ/LmxpbmVJdGVtcz8uZmluZCgobGluZUl0ZW0pID0+IGxpbmVJdGVtLnNrdSA9PT0gaXRlbS5za3UpPy5xdWFudGl0eSB8fCAwXHJcblxyXG4gICAgaWYgKHRoaXMuY2hlY2tNYXhTdG9jayhpdGVtLCBxdWFudGl0eSB8fCAwKSlcclxuICAgICAgdGhyb3cgbmV3IEVycm9yKCdEZXNjdWxwZSEgVGVtb3MgYXBlbmFzICcgKyBpdGVtLnN0b2NrPy5xdWFudGl0eSArICcgZW0gZXN0b3F1ZS4nKVxyXG5cclxuICAgIGNvbnN0IGltYWdlID0gaXRlbS5pbWFnZSB8fCBpdGVtLmltYWdlcz8uc2hpZnQoKVxyXG4gICAgY29uc3QgeyBpZCwgbmFtZSwgRUFOLCBicmFuZCwgc2x1Zywgc3RvY2ssIHByaWNlLCB3ZWlnaHQsIGNhdGVnb3JpZXMsIHNrdSB9ID0gaXRlbVxyXG4gICAgY29uc3QgaXNHaWZ0ID0gaXRlbS5pc0dpZnQgfHwgbnVsbFxyXG4gICAgY29uc3QgcHJpY2VQYWlkID0gdGhpcy5nZXRQcm9kdWN0UHJpY2Uoe1xyXG4gICAgICBwcm9kdWN0OiBpdGVtLFxyXG4gICAgICBzaG9wOiBjaGVja291dC5zaG9wIHx8IHRoaXMuZGVmYXVsdFNob3AsXHJcbiAgICAgIGlzU3Vic2NyaWJlcjogY2hlY2tvdXQudXNlcj8uaXNTdWJzY3JpYmVyLFxyXG4gICAgfSlcclxuXHJcbiAgICBjb25zb2xlLmxvZygnTGluZUl0ZW0udG9JbnN0YW5jZScsIEpTT04uc3RyaW5naWZ5KHtcclxuICAgICAgaWQsXHJcbiAgICAgIG5hbWUsXHJcbiAgICAgIEVBTixcclxuICAgICAgYnJhbmQ6IHByb2R1Y3QuYnJhbmQsXHJcbiAgICAgIHNsdWcsXHJcbiAgICAgIHNrdSxcclxuICAgICAgc3RvY2ssXHJcbiAgICAgIHByaWNlLFxyXG4gICAgICBpbWFnZSxcclxuICAgICAgd2VpZ2h0OiB3ZWlnaHQgPz8gcHJvZHVjdC53ZWlnaHQsXHJcbiAgICAgIHF1YW50aXR5OiAoaXRlbS5xdWFudGl0eSB8fCAwKSArIChxdWFudGl0eSB8fCAwKSxcclxuICAgICAgcHJpY2VQYWlkLFxyXG4gICAgICBjYXRlZ29yaWVzOiBwcm9kdWN0LmNhdGVnb3JpZXMgPz8gW10sXHJcbiAgICAgIGlzR2lmdCxcclxuICAgICAgY29zdFByaWNlOiBpdGVtPy5jb3N0UHJpY2VcclxuICAgIH0pKVxyXG4gICAgIFxyXG4gICAgcmV0dXJuIHtcclxuICAgICAgY2hlY2tvdXQsIFxyXG4gICAgICBsaW5lSXRlbTogTGluZUl0ZW0udG9JbnN0YW5jZSh7XHJcbiAgICAgICAgaWQsXHJcbiAgICAgICAgbmFtZSxcclxuICAgICAgICBFQU46IEVBTiA/PyBwcm9kdWN0LkVBTixcclxuICAgICAgICBicmFuZDogcHJvZHVjdC5icmFuZCxcclxuICAgICAgICBzbHVnLFxyXG4gICAgICAgIHNrdSxcclxuICAgICAgICBzdG9jayxcclxuICAgICAgICBwcmljZSxcclxuICAgICAgICBpbWFnZSxcclxuICAgICAgICB3ZWlnaHQ6IHdlaWdodCA/PyBwcm9kdWN0LndlaWdodCxcclxuICAgICAgICBxdWFudGl0eTogKGl0ZW0ucXVhbnRpdHkgfHwgMCkgKyAocXVhbnRpdHkgfHwgMCksXHJcbiAgICAgICAgcHJpY2VQYWlkLFxyXG4gICAgICAgIGNhdGVnb3JpZXM6IHByb2R1Y3QuY2F0ZWdvcmllcyA/PyBbXSxcclxuICAgICAgICBpc0dpZnQ6IGlzR2lmdCA/PyBudWxsLFxyXG4gICAgICAgIGNvc3RQcmljZTogaXRlbT8uY29zdFByaWNlLFxyXG4gICAgICB9XHJcbiAgICApfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBnZXRQcm9kdWN0UHJpY2UgPSAoe1xyXG4gICAgcHJvZHVjdCxcclxuICAgIHNob3AsXHJcbiAgICBpc1N1YnNjcmliZXIsXHJcbiAgfToge1xyXG4gICAgcHJvZHVjdDogTGluZUl0ZW1cclxuICAgIHNob3A6IFNob3BzXHJcbiAgICBpc1N1YnNjcmliZXI6IGJvb2xlYW5cclxuICB9KTogbnVtYmVyID0+IHtcclxuICAgIGNvbnN0IGluZm8gPSBwcm9kdWN0LmdldEluZm9CeVNob3Aoc2hvcClcclxuXHJcbiAgICBpZiAocHJvZHVjdC5pc0dpZnQpIHJldHVybiAwXHJcblxyXG4gICAgcmV0dXJuIGlzU3Vic2NyaWJlciAmJiBpbmZvLnN1YnNjcmliZXJQcmljZSA+IDAgPyBpbmZvLnN1YnNjcmliZXJQcmljZSA6IGluZm8ucHJpY2VcclxuICB9XHJcblxyXG4gIHByaXZhdGUgY2hlY2tNYXhTdG9jayA9IChpdGVtOiBMaW5lSXRlbSwgcXVhbnRpdHk6IG51bWJlcikgPT4ge1xyXG4gICAgY29uc3QgbWF4U3RvY2sgPSBpdGVtLnN0b2NrPy5xdWFudGl0eSB8fCAwXHJcbiAgICBjb25zdCBjdXJyZW50SXRlbUFtb3VudCA9IGl0ZW0ucXVhbnRpdHkgfHwgMFxyXG5cclxuICAgIHJldHVybiBjdXJyZW50SXRlbUFtb3VudCArIHF1YW50aXR5ID4gbWF4U3RvY2tcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZ2V0RmluYW5jaWFsRGlzY291bnQoY291cG9uOiBDb3Vwb24gJiB7IGlkOiBzdHJpbmcgfSk6IChzdWJUb3RhbFByaWNlOiBudW1iZXIpID0+IG51bWJlciB7XHJcbiAgICByZXR1cm4gKHN1YlRvdGFsUHJpY2UpID0+IHtcclxuICAgICAgaWYgKEZpbmFuY2lhbENvdXBvbi5pc0ZpbmFuY2lhbENvdXBvbihjb3Vwb24pKVxyXG4gICAgICAgIHN3aXRjaCAoY291cG9uLnN1YnR5cGUpIHtcclxuICAgICAgICAgIGNhc2UgQ291cG9uU3VidHlwZXMuQUJTT0xVVEU6XHJcbiAgICAgICAgICAgIHJldHVybiBzdWJUb3RhbFByaWNlIC0gY291cG9uLmRpc2NvdW50ICogMTAwXHJcbiAgICAgICAgICBjYXNlIENvdXBvblN1YnR5cGVzLlBFUkNFTlRBR0U6XHJcbiAgICAgICAgICAgIHJldHVybiBzdWJUb3RhbFByaWNlICogKDEgLSBjb3Vwb24uZGlzY291bnQgLyAxMDApXHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iXX0=
|
|
@@ -271,7 +271,7 @@ class CartService {
|
|
|
271
271
|
lineItem: LineItem.toInstance({
|
|
272
272
|
id,
|
|
273
273
|
name,
|
|
274
|
-
EAN,
|
|
274
|
+
EAN: EAN !== null && EAN !== void 0 ? EAN : product.EAN,
|
|
275
275
|
brand: product.brand,
|
|
276
276
|
slug,
|
|
277
277
|
sku,
|
|
@@ -282,7 +282,7 @@ class CartService {
|
|
|
282
282
|
quantity: (item.quantity || 0) + (quantity || 0),
|
|
283
283
|
pricePaid,
|
|
284
284
|
categories: (_g = product.categories) !== null && _g !== void 0 ? _g : [],
|
|
285
|
-
isGift,
|
|
285
|
+
isGift: isGift !== null && isGift !== void 0 ? isGift : null,
|
|
286
286
|
costPrice: item === null || item === void 0 ? void 0 : item.costPrice,
|
|
287
287
|
})
|
|
288
288
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"infrab4a-connect-angular.js","sources":["../../../projects/connect-angular/src/services/auth.service.ts","../../../projects/connect-angular/src/consts/default-shop.const.ts","../../../projects/connect-angular/src/consts/es-config.const.ts","../../../projects/connect-angular/src/consts/hasura-options.const.ts","../../../projects/connect-angular/src/services/errors/invalid-coupon.error.ts","../../../projects/connect-angular/src/services/errors/group-invalid-coupon.error.ts","../../../projects/connect-angular/src/services/coupon.service.ts","../../../projects/connect-angular/src/services/checkout.service.ts","../../../projects/connect-angular/src/services/cart.service.ts","../../../projects/connect-angular/src/services/checkout-subscription.service.ts","../../../projects/connect-angular/src/services/order.service.ts","../../../projects/connect-angular/src/services/home-shop.service.ts","../../../projects/connect-angular/src/angular-firebase-auth.module.ts","../../../projects/connect-angular/src/angular-elastic-search.module.ts","../../../projects/connect-angular/src/angular-firestore.module.ts","../../../projects/connect-angular/src/angular-hasura-graphql.module.ts","../../../projects/connect-angular/src/angular-connect.module.ts","../../../projects/connect-angular/src/infrab4a-connect-angular.ts"],"sourcesContent":["import { Injectable, Inject } from '@angular/core'\r\nimport { AngularFireAuth } from '@angular/fire/auth'\r\nimport { User, UserRepository } from '@infrab4a/connect'\r\nimport { combineLatest, Observable, of } from 'rxjs'\r\nimport { catchError, map, mergeMap } from 'rxjs/operators'\r\nimport firebase from 'firebase/app'\r\n\r\n@Injectable()\r\nexport class AuthService {\r\n constructor(\r\n private readonly angularFireAuth: AngularFireAuth,\r\n @Inject('UserRepository') private readonly userRepository: UserRepository,\r\n ) {}\r\n\r\n getAuthstate(): Observable<{ user: User; isAnonymous: boolean }> {\r\n const observables: [Observable<firebase.User>, Observable<User>] = [\r\n this.angularFireAuth.authState.pipe(catchError(() => of(null))),\r\n this.getUser().pipe(catchError(() => of(null))),\r\n ]\r\n\r\n return combineLatest(observables).pipe(\r\n map(([fireUser, user]) => {\r\n return {\r\n user,\r\n isAnonymous: fireUser?.isAnonymous,\r\n } as { user: User; isAnonymous: boolean }\r\n }),\r\n )\r\n }\r\n\r\n getUser(): Observable<User> {\r\n return this.getFireUser().pipe(\r\n map((user) => user?.uid),\r\n mergeMap((id) => (id ? this.userRepository.get({ id }) : of(null))),\r\n )\r\n }\r\n\r\n getTokenId(): Observable<string> {\r\n return this.angularFireAuth.idToken\r\n }\r\n\r\n getFireUser(): Observable<firebase.User> {\r\n return this.angularFireAuth.user.pipe(catchError(() => of(null)))\r\n }\r\n}\r\n","export const DEFAULT_SHOP = 'DEFAULT_SHOP'\r\n","export const ES_CONFIG = 'ES_CONFIG'\r\n","export const HASURA_OPTIONS = 'HASURA_OPTIONS'\r\n","import { CustomError } from 'ts-custom-error'\r\n\r\nexport class InvalidCouponError extends CustomError {\r\n constructor(readonly message) {\r\n super(message)\r\n }\r\n}\r\n","import { CustomError } from 'ts-custom-error'\r\n\r\nimport { InvalidCouponError } from './invalid-coupon.error'\r\n\r\nexport class GroupInvalidCouponError extends CustomError {\r\n constructor(readonly errors: InvalidCouponError[]) {\r\n super('Many coupon errors throw')\r\n }\r\n}\r\n","import { Inject, Injectable } from '@angular/core'\r\nimport {\r\n CheckoutTypes,\r\n Coupon,\r\n CouponRepository,\r\n Exclusivities,\r\n FinancialCoupon,\r\n NotFoundError,\r\n Shops,\r\n Where,\r\n} from '@infrab4a/connect'\r\nimport { from, Observable, throwError, of } from 'rxjs'\r\nimport { concatMap, map } from 'rxjs/operators'\r\n\r\nimport { DEFAULT_SHOP } from '../consts'\r\n\r\nimport { GroupInvalidCouponError, InvalidCouponError } from './errors'\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class CouponService {\r\n constructor(\r\n @Inject('CouponRepository') private readonly couponRepository: CouponRepository,\r\n @Inject(DEFAULT_SHOP) private readonly defaultShop: Shops,\r\n ) {}\r\n\r\n checkCoupon(nickname: string, userEmail: string, checkoutType: CheckoutTypes): Observable<FinancialCoupon[]> {\r\n return from(\r\n this.couponRepository.find({\r\n filters: {\r\n nickname: { operator: Where.EQUALS, value: nickname },\r\n shopAvailability: { operator: Where.EQUALS, value: this.defaultShop },\r\n checkoutType: { operator: Where.EQUALS, value: checkoutType },\r\n },\r\n }),\r\n ).pipe(\r\n concatMap((coupons) =>\r\n coupons.count < 1 ? throwError(() => new NotFoundError('Coupon not found')) : of(coupons.data),\r\n ),\r\n map((coupons) => this.separateValidCoupons(coupons, userEmail)),\r\n map(({ valids, invalids }) => {\r\n if (!valids.length) throw new GroupInvalidCouponError(invalids)\r\n\r\n return valids\r\n }),\r\n )\r\n }\r\n\r\n private isValidCoupon(coupon: FinancialCoupon, userEmail: string): boolean {\r\n if (!this.emailIsFromCollaborator(userEmail) && coupon.exclusivityType === Exclusivities.COLLABORATORS)\r\n throw new InvalidCouponError('User is not a collaborator')\r\n if (coupon.exclusivityType === Exclusivities.SPECIFIC_USER && coupon.recipient !== userEmail)\r\n throw new InvalidCouponError('Coupon is not valid for user')\r\n if (coupon?.expiresIn < new Date()) throw new InvalidCouponError('Coupon is expired')\r\n\r\n return true\r\n }\r\n\r\n private emailIsFromCollaborator = (userEmail: string): boolean => !!userEmail?.match(/@b4a.com.br/g)\r\n\r\n private separateValidCoupons = (\r\n coupons: Coupon[],\r\n userEmail: string,\r\n ): { valids: FinancialCoupon[]; invalids: InvalidCouponError[] } =>\r\n coupons\r\n .map((coupon) => {\r\n try {\r\n if (!FinancialCoupon.isFinancialCoupon(coupon)) throw new InvalidCouponError('Coupon is not valid')\r\n if (this.isValidCoupon(coupon, userEmail)) return coupon\r\n } catch (error) {\r\n return error as InvalidCouponError\r\n }\r\n })\r\n .reduce(\r\n (current, coupon) => ({\r\n ...current,\r\n ...(FinancialCoupon.isFinancialCoupon(coupon)\r\n ? { valids: [...current.valids, coupon] }\r\n : { invalids: [...current.invalids, coupon] }),\r\n }),\r\n {\r\n valids: [] as FinancialCoupon[],\r\n invalids: [] as InvalidCouponError[],\r\n },\r\n )\r\n}\r\n","import { Inject, Injectable } from '@angular/core'\r\nimport {\r\n Checkout,\r\n CheckoutRepository,\r\n CheckoutTypes,\r\n FinancialCoupon,\r\n isNil,\r\n NotFoundError,\r\n OrderRepository,\r\n pick,\r\n Shops,\r\n User,\r\n UserRepository\r\n} from '@infrab4a/connect'\r\nimport cookie from 'js-cookie'\r\nimport { from, Observable, of, throwError } from 'rxjs'\r\nimport { concatMap } from 'rxjs/operators'\r\n\r\nimport { DEFAULT_SHOP } from '../consts'\r\n\r\nimport { CouponService } from './coupon.service'\r\nimport { RequiredCheckoutData } from './types'\r\n\r\n@Injectable()\r\nexport class CheckoutService {\r\n constructor(\r\n private readonly couponService: CouponService,\r\n @Inject('CheckoutRepository') private readonly checkoutRepository: CheckoutRepository,\r\n @Inject('OrderRepository') private readonly orderRepository: OrderRepository,\r\n @Inject('UserRepository') private readonly userRepository: UserRepository,\r\n @Inject(DEFAULT_SHOP) private readonly defaultShop: Shops,\r\n ) {}\r\n\r\n getCheckout(checkoutData?: RequiredCheckoutData): Observable<Checkout> {\r\n const checkoutId = cookie.get('checkoutId')\r\n\r\n if (!isNil(checkoutId)) return from(this.checkoutRepository.get({ id: checkoutId }))\r\n\r\n return from(this.createCheckout(checkoutData))\r\n }\r\n\r\n getUserByCheckout(checkoutId: string): Observable<User> {\r\n return from(this.checkoutRepository.get({ id: checkoutId })).pipe(\r\n concatMap((checkout) =>\r\n checkout?.user?.id ? of(checkout.user) : from(this.userRepository.get({ id: checkout.user.id })),\r\n ),\r\n concatMap((user) => of(user) || throwError(() => new NotFoundError('User is not found'))),\r\n )\r\n }\r\n\r\n updateCheckoutLineItems(checkout: Partial<Checkout>): Observable<Checkout> {\r\n return from(this.checkoutRepository.update(Checkout.toInstance({ id: checkout.id, lineItems: checkout.lineItems })))\r\n }\r\n\r\n updateCheckoutUser(checkout: Partial<Checkout>): Observable<Checkout> {\r\n return from(this.checkoutRepository.update(Checkout.toInstance({ id: checkout.id, user: checkout.user })))\r\n }\r\n\r\n clearCheckoutFromSession(): Observable<void> {\r\n cookie.remove('checkoutId')\r\n\r\n return of()\r\n }\r\n\r\n checkCoupon(nickname: string): Observable<FinancialCoupon> {\r\n return this.getCheckout().pipe(\r\n concatMap((checkout) =>\r\n this.couponService.checkCoupon(nickname, checkout.user?.email, CheckoutTypes.ECOMMERCE).pipe(\r\n concatMap((coupons) => of(coupons.shift())),\r\n concatMap((coupon) =>\r\n !!checkout.user?.email\r\n ? from(\r\n this.orderRepository.find({\r\n filters: { user: { email: checkout.user?.email }, coupon: { id: coupon.id } },\r\n }),\r\n ).pipe(\r\n concatMap((orders) => {\r\n if (orders.data.length >= (coupon.useLimit || Infinity))\r\n return throwError(() => new Error('Coupon is already applied'))\r\n\r\n return of(coupon)\r\n }),\r\n )\r\n : of(coupon),\r\n ),\r\n ),\r\n ),\r\n )\r\n }\r\n\r\n private async createCheckout(checkoutData?: RequiredCheckoutData): Promise<Checkout> {\r\n const checkout = await this.checkoutRepository.create({\r\n createdAt: new Date(),\r\n ...Checkout.toInstance(pick(checkoutData, ['user', 'shop'])).toPlain(),\r\n shop: checkoutData?.shop || this.defaultShop,\r\n })\r\n\r\n cookie.set('checkoutId', checkout.id)\r\n\r\n return checkout\r\n }\r\n}\r\n","import { Inject, Injectable } from '@angular/core'\r\nimport {\r\n Checkout,\r\n Coupon,\r\n CouponSubtypes,\r\n CouponTypes,\r\n FinancialCoupon,\r\n isNil,\r\n LineItem,\r\n ProductRepository,\r\n Shops,\r\n User,\r\n Where\r\n} from '@infrab4a/connect'\r\nimport { from, iif, Observable, of, Subject } from 'rxjs'\r\nimport { catchError, concatMap, map, mergeMap, tap } from 'rxjs/operators'\r\n\r\nimport { DEFAULT_SHOP } from '../consts'\r\n\r\nimport { AuthService } from './auth.service'\r\nimport { CheckoutService } from './checkout.service'\r\nimport { RequiredCheckoutData } from './types'\r\n\r\nexport type Cart = {\r\n [id: string]: LineItem\r\n}\r\n\r\n@Injectable()\r\nexport class CartService {\r\n private cartSubject: Subject<Cart> = new Subject()\r\n\r\n constructor(\r\n private readonly authService: AuthService,\r\n private readonly checkoutService: CheckoutService,\r\n @Inject(DEFAULT_SHOP) private readonly defaultShop: Shops,\r\n @Inject('ProductRepository') private readonly productRepository: ProductRepository,\r\n ) {}\r\n\r\n addItem(item: LineItem, quantity: number = 1): Observable<Cart> {\r\n\r\n return from(this.checkoutService.getCheckout())\r\n .pipe(\r\n concatMap(checkout => this.buildLineItem({ checkout, item, quantity: quantity || 1 })),\r\n mergeMap(({checkout, lineItem}) => this.updateLineItemInCart(lineItem, quantity || 1, checkout as Checkout)),\r\n tap((cart) => this.cartSubject.next(cart))\r\n )\r\n \r\n // .pipe(\r\n // concatMap(({ checkout, lineItem }) => this.updateLineItemInCart(lineItem, quantity || 1, checkout)),\r\n // tap((cart) => this.cartSubject.next(cart)),\r\n // )\r\n // return this.checkoutService.getCheckout().pipe(\r\n // map( async(checkout) => ({\r\n // checkout,\r\n // lineItem: await this.buildLineItem({ checkout, item, quantity: quantity || 1 }),\r\n // })),\r\n // concatMap(({ checkout, lineItem }) => this.updateLineItemInCart(lineItem, quantity || 1, checkout)),\r\n // tap((cart) => this.cartSubject.next(cart)),\r\n // )\r\n }\r\n\r\n decreaseItem(item: LineItem): Observable<Cart> {\r\n return this.checkoutService.getCheckout().pipe(\r\n map((checkout) => {\r\n const checkoutItem = checkout.lineItems?.find((lineItem) => lineItem.sku === item.sku)\r\n\r\n if (!isNil(checkoutItem)) checkoutItem.quantity -= checkoutItem.quantity > 1 ? 1 : 0\r\n\r\n return checkout\r\n }),\r\n concatMap((checkout) => this.checkoutService.updateCheckoutLineItems(checkout)),\r\n map((checkout) => this.generateCartObject(checkout.lineItems)),\r\n tap((cart) => this.cartSubject.next(cart)),\r\n )\r\n }\r\n\r\n getCart(checkout?: RequiredCheckoutData): Observable<Cart> {\r\n this.buildCartFromCheckout(checkout).subscribe((cart) => this.cartSubject.next(cart))\r\n\r\n return this.cartSubject\r\n }\r\n\r\n /**\r\n * @deprecated The method should not be used\r\n */\r\n getDiscount(coupon: Coupon & { id: string }): (subTotalPrice: number) => number {\r\n switch (coupon.type) {\r\n case CouponTypes.FINANCIAL:\r\n return this.getFinancialDiscount(coupon)\r\n case CouponTypes.PRODUCT:\r\n return (subTotalPrice: number) => subTotalPrice\r\n case CouponTypes.GIFTCARD:\r\n return this.getFinancialDiscount(coupon)\r\n case CouponTypes.VOUCHER:\r\n return (subTotalPrice: number) => subTotalPrice\r\n }\r\n }\r\n\r\n /**\r\n * @deprecated The method should not be used\r\n */\r\n getVariantPriceDiscount(item: LineItem, shop: Shops): Observable<number> {\r\n return this.authService.getUser().pipe(\r\n concatMap((user) =>\r\n iif(\r\n () => user.isSubscriber && !!item.getInfoByShop(shop).subscriberPrice,\r\n of(item.getInfoByShop(shop).subscriberPrice),\r\n of(item.getInfoByShop(shop).price),\r\n ),\r\n ),\r\n catchError(() => of(item.getInfoByShop(shop).price)),\r\n )\r\n }\r\n\r\n removeItem(item: LineItem): Observable<Cart> {\r\n return this.checkoutService.getCheckout().pipe(\r\n map((checkout) => {\r\n const index = checkout.lineItems.findIndex((lineItem) => lineItem.sku === item.sku)\r\n\r\n if (index >= 0) checkout.lineItems.splice(index, 1)\r\n\r\n return checkout\r\n }),\r\n concatMap((checkout) => this.checkoutService.updateCheckoutLineItems(checkout)),\r\n map((checkout) => this.generateCartObject(checkout.lineItems)),\r\n tap((cart) => this.cartSubject.next(cart)),\r\n )\r\n }\r\n\r\n updateUserCart(user: User): Observable<Cart> {\r\n return this.checkoutService.getCheckout().pipe(\r\n concatMap((checkout) =>\r\n this.checkoutService.updateCheckoutUser(Checkout.toInstance({ ...checkout.toPlain(), user })),\r\n ),\r\n concatMap((checkout) =>\r\n this.checkoutService.updateCheckoutLineItems(\r\n Checkout.toInstance({\r\n ...checkout.toPlain(),\r\n lineItems: checkout.lineItems?.map(async (item) => await this.buildLineItem({ checkout, item })) || [],\r\n }),\r\n ),\r\n ),\r\n map((checkout) => this.generateCartObject(checkout.lineItems)),\r\n tap((cart) => this.cartSubject.next(cart)),\r\n )\r\n }\r\n\r\n clearCart(): Observable<Cart> {\r\n return this.checkoutService.getCheckout().pipe(\r\n map((checkout) => {\r\n this.checkoutService.clearCheckoutFromSession()\r\n return checkout\r\n }),\r\n concatMap((oldCheckout) => this.buildCartFromCheckout(oldCheckout)),\r\n tap((cart) => this.cartSubject.next(cart)),\r\n )\r\n }\r\n\r\n private buildCartFromCheckout(checkoutData?: RequiredCheckoutData): Observable<Cart> {\r\n return this.checkoutService.getCheckout(checkoutData).pipe(\r\n map((checkout) => checkout.lineItems),\r\n concatMap((lineItems) => of(this.generateCartObject(lineItems))),\r\n )\r\n }\r\n\r\n private updateLineItemInCart = (lineItem: LineItem, quantity: number, checkout?: Checkout): Observable<Cart> =>\r\n (isNil(checkout) ? this.checkoutService.getCheckout() : of(checkout)).pipe(\r\n concatMap((checkoutLoaded) => {\r\n console.log('updateLineItemInCart1', checkoutLoaded)\r\n const items: LineItem[] = []\r\n const index = checkoutLoaded.lineItems?.map((checkoutItem) => checkoutItem.sku).indexOf(lineItem.sku)\r\n\r\n if (index > -1) {\r\n checkoutLoaded.lineItems[index].quantity += quantity\r\n checkoutLoaded.lineItems[index].pricePaid = lineItem.pricePaid\r\n } else\r\n checkoutLoaded.lineItems = items.concat(\r\n checkoutLoaded.lineItems ? checkoutLoaded.lineItems.concat([lineItem]) : [lineItem],\r\n )\r\n \r\n return this.checkoutService\r\n .updateCheckoutLineItems(checkoutLoaded)\r\n .pipe(map((updatedCheckout) => this.generateCartObject(updatedCheckout.lineItems)))\r\n }),\r\n )\r\n \r\n private generateCartObject = (items: LineItem[]): Cart => {\r\n const cart: Cart = {}\r\n\r\n items?.forEach(\r\n (item) =>\r\n (cart[item.sku] = LineItem.toInstance({\r\n ...(cart[item.sku] || item),\r\n quantity: (cart[item.sku]?.quantity || 0) + (item.quantity ? item.quantity : 1),\r\n })),\r\n )\r\n\r\n return cart\r\n }\r\n\r\n private buildLineItem = async ({\r\n checkout,\r\n item,\r\n quantity,\r\n }: {\r\n checkout: RequiredCheckoutData\r\n item: LineItem\r\n quantity?: number\r\n }) => {\r\n\r\n const product = await this.productRepository\r\n .find({ filters: { id: { operator: Where.EQUALS, value: item.id } }})\r\n .then((product => product.data.shift()))\r\n\r\n console.log('productRepository by id', product) \r\n console.log('buildLineItem', checkout, item, quantity)\r\n item.quantity = item?.quantity || checkout?.lineItems?.find((lineItem) => lineItem.sku === item.sku)?.quantity || 0\r\n\r\n if (this.checkMaxStock(item, quantity || 0))\r\n throw new Error('Desculpe! Temos apenas ' + item.stock?.quantity + ' em estoque.')\r\n\r\n const image = item.image || item.images?.shift()\r\n const { id, name, EAN, brand, slug, stock, price, weight, categories, sku } = item\r\n const isGift = item.isGift || null\r\n const pricePaid = this.getProductPrice({\r\n product: item,\r\n shop: checkout.shop || this.defaultShop,\r\n isSubscriber: checkout.user?.isSubscriber,\r\n })\r\n\r\n console.log('LineItem.toInstance', JSON.stringify({\r\n id,\r\n name,\r\n EAN,\r\n brand: product.brand,\r\n slug,\r\n sku,\r\n stock,\r\n price,\r\n image,\r\n weight: weight ?? product.weight,\r\n quantity: (item.quantity || 0) + (quantity || 0),\r\n pricePaid,\r\n categories: product.categories ?? [],\r\n isGift,\r\n costPrice: item?.costPrice\r\n }))\r\n \r\n return {\r\n checkout, \r\n lineItem: LineItem.toInstance({\r\n id,\r\n name,\r\n EAN,\r\n brand: product.brand,\r\n slug,\r\n sku,\r\n stock,\r\n price,\r\n image,\r\n weight: weight ?? product.weight,\r\n quantity: (item.quantity || 0) + (quantity || 0),\r\n pricePaid,\r\n categories: product.categories ?? [],\r\n isGift,\r\n costPrice: item?.costPrice,\r\n }\r\n )}\r\n }\r\n\r\n private getProductPrice = ({\r\n product,\r\n shop,\r\n isSubscriber,\r\n }: {\r\n product: LineItem\r\n shop: Shops\r\n isSubscriber: boolean\r\n }): number => {\r\n const info = product.getInfoByShop(shop)\r\n\r\n if (product.isGift) return 0\r\n\r\n return isSubscriber && info.subscriberPrice > 0 ? info.subscriberPrice : info.price\r\n }\r\n\r\n private checkMaxStock = (item: LineItem, quantity: number) => {\r\n const maxStock = item.stock?.quantity || 0\r\n const currentItemAmount = item.quantity || 0\r\n\r\n return currentItemAmount + quantity > maxStock\r\n }\r\n\r\n private getFinancialDiscount(coupon: Coupon & { id: string }): (subTotalPrice: number) => number {\r\n return (subTotalPrice) => {\r\n if (FinancialCoupon.isFinancialCoupon(coupon))\r\n switch (coupon.subtype) {\r\n case CouponSubtypes.ABSOLUTE:\r\n return subTotalPrice - coupon.discount * 100\r\n case CouponSubtypes.PERCENTAGE:\r\n return subTotalPrice * (1 - coupon.discount / 100)\r\n }\r\n }\r\n }\r\n}\r\n","import { Inject, Injectable } from '@angular/core'\r\nimport {\r\n CheckoutSubscription,\r\n CheckoutSubscriptionRepository,\r\n CheckoutTypes,\r\n FinancialCoupon,\r\n isNil,\r\n pick,\r\n SubscriptionRepository,\r\n} from '@infrab4a/connect'\r\nimport { forkJoin, from, Observable, of, throwError } from 'rxjs'\r\nimport { concatMap, map } from 'rxjs/operators'\r\nimport { RequiredCheckoutSubscriptionData } from './types'\r\nimport cookie from 'js-cookie'\r\n\r\nimport { CouponService } from './coupon.service'\r\nimport { GroupInvalidCouponError, InvalidCouponError } from './errors'\r\n\r\n@Injectable()\r\nexport class CheckoutSubscriptionService {\r\n constructor(\r\n @Inject('CheckoutSubscriptionRepository')\r\n private readonly checkoutSubscriptionRepository: CheckoutSubscriptionRepository,\r\n @Inject('SubscriptionRepository') private readonly subscriptionRepository: SubscriptionRepository,\r\n private readonly couponService: CouponService,\r\n ) {}\r\n\r\n getCheckoutSubscription(checkoutData?: RequiredCheckoutSubscriptionData): Observable<CheckoutSubscription> {\r\n const checkoutId = cookie.get('checkoutSubscriptionId')\r\n\r\n if (!isNil(checkoutId)) return from(this.checkoutSubscriptionRepository.get({ id: checkoutId }))\r\n\r\n return from(this.createCheckoutSubscription(checkoutData))\r\n }\r\n\r\n private async createCheckoutSubscription(\r\n checkoutData?: RequiredCheckoutSubscriptionData,\r\n ): Promise<CheckoutSubscription> {\r\n const checkout = await this.checkoutSubscriptionRepository.create({\r\n createdAt: new Date(),\r\n ...CheckoutSubscription.toInstance(pick(checkoutData, ['user', 'shop'])).toPlain(),\r\n })\r\n\r\n cookie.set('checkoutSubscriptionId', checkout.id)\r\n\r\n return checkout\r\n }\r\n\r\n clearCheckoutSubscriptionFromSession(): Observable<void> {\r\n cookie.remove('checkoutSubscriptionId')\r\n\r\n return of()\r\n }\r\n\r\n checkCoupon(nickname: string, userEmail: string): Observable<FinancialCoupon> {\r\n return this.getCheckoutSubscription().pipe(\r\n concatMap((checkout) =>\r\n this.couponService.checkCoupon(nickname, userEmail, CheckoutTypes.SUBSCRIPTION).pipe(\r\n concatMap((coupons) => {\r\n const couponsWithSamePlan = coupons.filter((coupon) => checkout.subscriptionPlan.name === coupon.plan)\r\n const couponsWithNoPlan = coupons.filter((coupon) => !coupon.plan)\r\n\r\n if (couponsWithSamePlan.length > 0) return of(couponsWithSamePlan)\r\n if (couponsWithNoPlan.length > 0) return of(couponsWithNoPlan)\r\n\r\n throw new Error(`Coupon subscription plan is invalid.`)\r\n }),\r\n concatMap((coupons) =>\r\n !!checkout.user?.email ? this.checkCouponsWithCheckout(coupons, checkout) : of(coupons),\r\n ),\r\n map((validatedCoupons) => validatedCoupons.shift()),\r\n ),\r\n ),\r\n )\r\n }\r\n\r\n private checkCouponsWithCheckout = (\r\n coupons: FinancialCoupon[],\r\n checkout: CheckoutSubscription,\r\n ): Observable<FinancialCoupon[]> =>\r\n forkJoin(\r\n coupons.map((coupon) =>\r\n from(\r\n this.subscriptionRepository.find({\r\n filters: { user: { email: checkout.user?.email }, coupon: { id: coupon.id } },\r\n }),\r\n ).pipe(map((subscriptions) => ({ coupon, subscriptions }))),\r\n ),\r\n ).pipe(\r\n map((results) =>\r\n results.map(({ coupon, subscriptions }) => {\r\n if (subscriptions.data.length >= (coupon.useLimit || Infinity))\r\n return new InvalidCouponError('Coupon is already applied')\r\n\r\n return coupon\r\n }),\r\n ),\r\n map((validatedCoupons) => ({\r\n valids: validatedCoupons.filter((coupon) => FinancialCoupon.isFinancialCoupon(coupon)) as FinancialCoupon[],\r\n invalids: validatedCoupons.filter((coupon) => coupon instanceof InvalidCouponError) as InvalidCouponError[],\r\n })),\r\n concatMap(({ valids, invalids }) =>\r\n valids.length ? of(valids) : throwError(new GroupInvalidCouponError(invalids)),\r\n ),\r\n )\r\n}\r\n","import { Injectable, Inject } from '@angular/core'\r\nimport { AngularFirestore, QueryDocumentSnapshot } from '@angular/fire/firestore'\r\nimport { Order, OrderFirestoreRepository } from '@infrab4a/connect'\r\nimport { from, Observable, Subject } from 'rxjs'\r\nimport { map, mergeMap, tap } from 'rxjs/operators'\r\n\r\n@Injectable()\r\nexport class OrderService {\r\n orderSubject = new Subject<Order>()\r\n\r\n constructor(\r\n private readonly angularFirestore: AngularFirestore,\r\n @Inject('OrderRepository') private readonly orderRepository: OrderFirestoreRepository,\r\n ) {}\r\n\r\n getOrder(id: string): Subject<Order> {\r\n this.angularFirestore\r\n .doc<QueryDocumentSnapshot<Order>>(`${this.orderRepository.collectionName}/${id}`)\r\n .valueChanges()\r\n .pipe(map((doc) => Order.toInstance(doc)))\r\n .subscribe((doc) => this.orderSubject.next(doc))\r\n\r\n return this.orderSubject\r\n }\r\n}\r\n","import { Injectable, Inject } from '@angular/core'\r\nimport {\r\n add,\r\n Banner,\r\n Category,\r\n CategoryRepository,\r\n Home,\r\n HomeCategoryGroup,\r\n HomeData,\r\n HomeRepository,\r\n pick,\r\n Product,\r\n ProductRepository,\r\n RequiredArgumentError,\r\n Shops,\r\n Where,\r\n} from '@infrab4a/connect'\r\nimport { forkJoin, from, Observable, of, throwError } from 'rxjs'\r\nimport { concatMap, map, tap } from 'rxjs/operators'\r\n\r\nimport { DEFAULT_SHOP } from '../consts'\r\n\r\ntype HomeConfigurationId = 'glamshop' | 'mens_market'\r\ntype BannerType = 'brand' | 'buyToWin' | 'block' | 'blog'\r\n\r\n@Injectable()\r\nexport class HomeShopService {\r\n private homeConfiguration: Home\r\n\r\n private get homeId(): HomeConfigurationId {\r\n if (this.defaultShop === Shops.GLAMSHOP) return 'glamshop'\r\n if (this.defaultShop === Shops.MENSMARKET) return 'mens_market'\r\n\r\n return null\r\n }\r\n\r\n constructor(\r\n @Inject('CategoryRepository') private readonly categoryRepository: CategoryRepository,\r\n @Inject('HomeRepository') private readonly homeRepository: HomeRepository,\r\n @Inject('ProductRepository') private readonly productRepository: ProductRepository,\r\n @Inject(DEFAULT_SHOP) private readonly defaultShop: Shops,\r\n ) {}\r\n\r\n getHomeData(): Observable<Home> {\r\n return this.getHomeConfiguration().pipe(\r\n map((home) => (home?.data?.expiresAt > new Date() ? home : null)),\r\n concatMap((home) =>\r\n home\r\n ? of(home)\r\n : forkJoin([this.getDiscoverProducts(), this.getFeaturedProducts(), this.getVerticalProducts()]).pipe(\r\n map(([discoverProducts, featuredProducts, verticalProducts]) => ({\r\n discoverProducts,\r\n featuredProducts,\r\n verticalProducts,\r\n })),\r\n concatMap((data) => this.saveHomeData(data)),\r\n ),\r\n ),\r\n )\r\n }\r\n\r\n getBanners(type: BannerType): Observable<Banner[]> {\r\n return this.getHomeConfiguration().pipe(\r\n map((home) => {\r\n if (type === 'brand') return home.brandsCarousel\r\n if (type === 'buyToWin') return [home.buyToWinBanner]\r\n if (type === 'block') return home.blockBanners\r\n if (type === 'blog') return [home.blogBanner]\r\n }),\r\n )\r\n }\r\n\r\n private getDiscoverProducts(): Observable<{ category: Category; products: Product[] }[]> {\r\n return this.getHomeConfiguration().pipe(\r\n concatMap((home) =>\r\n from(this.categoryRepository.getCategoriesForHome(home.discoverCategories)).pipe(\r\n map((groups) => groups.map(this.buildCategoryGroupWithRequiredData)),\r\n ),\r\n ),\r\n )\r\n }\r\n\r\n private getFeaturedProducts(): Observable<{ category: Category; products: Product[] }[]> {\r\n return this.getHomeConfiguration().pipe(\r\n concatMap((home) =>\r\n from(this.categoryRepository.getCategoriesForHome(home.featuredCategories)).pipe(\r\n map((groups) => groups.map(this.buildCategoryGroupWithRequiredData)),\r\n ),\r\n ),\r\n )\r\n }\r\n\r\n private getVerticalProducts(): Observable<{ category: Category; products: Product[] }[]> {\r\n return this.getHomeConfiguration().pipe(\r\n concatMap((home) =>\r\n forkJoin(\r\n home.verticalCarousels.filter(Boolean).map((id) =>\r\n from(this.categoryRepository.get({ id })).pipe(\r\n concatMap((category) =>\r\n from(\r\n this.productRepository.find({\r\n filters: { categories: { operator: Where.IN, value: [category.id] } },\r\n limits: { limit: 12 },\r\n }),\r\n ).pipe(map((products) => ({ category, products }))),\r\n ),\r\n map(({ category, products }) => ({ category, products: products.data })),\r\n map(this.buildCategoryGroupWithRequiredData),\r\n ),\r\n ),\r\n ),\r\n ),\r\n )\r\n }\r\n\r\n private getHomeConfiguration(): Observable<Home> {\r\n return of(this.homeConfiguration).pipe(\r\n concatMap((home) =>\r\n home\r\n ? of(home)\r\n : !this.homeId\r\n ? throwError(new RequiredArgumentError(['homeId']))\r\n : from(this.homeRepository.get({ id: this.homeId })).pipe(\r\n tap((homeLoaded) => (this.homeConfiguration = homeLoaded)),\r\n ),\r\n ),\r\n )\r\n }\r\n\r\n private saveHomeData(homeData: HomeData): Observable<Home> {\r\n const data = {\r\n createdAt: new Date(),\r\n expiresAt: add(new Date(), { hours: 1 }),\r\n data: homeData,\r\n }\r\n\r\n return from(\r\n this.homeRepository.update({\r\n id: this.homeId,\r\n data,\r\n }),\r\n ).pipe(\r\n tap(() => (this.homeConfiguration.data = data)),\r\n map(() => this.homeConfiguration),\r\n )\r\n }\r\n\r\n private buildCategoryGroupWithRequiredData = (group: HomeCategoryGroup): HomeCategoryGroup => ({\r\n category: Category.toInstance(pick(group.category.toPlain(), ['id', 'name', 'slug', 'conditions'])),\r\n products: group.products.map((product) =>\r\n Product.toInstance(\r\n pick(product.toPlain(), [\r\n 'id',\r\n 'price',\r\n 'reviews',\r\n 'hasVariants',\r\n 'slug',\r\n 'sku',\r\n 'stock',\r\n 'costPrice',\r\n 'images',\r\n 'miniatures',\r\n 'name',\r\n 'weight',\r\n ]),\r\n ),\r\n ),\r\n })\r\n}\r\n","import { ModuleWithProviders, NgModule } from '@angular/core'\r\nimport {\r\n AngularFireModule,\r\n FIREBASE_APP_NAME,\r\n FIREBASE_OPTIONS,\r\n FirebaseAppConfig,\r\n FirebaseOptions,\r\n} from '@angular/fire'\r\nimport { AngularFireAuth } from '@angular/fire/auth'\r\nimport {\r\n Authentication,\r\n AuthenticationFirebaseAuthService,\r\n AuthenticationService,\r\n Register,\r\n RegisterService,\r\n RegisterFirebaseAuthService,\r\n SignOut,\r\n UserRepository,\r\n RecoveryPassword,\r\n} from '@infrab4a/connect'\r\n\r\n@NgModule({\r\n imports: [AngularFireModule],\r\n providers: [\r\n {\r\n provide: 'Authentication',\r\n useFactory: (authenticationService: AuthenticationService, userRepository: UserRepository): Authentication => {\r\n return new Authentication(authenticationService, userRepository)\r\n },\r\n deps: ['AuthenticationService', 'UserRepository'],\r\n },\r\n {\r\n provide: 'AuthenticationService',\r\n useFactory: (angularFireAuth: AngularFireAuth): AuthenticationService => {\r\n return new AuthenticationFirebaseAuthService(angularFireAuth as any)\r\n },\r\n deps: [AngularFireAuth],\r\n },\r\n {\r\n provide: 'Register',\r\n useFactory: (registerService: RegisterService, userRepository: UserRepository): Register => {\r\n return new Register(registerService, userRepository)\r\n },\r\n deps: ['RegisterService', 'UserRepository'],\r\n },\r\n {\r\n provide: 'RegisterService',\r\n useFactory: (angularFireAuth: AngularFireAuth): RegisterService => {\r\n return new RegisterFirebaseAuthService(angularFireAuth as any)\r\n },\r\n deps: [AngularFireAuth],\r\n },\r\n {\r\n provide: 'SignOut',\r\n useFactory: (authenticationService: AuthenticationService): SignOut => {\r\n return new SignOut(authenticationService)\r\n },\r\n deps: ['AuthenticationService'],\r\n },\r\n {\r\n provide: 'RecoveryPassword',\r\n useFactory: (authenticationService: AuthenticationService): RecoveryPassword => {\r\n return new RecoveryPassword(authenticationService)\r\n },\r\n deps: ['AuthenticationService'],\r\n },\r\n ],\r\n})\r\nexport class AngularFirebaseAuthModule {\r\n static initializeApp(\r\n options: FirebaseOptions,\r\n nameOrConfig?: string | FirebaseAppConfig,\r\n ): ModuleWithProviders<AngularFireModule> {\r\n return {\r\n ngModule: AngularFirebaseAuthModule,\r\n providers: [\r\n { provide: FIREBASE_OPTIONS, useValue: options },\r\n { provide: FIREBASE_APP_NAME, useValue: nameOrConfig },\r\n ],\r\n }\r\n }\r\n}\r\n","import { ModuleWithProviders, NgModule } from '@angular/core'\r\nimport { AxiosElasticSearchConfig, AxiosAdapter, ProductsIndex } from '@infrab4a/connect'\r\n\r\nimport { ES_CONFIG } from './consts/es-config.const'\r\n\r\n@NgModule({\r\n providers: [\r\n {\r\n provide: ProductsIndex,\r\n useFactory: (configuration: AxiosElasticSearchConfig): ProductsIndex => {\r\n return new ProductsIndex(new AxiosAdapter(configuration))\r\n },\r\n deps: [ES_CONFIG],\r\n },\r\n ],\r\n})\r\nexport class AngularElasticSeachModule {\r\n static initializeApp(options: AxiosElasticSearchConfig): ModuleWithProviders<AngularElasticSeachModule> {\r\n return {\r\n ngModule: AngularElasticSeachModule,\r\n providers: [{ provide: ES_CONFIG, useValue: options }],\r\n }\r\n }\r\n}\r\n","import { ModuleWithProviders, NgModule } from '@angular/core'\r\nimport {\r\n AngularFireModule,\r\n FIREBASE_APP_NAME,\r\n FIREBASE_OPTIONS,\r\n FirebaseAppConfig,\r\n FirebaseOptions,\r\n} from '@angular/fire'\r\nimport { AngularFirestore } from '@angular/fire/firestore'\r\nimport {\r\n AxiosElasticSearchConfig,\r\n BeautyProfileRepository,\r\n Buy2WinFirestoreRepository,\r\n Buy2WinRepository,\r\n CategoryRepository,\r\n CategoryFirestoreRepository,\r\n CheckoutRepository,\r\n CheckoutFirestoreRepository,\r\n CheckoutSubscriptionFirestoreRepository,\r\n CheckoutSubscriptionRepository,\r\n CouponRepository,\r\n CouponFirestoreRepository,\r\n EditionRepository,\r\n HomeFirestoreRepository,\r\n HomeRepository,\r\n LeadRepository,\r\n LeadFirestoreRepository,\r\n LegacyOrderRepository,\r\n LegacyOrderFirestoreRepository,\r\n ShopMenuFirestoreRepository,\r\n ShopMenuRepository,\r\n OrderRepository,\r\n OrderFirestoreRepository,\r\n PaymentRepository,\r\n PaymentFirestoreRepository,\r\n ProductRepository,\r\n ProductFirestoreRepository,\r\n ProductsIndex,\r\n SubscriptionEditionFirestoreRepository,\r\n SubscriptionFirestoreRepository,\r\n SubscriptionPaymentFirestoreRepository,\r\n SubscriptionPaymentRepository,\r\n SubscriptionPlanFirestoreRepository,\r\n SubscriptionPlanRepository,\r\n SubscriptionProductFirestoreRepository,\r\n SubscriptionProductRepository,\r\n SubscriptionRepository,\r\n UserAddressRepository,\r\n UserAddressFirestoreRepository,\r\n UserBeautyProfileFirestoreRepository,\r\n UserFirestoreRepository,\r\n UserRepository,\r\n VariantRepository,\r\n ProductVariantFirestoreRepository,\r\n UserPaymentMethodRepository,\r\n UserPaymentMethodFirestoreRepository,\r\n} from '@infrab4a/connect'\r\n\r\nimport { AngularElasticSeachModule } from './angular-elastic-search.module'\r\nimport { ES_CONFIG } from './consts/es-config.const'\r\n\r\n@NgModule({\r\n imports: [AngularFireModule, AngularElasticSeachModule],\r\n providers: [\r\n {\r\n provide: 'BeautyProfileRepository',\r\n useFactory: (firestore: AngularFirestore, userRepository: UserFirestoreRepository): BeautyProfileRepository => {\r\n return new UserBeautyProfileFirestoreRepository(firestore.firestore, userRepository)\r\n },\r\n deps: [AngularFirestore, 'UserRepository'],\r\n },\r\n {\r\n provide: 'Buy2WinRepository',\r\n useFactory: (firestore: AngularFirestore): Buy2WinRepository => {\r\n return new Buy2WinFirestoreRepository(firestore.firestore)\r\n },\r\n deps: [AngularFirestore],\r\n },\r\n {\r\n provide: CategoryFirestoreRepository,\r\n useFactory: (firestore: AngularFirestore): CategoryRepository => {\r\n return new CategoryFirestoreRepository(firestore.firestore)\r\n },\r\n deps: [AngularFirestore],\r\n },\r\n {\r\n provide: 'CheckoutRepository',\r\n useFactory: (firestore: AngularFirestore): CheckoutRepository => {\r\n return new CheckoutFirestoreRepository(firestore.firestore)\r\n },\r\n deps: [AngularFirestore],\r\n },\r\n {\r\n provide: 'CheckoutSubscriptionRepository',\r\n useFactory: (firestore: AngularFirestore): CheckoutSubscriptionRepository => {\r\n return new CheckoutSubscriptionFirestoreRepository(firestore.firestore)\r\n },\r\n deps: [AngularFirestore],\r\n },\r\n {\r\n provide: 'CouponRepository',\r\n useFactory: (firestore: AngularFirestore): CouponRepository => {\r\n return new CouponFirestoreRepository(firestore.firestore)\r\n },\r\n deps: [AngularFirestore],\r\n },\r\n {\r\n provide: 'EditionRepository',\r\n useFactory: (\r\n firestore: AngularFirestore,\r\n subscriptionRepository: SubscriptionFirestoreRepository,\r\n ): EditionRepository => {\r\n return new SubscriptionEditionFirestoreRepository(firestore.firestore, subscriptionRepository)\r\n },\r\n deps: [AngularFirestore, 'SubscriptionRepository'],\r\n },\r\n {\r\n provide: 'HomeRepository',\r\n useFactory: (firestore: AngularFirestore): HomeRepository => {\r\n return new HomeFirestoreRepository(firestore.firestore)\r\n },\r\n deps: [AngularFirestore],\r\n },\r\n {\r\n provide: 'LeadRepository',\r\n useFactory: (firestore: AngularFirestore): LeadRepository => {\r\n return new LeadFirestoreRepository(firestore.firestore)\r\n },\r\n deps: [AngularFirestore],\r\n },\r\n {\r\n provide: 'LegacyOrderRepository',\r\n useFactory: (firestore: AngularFirestore): LegacyOrderRepository => {\r\n return new LegacyOrderFirestoreRepository(firestore.firestore)\r\n },\r\n deps: [AngularFirestore],\r\n },\r\n {\r\n provide: 'ShopMenuRepository',\r\n useFactory: (firestore: AngularFirestore): ShopMenuRepository => {\r\n return new ShopMenuFirestoreRepository(firestore.firestore)\r\n },\r\n deps: [AngularFirestore],\r\n },\r\n {\r\n provide: 'OrderRepository',\r\n useFactory: (firestore: AngularFirestore): OrderRepository => {\r\n return new OrderFirestoreRepository(firestore.firestore)\r\n },\r\n deps: [AngularFirestore],\r\n },\r\n {\r\n provide: 'PaymentRepository',\r\n useFactory: (firestore: AngularFirestore): PaymentRepository => {\r\n return new PaymentFirestoreRepository(firestore.firestore)\r\n },\r\n deps: [AngularFirestore],\r\n },\r\n {\r\n provide: ProductFirestoreRepository,\r\n useFactory: (firestore: AngularFirestore): ProductRepository => {\r\n return new ProductFirestoreRepository(firestore.firestore)\r\n },\r\n deps: [AngularFirestore],\r\n },\r\n {\r\n provide: 'SubscriptionPaymentRepository',\r\n useFactory: (\r\n firestore: AngularFirestore,\r\n subscriptionRepository: SubscriptionFirestoreRepository,\r\n ): SubscriptionPaymentRepository => {\r\n return new SubscriptionPaymentFirestoreRepository(firestore.firestore, subscriptionRepository)\r\n },\r\n deps: [AngularFirestore, 'SubscriptionRepository'],\r\n },\r\n {\r\n provide: 'SubscriptionPlanRepository',\r\n useFactory: (firestore: AngularFirestore): SubscriptionPlanRepository => {\r\n return new SubscriptionPlanFirestoreRepository(firestore.firestore)\r\n },\r\n deps: [AngularFirestore],\r\n },\r\n {\r\n provide: 'SubscriptionProductRepository',\r\n useFactory: (firestore: AngularFirestore): SubscriptionProductRepository => {\r\n return new SubscriptionProductFirestoreRepository(firestore.firestore)\r\n },\r\n deps: [AngularFirestore],\r\n },\r\n {\r\n provide: 'SubscriptionRepository',\r\n useFactory: (firestore: AngularFirestore): SubscriptionRepository => {\r\n return new SubscriptionFirestoreRepository(firestore.firestore)\r\n },\r\n deps: [AngularFirestore],\r\n },\r\n {\r\n provide: 'UserRepository',\r\n useFactory: (firestore: AngularFirestore): UserRepository => {\r\n return new UserFirestoreRepository(firestore.firestore)\r\n },\r\n deps: [AngularFirestore],\r\n },\r\n {\r\n provide: 'UserAddressRepository',\r\n useFactory: (firestore: AngularFirestore, userRepository: UserFirestoreRepository): UserAddressRepository => {\r\n return new UserAddressFirestoreRepository(firestore.firestore, userRepository)\r\n },\r\n deps: [AngularFirestore, 'UserRepository'],\r\n },\r\n {\r\n provide: 'UserPaymentMethodRepository',\r\n useFactory: (\r\n firestore: AngularFirestore,\r\n userRepository: UserFirestoreRepository,\r\n ): UserPaymentMethodRepository => {\r\n return new UserPaymentMethodFirestoreRepository(firestore.firestore, userRepository)\r\n },\r\n deps: [AngularFirestore, 'UserRepository'],\r\n },\r\n {\r\n provide: 'VariantRepository',\r\n useFactory: (firestore: AngularFirestore, productRepository: ProductFirestoreRepository): VariantRepository => {\r\n return new ProductVariantFirestoreRepository(firestore.firestore, productRepository)\r\n },\r\n deps: [AngularFirestore, ProductFirestoreRepository],\r\n },\r\n ],\r\n})\r\nexport class AngularFirestoreModule {\r\n static initializeApp(\r\n options: {\r\n firebase: FirebaseOptions\r\n elasticSearch: AxiosElasticSearchConfig\r\n },\r\n nameOrConfig?: string | FirebaseAppConfig,\r\n ): ModuleWithProviders<AngularFireModule> {\r\n return {\r\n ngModule: AngularFirestoreModule,\r\n providers: [\r\n { provide: FIREBASE_OPTIONS, useValue: options.firebase },\r\n { provide: FIREBASE_APP_NAME, useValue: nameOrConfig },\r\n { provide: ES_CONFIG, useValue: options.elasticSearch },\r\n ],\r\n }\r\n }\r\n}\r\n","import { ModuleWithProviders, NgModule } from '@angular/core'\r\nimport {\r\n CategoryRepository,\r\n CategoryHasuraGraphQLRepository,\r\n HasuraGraphQLAuthOptions,\r\n ProductRepository,\r\n ProductHasuraGraphQLRepository,\r\n} from '@infrab4a/connect'\r\n\r\nimport { HASURA_OPTIONS } from './consts'\r\n\r\nexport type HasuraGraphQLOptions = { endpoint: string; credentials: HasuraGraphQLAuthOptions }\r\n\r\n@NgModule({\r\n providers: [\r\n {\r\n provide: 'CategoryRepository',\r\n useExisting: CategoryHasuraGraphQLRepository,\r\n },\r\n {\r\n provide: CategoryHasuraGraphQLRepository,\r\n useFactory: (\r\n options: HasuraGraphQLOptions,\r\n productRepository: ProductHasuraGraphQLRepository,\r\n ): CategoryRepository => {\r\n return new CategoryHasuraGraphQLRepository(options.endpoint, options.credentials, productRepository)\r\n },\r\n deps: [HASURA_OPTIONS, ProductHasuraGraphQLRepository],\r\n },\r\n {\r\n provide: 'ProductRepository',\r\n useExisting: ProductHasuraGraphQLRepository,\r\n },\r\n {\r\n provide: ProductHasuraGraphQLRepository,\r\n useFactory: (options: HasuraGraphQLOptions): ProductRepository => {\r\n return new ProductHasuraGraphQLRepository(options.endpoint, options.credentials)\r\n },\r\n deps: [HASURA_OPTIONS],\r\n },\r\n ],\r\n})\r\nexport class AngularHasuraGraphQLModule {\r\n static initializeApp(options: {\r\n endpoint: string\r\n credentials: HasuraGraphQLAuthOptions\r\n }): ModuleWithProviders<AngularHasuraGraphQLModule> {\r\n return {\r\n ngModule: AngularHasuraGraphQLModule,\r\n providers: [{ provide: HASURA_OPTIONS, useValue: options }],\r\n }\r\n }\r\n}\r\n","import { ModuleWithProviders, NgModule } from '@angular/core'\r\nimport {\r\n AngularFireModule,\r\n FIREBASE_APP_NAME,\r\n FIREBASE_OPTIONS,\r\n FirebaseAppConfig,\r\n FirebaseOptions,\r\n} from '@angular/fire'\r\nimport { AxiosElasticSearchConfig, isNil, Shops } from '@infrab4a/connect'\r\n\r\nimport { AngularFirestoreModule } from './angular-firestore.module'\r\nimport { AngularHasuraGraphQLModule, HasuraGraphQLOptions } from './angular-hasura-graphql.module'\r\nimport {\r\n AuthService,\r\n CartService,\r\n CheckoutService,\r\n CheckoutSubscriptionService,\r\n CouponService,\r\n HomeShopService,\r\n OrderService,\r\n} from './services'\r\nimport { DEFAULT_SHOP, ES_CONFIG, HASURA_OPTIONS } from './consts'\r\n\r\n@NgModule({\r\n imports: [AngularFireModule, AngularFirestoreModule, AngularHasuraGraphQLModule],\r\n providers: [\r\n AuthService,\r\n CartService,\r\n CheckoutService,\r\n CheckoutSubscriptionService,\r\n CouponService,\r\n HomeShopService,\r\n OrderService,\r\n ],\r\n})\r\nexport class AngularConnectModule {\r\n static initializeApp(\r\n defaultShop: Shops,\r\n options: { firebase: FirebaseOptions; elasticSearch: AxiosElasticSearchConfig; hasura: HasuraGraphQLOptions },\r\n nameOrConfig?: string | FirebaseAppConfig,\r\n ): ModuleWithProviders<AngularFireModule> {\r\n return {\r\n ngModule: AngularConnectModule,\r\n providers: [\r\n ...(isNil(defaultShop) ? [] : [{ provide: DEFAULT_SHOP, useValue: defaultShop }]),\r\n ...(isNil(options?.firebase) ? [] : [{ provide: FIREBASE_OPTIONS, useValue: options?.firebase }]),\r\n ...(isNil(options?.firebase) ? [] : [{ provide: FIREBASE_APP_NAME, useValue: nameOrConfig }]),\r\n ...(isNil(options?.elasticSearch) ? [] : [{ provide: ES_CONFIG, useValue: options.elasticSearch }]),\r\n ...(isNil(options?.hasura) ? [] : [{ provide: HASURA_OPTIONS, useValue: options.hasura }]),\r\n ],\r\n }\r\n }\r\n}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"infrab4a-connect-angular.js","sources":["../../../projects/connect-angular/src/services/auth.service.ts","../../../projects/connect-angular/src/consts/default-shop.const.ts","../../../projects/connect-angular/src/consts/es-config.const.ts","../../../projects/connect-angular/src/consts/hasura-options.const.ts","../../../projects/connect-angular/src/services/errors/invalid-coupon.error.ts","../../../projects/connect-angular/src/services/errors/group-invalid-coupon.error.ts","../../../projects/connect-angular/src/services/coupon.service.ts","../../../projects/connect-angular/src/services/checkout.service.ts","../../../projects/connect-angular/src/services/cart.service.ts","../../../projects/connect-angular/src/services/checkout-subscription.service.ts","../../../projects/connect-angular/src/services/order.service.ts","../../../projects/connect-angular/src/services/home-shop.service.ts","../../../projects/connect-angular/src/angular-firebase-auth.module.ts","../../../projects/connect-angular/src/angular-elastic-search.module.ts","../../../projects/connect-angular/src/angular-firestore.module.ts","../../../projects/connect-angular/src/angular-hasura-graphql.module.ts","../../../projects/connect-angular/src/angular-connect.module.ts","../../../projects/connect-angular/src/infrab4a-connect-angular.ts"],"sourcesContent":["import { Injectable, Inject } from '@angular/core'\r\nimport { AngularFireAuth } from '@angular/fire/auth'\r\nimport { User, UserRepository } from '@infrab4a/connect'\r\nimport { combineLatest, Observable, of } from 'rxjs'\r\nimport { catchError, map, mergeMap } from 'rxjs/operators'\r\nimport firebase from 'firebase/app'\r\n\r\n@Injectable()\r\nexport class AuthService {\r\n constructor(\r\n private readonly angularFireAuth: AngularFireAuth,\r\n @Inject('UserRepository') private readonly userRepository: UserRepository,\r\n ) {}\r\n\r\n getAuthstate(): Observable<{ user: User; isAnonymous: boolean }> {\r\n const observables: [Observable<firebase.User>, Observable<User>] = [\r\n this.angularFireAuth.authState.pipe(catchError(() => of(null))),\r\n this.getUser().pipe(catchError(() => of(null))),\r\n ]\r\n\r\n return combineLatest(observables).pipe(\r\n map(([fireUser, user]) => {\r\n return {\r\n user,\r\n isAnonymous: fireUser?.isAnonymous,\r\n } as { user: User; isAnonymous: boolean }\r\n }),\r\n )\r\n }\r\n\r\n getUser(): Observable<User> {\r\n return this.getFireUser().pipe(\r\n map((user) => user?.uid),\r\n mergeMap((id) => (id ? this.userRepository.get({ id }) : of(null))),\r\n )\r\n }\r\n\r\n getTokenId(): Observable<string> {\r\n return this.angularFireAuth.idToken\r\n }\r\n\r\n getFireUser(): Observable<firebase.User> {\r\n return this.angularFireAuth.user.pipe(catchError(() => of(null)))\r\n }\r\n}\r\n","export const DEFAULT_SHOP = 'DEFAULT_SHOP'\r\n","export const ES_CONFIG = 'ES_CONFIG'\r\n","export const HASURA_OPTIONS = 'HASURA_OPTIONS'\r\n","import { CustomError } from 'ts-custom-error'\r\n\r\nexport class InvalidCouponError extends CustomError {\r\n constructor(readonly message) {\r\n super(message)\r\n }\r\n}\r\n","import { CustomError } from 'ts-custom-error'\r\n\r\nimport { InvalidCouponError } from './invalid-coupon.error'\r\n\r\nexport class GroupInvalidCouponError extends CustomError {\r\n constructor(readonly errors: InvalidCouponError[]) {\r\n super('Many coupon errors throw')\r\n }\r\n}\r\n","import { Inject, Injectable } from '@angular/core'\r\nimport {\r\n CheckoutTypes,\r\n Coupon,\r\n CouponRepository,\r\n Exclusivities,\r\n FinancialCoupon,\r\n NotFoundError,\r\n Shops,\r\n Where,\r\n} from '@infrab4a/connect'\r\nimport { from, Observable, throwError, of } from 'rxjs'\r\nimport { concatMap, map } from 'rxjs/operators'\r\n\r\nimport { DEFAULT_SHOP } from '../consts'\r\n\r\nimport { GroupInvalidCouponError, InvalidCouponError } from './errors'\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class CouponService {\r\n constructor(\r\n @Inject('CouponRepository') private readonly couponRepository: CouponRepository,\r\n @Inject(DEFAULT_SHOP) private readonly defaultShop: Shops,\r\n ) {}\r\n\r\n checkCoupon(nickname: string, userEmail: string, checkoutType: CheckoutTypes): Observable<FinancialCoupon[]> {\r\n return from(\r\n this.couponRepository.find({\r\n filters: {\r\n nickname: { operator: Where.EQUALS, value: nickname },\r\n shopAvailability: { operator: Where.EQUALS, value: this.defaultShop },\r\n checkoutType: { operator: Where.EQUALS, value: checkoutType },\r\n },\r\n }),\r\n ).pipe(\r\n concatMap((coupons) =>\r\n coupons.count < 1 ? throwError(() => new NotFoundError('Coupon not found')) : of(coupons.data),\r\n ),\r\n map((coupons) => this.separateValidCoupons(coupons, userEmail)),\r\n map(({ valids, invalids }) => {\r\n if (!valids.length) throw new GroupInvalidCouponError(invalids)\r\n\r\n return valids\r\n }),\r\n )\r\n }\r\n\r\n private isValidCoupon(coupon: FinancialCoupon, userEmail: string): boolean {\r\n if (!this.emailIsFromCollaborator(userEmail) && coupon.exclusivityType === Exclusivities.COLLABORATORS)\r\n throw new InvalidCouponError('User is not a collaborator')\r\n if (coupon.exclusivityType === Exclusivities.SPECIFIC_USER && coupon.recipient !== userEmail)\r\n throw new InvalidCouponError('Coupon is not valid for user')\r\n if (coupon?.expiresIn < new Date()) throw new InvalidCouponError('Coupon is expired')\r\n\r\n return true\r\n }\r\n\r\n private emailIsFromCollaborator = (userEmail: string): boolean => !!userEmail?.match(/@b4a.com.br/g)\r\n\r\n private separateValidCoupons = (\r\n coupons: Coupon[],\r\n userEmail: string,\r\n ): { valids: FinancialCoupon[]; invalids: InvalidCouponError[] } =>\r\n coupons\r\n .map((coupon) => {\r\n try {\r\n if (!FinancialCoupon.isFinancialCoupon(coupon)) throw new InvalidCouponError('Coupon is not valid')\r\n if (this.isValidCoupon(coupon, userEmail)) return coupon\r\n } catch (error) {\r\n return error as InvalidCouponError\r\n }\r\n })\r\n .reduce(\r\n (current, coupon) => ({\r\n ...current,\r\n ...(FinancialCoupon.isFinancialCoupon(coupon)\r\n ? { valids: [...current.valids, coupon] }\r\n : { invalids: [...current.invalids, coupon] }),\r\n }),\r\n {\r\n valids: [] as FinancialCoupon[],\r\n invalids: [] as InvalidCouponError[],\r\n },\r\n )\r\n}\r\n","import { Inject, Injectable } from '@angular/core'\r\nimport {\r\n Checkout,\r\n CheckoutRepository,\r\n CheckoutTypes,\r\n FinancialCoupon,\r\n isNil,\r\n NotFoundError,\r\n OrderRepository,\r\n pick,\r\n Shops,\r\n User,\r\n UserRepository\r\n} from '@infrab4a/connect'\r\nimport cookie from 'js-cookie'\r\nimport { from, Observable, of, throwError } from 'rxjs'\r\nimport { concatMap } from 'rxjs/operators'\r\n\r\nimport { DEFAULT_SHOP } from '../consts'\r\n\r\nimport { CouponService } from './coupon.service'\r\nimport { RequiredCheckoutData } from './types'\r\n\r\n@Injectable()\r\nexport class CheckoutService {\r\n constructor(\r\n private readonly couponService: CouponService,\r\n @Inject('CheckoutRepository') private readonly checkoutRepository: CheckoutRepository,\r\n @Inject('OrderRepository') private readonly orderRepository: OrderRepository,\r\n @Inject('UserRepository') private readonly userRepository: UserRepository,\r\n @Inject(DEFAULT_SHOP) private readonly defaultShop: Shops,\r\n ) {}\r\n\r\n getCheckout(checkoutData?: RequiredCheckoutData): Observable<Checkout> {\r\n const checkoutId = cookie.get('checkoutId')\r\n\r\n if (!isNil(checkoutId)) return from(this.checkoutRepository.get({ id: checkoutId }))\r\n\r\n return from(this.createCheckout(checkoutData))\r\n }\r\n\r\n getUserByCheckout(checkoutId: string): Observable<User> {\r\n return from(this.checkoutRepository.get({ id: checkoutId })).pipe(\r\n concatMap((checkout) =>\r\n checkout?.user?.id ? of(checkout.user) : from(this.userRepository.get({ id: checkout.user.id })),\r\n ),\r\n concatMap((user) => of(user) || throwError(() => new NotFoundError('User is not found'))),\r\n )\r\n }\r\n\r\n updateCheckoutLineItems(checkout: Partial<Checkout>): Observable<Checkout> {\r\n return from(this.checkoutRepository.update(Checkout.toInstance({ id: checkout.id, lineItems: checkout.lineItems })))\r\n }\r\n\r\n updateCheckoutUser(checkout: Partial<Checkout>): Observable<Checkout> {\r\n return from(this.checkoutRepository.update(Checkout.toInstance({ id: checkout.id, user: checkout.user })))\r\n }\r\n\r\n clearCheckoutFromSession(): Observable<void> {\r\n cookie.remove('checkoutId')\r\n\r\n return of()\r\n }\r\n\r\n checkCoupon(nickname: string): Observable<FinancialCoupon> {\r\n return this.getCheckout().pipe(\r\n concatMap((checkout) =>\r\n this.couponService.checkCoupon(nickname, checkout.user?.email, CheckoutTypes.ECOMMERCE).pipe(\r\n concatMap((coupons) => of(coupons.shift())),\r\n concatMap((coupon) =>\r\n !!checkout.user?.email\r\n ? from(\r\n this.orderRepository.find({\r\n filters: { user: { email: checkout.user?.email }, coupon: { id: coupon.id } },\r\n }),\r\n ).pipe(\r\n concatMap((orders) => {\r\n if (orders.data.length >= (coupon.useLimit || Infinity))\r\n return throwError(() => new Error('Coupon is already applied'))\r\n\r\n return of(coupon)\r\n }),\r\n )\r\n : of(coupon),\r\n ),\r\n ),\r\n ),\r\n )\r\n }\r\n\r\n private async createCheckout(checkoutData?: RequiredCheckoutData): Promise<Checkout> {\r\n const checkout = await this.checkoutRepository.create({\r\n createdAt: new Date(),\r\n ...Checkout.toInstance(pick(checkoutData, ['user', 'shop'])).toPlain(),\r\n shop: checkoutData?.shop || this.defaultShop,\r\n })\r\n\r\n cookie.set('checkoutId', checkout.id)\r\n\r\n return checkout\r\n }\r\n}\r\n","import { Inject, Injectable } from '@angular/core'\r\nimport {\r\n Checkout,\r\n Coupon,\r\n CouponSubtypes,\r\n CouponTypes,\r\n FinancialCoupon,\r\n isNil,\r\n LineItem,\r\n ProductRepository,\r\n Shops,\r\n User,\r\n Where\r\n} from '@infrab4a/connect'\r\nimport { from, iif, Observable, of, Subject } from 'rxjs'\r\nimport { catchError, concatMap, map, mergeMap, tap } from 'rxjs/operators'\r\n\r\nimport { DEFAULT_SHOP } from '../consts'\r\n\r\nimport { AuthService } from './auth.service'\r\nimport { CheckoutService } from './checkout.service'\r\nimport { RequiredCheckoutData } from './types'\r\n\r\nexport type Cart = {\r\n [id: string]: LineItem\r\n}\r\n\r\n@Injectable()\r\nexport class CartService {\r\n private cartSubject: Subject<Cart> = new Subject()\r\n\r\n constructor(\r\n private readonly authService: AuthService,\r\n private readonly checkoutService: CheckoutService,\r\n @Inject(DEFAULT_SHOP) private readonly defaultShop: Shops,\r\n @Inject('ProductRepository') private readonly productRepository: ProductRepository,\r\n ) {}\r\n\r\n addItem(item: LineItem, quantity: number = 1): Observable<Cart> {\r\n\r\n return from(this.checkoutService.getCheckout())\r\n .pipe(\r\n concatMap(checkout => this.buildLineItem({ checkout, item, quantity: quantity || 1 })),\r\n mergeMap(({checkout, lineItem}) => this.updateLineItemInCart(lineItem, quantity || 1, checkout as Checkout)),\r\n tap((cart) => this.cartSubject.next(cart))\r\n )\r\n \r\n // .pipe(\r\n // concatMap(({ checkout, lineItem }) => this.updateLineItemInCart(lineItem, quantity || 1, checkout)),\r\n // tap((cart) => this.cartSubject.next(cart)),\r\n // )\r\n // return this.checkoutService.getCheckout().pipe(\r\n // map( async(checkout) => ({\r\n // checkout,\r\n // lineItem: await this.buildLineItem({ checkout, item, quantity: quantity || 1 }),\r\n // })),\r\n // concatMap(({ checkout, lineItem }) => this.updateLineItemInCart(lineItem, quantity || 1, checkout)),\r\n // tap((cart) => this.cartSubject.next(cart)),\r\n // )\r\n }\r\n\r\n decreaseItem(item: LineItem): Observable<Cart> {\r\n return this.checkoutService.getCheckout().pipe(\r\n map((checkout) => {\r\n const checkoutItem = checkout.lineItems?.find((lineItem) => lineItem.sku === item.sku)\r\n\r\n if (!isNil(checkoutItem)) checkoutItem.quantity -= checkoutItem.quantity > 1 ? 1 : 0\r\n\r\n return checkout\r\n }),\r\n concatMap((checkout) => this.checkoutService.updateCheckoutLineItems(checkout)),\r\n map((checkout) => this.generateCartObject(checkout.lineItems)),\r\n tap((cart) => this.cartSubject.next(cart)),\r\n )\r\n }\r\n\r\n getCart(checkout?: RequiredCheckoutData): Observable<Cart> {\r\n this.buildCartFromCheckout(checkout).subscribe((cart) => this.cartSubject.next(cart))\r\n\r\n return this.cartSubject\r\n }\r\n\r\n /**\r\n * @deprecated The method should not be used\r\n */\r\n getDiscount(coupon: Coupon & { id: string }): (subTotalPrice: number) => number {\r\n switch (coupon.type) {\r\n case CouponTypes.FINANCIAL:\r\n return this.getFinancialDiscount(coupon)\r\n case CouponTypes.PRODUCT:\r\n return (subTotalPrice: number) => subTotalPrice\r\n case CouponTypes.GIFTCARD:\r\n return this.getFinancialDiscount(coupon)\r\n case CouponTypes.VOUCHER:\r\n return (subTotalPrice: number) => subTotalPrice\r\n }\r\n }\r\n\r\n /**\r\n * @deprecated The method should not be used\r\n */\r\n getVariantPriceDiscount(item: LineItem, shop: Shops): Observable<number> {\r\n return this.authService.getUser().pipe(\r\n concatMap((user) =>\r\n iif(\r\n () => user.isSubscriber && !!item.getInfoByShop(shop).subscriberPrice,\r\n of(item.getInfoByShop(shop).subscriberPrice),\r\n of(item.getInfoByShop(shop).price),\r\n ),\r\n ),\r\n catchError(() => of(item.getInfoByShop(shop).price)),\r\n )\r\n }\r\n\r\n removeItem(item: LineItem): Observable<Cart> {\r\n return this.checkoutService.getCheckout().pipe(\r\n map((checkout) => {\r\n const index = checkout.lineItems.findIndex((lineItem) => lineItem.sku === item.sku)\r\n\r\n if (index >= 0) checkout.lineItems.splice(index, 1)\r\n\r\n return checkout\r\n }),\r\n concatMap((checkout) => this.checkoutService.updateCheckoutLineItems(checkout)),\r\n map((checkout) => this.generateCartObject(checkout.lineItems)),\r\n tap((cart) => this.cartSubject.next(cart)),\r\n )\r\n }\r\n\r\n updateUserCart(user: User): Observable<Cart> {\r\n return this.checkoutService.getCheckout().pipe(\r\n concatMap((checkout) =>\r\n this.checkoutService.updateCheckoutUser(Checkout.toInstance({ ...checkout.toPlain(), user })),\r\n ),\r\n concatMap((checkout) =>\r\n this.checkoutService.updateCheckoutLineItems(\r\n Checkout.toInstance({\r\n ...checkout.toPlain(),\r\n lineItems: checkout.lineItems?.map(async (item) => await this.buildLineItem({ checkout, item })) || [],\r\n }),\r\n ),\r\n ),\r\n map((checkout) => this.generateCartObject(checkout.lineItems)),\r\n tap((cart) => this.cartSubject.next(cart)),\r\n )\r\n }\r\n\r\n clearCart(): Observable<Cart> {\r\n return this.checkoutService.getCheckout().pipe(\r\n map((checkout) => {\r\n this.checkoutService.clearCheckoutFromSession()\r\n return checkout\r\n }),\r\n concatMap((oldCheckout) => this.buildCartFromCheckout(oldCheckout)),\r\n tap((cart) => this.cartSubject.next(cart)),\r\n )\r\n }\r\n\r\n private buildCartFromCheckout(checkoutData?: RequiredCheckoutData): Observable<Cart> {\r\n return this.checkoutService.getCheckout(checkoutData).pipe(\r\n map((checkout) => checkout.lineItems),\r\n concatMap((lineItems) => of(this.generateCartObject(lineItems))),\r\n )\r\n }\r\n\r\n private updateLineItemInCart = (lineItem: LineItem, quantity: number, checkout?: Checkout): Observable<Cart> =>\r\n (isNil(checkout) ? this.checkoutService.getCheckout() : of(checkout)).pipe(\r\n concatMap((checkoutLoaded) => {\r\n console.log('updateLineItemInCart1', checkoutLoaded)\r\n const items: LineItem[] = []\r\n const index = checkoutLoaded.lineItems?.map((checkoutItem) => checkoutItem.sku).indexOf(lineItem.sku)\r\n\r\n if (index > -1) {\r\n checkoutLoaded.lineItems[index].quantity += quantity\r\n checkoutLoaded.lineItems[index].pricePaid = lineItem.pricePaid\r\n } else\r\n checkoutLoaded.lineItems = items.concat(\r\n checkoutLoaded.lineItems ? checkoutLoaded.lineItems.concat([lineItem]) : [lineItem],\r\n )\r\n \r\n return this.checkoutService\r\n .updateCheckoutLineItems(checkoutLoaded)\r\n .pipe(map((updatedCheckout) => this.generateCartObject(updatedCheckout.lineItems)))\r\n }),\r\n )\r\n \r\n private generateCartObject = (items: LineItem[]): Cart => {\r\n const cart: Cart = {}\r\n\r\n items?.forEach(\r\n (item) =>\r\n (cart[item.sku] = LineItem.toInstance({\r\n ...(cart[item.sku] || item),\r\n quantity: (cart[item.sku]?.quantity || 0) + (item.quantity ? item.quantity : 1),\r\n })),\r\n )\r\n\r\n return cart\r\n }\r\n\r\n private buildLineItem = async ({\r\n checkout,\r\n item,\r\n quantity,\r\n }: {\r\n checkout: RequiredCheckoutData\r\n item: LineItem\r\n quantity?: number\r\n }) => {\r\n\r\n const product = await this.productRepository\r\n .find({ filters: { id: { operator: Where.EQUALS, value: item.id } }})\r\n .then((product => product.data.shift()))\r\n\r\n console.log('productRepository by id', product) \r\n console.log('buildLineItem', checkout, item, quantity)\r\n item.quantity = item?.quantity || checkout?.lineItems?.find((lineItem) => lineItem.sku === item.sku)?.quantity || 0\r\n\r\n if (this.checkMaxStock(item, quantity || 0))\r\n throw new Error('Desculpe! Temos apenas ' + item.stock?.quantity + ' em estoque.')\r\n\r\n const image = item.image || item.images?.shift()\r\n const { id, name, EAN, brand, slug, stock, price, weight, categories, sku } = item\r\n const isGift = item.isGift || null\r\n const pricePaid = this.getProductPrice({\r\n product: item,\r\n shop: checkout.shop || this.defaultShop,\r\n isSubscriber: checkout.user?.isSubscriber,\r\n })\r\n\r\n console.log('LineItem.toInstance', JSON.stringify({\r\n id,\r\n name,\r\n EAN,\r\n brand: product.brand,\r\n slug,\r\n sku,\r\n stock,\r\n price,\r\n image,\r\n weight: weight ?? product.weight,\r\n quantity: (item.quantity || 0) + (quantity || 0),\r\n pricePaid,\r\n categories: product.categories ?? [],\r\n isGift,\r\n costPrice: item?.costPrice\r\n }))\r\n \r\n return {\r\n checkout, \r\n lineItem: LineItem.toInstance({\r\n id,\r\n name,\r\n EAN: EAN ?? product.EAN,\r\n brand: product.brand,\r\n slug,\r\n sku,\r\n stock,\r\n price,\r\n image,\r\n weight: weight ?? product.weight,\r\n quantity: (item.quantity || 0) + (quantity || 0),\r\n pricePaid,\r\n categories: product.categories ?? [],\r\n isGift: isGift ?? null,\r\n costPrice: item?.costPrice,\r\n }\r\n )}\r\n }\r\n\r\n private getProductPrice = ({\r\n product,\r\n shop,\r\n isSubscriber,\r\n }: {\r\n product: LineItem\r\n shop: Shops\r\n isSubscriber: boolean\r\n }): number => {\r\n const info = product.getInfoByShop(shop)\r\n\r\n if (product.isGift) return 0\r\n\r\n return isSubscriber && info.subscriberPrice > 0 ? info.subscriberPrice : info.price\r\n }\r\n\r\n private checkMaxStock = (item: LineItem, quantity: number) => {\r\n const maxStock = item.stock?.quantity || 0\r\n const currentItemAmount = item.quantity || 0\r\n\r\n return currentItemAmount + quantity > maxStock\r\n }\r\n\r\n private getFinancialDiscount(coupon: Coupon & { id: string }): (subTotalPrice: number) => number {\r\n return (subTotalPrice) => {\r\n if (FinancialCoupon.isFinancialCoupon(coupon))\r\n switch (coupon.subtype) {\r\n case CouponSubtypes.ABSOLUTE:\r\n return subTotalPrice - coupon.discount * 100\r\n case CouponSubtypes.PERCENTAGE:\r\n return subTotalPrice * (1 - coupon.discount / 100)\r\n }\r\n }\r\n }\r\n}\r\n","import { Inject, Injectable } from '@angular/core'\r\nimport {\r\n CheckoutSubscription,\r\n CheckoutSubscriptionRepository,\r\n CheckoutTypes,\r\n FinancialCoupon,\r\n isNil,\r\n pick,\r\n SubscriptionRepository,\r\n} from '@infrab4a/connect'\r\nimport { forkJoin, from, Observable, of, throwError } from 'rxjs'\r\nimport { concatMap, map } from 'rxjs/operators'\r\nimport { RequiredCheckoutSubscriptionData } from './types'\r\nimport cookie from 'js-cookie'\r\n\r\nimport { CouponService } from './coupon.service'\r\nimport { GroupInvalidCouponError, InvalidCouponError } from './errors'\r\n\r\n@Injectable()\r\nexport class CheckoutSubscriptionService {\r\n constructor(\r\n @Inject('CheckoutSubscriptionRepository')\r\n private readonly checkoutSubscriptionRepository: CheckoutSubscriptionRepository,\r\n @Inject('SubscriptionRepository') private readonly subscriptionRepository: SubscriptionRepository,\r\n private readonly couponService: CouponService,\r\n ) {}\r\n\r\n getCheckoutSubscription(checkoutData?: RequiredCheckoutSubscriptionData): Observable<CheckoutSubscription> {\r\n const checkoutId = cookie.get('checkoutSubscriptionId')\r\n\r\n if (!isNil(checkoutId)) return from(this.checkoutSubscriptionRepository.get({ id: checkoutId }))\r\n\r\n return from(this.createCheckoutSubscription(checkoutData))\r\n }\r\n\r\n private async createCheckoutSubscription(\r\n checkoutData?: RequiredCheckoutSubscriptionData,\r\n ): Promise<CheckoutSubscription> {\r\n const checkout = await this.checkoutSubscriptionRepository.create({\r\n createdAt: new Date(),\r\n ...CheckoutSubscription.toInstance(pick(checkoutData, ['user', 'shop'])).toPlain(),\r\n })\r\n\r\n cookie.set('checkoutSubscriptionId', checkout.id)\r\n\r\n return checkout\r\n }\r\n\r\n clearCheckoutSubscriptionFromSession(): Observable<void> {\r\n cookie.remove('checkoutSubscriptionId')\r\n\r\n return of()\r\n }\r\n\r\n checkCoupon(nickname: string, userEmail: string): Observable<FinancialCoupon> {\r\n return this.getCheckoutSubscription().pipe(\r\n concatMap((checkout) =>\r\n this.couponService.checkCoupon(nickname, userEmail, CheckoutTypes.SUBSCRIPTION).pipe(\r\n concatMap((coupons) => {\r\n const couponsWithSamePlan = coupons.filter((coupon) => checkout.subscriptionPlan.name === coupon.plan)\r\n const couponsWithNoPlan = coupons.filter((coupon) => !coupon.plan)\r\n\r\n if (couponsWithSamePlan.length > 0) return of(couponsWithSamePlan)\r\n if (couponsWithNoPlan.length > 0) return of(couponsWithNoPlan)\r\n\r\n throw new Error(`Coupon subscription plan is invalid.`)\r\n }),\r\n concatMap((coupons) =>\r\n !!checkout.user?.email ? this.checkCouponsWithCheckout(coupons, checkout) : of(coupons),\r\n ),\r\n map((validatedCoupons) => validatedCoupons.shift()),\r\n ),\r\n ),\r\n )\r\n }\r\n\r\n private checkCouponsWithCheckout = (\r\n coupons: FinancialCoupon[],\r\n checkout: CheckoutSubscription,\r\n ): Observable<FinancialCoupon[]> =>\r\n forkJoin(\r\n coupons.map((coupon) =>\r\n from(\r\n this.subscriptionRepository.find({\r\n filters: { user: { email: checkout.user?.email }, coupon: { id: coupon.id } },\r\n }),\r\n ).pipe(map((subscriptions) => ({ coupon, subscriptions }))),\r\n ),\r\n ).pipe(\r\n map((results) =>\r\n results.map(({ coupon, subscriptions }) => {\r\n if (subscriptions.data.length >= (coupon.useLimit || Infinity))\r\n return new InvalidCouponError('Coupon is already applied')\r\n\r\n return coupon\r\n }),\r\n ),\r\n map((validatedCoupons) => ({\r\n valids: validatedCoupons.filter((coupon) => FinancialCoupon.isFinancialCoupon(coupon)) as FinancialCoupon[],\r\n invalids: validatedCoupons.filter((coupon) => coupon instanceof InvalidCouponError) as InvalidCouponError[],\r\n })),\r\n concatMap(({ valids, invalids }) =>\r\n valids.length ? of(valids) : throwError(new GroupInvalidCouponError(invalids)),\r\n ),\r\n )\r\n}\r\n","import { Injectable, Inject } from '@angular/core'\r\nimport { AngularFirestore, QueryDocumentSnapshot } from '@angular/fire/firestore'\r\nimport { Order, OrderFirestoreRepository } from '@infrab4a/connect'\r\nimport { from, Observable, Subject } from 'rxjs'\r\nimport { map, mergeMap, tap } from 'rxjs/operators'\r\n\r\n@Injectable()\r\nexport class OrderService {\r\n orderSubject = new Subject<Order>()\r\n\r\n constructor(\r\n private readonly angularFirestore: AngularFirestore,\r\n @Inject('OrderRepository') private readonly orderRepository: OrderFirestoreRepository,\r\n ) {}\r\n\r\n getOrder(id: string): Subject<Order> {\r\n this.angularFirestore\r\n .doc<QueryDocumentSnapshot<Order>>(`${this.orderRepository.collectionName}/${id}`)\r\n .valueChanges()\r\n .pipe(map((doc) => Order.toInstance(doc)))\r\n .subscribe((doc) => this.orderSubject.next(doc))\r\n\r\n return this.orderSubject\r\n }\r\n}\r\n","import { Injectable, Inject } from '@angular/core'\r\nimport {\r\n add,\r\n Banner,\r\n Category,\r\n CategoryRepository,\r\n Home,\r\n HomeCategoryGroup,\r\n HomeData,\r\n HomeRepository,\r\n pick,\r\n Product,\r\n ProductRepository,\r\n RequiredArgumentError,\r\n Shops,\r\n Where,\r\n} from '@infrab4a/connect'\r\nimport { forkJoin, from, Observable, of, throwError } from 'rxjs'\r\nimport { concatMap, map, tap } from 'rxjs/operators'\r\n\r\nimport { DEFAULT_SHOP } from '../consts'\r\n\r\ntype HomeConfigurationId = 'glamshop' | 'mens_market'\r\ntype BannerType = 'brand' | 'buyToWin' | 'block' | 'blog'\r\n\r\n@Injectable()\r\nexport class HomeShopService {\r\n private homeConfiguration: Home\r\n\r\n private get homeId(): HomeConfigurationId {\r\n if (this.defaultShop === Shops.GLAMSHOP) return 'glamshop'\r\n if (this.defaultShop === Shops.MENSMARKET) return 'mens_market'\r\n\r\n return null\r\n }\r\n\r\n constructor(\r\n @Inject('CategoryRepository') private readonly categoryRepository: CategoryRepository,\r\n @Inject('HomeRepository') private readonly homeRepository: HomeRepository,\r\n @Inject('ProductRepository') private readonly productRepository: ProductRepository,\r\n @Inject(DEFAULT_SHOP) private readonly defaultShop: Shops,\r\n ) {}\r\n\r\n getHomeData(): Observable<Home> {\r\n return this.getHomeConfiguration().pipe(\r\n map((home) => (home?.data?.expiresAt > new Date() ? home : null)),\r\n concatMap((home) =>\r\n home\r\n ? of(home)\r\n : forkJoin([this.getDiscoverProducts(), this.getFeaturedProducts(), this.getVerticalProducts()]).pipe(\r\n map(([discoverProducts, featuredProducts, verticalProducts]) => ({\r\n discoverProducts,\r\n featuredProducts,\r\n verticalProducts,\r\n })),\r\n concatMap((data) => this.saveHomeData(data)),\r\n ),\r\n ),\r\n )\r\n }\r\n\r\n getBanners(type: BannerType): Observable<Banner[]> {\r\n return this.getHomeConfiguration().pipe(\r\n map((home) => {\r\n if (type === 'brand') return home.brandsCarousel\r\n if (type === 'buyToWin') return [home.buyToWinBanner]\r\n if (type === 'block') return home.blockBanners\r\n if (type === 'blog') return [home.blogBanner]\r\n }),\r\n )\r\n }\r\n\r\n private getDiscoverProducts(): Observable<{ category: Category; products: Product[] }[]> {\r\n return this.getHomeConfiguration().pipe(\r\n concatMap((home) =>\r\n from(this.categoryRepository.getCategoriesForHome(home.discoverCategories)).pipe(\r\n map((groups) => groups.map(this.buildCategoryGroupWithRequiredData)),\r\n ),\r\n ),\r\n )\r\n }\r\n\r\n private getFeaturedProducts(): Observable<{ category: Category; products: Product[] }[]> {\r\n return this.getHomeConfiguration().pipe(\r\n concatMap((home) =>\r\n from(this.categoryRepository.getCategoriesForHome(home.featuredCategories)).pipe(\r\n map((groups) => groups.map(this.buildCategoryGroupWithRequiredData)),\r\n ),\r\n ),\r\n )\r\n }\r\n\r\n private getVerticalProducts(): Observable<{ category: Category; products: Product[] }[]> {\r\n return this.getHomeConfiguration().pipe(\r\n concatMap((home) =>\r\n forkJoin(\r\n home.verticalCarousels.filter(Boolean).map((id) =>\r\n from(this.categoryRepository.get({ id })).pipe(\r\n concatMap((category) =>\r\n from(\r\n this.productRepository.find({\r\n filters: { categories: { operator: Where.IN, value: [category.id] } },\r\n limits: { limit: 12 },\r\n }),\r\n ).pipe(map((products) => ({ category, products }))),\r\n ),\r\n map(({ category, products }) => ({ category, products: products.data })),\r\n map(this.buildCategoryGroupWithRequiredData),\r\n ),\r\n ),\r\n ),\r\n ),\r\n )\r\n }\r\n\r\n private getHomeConfiguration(): Observable<Home> {\r\n return of(this.homeConfiguration).pipe(\r\n concatMap((home) =>\r\n home\r\n ? of(home)\r\n : !this.homeId\r\n ? throwError(new RequiredArgumentError(['homeId']))\r\n : from(this.homeRepository.get({ id: this.homeId })).pipe(\r\n tap((homeLoaded) => (this.homeConfiguration = homeLoaded)),\r\n ),\r\n ),\r\n )\r\n }\r\n\r\n private saveHomeData(homeData: HomeData): Observable<Home> {\r\n const data = {\r\n createdAt: new Date(),\r\n expiresAt: add(new Date(), { hours: 1 }),\r\n data: homeData,\r\n }\r\n\r\n return from(\r\n this.homeRepository.update({\r\n id: this.homeId,\r\n data,\r\n }),\r\n ).pipe(\r\n tap(() => (this.homeConfiguration.data = data)),\r\n map(() => this.homeConfiguration),\r\n )\r\n }\r\n\r\n private buildCategoryGroupWithRequiredData = (group: HomeCategoryGroup): HomeCategoryGroup => ({\r\n category: Category.toInstance(pick(group.category.toPlain(), ['id', 'name', 'slug', 'conditions'])),\r\n products: group.products.map((product) =>\r\n Product.toInstance(\r\n pick(product.toPlain(), [\r\n 'id',\r\n 'price',\r\n 'reviews',\r\n 'hasVariants',\r\n 'slug',\r\n 'sku',\r\n 'stock',\r\n 'costPrice',\r\n 'images',\r\n 'miniatures',\r\n 'name',\r\n 'weight',\r\n ]),\r\n ),\r\n ),\r\n })\r\n}\r\n","import { ModuleWithProviders, NgModule } from '@angular/core'\r\nimport {\r\n AngularFireModule,\r\n FIREBASE_APP_NAME,\r\n FIREBASE_OPTIONS,\r\n FirebaseAppConfig,\r\n FirebaseOptions,\r\n} from '@angular/fire'\r\nimport { AngularFireAuth } from '@angular/fire/auth'\r\nimport {\r\n Authentication,\r\n AuthenticationFirebaseAuthService,\r\n AuthenticationService,\r\n Register,\r\n RegisterService,\r\n RegisterFirebaseAuthService,\r\n SignOut,\r\n UserRepository,\r\n RecoveryPassword,\r\n} from '@infrab4a/connect'\r\n\r\n@NgModule({\r\n imports: [AngularFireModule],\r\n providers: [\r\n {\r\n provide: 'Authentication',\r\n useFactory: (authenticationService: AuthenticationService, userRepository: UserRepository): Authentication => {\r\n return new Authentication(authenticationService, userRepository)\r\n },\r\n deps: ['AuthenticationService', 'UserRepository'],\r\n },\r\n {\r\n provide: 'AuthenticationService',\r\n useFactory: (angularFireAuth: AngularFireAuth): AuthenticationService => {\r\n return new AuthenticationFirebaseAuthService(angularFireAuth as any)\r\n },\r\n deps: [AngularFireAuth],\r\n },\r\n {\r\n provide: 'Register',\r\n useFactory: (registerService: RegisterService, userRepository: UserRepository): Register => {\r\n return new Register(registerService, userRepository)\r\n },\r\n deps: ['RegisterService', 'UserRepository'],\r\n },\r\n {\r\n provide: 'RegisterService',\r\n useFactory: (angularFireAuth: AngularFireAuth): RegisterService => {\r\n return new RegisterFirebaseAuthService(angularFireAuth as any)\r\n },\r\n deps: [AngularFireAuth],\r\n },\r\n {\r\n provide: 'SignOut',\r\n useFactory: (authenticationService: AuthenticationService): SignOut => {\r\n return new SignOut(authenticationService)\r\n },\r\n deps: ['AuthenticationService'],\r\n },\r\n {\r\n provide: 'RecoveryPassword',\r\n useFactory: (authenticationService: AuthenticationService): RecoveryPassword => {\r\n return new RecoveryPassword(authenticationService)\r\n },\r\n deps: ['AuthenticationService'],\r\n },\r\n ],\r\n})\r\nexport class AngularFirebaseAuthModule {\r\n static initializeApp(\r\n options: FirebaseOptions,\r\n nameOrConfig?: string | FirebaseAppConfig,\r\n ): ModuleWithProviders<AngularFireModule> {\r\n return {\r\n ngModule: AngularFirebaseAuthModule,\r\n providers: [\r\n { provide: FIREBASE_OPTIONS, useValue: options },\r\n { provide: FIREBASE_APP_NAME, useValue: nameOrConfig },\r\n ],\r\n }\r\n }\r\n}\r\n","import { ModuleWithProviders, NgModule } from '@angular/core'\r\nimport { AxiosElasticSearchConfig, AxiosAdapter, ProductsIndex } from '@infrab4a/connect'\r\n\r\nimport { ES_CONFIG } from './consts/es-config.const'\r\n\r\n@NgModule({\r\n providers: [\r\n {\r\n provide: ProductsIndex,\r\n useFactory: (configuration: AxiosElasticSearchConfig): ProductsIndex => {\r\n return new ProductsIndex(new AxiosAdapter(configuration))\r\n },\r\n deps: [ES_CONFIG],\r\n },\r\n ],\r\n})\r\nexport class AngularElasticSeachModule {\r\n static initializeApp(options: AxiosElasticSearchConfig): ModuleWithProviders<AngularElasticSeachModule> {\r\n return {\r\n ngModule: AngularElasticSeachModule,\r\n providers: [{ provide: ES_CONFIG, useValue: options }],\r\n }\r\n }\r\n}\r\n","import { ModuleWithProviders, NgModule } from '@angular/core'\r\nimport {\r\n AngularFireModule,\r\n FIREBASE_APP_NAME,\r\n FIREBASE_OPTIONS,\r\n FirebaseAppConfig,\r\n FirebaseOptions,\r\n} from '@angular/fire'\r\nimport { AngularFirestore } from '@angular/fire/firestore'\r\nimport {\r\n AxiosElasticSearchConfig,\r\n BeautyProfileRepository,\r\n Buy2WinFirestoreRepository,\r\n Buy2WinRepository,\r\n CategoryRepository,\r\n CategoryFirestoreRepository,\r\n CheckoutRepository,\r\n CheckoutFirestoreRepository,\r\n CheckoutSubscriptionFirestoreRepository,\r\n CheckoutSubscriptionRepository,\r\n CouponRepository,\r\n CouponFirestoreRepository,\r\n EditionRepository,\r\n HomeFirestoreRepository,\r\n HomeRepository,\r\n LeadRepository,\r\n LeadFirestoreRepository,\r\n LegacyOrderRepository,\r\n LegacyOrderFirestoreRepository,\r\n ShopMenuFirestoreRepository,\r\n ShopMenuRepository,\r\n OrderRepository,\r\n OrderFirestoreRepository,\r\n PaymentRepository,\r\n PaymentFirestoreRepository,\r\n ProductRepository,\r\n ProductFirestoreRepository,\r\n ProductsIndex,\r\n SubscriptionEditionFirestoreRepository,\r\n SubscriptionFirestoreRepository,\r\n SubscriptionPaymentFirestoreRepository,\r\n SubscriptionPaymentRepository,\r\n SubscriptionPlanFirestoreRepository,\r\n SubscriptionPlanRepository,\r\n SubscriptionProductFirestoreRepository,\r\n SubscriptionProductRepository,\r\n SubscriptionRepository,\r\n UserAddressRepository,\r\n UserAddressFirestoreRepository,\r\n UserBeautyProfileFirestoreRepository,\r\n UserFirestoreRepository,\r\n UserRepository,\r\n VariantRepository,\r\n ProductVariantFirestoreRepository,\r\n UserPaymentMethodRepository,\r\n UserPaymentMethodFirestoreRepository,\r\n} from '@infrab4a/connect'\r\n\r\nimport { AngularElasticSeachModule } from './angular-elastic-search.module'\r\nimport { ES_CONFIG } from './consts/es-config.const'\r\n\r\n@NgModule({\r\n imports: [AngularFireModule, AngularElasticSeachModule],\r\n providers: [\r\n {\r\n provide: 'BeautyProfileRepository',\r\n useFactory: (firestore: AngularFirestore, userRepository: UserFirestoreRepository): BeautyProfileRepository => {\r\n return new UserBeautyProfileFirestoreRepository(firestore.firestore, userRepository)\r\n },\r\n deps: [AngularFirestore, 'UserRepository'],\r\n },\r\n {\r\n provide: 'Buy2WinRepository',\r\n useFactory: (firestore: AngularFirestore): Buy2WinRepository => {\r\n return new Buy2WinFirestoreRepository(firestore.firestore)\r\n },\r\n deps: [AngularFirestore],\r\n },\r\n {\r\n provide: CategoryFirestoreRepository,\r\n useFactory: (firestore: AngularFirestore): CategoryRepository => {\r\n return new CategoryFirestoreRepository(firestore.firestore)\r\n },\r\n deps: [AngularFirestore],\r\n },\r\n {\r\n provide: 'CheckoutRepository',\r\n useFactory: (firestore: AngularFirestore): CheckoutRepository => {\r\n return new CheckoutFirestoreRepository(firestore.firestore)\r\n },\r\n deps: [AngularFirestore],\r\n },\r\n {\r\n provide: 'CheckoutSubscriptionRepository',\r\n useFactory: (firestore: AngularFirestore): CheckoutSubscriptionRepository => {\r\n return new CheckoutSubscriptionFirestoreRepository(firestore.firestore)\r\n },\r\n deps: [AngularFirestore],\r\n },\r\n {\r\n provide: 'CouponRepository',\r\n useFactory: (firestore: AngularFirestore): CouponRepository => {\r\n return new CouponFirestoreRepository(firestore.firestore)\r\n },\r\n deps: [AngularFirestore],\r\n },\r\n {\r\n provide: 'EditionRepository',\r\n useFactory: (\r\n firestore: AngularFirestore,\r\n subscriptionRepository: SubscriptionFirestoreRepository,\r\n ): EditionRepository => {\r\n return new SubscriptionEditionFirestoreRepository(firestore.firestore, subscriptionRepository)\r\n },\r\n deps: [AngularFirestore, 'SubscriptionRepository'],\r\n },\r\n {\r\n provide: 'HomeRepository',\r\n useFactory: (firestore: AngularFirestore): HomeRepository => {\r\n return new HomeFirestoreRepository(firestore.firestore)\r\n },\r\n deps: [AngularFirestore],\r\n },\r\n {\r\n provide: 'LeadRepository',\r\n useFactory: (firestore: AngularFirestore): LeadRepository => {\r\n return new LeadFirestoreRepository(firestore.firestore)\r\n },\r\n deps: [AngularFirestore],\r\n },\r\n {\r\n provide: 'LegacyOrderRepository',\r\n useFactory: (firestore: AngularFirestore): LegacyOrderRepository => {\r\n return new LegacyOrderFirestoreRepository(firestore.firestore)\r\n },\r\n deps: [AngularFirestore],\r\n },\r\n {\r\n provide: 'ShopMenuRepository',\r\n useFactory: (firestore: AngularFirestore): ShopMenuRepository => {\r\n return new ShopMenuFirestoreRepository(firestore.firestore)\r\n },\r\n deps: [AngularFirestore],\r\n },\r\n {\r\n provide: 'OrderRepository',\r\n useFactory: (firestore: AngularFirestore): OrderRepository => {\r\n return new OrderFirestoreRepository(firestore.firestore)\r\n },\r\n deps: [AngularFirestore],\r\n },\r\n {\r\n provide: 'PaymentRepository',\r\n useFactory: (firestore: AngularFirestore): PaymentRepository => {\r\n return new PaymentFirestoreRepository(firestore.firestore)\r\n },\r\n deps: [AngularFirestore],\r\n },\r\n {\r\n provide: ProductFirestoreRepository,\r\n useFactory: (firestore: AngularFirestore): ProductRepository => {\r\n return new ProductFirestoreRepository(firestore.firestore)\r\n },\r\n deps: [AngularFirestore],\r\n },\r\n {\r\n provide: 'SubscriptionPaymentRepository',\r\n useFactory: (\r\n firestore: AngularFirestore,\r\n subscriptionRepository: SubscriptionFirestoreRepository,\r\n ): SubscriptionPaymentRepository => {\r\n return new SubscriptionPaymentFirestoreRepository(firestore.firestore, subscriptionRepository)\r\n },\r\n deps: [AngularFirestore, 'SubscriptionRepository'],\r\n },\r\n {\r\n provide: 'SubscriptionPlanRepository',\r\n useFactory: (firestore: AngularFirestore): SubscriptionPlanRepository => {\r\n return new SubscriptionPlanFirestoreRepository(firestore.firestore)\r\n },\r\n deps: [AngularFirestore],\r\n },\r\n {\r\n provide: 'SubscriptionProductRepository',\r\n useFactory: (firestore: AngularFirestore): SubscriptionProductRepository => {\r\n return new SubscriptionProductFirestoreRepository(firestore.firestore)\r\n },\r\n deps: [AngularFirestore],\r\n },\r\n {\r\n provide: 'SubscriptionRepository',\r\n useFactory: (firestore: AngularFirestore): SubscriptionRepository => {\r\n return new SubscriptionFirestoreRepository(firestore.firestore)\r\n },\r\n deps: [AngularFirestore],\r\n },\r\n {\r\n provide: 'UserRepository',\r\n useFactory: (firestore: AngularFirestore): UserRepository => {\r\n return new UserFirestoreRepository(firestore.firestore)\r\n },\r\n deps: [AngularFirestore],\r\n },\r\n {\r\n provide: 'UserAddressRepository',\r\n useFactory: (firestore: AngularFirestore, userRepository: UserFirestoreRepository): UserAddressRepository => {\r\n return new UserAddressFirestoreRepository(firestore.firestore, userRepository)\r\n },\r\n deps: [AngularFirestore, 'UserRepository'],\r\n },\r\n {\r\n provide: 'UserPaymentMethodRepository',\r\n useFactory: (\r\n firestore: AngularFirestore,\r\n userRepository: UserFirestoreRepository,\r\n ): UserPaymentMethodRepository => {\r\n return new UserPaymentMethodFirestoreRepository(firestore.firestore, userRepository)\r\n },\r\n deps: [AngularFirestore, 'UserRepository'],\r\n },\r\n {\r\n provide: 'VariantRepository',\r\n useFactory: (firestore: AngularFirestore, productRepository: ProductFirestoreRepository): VariantRepository => {\r\n return new ProductVariantFirestoreRepository(firestore.firestore, productRepository)\r\n },\r\n deps: [AngularFirestore, ProductFirestoreRepository],\r\n },\r\n ],\r\n})\r\nexport class AngularFirestoreModule {\r\n static initializeApp(\r\n options: {\r\n firebase: FirebaseOptions\r\n elasticSearch: AxiosElasticSearchConfig\r\n },\r\n nameOrConfig?: string | FirebaseAppConfig,\r\n ): ModuleWithProviders<AngularFireModule> {\r\n return {\r\n ngModule: AngularFirestoreModule,\r\n providers: [\r\n { provide: FIREBASE_OPTIONS, useValue: options.firebase },\r\n { provide: FIREBASE_APP_NAME, useValue: nameOrConfig },\r\n { provide: ES_CONFIG, useValue: options.elasticSearch },\r\n ],\r\n }\r\n }\r\n}\r\n","import { ModuleWithProviders, NgModule } from '@angular/core'\r\nimport {\r\n CategoryRepository,\r\n CategoryHasuraGraphQLRepository,\r\n HasuraGraphQLAuthOptions,\r\n ProductRepository,\r\n ProductHasuraGraphQLRepository,\r\n} from '@infrab4a/connect'\r\n\r\nimport { HASURA_OPTIONS } from './consts'\r\n\r\nexport type HasuraGraphQLOptions = { endpoint: string; credentials: HasuraGraphQLAuthOptions }\r\n\r\n@NgModule({\r\n providers: [\r\n {\r\n provide: 'CategoryRepository',\r\n useExisting: CategoryHasuraGraphQLRepository,\r\n },\r\n {\r\n provide: CategoryHasuraGraphQLRepository,\r\n useFactory: (\r\n options: HasuraGraphQLOptions,\r\n productRepository: ProductHasuraGraphQLRepository,\r\n ): CategoryRepository => {\r\n return new CategoryHasuraGraphQLRepository(options.endpoint, options.credentials, productRepository)\r\n },\r\n deps: [HASURA_OPTIONS, ProductHasuraGraphQLRepository],\r\n },\r\n {\r\n provide: 'ProductRepository',\r\n useExisting: ProductHasuraGraphQLRepository,\r\n },\r\n {\r\n provide: ProductHasuraGraphQLRepository,\r\n useFactory: (options: HasuraGraphQLOptions): ProductRepository => {\r\n return new ProductHasuraGraphQLRepository(options.endpoint, options.credentials)\r\n },\r\n deps: [HASURA_OPTIONS],\r\n },\r\n ],\r\n})\r\nexport class AngularHasuraGraphQLModule {\r\n static initializeApp(options: {\r\n endpoint: string\r\n credentials: HasuraGraphQLAuthOptions\r\n }): ModuleWithProviders<AngularHasuraGraphQLModule> {\r\n return {\r\n ngModule: AngularHasuraGraphQLModule,\r\n providers: [{ provide: HASURA_OPTIONS, useValue: options }],\r\n }\r\n }\r\n}\r\n","import { ModuleWithProviders, NgModule } from '@angular/core'\r\nimport {\r\n AngularFireModule,\r\n FIREBASE_APP_NAME,\r\n FIREBASE_OPTIONS,\r\n FirebaseAppConfig,\r\n FirebaseOptions,\r\n} from '@angular/fire'\r\nimport { AxiosElasticSearchConfig, isNil, Shops } from '@infrab4a/connect'\r\n\r\nimport { AngularFirestoreModule } from './angular-firestore.module'\r\nimport { AngularHasuraGraphQLModule, HasuraGraphQLOptions } from './angular-hasura-graphql.module'\r\nimport {\r\n AuthService,\r\n CartService,\r\n CheckoutService,\r\n CheckoutSubscriptionService,\r\n CouponService,\r\n HomeShopService,\r\n OrderService,\r\n} from './services'\r\nimport { DEFAULT_SHOP, ES_CONFIG, HASURA_OPTIONS } from './consts'\r\n\r\n@NgModule({\r\n imports: [AngularFireModule, AngularFirestoreModule, AngularHasuraGraphQLModule],\r\n providers: [\r\n AuthService,\r\n CartService,\r\n CheckoutService,\r\n CheckoutSubscriptionService,\r\n CouponService,\r\n HomeShopService,\r\n OrderService,\r\n ],\r\n})\r\nexport class AngularConnectModule {\r\n static initializeApp(\r\n defaultShop: Shops,\r\n options: { firebase: FirebaseOptions; elasticSearch: AxiosElasticSearchConfig; hasura: HasuraGraphQLOptions },\r\n nameOrConfig?: string | FirebaseAppConfig,\r\n ): ModuleWithProviders<AngularFireModule> {\r\n return {\r\n ngModule: AngularConnectModule,\r\n providers: [\r\n ...(isNil(defaultShop) ? [] : [{ provide: DEFAULT_SHOP, useValue: defaultShop }]),\r\n ...(isNil(options?.firebase) ? [] : [{ provide: FIREBASE_OPTIONS, useValue: options?.firebase }]),\r\n ...(isNil(options?.firebase) ? [] : [{ provide: FIREBASE_APP_NAME, useValue: nameOrConfig }]),\r\n ...(isNil(options?.elasticSearch) ? [] : [{ provide: ES_CONFIG, useValue: options.elasticSearch }]),\r\n ...(isNil(options?.hasura) ? [] : [{ provide: HASURA_OPTIONS, useValue: options.hasura }]),\r\n ],\r\n }\r\n }\r\n}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|