@fjell/lib-sequelize 4.4.4 → 4.4.5
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/cjs/AggregationBuilder.cjs +48 -14
- package/dist/cjs/KeyMaster.cjs +33 -11
- package/dist/cjs/OperationContext.cjs +161 -0
- package/dist/cjs/ReferenceBuilder.cjs +47 -5
- package/dist/cjs/RowProcessor.cjs +37 -22
- package/dist/cjs/ops/all.cjs +77 -18
- package/dist/cjs/ops/get.cjs +5 -2
- package/dist/cjs/ops/update.cjs +63 -7
- package/dist/cjs/util/relationshipUtils.cjs +2 -2
- package/dist/es/AggregationBuilder.js +48 -14
- package/dist/es/KeyMaster.js +33 -11
- package/dist/es/OperationContext.js +155 -0
- package/dist/es/ReferenceBuilder.js +47 -5
- package/dist/es/RowProcessor.js +37 -22
- package/dist/es/ops/all.js +77 -18
- package/dist/es/ops/get.js +5 -2
- package/dist/es/ops/update.js +63 -7
- package/dist/es/util/relationshipUtils.js +2 -2
- package/dist/index.cjs +461 -89
- package/dist/index.cjs.map +1 -1
- package/dist/types/AggregationBuilder.d.ts +2 -1
- package/dist/types/EventCoordinator.d.ts +6 -6
- package/dist/types/KeyMaster.d.ts +2 -2
- package/dist/types/OperationContext.d.ts +72 -0
- package/dist/types/ReferenceBuilder.d.ts +2 -1
- package/dist/types/RowProcessor.d.ts +2 -1
- package/dist/types/ops/all.d.ts +1 -1
- package/dist/types/ops/create.d.ts +2 -2
- package/dist/types/ops/update.d.ts +2 -2
- package/package.json +12 -12
package/dist/index.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { Item } from '@fjell/core';
|
|
2
2
|
import { AggregationDefinition } from './Options';
|
|
3
|
+
import { OperationContext } from './OperationContext';
|
|
3
4
|
import * as Library from "@fjell/lib";
|
|
4
|
-
export declare const buildAggregation: (item: Item, aggregationDefinition: AggregationDefinition, registry: Library.Registry) => Promise<Item<never, never, never, never, never, never>>;
|
|
5
|
+
export declare const buildAggregation: (item: Item, aggregationDefinition: AggregationDefinition, registry: Library.Registry, context?: OperationContext) => Promise<Item<never, never, never, never, never, never>>;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import {
|
|
2
|
-
export declare const createEvents: <S extends string, L1 extends string = never, L2 extends string = never, L3 extends string = never, L4 extends string = never, L5 extends string = never>(item:
|
|
3
|
-
export declare const updateEvents: <S extends string, L1 extends string = never, L2 extends string = never, L3 extends string = never, L4 extends string = never, L5 extends string = never>(item:
|
|
4
|
-
export declare const populateEvents: <S extends string, L1 extends string = never, L2 extends string = never, L3 extends string = never, L4 extends string = never, L5 extends string = never>(item:
|
|
5
|
-
export declare const extractEvents: <S extends string, L1 extends string = never, L2 extends string = never, L3 extends string = never, L4 extends string = never, L5 extends string = never>(item:
|
|
6
|
-
export declare const removeEvents: <S extends string, L1 extends string = never, L2 extends string = never, L3 extends string = never, L4 extends string = never, L5 extends string = never>(item:
|
|
1
|
+
import { Item } from '@fjell/core';
|
|
2
|
+
export declare const createEvents: <S extends string, L1 extends string = never, L2 extends string = never, L3 extends string = never, L4 extends string = never, L5 extends string = never>(item: Partial<Item<S, L1, L2, L3, L4, L5>>) => Partial<Item<S, L1, L2, L3, L4, L5>>;
|
|
3
|
+
export declare const updateEvents: <S extends string, L1 extends string = never, L2 extends string = never, L3 extends string = never, L4 extends string = never, L5 extends string = never>(item: Partial<Item<S, L1, L2, L3, L4, L5>>) => Partial<Item<S, L1, L2, L3, L4, L5>>;
|
|
4
|
+
export declare const populateEvents: <S extends string, L1 extends string = never, L2 extends string = never, L3 extends string = never, L4 extends string = never, L5 extends string = never>(item: Partial<Item<S, L1, L2, L3, L4, L5>>) => Partial<Item<S, L1, L2, L3, L4, L5>>;
|
|
5
|
+
export declare const extractEvents: <S extends string, L1 extends string = never, L2 extends string = never, L3 extends string = never, L4 extends string = never, L5 extends string = never>(item: Partial<Item<S, L1, L2, L3, L4, L5>>) => Partial<Item<S, L1, L2, L3, L4, L5>>;
|
|
6
|
+
export declare const removeEvents: <S extends string, L1 extends string = never, L2 extends string = never, L3 extends string = never, L4 extends string = never, L5 extends string = never>(item: Partial<Item<S, L1, L2, L3, L4, L5>>) => Partial<Item<S, L1, L2, L3, L4, L5>>;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { AllItemTypeArrays, Item
|
|
1
|
+
import { AllItemTypeArrays, Item } from '@fjell/core';
|
|
2
2
|
import { Model } from 'sequelize';
|
|
3
|
-
export declare const removeKey: <S extends string, L1 extends string = never, L2 extends string = never, L3 extends string = never, L4 extends string = never, L5 extends string = never>(item:
|
|
3
|
+
export declare const removeKey: <S extends string, L1 extends string = never, L2 extends string = never, L3 extends string = never, L4 extends string = never, L5 extends string = never>(item: Partial<Item<S, L1, L2, L3, L4, L5>>) => Partial<Item<S, L1, L2, L3, L4, L5>>;
|
|
4
4
|
export declare const addKey: <S extends string, L1 extends string = never, L2 extends string = never, L3 extends string = never, L4 extends string = never, L5 extends string = never>(model: Model<any, any>, item: Partial<Item<S, L1, L2, L3, L4, L5>>, keyTypes: AllItemTypeArrays<S, L1, L2, L3, L4, L5>) => Item<S, L1, L2, L3, L4, L5>;
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
import { ComKey, Item, PriKey } from '@fjell/core';
|
|
2
|
+
export type ItemKey = PriKey<any> | ComKey<any, any, any, any, any, any>;
|
|
3
|
+
export interface OperationContext {
|
|
4
|
+
/**
|
|
5
|
+
* Set of serialized keys that are currently being processed.
|
|
6
|
+
* Used to detect circular dependencies.
|
|
7
|
+
*/
|
|
8
|
+
inProgress: Set<string>;
|
|
9
|
+
/**
|
|
10
|
+
* Cache of fully loaded objects keyed by serialized key.
|
|
11
|
+
* Used to avoid duplicate work and provide already-loaded objects.
|
|
12
|
+
* Can store individual items, arrays, or any other values.
|
|
13
|
+
*/
|
|
14
|
+
cache: Map<string, any>;
|
|
15
|
+
/**
|
|
16
|
+
* Add a key to the in-progress set
|
|
17
|
+
*/
|
|
18
|
+
markInProgress(key: ItemKey): void;
|
|
19
|
+
/**
|
|
20
|
+
* Remove a key from the in-progress set
|
|
21
|
+
*/
|
|
22
|
+
markComplete(key: ItemKey): void;
|
|
23
|
+
/**
|
|
24
|
+
* Check if a key is currently being processed (cycle detection)
|
|
25
|
+
*/
|
|
26
|
+
isInProgress(key: ItemKey): boolean;
|
|
27
|
+
/**
|
|
28
|
+
* Get a cached object by key
|
|
29
|
+
*/
|
|
30
|
+
getCached(key: ItemKey): Item<any, any, any, any, any, any> | undefined;
|
|
31
|
+
/**
|
|
32
|
+
* Cache a loaded object by key
|
|
33
|
+
*/
|
|
34
|
+
setCached(key: ItemKey, item: Item<any, any, any, any, any, any>): void;
|
|
35
|
+
/**
|
|
36
|
+
* Check if an object is cached
|
|
37
|
+
*/
|
|
38
|
+
isCached(key: ItemKey): boolean;
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Serialize an ItemKey to a string for use in sets and maps
|
|
42
|
+
*/
|
|
43
|
+
export declare const serializeKey: (key: ItemKey) => string;
|
|
44
|
+
/**
|
|
45
|
+
* Create a new OperationContext
|
|
46
|
+
*/
|
|
47
|
+
export declare const createOperationContext: () => OperationContext;
|
|
48
|
+
/**
|
|
49
|
+
* Context Manager for sharing context across operations without changing public interfaces
|
|
50
|
+
*/
|
|
51
|
+
declare class ContextManager {
|
|
52
|
+
private contexts;
|
|
53
|
+
private currentContextId;
|
|
54
|
+
/**
|
|
55
|
+
* Set the current context for the current operation chain
|
|
56
|
+
*/
|
|
57
|
+
setCurrentContext(context: OperationContext): string;
|
|
58
|
+
/**
|
|
59
|
+
* Get the current context if one is set
|
|
60
|
+
*/
|
|
61
|
+
getCurrentContext(): OperationContext | undefined;
|
|
62
|
+
/**
|
|
63
|
+
* Clear the current context
|
|
64
|
+
*/
|
|
65
|
+
clearCurrentContext(): void;
|
|
66
|
+
/**
|
|
67
|
+
* Execute a function with a specific context set as current
|
|
68
|
+
*/
|
|
69
|
+
withContext<T>(context: OperationContext, fn: () => Promise<T>): Promise<T>;
|
|
70
|
+
}
|
|
71
|
+
export declare const contextManager: ContextManager;
|
|
72
|
+
export {};
|
|
@@ -1,3 +1,4 @@
|
|
|
1
1
|
import { ReferenceDefinition } from './Options';
|
|
2
|
+
import { OperationContext } from './OperationContext';
|
|
2
3
|
import * as Library from "@fjell/lib";
|
|
3
|
-
export declare const buildReference: (item: any, referenceDefinition: ReferenceDefinition, registry: Library.Registry) => Promise<any>;
|
|
4
|
+
export declare const buildReference: (item: any, referenceDefinition: ReferenceDefinition, registry: Library.Registry, context?: OperationContext) => Promise<any>;
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { AllItemTypeArrays, Item } from '@fjell/core';
|
|
2
2
|
import { Model } from 'sequelize';
|
|
3
3
|
import { AggregationDefinition, ReferenceDefinition } from './Options';
|
|
4
|
+
import { OperationContext } from './OperationContext';
|
|
4
5
|
import * as Library from "@fjell/lib";
|
|
5
|
-
export declare const processRow: <S extends string, L1 extends string = never, L2 extends string = never, L3 extends string = never, L4 extends string = never, L5 extends string = never>(row: Model<any, any>, keyTypes: AllItemTypeArrays<S, L1, L2, L3, L4, L5>, referenceDefinitions: ReferenceDefinition[], aggregationDefinitions: AggregationDefinition[], registry: Library.Registry) => Promise<Item<S, L1, L2, L3, L4, L5>>;
|
|
6
|
+
export declare const processRow: <S extends string, L1 extends string = never, L2 extends string = never, L3 extends string = never, L4 extends string = never, L5 extends string = never>(row: Model<any, any>, keyTypes: AllItemTypeArrays<S, L1, L2, L3, L4, L5>, referenceDefinitions: ReferenceDefinition[], aggregationDefinitions: AggregationDefinition[], registry: Library.Registry, context?: OperationContext) => Promise<Item<S, L1, L2, L3, L4, L5>>;
|
package/dist/types/ops/all.d.ts
CHANGED
|
@@ -2,4 +2,4 @@ import { Definition } from '../Definition';
|
|
|
2
2
|
import { Item, ItemQuery, LocKeyArray } from '@fjell/core';
|
|
3
3
|
import { ModelStatic } from 'sequelize';
|
|
4
4
|
import * as Library from "@fjell/lib";
|
|
5
|
-
export declare const getAllOperation: <V extends Item<S, L1, L2, L3, L4, L5>, S extends string, L1 extends string = never, L2 extends string = never, L3 extends string = never, L4 extends string = never, L5 extends string = never>(models: ModelStatic<any
|
|
5
|
+
export declare const getAllOperation: <V extends Item<S, L1, L2, L3, L4, L5>, S extends string, L1 extends string = never, L2 extends string = never, L3 extends string = never, L4 extends string = never, L5 extends string = never>(models: Array<ModelStatic<any>>, definition: Definition<V, S, L1, L2, L3, L4, L5>, registry: Library.Registry) => (itemQuery: ItemQuery, locations?: LocKeyArray<L1, L2, L3, L4, L5> | [] | undefined) => Promise<V[]>;
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { ComKey, Item, LocKeyArray, PriKey
|
|
1
|
+
import { ComKey, Item, LocKeyArray, PriKey } from '@fjell/core';
|
|
2
2
|
import { Definition } from '../Definition';
|
|
3
3
|
import { ModelStatic } from 'sequelize';
|
|
4
4
|
import * as Library from "@fjell/lib";
|
|
5
|
-
export declare const getCreateOperation: <V extends Item<S, L1, L2, L3, L4, L5>, S extends string, L1 extends string = never, L2 extends string = never, L3 extends string = never, L4 extends string = never, L5 extends string = never>(models: ModelStatic<any>[], definition: Definition<V, S, L1, L2, L3, L4, L5>, registry: Library.Registry) => (item:
|
|
5
|
+
export declare const getCreateOperation: <V extends Item<S, L1, L2, L3, L4, L5>, S extends string, L1 extends string = never, L2 extends string = never, L3 extends string = never, L4 extends string = never, L5 extends string = never>(models: ModelStatic<any>[], definition: Definition<V, S, L1, L2, L3, L4, L5>, registry: Library.Registry) => (item: Partial<Item<S, L1, L2, L3, L4, L5>>, options?: {
|
|
6
6
|
key: PriKey<S> | ComKey<S, L1, L2, L3, L4, L5>;
|
|
7
7
|
locations?: never;
|
|
8
8
|
} | {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { ComKey, Item, PriKey
|
|
1
|
+
import { ComKey, Item, PriKey } from '@fjell/core';
|
|
2
2
|
import { Definition } from '../Definition';
|
|
3
3
|
import { ModelStatic } from 'sequelize';
|
|
4
4
|
import * as Library from "@fjell/lib";
|
|
5
|
-
export declare const getUpdateOperation: <V extends Item<S, L1, L2, L3, L4, L5>, S extends string, L1 extends string = never, L2 extends string = never, L3 extends string = never, L4 extends string = never, L5 extends string = never>(models: ModelStatic<any>[], definition: Definition<V, S, L1, L2, L3, L4, L5>, registry: Library.Registry) => (key: PriKey<S> | ComKey<S, L1, L2, L3, L4, L5>, item:
|
|
5
|
+
export declare const getUpdateOperation: <V extends Item<S, L1, L2, L3, L4, L5>, S extends string, L1 extends string = never, L2 extends string = never, L3 extends string = never, L4 extends string = never, L5 extends string = never>(models: ModelStatic<any>[], definition: Definition<V, S, L1, L2, L3, L4, L5>, registry: Library.Registry) => (key: PriKey<S> | ComKey<S, L1, L2, L3, L4, L5>, item: Partial<Item<S, L1, L2, L3, L4, L5>>) => Promise<V>;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@fjell/lib-sequelize",
|
|
3
|
-
"version": "4.4.
|
|
3
|
+
"version": "4.4.5",
|
|
4
4
|
"license": "Apache-2.0",
|
|
5
5
|
"description": "Sequelize Library for Fjell",
|
|
6
6
|
"engines": {
|
|
@@ -21,9 +21,9 @@
|
|
|
21
21
|
"dist"
|
|
22
22
|
],
|
|
23
23
|
"dependencies": {
|
|
24
|
-
"@fjell/core": "^4.4.
|
|
25
|
-
"@fjell/lib": "^4.4.
|
|
26
|
-
"@fjell/logging": "^4.4.
|
|
24
|
+
"@fjell/core": "^4.4.4",
|
|
25
|
+
"@fjell/lib": "^4.4.5",
|
|
26
|
+
"@fjell/logging": "^4.4.4",
|
|
27
27
|
"dayjs": "^1.11.13",
|
|
28
28
|
"deepmerge": "^4.3.1",
|
|
29
29
|
"multer": "2.0.1",
|
|
@@ -36,23 +36,23 @@
|
|
|
36
36
|
"@babel/preset-react": "^7.27.1",
|
|
37
37
|
"@babel/preset-typescript": "^7.27.1",
|
|
38
38
|
"@eslint/eslintrc": "^3.3.1",
|
|
39
|
-
"@eslint/js": "^9.
|
|
40
|
-
"@swc/core": "^1.12.
|
|
39
|
+
"@eslint/js": "^9.30.0",
|
|
40
|
+
"@swc/core": "^1.12.7",
|
|
41
41
|
"@tsconfig/recommended": "^1.0.10",
|
|
42
42
|
"@types/multer": "^1.4.13",
|
|
43
|
-
"@types/node": "^24.0.
|
|
44
|
-
"@typescript-eslint/eslint-plugin": "^8.
|
|
45
|
-
"@typescript-eslint/parser": "^8.
|
|
43
|
+
"@types/node": "^24.0.7",
|
|
44
|
+
"@typescript-eslint/eslint-plugin": "^8.35.0",
|
|
45
|
+
"@typescript-eslint/parser": "^8.35.0",
|
|
46
46
|
"@vitest/coverage-v8": "^3.2.4",
|
|
47
47
|
"@vitest/ui": "^3.2.4",
|
|
48
|
-
"concurrently": "^9.
|
|
49
|
-
"eslint": "^9.
|
|
48
|
+
"concurrently": "^9.2.0",
|
|
49
|
+
"eslint": "^9.30.0",
|
|
50
50
|
"nodemon": "^3.1.10",
|
|
51
51
|
"rimraf": "^6.0.1",
|
|
52
52
|
"ts-node": "^10.9.2",
|
|
53
53
|
"tsc-alias": "^1.8.16",
|
|
54
54
|
"typescript": "^5.8.3",
|
|
55
|
-
"vite": "^
|
|
55
|
+
"vite": "^7.0.0",
|
|
56
56
|
"vite-plugin-dts": "^4.5.4",
|
|
57
57
|
"vite-plugin-node": "^5.0.1",
|
|
58
58
|
"vitest": "^3.2.4"
|