@start9labs/start-sdk 1.0.0 → 1.2.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.
- package/CHANGELOG.md +42 -0
- package/base/lib/actions/input/builder/inputSpec.d.ts +1 -1
- package/base/lib/actions/input/builder/inputSpecTools.d.ts +17 -0
- package/base/lib/actions/input/builder/inputSpecTools.js.map +1 -1
- package/base/lib/actions/input/builder/value.d.ts +73 -1
- package/base/lib/actions/input/builder/value.js +67 -1
- package/base/lib/actions/input/builder/value.js.map +1 -1
- package/base/lib/actions/input/inputSpecConstants.js +1 -1
- package/base/lib/actions/input/inputSpecConstants.js.map +1 -1
- package/base/lib/actions/input/inputSpecTypes.d.ts +35 -2
- package/base/lib/actions/input/inputSpecTypes.js.map +1 -1
- package/base/lib/actions/setupActions.d.ts +14 -20
- package/base/lib/actions/setupActions.js +16 -14
- package/base/lib/actions/setupActions.js.map +1 -1
- package/base/lib/coverage/lcov-report/block-navigation.js +1 -1
- package/base/lib/coverage/lcov-report/sorter.js +21 -7
- package/base/lib/osBindings/CountEntry.d.ts +4 -0
- package/base/lib/osBindings/CountEntry.js +4 -0
- package/base/lib/osBindings/CountEntry.js.map +1 -0
- package/base/lib/osBindings/DownloadsResponse.d.ts +7 -0
- package/base/lib/osBindings/DownloadsResponse.js +3 -0
- package/base/lib/osBindings/DownloadsResponse.js.map +1 -0
- package/base/lib/osBindings/GetDownloadsParams.d.ts +18 -0
- package/base/lib/osBindings/GetDownloadsParams.js +4 -0
- package/base/lib/osBindings/GetDownloadsParams.js.map +1 -0
- package/base/lib/osBindings/GetUsersParams.d.ts +10 -0
- package/base/lib/osBindings/GetUsersParams.js +4 -0
- package/base/lib/osBindings/GetUsersParams.js.map +1 -0
- package/base/lib/osBindings/Hostname.d.ts +1 -0
- package/base/lib/osBindings/Hostname.js +4 -0
- package/base/lib/osBindings/Hostname.js.map +1 -0
- package/base/lib/osBindings/MetricsSummary.d.ts +8 -0
- package/base/lib/osBindings/MetricsSummary.js +3 -0
- package/base/lib/osBindings/MetricsSummary.js.map +1 -0
- package/base/lib/osBindings/PackageVersionCount.d.ts +5 -0
- package/base/lib/osBindings/PackageVersionCount.js +4 -0
- package/base/lib/osBindings/PackageVersionCount.js.map +1 -0
- package/base/lib/osBindings/ServerInfo.d.ts +0 -2
- package/base/lib/osBindings/UsersResponse.d.ts +4 -0
- package/base/lib/osBindings/UsersResponse.js +4 -0
- package/base/lib/osBindings/UsersResponse.js.map +1 -0
- package/base/lib/osBindings/index.d.ts +7 -0
- package/base/lib/osBindings/index.js.map +1 -1
- package/base/lib/util/Drop.d.ts +1 -0
- package/base/lib/util/Drop.js +3 -1
- package/base/lib/util/Drop.js.map +1 -1
- package/package/lib/StartSdk.d.ts +35 -15
- package/package/lib/StartSdk.js +30 -10
- package/package/lib/StartSdk.js.map +1 -1
- package/package/lib/health/checkFns/HealthCheckResult.d.ts +11 -3
- package/package/lib/health/checkFns/checkPortListening.d.ts +12 -2
- package/package/lib/health/checkFns/checkPortListening.js +12 -2
- package/package/lib/health/checkFns/checkPortListening.js.map +1 -1
- package/package/lib/health/checkFns/checkWebUrl.d.ts +10 -4
- package/package/lib/health/checkFns/checkWebUrl.js +10 -4
- package/package/lib/health/checkFns/checkWebUrl.js.map +1 -1
- package/package/lib/health/checkFns/runHealthScript.d.ts +11 -5
- package/package/lib/health/checkFns/runHealthScript.js +11 -5
- package/package/lib/health/checkFns/runHealthScript.js.map +1 -1
- package/package/lib/mainFn/Daemons.d.ts +114 -34
- package/package/lib/mainFn/Daemons.js +9 -4
- package/package/lib/mainFn/Daemons.js.map +1 -1
- package/package/lib/test/output.d.ts +158 -0
- package/package/lib/test/output.js +446 -0
- package/package/lib/test/output.js.map +1 -0
- package/package/lib/test/output.sdk.d.ts +78 -698
- package/package/lib/trigger/TriggerInput.d.ts +7 -0
- package/package/lib/trigger/cooldownTrigger.d.ts +15 -0
- package/package/lib/trigger/cooldownTrigger.js +15 -0
- package/package/lib/trigger/cooldownTrigger.js.map +1 -1
- package/package/lib/trigger/defaultTrigger.d.ts +6 -0
- package/package/lib/trigger/defaultTrigger.js +11 -5
- package/package/lib/trigger/defaultTrigger.js.map +1 -1
- package/package/lib/trigger/index.d.ts +12 -1
- package/package/lib/trigger/index.js +3 -3
- package/package/lib/trigger/index.js.map +1 -1
- package/package/lib/trigger/statusTrigger.d.ts +24 -0
- package/package/lib/trigger/statusTrigger.js +33 -0
- package/package/lib/trigger/statusTrigger.js.map +1 -0
- package/package/lib/util/SubContainer.js +1 -1
- package/package/lib/util/SubContainer.js.map +1 -1
- package/package/lib/util/fileHelper.d.ts +28 -87
- package/package/lib/util/fileHelper.js +43 -87
- package/package/lib/util/fileHelper.js.map +1 -1
- package/package/lib/version/VersionInfo.d.ts +13 -11
- package/package/lib/version/VersionInfo.js +17 -25
- package/package/lib/version/VersionInfo.js.map +1 -1
- package/package/package.json +14 -14
- package/package.json +14 -14
|
@@ -20,12 +20,12 @@ import { SetupBackupsParams } from './backup/setupBackups';
|
|
|
20
20
|
import { checkPortListening } from './health/checkFns/checkPortListening';
|
|
21
21
|
import { Daemon, Daemons } from './mainFn/Daemons';
|
|
22
22
|
import { Mounts } from './mainFn/Mounts';
|
|
23
|
-
import {
|
|
23
|
+
import { cooldownTrigger, statusTrigger } from './trigger';
|
|
24
24
|
import { GetOutboundGateway, GetSslCertificate, GetSystemSmtp, getServiceInterface, getServiceInterfaces, getServiceManifest, nullIfEmpty } from './util';
|
|
25
25
|
import { CommandOptions, SubContainer } from './util/SubContainer';
|
|
26
26
|
import { getDataVersion, setDataVersion } from './version';
|
|
27
27
|
/** The minimum StartOS version required by this SDK release */
|
|
28
|
-
export declare const OSVersion: "0.4.0-
|
|
28
|
+
export declare const OSVersion: "0.4.0-beta.0";
|
|
29
29
|
type AnyNeverCond<T extends any[], Then, Else> = T extends [] ? Else : T extends [never, ...Array<any>] ? Then : T extends [any, ...infer U] ? AnyNeverCond<U, Then, Else> : never;
|
|
30
30
|
/**
|
|
31
31
|
* The top-level SDK facade for building StartOS service packages.
|
|
@@ -201,7 +201,10 @@ export declare class StartSdk<Manifest extends T.SDKManifest> {
|
|
|
201
201
|
)
|
|
202
202
|
* ```
|
|
203
203
|
*/
|
|
204
|
-
withInput:
|
|
204
|
+
withInput: <Id extends T.ActionId, InputSpecType extends InputSpec<Record<string, any>>>(id: Id, metadata: MaybeFn<Omit<T.ActionMetadata, "hasInput">>, inputSpec: MaybeFn<InputSpecType, {
|
|
205
|
+
effects: T.Effects;
|
|
206
|
+
prefill: unknown | null;
|
|
207
|
+
}>, getInput: import("../../base/lib/actions/setupActions").GetInput<import("../../base/lib/actions/input/builder/inputSpec").ExtractInputSpecType<InputSpecType>>, run: Run<import("../../base/lib/actions/input/builder/inputSpec").ExtractInputSpecType<InputSpecType>>) => Action<Id, import("../../base/lib/actions/input/builder/inputSpec").ExtractInputSpecType<InputSpecType>>;
|
|
205
208
|
/**
|
|
206
209
|
* @description Use this function to create an action that does not accept form input
|
|
207
210
|
* @param id - a unique ID for this action
|
|
@@ -2518,13 +2521,22 @@ export declare class StartSdk<Manifest extends T.SDKManifest> {
|
|
|
2518
2521
|
getSslCertificate: <E extends Effects>(effects: E, hostnames: string[], algorithm?: T.Algorithm) => GetSslCertificate;
|
|
2519
2522
|
/** Retrieve the manifest of any installed service package by its ID */
|
|
2520
2523
|
getServiceManifest: typeof getServiceManifest;
|
|
2524
|
+
/**
|
|
2525
|
+
* Built-in health check functions for use in `ready.fn`.
|
|
2526
|
+
*
|
|
2527
|
+
* These cover the most common readiness patterns. For custom logic,
|
|
2528
|
+
* write your own async function returning a {@link HealthCheckResult}.
|
|
2529
|
+
*/
|
|
2521
2530
|
healthCheck: {
|
|
2531
|
+
/** Check whether a TCP/UDP port is bound and listening (reads /proc/net) */
|
|
2522
2532
|
checkPortListening: typeof checkPortListening;
|
|
2533
|
+
/** Check whether a URL is reachable via HTTP fetch */
|
|
2523
2534
|
checkWebUrl: (effects: Effects, url: string, { timeout, successMessage, errorMessage, }?: {
|
|
2524
2535
|
timeout?: number | undefined;
|
|
2525
2536
|
successMessage?: string | undefined;
|
|
2526
2537
|
errorMessage?: string | undefined;
|
|
2527
2538
|
}) => Promise<import("./health/checkFns").HealthCheckResult>;
|
|
2539
|
+
/** Run a command in a subcontainer and succeed on exit code 0 */
|
|
2528
2540
|
runHealthScript: <Manifest_1 extends T.SDKManifest>(runCommand: string[], subcontainer: SubContainer<Manifest_1>, { timeout, errorMessage, message, }?: {
|
|
2529
2541
|
timeout?: number | undefined;
|
|
2530
2542
|
errorMessage?: string | undefined;
|
|
@@ -2548,7 +2560,6 @@ export declare class StartSdk<Manifest extends T.SDKManifest> {
|
|
|
2548
2560
|
* ```
|
|
2549
2561
|
*/
|
|
2550
2562
|
Actions: {
|
|
2551
|
-
new (actions: {}): Actions<{}>;
|
|
2552
2563
|
of(): Actions<{}>;
|
|
2553
2564
|
};
|
|
2554
2565
|
/**
|
|
@@ -2726,19 +2737,28 @@ export declare class StartSdk<Manifest extends T.SDKManifest> {
|
|
|
2726
2737
|
setupMain: (fn: (o: {
|
|
2727
2738
|
effects: Effects;
|
|
2728
2739
|
}) => Promise<Daemons<Manifest, any>>) => T.ExpectedExports.main;
|
|
2729
|
-
/**
|
|
2740
|
+
/**
|
|
2741
|
+
* Built-in trigger strategies that control how often a health check polls.
|
|
2742
|
+
*
|
|
2743
|
+
* Pass any of these to the `trigger` field on a {@link Ready} config.
|
|
2744
|
+
* If omitted, health checks use `defaultTrigger` (1 s while pending, 30 s
|
|
2745
|
+
* once healthy).
|
|
2746
|
+
*/
|
|
2730
2747
|
trigger: {
|
|
2731
|
-
/**
|
|
2748
|
+
/**
|
|
2749
|
+
* The default trigger: 1 s while the daemon is still pending
|
|
2750
|
+
* (`starting`/`waiting`/`failure`), then 30 s once the first
|
|
2751
|
+
* non-pending result (`success`, `loading`, `disabled`) is observed.
|
|
2752
|
+
*/
|
|
2732
2753
|
defaultTrigger: import("./trigger").Trigger;
|
|
2733
|
-
/**
|
|
2754
|
+
/** Fixed interval between checks. Use for a simple, constant polling rate. */
|
|
2734
2755
|
cooldownTrigger: typeof cooldownTrigger;
|
|
2735
|
-
/**
|
|
2736
|
-
|
|
2737
|
-
|
|
2738
|
-
|
|
2739
|
-
|
|
2740
|
-
|
|
2741
|
-
}) => import("./trigger").Trigger;
|
|
2756
|
+
/**
|
|
2757
|
+
* Per-status polling intervals. Map each health status (`success`,
|
|
2758
|
+
* `loading`, `starting`, `failure`, etc.) to a cooldown in
|
|
2759
|
+
* milliseconds. Unspecified statuses fall back to 30 s.
|
|
2760
|
+
*/
|
|
2761
|
+
statusTrigger: typeof statusTrigger;
|
|
2742
2762
|
};
|
|
2743
2763
|
Mounts: {
|
|
2744
2764
|
/**
|
|
@@ -2804,7 +2824,7 @@ export declare class StartSdk<Manifest extends T.SDKManifest> {
|
|
|
2804
2824
|
})
|
|
2805
2825
|
* ```
|
|
2806
2826
|
*/
|
|
2807
|
-
of: <Spec extends Record<string, Value<any>>>(spec: Spec) => InputSpec<{ [K in keyof Spec]: Spec[K] extends Value<infer T extends any, any, unknown> ? T : never; }, { [K_1 in keyof Spec]: Spec[K_1] extends Value<any, infer
|
|
2827
|
+
of: <Spec extends Record<string, Value<any>>>(spec: Spec) => InputSpec<{ [K in keyof Spec]: Spec[K] extends Value<infer T extends any, any, unknown> ? T : never; }, { [K_1 in keyof Spec]: Spec[K_1] extends Value<any, infer T, unknown> ? T : never; }>;
|
|
2808
2828
|
};
|
|
2809
2829
|
Daemon: {
|
|
2810
2830
|
/**
|
package/package/lib/StartSdk.js
CHANGED
|
@@ -66,13 +66,12 @@ const Daemons_1 = require("./mainFn/Daemons");
|
|
|
66
66
|
const Mounts_1 = require("./mainFn/Mounts");
|
|
67
67
|
const trigger_1 = require("./trigger");
|
|
68
68
|
const defaultTrigger_1 = require("./trigger/defaultTrigger");
|
|
69
|
-
const successFailure_1 = require("./trigger/successFailure");
|
|
70
69
|
const util_1 = require("./util");
|
|
71
70
|
const SubContainer_1 = require("./util/SubContainer");
|
|
72
71
|
const Volume_1 = require("./util/Volume");
|
|
73
72
|
const version_1 = require("./version");
|
|
74
73
|
/** The minimum StartOS version required by this SDK release */
|
|
75
|
-
exports.OSVersion = (0, exver_1.testTypeVersion)('0.4.0-
|
|
74
|
+
exports.OSVersion = (0, exver_1.testTypeVersion)('0.4.0-beta.0');
|
|
76
75
|
/**
|
|
77
76
|
* The top-level SDK facade for building StartOS service packages.
|
|
78
77
|
*
|
|
@@ -377,9 +376,18 @@ class StartSdk {
|
|
|
377
376
|
getSslCertificate: (effects, hostnames, algorithm) => new util_1.GetSslCertificate(effects, { hostnames, algorithm }),
|
|
378
377
|
/** Retrieve the manifest of any installed service package by its ID */
|
|
379
378
|
getServiceManifest: util_1.getServiceManifest,
|
|
379
|
+
/**
|
|
380
|
+
* Built-in health check functions for use in `ready.fn`.
|
|
381
|
+
*
|
|
382
|
+
* These cover the most common readiness patterns. For custom logic,
|
|
383
|
+
* write your own async function returning a {@link HealthCheckResult}.
|
|
384
|
+
*/
|
|
380
385
|
healthCheck: {
|
|
386
|
+
/** Check whether a TCP/UDP port is bound and listening (reads /proc/net) */
|
|
381
387
|
checkPortListening: checkPortListening_1.checkPortListening,
|
|
388
|
+
/** Check whether a URL is reachable via HTTP fetch */
|
|
382
389
|
checkWebUrl: checkFns_1.checkWebUrl,
|
|
390
|
+
/** Run a command in a subcontainer and succeed on exit code 0 */
|
|
383
391
|
runHealthScript: checkFns_1.runHealthScript,
|
|
384
392
|
},
|
|
385
393
|
/** Common utility patterns (e.g. hostname regex, port validators) */
|
|
@@ -398,7 +406,7 @@ class StartSdk {
|
|
|
398
406
|
export const actions = sdk.Actions.of().addAction(config).addAction(nameToLogs)
|
|
399
407
|
* ```
|
|
400
408
|
*/
|
|
401
|
-
Actions:
|
|
409
|
+
Actions: setupActions_1.Actions,
|
|
402
410
|
/**
|
|
403
411
|
* @description Use this function to determine which volumes are backed up when a user creates a backup, including advanced options.
|
|
404
412
|
* @example
|
|
@@ -567,16 +575,28 @@ class StartSdk {
|
|
|
567
575
|
* @param fn - Async function that receives `effects` and returns a `Daemons` instance
|
|
568
576
|
*/
|
|
569
577
|
setupMain: (fn) => (0, mainFn_1.setupMain)(fn),
|
|
570
|
-
/**
|
|
578
|
+
/**
|
|
579
|
+
* Built-in trigger strategies that control how often a health check polls.
|
|
580
|
+
*
|
|
581
|
+
* Pass any of these to the `trigger` field on a {@link Ready} config.
|
|
582
|
+
* If omitted, health checks use `defaultTrigger` (1 s while pending, 30 s
|
|
583
|
+
* once healthy).
|
|
584
|
+
*/
|
|
571
585
|
trigger: {
|
|
572
|
-
/**
|
|
586
|
+
/**
|
|
587
|
+
* The default trigger: 1 s while the daemon is still pending
|
|
588
|
+
* (`starting`/`waiting`/`failure`), then 30 s once the first
|
|
589
|
+
* non-pending result (`success`, `loading`, `disabled`) is observed.
|
|
590
|
+
*/
|
|
573
591
|
defaultTrigger: defaultTrigger_1.defaultTrigger,
|
|
574
|
-
/**
|
|
592
|
+
/** Fixed interval between checks. Use for a simple, constant polling rate. */
|
|
575
593
|
cooldownTrigger: trigger_1.cooldownTrigger,
|
|
576
|
-
/**
|
|
577
|
-
|
|
578
|
-
|
|
579
|
-
|
|
594
|
+
/**
|
|
595
|
+
* Per-status polling intervals. Map each health status (`success`,
|
|
596
|
+
* `loading`, `starting`, `failure`, etc.) to a cooldown in
|
|
597
|
+
* milliseconds. Unspecified statuses fall back to 30 s.
|
|
598
|
+
*/
|
|
599
|
+
statusTrigger: trigger_1.statusTrigger,
|
|
580
600
|
},
|
|
581
601
|
Mounts: {
|
|
582
602
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StartSdk.js","sourceRoot":"","sources":["../../../package/lib/StartSdk.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"StartSdk.js","sourceRoot":"","sources":["../../../package/lib/StartSdk.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,8 +1,16 @@
|
|
|
1
1
|
import { T } from '../../../../base/lib';
|
|
2
2
|
/**
|
|
3
|
-
* The
|
|
3
|
+
* The value returned from a health check `fn`.
|
|
4
4
|
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
5
|
+
* Set `result` to one of:
|
|
6
|
+
* - `'success'` — healthy and fully operational
|
|
7
|
+
* - `'loading'` — operational but still catching up (e.g. syncing blocks)
|
|
8
|
+
* - `'disabled'` — intentionally inactive (excluded by config)
|
|
9
|
+
* - `'starting'` — not yet ready, still initializing
|
|
10
|
+
* - `'waiting'` — blocked on an external dependency
|
|
11
|
+
* - `'failure'` — unhealthy, something is wrong
|
|
12
|
+
*
|
|
13
|
+
* Include a `message` string for display in the StartOS UI. Required for
|
|
14
|
+
* `loading` and `failure`; optional for other states.
|
|
7
15
|
*/
|
|
8
16
|
export type HealthCheckResult = Omit<T.NamedHealthCheckResult, 'name'>;
|
|
@@ -2,8 +2,18 @@ import { Effects } from '../../../../base/lib/types';
|
|
|
2
2
|
import { HealthCheckResult } from './HealthCheckResult';
|
|
3
3
|
export declare function containsAddress(x: string, port: number, address?: bigint): boolean;
|
|
4
4
|
/**
|
|
5
|
-
*
|
|
6
|
-
*
|
|
5
|
+
* Check whether a TCP or UDP port is currently bound and listening.
|
|
6
|
+
*
|
|
7
|
+
* Reads `/proc/net/tcp{,6}` and `/proc/net/udp{,6}` to determine if any
|
|
8
|
+
* socket is bound to the given port. This is a lightweight, non-intrusive
|
|
9
|
+
* check — it does not open a connection or send any data.
|
|
10
|
+
*
|
|
11
|
+
* @param effects - The effects context
|
|
12
|
+
* @param port - Port number to check
|
|
13
|
+
* @param options.successMessage - Message shown in the UI when the port is listening
|
|
14
|
+
* @param options.errorMessage - Message shown in the UI when the port is not listening
|
|
15
|
+
* @param options.timeoutMessage - Message shown if the check exceeds the timeout (defaults to `"Timeout trying to check port {port}"`)
|
|
16
|
+
* @param options.timeout - Maximum time (ms) to wait before reporting failure (defaults to 1000)
|
|
7
17
|
*/
|
|
8
18
|
export declare function checkPortListening(effects: Effects, port: number, options: {
|
|
9
19
|
errorMessage: string;
|
|
@@ -50,8 +50,18 @@ function containsAddress(x, port, address) {
|
|
|
50
50
|
return !!readPorts.find(([addr, p]) => (address === undefined || address === addr) && port === p);
|
|
51
51
|
}
|
|
52
52
|
/**
|
|
53
|
-
*
|
|
54
|
-
*
|
|
53
|
+
* Check whether a TCP or UDP port is currently bound and listening.
|
|
54
|
+
*
|
|
55
|
+
* Reads `/proc/net/tcp{,6}` and `/proc/net/udp{,6}` to determine if any
|
|
56
|
+
* socket is bound to the given port. This is a lightweight, non-intrusive
|
|
57
|
+
* check — it does not open a connection or send any data.
|
|
58
|
+
*
|
|
59
|
+
* @param effects - The effects context
|
|
60
|
+
* @param port - Port number to check
|
|
61
|
+
* @param options.successMessage - Message shown in the UI when the port is listening
|
|
62
|
+
* @param options.errorMessage - Message shown in the UI when the port is not listening
|
|
63
|
+
* @param options.timeoutMessage - Message shown if the check exceeds the timeout (defaults to `"Timeout trying to check port {port}"`)
|
|
64
|
+
* @param options.timeout - Maximum time (ms) to wait before reporting failure (defaults to 1000)
|
|
55
65
|
*/
|
|
56
66
|
async function checkPortListening(effects, port, options) {
|
|
57
67
|
return Promise.race([
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"checkPortListening.js","sourceRoot":"","sources":["../../../../../package/lib/health/checkFns/checkPortListening.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAQA,0CAWC;
|
|
1
|
+
{"version":3,"file":"checkPortListening.js","sourceRoot":"","sources":["../../../../../package/lib/health/checkFns/checkPortListening.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAQA,0CAWC;AAgBD,gDAmDC;AArFD,qCAAgD;AAEhD,yCAAqC;AACrC,uDAAwC;AAExC,MAAM,MAAM,GAAG,IAAA,qBAAS,EAAC,EAAE,CAAC,IAAI,CAAC,CAAA;AAEjC,SAAgB,eAAe,CAAC,CAAS,EAAE,IAAY,EAAE,OAAgB;IACvE,MAAM,SAAS,GAAG,CAAC;SAChB,KAAK,CAAC,IAAI,CAAC;SACX,MAAM,CAAC,OAAO,CAAC;SACf,MAAM,CAAC,CAAC,CAAC;SACT,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC;SACvD,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,MAAM,GAAG,CAAC,CAAC;SAC5B,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,EAAE,CAAC,CAAU,CAAC,CAAA;IAC7E,OAAO,CAAC,CAAC,SAAS,CAAC,IAAI,CACrB,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,OAAO,KAAK,SAAS,IAAI,OAAO,KAAK,IAAI,CAAC,IAAI,IAAI,KAAK,CAAC,CACzE,CAAA;AACH,CAAC;AAED;;;;;;;;;;;;;GAaG;AACI,KAAK,UAAU,kBAAkB,CACtC,OAAgB,EAChB,IAAY,EACZ,OAKC;IAED,OAAO,OAAO,CAAC,IAAI,CAAoB;QACrC,OAAO,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE;YAChC,MAAM,UAAU,GACd,eAAe,CACb,MAAM,MAAM,CAAC,mBAAmB,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,0BAAmB,CAAC,EAC/D,IAAI,CACL;gBACD,eAAe,CACb,MAAM,MAAM,CAAC,oBAAoB,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,0BAAmB,CAAC,EAChE,IAAI,EACJ,MAAM,CAAC,CAAC,CAAC,CACV;gBACD,eAAe,CACb,MAAM,MAAM,CAAC,mBAAmB,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,0BAAmB,CAAC,EAC/D,IAAI,CACL;gBACD,eAAe,CACb,MAAM,MAAM,CAAC,oBAAoB,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,0BAAmB,CAAC,EAChE,IAAI,EACJ,MAAM,CAAC,CAAC,CAAC,CACV,CAAA;YACH,IAAI,UAAU,EAAE,CAAC;gBACf,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,CAAC,cAAc,EAAE,CAAA;YAC/D,CAAC;YACD,OAAO;gBACL,MAAM,EAAE,SAAS;gBACjB,OAAO,EAAE,OAAO,CAAC,YAAY;aAC9B,CAAA;QACH,CAAC,CAAC;QACF,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;YACtB,UAAU,CACR,GAAG,EAAE,CACH,OAAO,CAAC;gBACN,MAAM,EAAE,SAAS;gBACjB,OAAO,EACL,OAAO,CAAC,cAAc,IAAI,gCAAgC,IAAI,EAAE;aACnE,CAAC,EACJ,OAAO,CAAC,OAAO,IAAI,KAAK,CACzB,CAAA;QACH,CAAC,CAAC;KACH,CAAC,CAAA;AACJ,CAAC"}
|
|
@@ -2,10 +2,16 @@ import { Effects } from '../../../../base/lib/types';
|
|
|
2
2
|
import { HealthCheckResult } from './HealthCheckResult';
|
|
3
3
|
import 'isomorphic-fetch';
|
|
4
4
|
/**
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
*
|
|
5
|
+
* Check whether a URL is reachable by performing an HTTP fetch.
|
|
6
|
+
*
|
|
7
|
+
* Succeeds on any HTTP response (regardless of status code). Fails if the
|
|
8
|
+
* request errors out or exceeds the timeout.
|
|
9
|
+
*
|
|
10
|
+
* @param effects - The effects context
|
|
11
|
+
* @param url - The URL to fetch
|
|
12
|
+
* @param options.timeout - Maximum time (ms) to wait for a response (defaults to 1000)
|
|
13
|
+
* @param options.successMessage - Message shown in the UI on success
|
|
14
|
+
* @param options.errorMessage - Message shown in the UI on failure
|
|
9
15
|
*/
|
|
10
16
|
export declare const checkWebUrl: (effects: Effects, url: string, { timeout, successMessage, errorMessage, }?: {
|
|
11
17
|
timeout?: number | undefined;
|
|
@@ -5,10 +5,16 @@ const util_1 = require("../../util");
|
|
|
5
5
|
const index_1 = require("./index");
|
|
6
6
|
require("isomorphic-fetch");
|
|
7
7
|
/**
|
|
8
|
-
*
|
|
9
|
-
*
|
|
10
|
-
*
|
|
11
|
-
*
|
|
8
|
+
* Check whether a URL is reachable by performing an HTTP fetch.
|
|
9
|
+
*
|
|
10
|
+
* Succeeds on any HTTP response (regardless of status code). Fails if the
|
|
11
|
+
* request errors out or exceeds the timeout.
|
|
12
|
+
*
|
|
13
|
+
* @param effects - The effects context
|
|
14
|
+
* @param url - The URL to fetch
|
|
15
|
+
* @param options.timeout - Maximum time (ms) to wait for a response (defaults to 1000)
|
|
16
|
+
* @param options.successMessage - Message shown in the UI on success
|
|
17
|
+
* @param options.errorMessage - Message shown in the UI on failure
|
|
12
18
|
*/
|
|
13
19
|
const checkWebUrl = async (effects, url, { timeout = 1000, successMessage = `Reached ${url}`, errorMessage = `Error while fetching URL: ${url}`, } = {}) => {
|
|
14
20
|
return Promise.race([fetch(url), (0, index_1.timeoutPromise)(timeout)])
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"checkWebUrl.js","sourceRoot":"","sources":["../../../../../package/lib/health/checkFns/checkWebUrl.ts"],"names":[],"mappings":";;;AACA,qCAAoC;AAEpC,mCAAwC;AACxC,4BAAyB;AAEzB
|
|
1
|
+
{"version":3,"file":"checkWebUrl.js","sourceRoot":"","sources":["../../../../../package/lib/health/checkFns/checkWebUrl.ts"],"names":[],"mappings":";;;AACA,qCAAoC;AAEpC,mCAAwC;AACxC,4BAAyB;AAEzB;;;;;;;;;;;GAWG;AACI,MAAM,WAAW,GAAG,KAAK,EAC9B,OAAgB,EAChB,GAAW,EACX,EACE,OAAO,GAAG,IAAI,EACd,cAAc,GAAG,WAAW,GAAG,EAAE,EACjC,YAAY,GAAG,6BAA6B,GAAG,EAAE,GAClD,GAAG,EAAE,EACsB,EAAE;IAC9B,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,IAAA,sBAAc,EAAC,OAAO,CAAC,CAAC,CAAC;SACvD,IAAI,CACH,CAAC,CAAC,EAAE,EAAE,CACJ,CAAC;QACC,MAAM,EAAE,SAAS;QACjB,OAAO,EAAE,cAAc;KACxB,CAAU,CACd;SACA,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE;QACX,OAAO,CAAC,IAAI,CAAC,6BAA6B,GAAG,EAAE,CAAC,CAAA;QAChD,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAA;QAChC,OAAO,CAAC,KAAK,CAAC,IAAA,cAAO,EAAC,CAAC,CAAC,CAAC,CAAA;QACzB,OAAO,EAAE,MAAM,EAAE,SAAkB,EAAE,OAAO,EAAE,YAAY,EAAE,CAAA;IAC9D,CAAC,CAAC,CAAA;AACN,CAAC,CAAA;AAvBY,QAAA,WAAW,eAuBvB"}
|
|
@@ -2,11 +2,17 @@ import { HealthCheckResult } from './HealthCheckResult';
|
|
|
2
2
|
import { SubContainer } from '../../util/SubContainer';
|
|
3
3
|
import { SDKManifest } from '../../types';
|
|
4
4
|
/**
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
*
|
|
9
|
-
*
|
|
5
|
+
* Run a command in a subcontainer and treat a successful exit as healthy.
|
|
6
|
+
*
|
|
7
|
+
* Useful for health checks that shell out to a CLI tool (e.g.
|
|
8
|
+
* `bitcoin-cli getblockchaininfo`, `pg_isready`). The command's stdout
|
|
9
|
+
* is passed to the `message` formatter on success.
|
|
10
|
+
*
|
|
11
|
+
* @param runCommand - Command and arguments to execute (e.g. `['pg_isready', '-U', 'postgres']`)
|
|
12
|
+
* @param subcontainer - The subcontainer to run the command in
|
|
13
|
+
* @param options.timeout - Maximum time (ms) to wait before reporting failure (defaults to 30000)
|
|
14
|
+
* @param options.errorMessage - Message shown in the UI if the command fails or times out
|
|
15
|
+
* @param options.message - Function that formats the success message from the command's stdout
|
|
10
16
|
*/
|
|
11
17
|
export declare const runHealthScript: <Manifest extends SDKManifest>(runCommand: string[], subcontainer: SubContainer<Manifest>, { timeout, errorMessage, message, }?: {
|
|
12
18
|
timeout?: number | undefined;
|
|
@@ -3,11 +3,17 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.runHealthScript = void 0;
|
|
4
4
|
const index_1 = require("./index");
|
|
5
5
|
/**
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
*
|
|
9
|
-
*
|
|
10
|
-
*
|
|
6
|
+
* Run a command in a subcontainer and treat a successful exit as healthy.
|
|
7
|
+
*
|
|
8
|
+
* Useful for health checks that shell out to a CLI tool (e.g.
|
|
9
|
+
* `bitcoin-cli getblockchaininfo`, `pg_isready`). The command's stdout
|
|
10
|
+
* is passed to the `message` formatter on success.
|
|
11
|
+
*
|
|
12
|
+
* @param runCommand - Command and arguments to execute (e.g. `['pg_isready', '-U', 'postgres']`)
|
|
13
|
+
* @param subcontainer - The subcontainer to run the command in
|
|
14
|
+
* @param options.timeout - Maximum time (ms) to wait before reporting failure (defaults to 30000)
|
|
15
|
+
* @param options.errorMessage - Message shown in the UI if the command fails or times out
|
|
16
|
+
* @param options.message - Function that formats the success message from the command's stdout
|
|
11
17
|
*/
|
|
12
18
|
const runHealthScript = async (runCommand, subcontainer, { timeout = 30000, errorMessage = `Error while running command: ${runCommand}`, message = (res) => `Have ran script ${runCommand} and the result: ${res}`, } = {}) => {
|
|
13
19
|
const res = await Promise.race([
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runHealthScript.js","sourceRoot":"","sources":["../../../../../package/lib/health/checkFns/runHealthScript.ts"],"names":[],"mappings":";;;AACA,mCAAwC;AAIxC
|
|
1
|
+
{"version":3,"file":"runHealthScript.js","sourceRoot":"","sources":["../../../../../package/lib/health/checkFns/runHealthScript.ts"],"names":[],"mappings":";;;AACA,mCAAwC;AAIxC;;;;;;;;;;;;GAYG;AACI,MAAM,eAAe,GAAG,KAAK,EAClC,UAAoB,EACpB,YAAoC,EACpC,EACE,OAAO,GAAG,KAAK,EACf,YAAY,GAAG,gCAAgC,UAAU,EAAE,EAC3D,OAAO,GAAG,CAAC,GAAW,EAAE,EAAE,CACxB,mBAAmB,UAAU,oBAAoB,GAAG,EAAE,MACtD,EAAE,EACsB,EAAE;IAC9B,MAAM,GAAG,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC;QAC7B,YAAY,CAAC,QAAQ,CAAC,UAAU,CAAC;QACjC,IAAA,sBAAc,EAAC,OAAO,CAAC;KACxB,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE;QACb,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,CAAA;QAC1B,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAA;QAC/B,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAA;QAC1B,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,YAAY,EAAuB,CAAA;IACzE,CAAC,CAAC,CAAA;IACF,OAAO;QACL,MAAM,EAAE,SAAS;QACjB,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;KACnB,CAAA;AACxB,CAAC,CAAA;AAvBY,QAAA,eAAe,mBAuB3B"}
|