fastify-auto-sqlapi 0.1.14 → 0.2.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/AGENTS_BACKEND.md +4 -4
- package/BREAKING_CHANGES.md +5 -5
- package/README.md +1 -1
- package/dist/bin/generate-schema.js +89 -77
- package/dist/bin/generate-tables.js +72 -62
- package/dist/bin/utils.d.ts.map +1 -1
- package/dist/bin/utils.js +47 -33
- package/dist/lib/agent/manifest.d.ts +3 -2
- package/dist/lib/agent/manifest.d.ts.map +1 -1
- package/dist/lib/agent/manifest.js +102 -80
- package/dist/lib/cli/mysql-introspect.d.ts +4 -9
- package/dist/lib/cli/mysql-introspect.d.ts.map +1 -1
- package/dist/lib/cli/mysql-introspect.js +8 -7
- package/dist/lib/cli/pg-introspect.d.ts.map +1 -1
- package/dist/lib/cli/pg-introspect.js +0 -1
- package/dist/lib/cli/schema-codegen.d.ts +3 -0
- package/dist/lib/cli/schema-codegen.d.ts.map +1 -1
- package/dist/lib/cli/schema-codegen.js +3 -0
- package/dist/lib/cli/tables-codegen.d.ts +8 -1
- package/dist/lib/cli/tables-codegen.d.ts.map +1 -1
- package/dist/lib/cli/tables-codegen.js +100 -118
- package/dist/lib/condition-methods.d.ts +14 -4
- package/dist/lib/condition-methods.d.ts.map +1 -1
- package/dist/lib/condition-methods.js +18 -4
- package/dist/lib/db.d.ts +1 -1
- package/dist/lib/db.d.ts.map +1 -1
- package/dist/lib/db.js +16 -4
- package/dist/lib/dialect.d.ts +2 -1
- package/dist/lib/dialect.d.ts.map +1 -1
- package/dist/lib/engine/bulk/bulk-upsert.d.ts.map +1 -1
- package/dist/lib/engine/bulk/bulk-upsert.js +42 -35
- package/dist/lib/engine/rest/delete.d.ts.map +1 -1
- package/dist/lib/engine/rest/get.d.ts.map +1 -1
- package/dist/lib/engine/rest/insert.d.ts.map +1 -1
- package/dist/lib/engine/rest/insert.js +1 -1
- package/dist/lib/engine/rest/update.d.ts.map +1 -1
- package/dist/lib/engine/rest/update.js +25 -18
- package/dist/lib/engine/search/aggregations.d.ts +33 -0
- package/dist/lib/engine/search/aggregations.d.ts.map +1 -0
- package/dist/lib/engine/search/aggregations.js +109 -0
- package/dist/lib/engine/search/conditions.d.ts +31 -0
- package/dist/lib/engine/search/conditions.d.ts.map +1 -0
- package/dist/lib/engine/search/conditions.js +131 -0
- package/dist/lib/engine/search/fields.d.ts +49 -0
- package/dist/lib/engine/search/fields.d.ts.map +1 -0
- package/dist/lib/engine/search/fields.js +142 -0
- package/dist/lib/engine/search/join-families.d.ts +35 -0
- package/dist/lib/engine/search/join-families.d.ts.map +1 -0
- package/dist/lib/engine/search/join-families.js +345 -0
- package/dist/lib/engine/search/joins.d.ts +55 -0
- package/dist/lib/engine/search/joins.d.ts.map +1 -0
- package/dist/lib/engine/search/joins.js +81 -0
- package/dist/lib/engine/search/order-by.d.ts +35 -0
- package/dist/lib/engine/search/order-by.d.ts.map +1 -0
- package/dist/lib/engine/search/order-by.js +104 -0
- package/dist/lib/engine/search/search.d.ts.map +1 -1
- package/dist/lib/engine/search/search.js +101 -787
- package/dist/lib/engine/validate.d.ts +0 -5
- package/dist/lib/engine/validate.d.ts.map +1 -1
- package/dist/lib/engine/write-helpers.d.ts +25 -17
- package/dist/lib/engine/write-helpers.d.ts.map +1 -1
- package/dist/lib/engine/write-helpers.js +86 -44
- package/dist/lib/read-access.d.ts +12 -1
- package/dist/lib/read-access.d.ts.map +1 -1
- package/dist/lib/read-access.js +20 -4
- package/dist/lib/schema/helpers.d.ts +0 -15
- package/dist/lib/schema/helpers.d.ts.map +1 -1
- package/dist/lib/schema/helpers.js +7 -4
- package/dist/lib/schema/search.d.ts.map +1 -1
- package/dist/lib/schema/search.js +107 -128
- package/dist/lib/sql-api.d.ts.map +1 -1
- package/dist/lib/tenant.d.ts +26 -0
- package/dist/lib/tenant.d.ts.map +1 -1
- package/dist/lib/tenant.js +46 -0
- package/dist/routes/auto/route-helpers.d.ts +0 -7
- package/dist/routes/auto/route-helpers.d.ts.map +1 -1
- package/dist/routes/auto/route-helpers.js +46 -30
- package/dist/routes/auto/search.routes.js +0 -1
- package/dist/types/table.d.ts +1 -1
- package/docs/GLOSSARY.md +28 -0
- package/docs/adr/0012-anti-duplication-tooling.md +59 -0
- package/docs/adr/README.md +3 -1
- package/package.json +29 -2
package/docs/adr/README.md
CHANGED
|
@@ -26,11 +26,13 @@ not by editing history.
|
|
|
26
26
|
| [0009](./0009-schema-exclusion-config-blacklist.md) | Schema exclusion is a config blacklist — excluded schemas are removed as orphans |
|
|
27
27
|
| [0010](./0010-joins-do-not-run-route-guards.md) | A declared join is a read grant — joins do not run the target table's route guards |
|
|
28
28
|
| [0011](./0011-join-fields-allowlist.md) | Per-relation field restriction is an allowlist, not a blocklist |
|
|
29
|
+
| [0012](./0012-anti-duplication-tooling.md) | Repository rules are enforced by executable gates, not by documentation |
|
|
29
30
|
|
|
30
31
|
## When to write one
|
|
31
32
|
|
|
32
33
|
Only when a decision was genuinely debated, or is counter-intuitive enough that a reasonable
|
|
33
|
-
outsider would mistake it for a bug. Plain conventions belong in [AGENTS.md](../../AGENTS.md)
|
|
34
|
+
outsider would mistake it for a bug. Plain conventions belong in [AGENTS.md](../../AGENTS.md)
|
|
35
|
+
for consumers, or in `CLAUDE.md` at the repository root for contributors.
|
|
34
36
|
|
|
35
37
|
## Format
|
|
36
38
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "fastify-auto-sqlapi",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.2.0",
|
|
4
4
|
"description": "Fastify plugin for automatic CRUD API generation from PostgreSQL, MySQL and MariaDB tables",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -19,6 +19,7 @@
|
|
|
19
19
|
"files": [
|
|
20
20
|
"dist",
|
|
21
21
|
"docs",
|
|
22
|
+
"!docs/INDEX.md",
|
|
22
23
|
"AGENTS.md",
|
|
23
24
|
"AGENTS_BACKEND.md",
|
|
24
25
|
"AGENTS_FRONTEND.md",
|
|
@@ -28,6 +29,21 @@
|
|
|
28
29
|
"scripts": {
|
|
29
30
|
"clean": "rm -rf dist",
|
|
30
31
|
"build": "rm -rf dist && tsc",
|
|
32
|
+
"lint": "eslint . --max-warnings 0",
|
|
33
|
+
"lint:fix": "eslint . --fix",
|
|
34
|
+
"lint:strict": "LINT_STRICT=1 eslint .",
|
|
35
|
+
"typecheck": "tsc --noEmit && tsc -p scripts/tsconfig.json",
|
|
36
|
+
"index": "node scripts/generate-index.ts",
|
|
37
|
+
"index:check": "node scripts/generate-index.ts --check",
|
|
38
|
+
"find-similar": "node scripts/find-similar.ts",
|
|
39
|
+
"dup": "jscpd src",
|
|
40
|
+
"dup:strict": "jscpd src --reporters console",
|
|
41
|
+
"knip": "knip --max-issues 0 --treat-config-hints-as-errors --treat-tag-hints-as-errors",
|
|
42
|
+
"depcruise": "depcruise src --config .dependency-cruiser.mjs --output-type err",
|
|
43
|
+
"depcruise:strict": "DEPCRUISE_STRICT=1 depcruise src --config .dependency-cruiser.mjs --output-type err",
|
|
44
|
+
"debt": "npm run lint:strict; npm run dup:strict; npm run depcruise:strict",
|
|
45
|
+
"check": "npm run lint && npm run typecheck",
|
|
46
|
+
"verify": "npm run check && npm run build && npm run index:check && npm run dup && npm run depcruise && npm run knip && npm run test:unit",
|
|
31
47
|
"prepublishOnly": "npm run build && npm run test:unit",
|
|
32
48
|
"test": "npm run test:unit && npm run test:integration:pg && npm run test:integration:mysql",
|
|
33
49
|
"test:unit": "node --test test/unit/*.test.js",
|
|
@@ -67,18 +83,29 @@
|
|
|
67
83
|
"homepage": "https://github.com/LucaRainone/fastify-auto-sqlapi#readme",
|
|
68
84
|
"dependencies": {
|
|
69
85
|
"@sinclair/typebox": "^0.34.14",
|
|
86
|
+
"fastify-plugin": "^5.1.0",
|
|
70
87
|
"node-condition-builder": "^1.2.0"
|
|
71
88
|
},
|
|
72
89
|
"devDependencies": {
|
|
90
|
+
"@eslint/js": "^10.0.1",
|
|
73
91
|
"@fastify/postgres": "^6.0.2",
|
|
74
92
|
"@fastify/swagger": "^9.0.0",
|
|
75
93
|
"@fastify/swagger-ui": "^5.0.0",
|
|
76
94
|
"@types/node": "^22.13.4",
|
|
77
95
|
"@types/pg": "^8.11.11",
|
|
96
|
+
"dependency-cruiser": "^18.1.0",
|
|
97
|
+
"eslint": "^10.8.0",
|
|
98
|
+
"eslint-plugin-sonarjs": "^4.2.0",
|
|
78
99
|
"fastify": "5.8.5",
|
|
100
|
+
"fuse.js": "^7.5.0",
|
|
101
|
+
"jscpd": "^5.0.14",
|
|
102
|
+
"knip": "^6.31.0",
|
|
103
|
+
"lefthook": "^2.1.10",
|
|
79
104
|
"mysql2": "^3.22.0",
|
|
80
105
|
"pg": "^8.13.1",
|
|
81
|
-
"
|
|
106
|
+
"ts-morph": "^28.0.0",
|
|
107
|
+
"typescript": "^5.7.3",
|
|
108
|
+
"typescript-eslint": "^8.65.0"
|
|
82
109
|
},
|
|
83
110
|
"peerDependencies": {
|
|
84
111
|
"@fastify/mysql": ">=4.0.0",
|