storemw-core-api 1.0.167 → 1.0.169

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.
@@ -16,6 +16,6 @@ export { registerFileStorageHook } from "./file_storage/fileStorageRegister";
16
16
  export { FeatureUserMeProps, FeatureUserMeRequestGetProps, FeatureUserMeRequestUpdateProps, FeatureUserMeSuccessUpdateProps, FeatureUserMeSuccessChangePasswordProps, FeatureUserMeSuccessRemoveProps } from './user_me/userMeType';
17
17
  export { UserMeHook } from "./user_me/userMeRegistry";
18
18
  export { registerUserMeHook } from "./user_me/userMeRegister";
19
- export { FeatureSchedulerSqlProps, FeatureSchedulerSqlSetup, FeatureSchedulerSqlSetupItem, FeatureSchedulerSqlSetupItemConnection, FeatureSchedulerSqlSetupItemQuery, FeatureSchedulerSqlSuccessExecuteProps, FeatureSchedulerSqlFailExecuteProps } from './scheduler_sql/schedulerSqlType';
19
+ export { FeatureSchedulerSqlProps, FeatureSchedulerSqlSetup, FeatureSchedulerSqlSetupItem, FeatureSchedulerSqlSetupItemQuery, FeatureSchedulerSqlSuccessExecuteProps, FeatureSchedulerSqlFailExecuteProps } from './scheduler_sql/schedulerSqlType';
20
20
  export { SchedulerSqlHook } from "./scheduler_sql/schedulerSqlRegistry";
21
21
  export { registerSchedulerSqlHook } from "./scheduler_sql/schedulerSqlRegister";
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/features/index.ts"],"names":[],"mappings":";;;AACA,uEAAiE;AAAxD,oHAAA,cAAc,OAAA;AACvB,uEAAyE;AAAhE,4HAAA,sBAAsB,OAAA;AAG/B,oEAA8D;AAArD,kHAAA,aAAa,OAAA;AACtB,oEAAsE;AAA7D,0HAAA,qBAAqB,OAAA;AAG9B,gFAA0E;AAAjE,0HAAA,iBAAiB,OAAA;AAC1B,gFAAkF;AAAzE,kIAAA,yBAAyB,OAAA;AAGlC,oEAA8D;AAArD,kHAAA,aAAa,OAAA;AACtB,oEAAsE;AAA7D,0HAAA,qBAAqB,OAAA;AAG9B,0EAAoE;AAA3D,sHAAA,eAAe,OAAA;AACxB,0EAA4E;AAAnE,8HAAA,uBAAuB,OAAA;AAGhC,2DAAqD;AAA5C,4GAAA,UAAU,OAAA;AACnB,2DAA6D;AAApD,oHAAA,kBAAkB,OAAA;AAG3B,6EAAuE;AAA9D,wHAAA,gBAAgB,OAAA;AACzB,6EAA+E;AAAtE,gIAAA,wBAAwB,OAAA","sourcesContent":["export { FeatureCoreConfigProps, FeatureCoreConfigOptions } from './core_config/coreConfigType'\nexport { CoreConfigHook } from \"./core_config/coreConfigRegistry\"\nexport { registerCoreConfigHook } from \"./core_config/coreConfigRegister\"\n\nexport { FeatureAuthTokenProps, FeatureAuthTokenSuccessAuthenticateProps } from './auth_token/authTokenType'\nexport { AuthTokenHook } from \"./auth_token/authTokenRegistry\"\nexport { registerAuthTokenHook } from \"./auth_token/authTokenRegister\"\n\nexport { FeatureResetPasswordProps, FeatureResetPasswordSuccessProps, FeatureResetPasswordRequestProps } from './reset_password/resetPasswordType'\nexport { ResetPasswordHook } from \"./reset_password/resetPasswordRegistry\"\nexport { registerResetPasswordHook } from \"./reset_password/resetPasswordRegister\"\n\nexport { FeatureSmtpEmailProps, FeatureSmtpEmailOptions, FeatureSmtpEmailHbsOptions, FeatureSmtpEmailStartSendProps, FeatureSmtpEmailSuccessSendProps } from './smtp_email/smtpEmailType'\nexport { SmtpEmailHook } from \"./smtp_email/smtpEmailRegistry\"\nexport { registerSmtpEmailHook } from \"./smtp_email/smtpEmailRegister\"\n\nexport { FeatureFileStorageProps, FeatureFileStorageOptions, FeatureFileStorageConfiguration, FeatureFileStorageLocalOptions, FeatureFileStorageGoogleCloudOptions, FeatureFileStorageStartUploadProps, FeatureFileStorageSuccessUploadProps } from './file_storage/fileStorageType'\nexport { FileStorageHook } from \"./file_storage/fileStorageRegistry\"\nexport { registerFileStorageHook } from \"./file_storage/fileStorageRegister\"\n\nexport { FeatureUserMeProps, FeatureUserMeRequestGetProps, FeatureUserMeRequestUpdateProps, FeatureUserMeSuccessUpdateProps, FeatureUserMeSuccessChangePasswordProps, FeatureUserMeSuccessRemoveProps } from './user_me/userMeType'\nexport { UserMeHook } from \"./user_me/userMeRegistry\"\nexport { registerUserMeHook } from \"./user_me/userMeRegister\"\n\nexport { FeatureSchedulerSqlProps, FeatureSchedulerSqlSetup, FeatureSchedulerSqlSetupItem, FeatureSchedulerSqlSetupItemConnection, FeatureSchedulerSqlSetupItemQuery, FeatureSchedulerSqlSuccessExecuteProps, FeatureSchedulerSqlFailExecuteProps } from './scheduler_sql/schedulerSqlType'\nexport { SchedulerSqlHook } from \"./scheduler_sql/schedulerSqlRegistry\"\nexport { registerSchedulerSqlHook } from \"./scheduler_sql/schedulerSqlRegister\""]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/features/index.ts"],"names":[],"mappings":";;;AACA,uEAAiE;AAAxD,oHAAA,cAAc,OAAA;AACvB,uEAAyE;AAAhE,4HAAA,sBAAsB,OAAA;AAG/B,oEAA8D;AAArD,kHAAA,aAAa,OAAA;AACtB,oEAAsE;AAA7D,0HAAA,qBAAqB,OAAA;AAG9B,gFAA0E;AAAjE,0HAAA,iBAAiB,OAAA;AAC1B,gFAAkF;AAAzE,kIAAA,yBAAyB,OAAA;AAGlC,oEAA8D;AAArD,kHAAA,aAAa,OAAA;AACtB,oEAAsE;AAA7D,0HAAA,qBAAqB,OAAA;AAG9B,0EAAoE;AAA3D,sHAAA,eAAe,OAAA;AACxB,0EAA4E;AAAnE,8HAAA,uBAAuB,OAAA;AAGhC,2DAAqD;AAA5C,4GAAA,UAAU,OAAA;AACnB,2DAA6D;AAApD,oHAAA,kBAAkB,OAAA;AAG3B,6EAAuE;AAA9D,wHAAA,gBAAgB,OAAA;AACzB,6EAA+E;AAAtE,gIAAA,wBAAwB,OAAA","sourcesContent":["export { FeatureCoreConfigProps, FeatureCoreConfigOptions } from './core_config/coreConfigType'\nexport { CoreConfigHook } from \"./core_config/coreConfigRegistry\"\nexport { registerCoreConfigHook } from \"./core_config/coreConfigRegister\"\n\nexport { FeatureAuthTokenProps, FeatureAuthTokenSuccessAuthenticateProps } from './auth_token/authTokenType'\nexport { AuthTokenHook } from \"./auth_token/authTokenRegistry\"\nexport { registerAuthTokenHook } from \"./auth_token/authTokenRegister\"\n\nexport { FeatureResetPasswordProps, FeatureResetPasswordSuccessProps, FeatureResetPasswordRequestProps } from './reset_password/resetPasswordType'\nexport { ResetPasswordHook } from \"./reset_password/resetPasswordRegistry\"\nexport { registerResetPasswordHook } from \"./reset_password/resetPasswordRegister\"\n\nexport { FeatureSmtpEmailProps, FeatureSmtpEmailOptions, FeatureSmtpEmailHbsOptions, FeatureSmtpEmailStartSendProps, FeatureSmtpEmailSuccessSendProps } from './smtp_email/smtpEmailType'\nexport { SmtpEmailHook } from \"./smtp_email/smtpEmailRegistry\"\nexport { registerSmtpEmailHook } from \"./smtp_email/smtpEmailRegister\"\n\nexport { FeatureFileStorageProps, FeatureFileStorageOptions, FeatureFileStorageConfiguration, FeatureFileStorageLocalOptions, FeatureFileStorageGoogleCloudOptions, FeatureFileStorageStartUploadProps, FeatureFileStorageSuccessUploadProps } from './file_storage/fileStorageType'\nexport { FileStorageHook } from \"./file_storage/fileStorageRegistry\"\nexport { registerFileStorageHook } from \"./file_storage/fileStorageRegister\"\n\nexport { FeatureUserMeProps, FeatureUserMeRequestGetProps, FeatureUserMeRequestUpdateProps, FeatureUserMeSuccessUpdateProps, FeatureUserMeSuccessChangePasswordProps, FeatureUserMeSuccessRemoveProps } from './user_me/userMeType'\nexport { UserMeHook } from \"./user_me/userMeRegistry\"\nexport { registerUserMeHook } from \"./user_me/userMeRegister\"\n\nexport { FeatureSchedulerSqlProps, FeatureSchedulerSqlSetup, FeatureSchedulerSqlSetupItem, FeatureSchedulerSqlSetupItemQuery, FeatureSchedulerSqlSuccessExecuteProps, FeatureSchedulerSqlFailExecuteProps } from './scheduler_sql/schedulerSqlType'\nexport { SchedulerSqlHook } from \"./scheduler_sql/schedulerSqlRegistry\"\nexport { registerSchedulerSqlHook } from \"./scheduler_sql/schedulerSqlRegister\""]}
@@ -1,3 +1,3 @@
1
1
  import { FeatureSchedulerSqlProps } from './schedulerSqlType';
2
- export type SchedulerSqlTypes = "replication-status" | "health-check" | "db-size-check" | "account-list";
2
+ export type SchedulerSqlTypes = keyof {};
3
3
  export declare const SchedulerSqlHook: FeatureSchedulerSqlProps<SchedulerSqlTypes>;
@@ -3,40 +3,49 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.SchedulerSqlHook = void 0;
4
4
  // import { OneTimeCodeType, ResetPasswordMethod } from "../../services";
5
5
  const utils_1 = require("../../utils");
6
+ // export type SchedulerSqlTypes = {}
7
+ // | "replication-status"
8
+ // | "health-check"
9
+ // | "db-size-check"
10
+ // | "account-list"
6
11
  // Runtime scheduler sql for injected hook
7
12
  exports.SchedulerSqlHook = {
13
+ // onSetup: (): FeatureSchedulerSqlSetup<SchedulerSqlTypes> => {
8
14
  onSetup: () => {
9
- return {
10
- "replication-status": {
11
- query: {
12
- raw: `SELECT REPLICA STATUS`
13
- }
14
- },
15
- "db-size-check": {
16
- query: {
17
- raw: `SELECT pg_size_pretty(pg_database_size('smw_db'));`
18
- }
19
- },
20
- "account-list": {
21
- query: {
22
- raw: `select * from accounts;`
23
- }
24
- },
25
- "health-check": {
26
- query: {
27
- raw: `SELECT pg_size_pretty(pg_database_size('smw_db'))`
28
- },
29
- connection: {
30
- provider: "postgresql",
31
- host: "1.1.1.1",
32
- database: "sample_db",
33
- port: 5978,
34
- username: "wwpgsql",
35
- password: "xxx",
36
- ssl: false
37
- }
38
- }
39
- };
15
+ return {};
16
+ // const { prisma } = require("../../lib"); // lazy require
17
+ // return {
18
+ // "replication-status": {
19
+ // query: {
20
+ // raw: `SELECT REPLICA STATUS`
21
+ // }
22
+ // },
23
+ // "db-size-check": {
24
+ // query: {
25
+ // raw: `SELECT pg_size_pretty(pg_database_size('smw_db'));`
26
+ // }
27
+ // },
28
+ // "account-list": {
29
+ // query: {
30
+ // raw: `select * from accounts;`
31
+ // }
32
+ // },
33
+ // "health-check": {
34
+ // query: {
35
+ // raw: `SELECT pg_size_pretty(pg_database_size('smw_db'))`
36
+ // },
37
+ // prismaClient: prisma,
38
+ // // connection: {
39
+ // // provider: "postgresql",
40
+ // // host: "1.1.1.1",
41
+ // // database: "sample_db",
42
+ // // port: 5978,
43
+ // // username: "wwpgsql",
44
+ // // password: "xxx",
45
+ // // ssl: false
46
+ // // }
47
+ // }
48
+ // }
40
49
  },
41
50
  onSuccessExecute: async (props) => {
42
51
  // Default behavior: log
@@ -1 +1 @@
1
- {"version":3,"file":"schedulerSqlRegistry.js","sourceRoot":"","sources":["../../../src/features/scheduler_sql/schedulerSqlRegistry.ts"],"names":[],"mappings":";;;AAMA,yEAAyE;AAEzE,mCAAoC;AAQpC,0CAA0C;AAC7B,QAAA,gBAAgB,GAAgD;IACzE,OAAO,EAAE,GAAgD,EAAE;QAEvD,OAAO;YACH,oBAAoB,EAAE;gBAClB,KAAK,EAAE;oBACH,GAAG,EAAE,uBAAuB;iBAC/B;aACJ;YACD,eAAe,EAAE;gBACb,KAAK,EAAE;oBACH,GAAG,EAAE,oDAAoD;iBAC5D;aACJ;YACD,cAAc,EAAE;gBACZ,KAAK,EAAE;oBACH,GAAG,EAAE,yBAAyB;iBACjC;aACJ;YACD,cAAc,EAAE;gBACZ,KAAK,EAAE;oBACH,GAAG,EAAE,mDAAmD;iBAC3D;gBACD,UAAU,EAAE;oBACR,QAAQ,EAAE,YAAY;oBACtB,IAAI,EAAE,SAAS;oBACf,QAAQ,EAAE,WAAW;oBACrB,IAAI,EAAE,IAAI;oBACV,QAAQ,EAAE,SAAS;oBACnB,QAAQ,EAAE,KAAK;oBACf,GAAG,EAAE,KAAK;iBACb;aACJ;SACJ,CAAA;IAEL,CAAC;IACD,gBAAgB,EAAE,KAAK,EAAE,KAA6C,EAAE,EAAE;QACtE,wBAAwB;QACxB,IAAA,kBAAU,EAAC,2DAA2D,CAAC,CAAA;IAC3E,CAAC;IACD,aAAa,EAAE,KAAK,EAAE,KAA0C,EAAE,EAAE;QAChE,wBAAwB;QACxB,IAAA,kBAAU,EAAC,wDAAwD,CAAC,CAAA;IACxE,CAAC;CACJ,CAAA","sourcesContent":["import {\n FeatureSchedulerSqlProps,\n FeatureSchedulerSqlSetup,\n FeatureSchedulerSqlSuccessExecuteProps,\n FeatureSchedulerSqlFailExecuteProps\n} from './schedulerSqlType'\n// import { OneTimeCodeType, ResetPasswordMethod } from \"../../services\";\n\nimport { throwError } from '@/utils'\n\nexport type SchedulerSqlTypes =\n | \"replication-status\"\n | \"health-check\"\n | \"db-size-check\"\n | \"account-list\"\n\n// Runtime scheduler sql for injected hook\nexport const SchedulerSqlHook: FeatureSchedulerSqlProps<SchedulerSqlTypes> = {\n onSetup: (): FeatureSchedulerSqlSetup<SchedulerSqlTypes> => {\n\n return {\n \"replication-status\": {\n query: {\n raw: `SELECT REPLICA STATUS`\n }\n },\n \"db-size-check\": {\n query: {\n raw: `SELECT pg_size_pretty(pg_database_size('smw_db'));`\n }\n },\n \"account-list\": {\n query: {\n raw: `select * from accounts;`\n }\n },\n \"health-check\": {\n query: {\n raw: `SELECT pg_size_pretty(pg_database_size('smw_db'))`\n },\n connection: {\n provider: \"postgresql\",\n host: \"1.1.1.1\",\n database: \"sample_db\",\n port: 5978,\n username: \"wwpgsql\",\n password: \"xxx\",\n ssl: false\n }\n }\n }\n\n },\n onSuccessExecute: async (props: FeatureSchedulerSqlSuccessExecuteProps) => {\n // Default behavior: log\n throwError(`Invalid settings for onSuccessExecute in SchedulerSqlHook`)\n },\n onFailExecute: async (props: FeatureSchedulerSqlFailExecuteProps) => {\n // Default behavior: log\n throwError(`Invalid settings for onFailExecute in SchedulerSqlHook`)\n }\n}"]}
1
+ {"version":3,"file":"schedulerSqlRegistry.js","sourceRoot":"","sources":["../../../src/features/scheduler_sql/schedulerSqlRegistry.ts"],"names":[],"mappings":";;;AAMA,yEAAyE;AAEzE,mCAAoC;AAIpC,qCAAqC;AACrC,yBAAyB;AACzB,mBAAmB;AACnB,oBAAoB;AACpB,mBAAmB;AAEnB,0CAA0C;AAC7B,QAAA,gBAAgB,GAAgD;IACzE,gEAAgE;IAChE,OAAO,EAAE,GAAG,EAAE;QAEV,OAAO,EAAE,CAAA;QAET,2DAA2D;QAE3D,WAAW;QACX,8BAA8B;QAC9B,mBAAmB;QACnB,2CAA2C;QAC3C,YAAY;QACZ,SAAS;QACT,yBAAyB;QACzB,mBAAmB;QACnB,wEAAwE;QACxE,YAAY;QACZ,SAAS;QACT,wBAAwB;QACxB,mBAAmB;QACnB,6CAA6C;QAC7C,YAAY;QACZ,SAAS;QACT,wBAAwB;QACxB,mBAAmB;QACnB,uEAAuE;QACvE,aAAa;QACb,gCAAgC;QAChC,2BAA2B;QAC3B,yCAAyC;QACzC,kCAAkC;QAClC,wCAAwC;QACxC,6BAA6B;QAC7B,sCAAsC;QACtC,kCAAkC;QAClC,4BAA4B;QAC5B,eAAe;QACf,QAAQ;QACR,IAAI;IAER,CAAC;IACD,gBAAgB,EAAE,KAAK,EAAE,KAA6C,EAAE,EAAE;QACtE,wBAAwB;QACxB,IAAA,kBAAU,EAAC,2DAA2D,CAAC,CAAA;IAC3E,CAAC;IACD,aAAa,EAAE,KAAK,EAAE,KAA0C,EAAE,EAAE;QAChE,wBAAwB;QACxB,IAAA,kBAAU,EAAC,wDAAwD,CAAC,CAAA;IACxE,CAAC;CACJ,CAAA","sourcesContent":["import {\n FeatureSchedulerSqlProps,\n FeatureSchedulerSqlSetup,\n FeatureSchedulerSqlSuccessExecuteProps,\n FeatureSchedulerSqlFailExecuteProps\n} from './schedulerSqlType'\n// import { OneTimeCodeType, ResetPasswordMethod } from \"../../services\";\n\nimport { throwError } from '@/utils'\n\nexport type SchedulerSqlTypes = keyof {}\n\n// export type SchedulerSqlTypes = {}\n// | \"replication-status\"\n// | \"health-check\"\n// | \"db-size-check\"\n// | \"account-list\"\n\n// Runtime scheduler sql for injected hook\nexport const SchedulerSqlHook: FeatureSchedulerSqlProps<SchedulerSqlTypes> = {\n // onSetup: (): FeatureSchedulerSqlSetup<SchedulerSqlTypes> => {\n onSetup: () => {\n\n return {}\n\n // const { prisma } = require(\"../../lib\"); // lazy require\n\n // return {\n // \"replication-status\": {\n // query: {\n // raw: `SELECT REPLICA STATUS`\n // }\n // },\n // \"db-size-check\": {\n // query: {\n // raw: `SELECT pg_size_pretty(pg_database_size('smw_db'));`\n // }\n // },\n // \"account-list\": {\n // query: {\n // raw: `select * from accounts;`\n // }\n // },\n // \"health-check\": {\n // query: {\n // raw: `SELECT pg_size_pretty(pg_database_size('smw_db'))`\n // },\n // prismaClient: prisma,\n // // connection: {\n // // provider: \"postgresql\",\n // // host: \"1.1.1.1\",\n // // database: \"sample_db\",\n // // port: 5978,\n // // username: \"wwpgsql\",\n // // password: \"xxx\",\n // // ssl: false\n // // }\n // }\n // }\n\n },\n onSuccessExecute: async (props: FeatureSchedulerSqlSuccessExecuteProps) => {\n // Default behavior: log\n throwError(`Invalid settings for onSuccessExecute in SchedulerSqlHook`)\n },\n onFailExecute: async (props: FeatureSchedulerSqlFailExecuteProps) => {\n // Default behavior: log\n throwError(`Invalid settings for onFailExecute in SchedulerSqlHook`)\n }\n}"]}
@@ -1,19 +1,13 @@
1
1
  import { FeatureCallbackProps } from "../../utils";
2
- export type FeatureSchedulerSqlSetupItemConnection = {
3
- provider: "mysql" | "postgresql";
4
- host: string;
5
- port: number;
6
- database: string;
7
- username: string;
8
- password: string;
9
- ssl?: boolean;
10
- };
11
2
  export type FeatureSchedulerSqlSetupItemQuery = {
12
3
  raw: string;
13
4
  };
5
+ export type FeatureSchedulerPrismaClient = {
6
+ $queryRawUnsafe: (...args: any[]) => Promise<any>;
7
+ };
14
8
  export type FeatureSchedulerSqlSetupItem = {
15
- connection?: FeatureSchedulerSqlSetupItemConnection;
16
9
  query: FeatureSchedulerSqlSetupItemQuery;
10
+ prismaClient?: FeatureSchedulerPrismaClient;
17
11
  };
18
12
  export type FeatureSchedulerSqlSuccessExecuteProps = FeatureCallbackProps<{
19
13
  schedulerSql: any;
@@ -1 +1 @@
1
- {"version":3,"file":"schedulerSqlType.js","sourceRoot":"","sources":["../../../src/features/scheduler_sql/schedulerSqlType.ts"],"names":[],"mappings":"","sourcesContent":["import { OneTimeCodeType } from \"../../services\";\n\nimport { FeatureCallbackProps } from \"@/utils\"\n\nexport type FeatureSchedulerSqlSetupItemConnection = {\n provider: \"mysql\" | \"postgresql\"\n host: string\n port: number\n database: string\n username: string\n password: string\n ssl?: boolean\n}\n\nexport type FeatureSchedulerSqlSetupItemQuery = {\n raw: string\n // timeoutMs?: number\n}\n\nexport type FeatureSchedulerSqlSetupItem = {\n connection?: FeatureSchedulerSqlSetupItemConnection,\n query: FeatureSchedulerSqlSetupItemQuery\n // options?: {\n // retryAttempts?: number\n // retryDelayMs?: number\n // readOnly?: boolean\n // }\n}\n\nexport type FeatureSchedulerSqlSuccessExecuteProps = FeatureCallbackProps<{\n schedulerSql: any\n}>\n\nexport type FeatureSchedulerSqlFailExecuteProps = FeatureCallbackProps<{\n schedulerSql: any\n}>\n\nexport type FeatureSchedulerSqlSetup<TType extends string> = {\n [K in TType]: FeatureSchedulerSqlSetupItem\n}\n\nexport type FeatureSchedulerSqlProps<TType extends string> = {\n onSetup: () => FeatureSchedulerSqlSetup<TType>,\n // onRequest: (props: FeatureSchedulerSqlRequestProps) => Promise<any>\n onSuccessExecute: (props: FeatureSchedulerSqlSuccessExecuteProps) => Promise<any>,\n onFailExecute: (props: FeatureSchedulerSqlFailExecuteProps) => Promise<any>\n}"]}
1
+ {"version":3,"file":"schedulerSqlType.js","sourceRoot":"","sources":["../../../src/features/scheduler_sql/schedulerSqlType.ts"],"names":[],"mappings":"","sourcesContent":["import { FeatureCallbackProps } from \"@/utils\"\n// import type { PrismaClient } from '@prisma/client'\n\n// export type FeatureSchedulerSqlSetupItemConnection = {\n// provider: \"mysql\" | \"postgresql\"\n// host: string\n// port: number\n// database: string\n// username: string\n// password: string\n// ssl?: boolean\n// }\n\nexport type FeatureSchedulerSqlSetupItemQuery = {\n raw: string\n // timeoutMs?: number\n}\n\nexport type FeatureSchedulerPrismaClient = {\n $queryRawUnsafe: (...args: any[]) => Promise<any>\n}\n\nexport type FeatureSchedulerSqlSetupItem = {\n // connection?: FeatureSchedulerSqlSetupItemConnection,\n query: FeatureSchedulerSqlSetupItemQuery,\n prismaClient?: FeatureSchedulerPrismaClient\n}\n\nexport type FeatureSchedulerSqlSuccessExecuteProps = FeatureCallbackProps<{\n schedulerSql: any\n}>\n\nexport type FeatureSchedulerSqlFailExecuteProps = FeatureCallbackProps<{\n schedulerSql: any\n}>\n\nexport type FeatureSchedulerSqlSetup<TType extends string> = {\n [K in TType]: FeatureSchedulerSqlSetupItem\n}\n\nexport type FeatureSchedulerSqlProps<TType extends string> = {\n onSetup: () => FeatureSchedulerSqlSetup<TType>,\n // onRequest: (props: FeatureSchedulerSqlRequestProps) => Promise<any>\n onSuccessExecute: (props: FeatureSchedulerSqlSuccessExecuteProps) => Promise<any>,\n onFailExecute: (props: FeatureSchedulerSqlFailExecuteProps) => Promise<any>\n}"]}
@@ -15,7 +15,6 @@ export declare const SchedulerSqlService: (props: SchedulerSqlServiceProps) => {
15
15
  executeSchedulerSql: ({ schedulerSqlKey }: SchedulerSqlExecuteProps) => Promise<{
16
16
  data: any;
17
17
  scheduler_sql_key: string;
18
- custom_connection: boolean;
19
18
  }>;
20
19
  listSchedulerSqls: ({ limit, offset, filters, sortfield, sortorder }: SchedulerSqlListProps) => Promise<{
21
20
  data: any;
@@ -3,41 +3,41 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.SchedulerSqlService = void 0;
4
4
  const utils_1 = require("../../utils");
5
5
  const models_1 = require("../../models");
6
- const client_1 = require("@prisma/client");
7
6
  const utils_2 = require("../../utils");
8
7
  const lib_1 = require("../../lib");
9
8
  const features_1 = require("../../features");
10
9
  const lib_2 = require("../../lib");
11
- const prismaCache = new Map();
10
+ // const prismaCache = new Map<string, PrismaClient>()
12
11
  const { relationKeys, sqlRelationMaps } = (0, lib_1.getSchedulerLogSqlRelationMaps)();
13
12
  let mainSqlSelect = (0, lib_2.buildSchedulerLogMainSqlSelect)();
14
13
  let defaultSqlSelect = (0, lib_2.buildSchedulerLogDefaultSqlSelect)();
15
14
  const SchedulerSqlService = (props) => {
16
15
  const { ...rest } = props;
17
16
  const schedulerLogModel = (0, models_1.SchedulerLogModel)({ ...rest });
18
- const buildPrismaUrl = (conn) => {
19
- if (conn.provider === "mysql") {
20
- return `mysql://${conn.username}:${conn.password}@${conn.host}:${conn.port}/${conn.database}`;
21
- }
22
- if (conn.provider === "postgresql") {
23
- return `postgresql://${conn.username}:${conn.password}@${conn.host}:${conn.port}/${conn.database}`;
24
- }
25
- throw new Error(`Unsupported DB type: ${conn?.provider ?? "-"}`);
26
- };
27
- const getCustomPrismaClient = (connection) => {
28
- const url = buildPrismaUrl(connection);
29
- if (prismaCache.has(url)) {
30
- return prismaCache.get(url);
31
- }
32
- const client = new client_1.PrismaClient({
33
- datasources: {
34
- db: { url },
35
- },
36
- });
37
- prismaCache.set(url, client);
38
- return client;
39
- };
17
+ // const buildPrismaUrl = (conn: FeatureSchedulerSqlSetupItemConnection) => {
18
+ // if (conn.provider === "mysql") {
19
+ // return `mysql://${conn.username}:${conn.password}@${conn.host}:${conn.port}/${conn.database}`
20
+ // }
21
+ // if (conn.provider === "postgresql") {
22
+ // return `postgresql://${conn.username}:${conn.password}@${conn.host}:${conn.port}/${conn.database}`
23
+ // }
24
+ // throw new Error(`Unsupported DB type: ${conn?.provider ?? "-"}`)
25
+ // }
26
+ // const getCustomPrismaClient = (connection: FeatureSchedulerSqlSetupItemConnection) => {
27
+ // const url = buildPrismaUrl(connection)
28
+ // if (prismaCache.has(url)) {
29
+ // return prismaCache.get(url)!
30
+ // }
31
+ // const client = new PrismaClient({
32
+ // datasources: {
33
+ // db: { url },
34
+ // },
35
+ // })
36
+ // prismaCache.set(url, client)
37
+ // return client
38
+ // }
40
39
  const executeSchedulerSql = async ({ schedulerSqlKey }) => {
40
+ // const hookSetup = await SchedulerSqlHook.onSetup()
41
41
  const hookSetup = await features_1.SchedulerSqlHook.onSetup();
42
42
  // validate the sql key is in the setup hook given
43
43
  if (!(schedulerSqlKey in hookSetup)) {
@@ -45,23 +45,31 @@ const SchedulerSqlService = (props) => {
45
45
  }
46
46
  // console.log('hookSetup', hookSetup, schedulerSqlKey)
47
47
  const selectedSqlConfig = hookSetup[schedulerSqlKey];
48
+ // const selectedSqlConfig = hookSetup[schedulerSqlKey]
48
49
  // console.log('selectedSqlConfig', selectedSqlConfig)
49
50
  const sqlRaw = `${selectedSqlConfig.query.raw}`;
50
- const connection = selectedSqlConfig.connection;
51
+ // const connection = selectedSqlConfig.connection
52
+ const customPrismaClient = selectedSqlConfig.prismaClient;
51
53
  let responseData;
52
54
  let response = {
53
55
  scheduler_sql_key: `${schedulerSqlKey}`,
54
- custom_connection: Boolean(connection),
56
+ // custom_connection: Boolean(connection),
55
57
  data: null
56
58
  };
59
+ const { prismaClient, ...restSelectedSqlConfig } = selectedSqlConfig;
60
+ const returnSelectedSqlConfig = {
61
+ ...restSelectedSqlConfig,
62
+ injectedPrismaClient: customPrismaClient ? true : false
63
+ };
57
64
  try {
58
65
  // use back the default prisma connection
59
- if (!connection) {
66
+ if (!customPrismaClient) {
60
67
  responseData = await schedulerLogModel.raw(sqlRaw);
61
68
  }
62
69
  else { // direct connect to provider via prisma
63
- const dbClient = getCustomPrismaClient(connection);
64
- responseData = await dbClient.$queryRawUnsafe(sqlRaw);
70
+ // const dbClient = getCustomPrismaClient(connection)
71
+ // responseData = await dbClient.$queryRawUnsafe(sqlRaw)
72
+ responseData = await customPrismaClient.$queryRawUnsafe(sqlRaw);
65
73
  }
66
74
  let customResponseData = null;
67
75
  // Call the consumer hook, if success
@@ -72,7 +80,7 @@ const SchedulerSqlService = (props) => {
72
80
  schedulerSql: {
73
81
  ...response,
74
82
  data: responseData,
75
- selectedSqlConfig
83
+ selectedSqlConfig: returnSelectedSqlConfig
76
84
  }
77
85
  }
78
86
  }));
@@ -92,7 +100,7 @@ const SchedulerSqlService = (props) => {
92
100
  callbackParams: {
93
101
  schedulerSql: {
94
102
  ...response,
95
- selectedSqlConfig,
103
+ selectedSqlConfig: returnSelectedSqlConfig,
96
104
  errorMessage
97
105
  }
98
106
  }
@@ -1 +1 @@
1
- {"version":3,"file":"SchedulerSqlService.js","sourceRoot":"","sources":["../../../src/services/scheduler/SchedulerSqlService.ts"],"names":[],"mappings":"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","sourcesContent":["import { logError, throwError } from \"@/utils\";\n\nimport {\n SchedulerLogModel,\n ModelSchedulerLogFields\n} from \"@/models\";\n\nimport { PrismaClient } from \"@prisma/client\"\n\nimport { QueryList, QueryGet } from \"@/schema/common\";\n\nimport { DefaultServiceProps, getCurrentDateTimeISO, buildFeatureCallbackProps } from \"@/utils\";\n\nimport { InjectionFieldModuleRef } from \"@/services\"\n\nimport { getSchedulerLogSqlRelationMaps, buildSqlRelation, buildSqlWhere, buildSqlSelect, buildSqlLimitOffset, buildSqlOrderBy, getListWithCount } from \"@/lib\";\n\nimport { SchedulerSqlHook, FeatureSchedulerSqlSetupItemConnection, FeatureSchedulerSqlSetupItemQuery } from \"@/features\"\n\nimport {\n buildSchedulerLogDefaultSqlSelect,\n buildSchedulerLogMainSqlSelect\n} from \"@/lib\";\n\nexport type SchedulerSqlModuleRef = InjectionFieldModuleRef\n\nexport type SchedulerSqlServiceProps = DefaultServiceProps & {};\n\nexport type SchedulerSqlGetProps = Omit<QueryGet, \"datatypes\"> & {\n id: number,\n};\n\nexport type SchedulerSqlListProps = Omit<QueryList, \"datatypes\"> & {\n};\n\nexport type SchedulerSqlExecuteProps = {\n schedulerSqlKey: string,\n}\n\nconst prismaCache = new Map<string, PrismaClient>()\n\nconst { relationKeys, sqlRelationMaps } = getSchedulerLogSqlRelationMaps()\n\nlet mainSqlSelect = buildSchedulerLogMainSqlSelect()\nlet defaultSqlSelect = buildSchedulerLogDefaultSqlSelect()\n\nexport const SchedulerSqlService = (props: SchedulerSqlServiceProps) => {\n\n const {\n ...rest\n } = props\n\n const schedulerLogModel = SchedulerLogModel({ ...rest })\n\n const buildPrismaUrl = (conn: FeatureSchedulerSqlSetupItemConnection) => {\n if (conn.provider === \"mysql\") {\n return `mysql://${conn.username}:${conn.password}@${conn.host}:${conn.port}/${conn.database}`\n }\n\n if (conn.provider === \"postgresql\") {\n return `postgresql://${conn.username}:${conn.password}@${conn.host}:${conn.port}/${conn.database}`\n }\n\n throw new Error(`Unsupported DB type: ${conn?.provider ?? \"-\"}`)\n }\n\n const getCustomPrismaClient = (connection: FeatureSchedulerSqlSetupItemConnection) => {\n\n const url = buildPrismaUrl(connection)\n\n if (prismaCache.has(url)) {\n return prismaCache.get(url)!\n }\n\n const client = new PrismaClient({\n datasources: {\n db: { url },\n },\n })\n\n prismaCache.set(url, client)\n\n return client\n }\n\n const executeSchedulerSql = async ({ schedulerSqlKey }: SchedulerSqlExecuteProps) => {\n\n const hookSetup = await SchedulerSqlHook.onSetup()\n\n // validate the sql key is in the setup hook given\n if (!(schedulerSqlKey in hookSetup)) {\n throwError(`Invalid Scheduler Sql Key in the feature config setup: ${schedulerSqlKey}`)\n }\n\n // console.log('hookSetup', hookSetup, schedulerSqlKey)\n\n const selectedSqlConfig = hookSetup[schedulerSqlKey as keyof typeof hookSetup]\n\n // console.log('selectedSqlConfig', selectedSqlConfig)\n\n const sqlRaw = `${selectedSqlConfig.query.raw}`\n\n const connection = selectedSqlConfig.connection\n\n let responseData: any\n let response = {\n scheduler_sql_key: `${schedulerSqlKey}`,\n custom_connection: Boolean(connection),\n data: null\n }\n\n try {\n\n // use back the default prisma connection\n if (!connection) {\n responseData = await schedulerLogModel.raw(sqlRaw)\n } else { // direct connect to provider via prisma\n const dbClient = getCustomPrismaClient(connection)\n responseData = await dbClient.$queryRawUnsafe(sqlRaw)\n }\n\n let customResponseData: any = null\n\n // Call the consumer hook, if success\n if (SchedulerSqlHook?.onSuccessExecute) {\n customResponseData = await SchedulerSqlHook.onSuccessExecute(buildFeatureCallbackProps({\n defaultServiceProps: rest,\n callbackParams: {\n schedulerSql: {\n ...response,\n data: responseData,\n selectedSqlConfig\n }\n }\n }))\n }\n\n return {\n ...response,\n data: customResponseData ? customResponseData : responseData\n }\n\n } catch (error: unknown) {\n\n const err = error as any\n\n const errorMessage =\n err?.message ?? String(err) ?? \"-\"\n\n // Call the consumer hook, if fail\n if (SchedulerSqlHook?.onFailExecute) {\n await SchedulerSqlHook.onFailExecute(buildFeatureCallbackProps({\n defaultServiceProps: rest,\n callbackParams: {\n schedulerSql: {\n ...response,\n selectedSqlConfig,\n errorMessage\n }\n }\n }))\n }\n\n throw error\n }\n }\n\n const getSchedulerSql = async ({ id }: SchedulerSqlGetProps) => {\n\n let { data } = await listSchedulerSqls({\n limit: 1,\n offset: 0,\n filters: [{ field: `${ModelSchedulerLogFields.scheduler_log_id}`, operator: \"=\", value: id }],\n sortfield: `${ModelSchedulerLogFields.scheduler_log_id}`,\n sortorder: \"ASC\",\n })\n\n return data[0] ?? null;\n\n };\n\n const listSchedulerSqls = async ({ limit, offset, filters = [], sortfield, sortorder }: SchedulerSqlListProps) => {\n\n let sqlSelect = [\n buildSqlSelect(``, mainSqlSelect),\n buildSqlSelect(``, defaultSqlSelect)\n ]\n\n let sqlRelation = [\n buildSqlRelation(\"left\", \"sreq\", \"users\", \"creator\", [\"sreq.createuserid = creator.user_id\", \"creator.isdelete = false\", \"creator.istrash = false\"]),\n buildSqlRelation(\"left\", \"sreq\", \"users\", \"updater\", [\"sreq.updateuserid = updater.user_id\", \"updater.isdelete = false\", \"updater.istrash = false\"])\n ]\n\n let sqlGroupBy: string[] = [\n ...Object.keys(mainSqlSelect),\n ...Object.keys(defaultSqlSelect)\n ]\n\n let filterColumns = {\n ...mainSqlSelect,\n ...defaultSqlSelect\n }\n\n let sqlWhere = [\n `sreq.isdelete = false`,\n `sreq.istrash = false`,\n ...(filters.length ? [buildSqlWhere(filters, filterColumns)?.where] : []),\n ]\n\n let sqlOrderby = buildSqlOrderBy(sortfield, sortorder)\n let sqlLimitOffset = buildSqlLimitOffset(limit, offset)\n\n // get the listing data & count\n const { data, total } = await getListWithCount({\n model: schedulerLogModel,\n tableName: \"scheduler_requests\",\n mainAlias: \"sreq\",\n countKey: `${ModelSchedulerLogFields.scheduler_log_id}`,\n accountId: rest.accountId,\n sqlRelationMaps,\n filters,\n filterColumns,\n sqlSelect,\n sqlSelectAgg: [],\n sqlRelation,\n sqlRelationAgg: [],\n sqlWhere,\n sqlGroupBy,\n sqlOrderby,\n sqlLimitOffset\n })\n\n const response = {\n data,\n total\n }\n\n return response\n\n };\n\n return {\n getSchedulerSql,\n executeSchedulerSql,\n listSchedulerSqls\n }\n\n}\n\n"]}
1
+ {"version":3,"file":"SchedulerSqlService.js","sourceRoot":"","sources":["../../../src/services/scheduler/SchedulerSqlService.ts"],"names":[],"mappings":"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","sourcesContent":["import { logError, throwError } from \"@/utils\";\n\nimport {\n SchedulerLogModel,\n ModelSchedulerLogFields\n} from \"@/models\";\n\n// import { PrismaClient } from \"@prisma/client\"\n\nimport { QueryList, QueryGet } from \"@/schema/common\";\n\nimport { DefaultServiceProps, getCurrentDateTimeISO, buildFeatureCallbackProps } from \"@/utils\";\n\nimport { InjectionFieldModuleRef } from \"@/services\"\n\nimport { getSchedulerLogSqlRelationMaps, buildSqlRelation, buildSqlWhere, buildSqlSelect, buildSqlLimitOffset, buildSqlOrderBy, getListWithCount } from \"@/lib\";\n\nimport { FeatureSchedulerSqlSetupItem, SchedulerSqlHook } from \"@/features\"\n\nimport {\n buildSchedulerLogDefaultSqlSelect,\n buildSchedulerLogMainSqlSelect\n} from \"@/lib\";\n\nexport type SchedulerSqlModuleRef = InjectionFieldModuleRef\n\nexport type SchedulerSqlServiceProps = DefaultServiceProps & {};\n\nexport type SchedulerSqlGetProps = Omit<QueryGet, \"datatypes\"> & {\n id: number,\n};\n\nexport type SchedulerSqlListProps = Omit<QueryList, \"datatypes\"> & {\n};\n\nexport type SchedulerSqlExecuteProps = {\n schedulerSqlKey: string,\n}\n\n// const prismaCache = new Map<string, PrismaClient>()\n\nconst { relationKeys, sqlRelationMaps } = getSchedulerLogSqlRelationMaps()\n\nlet mainSqlSelect = buildSchedulerLogMainSqlSelect()\nlet defaultSqlSelect = buildSchedulerLogDefaultSqlSelect()\n\nexport const SchedulerSqlService = (props: SchedulerSqlServiceProps) => {\n\n const {\n ...rest\n } = props\n\n const schedulerLogModel = SchedulerLogModel({ ...rest })\n\n // const buildPrismaUrl = (conn: FeatureSchedulerSqlSetupItemConnection) => {\n // if (conn.provider === \"mysql\") {\n // return `mysql://${conn.username}:${conn.password}@${conn.host}:${conn.port}/${conn.database}`\n // }\n\n // if (conn.provider === \"postgresql\") {\n // return `postgresql://${conn.username}:${conn.password}@${conn.host}:${conn.port}/${conn.database}`\n // }\n\n // throw new Error(`Unsupported DB type: ${conn?.provider ?? \"-\"}`)\n // }\n\n // const getCustomPrismaClient = (connection: FeatureSchedulerSqlSetupItemConnection) => {\n\n // const url = buildPrismaUrl(connection)\n\n // if (prismaCache.has(url)) {\n // return prismaCache.get(url)!\n // }\n\n // const client = new PrismaClient({\n // datasources: {\n // db: { url },\n // },\n // })\n\n // prismaCache.set(url, client)\n\n // return client\n // }\n\n const executeSchedulerSql = async ({ schedulerSqlKey }: SchedulerSqlExecuteProps) => {\n\n // const hookSetup = await SchedulerSqlHook.onSetup()\n\n const hookSetup =\n await SchedulerSqlHook.onSetup() as Record<string, FeatureSchedulerSqlSetupItem>\n\n // validate the sql key is in the setup hook given\n if (!(schedulerSqlKey in hookSetup)) {\n throwError(`Invalid Scheduler Sql Key in the feature config setup: ${schedulerSqlKey}`)\n }\n\n // console.log('hookSetup', hookSetup, schedulerSqlKey)\n\n const selectedSqlConfig = hookSetup[schedulerSqlKey as keyof typeof hookSetup]\n\n // const selectedSqlConfig = hookSetup[schedulerSqlKey]\n\n // console.log('selectedSqlConfig', selectedSqlConfig)\n\n const sqlRaw = `${selectedSqlConfig.query.raw}`\n\n // const connection = selectedSqlConfig.connection\n\n const customPrismaClient = selectedSqlConfig.prismaClient\n\n let responseData: any\n let response = {\n scheduler_sql_key: `${schedulerSqlKey}`,\n // custom_connection: Boolean(connection),\n data: null\n }\n\n const { prismaClient, ...restSelectedSqlConfig } = selectedSqlConfig\n\n const returnSelectedSqlConfig = {\n ...restSelectedSqlConfig,\n injectedPrismaClient: customPrismaClient ? true : false\n }\n\n try {\n\n // use back the default prisma connection\n if (!customPrismaClient) {\n responseData = await schedulerLogModel.raw(sqlRaw)\n } else { // direct connect to provider via prisma\n // const dbClient = getCustomPrismaClient(connection)\n // responseData = await dbClient.$queryRawUnsafe(sqlRaw)\n responseData = await customPrismaClient.$queryRawUnsafe(sqlRaw)\n }\n\n let customResponseData: any = null\n\n // Call the consumer hook, if success\n if (SchedulerSqlHook?.onSuccessExecute) {\n customResponseData = await SchedulerSqlHook.onSuccessExecute(buildFeatureCallbackProps({\n defaultServiceProps: rest,\n callbackParams: {\n schedulerSql: {\n ...response,\n data: responseData,\n selectedSqlConfig: returnSelectedSqlConfig\n }\n }\n }))\n }\n\n return {\n ...response,\n data: customResponseData ? customResponseData : responseData\n }\n\n } catch (error: unknown) {\n\n const err = error as any\n\n const errorMessage =\n err?.message ?? String(err) ?? \"-\"\n\n // Call the consumer hook, if fail\n if (SchedulerSqlHook?.onFailExecute) {\n await SchedulerSqlHook.onFailExecute(buildFeatureCallbackProps({\n defaultServiceProps: rest,\n callbackParams: {\n schedulerSql: {\n ...response,\n selectedSqlConfig: returnSelectedSqlConfig,\n errorMessage\n }\n }\n }))\n }\n\n throw error\n }\n }\n\n const getSchedulerSql = async ({ id }: SchedulerSqlGetProps) => {\n\n let { data } = await listSchedulerSqls({\n limit: 1,\n offset: 0,\n filters: [{ field: `${ModelSchedulerLogFields.scheduler_log_id}`, operator: \"=\", value: id }],\n sortfield: `${ModelSchedulerLogFields.scheduler_log_id}`,\n sortorder: \"ASC\",\n })\n\n return data[0] ?? null;\n\n };\n\n const listSchedulerSqls = async ({ limit, offset, filters = [], sortfield, sortorder }: SchedulerSqlListProps) => {\n\n let sqlSelect = [\n buildSqlSelect(``, mainSqlSelect),\n buildSqlSelect(``, defaultSqlSelect)\n ]\n\n let sqlRelation = [\n buildSqlRelation(\"left\", \"sreq\", \"users\", \"creator\", [\"sreq.createuserid = creator.user_id\", \"creator.isdelete = false\", \"creator.istrash = false\"]),\n buildSqlRelation(\"left\", \"sreq\", \"users\", \"updater\", [\"sreq.updateuserid = updater.user_id\", \"updater.isdelete = false\", \"updater.istrash = false\"])\n ]\n\n let sqlGroupBy: string[] = [\n ...Object.keys(mainSqlSelect),\n ...Object.keys(defaultSqlSelect)\n ]\n\n let filterColumns = {\n ...mainSqlSelect,\n ...defaultSqlSelect\n }\n\n let sqlWhere = [\n `sreq.isdelete = false`,\n `sreq.istrash = false`,\n ...(filters.length ? [buildSqlWhere(filters, filterColumns)?.where] : []),\n ]\n\n let sqlOrderby = buildSqlOrderBy(sortfield, sortorder)\n let sqlLimitOffset = buildSqlLimitOffset(limit, offset)\n\n // get the listing data & count\n const { data, total } = await getListWithCount({\n model: schedulerLogModel,\n tableName: \"scheduler_requests\",\n mainAlias: \"sreq\",\n countKey: `${ModelSchedulerLogFields.scheduler_log_id}`,\n accountId: rest.accountId,\n sqlRelationMaps,\n filters,\n filterColumns,\n sqlSelect,\n sqlSelectAgg: [],\n sqlRelation,\n sqlRelationAgg: [],\n sqlWhere,\n sqlGroupBy,\n sqlOrderby,\n sqlLimitOffset\n })\n\n const response = {\n data,\n total\n }\n\n return response\n\n };\n\n return {\n getSchedulerSql,\n executeSchedulerSql,\n listSchedulerSqls\n }\n\n}\n\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "storemw-core-api",
3
- "version": "1.0.167",
3
+ "version": "1.0.169",
4
4
  "description": "STOREMW Core API",
5
5
  "main": "dist/app.js",
6
6
  "types": "dist/app.d.ts",