@start9labs/start-sdk 0.4.0-beta.51 → 0.4.0-beta.52
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/base/lib/actions/input/builder/inputSpec.d.ts +126 -5
- package/base/lib/actions/input/builder/inputSpec.js +219 -9
- package/base/lib/actions/input/builder/inputSpec.js.map +1 -1
- package/base/lib/actions/input/builder/list.d.ts +21 -0
- package/base/lib/actions/input/builder/list.js +21 -0
- package/base/lib/actions/input/builder/list.js.map +1 -1
- package/base/lib/actions/input/builder/value.d.ts +54 -0
- package/base/lib/actions/input/builder/value.js +56 -1
- package/base/lib/actions/input/builder/value.js.map +1 -1
- package/base/lib/actions/input/builder/variants.d.ts +11 -0
- package/base/lib/actions/input/builder/variants.js +17 -2
- package/base/lib/actions/input/builder/variants.js.map +1 -1
- package/base/lib/actions/input/inputSpecConstants.d.ts +203 -5
- package/base/lib/actions/input/inputSpecConstants.js +118 -38
- package/base/lib/actions/input/inputSpecConstants.js.map +1 -1
- package/base/lib/actions/input/inputSpecTypes.d.ts +99 -0
- package/base/lib/actions/input/inputSpecTypes.js +6 -1
- package/base/lib/actions/input/inputSpecTypes.js.map +1 -1
- package/base/lib/actions/setupActions.d.ts +6 -3
- package/base/lib/actions/setupActions.js +6 -3
- package/base/lib/actions/setupActions.js.map +1 -1
- package/base/lib/exver/index.d.ts +233 -2
- package/base/lib/exver/index.js +197 -3
- package/base/lib/exver/index.js.map +1 -1
- package/base/lib/index.d.ts +23 -1
- package/base/lib/index.js +3 -2
- package/base/lib/index.js.map +1 -1
- package/base/lib/inits/setupInit.d.ts +17 -0
- package/base/lib/inits/setupInit.js +7 -0
- package/base/lib/inits/setupInit.js.map +1 -1
- package/base/lib/inits/setupUninit.d.ts +12 -0
- package/base/lib/inits/setupUninit.js +7 -0
- package/base/lib/inits/setupUninit.js.map +1 -1
- package/base/lib/osBindings/ServerHostname.d.ts +1 -0
- package/base/lib/osBindings/ServerHostname.js +4 -0
- package/base/lib/osBindings/ServerHostname.js.map +1 -0
- package/base/lib/osBindings/ServerInfo.d.ts +1 -0
- package/base/lib/osBindings/SetServerHostnameParams.d.ts +4 -0
- package/base/lib/osBindings/SetServerHostnameParams.js +4 -0
- package/base/lib/osBindings/SetServerHostnameParams.js.map +1 -0
- package/base/lib/osBindings/SetupExecuteParams.d.ts +3 -1
- package/base/lib/osBindings/SmtpSecurity.d.ts +1 -0
- package/base/lib/osBindings/SmtpSecurity.js +4 -0
- package/base/lib/osBindings/SmtpSecurity.js.map +1 -0
- package/base/lib/osBindings/SmtpValue.d.ts +4 -2
- package/base/lib/osBindings/SmtpValue.js +0 -1
- package/base/lib/osBindings/SmtpValue.js.map +1 -1
- package/base/lib/osBindings/StartOsRecoveryInfo.d.ts +2 -2
- package/base/lib/osBindings/TestSmtpParams.d.ts +4 -2
- package/base/lib/osBindings/TestSmtpParams.js +0 -1
- package/base/lib/osBindings/TestSmtpParams.js.map +1 -1
- package/base/lib/osBindings/index.d.ts +3 -1
- package/base/lib/s9pk/index.d.ts +66 -0
- package/base/lib/s9pk/index.js +70 -1
- package/base/lib/s9pk/index.js.map +1 -1
- package/base/lib/types.d.ts +68 -2
- package/base/lib/types.js +14 -0
- package/base/lib/types.js.map +1 -1
- package/base/lib/util/asError.d.ts +8 -0
- package/base/lib/util/asError.js +8 -0
- package/base/lib/util/asError.js.map +1 -1
- package/base/lib/util/deepEqual.d.ts +15 -0
- package/base/lib/util/deepEqual.js +15 -0
- package/base/lib/util/deepEqual.js.map +1 -1
- package/base/lib/util/deepMerge.d.ts +18 -0
- package/base/lib/util/deepMerge.js +18 -0
- package/base/lib/util/deepMerge.js.map +1 -1
- package/base/lib/util/getDefaultString.d.ts +8 -0
- package/base/lib/util/getDefaultString.js +8 -0
- package/base/lib/util/getDefaultString.js.map +1 -1
- package/base/lib/util/graph.d.ts +57 -0
- package/base/lib/util/graph.js +47 -0
- package/base/lib/util/graph.js.map +1 -1
- package/base/lib/util/inMs.d.ts +15 -0
- package/base/lib/util/inMs.js +15 -0
- package/base/lib/util/inMs.js.map +1 -1
- package/base/lib/util/ip.d.ts +81 -0
- package/base/lib/util/ip.js +81 -0
- package/base/lib/util/ip.js.map +1 -1
- package/base/lib/util/once.d.ts +13 -0
- package/base/lib/util/once.js +13 -0
- package/base/lib/util/once.js.map +1 -1
- package/base/lib/util/patterns.d.ts +11 -0
- package/base/lib/util/patterns.js +11 -0
- package/base/lib/util/patterns.js.map +1 -1
- package/base/lib/util/regexes.d.ts +38 -0
- package/base/lib/util/regexes.js +38 -0
- package/base/lib/util/regexes.js.map +1 -1
- package/base/lib/util/splitCommand.d.ts +14 -0
- package/base/lib/util/splitCommand.js +14 -0
- package/base/lib/util/splitCommand.js.map +1 -1
- package/base/lib/util/stringFromStdErrOut.d.ts +7 -0
- package/base/lib/util/stringFromStdErrOut.js +7 -0
- package/base/lib/util/stringFromStdErrOut.js.map +1 -1
- package/base/lib/util/typeHelpers.d.ts +35 -0
- package/base/lib/util/typeHelpers.js +7 -0
- package/base/lib/util/typeHelpers.js.map +1 -1
- package/package/lib/StartSdk.d.ts +328 -2
- package/package/lib/StartSdk.js +142 -1
- package/package/lib/StartSdk.js.map +1 -1
- package/package/lib/backup/Backups.d.ts +71 -0
- package/package/lib/backup/Backups.js +69 -0
- package/package/lib/backup/Backups.js.map +1 -1
- package/package/lib/backup/setupBackups.d.ts +14 -0
- package/package/lib/backup/setupBackups.js +9 -0
- package/package/lib/backup/setupBackups.js.map +1 -1
- package/package/lib/health/HealthCheck.d.ts +16 -0
- package/package/lib/health/HealthCheck.js +15 -0
- package/package/lib/health/HealthCheck.js.map +1 -1
- package/package/lib/health/checkFns/HealthCheckResult.d.ts +6 -0
- package/package/lib/health/checkFns/index.d.ts +8 -0
- package/package/lib/health/checkFns/index.js +8 -0
- package/package/lib/health/checkFns/index.js.map +1 -1
- package/package/lib/mainFn/CommandController.d.ts +29 -0
- package/package/lib/mainFn/CommandController.js +29 -0
- package/package/lib/mainFn/CommandController.js.map +1 -1
- package/package/lib/mainFn/Daemon.d.ts +38 -2
- package/package/lib/mainFn/Daemon.js +38 -2
- package/package/lib/mainFn/Daemon.js.map +1 -1
- package/package/lib/mainFn/Daemons.d.ts +31 -0
- package/package/lib/mainFn/Daemons.js +13 -0
- package/package/lib/mainFn/Daemons.js.map +1 -1
- package/package/lib/mainFn/Mounts.d.ts +38 -0
- package/package/lib/mainFn/Mounts.js +38 -0
- package/package/lib/mainFn/Mounts.js.map +1 -1
- package/package/lib/mainFn/index.d.ts +1 -0
- package/package/lib/mainFn/index.js +1 -0
- package/package/lib/mainFn/index.js.map +1 -1
- package/package/lib/manifest/setupManifest.d.ts +9 -0
- package/package/lib/manifest/setupManifest.js +9 -0
- package/package/lib/manifest/setupManifest.js.map +1 -1
- package/package/lib/test/output.sdk.d.ts +192 -2
- package/package/lib/util/SubContainer.d.ts +46 -0
- package/package/lib/util/SubContainer.js +10 -0
- package/package/lib/util/SubContainer.js.map +1 -1
- package/package/lib/util/fileHelper.d.ts +41 -8
- package/package/lib/util/fileHelper.js +6 -4
- package/package/lib/util/fileHelper.js.map +1 -1
- package/package/lib/version/VersionGraph.d.ts +61 -0
- package/package/lib/version/VersionGraph.js +61 -0
- package/package/lib/version/VersionGraph.js.map +1 -1
- package/package/lib/version/VersionInfo.d.ts +17 -0
- package/package/lib/version/VersionInfo.js +12 -0
- package/package/lib/version/VersionInfo.js.map +1 -1
- package/package/package.json +3 -2
- package/package.json +3 -2
|
@@ -1 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Performs a deep structural equality check across all provided arguments.
|
|
3
|
+
* Returns true only if every argument is deeply equal to every other argument.
|
|
4
|
+
* Handles primitives, arrays, and plain objects recursively.
|
|
5
|
+
*
|
|
6
|
+
* @param args - Two or more values to compare for deep equality
|
|
7
|
+
* @returns True if all arguments are deeply equal
|
|
8
|
+
*
|
|
9
|
+
* @example
|
|
10
|
+
* ```ts
|
|
11
|
+
* deepEqual({ a: 1 }, { a: 1 }) // true
|
|
12
|
+
* deepEqual([1, 2], [1, 2], [1, 2]) // true
|
|
13
|
+
* deepEqual({ a: 1 }, { a: 2 }) // false
|
|
14
|
+
* ```
|
|
15
|
+
*/
|
|
1
16
|
export declare function deepEqual(...args: unknown[]): boolean;
|
|
@@ -1,6 +1,21 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.deepEqual = deepEqual;
|
|
4
|
+
/**
|
|
5
|
+
* Performs a deep structural equality check across all provided arguments.
|
|
6
|
+
* Returns true only if every argument is deeply equal to every other argument.
|
|
7
|
+
* Handles primitives, arrays, and plain objects recursively.
|
|
8
|
+
*
|
|
9
|
+
* @param args - Two or more values to compare for deep equality
|
|
10
|
+
* @returns True if all arguments are deeply equal
|
|
11
|
+
*
|
|
12
|
+
* @example
|
|
13
|
+
* ```ts
|
|
14
|
+
* deepEqual({ a: 1 }, { a: 1 }) // true
|
|
15
|
+
* deepEqual([1, 2], [1, 2], [1, 2]) // true
|
|
16
|
+
* deepEqual({ a: 1 }, { a: 2 }) // false
|
|
17
|
+
* ```
|
|
18
|
+
*/
|
|
4
19
|
function deepEqual(...args) {
|
|
5
20
|
const objects = args.filter((x) => typeof x === 'object' && x !== null);
|
|
6
21
|
if (objects.length === 0) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deepEqual.js","sourceRoot":"","sources":["../../../../base/lib/util/deepEqual.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"deepEqual.js","sourceRoot":"","sources":["../../../../base/lib/util/deepEqual.ts"],"names":[],"mappings":";;AAeA,8BAkBC;AAjCD;;;;;;;;;;;;;;GAcG;AACH,SAAgB,SAAS,CAAC,GAAG,IAAe;IAC1C,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CACzB,CAAC,CAAC,EAAe,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,KAAK,IAAI,CACxD,CAAA;IACD,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzB,KAAK,MAAM,CAAC,IAAI,IAAI;YAAE,IAAI,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC;gBAAE,OAAO,KAAK,CAAA;QACrD,OAAO,IAAI,CAAA;IACb,CAAC;IACD,IAAI,OAAO,CAAC,MAAM,KAAK,IAAI,CAAC,MAAM;QAAE,OAAO,KAAK,CAAA;IAChD,IAAI,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC;QAAE,OAAO,KAAK,CAAA;IAC9E,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;IAC/D,KAAK,MAAM,GAAG,IAAI,OAAO,EAAE,CAAC;QAC1B,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;YACxB,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;gBAAE,OAAO,KAAK,CAAA;YAC7B,IAAI,CAAC,SAAS,CAAE,OAAO,CAAC,CAAC,CAAS,CAAC,GAAG,CAAC,EAAG,CAAS,CAAC,GAAG,CAAC,CAAC;gBAAE,OAAO,KAAK,CAAA;QACzE,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAA;AACb,CAAC"}
|
|
@@ -1,4 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Computes the partial difference between two values.
|
|
3
|
+
* Returns `undefined` if the values are equal, or `{ diff }` containing only the changed parts.
|
|
4
|
+
* For arrays, the diff contains only items in `next` that have no deep-equal counterpart in `prev`.
|
|
5
|
+
* For objects, the diff contains only keys whose values changed.
|
|
6
|
+
*
|
|
7
|
+
* @param prev - The original value
|
|
8
|
+
* @param next - The updated value
|
|
9
|
+
* @returns An object containing the diff, or `undefined` if the values are equal
|
|
10
|
+
*/
|
|
1
11
|
export declare function partialDiff<T>(prev: T, next: T): {
|
|
2
12
|
diff: Partial<T>;
|
|
3
13
|
} | undefined;
|
|
14
|
+
/**
|
|
15
|
+
* Deeply merges multiple values together. Objects are merged key-by-key recursively.
|
|
16
|
+
* Arrays are merged by appending items that are not already present (by deep equality).
|
|
17
|
+
* Primitives are resolved by taking the last argument.
|
|
18
|
+
*
|
|
19
|
+
* @param args - The values to merge, applied left to right
|
|
20
|
+
* @returns The merged result
|
|
21
|
+
*/
|
|
4
22
|
export declare function deepMerge(...args: unknown[]): unknown;
|
|
@@ -2,6 +2,16 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.partialDiff = partialDiff;
|
|
4
4
|
exports.deepMerge = deepMerge;
|
|
5
|
+
/**
|
|
6
|
+
* Computes the partial difference between two values.
|
|
7
|
+
* Returns `undefined` if the values are equal, or `{ diff }` containing only the changed parts.
|
|
8
|
+
* For arrays, the diff contains only items in `next` that have no deep-equal counterpart in `prev`.
|
|
9
|
+
* For objects, the diff contains only keys whose values changed.
|
|
10
|
+
*
|
|
11
|
+
* @param prev - The original value
|
|
12
|
+
* @param next - The updated value
|
|
13
|
+
* @returns An object containing the diff, or `undefined` if the values are equal
|
|
14
|
+
*/
|
|
5
15
|
function partialDiff(prev, next) {
|
|
6
16
|
if (prev === next) {
|
|
7
17
|
return;
|
|
@@ -53,6 +63,14 @@ function partialDiff(prev, next) {
|
|
|
53
63
|
return { diff: next };
|
|
54
64
|
}
|
|
55
65
|
}
|
|
66
|
+
/**
|
|
67
|
+
* Deeply merges multiple values together. Objects are merged key-by-key recursively.
|
|
68
|
+
* Arrays are merged by appending items that are not already present (by deep equality).
|
|
69
|
+
* Primitives are resolved by taking the last argument.
|
|
70
|
+
*
|
|
71
|
+
* @param args - The values to merge, applied left to right
|
|
72
|
+
* @returns The merged result
|
|
73
|
+
*/
|
|
56
74
|
function deepMerge(...args) {
|
|
57
75
|
const lastItem = args[args.length - 1];
|
|
58
76
|
if (typeof lastItem !== 'object' || !lastItem)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deepMerge.js","sourceRoot":"","sources":["../../../../base/lib/util/deepMerge.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"deepMerge.js","sourceRoot":"","sources":["../../../../base/lib/util/deepMerge.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,2 +1,10 @@
|
|
|
1
1
|
import { DefaultString } from '../actions/input/inputSpecTypes';
|
|
2
|
+
/**
|
|
3
|
+
* Resolves a DefaultString spec into a concrete string value.
|
|
4
|
+
* If the spec is a plain string, returns it directly.
|
|
5
|
+
* If it is a random-string specification, generates a random string accordingly.
|
|
6
|
+
*
|
|
7
|
+
* @param defaultSpec - A string literal or a random-string generation spec
|
|
8
|
+
* @returns The resolved default string value
|
|
9
|
+
*/
|
|
2
10
|
export declare function getDefaultString(defaultSpec: DefaultString): string;
|
|
@@ -2,6 +2,14 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.getDefaultString = getDefaultString;
|
|
4
4
|
const getRandomString_1 = require("./getRandomString");
|
|
5
|
+
/**
|
|
6
|
+
* Resolves a DefaultString spec into a concrete string value.
|
|
7
|
+
* If the spec is a plain string, returns it directly.
|
|
8
|
+
* If it is a random-string specification, generates a random string accordingly.
|
|
9
|
+
*
|
|
10
|
+
* @param defaultSpec - A string literal or a random-string generation spec
|
|
11
|
+
* @returns The resolved default string value
|
|
12
|
+
*/
|
|
5
13
|
function getDefaultString(defaultSpec) {
|
|
6
14
|
if (typeof defaultSpec === 'string') {
|
|
7
15
|
return defaultSpec;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getDefaultString.js","sourceRoot":"","sources":["../../../../base/lib/util/getDefaultString.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"getDefaultString.js","sourceRoot":"","sources":["../../../../base/lib/util/getDefaultString.ts"],"names":[],"mappings":";;AAWA,4CAMC;AAhBD,uDAAmD;AAEnD;;;;;;;GAOG;AACH,SAAgB,gBAAgB,CAAC,WAA0B;IACzD,IAAI,OAAO,WAAW,KAAK,QAAQ,EAAE,CAAC;QACpC,OAAO,WAAW,CAAA;IACpB,CAAC;SAAM,CAAC;QACN,OAAO,IAAA,iCAAe,EAAC,WAAW,CAAC,CAAA;IACrC,CAAC;AACH,CAAC"}
|
package/base/lib/util/graph.d.ts
CHANGED
|
@@ -1,20 +1,77 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* A vertex (node) in a directed graph, holding metadata and a list of connected edges.
|
|
3
|
+
* @typeParam VMetadata - The type of metadata stored on vertices
|
|
4
|
+
* @typeParam EMetadata - The type of metadata stored on edges
|
|
5
|
+
*/
|
|
1
6
|
export type Vertex<VMetadata = null, EMetadata = null> = {
|
|
2
7
|
metadata: VMetadata;
|
|
3
8
|
edges: Array<Edge<EMetadata, VMetadata>>;
|
|
4
9
|
};
|
|
10
|
+
/**
|
|
11
|
+
* A directed edge connecting two vertices, with its own metadata.
|
|
12
|
+
* @typeParam EMetadata - The type of metadata stored on edges
|
|
13
|
+
* @typeParam VMetadata - The type of metadata stored on the connected vertices
|
|
14
|
+
*/
|
|
5
15
|
export type Edge<EMetadata = null, VMetadata = null> = {
|
|
6
16
|
metadata: EMetadata;
|
|
7
17
|
from: Vertex<VMetadata, EMetadata>;
|
|
8
18
|
to: Vertex<VMetadata, EMetadata>;
|
|
9
19
|
};
|
|
20
|
+
/**
|
|
21
|
+
* A directed graph data structure supporting vertex/edge management and graph traversal algorithms
|
|
22
|
+
* including breadth-first search, reverse BFS, and shortest path computation.
|
|
23
|
+
*
|
|
24
|
+
* @typeParam VMetadata - The type of metadata stored on vertices
|
|
25
|
+
* @typeParam EMetadata - The type of metadata stored on edges
|
|
26
|
+
*/
|
|
10
27
|
export declare class Graph<VMetadata = null, EMetadata = null> {
|
|
11
28
|
private readonly vertices;
|
|
12
29
|
constructor();
|
|
30
|
+
/**
|
|
31
|
+
* Serializes the graph to a JSON string for debugging.
|
|
32
|
+
* @param metadataRepr - Optional function to transform metadata values before serialization
|
|
33
|
+
* @returns A pretty-printed JSON string of the graph structure
|
|
34
|
+
*/
|
|
13
35
|
dump(metadataRepr?: (metadata: VMetadata | EMetadata) => any): string;
|
|
36
|
+
/**
|
|
37
|
+
* Adds a new vertex to the graph, optionally connecting it to existing vertices via edges.
|
|
38
|
+
* @param metadata - The metadata to attach to the new vertex
|
|
39
|
+
* @param fromEdges - Edges pointing from existing vertices to this new vertex
|
|
40
|
+
* @param toEdges - Edges pointing from this new vertex to existing vertices
|
|
41
|
+
* @returns The newly created vertex
|
|
42
|
+
*/
|
|
14
43
|
addVertex(metadata: VMetadata, fromEdges: Array<Omit<Edge<EMetadata, VMetadata>, 'to'>>, toEdges: Array<Omit<Edge<EMetadata, VMetadata>, 'from'>>): Vertex<VMetadata, EMetadata>;
|
|
44
|
+
/**
|
|
45
|
+
* Returns a generator that yields all vertices matching the predicate.
|
|
46
|
+
* @param predicate - A function to test each vertex
|
|
47
|
+
* @returns A generator of matching vertices
|
|
48
|
+
*/
|
|
15
49
|
findVertex(predicate: (vertex: Vertex<VMetadata, EMetadata>) => boolean): Generator<Vertex<VMetadata, EMetadata>, null>;
|
|
50
|
+
/**
|
|
51
|
+
* Adds a directed edge between two existing vertices.
|
|
52
|
+
* @param metadata - The metadata to attach to the edge
|
|
53
|
+
* @param from - The source vertex
|
|
54
|
+
* @param to - The destination vertex
|
|
55
|
+
* @returns The newly created edge
|
|
56
|
+
*/
|
|
16
57
|
addEdge(metadata: EMetadata, from: Vertex<VMetadata, EMetadata>, to: Vertex<VMetadata, EMetadata>): Edge<EMetadata, VMetadata>;
|
|
58
|
+
/**
|
|
59
|
+
* Performs a breadth-first traversal following outgoing edges from the starting vertex or vertices.
|
|
60
|
+
* @param from - A starting vertex, or a predicate to select multiple starting vertices
|
|
61
|
+
* @returns A generator yielding vertices in BFS order
|
|
62
|
+
*/
|
|
17
63
|
breadthFirstSearch(from: Vertex<VMetadata, EMetadata> | ((vertex: Vertex<VMetadata, EMetadata>) => boolean)): Generator<Vertex<VMetadata, EMetadata>, null>;
|
|
64
|
+
/**
|
|
65
|
+
* Performs a reverse breadth-first traversal following incoming edges from the starting vertex or vertices.
|
|
66
|
+
* @param to - A starting vertex, or a predicate to select multiple starting vertices
|
|
67
|
+
* @returns A generator yielding vertices in reverse BFS order
|
|
68
|
+
*/
|
|
18
69
|
reverseBreadthFirstSearch(to: Vertex<VMetadata, EMetadata> | ((vertex: Vertex<VMetadata, EMetadata>) => boolean)): Generator<Vertex<VMetadata, EMetadata>, null>;
|
|
70
|
+
/**
|
|
71
|
+
* Finds the shortest path (by edge count) between two vertices using BFS.
|
|
72
|
+
* @param from - The starting vertex, or a predicate to select starting vertices
|
|
73
|
+
* @param to - The target vertex, or a predicate to identify target vertices
|
|
74
|
+
* @returns An array of edges forming the shortest path, or `null` if no path exists
|
|
75
|
+
*/
|
|
19
76
|
shortestPath(from: Vertex<VMetadata, EMetadata> | ((vertex: Vertex<VMetadata, EMetadata>) => boolean), to: Vertex<VMetadata, EMetadata> | ((vertex: Vertex<VMetadata, EMetadata>) => boolean)): Array<Edge<EMetadata, VMetadata>> | null;
|
|
20
77
|
}
|
package/base/lib/util/graph.js
CHANGED
|
@@ -1,10 +1,22 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.Graph = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* A directed graph data structure supporting vertex/edge management and graph traversal algorithms
|
|
6
|
+
* including breadth-first search, reverse BFS, and shortest path computation.
|
|
7
|
+
*
|
|
8
|
+
* @typeParam VMetadata - The type of metadata stored on vertices
|
|
9
|
+
* @typeParam EMetadata - The type of metadata stored on edges
|
|
10
|
+
*/
|
|
4
11
|
class Graph {
|
|
5
12
|
constructor() {
|
|
6
13
|
this.vertices = [];
|
|
7
14
|
}
|
|
15
|
+
/**
|
|
16
|
+
* Serializes the graph to a JSON string for debugging.
|
|
17
|
+
* @param metadataRepr - Optional function to transform metadata values before serialization
|
|
18
|
+
* @returns A pretty-printed JSON string of the graph structure
|
|
19
|
+
*/
|
|
8
20
|
dump(metadataRepr = (a) => a) {
|
|
9
21
|
const seen = new WeakSet();
|
|
10
22
|
return JSON.stringify(this.vertices, (k, v) => {
|
|
@@ -17,6 +29,13 @@ class Graph {
|
|
|
17
29
|
return v;
|
|
18
30
|
}, 2);
|
|
19
31
|
}
|
|
32
|
+
/**
|
|
33
|
+
* Adds a new vertex to the graph, optionally connecting it to existing vertices via edges.
|
|
34
|
+
* @param metadata - The metadata to attach to the new vertex
|
|
35
|
+
* @param fromEdges - Edges pointing from existing vertices to this new vertex
|
|
36
|
+
* @param toEdges - Edges pointing from this new vertex to existing vertices
|
|
37
|
+
* @returns The newly created vertex
|
|
38
|
+
*/
|
|
20
39
|
addVertex(metadata, fromEdges, toEdges) {
|
|
21
40
|
const vertex = {
|
|
22
41
|
metadata,
|
|
@@ -43,6 +62,11 @@ class Graph {
|
|
|
43
62
|
this.vertices.push(vertex);
|
|
44
63
|
return vertex;
|
|
45
64
|
}
|
|
65
|
+
/**
|
|
66
|
+
* Returns a generator that yields all vertices matching the predicate.
|
|
67
|
+
* @param predicate - A function to test each vertex
|
|
68
|
+
* @returns A generator of matching vertices
|
|
69
|
+
*/
|
|
46
70
|
findVertex(predicate) {
|
|
47
71
|
const veritces = this.vertices;
|
|
48
72
|
function* gen() {
|
|
@@ -55,6 +79,13 @@ class Graph {
|
|
|
55
79
|
}
|
|
56
80
|
return gen();
|
|
57
81
|
}
|
|
82
|
+
/**
|
|
83
|
+
* Adds a directed edge between two existing vertices.
|
|
84
|
+
* @param metadata - The metadata to attach to the edge
|
|
85
|
+
* @param from - The source vertex
|
|
86
|
+
* @param to - The destination vertex
|
|
87
|
+
* @returns The newly created edge
|
|
88
|
+
*/
|
|
58
89
|
addEdge(metadata, from, to) {
|
|
59
90
|
const edge = {
|
|
60
91
|
metadata,
|
|
@@ -65,6 +96,11 @@ class Graph {
|
|
|
65
96
|
edge.to.edges.push(edge);
|
|
66
97
|
return edge;
|
|
67
98
|
}
|
|
99
|
+
/**
|
|
100
|
+
* Performs a breadth-first traversal following outgoing edges from the starting vertex or vertices.
|
|
101
|
+
* @param from - A starting vertex, or a predicate to select multiple starting vertices
|
|
102
|
+
* @returns A generator yielding vertices in BFS order
|
|
103
|
+
*/
|
|
68
104
|
breadthFirstSearch(from) {
|
|
69
105
|
const visited = [];
|
|
70
106
|
function* rec(vertex) {
|
|
@@ -110,6 +146,11 @@ class Graph {
|
|
|
110
146
|
return rec(from);
|
|
111
147
|
}
|
|
112
148
|
}
|
|
149
|
+
/**
|
|
150
|
+
* Performs a reverse breadth-first traversal following incoming edges from the starting vertex or vertices.
|
|
151
|
+
* @param to - A starting vertex, or a predicate to select multiple starting vertices
|
|
152
|
+
* @returns A generator yielding vertices in reverse BFS order
|
|
153
|
+
*/
|
|
113
154
|
reverseBreadthFirstSearch(to) {
|
|
114
155
|
const visited = [];
|
|
115
156
|
function* rec(vertex) {
|
|
@@ -155,6 +196,12 @@ class Graph {
|
|
|
155
196
|
return rec(to);
|
|
156
197
|
}
|
|
157
198
|
}
|
|
199
|
+
/**
|
|
200
|
+
* Finds the shortest path (by edge count) between two vertices using BFS.
|
|
201
|
+
* @param from - The starting vertex, or a predicate to select starting vertices
|
|
202
|
+
* @param to - The target vertex, or a predicate to identify target vertices
|
|
203
|
+
* @returns An array of edges forming the shortest path, or `null` if no path exists
|
|
204
|
+
*/
|
|
158
205
|
shortestPath(from, to) {
|
|
159
206
|
const isDone = to instanceof Function
|
|
160
207
|
? to
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"graph.js","sourceRoot":"","sources":["../../../../base/lib/util/graph.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"graph.js","sourceRoot":"","sources":["../../../../base/lib/util/graph.ts"],"names":[],"mappings":"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"}
|
package/base/lib/util/inMs.d.ts
CHANGED
|
@@ -1 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Converts a human-readable time string to milliseconds.
|
|
3
|
+
* Supports units: `ms`, `s`, `m`, `h`, `d`. If a number is passed, it is returned as-is.
|
|
4
|
+
*
|
|
5
|
+
* @param time - A time string (e.g. `"500ms"`, `"1.5s"`, `"2h"`) or a numeric millisecond value
|
|
6
|
+
* @returns The time in milliseconds, or `undefined` if `time` is falsy
|
|
7
|
+
* @throws Error if the string format is invalid
|
|
8
|
+
*
|
|
9
|
+
* @example
|
|
10
|
+
* ```ts
|
|
11
|
+
* inMs("2s") // 2000
|
|
12
|
+
* inMs("1.5h") // 5400000
|
|
13
|
+
* inMs(500) // 500
|
|
14
|
+
* ```
|
|
15
|
+
*/
|
|
1
16
|
export declare const inMs: (time?: string | number) => number | undefined;
|
package/base/lib/util/inMs.js
CHANGED
|
@@ -24,6 +24,21 @@ const digitsMs = (digits, multiplier) => {
|
|
|
24
24
|
const divideBy = multiplier / Math.pow(10, digits.length - 1);
|
|
25
25
|
return Math.round(value * divideBy);
|
|
26
26
|
};
|
|
27
|
+
/**
|
|
28
|
+
* Converts a human-readable time string to milliseconds.
|
|
29
|
+
* Supports units: `ms`, `s`, `m`, `h`, `d`. If a number is passed, it is returned as-is.
|
|
30
|
+
*
|
|
31
|
+
* @param time - A time string (e.g. `"500ms"`, `"1.5s"`, `"2h"`) or a numeric millisecond value
|
|
32
|
+
* @returns The time in milliseconds, or `undefined` if `time` is falsy
|
|
33
|
+
* @throws Error if the string format is invalid
|
|
34
|
+
*
|
|
35
|
+
* @example
|
|
36
|
+
* ```ts
|
|
37
|
+
* inMs("2s") // 2000
|
|
38
|
+
* inMs("1.5h") // 5400000
|
|
39
|
+
* inMs(500) // 500
|
|
40
|
+
* ```
|
|
41
|
+
*/
|
|
27
42
|
const inMs = (time) => {
|
|
28
43
|
if (typeof time === 'number')
|
|
29
44
|
return time;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"inMs.js","sourceRoot":"","sources":["../../../../base/lib/util/inMs.ts"],"names":[],"mappings":";;;AAAA,MAAM,cAAc,GAAG,mCAAmC,CAAA;AAE1D,MAAM,cAAc,GAAG,CAAC,IAAa,EAAE,EAAE;IACvC,IAAI,CAAC,IAAI;QAAE,OAAO,CAAC,CAAA;IACnB,IAAI,IAAI,KAAK,IAAI;QAAE,OAAO,CAAC,CAAA;IAC3B,IAAI,IAAI,KAAK,GAAG;QAAE,OAAO,IAAI,CAAA;IAC7B,IAAI,IAAI,KAAK,GAAG;QAAE,OAAO,IAAI,GAAG,EAAE,CAAA;IAClC,IAAI,IAAI,KAAK,GAAG;QAAE,OAAO,IAAI,GAAG,EAAE,GAAG,EAAE,CAAA;IACvC,IAAI,IAAI,KAAK,GAAG;QAAE,OAAO,IAAI,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAA;IAC5C,MAAM,IAAI,KAAK,CAAC,iBAAiB,IAAI,EAAE,CAAC,CAAA;AAC1C,CAAC,CAAA;AACD,MAAM,QAAQ,GAAG,CAAC,MAAqB,EAAE,UAAkB,EAAE,EAAE;IAC7D,IAAI,CAAC,MAAM;QAAE,OAAO,CAAC,CAAA;IACrB,MAAM,KAAK,GAAG,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAA;IACvC,MAAM,QAAQ,GAAG,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAA;IAC7D,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,QAAQ,CAAC,CAAA;AACrC,CAAC,CAAA;
|
|
1
|
+
{"version":3,"file":"inMs.js","sourceRoot":"","sources":["../../../../base/lib/util/inMs.ts"],"names":[],"mappings":";;;AAAA,MAAM,cAAc,GAAG,mCAAmC,CAAA;AAE1D,MAAM,cAAc,GAAG,CAAC,IAAa,EAAE,EAAE;IACvC,IAAI,CAAC,IAAI;QAAE,OAAO,CAAC,CAAA;IACnB,IAAI,IAAI,KAAK,IAAI;QAAE,OAAO,CAAC,CAAA;IAC3B,IAAI,IAAI,KAAK,GAAG;QAAE,OAAO,IAAI,CAAA;IAC7B,IAAI,IAAI,KAAK,GAAG;QAAE,OAAO,IAAI,GAAG,EAAE,CAAA;IAClC,IAAI,IAAI,KAAK,GAAG;QAAE,OAAO,IAAI,GAAG,EAAE,GAAG,EAAE,CAAA;IACvC,IAAI,IAAI,KAAK,GAAG;QAAE,OAAO,IAAI,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAA;IAC5C,MAAM,IAAI,KAAK,CAAC,iBAAiB,IAAI,EAAE,CAAC,CAAA;AAC1C,CAAC,CAAA;AACD,MAAM,QAAQ,GAAG,CAAC,MAAqB,EAAE,UAAkB,EAAE,EAAE;IAC7D,IAAI,CAAC,MAAM;QAAE,OAAO,CAAC,CAAA;IACrB,MAAM,KAAK,GAAG,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAA;IACvC,MAAM,QAAQ,GAAG,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAA;IAC7D,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,QAAQ,CAAC,CAAA;AACrC,CAAC,CAAA;AACD;;;;;;;;;;;;;;GAcG;AACI,MAAM,IAAI,GAAG,CAAC,IAAsB,EAAE,EAAE;IAC7C,IAAI,OAAO,IAAI,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAA;IACzC,IAAI,CAAC,IAAI;QAAE,OAAO,SAAS,CAAA;IAC3B,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,CAAA;IAC1C,IAAI,CAAC,OAAO;QAAE,MAAM,IAAI,KAAK,CAAC,wBAAwB,IAAI,EAAE,CAAC,CAAA;IAC7D,MAAM,CAAC,CAAC,EAAE,YAAY,EAAE,MAAM,EAAE,IAAI,CAAC,GAAG,OAAO,CAAA;IAC/C,MAAM,UAAU,GAAG,cAAc,CAAC,IAAI,CAAC,CAAA;IACvC,MAAM,UAAU,GAAG,QAAQ,CAAC,YAAY,IAAI,GAAG,CAAC,GAAG,UAAU,CAAA;IAC7D,MAAM,WAAW,GAAG,QAAQ,CAAC,MAAM,EAAE,UAAU,CAAC,CAAA;IAEhD,OAAO,UAAU,GAAG,WAAW,CAAA;AACjC,CAAC,CAAA;AAXY,QAAA,IAAI,QAWhB"}
|
package/base/lib/util/ip.d.ts
CHANGED
|
@@ -1,30 +1,111 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Represents an IPv4 or IPv6 address as raw octets with arithmetic and comparison operations.
|
|
3
|
+
*
|
|
4
|
+
* IPv4 addresses have 4 octets, IPv6 addresses have 16 octets.
|
|
5
|
+
*
|
|
6
|
+
* @example
|
|
7
|
+
* ```ts
|
|
8
|
+
* const ip = IpAddress.parse("192.168.1.1")
|
|
9
|
+
* const next = ip.add(1) // 192.168.1.2
|
|
10
|
+
* ```
|
|
11
|
+
*/
|
|
1
12
|
export declare class IpAddress {
|
|
2
13
|
octets: number[];
|
|
3
14
|
private renderedAddress;
|
|
4
15
|
private renderedOctets;
|
|
5
16
|
protected constructor(octets: number[], renderedAddress: string);
|
|
17
|
+
/**
|
|
18
|
+
* Parses an IP address string into an IpAddress instance.
|
|
19
|
+
* Supports both IPv4 dotted-decimal and IPv6 colon-hex notation (including `::` shorthand).
|
|
20
|
+
* @param address - The IP address string to parse
|
|
21
|
+
* @returns A new IpAddress instance
|
|
22
|
+
* @throws Error if the address format is invalid
|
|
23
|
+
*/
|
|
6
24
|
static parse(address: string): IpAddress;
|
|
25
|
+
/**
|
|
26
|
+
* Creates an IpAddress from a raw octet array.
|
|
27
|
+
* @param octets - Array of 4 octets (IPv4) or 16 octets (IPv6), each 0-255
|
|
28
|
+
* @returns A new IpAddress instance
|
|
29
|
+
* @throws Error if the octet array length is not 4 or 16, or any octet exceeds 255
|
|
30
|
+
*/
|
|
7
31
|
static fromOctets(octets: number[]): IpAddress;
|
|
32
|
+
/** Returns true if this is an IPv4 address (4 octets). */
|
|
8
33
|
isIpv4(): boolean;
|
|
34
|
+
/** Returns true if this is an IPv6 address (16 octets). */
|
|
9
35
|
isIpv6(): boolean;
|
|
36
|
+
/** Returns true if this is a public IPv4 address (not in any private range). */
|
|
10
37
|
isPublic(): boolean;
|
|
38
|
+
/**
|
|
39
|
+
* Returns a new IpAddress incremented by `n`.
|
|
40
|
+
* @param n - The integer amount to add (fractional part is truncated)
|
|
41
|
+
* @returns A new IpAddress with the result
|
|
42
|
+
* @throws Error on overflow
|
|
43
|
+
*/
|
|
11
44
|
add(n: number): IpAddress;
|
|
45
|
+
/**
|
|
46
|
+
* Returns a new IpAddress decremented by `n`.
|
|
47
|
+
* @param n - The integer amount to subtract (fractional part is truncated)
|
|
48
|
+
* @returns A new IpAddress with the result
|
|
49
|
+
* @throws Error on underflow
|
|
50
|
+
*/
|
|
12
51
|
sub(n: number): IpAddress;
|
|
52
|
+
/**
|
|
53
|
+
* Compares this address to another, returning -1, 0, or 1.
|
|
54
|
+
* @param other - An IpAddress instance or string to compare against
|
|
55
|
+
* @returns -1 if this < other, 0 if equal, 1 if this > other
|
|
56
|
+
*/
|
|
13
57
|
cmp(other: string | IpAddress): -1 | 0 | 1;
|
|
58
|
+
/** The string representation of this IP address (e.g. `"192.168.1.1"` or `"::1"`). Cached and recomputed only when octets change. */
|
|
14
59
|
get address(): string;
|
|
15
60
|
}
|
|
61
|
+
/**
|
|
62
|
+
* Represents an IP network (CIDR notation) combining an IP address with a prefix length.
|
|
63
|
+
* Extends IpAddress with network-specific operations like containment checks and broadcast calculation.
|
|
64
|
+
*
|
|
65
|
+
* @example
|
|
66
|
+
* ```ts
|
|
67
|
+
* const net = IpNet.parse("192.168.1.0/24")
|
|
68
|
+
* net.contains("192.168.1.100") // true
|
|
69
|
+
* net.broadcast() // 192.168.1.255
|
|
70
|
+
* ```
|
|
71
|
+
*/
|
|
16
72
|
export declare class IpNet extends IpAddress {
|
|
17
73
|
prefix: number;
|
|
18
74
|
private constructor();
|
|
75
|
+
/**
|
|
76
|
+
* Creates an IpNet from an IpAddress and prefix length.
|
|
77
|
+
* @param ip - The base IP address
|
|
78
|
+
* @param prefix - The CIDR prefix length (0-32 for IPv4, 0-128 for IPv6)
|
|
79
|
+
* @returns A new IpNet instance
|
|
80
|
+
* @throws Error if prefix exceeds the address bit length
|
|
81
|
+
*/
|
|
19
82
|
static fromIpPrefix(ip: IpAddress, prefix: number): IpNet;
|
|
83
|
+
/**
|
|
84
|
+
* Parses a CIDR notation string (e.g. `"192.168.1.0/24"`) into an IpNet.
|
|
85
|
+
* @param ipnet - The CIDR string to parse
|
|
86
|
+
* @returns A new IpNet instance
|
|
87
|
+
*/
|
|
20
88
|
static parse(ipnet: string): IpNet;
|
|
89
|
+
/**
|
|
90
|
+
* Checks whether this network contains the given address or subnet.
|
|
91
|
+
* @param address - An IP address or subnet (string, IpAddress, or IpNet)
|
|
92
|
+
* @returns True if the address falls within this network's range
|
|
93
|
+
*/
|
|
21
94
|
contains(address: string | IpAddress | IpNet): boolean;
|
|
95
|
+
/** Returns the network address (all host bits zeroed) for this subnet. */
|
|
22
96
|
zero(): IpAddress;
|
|
97
|
+
/** Returns the broadcast address (all host bits set to 1) for this subnet. */
|
|
23
98
|
broadcast(): IpAddress;
|
|
99
|
+
/** The CIDR notation string for this network (e.g. `"192.168.1.0/24"`). */
|
|
24
100
|
get ipnet(): string;
|
|
25
101
|
}
|
|
102
|
+
/** All private IPv4 ranges: loopback (127.0.0.0/8), Class A (10.0.0.0/8), Class B (172.16.0.0/12), Class C (192.168.0.0/16). */
|
|
26
103
|
export declare const PRIVATE_IPV4_RANGES: IpNet[];
|
|
104
|
+
/** IPv4 loopback network (127.0.0.0/8). */
|
|
27
105
|
export declare const IPV4_LOOPBACK: IpNet;
|
|
106
|
+
/** IPv6 loopback address (::1/128). */
|
|
28
107
|
export declare const IPV6_LOOPBACK: IpNet;
|
|
108
|
+
/** IPv6 link-local network (fe80::/10). */
|
|
29
109
|
export declare const IPV6_LINK_LOCAL: IpNet;
|
|
110
|
+
/** Carrier-Grade NAT (CGNAT) address range (100.64.0.0/10), per RFC 6598. */
|
|
30
111
|
export declare const CGNAT: IpNet;
|