@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.
@@ -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 { ItemProperties } 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: ItemProperties<S, L1, L2, L3, L4, L5>) => ItemProperties<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: ItemProperties<S, L1, L2, L3, L4, L5>) => ItemProperties<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: ItemProperties<S, L1, L2, L3, L4, L5>) => ItemProperties<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: ItemProperties<S, L1, L2, L3, L4, L5>) => ItemProperties<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: ItemProperties<S, L1, L2, L3, L4, L5>) => ItemProperties<S, L1, L2, L3, L4, L5>;
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, ItemProperties } from '@fjell/core';
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: ItemProperties<S, L1, L2, L3, L4, L5>) => ItemProperties<S, L1, L2, L3, L4, L5>;
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>>;
@@ -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>[], definition: Definition<V, S, L1, L2, L3, L4, L5>, registry: Library.Registry) => (itemQuery: ItemQuery, locations?: LocKeyArray<L1, L2, L3, L4, L5> | [] | undefined) => Promise<V[]>;
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, TypesProperties } from '@fjell/core';
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: TypesProperties<V, S, L1, L2, L3, L4, L5>, options?: {
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, TypesProperties } from '@fjell/core';
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: TypesProperties<V, S, L1, L2, L3, L4, L5>) => Promise<V>;
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.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.3",
25
- "@fjell/lib": "^4.4.4",
26
- "@fjell/logging": "^4.4.3",
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.29.0",
40
- "@swc/core": "^1.12.6",
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.3",
44
- "@typescript-eslint/eslint-plugin": "^8.34.1",
45
- "@typescript-eslint/parser": "^8.34.1",
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.1.2",
49
- "eslint": "^9.29.0",
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": "^6.3.5",
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"