diff --git a/smithy-typescript-codegen/src/main/java/software/amazon/smithy/typescript/codegen/TypeScriptDependency.java b/smithy-typescript-codegen/src/main/java/software/amazon/smithy/typescript/codegen/TypeScriptDependency.java index 65c04be0793..26f27ea339f 100644 --- a/smithy-typescript-codegen/src/main/java/software/amazon/smithy/typescript/codegen/TypeScriptDependency.java +++ b/smithy-typescript-codegen/src/main/java/software/amazon/smithy/typescript/codegen/TypeScriptDependency.java @@ -79,7 +79,12 @@ public enum TypeScriptDependency implements Dependency { NODE_CONFIG_PROVIDER("dependencies", "@smithy/node-config-provider", false), + /** + * @deprecated use crypto.randomUUID(). + */ + @Deprecated UUID_TYPES("dependencies", "@types/uuid", "^9.0.1", false), + @Deprecated UUID("dependencies", "uuid", "^9.0.1", false), // Conditionally added when httpChecksumRequired trait exists diff --git a/smithy-typescript-codegen/src/main/java/software/amazon/smithy/typescript/codegen/integration/HttpBindingProtocolGenerator.java b/smithy-typescript-codegen/src/main/java/software/amazon/smithy/typescript/codegen/integration/HttpBindingProtocolGenerator.java index d38dff08145..091303a1b77 100644 --- a/smithy-typescript-codegen/src/main/java/software/amazon/smithy/typescript/codegen/integration/HttpBindingProtocolGenerator.java +++ b/smithy-typescript-codegen/src/main/java/software/amazon/smithy/typescript/codegen/integration/HttpBindingProtocolGenerator.java @@ -873,13 +873,8 @@ private void writeRequestQueryParam( Shape target = model.expectShape(binding.getMember().getTarget()); boolean isIdempotencyToken = binding.getMember().hasTrait(IdempotencyTokenTrait.class); - if (isIdempotencyToken) { - writer - .addDependency(TypeScriptDependency.UUID_TYPES) - .addImport("v4", "generateIdempotencyToken", TypeScriptDependency.UUID); - } boolean isRequired = binding.getMember().isRequired(); - String idempotencyComponent = (isIdempotencyToken && !isRequired) ? " ?? generateIdempotencyToken()" : ""; + String idempotencyComponent = (isIdempotencyToken && !isRequired) ? " ?? crypto.randomUUID()" : ""; String memberAssertionComponent = (idempotencyComponent.isEmpty() ? "!" : ""); String queryValue = getInputValue( @@ -1005,11 +1000,6 @@ private void writeNormalHeader(GenerationContext context, HttpBinding binding) { target ); boolean isIdempotencyToken = binding.getMember().hasTrait(IdempotencyTokenTrait.class); - if (isIdempotencyToken) { - context.getWriter() - .addDependency(TypeScriptDependency.UUID_TYPES) - .addImport("v4", "generateIdempotencyToken", TypeScriptDependency.UUID); - } boolean headerAssertion = headerValue.endsWith("!"); String headerBaseValue = (headerAssertion @@ -1022,7 +1012,7 @@ private void writeNormalHeader(GenerationContext context, HttpBinding binding) { String s = headerBuffer.get(headerKey); defaultValue = " || " + s.substring(s.indexOf(": ") + 2, s.length() - 1); } else if (isIdempotencyToken) { - defaultValue = " ?? generateIdempotencyToken()"; + defaultValue = " ?? crypto.randomUUID()"; } String headerValueExpression = headerAssertion && !defaultValue.isEmpty() @@ -1046,7 +1036,7 @@ private void writeNormalHeader(GenerationContext context, HttpBinding binding) { String s = headerBuffer.get(headerKey); constructedHeaderValue += " || " + s.substring(s.indexOf(": ") + 2, s.length() - 1); } else if (isIdempotencyToken) { - constructedHeaderValue += " ?? generateIdempotencyToken()"; + constructedHeaderValue += " ?? crypto.randomUUID()"; } else { constructedHeaderValue = headerValue; } diff --git a/smithy-typescript-codegen/src/main/java/software/amazon/smithy/typescript/codegen/protocols/cbor/CborShapeSerVisitor.java b/smithy-typescript-codegen/src/main/java/software/amazon/smithy/typescript/codegen/protocols/cbor/CborShapeSerVisitor.java index 5cafafbe009..98ad292937f 100644 --- a/smithy-typescript-codegen/src/main/java/software/amazon/smithy/typescript/codegen/protocols/cbor/CborShapeSerVisitor.java +++ b/smithy-typescript-codegen/src/main/java/software/amazon/smithy/typescript/codegen/protocols/cbor/CborShapeSerVisitor.java @@ -127,11 +127,7 @@ protected void serializeStructure(ProtocolGenerator.GenerationContext context, S boolean isUnaryCall = UnaryFunctionCall.check(valueExpression); if (memberShape.hasTrait(IdempotencyTokenTrait.class)) { - writer - .addDependency(TypeScriptDependency.UUID_TYPES) - .addImport("v4", "generateIdempotencyToken", TypeScriptDependency.UUID); - - writer.write("'$L': [true, _ => _ ?? generateIdempotencyToken()],", memberName); + writer.write("'$L': [true, _ => _ ?? crypto.randomUUID()],", memberName); } else { if (valueProvider.equals("_ => _")) { writer.write("'$1L': [],", memberName);