@mbc-cqrs-serverless/directory 1.0.7

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 (90) hide show
  1. package/LICENSE.txt +7 -0
  2. package/README.md +42 -0
  3. package/dist/constant/action.d.ts +9 -0
  4. package/dist/constant/action.js +14 -0
  5. package/dist/constant/action.js.map +1 -0
  6. package/dist/constant/index.d.ts +1 -0
  7. package/dist/constant/index.js +18 -0
  8. package/dist/constant/index.js.map +1 -0
  9. package/dist/directory-file.service.d.ts +16 -0
  10. package/dist/directory-file.service.js +72 -0
  11. package/dist/directory-file.service.js.map +1 -0
  12. package/dist/directory.controller.d.ts +33 -0
  13. package/dist/directory.controller.js +203 -0
  14. package/dist/directory.controller.js.map +1 -0
  15. package/dist/directory.module-definition.d.ts +9 -0
  16. package/dist/directory.module-definition.js +8 -0
  17. package/dist/directory.module-definition.js.map +1 -0
  18. package/dist/directory.module.d.ts +5 -0
  19. package/dist/directory.module.js +55 -0
  20. package/dist/directory.module.js.map +1 -0
  21. package/dist/directory.service.d.ts +63 -0
  22. package/dist/directory.service.js +483 -0
  23. package/dist/directory.service.js.map +1 -0
  24. package/dist/dto/directory-attributes.dto.d.ts +48 -0
  25. package/dist/dto/directory-attributes.dto.js +187 -0
  26. package/dist/dto/directory-attributes.dto.js.map +1 -0
  27. package/dist/dto/directory-command.dto.d.ts +6 -0
  28. package/dist/dto/directory-command.dto.js +29 -0
  29. package/dist/dto/directory-command.dto.js.map +1 -0
  30. package/dist/dto/directory-copy.dto.d.ts +6 -0
  31. package/dist/dto/directory-copy.dto.js +33 -0
  32. package/dist/dto/directory-copy.dto.js.map +1 -0
  33. package/dist/dto/directory-create.dto.d.ts +7 -0
  34. package/dist/dto/directory-create.dto.js +36 -0
  35. package/dist/dto/directory-create.dto.js.map +1 -0
  36. package/dist/dto/directory-detail.dto.d.ts +4 -0
  37. package/dist/dto/directory-detail.dto.js +25 -0
  38. package/dist/dto/directory-detail.dto.js.map +1 -0
  39. package/dist/dto/directory-move.dto.d.ts +5 -0
  40. package/dist/dto/directory-move.dto.js +30 -0
  41. package/dist/dto/directory-move.dto.js.map +1 -0
  42. package/dist/dto/directory-rename.dto.d.ts +5 -0
  43. package/dist/dto/directory-rename.dto.js +29 -0
  44. package/dist/dto/directory-rename.dto.js.map +1 -0
  45. package/dist/dto/directory-search.dto.d.ts +6 -0
  46. package/dist/dto/directory-search.dto.js +32 -0
  47. package/dist/dto/directory-search.dto.js.map +1 -0
  48. package/dist/dto/directory-update.dto.d.ts +12 -0
  49. package/dist/dto/directory-update.dto.js +47 -0
  50. package/dist/dto/directory-update.dto.js.map +1 -0
  51. package/dist/dto/index.d.ts +11 -0
  52. package/dist/dto/index.js +28 -0
  53. package/dist/dto/index.js.map +1 -0
  54. package/dist/dto/upload-file.dto.d.ts +5 -0
  55. package/dist/dto/upload-file.dto.js +29 -0
  56. package/dist/dto/upload-file.dto.js.map +1 -0
  57. package/dist/dto/view-file.dto.d.ts +4 -0
  58. package/dist/dto/view-file.dto.js +27 -0
  59. package/dist/dto/view-file.dto.js.map +1 -0
  60. package/dist/dynamodb.service.d.ts +24 -0
  61. package/dist/dynamodb.service.js +173 -0
  62. package/dist/dynamodb.service.js.map +1 -0
  63. package/dist/entity/directory-command.entity.d.ts +6 -0
  64. package/dist/entity/directory-command.entity.js +12 -0
  65. package/dist/entity/directory-command.entity.js.map +1 -0
  66. package/dist/entity/directory-data-list.entity.d.ts +6 -0
  67. package/dist/entity/directory-data-list.entity.js +12 -0
  68. package/dist/entity/directory-data-list.entity.js.map +1 -0
  69. package/dist/entity/directory-data.entity.d.ts +6 -0
  70. package/dist/entity/directory-data.entity.js +12 -0
  71. package/dist/entity/directory-data.entity.js.map +1 -0
  72. package/dist/entity/dyanmo-data-list.entity.d.ts +4 -0
  73. package/dist/entity/dyanmo-data-list.entity.js +7 -0
  74. package/dist/entity/dyanmo-data-list.entity.js.map +1 -0
  75. package/dist/entity/index.d.ts +4 -0
  76. package/dist/entity/index.js +21 -0
  77. package/dist/entity/index.js.map +1 -0
  78. package/dist/entity/upload.entity.d.ts +5 -0
  79. package/dist/entity/upload.entity.js +7 -0
  80. package/dist/entity/upload.entity.js.map +1 -0
  81. package/dist/entity/view.entity.d.ts +3 -0
  82. package/dist/entity/view.entity.js +7 -0
  83. package/dist/entity/view.entity.js.map +1 -0
  84. package/dist/helpers/index.d.ts +4 -0
  85. package/dist/helpers/index.js +15 -0
  86. package/dist/helpers/index.js.map +1 -0
  87. package/dist/index.d.ts +9 -0
  88. package/dist/index.js +26 -0
  89. package/dist/index.js.map +1 -0
  90. package/package.json +49 -0
@@ -0,0 +1,29 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.GenUploadFileDto = void 0;
13
+ const class_validator_1 = require("class-validator");
14
+ class GenUploadFileDto {
15
+ }
16
+ exports.GenUploadFileDto = GenUploadFileDto;
17
+ __decorate([
18
+ (0, class_validator_1.IsString)(),
19
+ __metadata("design:type", String)
20
+ ], GenUploadFileDto.prototype, "filename", void 0);
21
+ __decorate([
22
+ (0, class_validator_1.IsString)(),
23
+ __metadata("design:type", String)
24
+ ], GenUploadFileDto.prototype, "tenant", void 0);
25
+ __decorate([
26
+ (0, class_validator_1.IsString)(),
27
+ __metadata("design:type", String)
28
+ ], GenUploadFileDto.prototype, "path", void 0);
29
+ //# sourceMappingURL=upload-file.dto.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"upload-file.dto.js","sourceRoot":"","sources":["../../src/dto/upload-file.dto.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,qDAA0C;AAE1C,MAAa,gBAAgB;CAS5B;AATD,4CASC;AAPC;IADC,IAAA,0BAAQ,GAAE;;kDACK;AAGhB;IADC,IAAA,0BAAQ,GAAE;;gDACG;AAGd;IADC,IAAA,0BAAQ,GAAE;;8CACC"}
@@ -0,0 +1,4 @@
1
+ export declare class GenViewFileDto {
2
+ key: string;
3
+ filename?: string;
4
+ }
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.GenViewFileDto = void 0;
13
+ const class_validator_1 = require("class-validator");
14
+ class GenViewFileDto {
15
+ }
16
+ exports.GenViewFileDto = GenViewFileDto;
17
+ __decorate([
18
+ (0, class_validator_1.IsNotEmpty)(),
19
+ (0, class_validator_1.IsString)(),
20
+ __metadata("design:type", String)
21
+ ], GenViewFileDto.prototype, "key", void 0);
22
+ __decorate([
23
+ (0, class_validator_1.IsOptional)(),
24
+ (0, class_validator_1.IsString)(),
25
+ __metadata("design:type", String)
26
+ ], GenViewFileDto.prototype, "filename", void 0);
27
+ //# sourceMappingURL=view-file.dto.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"view-file.dto.js","sourceRoot":"","sources":["../../src/dto/view-file.dto.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,qDAAkE;AAElE,MAAa,cAAc;CAQ1B;AARD,wCAQC;AALC;IAFC,IAAA,4BAAU,GAAE;IACZ,IAAA,0BAAQ,GAAE;;2CACA;AAIX;IAFC,IAAA,4BAAU,GAAE;IACZ,IAAA,0BAAQ,GAAE;;gDACM"}
@@ -0,0 +1,24 @@
1
+ import { AttributeValue, DynamoDBClient } from '@aws-sdk/client-dynamodb';
2
+ import { DetailKey, S3Service } from '@mbc-cqrs-serverless/core';
3
+ import { DynamoDataListEntity } from './entity/dyanmo-data-list.entity';
4
+ declare const CLIENT_INSTANCE: unique symbol;
5
+ export declare class DynamoService {
6
+ private readonly s3Service;
7
+ private readonly logger;
8
+ private readonly [CLIENT_INSTANCE];
9
+ constructor(s3Service: S3Service);
10
+ get client(): DynamoDBClient;
11
+ getItem(tableName: string, key: DetailKey): Promise<Record<string, any>>;
12
+ listItemsByPk(tableName: string, pk: string, sk?: {
13
+ skExpession: string;
14
+ skAttributeValues: Record<string, string>;
15
+ skAttributeNames?: Record<string, string>;
16
+ }, startFromSk?: string, limit?: number, order?: 'asc' | 'desc'): Promise<DynamoDataListEntity>;
17
+ private ddbItemToObj;
18
+ private objToDdbItem;
19
+ toDdbKey(key: DetailKey): Record<string, AttributeValue>;
20
+ deleteItem(key: DetailKey, tableName: string): Promise<import("@aws-sdk/client-dynamodb").DeleteItemCommandOutput>;
21
+ batchPutItem(tableName: string, items: any[]): Promise<import("@aws-sdk/client-dynamodb").BatchWriteItemCommandOutput>;
22
+ batchDelete(tableName: string, record: any[]): Promise<void>;
23
+ }
24
+ export {};
@@ -0,0 +1,173 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ var DynamoService_1;
12
+ Object.defineProperty(exports, "__esModule", { value: true });
13
+ exports.DynamoService = void 0;
14
+ const client_dynamodb_1 = require("@aws-sdk/client-dynamodb");
15
+ const util_dynamodb_1 = require("@aws-sdk/util-dynamodb");
16
+ const core_1 = require("@mbc-cqrs-serverless/core");
17
+ const common_1 = require("@nestjs/common");
18
+ const CLIENT_INSTANCE = Symbol();
19
+ let DynamoService = DynamoService_1 = class DynamoService {
20
+ constructor(s3Service) {
21
+ this.s3Service = s3Service;
22
+ this.logger = new common_1.Logger(DynamoService_1.name);
23
+ this[CLIENT_INSTANCE] = new client_dynamodb_1.DynamoDBClient({
24
+ endpoint: process.env.DYNAMODB_ENDPOINT,
25
+ region: process.env.DYNAMODB_REGION,
26
+ });
27
+ }
28
+ get client() {
29
+ return this[CLIENT_INSTANCE];
30
+ }
31
+ async getItem(tableName, key) {
32
+ const { Item } = await this.client.send(new client_dynamodb_1.GetItemCommand({
33
+ TableName: tableName,
34
+ Key: this.toDdbKey(key),
35
+ }));
36
+ if (Item) {
37
+ const item = this.ddbItemToObj(Item);
38
+ if ((0, core_1.isS3AttributeKey)(item?.attributes)) {
39
+ const { key } = (0, core_1.parseS3AttributeKey)(item?.attributes);
40
+ item.attributes = await this.s3Service.getItem(key);
41
+ }
42
+ return item;
43
+ }
44
+ return undefined;
45
+ }
46
+ async listItemsByPk(tableName, pk, sk, startFromSk, limit, order = 'asc') {
47
+ const res = await this.client.send(new client_dynamodb_1.QueryCommand({
48
+ TableName: tableName,
49
+ Limit: limit,
50
+ ScanIndexForward: order === 'asc',
51
+ ExclusiveStartKey: startFromSk
52
+ ? this.toDdbKey({ pk, sk: startFromSk })
53
+ : undefined,
54
+ KeyConditionExpression: 'pk = :pk' + (sk ? ` and ${sk.skExpession}` : ''),
55
+ ExpressionAttributeNames: sk?.skAttributeNames,
56
+ ExpressionAttributeValues: this.objToDdbItem({
57
+ ...sk?.skAttributeValues,
58
+ ':pk': pk,
59
+ }),
60
+ }));
61
+ const lastSk = res.LastEvaluatedKey
62
+ ? (0, util_dynamodb_1.unmarshall)(res.LastEvaluatedKey).sk
63
+ : undefined;
64
+ const items = await Promise.all(res.Items?.map(async (data) => {
65
+ const item = this.ddbItemToObj(data);
66
+ if ((0, core_1.isS3AttributeKey)(item?.attributes)) {
67
+ const { key } = (0, core_1.parseS3AttributeKey)(item?.attributes);
68
+ item.attributes = await this.s3Service.getItem(key);
69
+ }
70
+ return item;
71
+ }));
72
+ return {
73
+ lastSk,
74
+ items,
75
+ };
76
+ }
77
+ ddbItemToObj(item) {
78
+ if (!item) {
79
+ return item;
80
+ }
81
+ const obj = (0, util_dynamodb_1.unmarshall)(item);
82
+ if (obj.createdAt) {
83
+ obj.createdAt = new Date(obj.createdAt);
84
+ }
85
+ if (obj.updatedAt) {
86
+ obj.updatedAt = new Date(obj.updatedAt);
87
+ }
88
+ return obj;
89
+ }
90
+ objToDdbItem(obj) {
91
+ if (!obj) {
92
+ return obj;
93
+ }
94
+ const data = { ...obj };
95
+ for (const key in data) {
96
+ const value = data[key];
97
+ if (value instanceof Date) {
98
+ data[key] = (0, core_1.toISOStringWithTimezone)(value);
99
+ }
100
+ }
101
+ return (0, util_dynamodb_1.marshall)(data, {
102
+ convertClassInstanceToMap: true,
103
+ removeUndefinedValues: true,
104
+ });
105
+ }
106
+ toDdbKey(key) {
107
+ return (0, util_dynamodb_1.marshall)(key, {
108
+ convertClassInstanceToMap: true,
109
+ removeUndefinedValues: true,
110
+ });
111
+ }
112
+ async deleteItem(key, tableName) {
113
+ return await this.client.send(new client_dynamodb_1.DeleteItemCommand({
114
+ TableName: tableName,
115
+ Key: this.toDdbKey(key),
116
+ ReturnValues: 'NONE',
117
+ }));
118
+ }
119
+ async batchPutItem(tableName, items) {
120
+ const putRequests = items.map((item) => ({
121
+ PutRequest: { Item: this.objToDdbItem(item) },
122
+ }));
123
+ const command = new client_dynamodb_1.BatchWriteItemCommand({
124
+ RequestItems: {
125
+ [`${tableName}`]: putRequests,
126
+ },
127
+ });
128
+ return await this.client.send(command);
129
+ }
130
+ async batchDelete(tableName, record) {
131
+ const deleteRequests = record.map((item) => {
132
+ const key = this.objToDdbItem({
133
+ pk: item.pk,
134
+ sk: item.sk,
135
+ });
136
+ return {
137
+ DeleteRequest: {
138
+ Key: key,
139
+ },
140
+ };
141
+ });
142
+ const requestItems = {
143
+ [tableName]: deleteRequests,
144
+ };
145
+ let unprocessed = requestItems[tableName] ?? [];
146
+ let attempt = 0;
147
+ const maxRetries = 5;
148
+ while (unprocessed.length > 0 && attempt < maxRetries) {
149
+ const params = {
150
+ RequestItems: {
151
+ [tableName]: unprocessed,
152
+ },
153
+ };
154
+ const response = await this.client.send(new client_dynamodb_1.BatchWriteItemCommand(params));
155
+ unprocessed = response.UnprocessedItems?.[tableName] ?? [];
156
+ if (unprocessed.length > 0) {
157
+ attempt++;
158
+ const delay = Math.pow(2, attempt) * 100; // exponential backoff: 100ms, 200ms, ...
159
+ this.logger.log(`Retrying ${unprocessed.length} unprocessed items (attempt ${attempt})`);
160
+ await new Promise((resolve) => setTimeout(resolve, delay));
161
+ }
162
+ }
163
+ if (unprocessed.length > 0) {
164
+ this.logger.log(`Failed to process ${unprocessed.length} items after ${maxRetries} attempts`);
165
+ }
166
+ }
167
+ };
168
+ exports.DynamoService = DynamoService;
169
+ exports.DynamoService = DynamoService = DynamoService_1 = __decorate([
170
+ (0, common_1.Injectable)(),
171
+ __metadata("design:paramtypes", [core_1.S3Service])
172
+ ], DynamoService);
173
+ //# sourceMappingURL=dynamodb.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dynamodb.service.js","sourceRoot":"","sources":["../src/dynamodb.service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ import { CommandEntity } from '@mbc-cqrs-serverless/core';
2
+ import { DirectoryAttributes } from '../dto/directory-attributes.dto';
3
+ export declare class DirectoryCommandEntity extends CommandEntity {
4
+ attributes: DirectoryAttributes;
5
+ constructor(partial: Partial<DirectoryCommandEntity>);
6
+ }
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DirectoryCommandEntity = void 0;
4
+ const core_1 = require("@mbc-cqrs-serverless/core");
5
+ class DirectoryCommandEntity extends core_1.CommandEntity {
6
+ constructor(partial) {
7
+ super();
8
+ Object.assign(this, partial);
9
+ }
10
+ }
11
+ exports.DirectoryCommandEntity = DirectoryCommandEntity;
12
+ //# sourceMappingURL=directory-command.entity.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"directory-command.entity.js","sourceRoot":"","sources":["../../src/entity/directory-command.entity.ts"],"names":[],"mappings":";;;AAAA,oDAAyD;AAIzD,MAAa,sBAAuB,SAAQ,oBAAa;IAGvD,YAAY,OAAwC;QAClD,KAAK,EAAE,CAAA;QACP,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA;IAC9B,CAAC;CACF;AAPD,wDAOC"}
@@ -0,0 +1,6 @@
1
+ import { DataListEntity } from '@mbc-cqrs-serverless/core';
2
+ import { DirectoryDataEntity } from './directory-data.entity';
3
+ export declare class DirectoryDataListEntity extends DataListEntity {
4
+ items: DirectoryDataEntity[];
5
+ constructor(partial: Partial<DirectoryDataListEntity>);
6
+ }
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DirectoryDataListEntity = void 0;
4
+ const core_1 = require("@mbc-cqrs-serverless/core");
5
+ class DirectoryDataListEntity extends core_1.DataListEntity {
6
+ constructor(partial) {
7
+ super(partial);
8
+ Object.assign(this, partial);
9
+ }
10
+ }
11
+ exports.DirectoryDataListEntity = DirectoryDataListEntity;
12
+ //# sourceMappingURL=directory-data-list.entity.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"directory-data-list.entity.js","sourceRoot":"","sources":["../../src/entity/directory-data-list.entity.ts"],"names":[],"mappings":";;;AAAA,oDAA0D;AAI1D,MAAa,uBAAwB,SAAQ,qBAAc;IAGzD,YAAY,OAAyC;QACnD,KAAK,CAAC,OAAO,CAAC,CAAA;QACd,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA;IAC9B,CAAC;CACF;AAPD,0DAOC"}
@@ -0,0 +1,6 @@
1
+ import { DataEntity } from '@mbc-cqrs-serverless/core';
2
+ import { DirectoryAttributes } from '../dto/directory-attributes.dto';
3
+ export declare class DirectoryDataEntity extends DataEntity {
4
+ attributes: DirectoryAttributes;
5
+ constructor(partial: Partial<DirectoryDataEntity>);
6
+ }
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DirectoryDataEntity = void 0;
4
+ const core_1 = require("@mbc-cqrs-serverless/core");
5
+ class DirectoryDataEntity extends core_1.DataEntity {
6
+ constructor(partial) {
7
+ super(partial);
8
+ Object.assign(this, partial);
9
+ }
10
+ }
11
+ exports.DirectoryDataEntity = DirectoryDataEntity;
12
+ //# sourceMappingURL=directory-data.entity.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"directory-data.entity.js","sourceRoot":"","sources":["../../src/entity/directory-data.entity.ts"],"names":[],"mappings":";;;AAAA,oDAAsD;AAItD,MAAa,mBAAoB,SAAQ,iBAAU;IAGjD,YAAY,OAAqC;QAC/C,KAAK,CAAC,OAAO,CAAC,CAAA;QACd,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA;IAC9B,CAAC;CACF;AAPD,kDAOC"}
@@ -0,0 +1,4 @@
1
+ export declare class DynamoDataListEntity {
2
+ items: any[];
3
+ lastSk?: string;
4
+ }
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DynamoDataListEntity = void 0;
4
+ class DynamoDataListEntity {
5
+ }
6
+ exports.DynamoDataListEntity = DynamoDataListEntity;
7
+ //# sourceMappingURL=dyanmo-data-list.entity.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dyanmo-data-list.entity.js","sourceRoot":"","sources":["../../src/entity/dyanmo-data-list.entity.ts"],"names":[],"mappings":";;;AAAA,MAAa,oBAAoB;CAGhC;AAHD,oDAGC"}
@@ -0,0 +1,4 @@
1
+ export * from './directory-data.entity';
2
+ export * from './directory-data-list.entity';
3
+ export * from './upload.entity';
4
+ export * from './view.entity';
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./directory-data.entity"), exports);
18
+ __exportStar(require("./directory-data-list.entity"), exports);
19
+ __exportStar(require("./upload.entity"), exports);
20
+ __exportStar(require("./view.entity"), exports);
21
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/entity/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,0DAAuC;AACvC,+DAA4C;AAC5C,kDAA+B;AAC/B,gDAA6B"}
@@ -0,0 +1,5 @@
1
+ export declare class GenUploadEntity {
2
+ url: string;
3
+ key: string;
4
+ bucket: string;
5
+ }
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.GenUploadEntity = void 0;
4
+ class GenUploadEntity {
5
+ }
6
+ exports.GenUploadEntity = GenUploadEntity;
7
+ //# sourceMappingURL=upload.entity.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"upload.entity.js","sourceRoot":"","sources":["../../src/entity/upload.entity.ts"],"names":[],"mappings":";;;AAAA,MAAa,eAAe;CAI3B;AAJD,0CAIC"}
@@ -0,0 +1,3 @@
1
+ export declare class GenViewEntity {
2
+ url: string;
3
+ }
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.GenViewEntity = void 0;
4
+ class GenViewEntity {
5
+ }
6
+ exports.GenViewEntity = GenViewEntity;
7
+ //# sourceMappingURL=view.entity.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"view.entity.js","sourceRoot":"","sources":["../../src/entity/view.entity.ts"],"names":[],"mappings":";;;AAAA,MAAa,aAAa;CAEzB;AAFD,sCAEC"}
@@ -0,0 +1,4 @@
1
+ export declare function parsePk(pk: string): {
2
+ type: string;
3
+ tenantCode: string;
4
+ };
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.parsePk = parsePk;
4
+ const core_1 = require("@mbc-cqrs-serverless/core");
5
+ function parsePk(pk) {
6
+ if (pk.split(core_1.KEY_SEPARATOR).length !== 2) {
7
+ throw new Error('Invalid PK');
8
+ }
9
+ const [type, tenantCode] = pk.split(core_1.KEY_SEPARATOR);
10
+ return {
11
+ type,
12
+ tenantCode,
13
+ };
14
+ }
15
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/helpers/index.ts"],"names":[],"mappings":";;AAEA,0BASC;AAXD,oDAAyD;AAEzD,SAAgB,OAAO,CAAC,EAAU;IAChC,IAAI,EAAE,CAAC,KAAK,CAAC,oBAAa,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzC,MAAM,IAAI,KAAK,CAAC,YAAY,CAAC,CAAA;IAC/B,CAAC;IACD,MAAM,CAAC,IAAI,EAAE,UAAU,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,oBAAa,CAAC,CAAA;IAClD,OAAO;QACL,IAAI;QACJ,UAAU;KACX,CAAA;AACH,CAAC"}
@@ -0,0 +1,9 @@
1
+ export * from './constant';
2
+ export * from './directory.controller';
3
+ export * from './directory.module';
4
+ export * from './directory.module-definition';
5
+ export * from './directory.service';
6
+ export * from './directory-file.service';
7
+ export * from './dto';
8
+ export * from './dynamodb.service';
9
+ export * from './entity';
package/dist/index.js ADDED
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./constant"), exports);
18
+ __exportStar(require("./directory.controller"), exports);
19
+ __exportStar(require("./directory.module"), exports);
20
+ __exportStar(require("./directory.module-definition"), exports);
21
+ __exportStar(require("./directory.service"), exports);
22
+ __exportStar(require("./directory-file.service"), exports);
23
+ __exportStar(require("./dto"), exports);
24
+ __exportStar(require("./dynamodb.service"), exports);
25
+ __exportStar(require("./entity"), exports);
26
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,6CAA0B;AAC1B,yDAAsC;AACtC,qDAAkC;AAClC,gEAA6C;AAC7C,sDAAmC;AACnC,2DAAwC;AACxC,wCAAqB;AACrB,qDAAkC;AAClC,2CAAwB"}
package/package.json ADDED
@@ -0,0 +1,49 @@
1
+ {
2
+ "name": "@mbc-cqrs-serverless/directory",
3
+ "version": "1.0.7",
4
+ "description": "Directory module",
5
+ "keywords": [
6
+ "mbc",
7
+ "cqrs",
8
+ "serverless",
9
+ "framework",
10
+ "event-driven",
11
+ "backend",
12
+ "aws",
13
+ "lambda",
14
+ "ecs",
15
+ "fargate",
16
+ "step-functions",
17
+ "sqs",
18
+ "typescript"
19
+ ],
20
+ "main": "./dist/index.js",
21
+ "types": "./dist/index.d.ts",
22
+ "files": [
23
+ "dist",
24
+ "!dist/tsconfig.tsbuildinfo"
25
+ ],
26
+ "scripts": {
27
+ "build": "rm -rf dist && tsc",
28
+ "test": "echo \"Error: no test specified\" && exit 1"
29
+ },
30
+ "repository": {
31
+ "type": "git",
32
+ "url": "git+https://github.com/mbc-net/mbc-cqrs-serverless.git"
33
+ },
34
+ "author": "Murakami Business Consulting, Inc.",
35
+ "license": "MIT",
36
+ "bugs": {
37
+ "url": "https://github.com/mbc-net/mbc-cqrs-serverless/issues"
38
+ },
39
+ "homepage": "https://mbc-cqrs-serverless.mbc-net.com/",
40
+ "publishConfig": {
41
+ "access": "public"
42
+ },
43
+ "dependencies": {
44
+ "@mbc-cqrs-serverless/core": "1.0.7",
45
+ "@mbc-cqrs-serverless/master": "1.0.7",
46
+ "ulid": "^2.3.0"
47
+ },
48
+ "gitHead": "de32af045f99009105cf0df9d59dd8daeaca1232"
49
+ }