jjpwrgem 0.2.0 → 0.2.2
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 +13 -0
- package/npm-shrinkwrap.json +2 -2
- package/package.json +2 -2
- package/readme.md +41 -23
package/CHANGELOG.md
CHANGED
|
@@ -7,6 +7,19 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
7
7
|
|
|
8
8
|
## [Unreleased]
|
|
9
9
|
|
|
10
|
+
## [0.2.2](https://github.com/20jasper/JJPWRGEM/releases/tag/jjpwrgem-v0.2.2) - 2025-12-07
|
|
11
|
+
|
|
12
|
+
### Documentation
|
|
13
|
+
|
|
14
|
+
- add mise installer steps
|
|
15
|
+
- update readme with new command format and installation instructions. removes extra notes
|
|
16
|
+
|
|
17
|
+
### Performance
|
|
18
|
+
|
|
19
|
+
- join_into utility to declaritively avoid allocating delimiter strings
|
|
20
|
+
- write to single buffer instead of allocating buffer per JSON value
|
|
21
|
+
- don't use anstream for content without ansi
|
|
22
|
+
|
|
10
23
|
## [0.2.0](https://github.com/20jasper/JJPWRGEM/releases/tag/jjpwrgem-v0.2.0) - 2025-12-06
|
|
11
24
|
|
|
12
25
|
### 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.2.
|
|
26
|
+
"version": "0.2.2"
|
|
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.2.
|
|
899
|
+
"version": "0.2.2"
|
|
900
900
|
}
|
package/package.json
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{
|
|
2
|
-
"artifactDownloadUrl": "https://github.com/20jasper/jjpwrgem/releases/download/jjpwrgem-v0.2.
|
|
2
|
+
"artifactDownloadUrl": "https://github.com/20jasper/jjpwrgem/releases/download/jjpwrgem-v0.2.2",
|
|
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.2.
|
|
96
|
+
"version": "0.2.2",
|
|
97
97
|
"volta": {
|
|
98
98
|
"node": "18.14.1",
|
|
99
99
|
"npm": "9.5.0"
|
package/readme.md
CHANGED
|
@@ -2,12 +2,12 @@
|
|
|
2
2
|
|
|
3
3
|
JJPWRGEM JSON Parser With Really Good Error Messages
|
|
4
4
|
|
|
5
|
-
An RFC 8259 compliant JSON Parser!
|
|
5
|
+
An RFC 8259 compliant JSON Parser and formatter!
|
|
6
6
|
|
|
7
7
|

|
|
8
8
|
|
|
9
9
|
```
|
|
10
|
-
echo -en '{"coolKey"}' | jjp
|
|
10
|
+
echo -en '{"coolKey"}' | jjp parse
|
|
11
11
|
error: expected colon after key, found `}`
|
|
12
12
|
╭▸ stdin:1:11
|
|
13
13
|
│
|
|
@@ -22,11 +22,49 @@ help: insert colon and placeholder value
|
|
|
22
22
|
╰╴ ++++++++
|
|
23
23
|
```
|
|
24
24
|
|
|
25
|
+
## Table of contents
|
|
26
|
+
|
|
27
|
+
- [JJPWRGEM](#jjpwrgem)
|
|
28
|
+
- [Table of contents](#table-of-contents)
|
|
29
|
+
- [Installation](#installation)
|
|
30
|
+
- [Precompiled](#precompiled)
|
|
31
|
+
- [From source](#from-source)
|
|
32
|
+
- [Stability](#stability)
|
|
33
|
+
- [Indeterminate Handling](#indeterminate-handling)
|
|
34
|
+
- [FAQ](#faq)
|
|
35
|
+
- [What does JJPWRGEM stand for?](#what-does-jjpwrgem-stand-for)
|
|
36
|
+
- [How do you pronounce JJPWRGEM?](#how-do-you-pronounce-jjpwrgem)
|
|
37
|
+
- [But why is it called that?](#but-why-is-it-called-that)
|
|
38
|
+
- [Why is the logo an axolotl riding a skateboard?](#why-is-the-logo-an-axolotl-riding-a-skateboard)
|
|
39
|
+
- [Is it blazingly fast™?](#is-it-blazingly-fast)
|
|
40
|
+
- [How long is an axolotl?](#how-long-is-an-axolotl)
|
|
41
|
+
- [Motivations](#motivations)
|
|
42
|
+
|
|
43
|
+
## Installation
|
|
44
|
+
|
|
45
|
+
### Precompiled
|
|
46
|
+
|
|
47
|
+
```bash
|
|
48
|
+
mise use -g github:20jasper/jjpwrgem
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
```bash
|
|
52
|
+
npm install -g jjpwrgem
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
See [releases](https://github.com/20jasper/JJPWRGEM/releases) for shell and powershell installation instructions and raw binaries
|
|
56
|
+
|
|
57
|
+
### From source
|
|
58
|
+
|
|
59
|
+
```
|
|
60
|
+
cargo install --path .
|
|
61
|
+
```
|
|
62
|
+
|
|
25
63
|
## Stability
|
|
26
64
|
|
|
27
65
|
JJPWRGEM is in its infancy and extremely likely to have breaking changes (properly marked with semver of course!)
|
|
28
66
|
|
|
29
|
-
##
|
|
67
|
+
## Indeterminate Handling
|
|
30
68
|
|
|
31
69
|
How cases undefined by the spec are handled
|
|
32
70
|
|
|
@@ -76,23 +114,3 @@ I originally started this project to practice finite state machines, but got bac
|
|
|
76
114
|
I am heavily inspired by the Rust compiler's error messages. I love that unhelpful errors are considered bugs
|
|
77
115
|
|
|
78
116
|
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
|