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 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
@@ -23,7 +23,7 @@
23
23
  "hasInstallScript": true,
24
24
  "license": "MIT",
25
25
  "name": "jjpwrgem",
26
- "version": "0.2.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.2.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.0",
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.2.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
  ![A logo of an axolotl riding a skateboard](./logo.webp)
8
10
 
9
11
  ```
10
- echo -en '{"coolKey"}' | jjp
12
+ $ echo -en "{\"coolKey\"}" | jjp check
11
13
  error: expected colon after key, found `}`
12
- ╭▸ stdin:1:11
13
-
14
- 1 {"coolKey"}
15
- ┬────────━
16
-
17
- expected due to `"coolKey"`
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 {"coolKey": "🐟🛹"}
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
- ## indeterminate handling
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