create-meith 0.23.3 → 0.25.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/bin.mjs +28 -3
- package/package.json +1 -1
- package/src/bin.ts +1 -1
- package/src/extension-templates.ts +2 -2
- package/src/scaffold.ts +26 -0
package/dist/bin.mjs
CHANGED
|
@@ -323,6 +323,7 @@ function envExample(name, target) {
|
|
|
323
323
|
}
|
|
324
324
|
var SELF_HOST_DEPLOY_KIT = [
|
|
325
325
|
".dockerignore",
|
|
326
|
+
".github/dependabot.yml",
|
|
326
327
|
".github/workflows/build.yml",
|
|
327
328
|
"Dockerfile",
|
|
328
329
|
"docker-compose.yaml",
|
|
@@ -511,6 +512,23 @@ export function installedPluginDefinitions() {
|
|
|
511
512
|
.env*.local
|
|
512
513
|
*.log
|
|
513
514
|
.DS_Store
|
|
515
|
+
`
|
|
516
|
+
);
|
|
517
|
+
files.set(
|
|
518
|
+
".github/dependabot.yml",
|
|
519
|
+
`# Keeps this board's GitHub Actions current: one weekly pull request that
|
|
520
|
+
# bumps the actions pinned in .github/workflows. Upgrading Meith itself is
|
|
521
|
+
# separate and deliberate \u2014 see README.md, "Upgrading" \u2014 because the board's
|
|
522
|
+
# \`next\` pin has to move together with \`@meith/web\` rather than on its own.
|
|
523
|
+
version: 2
|
|
524
|
+
updates:
|
|
525
|
+
- package-ecosystem: github-actions
|
|
526
|
+
directory: /
|
|
527
|
+
schedule:
|
|
528
|
+
interval: weekly
|
|
529
|
+
groups:
|
|
530
|
+
actions:
|
|
531
|
+
patterns: ['*']
|
|
514
532
|
`
|
|
515
533
|
);
|
|
516
534
|
files.set(
|
|
@@ -960,6 +978,13 @@ while everything reading \`package.json\` sees the other. Reading the version
|
|
|
960
978
|
out of the freshly installed \`@meith/web\` is what keeps the two the same
|
|
961
979
|
without anybody having to know the number.
|
|
962
980
|
|
|
981
|
+
This upgrade is deliberate and manual for that reason: \`next\` and
|
|
982
|
+
\`@meith/web\` move together or not at all. What *is* kept current for you is
|
|
983
|
+
this repository's own GitHub Actions \u2014 \`.github/dependabot.yml\` opens a
|
|
984
|
+
weekly pull request bumping the actions pinned in
|
|
985
|
+
\`.github/workflows/build.yml\`, which is a safe, independent update the two
|
|
986
|
+
commands above never touch.
|
|
987
|
+
|
|
963
988
|
That \`package.json\` change is the whole pin: \`Dockerfile\`'s own
|
|
964
989
|
\`FROM\` line takes the version as a build argument, and
|
|
965
990
|
\`.github/workflows/build.yml\` reads it straight out of \`package.json\`'s
|
|
@@ -1381,7 +1406,7 @@ var THEME_TEMPLATES = [
|
|
|
1381
1406
|
},
|
|
1382
1407
|
{
|
|
1383
1408
|
path: "src/theme.ts",
|
|
1384
|
-
contents: "import { defaultTheme } from '@meith/theme-default'\nimport { defineTheme } from '@meith/theme-kit'\n\nimport { Footer } from './slots/footer'\n\nexport const __MEITH_EXTENSION_CAMEL__Theme = defineTheme({\n key: '__MEITH_EXTENSION_KEY__',\n title: '__MEITH_EXTENSION_TITLE__',\n extends: defaultTheme,\n slots: { Footer },\n})\n"
|
|
1409
|
+
contents: "import { defaultTheme } from '@meith/theme-default'\nimport { defineTheme } from '@meith/theme-kit'\n\nimport { Footer } from './slots/footer'\n\nexport const __MEITH_EXTENSION_CAMEL__Theme = defineTheme({\n key: '__MEITH_EXTENSION_KEY__',\n title: '__MEITH_EXTENSION_TITLE__',\n version: '0.1.0',\n extends: defaultTheme,\n slots: { Footer },\n})\n"
|
|
1385
1410
|
},
|
|
1386
1411
|
{
|
|
1387
1412
|
path: "src/tokens.ts",
|
|
@@ -1435,7 +1460,7 @@ export function Footer({ boardTitle, links, timezoneLabel, poweredBy }: FooterMo
|
|
|
1435
1460
|
},
|
|
1436
1461
|
{
|
|
1437
1462
|
path: "src/theme.test.ts",
|
|
1438
|
-
contents: "import { describe, expect, it } from 'vitest'\n\nimport { defaultTheme, TOKEN_NAMES } from '@meith/theme-default'\nimport { assertThemeContract, resolveTheme } from '@meith/theme-kit'\n\nimport { __MEITH_EXTENSION_CAMEL__Theme } from './theme'\nimport { DARK_TOKENS, LIGHT_TOKENS } from './tokens'\n\ndescribe('the __MEITH_EXTENSION_KEY__ theme', () => {\n it('satisfies the theme-kit contract', () => {\n expect(assertThemeContract(resolveTheme(__MEITH_EXTENSION_CAMEL__Theme)).missing).toEqual([])\n })\n\n it('inherits from the default theme rather than copying it', () => {\n expect(resolveTheme(__MEITH_EXTENSION_CAMEL__Theme).chain).toEqual(['__MEITH_EXTENSION_KEY__', 'default'])\n })\n\n it('overrides exactly one slot: the footer', () => {\n expect(Object.keys(__MEITH_EXTENSION_CAMEL__Theme.slots)).toEqual(['Footer'])\n expect(__MEITH_EXTENSION_CAMEL__Theme.slots.Footer).not.toBe(defaultTheme.slots.Footer)\n })\n\n it('declares a value for every token the theme layer names', () => {\n for (const name of TOKEN_NAMES) {\n expect(LIGHT_TOKENS[name], `light ${name}`).toBeDefined()\n expect(DARK_TOKENS[name], `dark ${name}`).toBeDefined()\n }\n })\n\n it('recolours the brand group and nothing greyscale', () => {\n expect(LIGHT_TOKENS.primary).not.toBe(DARK_TOKENS.primary)\n expect(LIGHT_TOKENS.background).toBe('oklch(0.968 0 0)')\n expect(DARK_TOKENS.background).toBe('oklch(0.15 0 0)')\n })\n})\n"
|
|
1463
|
+
contents: "import { describe, expect, it } from 'vitest'\n\nimport { defaultTheme, TOKEN_NAMES } from '@meith/theme-default'\nimport { assertThemeContract, resolveTheme } from '@meith/theme-kit'\n\nimport { __MEITH_EXTENSION_CAMEL__Theme } from './theme'\nimport { DARK_TOKENS, LIGHT_TOKENS } from './tokens'\n\ndescribe('the __MEITH_EXTENSION_KEY__ theme', () => {\n it('satisfies the theme-kit contract', () => {\n expect(assertThemeContract(resolveTheme(__MEITH_EXTENSION_CAMEL__Theme)).missing).toEqual([])\n expect(__MEITH_EXTENSION_CAMEL__Theme.version).toBe('0.1.0')\n })\n\n it('inherits from the default theme rather than copying it', () => {\n expect(resolveTheme(__MEITH_EXTENSION_CAMEL__Theme).chain).toEqual(['__MEITH_EXTENSION_KEY__', 'default'])\n })\n\n it('overrides exactly one slot: the footer', () => {\n expect(Object.keys(__MEITH_EXTENSION_CAMEL__Theme.slots)).toEqual(['Footer'])\n expect(__MEITH_EXTENSION_CAMEL__Theme.slots.Footer).not.toBe(defaultTheme.slots.Footer)\n })\n\n it('declares a value for every token the theme layer names', () => {\n for (const name of TOKEN_NAMES) {\n expect(LIGHT_TOKENS[name], `light ${name}`).toBeDefined()\n expect(DARK_TOKENS[name], `dark ${name}`).toBeDefined()\n }\n })\n\n it('recolours the brand group and nothing greyscale', () => {\n expect(LIGHT_TOKENS.primary).not.toBe(DARK_TOKENS.primary)\n expect(LIGHT_TOKENS.background).toBe('oklch(0.968 0 0)')\n expect(DARK_TOKENS.background).toBe('oklch(0.15 0 0)')\n })\n})\n"
|
|
1439
1464
|
}
|
|
1440
1465
|
];
|
|
1441
1466
|
|
|
@@ -1865,7 +1890,7 @@ async function run(argv, version) {
|
|
|
1865
1890
|
}
|
|
1866
1891
|
|
|
1867
1892
|
// src/bin.ts
|
|
1868
|
-
var result = await run(process.argv.slice(2), "0.
|
|
1893
|
+
var result = await run(process.argv.slice(2), "0.25.0");
|
|
1869
1894
|
for (const line of result.lines) {
|
|
1870
1895
|
if (result.code === 0) console.log(line);
|
|
1871
1896
|
else console.error(line);
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "create-meith",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.25.0",
|
|
4
4
|
"description": "Scaffold a Meith board, plugin or theme — npx create-meith <name> writes a deployable board workspace; --plugin and --theme write extension workspaces built on the published kits.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"repository": {
|
package/src/bin.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { run } from './cli'
|
|
3
3
|
|
|
4
|
-
const result = await run(process.argv.slice(2), '0.
|
|
4
|
+
const result = await run(process.argv.slice(2), '0.25.0')
|
|
5
5
|
for (const line of result.lines) {
|
|
6
6
|
if (result.code === 0) console.log(line)
|
|
7
7
|
else console.error(line)
|
|
@@ -23,7 +23,7 @@ export const THEME_TEMPLATES: readonly ExtensionTemplate[] = [
|
|
|
23
23
|
{
|
|
24
24
|
path: 'src/theme.ts',
|
|
25
25
|
contents:
|
|
26
|
-
"import { defaultTheme } from '@meith/theme-default'\nimport { defineTheme } from '@meith/theme-kit'\n\nimport { Footer } from './slots/footer'\n\nexport const __MEITH_EXTENSION_CAMEL__Theme = defineTheme({\n key: '__MEITH_EXTENSION_KEY__',\n title: '__MEITH_EXTENSION_TITLE__',\n extends: defaultTheme,\n slots: { Footer },\n})\n",
|
|
26
|
+
"import { defaultTheme } from '@meith/theme-default'\nimport { defineTheme } from '@meith/theme-kit'\n\nimport { Footer } from './slots/footer'\n\nexport const __MEITH_EXTENSION_CAMEL__Theme = defineTheme({\n key: '__MEITH_EXTENSION_KEY__',\n title: '__MEITH_EXTENSION_TITLE__',\n version: '0.1.0',\n extends: defaultTheme,\n slots: { Footer },\n})\n",
|
|
27
27
|
},
|
|
28
28
|
{
|
|
29
29
|
path: 'src/tokens.ts',
|
|
@@ -38,6 +38,6 @@ export const THEME_TEMPLATES: readonly ExtensionTemplate[] = [
|
|
|
38
38
|
{
|
|
39
39
|
path: 'src/theme.test.ts',
|
|
40
40
|
contents:
|
|
41
|
-
"import { describe, expect, it } from 'vitest'\n\nimport { defaultTheme, TOKEN_NAMES } from '@meith/theme-default'\nimport { assertThemeContract, resolveTheme } from '@meith/theme-kit'\n\nimport { __MEITH_EXTENSION_CAMEL__Theme } from './theme'\nimport { DARK_TOKENS, LIGHT_TOKENS } from './tokens'\n\ndescribe('the __MEITH_EXTENSION_KEY__ theme', () => {\n it('satisfies the theme-kit contract', () => {\n expect(assertThemeContract(resolveTheme(__MEITH_EXTENSION_CAMEL__Theme)).missing).toEqual([])\n })\n\n it('inherits from the default theme rather than copying it', () => {\n expect(resolveTheme(__MEITH_EXTENSION_CAMEL__Theme).chain).toEqual(['__MEITH_EXTENSION_KEY__', 'default'])\n })\n\n it('overrides exactly one slot: the footer', () => {\n expect(Object.keys(__MEITH_EXTENSION_CAMEL__Theme.slots)).toEqual(['Footer'])\n expect(__MEITH_EXTENSION_CAMEL__Theme.slots.Footer).not.toBe(defaultTheme.slots.Footer)\n })\n\n it('declares a value for every token the theme layer names', () => {\n for (const name of TOKEN_NAMES) {\n expect(LIGHT_TOKENS[name], `light ${name}`).toBeDefined()\n expect(DARK_TOKENS[name], `dark ${name}`).toBeDefined()\n }\n })\n\n it('recolours the brand group and nothing greyscale', () => {\n expect(LIGHT_TOKENS.primary).not.toBe(DARK_TOKENS.primary)\n expect(LIGHT_TOKENS.background).toBe('oklch(0.968 0 0)')\n expect(DARK_TOKENS.background).toBe('oklch(0.15 0 0)')\n })\n})\n",
|
|
41
|
+
"import { describe, expect, it } from 'vitest'\n\nimport { defaultTheme, TOKEN_NAMES } from '@meith/theme-default'\nimport { assertThemeContract, resolveTheme } from '@meith/theme-kit'\n\nimport { __MEITH_EXTENSION_CAMEL__Theme } from './theme'\nimport { DARK_TOKENS, LIGHT_TOKENS } from './tokens'\n\ndescribe('the __MEITH_EXTENSION_KEY__ theme', () => {\n it('satisfies the theme-kit contract', () => {\n expect(assertThemeContract(resolveTheme(__MEITH_EXTENSION_CAMEL__Theme)).missing).toEqual([])\n expect(__MEITH_EXTENSION_CAMEL__Theme.version).toBe('0.1.0')\n })\n\n it('inherits from the default theme rather than copying it', () => {\n expect(resolveTheme(__MEITH_EXTENSION_CAMEL__Theme).chain).toEqual(['__MEITH_EXTENSION_KEY__', 'default'])\n })\n\n it('overrides exactly one slot: the footer', () => {\n expect(Object.keys(__MEITH_EXTENSION_CAMEL__Theme.slots)).toEqual(['Footer'])\n expect(__MEITH_EXTENSION_CAMEL__Theme.slots.Footer).not.toBe(defaultTheme.slots.Footer)\n })\n\n it('declares a value for every token the theme layer names', () => {\n for (const name of TOKEN_NAMES) {\n expect(LIGHT_TOKENS[name], `light ${name}`).toBeDefined()\n expect(DARK_TOKENS[name], `dark ${name}`).toBeDefined()\n }\n })\n\n it('recolours the brand group and nothing greyscale', () => {\n expect(LIGHT_TOKENS.primary).not.toBe(DARK_TOKENS.primary)\n expect(LIGHT_TOKENS.background).toBe('oklch(0.968 0 0)')\n expect(DARK_TOKENS.background).toBe('oklch(0.15 0 0)')\n })\n})\n",
|
|
42
42
|
},
|
|
43
43
|
]
|
package/src/scaffold.ts
CHANGED
|
@@ -350,6 +350,7 @@ function envExample(name: string, target: ScaffoldTarget): string {
|
|
|
350
350
|
|
|
351
351
|
const SELF_HOST_DEPLOY_KIT = [
|
|
352
352
|
'.dockerignore',
|
|
353
|
+
'.github/dependabot.yml',
|
|
353
354
|
'.github/workflows/build.yml',
|
|
354
355
|
'Dockerfile',
|
|
355
356
|
'docker-compose.yaml',
|
|
@@ -552,6 +553,24 @@ export function installedPluginDefinitions() {
|
|
|
552
553
|
`,
|
|
553
554
|
)
|
|
554
555
|
|
|
556
|
+
files.set(
|
|
557
|
+
'.github/dependabot.yml',
|
|
558
|
+
`# Keeps this board's GitHub Actions current: one weekly pull request that
|
|
559
|
+
# bumps the actions pinned in .github/workflows. Upgrading Meith itself is
|
|
560
|
+
# separate and deliberate — see README.md, "Upgrading" — because the board's
|
|
561
|
+
# \`next\` pin has to move together with \`@meith/web\` rather than on its own.
|
|
562
|
+
version: 2
|
|
563
|
+
updates:
|
|
564
|
+
- package-ecosystem: github-actions
|
|
565
|
+
directory: /
|
|
566
|
+
schedule:
|
|
567
|
+
interval: weekly
|
|
568
|
+
groups:
|
|
569
|
+
actions:
|
|
570
|
+
patterns: ['*']
|
|
571
|
+
`,
|
|
572
|
+
)
|
|
573
|
+
|
|
555
574
|
files.set(
|
|
556
575
|
'Dockerfile',
|
|
557
576
|
`# syntax=docker/dockerfile:1.7-labs
|
|
@@ -1005,6 +1024,13 @@ while everything reading \`package.json\` sees the other. Reading the version
|
|
|
1005
1024
|
out of the freshly installed \`@meith/web\` is what keeps the two the same
|
|
1006
1025
|
without anybody having to know the number.
|
|
1007
1026
|
|
|
1027
|
+
This upgrade is deliberate and manual for that reason: \`next\` and
|
|
1028
|
+
\`@meith/web\` move together or not at all. What *is* kept current for you is
|
|
1029
|
+
this repository's own GitHub Actions — \`.github/dependabot.yml\` opens a
|
|
1030
|
+
weekly pull request bumping the actions pinned in
|
|
1031
|
+
\`.github/workflows/build.yml\`, which is a safe, independent update the two
|
|
1032
|
+
commands above never touch.
|
|
1033
|
+
|
|
1008
1034
|
That \`package.json\` change is the whole pin: \`Dockerfile\`'s own
|
|
1009
1035
|
\`FROM\` line takes the version as a build argument, and
|
|
1010
1036
|
\`.github/workflows/build.yml\` reads it straight out of \`package.json\`'s
|