@golemio/core 1.18.1-dev.1592261843 → 1.19.0
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/helpers/DateTime.js +4 -5
- package/dist/helpers/DateTime.js.map +1 -1
- package/dist/helpers/HealthCheck.js +5 -14
- package/dist/helpers/HealthCheck.js.map +1 -1
- package/dist/helpers/configuration/SimpleConfig.js +4 -1
- package/dist/helpers/configuration/SimpleConfig.js.map +1 -1
- package/dist/helpers/data-access/amqp/AlternateExchangeCreator.js +4 -13
- package/dist/helpers/data-access/amqp/AlternateExchangeCreator.js.map +1 -1
- package/dist/helpers/data-access/amqp/AmqpConnector.js +28 -40
- package/dist/helpers/data-access/amqp/AmqpConnector.js.map +1 -1
- package/dist/helpers/data-access/feature-flags/helpers/AbstractFeatureFlagServiceWrapper.js +2 -13
- package/dist/helpers/data-access/feature-flags/helpers/AbstractFeatureFlagServiceWrapper.js.map +1 -1
- package/dist/helpers/data-access/feature-flags/providers/NoopFeatureFlagService.js +9 -24
- package/dist/helpers/data-access/feature-flags/providers/NoopFeatureFlagService.js.map +1 -1
- package/dist/helpers/data-access/postgres/DatabaseConnector.js +23 -25
- package/dist/helpers/data-access/postgres/DatabaseConnector.js.map +1 -1
- package/dist/helpers/data-access/postgres/repositories/AbstractCachedRepository.js +3 -12
- package/dist/helpers/data-access/postgres/repositories/AbstractCachedRepository.js.map +1 -1
- package/dist/helpers/data-access/pubsub/subscribers/RedisSubscriber.js +15 -30
- package/dist/helpers/data-access/pubsub/subscribers/RedisSubscriber.js.map +1 -1
- package/dist/helpers/data-access/redis/IoRedisConnector.js +8 -17
- package/dist/helpers/data-access/redis/IoRedisConnector.js.map +1 -1
- package/dist/helpers/data-access/storage/AzureBlobStorageService.js +64 -81
- package/dist/helpers/data-access/storage/AzureBlobStorageService.js.map +1 -1
- package/dist/helpers/data-access/storage/NoopStorageService.js +9 -26
- package/dist/helpers/data-access/storage/NoopStorageService.js.map +1 -1
- package/dist/helpers/data-access/table-storage/TableStorageServiceFactory.js +1 -2
- package/dist/helpers/data-access/table-storage/TableStorageServiceFactory.js.map +1 -1
- package/dist/helpers/data-access/table-storage/providers/AzureTableStorageService.js +39 -68
- package/dist/helpers/data-access/table-storage/providers/AzureTableStorageService.js.map +1 -1
- package/dist/helpers/data-access/table-storage/providers/NoopTableStorageService.js +4 -17
- package/dist/helpers/data-access/table-storage/providers/NoopTableStorageService.js.map +1 -1
- package/dist/helpers/logger/LoggerProvider.js +33 -14
- package/dist/helpers/logger/LoggerProvider.js.map +1 -1
- package/dist/helpers/logger/RequestLoggerProvider.js +1 -2
- package/dist/helpers/logger/RequestLoggerProvider.js.map +1 -1
- package/dist/helpers/routing/AbstractGeoJsonRouter.js +16 -34
- package/dist/helpers/routing/AbstractGeoJsonRouter.js.map +1 -1
- package/dist/input-gateway/config/InputGatewayConfiguration.js +1 -2
- package/dist/input-gateway/config/InputGatewayConfiguration.js.map +1 -1
- package/dist/input-gateway/connectors/AMQPConnector.js +52 -68
- package/dist/input-gateway/connectors/AMQPConnector.js.map +1 -1
- package/dist/input-gateway/controllers/BaseController.js +4 -13
- package/dist/input-gateway/controllers/BaseController.js.map +1 -1
- package/dist/integration-engine/connectors/AMQPConnector.js +28 -40
- package/dist/integration-engine/connectors/AMQPConnector.js.map +1 -1
- package/dist/integration-engine/data-access/RawDataStorage.js +7 -16
- package/dist/integration-engine/data-access/RawDataStorage.js.map +1 -1
- package/dist/integration-engine/data-access/pubsub/RedisPubSubChannel.js +3 -14
- package/dist/integration-engine/data-access/pubsub/RedisPubSubChannel.js.map +1 -1
- package/dist/integration-engine/data-access/pubsub/subscribers/RedisSubscriber.js +12 -25
- package/dist/integration-engine/data-access/pubsub/subscribers/RedisSubscriber.js.map +1 -1
- package/dist/integration-engine/datasources/DataSource.js +41 -60
- package/dist/integration-engine/datasources/DataSource.js.map +1 -1
- package/dist/integration-engine/datasources/DataSourceStream.js +12 -21
- package/dist/integration-engine/datasources/DataSourceStream.js.map +1 -1
- package/dist/integration-engine/datasources/DataSourceStreamManager.js +4 -13
- package/dist/integration-engine/datasources/DataSourceStreamManager.js.map +1 -1
- package/dist/integration-engine/datasources/DataSourceStreamed.js +37 -51
- package/dist/integration-engine/datasources/DataSourceStreamed.js.map +1 -1
- package/dist/integration-engine/datasources/RetryDataSource.js +25 -40
- package/dist/integration-engine/datasources/RetryDataSource.js.map +1 -1
- package/dist/integration-engine/datasources/datatype-strategy/CSVDataTypeStrategy.js +22 -33
- package/dist/integration-engine/datasources/datatype-strategy/CSVDataTypeStrategy.js.map +1 -1
- package/dist/integration-engine/datasources/datatype-strategy/JSONDataTypeStrategy.js +14 -25
- package/dist/integration-engine/datasources/datatype-strategy/JSONDataTypeStrategy.js.map +1 -1
- package/dist/integration-engine/datasources/datatype-strategy/XMLDataTypeStrategy.js +11 -22
- package/dist/integration-engine/datasources/datatype-strategy/XMLDataTypeStrategy.js.map +1 -1
- package/dist/integration-engine/datasources/datatype-strategy/ZipFileDataTypeStrategy.js +33 -45
- package/dist/integration-engine/datasources/datatype-strategy/ZipFileDataTypeStrategy.js.map +1 -1
- package/dist/integration-engine/datasources/protocol-strategy/FTPProtocolStrategy.js +17 -26
- package/dist/integration-engine/datasources/protocol-strategy/FTPProtocolStrategy.js.map +1 -1
- package/dist/integration-engine/datasources/protocol-strategy/GoogleCloudStorageProtocolStrategy.js +10 -19
- package/dist/integration-engine/datasources/protocol-strategy/GoogleCloudStorageProtocolStrategy.js.map +1 -1
- package/dist/integration-engine/datasources/protocol-strategy/HTTPFetchProtocolStrategy.js +42 -51
- package/dist/integration-engine/datasources/protocol-strategy/HTTPFetchProtocolStrategy.js.map +1 -1
- package/dist/integration-engine/datasources/protocol-strategy/HTTPRequestProtocolStrategy.js +49 -62
- package/dist/integration-engine/datasources/protocol-strategy/HTTPRequestProtocolStrategy.js.map +1 -1
- package/dist/integration-engine/datasources/protocol-strategy/HTTPRequestProtocolStrategyStreamed.js +67 -81
- package/dist/integration-engine/datasources/protocol-strategy/HTTPRequestProtocolStrategyStreamed.js.map +1 -1
- package/dist/integration-engine/datasources/protocol-strategy/PaginatedHTTPProtocolStrategy.js +29 -38
- package/dist/integration-engine/datasources/protocol-strategy/PaginatedHTTPProtocolStrategy.js.map +1 -1
- package/dist/integration-engine/datasources/protocol-strategy/PostgresProtocolStrategy.js +37 -42
- package/dist/integration-engine/datasources/protocol-strategy/PostgresProtocolStrategy.js.map +1 -1
- package/dist/integration-engine/datasources/protocol-strategy/PostgresProtocolStrategyStreamed.js +29 -32
- package/dist/integration-engine/datasources/protocol-strategy/PostgresProtocolStrategyStreamed.js.map +1 -1
- package/dist/integration-engine/datasources/protocol-strategy/ProtocolStrategy.js +73 -88
- package/dist/integration-engine/datasources/protocol-strategy/ProtocolStrategy.js.map +1 -1
- package/dist/integration-engine/datasources/protocol-strategy/SFTPProtocolStrategy.js +17 -26
- package/dist/integration-engine/datasources/protocol-strategy/SFTPProtocolStrategy.js.map +1 -1
- package/dist/integration-engine/datasources/protocol-strategy/helpers/FTPFileProcessor.js +37 -49
- package/dist/integration-engine/datasources/protocol-strategy/helpers/FTPFileProcessor.js.map +1 -1
- package/dist/integration-engine/helpers/FileCompressor.js +59 -76
- package/dist/integration-engine/helpers/FileCompressor.js.map +1 -1
- package/dist/integration-engine/helpers/GeocodeApi.js +20 -30
- package/dist/integration-engine/helpers/GeocodeApi.js.map +1 -1
- package/dist/integration-engine/helpers/IntegrationErrorHandler.js +3 -3
- package/dist/integration-engine/helpers/IntegrationErrorHandler.js.map +1 -1
- package/dist/integration-engine/helpers/PaginationHelper.js +1 -2
- package/dist/integration-engine/helpers/PaginationHelper.js.map +1 -1
- package/dist/integration-engine/models/PostgresModel.js +70 -75
- package/dist/integration-engine/models/PostgresModel.js.map +1 -1
- package/dist/integration-engine/models/RedisModel.js +28 -39
- package/dist/integration-engine/models/RedisModel.js.map +1 -1
- package/dist/integration-engine/queueprocessors/QueueProcessor.js +23 -28
- package/dist/integration-engine/queueprocessors/QueueProcessor.js.map +1 -1
- package/dist/integration-engine/transformations/BaseTransformation.js +8 -17
- package/dist/integration-engine/transformations/BaseTransformation.js.map +1 -1
- package/dist/integration-engine/workers/AbstractTask.js +7 -18
- package/dist/integration-engine/workers/AbstractTask.js.map +1 -1
- package/dist/integration-engine/workers/AbstractTaskJsonSchema.js +25 -38
- package/dist/integration-engine/workers/AbstractTaskJsonSchema.js.map +1 -1
- package/dist/integration-engine/workers/AbstractTaskWithoutValidation.js +2 -13
- package/dist/integration-engine/workers/AbstractTaskWithoutValidation.js.map +1 -1
- package/dist/integration-engine/workers/BaseWorker.js +4 -13
- package/dist/integration-engine/workers/BaseWorker.js.map +1 -1
- package/dist/integration-engine/workers/helpers/MessageDataParser.js +1 -2
- package/dist/integration-engine/workers/helpers/MessageDataParser.js.map +1 -1
- package/dist/integration-engine/workers/helpers/MessageDataValidator.js +18 -29
- package/dist/integration-engine/workers/helpers/MessageDataValidator.js.map +1 -1
- package/dist/integration-engine/workers/helpers/WebhookDecorators.js +1 -10
- package/dist/integration-engine/workers/helpers/WebhookDecorators.js.map +1 -1
- package/dist/integration-engine/workers/webhooks/CloudflareCachePurgeWebhook.js +13 -24
- package/dist/integration-engine/workers/webhooks/CloudflareCachePurgeWebhook.js.map +1 -1
- package/dist/monitoring/metrics/metrics-builder.js +21 -17
- package/dist/monitoring/metrics/metrics-builder.js.map +1 -1
- package/dist/monitoring/metrics/metrics-service.js +4 -14
- package/dist/monitoring/metrics/metrics-service.js.map +1 -1
- package/dist/monitoring/opentelemetry/instrumentation/configs/amqplib.js +1 -2
- package/dist/monitoring/opentelemetry/instrumentation/configs/amqplib.js.map +1 -1
- package/dist/monitoring/opentelemetry/instrumentation/configs/aws-sdk.js +1 -1
- package/dist/monitoring/opentelemetry/instrumentation/configs/aws-sdk.js.map +1 -1
- package/dist/monitoring/opentelemetry/trace-provider.js +8 -2
- package/dist/monitoring/opentelemetry/trace-provider.js.map +1 -1
- package/dist/monitoring/sentry/sentry-provider.js +1 -1
- package/dist/monitoring/sentry/sentry-provider.js.map +1 -1
- package/dist/monitoring/sentry/sentry-transactions.js +9 -19
- package/dist/monitoring/sentry/sentry-transactions.js.map +1 -1
- package/dist/output-gateway/Geo.js +3 -24
- package/dist/output-gateway/Geo.js.map +1 -1
- package/dist/output-gateway/config/OutputGatewayConfiguration.js +1 -2
- package/dist/output-gateway/config/OutputGatewayConfiguration.js.map +1 -1
- package/dist/output-gateway/database/index.js +3 -12
- package/dist/output-gateway/database/index.js.map +1 -1
- package/dist/output-gateway/ioc/Di.js +1 -10
- package/dist/output-gateway/ioc/Di.js.map +1 -1
- package/dist/output-gateway/models/SequelizeModel.js +4 -2
- package/dist/output-gateway/models/SequelizeModel.js.map +1 -1
- package/dist/output-gateway/routes/GeoJsonRouter.js +14 -32
- package/dist/output-gateway/routes/GeoJsonRouter.js.map +1 -1
- package/package.json +5 -6
- package/tsconfig.base.json +2 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HTTPRequestProtocolStrategyStreamed.js","sourceRoot":"","sources":["../../../../src/integration-engine/datasources/protocol-strategy/HTTPRequestProtocolStrategyStreamed.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"HTTPRequestProtocolStrategyStreamed.js","sourceRoot":"","sources":["../../../../src/integration-engine/datasources/protocol-strategy/HTTPRequestProtocolStrategyStreamed.ts"],"names":[],"mappings":"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"}
|
package/dist/integration-engine/datasources/protocol-strategy/PaginatedHTTPProtocolStrategy.js
CHANGED
|
@@ -1,13 +1,4 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
-
});
|
|
10
|
-
};
|
|
11
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
3
|
exports.PaginatedHTTPProtocolStrategy = void 0;
|
|
13
4
|
const PaginationHelper_1 = require("../../helpers/PaginationHelper");
|
|
@@ -15,44 +6,44 @@ const errors_1 = require("@golemio/errors");
|
|
|
15
6
|
const HTTPFetchProtocolStrategy_1 = require("./HTTPFetchProtocolStrategy");
|
|
16
7
|
class PaginatedHTTPProtocolStrategy extends HTTPFetchProtocolStrategy_1.HTTPFetchProtocolStrategy {
|
|
17
8
|
constructor(settings) {
|
|
18
|
-
super(
|
|
9
|
+
super({ ...settings, url: PaginationHelper_1.PaginationHelper.setPaginationParams(settings.url) });
|
|
19
10
|
}
|
|
20
|
-
getRawData() {
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
11
|
+
async getRawData() {
|
|
12
|
+
try {
|
|
13
|
+
let res = await super.getRawData();
|
|
14
|
+
if (res.data === null) {
|
|
15
|
+
throw new errors_1.GeneralError("No data", this.constructor.name);
|
|
16
|
+
}
|
|
17
|
+
let resultPage = res;
|
|
18
|
+
const result = resultPage;
|
|
19
|
+
while (resultPage.data.properties?.exceededTransferLimit) {
|
|
20
|
+
this.setNextPageUrl();
|
|
21
|
+
res = await super.getRawData();
|
|
28
22
|
if (res.data === null) {
|
|
29
23
|
throw new errors_1.GeneralError("No data", this.constructor.name);
|
|
30
24
|
}
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
while ((_a = resultPage.data.properties) === null || _a === void 0 ? void 0 : _a.exceededTransferLimit) {
|
|
34
|
-
this.setNextPageUrl();
|
|
35
|
-
res = yield _super.getRawData.call(this);
|
|
36
|
-
if (res.data === null) {
|
|
37
|
-
throw new errors_1.GeneralError("No data", this.constructor.name);
|
|
38
|
-
}
|
|
39
|
-
resultPage = res;
|
|
40
|
-
result.data.features.push(...resultPage.data.features);
|
|
41
|
-
}
|
|
42
|
-
(_b = result.data.properties) === null || _b === void 0 ? true : delete _b.exceededTransferLimit;
|
|
43
|
-
this.resetUrlOffset();
|
|
44
|
-
return result;
|
|
45
|
-
}
|
|
46
|
-
catch (err) {
|
|
47
|
-
throw new errors_1.GeneralError("Error while getting data from server.", this.constructor.name, err);
|
|
25
|
+
resultPage = res;
|
|
26
|
+
result.data.features.push(...resultPage.data.features);
|
|
48
27
|
}
|
|
49
|
-
|
|
28
|
+
delete result.data.properties?.exceededTransferLimit;
|
|
29
|
+
this.resetUrlOffset();
|
|
30
|
+
return result;
|
|
31
|
+
}
|
|
32
|
+
catch (err) {
|
|
33
|
+
throw new errors_1.GeneralError("Error while getting data from server.", this.constructor.name, err);
|
|
34
|
+
}
|
|
50
35
|
}
|
|
51
36
|
setNextPageUrl() {
|
|
52
|
-
this.setConnectionSettings(
|
|
37
|
+
this.setConnectionSettings({
|
|
38
|
+
...this.connectionSettings,
|
|
39
|
+
url: PaginationHelper_1.PaginationHelper.getNextPageUrl(this.connectionSettings.url),
|
|
40
|
+
});
|
|
53
41
|
}
|
|
54
42
|
resetUrlOffset() {
|
|
55
|
-
this.setConnectionSettings(
|
|
43
|
+
this.setConnectionSettings({
|
|
44
|
+
...this.connectionSettings,
|
|
45
|
+
url: PaginationHelper_1.PaginationHelper.resetUrlOffset(this.connectionSettings.url),
|
|
46
|
+
});
|
|
56
47
|
}
|
|
57
48
|
}
|
|
58
49
|
exports.PaginatedHTTPProtocolStrategy = PaginatedHTTPProtocolStrategy;
|
package/dist/integration-engine/datasources/protocol-strategy/PaginatedHTTPProtocolStrategy.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PaginatedHTTPProtocolStrategy.js","sourceRoot":"","sources":["../../../../src/integration-engine/datasources/protocol-strategy/PaginatedHTTPProtocolStrategy.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"PaginatedHTTPProtocolStrategy.js","sourceRoot":"","sources":["../../../../src/integration-engine/datasources/protocol-strategy/PaginatedHTTPProtocolStrategy.ts"],"names":[],"mappings":";;;AAAA,qEAAgE;AAChE,4CAA+C;AAC/C,2EAAwE;AAYxE,MAAa,6BAAuC,SAAQ,qDAAuD;IAC/G,YAAY,QAA4B;QACpC,KAAK,CAAC,EAAE,GAAG,QAAQ,EAAE,GAAG,EAAE,mCAAgB,CAAC,mBAAmB,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IACpF,CAAC;IAEM,KAAK,CAAC,UAAU;QACnB,IAAI;YACA,IAAI,GAAG,GAAG,MAAM,KAAK,CAAC,UAAU,EAAE,CAAC;YACnC,IAAI,GAAG,CAAC,IAAI,KAAK,IAAI,EAAE;gBACnB,MAAM,IAAI,qBAAY,CAAC,SAAS,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;aAC5D;YAED,IAAI,UAAU,GAA8D,GAAG,CAAC;YAChF,MAAM,MAAM,GAAG,UAAU,CAAC;YAE1B,OAAO,UAAU,CAAC,IAAI,CAAC,UAAU,EAAE,qBAAqB,EAAE;gBACtD,IAAI,CAAC,cAAc,EAAE,CAAC;gBACtB,GAAG,GAAG,MAAM,KAAK,CAAC,UAAU,EAAE,CAAC;gBAC/B,IAAI,GAAG,CAAC,IAAI,KAAK,IAAI,EAAE;oBACnB,MAAM,IAAI,qBAAY,CAAC,SAAS,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;iBAC5D;gBACD,UAAU,GAAG,GAAG,CAAC;gBACjB,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;aAC1D;YAED,OAAO,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE,qBAAqB,CAAC;YACrD,IAAI,CAAC,cAAc,EAAE,CAAC;YAEtB,OAAO,MAAM,CAAC;SACjB;QAAC,OAAO,GAAG,EAAE;YACV,MAAM,IAAI,qBAAY,CAAC,uCAAuC,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;SAC/F;IACL,CAAC;IAEO,cAAc;QAClB,IAAI,CAAC,qBAAqB,CAAC;YACvB,GAAG,IAAI,CAAC,kBAAkB;YAC1B,GAAG,EAAE,mCAAgB,CAAC,cAAc,CAAC,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC;SACpE,CAAC,CAAC;IACP,CAAC;IAEO,cAAc;QAClB,IAAI,CAAC,qBAAqB,CAAC;YACvB,GAAG,IAAI,CAAC,kBAAkB;YAC1B,GAAG,EAAE,mCAAgB,CAAC,cAAc,CAAC,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC;SACpE,CAAC,CAAC;IACP,CAAC;CACJ;AA/CD,sEA+CC"}
|
|
@@ -1,13 +1,4 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
-
});
|
|
10
|
-
};
|
|
11
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
3
|
exports.PostgresProtocolStrategy = void 0;
|
|
13
4
|
const DatabaseConnector_1 = require("../../../helpers/data-access/postgres/DatabaseConnector");
|
|
@@ -21,38 +12,44 @@ class PostgresProtocolStrategy extends ProtocolStrategy_1.ProtocolStrategy {
|
|
|
21
12
|
this.setConnectionSettings = (settings) => {
|
|
22
13
|
this.connectionSettings = settings;
|
|
23
14
|
};
|
|
24
|
-
this.getLastModified = () =>
|
|
15
|
+
this.getLastModified = async () => {
|
|
25
16
|
throw new Error("Method not implemented.");
|
|
26
|
-
}
|
|
27
|
-
this.deleteData = () =>
|
|
17
|
+
};
|
|
18
|
+
this.deleteData = async () => {
|
|
28
19
|
try {
|
|
29
|
-
const connection =
|
|
30
|
-
const model = connection.define(this.connectionSettings.tableName, this.connectionSettings.modelAttributes,
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
20
|
+
const connection = await this.getConnection();
|
|
21
|
+
const model = connection.define(this.connectionSettings.tableName, this.connectionSettings.modelAttributes, {
|
|
22
|
+
...(this.connectionSettings.sequelizeAdditionalSettings
|
|
23
|
+
? this.connectionSettings.sequelizeAdditionalSettings
|
|
24
|
+
: { freezeTableName: true, timestamps: true, underscored: true }),
|
|
25
|
+
...(this.connectionSettings.schemaName ? { schema: this.connectionSettings.schemaName } : {}),
|
|
26
|
+
});
|
|
27
|
+
await model.destroy({
|
|
34
28
|
cascade: false,
|
|
35
29
|
truncate: true,
|
|
36
30
|
});
|
|
37
31
|
// Close all connections used by this sequelize instance,
|
|
38
32
|
// and free all references so the instance can be garbage collected.
|
|
39
|
-
|
|
33
|
+
await connection.close();
|
|
40
34
|
}
|
|
41
35
|
catch (err) {
|
|
42
36
|
throw new errors_1.GeneralError("Error while deleting data from server. " + err.message, this.constructor.name, err);
|
|
43
37
|
}
|
|
44
|
-
}
|
|
45
|
-
this.getRawData = () =>
|
|
38
|
+
};
|
|
39
|
+
this.getRawData = async () => {
|
|
46
40
|
try {
|
|
47
|
-
const connection =
|
|
48
|
-
const model = connection.define(this.connectionSettings.tableName, this.connectionSettings.modelAttributes,
|
|
49
|
-
|
|
50
|
-
|
|
41
|
+
const connection = await this.getConnection();
|
|
42
|
+
const model = connection.define(this.connectionSettings.tableName, this.connectionSettings.modelAttributes, {
|
|
43
|
+
...(this.connectionSettings.sequelizeAdditionalSettings
|
|
44
|
+
? this.connectionSettings.sequelizeAdditionalSettings
|
|
45
|
+
: { freezeTableName: true, timestamps: true, underscored: true }),
|
|
46
|
+
...(this.connectionSettings.schemaName ? { schema: this.connectionSettings.schemaName } : {}),
|
|
47
|
+
});
|
|
51
48
|
// getting data and returning it as array of obejcts
|
|
52
|
-
const results = (
|
|
49
|
+
const results = (await model.findAll(this.connectionSettings.findOptions)).map((r) => r.dataValues);
|
|
53
50
|
// Close all connections used by this sequelize instance,
|
|
54
51
|
// and free all references so the instance can be garbage collected.
|
|
55
|
-
|
|
52
|
+
await connection.close();
|
|
56
53
|
return {
|
|
57
54
|
data: results,
|
|
58
55
|
};
|
|
@@ -60,23 +57,21 @@ class PostgresProtocolStrategy extends ProtocolStrategy_1.ProtocolStrategy {
|
|
|
60
57
|
catch (err) {
|
|
61
58
|
throw new errors_1.GeneralError("Error while getting data from server. " + err.message, this.constructor.name, err);
|
|
62
59
|
}
|
|
63
|
-
}
|
|
60
|
+
};
|
|
64
61
|
}
|
|
65
|
-
getConnection() {
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
return connection;
|
|
79
|
-
});
|
|
62
|
+
async getConnection() {
|
|
63
|
+
const simpleConfig = ioc_1.IntegrationEngineContainer.resolve(CoreToken_1.CoreToken.SimpleConfig);
|
|
64
|
+
const logger = ioc_1.IntegrationEngineContainer.resolve(CoreToken_1.CoreToken.Logger);
|
|
65
|
+
const connInfo = {
|
|
66
|
+
connectionString: this.connectionSettings.connectionString,
|
|
67
|
+
poolIdleTimeout: +simpleConfig.getValue("env.POSTGRES_POOL_IDLE_TIMEOUT", 10000),
|
|
68
|
+
poolMinConnections: +simpleConfig.getValue("env.POSTGRES_POOL_MIN_CONNECTIONS", 0),
|
|
69
|
+
poolMaxConnections: +simpleConfig.getValue("env.POSTGRES_POOL_MAX_CONNECTIONS", 2),
|
|
70
|
+
applicationName: "Integration Engine",
|
|
71
|
+
};
|
|
72
|
+
const connector = new DatabaseConnector_1.DatabaseConnector(connInfo, logger);
|
|
73
|
+
const connection = await connector.connect();
|
|
74
|
+
return connection;
|
|
80
75
|
}
|
|
81
76
|
}
|
|
82
77
|
exports.PostgresProtocolStrategy = PostgresProtocolStrategy;
|
package/dist/integration-engine/datasources/protocol-strategy/PostgresProtocolStrategy.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PostgresProtocolStrategy.js","sourceRoot":"","sources":["../../../../src/integration-engine/datasources/protocol-strategy/PostgresProtocolStrategy.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"PostgresProtocolStrategy.js","sourceRoot":"","sources":["../../../../src/integration-engine/datasources/protocol-strategy/PostgresProtocolStrategy.ts"],"names":[],"mappings":"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"}
|
package/dist/integration-engine/datasources/protocol-strategy/PostgresProtocolStrategyStreamed.js
CHANGED
|
@@ -1,13 +1,4 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
-
});
|
|
10
|
-
};
|
|
11
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
3
|
exports.PostgresProtocolStrategyStreamed = void 0;
|
|
13
4
|
const CoreToken_1 = require("../../../helpers/ioc/CoreToken");
|
|
@@ -18,7 +9,7 @@ const errors_1 = require("@golemio/errors");
|
|
|
18
9
|
class PostgresProtocolStrategyStreamed extends PostgresProtocolStrategy_1.PostgresProtocolStrategy {
|
|
19
10
|
constructor(settings) {
|
|
20
11
|
super(settings);
|
|
21
|
-
this.getRawData = () =>
|
|
12
|
+
this.getRawData = async () => {
|
|
22
13
|
const findOptions = this.connectionSettings.findOptions;
|
|
23
14
|
let batchLimit;
|
|
24
15
|
let offset = (this.connectionSettings.findOptions || {}).offset || 0;
|
|
@@ -32,34 +23,40 @@ class PostgresProtocolStrategyStreamed extends PostgresProtocolStrategy_1.Postgr
|
|
|
32
23
|
batchLimit = +this.dataBatchSize;
|
|
33
24
|
}
|
|
34
25
|
try {
|
|
35
|
-
const connection =
|
|
36
|
-
const model = connection.define(this.connectionSettings.tableName, this.connectionSettings.modelAttributes,
|
|
37
|
-
|
|
38
|
-
|
|
26
|
+
const connection = await this.getConnection();
|
|
27
|
+
const model = connection.define(this.connectionSettings.tableName, this.connectionSettings.modelAttributes, {
|
|
28
|
+
...(this.connectionSettings.sequelizeAdditionalSettings
|
|
29
|
+
? this.connectionSettings.sequelizeAdditionalSettings
|
|
30
|
+
: { freezeTableName: true, timestamps: true, underscored: true }),
|
|
31
|
+
...(this.connectionSettings.schemaName ? { schema: this.connectionSettings.schemaName } : {}),
|
|
32
|
+
});
|
|
39
33
|
const isValid = (results) => results.length > 0;
|
|
40
34
|
const isLastBatch = (results, resultsCount) => results.length === 0 || results.length < batchLimit || resultsCount >= limit;
|
|
41
35
|
return {
|
|
42
36
|
data: new datasources_1.DataSourceStream({
|
|
43
37
|
objectMode: true,
|
|
44
|
-
read() {
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
}
|
|
56
|
-
offset += batchLimit;
|
|
57
|
-
batchLimit = limit - resultsCount < batchLimit ? limit - resultsCount : batchLimit;
|
|
38
|
+
async read() {
|
|
39
|
+
try {
|
|
40
|
+
const results = await model.findAll({
|
|
41
|
+
...findOptions,
|
|
42
|
+
limit: batchLimit,
|
|
43
|
+
offset,
|
|
44
|
+
raw: true,
|
|
45
|
+
});
|
|
46
|
+
if (isValid(results)) {
|
|
47
|
+
this.push(results);
|
|
48
|
+
resultsCount += results.length;
|
|
58
49
|
}
|
|
59
|
-
|
|
60
|
-
this.
|
|
50
|
+
if (isLastBatch(results, resultsCount)) {
|
|
51
|
+
this.push(null);
|
|
52
|
+
return;
|
|
61
53
|
}
|
|
62
|
-
|
|
54
|
+
offset += batchLimit;
|
|
55
|
+
batchLimit = limit - resultsCount < batchLimit ? limit - resultsCount : batchLimit;
|
|
56
|
+
}
|
|
57
|
+
catch (err) {
|
|
58
|
+
this.emit("error", err);
|
|
59
|
+
}
|
|
63
60
|
},
|
|
64
61
|
}),
|
|
65
62
|
};
|
|
@@ -67,7 +64,7 @@ class PostgresProtocolStrategyStreamed extends PostgresProtocolStrategy_1.Postgr
|
|
|
67
64
|
catch (err) {
|
|
68
65
|
throw new errors_1.GeneralError("Error while getting data from server.", this.constructor.name, err);
|
|
69
66
|
}
|
|
70
|
-
}
|
|
67
|
+
};
|
|
71
68
|
const simpleConfig = Di_1.IntegrationEngineContainer.resolve(CoreToken_1.CoreToken.SimpleConfig);
|
|
72
69
|
this.dataBatchSize = +simpleConfig.getValue("env.DATA_BATCH_SIZE", 1000);
|
|
73
70
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PostgresProtocolStrategyStreamed.js","sourceRoot":"","sources":["../../../../src/integration-engine/datasources/protocol-strategy/PostgresProtocolStrategyStreamed.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"PostgresProtocolStrategyStreamed.js","sourceRoot":"","sources":["../../../../src/integration-engine/datasources/protocol-strategy/PostgresProtocolStrategyStreamed.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,13 +1,4 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
-
});
|
|
10
|
-
};
|
|
11
2
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
12
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
13
4
|
};
|
|
@@ -29,13 +20,13 @@ class ProtocolStrategy {
|
|
|
29
20
|
this.getConnectionSettings = () => {
|
|
30
21
|
return this.connectionSettings;
|
|
31
22
|
};
|
|
32
|
-
this.getLastModified = () =>
|
|
23
|
+
this.getLastModified = async () => {
|
|
33
24
|
throw new Error("getLastModified: Method not implemented.");
|
|
34
|
-
}
|
|
35
|
-
this.prepareRawData = (data) =>
|
|
25
|
+
};
|
|
26
|
+
this.prepareRawData = async (data) => {
|
|
36
27
|
let outData = null;
|
|
37
28
|
if (data instanceof Blob) {
|
|
38
|
-
outData =
|
|
29
|
+
outData = await data.text();
|
|
39
30
|
}
|
|
40
31
|
else if (data instanceof ArrayBuffer) {
|
|
41
32
|
outData = new TextDecoder().decode(data);
|
|
@@ -47,7 +38,7 @@ class ProtocolStrategy {
|
|
|
47
38
|
try {
|
|
48
39
|
outData = JSON.stringify(data, null, 2);
|
|
49
40
|
}
|
|
50
|
-
catch
|
|
41
|
+
catch {
|
|
51
42
|
null;
|
|
52
43
|
}
|
|
53
44
|
}
|
|
@@ -55,7 +46,7 @@ class ProtocolStrategy {
|
|
|
55
46
|
try {
|
|
56
47
|
outData = JSON.stringify(JSON.parse(data), null, 2);
|
|
57
48
|
}
|
|
58
|
-
catch
|
|
49
|
+
catch {
|
|
59
50
|
null;
|
|
60
51
|
}
|
|
61
52
|
}
|
|
@@ -63,10 +54,10 @@ class ProtocolStrategy {
|
|
|
63
54
|
outData = data.toString();
|
|
64
55
|
}
|
|
65
56
|
return outData;
|
|
66
|
-
}
|
|
67
|
-
this.pushRawDataToS3Stream = (data, S3Stream) =>
|
|
57
|
+
};
|
|
58
|
+
this.pushRawDataToS3Stream = async (data, S3Stream) => {
|
|
68
59
|
if (this.storageEnabled && this.saveRawDataWhitelist[this.caller]) {
|
|
69
|
-
const outData =
|
|
60
|
+
const outData = await this.prepareRawData(data);
|
|
70
61
|
if (outData && typeof outData === "string") {
|
|
71
62
|
S3Stream.push(outData);
|
|
72
63
|
if (typeof outData === "string") {
|
|
@@ -79,7 +70,7 @@ class ProtocolStrategy {
|
|
|
79
70
|
\`${Object.prototype.toString.call(outData)}\``);
|
|
80
71
|
}
|
|
81
72
|
}
|
|
82
|
-
}
|
|
73
|
+
};
|
|
83
74
|
this.connectionSettings = settings;
|
|
84
75
|
const simpleConfig = Di_1.IntegrationEngineContainer.resolve(CoreToken_1.CoreToken.SimpleConfig);
|
|
85
76
|
this.storageEnabled = simpleConfig.getValue("env.STORAGE_ENABLED", "false") === "true";
|
|
@@ -91,78 +82,72 @@ class ProtocolStrategy {
|
|
|
91
82
|
setConnectionSettings(settings) {
|
|
92
83
|
this.connectionSettings = settings;
|
|
93
84
|
}
|
|
94
|
-
getData(...args) {
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
return data;
|
|
98
|
-
});
|
|
85
|
+
async getData(...args) {
|
|
86
|
+
const { data } = await this.getDataWithMetadata(...args);
|
|
87
|
+
return data;
|
|
99
88
|
}
|
|
100
|
-
getDataWithMetadata(...args) {
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
read: () => {
|
|
113
|
-
return;
|
|
114
|
-
},
|
|
115
|
-
});
|
|
116
|
-
const dataStream = new datasources_1.DataSourceStream({
|
|
117
|
-
objectMode: true,
|
|
118
|
-
read: () => {
|
|
119
|
-
return;
|
|
120
|
-
},
|
|
121
|
-
});
|
|
122
|
-
// need to reemit data to the new stream to avoid data loss in future on 'data' events
|
|
123
|
-
protocolDataStream.on("data", (data) => __awaiter(this, void 0, void 0, function* () {
|
|
124
|
-
dataStream.push(data);
|
|
125
|
-
yield this.pushRawDataToS3Stream(data, S3Stream);
|
|
126
|
-
// because of headers - need to be sure that `response` event has been called before saving raw data
|
|
127
|
-
if (!dataSaveCalled) {
|
|
128
|
-
this.rawDataStorage.save(S3Stream, meta, this.caller);
|
|
129
|
-
dataSaveCalled = true;
|
|
130
|
-
}
|
|
131
|
-
}));
|
|
132
|
-
protocolDataStream.on("error", (err) => {
|
|
133
|
-
if (err instanceof errors_1.AbstractGolemioError) {
|
|
134
|
-
dataStream.emit("error", err);
|
|
135
|
-
}
|
|
136
|
-
else {
|
|
137
|
-
dataStream.emit("error", new errors_1.GeneralError("ProtocolData stream error", this.constructor.name, err));
|
|
138
|
-
}
|
|
139
|
-
});
|
|
140
|
-
protocolDataStream.on("end", () => {
|
|
141
|
-
dataStream.emit("end");
|
|
142
|
-
S3Stream.push(null);
|
|
143
|
-
});
|
|
144
|
-
S3Stream.on("end", () => {
|
|
89
|
+
async getDataWithMetadata(...args) {
|
|
90
|
+
const result = await this.getRawData(...args);
|
|
91
|
+
const rawData = result.data;
|
|
92
|
+
const meta = result.meta || {};
|
|
93
|
+
let dataSaveCalled = false;
|
|
94
|
+
let protocolDataStream;
|
|
95
|
+
// bit paranoid but ...
|
|
96
|
+
if (rawData && (rawData instanceof stream_1.Readable || rawData.constructor.name === "Request") && rawData.on) {
|
|
97
|
+
protocolDataStream = rawData;
|
|
98
|
+
const S3Stream = new stream_1.Readable({
|
|
99
|
+
objectMode: false,
|
|
100
|
+
read: () => {
|
|
145
101
|
return;
|
|
146
|
-
}
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
102
|
+
},
|
|
103
|
+
});
|
|
104
|
+
const dataStream = new datasources_1.DataSourceStream({
|
|
105
|
+
objectMode: true,
|
|
106
|
+
read: () => {
|
|
107
|
+
return;
|
|
108
|
+
},
|
|
109
|
+
});
|
|
110
|
+
// need to reemit data to the new stream to avoid data loss in future on 'data' events
|
|
111
|
+
protocolDataStream.on("data", async (data) => {
|
|
112
|
+
dataStream.push(data);
|
|
113
|
+
await this.pushRawDataToS3Stream(data, S3Stream);
|
|
114
|
+
// because of headers - need to be sure that `response` event has been called before saving raw data
|
|
115
|
+
if (!dataSaveCalled) {
|
|
116
|
+
this.rawDataStorage.save(S3Stream, meta, this.caller);
|
|
117
|
+
dataSaveCalled = true;
|
|
118
|
+
}
|
|
119
|
+
});
|
|
120
|
+
protocolDataStream.on("error", (err) => {
|
|
121
|
+
if (err instanceof errors_1.AbstractGolemioError) {
|
|
122
|
+
dataStream.emit("error", err);
|
|
123
|
+
}
|
|
124
|
+
else {
|
|
125
|
+
dataStream.emit("error", new errors_1.GeneralError("ProtocolData stream error", this.constructor.name, err));
|
|
126
|
+
}
|
|
127
|
+
});
|
|
128
|
+
protocolDataStream.on("end", () => {
|
|
129
|
+
dataStream.emit("end");
|
|
130
|
+
S3Stream.push(null);
|
|
131
|
+
});
|
|
132
|
+
S3Stream.on("end", () => {
|
|
133
|
+
return;
|
|
134
|
+
});
|
|
135
|
+
S3Stream.on("error", (err) => {
|
|
136
|
+
this.logger.error(`Error on saving raw data for ${this.caller}`, err);
|
|
137
|
+
});
|
|
138
|
+
protocolDataStream.on("response", (res) => {
|
|
139
|
+
meta.statusCode = res.statusCode;
|
|
140
|
+
meta.headers = res.headers;
|
|
141
|
+
});
|
|
142
|
+
return { data: dataStream, metadata: meta };
|
|
143
|
+
}
|
|
144
|
+
else {
|
|
145
|
+
this.rawDataStorage.save(await this.prepareRawData(rawData), meta, this.caller);
|
|
146
|
+
return { data: rawData, metadata: meta };
|
|
147
|
+
}
|
|
161
148
|
}
|
|
162
|
-
getRawData(...args) {
|
|
163
|
-
|
|
164
|
-
throw new Error("getRawData: Method not implemented.");
|
|
165
|
-
});
|
|
149
|
+
async getRawData(...args) {
|
|
150
|
+
throw new Error("getRawData: Method not implemented.");
|
|
166
151
|
}
|
|
167
152
|
}
|
|
168
153
|
exports.ProtocolStrategy = ProtocolStrategy;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ProtocolStrategy.js","sourceRoot":"","sources":["../../../../src/integration-engine/datasources/protocol-strategy/ProtocolStrategy.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ProtocolStrategy.js","sourceRoot":"","sources":["../../../../src/integration-engine/datasources/protocol-strategy/ProtocolStrategy.ts"],"names":[],"mappings":"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"}
|