terafoundation 0.64.1 → 1.0.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/src/api/index.d.ts +2 -2
- package/dist/src/api/index.d.ts.map +1 -1
- package/dist/src/api/index.js +17 -74
- package/dist/src/api/index.js.map +1 -1
- package/dist/src/api/prom-metrics/exporter.js +10 -14
- package/dist/src/api/prom-metrics/exporter.js.map +1 -1
- package/dist/src/api/prom-metrics/prom-metrics-api.d.ts.map +1 -1
- package/dist/src/api/prom-metrics/prom-metrics-api.js +22 -21
- package/dist/src/api/prom-metrics/prom-metrics-api.js.map +1 -1
- package/dist/src/api/utils.d.ts +3 -3
- package/dist/src/api/utils.d.ts.map +1 -1
- package/dist/src/api/utils.js +13 -43
- package/dist/src/api/utils.js.map +1 -1
- package/dist/src/cluster-context.d.ts +4 -3
- package/dist/src/cluster-context.d.ts.map +1 -1
- package/dist/src/cluster-context.js +19 -46
- package/dist/src/cluster-context.js.map +1 -1
- package/dist/src/connector-utils.d.ts +4 -5
- package/dist/src/connector-utils.d.ts.map +1 -1
- package/dist/src/connector-utils.js +39 -45
- package/dist/src/connector-utils.js.map +1 -1
- package/dist/src/connectors/elasticsearch-next.d.ts +3 -10
- package/dist/src/connectors/elasticsearch-next.d.ts.map +1 -1
- package/dist/src/connectors/elasticsearch-next.js +5 -8
- package/dist/src/connectors/elasticsearch-next.js.map +1 -1
- package/dist/src/connectors/hdfs.d.ts +3 -9
- package/dist/src/connectors/hdfs.d.ts.map +1 -1
- package/dist/src/connectors/hdfs.js +13 -13
- package/dist/src/connectors/hdfs.js.map +1 -1
- package/dist/src/connectors/hdfs_ha.d.ts +3 -9
- package/dist/src/connectors/hdfs_ha.d.ts.map +1 -1
- package/dist/src/connectors/hdfs_ha.js +25 -24
- package/dist/src/connectors/hdfs_ha.js.map +1 -1
- package/dist/src/connectors/s3.d.ts +3 -13
- package/dist/src/connectors/s3.d.ts.map +1 -1
- package/dist/src/connectors/s3.js +9 -14
- package/dist/src/connectors/s3.js.map +1 -1
- package/dist/src/core-context.d.ts +8 -9
- package/dist/src/core-context.d.ts.map +1 -1
- package/dist/src/core-context.js +16 -40
- package/dist/src/core-context.js.map +1 -1
- package/dist/src/index.d.ts +5 -5
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +5 -21
- package/dist/src/index.js.map +1 -1
- package/dist/src/interfaces.d.ts +2 -107
- package/dist/src/interfaces.d.ts.map +1 -1
- package/dist/src/interfaces.js +1 -2
- package/dist/src/master.d.ts +2 -2
- package/dist/src/master.d.ts.map +1 -1
- package/dist/src/master.js +7 -10
- package/dist/src/master.js.map +1 -1
- package/dist/src/process-context.d.ts +4 -3
- package/dist/src/process-context.d.ts.map +1 -1
- package/dist/src/process-context.js +10 -17
- package/dist/src/process-context.js.map +1 -1
- package/dist/src/schema.d.ts +0 -2
- package/dist/src/schema.d.ts.map +1 -1
- package/dist/src/schema.js +3 -56
- package/dist/src/schema.js.map +1 -1
- package/dist/src/sysconfig.d.ts +3 -3
- package/dist/src/sysconfig.d.ts.map +1 -1
- package/dist/src/sysconfig.js +28 -34
- package/dist/src/sysconfig.js.map +1 -1
- package/dist/src/test-context.d.ts +7 -7
- package/dist/src/test-context.d.ts.map +1 -1
- package/dist/src/test-context.js +33 -80
- package/dist/src/test-context.js.map +1 -1
- package/dist/src/validate-configs.d.ts +2 -2
- package/dist/src/validate-configs.d.ts.map +1 -1
- package/dist/src/validate-configs.js +31 -60
- package/dist/src/validate-configs.js.map +1 -1
- package/dist/src/worker.d.ts +2 -2
- package/dist/src/worker.d.ts.map +1 -1
- package/dist/src/worker.js +1 -4
- package/dist/src/worker.js.map +1 -1
- package/package.json +6 -5
package/dist/src/sysconfig.js
CHANGED
|
@@ -1,42 +1,36 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
};
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
const fs_1 = __importDefault(require("fs"));
|
|
8
|
-
const path_1 = __importDefault(require("path"));
|
|
9
|
-
const yargs_1 = __importDefault(require("yargs"));
|
|
10
|
-
const js_yaml_1 = __importDefault(require("js-yaml"));
|
|
11
|
-
const utils_1 = require("@terascope/utils");
|
|
12
|
-
function getDefaultConfigFile() {
|
|
1
|
+
import fs from 'node:fs';
|
|
2
|
+
import path from 'node:path';
|
|
3
|
+
import yargs from 'yargs';
|
|
4
|
+
import { hideBin } from 'yargs/helpers';
|
|
5
|
+
import yaml from 'js-yaml';
|
|
6
|
+
export function getDefaultConfigFile() {
|
|
13
7
|
const cwd = process.cwd();
|
|
14
8
|
if (process.env.TERAFOUNDATION_CONFIG) {
|
|
15
|
-
return
|
|
9
|
+
return path.resolve(process.env.TERAFOUNDATION_CONFIG);
|
|
16
10
|
}
|
|
17
|
-
if (
|
|
11
|
+
if (fs.existsSync('/app/config/config.yaml')) {
|
|
18
12
|
return '/app/config/config.yaml';
|
|
19
13
|
}
|
|
20
|
-
if (
|
|
14
|
+
if (fs.existsSync('/app/config/config.yml')) {
|
|
21
15
|
return '/app/config/config.yml';
|
|
22
16
|
}
|
|
23
|
-
if (
|
|
17
|
+
if (fs.existsSync('/app/config/config.json')) {
|
|
24
18
|
return '/app/config/config.json';
|
|
25
19
|
}
|
|
26
|
-
if (
|
|
27
|
-
return
|
|
20
|
+
if (fs.existsSync(path.join(cwd, './config.yaml'))) {
|
|
21
|
+
return path.join(cwd, './config.yaml');
|
|
28
22
|
}
|
|
29
|
-
if (
|
|
30
|
-
return
|
|
23
|
+
if (fs.existsSync(path.join(cwd, './config.yml'))) {
|
|
24
|
+
return path.join(cwd, './config.yml');
|
|
31
25
|
}
|
|
32
|
-
if (
|
|
33
|
-
return
|
|
26
|
+
if (fs.existsSync(path.join(cwd, './config.json'))) {
|
|
27
|
+
return path.join(cwd, './config.json');
|
|
34
28
|
}
|
|
35
29
|
return undefined;
|
|
36
30
|
}
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
const { argv } =
|
|
31
|
+
export async function getArgs(defaultConfigFile) {
|
|
32
|
+
const yargsInstance = yargs(hideBin(process.argv));
|
|
33
|
+
const { argv } = await yargsInstance.usage('Usage: $0 [options]')
|
|
40
34
|
.version()
|
|
41
35
|
.alias('v', 'version')
|
|
42
36
|
.help()
|
|
@@ -51,19 +45,19 @@ function getArgs(defaultConfigFile) {
|
|
|
51
45
|
return parseConfigFile(arg || defaultConfigFile);
|
|
52
46
|
}
|
|
53
47
|
})
|
|
54
|
-
.wrap(
|
|
48
|
+
.wrap(yargsInstance.terminalWidth());
|
|
55
49
|
return argv;
|
|
56
50
|
}
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
if (!configFile || !fs_1.default.existsSync(configFile)) {
|
|
51
|
+
export async function parseConfigFile(file) {
|
|
52
|
+
const configFile = file ? path.resolve(file) : undefined;
|
|
53
|
+
if (!configFile || !fs.existsSync(configFile)) {
|
|
61
54
|
throw new Error(`Could not find a usable config file at the path: ${configFile}`);
|
|
62
55
|
}
|
|
63
|
-
if (['.yaml', '.yml'].includes(
|
|
64
|
-
|
|
56
|
+
if (['.yaml', '.yml'].includes(path.extname(configFile))) {
|
|
57
|
+
const config = fs.readFileSync(configFile, 'utf8');
|
|
58
|
+
return yaml.load(config);
|
|
65
59
|
}
|
|
66
|
-
|
|
60
|
+
const json = fs.readFileSync(configFile, 'utf8');
|
|
61
|
+
return JSON.parse(json);
|
|
67
62
|
}
|
|
68
|
-
exports.parseConfigFile = parseConfigFile;
|
|
69
63
|
//# sourceMappingURL=sysconfig.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sysconfig.js","sourceRoot":"","sources":["../../src/sysconfig.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"sysconfig.js","sourceRoot":"","sources":["../../src/sysconfig.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,13 +1,12 @@
|
|
|
1
|
-
import
|
|
2
|
-
import
|
|
3
|
-
import { CoreContext } from './core-context';
|
|
1
|
+
import { PartialDeep } from '@terascope/utils';
|
|
2
|
+
import type { Terafoundation } from '@terascope/types';
|
|
3
|
+
import { CoreContext } from './core-context.js';
|
|
4
4
|
export interface CachedClients {
|
|
5
5
|
[prop: string]: any;
|
|
6
6
|
}
|
|
7
7
|
export interface TestClientConfig {
|
|
8
8
|
type: string;
|
|
9
|
-
|
|
10
|
-
createClient?: i.CreateClientFactoryFn;
|
|
9
|
+
createClient?: Terafoundation.CreateClientFactoryFn;
|
|
11
10
|
config?: Record<string, any>;
|
|
12
11
|
endpoint?: string;
|
|
13
12
|
}
|
|
@@ -25,9 +24,10 @@ export interface TestContextOptions<S> {
|
|
|
25
24
|
name?: string;
|
|
26
25
|
assignment?: any;
|
|
27
26
|
clients?: TestClientConfig[];
|
|
28
|
-
sysconfig?:
|
|
27
|
+
sysconfig?: PartialDeep<Terafoundation.SysConfig<S>>;
|
|
29
28
|
}
|
|
30
29
|
export declare class TestContext<S extends Record<string, any>, A extends Record<string, any>, D extends string = string> extends CoreContext<S, A & TestContextAPIs, D> {
|
|
31
|
-
constructor(
|
|
30
|
+
constructor(config: Terafoundation.Config<S, A & TestContextAPIs, D>, cluster: any, sysconfig: Terafoundation.SysConfig<S>);
|
|
31
|
+
static createContext<S extends Record<string, any>, A extends Record<string, any>, D extends string = string>(options?: TestContextOptions<S>): Promise<TestContext<S, A, D>>;
|
|
32
32
|
}
|
|
33
33
|
//# sourceMappingURL=test-context.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"test-context.d.ts","sourceRoot":"","sources":["../../src/test-context.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"test-context.d.ts","sourceRoot":"","sources":["../../src/test-context.ts"],"names":[],"mappings":"AAAA,OAAO,EACkB,WAAW,EAEnC,MAAM,kBAAkB,CAAC;AAC1B,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAEvD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAQhD,MAAM,WAAW,aAAa;IAC1B,CAAC,IAAI,EAAE,MAAM,GAAG,GAAG,CAAC;CACvB;AAED,MAAM,WAAW,gBAAgB;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,CAAC,EAAE,cAAc,CAAC,qBAAqB,CAAC;IACpD,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC7B,QAAQ,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,qBAAqB;IAClC,CAAC,QAAQ,EAAE,MAAM,GAAG,GAAG,CAAC;CAC3B;AAED,MAAM,WAAW,WAAW;IACxB,CAAC,IAAI,EAAE,MAAM,GAAG,qBAAqB,CAAC;CACzC;AAED,MAAM,WAAW,eAAe;IAC5B,cAAc,CAAC,OAAO,EAAE,gBAAgB,EAAE,GAAG,IAAI,CAAC;IAClD,cAAc,IAAI,WAAW,CAAC;CACjC;AAiCD,MAAM,WAAW,kBAAkB,CAAC,CAAC;IACjC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,GAAG,CAAC;IACjB,OAAO,CAAC,EAAE,gBAAgB,EAAE,CAAC;IAC7B,SAAS,CAAC,EAAE,WAAW,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;CACxD;AAqBD,qBAAa,WAAW,CACpB,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAC7B,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAC7B,CAAC,SAAS,MAAM,GAAG,MAAM,CAC3B,SAAQ,WAAW,CAAC,CAAC,EAAE,CAAC,GAAG,eAAe,EAAE,CAAC,CAAC;gBAExC,MAAM,EAAE,cAAc,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,GAAG,eAAe,EAAE,CAAC,CAAC,EACxD,OAAO,EAAE,GAAG,EACZ,SAAS,EAAE,cAAc,CAAC,SAAS,CAAC,CAAC,CAAC;WAgF7B,aAAa,CACtB,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAC7B,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAC7B,CAAC,SAAS,MAAM,GAAG,MAAM,EAC3B,OAAO,GAAE,kBAAkB,CAAC,CAAC,CAAM;CAsBxC"}
|
package/dist/src/test-context.js
CHANGED
|
@@ -1,40 +1,11 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
-
}) : function(o, v) {
|
|
16
|
-
o["default"] = v;
|
|
17
|
-
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
-
if (mod && mod.__esModule) return mod;
|
|
20
|
-
var result = {};
|
|
21
|
-
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
-
__setModuleDefault(result, mod);
|
|
23
|
-
return result;
|
|
24
|
-
};
|
|
25
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
26
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
27
|
-
};
|
|
28
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
29
|
-
exports.TestContext = void 0;
|
|
30
|
-
const ts = __importStar(require("@terascope/utils"));
|
|
31
|
-
const nanoid_1 = require("nanoid");
|
|
32
|
-
const core_context_1 = require("./core-context");
|
|
33
|
-
const validate_configs_1 = __importDefault(require("./validate-configs"));
|
|
34
|
-
const prom_metrics_api_1 = require("./api/prom-metrics/prom-metrics-api");
|
|
1
|
+
import { isString, get, isFunction, getTypeOf } from '@terascope/utils';
|
|
2
|
+
import { nanoid } from 'nanoid';
|
|
3
|
+
import { CoreContext } from './core-context.js';
|
|
4
|
+
import validateConfigs from './validate-configs.js';
|
|
5
|
+
import { PromMetrics } from './api/prom-metrics/prom-metrics-api.js';
|
|
35
6
|
function getKey(opts) {
|
|
36
7
|
const { type, endpoint = 'default' } = opts;
|
|
37
|
-
if (!
|
|
8
|
+
if (!isString(type))
|
|
38
9
|
throw new Error('A type must be specified when registering a Client');
|
|
39
10
|
return `${type}:${endpoint}`;
|
|
40
11
|
}
|
|
@@ -64,49 +35,18 @@ function getDefaultSysconfig(options) {
|
|
|
64
35
|
default: {}
|
|
65
36
|
}
|
|
66
37
|
},
|
|
67
|
-
...
|
|
38
|
+
...get(options.sysconfig, 'terafoundation', {})
|
|
68
39
|
},
|
|
69
40
|
...options.sysconfig
|
|
70
41
|
};
|
|
71
42
|
}
|
|
72
|
-
class TestContext extends
|
|
73
|
-
constructor(
|
|
74
|
-
|
|
75
|
-
const config = {
|
|
76
|
-
name: options.name || 'test-context',
|
|
77
|
-
};
|
|
78
|
-
const cluster = {
|
|
79
|
-
isMaster: false,
|
|
80
|
-
worker: {
|
|
81
|
-
id: (0, nanoid_1.nanoid)(8),
|
|
82
|
-
}
|
|
83
|
-
};
|
|
84
|
-
super(config, cluster, (0, validate_configs_1.default)(cluster, config, sysconfig));
|
|
43
|
+
export class TestContext extends CoreContext {
|
|
44
|
+
constructor(config, cluster, sysconfig) {
|
|
45
|
+
super(config, cluster, sysconfig);
|
|
85
46
|
// eslint-disable-next-line @typescript-eslint/no-this-alias
|
|
86
47
|
const ctx = this;
|
|
87
48
|
_cachedClients.set(this, {});
|
|
88
49
|
_createClientFns.set(this, {});
|
|
89
|
-
this.apis.foundation.getConnection = (opts) => {
|
|
90
|
-
const { cached } = opts;
|
|
91
|
-
const cachedClients = _cachedClients.get(ctx) || {};
|
|
92
|
-
const key = getKey(opts);
|
|
93
|
-
if (cached && cachedClients[key] != null) {
|
|
94
|
-
return cachedClients[key];
|
|
95
|
-
}
|
|
96
|
-
const clientFns = _createClientFns.get(ctx) || {};
|
|
97
|
-
const create = clientFns[key];
|
|
98
|
-
if (!create)
|
|
99
|
-
throw new Error(`No client was found for connection "${key}"`);
|
|
100
|
-
if (!ts.isFunction(create)) {
|
|
101
|
-
const actual = ts.getTypeOf(create);
|
|
102
|
-
throw new Error(`Registered Client for connection "${key}" is not a function, got ${actual}`);
|
|
103
|
-
}
|
|
104
|
-
const connectorConfig = setConnectorConfig(ctx.sysconfig, opts, {}, false);
|
|
105
|
-
const client = create(connectorConfig, ctx.logger, opts);
|
|
106
|
-
cachedClients[key] = client;
|
|
107
|
-
_cachedClients.set(ctx, cachedClients);
|
|
108
|
-
return client;
|
|
109
|
-
};
|
|
110
50
|
this.apis.foundation.createClient = async (opts) => {
|
|
111
51
|
const { cached } = opts;
|
|
112
52
|
const cachedClients = _cachedClients.get(ctx) || {};
|
|
@@ -118,8 +58,8 @@ class TestContext extends core_context_1.CoreContext {
|
|
|
118
58
|
const create = clientFns[key];
|
|
119
59
|
if (!create)
|
|
120
60
|
throw new Error(`No client was found for connection "${key}"`);
|
|
121
|
-
if (!
|
|
122
|
-
const actual =
|
|
61
|
+
if (!isFunction(create)) {
|
|
62
|
+
const actual = getTypeOf(create);
|
|
123
63
|
throw new Error(`Registered Client for connection "${key}" is not a function, got ${actual}`);
|
|
124
64
|
}
|
|
125
65
|
const connectorConfig = setConnectorConfig(ctx.sysconfig, opts, {}, false);
|
|
@@ -128,15 +68,15 @@ class TestContext extends core_context_1.CoreContext {
|
|
|
128
68
|
_cachedClients.set(ctx, cachedClients);
|
|
129
69
|
return client;
|
|
130
70
|
};
|
|
131
|
-
this.apis.foundation.promMetrics = new
|
|
71
|
+
this.apis.foundation.promMetrics = new PromMetrics(ctx.name, ctx.logger);
|
|
132
72
|
this.apis.setTestClients = (clients = []) => {
|
|
133
73
|
clients.forEach((clientConfig) => {
|
|
134
|
-
const {
|
|
135
|
-
const createFN = createClient
|
|
74
|
+
const { createClient, config: connectionConfig = {} } = clientConfig;
|
|
75
|
+
const createFN = createClient;
|
|
136
76
|
const clientFns = _createClientFns.get(ctx) || {};
|
|
137
77
|
const key = getKey(clientConfig);
|
|
138
|
-
if (!
|
|
139
|
-
const actual =
|
|
78
|
+
if (!isFunction(createFN)) {
|
|
79
|
+
const actual = getTypeOf(createFN);
|
|
140
80
|
throw new Error(`Test Client for connection "${key}" is not a function, got ${actual}`);
|
|
141
81
|
}
|
|
142
82
|
ctx.logger.trace(`Setting test client for connection "${key}"`, connectionConfig);
|
|
@@ -160,11 +100,24 @@ class TestContext extends core_context_1.CoreContext {
|
|
|
160
100
|
});
|
|
161
101
|
return clients;
|
|
162
102
|
};
|
|
163
|
-
|
|
103
|
+
}
|
|
104
|
+
static async createContext(options = {}) {
|
|
105
|
+
const defaultSysconfig = getDefaultSysconfig(options);
|
|
106
|
+
const config = {
|
|
107
|
+
name: options.name || 'test-context',
|
|
108
|
+
};
|
|
109
|
+
const cluster = {
|
|
110
|
+
isMaster: false,
|
|
111
|
+
worker: {
|
|
112
|
+
id: nanoid(8),
|
|
113
|
+
}
|
|
114
|
+
};
|
|
115
|
+
const sysConfig = await validateConfigs(cluster, config, defaultSysconfig);
|
|
116
|
+
const context = new TestContext(config, cluster, sysConfig);
|
|
164
117
|
if (options.clients) {
|
|
165
|
-
|
|
118
|
+
context.apis.setTestClients(options.clients);
|
|
166
119
|
}
|
|
120
|
+
return context;
|
|
167
121
|
}
|
|
168
122
|
}
|
|
169
|
-
exports.TestContext = TestContext;
|
|
170
123
|
//# sourceMappingURL=test-context.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"test-context.js","sourceRoot":"","sources":["../../src/test-context.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"test-context.js","sourceRoot":"","sources":["../../src/test-context.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { PartialDeep } from '@terascope/utils';
|
|
2
|
-
import
|
|
2
|
+
import type { Terafoundation } from '@terascope/types';
|
|
3
3
|
/**
|
|
4
4
|
* @param cluster the nodejs cluster metadata
|
|
5
5
|
* @param config the config object passed to the library terafoundation
|
|
6
6
|
* @param sysconfig unvalidated sysconfig
|
|
7
7
|
*/
|
|
8
|
-
export default function validateConfigs<S = Record<string,
|
|
8
|
+
export default function validateConfigs<S = Record<string, any>, A = Record<string, any>, D extends string = string>(cluster: Terafoundation.Cluster, config: Terafoundation.Config<S, A, D>, sysconfig: PartialDeep<Terafoundation.SysConfig<S>>): Promise<Terafoundation.SysConfig<S>>;
|
|
9
9
|
//# sourceMappingURL=validate-configs.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validate-configs.d.ts","sourceRoot":"","sources":["../../src/validate-configs.ts"],"names":[],"mappings":"AAEA,OAAO,EAEc,WAAW,
|
|
1
|
+
{"version":3,"file":"validate-configs.d.ts","sourceRoot":"","sources":["../../src/validate-configs.ts"],"names":[],"mappings":"AAEA,OAAO,EAEc,WAAW,EAE/B,MAAM,kBAAkB,CAAC;AAC1B,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAuEvD;;;;EAIE;AACF,wBAA8B,eAAe,CACzC,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EACvB,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EACvB,CAAC,SAAS,MAAM,GAAG,MAAM,EAEzB,OAAO,EAAE,cAAc,CAAC,OAAO,EAC/B,MAAM,EAAE,cAAc,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EACtC,SAAS,EAAE,WAAW,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,GACpD,OAAO,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAkGtC"}
|
|
@@ -1,45 +1,17 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
-
}) : function(o, v) {
|
|
16
|
-
o["default"] = v;
|
|
17
|
-
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
-
if (mod && mod.__esModule) return mod;
|
|
20
|
-
var result = {};
|
|
21
|
-
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
-
__setModuleDefault(result, mod);
|
|
23
|
-
return result;
|
|
24
|
-
};
|
|
25
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
26
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
27
|
-
};
|
|
28
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
29
|
-
const os_1 = __importDefault(require("os"));
|
|
30
|
-
const convict_1 = __importStar(require("convict"));
|
|
31
|
-
const utils_1 = require("@terascope/utils");
|
|
1
|
+
import os from 'node:os';
|
|
2
|
+
import convict from 'convict';
|
|
3
|
+
import { TSError, isFunction, isPlainObject, isEmpty, concat, pMap, cloneDeep } from '@terascope/utils';
|
|
32
4
|
// @ts-expect-error no types
|
|
33
|
-
|
|
5
|
+
import convict_format_with_validator from 'convict-format-with-validator';
|
|
34
6
|
// @ts-expect-error no types
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
7
|
+
import convict_format_with_moment from 'convict-format-with-moment';
|
|
8
|
+
import { getConnectorSchemaAndValFn } from './connector-utils.js';
|
|
9
|
+
import { foundationSchema } from './schema.js';
|
|
10
|
+
convict.addFormats(convict_format_with_validator);
|
|
11
|
+
convict.addFormats(convict_format_with_moment);
|
|
40
12
|
function validateConfig(cluster, schema, namespaceConfig) {
|
|
41
13
|
try {
|
|
42
|
-
const config = (
|
|
14
|
+
const config = convict(schema || {});
|
|
43
15
|
config.load(namespaceConfig);
|
|
44
16
|
if (cluster.isMaster) {
|
|
45
17
|
config.validate({
|
|
@@ -53,30 +25,30 @@ function validateConfig(cluster, schema, namespaceConfig) {
|
|
|
53
25
|
return config.getProperties();
|
|
54
26
|
}
|
|
55
27
|
catch (err) {
|
|
56
|
-
throw new
|
|
28
|
+
throw new TSError(err, { reason: 'Error validating configuration' });
|
|
57
29
|
}
|
|
58
30
|
}
|
|
59
31
|
function extractSchema(fn, sysconfig) {
|
|
60
|
-
if (
|
|
32
|
+
if (isFunction(fn)) {
|
|
61
33
|
const result = fn(sysconfig);
|
|
62
34
|
if (result.schema) {
|
|
63
35
|
return result.schema;
|
|
64
36
|
}
|
|
65
37
|
return result;
|
|
66
38
|
}
|
|
67
|
-
if (
|
|
39
|
+
if (isPlainObject(fn)) {
|
|
68
40
|
return fn;
|
|
69
41
|
}
|
|
70
42
|
return {};
|
|
71
43
|
}
|
|
72
44
|
function extractValidatorFn(fn, sysconfig) {
|
|
73
|
-
if (
|
|
45
|
+
if (isFunction(fn)) {
|
|
74
46
|
const result = fn(sysconfig);
|
|
75
47
|
if (result.validatorFn) {
|
|
76
48
|
return result.validatorFn;
|
|
77
49
|
}
|
|
78
50
|
}
|
|
79
|
-
if (
|
|
51
|
+
if (isPlainObject(fn)) {
|
|
80
52
|
return fn.validatorFn;
|
|
81
53
|
}
|
|
82
54
|
return undefined;
|
|
@@ -86,23 +58,23 @@ function extractValidatorFn(fn, sysconfig) {
|
|
|
86
58
|
* @param config the config object passed to the library terafoundation
|
|
87
59
|
* @param sysconfig unvalidated sysconfig
|
|
88
60
|
*/
|
|
89
|
-
function validateConfigs(cluster, config, sysconfig) {
|
|
90
|
-
if (!
|
|
61
|
+
export default async function validateConfigs(cluster, config, sysconfig) {
|
|
62
|
+
if (!isPlainObject(config) || isEmpty(config)) {
|
|
91
63
|
throw new Error('Terafoundation requires a valid application configuration');
|
|
92
64
|
}
|
|
93
|
-
if (!
|
|
65
|
+
if (!isPlainObject(sysconfig) || isEmpty(sysconfig)) {
|
|
94
66
|
throw new Error('Terafoundation requires a valid system configuration');
|
|
95
67
|
}
|
|
96
68
|
const listOfValidations = {};
|
|
97
69
|
const schema = extractSchema(config.config_schema, sysconfig);
|
|
98
|
-
schema.terafoundation =
|
|
70
|
+
schema.terafoundation = foundationSchema();
|
|
99
71
|
const result = {};
|
|
100
72
|
if (config.schema_formats) {
|
|
101
73
|
config.schema_formats.forEach((format) => {
|
|
102
|
-
|
|
74
|
+
convict.addFormat(format);
|
|
103
75
|
});
|
|
104
76
|
}
|
|
105
|
-
const schemaKeys =
|
|
77
|
+
const schemaKeys = concat(Object.keys(schema), Object.keys(sysconfig));
|
|
106
78
|
for (const schemaKey of schemaKeys) {
|
|
107
79
|
const subSchema = schema[schemaKey] || {};
|
|
108
80
|
const subConfig = sysconfig[schemaKey] || {};
|
|
@@ -111,33 +83,33 @@ function validateConfigs(cluster, config, sysconfig) {
|
|
|
111
83
|
if (schemaKey === 'terafoundation') {
|
|
112
84
|
result[schemaKey].connectors = {};
|
|
113
85
|
const connectors = subConfig.connectors || {};
|
|
114
|
-
|
|
115
|
-
|
|
86
|
+
const connectorList = Object.entries(connectors);
|
|
87
|
+
await pMap(connectorList, async ([connector, connectorConfig]) => {
|
|
88
|
+
const { schema: connectorSchema, validatorFn: connValidatorFn } = await getConnectorSchemaAndValFn(connector);
|
|
116
89
|
result[schemaKey].connectors[connector] = {};
|
|
117
90
|
for (const [connection, connectionConfig] of Object.entries(connectorConfig)) {
|
|
118
91
|
const validatedConnConfig = validateConfig(cluster, connectorSchema, connectionConfig);
|
|
119
92
|
result[schemaKey].connectors[connector][connection] = validatedConnConfig;
|
|
120
93
|
listOfValidations[`${connector}:${connection}`] = {
|
|
121
94
|
validatorFn: connValidatorFn,
|
|
122
|
-
|
|
95
|
+
config: validatedConnConfig,
|
|
123
96
|
connector: true
|
|
124
97
|
};
|
|
125
98
|
}
|
|
126
|
-
}
|
|
99
|
+
});
|
|
127
100
|
listOfValidations[schemaKey] = {
|
|
128
|
-
|
|
129
|
-
subconfig: validatedConfig
|
|
101
|
+
config: validatedConfig
|
|
130
102
|
};
|
|
131
103
|
}
|
|
132
104
|
else {
|
|
133
105
|
listOfValidations[schemaKey] = {
|
|
134
106
|
validatorFn: extractValidatorFn(config.config_schema, sysconfig),
|
|
135
|
-
|
|
107
|
+
config: validatedConfig
|
|
136
108
|
};
|
|
137
109
|
}
|
|
138
110
|
}
|
|
139
111
|
// Annotate the config with some information about this instance.
|
|
140
|
-
const hostname =
|
|
112
|
+
const hostname = os.hostname();
|
|
141
113
|
if (process.env.POD_IP) {
|
|
142
114
|
result._nodeName = process.env.POD_IP;
|
|
143
115
|
}
|
|
@@ -152,14 +124,13 @@ function validateConfigs(cluster, config, sysconfig) {
|
|
|
152
124
|
const [name, validatorObj] = entry;
|
|
153
125
|
if (validatorObj.validatorFn) {
|
|
154
126
|
try {
|
|
155
|
-
validatorObj.validatorFn(
|
|
127
|
+
validatorObj.validatorFn(cloneDeep(validatorObj.config), cloneDeep(result));
|
|
156
128
|
}
|
|
157
129
|
catch (err) {
|
|
158
|
-
throw new
|
|
130
|
+
throw new TSError(`Cross-field validation failed for ${validatorObj.connector ? 'connector ' : ''}'${name}': ${err}`);
|
|
159
131
|
}
|
|
160
132
|
}
|
|
161
133
|
}
|
|
162
134
|
return result;
|
|
163
135
|
}
|
|
164
|
-
exports.default = validateConfigs;
|
|
165
136
|
//# sourceMappingURL=validate-configs.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validate-configs.js","sourceRoot":"","sources":["../../src/validate-configs.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"validate-configs.js","sourceRoot":"","sources":["../../src/validate-configs.ts"],"names":[],"mappings":"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"}
|
package/dist/src/worker.d.ts
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import {
|
|
2
|
-
export default function workerModule(context:
|
|
1
|
+
import type { Terafoundation } from '@terascope/types';
|
|
2
|
+
export default function workerModule(context: Terafoundation.Context): void;
|
|
3
3
|
//# sourceMappingURL=worker.d.ts.map
|
package/dist/src/worker.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"worker.d.ts","sourceRoot":"","sources":["../../src/worker.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"worker.d.ts","sourceRoot":"","sources":["../../src/worker.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAEvD,MAAM,CAAC,OAAO,UAAU,YAAY,CAAC,OAAO,EAAE,cAAc,CAAC,OAAO,GAAG,IAAI,CAG1E"}
|
package/dist/src/worker.js
CHANGED
|
@@ -1,8 +1,5 @@
|
|
|
1
|
-
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
function workerModule(context) {
|
|
1
|
+
export default function workerModule(context) {
|
|
4
2
|
const { logger } = context;
|
|
5
3
|
logger.info('Stub Worker.');
|
|
6
4
|
}
|
|
7
|
-
exports.default = workerModule;
|
|
8
5
|
//# sourceMappingURL=worker.js.map
|
package/dist/src/worker.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"worker.js","sourceRoot":"","sources":["../../src/worker.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"worker.js","sourceRoot":"","sources":["../../src/worker.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,OAAO,UAAU,YAAY,CAAC,OAA+B;IAChE,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC;IAC3B,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;AAChC,CAAC"}
|