@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
|
@@ -5,36 +5,100 @@ import { ListItemsConfig, ListItemsResults } from "../../../../common/SearchType
|
|
|
5
5
|
* The errors that can be thrown by a {@link DataItemDBDriver}.
|
|
6
6
|
* */
|
|
7
7
|
export declare enum DATA_ITEM_DB_DRIVER_ERRORS {
|
|
8
|
+
/**
|
|
9
|
+
* Missing identifier value for the operation.
|
|
10
|
+
*/
|
|
8
11
|
MISSING_ID = "MISSING_ID",
|
|
12
|
+
/**
|
|
13
|
+
* Cursor value is invalid or malformed.
|
|
14
|
+
*/
|
|
9
15
|
INVALID_CURSOR = "INVALID_CURSOR",
|
|
16
|
+
/**
|
|
17
|
+
* Requested item was not found.
|
|
18
|
+
*/
|
|
10
19
|
ITEM_NOT_FOUND = "ITEM_NOT_FOUND",
|
|
20
|
+
/**
|
|
21
|
+
* Missing unique identifier for an update/delete.
|
|
22
|
+
*/
|
|
11
23
|
MISSING_UNIQUE_IDENTIFIER = "MISSING_UNIQUE_IDENTIFIER",
|
|
24
|
+
/**
|
|
25
|
+
* Search operator is not supported by the driver.
|
|
26
|
+
*/
|
|
12
27
|
SEARCH_COMPARISON_OPERATOR_NOT_SUPPORTED = "SEARCH_COMPARISON_OPERATOR_NOT_SUPPORTED"
|
|
13
28
|
}
|
|
14
29
|
/**
|
|
15
30
|
* The generic type for a database driver configuration.
|
|
16
31
|
* */
|
|
17
32
|
export type DataItemDBDriverConfig<ItemType extends TypeInfoDataItem, UniquelyIdentifyingFieldName extends keyof ItemType> = {
|
|
33
|
+
/**
|
|
34
|
+
* Backing table or collection name.
|
|
35
|
+
*/
|
|
18
36
|
tableName: string;
|
|
37
|
+
/**
|
|
38
|
+
* Field name used as the unique identifier.
|
|
39
|
+
*/
|
|
19
40
|
uniquelyIdentifyingFieldName: UniquelyIdentifyingFieldName;
|
|
41
|
+
/**
|
|
42
|
+
* Optional identifier generator for new items.
|
|
43
|
+
*/
|
|
20
44
|
generateUniqueIdentifier?: (targetItem: ItemType) => string;
|
|
45
|
+
/**
|
|
46
|
+
* Optional DB-specific configuration payload.
|
|
47
|
+
*/
|
|
21
48
|
dbSpecificConfig?: Record<string, any>;
|
|
22
49
|
};
|
|
23
50
|
/**
|
|
24
51
|
* The API for a database driver.
|
|
25
52
|
* */
|
|
26
53
|
export type DataItemDBDriver<ItemType extends TypeInfoDataItem, UniquelyIdentifyingFieldName extends keyof ItemType> = {
|
|
54
|
+
/**
|
|
55
|
+
* Create a new item in the data store.
|
|
56
|
+
* @param newItem New item payload without the identifying field.
|
|
57
|
+
* @returns Generated identifier for the created item.
|
|
58
|
+
*/
|
|
27
59
|
createItem: (newItem: Partial<Omit<ItemType, UniquelyIdentifyingFieldName>>) => Promise<ItemType[UniquelyIdentifyingFieldName]>;
|
|
60
|
+
/**
|
|
61
|
+
* Read an item from the data store.
|
|
62
|
+
* @param uniqueIdentifier Unique identifier value for the item.
|
|
63
|
+
* @param selectedFields Optional fields to select from the item.
|
|
64
|
+
* @returns Item payload (partial when selected fields are used).
|
|
65
|
+
*/
|
|
28
66
|
readItem: (uniqueIdentifier: ItemType[UniquelyIdentifyingFieldName], selectedFields?: (keyof ItemType)[]) => Promise<Partial<ItemType>>;
|
|
67
|
+
/**
|
|
68
|
+
* Update an item in the data store.
|
|
69
|
+
* @param uniqueIdentifier Unique identifier value for the item.
|
|
70
|
+
* @param updatedItem Partial update payload for the item.
|
|
71
|
+
* @returns True when the item was updated.
|
|
72
|
+
*/
|
|
29
73
|
updateItem: (uniqueIdentifier: ItemType[UniquelyIdentifyingFieldName], updatedItem: Partial<ItemType>) => Promise<boolean>;
|
|
74
|
+
/**
|
|
75
|
+
* Delete an item from the data store.
|
|
76
|
+
* @param uniqueIdentifier Unique identifier value for the item.
|
|
77
|
+
* @returns True when the item was deleted.
|
|
78
|
+
*/
|
|
30
79
|
deleteItem: (uniqueIdentifier: ItemType[UniquelyIdentifyingFieldName]) => Promise<boolean>;
|
|
80
|
+
/**
|
|
81
|
+
* List items from the data store.
|
|
82
|
+
* @param config List configuration and criteria.
|
|
83
|
+
* @param selectedFields Optional fields to select from each item.
|
|
84
|
+
* @returns List results with items and cursor.
|
|
85
|
+
*/
|
|
31
86
|
listItems: (config: ListItemsConfig, selectedFields?: (keyof ItemType)[]) => Promise<ListItemsResults<Partial<ItemType>>>;
|
|
32
87
|
};
|
|
33
88
|
/**
|
|
34
89
|
* An entry for a supported database driver.
|
|
35
90
|
* */
|
|
36
91
|
export type SupportedDataItemDBDriverEntry = {
|
|
92
|
+
/**
|
|
93
|
+
* Factory function for creating a driver instance.
|
|
94
|
+
* @param config Driver configuration.
|
|
95
|
+
* @returns Driver instance.
|
|
96
|
+
*/
|
|
37
97
|
factory: <ItemType extends Record<any, any>, UniquelyIdentifyingFieldName extends keyof ItemType>(config: DataItemDBDriverConfig<ItemType, UniquelyIdentifyingFieldName>) => DataItemDBDriver<ItemType, UniquelyIdentifyingFieldName>;
|
|
98
|
+
/**
|
|
99
|
+
* Return type info describing the DB-specific config.
|
|
100
|
+
* @returns Type info pack for DB-specific config.
|
|
101
|
+
*/
|
|
38
102
|
getDBSpecificConfigTypeInfo: () => TypeInfoPack;
|
|
39
103
|
};
|
|
40
104
|
/**
|
|
@@ -45,33 +109,89 @@ export type ItemRelationshipDBDriver = DataItemDBDriver<ItemRelationshipInfo, It
|
|
|
45
109
|
* The location information for a file.
|
|
46
110
|
* */
|
|
47
111
|
export type BaseFileLocationInfo = {
|
|
112
|
+
/**
|
|
113
|
+
* Optional directory path for the file.
|
|
114
|
+
*/
|
|
48
115
|
directory?: string;
|
|
116
|
+
/**
|
|
117
|
+
* File name portion.
|
|
118
|
+
*/
|
|
49
119
|
name: string;
|
|
50
120
|
};
|
|
51
121
|
/**
|
|
52
122
|
* The most integral information about a file.
|
|
53
123
|
* */
|
|
54
124
|
export type BaseFile = BaseFileLocationInfo & {
|
|
125
|
+
/**
|
|
126
|
+
* Last updated timestamp in milliseconds.
|
|
127
|
+
*/
|
|
55
128
|
updatedOn: number;
|
|
129
|
+
/**
|
|
130
|
+
* MIME type for the file.
|
|
131
|
+
*/
|
|
56
132
|
mimeType: string;
|
|
133
|
+
/**
|
|
134
|
+
* File size in bytes.
|
|
135
|
+
*/
|
|
57
136
|
sizeInBytes: number;
|
|
137
|
+
/**
|
|
138
|
+
* True when the item represents a directory.
|
|
139
|
+
*/
|
|
58
140
|
isDirectory?: boolean;
|
|
141
|
+
/**
|
|
142
|
+
* Optional signed upload URL.
|
|
143
|
+
*/
|
|
59
144
|
uploadUrl?: string;
|
|
145
|
+
/**
|
|
146
|
+
* Optional signed download URL.
|
|
147
|
+
*/
|
|
60
148
|
downloadUrl?: string;
|
|
61
149
|
};
|
|
62
150
|
/**
|
|
63
151
|
* The result returned when listing files.
|
|
64
152
|
* */
|
|
65
153
|
export type ListFilesResult = {
|
|
154
|
+
/**
|
|
155
|
+
* Cursor string for pagination.
|
|
156
|
+
*/
|
|
66
157
|
cursor?: string;
|
|
158
|
+
/**
|
|
159
|
+
* Files returned in the page.
|
|
160
|
+
*/
|
|
67
161
|
files: BaseFile[];
|
|
68
162
|
};
|
|
69
163
|
/**
|
|
70
164
|
* An API for a cloud file service driver.
|
|
71
165
|
* */
|
|
72
166
|
export type CloudFileServiceDriver = {
|
|
167
|
+
/**
|
|
168
|
+
* Get a signed URL for uploading a file.
|
|
169
|
+
* @param file File location info.
|
|
170
|
+
* @param baseDirectory Optional base directory prefix.
|
|
171
|
+
* @returns Signed upload URL.
|
|
172
|
+
*/
|
|
73
173
|
getFileUploadUrl: (file: BaseFileLocationInfo, baseDirectory?: string) => Promise<string>;
|
|
174
|
+
/**
|
|
175
|
+
* Get a signed URL for downloading a file.
|
|
176
|
+
* @param file File location info.
|
|
177
|
+
* @param baseDirectory Optional base directory prefix.
|
|
178
|
+
* @returns Signed download URL.
|
|
179
|
+
*/
|
|
74
180
|
getFileDownloadUrl: (file: BaseFileLocationInfo, baseDirectory?: string) => Promise<string>;
|
|
181
|
+
/**
|
|
182
|
+
* Delete a file.
|
|
183
|
+
* @param file File location info.
|
|
184
|
+
* @param baseDirectory Optional base directory prefix.
|
|
185
|
+
* @returns Promise resolved once deleted.
|
|
186
|
+
*/
|
|
75
187
|
deleteFile: (file: BaseFileLocationInfo, baseDirectory?: string) => Promise<void>;
|
|
188
|
+
/**
|
|
189
|
+
* List files in a directory.
|
|
190
|
+
* @param path Optional path prefix to list within.
|
|
191
|
+
* @param baseDirectory Optional base directory prefix.
|
|
192
|
+
* @param maxNumberOfFiles Maximum number of files to return.
|
|
193
|
+
* @param cursor Optional cursor string for pagination.
|
|
194
|
+
* @returns File list and cursor.
|
|
195
|
+
*/
|
|
76
196
|
listFiles: (path?: string, baseDirectory?: string, maxNumberOfFiles?: number, cursor?: string) => Promise<ListFilesResult>;
|
|
77
197
|
};
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export * from "./S3FileItemDBDriver";
|
|
2
|
+
export * from "./DynamoDBDataItemDBDriver";
|
|
3
|
+
export * from "./InMemoryDataItemDBDriver";
|
|
4
|
+
export * from "./InMemoryItemRelationshipDBDriver";
|
|
5
|
+
export * from "./InMemoryFileItemDBDriver";
|
|
6
|
+
export * from "./IndexingRelationshipDriver";
|
|
7
|
+
export * from "./common";
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @packageDocumentation
|
|
3
|
+
*
|
|
4
|
+
* Map {@link SearchCriteria} to structured-index {@link Where} clauses.
|
|
5
|
+
* Unsupported operators throw {@link TypeInfoORMServiceError}.
|
|
6
|
+
*/
|
|
7
|
+
import { SearchCriteria } from "../../../common/SearchTypes";
|
|
8
|
+
import type { Where } from "../../Indexing/structured/Types";
|
|
9
|
+
/**
|
|
10
|
+
* Translate {@link SearchCriteria.fieldCriteria} into a structured WHERE tree.
|
|
11
|
+
* @returns Structured where clause or undefined when no criteria exist.
|
|
12
|
+
*/
|
|
13
|
+
export declare const criteriaToStructuredWhere: (
|
|
14
|
+
/**
|
|
15
|
+
* Search criteria to translate.
|
|
16
|
+
*/
|
|
17
|
+
criteria?: SearchCriteria) => Where | undefined;
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
import { AuthInfo, CloudFunctionEventTransformer } from "./Types";
|
|
2
|
+
/**
|
|
3
|
+
* AWS specific utilities for processing routing and normalizing Cloud Function events.
|
|
4
|
+
* */
|
|
5
|
+
export declare namespace AWS {
|
|
6
|
+
/**
|
|
7
|
+
* An AWS specific Cloud Function event.
|
|
8
|
+
* */
|
|
9
|
+
interface IAWSCloudFunctionEvent {
|
|
10
|
+
/**
|
|
11
|
+
* AWS request context containing authorizer info and identity details.
|
|
12
|
+
*/
|
|
13
|
+
requestContext?: Record<any, any>;
|
|
14
|
+
/**
|
|
15
|
+
* HTTP method for the incoming request.
|
|
16
|
+
*/
|
|
17
|
+
httpMethod?: string;
|
|
18
|
+
/**
|
|
19
|
+
* Single-value HTTP headers.
|
|
20
|
+
*/
|
|
21
|
+
headers?: Record<string, string>;
|
|
22
|
+
/**
|
|
23
|
+
* Multi-value HTTP headers keyed by header name.
|
|
24
|
+
*/
|
|
25
|
+
multiValueHeaders?: Record<string, string[]>;
|
|
26
|
+
/**
|
|
27
|
+
* Request path string as provided by the AWS event.
|
|
28
|
+
*/
|
|
29
|
+
path?: string;
|
|
30
|
+
/**
|
|
31
|
+
* Raw request body string (usually JSON).
|
|
32
|
+
*/
|
|
33
|
+
body?: string;
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* @returns Normalized request path string.
|
|
37
|
+
*/
|
|
38
|
+
const getPathFromEvent: (
|
|
39
|
+
/**
|
|
40
|
+
* AWS Cloud Function event to read the path from.
|
|
41
|
+
*/
|
|
42
|
+
event: IAWSCloudFunctionEvent) => string;
|
|
43
|
+
/**
|
|
44
|
+
* @returns Parsed body payload, or undefined if parsing fails.
|
|
45
|
+
*/
|
|
46
|
+
const getBodyFromEvent: (
|
|
47
|
+
/**
|
|
48
|
+
* AWS Cloud Function event to parse the body from.
|
|
49
|
+
*/
|
|
50
|
+
event: IAWSCloudFunctionEvent) => any;
|
|
51
|
+
/**
|
|
52
|
+
* @returns Normalized headers keyed by lowercase header name.
|
|
53
|
+
*/
|
|
54
|
+
const getHeadersFromEvent: (
|
|
55
|
+
/**
|
|
56
|
+
* AWS Cloud Function event to read headers from.
|
|
57
|
+
*/
|
|
58
|
+
event: IAWSCloudFunctionEvent) => Record<string, string[]>;
|
|
59
|
+
/**
|
|
60
|
+
* @returns HTTP method string for the request.
|
|
61
|
+
*/
|
|
62
|
+
const getMethodFromEvent: (
|
|
63
|
+
/**
|
|
64
|
+
* AWS Cloud Function event to read the method from.
|
|
65
|
+
*/
|
|
66
|
+
event: IAWSCloudFunctionEvent) => string;
|
|
67
|
+
/**
|
|
68
|
+
* @returns Normalized auth info with user id and roles.
|
|
69
|
+
*/
|
|
70
|
+
const getAuthInfo: (
|
|
71
|
+
/**
|
|
72
|
+
* AWS Cloud Function event to extract auth info from.
|
|
73
|
+
*/
|
|
74
|
+
event: IAWSCloudFunctionEvent) => AuthInfo;
|
|
75
|
+
/**
|
|
76
|
+
* Parse out the Auth, CORS, Headers, Method and Body from an AWS Cloud Function event.
|
|
77
|
+
* @returns Normalized event data for routing.
|
|
78
|
+
* */
|
|
79
|
+
const normalizeCloudFunctionEvent: CloudFunctionEventTransformer;
|
|
80
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { AuthInfo, RouteAuthConfig } from "./Types";
|
|
2
|
+
/**
|
|
3
|
+
* Resolve authorization for a request using auth info and route config.
|
|
4
|
+
* @returns True when the request is authorized.
|
|
5
|
+
* */
|
|
6
|
+
export declare const getRouteIsAuthorized: (
|
|
7
|
+
/**
|
|
8
|
+
* Auth info resolved for the incoming request.
|
|
9
|
+
*/
|
|
10
|
+
authInfo: AuthInfo,
|
|
11
|
+
/**
|
|
12
|
+
* Route-level auth requirements for the request.
|
|
13
|
+
*/
|
|
14
|
+
authConfig: RouteAuthConfig) => boolean;
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
import { CORSPatter } from "./Types";
|
|
2
|
+
/**
|
|
3
|
+
* Check origin equality against an allowed string.
|
|
4
|
+
* @returns True when the origin exactly matches the string.
|
|
5
|
+
* */
|
|
6
|
+
export declare const originMatchesString: (
|
|
7
|
+
/**
|
|
8
|
+
* Origin value from the request.
|
|
9
|
+
*/
|
|
10
|
+
origin?: string,
|
|
11
|
+
/**
|
|
12
|
+
* Allowed origin string to compare against.
|
|
13
|
+
*/
|
|
14
|
+
str?: string) => boolean;
|
|
15
|
+
/**
|
|
16
|
+
* Check origin match against an allowed regular expression.
|
|
17
|
+
* @returns True when the origin matches the pattern.
|
|
18
|
+
* */
|
|
19
|
+
export declare const originMatchesRegExp: (
|
|
20
|
+
/**
|
|
21
|
+
* Origin value from the request.
|
|
22
|
+
*/
|
|
23
|
+
origin?: string,
|
|
24
|
+
/**
|
|
25
|
+
* Allowed origin pattern to test against.
|
|
26
|
+
*/
|
|
27
|
+
regExp?: RegExp) => boolean;
|
|
28
|
+
/**
|
|
29
|
+
* Check an origin against a string or regex CORS pattern.
|
|
30
|
+
* @returns True when the origin matches the allowed pattern.
|
|
31
|
+
* */
|
|
32
|
+
export declare const originMatches: (
|
|
33
|
+
/**
|
|
34
|
+
* Origin value from the request.
|
|
35
|
+
*/
|
|
36
|
+
origin?: string,
|
|
37
|
+
/**
|
|
38
|
+
* Allowed origin matcher (string equality or regex test).
|
|
39
|
+
*/
|
|
40
|
+
corsPattern?: CORSPatter) => boolean;
|
|
41
|
+
/**
|
|
42
|
+
* Resolve the origin if it is allowed by the CORS patterns.
|
|
43
|
+
* @returns The origin if allowed, otherwise an empty string.
|
|
44
|
+
* */
|
|
45
|
+
export declare const getAllowedCORSOrigin: (
|
|
46
|
+
/**
|
|
47
|
+
* Origin value from the request.
|
|
48
|
+
*/
|
|
49
|
+
origin?: string,
|
|
50
|
+
/**
|
|
51
|
+
* Allowed origin matchers to check.
|
|
52
|
+
*/
|
|
53
|
+
corsPatterns?: CORSPatter[]) => string;
|
|
54
|
+
/**
|
|
55
|
+
* Build CORS response headers for a given origin and allow list.
|
|
56
|
+
* @returns CORS headers for the response.
|
|
57
|
+
* */
|
|
58
|
+
export declare const getHeadersWithCORS: (
|
|
59
|
+
/**
|
|
60
|
+
* Origin value from the request.
|
|
61
|
+
*/
|
|
62
|
+
origin?: string,
|
|
63
|
+
/**
|
|
64
|
+
* Allowed origin matchers to check.
|
|
65
|
+
*/
|
|
66
|
+
corsPatterns?: CORSPatter[]) => Record<string, string>;
|
|
@@ -7,65 +7,131 @@ export type CORSPatter = string | RegExp;
|
|
|
7
7
|
* Typically, from Cognito.
|
|
8
8
|
* */
|
|
9
9
|
export type AuthInfo = {
|
|
10
|
+
/**
|
|
11
|
+
* Unique user identifier from the auth provider.
|
|
12
|
+
*/
|
|
10
13
|
userId?: string;
|
|
14
|
+
/**
|
|
15
|
+
* Role or group names assigned to the user.
|
|
16
|
+
*/
|
|
11
17
|
roles?: string[];
|
|
12
18
|
};
|
|
13
19
|
/**
|
|
14
20
|
* The normalized event data that is passed to the route handler.
|
|
15
21
|
* */
|
|
16
22
|
export type NormalizedCloudFunctionEventData = {
|
|
23
|
+
/**
|
|
24
|
+
* Auth info resolved from the incoming event.
|
|
25
|
+
*/
|
|
17
26
|
authInfo: AuthInfo;
|
|
27
|
+
/**
|
|
28
|
+
* Normalized headers keyed by lowercase header name.
|
|
29
|
+
*/
|
|
18
30
|
headers: Record<string, string[]>;
|
|
31
|
+
/**
|
|
32
|
+
* HTTP method (e.g. GET, POST).
|
|
33
|
+
*/
|
|
19
34
|
method: string;
|
|
35
|
+
/**
|
|
36
|
+
* Request path string.
|
|
37
|
+
*/
|
|
20
38
|
path: string;
|
|
39
|
+
/**
|
|
40
|
+
* Parsed body payload passed to handlers.
|
|
41
|
+
*/
|
|
21
42
|
body: any;
|
|
22
43
|
};
|
|
23
44
|
/**
|
|
24
45
|
* The response information that sent back to the requester.
|
|
25
46
|
* */
|
|
26
47
|
export type CloudFunctionResponse = {
|
|
48
|
+
/**
|
|
49
|
+
* HTTP status code to return.
|
|
50
|
+
*/
|
|
27
51
|
statusCode: number;
|
|
52
|
+
/**
|
|
53
|
+
* Headers to include in the response.
|
|
54
|
+
*/
|
|
28
55
|
headers: Record<string, string>;
|
|
56
|
+
/**
|
|
57
|
+
* Serialized response payload.
|
|
58
|
+
*/
|
|
29
59
|
body: string;
|
|
30
60
|
};
|
|
31
61
|
/**
|
|
32
62
|
* A function that handles an RPC request to a route.
|
|
33
|
-
*
|
|
63
|
+
* @param args Handler arguments derived from the normalized event body.
|
|
64
|
+
* @returns Handler result or a promise of the result.
|
|
65
|
+
*/
|
|
34
66
|
export type RouteHandler = (...args: any[]) => any | Promise<any>;
|
|
35
67
|
/**
|
|
36
68
|
* A factory for creating a route handler with context injected.
|
|
37
|
-
*
|
|
69
|
+
* @param eventData Normalized event data used to build the handler.
|
|
70
|
+
* @returns Route handler with context applied.
|
|
71
|
+
*/
|
|
38
72
|
export type RouteHandlerFactory = (eventData: NormalizedCloudFunctionEventData) => RouteHandler;
|
|
39
73
|
/**
|
|
40
74
|
* A configuration to specify the authentication required to access a route.
|
|
41
75
|
* */
|
|
42
76
|
export type RouteAuthConfig = {
|
|
77
|
+
/**
|
|
78
|
+
* When true, the route is publicly accessible without auth.
|
|
79
|
+
*/
|
|
43
80
|
public?: boolean;
|
|
81
|
+
/**
|
|
82
|
+
* When true, any authenticated user is allowed.
|
|
83
|
+
*/
|
|
44
84
|
anyAuthorized?: boolean;
|
|
85
|
+
/**
|
|
86
|
+
* Explicit list of role names permitted to access the route.
|
|
87
|
+
*/
|
|
45
88
|
allowedRoles?: string[];
|
|
46
89
|
};
|
|
47
90
|
/**
|
|
48
91
|
* A configuration used to define how an RPC request to a specific path is handled.
|
|
49
92
|
* */
|
|
50
93
|
export type Route = {
|
|
94
|
+
/**
|
|
95
|
+
* Route path segment used as the lookup key in a RouteMap.
|
|
96
|
+
*/
|
|
51
97
|
path: string;
|
|
98
|
+
/**
|
|
99
|
+
* Optional auth requirements for the route.
|
|
100
|
+
*/
|
|
52
101
|
authConfig?: RouteAuthConfig;
|
|
53
102
|
} & ({
|
|
103
|
+
/**
|
|
104
|
+
* Factory for building a handler with injected context.
|
|
105
|
+
*/
|
|
54
106
|
handlerFactory: RouteHandlerFactory;
|
|
55
107
|
handler?: never;
|
|
56
108
|
} | {
|
|
57
109
|
handlerFactory?: never;
|
|
110
|
+
/**
|
|
111
|
+
* Direct handler invoked with the normalized body payload.
|
|
112
|
+
*/
|
|
58
113
|
handler: RouteHandler;
|
|
59
114
|
});
|
|
60
115
|
/**
|
|
61
116
|
* A collection of {@link Route} objects, indexed by their path.
|
|
117
|
+
*
|
|
118
|
+
* @category Routing
|
|
62
119
|
* */
|
|
63
120
|
export type RouteMap = Record<string, Route>;
|
|
64
121
|
/**
|
|
65
122
|
* A function that transforms an event into a normalized event data object.
|
|
66
|
-
*
|
|
123
|
+
* @param event Raw cloud function event object.
|
|
124
|
+
* @returns Normalized event data for routing.
|
|
125
|
+
*/
|
|
67
126
|
export type CloudFunctionEventTransformer = (event: any) => NormalizedCloudFunctionEventData;
|
|
68
127
|
/**
|
|
69
128
|
* A function that routes an event to a route handler based on a {@link RouteMap}.
|
|
70
|
-
*
|
|
129
|
+
* @param event Raw cloud function event object.
|
|
130
|
+
* @param eventTransformer Transformer used to normalize the event.
|
|
131
|
+
* @param routeMap Route lookup map keyed by path.
|
|
132
|
+
* @param allowedOrigins Allowed origins for CORS responses.
|
|
133
|
+
* @param errorShouldBeExposedToClient Optional error filter for response payloads.
|
|
134
|
+
* @param debug When true, log handler inputs and outputs.
|
|
135
|
+
* @returns Cloud function response object.
|
|
136
|
+
*/
|
|
71
137
|
export type CloudFunctionEventRouter = (event: any, eventTransformer: CloudFunctionEventTransformer, routeMap: RouteMap, allowedOrigins: CORSPatter[], errorShouldBeExposedToClient?: (error: unknown) => boolean, debug?: boolean) => Promise<CloudFunctionResponse>;
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @packageDocumentation
|
|
3
|
+
*
|
|
4
|
+
* Minimal Cloud Function routing helpers. Compose a {@link RouteMap}, wire in
|
|
5
|
+
* auth via {@link getRouteIsAuthorized}, apply CORS helpers, and dispatch with
|
|
6
|
+
* {@link handleCloudFunctionEvent}. AWS event normalization is available under
|
|
7
|
+
* {@link AWS}.
|
|
8
|
+
*
|
|
9
|
+
* Example wiring:
|
|
10
|
+
* ```ts
|
|
11
|
+
* import { AWS, addRoutesToRouteMap, handleCloudFunctionEvent } from "./Router";
|
|
12
|
+
* import type { RouteMap } from "./Router/Types";
|
|
13
|
+
*
|
|
14
|
+
* const routes: RouteMap = addRoutesToRouteMap({}, [
|
|
15
|
+
* { path: "status", authConfig: { public: true }, handler: () => "ok" },
|
|
16
|
+
* ]);
|
|
17
|
+
*
|
|
18
|
+
* export const handler = (event: unknown) =>
|
|
19
|
+
* handleCloudFunctionEvent(
|
|
20
|
+
* event,
|
|
21
|
+
* AWS.normalizeCloudFunctionEvent,
|
|
22
|
+
* routes,
|
|
23
|
+
* ["https://example.com"],
|
|
24
|
+
* );
|
|
25
|
+
* ```
|
|
26
|
+
*/
|
|
27
|
+
import { CloudFunctionEventRouter, Route, RouteMap } from "./Types";
|
|
28
|
+
export * from "./Types";
|
|
29
|
+
export * from "./AWS";
|
|
30
|
+
/**
|
|
31
|
+
* A utility function to add a route to a route map by path.
|
|
32
|
+
* @returns New route map with the route appended.
|
|
33
|
+
* */
|
|
34
|
+
export declare const addRouteToRouteMap: (
|
|
35
|
+
/**
|
|
36
|
+
* Existing route map to append to.
|
|
37
|
+
*/
|
|
38
|
+
routeMap: RouteMap,
|
|
39
|
+
/**
|
|
40
|
+
* Route definition to add to the map.
|
|
41
|
+
*/
|
|
42
|
+
route: Route,
|
|
43
|
+
/**
|
|
44
|
+
* Optional base path prefix to apply to the route path.
|
|
45
|
+
*/
|
|
46
|
+
basePath?: string) => RouteMap;
|
|
47
|
+
/**
|
|
48
|
+
* Add multiple routes to a {@link RouteMap} by path.
|
|
49
|
+
*
|
|
50
|
+
* @category Routing
|
|
51
|
+
* @returns New route map with all routes appended.
|
|
52
|
+
* */
|
|
53
|
+
export declare const addRoutesToRouteMap: (
|
|
54
|
+
/**
|
|
55
|
+
* Existing route map to append to.
|
|
56
|
+
*/
|
|
57
|
+
routeMap: RouteMap,
|
|
58
|
+
/**
|
|
59
|
+
* Route list to add to the map.
|
|
60
|
+
*/
|
|
61
|
+
routes: Route[],
|
|
62
|
+
/**
|
|
63
|
+
* Optional base path prefix applied to all route paths.
|
|
64
|
+
*/
|
|
65
|
+
basePath?: string) => RouteMap;
|
|
66
|
+
/**
|
|
67
|
+
* Apply one {@link RouteMap} to another.
|
|
68
|
+
* @returns New route map with the incoming routes merged.
|
|
69
|
+
* */
|
|
70
|
+
export declare const addRouteMapToRouteMap: (
|
|
71
|
+
/**
|
|
72
|
+
* Existing route map to append to.
|
|
73
|
+
*/
|
|
74
|
+
routeMap: RouteMap,
|
|
75
|
+
/**
|
|
76
|
+
* Route map to merge into the existing map.
|
|
77
|
+
*/
|
|
78
|
+
routeMapToAdd: RouteMap,
|
|
79
|
+
/**
|
|
80
|
+
* Optional base path prefix applied to all incoming paths.
|
|
81
|
+
*/
|
|
82
|
+
basePath?: string) => RouteMap;
|
|
83
|
+
/**
|
|
84
|
+
* A Cloud Function event router.
|
|
85
|
+
*
|
|
86
|
+
* @category Routing
|
|
87
|
+
* @returns Cloud function response for the routed request.
|
|
88
|
+
* */
|
|
89
|
+
export declare const handleCloudFunctionEvent: CloudFunctionEventRouter;
|
package/api/index.d.ts
ADDED
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @packageDocumentation
|
|
3
|
+
*
|
|
4
|
+
* Server-side API utilities: routing, ORM, indexing, and data access control.
|
|
5
|
+
*
|
|
6
|
+
* Import from the API subpath only:
|
|
7
|
+
* ```ts
|
|
8
|
+
* import {
|
|
9
|
+
* AWS,
|
|
10
|
+
* addRoutesToRouteMap,
|
|
11
|
+
* handleCloudFunctionEvent,
|
|
12
|
+
* type CloudFunctionResponse,
|
|
13
|
+
* } from "@resistdesign/voltra/api";
|
|
14
|
+
* ```
|
|
15
|
+
*
|
|
16
|
+
* @example
|
|
17
|
+
* ```ts
|
|
18
|
+
* import {
|
|
19
|
+
* AWS,
|
|
20
|
+
* addRoutesToRouteMap,
|
|
21
|
+
* handleCloudFunctionEvent,
|
|
22
|
+
* type CloudFunctionResponse,
|
|
23
|
+
* } from "@resistdesign/voltra/api";
|
|
24
|
+
*
|
|
25
|
+
* const routes = addRoutesToRouteMap({}, [
|
|
26
|
+
* {
|
|
27
|
+
* path: "",
|
|
28
|
+
* authConfig: { anyAuthorized: true },
|
|
29
|
+
* handler: async () => "WELCOME!!!!",
|
|
30
|
+
* },
|
|
31
|
+
* ]);
|
|
32
|
+
*
|
|
33
|
+
* export const handler = async (
|
|
34
|
+
* event: any,
|
|
35
|
+
* ): Promise<CloudFunctionResponse> =>
|
|
36
|
+
* handleCloudFunctionEvent(
|
|
37
|
+
* event,
|
|
38
|
+
* AWS.normalizeCloudFunctionEvent,
|
|
39
|
+
* routes,
|
|
40
|
+
* [
|
|
41
|
+
* process.env.CLIENT_ORIGIN as string,
|
|
42
|
+
* /https:\\/\\/example\\.com(:.*?$|\\/.*$|$)/gim,
|
|
43
|
+
* ],
|
|
44
|
+
* );
|
|
45
|
+
* ```
|
|
46
|
+
*
|
|
47
|
+
* See also: `@resistdesign/voltra/app` for client-side app helpers.
|
|
48
|
+
*/
|
|
49
|
+
/**
|
|
50
|
+
* @category api
|
|
51
|
+
* @group Indexing
|
|
52
|
+
*/
|
|
53
|
+
export * from "./Indexing";
|
|
54
|
+
/**
|
|
55
|
+
* @category api
|
|
56
|
+
* @group ORM
|
|
57
|
+
*/
|
|
58
|
+
export * from "./ORM";
|
|
59
|
+
/**
|
|
60
|
+
* @category api
|
|
61
|
+
* @group Routing
|
|
62
|
+
*/
|
|
63
|
+
export * from "./Router";
|
|
64
|
+
/**
|
|
65
|
+
* @category api
|
|
66
|
+
* @group Data Access Control
|
|
67
|
+
*/
|
|
68
|
+
export * from "./DataAccessControl";
|