@nx-ddd/notion 19.0.0-preview.18 → 19.0.0-preview.2

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.
Files changed (44) hide show
  1. package/README.md +11 -0
  2. package/_testing/entity.d.ts +20 -0
  3. package/_testing/entity.js +44 -0
  4. package/_testing/entity.js.map +1 -0
  5. package/_testing/index.d.ts +1 -0
  6. package/_testing/index.js +5 -0
  7. package/_testing/index.js.map +1 -0
  8. package/converter/converter.js +37 -0
  9. package/converter/converter.js.map +1 -0
  10. package/converter/index.js +5 -0
  11. package/converter/index.js.map +1 -0
  12. package/decorators/decorators.js +58 -0
  13. package/decorators/decorators.js.map +1 -0
  14. package/decorators/index.js +5 -0
  15. package/decorators/index.js.map +1 -0
  16. package/index.js +10 -0
  17. package/index.js.map +1 -0
  18. package/notion/index.d.ts +1 -0
  19. package/notion/index.js +5 -0
  20. package/notion/index.js.map +1 -0
  21. package/notion/notion.service.d.ts +8 -0
  22. package/notion/notion.service.impl.d.ts +30 -0
  23. package/notion/notion.service.impl.js +142 -0
  24. package/notion/notion.service.impl.js.map +1 -0
  25. package/notion/notion.service.js +12 -0
  26. package/notion/notion.service.js.map +1 -0
  27. package/package.json +12 -18
  28. package/query/index.js +5 -0
  29. package/query/index.js.map +1 -0
  30. package/query/query.js +122 -0
  31. package/query/query.js.map +1 -0
  32. package/query-builder/index.js +5 -0
  33. package/query-builder/index.js.map +1 -0
  34. package/query-builder/query-builder.js +30 -0
  35. package/query-builder/query-builder.js.map +1 -0
  36. package/repository/index.js +5 -0
  37. package/repository/index.js.map +1 -0
  38. package/repository/repository.d.ts +4 -6
  39. package/repository/repository.js +112 -0
  40. package/repository/repository.js.map +1 -0
  41. package/utils.js +184 -0
  42. package/utils.js.map +1 -0
  43. package/fesm2022/nx-ddd-notion.mjs +0 -498
  44. package/fesm2022/nx-ddd-notion.mjs.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"query.js","sourceRoot":"","sources":["../../../../../packages/@nx-ddd/notion/src/lib/query/query.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
4
+ tslib_1.__exportStar(require("./query-builder"), exports);
5
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../packages/@nx-ddd/notion/src/lib/query-builder/index.ts"],"names":[],"mappings":";;;AAAA,0DAAgC"}
@@ -0,0 +1,30 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.NotionQueryBuilder = void 0;
4
+ class NotionQueryBuilder {
5
+ constructor() { }
6
+ build(filterQuery, sortQuery) {
7
+ return Object.assign(Object.assign({}, (filterQuery ? this.buildFilterQuery(filterQuery) : {})), (sortQuery ? this.buildSortQuery(sortQuery) : {}));
8
+ }
9
+ buildSortQuery(query) {
10
+ if (query.type === 'sort') {
11
+ return { sorts: [query.build()] };
12
+ }
13
+ else {
14
+ return {};
15
+ }
16
+ }
17
+ buildFilterQuery(query) {
18
+ if (query.type === 'filter') {
19
+ return { filter: { and: [query.build()] } };
20
+ }
21
+ else if (['and', 'or'].includes(query.type)) {
22
+ return { filter: query.build() };
23
+ }
24
+ else {
25
+ return {};
26
+ }
27
+ }
28
+ }
29
+ exports.NotionQueryBuilder = NotionQueryBuilder;
30
+ //# sourceMappingURL=query-builder.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"query-builder.js","sourceRoot":"","sources":["../../../../../packages/@nx-ddd/notion/src/lib/query-builder/query-builder.ts"],"names":[],"mappings":";;;AAEA,MAAa,kBAAkB;IAC7B,gBAAgB,CAAC;IAEjB,KAAK,CAAC,WAA6B,EAAE,SAA2B;QAC9D,uCACK,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GACvD,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EACrD;IACH,CAAC;IAES,cAAc,CAAC,KAAsB;QAC7C,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;YAC1B,OAAO,EAAE,KAAK,EAAE,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,EAAC,CAAC;QACnC,CAAC;aAAM,CAAC;YACN,OAAO,EAAE,CAAC;QACZ,CAAC;IACH,CAAC;IAES,gBAAgB,CAAC,KAAsB;QAC/C,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YAC5B,OAAO,EAAE,MAAM,EAAE,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC;QAC9C,CAAC;aAAM,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;YAC9C,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,KAAK,EAAE,EAAE,CAAC;QACnC,CAAC;aAAM,CAAC;YACN,OAAO,EAAE,CAAC;QACZ,CAAC;IACH,CAAC;CACF;AA3BD,gDA2BC"}
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
4
+ tslib_1.__exportStar(require("./repository"), exports);
5
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../packages/@nx-ddd/notion/src/lib/repository/index.ts"],"names":[],"mappings":";;;AAAA,uDAA6B"}
@@ -1,11 +1,10 @@
1
1
  import { Client } from '@notionhq/client';
2
- import { Entity } from '@nx-ddd/common/domain';
3
- import { Repository } from '@nx-ddd/common/domain';
2
+ import { Entity } from '@nx-ddd/common/domain/models';
3
+ import { Repository } from '@nx-ddd/common/domain/repository';
4
4
  import { InjectionToken } from '@angular/core';
5
5
  import { NotionConverter } from '../converter';
6
6
  import { NotionBaseQuery } from '../query';
7
7
  import { NotionQueryBuilder } from '../query-builder';
8
- import * as i0 from "@angular/core";
9
8
  export declare const NOTION_ACCESS_TOKEN: InjectionToken<string>;
10
9
  export declare const NOTION_DATABASE_ID: InjectionToken<unknown>;
11
10
  export declare function provideNotionConfig(config: {
@@ -15,15 +14,16 @@ export declare function provideNotionConfig(config: {
15
14
  useValue: string;
16
15
  };
17
16
  export declare abstract class NotionRepository<E extends Entity> extends Repository<E> {
17
+ protected token: string;
18
18
  protected abstract databaseId: string;
19
19
  protected abstract converter: NotionConverter<E>;
20
- protected token: string;
21
20
  protected client: Client;
22
21
  protected queryBuilder: NotionQueryBuilder;
23
22
  protected get parent(): {
24
23
  type: 'database_id';
25
24
  database_id: string;
26
25
  };
26
+ constructor(token: string);
27
27
  query(filterQuery?: NotionBaseQuery, sortQuery?: NotionBaseQuery, startCursor?: string, pageSize?: number): Promise<{
28
28
  results: E[];
29
29
  nextCursor: string;
@@ -45,6 +45,4 @@ export declare abstract class NotionRepository<E extends Entity> extends Reposit
45
45
  delete({ id }: {
46
46
  id: string;
47
47
  }): Promise<void>;
48
- static ɵfac: i0.ɵɵFactoryDeclaration<NotionRepository<any>, never>;
49
- static ɵprov: i0.ɵɵInjectableDeclaration<NotionRepository<any>>;
50
48
  }
@@ -0,0 +1,112 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.NotionRepository = exports.NOTION_DATABASE_ID = exports.NOTION_ACCESS_TOKEN = void 0;
4
+ exports.provideNotionConfig = provideNotionConfig;
5
+ const tslib_1 = require("tslib");
6
+ const client_1 = require("@notionhq/client");
7
+ const repository_1 = require("@nx-ddd/common/domain/repository");
8
+ const core_1 = require("@angular/core");
9
+ const query_builder_1 = require("../query-builder");
10
+ exports.NOTION_ACCESS_TOKEN = new core_1.InjectionToken('[@nx-ddd/notion] Notion Access Token');
11
+ exports.NOTION_DATABASE_ID = new core_1.InjectionToken('[@nx-ddd/notion] Notion Database Id');
12
+ function provideNotionConfig(config) {
13
+ return { provide: exports.NOTION_ACCESS_TOKEN, useValue: config.accessToken };
14
+ }
15
+ let NotionRepository = class NotionRepository extends repository_1.Repository {
16
+ get parent() {
17
+ return { type: 'database_id', database_id: this.databaseId };
18
+ }
19
+ constructor(token) {
20
+ super();
21
+ this.token = token;
22
+ this.client = new client_1.Client({ auth: this.token });
23
+ this.queryBuilder = new query_builder_1.NotionQueryBuilder();
24
+ }
25
+ query(filterQuery, sortQuery, startCursor, pageSize) {
26
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
27
+ try {
28
+ const obj = this.queryBuilder.build(filterQuery, sortQuery);
29
+ const res = yield this.client.databases.query(Object.assign(Object.assign({ database_id: this.databaseId }, obj), { start_cursor: startCursor, page_size: pageSize }));
30
+ return {
31
+ results: res.results.map(result => this.converter.fromNotion(result)),
32
+ nextCursor: res.next_cursor,
33
+ hasMore: res.has_more,
34
+ };
35
+ }
36
+ catch (error) {
37
+ throw error;
38
+ }
39
+ });
40
+ }
41
+ queryV2(args) {
42
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
43
+ try {
44
+ const res = yield this.client.databases.query(Object.assign({ database_id: this.databaseId }, (args !== null && args !== void 0 ? args : {})));
45
+ return {
46
+ results: res.results.map(result => this.converter.fromNotion(result)),
47
+ nextCursor: res.next_cursor,
48
+ hasMore: res.has_more,
49
+ };
50
+ }
51
+ catch (error) {
52
+ throw error;
53
+ }
54
+ });
55
+ }
56
+ list() {
57
+ return tslib_1.__awaiter(this, arguments, void 0, function* ({ batchSize = 100, } = {}) {
58
+ const orders = [];
59
+ let nextCursor;
60
+ while (true) {
61
+ const res = yield this.query(undefined, undefined, nextCursor, batchSize);
62
+ console.debug(res.nextCursor);
63
+ orders.push(...res.results);
64
+ nextCursor = res.nextCursor;
65
+ if (!res.hasMore)
66
+ break;
67
+ }
68
+ return orders;
69
+ });
70
+ }
71
+ get(_a) {
72
+ return tslib_1.__awaiter(this, arguments, void 0, function* ({ id }) {
73
+ const data = yield this.client.pages.retrieve({ page_id: id });
74
+ return this.converter.fromNotion(data);
75
+ });
76
+ }
77
+ create(entity) {
78
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
79
+ try {
80
+ const res = yield this.client.pages.create({
81
+ parent: this.parent,
82
+ properties: Object.assign({}, this.converter.toNotion(entity)),
83
+ });
84
+ return this.converter.fromNotion(res);
85
+ }
86
+ catch (error) {
87
+ throw error;
88
+ }
89
+ });
90
+ }
91
+ update(entity) {
92
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
93
+ const data = {
94
+ page_id: entity.id,
95
+ properties: Object.assign({}, this.converter.toNotion(entity)),
96
+ };
97
+ yield this.client.pages.update(data);
98
+ });
99
+ }
100
+ delete(_a) {
101
+ return tslib_1.__awaiter(this, arguments, void 0, function* ({ id }) {
102
+ throw new Error('NotionRepository.delete() is not implemented');
103
+ });
104
+ }
105
+ };
106
+ exports.NotionRepository = NotionRepository;
107
+ exports.NotionRepository = NotionRepository = tslib_1.__decorate([
108
+ (0, core_1.Injectable)(),
109
+ tslib_1.__param(0, (0, core_1.Inject)(exports.NOTION_ACCESS_TOKEN)),
110
+ tslib_1.__metadata("design:paramtypes", [String])
111
+ ], NotionRepository);
112
+ //# sourceMappingURL=repository.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"repository.js","sourceRoot":"","sources":["../../../../../packages/@nx-ddd/notion/src/lib/repository/repository.ts"],"names":[],"mappings":"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"}
package/utils.js ADDED
@@ -0,0 +1,184 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.NotionUtils = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const dayjs_1 = tslib_1.__importDefault(require("dayjs"));
6
+ // | NotionCheckbox;
7
+ class NotionUtils {
8
+ static toNotionValue(value, annotation) {
9
+ switch (annotation.type) {
10
+ case 'title': return this.toNotionTitle(value);
11
+ case 'status': return this.toNotionStatus(value);
12
+ case 'relation':
13
+ if (annotation.options.multi) {
14
+ return this.toRelationMulti(value);
15
+ }
16
+ else {
17
+ return this.toRelation(value);
18
+ }
19
+ case 'formula': return this.toNotionFormula(value);
20
+ case 'rich_text': return this.toRichText(value);
21
+ case 'rollup': return this.toRollup(value);
22
+ case 'url': return this.toUrl(value);
23
+ case 'date': return this.toDate(value);
24
+ case 'select': return this.toSelect(value);
25
+ case 'number': return this.toNumber(value);
26
+ case 'phone_number': return this.toPhoneNumber(value);
27
+ case 'email': return this.toEmail(value);
28
+ }
29
+ }
30
+ static toNotionTitle(value) {
31
+ return value ? { type: 'title', title: [{ text: { content: value } }] } : undefined;
32
+ }
33
+ static toNotionStatus(value) {
34
+ return value ? { type: 'status', status: { name: value } } : undefined;
35
+ }
36
+ static toRelationMulti(ids) {
37
+ return Array.isArray(ids) ? { type: 'relation', relation: (ids).map(id => ({ id })) } : undefined;
38
+ }
39
+ static toRelation(value) {
40
+ return value ? this.toRelationMulti([value]) : undefined;
41
+ }
42
+ static toRichText(text) {
43
+ return text ? { type: 'rich_text', rich_text: [{ text: { content: text } }] } : undefined;
44
+ }
45
+ static toNotionFormula(value) {
46
+ return;
47
+ }
48
+ static toRollup(value) {
49
+ return;
50
+ }
51
+ static toUrl(value) {
52
+ return value ? { type: 'url', url: value } : undefined;
53
+ }
54
+ static toDate(value) {
55
+ // TODO(nontangent): endも考慮する。
56
+ return value ? { type: 'date', date: { start: value.format() } } : undefined;
57
+ }
58
+ static toSelect(value) {
59
+ return value ? { type: 'select', select: { name: value } } : undefined;
60
+ }
61
+ static toPhoneNumber(value) {
62
+ return value ? { type: 'phone_number', phone_number: value } : undefined;
63
+ }
64
+ static toNumber(value) {
65
+ return value ? { type: 'number', number: value } : undefined;
66
+ }
67
+ static toEmail(value) {
68
+ return value ? { type: 'email', email: value } : undefined;
69
+ }
70
+ static fromNotionValue(value, annotation) {
71
+ switch (value.type) {
72
+ case 'title': return this.fromTitle(value);
73
+ case 'formula': return this.fromFormula(value);
74
+ case 'relation':
75
+ if (annotation.options.multi) {
76
+ return this.fromRelationMulti(value);
77
+ }
78
+ else {
79
+ return this.fromRelation(value);
80
+ }
81
+ case 'rich_text': return this.fromRichText(value);
82
+ case 'status': return this.fromStatus(value);
83
+ case 'url': return this.fromUrl(value);
84
+ case 'rollup':
85
+ if (annotation.options.multi) {
86
+ return this.fromRollupMulti(value);
87
+ }
88
+ else {
89
+ return this.fromRollup(value);
90
+ }
91
+ case 'created_time': return this.fromCreatedTime(value);
92
+ case 'last_edited_time': return this.fromLastEditedTime(value);
93
+ case 'date': return this.fromDate(value);
94
+ case 'number': return this.fromNumber(value);
95
+ case 'select': return this.fromSelect(value);
96
+ case 'phone_number': return this.fromPhoneNumber(value);
97
+ case 'email': return this.fromEmail(value);
98
+ case 'unique_id': return this.fromUniqueID(value);
99
+ }
100
+ }
101
+ static fromTitle(notionTitle) {
102
+ var _a, _b, _c, _d;
103
+ return (_d = (_c = (_b = (_a = notionTitle === null || notionTitle === void 0 ? void 0 : notionTitle.title) === null || _a === void 0 ? void 0 : _a[0]) === null || _b === void 0 ? void 0 : _b.text) === null || _c === void 0 ? void 0 : _c.content) !== null && _d !== void 0 ? _d : '';
104
+ }
105
+ static fromUrl(notionUrl) {
106
+ return notionUrl.url;
107
+ }
108
+ static fromRichText(notionRichText) {
109
+ return notionRichText.rich_text.map(({ plain_text }) => plain_text).join('') || null;
110
+ }
111
+ static fromRelation(notionRelation) {
112
+ var _a, _b;
113
+ return (_b = (_a = this.fromRelationMulti(notionRelation)) === null || _a === void 0 ? void 0 : _a[0]) !== null && _b !== void 0 ? _b : null;
114
+ }
115
+ static fromRelationMulti(notionRelation) {
116
+ return notionRelation.relation.map(r => r.id);
117
+ }
118
+ static fromStatus(notionStatus) {
119
+ var _a, _b;
120
+ return (_b = (_a = notionStatus.status) === null || _a === void 0 ? void 0 : _a.name) !== null && _b !== void 0 ? _b : null;
121
+ }
122
+ static fromFormula(notionFormula) {
123
+ var _a;
124
+ switch ((_a = notionFormula.formula) === null || _a === void 0 ? void 0 : _a.type) {
125
+ case 'string': return notionFormula.formula.string;
126
+ case 'number': return notionFormula.formula.number;
127
+ case 'date': return this.fromDate(notionFormula.formula);
128
+ }
129
+ }
130
+ static fromRollup(notionRollup) {
131
+ var _a, _b;
132
+ if (notionRollup.rollup.type === 'number') {
133
+ return this.fromNumber(notionRollup.rollup);
134
+ }
135
+ return (_b = (_a = this.fromRollupMulti(notionRollup)) === null || _a === void 0 ? void 0 : _a[0]) !== null && _b !== void 0 ? _b : null;
136
+ }
137
+ static fromRollupMulti(notionRollup) {
138
+ var _a;
139
+ if (notionRollup.rollup.type === 'number') {
140
+ return [];
141
+ }
142
+ return ((_a = notionRollup.rollup.array) !== null && _a !== void 0 ? _a : []).map(notionValue => {
143
+ var _a, _b;
144
+ if (notionValue.type === 'rich_text') {
145
+ return ((_a = notionValue.rich_text) !== null && _a !== void 0 ? _a : []).map(text => text.plain_text).join();
146
+ }
147
+ else if (notionValue.type === 'number') {
148
+ return (_b = notionValue.number) !== null && _b !== void 0 ? _b : null;
149
+ }
150
+ return [];
151
+ });
152
+ }
153
+ static fromCreatedTime(notionCreatedTime) {
154
+ return (0, dayjs_1.default)(notionCreatedTime.created_time);
155
+ }
156
+ static fromLastEditedTime(notionLastEditedTime) {
157
+ return (0, dayjs_1.default)(notionLastEditedTime.last_edited_time);
158
+ }
159
+ static fromDate(notionDate) {
160
+ var _a, _b;
161
+ return ((_a = notionDate.date) === null || _a === void 0 ? void 0 : _a.start) ? (0, dayjs_1.default)((_b = notionDate.date) === null || _b === void 0 ? void 0 : _b.start) : null;
162
+ }
163
+ static fromNumber(notionNumber) {
164
+ var _a;
165
+ return (_a = notionNumber.number) !== null && _a !== void 0 ? _a : null;
166
+ }
167
+ static fromSelect(notionSelect) {
168
+ var _a, _b;
169
+ return (_b = (_a = notionSelect.select) === null || _a === void 0 ? void 0 : _a.name) !== null && _b !== void 0 ? _b : null;
170
+ }
171
+ static fromPhoneNumber(notionPhoneNumber) {
172
+ var _a;
173
+ return (_a = notionPhoneNumber.phone_number) !== null && _a !== void 0 ? _a : null;
174
+ }
175
+ static fromEmail(notionEmail) {
176
+ var _a;
177
+ return (_a = notionEmail.email) !== null && _a !== void 0 ? _a : null;
178
+ }
179
+ static fromUniqueID(value) {
180
+ return value.unique_id.number;
181
+ }
182
+ }
183
+ exports.NotionUtils = NotionUtils;
184
+ //# sourceMappingURL=utils.js.map
package/utils.js.map ADDED
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../packages/@nx-ddd/notion/src/lib/utils.ts"],"names":[],"mappings":"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"}