uql-orm 0.4.0 → 0.4.4
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 +11 -21
- package/README.md +2 -2
- package/dist/browser/uql-browser.min.js +31 -30
- package/dist/browser/uql-browser.min.js.map +1 -1
- package/package.json +5 -5
package/CHANGELOG.md
CHANGED
|
@@ -1,25 +1,19 @@
|
|
|
1
|
-
# Change Log
|
|
2
|
-
|
|
3
|
-
All notable changes to this project will be documented in this file.
|
|
4
|
-
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
5
|
-
|
|
6
|
-
# [0.4.0](https://github.com/rogerpadilla/uql/compare/uql-orm@0.3.3...uql-orm@0.4.0) (2026-03-13)
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
### Features
|
|
10
|
-
|
|
11
|
-
* implement cursor-based stream with across all queriers and deprecate in favor of ([536b67b](https://github.com/rogerpadilla/uql/commit/536b67b6bb0ab8024449f557a83c43a3b4f09fb5))
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
1
|
# Changelog
|
|
18
2
|
|
|
19
3
|
All notable changes to this project will be documented in this file. Please add new changes to the top.
|
|
20
4
|
|
|
21
5
|
date format is [yyyy-mm-dd]
|
|
22
6
|
|
|
7
|
+
## [0.4.4] - 2026-03-14
|
|
8
|
+
### Dependencies
|
|
9
|
+
- **Vite 7 → 8**: Upgraded to Vite 8 (powered by Rolldown), replacing the `vite-tsconfig-paths` plugin with Vite's built-in `resolve.tsconfigPaths` option.
|
|
10
|
+
- **TypeScript 5.9 → 6.0**: Upgraded to TypeScript 6.0.1-rc. Removed 6 redundant compiler options now default in TS6: `strict`, `strictNullChecks`, `noImplicitAny`, `esModuleInterop`, `allowSyntheticDefaultImports`, `useDefineForClassFields`.
|
|
11
|
+
- Removed `vite-tsconfig-paths` (replaced by built-in Vite 8 feature).
|
|
12
|
+
|
|
13
|
+
## [0.4.1] - 2026-03-13
|
|
14
|
+
### Documentation
|
|
15
|
+
- Removed Discord badge from README temporarily.
|
|
16
|
+
|
|
23
17
|
## [0.4.0] - 2026-03-13
|
|
24
18
|
### New Features
|
|
25
19
|
- **`findManyStream()` — Cursor-Based Async Iteration**: Stream query results row-by-row via `for await...of`. No relation-filling or lifecycle hooks — optimized for raw throughput on large result sets.
|
|
@@ -40,10 +34,6 @@ date format is [yyyy-mm-dd]
|
|
|
40
34
|
### Breaking Changes
|
|
41
35
|
- **Removed deprecated `reference` field option**: Use `references` instead. The deprecated `FieldOptions.reference` property and its internal usage in `definition.ts` have been removed.
|
|
42
36
|
|
|
43
|
-
### Test Coverage
|
|
44
|
-
- **Integration Tests**: `shouldFindManyStream` (data flow, filter, empty) across all DB drivers. `shouldDistinct` and `shouldFindManyStream` (insert→stream→compare) in SQL-only spec.
|
|
45
|
-
- **Unit Tests**: `findManyStream` dual-API pattern, `unflatObject` (flat, deep nested, null skipping, equivalence with `unflatObjects`), 6 `$distinct` SQL generation tests (with `$select`, `$where`+`$sort`, `$limit`+`$skip`, `false` flag).
|
|
46
|
-
|
|
47
37
|
## [0.3.3] - 2026-03-12
|
|
48
38
|
### Bug Fixes
|
|
49
39
|
- **Upsert `onUpdate` Semantics**: `onUpdate`-only fields (e.g. `updatedAt`) are no longer included in the `INSERT VALUES` clause of upserts. They now use direct parameter values in the `UPDATE SET` clause, giving correct semantics: newly inserted rows have `updatedAt = NULL`, updated rows get a fresh timestamp.
|
|
@@ -541,7 +531,7 @@ date format is [yyyy-mm-dd]
|
|
|
541
531
|
Reflect major changes in the package structure and dependencies.
|
|
542
532
|
|
|
543
533
|
## [2.0.0] - 2025-12-29
|
|
544
|
-
- **Major Rebranding**: Rebranded the project from **Nukak** to **UQL** (Universal Query Language -
|
|
534
|
+
- **Major Rebranding**: Rebranded the project from **Nukak** to **UQL** (Universal Query Language - back to its original name!).
|
|
545
535
|
- New Slogan: **"One Language. Frontend to Backend."**
|
|
546
536
|
- Project homepage: [uql-orm.dev](https://uql-orm.dev).
|
|
547
537
|
- **Package Unification**: Unified all database adapters (`mysql`, `postgres`, `maria`, `sqlite`, `mongo`) and `express` middleware into a single core package: `uql-orm`.
|
package/README.md
CHANGED
|
@@ -2,9 +2,9 @@
|
|
|
2
2
|
|
|
3
3
|
<a href="https://uql-orm.dev"><img src="assets/logo.svg" alt="uql" width="80" /></a>
|
|
4
4
|
|
|
5
|
-
[](https://github.com/rogerpadilla/uql) [](https://coveralls.io/github/rogerpadilla/uql?branch=main) [](https://github.com/rogerpadilla/uql/blob/main/LICENSE) [](https://www.npmjs.com/package/uql-orm)
|
|
5
|
+
[](https://github.com/rogerpadilla/uql) [](https://coveralls.io/github/rogerpadilla/uql?branch=main) [](https://github.com/rogerpadilla/uql/blob/main/LICENSE) [](https://www.npmjs.com/package/uql-orm)
|
|
6
6
|
|
|
7
|
-
**[UQL](https://uql-orm.dev)** is the [
|
|
7
|
+
**[UQL](https://uql-orm.dev)** is the [best TypeScript ORM](https://www.uql-orm.dev/blog/in-search-of-the-fastest-typescript-orm/). It is engineered to be **fast**, **safe**, and **universally compatible**.
|
|
8
8
|
|
|
9
9
|
|
|
10
10
|
```ts
|
|
@@ -978,7 +978,7 @@ function getDdlForTable(entity, querier, primaryKeyType) {
|
|
|
978
978
|
}
|
|
979
979
|
|
|
980
980
|
// src/index.ts
|
|
981
|
-
var
|
|
981
|
+
var b = {
|
|
982
982
|
reset: [
|
|
983
983
|
0,
|
|
984
984
|
0
|
|
@@ -1146,37 +1146,38 @@ var d = {
|
|
|
1146
1146
|
49
|
|
1147
1147
|
]
|
|
1148
1148
|
};
|
|
1149
|
-
function
|
|
1149
|
+
function i(e) {
|
|
1150
1150
|
return String(e);
|
|
1151
1151
|
}
|
|
1152
|
-
|
|
1153
|
-
|
|
1154
|
-
function
|
|
1155
|
-
let e = typeof process != "undefined" ? process : void 0,
|
|
1156
|
-
return !("NO_COLOR" in
|
|
1157
|
-
}
|
|
1158
|
-
function
|
|
1159
|
-
let
|
|
1160
|
-
let
|
|
1161
|
-
do
|
|
1162
|
-
while (~
|
|
1163
|
-
return
|
|
1164
|
-
},
|
|
1165
|
-
let
|
|
1166
|
-
let s = String(
|
|
1167
|
-
return ~
|
|
1152
|
+
i.open = "";
|
|
1153
|
+
i.close = "";
|
|
1154
|
+
function B() {
|
|
1155
|
+
let e = typeof process != "undefined" ? process : void 0, r = (e == null ? void 0 : e.env) || {}, a = r.FORCE_TTY !== "false", l = (e == null ? void 0 : e.argv) || [];
|
|
1156
|
+
return !("NO_COLOR" in r || l.includes("--no-color")) && ("FORCE_COLOR" in r || l.includes("--color") || (e == null ? void 0 : e.platform) === "win32" || a && r.TERM !== "dumb" || "CI" in r) || typeof window != "undefined" && !!window.chrome;
|
|
1157
|
+
}
|
|
1158
|
+
function C({ force: e } = {}) {
|
|
1159
|
+
let r = e || B(), a = (t, o, u, n)=>{
|
|
1160
|
+
let g = "", s = 0;
|
|
1161
|
+
do g += t.substring(s, n) + u, s = n + o.length, n = t.indexOf(o, s);
|
|
1162
|
+
while (~n)
|
|
1163
|
+
return g + t.substring(s);
|
|
1164
|
+
}, l = (t, o, u = t)=>{
|
|
1165
|
+
let n = (g)=>{
|
|
1166
|
+
let s = String(g), h = s.indexOf(o, t.length);
|
|
1167
|
+
return ~h ? t + a(s, o, u, h) + o : t + s + o;
|
|
1168
1168
|
};
|
|
1169
|
-
return
|
|
1170
|
-
},
|
|
1171
|
-
isColorSupported:
|
|
1172
|
-
},
|
|
1173
|
-
for(let
|
|
1174
|
-
let
|
|
1175
|
-
|
|
1176
|
-
}
|
|
1177
|
-
return
|
|
1178
|
-
}
|
|
1179
|
-
var
|
|
1169
|
+
return n.open = t, n.close = o, n;
|
|
1170
|
+
}, c = {
|
|
1171
|
+
isColorSupported: r
|
|
1172
|
+
}, f = (t)=>`\x1B[${t}m`;
|
|
1173
|
+
for(let t in b){
|
|
1174
|
+
let o = b[t];
|
|
1175
|
+
c[t] = r ? l(f(o[0]), f(o[1]), o[2]) : i;
|
|
1176
|
+
}
|
|
1177
|
+
return c;
|
|
1178
|
+
}
|
|
1179
|
+
var d = C();
|
|
1180
|
+
var y = d;
|
|
1180
1181
|
|
|
1181
1182
|
function _mergeNamespaces$1(n, m) {
|
|
1182
1183
|
m.forEach(function(e) {
|
|
@@ -2170,7 +2171,7 @@ function validateOptions(options) {
|
|
|
2170
2171
|
function getColorsHighlight() {
|
|
2171
2172
|
return DEFAULT_THEME_KEYS.reduce((colors, key)=>{
|
|
2172
2173
|
const value = DEFAULT_THEME[key];
|
|
2173
|
-
const color = value &&
|
|
2174
|
+
const color = value && y[value];
|
|
2174
2175
|
if (color && typeof color.close === "string" && typeof color.open === "string") {
|
|
2175
2176
|
colors[key] = color;
|
|
2176
2177
|
} else {
|