Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

WIP: Implement client side rendering #483

Merged
merged 478 commits into from
Nov 4, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
478 commits
Select commit Hold shift + click to select a range
6ef15f1
Introduce the URL formatter.
johnbillion May 21, 2021
1368ac4
Add a warning icon for PHP warnings.
johnbillion May 21, 2021
d2c46cf
More URL query string formatting.
johnbillion May 21, 2021
d6c2cf0
This is code.
johnbillion May 21, 2021
92714c4
Merge branch 'develop' into client-side-rendering
johnbillion Dec 27, 2021
8453293
Syntax fix.
johnbillion Dec 27, 2021
7fe192a
Docs.
johnbillion Dec 27, 2021
c76c6d7
Fixes from the merge.
johnbillion Dec 27, 2021
20a747e
Update some build tools.
johnbillion Dec 27, 2021
b4570fd
More package updates.
johnbillion Dec 27, 2021
30e0643
Merge branch 'develop' into client-side-rendering
johnbillion Jan 14, 2022
8214a1c
Update this.
johnbillion Jan 18, 2022
854e638
Unhide these for now so they're obvious.
johnbillion Jan 18, 2022
0eeae23
Merge branch 'develop' into client-side-rendering
johnbillion Feb 12, 2022
10a4b25
More properties for a stack trace frame.
johnbillion Feb 13, 2022
c2adb42
Correct this property.
johnbillion Feb 13, 2022
fa5d58c
Avoid mutating the stack trace.
johnbillion Feb 13, 2022
efc6ac4
Merge branch 'develop' into client-side-rendering
johnbillion Jan 2, 2023
d58d916
Reintroduce the build scripts.
johnbillion Jan 2, 2023
69de66e
This isn't needed.
johnbillion Jan 2, 2023
e3d1396
Add some new data properties.
johnbillion Jan 2, 2023
ef19347
Merge branch 'develop' into client-side-rendering
johnbillion Jan 23, 2023
279ed46
Drop back down to Node 16.
johnbillion Jan 23, 2023
ff35475
Update the package lock.
johnbillion Jan 23, 2023
4a4c8e2
Update the classnames imports.
johnbillion Jan 23, 2023
da5a756
Account for no timing data being present.
johnbillion Jan 23, 2023
23f81fd
Give these fragments keys.
johnbillion Jan 23, 2023
f5eb59f
Update the output for the admin screen panel.
johnbillion Jan 24, 2023
d094360
Updates to the asset handling.
johnbillion Jan 24, 2023
4d3d36f
More improvements to asset handling.
johnbillion Jan 25, 2023
5d75cb8
Update the output for the languages panel.
johnbillion Jan 25, 2023
548f6cf
More tweaks to the admin screen output.
johnbillion Jan 25, 2023
4816368
Add handling for the situation when no JS or CSS files are enqueued.
johnbillion Jan 25, 2023
a44ac47
Display a warning for missing dependencies.
johnbillion Jan 25, 2023
3bd8b5e
Simplify this logic.
johnbillion Jan 25, 2023
ce12de9
Include the "missing" suffix.
johnbillion Jan 25, 2023
6a5c0bb
Add another warning icon when needed.
johnbillion Jan 25, 2023
c1f5e79
Display the asset host port when necessary.
johnbillion Jan 25, 2023
b74a4d6
Add a warning class when an asset contains a warning.
johnbillion Jan 26, 2023
1ec4574
Complete the error output for assets.
johnbillion Jan 27, 2023
247fb0f
Add support for inner blocks.
johnbillion Jan 27, 2023
a9dd290
Can't use HTML here.
johnbillion Jan 27, 2023
1498fb3
Show the args for capability checks.
johnbillion Jan 27, 2023
613335e
Shorter syntax.
johnbillion Jan 27, 2023
ad2ef1e
Merge branch 'develop' into client-side-rendering
johnbillion Apr 11, 2023
04e017e
These are no longer used.
johnbillion Apr 11, 2023
0c5c16e
Update this output.
johnbillion Apr 11, 2023
44c7a43
Add an error boundary around each panel.
johnbillion Apr 11, 2023
b563923
Tidy this up.
johnbillion Apr 11, 2023
2468582
Update the package files.
johnbillion Apr 11, 2023
d206f29
Update the database queries panel.
johnbillion Apr 11, 2023
410e25d
Simplifying some database query data.
johnbillion Apr 11, 2023
9f2993d
Kill the HTTP API response body before it's stored in the collector.
johnbillion Apr 11, 2023
fb0d22a
Use the new icon method.
johnbillion Apr 11, 2023
a21427e
Layout fixes.
johnbillion Apr 11, 2023
e698896
Sorting.
johnbillion Apr 11, 2023
506f2d7
Introduce JSON schema definitions for the DTOs.
johnbillion Apr 13, 2023
cdab99b
Start using the TypeScript definitions for data.
johnbillion Apr 14, 2023
acac422
None of these are nullable.
johnbillion Apr 15, 2023
c2c28b0
Add a schema for assets.
johnbillion Apr 15, 2023
b44e336
Add a schema for the cache.
johnbillion Apr 15, 2023
17e25c7
Update the banner comment.
johnbillion Apr 16, 2023
441564b
Make more use of recursive calls for type resolution.
johnbillion Apr 16, 2023
4463c76
Add a schema for user capability checks.
johnbillion Apr 16, 2023
997a80e
Add a schema for conditionals.
johnbillion Apr 16, 2023
359020d
Add a schema for database query callers.
johnbillion Apr 16, 2023
d328682
Add a schema for database query components.
johnbillion Apr 16, 2023
6d3c2bb
Add a schema for duplicate database queries.
johnbillion Apr 16, 2023
f767ff6
Add a schema for database queries.
johnbillion Apr 16, 2023
99cc8b8
I'll come back to this.
johnbillion Apr 19, 2023
6382d32
Fix the multiple type listings.
johnbillion Apr 19, 2023
113a4ac
Implement the indentation.
johnbillion Apr 19, 2023
2864709
Add a schema for the environment.
johnbillion Apr 19, 2023
7a056e5
More adjustments.
johnbillion Apr 19, 2023
db97b30
Update the Environment panel.
johnbillion Apr 19, 2023
28064a5
More updates to the Environment panel.
johnbillion Apr 19, 2023
e71078a
Add a missing field.
johnbillion Apr 19, 2023
faff431
Add a schema for hooks.
johnbillion Apr 19, 2023
6c27232
This doesn't have additional properties.
johnbillion Apr 19, 2023
9ab2f31
Add a schema for HTTP API requests.
johnbillion Apr 19, 2023
1208d08
Improve the int/float handling.
johnbillion Apr 20, 2023
71f1a11
Improve this header.
johnbillion Apr 20, 2023
ae58ecd
Support for enums.
johnbillion Apr 20, 2023
2f19346
Add a schema for languages.
johnbillion Apr 20, 2023
01507d3
Add a schema for the logger.
johnbillion Apr 22, 2023
8a54092
Add a schema for Multisite.
johnbillion Apr 22, 2023
f7331bb
Add a schema for the overview.
johnbillion Apr 22, 2023
110c4c3
Add a schema for PHP errors.
johnbillion Apr 22, 2023
dd2748f
Add a schema for the raw request and response.
johnbillion Apr 22, 2023
4d981da
Add a schema for a redirect.
johnbillion Apr 22, 2023
d9151dc
Add a schema for the request.
johnbillion Apr 22, 2023
c837589
Support properties with no type declared.
johnbillion Apr 22, 2023
95829d0
Support anyOf and oneOf.
johnbillion Apr 22, 2023
a4c43b1
Add a schema for timing data.
johnbillion Apr 22, 2023
2875e7d
Add a schema for transients.
johnbillion Apr 22, 2023
dc69e93
Update wp-json-schemas and wp-types.
johnbillion Apr 23, 2023
508a0ed
Add a schema for theme data.
johnbillion Apr 23, 2023
0e5a1ae
Add the database queries definition to the schema.
johnbillion Apr 23, 2023
dd6ca95
More implementation into the panels.
johnbillion Apr 23, 2023
84b14ba
Better data for the request.
johnbillion Apr 23, 2023
30ec1ff
More implementation into the panels.
johnbillion Apr 23, 2023
90e1623
Move the data schemas into a subdirectory.
johnbillion Apr 23, 2023
84fdedd
Add a schema for `QM_Component`.
johnbillion Apr 23, 2023
8590b5f
Tidying up.
johnbillion Apr 23, 2023
f955c9b
Split this up a bit.
johnbillion Apr 23, 2023
cd59f24
Only parse JSON files.
johnbillion Apr 23, 2023
3e78b37
Add a schema for stack trace frames.
johnbillion Apr 23, 2023
9a49429
Build the schemas when building the build.
johnbillion Apr 23, 2023
19c891c
Oops.
johnbillion Apr 23, 2023
0e9cc1d
More schemas for stack trace data.
johnbillion Apr 23, 2023
f4a4a49
More structure for timing data.
johnbillion Apr 23, 2023
d5226e3
Fixing up the request data.
johnbillion Apr 23, 2023
212d7fa
Add support for definition reference resolution.
johnbillion Apr 24, 2023
360f380
More structure for PHP error data.
johnbillion Apr 24, 2023
1b9b551
This is a frame item.
johnbillion Apr 24, 2023
50d1ca6
These custom notations should take preference.
johnbillion Apr 24, 2023
846491a
Merge branch 'develop' into client-side-rendering
johnbillion May 1, 2023
cae57c7
Merge branch 'client-side-rendering' into json-schemas
johnbillion May 1, 2023
65266e3
This is no longer present.
johnbillion May 1, 2023
889159b
Move everything in the schema up a level and add the abstract data cl…
johnbillion May 1, 2023
85a2c03
Get more specific with the shape of database query data.
johnbillion May 1, 2023
fe4b9cd
Merge branch 'develop' into client-side-rendering
johnbillion Sep 25, 2023
03b0a6d
Merge branch 'client-side-rendering' into json-schemas
johnbillion Sep 25, 2023
ce07082
This is a return tag.
johnbillion Sep 25, 2023
76b17d7
Add a schema for the Doing it Wrong data.
johnbillion Sep 25, 2023
77ca171
Update schemas with recent changes in the develop branch.
johnbillion Sep 25, 2023
ab6a26a
Everything is legacy.
johnbillion Oct 8, 2023
39f7c9f
Fix the type for the missing dependencies list.
johnbillion Oct 8, 2023
04cb398
Be more strict about these inline type declarations.
johnbillion Oct 8, 2023
2ba4da0
This has a known shape now.
johnbillion Oct 8, 2023
b5a1d84
Document the globals.
johnbillion Oct 8, 2023
6b44575
Fix the multisite data structure.
johnbillion Oct 8, 2023
6a965e8
Reference the source schema in generated DTOs.
johnbillion Oct 8, 2023
6013937
Partially update the database queries data schema.
johnbillion Oct 8, 2023
5b6077c
Build the schemas during the tests.
johnbillion Oct 12, 2023
e8589f7
These elements are optional.
johnbillion Oct 12, 2023
e0a956f
Replace the manual class comments with more schema definitions.
johnbillion Oct 14, 2023
0ba683f
Move this into a type for clarity.
johnbillion Oct 14, 2023
8055ee7
Fix up some more definitions for query data.
johnbillion Oct 17, 2023
b2633f3
Remove unnecessary manual typing.
johnbillion Oct 17, 2023
f758281
This property may not exist.
johnbillion Oct 17, 2023
b4b6f46
This property may not exist.
johnbillion Oct 17, 2023
36b814f
Fix up the queried object data.
johnbillion Oct 17, 2023
88738e0
PHP 7 compatibility.
johnbillion Oct 17, 2023
de05ed9
Add support for descriptions.
johnbillion Oct 17, 2023
b20139e
More updates to HTTP and database query structures.
johnbillion Oct 18, 2023
b2ef786
Merge branch 'develop' into client-side-rendering
johnbillion Oct 19, 2023
c0e1b84
This might not be set.
johnbillion Oct 19, 2023
3a9f733
Show the full error information for a panel rendering error.
johnbillion Oct 19, 2023
d5ed833
Fix the submenus.
johnbillion Oct 19, 2023
46f69ac
Switch to a generic for panel props.
johnbillion Oct 19, 2023
a19b398
Simplify some logic.
johnbillion Oct 20, 2023
b969932
Update the list of editors.
johnbillion Oct 20, 2023
cfab254
Update these panel wrappers.
johnbillion Oct 20, 2023
df48cbb
Remove some redundant server-side editor code.
johnbillion Oct 20, 2023
15e36d9
Cleaning up and todos.
johnbillion Oct 20, 2023
2592220
Things are getting serious.
johnbillion Oct 20, 2023
78fbed7
Remove all the broken JavaScript handling.
johnbillion Oct 20, 2023
fcfbe0a
Bit more tidying up.
johnbillion Oct 20, 2023
0d37e69
Update the package lock version.
johnbillion Oct 20, 2023
561e830
Don't polyfill fetch.
johnbillion Oct 20, 2023
b6cf7a0
Update to React 18.
johnbillion Oct 20, 2023
83f0f50
Get rid of this plugin query vars handling. Maybe it will come back a…
johnbillion Oct 20, 2023
c9507cc
This supports child nodes too.
johnbillion Oct 20, 2023
72d098a
Document some HTTP API request arguments.
johnbillion Oct 20, 2023
cfd432d
More error handling for queries.
johnbillion Oct 20, 2023
797df93
These prefixes are no longer used.
johnbillion Oct 20, 2023
bf5fc01
Formatting improvements.
johnbillion Oct 20, 2023
ae5f6b9
These are numbers.
johnbillion Oct 20, 2023
98ef52d
Standardise the caller data for queries.
johnbillion Oct 21, 2023
78b9a41
`wp_json_encode()` is needed here to handle non-UTF8 data.
johnbillion Oct 22, 2023
55f3c4f
Switch back to storing the trace object in collected data for consist…
johnbillion Oct 23, 2023
2fd61d1
Serialize a backtrace to its component and frames.
johnbillion Oct 23, 2023
78dd9a9
Update this output.
johnbillion Oct 23, 2023
3ac1df4
Add a component for displaying an approximate size.
johnbillion Oct 23, 2023
931ccdb
No need to export any of these.
johnbillion Oct 23, 2023
fb3b969
Remove some unnecessary fragments.
johnbillion Oct 23, 2023
832d89e
Implement a proper toggler for call stacks.
johnbillion Oct 23, 2023
e03bfc3
Tidy up some exports.
johnbillion Oct 23, 2023
3c9c2b1
These fragments are actually needed.
johnbillion Oct 23, 2023
66ef78f
Move all Sass variables not related to colour into custom properties.
johnbillion Oct 24, 2023
362c17d
Cut down the dependencies and simplify the build process. I'll come b…
johnbillion Oct 25, 2023
152727d
Move the localStorage handling out of the components.
johnbillion Oct 25, 2023
9520845
Rename this for clarity.
johnbillion Oct 25, 2023
3aabdf4
Improve the warning component.
johnbillion Oct 25, 2023
5f853d1
Boop.
johnbillion Oct 25, 2023
c358a8b
Start combining the Sass files.
johnbillion Oct 25, 2023
5476239
Remove this.
johnbillion Oct 25, 2023
e476060
Rename the main stylesheet.
johnbillion Oct 25, 2023
cea4609
Remove usage of darken and lighten.
johnbillion Oct 25, 2023
9165561
Respect the colour scheme preference for light/dark.
johnbillion Oct 25, 2023
8aa1810
Remove all Sass variables.
johnbillion Oct 25, 2023
6048b53
Let's see if we can switch this to vanilla nested CSS.
johnbillion Oct 25, 2023
91f6af0
Remove redundant functionality related to building the CSS.
johnbillion Oct 25, 2023
ed7487e
Apparently I went overkill with the ampersands for element names.
johnbillion Oct 25, 2023
53588bf
No more CSS compilation.
johnbillion Oct 25, 2023
de94d2f
Remove even more surplus ampersands.
johnbillion Oct 25, 2023
52167f1
More removals.
johnbillion Oct 25, 2023
06c90e6
Highlight the whole row when there's an HTTP API error.
johnbillion Oct 25, 2023
c1e4a74
Merge branch 'develop' into client-side-rendering
johnbillion Oct 25, 2023
c8e4a79
Remove a bunch more CSS and JS that we'll no longer be using.
johnbillion Oct 25, 2023
2f8ec1d
Add the watch script back in.
johnbillion Oct 25, 2023
d1472c9
Convert most class components to functions.
johnbillion Oct 27, 2023
079f1c1
This isn't used.
johnbillion Oct 27, 2023
823dea8
Update the package lock file.
johnbillion Oct 27, 2023
09d9480
Various tweaks.
johnbillion Oct 27, 2023
9c9e087
Indentation.
johnbillion Oct 27, 2023
17593c3
Remove some unnecessary label strings.
johnbillion Oct 27, 2023
e81c00c
No need for a label as a prop.
johnbillion Oct 27, 2023
cb4bcd5
Add the Doing It Wrong panel.
johnbillion Oct 27, 2023
2aee620
No need to pass this label as a prop.
johnbillion Oct 27, 2023
ff87235
Need to come back to this.
johnbillion Oct 27, 2023
5e35479
More red.
johnbillion Oct 27, 2023
7e7f2c8
No need to prefix this component name.
johnbillion Oct 27, 2023
437481a
Add the Multisite panel.
johnbillion Oct 27, 2023
ec6a303
Add notices to the logs and timings panels.
johnbillion Oct 27, 2023
029a915
Merge branch 'develop' into client-side-rendering
johnbillion Oct 31, 2023
f89a78d
Docs.
johnbillion Oct 31, 2023
5b71546
Implement the editor selector and colour scheme as context stored in …
johnbillion Oct 31, 2023
ff64b51
No need for the Queries by Caller and Queries by Component panels to …
johnbillion Oct 31, 2023
f0bfc7d
Misc tweaks.
johnbillion Oct 31, 2023
e5bca16
Scrap the front end handling of errors within Ajax requests for now.
johnbillion Oct 31, 2023
cffc987
Remove server-side calculation of parts of names.
johnbillion Oct 31, 2023
39d2118
These are no longer used.
johnbillion Oct 31, 2023
01e67ee
Introduce a more declarative table component.
johnbillion Nov 2, 2023
52cb196
Handle the table cell at the table level.
johnbillion Nov 2, 2023
42f0f8a
Simplify the tabular panel.
johnbillion Nov 2, 2023
7124132
Restructure the assets panels to use the declarative table.
johnbillion Nov 4, 2023
720fef4
Restructure the PHP error panels to use the declarative table.
johnbillion Nov 4, 2023
c98321c
More panel restructuring.
johnbillion Nov 4, 2023
09a0e4b
Move the Multisite panel over to the declarative table.
johnbillion Nov 4, 2023
e3d3b2d
Move the HTTP API panel over to the declarative table.
johnbillion Nov 4, 2023
a45d828
Updated data types.
johnbillion Nov 4, 2023
130f91e
This is a panel.
johnbillion Nov 4, 2023
6ba7ffd
Move the Logs panel over to the declarative table.
johnbillion Nov 4, 2023
3d27b18
Move the Capability Checks panel over to the declarative table.
johnbillion Nov 4, 2023
0fc2dc8
Some tidying up.
johnbillion Nov 4, 2023
7456fc8
Move the Transients panel over to the declarative table.
johnbillion Nov 4, 2023
461eb57
Move the Timings panel over to the declarative table.
johnbillion Nov 4, 2023
6ca1928
This doesn't exist yet.
johnbillion Nov 4, 2023
7dc5939
Improve the non-tabular panel structure.
johnbillion Nov 4, 2023
d686a76
More adjustments.
johnbillion Nov 4, 2023
9e8d58e
Prepare the panel footer for automatically showing the current count …
johnbillion Nov 4, 2023
5710576
Remove this for now because I can't figure out the weak type handling.
johnbillion Nov 4, 2023
d7ae143
Don't need this ID any more.
johnbillion Nov 4, 2023
a3fd28e
Add a generic panel so we can get the Hooks panel working again for now.
johnbillion Nov 4, 2023
dcc5d16
Temporary fixes for the database panels.
johnbillion Nov 4, 2023
78c86cc
Temporary fixes for the blocks panel.
johnbillion Nov 4, 2023
a41be9b
Fix the header output for PHP errors.
johnbillion Nov 4, 2023
6c0d836
Merge branch 'develop' into client-side-rendering
johnbillion Nov 4, 2023
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions .babelrc
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
{
"presets": [
"@babel/preset-env", "@babel/preset-react"
]
}
36 changes: 36 additions & 0 deletions .eslintrc.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
{
"parser": "@typescript-eslint/parser",
"extends": [
"@humanmade",
"plugin:@typescript-eslint/recommended"
],
"plugins": [
"@typescript-eslint"
],
"rules": {
// @TODO re-enable this:
"jsdoc/require-jsdoc": "off",

// @TODO re-enable this:
"@typescript-eslint/explicit-module-boundary-types": "off",

// @TODO re-enable this:
"@typescript-eslint/no-explicit-any": "off",

// No thanks.
"arrow-parens": "off",

// Superseded by TypeScript.
"jsdoc/require-param": "off",
"jsdoc/require-param-type": "off",
"jsdoc/require-returns": "off",
"no-unused-vars": "off",
"no-use-before-define": "off"
},
"ignorePatterns": [
"build/**",
"node_modules/**",
"tests/wordpress/**",
"vendor/**"
]
}
2 changes: 0 additions & 2 deletions .gitattributes
Original file line number Diff line number Diff line change
Expand Up @@ -15,8 +15,6 @@
/.gitignore export-ignore
/.npmrc export-ignore
/.nvmrc export-ignore
/assets/*.map export-ignore
/assets/*.scss export-ignore
/codeception.dist.yml export-ignore
/composer.lock export-ignore
/CODE_OF_CONDUCT.md export-ignore
Expand Down
4 changes: 2 additions & 2 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
/assets/*.css
/assets/*.map
/composer.lock
/docs/_site
/docs/Gemfile
/docs/Gemfile.lock
/vendor
/node_modules
/package-lock.json
/build
/tests/_output/
/tests/_support/_generated
/tests/cache
2 changes: 1 addition & 1 deletion .nvmrc
Original file line number Diff line number Diff line change
@@ -1 +1 @@
18
20
4 changes: 2 additions & 2 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -43,11 +43,11 @@ To run the tests, you'll also need:

## Building the Assets

To compile the Sass files into CSS:
To compile the React components:

npm run build

To start the file watcher which will watch for changes and automatically compile the Sass:
To start the file watcher which will watch for changes and automatically compile the React components:

npm run watch

Expand Down
152 changes: 0 additions & 152 deletions assets/_colours-dark.scss

This file was deleted.

121 changes: 0 additions & 121 deletions assets/_colours-default.scss

This file was deleted.

Loading
Loading