recker 1.0.15 → 1.0.17-next.9570ed5
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/README.md +86 -97
- package/dist/ai/providers/anthropic.d.ts.map +1 -1
- package/dist/ai/providers/anthropic.js +4 -1
- package/dist/ai/providers/base.d.ts.map +1 -1
- package/dist/ai/providers/base.js +7 -2
- package/dist/ai/rate-limiter.d.ts.map +1 -1
- package/dist/ai/rate-limiter.js +4 -1
- package/dist/bench/generator.d.ts.map +1 -1
- package/dist/bench/generator.js +8 -3
- package/dist/bench/stats.d.ts +15 -1
- package/dist/bench/stats.d.ts.map +1 -1
- package/dist/bench/stats.js +117 -5
- package/dist/cache/memory-storage.d.ts.map +1 -1
- package/dist/cache/memory-storage.js +3 -2
- package/dist/cli/handler.js +14 -14
- package/dist/cli/index.js +602 -48
- package/dist/cli/presets.js +5 -5
- package/dist/cli/tui/ai-chat.js +10 -10
- package/dist/cli/tui/load-dashboard.d.ts.map +1 -1
- package/dist/cli/tui/load-dashboard.js +127 -32
- package/dist/cli/tui/scroll-buffer.d.ts +43 -0
- package/dist/cli/tui/scroll-buffer.d.ts.map +1 -0
- package/dist/cli/tui/scroll-buffer.js +162 -0
- package/dist/cli/tui/search-panel.d.ts +41 -0
- package/dist/cli/tui/search-panel.d.ts.map +1 -0
- package/dist/cli/tui/search-panel.js +420 -0
- package/dist/cli/tui/shell.d.ts +14 -0
- package/dist/cli/tui/shell.d.ts.map +1 -1
- package/dist/cli/tui/shell.js +424 -46
- package/dist/cli/tui/websocket.js +17 -17
- package/dist/contract/index.d.ts.map +1 -1
- package/dist/contract/index.js +3 -2
- package/dist/core/client.d.ts.map +1 -1
- package/dist/core/client.js +18 -26
- package/dist/core/errors.d.ts +109 -1
- package/dist/core/errors.d.ts.map +1 -1
- package/dist/core/errors.js +214 -1
- package/dist/core/request-promise.d.ts.map +1 -1
- package/dist/core/request-promise.js +5 -6
- package/dist/core/response.d.ts.map +1 -1
- package/dist/core/response.js +5 -6
- package/dist/dns/index.d.ts +1 -0
- package/dist/dns/index.d.ts.map +1 -1
- package/dist/dns/index.js +1 -0
- package/dist/dns/propagation.d.ts +21 -0
- package/dist/dns/propagation.d.ts.map +1 -0
- package/dist/dns/propagation.js +169 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -0
- package/dist/mcp/client.d.ts.map +1 -1
- package/dist/mcp/client.js +10 -11
- package/dist/mcp/embeddings-loader.d.ts +18 -0
- package/dist/mcp/embeddings-loader.d.ts.map +1 -0
- package/dist/mcp/embeddings-loader.js +162 -0
- package/dist/mcp/geoip-loader.d.ts +11 -0
- package/dist/mcp/geoip-loader.d.ts.map +1 -0
- package/dist/mcp/geoip-loader.js +107 -0
- package/dist/mcp/index.d.ts +1 -0
- package/dist/mcp/index.d.ts.map +1 -1
- package/dist/mcp/index.js +1 -0
- package/dist/mcp/ip-intel.d.ts +28 -0
- package/dist/mcp/ip-intel.d.ts.map +1 -0
- package/dist/mcp/ip-intel.js +209 -0
- package/dist/mcp/search/hybrid-search.d.ts.map +1 -1
- package/dist/mcp/search/hybrid-search.js +59 -38
- package/dist/mcp/search/math.d.ts.map +1 -1
- package/dist/mcp/search/math.js +5 -1
- package/dist/mcp/server.d.ts +6 -0
- package/dist/mcp/server.d.ts.map +1 -1
- package/dist/mcp/server.js +122 -2
- package/dist/plugins/compression.js +4 -2
- package/dist/plugins/har-player.d.ts.map +1 -1
- package/dist/plugins/har-player.js +8 -11
- package/dist/plugins/odata.d.ts.map +1 -1
- package/dist/plugins/odata.js +5 -2
- package/dist/presets/index.d.ts +2 -0
- package/dist/presets/index.d.ts.map +1 -1
- package/dist/presets/index.js +2 -0
- package/dist/presets/mailgun.d.ts +8 -0
- package/dist/presets/mailgun.d.ts.map +1 -0
- package/dist/presets/mailgun.js +20 -0
- package/dist/presets/registry.d.ts.map +1 -1
- package/dist/presets/registry.js +20 -0
- package/dist/presets/sinch.d.ts +10 -0
- package/dist/presets/sinch.d.ts.map +1 -0
- package/dist/presets/sinch.js +39 -0
- package/dist/protocols/ftp.d.ts.map +1 -1
- package/dist/protocols/ftp.js +69 -16
- package/dist/protocols/sftp.d.ts.map +1 -1
- package/dist/protocols/sftp.js +13 -3
- package/dist/protocols/telnet.d.ts.map +1 -1
- package/dist/protocols/telnet.js +25 -6
- package/dist/recker.d.ts +47 -0
- package/dist/recker.d.ts.map +1 -0
- package/dist/recker.js +99 -0
- package/dist/transport/base-udp.d.ts.map +1 -1
- package/dist/transport/base-udp.js +7 -4
- package/dist/transport/udp-response.d.ts.map +1 -1
- package/dist/transport/udp-response.js +10 -3
- package/dist/transport/udp.d.ts.map +1 -1
- package/dist/transport/udp.js +5 -1
- package/dist/transport/undici.d.ts.map +1 -1
- package/dist/transport/undici.js +75 -63
- package/dist/utils/agent-manager.d.ts +1 -0
- package/dist/utils/agent-manager.d.ts.map +1 -1
- package/dist/utils/agent-manager.js +11 -0
- package/dist/utils/client-pool.d.ts.map +1 -1
- package/dist/utils/client-pool.js +4 -1
- package/dist/utils/colors.d.ts +16 -0
- package/dist/utils/colors.d.ts.map +1 -1
- package/dist/utils/colors.js +16 -0
- package/dist/utils/dns-toolkit.d.ts +88 -1
- package/dist/utils/dns-toolkit.d.ts.map +1 -1
- package/dist/utils/dns-toolkit.js +704 -6
- package/dist/utils/doh.d.ts.map +1 -1
- package/dist/utils/doh.js +13 -16
- package/dist/utils/download.d.ts.map +1 -1
- package/dist/utils/download.js +10 -11
- package/dist/utils/rdap.d.ts +9 -0
- package/dist/utils/rdap.d.ts.map +1 -1
- package/dist/utils/rdap.js +78 -9
- package/dist/utils/security-grader.d.ts +47 -0
- package/dist/utils/security-grader.d.ts.map +1 -0
- package/dist/utils/security-grader.js +637 -0
- package/dist/utils/sparkline.d.ts +18 -0
- package/dist/utils/sparkline.d.ts.map +1 -0
- package/dist/utils/sparkline.js +55 -0
- package/dist/utils/sse.d.ts.map +1 -1
- package/dist/utils/sse.js +5 -6
- package/dist/utils/system-metrics.d.ts +26 -0
- package/dist/utils/system-metrics.d.ts.map +1 -0
- package/dist/utils/system-metrics.js +81 -0
- package/dist/utils/tls-inspector.d.ts +6 -0
- package/dist/utils/tls-inspector.d.ts.map +1 -1
- package/dist/utils/tls-inspector.js +35 -1
- package/dist/webrtc/index.d.ts.map +1 -1
- package/dist/webrtc/index.js +21 -7
- package/dist/websocket/client.d.ts.map +1 -1
- package/dist/websocket/client.js +13 -16
- package/package.json +4 -3
- package/dist/mcp/data/embeddings.json +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"odata.d.ts","sourceRoot":"","sources":["../../src/plugins/odata.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,KAAK,EAAE,cAAc,EAAkB,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"odata.d.ts","sourceRoot":"","sources":["../../src/plugins/odata.ts"],"names":[],"mappings":"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"}
|
package/dist/plugins/odata.js
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { UnsupportedError, HttpError } from '../core/errors.js';
|
|
1
2
|
export class ODataException extends Error {
|
|
2
3
|
code;
|
|
3
4
|
target;
|
|
@@ -360,7 +361,9 @@ export class ODataClient {
|
|
|
360
361
|
response = await this.client.delete(url, options);
|
|
361
362
|
break;
|
|
362
363
|
default:
|
|
363
|
-
throw new
|
|
364
|
+
throw new UnsupportedError(`Unsupported HTTP method: ${method}`, {
|
|
365
|
+
feature: method,
|
|
366
|
+
});
|
|
364
367
|
}
|
|
365
368
|
return this.handleResponse(response);
|
|
366
369
|
}
|
|
@@ -374,7 +377,7 @@ export class ODataClient {
|
|
|
374
377
|
if (error.error) {
|
|
375
378
|
throw new ODataException(error.error);
|
|
376
379
|
}
|
|
377
|
-
throw new
|
|
380
|
+
throw new HttpError(response);
|
|
378
381
|
}
|
|
379
382
|
return data;
|
|
380
383
|
}
|
package/dist/presets/index.d.ts
CHANGED
|
@@ -20,6 +20,8 @@ export * from './supabase.js';
|
|
|
20
20
|
export * from './digitalocean.js';
|
|
21
21
|
export * from './stripe.js';
|
|
22
22
|
export * from './twilio.js';
|
|
23
|
+
export * from './mailgun.js';
|
|
24
|
+
export * from './sinch.js';
|
|
23
25
|
export * from './linear.js';
|
|
24
26
|
export * from './notion.js';
|
|
25
27
|
export * from './slack.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/presets/index.ts"],"names":[],"mappings":"AACA,cAAc,aAAa,CAAC;AAC5B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,WAAW,CAAC;AAC1B,cAAc,eAAe,CAAC;AAC9B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,kBAAkB,CAAC;AACjC,cAAc,iBAAiB,CAAC;AAChC,cAAc,eAAe,CAAC;AAC9B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,UAAU,CAAC;AACzB,cAAc,mBAAmB,CAAC;AAGlC,cAAc,iBAAiB,CAAC;AAChC,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,mBAAmB,CAAC;AAGlC,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC;AAG7B,cAAc,eAAe,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/presets/index.ts"],"names":[],"mappings":"AACA,cAAc,aAAa,CAAC;AAC5B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,WAAW,CAAC;AAC1B,cAAc,eAAe,CAAC;AAC9B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,kBAAkB,CAAC;AACjC,cAAc,iBAAiB,CAAC;AAChC,cAAc,eAAe,CAAC;AAC9B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,UAAU,CAAC;AACzB,cAAc,mBAAmB,CAAC;AAGlC,cAAc,iBAAiB,CAAC;AAChC,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,mBAAmB,CAAC;AAGlC,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC;AAG7B,cAAc,eAAe,CAAC"}
|
package/dist/presets/index.js
CHANGED
|
@@ -20,6 +20,8 @@ export * from './supabase.js';
|
|
|
20
20
|
export * from './digitalocean.js';
|
|
21
21
|
export * from './stripe.js';
|
|
22
22
|
export * from './twilio.js';
|
|
23
|
+
export * from './mailgun.js';
|
|
24
|
+
export * from './sinch.js';
|
|
23
25
|
export * from './linear.js';
|
|
24
26
|
export * from './notion.js';
|
|
25
27
|
export * from './slack.js';
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { ClientOptions } from '../types/index.js';
|
|
2
|
+
export interface MailgunPresetOptions {
|
|
3
|
+
apiKey: string;
|
|
4
|
+
domain?: string;
|
|
5
|
+
region?: 'us' | 'eu';
|
|
6
|
+
}
|
|
7
|
+
export declare function mailgun(options: MailgunPresetOptions): ClientOptions;
|
|
8
|
+
//# sourceMappingURL=mailgun.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mailgun.d.ts","sourceRoot":"","sources":["../../src/presets/mailgun.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAElD,MAAM,WAAW,oBAAoB;IAInC,MAAM,EAAE,MAAM,CAAC;IAIf,MAAM,CAAC,EAAE,MAAM,CAAC;IAIhB,MAAM,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC;CACtB;AAMD,wBAAgB,OAAO,CAAC,OAAO,EAAE,oBAAoB,GAAG,aAAa,CAoBpE"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
export function mailgun(options) {
|
|
2
|
+
const credentials = Buffer.from(`api:${options.apiKey}`).toString('base64');
|
|
3
|
+
const baseHost = options.region === 'eu' ? 'api.eu.mailgun.net' : 'api.mailgun.net';
|
|
4
|
+
const baseUrl = options.domain
|
|
5
|
+
? `https://${baseHost}/v3/${options.domain}`
|
|
6
|
+
: `https://${baseHost}/v3`;
|
|
7
|
+
return {
|
|
8
|
+
baseUrl,
|
|
9
|
+
headers: {
|
|
10
|
+
'Authorization': `Basic ${credentials}`,
|
|
11
|
+
},
|
|
12
|
+
timeout: 30 * 1000,
|
|
13
|
+
retry: {
|
|
14
|
+
maxAttempts: 3,
|
|
15
|
+
backoff: 'exponential',
|
|
16
|
+
delay: 1000,
|
|
17
|
+
statusCodes: [408, 429, 500, 502, 503, 504]
|
|
18
|
+
}
|
|
19
|
+
};
|
|
20
|
+
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/presets/registry.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/presets/registry.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAmClD,MAAM,MAAM,aAAa,GAAG,CAAC,OAAO,EAAE,GAAG,KAAK,aAAa,CAAC;AAK5D,MAAM,WAAW,UAAU;IAEzB,IAAI,EAAE,MAAM,CAAC;IAEb,WAAW,EAAE,MAAM,CAAC;IAEpB,QAAQ,EAAE,MAAM,EAAE,CAAC;IAEnB,OAAO,EAAE,aAAa,CAAC;IAEvB,QAAQ,EAAE,IAAI,GAAG,OAAO,GAAG,MAAM,GAAG,UAAU,CAAC;IAE/C,YAAY,EAAE,MAAM,EAAE,CAAC;IAEvB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAKD,eAAO,MAAM,cAAc,EAAE,UAAU,EAkRtC,CAAC;AAiBF,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,UAAU,GAAG,SAAS,CAShE;AAQD,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,UAAU,GAAG,SAAS,CAE9D;AAQD,wBAAgB,WAAW,CAAC,QAAQ,CAAC,EAAE,IAAI,GAAG,OAAO,GAAG,MAAM,GAAG,UAAU,GAAG,UAAU,EAAE,CAKzF;AAKD,wBAAgB,aAAa,IAAI,UAAU,EAAE,CAE5C;AAKD,wBAAgB,gBAAgB,IAAI,UAAU,EAAE,CAE/C;AAKD,wBAAgB,eAAe,IAAI,UAAU,EAAE,CAE9C;AAKD,wBAAgB,mBAAmB,IAAI,UAAU,EAAE,CAElD"}
|
package/dist/presets/registry.js
CHANGED
|
@@ -19,6 +19,8 @@ import { vercel } from './vercel.js';
|
|
|
19
19
|
import { supabase } from './supabase.js';
|
|
20
20
|
import { stripe } from './stripe.js';
|
|
21
21
|
import { twilio } from './twilio.js';
|
|
22
|
+
import { mailgun } from './mailgun.js';
|
|
23
|
+
import { sinch } from './sinch.js';
|
|
22
24
|
import { digitalocean } from './digitalocean.js';
|
|
23
25
|
import { linear } from './linear.js';
|
|
24
26
|
import { notion } from './notion.js';
|
|
@@ -232,6 +234,24 @@ export const presetRegistry = [
|
|
|
232
234
|
requiredAuth: ['accountSid', 'authToken'],
|
|
233
235
|
docsUrl: 'https://www.twilio.com/docs/usage/api',
|
|
234
236
|
},
|
|
237
|
+
{
|
|
238
|
+
name: 'mailgun',
|
|
239
|
+
displayName: 'Mailgun',
|
|
240
|
+
patterns: [/api\.mailgun\.net/, /api\.eu\.mailgun\.net/],
|
|
241
|
+
factory: mailgun,
|
|
242
|
+
category: 'saas',
|
|
243
|
+
requiredAuth: ['apiKey'],
|
|
244
|
+
docsUrl: 'https://documentation.mailgun.com/docs/mailgun/api-reference/',
|
|
245
|
+
},
|
|
246
|
+
{
|
|
247
|
+
name: 'sinch',
|
|
248
|
+
displayName: 'Sinch',
|
|
249
|
+
patterns: [/\.api\.sinch\.com/, /sms\.api\.sinch\.com/, /calling\.api\.sinch\.com/],
|
|
250
|
+
factory: sinch,
|
|
251
|
+
category: 'saas',
|
|
252
|
+
requiredAuth: ['projectId', 'keyId', 'keySecret'],
|
|
253
|
+
docsUrl: 'https://developers.sinch.com/docs/',
|
|
254
|
+
},
|
|
235
255
|
{
|
|
236
256
|
name: 'digitalocean',
|
|
237
257
|
displayName: 'DigitalOcean',
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { ClientOptions } from '../types/index.js';
|
|
2
|
+
export interface SinchPresetOptions {
|
|
3
|
+
projectId: string;
|
|
4
|
+
keyId: string;
|
|
5
|
+
keySecret: string;
|
|
6
|
+
product?: 'sms' | 'voice' | 'conversation' | 'numbers' | 'verification';
|
|
7
|
+
region?: 'us' | 'eu' | 'au' | 'br' | 'ca';
|
|
8
|
+
}
|
|
9
|
+
export declare function sinch(options: SinchPresetOptions): ClientOptions;
|
|
10
|
+
//# sourceMappingURL=sinch.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sinch.d.ts","sourceRoot":"","sources":["../../src/presets/sinch.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAElD,MAAM,WAAW,kBAAkB;IAIjC,SAAS,EAAE,MAAM,CAAC;IAIlB,KAAK,EAAE,MAAM,CAAC;IAId,SAAS,EAAE,MAAM,CAAC;IAKlB,OAAO,CAAC,EAAE,KAAK,GAAG,OAAO,GAAG,cAAc,GAAG,SAAS,GAAG,cAAc,CAAC;IAKxE,MAAM,CAAC,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;CAC3C;AAqBD,wBAAgB,KAAK,CAAC,OAAO,EAAE,kBAAkB,GAAG,aAAa,CA0BhE"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
const SMS_REGIONS = {
|
|
2
|
+
us: 'https://us.sms.api.sinch.com',
|
|
3
|
+
eu: 'https://eu.sms.api.sinch.com',
|
|
4
|
+
au: 'https://au.sms.api.sinch.com',
|
|
5
|
+
br: 'https://br.sms.api.sinch.com',
|
|
6
|
+
ca: 'https://ca.sms.api.sinch.com',
|
|
7
|
+
};
|
|
8
|
+
const PRODUCT_URLS = {
|
|
9
|
+
voice: 'https://calling.api.sinch.com',
|
|
10
|
+
conversation: 'https://us.conversation.api.sinch.com',
|
|
11
|
+
numbers: 'https://numbers.api.sinch.com',
|
|
12
|
+
verification: 'https://verification.api.sinch.com',
|
|
13
|
+
};
|
|
14
|
+
export function sinch(options) {
|
|
15
|
+
const credentials = Buffer.from(`${options.keyId}:${options.keySecret}`).toString('base64');
|
|
16
|
+
const product = options.product ?? 'sms';
|
|
17
|
+
const region = options.region ?? 'us';
|
|
18
|
+
let baseUrl;
|
|
19
|
+
if (product === 'sms') {
|
|
20
|
+
baseUrl = `${SMS_REGIONS[region]}/xms/v1/${options.projectId}`;
|
|
21
|
+
}
|
|
22
|
+
else {
|
|
23
|
+
baseUrl = `${PRODUCT_URLS[product]}/v1/projects/${options.projectId}`;
|
|
24
|
+
}
|
|
25
|
+
return {
|
|
26
|
+
baseUrl,
|
|
27
|
+
headers: {
|
|
28
|
+
'Authorization': `Basic ${credentials}`,
|
|
29
|
+
'Content-Type': 'application/json',
|
|
30
|
+
},
|
|
31
|
+
timeout: 30 * 1000,
|
|
32
|
+
retry: {
|
|
33
|
+
maxAttempts: 3,
|
|
34
|
+
backoff: 'exponential',
|
|
35
|
+
delay: 1000,
|
|
36
|
+
statusCodes: [408, 429, 500, 502, 503, 504]
|
|
37
|
+
}
|
|
38
|
+
};
|
|
39
|
+
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ftp.d.ts","sourceRoot":"","sources":["../../src/protocols/ftp.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,SAAS,EAAyB,KAAK,iBAAiB,EAAE,MAAM,UAAU,CAAC;AACpF,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAEjD,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"ftp.d.ts","sourceRoot":"","sources":["../../src/protocols/ftp.ts"],"names":[],"mappings":"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"}
|
package/dist/protocols/ftp.js
CHANGED
|
@@ -3,6 +3,7 @@ import { connect as tlsConnect } from 'node:tls';
|
|
|
3
3
|
import { Readable, Writable } from 'node:stream';
|
|
4
4
|
import { createWriteStream, createReadStream } from 'node:fs';
|
|
5
5
|
import { EventEmitter } from 'node:events';
|
|
6
|
+
import { ProtocolError, StateError, AuthenticationError, ConnectionError, TimeoutError, ParseError, } from '../core/errors.js';
|
|
6
7
|
const ResponseCode = {
|
|
7
8
|
RESTART_MARKER: 110,
|
|
8
9
|
SERVICE_READY_IN: 120,
|
|
@@ -88,7 +89,11 @@ export class FTP extends EventEmitter {
|
|
|
88
89
|
const welcome = await this.readResponse();
|
|
89
90
|
this.debug('Welcome: %s', welcome.message);
|
|
90
91
|
if (welcome.code !== ResponseCode.SERVICE_READY) {
|
|
91
|
-
throw new
|
|
92
|
+
throw new ProtocolError(`Server not ready: ${welcome.message}`, {
|
|
93
|
+
protocol: 'ftp',
|
|
94
|
+
code: welcome.code,
|
|
95
|
+
phase: 'connect',
|
|
96
|
+
});
|
|
92
97
|
}
|
|
93
98
|
await this.authenticate();
|
|
94
99
|
await this.sendCommand('TYPE I');
|
|
@@ -173,7 +178,11 @@ export class FTP extends EventEmitter {
|
|
|
173
178
|
const response = await this.readResponse();
|
|
174
179
|
if (response.code !== ResponseCode.CLOSING_DATA_CONNECTION &&
|
|
175
180
|
response.code !== ResponseCode.FILE_ACTION_OK) {
|
|
176
|
-
throw new
|
|
181
|
+
throw new ProtocolError(response.message, {
|
|
182
|
+
protocol: 'ftp',
|
|
183
|
+
code: response.code,
|
|
184
|
+
phase: 'transfer',
|
|
185
|
+
});
|
|
177
186
|
}
|
|
178
187
|
return {
|
|
179
188
|
success: true,
|
|
@@ -259,7 +268,11 @@ export class FTP extends EventEmitter {
|
|
|
259
268
|
const response = await this.readResponse();
|
|
260
269
|
if (response.code !== ResponseCode.CLOSING_DATA_CONNECTION &&
|
|
261
270
|
response.code !== ResponseCode.FILE_ACTION_OK) {
|
|
262
|
-
throw new
|
|
271
|
+
throw new ProtocolError(response.message, {
|
|
272
|
+
protocol: 'ftp',
|
|
273
|
+
code: response.code,
|
|
274
|
+
phase: 'transfer',
|
|
275
|
+
});
|
|
263
276
|
}
|
|
264
277
|
return {
|
|
265
278
|
success: true,
|
|
@@ -356,7 +369,11 @@ export class FTP extends EventEmitter {
|
|
|
356
369
|
try {
|
|
357
370
|
const rnfrResponse = await this.sendCommand(`RNFR ${oldPath}`);
|
|
358
371
|
if (rnfrResponse.code !== ResponseCode.FILE_ACTION_PENDING) {
|
|
359
|
-
throw new
|
|
372
|
+
throw new ProtocolError(rnfrResponse.message, {
|
|
373
|
+
protocol: 'ftp',
|
|
374
|
+
code: rnfrResponse.code,
|
|
375
|
+
phase: 'rename',
|
|
376
|
+
});
|
|
360
377
|
}
|
|
361
378
|
const rntoResponse = await this.sendCommand(`RNTO ${newPath}`);
|
|
362
379
|
return {
|
|
@@ -459,7 +476,10 @@ export class FTP extends EventEmitter {
|
|
|
459
476
|
}
|
|
460
477
|
getSocket() {
|
|
461
478
|
if (!this.controlSocket) {
|
|
462
|
-
throw new
|
|
479
|
+
throw new StateError('Not connected. Call connect() first.', {
|
|
480
|
+
expectedState: 'connected',
|
|
481
|
+
actualState: 'disconnected',
|
|
482
|
+
});
|
|
463
483
|
}
|
|
464
484
|
return this.controlSocket;
|
|
465
485
|
}
|
|
@@ -476,7 +496,10 @@ export class FTP extends EventEmitter {
|
|
|
476
496
|
});
|
|
477
497
|
socket.on('timeout', () => {
|
|
478
498
|
socket.destroy();
|
|
479
|
-
reject(new
|
|
499
|
+
reject(new TimeoutError(undefined, {
|
|
500
|
+
phase: 'connect',
|
|
501
|
+
timeout: this.config.timeout,
|
|
502
|
+
}));
|
|
480
503
|
});
|
|
481
504
|
socket.connect(this.config.port, this.config.host);
|
|
482
505
|
});
|
|
@@ -499,14 +522,21 @@ export class FTP extends EventEmitter {
|
|
|
499
522
|
socket.setTimeout(this.config.timeout);
|
|
500
523
|
socket.on('timeout', () => {
|
|
501
524
|
socket.destroy();
|
|
502
|
-
reject(new
|
|
525
|
+
reject(new TimeoutError(undefined, {
|
|
526
|
+
phase: 'secureConnect',
|
|
527
|
+
timeout: this.config.timeout,
|
|
528
|
+
}));
|
|
503
529
|
});
|
|
504
530
|
});
|
|
505
531
|
}
|
|
506
532
|
async upgradeToTLS() {
|
|
507
533
|
const authResponse = await this.sendCommand('AUTH TLS');
|
|
508
534
|
if (authResponse.code !== ResponseCode.AUTH_OK) {
|
|
509
|
-
throw new
|
|
535
|
+
throw new ProtocolError(`AUTH TLS failed: ${authResponse.message}`, {
|
|
536
|
+
protocol: 'ftp',
|
|
537
|
+
code: authResponse.code,
|
|
538
|
+
phase: 'tls-upgrade',
|
|
539
|
+
});
|
|
510
540
|
}
|
|
511
541
|
return new Promise((resolve, reject) => {
|
|
512
542
|
const options = {
|
|
@@ -528,11 +558,15 @@ export class FTP extends EventEmitter {
|
|
|
528
558
|
return;
|
|
529
559
|
}
|
|
530
560
|
if (userResponse.code !== ResponseCode.NEED_PASSWORD) {
|
|
531
|
-
throw new
|
|
561
|
+
throw new AuthenticationError(`Authentication failed: ${userResponse.message}`, {
|
|
562
|
+
authType: 'ftp-user',
|
|
563
|
+
});
|
|
532
564
|
}
|
|
533
565
|
const passResponse = await this.sendCommand(`PASS ${this.config.password}`);
|
|
534
566
|
if (passResponse.code !== ResponseCode.USER_LOGGED_IN) {
|
|
535
|
-
throw new
|
|
567
|
+
throw new AuthenticationError(`Authentication failed: ${passResponse.message}`, {
|
|
568
|
+
authType: 'ftp-password',
|
|
569
|
+
});
|
|
536
570
|
}
|
|
537
571
|
if (this.secureConnection) {
|
|
538
572
|
await this.sendCommand('PBSZ 0');
|
|
@@ -542,11 +576,17 @@ export class FTP extends EventEmitter {
|
|
|
542
576
|
async openDataConnection() {
|
|
543
577
|
const pasvResponse = await this.sendCommand('PASV');
|
|
544
578
|
if (pasvResponse.code !== ResponseCode.ENTERING_PASSIVE) {
|
|
545
|
-
throw new
|
|
579
|
+
throw new ProtocolError(`PASV failed: ${pasvResponse.message}`, {
|
|
580
|
+
protocol: 'ftp',
|
|
581
|
+
code: pasvResponse.code,
|
|
582
|
+
phase: 'pasv',
|
|
583
|
+
});
|
|
546
584
|
}
|
|
547
585
|
const match = pasvResponse.message.match(/\((\d+),(\d+),(\d+),(\d+),(\d+),(\d+)\)/);
|
|
548
586
|
if (!match) {
|
|
549
|
-
throw new
|
|
587
|
+
throw new ParseError('Failed to parse PASV response', {
|
|
588
|
+
format: 'pasv',
|
|
589
|
+
});
|
|
550
590
|
}
|
|
551
591
|
const host = `${match[1]}.${match[2]}.${match[3]}.${match[4]}`;
|
|
552
592
|
const port = parseInt(match[5], 10) * 256 + parseInt(match[6], 10);
|
|
@@ -584,7 +624,11 @@ export class FTP extends EventEmitter {
|
|
|
584
624
|
const response = await this.readResponse();
|
|
585
625
|
if (response.code !== ResponseCode.CLOSING_DATA_CONNECTION &&
|
|
586
626
|
response.code !== ResponseCode.FILE_ACTION_OK) {
|
|
587
|
-
reject(new
|
|
627
|
+
reject(new ProtocolError(response.message, {
|
|
628
|
+
protocol: 'ftp',
|
|
629
|
+
code: response.code,
|
|
630
|
+
phase: 'data-transfer',
|
|
631
|
+
}));
|
|
588
632
|
}
|
|
589
633
|
else {
|
|
590
634
|
resolve(data);
|
|
@@ -599,7 +643,10 @@ export class FTP extends EventEmitter {
|
|
|
599
643
|
}
|
|
600
644
|
async sendCommand(command) {
|
|
601
645
|
if (!this.controlSocket) {
|
|
602
|
-
throw new
|
|
646
|
+
throw new StateError('Not connected', {
|
|
647
|
+
expectedState: 'connected',
|
|
648
|
+
actualState: 'disconnected',
|
|
649
|
+
});
|
|
603
650
|
}
|
|
604
651
|
const displayCommand = command.startsWith('PASS ')
|
|
605
652
|
? 'PASS ****'
|
|
@@ -765,7 +812,10 @@ export class FTP extends EventEmitter {
|
|
|
765
812
|
}
|
|
766
813
|
ensureConnected() {
|
|
767
814
|
if (!this.connected || !this.controlSocket || this.controlSocket.destroyed) {
|
|
768
|
-
throw new
|
|
815
|
+
throw new StateError('Not connected to FTP server. Call connect() first.', {
|
|
816
|
+
expectedState: 'connected',
|
|
817
|
+
actualState: 'disconnected',
|
|
818
|
+
});
|
|
769
819
|
}
|
|
770
820
|
}
|
|
771
821
|
cleanup() {
|
|
@@ -791,7 +841,10 @@ export async function ftp(config, operation) {
|
|
|
791
841
|
try {
|
|
792
842
|
const result = await client.connect();
|
|
793
843
|
if (!result.success) {
|
|
794
|
-
throw new
|
|
844
|
+
throw new ConnectionError(result.message || 'Failed to connect to FTP server', {
|
|
845
|
+
host: config.host,
|
|
846
|
+
port: config.port,
|
|
847
|
+
});
|
|
795
848
|
}
|
|
796
849
|
return await operation(client);
|
|
797
850
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sftp.d.ts","sourceRoot":"","sources":["../../src/protocols/sftp.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"sftp.d.ts","sourceRoot":"","sources":["../../src/protocols/sftp.ts"],"names":[],"mappings":"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"}
|
package/dist/protocols/sftp.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { requireOptional } from '../utils/optional-require.js';
|
|
2
|
+
import { StateError, ConnectionError } from '../core/errors.js';
|
|
2
3
|
async function loadSFTP() {
|
|
3
4
|
return requireOptional('ssh2-sftp-client', 'recker/protocols/sftp');
|
|
4
5
|
}
|
|
@@ -320,13 +321,19 @@ export class SFTP {
|
|
|
320
321
|
}
|
|
321
322
|
getClient() {
|
|
322
323
|
if (!this.initialized) {
|
|
323
|
-
throw new
|
|
324
|
+
throw new StateError('Client not initialized. Call connect() first.', {
|
|
325
|
+
expectedState: 'initialized',
|
|
326
|
+
actualState: 'not-initialized',
|
|
327
|
+
});
|
|
324
328
|
}
|
|
325
329
|
return this.client;
|
|
326
330
|
}
|
|
327
331
|
ensureConnected() {
|
|
328
332
|
if (!this.connected) {
|
|
329
|
-
throw new
|
|
333
|
+
throw new StateError('Not connected to SFTP server. Call connect() first.', {
|
|
334
|
+
expectedState: 'connected',
|
|
335
|
+
actualState: 'disconnected',
|
|
336
|
+
});
|
|
330
337
|
}
|
|
331
338
|
}
|
|
332
339
|
mapFileType(type) {
|
|
@@ -350,7 +357,10 @@ export async function sftp(config, operation) {
|
|
|
350
357
|
try {
|
|
351
358
|
const result = await client.connect();
|
|
352
359
|
if (!result.success) {
|
|
353
|
-
throw new
|
|
360
|
+
throw new ConnectionError(result.message || 'Failed to connect to SFTP server', {
|
|
361
|
+
host: config.host,
|
|
362
|
+
port: config.port,
|
|
363
|
+
});
|
|
354
364
|
}
|
|
355
365
|
return await operation(client);
|
|
356
366
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"telnet.d.ts","sourceRoot":"","sources":["../../src/protocols/telnet.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"telnet.d.ts","sourceRoot":"","sources":["../../src/protocols/telnet.ts"],"names":[],"mappings":"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"}
|
package/dist/protocols/telnet.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { Socket } from 'node:net';
|
|
2
2
|
import { EventEmitter } from 'node:events';
|
|
3
|
+
import { StateError, TimeoutError, ConnectionError } from '../core/errors.js';
|
|
3
4
|
const IAC = 255;
|
|
4
5
|
const CMD = {
|
|
5
6
|
SE: 240,
|
|
@@ -209,7 +210,10 @@ export class Telnet extends EventEmitter {
|
|
|
209
210
|
}
|
|
210
211
|
getSocket() {
|
|
211
212
|
if (!this.socket) {
|
|
212
|
-
throw new
|
|
213
|
+
throw new StateError('Not connected. Call connect() first.', {
|
|
214
|
+
expectedState: 'connected',
|
|
215
|
+
actualState: 'disconnected',
|
|
216
|
+
});
|
|
213
217
|
}
|
|
214
218
|
return this.socket;
|
|
215
219
|
}
|
|
@@ -414,7 +418,10 @@ export class Telnet extends EventEmitter {
|
|
|
414
418
|
return new Promise((resolve, reject) => {
|
|
415
419
|
const check = () => {
|
|
416
420
|
if (Date.now() - start > timeout) {
|
|
417
|
-
reject(new
|
|
421
|
+
reject(new TimeoutError(undefined, {
|
|
422
|
+
phase: 'response',
|
|
423
|
+
timeout,
|
|
424
|
+
}));
|
|
418
425
|
return;
|
|
419
426
|
}
|
|
420
427
|
if (this.matchPattern(this.dataBuffer, this.config.shellPrompt)) {
|
|
@@ -429,7 +436,10 @@ export class Telnet extends EventEmitter {
|
|
|
429
436
|
}
|
|
430
437
|
write(data) {
|
|
431
438
|
if (!this.socket || !this.connected) {
|
|
432
|
-
throw new
|
|
439
|
+
throw new StateError('Not connected', {
|
|
440
|
+
expectedState: 'connected',
|
|
441
|
+
actualState: 'disconnected',
|
|
442
|
+
});
|
|
433
443
|
}
|
|
434
444
|
const buffer = typeof data === 'string' ? Buffer.from(data) : data;
|
|
435
445
|
this.debug('Sending: %s', buffer.toString().replace(/\r\n/g, '\\r\\n'));
|
|
@@ -441,7 +451,10 @@ export class Telnet extends EventEmitter {
|
|
|
441
451
|
const startBuffer = this.dataBuffer;
|
|
442
452
|
const check = () => {
|
|
443
453
|
if (Date.now() - start > timeout) {
|
|
444
|
-
reject(new
|
|
454
|
+
reject(new TimeoutError(undefined, {
|
|
455
|
+
phase: 'response',
|
|
456
|
+
timeout,
|
|
457
|
+
}));
|
|
445
458
|
return;
|
|
446
459
|
}
|
|
447
460
|
if (this.matchPattern(this.dataBuffer, pattern)) {
|
|
@@ -479,7 +492,10 @@ export class Telnet extends EventEmitter {
|
|
|
479
492
|
}
|
|
480
493
|
ensureConnected() {
|
|
481
494
|
if (!this.connected || !this.socket) {
|
|
482
|
-
throw new
|
|
495
|
+
throw new StateError('Not connected to Telnet server. Call connect() first.', {
|
|
496
|
+
expectedState: 'connected',
|
|
497
|
+
actualState: 'disconnected',
|
|
498
|
+
});
|
|
483
499
|
}
|
|
484
500
|
}
|
|
485
501
|
cmdName(cmd) {
|
|
@@ -505,7 +521,10 @@ export async function telnet(config, operation) {
|
|
|
505
521
|
try {
|
|
506
522
|
const result = await client.connect();
|
|
507
523
|
if (!result.success) {
|
|
508
|
-
throw new
|
|
524
|
+
throw new ConnectionError(result.message || 'Failed to connect to Telnet server', {
|
|
525
|
+
host: config.host,
|
|
526
|
+
port: config.port,
|
|
527
|
+
});
|
|
509
528
|
}
|
|
510
529
|
return await operation(client);
|
|
511
530
|
}
|
package/dist/recker.d.ts
ADDED
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { Client, type ExtendedClientOptions } from './core/client.js';
|
|
2
|
+
import { type RequestPromise } from './core/request-promise.js';
|
|
3
|
+
import type { RequestOptions } from './types/index.js';
|
|
4
|
+
import { type WebSocketOptions, type ReckerWebSocket } from './websocket/client.js';
|
|
5
|
+
import { createWhois, type WhoisResult, type WhoisOptions } from './utils/whois.js';
|
|
6
|
+
import { type DNSClientOptions, type DNSClient } from './dns/index.js';
|
|
7
|
+
import type { AIClientConfig } from './types/ai.js';
|
|
8
|
+
export declare function get(url: string, options?: RequestOptions): RequestPromise;
|
|
9
|
+
export declare function post(url: string, options?: RequestOptions): RequestPromise;
|
|
10
|
+
export declare function put(url: string, options?: RequestOptions): RequestPromise;
|
|
11
|
+
export declare function patch(url: string, options?: RequestOptions): RequestPromise;
|
|
12
|
+
export declare function del(url: string, options?: RequestOptions): RequestPromise;
|
|
13
|
+
export declare function head(url: string, options?: RequestOptions): RequestPromise;
|
|
14
|
+
export declare function options(url: string, options?: RequestOptions): RequestPromise;
|
|
15
|
+
export declare function whois(query: string, options?: WhoisOptions): Promise<WhoisResult>;
|
|
16
|
+
export declare function whoisAvailable(domain: string): Promise<boolean>;
|
|
17
|
+
export declare function dns(hostname: string, type?: 'A' | 'AAAA' | 'MX' | 'TXT' | 'NS' | 'CNAME'): Promise<string[]>;
|
|
18
|
+
export declare function dnsSecurity(domain: string): Promise<import("./utils/dns-toolkit.js").DnsSecurityRecords>;
|
|
19
|
+
export declare function ws(url: string, options?: WebSocketOptions): ReckerWebSocket;
|
|
20
|
+
export declare const recker: {
|
|
21
|
+
get: typeof get;
|
|
22
|
+
post: typeof post;
|
|
23
|
+
put: typeof put;
|
|
24
|
+
patch: typeof patch;
|
|
25
|
+
delete: typeof del;
|
|
26
|
+
head: typeof head;
|
|
27
|
+
options: typeof options;
|
|
28
|
+
whois: typeof whois;
|
|
29
|
+
whoisAvailable: typeof whoisAvailable;
|
|
30
|
+
dns: typeof dns;
|
|
31
|
+
dnsSecurity: typeof dnsSecurity;
|
|
32
|
+
ws: typeof ws;
|
|
33
|
+
ai: {
|
|
34
|
+
chat: (optionsOrPrompt: string | import("./types/ai.js").ChatOptions) => Promise<import("./types/ai.js").AIResponse<string>>;
|
|
35
|
+
stream: (options: import("./types/ai.js").ChatOptions) => Promise<import("./types/ai.js").AIStream>;
|
|
36
|
+
embed: (options: import("./types/ai.js").EmbedOptions) => Promise<import("./types/ai.js").EmbedResponse>;
|
|
37
|
+
extend: (defaults: Partial<import("./types/ai.js").ChatOptions>) => import("./types/ai.js").AIClient;
|
|
38
|
+
readonly metrics: import("./types/ai.js").AIMetrics;
|
|
39
|
+
};
|
|
40
|
+
client: (options?: ExtendedClientOptions) => Client;
|
|
41
|
+
dnsClient: (options?: DNSClientOptions) => DNSClient;
|
|
42
|
+
whoisClient: typeof createWhois;
|
|
43
|
+
aiClient: (options?: AIClientConfig) => import("./types/ai.js").AIClient;
|
|
44
|
+
reset: () => void;
|
|
45
|
+
};
|
|
46
|
+
export default recker;
|
|
47
|
+
//# sourceMappingURL=recker.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"recker.d.ts","sourceRoot":"","sources":["../src/recker.ts"],"names":[],"mappings":"AAwCA,OAAO,EAAE,MAAM,EAAgB,KAAK,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AACpF,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAChE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAEvD,OAAO,EAAmB,KAAK,gBAAgB,EAAE,KAAK,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACrG,OAAO,EAA2C,WAAW,EAAE,KAAK,WAAW,EAAE,KAAK,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAC7H,OAAO,EAAa,KAAK,gBAAgB,EAAE,KAAK,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAElF,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AA0CpD,wBAAgB,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,cAAc,CAEzE;AAMD,wBAAgB,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,cAAc,CAE1E;AAKD,wBAAgB,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,cAAc,CAEzE;AAKD,wBAAgB,KAAK,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,cAAc,CAE3E;AAKD,wBAAgB,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,cAAc,CAEzE;AAKD,wBAAgB,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,cAAc,CAE1E;AAKD,wBAAgB,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,cAAc,CAE7E;AAUD,wBAAsB,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,YAAY,GAAG,OAAO,CAAC,WAAW,CAAC,CAEvF;AAMD,wBAAsB,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAErE;AAMD,wBAAsB,GAAG,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,GAAE,GAAG,GAAG,MAAM,GAAG,IAAI,GAAG,KAAK,GAAG,IAAI,GAAG,OAAa,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAEvH;AAMD,wBAAsB,WAAW,CAAC,MAAM,EAAE,MAAM,gEAE/C;AAMD,wBAAgB,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,gBAAgB,GAAG,eAAe,CAE3E;AA8DD,eAAO,MAAM,MAAM;;;;;;;;;;;;;;;;;;;;uBAgDE,qBAAqB;0BAKlB,gBAAgB;;yBAUjB,cAAc;;CAUpC,CAAC;AAGF,eAAe,MAAM,CAAC"}
|