Repository navigation
Expand file tree
/
Copy pathpackage.json
More file actions
130 lines (130 loc) · 9.67 KB
/
Copy pathpackage.json
File metadata and controls
130 lines (130 loc) · 9.67 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
{
"name": "donut",
"version": "1.0.0",
"main": "index.js",
"repository": "https://github.com/nerds-odd-e/doughnut.git",
"author": "Terry Yin <terry.yinzhe@gmail.com>",
"license": "MIT",
"engines": {
"node": ">=26.10",
"pnpm": ">=12.15.0"
},
"scripts": {
"preinstall": "npx only-allow pnpm",
"postinstall": "syncpack fix",
"start:mb": "scripts/start_mb.sh",
"mcp-server:bundle": "pnpm --frozen-lockfile --silent recursive install && pnpm -C mcp-server bundle",
"mcp-server:test": "pnpm --frozen-lockfile --silent recursive install && pnpm -C mcp-server test",
"mcp-server:format": "pnpm --frozen-lockfile --silent recursive install && pnpm -C mcp-server format",
"mcp-server:lint": "pnpm --frozen-lockfile --silent recursive install && pnpm -C mcp-server lint",
"test-fixtures:format": "pnpm --frozen-lockfile --silent recursive install && pnpm -C packages/donut-test-fixtures format",
"test-fixtures:lint": "pnpm --frozen-lockfile --silent recursive install && pnpm -C packages/donut-test-fixtures lint",
"cli": "pnpm --frozen-lockfile --silent recursive install && DONUT_API_BASE_URL=http://localhost:8081 DONUT_CONFIG_DIR=$HOME/.config/donut-dev pnpm -C cli exec tsx src/index.ts",
"cli:bundle": "pnpm --frozen-lockfile --silent recursive install && pnpm -C cli bundle",
"cli:format": "pnpm --frozen-lockfile --silent recursive install && pnpm -C cli format",
"cli:lint": "pnpm --frozen-lockfile --silent recursive install && pnpm -C cli lint",
"cli:test": "pnpm --frozen-lockfile --silent recursive install && pnpm -C cli test",
"frontend:build": "pnpm --frozen-lockfile --silent recursive install && pnpm -C frontend build",
"frontend:format": "pnpm --frozen-lockfile --silent recursive install && pnpm -C frontend format",
"frontend:lint": "pnpm --frozen-lockfile --silent recursive install && pnpm -C frontend lint",
"frontend:test:ui": "pnpm --frozen-lockfile --silent recursive install && pnpm -C frontend test:ui",
"frontend:test": "pnpm --frozen-lockfile --silent recursive install && pnpm -C frontend test",
"frontend:test:watch": "pnpm --frozen-lockfile --silent recursive install && pnpm -C frontend test:watch",
"frontend:verify": "pnpm frontend:test && pnpm frontend:build",
"frontend:sut": "pnpm --frozen-lockfile --silent recursive install && pnpm -C frontend dev",
"frontend:dev": "pnpm --frozen-lockfile --silent recursive install && pnpm -C frontend dev",
"frontend:storybook": "pnpm --frozen-lockfile --silent recursive install && pnpm -C frontend storybook",
"storybook": "pnpm frontend:storybook",
"backend:format": "backend/gradlew -p backend spotlessApply || exit 1",
"backend:lint": "backend/gradlew -p backend lint",
"backend:test_only": "backend/gradlew -p backend test -Dspring.profiles.active=test --build-cache --parallel",
"backend:test:worktree": "scripts/backend-test-worktree.sh",
"worktree:retire": "node scripts/worktree-retirement.mjs",
"backend:test": "scripts/backend-test.sh",
"backend:verify": "pnpm backend:test",
"backend:generateOpenAPIDocs": "backend/gradlew -p backend generateOpenAPIDocs -Dspring.profiles.active=test --build-cache",
"backend:watch": "backend/gradlew -p backend -t classes",
"backend:sut:ci": "backend/gradlew -p backend bootRunE2E --build-cache --no-daemon",
"backend:sut": "pnpm exec run-p -clnr backend:watch backend:sut:ci",
"backend:dev:ci": "backend/gradlew -p backend bootRunDev --build-cache --no-daemon",
"backend:dev": "pnpm exec run-p -clnr backend:watch backend:dev:ci",
"openAPIToTypeScript": "openapi-ts",
"openapi:lint": "redocly lint open_api_docs.yaml",
"generateTypeScript": "pnpm --frozen-lockfile --silent install && pnpm backend:generateOpenAPIDocs && pnpm openAPIToTypeScript && node scripts/add-generated-package-json.mjs && node scripts/generate-api-summary.mjs",
"export:database-erd": "python3 scripts/export_database_erd.py",
"cy:format": "pnpm --frozen-lockfile --silent install && pnpm biome check --write .",
"cy:lint": "pnpm --frozen-lockfile --silent install && pnpm biome check .",
"validate:path-routing": "node scripts/validate-url-map-static-vs-backend-hints.mjs",
"test:path-routing": "node --test infra/gcp/path-routing/path-routing-validation.test.mjs infra/gcp/path-routing/rendered-url-map-routing.test.mjs infra/gcp/url-maps/renderDoughnutAppServiceUrlMap.test.mjs",
"cy:open": "node scripts/e2e-runner.mjs --open",
"cy:open:raw": "cypress open --e2e",
"cy:run": "node scripts/e2e-runner.mjs",
"e2e:hold": "node scripts/e2e-runner.mjs --hold",
"local:lb": "node scripts/local-lb.mjs",
"local:lb:vite": "node scripts/local-lb.mjs",
"test": "pnpm --frozen-lockfile --silent recursive install && pnpm cli:bundle && pnpm frontend:build && SUT_RUNTIME_TARGET='{\"built\":true}' node scripts/e2e-runner.mjs --spec 'e2e_test/features/**/*.feature'",
"dev": "pnpm --frozen-lockfile --silent recursive install && node scripts/dev-start.mjs",
"dev:restart": "node scripts/dev-restart.mjs",
"dev:stop": "node scripts/dev-stop.mjs",
"logs:tail": "node scripts/logs-tail.mjs",
"test:development-stack": "node --test scripts/dev-stop.test.mjs scripts/dev-start.test.mjs scripts/dev-restart.test.mjs scripts/development-services.test.mjs scripts/development-runtime.test.mjs",
"test:api-summary": "node --test scripts/generate-api-summary.test.mjs",
"test:workspace-syncpack-lifecycle": "node --test scripts/workspace-syncpack-lifecycle.test.mjs",
"test:log-utils": "node --test scripts/log-utils.test.mjs scripts/logs-tail.test.mjs",
"test:sut-healthcheck": "node --test scripts/sut-healthcheck.test.mjs scripts/sut-isolated-health.test.mjs scripts/sut-listener-pids.test.mjs",
"test:sut-start": "node --test scripts/sut-start.test.mjs scripts/sut-start-health-wait.test.mjs scripts/sut-services.test.mjs scripts/sut-runtime-target.test.mjs scripts/sut-isolated-start.test.mjs scripts/sut-isolated-start-release.test.mjs scripts/sut-services-child-exit.test.mjs scripts/sut-isolated-e2e-database.test.mjs scripts/sut-isolated-e2e-database-lock.test.mjs scripts/sut-e2e-observation-database.test.mjs scripts/sut-e2e-ports.test.mjs scripts/sut-e2e-port-allocation.test.mjs scripts/sut-fresh-identity-start.test.mjs scripts/sut-retirement-admission.test.mjs",
"test:browser-worktree-isolation": "node --test scripts/browser-worktree-isolation.test.mjs scripts/e2e-runner.test.mjs scripts/isolated-cypress.test.mjs scripts/isolated-cypress-cli-spec.test.mjs scripts/worktree-reset-isolation-harness.test.mjs e2e_test/config/composeCypressPluginEvents.test.mjs && pnpm -C cli exec tsx --test ../e2e_test/config/mcpClientTasks.test.ts",
"test:backend-test-worktree": "node --test scripts/backend-test-worktree.test.mjs scripts/backend-test-worktree-lock.test.mjs scripts/backend-test-worktree-provisioning.test.mjs scripts/backend-test-worktree-wrapper.test.mjs scripts/backend-test-worktree-wrapper-conflicts.test.mjs scripts/backend-test-worktree-wrapper-linked.test.mjs scripts/backend-test-worktree-wrapper-compatibility.test.mjs scripts/backend-test-worktree-wrapper-pnpm.test.mjs scripts/worktree-identity.test.mjs scripts/backend-test-worktree-after-sut.test.mjs scripts/backend-test-worktree-admission.test.mjs scripts/worktree-retirement-admission.test.mjs",
"diff:check": "scripts/check_diff_whitespace.sh",
"setupCursorDev": "node scripts/setup-cursor-dev.mjs",
"verify": "pnpm format:all && pnpm test",
"lint:all": "pnpm --frozen-lockfile --silent recursive install && pnpm backend:lint && pnpm frontend:lint && pnpm cli:lint && pnpm test-fixtures:lint && pnpm cy:lint && pnpm test:path-routing && pnpm test:api-summary && pnpm test:workspace-syncpack-lifecycle && pnpm test:log-utils && pnpm test:sut-healthcheck && pnpm test:sut-start && pnpm test:browser-worktree-isolation && pnpm test:backend-test-worktree && pnpm test:development-stack && pnpm validate:path-routing && pnpm openapi:lint",
"format:all": "pnpm --frozen-lockfile --silent recursive install && pnpm backend:format && pnpm frontend:format && pnpm mcp-server:format && pnpm test-fixtures:format && pnpm cli:format && pnpm cy:format && pnpm openapi:lint",
"format:changed": "scripts/format_changed.sh",
"lint:changed": "scripts/lint_changed.sh",
"bundle:all": "pnpm mcp-server:bundle && pnpm cli:bundle && pnpm frontend:build",
"sound": "github_action_sound https://github.com/nerds-odd-e/doughnut/actions"
},
"cypress-cucumber-preprocessor": {
"stepDefinitions": "e2e_test/step_definitions/**/*.ts",
"nonGlobalStepDefinitions": false,
"filterSpecs": true,
"omitFiltered": true
},
"devDependencies": {
"@anev/ts-mountebank": "1.8.0",
"@badeball/cypress-cucumber-preprocessor": "28.0.1",
"@bahmutov/cypress-esbuild-preprocessor": "^2.2.8",
"@biomejs/biome": "2.6.3",
"@cucumber/cucumber": "13.3.0",
"@hey-api/openapi-ts": "0.99.0",
"@hono/node-server": "2.1.5",
"@mbtest/mountebank": "2.9.5",
"@modelcontextprotocol/sdk": "1.32.2",
"@redocly/cli": "2.71.0",
"@testing-library/cypress": "10.1.3",
"@types/cypress-cucumber-preprocessor": "^4.0.5",
"@types/jquery": "^3.5",
"@types/node": "26.6.5",
"cypress": "16.2.0",
"cypress-file-upload": "^5.0.8",
"github_action_sound": "^1.1.0",
"got": "16.1.0",
"hono": "4.13.13",
"npm-run-all2": "9.0.4",
"process": "^0.11.10",
"slugify": "1.6.9",
"superagent": "10.4.1",
"syncpack": "^15.3.3",
"tesseract.js": "^7.0.0",
"tty-assert": "0.1.3",
"typescript": "6.0.3",
"util": "^0.12.5",
"wait-on": "9.5.1",
"yaml": "2.9.1"
},
"dependencies": {
"vue-toastification": "2.0.0-rc.5"
},
"packageManager": "pnpm@12.15.0"
}