@wxn0brp/db-string-query 0.0.11 → 0.0.13
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 +9 -0
- package/bun.lock +9 -9
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -0
- package/dist/js.js +1 -1
- package/dist/js.js.map +1 -0
- package/dist/sql/handle/collection.js +1 -1
- package/dist/sql/handle/collection.js.map +1 -0
- package/dist/sql/handle/delete.js +1 -1
- package/dist/sql/handle/delete.js.map +1 -0
- package/dist/sql/handle/insert.js +2 -2
- package/dist/sql/handle/insert.js.map +1 -0
- package/dist/sql/handle/select.js +1 -1
- package/dist/sql/handle/select.js.map +1 -0
- package/dist/sql/handle/update.js +1 -1
- package/dist/sql/handle/update.js.map +1 -0
- package/dist/sql/index.js +1 -1
- package/dist/sql/index.js.map +1 -0
- package/dist/sql/utils/index.js +1 -1
- package/dist/sql/utils/index.js.map +1 -0
- package/dist/sql/utils/join.util.js +1 -1
- package/dist/sql/utils/join.util.js.map +1 -0
- package/dist/sql/where.js +108 -7
- package/dist/sql/where.js.map +1 -0
- package/dist/types.js +1 -1
- package/dist/types.js.map +1 -0
- package/package.json +3 -3
- package/src/sql/handle/insert.ts +1 -1
- package/src/sql/where.ts +109 -6
- package/test/sql/insert.test.ts +11 -0
- package/test/sql/select.test.ts +77 -0
- package/tsconfig.json +1 -1
- package/typedocs-generated/assets/icons.js +1 -1
- package/typedocs-generated/assets/icons.svg +1 -1
- package/typedocs-generated/classes/js.default.html +2 -2
- package/typedocs-generated/classes/sql_index.default.html +2 -2
- package/typedocs-generated/classes/sql_utils_join.util.JoinToRelationsEngine.html +2 -2
- package/typedocs-generated/functions/sql_handle_collection.handleCreate.html +1 -1
- package/typedocs-generated/functions/sql_handle_collection.handleDrop.html +1 -1
- package/typedocs-generated/functions/sql_handle_collection.handleExists.html +1 -1
- package/typedocs-generated/functions/sql_handle_collection.handleGet.html +1 -1
- package/typedocs-generated/functions/sql_handle_delete.handleDelete.html +1 -1
- package/typedocs-generated/functions/sql_handle_insert.handleInsert.html +1 -1
- package/typedocs-generated/functions/sql_handle_select.handleSelect.html +1 -1
- package/typedocs-generated/functions/sql_handle_select.parseJoinClauses.html +1 -1
- package/typedocs-generated/functions/sql_handle_select.parseSelectClause.html +1 -1
- package/typedocs-generated/functions/sql_handle_update.handleUpdate.html +1 -1
- package/typedocs-generated/functions/sql_utils_index.parseNum.html +1 -1
- package/typedocs-generated/functions/sql_utils_index.parseReturn.html +1 -1
- package/typedocs-generated/functions/sql_utils_index.parseSet.html +1 -1
- package/typedocs-generated/functions/sql_utils_index.removeQuotes.html +1 -1
- package/typedocs-generated/functions/sql_where.parseWhere.html +1 -1
- package/typedocs-generated/index.html +18 -9
- package/typedocs-generated/interfaces/types.Opts.html +2 -2
- package/typedocs-generated/interfaces/types.ValtheraParser.html +2 -2
- package/typedocs-generated/interfaces/types.ValtheraQuery.html +2 -2
- package/typedocs-generated/types/sql_utils_join.util.JoinClause.html +1 -1
- package/typedocs-generated/variables/.ValtheraDbParsers.html +1 -1
- package/typedocs-generated/variables/.ValtheraDbRelations.html +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,15 @@
|
|
|
2
2
|
|
|
3
3
|
All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.
|
|
4
4
|
|
|
5
|
+
### [0.0.13](https://github.com/wxn0brP/ValtheraDB-string-query/compare/v0.0.12...v0.0.13) (2026-02-01)
|
|
6
|
+
|
|
7
|
+
### [0.0.12](https://github.com/wxn0brP/ValtheraDB-string-query/compare/v0.0.11...v0.0.12) (2025-12-06)
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
### Bug Fixes
|
|
11
|
+
|
|
12
|
+
* insert handle () ([5695a97](https://github.com/wxn0brP/ValtheraDB-string-query/commit/5695a9747d9dd03a01e7c3edc411d7b9413924ab))
|
|
13
|
+
|
|
5
14
|
### [0.0.11](https://github.com/wxn0brP/ValtheraDB-string-query/compare/v0.0.10...v0.0.11) (2025-12-06)
|
|
6
15
|
|
|
7
16
|
|
package/bun.lock
CHANGED
|
@@ -7,13 +7,13 @@
|
|
|
7
7
|
"devDependencies": {
|
|
8
8
|
"@types/bun": "*",
|
|
9
9
|
"@types/node": "*",
|
|
10
|
-
"@wxn0brp/db-core": "^0.
|
|
10
|
+
"@wxn0brp/db-core": "^0.4.0",
|
|
11
11
|
"json5": "^2.2.3",
|
|
12
12
|
"tsc-alias": "*",
|
|
13
13
|
"typescript": "*",
|
|
14
14
|
},
|
|
15
15
|
"peerDependencies": {
|
|
16
|
-
"@wxn0brp/db-core": ">=0.
|
|
16
|
+
"@wxn0brp/db-core": ">=0.4.0",
|
|
17
17
|
"json5": "^2.2.3",
|
|
18
18
|
},
|
|
19
19
|
"optionalPeers": [
|
|
@@ -29,13 +29,13 @@
|
|
|
29
29
|
|
|
30
30
|
"@nodelib/fs.walk": ["@nodelib/fs.walk@1.2.8", "", { "dependencies": { "@nodelib/fs.scandir": "2.1.5", "fastq": "^1.6.0" } }, "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg=="],
|
|
31
31
|
|
|
32
|
-
"@types/bun": ["@types/bun@1.3.
|
|
32
|
+
"@types/bun": ["@types/bun@1.3.8", "", { "dependencies": { "bun-types": "1.3.8" } }, "sha512-3LvWJ2q5GerAXYxO2mffLTqOzEu5qnhEAlh48Vnu8WQfnmSwbgagjGZV6BoHKJztENYEDn6QmVd949W4uESRJA=="],
|
|
33
33
|
|
|
34
|
-
"@types/node": ["@types/node@
|
|
34
|
+
"@types/node": ["@types/node@25.1.0", "", { "dependencies": { "undici-types": "~7.16.0" } }, "sha512-t7frlewr6+cbx+9Ohpl0NOTKXZNV9xHRmNOvql47BFJKcEG1CxtxlPEEe+gR9uhVWM4DwhnvTF110mIL4yP9RA=="],
|
|
35
35
|
|
|
36
|
-
"@wxn0brp/db-core": ["@wxn0brp/db-core@0.
|
|
36
|
+
"@wxn0brp/db-core": ["@wxn0brp/db-core@0.4.0", "", { "dependencies": { "@wxn0brp/event-emitter": "^0.0.4" } }, "sha512-BDteuLKygKT1+jq5zR8RpO+YrvwSBDT9rM8/zNT1QtumA1cHTGR9pmDoHMTePF3JyVpXzxtqviGVVGWM59Pkgw=="],
|
|
37
37
|
|
|
38
|
-
"@wxn0brp/event-emitter": ["@wxn0brp/event-emitter@0.0.
|
|
38
|
+
"@wxn0brp/event-emitter": ["@wxn0brp/event-emitter@0.0.4", "", {}, "sha512-C1Os4hEw13NDysPEFHZ6PDV2WRSGp6Q75rtfIAJHuZTl/gMPy+8ndD4dZDMgGglE+EnVYt2F4BU+/zswfOqcKQ=="],
|
|
39
39
|
|
|
40
40
|
"anymatch": ["anymatch@3.1.3", "", { "dependencies": { "normalize-path": "^3.0.0", "picomatch": "^2.0.4" } }, "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw=="],
|
|
41
41
|
|
|
@@ -45,7 +45,7 @@
|
|
|
45
45
|
|
|
46
46
|
"braces": ["braces@3.0.3", "", { "dependencies": { "fill-range": "^7.1.1" } }, "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA=="],
|
|
47
47
|
|
|
48
|
-
"bun-types": ["bun-types@1.3.
|
|
48
|
+
"bun-types": ["bun-types@1.3.8", "", { "dependencies": { "@types/node": "*" } }, "sha512-fL99nxdOWvV4LqjmC+8Q9kW3M4QTtTR1eePs94v5ctGqU8OeceWrSUaRw3JYb7tU3FkMIAjkueehrHPPPGKi5Q=="],
|
|
49
49
|
|
|
50
50
|
"chokidar": ["chokidar@3.6.0", "", { "dependencies": { "anymatch": "~3.1.2", "braces": "~3.0.2", "glob-parent": "~5.1.2", "is-binary-path": "~2.1.0", "is-glob": "~4.0.1", "normalize-path": "~3.0.0", "readdirp": "~3.6.0" }, "optionalDependencies": { "fsevents": "~2.3.2" } }, "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw=="],
|
|
51
51
|
|
|
@@ -55,13 +55,13 @@
|
|
|
55
55
|
|
|
56
56
|
"fast-glob": ["fast-glob@3.3.3", "", { "dependencies": { "@nodelib/fs.stat": "^2.0.2", "@nodelib/fs.walk": "^1.2.3", "glob-parent": "^5.1.2", "merge2": "^1.3.0", "micromatch": "^4.0.8" } }, "sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg=="],
|
|
57
57
|
|
|
58
|
-
"fastq": ["fastq@1.
|
|
58
|
+
"fastq": ["fastq@1.20.1", "", { "dependencies": { "reusify": "^1.0.4" } }, "sha512-GGToxJ/w1x32s/D2EKND7kTil4n8OVk/9mycTc4VDza13lOvpUZTGX3mFSCtV9ksdGBVzvsyAVLM6mHFThxXxw=="],
|
|
59
59
|
|
|
60
60
|
"fill-range": ["fill-range@7.1.1", "", { "dependencies": { "to-regex-range": "^5.0.1" } }, "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg=="],
|
|
61
61
|
|
|
62
62
|
"fsevents": ["fsevents@2.3.3", "", { "os": "darwin" }, "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw=="],
|
|
63
63
|
|
|
64
|
-
"get-tsconfig": ["get-tsconfig@4.13.
|
|
64
|
+
"get-tsconfig": ["get-tsconfig@4.13.1", "", { "dependencies": { "resolve-pkg-maps": "^1.0.0" } }, "sha512-EoY1N2xCn44xU6750Sx7OjOIT59FkmstNc3X6y5xpz7D5cBtZRe/3pSlTkDJgqsOk3WwZPkWfonhhUJfttQo3w=="],
|
|
65
65
|
|
|
66
66
|
"glob-parent": ["glob-parent@5.1.2", "", { "dependencies": { "is-glob": "^4.0.1" } }, "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow=="],
|
|
67
67
|
|
package/dist/index.js
CHANGED
|
@@ -5,4 +5,4 @@ export const ValtheraDbParsers = {
|
|
|
5
5
|
sql: valtheraSQLParser
|
|
6
6
|
};
|
|
7
7
|
export const ValtheraDbRelations = {};
|
|
8
|
-
//# sourceMappingURL=
|
|
8
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,gBAAgB,MAAM,MAAM,CAAC;AACpC,OAAO,iBAAiB,MAAM,OAAO,CAAC;AAEtC,MAAM,CAAC,MAAM,iBAAiB,GAAG;IAC7B,EAAE,EAAE,gBAAgB;IACpB,GAAG,EAAE,iBAAiB;CACzB,CAAC;AAEF,MAAM,CAAC,MAAM,mBAAmB,GAAG,EAAE,CAAC"}
|
package/dist/js.js
CHANGED
|
@@ -31,4 +31,4 @@ class JsParser {
|
|
|
31
31
|
}
|
|
32
32
|
}
|
|
33
33
|
export default JsParser;
|
|
34
|
-
//# sourceMappingURL=
|
|
34
|
+
//# sourceMappingURL=js.js.map
|
package/dist/js.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"js.js","sourceRoot":"","sources":["../src/js.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,MAAM,QAAQ;IACV,KAAK,CAAC,KAAa;QACf,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC;QAC7C,IAAI,CAAC,KAAK;YAAE,MAAM,IAAI,KAAK,CAAC,eAAe,CAAC,CAAC;QAE7C,MAAM,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,GAAG,KAAK,CAAC;QAClC,IAAI,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;QAEnC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;IAC5B,CAAC;IAEO,SAAS,CAAC,OAAe;QAC7B,MAAM,IAAI,GAAG,EAAE,CAAC;QAChB,IAAI,MAAM,GAAG,EAAE,CAAC;QAChB,IAAI,YAAY,GAAG,CAAC,CAAC;QAErB,KAAK,IAAI,IAAI,IAAI,OAAO,EAAE,CAAC;YACvB,IAAI,IAAI,KAAK,GAAG,IAAI,IAAI,KAAK,GAAG;gBAAE,YAAY,EAAE,CAAC;YACjD,IAAI,IAAI,KAAK,GAAG,IAAI,IAAI,KAAK,GAAG;gBAAE,YAAY,EAAE,CAAC;YAEjD,IAAI,IAAI,KAAK,GAAG,IAAI,YAAY,KAAK,CAAC,EAAE,CAAC;gBACrC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;gBACtC,MAAM,GAAG,EAAE,CAAC;YAChB,CAAC;iBAAM,CAAC;gBACJ,MAAM,IAAI,IAAI,CAAC;YACnB,CAAC;QACL,CAAC;QAED,IAAI,MAAM,CAAC,IAAI,EAAE;YAAE,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;QAEzD,OAAO,IAAI,CAAC;IAChB,CAAC;CACJ;AAED,eAAe,QAAQ,CAAC"}
|
|
@@ -23,4 +23,4 @@ export function handleExists(query) {
|
|
|
23
23
|
throw new Error("Invalid EXISTS TABLE/COLLECTION syntax.");
|
|
24
24
|
return parseReturn("issetCollection", [match[1]]);
|
|
25
25
|
}
|
|
26
|
-
//# sourceMappingURL=
|
|
26
|
+
//# sourceMappingURL=collection.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"collection.js","sourceRoot":"","sources":["../../../src/sql/handle/collection.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAEvC,MAAM,UAAU,SAAS,CAAC,KAAa;IACnC,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;QACtC,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC;IACvD,CAAC;IACD,OAAO,WAAW,CAAC,gBAAgB,EAAE,EAAE,CAAC,CAAC;AAC7C,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,KAAa;IACtC,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CACrB,kEAAkE,CACrE,CAAC;IACF,IAAI,CAAC,KAAK;QAAE,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAC;IACvE,OAAO,WAAW,CAAC,kBAAkB,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACvD,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,KAAa;IACpC,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,2DAA2D,CAAC,CAAC;IACvF,IAAI,CAAC,KAAK;QAAE,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAC;IACrE,OAAO,WAAW,CAAC,kBAAkB,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACvD,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,KAAa;IACtC,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,0CAA0C,CAAC,CAAC;IACtE,IAAI,CAAC,KAAK;QAAE,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAC;IACvE,OAAO,WAAW,CAAC,iBAAiB,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACtD,CAAC"}
|
|
@@ -8,4 +8,4 @@ export function handleDelete(query) {
|
|
|
8
8
|
const whereClause = match[2] ? parseWhere(match[2]) : {};
|
|
9
9
|
return parseReturn("remove", [collection, whereClause]);
|
|
10
10
|
}
|
|
11
|
-
//# sourceMappingURL=
|
|
11
|
+
//# sourceMappingURL=delete.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"delete.js","sourceRoot":"","sources":["../../../src/sql/handle/delete.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AACzC,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAExC,MAAM,UAAU,YAAY,CAAC,KAAa;IACtC,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,wCAAwC,CAAC,CAAC;IACpE,IAAI,CAAC,KAAK;QAAE,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAC;IAErD,MAAM,UAAU,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;IAC5B,MAAM,WAAW,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAEzD,OAAO,WAAW,CAAC,QAAQ,EAAE,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC,CAAC;AAC5D,CAAC"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { parseNum, parseReturn } from "../../sql/utils/index.js";
|
|
2
2
|
import { removeQuotes } from "../../sql/utils/index.js";
|
|
3
3
|
export function handleInsert(query) {
|
|
4
|
-
const match = query.match(/INSERT INTO\s+((?:`[^`]+`|"[^"]+"|\w+(?:\.\w+)*))\s*\(\s*([^)]+)\s*\)\s*VALUES\s*\(
|
|
4
|
+
const match = query.match(/INSERT INTO\s+((?:`[^`]+`|"[^"]+"|\w+(?:\.\w+)*))\s*\(\s*([^)]+)\s*\)\s*VALUES\s*\((.*)\)/i);
|
|
5
5
|
if (!match)
|
|
6
6
|
throw new Error("Invalid INSERT syntax");
|
|
7
7
|
const collection = match[1];
|
|
@@ -53,4 +53,4 @@ export function handleInsert(query) {
|
|
|
53
53
|
]);
|
|
54
54
|
return parseReturn("add", [removeQuotes(collection), Object.fromEntries(data)]);
|
|
55
55
|
}
|
|
56
|
-
//# sourceMappingURL=
|
|
56
|
+
//# sourceMappingURL=insert.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"insert.js","sourceRoot":"","sources":["../../../src/sql/handle/insert.ts"],"names":[],"mappings":"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"}
|
|
@@ -52,4 +52,4 @@ export function parseSelectClause(selectClause) {
|
|
|
52
52
|
select: selectClause.split(/\s*,\s*/),
|
|
53
53
|
};
|
|
54
54
|
}
|
|
55
|
-
//# sourceMappingURL=
|
|
55
|
+
//# sourceMappingURL=select.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"select.js","sourceRoot":"","sources":["../../../src/sql/handle/select.ts"],"names":[],"mappings":"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"}
|
|
@@ -9,4 +9,4 @@ export function handleUpdate(query) {
|
|
|
9
9
|
const whereClause = parseWhere(match[3]);
|
|
10
10
|
return parseReturn("update", [collection, whereClause, setClause]);
|
|
11
11
|
}
|
|
12
|
-
//# sourceMappingURL=
|
|
12
|
+
//# sourceMappingURL=update.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"update.js","sourceRoot":"","sources":["../../../src/sql/handle/update.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACnD,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAExC,MAAM,UAAU,YAAY,CAAC,KAAa;IACtC,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,iDAAiD,CAAC,CAAC;IAC7E,IAAI,CAAC,KAAK;QAAE,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAC;IAErD,MAAM,UAAU,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;IAC5B,MAAM,SAAS,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IACrC,MAAM,WAAW,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IAEzC,OAAO,WAAW,CAAC,QAAQ,EAAE,CAAC,UAAU,EAAE,WAAW,EAAE,SAAS,CAAC,CAAC,CAAC;AACvE,CAAC"}
|
package/dist/sql/index.js
CHANGED
|
@@ -41,4 +41,4 @@ class SQLParser {
|
|
|
41
41
|
}
|
|
42
42
|
}
|
|
43
43
|
export default SQLParser;
|
|
44
|
-
//# sourceMappingURL=
|
|
44
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/sql/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AACxF,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAE/C,MAAM,SAAS;IACX,KAAK,CACD,KAAa,EACb,IAAW;QAEX,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;QAC1C,IAAI,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC;YAAE,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QACpD,MAAM,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAClC,MAAM,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;QAEvC,IAAI,MAAM,KAAK,QAAQ,EAAE,CAAC;YACtB,OAAO,YAAY,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QACrC,CAAC;aAAM,IAAI,MAAM,KAAK,QAAQ,EAAE,CAAC;YAC7B,OAAO,YAAY,CAAC,KAAK,CAAC,CAAC;QAC/B,CAAC;aAAM,IAAI,MAAM,KAAK,QAAQ,EAAE,CAAC;YAC7B,OAAO,YAAY,CAAC,KAAK,CAAC,CAAC;QAC/B,CAAC;aAAM,IAAI,MAAM,KAAK,QAAQ,EAAE,CAAC;YAC7B,OAAO,YAAY,CAAC,KAAK,CAAC,CAAC;QAC/B,CAAC;QACD,aAAa;aACR,IAAI,MAAM,KAAK,KAAK,EAAE,CAAC;YACxB,OAAO,SAAS,CAAC,KAAK,CAAC,CAAC;QAC5B,CAAC;aAAM,IAAI,MAAM,KAAK,QAAQ,EAAE,CAAC;YAC7B,OAAO,YAAY,CAAC,KAAK,CAAC,CAAC;QAC/B,CAAC;aAAM,IAAI,MAAM,KAAK,MAAM,EAAE,CAAC;YAC3B,OAAO,UAAU,CAAC,KAAK,CAAC,CAAC;QAC7B,CAAC;aAAM,IAAI,MAAM,KAAK,QAAQ,EAAE,CAAC;YAC7B,OAAO,YAAY,CAAC,KAAK,CAAC,CAAC;QAC/B,CAAC;aAAM,CAAC;YACJ,MAAM,IAAI,KAAK,CAAC,iBAAiB,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;QACnD,CAAC;IACL,CAAC;CACJ;AAED,eAAe,SAAS,CAAC"}
|
package/dist/sql/utils/index.js
CHANGED
|
@@ -18,4 +18,4 @@ export function removeQuotes(str) {
|
|
|
18
18
|
export function parseNum(str) {
|
|
19
19
|
return isNaN(+str) ? str : +str;
|
|
20
20
|
}
|
|
21
|
-
//# sourceMappingURL=
|
|
21
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/sql/utils/index.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,WAAW,CAAC,MAAc,EAAE,IAAW;IACnD,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;AAC5B,CAAC;AAED,MAAM,UAAU,QAAQ,CAAC,SAAiB;IACtC,OAAO,MAAM,CAAC,WAAW,CACrB,SAAS,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;QAClC,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,GAAQ,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QAChD,IAAI,WAAW,GAAQ,KAAK,CAAC;QAC7B,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC;YAAE,WAAW,GAAG,CAAC,KAAK,CAAC;;YACpC,WAAW,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC;QAEvC,OAAO,CAAC,YAAY,CAAC,GAAG,CAAC,EAAE,WAAW,CAAC,CAAC;IAC5C,CAAC,CAAC,CACL,CAAC;AACN,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,GAAW;IACpC,OAAO,GAAG,CAAC,OAAO,CAAC,gBAAgB,EAAE,EAAE,CAAC,CAAC;AAC7C,CAAC;AAED,MAAM,UAAU,QAAQ,CAAC,GAAW;IAChC,OAAO,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;AACpC,CAAC"}
|
|
@@ -49,4 +49,4 @@ export class JoinToRelationsEngine {
|
|
|
49
49
|
return relations;
|
|
50
50
|
}
|
|
51
51
|
}
|
|
52
|
-
//# sourceMappingURL=
|
|
52
|
+
//# sourceMappingURL=join.util.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"join.util.js","sourceRoot":"","sources":["../../../src/sql/utils/join.util.ts"],"names":[],"mappings":"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"}
|
package/dist/sql/where.js
CHANGED
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
// It’s cheap - it’s cheap
|
|
2
|
+
// It’s good - it’s cheap
|
|
1
3
|
const operators = {
|
|
2
4
|
"=": null,
|
|
3
5
|
"<": "$lt",
|
|
@@ -6,8 +8,19 @@ const operators = {
|
|
|
6
8
|
">=": "$gte",
|
|
7
9
|
"!=": "$not",
|
|
8
10
|
"IN": "$in",
|
|
9
|
-
"NOT IN": "$nin"
|
|
11
|
+
"NOT IN": "$nin",
|
|
12
|
+
"NOT ANY": "$nin",
|
|
13
|
+
"IS": null,
|
|
14
|
+
"IS NOT": "$not"
|
|
10
15
|
};
|
|
16
|
+
function escapeRegex(string) {
|
|
17
|
+
return string.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
|
|
18
|
+
}
|
|
19
|
+
function likeToRegex(pattern, caseInsensitive = false) {
|
|
20
|
+
const escaped = escapeRegex(pattern);
|
|
21
|
+
const converted = escaped.replace(/%/g, '.*').replace(/_/g, '.');
|
|
22
|
+
return `${caseInsensitive ? '(?i)' : ''}^${converted}$`;
|
|
23
|
+
}
|
|
11
24
|
function mergeQueries(target, source) {
|
|
12
25
|
for (const key in source) {
|
|
13
26
|
if (key.startsWith('$')) {
|
|
@@ -40,7 +53,7 @@ export function parseWhere(where) {
|
|
|
40
53
|
// Tokenize the input string, handling parentheses and quoted values
|
|
41
54
|
const tokens = where
|
|
42
55
|
.replace(/\s+(?=(?:[^'"]*['"][^'"]*['"])*[^'"]*$)/g, " ")
|
|
43
|
-
.match(/(?:\(|\)|'[^']*'|"[^"]*"
|
|
56
|
+
.match(/(?:\(|\)|'[^']*'|"[^"]*"|>=|<=|!=|<>|=|<|>|[^\s()=<>!]+)/g) || [];
|
|
44
57
|
let frames = [];
|
|
45
58
|
let current = {};
|
|
46
59
|
let operatorStack = [];
|
|
@@ -112,20 +125,54 @@ export function parseWhere(where) {
|
|
|
112
125
|
key = key.split(".").pop();
|
|
113
126
|
}
|
|
114
127
|
let opToken = tokens[++i]?.trim();
|
|
128
|
+
// Handle multi-word operators
|
|
129
|
+
if (opToken) {
|
|
130
|
+
const upperOp = opToken.toUpperCase();
|
|
131
|
+
const nextToken = tokens[i + 1]?.trim().toUpperCase();
|
|
132
|
+
if (upperOp === "NOT" && (nextToken === "IN" || nextToken === "LIKE" || nextToken === "ILIKE" || nextToken === "ANY" || nextToken === "BETWEEN")) {
|
|
133
|
+
opToken = `NOT ${nextToken}`;
|
|
134
|
+
i++;
|
|
135
|
+
}
|
|
136
|
+
else if (upperOp === "IS") {
|
|
137
|
+
if (nextToken === "NOT") {
|
|
138
|
+
opToken = "IS NOT";
|
|
139
|
+
i++;
|
|
140
|
+
// Check for NULL
|
|
141
|
+
if (tokens[i + 1]?.trim().toUpperCase() === "NULL") {
|
|
142
|
+
// Correctly consume NULL as value
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
}
|
|
115
147
|
let value = tokens[++i]?.trim();
|
|
116
148
|
if (!key || !opToken || value === undefined) {
|
|
117
149
|
throw new Error(`Invalid condition near '${key} ${opToken} ${value}'`);
|
|
118
150
|
}
|
|
119
151
|
// Handle quoted values
|
|
120
|
-
if ((value.startsWith("'") && value.endsWith("'")) || (value.startsWith('"') && value.endsWith('"'))) {
|
|
152
|
+
if (typeof value === 'string' && ((value.startsWith("'") && value.endsWith("'")) || (value.startsWith('"') && value.endsWith('"')))) {
|
|
121
153
|
value = value.slice(1, -1);
|
|
122
154
|
}
|
|
155
|
+
// Handle NULL value
|
|
156
|
+
if (typeof value === 'string' && value.toUpperCase() === "NULL") {
|
|
157
|
+
value = null;
|
|
158
|
+
}
|
|
123
159
|
// Parse numeric values
|
|
124
|
-
if (!isNaN(Number(value))) {
|
|
160
|
+
if (value !== null && !isNaN(Number(value))) {
|
|
125
161
|
value = Number(value);
|
|
126
162
|
}
|
|
127
|
-
// Handle IN
|
|
128
|
-
if (opToken.toUpperCase() === "IN" || opToken.toUpperCase() === "NOT IN") {
|
|
163
|
+
// Handle IN, NOT IN, NOT ANY operations
|
|
164
|
+
if (opToken.toUpperCase() === "IN" || opToken.toUpperCase() === "NOT IN" || opToken.toUpperCase() === "NOT ANY") {
|
|
165
|
+
// If the value is just "(", we need to consume tokens until we find the closing ")"
|
|
166
|
+
if (value === "(") {
|
|
167
|
+
let collected = "(";
|
|
168
|
+
while (i < tokens.length - 1) {
|
|
169
|
+
const next = tokens[++i];
|
|
170
|
+
collected += next;
|
|
171
|
+
if (next === ")")
|
|
172
|
+
break;
|
|
173
|
+
}
|
|
174
|
+
value = collected;
|
|
175
|
+
}
|
|
129
176
|
if (!value.startsWith("(") || !value.endsWith(")")) {
|
|
130
177
|
throw new Error(`Invalid syntax for '${opToken}' near '${value}'`);
|
|
131
178
|
}
|
|
@@ -137,6 +184,60 @@ export function parseWhere(where) {
|
|
|
137
184
|
return isNaN(Number(v)) ? v : Number(v);
|
|
138
185
|
});
|
|
139
186
|
}
|
|
187
|
+
// Handle LIKE/NOT LIKE/ILIKE/NOT ILIKE specially to convert to regex
|
|
188
|
+
if (opToken.toUpperCase() === "LIKE" || opToken.toUpperCase() === "NOT LIKE" || opToken.toUpperCase() === "ILIKE" || opToken.toUpperCase() === "NOT ILIKE") {
|
|
189
|
+
if (typeof value !== 'string') {
|
|
190
|
+
throw new Error(`LIKE value must be a string, got ${value}`);
|
|
191
|
+
}
|
|
192
|
+
const isCaseInsensitive = opToken.toUpperCase().includes("ILIKE");
|
|
193
|
+
const regex = likeToRegex(value, isCaseInsensitive);
|
|
194
|
+
const isNot = opToken.toUpperCase().startsWith("NOT");
|
|
195
|
+
if (isNot) {
|
|
196
|
+
// NOT LIKE -> {$not: {$regex: {key: regex}}}
|
|
197
|
+
if (!current["$not"])
|
|
198
|
+
current["$not"] = {};
|
|
199
|
+
if (!current["$not"]["$regex"])
|
|
200
|
+
current["$not"]["$regex"] = {};
|
|
201
|
+
current["$not"]["$regex"][key] = regex;
|
|
202
|
+
}
|
|
203
|
+
else {
|
|
204
|
+
// LIKE -> {$regex: {key: regex}}
|
|
205
|
+
if (!current["$regex"])
|
|
206
|
+
current["$regex"] = {};
|
|
207
|
+
current["$regex"][key] = regex;
|
|
208
|
+
}
|
|
209
|
+
continue; // processing done for this token
|
|
210
|
+
}
|
|
211
|
+
// Handle BETWEEN/NOT BETWEEN
|
|
212
|
+
if (opToken.toUpperCase() === "BETWEEN" || opToken.toUpperCase() === "NOT BETWEEN") {
|
|
213
|
+
const andToken = tokens[++i]?.trim();
|
|
214
|
+
if (!andToken || andToken.toUpperCase() !== "AND") {
|
|
215
|
+
throw new Error("BETWEEN expects AND, got " + andToken);
|
|
216
|
+
}
|
|
217
|
+
let val2 = tokens[++i]?.trim();
|
|
218
|
+
// Handle quoted values for val2
|
|
219
|
+
if (typeof val2 === 'string' && ((val2.startsWith("'") && val2.endsWith("'")) || (val2.startsWith('"') && val2.endsWith('"')))) {
|
|
220
|
+
val2 = val2.slice(1, -1);
|
|
221
|
+
}
|
|
222
|
+
// Handle numerics for val2
|
|
223
|
+
if (val2 !== null && !isNaN(Number(val2))) {
|
|
224
|
+
val2 = Number(val2);
|
|
225
|
+
}
|
|
226
|
+
if (opToken.toUpperCase() === "NOT BETWEEN") {
|
|
227
|
+
if (!current["$not"])
|
|
228
|
+
current["$not"] = {};
|
|
229
|
+
if (!current["$not"]["$between"])
|
|
230
|
+
current["$not"]["$between"] = {};
|
|
231
|
+
current["$not"]["$between"][key] = [value, val2];
|
|
232
|
+
}
|
|
233
|
+
else {
|
|
234
|
+
// BETWEEN -> {$between: {key: [val1, val2]}}
|
|
235
|
+
if (!current["$between"])
|
|
236
|
+
current["$between"] = {};
|
|
237
|
+
current["$between"][key] = [value, val2];
|
|
238
|
+
}
|
|
239
|
+
continue;
|
|
240
|
+
}
|
|
140
241
|
// Map the operator to the query operators
|
|
141
242
|
const mappedOp = operators[opToken.toUpperCase()];
|
|
142
243
|
if (mappedOp !== undefined) {
|
|
@@ -165,4 +266,4 @@ export function parseWhere(where) {
|
|
|
165
266
|
}
|
|
166
267
|
return current;
|
|
167
268
|
}
|
|
168
|
-
//# sourceMappingURL=
|
|
269
|
+
//# sourceMappingURL=where.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"where.js","sourceRoot":"","sources":["../../src/sql/where.ts"],"names":[],"mappings":"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"}
|
package/dist/types.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export {};
|
|
2
|
-
//# sourceMappingURL=
|
|
2
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":""}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@wxn0brp/db-string-query",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.13",
|
|
4
4
|
"main": "dist/index.js",
|
|
5
5
|
"types": "dist/index.d.ts",
|
|
6
6
|
"repository": {
|
|
@@ -14,13 +14,13 @@
|
|
|
14
14
|
"devDependencies": {
|
|
15
15
|
"@types/bun": "*",
|
|
16
16
|
"@types/node": "*",
|
|
17
|
-
"@wxn0brp/db-core": "^0.
|
|
17
|
+
"@wxn0brp/db-core": "^0.4.0",
|
|
18
18
|
"json5": "^2.2.3",
|
|
19
19
|
"tsc-alias": "*",
|
|
20
20
|
"typescript": "*"
|
|
21
21
|
},
|
|
22
22
|
"peerDependencies": {
|
|
23
|
-
"@wxn0brp/db-core": ">=0.
|
|
23
|
+
"@wxn0brp/db-core": ">=0.4.0",
|
|
24
24
|
"json5": "^2.2.3"
|
|
25
25
|
},
|
|
26
26
|
"peerDependenciesMeta": {
|
package/src/sql/handle/insert.ts
CHANGED
|
@@ -2,7 +2,7 @@ import { parseNum, parseReturn } from "#sql/utils";
|
|
|
2
2
|
import { removeQuotes } from "#sql/utils";
|
|
3
3
|
|
|
4
4
|
export function handleInsert(query: string) {
|
|
5
|
-
const match = query.match(/INSERT INTO\s+((?:`[^`]+`|"[^"]+"|\w+(?:\.\w+)*))\s*\(\s*([^)]+)\s*\)\s*VALUES\s*\(
|
|
5
|
+
const match = query.match(/INSERT INTO\s+((?:`[^`]+`|"[^"]+"|\w+(?:\.\w+)*))\s*\(\s*([^)]+)\s*\)\s*VALUES\s*\((.*)\)/i);
|
|
6
6
|
if (!match) throw new Error("Invalid INSERT syntax");
|
|
7
7
|
const collection = match[1];
|
|
8
8
|
const keys = match[2].split(/\s*,\s*/);
|