diff --git a/.swcrc b/.swcrc index 518c7c39..68b65261 100644 --- a/.swcrc +++ b/.swcrc @@ -1,12 +1,16 @@ { - "jsc" : { - "parser": { - "syntax": "typescript", - "decorators": true - }, - "transform": { - "legacyDecorator": true, - "decoratorMetadata": true - } + "jsc": { + "parser": { + "syntax": "typescript", + "decorators": true + }, + "transform": { + "legacyDecorator": true, + "decoratorMetadata": true + }, + "baseUrl": "./", + "paths": { + "@/*": ["src/*"] } -} \ No newline at end of file + } +} diff --git a/src/domain/@shared/event/event-dispatcher.interface.ts b/src/domain/@shared/event/event-dispatcher.interface.ts index 26ba7406..d7e022aa 100644 --- a/src/domain/@shared/event/event-dispatcher.interface.ts +++ b/src/domain/@shared/event/event-dispatcher.interface.ts @@ -1,5 +1,4 @@ -import EventHandlerInterface from "./event-handler.interface"; -import EventInterface from "./event.interface"; +import { EventHandlerInterface, EventInterface } from "."; export default interface EventDispatcherInterface { notify(event: EventInterface): void; diff --git a/src/domain/@shared/event/event-dispatcher.spec.ts b/src/domain/@shared/event/event-dispatcher.spec.ts index 525accdb..10c1ebf7 100644 --- a/src/domain/@shared/event/event-dispatcher.spec.ts +++ b/src/domain/@shared/event/event-dispatcher.spec.ts @@ -1,6 +1,6 @@ import SendEmailWhenProductIsCreatedHandler from "../../product/event/handler/send-email-when-product-is-created.handler"; import ProductCreatedEvent from "../../product/event/product-created.event"; -import EventDispatcher from "./event-dispatcher"; +import { EventDispatcher } from "."; describe("Domain events tests", () => { it("should register an event handler", () => { diff --git a/src/domain/@shared/event/event-dispatcher.ts b/src/domain/@shared/event/event-dispatcher.ts index 7d0a2440..f9206c11 100644 --- a/src/domain/@shared/event/event-dispatcher.ts +++ b/src/domain/@shared/event/event-dispatcher.ts @@ -1,6 +1,8 @@ -import EventDispatcherInterface from "./event-dispatcher.interface"; -import EventHandlerInterface from "./event-handler.interface"; -import eventInterface from "./event.interface"; +import { + EventDispatcherInterface, + EventHandlerInterface, + EventInterface, +} from "."; export default class EventDispatcher implements EventDispatcherInterface { private eventHandlers: { [eventName: string]: EventHandlerInterface[] } = {}; @@ -29,7 +31,7 @@ export default class EventDispatcher implements EventDispatcherInterface { this.eventHandlers = {}; } - notify(event: eventInterface): void { + notify(event: EventInterface): void { const eventName = event.constructor.name; if (this.eventHandlers[eventName]) { this.eventHandlers[eventName].forEach((eventHandler) => { diff --git a/src/domain/@shared/event/event-handler.interface.ts b/src/domain/@shared/event/event-handler.interface.ts index f5136af3..f3be5739 100644 --- a/src/domain/@shared/event/event-handler.interface.ts +++ b/src/domain/@shared/event/event-handler.interface.ts @@ -1,4 +1,4 @@ -import EventInterface from './event.interface'; +import { EventInterface } from "."; export default interface EventHandlerInterface { handle(event: T): void; } \ No newline at end of file diff --git a/src/domain/@shared/event/index.ts b/src/domain/@shared/event/index.ts new file mode 100644 index 00000000..4bafa75b --- /dev/null +++ b/src/domain/@shared/event/index.ts @@ -0,0 +1,11 @@ +import EventDispatcher from "./event-dispatcher"; +import EventDispatcherInterface from "./event-dispatcher.interface"; +import EventHandlerInterface from "./event-handler.interface"; +import EventInterface from "./event.interface"; + +export { + EventDispatcher, + EventHandlerInterface, + EventInterface, + EventDispatcherInterface +}; diff --git a/src/domain/@shared/repository/index.ts b/src/domain/@shared/repository/index.ts new file mode 100644 index 00000000..9be6c8f8 --- /dev/null +++ b/src/domain/@shared/repository/index.ts @@ -0,0 +1,3 @@ +import RepositoryInterface from "./repository-interface"; + +export { RepositoryInterface }; diff --git a/src/domain/checkout/entity/index.ts b/src/domain/checkout/entity/index.ts new file mode 100644 index 00000000..b65fd234 --- /dev/null +++ b/src/domain/checkout/entity/index.ts @@ -0,0 +1,7 @@ +import Order from "./order"; +import OrderItem from "./order_item"; + +export { + OrderItem, + Order +} \ No newline at end of file diff --git a/src/domain/checkout/entity/order.spec.ts b/src/domain/checkout/entity/order.spec.ts index 7385f158..14820191 100644 --- a/src/domain/checkout/entity/order.spec.ts +++ b/src/domain/checkout/entity/order.spec.ts @@ -1,5 +1,4 @@ -import Order from "./order"; -import OrderItem from "./order_item"; +import { Order, OrderItem } from "."; describe("Order unit tests", () => { it("should throw error when id is empty", () => { diff --git a/src/domain/checkout/entity/order.ts b/src/domain/checkout/entity/order.ts index 06f0599c..ae197c01 100644 --- a/src/domain/checkout/entity/order.ts +++ b/src/domain/checkout/entity/order.ts @@ -1,15 +1,13 @@ -import OrderItem from "./order_item"; +import { OrderItem } from "."; export default class Order { private _id: string; private _customerId: string; private _items: OrderItem[]; - private _total: number; constructor(id: string, customerId: string, items: OrderItem[]) { this._id = id; this._customerId = customerId; this._items = items; - this._total = this.total(); this.validate(); } diff --git a/src/domain/checkout/factory/index.ts b/src/domain/checkout/factory/index.ts new file mode 100644 index 00000000..1da091fc --- /dev/null +++ b/src/domain/checkout/factory/index.ts @@ -0,0 +1,3 @@ +import OrderFactory from "./order.factory"; + +export { OrderFactory }; diff --git a/src/domain/checkout/factory/order.factory.spec.ts b/src/domain/checkout/factory/order.factory.spec.ts index fa0ee2c4..6f969874 100644 --- a/src/domain/checkout/factory/order.factory.spec.ts +++ b/src/domain/checkout/factory/order.factory.spec.ts @@ -1,5 +1,5 @@ import { v4 as uuid } from "uuid"; -import OrderFactory from "./order.factory"; +import { OrderFactory } from "."; describe("Order factory unit test", () => { it("should create an order", () => { diff --git a/src/domain/checkout/factory/order.factory.ts b/src/domain/checkout/factory/order.factory.ts index aba369b9..d00d8c52 100644 --- a/src/domain/checkout/factory/order.factory.ts +++ b/src/domain/checkout/factory/order.factory.ts @@ -1,5 +1,4 @@ -import Order from "../entity/order"; -import OrderItem from "../entity/order_item"; +import { Order, OrderItem } from "@/domain/checkout/entity"; interface OrderFactoryProps { id: string; @@ -24,8 +23,7 @@ export default class OrderFactory { item.quantity ); }); - - return new Order(props.id, props.customerId, items); + return new Order(props.id, props.customerId, items); } } diff --git a/src/domain/checkout/repository/index.ts b/src/domain/checkout/repository/index.ts new file mode 100644 index 00000000..144b1968 --- /dev/null +++ b/src/domain/checkout/repository/index.ts @@ -0,0 +1,3 @@ +import OrderRepositoryInterface from "./order-repository.interface"; + +export { OrderRepositoryInterface }; diff --git a/src/domain/checkout/repository/order-repository.interface.ts b/src/domain/checkout/repository/order-repository.interface.ts index cfa84472..3c4910f0 100644 --- a/src/domain/checkout/repository/order-repository.interface.ts +++ b/src/domain/checkout/repository/order-repository.interface.ts @@ -1,4 +1,5 @@ -import RepositoryInterface from "../../@shared/repository/repository-interface"; -import Order from "../entity/order"; +import { RepositoryInterface } from "@/domain/@shared/repository"; +import { Order } from "@/domain/checkout/entity"; -export default interface OrderRepositoryInterface extends RepositoryInterface {} \ No newline at end of file +export default interface OrderRepositoryInterface + extends RepositoryInterface {} diff --git a/src/domain/checkout/service/index.ts b/src/domain/checkout/service/index.ts new file mode 100644 index 00000000..05c1ec6c --- /dev/null +++ b/src/domain/checkout/service/index.ts @@ -0,0 +1,5 @@ +import OrderService from "./order.service"; + +export { + OrderService +} \ No newline at end of file diff --git a/src/domain/checkout/service/order.service.spec.ts b/src/domain/checkout/service/order.service.spec.ts index 1ea14e1a..95b37a2a 100644 --- a/src/domain/checkout/service/order.service.spec.ts +++ b/src/domain/checkout/service/order.service.spec.ts @@ -1,7 +1,6 @@ -import Customer from "../../customer/entity/customer"; -import Order from "../entity/order"; -import OrderItem from "../entity/order_item"; -import OrderService from "./order.service"; +import { Customer } from "@/domain/customer/entity"; +import { Order, OrderItem } from "@/domain/checkout/entity"; +import { OrderService } from "."; describe("Order service unit tets", () => { it("should place an order", () => { const customer = new Customer("c1", "Customer 1"); diff --git a/src/domain/checkout/service/order.service.ts b/src/domain/checkout/service/order.service.ts index cf71d0d2..fe817d96 100644 --- a/src/domain/checkout/service/order.service.ts +++ b/src/domain/checkout/service/order.service.ts @@ -1,7 +1,6 @@ -import Order from "../entity/order"; -import OrderItem from "../entity/order_item"; import { v4 as uuid } from "uuid"; -import Customer from "../../customer/entity/customer"; +import { Order, OrderItem } from "../entity"; +import { Customer } from "@/domain/customer/entity"; export default class OrderService { static placeOrder(customer: Customer, items: OrderItem[]): Order { diff --git a/src/domain/customer/entity/customer.spec.ts b/src/domain/customer/entity/customer.spec.ts index e7e921b7..770c6c8d 100644 --- a/src/domain/customer/entity/customer.spec.ts +++ b/src/domain/customer/entity/customer.spec.ts @@ -1,5 +1,5 @@ -import Address from "../value-object/address"; -import Customer from "./customer"; +import { Address } from "@/domain/customer/value-object"; +import { Customer } from "."; describe("Customer unit tests", () => { it("should throw error when id is empty", () => { diff --git a/src/domain/customer/entity/customer.ts b/src/domain/customer/entity/customer.ts index 3667aa55..336f02bf 100644 --- a/src/domain/customer/entity/customer.ts +++ b/src/domain/customer/entity/customer.ts @@ -1,4 +1,4 @@ -import Address from "../value-object/address"; +import { Address } from "@/domain/customer/value-object"; export default class Customer { private _id: string; @@ -42,7 +42,7 @@ export default class Customer { get Address(): Address { return this._address; } - + changeAddress(address: Address) { this._address = address; } diff --git a/src/domain/customer/entity/index.ts b/src/domain/customer/entity/index.ts new file mode 100644 index 00000000..966633d4 --- /dev/null +++ b/src/domain/customer/entity/index.ts @@ -0,0 +1,3 @@ +import Customer from "./customer"; + +export { Customer }; diff --git a/src/domain/customer/factory/customer.factory.spec.ts b/src/domain/customer/factory/customer.factory.spec.ts index 4d4aa2c2..e97bb119 100644 --- a/src/domain/customer/factory/customer.factory.spec.ts +++ b/src/domain/customer/factory/customer.factory.spec.ts @@ -1,5 +1,5 @@ -import CustomerFactory from "./customer.factory"; -import Address from "../value-object/address"; +import { Address } from "@/domain/customer/value-object"; +import { CustomerFactory } from "."; describe("Customer factory unit test", () => { it("should create a customer", () => { diff --git a/src/domain/customer/factory/customer.factory.ts b/src/domain/customer/factory/customer.factory.ts index 19d096ba..7a340a74 100644 --- a/src/domain/customer/factory/customer.factory.ts +++ b/src/domain/customer/factory/customer.factory.ts @@ -1,6 +1,6 @@ -import Customer from "../entity/customer"; import { v4 as uuid } from "uuid"; -import Address from "../value-object/address"; +import { Address } from "@/domain/customer/value-object"; +import { Customer } from "@/domain/customer/entity"; export default class CustomerFactory { public static create(name: string): Customer { diff --git a/src/domain/customer/factory/index.ts b/src/domain/customer/factory/index.ts new file mode 100644 index 00000000..ad1e6f2f --- /dev/null +++ b/src/domain/customer/factory/index.ts @@ -0,0 +1,3 @@ +import CustomerFactory from "./customer.factory"; + +export { CustomerFactory }; diff --git a/src/domain/customer/repository/customer-repository.interface.ts b/src/domain/customer/repository/customer-repository.interface.ts index 8ed2b377..b3fbeded 100644 --- a/src/domain/customer/repository/customer-repository.interface.ts +++ b/src/domain/customer/repository/customer-repository.interface.ts @@ -1,5 +1,5 @@ -import RepositoryInterface from "../../@shared/repository/repository-interface"; -import Customer from "../entity/customer"; +import { RepositoryInterface } from "@/domain/@shared/repository"; +import { Customer } from "@/domain/customer/entity"; export default interface CustomerRepositoryInterface extends RepositoryInterface {} diff --git a/src/domain/customer/repository/index.ts b/src/domain/customer/repository/index.ts new file mode 100644 index 00000000..2815e6c0 --- /dev/null +++ b/src/domain/customer/repository/index.ts @@ -0,0 +1,3 @@ +import CustomerRepositoryInterface from "./customer-repository.interface"; + +export { CustomerRepositoryInterface }; diff --git a/src/domain/customer/value-object/address.ts b/src/domain/customer/value-object/address.ts index 8c9f4597..7e3c16dd 100644 --- a/src/domain/customer/value-object/address.ts +++ b/src/domain/customer/value-object/address.ts @@ -28,7 +28,7 @@ export default class Address { get city(): string { return this._city; } - + validate() { if (this._street.length === 0) { throw new Error("Street is required"); diff --git a/src/domain/customer/value-object/index.ts b/src/domain/customer/value-object/index.ts new file mode 100644 index 00000000..a4ece46c --- /dev/null +++ b/src/domain/customer/value-object/index.ts @@ -0,0 +1,3 @@ +import Address from "./address"; + +export { Address }; diff --git a/src/domain/product/entity/index.ts b/src/domain/product/entity/index.ts new file mode 100644 index 00000000..3eeba0f7 --- /dev/null +++ b/src/domain/product/entity/index.ts @@ -0,0 +1,5 @@ +import Product from "./product"; +import ProductB from "./product-b"; +import ProductInterface from "./product.interface"; + +export { ProductB, ProductInterface, Product }; diff --git a/src/domain/product/entity/product-b.ts b/src/domain/product/entity/product-b.ts index d1a5d609..a5c7d9a3 100644 --- a/src/domain/product/entity/product-b.ts +++ b/src/domain/product/entity/product-b.ts @@ -1,4 +1,4 @@ -import ProductInterface from "./product.interface"; +import { ProductInterface } from "."; export default class ProductB implements ProductInterface { private _id: string; diff --git a/src/domain/product/entity/product.spec.ts b/src/domain/product/entity/product.spec.ts index e600903f..f6740664 100644 --- a/src/domain/product/entity/product.spec.ts +++ b/src/domain/product/entity/product.spec.ts @@ -1,4 +1,4 @@ -import Product from "./product"; +import { Product } from "."; describe("Product unit tests", () => { it("should throw error when id is empty", () => { diff --git a/src/domain/product/entity/product.ts b/src/domain/product/entity/product.ts index 7211331b..dca091fe 100644 --- a/src/domain/product/entity/product.ts +++ b/src/domain/product/entity/product.ts @@ -1,4 +1,4 @@ -import ProductInterface from "./product.interface"; +import { ProductInterface } from "."; export default class Product implements ProductInterface { private _id: string; @@ -15,7 +15,7 @@ export default class Product implements ProductInterface { get id(): string { return this._id; } - + get name(): string { return this._name; } diff --git a/src/domain/product/event/handler/index.ts b/src/domain/product/event/handler/index.ts new file mode 100644 index 00000000..ade108be --- /dev/null +++ b/src/domain/product/event/handler/index.ts @@ -0,0 +1,5 @@ +import SendEmailWhenProductIsCreatedHandler from "./send-email-when-product-is-created.handler"; + +export { + SendEmailWhenProductIsCreatedHandler +} \ No newline at end of file diff --git a/src/domain/product/event/handler/send-email-when-product-is-created.handler.ts b/src/domain/product/event/handler/send-email-when-product-is-created.handler.ts index 0da8ff4a..feedeaad 100644 --- a/src/domain/product/event/handler/send-email-when-product-is-created.handler.ts +++ b/src/domain/product/event/handler/send-email-when-product-is-created.handler.ts @@ -1,10 +1,10 @@ -import EventHandlerInterface from "../../../@shared/event/event-handler.interface"; -import ProductCreatedEvent from "../product-created.event"; +import EventHandlerInterface from "@/domain/@shared/event/event-handler.interface"; +import { ProductCreatedEvent } from "@/domain/product/event"; export default class SendEmailWhenProductIsCreatedHandler implements EventHandlerInterface { handle(event: ProductCreatedEvent): void { - console.log(`Sending email to .....`); + console.log(`Sending email to .....`); } } diff --git a/src/domain/product/event/index.ts b/src/domain/product/event/index.ts new file mode 100644 index 00000000..cf7e6f61 --- /dev/null +++ b/src/domain/product/event/index.ts @@ -0,0 +1,3 @@ +import ProductCreatedEvent from "./product-created.event"; + +export { ProductCreatedEvent }; diff --git a/src/domain/product/event/product-created.event.ts b/src/domain/product/event/product-created.event.ts index 42b49b7e..89898268 100644 --- a/src/domain/product/event/product-created.event.ts +++ b/src/domain/product/event/product-created.event.ts @@ -1,4 +1,4 @@ -import EventInterface from "../../@shared/event/event.interface"; +import { EventInterface } from "@/domain/@shared/event"; export default class ProductCreatedEvent implements EventInterface { dataTimeOccurred: Date; diff --git a/src/domain/product/factory/index.ts b/src/domain/product/factory/index.ts new file mode 100644 index 00000000..e38f3647 --- /dev/null +++ b/src/domain/product/factory/index.ts @@ -0,0 +1,3 @@ +import ProductFactory from "./product.factory"; + +export { ProductFactory }; diff --git a/src/domain/product/factory/product.factory.spec.ts b/src/domain/product/factory/product.factory.spec.ts index cc0515bd..3b55e574 100644 --- a/src/domain/product/factory/product.factory.spec.ts +++ b/src/domain/product/factory/product.factory.spec.ts @@ -1,4 +1,4 @@ -import ProductFactory from "./product.factory"; +import { ProductFactory } from "."; describe("Product factory unit test", () => { it("should create a proct type a", () => { diff --git a/src/domain/product/factory/product.factory.ts b/src/domain/product/factory/product.factory.ts index 3b59260c..b7d3217c 100644 --- a/src/domain/product/factory/product.factory.ts +++ b/src/domain/product/factory/product.factory.ts @@ -1,11 +1,11 @@ -import Product from "../entity/product"; -import ProductInterface from "../entity/product.interface"; import { v4 as uuid } from "uuid"; -import ProductB from "../entity/product-b"; +import { Product } from "@/domain/product/entity"; +import { ProductInterface } from "@/domain/product/entity"; +import { ProductB } from "@/domain/product/entity"; export default class ProductFactory { public static create( - type: string, + type: "a" | "b" | "c", name: string, price: number ): ProductInterface { diff --git a/src/domain/product/repository/index.ts b/src/domain/product/repository/index.ts new file mode 100644 index 00000000..030363b4 --- /dev/null +++ b/src/domain/product/repository/index.ts @@ -0,0 +1,3 @@ +import ProductRepositoryInterface from "./product-repository.interface"; + +export { ProductRepositoryInterface }; diff --git a/src/domain/product/repository/product-repository.interface.ts b/src/domain/product/repository/product-repository.interface.ts index 3cbd7e77..99dc908a 100644 --- a/src/domain/product/repository/product-repository.interface.ts +++ b/src/domain/product/repository/product-repository.interface.ts @@ -1,5 +1,5 @@ -import RepositoryInterface from "../../@shared/repository/repository-interface"; -import Product from "../entity/product"; +import { RepositoryInterface } from "../../@shared/repository"; +import { Product } from "../entity"; export default interface ProductRepositoryInterface extends RepositoryInterface {} diff --git a/src/domain/product/service/index.ts b/src/domain/product/service/index.ts new file mode 100644 index 00000000..a36777a9 --- /dev/null +++ b/src/domain/product/service/index.ts @@ -0,0 +1,3 @@ +import ProductService from "./product.service"; + +export { ProductService }; diff --git a/src/domain/product/service/product.service.spec.ts b/src/domain/product/service/product.service.spec.ts index 0c6857a5..9b76bc42 100644 --- a/src/domain/product/service/product.service.spec.ts +++ b/src/domain/product/service/product.service.spec.ts @@ -1,5 +1,5 @@ -import Product from "../entity/product"; -import ProductService from "./product.service"; +import { Product } from "@/domain/product/entity"; +import { ProductService } from "."; describe("Product service unit tests", () => { it("should change the prices of all products", () => { diff --git a/src/domain/product/service/product.service.ts b/src/domain/product/service/product.service.ts index 48c79641..f3c97d94 100644 --- a/src/domain/product/service/product.service.ts +++ b/src/domain/product/service/product.service.ts @@ -1,4 +1,4 @@ -import Product from "../entity/product"; +import { Product } from "@/domain/product/entity"; export default class ProductService { static increasePrice(products: Product[], percentage: number): Product[] { diff --git a/src/infrastructure/customer/repository/sequelize/customer.model.ts b/src/infrastructure/customer/repository/sequelize/customer.model.ts index c9ad1d3a..10c3c463 100644 --- a/src/infrastructure/customer/repository/sequelize/customer.model.ts +++ b/src/infrastructure/customer/repository/sequelize/customer.model.ts @@ -1,37 +1,32 @@ -import { - Table, - Model, - PrimaryKey, - Column - } from "sequelize-typescript"; - - @Table({ - tableName: "customers", - timestamps: false, - }) - export default class CustomerModel extends Model { - @PrimaryKey - @Column - declare id: string; - - @Column({ allowNull: false }) - declare name: string; - - @Column({ allowNull: false }) - declare street: string; - - @Column({ allowNull: false }) - declare number: number; - - @Column({ allowNull: false }) - declare zipcode: string; - - @Column({ allowNull: false }) - declare city: string; - - @Column({ allowNull: false }) - declare active: boolean; - - @Column({ allowNull: false }) - declare rewardPoints: number; - } \ No newline at end of file +import { Table, Model, PrimaryKey, Column } from "sequelize-typescript"; + +@Table({ + tableName: "customers", + timestamps: false, +}) +export default class CustomerModel extends Model { + @PrimaryKey + @Column + declare id: string; + + @Column({ allowNull: false }) + declare name: string; + + @Column({ allowNull: false }) + declare street: string; + + @Column({ allowNull: false }) + declare number: number; + + @Column({ allowNull: false }) + declare zipcode: string; + + @Column({ allowNull: false }) + declare city: string; + + @Column({ allowNull: false }) + declare active: boolean; + + @Column({ allowNull: false }) + declare rewardPoints: number; +} diff --git a/src/infrastructure/customer/repository/sequelize/customer.repository.spec.ts b/src/infrastructure/customer/repository/sequelize/customer.repository.spec.ts index 0957be93..3a84709e 100644 --- a/src/infrastructure/customer/repository/sequelize/customer.repository.spec.ts +++ b/src/infrastructure/customer/repository/sequelize/customer.repository.spec.ts @@ -1,8 +1,7 @@ import { Sequelize } from "sequelize-typescript"; -import Customer from "../../../../domain/customer/entity/customer"; -import Address from "../../../../domain/customer/value-object/address"; -import CustomerModel from "./customer.model"; -import CustomerRepository from "./customer.repository"; +import { Customer } from "@/domain/customer/entity"; +import { Address } from "@/domain/customer/value-object"; +import { CustomerModel, CustomerRepository } from "."; describe("Customer repository test", () => { let sequelize: Sequelize; diff --git a/src/infrastructure/customer/repository/sequelize/customer.repository.ts b/src/infrastructure/customer/repository/sequelize/customer.repository.ts index dd6fc7c6..403d8cf1 100644 --- a/src/infrastructure/customer/repository/sequelize/customer.repository.ts +++ b/src/infrastructure/customer/repository/sequelize/customer.repository.ts @@ -1,7 +1,7 @@ -import Customer from "../../../../domain/customer/entity/customer"; -import Address from "../../../../domain/customer/value-object/address"; -import CustomerRepositoryInterface from "../../../../domain/customer/repository/customer-repository.interface"; -import CustomerModel from "./customer.model"; +import { Customer } from "@/domain/customer/entity"; +import { Address } from "@/domain/customer/value-object"; +import { CustomerRepositoryInterface } from "@/domain/customer/repository"; +import { CustomerModel } from "."; export default class CustomerRepository implements CustomerRepositoryInterface { async create(entity: Customer): Promise { diff --git a/src/infrastructure/customer/repository/sequelize/index.ts b/src/infrastructure/customer/repository/sequelize/index.ts new file mode 100644 index 00000000..cb428247 --- /dev/null +++ b/src/infrastructure/customer/repository/sequelize/index.ts @@ -0,0 +1,4 @@ +import CustomerModel from "./customer.model"; +import CustomerRepository from "./customer.repository"; + +export { CustomerModel, CustomerRepository }; diff --git a/src/infrastructure/order/repository/sequelize/index.ts b/src/infrastructure/order/repository/sequelize/index.ts new file mode 100644 index 00000000..07790d14 --- /dev/null +++ b/src/infrastructure/order/repository/sequelize/index.ts @@ -0,0 +1,5 @@ +import OrderItemModel from "./order-item.model"; +import OrderModel from "./order.model"; +import OrderRepository from "./order.repository"; + +export { OrderItemModel, OrderModel, OrderRepository }; diff --git a/src/infrastructure/order/repository/sequilize/order-item.model.ts b/src/infrastructure/order/repository/sequelize/order-item.model.ts similarity index 90% rename from src/infrastructure/order/repository/sequilize/order-item.model.ts rename to src/infrastructure/order/repository/sequelize/order-item.model.ts index b4ef1bd8..846d1e9d 100644 --- a/src/infrastructure/order/repository/sequilize/order-item.model.ts +++ b/src/infrastructure/order/repository/sequelize/order-item.model.ts @@ -6,10 +6,9 @@ import { ForeignKey, BelongsTo, } from "sequelize-typescript"; -import ProductModel from "../../../product/repository/sequelize/product.model"; +import ProductModel from "@/infrastructure/product/repository/sequelize/product.model"; import OrderModel from "./order.model"; - @Table({ tableName: "order_items", timestamps: false, diff --git a/src/infrastructure/order/repository/sequilize/order.model.ts b/src/infrastructure/order/repository/sequelize/order.model.ts similarity index 81% rename from src/infrastructure/order/repository/sequilize/order.model.ts rename to src/infrastructure/order/repository/sequelize/order.model.ts index 1b73617d..ed4904a2 100644 --- a/src/infrastructure/order/repository/sequilize/order.model.ts +++ b/src/infrastructure/order/repository/sequelize/order.model.ts @@ -7,8 +7,8 @@ import { BelongsTo, HasMany, } from "sequelize-typescript"; -import CustomerModel from "../../../customer/repository/sequelize/customer.model"; -import OrderItemModel from "./order-item.model"; +import { CustomerModel } from "@/infrastructure/customer/repository/sequelize"; +import { OrderItemModel } from "."; @Table({ tableName: "orders", diff --git a/src/infrastructure/order/repository/sequilize/order.repository.spec.ts b/src/infrastructure/order/repository/sequelize/order.repository.spec.ts similarity index 68% rename from src/infrastructure/order/repository/sequilize/order.repository.spec.ts rename to src/infrastructure/order/repository/sequelize/order.repository.spec.ts index 82782b4f..8df4f4be 100644 --- a/src/infrastructure/order/repository/sequilize/order.repository.spec.ts +++ b/src/infrastructure/order/repository/sequelize/order.repository.spec.ts @@ -1,16 +1,17 @@ import { Sequelize } from "sequelize-typescript"; -import Order from "../../../../domain/checkout/entity/order"; -import OrderItem from "../../../../domain/checkout/entity/order_item"; -import Customer from "../../../../domain/customer/entity/customer"; -import Address from "../../../../domain/customer/value-object/address"; -import Product from "../../../../domain/product/entity/product"; -import CustomerModel from "../../../customer/repository/sequelize/customer.model"; -import CustomerRepository from "../../../customer/repository/sequelize/customer.repository"; -import ProductModel from "../../../product/repository/sequelize/product.model"; -import ProductRepository from "../../../product/repository/sequelize/product.repository"; -import OrderItemModel from "./order-item.model"; -import OrderModel from "./order.model"; -import OrderRepository from "./order.repository"; +import { Order, OrderItem } from "@/domain/checkout/entity"; +import { Customer } from "@/domain/customer/entity"; +import { Address } from "@/domain/customer/value-object"; +import { + CustomerModel, + CustomerRepository, +} from "@/infrastructure/customer/repository/sequelize"; +import { + ProductModel, + ProductRepository, +} from "@/infrastructure/product/repository/sequelize"; +import { Product } from "@/domain/product/entity"; +import { OrderItemModel, OrderModel, OrderRepository } from "."; describe("Order repository test", () => { let sequelize: Sequelize; diff --git a/src/infrastructure/order/repository/sequilize/order.repository.ts b/src/infrastructure/order/repository/sequelize/order.repository.ts similarity index 77% rename from src/infrastructure/order/repository/sequilize/order.repository.ts rename to src/infrastructure/order/repository/sequelize/order.repository.ts index cf5df8da..cfdbf52f 100644 --- a/src/infrastructure/order/repository/sequilize/order.repository.ts +++ b/src/infrastructure/order/repository/sequelize/order.repository.ts @@ -1,6 +1,5 @@ -import Order from "../../../../domain/checkout/entity/order"; -import OrderItemModel from "./order-item.model"; -import OrderModel from "./order.model"; +import { Order } from "@/domain/checkout/entity"; +import { OrderItemModel, OrderModel } from "."; export default class OrderRepository { async create(entity: Order): Promise { diff --git a/src/infrastructure/product/repository/sequelize/index.ts b/src/infrastructure/product/repository/sequelize/index.ts new file mode 100644 index 00000000..e54031b6 --- /dev/null +++ b/src/infrastructure/product/repository/sequelize/index.ts @@ -0,0 +1,4 @@ +import ProductModel from "./product.model"; +import ProductRepository from "./product.repository"; + +export { ProductModel, ProductRepository }; diff --git a/src/infrastructure/product/repository/sequelize/product.repository.spec.ts b/src/infrastructure/product/repository/sequelize/product.repository.spec.ts index 7967087a..09fc666a 100644 --- a/src/infrastructure/product/repository/sequelize/product.repository.spec.ts +++ b/src/infrastructure/product/repository/sequelize/product.repository.spec.ts @@ -1,7 +1,6 @@ import { Sequelize } from "sequelize-typescript"; -import Product from "../../../../domain/product/entity/product"; -import ProductModel from "./product.model"; -import ProductRepository from "./product.repository"; +import { Product } from "@/domain/product/entity"; +import { ProductModel, ProductRepository } from "."; describe("Product repository test", () => { let sequileze: Sequelize; @@ -92,7 +91,6 @@ describe("Product repository test", () => { const foundProducts = await productRepository.findAll(); const products = [product, product2]; - expect(products).toEqual(foundProducts); + expect(products).toEqual(foundProducts); }); - }); diff --git a/src/infrastructure/product/repository/sequelize/product.repository.ts b/src/infrastructure/product/repository/sequelize/product.repository.ts index 16c28a04..3ebef42b 100644 --- a/src/infrastructure/product/repository/sequelize/product.repository.ts +++ b/src/infrastructure/product/repository/sequelize/product.repository.ts @@ -1,6 +1,6 @@ -import Product from "../../../../domain/product/entity/product"; -import ProductRepositoryInterface from "../../../../domain/product/repository/product-repository.interface"; -import ProductModel from "./product.model"; +import { Product } from "@/domain/product/entity"; +import { ProductRepositoryInterface } from "@/domain/product/repository"; +import { ProductModel } from "."; export default class ProductRepository implements ProductRepositoryInterface { async create(entity: Product): Promise { @@ -32,8 +32,9 @@ export default class ProductRepository implements ProductRepositoryInterface { async findAll(): Promise { const productModels = await ProductModel.findAll(); - return productModels.map((productModel) => - new Product(productModel.id, productModel.name, productModel.price) + return productModels.map( + (productModel) => + new Product(productModel.id, productModel.name, productModel.price) ); } } diff --git a/tsconfig.json b/tsconfig.json index 712161e2..a489c15c 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -25,10 +25,10 @@ /* Modules */ "module": "commonjs", /* Specify what module code is generated. */ - // "rootDir": "./", /* Specify the root folder within your source files. */ + "rootDir": "src", /* Specify the root folder within your source files. */ // "moduleResolution": "node", /* Specify how TypeScript looks up a file from a given module specifier. */ - // "baseUrl": "./", /* Specify the base directory to resolve non-relative module names. */ - // "paths": {}, /* Specify a set of entries that re-map imports to additional lookup locations. */ + "baseUrl": "src", /* Specify the base directory to resolve non-relative module names. */ + "paths": {"@/*": ["*"]}, /* Specify a set of entries that re-map imports to additional lookup locations. */ // "rootDirs": [], /* Allow multiple folders to be treated as one when resolving modules. */ // "typeRoots": [], /* Specify multiple folders that act like `./node_modules/@types`. */ // "types": [], /* Specify type package names to be included without being referenced in a source file. */ diff --git a/tsconfig.tsbuildinfo b/tsconfig.tsbuildinfo new file mode 100644 index 00000000..24162f62 --- /dev/null +++ b/tsconfig.tsbuildinfo @@ -0,0 +1 @@ +{"program":{"fileNames":["./node_modules/typescript/lib/lib.es5.d.ts","./node_modules/typescript/lib/lib.es2015.d.ts","./node_modules/typescript/lib/lib.es2016.d.ts","./node_modules/typescript/lib/lib.es2017.d.ts","./node_modules/typescript/lib/lib.es2018.d.ts","./node_modules/typescript/lib/lib.es2019.d.ts","./node_modules/typescript/lib/lib.es2020.d.ts","./node_modules/typescript/lib/lib.dom.d.ts","./node_modules/typescript/lib/lib.dom.iterable.d.ts","./node_modules/typescript/lib/lib.webworker.importscripts.d.ts","./node_modules/typescript/lib/lib.scripthost.d.ts","./node_modules/typescript/lib/lib.es2015.core.d.ts","./node_modules/typescript/lib/lib.es2015.collection.d.ts","./node_modules/typescript/lib/lib.es2015.generator.d.ts","./node_modules/typescript/lib/lib.es2015.iterable.d.ts","./node_modules/typescript/lib/lib.es2015.promise.d.ts","./node_modules/typescript/lib/lib.es2015.proxy.d.ts","./node_modules/typescript/lib/lib.es2015.reflect.d.ts","./node_modules/typescript/lib/lib.es2015.symbol.d.ts","./node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","./node_modules/typescript/lib/lib.es2016.array.include.d.ts","./node_modules/typescript/lib/lib.es2017.object.d.ts","./node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","./node_modules/typescript/lib/lib.es2017.string.d.ts","./node_modules/typescript/lib/lib.es2017.intl.d.ts","./node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","./node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","./node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","./node_modules/typescript/lib/lib.es2018.intl.d.ts","./node_modules/typescript/lib/lib.es2018.promise.d.ts","./node_modules/typescript/lib/lib.es2018.regexp.d.ts","./node_modules/typescript/lib/lib.es2019.array.d.ts","./node_modules/typescript/lib/lib.es2019.object.d.ts","./node_modules/typescript/lib/lib.es2019.string.d.ts","./node_modules/typescript/lib/lib.es2019.symbol.d.ts","./node_modules/typescript/lib/lib.es2020.bigint.d.ts","./node_modules/typescript/lib/lib.es2020.promise.d.ts","./node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","./node_modules/typescript/lib/lib.es2020.string.d.ts","./node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","./node_modules/typescript/lib/lib.es2020.intl.d.ts","./node_modules/typescript/lib/lib.esnext.intl.d.ts","./node_modules/typescript/lib/lib.es2020.full.d.ts","./src/domain/@shared/event/event-dispatcher.ts","./src/domain/@shared/event/event-handler.interface.ts","./src/domain/@shared/event/event.interface.ts","./src/domain/@shared/event/index.ts","./src/domain/@shared/event/event-dispatcher.interface.ts","./src/domain/product/event/product-created.event.ts","./src/domain/product/event/index.ts","./src/domain/product/event/handler/send-email-when-product-is-created.handler.ts","./src/domain/@shared/event/event-dispatcher.spec.ts","./src/domain/@shared/repository/repository-interface.ts","./src/domain/@shared/repository/index.ts","./src/domain/checkout/entity/order.ts","./src/domain/checkout/entity/order_item.ts","./src/domain/checkout/entity/index.ts","./src/domain/checkout/entity/order.spec.ts","./src/domain/checkout/factory/order.factory.ts","./src/domain/checkout/factory/index.ts","./node_modules/@types/uuid/index.d.ts","./src/domain/checkout/factory/order.factory.spec.ts","./src/domain/checkout/repository/order-repository.interface.ts","./src/domain/checkout/repository/index.ts","./src/domain/customer/value-object/address.ts","./src/domain/customer/value-object/index.ts","./src/domain/customer/entity/customer.ts","./src/domain/customer/entity/index.ts","./src/domain/checkout/service/order.service.ts","./src/domain/checkout/service/index.ts","./src/domain/checkout/service/order.service.spec.ts","./src/domain/customer/entity/customer.spec.ts","./src/domain/customer/factory/customer.factory.ts","./src/domain/customer/factory/index.ts","./src/domain/customer/factory/customer.factory.spec.ts","./src/domain/customer/repository/customer-repository.interface.ts","./src/domain/customer/repository/index.ts","./src/domain/product/entity/product.ts","./src/domain/product/entity/product-b.ts","./src/domain/product/entity/product.interface.ts","./src/domain/product/entity/index.ts","./src/domain/product/entity/product.spec.ts","./src/domain/product/event/handler/index.ts","./src/domain/product/factory/product.factory.ts","./src/domain/product/factory/index.ts","./src/domain/product/factory/product.factory.spec.ts","./src/domain/product/repository/product-repository.interface.ts","./src/domain/product/repository/index.ts","./src/domain/product/service/product.service.ts","./src/domain/product/service/index.ts","./src/domain/product/service/product.service.spec.ts","./node_modules/sequelize/types/data-types.d.ts","./node_modules/sequelize/types/deferrable.d.ts","./node_modules/sequelize/types/operators.d.ts","./node_modules/sequelize/types/query-types.d.ts","./node_modules/sequelize/types/table-hints.d.ts","./node_modules/sequelize/types/index-hints.d.ts","./node_modules/sequelize/types/associations/base.d.ts","./node_modules/sequelize/types/associations/belongs-to.d.ts","./node_modules/sequelize/types/associations/has-one.d.ts","./node_modules/sequelize/types/associations/has-many.d.ts","./node_modules/sequelize/types/associations/belongs-to-many.d.ts","./node_modules/sequelize/types/associations/index.d.ts","./node_modules/sequelize/types/instance-validator.d.ts","./node_modules/sequelize/types/dialects/abstract/connection-manager.d.ts","./node_modules/sequelize/types/model-manager.d.ts","./node_modules/sequelize/types/transaction.d.ts","./node_modules/sequelize/types/utils/set-required.d.ts","./node_modules/sequelize/types/dialects/abstract/query-interface.d.ts","./node_modules/sequelize/types/sequelize.d.ts","./node_modules/sequelize/types/dialects/abstract/query.d.ts","./node_modules/sequelize/types/hooks.d.ts","./node_modules/sequelize/types/model.d.ts","./node_modules/sequelize/types/utils.d.ts","./node_modules/sequelize/types/errors/base-error.d.ts","./node_modules/sequelize/types/errors/database-error.d.ts","./node_modules/sequelize/types/errors/aggregate-error.d.ts","./node_modules/sequelize/types/errors/association-error.d.ts","./node_modules/sequelize/types/errors/bulk-record-error.d.ts","./node_modules/sequelize/types/errors/connection-error.d.ts","./node_modules/sequelize/types/errors/eager-loading-error.d.ts","./node_modules/sequelize/types/errors/empty-result-error.d.ts","./node_modules/sequelize/types/errors/instance-error.d.ts","./node_modules/sequelize/types/errors/optimistic-lock-error.d.ts","./node_modules/sequelize/types/errors/query-error.d.ts","./node_modules/sequelize/types/errors/sequelize-scope-error.d.ts","./node_modules/sequelize/types/errors/validation-error.d.ts","./node_modules/sequelize/types/errors/connection/access-denied-error.d.ts","./node_modules/sequelize/types/errors/connection/connection-acquire-timeout-error.d.ts","./node_modules/sequelize/types/errors/connection/connection-refused-error.d.ts","./node_modules/sequelize/types/errors/connection/connection-timed-out-error.d.ts","./node_modules/sequelize/types/errors/connection/host-not-found-error.d.ts","./node_modules/sequelize/types/errors/connection/host-not-reachable-error.d.ts","./node_modules/sequelize/types/errors/connection/invalid-connection-error.d.ts","./node_modules/sequelize/types/errors/database/exclusion-constraint-error.d.ts","./node_modules/sequelize/types/errors/database/foreign-key-constraint-error.d.ts","./node_modules/sequelize/types/errors/database/timeout-error.d.ts","./node_modules/sequelize/types/errors/database/unknown-constraint-error.d.ts","./node_modules/sequelize/types/errors/validation/unique-constraint-error.d.ts","./node_modules/sequelize/types/dialects/mssql/async-queue.d.ts","./node_modules/sequelize/types/errors/index.d.ts","./node_modules/@types/validator/lib/isBoolean.d.ts","./node_modules/@types/validator/lib/isEmail.d.ts","./node_modules/@types/validator/lib/isFQDN.d.ts","./node_modules/@types/validator/lib/isIBAN.d.ts","./node_modules/@types/validator/lib/isISO4217.d.ts","./node_modules/@types/validator/lib/isURL.d.ts","./node_modules/@types/validator/index.d.ts","./node_modules/sequelize/types/utils/validator-extras.d.ts","./node_modules/sequelize/types/index.d.ts","./node_modules/sequelize-typescript/dist/model/model/association/association-get-options.d.ts","./node_modules/sequelize-typescript/dist/model/model/association/association-count-options.d.ts","./node_modules/sequelize-typescript/dist/model/model/association/association-action-options.d.ts","./node_modules/sequelize-typescript/dist/model/model/association/association-create-options.d.ts","./node_modules/sequelize-typescript/dist/shared/types.d.ts","./node_modules/sequelize-typescript/dist/sequelize/repository/repository.d.ts","./node_modules/sequelize-typescript/dist/model/model/model.d.ts","./node_modules/sequelize-typescript/dist/model/shared/model-class-getter.d.ts","./node_modules/sequelize-typescript/dist/associations/belongs-to/belongs-to.d.ts","./node_modules/sequelize-typescript/dist/associations/shared/union-association-options.d.ts","./node_modules/sequelize-typescript/dist/associations/shared/association.d.ts","./node_modules/sequelize-typescript/dist/sequelize/sequelize/sequelize-options.d.ts","./node_modules/sequelize-typescript/dist/sequelize/sequelize/sequelize.d.ts","./node_modules/sequelize-typescript/dist/associations/shared/base-association.d.ts","./node_modules/sequelize-typescript/dist/associations/belongs-to/belongs-to-association.d.ts","./node_modules/sequelize-typescript/dist/associations/through/through-options.d.ts","./node_modules/sequelize-typescript/dist/associations/belongs-to-many/belongs-to-many-options.d.ts","./node_modules/sequelize-typescript/dist/associations/belongs-to-many/belongs-to-many.d.ts","./node_modules/sequelize-typescript/dist/associations/belongs-to-many/belongs-to-many-association.d.ts","./node_modules/sequelize-typescript/dist/associations/foreign-key/foreign-key.d.ts","./node_modules/sequelize-typescript/dist/associations/has/has-association.d.ts","./node_modules/sequelize-typescript/dist/associations/has/has-one.d.ts","./node_modules/sequelize-typescript/dist/associations/has/has-many.d.ts","./node_modules/reflect-metadata/index.d.ts","./node_modules/sequelize-typescript/dist/associations/shared/association-service.d.ts","./node_modules/sequelize-typescript/dist/hooks/shared/hook-options.d.ts","./node_modules/sequelize-typescript/dist/hooks/bulk/after/after-bulk-create.d.ts","./node_modules/sequelize-typescript/dist/hooks/bulk/after/after-bulk-destroy.d.ts","./node_modules/sequelize-typescript/dist/hooks/bulk/after/after-bulk-restore.d.ts","./node_modules/sequelize-typescript/dist/hooks/bulk/after/after-bulk-sync.d.ts","./node_modules/sequelize-typescript/dist/hooks/bulk/after/after-bulk-update.d.ts","./node_modules/sequelize-typescript/dist/hooks/bulk/before/before-bulk-create.d.ts","./node_modules/sequelize-typescript/dist/hooks/bulk/before/before-bulk-destroy.d.ts","./node_modules/sequelize-typescript/dist/hooks/bulk/before/before-bulk-restore.d.ts","./node_modules/sequelize-typescript/dist/hooks/bulk/before/before-bulk-sync.d.ts","./node_modules/sequelize-typescript/dist/hooks/bulk/before/before-bulk-update.d.ts","./node_modules/sequelize-typescript/dist/hooks/single/after/after-connect.d.ts","./node_modules/sequelize-typescript/dist/hooks/single/after/after-create.d.ts","./node_modules/sequelize-typescript/dist/hooks/single/after/after-define.d.ts","./node_modules/sequelize-typescript/dist/hooks/single/after/after-destroy.d.ts","./node_modules/sequelize-typescript/dist/hooks/single/after/after-find.d.ts","./node_modules/sequelize-typescript/dist/hooks/single/after/after-init.d.ts","./node_modules/sequelize-typescript/dist/hooks/single/after/after-restore.d.ts","./node_modules/sequelize-typescript/dist/hooks/single/after/after-save.d.ts","./node_modules/sequelize-typescript/dist/hooks/single/after/after-sync.d.ts","./node_modules/sequelize-typescript/dist/hooks/single/after/after-update.d.ts","./node_modules/sequelize-typescript/dist/hooks/single/after/after-upsert.d.ts","./node_modules/sequelize-typescript/dist/hooks/single/after/after-validate.d.ts","./node_modules/sequelize-typescript/dist/hooks/single/before/before-connect.d.ts","./node_modules/sequelize-typescript/dist/hooks/single/before/before-count.d.ts","./node_modules/sequelize-typescript/dist/hooks/single/before/before-create.d.ts","./node_modules/sequelize-typescript/dist/hooks/single/before/before-define.d.ts","./node_modules/sequelize-typescript/dist/hooks/single/before/before-destroy.d.ts","./node_modules/sequelize-typescript/dist/hooks/single/before/before-find.d.ts","./node_modules/sequelize-typescript/dist/hooks/single/before/before-find-after-expand-include-all.d.ts","./node_modules/sequelize-typescript/dist/hooks/single/before/before-find-after-options.d.ts","./node_modules/sequelize-typescript/dist/hooks/single/before/before-init.d.ts","./node_modules/sequelize-typescript/dist/hooks/single/before/before-restore.d.ts","./node_modules/sequelize-typescript/dist/hooks/single/before/before-save.d.ts","./node_modules/sequelize-typescript/dist/hooks/single/before/before-sync.d.ts","./node_modules/sequelize-typescript/dist/hooks/single/before/before-update.d.ts","./node_modules/sequelize-typescript/dist/hooks/single/before/before-upsert.d.ts","./node_modules/sequelize-typescript/dist/hooks/single/before/before-validate.d.ts","./node_modules/sequelize-typescript/dist/hooks/shared/hook-meta.d.ts","./node_modules/sequelize-typescript/dist/hooks/shared/hooks-service.d.ts","./node_modules/sequelize-typescript/dist/hooks/shared/validation-failed.d.ts","./node_modules/sequelize-typescript/dist/model/column/column-options/allow-null.d.ts","./node_modules/sequelize-typescript/dist/model/column/column-options/comment.d.ts","./node_modules/sequelize-typescript/dist/model/column/column-options/default.d.ts","./node_modules/sequelize-typescript/dist/model/column/column-options/unique.d.ts","./node_modules/sequelize-typescript/dist/model/column/primary-key/auto-increment.d.ts","./node_modules/sequelize-typescript/dist/model/column/primary-key/primary-key.d.ts","./node_modules/sequelize-typescript/dist/model/column/timestamps/created-at.d.ts","./node_modules/sequelize-typescript/dist/model/column/timestamps/deleted-at.d.ts","./node_modules/sequelize-typescript/dist/model/column/timestamps/updated-at.d.ts","./node_modules/sequelize-typescript/dist/model/column/attribute-service.d.ts","./node_modules/sequelize-typescript/dist/model/column/column.d.ts","./node_modules/sequelize-typescript/dist/model/shared/model-service.d.ts","./node_modules/sequelize-typescript/dist/model/table/table-options.d.ts","./node_modules/sequelize-typescript/dist/model/table/table.d.ts","./node_modules/sequelize-typescript/dist/model/index/index-service.d.ts","./node_modules/sequelize-typescript/dist/model/index/create-index-decorator.d.ts","./node_modules/sequelize-typescript/dist/model/index/index-decorator.d.ts","./node_modules/sequelize-typescript/dist/scopes/scope-find-options.d.ts","./node_modules/sequelize-typescript/dist/scopes/scope-table-options.d.ts","./node_modules/sequelize-typescript/dist/scopes/scope-options.d.ts","./node_modules/sequelize-typescript/dist/scopes/default-scope.d.ts","./node_modules/sequelize-typescript/dist/scopes/scope-service.d.ts","./node_modules/sequelize-typescript/dist/scopes/scopes.d.ts","./node_modules/sequelize-typescript/dist/sequelize/data-type/data-type.d.ts","./node_modules/sequelize-typescript/dist/sequelize/data-type/data-type-service.d.ts","./node_modules/sequelize-typescript/dist/sequelize/validation-only/db-dialect-dummy.d.ts","./node_modules/sequelize-typescript/dist/sequelize/sequelize/sequelize-service.d.ts","./node_modules/sequelize-typescript/dist/validation/contains.d.ts","./node_modules/sequelize-typescript/dist/validation/equals.d.ts","./node_modules/sequelize-typescript/dist/validation/is.d.ts","./node_modules/sequelize-typescript/dist/validation/is-after.d.ts","./node_modules/sequelize-typescript/dist/validation/is-alpha.d.ts","./node_modules/sequelize-typescript/dist/validation/is-alphanumeric.d.ts","./node_modules/sequelize-typescript/dist/validation/is-before.d.ts","./node_modules/sequelize-typescript/dist/validation/is-credit-card.d.ts","./node_modules/sequelize-typescript/dist/validation/is-date.d.ts","./node_modules/sequelize-typescript/dist/validation/is-decimal.d.ts","./node_modules/sequelize-typescript/dist/validation/is-email.d.ts","./node_modules/sequelize-typescript/dist/validation/is-float.d.ts","./node_modules/sequelize-typescript/dist/validation/is-in.d.ts","./node_modules/sequelize-typescript/dist/validation/is-int.d.ts","./node_modules/sequelize-typescript/dist/validation/is-ip.d.ts","./node_modules/sequelize-typescript/dist/validation/is-ip-v4.d.ts","./node_modules/sequelize-typescript/dist/validation/is-array.d.ts","./node_modules/sequelize-typescript/dist/validation/is-ip-v6.d.ts","./node_modules/sequelize-typescript/dist/validation/is-lowercase.d.ts","./node_modules/sequelize-typescript/dist/validation/is-null.d.ts","./node_modules/sequelize-typescript/dist/validation/is-numeric.d.ts","./node_modules/sequelize-typescript/dist/validation/is-uppercase.d.ts","./node_modules/sequelize-typescript/dist/validation/is-url.d.ts","./node_modules/sequelize-typescript/dist/validation/is-uuid.d.ts","./node_modules/sequelize-typescript/dist/validation/length.d.ts","./node_modules/sequelize-typescript/dist/validation/max.d.ts","./node_modules/sequelize-typescript/dist/validation/min.d.ts","./node_modules/sequelize-typescript/dist/validation/not.d.ts","./node_modules/sequelize-typescript/dist/validation/not-contains.d.ts","./node_modules/sequelize-typescript/dist/validation/not-empty.d.ts","./node_modules/sequelize-typescript/dist/validation/not-in.d.ts","./node_modules/sequelize-typescript/dist/validation/not-null.d.ts","./node_modules/sequelize-typescript/dist/validation/validate.d.ts","./node_modules/sequelize-typescript/dist/validation/validator.d.ts","./node_modules/sequelize-typescript/dist/index.d.ts","./src/infrastructure/customer/repository/sequelize/customer.model.ts","./src/infrastructure/customer/repository/sequelize/customer.repository.ts","./src/infrastructure/customer/repository/sequelize/index.ts","./src/infrastructure/customer/repository/sequelize/customer.repository.spec.ts","./src/infrastructure/product/repository/sequelize/product.model.ts","./src/infrastructure/order/repository/sequelize/order.model.ts","./src/infrastructure/order/repository/sequelize/order-item.model.ts","./src/infrastructure/order/repository/sequelize/order.repository.ts","./src/infrastructure/order/repository/sequelize/index.ts","./src/infrastructure/product/repository/sequelize/product.repository.ts","./src/infrastructure/product/repository/sequelize/index.ts","./src/infrastructure/order/repository/sequelize/order.repository.spec.ts","./src/infrastructure/product/repository/sequelize/product.repository.spec.ts","./node_modules/@babel/types/lib/index.d.ts","./node_modules/@types/babel__generator/index.d.ts","./node_modules/@babel/parser/typings/babel-parser.d.ts","./node_modules/@types/babel__template/index.d.ts","./node_modules/@types/babel__traverse/index.d.ts","./node_modules/@types/babel__core/index.d.ts","./node_modules/@types/ms/index.d.ts","./node_modules/@types/debug/index.d.ts","./node_modules/@types/node/assert.d.ts","./node_modules/@types/node/assert/strict.d.ts","./node_modules/@types/node/globals.d.ts","./node_modules/@types/node/async_hooks.d.ts","./node_modules/@types/node/buffer.d.ts","./node_modules/@types/node/child_process.d.ts","./node_modules/@types/node/cluster.d.ts","./node_modules/@types/node/console.d.ts","./node_modules/@types/node/constants.d.ts","./node_modules/@types/node/crypto.d.ts","./node_modules/@types/node/dgram.d.ts","./node_modules/@types/node/diagnostics_channel.d.ts","./node_modules/@types/node/dns.d.ts","./node_modules/@types/node/dns/promises.d.ts","./node_modules/@types/node/domain.d.ts","./node_modules/@types/node/events.d.ts","./node_modules/@types/node/fs.d.ts","./node_modules/@types/node/fs/promises.d.ts","./node_modules/@types/node/http.d.ts","./node_modules/@types/node/http2.d.ts","./node_modules/@types/node/https.d.ts","./node_modules/@types/node/inspector.d.ts","./node_modules/@types/node/module.d.ts","./node_modules/@types/node/net.d.ts","./node_modules/@types/node/os.d.ts","./node_modules/@types/node/path.d.ts","./node_modules/@types/node/perf_hooks.d.ts","./node_modules/@types/node/process.d.ts","./node_modules/@types/node/punycode.d.ts","./node_modules/@types/node/querystring.d.ts","./node_modules/@types/node/readline.d.ts","./node_modules/@types/node/repl.d.ts","./node_modules/@types/node/stream.d.ts","./node_modules/@types/node/stream/promises.d.ts","./node_modules/@types/node/stream/consumers.d.ts","./node_modules/@types/node/stream/web.d.ts","./node_modules/@types/node/string_decoder.d.ts","./node_modules/@types/node/timers.d.ts","./node_modules/@types/node/timers/promises.d.ts","./node_modules/@types/node/tls.d.ts","./node_modules/@types/node/trace_events.d.ts","./node_modules/@types/node/tty.d.ts","./node_modules/@types/node/url.d.ts","./node_modules/@types/node/util.d.ts","./node_modules/@types/node/v8.d.ts","./node_modules/@types/node/vm.d.ts","./node_modules/@types/node/wasi.d.ts","./node_modules/@types/node/worker_threads.d.ts","./node_modules/@types/node/zlib.d.ts","./node_modules/@types/node/globals.global.d.ts","./node_modules/@types/node/index.d.ts","./node_modules/@types/graceful-fs/index.d.ts","./node_modules/@types/istanbul-lib-coverage/index.d.ts","./node_modules/@types/istanbul-lib-report/index.d.ts","./node_modules/@types/istanbul-reports/index.d.ts","./node_modules/jest-matcher-utils/node_modules/chalk/index.d.ts","./node_modules/jest-diff/build/cleanupSemantic.d.ts","./node_modules/pretty-format/build/types.d.ts","./node_modules/pretty-format/build/index.d.ts","./node_modules/jest-diff/build/types.d.ts","./node_modules/jest-diff/build/diffLines.d.ts","./node_modules/jest-diff/build/printDiffs.d.ts","./node_modules/jest-diff/build/index.d.ts","./node_modules/jest-matcher-utils/build/index.d.ts","./node_modules/@types/jest/index.d.ts","./node_modules/@types/prettier/index.d.ts","./node_modules/@types/stack-utils/index.d.ts","./node_modules/@types/yargs-parser/index.d.ts","./node_modules/@types/yargs/index.d.ts"],"fileInfos":[{"version":"89f78430e422a0f06d13019d60d5a45b37ec2d28e67eb647f73b1b0d19a46b72","affectsGlobalScope":true},"dc47c4fa66b9b9890cf076304de2a9c5201e94b740cffdf09f87296d877d71f6","7a387c58583dfca701b6c85e0adaf43fb17d590fb16d5b2dc0a2fbd89f35c467","8a12173c586e95f4433e0c6dc446bc88346be73ffe9ca6eec7aa63c8f3dca7f9","5f4e733ced4e129482ae2186aae29fde948ab7182844c3a5a51dd346182c7b06","e6b724280c694a9f588847f754198fb96c43d805f065c3a5b28bbc9594541c84","e21c071ca3e1b4a815d5f04a7475adcaeea5d64367e840dd0154096d705c3940",{"version":"abba1071bfd89e55e88a054b0c851ea3e8a494c340d0f3fab19eb18f6afb0c9e","affectsGlobalScope":true},{"version":"927cb2b60048e1395b183bf74b2b80a75bdb1dbe384e1d9fac654313ea2fb136","affectsGlobalScope":true},{"version":"7fac8cb5fc820bc2a59ae11ef1c5b38d3832c6d0dfaec5acdb5569137d09a481","affectsGlobalScope":true},{"version":"097a57355ded99c68e6df1b738990448e0bf170e606707df5a7c0481ff2427cd","affectsGlobalScope":true},{"version":"d8996609230d17e90484a2dd58f22668f9a05a3bfe00bfb1d6271171e54a31fb","affectsGlobalScope":true},{"version":"43fb1d932e4966a39a41b464a12a81899d9ae5f2c829063f5571b6b87e6d2f9c","affectsGlobalScope":true},{"version":"cdccba9a388c2ee3fd6ad4018c640a471a6c060e96f1232062223063b0a5ac6a","affectsGlobalScope":true},{"version":"4378fc8122ec9d1a685b01eb66c46f62aba6b239ca7228bb6483bcf8259ee493","affectsGlobalScope":true},{"version":"0d5f52b3174bee6edb81260ebcd792692c32c81fd55499d69531496f3f2b25e7","affectsGlobalScope":true},{"version":"810627a82ac06fb5166da5ada4159c4ec11978dfbb0805fe804c86406dab8357","affectsGlobalScope":true},{"version":"62d80405c46c3f4c527ee657ae9d43fda65a0bf582292429aea1e69144a522a6","affectsGlobalScope":true},{"version":"3013574108c36fd3aaca79764002b3717da09725a36a6fc02eac386593110f93","affectsGlobalScope":true},{"version":"75ec0bdd727d887f1b79ed6619412ea72ba3c81d92d0787ccb64bab18d261f14","affectsGlobalScope":true},{"version":"3be5a1453daa63e031d266bf342f3943603873d890ab8b9ada95e22389389006","affectsGlobalScope":true},{"version":"17bb1fc99591b00515502d264fa55dc8370c45c5298f4a5c2083557dccba5a2a","affectsGlobalScope":true},{"version":"7ce9f0bde3307ca1f944119f6365f2d776d281a393b576a18a2f2893a2d75c98","affectsGlobalScope":true},{"version":"6a6b173e739a6a99629a8594bfb294cc7329bfb7b227f12e1f7c11bc163b8577","affectsGlobalScope":true},{"version":"12a310447c5d23c7d0d5ca2af606e3bd08afda69100166730ab92c62999ebb9d","affectsGlobalScope":true},{"version":"b0124885ef82641903d232172577f2ceb5d3e60aed4da1153bab4221e1f6dd4e","affectsGlobalScope":true},{"version":"0eb85d6c590b0d577919a79e0084fa1744c1beba6fd0d4e951432fa1ede5510a","affectsGlobalScope":true},{"version":"da233fc1c8a377ba9e0bed690a73c290d843c2c3d23a7bd7ec5cd3d7d73ba1e0","affectsGlobalScope":true},{"version":"d154ea5bb7f7f9001ed9153e876b2d5b8f5c2bb9ec02b3ae0d239ec769f1f2ae","affectsGlobalScope":true},{"version":"bb2d3fb05a1d2ffbca947cc7cbc95d23e1d053d6595391bd325deb265a18d36c","affectsGlobalScope":true},{"version":"c80df75850fea5caa2afe43b9949338ce4e2de086f91713e9af1a06f973872b8","affectsGlobalScope":true},{"version":"9d57b2b5d15838ed094aa9ff1299eecef40b190722eb619bac4616657a05f951","affectsGlobalScope":true},{"version":"6c51b5dd26a2c31dbf37f00cfc32b2aa6a92e19c995aefb5b97a3a64f1ac99de","affectsGlobalScope":true},{"version":"6e7997ef61de3132e4d4b2250e75343f487903ddf5370e7ce33cf1b9db9a63ed","affectsGlobalScope":true},{"version":"2ad234885a4240522efccd77de6c7d99eecf9b4de0914adb9a35c0c22433f993","affectsGlobalScope":true},{"version":"1b3fe904465430e030c93239a348f05e1be80640d91f2f004c3512c2c2c89f34","affectsGlobalScope":true},{"version":"3787b83e297de7c315d55d4a7c546ae28e5f6c0a361b7a1dcec1f1f50a54ef11","affectsGlobalScope":true},{"version":"e7e8e1d368290e9295ef18ca23f405cf40d5456fa9f20db6373a61ca45f75f40","affectsGlobalScope":true},{"version":"faf0221ae0465363c842ce6aa8a0cbda5d9296940a8e26c86e04cc4081eea21e","affectsGlobalScope":true},{"version":"06393d13ea207a1bfe08ec8d7be562549c5e2da8983f2ee074e00002629d1871","affectsGlobalScope":true},{"version":"d071129cba6a5f2700be09c86c07ad2791ab67d4e5ed1eb301d6746c62745ea4","affectsGlobalScope":true},{"version":"10bbdc1981b8d9310ee75bfac28ee0477bb2353e8529da8cff7cb26c409cb5e8","affectsGlobalScope":true},"f58c6d0669d1ee04b2fcb0e87fb949b6828602f3f29c7bf6c76a214f16fd50d5","4bc3f341ee70a97a1fa6e82a550062a6c5ece72aaee29744636c3591dab1b6d1","7d3f8bf0cd5e969f3742f1aa0ed1c4c8eff7f88d3e77b9e6a6389f2bc4e06cb7","3061ba7846b58164b561d1b44bf2c4aef8cb5a906f14c539b54ff3d33f4d6898","05d7e49c3326af469bde99ce89b10ee3f2bca60072f8a856a70325c9c57e183d","d0dab62c9430b34bf489c9e032f1bf288c30d185e576787a6e29e9a603b292fe",{"version":"0958eadf2ec56961f9d9bf13bbc6c5f3ab19a46e308fd98efb09febc987c3a98","signature":"b1f34a8335f01bdd6628c761a36efa3772372dbcadcf3e8021d86dc06606e547"},{"version":"c67558a668180bbc7b60c04864535a9df868fc4275a13378907836ac37763db7","signature":"8e11e10b4b2994309c5b2d884cb1dd80e7b419ee79028a0784cfdbb2171dba0a"},{"version":"b4a4bd2738277ad513af77505760a0129eb37226febd3bd1a7273ae4d17b5405","signature":"4acb879a0a590cfe8518bfc544b205278865f7103049cdffc6e7c5cd8075f70b"},{"version":"13b540a7f8c64fdb308cb6d3dcc8705d6cb620d38aedf3a42b54f9b2afe5b12a","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},"afcc3d55eccedaad114e87b2556a52fd6ff3f446c9454e507522ad7dae737fb6","e616ea07455b1a00ed8c5737374957822e234705f4b017b8f5c0dd64c6c679e6","f3e7c2c95fa51605a37ccc12d66cf1d2c8de746c2b6cf9bcf0cf64f358bea97f","d26adb9a9a46ab6b8eae54735b7c9e9604702900baf5168d48f5846988804aa0","4107a7a764099af55af2c593977a56cd3f49b6c5f29cb8fc42ec2bc14cc59024","2d9269719c0eff3ec6a0c1b21f18cff2ba58ea78c416ea27230ce29f5c78e0d0","ac9b370c875c27a6192f356456025b7a8908bdd36cc6752aa444d369047c222f","602bd93dc9b09afbedcebadd789ef790d8ad6485fd9680c7c8ed50868845aff8","fab58e600970e66547644a44bc9918e3223aa2cbd9e8763cec004b2cfb48827e","cd8c97345dbd034fc0162d222ee1789d08ae45a842fd528ade76e7901fb5ac1c",{"version":"c9303c5a2e8175137e776fcc79ae065740ee025dae03d13e362656ccffdb6da6","signature":"1e60409bccfa06d10e2832ec1b71311af0768444fee2e8ecf0a6584eefed5a37"},{"version":"e6ee34d4a655f5cf651be08b96777eeaf91fce72b37d68364cf5b70a91d5ab52","signature":"328f15434334ec29f6aa05a054253e9fef90976547d2d4aca69b589e4e8292cf"},"04b35696b768b66974dae0a3d2b7e1213eb242b4174cd0cb714f1b9ca23d04c4","330df71542b1450dca2633e975718ba9f0daf160e6e8c4c2d56fbada910e6fc7",{"version":"e3ca46dc1a37ad66e9ff23f926d27a9ad42dfb39a3d440b3debe40226060f02b","signature":"7e2e31151415fa0b4fb3af1ad878f1340c3b229dcb0cc36e25489100c2f61374"},{"version":"95d96c0815c0743f39cbf280db36b0c517b2688cc9fec603b381ce20630720ba","signature":"1c24cc38873a0b45f140d6484ae660dc0eff22c2965964ee2c8e36987373f3ee"},{"version":"518055f335dcf740e0a8f810c215533cd965343466b88f91d11b004b2b39ab35","signature":"d9fc3f65a89d648f73479b6ee967aab64607013309f30ae653bb249f60744825"},{"version":"8b3346e8231c6f854e9eaf2bee17efdb1a23e14887179a36a2393e872bf71e88","signature":"9da215944eb6b1519d27e8cd498f27040373179304254061258c9abf0d4626ae"},{"version":"49b8e194f1ca9dcbdccf3e7774ffcdc950e897d1b1950a0029b44755028508c5","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"bf30119d5fe8093f8b333f6eed2e4e32e1c91a790aa09d17e753d15784209cf8","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"f86723e6c751f4eec7f7a158a295626b8e3efe0403689a4d1d0ff7bd3de5474d","signature":"0655ea0fcb83432995eb3efaecb6d5c11fb55e2d7d4f493e950e77b7efbe22fc"},{"version":"2d4e71d143258c8918d5674deb9c18ce99b5ea7c4cc87afb270ffbf028994c7d","signature":"45b1657284b29336c54472df8af18244b6be9dd51e4ee64b12d91b252d08921b"},{"version":"b022d89db744cd88bc5af9b04059e14a62793f09acc2fb4b1768d049774e6f13","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"8a5fd4e5aac7e89d04f96c2670efa8a97e2e9b15d44c97d37ec0fbe06b19bc7d","signature":"156e66e8858e0f685362de9d1cc02f83ca3516debf43f18a6d646a422cce9fc1"},{"version":"48cdd3e24263a00f49879c58e8f108d9f3c825d597aae2f146c770aa7930ae5b","signature":"e07dbd3cf9e4933b8e48a663314a8c1ec7c671e3c644576a78e4c6ab56f5aab5"},{"version":"021c00856980de7758b9a3cbc35e1e71b8cc1dd989c931877e84a27441128ee0","signature":"1ff759df49721f80a30435fc59a5e8d2986b66a015702d4a2d9bb23cae1395a5"},{"version":"19afc6c5348f0029cf8ae2b4ad2eddf29a6a19f821301ea617f99e4858b5fe1f","signature":"0b588fde998ca90b062e9e1d684c817cad9bc7972a8b3ac389522e5461cdf870"},"af7b33c8595519c3a23e1a463d0440bdda2fa1f70c61256a9c9e97bb615161b2",{"version":"695b45b6e3daa6d89fa732a7e676e0233be2db1ca1267cefe7d7782ebc11b232","signature":"0c10697598fb34a320656a20e7bd75d81f369ba6215bac1bf09961a1dfd52204"},{"version":"481673801e8e4a325beddef96e3f2ddaf53b78342006ceb7444ca4877c5ab494","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},"c4b15a465c908feef0d0145c88e04aa768cc47fbbb537046e04fc35b5d08799c",{"version":"6a9f86ab1dad88573f4ef0b41584ada2d28b37267efea5804bb8fc6b520613a0","signature":"81e8069225ef9ed036a5c5f40a31719581fbd235d9f4f8cd888c4f3a56d6062c"},{"version":"d89268dc9d7640137abbed7527cf7fb2fabb3b69be5a8c64aefd7dc0b4cb16d8","signature":"c57c5f49401032784800ccde2b1bcbf56bf07dab674c59763cdb9025bb550a8e"},"8ce8de3f20254e27ac2338bb7d55b2e5d8d61806216a16bb22638ff23bafee2a",{"version":"e157b0cda43ac6a6e70afe294da765bcd3ce4bb1de6dbeffc812a8c66dd76b36","signature":"dbda79d1090e313da962c4a83f4e7587342dde5dda776a41be6a47cd830f78ff"},{"version":"983ceddda98aba9832a9185a760a3f711d5f389263301d68ea62d1b6de7253ea","signature":"0e4abb18692982cdccffd66c6ec10f87f068aa57cd20d8ca2839ddea9dcdf6c3"},{"version":"2bcb7f03f233c11525ddc2eb634dd8f42d6bcfb1c5af21845f3a8761e06b17a8","signature":"7deb9807fbd9094f51eb520b723a578086d667bbc57ae0487d8fb7364feb4efd"},{"version":"afb68c86f3e1120d309d66ddba4c2d12af1105b3a99d0706d7dc029a875ea1e4","signature":"816988bba00275d307449837cac2e8a2b027ca118d77f439be2dcea661dc6a61"},{"version":"54eceeb50a178917cd86f99556f337311f87664b49a1e10e2a6919517009c32d","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},"621ed0cd60a214ddd22ed8bce16f6aad157e04ba495ee36edb83541492775a29","c0f575e9f7005738c3470854fa23817120457d870b1a58eadb3b3212d38aaa80","746915725cfeb343c98f0d08f082ac6c2b2e1460893b2d3dbf3ac30d3d283dc8","0c098f6d249616469e6d9e2c584145c8e9299297b472d77ca348d293fe3ffd80","fd7d0017b5f33a8a58e07d0c15a93387250ae1d627170ecec68f0a93960cc02b","334236475f89849f4373639c9053809ec3ee48f20f859f96e3cd3f0eff770921","63751196a413d53618aa3819ee39c957a4bd0c8b0b0cadf5201ae85c8c02ded3","017c6724837b29b0d237c0c7a721729644af6d27a21b269a534da9a830524155","62c0948cd8237411c00de10ddfb4c4fb75eb6b78dfcabc7eee77d7083bd8da1e","df6de24af77449f932dd9f4f293410ce22a6b34601b11ce585923db1ee55d9c7","24810c982585d364b4d1c3bca813cc0646f929017240daf4acae9f1ca5d04a31","47d01ed73d26a694589ea1e020f8edf31cb0640d82096203672bb603d82e7166","2501f0aaf3650774a9f7bf18340d2a04cbdc013c4ebac4572666c214411c4196","c5c489ade4246228fe543cb09ae9b834b7e415f4e6497e03c5bdbfa338a00bd5","8945026bbc531fd9e4cb3b3ab9ae3931ee988b8b08609b9884512b4b8ea54350","6f8c304a8745313fb5f5d9f9590d4d29fcc1a77c09d8b23b36907b8236208cf2","4aba836729ab68943658be14d4571133e75fb3816e24a36f3914727c6cd69a09","f1c20ac4edd4ad07337c32bd5ab61de6badb33c612e1c5ea7751b3bd257f2205","560a67902fcd7e09ee406942da409aa3d3e8e8db481b51d344309f4cab913ab4","7b0c0a9c59518dfccf0f52bd3d52c6d5a4544a594b09f5aa3b237b4d7b11dc1a","39ba00a83ff52654941a562c372c1b7db95c6c3f32ed0deffd5671f9f37b2a4c","5fd24b0c8207254e66551ebb45281f6cacc789d5f17cb998eea8d4b544966bcc","b57c5893640ad5ea144a2ab18fe85b3f7c09fc74b527462af5e08b2cac81e5a8","143417b2f2c8551a62a63c5dbf215695ad2144cdfaa3f64e272f0a0a1425302f","6b6d7b15c806f374f276d072e0abdc16c0fa75f8eb368153e2e31e77d7775b19","3729c8d87d152088bfe90e4de08a7ccf014c1c6c463f754412310e15ef7bdea3","eb84d92d0e8f30d97ff087d9dbc367b8d318799520be4a819a9d860b9d4c226f","02b5bfd1c5242bc46e81ca9103d3b794bf337c2e64ac7e0e0927909257c4e833","6baa4d11817ab1b073b53744ce172d66afe8b21f9aedad6150573ff5acc88bd2","b2bb7c01de5345890250273ba08c012a8d453c91a2e7c41bb1a1b1c4cc8c3383","c063b6e9f950b7ac9fb94099dae1c1477225404f45c6990644daa9e150e07c0a","2583bd81bf7f4bb2e613b9b28888f9a6cce653352533a697b67599a380b73bc1","06a5447a024892a2289a5d79bece392c37ce8dc335973389d478e0890d71b529","d38f58d9a6f0a0df70cf60d295949e21551f3ce35849a37a7f9522bd50c0c0c9","628a24ecf46ef0118f268a2585822f2530cf0141e508037ed52c9490e4440859","494c503966cd59f051c146e5efb88f3e4c66bc94e8338a4e3919a111bdedddf9","7ce2fe3f89937850648bdc460c59db1e35251758e00a8faacba16e6d56d3c501","60d3a7b2a54706a022acc3fca11164be6abf2352938b99f1a26660d697207da3","839719b09d4bffac4acb08d19ff63f9a6b29ccd6c348c871f211308eca6d5a04","e64afc9809626f0adfa47d88f5f584dc9c5308508c9ccbf2246d8b66da19b394","d243f93260abf87a61a5c82cecf5f3a673766ad7877a89f6ef7fc906d251426c","cba8fdd6780c61fcf3ab38bf5b91d5f58facbf4a6dcbe7e9351c952732429ade","5da6de323b6990287f8497f9e89245ac3be58153748e51e4c069ef0b57b9c6f7","3e5987fa94b9733fcb1a3eee5b909c83ce72380022f36838bd82aa9d53bc6869","4e19dc229635f5285bd411f095c4726f9a0a69b2957fdf85553782f5d411bc9b","667c4a7aaa7446bae6c96668921d337ae1b4cedce7a190de2e36ddd8421bfef5","9c4480a9d7e9f58d61045641e4f717f8ad48a584c08939a0d816b173a9ccec87","a4ded6b4c2f30f04aad97d8dfa213bc016339b06faab229a0c85f2ac1b5b025f","530f2c02b6da526dc0e0f104d4de1cb752c8580dcc394e0676966fced250edeb","41481a725ed2486e8f97d6b9202442d640ad7a76debf4acc03eb1917b39d3bfb","ecb3f7a39c52816137f9a87278225ce7f522c6e493c46bb2fff2c2cc2ba0e2d4","4adfa22f05ddfdf98ea3741664a43debaa49fc0e6797bdf117f95219f5feb635","c5b3da7e2ecd5968f723282aba49d8d1a2e178d0afe48998dad93f81e2724091","3e4ba3ecd2f4b94e22c38ff57b944e43591cac6fd4d83e3f58157f04524d8da6","37d6dd79947b8c3f5eb759bd092d7c9b844d3655e547d16c3f2138d8d637674e","c96700cd147d5926d56ec9b45a66d6c8a86def5e94806157fa17c68831a6337f","d2cda9d0ba6add736731dd65ee3079a1882c798d3e391481f9308eb4c0cfaf66","3b9e650cf228a1d63f90e018be93b4e77e2250c563006559a77a617a3d5bae2e","4310fad110acee6483f4099b89b1b4c5666d3350c6a7151201ae9cd4078437b4","db12ca4d561de7550c64544064b09d59a3a4560c372251cc8b743abc16330252","c0bbb1777313f7dbf9aaf2db9829c1d997ed89f612cb5fcc8947711aa88aa112","08eeedef29a6e4401989a1b306f391a18414b2e8599d49d9ac8022629e60dfda","b888cd224b3fae54aa11397c663b298ef2d8db98b9670fa399e04e03ac8b075a","1f9d34a0a3b92390221bcbd45f09cdebaad090c8ea31aa0353305754702ce79d","bf54a28e0726debb0343db62d93270528076ed8ec493abd7d9711c04ed2dc227","bfe4716c4a212205aacb949ce44e2d3126f34afdf0b763b21f6fe8163e2bd82f","b214783baad7690a78bf78b898f1bf71d9a37b08b4521a1d0b7242633fb78e5b","c9676e70e2899ac0c1cbee758c40d0f5cd4861f77df4df879baecba304122659","a331a6263556bf5eca5516a8628e40e0e867c5617e9afabdd668dd9def7919ec","1394912ef3f2355f73fd037d59e7f7ff5ba6e20f4de3e315362c47965dd44cc2","43ad960f7d986eecaa5b08274c8e1e12829f371d38b7d7a6380f066f1107d126","fa5916302f00d6795f738c2de7d4b9be8e486a217ea80866f5bdd61bda825f68","5f9fc99b5b9628dd2b609cb29c8bb928c86e406e31ad21e4262acc166b8752fc","8fafdec942c792c187fc872af899ec0dc33274b00f027b4303366bcd8c721526","1a3d9c480099c445ba7841d777e11cd9340829683e83d08430cb1dabc1388748","8fed7d93d082d8db67cc50b27ac74cbdb8e6eb2fd71497965712700320d7910f","3005fcd6615868c863e544cb3320c3507c255386b0bb5ced4546fbd283938afa","e28fb54ab5ced8785285e0791f4e0054c25eeb0d2508a982974ac7911cd96838","bc8a4e2975c664ff4c049e3d2221f72d674203dad845bd9ded0fe3865490bde7","c581a2ccc220505369bd6ee892e612b51849aca2e9ca51361f1340f8bdce347e","250efb0998c50700bcb4ba306ca6577db99406e3fb1b542e42bf277153f1996e","4aef046af475a73942762fbd49faa2a6203337b9439177f152cb7aaa540575bc",{"version":"8d6d51a5118d000ed3bfe6e1dd1335bebfff3fef23cd2af2f84a24d30f90cc90","affectsGlobalScope":true},"70a40d8b34373d8dfbf5dac877281a796006e2e94cf5717e26fc867b6630b12f","d60c72243b056608064b85bc16bbcc7782cd26e367908992b2a9d2601ddbbf51","3a76c62c2b5aa5e432bc70a1dab6ad0ea4289233f99469855a57c24558f9fe9e","24bb05d1efe0891670f5b24c2de83f84c3dd180da2c8da95e9fe24d1754e3b3e","bd7e1e96947a16eb2d629803b9ce0d8b8236464a8d58e61a240f3b625fd61246","cd838b4aace3324a177305ac9665764d972bef8faef3ca90136326e6e31fffb0","b2d5c0c25b7be6f2284c3fcfe74a4bce9df40b2dab6e9a0d834f61139181d121","6af114bf1507dc2d4bc6de194c5ffd59f565fec3257ea03c765e71955f6328f0","3e6273e5873f88313ddf2e2143af4f81e821755090d3c9d680bd1faa6bb90685","868057f8250e93dc2d201a78ff034d750aec109a44938da343e96b2a65443e91","22085d3f0ed4b1f9f8a89273d5b1ee89c0c0a5b028355ff11b98ed20efe3fcc7","129ca99d8f24df36e9484cc64a18b61ce9796c0d5bb46a9cd55b199470954c68","77603f128a5c2e59d6c3a8a0ed22c00418348c72f7c3eccdbd72adc05373bfa0","3003977dd82eec5f4ecf9ffa5f5b2b6f8e6084d0d2327d4066bc58bdbf57eecb","74d31fda297aa93e98345a828659ed5f511c7d7bb2ebb04c45c94794aa13b603","701451e21c9f5c344cabeead95dc990f2a9796194f8a754c5598ee5dbcd82483","9abfd6b3728a47d500fa31f922a8c9304bb5e5324e1703dff1b47c580acb6240","767bd6dc7ac7630a08b1eed34055f6e6444fdd22feae228633d0e49bdcee3b2f","50a9c14927e406408649c212c7a1e458c0e40a0a1136d7cdc8643fcd1fb838ed","f4c0b3c76c196e2cd9dd9a105d6c5de8d92fa62d18a1b4870def3eb9c76824f4","daa833b86b2873eff82978d2cecd5da94654b3d913afa512a643209bdff91ee0","3b6fe3c942916b34e9bf8186636e624eefe04ef3a4deba7d10e02194751841be","fd89502024c8c66f303372ba21df1f5f4dd651698fe4a2b3b555e2d8f4ccc888","d355e5f8cad53f510823dee4e2b315f6b5266268f3c0adfeeb23d602fff031ae","f096f1e51147138799017271593e863d0f30634b040ba4d23929fa51af44a7c1","3bd33b9fc57d46d6110e72edaec699c52023de1a51fd3ce6be865b2dd354fe3a","6cb5de6bb76fbeb717730fc0c6184640b42333197bc189ea81550a754b5ae825","c407a174687059ea1602fa72d1b500158e31d922cea1a2e66be6d0fc0311574e","ba94986f84ec23c66f5776e17bf6565717d9334617ac2a919c3de875dec5ed43","cdcfa8049703d76c4a81677d6c5355122880cc2af724939ba1bd300dfaa13c6e","ad7bb2f58c7c5e5788c201c3e6860fdc5cc95c3521681616e141dccea70a7d73","ea606b2e640c64bb456db64548b60ee6a80077fbc0619099f40c60984f9bac97","e4934630771560d981c7ea39615287c52a565d88727bf57980614b4be36f9b23","719328f1bf7a2f54fd2fd0808afad47d5d410433f9cbc43f9cb5cade63c06235","44e816a150edc2e2323d85d8c6579c0acdfca8c227122afd2d1d0283890bc92e","be27f1a625ed2dcf18d9cfda6ad4158ad873890fd7ccd1a546952e547c454c21","cb84f91c48e0426032834a84f7e307285cbc4599e609d7e682a9ea8bf88897b3","6f9e53a12cc7a70d8c64ea0da0ca0fd44a7ba8b1e57a40e1da0662ce1aca838a","22ee946c191427c61835c301d03019ddd46338f3be5f42ba0708682b05acd128","2766597bd15be29202e42a7985e72213aa805023b16f10806d354aa0cf790216","963995cb3a928fdbadcb2dbdc583196d70a00b1db88a03c6f5cd75d1d76894bb","4b7136c8c228fb68827417072a2de1587fa9375ba318128c00f03618724b094c","03bf75a64f5863530593bddae9b3399944ea5900f9a02959eac08d38bc54f079","8563c7298a9eb9f5ac5bdafc361bdeade9f6a1082a9a774ce97876c6ea613eb4","d6eb3d0af3c9390cf7d701a83f8cce269757da436529d7dc34028d67a2cb8a9d","3170ad02d82944b74342cec2d370f9ab5e2f4ae4b0124cb45a6174489fccdeb1","942523f920e5a83c45ff32fa0294d7921309f5d7a52081c271183f70301729e6","6c17e64627b476dcb03ccabdb0322f22c0f536e72f9f72b9c13847b6abfceea9","c6f6550d9e0fc184cbea82c74dc812be0fc3248346446077021ffbbef93e0723","aaab817ea7aae249c25d44ae66c5b0ccb9ec7bd9a911c0baa8061f7539a894f8","5daf607cead28ea8a2da8e67d72525f524e3a225d24763dbfae9be5f40383f72","8fdc5e02d0db76fcf0370d74238e70e98ba7e723d1a762732f3cb8a000a0e8cd","96b6b6f78abb6edffd020e84466e53cd5646181350546b3a1a27e4d5c8bc2e49","aa80014bf1e34657a26496f2245202aada7a5aa50ef6fe837d98e6119be0c8f7","a432112e9fd77bfcf9686ced902d542644c9277cd26292812381ebd9750eba17","f646910361ec22fb03b9cddd701cea1b4e08c19faaf2e1f1a0cbd2ea3f4dd296","61b3940bd4e8e57d71f08a7e6ae42247ac7a529027735c81acb9423e27d25f38","d5579e1b121fc866fd02a690cc5f5521ee3408e54758fab701c1809ee1a14e2c","71575c1dcfc28c66d04ce052fab12e29ffc7fc2ee2600b321166cb5f521db1c2","8717cd8dc166d1ec97fd0d94a8b903062eb195934616e4255bea28d8673798db","b4d8086f5a07944cc4d30768ccabd78e1be66568f50c413823e6b82d7d55f29c","8a81eaceb32d1a3061572a7af67167bfb48d1933c19d045633e7f461db5001bc","e9f05d396c71961b9cf9a5f0ce26c49348642555ce6f636e02058d218fabb038","5a7381541634ec3cfe7923853cbe7e5e5e7b59a469103b3a23abd092645cf260","0029e90e743dc9669cbbcaf8570d2d288f8652fe9ee9c3fff912e788999b8b90","f9e7ea6d5324204ea13dc554ccbfb0df7dbed531e8c23822c3966a441658afa6","3c206112006940848c84dd69894036115a944d1628cc90ee5a22bcf17fd7bc96","3aa41c401a49d65d38ba77755be9aabff66bacb2c5fd7f58001bc5af47f9b4b3","4d658a5505607a5dc86c0e711ba7502c396a002e67c5564d1804d5fccd2a07a9","8613c8ca02e06f075a238574a25e3e1ceced8b893e7f4d6b47b690d82cad949b","4d36d37ff5adce5b79b4a123c6828addc97ce9c86578e04fe45ef4c3ce8e7cd6","18db7de69084ee35368c07a74f3996e4bdc037effeea7c3ed2defa250dfcdfe2","2f37bd66d7ecce73771f8ca960c7a6ae003a4d0309c1644743df468fc2a0bb27","ccab85cc166fe76387031187c8ed7ce156975ec9bfcfdcbde25dc18cdc671ccc","6f6ebdc7f03dcc8996373b3ca0927672dccd72af9e1623a9c9114b961fb26e86","b03f863a5b9670514f99b6bbf36895d7102caab9ab72d3b8778fc3429937704a","3c44b0d212075d939fff25e6c97b04436a55252899d1247f29686a8133270a59","e6eb8c2dfabc1713abb667bd65603a3888d46320d3874c117b4c24a16a29dfc5","f7ec29c1118f3e6422a13113a705f52e2491a64c09bd6041e8900e218b3c58fc","13cb0e4ba5f0cf599e4eaa5528506ecfa284eef6d0f6f098517eb7cd18371d8b","8297d59fddbbc058d92a9bf5f9215dc645feb0779a73324588b74abd8b6f5742","e7471eec8618d24f3ad57f18b0c8a6932bf49af28684a2762d27df0a3740a739","a1ccc596297ff097bae0f22ced15db88c5c2c1c8edf9f7db63ee8e0738089dc8","dff5c929e4fbf17a155adcd74e8b4bdfd35d1dbccad373dd406547d7c88de0be","8e75511a2ff565fcc0356ae0fa2a3fe33dde535acb3f052eb8acde6523c31ea7","0248dcbfe1a7cf94a06c6e1ed356a06d3a31a3f8ae0b778742fcf3856395f092","6640a6448bc3de4e2dc41ce5335f64053b5b2faddb51fa12ea7b8d80e0dec244","b3cff05837a161fcb67896d62da40b59e5ae61fdb07239b537493d6bb930116f","484b269d5d5d007f24d8bf97e162ac5ab944f41dce67d9f213d9a41b4e37f3c3","a268804bceba21eb8207968af124805239cf9c165962b84be0c9486c600040b7","963f15f29b61c25ea9cd4c684dce3188bca77f1b78a7d0951a15c9c581784206","41493b7a4cafe332466eb3ce3441e0699f1b8dfa03360ce61e9c1df0172c05b2","6a6701ae8452f26f3d8342740d6f09d00633d324a697a85b6da0768af3135a95","7ea2e0332336c942271a4f41faf52104280f59d252a231a9e18210900a0eef0c","665cb1d1c0256005897dce9383d39e3666ba4e3154390759073e8f1a3cf3fd9e","e67c8d5b0bc4c1ffa1c9fd4c24f6e377ddcbc267eaa58c469721983090d9136f","87b305d8104c5a708de8bcd1a25dda64e925deb4fa74c25c9352bc6f01760baf","e5639037a16f1b0e50bb372236cfb23a61c37390ad8c854c46ffc4b83a126b8b","45abec77bf59857a6ae956d61f0f4176fd001d09d57fe7822f77a1ecc0e801cc","89dc7b4a49dffd1a1da71e15d4189e785abc58a4f5f1a40c2cadd8acab7a7063","53333f60b5e6871ffc307afd61bde499f10d8e2d295b5aaa45cca8011a6df428","8476667d8e9c69d512e8812c0269c9173ca926f8cf88a8abaff8c885516a5ae2","ee6f02df42a5f1f332fd37d9a14dd8eff9a08330a49b9dbcd54a8c448562c33c","09eec98b368e47af834c1d1ef97999506ee1ebec34e000c11dc0a1963c8a0320","febf456ff950b4da7c7d2338281d4a6b119524c83a5397e3fc0e046c187ff38d",{"version":"c6fbfbe7b29730833099152dd5385d353434082e1ee778f00c8cde063eceb4e9","signature":"df292042da40648cac4c054b999ccc99df74606805142c3cec4e7ee074888b4e"},{"version":"16d9ebe61674a32a595dda5f460f1293fba98871f835142e4a3987f274a9aa8f","signature":"31cb57ae01fe14809c6d72614e1a9dae8b37ad3c709a928f29d3f2a2fba41ffe"},{"version":"68c67787fd6e8059d1b81467296ef40869cfbb9129da984800dd5c5bf50d8f72","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},"f2974a71ce795d94801b56157c820e6a537ae91f221d3a76afd92f02f117d3a5","f4daa1df6a52fa6b3fb3f9b740d1e4d9b7be646d9798fbb017620a48bd97dd07",{"version":"cc308936a997383a333ab2bceccf0acc7035f628138a54f1f4dd89d77348f97e","signature":"dce7c88fc8d2c6ef871bf0f4c8e0708df9d602685b9f57f9f6df8cf3c6522f28"},"2b2685b8507668a96d6f5c411cc52446837ac217446b9b462ab2999ed2087bd6",{"version":"daca301bf91bc19d57a8d4b67b21ae75efd3f689fcbce07b34cf450952dc9ba0","signature":"a4437bf6c7410b8da502943f0c9f855b414227cac95b45d7122b9caa2b799f63"},{"version":"27b14c528f7f77d26ae599f0a2212e7da0d904d5be3c386774be6ae060d51b8f","signature":"c1682048586e65fb71d53013e046fb0aaa495a760bbf56db487d011c3cfd76e4"},{"version":"76e98ebba7e24549c48f0b0af4cd18a0c05d4f4fc4a259c06e5ca2f88da772e9","signature":"0746bb54ce1cdd9f174cad62029a1290a7faa02101ab35162c2ea30b6b97df0e"},{"version":"d1bf25a9fb8cbdcffce7d054cbbb7cc8370dbf86cb023013b87d8a4d0adcb30f","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"a3462cf3f0c844701450f2274fff0ba9131eb74591a0d8a1c4b1aa1f4fcd75d7","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},"2ff9995137f3e5d68971388ec58af0c79721626323884513f9f5e2e996ac1fdd","cc957354aa3c94c9961ebf46282cfde1e81d107fc5785a61f62c67f1dd3ac2eb","1a7cc144992d79b062c22ac0309c6624dbb0d49bbddff7ea3b9daa0c17bcac0a","93de1c6dab503f053efe8d304cb522bb3a89feab8c98f307a674a4fae04773e9","3b043cf9a81854a72963fdb57d1884fc4da1cf5be69b5e0a4c5b751e58cb6d88","dd5647a9ccccb2b074dca8a02b00948ac293091ebe73fdf2e6e98f718819f669","6a9c5127096b35264eb7cd21b2417bfc1d42cceca9ba4ce2bb0c3410b7816042","78828b06c0d3b586954015e9ebde5480b009e166c71244763bda328ec0920f41","0cba3a5d7b81356222594442753cf90dd2892e5ccfe1d262aaca6896ba6c1380","a69c09dbea52352f479d3e7ac949fde3d17b195abe90b045d619f747b38d6d1a",{"version":"c2ab70bbc7a24c42a790890739dd8a0ba9d2e15038b40dff8163a97a5d148c00","affectsGlobalScope":true},"422dbb183fdced59425ca072c8bd09efaa77ce4e2ab928ec0d8a1ce062d2a45a",{"version":"712ba0d43b44d144dfd01593f61af6e2e21cfae83e834d297643e7973e55ed61","affectsGlobalScope":true},"1dab5ab6bcf11de47ab9db295df8c4f1d92ffa750e8f095e88c71ce4c3299628","f71f46ccd5a90566f0a37b25b23bc4684381ab2180bdf6733f4e6624474e1894",{"version":"54e65985a3ee3cec182e6a555e20974ea936fc8b8d1738c14e8ed8a42bd921d4","affectsGlobalScope":true},"82408ed3e959ddc60d3e9904481b5a8dc16469928257af22a3f7d1a3bc7fd8c4","98a3ebfa494b46265634a73459050befba5da8fdc6ca0ef9b7269421780f4ff3","34e5de87d983bc6aefef8b17658556e3157003e8d9555d3cb098c6bef0b5fbc8","cc0b61316c4f37393f1f9595e93b673f4184e9d07f4c127165a490ec4a928668","f27371653aded82b2b160f7a7033fb4a5b1534b6f6081ef7be1468f0f15327d3","c762cd6754b13a461c54b59d0ae0ab7aeef3c292c6cf889873f786ee4d8e75c9","f4ea7d5df644785bd9fbf419930cbaec118f0d8b4160037d2339b8e23c059e79",{"version":"bfea28e6162ed21a0aeed181b623dcf250aa79abf49e24a6b7e012655af36d81","affectsGlobalScope":true},"7a5459efa09ea82088234e6533a203d528c594b01787fb90fba148885a36e8b6","ae97e20f2e10dbeec193d6a2f9cd9a367a1e293e7d6b33b68bacea166afd7792","10d4796a130577d57003a77b95d8723530bbec84718e364aa2129fa8ffba0378","ad41bb744149e92adb06eb953da195115620a3f2ad48e7d3ae04d10762dae197","bf73c576885408d4a176f44a9035d798827cc5020d58284cb18d7573430d9022","7ae078ca42a670445ae0c6a97c029cb83d143d62abd1730efb33f68f0b2c0e82",{"version":"e8b18c6385ff784228a6f369694fcf1a6b475355ba89090a88de13587a9391d5","affectsGlobalScope":true},"5d0a9ea09d990b5788f867f1c79d4878f86f7384cb7dab38eecbf22f9efd063d","12eea70b5e11e924bb0543aea5eadc16ced318aa26001b453b0d561c2fd0bd1e","08777cd9318d294646b121838574e1dd7acbb22c21a03df84e1f2c87b1ad47f2","08a90bcdc717df3d50a2ce178d966a8c353fd23e5c392fd3594a6e39d9bb6304",{"version":"4cd4cff679c9b3d9239fd7bf70293ca4594583767526916af8e5d5a47d0219c7","affectsGlobalScope":true},"2a12d2da5ac4c4979401a3f6eaafa874747a37c365e4bc18aa2b171ae134d21b","002b837927b53f3714308ecd96f72ee8a053b8aeb28213d8ec6de23ed1608b66","1dc9c847473bb47279e398b22c740c83ea37a5c88bf66629666e3cf4c5b9f99c","a9e4a5a24bf2c44de4c98274975a1a705a0abbaad04df3557c2d3cd8b1727949","00fa7ce8bc8acc560dc341bbfdf37840a8c59e6a67c9bfa3fa5f36254df35db2","1b952304137851e45bc009785de89ada562d9376177c97e37702e39e60c2f1ff",{"version":"806ef4cac3b3d9fa4a48d849c8e084d7c72fcd7b16d76e06049a9ed742ff79c0","affectsGlobalScope":true},"44b8b584a338b190a59f4f6929d072431950c7bd92ec2694821c11bce180c8a5","5f0ed51db151c2cdc4fa3bb0f44ce6066912ad001b607a34e65a96c52eb76248",{"version":"3345c276cab0e76dda86c0fb79104ff915a4580ba0f3e440870e183b1baec476","affectsGlobalScope":true},"664d8f2d59164f2e08c543981453893bc7e003e4dfd29651ce09db13e9457980","e383ff72aabf294913f8c346f5da1445ae6ad525836d28efd52cbadc01a361a6","f52fbf64c7e480271a9096763c4882d356b05cab05bf56a64e68a95313cd2ce2","59bdb65f28d7ce52ccfc906e9aaf422f8b8534b2d21c32a27d7819be5ad81df7",{"version":"3a2da34079a2567161c1359316a32e712404b56566c45332ac9dcee015ecce9f","affectsGlobalScope":true},"28a2e7383fd898c386ffdcacedf0ec0845e5d1a86b5a43f25b86bc315f556b79","3aff9c8c36192e46a84afe7b926136d520487155154ab9ba982a8b544ea8fc95","a880cf8d85af2e4189c709b0fea613741649c0e40fffb4360ec70762563d5de0","85bbf436a15bbeda4db888be3062d47f99c66fd05d7c50f0f6473a9151b6a070","9f9c49c95ecd25e0cb2587751925976cf64fd184714cb11e213749c80cf0f927","f0c75c08a71f9212c93a719a25fb0320d53f2e50ca89a812640e08f8ad8c408c",{"version":"ab9b9a36e5284fd8d3bf2f7d5fcbc60052f25f27e4d20954782099282c60d23e","affectsGlobalScope":true},"9cafe917bf667f1027b2bb62e2de454ecd2119c80873ad76fc41d941089753b8","3ebae8c00411116a66fca65b08228ea0cf0b72724701f9b854442100aab55aba","8b06ac3faeacb8484d84ddb44571d8f410697f98d7bfa86c0fda60373a9f5215","7eb06594824ada538b1d8b48c3925a83e7db792f47a081a62cf3e5c4e23cf0ee","f5638f7c2f12a9a1a57b5c41b3c1ea7db3876c003bab68e6a57afd6bcc169af0","0d14fa22c41fdc7277e6f71473b20ebc07f40f00e38875142335d5b63cdfc9d2","d8aab31ba8e618cc3eea10b0945de81cb93b7e8150a013a482332263b9305322","462bccdf75fcafc1ae8c30400c9425e1a4681db5d605d1a0edb4f990a54d8094","5923d8facbac6ecf7c84739a5c701a57af94a6f6648d6229a6c768cf28f0f8cb","7adecb2c3238794c378d336a8182d4c3dd2c4fa6fa1785e2797a3db550edea62","dc12dc0e5aa06f4e1a7692149b78f89116af823b9e1f1e4eae140cd3e0e674e6","1bfc6565b90c8771615cd8cfcf9b36efc0275e5e83ac7d9181307e96eb495161","8a8a96898906f065f296665e411f51010b51372fa260d5373bf9f64356703190","7f82ef88bdb67d9a850dd1c7cd2d690f33e0f0acd208e3c9eba086f3670d4f73",{"version":"3fe15a491a792852283caeece8142bc7427a29c183d9fec8691d95a49c8932a1","affectsGlobalScope":true},"6209c901f30cc321f4b86800d11fad3d67e73a3308f19946b1bc642af0280298","b0d10e46cfe3f6c476b69af02eaa38e4ccc7430221ce3109ae84bb9fb8282298","70e9a18da08294f75bf23e46c7d69e67634c0765d355887b9b41f0d959e1426e","6ba73232c9d3267ca36ddb83e335d474d2c0e167481e3dec416c782894e11438"],"options":{"emitDecoratorMetadata":true,"esModuleInterop":true,"experimentalDecorators":true,"module":1,"outDir":"./dist","rootDir":"./src","skipLibCheck":true,"strict":true,"strictNullChecks":false,"target":7},"fileIdsList":[[292,343],[343],[292,293,294,295,296,343],[292,294,343],[298,343],[316,343,350],[343,352],[343,353],[343,358,363],[300,343],[303,343],[304,309,343],[305,315,316,323,332,342,343],[305,306,315,323,343],[307,343],[308,309,316,324,343],[309,332,339,343],[310,312,315,323,343],[311,343],[312,313,343],[314,315,343],[315,343],[315,316,317,332,342,343],[315,316,317,332,343],[318,323,332,342,343],[315,316,318,319,323,332,339,342,343],[318,320,332,339,342,343],[300,301,302,303,304,305,306,307,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,327,328,329,330,331,332,333,334,335,336,337,338,339,340,341,342,343,344,345,346,347,348,349],[315,321,343],[322,342,343],[312,315,323,332,343],[324,343],[325,343],[303,326,343],[327,341,343,347],[328,343],[329,343],[315,330,343],[330,331,343,345],[315,332,333,334,343],[332,334,343],[332,333,343],[335,343],[336,343],[315,337,338,343],[337,338,343],[309,323,332,339,343],[340,343],[323,341,343],[304,318,329,342,343],[309,343],[332,343,344],[343,345],[343,346],[304,309,315,317,326,332,342,343,345,347],[332,343,348],[142,143,144,145,146,147,343],[148,343],[343,367],[343,356,359],[343,356,359,360,361],[343,358],[343,355,362],[343,357],[157,158,160,161,163,164,167,343],[150,158,166,343],[158,167,343],[150,157,158,160,161,164,343],[150,158,343],[158,343],[150,164,174,343],[157,158,160,161,163,343],[150,343],[176,343],[112,176,343],[112,157,174,176,214,343],[151,152,153,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,343],[231,343],[150,174,343],[150,151,152,153,154,156,343],[157,343],[157,229,343],[234,236,343],[150,234,235,343],[157,236,343],[234,343],[235,236,343],[155,278,343],[150,157,343],[157,162,343],[150,157,162,278,343],[113,343],[98,113,343],[92,98,113,343],[98,99,100,101,102,343],[92,93,95,107,108,110,113,114,343],[95,105,110,113,343],[115,343],[115,150,343],[120,343],[116,343],[115,116,343],[115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,343],[115,127,343],[104,109,110,111,113,114,343],[92,93,94,95,96,97,103,107,109,110,113,114,141,149,343],[110,113,343],[92,93,97,103,104,108,109,110,112,114,150,343],[95,104,105,106,107,109,112,113,114,150,343],[93,110,113,343],[92,113,150,343],[47,343],[47,49,51,343],[44,45,46,48,343],[53,343],[55,56,343],[57,343],[59,343],[60,61,343],[63,343],[54,57,343],[69,343],[57,68,70,343],[57,61,68,343],[66,68,343],[66,343],[67,343],[66,74,343],[61,66,68,343],[73,343],[54,68,343],[76,343],[65,343],[78,79,80,343],[81,343],[51,343],[45,50,343],[49,343],[84,343],[85,343],[61,81,343],[87,343],[54,81,343],[89,343],[81,90,343],[278,343],[66,68,278,281,343],[66,68,77,281,343],[279,280,343],[284,285,286,343],[278,283,284,343],[278,281,287,343],[57,66,68,81,278,281,287,289,343],[57,287,343],[283,288,343],[81,278,289,343],[81,88,289,343],[63],[54,57],[69],[57,68],[66],[67],[66,68],[73],[54,68],[76],[78,79,80],[81],[45,50],[49],[47],[84],[87],[54,81],[89],[68,77],[279,280],[284,285,286],[278,283,284],[283,288],[81,88]],"referencedMap":[[294,1],[292,2],[297,3],[293,1],[295,4],[296,1],[299,5],[351,6],[352,2],[353,7],[354,8],[364,9],[298,2],[300,10],[301,10],[303,11],[304,12],[305,13],[306,14],[307,15],[308,16],[309,17],[310,18],[311,19],[312,20],[313,20],[314,21],[315,22],[316,23],[317,24],[302,2],[349,2],[318,25],[319,26],[320,27],[350,28],[321,29],[322,30],[323,31],[324,32],[325,33],[326,34],[327,35],[328,36],[329,37],[330,38],[331,39],[332,40],[334,41],[333,42],[335,43],[336,44],[337,45],[338,46],[339,47],[340,48],[341,49],[342,50],[343,51],[344,52],[345,53],[346,54],[347,55],[348,56],[365,2],[366,2],[61,2],[148,57],[142,58],[143,2],[144,2],[145,2],[146,2],[147,2],[367,2],[368,59],[356,2],[360,60],[362,61],[361,60],[359,62],[363,63],[355,2],[358,64],[357,2],[174,2],[169,65],[167,66],[168,67],[165,68],[159,69],[170,70],[171,68],[173,69],[172,69],[175,71],[161,2],[164,72],[160,73],[166,69],[177,74],[178,74],[179,74],[180,74],[181,74],[182,74],[183,74],[184,74],[185,74],[186,74],[214,75],[176,2],[215,76],[216,74],[187,74],[188,74],[189,74],[190,74],[191,74],[192,74],[193,74],[194,74],[195,74],[196,74],[197,74],[198,74],[199,74],[200,74],[201,74],[202,74],[203,74],[205,74],[206,74],[204,74],[207,74],[208,74],[209,74],[210,74],[211,74],[212,74],[213,74],[278,77],[226,73],[217,2],[218,2],[219,2],[220,2],[227,73],[221,2],[222,2],[223,2],[224,2],[225,2],[232,78],[233,78],[231,79],[153,2],[152,73],[154,73],[151,73],[157,80],[158,81],[228,73],[229,73],[230,82],[237,83],[234,69],[236,84],[238,85],[235,86],[239,87],[241,73],[240,73],[156,88],[162,89],[243,90],[163,91],[242,2],[155,2],[244,2],[245,2],[247,2],[248,2],[249,2],[260,2],[250,2],[251,2],[252,2],[253,2],[254,2],[255,2],[256,2],[257,2],[259,2],[261,2],[258,2],[262,2],[263,2],[264,2],[265,2],[266,2],[267,2],[246,2],[268,2],[269,2],[270,2],[272,2],[273,2],[274,2],[275,2],[271,2],[276,73],[277,2],[98,92],[102,93],[99,94],[101,94],[100,94],[103,95],[92,2],[93,2],[105,2],[109,96],[111,97],[140,98],[117,98],[118,98],[115,2],[119,99],[120,98],[128,100],[129,100],[130,100],[131,100],[132,100],[133,100],[134,100],[116,98],[135,101],[136,101],[137,102],[138,101],[121,98],[122,98],[141,103],[123,98],[124,98],[125,98],[126,98],[127,99],[139,104],[112,105],[97,2],[150,106],[104,92],[106,107],[113,108],[94,2],[95,2],[110,109],[96,2],[107,110],[114,111],[108,2],[149,58],[8,2],[9,2],[13,2],[12,2],[2,2],[14,2],[15,2],[16,2],[17,2],[18,2],[19,2],[20,2],[21,2],[3,2],[4,2],[25,2],[22,2],[23,2],[24,2],[26,2],[27,2],[28,2],[5,2],[29,2],[30,2],[31,2],[32,2],[6,2],[33,2],[34,2],[35,2],[36,2],[7,2],[43,2],[41,2],[37,2],[38,2],[39,2],[40,2],[1,2],[42,2],[11,2],[10,2],[48,112],[52,113],[44,112],[45,112],[46,2],[47,114],[54,115],[53,2],[57,116],[58,117],[55,117],[56,2],[60,118],[62,119],[59,117],[64,120],[63,121],[70,122],[71,123],[69,124],[72,125],[67,126],[68,127],[75,128],[73,129],[74,130],[76,131],[77,132],[65,2],[66,133],[81,134],[79,135],[80,2],[82,135],[78,135],[83,136],[51,137],[50,138],[49,112],[85,139],[86,140],[84,141],[88,142],[87,143],[90,144],[91,145],[89,135],[279,146],[282,147],[280,148],[281,149],[287,150],[285,151],[284,152],[290,153],[286,154],[289,155],[283,146],[291,156],[288,157]],"exportedModulesMap":[[294,1],[292,2],[297,3],[293,1],[295,4],[296,1],[299,5],[351,6],[352,2],[353,7],[354,8],[364,9],[298,2],[300,10],[301,10],[303,11],[304,12],[305,13],[306,14],[307,15],[308,16],[309,17],[310,18],[311,19],[312,20],[313,20],[314,21],[315,22],[316,23],[317,24],[302,2],[349,2],[318,25],[319,26],[320,27],[350,28],[321,29],[322,30],[323,31],[324,32],[325,33],[326,34],[327,35],[328,36],[329,37],[330,38],[331,39],[332,40],[334,41],[333,42],[335,43],[336,44],[337,45],[338,46],[339,47],[340,48],[341,49],[342,50],[343,51],[344,52],[345,53],[346,54],[347,55],[348,56],[365,2],[366,2],[61,2],[148,57],[142,58],[143,2],[144,2],[145,2],[146,2],[147,2],[367,2],[368,59],[356,2],[360,60],[362,61],[361,60],[359,62],[363,63],[355,2],[358,64],[357,2],[174,2],[169,65],[167,66],[168,67],[165,68],[159,69],[170,70],[171,68],[173,69],[172,69],[175,71],[161,2],[164,72],[160,73],[166,69],[177,74],[178,74],[179,74],[180,74],[181,74],[182,74],[183,74],[184,74],[185,74],[186,74],[214,75],[176,2],[215,76],[216,74],[187,74],[188,74],[189,74],[190,74],[191,74],[192,74],[193,74],[194,74],[195,74],[196,74],[197,74],[198,74],[199,74],[200,74],[201,74],[202,74],[203,74],[205,74],[206,74],[204,74],[207,74],[208,74],[209,74],[210,74],[211,74],[212,74],[213,74],[278,77],[226,73],[217,2],[218,2],[219,2],[220,2],[227,73],[221,2],[222,2],[223,2],[224,2],[225,2],[232,78],[233,78],[231,79],[153,2],[152,73],[154,73],[151,73],[157,80],[158,81],[228,73],[229,73],[230,82],[237,83],[234,69],[236,84],[238,85],[235,86],[239,87],[241,73],[240,73],[156,88],[162,89],[243,90],[163,91],[242,2],[155,2],[244,2],[245,2],[247,2],[248,2],[249,2],[260,2],[250,2],[251,2],[252,2],[253,2],[254,2],[255,2],[256,2],[257,2],[259,2],[261,2],[258,2],[262,2],[263,2],[264,2],[265,2],[266,2],[267,2],[246,2],[268,2],[269,2],[270,2],[272,2],[273,2],[274,2],[275,2],[271,2],[276,73],[277,2],[98,92],[102,93],[99,94],[101,94],[100,94],[103,95],[92,2],[93,2],[105,2],[109,96],[111,97],[140,98],[117,98],[118,98],[115,2],[119,99],[120,98],[128,100],[129,100],[130,100],[131,100],[132,100],[133,100],[134,100],[116,98],[135,101],[136,101],[137,102],[138,101],[121,98],[122,98],[141,103],[123,98],[124,98],[125,98],[126,98],[127,99],[139,104],[112,105],[97,2],[150,106],[104,92],[106,107],[113,108],[94,2],[95,2],[110,109],[96,2],[107,110],[114,111],[108,2],[149,58],[8,2],[9,2],[13,2],[12,2],[2,2],[14,2],[15,2],[16,2],[17,2],[18,2],[19,2],[20,2],[21,2],[3,2],[4,2],[25,2],[22,2],[23,2],[24,2],[26,2],[27,2],[28,2],[5,2],[29,2],[30,2],[31,2],[32,2],[6,2],[33,2],[34,2],[35,2],[36,2],[7,2],[43,2],[41,2],[37,2],[38,2],[39,2],[40,2],[1,2],[42,2],[11,2],[10,2],[48,112],[44,112],[45,112],[46,2],[47,114],[54,115],[53,2],[57,116],[58,117],[55,117],[56,2],[60,118],[62,119],[59,117],[64,158],[63,159],[70,160],[69,161],[67,162],[68,163],[73,164],[74,165],[76,166],[77,167],[65,2],[66,133],[81,168],[79,169],[80,2],[78,169],[83,136],[51,170],[50,171],[49,172],[85,173],[86,140],[84,169],[88,174],[87,175],[90,176],[89,169],[279,146],[280,177],[281,178],[287,179],[285,180],[284,152],[286,154],[289,181],[283,146],[288,182]],"semanticDiagnosticsPerFile":[294,292,297,293,295,296,299,351,352,353,354,364,298,300,301,303,304,305,306,307,308,309,310,311,312,313,314,315,316,317,302,349,318,319,320,350,321,322,323,324,325,326,327,328,329,330,331,332,334,333,335,336,337,338,339,340,341,342,343,344,345,346,347,348,365,366,61,148,142,143,144,145,146,147,367,368,356,360,362,361,359,363,355,358,357,174,169,167,168,165,159,170,171,173,172,175,161,164,160,166,177,178,179,180,181,182,183,184,185,186,214,176,215,216,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,205,206,204,207,208,209,210,211,212,213,278,226,217,218,219,220,227,221,222,223,224,225,232,233,231,153,152,154,151,157,158,228,229,230,237,234,236,238,235,239,241,240,156,162,243,163,242,155,244,245,247,248,249,260,250,251,252,253,254,255,256,257,259,261,258,262,263,264,265,266,267,246,268,269,270,272,273,274,275,271,276,277,98,102,99,101,100,103,92,93,105,109,111,140,117,118,115,119,120,128,129,130,131,132,133,134,116,135,136,137,138,121,122,141,123,124,125,126,127,139,112,97,150,104,106,113,94,95,110,96,107,114,108,149,8,9,13,12,2,14,15,16,17,18,19,20,21,3,4,25,22,23,24,26,27,28,5,29,30,31,32,6,33,34,35,36,7,43,41,37,38,39,40,1,42,11,10,48,52,44,45,46,47,54,53,57,58,55,56,60,62,59,64,63,70,71,69,72,67,68,75,73,74,76,77,65,66,81,79,80,82,78,83,51,50,49,85,86,84,88,87,90,91,89,279,282,280,281,287,285,284,290,286,289,283,291,288],"affectedFilesPendingEmit":[[294,1],[292,1],[297,1],[293,1],[295,1],[296,1],[299,1],[351,1],[352,1],[353,1],[354,1],[364,1],[298,1],[300,1],[301,1],[303,1],[304,1],[305,1],[306,1],[307,1],[308,1],[309,1],[310,1],[311,1],[312,1],[313,1],[314,1],[315,1],[316,1],[317,1],[302,1],[349,1],[318,1],[319,1],[320,1],[350,1],[321,1],[322,1],[323,1],[324,1],[325,1],[326,1],[327,1],[328,1],[329,1],[330,1],[331,1],[332,1],[334,1],[333,1],[335,1],[336,1],[337,1],[338,1],[339,1],[340,1],[341,1],[342,1],[343,1],[344,1],[345,1],[346,1],[347,1],[348,1],[365,1],[366,1],[61,1],[148,1],[142,1],[143,1],[144,1],[145,1],[146,1],[147,1],[367,1],[368,1],[356,1],[360,1],[362,1],[361,1],[359,1],[363,1],[355,1],[358,1],[357,1],[174,1],[169,1],[167,1],[168,1],[165,1],[159,1],[170,1],[171,1],[173,1],[172,1],[175,1],[161,1],[164,1],[160,1],[166,1],[177,1],[178,1],[179,1],[180,1],[181,1],[182,1],[183,1],[184,1],[185,1],[186,1],[214,1],[176,1],[215,1],[216,1],[187,1],[188,1],[189,1],[190,1],[191,1],[192,1],[193,1],[194,1],[195,1],[196,1],[197,1],[198,1],[199,1],[200,1],[201,1],[202,1],[203,1],[205,1],[206,1],[204,1],[207,1],[208,1],[209,1],[210,1],[211,1],[212,1],[213,1],[278,1],[226,1],[217,1],[218,1],[219,1],[220,1],[227,1],[221,1],[222,1],[223,1],[224,1],[225,1],[232,1],[233,1],[231,1],[153,1],[152,1],[154,1],[151,1],[157,1],[158,1],[228,1],[229,1],[230,1],[237,1],[234,1],[236,1],[238,1],[235,1],[239,1],[241,1],[240,1],[156,1],[162,1],[243,1],[163,1],[242,1],[155,1],[244,1],[245,1],[247,1],[248,1],[249,1],[260,1],[250,1],[251,1],[252,1],[253,1],[254,1],[255,1],[256,1],[257,1],[259,1],[261,1],[258,1],[262,1],[263,1],[264,1],[265,1],[266,1],[267,1],[246,1],[268,1],[269,1],[270,1],[272,1],[273,1],[274,1],[275,1],[271,1],[276,1],[277,1],[98,1],[102,1],[99,1],[101,1],[100,1],[103,1],[92,1],[93,1],[105,1],[109,1],[111,1],[140,1],[117,1],[118,1],[115,1],[119,1],[120,1],[128,1],[129,1],[130,1],[131,1],[132,1],[133,1],[134,1],[116,1],[135,1],[136,1],[137,1],[138,1],[121,1],[122,1],[141,1],[123,1],[124,1],[125,1],[126,1],[127,1],[139,1],[112,1],[97,1],[150,1],[104,1],[106,1],[113,1],[94,1],[95,1],[110,1],[96,1],[107,1],[114,1],[108,1],[149,1],[2,1],[3,1],[4,1],[5,1],[6,1],[7,1],[43,1],[48,1],[52,1],[44,1],[45,1],[46,1],[47,1],[54,1],[53,1],[57,1],[58,1],[55,1],[56,1],[60,1],[62,1],[59,1],[64,1],[63,1],[70,1],[71,1],[69,1],[72,1],[67,1],[68,1],[75,1],[73,1],[74,1],[76,1],[77,1],[65,1],[66,1],[81,1],[79,1],[80,1],[82,1],[78,1],[83,1],[51,1],[50,1],[49,1],[85,1],[86,1],[84,1],[88,1],[87,1],[90,1],[91,1],[89,1],[279,1],[282,1],[280,1],[281,1],[287,1],[285,1],[284,1],[290,1],[286,1],[289,1],[283,1],[291,1],[288,1]]},"version":"4.5.5"} \ No newline at end of file