tinybase 10.0.0-beta.1 → 10.0.0-beta.2
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/@types/common/index.d.ts +1 -0
- package/@types/common/with-schemas/index.d.ts +1 -0
- package/@types/indexes/index.d.ts +1 -0
- package/@types/indexes/with-schemas/index.d.ts +1 -0
- package/@types/metrics/index.d.ts +1 -0
- package/@types/metrics/with-schemas/index.d.ts +1 -0
- package/@types/omni/index.d.ts +1 -0
- package/@types/omni/with-schemas/index.d.ts +1 -0
- package/@types/persisters/index.d.ts +1 -0
- package/@types/persisters/persister-partykit-server/index.d.ts +17 -0
- package/@types/persisters/persister-partykit-server/with-schemas/index.d.ts +17 -0
- package/@types/persisters/persister-tinyjoin/index.d.ts +197 -0
- package/@types/persisters/persister-tinyjoin/with-schemas/index.d.ts +221 -0
- package/@types/persisters/with-schemas/index.d.ts +1 -0
- package/@types/queries/index.d.ts +3 -0
- package/@types/queries/with-schemas/index.d.ts +3 -0
- package/@types/relationships/index.d.ts +1 -0
- package/@types/relationships/with-schemas/index.d.ts +1 -0
- package/@types/store/index.d.ts +4 -0
- package/@types/store/with-schemas/index.d.ts +4 -0
- package/@types/ui-react/index.d.ts +2 -0
- package/@types/ui-react/with-schemas/index.d.ts +1 -0
- package/@types/ui-react-dom-charts/index.d.ts +7 -0
- package/@types/ui-react-dom-charts/with-schemas/index.d.ts +7 -0
- package/@types/ui-solid/index.d.ts +2 -0
- package/@types/ui-solid/with-schemas/index.d.ts +1 -0
- package/@types/ui-svelte/index.d.ts +23 -0
- package/@types/ui-svelte/with-schemas/index.d.ts +23 -0
- package/@types/ui-svelte-dom/index.d.ts +10 -0
- package/@types/ui-svelte-dom/with-schemas/index.d.ts +10 -0
- package/@types/ui-svelte-inspector/index.d.ts +1 -0
- package/@types/ui-svelte-inspector/with-schemas/index.d.ts +1 -0
- package/min/omni/index.js +1 -1
- package/min/omni/index.js.gz +0 -0
- package/min/omni/with-schemas/index.js +1 -1
- package/min/omni/with-schemas/index.js.gz +0 -0
- package/min/persisters/index.js +1 -1
- package/min/persisters/index.js.gz +0 -0
- package/min/persisters/persister-better-sqlite3/index.js +1 -1
- package/min/persisters/persister-better-sqlite3/index.js.gz +0 -0
- package/min/persisters/persister-better-sqlite3/with-schemas/index.js +1 -1
- package/min/persisters/persister-better-sqlite3/with-schemas/index.js.gz +0 -0
- package/min/persisters/persister-capacitor-sqlite/index.js +1 -1
- package/min/persisters/persister-capacitor-sqlite/index.js.gz +0 -0
- package/min/persisters/persister-capacitor-sqlite/with-schemas/index.js +1 -1
- package/min/persisters/persister-capacitor-sqlite/with-schemas/index.js.gz +0 -0
- package/min/persisters/persister-cr-sqlite-wasm/index.js +1 -1
- package/min/persisters/persister-cr-sqlite-wasm/index.js.gz +0 -0
- package/min/persisters/persister-cr-sqlite-wasm/with-schemas/index.js +1 -1
- package/min/persisters/persister-cr-sqlite-wasm/with-schemas/index.js.gz +0 -0
- package/min/persisters/persister-durable-object-sql-storage/index.js +1 -1
- package/min/persisters/persister-durable-object-sql-storage/index.js.gz +0 -0
- package/min/persisters/persister-durable-object-sql-storage/with-schemas/index.js +1 -1
- package/min/persisters/persister-durable-object-sql-storage/with-schemas/index.js.gz +0 -0
- package/min/persisters/persister-electric-sql/index.js +1 -1
- package/min/persisters/persister-electric-sql/index.js.gz +0 -0
- package/min/persisters/persister-electric-sql/with-schemas/index.js +1 -1
- package/min/persisters/persister-electric-sql/with-schemas/index.js.gz +0 -0
- package/min/persisters/persister-expo-sqlite/index.js +1 -1
- package/min/persisters/persister-expo-sqlite/index.js.gz +0 -0
- package/min/persisters/persister-expo-sqlite/with-schemas/index.js +1 -1
- package/min/persisters/persister-expo-sqlite/with-schemas/index.js.gz +0 -0
- package/min/persisters/persister-libsql/index.js +1 -1
- package/min/persisters/persister-libsql/index.js.gz +0 -0
- package/min/persisters/persister-libsql/with-schemas/index.js +1 -1
- package/min/persisters/persister-libsql/with-schemas/index.js.gz +0 -0
- package/min/persisters/persister-pg/index.js +1 -1
- package/min/persisters/persister-pg/index.js.gz +0 -0
- package/min/persisters/persister-pg/with-schemas/index.js +1 -1
- package/min/persisters/persister-pg/with-schemas/index.js.gz +0 -0
- package/min/persisters/persister-pglite/index.js +1 -1
- package/min/persisters/persister-pglite/index.js.gz +0 -0
- package/min/persisters/persister-pglite/with-schemas/index.js +1 -1
- package/min/persisters/persister-pglite/with-schemas/index.js.gz +0 -0
- package/min/persisters/persister-postgres/index.js +1 -1
- package/min/persisters/persister-postgres/index.js.gz +0 -0
- package/min/persisters/persister-postgres/with-schemas/index.js +1 -1
- package/min/persisters/persister-postgres/with-schemas/index.js.gz +0 -0
- package/min/persisters/persister-powersync/index.js +1 -1
- package/min/persisters/persister-powersync/index.js.gz +0 -0
- package/min/persisters/persister-powersync/with-schemas/index.js +1 -1
- package/min/persisters/persister-powersync/with-schemas/index.js.gz +0 -0
- package/min/persisters/persister-react-native-sqlite/index.js +1 -1
- package/min/persisters/persister-react-native-sqlite/index.js.gz +0 -0
- package/min/persisters/persister-react-native-sqlite/with-schemas/index.js +1 -1
- package/min/persisters/persister-react-native-sqlite/with-schemas/index.js.gz +0 -0
- package/min/persisters/persister-sqlite-bun/index.js +1 -1
- package/min/persisters/persister-sqlite-bun/index.js.gz +0 -0
- package/min/persisters/persister-sqlite-bun/with-schemas/index.js +1 -1
- package/min/persisters/persister-sqlite-bun/with-schemas/index.js.gz +0 -0
- package/min/persisters/persister-sqlite-node/index.js +1 -1
- package/min/persisters/persister-sqlite-node/index.js.gz +0 -0
- package/min/persisters/persister-sqlite-node/with-schemas/index.js +1 -1
- package/min/persisters/persister-sqlite-node/with-schemas/index.js.gz +0 -0
- package/min/persisters/persister-sqlite-wasm/index.js +1 -1
- package/min/persisters/persister-sqlite-wasm/index.js.gz +0 -0
- package/min/persisters/persister-sqlite-wasm/with-schemas/index.js +1 -1
- package/min/persisters/persister-sqlite-wasm/with-schemas/index.js.gz +0 -0
- package/min/persisters/persister-sqlite3/index.js +1 -1
- package/min/persisters/persister-sqlite3/index.js.gz +0 -0
- package/min/persisters/persister-sqlite3/with-schemas/index.js +1 -1
- package/min/persisters/persister-sqlite3/with-schemas/index.js.gz +0 -0
- package/min/persisters/persister-tinyjoin/index.js +1 -0
- package/min/persisters/persister-tinyjoin/index.js.gz +0 -0
- package/min/persisters/persister-tinyjoin/with-schemas/index.js +1 -0
- package/min/persisters/persister-tinyjoin/with-schemas/index.js.gz +0 -0
- package/min/persisters/with-schemas/index.js +1 -1
- package/min/persisters/with-schemas/index.js.gz +0 -0
- package/omni/index.js +146 -66
- package/omni/with-schemas/index.js +146 -66
- package/package.json +41 -1
- package/persisters/index.js +28 -13
- package/persisters/persister-better-sqlite3/index.js +70 -55
- package/persisters/persister-better-sqlite3/with-schemas/index.js +70 -55
- package/persisters/persister-capacitor-sqlite/index.js +70 -55
- package/persisters/persister-capacitor-sqlite/with-schemas/index.js +70 -55
- package/persisters/persister-cr-sqlite-wasm/index.js +70 -55
- package/persisters/persister-cr-sqlite-wasm/with-schemas/index.js +70 -55
- package/persisters/persister-durable-object-sql-storage/index.js +28 -13
- package/persisters/persister-durable-object-sql-storage/with-schemas/index.js +28 -13
- package/persisters/persister-electric-sql/index.js +70 -55
- package/persisters/persister-electric-sql/with-schemas/index.js +70 -55
- package/persisters/persister-expo-sqlite/index.js +70 -55
- package/persisters/persister-expo-sqlite/with-schemas/index.js +70 -55
- package/persisters/persister-libsql/index.js +70 -55
- package/persisters/persister-libsql/with-schemas/index.js +70 -55
- package/persisters/persister-pg/index.js +77 -62
- package/persisters/persister-pg/with-schemas/index.js +77 -62
- package/persisters/persister-pglite/index.js +28 -13
- package/persisters/persister-pglite/with-schemas/index.js +28 -13
- package/persisters/persister-postgres/index.js +28 -13
- package/persisters/persister-postgres/with-schemas/index.js +28 -13
- package/persisters/persister-powersync/index.js +81 -66
- package/persisters/persister-powersync/with-schemas/index.js +81 -66
- package/persisters/persister-react-native-sqlite/index.js +70 -55
- package/persisters/persister-react-native-sqlite/with-schemas/index.js +70 -55
- package/persisters/persister-sqlite-bun/index.js +70 -55
- package/persisters/persister-sqlite-bun/with-schemas/index.js +70 -55
- package/persisters/persister-sqlite-node/index.js +70 -55
- package/persisters/persister-sqlite-node/with-schemas/index.js +70 -55
- package/persisters/persister-sqlite-wasm/index.js +70 -55
- package/persisters/persister-sqlite-wasm/with-schemas/index.js +70 -55
- package/persisters/persister-sqlite3/index.js +70 -55
- package/persisters/persister-sqlite3/with-schemas/index.js +70 -55
- package/persisters/persister-tinyjoin/index.js +1710 -0
- package/persisters/persister-tinyjoin/with-schemas/index.js +1710 -0
- package/persisters/with-schemas/index.js +28 -13
- package/readme.md +3 -3
- package/releases.md +20 -1
|
@@ -110,50 +110,6 @@ const arrayClear = (array, to = size(array)) => array.splice(0, to);
|
|
|
110
110
|
const arrayPush = (array, ...values) => array.push(...values);
|
|
111
111
|
const arrayShift = (array) => array.shift();
|
|
112
112
|
|
|
113
|
-
const SINGLE_ROW_ID = '_';
|
|
114
|
-
const DEFAULT_ROW_ID_COLUMN_NAME = '_id';
|
|
115
|
-
const SELECT = 'SELECT';
|
|
116
|
-
const WHERE = 'WHERE';
|
|
117
|
-
const TABLE = 'TABLE';
|
|
118
|
-
const INSERT = 'INSERT';
|
|
119
|
-
const DELETE = 'DELETE';
|
|
120
|
-
const UPDATE = 'UPDATE';
|
|
121
|
-
const ALTER_TABLE = 'ALTER ' + TABLE;
|
|
122
|
-
const FROM = 'FROM';
|
|
123
|
-
const DELETE_FROM = DELETE + ' ' + FROM;
|
|
124
|
-
const SELECT_STAR_FROM = SELECT + '*' + FROM;
|
|
125
|
-
const PRAGMA = 'pragma_';
|
|
126
|
-
const DATA_VERSION = 'data_version';
|
|
127
|
-
const SCHEMA_VERSION = 'schema_version';
|
|
128
|
-
const PRAGMA_TABLE = 'pragma_table_';
|
|
129
|
-
const CREATE = 'CREATE ';
|
|
130
|
-
const CREATE_TABLE = CREATE + TABLE;
|
|
131
|
-
const TABLE_NAME_PLACEHOLDER_REGEX = /\$tableName/g;
|
|
132
|
-
const getWrappedCommand = (executeCommand, onSqlCommand) =>
|
|
133
|
-
onSqlCommand
|
|
134
|
-
? async (sql, params) => {
|
|
135
|
-
onSqlCommand(sql, params);
|
|
136
|
-
return await executeCommand(sql, params);
|
|
137
|
-
}
|
|
138
|
-
: executeCommand;
|
|
139
|
-
const escapeId = (str) =>
|
|
140
|
-
arrayJoin(
|
|
141
|
-
arrayMap(strSplit(str, DOT), (part) => `"${strReplace(part, /"/g, '""')}"`),
|
|
142
|
-
DOT,
|
|
143
|
-
);
|
|
144
|
-
const escapeColumnNames = (...columnNames) =>
|
|
145
|
-
arrayJoin(arrayMap(columnNames, escapeId), COMMA);
|
|
146
|
-
const anonymousPlaceholder = () => '?';
|
|
147
|
-
const getPlaceholders = (array, getPlaceholder, offset = [1]) =>
|
|
148
|
-
arrayJoin(
|
|
149
|
-
arrayMap(array, () => getPlaceholder(offset)),
|
|
150
|
-
COMMA,
|
|
151
|
-
);
|
|
152
|
-
const getWhereCondition = (tableName, condition = TRUE) =>
|
|
153
|
-
WHERE + `(${replaceTableName(condition, escapeId(tableName))})`;
|
|
154
|
-
const replaceTableName = (condition, tableName) =>
|
|
155
|
-
strReplace(condition, TABLE_NAME_PLACEHOLDER_REGEX, tableName);
|
|
156
|
-
|
|
157
113
|
const object = Object;
|
|
158
114
|
const getPrototypeOf = (obj) => object.getPrototypeOf(obj);
|
|
159
115
|
const objEntries = object.entries;
|
|
@@ -203,6 +159,62 @@ const objValues = (obj) => object.values(obj);
|
|
|
203
159
|
const objSize = (obj) => size(objIds(obj));
|
|
204
160
|
const objIsEmpty = (obj) => isObject(obj) && objSize(obj) == 0;
|
|
205
161
|
|
|
162
|
+
const SINGLE_ROW_ID = '_';
|
|
163
|
+
const DEFAULT_ROW_ID_COLUMN_NAME = '_id';
|
|
164
|
+
const SELECT = 'SELECT';
|
|
165
|
+
const WHERE = 'WHERE';
|
|
166
|
+
const TABLE = 'TABLE';
|
|
167
|
+
const INSERT = 'INSERT';
|
|
168
|
+
const DELETE = 'DELETE';
|
|
169
|
+
const UPDATE = 'UPDATE';
|
|
170
|
+
const ALTER_TABLE = 'ALTER ' + TABLE;
|
|
171
|
+
const FROM = 'FROM';
|
|
172
|
+
const DELETE_FROM = DELETE + ' ' + FROM;
|
|
173
|
+
const SELECT_STAR_FROM = SELECT + '*' + FROM;
|
|
174
|
+
const PRAGMA = 'pragma_';
|
|
175
|
+
const DATA_VERSION = 'data_version';
|
|
176
|
+
const SCHEMA_VERSION = 'schema_version';
|
|
177
|
+
const PRAGMA_TABLE = 'pragma_table_';
|
|
178
|
+
const CREATE = 'CREATE ';
|
|
179
|
+
const CREATE_TABLE = CREATE + TABLE;
|
|
180
|
+
const TABLE_NAME_PLACEHOLDER_REGEX = /\$tableName/g;
|
|
181
|
+
const getWrappedCommand = (executeCommand, onSqlCommand) =>
|
|
182
|
+
onSqlCommand
|
|
183
|
+
? async (sql, params) => {
|
|
184
|
+
onSqlCommand(sql, params);
|
|
185
|
+
return await executeCommand(sql, params);
|
|
186
|
+
}
|
|
187
|
+
: executeCommand;
|
|
188
|
+
const escapeId = (str) =>
|
|
189
|
+
arrayJoin(
|
|
190
|
+
arrayMap(strSplit(str, DOT), (part) => `"${strReplace(part, /"/g, '""')}"`),
|
|
191
|
+
DOT,
|
|
192
|
+
);
|
|
193
|
+
const escapeColumnNames = (...columnNames) =>
|
|
194
|
+
arrayJoin(arrayMap(columnNames, escapeId), COMMA);
|
|
195
|
+
const anonymousPlaceholder = () => '?';
|
|
196
|
+
const getPlaceholders = (array, getPlaceholder, offset = [1]) =>
|
|
197
|
+
arrayJoin(
|
|
198
|
+
arrayMap(array, () => getPlaceholder(offset)),
|
|
199
|
+
COMMA,
|
|
200
|
+
);
|
|
201
|
+
const getWhere = (tableName, condition = TRUE, extraCondition) => {
|
|
202
|
+
const conditions = arrayFilter(
|
|
203
|
+
[
|
|
204
|
+
condition == TRUE
|
|
205
|
+
? void 0
|
|
206
|
+
: `(${replaceTableName(condition, escapeId(tableName))})`,
|
|
207
|
+
extraCondition,
|
|
208
|
+
],
|
|
209
|
+
(condition2) => !isUndefined(condition2),
|
|
210
|
+
);
|
|
211
|
+
return isEmpty(conditions)
|
|
212
|
+
? EMPTY_STRING
|
|
213
|
+
: WHERE + arrayJoin(conditions, 'AND');
|
|
214
|
+
};
|
|
215
|
+
const replaceTableName = (condition, tableName) =>
|
|
216
|
+
strReplace(condition, TABLE_NAME_PLACEHOLDER_REGEX, tableName);
|
|
217
|
+
|
|
206
218
|
const map = Map;
|
|
207
219
|
const mapNew = (entries) => new map(entries);
|
|
208
220
|
const mapGet = (map2, key) => map2?.get(key);
|
|
@@ -1050,7 +1062,7 @@ const getCommandFunctions = (
|
|
|
1050
1062
|
await executeCommand(
|
|
1051
1063
|
SELECT_STAR_FROM +
|
|
1052
1064
|
escapeId(tableName) +
|
|
1053
|
-
|
|
1065
|
+
getWhere(tableName, condition),
|
|
1054
1066
|
),
|
|
1055
1067
|
(row) => {
|
|
1056
1068
|
const rowId = row[rowIdColumnName];
|
|
@@ -1206,9 +1218,7 @@ const getCommandFunctions = (
|
|
|
1206
1218
|
if (isUndefined(content)) {
|
|
1207
1219
|
if (isUndefined(contentSubIdSet)) {
|
|
1208
1220
|
await executeCommand(
|
|
1209
|
-
DELETE_FROM +
|
|
1210
|
-
escapeId(tableName) +
|
|
1211
|
-
getWhereCondition(tableName, condition),
|
|
1221
|
+
DELETE_FROM + escapeId(tableName) + getWhere(tableName, condition),
|
|
1212
1222
|
);
|
|
1213
1223
|
}
|
|
1214
1224
|
} else {
|
|
@@ -1218,8 +1228,11 @@ const getCommandFunctions = (
|
|
|
1218
1228
|
await executeCommand(
|
|
1219
1229
|
DELETE_FROM +
|
|
1220
1230
|
escapeId(tableName) +
|
|
1221
|
-
|
|
1222
|
-
|
|
1231
|
+
getWhere(
|
|
1232
|
+
tableName,
|
|
1233
|
+
condition,
|
|
1234
|
+
`(${escapeId(rowIdColumnName)}=${getPlaceholder([1])})`,
|
|
1235
|
+
),
|
|
1223
1236
|
[rowId],
|
|
1224
1237
|
);
|
|
1225
1238
|
} else if (!isEmpty(settingColumnNames)) {
|
|
@@ -1278,8 +1291,12 @@ const getCommandFunctions = (
|
|
|
1278
1291
|
await executeCommand(
|
|
1279
1292
|
DELETE_FROM +
|
|
1280
1293
|
escapeId(tableName) +
|
|
1281
|
-
|
|
1282
|
-
|
|
1294
|
+
getWhere(
|
|
1295
|
+
tableName,
|
|
1296
|
+
condition,
|
|
1297
|
+
// eslint-disable-next-line max-len
|
|
1298
|
+
`${escapeId(rowIdColumnName)}NOT IN(${getPlaceholders(deleteRowIds, getPlaceholder)})`,
|
|
1299
|
+
),
|
|
1283
1300
|
deleteRowIds,
|
|
1284
1301
|
);
|
|
1285
1302
|
} else if (
|
|
@@ -1287,9 +1304,7 @@ const getCommandFunctions = (
|
|
|
1287
1304
|
collHas(schemaMap, tableName)
|
|
1288
1305
|
) {
|
|
1289
1306
|
await executeCommand(
|
|
1290
|
-
DELETE_FROM +
|
|
1291
|
-
escapeId(tableName) +
|
|
1292
|
-
getWhereCondition(tableName, condition),
|
|
1307
|
+
DELETE_FROM + escapeId(tableName) + getWhere(tableName, condition),
|
|
1293
1308
|
);
|
|
1294
1309
|
}
|
|
1295
1310
|
}
|