telepact 1.0.0-alpha.120
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 +71 -0
- package/dist/LICENSE +201 -0
- package/dist/NOTICE +15 -0
- package/dist/inc/auth.telepact.json +29 -0
- package/dist/inc/internal.telepact.json +258 -0
- package/dist/inc/json-schema.json +245 -0
- package/dist/inc/mock-internal.telepact.json +157 -0
- package/dist/index.cjs.js +5186 -0
- package/dist/index.esm.js +5167 -0
- package/dist/index.iife.js +5188 -0
- package/dist/src/Client.d.ts +20 -0
- package/dist/src/Client.js +59 -0
- package/dist/src/Client.js.map +1 -0
- package/dist/src/DefaultSerialization.d.ts +9 -0
- package/dist/src/DefaultSerialization.js +35 -0
- package/dist/src/DefaultSerialization.js.map +1 -0
- package/dist/src/Message.d.ts +7 -0
- package/dist/src/Message.js +32 -0
- package/dist/src/Message.js.map +1 -0
- package/dist/src/MockServer.d.ts +27 -0
- package/dist/src/MockServer.js +68 -0
- package/dist/src/MockServer.js.map +1 -0
- package/dist/src/MockTelepactSchema.d.ts +17 -0
- package/dist/src/MockTelepactSchema.js +45 -0
- package/dist/src/MockTelepactSchema.js.map +1 -0
- package/dist/src/RandomGenerator.d.ts +15 -0
- package/dist/src/RandomGenerator.js +107 -0
- package/dist/src/RandomGenerator.js.map +1 -0
- package/dist/src/Serialization.d.ts +13 -0
- package/dist/src/Serialization.js +17 -0
- package/dist/src/Serialization.js.map +1 -0
- package/dist/src/SerializationError.d.ts +3 -0
- package/dist/src/SerializationError.js +22 -0
- package/dist/src/SerializationError.js.map +1 -0
- package/dist/src/Serializer.d.ts +15 -0
- package/dist/src/Serializer.js +43 -0
- package/dist/src/Serializer.js.map +1 -0
- package/dist/src/Server.d.ts +22 -0
- package/dist/src/Server.js +61 -0
- package/dist/src/Server.js.map +1 -0
- package/dist/src/TelepactError.d.ts +4 -0
- package/dist/src/TelepactError.js +24 -0
- package/dist/src/TelepactError.js.map +1 -0
- package/dist/src/TelepactSchema.d.ts +21 -0
- package/dist/src/TelepactSchema.js +50 -0
- package/dist/src/TelepactSchema.js.map +1 -0
- package/dist/src/TelepactSchemaFiles.d.ts +5 -0
- package/dist/src/TelepactSchemaFiles.js +23 -0
- package/dist/src/TelepactSchemaFiles.js.map +1 -0
- package/dist/src/TelepactSchemaParseError.d.ts +9 -0
- package/dist/src/TelepactSchemaParseError.js +31 -0
- package/dist/src/TelepactSchemaParseError.js.map +1 -0
- package/dist/src/fileSystem.d.ts +18 -0
- package/dist/src/fileSystem.js +17 -0
- package/dist/src/fileSystem.js.map +1 -0
- package/dist/src/index.d.ts +19 -0
- package/dist/src/index.js +35 -0
- package/dist/src/index.js.map +1 -0
- package/dist/src/internal/ClientHandleMessage.d.ts +3 -0
- package/dist/src/internal/ClientHandleMessage.js +52 -0
- package/dist/src/internal/ClientHandleMessage.js.map +1 -0
- package/dist/src/internal/DeserializeInternal.d.ts +5 -0
- package/dist/src/internal/DeserializeInternal.js +65 -0
- package/dist/src/internal/DeserializeInternal.js.map +1 -0
- package/dist/src/internal/HandleMessage.d.ts +3 -0
- package/dist/src/internal/HandleMessage.js +168 -0
- package/dist/src/internal/HandleMessage.js.map +1 -0
- package/dist/src/internal/ObjectsAreEqual.d.ts +1 -0
- package/dist/src/internal/ObjectsAreEqual.js +40 -0
- package/dist/src/internal/ObjectsAreEqual.js.map +1 -0
- package/dist/src/internal/ParseRequestMessage.d.ts +4 -0
- package/dist/src/internal/ParseRequestMessage.js +46 -0
- package/dist/src/internal/ParseRequestMessage.js.map +1 -0
- package/dist/src/internal/ProcessBytes.d.ts +8 -0
- package/dist/src/internal/ProcessBytes.js +47 -0
- package/dist/src/internal/ProcessBytes.js.map +1 -0
- package/dist/src/internal/SelectStructFields.d.ts +4 -0
- package/dist/src/internal/SelectStructFields.js +87 -0
- package/dist/src/internal/SelectStructFields.js.map +1 -0
- package/dist/src/internal/SerializeInternal.d.ts +5 -0
- package/dist/src/internal/SerializeInternal.js +49 -0
- package/dist/src/internal/SerializeInternal.js.map +1 -0
- package/dist/src/internal/binary/Base64Encoder.d.ts +4 -0
- package/dist/src/internal/binary/Base64Encoder.js +18 -0
- package/dist/src/internal/binary/Base64Encoder.js.map +1 -0
- package/dist/src/internal/binary/Base64Util.d.ts +2 -0
- package/dist/src/internal/binary/Base64Util.js +36 -0
- package/dist/src/internal/binary/Base64Util.js.map +1 -0
- package/dist/src/internal/binary/BinaryEncoder.d.ts +4 -0
- package/dist/src/internal/binary/BinaryEncoder.js +18 -0
- package/dist/src/internal/binary/BinaryEncoder.js.map +1 -0
- package/dist/src/internal/binary/BinaryEncoderUnavailableError.d.ts +2 -0
- package/dist/src/internal/binary/BinaryEncoderUnavailableError.js +18 -0
- package/dist/src/internal/binary/BinaryEncoderUnavailableError.js.map +1 -0
- package/dist/src/internal/binary/BinaryEncoding.d.ts +6 -0
- package/dist/src/internal/binary/BinaryEncoding.js +30 -0
- package/dist/src/internal/binary/BinaryEncoding.js.map +1 -0
- package/dist/src/internal/binary/BinaryEncodingCache.d.ts +7 -0
- package/dist/src/internal/binary/BinaryEncodingCache.js +18 -0
- package/dist/src/internal/binary/BinaryEncodingCache.js.map +1 -0
- package/dist/src/internal/binary/BinaryEncodingMissing.d.ts +3 -0
- package/dist/src/internal/binary/BinaryEncodingMissing.js +21 -0
- package/dist/src/internal/binary/BinaryEncodingMissing.js.map +1 -0
- package/dist/src/internal/binary/BinaryPackNode.d.ts +5 -0
- package/dist/src/internal/binary/BinaryPackNode.js +24 -0
- package/dist/src/internal/binary/BinaryPackNode.js.map +1 -0
- package/dist/src/internal/binary/CannotPack.d.ts +3 -0
- package/dist/src/internal/binary/CannotPack.js +22 -0
- package/dist/src/internal/binary/CannotPack.js.map +1 -0
- package/dist/src/internal/binary/ClientBase64Decode.d.ts +1 -0
- package/dist/src/internal/binary/ClientBase64Decode.js +80 -0
- package/dist/src/internal/binary/ClientBase64Decode.js.map +1 -0
- package/dist/src/internal/binary/ClientBase64Encode.d.ts +1 -0
- package/dist/src/internal/binary/ClientBase64Encode.js +43 -0
- package/dist/src/internal/binary/ClientBase64Encode.js.map +1 -0
- package/dist/src/internal/binary/ClientBase64Encoder.d.ts +5 -0
- package/dist/src/internal/binary/ClientBase64Encoder.js +29 -0
- package/dist/src/internal/binary/ClientBase64Encoder.js.map +1 -0
- package/dist/src/internal/binary/ClientBinaryDecode.d.ts +3 -0
- package/dist/src/internal/binary/ClientBinaryDecode.js +42 -0
- package/dist/src/internal/binary/ClientBinaryDecode.js.map +1 -0
- package/dist/src/internal/binary/ClientBinaryEncode.d.ts +3 -0
- package/dist/src/internal/binary/ClientBinaryEncode.js +46 -0
- package/dist/src/internal/binary/ClientBinaryEncode.js.map +1 -0
- package/dist/src/internal/binary/ClientBinaryEncoder.d.ts +9 -0
- package/dist/src/internal/binary/ClientBinaryEncoder.js +33 -0
- package/dist/src/internal/binary/ClientBinaryEncoder.js.map +1 -0
- package/dist/src/internal/binary/ClientBinaryStrategy.d.ts +15 -0
- package/dist/src/internal/binary/ClientBinaryStrategy.js +84 -0
- package/dist/src/internal/binary/ClientBinaryStrategy.js.map +1 -0
- package/dist/src/internal/binary/ConstructBinaryEncoding.d.ts +3 -0
- package/dist/src/internal/binary/ConstructBinaryEncoding.js +85 -0
- package/dist/src/internal/binary/ConstructBinaryEncoding.js.map +1 -0
- package/dist/src/internal/binary/ConvertMapsToObjects.d.ts +1 -0
- package/dist/src/internal/binary/ConvertMapsToObjects.js +42 -0
- package/dist/src/internal/binary/ConvertMapsToObjects.js.map +1 -0
- package/dist/src/internal/binary/CreateChecksum.d.ts +1 -0
- package/dist/src/internal/binary/CreateChecksum.js +21 -0
- package/dist/src/internal/binary/CreateChecksum.js.map +1 -0
- package/dist/src/internal/binary/DecodeBody.d.ts +2 -0
- package/dist/src/internal/binary/DecodeBody.js +20 -0
- package/dist/src/internal/binary/DecodeBody.js.map +1 -0
- package/dist/src/internal/binary/DecodeKeys.d.ts +2 -0
- package/dist/src/internal/binary/DecodeKeys.js +37 -0
- package/dist/src/internal/binary/DecodeKeys.js.map +1 -0
- package/dist/src/internal/binary/DefaultBinaryEncodingCache.d.ts +10 -0
- package/dist/src/internal/binary/DefaultBinaryEncodingCache.js +38 -0
- package/dist/src/internal/binary/DefaultBinaryEncodingCache.js.map +1 -0
- package/dist/src/internal/binary/EncodeBody.d.ts +2 -0
- package/dist/src/internal/binary/EncodeBody.js +20 -0
- package/dist/src/internal/binary/EncodeBody.js.map +1 -0
- package/dist/src/internal/binary/EncodeKeys.d.ts +2 -0
- package/dist/src/internal/binary/EncodeKeys.js +36 -0
- package/dist/src/internal/binary/EncodeKeys.js.map +1 -0
- package/dist/src/internal/binary/LocalStorageBackedBinaryEncodingCache.d.ts +13 -0
- package/dist/src/internal/binary/LocalStorageBackedBinaryEncodingCache.js +65 -0
- package/dist/src/internal/binary/LocalStorageBackedBinaryEncodingCache.js.map +1 -0
- package/dist/src/internal/binary/Pack.d.ts +1 -0
- package/dist/src/internal/binary/Pack.js +32 -0
- package/dist/src/internal/binary/Pack.js.map +1 -0
- package/dist/src/internal/binary/PackBody.d.ts +1 -0
- package/dist/src/internal/binary/PackBody.js +25 -0
- package/dist/src/internal/binary/PackBody.js.map +1 -0
- package/dist/src/internal/binary/PackList.d.ts +4 -0
- package/dist/src/internal/binary/PackList.js +68 -0
- package/dist/src/internal/binary/PackList.js.map +1 -0
- package/dist/src/internal/binary/PackMap.d.ts +5 -0
- package/dist/src/internal/binary/PackMap.js +87 -0
- package/dist/src/internal/binary/PackMap.js.map +1 -0
- package/dist/src/internal/binary/ServerBase64Decode.d.ts +1 -0
- package/dist/src/internal/binary/ServerBase64Decode.js +76 -0
- package/dist/src/internal/binary/ServerBase64Decode.js.map +1 -0
- package/dist/src/internal/binary/ServerBase64Encode.d.ts +1 -0
- package/dist/src/internal/binary/ServerBase64Encode.js +76 -0
- package/dist/src/internal/binary/ServerBase64Encode.js.map +1 -0
- package/dist/src/internal/binary/ServerBase64Encoder.d.ts +5 -0
- package/dist/src/internal/binary/ServerBase64Encoder.js +28 -0
- package/dist/src/internal/binary/ServerBase64Encoder.js.map +1 -0
- package/dist/src/internal/binary/ServerBinaryDecode.d.ts +2 -0
- package/dist/src/internal/binary/ServerBinaryDecode.js +39 -0
- package/dist/src/internal/binary/ServerBinaryDecode.js.map +1 -0
- package/dist/src/internal/binary/ServerBinaryEncode.d.ts +2 -0
- package/dist/src/internal/binary/ServerBinaryEncode.js +42 -0
- package/dist/src/internal/binary/ServerBinaryEncode.js.map +1 -0
- package/dist/src/internal/binary/ServerBinaryEncoder.d.ts +8 -0
- package/dist/src/internal/binary/ServerBinaryEncoder.js +30 -0
- package/dist/src/internal/binary/ServerBinaryEncoder.js.map +1 -0
- package/dist/src/internal/binary/Unpack.d.ts +1 -0
- package/dist/src/internal/binary/Unpack.js +32 -0
- package/dist/src/internal/binary/Unpack.js.map +1 -0
- package/dist/src/internal/binary/UnpackBody.d.ts +1 -0
- package/dist/src/internal/binary/UnpackBody.js +25 -0
- package/dist/src/internal/binary/UnpackBody.js.map +1 -0
- package/dist/src/internal/binary/UnpackList.d.ts +1 -0
- package/dist/src/internal/binary/UnpackList.js +39 -0
- package/dist/src/internal/binary/UnpackList.js.map +1 -0
- package/dist/src/internal/binary/UnpackMap.d.ts +1 -0
- package/dist/src/internal/binary/UnpackMap.js +40 -0
- package/dist/src/internal/binary/UnpackMap.js.map +1 -0
- package/dist/src/internal/generation/GenerateContext.d.ts +16 -0
- package/dist/src/internal/generation/GenerateContext.js +33 -0
- package/dist/src/internal/generation/GenerateContext.js.map +1 -0
- package/dist/src/internal/generation/GenerateRandomAny.d.ts +2 -0
- package/dist/src/internal/generation/GenerateRandomAny.js +28 -0
- package/dist/src/internal/generation/GenerateRandomAny.js.map +1 -0
- package/dist/src/internal/generation/GenerateRandomArray.d.ts +3 -0
- package/dist/src/internal/generation/GenerateRandomArray.js +37 -0
- package/dist/src/internal/generation/GenerateRandomArray.js.map +1 -0
- package/dist/src/internal/generation/GenerateRandomBoolean.d.ts +2 -0
- package/dist/src/internal/generation/GenerateRandomBoolean.js +24 -0
- package/dist/src/internal/generation/GenerateRandomBoolean.js.map +1 -0
- package/dist/src/internal/generation/GenerateRandomBytes.d.ts +2 -0
- package/dist/src/internal/generation/GenerateRandomBytes.js +24 -0
- package/dist/src/internal/generation/GenerateRandomBytes.js.map +1 -0
- package/dist/src/internal/generation/GenerateRandomInteger.d.ts +2 -0
- package/dist/src/internal/generation/GenerateRandomInteger.js +24 -0
- package/dist/src/internal/generation/GenerateRandomInteger.js.map +1 -0
- package/dist/src/internal/generation/GenerateRandomMockCall.d.ts +5 -0
- package/dist/src/internal/generation/GenerateRandomMockCall.js +26 -0
- package/dist/src/internal/generation/GenerateRandomMockCall.js.map +1 -0
- package/dist/src/internal/generation/GenerateRandomMockStub.d.ts +5 -0
- package/dist/src/internal/generation/GenerateRandomMockStub.js +38 -0
- package/dist/src/internal/generation/GenerateRandomMockStub.js.map +1 -0
- package/dist/src/internal/generation/GenerateRandomNumber.d.ts +2 -0
- package/dist/src/internal/generation/GenerateRandomNumber.js +24 -0
- package/dist/src/internal/generation/GenerateRandomNumber.js.map +1 -0
- package/dist/src/internal/generation/GenerateRandomObject.d.ts +3 -0
- package/dist/src/internal/generation/GenerateRandomObject.js +38 -0
- package/dist/src/internal/generation/GenerateRandomObject.js.map +1 -0
- package/dist/src/internal/generation/GenerateRandomSelect.d.ts +2 -0
- package/dist/src/internal/generation/GenerateRandomSelect.js +49 -0
- package/dist/src/internal/generation/GenerateRandomSelect.js.map +1 -0
- package/dist/src/internal/generation/GenerateRandomString.d.ts +2 -0
- package/dist/src/internal/generation/GenerateRandomString.js +24 -0
- package/dist/src/internal/generation/GenerateRandomString.js.map +1 -0
- package/dist/src/internal/generation/GenerateRandomStruct.d.ts +5 -0
- package/dist/src/internal/generation/GenerateRandomStruct.js +60 -0
- package/dist/src/internal/generation/GenerateRandomStruct.js.map +1 -0
- package/dist/src/internal/generation/GenerateRandomUnion.d.ts +5 -0
- package/dist/src/internal/generation/GenerateRandomUnion.js +35 -0
- package/dist/src/internal/generation/GenerateRandomUnion.js.map +1 -0
- package/dist/src/internal/generation/GenerateRandomValueOfType.d.ts +4 -0
- package/dist/src/internal/generation/GenerateRandomValueOfType.js +24 -0
- package/dist/src/internal/generation/GenerateRandomValueOfType.js.map +1 -0
- package/dist/src/internal/mock/IsSubMap.d.ts +1 -0
- package/dist/src/internal/mock/IsSubMap.js +28 -0
- package/dist/src/internal/mock/IsSubMap.js.map +1 -0
- package/dist/src/internal/mock/IsSubMapEntryEqual.d.ts +1 -0
- package/dist/src/internal/mock/IsSubMapEntryEqual.js +37 -0
- package/dist/src/internal/mock/IsSubMapEntryEqual.js.map +1 -0
- package/dist/src/internal/mock/MockHandle.d.ts +6 -0
- package/dist/src/internal/mock/MockHandle.js +121 -0
- package/dist/src/internal/mock/MockHandle.js.map +1 -0
- package/dist/src/internal/mock/MockInvocation.d.ts +6 -0
- package/dist/src/internal/mock/MockInvocation.js +26 -0
- package/dist/src/internal/mock/MockInvocation.js.map +1 -0
- package/dist/src/internal/mock/MockStub.d.ts +8 -0
- package/dist/src/internal/mock/MockStub.js +30 -0
- package/dist/src/internal/mock/MockStub.js.map +1 -0
- package/dist/src/internal/mock/PartiallyMatches.d.ts +1 -0
- package/dist/src/internal/mock/PartiallyMatches.js +25 -0
- package/dist/src/internal/mock/PartiallyMatches.js.map +1 -0
- package/dist/src/internal/mock/Verify.d.ts +8 -0
- package/dist/src/internal/mock/Verify.js +94 -0
- package/dist/src/internal/mock/Verify.js.map +1 -0
- package/dist/src/internal/mock/VerifyNoMoreInteractions.d.ts +4 -0
- package/dist/src/internal/mock/VerifyNoMoreInteractions.js +30 -0
- package/dist/src/internal/mock/VerifyNoMoreInteractions.js.map +1 -0
- package/dist/src/internal/schema/ApplyErrorToParsedTypes.d.ts +13 -0
- package/dist/src/internal/schema/ApplyErrorToParsedTypes.js +61 -0
- package/dist/src/internal/schema/ApplyErrorToParsedTypes.js.map +1 -0
- package/dist/src/internal/schema/CatchErrorCollisions.d.ts +1 -0
- package/dist/src/internal/schema/CatchErrorCollisions.js +73 -0
- package/dist/src/internal/schema/CatchErrorCollisions.js.map +1 -0
- package/dist/src/internal/schema/CatchHeaderCollisions.d.ts +1 -0
- package/dist/src/internal/schema/CatchHeaderCollisions.js +74 -0
- package/dist/src/internal/schema/CatchHeaderCollisions.js.map +1 -0
- package/dist/src/internal/schema/CreateMockTelepactSchemaFromFileJsonMap.d.ts +2 -0
- package/dist/src/internal/schema/CreateMockTelepactSchemaFromFileJsonMap.js +25 -0
- package/dist/src/internal/schema/CreateMockTelepactSchemaFromFileJsonMap.js.map +1 -0
- package/dist/src/internal/schema/CreateTelepactSchemaFromFileJsonMap.d.ts +2 -0
- package/dist/src/internal/schema/CreateTelepactSchemaFromFileJsonMap.js +33 -0
- package/dist/src/internal/schema/CreateTelepactSchemaFromFileJsonMap.js.map +1 -0
- package/dist/src/internal/schema/DerivePossibleSelect.d.ts +2 -0
- package/dist/src/internal/schema/DerivePossibleSelect.js +87 -0
- package/dist/src/internal/schema/DerivePossibleSelect.js.map +1 -0
- package/dist/src/internal/schema/FindMatchingSchemaKey.d.ts +1 -0
- package/dist/src/internal/schema/FindMatchingSchemaKey.js +27 -0
- package/dist/src/internal/schema/FindMatchingSchemaKey.js.map +1 -0
- package/dist/src/internal/schema/FindSchemaKey.d.ts +1 -0
- package/dist/src/internal/schema/FindSchemaKey.js +40 -0
- package/dist/src/internal/schema/FindSchemaKey.js.map +1 -0
- package/dist/src/internal/schema/GetAuthTelepactJson.d.ts +1 -0
- package/dist/src/internal/schema/GetAuthTelepactJson.js +20 -0
- package/dist/src/internal/schema/GetAuthTelepactJson.js.map +1 -0
- package/dist/src/internal/schema/GetInternalTelepactJson.d.ts +1 -0
- package/dist/src/internal/schema/GetInternalTelepactJson.js +20 -0
- package/dist/src/internal/schema/GetInternalTelepactJson.js.map +1 -0
- package/dist/src/internal/schema/GetMockTelepactJson.d.ts +1 -0
- package/dist/src/internal/schema/GetMockTelepactJson.js +20 -0
- package/dist/src/internal/schema/GetMockTelepactJson.js.map +1 -0
- package/dist/src/internal/schema/GetOrParseType.d.ts +3 -0
- package/dist/src/internal/schema/GetOrParseType.js +108 -0
- package/dist/src/internal/schema/GetOrParseType.js.map +1 -0
- package/dist/src/internal/schema/GetPathDocumentCoordinatesPseudoJson.d.ts +7 -0
- package/dist/src/internal/schema/GetPathDocumentCoordinatesPseudoJson.js +218 -0
- package/dist/src/internal/schema/GetPathDocumentCoordinatesPseudoJson.js.map +1 -0
- package/dist/src/internal/schema/GetSchemaFileMap.d.ts +2 -0
- package/dist/src/internal/schema/GetSchemaFileMap.js +40 -0
- package/dist/src/internal/schema/GetSchemaFileMap.js.map +1 -0
- package/dist/src/internal/schema/GetTypeUnexpectedParseFailure.d.ts +2 -0
- package/dist/src/internal/schema/GetTypeUnexpectedParseFailure.js +26 -0
- package/dist/src/internal/schema/GetTypeUnexpectedParseFailure.js.map +1 -0
- package/dist/src/internal/schema/MapSchemaParseFailuresToPseudoJson.d.ts +2 -0
- package/dist/src/internal/schema/MapSchemaParseFailuresToPseudoJson.js +31 -0
- package/dist/src/internal/schema/MapSchemaParseFailuresToPseudoJson.js.map +1 -0
- package/dist/src/internal/schema/ParseContext.d.ts +41 -0
- package/dist/src/internal/schema/ParseContext.js +41 -0
- package/dist/src/internal/schema/ParseContext.js.map +1 -0
- package/dist/src/internal/schema/ParseErrorType.d.ts +5 -0
- package/dist/src/internal/schema/ParseErrorType.js +35 -0
- package/dist/src/internal/schema/ParseErrorType.js.map +1 -0
- package/dist/src/internal/schema/ParseField.d.ts +3 -0
- package/dist/src/internal/schema/ParseField.js +36 -0
- package/dist/src/internal/schema/ParseField.js.map +1 -0
- package/dist/src/internal/schema/ParseFunctionType.d.ts +8 -0
- package/dist/src/internal/schema/ParseFunctionType.js +75 -0
- package/dist/src/internal/schema/ParseFunctionType.js.map +1 -0
- package/dist/src/internal/schema/ParseHeadersType.d.ts +5 -0
- package/dist/src/internal/schema/ParseHeadersType.js +92 -0
- package/dist/src/internal/schema/ParseHeadersType.js.map +1 -0
- package/dist/src/internal/schema/ParseStructFields.d.ts +7 -0
- package/dist/src/internal/schema/ParseStructFields.js +58 -0
- package/dist/src/internal/schema/ParseStructFields.js.map +1 -0
- package/dist/src/internal/schema/ParseStructType.d.ts +5 -0
- package/dist/src/internal/schema/ParseStructType.js +53 -0
- package/dist/src/internal/schema/ParseStructType.js.map +1 -0
- package/dist/src/internal/schema/ParseTelepactSchema.d.ts +2 -0
- package/dist/src/internal/schema/ParseTelepactSchema.js +257 -0
- package/dist/src/internal/schema/ParseTelepactSchema.js.map +1 -0
- package/dist/src/internal/schema/ParseTypeDeclaration.d.ts +2 -0
- package/dist/src/internal/schema/ParseTypeDeclaration.js +84 -0
- package/dist/src/internal/schema/ParseTypeDeclaration.js.map +1 -0
- package/dist/src/internal/schema/ParseUnionType.d.ts +5 -0
- package/dist/src/internal/schema/ParseUnionType.js +138 -0
- package/dist/src/internal/schema/ParseUnionType.js.map +1 -0
- package/dist/src/internal/schema/SchemaParseFailure.d.ts +8 -0
- package/dist/src/internal/schema/SchemaParseFailure.js +29 -0
- package/dist/src/internal/schema/SchemaParseFailure.js.map +1 -0
- package/dist/src/internal/types/GetType.d.ts +1 -0
- package/dist/src/internal/types/GetType.js +39 -0
- package/dist/src/internal/types/GetType.js.map +1 -0
- package/dist/src/internal/types/TAny.d.ts +11 -0
- package/dist/src/internal/types/TAny.js +33 -0
- package/dist/src/internal/types/TAny.js.map +1 -0
- package/dist/src/internal/types/TArray.d.ts +12 -0
- package/dist/src/internal/types/TArray.js +34 -0
- package/dist/src/internal/types/TArray.js.map +1 -0
- package/dist/src/internal/types/TBoolean.d.ts +12 -0
- package/dist/src/internal/types/TBoolean.js +34 -0
- package/dist/src/internal/types/TBoolean.js.map +1 -0
- package/dist/src/internal/types/TBytes.d.ts +12 -0
- package/dist/src/internal/types/TBytes.js +34 -0
- package/dist/src/internal/types/TBytes.js.map +1 -0
- package/dist/src/internal/types/TError.d.ts +6 -0
- package/dist/src/internal/types/TError.js +24 -0
- package/dist/src/internal/types/TError.js.map +1 -0
- package/dist/src/internal/types/TFieldDeclaration.d.ts +7 -0
- package/dist/src/internal/types/TFieldDeclaration.js +26 -0
- package/dist/src/internal/types/TFieldDeclaration.js.map +1 -0
- package/dist/src/internal/types/THeaders.d.ts +15 -0
- package/dist/src/internal/types/THeaders.js +26 -0
- package/dist/src/internal/types/THeaders.js.map +1 -0
- package/dist/src/internal/types/TInteger.d.ts +12 -0
- package/dist/src/internal/types/TInteger.js +34 -0
- package/dist/src/internal/types/TInteger.js.map +1 -0
- package/dist/src/internal/types/TMockCall.d.ts +16 -0
- package/dist/src/internal/types/TMockCall.js +39 -0
- package/dist/src/internal/types/TMockCall.js.map +1 -0
- package/dist/src/internal/types/TMockStub.d.ts +18 -0
- package/dist/src/internal/types/TMockStub.js +39 -0
- package/dist/src/internal/types/TMockStub.js.map +1 -0
- package/dist/src/internal/types/TNumber.d.ts +12 -0
- package/dist/src/internal/types/TNumber.js +34 -0
- package/dist/src/internal/types/TNumber.js.map +1 -0
- package/dist/src/internal/types/TObject.d.ts +12 -0
- package/dist/src/internal/types/TObject.js +33 -0
- package/dist/src/internal/types/TObject.js.map +1 -0
- package/dist/src/internal/types/TSelect.d.ts +13 -0
- package/dist/src/internal/types/TSelect.js +34 -0
- package/dist/src/internal/types/TSelect.js.map +1 -0
- package/dist/src/internal/types/TString.d.ts +12 -0
- package/dist/src/internal/types/TString.js +34 -0
- package/dist/src/internal/types/TString.js.map +1 -0
- package/dist/src/internal/types/TStruct.d.ts +20 -0
- package/dist/src/internal/types/TStruct.js +39 -0
- package/dist/src/internal/types/TStruct.js.map +1 -0
- package/dist/src/internal/types/TType.d.ts +10 -0
- package/dist/src/internal/types/TType.js +18 -0
- package/dist/src/internal/types/TType.js.map +1 -0
- package/dist/src/internal/types/TTypeDeclaration.d.ts +12 -0
- package/dist/src/internal/types/TTypeDeclaration.js +34 -0
- package/dist/src/internal/types/TTypeDeclaration.js.map +1 -0
- package/dist/src/internal/types/TUnion.d.ts +25 -0
- package/dist/src/internal/types/TUnion.js +41 -0
- package/dist/src/internal/types/TUnion.js.map +1 -0
- package/dist/src/internal/validation/GetInvalidErrorMessage.d.ts +6 -0
- package/dist/src/internal/validation/GetInvalidErrorMessage.js +29 -0
- package/dist/src/internal/validation/GetInvalidErrorMessage.js.map +1 -0
- package/dist/src/internal/validation/GetTypeUnexpectedValidationFailure.d.ts +2 -0
- package/dist/src/internal/validation/GetTypeUnexpectedValidationFailure.js +26 -0
- package/dist/src/internal/validation/GetTypeUnexpectedValidationFailure.js.map +1 -0
- package/dist/src/internal/validation/InvalidMessage.d.ts +3 -0
- package/dist/src/internal/validation/InvalidMessage.js +21 -0
- package/dist/src/internal/validation/InvalidMessage.js.map +1 -0
- package/dist/src/internal/validation/InvalidMessageBody.d.ts +2 -0
- package/dist/src/internal/validation/InvalidMessageBody.js +18 -0
- package/dist/src/internal/validation/InvalidMessageBody.js.map +1 -0
- package/dist/src/internal/validation/MapValidationFailuresToInvalidFieldCases.d.ts +2 -0
- package/dist/src/internal/validation/MapValidationFailuresToInvalidFieldCases.js +27 -0
- package/dist/src/internal/validation/MapValidationFailuresToInvalidFieldCases.js.map +1 -0
- package/dist/src/internal/validation/ValidateArray.d.ts +4 -0
- package/dist/src/internal/validation/ValidateArray.js +42 -0
- package/dist/src/internal/validation/ValidateArray.js.map +1 -0
- package/dist/src/internal/validation/ValidateBoolean.d.ts +2 -0
- package/dist/src/internal/validation/ValidateBoolean.js +26 -0
- package/dist/src/internal/validation/ValidateBoolean.js.map +1 -0
- package/dist/src/internal/validation/ValidateBytes.d.ts +3 -0
- package/dist/src/internal/validation/ValidateBytes.js +56 -0
- package/dist/src/internal/validation/ValidateBytes.js.map +1 -0
- package/dist/src/internal/validation/ValidateContext.d.ts +13 -0
- package/dist/src/internal/validation/ValidateContext.js +32 -0
- package/dist/src/internal/validation/ValidateContext.js.map +1 -0
- package/dist/src/internal/validation/ValidateHeaders.d.ts +3 -0
- package/dist/src/internal/validation/ValidateHeaders.js +34 -0
- package/dist/src/internal/validation/ValidateHeaders.js.map +1 -0
- package/dist/src/internal/validation/ValidateInteger.d.ts +2 -0
- package/dist/src/internal/validation/ValidateInteger.js +33 -0
- package/dist/src/internal/validation/ValidateInteger.js.map +1 -0
- package/dist/src/internal/validation/ValidateMockCall.d.ts +4 -0
- package/dist/src/internal/validation/ValidateMockCall.js +50 -0
- package/dist/src/internal/validation/ValidateMockCall.js.map +1 -0
- package/dist/src/internal/validation/ValidateMockStub.d.ts +6 -0
- package/dist/src/internal/validation/ValidateMockStub.js +73 -0
- package/dist/src/internal/validation/ValidateMockStub.js.map +1 -0
- package/dist/src/internal/validation/ValidateNumber.d.ts +2 -0
- package/dist/src/internal/validation/ValidateNumber.js +33 -0
- package/dist/src/internal/validation/ValidateNumber.js.map +1 -0
- package/dist/src/internal/validation/ValidateObject.d.ts +4 -0
- package/dist/src/internal/validation/ValidateObject.js +40 -0
- package/dist/src/internal/validation/ValidateObject.js.map +1 -0
- package/dist/src/internal/validation/ValidateResult.d.ts +2 -0
- package/dist/src/internal/validation/ValidateResult.js +25 -0
- package/dist/src/internal/validation/ValidateResult.js.map +1 -0
- package/dist/src/internal/validation/ValidateSelect.d.ts +3 -0
- package/dist/src/internal/validation/ValidateSelect.js +56 -0
- package/dist/src/internal/validation/ValidateSelect.js.map +1 -0
- package/dist/src/internal/validation/ValidateString.d.ts +2 -0
- package/dist/src/internal/validation/ValidateString.js +26 -0
- package/dist/src/internal/validation/ValidateString.js.map +1 -0
- package/dist/src/internal/validation/ValidateStruct.d.ts +4 -0
- package/dist/src/internal/validation/ValidateStruct.js +28 -0
- package/dist/src/internal/validation/ValidateStruct.js.map +1 -0
- package/dist/src/internal/validation/ValidateStructFields.d.ts +4 -0
- package/dist/src/internal/validation/ValidateStructFields.js +53 -0
- package/dist/src/internal/validation/ValidateStructFields.js.map +1 -0
- package/dist/src/internal/validation/ValidateUnion.d.ts +4 -0
- package/dist/src/internal/validation/ValidateUnion.js +34 -0
- package/dist/src/internal/validation/ValidateUnion.js.map +1 -0
- package/dist/src/internal/validation/ValidateUnionStruct.d.ts +4 -0
- package/dist/src/internal/validation/ValidateUnionStruct.js +24 -0
- package/dist/src/internal/validation/ValidateUnionStruct.js.map +1 -0
- package/dist/src/internal/validation/ValidateUnionTags.d.ts +4 -0
- package/dist/src/internal/validation/ValidateUnionTags.js +46 -0
- package/dist/src/internal/validation/ValidateUnionTags.js.map +1 -0
- package/dist/src/internal/validation/ValidateValueOfType.d.ts +5 -0
- package/dist/src/internal/validation/ValidateValueOfType.js +28 -0
- package/dist/src/internal/validation/ValidateValueOfType.js.map +1 -0
- package/dist/src/internal/validation/ValidationFailure.d.ts +6 -0
- package/dist/src/internal/validation/ValidationFailure.js +26 -0
- package/dist/src/internal/validation/ValidationFailure.js.map +1 -0
- package/package.json +57 -0
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
//|
|
|
2
|
+
//| Copyright The Telepact Authors
|
|
3
|
+
//|
|
|
4
|
+
//| Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
//| you may not use this file except in compliance with the License.
|
|
6
|
+
//| You may obtain a copy of the License at
|
|
7
|
+
//|
|
|
8
|
+
//| https://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
//|
|
|
10
|
+
//| Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
//| distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
//| WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
//| See the License for the specific language governing permissions and
|
|
14
|
+
//| limitations under the License.
|
|
15
|
+
//|
|
|
16
|
+
export function generateRandomStruct(blueprintValue, useBlueprintValue, referenceStruct, ctx) {
|
|
17
|
+
const startingStruct = useBlueprintValue ? blueprintValue : {};
|
|
18
|
+
const sortedReferenceStruct = Array.from(Object.entries(referenceStruct)).sort((e1, e2) => {
|
|
19
|
+
const a = e1[0];
|
|
20
|
+
const b = e2[0];
|
|
21
|
+
for (let i = 0; i < Math.min(a.length, b.length); i++) {
|
|
22
|
+
const charCodeA = a.charCodeAt(i);
|
|
23
|
+
const charCodeB = b.charCodeAt(i);
|
|
24
|
+
if (charCodeA !== charCodeB) {
|
|
25
|
+
// If the characters are different, return the comparison result
|
|
26
|
+
// where lowercase letters are considered greater than uppercase letters
|
|
27
|
+
return charCodeA - charCodeB;
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
// If one string is a prefix of the other, the shorter string comes first
|
|
31
|
+
return a.length - b.length;
|
|
32
|
+
});
|
|
33
|
+
const obj = {};
|
|
34
|
+
for (const [fieldName, fieldDeclaration] of sortedReferenceStruct) {
|
|
35
|
+
const thisBlueprintValue = startingStruct[fieldName];
|
|
36
|
+
const thisUseBlueprintValue = fieldName in startingStruct;
|
|
37
|
+
const typeDeclaration = fieldDeclaration.typeDeclaration;
|
|
38
|
+
let value;
|
|
39
|
+
if (thisUseBlueprintValue) {
|
|
40
|
+
value = typeDeclaration.generateRandomValue(thisBlueprintValue, thisUseBlueprintValue, ctx);
|
|
41
|
+
}
|
|
42
|
+
else {
|
|
43
|
+
if (!fieldDeclaration.optional) {
|
|
44
|
+
if (!ctx.alwaysIncludeRequiredFields && ctx.randomGenerator.nextBoolean()) {
|
|
45
|
+
continue;
|
|
46
|
+
}
|
|
47
|
+
value = typeDeclaration.generateRandomValue(null, false, ctx);
|
|
48
|
+
}
|
|
49
|
+
else {
|
|
50
|
+
if (!ctx.includeOptionalFields || (ctx.randomizeOptionalFields && ctx.randomGenerator.nextBoolean())) {
|
|
51
|
+
continue;
|
|
52
|
+
}
|
|
53
|
+
value = typeDeclaration.generateRandomValue(null, false, ctx);
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
obj[fieldName] = value;
|
|
57
|
+
}
|
|
58
|
+
return obj;
|
|
59
|
+
}
|
|
60
|
+
//# sourceMappingURL=GenerateRandomStruct.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GenerateRandomStruct.js","sourceRoot":"","sources":["../../../../src/internal/generation/GenerateRandomStruct.ts"],"names":[],"mappings":"AAAA,GAAG;AACH,mCAAmC;AACnC,GAAG;AACH,oEAAoE;AACpE,qEAAqE;AACrE,4CAA4C;AAC5C,GAAG;AACH,gDAAgD;AAChD,GAAG;AACH,wEAAwE;AACxE,sEAAsE;AACtE,6EAA6E;AAC7E,wEAAwE;AACxE,mCAAmC;AACnC,GAAG;AAKH,MAAM,UAAU,oBAAoB,CAChC,cAAmB,EACnB,iBAA0B,EAC1B,eAAqD,EACrD,GAAoB;IAEpB,MAAM,cAAc,GAAG,iBAAiB,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,CAAC;IAE/D,MAAM,qBAAqB,GAAG,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE;QACtF,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;QAChB,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;QAChB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;YACpD,MAAM,SAAS,GAAG,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;YAClC,MAAM,SAAS,GAAG,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;YAClC,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;gBAC1B,gEAAgE;gBAChE,wEAAwE;gBACxE,OAAO,SAAS,GAAG,SAAS,CAAC;YACjC,CAAC;QACL,CAAC;QACD,yEAAyE;QACzE,OAAO,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC;IAC/B,CAAC,CAAC,CAAC;IAEH,MAAM,GAAG,GAAwB,EAAE,CAAC;IACpC,KAAK,MAAM,CAAC,SAAS,EAAE,gBAAgB,CAAC,IAAI,qBAAqB,EAAE,CAAC;QAChE,MAAM,kBAAkB,GAAG,cAAc,CAAC,SAAS,CAAC,CAAC;QACrD,MAAM,qBAAqB,GAAG,SAAS,IAAI,cAAc,CAAC;QAC1D,MAAM,eAAe,GAAG,gBAAgB,CAAC,eAAe,CAAC;QAEzD,IAAI,KAAU,CAAC;QACf,IAAI,qBAAqB,EAAE,CAAC;YACxB,KAAK,GAAG,eAAe,CAAC,mBAAmB,CAAC,kBAAkB,EAAE,qBAAqB,EAAE,GAAG,CAAC,CAAC;QAChG,CAAC;aAAM,CAAC;YACJ,IAAI,CAAC,gBAAgB,CAAC,QAAQ,EAAE,CAAC;gBAC7B,IAAI,CAAC,GAAG,CAAC,2BAA2B,IAAI,GAAG,CAAC,eAAe,CAAC,WAAW,EAAE,EAAE,CAAC;oBACxE,SAAS;gBACb,CAAC;gBACD,KAAK,GAAG,eAAe,CAAC,mBAAmB,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC;YAClE,CAAC;iBAAM,CAAC;gBACJ,IAAI,CAAC,GAAG,CAAC,qBAAqB,IAAI,CAAC,GAAG,CAAC,uBAAuB,IAAI,GAAG,CAAC,eAAe,CAAC,WAAW,EAAE,CAAC,EAAE,CAAC;oBACnG,SAAS;gBACb,CAAC;gBACD,KAAK,GAAG,eAAe,CAAC,mBAAmB,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC;YAClE,CAAC;QACL,CAAC;QAED,GAAG,CAAC,SAAS,CAAC,GAAG,KAAK,CAAC;IAC3B,CAAC;IAED,OAAO,GAAG,CAAC;AACf,CAAC"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { TStruct } from '../types/TStruct';
|
|
2
|
+
import { GenerateContext } from '../../internal/generation/GenerateContext';
|
|
3
|
+
export declare function generateRandomUnion(blueprintValue: any, useBlueprintValue: boolean, unionTagsReference: {
|
|
4
|
+
[key: string]: TStruct;
|
|
5
|
+
}, ctx: GenerateContext): any;
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
//|
|
|
2
|
+
//| Copyright The Telepact Authors
|
|
3
|
+
//|
|
|
4
|
+
//| Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
//| you may not use this file except in compliance with the License.
|
|
6
|
+
//| You may obtain a copy of the License at
|
|
7
|
+
//|
|
|
8
|
+
//| https://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
//|
|
|
10
|
+
//| Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
//| distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
//| WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
//| See the License for the specific language governing permissions and
|
|
14
|
+
//| limitations under the License.
|
|
15
|
+
//|
|
|
16
|
+
import { generateRandomStruct } from '../../internal/generation/GenerateRandomStruct';
|
|
17
|
+
export function generateRandomUnion(blueprintValue, useBlueprintValue, unionTagsReference, ctx) {
|
|
18
|
+
if (!useBlueprintValue) {
|
|
19
|
+
const sortedUnionTagsReference = Object.entries(unionTagsReference).sort((a, b) => a[0].localeCompare(b[0]));
|
|
20
|
+
const randomIndex = ctx.randomGenerator.nextIntWithCeiling(sortedUnionTagsReference.length);
|
|
21
|
+
const [unionTag, unionData] = sortedUnionTagsReference[randomIndex];
|
|
22
|
+
return {
|
|
23
|
+
[unionTag]: generateRandomStruct(null, false, unionData.fields, ctx),
|
|
24
|
+
};
|
|
25
|
+
}
|
|
26
|
+
else {
|
|
27
|
+
const startingUnion = blueprintValue;
|
|
28
|
+
const [unionTag, unionStartingStruct] = Object.entries(startingUnion)[0];
|
|
29
|
+
const unionStructType = unionTagsReference[unionTag];
|
|
30
|
+
return {
|
|
31
|
+
[unionTag]: generateRandomStruct(unionStartingStruct, true, unionStructType.fields, ctx),
|
|
32
|
+
};
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
//# sourceMappingURL=GenerateRandomUnion.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GenerateRandomUnion.js","sourceRoot":"","sources":["../../../../src/internal/generation/GenerateRandomUnion.ts"],"names":[],"mappings":"AAAA,GAAG;AACH,mCAAmC;AACnC,GAAG;AACH,oEAAoE;AACpE,qEAAqE;AACrE,4CAA4C;AAC5C,GAAG;AACH,gDAAgD;AAChD,GAAG;AACH,wEAAwE;AACxE,sEAAsE;AACtE,6EAA6E;AAC7E,wEAAwE;AACxE,mCAAmC;AACnC,GAAG;AAIH,OAAO,EAAE,oBAAoB,EAAE,MAAM,gDAAgD,CAAC;AAEtF,MAAM,UAAU,mBAAmB,CAC/B,cAAmB,EACnB,iBAA0B,EAC1B,kBAA8C,EAC9C,GAAoB;IAEpB,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACrB,MAAM,wBAAwB,GAAG,MAAM,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC7G,MAAM,WAAW,GAAG,GAAG,CAAC,eAAe,CAAC,kBAAkB,CAAC,wBAAwB,CAAC,MAAM,CAAC,CAAC;QAC5F,MAAM,CAAC,QAAQ,EAAE,SAAS,CAAC,GAAG,wBAAwB,CAAC,WAAW,CAAC,CAAC;QACpE,OAAO;YACH,CAAC,QAAQ,CAAC,EAAE,oBAAoB,CAAC,IAAI,EAAE,KAAK,EAAE,SAAS,CAAC,MAAM,EAAE,GAAG,CAAC;SACvE,CAAC;IACN,CAAC;SAAM,CAAC;QACJ,MAAM,aAAa,GAAwB,cAAc,CAAC;QAC1D,MAAM,CAAC,QAAQ,EAAE,mBAAmB,CAAC,GAAG,MAAM,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC;QACzE,MAAM,eAAe,GAAG,kBAAkB,CAAC,QAAQ,CAAC,CAAC;QACrD,OAAO;YACH,CAAC,QAAQ,CAAC,EAAE,oBAAoB,CAAC,mBAAmB,EAAE,IAAI,EAAE,eAAe,CAAC,MAAM,EAAE,GAAG,CAAC;SAC3F,CAAC;IACN,CAAC;AACL,CAAC"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { TType } from '../types/TType';
|
|
2
|
+
import { TTypeDeclaration } from '../types/TTypeDeclaration';
|
|
3
|
+
import { GenerateContext } from '../../internal/generation/GenerateContext';
|
|
4
|
+
export declare function generateRandomValueOfType(blueprintValue: any, useBlueprintValue: boolean, thisType: TType, nullable: boolean, typeParameters: TTypeDeclaration[], ctx: GenerateContext): any;
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
//|
|
|
2
|
+
//| Copyright The Telepact Authors
|
|
3
|
+
//|
|
|
4
|
+
//| Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
//| you may not use this file except in compliance with the License.
|
|
6
|
+
//| You may obtain a copy of the License at
|
|
7
|
+
//|
|
|
8
|
+
//| https://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
//|
|
|
10
|
+
//| Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
//| distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
//| WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
//| See the License for the specific language governing permissions and
|
|
14
|
+
//| limitations under the License.
|
|
15
|
+
//|
|
|
16
|
+
export function generateRandomValueOfType(blueprintValue, useBlueprintValue, thisType, nullable, typeParameters, ctx) {
|
|
17
|
+
if (nullable && !useBlueprintValue && ctx.randomGenerator.nextBoolean()) {
|
|
18
|
+
return null;
|
|
19
|
+
}
|
|
20
|
+
else {
|
|
21
|
+
return thisType.generateRandomValue(blueprintValue, useBlueprintValue, typeParameters, ctx);
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
//# sourceMappingURL=GenerateRandomValueOfType.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GenerateRandomValueOfType.js","sourceRoot":"","sources":["../../../../src/internal/generation/GenerateRandomValueOfType.ts"],"names":[],"mappings":"AAAA,GAAG;AACH,mCAAmC;AACnC,GAAG;AACH,oEAAoE;AACpE,qEAAqE;AACrE,4CAA4C;AAC5C,GAAG;AACH,gDAAgD;AAChD,GAAG;AACH,wEAAwE;AACxE,sEAAsE;AACtE,6EAA6E;AAC7E,wEAAwE;AACxE,mCAAmC;AACnC,GAAG;AAMH,MAAM,UAAU,yBAAyB,CACrC,cAAmB,EACnB,iBAA0B,EAC1B,QAAe,EACf,QAAiB,EACjB,cAAkC,EAClC,GAAoB;IAEpB,IAAI,QAAQ,IAAI,CAAC,iBAAiB,IAAI,GAAG,CAAC,eAAe,CAAC,WAAW,EAAE,EAAE,CAAC;QACtE,OAAO,IAAI,CAAC;IAChB,CAAC;SAAM,CAAC;QACJ,OAAO,QAAQ,CAAC,mBAAmB,CAAC,cAAc,EAAE,iBAAiB,EAAE,cAAc,EAAE,GAAG,CAAC,CAAC;IAChG,CAAC;AACL,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function isSubMap(part: Record<string, any>, whole: Record<string, any>): boolean;
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
//|
|
|
2
|
+
//| Copyright The Telepact Authors
|
|
3
|
+
//|
|
|
4
|
+
//| Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
//| you may not use this file except in compliance with the License.
|
|
6
|
+
//| You may obtain a copy of the License at
|
|
7
|
+
//|
|
|
8
|
+
//| https://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
//|
|
|
10
|
+
//| Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
//| distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
//| WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
//| See the License for the specific language governing permissions and
|
|
14
|
+
//| limitations under the License.
|
|
15
|
+
//|
|
|
16
|
+
import { isSubMapEntryEqual } from '../../internal/mock/IsSubMapEntryEqual';
|
|
17
|
+
export function isSubMap(part, whole) {
|
|
18
|
+
for (const partKey in part) {
|
|
19
|
+
const wholeValue = whole[partKey];
|
|
20
|
+
const partValue = part[partKey];
|
|
21
|
+
const entryIsEqual = isSubMapEntryEqual(partValue, wholeValue);
|
|
22
|
+
if (!entryIsEqual) {
|
|
23
|
+
return false;
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
return true;
|
|
27
|
+
}
|
|
28
|
+
//# sourceMappingURL=IsSubMap.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"IsSubMap.js","sourceRoot":"","sources":["../../../../src/internal/mock/IsSubMap.ts"],"names":[],"mappings":"AAAA,GAAG;AACH,mCAAmC;AACnC,GAAG;AACH,oEAAoE;AACpE,qEAAqE;AACrE,4CAA4C;AAC5C,GAAG;AACH,gDAAgD;AAChD,GAAG;AACH,wEAAwE;AACxE,sEAAsE;AACtE,6EAA6E;AAC7E,wEAAwE;AACxE,mCAAmC;AACnC,GAAG;AAEH,OAAO,EAAE,kBAAkB,EAAE,MAAM,wCAAwC,CAAC;AAE5E,MAAM,UAAU,QAAQ,CAAC,IAAyB,EAAE,KAA0B;IAC1E,KAAK,MAAM,OAAO,IAAI,IAAI,EAAE,CAAC;QACzB,MAAM,UAAU,GAAG,KAAK,CAAC,OAAO,CAAwB,CAAC;QACzD,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAwB,CAAC;QACvD,MAAM,YAAY,GAAG,kBAAkB,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;QAC/D,IAAI,CAAC,YAAY,EAAE,CAAC;YAChB,OAAO,KAAK,CAAC;QACjB,CAAC;IACL,CAAC;IACD,OAAO,IAAI,CAAC;AAChB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function isSubMapEntryEqual(partValue: any, wholeValue: any): boolean;
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
//|
|
|
2
|
+
//| Copyright The Telepact Authors
|
|
3
|
+
//|
|
|
4
|
+
//| Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
//| you may not use this file except in compliance with the License.
|
|
6
|
+
//| You may obtain a copy of the License at
|
|
7
|
+
//|
|
|
8
|
+
//| https://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
//|
|
|
10
|
+
//| Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
//| distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
//| WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
//| See the License for the specific language governing permissions and
|
|
14
|
+
//| limitations under the License.
|
|
15
|
+
//|
|
|
16
|
+
import { isSubMap } from '../../internal/mock/IsSubMap';
|
|
17
|
+
import { partiallyMatches } from '../../internal/mock/PartiallyMatches';
|
|
18
|
+
import { objectsAreEqual } from '../ObjectsAreEqual';
|
|
19
|
+
export function isSubMapEntryEqual(partValue, wholeValue) {
|
|
20
|
+
if (Array.isArray(partValue) && Array.isArray(wholeValue)) {
|
|
21
|
+
for (let i = 0; i < partValue.length; i += 1) {
|
|
22
|
+
const partElement = partValue[i];
|
|
23
|
+
const partMatches = partiallyMatches(wholeValue, partElement);
|
|
24
|
+
if (!partMatches) {
|
|
25
|
+
return false;
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
return true;
|
|
29
|
+
}
|
|
30
|
+
else if (typeof partValue === 'object' && typeof wholeValue === 'object') {
|
|
31
|
+
return isSubMap(partValue, wholeValue);
|
|
32
|
+
}
|
|
33
|
+
else {
|
|
34
|
+
return objectsAreEqual(partValue, wholeValue);
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
//# sourceMappingURL=IsSubMapEntryEqual.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"IsSubMapEntryEqual.js","sourceRoot":"","sources":["../../../../src/internal/mock/IsSubMapEntryEqual.ts"],"names":[],"mappings":"AAAA,GAAG;AACH,mCAAmC;AACnC,GAAG;AACH,oEAAoE;AACpE,qEAAqE;AACrE,4CAA4C;AAC5C,GAAG;AACH,gDAAgD;AAChD,GAAG;AACH,wEAAwE;AACxE,sEAAsE;AACtE,6EAA6E;AAC7E,wEAAwE;AACxE,mCAAmC;AACnC,GAAG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,8BAA8B,CAAC;AACxD,OAAO,EAAE,gBAAgB,EAAE,MAAM,sCAAsC,CAAC;AACxE,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAErD,MAAM,UAAU,kBAAkB,CAAC,SAAc,EAAE,UAAe;IAC9D,IAAI,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC;QACxD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;YAC3C,MAAM,WAAW,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;YACjC,MAAM,WAAW,GAAG,gBAAgB,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC;YAC9D,IAAI,CAAC,WAAW,EAAE,CAAC;gBACf,OAAO,KAAK,CAAC;YACjB,CAAC;QACL,CAAC;QAED,OAAO,IAAI,CAAC;IAChB,CAAC;SAAM,IAAI,OAAO,SAAS,KAAK,QAAQ,IAAI,OAAO,UAAU,KAAK,QAAQ,EAAE,CAAC;QACzE,OAAO,QAAQ,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;IAC3C,CAAC;SAAM,CAAC;QACJ,OAAO,eAAe,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;IAClD,CAAC;AACL,CAAC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { Message } from '../../Message';
|
|
2
|
+
import { MockInvocation } from '../../internal/mock/MockInvocation';
|
|
3
|
+
import { MockStub } from '../../internal/mock/MockStub';
|
|
4
|
+
import { RandomGenerator } from '../../RandomGenerator';
|
|
5
|
+
import { TelepactSchema } from '../../TelepactSchema';
|
|
6
|
+
export declare function mockHandle(requestMessage: Message, stubs: MockStub[], invocations: MockInvocation[], random: RandomGenerator, telepactSchema: TelepactSchema, enableGeneratedDefaultStub: boolean, enableOptionalFieldGeneration: boolean, randomizeOptionalFieldGeneration: boolean): Promise<Message>;
|
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
//|
|
|
2
|
+
//| Copyright The Telepact Authors
|
|
3
|
+
//|
|
|
4
|
+
//| Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
//| you may not use this file except in compliance with the License.
|
|
6
|
+
//| You may obtain a copy of the License at
|
|
7
|
+
//|
|
|
8
|
+
//| https://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
//|
|
|
10
|
+
//| Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
//| distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
//| WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
//| See the License for the specific language governing permissions and
|
|
14
|
+
//| limitations under the License.
|
|
15
|
+
//|
|
|
16
|
+
import { Message } from '../../Message';
|
|
17
|
+
import { MockInvocation } from '../../internal/mock/MockInvocation';
|
|
18
|
+
import { MockStub } from '../../internal/mock/MockStub';
|
|
19
|
+
import { isSubMap } from '../../internal/mock/IsSubMap';
|
|
20
|
+
import { verify } from '../../internal/mock/Verify';
|
|
21
|
+
import { verifyNoMoreInteractions } from '../../internal/mock/VerifyNoMoreInteractions';
|
|
22
|
+
import { TelepactError } from '../../TelepactError';
|
|
23
|
+
import { objectsAreEqual } from '../../internal/ObjectsAreEqual';
|
|
24
|
+
import { GenerateContext } from '../generation/GenerateContext';
|
|
25
|
+
export async function mockHandle(requestMessage, stubs, invocations, random, telepactSchema, enableGeneratedDefaultStub, enableOptionalFieldGeneration, randomizeOptionalFieldGeneration) {
|
|
26
|
+
const header = requestMessage.headers;
|
|
27
|
+
const enableGenerationStub = header['@gen_'] || false;
|
|
28
|
+
const functionName = requestMessage.getBodyTarget();
|
|
29
|
+
const argument = requestMessage.getBodyPayload();
|
|
30
|
+
if (functionName === 'fn.createStub_') {
|
|
31
|
+
const givenStub = argument.stub;
|
|
32
|
+
const stubCall = Object.entries(givenStub).find(([key]) => key.startsWith('fn.'));
|
|
33
|
+
const [stubFunctionName, stubArg] = stubCall;
|
|
34
|
+
const stubResult = givenStub['->'];
|
|
35
|
+
const allowArgumentPartialMatch = !argument['strictMatch!'] || false;
|
|
36
|
+
const stubCount = argument['count!'] || -1;
|
|
37
|
+
const stub = new MockStub(stubFunctionName, stubArg, stubResult, allowArgumentPartialMatch, stubCount);
|
|
38
|
+
stubs.unshift(stub);
|
|
39
|
+
return new Message({}, { Ok_: {} });
|
|
40
|
+
}
|
|
41
|
+
else if (functionName === 'fn.verify_') {
|
|
42
|
+
const givenCall = argument.call;
|
|
43
|
+
const call = Object.entries(givenCall).find(([key]) => key.startsWith('fn.'));
|
|
44
|
+
const [callFunctionName, callArg] = call;
|
|
45
|
+
const verifyTimes = argument['count!'] || { AtLeast: { times: 1 } };
|
|
46
|
+
const strictMatch = argument['strictMatch!'] || false;
|
|
47
|
+
const verificationResult = verify(callFunctionName, callArg, strictMatch, verifyTimes, invocations);
|
|
48
|
+
return new Message({}, verificationResult);
|
|
49
|
+
}
|
|
50
|
+
else if (functionName === 'fn.verifyNoMoreInteractions_') {
|
|
51
|
+
const verificationResult = verifyNoMoreInteractions(invocations);
|
|
52
|
+
return new Message({}, verificationResult);
|
|
53
|
+
}
|
|
54
|
+
else if (functionName === 'fn.clearCalls_') {
|
|
55
|
+
invocations.length = 0;
|
|
56
|
+
return new Message({}, { Ok_: {} });
|
|
57
|
+
}
|
|
58
|
+
else if (functionName === 'fn.clearStubs_') {
|
|
59
|
+
stubs.length = 0;
|
|
60
|
+
return new Message({}, { Ok_: {} });
|
|
61
|
+
}
|
|
62
|
+
else if (functionName === 'fn.setRandomSeed_') {
|
|
63
|
+
const givenSeed = argument.seed;
|
|
64
|
+
random.setSeed(givenSeed);
|
|
65
|
+
return new Message({}, { Ok_: {} });
|
|
66
|
+
}
|
|
67
|
+
else {
|
|
68
|
+
invocations.push(new MockInvocation(functionName, argument));
|
|
69
|
+
const definition = telepactSchema.parsed[functionName + '.->'];
|
|
70
|
+
for (const stub of stubs) {
|
|
71
|
+
if (stub.count === 0) {
|
|
72
|
+
continue;
|
|
73
|
+
}
|
|
74
|
+
if (stub.whenFunction === functionName) {
|
|
75
|
+
if (stub.allowArgumentPartialMatch) {
|
|
76
|
+
if (isSubMap(stub.whenArgument, argument)) {
|
|
77
|
+
const useBlueprintValue = true;
|
|
78
|
+
const includeOptionalFields = false;
|
|
79
|
+
const alwaysIncludeRequiredFields = true;
|
|
80
|
+
const resultInit = definition.generateRandomValue(stub.thenResult, useBlueprintValue, [], new GenerateContext(includeOptionalFields, randomizeOptionalFieldGeneration, alwaysIncludeRequiredFields, functionName, random));
|
|
81
|
+
const result = resultInit;
|
|
82
|
+
if (stub.count > 0) {
|
|
83
|
+
stub.count -= 1;
|
|
84
|
+
}
|
|
85
|
+
return new Message({}, result);
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
else {
|
|
89
|
+
if (objectsAreEqual(stub.whenArgument, argument)) {
|
|
90
|
+
const useBlueprintValue = true;
|
|
91
|
+
const includeOptionalFields = false;
|
|
92
|
+
const alwaysIncludeRequiredFields = true;
|
|
93
|
+
const resultInit = definition.generateRandomValue(stub.thenResult, useBlueprintValue, [], new GenerateContext(includeOptionalFields, randomizeOptionalFieldGeneration, alwaysIncludeRequiredFields, functionName, random));
|
|
94
|
+
const result = resultInit;
|
|
95
|
+
if (stub.count > 0) {
|
|
96
|
+
stub.count -= 1;
|
|
97
|
+
}
|
|
98
|
+
return new Message({}, result);
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
if (!enableGeneratedDefaultStub && !enableGenerationStub) {
|
|
104
|
+
return new Message({}, { ErrorNoMatchingStub_: {} });
|
|
105
|
+
}
|
|
106
|
+
if (definition) {
|
|
107
|
+
const resultUnion = definition;
|
|
108
|
+
const okStructRef = resultUnion.tags['Ok_'];
|
|
109
|
+
const useBlueprintValue = true;
|
|
110
|
+
const includeOptionalFields = true;
|
|
111
|
+
const alwaysIncludeRequiredFields = true;
|
|
112
|
+
const randomOkStructInit = okStructRef.generateRandomValue({}, useBlueprintValue, [], new GenerateContext(includeOptionalFields, randomizeOptionalFieldGeneration, alwaysIncludeRequiredFields, functionName, random));
|
|
113
|
+
const randomOkStruct = randomOkStructInit;
|
|
114
|
+
return new Message({}, { Ok_: randomOkStruct });
|
|
115
|
+
}
|
|
116
|
+
else {
|
|
117
|
+
throw new TelepactError(`Unexpected unknown function: ${functionName}`);
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
//# sourceMappingURL=MockHandle.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MockHandle.js","sourceRoot":"","sources":["../../../../src/internal/mock/MockHandle.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
//|
|
|
2
|
+
//| Copyright The Telepact Authors
|
|
3
|
+
//|
|
|
4
|
+
//| Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
//| you may not use this file except in compliance with the License.
|
|
6
|
+
//| You may obtain a copy of the License at
|
|
7
|
+
//|
|
|
8
|
+
//| https://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
//|
|
|
10
|
+
//| Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
//| distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
//| WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
//| See the License for the specific language governing permissions and
|
|
14
|
+
//| limitations under the License.
|
|
15
|
+
//|
|
|
16
|
+
export class MockInvocation {
|
|
17
|
+
functionName;
|
|
18
|
+
functionArgument;
|
|
19
|
+
verified;
|
|
20
|
+
constructor(functionName, functionArgument) {
|
|
21
|
+
this.functionName = functionName;
|
|
22
|
+
this.functionArgument = functionArgument;
|
|
23
|
+
this.verified = false;
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
//# sourceMappingURL=MockInvocation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MockInvocation.js","sourceRoot":"","sources":["../../../../src/internal/mock/MockInvocation.ts"],"names":[],"mappings":"AAAA,GAAG;AACH,mCAAmC;AACnC,GAAG;AACH,oEAAoE;AACpE,qEAAqE;AACrE,4CAA4C;AAC5C,GAAG;AACH,gDAAgD;AAChD,GAAG;AACH,wEAAwE;AACxE,sEAAsE;AACtE,6EAA6E;AAC7E,wEAAwE;AACxE,mCAAmC;AACnC,GAAG;AAEH,MAAM,OAAO,cAAc;IACvB,YAAY,CAAS;IACrB,gBAAgB,CAAsB;IACtC,QAAQ,CAAU;IAElB,YAAY,YAAoB,EAAE,gBAAqC;QACnE,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;QACjC,IAAI,CAAC,gBAAgB,GAAG,gBAAgB,CAAC;QACzC,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;IAC1B,CAAC;CACJ"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export declare class MockStub {
|
|
2
|
+
whenFunction: string;
|
|
3
|
+
whenArgument: Record<string, any>;
|
|
4
|
+
thenResult: Record<string, any>;
|
|
5
|
+
allowArgumentPartialMatch: boolean;
|
|
6
|
+
count: number;
|
|
7
|
+
constructor(whenFunction: string, whenArgument: Record<string, any>, thenResult: Record<string, any>, allowArgumentPartialMatch: boolean, count: number);
|
|
8
|
+
}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
//|
|
|
2
|
+
//| Copyright The Telepact Authors
|
|
3
|
+
//|
|
|
4
|
+
//| Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
//| you may not use this file except in compliance with the License.
|
|
6
|
+
//| You may obtain a copy of the License at
|
|
7
|
+
//|
|
|
8
|
+
//| https://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
//|
|
|
10
|
+
//| Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
//| distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
//| WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
//| See the License for the specific language governing permissions and
|
|
14
|
+
//| limitations under the License.
|
|
15
|
+
//|
|
|
16
|
+
export class MockStub {
|
|
17
|
+
whenFunction;
|
|
18
|
+
whenArgument;
|
|
19
|
+
thenResult;
|
|
20
|
+
allowArgumentPartialMatch;
|
|
21
|
+
count;
|
|
22
|
+
constructor(whenFunction, whenArgument, thenResult, allowArgumentPartialMatch, count) {
|
|
23
|
+
this.whenFunction = whenFunction;
|
|
24
|
+
this.whenArgument = whenArgument;
|
|
25
|
+
this.thenResult = thenResult;
|
|
26
|
+
this.allowArgumentPartialMatch = allowArgumentPartialMatch;
|
|
27
|
+
this.count = count;
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
//# sourceMappingURL=MockStub.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MockStub.js","sourceRoot":"","sources":["../../../../src/internal/mock/MockStub.ts"],"names":[],"mappings":"AAAA,GAAG;AACH,mCAAmC;AACnC,GAAG;AACH,oEAAoE;AACpE,qEAAqE;AACrE,4CAA4C;AAC5C,GAAG;AACH,gDAAgD;AAChD,GAAG;AACH,wEAAwE;AACxE,sEAAsE;AACtE,6EAA6E;AAC7E,wEAAwE;AACxE,mCAAmC;AACnC,GAAG;AAEH,MAAM,OAAO,QAAQ;IACV,YAAY,CAAS;IACrB,YAAY,CAAsB;IAClC,UAAU,CAAsB;IAChC,yBAAyB,CAAU;IACnC,KAAK,CAAS;IAErB,YACI,YAAoB,EACpB,YAAiC,EACjC,UAA+B,EAC/B,yBAAkC,EAClC,KAAa;QAEb,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;QACjC,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;QACjC,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,yBAAyB,GAAG,yBAAyB,CAAC;QAC3D,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACvB,CAAC;CACJ"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function partiallyMatches(wholeList: any[], partElement: any): boolean;
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
//|
|
|
2
|
+
//| Copyright The Telepact Authors
|
|
3
|
+
//|
|
|
4
|
+
//| Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
//| you may not use this file except in compliance with the License.
|
|
6
|
+
//| You may obtain a copy of the License at
|
|
7
|
+
//|
|
|
8
|
+
//| https://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
//|
|
|
10
|
+
//| Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
//| distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
//| WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
//| See the License for the specific language governing permissions and
|
|
14
|
+
//| limitations under the License.
|
|
15
|
+
//|
|
|
16
|
+
import { isSubMapEntryEqual } from './IsSubMapEntryEqual';
|
|
17
|
+
export function partiallyMatches(wholeList, partElement) {
|
|
18
|
+
for (const wholeElement of wholeList) {
|
|
19
|
+
if (isSubMapEntryEqual(partElement, wholeElement)) {
|
|
20
|
+
return true;
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
return false;
|
|
24
|
+
}
|
|
25
|
+
//# sourceMappingURL=PartiallyMatches.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PartiallyMatches.js","sourceRoot":"","sources":["../../../../src/internal/mock/PartiallyMatches.ts"],"names":[],"mappings":"AAAA,GAAG;AACH,mCAAmC;AACnC,GAAG;AACH,oEAAoE;AACpE,qEAAqE;AACrE,4CAA4C;AAC5C,GAAG;AACH,gDAAgD;AAChD,GAAG;AACH,wEAAwE;AACxE,sEAAsE;AACtE,6EAA6E;AAC7E,wEAAwE;AACxE,mCAAmC;AACnC,GAAG;AAEH,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAE1D,MAAM,UAAU,gBAAgB,CAAC,SAAgB,EAAE,WAAgB;IAC/D,KAAK,MAAM,YAAY,IAAI,SAAS,EAAE,CAAC;QACnC,IAAI,kBAAkB,CAAC,WAAW,EAAE,YAAY,CAAC,EAAE,CAAC;YAChD,OAAO,IAAI,CAAC;QAChB,CAAC;IACL,CAAC;IACD,OAAO,KAAK,CAAC;AACjB,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { MockInvocation } from './MockInvocation';
|
|
2
|
+
export declare function verify(functionName: string, argument: {
|
|
3
|
+
[key: string]: any;
|
|
4
|
+
}, exactMatch: boolean, verificationTimes: {
|
|
5
|
+
[key: string]: any;
|
|
6
|
+
}, invocations: MockInvocation[]): {
|
|
7
|
+
[key: string]: any;
|
|
8
|
+
};
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
//|
|
|
2
|
+
//| Copyright The Telepact Authors
|
|
3
|
+
//|
|
|
4
|
+
//| Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
//| you may not use this file except in compliance with the License.
|
|
6
|
+
//| You may obtain a copy of the License at
|
|
7
|
+
//|
|
|
8
|
+
//| https://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
//|
|
|
10
|
+
//| Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
//| distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
//| WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
//| See the License for the specific language governing permissions and
|
|
14
|
+
//| limitations under the License.
|
|
15
|
+
//|
|
|
16
|
+
import { objectsAreEqual } from '../ObjectsAreEqual';
|
|
17
|
+
import { isSubMap } from './IsSubMap';
|
|
18
|
+
export function verify(functionName, argument, exactMatch, verificationTimes, invocations) {
|
|
19
|
+
let matchesFound = 0;
|
|
20
|
+
for (const invocation of invocations) {
|
|
21
|
+
if (invocation.functionName === functionName) {
|
|
22
|
+
if (exactMatch) {
|
|
23
|
+
if (objectsAreEqual(invocation.functionArgument, argument)) {
|
|
24
|
+
invocation.verified = true;
|
|
25
|
+
matchesFound += 1;
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
else {
|
|
29
|
+
const isSubMapResult = isSubMap(argument, invocation.functionArgument);
|
|
30
|
+
if (isSubMapResult) {
|
|
31
|
+
invocation.verified = true;
|
|
32
|
+
matchesFound += 1;
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
const allCallsPseudoJson = invocations.map((invocation) => ({
|
|
38
|
+
[invocation.functionName]: invocation.functionArgument,
|
|
39
|
+
}));
|
|
40
|
+
const verifyTimesEntry = Object.entries(verificationTimes)[0];
|
|
41
|
+
const verifyKey = verifyTimesEntry[0];
|
|
42
|
+
const verifyTimesStruct = verifyTimesEntry[1];
|
|
43
|
+
let verificationFailurePseudoJson = null;
|
|
44
|
+
if (verifyKey === 'Exact') {
|
|
45
|
+
const times = verifyTimesStruct.times;
|
|
46
|
+
if (matchesFound > times) {
|
|
47
|
+
verificationFailurePseudoJson = {
|
|
48
|
+
TooManyMatchingCalls: {
|
|
49
|
+
wanted: { Exact: { times } },
|
|
50
|
+
found: matchesFound,
|
|
51
|
+
allCalls: allCallsPseudoJson,
|
|
52
|
+
},
|
|
53
|
+
};
|
|
54
|
+
}
|
|
55
|
+
else if (matchesFound < times) {
|
|
56
|
+
verificationFailurePseudoJson = {
|
|
57
|
+
TooFewMatchingCalls: {
|
|
58
|
+
wanted: { Exact: { times } },
|
|
59
|
+
found: matchesFound,
|
|
60
|
+
allCalls: allCallsPseudoJson,
|
|
61
|
+
},
|
|
62
|
+
};
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
else if (verifyKey === 'AtMost') {
|
|
66
|
+
const times = verifyTimesStruct.times;
|
|
67
|
+
if (matchesFound > times) {
|
|
68
|
+
verificationFailurePseudoJson = {
|
|
69
|
+
TooManyMatchingCalls: {
|
|
70
|
+
wanted: { AtMost: { times } },
|
|
71
|
+
found: matchesFound,
|
|
72
|
+
allCalls: allCallsPseudoJson,
|
|
73
|
+
},
|
|
74
|
+
};
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
else if (verifyKey === 'AtLeast') {
|
|
78
|
+
const times = verifyTimesStruct.times;
|
|
79
|
+
if (matchesFound < times) {
|
|
80
|
+
verificationFailurePseudoJson = {
|
|
81
|
+
TooFewMatchingCalls: {
|
|
82
|
+
wanted: { AtLeast: { times } },
|
|
83
|
+
found: matchesFound,
|
|
84
|
+
allCalls: allCallsPseudoJson,
|
|
85
|
+
},
|
|
86
|
+
};
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
if (verificationFailurePseudoJson === null) {
|
|
90
|
+
return { Ok_: {} };
|
|
91
|
+
}
|
|
92
|
+
return { ErrorVerificationFailure: { reason: verificationFailurePseudoJson } };
|
|
93
|
+
}
|
|
94
|
+
//# sourceMappingURL=Verify.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Verify.js","sourceRoot":"","sources":["../../../../src/internal/mock/Verify.ts"],"names":[],"mappings":"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"}
|