@sisense/mcp-server 0.2.1

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.
Files changed (37) hide show
  1. package/LICENSE.md +35 -0
  2. package/README.md +121 -0
  3. package/dist/ai-hspmgr2c.js +3148 -0
  4. package/dist/fileFromPath-s6ap5vrh.js +128 -0
  5. package/dist/index-29n08mw7.js +95 -0
  6. package/dist/index-atgbxy7h.js +98603 -0
  7. package/dist/index-d6843g0v.js +372 -0
  8. package/dist/index-dcrjg3fk.js +207 -0
  9. package/dist/index-dxfb3krz.js +1489 -0
  10. package/dist/index-er0yspcy.js +918 -0
  11. package/dist/index-g8bgq79c.js +53 -0
  12. package/dist/index-p1pxtmwn.js +162 -0
  13. package/dist/index-qdth51hx.js +250 -0
  14. package/dist/index-tqba2rwh.js +603 -0
  15. package/dist/index-vrapm0b4.js +765 -0
  16. package/dist/index-vx54d05h.js +475 -0
  17. package/dist/sse-server-3343e7xh.js +117 -0
  18. package/dist/sse-server-36t17nga.js +12127 -0
  19. package/dist/sse-server-3e0efmg2.js +6276 -0
  20. package/dist/sse-server-4b60tg0c.js +136 -0
  21. package/dist/sse-server-4g9za0qq.js +89 -0
  22. package/dist/sse-server-4jjec4fz.js +9753 -0
  23. package/dist/sse-server-5tmgacdx.js +62 -0
  24. package/dist/sse-server-7wcvyxyj.js +31 -0
  25. package/dist/sse-server-brx9qtyd.js +2131 -0
  26. package/dist/sse-server-epd916s3.js +167 -0
  27. package/dist/sse-server-gt7tx6n2.js +2240 -0
  28. package/dist/sse-server-mkesh468.js +53 -0
  29. package/dist/sse-server-nwjjjz6x.js +113 -0
  30. package/dist/sse-server-qj4zxq0f.js +267 -0
  31. package/dist/sse-server-rr3dp62e.js +116721 -0
  32. package/dist/sse-server-ss0mydv4.js +3980 -0
  33. package/dist/sse-server-txz5g5t0.js +5328 -0
  34. package/dist/sse-server.js +30432 -0
  35. package/dist/view.html +3016 -0
  36. package/dist/widget-renderer-66ws3xtk.js +312 -0
  37. package/package.json +82 -0
@@ -0,0 +1,372 @@
1
+ import {
2
+ require_dist_cjs as require_dist_cjs2,
3
+ require_dist_cjs1 as require_dist_cjs3
4
+ } from "./sse-server-nwjjjz6x.js";
5
+ import"./sse-server-qj4zxq0f.js";
6
+ import"./sse-server-4g9za0qq.js";
7
+ import {
8
+ require_dist_cjs
9
+ } from "./sse-server-3343e7xh.js";
10
+ import {
11
+ __esm,
12
+ __require
13
+ } from "./sse-server-7wcvyxyj.js";
14
+
15
+ // node_modules/@smithy/credential-provider-imds/dist-cjs/index.js
16
+ function httpRequest(options) {
17
+ return new Promise((resolve, reject) => {
18
+ const req = http.request({
19
+ method: "GET",
20
+ ...options,
21
+ hostname: options.hostname?.replace(/^\[(.+)\]$/, "$1")
22
+ });
23
+ req.on("error", (err) => {
24
+ reject(Object.assign(new propertyProvider.ProviderError("Unable to connect to instance metadata service"), err));
25
+ req.destroy();
26
+ });
27
+ req.on("timeout", () => {
28
+ reject(new propertyProvider.ProviderError("TimeoutError from instance metadata service"));
29
+ req.destroy();
30
+ });
31
+ req.on("response", (res) => {
32
+ const { statusCode = 400 } = res;
33
+ if (statusCode < 200 || 300 <= statusCode) {
34
+ reject(Object.assign(new propertyProvider.ProviderError("Error response received from instance metadata service"), { statusCode }));
35
+ req.destroy();
36
+ }
37
+ const chunks = [];
38
+ res.on("data", (chunk) => {
39
+ chunks.push(chunk);
40
+ });
41
+ res.on("end", () => {
42
+ resolve(buffer.Buffer.concat(chunks));
43
+ req.destroy();
44
+ });
45
+ });
46
+ req.end();
47
+ });
48
+ }
49
+ var propertyProvider, url, buffer, http, nodeConfigProvider, urlParser, isImdsCredentials = (arg) => Boolean(arg) && typeof arg === "object" && typeof arg.AccessKeyId === "string" && typeof arg.SecretAccessKey === "string" && typeof arg.Token === "string" && typeof arg.Expiration === "string", fromImdsCredentials = (creds) => ({
50
+ accessKeyId: creds.AccessKeyId,
51
+ secretAccessKey: creds.SecretAccessKey,
52
+ sessionToken: creds.Token,
53
+ expiration: new Date(creds.Expiration),
54
+ ...creds.AccountId && { accountId: creds.AccountId }
55
+ }), DEFAULT_TIMEOUT = 1000, DEFAULT_MAX_RETRIES = 0, providerConfigFromInit = ({ maxRetries = DEFAULT_MAX_RETRIES, timeout = DEFAULT_TIMEOUT }) => ({ maxRetries, timeout }), retry = (toRetry, maxRetries) => {
56
+ let promise = toRetry();
57
+ for (let i = 0;i < maxRetries; i++) {
58
+ promise = promise.catch(toRetry);
59
+ }
60
+ return promise;
61
+ }, ENV_CMDS_FULL_URI = "AWS_CONTAINER_CREDENTIALS_FULL_URI", ENV_CMDS_RELATIVE_URI = "AWS_CONTAINER_CREDENTIALS_RELATIVE_URI", ENV_CMDS_AUTH_TOKEN = "AWS_CONTAINER_AUTHORIZATION_TOKEN", fromContainerMetadata = (init = {}) => {
62
+ const { timeout, maxRetries } = providerConfigFromInit(init);
63
+ return () => retry(async () => {
64
+ const requestOptions = await getCmdsUri({ logger: init.logger });
65
+ const credsResponse = JSON.parse(await requestFromEcsImds(timeout, requestOptions));
66
+ if (!isImdsCredentials(credsResponse)) {
67
+ throw new propertyProvider.CredentialsProviderError("Invalid response received from instance metadata service.", {
68
+ logger: init.logger
69
+ });
70
+ }
71
+ return fromImdsCredentials(credsResponse);
72
+ }, maxRetries);
73
+ }, requestFromEcsImds = async (timeout, options) => {
74
+ if (process.env[ENV_CMDS_AUTH_TOKEN]) {
75
+ options.headers = {
76
+ ...options.headers,
77
+ Authorization: process.env[ENV_CMDS_AUTH_TOKEN]
78
+ };
79
+ }
80
+ const buffer2 = await httpRequest({
81
+ ...options,
82
+ timeout
83
+ });
84
+ return buffer2.toString();
85
+ }, CMDS_IP = "169.254.170.2", GREENGRASS_HOSTS, GREENGRASS_PROTOCOLS, getCmdsUri = async ({ logger }) => {
86
+ if (process.env[ENV_CMDS_RELATIVE_URI]) {
87
+ return {
88
+ hostname: CMDS_IP,
89
+ path: process.env[ENV_CMDS_RELATIVE_URI]
90
+ };
91
+ }
92
+ if (process.env[ENV_CMDS_FULL_URI]) {
93
+ const parsed = url.parse(process.env[ENV_CMDS_FULL_URI]);
94
+ if (!parsed.hostname || !(parsed.hostname in GREENGRASS_HOSTS)) {
95
+ throw new propertyProvider.CredentialsProviderError(`${parsed.hostname} is not a valid container metadata service hostname`, {
96
+ tryNextLink: false,
97
+ logger
98
+ });
99
+ }
100
+ if (!parsed.protocol || !(parsed.protocol in GREENGRASS_PROTOCOLS)) {
101
+ throw new propertyProvider.CredentialsProviderError(`${parsed.protocol} is not a valid container metadata service protocol`, {
102
+ tryNextLink: false,
103
+ logger
104
+ });
105
+ }
106
+ return {
107
+ ...parsed,
108
+ port: parsed.port ? parseInt(parsed.port, 10) : undefined
109
+ };
110
+ }
111
+ throw new propertyProvider.CredentialsProviderError("The container metadata credential provider cannot be used unless" + ` the ${ENV_CMDS_RELATIVE_URI} or ${ENV_CMDS_FULL_URI} environment` + " variable is set", {
112
+ tryNextLink: false,
113
+ logger
114
+ });
115
+ }, InstanceMetadataV1FallbackError, $Endpoint = undefined, ENV_ENDPOINT_NAME = "AWS_EC2_METADATA_SERVICE_ENDPOINT", CONFIG_ENDPOINT_NAME = "ec2_metadata_service_endpoint", ENDPOINT_CONFIG_OPTIONS, EndpointMode, ENV_ENDPOINT_MODE_NAME = "AWS_EC2_METADATA_SERVICE_ENDPOINT_MODE", CONFIG_ENDPOINT_MODE_NAME = "ec2_metadata_service_endpoint_mode", ENDPOINT_MODE_CONFIG_OPTIONS, getInstanceMetadataEndpoint = async () => urlParser.parseUrl(await getFromEndpointConfig() || await getFromEndpointModeConfig()), getFromEndpointConfig = async () => nodeConfigProvider.loadConfig(ENDPOINT_CONFIG_OPTIONS)(), getFromEndpointModeConfig = async () => {
116
+ const endpointMode = await nodeConfigProvider.loadConfig(ENDPOINT_MODE_CONFIG_OPTIONS)();
117
+ switch (endpointMode) {
118
+ case EndpointMode.IPv4:
119
+ return $Endpoint.IPv4;
120
+ case EndpointMode.IPv6:
121
+ return $Endpoint.IPv6;
122
+ default:
123
+ throw new Error(`Unsupported endpoint mode: ${endpointMode}.` + ` Select from ${Object.values(EndpointMode)}`);
124
+ }
125
+ }, STATIC_STABILITY_REFRESH_INTERVAL_SECONDS, STATIC_STABILITY_REFRESH_INTERVAL_JITTER_WINDOW_SECONDS, STATIC_STABILITY_DOC_URL = "https://docs.aws.amazon.com/sdkref/latest/guide/feature-static-credentials.html", getExtendedInstanceMetadataCredentials = (credentials, logger) => {
126
+ const refreshInterval = STATIC_STABILITY_REFRESH_INTERVAL_SECONDS + Math.floor(Math.random() * STATIC_STABILITY_REFRESH_INTERVAL_JITTER_WINDOW_SECONDS);
127
+ const newExpiration = new Date(Date.now() + refreshInterval * 1000);
128
+ logger.warn("Attempting credential expiration extension due to a credential service availability issue. A refresh of these " + `credentials will be attempted after ${new Date(newExpiration)}.
129
+ For more information, please visit: ` + STATIC_STABILITY_DOC_URL);
130
+ const originalExpiration = credentials.originalExpiration ?? credentials.expiration;
131
+ return {
132
+ ...credentials,
133
+ ...originalExpiration ? { originalExpiration } : {},
134
+ expiration: newExpiration
135
+ };
136
+ }, staticStabilityProvider = (provider, options = {}) => {
137
+ const logger = options?.logger || console;
138
+ let pastCredentials;
139
+ return async () => {
140
+ let credentials;
141
+ try {
142
+ credentials = await provider();
143
+ if (credentials.expiration && credentials.expiration.getTime() < Date.now()) {
144
+ credentials = getExtendedInstanceMetadataCredentials(credentials, logger);
145
+ }
146
+ } catch (e) {
147
+ if (pastCredentials) {
148
+ logger.warn("Credential renew failed: ", e);
149
+ credentials = getExtendedInstanceMetadataCredentials(pastCredentials, logger);
150
+ } else {
151
+ throw e;
152
+ }
153
+ }
154
+ pastCredentials = credentials;
155
+ return credentials;
156
+ };
157
+ }, IMDS_PATH = "/latest/meta-data/iam/security-credentials/", IMDS_TOKEN_PATH = "/latest/api/token", AWS_EC2_METADATA_V1_DISABLED = "AWS_EC2_METADATA_V1_DISABLED", PROFILE_AWS_EC2_METADATA_V1_DISABLED = "ec2_metadata_v1_disabled", X_AWS_EC2_METADATA_TOKEN = "x-aws-ec2-metadata-token", fromInstanceMetadata = (init = {}) => staticStabilityProvider(getInstanceMetadataProvider(init), { logger: init.logger }), getInstanceMetadataProvider = (init = {}) => {
158
+ let disableFetchToken = false;
159
+ const { logger, profile } = init;
160
+ const { timeout, maxRetries } = providerConfigFromInit(init);
161
+ const getCredentials = async (maxRetries2, options) => {
162
+ const isImdsV1Fallback = disableFetchToken || options.headers?.[X_AWS_EC2_METADATA_TOKEN] == null;
163
+ if (isImdsV1Fallback) {
164
+ let fallbackBlockedFromProfile = false;
165
+ let fallbackBlockedFromProcessEnv = false;
166
+ const configValue = await nodeConfigProvider.loadConfig({
167
+ environmentVariableSelector: (env) => {
168
+ const envValue = env[AWS_EC2_METADATA_V1_DISABLED];
169
+ fallbackBlockedFromProcessEnv = !!envValue && envValue !== "false";
170
+ if (envValue === undefined) {
171
+ throw new propertyProvider.CredentialsProviderError(`${AWS_EC2_METADATA_V1_DISABLED} not set in env, checking config file next.`, { logger: init.logger });
172
+ }
173
+ return fallbackBlockedFromProcessEnv;
174
+ },
175
+ configFileSelector: (profile2) => {
176
+ const profileValue = profile2[PROFILE_AWS_EC2_METADATA_V1_DISABLED];
177
+ fallbackBlockedFromProfile = !!profileValue && profileValue !== "false";
178
+ return fallbackBlockedFromProfile;
179
+ },
180
+ default: false
181
+ }, {
182
+ profile
183
+ })();
184
+ if (init.ec2MetadataV1Disabled || configValue) {
185
+ const causes = [];
186
+ if (init.ec2MetadataV1Disabled)
187
+ causes.push("credential provider initialization (runtime option ec2MetadataV1Disabled)");
188
+ if (fallbackBlockedFromProfile)
189
+ causes.push(`config file profile (${PROFILE_AWS_EC2_METADATA_V1_DISABLED})`);
190
+ if (fallbackBlockedFromProcessEnv)
191
+ causes.push(`process environment variable (${AWS_EC2_METADATA_V1_DISABLED})`);
192
+ throw new InstanceMetadataV1FallbackError(`AWS EC2 Metadata v1 fallback has been blocked by AWS SDK configuration in the following: [${causes.join(", ")}].`);
193
+ }
194
+ }
195
+ const imdsProfile = (await retry(async () => {
196
+ let profile2;
197
+ try {
198
+ profile2 = await getProfile(options);
199
+ } catch (err) {
200
+ if (err.statusCode === 401) {
201
+ disableFetchToken = false;
202
+ }
203
+ throw err;
204
+ }
205
+ return profile2;
206
+ }, maxRetries2)).trim();
207
+ return retry(async () => {
208
+ let creds;
209
+ try {
210
+ creds = await getCredentialsFromProfile(imdsProfile, options, init);
211
+ } catch (err) {
212
+ if (err.statusCode === 401) {
213
+ disableFetchToken = false;
214
+ }
215
+ throw err;
216
+ }
217
+ return creds;
218
+ }, maxRetries2);
219
+ };
220
+ return async () => {
221
+ const endpoint = await getInstanceMetadataEndpoint();
222
+ if (disableFetchToken) {
223
+ logger?.debug("AWS SDK Instance Metadata", "using v1 fallback (no token fetch)");
224
+ return getCredentials(maxRetries, { ...endpoint, timeout });
225
+ } else {
226
+ let token;
227
+ try {
228
+ token = (await getMetadataToken({ ...endpoint, timeout })).toString();
229
+ } catch (error) {
230
+ if (error?.statusCode === 400) {
231
+ throw Object.assign(error, {
232
+ message: "EC2 Metadata token request returned error"
233
+ });
234
+ } else if (error.message === "TimeoutError" || [403, 404, 405].includes(error.statusCode)) {
235
+ disableFetchToken = true;
236
+ }
237
+ logger?.debug("AWS SDK Instance Metadata", "using v1 fallback (initial)");
238
+ return getCredentials(maxRetries, { ...endpoint, timeout });
239
+ }
240
+ return getCredentials(maxRetries, {
241
+ ...endpoint,
242
+ headers: {
243
+ [X_AWS_EC2_METADATA_TOKEN]: token
244
+ },
245
+ timeout
246
+ });
247
+ }
248
+ };
249
+ }, getMetadataToken = async (options) => httpRequest({
250
+ ...options,
251
+ path: IMDS_TOKEN_PATH,
252
+ method: "PUT",
253
+ headers: {
254
+ "x-aws-ec2-metadata-token-ttl-seconds": "21600"
255
+ }
256
+ }), getProfile = async (options) => (await httpRequest({ ...options, path: IMDS_PATH })).toString(), getCredentialsFromProfile = async (profile, options, init) => {
257
+ const credentialsResponse = JSON.parse((await httpRequest({
258
+ ...options,
259
+ path: IMDS_PATH + profile
260
+ })).toString());
261
+ if (!isImdsCredentials(credentialsResponse)) {
262
+ throw new propertyProvider.CredentialsProviderError("Invalid response received from instance metadata service.", {
263
+ logger: init.logger
264
+ });
265
+ }
266
+ return fromImdsCredentials(credentialsResponse);
267
+ }, $DEFAULT_MAX_RETRIES, $DEFAULT_TIMEOUT, $ENV_CMDS_AUTH_TOKEN, $ENV_CMDS_FULL_URI, $ENV_CMDS_RELATIVE_URI, $fromContainerMetadata, $fromInstanceMetadata, $getInstanceMetadataEndpoint, $httpRequest, $providerConfigFromInit;
268
+ var init_dist_cjs = __esm(() => {
269
+ propertyProvider = require_dist_cjs();
270
+ url = __require("url");
271
+ buffer = __require("buffer");
272
+ http = __require("http");
273
+ nodeConfigProvider = require_dist_cjs3();
274
+ urlParser = require_dist_cjs2();
275
+ GREENGRASS_HOSTS = {
276
+ localhost: true,
277
+ "127.0.0.1": true
278
+ };
279
+ GREENGRASS_PROTOCOLS = {
280
+ "http:": true,
281
+ "https:": true
282
+ };
283
+ InstanceMetadataV1FallbackError = class InstanceMetadataV1FallbackError extends propertyProvider.CredentialsProviderError {
284
+ tryNextLink;
285
+ name = "InstanceMetadataV1FallbackError";
286
+ constructor(message, tryNextLink = true) {
287
+ super(message, tryNextLink);
288
+ this.tryNextLink = tryNextLink;
289
+ Object.setPrototypeOf(this, InstanceMetadataV1FallbackError.prototype);
290
+ }
291
+ };
292
+ (function(Endpoint) {
293
+ Endpoint["IPv4"] = "http://169.254.169.254";
294
+ Endpoint["IPv6"] = "http://[fd00:ec2::254]";
295
+ })($Endpoint || ($Endpoint = {}));
296
+ ENDPOINT_CONFIG_OPTIONS = {
297
+ environmentVariableSelector: (env) => env[ENV_ENDPOINT_NAME],
298
+ configFileSelector: (profile) => profile[CONFIG_ENDPOINT_NAME],
299
+ default: undefined
300
+ };
301
+ (function(EndpointMode2) {
302
+ EndpointMode2["IPv4"] = "IPv4";
303
+ EndpointMode2["IPv6"] = "IPv6";
304
+ })(EndpointMode || (EndpointMode = {}));
305
+ ENDPOINT_MODE_CONFIG_OPTIONS = {
306
+ environmentVariableSelector: (env) => env[ENV_ENDPOINT_MODE_NAME],
307
+ configFileSelector: (profile) => profile[CONFIG_ENDPOINT_MODE_NAME],
308
+ default: EndpointMode.IPv4
309
+ };
310
+ STATIC_STABILITY_REFRESH_INTERVAL_SECONDS = 5 * 60;
311
+ STATIC_STABILITY_REFRESH_INTERVAL_JITTER_WINDOW_SECONDS = 5 * 60;
312
+ $DEFAULT_MAX_RETRIES = DEFAULT_MAX_RETRIES;
313
+ $DEFAULT_TIMEOUT = DEFAULT_TIMEOUT;
314
+ $ENV_CMDS_AUTH_TOKEN = ENV_CMDS_AUTH_TOKEN;
315
+ $ENV_CMDS_FULL_URI = ENV_CMDS_FULL_URI;
316
+ $ENV_CMDS_RELATIVE_URI = ENV_CMDS_RELATIVE_URI;
317
+ $fromContainerMetadata = fromContainerMetadata;
318
+ $fromInstanceMetadata = fromInstanceMetadata;
319
+ $getInstanceMetadataEndpoint = getInstanceMetadataEndpoint;
320
+ $httpRequest = httpRequest;
321
+ $providerConfigFromInit = providerConfigFromInit;
322
+ });
323
+ init_dist_cjs();
324
+
325
+ export {
326
+ $providerConfigFromInit as providerConfigFromInit,
327
+ $httpRequest as httpRequest,
328
+ $getInstanceMetadataEndpoint as getInstanceMetadataEndpoint,
329
+ $fromInstanceMetadata as fromInstanceMetadata,
330
+ $fromContainerMetadata as fromContainerMetadata,
331
+ $Endpoint as Endpoint,
332
+ $ENV_CMDS_RELATIVE_URI as ENV_CMDS_RELATIVE_URI,
333
+ $ENV_CMDS_FULL_URI as ENV_CMDS_FULL_URI,
334
+ $ENV_CMDS_AUTH_TOKEN as ENV_CMDS_AUTH_TOKEN,
335
+ $DEFAULT_TIMEOUT as DEFAULT_TIMEOUT,
336
+ $DEFAULT_MAX_RETRIES as DEFAULT_MAX_RETRIES
337
+ };
338
+ export default {
339
+ get providerConfigFromInit() {
340
+ return $providerConfigFromInit;
341
+ },
342
+ get httpRequest() {
343
+ return $httpRequest;
344
+ },
345
+ get getInstanceMetadataEndpoint() {
346
+ return $getInstanceMetadataEndpoint;
347
+ },
348
+ get fromInstanceMetadata() {
349
+ return $fromInstanceMetadata;
350
+ },
351
+ get fromContainerMetadata() {
352
+ return $fromContainerMetadata;
353
+ },
354
+ get Endpoint() {
355
+ return $Endpoint;
356
+ },
357
+ get ENV_CMDS_RELATIVE_URI() {
358
+ return $ENV_CMDS_RELATIVE_URI;
359
+ },
360
+ get ENV_CMDS_FULL_URI() {
361
+ return $ENV_CMDS_FULL_URI;
362
+ },
363
+ get ENV_CMDS_AUTH_TOKEN() {
364
+ return $ENV_CMDS_AUTH_TOKEN;
365
+ },
366
+ get DEFAULT_TIMEOUT() {
367
+ return $DEFAULT_TIMEOUT;
368
+ },
369
+ get DEFAULT_MAX_RETRIES() {
370
+ return $DEFAULT_MAX_RETRIES;
371
+ }
372
+ };
@@ -0,0 +1,207 @@
1
+ import {
2
+ require_dist_cjs3 as require_dist_cjs2,
3
+ require_dist_cjs5 as require_dist_cjs3,
4
+ require_dist_cjs7 as require_dist_cjs5,
5
+ require_tslib
6
+ } from "./sse-server-txz5g5t0.js";
7
+ import {
8
+ require_dist_cjs
9
+ } from "./sse-server-epd916s3.js";
10
+ import"./sse-server-5tmgacdx.js";
11
+ import"./sse-server-4g9za0qq.js";
12
+ import {
13
+ require_client
14
+ } from "./sse-server-mkesh468.js";
15
+ import {
16
+ require_dist_cjs as require_dist_cjs4
17
+ } from "./sse-server-3343e7xh.js";
18
+ import {
19
+ __commonJS,
20
+ __require
21
+ } from "./sse-server-7wcvyxyj.js";
22
+
23
+ // node_modules/@aws-sdk/credential-provider-http/dist-cjs/fromHttp/checkUrl.js
24
+ var require_checkUrl = __commonJS((exports) => {
25
+ Object.defineProperty(exports, "__esModule", { value: true });
26
+ exports.checkUrl = undefined;
27
+ var property_provider_1 = require_dist_cjs4();
28
+ var ECS_CONTAINER_HOST = "169.254.170.2";
29
+ var EKS_CONTAINER_HOST_IPv4 = "169.254.170.23";
30
+ var EKS_CONTAINER_HOST_IPv6 = "[fd00:ec2::23]";
31
+ var checkUrl = (url, logger) => {
32
+ if (url.protocol === "https:") {
33
+ return;
34
+ }
35
+ if (url.hostname === ECS_CONTAINER_HOST || url.hostname === EKS_CONTAINER_HOST_IPv4 || url.hostname === EKS_CONTAINER_HOST_IPv6) {
36
+ return;
37
+ }
38
+ if (url.hostname.includes("[")) {
39
+ if (url.hostname === "[::1]" || url.hostname === "[0000:0000:0000:0000:0000:0000:0000:0001]") {
40
+ return;
41
+ }
42
+ } else {
43
+ if (url.hostname === "localhost") {
44
+ return;
45
+ }
46
+ const ipComponents = url.hostname.split(".");
47
+ const inRange = (component) => {
48
+ const num = parseInt(component, 10);
49
+ return 0 <= num && num <= 255;
50
+ };
51
+ if (ipComponents[0] === "127" && inRange(ipComponents[1]) && inRange(ipComponents[2]) && inRange(ipComponents[3]) && ipComponents.length === 4) {
52
+ return;
53
+ }
54
+ }
55
+ throw new property_provider_1.CredentialsProviderError(`URL not accepted. It must either be HTTPS or match one of the following:
56
+ - loopback CIDR 127.0.0.0/8 or [::1/128]
57
+ - ECS container host 169.254.170.2
58
+ - EKS container host 169.254.170.23 or [fd00:ec2::23]`, { logger });
59
+ };
60
+ exports.checkUrl = checkUrl;
61
+ });
62
+
63
+ // node_modules/@aws-sdk/credential-provider-http/dist-cjs/fromHttp/requestHelpers.js
64
+ var require_requestHelpers = __commonJS((exports) => {
65
+ Object.defineProperty(exports, "__esModule", { value: true });
66
+ exports.createGetRequest = createGetRequest;
67
+ exports.getCredentials = getCredentials;
68
+ var property_provider_1 = require_dist_cjs4();
69
+ var protocol_http_1 = require_dist_cjs();
70
+ var smithy_client_1 = require_dist_cjs5();
71
+ var util_stream_1 = require_dist_cjs3();
72
+ function createGetRequest(url) {
73
+ return new protocol_http_1.HttpRequest({
74
+ protocol: url.protocol,
75
+ hostname: url.hostname,
76
+ port: Number(url.port),
77
+ path: url.pathname,
78
+ query: Array.from(url.searchParams.entries()).reduce((acc, [k, v]) => {
79
+ acc[k] = v;
80
+ return acc;
81
+ }, {}),
82
+ fragment: url.hash
83
+ });
84
+ }
85
+ async function getCredentials(response, logger) {
86
+ const stream = (0, util_stream_1.sdkStreamMixin)(response.body);
87
+ const str = await stream.transformToString();
88
+ if (response.statusCode === 200) {
89
+ const parsed = JSON.parse(str);
90
+ if (typeof parsed.AccessKeyId !== "string" || typeof parsed.SecretAccessKey !== "string" || typeof parsed.Token !== "string" || typeof parsed.Expiration !== "string") {
91
+ throw new property_provider_1.CredentialsProviderError("HTTP credential provider response not of the required format, an object matching: " + "{ AccessKeyId: string, SecretAccessKey: string, Token: string, Expiration: string(rfc3339) }", { logger });
92
+ }
93
+ return {
94
+ accessKeyId: parsed.AccessKeyId,
95
+ secretAccessKey: parsed.SecretAccessKey,
96
+ sessionToken: parsed.Token,
97
+ expiration: (0, smithy_client_1.parseRfc3339DateTime)(parsed.Expiration)
98
+ };
99
+ }
100
+ if (response.statusCode >= 400 && response.statusCode < 500) {
101
+ let parsedBody = {};
102
+ try {
103
+ parsedBody = JSON.parse(str);
104
+ } catch (e) {}
105
+ throw Object.assign(new property_provider_1.CredentialsProviderError(`Server responded with status: ${response.statusCode}`, { logger }), {
106
+ Code: parsedBody.Code,
107
+ Message: parsedBody.Message
108
+ });
109
+ }
110
+ throw new property_provider_1.CredentialsProviderError(`Server responded with status: ${response.statusCode}`, { logger });
111
+ }
112
+ });
113
+
114
+ // node_modules/@aws-sdk/credential-provider-http/dist-cjs/fromHttp/retry-wrapper.js
115
+ var require_retry_wrapper = __commonJS((exports) => {
116
+ Object.defineProperty(exports, "__esModule", { value: true });
117
+ exports.retryWrapper = undefined;
118
+ var retryWrapper = (toRetry, maxRetries, delayMs) => {
119
+ return async () => {
120
+ for (let i = 0;i < maxRetries; ++i) {
121
+ try {
122
+ return await toRetry();
123
+ } catch (e) {
124
+ await new Promise((resolve) => setTimeout(resolve, delayMs));
125
+ }
126
+ }
127
+ return await toRetry();
128
+ };
129
+ };
130
+ exports.retryWrapper = retryWrapper;
131
+ });
132
+
133
+ // node_modules/@aws-sdk/credential-provider-http/dist-cjs/fromHttp/fromHttp.js
134
+ var require_fromHttp = __commonJS((exports) => {
135
+ Object.defineProperty(exports, "__esModule", { value: true });
136
+ exports.fromHttp = undefined;
137
+ var tslib_1 = require_tslib();
138
+ var client_1 = require_client();
139
+ var node_http_handler_1 = require_dist_cjs2();
140
+ var property_provider_1 = require_dist_cjs4();
141
+ var promises_1 = tslib_1.__importDefault(__require("fs/promises"));
142
+ var checkUrl_1 = require_checkUrl();
143
+ var requestHelpers_1 = require_requestHelpers();
144
+ var retry_wrapper_1 = require_retry_wrapper();
145
+ var AWS_CONTAINER_CREDENTIALS_RELATIVE_URI = "AWS_CONTAINER_CREDENTIALS_RELATIVE_URI";
146
+ var DEFAULT_LINK_LOCAL_HOST = "http://169.254.170.2";
147
+ var AWS_CONTAINER_CREDENTIALS_FULL_URI = "AWS_CONTAINER_CREDENTIALS_FULL_URI";
148
+ var AWS_CONTAINER_AUTHORIZATION_TOKEN_FILE = "AWS_CONTAINER_AUTHORIZATION_TOKEN_FILE";
149
+ var AWS_CONTAINER_AUTHORIZATION_TOKEN = "AWS_CONTAINER_AUTHORIZATION_TOKEN";
150
+ var fromHttp = (options = {}) => {
151
+ options.logger?.debug("@aws-sdk/credential-provider-http - fromHttp");
152
+ let host;
153
+ const relative = options.awsContainerCredentialsRelativeUri ?? process.env[AWS_CONTAINER_CREDENTIALS_RELATIVE_URI];
154
+ const full = options.awsContainerCredentialsFullUri ?? process.env[AWS_CONTAINER_CREDENTIALS_FULL_URI];
155
+ const token = options.awsContainerAuthorizationToken ?? process.env[AWS_CONTAINER_AUTHORIZATION_TOKEN];
156
+ const tokenFile = options.awsContainerAuthorizationTokenFile ?? process.env[AWS_CONTAINER_AUTHORIZATION_TOKEN_FILE];
157
+ const warn = options.logger?.constructor?.name === "NoOpLogger" || !options.logger?.warn ? console.warn : options.logger.warn.bind(options.logger);
158
+ if (relative && full) {
159
+ warn("@aws-sdk/credential-provider-http: " + "you have set both awsContainerCredentialsRelativeUri and awsContainerCredentialsFullUri.");
160
+ warn("awsContainerCredentialsFullUri will take precedence.");
161
+ }
162
+ if (token && tokenFile) {
163
+ warn("@aws-sdk/credential-provider-http: " + "you have set both awsContainerAuthorizationToken and awsContainerAuthorizationTokenFile.");
164
+ warn("awsContainerAuthorizationToken will take precedence.");
165
+ }
166
+ if (full) {
167
+ host = full;
168
+ } else if (relative) {
169
+ host = `${DEFAULT_LINK_LOCAL_HOST}${relative}`;
170
+ } else {
171
+ throw new property_provider_1.CredentialsProviderError(`No HTTP credential provider host provided.
172
+ Set AWS_CONTAINER_CREDENTIALS_FULL_URI or AWS_CONTAINER_CREDENTIALS_RELATIVE_URI.`, { logger: options.logger });
173
+ }
174
+ const url = new URL(host);
175
+ (0, checkUrl_1.checkUrl)(url, options.logger);
176
+ const requestHandler = node_http_handler_1.NodeHttpHandler.create({
177
+ requestTimeout: options.timeout ?? 1000,
178
+ connectionTimeout: options.timeout ?? 1000
179
+ });
180
+ return (0, retry_wrapper_1.retryWrapper)(async () => {
181
+ const request = (0, requestHelpers_1.createGetRequest)(url);
182
+ if (token) {
183
+ request.headers.Authorization = token;
184
+ } else if (tokenFile) {
185
+ request.headers.Authorization = (await promises_1.default.readFile(tokenFile)).toString();
186
+ }
187
+ try {
188
+ const result = await requestHandler.handle(request);
189
+ return (0, requestHelpers_1.getCredentials)(result.response).then((creds) => (0, client_1.setCredentialFeature)(creds, "CREDENTIALS_HTTP", "z"));
190
+ } catch (e) {
191
+ throw new property_provider_1.CredentialsProviderError(String(e), { logger: options.logger });
192
+ }
193
+ }, options.maxRetries ?? 3, options.timeout ?? 1000);
194
+ };
195
+ exports.fromHttp = fromHttp;
196
+ });
197
+
198
+ // node_modules/@aws-sdk/credential-provider-http/dist-cjs/index.js
199
+ var require_dist_cjs6 = __commonJS((exports) => {
200
+ Object.defineProperty(exports, "__esModule", { value: true });
201
+ exports.fromHttp = undefined;
202
+ var fromHttp_1 = require_fromHttp();
203
+ Object.defineProperty(exports, "fromHttp", { enumerable: true, get: function() {
204
+ return fromHttp_1.fromHttp;
205
+ } });
206
+ });
207
+ export default require_dist_cjs6();