@fjell/lib-sequelize 4.4.82 → 4.4.83
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/Coordinate.d.ts +1 -1
- package/dist/Coordinate.d.ts.map +1 -1
- package/dist/Definition.d.ts +1 -1
- package/dist/Definition.d.ts.map +1 -1
- package/dist/EventCoordinator.d.ts +1 -1
- package/dist/EventCoordinator.d.ts.map +1 -1
- package/dist/KeyMaster.d.ts +1 -1
- package/dist/KeyMaster.d.ts.map +1 -1
- package/dist/Operations.d.ts +1 -1
- package/dist/Operations.d.ts.map +1 -1
- package/dist/Options.d.ts +1 -1
- package/dist/Options.d.ts.map +1 -1
- package/dist/QueryBuilder.d.ts +1 -1
- package/dist/QueryBuilder.d.ts.map +1 -1
- package/dist/RowProcessor.d.ts +3 -3
- package/dist/RowProcessor.d.ts.map +1 -1
- package/dist/SequelizeLibrary.d.ts +1 -1
- package/dist/SequelizeLibrary.d.ts.map +1 -1
- package/dist/SequelizeLibraryFactory.d.ts +1 -1
- package/dist/SequelizeLibraryFactory.d.ts.map +1 -1
- package/dist/contained/SequelizeLibrary.d.ts +2 -3
- package/dist/contained/SequelizeLibrary.d.ts.map +1 -1
- package/dist/index.js +61 -72
- package/dist/index.js.map +3 -3
- package/dist/ops/all.d.ts +1 -2
- package/dist/ops/all.d.ts.map +1 -1
- package/dist/ops/create.d.ts +1 -1
- package/dist/ops/create.d.ts.map +1 -1
- package/dist/ops/find.d.ts +2 -2
- package/dist/ops/find.d.ts.map +1 -1
- package/dist/ops/get.d.ts +3 -3
- package/dist/ops/get.d.ts.map +1 -1
- package/dist/ops/one.d.ts +1 -1
- package/dist/ops/one.d.ts.map +1 -1
- package/dist/ops/remove.d.ts +1 -1
- package/dist/ops/remove.d.ts.map +1 -1
- package/dist/ops/update.d.ts +1 -1
- package/dist/ops/update.d.ts.map +1 -1
- package/dist/ops/upsert.d.ts +1 -1
- package/dist/ops/upsert.d.ts.map +1 -1
- package/dist/primary/SequelizeLibrary.d.ts +2 -3
- package/dist/primary/SequelizeLibrary.d.ts.map +1 -1
- package/dist/processing/AggsAdapter.d.ts +1 -1
- package/dist/processing/AggsAdapter.d.ts.map +1 -1
- package/dist/processing/ReferenceBuilder.d.ts +2 -3
- package/dist/processing/ReferenceBuilder.d.ts.map +1 -1
- package/dist/processing/RefsAdapter.d.ts +1 -1
- package/dist/processing/RefsAdapter.d.ts.map +1 -1
- package/package.json +7 -5
package/dist/index.js
CHANGED
|
@@ -55,14 +55,11 @@ import * as Library2 from "@fjell/lib";
|
|
|
55
55
|
|
|
56
56
|
// src/ops/all.ts
|
|
57
57
|
import { createAllWrapper } from "@fjell/core";
|
|
58
|
-
import { validateKeys } from "@fjell/
|
|
58
|
+
import { validateKeys } from "@fjell/validation";
|
|
59
59
|
|
|
60
60
|
// src/QueryBuilder.ts
|
|
61
|
-
import {
|
|
62
|
-
|
|
63
|
-
isCondition,
|
|
64
|
-
isPriKey
|
|
65
|
-
} from "@fjell/core";
|
|
61
|
+
import { isCondition } from "@fjell/types";
|
|
62
|
+
import { isComKey, isPriKey } from "@fjell/core";
|
|
66
63
|
import { Op } from "sequelize";
|
|
67
64
|
|
|
68
65
|
// src/util/general.ts
|
|
@@ -926,11 +923,11 @@ var removeEvents = (item) => {
|
|
|
926
923
|
|
|
927
924
|
// src/processing/ReferenceBuilder.ts
|
|
928
925
|
var buildSequelizeReference = async (item, referenceDefinition, registry, context) => {
|
|
929
|
-
const
|
|
926
|
+
const libLogger4 = logger_default.get("processing", "ReferenceBuilder");
|
|
930
927
|
const isCompositeItem = referenceDefinition.kta.length > 1;
|
|
931
928
|
const primaryKeyType = referenceDefinition.kta[0];
|
|
932
929
|
if (isCompositeItem) {
|
|
933
|
-
|
|
930
|
+
libLogger4.debug(
|
|
934
931
|
"Detected composite item reference - will use ComKey with empty loc array",
|
|
935
932
|
{
|
|
936
933
|
kta: referenceDefinition.kta,
|
|
@@ -941,7 +938,7 @@ var buildSequelizeReference = async (item, referenceDefinition, registry, contex
|
|
|
941
938
|
);
|
|
942
939
|
}
|
|
943
940
|
if (!registry) {
|
|
944
|
-
|
|
941
|
+
libLogger4.error("Registry not provided for reference processing", {
|
|
945
942
|
component: "lib-sequelize",
|
|
946
943
|
subcomponent: "ReferenceBuilder",
|
|
947
944
|
operation: "buildSequelizeReference",
|
|
@@ -956,7 +953,7 @@ var buildSequelizeReference = async (item, referenceDefinition, registry, contex
|
|
|
956
953
|
}
|
|
957
954
|
const library = registry.get(referenceDefinition.kta);
|
|
958
955
|
if (!library) {
|
|
959
|
-
|
|
956
|
+
libLogger4.error("Referenced library not found in registry", {
|
|
960
957
|
component: "lib-sequelize",
|
|
961
958
|
subcomponent: "ReferenceBuilder",
|
|
962
959
|
operation: "buildSequelizeReference",
|
|
@@ -988,7 +985,7 @@ var buildSequelizeReference = async (item, referenceDefinition, registry, contex
|
|
|
988
985
|
const columnName = referenceDefinition.locationColumns[i];
|
|
989
986
|
const locValue = item[columnName];
|
|
990
987
|
if (locValue == null) {
|
|
991
|
-
|
|
988
|
+
libLogger4.warning(
|
|
992
989
|
`Location column '${columnName}' is null/undefined for reference '${referenceDefinition.property}'. Falling back to empty loc array search.`
|
|
993
990
|
);
|
|
994
991
|
hasNullLocation = true;
|
|
@@ -1011,7 +1008,7 @@ var buildSequelizeReference = async (item, referenceDefinition, registry, contex
|
|
|
1011
1008
|
pk: columnValue,
|
|
1012
1009
|
loc
|
|
1013
1010
|
};
|
|
1014
|
-
|
|
1011
|
+
libLogger4.debug("Built full ComKey with location context", {
|
|
1015
1012
|
itemKey,
|
|
1016
1013
|
locationColumns: referenceDefinition.locationColumns,
|
|
1017
1014
|
property: referenceDefinition.property
|
|
@@ -1023,12 +1020,12 @@ var buildSequelizeReference = async (item, referenceDefinition, registry, contex
|
|
|
1023
1020
|
pk: columnValue,
|
|
1024
1021
|
loc: []
|
|
1025
1022
|
};
|
|
1026
|
-
|
|
1023
|
+
libLogger4.default("Using empty loc array for composite item reference", {
|
|
1027
1024
|
kta: referenceDefinition.kta,
|
|
1028
1025
|
property: referenceDefinition.property
|
|
1029
1026
|
});
|
|
1030
1027
|
}
|
|
1031
|
-
|
|
1028
|
+
libLogger4.default("Created reference key", {
|
|
1032
1029
|
itemKey,
|
|
1033
1030
|
isCompositeItem,
|
|
1034
1031
|
hasLocationColumns: !!referenceDefinition.locationColumns,
|
|
@@ -1037,10 +1034,10 @@ var buildSequelizeReference = async (item, referenceDefinition, registry, contex
|
|
|
1037
1034
|
let referencedItem;
|
|
1038
1035
|
if (context) {
|
|
1039
1036
|
if (context.isCached(itemKey)) {
|
|
1040
|
-
|
|
1037
|
+
libLogger4.debug("Using cached reference", { itemKey, property: referenceDefinition.property });
|
|
1041
1038
|
referencedItem = context.getCached(itemKey);
|
|
1042
1039
|
} else if (context.isInProgress(itemKey)) {
|
|
1043
|
-
|
|
1040
|
+
libLogger4.default("Circular dependency detected, creating reference placeholder", {
|
|
1044
1041
|
itemKey,
|
|
1045
1042
|
property: referenceDefinition.property
|
|
1046
1043
|
});
|
|
@@ -1055,7 +1052,7 @@ var buildSequelizeReference = async (item, referenceDefinition, registry, contex
|
|
|
1055
1052
|
referencedItem = await library.operations.get(itemKey);
|
|
1056
1053
|
context.setCached(itemKey, referencedItem);
|
|
1057
1054
|
} catch (error) {
|
|
1058
|
-
|
|
1055
|
+
libLogger4.error("Failed to load reference", {
|
|
1059
1056
|
component: "lib-sequelize",
|
|
1060
1057
|
subcomponent: "ReferenceBuilder",
|
|
1061
1058
|
operation: "buildSequelizeReference",
|
|
@@ -1767,7 +1764,7 @@ var getAllOperation = (models, definition, registry) => {
|
|
|
1767
1764
|
|
|
1768
1765
|
// src/ops/create.ts
|
|
1769
1766
|
import { createCreateWrapper, isComKey as isComKey3, isPriKey as isPriKey3 } from "@fjell/core";
|
|
1770
|
-
import { validateKeys as validateKeys2 } from "@fjell/
|
|
1767
|
+
import { validateKeys as validateKeys2 } from "@fjell/validation";
|
|
1771
1768
|
var logger10 = logger_default.get("sequelize", "ops", "create");
|
|
1772
1769
|
async function validateHierarchicalChain(models, locKey, kta) {
|
|
1773
1770
|
const locatorIndex = kta.indexOf(locKey.kt);
|
|
@@ -1976,7 +1973,7 @@ var getCreateOperation = (models, definition, registry) => {
|
|
|
1976
1973
|
|
|
1977
1974
|
// src/ops/find.ts
|
|
1978
1975
|
import { createFindWrapper } from "@fjell/core";
|
|
1979
|
-
import { validateKeys as validateKeys3 } from "@fjell/
|
|
1976
|
+
import { validateKeys as validateKeys3 } from "@fjell/validation";
|
|
1980
1977
|
var logger11 = logger_default.get("sequelize", "ops", "find");
|
|
1981
1978
|
var getFindOperation = (models, definition, registry) => {
|
|
1982
1979
|
const { options: { finders, references, aggregations } } = definition;
|
|
@@ -2076,9 +2073,9 @@ import {
|
|
|
2076
2073
|
isComKey as isComKey4,
|
|
2077
2074
|
isPriKey as isPriKey4,
|
|
2078
2075
|
isValidItemKey,
|
|
2079
|
-
|
|
2076
|
+
NotFoundError
|
|
2080
2077
|
} from "@fjell/core";
|
|
2081
|
-
import {
|
|
2078
|
+
import { validateKeys as validateKeys4 } from "@fjell/validation";
|
|
2082
2079
|
var logger12 = logger_default.get("sequelize", "ops", "get");
|
|
2083
2080
|
var processCompositeKey = (comKey, model, kta) => {
|
|
2084
2081
|
const where = { id: comKey.pk };
|
|
@@ -2185,21 +2182,20 @@ var getGetOperation = (models, definition, registry) => {
|
|
|
2185
2182
|
|
|
2186
2183
|
// src/ops/one.ts
|
|
2187
2184
|
import { createOneWrapper } from "@fjell/core";
|
|
2188
|
-
var logger13 = logger_default.get("sequelize", "ops", "one");
|
|
2189
2185
|
var getOneOperation = (models, definition, registry) => {
|
|
2190
2186
|
return createOneWrapper(
|
|
2191
2187
|
definition.coordinate,
|
|
2192
2188
|
async (itemQuery, locations) => {
|
|
2193
2189
|
const locs = locations ?? [];
|
|
2194
|
-
|
|
2195
|
-
|
|
2190
|
+
logger_default.debug(`ONE operation called on ${models[0].name} with ${locs.length} location filters: ${locs.map((loc) => `${loc.kt}=${loc.lk}`).join(", ") || "none"}`);
|
|
2191
|
+
logger_default.default(`One configured for ${models[0].name} delegating to all operation`);
|
|
2196
2192
|
const result = await getAllOperation(models, definition, registry)(itemQuery ?? {}, locs, { limit: 1 });
|
|
2197
2193
|
if (result.items.length > 0) {
|
|
2198
2194
|
const item = result.items[0];
|
|
2199
|
-
|
|
2195
|
+
logger_default.debug(`[ONE] Found ${models[0].name} record with key: ${item.key ? JSON.stringify(item.key) : "unknown"}`);
|
|
2200
2196
|
return item;
|
|
2201
2197
|
} else {
|
|
2202
|
-
|
|
2198
|
+
logger_default.debug(`[ONE] No ${models[0].name} record found`);
|
|
2203
2199
|
return null;
|
|
2204
2200
|
}
|
|
2205
2201
|
}
|
|
@@ -2207,9 +2203,8 @@ var getOneOperation = (models, definition, registry) => {
|
|
|
2207
2203
|
};
|
|
2208
2204
|
|
|
2209
2205
|
// src/ops/remove.ts
|
|
2210
|
-
import { abbrevIK, isComKey as isComKey5, isPriKey as isPriKey5, isValidItemKey as isValidItemKey2, createRemoveWrapper } from "@fjell/core";
|
|
2211
|
-
|
|
2212
|
-
var logger14 = logger_default.get("sequelize", "ops", "remove");
|
|
2206
|
+
import { abbrevIK, isComKey as isComKey5, isPriKey as isPriKey5, isValidItemKey as isValidItemKey2, createRemoveWrapper, NotFoundError as NotFoundError2 } from "@fjell/core";
|
|
2207
|
+
var libLogger3 = logger_default.get("sequelize", "ops", "remove");
|
|
2213
2208
|
var processCompositeKey2 = (comKey, model, kta) => {
|
|
2214
2209
|
const where = { id: comKey.pk };
|
|
2215
2210
|
const includes = [];
|
|
@@ -2217,7 +2212,7 @@ var processCompositeKey2 = (comKey, model, kta) => {
|
|
|
2217
2212
|
const relationshipInfo = buildRelationshipPath(model, locator.kt, kta);
|
|
2218
2213
|
if (!relationshipInfo.found) {
|
|
2219
2214
|
const errorMessage = `Composite key locator '${locator.kt}' cannot be resolved on model '${model.name}' or through its relationships.`;
|
|
2220
|
-
|
|
2215
|
+
libLogger3.error(errorMessage, { key: comKey, kta });
|
|
2221
2216
|
throw new Error(errorMessage);
|
|
2222
2217
|
}
|
|
2223
2218
|
if (relationshipInfo.path) {
|
|
@@ -2244,25 +2239,25 @@ var getRemoveOperation = (models, definition, _registry) => {
|
|
|
2244
2239
|
async (key) => {
|
|
2245
2240
|
try {
|
|
2246
2241
|
if (!isValidItemKey2(key)) {
|
|
2247
|
-
|
|
2242
|
+
logger_default.error("Key for Remove is not a valid ItemKey: %j", key);
|
|
2248
2243
|
throw new Error("Key for Remove is not a valid ItemKey");
|
|
2249
2244
|
}
|
|
2250
2245
|
const keyDescription = isPriKey5(key) ? `primary key: pk=${key.pk}` : `composite key: pk=${key.pk}, loc=[${key.loc.map((l) => `${l.kt}=${l.lk}`).join(", ")}]`;
|
|
2251
|
-
|
|
2252
|
-
|
|
2246
|
+
logger_default.debug(`REMOVE operation called on ${models[0].name} with ${keyDescription}`);
|
|
2247
|
+
logger_default.default(`Remove configured for ${models[0].name} with ${isPriKey5(key) ? "primary" : "composite"} key`);
|
|
2253
2248
|
const model = models[0];
|
|
2254
2249
|
let item;
|
|
2255
2250
|
let returnItem;
|
|
2256
|
-
|
|
2251
|
+
logger_default.debug("remove: %s", abbrevIK(key));
|
|
2257
2252
|
if (isPriKey5(key)) {
|
|
2258
|
-
|
|
2253
|
+
logger_default.debug(`[REMOVE] Executing ${model.name}.findByPk() with pk: ${key.pk}`);
|
|
2259
2254
|
queryMetrics.recordQuery(model.name);
|
|
2260
2255
|
item = await model.findByPk(key.pk);
|
|
2261
2256
|
} else if (isComKey5(key)) {
|
|
2262
2257
|
const comKey = key;
|
|
2263
2258
|
const queryOptions = processCompositeKey2(comKey, model, kta);
|
|
2264
|
-
|
|
2265
|
-
|
|
2259
|
+
logger_default.default(`Remove composite key query for ${model.name} with where fields: ${queryOptions.where ? Object.keys(queryOptions.where).join(", ") : "none"}`);
|
|
2260
|
+
logger_default.debug(`[REMOVE] Executing ${model.name}.findOne() with options: ${stringifyJSON(queryOptions)}`);
|
|
2266
2261
|
queryMetrics.recordQuery(model.name);
|
|
2267
2262
|
item = await model.findOne(queryOptions);
|
|
2268
2263
|
}
|
|
@@ -2282,14 +2277,14 @@ var getRemoveOperation = (models, definition, _registry) => {
|
|
|
2282
2277
|
if (model.getAttributes().deletedAt) {
|
|
2283
2278
|
item.deletedAt = /* @__PURE__ */ new Date();
|
|
2284
2279
|
}
|
|
2285
|
-
|
|
2280
|
+
logger_default.debug(`[REMOVE] Executing ${model.name}.save() for soft delete`);
|
|
2286
2281
|
queryMetrics.recordQuery(model.name);
|
|
2287
2282
|
await item?.save();
|
|
2288
2283
|
returnItem = item?.get({ plain: true });
|
|
2289
2284
|
returnItem = addKey(item, returnItem, kta);
|
|
2290
2285
|
returnItem = populateEvents(returnItem);
|
|
2291
2286
|
} else if (options.deleteOnRemove) {
|
|
2292
|
-
|
|
2287
|
+
logger_default.debug(`[REMOVE] Executing ${model.name}.destroy() for hard delete`);
|
|
2293
2288
|
queryMetrics.recordQuery(model.name);
|
|
2294
2289
|
await item?.destroy();
|
|
2295
2290
|
returnItem = item?.get({ plain: true });
|
|
@@ -2298,7 +2293,7 @@ var getRemoveOperation = (models, definition, _registry) => {
|
|
|
2298
2293
|
} else {
|
|
2299
2294
|
throw new Error("No deletedAt or isDeleted attribute found in model, and deleteOnRemove is not set");
|
|
2300
2295
|
}
|
|
2301
|
-
|
|
2296
|
+
logger_default.debug(`[REMOVE] Removed ${model.name} with key: ${returnItem.key ? JSON.stringify(returnItem.key) : `id=${item.id}`}`);
|
|
2302
2297
|
const { references } = options;
|
|
2303
2298
|
if (references && references.length > 0) {
|
|
2304
2299
|
returnItem = addRefsToSequelizeItem(returnItem, references);
|
|
@@ -2313,16 +2308,11 @@ var getRemoveOperation = (models, definition, _registry) => {
|
|
|
2313
2308
|
};
|
|
2314
2309
|
|
|
2315
2310
|
// src/ops/update.ts
|
|
2316
|
-
import {
|
|
2317
|
-
|
|
2318
|
-
createUpdateWrapper,
|
|
2319
|
-
isComKey as isComKey6,
|
|
2320
|
-
isPriKey as isPriKey6
|
|
2321
|
-
} from "@fjell/core";
|
|
2322
|
-
import { validateKeys as validateKeys5 } from "@fjell/core/validation";
|
|
2311
|
+
import { abbrevIK as abbrevIK2, createUpdateWrapper, isComKey as isComKey6, isPriKey as isPriKey6 } from "@fjell/core";
|
|
2312
|
+
import { validateKeys as validateKeys5 } from "@fjell/validation";
|
|
2323
2313
|
import { NotFoundError as NotFoundError3 } from "@fjell/core";
|
|
2324
2314
|
import { Op as Op3 } from "sequelize";
|
|
2325
|
-
var
|
|
2315
|
+
var logger13 = logger_default.get("sequelize", "ops", "update");
|
|
2326
2316
|
var mergeIncludes2 = (existingIncludes, newIncludes) => {
|
|
2327
2317
|
const mergedIncludes = [...existingIncludes];
|
|
2328
2318
|
for (const newInclude of newIncludes) {
|
|
@@ -2354,15 +2344,15 @@ var getUpdateOperation = (models, definition, registry) => {
|
|
|
2354
2344
|
);
|
|
2355
2345
|
}
|
|
2356
2346
|
const keyDescription = isPriKey6(key) ? `primary key: pk=${key.pk}` : `composite key: pk=${key.pk}, loc=[${key.loc.map((l) => `${l.kt}=${l.lk}`).join(", ")}]`;
|
|
2357
|
-
|
|
2347
|
+
logger13.debug(`UPDATE operation called on ${models[0].name} with ${keyDescription}`, { options });
|
|
2358
2348
|
const { coordinate } = definition;
|
|
2359
2349
|
const { kta } = coordinate;
|
|
2360
|
-
|
|
2350
|
+
logger13.debug("update: %s, %j", abbrevIK2(key), item);
|
|
2361
2351
|
const model = models[0];
|
|
2362
2352
|
let response;
|
|
2363
2353
|
if (isPriKey6(key)) {
|
|
2364
2354
|
const priKey = key;
|
|
2365
|
-
|
|
2355
|
+
logger13.trace(`[UPDATE] Executing ${model.name}.findByPk() with pk: ${priKey.pk}`);
|
|
2366
2356
|
queryMetrics.recordQuery(model.name);
|
|
2367
2357
|
response = await model.findByPk(priKey.pk);
|
|
2368
2358
|
} else if (isComKey6(key)) {
|
|
@@ -2373,7 +2363,7 @@ var getUpdateOperation = (models, definition, registry) => {
|
|
|
2373
2363
|
const relationshipInfo = buildRelationshipPath(model, locator.kt, kta, true);
|
|
2374
2364
|
if (!relationshipInfo.found) {
|
|
2375
2365
|
const errorMessage = `Composite key locator '${locator.kt}' cannot be resolved on model '${model.name}' or through its relationships.`;
|
|
2376
|
-
|
|
2366
|
+
logger13.error(errorMessage, { key: comKey, kta });
|
|
2377
2367
|
throw new Error(errorMessage);
|
|
2378
2368
|
}
|
|
2379
2369
|
if (relationshipInfo.isDirect) {
|
|
@@ -2392,8 +2382,8 @@ var getUpdateOperation = (models, definition, registry) => {
|
|
|
2392
2382
|
if (additionalIncludes.length > 0) {
|
|
2393
2383
|
queryOptions.include = mergeIncludes2([], additionalIncludes);
|
|
2394
2384
|
}
|
|
2395
|
-
|
|
2396
|
-
|
|
2385
|
+
logger13.default(`Update composite key query for ${model.name} with where fields: ${queryOptions.where ? Object.keys(queryOptions.where).join(", ") : "none"}`);
|
|
2386
|
+
logger13.trace(`[UPDATE] Executing ${model.name}.findOne() with options: ${stringifyJSON(queryOptions)}`);
|
|
2397
2387
|
queryMetrics.recordQuery(model.name);
|
|
2398
2388
|
response = await model.findOne(queryOptions);
|
|
2399
2389
|
}
|
|
@@ -2413,14 +2403,14 @@ var getUpdateOperation = (models, definition, registry) => {
|
|
|
2413
2403
|
if (aggregations && aggregations.length > 0) {
|
|
2414
2404
|
updateProps = removeAggsFromItem(updateProps, aggregations);
|
|
2415
2405
|
}
|
|
2416
|
-
|
|
2417
|
-
|
|
2418
|
-
|
|
2406
|
+
logger13.default(`Update found ${model.name} record to modify`);
|
|
2407
|
+
logger13.default(`Update properties configured: ${Object.keys(updateProps).join(", ")}`);
|
|
2408
|
+
logger13.trace(`[UPDATE] Executing ${model.name}.update() with properties: ${stringifyJSON(updateProps)}`);
|
|
2419
2409
|
queryMetrics.recordQuery(model.name);
|
|
2420
2410
|
response = await response.update(updateProps);
|
|
2421
2411
|
const processedItem = await processRow(response, kta, references || [], aggregations || [], registry, void 0, void 0);
|
|
2422
2412
|
const returnItem = validateKeys5(processedItem, kta);
|
|
2423
|
-
|
|
2413
|
+
logger13.debug(`[UPDATE] Updated ${model.name} with key: ${returnItem.key ? JSON.stringify(returnItem.key) : `id=${response.id}`}`);
|
|
2424
2414
|
return returnItem;
|
|
2425
2415
|
} catch (error) {
|
|
2426
2416
|
if (error instanceof NotFoundError3) throw error;
|
|
@@ -2432,7 +2422,6 @@ var getUpdateOperation = (models, definition, registry) => {
|
|
|
2432
2422
|
|
|
2433
2423
|
// src/ops/upsert.ts
|
|
2434
2424
|
import { createUpsertWrapper, isValidItemKey as isValidItemKey3, NotFoundError as NotFoundError4 } from "@fjell/core";
|
|
2435
|
-
var logger16 = logger_default.get("sequelize", "ops", "upsert");
|
|
2436
2425
|
var getUpsertOperation = (models, definition, registry) => {
|
|
2437
2426
|
const get = getGetOperation(models, definition, registry);
|
|
2438
2427
|
const update = getUpdateOperation(models, definition, registry);
|
|
@@ -2441,7 +2430,7 @@ var getUpsertOperation = (models, definition, registry) => {
|
|
|
2441
2430
|
definition.coordinate,
|
|
2442
2431
|
async (key, item, locations, options) => {
|
|
2443
2432
|
if (!isValidItemKey3(key)) {
|
|
2444
|
-
|
|
2433
|
+
logger_default.error("Invalid key for upsert operation", {
|
|
2445
2434
|
operation: "upsert",
|
|
2446
2435
|
model: models[0]?.name,
|
|
2447
2436
|
key: stringifyJSON(key),
|
|
@@ -2452,19 +2441,19 @@ var getUpsertOperation = (models, definition, registry) => {
|
|
|
2452
2441
|
});
|
|
2453
2442
|
throw new Error(`Invalid key for upsert operation: ${stringifyJSON(key)}. Expected valid PriKey or ComKey structure.`);
|
|
2454
2443
|
}
|
|
2455
|
-
|
|
2444
|
+
logger_default.debug(`[UPSERT] Attempting upsert with key: ${stringifyJSON(key)}`, { options });
|
|
2456
2445
|
let resultItem = null;
|
|
2457
2446
|
try {
|
|
2458
|
-
|
|
2447
|
+
logger_default.debug(`[UPSERT] Retrieving item by key: ${stringifyJSON(key)}`);
|
|
2459
2448
|
resultItem = await get(key);
|
|
2460
2449
|
} catch (error) {
|
|
2461
2450
|
const isNotFound = error instanceof NotFoundError4 || error?.name === "NotFoundError" || error?.errorInfo?.code === "NOT_FOUND";
|
|
2462
2451
|
if (isNotFound) {
|
|
2463
|
-
|
|
2452
|
+
logger_default.debug(`[UPSERT] Item not found, creating new item with key: ${stringifyJSON(key)}, errorType: ${error?.name}, errorCode: ${error?.errorInfo?.code}`);
|
|
2464
2453
|
const createOptions3 = locations ? { locations } : { key };
|
|
2465
2454
|
resultItem = await create(item, createOptions3);
|
|
2466
2455
|
} else {
|
|
2467
|
-
|
|
2456
|
+
logger_default.error(`[UPSERT] Unexpected error during get operation`, {
|
|
2468
2457
|
operation: "upsert",
|
|
2469
2458
|
phase: "get-existing",
|
|
2470
2459
|
model: models[0]?.name,
|
|
@@ -2482,9 +2471,9 @@ var getUpsertOperation = (models, definition, registry) => {
|
|
|
2482
2471
|
if (!resultItem) {
|
|
2483
2472
|
throw new Error(`Failed to retrieve or create item for key: ${stringifyJSON(key)}`);
|
|
2484
2473
|
}
|
|
2485
|
-
|
|
2474
|
+
logger_default.debug(`[UPSERT] Updating item with properties, key: ${stringifyJSON(key)}`, { options });
|
|
2486
2475
|
resultItem = await update(resultItem.key, item, options);
|
|
2487
|
-
|
|
2476
|
+
logger_default.debug(`[UPSERT] Item upserted successfully: ${stringifyJSON(resultItem)}`);
|
|
2488
2477
|
return resultItem;
|
|
2489
2478
|
}
|
|
2490
2479
|
);
|
|
@@ -2513,9 +2502,9 @@ var createOperations = (models, coordinate, registry, options) => {
|
|
|
2513
2502
|
};
|
|
2514
2503
|
|
|
2515
2504
|
// src/SequelizeLibrary.ts
|
|
2516
|
-
var
|
|
2505
|
+
var logger14 = logger_default.get("SequelizeLibrary");
|
|
2517
2506
|
var createSequelizeLibrary = (registry, coordinate, models, options) => {
|
|
2518
|
-
|
|
2507
|
+
logger14.debug("createSequelizeLibrary", { coordinate, models, registry, options });
|
|
2519
2508
|
const operations = createOperations(models, coordinate, registry, options);
|
|
2520
2509
|
const wrappedOperations = Library3.wrapOperations(operations, options, coordinate, registry);
|
|
2521
2510
|
const libLibrary = Library3.createLibrary(registry, coordinate, wrappedOperations, options);
|
|
@@ -2529,10 +2518,10 @@ var isSequelizeLibrary = (library) => {
|
|
|
2529
2518
|
};
|
|
2530
2519
|
|
|
2531
2520
|
// src/SequelizeLibraryFactory.ts
|
|
2532
|
-
var
|
|
2521
|
+
var logger15 = logger_default.get("InstanceFactory");
|
|
2533
2522
|
var createSequelizeLibraryFactory = (models, options) => {
|
|
2534
2523
|
return (coordinate, context) => {
|
|
2535
|
-
|
|
2524
|
+
logger15.debug("Creating Sequelize instance", {
|
|
2536
2525
|
coordinate,
|
|
2537
2526
|
registry: context.registry,
|
|
2538
2527
|
models: models.map((m) => m.name),
|
|
@@ -2577,9 +2566,9 @@ __export(primary_exports, {
|
|
|
2577
2566
|
|
|
2578
2567
|
// src/primary/SequelizeLibrary.ts
|
|
2579
2568
|
import { Primary } from "@fjell/lib";
|
|
2580
|
-
var
|
|
2569
|
+
var logger16 = logger_default.get("lib-sequelize", "primary", "library");
|
|
2581
2570
|
function createSequelizeLibrary3(keyType, models, libOptions = {}, scopes = [], registry) {
|
|
2582
|
-
|
|
2571
|
+
logger16.debug("createSequelizeLibrary", { keyType, models, libOptions, scopes });
|
|
2583
2572
|
const coordinate = createCoordinate([keyType], scopes);
|
|
2584
2573
|
const options = createOptions2(libOptions);
|
|
2585
2574
|
const operations = createOperations(models, coordinate, registry, options);
|