@almadar/shell-node 1.2.1 → 1.3.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.
- package/dist/OrbitalServerRuntime.js +2 -2
- package/dist/{chunk-CB2RKJKB.js → chunk-2ZDUXJRK.js} +1 -1
- package/dist/{chunk-U2YFXKUN.js → chunk-7G76O2WN.js} +5 -2
- package/dist/{chunk-WIL5CHP5.js → chunk-D4MHWNNC.js} +1 -1
- package/dist/{chunk-YEC2UPB4.js → chunk-J7DCQOQW.js} +36 -14
- package/dist/createProgramHandlers.js +3 -3
- package/dist/index.d.ts +2 -0
- package/dist/index.js +4 -4
- package/dist/kernelWorkspace.js +2 -2
- package/package.json +6 -6
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
export { OrbitalServerRuntime, UnresolvedProgramError } from './chunk-
|
|
2
|
-
import './chunk-
|
|
1
|
+
export { OrbitalServerRuntime, UnresolvedProgramError } from './chunk-7G76O2WN.js';
|
|
2
|
+
import './chunk-J7DCQOQW.js';
|
|
3
3
|
import './chunk-EEYGL7AB.js';
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { workspacesRoot, kernelWorkspaceHost, workspaceBucketFromEnv } from './chunk-
|
|
1
|
+
import { workspacesRoot, kernelWorkspaceHost, workspaceBucketFromEnv } from './chunk-D4MHWNNC.js';
|
|
2
2
|
import { runProgramEffect } from './chunk-7QE32QQR.js';
|
|
3
3
|
import { installedWorkspaceHost, installWorkspaceHost } from './chunk-BWMLDDCL.js';
|
|
4
4
|
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { installNodeHostPorts, createNodeTokenPost, nativeOsHost } from './chunk-
|
|
1
|
+
import { installNodeHostPorts, createNodeTokenPost, nativeOsHost } from './chunk-J7DCQOQW.js';
|
|
2
2
|
import { nativeMemoryOf } from './chunk-EEYGL7AB.js';
|
|
3
3
|
import { EventBus, bindDeclaredCollections, createSecretPorts, defaultCallService, kernelEventRequestParser, kernelOsTls, kernelOsCompletions, stampEmitSource, eventRouteKey, kernelOsGrants, KernelEngine, dispatchDeclaredInput, dispatchInbound, createSecretStore, evaluateOnKernel, InFlightCalls } from '@almadar/shell-runtime';
|
|
4
4
|
import { installKernelEvaluator, orbitalInlineEntities, asEventId, asTraitId, inlineTraitRefs, tickEventKey, toPayloadValue } from '@almadar/core';
|
|
@@ -496,7 +496,10 @@ var OrbitalServerRuntime = class {
|
|
|
496
496
|
/** Run a follow-on step's call outcome as its own dispatch, and hand its result to the host-dispatch sink. */
|
|
497
497
|
runDeferredOutcome(orbitalName, request) {
|
|
498
498
|
void this.processOrbitalEvent(orbitalName, request).then(
|
|
499
|
-
(response) =>
|
|
499
|
+
(response) => {
|
|
500
|
+
if (request.targetTrait !== void 0 && !this.requireKernelEngine().browserRuns(request.targetTrait)) return;
|
|
501
|
+
this.hostDispatchSink?.(this.browserDispatchItem(orbitalName, request, response));
|
|
502
|
+
},
|
|
500
503
|
(error) => effectLog.error("deferred-outcome:failed", { orbitalName, event: request.event, trait: request.targetTrait, error: error.message })
|
|
501
504
|
);
|
|
502
505
|
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { installNodeHostPorts, createNodeTokenPost, nativeOsHost } from './chunk-
|
|
1
|
+
import { installNodeHostPorts, createNodeTokenPost, nativeOsHost } from './chunk-J7DCQOQW.js';
|
|
2
2
|
import { loadNativeKernelModule, resolveNativeAddon, loadKernelModule } from './chunk-EEYGL7AB.js';
|
|
3
3
|
import { workspaceOwnerSegment } from './chunk-BWMLDDCL.js';
|
|
4
4
|
import { mkdirSync, realpathSync, mkdtempSync, writeFileSync, rmSync } from 'fs';
|
|
@@ -5,6 +5,7 @@ import { AsyncLocalStorage } from 'async_hooks';
|
|
|
5
5
|
import { installCredentialScopeStorage, CREDENTIAL_MASTER_KEY_ENV, CREDENTIAL_PREVIOUS_MASTER_KEY_ENV, CredentialVault, installCredentialStore, createNativeOsPort } from '@almadar/shell-runtime';
|
|
6
6
|
import { lookup } from 'dns/promises';
|
|
7
7
|
import { request } from 'https';
|
|
8
|
+
import { request as request$1 } from 'http';
|
|
8
9
|
import { isIP } from 'net';
|
|
9
10
|
import { homedir } from 'os';
|
|
10
11
|
|
|
@@ -123,10 +124,43 @@ function urlOf(endpoint) {
|
|
|
123
124
|
throw new TokenPostRefusal("the token endpoint is not a url");
|
|
124
125
|
}
|
|
125
126
|
}
|
|
127
|
+
function collect(req, response, settle, reject) {
|
|
128
|
+
const status = response.statusCode ?? 0;
|
|
129
|
+
if (status >= 300 && status < 400) {
|
|
130
|
+
response.resume();
|
|
131
|
+
reject(new TokenPostRefusal(`the token endpoint answered a redirect (${status}); redirects are not followed`));
|
|
132
|
+
req.destroy();
|
|
133
|
+
return;
|
|
134
|
+
}
|
|
135
|
+
const chunks = [];
|
|
136
|
+
response.on("data", (chunk) => chunks.push(chunk));
|
|
137
|
+
response.on("end", () => settle({ status, body: Buffer.concat(chunks).toString("utf8") }));
|
|
138
|
+
response.on("error", () => reject(new TokenPostRefusal("the token endpoint response failed")));
|
|
139
|
+
}
|
|
140
|
+
function metadataGet(send, endpoint, headers) {
|
|
141
|
+
const url = urlOf(endpoint);
|
|
142
|
+
const requestHeaders = {};
|
|
143
|
+
for (const [name, value] of headers) requestHeaders[name] = value;
|
|
144
|
+
requestHeaders["Connection"] = "close";
|
|
145
|
+
return new Promise((settle, reject) => {
|
|
146
|
+
const req = send(
|
|
147
|
+
{ method: "GET", protocol: "http:", host: url.hostname, port: url.port === "" ? 80 : Number(url.port), path: `${url.pathname}${url.search}`, headers: requestHeaders, timeout: IO_TIMEOUT_MS },
|
|
148
|
+
(response) => collect(req, response, settle, reject)
|
|
149
|
+
);
|
|
150
|
+
req.on("timeout", () => {
|
|
151
|
+
reject(new TokenPostRefusal("the metadata server timed out"));
|
|
152
|
+
req.destroy();
|
|
153
|
+
});
|
|
154
|
+
req.on("error", (error) => reject(new TokenPostRefusal(`could not reach the metadata server${error.code !== void 0 ? ` (${error.code})` : ""}`)));
|
|
155
|
+
req.end();
|
|
156
|
+
});
|
|
157
|
+
}
|
|
126
158
|
function createNodeTokenPost(options) {
|
|
127
159
|
const send = options.request ?? request;
|
|
160
|
+
const sendMetadata = options.metadataRequest ?? request$1;
|
|
128
161
|
const resolve = options.resolve ?? systemResolve;
|
|
129
|
-
return async ({ endpoint, headers, body }) => {
|
|
162
|
+
return async ({ kind, endpoint, headers, body }) => {
|
|
163
|
+
if (kind === "metadata") return metadataGet(sendMetadata, endpoint, headers);
|
|
130
164
|
const url = urlOf(endpoint);
|
|
131
165
|
if (url.protocol !== "https:") throw new TokenPostRefusal("the token endpoint must be https");
|
|
132
166
|
if (!options.egressAllows(endpoint)) throw new TokenPostRefusal(`${url.host} is not an origin the program declares in egress`);
|
|
@@ -157,19 +191,7 @@ function createNodeTokenPost(options) {
|
|
|
157
191
|
else callback(null, checked.address, checked.family);
|
|
158
192
|
}
|
|
159
193
|
},
|
|
160
|
-
(response) =>
|
|
161
|
-
const status = response.statusCode ?? 0;
|
|
162
|
-
if (status >= 300 && status < 400) {
|
|
163
|
-
response.resume();
|
|
164
|
-
reject(new TokenPostRefusal(`the token endpoint answered a redirect (${status}); redirects are not followed`));
|
|
165
|
-
req.destroy();
|
|
166
|
-
return;
|
|
167
|
-
}
|
|
168
|
-
const chunks = [];
|
|
169
|
-
response.on("data", (chunk) => chunks.push(chunk));
|
|
170
|
-
response.on("end", () => settle({ status, body: Buffer.concat(chunks).toString("utf8") }));
|
|
171
|
-
response.on("error", () => reject(new TokenPostRefusal("the token endpoint response failed")));
|
|
172
|
-
}
|
|
194
|
+
(response) => collect(req, response, settle, reject)
|
|
173
195
|
);
|
|
174
196
|
req.on("timeout", () => {
|
|
175
197
|
reject(new TokenPostRefusal("the token endpoint timed out"));
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
export { createProgramHandlers } from './chunk-
|
|
2
|
-
import './chunk-
|
|
3
|
-
import './chunk-
|
|
1
|
+
export { createProgramHandlers } from './chunk-2ZDUXJRK.js';
|
|
2
|
+
import './chunk-D4MHWNNC.js';
|
|
3
|
+
import './chunk-J7DCQOQW.js';
|
|
4
4
|
import './chunk-EEYGL7AB.js';
|
|
5
5
|
import './chunk-7QE32QQR.js';
|
|
6
6
|
import './chunk-BWMLDDCL.js';
|
package/dist/index.d.ts
CHANGED
|
@@ -116,6 +116,8 @@ interface NodeTokenPostOptions {
|
|
|
116
116
|
/** The kernel's public-address rule. */
|
|
117
117
|
isPublicAddress(ip: string): boolean;
|
|
118
118
|
request?: (options: RequestOptions, onResponse: (response: IncomingMessage) => void) => ClientRequest;
|
|
119
|
+
/** The plain-http request of a `metadata` exchange. */
|
|
120
|
+
metadataRequest?: (options: RequestOptions, onResponse: (response: IncomingMessage) => void) => ClientRequest;
|
|
119
121
|
resolve?: (host: string) => Promise<ResolvedAddress[]>;
|
|
120
122
|
}
|
|
121
123
|
declare class TokenPostRefusal extends Error {
|
package/dist/index.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
export { OrbitalServerRuntime, UnresolvedProgramError } from './chunk-
|
|
2
|
-
export { createProgramHandlers } from './chunk-
|
|
3
|
-
export { KernelProgram, emitPayload, kernelWorkspaceHost, resolveProgramFile, workspaceBucketFromEnv, workspacesRoot } from './chunk-
|
|
4
|
-
export { DEFAULT_CREDENTIALS_FILE, TokenPostRefusal, createNodeTokenPost, credentialsFilePath, fileCredentialRows, installNodeCredentialVault, installNodeHostPorts } from './chunk-
|
|
1
|
+
export { OrbitalServerRuntime, UnresolvedProgramError } from './chunk-7G76O2WN.js';
|
|
2
|
+
export { createProgramHandlers } from './chunk-2ZDUXJRK.js';
|
|
3
|
+
export { KernelProgram, emitPayload, kernelWorkspaceHost, resolveProgramFile, workspaceBucketFromEnv, workspacesRoot } from './chunk-D4MHWNNC.js';
|
|
4
|
+
export { DEFAULT_CREDENTIALS_FILE, TokenPostRefusal, createNodeTokenPost, credentialsFilePath, fileCredentialRows, installNodeCredentialVault, installNodeHostPorts } from './chunk-J7DCQOQW.js';
|
|
5
5
|
export { loadInstalledKernel, loadKernelModule, loadNativeKernelModule, nativeMemoryOf, resolveNativeAddon } from './chunk-EEYGL7AB.js';
|
|
6
6
|
export { behaviorCatalog, behaviorCatalogSync, behaviorDependencies, behaviorDescribe, behaviorResolve, behaviorSource, programCompose, programEval, programOsGrants, programPrint, programProve, programRead, programResolve, programResolveSchema, programStep, programValidate, runProgramEffect, workspaceAccessError } from './chunk-7QE32QQR.js';
|
|
7
7
|
export { installWorkspaceHost, installedWorkspaceHost, uninstallWorkspaceHost, workspaceOwnerSegment } from './chunk-BWMLDDCL.js';
|
package/dist/kernelWorkspace.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export { kernelWorkspaceHost, workspaceBucketFromEnv, workspacesRoot } from './chunk-
|
|
2
|
-
import './chunk-
|
|
1
|
+
export { kernelWorkspaceHost, workspaceBucketFromEnv, workspacesRoot } from './chunk-D4MHWNNC.js';
|
|
2
|
+
import './chunk-J7DCQOQW.js';
|
|
3
3
|
import './chunk-EEYGL7AB.js';
|
|
4
4
|
import './chunk-BWMLDDCL.js';
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@almadar/shell-node",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.3.1",
|
|
4
4
|
"orbRelease": {
|
|
5
5
|
"severity": "normal"
|
|
6
6
|
},
|
|
@@ -37,12 +37,12 @@
|
|
|
37
37
|
"access": "public"
|
|
38
38
|
},
|
|
39
39
|
"dependencies": {
|
|
40
|
-
"@almadar/core": "^11.
|
|
41
|
-
"@almadar/kernel": "^19.
|
|
42
|
-
"@almadar/logger": "^2.
|
|
40
|
+
"@almadar/core": "^11.5.1",
|
|
41
|
+
"@almadar/kernel": "^19.3.0",
|
|
42
|
+
"@almadar/logger": "^2.5.1",
|
|
43
43
|
"zod": "^4.6.7",
|
|
44
|
-
"@almadar/std": "^17.
|
|
45
|
-
"@almadar/shell-runtime": "^1.
|
|
44
|
+
"@almadar/std": "^17.3.1",
|
|
45
|
+
"@almadar/shell-runtime": "^1.3.1"
|
|
46
46
|
},
|
|
47
47
|
"devDependencies": {
|
|
48
48
|
"@types/node": "^20.0.0",
|