storemw-core-api 1.0.90 → 1.0.92

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 (39) hide show
  1. package/dist/app.js +2 -0
  2. package/dist/app.js.map +1 -1
  3. package/dist/controllers/access_key/accessKeyController.js +3 -2
  4. package/dist/controllers/access_key/accessKeyController.js.map +1 -1
  5. package/dist/features/index.d.ts +3 -0
  6. package/dist/features/index.js +5 -1
  7. package/dist/features/index.js.map +1 -1
  8. package/dist/features/smtp_email/smtpEmailRegister.d.ts +5 -0
  9. package/dist/features/smtp_email/smtpEmailRegister.js +11 -0
  10. package/dist/features/smtp_email/smtpEmailRegister.js.map +1 -0
  11. package/dist/features/smtp_email/smtpEmailRegistry.d.ts +2 -0
  12. package/dist/features/smtp_email/smtpEmailRegistry.js +34 -0
  13. package/dist/features/smtp_email/smtpEmailRegistry.js.map +1 -0
  14. package/dist/features/smtp_email/smtpEmailType.d.ts +25 -0
  15. package/dist/features/smtp_email/smtpEmailType.js +3 -0
  16. package/dist/features/smtp_email/smtpEmailType.js.map +1 -0
  17. package/dist/models/auth/AccessKeyModel.d.ts +13 -24
  18. package/dist/services/access_key/AccessKeyService.d.ts +5 -4
  19. package/dist/services/access_key/AccessKeyService.js +42 -11
  20. package/dist/services/access_key/AccessKeyService.js.map +1 -1
  21. package/dist/services/account/AccountService.js +1 -5
  22. package/dist/services/account/AccountService.js.map +1 -1
  23. package/dist/services/gateway/SmtpEmailService.d.ts +21 -0
  24. package/dist/services/gateway/SmtpEmailService.js +99 -0
  25. package/dist/services/gateway/SmtpEmailService.js.map +1 -0
  26. package/dist/services/index.d.ts +2 -0
  27. package/dist/services/index.js +3 -1
  28. package/dist/services/index.js.map +1 -1
  29. package/dist/services/one_time_code/OneTimeCodeService.d.ts +1 -1
  30. package/dist/services/one_time_code/OneTimeCodeService.js +2 -2
  31. package/dist/services/one_time_code/OneTimeCodeService.js.map +1 -1
  32. package/dist/services/user/UserService.js +1 -0
  33. package/dist/services/user/UserService.js.map +1 -1
  34. package/dist/services/utils/AccessKeyUtilService.js +26 -27
  35. package/dist/services/utils/AccessKeyUtilService.js.map +1 -1
  36. package/dist/utils/accessKeyUtils.js +2 -1
  37. package/dist/utils/accessKeyUtils.js.map +1 -1
  38. package/package.json +6 -3
  39. package/prisma/schema.prisma +4 -5
package/dist/app.js CHANGED
@@ -30,6 +30,8 @@ app.use(["/access_keys"], routes_1.accessKeysRoutes);
30
30
  app.use(["/reset_password"], routes_1.resetPasswordRoutes);
31
31
  app.use(["/one_time_code"], routes_1.oneTimeCodeRoutes);
32
32
  app.use(["/one_time_codes"], routes_1.oneTimeCodesRoutes);
33
+ app.use(["/account"], routes_1.accountRoutes);
34
+ app.use(["/accounts"], routes_1.accountsRoutes);
33
35
  app.use(["/user"], routes_1.userRoutes);
34
36
  app.use(["/users"], routes_1.usersRoutes);
35
37
  app.use(["/user_branch"], routes_1.userBranchRoutes);
package/dist/app.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"app.js","sourceRoot":"","sources":["../src/app.ts"],"names":[],"mappings":";;;;;AAAA,sDAA6B;AAC7B,gDAAwB;AAExB,qCAgCiB;AACjB,mDAA0G;AAC1G,iDAAoD;AAEpD,MAAM,GAAG,GAAG,IAAA,iBAAO,GAAE,CAAC;AAEtB,gBAAgB;AAChB,GAAG,CAAC,GAAG,CAAC,SAAS,EAAE,iBAAO,CAAC,MAAM,CAAC,cAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC;AAEzE,8BAA8B;AAC9B,GAAG,CAAC,GAAG,CAAC,sBAAY,CAAC,CAAC;AAEtB,wCAAwC;AACxC,GAAG,CAAC,GAAG,CAAC,wBAAc,CAAC,CAAC;AAExB,aAAa;AACb,GAAG,CAAC,GAAG,CAAC,iBAAO,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;AACzC,GAAG,CAAC,GAAG,CAAC,iBAAO,CAAC,UAAU,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;AAE/D,iBAAiB;AACjB,GAAG,CAAC,GAAG,CAAC,uBAAa,CAAC,CAAA;AAEtB,mBAAmB;AACnB,GAAG,CAAC,GAAG,CAAC,IAAA,+BAAqB,EAAC;IAC1B,cAAc,EAAE,EAAE;CACrB,CAAC,CAAC,CAAC,CAAC,6BAA6B;AAElC,GAAG,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,EAAE,mBAAU,CAAC,CAAA;AAC9B,GAAG,CAAC,GAAG,CAAC,CAAC,aAAa,CAAC,EAAE,wBAAe,CAAC,CAAA;AACzC,GAAG,CAAC,GAAG,CAAC,CAAC,cAAc,CAAC,EAAE,yBAAgB,CAAC,CAAA;AAC3C,GAAG,CAAC,GAAG,CAAC,CAAC,iBAAiB,CAAC,EAAE,4BAAmB,CAAC,CAAA;AACjD,GAAG,CAAC,GAAG,CAAC,CAAC,gBAAgB,CAAC,EAAE,0BAAiB,CAAC,CAAA;AAC9C,GAAG,CAAC,GAAG,CAAC,CAAC,iBAAiB,CAAC,EAAE,2BAAkB,CAAC,CAAA;AAChD,GAAG,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,EAAE,mBAAU,CAAC,CAAA;AAC9B,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,EAAE,oBAAW,CAAC,CAAA;AAChC,GAAG,CAAC,GAAG,CAAC,CAAC,cAAc,CAAC,EAAE,yBAAgB,CAAC,CAAA;AAC3C,GAAG,CAAC,GAAG,CAAC,CAAC,gBAAgB,CAAC,EAAE,2BAAkB,CAAC,CAAA;AAC/C,GAAG,CAAC,GAAG,CAAC,CAAC,WAAW,CAAC,EAAE,uBAAc,CAAC,CAAA;AACtC,GAAG,CAAC,GAAG,CAAC,CAAC,YAAY,CAAC,EAAE,wBAAe,CAAC,CAAA;AACxC,GAAG,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,EAAE,mBAAU,CAAC,CAAA;AAC9B,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,EAAE,oBAAW,CAAC,CAAA;AAChC,GAAG,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,EAAE,mBAAU,CAAC,CAAA;AAC9B,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,EAAE,oBAAW,CAAC,CAAA;AAChC,GAAG,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,EAAE,qBAAY,CAAC,CAAA;AAClC,GAAG,CAAC,GAAG,CAAC,CAAC,UAAU,CAAC,EAAE,sBAAa,CAAC,CAAA;AACpC,GAAG,CAAC,GAAG,CAAC,CAAC,WAAW,CAAC,EAAE,uBAAc,CAAC,CAAA;AACtC,GAAG,CAAC,GAAG,CAAC,CAAC,YAAY,CAAC,EAAE,wBAAe,CAAC,CAAA;AACxC,GAAG,CAAC,GAAG,CAAC,CAAC,kBAAkB,CAAC,EAAE,6BAAoB,CAAC,CAAA;AACnD,GAAG,CAAC,GAAG,CAAC,CAAC,mBAAmB,CAAC,EAAE,8BAAqB,CAAC,CAAA;AACrD,GAAG,CAAC,GAAG,CAAC,CAAC,UAAU,CAAC,EAAE,sBAAa,CAAC,CAAA;AACpC,GAAG,CAAC,GAAG,CAAC,CAAC,WAAW,CAAC,EAAE,uBAAc,CAAC,CAAA;AACtC,GAAG,CAAC,GAAG,CAAC,CAAC,WAAW,CAAC,EAAE,uBAAc,CAAC,CAAA;AACtC,GAAG,CAAC,GAAG,CAAC,CAAC,aAAa,CAAC,EAAE,yBAAgB,CAAC,CAAA;AAE1C,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,EAAE,iCAAwB,CAAC,CAAA;AAC7C,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,EAAE,4BAAmB,CAAC,CAAA;AAExC,uBAAuB;AACvB,GAAG,CAAC,GAAG,CAAC,qBAAY,CAAC,CAAA;AAErB,kBAAe,GAAG,CAAC","sourcesContent":["import express from \"express\"\nimport path from \"path\";\n\nimport {\n // fileRoutes,\n // filesRoutes,\n // ocrRoutes,\n authRoutes,\n accessKeyRoutes,\n accessKeysRoutes,\n resetPasswordRoutes,\n oneTimeCodeRoutes,\n oneTimeCodesRoutes,\n userRoutes,\n usersRoutes,\n businessRoutes,\n businessesRoutes,\n accountRoutes,\n accountsRoutes,\n fileRoutes,\n filesRoutes,\n userBranchRoutes,\n userBranchesRoutes,\n documentRoutes,\n documentsRoutes,\n itemRoutes,\n itemsRoutes,\n regionRoutes,\n regionsRoutes,\n locationRoutes,\n locationsRoutes,\n injectionFieldRoutes,\n injectionFieldsRoutes,\n changePasswordUtilRoutes,\n accessKeyUtilRoutes\n} from \"@/routes\"\nimport { initialPrisma, validateHeader, validateAuthorization, validateCors } from \"@/middlewares/request\"\nimport { errorHandler } from \"./middlewares/common\";\n\nconst app = express();\n\n// Static Routes\napp.use('/public', express.static(path.join(__dirname, '..', 'public')));\n\n// Enable CORS for all origins\napp.use(validateCors);\n\n// Register global check headers handler\napp.use(validateHeader);\n\n// Middleware\napp.use(express.json({ limit: '15mb' }));\napp.use(express.urlencoded({ limit: '15mb', extended: true }));\n\n// Initial Prisma\napp.use(initialPrisma)\n\n// Protected Routes\napp.use(validateAuthorization({\n excludedRoutes: []\n})); // Validate the Authorization\n\napp.use([\"/auth\"], authRoutes)\napp.use([\"/access_key\"], accessKeyRoutes)\napp.use([\"/access_keys\"], accessKeysRoutes)\napp.use([\"/reset_password\"], resetPasswordRoutes)\napp.use([\"/one_time_code\"], oneTimeCodeRoutes)\napp.use([\"/one_time_codes\"], oneTimeCodesRoutes)\napp.use([\"/user\"], userRoutes)\napp.use([\"/users\"], usersRoutes)\napp.use([\"/user_branch\"], userBranchRoutes)\napp.use([\"/user_branches\"], userBranchesRoutes)\napp.use([\"/document\"], documentRoutes)\napp.use([\"/documents\"], documentsRoutes)\napp.use([\"/item\"], itemRoutes)\napp.use([\"/items\"], itemsRoutes)\napp.use([\"/file\"], fileRoutes)\napp.use([\"/files\"], filesRoutes)\napp.use([\"/region\"], regionRoutes)\napp.use([\"/regions\"], regionsRoutes)\napp.use([\"/location\"], locationRoutes)\napp.use([\"/locations\"], locationsRoutes)\napp.use([\"/injection_field\"], injectionFieldRoutes)\napp.use([\"/injection_fields\"], injectionFieldsRoutes)\napp.use([\"/account\"], accountRoutes)\napp.use([\"/accounts\"], accountsRoutes)\napp.use([\"/business\"], businessRoutes)\napp.use([\"/businesses\"], businessesRoutes)\n\napp.use([\"/utils\"], changePasswordUtilRoutes)\napp.use([\"/utils\"], accessKeyUtilRoutes)\n\n// Global error handler\napp.use(errorHandler)\n\nexport default app;"]}
1
+ {"version":3,"file":"app.js","sourceRoot":"","sources":["../src/app.ts"],"names":[],"mappings":"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","sourcesContent":["import express from \"express\"\nimport path from \"path\";\n\nimport {\n // fileRoutes,\n // filesRoutes,\n // ocrRoutes,\n authRoutes,\n accessKeyRoutes,\n accessKeysRoutes,\n resetPasswordRoutes,\n oneTimeCodeRoutes,\n oneTimeCodesRoutes,\n userRoutes,\n usersRoutes,\n businessRoutes,\n businessesRoutes,\n accountRoutes,\n accountsRoutes,\n fileRoutes,\n filesRoutes,\n userBranchRoutes,\n userBranchesRoutes,\n documentRoutes,\n documentsRoutes,\n itemRoutes,\n itemsRoutes,\n regionRoutes,\n regionsRoutes,\n locationRoutes,\n locationsRoutes,\n injectionFieldRoutes,\n injectionFieldsRoutes,\n changePasswordUtilRoutes,\n accessKeyUtilRoutes\n} from \"@/routes\"\nimport { initialPrisma, validateHeader, validateAuthorization, validateCors } from \"@/middlewares/request\"\nimport { errorHandler } from \"./middlewares/common\";\n\nconst app = express();\n\n// Static Routes\napp.use('/public', express.static(path.join(__dirname, '..', 'public')));\n\n// Enable CORS for all origins\napp.use(validateCors);\n\n// Register global check headers handler\napp.use(validateHeader);\n\n// Middleware\napp.use(express.json({ limit: '15mb' }));\napp.use(express.urlencoded({ limit: '15mb', extended: true }));\n\n// Initial Prisma\napp.use(initialPrisma)\n\n// Protected Routes\napp.use(validateAuthorization({\n excludedRoutes: []\n})); // Validate the Authorization\n\napp.use([\"/auth\"], authRoutes)\napp.use([\"/access_key\"], accessKeyRoutes)\napp.use([\"/access_keys\"], accessKeysRoutes)\napp.use([\"/reset_password\"], resetPasswordRoutes)\napp.use([\"/one_time_code\"], oneTimeCodeRoutes)\napp.use([\"/one_time_codes\"], oneTimeCodesRoutes)\napp.use([\"/account\"], accountRoutes)\napp.use([\"/accounts\"], accountsRoutes)\napp.use([\"/user\"], userRoutes)\napp.use([\"/users\"], usersRoutes)\napp.use([\"/user_branch\"], userBranchRoutes)\napp.use([\"/user_branches\"], userBranchesRoutes)\napp.use([\"/document\"], documentRoutes)\napp.use([\"/documents\"], documentsRoutes)\napp.use([\"/item\"], itemRoutes)\napp.use([\"/items\"], itemsRoutes)\napp.use([\"/file\"], fileRoutes)\napp.use([\"/files\"], filesRoutes)\napp.use([\"/region\"], regionRoutes)\napp.use([\"/regions\"], regionsRoutes)\napp.use([\"/location\"], locationRoutes)\napp.use([\"/locations\"], locationsRoutes)\napp.use([\"/injection_field\"], injectionFieldRoutes)\napp.use([\"/injection_fields\"], injectionFieldsRoutes)\napp.use([\"/account\"], accountRoutes)\napp.use([\"/accounts\"], accountsRoutes)\napp.use([\"/business\"], businessRoutes)\napp.use([\"/businesses\"], businessesRoutes)\n\napp.use([\"/utils\"], changePasswordUtilRoutes)\napp.use([\"/utils\"], accessKeyUtilRoutes)\n\n// Global error handler\napp.use(errorHandler)\n\nexport default app;"]}
@@ -57,7 +57,7 @@ const getAccessKey = async (req, res, next) => {
57
57
  ...defaultServiceProps,
58
58
  accessKeyUserType: defaultServiceProps.isOperator === true ? "operator" : "administrator"
59
59
  });
60
- const data = await accessKeyService.getAccessKey({ id: Number(accessKeyId), datatypes: requestQuery.datatypes, skipFilterAccountId: false });
60
+ const data = await accessKeyService.getAccessKey({ id: Number(accessKeyId), datatypes: requestQuery.datatypes, skipFilterAccountId: false, revealEncryption: false });
61
61
  return (0, utils_1.sendSuccess)(res, data, "Retrieved successfully", getRootName(true));
62
62
  }
63
63
  catch (error) {
@@ -77,7 +77,8 @@ const listAccessKeys = async (req, res, next) => {
77
77
  });
78
78
  const { data, total } = await accessKeyService.listAccessKeys({
79
79
  ...requestQuery,
80
- skipFilterAccountId: false
80
+ skipFilterAccountId: false,
81
+ revealEncryption: false
81
82
  });
82
83
  let response = {
83
84
  [`${getRootName(false)}`]: data,
@@ -1 +1 @@
1
- {"version":3,"file":"accessKeyController.js","sourceRoot":"","sources":["../../../src/controllers/access_key/accessKeyController.ts"],"names":[],"mappings":"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","sourcesContent":["import { NextFunction, Request, Response } from \"express\";\n\nimport { getDefaultServiceProps, sendSuccess, sendError, HTTP_STATUS } from \"@/utils\"\n\nimport { QueryList } from \"@/schema/middleware/route\";\n\nimport { AccessKeyService, AccessKeyCreateProps, AccessKeyRevokeProps } from \"@/services\"\nimport { schemaAccessKeyCreatePayload, schemaAccessKeyRevokePayload } from \"@/schema/payload\";\n\nconst getRootName = (toSingular: boolean) => {\n\n let rootName = toSingular ? \"accessKey\" : \"accessKeys\";\n\n return rootName\n}\n\n/** auth/access_key : create access key */\nexport const createAccessKey = async (req: Request, res: Response, next: NextFunction): Promise<any> => {\n try {\n\n const defaultServiceProps = getDefaultServiceProps(req)\n\n const accessKeyService = AccessKeyService({\n ...defaultServiceProps,\n accessKeyUserType: defaultServiceProps.isOperator === true ? \"operator\" : \"administrator\"\n })\n\n let response: any = {}\n\n let reqScope = req.body.scope\n let reqPayload = req.body.payload\n\n let request = schemaAccessKeyCreatePayload.parse({\n scope: {\n target: reqScope.target,\n action: reqScope.action\n },\n payload: {\n access_key: {\n userId: Number(reqPayload?.access_key?.user_id ?? 0),\n }\n }\n })\n\n let payload: AccessKeyCreateProps = {\n data: {\n userId: request.payload.access_key.userId,\n isDefault: false // default only when create account\n }\n }\n\n response = {\n [`${getRootName(true)}`]: await accessKeyService.createAccessKey(payload)\n }\n\n sendSuccess(res, response, `Access Key created successfully`)\n\n } catch (error: any) {\n next(error)\n }\n}\n\n/** auth/access_key/:accessKeyId : get access key */\nexport const getAccessKey = async (req: Request, res: Response, next: NextFunction): Promise<any> => {\n try {\n\n const { accessKeyId } = req.params;\n const requestQuery = req.query as unknown as QueryList;\n // const requestUserType = userType as BusinessServiceProps[\"userType\"];\n\n const defaultServiceProps = getDefaultServiceProps(req)\n\n const accessKeyService = AccessKeyService({\n ...defaultServiceProps,\n accessKeyUserType: defaultServiceProps.isOperator === true ? \"operator\" : \"administrator\"\n })\n\n const data = await accessKeyService.getAccessKey({ id: Number(accessKeyId), datatypes: requestQuery.datatypes, skipFilterAccountId: false })\n\n return sendSuccess(res, data, \"Retrieved successfully\", getRootName(true));\n\n } catch (error: any) {\n next(error)\n }\n}\n\n/** auth/access_keys : list access keys */\nexport const listAccessKeys = async (req: Request, res: Response, next: NextFunction): Promise<any> => {\n\n try {\n\n const requestQuery = req.query as unknown as QueryList;\n // const requestUserType = req.params.userType as BusinessServiceProps[\"userType\"];\n\n const defaultServiceProps = getDefaultServiceProps(req)\n\n const accessKeyService = AccessKeyService({\n ...defaultServiceProps,\n accessKeyUserType: defaultServiceProps.isOperator === true ? \"operator\" : \"administrator\"\n })\n\n const { data, total } = await accessKeyService.listAccessKeys({\n ...requestQuery,\n skipFilterAccountId: false\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/** auth/access_keys/revoke : revoke access keys */\nexport const revokeAccessKeys = async (req: Request, res: Response, next: NextFunction): Promise<any> => {\n try {\n\n const request = schemaAccessKeyRevokePayload.parse(req.body)\n\n const defaultServiceProps = getDefaultServiceProps(req)\n\n const accessKeyService = AccessKeyService({\n ...defaultServiceProps,\n accessKeyUserType: defaultServiceProps.isOperator === true ? \"operator\" : \"administrator\"\n })\n\n const payload: AccessKeyRevokeProps = {\n accessKeyIds: request.payload.ids.map(i => BigInt(i))\n }\n\n const data = await accessKeyService.revokeAccessKeys(payload);\n\n return sendSuccess(res, data, \"Revoked\", getRootName(false));\n\n } catch (error: any) {\n next(error)\n }\n}\n"]}
1
+ {"version":3,"file":"accessKeyController.js","sourceRoot":"","sources":["../../../src/controllers/access_key/accessKeyController.ts"],"names":[],"mappings":";;;AAEA,mCAAqF;AAIrF,yCAAyF;AACzF,8CAA8F;AAE9F,MAAM,WAAW,GAAG,CAAC,UAAmB,EAAE,EAAE;IAExC,IAAI,QAAQ,GAAG,UAAU,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,YAAY,CAAC;IAEvD,OAAO,QAAQ,CAAA;AACnB,CAAC,CAAA;AAED,0CAA0C;AACnC,MAAM,eAAe,GAAG,KAAK,EAAE,GAAY,EAAE,GAAa,EAAE,IAAkB,EAAgB,EAAE;IACnG,IAAI,CAAC;QAED,MAAM,mBAAmB,GAAG,IAAA,8BAAsB,EAAC,GAAG,CAAC,CAAA;QAEvD,MAAM,gBAAgB,GAAG,IAAA,2BAAgB,EAAC;YACtC,GAAG,mBAAmB;YACtB,iBAAiB,EAAE,mBAAmB,CAAC,UAAU,KAAK,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,eAAe;SAC5F,CAAC,CAAA;QAEF,IAAI,QAAQ,GAAQ,EAAE,CAAA;QAEtB,IAAI,QAAQ,GAAG,GAAG,CAAC,IAAI,CAAC,KAAK,CAAA;QAC7B,IAAI,UAAU,GAAG,GAAG,CAAC,IAAI,CAAC,OAAO,CAAA;QAEjC,IAAI,OAAO,GAAG,sCAA4B,CAAC,KAAK,CAAC;YAC7C,KAAK,EAAE;gBACH,MAAM,EAAE,QAAQ,CAAC,MAAM;gBACvB,MAAM,EAAE,QAAQ,CAAC,MAAM;aAC1B;YACD,OAAO,EAAE;gBACL,UAAU,EAAE;oBACR,MAAM,EAAE,MAAM,CAAC,UAAU,EAAE,UAAU,EAAE,OAAO,IAAI,CAAC,CAAC;iBACvD;aACJ;SACJ,CAAC,CAAA;QAEF,IAAI,OAAO,GAAyB;YAChC,IAAI,EAAE;gBACF,MAAM,EAAE,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,MAAM;gBACzC,SAAS,EAAE,KAAK,CAAC,mCAAmC;aACvD;SACJ,CAAA;QAED,QAAQ,GAAG;YACP,CAAC,GAAG,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,MAAM,gBAAgB,CAAC,eAAe,CAAC,OAAO,CAAC;SAC5E,CAAA;QAED,IAAA,mBAAW,EAAC,GAAG,EAAE,QAAQ,EAAE,iCAAiC,CAAC,CAAA;IAEjE,CAAC;IAAC,OAAO,KAAU,EAAE,CAAC;QAClB,IAAI,CAAC,KAAK,CAAC,CAAA;IACf,CAAC;AACL,CAAC,CAAA;AA3CY,QAAA,eAAe,mBA2C3B;AAED,oDAAoD;AAC7C,MAAM,YAAY,GAAG,KAAK,EAAE,GAAY,EAAE,GAAa,EAAE,IAAkB,EAAgB,EAAE;IAChG,IAAI,CAAC;QAED,MAAM,EAAE,WAAW,EAAE,GAAG,GAAG,CAAC,MAAM,CAAC;QACnC,MAAM,YAAY,GAAG,GAAG,CAAC,KAA6B,CAAC;QACvD,wEAAwE;QAExE,MAAM,mBAAmB,GAAG,IAAA,8BAAsB,EAAC,GAAG,CAAC,CAAA;QAEvD,MAAM,gBAAgB,GAAG,IAAA,2BAAgB,EAAC;YACtC,GAAG,mBAAmB;YACtB,iBAAiB,EAAE,mBAAmB,CAAC,UAAU,KAAK,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,eAAe;SAC5F,CAAC,CAAA;QAEF,MAAM,IAAI,GAAG,MAAM,gBAAgB,CAAC,YAAY,CAAC,EAAE,EAAE,EAAE,MAAM,CAAC,WAAW,CAAC,EAAE,SAAS,EAAE,YAAY,CAAC,SAAS,EAAE,mBAAmB,EAAE,KAAK,EAAE,gBAAgB,EAAE,KAAK,EAAE,CAAC,CAAA;QAErK,OAAO,IAAA,mBAAW,EAAC,GAAG,EAAE,IAAI,EAAE,wBAAwB,EAAE,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC;IAE/E,CAAC;IAAC,OAAO,KAAU,EAAE,CAAC;QAClB,IAAI,CAAC,KAAK,CAAC,CAAA;IACf,CAAC;AACL,CAAC,CAAA;AArBY,QAAA,YAAY,gBAqBxB;AAED,0CAA0C;AACnC,MAAM,cAAc,GAAG,KAAK,EAAE,GAAY,EAAE,GAAa,EAAE,IAAkB,EAAgB,EAAE;IAElG,IAAI,CAAC;QAED,MAAM,YAAY,GAAG,GAAG,CAAC,KAA6B,CAAC;QACvD,mFAAmF;QAEnF,MAAM,mBAAmB,GAAG,IAAA,8BAAsB,EAAC,GAAG,CAAC,CAAA;QAEvD,MAAM,gBAAgB,GAAG,IAAA,2BAAgB,EAAC;YACtC,GAAG,mBAAmB;YACtB,iBAAiB,EAAE,mBAAmB,CAAC,UAAU,KAAK,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,eAAe;SAC5F,CAAC,CAAA;QAEF,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,gBAAgB,CAAC,cAAc,CAAC;YAC1D,GAAG,YAAY;YACf,mBAAmB,EAAE,KAAK;YAC1B,gBAAgB,EAAE,KAAK;SAC1B,CAAC,CAAC;QAEH,IAAI,QAAQ,GAAG;YACX,CAAC,GAAG,WAAW,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,IAAI;YAC/B,KAAK;SACR,CAAA;QAED,OAAO,IAAA,mBAAW,EAAC,GAAG,EAAE,QAAQ,EAAE,wBAAwB,CAAC,CAAC;IAEhE,CAAC;IAAC,OAAO,KAAU,EAAE,CAAC;QAClB,IAAI,CAAC,KAAK,CAAC,CAAA;IACf,CAAC;AACL,CAAC,CAAC;AA9BW,QAAA,cAAc,kBA8BzB;AAEF,mDAAmD;AAC5C,MAAM,gBAAgB,GAAG,KAAK,EAAE,GAAY,EAAE,GAAa,EAAE,IAAkB,EAAgB,EAAE;IACpG,IAAI,CAAC;QAED,MAAM,OAAO,GAAG,sCAA4B,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;QAE5D,MAAM,mBAAmB,GAAG,IAAA,8BAAsB,EAAC,GAAG,CAAC,CAAA;QAEvD,MAAM,gBAAgB,GAAG,IAAA,2BAAgB,EAAC;YACtC,GAAG,mBAAmB;YACtB,iBAAiB,EAAE,mBAAmB,CAAC,UAAU,KAAK,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,eAAe;SAC5F,CAAC,CAAA;QAEF,MAAM,OAAO,GAAyB;YAClC,YAAY,EAAE,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;SACxD,CAAA;QAED,MAAM,IAAI,GAAG,MAAM,gBAAgB,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;QAE9D,OAAO,IAAA,mBAAW,EAAC,GAAG,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC;IAEjE,CAAC;IAAC,OAAO,KAAU,EAAE,CAAC;QAClB,IAAI,CAAC,KAAK,CAAC,CAAA;IACf,CAAC;AACL,CAAC,CAAA;AAvBY,QAAA,gBAAgB,oBAuB5B","sourcesContent":["import { NextFunction, Request, Response } from \"express\";\n\nimport { getDefaultServiceProps, sendSuccess, sendError, HTTP_STATUS } from \"@/utils\"\n\nimport { QueryList } from \"@/schema/middleware/route\";\n\nimport { AccessKeyService, AccessKeyCreateProps, AccessKeyRevokeProps } from \"@/services\"\nimport { schemaAccessKeyCreatePayload, schemaAccessKeyRevokePayload } from \"@/schema/payload\";\n\nconst getRootName = (toSingular: boolean) => {\n\n let rootName = toSingular ? \"accessKey\" : \"accessKeys\";\n\n return rootName\n}\n\n/** auth/access_key : create access key */\nexport const createAccessKey = async (req: Request, res: Response, next: NextFunction): Promise<any> => {\n try {\n\n const defaultServiceProps = getDefaultServiceProps(req)\n\n const accessKeyService = AccessKeyService({\n ...defaultServiceProps,\n accessKeyUserType: defaultServiceProps.isOperator === true ? \"operator\" : \"administrator\"\n })\n\n let response: any = {}\n\n let reqScope = req.body.scope\n let reqPayload = req.body.payload\n\n let request = schemaAccessKeyCreatePayload.parse({\n scope: {\n target: reqScope.target,\n action: reqScope.action\n },\n payload: {\n access_key: {\n userId: Number(reqPayload?.access_key?.user_id ?? 0),\n }\n }\n })\n\n let payload: AccessKeyCreateProps = {\n data: {\n userId: request.payload.access_key.userId,\n isDefault: false // default only when create account\n }\n }\n\n response = {\n [`${getRootName(true)}`]: await accessKeyService.createAccessKey(payload)\n }\n\n sendSuccess(res, response, `Access Key created successfully`)\n\n } catch (error: any) {\n next(error)\n }\n}\n\n/** auth/access_key/:accessKeyId : get access key */\nexport const getAccessKey = async (req: Request, res: Response, next: NextFunction): Promise<any> => {\n try {\n\n const { accessKeyId } = req.params;\n const requestQuery = req.query as unknown as QueryList;\n // const requestUserType = userType as BusinessServiceProps[\"userType\"];\n\n const defaultServiceProps = getDefaultServiceProps(req)\n\n const accessKeyService = AccessKeyService({\n ...defaultServiceProps,\n accessKeyUserType: defaultServiceProps.isOperator === true ? \"operator\" : \"administrator\"\n })\n\n const data = await accessKeyService.getAccessKey({ id: Number(accessKeyId), datatypes: requestQuery.datatypes, skipFilterAccountId: false, revealEncryption: false })\n\n return sendSuccess(res, data, \"Retrieved successfully\", getRootName(true));\n\n } catch (error: any) {\n next(error)\n }\n}\n\n/** auth/access_keys : list access keys */\nexport const listAccessKeys = async (req: Request, res: Response, next: NextFunction): Promise<any> => {\n\n try {\n\n const requestQuery = req.query as unknown as QueryList;\n // const requestUserType = req.params.userType as BusinessServiceProps[\"userType\"];\n\n const defaultServiceProps = getDefaultServiceProps(req)\n\n const accessKeyService = AccessKeyService({\n ...defaultServiceProps,\n accessKeyUserType: defaultServiceProps.isOperator === true ? \"operator\" : \"administrator\"\n })\n\n const { data, total } = await accessKeyService.listAccessKeys({\n ...requestQuery,\n skipFilterAccountId: false,\n revealEncryption: false\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/** auth/access_keys/revoke : revoke access keys */\nexport const revokeAccessKeys = async (req: Request, res: Response, next: NextFunction): Promise<any> => {\n try {\n\n const request = schemaAccessKeyRevokePayload.parse(req.body)\n\n const defaultServiceProps = getDefaultServiceProps(req)\n\n const accessKeyService = AccessKeyService({\n ...defaultServiceProps,\n accessKeyUserType: defaultServiceProps.isOperator === true ? \"operator\" : \"administrator\"\n })\n\n const payload: AccessKeyRevokeProps = {\n accessKeyIds: request.payload.ids.map(i => BigInt(i))\n }\n\n const data = await accessKeyService.revokeAccessKeys(payload);\n\n return sendSuccess(res, data, \"Revoked\", getRootName(false));\n\n } catch (error: any) {\n next(error)\n }\n}\n"]}
@@ -1,3 +1,6 @@
1
1
  export { FeatureResetPasswordProps, FeatureResetPasswordSuccessProps, FeatureResetPasswordRequestProps } from './reset_password/resetPasswordType';
2
2
  export { ResetPasswordHook } from "./reset_password/resetPasswordRegistry";
3
3
  export { registerResetPasswordHook } from "./reset_password/resetPasswordRegister";
4
+ export { FeatureSmtpEmailProps, FeatureSmtpEmailOptions, FeatureSmtpEmailStartSendProps, FeatureSmtpEmailSuccessSendProps } from './smtp_email/smtpEmailType';
5
+ export { SmtpEmailHook } from "./smtp_email/smtpEmailRegistry";
6
+ export { registerSmtpEmailHook } from "./smtp_email/smtpEmailRegister";
@@ -1,8 +1,12 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.registerResetPasswordHook = exports.ResetPasswordHook = void 0;
3
+ exports.registerSmtpEmailHook = exports.SmtpEmailHook = exports.registerResetPasswordHook = exports.ResetPasswordHook = void 0;
4
4
  var resetPasswordRegistry_1 = require("./reset_password/resetPasswordRegistry");
5
5
  Object.defineProperty(exports, "ResetPasswordHook", { enumerable: true, get: function () { return resetPasswordRegistry_1.ResetPasswordHook; } });
6
6
  var resetPasswordRegister_1 = require("./reset_password/resetPasswordRegister");
7
7
  Object.defineProperty(exports, "registerResetPasswordHook", { enumerable: true, get: function () { return resetPasswordRegister_1.registerResetPasswordHook; } });
8
+ var smtpEmailRegistry_1 = require("./smtp_email/smtpEmailRegistry");
9
+ Object.defineProperty(exports, "SmtpEmailHook", { enumerable: true, get: function () { return smtpEmailRegistry_1.SmtpEmailHook; } });
10
+ var smtpEmailRegister_1 = require("./smtp_email/smtpEmailRegister");
11
+ Object.defineProperty(exports, "registerSmtpEmailHook", { enumerable: true, get: function () { return smtpEmailRegister_1.registerSmtpEmailHook; } });
8
12
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/features/index.ts"],"names":[],"mappings":";;;AACA,gFAA0E;AAAjE,0HAAA,iBAAiB,OAAA;AAC1B,gFAAkF;AAAzE,kIAAA,yBAAyB,OAAA","sourcesContent":["export { FeatureResetPasswordProps, FeatureResetPasswordSuccessProps, FeatureResetPasswordRequestProps } from './reset_password/resetPasswordType'\nexport { ResetPasswordHook } from \"./reset_password/resetPasswordRegistry\"\nexport { registerResetPasswordHook } from \"./reset_password/resetPasswordRegister\""]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/features/index.ts"],"names":[],"mappings":";;;AACA,gFAA0E;AAAjE,0HAAA,iBAAiB,OAAA;AAC1B,gFAAkF;AAAzE,kIAAA,yBAAyB,OAAA;AAGlC,oEAA8D;AAArD,kHAAA,aAAa,OAAA;AACtB,oEAAsE;AAA7D,0HAAA,qBAAqB,OAAA","sourcesContent":["export { FeatureResetPasswordProps, FeatureResetPasswordSuccessProps, FeatureResetPasswordRequestProps } from './reset_password/resetPasswordType'\nexport { ResetPasswordHook } from \"./reset_password/resetPasswordRegistry\"\nexport { registerResetPasswordHook } from \"./reset_password/resetPasswordRegister\"\n\nexport { FeatureSmtpEmailProps, FeatureSmtpEmailOptions, FeatureSmtpEmailStartSendProps, FeatureSmtpEmailSuccessSendProps } from './smtp_email/smtpEmailType'\nexport { SmtpEmailHook } from \"./smtp_email/smtpEmailRegistry\"\nexport { registerSmtpEmailHook } from \"./smtp_email/smtpEmailRegister\""]}
@@ -0,0 +1,5 @@
1
+ import { FeatureSmtpEmailProps } from '../../features';
2
+ /**
3
+ * Register consumer-provided hooks for smtp email
4
+ */
5
+ export declare function registerSmtpEmailHook(hooks: FeatureSmtpEmailProps): void;
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.registerSmtpEmailHook = registerSmtpEmailHook;
4
+ const features_1 = require("../../features");
5
+ /**
6
+ * Register consumer-provided hooks for smtp email
7
+ */
8
+ function registerSmtpEmailHook(hooks) {
9
+ Object.assign(features_1.SmtpEmailHook, hooks);
10
+ }
11
+ //# sourceMappingURL=smtpEmailRegister.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"smtpEmailRegister.js","sourceRoot":"","sources":["../../../src/features/smtp_email/smtpEmailRegister.ts"],"names":[],"mappings":";;AAMA,sDAEC;AAPD,yCAA0C;AAE1C;;GAEG;AACH,SAAgB,qBAAqB,CAAC,KAA4B;IAC9D,MAAM,CAAC,MAAM,CAAC,wBAAa,EAAE,KAAK,CAAC,CAAA;AACvC,CAAC","sourcesContent":["import { FeatureSmtpEmailProps } from '@/features'\nimport { SmtpEmailHook } from '@/features'\n\n/**\n * Register consumer-provided hooks for smtp email\n */\nexport function registerSmtpEmailHook(hooks: FeatureSmtpEmailProps) {\n Object.assign(SmtpEmailHook, hooks)\n}"]}
@@ -0,0 +1,2 @@
1
+ import { FeatureSmtpEmailProps } from '../../features';
2
+ export declare const SmtpEmailHook: FeatureSmtpEmailProps;
@@ -0,0 +1,34 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SmtpEmailHook = void 0;
4
+ const utils_1 = require("../../utils");
5
+ // import { OneTimeCodeType, ResetPasswordMethod } from "../../services";
6
+ // Runtime storage for injected hook
7
+ exports.SmtpEmailHook = {
8
+ onSetup: async () => {
9
+ // default
10
+ // const oneTimeCodeType: OneTimeCodeType = "otp";
11
+ // const resetPasswordMethod: ResetPasswordMethod = "email";
12
+ return {
13
+ smtpHost: "",
14
+ smtpPort: 25,
15
+ smtpSecure: true,
16
+ smtpCredential: {
17
+ username: "",
18
+ password: ""
19
+ },
20
+ connectionTimeout: 500,
21
+ };
22
+ },
23
+ onStartSend: async (props) => {
24
+ // Default behavior: just log
25
+ // console.log(`[ResetPasswordService] Default onRequest called for ${JSON.stringify}`)
26
+ (0, utils_1.throwError)(`Invalid settings for onStartSend in SmtpEmailHook`);
27
+ },
28
+ onSuccessSend: async (props) => {
29
+ // Default behavior: log
30
+ // console.log(`[ResetPasswordService] Default onSuccess called for user ${userId}`)
31
+ (0, utils_1.throwError)(`Invalid settings for onSuccessSend in SmtpEmailHook`);
32
+ }
33
+ };
34
+ //# sourceMappingURL=smtpEmailRegistry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"smtpEmailRegistry.js","sourceRoot":"","sources":["../../../src/features/smtp_email/smtpEmailRegistry.ts"],"names":[],"mappings":";;;AACA,mCAAoC;AACpC,qEAAqE;AAErE,oCAAoC;AACvB,QAAA,aAAa,GAA0B;IAChD,OAAO,EAAE,KAAK,IAAsC,EAAE;QAElD,UAAU;QACV,kDAAkD;QAClD,4DAA4D;QAE5D,OAAO;YACH,QAAQ,EAAE,EAAE;YACZ,QAAQ,EAAE,EAAE;YACZ,UAAU,EAAE,IAAI;YAChB,cAAc,EAAE;gBACZ,QAAQ,EAAE,EAAE;gBACZ,QAAQ,EAAE,EAAE;aACf;YACD,iBAAiB,EAAE,GAAG;SACzB,CAAA;IAEL,CAAC;IACD,WAAW,EAAE,KAAK,EAAE,KAAqC,EAAE,EAAE;QACzD,6BAA6B;QAC7B,uFAAuF;QACvF,IAAA,kBAAU,EAAC,mDAAmD,CAAC,CAAA;IACnE,CAAC;IACD,aAAa,EAAE,KAAK,EAAE,KAAuC,EAAE,EAAE;QAC7D,wBAAwB;QACxB,oFAAoF;QACpF,IAAA,kBAAU,EAAC,qDAAqD,CAAC,CAAA;IACrE,CAAC;CACJ,CAAA","sourcesContent":["import { FeatureSmtpEmailProps, FeatureSmtpEmailOptions, FeatureSmtpEmailSuccessSendProps, FeatureSmtpEmailStartSendProps } from '@/features'\nimport { throwError } from '@/utils'\n// import { OneTimeCodeType, ResetPasswordMethod } from \"@/services\";\n\n// Runtime storage for injected hook\nexport const SmtpEmailHook: FeatureSmtpEmailProps = {\n onSetup: async (): Promise<FeatureSmtpEmailOptions> => {\n\n // default\n // const oneTimeCodeType: OneTimeCodeType = \"otp\";\n // const resetPasswordMethod: ResetPasswordMethod = \"email\";\n\n return {\n smtpHost: \"\",\n smtpPort: 25,\n smtpSecure: true,\n smtpCredential: {\n username: \"\",\n password: \"\"\n },\n connectionTimeout: 500,\n }\n\n },\n onStartSend: async (props: FeatureSmtpEmailStartSendProps) => {\n // Default behavior: just log\n // console.log(`[ResetPasswordService] Default onRequest called for ${JSON.stringify}`)\n throwError(`Invalid settings for onStartSend in SmtpEmailHook`)\n },\n onSuccessSend: async (props: FeatureSmtpEmailSuccessSendProps) => {\n // Default behavior: log\n // console.log(`[ResetPasswordService] Default onSuccess called for user ${userId}`)\n throwError(`Invalid settings for onSuccessSend in SmtpEmailHook`)\n }\n}"]}
@@ -0,0 +1,25 @@
1
+ import { SmtpEmailTransporterOptions } from "../../services";
2
+ export type FeatureSmtpEmailOptions = {
3
+ smtpHost: string;
4
+ smtpPort: number;
5
+ smtpSecure: boolean;
6
+ smtpCredential: {
7
+ username: string;
8
+ password: string;
9
+ };
10
+ connectionTimeout: number;
11
+ };
12
+ export type FeatureSmtpEmailStartSendProps = {
13
+ smtpEmailOptions: FeatureSmtpEmailOptions;
14
+ transporterOptions: SmtpEmailTransporterOptions;
15
+ };
16
+ export type FeatureSmtpEmailSuccessSendProps = {
17
+ smtpEmailOptions: FeatureSmtpEmailOptions;
18
+ transporterOptions: SmtpEmailTransporterOptions;
19
+ gatewayDetails: any;
20
+ };
21
+ export type FeatureSmtpEmailProps = {
22
+ onSetup: () => Promise<FeatureSmtpEmailOptions>;
23
+ onStartSend: (payload: FeatureSmtpEmailStartSendProps) => Promise<any>;
24
+ onSuccessSend: (payload: FeatureSmtpEmailSuccessSendProps) => Promise<any>;
25
+ };
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=smtpEmailType.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"smtpEmailType.js","sourceRoot":"","sources":["../../../src/features/smtp_email/smtpEmailType.ts"],"names":[],"mappings":"","sourcesContent":["import { SmtpEmailTransporterOptions } from \"@/services\";\n\nexport type FeatureSmtpEmailOptions = {\n smtpHost: string\n smtpPort: number\n smtpSecure: boolean\n smtpCredential: {\n username: string\n password: string\n },\n connectionTimeout: number\n}\n\nexport type FeatureSmtpEmailStartSendProps = {\n smtpEmailOptions: FeatureSmtpEmailOptions\n transporterOptions: SmtpEmailTransporterOptions\n}\n\nexport type FeatureSmtpEmailSuccessSendProps = {\n smtpEmailOptions: FeatureSmtpEmailOptions\n transporterOptions: SmtpEmailTransporterOptions\n gatewayDetails: any\n}\n\nexport type FeatureSmtpEmailProps = {\n onSetup: () => Promise<FeatureSmtpEmailOptions>,\n onStartSend: (payload: FeatureSmtpEmailStartSendProps) => Promise<any>\n onSuccessSend: (payload: FeatureSmtpEmailSuccessSendProps) => Promise<any>\n}"]}
@@ -14,10 +14,9 @@ export declare const ModelAccessKeyFields: {
14
14
  user_type: "user_type";
15
15
  access_key_id: "access_key_id";
16
16
  key_id: "key_id";
17
- key_secret_hash: "key_secret_hash";
17
+ key_secret_encrypted: "key_secret_encrypted";
18
18
  access_key_status: "access_key_status";
19
19
  is_default: "is_default";
20
- key_secret_encrypted: "key_secret_encrypted";
21
20
  };
22
21
  export type ModelAccessKey = access_keys;
23
22
  export type ModelAccessKeyOmitFields = typeof primaryKey | DefaultOmitFields;
@@ -48,7 +47,7 @@ export type ModelAccessKeyListProps = {
48
47
  limit?: number;
49
48
  };
50
49
  export declare const AccessKeyModel: ({ ...rest }: DefaultServiceProps) => {
51
- primaryKey: "createdatetime" | "createuserid" | "updatedatetime" | "updateuserid" | "isdelete" | "istrash" | "accountid" | "user_id" | "user_type" | "access_key_id" | "key_id" | "key_secret_hash" | "access_key_status" | "is_default" | "key_secret_encrypted";
50
+ primaryKey: "createdatetime" | "createuserid" | "updatedatetime" | "updateuserid" | "isdelete" | "istrash" | "accountid" | "user_id" | "user_type" | "access_key_id" | "key_id" | "key_secret_encrypted" | "access_key_status" | "is_default";
52
51
  getFields: (prefix?: string, excludeKeywords?: string[]) => Promise<{
53
52
  name: string;
54
53
  type: string;
@@ -67,10 +66,9 @@ export declare const AccessKeyModel: ({ ...rest }: DefaultServiceProps) => {
67
66
  user_type: string | null;
68
67
  access_key_id: bigint;
69
68
  key_id: string | null;
70
- key_secret_hash: string;
69
+ key_secret_encrypted: string | null;
71
70
  access_key_status: string | null;
72
71
  is_default: boolean;
73
- key_secret_encrypted: string | null;
74
72
  }>;
75
73
  createMany: ({ dataList, disableRollback, }: {
76
74
  dataList: Omit<any, DefaultOmitFields>[];
@@ -87,10 +85,9 @@ export declare const AccessKeyModel: ({ ...rest }: DefaultServiceProps) => {
87
85
  user_type: string | null;
88
86
  access_key_id: bigint;
89
87
  key_id: string | null;
90
- key_secret_hash: string;
88
+ key_secret_encrypted: string | null;
91
89
  access_key_status: string | null;
92
90
  is_default: boolean;
93
- key_secret_encrypted: string | null;
94
91
  }[]>;
95
92
  get: ({ id, where, include, }: {
96
93
  id?: number;
@@ -108,10 +105,9 @@ export declare const AccessKeyModel: ({ ...rest }: DefaultServiceProps) => {
108
105
  user_type: string | null;
109
106
  access_key_id: bigint;
110
107
  key_id: string | null;
111
- key_secret_hash: string;
108
+ key_secret_encrypted: string | null;
112
109
  access_key_status: string | null;
113
110
  is_default: boolean;
114
- key_secret_encrypted: string | null;
115
111
  } | null>;
116
112
  list: ({ where, orderBy, offset, limit, include }?: any) => Promise<{
117
113
  createdatetime: Date | null;
@@ -125,16 +121,15 @@ export declare const AccessKeyModel: ({ ...rest }: DefaultServiceProps) => {
125
121
  user_type: string | null;
126
122
  access_key_id: bigint;
127
123
  key_id: string | null;
128
- key_secret_hash: string;
124
+ key_secret_encrypted: string | null;
129
125
  access_key_status: string | null;
130
126
  is_default: boolean;
131
- key_secret_encrypted: string | null;
132
127
  }[]>;
133
128
  count: ({ where }?: {
134
129
  where?: Record<string, any>;
135
130
  }) => Promise<number>;
136
131
  aggregate: ({ field, operation, where, }: {
137
- field: "createdatetime" | "createuserid" | "updatedatetime" | "updateuserid" | "isdelete" | "istrash" | "accountid" | "user_id" | "user_type" | "access_key_id" | "key_id" | "key_secret_hash" | "access_key_status" | "is_default" | "key_secret_encrypted";
132
+ field: "createdatetime" | "createuserid" | "updatedatetime" | "updateuserid" | "isdelete" | "istrash" | "accountid" | "user_id" | "user_type" | "access_key_id" | "key_id" | "key_secret_encrypted" | "access_key_status" | "is_default";
138
133
  operation?: "sum" | "avg" | "min" | "max" | "count";
139
134
  where?: Record<string, any>;
140
135
  }) => Promise<number>;
@@ -153,10 +148,9 @@ export declare const AccessKeyModel: ({ ...rest }: DefaultServiceProps) => {
153
148
  user_type: string | null;
154
149
  access_key_id: bigint;
155
150
  key_id: string | null;
156
- key_secret_hash: string;
151
+ key_secret_encrypted: string | null;
157
152
  access_key_status: string | null;
158
153
  is_default: boolean;
159
- key_secret_encrypted: string | null;
160
154
  }>;
161
155
  disableRollback?: Boolean;
162
156
  }) => Promise<{
@@ -171,10 +165,9 @@ export declare const AccessKeyModel: ({ ...rest }: DefaultServiceProps) => {
171
165
  user_type: string | null;
172
166
  access_key_id: bigint;
173
167
  key_id: string | null;
174
- key_secret_hash: string;
168
+ key_secret_encrypted: string | null;
175
169
  access_key_status: string | null;
176
170
  is_default: boolean;
177
- key_secret_encrypted: string | null;
178
171
  }>;
179
172
  updateMany: ({ dataList, disableRollback, }: {
180
173
  dataList: {
@@ -191,10 +184,9 @@ export declare const AccessKeyModel: ({ ...rest }: DefaultServiceProps) => {
191
184
  user_type: string | null;
192
185
  access_key_id: bigint;
193
186
  key_id: string | null;
194
- key_secret_hash: string;
187
+ key_secret_encrypted: string | null;
195
188
  access_key_status: string | null;
196
189
  is_default: boolean;
197
- key_secret_encrypted: string | null;
198
190
  }>;
199
191
  }[];
200
192
  disableRollback?: boolean;
@@ -210,10 +202,9 @@ export declare const AccessKeyModel: ({ ...rest }: DefaultServiceProps) => {
210
202
  user_type: string | null;
211
203
  access_key_id: bigint;
212
204
  key_id: string | null;
213
- key_secret_hash: string;
205
+ key_secret_encrypted: string | null;
214
206
  access_key_status: string | null;
215
207
  is_default: boolean;
216
- key_secret_encrypted: string | null;
217
208
  }[]>;
218
209
  trash: ({ ids }: {
219
210
  ids: number[];
@@ -229,10 +220,9 @@ export declare const AccessKeyModel: ({ ...rest }: DefaultServiceProps) => {
229
220
  user_type: string | null;
230
221
  access_key_id: bigint;
231
222
  key_id: string | null;
232
- key_secret_hash: string;
223
+ key_secret_encrypted: string | null;
233
224
  access_key_status: string | null;
234
225
  is_default: boolean;
235
- key_secret_encrypted: string | null;
236
226
  }[]>;
237
227
  remove: ({ ids, where }: {
238
228
  ids?: number[];
@@ -249,10 +239,9 @@ export declare const AccessKeyModel: ({ ...rest }: DefaultServiceProps) => {
249
239
  user_type: string | null;
250
240
  access_key_id: bigint;
251
241
  key_id: string | null;
252
- key_secret_hash: string;
242
+ key_secret_encrypted: string | null;
253
243
  access_key_status: string | null;
254
244
  is_default: boolean;
255
- key_secret_encrypted: string | null;
256
245
  }[]>;
257
246
  raw: <T = any>(query: string, params?: any[]) => Promise<T[]>;
258
247
  rawExec: (query: string, params?: any[]) => Promise<number>;
@@ -17,9 +17,11 @@ export type AccessKeyServiceProps = DefaultServiceProps & {
17
17
  export type AccessKeyGetProps = QueryGet & {
18
18
  id: number;
19
19
  skipFilterAccountId: boolean;
20
+ revealEncryption: boolean;
20
21
  };
21
22
  export type AccessKeyListProps = QueryList & {
22
23
  skipFilterAccountId: boolean;
24
+ revealEncryption: boolean;
23
25
  };
24
26
  export type AccessKeyCreateProps = {
25
27
  data: {
@@ -33,8 +35,8 @@ export type AccessKeyRevokeProps = {
33
35
  };
34
36
  export declare const AccessKeyService: (props: AccessKeyServiceProps) => {
35
37
  createAccessKey: ({ data }: AccessKeyCreateProps) => Promise<any>;
36
- getAccessKey: ({ id, datatypes, skipFilterAccountId }: AccessKeyGetProps) => Promise<any>;
37
- listAccessKeys: ({ limit, offset, filters, sortfield, sortorder, datatypes, skipFilterAccountId }: AccessKeyListProps) => Promise<{
38
+ getAccessKey: ({ id, datatypes, skipFilterAccountId, revealEncryption }: AccessKeyGetProps) => Promise<any>;
39
+ listAccessKeys: ({ limit, offset, filters, sortfield, sortorder, datatypes, skipFilterAccountId, revealEncryption }: AccessKeyListProps) => Promise<{
38
40
  data: any[];
39
41
  total: number;
40
42
  }>;
@@ -50,10 +52,9 @@ export declare const AccessKeyService: (props: AccessKeyServiceProps) => {
50
52
  user_type: string | null;
51
53
  access_key_id: bigint;
52
54
  key_id: string | null;
53
- key_secret_hash: string;
55
+ key_secret_encrypted: string | null;
54
56
  access_key_status: string | null;
55
57
  is_default: boolean;
56
- key_secret_encrypted: string | null;
57
58
  }>;
58
59
  buildFormattedAccessKey: (keyId: string, secret: string) => string;
59
60
  };
@@ -20,11 +20,10 @@ exports.accessKeyStatus = {
20
20
  active: "active",
21
21
  revoked: "revoked",
22
22
  };
23
- const getCreatePayload = (data, accessKeyUserType, keyId, encryptedSecret, keySecretHash) => {
23
+ const getCreatePayload = (data, accessKeyUserType, keyId, encryptedSecret) => {
24
24
  return {
25
25
  [`${models_1.ModelAccessKeyFields.access_key_status}`]: exports.accessKeyStatus.active,
26
26
  [`${models_1.ModelAccessKeyFields.key_id}`]: keyId,
27
- [`${models_1.ModelAccessKeyFields.key_secret_hash}`]: keySecretHash,
28
27
  [`${models_1.ModelAccessKeyFields.key_secret_encrypted}`]: encryptedSecret,
29
28
  [`${models_1.ModelAccessKeyFields.user_id}`]: Number(data.userId),
30
29
  [`${models_1.ModelAccessKeyFields.user_type}`]: accessKeyUserType,
@@ -37,9 +36,11 @@ let mainSqlSelect = {
37
36
  [`ak.${models_1.ModelAccessKeyFields.user_id}`]: "user_id",
38
37
  [`ak.${models_1.ModelAccessKeyFields.user_type}`]: "user_type",
39
38
  [`ak.${models_1.ModelAccessKeyFields.key_id}`]: "key_id",
40
- [`ak.${models_1.ModelAccessKeyFields.key_secret_encrypted}`]: "key_secret_encrypted",
41
39
  [`ak.${models_1.ModelAccessKeyFields.is_default}`]: "is_default",
42
40
  };
41
+ let mainEncryptedSqlSelect = {
42
+ [`ak.${models_1.ModelAccessKeyFields.key_secret_encrypted}`]: "key_secret_encrypted",
43
+ };
43
44
  let accountSqlSelect = {
44
45
  [`acc.${models_1.ModelAccountFields.account_code}`]: "account_code",
45
46
  [`acc.${models_1.ModelAccountFields.name}`]: "account_name",
@@ -98,14 +99,14 @@ const AccessKeyService = (props) => {
98
99
  const secret = (0, utils_2.generateAccessKeySecret)();
99
100
  const encryptedSecret = (0, utils_1.encryptAccessKeySecret)(encryptionKey, secret);
100
101
  // Optionally, keep a hash if you need verification
101
- const keySecretHash = (0, utils_2.hashAccessKeySecret)(secret);
102
- const _data = getCreatePayload(data, accessKeyUserType, keyId, encryptedSecret, keySecretHash);
102
+ // const keySecretHash = hashAccessKeySecret(secret);
103
+ const _data = getCreatePayload(data, accessKeyUserType, keyId, encryptedSecret);
103
104
  if (!_data) {
104
105
  throw new Error(`Invalid create access key payload: ${JSON.stringify(_data)}`);
105
106
  }
106
107
  const response = await createAccessKeyModel.create({ data: _data });
107
108
  const newAcessKeyId = response?.access_key_id ?? 0;
108
- let dataAccessKey = await getAccessKey({ id: Number(newAcessKeyId), datatypes: [], skipFilterAccountId: false });
109
+ let dataAccessKey = await getAccessKey({ id: Number(newAcessKeyId), datatypes: [], skipFilterAccountId: false, revealEncryption: false });
109
110
  // direct get from model
110
111
  const accessKeyEntity = await createAccessKeyModel.get({ id: Number(newAcessKeyId) });
111
112
  const newKeyId = accessKeyEntity?.key_id ?? "";
@@ -119,7 +120,7 @@ const AccessKeyService = (props) => {
119
120
  const buildFormattedAccessKey = (keyId, secret) => {
120
121
  return `${keyId}.${secret}`;
121
122
  };
122
- const getAccessKey = async ({ id, datatypes = [], skipFilterAccountId = false }) => {
123
+ const getAccessKey = async ({ id, datatypes = [], skipFilterAccountId = false, revealEncryption = false }) => {
123
124
  let { data } = await listAccessKeys({
124
125
  limit: 1,
125
126
  offset: 0,
@@ -127,16 +128,18 @@ const AccessKeyService = (props) => {
127
128
  sortfield: `${models_1.ModelAccessKeyFields.access_key_id}`,
128
129
  sortorder: "ASC",
129
130
  datatypes,
130
- skipFilterAccountId
131
+ skipFilterAccountId,
132
+ revealEncryption
131
133
  });
132
134
  return data[0] ?? null;
133
135
  };
134
- const listAccessKeys = async ({ limit, offset, filters, sortfield, sortorder, datatypes = [], skipFilterAccountId = false }) => {
136
+ const listAccessKeys = async ({ limit, offset, filters, sortfield, sortorder, datatypes = [], skipFilterAccountId = false, revealEncryption = false }) => {
135
137
  let data = [];
136
138
  let sqlSelect = [
137
139
  `COUNT(ak.*) OVER() as filtered_count`,
138
140
  (0, lib_1.buildSqlSelect)(``, mainSqlSelect),
139
141
  (0, lib_1.buildSqlSelect)(``, accountSqlSelect),
142
+ ...(revealEncryption ? [(0, lib_1.buildSqlSelect)(``, mainEncryptedSqlSelect)] : []),
140
143
  (0, lib_1.buildSqlSelect)(``, defaultSqlSelect)
141
144
  ];
142
145
  let sqlRelation = [
@@ -147,9 +150,15 @@ const AccessKeyService = (props) => {
147
150
  let sqlGroupBy = [
148
151
  ...Object.keys(mainSqlSelect),
149
152
  ...Object.keys(accountSqlSelect),
153
+ ...(revealEncryption ? Object.keys(mainEncryptedSqlSelect) : []),
150
154
  ...Object.keys(defaultSqlSelect)
151
155
  ];
152
- let filterColumns = { ...mainSqlSelect, ...accountSqlSelect, ...defaultSqlSelect };
156
+ let filterColumns = {
157
+ ...mainSqlSelect,
158
+ ...accountSqlSelect,
159
+ ...(revealEncryption ? mainEncryptedSqlSelect : {}),
160
+ ...defaultSqlSelect
161
+ };
153
162
  let sqlWhere = [
154
163
  `ak.isdelete = false`,
155
164
  `ak.istrash = false`,
@@ -184,13 +193,35 @@ const AccessKeyService = (props) => {
184
193
  // if (!_data) {
185
194
  // throw new Error(`Invalid update business payload: ${JSON.stringify(_data)}`);
186
195
  // }
196
+ // retrieve the accessKeysIds
197
+ const { data: accessKeys } = await listAccessKeys({
198
+ limit: accessKeyIds.length,
199
+ offset: 0,
200
+ filters: [{
201
+ field: `${models_1.ModelAccessKeyFields.access_key_id}`,
202
+ operator: "where_in",
203
+ value: accessKeyIds
204
+ }],
205
+ sortfield: `${models_1.ModelAccessKeyFields.access_key_id}`,
206
+ sortorder: "ASC",
207
+ datatypes: [],
208
+ skipFilterAccountId: false,
209
+ revealEncryption: false
210
+ });
211
+ // console.log('accessKeys', accessKeys)
212
+ // validate access keys is not default
213
+ const validateIsDefault = accessKeys.filter(i => i.is_default === true);
214
+ if (validateIsDefault.length > 0) {
215
+ throw new Error(`Found Access keys is default restricted to revoke: ${validateIsDefault.map(i => i.access_key_id)}`);
216
+ }
187
217
  const accessKeyUserType = isOperator === true ? "operator" : "administrator";
188
218
  let response = await accessKeyModel.update({
189
219
  where: {
190
220
  [`${models_1.ModelAccessKeyFields.access_key_id}`]: {
191
221
  in: accessKeyIds
192
222
  },
193
- [`${models_1.ModelAccessKeyFields.user_type}`]: accessKeyUserType
223
+ [`${models_1.ModelAccessKeyFields.user_type}`]: accessKeyUserType,
224
+ [`${models_1.ModelAccessKeyFields.is_default}`]: false // default must remain
194
225
  },
195
226
  data: {
196
227
  [`${models_1.ModelAccessKeyFields.access_key_status}`]: exports.accessKeyStatus.revoked