pqb 0.72.2 → 0.73.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/dist/index.d.ts +14 -6
- package/dist/index.js +25 -8
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +25 -9
- package/dist/index.mjs.map +1 -1
- package/dist/internal.d.ts +13 -6
- package/dist/internal.js +28 -7
- package/dist/internal.js.map +1 -1
- package/dist/internal.mjs +24 -9
- package/dist/internal.mjs.map +1 -1
- package/package.json +1 -1
package/dist/index.mjs
CHANGED
|
@@ -4926,8 +4926,12 @@ const then = async (q, adapter, state, beforeHooks, afterHooks, afterSaveHooks,
|
|
|
4926
4926
|
} catch (err) {
|
|
4927
4927
|
let error;
|
|
4928
4928
|
if (err instanceof adapter.errorClass) {
|
|
4929
|
-
|
|
4930
|
-
|
|
4929
|
+
const code = getDriverErrorCode(err);
|
|
4930
|
+
const notFound = err.message.match(/"(.*):not-found:(\d+):(\d+)"$/);
|
|
4931
|
+
if (code === "22P02" && notFound) {
|
|
4932
|
+
const [, message, expected, actual] = notFound;
|
|
4933
|
+
error = Number(expected) === 1 && !message ? new NotFoundError(q) : new NotFoundError(q, `Expected to find at least ${expected} record(s)${message ? ` ${message}` : ""}, but found ${actual}`);
|
|
4934
|
+
} else {
|
|
4931
4935
|
error = new q.error();
|
|
4932
4936
|
adapter.assignError(error, err);
|
|
4933
4937
|
}
|
|
@@ -6631,7 +6635,8 @@ const processJoinItem = (ctx, table, query, args, quotedAs) => {
|
|
|
6631
6635
|
if (alias) target += ` ${alias}`;
|
|
6632
6636
|
if (r && s) target = subJoinToSql(ctx, j, `"${joinTable}"`, !forbidLateral, joinAs, true);
|
|
6633
6637
|
else on = whereToSql(ctx, j, j.q, joinAs);
|
|
6634
|
-
} else if ("
|
|
6638
|
+
} else if ("x" in args) target = args.x.makeSQL(ctx, quotedAs);
|
|
6639
|
+
else if ("w" in args) {
|
|
6635
6640
|
const { w } = args;
|
|
6636
6641
|
target = `"${w}"`;
|
|
6637
6642
|
if ("r" in args) {
|
|
@@ -6908,7 +6913,10 @@ const moveMutativeQueryToCteBase = (toSql, ctx, query, type = query.q.type) => {
|
|
|
6908
6913
|
const addTableHook = (ctx, q, data, select, hookPurpose, dontAddTableHook) => {
|
|
6909
6914
|
if (data.ensureCount !== void 0 && ctx.cteName) {
|
|
6910
6915
|
const cteHooks = setCteHooks(ctx, true);
|
|
6911
|
-
(cteHooks.ensureCount ??= {})[ctx.cteName] = {
|
|
6916
|
+
(cteHooks.ensureCount ??= {})[ctx.cteName] = {
|
|
6917
|
+
count: data.ensureCount.expected,
|
|
6918
|
+
message: data.ensureCount.message
|
|
6919
|
+
};
|
|
6912
6920
|
}
|
|
6913
6921
|
const afterCreate = data.afterCreate;
|
|
6914
6922
|
const afterUpdate = data.afterUpdate;
|
|
@@ -7073,8 +7081,10 @@ const selectToSqlList = (ctx, table, query, quotedAs, hookSelect = query.hookSel
|
|
|
7073
7081
|
list.push(`${sql} "${as}"`);
|
|
7074
7082
|
if (jsonList) jsonList[as] = value.result.value;
|
|
7075
7083
|
aliases?.push(as);
|
|
7076
|
-
} else if (delayedRelationSelect && isRelationQuery(value))
|
|
7077
|
-
|
|
7084
|
+
} else if (delayedRelationSelect && isRelationQuery(value)) {
|
|
7085
|
+
if (delayedRelationSelect.query.q.type !== "delete") ctx.selectedCount--;
|
|
7086
|
+
setMutativeQueriesSelectRelationsSqlState(delayedRelationSelect, as, value);
|
|
7087
|
+
} else {
|
|
7078
7088
|
pushSubQuerySql(ctx, query, value, as, list, quotedAs, aliases);
|
|
7079
7089
|
if (jsonList) jsonList[as] = value.q.returnType === "value" || value.q.returnType === "valueOrThrow" ? value.q.expr?.result.value || value.result?.value : void 0;
|
|
7080
7090
|
}
|
|
@@ -9677,7 +9687,12 @@ const toSql = (table, type, topCtx, isSubSql, cteName, calledByThen, dontAddTabl
|
|
|
9677
9687
|
if (ctx.topCtx.cteHooks.hasSelect) {
|
|
9678
9688
|
if (prependedSelectParenthesis) result.text += ")";
|
|
9679
9689
|
const { tableHooks, ensureCount } = ctx.topCtx.cteHooks;
|
|
9680
|
-
const keyValues = [...tableHooks ? Object.entries(tableHooks).map(([cteName, data]) => `'${cteName}', (SELECT json_agg(${makeRowToJson(ctx, cteName, data.shape, false, true)}) FROM "${cteName}")`) : emptyArray, ...ensureCount ? Object.entries(ensureCount).map(([cteName, item]) =>
|
|
9690
|
+
const keyValues = [...tableHooks ? Object.entries(tableHooks).map(([cteName, data]) => `'${cteName}', (SELECT json_agg(${makeRowToJson(ctx, cteName, data.shape, false, true)}) FROM "${cteName}")`) : emptyArray, ...ensureCount ? Object.entries(ensureCount).map(([cteName, item]) => {
|
|
9691
|
+
const expected = "count" in item ? item.count : 1;
|
|
9692
|
+
const message = (item.message || "").replace(/'/g, "''");
|
|
9693
|
+
const notFound = "count" in item && item.count > 1 ? `(SELECT '${message}:not-found:${expected}:' || (SELECT count(*) FROM "${cteName}"))::int` : `(SELECT '${message}:not-found:${expected}:0')::int`;
|
|
9694
|
+
return `'#${cteName}', CASE WHEN ${"count" in item ? `(SELECT count(*) FROM "${cteName}") < ${item.count}` : `(SELECT "${cteName}"."${item.jsonNotNull}" FROM "${cteName}") IS NULL`} THEN ${notFound} END`;
|
|
9695
|
+
}) : emptyArray];
|
|
9681
9696
|
result.text += ` UNION ALL SELECT ${"NULL, ".repeat(ctx.selectedCount || 0)}json_build_object(${keyValues.join(", ")})`;
|
|
9682
9697
|
}
|
|
9683
9698
|
}
|
|
@@ -12469,7 +12484,8 @@ var QueryExpressions = class {
|
|
|
12469
12484
|
return new OrExpression(args);
|
|
12470
12485
|
}
|
|
12471
12486
|
};
|
|
12472
|
-
const _appendQuery = (main, append, asFn) => {
|
|
12487
|
+
const _appendQuery = (main, append, asFn, appendAsFn) => {
|
|
12488
|
+
if (appendAsFn) append = pushQueryValueImmutable(append, "asFns", appendAsFn);
|
|
12473
12489
|
return pushQueryValueImmutable(pushQueryValueImmutable(main, "appendQueries", prepareSubQueryForSql(main, append)), "asFns", asFn);
|
|
12474
12490
|
};
|
|
12475
12491
|
const _appendQueryOnUpsertCreate = (main, append, asFn) => {
|
|
@@ -14565,6 +14581,6 @@ const testTransaction = {
|
|
|
14565
14581
|
if (db.internal[trxForTest]?.length === 0) return db.q.adapter.close();
|
|
14566
14582
|
}
|
|
14567
14583
|
};
|
|
14568
|
-
export { AdapterClass, ArrayColumn, BigIntColumn, BigSerialColumn, BitColumn, BitVaryingColumn, BooleanColumn, BoxColumn, ByteaColumn, CidrColumn, CircleColumn, CitextColumn, Column, CustomTypeColumn, DateBaseColumn, DateColumn, DateTimeBaseClass, DateTimeTzBaseClass, Db, DecimalColumn, DomainColumn, DoublePrecisionColumn, DynamicRawSQL, EnumColumn, Expression, InetColumn, IntegerBaseColumn, IntegerColumn, IntervalColumn, JSONColumn, JSONTextColumn, LimitedTextBaseColumn, LineColumn, LsegColumn, MacAddr8Column, MacAddrColumn, MoneyColumn, NotFoundError, NumberAsStringBaseColumn, NumberBaseColumn, Operators, OrchidOrmInternalError, PathColumn, PointColumn, PolygonColumn, PostgisGeographyPointColumn, QueryError, QueryHookUtils, QueryHooks, RawSql, RealColumn, SerialColumn, SmallIntColumn, SmallSerialColumn, StringColumn, TextBaseColumn, TextColumn, TimeColumn, TimestampColumn, TimestampTZColumn, TransactionAdapterClass, TsQueryColumn, TsVectorColumn, UUIDColumn, UnknownColumn, VarCharColumn, VirtualColumn, XMLColumn, _appendQuery, _appendQueryOnUpsertCreate, _clone, _createDbSqlMethod, _hookSelectColumns, _initQueryBuilder, _onUpsertUpdate, _orCreate, _prependWith, _prependWithOnUpsertCreate, _queryCreate, _queryCreateMany, _queryCreateManyFrom, _queryDefaults, _queryDelete, _queryFindBy, _queryFindByOptional, _queryHookAfterCreate, _queryHookAfterUpdate, _queryInsert, _queryInsertMany, _queryJoinOn, _queryRows, _querySelect, _queryTake, _queryTakeOptional, _queryUpdate, _queryUpdateOrThrow, _queryUpsert, _queryWhere, _queryWhereExists, _queryWhereIn, addCode, addTopCte, addTopCteSql, applyMixins, assignDbDataToColumn, backtickQuote, cloneQueryBaseUnscoped, codeToString, colors, columnsShapeToCode, constraintInnerToCode, constraintToCode, consumeColumnName, copyTableData, createDbWithAdapter, deepCompare, defaultSchemaConfig, emptyArray, emptyObject, escapeForMigration, escapeString, excludeInnerToCode, excludeToCode, exhaustive, getCallerFilePath, getClonedQueryData, getColumnBaseType, getColumnInfo, getColumnTypes, getDateAsDateFn, getDateAsNumberFn, getDriverErrorCode, getFreeAlias, getFreeSetAlias, getImportPath, getPrimaryKeys, getQueryAs, getQuerySchema, getShapeFromSelect, getSqlText, getStackTrace, getSupportedDefaultPrivileges, indexInnerToCode, indexToCode, internalSchemaConfig, isExpression, isQueryReturnsAll, isRawSQL, logColors, logParamToLogObject, makeColumnNullable, makeColumnTypes, makeColumnsByType, makeConnectRetryConfig, noop, objectHasValues, omit, parseTableData, parseTableDataInput, pathToLog, pick, pluralize, prepareSubQueryForSql, primaryKeyInnerToCode, pushQueryOnForOuter, pushQueryValueImmutable, pushTableDataCode, queryToSql, quoteIdentifier, quoteObjectKey, quoteTableWithSchema, raw, rawSqlToCode, rawSqlToSql, referencesArgsToCode, refreshMaterializedView, returnArg, setColumnData, setColumnEncode, setColumnParse, setColumnParseNull, setCurrentColumnName, setDataValue, setDefaultLanguage, setFreeAlias, setQueryObjectValueImmutable, singleQuote, sqlToRawSql, tableDataMethods, testTransaction, toArray, toCamelCase, toPascalCase, toSnakeCase, wrapAdapterFnWithConnectRetry };
|
|
14584
|
+
export { AdapterClass, ArrayColumn, BigIntColumn, BigSerialColumn, BitColumn, BitVaryingColumn, BooleanColumn, BoxColumn, ByteaColumn, CidrColumn, CircleColumn, CitextColumn, Column, CustomTypeColumn, DateBaseColumn, DateColumn, DateTimeBaseClass, DateTimeTzBaseClass, Db, DecimalColumn, DomainColumn, DoublePrecisionColumn, DynamicRawSQL, EnumColumn, Expression, InetColumn, IntegerBaseColumn, IntegerColumn, IntervalColumn, JSONColumn, JSONTextColumn, LimitedTextBaseColumn, LineColumn, LsegColumn, MacAddr8Column, MacAddrColumn, MoneyColumn, NotFoundError, NumberAsStringBaseColumn, NumberBaseColumn, Operators, OrchidOrmInternalError, PathColumn, PointColumn, PolygonColumn, PostgisGeographyPointColumn, QueryError, QueryHookUtils, QueryHooks, RawSql, RealColumn, SerialColumn, SmallIntColumn, SmallSerialColumn, StringColumn, TextBaseColumn, TextColumn, TimeColumn, TimestampColumn, TimestampTZColumn, TransactionAdapterClass, TsQueryColumn, TsVectorColumn, UUIDColumn, UnknownColumn, VarCharColumn, VirtualColumn, XMLColumn, _appendQuery, _appendQueryOnUpsertCreate, _clone, _createDbSqlMethod, _hookSelectColumns, _initQueryBuilder, _onUpsertUpdate, _orCreate, _prependWith, _prependWithOnUpsertCreate, _queryCreate, _queryCreateMany, _queryCreateManyFrom, _queryDefaults, _queryDelete, _queryFindBy, _queryFindByOptional, _queryHookAfterCreate, _queryHookAfterUpdate, _queryInsert, _queryInsertForEachFrom, _queryInsertMany, _queryJoinOn, _queryRows, _querySelect, _queryTake, _queryTakeOptional, _queryUpdate, _queryUpdateOrThrow, _queryUpsert, _queryWhere, _queryWhereExists, _queryWhereIn, addCode, addTopCte, addTopCteSql, applyMixins, assignDbDataToColumn, backtickQuote, cloneQueryBaseUnscoped, codeToString, colors, columnsShapeToCode, constraintInnerToCode, constraintToCode, consumeColumnName, copyTableData, createDbWithAdapter, deepCompare, defaultSchemaConfig, emptyArray, emptyObject, escapeForMigration, escapeString, excludeInnerToCode, excludeToCode, exhaustive, getCallerFilePath, getClonedQueryData, getColumnBaseType, getColumnInfo, getColumnTypes, getDateAsDateFn, getDateAsNumberFn, getDriverErrorCode, getFreeAlias, getFreeSetAlias, getImportPath, getPrimaryKeys, getQueryAs, getQuerySchema, getShapeFromSelect, getSqlText, getStackTrace, getSupportedDefaultPrivileges, indexInnerToCode, indexToCode, internalSchemaConfig, isExpression, isQueryReturnsAll, isRawSQL, logColors, logParamToLogObject, makeColumnNullable, makeColumnTypes, makeColumnsByType, makeConnectRetryConfig, noop, objectHasValues, omit, parseTableData, parseTableDataInput, pathToLog, pick, pluralize, prepareSubQueryForSql, primaryKeyInnerToCode, pushQueryOnForOuter, pushQueryValueImmutable, pushTableDataCode, queryToSql, quoteIdentifier, quoteObjectKey, quoteTableWithSchema, raw, rawSqlToCode, rawSqlToSql, referencesArgsToCode, refreshMaterializedView, returnArg, setColumnData, setColumnEncode, setColumnParse, setColumnParseNull, setCurrentColumnName, setDataValue, setDefaultLanguage, setFreeAlias, setQueryObjectValueImmutable, singleQuote, sqlToRawSql, tableDataMethods, testTransaction, toArray, toCamelCase, toPascalCase, toSnakeCase, wrapAdapterFnWithConnectRetry };
|
|
14569
14585
|
|
|
14570
14586
|
//# sourceMappingURL=index.mjs.map
|