@forumone/create-throughline 0.4.0 → 1.0.0-next.2
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 +93 -0
- package/dist/generator.d.ts.map +1 -1
- package/dist/generator.js +4 -3
- package/dist/generator.js.map +1 -1
- package/dist/post-install.d.ts.map +1 -1
- package/dist/post-install.js +6 -2
- package/dist/post-install.js.map +1 -1
- package/dist/templates/base/.env.example +22 -8
- package/dist/templates/base/CLAUDE.md +112 -0
- package/dist/templates/base/README.md +39 -8
- package/dist/templates/base/apps/web/e2e/site.ts +36 -0
- package/dist/templates/base/apps/web/e2e/smoke.spec.ts +52 -0
- package/dist/templates/base/apps/web/package.json.template +26 -25
- package/dist/templates/base/apps/web/playwright.config.ts +63 -0
- package/dist/templates/base/apps/web/src/access/anonymousAccess.test.ts +33 -0
- package/dist/templates/base/apps/web/src/app/api/inngest/route.ts.template +15 -79
- package/dist/templates/base/apps/web/src/instrumentation.ts +35 -0
- package/dist/templates/base/apps/web/src/lib/cache-tags.ts +23 -0
- package/dist/templates/base/apps/web/src/lib/inngest.ts.template +7 -0
- package/dist/templates/base/apps/web/src/payload.config.ts.template +138 -123
- package/dist/templates/base/apps/web/vitest.config.ts +56 -0
- package/dist/templates/base/claude/hooks/gate.sh +45 -0
- package/dist/templates/base/claude/settings.json +16 -0
- package/dist/templates/base/github/workflows/ci.yml +28 -3
- package/dist/templates/base/gitignore +9 -0
- package/dist/templates/base/package.json.template +1 -0
- package/dist/templates/base/scripts/check-tested-packages.ts +0 -2
- package/dist/templates/base/turbo.json +0 -1
- package/dist/templates/with-reference-ds/design-system/package.json.template +1 -1
- package/dist/templates/with-reference-ds/design-system/scripts/build-manifest.ts +1 -1
- package/dist/templates/with-reference-ds/design-system/scripts/validate.ts +3 -3
- package/dist/templates/with-reference-ds/design-system/src/components/CTASection/CTASection.contract.ts +1 -1
- package/dist/templates/with-reference-ds/design-system/src/components/Card/Card.contract.ts +1 -1
- package/dist/templates/with-reference-ds/design-system/src/components/CardGrid/CardGrid.contract.ts +1 -1
- package/dist/templates/with-reference-ds/design-system/src/components/Divider/Divider.contract.ts +2 -1
- package/dist/templates/with-reference-ds/design-system/src/components/FAQ/FAQ.contract.ts +1 -1
- package/dist/templates/with-reference-ds/design-system/src/components/Hero/Hero.contract.ts +1 -1
- package/dist/templates/with-reference-ds/design-system/src/components/MediaBlock/MediaBlock.contract.ts +1 -1
- package/dist/templates/with-reference-ds/design-system/src/components/Prose/Prose.contract.ts +1 -1
- package/dist/templates/with-reference-ds/design-system/src/components/Quote/Quote.contract.ts +1 -1
- package/dist/templates/with-reference-ds/design-system/src/components/SectionIntro/SectionIntro.contract.ts +1 -1
- package/dist/templates/with-reference-ds/design-system/src/components/Spacer/Spacer.contract.ts +1 -1
- package/dist/templates/with-reference-ds/design-system/src/components/Stats/Stats.contract.ts +1 -1
- package/dist/templates/with-reference-ds/design-system/src/tokens/index.ts +1 -1
- package/dist/utils/versions.d.ts +3 -3
- package/dist/utils/versions.d.ts.map +1 -1
- package/dist/utils/versions.js +14 -8
- package/dist/utils/versions.js.map +1 -1
- package/dist/versions.json +2 -12
- package/package.json +2 -1
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
#!/usr/bin/env bash
|
|
2
|
+
#
|
|
3
|
+
# Stop hook: run the cheap half of CI's gate — typecheck and lint — when a
|
|
4
|
+
# session ends with pending changes under apps/ or design-system/.
|
|
5
|
+
#
|
|
6
|
+
# Why a hook and not only CI: these failures are cheap to fix in the session
|
|
7
|
+
# that caused them and expensive later. A session that touched nothing exits in
|
|
8
|
+
# milliseconds, which is what keeps this cheap enough to leave switched on.
|
|
9
|
+
#
|
|
10
|
+
# Deliberately not here: tests, manifest validation, the generated-files check
|
|
11
|
+
# and the build. They take minutes or need a database; they are CI's job. See
|
|
12
|
+
# CLAUDE.md for the whole gate.
|
|
13
|
+
#
|
|
14
|
+
# This reports. It never blocks and never edits, so it cannot wedge a session on
|
|
15
|
+
# a failure it cannot resolve. Exit is always 0. Set THROUGHLINE_SKIP_GATE=1 to
|
|
16
|
+
# silence it, for instance in headless sessions that run their own gate.
|
|
17
|
+
|
|
18
|
+
set -uo pipefail
|
|
19
|
+
|
|
20
|
+
[[ -z "${THROUGHLINE_SKIP_GATE:-}" ]] || exit 0
|
|
21
|
+
|
|
22
|
+
ROOT="$(git rev-parse --show-toplevel 2>/dev/null)" || exit 0
|
|
23
|
+
[[ -n "$ROOT" ]] || exit 0
|
|
24
|
+
|
|
25
|
+
if [[ -z "$(git -C "$ROOT" status --porcelain -- apps design-system 2>/dev/null)" ]]; then
|
|
26
|
+
exit 0
|
|
27
|
+
fi
|
|
28
|
+
|
|
29
|
+
cd "$ROOT" || exit 0
|
|
30
|
+
|
|
31
|
+
OUTPUT="$(pnpm typecheck 2>&1 && pnpm lint 2>&1)"
|
|
32
|
+
STATUS=$?
|
|
33
|
+
|
|
34
|
+
if [[ $STATUS -eq 0 ]]; then
|
|
35
|
+
MESSAGE="Gate clean: typecheck + lint. Tests, validate, check-generated and the build are CI's job — see CLAUDE.md."
|
|
36
|
+
else
|
|
37
|
+
# The failing rule or type error is at the end, and a systemMessage is read
|
|
38
|
+
# in a terminal, not scrolled.
|
|
39
|
+
MESSAGE="Gate FAILED (typecheck/lint) — CI will fail on this:
|
|
40
|
+
|
|
41
|
+
$(printf '%s' "$OUTPUT" | tail -25)"
|
|
42
|
+
fi
|
|
43
|
+
|
|
44
|
+
node -e 'process.stdout.write(JSON.stringify({ systemMessage: process.argv[1], suppressOutput: true }))' "$MESSAGE"
|
|
45
|
+
exit 0
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
{
|
|
2
|
+
"hooks": {
|
|
3
|
+
"Stop": [
|
|
4
|
+
{
|
|
5
|
+
"hooks": [
|
|
6
|
+
{
|
|
7
|
+
"type": "command",
|
|
8
|
+
"command": "GATE=\"$(git rev-parse --show-toplevel 2>/dev/null)/.claude/hooks/gate.sh\"; [ -f \"$GATE\" ] && exec bash \"$GATE\" || exit 0",
|
|
9
|
+
"timeout": 180,
|
|
10
|
+
"statusMessage": "Running the gate (typecheck + lint)…"
|
|
11
|
+
}
|
|
12
|
+
]
|
|
13
|
+
}
|
|
14
|
+
]
|
|
15
|
+
}
|
|
16
|
+
}
|
|
@@ -5,8 +5,9 @@ name: CI
|
|
|
5
5
|
# fast every pull request and every push to main. No database: every gate
|
|
6
6
|
# here needs the config to parse, not to connect.
|
|
7
7
|
# verify pushes to main, and on demand. A Postgres service, the migrations,
|
|
8
|
-
#
|
|
9
|
-
# data, so it needs a migrated database
|
|
8
|
+
# a production build — `next build` boots Payload to collect page
|
|
9
|
+
# data, so it needs a migrated database — and the Playwright smoke
|
|
10
|
+
# pack against `next start` on that build.
|
|
10
11
|
#
|
|
11
12
|
# A green `fast` is what a pull request is reviewed on; `verify` is what says
|
|
12
13
|
# main still builds and migrates. Add a path filter to run `verify` on pull
|
|
@@ -30,7 +31,6 @@ env:
|
|
|
30
31
|
DATABASE_URI: postgres://ci:ci@localhost:5432/ci
|
|
31
32
|
PAYLOAD_SECRET: ci-placeholder-not-a-secret-000000000000
|
|
32
33
|
APPROVAL_TOKEN_SECRET: ci-placeholder-not-a-secret-000000000000
|
|
33
|
-
FORMS_IP_HASH_SECRET: ci-placeholder-not-a-secret-000000000000
|
|
34
34
|
RESEND_API_KEY: re_ci_placeholder
|
|
35
35
|
EMAIL_FROM_ADDRESS: ci@example.com
|
|
36
36
|
NEXT_PUBLIC_SERVER_URL: http://localhost:3000
|
|
@@ -75,6 +75,13 @@ jobs:
|
|
|
75
75
|
- name: Validate the design-system manifest
|
|
76
76
|
run: pnpm validate
|
|
77
77
|
|
|
78
|
+
# payload.config.ts imports the design system's built manifest, and the
|
|
79
|
+
# Payload commands below load the config outside turbo, which would
|
|
80
|
+
# otherwise have built it first. A placeholder design system has nothing
|
|
81
|
+
# to build.
|
|
82
|
+
- name: Build the design system
|
|
83
|
+
run: pnpm --filter ./design-system run --if-present build
|
|
84
|
+
|
|
78
85
|
- name: Check generated Payload artifacts are current
|
|
79
86
|
run: bash .github/scripts/check-generated.sh
|
|
80
87
|
|
|
@@ -121,6 +128,13 @@ jobs:
|
|
|
121
128
|
- name: Install
|
|
122
129
|
run: pnpm install --frozen-lockfile
|
|
123
130
|
|
|
131
|
+
# payload.config.ts imports the design system's built manifest, and the
|
|
132
|
+
# Payload commands below load the config outside turbo, which would
|
|
133
|
+
# otherwise have built it first. A placeholder design system has nothing
|
|
134
|
+
# to build.
|
|
135
|
+
- name: Build the design system
|
|
136
|
+
run: pnpm --filter ./design-system run --if-present build
|
|
137
|
+
|
|
124
138
|
# A fresh database, migrated exactly as a deploy would migrate it. A
|
|
125
139
|
# migration that does not apply cleanly from empty fails here rather than
|
|
126
140
|
# on the first environment somebody creates.
|
|
@@ -129,3 +143,14 @@ jobs:
|
|
|
129
143
|
|
|
130
144
|
- name: Build
|
|
131
145
|
run: pnpm build
|
|
146
|
+
|
|
147
|
+
# The smoke pack (apps/web/e2e): `next start` on the build above, against
|
|
148
|
+
# the empty database migrated above, asserting only what answers without
|
|
149
|
+
# content — the front door, a 404, the admin sign-in screen, and the REST
|
|
150
|
+
# API refusing an anonymous read of private collections. Here and not in
|
|
151
|
+
# `fast`, because the server needs a database to answer at all.
|
|
152
|
+
- name: Install Chromium for the smoke pack
|
|
153
|
+
run: pnpm --dir apps/web test:smoke:install
|
|
154
|
+
|
|
155
|
+
- name: Smoke test
|
|
156
|
+
run: pnpm --dir apps/web test:smoke
|
|
@@ -13,3 +13,12 @@ dist/
|
|
|
13
13
|
.vscode/
|
|
14
14
|
|
|
15
15
|
coverage/
|
|
16
|
+
|
|
17
|
+
# Written by throughline-payload (@forumone/throughline): the process
|
|
18
|
+
# group of each in-flight Payload CLI run, so the next run can reap one whose
|
|
19
|
+
# runner was killed before it could clean up.
|
|
20
|
+
.payload-cli-pids
|
|
21
|
+
|
|
22
|
+
# Playwright: traces and screenshots from a failed smoke run
|
|
23
|
+
e2e/.results/
|
|
24
|
+
playwright-report/
|
|
@@ -15,6 +15,7 @@
|
|
|
15
15
|
"check:tested": "tsx scripts/check-tested-packages.ts",
|
|
16
16
|
"check:audit": "tsx scripts/check-audit.ts",
|
|
17
17
|
"check:migrations": "pnpm --dir apps/web run check:migrations",
|
|
18
|
+
"payload:reap": "pnpm --dir apps/web run payload:reap",
|
|
18
19
|
"format": "prettier --write ."
|
|
19
20
|
},
|
|
20
21
|
"devDependencies": {
|
|
@@ -25,8 +25,6 @@ after the package that caused them.
|
|
|
25
25
|
* by the same change that makes it untrue.
|
|
26
26
|
*/
|
|
27
27
|
const ACCEPTED: Record<string, string> = {
|
|
28
|
-
'apps/web':
|
|
29
|
-
'Freshly scaffolded: the config and routes are generated wiring. Delete this entry with your first test here — an access rule, a hook or a field validation is the place to start.',
|
|
30
28
|
{{#if useReferenceDs}}{{else}} 'design-system':
|
|
31
29
|
'Placeholder until the design system is written. Delete this entry with its first component.',
|
|
32
30
|
{{/if}}}
|
|
@@ -34,7 +34,7 @@
|
|
|
34
34
|
"clean": "rm -rf dist .turbo storybook-static *.tsbuildinfo"
|
|
35
35
|
},
|
|
36
36
|
"dependencies": {
|
|
37
|
-
"@forumone/throughline-design-
|
|
37
|
+
"@forumone/throughline-design-system": "^{{version_design_system}}",
|
|
38
38
|
"clsx": "^2.1.1"
|
|
39
39
|
},
|
|
40
40
|
"peerDependencies": {
|
|
@@ -5,7 +5,7 @@ import {
|
|
|
5
5
|
CONTRACT_VERSION,
|
|
6
6
|
ManifestSchema,
|
|
7
7
|
type ComponentContract,
|
|
8
|
-
} from '@forumone/throughline-design-contract'
|
|
8
|
+
} from '@forumone/throughline-design-system/contract'
|
|
9
9
|
import { getTokenList } from '../src/tokens/index.ts'
|
|
10
10
|
|
|
11
11
|
const __dirname = dirname(fileURLToPath(import.meta.url))
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { readFile, stat } from 'node:fs/promises'
|
|
2
2
|
import { dirname, resolve } from 'node:path'
|
|
3
3
|
import { fileURLToPath } from 'node:url'
|
|
4
|
-
import { loadManifest } from '@forumone/throughline-design-contract'
|
|
5
|
-
import { formatLintIssues, lintManifest } from '@forumone/throughline-design-
|
|
4
|
+
import { loadManifest } from '@forumone/throughline-design-system/contract'
|
|
5
|
+
import { formatLintIssues, lintManifest } from '@forumone/throughline-design-system/lint'
|
|
6
6
|
|
|
7
7
|
const __dirname = dirname(fileURLToPath(import.meta.url))
|
|
8
8
|
const packageRoot = resolve(__dirname, '..')
|
|
@@ -36,7 +36,7 @@ async function collectStoryIds(): Promise<Set<string> | undefined> {
|
|
|
36
36
|
Lint rules this design system treats as failures, though the shared linter
|
|
37
37
|
reports them as warnings.
|
|
38
38
|
|
|
39
|
-
|
|
39
|
+
The suite's linter sets both to `warning` because it serves every project, and a
|
|
40
40
|
project migrating an existing design system onto the contract should not be
|
|
41
41
|
blocked by prose. A design system written against the contract from the start is
|
|
42
42
|
never mid-migration, so it starts strict. Relax a rule here, deliberately, if
|
package/dist/templates/with-reference-ds/design-system/src/components/Divider/Divider.contract.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { ComponentContract } from '@forumone/throughline-design-contract'
|
|
1
|
+
import type { ComponentContract } from '@forumone/throughline-design-system/contract'
|
|
2
2
|
|
|
3
3
|
export const contract: ComponentContract = {
|
|
4
4
|
name: 'Divider',
|
|
@@ -26,6 +26,7 @@ export const contract: ComponentContract = {
|
|
|
26
26
|
name: 'decorative',
|
|
27
27
|
type: 'boolean',
|
|
28
28
|
required: false,
|
|
29
|
+
defaultValue: true,
|
|
29
30
|
constraints: 'When true (default), the divider is aria-hidden',
|
|
30
31
|
},
|
|
31
32
|
],
|
|
@@ -21,7 +21,7 @@ export const allTokens = {
|
|
|
21
21
|
|
|
22
22
|
export type TokenName = keyof typeof allTokens
|
|
23
23
|
|
|
24
|
-
/** Returns every token in the shape the design-contract
|
|
24
|
+
/** Returns every token in the shape the manifest schema (`@forumone/throughline-design-system/contract`) expects. */
|
|
25
25
|
export function getTokenList() {
|
|
26
26
|
const categorize = (name: string) => name.split('.')[0] ?? 'other'
|
|
27
27
|
return Object.entries(allTokens).map(([name, value]) => ({
|
package/dist/utils/versions.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* The version of every Throughline package the scaffold depends on, keyed for
|
|
3
|
-
* the template renderer: `@forumone/throughline-design-
|
|
4
|
-
* `
|
|
3
|
+
* the template renderer: `@forumone/throughline-design-system` becomes
|
|
4
|
+
* `version_design_system`, rendered as `"^{{version_design_system}}"`.
|
|
5
5
|
*
|
|
6
6
|
* The ranges used to be typed into the templates by hand, and nothing moved
|
|
7
7
|
* them: they sat at `^0.2.0` — which for a 0.x version admits patches only —
|
|
@@ -15,6 +15,6 @@
|
|
|
15
15
|
* no such file and the workspace's own `package.json` files are the answer.
|
|
16
16
|
*/
|
|
17
17
|
export declare function loadPackageVersions(templatesDir: string): Promise<Record<string, string>>;
|
|
18
|
-
/** `{ '@forumone/throughline
|
|
18
|
+
/** `{ '@forumone/throughline': '1.0.0', … }` from a `packages/` directory. */
|
|
19
19
|
export declare function readWorkspaceVersions(packagesDir: string): Promise<Record<string, string>>;
|
|
20
20
|
//# sourceMappingURL=versions.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"versions.d.ts","sourceRoot":"","sources":["../../src/utils/versions.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"versions.d.ts","sourceRoot":"","sources":["../../src/utils/versions.ts"],"names":[],"mappings":"AAQA;;;;;;;;;;;;;;;GAeG;AACH,wBAAsB,mBAAmB,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAO/F;AAED,8EAA8E;AAC9E,wBAAsB,qBAAqB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CA0BhG"}
|
package/dist/utils/versions.js
CHANGED
|
@@ -2,10 +2,12 @@ import { existsSync } from 'node:fs';
|
|
|
2
2
|
import { readFile, readdir } from 'node:fs/promises';
|
|
3
3
|
import { join, resolve } from 'node:path';
|
|
4
4
|
const SCOPE_PREFIX = '@forumone/throughline-';
|
|
5
|
+
/** The one package whose name has no suffix: `version_throughline`. */
|
|
6
|
+
const BARE_NAME = '@forumone/throughline';
|
|
5
7
|
/**
|
|
6
8
|
* The version of every Throughline package the scaffold depends on, keyed for
|
|
7
|
-
* the template renderer: `@forumone/throughline-design-
|
|
8
|
-
* `
|
|
9
|
+
* the template renderer: `@forumone/throughline-design-system` becomes
|
|
10
|
+
* `version_design_system`, rendered as `"^{{version_design_system}}"`.
|
|
9
11
|
*
|
|
10
12
|
* The ranges used to be typed into the templates by hand, and nothing moved
|
|
11
13
|
* them: they sat at `^0.2.0` — which for a 0.x version admits patches only —
|
|
@@ -26,7 +28,7 @@ export async function loadPackageVersions(templatesDir) {
|
|
|
26
28
|
// src/templates or dist/templates -> the package -> packages/
|
|
27
29
|
return templateKeys(await readWorkspaceVersions(resolve(templatesDir, '..', '..', '..')));
|
|
28
30
|
}
|
|
29
|
-
/** `{ '@forumone/throughline
|
|
31
|
+
/** `{ '@forumone/throughline': '1.0.0', … }` from a `packages/` directory. */
|
|
30
32
|
export async function readWorkspaceVersions(packagesDir) {
|
|
31
33
|
const versions = {};
|
|
32
34
|
const entries = await readdir(packagesDir, { withFileTypes: true }).catch(() => []);
|
|
@@ -37,22 +39,26 @@ export async function readWorkspaceVersions(packagesDir) {
|
|
|
37
39
|
if (!existsSync(manifest))
|
|
38
40
|
continue;
|
|
39
41
|
const { name, version, private: isPrivate, } = JSON.parse(await readFile(manifest, 'utf-8'));
|
|
40
|
-
if (!name
|
|
42
|
+
if (!name || !isThroughline(name) || !version || isPrivate)
|
|
41
43
|
continue;
|
|
42
44
|
versions[name] = version;
|
|
43
45
|
}
|
|
44
46
|
if (Object.keys(versions).length === 0) {
|
|
45
47
|
throw new Error(`create-throughline: no package versions found. Expected versions.json beside the ` +
|
|
46
|
-
`templates, or @forumone/throughline
|
|
48
|
+
`templates, or @forumone/throughline packages in ${packagesDir}.`);
|
|
47
49
|
}
|
|
48
50
|
return versions;
|
|
49
51
|
}
|
|
52
|
+
function isThroughline(name) {
|
|
53
|
+
return name === BARE_NAME || name.startsWith(SCOPE_PREFIX);
|
|
54
|
+
}
|
|
50
55
|
function templateKeys(versions) {
|
|
51
56
|
const keys = {};
|
|
52
57
|
for (const [name, version] of Object.entries(versions)) {
|
|
53
|
-
if (
|
|
54
|
-
|
|
55
|
-
|
|
58
|
+
if (name === BARE_NAME)
|
|
59
|
+
keys['version_throughline'] = version;
|
|
60
|
+
else if (name.startsWith(SCOPE_PREFIX))
|
|
61
|
+
keys[`version_${name.slice(SCOPE_PREFIX.length).replace(/-/g, '_')}`] = version;
|
|
56
62
|
}
|
|
57
63
|
return keys;
|
|
58
64
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"versions.js","sourceRoot":"","sources":["../../src/utils/versions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AACpC,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAA;AACpD,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAEzC,MAAM,YAAY,GAAG,wBAAwB,CAAA;
|
|
1
|
+
{"version":3,"file":"versions.js","sourceRoot":"","sources":["../../src/utils/versions.ts"],"names":[],"mappings":"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"}
|
package/dist/versions.json
CHANGED
|
@@ -1,14 +1,4 @@
|
|
|
1
1
|
{
|
|
2
|
-
"@forumone/throughline-
|
|
3
|
-
"@forumone/throughline
|
|
4
|
-
"@forumone/throughline-components": "0.5.7",
|
|
5
|
-
"@forumone/throughline-core": "0.9.1",
|
|
6
|
-
"@forumone/throughline-design-contract": "0.6.0",
|
|
7
|
-
"@forumone/throughline-email": "0.2.12",
|
|
8
|
-
"@forumone/throughline-forms": "0.6.4",
|
|
9
|
-
"@forumone/throughline-integrations": "0.8.5",
|
|
10
|
-
"@forumone/throughline-plugin-contract": "0.4.1",
|
|
11
|
-
"@forumone/throughline-publishing": "0.10.0",
|
|
12
|
-
"@forumone/throughline-reference-ds": "0.3.6",
|
|
13
|
-
"@forumone/throughline-workflows": "0.4.0"
|
|
2
|
+
"@forumone/throughline-design-system": "1.0.0-next.2",
|
|
3
|
+
"@forumone/throughline": "1.0.0-next.2"
|
|
14
4
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@forumone/create-throughline",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "1.0.0-next.2",
|
|
4
4
|
"description": "Scaffolder for new Throughline projects (Payload CMS + MCP servers + Inngest workflows).",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|
|
@@ -44,6 +44,7 @@
|
|
|
44
44
|
"picocolors": "^1.1.0"
|
|
45
45
|
},
|
|
46
46
|
"devDependencies": {
|
|
47
|
+
"@playwright/test": "^1.63.0",
|
|
47
48
|
"@types/node": "^20.17.0",
|
|
48
49
|
"eslint": "^10.11.0",
|
|
49
50
|
"tsx": "^4.21.0",
|