@s-hirano-ist/s-core 0.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +661 -0
- package/README.md +124 -0
- package/dist/articles/entities/article-entity.d.ts +75 -0
- package/dist/articles/entities/article-entity.d.ts.map +1 -0
- package/dist/articles/entities/article-entity.js +84 -0
- package/dist/articles/entities/article-entity.js.map +1 -0
- package/dist/articles/events/article-created-event.d.ts +12 -0
- package/dist/articles/events/article-created-event.d.ts.map +1 -0
- package/dist/articles/events/article-created-event.js +15 -0
- package/dist/articles/events/article-created-event.js.map +1 -0
- package/dist/articles/events/article-deleted-event.d.ts +9 -0
- package/dist/articles/events/article-deleted-event.d.ts.map +1 -0
- package/dist/articles/events/article-deleted-event.js +12 -0
- package/dist/articles/events/article-deleted-event.js.map +1 -0
- package/dist/articles/events/article-updated-event.d.ts +12 -0
- package/dist/articles/events/article-updated-event.d.ts.map +1 -0
- package/dist/articles/events/article-updated-event.js +15 -0
- package/dist/articles/events/article-updated-event.js.map +1 -0
- package/dist/articles/index.d.ts +12 -0
- package/dist/articles/index.d.ts.map +1 -0
- package/dist/articles/index.js +17 -0
- package/dist/articles/index.js.map +1 -0
- package/dist/articles/repositories/articles-command-repository.interface.d.ts +8 -0
- package/dist/articles/repositories/articles-command-repository.interface.d.ts.map +1 -0
- package/dist/articles/repositories/articles-command-repository.interface.js +2 -0
- package/dist/articles/repositories/articles-command-repository.interface.js.map +1 -0
- package/dist/articles/repositories/articles-query-repository.interface.d.ts +44 -0
- package/dist/articles/repositories/articles-query-repository.interface.d.ts.map +1 -0
- package/dist/articles/repositories/articles-query-repository.interface.js +2 -0
- package/dist/articles/repositories/articles-query-repository.interface.js.map +1 -0
- package/dist/articles/repositories/category-query-repository.interface.d.ts +9 -0
- package/dist/articles/repositories/category-query-repository.interface.d.ts.map +1 -0
- package/dist/articles/repositories/category-query-repository.interface.js +2 -0
- package/dist/articles/repositories/category-query-repository.interface.js.map +1 -0
- package/dist/articles/services/articles-domain-service.d.ts +18 -0
- package/dist/articles/services/articles-domain-service.d.ts.map +1 -0
- package/dist/articles/services/articles-domain-service.js +58 -0
- package/dist/articles/services/articles-domain-service.js.map +1 -0
- package/dist/articles/types/cache-strategy.d.ts +6 -0
- package/dist/articles/types/cache-strategy.d.ts.map +1 -0
- package/dist/articles/types/cache-strategy.js +2 -0
- package/dist/articles/types/cache-strategy.js.map +1 -0
- package/dist/articles/types/query-params.d.ts +23 -0
- package/dist/articles/types/query-params.d.ts.map +1 -0
- package/dist/articles/types/query-params.js +2 -0
- package/dist/articles/types/query-params.js.map +1 -0
- package/dist/articles/types/sort-order.d.ts +2 -0
- package/dist/articles/types/sort-order.d.ts.map +1 -0
- package/dist/articles/types/sort-order.js +2 -0
- package/dist/articles/types/sort-order.js.map +1 -0
- package/dist/books/entities/books-entity.d.ts +84 -0
- package/dist/books/entities/books-entity.d.ts.map +1 -0
- package/dist/books/entities/books-entity.js +71 -0
- package/dist/books/entities/books-entity.js.map +1 -0
- package/dist/books/events/book-created-event.d.ts +10 -0
- package/dist/books/events/book-created-event.d.ts.map +1 -0
- package/dist/books/events/book-created-event.js +13 -0
- package/dist/books/events/book-created-event.js.map +1 -0
- package/dist/books/events/book-deleted-event.d.ts +9 -0
- package/dist/books/events/book-deleted-event.d.ts.map +1 -0
- package/dist/books/events/book-deleted-event.js +12 -0
- package/dist/books/events/book-deleted-event.js.map +1 -0
- package/dist/books/events/book-updated-event.d.ts +10 -0
- package/dist/books/events/book-updated-event.d.ts.map +1 -0
- package/dist/books/events/book-updated-event.js +13 -0
- package/dist/books/events/book-updated-event.js.map +1 -0
- package/dist/books/index.d.ts +11 -0
- package/dist/books/index.d.ts.map +1 -0
- package/dist/books/index.js +16 -0
- package/dist/books/index.js.map +1 -0
- package/dist/books/repositories/books-command-repository.interface.d.ts +9 -0
- package/dist/books/repositories/books-command-repository.interface.d.ts.map +1 -0
- package/dist/books/repositories/books-command-repository.interface.js +2 -0
- package/dist/books/repositories/books-command-repository.interface.js.map +1 -0
- package/dist/books/repositories/books-query-repository.interface.d.ts +54 -0
- package/dist/books/repositories/books-query-repository.interface.d.ts.map +1 -0
- package/dist/books/repositories/books-query-repository.interface.js +2 -0
- package/dist/books/repositories/books-query-repository.interface.js.map +1 -0
- package/dist/books/services/books-domain-service.d.ts +18 -0
- package/dist/books/services/books-domain-service.d.ts.map +1 -0
- package/dist/books/services/books-domain-service.js +57 -0
- package/dist/books/services/books-domain-service.js.map +1 -0
- package/dist/books/types/cache-strategy.d.ts +6 -0
- package/dist/books/types/cache-strategy.d.ts.map +1 -0
- package/dist/books/types/cache-strategy.js +2 -0
- package/dist/books/types/cache-strategy.js.map +1 -0
- package/dist/books/types/query-params.d.ts +14 -0
- package/dist/books/types/query-params.d.ts.map +1 -0
- package/dist/books/types/query-params.js +2 -0
- package/dist/books/types/query-params.js.map +1 -0
- package/dist/books/types/sort-order.d.ts +2 -0
- package/dist/books/types/sort-order.d.ts.map +1 -0
- package/dist/books/types/sort-order.js +2 -0
- package/dist/books/types/sort-order.js.map +1 -0
- package/dist/common/entities/common-entity.d.ts +25 -0
- package/dist/common/entities/common-entity.d.ts.map +1 -0
- package/dist/common/entities/common-entity.js +38 -0
- package/dist/common/entities/common-entity.js.map +1 -0
- package/dist/common/events/base-domain-event.d.ts +15 -0
- package/dist/common/events/base-domain-event.d.ts.map +1 -0
- package/dist/common/events/base-domain-event.js +14 -0
- package/dist/common/events/base-domain-event.js.map +1 -0
- package/dist/common/events/domain-event.interface.d.ts +13 -0
- package/dist/common/events/domain-event.interface.d.ts.map +1 -0
- package/dist/common/events/domain-event.interface.js +2 -0
- package/dist/common/events/domain-event.interface.js.map +1 -0
- package/dist/common/events/system-error-event.d.ts +12 -0
- package/dist/common/events/system-error-event.d.ts.map +1 -0
- package/dist/common/events/system-error-event.js +15 -0
- package/dist/common/events/system-error-event.js.map +1 -0
- package/dist/common/events/system-warning-event.d.ts +12 -0
- package/dist/common/events/system-warning-event.d.ts.map +1 -0
- package/dist/common/events/system-warning-event.js +15 -0
- package/dist/common/events/system-warning-event.js.map +1 -0
- package/dist/common/index.d.ts +9 -0
- package/dist/common/index.d.ts.map +1 -0
- package/dist/common/index.js +13 -0
- package/dist/common/index.js.map +1 -0
- package/dist/common/services/entity-factory.d.ts +2 -0
- package/dist/common/services/entity-factory.d.ts.map +1 -0
- package/dist/common/services/entity-factory.js +13 -0
- package/dist/common/services/entity-factory.js.map +1 -0
- package/dist/common/services/id-generator.d.ts +5 -0
- package/dist/common/services/id-generator.d.ts.map +1 -0
- package/dist/common/services/id-generator.js +4 -0
- package/dist/common/services/id-generator.js.map +1 -0
- package/dist/common/types/search-types.d.ts +31 -0
- package/dist/common/types/search-types.d.ts.map +1 -0
- package/dist/common/types/search-types.js +2 -0
- package/dist/common/types/search-types.js.map +1 -0
- package/dist/errors/error-classes.d.ts +16 -0
- package/dist/errors/error-classes.d.ts.map +1 -0
- package/dist/errors/error-classes.js +31 -0
- package/dist/errors/error-classes.js.map +1 -0
- package/dist/errors/index.d.ts +2 -0
- package/dist/errors/index.d.ts.map +1 -0
- package/dist/errors/index.js +3 -0
- package/dist/errors/index.js.map +1 -0
- package/dist/images/entities/image-entity.d.ts +98 -0
- package/dist/images/entities/image-entity.d.ts.map +1 -0
- package/dist/images/entities/image-entity.js +90 -0
- package/dist/images/entities/image-entity.js.map +1 -0
- package/dist/images/events/image-created-event.d.ts +9 -0
- package/dist/images/events/image-created-event.d.ts.map +1 -0
- package/dist/images/events/image-created-event.js +12 -0
- package/dist/images/events/image-created-event.js.map +1 -0
- package/dist/images/events/image-deleted-event.d.ts +9 -0
- package/dist/images/events/image-deleted-event.d.ts.map +1 -0
- package/dist/images/events/image-deleted-event.js +12 -0
- package/dist/images/events/image-deleted-event.js.map +1 -0
- package/dist/images/events/image-updated-event.d.ts +10 -0
- package/dist/images/events/image-updated-event.d.ts.map +1 -0
- package/dist/images/events/image-updated-event.js +13 -0
- package/dist/images/events/image-updated-event.js.map +1 -0
- package/dist/images/index.d.ts +11 -0
- package/dist/images/index.d.ts.map +1 -0
- package/dist/images/index.js +16 -0
- package/dist/images/index.js.map +1 -0
- package/dist/images/repositories/images-command-repository.interface.d.ts +9 -0
- package/dist/images/repositories/images-command-repository.interface.d.ts.map +1 -0
- package/dist/images/repositories/images-command-repository.interface.js +2 -0
- package/dist/images/repositories/images-command-repository.interface.js.map +1 -0
- package/dist/images/repositories/images-query-repository.interface.d.ts +26 -0
- package/dist/images/repositories/images-query-repository.interface.d.ts.map +1 -0
- package/dist/images/repositories/images-query-repository.interface.js +2 -0
- package/dist/images/repositories/images-query-repository.interface.js.map +1 -0
- package/dist/images/services/images-domain-service.d.ts +17 -0
- package/dist/images/services/images-domain-service.d.ts.map +1 -0
- package/dist/images/services/images-domain-service.js +42 -0
- package/dist/images/services/images-domain-service.js.map +1 -0
- package/dist/images/types/cache-strategy.d.ts +6 -0
- package/dist/images/types/cache-strategy.d.ts.map +1 -0
- package/dist/images/types/cache-strategy.js +2 -0
- package/dist/images/types/cache-strategy.js.map +1 -0
- package/dist/images/types/query-params.d.ts +14 -0
- package/dist/images/types/query-params.d.ts.map +1 -0
- package/dist/images/types/query-params.js +2 -0
- package/dist/images/types/query-params.js.map +1 -0
- package/dist/images/types/sort-order.d.ts +2 -0
- package/dist/images/types/sort-order.d.ts.map +1 -0
- package/dist/images/types/sort-order.js +2 -0
- package/dist/images/types/sort-order.js.map +1 -0
- package/dist/index.d.ts +7 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +8 -0
- package/dist/index.js.map +1 -0
- package/dist/notes/entities/note-entity.d.ts +43 -0
- package/dist/notes/entities/note-entity.d.ts.map +1 -0
- package/dist/notes/entities/note-entity.js +48 -0
- package/dist/notes/entities/note-entity.js.map +1 -0
- package/dist/notes/events/note-created-event.d.ts +10 -0
- package/dist/notes/events/note-created-event.d.ts.map +1 -0
- package/dist/notes/events/note-created-event.js +13 -0
- package/dist/notes/events/note-created-event.js.map +1 -0
- package/dist/notes/events/note-deleted-event.d.ts +9 -0
- package/dist/notes/events/note-deleted-event.d.ts.map +1 -0
- package/dist/notes/events/note-deleted-event.js +12 -0
- package/dist/notes/events/note-deleted-event.js.map +1 -0
- package/dist/notes/events/note-updated-event.d.ts +10 -0
- package/dist/notes/events/note-updated-event.d.ts.map +1 -0
- package/dist/notes/events/note-updated-event.js +13 -0
- package/dist/notes/events/note-updated-event.js.map +1 -0
- package/dist/notes/index.d.ts +11 -0
- package/dist/notes/index.d.ts.map +1 -0
- package/dist/notes/index.js +16 -0
- package/dist/notes/index.js.map +1 -0
- package/dist/notes/repositories/notes-command-repository.interface.d.ts +8 -0
- package/dist/notes/repositories/notes-command-repository.interface.d.ts.map +1 -0
- package/dist/notes/repositories/notes-command-repository.interface.js +2 -0
- package/dist/notes/repositories/notes-command-repository.interface.js.map +1 -0
- package/dist/notes/repositories/notes-query-repository.interface.d.ts +22 -0
- package/dist/notes/repositories/notes-query-repository.interface.d.ts.map +1 -0
- package/dist/notes/repositories/notes-query-repository.interface.js +2 -0
- package/dist/notes/repositories/notes-query-repository.interface.js.map +1 -0
- package/dist/notes/services/notes-domain-service.d.ts +15 -0
- package/dist/notes/services/notes-domain-service.d.ts.map +1 -0
- package/dist/notes/services/notes-domain-service.js +42 -0
- package/dist/notes/services/notes-domain-service.js.map +1 -0
- package/dist/notes/types/cache-strategy.d.ts +6 -0
- package/dist/notes/types/cache-strategy.d.ts.map +1 -0
- package/dist/notes/types/cache-strategy.js +2 -0
- package/dist/notes/types/cache-strategy.js.map +1 -0
- package/dist/notes/types/query-params.d.ts +14 -0
- package/dist/notes/types/query-params.d.ts.map +1 -0
- package/dist/notes/types/query-params.js +2 -0
- package/dist/notes/types/query-params.js.map +1 -0
- package/dist/notes/types/sort-order.d.ts +2 -0
- package/dist/notes/types/sort-order.d.ts.map +1 -0
- package/dist/notes/types/sort-order.js +2 -0
- package/dist/notes/types/sort-order.js.map +1 -0
- package/dist/tsconfig.tsbuildinfo +1 -0
- package/package.json +70 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cache-strategy.d.ts","sourceRoot":"","sources":["../../../articles/types/cache-strategy.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,aAAa,GAAG;IAC3B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;CAChB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cache-strategy.js","sourceRoot":"","sources":["../../../articles/types/cache-strategy.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import type { CacheStrategy } from "./cache-strategy";
|
|
2
|
+
import type { SortOrder } from "./sort-order";
|
|
3
|
+
type ArticleOrderByField = "id" | "title" | "url" | "quote" | "ogImageUrl" | "ogTitle" | "ogDescription" | "status" | "createdAt" | "updatedAt" | "exportedAt";
|
|
4
|
+
type CategoryOrderByField = "id" | "name" | "createdAt" | "updatedAt";
|
|
5
|
+
type ArticleOrderBy = {
|
|
6
|
+
[K in ArticleOrderByField]?: SortOrder;
|
|
7
|
+
};
|
|
8
|
+
type CategoryOrderBy = {
|
|
9
|
+
[K in CategoryOrderByField]?: SortOrder;
|
|
10
|
+
};
|
|
11
|
+
export type ArticlesFindManyParams = {
|
|
12
|
+
orderBy?: ArticleOrderBy;
|
|
13
|
+
take?: number;
|
|
14
|
+
skip?: number;
|
|
15
|
+
cacheStrategy?: CacheStrategy;
|
|
16
|
+
};
|
|
17
|
+
export type CategoryFindManyParams = {
|
|
18
|
+
orderBy?: CategoryOrderBy;
|
|
19
|
+
take?: number;
|
|
20
|
+
skip?: number;
|
|
21
|
+
};
|
|
22
|
+
export {};
|
|
23
|
+
//# sourceMappingURL=query-params.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"query-params.d.ts","sourceRoot":"","sources":["../../../articles/types/query-params.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAE9C,KAAK,mBAAmB,GACrB,IAAI,GACJ,OAAO,GACP,KAAK,GACL,OAAO,GACP,YAAY,GACZ,SAAS,GACT,eAAe,GACf,QAAQ,GACR,WAAW,GACX,WAAW,GACX,YAAY,CAAC;AAEhB,KAAK,oBAAoB,GAAG,IAAI,GAAG,MAAM,GAAG,WAAW,GAAG,WAAW,CAAC;AAEtE,KAAK,cAAc,GAAG;KACpB,CAAC,IAAI,mBAAmB,CAAC,CAAC,EAAE,SAAS;CACtC,CAAC;AAEF,KAAK,eAAe,GAAG;KACrB,CAAC,IAAI,oBAAoB,CAAC,CAAC,EAAE,SAAS;CACvC,CAAC;AAEF,MAAM,MAAM,sBAAsB,GAAG;IACpC,OAAO,CAAC,EAAE,cAAc,CAAC;IACzB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,aAAa,CAAC,EAAE,aAAa,CAAC;CAC9B,CAAC;AAEF,MAAM,MAAM,sBAAsB,GAAG;IACpC,OAAO,CAAC,EAAE,eAAe,CAAC;IAC1B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;CACd,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"query-params.js","sourceRoot":"","sources":["../../../articles/types/query-params.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sort-order.d.ts","sourceRoot":"","sources":["../../../articles/types/sort-order.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,SAAS,GAAG,KAAK,GAAG,MAAM,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sort-order.js","sourceRoot":"","sources":["../../../articles/types/sort-order.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import { UserId } from "../../common/entities/common-entity";
|
|
3
|
+
declare const ISBN: z.core.$ZodBranded<z.ZodString, "ISBN">;
|
|
4
|
+
export type ISBN = z.infer<typeof ISBN>;
|
|
5
|
+
export declare const makeISBN: (v: string) => ISBN;
|
|
6
|
+
declare const BookTitle: z.core.$ZodBranded<z.ZodString, "BookTitle">;
|
|
7
|
+
export type BookTitle = z.infer<typeof BookTitle>;
|
|
8
|
+
export declare const makeBookTitle: (v: string) => BookTitle;
|
|
9
|
+
declare const GoogleTitle: z.core.$ZodBranded<z.ZodNullable<z.ZodString>, "GoogleTitle">;
|
|
10
|
+
export type GoogleTitle = z.infer<typeof GoogleTitle>;
|
|
11
|
+
export declare const makeGoogleTitle: (v: string | null | undefined) => GoogleTitle;
|
|
12
|
+
declare const GoogleSubtitle: z.core.$ZodBranded<z.ZodNullable<z.ZodString>, "GoogleSubTitle">;
|
|
13
|
+
export type GoogleSubtitle = z.infer<typeof GoogleSubtitle>;
|
|
14
|
+
export declare const makeGoogleSubTitle: (v: string | null | undefined) => GoogleSubtitle;
|
|
15
|
+
declare const GoogleAuthors: z.core.$ZodBranded<z.ZodNullable<z.ZodArray<z.ZodString>>, "GoogleAuthors">;
|
|
16
|
+
export type GoogleAuthors = z.infer<typeof GoogleAuthors>;
|
|
17
|
+
export declare const makeGoogleAuthors: (v: string[] | null | undefined) => GoogleAuthors;
|
|
18
|
+
declare const GoogleDescription: z.core.$ZodBranded<z.ZodNullable<z.ZodString>, "GoogleDescription">;
|
|
19
|
+
export type GoogleDescription = z.infer<typeof GoogleDescription>;
|
|
20
|
+
export declare const makeGoogleDescription: (v: string | null | undefined) => GoogleDescription;
|
|
21
|
+
declare const GoogleImgSrc: z.core.$ZodBranded<z.ZodNullable<z.ZodString>, "GoogleImgSrc">;
|
|
22
|
+
export type GoogleImgSrc = z.infer<typeof GoogleImgSrc>;
|
|
23
|
+
export declare const makeGoogleImgSrc: (v: string | null | undefined) => GoogleImgSrc;
|
|
24
|
+
declare const GoogleHref: z.core.$ZodBranded<z.ZodNullable<z.ZodString>, "GoogleHref">;
|
|
25
|
+
export type GoogleHref = z.infer<typeof GoogleHref>;
|
|
26
|
+
export declare const makeGoogleHref: (v: string | null | undefined) => GoogleHref;
|
|
27
|
+
declare const BookMarkdown: z.core.$ZodBranded<z.ZodNullable<z.ZodString>, "BookMarkdown">;
|
|
28
|
+
export type BookMarkdown = z.infer<typeof BookMarkdown>;
|
|
29
|
+
export declare const makeBookMarkdown: (v: string | null) => BookMarkdown;
|
|
30
|
+
export declare const UnexportedBook: z.ZodObject<{
|
|
31
|
+
id: z.core.$ZodBranded<z.ZodDefault<z.ZodUUID>, "Id">;
|
|
32
|
+
userId: z.core.$ZodBranded<z.ZodString, "UserId">;
|
|
33
|
+
ISBN: z.core.$ZodBranded<z.ZodString, "ISBN">;
|
|
34
|
+
title: z.core.$ZodBranded<z.ZodString, "BookTitle">;
|
|
35
|
+
googleTitle: z.ZodOptional<z.core.$ZodBranded<z.ZodNullable<z.ZodString>, "GoogleTitle">>;
|
|
36
|
+
googleSubtitle: z.ZodOptional<z.core.$ZodBranded<z.ZodNullable<z.ZodString>, "GoogleSubTitle">>;
|
|
37
|
+
googleAuthors: z.ZodOptional<z.core.$ZodBranded<z.ZodNullable<z.ZodArray<z.ZodString>>, "GoogleAuthors">>;
|
|
38
|
+
googleDescription: z.ZodOptional<z.core.$ZodBranded<z.ZodNullable<z.ZodString>, "GoogleDescription">>;
|
|
39
|
+
googleImgSrc: z.ZodOptional<z.core.$ZodBranded<z.ZodNullable<z.ZodString>, "GoogleImgSrc">>;
|
|
40
|
+
googleHref: z.ZodOptional<z.core.$ZodBranded<z.ZodNullable<z.ZodString>, "GoogleHref">>;
|
|
41
|
+
markdown: z.ZodOptional<z.core.$ZodBranded<z.ZodNullable<z.ZodString>, "BookMarkdown">>;
|
|
42
|
+
createdAt: z.core.$ZodBranded<z.ZodDate, "CreatedAt">;
|
|
43
|
+
status: z.ZodLiteral<"UNEXPORTED">;
|
|
44
|
+
}, z.core.$strip>;
|
|
45
|
+
export type UnexportedBook = Readonly<z.infer<typeof UnexportedBook>>;
|
|
46
|
+
declare const ExportedBook: z.ZodObject<{
|
|
47
|
+
id: z.core.$ZodBranded<z.ZodDefault<z.ZodUUID>, "Id">;
|
|
48
|
+
userId: z.core.$ZodBranded<z.ZodString, "UserId">;
|
|
49
|
+
ISBN: z.core.$ZodBranded<z.ZodString, "ISBN">;
|
|
50
|
+
title: z.core.$ZodBranded<z.ZodString, "BookTitle">;
|
|
51
|
+
googleTitle: z.ZodOptional<z.core.$ZodBranded<z.ZodNullable<z.ZodString>, "GoogleTitle">>;
|
|
52
|
+
googleSubtitle: z.ZodOptional<z.core.$ZodBranded<z.ZodNullable<z.ZodString>, "GoogleSubTitle">>;
|
|
53
|
+
googleAuthors: z.ZodOptional<z.core.$ZodBranded<z.ZodNullable<z.ZodArray<z.ZodString>>, "GoogleAuthors">>;
|
|
54
|
+
googleDescription: z.ZodOptional<z.core.$ZodBranded<z.ZodNullable<z.ZodString>, "GoogleDescription">>;
|
|
55
|
+
googleImgSrc: z.ZodOptional<z.core.$ZodBranded<z.ZodNullable<z.ZodString>, "GoogleImgSrc">>;
|
|
56
|
+
googleHref: z.ZodOptional<z.core.$ZodBranded<z.ZodNullable<z.ZodString>, "GoogleHref">>;
|
|
57
|
+
markdown: z.ZodOptional<z.core.$ZodBranded<z.ZodNullable<z.ZodString>, "BookMarkdown">>;
|
|
58
|
+
createdAt: z.core.$ZodBranded<z.ZodDate, "CreatedAt">;
|
|
59
|
+
status: z.ZodLiteral<"EXPORTED">;
|
|
60
|
+
exportedAt: z.core.$ZodBranded<z.ZodDate, "ExportedAt">;
|
|
61
|
+
}, z.core.$strip>;
|
|
62
|
+
type ExportedBook = Readonly<z.infer<typeof ExportedBook>>;
|
|
63
|
+
type CreateBookArgs = Readonly<{
|
|
64
|
+
userId: UserId;
|
|
65
|
+
ISBN: ISBN;
|
|
66
|
+
title: BookTitle;
|
|
67
|
+
}>;
|
|
68
|
+
type UpdateBookArgs = Readonly<{
|
|
69
|
+
title: BookTitle;
|
|
70
|
+
googleTitle: GoogleTitle;
|
|
71
|
+
googleSubtitle: GoogleSubtitle;
|
|
72
|
+
googleAuthors: GoogleAuthors;
|
|
73
|
+
googleDescription: GoogleDescription;
|
|
74
|
+
googleImgSrc: GoogleImgSrc;
|
|
75
|
+
googleHref: GoogleHref;
|
|
76
|
+
markdown: BookMarkdown;
|
|
77
|
+
}>;
|
|
78
|
+
export declare const bookEntity: {
|
|
79
|
+
create: (args: CreateBookArgs) => UnexportedBook;
|
|
80
|
+
update: (book: UnexportedBook, args: UpdateBookArgs) => UnexportedBook;
|
|
81
|
+
export: (book: UnexportedBook) => ExportedBook;
|
|
82
|
+
};
|
|
83
|
+
export {};
|
|
84
|
+
//# sourceMappingURL=books-entity.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"books-entity.d.ts","sourceRoot":"","sources":["../../../books/entities/books-entity.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import { CreatedAt, ExportedStatus, Id, makeCreatedAt, makeExportedStatus, makeId, UnexportedStatus, UserId, } from "../../common/entities/common-entity";
|
|
3
|
+
import { createEntityWithErrorHandling } from "../../common/services/entity-factory";
|
|
4
|
+
// Value objects
|
|
5
|
+
const ISBN = z
|
|
6
|
+
.string({ message: "required" })
|
|
7
|
+
.min(1, { message: "required" })
|
|
8
|
+
.max(17, { message: "tooLong" })
|
|
9
|
+
.regex(/^[\d-]+$/, { message: "invalidFormat" })
|
|
10
|
+
.brand();
|
|
11
|
+
export const makeISBN = (v) => ISBN.parse(v);
|
|
12
|
+
const BookTitle = z
|
|
13
|
+
.string({ message: "required" })
|
|
14
|
+
.min(1, { message: "required" })
|
|
15
|
+
.max(256, { message: "tooLong" })
|
|
16
|
+
.brand();
|
|
17
|
+
export const makeBookTitle = (v) => BookTitle.parse(v);
|
|
18
|
+
const GoogleTitle = z.string().nullable().brand();
|
|
19
|
+
export const makeGoogleTitle = (v) => GoogleTitle.parse(v);
|
|
20
|
+
const GoogleSubtitle = z.string().nullable().brand();
|
|
21
|
+
export const makeGoogleSubTitle = (v) => GoogleSubtitle.parse(v);
|
|
22
|
+
const GoogleAuthors = z.array(z.string()).nullable().brand();
|
|
23
|
+
export const makeGoogleAuthors = (v) => GoogleAuthors.parse(v);
|
|
24
|
+
const GoogleDescription = z.string().nullable().brand();
|
|
25
|
+
export const makeGoogleDescription = (v) => GoogleDescription.parse(v);
|
|
26
|
+
const GoogleImgSrc = z.string().nullable().brand();
|
|
27
|
+
export const makeGoogleImgSrc = (v) => GoogleImgSrc.parse(v);
|
|
28
|
+
const GoogleHref = z.string().nullable().brand();
|
|
29
|
+
export const makeGoogleHref = (v) => GoogleHref.parse(v);
|
|
30
|
+
const BookMarkdown = z.string().nullable().brand();
|
|
31
|
+
export const makeBookMarkdown = (v) => BookMarkdown.parse(v);
|
|
32
|
+
// Entities
|
|
33
|
+
const Base = z.object({
|
|
34
|
+
id: Id,
|
|
35
|
+
userId: UserId,
|
|
36
|
+
ISBN: ISBN,
|
|
37
|
+
title: BookTitle,
|
|
38
|
+
googleTitle: GoogleTitle.optional(),
|
|
39
|
+
googleSubtitle: GoogleSubtitle.optional(),
|
|
40
|
+
googleAuthors: GoogleAuthors.optional(),
|
|
41
|
+
googleDescription: GoogleDescription.optional(),
|
|
42
|
+
googleImgSrc: GoogleImgSrc.optional(),
|
|
43
|
+
googleHref: GoogleHref.optional(),
|
|
44
|
+
markdown: BookMarkdown.optional(),
|
|
45
|
+
createdAt: CreatedAt,
|
|
46
|
+
});
|
|
47
|
+
export const UnexportedBook = Base.extend({ status: UnexportedStatus });
|
|
48
|
+
const ExportedBook = Base.extend(ExportedStatus.shape);
|
|
49
|
+
export const bookEntity = {
|
|
50
|
+
create: (args) => {
|
|
51
|
+
return createEntityWithErrorHandling(() => Object.freeze({
|
|
52
|
+
id: makeId(),
|
|
53
|
+
status: "UNEXPORTED",
|
|
54
|
+
createdAt: makeCreatedAt(),
|
|
55
|
+
...args,
|
|
56
|
+
}));
|
|
57
|
+
},
|
|
58
|
+
update: (book, args) => {
|
|
59
|
+
return createEntityWithErrorHandling(() => Object.freeze({ ...book, ...args }));
|
|
60
|
+
},
|
|
61
|
+
export: (book) => {
|
|
62
|
+
return createEntityWithErrorHandling(() => {
|
|
63
|
+
const exportedStatus = makeExportedStatus();
|
|
64
|
+
return Object.freeze({
|
|
65
|
+
...book,
|
|
66
|
+
...exportedStatus,
|
|
67
|
+
});
|
|
68
|
+
});
|
|
69
|
+
},
|
|
70
|
+
};
|
|
71
|
+
//# sourceMappingURL=books-entity.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"books-entity.js","sourceRoot":"","sources":["../../../books/entities/books-entity.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { BaseDomainEvent } from "../../common/events/base-domain-event";
|
|
2
|
+
export declare class BookCreatedEvent extends BaseDomainEvent {
|
|
3
|
+
constructor(data: {
|
|
4
|
+
ISBN: string;
|
|
5
|
+
title: string;
|
|
6
|
+
userId: string;
|
|
7
|
+
caller: string;
|
|
8
|
+
});
|
|
9
|
+
}
|
|
10
|
+
//# sourceMappingURL=book-created-event.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"book-created-event.d.ts","sourceRoot":"","sources":["../../../books/events/book-created-event.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,uCAAuC,CAAC;AAExE,qBAAa,gBAAiB,SAAQ,eAAe;gBACxC,IAAI,EAAE;QACjB,IAAI,EAAE,MAAM,CAAC;QACb,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,MAAM,CAAC;QACf,MAAM,EAAE,MAAM,CAAC;KACf;CAaD"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { BaseDomainEvent } from "../../common/events/base-domain-event";
|
|
2
|
+
export class BookCreatedEvent extends BaseDomainEvent {
|
|
3
|
+
constructor(data) {
|
|
4
|
+
super("book.created", {
|
|
5
|
+
ISBN: data.ISBN,
|
|
6
|
+
title: data.title,
|
|
7
|
+
}, {
|
|
8
|
+
caller: data.caller,
|
|
9
|
+
userId: data.userId,
|
|
10
|
+
});
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=book-created-event.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"book-created-event.js","sourceRoot":"","sources":["../../../books/events/book-created-event.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,uCAAuC,CAAC;AAExE,MAAM,OAAO,gBAAiB,SAAQ,eAAe;IACpD,YAAY,IAKX;QACA,KAAK,CACJ,cAAc,EACd;YACC,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,KAAK,EAAE,IAAI,CAAC,KAAK;SACjB,EACD;YACC,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,MAAM,EAAE,IAAI,CAAC,MAAM;SACnB,CACD,CAAC;IACH,CAAC;CACD"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { BaseDomainEvent } from "../../common/events/base-domain-event";
|
|
2
|
+
export declare class BookDeletedEvent extends BaseDomainEvent {
|
|
3
|
+
constructor(data: {
|
|
4
|
+
title: string;
|
|
5
|
+
userId: string;
|
|
6
|
+
caller: string;
|
|
7
|
+
});
|
|
8
|
+
}
|
|
9
|
+
//# sourceMappingURL=book-deleted-event.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"book-deleted-event.d.ts","sourceRoot":"","sources":["../../../books/events/book-deleted-event.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,uCAAuC,CAAC;AAExE,qBAAa,gBAAiB,SAAQ,eAAe;gBACxC,IAAI,EAAE;QACjB,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,MAAM,CAAC;QACf,MAAM,EAAE,MAAM,CAAC;KACf;CAYD"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { BaseDomainEvent } from "../../common/events/base-domain-event";
|
|
2
|
+
export class BookDeletedEvent extends BaseDomainEvent {
|
|
3
|
+
constructor(data) {
|
|
4
|
+
super("book.deleted", {
|
|
5
|
+
title: data.title,
|
|
6
|
+
}, {
|
|
7
|
+
caller: data.caller,
|
|
8
|
+
userId: data.userId,
|
|
9
|
+
});
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=book-deleted-event.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"book-deleted-event.js","sourceRoot":"","sources":["../../../books/events/book-deleted-event.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,uCAAuC,CAAC;AAExE,MAAM,OAAO,gBAAiB,SAAQ,eAAe;IACpD,YAAY,IAIX;QACA,KAAK,CACJ,cAAc,EACd;YACC,KAAK,EAAE,IAAI,CAAC,KAAK;SACjB,EACD;YACC,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,MAAM,EAAE,IAAI,CAAC,MAAM;SACnB,CACD,CAAC;IACH,CAAC;CACD"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { BaseDomainEvent } from "../../common/events/base-domain-event";
|
|
2
|
+
export declare class BookUpdatedEvent extends BaseDomainEvent {
|
|
3
|
+
constructor(data: {
|
|
4
|
+
ISBN: string;
|
|
5
|
+
title: string;
|
|
6
|
+
userId: string;
|
|
7
|
+
caller: string;
|
|
8
|
+
});
|
|
9
|
+
}
|
|
10
|
+
//# sourceMappingURL=book-updated-event.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"book-updated-event.d.ts","sourceRoot":"","sources":["../../../books/events/book-updated-event.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,uCAAuC,CAAC;AAExE,qBAAa,gBAAiB,SAAQ,eAAe;gBACxC,IAAI,EAAE;QACjB,IAAI,EAAE,MAAM,CAAC;QACb,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,MAAM,CAAC;QACf,MAAM,EAAE,MAAM,CAAC;KACf;CAaD"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { BaseDomainEvent } from "../../common/events/base-domain-event";
|
|
2
|
+
export class BookUpdatedEvent extends BaseDomainEvent {
|
|
3
|
+
constructor(data) {
|
|
4
|
+
super("book.updated", {
|
|
5
|
+
ISBN: data.ISBN,
|
|
6
|
+
title: data.title,
|
|
7
|
+
}, {
|
|
8
|
+
caller: data.caller,
|
|
9
|
+
userId: data.userId,
|
|
10
|
+
});
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=book-updated-event.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"book-updated-event.js","sourceRoot":"","sources":["../../../books/events/book-updated-event.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,uCAAuC,CAAC;AAExE,MAAM,OAAO,gBAAiB,SAAQ,eAAe;IACpD,YAAY,IAKX;QACA,KAAK,CACJ,cAAc,EACd;YACC,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,KAAK,EAAE,IAAI,CAAC,KAAK;SACjB,EACD;YACC,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,MAAM,EAAE,IAAI,CAAC,MAAM;SACnB,CACD,CAAC;IACH,CAAC;CACD"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export * from "./entities/books-entity";
|
|
2
|
+
export * from "./events/book-created-event";
|
|
3
|
+
export * from "./events/book-deleted-event";
|
|
4
|
+
export * from "./events/book-updated-event";
|
|
5
|
+
export * from "./repositories/books-command-repository.interface";
|
|
6
|
+
export * from "./repositories/books-query-repository.interface";
|
|
7
|
+
export * from "./services/books-domain-service";
|
|
8
|
+
export * from "./types/cache-strategy";
|
|
9
|
+
export * from "./types/query-params";
|
|
10
|
+
export * from "./types/sort-order";
|
|
11
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../books/index.ts"],"names":[],"mappings":"AACA,cAAc,yBAAyB,CAAC;AAGxC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,6BAA6B,CAAC;AAG5C,cAAc,mDAAmD,CAAC;AAClE,cAAc,iDAAiD,CAAC;AAGhE,cAAc,iCAAiC,CAAC;AAGhD,cAAc,wBAAwB,CAAC;AACvC,cAAc,sBAAsB,CAAC;AACrC,cAAc,oBAAoB,CAAC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
// Entities
|
|
2
|
+
export * from "./entities/books-entity";
|
|
3
|
+
// Events
|
|
4
|
+
export * from "./events/book-created-event";
|
|
5
|
+
export * from "./events/book-deleted-event";
|
|
6
|
+
export * from "./events/book-updated-event";
|
|
7
|
+
// Repositories
|
|
8
|
+
export * from "./repositories/books-command-repository.interface";
|
|
9
|
+
export * from "./repositories/books-query-repository.interface";
|
|
10
|
+
// Services
|
|
11
|
+
export * from "./services/books-domain-service";
|
|
12
|
+
// Types
|
|
13
|
+
export * from "./types/cache-strategy";
|
|
14
|
+
export * from "./types/query-params";
|
|
15
|
+
export * from "./types/sort-order";
|
|
16
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../books/index.ts"],"names":[],"mappings":"AAAA,WAAW;AACX,cAAc,yBAAyB,CAAC;AAExC,SAAS;AACT,cAAc,6BAA6B,CAAC;AAC5C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,6BAA6B,CAAC;AAE5C,eAAe;AACf,cAAc,mDAAmD,CAAC;AAClE,cAAc,iDAAiD,CAAC;AAEhE,WAAW;AACX,cAAc,iCAAiC,CAAC;AAEhD,QAAQ;AACR,cAAc,wBAAwB,CAAC;AACvC,cAAc,sBAAsB,CAAC;AACrC,cAAc,oBAAoB,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { Id, Status, UserId } from "../../common/entities/common-entity";
|
|
2
|
+
import type { ISBN, UnexportedBook } from "../entities/books-entity";
|
|
3
|
+
export type IBooksCommandRepository = {
|
|
4
|
+
create(data: UnexportedBook): Promise<void>;
|
|
5
|
+
update(ISBN: ISBN, userId: UserId, data: UnexportedBook): Promise<void>;
|
|
6
|
+
deleteById(id: Id, userId: UserId, status: Status): Promise<void>;
|
|
7
|
+
fetchBookFromGitHub(): Promise<UnexportedBook[]>;
|
|
8
|
+
};
|
|
9
|
+
//# sourceMappingURL=books-command-repository.interface.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"books-command-repository.interface.d.ts","sourceRoot":"","sources":["../../../books/repositories/books-command-repository.interface.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,qCAAqC,CAAC;AAC9E,OAAO,KAAK,EAAE,IAAI,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAErE,MAAM,MAAM,uBAAuB,GAAG;IACrC,MAAM,CAAC,IAAI,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5C,MAAM,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACxE,UAAU,CAAC,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAClE,mBAAmB,IAAI,OAAO,CAAC,cAAc,EAAE,CAAC,CAAC;CACjD,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"books-command-repository.interface.js","sourceRoot":"","sources":["../../../books/repositories/books-command-repository.interface.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import type { Status, UserId } from "../../common/entities/common-entity";
|
|
2
|
+
import type { ISBN } from "../entities/books-entity";
|
|
3
|
+
import type { BooksFindManyParams } from "../types/query-params";
|
|
4
|
+
export type IBooksQueryRepository = {
|
|
5
|
+
findByISBN(ISBN: ISBN, userId: UserId): Promise<{
|
|
6
|
+
ISBN: string;
|
|
7
|
+
id: string;
|
|
8
|
+
title: string;
|
|
9
|
+
googleTitle: string | null;
|
|
10
|
+
googleSubTitle: string | null;
|
|
11
|
+
googleAuthors: string[];
|
|
12
|
+
googleDescription: string | null;
|
|
13
|
+
googleImgSrc: string | null;
|
|
14
|
+
googleHref: string | null;
|
|
15
|
+
markdown: string | null;
|
|
16
|
+
rating: number | null;
|
|
17
|
+
tags: string[];
|
|
18
|
+
status: string;
|
|
19
|
+
createdAt: Date;
|
|
20
|
+
updatedAt: Date;
|
|
21
|
+
exportedAt: Date | null;
|
|
22
|
+
} | null>;
|
|
23
|
+
findMany(userId: UserId, status: Status, params?: BooksFindManyParams): Promise<{
|
|
24
|
+
ISBN: string;
|
|
25
|
+
id: string;
|
|
26
|
+
title: string;
|
|
27
|
+
googleTitle: string | null;
|
|
28
|
+
googleSubTitle: string | null;
|
|
29
|
+
googleAuthors: string[];
|
|
30
|
+
googleDescription: string | null;
|
|
31
|
+
googleImgSrc: string | null;
|
|
32
|
+
googleHref: string | null;
|
|
33
|
+
markdown: string | null;
|
|
34
|
+
rating: number | null;
|
|
35
|
+
tags: string[];
|
|
36
|
+
createdAt: Date;
|
|
37
|
+
updatedAt: Date;
|
|
38
|
+
exportedAt: Date | null;
|
|
39
|
+
}[]>;
|
|
40
|
+
count(userId: UserId, status: Status): Promise<number>;
|
|
41
|
+
search(query: string, userId: UserId, limit?: number): Promise<{
|
|
42
|
+
id: string;
|
|
43
|
+
title: string;
|
|
44
|
+
ISBN: string;
|
|
45
|
+
googleTitle: string | null;
|
|
46
|
+
googleSubTitle: string | null;
|
|
47
|
+
googleAuthors: string[];
|
|
48
|
+
googleDescription: string | null;
|
|
49
|
+
markdown: string | null;
|
|
50
|
+
rating: number | null;
|
|
51
|
+
tags: string[];
|
|
52
|
+
}[]>;
|
|
53
|
+
};
|
|
54
|
+
//# sourceMappingURL=books-query-repository.interface.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"books-query-repository.interface.d.ts","sourceRoot":"","sources":["../../../books/repositories/books-query-repository.interface.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,qCAAqC,CAAC;AAC1E,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,0BAA0B,CAAC;AACrD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAEjE,MAAM,MAAM,qBAAqB,GAAG;IACnC,UAAU,CACT,IAAI,EAAE,IAAI,EACV,MAAM,EAAE,MAAM,GACZ,OAAO,CAAC;QACV,IAAI,EAAE,MAAM,CAAC;QACb,EAAE,EAAE,MAAM,CAAC;QACX,KAAK,EAAE,MAAM,CAAC;QACd,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;QAC3B,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;QAC9B,aAAa,EAAE,MAAM,EAAE,CAAC;QACxB,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAC;QACjC,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;QAC5B,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;QAC1B,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;QACxB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;QACtB,IAAI,EAAE,MAAM,EAAE,CAAC;QACf,MAAM,EAAE,MAAM,CAAC;QACf,SAAS,EAAE,IAAI,CAAC;QAChB,SAAS,EAAE,IAAI,CAAC;QAChB,UAAU,EAAE,IAAI,GAAG,IAAI,CAAC;KACxB,GAAG,IAAI,CAAC,CAAC;IACV,QAAQ,CACP,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EACd,MAAM,CAAC,EAAE,mBAAmB,GAC1B,OAAO,CACT;QACC,IAAI,EAAE,MAAM,CAAC;QACb,EAAE,EAAE,MAAM,CAAC;QACX,KAAK,EAAE,MAAM,CAAC;QACd,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;QAC3B,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;QAC9B,aAAa,EAAE,MAAM,EAAE,CAAC;QACxB,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAC;QACjC,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;QAC5B,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;QAC1B,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;QACxB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;QACtB,IAAI,EAAE,MAAM,EAAE,CAAC;QACf,SAAS,EAAE,IAAI,CAAC;QAChB,SAAS,EAAE,IAAI,CAAC;QAChB,UAAU,EAAE,IAAI,GAAG,IAAI,CAAC;KACxB,EAAE,CACH,CAAC;IACF,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IACvD,MAAM,CACL,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,EACd,KAAK,CAAC,EAAE,MAAM,GACZ,OAAO,CACT;QACC,EAAE,EAAE,MAAM,CAAC;QACX,KAAK,EAAE,MAAM,CAAC;QACd,IAAI,EAAE,MAAM,CAAC;QACb,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;QAC3B,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;QAC9B,aAAa,EAAE,MAAM,EAAE,CAAC;QACxB,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAC;QACjC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;QACxB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;QACtB,IAAI,EAAE,MAAM,EAAE,CAAC;KACf,EAAE,CACH,CAAC;CACF,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"books-query-repository.interface.js","sourceRoot":"","sources":["../../../books/repositories/books-query-repository.interface.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import type { UserId } from "../../common/entities/common-entity";
|
|
2
|
+
import { type BookMarkdown, type BookTitle, type GoogleAuthors, type GoogleDescription, type GoogleHref, type GoogleImgSrc, type GoogleSubtitle, type GoogleTitle, type ISBN, UnexportedBook } from "../entities/books-entity";
|
|
3
|
+
import type { IBooksQueryRepository } from "../repositories/books-query-repository.interface";
|
|
4
|
+
type BookStatus = "NEED_CREATE" | "NEED_UPDATE";
|
|
5
|
+
type ReturnType = {
|
|
6
|
+
status: BookStatus;
|
|
7
|
+
data: UnexportedBook;
|
|
8
|
+
} | {
|
|
9
|
+
status: "NO_UPDATE";
|
|
10
|
+
};
|
|
11
|
+
export declare class BooksDomainService {
|
|
12
|
+
private readonly booksQueryRepository;
|
|
13
|
+
constructor(booksQueryRepository: IBooksQueryRepository);
|
|
14
|
+
ensureNoDuplicate(ISBN: ISBN, userId: UserId): Promise<void>;
|
|
15
|
+
updateBook(ISBN: ISBN, userId: UserId, title: BookTitle, googleTitle: GoogleTitle, googleSubTitle: GoogleSubtitle, googleAuthors: GoogleAuthors, googleDescription: GoogleDescription, googleImgSrc: GoogleImgSrc, googleHref: GoogleHref, markdown: BookMarkdown): Promise<ReturnType>;
|
|
16
|
+
}
|
|
17
|
+
export {};
|
|
18
|
+
//# sourceMappingURL=books-domain-service.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"books-domain-service.d.ts","sourceRoot":"","sources":["../../../books/services/books-domain-service.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qCAAqC,CAAC;AAElE,OAAO,EACN,KAAK,YAAY,EACjB,KAAK,SAAS,EAEd,KAAK,aAAa,EAClB,KAAK,iBAAiB,EACtB,KAAK,UAAU,EACf,KAAK,YAAY,EACjB,KAAK,cAAc,EACnB,KAAK,WAAW,EAChB,KAAK,IAAI,EACT,cAAc,EACd,MAAM,0BAA0B,CAAC;AAClC,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,kDAAkD,CAAC;AAW9F,KAAK,UAAU,GAAG,aAAa,GAAG,aAAa,CAAC;AAChD,KAAK,UAAU,GACZ;IAAE,MAAM,EAAE,UAAU,CAAC;IAAC,IAAI,EAAE,cAAc,CAAA;CAAE,GAC5C;IAAE,MAAM,EAAE,WAAW,CAAA;CAAE,CAAC;AAsD3B,qBAAa,kBAAkB;IAClB,OAAO,CAAC,QAAQ,CAAC,oBAAoB;gBAApB,oBAAoB,EAAE,qBAAqB;IAE3D,iBAAiB,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM;IAI5C,UAAU,CACtB,IAAI,EAAE,IAAI,EACV,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,SAAS,EAChB,WAAW,EAAE,WAAW,EACxB,cAAc,EAAE,cAAc,EAC9B,aAAa,EAAE,aAAa,EAC5B,iBAAiB,EAAE,iBAAiB,EACpC,YAAY,EAAE,YAAY,EAC1B,UAAU,EAAE,UAAU,EACtB,QAAQ,EAAE,YAAY;CAgBvB"}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import { DuplicateError, UnexpectedError } from "../../errors/error-classes";
|
|
2
|
+
import { bookEntity, UnexportedBook, } from "../entities/books-entity";
|
|
3
|
+
async function ensureNoDuplicateBook(booksQueryRepository, ISBN, userId) {
|
|
4
|
+
const exists = await booksQueryRepository.findByISBN(ISBN, userId);
|
|
5
|
+
if (exists !== null)
|
|
6
|
+
throw new DuplicateError();
|
|
7
|
+
}
|
|
8
|
+
async function updateBook(booksQueryRepository, ISBN, userId, title, googleTitle, googleSubTitle, googleAuthors, googleDescription, googleImgSrc, googleHref, markdown) {
|
|
9
|
+
const data = await booksQueryRepository.findByISBN(ISBN, userId);
|
|
10
|
+
if (data?.status !== "UNEXPORTED")
|
|
11
|
+
return { status: "NO_UPDATE" };
|
|
12
|
+
if (!data) {
|
|
13
|
+
return {
|
|
14
|
+
status: "NEED_CREATE",
|
|
15
|
+
data: bookEntity.create({ userId, ISBN, title }),
|
|
16
|
+
};
|
|
17
|
+
}
|
|
18
|
+
const newData = UnexportedBook.safeParse(data);
|
|
19
|
+
if (!newData.success)
|
|
20
|
+
throw new UnexpectedError();
|
|
21
|
+
if (data.title !== title ||
|
|
22
|
+
data.googleTitle !== googleTitle ||
|
|
23
|
+
data.googleSubTitle !== googleSubTitle ||
|
|
24
|
+
JSON.stringify(data.googleAuthors) !== JSON.stringify(googleAuthors) ||
|
|
25
|
+
data.googleDescription !== googleDescription ||
|
|
26
|
+
data.googleImgSrc !== googleImgSrc ||
|
|
27
|
+
data.googleHref !== googleHref ||
|
|
28
|
+
data.markdown !== markdown) {
|
|
29
|
+
return {
|
|
30
|
+
status: "NEED_UPDATE",
|
|
31
|
+
data: bookEntity.update(newData.data, {
|
|
32
|
+
title,
|
|
33
|
+
googleTitle,
|
|
34
|
+
googleSubtitle: googleSubTitle,
|
|
35
|
+
googleAuthors,
|
|
36
|
+
googleDescription,
|
|
37
|
+
googleImgSrc,
|
|
38
|
+
googleHref,
|
|
39
|
+
markdown,
|
|
40
|
+
}),
|
|
41
|
+
};
|
|
42
|
+
}
|
|
43
|
+
return { status: "NO_UPDATE" };
|
|
44
|
+
}
|
|
45
|
+
export class BooksDomainService {
|
|
46
|
+
booksQueryRepository;
|
|
47
|
+
constructor(booksQueryRepository) {
|
|
48
|
+
this.booksQueryRepository = booksQueryRepository;
|
|
49
|
+
}
|
|
50
|
+
async ensureNoDuplicate(ISBN, userId) {
|
|
51
|
+
return ensureNoDuplicateBook(this.booksQueryRepository, ISBN, userId);
|
|
52
|
+
}
|
|
53
|
+
async updateBook(ISBN, userId, title, googleTitle, googleSubTitle, googleAuthors, googleDescription, googleImgSrc, googleHref, markdown) {
|
|
54
|
+
return updateBook(this.booksQueryRepository, ISBN, userId, title, googleTitle, googleSubTitle, googleAuthors, googleDescription, googleImgSrc, googleHref, markdown);
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
//# sourceMappingURL=books-domain-service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"books-domain-service.js","sourceRoot":"","sources":["../../../books/services/books-domain-service.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAC7E,OAAO,EAGN,UAAU,EAQV,cAAc,GACd,MAAM,0BAA0B,CAAC;AAGlC,KAAK,UAAU,qBAAqB,CACnC,oBAA2C,EAC3C,IAAU,EACV,MAAc;IAEd,MAAM,MAAM,GAAG,MAAM,oBAAoB,CAAC,UAAU,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IACnE,IAAI,MAAM,KAAK,IAAI;QAAE,MAAM,IAAI,cAAc,EAAE,CAAC;AACjD,CAAC;AAOD,KAAK,UAAU,UAAU,CACxB,oBAA2C,EAC3C,IAAU,EACV,MAAc,EACd,KAAgB,EAChB,WAAwB,EACxB,cAA8B,EAC9B,aAA4B,EAC5B,iBAAoC,EACpC,YAA0B,EAC1B,UAAsB,EACtB,QAAsB;IAEtB,MAAM,IAAI,GAAG,MAAM,oBAAoB,CAAC,UAAU,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IACjE,IAAI,IAAI,EAAE,MAAM,KAAK,YAAY;QAAE,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC;IAElE,IAAI,CAAC,IAAI,EAAE,CAAC;QACX,OAAO;YACN,MAAM,EAAE,aAAa;YACrB,IAAI,EAAE,UAAU,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;SAChD,CAAC;IACH,CAAC;IACD,MAAM,OAAO,GAAG,cAAc,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;IAC/C,IAAI,CAAC,OAAO,CAAC,OAAO;QAAE,MAAM,IAAI,eAAe,EAAE,CAAC;IAElD,IACC,IAAI,CAAC,KAAK,KAAK,KAAK;QACpB,IAAI,CAAC,WAAW,KAAK,WAAW;QAChC,IAAI,CAAC,cAAc,KAAK,cAAc;QACtC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC;QACpE,IAAI,CAAC,iBAAiB,KAAK,iBAAiB;QAC5C,IAAI,CAAC,YAAY,KAAK,YAAY;QAClC,IAAI,CAAC,UAAU,KAAK,UAAU;QAC9B,IAAI,CAAC,QAAQ,KAAK,QAAQ,EACzB,CAAC;QACF,OAAO;YACN,MAAM,EAAE,aAAa;YACrB,IAAI,EAAE,UAAU,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE;gBACrC,KAAK;gBACL,WAAW;gBACX,cAAc,EAAE,cAAc;gBAC9B,aAAa;gBACb,iBAAiB;gBACjB,YAAY;gBACZ,UAAU;gBACV,QAAQ;aACR,CAAC;SACF,CAAC;IACH,CAAC;IACD,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC;AAChC,CAAC;AAED,MAAM,OAAO,kBAAkB;IACD;IAA7B,YAA6B,oBAA2C;QAA3C,yBAAoB,GAApB,oBAAoB,CAAuB;IAAG,CAAC;IAErE,KAAK,CAAC,iBAAiB,CAAC,IAAU,EAAE,MAAc;QACxD,OAAO,qBAAqB,CAAC,IAAI,CAAC,oBAAoB,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;IACvE,CAAC;IAEM,KAAK,CAAC,UAAU,CACtB,IAAU,EACV,MAAc,EACd,KAAgB,EAChB,WAAwB,EACxB,cAA8B,EAC9B,aAA4B,EAC5B,iBAAoC,EACpC,YAA0B,EAC1B,UAAsB,EACtB,QAAsB;QAEtB,OAAO,UAAU,CAChB,IAAI,CAAC,oBAAoB,EACzB,IAAI,EACJ,MAAM,EACN,KAAK,EACL,WAAW,EACX,cAAc,EACd,aAAa,EACb,iBAAiB,EACjB,YAAY,EACZ,UAAU,EACV,QAAQ,CACR,CAAC;IACH,CAAC;CACD"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cache-strategy.d.ts","sourceRoot":"","sources":["../../../books/types/cache-strategy.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,aAAa,GAAG;IAC3B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;CAChB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cache-strategy.js","sourceRoot":"","sources":["../../../books/types/cache-strategy.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { CacheStrategy } from "./cache-strategy";
|
|
2
|
+
import type { SortOrder } from "./sort-order";
|
|
3
|
+
type BooksOrderByField = "id" | "ISBN" | "title" | "googleTitle" | "googleSubTitle" | "googleAuthors" | "googleDescription" | "googleImgSrc" | "googleHref" | "markdown" | "rating" | "tags" | "status" | "createdAt" | "updatedAt" | "exportedAt";
|
|
4
|
+
type BooksOrderBy = {
|
|
5
|
+
[K in BooksOrderByField]?: SortOrder;
|
|
6
|
+
};
|
|
7
|
+
export type BooksFindManyParams = {
|
|
8
|
+
orderBy?: BooksOrderBy;
|
|
9
|
+
take?: number;
|
|
10
|
+
skip?: number;
|
|
11
|
+
cacheStrategy?: CacheStrategy;
|
|
12
|
+
};
|
|
13
|
+
export {};
|
|
14
|
+
//# sourceMappingURL=query-params.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"query-params.d.ts","sourceRoot":"","sources":["../../../books/types/query-params.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAE9C,KAAK,iBAAiB,GACnB,IAAI,GACJ,MAAM,GACN,OAAO,GACP,aAAa,GACb,gBAAgB,GAChB,eAAe,GACf,mBAAmB,GACnB,cAAc,GACd,YAAY,GACZ,UAAU,GACV,QAAQ,GACR,MAAM,GACN,QAAQ,GACR,WAAW,GACX,WAAW,GACX,YAAY,CAAC;AAEhB,KAAK,YAAY,GAAG;KAClB,CAAC,IAAI,iBAAiB,CAAC,CAAC,EAAE,SAAS;CACpC,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG;IACjC,OAAO,CAAC,EAAE,YAAY,CAAC;IACvB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,aAAa,CAAC,EAAE,aAAa,CAAC;CAC9B,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"query-params.js","sourceRoot":"","sources":["../../../books/types/query-params.ts"],"names":[],"mappings":""}
|