@fnndsc/stratus 0.5.0 → 0.6.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/dist/backend.js +2 -0
- package/dist/backend.js.map +1 -1
- package/dist/cloud/builder.d.ts +7 -1
- package/dist/cloud/fake/builder.d.ts +5 -1
- package/dist/cloud/fake/builder.js +19 -4
- package/dist/cloud/fake/builder.js.map +1 -1
- package/dist/cloud/oci/buildApi.d.ts +18 -0
- package/dist/cloud/oci/buildApi.js +63 -0
- package/dist/cloud/oci/buildApi.js.map +1 -1
- package/dist/cloud/oci/builder.js +45 -5
- package/dist/cloud/oci/builder.js.map +1 -1
- package/dist/cloud/oci/rmApi.d.ts +2 -0
- package/dist/cloud/oci/rmApi.js +10 -0
- package/dist/cloud/oci/rmApi.js.map +1 -1
- package/dist/commands/build.js +10 -25
- package/dist/commands/build.js.map +1 -1
- package/dist/commands/capacity.d.ts +9 -1
- package/dist/commands/capacity.js +39 -10
- package/dist/commands/capacity.js.map +1 -1
- package/dist/commands/domain.d.ts +6 -10
- package/dist/commands/domain.js +29 -39
- package/dist/commands/domain.js.map +1 -1
- package/dist/commands/teardown.js +40 -14
- package/dist/commands/teardown.js.map +1 -1
- package/dist/domain/found.d.ts +84 -0
- package/dist/domain/found.js +152 -0
- package/dist/domain/found.js.map +1 -0
- package/dist/domain/readout.js +13 -7
- package/dist/domain/readout.js.map +1 -1
- package/dist/domains/harborOci.d.ts +8 -1
- package/dist/domains/harborOci.js.map +1 -1
- package/package.json +4 -4
|
@@ -8,6 +8,8 @@ import { readFileSync } from 'node:fs';
|
|
|
8
8
|
import chalk from 'chalk';
|
|
9
9
|
import { envelope_error, envelope_ok } from '@fnndsc/menu';
|
|
10
10
|
import { repl_question, sink_dataLine, surface_get } from '@fnndsc/brasa/core';
|
|
11
|
+
import { foundDomains_describe, foundRecord_make } from '../domain/found.js';
|
|
12
|
+
import { SPEC_DEFAULT } from '../domain/spec.js';
|
|
11
13
|
import { clusterVolumes_read, teardownRun_make } from '../domain/teardown.js';
|
|
12
14
|
import { job_runFollowed } from './build.js';
|
|
13
15
|
import { verifyReach_default } from './verify.js';
|
|
@@ -22,21 +24,43 @@ export async function domainTeardown_run(context, args) {
|
|
|
22
24
|
if (args.length !== 1 || args[0].startsWith('-'))
|
|
23
25
|
return envelope_error('', undefined, 'domain teardown: usage: domain teardown <name>\n');
|
|
24
26
|
const name = args[0];
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
27
|
+
let domain = context.domains.domain_read(name);
|
|
28
|
+
let record = context.store.record_read(name);
|
|
29
|
+
const builder = context.builder;
|
|
30
|
+
if (builder === null || builder.teardown_run === undefined)
|
|
31
|
+
return envelope_error('', undefined, 'domain teardown: this cloud cannot tear a domain down yet\n');
|
|
32
|
+
if (domain === null || record === null) {
|
|
33
|
+
// A domain the session keeps nothing of: found in the tenancy with nothing
|
|
34
|
+
// left of it but its tag, its leftovers go without an adoption first
|
|
35
|
+
// (docs/stratus.adoc, D15). Anything else of it is adopted first.
|
|
36
|
+
const region = context.region();
|
|
37
|
+
if (region === null)
|
|
38
|
+
return envelope_error('', undefined, `domain teardown: ${name}: no such domain\n`);
|
|
39
|
+
let found;
|
|
40
|
+
try {
|
|
41
|
+
found = (await foundDomains_describe(context.driver, builder, region, context.store.names_list())).find((entry) => entry.name === name);
|
|
42
|
+
}
|
|
43
|
+
catch (error) {
|
|
44
|
+
return envelope_error('', undefined, `domain teardown: ${name}: the tenancy was not searched: ${error instanceof Error ? error.message : String(error)}\n`);
|
|
45
|
+
}
|
|
46
|
+
if (found === undefined)
|
|
47
|
+
return envelope_error('', undefined, `domain teardown: ${name}: no such domain\n`);
|
|
48
|
+
if (found.found?.condition !== 'GONE')
|
|
49
|
+
return envelope_error('', undefined, `domain teardown: ${name}: found in the tenancy, not adopted: domain adopt ${name} first\n`);
|
|
50
|
+
if (surface_get().capabilities.tasks !== true)
|
|
51
|
+
return envelope_error('', undefined, `domain teardown: ${name}: Operation not permitted: tearing down needs the tasks tier\n`);
|
|
52
|
+
context.store.create(foundRecord_make(found, new Date().toISOString(), false), found.found.spec ?? SPEC_DEFAULT);
|
|
53
|
+
domain = context.domains.domain_read(name);
|
|
54
|
+
record = context.store.record_read(name);
|
|
55
|
+
if (domain === null || record === null)
|
|
56
|
+
return envelope_error('', undefined, `domain teardown: ${name}: could not be kept here\n`);
|
|
57
|
+
}
|
|
58
|
+
if (domain.origin !== 'built')
|
|
30
59
|
return envelope_error('', undefined, `domain teardown: ${name}: Operation not permitted: read from a harbor-oci checkout, not built here\n`);
|
|
31
|
-
if (record.adopted !== undefined)
|
|
32
|
-
return envelope_error('', undefined, `domain teardown: ${name}: Operation not permitted: adopted, not built here\n`);
|
|
33
60
|
if (record.gone !== undefined)
|
|
34
61
|
return envelope_ok(`${name}: already torn down (${record.gone.slice(0, 16)})\n`);
|
|
35
62
|
if (record.protected !== false)
|
|
36
63
|
return envelope_error('', undefined, `domain teardown: ${name}: Operation not permitted: protected (domain protect ${name} off lifts it, as its own line)\n`);
|
|
37
|
-
const builder = context.builder;
|
|
38
|
-
if (builder === null || builder.teardown_run === undefined)
|
|
39
|
-
return envelope_error('', undefined, 'domain teardown: this cloud cannot tear a domain down yet\n');
|
|
40
64
|
if (surface_get().capabilities.tasks !== true)
|
|
41
65
|
return envelope_error('', undefined, `domain teardown: ${name}: Operation not permitted: tearing down needs the tasks tier\n`);
|
|
42
66
|
const stackRef = record.ids['stackRef'];
|
|
@@ -57,13 +81,15 @@ export async function domainTeardown_run(context, args) {
|
|
|
57
81
|
}
|
|
58
82
|
}
|
|
59
83
|
const lines = [
|
|
60
|
-
`${chalk.bold(name)} ${name}.${record.baseDomain} teardown`,
|
|
84
|
+
`${chalk.bold(name)} ${record.baseDomain === '' ? '(no zone known)' : `${name}.${record.baseDomain}`} teardown${record.adopted !== undefined ? chalk.gray(` (adopted from ${record.adopted.from})`) : ''}`,
|
|
61
85
|
` ${chalk.red('−')} ${stackRef === undefined ? 'no stack: nothing was applied' : stackEmpty ? 'nothing in the stack: an earlier pass destroyed it' : `the stack's ${inStack ?? '?'} resources, by a destroy job`}`,
|
|
62
|
-
` ${chalk.red('−')} the DNS records api, api-int and *.apps
|
|
86
|
+
...(record.baseDomain === '' ? [] : [` ${chalk.red('−')} the DNS records api, api-int and *.apps`]),
|
|
63
87
|
...(record.ids['isoObject'] !== undefined ? [` ${chalk.red('−')} the image ${record.ids['isoObject']} and its link`] : []),
|
|
64
|
-
` ${chalk.red('−')} ${volumeIds.length} volume${volumeIds.length === 1 ? '' : 's'} the cluster made for its claims${kubeconfig === undefined ? ' (no cluster to ask)' : stackEmpty ? ' (the cluster is gone; an earlier pass removed the ones it named)' : ''}`,
|
|
88
|
+
` ${chalk.red('−')} ${volumeIds.length} volume${volumeIds.length === 1 ? '' : 's'} the cluster made for its claims${kubeconfig === undefined ? ' (no cluster to ask)' : stackEmpty ? ' (the cluster is gone; an earlier pass removed the ones it named)' : ''}, and any block volume left in its compartment with the attribution tag`,
|
|
65
89
|
...(record.ids['clusterId'] !== undefined ? [` ${chalk.red('−')} the installer's cluster and infra-env`] : []),
|
|
66
|
-
chalk.
|
|
90
|
+
...(stackRef !== undefined ? [` ${chalk.red('−')} the stack itself`] : []),
|
|
91
|
+
` ${chalk.red('−')} its compartment and the image bucket in it when stratus made them (domains/${name}); another's keeps itself and loses the tag`,
|
|
92
|
+
chalk.gray(' Nothing else is touched: the zone, the tag namespace and what other domains made stay.'),
|
|
67
93
|
];
|
|
68
94
|
for (const line of lines)
|
|
69
95
|
sink_dataLine(line);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"teardown.js","sourceRoot":"","sources":["../../src/commands/teardown.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,cAAc,EAAE,WAAW,EAAwB,MAAM,cAAc,CAAC;AACjF,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"teardown.js","sourceRoot":"","sources":["../../src/commands/teardown.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @file A Trusted Domain found in the tenancy by its tag, read from the cloud
|
|
3
|
+
* alone (docs/stratus.adoc, D15): the tenancy is the truth about its domains,
|
|
4
|
+
* and what the cloud says of one is shown before anyone adopts it. Its
|
|
5
|
+
* address and spec come from its stack's variables, its condition from what
|
|
6
|
+
* lives in its compartment and what its stack still holds. Adoption is where
|
|
7
|
+
* a session takes responsibility for acting on it; seeing never waits on it.
|
|
8
|
+
*
|
|
9
|
+
* @module
|
|
10
|
+
*/
|
|
11
|
+
import type { CloudBuilder } from '../cloud/builder.js';
|
|
12
|
+
import type { CloudDriver, FoundDomain, ResourceCounts } from '../cloud/driver.js';
|
|
13
|
+
import type { HarborDomain, StepState } from '../domains/harborOci.js';
|
|
14
|
+
import type { DomainSpec } from './spec.js';
|
|
15
|
+
import { type DomainRecord } from './state.js';
|
|
16
|
+
/** Where a found domain stands, from the cloud: machines live, something of its stack stands, or nothing is left but its tag. */
|
|
17
|
+
export type FoundCondition = 'UP' | 'STOPPED' | 'GONE';
|
|
18
|
+
/** What the cloud says of a found domain, beside what carries its tag. */
|
|
19
|
+
export interface FoundRead {
|
|
20
|
+
readonly stack: FoundDomain['stack'];
|
|
21
|
+
readonly compartmentId: string | null;
|
|
22
|
+
/** The zone its stack's variables name, else the tenancy's only zone, else null. */
|
|
23
|
+
readonly baseDomain: string | null;
|
|
24
|
+
/** The spec its stack's variables say, or null when the stack said no sizes or there is none. */
|
|
25
|
+
readonly spec: DomainSpec | null;
|
|
26
|
+
/** Its compartment's live resources, or null when not counted. */
|
|
27
|
+
readonly resources: ResourceCounts | null;
|
|
28
|
+
/** How many resources its stack's state holds, when asked (nothing live), or null. */
|
|
29
|
+
readonly stackResources: number | null;
|
|
30
|
+
readonly condition: FoundCondition;
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* A found domain as the verbs read one, before the cloud is asked anything
|
|
34
|
+
* more: no spec, no steps, no secrets; its compartment the tagged one, else
|
|
35
|
+
* the stack's.
|
|
36
|
+
*
|
|
37
|
+
* @param found - What the search found.
|
|
38
|
+
* @returns The domain.
|
|
39
|
+
*/
|
|
40
|
+
export declare function foundDomain_make(found: FoundDomain): HarborDomain;
|
|
41
|
+
/**
|
|
42
|
+
* A found domain's steps, as far as the cloud attests them: its compartment
|
|
43
|
+
* when one carries the tag, the apply when machines live. The rest is
|
|
44
|
+
* unknown while it is up (the host keeps no record; adopting and verifying
|
|
45
|
+
* tells), and not done when nothing of it is left.
|
|
46
|
+
*
|
|
47
|
+
* @param read - What the cloud said.
|
|
48
|
+
* @returns Every step, in build order.
|
|
49
|
+
*/
|
|
50
|
+
export declare function foundSteps_derive(read: FoundRead): StepState[];
|
|
51
|
+
/**
|
|
52
|
+
* Reads a found domain from the cloud: its stack's variables for the zone
|
|
53
|
+
* and the spec, its compartment's live resources, and when nothing lives
|
|
54
|
+
* there, whether its stack still holds anything.
|
|
55
|
+
*
|
|
56
|
+
* @param found - What the search found.
|
|
57
|
+
* @param driver - The cloud's read half.
|
|
58
|
+
* @param builder - Its build half, which reads stacks, or null.
|
|
59
|
+
* @returns The domain, described.
|
|
60
|
+
*/
|
|
61
|
+
export declare function foundDomain_describe(found: FoundDomain, driver: CloudDriver, builder: CloudBuilder | null): Promise<HarborDomain>;
|
|
62
|
+
/**
|
|
63
|
+
* The record a session keeps of a found domain when it takes it on: by
|
|
64
|
+
* `domain adopt`, or by the teardown of one with nothing left but its tag.
|
|
65
|
+
* The compartment step is done when one carries the tag, the apply when
|
|
66
|
+
* machines live; the rest the host never saw.
|
|
67
|
+
*
|
|
68
|
+
* @param domain - The found domain, described.
|
|
69
|
+
* @param now - The clock.
|
|
70
|
+
* @param protect - Whether it is born protected (adoption) or not (a teardown of what is left).
|
|
71
|
+
* @returns The record.
|
|
72
|
+
*/
|
|
73
|
+
export declare function foundRecord_make(domain: HarborDomain, now: string, protect: boolean): DomainRecord;
|
|
74
|
+
/**
|
|
75
|
+
* The domains the tenancy holds that a session keeps nothing of, each read
|
|
76
|
+
* from the cloud.
|
|
77
|
+
*
|
|
78
|
+
* @param driver - The cloud's read half.
|
|
79
|
+
* @param builder - Its build half, or null.
|
|
80
|
+
* @param region - The session's region.
|
|
81
|
+
* @param kept - The names the session keeps, which stand in for found ones.
|
|
82
|
+
* @returns The found domains, sorted by name.
|
|
83
|
+
*/
|
|
84
|
+
export declare function foundDomains_describe(driver: CloudDriver, builder: CloudBuilder | null, region: string, kept: ReadonlyArray<string>): Promise<HarborDomain[]>;
|
|
@@ -0,0 +1,152 @@
|
|
|
1
|
+
import { DOMAIN_TAG } from './state.js';
|
|
2
|
+
import { BUILD_STEPS, FIRST_BILLING_STEP } from './steps.js';
|
|
3
|
+
/**
|
|
4
|
+
* A found domain as the verbs read one, before the cloud is asked anything
|
|
5
|
+
* more: no spec, no steps, no secrets; its compartment the tagged one, else
|
|
6
|
+
* the stack's.
|
|
7
|
+
*
|
|
8
|
+
* @param found - What the search found.
|
|
9
|
+
* @returns The domain.
|
|
10
|
+
*/
|
|
11
|
+
export function foundDomain_make(found) {
|
|
12
|
+
const compartmentId = found.compartmentId ?? found.stack?.compartmentId ?? null;
|
|
13
|
+
return {
|
|
14
|
+
name: found.name,
|
|
15
|
+
root: found.stack?.id ?? compartmentId ?? '',
|
|
16
|
+
spec: null,
|
|
17
|
+
settings: { CLUSTER_NAME: found.name, OCI_REGION: found.region, ...(compartmentId !== null ? { OCI_COMPARTMENT_OCID: compartmentId } : {}) },
|
|
18
|
+
state: null,
|
|
19
|
+
steps: [],
|
|
20
|
+
secrets: [],
|
|
21
|
+
cluster: null,
|
|
22
|
+
origin: 'found',
|
|
23
|
+
found: { stack: found.stack, compartmentId: found.compartmentId, baseDomain: null, spec: null, resources: null, stackResources: null, condition: 'STOPPED' },
|
|
24
|
+
};
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* A found domain's steps, as far as the cloud attests them: its compartment
|
|
28
|
+
* when one carries the tag, the apply when machines live. The rest is
|
|
29
|
+
* unknown while it is up (the host keeps no record; adopting and verifying
|
|
30
|
+
* tells), and not done when nothing of it is left.
|
|
31
|
+
*
|
|
32
|
+
* @param read - What the cloud said.
|
|
33
|
+
* @returns Every step, in build order.
|
|
34
|
+
*/
|
|
35
|
+
export function foundSteps_derive(read) {
|
|
36
|
+
const instances = read.resources?.instances ?? 0;
|
|
37
|
+
return BUILD_STEPS.map((step, index) => {
|
|
38
|
+
const folder = `${String(index + 1).padStart(2, '0')}-${step}`;
|
|
39
|
+
if (step === 'compartment')
|
|
40
|
+
return { folder, name: step, state: read.compartmentId !== null ? 'done' : 'not done', evidence: read.compartmentId !== null ? `found ${read.compartmentId}` : 'no compartment carries the tag' };
|
|
41
|
+
if (step === FIRST_BILLING_STEP && read.condition === 'UP')
|
|
42
|
+
return { folder, name: step, state: 'done', evidence: `${instances} instance${instances === 1 ? '' : 's'} live in its compartment` };
|
|
43
|
+
if (read.condition === 'GONE')
|
|
44
|
+
return { folder, name: step, state: 'not done', evidence: 'nothing of it is left in the tenancy' };
|
|
45
|
+
return { folder, name: step, state: 'unknown', evidence: 'the cloud does not say; adopt it and verify to know' };
|
|
46
|
+
});
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Reads a found domain from the cloud: its stack's variables for the zone
|
|
50
|
+
* and the spec, its compartment's live resources, and when nothing lives
|
|
51
|
+
* there, whether its stack still holds anything.
|
|
52
|
+
*
|
|
53
|
+
* @param found - What the search found.
|
|
54
|
+
* @param driver - The cloud's read half.
|
|
55
|
+
* @param builder - Its build half, which reads stacks, or null.
|
|
56
|
+
* @returns The domain, described.
|
|
57
|
+
*/
|
|
58
|
+
export async function foundDomain_describe(found, driver, builder) {
|
|
59
|
+
const bare = foundDomain_make(found);
|
|
60
|
+
const compartmentId = bare.settings['OCI_COMPARTMENT_OCID'] ?? null;
|
|
61
|
+
let baseDomain = null;
|
|
62
|
+
let spec = null;
|
|
63
|
+
if (found.stack !== null && builder?.stack_describe !== undefined) {
|
|
64
|
+
try {
|
|
65
|
+
const described = await builder.stack_describe(found.stack.id, found.region);
|
|
66
|
+
baseDomain = described.baseDomain;
|
|
67
|
+
spec = described.spec;
|
|
68
|
+
}
|
|
69
|
+
catch {
|
|
70
|
+
// A stack that cannot be read leaves the address and spec unknown; the domain is still shown.
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
if (baseDomain === null && builder?.zones_list !== undefined) {
|
|
74
|
+
try {
|
|
75
|
+
const zones = await builder.zones_list(found.region);
|
|
76
|
+
if (zones.length === 1)
|
|
77
|
+
baseDomain = zones[0];
|
|
78
|
+
}
|
|
79
|
+
catch {
|
|
80
|
+
// No zone known.
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
let resources = null;
|
|
84
|
+
if (compartmentId !== null) {
|
|
85
|
+
try {
|
|
86
|
+
resources = await driver.resources_search(compartmentId, found.region);
|
|
87
|
+
}
|
|
88
|
+
catch {
|
|
89
|
+
resources = null;
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
const instances = resources?.instances ?? 0;
|
|
93
|
+
let stackResources = null;
|
|
94
|
+
if (instances === 0 && found.stack !== null && builder?.stackResources_count !== undefined) {
|
|
95
|
+
try {
|
|
96
|
+
stackResources = await builder.stackResources_count({ region: found.region, stackRef: found.stack.id });
|
|
97
|
+
}
|
|
98
|
+
catch {
|
|
99
|
+
stackResources = null;
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
const condition = instances > 0 ? 'UP' : found.stack === null || stackResources === 0 ? 'GONE' : 'STOPPED';
|
|
103
|
+
const read = { stack: found.stack, compartmentId, baseDomain, spec, resources, stackResources, condition };
|
|
104
|
+
return {
|
|
105
|
+
...bare,
|
|
106
|
+
settings: { ...bare.settings, ...(baseDomain !== null ? { BASE_DOMAIN: baseDomain } : {}) },
|
|
107
|
+
steps: foundSteps_derive(read),
|
|
108
|
+
cluster: baseDomain !== null ? `${found.name}.${baseDomain}` : null,
|
|
109
|
+
found: read,
|
|
110
|
+
};
|
|
111
|
+
}
|
|
112
|
+
/**
|
|
113
|
+
* The record a session keeps of a found domain when it takes it on: by
|
|
114
|
+
* `domain adopt`, or by the teardown of one with nothing left but its tag.
|
|
115
|
+
* The compartment step is done when one carries the tag, the apply when
|
|
116
|
+
* machines live; the rest the host never saw.
|
|
117
|
+
*
|
|
118
|
+
* @param domain - The found domain, described.
|
|
119
|
+
* @param now - The clock.
|
|
120
|
+
* @param protect - Whether it is born protected (adoption) or not (a teardown of what is left).
|
|
121
|
+
* @returns The record.
|
|
122
|
+
*/
|
|
123
|
+
export function foundRecord_make(domain, now, protect) {
|
|
124
|
+
const read = domain.found;
|
|
125
|
+
const compartmentId = read?.compartmentId ?? read?.stack?.compartmentId ?? null;
|
|
126
|
+
const instances = read?.resources?.instances ?? 0;
|
|
127
|
+
const steps = { compartment: { state: 'done', ended: now, note: compartmentId === null ? 'no compartment tagged' : `found ${compartmentId}` } };
|
|
128
|
+
if (instances > 0)
|
|
129
|
+
steps[FIRST_BILLING_STEP] = { state: 'done', ended: now, note: `${instances} instance${instances === 1 ? '' : 's'} live in its compartment` };
|
|
130
|
+
return {
|
|
131
|
+
name: domain.name, created: now, region: domain.settings['OCI_REGION'] ?? '', baseDomain: read?.baseDomain ?? '', steps,
|
|
132
|
+
ids: read?.stack !== null && read?.stack !== undefined ? { stackRef: read.stack.id } : {},
|
|
133
|
+
...(compartmentId !== null ? { compartmentId } : {}),
|
|
134
|
+
adopted: { from: 'the tenancy', at: now },
|
|
135
|
+
protected: protect,
|
|
136
|
+
};
|
|
137
|
+
}
|
|
138
|
+
/**
|
|
139
|
+
* The domains the tenancy holds that a session keeps nothing of, each read
|
|
140
|
+
* from the cloud.
|
|
141
|
+
*
|
|
142
|
+
* @param driver - The cloud's read half.
|
|
143
|
+
* @param builder - Its build half, or null.
|
|
144
|
+
* @param region - The session's region.
|
|
145
|
+
* @param kept - The names the session keeps, which stand in for found ones.
|
|
146
|
+
* @returns The found domains, sorted by name.
|
|
147
|
+
*/
|
|
148
|
+
export async function foundDomains_describe(driver, builder, region, kept) {
|
|
149
|
+
const found = await driver.domains_find(DOMAIN_TAG, region);
|
|
150
|
+
return Promise.all(found.filter((entry) => !kept.includes(entry.name)).map((entry) => foundDomain_describe(entry, driver, builder)));
|
|
151
|
+
}
|
|
152
|
+
//# sourceMappingURL=found.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"found.js","sourceRoot":"","sources":["../../src/domain/found.ts"],"names":[],"mappings":"AAcA,OAAO,EAAE,UAAU,EAAqB,MAAM,YAAY,CAAC;AAC3D,OAAO,EAAE,WAAW,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAoB7D;;;;;;;GAOG;AACH,MAAM,UAAU,gBAAgB,CAAC,KAAkB;IACjD,MAAM,aAAa,GAAkB,KAAK,CAAC,aAAa,IAAI,KAAK,CAAC,KAAK,EAAE,aAAa,IAAI,IAAI,CAAC;IAC/F,OAAO;QACL,IAAI,EAAE,KAAK,CAAC,IAAI;QAChB,IAAI,EAAE,KAAK,CAAC,KAAK,EAAE,EAAE,IAAI,aAAa,IAAI,EAAE;QAC5C,IAAI,EAAE,IAAI;QACV,QAAQ,EAAE,EAAE,YAAY,EAAE,KAAK,CAAC,IAAI,EAAE,UAAU,EAAE,KAAK,CAAC,MAAM,EAAE,GAAG,CAAC,aAAa,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,oBAAoB,EAAE,aAAa,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE;QAC5I,KAAK,EAAE,IAAI;QACX,KAAK,EAAE,EAAE;QACT,OAAO,EAAE,EAAE;QACX,OAAO,EAAE,IAAI;QACb,MAAM,EAAE,OAAO;QACf,KAAK,EAAE,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,aAAa,EAAE,KAAK,CAAC,aAAa,EAAE,UAAU,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS,EAAE;KAC7J,CAAC;AACJ,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,iBAAiB,CAAC,IAAe;IAC/C,MAAM,SAAS,GAAW,IAAI,CAAC,SAAS,EAAE,SAAS,IAAI,CAAC,CAAC;IACzD,OAAO,WAAW,CAAC,GAAG,CAAC,CAAC,IAAY,EAAE,KAAa,EAAa,EAAE;QAChE,MAAM,MAAM,GAAW,GAAG,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC;QACvE,IAAI,IAAI,KAAK,aAAa;YAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,aAAa,KAAK,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,UAAU,EAAE,QAAQ,EAAE,IAAI,CAAC,aAAa,KAAK,IAAI,CAAC,CAAC,CAAC,SAAS,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC,gCAAgC,EAAE,CAAC;QAC9N,IAAI,IAAI,KAAK,kBAAkB,IAAI,IAAI,CAAC,SAAS,KAAK,IAAI;YAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,SAAS,YAAY,SAAS,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,0BAA0B,EAAE,CAAC;QACjM,IAAI,IAAI,CAAC,SAAS,KAAK,MAAM;YAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,sCAAsC,EAAE,CAAC;QAClI,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,qDAAqD,EAAE,CAAC;IACnH,CAAC,CAAC,CAAC;AACL,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,CAAC,KAAK,UAAU,oBAAoB,CAAC,KAAkB,EAAE,MAAmB,EAAE,OAA4B;IAC9G,MAAM,IAAI,GAAiB,gBAAgB,CAAC,KAAK,CAAC,CAAC;IACnD,MAAM,aAAa,GAAkB,IAAI,CAAC,QAAQ,CAAC,sBAAsB,CAAC,IAAI,IAAI,CAAC;IACnF,IAAI,UAAU,GAAkB,IAAI,CAAC;IACrC,IAAI,IAAI,GAAsB,IAAI,CAAC;IACnC,IAAI,KAAK,CAAC,KAAK,KAAK,IAAI,IAAI,OAAO,EAAE,cAAc,KAAK,SAAS,EAAE,CAAC;QAClE,IAAI,CAAC;YACH,MAAM,SAAS,GAAG,MAAM,OAAO,CAAC,cAAc,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;YAC7E,UAAU,GAAG,SAAS,CAAC,UAAU,CAAC;YAClC,IAAI,GAAG,SAAS,CAAC,IAAI,CAAC;QACxB,CAAC;QAAC,MAAM,CAAC;YACP,8FAA8F;QAChG,CAAC;IACH,CAAC;IACD,IAAI,UAAU,KAAK,IAAI,IAAI,OAAO,EAAE,UAAU,KAAK,SAAS,EAAE,CAAC;QAC7D,IAAI,CAAC;YACH,MAAM,KAAK,GAAa,MAAM,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;YAC/D,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;gBAAE,UAAU,GAAG,KAAK,CAAC,CAAC,CAAW,CAAC;QAC1D,CAAC;QAAC,MAAM,CAAC;YACP,iBAAiB;QACnB,CAAC;IACH,CAAC;IACD,IAAI,SAAS,GAA0B,IAAI,CAAC;IAC5C,IAAI,aAAa,KAAK,IAAI,EAAE,CAAC;QAC3B,IAAI,CAAC;YAAC,SAAS,GAAG,MAAM,MAAM,CAAC,gBAAgB,CAAC,aAAa,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;QAAC,CAAC;QAAC,MAAM,CAAC;YAAC,SAAS,GAAG,IAAI,CAAC;QAAC,CAAC;IAC7G,CAAC;IACD,MAAM,SAAS,GAAW,SAAS,EAAE,SAAS,IAAI,CAAC,CAAC;IACpD,IAAI,cAAc,GAAkB,IAAI,CAAC;IACzC,IAAI,SAAS,KAAK,CAAC,IAAI,KAAK,CAAC,KAAK,KAAK,IAAI,IAAI,OAAO,EAAE,oBAAoB,KAAK,SAAS,EAAE,CAAC;QAC3F,IAAI,CAAC;YAAC,cAAc,GAAG,MAAM,OAAO,CAAC,oBAAoB,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,QAAQ,EAAE,KAAK,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC;QAAC,CAAC;QAAC,MAAM,CAAC;YAAC,cAAc,GAAG,IAAI,CAAC;QAAC,CAAC;IACnJ,CAAC;IACD,MAAM,SAAS,GAAmB,SAAS,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,KAAK,IAAI,IAAI,cAAc,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC;IAC3H,MAAM,IAAI,GAAc,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,aAAa,EAAE,UAAU,EAAE,IAAI,EAAE,SAAS,EAAE,cAAc,EAAE,SAAS,EAAE,CAAC;IACtH,OAAO;QACL,GAAG,IAAI;QACP,QAAQ,EAAE,EAAE,GAAG,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC,UAAU,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE;QAC3F,KAAK,EAAE,iBAAiB,CAAC,IAAI,CAAC;QAC9B,OAAO,EAAE,UAAU,KAAK,IAAI,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,UAAU,EAAE,CAAC,CAAC,CAAC,IAAI;QACnE,KAAK,EAAE,IAAI;KACZ,CAAC;AACJ,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,gBAAgB,CAAC,MAAoB,EAAE,GAAW,EAAE,OAAgB;IAClF,MAAM,IAAI,GAA0B,MAAM,CAAC,KAAK,CAAC;IACjD,MAAM,aAAa,GAAkB,IAAI,EAAE,aAAa,IAAI,IAAI,EAAE,KAAK,EAAE,aAAa,IAAI,IAAI,CAAC;IAC/F,MAAM,SAAS,GAAW,IAAI,EAAE,SAAS,EAAE,SAAS,IAAI,CAAC,CAAC;IAC1D,MAAM,KAAK,GAA0B,EAAE,WAAW,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,aAAa,KAAK,IAAI,CAAC,CAAC,CAAC,uBAAuB,CAAC,CAAC,CAAC,SAAS,aAAa,EAAE,EAAE,EAAE,CAAC;IACvK,IAAI,SAAS,GAAG,CAAC;QAAE,KAAK,CAAC,kBAAkB,CAAC,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,SAAS,YAAY,SAAS,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,0BAA0B,EAAE,CAAC;IACjK,OAAO;QACL,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAC,IAAI,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,UAAU,IAAI,EAAE,EAAE,KAAK;QACvH,GAAG,EAAE,IAAI,EAAE,KAAK,KAAK,IAAI,IAAI,IAAI,EAAE,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE;QACzF,GAAG,CAAC,aAAa,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACpD,OAAO,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE,EAAE,EAAE,GAAG,EAAE;QACzC,SAAS,EAAE,OAAO;KACnB,CAAC;AACJ,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,CAAC,KAAK,UAAU,qBAAqB,CAAC,MAAmB,EAAE,OAA4B,EAAE,MAAc,EAAE,IAA2B;IACxI,MAAM,KAAK,GAAkB,MAAM,MAAM,CAAC,YAAY,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;IAC3E,OAAO,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,KAAkB,EAAW,EAAE,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,KAAkB,EAAyB,EAAE,CAAC,oBAAoB,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;AACjM,CAAC"}
|
package/dist/domain/readout.js
CHANGED
|
@@ -40,9 +40,9 @@ function stepState_read(domain, name) {
|
|
|
40
40
|
export function condition_derive(domain, record, running, asking) {
|
|
41
41
|
if (record?.gone !== undefined)
|
|
42
42
|
return 'GONE';
|
|
43
|
-
// A found domain keeps no steps here
|
|
43
|
+
// A found domain keeps no steps here: the cloud said whether its machines live, its stack stands, or nothing is left.
|
|
44
44
|
if (domain.origin === 'found')
|
|
45
|
-
return 'STOPPED';
|
|
45
|
+
return domain.found?.condition ?? 'STOPPED';
|
|
46
46
|
if (asking)
|
|
47
47
|
return 'ASKING';
|
|
48
48
|
if (running || domain.steps.some((step) => step.state === 'running'))
|
|
@@ -66,16 +66,21 @@ export function condition_derive(domain, record, running, asking) {
|
|
|
66
66
|
*/
|
|
67
67
|
export function refusals_derive(domain, record) {
|
|
68
68
|
if (domain.origin === 'found') {
|
|
69
|
+
// Nothing left but its tag: there is nothing to plan, verify or build on, and teardown removes the tag's carriers.
|
|
70
|
+
if (domain.found?.condition === 'GONE') {
|
|
71
|
+
const why = `nothing of it is left in the tenancy but its tag: domain teardown ${domain.name} removes that`;
|
|
72
|
+
return { plan: why, verify: why, build: why };
|
|
73
|
+
}
|
|
69
74
|
const why = `found in the tenancy, not adopted: domain adopt ${domain.name} first`;
|
|
70
75
|
return { plan: why, verify: why, build: why, teardown: why };
|
|
71
76
|
}
|
|
72
77
|
if (domain.origin !== 'built' || record === null)
|
|
73
78
|
return { build: 'read from a harbor-oci checkout, not built here', teardown: 'read from a harbor-oci checkout, not built here' };
|
|
74
|
-
if (record.adopted !== undefined)
|
|
75
|
-
return { build: `adopted from ${record.adopted.from}`, teardown: 'adopted, not built here' };
|
|
76
79
|
if (record.gone !== undefined)
|
|
77
80
|
return { build: 'torn down', teardown: 'already torn down' };
|
|
78
|
-
|
|
81
|
+
// An adopted domain is never built on; it is torn down as a built one is, once its lock is lifted.
|
|
82
|
+
const build = record.adopted !== undefined ? { build: `adopted from ${record.adopted.from}` } : {};
|
|
83
|
+
return record.protected !== false ? { ...build, teardown: `protected (domain protect ${domain.name} off lifts it)` } : build;
|
|
79
84
|
}
|
|
80
85
|
/**
|
|
81
86
|
* The last plan, counted, its rows grouped by action and kind.
|
|
@@ -137,14 +142,15 @@ export function domainReadout_build(domain, store, job, asking = null) {
|
|
|
137
142
|
const applied = stepState_read(domain, FIRST_BILLING_STEP) === 'done' || lastDone_find(domain) !== null && (record === null || record.adopted !== undefined);
|
|
138
143
|
return {
|
|
139
144
|
condition: condition_derive(domain, record, running, asking !== null),
|
|
140
|
-
|
|
145
|
+
// A found domain bills when its machines live; the host attests nothing else of it.
|
|
146
|
+
billing: domain.origin === 'found' ? domain.found?.condition === 'UP' : record?.gone === undefined && applied,
|
|
141
147
|
origin: domain.origin === 'found' ? 'found' : domain.origin !== 'built' || record === null ? 'checkout' : record.adopted !== undefined ? 'adopted' : 'built',
|
|
142
148
|
protected: record?.protected !== false,
|
|
143
149
|
refused: refusals_derive(domain, record),
|
|
144
150
|
region: record?.region ?? domain.settings['OCI_REGION'] ?? null,
|
|
145
151
|
compartment: record?.compartmentId ?? domain.settings['OCI_COMPARTMENT_OCID'] ?? null,
|
|
146
152
|
gone: record?.gone ?? null,
|
|
147
|
-
spec: store?.spec_read(domain.name)?.spec ?? null,
|
|
153
|
+
spec: store?.spec_read(domain.name)?.spec ?? domain.found?.spec ?? null,
|
|
148
154
|
next: record === null || record.adopted !== undefined || record.gone !== undefined ? null : stepNext_find(record),
|
|
149
155
|
billingStep: FIRST_BILLING_STEP,
|
|
150
156
|
running: running ? { job: job.id, step: runningStep, since: record?.steps[runningStep ?? '']?.started ?? job.started } : null,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"readout.js","sourceRoot":"","sources":["../../src/domain/readout.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AACzB,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,EAAE,gBAAgB,EAAqF,MAAM,cAAc,CAAC;AACnI,OAAO,EAAE,UAAU,EAAkB,MAAM,oBAAoB,CAAC;AAChE,OAAO,EAAE,UAAU,EAAgC,MAAM,qBAAqB,CAAC;AAC/E,OAAO,EAAE,aAAa,EAAqC,MAAM,yBAAyB,CAAC;AAE3F,OAAO,EAAE,WAAW,EAAE,kBAAkB,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE1F,OAAO,EAAE,WAAW,EAAmB,MAAM,aAAa,CAAC;AAE3D,OAAO,EAAE,WAAW,EAAmB,CAAC;AAKxC;;;;;;GAMG;AACH,SAAS,cAAc,CAAC,MAAoB,EAAE,IAAY;IACxD,OAAO,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAe,EAAW,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,EAAE,KAAK,IAAI,UAAU,CAAC;AAClG,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,gBAAgB,CAAC,MAAoB,EAAE,MAA2B,EAAE,OAAgB,EAAE,MAAe;IACnH,IAAI,MAAM,EAAE,IAAI,KAAK,SAAS;QAAE,OAAO,MAAM,CAAC;IAC9C,
|
|
1
|
+
{"version":3,"file":"readout.js","sourceRoot":"","sources":["../../src/domain/readout.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { DomainSpec } from '../domain/spec.js';
|
|
1
2
|
/** The build's steps, in the order `just install` runs them. */
|
|
2
3
|
export declare const HARBOR_STEPS: ReadonlyArray<string>;
|
|
3
4
|
/** Where one step stands. */
|
|
@@ -35,7 +36,7 @@ export interface HarborDomain {
|
|
|
35
36
|
readonly cluster: string | null;
|
|
36
37
|
/** Where it comes from: a `harbor-oci` checkout read, built by this daemon, or found in the tenancy by its tag and not adopted (absent: a checkout). */
|
|
37
38
|
readonly origin?: 'checkout' | 'built' | 'found';
|
|
38
|
-
/** For one found in the tenancy: what carries its tag. */
|
|
39
|
+
/** For one found in the tenancy: what carries its tag, and what the cloud says of it (`domain/found.ts`). */
|
|
39
40
|
readonly found?: {
|
|
40
41
|
readonly stack: {
|
|
41
42
|
readonly id: string;
|
|
@@ -43,6 +44,12 @@ export interface HarborDomain {
|
|
|
43
44
|
readonly compartmentId: string;
|
|
44
45
|
} | null;
|
|
45
46
|
readonly compartmentId: string | null;
|
|
47
|
+
readonly baseDomain: string | null;
|
|
48
|
+
readonly spec: DomainSpec | null;
|
|
49
|
+
readonly resources: Readonly<Record<string, number>> | null;
|
|
50
|
+
readonly stackResources: number | null;
|
|
51
|
+
/** Machines live (UP), something of its stack stands (STOPPED), or nothing is left but its tag (GONE). */
|
|
52
|
+
readonly condition: 'UP' | 'STOPPED' | 'GONE';
|
|
46
53
|
};
|
|
47
54
|
}
|
|
48
55
|
/** Where a domain is read from: its name and its checkout. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"harborOci.js","sourceRoot":"","sources":["../../src/domains/harborOci.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AACH,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAC1E,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"harborOci.js","sourceRoot":"","sources":["../../src/domains/harborOci.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@fnndsc/stratus",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.6.0",
|
|
4
4
|
"description": "STRATUS: a mise session over the cloud substrate a Trusted Domain runs on — one backend, clouds as drivers, OCI first",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
7
|
-
"url": "git+https://github.com/
|
|
7
|
+
"url": "git+https://github.com/HARBOR-Medical-AI/mise.git",
|
|
8
8
|
"directory": "packages/stratus"
|
|
9
9
|
},
|
|
10
|
-
"homepage": "https://github.com/
|
|
10
|
+
"homepage": "https://github.com/HARBOR-Medical-AI/mise/tree/main/packages/stratus#readme",
|
|
11
11
|
"bugs": {
|
|
12
|
-
"url": "https://github.com/
|
|
12
|
+
"url": "https://github.com/HARBOR-Medical-AI/mise/issues"
|
|
13
13
|
},
|
|
14
14
|
"main": "dist/index.js",
|
|
15
15
|
"module": "dist/index.js",
|