mirror of
https://github.com/Start9Labs/patch-db.git
synced 2026-03-26 18:31:53 +00:00
audit fixes, repo restructure, and documentation
Soundness and performance audit (17 fixes): - See AUDIT.md for full details and @claude comments in code Repo restructure: - Inline json-ptr and json-patch submodules as regular directories - Remove cbor submodule, replace serde_cbor with ciborium - Rename patch-db/ -> core/, patch-db-macro/ -> macro/, patch-db-macro-internals/ -> macro-internals/, patch-db-util/ -> util/ - Purge upstream CI/CD, bench, and release cruft from json-patch - Remove .gitmodules Test fixes: - Fix proptest doesnt_crash (unique file paths, proper close/cleanup) - Add PatchDb::close() for clean teardown Documentation: - Add README.md, ARCHITECTURE.md, CONTRIBUTING.md, CLAUDE.md, AUDIT.md - Add TSDocs to TypeScript client exports Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
286
json-patch/specs/revert_tests.json
Normal file
286
json-patch/specs/revert_tests.json
Normal file
@@ -0,0 +1,286 @@
|
||||
[
|
||||
{
|
||||
"comment": "Can revert add (replace key)",
|
||||
"doc": {
|
||||
"foo": {
|
||||
"bar": {
|
||||
"baz": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"patch": [
|
||||
{
|
||||
"op": "add",
|
||||
"path": "/foo",
|
||||
"value": false
|
||||
},
|
||||
{
|
||||
"op": "remove",
|
||||
"path": "/foo/bar"
|
||||
}
|
||||
],
|
||||
"error": "invalid pointer"
|
||||
},
|
||||
{
|
||||
"comment": "Can revert add (insert into array)",
|
||||
"doc": {
|
||||
"foo": [1, 2, 3]
|
||||
},
|
||||
"patch": [
|
||||
{
|
||||
"op": "add",
|
||||
"path": "/foo/1",
|
||||
"value": false
|
||||
},
|
||||
{
|
||||
"op": "remove",
|
||||
"path": "/foo/bar"
|
||||
}
|
||||
],
|
||||
"error": "invalid pointer"
|
||||
},
|
||||
{
|
||||
"comment": "Can revert add (insert last element into array)",
|
||||
"doc": {
|
||||
"foo": [1, 2, 3]
|
||||
},
|
||||
"patch": [
|
||||
{
|
||||
"op": "add",
|
||||
"path": "/foo/-",
|
||||
"value": false
|
||||
},
|
||||
{
|
||||
"op": "remove",
|
||||
"path": "/foo/bar"
|
||||
}
|
||||
],
|
||||
"error": "invalid pointer"
|
||||
},
|
||||
{
|
||||
"comment": "Can revert remove (object)",
|
||||
"doc": {
|
||||
"foo": {
|
||||
"bar": {
|
||||
"baz": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"patch": [
|
||||
{
|
||||
"op": "remove",
|
||||
"path": "/foo"
|
||||
},
|
||||
{
|
||||
"op": "remove",
|
||||
"path": "/foo/bar"
|
||||
}
|
||||
],
|
||||
"error": "invalid pointer"
|
||||
},
|
||||
{
|
||||
"comment": "Can revert remove (array)",
|
||||
"doc": {
|
||||
"foo": [1, 2, 3]
|
||||
},
|
||||
"patch": [
|
||||
{
|
||||
"op": "remove",
|
||||
"path": "/foo/1"
|
||||
},
|
||||
{
|
||||
"op": "remove",
|
||||
"path": "/foo/bar"
|
||||
}
|
||||
],
|
||||
"error": "invalid pointer"
|
||||
},
|
||||
{
|
||||
"comment": "Can revert replace (replace key)",
|
||||
"doc": {
|
||||
"foo": {
|
||||
"bar": {
|
||||
"baz": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"patch": [
|
||||
{
|
||||
"op": "replace",
|
||||
"path": "/foo",
|
||||
"value": false
|
||||
},
|
||||
{
|
||||
"op": "remove",
|
||||
"path": "/foo/bar"
|
||||
}
|
||||
],
|
||||
"error": "invalid pointer"
|
||||
},
|
||||
{
|
||||
"comment": "Can revert replace (replace array element)",
|
||||
"doc": {
|
||||
"foo": [1, 2, 3]
|
||||
},
|
||||
"patch": [
|
||||
{
|
||||
"op": "replace",
|
||||
"path": "/foo/1",
|
||||
"value": false
|
||||
},
|
||||
{
|
||||
"op": "remove",
|
||||
"path": "/foo/bar"
|
||||
}
|
||||
],
|
||||
"error": "invalid pointer"
|
||||
},
|
||||
{
|
||||
"comment": "Can revert move (move into key)",
|
||||
"doc": {
|
||||
"foo": {
|
||||
"bar": {
|
||||
"baz": true
|
||||
}
|
||||
},
|
||||
"abc": {
|
||||
"def": {
|
||||
"ghi": false
|
||||
}
|
||||
}
|
||||
},
|
||||
"patch": [
|
||||
{
|
||||
"op": "move",
|
||||
"from": "/abc",
|
||||
"path": "/foo",
|
||||
"value": false
|
||||
},
|
||||
{
|
||||
"op": "remove",
|
||||
"path": "/foo/bar"
|
||||
}
|
||||
],
|
||||
"error": "invalid pointer"
|
||||
},
|
||||
{
|
||||
"comment": "Can revert move (move into array)",
|
||||
"doc": {
|
||||
"foo": [1, 2, 3],
|
||||
"abc": {
|
||||
"def": {
|
||||
"ghi": false
|
||||
}
|
||||
}
|
||||
},
|
||||
"patch": [
|
||||
{
|
||||
"op": "move",
|
||||
"path": "/foo/1",
|
||||
"from": "/abc"
|
||||
},
|
||||
{
|
||||
"op": "remove",
|
||||
"path": "/foo/bar"
|
||||
}
|
||||
],
|
||||
"error": "invalid pointer"
|
||||
},
|
||||
{
|
||||
"comment": "Can revert move (move into last element of an array)",
|
||||
"doc": {
|
||||
"foo": [1, 2, 3],
|
||||
"abc": {
|
||||
"def": {
|
||||
"ghi": false
|
||||
}
|
||||
}
|
||||
},
|
||||
"patch": [
|
||||
{
|
||||
"op": "move",
|
||||
"path": "/foo/-",
|
||||
"from": "/abc"
|
||||
},
|
||||
{
|
||||
"op": "remove",
|
||||
"path": "/foo/bar"
|
||||
}
|
||||
],
|
||||
"error": "invalid pointer"
|
||||
},
|
||||
{
|
||||
"comment": "Can revert copy (copy into key)",
|
||||
"doc": {
|
||||
"foo": {
|
||||
"bar": {
|
||||
"baz": true
|
||||
}
|
||||
},
|
||||
"abc": {
|
||||
"def": {
|
||||
"ghi": false
|
||||
}
|
||||
}
|
||||
},
|
||||
"patch": [
|
||||
{
|
||||
"op": "copy",
|
||||
"from": "/abc",
|
||||
"path": "/foo",
|
||||
"value": false
|
||||
},
|
||||
{
|
||||
"op": "remove",
|
||||
"path": "/foo/bar"
|
||||
}
|
||||
],
|
||||
"error": "invalid pointer"
|
||||
},
|
||||
{
|
||||
"comment": "Can revert copy (copy into array)",
|
||||
"doc": {
|
||||
"foo": [1, 2, 3],
|
||||
"abc": {
|
||||
"def": {
|
||||
"ghi": false
|
||||
}
|
||||
}
|
||||
},
|
||||
"patch": [
|
||||
{
|
||||
"op": "copy",
|
||||
"path": "/foo/1",
|
||||
"from": "/abc"
|
||||
},
|
||||
{
|
||||
"op": "remove",
|
||||
"path": "/foo/bar"
|
||||
}
|
||||
],
|
||||
"error": "invalid pointer"
|
||||
},
|
||||
{
|
||||
"comment": "Can revert copy (copy into last element of an array)",
|
||||
"doc": {
|
||||
"foo": [1, 2, 3],
|
||||
"abc": {
|
||||
"def": {
|
||||
"ghi": false
|
||||
}
|
||||
}
|
||||
},
|
||||
"patch": [
|
||||
{
|
||||
"op": "copy",
|
||||
"path": "/foo/-",
|
||||
"from": "/abc"
|
||||
},
|
||||
{
|
||||
"op": "remove",
|
||||
"path": "/foo/bar"
|
||||
}
|
||||
],
|
||||
"error": "invalid pointer"
|
||||
}
|
||||
]
|
||||
Reference in New Issue
Block a user