@rentman/rm-core 66.1.2 → 66.1.4

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.
@@ -3,6 +3,7 @@ import { ErrorHandlerInterface } from '../../interfaces/ErrorHandlerInterface';
3
3
  import { GetAccountSettignsFn, HasFlagFn } from '../../types/ItemTypesCollection';
4
4
  import { TransactionCache } from '../cache/transaction/TransactionCache';
5
5
  import { ChangesDelta } from '../ChangesDelta';
6
+ import { TimeoutPromiseHandler } from '../Util';
6
7
  import { BusinessLogicRule, BusinessLogicRuleConditionConfirmFn, BusinessLogicRuleConfirmFnWithDependency } from './BusinessLogicRule';
7
8
  import { BusinessLogicRuleConstructor } from './businessLogicRule.decorator';
8
9
  /**
@@ -57,7 +58,7 @@ export declare class BusinessLogicManager {
57
58
  *
58
59
  * @private Should only be called by the core.
59
60
  */
60
- handleBusinessLogic(transaction: TransactionCache, changesDelta: ChangesDelta): Promise<TransactionCache | null>;
61
+ handleBusinessLogic(transaction: TransactionCache, changesDelta: ChangesDelta, pauseActionQueueTimeout: TimeoutPromiseHandler['pauseTimeout']): Promise<TransactionCache | null>;
61
62
  private findBusinessLogicRuleInstance;
62
63
  private applyRules;
63
64
  private waitForRuleDependencies;
@@ -20,12 +20,20 @@ type ResolvedPromiseObject<ObjectType extends Record<string, any>> = {
20
20
  [K in keyof ObjectType]: ObjectType[K] extends Promise<infer PromiseType> ? PromiseType : ObjectType[K];
21
21
  };
22
22
  export declare function promiseAllObject<ObjectType extends Record<string, any>>(promiseObject: ObjectType): Promise<ResolvedPromiseObject<ObjectType>>;
23
+ export interface TimeoutPromiseHandler {
24
+ /**
25
+ * The promise always resolves with `timeoutPromiseSymbol` after `timeMilliseconds` has expired.
26
+ */
27
+ promise: Promise<typeof timeoutPromiseSymbol>;
28
+ pauseTimeout: <PromiseType>(promise: Promise<PromiseType>) => Promise<PromiseType>;
29
+ }
30
+ export declare const timeoutPromiseSymbol: unique symbol;
31
+ export declare function promiseCreateTimeout(timeMilliseconds: number): TimeoutPromiseHandler;
23
32
  export interface Deferred<T> {
24
33
  promise: Promise<T>;
25
34
  resolve(value?: T | PromiseLike<T>): void;
26
35
  reject(reason?: any): void;
27
36
  }
28
- export declare function promiseWrapTimeout<T>(promise: Promise<T>, createError: () => Error, timeMilliseconds: number): Promise<T>;
29
37
  export declare function promiseCreateDeferred<T>(): Deferred<T>;
30
38
  export declare function isRegExp(value: any): boolean;
31
39
  export declare function isBoolean(value: any): value is boolean;
@@ -1,6 +1,6 @@
1
1
  import { WritableSignal } from '@angular/core';
2
2
  import { ApiItemType, ItemId } from '@rentman/backend-types';
3
- import { AbstractCache, AbstractCacheDependencyInterface, ApiQuery, ApiRequestColumnArray, ApiRequestColumns, CachedQueryItem, ChangesDelta, ChangesDeltaResult, ChildChangesDelta, ChildCollectionResources, CollectionQuery, CollectionResource, ConversionMap, CreateRequestParameterMap, DeregFunction, FieldMap, ItemAggregatedChangesListener, ItemChangesListener, ItemEntry, ItemIdConversionMap, ItemOptions, ItemResource, ItemResourcesItemTypeMap, ItemsByQueryOptions, ItemTypeMap, LimitedCollectionResource, ModuleChangesCompilationResult, NewItemOptions, OnAfterCreateCallback, ParentChangesDelta, ParentIdMap, RmCore, RootCollectionOptions, ServerCache, TransactionCacheCallbackCondition, TransactionCacheCallbackType, TransactionCachedQueryHandler, TransactionEventHandler, TransactionItemHandler, TransactionOptions, TransactionValidator, TransactionValidatorFactory } from '../../../internal';
3
+ import { AbstractCache, AbstractCacheDependencyInterface, ApiQuery, ApiRequestColumnArray, ApiRequestColumns, CachedQueryItem, ChangesDelta, ChangesDeltaResult, ChildChangesDelta, ChildCollectionResources, CollectionQuery, CollectionResource, ConversionMap, CreateRequestParameterMap, DeregFunction, FieldMap, ItemAggregatedChangesListener, ItemChangesListener, ItemEntry, ItemIdConversionMap, ItemOptions, ItemResource, ItemResourcesItemTypeMap, ItemsByQueryOptions, ItemTypeMap, LimitedCollectionResource, ModuleChangesCompilationResult, NewItemOptions, OnAfterCreateCallback, ParentChangesDelta, ParentIdMap, RmCore, RootCollectionOptions, ServerCache, TimeoutPromiseHandler, TransactionCacheCallbackCondition, TransactionCacheCallbackType, TransactionCachedQueryHandler, TransactionEventHandler, TransactionItemHandler, TransactionOptions, TransactionValidator, TransactionValidatorFactory } from '../../../internal';
4
4
  import { TransactionValidatorWithDependencies } from './TransactionValidatorWithDependencies';
5
5
  type ItemResourceLinks<ItemTypeType extends ApiItemType, ColumnIds extends ApiRequestColumnArray<ItemTypeType>, Children extends ChildCollectionResources | undefined> = {
6
6
  main: ItemResource<ItemTypeType, ColumnIds, Children>;
@@ -10,6 +10,7 @@ export declare enum TransactionErrorLevel {
10
10
  warning = "warning",
11
11
  error = "error"
12
12
  }
13
+ type TransactionState = 'Ready' | 'Saving' | 'Pending';
13
14
  export type TransactionError = {
14
15
  fieldString: string;
15
16
  string: string;
@@ -100,10 +101,6 @@ export declare class TransactionCache extends AbstractCache {
100
101
  isPendingSignal: any;
101
102
  isDestroyedSignal: WritableSignal<boolean>;
102
103
  isValidSignal: import("@angular/core").Signal<boolean>;
103
- /**
104
- * Like {@link isPendingSignal}, but does not take the 'saving' transaction state into account.
105
- */
106
- private isStrictlyPendingSignal;
107
104
  constructor(dependencies: AbstractCacheDependencyInterface, core: RmCore, parent: AbstractCache,
108
105
  /**
109
106
  * @description
@@ -124,7 +121,7 @@ export declare class TransactionCache extends AbstractCache {
124
121
  * @param state When set, immediately set the transaction state property, overwriting any previous state. The state
125
122
  * reverts to `Ready` when all pending actions have been completed.
126
123
  */
127
- private enqueueAction;
124
+ enqueueAction<Result>(label: string, promiseFunction: (pauseActionQueueTimeout: TimeoutPromiseHandler['pauseTimeout']) => Promise<Result>, state?: Exclude<TransactionState, 'ready'>): Promise<Result>;
128
125
  /**
129
126
  * @deprecated use rootItemSignal instead
130
127
  *
@@ -118,5 +118,6 @@ export declare class TransactionItemHandler extends ItemHandlerBase {
118
118
  * it may also include changes applied on ancestor transactions. Is `null` when no changes have been made.
119
119
  */
120
120
  protected processItemEntryChanges<ItemTypeType extends ApiItemType>(itemEntryChangesTuple: ChangesDeltaBaseItemUpdateDelta<ItemTypeType>, createItemChangesIfNoneExist: boolean): Readonly<Partial<FieldMap<ItemTypeType>>> | null;
121
+ private logEquipmentGroupNullError;
121
122
  private fetchLocalItemEntryData;
122
123
  }
package/package.json CHANGED
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "@rentman/rm-core",
3
- "version": "66.1.2",
3
+ "version": "66.1.4",
4
4
  "description": "Rentman core functionalities",
5
5
  "main": "./dist/rm-core.js",
6
6
  "types": "./dist/types/src/index.d.ts",
7
7
  "engines": {
8
- "node": ">= 22.9.x <= 22.13.x",
9
- "npm": ">= 11.10.0"
8
+ "node": "^22.17.0",
9
+ "pnpm": ">= 11.0.0"
10
10
  },
11
11
  "repository": {
12
12
  "type": "git",
@@ -18,6 +18,7 @@
18
18
  "@rentman/backend-types": "^4.852.0-ga86275b6a5",
19
19
  "@stylistic/eslint-plugin-ts": "^2.7.2",
20
20
  "@types/eslint__js": "^8.42.3",
21
+ "@vitest/coverage-v8": "^3.2.3",
21
22
  "clean-webpack-plugin": "^0.1.19",
22
23
  "eslint": "^9.8.0",
23
24
  "jsdom": "^26.1.0",
@@ -25,6 +26,7 @@
25
26
  "rxjs": "^7",
26
27
  "terser-webpack-plugin": "^4.2.3",
27
28
  "ts-loader": "^9.3.1",
29
+ "tslib": "^2.8.1",
28
30
  "typescript": "5.5.4",
29
31
  "typescript-eslint": "^8.4.0",
30
32
  "vitest": "^3.2.3",
@@ -41,8 +43,9 @@
41
43
  "files": [
42
44
  "dist"
43
45
  ],
46
+ "author": "Martijn Welker <martijn@rentman.nl>",
47
+ "license": "UNLICENSED",
44
48
  "scripts": {
45
- "prepublishOnly": "npm run bundle",
46
49
  "bundle-dev": "webpack --config webpack.dev.js",
47
50
  "bundle": "webpack --config webpack.prod.js",
48
51
  "type-check": "tsc --noEmit -p ./tsconfig.json && tsc --noEmit -p ./tests/tsconfig.test.json",
@@ -50,7 +53,5 @@
50
53
  "test": "vitest --pool forks --poolOptions.forks.isolate",
51
54
  "vitest-watch": "vitest --watch",
52
55
  "coverage": "vitest --coverage"
53
- },
54
- "author": "Martijn Welker <martijn@rentman.nl>",
55
- "license": "UNLICENSED"
56
- }
56
+ }
57
+ }
package/readme.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # Running a local test version
2
2
  1. Make changes
3
- 2. run `npm run bundle-dev`
3
+ 2. run `pnpm bundle-dev`
4
4
  3. copy `dist` folder to `<project>/node_modules/@rentman/rm-core/`
5
5
  4. Delete the Angular build cache (`.angular`) folder before rebuilding
6
6
 
@@ -1,2 +0,0 @@
1
- export declare class TransactionPendingException extends Error {
2
- }