storemw-core-api 1.0.93 → 1.0.95

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 (142) hide show
  1. package/dist/configs/config.d.ts +1 -30
  2. package/dist/configs/config.js +43 -47
  3. package/dist/configs/config.js.map +1 -1
  4. package/dist/configs/index.d.ts +1 -1
  5. package/dist/configs/index.js +1 -3
  6. package/dist/configs/index.js.map +1 -1
  7. package/dist/controllers/auth/authController.js +5 -2
  8. package/dist/controllers/auth/authController.js.map +1 -1
  9. package/dist/controllers/file/fileController.js +92 -28
  10. package/dist/controllers/file/fileController.js.map +1 -1
  11. package/dist/controllers/utils/changePasswordUtilController.js +5 -2
  12. package/dist/controllers/utils/changePasswordUtilController.js.map +1 -1
  13. package/dist/features/core_config/coreConfigRegister.d.ts +5 -0
  14. package/dist/features/core_config/coreConfigRegister.js +11 -0
  15. package/dist/features/core_config/coreConfigRegister.js.map +1 -0
  16. package/dist/features/core_config/coreConfigRegistry.d.ts +2 -0
  17. package/dist/features/core_config/coreConfigRegistry.js +14 -0
  18. package/dist/features/core_config/coreConfigRegistry.js.map +1 -0
  19. package/dist/features/core_config/coreConfigType.d.ts +7 -0
  20. package/dist/features/core_config/coreConfigType.js +3 -0
  21. package/dist/features/core_config/coreConfigType.js.map +1 -0
  22. package/dist/features/file_storage/fileStorageRegister.d.ts +5 -0
  23. package/dist/features/file_storage/fileStorageRegister.js +11 -0
  24. package/dist/features/file_storage/fileStorageRegister.js.map +1 -0
  25. package/dist/features/file_storage/fileStorageRegistry.d.ts +2 -0
  26. package/dist/features/file_storage/fileStorageRegistry.js +55 -0
  27. package/dist/features/file_storage/fileStorageRegistry.js.map +1 -0
  28. package/dist/features/file_storage/fileStorageType.d.ts +72 -0
  29. package/dist/features/file_storage/fileStorageType.js +3 -0
  30. package/dist/features/file_storage/fileStorageType.js.map +1 -0
  31. package/dist/features/index.d.ts +6 -0
  32. package/dist/features/index.js +9 -1
  33. package/dist/features/index.js.map +1 -1
  34. package/dist/index.js +9 -3
  35. package/dist/index.js.map +1 -1
  36. package/dist/lib/prisma/prisma.d.ts +1 -1
  37. package/dist/lib/query_builder/queryDocument.d.ts +1 -1
  38. package/dist/middlewares/request/validateAuthorization.js +5 -2
  39. package/dist/middlewares/request/validateAuthorization.js.map +1 -1
  40. package/dist/middlewares/request/validateHeader.js +6 -2
  41. package/dist/middlewares/request/validateHeader.js.map +1 -1
  42. package/dist/middlewares/route/validateFile.d.ts +1 -1
  43. package/dist/middlewares/route/validateFile.js +7 -4
  44. package/dist/middlewares/route/validateFile.js.map +1 -1
  45. package/dist/models/account/AccountModel.d.ts +13 -13
  46. package/dist/models/auth/AccessKeyModel.d.ts +13 -13
  47. package/dist/models/branch/UserBranchModel.d.ts +112 -112
  48. package/dist/models/business/BusinessModel.d.ts +57 -57
  49. package/dist/models/document/DocumentAmountModel.d.ts +13 -13
  50. package/dist/models/document/DocumentDocumentModel.d.ts +13 -13
  51. package/dist/models/document/DocumentItemModel.d.ts +35 -35
  52. package/dist/models/document/DocumentLocationModel.d.ts +24 -24
  53. package/dist/models/document/DocumentModel.d.ts +13 -13
  54. package/dist/models/document/DocumentPaymentModel.d.ts +13 -13
  55. package/dist/models/document/DocumentProfileModel.d.ts +101 -101
  56. package/dist/models/document/DocumentTotalModel.d.ts +24 -24
  57. package/dist/models/file/FileModel.d.ts +24 -24
  58. package/dist/models/group/GroupModel.d.ts +13 -13
  59. package/dist/models/group/GroupOwnerModel.d.ts +13 -13
  60. package/dist/models/injection_field/DocumentInjectionFieldModel.d.ts +24 -24
  61. package/dist/models/injection_field/ItemInjectionFieldModel.d.ts +46 -46
  62. package/dist/models/injection_field/UserInjectionFieldModel.d.ts +24 -24
  63. package/dist/models/item/BrandModel.d.ts +13 -13
  64. package/dist/models/item/CategoryModel.d.ts +13 -13
  65. package/dist/models/item/ItemModel.d.ts +46 -46
  66. package/dist/models/item/ProductModel.d.ts +35 -35
  67. package/dist/models/item/UomModel.d.ts +13 -13
  68. package/dist/models/location/LocationModel.d.ts +79 -79
  69. package/dist/models/location/LocationRackModel.d.ts +24 -24
  70. package/dist/models/location/LocationSlotModel.d.ts +13 -13
  71. package/dist/models/others/OneTimeCodeModel.d.ts +13 -13
  72. package/dist/models/region/AreaModel.d.ts +24 -24
  73. package/dist/models/region/CountryModel.d.ts +13 -13
  74. package/dist/models/region/StateModel.d.ts +13 -13
  75. package/dist/models/user/CustomerModel.d.ts +13 -13
  76. package/dist/models/user/MemberModel.d.ts +57 -57
  77. package/dist/models/user/RetailerModel.d.ts +13 -13
  78. package/dist/models/user/UserModel.d.ts +13 -13
  79. package/dist/models/user/UserPropModel.d.ts +13 -13
  80. package/dist/models/user/UserStatusModel.d.ts +24 -24
  81. package/dist/schema/common/unuse/response.d.ts +1 -1
  82. package/dist/schema/middleware/route/schemaItem.d.ts +2 -2
  83. package/dist/schema/payload/account/schemaAccount.d.ts +6 -6
  84. package/dist/schema/payload/business/schemaBusiness.d.ts +14 -14
  85. package/dist/schema/payload/document/schemaDocument.d.ts +2 -2
  86. package/dist/schema/payload/document/schemaDocumentCashSales.d.ts +88 -88
  87. package/dist/schema/payload/document/schemaDocumentDeliveryOrder.d.ts +88 -88
  88. package/dist/schema/payload/document/schemaDocumentProformaSales.d.ts +88 -88
  89. package/dist/schema/payload/document/schemaDocumentReplacementDeliveryOrder.d.ts +88 -88
  90. package/dist/schema/payload/document/schemaDocumentSalesOrder.d.ts +88 -88
  91. package/dist/schema/payload/document/schemaDocumentTripOrder.d.ts +12 -12
  92. package/dist/schema/payload/file/schemaFile.d.ts +2 -2
  93. package/dist/schema/payload/injection_field/schemaInjectionField.d.ts +80 -80
  94. package/dist/schema/payload/item/schemaItem.d.ts +4 -4
  95. package/dist/services/access_key/AccessKeyService.d.ts +1 -1
  96. package/dist/services/access_key/AccessKeyService.js +5 -2
  97. package/dist/services/access_key/AccessKeyService.js.map +1 -1
  98. package/dist/services/business/BusinessService.d.ts +15 -15
  99. package/dist/services/document/CashSalesService.d.ts +1 -1
  100. package/dist/services/document/DeliveryOrderService.d.ts +1 -1
  101. package/dist/services/document/DocumentDocumentService.d.ts +1 -1
  102. package/dist/services/document/DocumentItemService.d.ts +3 -3
  103. package/dist/services/document/DocumentMainService.d.ts +4 -4
  104. package/dist/services/document/DocumentProfileService.d.ts +9 -9
  105. package/dist/services/document/DocumentTotalService.d.ts +2 -2
  106. package/dist/services/document/ProformaSalesService.d.ts +1 -1
  107. package/dist/services/document/ReplacementDeliveryService.d.ts +1 -1
  108. package/dist/services/document/SalesOrderService.d.ts +1 -1
  109. package/dist/services/document/TripOrderService.d.ts +1 -1
  110. package/dist/services/file/FileService.d.ts +3 -2
  111. package/dist/services/file/FileService.js +63 -2
  112. package/dist/services/file/FileService.js.map +1 -1
  113. package/dist/services/index.d.ts +1 -1
  114. package/dist/services/index.js.map +1 -1
  115. package/dist/services/injection_field/InjectionFieldService.d.ts +1 -1
  116. package/dist/services/item/ItemBrandService.d.ts +3 -3
  117. package/dist/services/item/ItemCategoryService.d.ts +3 -3
  118. package/dist/services/item/ItemItemService.d.ts +12 -12
  119. package/dist/services/item/ItemProductService.d.ts +9 -9
  120. package/dist/services/item/ItemUomService.d.ts +3 -3
  121. package/dist/services/location/LocationLocationService.d.ts +21 -21
  122. package/dist/services/location/LocationRackService.d.ts +6 -6
  123. package/dist/services/location/LocationSlotService.d.ts +3 -3
  124. package/dist/services/one_time_code/OneTimeCodeService.d.ts +1 -1
  125. package/dist/services/region/AreaService.d.ts +6 -6
  126. package/dist/services/region/CountryService.d.ts +4 -4
  127. package/dist/services/region/StateService.d.ts +3 -3
  128. package/dist/services/user/CustomerService.d.ts +3 -3
  129. package/dist/services/user/MemberService.d.ts +15 -15
  130. package/dist/services/user/RetailerService.d.ts +3 -3
  131. package/dist/services/user/UserPropService.d.ts +1 -1
  132. package/dist/services/utils/AccessKeyUtilService.js +5 -2
  133. package/dist/services/utils/AccessKeyUtilService.js.map +1 -1
  134. package/dist/services/utils/ChangePasswordUtilService.js +5 -2
  135. package/dist/services/utils/ChangePasswordUtilService.js.map +1 -1
  136. package/dist/utils/coreConfigUtils.d.ts +1 -0
  137. package/dist/utils/coreConfigUtils.js +17 -0
  138. package/dist/utils/coreConfigUtils.js.map +1 -0
  139. package/dist/utils/index.d.ts +1 -0
  140. package/dist/utils/index.js +3 -1
  141. package/dist/utils/index.js.map +1 -1
  142. package/package.json +1 -1
@@ -1,30 +1 @@
1
- export declare const config: {
2
- NODE_ENV: string;
3
- PORT: string | number;
4
- AUTH_SECRET_KEY: string;
5
- ACCESS_KEY_ENCRYPTION_SECRET_KEY: string;
6
- /** File Service Storage - General */
7
- FILE_STORAGE_PROVIDER_NAME: string;
8
- /** File Service Storage - Local */
9
- FILE_STORAGE_LOCAL_BASE_PATH: string;
10
- FILE_STORAGE_LOCAL_BASE_URL: string;
11
- FILE_STORAGE_LOCAL_SKIP_FOLDERNAME_MODULE_REF: boolean;
12
- FILE_STORAGE_LOCAL_SKIP_FOLDERNAME_YEAR_MONTH: boolean;
13
- /** File Service Storage - Google Cloud */
14
- FILE_STORAGE_GCLOUD_BUCKET_NAME: string;
15
- FILE_STORAGE_GCLOUD_BASE_PATH: string;
16
- FILE_STORAGE_GCLOUD_CREDENTIAL_PATH: string;
17
- FILE_STORAGE_GCLOUD_BASE_URL: string;
18
- FILE_STORAGE_GCLOUD_SKIP_FOLDERNAME_MODULE_REF: boolean;
19
- FILE_STORAGE_GCLOUD_SKIP_FOLDERNAME_YEAR_MONTH: boolean;
20
- /** File Service Configuration - General */
21
- FILE_UPLOAD_MAX_SIZE: string;
22
- FILE_UPLOAD_ALLOWED_TYPES: string;
23
- /** File Service Configuration - Image compression settings */
24
- FILE_UPLOAD_IMAGE_MAX_WIDTH: string;
25
- FILE_UPLOAD_IMAGE_QUALITY: string;
26
- /** File Service Configuration - Video compression settings */
27
- FILE_UPLOAD_VIDEO_COMPRESSION_CRF: string;
28
- FILE_UPLOAD_VIDEO_COMPRESSION_PRESET: string;
29
- FILE_UPLOAD_VIDEO_COMPRESSION_RESOLUTION: string;
30
- };
1
+ export {};
@@ -1,50 +1,46 @@
1
1
  "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
2
+ // import dotenv from "dotenv";
3
+ // import path from "path";
5
4
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.config = void 0;
7
- const dotenv_1 = __importDefault(require("dotenv"));
8
- const path_1 = __importDefault(require("path"));
9
- // Determine the environment (default to "development")
10
- const env = process.env.NODE_ENV || "development";
11
- // Load the corresponding .env file
12
- // dotenv.config({ path: path.resolve(__dirname, `../${env}.env`) });
13
- // dotenv.config()
14
- // console.log('in core-api/process.cwd()', process.cwd(), '.env')
15
- console.log('Running from env: ', process.cwd(), '.env');
16
- // Always load from the project root where the app started
17
- dotenv_1.default.config({ path: path_1.default.resolve(process.cwd(), `.env`) });
18
- exports.config = {
19
- NODE_ENV: env,
20
- PORT: process.env.PORT || 8080,
21
- AUTH_SECRET_KEY: process.env.AUTH_SECRET_KEY || "",
22
- ACCESS_KEY_ENCRYPTION_SECRET_KEY: process.env.ACCESS_KEY_ENCRYPTION_SECRET_KEY || "",
23
- /** File Service Storage - General */
24
- FILE_STORAGE_PROVIDER_NAME: process.env.FILE_STORAGE_PROVIDER_NAME || "",
25
- /** File Service Storage - Local */
26
- FILE_STORAGE_LOCAL_BASE_PATH: process.env.FILE_STORAGE_LOCAL_BASE_PATH || "",
27
- FILE_STORAGE_LOCAL_BASE_URL: process.env.FILE_STORAGE_LOCAL_BASE_URL || "",
28
- FILE_STORAGE_LOCAL_SKIP_FOLDERNAME_MODULE_REF: process.env.FILE_STORAGE_LOCAL_SKIP_FOLDERNAME_MODULE_REF === "true",
29
- FILE_STORAGE_LOCAL_SKIP_FOLDERNAME_YEAR_MONTH: process.env.FILE_STORAGE_LOCAL_SKIP_FOLDERNAME_YEAR_MONTH === "true",
30
- /** File Service Storage - Google Cloud */
31
- FILE_STORAGE_GCLOUD_BUCKET_NAME: process.env.FILE_STORAGE_GCLOUD_BUCKET_NAME || "",
32
- FILE_STORAGE_GCLOUD_BASE_PATH: process.env.FILE_STORAGE_GCLOUD_BASE_PATH || "",
33
- FILE_STORAGE_GCLOUD_CREDENTIAL_PATH: process.env.FILE_STORAGE_GCLOUD_CREDENTIAL_PATH || "",
34
- FILE_STORAGE_GCLOUD_BASE_URL: process.env.FILE_STORAGE_GCLOUD_BASE_URL || "",
35
- FILE_STORAGE_GCLOUD_SKIP_FOLDERNAME_MODULE_REF: process.env.FILE_STORAGE_GCLOUD_SKIP_FOLDERNAME_MODULE_REF === "true",
36
- FILE_STORAGE_GCLOUD_SKIP_FOLDERNAME_YEAR_MONTH: process.env.FILE_STORAGE_GCLOUD_SKIP_FOLDERNAME_YEAR_MONTH === "true",
37
- /** File Service Configuration - General */
38
- FILE_UPLOAD_MAX_SIZE: process.env.FILE_UPLOAD_MAX_SIZE || "",
39
- FILE_UPLOAD_ALLOWED_TYPES: process.env.FILE_UPLOAD_ALLOWED_TYPES || "",
40
- /** File Service Configuration - Image compression settings */
41
- FILE_UPLOAD_IMAGE_MAX_WIDTH: process.env.FILE_UPLOAD_IMAGE_MAX_WIDTH || "",
42
- FILE_UPLOAD_IMAGE_QUALITY: process.env.FILE_UPLOAD_IMAGE_QUALITY || "",
43
- /** File Service Configuration - Video compression settings */
44
- FILE_UPLOAD_VIDEO_COMPRESSION_CRF: process.env.FILE_UPLOAD_VIDEO_COMPRESSION_CRF || "",
45
- FILE_UPLOAD_VIDEO_COMPRESSION_PRESET: process.env.FILE_UPLOAD_VIDEO_COMPRESSION_PRESET || "",
46
- FILE_UPLOAD_VIDEO_COMPRESSION_RESOLUTION: process.env.FILE_UPLOAD_VIDEO_COMPRESSION_RESOLUTION || "",
47
- // SUPABASE_PROJECT_URL: process.env.SUPABASE_PROJECT_URL || "",
48
- // SUPABASE_API_KEY: process.env.SUPABASE_API_KEY || ""
49
- };
5
+ // // Determine the environment (default to "development")
6
+ // const env = process.env.NODE_ENV || "development";
7
+ // // Load the corresponding .env file
8
+ // // dotenv.config({ path: path.resolve(__dirname, `../${env}.env`) });
9
+ // // dotenv.config()
10
+ // // console.log('in core-api/process.cwd()', process.cwd(), '.env')
11
+ // console.log('Running from env: ', process.cwd(), '.env')
12
+ // // Always load from the project root where the app started
13
+ // dotenv.config({ path: path.resolve(process.cwd(), `.env`) });
14
+ // export const config = {
15
+ // NODE_ENV: env,
16
+ // PORT: process.env.PORT || 8080,
17
+ // AUTH_SECRET_KEY: process.env.AUTH_SECRET_KEY || "",
18
+ // ACCESS_KEY_ENCRYPTION_SECRET_KEY: process.env.ACCESS_KEY_ENCRYPTION_SECRET_KEY || "",
19
+ // /** File Service Storage - General */
20
+ // // FILE_STORAGE_PROVIDER_NAME: process.env.FILE_STORAGE_PROVIDER_NAME || "",
21
+ // // /** File Service Storage - Local */
22
+ // // FILE_STORAGE_LOCAL_BASE_PATH: process.env.FILE_STORAGE_LOCAL_BASE_PATH || "",
23
+ // // FILE_STORAGE_LOCAL_BASE_URL: process.env.FILE_STORAGE_LOCAL_BASE_URL || "",
24
+ // // FILE_STORAGE_LOCAL_SKIP_FOLDERNAME_MODULE_REF: process.env.FILE_STORAGE_LOCAL_SKIP_FOLDERNAME_MODULE_REF === "true",
25
+ // // FILE_STORAGE_LOCAL_SKIP_FOLDERNAME_YEAR_MONTH: process.env.FILE_STORAGE_LOCAL_SKIP_FOLDERNAME_YEAR_MONTH === "true",
26
+ // // /** File Service Storage - Google Cloud */
27
+ // // FILE_STORAGE_GCLOUD_BUCKET_NAME: process.env.FILE_STORAGE_GCLOUD_BUCKET_NAME || "",
28
+ // // FILE_STORAGE_GCLOUD_BASE_PATH: process.env.FILE_STORAGE_GCLOUD_BASE_PATH || "",
29
+ // // FILE_STORAGE_GCLOUD_CREDENTIAL_PATH: process.env.FILE_STORAGE_GCLOUD_CREDENTIAL_PATH || "",
30
+ // // FILE_STORAGE_GCLOUD_BASE_URL: process.env.FILE_STORAGE_GCLOUD_BASE_URL || "",
31
+ // // FILE_STORAGE_GCLOUD_SKIP_FOLDERNAME_MODULE_REF: process.env.FILE_STORAGE_GCLOUD_SKIP_FOLDERNAME_MODULE_REF === "true",
32
+ // // FILE_STORAGE_GCLOUD_SKIP_FOLDERNAME_YEAR_MONTH: process.env.FILE_STORAGE_GCLOUD_SKIP_FOLDERNAME_YEAR_MONTH === "true",
33
+ // // /** File Service Configuration - General */
34
+ // // FILE_UPLOAD_MAX_SIZE: process.env.FILE_UPLOAD_MAX_SIZE || "",
35
+ // // FILE_UPLOAD_ALLOWED_TYPES: process.env.FILE_UPLOAD_ALLOWED_TYPES || "",
36
+ // // /** File Service Configuration - Image compression settings */
37
+ // // FILE_UPLOAD_IMAGE_MAX_WIDTH: process.env.FILE_UPLOAD_IMAGE_MAX_WIDTH || "",
38
+ // // FILE_UPLOAD_IMAGE_QUALITY: process.env.FILE_UPLOAD_IMAGE_QUALITY || "",
39
+ // // /** File Service Configuration - Video compression settings */
40
+ // // FILE_UPLOAD_VIDEO_COMPRESSION_CRF: process.env.FILE_UPLOAD_VIDEO_COMPRESSION_CRF || "",
41
+ // // FILE_UPLOAD_VIDEO_COMPRESSION_PRESET: process.env.FILE_UPLOAD_VIDEO_COMPRESSION_PRESET || "",
42
+ // // FILE_UPLOAD_VIDEO_COMPRESSION_RESOLUTION: process.env.FILE_UPLOAD_VIDEO_COMPRESSION_RESOLUTION || "",
43
+ // // SUPABASE_PROJECT_URL: process.env.SUPABASE_PROJECT_URL || "",
44
+ // // SUPABASE_API_KEY: process.env.SUPABASE_API_KEY || ""
45
+ // };
50
46
  //# sourceMappingURL=config.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/configs/config.ts"],"names":[],"mappings":";;;;;;AAAA,oDAA4B;AAC5B,gDAAwB;AAExB,uDAAuD;AACvD,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,QAAQ,IAAI,aAAa,CAAC;AAElD,mCAAmC;AACnC,qEAAqE;AACrE,kBAAkB;AAElB,kEAAkE;AAClE,OAAO,CAAC,GAAG,CAAC,oBAAoB,EAAE,OAAO,CAAC,GAAG,EAAE,EAAE,MAAM,CAAC,CAAA;AAExD,0DAA0D;AAC1D,gBAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,cAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC;AAEhD,QAAA,MAAM,GAAG;IAClB,QAAQ,EAAE,GAAG;IACb,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,IAAI;IAC9B,eAAe,EAAE,OAAO,CAAC,GAAG,CAAC,eAAe,IAAI,EAAE;IAClD,gCAAgC,EAAE,OAAO,CAAC,GAAG,CAAC,gCAAgC,IAAI,EAAE;IAEpF,qCAAqC;IACrC,0BAA0B,EAAE,OAAO,CAAC,GAAG,CAAC,0BAA0B,IAAI,EAAE;IACxE,mCAAmC;IACnC,4BAA4B,EAAE,OAAO,CAAC,GAAG,CAAC,4BAA4B,IAAI,EAAE;IAC5E,2BAA2B,EAAE,OAAO,CAAC,GAAG,CAAC,2BAA2B,IAAI,EAAE;IAC1E,6CAA6C,EAAE,OAAO,CAAC,GAAG,CAAC,6CAA6C,KAAK,MAAM;IACnH,6CAA6C,EAAE,OAAO,CAAC,GAAG,CAAC,6CAA6C,KAAK,MAAM;IACnH,2CAA2C;IAC3C,+BAA+B,EAAE,OAAO,CAAC,GAAG,CAAC,+BAA+B,IAAI,EAAE;IAClF,6BAA6B,EAAE,OAAO,CAAC,GAAG,CAAC,6BAA6B,IAAI,EAAE;IAC9E,mCAAmC,EAAE,OAAO,CAAC,GAAG,CAAC,mCAAmC,IAAI,EAAE;IAC1F,4BAA4B,EAAE,OAAO,CAAC,GAAG,CAAC,4BAA4B,IAAI,EAAE;IAC5E,8CAA8C,EAAE,OAAO,CAAC,GAAG,CAAC,8CAA8C,KAAK,MAAM;IACrH,8CAA8C,EAAE,OAAO,CAAC,GAAG,CAAC,8CAA8C,KAAK,MAAM;IACrH,2CAA2C;IAC3C,oBAAoB,EAAE,OAAO,CAAC,GAAG,CAAC,oBAAoB,IAAI,EAAE;IAC5D,yBAAyB,EAAE,OAAO,CAAC,GAAG,CAAC,yBAAyB,IAAI,EAAE;IACtE,8DAA8D;IAC9D,2BAA2B,EAAE,OAAO,CAAC,GAAG,CAAC,2BAA2B,IAAI,EAAE;IAC1E,yBAAyB,EAAE,OAAO,CAAC,GAAG,CAAC,yBAAyB,IAAI,EAAE;IACtE,8DAA8D;IAC9D,iCAAiC,EAAE,OAAO,CAAC,GAAG,CAAC,iCAAiC,IAAI,EAAE;IACtF,oCAAoC,EAAE,OAAO,CAAC,GAAG,CAAC,oCAAoC,IAAI,EAAE;IAC5F,wCAAwC,EAAE,OAAO,CAAC,GAAG,CAAC,wCAAwC,IAAI,EAAE;IAEpG,gEAAgE;IAChE,uDAAuD;CAE1D,CAAC","sourcesContent":["import dotenv from \"dotenv\";\nimport path from \"path\";\n\n// Determine the environment (default to \"development\")\nconst env = process.env.NODE_ENV || \"development\";\n\n// Load the corresponding .env file\n// dotenv.config({ path: path.resolve(__dirname, `../${env}.env`) });\n// dotenv.config()\n\n// console.log('in core-api/process.cwd()', process.cwd(), '.env')\nconsole.log('Running from env: ', process.cwd(), '.env')\n\n// Always load from the project root where the app started\ndotenv.config({ path: path.resolve(process.cwd(), `.env`) });\n\nexport const config = {\n NODE_ENV: env,\n PORT: process.env.PORT || 8080,\n AUTH_SECRET_KEY: process.env.AUTH_SECRET_KEY || \"\",\n ACCESS_KEY_ENCRYPTION_SECRET_KEY: process.env.ACCESS_KEY_ENCRYPTION_SECRET_KEY || \"\",\n\n /** File Service Storage - General */\n FILE_STORAGE_PROVIDER_NAME: process.env.FILE_STORAGE_PROVIDER_NAME || \"\",\n /** File Service Storage - Local */\n FILE_STORAGE_LOCAL_BASE_PATH: process.env.FILE_STORAGE_LOCAL_BASE_PATH || \"\",\n FILE_STORAGE_LOCAL_BASE_URL: process.env.FILE_STORAGE_LOCAL_BASE_URL || \"\",\n FILE_STORAGE_LOCAL_SKIP_FOLDERNAME_MODULE_REF: process.env.FILE_STORAGE_LOCAL_SKIP_FOLDERNAME_MODULE_REF === \"true\",\n FILE_STORAGE_LOCAL_SKIP_FOLDERNAME_YEAR_MONTH: process.env.FILE_STORAGE_LOCAL_SKIP_FOLDERNAME_YEAR_MONTH === \"true\",\n /** File Service Storage - Google Cloud */\n FILE_STORAGE_GCLOUD_BUCKET_NAME: process.env.FILE_STORAGE_GCLOUD_BUCKET_NAME || \"\",\n FILE_STORAGE_GCLOUD_BASE_PATH: process.env.FILE_STORAGE_GCLOUD_BASE_PATH || \"\",\n FILE_STORAGE_GCLOUD_CREDENTIAL_PATH: process.env.FILE_STORAGE_GCLOUD_CREDENTIAL_PATH || \"\",\n FILE_STORAGE_GCLOUD_BASE_URL: process.env.FILE_STORAGE_GCLOUD_BASE_URL || \"\",\n FILE_STORAGE_GCLOUD_SKIP_FOLDERNAME_MODULE_REF: process.env.FILE_STORAGE_GCLOUD_SKIP_FOLDERNAME_MODULE_REF === \"true\",\n FILE_STORAGE_GCLOUD_SKIP_FOLDERNAME_YEAR_MONTH: process.env.FILE_STORAGE_GCLOUD_SKIP_FOLDERNAME_YEAR_MONTH === \"true\",\n /** File Service Configuration - General */\n FILE_UPLOAD_MAX_SIZE: process.env.FILE_UPLOAD_MAX_SIZE || \"\",\n FILE_UPLOAD_ALLOWED_TYPES: process.env.FILE_UPLOAD_ALLOWED_TYPES || \"\",\n /** File Service Configuration - Image compression settings */\n FILE_UPLOAD_IMAGE_MAX_WIDTH: process.env.FILE_UPLOAD_IMAGE_MAX_WIDTH || \"\",\n FILE_UPLOAD_IMAGE_QUALITY: process.env.FILE_UPLOAD_IMAGE_QUALITY || \"\",\n /** File Service Configuration - Video compression settings */\n FILE_UPLOAD_VIDEO_COMPRESSION_CRF: process.env.FILE_UPLOAD_VIDEO_COMPRESSION_CRF || \"\",\n FILE_UPLOAD_VIDEO_COMPRESSION_PRESET: process.env.FILE_UPLOAD_VIDEO_COMPRESSION_PRESET || \"\",\n FILE_UPLOAD_VIDEO_COMPRESSION_RESOLUTION: process.env.FILE_UPLOAD_VIDEO_COMPRESSION_RESOLUTION || \"\",\n\n // SUPABASE_PROJECT_URL: process.env.SUPABASE_PROJECT_URL || \"\",\n // SUPABASE_API_KEY: process.env.SUPABASE_API_KEY || \"\"\n\n};"]}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/configs/config.ts"],"names":[],"mappings":";AAAA,+BAA+B;AAC/B,2BAA2B;;AAE3B,0DAA0D;AAC1D,qDAAqD;AAErD,sCAAsC;AACtC,wEAAwE;AACxE,qBAAqB;AAErB,qEAAqE;AACrE,2DAA2D;AAE3D,6DAA6D;AAC7D,gEAAgE;AAEhE,0BAA0B;AAC1B,qBAAqB;AACrB,sCAAsC;AACtC,0DAA0D;AAC1D,4FAA4F;AAE5F,4CAA4C;AAC5C,mFAAmF;AACnF,6CAA6C;AAC7C,uFAAuF;AACvF,qFAAqF;AACrF,8HAA8H;AAC9H,8HAA8H;AAC9H,qDAAqD;AACrD,6FAA6F;AAC7F,yFAAyF;AACzF,qGAAqG;AACrG,uFAAuF;AACvF,gIAAgI;AAChI,gIAAgI;AAChI,qDAAqD;AACrD,uEAAuE;AACvE,iFAAiF;AACjF,wEAAwE;AACxE,qFAAqF;AACrF,iFAAiF;AACjF,wEAAwE;AACxE,iGAAiG;AACjG,uGAAuG;AACvG,+GAA+G;AAE/G,uEAAuE;AACvE,8DAA8D;AAE9D,KAAK","sourcesContent":["// import dotenv from \"dotenv\";\n// import path from \"path\";\n\n// // Determine the environment (default to \"development\")\n// const env = process.env.NODE_ENV || \"development\";\n\n// // Load the corresponding .env file\n// // dotenv.config({ path: path.resolve(__dirname, `../${env}.env`) });\n// // dotenv.config()\n\n// // console.log('in core-api/process.cwd()', process.cwd(), '.env')\n// console.log('Running from env: ', process.cwd(), '.env')\n\n// // Always load from the project root where the app started\n// dotenv.config({ path: path.resolve(process.cwd(), `.env`) });\n\n// export const config = {\n// NODE_ENV: env,\n// PORT: process.env.PORT || 8080,\n// AUTH_SECRET_KEY: process.env.AUTH_SECRET_KEY || \"\",\n// ACCESS_KEY_ENCRYPTION_SECRET_KEY: process.env.ACCESS_KEY_ENCRYPTION_SECRET_KEY || \"\",\n\n// /** File Service Storage - General */\n// // FILE_STORAGE_PROVIDER_NAME: process.env.FILE_STORAGE_PROVIDER_NAME || \"\",\n// // /** File Service Storage - Local */\n// // FILE_STORAGE_LOCAL_BASE_PATH: process.env.FILE_STORAGE_LOCAL_BASE_PATH || \"\",\n// // FILE_STORAGE_LOCAL_BASE_URL: process.env.FILE_STORAGE_LOCAL_BASE_URL || \"\",\n// // FILE_STORAGE_LOCAL_SKIP_FOLDERNAME_MODULE_REF: process.env.FILE_STORAGE_LOCAL_SKIP_FOLDERNAME_MODULE_REF === \"true\",\n// // FILE_STORAGE_LOCAL_SKIP_FOLDERNAME_YEAR_MONTH: process.env.FILE_STORAGE_LOCAL_SKIP_FOLDERNAME_YEAR_MONTH === \"true\",\n// // /** File Service Storage - Google Cloud */\n// // FILE_STORAGE_GCLOUD_BUCKET_NAME: process.env.FILE_STORAGE_GCLOUD_BUCKET_NAME || \"\",\n// // FILE_STORAGE_GCLOUD_BASE_PATH: process.env.FILE_STORAGE_GCLOUD_BASE_PATH || \"\",\n// // FILE_STORAGE_GCLOUD_CREDENTIAL_PATH: process.env.FILE_STORAGE_GCLOUD_CREDENTIAL_PATH || \"\",\n// // FILE_STORAGE_GCLOUD_BASE_URL: process.env.FILE_STORAGE_GCLOUD_BASE_URL || \"\",\n// // FILE_STORAGE_GCLOUD_SKIP_FOLDERNAME_MODULE_REF: process.env.FILE_STORAGE_GCLOUD_SKIP_FOLDERNAME_MODULE_REF === \"true\",\n// // FILE_STORAGE_GCLOUD_SKIP_FOLDERNAME_YEAR_MONTH: process.env.FILE_STORAGE_GCLOUD_SKIP_FOLDERNAME_YEAR_MONTH === \"true\",\n// // /** File Service Configuration - General */\n// // FILE_UPLOAD_MAX_SIZE: process.env.FILE_UPLOAD_MAX_SIZE || \"\",\n// // FILE_UPLOAD_ALLOWED_TYPES: process.env.FILE_UPLOAD_ALLOWED_TYPES || \"\",\n// // /** File Service Configuration - Image compression settings */\n// // FILE_UPLOAD_IMAGE_MAX_WIDTH: process.env.FILE_UPLOAD_IMAGE_MAX_WIDTH || \"\",\n// // FILE_UPLOAD_IMAGE_QUALITY: process.env.FILE_UPLOAD_IMAGE_QUALITY || \"\",\n// // /** File Service Configuration - Video compression settings */\n// // FILE_UPLOAD_VIDEO_COMPRESSION_CRF: process.env.FILE_UPLOAD_VIDEO_COMPRESSION_CRF || \"\",\n// // FILE_UPLOAD_VIDEO_COMPRESSION_PRESET: process.env.FILE_UPLOAD_VIDEO_COMPRESSION_PRESET || \"\",\n// // FILE_UPLOAD_VIDEO_COMPRESSION_RESOLUTION: process.env.FILE_UPLOAD_VIDEO_COMPRESSION_RESOLUTION || \"\",\n\n// // SUPABASE_PROJECT_URL: process.env.SUPABASE_PROJECT_URL || \"\",\n// // SUPABASE_API_KEY: process.env.SUPABASE_API_KEY || \"\"\n\n// };"]}
@@ -1 +1 @@
1
- export { config } from "../configs/config";
1
+ export {};
@@ -1,6 +1,4 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.config = void 0;
4
- var config_1 = require("../configs/config");
5
- Object.defineProperty(exports, "config", { enumerable: true, get: function () { return config_1.config; } });
3
+ // export { config } from "../configs/config"
6
4
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/configs/index.ts"],"names":[],"mappings":";;;AAAA,2CAAyC;AAAhC,gGAAA,MAAM,OAAA","sourcesContent":["export { config } from \"@/configs/config\""]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/configs/index.ts"],"names":[],"mappings":";;AAAA,4CAA4C","sourcesContent":["// export { config } from \"@/configs/config\""]}
@@ -1,15 +1,18 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.getAuthToken = void 0;
4
- const configs_1 = require("../../configs");
4
+ // import { config } from "../../configs";
5
5
  const utils_1 = require("../../utils");
6
6
  const services_1 = require("../../services");
7
7
  const payload_1 = require("../../schema/payload");
8
+ // retrive core configuration
9
+ const coreConfig = (0, utils_1.getCoreConfiguration)();
8
10
  /** auth/token : get auth token */
9
11
  const getAuthToken = async (req, res, next) => {
10
12
  try {
11
13
  const requestAuthType = req.body.scope.target;
12
- const authSecretKey = configs_1.config.AUTH_SECRET_KEY;
14
+ // const authSecretKey = config.AUTH_SECRET_KEY
15
+ const authSecretKey = coreConfig.authSecretKey;
13
16
  const authService = (0, services_1.AuthService)({
14
17
  ...(0, utils_1.getDefaultServiceProps)(req),
15
18
  secretKey: authSecretKey,
@@ -1 +1 @@
1
- {"version":3,"file":"authController.js","sourceRoot":"","sources":["../../../src/controllers/auth/authController.ts"],"names":[],"mappings":"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","sourcesContent":["import { NextFunction, Request, Response } from \"express\";\n\nimport { config } from \"@/configs\";\n\nimport { getDefaultServiceProps, sendSuccess, sendError, HTTP_STATUS } from \"@/utils\"\n\nimport { AuthService, AuthType, AuthGetTokenProps } from \"@/services\"\nimport {\n schemaAuthTokenPayload,\n schemaAuthTokenOperatorPayload,\n} from \"@/schema/payload\";\n\nimport { z } from \"zod\";\n\n/** auth/token : get auth token */\nexport const getAuthToken = async (req: Request, res: Response, next: NextFunction): Promise<any> => {\n try {\n\n const requestAuthType = req.body.scope.target as AuthType\n\n const authSecretKey = config.AUTH_SECRET_KEY\n\n const authService = AuthService({\n ...getDefaultServiceProps(req),\n secretKey: authSecretKey,\n authType: requestAuthType\n })\n\n let reqScope = req.body.scope\n let reqPayload = req.body.payload\n\n // select schema\n\n let schema: z.ZodTypeAny;\n let data: any = {}\n\n // Operator Authentication\n if (requestAuthType === \"operator\") {\n\n schema = schemaAuthTokenOperatorPayload\n\n let request = schema.parse({\n scope: {\n target: reqScope.target,\n action: reqScope.action\n },\n payload: {\n username: reqPayload.username,\n password: reqPayload.password\n }\n })\n\n let payload: AuthGetTokenProps = {\n authType: requestAuthType,\n accountId: 0,\n data: {\n username: request.payload.username,\n password: request.payload.password\n }\n }\n\n data = await authService.getAuthToken(payload)\n\n } else {\n\n schema = schemaAuthTokenPayload\n\n let request = schema.parse({\n scope: {\n target: reqScope.target,\n action: reqScope.action\n },\n payload: {\n ...(reqPayload?.account_id ? { accountId: reqPayload.account_id } : {}),\n ...(reqPayload?.account_code ? { accountCode: reqPayload.account_code } : {}),\n username: reqPayload.username,\n password: reqPayload.password\n }\n })\n\n let payload: AuthGetTokenProps = {\n authType: requestAuthType,\n ...(request?.payload?.accountId ? { accountId: Number(request.payload.accountId) } : {}),\n ...(request?.payload?.accountCode ? { accountCode: String(request.payload.accountCode) } : {}),\n data: {\n username: request.payload.username,\n password: request.payload.password\n }\n }\n\n data = await authService.getAuthToken(payload)\n\n }\n\n return sendSuccess(res, data, \"Token Retrieved successfully\", ``);\n\n } catch (error: any) {\n next(error)\n }\n}\n"]}
1
+ {"version":3,"file":"authController.js","sourceRoot":"","sources":["../../../src/controllers/auth/authController.ts"],"names":[],"mappings":"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","sourcesContent":["import { NextFunction, Request, Response } from \"express\";\n\n// import { config } from \"@/configs\";\n\nimport { getDefaultServiceProps, sendSuccess, getCoreConfiguration, sendError, HTTP_STATUS } from \"@/utils\"\n\nimport { AuthService, AuthType, AuthGetTokenProps } from \"@/services\"\nimport {\n schemaAuthTokenPayload,\n schemaAuthTokenOperatorPayload,\n} from \"@/schema/payload\";\n\nimport { z } from \"zod\";\n\n// retrive core configuration\nconst coreConfig = getCoreConfiguration()\n\n/** auth/token : get auth token */\nexport const getAuthToken = async (req: Request, res: Response, next: NextFunction): Promise<any> => {\n try {\n\n const requestAuthType = req.body.scope.target as AuthType\n\n // const authSecretKey = config.AUTH_SECRET_KEY\n const authSecretKey = coreConfig.authSecretKey\n\n const authService = AuthService({\n ...getDefaultServiceProps(req),\n secretKey: authSecretKey,\n authType: requestAuthType\n })\n\n let reqScope = req.body.scope\n let reqPayload = req.body.payload\n\n // select schema\n\n let schema: z.ZodTypeAny;\n let data: any = {}\n\n // Operator Authentication\n if (requestAuthType === \"operator\") {\n\n schema = schemaAuthTokenOperatorPayload\n\n let request = schema.parse({\n scope: {\n target: reqScope.target,\n action: reqScope.action\n },\n payload: {\n username: reqPayload.username,\n password: reqPayload.password\n }\n })\n\n let payload: AuthGetTokenProps = {\n authType: requestAuthType,\n accountId: 0,\n data: {\n username: request.payload.username,\n password: request.payload.password\n }\n }\n\n data = await authService.getAuthToken(payload)\n\n } else {\n\n schema = schemaAuthTokenPayload\n\n let request = schema.parse({\n scope: {\n target: reqScope.target,\n action: reqScope.action\n },\n payload: {\n ...(reqPayload?.account_id ? { accountId: reqPayload.account_id } : {}),\n ...(reqPayload?.account_code ? { accountCode: reqPayload.account_code } : {}),\n username: reqPayload.username,\n password: reqPayload.password\n }\n })\n\n let payload: AuthGetTokenProps = {\n authType: requestAuthType,\n ...(request?.payload?.accountId ? { accountId: Number(request.payload.accountId) } : {}),\n ...(request?.payload?.accountCode ? { accountCode: String(request.payload.accountCode) } : {}),\n data: {\n username: request.payload.username,\n password: request.payload.password\n }\n }\n\n data = await authService.getAuthToken(payload)\n\n }\n\n return sendSuccess(res, data, \"Token Retrieved successfully\", ``);\n\n } catch (error: any) {\n next(error)\n }\n}\n"]}
@@ -8,35 +8,72 @@ const path_1 = __importDefault(require("path"));
8
8
  const utils_1 = require("../../utils");
9
9
  const services_1 = require("../../services");
10
10
  const payload_1 = require("../../schema/payload");
11
- const configs_1 = require("../../configs");
11
+ const features_1 = require("../../features");
12
12
  const getRootName = (toSingular) => {
13
13
  let rootName = toSingular ? "file" : "files";
14
14
  return rootName;
15
15
  };
16
- const getStorageProvider = () => {
17
- const storageProviderName = configs_1.config.FILE_STORAGE_PROVIDER_NAME;
16
+ // const getStorageProvider = () => {
17
+ // const storageProviderName = config.FILE_STORAGE_PROVIDER_NAME as FileUploadProps["storageProviderName"]
18
+ // let storageProviderOptions = {}
19
+ // if (storageProviderName === "local") {
20
+ // storageProviderOptions = {
21
+ // basePath: `${config.FILE_STORAGE_LOCAL_BASE_PATH}`,
22
+ // publicBaseUrl: `${config.FILE_STORAGE_LOCAL_BASE_URL}`,
23
+ // skipFoldernameByModuleRef: Boolean(config.FILE_STORAGE_LOCAL_SKIP_FOLDERNAME_MODULE_REF),
24
+ // skipFoldernameByDate: Boolean(config.FILE_STORAGE_LOCAL_SKIP_FOLDERNAME_YEAR_MONTH)
25
+ // }
26
+ // }
27
+ // if (storageProviderName === "gcloud") {
28
+ // storageProviderOptions = {
29
+ // bucketName: `${config.FILE_STORAGE_GCLOUD_BUCKET_NAME}`,
30
+ // basePath: `${config.FILE_STORAGE_GCLOUD_BASE_PATH}`,
31
+ // credentials: `${path.resolve(process.cwd(), `${config.FILE_STORAGE_GCLOUD_CREDENTIAL_PATH}`)}`,
32
+ // publicBaseUrl: `${config.FILE_STORAGE_GCLOUD_BASE_URL}`,
33
+ // skipFoldernameByModuleRef: Boolean(config.FILE_STORAGE_GCLOUD_SKIP_FOLDERNAME_MODULE_REF),
34
+ // skipFoldernameByDate: Boolean(config.FILE_STORAGE_GCLOUD_SKIP_FOLDERNAME_YEAR_MONTH)
35
+ // }
36
+ // }
37
+ // return {
38
+ // storageProviderName,
39
+ // storageProviderOptions
40
+ // }
41
+ // }
42
+ const getStorageSetup = async () => {
43
+ const hookSetup = await features_1.FileStorageHook.onSetup();
18
44
  let storageProviderOptions = {};
19
- if (storageProviderName === "local") {
45
+ if (hookSetup.storageType === "local") {
20
46
  storageProviderOptions = {
21
- basePath: `${configs_1.config.FILE_STORAGE_LOCAL_BASE_PATH}`,
22
- publicBaseUrl: `${configs_1.config.FILE_STORAGE_LOCAL_BASE_URL}`,
23
- skipFoldernameByModuleRef: Boolean(configs_1.config.FILE_STORAGE_LOCAL_SKIP_FOLDERNAME_MODULE_REF),
24
- skipFoldernameByDate: Boolean(configs_1.config.FILE_STORAGE_LOCAL_SKIP_FOLDERNAME_YEAR_MONTH)
47
+ // basePath: `${config.FILE_STORAGE_LOCAL_BASE_PATH}`,
48
+ basePath: `${hookSetup.localStorageOptions.basePath}`,
49
+ // publicBaseUrl: `${config.FILE_STORAGE_LOCAL_BASE_URL}`,
50
+ publicBaseUrl: `${hookSetup.localStorageOptions.baseUrl}`,
51
+ // skipFoldernameByModuleRef: Boolean(config.FILE_STORAGE_LOCAL_SKIP_FOLDERNAME_MODULE_REF),
52
+ skipFoldernameByModuleRef: Boolean(hookSetup.localStorageOptions.skipFolderNameModuleRef),
53
+ // skipFoldernameByDate: Boolean(config.FILE_STORAGE_LOCAL_SKIP_FOLDERNAME_YEAR_MONTH)
54
+ skipFoldernameByDate: Boolean(hookSetup.localStorageOptions.skipFolderNameYearMonth)
25
55
  };
26
56
  }
27
- if (storageProviderName === "gcloud") {
57
+ if (hookSetup.storageType === "gcloud") {
28
58
  storageProviderOptions = {
29
- bucketName: `${configs_1.config.FILE_STORAGE_GCLOUD_BUCKET_NAME}`,
30
- basePath: `${configs_1.config.FILE_STORAGE_GCLOUD_BASE_PATH}`,
31
- credentials: `${path_1.default.resolve(process.cwd(), `${configs_1.config.FILE_STORAGE_GCLOUD_CREDENTIAL_PATH}`)}`,
32
- publicBaseUrl: `${configs_1.config.FILE_STORAGE_GCLOUD_BASE_URL}`,
33
- skipFoldernameByModuleRef: Boolean(configs_1.config.FILE_STORAGE_GCLOUD_SKIP_FOLDERNAME_MODULE_REF),
34
- skipFoldernameByDate: Boolean(configs_1.config.FILE_STORAGE_GCLOUD_SKIP_FOLDERNAME_YEAR_MONTH)
59
+ // basePath: `${config.FILE_STORAGE_GCLOUD_BASE_PATH}`,
60
+ basePath: `${hookSetup.gcloudStorageOptions.basePath}`,
61
+ // publicBaseUrl: `${config.FILE_STORAGE_GCLOUD_BASE_URL}`,
62
+ publicBaseUrl: `${hookSetup.gcloudStorageOptions.baseUrl}`,
63
+ // bucketName: `${config.FILE_STORAGE_GCLOUD_BUCKET_NAME}`,
64
+ bucketName: `${hookSetup.gcloudStorageOptions.bucketName}`,
65
+ // credentials: `${path.resolve(process.cwd(), `${config.FILE_STORAGE_GCLOUD_CREDENTIAL_PATH}`)}`,
66
+ credentials: `${path_1.default.resolve(process.cwd(), `${hookSetup.gcloudStorageOptions.credentialPath}`)}`,
67
+ // skipFoldernameByModuleRef: Boolean(config.FILE_STORAGE_GCLOUD_SKIP_FOLDERNAME_MODULE_REF),
68
+ skipFoldernameByModuleRef: Boolean(hookSetup.gcloudStorageOptions.skipFolderNameModuleRef),
69
+ // skipFoldernameByDate: Boolean(config.FILE_STORAGE_GCLOUD_SKIP_FOLDERNAME_YEAR_MONTH)
70
+ skipFoldernameByDate: Boolean(hookSetup.gcloudStorageOptions.skipFolderNameYearMonth)
35
71
  };
36
72
  }
37
73
  return {
38
- storageProviderName,
39
- storageProviderOptions
74
+ storageProviderName: hookSetup.storageType,
75
+ storageProviderOptions,
76
+ storageConfiguration: hookSetup.storageConfiguration
40
77
  };
41
78
  };
42
79
  /** file/:fileId : get file */
@@ -79,22 +116,45 @@ const uploadFiles = async (req, res, next) => {
79
116
  buffer: file.buffer,
80
117
  })) : [],
81
118
  });
82
- const { storageProviderName, storageProviderOptions } = getStorageProvider();
119
+ // const {
120
+ // storageProviderName,
121
+ // storageProviderOptions
122
+ // } = getStorageProvider()
123
+ // Image Compression
124
+ // const imageCompressionOptions: FileImageCompressionOptions | undefined
125
+ // = config.FILE_UPLOAD_IMAGE_MAX_WIDTH && config.FILE_UPLOAD_IMAGE_QUALITY
126
+ // ? {
127
+ // maxWidth: Number(config.FILE_UPLOAD_IMAGE_MAX_WIDTH),
128
+ // quality: Number(config.FILE_UPLOAD_IMAGE_QUALITY),
129
+ // }
130
+ // : undefined;
131
+ // Video Compression
132
+ // const videoCompressionOptions: FileVideoCompressionOptions | undefined =
133
+ // config.FILE_UPLOAD_VIDEO_COMPRESSION_CRF &&
134
+ // config.FILE_UPLOAD_VIDEO_COMPRESSION_PRESET &&
135
+ // config.FILE_UPLOAD_VIDEO_COMPRESSION_RESOLUTION
136
+ // ? {
137
+ // crf: Number(config.FILE_UPLOAD_VIDEO_COMPRESSION_CRF),
138
+ // preset: config.FILE_UPLOAD_VIDEO_COMPRESSION_PRESET as FileVideoCompressionOptions["preset"],
139
+ // resolution: Number(config.FILE_UPLOAD_VIDEO_COMPRESSION_RESOLUTION),
140
+ // }
141
+ // : undefined;
142
+ const { storageProviderName, storageProviderOptions, storageConfiguration } = await getStorageSetup();
83
143
  // Image Compression
84
- const imageCompressionOptions = configs_1.config.FILE_UPLOAD_IMAGE_MAX_WIDTH && configs_1.config.FILE_UPLOAD_IMAGE_QUALITY
144
+ const imageCompressionOptions = storageConfiguration?.imageMaxWidth && storageConfiguration?.imageMaxWidth
85
145
  ? {
86
- maxWidth: Number(configs_1.config.FILE_UPLOAD_IMAGE_MAX_WIDTH),
87
- quality: Number(configs_1.config.FILE_UPLOAD_IMAGE_QUALITY),
146
+ maxWidth: Number(storageConfiguration.imageMaxWidth),
147
+ quality: Number(storageConfiguration.imageQuality),
88
148
  }
89
149
  : undefined;
90
150
  // Video Compression
91
- const videoCompressionOptions = configs_1.config.FILE_UPLOAD_VIDEO_COMPRESSION_CRF &&
92
- configs_1.config.FILE_UPLOAD_VIDEO_COMPRESSION_PRESET &&
93
- configs_1.config.FILE_UPLOAD_VIDEO_COMPRESSION_RESOLUTION
151
+ const videoCompressionOptions = storageConfiguration?.videoCRF &&
152
+ storageConfiguration?.videoPreset &&
153
+ storageConfiguration?.videoResolution
94
154
  ? {
95
- crf: Number(configs_1.config.FILE_UPLOAD_VIDEO_COMPRESSION_CRF),
96
- preset: configs_1.config.FILE_UPLOAD_VIDEO_COMPRESSION_PRESET,
97
- resolution: Number(configs_1.config.FILE_UPLOAD_VIDEO_COMPRESSION_RESOLUTION),
155
+ crf: Number(storageConfiguration.videoCRF),
156
+ preset: storageConfiguration.videoPreset,
157
+ resolution: Number(storageConfiguration.videoResolution),
98
158
  }
99
159
  : undefined;
100
160
  const fileService = (0, services_1.FileService)({
@@ -211,7 +271,11 @@ const deleteFiles = async (req, res, next) => {
211
271
  const fileService = (0, services_1.FileService)({
212
272
  ...(0, utils_1.getDefaultServiceProps)(req),
213
273
  });
214
- const { storageProviderName, storageProviderOptions } = getStorageProvider();
274
+ // const {
275
+ // storageProviderName,
276
+ // storageProviderOptions
277
+ // } = getStorageProvider()
278
+ const { storageProviderName, storageProviderOptions } = await getStorageSetup();
215
279
  const payload = {
216
280
  fileIds: request.payload.ids.map(i => BigInt(i)),
217
281
  storageProviderName,
@@ -1 +1 @@
1
- {"version":3,"file":"fileController.js","sourceRoot":"","sources":["../../../src/controllers/file/fileController.ts"],"names":[],"mappings":"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","sourcesContent":["import { Request, Response, NextFunction } from \"express\";\n\nimport path from \"path\";\n\nimport { getDefaultServiceProps, sendSuccess, sendError, HTTP_STATUS } from \"@/utils\"\n\nimport { FileService, FileUploadProps, FileImageCompressionOptions, FileVideoCompressionOptions } from \"@/services\"\nimport {\n schemaFileDeletePayload,\n schemaFileUploadPayload,\n} from \"@/schema/payload\";\n\nimport { QueryList } from \"@/schema/middleware/route\";\n\nimport { config } from \"@/configs\";\n\nconst getRootName = (toSingular: boolean) => {\n\n let rootName = toSingular ? \"file\" : \"files\";\n\n return rootName\n}\n\nconst getStorageProvider = () => {\n\n const storageProviderName = config.FILE_STORAGE_PROVIDER_NAME as FileUploadProps[\"storageProviderName\"]\n\n let storageProviderOptions = {}\n\n if (storageProviderName === \"local\") {\n storageProviderOptions = {\n basePath: `${config.FILE_STORAGE_LOCAL_BASE_PATH}`,\n publicBaseUrl: `${config.FILE_STORAGE_LOCAL_BASE_URL}`,\n skipFoldernameByModuleRef: Boolean(config.FILE_STORAGE_LOCAL_SKIP_FOLDERNAME_MODULE_REF),\n skipFoldernameByDate: Boolean(config.FILE_STORAGE_LOCAL_SKIP_FOLDERNAME_YEAR_MONTH)\n }\n }\n\n if (storageProviderName === \"gcloud\") {\n storageProviderOptions = {\n bucketName: `${config.FILE_STORAGE_GCLOUD_BUCKET_NAME}`,\n basePath: `${config.FILE_STORAGE_GCLOUD_BASE_PATH}`,\n credentials: `${path.resolve(process.cwd(), `${config.FILE_STORAGE_GCLOUD_CREDENTIAL_PATH}`)}`,\n publicBaseUrl: `${config.FILE_STORAGE_GCLOUD_BASE_URL}`,\n skipFoldernameByModuleRef: Boolean(config.FILE_STORAGE_GCLOUD_SKIP_FOLDERNAME_MODULE_REF),\n skipFoldernameByDate: Boolean(config.FILE_STORAGE_GCLOUD_SKIP_FOLDERNAME_YEAR_MONTH)\n }\n }\n\n return {\n storageProviderName,\n storageProviderOptions\n }\n}\n\n/** file/:fileId : get file */\nexport const getFile = async (req: Request, res: Response, next: NextFunction): Promise<any> => {\n try {\n\n const { fileId } = req.params;\n // const requestQuery = req.query as unknown as QueryList;\n // const requestDocumentType = documentType as FileServiceProps[\"documentType\"];\n\n const fileService = FileService({\n ...getDefaultServiceProps(req),\n })\n\n const data = await fileService.getFile({ id: Number(fileId) })\n\n return sendSuccess(res, data, \"Retrieved successfully\", getRootName(true));\n\n } catch (error: any) {\n next(error)\n }\n}\n\n/** files : upload files */\nexport const uploadFiles = async (req: Request, res: Response, next: NextFunction): Promise<any> => {\n\n try {\n\n let reqBody = req.body\n let reqFiles = req.files\n\n const request = schemaFileUploadPayload.parse({\n field_ref: reqBody.field_ref,\n field_module: reqBody.field_module,\n description: reqBody.description,\n tagName: reqBody.tag_name,\n label: reqBody.label,\n refId: Number(reqBody.ref_id),\n refId2: Number(reqBody.ref_id_2),\n ...(reqBody?.ref_label ? { refLabel: reqBody.ref_label } : {}),\n ...(reqBody?.ref_label_2 ? { refLabel2: reqBody.ref_label_2 } : {}),\n ...(reqBody?.remark ? { remark: reqBody.remark } : {}),\n files: Array.isArray(reqFiles) ? reqFiles.map((file: any) => ({\n originalname: file.originalname,\n mimetype: file.mimetype,\n size: file.size,\n buffer: file.buffer,\n })) : [],\n });\n\n const {\n storageProviderName,\n storageProviderOptions\n } = getStorageProvider()\n\n // Image Compression\n const imageCompressionOptions: FileImageCompressionOptions | undefined\n = config.FILE_UPLOAD_IMAGE_MAX_WIDTH && config.FILE_UPLOAD_IMAGE_QUALITY\n ? {\n maxWidth: Number(config.FILE_UPLOAD_IMAGE_MAX_WIDTH),\n quality: Number(config.FILE_UPLOAD_IMAGE_QUALITY),\n }\n : undefined;\n\n // Video Compression\n const videoCompressionOptions: FileVideoCompressionOptions | undefined =\n config.FILE_UPLOAD_VIDEO_COMPRESSION_CRF &&\n config.FILE_UPLOAD_VIDEO_COMPRESSION_PRESET &&\n config.FILE_UPLOAD_VIDEO_COMPRESSION_RESOLUTION\n ? {\n crf: Number(config.FILE_UPLOAD_VIDEO_COMPRESSION_CRF),\n preset: config.FILE_UPLOAD_VIDEO_COMPRESSION_PRESET as FileVideoCompressionOptions[\"preset\"],\n resolution: Number(config.FILE_UPLOAD_VIDEO_COMPRESSION_RESOLUTION),\n }\n : undefined;\n\n const fileService = FileService({\n ...getDefaultServiceProps(req),\n });\n\n const payload: FileUploadProps = {\n field_ref: reqBody.field_ref,\n field_module: reqBody.field_module,\n description: request.description,\n label: request.label,\n tagName: request.tagName ?? \"\",\n refId: request.refId ?? 0,\n refId2: request?.refId2 ?? 0,\n refLabel: request?.refLabel ?? \"\",\n refLabel2: request?.refLabel2 ?? \"\",\n remark: request?.remark ?? \"\",\n // foldernameDate: \"2025-01-01\", // empty to use current datetime\n storageProviderName,\n storageProviderOptions,\n ...(imageCompressionOptions ? { imageCompressionOptions } : {}),\n ...(videoCompressionOptions ? { videoCompressionOptions } : {}),\n files: request.files.map(file => ({\n buffer: file.buffer,\n originalName: file.originalname,\n mimeType: file.mimetype,\n sizeBytes: file.size,\n })),\n };\n\n const response = await fileService.uploadFiles(payload);\n\n return sendSuccess(res, response, \"Files uploaded successfully\");\n\n } catch (error) {\n next(error);\n }\n};\n\n/** file/:fileId : update file */\nexport const updateFile = async (req: Request, res: Response, next: NextFunction): Promise<void> => {\n try {\n\n const { fileId } = req.params;\n // const requestDocumentType = req.body.scope.target as FileServiceProps[\"documentType\"]\n\n const fileService = FileService({\n ...getDefaultServiceProps(req),\n })\n\n let response: any = {}\n\n let reqScope = req.body.scope\n let reqPayload = req.body.payload\n\n\n // const { schemaUpdate, key } = documentSalesMap[requestDocumentType as keyof typeof documentSalesMap];\n\n // const request = schemaUpdate.parse({\n // scope: { target: reqScope.target, action: reqScope.action },\n // payload: {\n // ...buildDocumentPayloadFromRequest(reqPayload),\n // profile: buildDocumentProfileFromRequest(reqPayload.profile),\n // shipping: buildDocumentProfileOtherFromRequest(reqPayload.shipping),\n // billing: buildDocumentProfileOtherFromRequest(reqPayload.billing),\n // ...(reqPayload?.items ? { items: buildDocumentItemsFromRequest(reqPayload.items) } : {}),\n // ...(reqPayload?.totals ? { totals: buildDocumentTotalsFromRequest(reqPayload.totals) } : {}),\n // },\n // });\n\n // const payload: DocumentUpdateProps = {\n // documentId: Number(documentId),\n // documentType: requestDocumentType,\n // data: {\n // ...buildDocumentPayloadToService(request.payload),\n // [key]: {\n // profile: buildDocumentProfileToService(request.payload.profile),\n // shipping: buildDocumentProfileOtherToService(request.payload.shipping),\n // billing: buildDocumentProfileOtherToService(request.payload.billing),\n // ...(request.payload?.items ? { items: buildDocumentItemsToService(request.payload.items) } : {}),\n // ...(request.payload?.totals ? { totals: buildDocumentTotalsToService(request.payload.totals) } : {}),\n // },\n // } as any,\n // };\n\n // const result = await fileService.updateFile(payload);\n\n // response = {\n // [getRootName(true)]: result,\n // };\n\n sendSuccess(res, response, `File updated successfully`)\n\n } catch (error: any) {\n next(error)\n }\n};\n\n/** files : list files */\nexport const listFiles = async (req: Request, res: Response, next: NextFunction): Promise<any> => {\n\n try {\n\n const requestQuery = req.query as unknown as QueryList;\n // const requestDocumentType = req.params.documentType as FileServiceProps[\"documentType\"];\n\n const fileService = FileService({\n ...getDefaultServiceProps(req),\n })\n\n const { data, total } = await fileService.listFiles({\n ...requestQuery,\n });\n\n let response = {\n [`${getRootName(false)}`]: data,\n total,\n }\n\n return sendSuccess(res, response, \"Retrieved successfully\");\n\n } catch (error: any) {\n next(error)\n }\n};\n\n/** files/delete : delete files */\nexport const deleteFiles = async (req: Request, res: Response, next: NextFunction): Promise<any> => {\n\n try {\n\n // const requestDocumentType = req.body.scope.target as FileServiceProps[\"documentType\"]\n // const requestQuery = req.query as unknown as QueryList;\n // const requestFileId = Number(req.params.fileId)\n\n const request = schemaFileDeletePayload.parse(req.body)\n\n const fileService = FileService({\n ...getDefaultServiceProps(req),\n })\n\n const {\n storageProviderName,\n storageProviderOptions\n } = getStorageProvider()\n\n const payload = {\n fileIds: request.payload.ids.map(i => BigInt(i)),\n storageProviderName,\n storageProviderOptions\n }\n\n const data = await fileService.removeFiles(payload);\n\n return sendSuccess(res, data, \"Deleted\", getRootName(false));\n\n } catch (error: any) {\n next(error)\n }\n};\n\n/** file/data_types : get file data types */\n// export const getFileDataTypes = async (req: Request, res: Response, next: NextFunction): Promise<any> => {\n\n// try {\n\n// const requestQuery = req.query as unknown as QueryList;\n// // const requestDocumentType = req.params.documentType as FileServiceProps[\"documentType\"];\n\n// const fileService = FileService({\n// ...getDefaultServiceProps(req),\n// })\n\n// const data = fileService.getFileDataTypes();\n\n// let response = {\n// data_types: data\n// }\n\n// return sendSuccess(res, response, \"Retrieved successfully\");\n\n// } catch (error: any) {\n// next(error)\n// }\n// };\n"]}
1
+ {"version":3,"file":"fileController.js","sourceRoot":"","sources":["../../../src/controllers/file/fileController.ts"],"names":[],"mappings":"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","sourcesContent":["import { Request, Response, NextFunction } from \"express\";\n\nimport path from \"path\";\n\nimport { getDefaultServiceProps, sendSuccess, sendError, HTTP_STATUS } from \"@/utils\"\n\nimport { FileService, FileUploadProps, FileImageCompressionOptions, FileVideoCompressionOptions } from \"@/services\"\nimport {\n schemaFileDeletePayload,\n schemaFileUploadPayload,\n} from \"@/schema/payload\";\n\nimport { QueryList } from \"@/schema/middleware/route\";\n\nimport { FileStorageHook } from \"@/features\"\n\nconst getRootName = (toSingular: boolean) => {\n\n let rootName = toSingular ? \"file\" : \"files\";\n\n return rootName\n}\n\n// const getStorageProvider = () => {\n\n// const storageProviderName = config.FILE_STORAGE_PROVIDER_NAME as FileUploadProps[\"storageProviderName\"]\n\n// let storageProviderOptions = {}\n\n// if (storageProviderName === \"local\") {\n// storageProviderOptions = {\n// basePath: `${config.FILE_STORAGE_LOCAL_BASE_PATH}`,\n// publicBaseUrl: `${config.FILE_STORAGE_LOCAL_BASE_URL}`,\n// skipFoldernameByModuleRef: Boolean(config.FILE_STORAGE_LOCAL_SKIP_FOLDERNAME_MODULE_REF),\n// skipFoldernameByDate: Boolean(config.FILE_STORAGE_LOCAL_SKIP_FOLDERNAME_YEAR_MONTH)\n// }\n// }\n\n// if (storageProviderName === \"gcloud\") {\n// storageProviderOptions = {\n// bucketName: `${config.FILE_STORAGE_GCLOUD_BUCKET_NAME}`,\n// basePath: `${config.FILE_STORAGE_GCLOUD_BASE_PATH}`,\n// credentials: `${path.resolve(process.cwd(), `${config.FILE_STORAGE_GCLOUD_CREDENTIAL_PATH}`)}`,\n// publicBaseUrl: `${config.FILE_STORAGE_GCLOUD_BASE_URL}`,\n// skipFoldernameByModuleRef: Boolean(config.FILE_STORAGE_GCLOUD_SKIP_FOLDERNAME_MODULE_REF),\n// skipFoldernameByDate: Boolean(config.FILE_STORAGE_GCLOUD_SKIP_FOLDERNAME_YEAR_MONTH)\n// }\n// }\n\n// return {\n// storageProviderName,\n// storageProviderOptions\n// }\n// }\n\nconst getStorageSetup = async () => {\n\n const hookSetup = await FileStorageHook.onSetup()\n\n let storageProviderOptions = {}\n\n if (hookSetup.storageType === \"local\") {\n storageProviderOptions = {\n // basePath: `${config.FILE_STORAGE_LOCAL_BASE_PATH}`,\n basePath: `${hookSetup.localStorageOptions.basePath}`,\n // publicBaseUrl: `${config.FILE_STORAGE_LOCAL_BASE_URL}`,\n publicBaseUrl: `${hookSetup.localStorageOptions.baseUrl}`,\n // skipFoldernameByModuleRef: Boolean(config.FILE_STORAGE_LOCAL_SKIP_FOLDERNAME_MODULE_REF),\n skipFoldernameByModuleRef: Boolean(hookSetup.localStorageOptions.skipFolderNameModuleRef),\n // skipFoldernameByDate: Boolean(config.FILE_STORAGE_LOCAL_SKIP_FOLDERNAME_YEAR_MONTH)\n skipFoldernameByDate: Boolean(hookSetup.localStorageOptions.skipFolderNameYearMonth)\n }\n }\n\n if (hookSetup.storageType === \"gcloud\") {\n storageProviderOptions = {\n // basePath: `${config.FILE_STORAGE_GCLOUD_BASE_PATH}`,\n basePath: `${hookSetup.gcloudStorageOptions.basePath}`,\n // publicBaseUrl: `${config.FILE_STORAGE_GCLOUD_BASE_URL}`,\n publicBaseUrl: `${hookSetup.gcloudStorageOptions.baseUrl}`,\n // bucketName: `${config.FILE_STORAGE_GCLOUD_BUCKET_NAME}`,\n bucketName: `${hookSetup.gcloudStorageOptions.bucketName}`,\n // credentials: `${path.resolve(process.cwd(), `${config.FILE_STORAGE_GCLOUD_CREDENTIAL_PATH}`)}`,\n credentials: `${path.resolve(process.cwd(), `${hookSetup.gcloudStorageOptions.credentialPath}`)}`,\n // skipFoldernameByModuleRef: Boolean(config.FILE_STORAGE_GCLOUD_SKIP_FOLDERNAME_MODULE_REF),\n skipFoldernameByModuleRef: Boolean(hookSetup.gcloudStorageOptions.skipFolderNameModuleRef),\n // skipFoldernameByDate: Boolean(config.FILE_STORAGE_GCLOUD_SKIP_FOLDERNAME_YEAR_MONTH)\n skipFoldernameByDate: Boolean(hookSetup.gcloudStorageOptions.skipFolderNameYearMonth)\n }\n }\n\n return {\n storageProviderName: hookSetup.storageType,\n storageProviderOptions,\n storageConfiguration: hookSetup.storageConfiguration\n }\n}\n\n/** file/:fileId : get file */\nexport const getFile = async (req: Request, res: Response, next: NextFunction): Promise<any> => {\n try {\n\n const { fileId } = req.params;\n // const requestQuery = req.query as unknown as QueryList;\n // const requestDocumentType = documentType as FileServiceProps[\"documentType\"];\n\n const fileService = FileService({\n ...getDefaultServiceProps(req),\n })\n\n const data = await fileService.getFile({ id: Number(fileId) })\n\n return sendSuccess(res, data, \"Retrieved successfully\", getRootName(true));\n\n } catch (error: any) {\n next(error)\n }\n}\n\n/** files : upload files */\nexport const uploadFiles = async (req: Request, res: Response, next: NextFunction): Promise<any> => {\n\n try {\n\n let reqBody = req.body\n let reqFiles = req.files\n\n const request = schemaFileUploadPayload.parse({\n field_ref: reqBody.field_ref,\n field_module: reqBody.field_module,\n description: reqBody.description,\n tagName: reqBody.tag_name,\n label: reqBody.label,\n refId: Number(reqBody.ref_id),\n refId2: Number(reqBody.ref_id_2),\n ...(reqBody?.ref_label ? { refLabel: reqBody.ref_label } : {}),\n ...(reqBody?.ref_label_2 ? { refLabel2: reqBody.ref_label_2 } : {}),\n ...(reqBody?.remark ? { remark: reqBody.remark } : {}),\n files: Array.isArray(reqFiles) ? reqFiles.map((file: any) => ({\n originalname: file.originalname,\n mimetype: file.mimetype,\n size: file.size,\n buffer: file.buffer,\n })) : [],\n });\n\n // const {\n // storageProviderName,\n // storageProviderOptions\n // } = getStorageProvider()\n\n\n // Image Compression\n // const imageCompressionOptions: FileImageCompressionOptions | undefined\n // = config.FILE_UPLOAD_IMAGE_MAX_WIDTH && config.FILE_UPLOAD_IMAGE_QUALITY\n // ? {\n // maxWidth: Number(config.FILE_UPLOAD_IMAGE_MAX_WIDTH),\n // quality: Number(config.FILE_UPLOAD_IMAGE_QUALITY),\n // }\n // : undefined;\n\n\n // Video Compression\n // const videoCompressionOptions: FileVideoCompressionOptions | undefined =\n // config.FILE_UPLOAD_VIDEO_COMPRESSION_CRF &&\n // config.FILE_UPLOAD_VIDEO_COMPRESSION_PRESET &&\n // config.FILE_UPLOAD_VIDEO_COMPRESSION_RESOLUTION\n // ? {\n // crf: Number(config.FILE_UPLOAD_VIDEO_COMPRESSION_CRF),\n // preset: config.FILE_UPLOAD_VIDEO_COMPRESSION_PRESET as FileVideoCompressionOptions[\"preset\"],\n // resolution: Number(config.FILE_UPLOAD_VIDEO_COMPRESSION_RESOLUTION),\n // }\n // : undefined;\n\n const {\n storageProviderName,\n storageProviderOptions,\n storageConfiguration\n } = await getStorageSetup()\n\n // Image Compression\n const imageCompressionOptions: FileImageCompressionOptions | undefined\n = storageConfiguration?.imageMaxWidth && storageConfiguration?.imageMaxWidth\n ? {\n maxWidth: Number(storageConfiguration.imageMaxWidth),\n quality: Number(storageConfiguration.imageQuality),\n }\n : undefined;\n\n // Video Compression\n const videoCompressionOptions: FileVideoCompressionOptions | undefined =\n storageConfiguration?.videoCRF &&\n storageConfiguration?.videoPreset &&\n storageConfiguration?.videoResolution\n ? {\n crf: Number(storageConfiguration.videoCRF),\n preset: storageConfiguration.videoPreset as FileVideoCompressionOptions[\"preset\"],\n resolution: Number(storageConfiguration.videoResolution),\n }\n : undefined;\n\n const fileService = FileService({\n ...getDefaultServiceProps(req),\n });\n\n const payload: FileUploadProps = {\n field_ref: reqBody.field_ref,\n field_module: reqBody.field_module,\n description: request.description,\n label: request.label,\n tagName: request.tagName ?? \"\",\n refId: request.refId ?? 0,\n refId2: request?.refId2 ?? 0,\n refLabel: request?.refLabel ?? \"\",\n refLabel2: request?.refLabel2 ?? \"\",\n remark: request?.remark ?? \"\",\n // foldernameDate: \"2025-01-01\", // empty to use current datetime\n storageProviderName,\n storageProviderOptions,\n ...(imageCompressionOptions ? { imageCompressionOptions } : {}),\n ...(videoCompressionOptions ? { videoCompressionOptions } : {}),\n files: request.files.map(file => ({\n buffer: file.buffer,\n originalName: file.originalname,\n mimeType: file.mimetype,\n sizeBytes: file.size,\n })),\n };\n\n const response = await fileService.uploadFiles(payload);\n\n return sendSuccess(res, response, \"Files uploaded successfully\");\n\n } catch (error) {\n next(error);\n }\n};\n\n/** file/:fileId : update file */\nexport const updateFile = async (req: Request, res: Response, next: NextFunction): Promise<void> => {\n try {\n\n const { fileId } = req.params;\n // const requestDocumentType = req.body.scope.target as FileServiceProps[\"documentType\"]\n\n const fileService = FileService({\n ...getDefaultServiceProps(req),\n })\n\n let response: any = {}\n\n let reqScope = req.body.scope\n let reqPayload = req.body.payload\n\n\n // const { schemaUpdate, key } = documentSalesMap[requestDocumentType as keyof typeof documentSalesMap];\n\n // const request = schemaUpdate.parse({\n // scope: { target: reqScope.target, action: reqScope.action },\n // payload: {\n // ...buildDocumentPayloadFromRequest(reqPayload),\n // profile: buildDocumentProfileFromRequest(reqPayload.profile),\n // shipping: buildDocumentProfileOtherFromRequest(reqPayload.shipping),\n // billing: buildDocumentProfileOtherFromRequest(reqPayload.billing),\n // ...(reqPayload?.items ? { items: buildDocumentItemsFromRequest(reqPayload.items) } : {}),\n // ...(reqPayload?.totals ? { totals: buildDocumentTotalsFromRequest(reqPayload.totals) } : {}),\n // },\n // });\n\n // const payload: DocumentUpdateProps = {\n // documentId: Number(documentId),\n // documentType: requestDocumentType,\n // data: {\n // ...buildDocumentPayloadToService(request.payload),\n // [key]: {\n // profile: buildDocumentProfileToService(request.payload.profile),\n // shipping: buildDocumentProfileOtherToService(request.payload.shipping),\n // billing: buildDocumentProfileOtherToService(request.payload.billing),\n // ...(request.payload?.items ? { items: buildDocumentItemsToService(request.payload.items) } : {}),\n // ...(request.payload?.totals ? { totals: buildDocumentTotalsToService(request.payload.totals) } : {}),\n // },\n // } as any,\n // };\n\n // const result = await fileService.updateFile(payload);\n\n // response = {\n // [getRootName(true)]: result,\n // };\n\n sendSuccess(res, response, `File updated successfully`)\n\n } catch (error: any) {\n next(error)\n }\n};\n\n/** files : list files */\nexport const listFiles = async (req: Request, res: Response, next: NextFunction): Promise<any> => {\n\n try {\n\n const requestQuery = req.query as unknown as QueryList;\n // const requestDocumentType = req.params.documentType as FileServiceProps[\"documentType\"];\n\n const fileService = FileService({\n ...getDefaultServiceProps(req),\n })\n\n const { data, total } = await fileService.listFiles({\n ...requestQuery,\n });\n\n let response = {\n [`${getRootName(false)}`]: data,\n total,\n }\n\n return sendSuccess(res, response, \"Retrieved successfully\");\n\n } catch (error: any) {\n next(error)\n }\n};\n\n/** files/delete : delete files */\nexport const deleteFiles = async (req: Request, res: Response, next: NextFunction): Promise<any> => {\n\n try {\n\n // const requestDocumentType = req.body.scope.target as FileServiceProps[\"documentType\"]\n // const requestQuery = req.query as unknown as QueryList;\n // const requestFileId = Number(req.params.fileId)\n\n const request = schemaFileDeletePayload.parse(req.body)\n\n const fileService = FileService({\n ...getDefaultServiceProps(req),\n })\n\n // const {\n // storageProviderName,\n // storageProviderOptions\n // } = getStorageProvider()\n\n const {\n storageProviderName,\n storageProviderOptions\n } = await getStorageSetup()\n\n const payload = {\n fileIds: request.payload.ids.map(i => BigInt(i)),\n storageProviderName,\n storageProviderOptions\n }\n\n const data = await fileService.removeFiles(payload);\n\n return sendSuccess(res, data, \"Deleted\", getRootName(false));\n\n } catch (error: any) {\n next(error)\n }\n};\n\n/** file/data_types : get file data types */\n// export const getFileDataTypes = async (req: Request, res: Response, next: NextFunction): Promise<any> => {\n\n// try {\n\n// const requestQuery = req.query as unknown as QueryList;\n// // const requestDocumentType = req.params.documentType as FileServiceProps[\"documentType\"];\n\n// const fileService = FileService({\n// ...getDefaultServiceProps(req),\n// })\n\n// const data = fileService.getFileDataTypes();\n\n// let response = {\n// data_types: data\n// }\n\n// return sendSuccess(res, response, \"Retrieved successfully\");\n\n// } catch (error: any) {\n// next(error)\n// }\n// };\n"]}
@@ -1,10 +1,12 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.changePasswordUtil = void 0;
4
- const configs_1 = require("../../configs");
4
+ // import { config } from "../../configs";
5
5
  const utils_1 = require("../../utils");
6
6
  const services_1 = require("../../services");
7
7
  const payload_1 = require("../../schema/payload");
8
+ // retrive core configuration
9
+ const coreConfig = (0, utils_1.getCoreConfiguration)();
8
10
  // import { z } from "zod";
9
11
  /** utils/change_password : change password via token */
10
12
  const changePasswordUtil = async (req, res, next) => {
@@ -15,7 +17,8 @@ const changePasswordUtil = async (req, res, next) => {
15
17
  // console.log('in core - authHeader', authHeader)
16
18
  // Extract token from "Bearer <token>"
17
19
  const headerToken = authHeader && authHeader.split(" ")[1];
18
- const authSecretKey = configs_1.config.AUTH_SECRET_KEY;
20
+ // const authSecretKey = config.AUTH_SECRET_KEY
21
+ const authSecretKey = coreConfig.authSecretKey;
19
22
  const changePasswordUtilService = (0, services_1.ChangePasswordUtilService)({
20
23
  ...(0, utils_1.getDefaultServiceProps)(req),
21
24
  secretKey: authSecretKey,
@@ -1 +1 @@
1
- {"version":3,"file":"changePasswordUtilController.js","sourceRoot":"","sources":["../../../src/controllers/utils/changePasswordUtilController.ts"],"names":[],"mappings":";;;AAEA,uCAAmC;AAEnC,mCAAqF;AAErF,yCAAqF;AACrF,8CAE0B;AAE1B,2BAA2B;AAE3B,wDAAwD;AACjD,MAAM,kBAAkB,GAAG,KAAK,EAAE,GAAY,EAAE,GAAa,EAAE,IAAkB,EAAgB,EAAE;IACtG,IAAI,CAAC;QAED,4DAA4D;QAE5D,MAAM,UAAU,GAAG,GAAG,CAAC,OAAO,CAAC,aAAa,CAAC;QAE7C,wDAAwD;QACxD,kDAAkD;QAElD,sCAAsC;QACtC,MAAM,WAAW,GAAG,UAAU,IAAI,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QAE3D,MAAM,aAAa,GAAG,gBAAM,CAAC,eAAe,CAAA;QAE5C,MAAM,yBAAyB,GAAG,IAAA,oCAAyB,EAAC;YACxD,GAAG,IAAA,8BAAsB,EAAC,GAAG,CAAC;YAC9B,SAAS,EAAE,aAAa;YACxB,4BAA4B;SAC/B,CAAC,CAAA;QAEF,IAAI,QAAQ,GAAG,GAAG,CAAC,IAAI,CAAC,KAAK,CAAA;QAC7B,IAAI,UAAU,GAAG,GAAG,CAAC,IAAI,CAAC,OAAO,CAAA;QAEjC,IAAI,OAAO,GAAG,yCAA+B,CAAC,KAAK,CAAC;YAChD,KAAK,EAAE;gBACH,MAAM,EAAE,QAAQ,CAAC,MAAM;gBACvB,MAAM,EAAE,QAAQ,CAAC,MAAM;aAC1B;YACD,OAAO,EAAE;gBACL,SAAS,EAAE,WAAW;gBACtB,eAAe,EAAE,UAAU,CAAC,gBAAgB;gBAC5C,WAAW,EAAE,UAAU,CAAC,YAAY;gBACpC,eAAe,EAAE,UAAU,CAAC,gBAAgB;aAC/C;SACJ,CAAC,CAAA;QAEF,IAAI,OAAO,GAAkC;YACzC,SAAS,EAAE,OAAO,CAAC,OAAO,CAAC,SAAS;YACpC,eAAe,EAAE,OAAO,CAAC,OAAO,CAAC,eAAe;YAChD,WAAW,EAAE,OAAO,CAAC,OAAO,CAAC,WAAW;YACxC,eAAe,EAAE,OAAO,CAAC,OAAO,CAAC,eAAe;SACnD,CAAA;QAED,MAAM,IAAI,GAAG,MAAM,yBAAyB,CAAC,cAAc,CAAC,OAAO,CAAC,CAAA;QAEpE,OAAO,IAAA,mBAAW,EAAC,GAAG,EAAE,IAAI,EAAE,+BAA+B,EAAE,EAAE,CAAC,CAAC;IAEvE,CAAC;IAAC,OAAO,KAAU,EAAE,CAAC;QAClB,IAAI,CAAC,KAAK,CAAC,CAAA;IACf,CAAC;AACL,CAAC,CAAA;AAnDY,QAAA,kBAAkB,sBAmD9B","sourcesContent":["import { NextFunction, Request, Response } from \"express\";\n\nimport { config } from \"@/configs\";\n\nimport { getDefaultServiceProps, sendSuccess, sendError, HTTP_STATUS } from \"@/utils\"\n\nimport { ChangePasswordUtilService, ChangePasswordUtilChangeProps } from \"@/services\"\nimport {\n schemaChangePasswordUtilPayload\n} from \"@/schema/payload\";\n\n// import { z } from \"zod\";\n\n/** utils/change_password : change password via token */\nexport const changePasswordUtil = async (req: Request, res: Response, next: NextFunction): Promise<any> => {\n try {\n\n // const requestAuthType = req.body.scope.target as AuthType\n\n const authHeader = req.headers.authorization;\n\n // console.log('in core - authSecretKey', authSecretKey)\n // console.log('in core - authHeader', authHeader)\n\n // Extract token from \"Bearer <token>\"\n const headerToken = authHeader && authHeader.split(\" \")[1];\n\n const authSecretKey = config.AUTH_SECRET_KEY\n\n const changePasswordUtilService = ChangePasswordUtilService({\n ...getDefaultServiceProps(req),\n secretKey: authSecretKey,\n // authType: \"administrator\"\n })\n\n let reqScope = req.body.scope\n let reqPayload = req.body.payload\n\n let request = schemaChangePasswordUtilPayload.parse({\n scope: {\n target: reqScope.target,\n action: reqScope.action\n },\n payload: {\n authToken: headerToken,\n currentPassword: reqPayload.current_password,\n newPassword: reqPayload.new_password,\n confirmPassword: reqPayload.confirm_password,\n }\n })\n\n let payload: ChangePasswordUtilChangeProps = {\n authToken: request.payload.authToken,\n currentPassword: request.payload.currentPassword,\n newPassword: request.payload.newPassword,\n confirmPassword: request.payload.confirmPassword,\n }\n\n const data = await changePasswordUtilService.changePassword(payload)\n\n return sendSuccess(res, data, \"Password changed successfully\", ``);\n\n } catch (error: any) {\n next(error)\n }\n}\n"]}
1
+ {"version":3,"file":"changePasswordUtilController.js","sourceRoot":"","sources":["../../../src/controllers/utils/changePasswordUtilController.ts"],"names":[],"mappings":";;;AAEA,sCAAsC;AAEtC,mCAA2G;AAE3G,yCAAqF;AACrF,8CAE0B;AAE1B,6BAA6B;AAC7B,MAAM,UAAU,GAAG,IAAA,4BAAoB,GAAE,CAAA;AAEzC,2BAA2B;AAE3B,wDAAwD;AACjD,MAAM,kBAAkB,GAAG,KAAK,EAAE,GAAY,EAAE,GAAa,EAAE,IAAkB,EAAgB,EAAE;IACtG,IAAI,CAAC;QAED,4DAA4D;QAE5D,MAAM,UAAU,GAAG,GAAG,CAAC,OAAO,CAAC,aAAa,CAAC;QAE7C,wDAAwD;QACxD,kDAAkD;QAElD,sCAAsC;QACtC,MAAM,WAAW,GAAG,UAAU,IAAI,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QAE3D,+CAA+C;QAC/C,MAAM,aAAa,GAAG,UAAU,CAAC,aAAa,CAAA;QAE9C,MAAM,yBAAyB,GAAG,IAAA,oCAAyB,EAAC;YACxD,GAAG,IAAA,8BAAsB,EAAC,GAAG,CAAC;YAC9B,SAAS,EAAE,aAAa;YACxB,4BAA4B;SAC/B,CAAC,CAAA;QAEF,IAAI,QAAQ,GAAG,GAAG,CAAC,IAAI,CAAC,KAAK,CAAA;QAC7B,IAAI,UAAU,GAAG,GAAG,CAAC,IAAI,CAAC,OAAO,CAAA;QAEjC,IAAI,OAAO,GAAG,yCAA+B,CAAC,KAAK,CAAC;YAChD,KAAK,EAAE;gBACH,MAAM,EAAE,QAAQ,CAAC,MAAM;gBACvB,MAAM,EAAE,QAAQ,CAAC,MAAM;aAC1B;YACD,OAAO,EAAE;gBACL,SAAS,EAAE,WAAW;gBACtB,eAAe,EAAE,UAAU,CAAC,gBAAgB;gBAC5C,WAAW,EAAE,UAAU,CAAC,YAAY;gBACpC,eAAe,EAAE,UAAU,CAAC,gBAAgB;aAC/C;SACJ,CAAC,CAAA;QAEF,IAAI,OAAO,GAAkC;YACzC,SAAS,EAAE,OAAO,CAAC,OAAO,CAAC,SAAS;YACpC,eAAe,EAAE,OAAO,CAAC,OAAO,CAAC,eAAe;YAChD,WAAW,EAAE,OAAO,CAAC,OAAO,CAAC,WAAW;YACxC,eAAe,EAAE,OAAO,CAAC,OAAO,CAAC,eAAe;SACnD,CAAA;QAED,MAAM,IAAI,GAAG,MAAM,yBAAyB,CAAC,cAAc,CAAC,OAAO,CAAC,CAAA;QAEpE,OAAO,IAAA,mBAAW,EAAC,GAAG,EAAE,IAAI,EAAE,+BAA+B,EAAE,EAAE,CAAC,CAAC;IAEvE,CAAC;IAAC,OAAO,KAAU,EAAE,CAAC;QAClB,IAAI,CAAC,KAAK,CAAC,CAAA;IACf,CAAC;AACL,CAAC,CAAA;AApDY,QAAA,kBAAkB,sBAoD9B","sourcesContent":["import { NextFunction, Request, Response } from \"express\";\n\n// import { config } from \"@/configs\";\n\nimport { getDefaultServiceProps, sendSuccess, getCoreConfiguration, sendError, HTTP_STATUS } from \"@/utils\"\n\nimport { ChangePasswordUtilService, ChangePasswordUtilChangeProps } from \"@/services\"\nimport {\n schemaChangePasswordUtilPayload\n} from \"@/schema/payload\";\n\n// retrive core configuration\nconst coreConfig = getCoreConfiguration()\n\n// import { z } from \"zod\";\n\n/** utils/change_password : change password via token */\nexport const changePasswordUtil = async (req: Request, res: Response, next: NextFunction): Promise<any> => {\n try {\n\n // const requestAuthType = req.body.scope.target as AuthType\n\n const authHeader = req.headers.authorization;\n\n // console.log('in core - authSecretKey', authSecretKey)\n // console.log('in core - authHeader', authHeader)\n\n // Extract token from \"Bearer <token>\"\n const headerToken = authHeader && authHeader.split(\" \")[1];\n\n // const authSecretKey = config.AUTH_SECRET_KEY\n const authSecretKey = coreConfig.authSecretKey\n\n const changePasswordUtilService = ChangePasswordUtilService({\n ...getDefaultServiceProps(req),\n secretKey: authSecretKey,\n // authType: \"administrator\"\n })\n\n let reqScope = req.body.scope\n let reqPayload = req.body.payload\n\n let request = schemaChangePasswordUtilPayload.parse({\n scope: {\n target: reqScope.target,\n action: reqScope.action\n },\n payload: {\n authToken: headerToken,\n currentPassword: reqPayload.current_password,\n newPassword: reqPayload.new_password,\n confirmPassword: reqPayload.confirm_password,\n }\n })\n\n let payload: ChangePasswordUtilChangeProps = {\n authToken: request.payload.authToken,\n currentPassword: request.payload.currentPassword,\n newPassword: request.payload.newPassword,\n confirmPassword: request.payload.confirmPassword,\n }\n\n const data = await changePasswordUtilService.changePassword(payload)\n\n return sendSuccess(res, data, \"Password changed successfully\", ``);\n\n } catch (error: any) {\n next(error)\n }\n}\n"]}
@@ -0,0 +1,5 @@
1
+ import { FeatureCoreConfigProps } from '../../features';
2
+ /**
3
+ * Register consumer-provided hooks for core configuration
4
+ */
5
+ export declare function registerCoreConfigHook(hooks: FeatureCoreConfigProps): void;
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.registerCoreConfigHook = registerCoreConfigHook;
4
+ const features_1 = require("../../features");
5
+ /**
6
+ * Register consumer-provided hooks for core configuration
7
+ */
8
+ function registerCoreConfigHook(hooks) {
9
+ Object.assign(features_1.CoreConfigHook, hooks);
10
+ }
11
+ //# sourceMappingURL=coreConfigRegister.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"coreConfigRegister.js","sourceRoot":"","sources":["../../../src/features/core_config/coreConfigRegister.ts"],"names":[],"mappings":";;AAMA,wDAEC;AAPD,yCAA2C;AAE3C;;GAEG;AACH,SAAgB,sBAAsB,CAAC,KAA6B;IAChE,MAAM,CAAC,MAAM,CAAC,yBAAc,EAAE,KAAK,CAAC,CAAA;AACxC,CAAC","sourcesContent":["import { FeatureCoreConfigProps } from '@/features'\nimport { CoreConfigHook } from '@/features'\n\n/**\n * Register consumer-provided hooks for core configuration\n */\nexport function registerCoreConfigHook(hooks: FeatureCoreConfigProps) {\n Object.assign(CoreConfigHook, hooks)\n}"]}
@@ -0,0 +1,2 @@
1
+ import { FeatureCoreConfigProps } from '../../features';
2
+ export declare const CoreConfigHook: FeatureCoreConfigProps;
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.CoreConfigHook = void 0;
4
+ // import { throwError } from '../../utils'
5
+ // Runtime storage for injected hook
6
+ exports.CoreConfigHook = {
7
+ onSetup: () => {
8
+ return {
9
+ authSecretKey: "KajMP7jrRmUBCnPbkGYwQyQ6pv[s/x2kdJdyqR>J(bWCRPmGMnckTUCMY,qGjMdX",
10
+ accessKeyEncryptionSecretKey: "jWx+5kH2Lk9EYuTuvwEuNccZJFT0MN1yzKXSv+WW88c="
11
+ };
12
+ }
13
+ };
14
+ //# sourceMappingURL=coreConfigRegistry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"coreConfigRegistry.js","sourceRoot":"","sources":["../../../src/features/core_config/coreConfigRegistry.ts"],"names":[],"mappings":";;;AACA,uCAAuC;AAEvC,oCAAoC;AACvB,QAAA,cAAc,GAA2B;IAClD,OAAO,EAAE,GAA6B,EAAE;QACpC,OAAO;YACH,aAAa,EAAE,kEAAkE;YACjF,4BAA4B,EAAE,8CAA8C;SAC/E,CAAA;IAEL,CAAC;CACJ,CAAA","sourcesContent":["import { FeatureCoreConfigOptions, FeatureCoreConfigProps } from '@/features'\n// import { throwError } from '@/utils'\n\n// Runtime storage for injected hook\nexport const CoreConfigHook: FeatureCoreConfigProps = {\n onSetup: (): FeatureCoreConfigOptions => {\n return {\n authSecretKey: \"KajMP7jrRmUBCnPbkGYwQyQ6pv[s/x2kdJdyqR>J(bWCRPmGMnckTUCMY,qGjMdX\",\n accessKeyEncryptionSecretKey: \"jWx+5kH2Lk9EYuTuvwEuNccZJFT0MN1yzKXSv+WW88c=\"\n }\n\n }\n}"]}