Update simple-crud-ui. Add a small test to it
This commit is contained in:
parent
b723398197
commit
f54ac76be0
452
package-lock.json
generated
452
package-lock.json
generated
@ -13,7 +13,7 @@
|
|||||||
"@hotwired/turbo": "^8.0.2",
|
"@hotwired/turbo": "^8.0.2",
|
||||||
"@koa/router": "^12.0.1",
|
"@koa/router": "^12.0.1",
|
||||||
"@sealcode/add-to-head": "^1.0.0",
|
"@sealcode/add-to-head": "^1.0.0",
|
||||||
"@sealcode/crud-ui": "^0.0.17",
|
"@sealcode/crud-ui": "^0.0.18",
|
||||||
"@sealcode/file-manager": "^1.0.2",
|
"@sealcode/file-manager": "^1.0.2",
|
||||||
"@sealcode/jdd": "^0.8.0",
|
"@sealcode/jdd": "^0.8.0",
|
||||||
"@sealcode/jdd-editor": "^0.2.0",
|
"@sealcode/jdd-editor": "^0.2.0",
|
||||||
@ -1339,12 +1339,12 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@sealcode/crud-ui": {
|
"node_modules/@sealcode/crud-ui": {
|
||||||
"version": "0.0.17",
|
"version": "0.0.18",
|
||||||
"resolved": "https://registry.npmjs.org/@sealcode/crud-ui/-/crud-ui-0.0.17.tgz",
|
"resolved": "https://registry.npmjs.org/@sealcode/crud-ui/-/crud-ui-0.0.18.tgz",
|
||||||
"integrity": "sha512-SEkhzB1oFIaos5d3hWGSrZk8sk2gZYeWMT2BGr34DvJh2IK5d5FUUf/QuzLJqM1JgrKSD5IWXl9R/KPMQtRt7Q==",
|
"integrity": "sha512-brzQxDpqMe11C+d794izJabrSqxUGv5BzMKY3wMJiuHD1K0WJD09Vkg35GWwRD7RdfXFt7uncSswqyYMBlKDAg==",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@koa/router": "^13.1.0",
|
"@koa/router": "^13.1.0",
|
||||||
"@sealcode/sealgen": "^0.17.4",
|
"@sealcode/sealgen": "^0.18.5",
|
||||||
"@types/koa__router": "^12.0.4",
|
"@types/koa__router": "^12.0.4",
|
||||||
"escape-goat": "^4.0.0",
|
"escape-goat": "^4.0.0",
|
||||||
"qs": "^6.13.0",
|
"qs": "^6.13.0",
|
||||||
@ -1365,249 +1365,6 @@
|
|||||||
"node": ">= 18"
|
"node": ">= 18"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@sealcode/crud-ui/node_modules/@sealcode/sealgen": {
|
|
||||||
"version": "0.17.35",
|
|
||||||
"resolved": "https://registry.npmjs.org/@sealcode/sealgen/-/sealgen-0.17.35.tgz",
|
|
||||||
"integrity": "sha512-gbh9r2KtZFMrzPuley1SSfRC4C+3gOGf7v1PewgaPFBZHsfP7D2Bsgs8Gp0kgf2eWGcBvm1RECLn82p5w67r6g==",
|
|
||||||
"dependencies": {
|
|
||||||
"@koa/router": "^12.0.1",
|
|
||||||
"@sealcode/file-manager": "^1.0.2",
|
|
||||||
"@sealcode/ts-predicates": "^0.4.3",
|
|
||||||
"chokidar": "^3.6.0",
|
|
||||||
"colord": "^2.9.3",
|
|
||||||
"deepmerge": "^4.3.1",
|
|
||||||
"esbuild": "^0.20.0",
|
|
||||||
"escape-goat": "^4.0.0",
|
|
||||||
"fonsta": "^1.1.1",
|
|
||||||
"google-fonts-helper": "^3.4.1",
|
|
||||||
"husky": "^9.1.7",
|
|
||||||
"is-what": "^4.1.16",
|
|
||||||
"js-convert-case": "^4.2.0",
|
|
||||||
"json5": "^2.2.3",
|
|
||||||
"locreq": "^3.0.0",
|
|
||||||
"md5": "^2.3.0",
|
|
||||||
"merge": "^2.1.1",
|
|
||||||
"prettier": "^2.7.1",
|
|
||||||
"prompts": "^2.4.2",
|
|
||||||
"recursive-readdir": "^2.2.3",
|
|
||||||
"tempfile": "^5.0.0",
|
|
||||||
"tempstream": "^0.4.6",
|
|
||||||
"tiny-glob": "^0.2.9",
|
|
||||||
"ws": "^8.16.0",
|
|
||||||
"yargs": "^17.6.2"
|
|
||||||
},
|
|
||||||
"bin": {
|
|
||||||
"sealgen": "lib/cli.js"
|
|
||||||
},
|
|
||||||
"peerDependencies": {
|
|
||||||
"koa": "^2.13.0",
|
|
||||||
"koa-responsive-image-router": "^0.2.24",
|
|
||||||
"sealious": "^0.20"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/@sealcode/crud-ui/node_modules/@sealcode/sealgen/node_modules/@koa/router": {
|
|
||||||
"version": "12.0.2",
|
|
||||||
"resolved": "https://registry.npmjs.org/@koa/router/-/router-12.0.2.tgz",
|
|
||||||
"integrity": "sha512-sYcHglGKTxGF+hQ6x67xDfkE9o+NhVlRHBqq6gLywaMc6CojK/5vFZByphdonKinYlMLkEkacm+HEse9HzwgTA==",
|
|
||||||
"dependencies": {
|
|
||||||
"debug": "^4.3.4",
|
|
||||||
"http-errors": "^2.0.0",
|
|
||||||
"koa-compose": "^4.1.0",
|
|
||||||
"methods": "^1.1.2",
|
|
||||||
"path-to-regexp": "^6.3.0"
|
|
||||||
},
|
|
||||||
"engines": {
|
|
||||||
"node": ">= 12"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/@sealcode/crud-ui/node_modules/@sealcode/ts-predicates": {
|
|
||||||
"version": "0.4.3",
|
|
||||||
"resolved": "https://registry.npmjs.org/@sealcode/ts-predicates/-/ts-predicates-0.4.3.tgz",
|
|
||||||
"integrity": "sha512-UNSEacu7Ye8q0N8AJCJy37oJvv3w2OXKGkUnP7xO5lOY9DQviDPRDQhVaZdJ3/xMzXLm4UE3389ihctrPaov/A=="
|
|
||||||
},
|
|
||||||
"node_modules/@sealcode/crud-ui/node_modules/@types/object-hash": {
|
|
||||||
"version": "1.3.4",
|
|
||||||
"resolved": "https://registry.npmjs.org/@types/object-hash/-/object-hash-1.3.4.tgz",
|
|
||||||
"integrity": "sha512-xFdpkAkikBgqBdG9vIlsqffDV8GpvnPEzs0IUtr1v3BEB97ijsFQ4RXVbUZwjFThhB4MDSTUfvmxUD5PGx0wXA==",
|
|
||||||
"peer": true
|
|
||||||
},
|
|
||||||
"node_modules/@sealcode/crud-ui/node_modules/@types/uuid": {
|
|
||||||
"version": "8.3.4",
|
|
||||||
"resolved": "https://registry.npmjs.org/@types/uuid/-/uuid-8.3.4.tgz",
|
|
||||||
"integrity": "sha512-c/I8ZRb51j+pYGAu5CrFMRxqZ2ke4y2grEBO5AUjgSkSk+qT2Ea+OdWElz/OiMf5MNpn2b17kuVBwZLQJXzihw==",
|
|
||||||
"peer": true
|
|
||||||
},
|
|
||||||
"node_modules/@sealcode/crud-ui/node_modules/chalk": {
|
|
||||||
"version": "4.1.2",
|
|
||||||
"resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
|
|
||||||
"integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
|
|
||||||
"peer": true,
|
|
||||||
"dependencies": {
|
|
||||||
"ansi-styles": "^4.1.0",
|
|
||||||
"supports-color": "^7.1.0"
|
|
||||||
},
|
|
||||||
"engines": {
|
|
||||||
"node": ">=10"
|
|
||||||
},
|
|
||||||
"funding": {
|
|
||||||
"url": "https://github.com/chalk/chalk?sponsor=1"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/@sealcode/crud-ui/node_modules/clone": {
|
|
||||||
"version": "1.0.4",
|
|
||||||
"resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz",
|
|
||||||
"integrity": "sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==",
|
|
||||||
"peer": true,
|
|
||||||
"engines": {
|
|
||||||
"node": ">=0.8"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/@sealcode/crud-ui/node_modules/get-port": {
|
|
||||||
"version": "5.1.1",
|
|
||||||
"resolved": "https://registry.npmjs.org/get-port/-/get-port-5.1.1.tgz",
|
|
||||||
"integrity": "sha512-g/Q1aTSDOxFpchXC4i8ZWvxA1lnPqx/JHqcpIw0/LX9T8x/GBbi6YnlN5nhaKIFkT8oFsscUKgDJYxfwfS6QsQ==",
|
|
||||||
"peer": true,
|
|
||||||
"engines": {
|
|
||||||
"node": ">=8"
|
|
||||||
},
|
|
||||||
"funding": {
|
|
||||||
"url": "https://github.com/sponsors/sindresorhus"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/@sealcode/crud-ui/node_modules/object-hash": {
|
|
||||||
"version": "2.2.0",
|
|
||||||
"resolved": "https://registry.npmjs.org/object-hash/-/object-hash-2.2.0.tgz",
|
|
||||||
"integrity": "sha512-gScRMn0bS5fH+IuwyIFgnh9zBdo4DV+6GhygmWM9HyNJSgS0hScp1f5vjtm7oIIOiT9trXrShAkLFSc2IqKNgw==",
|
|
||||||
"peer": true,
|
|
||||||
"engines": {
|
|
||||||
"node": ">= 6"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/@sealcode/crud-ui/node_modules/parse-ms": {
|
|
||||||
"version": "2.1.0",
|
|
||||||
"resolved": "https://registry.npmjs.org/parse-ms/-/parse-ms-2.1.0.tgz",
|
|
||||||
"integrity": "sha512-kHt7kzLoS9VBZfUsiKjv43mr91ea+U05EyKkEtqp7vNbHxmaVuEqN7XxeEVnGrMtYOAxGrDElSi96K7EgO1zCA==",
|
|
||||||
"peer": true,
|
|
||||||
"engines": {
|
|
||||||
"node": ">=6"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/@sealcode/crud-ui/node_modules/prettier": {
|
|
||||||
"version": "2.8.8",
|
|
||||||
"resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.8.tgz",
|
|
||||||
"integrity": "sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==",
|
|
||||||
"bin": {
|
|
||||||
"prettier": "bin-prettier.js"
|
|
||||||
},
|
|
||||||
"engines": {
|
|
||||||
"node": ">=10.13.0"
|
|
||||||
},
|
|
||||||
"funding": {
|
|
||||||
"url": "https://github.com/prettier/prettier?sponsor=1"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/@sealcode/crud-ui/node_modules/pretty-ms": {
|
|
||||||
"version": "7.0.1",
|
|
||||||
"resolved": "https://registry.npmjs.org/pretty-ms/-/pretty-ms-7.0.1.tgz",
|
|
||||||
"integrity": "sha512-973driJZvxiGOQ5ONsFhOF/DtzPMOMtgC11kCpUrPGMTgqp2q/1gwzCquocrN33is0VZ5GFHXZYMM9l6h67v2Q==",
|
|
||||||
"peer": true,
|
|
||||||
"dependencies": {
|
|
||||||
"parse-ms": "^2.1.0"
|
|
||||||
},
|
|
||||||
"engines": {
|
|
||||||
"node": ">=10"
|
|
||||||
},
|
|
||||||
"funding": {
|
|
||||||
"url": "https://github.com/sponsors/sindresorhus"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/@sealcode/crud-ui/node_modules/sealious": {
|
|
||||||
"version": "0.20.1",
|
|
||||||
"resolved": "https://registry.npmjs.org/sealious/-/sealious-0.20.1.tgz",
|
|
||||||
"integrity": "sha512-DDzIDNYWtdSnZ5wqPdlIK/PKpkPER1lqoMgsxEPw0AjDZxYOLAl3Okil8z36T8nHsNPelmSntndgDfgads91xQ==",
|
|
||||||
"peer": true,
|
|
||||||
"dependencies": {
|
|
||||||
"@koa/router": "^12.0.1",
|
|
||||||
"@sealcode/file-manager": "^1.0.1",
|
|
||||||
"@sealcode/ts-predicates": "^0.4.3",
|
|
||||||
"@types/boom": "^7.3.0",
|
|
||||||
"@types/clone": "^0.1.30",
|
|
||||||
"@types/color": "^3.0.1",
|
|
||||||
"@types/color-hash": "^1.0.0",
|
|
||||||
"@types/escape-html": "^1.0.0",
|
|
||||||
"@types/koa": "^2.11.6",
|
|
||||||
"@types/koa-mount": "^4.0.0",
|
|
||||||
"@types/koa-qs": "^2.0.0",
|
|
||||||
"@types/koa-send": "^4.1.2",
|
|
||||||
"@types/koa-static": "^4.0.1",
|
|
||||||
"@types/mjml": "^4.0.4",
|
|
||||||
"@types/mongodb": "^3.5.20",
|
|
||||||
"@types/node": "^20.0",
|
|
||||||
"@types/nodemailer": "^6.4.0",
|
|
||||||
"@types/object-hash": "^1.3.3",
|
|
||||||
"@types/sanitize-html": "^2.11.0",
|
|
||||||
"@types/uuid": "^8.3.0",
|
|
||||||
"boom": "^7.3.0",
|
|
||||||
"chalk": "^4.1.0",
|
|
||||||
"clone": "^1.0.2",
|
|
||||||
"color": "latest",
|
|
||||||
"color-hash": "^1.0.3",
|
|
||||||
"commonmark": "^0.31.0",
|
|
||||||
"cron": "^2.1.0",
|
|
||||||
"csv-stringify": "^6.4.5",
|
|
||||||
"deepmerge": "^4.2.2",
|
|
||||||
"dot-prop": "^8.0.2",
|
|
||||||
"emittery": "0.8.1",
|
|
||||||
"escape-html": "^1.0.3",
|
|
||||||
"get-port": "^5.1.1",
|
|
||||||
"koa": "^2.13.0",
|
|
||||||
"koa-body": "^4.2.0",
|
|
||||||
"koa-mount": "^4.0.0",
|
|
||||||
"koa-qs": "^3.0.0",
|
|
||||||
"koa-send": "^5.0.1",
|
|
||||||
"koa-static": "^5.0.0",
|
|
||||||
"locreq": "^3.0.0",
|
|
||||||
"mjml": "^4.2.0",
|
|
||||||
"mongodb": "^6.5.0",
|
|
||||||
"nanoid": "^5.0.9",
|
|
||||||
"nodemailer": "^6.4.6",
|
|
||||||
"object-hash": "^2.0.3",
|
|
||||||
"pg": "^8.13.1",
|
|
||||||
"pretty-ms": "^7.0.0",
|
|
||||||
"qs": "^6.12.0",
|
|
||||||
"sanitize-html": "^1.13.0",
|
|
||||||
"typedoc": "^0.17.8",
|
|
||||||
"uuid": "^8.3.2"
|
|
||||||
},
|
|
||||||
"engines": {
|
|
||||||
"node": ">=21.0"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/@sealcode/crud-ui/node_modules/sealious/node_modules/@koa/router": {
|
|
||||||
"version": "12.0.2",
|
|
||||||
"resolved": "https://registry.npmjs.org/@koa/router/-/router-12.0.2.tgz",
|
|
||||||
"integrity": "sha512-sYcHglGKTxGF+hQ6x67xDfkE9o+NhVlRHBqq6gLywaMc6CojK/5vFZByphdonKinYlMLkEkacm+HEse9HzwgTA==",
|
|
||||||
"peer": true,
|
|
||||||
"dependencies": {
|
|
||||||
"debug": "^4.3.4",
|
|
||||||
"http-errors": "^2.0.0",
|
|
||||||
"koa-compose": "^4.1.0",
|
|
||||||
"methods": "^1.1.2",
|
|
||||||
"path-to-regexp": "^6.3.0"
|
|
||||||
},
|
|
||||||
"engines": {
|
|
||||||
"node": ">= 12"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/@sealcode/crud-ui/node_modules/uuid": {
|
|
||||||
"version": "8.3.2",
|
|
||||||
"resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz",
|
|
||||||
"integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==",
|
|
||||||
"peer": true,
|
|
||||||
"bin": {
|
|
||||||
"uuid": "dist/bin/uuid"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/@sealcode/file-manager": {
|
"node_modules/@sealcode/file-manager": {
|
||||||
"version": "1.0.2",
|
"version": "1.0.2",
|
||||||
"resolved": "https://registry.npmjs.org/@sealcode/file-manager/-/file-manager-1.0.2.tgz",
|
"resolved": "https://registry.npmjs.org/@sealcode/file-manager/-/file-manager-1.0.2.tgz",
|
||||||
@ -16126,12 +15883,12 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"@sealcode/crud-ui": {
|
"@sealcode/crud-ui": {
|
||||||
"version": "0.0.17",
|
"version": "0.0.18",
|
||||||
"resolved": "https://registry.npmjs.org/@sealcode/crud-ui/-/crud-ui-0.0.17.tgz",
|
"resolved": "https://registry.npmjs.org/@sealcode/crud-ui/-/crud-ui-0.0.18.tgz",
|
||||||
"integrity": "sha512-SEkhzB1oFIaos5d3hWGSrZk8sk2gZYeWMT2BGr34DvJh2IK5d5FUUf/QuzLJqM1JgrKSD5IWXl9R/KPMQtRt7Q==",
|
"integrity": "sha512-brzQxDpqMe11C+d794izJabrSqxUGv5BzMKY3wMJiuHD1K0WJD09Vkg35GWwRD7RdfXFt7uncSswqyYMBlKDAg==",
|
||||||
"requires": {
|
"requires": {
|
||||||
"@koa/router": "^13.1.0",
|
"@koa/router": "^13.1.0",
|
||||||
"@sealcode/sealgen": "^0.17.4",
|
"@sealcode/sealgen": "^0.18.5",
|
||||||
"@types/koa__router": "^12.0.4",
|
"@types/koa__router": "^12.0.4",
|
||||||
"escape-goat": "^4.0.0",
|
"escape-goat": "^4.0.0",
|
||||||
"qs": "^6.13.0",
|
"qs": "^6.13.0",
|
||||||
@ -16148,197 +15905,6 @@
|
|||||||
"koa-compose": "^4.1.0",
|
"koa-compose": "^4.1.0",
|
||||||
"path-to-regexp": "^6.3.0"
|
"path-to-regexp": "^6.3.0"
|
||||||
}
|
}
|
||||||
},
|
|
||||||
"@sealcode/sealgen": {
|
|
||||||
"version": "0.17.35",
|
|
||||||
"resolved": "https://registry.npmjs.org/@sealcode/sealgen/-/sealgen-0.17.35.tgz",
|
|
||||||
"integrity": "sha512-gbh9r2KtZFMrzPuley1SSfRC4C+3gOGf7v1PewgaPFBZHsfP7D2Bsgs8Gp0kgf2eWGcBvm1RECLn82p5w67r6g==",
|
|
||||||
"requires": {
|
|
||||||
"@koa/router": "^12.0.1",
|
|
||||||
"@sealcode/file-manager": "^1.0.2",
|
|
||||||
"@sealcode/ts-predicates": "^0.4.3",
|
|
||||||
"chokidar": "^3.6.0",
|
|
||||||
"colord": "^2.9.3",
|
|
||||||
"deepmerge": "^4.3.1",
|
|
||||||
"esbuild": "^0.20.0",
|
|
||||||
"escape-goat": "^4.0.0",
|
|
||||||
"fonsta": "^1.1.1",
|
|
||||||
"google-fonts-helper": "^3.4.1",
|
|
||||||
"husky": "^9.1.7",
|
|
||||||
"is-what": "^4.1.16",
|
|
||||||
"js-convert-case": "^4.2.0",
|
|
||||||
"json5": "^2.2.3",
|
|
||||||
"locreq": "^3.0.0",
|
|
||||||
"md5": "^2.3.0",
|
|
||||||
"merge": "^2.1.1",
|
|
||||||
"prettier": "^2.7.1",
|
|
||||||
"prompts": "^2.4.2",
|
|
||||||
"recursive-readdir": "^2.2.3",
|
|
||||||
"tempfile": "^5.0.0",
|
|
||||||
"tempstream": "^0.4.6",
|
|
||||||
"tiny-glob": "^0.2.9",
|
|
||||||
"ws": "^8.16.0",
|
|
||||||
"yargs": "^17.6.2"
|
|
||||||
},
|
|
||||||
"dependencies": {
|
|
||||||
"@koa/router": {
|
|
||||||
"version": "12.0.2",
|
|
||||||
"resolved": "https://registry.npmjs.org/@koa/router/-/router-12.0.2.tgz",
|
|
||||||
"integrity": "sha512-sYcHglGKTxGF+hQ6x67xDfkE9o+NhVlRHBqq6gLywaMc6CojK/5vFZByphdonKinYlMLkEkacm+HEse9HzwgTA==",
|
|
||||||
"requires": {
|
|
||||||
"debug": "^4.3.4",
|
|
||||||
"http-errors": "^2.0.0",
|
|
||||||
"koa-compose": "^4.1.0",
|
|
||||||
"methods": "^1.1.2",
|
|
||||||
"path-to-regexp": "^6.3.0"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"@sealcode/ts-predicates": {
|
|
||||||
"version": "0.4.3",
|
|
||||||
"resolved": "https://registry.npmjs.org/@sealcode/ts-predicates/-/ts-predicates-0.4.3.tgz",
|
|
||||||
"integrity": "sha512-UNSEacu7Ye8q0N8AJCJy37oJvv3w2OXKGkUnP7xO5lOY9DQviDPRDQhVaZdJ3/xMzXLm4UE3389ihctrPaov/A=="
|
|
||||||
},
|
|
||||||
"@types/object-hash": {
|
|
||||||
"version": "1.3.4",
|
|
||||||
"resolved": "https://registry.npmjs.org/@types/object-hash/-/object-hash-1.3.4.tgz",
|
|
||||||
"integrity": "sha512-xFdpkAkikBgqBdG9vIlsqffDV8GpvnPEzs0IUtr1v3BEB97ijsFQ4RXVbUZwjFThhB4MDSTUfvmxUD5PGx0wXA==",
|
|
||||||
"peer": true
|
|
||||||
},
|
|
||||||
"@types/uuid": {
|
|
||||||
"version": "8.3.4",
|
|
||||||
"resolved": "https://registry.npmjs.org/@types/uuid/-/uuid-8.3.4.tgz",
|
|
||||||
"integrity": "sha512-c/I8ZRb51j+pYGAu5CrFMRxqZ2ke4y2grEBO5AUjgSkSk+qT2Ea+OdWElz/OiMf5MNpn2b17kuVBwZLQJXzihw==",
|
|
||||||
"peer": true
|
|
||||||
},
|
|
||||||
"chalk": {
|
|
||||||
"version": "4.1.2",
|
|
||||||
"resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
|
|
||||||
"integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
|
|
||||||
"peer": true,
|
|
||||||
"requires": {
|
|
||||||
"ansi-styles": "^4.1.0",
|
|
||||||
"supports-color": "^7.1.0"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"clone": {
|
|
||||||
"version": "1.0.4",
|
|
||||||
"resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz",
|
|
||||||
"integrity": "sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==",
|
|
||||||
"peer": true
|
|
||||||
},
|
|
||||||
"get-port": {
|
|
||||||
"version": "5.1.1",
|
|
||||||
"resolved": "https://registry.npmjs.org/get-port/-/get-port-5.1.1.tgz",
|
|
||||||
"integrity": "sha512-g/Q1aTSDOxFpchXC4i8ZWvxA1lnPqx/JHqcpIw0/LX9T8x/GBbi6YnlN5nhaKIFkT8oFsscUKgDJYxfwfS6QsQ==",
|
|
||||||
"peer": true
|
|
||||||
},
|
|
||||||
"object-hash": {
|
|
||||||
"version": "2.2.0",
|
|
||||||
"resolved": "https://registry.npmjs.org/object-hash/-/object-hash-2.2.0.tgz",
|
|
||||||
"integrity": "sha512-gScRMn0bS5fH+IuwyIFgnh9zBdo4DV+6GhygmWM9HyNJSgS0hScp1f5vjtm7oIIOiT9trXrShAkLFSc2IqKNgw==",
|
|
||||||
"peer": true
|
|
||||||
},
|
|
||||||
"parse-ms": {
|
|
||||||
"version": "2.1.0",
|
|
||||||
"resolved": "https://registry.npmjs.org/parse-ms/-/parse-ms-2.1.0.tgz",
|
|
||||||
"integrity": "sha512-kHt7kzLoS9VBZfUsiKjv43mr91ea+U05EyKkEtqp7vNbHxmaVuEqN7XxeEVnGrMtYOAxGrDElSi96K7EgO1zCA==",
|
|
||||||
"peer": true
|
|
||||||
},
|
|
||||||
"prettier": {
|
|
||||||
"version": "2.8.8",
|
|
||||||
"resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.8.tgz",
|
|
||||||
"integrity": "sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q=="
|
|
||||||
},
|
|
||||||
"pretty-ms": {
|
|
||||||
"version": "7.0.1",
|
|
||||||
"resolved": "https://registry.npmjs.org/pretty-ms/-/pretty-ms-7.0.1.tgz",
|
|
||||||
"integrity": "sha512-973driJZvxiGOQ5ONsFhOF/DtzPMOMtgC11kCpUrPGMTgqp2q/1gwzCquocrN33is0VZ5GFHXZYMM9l6h67v2Q==",
|
|
||||||
"peer": true,
|
|
||||||
"requires": {
|
|
||||||
"parse-ms": "^2.1.0"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"sealious": {
|
|
||||||
"version": "0.20.1",
|
|
||||||
"resolved": "https://registry.npmjs.org/sealious/-/sealious-0.20.1.tgz",
|
|
||||||
"integrity": "sha512-DDzIDNYWtdSnZ5wqPdlIK/PKpkPER1lqoMgsxEPw0AjDZxYOLAl3Okil8z36T8nHsNPelmSntndgDfgads91xQ==",
|
|
||||||
"peer": true,
|
|
||||||
"requires": {
|
|
||||||
"@koa/router": "^12.0.1",
|
|
||||||
"@sealcode/file-manager": "^1.0.1",
|
|
||||||
"@sealcode/ts-predicates": "^0.4.3",
|
|
||||||
"@types/boom": "^7.3.0",
|
|
||||||
"@types/clone": "^0.1.30",
|
|
||||||
"@types/color": "^3.0.1",
|
|
||||||
"@types/color-hash": "^1.0.0",
|
|
||||||
"@types/escape-html": "^1.0.0",
|
|
||||||
"@types/koa": "^2.11.6",
|
|
||||||
"@types/koa-mount": "^4.0.0",
|
|
||||||
"@types/koa-qs": "^2.0.0",
|
|
||||||
"@types/koa-send": "^4.1.2",
|
|
||||||
"@types/koa-static": "^4.0.1",
|
|
||||||
"@types/mjml": "^4.0.4",
|
|
||||||
"@types/mongodb": "^3.5.20",
|
|
||||||
"@types/node": "^20.0",
|
|
||||||
"@types/nodemailer": "^6.4.0",
|
|
||||||
"@types/object-hash": "^1.3.3",
|
|
||||||
"@types/sanitize-html": "^2.11.0",
|
|
||||||
"@types/uuid": "^8.3.0",
|
|
||||||
"boom": "^7.3.0",
|
|
||||||
"chalk": "^4.1.0",
|
|
||||||
"clone": "^1.0.2",
|
|
||||||
"color": "latest",
|
|
||||||
"color-hash": "^1.0.3",
|
|
||||||
"commonmark": "^0.31.0",
|
|
||||||
"cron": "^2.1.0",
|
|
||||||
"csv-stringify": "^6.4.5",
|
|
||||||
"deepmerge": "^4.2.2",
|
|
||||||
"dot-prop": "^8.0.2",
|
|
||||||
"emittery": "0.8.1",
|
|
||||||
"escape-html": "^1.0.3",
|
|
||||||
"get-port": "^5.1.1",
|
|
||||||
"koa": "^2.13.0",
|
|
||||||
"koa-body": "^4.2.0",
|
|
||||||
"koa-mount": "^4.0.0",
|
|
||||||
"koa-qs": "^3.0.0",
|
|
||||||
"koa-send": "^5.0.1",
|
|
||||||
"koa-static": "^5.0.0",
|
|
||||||
"locreq": "^3.0.0",
|
|
||||||
"mjml": "^4.2.0",
|
|
||||||
"mongodb": "^6.5.0",
|
|
||||||
"nanoid": "^5.0.9",
|
|
||||||
"nodemailer": "^6.4.6",
|
|
||||||
"object-hash": "^2.0.3",
|
|
||||||
"pg": "^8.13.1",
|
|
||||||
"pretty-ms": "^7.0.0",
|
|
||||||
"qs": "^6.12.0",
|
|
||||||
"sanitize-html": "^1.13.0",
|
|
||||||
"typedoc": "^0.17.8",
|
|
||||||
"uuid": "^8.3.2"
|
|
||||||
},
|
|
||||||
"dependencies": {
|
|
||||||
"@koa/router": {
|
|
||||||
"version": "12.0.2",
|
|
||||||
"resolved": "https://registry.npmjs.org/@koa/router/-/router-12.0.2.tgz",
|
|
||||||
"integrity": "sha512-sYcHglGKTxGF+hQ6x67xDfkE9o+NhVlRHBqq6gLywaMc6CojK/5vFZByphdonKinYlMLkEkacm+HEse9HzwgTA==",
|
|
||||||
"peer": true,
|
|
||||||
"requires": {
|
|
||||||
"debug": "^4.3.4",
|
|
||||||
"http-errors": "^2.0.0",
|
|
||||||
"koa-compose": "^4.1.0",
|
|
||||||
"methods": "^1.1.2",
|
|
||||||
"path-to-regexp": "^6.3.0"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"uuid": {
|
|
||||||
"version": "8.3.2",
|
|
||||||
"resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz",
|
|
||||||
"integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==",
|
|
||||||
"peer": true
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
@ -79,7 +79,7 @@
|
|||||||
"@hotwired/turbo": "^8.0.2",
|
"@hotwired/turbo": "^8.0.2",
|
||||||
"@koa/router": "^12.0.1",
|
"@koa/router": "^12.0.1",
|
||||||
"@sealcode/add-to-head": "^1.0.0",
|
"@sealcode/add-to-head": "^1.0.0",
|
||||||
"@sealcode/crud-ui": "^0.0.17",
|
"@sealcode/crud-ui": "^0.0.18",
|
||||||
"@sealcode/file-manager": "^1.0.2",
|
"@sealcode/file-manager": "^1.0.2",
|
||||||
"@sealcode/jdd": "^0.8.0",
|
"@sealcode/jdd": "^0.8.0",
|
||||||
"@sealcode/jdd-editor": "^0.2.0",
|
"@sealcode/jdd-editor": "^0.2.0",
|
||||||
|
66
src/back/routes/dev/simple-crud-test/index.page.ts
Normal file
66
src/back/routes/dev/simple-crud-test/index.page.ts
Normal file
@ -0,0 +1,66 @@
|
|||||||
|
import { CRUD } from "@sealcode/crud-ui";
|
||||||
|
import type { CollectionItem } from "sealious";
|
||||||
|
import type { ListFilterRender } from "@sealcode/sealgen";
|
||||||
|
import { Controls, DefaultListFilters, Fields } from "@sealcode/sealgen";
|
||||||
|
import { NavbarLinks } from "src/back/collections/collections.js";
|
||||||
|
import html from "src/back/html.js";
|
||||||
|
|
||||||
|
export const actionName = "NavbarLinksCRUD";
|
||||||
|
|
||||||
|
const edit_fields = <const>{
|
||||||
|
label: new Fields.CollectionField(
|
||||||
|
NavbarLinks.fields.label.required,
|
||||||
|
NavbarLinks.fields.label
|
||||||
|
),
|
||||||
|
href: new Fields.CollectionField(
|
||||||
|
NavbarLinks.fields.href.required,
|
||||||
|
NavbarLinks.fields.href
|
||||||
|
),
|
||||||
|
};
|
||||||
|
|
||||||
|
const edit_controls = [
|
||||||
|
new Controls.SimpleInput(edit_fields.label, { label: "label" }),
|
||||||
|
new Controls.SimpleInput(edit_fields.href, { label: "href" }),
|
||||||
|
];
|
||||||
|
|
||||||
|
// eslint-disable-next-line @typescript-eslint/consistent-type-assertions
|
||||||
|
const fields_for_display = [
|
||||||
|
{ field: "label", label: "label" },
|
||||||
|
{ field: "href", label: "href" },
|
||||||
|
] as {
|
||||||
|
field: keyof (typeof NavbarLinks)["fields"];
|
||||||
|
label: string;
|
||||||
|
format?: (
|
||||||
|
value: unknown,
|
||||||
|
item: CollectionItem<typeof NavbarLinks>
|
||||||
|
) => string | Promise<string>;
|
||||||
|
}[];
|
||||||
|
|
||||||
|
// eslint-disable-next-line @typescript-eslint/consistent-type-assertions
|
||||||
|
const fields_for_filters = [
|
||||||
|
{ field: "label", ...DefaultListFilters["text"] },
|
||||||
|
{ field: "href", ...DefaultListFilters["text"] },
|
||||||
|
] as {
|
||||||
|
field: keyof (typeof NavbarLinks)["fields"];
|
||||||
|
render?: ListFilterRender;
|
||||||
|
prepareValue?: (filter_value: unknown) => unknown; // set this function to change what filter value is passed to Sealious
|
||||||
|
}[];
|
||||||
|
|
||||||
|
export default new CRUD({
|
||||||
|
collection: NavbarLinks,
|
||||||
|
nice_collection_name: "NavbarLinks",
|
||||||
|
fields_for_display,
|
||||||
|
fields_for_filters,
|
||||||
|
html,
|
||||||
|
list_title: "NavbarLinks list",
|
||||||
|
edit_title: "Edit",
|
||||||
|
edit_button_text: "Edit",
|
||||||
|
delete_button_text: "Delete",
|
||||||
|
back_to_list_button_text: "← Back to NavbarLinks list",
|
||||||
|
edit_fields,
|
||||||
|
edit_controls,
|
||||||
|
form_value_to_sealious_value: {},
|
||||||
|
sealious_value_to_form_value: {},
|
||||||
|
post_edit: async () => {},
|
||||||
|
post_create: async () => {},
|
||||||
|
});
|
BIN
tests/__screenshots/simple-crud.test.ts/test-1.png
Normal file
BIN
tests/__screenshots/simple-crud.test.ts/test-1.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 34 KiB |
BIN
tests/__screenshots/simple-crud.test.ts/test-2.png
Normal file
BIN
tests/__screenshots/simple-crud.test.ts/test-2.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 33 KiB |
BIN
tests/__screenshots/simple-crud.test.ts/test-3.png
Normal file
BIN
tests/__screenshots/simple-crud.test.ts/test-3.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 54 KiB |
15
tests/simple-crud.test.ts
Normal file
15
tests/simple-crud.test.ts
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
import { test, expect } from "./backend-fixture";
|
||||||
|
|
||||||
|
test("test", async ({ page, backendUrl }) => {
|
||||||
|
await page.goto(`${backendUrl}/dev/simple-crud-test/`);
|
||||||
|
await expect(page).toHaveScreenshot();
|
||||||
|
await page.getByRole("link", { name: "Create" }).click();
|
||||||
|
await expect(page).toHaveScreenshot();
|
||||||
|
await page.getByRole("textbox", { name: "label" }).click();
|
||||||
|
await page.getByRole("textbox", { name: "label" }).fill("navbar from simple crud");
|
||||||
|
await page.getByRole("textbox", { name: "label" }).press("Tab");
|
||||||
|
await page.getByRole("textbox", { name: "href" }).fill("/");
|
||||||
|
await page.getByRole("button", { name: "Wyślij" }).click();
|
||||||
|
await page.getByRole("link", { name: "navbar from simple crud" }).click();
|
||||||
|
await expect(page).toHaveScreenshot();
|
||||||
|
});
|
Loading…
x
Reference in New Issue
Block a user