@resistdesign/voltra 3.0.0-alpha.2 → 3.0.0-alpha.21
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/README.md +327 -7
- package/api/DBX/DBXAsserts.d.ts +95 -0
- package/api/DBX/DBXRequest.d.ts +5 -0
- package/api/DBX/DBXRuntime.d.ts +5 -0
- package/api/DBX/DBXScenarioConfig.d.ts +9 -0
- package/api/DBX/DBXSeed.d.ts +124 -0
- package/api/DBX/DBXTypes.d.ts +176 -0
- package/api/DBX/index.d.ts +8 -0
- package/api/DataAccessControl.d.ts +220 -0
- package/api/Indexing/API.d.ts +224 -0
- package/api/Indexing/Cursor.d.ts +101 -0
- package/api/Indexing/Handler/Config.d.ts +39 -0
- package/api/Indexing/Handler.d.ts +166 -0
- package/api/Indexing/Trace.d.ts +54 -0
- package/api/Indexing/Types.d.ts +204 -0
- package/api/Indexing/ddb/AwsSdkV3Adapter.d.ts +8 -0
- package/api/Indexing/ddb/Types.d.ts +169 -0
- package/api/Indexing/docId.d.ts +27 -0
- package/api/Indexing/exact/ExactDdb.d.ts +58 -0
- package/api/Indexing/exact/ExactIndex.d.ts +90 -0
- package/api/Indexing/exact/ExactS3.d.ts +41 -0
- package/api/Indexing/fieldQualification.d.ts +12 -0
- package/api/Indexing/fulltext/FullTextDdbBackend.d.ts +210 -0
- package/api/Indexing/fulltext/FullTextMemoryBackend.d.ts +93 -0
- package/api/Indexing/fulltext/Schema.d.ts +164 -0
- package/api/Indexing/hashUniversal.d.ts +13 -0
- package/api/Indexing/index.d.ts +45 -0
- package/api/Indexing/lossy/LossyDdb.d.ts +43 -0
- package/api/Indexing/lossy/LossyIndex.d.ts +72 -0
- package/api/Indexing/lossy/LossyS3.d.ts +40 -0
- package/api/Indexing/rel/Cursor.d.ts +25 -0
- package/api/Indexing/rel/Handlers.d.ts +143 -0
- package/api/Indexing/rel/RelationalDdb.d.ts +169 -0
- package/api/Indexing/rel/RelationalInMemoryBackend.d.ts +38 -0
- package/api/Indexing/rel/Types.d.ts +69 -0
- package/api/Indexing/structured/Cursor.d.ts +26 -0
- package/api/Indexing/structured/Handlers.d.ts +128 -0
- package/api/Indexing/structured/SearchStructured.d.ts +44 -0
- package/api/Indexing/structured/StructuredDdb.d.ts +166 -0
- package/api/Indexing/structured/StructuredDdbBackend.d.ts +109 -0
- package/api/Indexing/structured/StructuredInMemoryBackend.d.ts +34 -0
- package/api/Indexing/structured/StructuredInMemoryIndex.d.ts +58 -0
- package/api/Indexing/structured/StructuredStringLike.d.ts +25 -0
- package/api/Indexing/structured/StructuredWriter.d.ts +61 -0
- package/api/Indexing/structured/Types.d.ts +126 -0
- package/api/Indexing/structured/index.d.ts +9 -0
- package/api/Indexing/tokenize.d.ts +31 -0
- package/api/ORM/DACUtils.d.ts +270 -0
- package/api/ORM/ListItemUtils.d.ts +40 -0
- package/api/ORM/ORMRouteMap.d.ts +55 -0
- package/api/ORM/TypeInfoORMService.d.ts +555 -0
- package/api/ORM/drivers/DynamoDBDataItemDBDriver/ConfigTypes.d.ts +229 -0
- package/api/ORM/drivers/DynamoDBDataItemDBDriver.d.ts +89 -0
- package/api/ORM/drivers/InMemoryDataItemDBDriver/ConfigTypes.d.ts +4 -0
- package/api/ORM/drivers/InMemoryDataItemDBDriver.d.ts +55 -0
- package/api/ORM/drivers/InMemoryFileItemDBDriver/ConfigTypes.d.ts +13 -0
- package/api/ORM/drivers/InMemoryFileItemDBDriver.d.ts +98 -0
- package/api/ORM/drivers/InMemoryItemRelationshipDBDriver.d.ts +16 -0
- package/api/ORM/drivers/IndexingRelationshipDriver.d.ts +123 -0
- package/api/ORM/drivers/S3FileItemDBDriver/ConfigTypes.d.ts +322 -0
- package/api/ORM/drivers/S3FileItemDBDriver/S3FileDriver.d.ts +118 -0
- package/{src/api → api}/ORM/drivers/S3FileItemDBDriver.d.ts +27 -0
- package/api/ORM/drivers/common/SupportedTypeInfoORMDBDrivers.d.ts +36 -0
- package/{src/api → api}/ORM/drivers/common/Types.d.ts +120 -0
- package/api/ORM/drivers/index.d.ts +7 -0
- package/api/ORM/index.d.ts +7 -0
- package/api/ORM/indexing/criteriaToStructuredWhere.d.ts +17 -0
- package/api/Router/AWS.d.ts +80 -0
- package/api/Router/Auth.d.ts +14 -0
- package/api/Router/CORS.d.ts +66 -0
- package/{src/api → api}/Router/Types.d.ts +70 -4
- package/api/Router/index.d.ts +89 -0
- package/api/index.d.ts +68 -0
- package/api/index.js +9204 -0
- package/app/forms/Engine.d.ts +20 -0
- package/app/forms/core/createAutoField.d.ts +35 -0
- package/app/forms/core/createFormRenderer.d.ts +24 -0
- package/app/forms/core/getFieldKind.d.ts +14 -0
- package/app/forms/core/index.d.ts +11 -0
- package/app/forms/core/mergeSuites.d.ts +22 -0
- package/app/forms/core/resolveSuite.d.ts +14 -0
- package/app/forms/core/types.d.ts +153 -0
- package/app/forms/index.d.ts +9 -0
- package/app/forms/types.d.ts +156 -0
- package/app/helpers/styled.d.ts +3 -0
- package/app/index.d.ts +98 -0
- package/app/index.js +1386 -0
- package/{src/app → app}/utils/ApplicationState.d.ts +115 -0
- package/{src/app → app}/utils/ApplicationStateLoader.d.ts +40 -0
- package/app/utils/Controller.d.ts +10 -0
- package/app/utils/Debug.d.ts +14 -0
- package/app/utils/EasyLayout.d.ts +89 -0
- package/app/utils/History.d.ts +148 -0
- package/app/utils/Route.d.ts +129 -0
- package/app/utils/RouteHistory.d.ts +26 -0
- package/app/utils/Service.d.ts +45 -0
- package/app/utils/TypeInfoORMAPIUtils.d.ts +94 -0
- package/app/utils/TypeInfoORMClient.d.ts +103 -0
- package/app/utils/easy-layout/computeAreaBounds.d.ts +5 -0
- package/app/utils/easy-layout/computeTracks.d.ts +16 -0
- package/app/utils/easy-layout/index.d.ts +5 -0
- package/app/utils/easy-layout/parseTemplate.d.ts +12 -0
- package/app/utils/easy-layout/types.d.ts +52 -0
- package/app/utils/easy-layout/validateAreas.d.ts +5 -0
- package/app/utils/index.d.ts +23 -0
- package/{src/common/TypeParsing → build}/TypeMapping.d.ts +8 -0
- package/build/TypeParsing.d.ts +10 -0
- package/build/index.d.ts +15 -0
- package/build/index.js +579 -0
- package/common/CommandLine/collectRequiredEnvironmentVariables.d.ts +9 -0
- package/common/CommandLine/index.d.ts +6 -0
- package/common/HelperTypes.d.ts +9 -0
- package/common/IdGeneration/getSimpleId.d.ts +8 -0
- package/{src/common → common}/ItemRelationshipInfoTypes.d.ts +19 -1
- package/common/ItemRelationships/ItemRelationshipValidation.d.ts +21 -0
- package/common/Logging/Utils.d.ts +19 -0
- package/common/Routing.d.ts +67 -0
- package/common/SearchTypes.d.ts +248 -0
- package/common/SearchUtils.d.ts +55 -0
- package/{src/common → common}/SearchValidation.d.ts +10 -0
- package/{src/common → common}/StringTransformers.d.ts +11 -0
- package/common/Testing/CLI.d.ts +6 -0
- package/common/Testing/CLI.js +432 -0
- package/{src/common → common}/Testing/Types.d.ts +103 -4
- package/{src/common → common}/Testing/Utils.d.ts +65 -1
- package/common/Testing/index.d.ts +8 -0
- package/common/TypeInfoDataItemUtils.d.ts +39 -0
- package/common/TypeInfoORM/Types.d.ts +342 -0
- package/common/TypeParsing/Constants.d.ts +4 -0
- package/{src/common → common}/TypeParsing/ParsingUtils/Constants.d.ts +3 -0
- package/{src/common → common}/TypeParsing/ParsingUtils/checkType.d.ts +6 -0
- package/{src/common → common}/TypeParsing/ParsingUtils/checkUnionType.d.ts +6 -0
- package/common/TypeParsing/ParsingUtils/extractCommentTags.d.ts +8 -0
- package/common/TypeParsing/ParsingUtils/extractLiteralValues.d.ts +12 -0
- package/common/TypeParsing/ParsingUtils/extractTypeDetails.d.ts +14 -0
- package/common/TypeParsing/ParsingUtils/getPrimaryFieldForTypeInfo.d.ts +18 -0
- package/common/TypeParsing/ParsingUtils/getTypeInfo.d.ts +9 -0
- package/{src/common → common}/TypeParsing/ParsingUtils/getTypeInfoField.d.ts +6 -0
- package/common/TypeParsing/ParsingUtils/getTypeInfoFromAliasType.d.ts +11 -0
- package/common/TypeParsing/ParsingUtils/getTypeInfoFromFieldFilter.d.ts +12 -0
- package/common/TypeParsing/ParsingUtils/getTypeInfoFromTypeAlias.d.ts +11 -0
- package/common/TypeParsing/ParsingUtils/getTypeKeyword.d.ts +9 -0
- package/common/TypeParsing/ParsingUtils/getUnionOrIntersectionTypeInfo.d.ts +11 -0
- package/common/TypeParsing/ParsingUtils/getUnionOrLiteralStringValues.d.ts +8 -0
- package/{src/common → common}/TypeParsing/TypeInfo.d.ts +61 -1
- package/{src/common → common}/TypeParsing/Utils.d.ts +26 -0
- package/{src/common → common}/TypeParsing/Validation.d.ts +105 -0
- package/common/TypeParsing/index.d.ts +8 -0
- package/common/index.d.ts +50 -0
- package/common/index.js +413 -0
- package/{src/iac → iac}/SimpleCFT.d.ts +46 -2
- package/iac/index.d.ts +40 -0
- package/iac/index.js +258 -0
- package/iac/packs/auth/user-management.d.ts +80 -0
- package/iac/packs/auth.d.ts +86 -0
- package/iac/packs/build/utils.d.ts +289 -0
- package/iac/packs/build.d.ts +92 -0
- package/iac/packs/cdn.d.ts +33 -0
- package/iac/packs/cloud-function.d.ts +67 -0
- package/{src/iac → iac}/packs/database.d.ts +4 -1
- package/{src/iac → iac}/packs/dns.d.ts +22 -1
- package/iac/packs/file-storage.d.ts +46 -0
- package/iac/packs/gateway.d.ts +79 -0
- package/iac/packs/index.d.ts +60 -0
- package/iac/packs/index.js +1622 -0
- package/iac/packs/repo.d.ts +28 -0
- package/iac/packs/ssl-certificate.d.ts +28 -0
- package/{src/iac → iac}/types/Constants.d.ts +15 -0
- package/iac/types/Renderers.d.ts +96 -0
- package/iac/types/Types.d.ts +131 -0
- package/iac/types/Utils.d.ts +9 -0
- package/{src/iac → iac}/utils/index.d.ts +56 -5
- package/iac/utils/patch-utils.d.ts +66 -0
- package/native/forms/createNativeFormRenderer.d.ts +21 -0
- package/native/forms/index.d.ts +8 -0
- package/native/forms/primitives/index.d.ts +48 -0
- package/native/forms/suite.d.ts +15 -0
- package/native/index.d.ts +15 -0
- package/native/index.js +1323 -0
- package/native/utils/EasyLayout.d.ts +88 -0
- package/native/utils/History.d.ts +113 -0
- package/native/utils/NativeRoute.d.ts +44 -0
- package/native/utils/Route.d.ts +50 -0
- package/native/utils/index.d.ts +11 -0
- package/package.json +87 -42
- package/web/forms/UI.d.ts +67 -0
- package/web/forms/createWebFormRenderer.d.ts +21 -0
- package/web/forms/index.d.ts +9 -0
- package/web/forms/primitives/index.d.ts +21 -0
- package/web/forms/suite.d.ts +15 -0
- package/web/index.d.ts +15 -0
- package/web/index.js +1297 -0
- package/web/utils/EasyLayout.d.ts +47 -0
- package/web/utils/Route.d.ts +20 -0
- package/web/utils/index.d.ts +7 -0
- package/src/api/DataAccessControl.d.ts +0 -85
- package/src/api/DataAccessControl.js +0 -159
- package/src/api/ORM/DACUtils.d.ts +0 -60
- package/src/api/ORM/DACUtils.js +0 -197
- package/src/api/ORM/ListItemUtils.d.ts +0 -7
- package/src/api/ORM/ListItemUtils.js +0 -22
- package/src/api/ORM/ORMRouteMap.d.ts +0 -19
- package/src/api/ORM/ORMRouteMap.js +0 -82
- package/src/api/ORM/TypeInfoORMService.d.ts +0 -103
- package/src/api/ORM/TypeInfoORMService.js +0 -581
- package/src/api/ORM/drivers/DynamoDBDataItemDBDriver/ConfigTypes.d.ts +0 -63
- package/src/api/ORM/drivers/DynamoDBDataItemDBDriver/ConfigTypes.js +0 -2
- package/src/api/ORM/drivers/DynamoDBDataItemDBDriver.d.ts +0 -36
- package/src/api/ORM/drivers/DynamoDBDataItemDBDriver.js +0 -282
- package/src/api/ORM/drivers/S3FileItemDBDriver/ConfigTypes.d.ts +0 -90
- package/src/api/ORM/drivers/S3FileItemDBDriver/ConfigTypes.js +0 -2
- package/src/api/ORM/drivers/S3FileItemDBDriver/S3FileDriver.d.ts +0 -45
- package/src/api/ORM/drivers/S3FileItemDBDriver/S3FileDriver.js +0 -127
- package/src/api/ORM/drivers/S3FileItemDBDriver.js +0 -182
- package/src/api/ORM/drivers/common/SupportedTypeInfoORMDBDrivers.d.ts +0 -12
- package/src/api/ORM/drivers/common/SupportedTypeInfoORMDBDrivers.js +0 -20
- package/src/api/ORM/drivers/common/Types.js +0 -14
- package/src/api/ORM/drivers/common/index.js +0 -18
- package/src/api/ORM/drivers/index.d.ts +0 -3
- package/src/api/ORM/drivers/index.js +0 -19
- package/src/api/ORM/index.d.ts +0 -4
- package/src/api/ORM/index.js +0 -43
- package/src/api/Router/AWS.d.ts +0 -26
- package/src/api/Router/AWS.js +0 -76
- package/src/api/Router/Auth.d.ts +0 -2
- package/src/api/Router/Auth.js +0 -9
- package/src/api/Router/CORS.d.ts +0 -6
- package/src/api/Router/CORS.js +0 -27
- package/src/api/Router/Types.js +0 -2
- package/src/api/Router/index.d.ts +0 -18
- package/src/api/Router/index.js +0 -145
- package/src/api/index.d.ts +0 -3
- package/src/api/index.js +0 -39
- package/src/app/index.d.ts +0 -1
- package/src/app/index.js +0 -37
- package/src/app/utils/ApplicationState.js +0 -86
- package/src/app/utils/ApplicationStateLoader.js +0 -57
- package/src/app/utils/Controller.d.ts +0 -4
- package/src/app/utils/Controller.js +0 -47
- package/src/app/utils/Debug.d.ts +0 -4
- package/src/app/utils/Debug.js +0 -30
- package/src/app/utils/EasyLayout.d.ts +0 -49
- package/src/app/utils/EasyLayout.js +0 -122
- package/src/app/utils/Route.d.ts +0 -28
- package/src/app/utils/Route.js +0 -102
- package/src/app/utils/Service.d.ts +0 -12
- package/src/app/utils/Service.js +0 -34
- package/src/app/utils/TypeInfoORMAPIUtils.d.ts +0 -20
- package/src/app/utils/TypeInfoORMAPIUtils.js +0 -62
- package/src/app/utils/TypeInfoORMClient.d.ts +0 -24
- package/src/app/utils/TypeInfoORMClient.js +0 -69
- package/src/app/utils/index.d.ts +0 -8
- package/src/app/utils/index.js +0 -24
- package/src/common/CommandLine/collectRequiredEnvironmentVariables.d.ts +0 -1
- package/src/common/CommandLine/collectRequiredEnvironmentVariables.js +0 -16
- package/src/common/HelperTypes.d.ts +0 -3
- package/src/common/HelperTypes.js +0 -2
- package/src/common/IdGeneration/getSimpleId.d.ts +0 -4
- package/src/common/IdGeneration/getSimpleId.js +0 -16
- package/src/common/IdGeneration/index.js +0 -17
- package/src/common/ItemRelationshipInfoTypes.js +0 -20
- package/src/common/ItemRelationships/ItemRelationshipValidation.d.ts +0 -10
- package/src/common/ItemRelationships/ItemRelationshipValidation.js +0 -43
- package/src/common/ItemRelationships/index.js +0 -17
- package/src/common/Logging/Utils.d.ts +0 -10
- package/src/common/Logging/Utils.js +0 -33
- package/src/common/Logging/index.js +0 -17
- package/src/common/Routing.d.ts +0 -25
- package/src/common/Routing.js +0 -102
- package/src/common/SearchTypes.d.ts +0 -98
- package/src/common/SearchTypes.js +0 -39
- package/src/common/SearchUtils.d.ts +0 -22
- package/src/common/SearchUtils.js +0 -134
- package/src/common/SearchValidation.js +0 -90
- package/src/common/Storyboarding/Types.d.ts +0 -25
- package/src/common/Storyboarding/Types.js +0 -2
- package/src/common/StringTransformers.js +0 -36
- package/src/common/Testing/CLI.d.ts +0 -2
- package/src/common/Testing/CLI.js +0 -56
- package/src/common/Testing/Types.js +0 -19
- package/src/common/Testing/Utils.js +0 -334
- package/src/common/Testing/index.d.ts +0 -2
- package/src/common/Testing/index.js +0 -18
- package/src/common/TypeInfoDataItemUtils.d.ts +0 -10
- package/src/common/TypeInfoDataItemUtils.js +0 -55
- package/src/common/TypeInfoORM/Types.d.ts +0 -76
- package/src/common/TypeInfoORM/Types.js +0 -55
- package/src/common/TypeInfoORM/index.js +0 -17
- package/src/common/TypeParsing/Constants.d.ts +0 -1
- package/src/common/TypeParsing/Constants.js +0 -4
- package/src/common/TypeParsing/ParsingUtils/Constants.js +0 -8
- package/src/common/TypeParsing/ParsingUtils/checkType.js +0 -46
- package/src/common/TypeParsing/ParsingUtils/checkUnionType.js +0 -15
- package/src/common/TypeParsing/ParsingUtils/extractCommentTags.d.ts +0 -2
- package/src/common/TypeParsing/ParsingUtils/extractCommentTags.js +0 -105
- package/src/common/TypeParsing/ParsingUtils/extractLiteralValues.d.ts +0 -6
- package/src/common/TypeParsing/ParsingUtils/extractLiteralValues.js +0 -42
- package/src/common/TypeParsing/ParsingUtils/extractTypeDetails.d.ts +0 -8
- package/src/common/TypeParsing/ParsingUtils/extractTypeDetails.js +0 -14
- package/src/common/TypeParsing/ParsingUtils/getPrimaryFieldForTypeInfo.d.ts +0 -5
- package/src/common/TypeParsing/ParsingUtils/getPrimaryFieldForTypeInfo.js +0 -27
- package/src/common/TypeParsing/ParsingUtils/getTypeInfo.d.ts +0 -3
- package/src/common/TypeParsing/ParsingUtils/getTypeInfo.js +0 -27
- package/src/common/TypeParsing/ParsingUtils/getTypeInfoField.js +0 -44
- package/src/common/TypeParsing/ParsingUtils/getTypeInfoFromAliasType.d.ts +0 -4
- package/src/common/TypeParsing/ParsingUtils/getTypeInfoFromAliasType.js +0 -28
- package/src/common/TypeParsing/ParsingUtils/getTypeInfoFromFieldFilter.d.ts +0 -4
- package/src/common/TypeParsing/ParsingUtils/getTypeInfoFromFieldFilter.js +0 -105
- package/src/common/TypeParsing/ParsingUtils/getTypeInfoFromTypeAlias.d.ts +0 -4
- package/src/common/TypeParsing/ParsingUtils/getTypeInfoFromTypeAlias.js +0 -20
- package/src/common/TypeParsing/ParsingUtils/getTypeKeyword.d.ts +0 -3
- package/src/common/TypeParsing/ParsingUtils/getTypeKeyword.js +0 -17
- package/src/common/TypeParsing/ParsingUtils/getUnionOrIntersectionTypeInfo.d.ts +0 -4
- package/src/common/TypeParsing/ParsingUtils/getUnionOrIntersectionTypeInfo.js +0 -49
- package/src/common/TypeParsing/ParsingUtils/getUnionOrLiteralStringValues.d.ts +0 -2
- package/src/common/TypeParsing/ParsingUtils/getUnionOrLiteralStringValues.js +0 -24
- package/src/common/TypeParsing/TypeInfo.js +0 -13
- package/src/common/TypeParsing/TypeMapping.js +0 -32
- package/src/common/TypeParsing/TypeParsing.d.ts +0 -5
- package/src/common/TypeParsing/TypeParsing.js +0 -39
- package/src/common/TypeParsing/Utils.js +0 -94
- package/src/common/TypeParsing/Validation.js +0 -340
- package/src/common/TypeParsing/index.d.ts +0 -5
- package/src/common/TypeParsing/index.js +0 -44
- package/src/common/index.d.ts +0 -11
- package/src/common/index.js +0 -47
- package/src/iac/SimpleCFT.js +0 -82
- package/src/iac/index.d.ts +0 -9
- package/src/iac/index.js +0 -48
- package/src/iac/packs/auth/user-management.d.ts +0 -14
- package/src/iac/packs/auth/user-management.js +0 -302
- package/src/iac/packs/auth.d.ts +0 -19
- package/src/iac/packs/auth.js +0 -47
- package/src/iac/packs/build/utils.d.ts +0 -100
- package/src/iac/packs/build/utils.js +0 -23
- package/src/iac/packs/build.d.ts +0 -29
- package/src/iac/packs/build.js +0 -217
- package/src/iac/packs/cdn.d.ts +0 -12
- package/src/iac/packs/cdn.js +0 -113
- package/src/iac/packs/cloud-function.d.ts +0 -17
- package/src/iac/packs/cloud-function.js +0 -69
- package/src/iac/packs/database.js +0 -27
- package/src/iac/packs/dns.js +0 -26
- package/src/iac/packs/file-storage.d.ts +0 -14
- package/src/iac/packs/file-storage.js +0 -71
- package/src/iac/packs/gateway.d.ts +0 -27
- package/src/iac/packs/gateway.js +0 -342
- package/src/iac/packs/index.d.ts +0 -11
- package/src/iac/packs/index.js +0 -27
- package/src/iac/packs/repo.d.ts +0 -10
- package/src/iac/packs/repo.js +0 -34
- package/src/iac/packs/ssl-certificate.d.ts +0 -10
- package/src/iac/packs/ssl-certificate.js +0 -36
- package/src/iac/types/Constants.js +0 -20
- package/src/iac/types/IaCTypes.js +0 -14
- package/src/iac/types/Renderers.d.ts +0 -12
- package/src/iac/types/Renderers.js +0 -112
- package/src/iac/types/Types.d.ts +0 -37
- package/src/iac/types/Types.js +0 -2
- package/src/iac/types/Utils.d.ts +0 -2
- package/src/iac/types/Utils.js +0 -60
- package/src/iac/types/generate.js +0 -31
- package/src/iac/utils/index.js +0 -105
- package/src/iac/utils/patch-utils.d.ts +0 -15
- package/src/iac/utils/patch-utils.js +0 -62
- package/src/index.d.ts +0 -178
- package/src/index.js +0 -214
- /package/{src/api → api}/ORM/drivers/common/index.d.ts +0 -0
- /package/{src/common → common}/IdGeneration/index.d.ts +0 -0
- /package/{src/common → common}/ItemRelationships/index.d.ts +0 -0
- /package/{src/common → common}/Logging/index.d.ts +0 -0
- /package/{src/common → common}/TypeInfoORM/index.d.ts +0 -0
- /package/{src/iac → iac}/types/CloudFormationResourceSpecification.d.ts +0 -0
- /package/{src/iac → iac}/types/IaCTypes.d.ts +0 -0
- /package/{src/iac → iac}/types/generate.d.ts +0 -0
|
@@ -0,0 +1,555 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @packageDocumentation
|
|
3
|
+
*
|
|
4
|
+
* TypeInfo-driven ORM service. Configure with a type map and a driver resolver,
|
|
5
|
+
* and optionally provide DAC and indexing integrations. The constructor validates
|
|
6
|
+
* configuration once, and each call resolves drivers as needed.
|
|
7
|
+
*/
|
|
8
|
+
import { LiteralValue, TypeInfo, TypeInfoDataItem, TypeInfoMap, TypeOperation } from "../../common/TypeParsing/TypeInfo";
|
|
9
|
+
import { CustomTypeInfoFieldValidatorMap } from "../../common/TypeParsing/Validation";
|
|
10
|
+
import { ListItemsConfig, ListItemsResults, ListRelationshipsConfig } from "../../common/SearchTypes";
|
|
11
|
+
import { DeleteRelationshipResults, RelationshipOperation, TypeInfoORMAPI, TypeInfoORMContext } from "../../common/TypeInfoORM";
|
|
12
|
+
import { DataItemDBDriver, IndexingRelationshipDriver, ItemRelationshipDBDriver } from "./drivers";
|
|
13
|
+
import { BaseItemRelationshipInfo, ItemRelationshipInfo, ItemRelationshipInfoKeys, ItemRelationshipInfoType, ItemRelationshipOriginatingItemInfo } from "../../common/ItemRelationshipInfoTypes";
|
|
14
|
+
import { DACAccessResult, DACDataItemResourceAccessResultMap, DACRole } from "../DataAccessControl";
|
|
15
|
+
import type { IndexBackend } from "../Indexing/Types";
|
|
16
|
+
import { type StructuredSearchDependencies } from "../Indexing/structured/SearchStructured";
|
|
17
|
+
import type { StructuredWriter } from "../Indexing/structured/Handlers";
|
|
18
|
+
import type { ResolvedSearchLimits } from "../Indexing/Handler/Config";
|
|
19
|
+
import type { StructuredDocFieldsRecord } from "../Indexing/structured/StructuredDdb";
|
|
20
|
+
import type { Where, WhereValue } from "../Indexing/structured/Types";
|
|
21
|
+
import type { RelationalBackend } from "./drivers/IndexingRelationshipDriver";
|
|
22
|
+
/**
|
|
23
|
+
* Strip a relationship item down to its identifying keys.
|
|
24
|
+
* @returns Relationship item containing only identifying fields.
|
|
25
|
+
* */
|
|
26
|
+
export declare const cleanRelationshipItem: (
|
|
27
|
+
/**
|
|
28
|
+
* Relationship item to normalize.
|
|
29
|
+
*/
|
|
30
|
+
relationshipItem: BaseItemRelationshipInfo) => BaseItemRelationshipInfo;
|
|
31
|
+
/**
|
|
32
|
+
* Wrap a driver method to attach extra fields to thrown errors.
|
|
33
|
+
* @returns Wrapped driver method with extended error data.
|
|
34
|
+
* */
|
|
35
|
+
export declare const getDriverMethodWithModifiedError: <ItemType extends TypeInfoDataItem, UniquelyIdentifyingFieldName extends keyof ItemType, DriverMethodNameType extends keyof DataItemDBDriver<ItemType, UniquelyIdentifyingFieldName>, MethodType extends DataItemDBDriver<ItemType, UniquelyIdentifyingFieldName>[DriverMethodNameType]>(
|
|
36
|
+
/**
|
|
37
|
+
* Extra fields to attach to thrown errors.
|
|
38
|
+
*/
|
|
39
|
+
extendedData: Record<any, any>,
|
|
40
|
+
/**
|
|
41
|
+
* Driver instance containing the method.
|
|
42
|
+
*/
|
|
43
|
+
driver: DataItemDBDriver<ItemType, UniquelyIdentifyingFieldName>,
|
|
44
|
+
/**
|
|
45
|
+
* Driver method name to wrap.
|
|
46
|
+
*/
|
|
47
|
+
driverMethodName: DriverMethodNameType) => MethodType;
|
|
48
|
+
/**
|
|
49
|
+
* The configuration for the TypeInfoORMService DAC features.
|
|
50
|
+
* */
|
|
51
|
+
export type TypeInfoORMDACConfig = {
|
|
52
|
+
/**
|
|
53
|
+
* DAC path prefix for item resources.
|
|
54
|
+
*
|
|
55
|
+
* This prefix is prepended to canonical item paths before evaluating
|
|
56
|
+
* DAC constraints.
|
|
57
|
+
*/
|
|
58
|
+
itemResourcePathPrefix: LiteralValue[];
|
|
59
|
+
/**
|
|
60
|
+
* DAC path prefix for relationship resources.
|
|
61
|
+
*
|
|
62
|
+
* This prefix is prepended to canonical relationship paths before
|
|
63
|
+
* evaluating DAC constraints.
|
|
64
|
+
*/
|
|
65
|
+
relationshipResourcePathPrefix: LiteralValue[];
|
|
66
|
+
/**
|
|
67
|
+
* Optional resolver for owner/tenant prefix applied to item resource paths.
|
|
68
|
+
*
|
|
69
|
+
* When present, the returned prefix is inserted after
|
|
70
|
+
* `itemResourcePathPrefix` and before the canonical item path segments.
|
|
71
|
+
*
|
|
72
|
+
* Relationship create/delete operations also use this prefix to validate
|
|
73
|
+
* endpoint ownership for both the `from` and `to` items.
|
|
74
|
+
*/
|
|
75
|
+
getOwnerPrefix?: (typeName: string, primaryFieldValue: LiteralValue) => Promise<LiteralValue[] | undefined>;
|
|
76
|
+
/**
|
|
77
|
+
* Lookup helper used to resolve roles by id.
|
|
78
|
+
*/
|
|
79
|
+
getDACRoleById: (id: string) => Promise<DACRole>;
|
|
80
|
+
};
|
|
81
|
+
/**
|
|
82
|
+
* Configuration for TypeInfoORM indexing integrations.
|
|
83
|
+
*/
|
|
84
|
+
export type TypeInfoORMIndexingConfig = {
|
|
85
|
+
/**
|
|
86
|
+
* Full text indexing configuration.
|
|
87
|
+
*/
|
|
88
|
+
fullText?: {
|
|
89
|
+
/**
|
|
90
|
+
* Backend used for full text indexing.
|
|
91
|
+
*/
|
|
92
|
+
backend: IndexBackend;
|
|
93
|
+
/**
|
|
94
|
+
* Default index field names by type.
|
|
95
|
+
*/
|
|
96
|
+
defaultIndexFieldByType?: Record<string, string>;
|
|
97
|
+
};
|
|
98
|
+
/**
|
|
99
|
+
* Structured indexing configuration.
|
|
100
|
+
*/
|
|
101
|
+
structured?: {
|
|
102
|
+
/**
|
|
103
|
+
* Reader used for structured queries.
|
|
104
|
+
*/
|
|
105
|
+
reader: StructuredSearchDependencies;
|
|
106
|
+
/**
|
|
107
|
+
* Optional writer for structured indexing.
|
|
108
|
+
*/
|
|
109
|
+
writer?: StructuredWriter;
|
|
110
|
+
/**
|
|
111
|
+
* Field name mapping per type.
|
|
112
|
+
*/
|
|
113
|
+
fieldMapByType?: Record<string, Record<string, string>>;
|
|
114
|
+
};
|
|
115
|
+
/**
|
|
116
|
+
* Relationship indexing configuration.
|
|
117
|
+
*/
|
|
118
|
+
relations?: {
|
|
119
|
+
/**
|
|
120
|
+
* Backend used for relationship indexing.
|
|
121
|
+
*/
|
|
122
|
+
backend: RelationalBackend;
|
|
123
|
+
/**
|
|
124
|
+
* Resolver for relation name from type/field.
|
|
125
|
+
*/
|
|
126
|
+
relationNameFor: (fromTypeName: string, fromTypeFieldName: string) => string;
|
|
127
|
+
/**
|
|
128
|
+
* Optional encoder for entity ids.
|
|
129
|
+
*/
|
|
130
|
+
encodeEntityId?: (typeName: string, primaryFieldValue: string) => string;
|
|
131
|
+
/**
|
|
132
|
+
* Optional decoder for entity ids.
|
|
133
|
+
*/
|
|
134
|
+
decodeEntityId?: (typeName: string, entityId: string) => string;
|
|
135
|
+
};
|
|
136
|
+
/**
|
|
137
|
+
* Optional search limits for indexing queries.
|
|
138
|
+
*/
|
|
139
|
+
limits?: ResolvedSearchLimits;
|
|
140
|
+
};
|
|
141
|
+
/**
|
|
142
|
+
* The basis for the configuration for the TypeInfoORMService.
|
|
143
|
+
* */
|
|
144
|
+
export type BaseTypeInfoORMServiceConfig = {
|
|
145
|
+
/**
|
|
146
|
+
* Type info map used to validate and shape items.
|
|
147
|
+
*/
|
|
148
|
+
typeInfoMap: TypeInfoMap;
|
|
149
|
+
/**
|
|
150
|
+
* Driver resolver for item types.
|
|
151
|
+
*/
|
|
152
|
+
getDriver: (typeName: string) => DataItemDBDriver<any, any>;
|
|
153
|
+
/**
|
|
154
|
+
* Optional relationship driver resolver.
|
|
155
|
+
*/
|
|
156
|
+
getRelationshipDriver?: (typeName: string, fieldName: string) => ItemRelationshipDBDriver;
|
|
157
|
+
/**
|
|
158
|
+
* Optional indexing configuration.
|
|
159
|
+
*/
|
|
160
|
+
indexing?: TypeInfoORMIndexingConfig;
|
|
161
|
+
/**
|
|
162
|
+
* Optional relationship cleanup hook on delete.
|
|
163
|
+
*/
|
|
164
|
+
createRelationshipCleanupItem?: (relationshipOriginatingItem: ItemRelationshipOriginatingItemInfo) => Promise<void>;
|
|
165
|
+
/**
|
|
166
|
+
* Optional custom validators by type/field.
|
|
167
|
+
*/
|
|
168
|
+
customValidators?: CustomTypeInfoFieldValidatorMap;
|
|
169
|
+
};
|
|
170
|
+
/**
|
|
171
|
+
* The options determining the usage of DAC features in a {@link TypeInfoORMServiceConfig}.
|
|
172
|
+
* */
|
|
173
|
+
export type TypeInfoORMServiceDACOptions = {
|
|
174
|
+
useDAC: true;
|
|
175
|
+
dacConfig: TypeInfoORMDACConfig;
|
|
176
|
+
} | {
|
|
177
|
+
useDAC: false;
|
|
178
|
+
};
|
|
179
|
+
/**
|
|
180
|
+
* The configuration for the TypeInfoORMService, including DAC features.
|
|
181
|
+
* */
|
|
182
|
+
export type TypeInfoORMServiceConfig = BaseTypeInfoORMServiceConfig & TypeInfoORMServiceDACOptions;
|
|
183
|
+
/**
|
|
184
|
+
* TypeInfo-driven ORM service with optional DAC and indexing integrations.
|
|
185
|
+
*/
|
|
186
|
+
export declare class TypeInfoORMService implements TypeInfoORMAPI {
|
|
187
|
+
protected config: TypeInfoORMServiceConfig;
|
|
188
|
+
protected dacRoleCache: Record<string, DACRole>;
|
|
189
|
+
protected indexingRelationshipDriver?: IndexingRelationshipDriver;
|
|
190
|
+
/**
|
|
191
|
+
* @param config ORM service configuration.
|
|
192
|
+
*/
|
|
193
|
+
constructor(config: TypeInfoORMServiceConfig);
|
|
194
|
+
protected resolveAccessingRole: (context?: TypeInfoORMContext) => Promise<DACRole | undefined>;
|
|
195
|
+
protected getItemDACValidation: (
|
|
196
|
+
/**
|
|
197
|
+
* Item to evaluate for access.
|
|
198
|
+
*/
|
|
199
|
+
item: Partial<TypeInfoDataItem>,
|
|
200
|
+
/**
|
|
201
|
+
* Type name for the item.
|
|
202
|
+
*/
|
|
203
|
+
typeName: string,
|
|
204
|
+
/**
|
|
205
|
+
* Operation being evaluated.
|
|
206
|
+
*/
|
|
207
|
+
typeOperation: TypeOperation,
|
|
208
|
+
/**
|
|
209
|
+
* Optional access context for the call.
|
|
210
|
+
*/
|
|
211
|
+
context?: TypeInfoORMContext) => Promise<DACDataItemResourceAccessResultMap>;
|
|
212
|
+
protected getRelationshipDACValidation: (
|
|
213
|
+
/**
|
|
214
|
+
* Relationship to evaluate for access.
|
|
215
|
+
*/
|
|
216
|
+
itemRelationship: BaseItemRelationshipInfo,
|
|
217
|
+
/**
|
|
218
|
+
* Relationship operation being evaluated.
|
|
219
|
+
*/
|
|
220
|
+
relationshipOperation: RelationshipOperation,
|
|
221
|
+
/**
|
|
222
|
+
* Optional access context for the call.
|
|
223
|
+
*/
|
|
224
|
+
context?: TypeInfoORMContext,
|
|
225
|
+
/**
|
|
226
|
+
* Optional relationship resource path prefix override.
|
|
227
|
+
*/
|
|
228
|
+
relationshipPrefixOverride?: LiteralValue[]) => Promise<DACAccessResult>;
|
|
229
|
+
protected getRelationshipEndpointDACValidation: (relationshipItem: BaseItemRelationshipInfo, relationshipOperation: RelationshipOperation, relatedTypeName: string, context?: TypeInfoORMContext) => Promise<DACAccessResult>;
|
|
230
|
+
protected getWrappedDriverWithExtendedErrorData: <ItemType extends TypeInfoDataItem, UniquelyIdentifyingFieldName extends keyof ItemType>(
|
|
231
|
+
/**
|
|
232
|
+
* Driver instance to wrap.
|
|
233
|
+
*/
|
|
234
|
+
driver: DataItemDBDriver<ItemType, UniquelyIdentifyingFieldName>,
|
|
235
|
+
/**
|
|
236
|
+
* Extra fields to attach to thrown errors.
|
|
237
|
+
*/
|
|
238
|
+
extendedData: Record<any, any>) => DataItemDBDriver<ItemType, UniquelyIdentifyingFieldName>;
|
|
239
|
+
protected getDriverInternal: (
|
|
240
|
+
/**
|
|
241
|
+
* Type name used to resolve the driver.
|
|
242
|
+
*/
|
|
243
|
+
typeName: string) => DataItemDBDriver<any, any>;
|
|
244
|
+
protected getRelationshipDriverInternal: (
|
|
245
|
+
/**
|
|
246
|
+
* Type name used to resolve the relationship driver.
|
|
247
|
+
*/
|
|
248
|
+
typeName: string,
|
|
249
|
+
/**
|
|
250
|
+
* Field name used to resolve the relationship driver.
|
|
251
|
+
*/
|
|
252
|
+
fieldName: string) => ItemRelationshipDBDriver;
|
|
253
|
+
/**
|
|
254
|
+
* @returns Indexing relationship driver for relation indexing.
|
|
255
|
+
*/
|
|
256
|
+
/**
|
|
257
|
+
* @returns Indexing relationship driver for relation indexing.
|
|
258
|
+
*/
|
|
259
|
+
protected getIndexingRelationshipDriverInternal: () => IndexingRelationshipDriver;
|
|
260
|
+
/**
|
|
261
|
+
* @param typeName Type name to resolve.
|
|
262
|
+
* @returns Type info for the requested type.
|
|
263
|
+
*/
|
|
264
|
+
/**
|
|
265
|
+
* @param typeName Type name to resolve.
|
|
266
|
+
* @returns Type info for the requested type.
|
|
267
|
+
*/
|
|
268
|
+
protected getTypeInfo: (typeName: string) => TypeInfo;
|
|
269
|
+
/**
|
|
270
|
+
* @returns Resolved index field name, if available.
|
|
271
|
+
*/
|
|
272
|
+
protected resolveFullTextIndexField: (
|
|
273
|
+
/**
|
|
274
|
+
* Type name used to resolve the default index field.
|
|
275
|
+
*/
|
|
276
|
+
typeName: string,
|
|
277
|
+
/**
|
|
278
|
+
* Optional override for the index field.
|
|
279
|
+
*/
|
|
280
|
+
override?: string) => string | undefined;
|
|
281
|
+
/**
|
|
282
|
+
* @param value Value to check.
|
|
283
|
+
* @returns True when the value is a supported structured value.
|
|
284
|
+
*/
|
|
285
|
+
protected isStructuredValue: (value: unknown) => value is WhereValue;
|
|
286
|
+
/**
|
|
287
|
+
* @returns Structured fields record for indexing.
|
|
288
|
+
*/
|
|
289
|
+
protected buildStructuredFields: (
|
|
290
|
+
/**
|
|
291
|
+
* Type name for field mapping.
|
|
292
|
+
*/
|
|
293
|
+
typeName: string,
|
|
294
|
+
/**
|
|
295
|
+
* Item to extract structured fields from.
|
|
296
|
+
*/
|
|
297
|
+
item: Partial<TypeInfoDataItem>) => StructuredDocFieldsRecord;
|
|
298
|
+
/**
|
|
299
|
+
* @returns Mapped structured query.
|
|
300
|
+
*/
|
|
301
|
+
protected applyStructuredFieldMap: (
|
|
302
|
+
/**
|
|
303
|
+
* Type name used for field qualification.
|
|
304
|
+
*/
|
|
305
|
+
typeName: string,
|
|
306
|
+
/**
|
|
307
|
+
* Structured query to map.
|
|
308
|
+
*/
|
|
309
|
+
where: Where,
|
|
310
|
+
/**
|
|
311
|
+
* Optional field mapping by type.
|
|
312
|
+
*/
|
|
313
|
+
fieldMap?: Record<string, string>) => Where;
|
|
314
|
+
/**
|
|
315
|
+
* @returns Promise resolved once indexing is complete.
|
|
316
|
+
*/
|
|
317
|
+
protected indexFullTextDocument(
|
|
318
|
+
/**
|
|
319
|
+
* Type name for index field resolution.
|
|
320
|
+
*/
|
|
321
|
+
typeName: string,
|
|
322
|
+
/**
|
|
323
|
+
* Item to index.
|
|
324
|
+
*/
|
|
325
|
+
item: Partial<TypeInfoDataItem>,
|
|
326
|
+
/**
|
|
327
|
+
* Optional override for the index field.
|
|
328
|
+
*/
|
|
329
|
+
indexFieldOverride?: string): Promise<void>;
|
|
330
|
+
/**
|
|
331
|
+
* @returns Promise resolved once removal is complete.
|
|
332
|
+
*/
|
|
333
|
+
protected removeFullTextDocument(
|
|
334
|
+
/**
|
|
335
|
+
* Type name for index field resolution.
|
|
336
|
+
*/
|
|
337
|
+
typeName: string,
|
|
338
|
+
/**
|
|
339
|
+
* Item to remove from the index.
|
|
340
|
+
*/
|
|
341
|
+
item: Partial<TypeInfoDataItem>,
|
|
342
|
+
/**
|
|
343
|
+
* Optional override for the index field.
|
|
344
|
+
*/
|
|
345
|
+
indexFieldOverride?: string): Promise<void>;
|
|
346
|
+
/**
|
|
347
|
+
* @returns Promise resolved once replacement is complete.
|
|
348
|
+
*/
|
|
349
|
+
protected replaceFullTextDocument(
|
|
350
|
+
/**
|
|
351
|
+
* Type name for index field resolution.
|
|
352
|
+
*/
|
|
353
|
+
typeName: string,
|
|
354
|
+
/**
|
|
355
|
+
* Previous item state to remove from the index.
|
|
356
|
+
*/
|
|
357
|
+
previousItem: Partial<TypeInfoDataItem>,
|
|
358
|
+
/**
|
|
359
|
+
* Next item state to index.
|
|
360
|
+
*/
|
|
361
|
+
nextItem: Partial<TypeInfoDataItem>,
|
|
362
|
+
/**
|
|
363
|
+
* Optional override for the index field.
|
|
364
|
+
*/
|
|
365
|
+
indexFieldOverride?: string): Promise<void>;
|
|
366
|
+
/**
|
|
367
|
+
* @returns Promise resolved once indexing is complete.
|
|
368
|
+
*/
|
|
369
|
+
protected indexStructuredDocument(
|
|
370
|
+
/**
|
|
371
|
+
* Type name for field mapping.
|
|
372
|
+
*/
|
|
373
|
+
typeName: string,
|
|
374
|
+
/**
|
|
375
|
+
* Item to index.
|
|
376
|
+
*/
|
|
377
|
+
item: Partial<TypeInfoDataItem>): Promise<void>;
|
|
378
|
+
/**
|
|
379
|
+
* @returns Promise resolved once removal is complete.
|
|
380
|
+
*/
|
|
381
|
+
protected removeStructuredDocument(
|
|
382
|
+
/**
|
|
383
|
+
* Type name for field mapping.
|
|
384
|
+
*/
|
|
385
|
+
typeName: string,
|
|
386
|
+
/**
|
|
387
|
+
* Item to remove from the structured index.
|
|
388
|
+
*/
|
|
389
|
+
item: Partial<TypeInfoDataItem>): Promise<void>;
|
|
390
|
+
/**
|
|
391
|
+
* @returns Nothing (throws on invalid operations).
|
|
392
|
+
*/
|
|
393
|
+
protected validateReadOperation: (
|
|
394
|
+
/**
|
|
395
|
+
* Type name to validate for read.
|
|
396
|
+
*/
|
|
397
|
+
typeName: string,
|
|
398
|
+
/**
|
|
399
|
+
* Optional selected fields to validate.
|
|
400
|
+
*/
|
|
401
|
+
selectedFields?: (keyof TypeInfoDataItem)[]) => void;
|
|
402
|
+
/**
|
|
403
|
+
* @returns Nothing (throws on invalid items).
|
|
404
|
+
*/
|
|
405
|
+
protected validate: (
|
|
406
|
+
/**
|
|
407
|
+
* Type name to validate.
|
|
408
|
+
*/
|
|
409
|
+
typeName: string,
|
|
410
|
+
/**
|
|
411
|
+
* Item to validate.
|
|
412
|
+
*/
|
|
413
|
+
item: TypeInfoDataItem,
|
|
414
|
+
/**
|
|
415
|
+
* Operation being validated.
|
|
416
|
+
*/
|
|
417
|
+
typeOperation: TypeOperation,
|
|
418
|
+
/**
|
|
419
|
+
* Whether the item is a partial update.
|
|
420
|
+
*/
|
|
421
|
+
itemIsPartial?: boolean) => void;
|
|
422
|
+
/**
|
|
423
|
+
* @returns Cleaned item with selected fields and DAC constraints applied.
|
|
424
|
+
*/
|
|
425
|
+
protected getCleanItem: (
|
|
426
|
+
/**
|
|
427
|
+
* Type name used to look up TypeInfo.
|
|
428
|
+
*/
|
|
429
|
+
typeName: string,
|
|
430
|
+
/**
|
|
431
|
+
* Item to clean.
|
|
432
|
+
*/
|
|
433
|
+
item: Partial<TypeInfoDataItem>,
|
|
434
|
+
/**
|
|
435
|
+
* Optional DAC field resource map.
|
|
436
|
+
*/
|
|
437
|
+
dacFieldResources?: Partial<Record<keyof TypeInfoDataItem, DACAccessResult>>,
|
|
438
|
+
/**
|
|
439
|
+
* Optional selected fields to include.
|
|
440
|
+
*/
|
|
441
|
+
selectedFields?: (keyof TypeInfoDataItem)[]) => Partial<TypeInfoDataItem>;
|
|
442
|
+
/**
|
|
443
|
+
* @returns Sanitized selected fields or undefined for all fields.
|
|
444
|
+
*/
|
|
445
|
+
protected getCleanSelectedFields: (
|
|
446
|
+
/**
|
|
447
|
+
* Type name used to look up TypeInfo.
|
|
448
|
+
*/
|
|
449
|
+
typeName: string,
|
|
450
|
+
/**
|
|
451
|
+
* Optional selected fields to include.
|
|
452
|
+
*/
|
|
453
|
+
selectedFields?: (keyof TypeInfoDataItem)[]) => (keyof TypeInfoDataItem)[] | undefined;
|
|
454
|
+
/**
|
|
455
|
+
* @returns Nothing (throws on invalid relationships).
|
|
456
|
+
*/
|
|
457
|
+
protected validateRelationshipItem: (
|
|
458
|
+
/**
|
|
459
|
+
* Relationship item to validate.
|
|
460
|
+
*/
|
|
461
|
+
relationshipItem: ItemRelationshipInfoType,
|
|
462
|
+
/**
|
|
463
|
+
* Relationship fields to omit from validation.
|
|
464
|
+
*/
|
|
465
|
+
omitFields: ItemRelationshipInfoKeys[]) => void;
|
|
466
|
+
/**
|
|
467
|
+
* @returns Promise resolved once cleanup is complete.
|
|
468
|
+
*/
|
|
469
|
+
protected cleanupRelationships: (
|
|
470
|
+
/**
|
|
471
|
+
* Relationship originating item used for cleanup.
|
|
472
|
+
*/
|
|
473
|
+
relationshipOriginatingItem: ItemRelationshipOriginatingItemInfo) => Promise<void>;
|
|
474
|
+
/**
|
|
475
|
+
* Create a new relationship between two items.
|
|
476
|
+
* @param relationshipItem Relationship item to create.
|
|
477
|
+
*
|
|
478
|
+
* When DAC is enabled and `getOwnerPrefix` is configured, relationship
|
|
479
|
+
* creation requires:
|
|
480
|
+
* 1) relationship permission on the relationship resource path, and
|
|
481
|
+
* 2) endpoint ownership permission for both `from` and `to` items.
|
|
482
|
+
* @returns True when the relationship was created.
|
|
483
|
+
* */
|
|
484
|
+
createRelationship: (relationshipItem: BaseItemRelationshipInfo, context?: TypeInfoORMContext) => Promise<boolean>;
|
|
485
|
+
/**
|
|
486
|
+
* Delete a relationship between two items.
|
|
487
|
+
* @param relationshipItem Relationship item to delete.
|
|
488
|
+
*
|
|
489
|
+
* When DAC is enabled and `getOwnerPrefix` is configured, relationship
|
|
490
|
+
* deletion requires:
|
|
491
|
+
* 1) relationship permission on the relationship resource path, and
|
|
492
|
+
* 2) endpoint ownership permission for both `from` and `to` items.
|
|
493
|
+
* @returns Deletion results including whether items remain.
|
|
494
|
+
* */
|
|
495
|
+
deleteRelationship: (relationshipItem: BaseItemRelationshipInfo, context?: TypeInfoORMContext) => Promise<DeleteRelationshipResults>;
|
|
496
|
+
/**
|
|
497
|
+
* List the relationships for a given item.
|
|
498
|
+
* @param config Relationship list configuration.
|
|
499
|
+
* @returns Relationship items and paging cursor.
|
|
500
|
+
* */
|
|
501
|
+
listRelationships: (config: ListRelationshipsConfig, context?: TypeInfoORMContext) => Promise<ListItemsResults<ItemRelationshipInfo>>;
|
|
502
|
+
/**
|
|
503
|
+
* List related items for the relationship origin.
|
|
504
|
+
* @param config Relationship list configuration.
|
|
505
|
+
* @param selectedFields Optional fields to select on related items.
|
|
506
|
+
* @returns Items and cursor for related items.
|
|
507
|
+
*/
|
|
508
|
+
listRelatedItems: (config: ListRelationshipsConfig, selectedFields?: (keyof TypeInfoDataItem)[], context?: TypeInfoORMContext) => Promise<{
|
|
509
|
+
items: Partial<TypeInfoDataItem>[];
|
|
510
|
+
cursor: string | undefined;
|
|
511
|
+
}>;
|
|
512
|
+
/**
|
|
513
|
+
* Create a new item of the given type.
|
|
514
|
+
* @param typeName Type name to create.
|
|
515
|
+
* @param item Item payload to create.
|
|
516
|
+
* @returns Primary field value for the created item.
|
|
517
|
+
* */
|
|
518
|
+
create: (typeName: string, item: TypeInfoDataItem) => Promise<any>;
|
|
519
|
+
/**
|
|
520
|
+
* Read an existing item of the given type.
|
|
521
|
+
* @param typeName Type name to read.
|
|
522
|
+
* @param primaryFieldValue Primary field value to fetch.
|
|
523
|
+
* @param selectedFields Optional fields to select.
|
|
524
|
+
* @returns Cleaned item data.
|
|
525
|
+
* */
|
|
526
|
+
read: (typeName: string, primaryFieldValue: any, selectedFields?: string[], context?: TypeInfoORMContext) => Promise<Partial<TypeInfoDataItem>>;
|
|
527
|
+
/**
|
|
528
|
+
* Update an existing item of the given type.
|
|
529
|
+
*
|
|
530
|
+
* This update will always act as a **patch**.
|
|
531
|
+
* Use `null` to signify the deletion of a field.
|
|
532
|
+
* Assign values to **all** fields to perform a **replacement**.
|
|
533
|
+
*
|
|
534
|
+
* The `item` **must always** contain its **primary field value**.
|
|
535
|
+
* @param typeName Type name to update.
|
|
536
|
+
* @param item Item payload to update.
|
|
537
|
+
* @returns True when the update succeeded.
|
|
538
|
+
* */
|
|
539
|
+
update: (typeName: string, item: TypeInfoDataItem, context?: TypeInfoORMContext) => Promise<boolean>;
|
|
540
|
+
/**
|
|
541
|
+
* Delete an existing item of the given type.
|
|
542
|
+
* @param typeName Type name to delete.
|
|
543
|
+
* @param primaryFieldValue Primary field value to delete.
|
|
544
|
+
* @returns True when the delete succeeded.
|
|
545
|
+
* */
|
|
546
|
+
delete: (typeName: string, primaryFieldValue: any, context?: TypeInfoORMContext) => Promise<boolean>;
|
|
547
|
+
/**
|
|
548
|
+
* List items of the given type, with the given criteria.
|
|
549
|
+
* @param typeName Type name to list.
|
|
550
|
+
* @param config List configuration and criteria.
|
|
551
|
+
* @param selectedFields Optional fields to select.
|
|
552
|
+
* @returns List results with items and cursor.
|
|
553
|
+
* */
|
|
554
|
+
list: (typeName: string, config: ListItemsConfig, selectedFields?: (keyof TypeInfoDataItem)[], context?: TypeInfoORMContext) => Promise<ListItemsResults<Partial<TypeInfoDataItem>>>;
|
|
555
|
+
}
|