@t4h.framework/jwks 0.3.0 → 0.4.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.
Files changed (78) hide show
  1. package/.ai/skills/framework-jwks/SKILL.md +275 -0
  2. package/dist/activities/SftpAppendActivity.d.ts +16 -0
  3. package/dist/activities/SftpAppendActivity.d.ts.map +1 -0
  4. package/dist/activities/SftpAppendActivity.js +14 -0
  5. package/dist/activities/SftpAppendActivity.js.map +1 -0
  6. package/dist/activities/SftpChmodActivity.d.ts +16 -0
  7. package/dist/activities/SftpChmodActivity.d.ts.map +1 -0
  8. package/dist/activities/SftpChmodActivity.js +14 -0
  9. package/dist/activities/SftpChmodActivity.js.map +1 -0
  10. package/dist/activities/SftpCopyActivity.d.ts +16 -0
  11. package/dist/activities/SftpCopyActivity.d.ts.map +1 -0
  12. package/dist/activities/SftpCopyActivity.js +14 -0
  13. package/dist/activities/SftpCopyActivity.js.map +1 -0
  14. package/dist/activities/SftpCwdActivity.d.ts +14 -0
  15. package/dist/activities/SftpCwdActivity.d.ts.map +1 -0
  16. package/dist/activities/SftpCwdActivity.js +16 -0
  17. package/dist/activities/SftpCwdActivity.js.map +1 -0
  18. package/dist/activities/SftpDeleteActivity.d.ts +16 -0
  19. package/dist/activities/SftpDeleteActivity.d.ts.map +1 -0
  20. package/dist/activities/SftpDeleteActivity.js +14 -0
  21. package/dist/activities/SftpDeleteActivity.js.map +1 -0
  22. package/dist/activities/SftpDownloadDirActivity.d.ts +15 -0
  23. package/dist/activities/SftpDownloadDirActivity.d.ts.map +1 -0
  24. package/dist/activities/SftpDownloadDirActivity.js +16 -0
  25. package/dist/activities/SftpDownloadDirActivity.js.map +1 -0
  26. package/dist/activities/SftpExistsActivity.d.ts +16 -0
  27. package/dist/activities/SftpExistsActivity.d.ts.map +1 -0
  28. package/dist/activities/SftpExistsActivity.js +16 -0
  29. package/dist/activities/SftpExistsActivity.js.map +1 -0
  30. package/dist/activities/SftpGetActivity.d.ts +15 -0
  31. package/dist/activities/SftpGetActivity.d.ts.map +1 -0
  32. package/dist/activities/SftpGetActivity.js +16 -0
  33. package/dist/activities/SftpGetActivity.js.map +1 -0
  34. package/dist/activities/SftpListActivity.d.ts +30 -0
  35. package/dist/activities/SftpListActivity.d.ts.map +1 -0
  36. package/dist/activities/SftpListActivity.js +16 -0
  37. package/dist/activities/SftpListActivity.js.map +1 -0
  38. package/dist/activities/SftpMkdirActivity.d.ts +16 -0
  39. package/dist/activities/SftpMkdirActivity.d.ts.map +1 -0
  40. package/dist/activities/SftpMkdirActivity.js +14 -0
  41. package/dist/activities/SftpMkdirActivity.js.map +1 -0
  42. package/dist/activities/SftpPutActivity.d.ts +16 -0
  43. package/dist/activities/SftpPutActivity.d.ts.map +1 -0
  44. package/dist/activities/SftpPutActivity.js +14 -0
  45. package/dist/activities/SftpPutActivity.js.map +1 -0
  46. package/dist/activities/SftpRealPathActivity.d.ts +15 -0
  47. package/dist/activities/SftpRealPathActivity.d.ts.map +1 -0
  48. package/dist/activities/SftpRealPathActivity.js +16 -0
  49. package/dist/activities/SftpRealPathActivity.js.map +1 -0
  50. package/dist/activities/SftpRenameActivity.d.ts +16 -0
  51. package/dist/activities/SftpRenameActivity.d.ts.map +1 -0
  52. package/dist/activities/SftpRenameActivity.js +14 -0
  53. package/dist/activities/SftpRenameActivity.js.map +1 -0
  54. package/dist/activities/SftpRmdirActivity.d.ts +16 -0
  55. package/dist/activities/SftpRmdirActivity.d.ts.map +1 -0
  56. package/dist/activities/SftpRmdirActivity.js +14 -0
  57. package/dist/activities/SftpRmdirActivity.js.map +1 -0
  58. package/dist/activities/SftpStatActivity.d.ts +30 -0
  59. package/dist/activities/SftpStatActivity.d.ts.map +1 -0
  60. package/dist/activities/SftpStatActivity.js +16 -0
  61. package/dist/activities/SftpStatActivity.js.map +1 -0
  62. package/dist/constants/dirs.d.ts +2 -0
  63. package/dist/constants/dirs.d.ts.map +1 -0
  64. package/dist/constants/dirs.js +3 -0
  65. package/dist/constants/dirs.js.map +1 -0
  66. package/dist/models/Sftp.d.ts +21 -0
  67. package/dist/models/Sftp.d.ts.map +1 -0
  68. package/dist/models/Sftp.js +83 -0
  69. package/dist/models/Sftp.js.map +1 -0
  70. package/dist/models/SftpClaim.d.ts +34 -0
  71. package/dist/models/SftpClaim.d.ts.map +1 -0
  72. package/dist/models/SftpClaim.js +3 -0
  73. package/dist/models/SftpClaim.js.map +1 -0
  74. package/dist/sftp.d.ts +18 -0
  75. package/dist/sftp.d.ts.map +1 -0
  76. package/dist/sftp.js +18 -0
  77. package/dist/sftp.js.map +1 -0
  78. package/package.json +5 -4
@@ -0,0 +1,275 @@
1
+ ---
2
+ name: framework-jwks
3
+ description: >-
4
+ JWKS-backed authorization for T4H Framework workflows and apps. Use when
5
+ importing @t4h.framework/jwks, wiring JWKSAuthorization on Workflow or App,
6
+ validating RS256 JWTs against a JWKS endpoint, verifying detached signatures
7
+ with kid/algorithm/signatureFormat, configuring issuer/audience checks, or
8
+ implementing the @t4h.framework/jwks/authorize runtime handler. Requires
9
+ @t4h.framework/core. Package path: framework/packages/jwks.
10
+ ---
11
+
12
+ # @t4h.framework/jwks
13
+
14
+ JWKS-backed **Authorization** for workflows and apps. Exposes `JWKSAuthorization` (core manifest) and a default runtime handler at `@t4h.framework/jwks/authorize` that fetches signing keys from a JWKS URL and verifies credentials.
15
+
16
+ **Peer dependency:** `@t4h.framework/core` (same major line).
17
+
18
+ **Node:** `>=22`.
19
+
20
+ Package path: `framework/packages/jwks`. See [README.md](../../../README.md) for overview (field names below match **source**, not older README examples that mention `value`).
21
+
22
+ ---
23
+
24
+ ## Imports
25
+
26
+ | Entry | Purpose |
27
+ |-------|---------|
28
+ | `@t4h.framework/jwks` | `JWKSAuthorization`, `JWKSAuthorizationContext`, `JWKSAuthorizationManifest`, `JWKSAlgorithm`, re-exports authorize module |
29
+ | `@t4h.framework/jwks/authorize` | Default async handler: `(context) => Promise<boolean>` |
30
+
31
+ ```typescript
32
+ import {
33
+ JWKSAuthorization,
34
+ type JWKSAuthorizationContext,
35
+ JWKSAlgorithm,
36
+ } from '@t4h.framework/jwks'
37
+ ```
38
+
39
+ Do **not** assume OIDC discovery, env-variable mapping, or `credentialSource` helpers—this package does not read HTTP headers or env. Your app or hosting layer supplies `signature`, `rawPayload`, and `url`.
40
+
41
+ ---
42
+
43
+ ## Wiring authorization (core)
44
+
45
+ `JWKSAuthorization` extends core `Authorization`. Attach to a **Workflow** or **App**; `toManifest()` registers the handler module for the platform.
46
+
47
+ ```typescript
48
+ import { App, Workflow } from '@t4h.framework/core'
49
+ import { JWKSAuthorization } from '@t4h.framework/jwks'
50
+
51
+ const authorization = new JWKSAuthorization({
52
+ url: 'https://auth.example.com/.well-known/jwks.json',
53
+ signature: '<credential-from-runtime>',
54
+ rawPayload: '<payload-or-same-as-jwt>',
55
+ audience: 'https://api.example.com',
56
+ })
57
+
58
+ const workflow = new Workflow(
59
+ { id: 'protected/v1', authorization },
60
+ async () => ({ ok: true }),
61
+ )
62
+
63
+ const app = new App({
64
+ id: 'my-app',
65
+ workflows: [workflow],
66
+ authorization, // optional app-level default
67
+ })
68
+ ```
69
+
70
+ Manifest shape (from tests):
71
+
72
+ ```typescript
73
+ {
74
+ pathToModule: '@t4h.framework/jwks/authorize',
75
+ context: {
76
+ url: string
77
+ signature: string
78
+ rawPayload: string
79
+ issuer?: string
80
+ audience?: string
81
+ kid?: string
82
+ algorithm?: string
83
+ signatureFormat?: string
84
+ },
85
+ }
86
+ ```
87
+
88
+ Optional manifest fields are still present as `undefined` when omitted (`toManifest` copies all keys).
89
+
90
+ ---
91
+
92
+ ## Context: `JWKSAuthorizationContext`
93
+
94
+ | Field | Required | Description |
95
+ |-------|----------|-------------|
96
+ | `url` | Yes | JWKS document URL (`jwks-rsa` `jwksUri`). |
97
+ | `signature` | Yes | Credential to verify: JWT string, or detached signature for non-JWT path. Empty string → handler returns `false`. |
98
+ | `rawPayload` | Yes | Payload bytes as string for non-JWT verification; for JWT path, tests pass the same string as `signature` (handler only uses `signature` on JWT path). |
99
+ | `issuer` | No | When set, passed to `jwt.verify` as expected `iss`. Mismatch **rejects** (throws). |
100
+ | `audience` | No | When set, passed to `jwt.verify` as expected `aud`. |
101
+ | `kid` | Conditional | Required when `signature` is **not** a decodable JWT (non-JWT path). |
102
+ | `algorithm` | Conditional | Non-JWT path: **enum key** on `JWKSAlgorithm` (e.g. `RS256`), not the Node crypto string. |
103
+ | `signatureFormat` | Conditional | Non-JWT path: encoding for the signature buffer (`hex`, `base64`, etc.—`BinaryToTextEncoding`). |
104
+
105
+ ---
106
+
107
+ ## Runtime handler (`@t4h.framework/jwks/authorize`)
108
+
109
+ Default export:
110
+
111
+ ```typescript
112
+ (options: JWKSAuthorizationContext) => Promise<boolean>
113
+ ```
114
+
115
+ Behavior (from `jwks-authorize.ts` and tests):
116
+
117
+ 1. If `signature` is falsy → **`false`** (no throw).
118
+ 2. Build `JwksClient({ jwksUri: options.url })`.
119
+ 3. `jwt.decode(signature, { complete: true })`:
120
+ - **Decoded (JWT path)** → `validateJwt(signature, client, { issuer, audience })`.
121
+ - **Not decoded (non-JWT path)** → require `kid`, `algorithm`, `signatureFormat`; else **throw** with fixed messages (see below).
122
+
123
+ ### JWT path (`validateJwt`)
124
+
125
+ - Algorithm must be **RS256** (`decoded.header.alg === 'RS256'`); otherwise **`false`** (e.g. HS256 tokens return `false`, not throw).
126
+ - Header must include **`kid`**; used to `getSigningKey(kid)` from JWKS.
127
+ - **`exp` enforced** (`ignoreExpiration: false`). Expired or wrong signing key → **`jwt.verify` rejects** (promise rejection / throw from handler).
128
+ - Optional `issuer` / `audience` from context applied when present.
129
+
130
+ ### Non-JWT path
131
+
132
+ Uses Node `crypto.createVerify` with public key from JWKS:
133
+
134
+ ```typescript
135
+ verifier.update(options.rawPayload)
136
+ verifier.verify(signingKey, options.signature, signatureFormat)
137
+ ```
138
+
139
+ Throws if any required field is missing:
140
+
141
+ | Missing | Error message |
142
+ |---------|----------------|
143
+ | `kid` | `KID is required for payload verification` |
144
+ | `algorithm` | `Algorithm is required for payload verification` |
145
+ | `signatureFormat` | `Signature format is required for payload verification` |
146
+
147
+ `algorithm` must be a **key** of `JWKSAlgorithm`:
148
+
149
+ ```typescript
150
+ export enum JWKSAlgorithm {
151
+ RS256 = 'RSA-SHA256',
152
+ RS384 = 'RSA-SHA384',
153
+ RS512 = 'RSA-SHA512',
154
+ PS256 = 'RSA-PSS-SHA256',
155
+ PS384 = 'RSA-PSS-SHA384',
156
+ PS512 = 'RSA-PSS-SHA512',
157
+ ES256 = 'ECDSA-SHA256',
158
+ ES384 = 'ECDSA-SHA384',
159
+ ES512 = 'ECDSA-SHA512',
160
+ }
161
+ ```
162
+
163
+ Handler uses `JWKSAlgorithm[algorithm]` as the `createVerify` algorithm name. Pass `algorithm: 'RS256'`, not `'RSA-SHA256'`.
164
+
165
+ Returns **`true`** on successful verification, **`false`** when verification fails (non-JWT invalid signature).
166
+
167
+ ---
168
+
169
+ ## Examples
170
+
171
+ ### RS256 JWT (typical API Bearer token)
172
+
173
+ ```typescript
174
+ import { JWKSAuthorization } from '@t4h.framework/jwks'
175
+
176
+ const authorization = new JWKSAuthorization({
177
+ url: 'https://id.example.com/.well-known/jwks.json',
178
+ signature: bearerToken, // without "Bearer " prefix if your layer strips it
179
+ rawPayload: bearerToken,
180
+ issuer: 'https://issuer.example.com',
181
+ audience: 'my-api',
182
+ })
183
+ ```
184
+
185
+ Token must be signed RS256 with `kid` in header. Platform invokes `@t4h.framework/jwks/authorize` with manifest `context` when the protected workflow runs.
186
+
187
+ ### Detached signature (non-JWT)
188
+
189
+ ```typescript
190
+ new JWKSAuthorization({
191
+ url: 'https://id.example.com/jwks',
192
+ signature: detachedSignatureHex,
193
+ rawPayload: canonicalPayloadString,
194
+ kid: 'key-1',
195
+ algorithm: 'RS256',
196
+ signatureFormat: 'hex',
197
+ })
198
+ ```
199
+
200
+ If `signature` accidentally looks like a JWT to `jwt.decode`, the JWT path runs instead—structure payloads accordingly.
201
+
202
+ ---
203
+
204
+ ## Return values vs errors
205
+
206
+ | Situation | Result |
207
+ |-----------|--------|
208
+ | Empty `signature` | `false` |
209
+ | Valid RS256 JWT, matching JWKS key | `true` |
210
+ | JWT wrong alg (e.g. HS256), no `kid`, undecodable token | `false` |
211
+ | Expired JWT, issuer mismatch, signature mismatch | **Rejected** (throw from `jwt.verify`) |
212
+ | Non-JWT missing `kid` / `algorithm` / `signatureFormat` | **Throw** (configuration error) |
213
+ | Non-JWT verify fails | `false` |
214
+
215
+ Design callers so manifest context is complete **before** the handler runs; missing non-JWT fields are programmer errors, not silent denials.
216
+
217
+ ---
218
+
219
+ ## Testing the handler locally
220
+
221
+ Unit tests mock `jwks-rsa` and use real RSA key pairs + `jsonwebtoken`:
222
+
223
+ ```typescript
224
+ import jwks from '@t4h.framework/jwks/authorize'
225
+ import jwt from 'jsonwebtoken'
226
+
227
+ // Valid JWT
228
+ const token = jwt.sign({ sub: 'user-1' }, privateKeyPem, {
229
+ algorithm: 'RS256',
230
+ keyid: 'kid-1',
231
+ expiresIn: '1h',
232
+ })
233
+
234
+ await expect(
235
+ jwks({
236
+ url: 'https://example.com/jwks',
237
+ signature: token,
238
+ rawPayload: token,
239
+ }),
240
+ ).resolves.toBe(true)
241
+ ```
242
+
243
+ Test files: `src/__tests__/jwks-authorize.spec.ts`, `src/helpers/__tests__/validateJwt.spec.ts`, `src/models/__tests__/JWKSAuthorization.spec.ts`.
244
+
245
+ `JWKSAuthorization` tests only assert `toManifest()` shape—handler tests cover verification behavior.
246
+
247
+ ---
248
+
249
+ ## Dependencies (implementation)
250
+
251
+ - **`jwks-rsa`** — `JwksClient`, `getSigningKey(kid)`, `getPublicKey()`.
252
+ - **`jsonwebtoken`** — decode/verify on JWT path.
253
+
254
+ ---
255
+
256
+ ## What this package does not do
257
+
258
+ - No built-in OIDC discovery or `JWKS_ISSUER` env mapping.
259
+ - No HTTP header / query / env extraction for credentials.
260
+ - JWT path supports **RS256 only** (not RS384/ES256 via JWT path—those enum values apply to non-JWT `createVerify` only).
261
+ - Does not define **Claims** or **Activities**—only **Authorization** manifests for core `Workflow` / `App`.
262
+
263
+ For workflow orchestration and claims use **framework-core**; for the `TestWorkflowEnvironment` testing harness use **framework-workflow-testing**.
264
+
265
+ ---
266
+
267
+ ## Quick checklist for agents
268
+
269
+ 1. Add `@t4h.framework/jwks` and peer `@t4h.framework/core`.
270
+ 2. Build `JWKSAuthorizationContext` with `url`, `signature`, `rawPayload` at minimum.
271
+ 3. Attach `new JWKSAuthorization(context)` to `Workflow` and/or `App` `authorization` option.
272
+ 4. JWT: ensure RS256 + `kid`; optional `issuer` / `audience`.
273
+ 5. Non-JWT: set `kid`, `algorithm` (`JWKSAlgorithm` key), `signatureFormat`.
274
+ 6. Expect `false` for deny, throws for misconfiguration or JWT verify failures (expired, wrong iss).
275
+ 7. Do not reference APIs absent from `src/` and tests.
@@ -0,0 +1,16 @@
1
+ import { type Binary, SyncActivity } from '@t4h.framework/core';
2
+ import type { Sftp } from '../models/Sftp.js';
3
+ export type SftpAppendActivityInput = {
4
+ connectionString: string;
5
+ filepath: string;
6
+ content: Binary;
7
+ };
8
+ declare const CLAIMS_KEY: unique symbol;
9
+ export declare class SftpAppendActivity extends SyncActivity<readonly [sftp: Sftp, filepath: string, content: Binary], SftpAppendActivityInput, void, void> {
10
+ private readonly [CLAIMS_KEY];
11
+ toInput(sftp: Sftp, filepath: string, content: Binary): SftpAppendActivityInput;
12
+ run(payload: SftpAppendActivityInput): void | Promise<void>;
13
+ toOutput(): void;
14
+ }
15
+ export {};
16
+ //# sourceMappingURL=SftpAppendActivity.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SftpAppendActivity.d.ts","sourceRoot":"","sources":["../../src/activities/SftpAppendActivity.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,MAAM,EAAS,YAAY,EAAE,MAAM,qBAAqB,CAAA;AAEtE,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAA;AAG7C,MAAM,MAAM,uBAAuB,GAAG;IACpC,gBAAgB,EAAE,MAAM,CAAA;IACxB,QAAQ,EAAE,MAAM,CAAA;IAChB,OAAO,EAAE,MAAM,CAAA;CAChB,CAAA;AAED,QAAA,MAAM,UAAU,eAAwC,CAAA;AAExD,qBAAa,kBAAmB,SAAQ,YAAY,CAClD,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,EACxD,uBAAuB,EACvB,IAAI,EACJ,IAAI,CACL;IACC,OAAO,CAAC,QAAQ,CAAC,CAAC,UAAU,CAAC,CAAiC;IAEvD,OAAO,CACZ,IAAI,EAAE,IAAI,EACV,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,MAAM,GACd,uBAAuB;IAInB,GAAG,CAAC,OAAO,EAAE,uBAAuB;IAIpC,QAAQ,IAAI,IAAI;CACxB"}
@@ -0,0 +1,14 @@
1
+ import { Claim, SyncActivity } from '@t4h.framework/core';
2
+ import { SftpClaim } from '../models/SftpClaim.js';
3
+ const CLAIMS_KEY = Symbol('sftp-append-activity-claims');
4
+ export class SftpAppendActivity extends SyncActivity {
5
+ [CLAIMS_KEY] = new Claim({ sftp: SftpClaim });
6
+ toInput(sftp, filepath, content) {
7
+ return { connectionString: sftp.connectionString, filepath, content };
8
+ }
9
+ run(payload) {
10
+ return this[CLAIMS_KEY].sftp.append(payload);
11
+ }
12
+ toOutput() { }
13
+ }
14
+ //# sourceMappingURL=SftpAppendActivity.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SftpAppendActivity.js","sourceRoot":"","sources":["../../src/activities/SftpAppendActivity.ts"],"names":[],"mappings":"AAAA,OAAO,EAAe,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAA;AAGtE,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAA;AAQlD,MAAM,UAAU,GAAG,MAAM,CAAC,6BAA6B,CAAC,CAAA;AAExD,MAAM,OAAO,kBAAmB,SAAQ,YAKvC;IACkB,CAAC,UAAU,CAAC,GAAG,IAAI,KAAK,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAA;IAEvD,OAAO,CACZ,IAAU,EACV,QAAgB,EAChB,OAAe;QAEf,OAAO,EAAE,gBAAgB,EAAE,IAAI,CAAC,gBAAgB,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAA;IACvE,CAAC;IAEM,GAAG,CAAC,OAAgC;QACzC,OAAO,IAAI,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;IAC9C,CAAC;IAEM,QAAQ,KAAU,CAAC;CAC3B"}
@@ -0,0 +1,16 @@
1
+ import { SyncActivity } from '@t4h.framework/core';
2
+ import type { Sftp } from '../models/Sftp.js';
3
+ export type SftpChmodActivityInput = {
4
+ connectionString: string;
5
+ path: string;
6
+ mode: string | number;
7
+ };
8
+ declare const CLAIMS_KEY: unique symbol;
9
+ export declare class SftpChmodActivity extends SyncActivity<readonly [sftp: Sftp, path: string, mode: string | number], SftpChmodActivityInput, void, void> {
10
+ private readonly [CLAIMS_KEY];
11
+ toInput(sftp: Sftp, path: string, mode: string | number): SftpChmodActivityInput;
12
+ run(payload: SftpChmodActivityInput): void | Promise<void>;
13
+ toOutput(): void;
14
+ }
15
+ export {};
16
+ //# sourceMappingURL=SftpChmodActivity.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SftpChmodActivity.d.ts","sourceRoot":"","sources":["../../src/activities/SftpChmodActivity.ts"],"names":[],"mappings":"AAAA,OAAO,EAAS,YAAY,EAAE,MAAM,qBAAqB,CAAA;AAEzD,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAA;AAG7C,MAAM,MAAM,sBAAsB,GAAG;IACnC,gBAAgB,EAAE,MAAM,CAAA;IACxB,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,GAAG,MAAM,CAAA;CACtB,CAAA;AAED,QAAA,MAAM,UAAU,eAAuC,CAAA;AAEvD,qBAAa,iBAAkB,SAAQ,YAAY,CACjD,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC,EAC1D,sBAAsB,EACtB,IAAI,EACJ,IAAI,CACL;IACC,OAAO,CAAC,QAAQ,CAAC,CAAC,UAAU,CAAC,CAAiC;IAEvD,OAAO,CACZ,IAAI,EAAE,IAAI,EACV,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,GAAG,MAAM,GACpB,sBAAsB;IAIlB,GAAG,CAAC,OAAO,EAAE,sBAAsB;IAInC,QAAQ,IAAI,IAAI;CACxB"}
@@ -0,0 +1,14 @@
1
+ import { Claim, SyncActivity } from '@t4h.framework/core';
2
+ import { SftpClaim } from '../models/SftpClaim.js';
3
+ const CLAIMS_KEY = Symbol('sftp-chmod-activity-claims');
4
+ export class SftpChmodActivity extends SyncActivity {
5
+ [CLAIMS_KEY] = new Claim({ sftp: SftpClaim });
6
+ toInput(sftp, path, mode) {
7
+ return { connectionString: sftp.connectionString, path, mode };
8
+ }
9
+ run(payload) {
10
+ return this[CLAIMS_KEY].sftp.chmod(payload);
11
+ }
12
+ toOutput() { }
13
+ }
14
+ //# sourceMappingURL=SftpChmodActivity.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SftpChmodActivity.js","sourceRoot":"","sources":["../../src/activities/SftpChmodActivity.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAA;AAGzD,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAA;AAQlD,MAAM,UAAU,GAAG,MAAM,CAAC,4BAA4B,CAAC,CAAA;AAEvD,MAAM,OAAO,iBAAkB,SAAQ,YAKtC;IACkB,CAAC,UAAU,CAAC,GAAG,IAAI,KAAK,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAA;IAEvD,OAAO,CACZ,IAAU,EACV,IAAY,EACZ,IAAqB;QAErB,OAAO,EAAE,gBAAgB,EAAE,IAAI,CAAC,gBAAgB,EAAE,IAAI,EAAE,IAAI,EAAE,CAAA;IAChE,CAAC;IAEM,GAAG,CAAC,OAA+B;QACxC,OAAO,IAAI,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;IAC7C,CAAC;IAEM,QAAQ,KAAU,CAAC;CAC3B"}
@@ -0,0 +1,16 @@
1
+ import { SyncActivity } from '@t4h.framework/core';
2
+ import type { Sftp } from '../models/Sftp.js';
3
+ export type SftpCopyActivityInput = {
4
+ connectionString: string;
5
+ srcPath: string;
6
+ destPath: string;
7
+ };
8
+ declare const CLAIMS_KEY: unique symbol;
9
+ export declare class SftpCopyActivity extends SyncActivity<readonly [sftp: Sftp, srcPath: string, destPath: string], SftpCopyActivityInput, void, void> {
10
+ private readonly [CLAIMS_KEY];
11
+ toInput(sftp: Sftp, srcPath: string, destPath: string): SftpCopyActivityInput;
12
+ run(payload: SftpCopyActivityInput): void | Promise<void>;
13
+ toOutput(): void;
14
+ }
15
+ export {};
16
+ //# sourceMappingURL=SftpCopyActivity.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SftpCopyActivity.d.ts","sourceRoot":"","sources":["../../src/activities/SftpCopyActivity.ts"],"names":[],"mappings":"AAAA,OAAO,EAAS,YAAY,EAAE,MAAM,qBAAqB,CAAA;AAEzD,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAA;AAG7C,MAAM,MAAM,qBAAqB,GAAG;IAClC,gBAAgB,EAAE,MAAM,CAAA;IACxB,OAAO,EAAE,MAAM,CAAA;IACf,QAAQ,EAAE,MAAM,CAAA;CACjB,CAAA;AAED,QAAA,MAAM,UAAU,eAAsC,CAAA;AAEtD,qBAAa,gBAAiB,SAAQ,YAAY,CAChD,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,CAAC,EACxD,qBAAqB,EACrB,IAAI,EACJ,IAAI,CACL;IACC,OAAO,CAAC,QAAQ,CAAC,CAAC,UAAU,CAAC,CAAiC;IAEvD,OAAO,CACZ,IAAI,EAAE,IAAI,EACV,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,GACf,qBAAqB;IAIjB,GAAG,CAAC,OAAO,EAAE,qBAAqB;IAIlC,QAAQ,IAAI,IAAI;CACxB"}
@@ -0,0 +1,14 @@
1
+ import { Claim, SyncActivity } from '@t4h.framework/core';
2
+ import { SftpClaim } from '../models/SftpClaim.js';
3
+ const CLAIMS_KEY = Symbol('sftp-copy-activity-claims');
4
+ export class SftpCopyActivity extends SyncActivity {
5
+ [CLAIMS_KEY] = new Claim({ sftp: SftpClaim });
6
+ toInput(sftp, srcPath, destPath) {
7
+ return { connectionString: sftp.connectionString, srcPath, destPath };
8
+ }
9
+ run(payload) {
10
+ return this[CLAIMS_KEY].sftp.copy(payload);
11
+ }
12
+ toOutput() { }
13
+ }
14
+ //# sourceMappingURL=SftpCopyActivity.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SftpCopyActivity.js","sourceRoot":"","sources":["../../src/activities/SftpCopyActivity.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAA;AAGzD,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAA;AAQlD,MAAM,UAAU,GAAG,MAAM,CAAC,2BAA2B,CAAC,CAAA;AAEtD,MAAM,OAAO,gBAAiB,SAAQ,YAKrC;IACkB,CAAC,UAAU,CAAC,GAAG,IAAI,KAAK,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAA;IAEvD,OAAO,CACZ,IAAU,EACV,OAAe,EACf,QAAgB;QAEhB,OAAO,EAAE,gBAAgB,EAAE,IAAI,CAAC,gBAAgB,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAA;IACvE,CAAC;IAEM,GAAG,CAAC,OAA8B;QACvC,OAAO,IAAI,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;IAC5C,CAAC;IAEM,QAAQ,KAAU,CAAC;CAC3B"}
@@ -0,0 +1,14 @@
1
+ import { SyncActivity } from '@t4h.framework/core';
2
+ import type { Sftp } from '../models/Sftp.js';
3
+ export type SftpCwdActivityInput = {
4
+ connectionString: string;
5
+ };
6
+ declare const CLAIMS_KEY: unique symbol;
7
+ export declare class SftpCwdActivity extends SyncActivity<readonly [sftp: Sftp], SftpCwdActivityInput, string, string> {
8
+ private readonly [CLAIMS_KEY];
9
+ toInput(sftp: Sftp): SftpCwdActivityInput;
10
+ run(payload: SftpCwdActivityInput): string | Promise<string>;
11
+ toOutput(output: string): string;
12
+ }
13
+ export {};
14
+ //# sourceMappingURL=SftpCwdActivity.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SftpCwdActivity.d.ts","sourceRoot":"","sources":["../../src/activities/SftpCwdActivity.ts"],"names":[],"mappings":"AAAA,OAAO,EAAS,YAAY,EAAE,MAAM,qBAAqB,CAAA;AAEzD,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAA;AAG7C,MAAM,MAAM,oBAAoB,GAAG;IACjC,gBAAgB,EAAE,MAAM,CAAA;CACzB,CAAA;AAED,QAAA,MAAM,UAAU,eAAqC,CAAA;AAErD,qBAAa,eAAgB,SAAQ,YAAY,CAC/C,SAAS,CAAC,IAAI,EAAE,IAAI,CAAC,EACrB,oBAAoB,EACpB,MAAM,EACN,MAAM,CACP;IACC,OAAO,CAAC,QAAQ,CAAC,CAAC,UAAU,CAAC,CAAiC;IAEvD,OAAO,CAAC,IAAI,EAAE,IAAI,GAAG,oBAAoB;IAIzC,GAAG,CAAC,OAAO,EAAE,oBAAoB;IAIjC,QAAQ,CAAC,MAAM,EAAE,MAAM;CAG/B"}
@@ -0,0 +1,16 @@
1
+ import { Claim, SyncActivity } from '@t4h.framework/core';
2
+ import { SftpClaim } from '../models/SftpClaim.js';
3
+ const CLAIMS_KEY = Symbol('sftp-cwd-activity-claims');
4
+ export class SftpCwdActivity extends SyncActivity {
5
+ [CLAIMS_KEY] = new Claim({ sftp: SftpClaim });
6
+ toInput(sftp) {
7
+ return { connectionString: sftp.connectionString };
8
+ }
9
+ run(payload) {
10
+ return this[CLAIMS_KEY].sftp.cwd(payload);
11
+ }
12
+ toOutput(output) {
13
+ return output;
14
+ }
15
+ }
16
+ //# sourceMappingURL=SftpCwdActivity.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SftpCwdActivity.js","sourceRoot":"","sources":["../../src/activities/SftpCwdActivity.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAA;AAGzD,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAA;AAMlD,MAAM,UAAU,GAAG,MAAM,CAAC,0BAA0B,CAAC,CAAA;AAErD,MAAM,OAAO,eAAgB,SAAQ,YAKpC;IACkB,CAAC,UAAU,CAAC,GAAG,IAAI,KAAK,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAA;IAEvD,OAAO,CAAC,IAAU;QACvB,OAAO,EAAE,gBAAgB,EAAE,IAAI,CAAC,gBAAgB,EAAE,CAAA;IACpD,CAAC;IAEM,GAAG,CAAC,OAA6B;QACtC,OAAO,IAAI,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;IAC3C,CAAC;IAEM,QAAQ,CAAC,MAAc;QAC5B,OAAO,MAAM,CAAA;IACf,CAAC;CACF"}
@@ -0,0 +1,16 @@
1
+ import { SyncActivity } from '@t4h.framework/core';
2
+ import type { Sftp } from '../models/Sftp.js';
3
+ export type SftpDeleteActivityInput = {
4
+ connectionString: string;
5
+ path: string;
6
+ noErrorOK?: boolean;
7
+ };
8
+ declare const CLAIMS_KEY: unique symbol;
9
+ export declare class SftpDeleteActivity extends SyncActivity<readonly [sftp: Sftp, path: string, noErrorOK?: boolean], SftpDeleteActivityInput, void, void> {
10
+ private readonly [CLAIMS_KEY];
11
+ toInput(sftp: Sftp, path: string, noErrorOK?: boolean): SftpDeleteActivityInput;
12
+ run(payload: SftpDeleteActivityInput): void | Promise<void>;
13
+ toOutput(): void;
14
+ }
15
+ export {};
16
+ //# sourceMappingURL=SftpDeleteActivity.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SftpDeleteActivity.d.ts","sourceRoot":"","sources":["../../src/activities/SftpDeleteActivity.ts"],"names":[],"mappings":"AAAA,OAAO,EAAS,YAAY,EAAE,MAAM,qBAAqB,CAAA;AAEzD,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAA;AAG7C,MAAM,MAAM,uBAAuB,GAAG;IACpC,gBAAgB,EAAE,MAAM,CAAA;IACxB,IAAI,EAAE,MAAM,CAAA;IACZ,SAAS,CAAC,EAAE,OAAO,CAAA;CACpB,CAAA;AAED,QAAA,MAAM,UAAU,eAAwC,CAAA;AAExD,qBAAa,kBAAmB,SAAQ,YAAY,CAClD,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,OAAO,CAAC,EACxD,uBAAuB,EACvB,IAAI,EACJ,IAAI,CACL;IACC,OAAO,CAAC,QAAQ,CAAC,CAAC,UAAU,CAAC,CAAiC;IAEvD,OAAO,CACZ,IAAI,EAAE,IAAI,EACV,IAAI,EAAE,MAAM,EACZ,SAAS,CAAC,EAAE,OAAO,GAClB,uBAAuB;IAInB,GAAG,CAAC,OAAO,EAAE,uBAAuB;IAIpC,QAAQ,IAAI,IAAI;CACxB"}
@@ -0,0 +1,14 @@
1
+ import { Claim, SyncActivity } from '@t4h.framework/core';
2
+ import { SftpClaim } from '../models/SftpClaim.js';
3
+ const CLAIMS_KEY = Symbol('sftp-delete-activity-claims');
4
+ export class SftpDeleteActivity extends SyncActivity {
5
+ [CLAIMS_KEY] = new Claim({ sftp: SftpClaim });
6
+ toInput(sftp, path, noErrorOK) {
7
+ return { connectionString: sftp.connectionString, path, noErrorOK };
8
+ }
9
+ run(payload) {
10
+ return this[CLAIMS_KEY].sftp.delete(payload);
11
+ }
12
+ toOutput() { }
13
+ }
14
+ //# sourceMappingURL=SftpDeleteActivity.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SftpDeleteActivity.js","sourceRoot":"","sources":["../../src/activities/SftpDeleteActivity.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAA;AAGzD,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAA;AAQlD,MAAM,UAAU,GAAG,MAAM,CAAC,6BAA6B,CAAC,CAAA;AAExD,MAAM,OAAO,kBAAmB,SAAQ,YAKvC;IACkB,CAAC,UAAU,CAAC,GAAG,IAAI,KAAK,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAA;IAEvD,OAAO,CACZ,IAAU,EACV,IAAY,EACZ,SAAmB;QAEnB,OAAO,EAAE,gBAAgB,EAAE,IAAI,CAAC,gBAAgB,EAAE,IAAI,EAAE,SAAS,EAAE,CAAA;IACrE,CAAC;IAEM,GAAG,CAAC,OAAgC;QACzC,OAAO,IAAI,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;IAC9C,CAAC;IAEM,QAAQ,KAAU,CAAC;CAC3B"}
@@ -0,0 +1,15 @@
1
+ import { Binary, SyncActivity } from '@t4h.framework/core';
2
+ import type { Sftp } from '../models/Sftp.js';
3
+ export type SftpDownloadDirActivityInput = {
4
+ connectionString: string;
5
+ path: string;
6
+ };
7
+ declare const CLAIMS_KEY: unique symbol;
8
+ export declare class SftpDownloadDirActivity extends SyncActivity<readonly [sftp: Sftp, path: string], SftpDownloadDirActivityInput, Binary, Binary> {
9
+ private readonly [CLAIMS_KEY];
10
+ toInput(sftp: Sftp, path: string): SftpDownloadDirActivityInput;
11
+ run(payload: SftpDownloadDirActivityInput): Binary | Promise<Binary>;
12
+ toOutput(binary: Binary): Binary;
13
+ }
14
+ export {};
15
+ //# sourceMappingURL=SftpDownloadDirActivity.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SftpDownloadDirActivity.d.ts","sourceRoot":"","sources":["../../src/activities/SftpDownloadDirActivity.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAS,YAAY,EAAE,MAAM,qBAAqB,CAAA;AAEjE,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAA;AAG7C,MAAM,MAAM,4BAA4B,GAAG;IACzC,gBAAgB,EAAE,MAAM,CAAA;IACxB,IAAI,EAAE,MAAM,CAAA;CACb,CAAA;AAED,QAAA,MAAM,UAAU,eAA8C,CAAA;AAE9D,qBAAa,uBAAwB,SAAQ,YAAY,CACvD,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,EACnC,4BAA4B,EAC5B,MAAM,EACN,MAAM,CACP;IACC,OAAO,CAAC,QAAQ,CAAC,CAAC,UAAU,CAAC,CAAiC;IAEvD,OAAO,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,GAAG,4BAA4B;IAI/D,GAAG,CAAC,OAAO,EAAE,4BAA4B;IAIzC,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM;CAGxC"}
@@ -0,0 +1,16 @@
1
+ import { Binary, Claim, SyncActivity } from '@t4h.framework/core';
2
+ import { SftpClaim } from '../models/SftpClaim.js';
3
+ const CLAIMS_KEY = Symbol('sftp-download-dir-activity-claims');
4
+ export class SftpDownloadDirActivity extends SyncActivity {
5
+ [CLAIMS_KEY] = new Claim({ sftp: SftpClaim });
6
+ toInput(sftp, path) {
7
+ return { connectionString: sftp.connectionString, path };
8
+ }
9
+ run(payload) {
10
+ return this[CLAIMS_KEY].sftp.downloadDir(payload);
11
+ }
12
+ toOutput(binary) {
13
+ return binary;
14
+ }
15
+ }
16
+ //# sourceMappingURL=SftpDownloadDirActivity.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SftpDownloadDirActivity.js","sourceRoot":"","sources":["../../src/activities/SftpDownloadDirActivity.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAA;AAGjE,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAA;AAOlD,MAAM,UAAU,GAAG,MAAM,CAAC,mCAAmC,CAAC,CAAA;AAE9D,MAAM,OAAO,uBAAwB,SAAQ,YAK5C;IACkB,CAAC,UAAU,CAAC,GAAG,IAAI,KAAK,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAA;IAEvD,OAAO,CAAC,IAAU,EAAE,IAAY;QACrC,OAAO,EAAE,gBAAgB,EAAE,IAAI,CAAC,gBAAgB,EAAE,IAAI,EAAE,CAAA;IAC1D,CAAC;IAEM,GAAG,CAAC,OAAqC;QAC9C,OAAO,IAAI,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAA;IACnD,CAAC;IAEM,QAAQ,CAAC,MAAc;QAC5B,OAAO,MAAM,CAAA;IACf,CAAC;CACF"}
@@ -0,0 +1,16 @@
1
+ import { SyncActivity } from '@t4h.framework/core';
2
+ import type { Sftp } from '../models/Sftp.js';
3
+ export type SftpExistsResult = false | 'd' | '-' | 'l';
4
+ export type SftpExistsActivityInput = {
5
+ connectionString: string;
6
+ path: string;
7
+ };
8
+ declare const CLAIMS_KEY: unique symbol;
9
+ export declare class SftpExistsActivity extends SyncActivity<readonly [sftp: Sftp, path: string], SftpExistsActivityInput, SftpExistsResult, SftpExistsResult> {
10
+ private readonly [CLAIMS_KEY];
11
+ toInput(sftp: Sftp, path: string): SftpExistsActivityInput;
12
+ run(payload: SftpExistsActivityInput): SftpExistsResult | Promise<SftpExistsResult>;
13
+ toOutput(output: SftpExistsResult): SftpExistsResult;
14
+ }
15
+ export {};
16
+ //# sourceMappingURL=SftpExistsActivity.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SftpExistsActivity.d.ts","sourceRoot":"","sources":["../../src/activities/SftpExistsActivity.ts"],"names":[],"mappings":"AAAA,OAAO,EAAS,YAAY,EAAE,MAAM,qBAAqB,CAAA;AAEzD,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAA;AAG7C,MAAM,MAAM,gBAAgB,GAAG,KAAK,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAA;AAEtD,MAAM,MAAM,uBAAuB,GAAG;IACpC,gBAAgB,EAAE,MAAM,CAAA;IACxB,IAAI,EAAE,MAAM,CAAA;CACb,CAAA;AAED,QAAA,MAAM,UAAU,eAAwC,CAAA;AAExD,qBAAa,kBAAmB,SAAQ,YAAY,CAClD,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,EACnC,uBAAuB,EACvB,gBAAgB,EAChB,gBAAgB,CACjB;IACC,OAAO,CAAC,QAAQ,CAAC,CAAC,UAAU,CAAC,CAAiC;IAEvD,OAAO,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,GAAG,uBAAuB;IAI1D,GAAG,CAAC,OAAO,EAAE,uBAAuB;IAIpC,QAAQ,CAAC,MAAM,EAAE,gBAAgB;CAGzC"}
@@ -0,0 +1,16 @@
1
+ import { Claim, SyncActivity } from '@t4h.framework/core';
2
+ import { SftpClaim } from '../models/SftpClaim.js';
3
+ const CLAIMS_KEY = Symbol('sftp-exists-activity-claims');
4
+ export class SftpExistsActivity extends SyncActivity {
5
+ [CLAIMS_KEY] = new Claim({ sftp: SftpClaim });
6
+ toInput(sftp, path) {
7
+ return { connectionString: sftp.connectionString, path };
8
+ }
9
+ run(payload) {
10
+ return this[CLAIMS_KEY].sftp.exists(payload);
11
+ }
12
+ toOutput(output) {
13
+ return output;
14
+ }
15
+ }
16
+ //# sourceMappingURL=SftpExistsActivity.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SftpExistsActivity.js","sourceRoot":"","sources":["../../src/activities/SftpExistsActivity.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAA;AAGzD,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAA;AASlD,MAAM,UAAU,GAAG,MAAM,CAAC,6BAA6B,CAAC,CAAA;AAExD,MAAM,OAAO,kBAAmB,SAAQ,YAKvC;IACkB,CAAC,UAAU,CAAC,GAAG,IAAI,KAAK,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAA;IAEvD,OAAO,CAAC,IAAU,EAAE,IAAY;QACrC,OAAO,EAAE,gBAAgB,EAAE,IAAI,CAAC,gBAAgB,EAAE,IAAI,EAAE,CAAA;IAC1D,CAAC;IAEM,GAAG,CAAC,OAAgC;QACzC,OAAO,IAAI,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;IAC9C,CAAC;IAEM,QAAQ,CAAC,MAAwB;QACtC,OAAO,MAAM,CAAA;IACf,CAAC;CACF"}
@@ -0,0 +1,15 @@
1
+ import { Binary, SyncActivity } from '@t4h.framework/core';
2
+ import type { Sftp } from '../models/Sftp.js';
3
+ export type SftpGetActivityInput = {
4
+ connectionString: string;
5
+ filepath: string;
6
+ };
7
+ declare const CLAIMS_KEY: unique symbol;
8
+ export declare class SftpGetActivity extends SyncActivity<readonly [sftp: Sftp, filepath: string], SftpGetActivityInput, Binary, Binary> {
9
+ private readonly [CLAIMS_KEY];
10
+ toInput(sftp: Sftp, filepath: string): SftpGetActivityInput;
11
+ run(payload: SftpGetActivityInput): Binary | Promise<Binary>;
12
+ toOutput(output: Binary): Binary;
13
+ }
14
+ export {};
15
+ //# sourceMappingURL=SftpGetActivity.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SftpGetActivity.d.ts","sourceRoot":"","sources":["../../src/activities/SftpGetActivity.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAS,YAAY,EAAE,MAAM,qBAAqB,CAAA;AAEjE,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAA;AAG7C,MAAM,MAAM,oBAAoB,GAAG;IACjC,gBAAgB,EAAE,MAAM,CAAA;IACxB,QAAQ,EAAE,MAAM,CAAA;CACjB,CAAA;AAED,QAAA,MAAM,UAAU,eAAqC,CAAA;AAErD,qBAAa,eAAgB,SAAQ,YAAY,CAC/C,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,CAAC,EACvC,oBAAoB,EACpB,MAAM,EACN,MAAM,CACP;IACC,OAAO,CAAC,QAAQ,CAAC,CAAC,UAAU,CAAC,CAAiC;IAEvD,OAAO,CAAC,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,GAAG,oBAAoB;IAI3D,GAAG,CAAC,OAAO,EAAE,oBAAoB;IAIjC,QAAQ,CAAC,MAAM,EAAE,MAAM;CAG/B"}
@@ -0,0 +1,16 @@
1
+ import { Binary, Claim, SyncActivity } from '@t4h.framework/core';
2
+ import { SftpClaim } from '../models/SftpClaim.js';
3
+ const CLAIMS_KEY = Symbol('sftp-get-activity-claims');
4
+ export class SftpGetActivity extends SyncActivity {
5
+ [CLAIMS_KEY] = new Claim({ sftp: SftpClaim });
6
+ toInput(sftp, filepath) {
7
+ return { connectionString: sftp.connectionString, filepath };
8
+ }
9
+ run(payload) {
10
+ return this[CLAIMS_KEY].sftp.get(payload);
11
+ }
12
+ toOutput(output) {
13
+ return output;
14
+ }
15
+ }
16
+ //# sourceMappingURL=SftpGetActivity.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SftpGetActivity.js","sourceRoot":"","sources":["../../src/activities/SftpGetActivity.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAA;AAGjE,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAA;AAOlD,MAAM,UAAU,GAAG,MAAM,CAAC,0BAA0B,CAAC,CAAA;AAErD,MAAM,OAAO,eAAgB,SAAQ,YAKpC;IACkB,CAAC,UAAU,CAAC,GAAG,IAAI,KAAK,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAA;IAEvD,OAAO,CAAC,IAAU,EAAE,QAAgB;QACzC,OAAO,EAAE,gBAAgB,EAAE,IAAI,CAAC,gBAAgB,EAAE,QAAQ,EAAE,CAAA;IAC9D,CAAC;IAEM,GAAG,CAAC,OAA6B;QACtC,OAAO,IAAI,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;IAC3C,CAAC;IAEM,QAAQ,CAAC,MAAc;QAC5B,OAAO,MAAM,CAAA;IACf,CAAC;CACF"}
@@ -0,0 +1,30 @@
1
+ import { SyncActivity } from '@t4h.framework/core';
2
+ import type { Sftp } from '../models/Sftp.js';
3
+ export type SftpFileInfo = {
4
+ name: string;
5
+ type: 'd' | '-' | 'l';
6
+ size: number;
7
+ modifyTime: number;
8
+ accessTime: number;
9
+ rights: {
10
+ user: string;
11
+ group: string;
12
+ other: string;
13
+ };
14
+ owner: number;
15
+ group: number;
16
+ longname: string;
17
+ };
18
+ export type SftpListActivityInput = {
19
+ connectionString: string;
20
+ path: string;
21
+ };
22
+ declare const CLAIMS_KEY: unique symbol;
23
+ export declare class SftpListActivity extends SyncActivity<readonly [sftp: Sftp, path: string], SftpListActivityInput, SftpFileInfo[], SftpFileInfo[]> {
24
+ private readonly [CLAIMS_KEY];
25
+ toInput(sftp: Sftp, path: string): SftpListActivityInput;
26
+ run(payload: SftpListActivityInput): SftpFileInfo[] | Promise<SftpFileInfo[]>;
27
+ toOutput(list: SftpFileInfo[]): SftpFileInfo[];
28
+ }
29
+ export {};
30
+ //# sourceMappingURL=SftpListActivity.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SftpListActivity.d.ts","sourceRoot":"","sources":["../../src/activities/SftpListActivity.ts"],"names":[],"mappings":"AAAA,OAAO,EAAS,YAAY,EAAE,MAAM,qBAAqB,CAAA;AAEzD,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAA;AAG7C,MAAM,MAAM,YAAY,GAAG;IACzB,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,CAAA;IACrB,IAAI,EAAE,MAAM,CAAA;IACZ,UAAU,EAAE,MAAM,CAAA;IAClB,UAAU,EAAE,MAAM,CAAA;IAClB,MAAM,EAAE;QACN,IAAI,EAAE,MAAM,CAAA;QACZ,KAAK,EAAE,MAAM,CAAA;QACb,KAAK,EAAE,MAAM,CAAA;KACd,CAAA;IACD,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,MAAM,CAAA;IACb,QAAQ,EAAE,MAAM,CAAA;CACjB,CAAA;AAED,MAAM,MAAM,qBAAqB,GAAG;IAClC,gBAAgB,EAAE,MAAM,CAAA;IACxB,IAAI,EAAE,MAAM,CAAA;CACb,CAAA;AAED,QAAA,MAAM,UAAU,eAAsC,CAAA;AAEtD,qBAAa,gBAAiB,SAAQ,YAAY,CAChD,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,EACnC,qBAAqB,EACrB,YAAY,EAAE,EACd,YAAY,EAAE,CACf;IACC,OAAO,CAAC,QAAQ,CAAC,CAAC,UAAU,CAAC,CAAiC;IAEvD,OAAO,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,GAAG,qBAAqB;IAIxD,GAAG,CAAC,OAAO,EAAE,qBAAqB;IAIlC,QAAQ,CAAC,IAAI,EAAE,YAAY,EAAE;CAGrC"}