Skip to content

Commit 3f59630

Browse files
committed
build: configure root workspace and tooling
- Add root package.json with workspace delegating scripts - Configure Yarn 4 with monorepo workspaces - Set up lint-staged, commitlint, and patch-package - Update .gitignore for dual-workspace structure - Configure root-level linting and formatting rules
1 parent 9b3d38d commit 3f59630

19 files changed

+6910
-2606
lines changed

.eslintignore

Lines changed: 0 additions & 6 deletions
This file was deleted.

.eslintrc.json

100755100644
Lines changed: 26 additions & 69 deletions
Original file line numberDiff line numberDiff line change
@@ -7,18 +7,16 @@
77
"extends": [
88
"eslint:recommended",
99
"plugin:@typescript-eslint/recommended",
10-
"plugin:prettier/recommended",
11-
"plugin:lit-a11y/recommended",
12-
"plugin:require-extensions/recommended"
10+
"plugin:prettier/recommended"
1311
],
12+
"ignorePatterns": ["CONTRIBUTOR-DOCS/**/*"],
1413
"overrides": [
1514
{
1615
"extends": ["plugin:jsonc/recommended-with-jsonc"],
1716
"files": ["*.json"],
1817
"parser": "jsonc-eslint-parser",
1918
"rules": {
20-
"jsonc/sort-keys": ["warn"],
21-
"notice/notice": "off"
19+
"jsonc/sort-keys": ["warn"]
2220
}
2321
},
2422
{
@@ -74,97 +72,56 @@
7472
"cpu",
7573
"publishConfig"
7674
],
77-
"pathPattern": "^$" // Top-level properties
75+
"pathPattern": "^$"
7876
},
7977
{
80-
/*
81-
* This rule excludes export conditions from alphabetical sorting.
82-
* Since node.js processes export conditions in order and chooses the
83-
* first match, they need to be ordered logically, not alphabetically.
84-
*/
8578
"order": { "type": "asc" },
86-
"pathPattern": "^(?!exports\\[).*" // All properties except export conditions
79+
"pathPattern": "^(?!exports\\[).*"
8780
}
8881
]
8982
}
9083
},
9184
{
92-
"files": ["scripts/*"],
85+
"extends": ["./1st-gen/.eslintrc.json"],
86+
"files": ["1st-gen/**/*"],
9387
"rules": {
94-
"no-console": ["off"]
88+
"notice/notice": [
89+
"error",
90+
{
91+
"mustMatch": "Copyright [0-9]{0,4} Adobe. All rights reserved.",
92+
"templateFile": "config/license.js"
93+
}
94+
]
9595
}
9696
},
9797
{
98-
"files": ["react/**/*.ts"],
98+
"extends": ["./2nd-gen/.eslintrc.json"],
99+
"files": ["2nd-gen/**/*"],
99100
"rules": {
100-
"@typescript-eslint/no-explicit-any": "off"
101+
"notice/notice": [
102+
"error",
103+
{
104+
"mustMatch": "Copyright [0-9]{0,4} Adobe. All rights reserved.",
105+
"templateFile": "../../../config/license.js"
106+
}
107+
]
101108
}
102109
}
103110
],
104111
"parser": "@typescript-eslint/parser",
105112
"parserOptions": {
106-
"ecmaVersion": 2020,
113+
"ecmaVersion": "latest",
107114
"sourceType": "module"
108115
},
109-
"plugins": [
110-
"@typescript-eslint",
111-
"notice",
112-
"@spectrum-web-components",
113-
"import",
114-
"require-extensions"
115-
],
116+
"plugins": ["@typescript-eslint"],
116117
"root": true,
117118
"rules": {
118-
"@spectrum-web-components/prevent-argument-names": [
119-
"error",
120-
["e", "ev", "evt", "err"]
121-
],
122-
"curly": ["error", "all"],
123-
"import/extensions": [
124-
"error",
125-
"ignorePackages",
126-
{
127-
"ts": "never"
128-
}
129-
],
130-
"import/prefer-default-export": "off",
131-
"lit-a11y/click-events-have-key-events": [
132-
"error",
133-
{
134-
"allowList": [
135-
"sp-button",
136-
"sp-action-button",
137-
"sp-checkbox",
138-
"sp-radio",
139-
"sp-switch",
140-
"sp-menu-item",
141-
"sp-clear-button",
142-
"sp-underlay"
143-
]
144-
}
145-
],
146119
"no-console": [
147120
"error",
148121
{
149122
"allow": ["warn", "error"]
150123
}
151124
],
152-
"no-debugger": 2,
153-
"notice/notice": [
154-
"error",
155-
{
156-
"mustMatch": "Copyright [0-9]{0,4} Adobe. All rights reserved.",
157-
"templateFile": "config/license.js"
158-
}
159-
],
160-
"sort-imports": [
161-
"error",
162-
{
163-
"allowSeparatedGroups": false,
164-
"ignoreCase": true,
165-
"ignoreDeclarationSort": true,
166-
"ignoreMemberSort": false
167-
}
168-
]
125+
"no-debugger": 2
169126
}
170127
}

.gitignore

Lines changed: 77 additions & 48 deletions
Original file line numberDiff line numberDiff line change
@@ -28,37 +28,55 @@ custom-elements.json
2828
!packages/icons-workflow/bin/build.js
2929
!packages/icons-workflow/src/DefaultIcon.ts
3030

31-
packages/*/src/**/*.css.js
32-
packages/*/custom-elements.json
33-
packages/**/*.js
34-
packages/**/*.js.map
35-
packages/**/*.d.ts
36-
packages/**/*.test-vrt.ts
37-
!packages/**/*/spectrum-config.js
38-
!packages/**/*/spectrum-config.v1.js
39-
!packages/*/test/global.d.ts
40-
!packages/*/global.d.ts
41-
!packages/*/local.d.ts
31+
1st-gen/packages/*/src/**/*.css.js
32+
1st-gen/packages/*/src/**/*.css.js.map
33+
1st-gen/packages/*/custom-elements.json
34+
1st-gen/packages/**/*.js
35+
1st-gen/packages/**/*.js.map
36+
1st-gen/packages/**/*.dev.js
37+
1st-gen/packages/**/*.dev.js.map
38+
1st-gen/packages/**/*.d.ts
39+
1st-gen/packages/**/*.test-vrt.ts
40+
!1st-gen/packages/**/*/spectrum-config.js
41+
!1st-gen/packages/**/*/spectrum-config.v1.js
42+
!1st-gen/packages/*/test/global.d.ts
43+
!1st-gen/packages/*/global.d.ts
44+
!1st-gen/packages/*/local.d.ts
4245

4346
react
44-
45-
projects/**/*.js
46-
projects/**/*.js.map
47-
projects/**/*.d.ts
48-
!projects/*/global.d.ts
49-
50-
tools/*/src/**/*.css.js
51-
tools/*/custom-elements.json
52-
tools/**/*.js
53-
tools/**/*.js.map
54-
tools/**/*.d.ts
55-
tools/**/*.test-vrt.ts
56-
!tools/**/*/spectrum-config.js
57-
!tools/*/test/global.d.ts
58-
!tools/*/global.d.ts
59-
!tools/*/local.d.ts
60-
!tools/base/src/version.js
61-
!tools/base/src/version.d.ts
47+
1st-gen/react
48+
49+
1st-gen/projects/**/*.js
50+
1st-gen/projects/**/*.js.map
51+
1st-gen/projects/**/*.dev.js
52+
1st-gen/projects/**/*.dev.js.map
53+
1st-gen/projects/**/*.d.ts
54+
!1st-gen/projects/*/global.d.ts
55+
!1st-gen/projects/*/src/global.d.ts
56+
!1st-gen/projects/documentation/src/utils/*.js
57+
!1st-gen/projects/documentation/rollup.config.js
58+
!1st-gen/projects/documentation/vite.config.js
59+
!1st-gen/projects/documentation/content/serviceWorker.js
60+
!1st-gen/projects/example-project-rollup/rollup.config.js
61+
!1st-gen/projects/example-project-webpack/src/index.js
62+
!1st-gen/projects/example-project-webpack/webpack.config.js
63+
!1st-gen/projects/templates/plopfile.js
64+
65+
1st-gen/tools/*/src/**/*.css.js
66+
1st-gen/tools/*/src/**/*.css.js.map
67+
1st-gen/tools/*/custom-elements.json
68+
1st-gen/tools/**/*.js
69+
1st-gen/tools/**/*.js.map
70+
1st-gen/tools/**/*.dev.js
71+
1st-gen/tools/**/*.dev.js.map
72+
1st-gen/tools/**/*.d.ts
73+
1st-gen/tools/**/*.test-vrt.ts
74+
!1st-gen/tools/**/*/spectrum-config.js
75+
!1st-gen/tools/*/test/global.d.ts
76+
!1st-gen/tools/*/global.d.ts
77+
!1st-gen/tools/*/local.d.ts
78+
!1st-gen/tools/base/src/version.js
79+
!1st-gen/tools/base/src/version.d.ts
6280

6381
# cache directories
6482
.wireit
@@ -72,30 +90,41 @@ stats.html
7290
*.tsbuildinfo
7391

7492
# built css assets
75-
packages/**/*.css.ts
76-
projects/**/*.css.ts
77-
tools/**/*.css.ts
78-
styles/**/*.css.ts
79-
80-
# barebones assets
81-
first-gen/*
82-
second-gen/*
93+
1st-gen/packages/**/*.css.ts
94+
1st-gen/projects/**/*.css.ts
95+
1st-gen/tools/**/*.css.ts
96+
1st-gen/styles/**/*.css.ts
8397

8498
# test assets
8599
TESTS.xml
86100
test-results.xml
87-
test/benchmark/cli.cjs
88-
test/visual/review/
89-
test/visual/screenshots-baseline/
90-
test/visual/screenshots-actual/
91-
test/visual/screenshots-current/
92-
test/visual/src/data.json
93-
test/**/*.js
94-
test/**/*.js.map
95-
test/**/*.d.ts
96-
!test/visual/**/*.js
97-
test/visual/test.js
101+
1st-gen/test/benchmark/cli.cjs
102+
1st-gen/test/visual/review/
103+
1st-gen/test/visual/screenshots-baseline/
104+
1st-gen/test/visual/screenshots-actual/
105+
1st-gen/test/visual/screenshots-current/
106+
1st-gen/test/visual/src/data.json
107+
1st-gen/test/**/*.js
108+
1st-gen/test/**/*.js.map
109+
1st-gen/test/**/*.d.ts
110+
!1st-gen/test/visual/**/*.js
111+
1st-gen/test/visual/test.js
98112
test-results
113+
2nd-gen/packages/swc/playwright-report
114+
115+
# lingering directories from before monorepo
116+
packages/*
117+
projects/*
118+
tools/*
119+
test/*
120+
121+
# vitest browser test screenshots
122+
**/__screenshots__/
123+
124+
# second gen build artifacts
125+
2nd-gen/packages/*/dist/
126+
2nd-gen/packages/*/custom-elements.json
127+
2nd-gen/packages/*/storybook-static
99128

100129
# npm assets
101130
node_modules

.prettierignore

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
1-
__snapshots__
2-
node_modules
3-
*.hbs
1+
# Documentation infrastructure scripts maintained by AI agents
2+
CONTRIBUTOR-DOCS/
3+

.prettierrc.yaml

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,3 @@ singleQuote: true
55
trailingComma: es5
66
bracketSpacing: true
77
arrowParens: always
8-
htmlWhitespaceSensitivity: ignore
9-
overrides:
10-
- files: '*.css'
11-
options:
12-
printWidth: 500
13-
singleQuote: false

.stylelintignore

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,11 @@
11
node_modules
2-
task
2+
HEADER
3+
1st-gen/node_modules
4+
2nd-gen/node_modules
5+
1st-gen/task
6+
2nd-gen/task
37
*.*
48
!*.css
5-
projects/example-project/dist
6-
tools/styles
7-
spectrum-*.css
9+
1st-gen/projects/example-project/dist
10+
1st-gen/tools/styles
11+
1st-gen/spectrum-*.css

.stylelintrc.json

100755100644
Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,13 @@
11
{
22
"plugins": ["stylelint-header"],
33
"extends": [],
4-
"rules": {
5-
"header/header": ["config/license.js", {}]
6-
},
4+
"rules": {},
75
"overrides": [
86
{
97
"files": ["**/*.css"],
108
"extends": ["stylelint-config-standard"],
119
"rules": {
12-
"header/header": ["config/license.js", {}],
10+
"header/header": ["./HEADER", {}],
1311
"length-zero-no-unit": [
1412
true,
1513
{ "ignore": "custom-properties" }

.vscode/settings.json

Lines changed: 27 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,33 @@
11
{
22
"files.exclude": {
3-
"**/*.css.ts": { "when": "$(basename)" },
4-
"packages/**/*.js.map": true,
5-
"packages/**/*.js": { "when": "$(basename).ts" },
6-
"packages/**/*.dev.js": { "when": "$(basename).js" },
7-
"packages/**/*.d.ts": { "when": "$(basename).ts" },
8-
"tools/**/*.js.map": true,
9-
"tools/**/*.js": { "when": "$(basename).ts" },
10-
"tools/**/*.dev.js": { "when": "$(basename).js" },
11-
"tools/**/*.d.ts": { "when": "$(basename).ts" },
3+
"**/*.css.ts": {
4+
"when": "$(basename)"
5+
},
6+
"1st-gen/packages/**/*.js.map": true,
7+
"1st-gen/packages/**/*.js": {
8+
"when": "$(basename).ts"
9+
},
10+
"1st-gen/packages/**/*.dev.js": {
11+
"when": "$(basename).js"
12+
},
13+
"1st-gen/packages/**/*.d.ts": {
14+
"when": "$(basename).ts"
15+
},
16+
"1st-gen/tools/**/*.js.map": true,
17+
"1st-gen/tools/**/*.js": {
18+
"when": "$(basename).ts"
19+
},
20+
"1st-gen/tools/**/*.dev.js": {
21+
"when": "$(basename).js"
22+
},
23+
"1st-gen/tools/**/*.d.ts": {
24+
"when": "$(basename).ts"
25+
},
1226
"**/*.test-vrt.ts": true,
13-
"first-gen/**": true,
14-
"second-gen/**": true
27+
"projects/**": true,
28+
"tools/**": true,
29+
"test/**": true,
30+
"packages/**": true
1531
},
1632
"typescript.tsdk": "node_modules/typescript/lib",
1733
"lit-plugin.strict": true,

0 commit comments

Comments
 (0)