@terrazzo/cli 0.6.3 → 0.7.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +12 -0
- package/bin/cli.js +14 -0
- package/dist/help.d.ts.map +1 -1
- package/dist/help.js +1 -0
- package/dist/help.js.map +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -1
- package/dist/index.js.map +1 -1
- package/dist/lab/assets/index-HP_WOzzC.js +50 -0
- package/dist/lab/assets/index-HP_WOzzC.js.map +1 -0
- package/dist/lab/index.html +12 -0
- package/dist/lab.d.ts +11 -0
- package/dist/lab.d.ts.map +1 -0
- package/dist/lab.js +74 -0
- package/dist/lab.js.map +1 -0
- package/dist/shared.d.ts.map +1 -1
- package/dist/shared.js +2 -1
- package/dist/shared.js.map +1 -1
- package/index.html +12 -0
- package/lab.tsx +26 -0
- package/package.json +14 -5
- package/terrazzo.config.mjs +1 -1
- package/tokens-example.json +13 -1
- package/vite.config.ts +15 -0
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
<!doctype html>
|
|
2
|
+
<html lang="en">
|
|
3
|
+
<head>
|
|
4
|
+
<meta charset="UTF-8" />
|
|
5
|
+
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
6
|
+
<title>Terrazzo Token Lab</title>
|
|
7
|
+
<script type="module" crossorigin src="/assets/index-HP_WOzzC.js"></script>
|
|
8
|
+
</head>
|
|
9
|
+
<body>
|
|
10
|
+
<div id="app"></div>
|
|
11
|
+
</body>
|
|
12
|
+
</html>
|
package/dist/lab.d.ts
ADDED
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { ConfigInit } from '@terrazzo/parser';
|
|
2
|
+
import type { Logger } from '@terrazzo/parser';
|
|
3
|
+
import type { Flags } from './shared.js';
|
|
4
|
+
export interface BuildOptions {
|
|
5
|
+
flags: Flags;
|
|
6
|
+
config: ConfigInit;
|
|
7
|
+
configPath: string;
|
|
8
|
+
logger: Logger;
|
|
9
|
+
}
|
|
10
|
+
export declare function labCmd({ config, logger }: BuildOptions): Promise<void>;
|
|
11
|
+
//# sourceMappingURL=lab.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lab.d.ts","sourceRoot":"","sources":["../src/lab.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAE/C,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAEzC,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,KAAK,CAAC;IACb,MAAM,EAAE,UAAU,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,wBAAsB,MAAM,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,YAAY,iBA6E5D"}
|
package/dist/lab.js
ADDED
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
import { createReadStream, createWriteStream } from 'node:fs';
|
|
2
|
+
import { readdir } from 'node:fs/promises';
|
|
3
|
+
import { Readable, Writable } from 'node:stream';
|
|
4
|
+
import { fileURLToPath } from 'node:url';
|
|
5
|
+
import { serve } from '@hono/node-server';
|
|
6
|
+
import mime from 'mime';
|
|
7
|
+
export async function labCmd({ config, logger }) {
|
|
8
|
+
/** TODO: handle multiple files */
|
|
9
|
+
const [tokenFileUrl] = config.tokens;
|
|
10
|
+
const staticFiles = new Set();
|
|
11
|
+
const dirEntries = await readdir(fileURLToPath(import.meta.resolve('./lab')), {
|
|
12
|
+
withFileTypes: true,
|
|
13
|
+
recursive: true,
|
|
14
|
+
});
|
|
15
|
+
for (const entry of dirEntries) {
|
|
16
|
+
if (entry.isFile() === false) {
|
|
17
|
+
continue;
|
|
18
|
+
}
|
|
19
|
+
const absolutePath = `${entry.parentPath.replaceAll('\\', '/')}/${entry.name}`;
|
|
20
|
+
staticFiles.add(absolutePath.replace(fileURLToPath(import.meta.resolve('./lab')).replaceAll('\\', '/'), ''));
|
|
21
|
+
}
|
|
22
|
+
const server = serve({
|
|
23
|
+
port: 9000,
|
|
24
|
+
overrideGlobalObjects: false,
|
|
25
|
+
async fetch(request) {
|
|
26
|
+
const url = new URL(request.url);
|
|
27
|
+
const pathname = url.pathname;
|
|
28
|
+
if (pathname === '/') {
|
|
29
|
+
return new Response(Readable.toWeb(createReadStream(fileURLToPath(import.meta.resolve('./lab/index.html')))), {
|
|
30
|
+
headers: {
|
|
31
|
+
'Content-Type': 'text/html',
|
|
32
|
+
},
|
|
33
|
+
});
|
|
34
|
+
}
|
|
35
|
+
if (pathname === '/api/tokens') {
|
|
36
|
+
if (request.method === 'GET') {
|
|
37
|
+
return new Response(Readable.toWeb(createReadStream(tokenFileUrl)), {
|
|
38
|
+
headers: {
|
|
39
|
+
'Content-Type': 'application/json',
|
|
40
|
+
'Cache-Control': 'no-cache',
|
|
41
|
+
},
|
|
42
|
+
});
|
|
43
|
+
}
|
|
44
|
+
else if (request.method === 'POST' && request.body) {
|
|
45
|
+
await request.body.pipeTo(Writable.toWeb(createWriteStream(tokenFileUrl)));
|
|
46
|
+
return new Response(JSON.stringify({ success: true }), {
|
|
47
|
+
headers: {
|
|
48
|
+
'Content-Type': 'application/json',
|
|
49
|
+
},
|
|
50
|
+
});
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
if (staticFiles.has(pathname)) {
|
|
54
|
+
return new Response(Readable.toWeb(createReadStream(fileURLToPath(import.meta.resolve(`./lab${pathname}`)))), {
|
|
55
|
+
headers: { 'Content-Type': mime.getType(pathname) ?? 'application/octet-stream' },
|
|
56
|
+
});
|
|
57
|
+
}
|
|
58
|
+
return new Response('Not found', { status: 404 });
|
|
59
|
+
},
|
|
60
|
+
}, (info) => {
|
|
61
|
+
logger.info({
|
|
62
|
+
group: 'server',
|
|
63
|
+
message: `Token Lab running at http://${info.address === '::' ? 'localhost' : info.address}:${info.port}`,
|
|
64
|
+
});
|
|
65
|
+
});
|
|
66
|
+
/**
|
|
67
|
+
* The cli entrypoint is going to manually exit the process after labCmd returns.
|
|
68
|
+
*/
|
|
69
|
+
await new Promise((resolve, reject) => {
|
|
70
|
+
server.on('close', resolve);
|
|
71
|
+
server.on('error', reject);
|
|
72
|
+
});
|
|
73
|
+
}
|
|
74
|
+
//# sourceMappingURL=lab.js.map
|
package/dist/lab.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lab.js","sourceRoot":"","sources":["../src/lab.ts"],"names":[],"mappings":"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"}
|
package/dist/shared.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shared.d.ts","sourceRoot":"","sources":["../src/shared.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"shared.d.ts","sourceRoot":"","sources":["../src/shared.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,KAAK,UAAU,EAAE,KAAK,MAAM,EAAgB,MAAM,kBAAkB,CAAC;AAG9E,eAAO,MAAM,GAAG,KAA8C,CAAC;AAC/D,eAAO,MAAM,mBAAmB,KAAwC,CAAC;AACzE,eAAO,MAAM,mBAAmB,KAAgC,CAAC;AAEjE,MAAM,MAAM,OAAO,GAAG,OAAO,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC;AAEtE,eAAO,MAAM,WAAW,QAAgB,CAAC;AAEzC,MAAM,WAAW,KAAK;IACpB,mBAAmB;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,gBAAgB;IAChB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,aAAa;IACb,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,kBAAkB;IAClB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,gBAAgB;IAChB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,iBAAiB;IAChC,GAAG,EAAE,OAAO,CAAC;IACb,KAAK,EAAE,KAAK,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,kBAAkB;AAClB,wBAAsB,UAAU,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,iBAAiB;;;GA0CzE;AAED,kBAAkB;AAClB,wBAAsB,UAAU,CAAC,UAAU,EAAE,GAAG,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE;IAAE,MAAM,EAAE,MAAM,CAAA;CAAE;;;iBA8FjF;AAED,kBAAkB;AAClB,wBAAgB,UAAU,CAAC,OAAO,EAAE,MAAM,QAEzC;AAED,oBAAoB;AACpB,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,QAE/D;AAED,qBAAqB;AACrB,wBAAgB,aAAa,CAAC,QAAQ,CAAC,EAAE,MAAM,sBAgB9C;AAED,kDAAkD;AAClD,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,EAAE;IAAE,MAAM,EAAE,MAAM,CAAA;CAAE,OAQhF;AAED,yBAAyB;AACzB,wBAAgB,IAAI,CAAC,KAAK,EAAE,MAAM,UAGjC"}
|
package/dist/shared.js
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import fs from 'node:fs';
|
|
2
2
|
import path from 'node:path';
|
|
3
|
+
import { pathToFileURL } from 'node:url';
|
|
3
4
|
import { defineConfig } from '@terrazzo/parser';
|
|
4
5
|
import pc from 'picocolors';
|
|
5
|
-
export const cwd = new URL(
|
|
6
|
+
export const cwd = new URL(`${pathToFileURL(process.cwd())}/`); // trailing slash needed to interpret as directory
|
|
6
7
|
export const DEFAULT_CONFIG_PATH = new URL('./terrazzo.config.mjs', cwd);
|
|
7
8
|
export const DEFAULT_TOKENS_PATH = new URL('./tokens.json', cwd);
|
|
8
9
|
export const GREEN_CHECK = pc.green('✔');
|
package/dist/shared.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shared.js","sourceRoot":"","sources":["../src/shared.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAgC,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAC9E,OAAO,EAAE,MAAM,YAAY,CAAC;AAE5B,MAAM,CAAC,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,
|
|
1
|
+
{"version":3,"file":"shared.js","sourceRoot":"","sources":["../src/shared.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAgC,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAC9E,OAAO,EAAE,MAAM,YAAY,CAAC;AAE5B,MAAM,CAAC,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,GAAG,aAAa,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,kDAAkD;AAClH,MAAM,CAAC,MAAM,mBAAmB,GAAG,IAAI,GAAG,CAAC,uBAAuB,EAAE,GAAG,CAAC,CAAC;AACzE,MAAM,CAAC,MAAM,mBAAmB,GAAG,IAAI,GAAG,CAAC,eAAe,EAAE,GAAG,CAAC,CAAC;AAIjE,MAAM,CAAC,MAAM,WAAW,GAAG,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AAqBzC,kBAAkB;AAClB,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,EAAqB;IACxE,IAAI,CAAC;QACH,IAAI,MAAM,GAAe;YACvB,MAAM,EAAE,CAAC,mBAAmB,CAAC;YAC7B,MAAM,EAAE,IAAI,GAAG,CAAC,WAAW,EAAE,GAAG,CAAC;YACjC,OAAO,EAAE,EAAE;YACX,IAAI,EAAE,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE;YAC7C,MAAM,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,UAAU,EAAE,KAAK,EAAE;SAC1C,CAAC;QACF,IAAI,UAA8B,CAAC;QAEnC,IAAI,OAAO,KAAK,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;YACrC,IAAI,KAAK,CAAC,MAAM,KAAK,EAAE,EAAE,CAAC;gBACxB,MAAM,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,kCAAkC,EAAE,CAAC,CAAC;gBAC/E,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAClB,CAAC;YACD,UAAU,GAAG,aAAa,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAC3C,CAAC;QAED,MAAM,kBAAkB,GAAG,aAAa,CAAC,UAAU,CAAC,CAAC;QACrD,IAAI,kBAAkB,EAAE,CAAC;YACvB,IAAI,CAAC;gBACH,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,kBAAkB,CAAC,CAAC;gBAC7C,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;oBACjB,iCAAiC;oBACjC,MAAM,IAAI,KAAK,CACb,8BAA8B,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,EAAE,kBAAkB,CAAC,uDAAuD,CACjI,CAAC;gBACJ,CAAC;gBACD,MAAM,GAAG,YAAY,CAAC,GAAG,CAAC,OAAO,EAAE,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC,CAAC;YACtD,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,MAAM,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAG,GAAa,CAAC,OAAO,IAAK,GAAc,EAAE,CAAC,CAAC;YACxF,CAAC;QACH,CAAC;aAAM,IAAI,GAAG,KAAK,MAAM,IAAI,GAAG,KAAK,OAAO,EAAE,CAAC;YAC7C,MAAM,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,4DAA4D,EAAE,CAAC,CAAC;QAC3G,CAAC;QAED,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,kBAAmB,EAAE,CAAC;IACrD,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,UAAU,CAAE,GAAa,CAAC,OAAO,CAAC,CAAC;QACnC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC;AAED,kBAAkB;AAClB,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,UAAiB,EAAE,EAAE,MAAM,EAAsB;IAChF,IAAI,CAAC;QACH,MAAM,SAAS,GAAG,EAAE,CAAC;QAErB,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC;YAC/B,MAAM,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,wCAAwC,OAAO,UAAU,EAAE,EAAE,CAAC,CAAC;QAC1G,CAAC;QAED,2DAA2D;QAC3D,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,IAAI,UAAU,CAAC,CAAC,CAAE,CAAC,IAAI,KAAK,mBAAmB,CAAC,IAAI,EAAE,CAAC;YAChF,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,CAAE,CAAC,EAAE,CAAC;gBACnC,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,eAAe,EAAE,GAAG,CAAC,CAAC;gBAC/C,IAAI,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;oBAC5B,UAAU,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC;gBAC3B,CAAC;qBAAM,CAAC;oBACN,MAAM,CAAC,KAAK,CAAC;wBACX,KAAK,EAAE,QAAQ;wBACf,OAAO,EAAE,oBAAoB,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC,CAAE,CAAC,IAAI,CAAC,uCAAuC;qBACjH,CAAC,CAAC;oBACH,OAAO;gBACT,CAAC;YACH,CAAC;QACH,CAAC;QAED,gBAAgB;QAChB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAC3C,MAAM,QAAQ,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;YAE/B,IAAI,CAAC,CAAC,QAAQ,YAAY,GAAG,CAAC,EAAE,CAAC;gBAC/B,MAAM,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,0BAA0B,QAAQ,EAAE,EAAE,KAAK,EAAE,cAAc,CAAC,GAAG,EAAE,CAAC,CAAC;gBAC5G,OAAO;YACT,CAAC;iBAAM,IAAI,QAAQ,CAAC,QAAQ,KAAK,OAAO,IAAI,QAAQ,CAAC,QAAQ,KAAK,QAAQ,EAAE,CAAC;gBAC3E,IAAI,CAAC;oBACH,eAAe;oBACf,IAAI,QAAQ,CAAC,IAAI,KAAK,WAAW,IAAI,QAAQ,CAAC,IAAI,KAAK,eAAe,EAAE,CAAC;wBACvE,MAAM,CAAC,CAAC,EAAE,WAAW,EAAE,OAAO,CAAC,GAAG,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;wBAC/D,IAAI,WAAW,KAAK,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC;4BACvC,MAAM,CAAC,KAAK,CAAC;gCACX,KAAK,EAAE,QAAQ;gCACf,OAAO,EAAE,iGAAiG,QAAQ,CAAC,IAAI,GAAG;6BAC3H,CAAC,CAAC;wBACL,CAAC;wBACD,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC;4BAC1B,MAAM,EAAE,KAAK;4BACb,YAAY,EAAE,sFAAsF;yBACrG,CAAC,CAAC;wBACH,IAAI,OAAO,CAAC,GAAG,CAAC,kBAAkB,EAAE,CAAC;4BACnC,OAAO,CAAC,GAAG,CAAC,eAAe,EAAE,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;wBAC/D,CAAC;6BAAM,CAAC;4BACN,MAAM,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,4BAA4B,EAAE,CAAC,CAAC;wBAC1E,CAAC;wBACD,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,kCAAkC,OAAO,kBAAkB,EAAE;4BACnF,MAAM,EAAE,KAAK;4BACb,OAAO;yBACR,CAAC,CAAC;wBACH,IAAI,GAAG,CAAC,EAAE,EAAE,CAAC;4BACX,SAAS,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;wBACtD,CAAC;wBACD,MAAM,OAAO,GAAG,GAAG,CAAC,MAAM,KAAK,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;wBACzF,MAAM,CAAC,KAAK,CAAC;4BACX,KAAK,EAAE,QAAQ;4BACf,OAAO,EAAE,wBAAwB,GAAG,CAAC,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,MAAM,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE;yBAC/E,CAAC,CAAC;wBACH,MAAM;oBACR,CAAC;oBAED,8BAA8B;oBAC9B,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,QAAQ,EAAE;wBAChC,MAAM,EAAE,KAAK;wBACb,OAAO,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,YAAY,EAAE,0CAA0C,EAAE;qBACrF,CAAC,CAAC;oBACH,SAAS,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;gBACtD,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC;oBACb,MAAM,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,QAAQ,CAAC,IAAI,KAAK,GAAG,EAAE,EAAE,CAAC,CAAC;oBACvE,OAAO;gBACT,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,IAAI,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;oBAC5B,SAAS,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,GAAG,EAAE,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC;gBACvE,CAAC;qBAAM,CAAC;oBACN,MAAM,CAAC,KAAK,CAAC;wBACX,KAAK,EAAE,QAAQ;wBACf,OAAO,EAAE,oBAAoB,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC,uCAAuC;qBAC3G,CAAC,CAAC;oBACH,OAAO;gBACT,CAAC;YACH,CAAC;QACH,CAAC;QAED,OAAO,SAAS,CAAC;IACnB,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,UAAU,CAAE,GAAa,CAAC,OAAO,CAAC,CAAC;QACnC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC;AAED,kBAAkB;AAClB,MAAM,UAAU,UAAU,CAAC,OAAe;IACxC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,MAAM,OAAO,EAAE,CAAC,CAAC,CAAC;AACzC,CAAC;AAED,oBAAoB;AACpB,MAAM,UAAU,YAAY,CAAC,OAAe,EAAE,SAAkB;IAC9D,OAAO,CAAC,GAAG,CAAC,GAAG,WAAW,KAAK,OAAO,GAAG,SAAS,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;AACrF,CAAC;AAED,qBAAqB;AACrB,MAAM,UAAU,aAAa,CAAC,QAAiB;IAC7C,wBAAwB;IACxB,IAAI,QAAQ,EAAE,CAAC;QACb,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;QAC1C,IAAI,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;YAC9B,OAAO,UAAU,CAAC,IAAI,CAAC,CAAC,oDAAoD;QAC9E,CAAC;QACD,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,qEAAqE;IACrE,6EAA6E;IAC7E,oCAAoC;IACpC,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC;SAC3B,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,GAAG,CAAC,oBAAoB,GAAG,EAAE,EAAE,GAAG,CAAC,CAAC;SACrD,IAAI,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,qDAAqD;AACjH,CAAC;AAED,kDAAkD;AAClD,MAAM,UAAU,gBAAgB,CAAC,QAAgB,EAAE,EAAE,MAAM,EAAsB;IAC/E,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;IAC1C,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QAC/B,MAAM,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,oBAAoB,QAAQ,wBAAwB,EAAE,CAAC,CAAC;IACnG,CAAC;SAAM,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC;QAC7C,MAAM,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,wCAAwC,QAAQ,GAAG,EAAE,CAAC,CAAC;IAClG,CAAC;IACD,OAAO,UAAU,CAAC;AACpB,CAAC;AAED,yBAAyB;AACzB,MAAM,UAAU,IAAI,CAAC,KAAa;IAChC,MAAM,IAAI,GAAG,WAAW,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC;IACvC,OAAO,EAAE,CAAC,GAAG,CAAC,IAAI,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AACvF,CAAC"}
|
package/index.html
ADDED
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
<!doctype html>
|
|
2
|
+
<html lang="en">
|
|
3
|
+
<head>
|
|
4
|
+
<meta charset="UTF-8" />
|
|
5
|
+
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
6
|
+
<title>Terrazzo Token Lab</title>
|
|
7
|
+
</head>
|
|
8
|
+
<body>
|
|
9
|
+
<div id="app"></div>
|
|
10
|
+
<script type="module" src="./lab.tsx"></script>
|
|
11
|
+
</body>
|
|
12
|
+
</html>
|
package/lab.tsx
ADDED
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import TokenLab from '@terrazzo/token-lab';
|
|
2
|
+
import React from 'react';
|
|
3
|
+
import { createRoot } from 'react-dom/client';
|
|
4
|
+
|
|
5
|
+
const response = await fetch('/api/tokens');
|
|
6
|
+
const tokenFile = await response.text();
|
|
7
|
+
const root = createRoot(document.getElementById('app'));
|
|
8
|
+
|
|
9
|
+
root.render(
|
|
10
|
+
<TokenLab
|
|
11
|
+
tokensFile={tokenFile}
|
|
12
|
+
onUpdate={async (updatedTokens) => {
|
|
13
|
+
const response = await fetch('/api/tokens', {
|
|
14
|
+
method: 'POST',
|
|
15
|
+
headers: {
|
|
16
|
+
'Content-Type': 'text/plain',
|
|
17
|
+
},
|
|
18
|
+
body: updatedTokens,
|
|
19
|
+
});
|
|
20
|
+
|
|
21
|
+
if (!response.ok) {
|
|
22
|
+
console.error(`Failed to save tokens: ${response.status}`);
|
|
23
|
+
}
|
|
24
|
+
}}
|
|
25
|
+
/>,
|
|
26
|
+
);
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@terrazzo/cli",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.7.0",
|
|
4
4
|
"description": "CLI for managing design tokens using the Design Tokens Community Group (DTCG) standard and generating code for any platform via plugins.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"author": {
|
|
@@ -41,7 +41,8 @@
|
|
|
41
41
|
},
|
|
42
42
|
"dependencies": {
|
|
43
43
|
"@clack/prompts": "^0.9.1",
|
|
44
|
-
"@
|
|
44
|
+
"@hono/node-server": "^1.14.0",
|
|
45
|
+
"@humanwhocodes/momoa": "^3.3.8",
|
|
45
46
|
"@types/escodegen": "^0.0.10",
|
|
46
47
|
"chokidar": "^3.6.0",
|
|
47
48
|
"detect-package-manager": "^3.0.2",
|
|
@@ -49,13 +50,21 @@
|
|
|
49
50
|
"escodegen": "^2.1.0",
|
|
50
51
|
"merge-anything": "^5.1.7",
|
|
51
52
|
"meriyah": "^6.0.5",
|
|
53
|
+
"mime": "^4.0.6",
|
|
52
54
|
"picocolors": "^1.1.1",
|
|
53
55
|
"yaml-to-momoa": "^0.0.3",
|
|
54
|
-
"@terrazzo/parser": "^0.
|
|
55
|
-
"@terrazzo/token-tools": "^0.
|
|
56
|
+
"@terrazzo/parser": "^0.7.0",
|
|
57
|
+
"@terrazzo/token-tools": "^0.7.0"
|
|
58
|
+
},
|
|
59
|
+
"devDependencies": {
|
|
60
|
+
"@vitejs/plugin-react-swc": "^3.8.1",
|
|
61
|
+
"react": "19.0.0",
|
|
62
|
+
"react-dom": "19.0.0",
|
|
63
|
+
"vite": "^6.2.3"
|
|
56
64
|
},
|
|
57
65
|
"scripts": {
|
|
58
|
-
"build": "tsc -p tsconfig.build.json",
|
|
66
|
+
"build": "tsc -p tsconfig.build.json && pnpm run build:lab",
|
|
67
|
+
"build:lab": "vite build",
|
|
59
68
|
"dev": "tsc -p tsconfig.build.json -w",
|
|
60
69
|
"format": "biome check --fix --unsafe .",
|
|
61
70
|
"lint": "biome check .",
|
package/terrazzo.config.mjs
CHANGED
package/tokens-example.json
CHANGED
|
@@ -1,7 +1,19 @@
|
|
|
1
1
|
{
|
|
2
2
|
"color": {
|
|
3
3
|
"$description": "Color tokens",
|
|
4
|
-
"$type": "color"
|
|
4
|
+
"$type": "color",
|
|
5
|
+
"black": {
|
|
6
|
+
"100": { "$value": "#0c0c0d0d" },
|
|
7
|
+
"200": { "$value": "#0c0c0d1a" },
|
|
8
|
+
"300": { "$value": "#0c0c0d33" },
|
|
9
|
+
"400": { "$value": "#0c0c0456" },
|
|
10
|
+
"500": { "$value": "#0c0c0db2" },
|
|
11
|
+
"600": { "$value": "#0c0c0dcc" },
|
|
12
|
+
"700": { "$value": "#0c0c0dd9" },
|
|
13
|
+
"800": { "$value": "#0c0c0de5" },
|
|
14
|
+
"900": { "$value": "#0c0c0df2" },
|
|
15
|
+
"1000": { "$value": "#0c0c0d" }
|
|
16
|
+
}
|
|
5
17
|
},
|
|
6
18
|
"border": {
|
|
7
19
|
"$description": "Border tokens",
|
package/vite.config.ts
ADDED
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { defineConfig } from 'vite';
|
|
2
|
+
import react from '@vitejs/plugin-react-swc';
|
|
3
|
+
|
|
4
|
+
export default defineConfig({
|
|
5
|
+
plugins: [react()],
|
|
6
|
+
build: {
|
|
7
|
+
outDir: 'dist/lab',
|
|
8
|
+
rollupOptions: {
|
|
9
|
+
external: ['@terrazzo/tiles', '@terrazzo/token-lab'],
|
|
10
|
+
},
|
|
11
|
+
emptyOutDir: true,
|
|
12
|
+
sourcemap: true,
|
|
13
|
+
target: 'es2024',
|
|
14
|
+
},
|
|
15
|
+
});
|