@intentic/providers 1.34.0 → 1.36.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -6,6 +6,10 @@ export declare const sshSchema: z.ZodObject<{
6
6
  user: z.ZodString;
7
7
  sshKey: z.ZodString;
8
8
  port: z.ZodDefault<z.ZodNumber>;
9
+ via: z.ZodDefault<z.ZodEnum<{
10
+ direct: "direct";
11
+ cloudflared: "cloudflared";
12
+ }>>;
9
13
  }, z.core.$strip>;
10
14
  export declare const parseInputs: <S extends z.ZodType>(schema: S, inputs: ResolvedInputs, label: string) => z.infer<S>;
11
15
  export declare const parseResponse: <S extends z.ZodType>(schema: S, value: unknown, label: string) => z.infer<S>;
@@ -1 +1 @@
1
- {"version":3,"file":"inputs.d.ts","sourceRoot":"","sources":["../../src/core/inputs.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAI1C,eAAO,MAAM,SAAS;;;;;iBAKpB,CAAC;AAOH,eAAO,MAAM,WAAW,GAAI,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE,QAAQ,CAAC,EAAE,QAAQ,cAAc,EAAE,OAAO,MAAM,KAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAM5G,CAAC;AAMF,eAAO,MAAM,aAAa,GAAI,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE,QAAQ,CAAC,EAAE,OAAO,OAAO,EAAE,OAAO,MAAM,KAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAMtG,CAAC;AAGF,eAAO,MAAM,SAAS,GAAI,QAAQ,CAAC,CAAC,KAAK,CAAC,OAAO,SAAS,CAAC,KAAG,SAK5D,CAAC;AAQH,eAAO,MAAM,WAAW,GAAI,YAAY,MAAM,KAAG;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,OAAO,CAAA;CAG/E,CAAC;AAMH,eAAO,MAAM,aAAa,GAAI,MAAM;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,KAAG,MACxC,CAAC"}
1
+ {"version":3,"file":"inputs.d.ts","sourceRoot":"","sources":["../../src/core/inputs.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAO1C,eAAO,MAAM,SAAS;;;;;;;;;iBAMpB,CAAC;AAOH,eAAO,MAAM,WAAW,GAAI,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE,QAAQ,CAAC,EAAE,QAAQ,cAAc,EAAE,OAAO,MAAM,KAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAM5G,CAAC;AAMF,eAAO,MAAM,aAAa,GAAI,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE,QAAQ,CAAC,EAAE,OAAO,OAAO,EAAE,OAAO,MAAM,KAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAMtG,CAAC;AAGF,eAAO,MAAM,SAAS,GAAI,QAAQ,CAAC,CAAC,KAAK,CAAC,OAAO,SAAS,CAAC,KAAG,SAM5D,CAAC;AAQH,eAAO,MAAM,WAAW,GAAI,YAAY,MAAM,KAAG;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,OAAO,CAAA;CAG/E,CAAC;AAMH,eAAO,MAAM,aAAa,GAAI,MAAM;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,KAAG,MACxC,CAAC"}
@@ -4,6 +4,7 @@ export const sshSchema = z.object({
4
4
  user: z.string(),
5
5
  sshKey: z.string(),
6
6
  port: z.number().default(22),
7
+ via: z.enum(["direct", "cloudflared"]).default("direct"),
7
8
  });
8
9
  const issues = (error) => error.issues.map((issue) => `${issue.path.join(".")} ${issue.message}`).join("; ");
9
10
  export const parseInputs = (schema, inputs, label) => {
@@ -25,6 +26,7 @@ export const sshTarget = (parsed) => ({
25
26
  user: parsed.user,
26
27
  privateKey: parsed.sshKey,
27
28
  port: parsed.port,
29
+ via: parsed.via,
28
30
  });
29
31
  export const gitProvider = (forgejoUrl) => ({
30
32
  domain: forgejoUrl.replace(/^https?:\/\//, "").replace(/\/+$/, ""),
@@ -1 +1 @@
1
- {"version":3,"file":"inputs.js","sourceRoot":"","sources":["../../src/core/inputs.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAKxB,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,CAAC,MAAM,CAAC;IAC9B,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;IACnB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;IAChB,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE;IAClB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC;CAC/B,CAAC,CAAC;AAEH,MAAM,MAAM,GAAG,CAAC,KAAiB,EAAU,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAKjI,MAAM,CAAC,MAAM,WAAW,GAAG,CAAsB,MAAS,EAAE,MAAsB,EAAE,KAAa,EAAc,EAAE;IAC7G,MAAM,MAAM,GAAG,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;IACxC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;QAClB,MAAM,IAAI,KAAK,CAAC,GAAG,KAAK,sBAAsB,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IAC1E,CAAC;IACD,OAAO,MAAM,CAAC,IAAI,CAAC;AACvB,CAAC,CAAC;AAMF,MAAM,CAAC,MAAM,aAAa,GAAG,CAAsB,MAAS,EAAE,KAAc,EAAE,KAAa,EAAc,EAAE;IACvG,MAAM,MAAM,GAAG,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;IACvC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;QAClB,MAAM,IAAI,KAAK,CAAC,GAAG,KAAK,qCAAqC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IACzF,CAAC;IACD,OAAO,MAAM,CAAC,IAAI,CAAC;AACvB,CAAC,CAAC;AAGF,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,MAAiC,EAAa,EAAE,CAAC,CAAC;IACxE,OAAO,EAAE,MAAM,CAAC,OAAO;IACvB,IAAI,EAAE,MAAM,CAAC,IAAI;IACjB,UAAU,EAAE,MAAM,CAAC,MAAM;IACzB,IAAI,EAAE,MAAM,CAAC,IAAI;CACpB,CAAC,CAAC;AAQH,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,UAAkB,EAAsC,EAAE,CAAC,CAAC;IACpF,MAAM,EAAE,UAAU,CAAC,OAAO,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC;IAClE,KAAK,EAAE,UAAU,CAAC,UAAU,CAAC,UAAU,CAAC;CAC3C,CAAC,CAAC;AAMH,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,IAAwE,EAAU,EAAE,CAC9G,GAAG,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC"}
1
+ {"version":3,"file":"inputs.js","sourceRoot":"","sources":["../../src/core/inputs.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAQxB,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,CAAC,MAAM,CAAC;IAC9B,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;IACnB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;IAChB,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE;IAClB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC;IAC5B,GAAG,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC;CAC3D,CAAC,CAAC;AAEH,MAAM,MAAM,GAAG,CAAC,KAAiB,EAAU,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAKjI,MAAM,CAAC,MAAM,WAAW,GAAG,CAAsB,MAAS,EAAE,MAAsB,EAAE,KAAa,EAAc,EAAE;IAC7G,MAAM,MAAM,GAAG,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;IACxC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;QAClB,MAAM,IAAI,KAAK,CAAC,GAAG,KAAK,sBAAsB,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IAC1E,CAAC;IACD,OAAO,MAAM,CAAC,IAAI,CAAC;AACvB,CAAC,CAAC;AAMF,MAAM,CAAC,MAAM,aAAa,GAAG,CAAsB,MAAS,EAAE,KAAc,EAAE,KAAa,EAAc,EAAE;IACvG,MAAM,MAAM,GAAG,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;IACvC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;QAClB,MAAM,IAAI,KAAK,CAAC,GAAG,KAAK,qCAAqC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IACzF,CAAC;IACD,OAAO,MAAM,CAAC,IAAI,CAAC;AACvB,CAAC,CAAC;AAGF,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,MAAiC,EAAa,EAAE,CAAC,CAAC;IACxE,OAAO,EAAE,MAAM,CAAC,OAAO;IACvB,IAAI,EAAE,MAAM,CAAC,IAAI;IACjB,UAAU,EAAE,MAAM,CAAC,MAAM;IACzB,IAAI,EAAE,MAAM,CAAC,IAAI;IACjB,GAAG,EAAE,MAAM,CAAC,GAAG;CAClB,CAAC,CAAC;AAQH,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,UAAkB,EAAsC,EAAE,CAAC,CAAC;IACpF,MAAM,EAAE,UAAU,CAAC,OAAO,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC;IAClE,KAAK,EAAE,UAAU,CAAC,UAAU,CAAC,UAAU,CAAC;CAC3C,CAAC,CAAC;AAMH,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,IAAwE,EAAU,EAAE,CAC9G,GAAG,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC"}
@@ -14,9 +14,11 @@ export interface SshTarget {
14
14
  readonly user: string;
15
15
  readonly privateKey: string;
16
16
  readonly port: number;
17
+ readonly via?: "direct" | "cloudflared";
17
18
  }
18
19
  export interface SshExecutor {
19
20
  readonly connect: (target: SshTarget) => Promise<SshSession>;
21
+ readonly dispose?: () => Promise<void>;
20
22
  }
21
23
  export interface HostKeyStore {
22
24
  readonly get: (host: string, port: number) => Promise<string | undefined>;
@@ -1 +1 @@
1
- {"version":3,"file":"ssh.d.ts","sourceRoot":"","sources":["../../src/core/ssh.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,SAAS;IACtB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,UAAU;IACvB,QAAQ,CAAC,IAAI,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,SAAS,CAAC,CAAC;IACvD,QAAQ,CAAC,OAAO,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAKtC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7E,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CAC9E;AAED,MAAM,WAAW,SAAS;IACtB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACzB;AAID,MAAM,WAAW,WAAW;IACxB,QAAQ,CAAC,OAAO,EAAE,CAAC,MAAM,EAAE,SAAS,KAAK,OAAO,CAAC,UAAU,CAAC,CAAC;CAChE;AAKD,MAAM,WAAW,YAAY;IACzB,QAAQ,CAAC,GAAG,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;IAC1E,QAAQ,CAAC,GAAG,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CAC5E;AAKD,eAAO,MAAM,oBAAoB,QAAO,YAUvC,CAAC;AAKF,eAAO,MAAM,aAAa,GAAU,OAAO,YAAY,EAAE,MAAM,MAAM,EAAE,MAAM,MAAM,EAAE,WAAW,MAAM,KAAG,OAAO,CAAC,IAAI,GAAG,UAAU,CAOjI,CAAC;AAWF,eAAO,MAAM,iBAAiB,GAAI,QAAO,YAAqC,KAAG,WAqF/E,CAAC;AAEH,eAAO,MAAM,WAAW,EAAE,WAAiC,CAAC"}
1
+ {"version":3,"file":"ssh.d.ts","sourceRoot":"","sources":["../../src/core/ssh.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,SAAS;IACtB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,UAAU;IACvB,QAAQ,CAAC,IAAI,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,SAAS,CAAC,CAAC;IACvD,QAAQ,CAAC,OAAO,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAKtC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7E,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CAC9E;AAED,MAAM,WAAW,SAAS;IACtB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAItB,QAAQ,CAAC,GAAG,CAAC,EAAE,QAAQ,GAAG,aAAa,CAAC;CAC3C;AAKD,MAAM,WAAW,WAAW;IACxB,QAAQ,CAAC,OAAO,EAAE,CAAC,MAAM,EAAE,SAAS,KAAK,OAAO,CAAC,UAAU,CAAC,CAAC;IAC7D,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAC1C;AAKD,MAAM,WAAW,YAAY;IACzB,QAAQ,CAAC,GAAG,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;IAC1E,QAAQ,CAAC,GAAG,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CAC5E;AAKD,eAAO,MAAM,oBAAoB,QAAO,YAUvC,CAAC;AAKF,eAAO,MAAM,aAAa,GAAU,OAAO,YAAY,EAAE,MAAM,MAAM,EAAE,MAAM,MAAM,EAAE,WAAW,MAAM,KAAG,OAAO,CAAC,IAAI,GAAG,UAAU,CAOjI,CAAC;AA0FF,eAAO,MAAM,iBAAiB,GAAI,QAAO,YAAqC,KAAG,WAsHhF,CAAC;AAEF,eAAO,MAAM,WAAW,EAAE,WAAiC,CAAC"}
package/dist/core/ssh.js CHANGED
@@ -1,3 +1,5 @@
1
+ import { spawn } from "node:child_process";
2
+ import { createServer, connect as tcpConnect } from "node:net";
1
3
  import { Client } from "ssh2";
2
4
  export const inMemoryHostKeyStore = () => {
3
5
  const keys = new Map();
@@ -23,75 +25,160 @@ const collect = (stream, sink) => {
23
25
  sink.value += chunk.toString("utf8");
24
26
  });
25
27
  };
26
- export const createSshExecutor = (store = inMemoryHostKeyStore()) => ({
27
- connect: (target) => new Promise((resolve, reject) => {
28
- const client = new Client();
29
- client.on("error", reject);
30
- client.on("ready", () => {
31
- client.removeListener("error", reject);
32
- resolve({
33
- exec: (command) => new Promise((resolveExec, rejectExec) => {
34
- client.exec(command, (error, stream) => {
35
- if (error !== undefined) {
36
- rejectExec(error);
37
- return;
38
- }
39
- const stdout = { value: "" };
40
- const stderr = { value: "" };
41
- let code = 0;
42
- collect(stream, stdout);
43
- collect(stream.stderr, stderr);
44
- stream.on("exit", (exitCode) => {
45
- code = exitCode ?? 0;
46
- });
47
- stream.on("close", () => {
48
- resolveExec({ stdout: stdout.value, stderr: stderr.value, code });
49
- });
50
- });
51
- }),
52
- dispose: () => new Promise((resolveDispose) => {
53
- client.on("close", () => {
54
- resolveDispose();
55
- });
56
- client.end();
57
- }),
58
- download: (remotePath, localPath) => new Promise((resolveTransfer, rejectTransfer) => {
59
- client.sftp((sftpError, sftp) => {
60
- if (sftpError) {
61
- rejectTransfer(sftpError);
62
- return;
63
- }
64
- sftp.fastGet(remotePath, localPath, (getError) => (getError ? rejectTransfer(getError) : resolveTransfer()));
65
- });
66
- }),
67
- upload: (localPath, remotePath) => new Promise((resolveTransfer, rejectTransfer) => {
68
- client.sftp((sftpError, sftp) => {
69
- if (sftpError) {
70
- rejectTransfer(sftpError);
71
- return;
72
- }
73
- sftp.fastPut(localPath, remotePath, (putError) => (putError ? rejectTransfer(putError) : resolveTransfer()));
28
+ const delay = (ms) => new Promise((resolve) => setTimeout(resolve, ms));
29
+ const reserveLocalPort = () => new Promise((resolve, reject) => {
30
+ const probe = createServer();
31
+ probe.once("error", reject);
32
+ probe.listen(0, "127.0.0.1", () => {
33
+ const address = probe.address();
34
+ const port = typeof address === "object" && address !== null ? address.port : 0;
35
+ probe.close(() => resolve(port));
36
+ });
37
+ });
38
+ const tcpProbe = (port) => new Promise((resolve) => {
39
+ const socket = tcpConnect({ host: "127.0.0.1", port });
40
+ socket.once("connect", () => {
41
+ socket.destroy();
42
+ resolve(true);
43
+ });
44
+ socket.once("error", () => {
45
+ socket.destroy();
46
+ resolve(false);
47
+ });
48
+ });
49
+ const waitForPort = async (port, failure, timeoutMs = 20000) => {
50
+ const deadline = Date.now() + timeoutMs;
51
+ for (;;) {
52
+ const reason = failure();
53
+ if (reason !== undefined) {
54
+ throw new Error(`cloudflared access exited before its local forwarder came up: ${reason}`);
55
+ }
56
+ if (await tcpProbe(port)) {
57
+ return;
58
+ }
59
+ if (Date.now() > deadline) {
60
+ throw new Error(`cloudflared local forwarder on 127.0.0.1:${port} did not come up within ${timeoutMs}ms`);
61
+ }
62
+ await delay(150);
63
+ }
64
+ };
65
+ const startCloudflaredForwarder = async (hostname) => {
66
+ const port = await reserveLocalPort();
67
+ const child = spawn("cloudflared", ["access", "tcp", "--hostname", hostname, "--url", `127.0.0.1:${port}`], { stdio: "ignore" });
68
+ let exit;
69
+ child.once("error", (error) => {
70
+ exit = `spawn failed: ${error.message}`;
71
+ });
72
+ child.once("exit", (code, signal) => {
73
+ exit = `exited (code ${code ?? "?"}, signal ${signal ?? "none"})`;
74
+ });
75
+ try {
76
+ await waitForPort(port, () => exit);
77
+ }
78
+ catch (error) {
79
+ child.kill();
80
+ throw error;
81
+ }
82
+ return { port, child };
83
+ };
84
+ export const createSshExecutor = (store = inMemoryHostKeyStore()) => {
85
+ const forwarders = new Map();
86
+ const dial = async (target) => {
87
+ if (target.via !== "cloudflared") {
88
+ return { host: target.address, port: target.port };
89
+ }
90
+ let forwarder = forwarders.get(target.address);
91
+ if (forwarder === undefined) {
92
+ forwarder = startCloudflaredForwarder(target.address);
93
+ forwarders.set(target.address, forwarder);
94
+ forwarder.catch(() => forwarders.delete(target.address));
95
+ }
96
+ return { host: "127.0.0.1", port: (await forwarder).port };
97
+ };
98
+ return {
99
+ connect: async (target) => {
100
+ const endpoint = await dial(target);
101
+ return new Promise((resolve, reject) => {
102
+ const client = new Client();
103
+ client.on("error", reject);
104
+ client.on("ready", () => {
105
+ client.removeListener("error", reject);
106
+ resolve({
107
+ exec: (command) => new Promise((resolveExec, rejectExec) => {
108
+ client.exec(command, (error, stream) => {
109
+ if (error !== undefined) {
110
+ rejectExec(error);
111
+ return;
112
+ }
113
+ const stdout = { value: "" };
114
+ const stderr = { value: "" };
115
+ let code = 0;
116
+ collect(stream, stdout);
117
+ collect(stream.stderr, stderr);
118
+ stream.on("exit", (exitCode) => {
119
+ code = exitCode ?? 0;
120
+ });
121
+ stream.on("close", () => {
122
+ resolveExec({ stdout: stdout.value, stderr: stderr.value, code });
123
+ });
124
+ });
125
+ }),
126
+ dispose: () => new Promise((resolveDispose) => {
127
+ client.on("close", () => {
128
+ resolveDispose();
129
+ });
130
+ client.end();
131
+ }),
132
+ download: (remotePath, localPath) => new Promise((resolveTransfer, rejectTransfer) => {
133
+ client.sftp((sftpError, sftp) => {
134
+ if (sftpError) {
135
+ rejectTransfer(sftpError);
136
+ return;
137
+ }
138
+ sftp.fastGet(remotePath, localPath, (getError) => (getError ? rejectTransfer(getError) : resolveTransfer()));
139
+ });
140
+ }),
141
+ upload: (localPath, remotePath) => new Promise((resolveTransfer, rejectTransfer) => {
142
+ client.sftp((sftpError, sftp) => {
143
+ if (sftpError) {
144
+ rejectTransfer(sftpError);
145
+ return;
146
+ }
147
+ sftp.fastPut(localPath, remotePath, (putError) => (putError ? rejectTransfer(putError) : resolveTransfer()));
148
+ });
149
+ }),
74
150
  });
75
- }),
151
+ });
152
+ client.connect({
153
+ host: endpoint.host,
154
+ port: endpoint.port,
155
+ username: target.user,
156
+ privateKey: target.privateKey,
157
+ hostVerifier: (key, callback) => {
158
+ verifyHostKey(store, target.address, target.port, key.toString("base64"))
159
+ .then((outcome) => {
160
+ if (outcome === "mismatch") {
161
+ reject(new Error(`host key mismatch for ${target.address}:${target.port} — refusing to connect (possible MITM, or the host was rebuilt; remove its entry from .known-hosts.json to re-trust)`));
162
+ }
163
+ callback(outcome === "ok");
164
+ })
165
+ .catch(reject);
166
+ },
167
+ });
76
168
  });
77
- });
78
- client.connect({
79
- host: target.address,
80
- port: target.port,
81
- username: target.user,
82
- privateKey: target.privateKey,
83
- hostVerifier: (key, callback) => {
84
- verifyHostKey(store, target.address, target.port, key.toString("base64"))
85
- .then((outcome) => {
86
- if (outcome === "mismatch") {
87
- reject(new Error(`host key mismatch for ${target.address}:${target.port} — refusing to connect (possible MITM, or the host was rebuilt; remove its entry from .known-hosts.json to re-trust)`));
88
- }
89
- callback(outcome === "ok");
90
- })
91
- .catch(reject);
92
- },
93
- });
94
- }),
95
- });
169
+ },
170
+ dispose: async () => {
171
+ const pending = [...forwarders.values()];
172
+ forwarders.clear();
173
+ await Promise.all(pending.map(async (forwarder) => {
174
+ try {
175
+ (await forwarder).child.kill();
176
+ }
177
+ catch {
178
+ }
179
+ }));
180
+ },
181
+ };
182
+ };
96
183
  export const sshExecutor = createSshExecutor();
97
184
  //# sourceMappingURL=ssh.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ssh.js","sourceRoot":"","sources":["../../src/core/ssh.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ssh.js","sourceRoot":"","sources":["../../src/core/ssh.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@intentic/providers",
3
- "version": "1.34.0",
3
+ "version": "1.36.0",
4
4
  "description": "",
5
5
  "license": "MIT",
6
6
  "type": "module",
@@ -33,16 +33,16 @@
33
33
  "ssh2": "1.17.0",
34
34
  "tslib": "2.8.1",
35
35
  "zod": "4.4.3",
36
- "@intentic/engine": "1.34.0",
37
- "@intentic/graph": "1.34.0"
36
+ "@intentic/graph": "1.36.0",
37
+ "@intentic/engine": "1.36.0"
38
38
  },
39
39
  "devDependencies": {
40
40
  "@types/node": "24.13.2",
41
41
  "@types/ssh2": "1.15.5",
42
42
  "typescript": "5.9.3",
43
43
  "vitest": "4.1.9",
44
- "@intentic/sdk": "1.34.0",
45
- "@intentic/tsconfig": "0.0.0"
44
+ "@intentic/tsconfig": "0.0.0",
45
+ "@intentic/sdk": "1.36.0"
46
46
  },
47
47
  "scripts": {
48
48
  "build": "tsc",