storemw-core-api 1.0.149 → 1.0.150

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 (138) hide show
  1. package/dist/app.js +3 -1
  2. package/dist/app.js.map +1 -1
  3. package/dist/controllers/access_control/accessControlRoleController.d.ts +11 -0
  4. package/dist/controllers/access_control/accessControlRoleController.js +156 -0
  5. package/dist/controllers/access_control/accessControlRoleController.js.map +1 -0
  6. package/dist/controllers/access_control/accessControlUserController.d.ts +7 -0
  7. package/dist/controllers/access_control/accessControlUserController.js +140 -0
  8. package/dist/controllers/access_control/accessControlUserController.js.map +1 -0
  9. package/dist/controllers/index.d.ts +3 -0
  10. package/dist/controllers/index.js +16 -2
  11. package/dist/controllers/index.js.map +1 -1
  12. package/dist/controllers/repository/repositoryController.d.ts +12 -0
  13. package/dist/controllers/repository/repositoryController.js +249 -0
  14. package/dist/controllers/repository/repositoryController.js.map +1 -0
  15. package/dist/middlewares/route/index.d.ts +2 -0
  16. package/dist/middlewares/route/index.js +15 -2
  17. package/dist/middlewares/route/index.js.map +1 -1
  18. package/dist/middlewares/route/validateAccessControl.d.ts +7 -0
  19. package/dist/middlewares/route/validateAccessControl.js +28 -0
  20. package/dist/middlewares/route/validateAccessControl.js.map +1 -0
  21. package/dist/middlewares/route/validateRepository.d.ts +4 -0
  22. package/dist/middlewares/route/validateRepository.js +14 -24
  23. package/dist/middlewares/route/validateRepository.js.map +1 -1
  24. package/dist/models/access_control/AccessControlRoleModel.d.ts +228 -0
  25. package/dist/models/access_control/AccessControlRoleModel.js +13 -0
  26. package/dist/models/access_control/AccessControlRoleModel.js.map +1 -0
  27. package/dist/models/access_control/AccessControlRolePolicyModel.d.ts +206 -0
  28. package/dist/models/access_control/AccessControlRolePolicyModel.js +13 -0
  29. package/dist/models/access_control/AccessControlRolePolicyModel.js.map +1 -0
  30. package/dist/models/access_control/AccessControlUserRoleModel.d.ts +206 -0
  31. package/dist/models/access_control/AccessControlUserRoleModel.js +13 -0
  32. package/dist/models/access_control/AccessControlUserRoleModel.js.map +1 -0
  33. package/dist/models/index.d.ts +18 -0
  34. package/dist/models/index.js +30 -2
  35. package/dist/models/index.js.map +1 -1
  36. package/dist/models/repository/RepositoryCartonModel.d.ts +312 -0
  37. package/dist/models/repository/RepositoryCartonModel.js +13 -0
  38. package/dist/models/repository/RepositoryCartonModel.js.map +1 -0
  39. package/dist/models/repository/RepositoryContainerModel.d.ts +268 -0
  40. package/dist/models/repository/RepositoryContainerModel.js +13 -0
  41. package/dist/models/repository/RepositoryContainerModel.js.map +1 -0
  42. package/dist/models/repository/RepositoryModel.d.ts +235 -0
  43. package/dist/models/repository/RepositoryModel.js +13 -0
  44. package/dist/models/repository/RepositoryModel.js.map +1 -0
  45. package/dist/models/repository/RepositoryPackageItemModel.d.ts +334 -0
  46. package/dist/models/repository/RepositoryPackageItemModel.js +13 -0
  47. package/dist/models/repository/RepositoryPackageItemModel.js.map +1 -0
  48. package/dist/models/repository/RepositoryPackageModel.d.ts +323 -0
  49. package/dist/models/repository/RepositoryPackageModel.js +13 -0
  50. package/dist/models/repository/RepositoryPackageModel.js.map +1 -0
  51. package/dist/models/repository/RepositoryPalletModel.d.ts +301 -0
  52. package/dist/models/repository/RepositoryPalletModel.js +13 -0
  53. package/dist/models/repository/RepositoryPalletModel.js.map +1 -0
  54. package/dist/routes/access_control/accessControlPoliciesRoutes.d.ts +2 -0
  55. package/dist/routes/access_control/accessControlPoliciesRoutes.js +11 -0
  56. package/dist/routes/access_control/accessControlPoliciesRoutes.js.map +1 -0
  57. package/dist/routes/access_control/accessControlRoleRoutes.d.ts +2 -0
  58. package/dist/routes/access_control/accessControlRoleRoutes.js +15 -0
  59. package/dist/routes/access_control/accessControlRoleRoutes.js.map +1 -0
  60. package/dist/routes/access_control/accessControlRolesRoutes.d.ts +2 -0
  61. package/dist/routes/access_control/accessControlRolesRoutes.js +13 -0
  62. package/dist/routes/access_control/accessControlRolesRoutes.js.map +1 -0
  63. package/dist/routes/access_control/accessControlRoutes.d.ts +0 -1
  64. package/dist/routes/access_control/accessControlRoutes.js +8 -5
  65. package/dist/routes/access_control/accessControlRoutes.js.map +1 -1
  66. package/dist/routes/access_control/accessControlUsersRoutes.d.ts +3 -0
  67. package/dist/routes/access_control/accessControlUsersRoutes.js +13 -0
  68. package/dist/routes/access_control/accessControlUsersRoutes.js.map +1 -0
  69. package/dist/routes/index.d.ts +2 -0
  70. package/dist/routes/index.js +5 -1
  71. package/dist/routes/index.js.map +1 -1
  72. package/dist/routes/repository/repositoriesRoutes.d.ts +2 -0
  73. package/dist/routes/repository/repositoriesRoutes.js +13 -0
  74. package/dist/routes/repository/repositoriesRoutes.js.map +1 -0
  75. package/dist/routes/repository/repositoryRoutes.d.ts +2 -0
  76. package/dist/routes/repository/repositoryRoutes.js +15 -0
  77. package/dist/routes/repository/repositoryRoutes.js.map +1 -0
  78. package/dist/schema/middleware/route/index.d.ts +2 -2
  79. package/dist/schema/middleware/route/index.js +2 -1
  80. package/dist/schema/middleware/route/index.js.map +1 -1
  81. package/dist/schema/middleware/route/schemaAccessControl.d.ts +3 -0
  82. package/dist/schema/middleware/route/schemaAccessControl.js +6 -1
  83. package/dist/schema/middleware/route/schemaAccessControl.js.map +1 -1
  84. package/dist/schema/middleware/route/schemaRepository.d.ts +2 -2
  85. package/dist/schema/payload/access_control/schemaAccessControlRole.d.ts +219 -0
  86. package/dist/schema/payload/access_control/schemaAccessControlRole.js +41 -0
  87. package/dist/schema/payload/access_control/schemaAccessControlRole.js.map +1 -0
  88. package/dist/schema/payload/access_control/schemaAccessControlUser.d.ts +54 -0
  89. package/dist/schema/payload/access_control/schemaAccessControlUser.js +34 -0
  90. package/dist/schema/payload/access_control/schemaAccessControlUser.js.map +1 -0
  91. package/dist/schema/payload/business/schemaBusiness.d.ts +16 -1
  92. package/dist/schema/payload/business/schemaBusiness.js +8 -12
  93. package/dist/schema/payload/business/schemaBusiness.js.map +1 -1
  94. package/dist/schema/payload/index.d.ts +8 -0
  95. package/dist/schema/payload/index.js +18 -2
  96. package/dist/schema/payload/index.js.map +1 -1
  97. package/dist/schema/payload/injection_field/schemaInjectionField.d.ts +20 -134
  98. package/dist/schema/payload/injection_field/schemaInjectionField.js +8 -8
  99. package/dist/schema/payload/injection_field/schemaInjectionField.js.map +1 -1
  100. package/dist/schema/payload/repository/schemaRepository.d.ts +66 -0
  101. package/dist/schema/payload/repository/schemaRepository.js +26 -0
  102. package/dist/schema/payload/repository/schemaRepository.js.map +1 -0
  103. package/dist/schema/payload/repository/schemaRepositoryContainer.d.ts +292 -0
  104. package/dist/schema/payload/repository/schemaRepositoryContainer.js +41 -0
  105. package/dist/schema/payload/repository/schemaRepositoryContainer.js.map +1 -0
  106. package/dist/services/access_control/AccessControlRoleService.d.ts +49 -0
  107. package/dist/services/access_control/AccessControlRoleService.js +249 -0
  108. package/dist/services/access_control/AccessControlRoleService.js.map +1 -0
  109. package/dist/services/access_control/AccessControlUserService.d.ts +27 -0
  110. package/dist/services/access_control/AccessControlUserService.js +260 -0
  111. package/dist/services/access_control/AccessControlUserService.js.map +1 -0
  112. package/dist/services/index.d.ts +6 -0
  113. package/dist/services/index.js +8 -5
  114. package/dist/services/index.js.map +1 -1
  115. package/dist/services/injection_field/InjectionFieldService.d.ts +4 -2
  116. package/dist/services/injection_field/RepositoryInjectionFieldService.d.ts +14 -5
  117. package/dist/services/injection_field/RepositoryInjectionFieldService.js +6 -2
  118. package/dist/services/injection_field/RepositoryInjectionFieldService.js.map +1 -1
  119. package/dist/services/repository/RepositoryContainerService.d.ts +64 -0
  120. package/dist/services/repository/RepositoryContainerService.js +187 -0
  121. package/dist/services/repository/RepositoryContainerService.js.map +1 -0
  122. package/dist/services/repository/RepositoryMainService.d.ts +80 -0
  123. package/dist/services/repository/RepositoryMainService.js +143 -0
  124. package/dist/services/repository/RepositoryMainService.js.map +1 -0
  125. package/dist/services/repository/RepositoryService.d.ts +46 -0
  126. package/dist/services/repository/RepositoryService.js +133 -0
  127. package/dist/services/repository/RepositoryService.js.map +1 -0
  128. package/dist/utils/accessControlUtils.d.ts +17 -0
  129. package/dist/utils/accessControlUtils.js +8 -0
  130. package/dist/utils/accessControlUtils.js.map +1 -0
  131. package/dist/utils/index.d.ts +2 -1
  132. package/dist/utils/index.js +4 -1
  133. package/dist/utils/index.js.map +1 -1
  134. package/dist/utils/zodUtils.d.ts +13 -0
  135. package/dist/utils/zodUtils.js +17 -1
  136. package/dist/utils/zodUtils.js.map +1 -1
  137. package/package.json +1 -1
  138. package/prisma/schema.prisma +188 -0
@@ -0,0 +1,292 @@
1
+ import { z } from "zod";
2
+ export declare const containerSchema: z.ZodObject<{
3
+ containerNumber: z.ZodString;
4
+ containerDescription: z.ZodOptional<z.ZodString>;
5
+ loadDate: z.ZodEffects<z.ZodOptional<z.ZodNullable<z.ZodDate>>, Date | null | undefined, unknown>;
6
+ arrivalDate: z.ZodEffects<z.ZodOptional<z.ZodNullable<z.ZodDate>>, Date | null | undefined, unknown>;
7
+ sealNumber: z.ZodOptional<z.ZodString>;
8
+ inspectionProviderName: z.ZodOptional<z.ZodString>;
9
+ shippingProviderName: z.ZodOptional<z.ZodString>;
10
+ }, "strip", z.ZodTypeAny, {
11
+ containerNumber: string;
12
+ containerDescription?: string | undefined;
13
+ arrivalDate?: Date | null | undefined;
14
+ loadDate?: Date | null | undefined;
15
+ sealNumber?: string | undefined;
16
+ inspectionProviderName?: string | undefined;
17
+ shippingProviderName?: string | undefined;
18
+ }, {
19
+ containerNumber: string;
20
+ containerDescription?: string | undefined;
21
+ arrivalDate?: unknown;
22
+ loadDate?: unknown;
23
+ sealNumber?: string | undefined;
24
+ inspectionProviderName?: string | undefined;
25
+ shippingProviderName?: string | undefined;
26
+ }>;
27
+ /** Create */
28
+ export declare const schemaRepositoryContainerCreatePayload: z.ZodObject<{
29
+ scope: z.ZodObject<{
30
+ target: z.ZodEnum<["container" | "pallet" | "carton" | "package" | "package_item", ...("container" | "pallet" | "carton" | "package" | "package_item")[]]>;
31
+ action: z.ZodOptional<z.ZodString>;
32
+ }, "strip", z.ZodTypeAny, {
33
+ target: "container" | "pallet" | "carton" | "package" | "package_item";
34
+ action?: string | undefined;
35
+ }, {
36
+ target: "container" | "pallet" | "carton" | "package" | "package_item";
37
+ action?: string | undefined;
38
+ }>;
39
+ payload: z.ZodObject<{
40
+ repository: z.ZodObject<{
41
+ repositoryNumber: z.ZodOptional<z.ZodString>;
42
+ repositoryDate: z.ZodOptional<z.ZodString>;
43
+ description: z.ZodString;
44
+ remark: z.ZodString;
45
+ }, "strip", z.ZodTypeAny, {
46
+ description: string;
47
+ remark: string;
48
+ repositoryNumber?: string | undefined;
49
+ repositoryDate?: string | undefined;
50
+ }, {
51
+ description: string;
52
+ remark: string;
53
+ repositoryNumber?: string | undefined;
54
+ repositoryDate?: string | undefined;
55
+ }>;
56
+ container: z.ZodObject<{
57
+ containerNumber: z.ZodString;
58
+ containerDescription: z.ZodOptional<z.ZodString>;
59
+ loadDate: z.ZodEffects<z.ZodOptional<z.ZodNullable<z.ZodDate>>, Date | null | undefined, unknown>;
60
+ arrivalDate: z.ZodEffects<z.ZodOptional<z.ZodNullable<z.ZodDate>>, Date | null | undefined, unknown>;
61
+ sealNumber: z.ZodOptional<z.ZodString>;
62
+ inspectionProviderName: z.ZodOptional<z.ZodString>;
63
+ shippingProviderName: z.ZodOptional<z.ZodString>;
64
+ }, "strip", z.ZodTypeAny, {
65
+ containerNumber: string;
66
+ containerDescription?: string | undefined;
67
+ arrivalDate?: Date | null | undefined;
68
+ loadDate?: Date | null | undefined;
69
+ sealNumber?: string | undefined;
70
+ inspectionProviderName?: string | undefined;
71
+ shippingProviderName?: string | undefined;
72
+ }, {
73
+ containerNumber: string;
74
+ containerDescription?: string | undefined;
75
+ arrivalDate?: unknown;
76
+ loadDate?: unknown;
77
+ sealNumber?: string | undefined;
78
+ inspectionProviderName?: string | undefined;
79
+ shippingProviderName?: string | undefined;
80
+ }>;
81
+ }, "strip", z.ZodTypeAny, {
82
+ container: {
83
+ containerNumber: string;
84
+ containerDescription?: string | undefined;
85
+ arrivalDate?: Date | null | undefined;
86
+ loadDate?: Date | null | undefined;
87
+ sealNumber?: string | undefined;
88
+ inspectionProviderName?: string | undefined;
89
+ shippingProviderName?: string | undefined;
90
+ };
91
+ repository: {
92
+ description: string;
93
+ remark: string;
94
+ repositoryNumber?: string | undefined;
95
+ repositoryDate?: string | undefined;
96
+ };
97
+ }, {
98
+ container: {
99
+ containerNumber: string;
100
+ containerDescription?: string | undefined;
101
+ arrivalDate?: unknown;
102
+ loadDate?: unknown;
103
+ sealNumber?: string | undefined;
104
+ inspectionProviderName?: string | undefined;
105
+ shippingProviderName?: string | undefined;
106
+ };
107
+ repository: {
108
+ description: string;
109
+ remark: string;
110
+ repositoryNumber?: string | undefined;
111
+ repositoryDate?: string | undefined;
112
+ };
113
+ }>;
114
+ }, "strip", z.ZodTypeAny, {
115
+ scope: {
116
+ target: "container" | "pallet" | "carton" | "package" | "package_item";
117
+ action?: string | undefined;
118
+ };
119
+ payload: {
120
+ container: {
121
+ containerNumber: string;
122
+ containerDescription?: string | undefined;
123
+ arrivalDate?: Date | null | undefined;
124
+ loadDate?: Date | null | undefined;
125
+ sealNumber?: string | undefined;
126
+ inspectionProviderName?: string | undefined;
127
+ shippingProviderName?: string | undefined;
128
+ };
129
+ repository: {
130
+ description: string;
131
+ remark: string;
132
+ repositoryNumber?: string | undefined;
133
+ repositoryDate?: string | undefined;
134
+ };
135
+ };
136
+ }, {
137
+ scope: {
138
+ target: "container" | "pallet" | "carton" | "package" | "package_item";
139
+ action?: string | undefined;
140
+ };
141
+ payload: {
142
+ container: {
143
+ containerNumber: string;
144
+ containerDescription?: string | undefined;
145
+ arrivalDate?: unknown;
146
+ loadDate?: unknown;
147
+ sealNumber?: string | undefined;
148
+ inspectionProviderName?: string | undefined;
149
+ shippingProviderName?: string | undefined;
150
+ };
151
+ repository: {
152
+ description: string;
153
+ remark: string;
154
+ repositoryNumber?: string | undefined;
155
+ repositoryDate?: string | undefined;
156
+ };
157
+ };
158
+ }>;
159
+ export type SchemaRepositoryContainerCreatePayload = z.infer<typeof schemaRepositoryContainerCreatePayload>;
160
+ /** Update */
161
+ export declare const schemaRepositoryContainerUpdatePayload: z.ZodObject<{
162
+ scope: z.ZodObject<{
163
+ target: z.ZodEnum<["container" | "pallet" | "carton" | "package" | "package_item", ...("container" | "pallet" | "carton" | "package" | "package_item")[]]>;
164
+ action: z.ZodOptional<z.ZodString>;
165
+ }, "strip", z.ZodTypeAny, {
166
+ target: "container" | "pallet" | "carton" | "package" | "package_item";
167
+ action?: string | undefined;
168
+ }, {
169
+ target: "container" | "pallet" | "carton" | "package" | "package_item";
170
+ action?: string | undefined;
171
+ }>;
172
+ payload: z.ZodObject<{
173
+ repository: z.ZodObject<{
174
+ repositoryNumber: z.ZodOptional<z.ZodString>;
175
+ repositoryDate: z.ZodOptional<z.ZodString>;
176
+ description: z.ZodString;
177
+ remark: z.ZodString;
178
+ }, "strip", z.ZodTypeAny, {
179
+ description: string;
180
+ remark: string;
181
+ repositoryNumber?: string | undefined;
182
+ repositoryDate?: string | undefined;
183
+ }, {
184
+ description: string;
185
+ remark: string;
186
+ repositoryNumber?: string | undefined;
187
+ repositoryDate?: string | undefined;
188
+ }>;
189
+ container: z.ZodObject<{
190
+ containerNumber: z.ZodString;
191
+ containerDescription: z.ZodOptional<z.ZodString>;
192
+ loadDate: z.ZodEffects<z.ZodOptional<z.ZodNullable<z.ZodDate>>, Date | null | undefined, unknown>;
193
+ arrivalDate: z.ZodEffects<z.ZodOptional<z.ZodNullable<z.ZodDate>>, Date | null | undefined, unknown>;
194
+ sealNumber: z.ZodOptional<z.ZodString>;
195
+ inspectionProviderName: z.ZodOptional<z.ZodString>;
196
+ shippingProviderName: z.ZodOptional<z.ZodString>;
197
+ }, "strip", z.ZodTypeAny, {
198
+ containerNumber: string;
199
+ containerDescription?: string | undefined;
200
+ arrivalDate?: Date | null | undefined;
201
+ loadDate?: Date | null | undefined;
202
+ sealNumber?: string | undefined;
203
+ inspectionProviderName?: string | undefined;
204
+ shippingProviderName?: string | undefined;
205
+ }, {
206
+ containerNumber: string;
207
+ containerDescription?: string | undefined;
208
+ arrivalDate?: unknown;
209
+ loadDate?: unknown;
210
+ sealNumber?: string | undefined;
211
+ inspectionProviderName?: string | undefined;
212
+ shippingProviderName?: string | undefined;
213
+ }>;
214
+ }, "strip", z.ZodTypeAny, {
215
+ container: {
216
+ containerNumber: string;
217
+ containerDescription?: string | undefined;
218
+ arrivalDate?: Date | null | undefined;
219
+ loadDate?: Date | null | undefined;
220
+ sealNumber?: string | undefined;
221
+ inspectionProviderName?: string | undefined;
222
+ shippingProviderName?: string | undefined;
223
+ };
224
+ repository: {
225
+ description: string;
226
+ remark: string;
227
+ repositoryNumber?: string | undefined;
228
+ repositoryDate?: string | undefined;
229
+ };
230
+ }, {
231
+ container: {
232
+ containerNumber: string;
233
+ containerDescription?: string | undefined;
234
+ arrivalDate?: unknown;
235
+ loadDate?: unknown;
236
+ sealNumber?: string | undefined;
237
+ inspectionProviderName?: string | undefined;
238
+ shippingProviderName?: string | undefined;
239
+ };
240
+ repository: {
241
+ description: string;
242
+ remark: string;
243
+ repositoryNumber?: string | undefined;
244
+ repositoryDate?: string | undefined;
245
+ };
246
+ }>;
247
+ }, "strip", z.ZodTypeAny, {
248
+ scope: {
249
+ target: "container" | "pallet" | "carton" | "package" | "package_item";
250
+ action?: string | undefined;
251
+ };
252
+ payload: {
253
+ container: {
254
+ containerNumber: string;
255
+ containerDescription?: string | undefined;
256
+ arrivalDate?: Date | null | undefined;
257
+ loadDate?: Date | null | undefined;
258
+ sealNumber?: string | undefined;
259
+ inspectionProviderName?: string | undefined;
260
+ shippingProviderName?: string | undefined;
261
+ };
262
+ repository: {
263
+ description: string;
264
+ remark: string;
265
+ repositoryNumber?: string | undefined;
266
+ repositoryDate?: string | undefined;
267
+ };
268
+ };
269
+ }, {
270
+ scope: {
271
+ target: "container" | "pallet" | "carton" | "package" | "package_item";
272
+ action?: string | undefined;
273
+ };
274
+ payload: {
275
+ container: {
276
+ containerNumber: string;
277
+ containerDescription?: string | undefined;
278
+ arrivalDate?: unknown;
279
+ loadDate?: unknown;
280
+ sealNumber?: string | undefined;
281
+ inspectionProviderName?: string | undefined;
282
+ shippingProviderName?: string | undefined;
283
+ };
284
+ repository: {
285
+ description: string;
286
+ remark: string;
287
+ repositoryNumber?: string | undefined;
288
+ repositoryDate?: string | undefined;
289
+ };
290
+ };
291
+ }>;
292
+ export type SchemaRepositoryContainerUpdatePayload = z.infer<typeof schemaRepositoryContainerUpdatePayload>;
@@ -0,0 +1,41 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.schemaRepositoryContainerUpdatePayload = exports.schemaRepositoryContainerCreatePayload = exports.containerSchema = void 0;
4
+ const zod_1 = require("zod");
5
+ const schemaRepository_1 = require("./schemaRepository");
6
+ exports.containerSchema = zod_1.z.object({
7
+ containerNumber: zod_1.z.string(),
8
+ containerDescription: zod_1.z.string().optional(),
9
+ // loadDate can be Date | null | undefined | ""
10
+ loadDate: zod_1.z.preprocess((val) => {
11
+ if (val === "")
12
+ return null; // convert empty string to null
13
+ return val;
14
+ }, zod_1.z.coerce.date().nullable().optional()),
15
+ // arrivalDate can be Date | null | undefined | ""
16
+ arrivalDate: zod_1.z.preprocess((val) => {
17
+ if (val === "")
18
+ return null; // convert empty string to null
19
+ return val;
20
+ }, zod_1.z.coerce.date().nullable().optional()),
21
+ sealNumber: zod_1.z.string().optional(),
22
+ inspectionProviderName: zod_1.z.string().optional(),
23
+ shippingProviderName: zod_1.z.string().optional(),
24
+ });
25
+ /** Create */
26
+ exports.schemaRepositoryContainerCreatePayload = zod_1.z.object({
27
+ scope: schemaRepository_1.schemaRepositoryScope,
28
+ payload: zod_1.z.object({
29
+ repository: schemaRepository_1.schemaRepository,
30
+ container: exports.containerSchema,
31
+ })
32
+ });
33
+ /** Update */
34
+ exports.schemaRepositoryContainerUpdatePayload = zod_1.z.object({
35
+ scope: schemaRepository_1.schemaRepositoryScope,
36
+ payload: zod_1.z.object({
37
+ repository: schemaRepository_1.schemaRepository,
38
+ container: exports.containerSchema,
39
+ })
40
+ });
41
+ //# sourceMappingURL=schemaRepositoryContainer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schemaRepositoryContainer.js","sourceRoot":"","sources":["../../../../src/schema/payload/repository/schemaRepositoryContainer.ts"],"names":[],"mappings":";;;AAAA,6BAAwB;AAIxB,yDAA4E;AAE/D,QAAA,eAAe,GAAG,OAAC,CAAC,MAAM,CAAC;IACpC,eAAe,EAAE,OAAC,CAAC,MAAM,EAAE;IAC3B,oBAAoB,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC3C,+CAA+C;IAC/C,QAAQ,EAAE,OAAC,CAAC,UAAU,CAClB,CAAC,GAAG,EAAE,EAAE;QACJ,IAAI,GAAG,KAAK,EAAE;YAAE,OAAO,IAAI,CAAC,CAAC,+BAA+B;QAC5D,OAAO,GAAG,CAAC;IACf,CAAC,EACD,OAAC,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE,CACxC;IACD,kDAAkD;IAClD,WAAW,EAAE,OAAC,CAAC,UAAU,CACrB,CAAC,GAAG,EAAE,EAAE;QACJ,IAAI,GAAG,KAAK,EAAE;YAAE,OAAO,IAAI,CAAC,CAAC,+BAA+B;QAC5D,OAAO,GAAG,CAAC;IACf,CAAC,EACD,OAAC,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE,CACxC;IAED,UAAU,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACjC,sBAAsB,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC7C,oBAAoB,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CAC9C,CAAC,CAAC;AAEH,aAAa;AACA,QAAA,sCAAsC,GAAG,OAAC,CAAC,MAAM,CAAC;IAC3D,KAAK,EAAE,wCAAqB;IAC5B,OAAO,EAAE,OAAC,CAAC,MAAM,CAAC;QACd,UAAU,EAAE,mCAAgB;QAC5B,SAAS,EAAE,uBAAe;KAC7B,CAAC;CACL,CAAC,CAAC;AAIH,aAAa;AACA,QAAA,sCAAsC,GAAG,OAAC,CAAC,MAAM,CAAC;IAC3D,KAAK,EAAE,wCAAqB;IAC5B,OAAO,EAAE,OAAC,CAAC,MAAM,CAAC;QACd,UAAU,EAAE,mCAAgB;QAC5B,SAAS,EAAE,uBAAe;KAC7B,CAAC;CACL,CAAC,CAAC","sourcesContent":["import { z } from \"zod\";\n\nimport { _, dayjs } from \"@/utils\";\n\nimport { schemaRepository, schemaRepositoryScope } from \"./schemaRepository\"\n\nexport const containerSchema = z.object({\n containerNumber: z.string(),\n containerDescription: z.string().optional(),\n // loadDate can be Date | null | undefined | \"\"\n loadDate: z.preprocess(\n (val) => {\n if (val === \"\") return null; // convert empty string to null\n return val;\n },\n z.coerce.date().nullable().optional()\n ),\n // arrivalDate can be Date | null | undefined | \"\"\n arrivalDate: z.preprocess(\n (val) => {\n if (val === \"\") return null; // convert empty string to null\n return val;\n },\n z.coerce.date().nullable().optional()\n ),\n\n sealNumber: z.string().optional(),\n inspectionProviderName: z.string().optional(),\n shippingProviderName: z.string().optional(),\n});\n\n/** Create */\nexport const schemaRepositoryContainerCreatePayload = z.object({\n scope: schemaRepositoryScope,\n payload: z.object({\n repository: schemaRepository,\n container: containerSchema,\n })\n});\n\nexport type SchemaRepositoryContainerCreatePayload = z.infer<typeof schemaRepositoryContainerCreatePayload>;\n\n/** Update */\nexport const schemaRepositoryContainerUpdatePayload = z.object({\n scope: schemaRepositoryScope,\n payload: z.object({\n repository: schemaRepository,\n container: containerSchema,\n })\n});\n\nexport type SchemaRepositoryContainerUpdatePayload = z.infer<typeof schemaRepositoryContainerUpdatePayload>;"]}
@@ -0,0 +1,49 @@
1
+ import { UserType } from "../../services";
2
+ import { QueryList, QueryGet } from "../../schema/common";
3
+ import { DefaultServiceProps } from "../../utils";
4
+ export type AccessControlRoleUserType = UserType;
5
+ export type AccessControlRoleServiceProps = DefaultServiceProps & {};
6
+ export type AccessControlRoleGetProps = Omit<QueryGet, "datatypes"> & {
7
+ id: number;
8
+ };
9
+ export type AccessControlRoleListProps = Omit<QueryList, "datatypes"> & {};
10
+ export type AccessControlRoleRemoveProps = {
11
+ roleIds: BigInt[];
12
+ };
13
+ export type AccessControlRole = {
14
+ name: string;
15
+ description: string;
16
+ userType: AccessControlRoleUserType;
17
+ permissionKeys: string[];
18
+ status: boolean;
19
+ };
20
+ export type AccessControlRoleCreateProps = {
21
+ data: AccessControlRole;
22
+ };
23
+ export type AccessControlRoleUpdateProps = {
24
+ roleId: number;
25
+ data: Omit<AccessControlRole, "userType">;
26
+ };
27
+ export declare const AccessControlRoleService: (props: AccessControlRoleServiceProps) => {
28
+ getAccessControlRole: ({ id }: AccessControlRoleGetProps) => Promise<any>;
29
+ createAccessControlRole: ({ data }: AccessControlRoleCreateProps) => Promise<any>;
30
+ updateAccessControlRole: ({ roleId, data }: AccessControlRoleUpdateProps) => Promise<any>;
31
+ removeAccessControlRoles: ({ roleIds }: AccessControlRoleRemoveProps) => Promise<{
32
+ createdatetime: Date | null;
33
+ createuserid: bigint;
34
+ updatedatetime: Date | null;
35
+ updateuserid: bigint;
36
+ isdelete: boolean | null;
37
+ istrash: boolean | null;
38
+ accountid: bigint;
39
+ status: boolean | null;
40
+ name: string;
41
+ user_type: string;
42
+ description: string | null;
43
+ access_control_role_id: bigint;
44
+ }[]>;
45
+ listAccessControlRoles: ({ limit, offset, filters, sortfield, sortorder }: AccessControlRoleListProps) => Promise<{
46
+ data: any[];
47
+ total: number;
48
+ }>;
49
+ };
@@ -0,0 +1,249 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.AccessControlRoleService = void 0;
4
+ const utils_1 = require("../../utils");
5
+ const models_1 = require("../../models");
6
+ const services_1 = require("../../services");
7
+ const utils_2 = require("../../utils");
8
+ const lib_1 = require("../../lib");
9
+ const getCreatePayload = (data) => {
10
+ return {
11
+ [`${models_1.ModelAccessControlRoleFields.name}`]: data.name,
12
+ [`${models_1.ModelAccessControlRoleFields.description}`]: data.description,
13
+ [`${models_1.ModelAccessControlRoleFields.user_type}`]: data.userType,
14
+ [`${models_1.ModelAccessControlRoleFields.status}`]: Boolean(data.status)
15
+ };
16
+ };
17
+ const getUpdatePayload = (data) => {
18
+ return {
19
+ [`${models_1.ModelAccessControlRoleFields.name}`]: data.name,
20
+ [`${models_1.ModelAccessControlRoleFields.description}`]: data.description,
21
+ // [`${ModelAccessControlRoleFields.user_type}`]: data.userType,
22
+ [`${models_1.ModelAccessControlRoleFields.status}`]: Boolean(data.status)
23
+ };
24
+ };
25
+ let mainSqlSelect = {
26
+ [`role.${models_1.ModelAccessControlRoleFields.access_control_role_id}`]: "access_control_role_id",
27
+ [`role.${models_1.ModelAccessControlRoleFields.name}`]: "name",
28
+ [`role.${models_1.ModelAccessControlRoleFields.description}`]: "description",
29
+ [`role.${models_1.ModelAccessControlRoleFields.user_type}`]: "user_type",
30
+ [`role.${models_1.ModelAccessControlRoleFields.status}`]: "status",
31
+ };
32
+ let rolePolicySqlSelect = {
33
+ [`COALESCE(
34
+ JSON_AGG(
35
+ DISTINCT ${models_1.ModelAccessControlRolePolicyFields.permission_key}
36
+ ) FILTER (
37
+ WHERE rolepol.access_control_role_policy_id IS NOT NULL
38
+ AND rolepol.isdelete = false
39
+ AND rolepol.istrash = false
40
+ ),
41
+ '[]'
42
+ )`]: "permission_keys"
43
+ // [`COALESCE(
44
+ // STRING_AGG(DISTINCT rolepol.${ModelAccessControlRolePolicyFields.permission_key}::text, ', '),
45
+ // ''
46
+ // )`]: "permission_keys",
47
+ // [`rolepol.${ModelAccessControlRolePolicyFields.permission_key}`]: "permission_key",
48
+ // [`rolepol.${ModelAccessControlRolePolicyFields.role_policy_id}`]: "role_policy_id",
49
+ };
50
+ let defaultSqlSelect = {
51
+ [`role.${models_1.ModelAccessControlRoleFields.createdatetime}`]: "createdatetime",
52
+ [`creator.${models_1.ModelUserFields.login_username}`]: "createusername",
53
+ [`role.${models_1.ModelAccessControlRoleFields.updatedatetime}`]: "updatedatetime",
54
+ [`updater.${models_1.ModelUserFields.login_username}`]: "updateusername",
55
+ [`role.${models_1.ModelAccessControlRoleFields.isdelete}`]: "isdelete",
56
+ [`role.${models_1.ModelAccessControlRoleFields.istrash}`]: "istrash",
57
+ [`role.${models_1.ModelAccessControlRoleFields.accountid}`]: "accountid",
58
+ };
59
+ const AccessControlRoleService = (props) => {
60
+ const { ...rest } = props;
61
+ const accessControlRoleModel = (0, models_1.AccessControlRoleModel)({ ...rest });
62
+ const accessControlRolePolicyModel = (0, models_1.AccessControlRolePolicyModel)({ ...rest });
63
+ const accessControlService = (0, services_1.AccessControlService)({ ...rest });
64
+ const getUserTypeAllPermissionKeys = (userType) => {
65
+ let payload = {
66
+ userType
67
+ };
68
+ const { options: aclPolicyOptions } = accessControlService.listAccessControlPolicyOptions(payload);
69
+ const permissionKeys = (0, utils_2.getAllPermissionKeysByPolicies)(aclPolicyOptions.scopes);
70
+ return permissionKeys;
71
+ };
72
+ const validatePermissionKeys = (userType, permissionKeys) => {
73
+ const allowedPermissionKeys = getUserTypeAllPermissionKeys(userType);
74
+ // Get invalid values
75
+ const invalidValues = permissionKeys.filter(item => !allowedPermissionKeys.includes(item));
76
+ if (invalidValues.length > 0) {
77
+ (0, utils_1.throwError)(`Invalid permission keys: ${invalidValues.join(", ")}`);
78
+ }
79
+ return permissionKeys;
80
+ };
81
+ const validateUniquePermissionKeys = (arr) => {
82
+ const seen = new Set();
83
+ const duplicates = new Set();
84
+ for (const item of arr) {
85
+ if (seen.has(item)) {
86
+ duplicates.add(item);
87
+ }
88
+ else {
89
+ seen.add(item);
90
+ }
91
+ }
92
+ if (duplicates.size > 0)
93
+ (0, utils_1.throwError)(`Duplicate permission keys: ${Array.from(duplicates).join(", ")}`);
94
+ return true;
95
+ };
96
+ const createAccessControlRole = async ({ data }) => {
97
+ const requestUserType = data.userType;
98
+ const requestPermissionKeys = data.permissionKeys;
99
+ // validate duplicate permission keys
100
+ validateUniquePermissionKeys(requestPermissionKeys);
101
+ // validate the request permission keys with allowed keys
102
+ validatePermissionKeys(requestUserType, requestPermissionKeys);
103
+ const _data = getCreatePayload(data);
104
+ if (!_data) {
105
+ throw new Error(`Invalid create role payload: ${JSON.stringify(_data)}`);
106
+ }
107
+ // create role record
108
+ let response = await accessControlRoleModel.create({ data: _data });
109
+ const roleId = Number(response?.access_control_role_id ?? 0);
110
+ const rolePolicyData = requestPermissionKeys.map(i => ({
111
+ [`${models_1.ModelAccessControlRolePolicyFields.permission_key}`]: i,
112
+ [`${models_1.ModelAccessControlRolePolicyFields.access_control_role_id}`]: roleId,
113
+ }));
114
+ // create role policies records
115
+ await accessControlRolePolicyModel.createMany({
116
+ dataList: rolePolicyData
117
+ });
118
+ return await getAccessControlRole({ id: roleId });
119
+ };
120
+ const updateAccessControlRole = async ({ roleId, data }) => {
121
+ const requestPermissionKeys = data.permissionKeys ?? [];
122
+ // validate duplicate permission keys
123
+ validateUniquePermissionKeys(requestPermissionKeys);
124
+ // get the role info
125
+ const role = await getAccessControlRole({ id: Number(roleId) });
126
+ const roleUserType = role?.user_type ?? "";
127
+ const rolePermissionKeys = role?.permission_keys ?? [];
128
+ // console.log('rolePermissionKeys', rolePermissionKeys)
129
+ if (roleUserType === "")
130
+ (0, utils_1.throwError)(`Invalid role user type, roleId: ${roleId}`);
131
+ // validate the request permission keys with allowed keys
132
+ validatePermissionKeys(roleUserType, requestPermissionKeys);
133
+ // Keys to remove: exist in role but NOT in request
134
+ const needRemoveKeys = rolePermissionKeys.filter((key) => !requestPermissionKeys.includes(key));
135
+ // Keys to create: exist in request but NOT in role
136
+ const needCreateKeys = requestPermissionKeys.filter(key => !rolePermissionKeys.includes(key));
137
+ // console.log('needCreateKeys', needCreateKeys)
138
+ // console.log('needRemoveKeys', needRemoveKeys)
139
+ const _data = getUpdatePayload(data);
140
+ if (!_data) {
141
+ throw new Error(`Invalid update role payload: ${JSON.stringify(_data)}`);
142
+ }
143
+ // update role record
144
+ await accessControlRoleModel.update({ where: { [`${models_1.ModelAccessControlRoleFields.access_control_role_id}`]: roleId }, data: _data });
145
+ const createRolePolicyData = needCreateKeys.map(i => ({
146
+ [`${models_1.ModelAccessControlRolePolicyFields.permission_key}`]: i,
147
+ [`${models_1.ModelAccessControlRolePolicyFields.access_control_role_id}`]: roleId,
148
+ }));
149
+ // remove role policies records
150
+ if (needRemoveKeys.length > 0) {
151
+ await accessControlRolePolicyModel.remove({
152
+ where: {
153
+ [`${models_1.ModelAccessControlRolePolicyFields.permission_key}`]: {
154
+ in: needRemoveKeys
155
+ },
156
+ [`${models_1.ModelAccessControlRolePolicyFields.access_control_role_id}`]: roleId
157
+ }
158
+ });
159
+ }
160
+ // create role policies records
161
+ if (createRolePolicyData.length > 0) {
162
+ await accessControlRolePolicyModel.createMany({
163
+ dataList: createRolePolicyData
164
+ });
165
+ }
166
+ return await getAccessControlRole({ id: Number(roleId) });
167
+ };
168
+ const getAccessControlRole = async ({ id }) => {
169
+ let { data } = await listAccessControlRoles({
170
+ limit: 1,
171
+ offset: 0,
172
+ filters: [{ field: `${models_1.ModelAccessControlRoleFields.access_control_role_id}`, operator: "=", value: id }],
173
+ sortfield: `${models_1.ModelAccessControlRoleFields.access_control_role_id}`,
174
+ sortorder: "ASC",
175
+ });
176
+ return data[0] ?? null;
177
+ };
178
+ const listAccessControlRoles = async ({ limit, offset, filters = [], sortfield, sortorder }) => {
179
+ let data = [];
180
+ let sqlSelect = [
181
+ `COUNT(role.*) OVER() as filtered_count`,
182
+ (0, lib_1.buildSqlSelect)(``, mainSqlSelect),
183
+ (0, lib_1.buildSqlSelect)(``, rolePolicySqlSelect),
184
+ (0, lib_1.buildSqlSelect)(``, defaultSqlSelect)
185
+ ];
186
+ let sqlRelation = [
187
+ (0, lib_1.buildSqlRelation)("left", "role", "access_control_role_policies", "rolepol", ["role.access_control_role_id = rolepol.access_control_role_id", "rolepol.isdelete = false", "rolepol.istrash = false"]),
188
+ (0, lib_1.buildSqlRelation)("left", "role", "users", "creator", ["role.createuserid = creator.user_id", "creator.isdelete = false", "creator.istrash = false"]),
189
+ (0, lib_1.buildSqlRelation)("left", "role", "users", "updater", ["role.updateuserid = updater.user_id", "updater.isdelete = false", "updater.istrash = false"])
190
+ ];
191
+ let sqlGroupBy = [
192
+ ...Object.keys(mainSqlSelect),
193
+ // ...Object.keys(rolePolicySqlSelect),
194
+ ...Object.keys(defaultSqlSelect)
195
+ ];
196
+ let filterColumns = {
197
+ ...mainSqlSelect,
198
+ ...rolePolicySqlSelect,
199
+ ...defaultSqlSelect
200
+ };
201
+ let sqlWhere = [
202
+ `role.isdelete = false`,
203
+ `role.istrash = false`,
204
+ ...(filters.length ? [(0, lib_1.buildSqlWhere)(filters, filterColumns)?.where] : []),
205
+ ];
206
+ let sqlOrderby = (0, lib_1.buildSqlOrderBy)(sortfield, sortorder);
207
+ let sqlLimitOffset = (0, lib_1.buildSqlLimitOffset)(limit, offset);
208
+ const sqlRaw = (0, lib_1.buildSqlRawSelect)({
209
+ tableName: "access_control_roles",
210
+ mainAlias: "role",
211
+ accountId: rest.accountId,
212
+ sqlSelect,
213
+ sqlRelation,
214
+ sqlWhere,
215
+ sqlGroupBy,
216
+ sqlOrderby,
217
+ sqlLimitOffset
218
+ });
219
+ data = await accessControlRoleModel.raw(sqlRaw);
220
+ const response = {
221
+ data: data.map(({ filtered_count, ...rest }) => rest),
222
+ total: data.length ? Number(data[0].filtered_count) : 0
223
+ };
224
+ return response;
225
+ };
226
+ const removeAccessControlRoles = async ({ roleIds }) => {
227
+ if (!roleIds.length)
228
+ (0, utils_1.throwError)('roleIds is required');
229
+ const response = await accessControlRoleModel.remove({ where: { [`${models_1.ModelAccessControlRoleFields.access_control_role_id}`]: { in: roleIds } } });
230
+ // need to remove the role policies
231
+ accessControlRolePolicyModel.remove({
232
+ where: {
233
+ [`${models_1.ModelAccessControlRolePolicyFields.access_control_role_id}`]: {
234
+ in: roleIds
235
+ }
236
+ }
237
+ });
238
+ return response;
239
+ };
240
+ return {
241
+ getAccessControlRole,
242
+ createAccessControlRole,
243
+ updateAccessControlRole,
244
+ removeAccessControlRoles,
245
+ listAccessControlRoles
246
+ };
247
+ };
248
+ exports.AccessControlRoleService = AccessControlRoleService;
249
+ //# sourceMappingURL=AccessControlRoleService.js.map