-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathpackage.json
More file actions
143 lines (143 loc) · 9.55 KB
/
Copy pathpackage.json
File metadata and controls
143 lines (143 loc) · 9.55 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
131
132
133
134
135
136
137
138
139
140
141
142
143
{
"name": "com.barelysufficient.pels",
"version": "1.1.1",
"packageManager": "npm@12.0.2",
"workspaces": [
"packages/*"
],
"engines": {
"node": "^22.17.0",
"npm": "12.0.2"
},
"scripts": {
"build": "tsc && npm run bundle:homey-build && npm run build:settings && npm run build:widgets && npm run sanitize:homey-build",
"build:settings": "npm --workspace @pels/settings-ui run build && node scripts/sync-settings-ui.mjs",
"build:widgets": "node scripts/build-widgets.mjs",
"build:nettleie-fallback": "node scripts/build-nettleie-fallback.mjs",
"bundle:homey-build": "node scripts/bundle-homey-build.mjs",
"build:widgets:previews": "node widgets/headroom/scripts/build-previews.mjs",
"widget-harness": "node tests/widget-harness/serve.mjs",
"docs:widget-screenshots": "node scripts/build-doc-widget-screenshots.mjs",
"docs:dev": "vitepress dev docs",
"docs:build": "vitepress build docs",
"docs:build:channels": "node scripts/build-docs-channels.mjs",
"docs:preview": "vitepress preview docs",
"docs:promote:live": "node scripts/promote-docs-channel.mjs live",
"docs:promote:test": "node scripts/promote-docs-channel.mjs test",
"bench:settings-ui:boot": "node scripts/benchmark-settings-ui-boot.mjs",
"watch:settings": "npm run build:settings && esbuild packages/settings-ui/src/script.ts --bundle --outfile=settings/script.js --format=iife --target=es2020 --watch",
"measure:settings-ui:homey": "node scripts/measure-settings-ui-homey.mjs",
"start": "zsh -lc 'log_dir=${PELS_LOG_DIR:-/tmp/pels}; mkdir -p \"$log_dir\"; branch=$(git branch --show-current 2>/dev/null || true); branch=${branch:-${PWD:t}}; branch=$(printf \"%s\" \"$branch\" | tr -cs \"A-Za-z0-9._-\" \"-\"); homey_id=$(node scripts/resolve-homey-id.mjs 2>/dev/null || echo unknown); commit=$(git rev-parse --short HEAD 2>/dev/null || echo unknown); git diff --quiet 2>/dev/null || commit=\"${commit}-dirty\"; out=\"$log_dir/start.${branch}.${homey_id}.stdout.log\"; err=\"$log_dir/start.${branch}.${homey_id}.stderr.log\"; printf \"===== PELS START %s commit=%s branch=%s =====\\n\" \"$(date -u +%FT%TZ)\" \"$commit\" \"$branch\" | tee -a \"$out\" \"$err\" >/dev/null; { npm run build:settings && npm run build:widgets && homey app run --remote; } > >(tee -a \"$out\") 2> >(tee -a \"$err\" >&2)'",
"install-app": "zsh -lc 'log_dir=${PELS_LOG_DIR:-/tmp/pels}; mkdir -p \"$log_dir\"; branch=$(git branch --show-current 2>/dev/null || true); branch=${branch:-${PWD:t}}; branch=$(printf \"%s\" \"$branch\" | tr -cs \"A-Za-z0-9._-\" \"-\"); homey_id=$(node scripts/resolve-homey-id.mjs 2>/dev/null || echo unknown); commit=$(git rev-parse --short HEAD 2>/dev/null || echo unknown); git diff --quiet 2>/dev/null || commit=\"${commit}-dirty\"; out=\"$log_dir/install-app.${branch}.${homey_id}.stdout.log\"; err=\"$log_dir/install-app.${branch}.${homey_id}.stderr.log\"; printf \"===== PELS START %s commit=%s branch=%s =====\\n\" \"$(date -u +%FT%TZ)\" \"$commit\" \"$branch\" | tee -a \"$out\" \"$err\" >/dev/null; { npm run build:settings && npm run build:widgets && homey app install; } > >(tee -a \"$out\") 2> >(tee -a \"$err\" >&2)'",
"lint": "eslint . --max-warnings=0",
"lint:css": "stylelint \"packages/settings-ui/public/**/*.css\" \"widgets/_shared/*.css\" \"widgets/*/src/public/*.css\" --max-warnings=0",
"lint:html": "html-validate \"packages/settings-ui/public/**/*.html\" \"widgets/**/*.html\" --max-warnings=0",
"arch:check": "dependency-cruiser --config .dependency-cruiser.cjs app.ts api.ts flowCards drivers lib setup \"widgets/*/src\" widgets/_shared packages/settings-ui/src packages/contracts/src packages/shared-domain/src packages/planner-types/src",
"arch:grep": "node scripts/check-plan-objectives-edge.mjs",
"ev:vocab": "node scripts/check-ev-vocab.mjs",
"control-model:vocab": "node scripts/check-control-model-vocab.mjs",
"device-kind:vocab": "node scripts/check-device-kind-vocab.mjs",
"binary:vocab": "node scripts/check-binary-vocab.mjs",
"binary:seam": "node scripts/check-binary-seam.mjs",
"executor:settle-seam": "node scripts/check-executor-settle-seam.mjs",
"setup:stateless": "node scripts/check-setup-stateless.mjs",
"setup:boundaries": "node scripts/check-setup-boundaries.mjs",
"params:no-bundles": "node scripts/check-param-bundles.mjs",
"logging:no-legacy": "node scripts/check-logging-legacy.mjs",
"executor:plan-edge": "node scripts/check-executor-plan-edge.mjs",
"deadcode:check": "knip",
"sanitize:homey-build": "node scripts/sanitize-homey-build.mjs",
"check:homeybuild": "node scripts/check-homeybuild-requires.mjs",
"package:check": "node scripts/check-homey-packaging.mjs",
"typecheck:unused": "tsc -p tsconfig.runtime-unused.json",
"test:unit": "node scripts/with-validation-lock.mjs test:unit -- vitest run --config vitest.config.unit.mts",
"test:unit:ci": "node scripts/with-validation-lock.mjs test:unit:ci -- node scripts/test-unit-ci.mjs",
"test:unit:tz": "node scripts/with-validation-lock.mjs test:unit:tz -- node scripts/run-timezone-tests.mjs",
"test:integration": "node scripts/with-validation-lock.mjs test:integration -- vitest run --config vitest.config.integration.mts",
"test:e2e:runtime": "node scripts/with-validation-lock.mjs test:e2e:runtime -- vitest run --config vitest.config.e2e.mts",
"test:coverage": "node scripts/with-validation-lock.mjs test:coverage -- vitest run --config vitest.config.mts",
"ci:checks": "node scripts/ci-checks.mjs",
"ci:test:runtime": "node scripts/with-validation-lock.mjs ci:test:runtime -- node scripts/ci-test-runtime.mjs",
"ci:test:settings-ui": "npm run test:ui",
"ci:test:playwright:quick": "npm --workspace @pels/settings-ui run build && CI=1 PELS_E2E_BUILD=0 npm --workspace @pels/settings-ui run test:e2e -- --project=chromium-mobile-width",
"ci:test:playwright": "npm --workspace @pels/settings-ui run build && CI=1 PELS_E2E_BUILD=0 npm --workspace @pels/settings-ui run test:e2e -- --project=chromium-mobile-width --project=firefox-mobile-width",
"ci": "npm run ci:checks && npm run ci:test:runtime && npm run ci:test:settings-ui",
"ci:full": "npm run build && npm run ci && npm run ci:test:playwright",
"test": "npm run ci",
"test:e2e": "node scripts/with-validation-lock.mjs settings-ui:test:e2e -- npm --workspace @pels/settings-ui exec -- playwright test --config playwright.config.ts",
"test:e2e:ui": "node scripts/with-validation-lock.mjs settings-ui:test:e2e -- npm --workspace @pels/settings-ui exec -- playwright test --config playwright.config.ts",
"test:e2e:capture": "node scripts/with-validation-lock.mjs settings-ui:test:e2e:capture -- npm --workspace @pels/settings-ui exec -- playwright test --config playwright.capture.config.ts",
"test:ui": "npm --workspace @pels/settings-ui run test",
"test:all": "npm run ci",
"validate": "homey app validate && npm run package:check",
"check": "npm run ci",
"start:local": "zsh -lc 'log_dir=${PELS_LOG_DIR:-/tmp/pels}; mkdir -p \"$log_dir\"; branch=$(git branch --show-current 2>/dev/null || true); branch=${branch:-${PWD:t}}; branch=$(printf \"%s\" \"$branch\" | tr -cs \"A-Za-z0-9._-\" \"-\"); homey_id=$(node scripts/resolve-homey-id.mjs 2>/dev/null || echo unknown); commit=$(git rev-parse --short HEAD 2>/dev/null || echo unknown); git diff --quiet 2>/dev/null || commit=\"${commit}-dirty\"; out=\"$log_dir/start-local.${branch}.${homey_id}.stdout.log\"; err=\"$log_dir/start-local.${branch}.${homey_id}.stderr.log\"; printf \"===== PELS START %s commit=%s branch=%s =====\\n\" \"$(date -u +%FT%TZ)\" \"$commit\" \"$branch\" | tee -a \"$out\" \"$err\" >/dev/null; { npm run build:settings && npm run build:widgets && homey app run; } > >(tee -a \"$out\") 2> >(tee -a \"$err\" >&2)'",
"prepare": "husky"
},
"lint-staged": {
"**/*.{ts,mts}": [
"eslint --max-warnings=0 --no-warn-ignored",
"node scripts/pre-commit-typecheck.mjs"
],
"**/*.{js,mjs,cjs}": [
"eslint --max-warnings=0 --no-warn-ignored"
],
"**/*.css": [
"stylelint --max-warnings=0 --allow-empty-input"
],
"**/*.html": [
"html-validate --max-warnings=0"
]
},
"overrides": {
"eslint-plugin-sonarjs": {
"minimatch": "10.2.4"
}
},
"devDependencies": {
"@eslint/js": "^10.0.1",
"@playwright/test": "^1.63.0",
"@tsconfig/node22": "^22.0.6",
"@types/homey": "npm:homey-apps-sdk-v3-types@^0.3.12",
"@types/jsdom": "^30.0.0",
"@types/node": "^26.6.1",
"@types/sortablejs": "^1.15.9",
"@vitest/coverage-v8": "^5.0.0",
"dependency-cruiser": "^18.3.1",
"echarts": "^6.1.0",
"esbuild": "^0.28.2",
"eslint": "^10.11.0",
"eslint-plugin-functional": "^10.0.1",
"eslint-plugin-import-x": "^4.17.1",
"eslint-plugin-n": "^18.3.0",
"eslint-plugin-no-unsanitized": "^4.1.5",
"eslint-plugin-sonarjs": "^4.2.1",
"eslint-plugin-unicorn": "^75.0.0",
"globals": "^17.12.0",
"html-validate": "^11.16.0",
"husky": "^9.1.7",
"jsdom": "^30.1.0",
"knip": "^6.37.0",
"lint-staged": "^17.5.1",
"sortablejs": "^1.15.7",
"style-dictionary": "^5.5.4",
"stylelint": "^17.15.0",
"stylelint-config-recommended": "^18.0.0",
"stylelint-declaration-strict-value": "^1.12.1",
"stylelint-value-no-unknown-custom-properties": "^6.1.1",
"tippy.js": "^6.3.7",
"typescript": "^6.0.3",
"typescript-eslint": "^8.70.0",
"vitepress": "^1.6.4",
"vitest": "^5.0.1",
"yaml": "^2.9.1"
},
"volta": {
"node": "22.23.2",
"npm": "12.0.2"
},
"dependencies": {
"pino": "^10.3.1",
"socket.io-client": "^4.8.3"
}
}