@deepexi/datasense-cli 3.0.1 → 3.1.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/connector-child.cjs
CHANGED
|
@@ -36,8 +36,6 @@ var import_node_vm = __toESM(require("node:vm"), 1);
|
|
|
36
36
|
|
|
37
37
|
// src/runtime/protocol.ts
|
|
38
38
|
var HOST_METHODS = Object.freeze([
|
|
39
|
-
"definition",
|
|
40
|
-
"declaration",
|
|
41
39
|
"http",
|
|
42
40
|
"db.query",
|
|
43
41
|
"db.next",
|
|
@@ -50,14 +48,23 @@ var HOST_METHODS = Object.freeze([
|
|
|
50
48
|
]);
|
|
51
49
|
var GUEST_FAILURE_CODES = Object.freeze([
|
|
52
50
|
"CONNECTOR_LOAD_FAILED",
|
|
51
|
+
"CONNECTOR_LOOKUP_REQUIRED",
|
|
53
52
|
"CONFIG_INVALID",
|
|
54
53
|
"SCHEMA_ERROR",
|
|
55
54
|
"FATAL_ERROR",
|
|
56
55
|
"AUTH_ERROR",
|
|
57
56
|
"TRANSIENT_ERROR",
|
|
58
57
|
"PUSH_UNKNOWN",
|
|
58
|
+
"SUGGEST_INVALID",
|
|
59
59
|
"CANCELED"
|
|
60
60
|
]);
|
|
61
|
+
var GUEST_OPERATION_FAILURE_CODES = Object.freeze([
|
|
62
|
+
"REJECTED",
|
|
63
|
+
"INDETERMINATE",
|
|
64
|
+
...GUEST_FAILURE_CODES,
|
|
65
|
+
"INPUT_INVALID",
|
|
66
|
+
"OUTPUT_INVALID"
|
|
67
|
+
]);
|
|
61
68
|
var HTTP_METHODS = new Set(["GET", "POST", "PUT", "PATCH", "DELETE", "HEAD"]);
|
|
62
69
|
var BODY_ENCODINGS = new Set(["utf8", "base64"]);
|
|
63
70
|
var DIGEST_ENCODINGS = new Set(["hex", "base64"]);
|
|
@@ -65,9 +72,11 @@ var HMAC_ALGORITHMS = new Set(["sha1", "sha256", "sha512"]);
|
|
|
65
72
|
var HASH_ALGORITHMS = new Set(["md5", "sha1", "sha256", "sha512"]);
|
|
66
73
|
var LOG_LEVELS = new Set(["info", "warn", "error"]);
|
|
67
74
|
var SYNC_MODES = new Set(["full", "incremental"]);
|
|
68
|
-
var
|
|
75
|
+
var COLUMN_TYPES = new Set(["string", "integer", "decimal", "boolean", "date", "instant", "json"]);
|
|
69
76
|
var HOST_METHOD_SET = new Set(HOST_METHODS);
|
|
70
77
|
var FAILURE_CODE_SET = new Set(GUEST_FAILURE_CODES);
|
|
78
|
+
var OPERATION_PHASES = new Set(["run", "lookup", "simulate"]);
|
|
79
|
+
var OPERATION_FAILURE_CODE_SET = new Set(GUEST_OPERATION_FAILURE_CODES);
|
|
71
80
|
function isRecord(value) {
|
|
72
81
|
return typeof value === "object" && value !== null && !Array.isArray(value);
|
|
73
82
|
}
|
|
@@ -88,6 +97,18 @@ function parsePushRequest(value) {
|
|
|
88
97
|
return null;
|
|
89
98
|
return { requestId, push, receivedAt, headers: { ...headers }, body };
|
|
90
99
|
}
|
|
100
|
+
function parseRateLimit(value) {
|
|
101
|
+
if (value === undefined)
|
|
102
|
+
return;
|
|
103
|
+
if (!isRecord(value))
|
|
104
|
+
return null;
|
|
105
|
+
const { perSecond, concurrency } = value;
|
|
106
|
+
if (typeof perSecond !== "number" || !Number.isFinite(perSecond) || perSecond <= 0)
|
|
107
|
+
return null;
|
|
108
|
+
if (typeof concurrency !== "number" || !Number.isSafeInteger(concurrency) || concurrency < 1)
|
|
109
|
+
return null;
|
|
110
|
+
return { perSecond, concurrency };
|
|
111
|
+
}
|
|
91
112
|
function parseJob(value) {
|
|
92
113
|
if (!isRecord(value) || !isRecord(value.config) || !isStringArray(value.secretFields))
|
|
93
114
|
return null;
|
|
@@ -105,27 +126,29 @@ function parseJob(value) {
|
|
|
105
126
|
}
|
|
106
127
|
return { kind: "push", config, secretFields, requests };
|
|
107
128
|
}
|
|
108
|
-
|
|
109
|
-
|
|
129
|
+
const rateLimit = parseRateLimit(value.rateLimit);
|
|
130
|
+
if (rateLimit === null)
|
|
131
|
+
return null;
|
|
132
|
+
const limit = rateLimit ? { rateLimit } : {};
|
|
110
133
|
if (value.kind === "check")
|
|
111
|
-
return { kind: "check", config, secretFields };
|
|
134
|
+
return { kind: "check", config, secretFields, ...limit };
|
|
112
135
|
if (value.kind === "pull") {
|
|
113
|
-
const { stream, mode, streamConfig, tables
|
|
136
|
+
const { stream, mode, streamConfig, tables } = value;
|
|
114
137
|
if (typeof stream !== "string" || typeof mode !== "string" || !SYNC_MODES.has(mode) || !isRecord(streamConfig) || !isStringArray(tables))
|
|
115
138
|
return null;
|
|
116
|
-
|
|
139
|
+
return { kind: "pull", config, secretFields, stream, mode, state: value.state, streamConfig, tables: [...tables], ...limit };
|
|
140
|
+
}
|
|
141
|
+
if (value.kind === "suggest") {
|
|
142
|
+
const { stream, table } = value;
|
|
143
|
+
if (typeof stream !== "string" || typeof table !== "string")
|
|
144
|
+
return null;
|
|
145
|
+
return { kind: "suggest", config, secretFields, stream, table, ...limit };
|
|
146
|
+
}
|
|
147
|
+
if (value.kind === "operation") {
|
|
148
|
+
const { phase, operation, params, idempotencyKey } = value;
|
|
149
|
+
if (typeof phase !== "string" || !OPERATION_PHASES.has(phase) || typeof operation !== "string" || !isRecord(params) || typeof idempotencyKey !== "string")
|
|
117
150
|
return null;
|
|
118
|
-
return {
|
|
119
|
-
kind: "pull",
|
|
120
|
-
config,
|
|
121
|
-
secretFields,
|
|
122
|
-
stream,
|
|
123
|
-
mode,
|
|
124
|
-
state: value.state,
|
|
125
|
-
streamConfig,
|
|
126
|
-
tables: [...tables],
|
|
127
|
-
...discoverFirst === true ? { discoverFirst: true } : {}
|
|
128
|
-
};
|
|
151
|
+
return { kind: "operation", phase, config, secretFields, operation, params, idempotencyKey, ...limit };
|
|
129
152
|
}
|
|
130
153
|
return null;
|
|
131
154
|
}
|
|
@@ -174,6 +197,7 @@ function parseParentMessage(value) {
|
|
|
174
197
|
return null;
|
|
175
198
|
}
|
|
176
199
|
}
|
|
200
|
+
var OPERATION_HOST_METHODS = new Set(["http", "crypto", "cache.get", "cache.set", "secret.reveal"]);
|
|
177
201
|
|
|
178
202
|
// src/runtime/session.ts
|
|
179
203
|
var GUEST_FILENAME = "ontos-guest.js";
|
|
Binary file
|