@abyss-project/console 1.0.3 → 1.0.5

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 (25) hide show
  1. package/dist/api/workflow.admin.api.d.ts +4 -3
  2. package/dist/api/workflow.admin.api.js +6 -1
  3. package/dist/index.d.ts +28 -35
  4. package/dist/index.js +22 -32
  5. package/dist/types/constants/webhook-trigger.constants.d.ts +0 -0
  6. package/dist/types/constants/webhook-trigger.constants.js +1 -0
  7. package/dist/types/dto/workflow.dto.d.ts +5 -7
  8. package/dist/types/interface/api/index.d.ts +2 -0
  9. package/dist/types/interface/api/index.js +2 -0
  10. package/dist/types/interface/api/requests/webhook-public.request.d.ts +0 -0
  11. package/dist/types/interface/api/requests/webhook-public.request.js +1 -0
  12. package/dist/types/interface/api/requests/workflow-webhook.public.request.d.ts +3 -0
  13. package/dist/types/interface/api/requests/workflow-webhook.public.request.js +2 -0
  14. package/dist/types/interface/api/requests/workflow.admin.request.d.ts +7 -3
  15. package/dist/types/interface/api/responses/webhook-public.response.d.ts +0 -0
  16. package/dist/types/interface/api/responses/webhook-public.response.js +1 -0
  17. package/dist/types/interface/api/responses/workflow-webhook.public.response.d.ts +3 -0
  18. package/dist/types/interface/api/responses/workflow-webhook.public.response.js +2 -0
  19. package/dist/types/interface/api/responses/workflow.admin.response.d.ts +8 -4
  20. package/dist/types/interface/models/workflow-trigger.model.d.ts +1 -8
  21. package/dist/utils/index.d.ts +1 -0
  22. package/dist/utils/index.js +1 -0
  23. package/dist/utils/webhook-trigger.utils.d.ts +4 -0
  24. package/dist/utils/webhook-trigger.utils.js +54 -0
  25. package/package.json +1 -1
@@ -1,8 +1,9 @@
1
- import { IPaginateWorkflowAdminQuery, IGetWorkflowAdminParams, IUpdateWorkflowStatusAdminBody, IPaginateWorkflowExecutionsAdminQuery, ICancelWorkflowExecutionAdminParams, ITriggerWorkflowAdminParams, ITriggerWorkflowAdminBody, IPaginateWorkflowAdminResponse, IGetWorkflowAdminResponse, IUpdateWorkflowStatusAdminResponse, IDeleteWorkflowAdminResponse, IPaginateWorkflowExecutionAdminResponse, ICancelWorkflowExecutionAdminResponse, ITriggerWorkflowAdminResponse } from '../types';
1
+ import { IPaginateWorkflowAdminQuery, IGetWorkflowAdminParams, IUpdateStatusWorkflowAdminBody, IPaginateWorkflowExecutionsAdminQuery, ICancelWorkflowExecutionAdminParams, IManualTriggerWorkflowAdminParams, IManualTriggerWorkflowAdminBody, ITriggerUserRegistrationWorkflowAdminBody, IPaginateWorkflowAdminResponse, IGetWorkflowAdminResponse, IUpdateStatusWorkflowAdminResponse, IDeleteWorkflowAdminResponse, IPaginateWorkflowExecutionAdminResponse, ICancelWorkflowExecutionAdminResponse, IManualTriggerWorkflowAdminResponse, ITriggerUserRegistrationWorkflowAdminResponse } from '../types';
2
2
  export declare const paginateWorkflow: (query: IPaginateWorkflowAdminQuery) => Promise<IPaginateWorkflowAdminResponse>;
3
3
  export declare const getWorkflow: (params: IGetWorkflowAdminParams) => Promise<IGetWorkflowAdminResponse>;
4
- export declare const updateWorkflowStatus: (params: IGetWorkflowAdminParams, body: IUpdateWorkflowStatusAdminBody) => Promise<IUpdateWorkflowStatusAdminResponse>;
4
+ export declare const updateWorkflowStatus: (params: IGetWorkflowAdminParams, body: IUpdateStatusWorkflowAdminBody) => Promise<IUpdateStatusWorkflowAdminResponse>;
5
5
  export declare const deleteWorkflow: (params: IGetWorkflowAdminParams) => Promise<IDeleteWorkflowAdminResponse>;
6
6
  export declare const paginateWorkflowExecution: (query: IPaginateWorkflowExecutionsAdminQuery) => Promise<IPaginateWorkflowExecutionAdminResponse>;
7
7
  export declare const cancelWorkflowExecution: (params: ICancelWorkflowExecutionAdminParams) => Promise<ICancelWorkflowExecutionAdminResponse>;
8
- export declare const triggerWorkflow: (params: ITriggerWorkflowAdminParams, body: ITriggerWorkflowAdminBody) => Promise<ITriggerWorkflowAdminResponse>;
8
+ export declare const triggerWorkflow: (params: IManualTriggerWorkflowAdminParams, body: IManualTriggerWorkflowAdminBody) => Promise<IManualTriggerWorkflowAdminResponse>;
9
+ export declare const triggerUserRegistration: (body: ITriggerUserRegistrationWorkflowAdminBody) => Promise<ITriggerUserRegistrationWorkflowAdminResponse>;
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.triggerWorkflow = exports.cancelWorkflowExecution = exports.paginateWorkflowExecution = exports.deleteWorkflow = exports.updateWorkflowStatus = exports.getWorkflow = exports.paginateWorkflow = void 0;
3
+ exports.triggerUserRegistration = exports.triggerWorkflow = exports.cancelWorkflowExecution = exports.paginateWorkflowExecution = exports.deleteWorkflow = exports.updateWorkflowStatus = exports.getWorkflow = exports.paginateWorkflow = void 0;
4
4
  const __1 = require("..");
5
5
  const paginateWorkflow = async (query) => {
6
6
  const response = await __1.AbyssConsoleCore.axios.get(`/workflow/admin/paginate`, { params: query });
@@ -37,3 +37,8 @@ const triggerWorkflow = async (params, body) => {
37
37
  return response.data;
38
38
  };
39
39
  exports.triggerWorkflow = triggerWorkflow;
40
+ const triggerUserRegistration = async (body) => {
41
+ const response = await __1.AbyssConsoleCore.axios.post(`/workflow/admin/trigger/user-registration`, body);
42
+ return response.data;
43
+ };
44
+ exports.triggerUserRegistration = triggerUserRegistration;
package/dist/index.d.ts CHANGED
@@ -9,40 +9,19 @@ import * as projectApi from './api/project.api';
9
9
  import * as projectAdminApi from './api/project.admin.api';
10
10
  export * from './types';
11
11
  export * from './utils';
12
+ export { deleteProject as deleteProjectAdmin } from './api/project.admin.api';
12
13
  export declare const API_KEY_APPLICATION_HEADER = "abyss-console-api-key-application";
13
14
  export declare const ADMIN_TOKEN_HEADER = "abyss-admin-token";
14
15
  export declare const HEADER_WEBHOOK_SIGNATURE_NAME = "abyss-console-webhook-signature";
15
16
  export declare const WEBHOOK_SIGNATURE_ALGORITHM = "sha256";
16
- type CoreConfig<TAdmin extends boolean = false> = {
17
+ type CoreConfig = {
17
18
  token?: string;
18
19
  applicationApiKey?: string;
19
20
  applicationId?: string;
20
21
  adminToken?: string;
21
22
  baseURL?: string;
22
- admin?: TAdmin;
23
23
  };
24
- type DomainVerificationAdminSDK = {
25
- runCron: typeof domainVerificationAdminApi.runCron;
26
- };
27
- type WorkflowAdminSDK = {
28
- paginate: typeof workflowAdminApi.paginateWorkflow;
29
- get: typeof workflowAdminApi.getWorkflow;
30
- updateStatus: typeof workflowAdminApi.updateWorkflowStatus;
31
- delete: typeof workflowAdminApi.deleteWorkflow;
32
- execution: {
33
- paginate: typeof workflowAdminApi.paginateWorkflowExecution;
34
- cancel: typeof workflowAdminApi.cancelWorkflowExecution;
35
- };
36
- trigger: typeof workflowAdminApi.triggerWorkflow;
37
- };
38
- type ProjectAdminSDK = {
39
- delete: typeof projectAdminApi.deleteProject;
40
- };
41
- type ProjectSDK = {
42
- get: typeof projectApi.getProject;
43
- activate: typeof projectApi.activateProject;
44
- };
45
- type AbyssConsoleCoreSDK<TAdmin extends boolean = false> = {
24
+ type AbyssConsoleCoreSDK = {
46
25
  domainVerification: {
47
26
  create: typeof domainVerificationApi.createDomainVerification;
48
27
  list: typeof domainVerificationApi.listDomainVerification;
@@ -50,9 +29,10 @@ type AbyssConsoleCoreSDK<TAdmin extends boolean = false> = {
50
29
  verify: typeof domainVerificationApi.verifyDomainVerification;
51
30
  regenerate: typeof domainVerificationApi.regenerateDomainVerification;
52
31
  delete: typeof domainVerificationApi.deleteDomainVerification;
53
- } & (TAdmin extends true ? {
54
- admin: DomainVerificationAdminSDK;
55
- } : object);
32
+ admin: {
33
+ runCron: typeof domainVerificationAdminApi.runCron;
34
+ };
35
+ };
56
36
  monitor: {
57
37
  up: typeof monitorApi.upMonitor;
58
38
  };
@@ -63,9 +43,13 @@ type AbyssConsoleCoreSDK<TAdmin extends boolean = false> = {
63
43
  update: typeof ipAddressApi.updateIpAddress;
64
44
  delete: typeof ipAddressApi.deleteIpAddress;
65
45
  };
66
- project: ProjectSDK & (TAdmin extends true ? {
67
- admin: ProjectAdminSDK;
68
- } : object);
46
+ project: {
47
+ get: typeof projectApi.getProject;
48
+ activate: typeof projectApi.activateProject;
49
+ admin: {
50
+ delete: typeof projectAdminApi.deleteProject;
51
+ };
52
+ };
69
53
  workflow: {
70
54
  create: typeof workflowApi.createWorkflow;
71
55
  paginate: typeof workflowApi.paginateWorkflow;
@@ -92,9 +76,18 @@ type AbyssConsoleCoreSDK<TAdmin extends boolean = false> = {
92
76
  update: typeof workflowApi.updateWorkflowTrigger;
93
77
  delete: typeof workflowApi.deleteWorkflowTrigger;
94
78
  };
95
- } & (TAdmin extends true ? {
96
- admin: WorkflowAdminSDK;
97
- } : object);
79
+ admin: {
80
+ paginate: typeof workflowAdminApi.paginateWorkflow;
81
+ get: typeof workflowAdminApi.getWorkflow;
82
+ updateStatus: typeof workflowAdminApi.updateWorkflowStatus;
83
+ delete: typeof workflowAdminApi.deleteWorkflow;
84
+ execution: {
85
+ paginate: typeof workflowAdminApi.paginateWorkflowExecution;
86
+ cancel: typeof workflowAdminApi.cancelWorkflowExecution;
87
+ };
88
+ trigger: typeof workflowAdminApi.triggerWorkflow;
89
+ };
90
+ };
98
91
  };
99
92
  type InternalConfig = {
100
93
  token: string;
@@ -108,9 +101,9 @@ export declare class AbyssConsoleCore {
108
101
  private static config;
109
102
  static axios: import("axios").AxiosInstance;
110
103
  private static _sdk;
111
- static get sdk(): AbyssConsoleCoreSDK<false> | AbyssConsoleCoreSDK<true>;
104
+ static get sdk(): AbyssConsoleCoreSDK;
112
105
  private static buildSDK;
113
- static setConfig<TAdmin extends boolean = false>(config: CoreConfig<TAdmin>): void;
106
+ static setConfig(config: CoreConfig): void;
114
107
  static getConfig(): InternalConfig;
115
108
  static enableAxiosRetry(axiosRetryConfig?: IAxiosRetryConfig): void;
116
109
  }
package/dist/index.js CHANGED
@@ -29,7 +29,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
29
29
  return (mod && mod.__esModule) ? mod : { "default": mod };
30
30
  };
31
31
  Object.defineProperty(exports, "__esModule", { value: true });
32
- exports.AbyssConsoleCore = exports.WEBHOOK_SIGNATURE_ALGORITHM = exports.HEADER_WEBHOOK_SIGNATURE_NAME = exports.ADMIN_TOKEN_HEADER = exports.API_KEY_APPLICATION_HEADER = void 0;
32
+ exports.AbyssConsoleCore = exports.WEBHOOK_SIGNATURE_ALGORITHM = exports.HEADER_WEBHOOK_SIGNATURE_NAME = exports.ADMIN_TOKEN_HEADER = exports.API_KEY_APPLICATION_HEADER = exports.deleteProjectAdmin = void 0;
33
33
  const axios_1 = __importDefault(require("axios"));
34
34
  const axios_retry_1 = __importStar(require("axios-retry"));
35
35
  const domainVerificationApi = __importStar(require("./api/domain-verification.api"));
@@ -42,6 +42,8 @@ const projectApi = __importStar(require("./api/project.api"));
42
42
  const projectAdminApi = __importStar(require("./api/project.admin.api"));
43
43
  __exportStar(require("./types"), exports);
44
44
  __exportStar(require("./utils"), exports);
45
+ var project_admin_api_1 = require("./api/project.admin.api");
46
+ Object.defineProperty(exports, "deleteProjectAdmin", { enumerable: true, get: function () { return project_admin_api_1.deleteProject; } });
45
47
  const MONITOR_DEFAULT_BASE_URL = 'https://console-api.abyss-project.fr/api/';
46
48
  exports.API_KEY_APPLICATION_HEADER = 'abyss-console-api-key-application';
47
49
  exports.ADMIN_TOKEN_HEADER = 'abyss-admin-token';
@@ -68,13 +70,9 @@ class AbyssConsoleCore {
68
70
  verify: domainVerificationApi.verifyDomainVerification,
69
71
  regenerate: domainVerificationApi.regenerateDomainVerification,
70
72
  delete: domainVerificationApi.deleteDomainVerification,
71
- ...(AbyssConsoleCore.config.admin
72
- ? {
73
- admin: {
74
- runCron: domainVerificationAdminApi.runCron,
75
- },
76
- }
77
- : {}),
73
+ admin: {
74
+ runCron: domainVerificationAdminApi.runCron,
75
+ },
78
76
  };
79
77
  const workflowSDK = {
80
78
  create: workflowApi.createWorkflow,
@@ -102,32 +100,24 @@ class AbyssConsoleCore {
102
100
  update: workflowApi.updateWorkflowTrigger,
103
101
  delete: workflowApi.deleteWorkflowTrigger,
104
102
  },
105
- ...(AbyssConsoleCore.config.admin
106
- ? {
107
- admin: {
108
- paginate: workflowAdminApi.paginateWorkflow,
109
- get: workflowAdminApi.getWorkflow,
110
- updateStatus: workflowAdminApi.updateWorkflowStatus,
111
- delete: workflowAdminApi.deleteWorkflow,
112
- execution: {
113
- paginate: workflowAdminApi.paginateWorkflowExecution,
114
- cancel: workflowAdminApi.cancelWorkflowExecution,
115
- },
116
- trigger: workflowAdminApi.triggerWorkflow,
117
- },
118
- }
119
- : {}),
103
+ admin: {
104
+ paginate: workflowAdminApi.paginateWorkflow,
105
+ get: workflowAdminApi.getWorkflow,
106
+ updateStatus: workflowAdminApi.updateWorkflowStatus,
107
+ delete: workflowAdminApi.deleteWorkflow,
108
+ execution: {
109
+ paginate: workflowAdminApi.paginateWorkflowExecution,
110
+ cancel: workflowAdminApi.cancelWorkflowExecution,
111
+ },
112
+ trigger: workflowAdminApi.triggerWorkflow,
113
+ },
120
114
  };
121
115
  const projectSDK = {
122
116
  get: projectApi.getProject,
123
117
  activate: projectApi.activateProject,
124
- ...(AbyssConsoleCore.config.admin
125
- ? {
126
- admin: {
127
- delete: projectAdminApi.deleteProject,
128
- },
129
- }
130
- : {}),
118
+ admin: {
119
+ delete: projectAdminApi.deleteProject,
120
+ },
131
121
  };
132
122
  const baseSDK = {
133
123
  domainVerification: domainVerificationSDK,
@@ -147,7 +137,7 @@ class AbyssConsoleCore {
147
137
  return baseSDK;
148
138
  }
149
139
  static setConfig(config) {
150
- var _a, _b, _c, _d, _e, _f;
140
+ var _a, _b, _c, _d, _e;
151
141
  AbyssConsoleCore.config = {
152
142
  ...AbyssConsoleCore.config,
153
143
  token: (_a = config.token) !== null && _a !== void 0 ? _a : AbyssConsoleCore.config.token,
@@ -155,7 +145,7 @@ class AbyssConsoleCore {
155
145
  applicationId: (_c = config.applicationId) !== null && _c !== void 0 ? _c : AbyssConsoleCore.config.applicationId,
156
146
  adminToken: (_d = config.adminToken) !== null && _d !== void 0 ? _d : AbyssConsoleCore.config.adminToken,
157
147
  baseURL: (_e = config.baseURL) !== null && _e !== void 0 ? _e : AbyssConsoleCore.config.baseURL,
158
- admin: (_f = config.admin) !== null && _f !== void 0 ? _f : false,
148
+ admin: false,
159
149
  };
160
150
  AbyssConsoleCore._sdk = null;
161
151
  if (config.baseURL) {
@@ -0,0 +1 @@
1
+ "use strict";
@@ -4,16 +4,14 @@ export interface IUserRegistrationWorkflowTriggerData {
4
4
  email: string;
5
5
  emailDomain: string;
6
6
  alias?: string;
7
- metadata?: Record<string, any>;
8
7
  }
9
8
  export interface IWebhookWorkflowTriggerData {
10
- webhookId: string;
11
- headers: Record<string, string>;
9
+ workflowTriggerId: string;
10
+ workflowId: string;
12
11
  body: any;
13
- method?: string;
14
- url?: string;
15
- receivedAt: string;
16
- sourceIp?: string;
12
+ queryParams?: Record<string, string>;
13
+ headers: Record<string, string>;
14
+ ipAddress?: string;
17
15
  }
18
16
  export type WorkflowTriggerData = IUserRegistrationWorkflowTriggerData | IWebhookWorkflowTriggerData | Record<string, any>;
19
17
  export interface IFilterStepConfig {
@@ -9,6 +9,7 @@ export * from './requests/workflow.request';
9
9
  export * from './requests/workflow.admin.request';
10
10
  export * from './requests/project.request';
11
11
  export * from './requests/project.admin.request';
12
+ export * from './requests/workflow-webhook.public.request';
12
13
  export * from './responses/monitor.response';
13
14
  export * from './responses/domain-verification.response';
14
15
  export * from './responses/domain-verification.admin.response';
@@ -17,3 +18,4 @@ export * from './responses/workflow.response';
17
18
  export * from './responses/workflow.admin.response';
18
19
  export * from './responses/project.response';
19
20
  export * from './responses/project.admin.response';
21
+ export * from './responses/workflow-webhook.public.response';
@@ -25,6 +25,7 @@ __exportStar(require("./requests/workflow.request"), exports);
25
25
  __exportStar(require("./requests/workflow.admin.request"), exports);
26
26
  __exportStar(require("./requests/project.request"), exports);
27
27
  __exportStar(require("./requests/project.admin.request"), exports);
28
+ __exportStar(require("./requests/workflow-webhook.public.request"), exports);
28
29
  __exportStar(require("./responses/monitor.response"), exports);
29
30
  __exportStar(require("./responses/domain-verification.response"), exports);
30
31
  __exportStar(require("./responses/domain-verification.admin.response"), exports);
@@ -33,3 +34,4 @@ __exportStar(require("./responses/workflow.response"), exports);
33
34
  __exportStar(require("./responses/workflow.admin.response"), exports);
34
35
  __exportStar(require("./responses/project.response"), exports);
35
36
  __exportStar(require("./responses/project.admin.response"), exports);
37
+ __exportStar(require("./responses/workflow-webhook.public.response"), exports);
@@ -0,0 +1,3 @@
1
+ export interface ITriggerWorkflowWebhookPublicParams {
2
+ workflowTriggerId: string;
3
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -1,5 +1,6 @@
1
1
  import { WorkflowStatus, WorkflowExecutionStatus } from '../../../enum/workflow.enum';
2
2
  import { QueryPaginate } from '../type-message/base-paginate';
3
+ import { IUserRegistrationWorkflowTriggerData } from '../../../dto/workflow.dto';
3
4
  export interface IPaginateWorkflowAdminQuery extends QueryPaginate {
4
5
  projectId?: string;
5
6
  status?: WorkflowStatus;
@@ -8,7 +9,7 @@ export interface IPaginateWorkflowAdminQuery extends QueryPaginate {
8
9
  export interface IGetWorkflowAdminParams {
9
10
  workflowId: string;
10
11
  }
11
- export interface IUpdateWorkflowStatusAdminBody {
12
+ export interface IUpdateStatusWorkflowAdminBody {
12
13
  status: WorkflowStatus;
13
14
  }
14
15
  export interface IPaginateWorkflowExecutionsAdminQuery extends QueryPaginate {
@@ -21,9 +22,12 @@ export interface IPaginateWorkflowExecutionsAdminQuery extends QueryPaginate {
21
22
  export interface ICancelWorkflowExecutionAdminParams {
22
23
  workflowExecutionId: string;
23
24
  }
24
- export interface ITriggerWorkflowAdminParams {
25
+ export interface IManualTriggerWorkflowAdminParams {
25
26
  workflowId: string;
26
27
  }
27
- export interface ITriggerWorkflowAdminBody {
28
+ export interface IManualTriggerWorkflowAdminBody {
28
29
  triggerData: Record<string, unknown>;
29
30
  }
31
+ export interface ITriggerUserRegistrationWorkflowAdminBody {
32
+ triggerData: IUserRegistrationWorkflowTriggerData;
33
+ }
@@ -0,0 +1,3 @@
1
+ export interface ITriggerWorkflowWebhookPublicResponse {
2
+ executionId: string;
3
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -7,10 +7,10 @@ export interface IGetWorkflowAdminData {
7
7
  workflow: IWorkflow;
8
8
  }
9
9
  export type IGetWorkflowAdminResponse = IResponse<IGetWorkflowAdminData>;
10
- export interface IUpdateWorkflowStatusAdminData {
10
+ export interface IUpdateStatusWorkflowAdminData {
11
11
  workflow: IWorkflow;
12
12
  }
13
- export type IUpdateWorkflowStatusAdminResponse = IResponse<IUpdateWorkflowStatusAdminData>;
13
+ export type IUpdateStatusWorkflowAdminResponse = IResponse<IUpdateStatusWorkflowAdminData>;
14
14
  export interface IDeleteWorkflowAdminData {
15
15
  }
16
16
  export type IDeleteWorkflowAdminResponse = IResponse<IDeleteWorkflowAdminData>;
@@ -19,7 +19,11 @@ export interface ICancelWorkflowExecutionAdminData {
19
19
  workflowExecution: IWorkflowExecution;
20
20
  }
21
21
  export type ICancelWorkflowExecutionAdminResponse = IResponse<ICancelWorkflowExecutionAdminData>;
22
- export interface ITriggerWorkflowAdminData {
22
+ export interface IManualTriggerWorkflowAdminData {
23
23
  workflowExecution: IWorkflowExecution;
24
24
  }
25
- export type ITriggerWorkflowAdminResponse = IResponse<ITriggerWorkflowAdminData>;
25
+ export type IManualTriggerWorkflowAdminResponse = IResponse<IManualTriggerWorkflowAdminData>;
26
+ export interface ITriggerUserRegistrationWorkflowAdminData {
27
+ workflowExecutions: IWorkflowExecution[];
28
+ }
29
+ export type ITriggerUserRegistrationWorkflowAdminResponse = IResponse<ITriggerUserRegistrationWorkflowAdminData>;
@@ -6,19 +6,12 @@ export interface ITriggerFilter {
6
6
  value: any;
7
7
  }
8
8
  export interface IUserRegistrationTriggerConfig {
9
- filters?: {
10
- emailDomains?: string[];
11
- excludeEmailDomains?: string[];
12
- };
13
9
  }
14
10
  export interface IWebhookTriggerConfig {
15
- webhookUrl: string | null;
16
11
  signatureSecret: string | null;
17
12
  signatureHeader: string | null;
18
- requiredHeaders: Record<string, string> | null;
19
- allowedIpAddresses: string[];
20
13
  }
21
- export type TriggerConfig = IUserRegistrationTriggerConfig | IWebhookTriggerConfig | Record<string, any>;
14
+ export type TriggerConfig = IUserRegistrationTriggerConfig | IWebhookTriggerConfig | Record<string, never>;
22
15
  export interface IWorkflowTrigger {
23
16
  id: string;
24
17
  workflowId: string;
@@ -1,3 +1,4 @@
1
1
  export * from './error.utils';
2
2
  export * from './reference-resolver.utils';
3
3
  export * from './ip-address-validator.utils';
4
+ export * from './webhook-trigger.utils';
@@ -17,3 +17,4 @@ Object.defineProperty(exports, "__esModule", { value: true });
17
17
  __exportStar(require("./error.utils"), exports);
18
18
  __exportStar(require("./reference-resolver.utils"), exports);
19
19
  __exportStar(require("./ip-address-validator.utils"), exports);
20
+ __exportStar(require("./webhook-trigger.utils"), exports);
@@ -0,0 +1,4 @@
1
+ import { WorkflowTriggerData, FilterOperator, IWorkflowTrigger } from "../types";
2
+ export declare const matchesTriggerFilters: (trigger: IWorkflowTrigger, triggerData: WorkflowTriggerData) => boolean;
3
+ export declare const getNestedValue: (obj: Record<string, unknown>, path: string) => unknown;
4
+ export declare const evaluateFilter: (value: unknown, operator: FilterOperator, expected: unknown) => boolean;
@@ -0,0 +1,54 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.evaluateFilter = exports.getNestedValue = exports.matchesTriggerFilters = void 0;
4
+ const types_1 = require("../types");
5
+ const matchesTriggerFilters = (trigger, triggerData) => {
6
+ if (!trigger.filters || trigger.filters.length === 0) {
7
+ return true;
8
+ }
9
+ return trigger.filters.every((filter) => {
10
+ const value = (0, exports.getNestedValue)(triggerData, filter.field);
11
+ return (0, exports.evaluateFilter)(value, filter.operator, filter.value);
12
+ });
13
+ };
14
+ exports.matchesTriggerFilters = matchesTriggerFilters;
15
+ const getNestedValue = (obj, path) => {
16
+ return path
17
+ .split('.')
18
+ .reduce((current, key) => current === null || current === void 0 ? void 0 : current[key], obj);
19
+ };
20
+ exports.getNestedValue = getNestedValue;
21
+ const evaluateFilter = (value, operator, expected) => {
22
+ switch (operator) {
23
+ case types_1.FilterOperator.EQUALS:
24
+ return value === expected;
25
+ case types_1.FilterOperator.NOT_EQUALS:
26
+ return value !== expected;
27
+ case types_1.FilterOperator.CONTAINS:
28
+ return String(value).includes(String(expected));
29
+ case types_1.FilterOperator.NOT_CONTAINS:
30
+ return !String(value).includes(String(expected));
31
+ case types_1.FilterOperator.STARTS_WITH:
32
+ return String(value).startsWith(String(expected));
33
+ case types_1.FilterOperator.ENDS_WITH:
34
+ return String(value).endsWith(String(expected));
35
+ case types_1.FilterOperator.IN:
36
+ return Array.isArray(expected) && expected.includes(value);
37
+ case types_1.FilterOperator.NOT_IN:
38
+ return Array.isArray(expected) && !expected.includes(value);
39
+ case types_1.FilterOperator.IS_EMPTY:
40
+ return value === null || value === undefined || value === '';
41
+ case types_1.FilterOperator.IS_NOT_EMPTY:
42
+ return value !== null && value !== undefined && value !== '';
43
+ case types_1.FilterOperator.MATCHES_REGEX:
44
+ try {
45
+ return new RegExp(expected).test(String(value));
46
+ }
47
+ catch {
48
+ return false;
49
+ }
50
+ default:
51
+ return true;
52
+ }
53
+ };
54
+ exports.evaluateFilter = evaluateFilter;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@abyss-project/console",
3
- "version": "1.0.3",
3
+ "version": "1.0.5",
4
4
  "description": "Core package to interact with AbyssConsole",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",