signalk-questdb 2.1.0 → 2.1.2
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/ilp-writer.d.ts +1 -0
- package/dist/ilp-writer.js +17 -1
- package/dist/ilp-writer.js.map +1 -1
- package/dist/index.js +2 -2
- package/dist/index.js.map +1 -1
- package/dist/migration.js +40 -45
- package/dist/migration.js.map +1 -1
- package/dist/wal-monitor.js +1 -1
- package/dist/wal-monitor.js.map +1 -1
- package/package.json +2 -2
- package/dist/test/config.test.d.ts +0 -1
- package/dist/test/config.test.js +0 -161
- package/dist/test/config.test.js.map +0 -1
- package/dist/test/configpanel-responses.test.d.ts +0 -1
- package/dist/test/configpanel-responses.test.js +0 -197
- package/dist/test/configpanel-responses.test.js.map +0 -1
- package/dist/test/console-proxy.test.d.ts +0 -1
- package/dist/test/console-proxy.test.js +0 -664
- package/dist/test/console-proxy.test.js.map +0 -1
- package/dist/test/container-env.test.d.ts +0 -1
- package/dist/test/container-env.test.js +0 -70
- package/dist/test/container-env.test.js.map +0 -1
- package/dist/test/delta-routing.test.d.ts +0 -1
- package/dist/test/delta-routing.test.js +0 -258
- package/dist/test/delta-routing.test.js.map +0 -1
- package/dist/test/full-export-range.test.d.ts +0 -1
- package/dist/test/full-export-range.test.js +0 -78
- package/dist/test/full-export-range.test.js.map +0 -1
- package/dist/test/history-v1.test.d.ts +0 -1
- package/dist/test/history-v1.test.js +0 -676
- package/dist/test/history-v1.test.js.map +0 -1
- package/dist/test/history-v2.test.d.ts +0 -1
- package/dist/test/history-v2.test.js +0 -1001
- package/dist/test/history-v2.test.js.map +0 -1
- package/dist/test/host-limits.test.d.ts +0 -1
- package/dist/test/host-limits.test.js +0 -81
- package/dist/test/host-limits.test.js.map +0 -1
- package/dist/test/ilp-writer.test.d.ts +0 -1
- package/dist/test/ilp-writer.test.js +0 -419
- package/dist/test/ilp-writer.test.js.map +0 -1
- package/dist/test/influx-detect.test.d.ts +0 -1
- package/dist/test/influx-detect.test.js +0 -287
- package/dist/test/influx-detect.test.js.map +0 -1
- package/dist/test/migration.test.d.ts +0 -1
- package/dist/test/migration.test.js +0 -851
- package/dist/test/migration.test.js.map +0 -1
- package/dist/test/package-e2e.test.d.ts +0 -1
- package/dist/test/package-e2e.test.js +0 -306
- package/dist/test/package-e2e.test.js.map +0 -1
- package/dist/test/path-matcher.test.d.ts +0 -1
- package/dist/test/path-matcher.test.js +0 -224
- package/dist/test/path-matcher.test.js.map +0 -1
- package/dist/test/query-client.test.d.ts +0 -1
- package/dist/test/query-client.test.js +0 -299
- package/dist/test/query-client.test.js.map +0 -1
- package/dist/test/questdb-endpoint.test.d.ts +0 -1
- package/dist/test/questdb-endpoint.test.js +0 -297
- package/dist/test/questdb-endpoint.test.js.map +0 -1
- package/dist/test/restore.test.d.ts +0 -1
- package/dist/test/restore.test.js +0 -543
- package/dist/test/restore.test.js.map +0 -1
- package/dist/test/time-range.test.d.ts +0 -1
- package/dist/test/time-range.test.js +0 -53
- package/dist/test/time-range.test.js.map +0 -1
- package/dist/test/wal-monitor.test.d.ts +0 -1
- package/dist/test/wal-monitor.test.js +0 -405
- package/dist/test/wal-monitor.test.js.map +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ilp-writer.test.js","sourceRoot":"","sources":["../../src/test/ilp-writer.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1,287 +0,0 @@
|
|
|
1
|
-
import { test, describe } from "node:test";
|
|
2
|
-
import assert from "node:assert";
|
|
3
|
-
import { detectInflux, validateInfluxUrl } from "../influx-detect.js";
|
|
4
|
-
describe("InfluxDB version detection", () => {
|
|
5
|
-
// The reported bug: InfluxDB 2.x answers the 1.x-compat /ping with 204, so
|
|
6
|
-
// probing both endpoints independently reported one server twice — the
|
|
7
|
-
// config panel showed "InfluxDB 1.x found" and "InfluxDB 2.x found" side by
|
|
8
|
-
// side, both pointing at the same v2.9.1 instance.
|
|
9
|
-
test("a 2.x server that also answers /ping is reported once, as 2.x", async () => {
|
|
10
|
-
const fakeFetch = (async (url) => {
|
|
11
|
-
const u = String(url);
|
|
12
|
-
if (u.endsWith("/health"))
|
|
13
|
-
return new Response(JSON.stringify({ status: "pass", version: "v2.9.1" }), { status: 200 });
|
|
14
|
-
if (u.endsWith("/ping"))
|
|
15
|
-
return new Response(null, {
|
|
16
|
-
status: 204,
|
|
17
|
-
headers: { "X-Influxdb-Version": "v2.9.1" },
|
|
18
|
-
});
|
|
19
|
-
return new Response(null, { status: 404 });
|
|
20
|
-
});
|
|
21
|
-
const sources = await detectInflux("http://localhost:8086", fakeFetch);
|
|
22
|
-
assert.strictEqual(sources.length, 1);
|
|
23
|
-
assert.strictEqual(sources[0].type, "influxdb2");
|
|
24
|
-
});
|
|
25
|
-
// The panel renders "v{version}". InfluxDB already reports "v2.9.1", which
|
|
26
|
-
// is how the screenshot ended up reading "vv2.9.1".
|
|
27
|
-
test("version is reported without the leading v", async () => {
|
|
28
|
-
const fakeFetch = (async (url) => {
|
|
29
|
-
if (String(url).endsWith("/health"))
|
|
30
|
-
return new Response(JSON.stringify({ status: "pass", version: "v2.9.1" }), { status: 200 });
|
|
31
|
-
return new Response(null, { status: 404 });
|
|
32
|
-
});
|
|
33
|
-
const sources = await detectInflux("http://localhost:8086", fakeFetch);
|
|
34
|
-
assert.strictEqual(sources[0].version, "2.9.1");
|
|
35
|
-
});
|
|
36
|
-
// InfluxDB 1.8 ALSO serves /health with {"status":"pass"} — verified against
|
|
37
|
-
// a live 1.8.10. Treating a healthy /health as proof of 2.x would flip every
|
|
38
|
-
// real 1.x server to "InfluxDB 2.x", which matters beyond the label: the two
|
|
39
|
-
// majors need different query dialects.
|
|
40
|
-
test("a 1.8 server that answers /health is still detected as 1.x", async () => {
|
|
41
|
-
const fakeFetch = (async (url) => {
|
|
42
|
-
if (String(url).endsWith("/health"))
|
|
43
|
-
return new Response(JSON.stringify({ status: "pass", version: "1.8.10" }), { status: 200 });
|
|
44
|
-
return new Response(null, { status: 404 });
|
|
45
|
-
});
|
|
46
|
-
const sources = await detectInflux("http://localhost:8086", fakeFetch);
|
|
47
|
-
assert.strictEqual(sources.length, 1);
|
|
48
|
-
assert.strictEqual(sources[0].type, "influxdb1");
|
|
49
|
-
assert.strictEqual(sources[0].version, "1.8.10");
|
|
50
|
-
});
|
|
51
|
-
test("a 1.x server with no /health is detected via /ping", async () => {
|
|
52
|
-
const fakeFetch = (async (url) => {
|
|
53
|
-
const u = String(url);
|
|
54
|
-
if (u.endsWith("/health"))
|
|
55
|
-
return new Response(null, { status: 404 });
|
|
56
|
-
if (u.endsWith("/ping"))
|
|
57
|
-
return new Response(null, {
|
|
58
|
-
status: 204,
|
|
59
|
-
headers: { "X-Influxdb-Version": "1.8.10" },
|
|
60
|
-
});
|
|
61
|
-
return new Response(null, { status: 404 });
|
|
62
|
-
});
|
|
63
|
-
const sources = await detectInflux("http://localhost:8086", fakeFetch);
|
|
64
|
-
assert.strictEqual(sources.length, 1);
|
|
65
|
-
assert.strictEqual(sources[0].type, "influxdb1");
|
|
66
|
-
});
|
|
67
|
-
test("a server answering /ping without a version header is still reported", async () => {
|
|
68
|
-
const fakeFetch = (async (url) => {
|
|
69
|
-
if (String(url).endsWith("/ping"))
|
|
70
|
-
return new Response(null, { status: 204 });
|
|
71
|
-
return new Response(null, { status: 404 });
|
|
72
|
-
});
|
|
73
|
-
const sources = await detectInflux("http://localhost:8086", fakeFetch);
|
|
74
|
-
assert.strictEqual(sources.length, 1);
|
|
75
|
-
assert.strictEqual(sources[0].version, "unknown");
|
|
76
|
-
});
|
|
77
|
-
// 3.x drops the /health and Flux APIs both supported paths assume. Claiming
|
|
78
|
-
// it is 2.x (or 1.x) would send the caller into a dialect it cannot answer,
|
|
79
|
-
// so it is reported as nothing at all until 3.x is genuinely supported.
|
|
80
|
-
test("a 3.x server is not reported as a version it is not", async () => {
|
|
81
|
-
const fakeFetch = (async (url) => {
|
|
82
|
-
if (String(url).endsWith("/health"))
|
|
83
|
-
return new Response(JSON.stringify({ status: "pass", version: "v3.0.1" }), { status: 200 });
|
|
84
|
-
return new Response(null, { status: 404 });
|
|
85
|
-
});
|
|
86
|
-
const sources = await detectInflux("http://localhost:8086", fakeFetch);
|
|
87
|
-
assert.deepStrictEqual(sources, []);
|
|
88
|
-
});
|
|
89
|
-
// The allowlist checks the URL it is given; a followed redirect is a second
|
|
90
|
-
// request to a host nothing checked. Without redirect:"manual" a 302 from an
|
|
91
|
-
// allowlisted server would walk the guard straight to a public address.
|
|
92
|
-
test("redirects are not followed on either probe", async () => {
|
|
93
|
-
const seen = [];
|
|
94
|
-
const fakeFetch = (async (_url, init) => {
|
|
95
|
-
seen.push(init?.redirect);
|
|
96
|
-
return new Response(null, { status: 404 });
|
|
97
|
-
});
|
|
98
|
-
await detectInflux("http://localhost:8086", fakeFetch);
|
|
99
|
-
assert.strictEqual(seen.length, 2, "both probes should run");
|
|
100
|
-
assert.ok(seen.every((r) => r === "manual"), `expected every probe to set redirect:manual, got ${JSON.stringify(seen)}`);
|
|
101
|
-
});
|
|
102
|
-
test("an unhealthy /health falls through to /ping rather than reporting nothing", async () => {
|
|
103
|
-
const fakeFetch = (async (url) => {
|
|
104
|
-
const u = String(url);
|
|
105
|
-
if (u.endsWith("/health"))
|
|
106
|
-
return new Response(JSON.stringify({ status: "fail" }), {
|
|
107
|
-
status: 200,
|
|
108
|
-
});
|
|
109
|
-
if (u.endsWith("/ping"))
|
|
110
|
-
return new Response(null, {
|
|
111
|
-
status: 204,
|
|
112
|
-
headers: { "X-Influxdb-Version": "v2.9.1" },
|
|
113
|
-
});
|
|
114
|
-
return new Response(null, { status: 404 });
|
|
115
|
-
});
|
|
116
|
-
const sources = await detectInflux("http://localhost:8086", fakeFetch);
|
|
117
|
-
assert.strictEqual(sources.length, 1);
|
|
118
|
-
assert.strictEqual(sources[0].type, "influxdb2");
|
|
119
|
-
});
|
|
120
|
-
// A gateway or reverse proxy can answer /health without the `version`
|
|
121
|
-
// field. Keying "did anything answer?" off the version string meant such a
|
|
122
|
-
// server — with /ping also unavailable — was reported as NOT RUNNING: "no
|
|
123
|
-
// InfluxDB found" pointing straight at a live one.
|
|
124
|
-
test("a healthy server that reports no version is still found", async () => {
|
|
125
|
-
const fakeFetch = (async (url) => {
|
|
126
|
-
if (String(url).endsWith("/health"))
|
|
127
|
-
return new Response(JSON.stringify({ status: "pass" }), {
|
|
128
|
-
status: 200,
|
|
129
|
-
});
|
|
130
|
-
return new Response(null, { status: 404 });
|
|
131
|
-
});
|
|
132
|
-
const sources = await detectInflux("http://localhost:8086", fakeFetch);
|
|
133
|
-
assert.strictEqual(sources.length, 1);
|
|
134
|
-
assert.strictEqual(sources[0].status, "found");
|
|
135
|
-
assert.strictEqual(sources[0].version, "unknown");
|
|
136
|
-
});
|
|
137
|
-
// /health answering without a version is still worth probing /ping for:
|
|
138
|
-
// that header is what tells 1.x and 2.x apart.
|
|
139
|
-
test("a version-less /health falls back to the /ping version header", async () => {
|
|
140
|
-
const fakeFetch = (async (url) => {
|
|
141
|
-
const u = String(url);
|
|
142
|
-
if (u.endsWith("/health"))
|
|
143
|
-
return new Response(JSON.stringify({ status: "pass" }), {
|
|
144
|
-
status: 200,
|
|
145
|
-
});
|
|
146
|
-
if (u.endsWith("/ping"))
|
|
147
|
-
return new Response(null, {
|
|
148
|
-
status: 204,
|
|
149
|
-
headers: { "X-Influxdb-Version": "v2.9.1" },
|
|
150
|
-
});
|
|
151
|
-
return new Response(null, { status: 404 });
|
|
152
|
-
});
|
|
153
|
-
const sources = await detectInflux("http://localhost:8086", fakeFetch);
|
|
154
|
-
assert.strictEqual(sources.length, 1);
|
|
155
|
-
assert.strictEqual(sources[0].type, "influxdb2");
|
|
156
|
-
assert.strictEqual(sources[0].version, "2.9.1");
|
|
157
|
-
});
|
|
158
|
-
// The 3.x exclusion is matched on the major with an explicit boundary. A
|
|
159
|
-
// version of exactly "3" has no dot to match, and previously fell through
|
|
160
|
-
// to the 1.x label — the same misidentification this module prevents.
|
|
161
|
-
test("a bare major version does not fall through to the 1.x label", async () => {
|
|
162
|
-
for (const version of ["3", "3-alpha", "v3", "3.0.0-core"]) {
|
|
163
|
-
const fakeFetch = (async (url) => {
|
|
164
|
-
if (String(url).endsWith("/health"))
|
|
165
|
-
return new Response(JSON.stringify({ status: "pass", version }), {
|
|
166
|
-
status: 200,
|
|
167
|
-
});
|
|
168
|
-
return new Response(null, { status: 404 });
|
|
169
|
-
});
|
|
170
|
-
const sources = await detectInflux("http://localhost:8086", fakeFetch);
|
|
171
|
-
assert.deepStrictEqual(sources, [], `version "${version}" should not be reported as a supported major`);
|
|
172
|
-
}
|
|
173
|
-
});
|
|
174
|
-
test("a 2.x version with a suffix is still 2.x", async () => {
|
|
175
|
-
const fakeFetch = (async (url) => {
|
|
176
|
-
if (String(url).endsWith("/health"))
|
|
177
|
-
return new Response(JSON.stringify({ status: "pass", version: "2.7.0-rc1" }), { status: 200 });
|
|
178
|
-
return new Response(null, { status: 404 });
|
|
179
|
-
});
|
|
180
|
-
const sources = await detectInflux("http://localhost:8086", fakeFetch);
|
|
181
|
-
assert.strictEqual(sources[0].type, "influxdb2");
|
|
182
|
-
});
|
|
183
|
-
// The response body is whatever the far end chose to send. A non-string
|
|
184
|
-
// `version` reached `.replace()` and threw a TypeError, which the route
|
|
185
|
-
// turns into a 500 rather than an honest detection result.
|
|
186
|
-
test("a non-string version is handled, not thrown on", async () => {
|
|
187
|
-
for (const version of [123, { a: 1 }, ["x"], true, null]) {
|
|
188
|
-
const fakeFetch = (async (url) => {
|
|
189
|
-
if (String(url).endsWith("/health"))
|
|
190
|
-
return new Response(JSON.stringify({ status: "pass", version }), {
|
|
191
|
-
status: 200,
|
|
192
|
-
});
|
|
193
|
-
return new Response(null, { status: 404 });
|
|
194
|
-
});
|
|
195
|
-
const sources = await detectInflux("http://localhost:8086", fakeFetch);
|
|
196
|
-
assert.strictEqual(sources.length, 1, `version ${JSON.stringify(version)}`);
|
|
197
|
-
assert.strictEqual(sources[0].version, "unknown");
|
|
198
|
-
}
|
|
199
|
-
});
|
|
200
|
-
test("nothing running yields no sources", async () => {
|
|
201
|
-
const fakeFetch = (async () => {
|
|
202
|
-
throw new Error("ECONNREFUSED");
|
|
203
|
-
});
|
|
204
|
-
assert.deepStrictEqual(await detectInflux("http://localhost:8086", fakeFetch), []);
|
|
205
|
-
});
|
|
206
|
-
});
|
|
207
|
-
describe("InfluxDB URL validation", () => {
|
|
208
|
-
// The URL is fetched by the SERVER, so an unrestricted value would let a
|
|
209
|
-
// config-panel user probe hosts the boat can reach but they cannot.
|
|
210
|
-
test("a public host is refused", () => {
|
|
211
|
-
assert.strictEqual(validateInfluxUrl("http://example.com:8086"), null);
|
|
212
|
-
});
|
|
213
|
-
test("the cloud metadata address is refused", () => {
|
|
214
|
-
assert.strictEqual(validateInfluxUrl("http://169.254.169.254/"), null);
|
|
215
|
-
});
|
|
216
|
-
test("a non-http scheme is refused", () => {
|
|
217
|
-
assert.strictEqual(validateInfluxUrl("file:///etc/passwd"), null);
|
|
218
|
-
});
|
|
219
|
-
test("garbage is refused rather than thrown on", () => {
|
|
220
|
-
assert.strictEqual(validateInfluxUrl("not a url"), null);
|
|
221
|
-
});
|
|
222
|
-
test("localhost and private ranges are allowed", () => {
|
|
223
|
-
assert.strictEqual(validateInfluxUrl("http://localhost:8086"), "http://localhost:8086");
|
|
224
|
-
assert.strictEqual(validateInfluxUrl("http://192.168.1.100:8086"), "http://192.168.1.100:8086");
|
|
225
|
-
assert.strictEqual(validateInfluxUrl("http://10.0.0.5:8086"), "http://10.0.0.5:8086");
|
|
226
|
-
});
|
|
227
|
-
test("172.16-31 is private but 172.32 is not", () => {
|
|
228
|
-
assert.ok(validateInfluxUrl("http://172.16.0.1:8086"));
|
|
229
|
-
assert.ok(validateInfluxUrl("http://172.31.255.1:8086"));
|
|
230
|
-
assert.strictEqual(validateInfluxUrl("http://172.32.0.1:8086"), null);
|
|
231
|
-
});
|
|
232
|
-
// URL.hostname returns "[::1]" for a bracketed IPv6 literal, so comparing
|
|
233
|
-
// against a bare "::1" silently refused every IPv6 loopback URL.
|
|
234
|
-
test("bracketed IPv6 loopback is allowed", () => {
|
|
235
|
-
assert.strictEqual(validateInfluxUrl("http://[::1]:8086"), "http://[::1]:8086");
|
|
236
|
-
});
|
|
237
|
-
test("the whole 127.0.0.0/8 loopback range is allowed", () => {
|
|
238
|
-
assert.ok(validateInfluxUrl("http://127.0.0.1:8086"));
|
|
239
|
-
assert.ok(validateInfluxUrl("http://127.1.2.3:8086"));
|
|
240
|
-
});
|
|
241
|
-
// A non-loopback IPv6 address must still be refused.
|
|
242
|
-
test("a routable IPv6 address is refused", () => {
|
|
243
|
-
assert.strictEqual(validateInfluxUrl("http://[2001:db8::1]:8086"), null);
|
|
244
|
-
});
|
|
245
|
-
// The private-range patterns are prefix matches. Applied to a NAME they let
|
|
246
|
-
// any domain whose label happens to start with "10." or "192.168." through,
|
|
247
|
-
// and DNS resolves it wherever its owner likes — the exact hosts the guard
|
|
248
|
-
// exists to keep the server away from.
|
|
249
|
-
test("a DNS name that merely looks private is refused", () => {
|
|
250
|
-
assert.strictEqual(validateInfluxUrl("http://10.evil.com:8086"), null);
|
|
251
|
-
assert.strictEqual(validateInfluxUrl("http://192.168.attacker.net:8086"), null);
|
|
252
|
-
assert.strictEqual(validateInfluxUrl("http://127.0.0.1.evil.com:8086"), null);
|
|
253
|
-
});
|
|
254
|
-
test("a public IP literal is still refused", () => {
|
|
255
|
-
assert.strictEqual(validateInfluxUrl("http://8.8.8.8:8086"), null);
|
|
256
|
-
assert.strictEqual(validateInfluxUrl("http://172.32.0.1:8086"), null);
|
|
257
|
-
});
|
|
258
|
-
// Probes append their own path, so a query string or fragment left on the
|
|
259
|
-
// value would end up in the middle of the probe URL:
|
|
260
|
-
// "http://localhost:8086/?x=1#frag" + "/health".
|
|
261
|
-
test("a query string and fragment are dropped", () => {
|
|
262
|
-
assert.strictEqual(validateInfluxUrl("http://localhost:8086/?x=1#frag"), "http://localhost:8086");
|
|
263
|
-
assert.strictEqual(validateInfluxUrl("http://192.168.1.5:8086/?a=b"), "http://192.168.1.5:8086");
|
|
264
|
-
});
|
|
265
|
-
test("a sub-path is preserved for reverse-proxied instances", () => {
|
|
266
|
-
assert.strictEqual(validateInfluxUrl("http://192.168.1.5:8086/influx"), "http://192.168.1.5:8086/influx");
|
|
267
|
-
});
|
|
268
|
-
// Node's fetch REFUSES a URL carrying credentials — the resulting TypeError
|
|
269
|
-
// is swallowed by the probe's catch, so a pasted
|
|
270
|
-
// "http://user:pw@host:8086" reported "no InfluxDB found" against a
|
|
271
|
-
// perfectly healthy server. Stripping them makes the probe work.
|
|
272
|
-
test("credentials are stripped from the URL", () => {
|
|
273
|
-
assert.strictEqual(validateInfluxUrl("http://admin:hunter2@127.0.0.1:8086"), "http://127.0.0.1:8086");
|
|
274
|
-
assert.strictEqual(validateInfluxUrl("http://admin@192.168.1.5:8086"), "http://192.168.1.5:8086");
|
|
275
|
-
});
|
|
276
|
-
// The host is what the allowlist judges — userinfo must not be able to
|
|
277
|
-
// disguise a public host as a private one.
|
|
278
|
-
test("a private-looking userinfo does not launder a public host", () => {
|
|
279
|
-
assert.strictEqual(validateInfluxUrl("http://127.0.0.1@example.com:8086"), null);
|
|
280
|
-
assert.strictEqual(validateInfluxUrl("http://192.168.1.1:8086@8.8.8.8:8086"), null);
|
|
281
|
-
});
|
|
282
|
-
// `${url}/health` would otherwise become `http://host:8086//health`.
|
|
283
|
-
test("a trailing slash is stripped", () => {
|
|
284
|
-
assert.strictEqual(validateInfluxUrl("http://localhost:8086/"), "http://localhost:8086");
|
|
285
|
-
});
|
|
286
|
-
});
|
|
287
|
-
//# sourceMappingURL=influx-detect.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"influx-detect.test.js","sourceRoot":"","sources":["../../src/test/influx-detect.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|