@ductape/sdk 0.0.4-v5 → 0.0.4-v51
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/README.md +1 -1
- package/dist/api/services/appApi.service.d.ts +48 -2
- package/dist/api/services/appApi.service.js +101 -2
- package/dist/api/services/appApi.service.js.map +1 -1
- package/dist/api/services/pricingApi.service.d.ts +10 -0
- package/dist/api/services/pricingApi.service.js +34 -0
- package/dist/api/services/pricingApi.service.js.map +1 -0
- package/dist/api/services/processorApi.service.d.ts +12 -2
- package/dist/api/services/processorApi.service.js +12 -2
- package/dist/api/services/processorApi.service.js.map +1 -1
- package/dist/api/services/productsApi.service.d.ts +40 -1
- package/dist/api/services/productsApi.service.js +105 -1
- package/dist/api/services/productsApi.service.js.map +1 -1
- package/dist/api/services/userApi.service.js +1 -0
- package/dist/api/services/userApi.service.js.map +1 -1
- package/dist/api/services/workspaceApi.service.js +1 -0
- package/dist/api/services/workspaceApi.service.js.map +1 -1
- package/dist/api/services/workspaceSecretsApi.service.d.ts +75 -0
- package/dist/api/services/workspaceSecretsApi.service.js +62 -0
- package/dist/api/services/workspaceSecretsApi.service.js.map +1 -0
- package/dist/api/urls.d.ts +6 -1
- package/dist/api/urls.js +12 -2
- package/dist/api/urls.js.map +1 -1
- package/dist/api/utils/cache.utils.d.ts +1 -1
- package/dist/api/utils/cache.utils.js +10 -4
- package/dist/api/utils/cache.utils.js.map +1 -1
- package/dist/api/utils/strings.utils.d.ts +2 -0
- package/dist/api/utils/strings.utils.js +14 -0
- package/dist/api/utils/strings.utils.js.map +1 -1
- package/dist/apps/services/app.service.d.ts +51 -33
- package/dist/apps/services/app.service.js +488 -244
- package/dist/apps/services/app.service.js.map +1 -1
- package/dist/apps/validators/joi-validators/create.appAction.validator.d.ts +1 -2
- package/dist/apps/validators/joi-validators/create.appAction.validator.js +21 -2
- package/dist/apps/validators/joi-validators/create.appAction.validator.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.appAction.validator.js +11 -1
- package/dist/apps/validators/joi-validators/update.appAction.validator.js.map +1 -1
- package/dist/apps/validators/joi-validators/update.appActionResponse.validator.d.ts +1 -1
- package/dist/apps/validators/joi-validators/update.appActionResponse.validator.js +34 -1
- package/dist/apps/validators/joi-validators/update.appActionResponse.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/clients/pricing.client.d.ts +3 -0
- package/dist/clients/pricing.client.js +33 -0
- package/dist/clients/pricing.client.js.map +1 -0
- 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 +1608 -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 +1072 -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 +1492 -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 +1603 -0
- package/dist/database/adapters/postgresql.adapter.js.map +1 -0
- package/dist/database/database.service.d.ts +232 -0
- package/dist/database/database.service.js +802 -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 +261 -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 +175 -0
- package/dist/database/types/database.types.js +75 -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 +220 -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/graph/adapters/arangodb.adapter.d.ts +80 -0
- package/dist/graph/adapters/arangodb.adapter.js +1393 -0
- package/dist/graph/adapters/arangodb.adapter.js.map +1 -0
- package/dist/graph/adapters/base.adapter.d.ts +228 -0
- package/dist/graph/adapters/base.adapter.js +38 -0
- package/dist/graph/adapters/base.adapter.js.map +1 -0
- package/dist/graph/adapters/index.d.ts +10 -0
- package/dist/graph/adapters/index.js +23 -0
- package/dist/graph/adapters/index.js.map +1 -0
- package/dist/graph/adapters/memgraph.adapter.d.ts +85 -0
- package/dist/graph/adapters/memgraph.adapter.js +1491 -0
- package/dist/graph/adapters/memgraph.adapter.js.map +1 -0
- package/dist/graph/adapters/neo4j.adapter.d.ts +88 -0
- package/dist/graph/adapters/neo4j.adapter.js +1861 -0
- package/dist/graph/adapters/neo4j.adapter.js.map +1 -0
- package/dist/graph/adapters/neptune.adapter.d.ts +87 -0
- package/dist/graph/adapters/neptune.adapter.js +1430 -0
- package/dist/graph/adapters/neptune.adapter.js.map +1 -0
- package/dist/graph/graph.service.d.ts +278 -0
- package/dist/graph/graph.service.js +687 -0
- package/dist/graph/graph.service.js.map +1 -0
- package/dist/graph/index.d.ts +11 -0
- package/dist/graph/index.js +42 -0
- package/dist/graph/index.js.map +1 -0
- package/dist/graph/types/connection.types.d.ts +158 -0
- package/dist/graph/types/connection.types.js +43 -0
- package/dist/graph/types/connection.types.js.map +1 -0
- package/dist/graph/types/graph.types.d.ts +144 -0
- package/dist/graph/types/graph.types.js +84 -0
- package/dist/graph/types/graph.types.js.map +1 -0
- package/dist/graph/types/index.d.ts +11 -0
- package/dist/graph/types/index.js +35 -0
- package/dist/graph/types/index.js.map +1 -0
- package/dist/graph/types/node.types.d.ts +193 -0
- package/dist/graph/types/node.types.js +49 -0
- package/dist/graph/types/node.types.js.map +1 -0
- package/dist/graph/types/path.types.d.ts +224 -0
- package/dist/graph/types/path.types.js +38 -0
- package/dist/graph/types/path.types.js.map +1 -0
- package/dist/graph/types/query.types.d.ts +247 -0
- package/dist/graph/types/query.types.js +23 -0
- package/dist/graph/types/query.types.js.map +1 -0
- package/dist/graph/types/relationship.types.d.ts +224 -0
- package/dist/graph/types/relationship.types.js +35 -0
- package/dist/graph/types/relationship.types.js.map +1 -0
- package/dist/graph/types/result.types.d.ts +237 -0
- package/dist/graph/types/result.types.js +7 -0
- package/dist/graph/types/result.types.js.map +1 -0
- package/dist/graph/validators/index.d.ts +81 -0
- package/dist/graph/validators/index.js +243 -0
- package/dist/graph/validators/index.js.map +1 -0
- package/dist/imports/imports.service.d.ts +3 -3
- package/dist/imports/imports.service.js +7 -7
- package/dist/imports/imports.service.js.map +1 -1
- package/dist/imports/imports.types.d.ts +8 -0
- package/dist/imports/repos/postmanV21.repo.d.ts +1 -1
- package/dist/imports/repos/postmanV21.repo.js +29 -2
- package/dist/imports/repos/postmanV21.repo.js.map +1 -1
- package/dist/index.d.ts +1244 -150
- package/dist/index.js +1309 -209
- package/dist/index.js.map +1 -1
- package/dist/inputs/inputs.service.js +2 -2
- package/dist/inputs/inputs.service.js.map +1 -1
- package/dist/inputs/utils/inputs.utils.create.js +1 -1
- package/dist/inputs/utils/inputs.utils.create.js.map +1 -1
- package/dist/logs/logs.types.d.ts +5 -0
- package/dist/logs/logs.types.js +1 -0
- package/dist/logs/logs.types.js.map +1 -1
- package/dist/parsers/index.d.ts +3 -0
- package/dist/parsers/index.js +27 -0
- package/dist/parsers/index.js.map +1 -0
- package/dist/parsers/pipelines/postman.pipelines.d.ts +15 -0
- package/dist/parsers/pipelines/postman.pipelines.js +103 -0
- package/dist/parsers/pipelines/postman.pipelines.js.map +1 -0
- package/dist/parsers/types/postman.types.d.ts +200 -0
- package/dist/parsers/types/postman.types.js +3 -0
- package/dist/parsers/types/postman.types.js.map +1 -0
- package/dist/parsers/utils/postman.utils.d.ts +12 -0
- package/dist/parsers/utils/postman.utils.js +116 -0
- package/dist/parsers/utils/postman.utils.js.map +1 -0
- package/dist/parsers/validators/postman-auth.validators.d.ts +10 -0
- package/dist/parsers/validators/postman-auth.validators.js +127 -0
- package/dist/parsers/validators/postman-auth.validators.js.map +1 -0
- package/dist/parsers/validators/postman-request.validators.d.ts +13 -0
- package/dist/parsers/validators/postman-request.validators.js +139 -0
- package/dist/parsers/validators/postman-request.validators.js.map +1 -0
- package/dist/parsers/validators/postman-response.validators.d.ts +13 -0
- package/dist/parsers/validators/postman-response.validators.js +150 -0
- package/dist/parsers/validators/postman-response.validators.js.map +1 -0
- package/dist/parsers/validators/postman-variable.validators.d.ts +14 -0
- package/dist/parsers/validators/postman-variable.validators.js +163 -0
- package/dist/parsers/validators/postman-variable.validators.js.map +1 -0
- package/dist/pricing/pricing.repo.d.ts +0 -0
- package/dist/pricing/pricing.repo.js +1 -0
- package/dist/pricing/pricing.repo.js.map +1 -0
- package/dist/pricing/pricing.service.d.ts +24 -0
- package/dist/pricing/pricing.service.js +51 -0
- package/dist/pricing/pricing.service.js.map +1 -0
- package/dist/pricing/pricing.types.d.ts +76 -0
- package/dist/pricing/pricing.types.js +21 -0
- package/dist/pricing/pricing.types.js.map +1 -0
- package/dist/pricing/utils/string.utils.d.ts +1 -0
- package/dist/pricing/utils/string.utils.js +9 -0
- package/dist/pricing/utils/string.utils.js.map +1 -0
- package/dist/processor/repos/sms.repo.d.ts +4 -4
- package/dist/processor/repos/sms.repo.js +23 -10
- package/dist/processor/repos/sms.repo.js.map +1 -1
- package/dist/processor/services/messagebrokers/kafka.service.js +0 -2
- package/dist/processor/services/messagebrokers/kafka.service.js.map +1 -1
- package/dist/processor/services/messagebrokers/rabbitmq.service.d.ts +9 -1
- package/dist/processor/services/messagebrokers/rabbitmq.service.js +40 -11
- package/dist/processor/services/messagebrokers/rabbitmq.service.js.map +1 -1
- package/dist/processor/services/processor.service.d.ts +38 -10
- package/dist/processor/services/processor.service.js +533 -248
- package/dist/processor/services/processor.service.js.map +1 -1
- package/dist/processor/services/request.service.d.ts +36 -0
- package/dist/processor/services/request.service.js +304 -0
- package/dist/processor/services/request.service.js.map +1 -0
- package/dist/processor/types/request.types.d.ts +14 -0
- package/dist/processor/types/request.types.js +3 -0
- package/dist/processor/types/request.types.js.map +1 -0
- package/dist/processor/utils/processor.utils.d.ts +3 -0
- package/dist/processor/utils/processor.utils.js +84 -22
- package/dist/processor/utils/processor.utils.js.map +1 -1
- package/dist/processor/utils/request.utils.d.ts +20 -0
- package/dist/processor/utils/request.utils.js +113 -0
- package/dist/processor/utils/request.utils.js.map +1 -0
- package/dist/products/services/products.service.d.ts +114 -77
- package/dist/products/services/products.service.js +805 -362
- package/dist/products/services/products.service.js.map +1 -1
- package/dist/products/services/utils/crypt.utils.d.ts +1 -0
- package/dist/products/services/utils/crypt.utils.js +17 -0
- package/dist/products/services/utils/crypt.utils.js.map +1 -0
- package/dist/products/services/utils/functions.utils.d.ts +13 -0
- package/dist/products/services/utils/functions.utils.js +289 -0
- package/dist/products/services/utils/functions.utils.js.map +1 -0
- package/dist/products/services/utils/objects.utils.d.ts +13 -0
- package/dist/products/services/utils/objects.utils.js +89 -0
- package/dist/products/services/utils/objects.utils.js.map +1 -0
- package/dist/products/services/utils/string.utils.d.ts +12 -0
- package/dist/products/services/utils/string.utils.js +168 -0
- package/dist/products/services/utils/string.utils.js.map +1 -0
- package/dist/products/utils/string.utils.d.ts +1 -1
- package/dist/products/utils/string.utils.js +14 -2
- package/dist/products/utils/string.utils.js.map +1 -1
- package/dist/products/validators/index.d.ts +4 -1
- package/dist/products/validators/index.js +7 -1
- package/dist/products/validators/index.js.map +1 -1
- package/dist/products/validators/joi-validators/create.productDatabaseAction.validator.d.ts +15 -4
- package/dist/products/validators/joi-validators/create.productDatabaseAction.validator.js +501 -109
- package/dist/products/validators/joi-validators/create.productDatabaseAction.validator.js.map +1 -1
- package/dist/products/validators/joi-validators/create.productEnv.validator.js +1 -0
- package/dist/products/validators/joi-validators/create.productEnv.validator.js.map +1 -1
- package/dist/products/validators/joi-validators/create.productGraph.validator.d.ts +3 -0
- package/dist/products/validators/joi-validators/create.productGraph.validator.js +82 -0
- package/dist/products/validators/joi-validators/create.productGraph.validator.js.map +1 -0
- package/dist/products/validators/joi-validators/create.productGraphAction.validator.d.ts +14 -0
- package/dist/products/validators/joi-validators/create.productGraphAction.validator.js +696 -0
- package/dist/products/validators/joi-validators/create.productGraphAction.validator.js.map +1 -0
- package/dist/products/validators/joi-validators/create.productHealthcheck.validator.d.ts +4 -0
- package/dist/products/validators/joi-validators/create.productHealthcheck.validator.js +58 -0
- package/dist/products/validators/joi-validators/create.productHealthcheck.validator.js.map +1 -0
- package/dist/products/validators/joi-validators/create.productMessageBrokerTopic.validator.js +1 -0
- package/dist/products/validators/joi-validators/create.productMessageBrokerTopic.validator.js.map +1 -1
- package/dist/products/validators/joi-validators/create.productMessageBrokers.validator.js +9 -4
- package/dist/products/validators/joi-validators/create.productMessageBrokers.validator.js.map +1 -1
- package/dist/products/validators/joi-validators/create.productNotification.validator.js +5 -2
- package/dist/products/validators/joi-validators/create.productNotification.validator.js.map +1 -1
- package/dist/products/validators/joi-validators/create.userAuth.validator.js +1 -0
- package/dist/products/validators/joi-validators/create.userAuth.validator.js.map +1 -1
- package/dist/products/validators/joi-validators/update.dataValue.validator.js +1 -0
- package/dist/products/validators/joi-validators/update.dataValue.validator.js.map +1 -1
- package/dist/products/validators/joi-validators/update.productDatabaseAction.validator.d.ts +6 -0
- package/dist/products/validators/joi-validators/update.productDatabaseAction.validator.js +28 -26
- package/dist/products/validators/joi-validators/update.productDatabaseAction.validator.js.map +1 -1
- package/dist/products/validators/joi-validators/update.productEnv.validator.js +3 -0
- package/dist/products/validators/joi-validators/update.productEnv.validator.js.map +1 -1
- package/dist/products/validators/joi-validators/update.productGraph.validator.d.ts +3 -0
- package/dist/products/validators/joi-validators/update.productGraph.validator.js +87 -0
- package/dist/products/validators/joi-validators/update.productGraph.validator.js.map +1 -0
- package/dist/products/validators/joi-validators/update.productGraphAction.validator.d.ts +7 -0
- package/dist/products/validators/joi-validators/update.productGraphAction.validator.js +72 -0
- package/dist/products/validators/joi-validators/update.productGraphAction.validator.js.map +1 -0
- package/dist/products/validators/joi-validators/update.productMessageBrokerTopic.validator.js +1 -0
- package/dist/products/validators/joi-validators/update.productMessageBrokerTopic.validator.js.map +1 -1
- package/dist/products/validators/joi-validators/update.userAuth.validator.js +1 -0
- package/dist/products/validators/joi-validators/update.userAuth.validator.js.map +1 -1
- package/dist/test/test.health.d.ts +1 -0
- package/dist/test/test.health.js +49 -0
- package/dist/test/test.health.js.map +1 -0
- package/dist/test/test.import.js +51 -4
- package/dist/test/test.import.js.map +1 -1
- package/dist/test/test.imports.js +22 -7
- package/dist/test/test.imports.js.map +1 -1
- package/dist/test/test.notifiers.d.ts +1 -0
- package/dist/test/test.notifiers.js +85 -0
- package/dist/test/test.notifiers.js.map +1 -0
- package/dist/test/test.processor.js +30 -115
- package/dist/test/test.processor.js.map +1 -1
- package/dist/test/test.products.d.ts +1 -0
- package/dist/test/test.products.js +49 -0
- package/dist/test/test.products.js.map +1 -0
- package/dist/tsconfig.tsbuildinfo +1 -0
- package/dist/types/appBuilder.types.d.ts +5 -12
- package/dist/types/enums.d.ts +4 -1
- package/dist/types/enums.js +3 -0
- package/dist/types/enums.js.map +1 -1
- package/dist/types/index.types.d.ts +4 -0
- package/dist/types/pricing.types.d.ts +4 -0
- package/dist/types/pricing.types.js +3 -0
- package/dist/types/pricing.types.js.map +1 -0
- package/dist/types/processor.types.d.ts +67 -11
- package/dist/types/processor.types.js.map +1 -1
- package/dist/types/productsBuilder.types.d.ts +132 -14
- package/dist/types/productsBuilder.types.js +69 -4
- package/dist/types/productsBuilder.types.js.map +1 -1
- package/dist/types/request-tracker.interface.d.ts +0 -0
- package/dist/types/request-tracker.interface.js +1 -0
- package/dist/types/request-tracker.interface.js.map +1 -0
- package/dist/utils/constants.d.ts +1 -0
- package/dist/utils/constants.js +5 -0
- package/dist/utils/constants.js.map +1 -0
- package/package.json +17 -3
|
@@ -0,0 +1,150 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ResponseValidator = void 0;
|
|
4
|
+
const postman_utils_1 = require("../utils/postman.utils");
|
|
5
|
+
const postman_request_validators_1 = require("./postman-request.validators");
|
|
6
|
+
class ResponseValidator {
|
|
7
|
+
constructor(config = postman_utils_1.DEFAULT_CONFIG) {
|
|
8
|
+
this.extractedHeaders = new Set();
|
|
9
|
+
this.config = config;
|
|
10
|
+
}
|
|
11
|
+
validate(item, parentRequest) {
|
|
12
|
+
if (item.item) {
|
|
13
|
+
return Object.assign(Object.assign({}, item), { item: item.item.map(subItem => this.validate(subItem, parentRequest)) });
|
|
14
|
+
}
|
|
15
|
+
if (item.request) {
|
|
16
|
+
const validatedResponses = this.validateResponses(item.response, item.request);
|
|
17
|
+
if (this.extractedHeaders.size > 0 && item.request.header) {
|
|
18
|
+
item.request.header = this.mergeExtractedHeaders(item.request.header);
|
|
19
|
+
}
|
|
20
|
+
return Object.assign(Object.assign({}, item), { response: validatedResponses });
|
|
21
|
+
}
|
|
22
|
+
return item;
|
|
23
|
+
}
|
|
24
|
+
validateResponses(responses, request) {
|
|
25
|
+
if (!responses || responses.length === 0) {
|
|
26
|
+
return [this.createDefaultResponse(request)];
|
|
27
|
+
}
|
|
28
|
+
const validatedResponses = [];
|
|
29
|
+
for (const response of responses) {
|
|
30
|
+
const validated = this.validateResponse(response, request);
|
|
31
|
+
validatedResponses.push(validated);
|
|
32
|
+
if (validated.header) {
|
|
33
|
+
for (const header of validated.header) {
|
|
34
|
+
this.extractedHeaders.add(header.key);
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
const hasSuccessResponse = validatedResponses.some(r => r.code && r.code >= 200 && r.code < 300);
|
|
39
|
+
if (!hasSuccessResponse) {
|
|
40
|
+
validatedResponses.unshift(this.createDefaultResponse(request));
|
|
41
|
+
}
|
|
42
|
+
return validatedResponses;
|
|
43
|
+
}
|
|
44
|
+
validateResponse(response, request) {
|
|
45
|
+
const validated = Object.assign({}, response);
|
|
46
|
+
if (!validated.name) {
|
|
47
|
+
validated.name = validated.status || 'Response';
|
|
48
|
+
}
|
|
49
|
+
if (!validated.code || !postman_utils_1.ValidationUtils.isValidStatusCode(validated.code)) {
|
|
50
|
+
validated.code = this.config.response.code;
|
|
51
|
+
validated.status = this.config.response.status;
|
|
52
|
+
}
|
|
53
|
+
if (!validated.status) {
|
|
54
|
+
validated.status = this.getStatusText(validated.code);
|
|
55
|
+
}
|
|
56
|
+
validated.header = this.validateResponseHeaders(response.header);
|
|
57
|
+
if (!validated.body) {
|
|
58
|
+
validated.body = this.config.response.body;
|
|
59
|
+
}
|
|
60
|
+
if (!validated._postman_previewlanguage) {
|
|
61
|
+
validated._postman_previewlanguage = 'json';
|
|
62
|
+
}
|
|
63
|
+
if (validated.originalRequest) {
|
|
64
|
+
const requestValidator = new postman_request_validators_1.RequestValidator(this.config);
|
|
65
|
+
validated.originalRequest = requestValidator['validateRequest'](validated.originalRequest);
|
|
66
|
+
}
|
|
67
|
+
else if (request) {
|
|
68
|
+
validated.originalRequest = postman_utils_1.ValidationUtils.deepClone(request);
|
|
69
|
+
}
|
|
70
|
+
return validated;
|
|
71
|
+
}
|
|
72
|
+
validateResponseHeaders(headers) {
|
|
73
|
+
if (!headers || headers.length === 0) {
|
|
74
|
+
return postman_utils_1.ValidationUtils.deepClone(this.config.response.headers);
|
|
75
|
+
}
|
|
76
|
+
const validatedHeaders = [];
|
|
77
|
+
const seenKeys = new Set();
|
|
78
|
+
for (const header of headers) {
|
|
79
|
+
const key = postman_utils_1.ValidationUtils.cleanString(header.key);
|
|
80
|
+
const value = postman_utils_1.ValidationUtils.cleanString(header.value);
|
|
81
|
+
if (key && !seenKeys.has(key.toLowerCase())) {
|
|
82
|
+
validatedHeaders.push({
|
|
83
|
+
key,
|
|
84
|
+
value: value || '',
|
|
85
|
+
type: header.type || 'text',
|
|
86
|
+
disabled: header.disabled || false
|
|
87
|
+
});
|
|
88
|
+
seenKeys.add(key.toLowerCase());
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
return validatedHeaders;
|
|
92
|
+
}
|
|
93
|
+
mergeExtractedHeaders(requestHeaders) {
|
|
94
|
+
const mergedHeaders = [...requestHeaders];
|
|
95
|
+
const existingKeys = new Set(requestHeaders.map(h => h.key.toLowerCase()));
|
|
96
|
+
for (const headerKey of this.extractedHeaders) {
|
|
97
|
+
if (!existingKeys.has(headerKey.toLowerCase())) {
|
|
98
|
+
mergedHeaders.push({
|
|
99
|
+
key: headerKey,
|
|
100
|
+
value: '',
|
|
101
|
+
type: 'text',
|
|
102
|
+
disabled: false,
|
|
103
|
+
description: 'Auto-added from response examples'
|
|
104
|
+
});
|
|
105
|
+
existingKeys.add(headerKey.toLowerCase());
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
return mergedHeaders.filter(h => h.value && h.value.trim() !== '');
|
|
109
|
+
}
|
|
110
|
+
createDefaultResponse(request) {
|
|
111
|
+
return {
|
|
112
|
+
name: 'Success Response',
|
|
113
|
+
originalRequest: request ? postman_utils_1.ValidationUtils.deepClone(request) : undefined,
|
|
114
|
+
status: this.config.response.status,
|
|
115
|
+
code: this.config.response.code,
|
|
116
|
+
_postman_previewlanguage: 'json',
|
|
117
|
+
header: postman_utils_1.ValidationUtils.deepClone(this.config.response.headers),
|
|
118
|
+
body: this.config.response.body
|
|
119
|
+
};
|
|
120
|
+
}
|
|
121
|
+
getStatusText(code) {
|
|
122
|
+
const statusTexts = {
|
|
123
|
+
100: 'Continue',
|
|
124
|
+
101: 'Switching Protocols',
|
|
125
|
+
200: 'OK',
|
|
126
|
+
201: 'Created',
|
|
127
|
+
202: 'Accepted',
|
|
128
|
+
204: 'No Content',
|
|
129
|
+
301: 'Moved Permanently',
|
|
130
|
+
302: 'Found',
|
|
131
|
+
304: 'Not Modified',
|
|
132
|
+
400: 'Bad Request',
|
|
133
|
+
401: 'Unauthorized',
|
|
134
|
+
403: 'Forbidden',
|
|
135
|
+
404: 'Not Found',
|
|
136
|
+
405: 'Method Not Allowed',
|
|
137
|
+
409: 'Conflict',
|
|
138
|
+
422: 'Unprocessable Entity',
|
|
139
|
+
429: 'Too Many Requests',
|
|
140
|
+
500: 'Internal Server Error',
|
|
141
|
+
501: 'Not Implemented',
|
|
142
|
+
502: 'Bad Gateway',
|
|
143
|
+
503: 'Service Unavailable',
|
|
144
|
+
504: 'Gateway Timeout'
|
|
145
|
+
};
|
|
146
|
+
return statusTexts[code] || 'Unknown Status';
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
exports.ResponseValidator = ResponseValidator;
|
|
150
|
+
//# sourceMappingURL=postman-response.validators.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"postman-response.validators.js","sourceRoot":"","sources":["../../../src/parsers/validators/postman-response.validators.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { DefaultConfig, PostmanCollection, Variable } from "../types/postman.types";
|
|
2
|
+
export declare class VariableValidator {
|
|
3
|
+
private config;
|
|
4
|
+
private usedVariables;
|
|
5
|
+
constructor(config?: DefaultConfig);
|
|
6
|
+
validate(collection: PostmanCollection): Variable[];
|
|
7
|
+
private collectUsedVariables;
|
|
8
|
+
private collectFromItems;
|
|
9
|
+
private collectFromRequest;
|
|
10
|
+
private collectFromResponse;
|
|
11
|
+
private collectFromAuth;
|
|
12
|
+
private collectFromEvents;
|
|
13
|
+
private extractVariablesFromText;
|
|
14
|
+
}
|
|
@@ -0,0 +1,163 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.VariableValidator = void 0;
|
|
4
|
+
const postman_utils_1 = require("../utils/postman.utils");
|
|
5
|
+
class VariableValidator {
|
|
6
|
+
constructor(config = postman_utils_1.DEFAULT_CONFIG) {
|
|
7
|
+
this.usedVariables = new Set();
|
|
8
|
+
this.config = config;
|
|
9
|
+
}
|
|
10
|
+
validate(collection) {
|
|
11
|
+
this.collectUsedVariables(collection);
|
|
12
|
+
const variables = collection.variable || [];
|
|
13
|
+
const validatedVariables = [];
|
|
14
|
+
const seenKeys = new Set();
|
|
15
|
+
for (const variable of variables) {
|
|
16
|
+
const key = postman_utils_1.ValidationUtils.cleanString(variable.key);
|
|
17
|
+
if (key && !seenKeys.has(key)) {
|
|
18
|
+
if (this.usedVariables.has(key)) {
|
|
19
|
+
validatedVariables.push({
|
|
20
|
+
key,
|
|
21
|
+
value: variable.value !== undefined ? variable.value : this.config.variable.defaultValue,
|
|
22
|
+
type: variable.type || this.config.variable.type,
|
|
23
|
+
disabled: variable.disabled || false,
|
|
24
|
+
description: variable.description
|
|
25
|
+
});
|
|
26
|
+
seenKeys.add(key);
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
for (const usedVar of this.usedVariables) {
|
|
31
|
+
if (!seenKeys.has(usedVar)) {
|
|
32
|
+
validatedVariables.push({
|
|
33
|
+
key: usedVar,
|
|
34
|
+
value: this.config.variable.defaultValue,
|
|
35
|
+
type: this.config.variable.type,
|
|
36
|
+
disabled: false,
|
|
37
|
+
description: `Auto-generated variable for ${usedVar}`
|
|
38
|
+
});
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
return validatedVariables;
|
|
42
|
+
}
|
|
43
|
+
collectUsedVariables(collection) {
|
|
44
|
+
if (collection.item) {
|
|
45
|
+
this.collectFromItems(collection.item);
|
|
46
|
+
}
|
|
47
|
+
if (collection.auth) {
|
|
48
|
+
this.collectFromAuth(collection.auth);
|
|
49
|
+
}
|
|
50
|
+
if (collection.event) {
|
|
51
|
+
this.collectFromEvents(collection.event);
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
collectFromItems(items) {
|
|
55
|
+
for (const item of items) {
|
|
56
|
+
if (item.item) {
|
|
57
|
+
this.collectFromItems(item.item);
|
|
58
|
+
}
|
|
59
|
+
if (item.request) {
|
|
60
|
+
this.collectFromRequest(item.request);
|
|
61
|
+
}
|
|
62
|
+
if (item.response) {
|
|
63
|
+
for (const response of item.response) {
|
|
64
|
+
this.collectFromResponse(response);
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
if (item.event) {
|
|
68
|
+
this.collectFromEvents(item.event);
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
collectFromRequest(request) {
|
|
73
|
+
if (typeof request.url === 'string') {
|
|
74
|
+
this.extractVariablesFromText(request.url);
|
|
75
|
+
}
|
|
76
|
+
else if (request.url) {
|
|
77
|
+
if (request.url.raw)
|
|
78
|
+
this.extractVariablesFromText(request.url.raw);
|
|
79
|
+
if (request.url.query) {
|
|
80
|
+
for (const param of request.url.query) {
|
|
81
|
+
if (param.value)
|
|
82
|
+
this.extractVariablesFromText(param.value);
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
if (request.url.variable) {
|
|
86
|
+
for (const variable of request.url.variable) {
|
|
87
|
+
if (variable.value)
|
|
88
|
+
this.extractVariablesFromText(variable.value);
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
if (request.header) {
|
|
93
|
+
for (const header of request.header) {
|
|
94
|
+
this.extractVariablesFromText(header.value);
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
if (request.body) {
|
|
98
|
+
if (request.body.raw) {
|
|
99
|
+
this.extractVariablesFromText(request.body.raw);
|
|
100
|
+
}
|
|
101
|
+
if (request.body.urlencoded) {
|
|
102
|
+
for (const param of request.body.urlencoded) {
|
|
103
|
+
if (param.value)
|
|
104
|
+
this.extractVariablesFromText(param.value);
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
if (request.body.formdata) {
|
|
108
|
+
for (const param of request.body.formdata) {
|
|
109
|
+
if (param.value)
|
|
110
|
+
this.extractVariablesFromText(param.value);
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
if (request.auth) {
|
|
115
|
+
this.collectFromAuth(request.auth);
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
collectFromResponse(response) {
|
|
119
|
+
if (response.body) {
|
|
120
|
+
this.extractVariablesFromText(response.body);
|
|
121
|
+
}
|
|
122
|
+
if (response.header) {
|
|
123
|
+
for (const header of response.header) {
|
|
124
|
+
this.extractVariablesFromText(header.value);
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
if (response.originalRequest) {
|
|
128
|
+
this.collectFromRequest(response.originalRequest);
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
collectFromAuth(auth) {
|
|
132
|
+
const extractFromAuthArray = (arr) => {
|
|
133
|
+
if (!arr)
|
|
134
|
+
return;
|
|
135
|
+
for (const item of arr) {
|
|
136
|
+
if (item.value && typeof item.value === 'string') {
|
|
137
|
+
this.extractVariablesFromText(item.value);
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
};
|
|
141
|
+
extractFromAuthArray(auth.bearer);
|
|
142
|
+
extractFromAuthArray(auth.basic);
|
|
143
|
+
extractFromAuthArray(auth.oauth2);
|
|
144
|
+
extractFromAuthArray(auth.apikey);
|
|
145
|
+
}
|
|
146
|
+
collectFromEvents(events) {
|
|
147
|
+
for (const event of events) {
|
|
148
|
+
if (event.script && event.script.exec) {
|
|
149
|
+
for (const line of event.script.exec) {
|
|
150
|
+
this.extractVariablesFromText(line);
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
extractVariablesFromText(text) {
|
|
156
|
+
const variables = postman_utils_1.ValidationUtils.extractVariables(text);
|
|
157
|
+
for (const variable of variables) {
|
|
158
|
+
this.usedVariables.add(variable);
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
exports.VariableValidator = VariableValidator;
|
|
163
|
+
//# sourceMappingURL=postman-variable.validators.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"postman-variable.validators.js","sourceRoot":"","sources":["../../../src/parsers/validators/postman-variable.validators.ts"],"names":[],"mappings":"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"}
|
|
File without changes
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
//# sourceMappingURL=pricing.repo.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pricing.repo.js","sourceRoot":"","sources":["../../src/pricing/pricing.repo.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { IPricingInit } from "../types/pricing.types";
|
|
2
|
+
import { IPricing } from "./pricing.types";
|
|
3
|
+
export interface IPricingService {
|
|
4
|
+
initializePricingByTag: (pricing_tag: string, app_id: string) => Promise<void>;
|
|
5
|
+
fetchPricing(): IPricing;
|
|
6
|
+
fetchOveragePricing(): IPricing;
|
|
7
|
+
}
|
|
8
|
+
export default class PricingService implements IPricingService {
|
|
9
|
+
private user_id;
|
|
10
|
+
private workspace_id;
|
|
11
|
+
private token;
|
|
12
|
+
private public_key;
|
|
13
|
+
private app_id;
|
|
14
|
+
private pricingApi;
|
|
15
|
+
private pricing;
|
|
16
|
+
private overagePricing;
|
|
17
|
+
private pricing_tag;
|
|
18
|
+
private overage_pricing_tag;
|
|
19
|
+
constructor({ workspace_id, public_key, user_id, token, env_type, redis_client }: IPricingInit);
|
|
20
|
+
fetchPricing(): IPricing;
|
|
21
|
+
fetchOveragePricing(): IPricing;
|
|
22
|
+
initializePricingByTag(pricing_tag: string, app_id: string): Promise<void>;
|
|
23
|
+
private getUserAccess;
|
|
24
|
+
}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const pricingApi_service_1 = require("../api/services/pricingApi.service");
|
|
4
|
+
const string_utils_1 = require("./utils/string.utils");
|
|
5
|
+
class PricingService {
|
|
6
|
+
constructor({ workspace_id, public_key, user_id, token, env_type, redis_client }) {
|
|
7
|
+
this.workspace_id = workspace_id;
|
|
8
|
+
this.public_key = public_key;
|
|
9
|
+
this.user_id = user_id;
|
|
10
|
+
this.token = token;
|
|
11
|
+
this.pricingApi = new pricingApi_service_1.PricingApiService(env_type);
|
|
12
|
+
}
|
|
13
|
+
fetchPricing() {
|
|
14
|
+
if (!this.pricing) {
|
|
15
|
+
throw new Error('Pricing not yet initiated');
|
|
16
|
+
}
|
|
17
|
+
return this.pricing;
|
|
18
|
+
}
|
|
19
|
+
fetchOveragePricing() {
|
|
20
|
+
if (!this.overagePricing) {
|
|
21
|
+
throw new Error('Pricing not yet initiated');
|
|
22
|
+
}
|
|
23
|
+
return this.overagePricing;
|
|
24
|
+
}
|
|
25
|
+
async initializePricingByTag(pricing_tag, app_id) {
|
|
26
|
+
try {
|
|
27
|
+
const params = { pricing_tag, app_id };
|
|
28
|
+
const overage_params = { pricing_tag: (0, string_utils_1.extractOverageTag)(pricing_tag), app_id };
|
|
29
|
+
console.log('Fetching pricing for:', params);
|
|
30
|
+
console.log('Fetching overage pricing for:', overage_params);
|
|
31
|
+
[this.pricing, this.overagePricing] = await Promise.all([this.pricingApi.fetchPricingByTag(params, this.getUserAccess()), this.pricingApi.fetchPricingByTag(overage_params, this.getUserAccess())]);
|
|
32
|
+
console.error(this.pricing, pricing_tag);
|
|
33
|
+
this.pricing_tag = pricing_tag;
|
|
34
|
+
this.overage_pricing_tag = (0, string_utils_1.extractOverageTag)(pricing_tag);
|
|
35
|
+
this.app_id = app_id;
|
|
36
|
+
}
|
|
37
|
+
catch (e) {
|
|
38
|
+
throw e;
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
getUserAccess() {
|
|
42
|
+
return {
|
|
43
|
+
user_id: this.user_id,
|
|
44
|
+
workspace_id: this.workspace_id,
|
|
45
|
+
token: this.token,
|
|
46
|
+
public_key: this.public_key,
|
|
47
|
+
};
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
exports.default = PricingService;
|
|
51
|
+
//# sourceMappingURL=pricing.service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pricing.service.js","sourceRoot":"","sources":["../../src/pricing/pricing.service.ts"],"names":[],"mappings":";;AAAA,2EAA2F;AAI3F,uDAAyD;AAQzD,MAAqB,cAAc;IAc/B,YAAY,EAAE,YAAY,EAAE,UAAU,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,YAAY,EAAgB;QAC1F,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;QACjC,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,UAAU,GAAG,IAAI,sCAAiB,CAAC,QAAQ,CAAC,CAAC;IACtD,CAAC;IAED,YAAY;QACR,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;YAClB,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC;QAC/C,CAAC;QACD,OAAO,IAAI,CAAC,OAAO,CAAC;IACxB,CAAC;IAED,mBAAmB;QACf,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC;YACzB,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC;QAC/C,CAAC;QACD,OAAO,IAAI,CAAC,cAAc,CAAC;IAC/B,CAAC;IAED,KAAK,CAAC,sBAAsB,CAAC,WAAmB,EAAE,MAAc;QAC5D,IAAI,CAAC;YACD,MAAM,MAAM,GAAsB,EAAE,WAAW,EAAE,MAAM,EAAE,CAAC;YAC1D,MAAM,cAAc,GAAsB,EAAE,WAAW,EAAE,IAAA,gCAAiB,EAAC,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;YAClG,OAAO,CAAC,GAAG,CAAC,uBAAuB,EAAE,MAAM,CAAC,CAAC;YAC7C,OAAO,CAAC,GAAG,CAAC,+BAA+B,EAAE,cAAc,CAAC,CAAC;YAC7D,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,cAAc,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,iBAAiB,CAAC,MAAM,EAAE,IAAI,CAAC,aAAa,EAAE,CAAC,EAAE,IAAI,CAAC,UAAU,CAAC,iBAAiB,CAAC,cAAc,EAAE,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC,CAAC;YACpM,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,WAAW,CAAC,CAAA;YACxC,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;YAC/B,IAAI,CAAC,mBAAmB,GAAG,IAAA,gCAAiB,EAAC,WAAW,CAAC,CAAC;YAC1D,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACzB,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACT,MAAM,CAAC,CAAC;QACZ,CAAC;IACL,CAAC;IAEO,aAAa;QACjB,OAAO;YACL,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,YAAY,EAAE,IAAI,CAAC,YAAY;YAC/B,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,UAAU,EAAE,IAAI,CAAC,UAAU;SAC5B,CAAC;IACJ,CAAC;CAEN;AA7DD,iCA6DC"}
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
import { IRequestCounter } from "../processor/types/request.types";
|
|
2
|
+
export declare enum paymentInterval {
|
|
3
|
+
DAILY = "daily",
|
|
4
|
+
WEEKLY = "weekly",
|
|
5
|
+
BI_WEEKLY = "bi-weekly",
|
|
6
|
+
MONTHLY = "monthly",
|
|
7
|
+
QUARTERLY = "quarterly",
|
|
8
|
+
YEARLY = "yearly",
|
|
9
|
+
ONCE = "one-time"
|
|
10
|
+
}
|
|
11
|
+
export declare enum pricingMode {
|
|
12
|
+
PER_REQUEST = "per_request",
|
|
13
|
+
ONE_TIME = "one_time",
|
|
14
|
+
UPFRONT = "upfront",
|
|
15
|
+
RECURRING = "recurring"
|
|
16
|
+
}
|
|
17
|
+
export interface IPricing {
|
|
18
|
+
_id: string;
|
|
19
|
+
user_id: string;
|
|
20
|
+
action_id: string;
|
|
21
|
+
app_tag?: string;
|
|
22
|
+
pricing_tag: string;
|
|
23
|
+
public_key: string;
|
|
24
|
+
id?: string;
|
|
25
|
+
app_id?: string;
|
|
26
|
+
name: string;
|
|
27
|
+
limits?: {
|
|
28
|
+
per_minute?: number;
|
|
29
|
+
per_day?: number;
|
|
30
|
+
per_hour?: number;
|
|
31
|
+
per_week?: number;
|
|
32
|
+
per_month?: number;
|
|
33
|
+
};
|
|
34
|
+
pricing_mode: pricingMode;
|
|
35
|
+
interval?: paymentInterval;
|
|
36
|
+
unit_price: number;
|
|
37
|
+
currency: string;
|
|
38
|
+
envs: Array<string>;
|
|
39
|
+
}
|
|
40
|
+
export interface IPricingLimits {
|
|
41
|
+
per_minute?: number;
|
|
42
|
+
per_hour?: number;
|
|
43
|
+
per_day?: number;
|
|
44
|
+
per_week?: number;
|
|
45
|
+
per_month?: number;
|
|
46
|
+
}
|
|
47
|
+
export interface IPricingData {
|
|
48
|
+
_id: string;
|
|
49
|
+
app_id: string;
|
|
50
|
+
pricing_tag: string;
|
|
51
|
+
action_id: string;
|
|
52
|
+
pricing_mode: pricingMode;
|
|
53
|
+
interval: paymentInterval;
|
|
54
|
+
limits: IPricingLimits;
|
|
55
|
+
unit_price: number;
|
|
56
|
+
name: string;
|
|
57
|
+
currency: string;
|
|
58
|
+
user_id: string;
|
|
59
|
+
public_key: string;
|
|
60
|
+
}
|
|
61
|
+
export interface ILogData {
|
|
62
|
+
app_id?: string;
|
|
63
|
+
workspace_id?: string;
|
|
64
|
+
user_id?: string;
|
|
65
|
+
timestamp?: Date;
|
|
66
|
+
[key: string]: any;
|
|
67
|
+
}
|
|
68
|
+
export interface IPricingResult {
|
|
69
|
+
pricing_tag: string;
|
|
70
|
+
pricing_cost: number;
|
|
71
|
+
currency: string;
|
|
72
|
+
is_overage: boolean;
|
|
73
|
+
requests_made: IRequestCounter;
|
|
74
|
+
limit_exceeded: boolean;
|
|
75
|
+
exceeded_limits: string[];
|
|
76
|
+
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.pricingMode = exports.paymentInterval = void 0;
|
|
4
|
+
var paymentInterval;
|
|
5
|
+
(function (paymentInterval) {
|
|
6
|
+
paymentInterval["DAILY"] = "daily";
|
|
7
|
+
paymentInterval["WEEKLY"] = "weekly";
|
|
8
|
+
paymentInterval["BI_WEEKLY"] = "bi-weekly";
|
|
9
|
+
paymentInterval["MONTHLY"] = "monthly";
|
|
10
|
+
paymentInterval["QUARTERLY"] = "quarterly";
|
|
11
|
+
paymentInterval["YEARLY"] = "yearly";
|
|
12
|
+
paymentInterval["ONCE"] = "one-time";
|
|
13
|
+
})(paymentInterval || (exports.paymentInterval = paymentInterval = {}));
|
|
14
|
+
var pricingMode;
|
|
15
|
+
(function (pricingMode) {
|
|
16
|
+
pricingMode["PER_REQUEST"] = "per_request";
|
|
17
|
+
pricingMode["ONE_TIME"] = "one_time";
|
|
18
|
+
pricingMode["UPFRONT"] = "upfront";
|
|
19
|
+
pricingMode["RECURRING"] = "recurring";
|
|
20
|
+
})(pricingMode || (exports.pricingMode = pricingMode = {}));
|
|
21
|
+
//# sourceMappingURL=pricing.types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pricing.types.js","sourceRoot":"","sources":["../../src/pricing/pricing.types.ts"],"names":[],"mappings":";;;AAEA,IAAY,eAQX;AARD,WAAY,eAAe;IACvB,kCAAe,CAAA;IACf,oCAAiB,CAAA;IACjB,0CAAuB,CAAA;IACvB,sCAAmB,CAAA;IACnB,0CAAuB,CAAA;IACvB,oCAAiB,CAAA;IACjB,oCAAiB,CAAA;AACrB,CAAC,EARW,eAAe,+BAAf,eAAe,QAQ1B;AAED,IAAY,WAKX;AALD,WAAY,WAAW;IACnB,0CAA2B,CAAA;IAC3B,oCAAqB,CAAA;IACrB,kCAAmB,CAAA;IACnB,sCAAuB,CAAA;AAC3B,CAAC,EALW,WAAW,2BAAX,WAAW,QAKtB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const extractOverageTag: (input: string) => string;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.extractOverageTag = void 0;
|
|
4
|
+
const extractOverageTag = (input) => {
|
|
5
|
+
const [origin, tag] = input.split(":");
|
|
6
|
+
return `${origin}:${tag}:overage`;
|
|
7
|
+
};
|
|
8
|
+
exports.extractOverageTag = extractOverageTag;
|
|
9
|
+
//# sourceMappingURL=string.utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"string.utils.js","sourceRoot":"","sources":["../../../src/pricing/utils/string.utils.ts"],"names":[],"mappings":";;;AAAO,MAAM,iBAAiB,GAAG,CAAC,KAAa,EAAU,EAAE;IACzD,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACvC,OAAO,GAAG,MAAM,IAAI,GAAG,UAAU,CAAC;AACpC,CAAC,CAAA;AAHY,QAAA,iBAAiB,qBAG7B"}
|
|
@@ -10,21 +10,21 @@ export declare function loadSMSClient(): Promise<{
|
|
|
10
10
|
}>;
|
|
11
11
|
sendViaTwilio(message: string): Promise<{
|
|
12
12
|
success: boolean;
|
|
13
|
-
|
|
13
|
+
responses: import("twilio/lib/rest/api/v2010/account/message").MessageInstance[];
|
|
14
14
|
error?: undefined;
|
|
15
15
|
} | {
|
|
16
16
|
success: boolean;
|
|
17
17
|
error: any;
|
|
18
|
-
|
|
18
|
+
responses?: undefined;
|
|
19
19
|
}>;
|
|
20
20
|
sendViaNexmo(message: string): Promise<{
|
|
21
21
|
success: boolean;
|
|
22
|
-
|
|
22
|
+
responses: any[];
|
|
23
23
|
error?: undefined;
|
|
24
24
|
} | {
|
|
25
25
|
success: boolean;
|
|
26
26
|
error: any;
|
|
27
|
-
|
|
27
|
+
responses?: undefined;
|
|
28
28
|
}>;
|
|
29
29
|
sendViaPlivo(message: string): Promise<{
|
|
30
30
|
success: boolean;
|
|
@@ -67,12 +67,13 @@ async function loadSMSClient() {
|
|
|
67
67
|
}
|
|
68
68
|
const client = twilio(this.config.accountSid, this.config.authToken);
|
|
69
69
|
try {
|
|
70
|
-
const
|
|
70
|
+
const sendPromises = this.recipients.map((recipient) => client.messages.create({
|
|
71
71
|
body: message,
|
|
72
72
|
from: this.config.sender,
|
|
73
|
-
to:
|
|
74
|
-
});
|
|
75
|
-
|
|
73
|
+
to: recipient,
|
|
74
|
+
}));
|
|
75
|
+
const responses = await Promise.all(sendPromises);
|
|
76
|
+
return { success: true, responses };
|
|
76
77
|
}
|
|
77
78
|
catch (error) {
|
|
78
79
|
return { success: false, error };
|
|
@@ -80,13 +81,25 @@ async function loadSMSClient() {
|
|
|
80
81
|
}
|
|
81
82
|
async sendViaNexmo(message) {
|
|
82
83
|
try {
|
|
83
|
-
const
|
|
84
|
+
const auth = {
|
|
85
|
+
username: this.config.apiKey,
|
|
86
|
+
password: this.config.apiSecret,
|
|
87
|
+
};
|
|
88
|
+
const sendPromises = this.recipients.map((recipient) => axios_1.default.post('https://api.nexmo.com/v1/messages', {
|
|
89
|
+
to: recipient,
|
|
84
90
|
from: this.config.sender,
|
|
85
|
-
|
|
91
|
+
channel: 'sms',
|
|
92
|
+
message_type: 'text',
|
|
86
93
|
text: message,
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
94
|
+
}, {
|
|
95
|
+
auth,
|
|
96
|
+
headers: {
|
|
97
|
+
'Content-Type': 'application/json',
|
|
98
|
+
'Accept': 'application/json',
|
|
99
|
+
},
|
|
100
|
+
}));
|
|
101
|
+
const responses = await Promise.all(sendPromises);
|
|
102
|
+
return { success: true, responses: responses.map(r => r.data) };
|
|
90
103
|
}
|
|
91
104
|
catch (error) {
|
|
92
105
|
return { success: false, error };
|
|
@@ -96,7 +109,7 @@ async function loadSMSClient() {
|
|
|
96
109
|
try {
|
|
97
110
|
const response = await axios_1.default.post(`https://api.plivo.com/v1/Account/${this.config.apiKey}/Message/`, {
|
|
98
111
|
src: this.config.sender,
|
|
99
|
-
dst: this.recipients
|
|
112
|
+
dst: this.recipients.join('<'),
|
|
100
113
|
text: message,
|
|
101
114
|
auth_id: this.config.apiKey,
|
|
102
115
|
});
|