/
package.json
234 lines (234 loc) · 8.26 KB
/
package.json
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
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
{
"name": "@pybricks/pybricks-code",
"version": "2.3.0-beta.1",
"license": "MIT",
"author": "The Pybricks Authors",
"repository": {
"type": "git",
"url": "https://github.com/pybricks/pybricks-code"
},
"dependencies": {
"@babel/core": "^7.23.9",
"@blueprintjs/core": "^5.8.2",
"@pmmmwh/react-refresh-webpack-plugin": "^0.5.11",
"@pybricks/firmware": "7.10.0",
"@pybricks/ide-docs": "2.14.0",
"@pybricks/images": "^1.3.0",
"@pybricks/jedi": "1.12.0",
"@pybricks/mpy-cross-v5": "^2.0.0",
"@pybricks/mpy-cross-v6": "^2.0.0",
"@pybricks/python-program-analysis": "^2.0.0",
"@pyodide/webpack-plugin": "^1.3.2",
"@reduxjs/toolkit": "^1.9.7",
"@shopify/react-i18n": "^7.8.0",
"@svgr/webpack": "^8.1.0",
"@testing-library/dom": "^9.3.4",
"@testing-library/jest-dom": "^6.4.0",
"@testing-library/react": "^14.0.0",
"@testing-library/user-event": "^14.5.2",
"@types/file-saver": "^2.0.7",
"@types/jest": "^29.5.11",
"@types/node": "^18.19.14",
"@types/react": "^18.2.47",
"@types/react-dom": "^18.2.18",
"@types/react-splitter-layout": "^3.0.5",
"@types/react-transition-group": "^4.4.10",
"@types/redux-logger": "^3.0.12",
"@types/semver": "^7.5.6",
"@types/w3c-web-usb": "^1.0.10",
"@types/web-bluetooth": "^0.0.20",
"@types/web-locks-api": "^0.0.5",
"@types/wicg-file-system-access": "^2023.10.4",
"@types/zen-push": "^0.1.4",
"babel-jest": "^29.7.0",
"babel-loader": "^9.1.3",
"babel-plugin-macros": "^3.0.1",
"babel-plugin-named-asset-import": "^0.3.8",
"babel-plugin-transform-import-meta": "^2.2.1",
"babel-preset-react-app": "^10.0.1",
"bfj": "^8.0.0",
"browser-fs-access": "^0.35.0",
"browserslist": "^4.22.2",
"camelcase": "^8.0.0",
"canvas": "^2.11.2",
"case-sensitive-paths-webpack-plugin": "^2.4.0",
"copy-webpack-plugin": "^12.0.2",
"css-loader": "^6.9.1",
"css-minimizer-webpack-plugin": "^6.0.0",
"dexie": "^3.2.4",
"dexie-observable": "^4.0.0-beta.13",
"dexie-react-hooks": "^1.1.7",
"dfu": "^0.1.5",
"dotenv": "^16.4.0",
"dotenv-expand": "^10.0.0",
"fake-indexeddb": "^5.0.2",
"file-loader": "^6.2.0",
"fs-extra": "^11.2.0",
"html-webpack-plugin": "^5.6.0",
"identity-obj-proxy": "^3.0.0",
"jest": "^29.7.0",
"jest-environment-jsdom": "^29.7.0",
"jest-mock-extended": "^3.0.5",
"jest-resolve": "^29.7.0",
"jest-watch-typeahead": "^2.2.2",
"jszip": "^3.10.1",
"license-webpack-plugin": "^3.0.0",
"mini-css-extract-plugin": "^2.7.7",
"monaco-editor": "^0.45.0",
"monaco-editor-webpack-plugin": "^7.1.0",
"monaco-themes": "^0.4.4",
"mq-polyfill": "1.1.8",
"navigator.locks": "^0.8.6",
"postcss": "^8.4.33",
"postcss-flexbugs-fixes": "^5.0.2",
"postcss-loader": "^8.0.0",
"postcss-normalize": "^10.0.1",
"postcss-preset-env": "^9.3.0",
"prompts": "^2.4.2",
"prop-types": "^15.8.1",
"pyodide": "0.24.1",
"react": "^18.2.0",
"react-app-polyfill": "^3.0.0",
"react-aria": "^3.31.0",
"react-complex-tree": "^2.3.4",
"react-dev-utils": "^12.0.1",
"react-dom": "^18.2.0",
"react-dropzone": "^14.2.3",
"react-joyride": "^2.7.2",
"react-popper": "^2.3.0",
"react-redux": "^8.1.3",
"react-refresh": "^0.14.0",
"react-splitter-layout": "^4.0.0",
"redux": "^4.2.1",
"redux-logger": "^3.0.6",
"redux-saga": "^1.3.0",
"resolve": "^1.22.8",
"resolve-url-loader": "^5.0.0",
"sass": "^1.69.7",
"sass-loader": "^14.1.0",
"semver": "^7.5.4",
"source-map-explorer": "^2.5.3",
"source-map-loader": "^5.0.0",
"spdx-satisfies": "^5.0.0",
"style-loader": "^3.3.4",
"tailwindcss": "^3.4.1",
"terser-webpack-plugin": "^5.3.10",
"two.js": "^0.8.12",
"typed-redux-saga": "^1.5.0",
"typescript": "~4.9.5",
"usehooks-ts": "^2.9.1",
"user-agent-data-types": "^0.4.2",
"web-vitals": "^3.5.2",
"webpack": "^5.90.0",
"webpack-dev-server": "^4.15.1",
"webpack-manifest-plugin": "^5.0.0",
"workbox-webpack-plugin": "^7.0.0",
"xterm": "^5.4.0-beta.37",
"xterm-addon-fit": "^0.8.0",
"zen-push": "^0.3.1"
},
"scripts": {
"analyze": "source-map-explorer 'build/static/js/*.js'",
"start": "node scripts/start.js",
"build": "node scripts/build.js",
"test": "node scripts/test.js",
"coverage": "yarn test --coverage --watchAll=false",
"coverage:html": "yarn coverage --coverageReporters html",
"lint": "tsc --noEmit && eslint \"*/**/*.{js,ts,tsx}\" --quiet --fix"
},
"eslintConfig": {
"extends": "react-app"
},
"browserslist": {
"production": [
">0.2%",
"not dead",
"not op_mini all"
],
"development": [
"last 1 chrome version",
"last 1 firefox version",
"last 1 safari version"
]
},
"devDependencies": {
"@typescript-eslint/eslint-plugin": "^6.18.1",
"@typescript-eslint/parser": "^6.20.0",
"eslint": "^8.56.0",
"eslint-config-prettier": "^9.1.0",
"eslint-config-react-app": "^7.0.1",
"eslint-config-typed-fp": "^4.4.0",
"eslint-plugin-functional": "^5.0.8",
"eslint-plugin-import": "^2.29.1",
"eslint-plugin-prettier": "^5.1.2",
"eslint-plugin-react": "^7.33.2",
"eslint-plugin-total-functions": "^6.10.5",
"eslint-webpack-plugin": "^4.0.1",
"prettier": "^3.1.1"
},
"packageManager": "yarn@3.3.0",
"resolutions": {
"mq-polyfill@1.1.8": "patch:mq-polyfill@npm:1.1.8#.yarn/patches/mq-polyfill-npm-1.1.8-62fe162439.patch",
"react-error-overlay": "6.0.9",
"react-dev-utils@^12.0.1": "patch:react-dev-utils@npm:12.0.1#.yarn/patches/react-dev-utils-npm-12.0.1-83ba06e3ee.patch",
"jsdom@^20.0.0": "patch:jsdom@npm%3A20.0.0#./.yarn/patches/jsdom-npm-20.0.0-9c1ad43ab8.patch",
"pyodide@0.23.0": "patch:pyodide@npm%3A0.23.0#./.yarn/patches/pyodide-npm-0.23.0-64dc9bd6f1.patch"
},
"jest": {
"roots": [
"<rootDir>/src"
],
"collectCoverageFrom": [
"src/**/*.{js,jsx,ts,tsx}",
"!src/**/*.d.ts"
],
"setupFiles": [
"react-app-polyfill/jsdom"
],
"setupFilesAfterEnv": [
"<rootDir>/src/setupTests.ts"
],
"testMatch": [
"<rootDir>/src/**/__tests__/**/*.{js,jsx,ts,tsx}",
"<rootDir>/src/**/*.{spec,test}.{js,jsx,ts,tsx}"
],
"testEnvironment": "./test/env",
"transform": {
"^.+\\.(js|jsx|mjs|cjs|ts|tsx)$": "<rootDir>/config/jest/babelTransform.js",
"^.+\\.css$": "<rootDir>/config/jest/cssTransform.js",
"^(?!.*\\.(js|jsx|mjs|cjs|ts|tsx|css|json)$)": "<rootDir>/config/jest/fileTransform.mjs"
},
"transformIgnorePatterns": [
"[/\\\\]node_modules[/\\\\](?!(monaco-editor|nanoevents)[/\\\\]).+\\.(js|jsx|mjs|cjs|ts|tsx)$",
"^.+\\.module\\.(css|sass|scss)$"
],
"modulePaths": [],
"moduleNameMapper": {
"^monaco-editor$": "monaco-editor/esm/vs/editor/editor.api",
"^react-native$": "react-native-web",
"^.+\\.module\\.(css|sass|scss)$": "identity-obj-proxy"
},
"moduleFileExtensions": [
"web.js",
"js",
"web.ts",
"ts",
"web.tsx",
"tsx",
"json",
"web.jsx",
"jsx",
"node"
],
"watchPlugins": [
"jest-watch-typeahead/filename",
"jest-watch-typeahead/testname"
],
"resetMocks": true
},
"babel": {
"presets": [
"react-app"
]
}
}