piclaw 0.0.19 → 0.0.21
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/.output/nitro.json +1 -1
- package/.output/public/assets/defult-D5RLDUrI.js +1 -0
- package/.output/public/assets/{dist-CMBqBOCp.js → dist-BH_oa-kv.js} +1 -1
- package/.output/public/assets/index-7JvURuHy.js +204 -0
- package/.output/public/assets/index-K43slwjJ.css +1 -0
- package/.output/public/index.html +11 -2
- package/.output/server/_...path_.get.mjs +16 -0
- package/.output/server/_chunks/app.mjs +261 -181
- package/.output/server/_chunks/browser.mjs +4 -1
- package/.output/server/_chunks/config.mjs +4 -0
- package/.output/server/_chunks/db.mjs +32 -28
- package/.output/server/_chunks/device-bus.mjs +123 -0
- package/.output/server/_chunks/dummy.mjs +1 -1
- package/.output/server/_chunks/logger.mjs +23 -0
- package/.output/server/_chunks/login.mjs +1 -1
- package/.output/server/_chunks/notes.mjs +1 -3
- package/.output/server/_chunks/renderer-template.mjs +1 -1
- package/.output/server/_chunks/sandbox.mjs +217 -0
- package/.output/server/_chunks/server.mjs +2302 -122
- package/.output/server/_chunks/terminal.mjs +63 -8
- package/.output/server/_chunks/uploads.mjs +60 -0
- package/.output/server/_chunks/virtual.mjs +192 -54
- package/.output/server/_id_.delete.mjs +5 -2
- package/.output/server/_id_.patch.mjs +2 -0
- package/.output/server/_id_2.delete.mjs +8 -0
- package/.output/server/_jid_.delete.mjs +5 -2
- package/.output/server/_jid_.patch.mjs +37 -4
- package/.output/server/_jid_2.delete.mjs +5 -2
- package/.output/server/_libs/@acemir/cssom+[...].mjs +2269 -1137
- package/.output/server/_libs/@google/genai.mjs +337 -273
- package/.output/server/_libs/@mariozechner/pi-agent-core+[...].mjs +381 -2073
- package/.output/server/_libs/@mariozechner/pi-coding-agent+[...].mjs +231 -131
- package/.output/server/_libs/_.mjs +3 -2
- package/.output/server/_libs/_10.mjs +2 -4
- package/.output/server/_libs/_11.mjs +2 -4
- package/.output/server/_libs/_12.mjs +2 -3
- package/.output/server/_libs/_13.mjs +2 -3
- package/.output/server/_libs/_14.mjs +2 -4
- package/.output/server/_libs/_15.mjs +2 -4
- package/.output/server/_libs/_16.mjs +2 -3
- package/.output/server/_libs/_17.mjs +2 -4
- package/.output/server/_libs/_18.mjs +2 -2
- package/.output/server/_libs/_19.mjs +2 -2
- package/.output/server/_libs/_2.mjs +3 -3
- package/.output/server/_libs/_20.mjs +2 -2
- package/.output/server/_libs/_21.mjs +2 -2
- package/.output/server/_libs/_22.mjs +2 -2
- package/.output/server/_libs/_23.mjs +2 -2
- package/.output/server/_libs/_24.mjs +2 -2
- package/.output/server/_libs/_25.mjs +2 -2
- package/.output/server/_libs/_26.mjs +2 -2
- package/.output/server/_libs/_27.mjs +2 -2
- package/.output/server/_libs/_28.mjs +2 -2
- package/.output/server/_libs/_29.mjs +2 -2
- package/.output/server/_libs/_3.mjs +3 -3
- package/.output/server/_libs/_30.mjs +2 -2
- package/.output/server/_libs/_31.mjs +2 -2
- package/.output/server/_libs/_32.mjs +2 -2
- package/.output/server/_libs/_33.mjs +2 -2
- package/.output/server/_libs/_34.mjs +2 -2
- package/.output/server/_libs/_35.mjs +2 -2
- package/.output/server/_libs/_36.mjs +2 -2
- package/.output/server/_libs/_37.mjs +2 -2
- package/.output/server/_libs/_38.mjs +2 -2
- package/.output/server/_libs/_39.mjs +2 -2
- package/.output/server/_libs/_4.mjs +4 -3
- package/.output/server/_libs/_40.mjs +2 -2
- package/.output/server/_libs/_41.mjs +2 -2
- package/.output/server/_libs/_42.mjs +2 -2
- package/.output/server/_libs/_43.mjs +2 -2
- package/.output/server/_libs/_44.mjs +2 -2
- package/.output/server/_libs/_45.mjs +2 -2
- package/.output/server/_libs/_46.mjs +2 -2
- package/.output/server/_libs/_47.mjs +2 -2
- package/.output/server/_libs/_48.mjs +2 -2
- package/.output/server/_libs/_49.mjs +2 -2
- package/.output/server/_libs/_5.mjs +2 -3
- package/.output/server/_libs/_50.mjs +2 -2
- package/.output/server/_libs/_51.mjs +2 -2
- package/.output/server/_libs/_52.mjs +2 -2
- package/.output/server/_libs/_53.mjs +2 -2
- package/.output/server/_libs/_54.mjs +2 -2
- package/.output/server/_libs/_55.mjs +2 -2
- package/.output/server/_libs/_56.mjs +2 -2
- package/.output/server/_libs/_57.mjs +2 -2
- package/.output/server/_libs/_58.mjs +2 -2
- package/.output/server/_libs/_59.mjs +2 -2
- package/.output/server/_libs/_6.mjs +2 -3
- package/.output/server/_libs/_60.mjs +2 -2
- package/.output/server/_libs/_61.mjs +2 -2
- package/.output/server/_libs/_62.mjs +2 -2
- package/.output/server/_libs/_63.mjs +2 -2
- package/.output/server/_libs/_64.mjs +2 -2
- package/.output/server/_libs/_65.mjs +2 -2
- package/.output/server/_libs/_66.mjs +2 -2
- package/.output/server/_libs/_67.mjs +2 -2
- package/.output/server/_libs/_68.mjs +2 -2
- package/.output/server/_libs/_69.mjs +2 -2
- package/.output/server/_libs/_7.mjs +2 -5
- package/.output/server/_libs/_70.mjs +2 -2
- package/.output/server/_libs/_71.mjs +2 -2
- package/.output/server/_libs/_72.mjs +2 -2
- package/.output/server/_libs/_73.mjs +2 -2
- package/.output/server/_libs/_74.mjs +2 -2
- package/.output/server/_libs/_75.mjs +2 -2
- package/.output/server/_libs/_76.mjs +2 -2
- package/.output/server/_libs/_77.mjs +2 -2
- package/.output/server/_libs/_78.mjs +2 -2
- package/.output/server/_libs/_79.mjs +2 -2
- package/.output/server/_libs/_8.mjs +2 -3
- package/.output/server/_libs/_80.mjs +2 -2
- package/.output/server/_libs/_81.mjs +2 -2
- package/.output/server/_libs/_82.mjs +2 -2
- package/.output/server/_libs/_83.mjs +2 -2
- package/.output/server/_libs/_84.mjs +2 -2
- package/.output/server/_libs/_85.mjs +2 -2
- package/.output/server/_libs/_86.mjs +2 -2
- package/.output/server/_libs/_87.mjs +2 -2
- package/.output/server/_libs/_88.mjs +2 -2
- package/.output/server/_libs/_89.mjs +2 -2
- package/.output/server/_libs/_9.mjs +2 -4
- package/.output/server/_libs/_90.mjs +5 -2
- package/.output/server/_libs/_91.mjs +3 -2
- package/.output/server/_libs/_92.mjs +2 -2
- package/.output/server/_libs/_93.mjs +2 -2
- package/.output/server/_libs/_94.mjs +2 -2
- package/.output/server/_libs/agent-base.mjs +1 -1
- package/.output/server/_libs/cheerio+[...].mjs +1 -1
- package/.output/server/_libs/data-uri-to-buffer.mjs +2 -67
- package/.output/server/_libs/data-urls+[...].mjs +1 -1
- package/.output/server/_libs/diff.mjs +1 -1
- package/.output/server/_libs/exodus__bytes.mjs +99 -81
- package/.output/server/_libs/fetch-blob+node-domexception.mjs +1 -1
- package/.output/server/_libs/h3+rou3+srvx.mjs +34 -4
- package/.output/server/_libs/html-encoding-sniffer.mjs +1 -1
- package/.output/server/_libs/https-proxy-agent.mjs +2 -2
- package/.output/server/_libs/jsdom.mjs +1 -1
- package/.output/server/_libs/just-bash+[...].mjs +4676 -3916
- package/.output/server/_libs/mariozechner__jiti.mjs +1 -1
- package/.output/server/_libs/mariozechner__pi-ai.mjs +1472 -0
- package/.output/server/_libs/md4x.mjs +1 -1
- package/.output/server/_libs/mime.mjs +838 -1
- package/.output/server/_libs/node-fetch.mjs +4 -4
- package/.output/server/_libs/node-liblzma.mjs +1 -1
- package/.output/server/_libs/silvia-odwyer__photon-node.mjs +1 -1
- package/.output/server/_routes/api/auth/approve.mjs +2 -0
- package/.output/server/_routes/api/auth/revoke.mjs +2 -0
- package/.output/server/_routes/api/auth/status.mjs +25 -6
- package/.output/server/_routes/api/browser2.mjs +1 -1
- package/.output/server/_routes/api/config2.mjs +2 -0
- package/.output/server/_routes/api/device_events.mjs +36 -0
- package/.output/server/_routes/api/files/groups.mjs +1 -2
- package/.output/server/_routes/api/files/raw.mjs +1 -1
- package/.output/server/_routes/api/groups.mjs +5 -3
- package/.output/server/_routes/api/groups2.mjs +18 -6
- package/.output/server/_routes/api/health.mjs +1 -2
- package/.output/server/_routes/api/messages.mjs +7 -1
- package/.output/server/_routes/api/notes/delete.mjs +4 -1
- package/.output/server/_routes/api/notes/write.mjs +2 -0
- package/.output/server/_routes/api/ntfy/setup.mjs +8 -0
- package/.output/server/_routes/api/pi/apikey.mjs +3 -2
- package/.output/server/_routes/api/pi/apikey_providers.mjs +1 -2
- package/.output/server/_routes/api/pi/commands.mjs +13 -3
- package/.output/server/_routes/api/pi/login/events.mjs +0 -1
- package/.output/server/_routes/api/pi/login/respond.mjs +2 -1
- package/.output/server/_routes/api/pi/login.mjs +1 -2
- package/.output/server/_routes/api/pi/logout.mjs +2 -1
- package/.output/server/_routes/api/pi/models.mjs +1 -2
- package/.output/server/_routes/api/pi/models_config2.mjs +2 -0
- package/.output/server/_routes/api/pi/settings2.mjs +2 -0
- package/.output/server/_routes/api/pi/status.mjs +1 -2
- package/.output/server/_routes/api/proxy.mjs +19 -1
- package/.output/server/_routes/api/sandbox.mjs +26 -0
- package/.output/server/_routes/api/sandbox2.mjs +17 -0
- package/.output/server/_routes/api/send.mjs +26 -18
- package/.output/server/_routes/api/status.mjs +1 -3
- package/.output/server/_routes/api/stop.mjs +11 -0
- package/.output/server/_routes/api/store/plugins.mjs +75 -0
- package/.output/server/_routes/api/store/skills.mjs +11 -0
- package/.output/server/_routes/api/tasks2.mjs +3 -2
- package/.output/server/_routes/api/telegram/setup.mjs +5 -2
- package/.output/server/_routes/api/telegram/status.mjs +1 -2
- package/.output/server/_routes/api/terminal2.mjs +2 -1
- package/.output/server/_routes/api/tunnel/setup.mjs +4 -2
- package/.output/server/_runtime.mjs +1 -2
- package/.output/server/_utils.mjs +10 -2
- package/.output/server/index.mjs +1 -1
- package/.output/server/node_modules/amdefine/amdefine.js +301 -0
- package/.output/server/node_modules/amdefine/package.json +16 -0
- package/.output/server/node_modules/compressjs/lib/BWT.js +420 -0
- package/.output/server/node_modules/compressjs/lib/BWTC.js +234 -0
- package/.output/server/node_modules/compressjs/lib/BitStream.js +108 -0
- package/.output/server/node_modules/compressjs/lib/Bzip2.js +936 -0
- package/.output/server/node_modules/compressjs/lib/CRC32.js +105 -0
- package/.output/server/node_modules/compressjs/lib/Context1Model.js +56 -0
- package/.output/server/node_modules/compressjs/lib/DefSumModel.js +152 -0
- package/.output/server/node_modules/compressjs/lib/DeflateDistanceModel.js +55 -0
- package/.output/server/node_modules/compressjs/lib/Dmc.js +197 -0
- package/.output/server/node_modules/compressjs/lib/DummyRangeCoder.js +81 -0
- package/.output/server/node_modules/compressjs/lib/FenwickModel.js +194 -0
- package/.output/server/node_modules/compressjs/lib/Huffman.js +514 -0
- package/.output/server/node_modules/compressjs/lib/HuffmanAllocator.js +227 -0
- package/.output/server/node_modules/compressjs/lib/LogDistanceModel.js +46 -0
- package/.output/server/node_modules/compressjs/lib/Lzjb.js +300 -0
- package/.output/server/node_modules/compressjs/lib/LzjbR.js +241 -0
- package/.output/server/node_modules/compressjs/lib/Lzp3.js +273 -0
- package/.output/server/node_modules/compressjs/lib/MTFModel.js +208 -0
- package/.output/server/node_modules/compressjs/lib/NoModel.js +46 -0
- package/.output/server/node_modules/compressjs/lib/PPM.js +343 -0
- package/.output/server/node_modules/compressjs/lib/RangeCoder.js +238 -0
- package/.output/server/node_modules/compressjs/lib/Simple.js +111 -0
- package/.output/server/node_modules/compressjs/lib/Stream.js +53 -0
- package/.output/server/node_modules/compressjs/lib/Util.js +324 -0
- package/.output/server/node_modules/compressjs/lib/freeze.js +14 -0
- package/.output/server/node_modules/compressjs/main.js +29 -0
- package/.output/server/node_modules/compressjs/package.json +35 -0
- package/.output/server/package.json +2 -1
- package/README.md +10 -1
- package/lib/index.d.mts +1 -0
- package/lib/index.mjs +1 -0
- package/lib/piclaw.mjs +100 -0
- package/lib/utils.mjs +96 -0
- package/package.json +16 -11
- package/.output/public/assets/defult-CMO6TZ5a.js +0 -1
- package/.output/public/assets/index-jdnbJw-M.js +0 -204
- package/.output/public/assets/index-ooXrRwgl.css +0 -1
- package/.output/server/_chunks/commands.mjs +0 -282
- package/.output/server/_chunks/pi.mjs +0 -202
- package/.output/server/_chunks/session.mjs +0 -1114
- package/.output/server/_libs/@aws-crypto/crc32+[...].mjs +0 -299
- package/.output/server/_libs/@aws-sdk/client-bedrock-runtime+[...].mjs +0 -17828
- package/.output/server/_libs/@aws-sdk/credential-provider-http+[...].mjs +0 -122
- package/.output/server/_libs/@aws-sdk/credential-provider-ini+[...].mjs +0 -417
- package/.output/server/_libs/@aws-sdk/credential-provider-process+[...].mjs +0 -54
- package/.output/server/_libs/@aws-sdk/credential-provider-sso+[...].mjs +0 -1151
- package/.output/server/_libs/@aws-sdk/credential-provider-web-identity+[...].mjs +0 -50
- package/.output/server/_libs/@smithy/credential-provider-imds+[...].mjs +0 -369
- package/.output/server/_libs/@tootallnate/quickjs-emscripten+[...].mjs +0 -3011
- package/.output/server/_libs/_100.mjs +0 -2
- package/.output/server/_libs/_101.mjs +0 -2
- package/.output/server/_libs/_102.mjs +0 -5
- package/.output/server/_libs/_103.mjs +0 -3
- package/.output/server/_libs/_104.mjs +0 -2
- package/.output/server/_libs/_105.mjs +0 -3
- package/.output/server/_libs/_106.mjs +0 -2
- package/.output/server/_libs/_107.mjs +0 -2
- package/.output/server/_libs/_95.mjs +0 -2
- package/.output/server/_libs/_96.mjs +0 -2
- package/.output/server/_libs/_97.mjs +0 -2
- package/.output/server/_libs/_98.mjs +0 -2
- package/.output/server/_libs/_99.mjs +0 -2
- package/.output/server/_libs/amdefine.mjs +0 -188
- package/.output/server/_libs/ast-types.mjs +0 -2270
- package/.output/server/_libs/aws-sdk__nested-clients.mjs +0 -3141
- package/.output/server/_libs/basic-ftp.mjs +0 -1906
- package/.output/server/_libs/compressjs.mjs +0 -50
- package/.output/server/_libs/degenerator+[...].mjs +0 -9964
- package/.output/server/_libs/get-uri.mjs +0 -413
- package/.output/server/_libs/http-proxy-agent.mjs +0 -123
- package/.output/server/_libs/ip-address.mjs +0 -1423
- package/.output/server/_libs/lru-cache.mjs +0 -732
- package/.output/server/_libs/netmask.mjs +0 -139
- package/.output/server/_libs/pac-proxy-agent+[...].mjs +0 -3104
- package/.output/server/_libs/proxy-agent+proxy-from-env.mjs +0 -204
- package/.output/server/_libs/smithy__core.mjs +0 -192
- package/.output/server/node_modules/tslib/modules/index.js +0 -70
- package/.output/server/node_modules/tslib/modules/package.json +0 -3
- package/.output/server/node_modules/tslib/package.json +0 -47
- package/.output/server/node_modules/tslib/tslib.js +0 -484
- package/bin/piclaw.mjs +0 -195
|
@@ -1,50 +0,0 @@
|
|
|
1
|
-
import { s as __toESM } from "../../_runtime.mjs";
|
|
2
|
-
import { At as init_dist_es, Ft as require_client, Nt as CredentialsProviderError, X as init_dist_es$1, Z as externalDataInterceptor } from "./client-bedrock-runtime+[...].mjs";
|
|
3
|
-
import { readFileSync } from "node:fs";
|
|
4
|
-
const fromWebToken = (init) => async (awsIdentityProperties) => {
|
|
5
|
-
init.logger?.debug("@aws-sdk/credential-provider-web-identity - fromWebToken");
|
|
6
|
-
const { roleArn, roleSessionName, webIdentityToken, providerId, policyArns, policy, durationSeconds } = init;
|
|
7
|
-
let { roleAssumerWithWebIdentity } = init;
|
|
8
|
-
if (!roleAssumerWithWebIdentity) {
|
|
9
|
-
const { getDefaultRoleAssumerWithWebIdentity } = await import("../_11.mjs").then((m) => /* @__PURE__ */ __toESM(m.default));
|
|
10
|
-
roleAssumerWithWebIdentity = getDefaultRoleAssumerWithWebIdentity({
|
|
11
|
-
...init.clientConfig,
|
|
12
|
-
credentialProviderLogger: init.logger,
|
|
13
|
-
parentClientConfig: {
|
|
14
|
-
...awsIdentityProperties?.callerClientConfig,
|
|
15
|
-
...init.parentClientConfig
|
|
16
|
-
}
|
|
17
|
-
}, init.clientPlugins);
|
|
18
|
-
}
|
|
19
|
-
return roleAssumerWithWebIdentity({
|
|
20
|
-
RoleArn: roleArn,
|
|
21
|
-
RoleSessionName: roleSessionName ?? `aws-sdk-js-session-${Date.now()}`,
|
|
22
|
-
WebIdentityToken: webIdentityToken,
|
|
23
|
-
ProviderId: providerId,
|
|
24
|
-
PolicyArns: policyArns,
|
|
25
|
-
Policy: policy,
|
|
26
|
-
DurationSeconds: durationSeconds
|
|
27
|
-
});
|
|
28
|
-
};
|
|
29
|
-
var import_client = require_client();
|
|
30
|
-
init_dist_es();
|
|
31
|
-
init_dist_es$1();
|
|
32
|
-
var ENV_TOKEN_FILE = "AWS_WEB_IDENTITY_TOKEN_FILE";
|
|
33
|
-
var ENV_ROLE_ARN = "AWS_ROLE_ARN";
|
|
34
|
-
var ENV_ROLE_SESSION_NAME = "AWS_ROLE_SESSION_NAME";
|
|
35
|
-
const fromTokenFile = (init = {}) => async (awsIdentityProperties) => {
|
|
36
|
-
init.logger?.debug("@aws-sdk/credential-provider-web-identity - fromTokenFile");
|
|
37
|
-
const webIdentityTokenFile = init?.webIdentityTokenFile ?? process.env[ENV_TOKEN_FILE];
|
|
38
|
-
const roleArn = init?.roleArn ?? process.env[ENV_ROLE_ARN];
|
|
39
|
-
const roleSessionName = init?.roleSessionName ?? process.env[ENV_ROLE_SESSION_NAME];
|
|
40
|
-
if (!webIdentityTokenFile || !roleArn) throw new CredentialsProviderError("Web identity configuration not specified", { logger: init.logger });
|
|
41
|
-
const credentials = await fromWebToken({
|
|
42
|
-
...init,
|
|
43
|
-
webIdentityToken: externalDataInterceptor?.getTokenRecord?.()[webIdentityTokenFile] ?? readFileSync(webIdentityTokenFile, { encoding: "ascii" }),
|
|
44
|
-
roleArn,
|
|
45
|
-
roleSessionName
|
|
46
|
-
})(awsIdentityProperties);
|
|
47
|
-
if (webIdentityTokenFile === process.env[ENV_TOKEN_FILE]) (0, import_client.setCredentialFeature)(credentials, "CREDENTIALS_ENV_VARS_STS_WEB_ID_TOKEN", "h");
|
|
48
|
-
return credentials;
|
|
49
|
-
};
|
|
50
|
-
export { fromWebToken as n, fromTokenFile as t };
|
|
@@ -1,369 +0,0 @@
|
|
|
1
|
-
import { n as __esmMin } from "../../_runtime.mjs";
|
|
2
|
-
import { At as init_dist_es$1, B as parseUrl, D as init_dist_es$2, Nt as CredentialsProviderError, O as loadConfig, Pt as ProviderError, z as init_dist_es$3 } from "../@aws-sdk/client-bedrock-runtime+[...].mjs";
|
|
3
|
-
import { request } from "http";
|
|
4
|
-
import { Buffer } from "buffer";
|
|
5
|
-
import { parse } from "url";
|
|
6
|
-
function httpRequest(options) {
|
|
7
|
-
return new Promise((resolve, reject) => {
|
|
8
|
-
const req = request({
|
|
9
|
-
method: "GET",
|
|
10
|
-
...options,
|
|
11
|
-
hostname: options.hostname?.replace(/^\[(.+)\]$/, "$1")
|
|
12
|
-
});
|
|
13
|
-
req.on("error", (err) => {
|
|
14
|
-
reject(Object.assign(new ProviderError("Unable to connect to instance metadata service"), err));
|
|
15
|
-
req.destroy();
|
|
16
|
-
});
|
|
17
|
-
req.on("timeout", () => {
|
|
18
|
-
reject(new ProviderError("TimeoutError from instance metadata service"));
|
|
19
|
-
req.destroy();
|
|
20
|
-
});
|
|
21
|
-
req.on("response", (res) => {
|
|
22
|
-
const { statusCode = 400 } = res;
|
|
23
|
-
if (statusCode < 200 || 300 <= statusCode) {
|
|
24
|
-
reject(Object.assign(new ProviderError("Error response received from instance metadata service"), { statusCode }));
|
|
25
|
-
req.destroy();
|
|
26
|
-
}
|
|
27
|
-
const chunks = [];
|
|
28
|
-
res.on("data", (chunk) => {
|
|
29
|
-
chunks.push(chunk);
|
|
30
|
-
});
|
|
31
|
-
res.on("end", () => {
|
|
32
|
-
resolve(Buffer.concat(chunks));
|
|
33
|
-
req.destroy();
|
|
34
|
-
});
|
|
35
|
-
});
|
|
36
|
-
req.end();
|
|
37
|
-
});
|
|
38
|
-
}
|
|
39
|
-
var init_httpRequest = __esmMin((() => {
|
|
40
|
-
init_dist_es$1();
|
|
41
|
-
}));
|
|
42
|
-
var isImdsCredentials, fromImdsCredentials;
|
|
43
|
-
var init_ImdsCredentials = __esmMin((() => {
|
|
44
|
-
isImdsCredentials = (arg) => Boolean(arg) && typeof arg === "object" && typeof arg.AccessKeyId === "string" && typeof arg.SecretAccessKey === "string" && typeof arg.Token === "string" && typeof arg.Expiration === "string";
|
|
45
|
-
fromImdsCredentials = (creds) => ({
|
|
46
|
-
accessKeyId: creds.AccessKeyId,
|
|
47
|
-
secretAccessKey: creds.SecretAccessKey,
|
|
48
|
-
sessionToken: creds.Token,
|
|
49
|
-
expiration: new Date(creds.Expiration),
|
|
50
|
-
...creds.AccountId && { accountId: creds.AccountId }
|
|
51
|
-
});
|
|
52
|
-
})), DEFAULT_TIMEOUT, providerConfigFromInit;
|
|
53
|
-
var init_RemoteProviderInit = __esmMin((() => {
|
|
54
|
-
DEFAULT_TIMEOUT = 1e3;
|
|
55
|
-
providerConfigFromInit = ({ maxRetries = 0, timeout = DEFAULT_TIMEOUT }) => ({
|
|
56
|
-
maxRetries,
|
|
57
|
-
timeout
|
|
58
|
-
});
|
|
59
|
-
}));
|
|
60
|
-
var retry;
|
|
61
|
-
var init_retry = __esmMin((() => {
|
|
62
|
-
retry = (toRetry, maxRetries) => {
|
|
63
|
-
let promise = toRetry();
|
|
64
|
-
for (let i = 0; i < maxRetries; i++) promise = promise.catch(toRetry);
|
|
65
|
-
return promise;
|
|
66
|
-
};
|
|
67
|
-
}));
|
|
68
|
-
var ENV_CMDS_FULL_URI, ENV_CMDS_RELATIVE_URI, ENV_CMDS_AUTH_TOKEN, fromContainerMetadata, requestFromEcsImds, CMDS_IP, GREENGRASS_HOSTS, GREENGRASS_PROTOCOLS, getCmdsUri;
|
|
69
|
-
var init_fromContainerMetadata = __esmMin((() => {
|
|
70
|
-
init_dist_es$1();
|
|
71
|
-
init_httpRequest();
|
|
72
|
-
init_ImdsCredentials();
|
|
73
|
-
init_RemoteProviderInit();
|
|
74
|
-
init_retry();
|
|
75
|
-
ENV_CMDS_FULL_URI = "AWS_CONTAINER_CREDENTIALS_FULL_URI";
|
|
76
|
-
ENV_CMDS_RELATIVE_URI = "AWS_CONTAINER_CREDENTIALS_RELATIVE_URI";
|
|
77
|
-
ENV_CMDS_AUTH_TOKEN = "AWS_CONTAINER_AUTHORIZATION_TOKEN";
|
|
78
|
-
fromContainerMetadata = (init = {}) => {
|
|
79
|
-
const { timeout, maxRetries } = providerConfigFromInit(init);
|
|
80
|
-
return () => retry(async () => {
|
|
81
|
-
const requestOptions = await getCmdsUri({ logger: init.logger });
|
|
82
|
-
const credsResponse = JSON.parse(await requestFromEcsImds(timeout, requestOptions));
|
|
83
|
-
if (!isImdsCredentials(credsResponse)) throw new CredentialsProviderError("Invalid response received from instance metadata service.", { logger: init.logger });
|
|
84
|
-
return fromImdsCredentials(credsResponse);
|
|
85
|
-
}, maxRetries);
|
|
86
|
-
};
|
|
87
|
-
requestFromEcsImds = async (timeout, options) => {
|
|
88
|
-
if (process.env["AWS_CONTAINER_AUTHORIZATION_TOKEN"]) options.headers = {
|
|
89
|
-
...options.headers,
|
|
90
|
-
Authorization: process.env[ENV_CMDS_AUTH_TOKEN]
|
|
91
|
-
};
|
|
92
|
-
return (await httpRequest({
|
|
93
|
-
...options,
|
|
94
|
-
timeout
|
|
95
|
-
})).toString();
|
|
96
|
-
};
|
|
97
|
-
CMDS_IP = "169.254.170.2";
|
|
98
|
-
GREENGRASS_HOSTS = {
|
|
99
|
-
localhost: true,
|
|
100
|
-
"127.0.0.1": true
|
|
101
|
-
};
|
|
102
|
-
GREENGRASS_PROTOCOLS = {
|
|
103
|
-
"http:": true,
|
|
104
|
-
"https:": true
|
|
105
|
-
};
|
|
106
|
-
getCmdsUri = async ({ logger }) => {
|
|
107
|
-
if (process.env["AWS_CONTAINER_CREDENTIALS_RELATIVE_URI"]) return {
|
|
108
|
-
hostname: CMDS_IP,
|
|
109
|
-
path: process.env[ENV_CMDS_RELATIVE_URI]
|
|
110
|
-
};
|
|
111
|
-
if (process.env["AWS_CONTAINER_CREDENTIALS_FULL_URI"]) {
|
|
112
|
-
const parsed = parse(process.env[ENV_CMDS_FULL_URI]);
|
|
113
|
-
if (!parsed.hostname || !(parsed.hostname in GREENGRASS_HOSTS)) throw new CredentialsProviderError(`${parsed.hostname} is not a valid container metadata service hostname`, {
|
|
114
|
-
tryNextLink: false,
|
|
115
|
-
logger
|
|
116
|
-
});
|
|
117
|
-
if (!parsed.protocol || !(parsed.protocol in GREENGRASS_PROTOCOLS)) throw new CredentialsProviderError(`${parsed.protocol} is not a valid container metadata service protocol`, {
|
|
118
|
-
tryNextLink: false,
|
|
119
|
-
logger
|
|
120
|
-
});
|
|
121
|
-
return {
|
|
122
|
-
...parsed,
|
|
123
|
-
port: parsed.port ? parseInt(parsed.port, 10) : void 0
|
|
124
|
-
};
|
|
125
|
-
}
|
|
126
|
-
throw new CredentialsProviderError(`The container metadata credential provider cannot be used unless the ${ENV_CMDS_RELATIVE_URI} or ${ENV_CMDS_FULL_URI} environment variable is set`, {
|
|
127
|
-
tryNextLink: false,
|
|
128
|
-
logger
|
|
129
|
-
});
|
|
130
|
-
};
|
|
131
|
-
}));
|
|
132
|
-
var InstanceMetadataV1FallbackError;
|
|
133
|
-
var init_InstanceMetadataV1FallbackError = __esmMin((() => {
|
|
134
|
-
init_dist_es$1();
|
|
135
|
-
InstanceMetadataV1FallbackError = class InstanceMetadataV1FallbackError extends CredentialsProviderError {
|
|
136
|
-
tryNextLink;
|
|
137
|
-
name = "InstanceMetadataV1FallbackError";
|
|
138
|
-
constructor(message, tryNextLink = true) {
|
|
139
|
-
super(message, tryNextLink);
|
|
140
|
-
this.tryNextLink = tryNextLink;
|
|
141
|
-
Object.setPrototypeOf(this, InstanceMetadataV1FallbackError.prototype);
|
|
142
|
-
}
|
|
143
|
-
};
|
|
144
|
-
}));
|
|
145
|
-
var Endpoint;
|
|
146
|
-
var init_Endpoint = __esmMin((() => {
|
|
147
|
-
(function(Endpoint) {
|
|
148
|
-
Endpoint["IPv4"] = "http://169.254.169.254";
|
|
149
|
-
Endpoint["IPv6"] = "http://[fd00:ec2::254]";
|
|
150
|
-
})(Endpoint || (Endpoint = {}));
|
|
151
|
-
}));
|
|
152
|
-
var ENV_ENDPOINT_NAME, CONFIG_ENDPOINT_NAME, ENDPOINT_CONFIG_OPTIONS;
|
|
153
|
-
var init_EndpointConfigOptions = __esmMin((() => {
|
|
154
|
-
ENV_ENDPOINT_NAME = "AWS_EC2_METADATA_SERVICE_ENDPOINT";
|
|
155
|
-
CONFIG_ENDPOINT_NAME = "ec2_metadata_service_endpoint";
|
|
156
|
-
ENDPOINT_CONFIG_OPTIONS = {
|
|
157
|
-
environmentVariableSelector: (env) => env[ENV_ENDPOINT_NAME],
|
|
158
|
-
configFileSelector: (profile) => profile[CONFIG_ENDPOINT_NAME],
|
|
159
|
-
default: void 0
|
|
160
|
-
};
|
|
161
|
-
}));
|
|
162
|
-
var EndpointMode;
|
|
163
|
-
var init_EndpointMode = __esmMin((() => {
|
|
164
|
-
(function(EndpointMode) {
|
|
165
|
-
EndpointMode["IPv4"] = "IPv4";
|
|
166
|
-
EndpointMode["IPv6"] = "IPv6";
|
|
167
|
-
})(EndpointMode || (EndpointMode = {}));
|
|
168
|
-
}));
|
|
169
|
-
var ENV_ENDPOINT_MODE_NAME, CONFIG_ENDPOINT_MODE_NAME, ENDPOINT_MODE_CONFIG_OPTIONS;
|
|
170
|
-
var init_EndpointModeConfigOptions = __esmMin((() => {
|
|
171
|
-
init_EndpointMode();
|
|
172
|
-
ENV_ENDPOINT_MODE_NAME = "AWS_EC2_METADATA_SERVICE_ENDPOINT_MODE";
|
|
173
|
-
CONFIG_ENDPOINT_MODE_NAME = "ec2_metadata_service_endpoint_mode";
|
|
174
|
-
ENDPOINT_MODE_CONFIG_OPTIONS = {
|
|
175
|
-
environmentVariableSelector: (env) => env[ENV_ENDPOINT_MODE_NAME],
|
|
176
|
-
configFileSelector: (profile) => profile[CONFIG_ENDPOINT_MODE_NAME],
|
|
177
|
-
default: EndpointMode.IPv4
|
|
178
|
-
};
|
|
179
|
-
}));
|
|
180
|
-
var getInstanceMetadataEndpoint, getFromEndpointConfig, getFromEndpointModeConfig;
|
|
181
|
-
var init_getInstanceMetadataEndpoint = __esmMin((() => {
|
|
182
|
-
init_dist_es$2();
|
|
183
|
-
init_dist_es$3();
|
|
184
|
-
init_Endpoint();
|
|
185
|
-
init_EndpointConfigOptions();
|
|
186
|
-
init_EndpointMode();
|
|
187
|
-
init_EndpointModeConfigOptions();
|
|
188
|
-
getInstanceMetadataEndpoint = async () => parseUrl(await getFromEndpointConfig() || await getFromEndpointModeConfig());
|
|
189
|
-
getFromEndpointConfig = async () => loadConfig(ENDPOINT_CONFIG_OPTIONS)();
|
|
190
|
-
getFromEndpointModeConfig = async () => {
|
|
191
|
-
const endpointMode = await loadConfig(ENDPOINT_MODE_CONFIG_OPTIONS)();
|
|
192
|
-
switch (endpointMode) {
|
|
193
|
-
case EndpointMode.IPv4: return Endpoint.IPv4;
|
|
194
|
-
case EndpointMode.IPv6: return Endpoint.IPv6;
|
|
195
|
-
default: throw new Error(`Unsupported endpoint mode: ${endpointMode}. Select from ${Object.values(EndpointMode)}`);
|
|
196
|
-
}
|
|
197
|
-
};
|
|
198
|
-
}));
|
|
199
|
-
var STATIC_STABILITY_REFRESH_INTERVAL_SECONDS, STATIC_STABILITY_REFRESH_INTERVAL_JITTER_WINDOW_SECONDS, getExtendedInstanceMetadataCredentials;
|
|
200
|
-
var init_getExtendedInstanceMetadataCredentials = __esmMin((() => {
|
|
201
|
-
STATIC_STABILITY_REFRESH_INTERVAL_SECONDS = 300;
|
|
202
|
-
STATIC_STABILITY_REFRESH_INTERVAL_JITTER_WINDOW_SECONDS = 300;
|
|
203
|
-
getExtendedInstanceMetadataCredentials = (credentials, logger) => {
|
|
204
|
-
const refreshInterval = STATIC_STABILITY_REFRESH_INTERVAL_SECONDS + Math.floor(Math.random() * STATIC_STABILITY_REFRESH_INTERVAL_JITTER_WINDOW_SECONDS);
|
|
205
|
-
const newExpiration = new Date(Date.now() + refreshInterval * 1e3);
|
|
206
|
-
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)}.\nFor more information, please visit: https://docs.aws.amazon.com/sdkref/latest/guide/feature-static-credentials.html`);
|
|
207
|
-
const originalExpiration = credentials.originalExpiration ?? credentials.expiration;
|
|
208
|
-
return {
|
|
209
|
-
...credentials,
|
|
210
|
-
...originalExpiration ? { originalExpiration } : {},
|
|
211
|
-
expiration: newExpiration
|
|
212
|
-
};
|
|
213
|
-
};
|
|
214
|
-
}));
|
|
215
|
-
var staticStabilityProvider;
|
|
216
|
-
var init_staticStabilityProvider = __esmMin((() => {
|
|
217
|
-
init_getExtendedInstanceMetadataCredentials();
|
|
218
|
-
staticStabilityProvider = (provider, options = {}) => {
|
|
219
|
-
const logger = options?.logger || console;
|
|
220
|
-
let pastCredentials;
|
|
221
|
-
return async () => {
|
|
222
|
-
let credentials;
|
|
223
|
-
try {
|
|
224
|
-
credentials = await provider();
|
|
225
|
-
if (credentials.expiration && credentials.expiration.getTime() < Date.now()) credentials = getExtendedInstanceMetadataCredentials(credentials, logger);
|
|
226
|
-
} catch (e) {
|
|
227
|
-
if (pastCredentials) {
|
|
228
|
-
logger.warn("Credential renew failed: ", e);
|
|
229
|
-
credentials = getExtendedInstanceMetadataCredentials(pastCredentials, logger);
|
|
230
|
-
} else throw e;
|
|
231
|
-
}
|
|
232
|
-
pastCredentials = credentials;
|
|
233
|
-
return credentials;
|
|
234
|
-
};
|
|
235
|
-
};
|
|
236
|
-
}));
|
|
237
|
-
var IMDS_PATH, IMDS_TOKEN_PATH, AWS_EC2_METADATA_V1_DISABLED, PROFILE_AWS_EC2_METADATA_V1_DISABLED, X_AWS_EC2_METADATA_TOKEN, fromInstanceMetadata, getInstanceMetadataProvider, getMetadataToken, getProfile, getCredentialsFromProfile;
|
|
238
|
-
var init_fromInstanceMetadata = __esmMin((() => {
|
|
239
|
-
init_dist_es$2();
|
|
240
|
-
init_dist_es$1();
|
|
241
|
-
init_InstanceMetadataV1FallbackError();
|
|
242
|
-
init_httpRequest();
|
|
243
|
-
init_ImdsCredentials();
|
|
244
|
-
init_RemoteProviderInit();
|
|
245
|
-
init_retry();
|
|
246
|
-
init_getInstanceMetadataEndpoint();
|
|
247
|
-
init_staticStabilityProvider();
|
|
248
|
-
IMDS_PATH = "/latest/meta-data/iam/security-credentials/";
|
|
249
|
-
IMDS_TOKEN_PATH = "/latest/api/token";
|
|
250
|
-
AWS_EC2_METADATA_V1_DISABLED = "AWS_EC2_METADATA_V1_DISABLED";
|
|
251
|
-
PROFILE_AWS_EC2_METADATA_V1_DISABLED = "ec2_metadata_v1_disabled";
|
|
252
|
-
X_AWS_EC2_METADATA_TOKEN = "x-aws-ec2-metadata-token";
|
|
253
|
-
fromInstanceMetadata = (init = {}) => staticStabilityProvider(getInstanceMetadataProvider(init), { logger: init.logger });
|
|
254
|
-
getInstanceMetadataProvider = (init = {}) => {
|
|
255
|
-
let disableFetchToken = false;
|
|
256
|
-
const { logger, profile } = init;
|
|
257
|
-
const { timeout, maxRetries } = providerConfigFromInit(init);
|
|
258
|
-
const getCredentials = async (maxRetries, options) => {
|
|
259
|
-
if (disableFetchToken || options.headers?.[X_AWS_EC2_METADATA_TOKEN] == null) {
|
|
260
|
-
let fallbackBlockedFromProfile = false;
|
|
261
|
-
let fallbackBlockedFromProcessEnv = false;
|
|
262
|
-
const configValue = await loadConfig({
|
|
263
|
-
environmentVariableSelector: (env) => {
|
|
264
|
-
const envValue = env[AWS_EC2_METADATA_V1_DISABLED];
|
|
265
|
-
fallbackBlockedFromProcessEnv = !!envValue && envValue !== "false";
|
|
266
|
-
if (envValue === void 0) throw new CredentialsProviderError(`${AWS_EC2_METADATA_V1_DISABLED} not set in env, checking config file next.`, { logger: init.logger });
|
|
267
|
-
return fallbackBlockedFromProcessEnv;
|
|
268
|
-
},
|
|
269
|
-
configFileSelector: (profile) => {
|
|
270
|
-
const profileValue = profile[PROFILE_AWS_EC2_METADATA_V1_DISABLED];
|
|
271
|
-
fallbackBlockedFromProfile = !!profileValue && profileValue !== "false";
|
|
272
|
-
return fallbackBlockedFromProfile;
|
|
273
|
-
},
|
|
274
|
-
default: false
|
|
275
|
-
}, { profile })();
|
|
276
|
-
if (init.ec2MetadataV1Disabled || configValue) {
|
|
277
|
-
const causes = [];
|
|
278
|
-
if (init.ec2MetadataV1Disabled) causes.push("credential provider initialization (runtime option ec2MetadataV1Disabled)");
|
|
279
|
-
if (fallbackBlockedFromProfile) causes.push(`config file profile (${PROFILE_AWS_EC2_METADATA_V1_DISABLED})`);
|
|
280
|
-
if (fallbackBlockedFromProcessEnv) causes.push(`process environment variable (${AWS_EC2_METADATA_V1_DISABLED})`);
|
|
281
|
-
throw new InstanceMetadataV1FallbackError(`AWS EC2 Metadata v1 fallback has been blocked by AWS SDK configuration in the following: [${causes.join(", ")}].`);
|
|
282
|
-
}
|
|
283
|
-
}
|
|
284
|
-
const imdsProfile = (await retry(async () => {
|
|
285
|
-
let profile;
|
|
286
|
-
try {
|
|
287
|
-
profile = await getProfile(options);
|
|
288
|
-
} catch (err) {
|
|
289
|
-
if (err.statusCode === 401) disableFetchToken = false;
|
|
290
|
-
throw err;
|
|
291
|
-
}
|
|
292
|
-
return profile;
|
|
293
|
-
}, maxRetries)).trim();
|
|
294
|
-
return retry(async () => {
|
|
295
|
-
let creds;
|
|
296
|
-
try {
|
|
297
|
-
creds = await getCredentialsFromProfile(imdsProfile, options, init);
|
|
298
|
-
} catch (err) {
|
|
299
|
-
if (err.statusCode === 401) disableFetchToken = false;
|
|
300
|
-
throw err;
|
|
301
|
-
}
|
|
302
|
-
return creds;
|
|
303
|
-
}, maxRetries);
|
|
304
|
-
};
|
|
305
|
-
return async () => {
|
|
306
|
-
const endpoint = await getInstanceMetadataEndpoint();
|
|
307
|
-
if (disableFetchToken) {
|
|
308
|
-
logger?.debug("AWS SDK Instance Metadata", "using v1 fallback (no token fetch)");
|
|
309
|
-
return getCredentials(maxRetries, {
|
|
310
|
-
...endpoint,
|
|
311
|
-
timeout
|
|
312
|
-
});
|
|
313
|
-
} else {
|
|
314
|
-
let token;
|
|
315
|
-
try {
|
|
316
|
-
token = (await getMetadataToken({
|
|
317
|
-
...endpoint,
|
|
318
|
-
timeout
|
|
319
|
-
})).toString();
|
|
320
|
-
} catch (error) {
|
|
321
|
-
if (error?.statusCode === 400) throw Object.assign(error, { message: "EC2 Metadata token request returned error" });
|
|
322
|
-
else if (error.message === "TimeoutError" || [
|
|
323
|
-
403,
|
|
324
|
-
404,
|
|
325
|
-
405
|
|
326
|
-
].includes(error.statusCode)) disableFetchToken = true;
|
|
327
|
-
logger?.debug("AWS SDK Instance Metadata", "using v1 fallback (initial)");
|
|
328
|
-
return getCredentials(maxRetries, {
|
|
329
|
-
...endpoint,
|
|
330
|
-
timeout
|
|
331
|
-
});
|
|
332
|
-
}
|
|
333
|
-
return getCredentials(maxRetries, {
|
|
334
|
-
...endpoint,
|
|
335
|
-
headers: { [X_AWS_EC2_METADATA_TOKEN]: token },
|
|
336
|
-
timeout
|
|
337
|
-
});
|
|
338
|
-
}
|
|
339
|
-
};
|
|
340
|
-
};
|
|
341
|
-
getMetadataToken = async (options) => httpRequest({
|
|
342
|
-
...options,
|
|
343
|
-
path: IMDS_TOKEN_PATH,
|
|
344
|
-
method: "PUT",
|
|
345
|
-
headers: { "x-aws-ec2-metadata-token-ttl-seconds": "21600" }
|
|
346
|
-
});
|
|
347
|
-
getProfile = async (options) => (await httpRequest({
|
|
348
|
-
...options,
|
|
349
|
-
path: IMDS_PATH
|
|
350
|
-
})).toString();
|
|
351
|
-
getCredentialsFromProfile = async (profile, options, init) => {
|
|
352
|
-
const credentialsResponse = JSON.parse((await httpRequest({
|
|
353
|
-
...options,
|
|
354
|
-
path: IMDS_PATH + profile
|
|
355
|
-
})).toString());
|
|
356
|
-
if (!isImdsCredentials(credentialsResponse)) throw new CredentialsProviderError("Invalid response received from instance metadata service.", { logger: init.logger });
|
|
357
|
-
return fromImdsCredentials(credentialsResponse);
|
|
358
|
-
};
|
|
359
|
-
}));
|
|
360
|
-
var init_types = __esmMin((() => {}));
|
|
361
|
-
var init_dist_es = __esmMin((() => {
|
|
362
|
-
init_fromContainerMetadata();
|
|
363
|
-
init_fromInstanceMetadata();
|
|
364
|
-
init_RemoteProviderInit();
|
|
365
|
-
init_types();
|
|
366
|
-
init_httpRequest();
|
|
367
|
-
init_getInstanceMetadataEndpoint();
|
|
368
|
-
}));
|
|
369
|
-
export { ENV_CMDS_AUTH_TOKEN as a, fromContainerMetadata as c, httpRequest as d, Endpoint as i, DEFAULT_TIMEOUT as l, fromInstanceMetadata as n, ENV_CMDS_FULL_URI as o, getInstanceMetadataEndpoint as r, ENV_CMDS_RELATIVE_URI as s, init_dist_es as t, providerConfigFromInit as u };
|