@rentman/rm-core 0.0.0-RM4-44763
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/rm-core.js +2 -0
- package/dist/rm-core.js.map +1 -0
- package/dist/types/src/classes/ApiFormatter.d.ts +66 -0
- package/dist/types/src/classes/ApiRequestService.d.ts +18 -0
- package/dist/types/src/classes/ApiResponseProcessor.d.ts +31 -0
- package/dist/types/src/classes/BusinessLogicManager/AantalBusinessLogicRuleBase.d.ts +36 -0
- package/dist/types/src/classes/BusinessLogicManager/AantaltotaalBusinessLogicRuleBase.d.ts +60 -0
- package/dist/types/src/classes/BusinessLogicManager/Afspraak/AfspraakRecureindBusinessLogicRule.d.ts +5 -0
- package/dist/types/src/classes/BusinessLogicManager/Beschikbaarheid/BeschikbaarheidRecureindBusinessLogicRule.d.ts +5 -0
- package/dist/types/src/classes/BusinessLogicManager/BusinessLogicManager.d.ts +66 -0
- package/dist/types/src/classes/BusinessLogicManager/BusinessLogicRule.d.ts +81 -0
- package/dist/types/src/classes/BusinessLogicManager/BusinessLogicRuleApplyContext.d.ts +32 -0
- package/dist/types/src/classes/BusinessLogicManager/BusinessLogicRuleConditionContext.d.ts +41 -0
- package/dist/types/src/classes/BusinessLogicManager/BusinessLogicRuleContextBase.d.ts +58 -0
- package/dist/types/src/classes/BusinessLogicManager/Contact/ContactAddressBusinessLogicRule.d.ts +22 -0
- package/dist/types/src/classes/BusinessLogicManager/Customfield/CustomFieldLinkedItemTypeBusinessLogicRule.d.ts +18 -0
- package/dist/types/src/classes/BusinessLogicManager/Customfield/CustomFieldTypeBusinessLogicRule.d.ts +18 -0
- package/dist/types/src/classes/BusinessLogicManager/DefaultContactPersonUpdateBusinessLogicRule.d.ts +30 -0
- package/dist/types/src/classes/BusinessLogicManager/Documents/DocumentTemplateBusinessLogicRule.d.ts +20 -0
- package/dist/types/src/classes/BusinessLogicManager/Exemplaar/ExemplaarAanschafdatumBusinessLogicRule.d.ts +14 -0
- package/dist/types/src/classes/BusinessLogicManager/Exemplaar/ExemplaarBarcodeDeleteBusinessLogicRule.d.ts +14 -0
- package/dist/types/src/classes/BusinessLogicManager/Factuur/FactuurBetalingsconditieBusinessLogicRule.d.ts +21 -0
- package/dist/types/src/classes/BusinessLogicManager/Factuur/FactuurDatumBusinessLogicRule.d.ts +23 -0
- package/dist/types/src/classes/BusinessLogicManager/Factuur/FactuurNumberseriesBusinessLogicRule.d.ts +14 -0
- package/dist/types/src/classes/BusinessLogicManager/Files/FilesNameExtensionBusinessLogicRule.d.ts +20 -0
- package/dist/types/src/classes/BusinessLogicManager/Functie/FunctieNaaminternBusinessLogicRule.d.ts +18 -0
- package/dist/types/src/classes/BusinessLogicManager/Functie/FunctieRecureindBusinessLogicRule.d.ts +5 -0
- package/dist/types/src/classes/BusinessLogicManager/Functie/FunctieTwowayBusinessLogicRule.d.ts +14 -0
- package/dist/types/src/classes/BusinessLogicManager/Functiegroep/FunctiegroepSubprojectBusinessLogicRule.d.ts +17 -0
- package/dist/types/src/classes/BusinessLogicManager/Inhuurmateriaal/InhuurmateriaalAantalBusinessLogicRule.d.ts +4 -0
- package/dist/types/src/classes/BusinessLogicManager/Inhuurmateriaal/InhuurmateriaalAantaltotaalBusinessLogicRule.d.ts +9 -0
- package/dist/types/src/classes/BusinessLogicManager/Materiaal/MateriaalBulkToSerialBusinessLogicRule.d.ts +17 -0
- package/dist/types/src/classes/BusinessLogicManager/Materiaal/MateriaalIsCombinationBusinessLogicRule.d.ts +20 -0
- package/dist/types/src/classes/BusinessLogicManager/Materiaal/MateriaalIsPhysicalCombinationBulkBusinessLogicRule.d.ts +19 -0
- package/dist/types/src/classes/BusinessLogicManager/Materiaal/MateriaalSerialToBulkBusinessLogicRule.d.ts +16 -0
- package/dist/types/src/classes/BusinessLogicManager/Materiaal/MateriaalToPhysicalBusinessLogicRule.d.ts +18 -0
- package/dist/types/src/classes/BusinessLogicManager/Materiaal/MateriaalToVirtualBusinessLogicRule.d.ts +22 -0
- package/dist/types/src/classes/BusinessLogicManager/Materiaal/MateriaalTypePropertiesBusinessLogicRule.d.ts +19 -0
- package/dist/types/src/classes/BusinessLogicManager/Materiaal/MateriaalVerhuurBusinessLogicRule.d.ts +19 -0
- package/dist/types/src/classes/BusinessLogicManager/Materiaal/SurfaceArticleSizeBusinessLogicRule.d.ts +23 -0
- package/dist/types/src/classes/BusinessLogicManager/MateriaalCatFunctieFunctiegroep/LinkedTimeItemBusinessLogicRuleBase.d.ts +46 -0
- package/dist/types/src/classes/BusinessLogicManager/MateriaalCatFunctieFunctiegroep/LinkedTimeItemDurationBusinessLogicRule.d.ts +17 -0
- package/dist/types/src/classes/BusinessLogicManager/MateriaalCatFunctieFunctiegroep/LinkedTimeItemMateriaalCatBusinessLogicRule.d.ts +25 -0
- package/dist/types/src/classes/BusinessLogicManager/MateriaalCatFunctieFunctiegroep/LinkedTimeItemSubprojectBusinessLogicRule.d.ts +48 -0
- package/dist/types/src/classes/BusinessLogicManager/MateriaalCatFunctieFunctiegroep/LinkedTimeItemTimeSchemeBusinessLogicRule.d.ts +27 -0
- package/dist/types/src/classes/BusinessLogicManager/MateriaalCatFunctieFunctiegroep/LinkedTimeItemTimeSchemeStartBusinessLogicRule.d.ts +18 -0
- package/dist/types/src/classes/BusinessLogicManager/MateriaalCatFunctieFunctiegroep/LinkedTimeItemTimeValueStartBusinessLogicRule.d.ts +20 -0
- package/dist/types/src/classes/BusinessLogicManager/MateriaalCatFunctieFunctiegroep/TimeColumnUtil.d.ts +132 -0
- package/dist/types/src/classes/BusinessLogicManager/OfferteContract/OfferteContractDatumBusinessLogicRule.d.ts +21 -0
- package/dist/types/src/classes/BusinessLogicManager/PlanningPersoneelTransport/PlanningPersoneelTransportBusinessLogicRule.d.ts +24 -0
- package/dist/types/src/classes/BusinessLogicManager/Planningmateriaal/PlanningmateriaalAantalBusinessLogicRule.d.ts +4 -0
- package/dist/types/src/classes/BusinessLogicManager/Planningmateriaal/PlanningmateriaalAantaltotaalBusinessLogicRule.d.ts +9 -0
- package/dist/types/src/classes/BusinessLogicManager/Planningmateriaal/PlanningmateriaalOptieBusinessLogicRule.d.ts +26 -0
- package/dist/types/src/classes/BusinessLogicManager/Planningmateriaal/PlanningmateriaalParentBusinessLogicRule.d.ts +17 -0
- package/dist/types/src/classes/BusinessLogicManager/Planningmateriaal/PlanningmateriaalStaysAtLocationBusinessLogicRule.d.ts +32 -0
- package/dist/types/src/classes/BusinessLogicManager/Project/ProjectClientChangedBusinessLogicRule.d.ts +31 -0
- package/dist/types/src/classes/BusinessLogicManager/Project/ProjectContactProjectNoteBusinessLogicRule.d.ts +25 -0
- package/dist/types/src/classes/BusinessLogicManager/Project/ProjectOneSubLocationAlignBusinessRule.d.ts +26 -0
- package/dist/types/src/classes/BusinessLogicManager/ProjectSubproject/ProjectSubprojectDefaultTimeBusinessLogicRule.d.ts +26 -0
- package/dist/types/src/classes/BusinessLogicManager/PurchaseOrder/PurchaseOrderApprovalStatusBusinessLogicRule.d.ts +19 -0
- package/dist/types/src/classes/BusinessLogicManager/PurchaseOrder/PurchaseOrderOwnerBusinessLogicRule.d.ts +16 -0
- package/dist/types/src/classes/BusinessLogicManager/Rate/RateUpdatedBusinessLogicRule.d.ts +14 -0
- package/dist/types/src/classes/BusinessLogicManager/RecurrentItem/RecurrentItemRecureindBusinessLogicRule.d.ts +28 -0
- package/dist/types/src/classes/BusinessLogicManager/Reparatie/ReparatieExemplaarAantalBusinessLogicRule.d.ts +14 -0
- package/dist/types/src/classes/BusinessLogicManager/Reparatie/ReparatieLostItemExemplaarLocationBusinessLogicRule.d.ts +21 -0
- package/dist/types/src/classes/BusinessLogicManager/Rol/RolEditOwnDataBusinessLogicRule.d.ts +20 -0
- package/dist/types/src/classes/BusinessLogicManager/Rol/RolFileAccessBusinessLogicRule.d.ts +19 -0
- package/dist/types/src/classes/BusinessLogicManager/Rol/RolPersoneelsplannerToegangBusinessLogicRule.d.ts +20 -0
- package/dist/types/src/classes/BusinessLogicManager/Rol/RolProjectenBewerkenBusinessLogicRule.d.ts +20 -0
- package/dist/types/src/classes/BusinessLogicManager/Rol/RolProjectenToegangBusinessLogicRule.d.ts +21 -0
- package/dist/types/src/classes/BusinessLogicManager/Rol/RolPurchaseOrderAttachPlanningBusinessLogicRule.d.ts +19 -0
- package/dist/types/src/classes/BusinessLogicManager/Rol/RolVisibilityFinancialsBusinessLogicRule.d.ts +35 -0
- package/dist/types/src/classes/BusinessLogicManager/Rol/RolWarehosueTrackingLogAccessBusinessLogicRule.d.ts +20 -0
- package/dist/types/src/classes/BusinessLogicManager/Setinhoud/SetinhoudCreateFixedBusinessLogicRule.d.ts +21 -0
- package/dist/types/src/classes/BusinessLogicManager/Setinhoud/SetinhoudUpdateFixedBusinessLogicRule.d.ts +26 -0
- package/dist/types/src/classes/BusinessLogicManager/Subproject/SubprojectInPlanningBusinessLogicRule.d.ts +14 -0
- package/dist/types/src/classes/BusinessLogicManager/Subproject/SubprojectOneSubLocationAlignBusinessRule.d.ts +27 -0
- package/dist/types/src/classes/BusinessLogicManager/Subproject/SubprojectOneSubNameAlignBusinessRule.d.ts +22 -0
- package/dist/types/src/classes/BusinessLogicManager/Tijd/TijdNameChangedBusinessLogicRule.d.ts +21 -0
- package/dist/types/src/classes/BusinessLogicManager/Tijd/TijdSubprojectChangedBusinessLogicRule.d.ts +17 -0
- package/dist/types/src/classes/BusinessLogicManager/Uren/HoursTypeBusinessLogicRuleBase.d.ts +10 -0
- package/dist/types/src/classes/BusinessLogicManager/Uren/UrenCalculatedDurationBusinessLogicRule.d.ts +13 -0
- package/dist/types/src/classes/BusinessLogicManager/Uren/UrenCanHaveActivitiesBusinessLogicRule.d.ts +13 -0
- package/dist/types/src/classes/BusinessLogicManager/businessLogicRule.decorator.d.ts +13 -0
- package/dist/types/src/classes/BusinessLogicManager/registeredBusinessLogicRules.d.ts +66 -0
- package/dist/types/src/classes/ChangesCompilation.d.ts +26 -0
- package/dist/types/src/classes/ChangesDelta.d.ts +81 -0
- package/dist/types/src/classes/ChangesDeltaBase.d.ts +85 -0
- package/dist/types/src/classes/ChangesProcessor.d.ts +35 -0
- package/dist/types/src/classes/ChildChangesDelta.d.ts +38 -0
- package/dist/types/src/classes/ColumnCache.d.ts +22 -0
- package/dist/types/src/classes/ColumnExpansion.d.ts +18 -0
- package/dist/types/src/classes/ColumnHandler.d.ts +16 -0
- package/dist/types/src/classes/ColumnInfo.d.ts +16 -0
- package/dist/types/src/classes/ColumnSet.d.ts +79 -0
- package/dist/types/src/classes/ColumnUtil.d.ts +97 -0
- package/dist/types/src/classes/ConversionMapService.d.ts +23 -0
- package/dist/types/src/classes/CreateRequest.d.ts +16 -0
- package/dist/types/src/classes/CreatedChangesDelta.d.ts +22 -0
- package/dist/types/src/classes/ItemCache.d.ts +26 -0
- package/dist/types/src/classes/ItemCreateService.d.ts +14 -0
- package/dist/types/src/classes/ItemEntryService.d.ts +29 -0
- package/dist/types/src/classes/KeyService.d.ts +10 -0
- package/dist/types/src/classes/LockService.d.ts +28 -0
- package/dist/types/src/classes/ModuleChangesCompilation.d.ts +20 -0
- package/dist/types/src/classes/ParentChangesDelta.d.ts +42 -0
- package/dist/types/src/classes/QueryColumnExtractor.d.ts +16 -0
- package/dist/types/src/classes/QueryContainsLocalIdParser.d.ts +14 -0
- package/dist/types/src/classes/QueryParser.d.ts +18 -0
- package/dist/types/src/classes/QueryParserBase.d.ts +32 -0
- package/dist/types/src/classes/QueryParserIdUpdater.d.ts +16 -0
- package/dist/types/src/classes/QueryService.d.ts +10 -0
- package/dist/types/src/classes/RequestBuffer/RequestBuffer.d.ts +13 -0
- package/dist/types/src/classes/RequestBuffer/RequestBufferBase.d.ts +37 -0
- package/dist/types/src/classes/RequestBuffer/RequestBufferManager.d.ts +24 -0
- package/dist/types/src/classes/RequestBuffer/SingleQueryRequestBuffer.d.ts +18 -0
- package/dist/types/src/classes/RequestColumnExpansion.d.ts +11 -0
- package/dist/types/src/classes/RequestColumnsOperationsCache.d.ts +45 -0
- package/dist/types/src/classes/SocketMessageHandler.d.ts +28 -0
- package/dist/types/src/classes/TemplateCache.d.ts +61 -0
- package/dist/types/src/classes/Util.d.ts +36 -0
- package/dist/types/src/classes/cache/AbstractCache.d.ts +86 -0
- package/dist/types/src/classes/cache/CachedQueryHandlerBase.d.ts +145 -0
- package/dist/types/src/classes/cache/ItemHandlerBase.d.ts +97 -0
- package/dist/types/src/classes/cache/ItemMatcherBase.d.ts +90 -0
- package/dist/types/src/classes/cache/server/ServerCache.d.ts +83 -0
- package/dist/types/src/classes/cache/server/ServerCachedQueryHandler.d.ts +29 -0
- package/dist/types/src/classes/cache/server/ServerItemHandler.d.ts +35 -0
- package/dist/types/src/classes/cache/transaction/TransactionCache.d.ts +342 -0
- package/dist/types/src/classes/cache/transaction/TransactionCachedQueryHandler.d.ts +111 -0
- package/dist/types/src/classes/cache/transaction/TransactionEventHandler.d.ts +17 -0
- package/dist/types/src/classes/cache/transaction/TransactionItemHandler.d.ts +121 -0
- package/dist/types/src/classes/cache/transaction/TransactionValidator.d.ts +25 -0
- package/dist/types/src/classes/cache/transaction/TransactionValidatorBase.d.ts +19 -0
- package/dist/types/src/classes/cache/transaction/TransactionValidatorWithDependencies.d.ts +15 -0
- package/dist/types/src/classes/changes/CollectionItemChangesListenerContext.d.ts +22 -0
- package/dist/types/src/classes/changes/ItemChangesListenerContext.d.ts +7 -0
- package/dist/types/src/classes/changes/ItemChangesListenerContextBase.d.ts +44 -0
- package/dist/types/src/classes/matcher/CompatorQueryNode.d.ts +24 -0
- package/dist/types/src/classes/matcher/CustomQueryNode.d.ts +8 -0
- package/dist/types/src/classes/matcher/GraphQueryParser.d.ts +34 -0
- package/dist/types/src/classes/matcher/IsComparatorQueryNode.d.ts +13 -0
- package/dist/types/src/classes/matcher/LinkedToQueryNode.d.ts +9 -0
- package/dist/types/src/classes/matcher/NonMatchableQueryNode.d.ts +9 -0
- package/dist/types/src/classes/matcher/NotIsComparatorQueryNode.d.ts +14 -0
- package/dist/types/src/classes/matcher/QueryNode.d.ts +49 -0
- package/dist/types/src/classes/matcher/RootQueryNode.d.ts +14 -0
- package/dist/types/src/classes/matcher/SearchQueryNode.d.ts +8 -0
- package/dist/types/src/classes/matcher/SubQueryNode.d.ts +8 -0
- package/dist/types/src/classes/matcher/ValueTransformers.d.ts +41 -0
- package/dist/types/src/classes/matcher/ValuelessEdgeQueryNode.d.ts +11 -0
- package/dist/types/src/classes/matcher/greater-smaller-than-comparator-query.node.d.ts +25 -0
- package/dist/types/src/constants.d.ts +2 -0
- package/dist/types/src/core.d.ts +63 -0
- package/dist/types/src/exceptions/CriticalBusinessLogicRuleException.d.ts +4 -0
- package/dist/types/src/exceptions/ItemAlreadyExistsException.d.ts +4 -0
- package/dist/types/src/exceptions/ItemLockedException.d.ts +2 -0
- package/dist/types/src/exceptions/ItemNotFoundException.d.ts +5 -0
- package/dist/types/src/exceptions/MissingColumnException.d.ts +6 -0
- package/dist/types/src/exceptions/SavingInProgressException.d.ts +2 -0
- package/dist/types/src/exceptions/TransactionPendingException.d.ts +2 -0
- package/dist/types/src/factories/ApiResponseProcessorFactory.d.ts +5 -0
- package/dist/types/src/factories/ChangesCompilationFactory.d.ts +5 -0
- package/dist/types/src/factories/ChangesDeltaFactory.d.ts +13 -0
- package/dist/types/src/factories/CollectionResourceFactory.d.ts +20 -0
- package/dist/types/src/factories/ColumnExpansionFactory.d.ts +7 -0
- package/dist/types/src/factories/ColumnInfoFactory.d.ts +7 -0
- package/dist/types/src/factories/ColumnSetFactory.d.ts +15 -0
- package/dist/types/src/factories/GraphQueryParserFactory.d.ts +10 -0
- package/dist/types/src/factories/ItemCacheFactory.d.ts +7 -0
- package/dist/types/src/factories/ItemResourceFactory.d.ts +7 -0
- package/dist/types/src/factories/ModuleChangesCompilationFactory.d.ts +6 -0
- package/dist/types/src/factories/RequestColumnExpansionFactory.d.ts +4 -0
- package/dist/types/src/factories/RequestColumnsOperationsCacheFactory.d.ts +7 -0
- package/dist/types/src/factories/TransactionCacheFactory.d.ts +12 -0
- package/dist/types/src/index.d.ts +11 -0
- package/dist/types/src/interfaces/AbstractCacheDependencyInterface.d.ts +46 -0
- package/dist/types/src/interfaces/ApiRequestServiceInterface.d.ts +14 -0
- package/dist/types/src/interfaces/ErrorHandlerInterface.d.ts +6 -0
- package/dist/types/src/interfaces/LinkTreeServiceInterface.d.ts +6 -0
- package/dist/types/src/interfaces/ServerCacheDependencyInterface.d.ts +6 -0
- package/dist/types/src/interfaces/SocketMessageInterface.d.ts +3 -0
- package/dist/types/src/interfaces/TransactionCollectionHandlerDependencyInterface.d.ts +15 -0
- package/dist/types/src/interfaces/TransactionItemHandlerDependencyInterface.d.ts +16 -0
- package/dist/types/src/internal.d.ts +110 -0
- package/dist/types/src/models/CachedQueryItem.d.ts +33 -0
- package/dist/types/src/models/CollectionEntry.d.ts +16 -0
- package/dist/types/src/models/CollectionOptions.d.ts +111 -0
- package/dist/types/src/models/CollectionResource.d.ts +175 -0
- package/dist/types/src/models/ItemEntry.d.ts +23 -0
- package/dist/types/src/models/ItemOptions.d.ts +25 -0
- package/dist/types/src/models/ItemResource.d.ts +135 -0
- package/dist/types/src/models/LimitedCollectionResource.d.ts +26 -0
- package/dist/types/src/models/OrderedCollectionResource.d.ts +19 -0
- package/dist/types/src/models/Template.d.ts +17 -0
- package/dist/types/src/services/rm-holidays.service.d.ts +31 -0
- package/dist/types/src/types/AggregatedChangesListener.d.ts +99 -0
- package/dist/types/src/types/ApiQuery.d.ts +95 -0
- package/dist/types/src/types/ItemTypesCollection.d.ts +416 -0
- package/package.json +56 -0
- package/readme.md +42 -0
|
@@ -0,0 +1,416 @@
|
|
|
1
|
+
import { Signal } from '@angular/core';
|
|
2
|
+
import { ApiEnumApiType, ApiFields, ApiItemType, GetColumnType, ItemId, RequestParameters as BackendTypesRequestParameters, ResponseColumnItem, RmLoginInfoFlag } from '@rentman/backend-types';
|
|
3
|
+
import { UnknownResponseColumn } from '@rentman/backend-types/dist/manual/api-response-column';
|
|
4
|
+
import moment from 'moment';
|
|
5
|
+
import { ApiQuery, ChangesDeltaItemUpdateMode, ItemEntry, ItemResource, RequestColumnExpansion } from '../internal';
|
|
6
|
+
export type DerivedStringToRequestColumnPath<StringType extends string> = StringType extends `${infer Head}>${infer Tail}` ? readonly [Head, ...DerivedStringToRequestColumnPath<Tail>] : readonly [StringType];
|
|
7
|
+
export type ResolveDerivedValue<ItemTypeType extends ApiItemType, ColumnPath extends readonly string[]> = ColumnPath extends readonly [infer Last] ? Last extends ItemTypeColumnId<ItemTypeType> ? GetFieldValueType<ItemTypeType, Last> : never : ColumnPath extends readonly [infer First, ...infer Rest] ? First extends ItemTypeColumnId<ItemTypeType> ? Rest extends readonly string[] ? ResolveDerivedValue<ExtractApiItemType<GetColumnType<ItemTypeType, First>>, Rest> : never : never : never;
|
|
8
|
+
export type ResolveDerivedValues<ItemTypeType extends ApiItemType, ColumnPath extends readonly string[]> = ColumnPath extends readonly [infer Last] ? Last extends ItemTypeColumnId<ItemTypeType> ? FieldMap<ExtractApiItemType<GetColumnType<ItemTypeType, Last>>> : never : ColumnPath extends readonly [infer First, ...infer Rest] ? First extends ItemTypeColumnId<ItemTypeType> ? Rest extends readonly string[] ? ResolveDerivedValues<ExtractApiItemType<GetColumnType<ItemTypeType, First>>, Rest> : never : never : never;
|
|
9
|
+
export type ApiEnumApiTypeToTsTypeMap = {
|
|
10
|
+
[ApiEnumApiType.TYPE_TOKEN]: string;
|
|
11
|
+
[ApiEnumApiType.TYPE_ID]: number;
|
|
12
|
+
[ApiEnumApiType.TYPE_ORDER]: number;
|
|
13
|
+
[ApiEnumApiType.TYPE_PARENTID]: number;
|
|
14
|
+
[ApiEnumApiType.TYPE_PARENTTYPE]: ApiItemType;
|
|
15
|
+
[ApiEnumApiType.TYPE_ITEMID]: number;
|
|
16
|
+
[ApiEnumApiType.TYPE_ITEMTYPE]: ApiItemType;
|
|
17
|
+
[ApiEnumApiType.TYPE_PASSWORD]: string;
|
|
18
|
+
[ApiEnumApiType.TYPE_IP]: string;
|
|
19
|
+
[ApiEnumApiType.TYPE_COORDINATE]: number;
|
|
20
|
+
[ApiEnumApiType.TYPE_BLOB]: string;
|
|
21
|
+
[ApiEnumApiType.TYPE_BITFLAG]: number;
|
|
22
|
+
[ApiEnumApiType.TYPE_NUMBER]: number;
|
|
23
|
+
[ApiEnumApiType.TYPE_VOLUME]: number;
|
|
24
|
+
[ApiEnumApiType.TYPE_WEIGHT]: number;
|
|
25
|
+
[ApiEnumApiType.TYPE_DISTANCE]: number;
|
|
26
|
+
[ApiEnumApiType.TYPE_DIMENSION]: number;
|
|
27
|
+
[ApiEnumApiType.TYPE_QUANTITY]: number;
|
|
28
|
+
[ApiEnumApiType.TYPE_POWER]: number;
|
|
29
|
+
[ApiEnumApiType.TYPE_CURRENT]: number;
|
|
30
|
+
[ApiEnumApiType.TYPE_DOUBLE]: number;
|
|
31
|
+
[ApiEnumApiType.TYPE_PRICE]: number;
|
|
32
|
+
[ApiEnumApiType.TYPE_BOOL]: boolean;
|
|
33
|
+
[ApiEnumApiType.TYPE_INT]: number;
|
|
34
|
+
[ApiEnumApiType.TYPE_EMAIL]: string;
|
|
35
|
+
[ApiEnumApiType.TYPE_PHONE]: string;
|
|
36
|
+
[ApiEnumApiType.TYPE_URL]: string;
|
|
37
|
+
[ApiEnumApiType.TYPE_PERCENTAGE]: number;
|
|
38
|
+
[ApiEnumApiType.TYPE_TEXT]: string;
|
|
39
|
+
[ApiEnumApiType.TYPE_LONGTEXT]: string;
|
|
40
|
+
[ApiEnumApiType.TYPE_HTML]: string;
|
|
41
|
+
[ApiEnumApiType.TYPE_DATE]: moment.Moment;
|
|
42
|
+
[ApiEnumApiType.TYPE_DATETIME]: moment.Moment;
|
|
43
|
+
[ApiEnumApiType.TYPE_DURATION]: moment.Duration;
|
|
44
|
+
[ApiEnumApiType.TYPE_ITEM]: number;
|
|
45
|
+
[ApiEnumApiType.TYPE_LINK]: number;
|
|
46
|
+
[ApiEnumApiType.TYPE_CHILD]: number;
|
|
47
|
+
[ApiEnumApiType.TYPE_SIBLING]: number;
|
|
48
|
+
[ApiEnumApiType.TYPE_JSON]: any;
|
|
49
|
+
[ApiEnumApiType.TYPE_ENUM]: string;
|
|
50
|
+
[ApiEnumApiType.TYPE_COUNTRY]: string;
|
|
51
|
+
[ApiEnumApiType.TYPE_COLOR]: string;
|
|
52
|
+
[ApiEnumApiType.TYPE_TEXTREPLACE]: string;
|
|
53
|
+
[ApiEnumApiType.TYPE_FILESIZE]: number;
|
|
54
|
+
[ApiEnumApiType.TYPE_ICON]: string;
|
|
55
|
+
[ApiEnumApiType.TYPE_NUMERIC_EXTERNALID]: number;
|
|
56
|
+
[ApiEnumApiType.TYPE_ALPHANUMERIC_EXTERNALID]: string;
|
|
57
|
+
[ApiEnumApiType.TYPE_TIME]: string;
|
|
58
|
+
[ApiEnumApiType.TYPE_TIMESTAMP]: moment.Moment;
|
|
59
|
+
[ApiEnumApiType.TYPE_TIMESTAMP_MS]: moment.Moment;
|
|
60
|
+
};
|
|
61
|
+
export type ParentIdMap<T> = {
|
|
62
|
+
[parentId: string]: T;
|
|
63
|
+
};
|
|
64
|
+
export type EntryParent<ItemTypeType extends ApiItemType = any> = {
|
|
65
|
+
readonly itemType: ItemTypeType;
|
|
66
|
+
readonly itemId: ItemId;
|
|
67
|
+
};
|
|
68
|
+
export type EntryParentNull<ItemTypeType extends ApiItemType = ApiItemType> = EntryParent<ItemTypeType> | null;
|
|
69
|
+
export type ItemTypeColumnId<ItemTypeType extends ApiItemType> = keyof ApiFields[ItemTypeType];
|
|
70
|
+
export type ItemTypeColumnIds<ItemTypeType extends ApiItemType> = readonly ItemTypeColumnId<ItemTypeType>[];
|
|
71
|
+
export type FieldMap<ItemTypeType extends ApiItemType = ApiItemType, ColumnIds extends ItemTypeColumnIds<ItemTypeType> = ItemTypeColumnIds<ItemTypeType>> = {
|
|
72
|
+
[ColumnId in ColumnIds[number]]: GetFieldValueType<ItemTypeType, ColumnId>;
|
|
73
|
+
};
|
|
74
|
+
export type SignalFieldMap<ItemTypeType extends ApiItemType = ApiItemType, ColumnIds extends ItemTypeColumnIds<ItemTypeType> = ItemTypeColumnIds<ItemTypeType>> = {
|
|
75
|
+
[ColumnId in ColumnIds[number]]: Signal<GetFieldValueType<ItemTypeType, ColumnId>>;
|
|
76
|
+
};
|
|
77
|
+
export type ExtractApiType<T> = T extends {
|
|
78
|
+
type: any;
|
|
79
|
+
} ? T['type'] : never;
|
|
80
|
+
export type ExtractApiEnum<T> = T extends {
|
|
81
|
+
enum: any;
|
|
82
|
+
} ? T['enum'] : never;
|
|
83
|
+
export type ExtractApiItemType<T> = T extends {
|
|
84
|
+
itemType: any;
|
|
85
|
+
} ? T['itemType'] : never;
|
|
86
|
+
export type ExtractApiNullable<T> = T extends {
|
|
87
|
+
nullable: any;
|
|
88
|
+
} ? T['nullable'] : never;
|
|
89
|
+
export type ExtractApiFieldType<T> = T extends {
|
|
90
|
+
type: keyof ApiEnumApiTypeToTsTypeMap;
|
|
91
|
+
} ? ApiEnumApiTypeToTsTypeMap[T['type']] : never;
|
|
92
|
+
export type GetFieldValueType<ItemTypeType extends ApiItemType, ColumnId extends keyof ApiFields[ItemTypeType]> = ExtractApiType<ApiFields[ItemTypeType][ColumnId]> extends ApiEnumApiType.TYPE_ENUM ? keyof ExtractApiEnum<ApiFields[ItemTypeType][ColumnId]> : GetNullableValueType<ItemTypeType, ColumnId>;
|
|
93
|
+
type GetNullableValueType<ItemTypeType extends ApiItemType, ColumnId extends keyof ApiFields[ItemTypeType]> = ExtractApiNullable<ApiFields[ItemTypeType][ColumnId]> extends false ? ExtractApiFieldType<ApiFields[ItemTypeType][ColumnId]> : ExtractApiType<ApiFields[ItemTypeType][ColumnId]> extends ApiEnumApiType.TYPE_DATETIME | ApiEnumApiType.TYPE_DATE | ApiEnumApiType.TYPE_TIMESTAMP | ApiEnumApiType.TYPE_TIMESTAMP_MS | ApiEnumApiType.TYPE_DURATION ? ExtractApiFieldType<ApiFields[ItemTypeType][ColumnId]> : null | ExtractApiFieldType<ApiFields[ItemTypeType][ColumnId]>;
|
|
94
|
+
export interface SocketMessageBase {
|
|
95
|
+
header: {
|
|
96
|
+
domain: string;
|
|
97
|
+
account: string;
|
|
98
|
+
sender: {
|
|
99
|
+
displayname: string;
|
|
100
|
+
itemType: 'Medewerker';
|
|
101
|
+
itemId: ItemId;
|
|
102
|
+
authorized: boolean;
|
|
103
|
+
session: string;
|
|
104
|
+
};
|
|
105
|
+
messageId: {
|
|
106
|
+
Id: string;
|
|
107
|
+
sequence: number;
|
|
108
|
+
batch: number;
|
|
109
|
+
request: number;
|
|
110
|
+
};
|
|
111
|
+
sent: string;
|
|
112
|
+
forceEvaluate: boolean;
|
|
113
|
+
};
|
|
114
|
+
messageType: string;
|
|
115
|
+
inResponse: boolean;
|
|
116
|
+
}
|
|
117
|
+
export interface SocketMessageCreate<ItemTypeType extends ApiItemType> extends SocketMessageBase {
|
|
118
|
+
messageType: 'event';
|
|
119
|
+
body: {
|
|
120
|
+
itemType: ItemTypeType;
|
|
121
|
+
eventType: 'create';
|
|
122
|
+
items: Pick<SocketUpdatedItems, ItemTypeType>;
|
|
123
|
+
};
|
|
124
|
+
}
|
|
125
|
+
export interface SocketMessageUpdate<ItemTypeType extends ApiItemType> extends SocketMessageBase {
|
|
126
|
+
messageType: 'event';
|
|
127
|
+
body: {
|
|
128
|
+
itemType: ItemTypeType;
|
|
129
|
+
eventType: 'update';
|
|
130
|
+
items: Pick<SocketUpdatedItems, ItemTypeType>;
|
|
131
|
+
};
|
|
132
|
+
}
|
|
133
|
+
export interface SocketMessageDelete extends SocketMessageBase {
|
|
134
|
+
messageType: 'event';
|
|
135
|
+
body: {
|
|
136
|
+
itemType: ApiItemType;
|
|
137
|
+
eventType: 'delete';
|
|
138
|
+
items: ItemId[];
|
|
139
|
+
};
|
|
140
|
+
}
|
|
141
|
+
export interface SocketMessageLinkTo<ItemTypeType extends ApiItemType> extends SocketMessageBase {
|
|
142
|
+
messageType: 'event';
|
|
143
|
+
body: {
|
|
144
|
+
itemType: ItemTypeType;
|
|
145
|
+
eventType: 'linkTo';
|
|
146
|
+
items: Pick<SocketUpdatedItems, ItemTypeType>;
|
|
147
|
+
};
|
|
148
|
+
}
|
|
149
|
+
type SocketUpdatedItems = {
|
|
150
|
+
[ItemType in ApiItemType]: {
|
|
151
|
+
[itemId: string]: SocketMessageValuesTuple<ItemType, ItemTypeColumnIds<ItemType>>;
|
|
152
|
+
};
|
|
153
|
+
};
|
|
154
|
+
export type SocketMessageValuesTuple<ItemTypeType extends ApiItemType, ColumnIds extends ItemTypeColumnIds<ItemTypeType>> = {
|
|
155
|
+
parent: EntryParent | null;
|
|
156
|
+
values: FieldMap<ItemTypeType, ColumnIds>;
|
|
157
|
+
};
|
|
158
|
+
export type SocketMessage<ItemTypeType extends ApiItemType> = SocketMessageCreate<ItemTypeType> | SocketMessageUpdate<ItemTypeType> | SocketMessageLinkTo<ItemTypeType> | SocketMessageDelete;
|
|
159
|
+
export type ItemResourcesItemTypeMap = {
|
|
160
|
+
[ItemTypeType in ApiItemType]?: ItemResource<ItemTypeType>[];
|
|
161
|
+
};
|
|
162
|
+
export type ItemMap<T> = {
|
|
163
|
+
[itemType: string]: {
|
|
164
|
+
[itemId: string]: T;
|
|
165
|
+
};
|
|
166
|
+
};
|
|
167
|
+
export type ParentItemMap<T> = {
|
|
168
|
+
[parentId: number]: {
|
|
169
|
+
[itemType: string]: T;
|
|
170
|
+
};
|
|
171
|
+
};
|
|
172
|
+
export type ItemEntryMap<ItemTypeType extends ApiItemType = any> = ItemMap<ItemEntry<ItemTypeType>>;
|
|
173
|
+
export type ItemEntryParentIdMap<ItemTypeType extends ApiItemType> = ParentIdMap<ItemEntry<ItemTypeType>[]>;
|
|
174
|
+
export type ConversionMap = {
|
|
175
|
+
[itemId: number]: number;
|
|
176
|
+
};
|
|
177
|
+
export type ItemIdConversionMap = {
|
|
178
|
+
[itemType: string]: ConversionMap;
|
|
179
|
+
};
|
|
180
|
+
export type CreateRequestParameterMap<T = any> = ItemMap<T>;
|
|
181
|
+
export type ItemError = {
|
|
182
|
+
message: string;
|
|
183
|
+
};
|
|
184
|
+
export type CollectionQuery<ItemTypeType extends ApiItemType, IsLocallyMatchable extends boolean = boolean> = {
|
|
185
|
+
object: ApiQuery<ItemTypeType>;
|
|
186
|
+
string: string;
|
|
187
|
+
isLocallyMatchable: IsLocallyMatchable;
|
|
188
|
+
};
|
|
189
|
+
export type ResponseColumnMap<ItemTypeType extends ApiItemType = ApiItemType, ColumnIds extends ItemTypeColumnIds<ItemTypeType> = ItemTypeColumnIds<ItemTypeType>> = {
|
|
190
|
+
[ColumnId in ColumnIds[number]]: GetColumnType<ItemTypeType, ColumnId>;
|
|
191
|
+
};
|
|
192
|
+
export type ResponseColumnItemTypeMap = {
|
|
193
|
+
[ItemTypeType in ApiItemType]: ResponseColumnMap<ItemTypeType, ItemTypeColumnIds<ItemTypeType>>;
|
|
194
|
+
};
|
|
195
|
+
export type RootColumnMap<ItemTypeType extends ApiItemType = any, ColumnIds extends ItemTypeColumnIds<ItemTypeType> = any> = {
|
|
196
|
+
[ColumnId in ColumnIds[number]]: {
|
|
197
|
+
apiColumn: GetColumnType<ItemTypeType, ColumnId>;
|
|
198
|
+
children: RootColumnMap;
|
|
199
|
+
};
|
|
200
|
+
};
|
|
201
|
+
export type ApiResponse<ItemTypeType extends ApiItemType = any> = {
|
|
202
|
+
columns: ItemTypeMap<UnknownResponseColumn[]>;
|
|
203
|
+
itemType: ItemTypeType;
|
|
204
|
+
items: ItemTypeMap<{
|
|
205
|
+
[itemId: string]: {
|
|
206
|
+
data: unknown[];
|
|
207
|
+
links: Record<ApiItemType, ItemId[]>;
|
|
208
|
+
};
|
|
209
|
+
}>;
|
|
210
|
+
links: Record<ApiItemType, ItemId[]>;
|
|
211
|
+
cacheable?: boolean;
|
|
212
|
+
} & Record<string, unknown>;
|
|
213
|
+
export type TemplateItemResourceMap<T extends ItemResource<any>> = {
|
|
214
|
+
main: T;
|
|
215
|
+
linked: ItemResourcesItemTypeMap;
|
|
216
|
+
};
|
|
217
|
+
export type ItemTypeMap<T = any> = {
|
|
218
|
+
[itemType: string]: T;
|
|
219
|
+
};
|
|
220
|
+
export type ApiRequestItemValues = {
|
|
221
|
+
values?: any;
|
|
222
|
+
links?: {
|
|
223
|
+
[itemType: string]: ItemId[];
|
|
224
|
+
};
|
|
225
|
+
};
|
|
226
|
+
export type ApiRequestItemMap = {
|
|
227
|
+
[itemType: string]: {
|
|
228
|
+
[itemId: number]: ApiRequestItemValues;
|
|
229
|
+
};
|
|
230
|
+
};
|
|
231
|
+
export type OnlyNonNever<T> = {
|
|
232
|
+
[P in keyof T]: T[P] extends never ? never : P;
|
|
233
|
+
}[keyof T];
|
|
234
|
+
export type GetColumnIdsOfType<ItemTypeType extends ApiItemType, ApiType extends ApiEnumApiType> = OnlyNonNever<{
|
|
235
|
+
[ColumnId in keyof ApiFields[ItemTypeType]]: ExtractApiType<ApiFields[ItemTypeType][ColumnId]> extends ApiType ? true : never;
|
|
236
|
+
}>;
|
|
237
|
+
export type GetDerivedColumnIds<ItemTypeType extends ApiItemType> = OnlyNonNever<{
|
|
238
|
+
[ColumnId in keyof ApiFields[ItemTypeType]]: GetColumnType<ItemTypeType, ColumnId> extends ResponseColumnItem ? true : never;
|
|
239
|
+
}>;
|
|
240
|
+
export type DerivedRequestColumnObject<ItemTypeType extends ApiItemType = any> = {
|
|
241
|
+
[ColumnId in GetDerivedColumnIds<ItemTypeType>]?: ApiRequestColumnArray<ExtractApiItemType<GetColumnType<ItemTypeType, ColumnId>>>;
|
|
242
|
+
};
|
|
243
|
+
export type ApiRequestColumn<ItemTypeType extends ApiItemType = any> = ItemTypeColumnId<ItemTypeType> | DerivedRequestColumnObject<ItemTypeType>;
|
|
244
|
+
export type ApiRequestColumnArray<ItemTypeType extends ApiItemType = any> = readonly ApiRequestColumn<ItemTypeType>[];
|
|
245
|
+
export type ApiRequestColumns<ItemTypeType extends ApiItemType = any> = ApiRequestColumnArray<ItemTypeType> | true;
|
|
246
|
+
export type MutableApiRequestColumnArray<ItemTypeType extends ApiItemType = any> = ApiRequestColumn<ItemTypeType>[];
|
|
247
|
+
/**
|
|
248
|
+
* Both the array and string representation are read-only, because whenever the object changes, the string representation
|
|
249
|
+
* should change too.
|
|
250
|
+
*/
|
|
251
|
+
export type RequestColumnsTuple<ItemTypeType extends ApiItemType = any> = {
|
|
252
|
+
readonly object: true;
|
|
253
|
+
readonly string: 'true';
|
|
254
|
+
} | {
|
|
255
|
+
readonly object: ApiRequestColumns<ItemTypeType>;
|
|
256
|
+
readonly string: string;
|
|
257
|
+
};
|
|
258
|
+
export type ApiRequestColumnMap = {
|
|
259
|
+
[itemType: string]: ApiRequestColumns;
|
|
260
|
+
};
|
|
261
|
+
export type ApiRequestColumnArrayMap = {
|
|
262
|
+
[itemType in ApiItemType]?: ApiRequestColumnArray;
|
|
263
|
+
};
|
|
264
|
+
export type ApiRequestLimit<ItemTypeType extends ApiItemType = any> = {
|
|
265
|
+
field: ItemTypeColumnId<ItemTypeType>;
|
|
266
|
+
order?: 'desc' | 'asc';
|
|
267
|
+
limit: number;
|
|
268
|
+
};
|
|
269
|
+
export type CreateRequestEntry<ItemTypeType extends ApiItemType> = {
|
|
270
|
+
request: {
|
|
271
|
+
requestType: 'create';
|
|
272
|
+
itemType?: ItemTypeType;
|
|
273
|
+
parentType?: ApiItemType;
|
|
274
|
+
parentId?: {
|
|
275
|
+
[itemId: string]: ItemId;
|
|
276
|
+
};
|
|
277
|
+
items: ApiRequestItemMap;
|
|
278
|
+
columns: ApiRequestColumnMap;
|
|
279
|
+
uniqueTransactionId?: string;
|
|
280
|
+
};
|
|
281
|
+
columns: RequestColumnExpansion;
|
|
282
|
+
items: ItemEntryMap<ItemTypeType>;
|
|
283
|
+
};
|
|
284
|
+
export declare enum ApiLinkTreeType {
|
|
285
|
+
ITEMTABLE = "itemtable",
|
|
286
|
+
DIRECT = "direct"
|
|
287
|
+
}
|
|
288
|
+
export type ApiLinkTreeEntryItemTable = {
|
|
289
|
+
type: ApiLinkTreeType.ITEMTABLE;
|
|
290
|
+
};
|
|
291
|
+
export type ApiLinkTreeEntryDirect<ItemTypeType extends ApiItemType = any> = {
|
|
292
|
+
type: ApiLinkTreeType.DIRECT;
|
|
293
|
+
field: ItemTypeColumnId<ItemTypeType>;
|
|
294
|
+
};
|
|
295
|
+
export type ApiLinkTreeEntry<ItemTypeType extends ApiItemType = any> = ApiLinkTreeEntryItemTable | ApiLinkTreeEntryDirect<ItemTypeType>;
|
|
296
|
+
export type ApiLinkTree = {
|
|
297
|
+
[itemType: string]: {
|
|
298
|
+
[childType: string]: ApiLinkTreeEntry;
|
|
299
|
+
};
|
|
300
|
+
};
|
|
301
|
+
/**
|
|
302
|
+
* @description
|
|
303
|
+
* Callback to determine if an item should be included in the create delta, return `false` to exclude the item
|
|
304
|
+
*/
|
|
305
|
+
export type FilterItemEntryCallback<ItemTypeType extends ApiItemType = any, ColumnIds extends ItemTypeColumnIds<ItemTypeType> = ItemTypeColumnIds<ItemTypeType>> = (itemType: ItemTypeType, fields: FieldMap<ItemTypeType, ColumnIds>) => boolean;
|
|
306
|
+
export type ModifyFieldsCallback<ItemTypeType extends ApiItemType = any, ColumnIds extends ItemTypeColumnIds<ItemTypeType> = ItemTypeColumnIds<ItemTypeType>> = (itemType: ItemTypeType, fields: FieldMap<ItemTypeType, ColumnIds>, itemIdConversionMap?: ItemIdConversionMap) => void;
|
|
307
|
+
export type DeregFunction = () => void;
|
|
308
|
+
export type ResponseItemUpdateModeMap = ItemTypeMap<{
|
|
309
|
+
[itemId: string]: ChangesDeltaItemUpdateMode;
|
|
310
|
+
}>;
|
|
311
|
+
/**
|
|
312
|
+
* Converts a set of request columns to a set of columns of the item type by extracting the derived object key.
|
|
313
|
+
* Example:
|
|
314
|
+
* ```typescript
|
|
315
|
+
* const requestColumns = [
|
|
316
|
+
* 'serienummer',
|
|
317
|
+
* {
|
|
318
|
+
* materiaal: [
|
|
319
|
+
* 'displayname',
|
|
320
|
+
* {
|
|
321
|
+
* creator: [
|
|
322
|
+
* 'displayname',
|
|
323
|
+
* ],
|
|
324
|
+
* }
|
|
325
|
+
* ],
|
|
326
|
+
* },
|
|
327
|
+
* ];
|
|
328
|
+
* ```
|
|
329
|
+
* Will turn into
|
|
330
|
+
* ```typescript
|
|
331
|
+
* [
|
|
332
|
+
* 'serienummer',
|
|
333
|
+
* 'materiaal',
|
|
334
|
+
* ]
|
|
335
|
+
* ```
|
|
336
|
+
*/
|
|
337
|
+
export type ConvertRequestToItemTypeColumnsIds<U extends ApiItemType, T extends ApiRequestColumnArray<U>> = {
|
|
338
|
+
-readonly [K in keyof T]: T[K] extends Record<string, unknown> ? keyof T[K] extends ItemTypeColumnId<U> ? keyof T[K] : never : T[K] extends ItemTypeColumnId<U> ? T[K] : never;
|
|
339
|
+
};
|
|
340
|
+
/**
|
|
341
|
+
* Transforms a set of request columns (which can contain derived column objects) to columns of the item
|
|
342
|
+
* by extracting the derived object key.
|
|
343
|
+
*
|
|
344
|
+
* This should *only* be used when you're transforming a set of columns to something that can *only* contain the item's
|
|
345
|
+
* columns such as a FieldMap or a ResponseColumnObject. If you use this in other situations you lose the derived column information
|
|
346
|
+
*/
|
|
347
|
+
export type RequestToItemColumns<U extends ApiItemType, T extends ApiRequestColumns<U>> = T extends ApiRequestColumnArray<U> ? ConvertRequestToItemTypeColumnsIds<U, T> extends ItemTypeColumnIds<U> ? ConvertRequestToItemTypeColumnsIds<U, T> : never : ItemTypeColumnIds<U>;
|
|
348
|
+
export type RequestColumnsFieldMap<ItemTypeType extends ApiItemType, Columns extends ApiRequestColumns<ItemTypeType>> = FieldMap<ItemTypeType, RequestToItemColumns<ItemTypeType, Columns>>;
|
|
349
|
+
export type RequestColumnsSignalFieldMap<ItemTypeType extends ApiItemType, Columns extends ApiRequestColumns<ItemTypeType>> = SignalFieldMap<ItemTypeType, RequestToItemColumns<ItemTypeType, Columns>>;
|
|
350
|
+
export type HasFlagFn = (flag: RmLoginInfoFlag) => boolean;
|
|
351
|
+
type JoinPath<Prefix extends string, Suffix extends string> = Prefix extends '' ? Suffix : `${Prefix}>${Suffix}`;
|
|
352
|
+
type Add1<T extends number> = T extends 0 ? 1 : T extends 1 ? 2 : T extends 2 ? 3 : T extends 3 ? 4 : T extends 4 ? 5 : never;
|
|
353
|
+
/**
|
|
354
|
+
* Turns a set of request columns into a union of all possible string paths, excluding the root level.
|
|
355
|
+
* Example:
|
|
356
|
+
* ```typescript
|
|
357
|
+
* const requestColumns = [
|
|
358
|
+
* 'serienummer',
|
|
359
|
+
* {
|
|
360
|
+
* materiaal: [
|
|
361
|
+
* 'displayname',
|
|
362
|
+
* {
|
|
363
|
+
* creator: [
|
|
364
|
+
* 'displayname',
|
|
365
|
+
* ],
|
|
366
|
+
* }
|
|
367
|
+
* ],
|
|
368
|
+
* },
|
|
369
|
+
* ];
|
|
370
|
+
* ```
|
|
371
|
+
* Will turn into
|
|
372
|
+
* ```typescript
|
|
373
|
+
* 'materiaal>displayname' | 'materiaal>creator' | 'materiaal>creator>displayname'
|
|
374
|
+
* ```
|
|
375
|
+
*/
|
|
376
|
+
export type RequestColumnsToDerivedStringPaths<T, Prefix extends string = '', Depth extends number = 0> = Depth extends 5 ? any : T extends readonly (infer U)[] ? RequestColumnsToDerivedStringPaths<U, Prefix> : T extends string ? Prefix extends '' ? never : JoinPath<Prefix, T> : T extends Record<string, any> ? {
|
|
377
|
+
[K in keyof T]: (Prefix extends '' ? never : JoinPath<Prefix, K & string>) | RequestColumnsToDerivedStringPaths<T[K], JoinPath<Prefix, K & string>, Add1<Depth>>;
|
|
378
|
+
}[keyof T] : never;
|
|
379
|
+
/**
|
|
380
|
+
* Turns a set of request columns into a union of all possible path arrays, excluding the root level.
|
|
381
|
+
* Example:
|
|
382
|
+
* ```typescript
|
|
383
|
+
* const requestColumns = [
|
|
384
|
+
* 'serienummer',
|
|
385
|
+
* {
|
|
386
|
+
* materiaal: [
|
|
387
|
+
* 'displayname',
|
|
388
|
+
* {
|
|
389
|
+
* creator: [
|
|
390
|
+
* 'displayname',
|
|
391
|
+
* ],
|
|
392
|
+
* }
|
|
393
|
+
* ],
|
|
394
|
+
* },
|
|
395
|
+
* ];
|
|
396
|
+
* ```
|
|
397
|
+
* Will turn into
|
|
398
|
+
* ```typescript
|
|
399
|
+
* ['materiaal', 'displayname'] | ['materiaal', 'creator'] | ['materiaal', 'creator', 'displayname']
|
|
400
|
+
* ```
|
|
401
|
+
*/
|
|
402
|
+
export type RequestColumnsToDerivedArrayPaths<T, Prefix extends readonly string[] = [], Depth extends number = 0> = Depth extends 5 ? any : T extends readonly (infer U)[] ? (Prefix extends [] ? never : Prefix['length'] extends 1 ? never : Prefix) | RequestColumnsToDerivedArrayPaths<U, Prefix, Depth> : T extends string ? Prefix extends [] ? never : readonly [...Prefix, T] : T extends Record<string, any> ? (Prefix extends [] ? never : Prefix['length'] extends 1 ? never : Prefix) | {
|
|
403
|
+
[K in keyof T]: RequestColumnsToDerivedArrayPaths<T[K], [...Prefix, K & string], Add1<Depth>>;
|
|
404
|
+
}[keyof T] : never;
|
|
405
|
+
export type RequestParameters<ItemTypeType extends keyof BackendTypesRequestParameters> = {
|
|
406
|
+
[key in keyof BackendTypesRequestParameters[ItemTypeType]]: RequestParameterTypeToTsType<BackendTypesRequestParameters[ItemTypeType][key]>;
|
|
407
|
+
};
|
|
408
|
+
type RequestParameterTypeToTsType<RequestParameter> = (RequestParameter extends {
|
|
409
|
+
type: 'enum';
|
|
410
|
+
enum: string[];
|
|
411
|
+
} ? RequestParameter['enum'][number] : RequestParameter extends {
|
|
412
|
+
type: keyof ApiEnumApiTypeToTsTypeMap;
|
|
413
|
+
} ? ApiEnumApiTypeToTsTypeMap[RequestParameter['type']] : never) | (RequestParameter extends {
|
|
414
|
+
nullable: true;
|
|
415
|
+
} ? null : never);
|
|
416
|
+
export {};
|
package/package.json
ADDED
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@rentman/rm-core",
|
|
3
|
+
"version": "0.0.0-RM4-44763",
|
|
4
|
+
"description": "Rentman core functionalities",
|
|
5
|
+
"main": "./dist/rm-core.js",
|
|
6
|
+
"types": "./dist/types/src/index.d.ts",
|
|
7
|
+
"engines": {
|
|
8
|
+
"node": ">= 22.9.x <= 22.13.x",
|
|
9
|
+
"npm": ">= 10.8.x <= 10.9.x"
|
|
10
|
+
},
|
|
11
|
+
"repository": {
|
|
12
|
+
"type": "git",
|
|
13
|
+
"url": "https://github.com/rentmanpublic/frontend-core"
|
|
14
|
+
},
|
|
15
|
+
"devDependencies": {
|
|
16
|
+
"@angular/core": "^20",
|
|
17
|
+
"@eslint/js": "^9.8.0",
|
|
18
|
+
"@rentman/backend-types": "4.796.0-60-gf11b0b4e33",
|
|
19
|
+
"@stylistic/eslint-plugin-ts": "^2.7.2",
|
|
20
|
+
"@types/eslint__js": "^8.42.3",
|
|
21
|
+
"clean-webpack-plugin": "^0.1.19",
|
|
22
|
+
"eslint": "^9.8.0",
|
|
23
|
+
"jsdom": "^26.1.0",
|
|
24
|
+
"moment": "^2.30.1",
|
|
25
|
+
"rxjs": "^7",
|
|
26
|
+
"terser-webpack-plugin": "^4.2.3",
|
|
27
|
+
"ts-loader": "^9.3.1",
|
|
28
|
+
"typescript": "5.5.4",
|
|
29
|
+
"typescript-eslint": "^8.4.0",
|
|
30
|
+
"vitest": "^3.2.3",
|
|
31
|
+
"webpack": "^5.74.0",
|
|
32
|
+
"webpack-cli": "^5.1.4",
|
|
33
|
+
"webpack-merge": "^6.0.1"
|
|
34
|
+
},
|
|
35
|
+
"peerDependencies": {
|
|
36
|
+
"@angular/core": "^20",
|
|
37
|
+
"@rentman/backend-types": ">=4.786.0-47-g4a3c77a5db",
|
|
38
|
+
"moment": "^2.30.1",
|
|
39
|
+
"rxjs": "^7"
|
|
40
|
+
},
|
|
41
|
+
"files": [
|
|
42
|
+
"dist"
|
|
43
|
+
],
|
|
44
|
+
"scripts": {
|
|
45
|
+
"prepublishOnly": "npm run bundle",
|
|
46
|
+
"bundle-dev": "webpack --config webpack.dev.js",
|
|
47
|
+
"bundle": "webpack --config webpack.prod.js",
|
|
48
|
+
"type-check": "tsc --noEmit -p ./tsconfig.json && tsc --noEmit -p ./tests/tsconfig.test.json",
|
|
49
|
+
"lint": "eslint src/**/*.ts tests/**/*.ts --quiet",
|
|
50
|
+
"test": "vitest --pool forks --poolOptions.forks.isolate",
|
|
51
|
+
"vitest-watch": "vitest --watch",
|
|
52
|
+
"coverage": "vitest --coverage"
|
|
53
|
+
},
|
|
54
|
+
"author": "Martijn Welker <martijn@rentman.nl>",
|
|
55
|
+
"license": "UNLICENSED"
|
|
56
|
+
}
|
package/readme.md
ADDED
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
# Running a local test version
|
|
2
|
+
1. Make changes
|
|
3
|
+
2. run `npm run bundle-dev`
|
|
4
|
+
3. copy `dist` folder to `<project>/node_modules/@rentman/rm-core/`
|
|
5
|
+
4. Delete the Angular build cache (`.angular`) folder before rebuilding
|
|
6
|
+
|
|
7
|
+
# Releasing
|
|
8
|
+
|
|
9
|
+
## Production versions
|
|
10
|
+
|
|
11
|
+
For stable releases to master:
|
|
12
|
+
|
|
13
|
+
1. Go to [Release workflow](https://github.com/rentmanpublic/frontend-core/actions/workflows/release.yml)
|
|
14
|
+
2. Click "Run workflow"
|
|
15
|
+
3. Select version bump type:
|
|
16
|
+
- `major` – incompatible / breaking changes
|
|
17
|
+
- `minor` – adding functionality in a backward compatible manner
|
|
18
|
+
- `patch` – backward compatible changes / bug fixes
|
|
19
|
+
4. Run the workflow
|
|
20
|
+
|
|
21
|
+
This will publish to npm with the `latest` tag and create a git tag (e.g., `v59.4.0`).
|
|
22
|
+
|
|
23
|
+
## Prereleases (Testing / PoC versions)
|
|
24
|
+
|
|
25
|
+
For testing versions from feature branches:
|
|
26
|
+
|
|
27
|
+
1. Go to [Prerelease workflow](https://github.com/rentmanpublic/frontend-core/actions/workflows/prerelease.yml)
|
|
28
|
+
2. Click "Run workflow"
|
|
29
|
+
3. Select the **branch** you want to release from
|
|
30
|
+
4. Enter a prerelease identifier (e.g., `RM4-12345`, `beta`, `feature-x`)
|
|
31
|
+
5. Run the workflow
|
|
32
|
+
|
|
33
|
+
This will:
|
|
34
|
+
- Create a version like `59.3.0-RM4-12345` (based on the last git tag)
|
|
35
|
+
- Publish to npm with a custom tag (e.g., `RM4-12345`)
|
|
36
|
+
- Commit and tag on your branch (e.g., `v59.3.0-RM4-12345`)
|
|
37
|
+
- Auto-increment if tag exists: `59.3.0-RM4-12345-02`, `59.3.0-RM4-12345-03`, etc.
|
|
38
|
+
|
|
39
|
+
To install a prerelease:
|
|
40
|
+
```bash
|
|
41
|
+
npm install @rentman/rm-core@RM4-12345
|
|
42
|
+
```
|