@xemahq/create-biome 0.1.3 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +27 -10
- package/dist/bin/create-biome.js +95 -44
- package/dist/bin/create-biome.js.map +1 -1
- package/dist/index.d.ts +2 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -2
- package/dist/index.js.map +1 -1
- package/dist/lib/host-wiring.d.ts +10 -0
- package/dist/lib/host-wiring.d.ts.map +1 -0
- package/dist/lib/host-wiring.js +70 -0
- package/dist/lib/host-wiring.js.map +1 -0
- package/dist/lib/kind.d.ts +15 -0
- package/dist/lib/kind.d.ts.map +1 -0
- package/dist/lib/kind.js +33 -0
- package/dist/lib/kind.js.map +1 -0
- package/dist/lib/manifest-builder.d.ts +54 -14
- package/dist/lib/manifest-builder.d.ts.map +1 -1
- package/dist/lib/manifest-builder.js +54 -12
- package/dist/lib/manifest-builder.js.map +1 -1
- package/dist/lib/scaffolder.d.ts +12 -6
- package/dist/lib/scaffolder.d.ts.map +1 -1
- package/dist/lib/scaffolder.js +70 -21
- package/dist/lib/scaffolder.js.map +1 -1
- package/dist/lib/template-files.d.ts +7 -2
- package/dist/lib/template-files.d.ts.map +1 -1
- package/dist/lib/template-files.js +473 -222
- package/dist/lib/template-files.js.map +1 -1
- package/package.json +13 -13
- package/LICENSE +0 -201
- package/dist/lib/package-builder.d.ts +0 -17
- package/dist/lib/package-builder.d.ts.map +0 -1
- package/dist/lib/package-builder.js +0 -25
- package/dist/lib/package-builder.js.map +0 -1
- package/dist/lib/template.d.ts +0 -14
- package/dist/lib/template.d.ts.map +0 -1
- package/dist/lib/template.js +0 -26
- package/dist/lib/template.js.map +0 -1
|
@@ -1,20 +1,62 @@
|
|
|
1
|
-
|
|
1
|
+
const XEMA_ENGINE_RANGE = '^1.0.0';
|
|
2
|
+
const DEFAULT_API_REQUIRES_SERVICES = ['identity-api'];
|
|
3
|
+
export function buildServerManifest(input) {
|
|
2
4
|
return {
|
|
3
|
-
|
|
4
|
-
id: input.biomeId,
|
|
5
|
-
name: input.displayName,
|
|
5
|
+
name: firstPartyPackageName(input.biomeId),
|
|
6
6
|
version: '0.1.0',
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
7
|
+
xema: {
|
|
8
|
+
id: input.biomeId,
|
|
9
|
+
displayName: input.displayName,
|
|
10
|
+
description: input.description,
|
|
11
|
+
scope: input.scope,
|
|
12
|
+
target: 'server',
|
|
13
|
+
engines: { xema: XEMA_ENGINE_RANGE },
|
|
14
|
+
requiresCapabilities: [],
|
|
15
|
+
exposesCapabilities: [],
|
|
16
|
+
contributions: { directory: './contributions' },
|
|
17
|
+
ships: {
|
|
18
|
+
apis: [
|
|
19
|
+
{
|
|
20
|
+
name: input.apiName,
|
|
21
|
+
path: `./api/${input.apiName}`,
|
|
22
|
+
displayName: `${input.displayName} API`,
|
|
23
|
+
serviceKind: 'biome-api',
|
|
24
|
+
requiresServices: DEFAULT_API_REQUIRES_SERVICES,
|
|
25
|
+
exposesCapabilities: [],
|
|
26
|
+
},
|
|
27
|
+
],
|
|
28
|
+
},
|
|
10
29
|
},
|
|
11
|
-
requiresCapabilities: [],
|
|
12
|
-
exposesCapabilities: [],
|
|
13
|
-
contributes: [],
|
|
14
30
|
};
|
|
15
31
|
}
|
|
16
|
-
export function
|
|
17
|
-
|
|
32
|
+
export function buildWebManifest(input) {
|
|
33
|
+
const base = {
|
|
34
|
+
name: firstPartyPackageName(input.biomeId),
|
|
35
|
+
version: '0.1.0',
|
|
36
|
+
xema: {
|
|
37
|
+
id: input.biomeId,
|
|
38
|
+
displayName: input.displayName,
|
|
39
|
+
description: input.description,
|
|
40
|
+
scope: input.scope,
|
|
41
|
+
target: 'web',
|
|
42
|
+
},
|
|
43
|
+
};
|
|
44
|
+
if (input.requiresServerBiomes.length === 0) {
|
|
45
|
+
return base;
|
|
46
|
+
}
|
|
47
|
+
return {
|
|
48
|
+
...base,
|
|
49
|
+
xema: { ...base.xema, requiresServerBiomes: input.requiresServerBiomes },
|
|
50
|
+
};
|
|
51
|
+
}
|
|
52
|
+
export function firstPartyPackageName(biomeId) {
|
|
53
|
+
return `@xemahq/biomes-${biomeId}`;
|
|
54
|
+
}
|
|
55
|
+
export function apiNameForBiome(biomeId) {
|
|
56
|
+
return `${biomeId}-api`;
|
|
57
|
+
}
|
|
58
|
+
export function webBiomeId(biomeId) {
|
|
59
|
+
return `${biomeId}-web`;
|
|
18
60
|
}
|
|
19
61
|
const BIOME_ID_PATTERN = /^[a-z][a-z0-9-]{1,61}[a-z0-9]$/;
|
|
20
62
|
export function validateBiomeId(biomeId) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"manifest-builder.js","sourceRoot":"","sources":["../../src/lib/manifest-builder.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"manifest-builder.js","sourceRoot":"","sources":["../../src/lib/manifest-builder.ts"],"names":[],"mappings":"AAgFA,MAAM,iBAAiB,GAAG,QAAQ,CAAC;AAQnC,MAAM,6BAA6B,GAAsB,CAAC,cAAc,CAAC,CAAC;AAE1E,MAAM,UAAU,mBAAmB,CACjC,KAAiC;IAEjC,OAAO;QACL,IAAI,EAAE,qBAAqB,CAAC,KAAK,CAAC,OAAO,CAAC;QAC1C,OAAO,EAAE,OAAO;QAChB,IAAI,EAAE;YACJ,EAAE,EAAE,KAAK,CAAC,OAAO;YACjB,WAAW,EAAE,KAAK,CAAC,WAAW;YAC9B,WAAW,EAAE,KAAK,CAAC,WAAW;YAC9B,KAAK,EAAE,KAAK,CAAC,KAAK;YAClB,MAAM,EAAE,QAAQ;YAChB,OAAO,EAAE,EAAE,IAAI,EAAE,iBAAiB,EAAE;YACpC,oBAAoB,EAAE,EAAE;YACxB,mBAAmB,EAAE,EAAE;YACvB,aAAa,EAAE,EAAE,SAAS,EAAE,iBAAiB,EAAE;YAC/C,KAAK,EAAE;gBACL,IAAI,EAAE;oBACJ;wBACE,IAAI,EAAE,KAAK,CAAC,OAAO;wBACnB,IAAI,EAAE,SAAS,KAAK,CAAC,OAAO,EAAE;wBAC9B,WAAW,EAAE,GAAG,KAAK,CAAC,WAAW,MAAM;wBACvC,WAAW,EAAE,WAAW;wBACxB,gBAAgB,EAAE,6BAA6B;wBAC/C,mBAAmB,EAAE,EAAE;qBACxB;iBACF;aACF;SACF;KACF,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,gBAAgB,CAC9B,KAA8B;IAE9B,MAAM,IAAI,GAAG;QACX,IAAI,EAAE,qBAAqB,CAAC,KAAK,CAAC,OAAO,CAAC;QAC1C,OAAO,EAAE,OAAO;QAChB,IAAI,EAAE;YACJ,EAAE,EAAE,KAAK,CAAC,OAAO;YACjB,WAAW,EAAE,KAAK,CAAC,WAAW;YAC9B,WAAW,EAAE,KAAK,CAAC,WAAW;YAC9B,KAAK,EAAE,KAAK,CAAC,KAAK;YAClB,MAAM,EAAE,KAAc;SACvB;KACF,CAAC;IACF,IAAI,KAAK,CAAC,oBAAoB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC5C,OAAO,IAAI,CAAC;IACd,CAAC;IACD,OAAO;QACL,GAAG,IAAI;QACP,IAAI,EAAE,EAAE,GAAG,IAAI,CAAC,IAAI,EAAE,oBAAoB,EAAE,KAAK,CAAC,oBAAoB,EAAE;KACzE,CAAC;AACJ,CAAC;AAQD,MAAM,UAAU,qBAAqB,CAAC,OAAe;IACnD,OAAO,kBAAkB,OAAO,EAAE,CAAC;AACrC,CAAC;AAMD,MAAM,UAAU,eAAe,CAAC,OAAe;IAC7C,OAAO,GAAG,OAAO,MAAM,CAAC;AAC1B,CAAC;AAOD,MAAM,UAAU,UAAU,CAAC,OAAe;IACxC,OAAO,GAAG,OAAO,MAAM,CAAC;AAC1B,CAAC;AAQD,MAAM,gBAAgB,GAAG,gCAAgC,CAAC;AAE1D,MAAM,UAAU,eAAe,CAC7B,OAAe;IAEf,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;QACpC,OAAO;YACL,EAAE,EAAE,KAAK;YACT,MAAM,EAAE,aAAa,OAAO,8FAA8F;SAC3H,CAAC;IACJ,CAAC;IACD,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC;AACtB,CAAC"}
|
package/dist/lib/scaffolder.d.ts
CHANGED
|
@@ -1,16 +1,22 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { type
|
|
1
|
+
import { BiomeKind } from './kind.js';
|
|
2
|
+
import { type ManifestScope } from './manifest-builder.js';
|
|
3
3
|
export interface ScaffoldBiomeInput {
|
|
4
4
|
readonly biomeId: string;
|
|
5
5
|
readonly displayName: string;
|
|
6
6
|
readonly description: string;
|
|
7
|
-
readonly
|
|
8
|
-
readonly
|
|
7
|
+
readonly kind: BiomeKind;
|
|
8
|
+
readonly scope: ManifestScope;
|
|
9
|
+
readonly repoRoot: string;
|
|
10
|
+
readonly serverBiomesDir?: string;
|
|
11
|
+
readonly webBiomesDir?: string;
|
|
12
|
+
}
|
|
13
|
+
export interface ScaffoldedBiomeDir {
|
|
14
|
+
readonly target: 'server' | 'web';
|
|
15
|
+
readonly dir: string;
|
|
9
16
|
}
|
|
10
17
|
export interface ScaffoldBiomeResult {
|
|
11
|
-
readonly
|
|
18
|
+
readonly dirs: readonly ScaffoldedBiomeDir[];
|
|
12
19
|
readonly filesWritten: readonly string[];
|
|
13
|
-
readonly manifest: ReturnType<typeof buildManifest>;
|
|
14
20
|
}
|
|
15
21
|
export declare function scaffoldBiome(input: ScaffoldBiomeInput): Promise<ScaffoldBiomeResult>;
|
|
16
22
|
export declare class ScaffolderError extends Error {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scaffolder.d.ts","sourceRoot":"","sources":["../../src/lib/scaffolder.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"scaffolder.d.ts","sourceRoot":"","sources":["../../src/lib/scaffolder.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,EAML,KAAK,aAAa,EACnB,MAAM,uBAAuB,CAAC;AAa/B,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;IACzB,QAAQ,CAAC,KAAK,EAAE,aAAa,CAAC;IAO9B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAK1B,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,CAAC;IAMlC,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;CAChC;AAED,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,MAAM,EAAE,QAAQ,GAAG,KAAK,CAAC;IAClC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,IAAI,EAAE,SAAS,kBAAkB,EAAE,CAAC;IAC7C,QAAQ,CAAC,YAAY,EAAE,SAAS,MAAM,EAAE,CAAC;CAC1C;AAWD,wBAAsB,aAAa,CACjC,KAAK,EAAE,kBAAkB,GACxB,OAAO,CAAC,mBAAmB,CAAC,CA4B9B;AAgGD,qBAAa,eAAgB,SAAQ,KAAK;gBAC5B,OAAO,EAAE,MAAM;CAI5B"}
|
package/dist/lib/scaffolder.js
CHANGED
|
@@ -1,41 +1,90 @@
|
|
|
1
1
|
import { mkdir, writeFile } from 'node:fs/promises';
|
|
2
2
|
import { existsSync } from 'node:fs';
|
|
3
3
|
import * as path from 'node:path';
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
7
|
-
import { renderTemplateFiles } from './template-files.js';
|
|
4
|
+
import { BiomeKind } from './kind.js';
|
|
5
|
+
import { apiNameForBiome, buildServerManifest, buildWebManifest, validateBiomeId, webBiomeId, } from './manifest-builder.js';
|
|
6
|
+
import { renderServerBiomeFiles, webBiomeFiles, } from './template-files.js';
|
|
8
7
|
export async function scaffoldBiome(input) {
|
|
9
8
|
const idCheck = validateBiomeId(input.biomeId);
|
|
10
9
|
if (!idCheck.ok) {
|
|
11
10
|
throw new ScaffolderError(idCheck.reason);
|
|
12
11
|
}
|
|
13
|
-
|
|
14
|
-
|
|
12
|
+
const dirs = [];
|
|
13
|
+
const filesWritten = [];
|
|
14
|
+
const wantsServer = input.kind === BiomeKind.Service || input.kind === BiomeKind.Full;
|
|
15
|
+
const wantsWeb = input.kind === BiomeKind.Web || input.kind === BiomeKind.Full;
|
|
16
|
+
if (wantsServer) {
|
|
17
|
+
const serverDir = resolveServerDir(input);
|
|
18
|
+
refuseExisting(serverDir);
|
|
19
|
+
await writeServerBiome(input, serverDir, filesWritten);
|
|
20
|
+
dirs.push({ target: 'server', dir: serverDir });
|
|
21
|
+
}
|
|
22
|
+
if (wantsWeb) {
|
|
23
|
+
const webDir = resolveWebDir(input);
|
|
24
|
+
refuseExisting(webDir);
|
|
25
|
+
await writeWebBiome(input, webDir, filesWritten);
|
|
26
|
+
dirs.push({ target: 'web', dir: webDir });
|
|
15
27
|
}
|
|
16
|
-
|
|
17
|
-
|
|
28
|
+
return { dirs, filesWritten };
|
|
29
|
+
}
|
|
30
|
+
function resolveServerDir(input) {
|
|
31
|
+
if (!input.serverBiomesDir) {
|
|
32
|
+
throw new ScaffolderError('serverBiomesDir is required for a service/full biome (e.g. repos/xema-community/biomes)');
|
|
33
|
+
}
|
|
34
|
+
return path.resolve(input.repoRoot, input.serverBiomesDir, input.biomeId);
|
|
35
|
+
}
|
|
36
|
+
function resolveWebDir(input) {
|
|
37
|
+
if (!input.webBiomesDir) {
|
|
38
|
+
throw new ScaffolderError('webBiomesDir is required for a web/full biome (e.g. submodules/xema-host-web/biomes)');
|
|
39
|
+
}
|
|
40
|
+
const tier = input.scope;
|
|
41
|
+
return path.resolve(input.repoRoot, input.webBiomesDir, tier, webBiomeId(input.biomeId));
|
|
42
|
+
}
|
|
43
|
+
function refuseExisting(dir) {
|
|
44
|
+
if (existsSync(dir)) {
|
|
45
|
+
throw new ScaffolderError(`target directory already exists: ${dir} — choose a fresh id or delete it first`);
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
async function writeServerBiome(input, serverDir, written) {
|
|
49
|
+
const ctx = {
|
|
18
50
|
biomeId: input.biomeId,
|
|
19
51
|
displayName: input.displayName,
|
|
20
52
|
description: input.description,
|
|
21
|
-
|
|
53
|
+
};
|
|
54
|
+
const manifest = buildServerManifest({
|
|
55
|
+
biomeId: input.biomeId,
|
|
56
|
+
displayName: input.displayName,
|
|
57
|
+
description: input.description,
|
|
58
|
+
scope: input.scope,
|
|
59
|
+
apiName: apiNameForBiome(input.biomeId),
|
|
22
60
|
});
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
61
|
+
await mkdir(serverDir, { recursive: true });
|
|
62
|
+
await writeJson(serverDir, 'xema-biome.json', manifest, written);
|
|
63
|
+
for (const [rel, content] of Object.entries(renderServerBiomeFiles(ctx))) {
|
|
64
|
+
await writeText(serverDir, rel, content, written);
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
async function writeWebBiome(input, webDir, written) {
|
|
68
|
+
const wid = webBiomeId(input.biomeId);
|
|
69
|
+
const navLabel = input.displayName;
|
|
70
|
+
const manifest = buildWebManifest({
|
|
71
|
+
biomeId: wid,
|
|
72
|
+
displayName: `${input.displayName} (Web)`,
|
|
73
|
+
description: input.description,
|
|
74
|
+
scope: input.scope,
|
|
75
|
+
requiresServerBiomes: input.kind === BiomeKind.Full ? [input.biomeId] : [],
|
|
26
76
|
});
|
|
27
|
-
|
|
77
|
+
await mkdir(webDir, { recursive: true });
|
|
78
|
+
await writeJson(webDir, 'xema-biome.json', manifest, written);
|
|
79
|
+
for (const [rel, content] of Object.entries(webBiomeFiles({
|
|
28
80
|
biomeId: input.biomeId,
|
|
29
81
|
displayName: input.displayName,
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
for (const [relativePath, content] of Object.entries(templateFiles)) {
|
|
36
|
-
await writeText(input.targetDir, relativePath, content, filesWritten);
|
|
82
|
+
description: input.description,
|
|
83
|
+
webBiomeId: wid,
|
|
84
|
+
navLabel,
|
|
85
|
+
}))) {
|
|
86
|
+
await writeText(webDir, rel, content, written);
|
|
37
87
|
}
|
|
38
|
-
return { targetDir: input.targetDir, filesWritten, manifest };
|
|
39
88
|
}
|
|
40
89
|
export class ScaffolderError extends Error {
|
|
41
90
|
constructor(message) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scaffolder.js","sourceRoot":"","sources":["../../src/lib/scaffolder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAElC,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"scaffolder.js","sourceRoot":"","sources":["../../src/lib/scaffolder.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,8 +1,13 @@
|
|
|
1
|
-
import { BiomeTemplateId } from './template.js';
|
|
2
1
|
export interface TemplateContext {
|
|
3
2
|
readonly biomeId: string;
|
|
4
3
|
readonly displayName: string;
|
|
4
|
+
readonly description: string;
|
|
5
5
|
}
|
|
6
6
|
export type TemplateFiles = Readonly<Record<string, string>>;
|
|
7
|
-
export
|
|
7
|
+
export interface WebTemplateContext extends TemplateContext {
|
|
8
|
+
readonly webBiomeId: string;
|
|
9
|
+
readonly navLabel: string;
|
|
10
|
+
}
|
|
11
|
+
export declare function webBiomeFiles(ctx: WebTemplateContext): TemplateFiles;
|
|
12
|
+
export declare function renderServerBiomeFiles(ctx: TemplateContext): TemplateFiles;
|
|
8
13
|
//# sourceMappingURL=template-files.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"template-files.d.ts","sourceRoot":"","sources":["../../src/lib/template-files.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"template-files.d.ts","sourceRoot":"","sources":["../../src/lib/template-files.ts"],"names":[],"mappings":"AAsBA,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;CAC9B;AAED,MAAM,MAAM,aAAa,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;AAgc7D,MAAM,WAAW,kBAAmB,SAAQ,eAAe;IAEzD,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAE5B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;CAC3B;AAMD,wBAAgB,aAAa,CAAC,GAAG,EAAE,kBAAkB,GAAG,aAAa,CA2CpE;AA6HD,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,eAAe,GAAG,aAAa,CAK1E"}
|