@ductape/sdk 0.0.4-v42 → 0.0.4-v44
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.
- package/dist/apps/services/app.service.d.ts +10 -0
- package/dist/apps/services/app.service.js +38 -69
- package/dist/apps/services/app.service.js.map +1 -1
- package/dist/apps/validators/joi-validators/create.appWebhook.validator.d.ts +1 -2
- package/dist/apps/validators/joi-validators/create.appWebhook.validator.js +2 -15
- package/dist/apps/validators/joi-validators/create.appWebhook.validator.js.map +1 -1
- package/dist/apps/validators/joi-validators/update.appWebhook.validator.d.ts +1 -2
- package/dist/apps/validators/joi-validators/update.appWebhook.validator.js +2 -14
- package/dist/apps/validators/joi-validators/update.appWebhook.validator.js.map +1 -1
- package/dist/database/adapters/base.adapter.d.ts +176 -0
- package/dist/database/adapters/base.adapter.js +31 -0
- package/dist/database/adapters/base.adapter.js.map +1 -0
- package/dist/database/adapters/dynamodb.adapter.d.ts +91 -0
- package/dist/database/adapters/dynamodb.adapter.js +1469 -0
- package/dist/database/adapters/dynamodb.adapter.js.map +1 -0
- package/dist/database/adapters/mongodb.adapter.d.ts +71 -0
- package/dist/database/adapters/mongodb.adapter.js +882 -0
- package/dist/database/adapters/mongodb.adapter.js.map +1 -0
- package/dist/database/adapters/mysql.adapter.d.ts +146 -0
- package/dist/database/adapters/mysql.adapter.js +1417 -0
- package/dist/database/adapters/mysql.adapter.js.map +1 -0
- package/dist/database/adapters/postgresql.adapter.d.ts +147 -0
- package/dist/database/adapters/postgresql.adapter.js +1472 -0
- package/dist/database/adapters/postgresql.adapter.js.map +1 -0
- package/dist/database/database.service.d.ts +195 -0
- package/dist/database/database.service.js +502 -0
- package/dist/database/database.service.js.map +1 -0
- package/dist/database/index.d.ts +18 -0
- package/dist/database/index.js +98 -0
- package/dist/database/index.js.map +1 -0
- package/dist/database/types/aggregation.types.d.ts +202 -0
- package/dist/database/types/aggregation.types.js +21 -0
- package/dist/database/types/aggregation.types.js.map +1 -0
- package/dist/database/types/connection.types.d.ts +132 -0
- package/dist/database/types/connection.types.js +6 -0
- package/dist/database/types/connection.types.js.map +1 -0
- package/dist/database/types/database.types.d.ts +174 -0
- package/dist/database/types/database.types.js +74 -0
- package/dist/database/types/database.types.js.map +1 -0
- package/dist/database/types/index.d.ts +12 -0
- package/dist/database/types/index.js +37 -0
- package/dist/database/types/index.js.map +1 -0
- package/dist/database/types/index.types.d.ts +220 -0
- package/dist/database/types/index.types.js +27 -0
- package/dist/database/types/index.types.js.map +1 -0
- package/dist/database/types/migration.types.d.ts +205 -0
- package/dist/database/types/migration.types.js +44 -0
- package/dist/database/types/migration.types.js.map +1 -0
- package/dist/database/types/query.types.d.ts +305 -0
- package/dist/database/types/query.types.js +57 -0
- package/dist/database/types/query.types.js.map +1 -0
- package/dist/database/types/result.types.d.ts +218 -0
- package/dist/database/types/result.types.js +6 -0
- package/dist/database/types/result.types.js.map +1 -0
- package/dist/database/types/schema.types.d.ts +190 -0
- package/dist/database/types/schema.types.js +69 -0
- package/dist/database/types/schema.types.js.map +1 -0
- package/dist/database/utils/helpers.d.ts +66 -0
- package/dist/database/utils/helpers.js +501 -0
- package/dist/database/utils/helpers.js.map +1 -0
- package/dist/database/utils/migration.utils.d.ts +151 -0
- package/dist/database/utils/migration.utils.js +476 -0
- package/dist/database/utils/migration.utils.js.map +1 -0
- package/dist/database/utils/transaction.d.ts +64 -0
- package/dist/database/utils/transaction.js +130 -0
- package/dist/database/utils/transaction.js.map +1 -0
- package/dist/database/validators/connection.validator.d.ts +20 -0
- package/dist/database/validators/connection.validator.js +267 -0
- package/dist/database/validators/connection.validator.js.map +1 -0
- package/dist/database/validators/query.validator.d.ts +31 -0
- package/dist/database/validators/query.validator.js +305 -0
- package/dist/database/validators/query.validator.js.map +1 -0
- package/dist/database/validators/schema.validator.d.ts +31 -0
- package/dist/database/validators/schema.validator.js +334 -0
- package/dist/database/validators/schema.validator.js.map +1 -0
- package/dist/index.d.ts +194 -146
- package/dist/index.js +232 -173
- package/dist/index.js.map +1 -1
- package/dist/processor/services/processor.service.js +61 -43
- package/dist/processor/services/processor.service.js.map +1 -1
- package/dist/test/test.processor.js +1 -3
- package/dist/test/test.processor.js.map +1 -1
- package/dist/types/appBuilder.types.d.ts +1 -1
- package/dist/types/processor.types.d.ts +2 -2
- package/package.json +3 -1
|
@@ -297,15 +297,27 @@ class ProcessorService {
|
|
|
297
297
|
await this.productBuilderService.initializeProductByTag(product_tag);
|
|
298
298
|
const { version, envs: appEnvs } = await this.productBuilderService.fetchApp(access_tag);
|
|
299
299
|
const app = await this.productBuilderService.fetchThirdPartyAppByAccessTag(access_tag);
|
|
300
|
-
const
|
|
300
|
+
const appVersion = app.versions.find((data) => data.tag === version);
|
|
301
|
+
if (!appVersion) {
|
|
302
|
+
throw new Error(`Version ${version} not found for app ${access_tag}`);
|
|
303
|
+
}
|
|
304
|
+
const { webhooks, actions } = appVersion;
|
|
301
305
|
if (!webhooks) {
|
|
302
306
|
throw new Error(`Webhooks not found for app ${access_tag}`);
|
|
303
307
|
}
|
|
308
|
+
if (!actions) {
|
|
309
|
+
throw new Error(`Actions not found for app ${access_tag}`);
|
|
310
|
+
}
|
|
304
311
|
await validators_1.RegisterWebhookEnvSchema.validateAsync(envs);
|
|
305
312
|
const webhook = webhooks.find((data) => data.tag === webhook_tag);
|
|
306
313
|
if (!webhook) {
|
|
307
314
|
throw new Error(`Webhook tag ${webhook_tag} not found`);
|
|
308
315
|
}
|
|
316
|
+
// Get the action associated with this webhook
|
|
317
|
+
const action = actions.find((act) => act.tag === webhook.action);
|
|
318
|
+
if (!action) {
|
|
319
|
+
throw new Error(`Action ${webhook.action} not found for webhook ${webhook_tag}`);
|
|
320
|
+
}
|
|
309
321
|
const productEnvs = await this.productBuilderService.fetchEnvs();
|
|
310
322
|
productEnvs.map((env) => {
|
|
311
323
|
const exists = envs.findIndex((dbEnv) => dbEnv.slug === env.slug);
|
|
@@ -314,6 +326,7 @@ class ProcessorService {
|
|
|
314
326
|
}
|
|
315
327
|
});
|
|
316
328
|
const dataArray = await Promise.all(envs.map(async (env) => {
|
|
329
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j;
|
|
317
330
|
await this.validateActionDataMappingInput(env.auth, types_1.WebhookEventTypes.WEBHOOK_REGISTER);
|
|
318
331
|
const productEnvData = productEnvs.find((data) => data.slug === env.slug);
|
|
319
332
|
if (!productEnvData) {
|
|
@@ -324,44 +337,47 @@ class ProcessorService {
|
|
|
324
337
|
throw new Error(`Error finding env data for ${env.slug}`);
|
|
325
338
|
}
|
|
326
339
|
const { app_env_slug: appEnv, product_env_slug: productEnv } = envData;
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
340
|
+
// Get the action's environment configuration
|
|
341
|
+
const actionEnvConfig = (_a = action.envs) === null || _a === void 0 ? void 0 : _a.find((actionEnv) => actionEnv.slug === appEnv);
|
|
342
|
+
if (!actionEnvConfig) {
|
|
343
|
+
throw new Error(`Action ${action.tag} is not configured for env ${appEnv}`);
|
|
330
344
|
}
|
|
331
345
|
const uuid = (0, uuid_1.v4)();
|
|
332
346
|
const url = `${urls_1.WEBHOOK_BASE_URL}/webhooks/v1/process/${uuid}`;
|
|
333
347
|
let active = false;
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
348
|
+
// Construct the registration payload using the action's configuration
|
|
349
|
+
const samples = {
|
|
350
|
+
query: ((_c = (_b = action.query) === null || _b === void 0 ? void 0 : _b.data) === null || _c === void 0 ? void 0 : _c.filter((data) => data.parent_key === 'query')) || [],
|
|
351
|
+
params: ((_e = (_d = action.params) === null || _d === void 0 ? void 0 : _d.data) === null || _e === void 0 ? void 0 : _e.filter((data) => data.parent_key === 'params')) || [],
|
|
352
|
+
body: ((_g = (_f = action.body) === null || _f === void 0 ? void 0 : _f.data) === null || _g === void 0 ? void 0 : _g.filter((data) => data.parent_key === 'body')) || [],
|
|
353
|
+
headers: ((_j = (_h = action.headers) === null || _h === void 0 ? void 0 : _h.data) === null || _j === void 0 ? void 0 : _j.filter((data) => data.parent_key === 'headers')) || [],
|
|
354
|
+
};
|
|
355
|
+
let payload = (await this.constructJSONDataPayloads(env.auth, {}, samples, {
|
|
356
|
+
app: access_tag,
|
|
357
|
+
event: '',
|
|
358
|
+
input: env.auth,
|
|
359
|
+
type: types_1.FeatureEventTypes.ACTION,
|
|
360
|
+
retries: 0,
|
|
361
|
+
allow_fail: false,
|
|
362
|
+
}));
|
|
363
|
+
const { updatedObj, replacedUrl } = (0, processor_utils_1.updateUrlsInObject)(payload, url);
|
|
364
|
+
if (replacedUrl && replacedUrl !== env.url && replacedUrl) {
|
|
365
|
+
throw new Error(`Ductape expects the url ${replacedUrl} in request body to match inputted url ${env.url}`);
|
|
366
|
+
}
|
|
367
|
+
const exists = await this.fetchEnv(env.slug, {});
|
|
368
|
+
if (!exists) {
|
|
369
|
+
throw new Error(`Env ${env.slug} does not exist`);
|
|
370
|
+
}
|
|
371
|
+
payload = updatedObj;
|
|
372
|
+
if (!replacedUrl) {
|
|
373
|
+
payload.body.url = url;
|
|
374
|
+
}
|
|
375
|
+
// Use the action's resource and base_url to construct the registration URL
|
|
376
|
+
const baseUrl = actionEnvConfig.base_url || action.base_url || '';
|
|
377
|
+
const resource = action.resource || '';
|
|
378
|
+
const registrationUrl = new URL(resource, baseUrl);
|
|
379
|
+
await this.sendActionRequest(registrationUrl.origin, registrationUrl.pathname, payload, action.method, env.slug);
|
|
380
|
+
active = true;
|
|
365
381
|
return {
|
|
366
382
|
appEnv,
|
|
367
383
|
productEnv,
|
|
@@ -2525,12 +2541,13 @@ class ProcessorService {
|
|
|
2525
2541
|
name: `Subscribe to broker topic`,
|
|
2526
2542
|
};
|
|
2527
2543
|
try {
|
|
2528
|
-
await this.validateActionDataMappingInput(data.input,
|
|
2544
|
+
//await this.validateActionDataMappingInput(data.input, FeatureEventTypes.STORAGE);
|
|
2545
|
+
const input = { callback: data.callback };
|
|
2529
2546
|
this.start = Date.now();
|
|
2530
2547
|
this.productTag = data.product;
|
|
2531
2548
|
const process_id = (0, processor_utils_1.generateObjectId)();
|
|
2532
|
-
this.input = data;
|
|
2533
|
-
this.baseLogs = Object.assign({ product_tag: this.productTag, product_id: this.productId, workspace_id: this.workspace_id, env: data.env, process_id, data:
|
|
2549
|
+
this.input = Object.assign(Object.assign({}, data), { input });
|
|
2550
|
+
this.baseLogs = Object.assign({ product_tag: this.productTag, product_id: this.productId, workspace_id: this.workspace_id, env: data.env, process_id, data: input }, additional_logs);
|
|
2534
2551
|
await this.intializeProduct(additional_logs);
|
|
2535
2552
|
this.baseLogs.product_id = this.productId;
|
|
2536
2553
|
this.process_id = process_id;
|
|
@@ -2543,7 +2560,7 @@ class ProcessorService {
|
|
|
2543
2560
|
const payload = {
|
|
2544
2561
|
type: types_1.FeatureEventTypes.SUBSCRIBE,
|
|
2545
2562
|
event: data.event,
|
|
2546
|
-
input:
|
|
2563
|
+
input: input,
|
|
2547
2564
|
env: productEnv,
|
|
2548
2565
|
retries: 0,
|
|
2549
2566
|
allow_fail: false,
|
|
@@ -2574,10 +2591,11 @@ class ProcessorService {
|
|
|
2574
2591
|
name: 'Publish to broker topic',
|
|
2575
2592
|
};
|
|
2576
2593
|
try {
|
|
2577
|
-
|
|
2594
|
+
const input = { message: data.message };
|
|
2595
|
+
await this.validateActionDataMappingInput(input, types_1.FeatureEventTypes.PUBLISH);
|
|
2578
2596
|
this.start = Date.now();
|
|
2579
2597
|
// clone
|
|
2580
|
-
this.clone = (0, processor_utils_1.structuredClone)(
|
|
2598
|
+
this.clone = (0, processor_utils_1.structuredClone)(input);
|
|
2581
2599
|
this.input = data;
|
|
2582
2600
|
this.productTag = data.product;
|
|
2583
2601
|
const process_id = (0, processor_utils_1.generateObjectId)();
|
|
@@ -2595,7 +2613,7 @@ class ProcessorService {
|
|
|
2595
2613
|
type: types_1.FeatureEventTypes.PUBLISH,
|
|
2596
2614
|
event: data.event,
|
|
2597
2615
|
cache: data.cache,
|
|
2598
|
-
input:
|
|
2616
|
+
input: input,
|
|
2599
2617
|
env: productEnv,
|
|
2600
2618
|
retries: 0,
|
|
2601
2619
|
allow_fail: false,
|
|
@@ -2678,7 +2696,7 @@ class ProcessorService {
|
|
|
2678
2696
|
event: job.event,
|
|
2679
2697
|
cache: job.cache,
|
|
2680
2698
|
session: job.session,
|
|
2681
|
-
|
|
2699
|
+
message: job.input
|
|
2682
2700
|
};
|
|
2683
2701
|
jobInput = input;
|
|
2684
2702
|
}
|