@xemahq/xema 0.2.3 → 0.3.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/LICENSE +176 -175
- package/README.md +97 -1
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +11 -1
- package/dist/cli.js.map +1 -1
- package/dist/commands/biome.d.ts.map +1 -1
- package/dist/commands/biome.js +83 -6
- package/dist/commands/biome.js.map +1 -1
- package/dist/commands/dev.d.ts.map +1 -1
- package/dist/commands/dev.js +14 -8
- package/dist/commands/dev.js.map +1 -1
- package/dist/commands/doctor.d.ts +2 -0
- package/dist/commands/doctor.d.ts.map +1 -1
- package/dist/commands/doctor.js +48 -1
- package/dist/commands/doctor.js.map +1 -1
- package/dist/commands/serve.d.ts.map +1 -1
- package/dist/commands/serve.js +13 -1
- package/dist/commands/serve.js.map +1 -1
- package/dist/commands/status.js +5 -1
- package/dist/commands/status.js.map +1 -1
- package/dist/commands/up.d.ts.map +1 -1
- package/dist/commands/up.js +11 -0
- package/dist/commands/up.js.map +1 -1
- package/dist/runtime/config/schema.d.ts +27 -0
- package/dist/runtime/config/schema.d.ts.map +1 -1
- package/dist/runtime/config/schema.js +2 -0
- package/dist/runtime/config/schema.js.map +1 -1
- package/dist/runtime/launch.d.ts.map +1 -1
- package/dist/runtime/launch.js +22 -2
- package/dist/runtime/launch.js.map +1 -1
- package/dist/runtime/roster.d.ts +10 -2
- package/dist/runtime/roster.d.ts.map +1 -1
- package/dist/runtime/roster.js +50 -1
- package/dist/runtime/roster.js.map +1 -1
- package/dist/runtime/runner/native-runner.d.ts.map +1 -1
- package/dist/runtime/runner/native-runner.js +6 -5
- package/dist/runtime/runner/native-runner.js.map +1 -1
- package/dist/runtime/sources/credentials.d.ts +11 -0
- package/dist/runtime/sources/credentials.d.ts.map +1 -0
- package/dist/runtime/sources/credentials.js +68 -0
- package/dist/runtime/sources/credentials.js.map +1 -0
- package/dist/runtime/sources/kinds/distribution.d.ts +5 -0
- package/dist/runtime/sources/kinds/distribution.d.ts.map +1 -0
- package/dist/runtime/sources/kinds/distribution.js +33 -0
- package/dist/runtime/sources/kinds/distribution.js.map +1 -0
- package/dist/runtime/sources/kinds/git.d.ts +5 -0
- package/dist/runtime/sources/kinds/git.d.ts.map +1 -0
- package/dist/runtime/sources/kinds/git.js +70 -0
- package/dist/runtime/sources/kinds/git.js.map +1 -0
- package/dist/runtime/sources/kinds/workspace.d.ts +5 -0
- package/dist/runtime/sources/kinds/workspace.d.ts.map +1 -0
- package/dist/runtime/sources/kinds/workspace.js +24 -0
- package/dist/runtime/sources/kinds/workspace.js.map +1 -0
- package/dist/runtime/sources/manifest-walk.d.ts +22 -0
- package/dist/runtime/sources/manifest-walk.d.ts.map +1 -0
- package/dist/runtime/sources/manifest-walk.js +87 -0
- package/dist/runtime/sources/manifest-walk.js.map +1 -0
- package/dist/runtime/sources/resolver.d.ts +15 -0
- package/dist/runtime/sources/resolver.d.ts.map +1 -0
- package/dist/runtime/sources/resolver.js +75 -0
- package/dist/runtime/sources/resolver.js.map +1 -0
- package/dist/runtime/sources/schema.d.ts +101 -0
- package/dist/runtime/sources/schema.d.ts.map +1 -0
- package/dist/runtime/sources/schema.js +71 -0
- package/dist/runtime/sources/schema.js.map +1 -0
- package/dist/runtime/sources/types.d.ts +10 -0
- package/dist/runtime/sources/types.d.ts.map +1 -0
- package/dist/runtime/sources/types.js +3 -0
- package/dist/runtime/sources/types.js.map +1 -0
- package/dist/runtime/waves.d.ts +1 -0
- package/dist/runtime/waves.d.ts.map +1 -1
- package/dist/runtime/waves.js +19 -0
- package/dist/runtime/waves.js.map +1 -1
- package/examples/06-biome-sources.yaml +51 -0
- package/package.json +5 -2
- package/dist/dev/dev-orchestrator.d.ts +0 -7
- package/dist/dev/dev-orchestrator.d.ts.map +0 -1
- package/dist/dev/dev-orchestrator.js +0 -367
- package/dist/dev/dev-orchestrator.js.map +0 -1
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { type LockIndex } from '../roster';
|
|
2
|
+
import { CredentialResolver } from './credentials';
|
|
3
|
+
import { SourceKind, type SourceSpec } from './schema';
|
|
4
|
+
import type { SourceResolveContext } from './types';
|
|
5
|
+
export declare function composeSourceIndex(base: LockIndex, sources: readonly SourceSpec[], ctx: SourceResolveContext): LockIndex;
|
|
6
|
+
export interface SourceStatus {
|
|
7
|
+
readonly name: string;
|
|
8
|
+
readonly kind: SourceKind;
|
|
9
|
+
readonly detail: string;
|
|
10
|
+
readonly tokenEnv?: string;
|
|
11
|
+
readonly tokenPresent: boolean;
|
|
12
|
+
readonly launchTime: boolean;
|
|
13
|
+
}
|
|
14
|
+
export declare function describeSources(sources: readonly SourceSpec[], credentials?: CredentialResolver): SourceStatus[];
|
|
15
|
+
//# sourceMappingURL=resolver.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resolver.d.ts","sourceRoot":"","sources":["../../../src/runtime/sources/resolver.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,KAAK,SAAS,EAAE,MAAM,WAAW,CAAC;AACzD,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAInD,OAAO,EAAE,UAAU,EAAE,KAAK,UAAU,EAAE,MAAM,UAAU,CAAC;AAEvD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAC;AAepD,wBAAgB,kBAAkB,CAChC,IAAI,EAAE,SAAS,EACf,OAAO,EAAE,SAAS,UAAU,EAAE,EAC9B,GAAG,EAAE,oBAAoB,GACxB,SAAS,CAqBX;AAsBD,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;IAE1B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IAExB,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAE3B,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC;IAE/B,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC;CAC9B;AAGD,wBAAgB,eAAe,CAC7B,OAAO,EAAE,SAAS,UAAU,EAAE,EAC9B,WAAW,GAAE,kBAA6C,GACzD,YAAY,EAAE,CAahB"}
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.composeSourceIndex = composeSourceIndex;
|
|
4
|
+
exports.describeSources = describeSources;
|
|
5
|
+
const roster_1 = require("../roster");
|
|
6
|
+
const credentials_1 = require("./credentials");
|
|
7
|
+
const distribution_1 = require("./kinds/distribution");
|
|
8
|
+
const git_1 = require("./kinds/git");
|
|
9
|
+
const workspace_1 = require("./kinds/workspace");
|
|
10
|
+
const schema_1 = require("./schema");
|
|
11
|
+
function composeSourceIndex(base, sources, ctx) {
|
|
12
|
+
const workspace = [];
|
|
13
|
+
const other = [];
|
|
14
|
+
for (const spec of sources) {
|
|
15
|
+
(spec.kind === schema_1.SourceKind.Workspace ? workspace : other).push(spec);
|
|
16
|
+
}
|
|
17
|
+
let index = base;
|
|
18
|
+
for (const spec of [...other].reverse()) {
|
|
19
|
+
const contrib = resolveOne(spec, ctx);
|
|
20
|
+
if (contrib !== null) {
|
|
21
|
+
index = (0, roster_1.mergeIndices)(index, contrib);
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
for (const spec of [...workspace].reverse()) {
|
|
25
|
+
const contrib = resolveOne(spec, ctx);
|
|
26
|
+
if (contrib !== null) {
|
|
27
|
+
index = (0, roster_1.mergeIndices)(index, contrib);
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
return index;
|
|
31
|
+
}
|
|
32
|
+
function resolveOne(spec, ctx) {
|
|
33
|
+
switch (spec.kind) {
|
|
34
|
+
case schema_1.SourceKind.Workspace:
|
|
35
|
+
return (0, workspace_1.resolveWorkspaceSource)(spec, ctx);
|
|
36
|
+
case schema_1.SourceKind.Distribution:
|
|
37
|
+
return (0, distribution_1.resolveDistributionSource)(spec, ctx);
|
|
38
|
+
case schema_1.SourceKind.Git:
|
|
39
|
+
return (0, git_1.resolveGitSource)(spec, ctx);
|
|
40
|
+
case schema_1.SourceKind.Npm:
|
|
41
|
+
case schema_1.SourceKind.Oci:
|
|
42
|
+
ctx.log?.(`source "${spec.name}" (${spec.kind}): install-time source — install it into a running ` +
|
|
43
|
+
`platform with \`xema biome install\`; it does not boot directly from \`xema up\`.`);
|
|
44
|
+
return null;
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
function describeSources(sources, credentials = new credentials_1.CredentialResolver()) {
|
|
48
|
+
return sources.map((spec) => {
|
|
49
|
+
const tokenEnv = 'authTokenEnv' in spec ? spec.authTokenEnv : undefined;
|
|
50
|
+
const launchTime = spec.kind !== schema_1.SourceKind.Npm && spec.kind !== schema_1.SourceKind.Oci;
|
|
51
|
+
return {
|
|
52
|
+
name: spec.name,
|
|
53
|
+
kind: spec.kind,
|
|
54
|
+
detail: detailFor(spec),
|
|
55
|
+
...(tokenEnv !== undefined ? { tokenEnv } : {}),
|
|
56
|
+
tokenPresent: credentials.has(tokenEnv),
|
|
57
|
+
launchTime,
|
|
58
|
+
};
|
|
59
|
+
});
|
|
60
|
+
}
|
|
61
|
+
function detailFor(spec) {
|
|
62
|
+
switch (spec.kind) {
|
|
63
|
+
case schema_1.SourceKind.Workspace:
|
|
64
|
+
return spec.root ?? '(auto-detected monorepo root)';
|
|
65
|
+
case schema_1.SourceKind.Distribution:
|
|
66
|
+
return `edition ${spec.edition}${spec.ref ? ` @ ${spec.ref}` : ''}`;
|
|
67
|
+
case schema_1.SourceKind.Git:
|
|
68
|
+
return `${spec.url}${spec.ref ? `@${spec.ref}` : ''}`;
|
|
69
|
+
case schema_1.SourceKind.Npm:
|
|
70
|
+
return spec.registryUrl ?? 'https://registry.npmjs.org';
|
|
71
|
+
case schema_1.SourceKind.Oci:
|
|
72
|
+
return spec.registry;
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
//# sourceMappingURL=resolver.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resolver.js","sourceRoot":"","sources":["../../../src/runtime/sources/resolver.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
export declare enum SourceKind {
|
|
3
|
+
Workspace = "workspace",
|
|
4
|
+
Distribution = "distribution",
|
|
5
|
+
Npm = "npm",
|
|
6
|
+
Oci = "oci",
|
|
7
|
+
Git = "git"
|
|
8
|
+
}
|
|
9
|
+
export declare const WorkspaceSourceSchema: z.ZodObject<{
|
|
10
|
+
kind: z.ZodLiteral<SourceKind.Workspace>;
|
|
11
|
+
root: z.ZodOptional<z.ZodString>;
|
|
12
|
+
name: z.ZodString;
|
|
13
|
+
}, z.core.$strict>;
|
|
14
|
+
export type WorkspaceSource = z.infer<typeof WorkspaceSourceSchema>;
|
|
15
|
+
export declare const DistributionSourceSchema: z.ZodObject<{
|
|
16
|
+
kind: z.ZodLiteral<SourceKind.Distribution>;
|
|
17
|
+
edition: z.ZodString;
|
|
18
|
+
ref: z.ZodOptional<z.ZodString>;
|
|
19
|
+
name: z.ZodString;
|
|
20
|
+
}, z.core.$strict>;
|
|
21
|
+
export type DistributionSource = z.infer<typeof DistributionSourceSchema>;
|
|
22
|
+
export declare const NpmSourceSchema: z.ZodObject<{
|
|
23
|
+
kind: z.ZodLiteral<SourceKind.Npm>;
|
|
24
|
+
registryUrl: z.ZodOptional<z.ZodString>;
|
|
25
|
+
scope: z.ZodOptional<z.ZodString>;
|
|
26
|
+
authTokenEnv: z.ZodOptional<z.ZodString>;
|
|
27
|
+
name: z.ZodString;
|
|
28
|
+
}, z.core.$strict>;
|
|
29
|
+
export type NpmSource = z.infer<typeof NpmSourceSchema>;
|
|
30
|
+
export declare const OciSourceSchema: z.ZodObject<{
|
|
31
|
+
kind: z.ZodLiteral<SourceKind.Oci>;
|
|
32
|
+
registry: z.ZodString;
|
|
33
|
+
authTokenEnv: z.ZodOptional<z.ZodString>;
|
|
34
|
+
name: z.ZodString;
|
|
35
|
+
}, z.core.$strict>;
|
|
36
|
+
export type OciSource = z.infer<typeof OciSourceSchema>;
|
|
37
|
+
export declare const GitSourceSchema: z.ZodObject<{
|
|
38
|
+
kind: z.ZodLiteral<SourceKind.Git>;
|
|
39
|
+
url: z.ZodString;
|
|
40
|
+
ref: z.ZodOptional<z.ZodString>;
|
|
41
|
+
authTokenEnv: z.ZodOptional<z.ZodString>;
|
|
42
|
+
name: z.ZodString;
|
|
43
|
+
}, z.core.$strict>;
|
|
44
|
+
export type GitSource = z.infer<typeof GitSourceSchema>;
|
|
45
|
+
export declare const SourceSpecSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
46
|
+
kind: z.ZodLiteral<SourceKind.Workspace>;
|
|
47
|
+
root: z.ZodOptional<z.ZodString>;
|
|
48
|
+
name: z.ZodString;
|
|
49
|
+
}, z.core.$strict>, z.ZodObject<{
|
|
50
|
+
kind: z.ZodLiteral<SourceKind.Distribution>;
|
|
51
|
+
edition: z.ZodString;
|
|
52
|
+
ref: z.ZodOptional<z.ZodString>;
|
|
53
|
+
name: z.ZodString;
|
|
54
|
+
}, z.core.$strict>, z.ZodObject<{
|
|
55
|
+
kind: z.ZodLiteral<SourceKind.Npm>;
|
|
56
|
+
registryUrl: z.ZodOptional<z.ZodString>;
|
|
57
|
+
scope: z.ZodOptional<z.ZodString>;
|
|
58
|
+
authTokenEnv: z.ZodOptional<z.ZodString>;
|
|
59
|
+
name: z.ZodString;
|
|
60
|
+
}, z.core.$strict>, z.ZodObject<{
|
|
61
|
+
kind: z.ZodLiteral<SourceKind.Oci>;
|
|
62
|
+
registry: z.ZodString;
|
|
63
|
+
authTokenEnv: z.ZodOptional<z.ZodString>;
|
|
64
|
+
name: z.ZodString;
|
|
65
|
+
}, z.core.$strict>, z.ZodObject<{
|
|
66
|
+
kind: z.ZodLiteral<SourceKind.Git>;
|
|
67
|
+
url: z.ZodString;
|
|
68
|
+
ref: z.ZodOptional<z.ZodString>;
|
|
69
|
+
authTokenEnv: z.ZodOptional<z.ZodString>;
|
|
70
|
+
name: z.ZodString;
|
|
71
|
+
}, z.core.$strict>], "kind">;
|
|
72
|
+
export type SourceSpec = z.infer<typeof SourceSpecSchema>;
|
|
73
|
+
export declare const SourcesConfigSchema: z.ZodDefault<z.ZodArray<z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
74
|
+
kind: z.ZodLiteral<SourceKind.Workspace>;
|
|
75
|
+
root: z.ZodOptional<z.ZodString>;
|
|
76
|
+
name: z.ZodString;
|
|
77
|
+
}, z.core.$strict>, z.ZodObject<{
|
|
78
|
+
kind: z.ZodLiteral<SourceKind.Distribution>;
|
|
79
|
+
edition: z.ZodString;
|
|
80
|
+
ref: z.ZodOptional<z.ZodString>;
|
|
81
|
+
name: z.ZodString;
|
|
82
|
+
}, z.core.$strict>, z.ZodObject<{
|
|
83
|
+
kind: z.ZodLiteral<SourceKind.Npm>;
|
|
84
|
+
registryUrl: z.ZodOptional<z.ZodString>;
|
|
85
|
+
scope: z.ZodOptional<z.ZodString>;
|
|
86
|
+
authTokenEnv: z.ZodOptional<z.ZodString>;
|
|
87
|
+
name: z.ZodString;
|
|
88
|
+
}, z.core.$strict>, z.ZodObject<{
|
|
89
|
+
kind: z.ZodLiteral<SourceKind.Oci>;
|
|
90
|
+
registry: z.ZodString;
|
|
91
|
+
authTokenEnv: z.ZodOptional<z.ZodString>;
|
|
92
|
+
name: z.ZodString;
|
|
93
|
+
}, z.core.$strict>, z.ZodObject<{
|
|
94
|
+
kind: z.ZodLiteral<SourceKind.Git>;
|
|
95
|
+
url: z.ZodString;
|
|
96
|
+
ref: z.ZodOptional<z.ZodString>;
|
|
97
|
+
authTokenEnv: z.ZodOptional<z.ZodString>;
|
|
98
|
+
name: z.ZodString;
|
|
99
|
+
}, z.core.$strict>], "kind">>>;
|
|
100
|
+
export type SourcesConfig = z.infer<typeof SourcesConfigSchema>;
|
|
101
|
+
//# sourceMappingURL=schema.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../src/runtime/sources/schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAyBxB,oBAAY,UAAU;IAEpB,SAAS,cAAc;IAEvB,YAAY,iBAAiB;IAE7B,GAAG,QAAQ;IAEX,GAAG,QAAQ;IAEX,GAAG,QAAQ;CACZ;AAeD,eAAO,MAAM,qBAAqB;;;;kBAMvB,CAAC;AACZ,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AAQpE,eAAO,MAAM,wBAAwB;;;;;kBAO1B,CAAC;AACZ,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAC;AAQ1E,eAAO,MAAM,eAAe;;;;;;kBAWjB,CAAC;AACZ,MAAM,MAAM,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAC;AAGxD,eAAO,MAAM,eAAe;;;;;kBAOjB,CAAC;AACZ,MAAM,MAAM,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAC;AAQxD,eAAO,MAAM,eAAe;;;;;;kBAQjB,CAAC;AACZ,MAAM,MAAM,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAC;AAExD,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;4BAM3B,CAAC;AACH,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAQ1D,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;8BAAwC,CAAC;AACzE,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC"}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.SourcesConfigSchema = exports.SourceSpecSchema = exports.GitSourceSchema = exports.OciSourceSchema = exports.NpmSourceSchema = exports.DistributionSourceSchema = exports.WorkspaceSourceSchema = exports.SourceKind = void 0;
|
|
4
|
+
const zod_1 = require("zod");
|
|
5
|
+
var SourceKind;
|
|
6
|
+
(function (SourceKind) {
|
|
7
|
+
SourceKind["Workspace"] = "workspace";
|
|
8
|
+
SourceKind["Distribution"] = "distribution";
|
|
9
|
+
SourceKind["Npm"] = "npm";
|
|
10
|
+
SourceKind["Oci"] = "oci";
|
|
11
|
+
SourceKind["Git"] = "git";
|
|
12
|
+
})(SourceKind || (exports.SourceKind = SourceKind = {}));
|
|
13
|
+
const SourceBaseSchema = {
|
|
14
|
+
name: zod_1.z
|
|
15
|
+
.string()
|
|
16
|
+
.min(1)
|
|
17
|
+
.regex(/^[a-z][a-z0-9-]*$/, 'source name must be lowercase kebab-case'),
|
|
18
|
+
};
|
|
19
|
+
exports.WorkspaceSourceSchema = zod_1.z
|
|
20
|
+
.object({
|
|
21
|
+
...SourceBaseSchema,
|
|
22
|
+
kind: zod_1.z.literal(SourceKind.Workspace),
|
|
23
|
+
root: zod_1.z.string().min(1).optional(),
|
|
24
|
+
})
|
|
25
|
+
.strict();
|
|
26
|
+
exports.DistributionSourceSchema = zod_1.z
|
|
27
|
+
.object({
|
|
28
|
+
...SourceBaseSchema,
|
|
29
|
+
kind: zod_1.z.literal(SourceKind.Distribution),
|
|
30
|
+
edition: zod_1.z.string().min(1),
|
|
31
|
+
ref: zod_1.z.string().min(1).optional(),
|
|
32
|
+
})
|
|
33
|
+
.strict();
|
|
34
|
+
exports.NpmSourceSchema = zod_1.z
|
|
35
|
+
.object({
|
|
36
|
+
...SourceBaseSchema,
|
|
37
|
+
kind: zod_1.z.literal(SourceKind.Npm),
|
|
38
|
+
registryUrl: zod_1.z.string().url().optional(),
|
|
39
|
+
scope: zod_1.z
|
|
40
|
+
.string()
|
|
41
|
+
.regex(/^@[a-z0-9][a-z0-9-]*$/, 'scope must look like @scope')
|
|
42
|
+
.optional(),
|
|
43
|
+
authTokenEnv: zod_1.z.string().min(1).optional(),
|
|
44
|
+
})
|
|
45
|
+
.strict();
|
|
46
|
+
exports.OciSourceSchema = zod_1.z
|
|
47
|
+
.object({
|
|
48
|
+
...SourceBaseSchema,
|
|
49
|
+
kind: zod_1.z.literal(SourceKind.Oci),
|
|
50
|
+
registry: zod_1.z.string().min(1),
|
|
51
|
+
authTokenEnv: zod_1.z.string().min(1).optional(),
|
|
52
|
+
})
|
|
53
|
+
.strict();
|
|
54
|
+
exports.GitSourceSchema = zod_1.z
|
|
55
|
+
.object({
|
|
56
|
+
...SourceBaseSchema,
|
|
57
|
+
kind: zod_1.z.literal(SourceKind.Git),
|
|
58
|
+
url: zod_1.z.string().regex(/^https?:\/\//, 'git url must be http(s)'),
|
|
59
|
+
ref: zod_1.z.string().min(1).optional(),
|
|
60
|
+
authTokenEnv: zod_1.z.string().min(1).optional(),
|
|
61
|
+
})
|
|
62
|
+
.strict();
|
|
63
|
+
exports.SourceSpecSchema = zod_1.z.discriminatedUnion('kind', [
|
|
64
|
+
exports.WorkspaceSourceSchema,
|
|
65
|
+
exports.DistributionSourceSchema,
|
|
66
|
+
exports.NpmSourceSchema,
|
|
67
|
+
exports.OciSourceSchema,
|
|
68
|
+
exports.GitSourceSchema,
|
|
69
|
+
]);
|
|
70
|
+
exports.SourcesConfigSchema = zod_1.z.array(exports.SourceSpecSchema).default([]);
|
|
71
|
+
//# sourceMappingURL=schema.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../../../src/runtime/sources/schema.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { CredentialResolver } from './credentials';
|
|
2
|
+
import type { LockIndex } from '../roster';
|
|
3
|
+
export interface SourceResolveContext {
|
|
4
|
+
readonly edition: string;
|
|
5
|
+
readonly usesImages: boolean;
|
|
6
|
+
readonly credentials: CredentialResolver;
|
|
7
|
+
readonly log?: (line: string) => void;
|
|
8
|
+
}
|
|
9
|
+
export type KindResolver<TSpec> = (spec: TSpec, ctx: SourceResolveContext) => LockIndex | null;
|
|
10
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/runtime/sources/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AACxD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAM3C,MAAM,WAAW,oBAAoB;IAEnC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IAEzB,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC;IAE7B,QAAQ,CAAC,WAAW,EAAE,kBAAkB,CAAC;IAEzC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;CACvC;AASD,MAAM,MAAM,YAAY,CAAC,KAAK,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,oBAAoB,KAAK,SAAS,GAAG,IAAI,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/runtime/sources/types.ts"],"names":[],"mappings":""}
|
package/dist/runtime/waves.d.ts
CHANGED
|
@@ -5,6 +5,7 @@ export interface Wave {
|
|
|
5
5
|
readonly tier: string;
|
|
6
6
|
readonly members: readonly RosterEntry[];
|
|
7
7
|
}
|
|
8
|
+
export declare function bootGraphHardClosure(seed: readonly string[], bootGraph: BootGraph, exists: (name: string) => boolean): string[];
|
|
8
9
|
export declare function deriveWaves(roster: readonly RosterEntry[], bootGraph?: BootGraph): Wave[];
|
|
9
10
|
export declare function findWaveOrderViolations(waves: readonly Wave[], bootGraph: BootGraph): Array<{
|
|
10
11
|
service: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"waves.d.ts","sourceRoot":"","sources":["../../src/runtime/waves.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAY5C,MAAM,WAAW,IAAI;IACnB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,SAAS,WAAW,EAAE,CAAC;CAC1C;AAYD,wBAAgB,WAAW,CAAC,MAAM,EAAE,SAAS,WAAW,EAAE,EAAE,SAAS,CAAC,EAAE,SAAS,GAAG,IAAI,EAAE,CA8BzF;AAQD,wBAAgB,uBAAuB,CACrC,KAAK,EAAE,SAAS,IAAI,EAAE,EACtB,SAAS,EAAE,SAAS,GACnB,KAAK,CAAC;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,MAAM,CAAA;CAAE,CAAC,CA2CzF"}
|
|
1
|
+
{"version":3,"file":"waves.d.ts","sourceRoot":"","sources":["../../src/runtime/waves.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAY5C,MAAM,WAAW,IAAI;IACnB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,SAAS,WAAW,EAAE,CAAC;CAC1C;AAUD,wBAAgB,oBAAoB,CAClC,IAAI,EAAE,SAAS,MAAM,EAAE,EACvB,SAAS,EAAE,SAAS,EACpB,MAAM,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,GAChC,MAAM,EAAE,CAiBV;AAYD,wBAAgB,WAAW,CAAC,MAAM,EAAE,SAAS,WAAW,EAAE,EAAE,SAAS,CAAC,EAAE,SAAS,GAAG,IAAI,EAAE,CA8BzF;AAQD,wBAAgB,uBAAuB,CACrC,KAAK,EAAE,SAAS,IAAI,EAAE,EACtB,SAAS,EAAE,SAAS,GACnB,KAAK,CAAC;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,MAAM,CAAA;CAAE,CAAC,CA2CzF"}
|
package/dist/runtime/waves.js
CHANGED
|
@@ -1,7 +1,26 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.bootGraphHardClosure = bootGraphHardClosure;
|
|
3
4
|
exports.deriveWaves = deriveWaves;
|
|
4
5
|
exports.findWaveOrderViolations = findWaveOrderViolations;
|
|
6
|
+
function bootGraphHardClosure(seed, bootGraph, exists) {
|
|
7
|
+
const out = new Set(seed.filter(exists));
|
|
8
|
+
const queue = [...out];
|
|
9
|
+
while (queue.length > 0) {
|
|
10
|
+
const svc = queue.shift();
|
|
11
|
+
if (svc === undefined) {
|
|
12
|
+
break;
|
|
13
|
+
}
|
|
14
|
+
const node = bootGraph.services.get(svc);
|
|
15
|
+
for (const req of node?.startupRequires ?? []) {
|
|
16
|
+
if (exists(req) && !out.has(req)) {
|
|
17
|
+
out.add(req);
|
|
18
|
+
queue.push(req);
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
return [...out];
|
|
23
|
+
}
|
|
5
24
|
const DEFAULT_TIER_RANK = {
|
|
6
25
|
kernel: 0,
|
|
7
26
|
system: 1,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"waves.js","sourceRoot":"","sources":["../../src/runtime/waves.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"waves.js","sourceRoot":"","sources":["../../src/runtime/waves.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
# Biome Source Registry — pull biomes from many origins (community, cultivars,
|
|
2
|
+
# a client's private registry/git, third-party) with per-source auth, while
|
|
3
|
+
# keeping local dev publish-free.
|
|
4
|
+
# Run: cp examples/06-biome-sources.yaml xema.config.yaml && xema dev
|
|
5
|
+
# Check sources + token presence first: xema doctor --sources
|
|
6
|
+
#
|
|
7
|
+
# Precedence (highest wins): workspace > other sources (declared order) > base
|
|
8
|
+
# So a `workspace` source (local working tree) ALWAYS wins in a monorepo — your
|
|
9
|
+
# edits run with NO publish (constraint C1). Tokens are referenced by env-var
|
|
10
|
+
# NAME, never inlined; export them or put them in ~/.xema/credentials.env.
|
|
11
|
+
edition: oss
|
|
12
|
+
app:
|
|
13
|
+
substrate: native # workspace + git sources are source, not images
|
|
14
|
+
include: [ all ]
|
|
15
|
+
|
|
16
|
+
sources:
|
|
17
|
+
# 1. WORKSPACE — local working-tree dirs. In a monorepo checkout this wins
|
|
18
|
+
# over every remote source, so `xema dev` runs your edits without a publish.
|
|
19
|
+
# `root` defaults to the auto-detected monorepo root.
|
|
20
|
+
- name: workspace
|
|
21
|
+
kind: workspace
|
|
22
|
+
|
|
23
|
+
# 2. DISTRIBUTION — a pinned edition lock (e.g. a cultivars edition). With no
|
|
24
|
+
# `ref` it reads the vendored/monorepo lock; a local path `ref` reads
|
|
25
|
+
# <ref>/<edition>/{distribution.lock,images.lock}.json.
|
|
26
|
+
- name: cultivars
|
|
27
|
+
kind: distribution
|
|
28
|
+
edition: cultivars
|
|
29
|
+
|
|
30
|
+
# 3. GIT — a client's OWN biome repo (one biome at the root or many nested —
|
|
31
|
+
# both are discovered by walking for xema-biome.json). Private repos name
|
|
32
|
+
# the env var holding their token; omit authTokenEnv for a public clone.
|
|
33
|
+
- name: acme-biomes
|
|
34
|
+
kind: git
|
|
35
|
+
url: https://github.com/acme/xema-biomes.git
|
|
36
|
+
ref: v2.1.0
|
|
37
|
+
authTokenEnv: GIT_TOKEN_ACME # export GIT_TOKEN_ACME=... (never inlined)
|
|
38
|
+
|
|
39
|
+
# 4. NPM — biome packages from any registry. INSTALL-TIME: these install into a
|
|
40
|
+
# running platform via `xema biome install` (the biome-fetcher path); they
|
|
41
|
+
# are not booted directly by `xema up`. Shown here for completeness.
|
|
42
|
+
- name: acme-npm
|
|
43
|
+
kind: npm
|
|
44
|
+
registryUrl: https://npm.pkg.github.com
|
|
45
|
+
scope: "@acme-biomes"
|
|
46
|
+
authTokenEnv: NPM_TOKEN_ACME
|
|
47
|
+
|
|
48
|
+
infra:
|
|
49
|
+
postgres: { mode: external, url: postgresql://postgres:postgres@127.0.0.1:5432 }
|
|
50
|
+
redis: { mode: external, url: redis://127.0.0.1:6379 }
|
|
51
|
+
keycloak: { mode: external, url: http://127.0.0.1:8180, realm: xema }
|
package/package.json
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@xemahq/xema",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.3.0",
|
|
4
|
+
"license": "Apache-2.0",
|
|
4
5
|
"description": "Xema OS global CLI (plan v4.3 §6 Phase J). Single binary day-0 onboarding: `npm i -g @xemahq/xema && xema dev` boots the whole stack; `xema biome scaffold` / `install` / `publish` / `lint` author and ship biomes; `xema run <capability>` invokes through the local capability-router. Multi-platform: works without pnpm or any monorepo clone.",
|
|
5
6
|
"type": "commonjs",
|
|
6
7
|
"main": "dist/cli.js",
|
|
@@ -26,6 +27,7 @@
|
|
|
26
27
|
"commander": "^12.1.0",
|
|
27
28
|
"reflect-metadata": "0.2.2",
|
|
28
29
|
"rxjs": "7.8.2",
|
|
30
|
+
"tsx": "^4.19.2",
|
|
29
31
|
"yaml": "^2.6.1",
|
|
30
32
|
"zod": "^4.3.6"
|
|
31
33
|
},
|
|
@@ -50,7 +52,8 @@
|
|
|
50
52
|
"dist/**/*.js"
|
|
51
53
|
],
|
|
52
54
|
"assets": [
|
|
53
|
-
"dist/**/*.json"
|
|
55
|
+
"dist/**/*.json",
|
|
56
|
+
"package.json"
|
|
54
57
|
],
|
|
55
58
|
"targets": [
|
|
56
59
|
"node20-macos-arm64",
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
export interface DevOrchestratorOptions {
|
|
2
|
-
readonly kernelPort?: number | undefined;
|
|
3
|
-
readonly routerPort?: number | undefined;
|
|
4
|
-
readonly skipPreflight?: boolean | undefined;
|
|
5
|
-
}
|
|
6
|
-
export declare function runDevOrchestrator(opts?: DevOrchestratorOptions): Promise<void>;
|
|
7
|
-
//# sourceMappingURL=dev-orchestrator.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"dev-orchestrator.d.ts","sourceRoot":"","sources":["../../src/dev/dev-orchestrator.ts"],"names":[],"mappings":"AAmMA,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACzC,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAMzC,QAAQ,CAAC,aAAa,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;CAC9C;AAsBD,wBAAsB,kBAAkB,CACtC,IAAI,GAAE,sBAA2B,GAChC,OAAO,CAAC,IAAI,CAAC,CA6Xf"}
|