jjpwrgem 0.2.0 → 0.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +35 -0
- package/npm-shrinkwrap.json +2 -2
- package/package.json +2 -2
- package/readme.md +44 -33
package/CHANGELOG.md
CHANGED
|
@@ -7,6 +7,41 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
7
7
|
|
|
8
8
|
## [Unreleased]
|
|
9
9
|
|
|
10
|
+
## [0.3.0](https://github.com/20jasper/JJPWRGEM/releases/tag/jjpwrgem-v0.3.0) - 2025-12-08
|
|
11
|
+
|
|
12
|
+
### Added
|
|
13
|
+
|
|
14
|
+
- axolotl logo in version screen
|
|
15
|
+
- consistent key ordering
|
|
16
|
+
|
|
17
|
+
### Deprecated
|
|
18
|
+
|
|
19
|
+
- removed help subcommand
|
|
20
|
+
|
|
21
|
+
### Documentation
|
|
22
|
+
|
|
23
|
+
- autogenerate examples and add examples to subcommands
|
|
24
|
+
- update readme with correct command
|
|
25
|
+
- add xtask to generate readmes
|
|
26
|
+
|
|
27
|
+
### Performance
|
|
28
|
+
|
|
29
|
+
- TokenStream iterator instead of collecting into intermediary Vec
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
## [0.2.2](https://github.com/20jasper/JJPWRGEM/releases/tag/jjpwrgem-v0.2.2) - 2025-12-07
|
|
33
|
+
|
|
34
|
+
### Documentation
|
|
35
|
+
|
|
36
|
+
- add mise installer steps
|
|
37
|
+
- update readme with new command format and installation instructions. removes extra notes
|
|
38
|
+
|
|
39
|
+
### Performance
|
|
40
|
+
|
|
41
|
+
- join_into utility to declaritively avoid allocating delimiter strings
|
|
42
|
+
- write to single buffer instead of allocating buffer per JSON value
|
|
43
|
+
- don't use anstream for content without ansi
|
|
44
|
+
|
|
10
45
|
## [0.2.0](https://github.com/20jasper/JJPWRGEM/releases/tag/jjpwrgem-v0.2.0) - 2025-12-06
|
|
11
46
|
|
|
12
47
|
### Added
|
package/npm-shrinkwrap.json
CHANGED
|
@@ -23,7 +23,7 @@
|
|
|
23
23
|
"hasInstallScript": true,
|
|
24
24
|
"license": "MIT",
|
|
25
25
|
"name": "jjpwrgem",
|
|
26
|
-
"version": "0.
|
|
26
|
+
"version": "0.3.0"
|
|
27
27
|
},
|
|
28
28
|
"node_modules/@isaacs/balanced-match": {
|
|
29
29
|
"engines": {
|
|
@@ -896,5 +896,5 @@
|
|
|
896
896
|
}
|
|
897
897
|
},
|
|
898
898
|
"requires": true,
|
|
899
|
-
"version": "0.
|
|
899
|
+
"version": "0.3.0"
|
|
900
900
|
}
|
package/package.json
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{
|
|
2
|
-
"artifactDownloadUrl": "https://github.com/20jasper/jjpwrgem/releases/download/jjpwrgem-v0.
|
|
2
|
+
"artifactDownloadUrl": "https://github.com/20jasper/jjpwrgem/releases/download/jjpwrgem-v0.3.0",
|
|
3
3
|
"author": "Jacob Asper <jacobasper191@gmail.com>",
|
|
4
4
|
"bin": {
|
|
5
5
|
"jjp": "run-jjp.js"
|
|
@@ -93,7 +93,7 @@
|
|
|
93
93
|
"zipExt": ".tar.xz"
|
|
94
94
|
}
|
|
95
95
|
},
|
|
96
|
-
"version": "0.
|
|
96
|
+
"version": "0.3.0",
|
|
97
97
|
"volta": {
|
|
98
98
|
"node": "18.14.1",
|
|
99
99
|
"npm": "9.5.0"
|
package/readme.md
CHANGED
|
@@ -1,32 +1,63 @@
|
|
|
1
|
+
<!-- GENERATED FILE - update the templates in the xtask -->
|
|
2
|
+
|
|
1
3
|
# JJPWRGEM
|
|
2
4
|
|
|
3
5
|
JJPWRGEM JSON Parser With Really Good Error Messages
|
|
4
6
|
|
|
5
|
-
An RFC 8259 compliant JSON Parser!
|
|
7
|
+
An RFC 8259 compliant JSON Parser and formatter!
|
|
6
8
|
|
|
7
9
|

|
|
8
10
|
|
|
9
11
|
```
|
|
10
|
-
echo -en
|
|
12
|
+
$ echo -en "{\"coolKey\"}" | jjp check
|
|
11
13
|
error: expected colon after key, found `}`
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
1
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
14
|
+
--> stdin:1:11
|
|
15
|
+
|
|
|
16
|
+
1 | {"coolKey"}
|
|
17
|
+
| ---------^
|
|
18
|
+
| |
|
|
19
|
+
| expected due to `"coolKey"`
|
|
20
|
+
|
|
|
19
21
|
help: insert colon and placeholder value
|
|
20
|
-
|
|
21
|
-
1
|
|
22
|
-
|
|
22
|
+
|
|
|
23
|
+
1 | {"coolKey": "🐟🛹"}
|
|
24
|
+
| ++++++++
|
|
25
|
+
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
## Table of contents
|
|
29
|
+
|
|
30
|
+
- [Table of contents](#table-of-contents)
|
|
31
|
+
- [Installation](#installation)
|
|
32
|
+
- [Stability](#stability)
|
|
33
|
+
- [FAQ](#faq)
|
|
34
|
+
- [Motivations](#motivations)
|
|
35
|
+
|
|
36
|
+
## Installation
|
|
37
|
+
|
|
38
|
+
### Precompiled
|
|
39
|
+
|
|
40
|
+
```bash
|
|
41
|
+
mise use -g github:20jasper/jjpwrgem
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
```bash
|
|
45
|
+
npm install -g jjpwrgem
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
See [releases](https://github.com/20jasper/JJPWRGEM/releases) for shell and powershell installation instructions and raw binaries
|
|
49
|
+
|
|
50
|
+
### From source
|
|
51
|
+
|
|
52
|
+
```bash
|
|
53
|
+
cargo install --path .
|
|
23
54
|
```
|
|
24
55
|
|
|
25
56
|
## Stability
|
|
26
57
|
|
|
27
58
|
JJPWRGEM is in its infancy and extremely likely to have breaking changes (properly marked with semver of course!)
|
|
28
59
|
|
|
29
|
-
##
|
|
60
|
+
## Indeterminate Handling
|
|
30
61
|
|
|
31
62
|
How cases undefined by the spec are handled
|
|
32
63
|
|
|
@@ -76,23 +107,3 @@ I originally started this project to practice finite state machines, but got bac
|
|
|
76
107
|
I am heavily inspired by the Rust compiler's error messages. I love that unhelpful errors are considered bugs
|
|
77
108
|
|
|
78
109
|
I checked out several JSON parsers and formatters, and none provided much context on _why_ a key was missing. Errors ranged from "expected closing on byte 10" to a snapshot of source code for that character, but none were up to my standards
|
|
79
|
-
|
|
80
|
-
## Notes
|
|
81
|
-
|
|
82
|
-
I went with annotate snippets over other libraries like codespan reporting since it better supports patches and workflows that don't require files, like reading from stdin
|
|
83
|
-
|
|
84
|
-
## references
|
|
85
|
-
|
|
86
|
-
### parsers/diagnostics
|
|
87
|
-
|
|
88
|
-
https://rustc-dev-guide.rust-lang.org/diagnostics/error-codes.html
|
|
89
|
-
|
|
90
|
-
https://github.com/rust-lang/rust/pull/27475
|
|
91
|
-
|
|
92
|
-
OXC
|
|
93
|
-
|
|
94
|
-
### Accessibility
|
|
95
|
-
|
|
96
|
-
https://afixt.com/accessible-by-design-improving-command-line-interfaces-for-all-users/
|
|
97
|
-
|
|
98
|
-
miette
|