Skip to content

Latest commit

 

History

History
490 lines (372 loc) · 38 KB

CHANGELOG.md

File metadata and controls

490 lines (372 loc) · 38 KB

Smithy Typescript Codegen Changelog

0.25.0 (2024-11-18)

Features

  • Upgraded smithyVersion to 1.52.0 (#1434)
  • Added default accepts=application/cbor header for Smithy RPC v2 CBOR protocol (#1427)
  • Added | undefined for optional type properties to support exactOptionalPropertyTypes (#1448)

Bug Fixes

  • Added uuid types import when adding uuid import (#1428)

0.24.0 (2024-09-30)

Features

  • Use spread operator for Command endpoint params only when necessary (#1396)
  • Improve IDE type navigation assistance for command classes (#1373)

Bug Fixes

  • Allow empty string field values for headers (#1412)

0.23.0 (2024-09-09)

Features

  • codegen: Added Smithy RPCv2 CBOR protocol generator (#1280)

  • codegen: Added support for string array parameters in endpoints (#1376)

  • codegen: Added support for operation context params in endpoints (#1379)

Bug Fixes

  • Added logic to resolve the service specific endpoint once per client instance instead of for each request (#1382)

  • Fixed a bug that prevented a concrete client type (e.g., S3Client) to be converted to a NodeJsClient (#1389)

Documentation

0.22.0 (2024-08-06)

Features

  • codegen: Enabled the new identity and auth behavior by default and add a legacy auth mode (#1352)

  • codegen: Added logic to skip the application of the CustomEndpoints plugin for models using Endpoints-2.0 (#1337)

  • codegen: Added automatic default idempotency tokens in headers for requests when a token is not explicitly provided (#1327)

  • codegen: Added a set of built-in integration plugins to code-generator (#1321)

Bug Fixes

  • codegen: Fixed inconsistent ordering issue when writing client params during code-generation (#1355)

  • codegen: Fixed incorrect usage of string templates when generating commands (#1354)

  • codegen: Fixed serialization of :event-type in event-streams where the member target-id was being used instead of the member name (#1349)

  • codegen: Fixed issue where content-type was being set when input body was empty (#1304)

0.21.1 (2024-06-05)

Features

  • Added logging for CredentialsProviderError (#1290)

Bug Fixes

  • Fixed issues with serializing millisecond precision timestamps for certain formats (#1289, #1295)
  • Fixed issue where export was used instead of the clearer export type (#1284)

0.21.0 (2024-05-22)

Breaking Changes

  • Update Engines to Node.js 16, Node.js 14 is not officialy supported anymore (#1258)

Features

  • Bumped TypeScript to ~5.2.x in smithy JS packages (#1275)
  • @smithy/fetch-http-handler, @smithy/node-http-handler: Improveed stream collection performance (#1272)
  • Improved support for fetch and web-streams in Node.js (#1256)
  • @smithy/node-http-handler, "@smithy/util-stream: Handle web streams in streamCollector and sdkStreamMixin
  • Added service client doc generator only when typedoc is selected (#1253)

Bug Fixes

  • @smithy/types: Fixed type transforms account for no-args operation methods (#1262)
  • Check dependencies when adding imports (#1239)
  • Fixed typo in HttpResponse docs (#958)
  • Fixed URI escape path (#1224) (#1226)

0.20.1 (2024-04-05)

Features

  • Updated SigV4 with its own header formatter to avoid import of entire eventstream-codec package (#1233)
  • Updated Smithy Version to 1.47.0 (#1225)

Bug Fixes

  • Fix middleware-endpoint to check for s3 arn parts (#1227)

0.20.0 (2024-03-21)

Features

  • codegen: Identity and Auth, support for the @auth Smithy trait. See https://smithy.io/2.0/spec/authentication-traits.html#auth-trait.
  • codegen: Support request compression (#1129)
  • codegen: Allow commands to be constructed without arg if all arg fields optional (#1206)
  • codegen: Generate unified error dispatcher (#1150)
  • codegen: Generate Commands using Command classBuilder (#1118)
  • codegen: Paginator factory (#1115)
  • codegen: Generate paginators using a factory (#1114)
  • codegen: XML serde reduction (#1108)
  • codegen: Add requestBuilder, generate requests using a builder pattern (#1107)
  • codegen-docs: Add deprecation message in shape docs (#1209)
  • codegen-docs: Move documentation before release tag and deprecation (#1211)
  • codegen-docs: Move deprecation after description in docs (#1212)
  • codegen-docs: Add more information about BLOB values in structures (#1182)
  • @smithy/types: Assertive client type helper (#1076)
  • @smithy/*: dist-cjs artifacts are now generated as a bundle (#1146)
  • @smithy/util-base64: Encoders now accept strings (#1176)
  • @smithy/node-http-handler: Enable ctor arg passthrough for requestHandler (#1167)
  • @smithy/node-http-handler: Add checked socket exhaustion warning when throughput is slow (#1164)
  • @smithy/node-http-handler: Allow http(s).Agent ctor arg in lieu of instance (#1165)
  • @smithy/node-http-handler: Reduce buffer copies (#867)

Bug Fixes

  • codegen: Empty the contents of the dependencyVersions.properties file when creating it (#1213)
  • codegen: Import _json function at call sites (#1174)
  • codegen: Model bucketing edge case with resource shape (#1123)
  • codegen: Use TopDownIndex::getContainedOperations() for operation iterations (#1109)
  • codegen: Accommodate services with the world Client in their names (#1102)
  • @smithy/middleware-retry: Retry after clock skew correction (#1170)
  • @smithy/middleware-retry: Warn streaming requests are not retryable (#1092)
  • @smithy/core: Handle multi-part token paths in paginator (#1160)
  • @smithy/util-utf8: Use Node.js implementations in react-native (#1070)
  • @smithy/smithy-client: Apply filtering when walking json arrays (#1086)
  • @smithy/util-body-length-browser: Increase performance of body length calculation for larger payloads on browser (#1088)
  • @smithy/middleware-serde: Allow error deserializers to populate error response body (#1180)
  • @smithy/shared-ini-file-loader: Process sso-session names with config prefix separator (#1173)
  • @smithy/shared-ini-file-loader: Process config files for profile names containing prefix separator (#1100)
  • @smithy/shared-ini-file-loader: Allow dot, solidus, percent and colon characters in profile names (#1067)

Documentation

  • Add readme content for signature-v4 (#1087)
  • Sigv4 README.md brackets (#1103)
  • Fix README smithy-build.json examples (#1082)

0.19.0 (2023-11-02)

Features

  • Updated codegen plugins to match idiomatic plugin names(#1057)
  • Added flag for blocking imds v1 fallback behavior (#1059)
  • Upgraded@babel/traverse from 7.21.2 to 7.23.2 (#1041)
  • Upgraded browserify-sign from 4.2.1 to 4.2.2 (#1058)
  • Updated to use migrated util-endpoints (#1044)
  • Re-exported existing endpoint types (#1055)
  • Added util-endpoints package (#1043)
  • Allow TypeScriptIntegration to write prior to the config object literal (#1054)
  • Updated to transform inputs for platform specific type helpers (#1046)
  • Made unionShape deserializer overridable (#1040, #1045)
  • Update to generate enum Record keys when target is enum (#1037)
  • Removed "| string" and "| number" from enum targeted members (#1028)
  • Added -p for mkdir in build-generated-test-packages (#1010)
  • Added logging for buildAndCopyToNodeModules() (#1003)
  • Reorganized models in smithy-typescript-codegen-test (#995)
  • Updated to export empty model index if no model_* files exist (#996)
  • Read service specific endpoints for environment or config (#1014)
  • Updated to populate sso-session and services sections when loading config files (#993)
  • Added export CONFIG_PREFIX_SEPARATOR from loadSharedConfigFiles (#992)
  • Updated to pass configuration file as second parameter to configSelector (#990)
  • Updated to populate subsection using dot separator in section key when parsing INI files (#989)
  • Added support for reading values from main section when parsing INI files (#986)

Bug Fixes

  • Exported RuntimeExtension and Client ExtensionConfiguration interfaces (#1057)
  • Removed TARGET_NAMESPACE from TypeScriptSettings (#1057)
  • Updated Server Codegen to generate without a protocol (#1057)
  • Updated to use partial record for enum keyed types (#1049)
  • Allowed lowercase type names for endpoint parameters (#1050)
  • Added parsing for profile name with invalid '+' character (#1047)
  • Added missing map shape reference (#1038)
  • Adds parsing for profile name with invalid '@' character (#1036)
  • Treat absence of prefix whitespace as section keys when reading ini files (#1029)
  • Added missing dependency of @smithy/shared-ini-file-loader (#1027)
  • Fixed operation index file codegen (#1025)
  • Removed extra $ from HttpApiKeyAuthSigner (#1006)
  • Added await to signer.sign() in httpSigningMiddleware (#1005)
  • Fixed @httpApiKeyAuth scheme property (#1001)
  • Fixed HttpAuthSchemeParameters codegen (#998)
  • Fixed resolveHttpAuthSchemeConfig imports (#997)
  • Updated default keepalive=false for fetch (#1016)

0.18.0 (2023-10-04)

Features

  • Add SSDK codegen test (#825)
  • Add test script when specs are generated (#821)
  • Move vitest config to js (#833)
  • Add PackageContainer interface (#837)
  • Add codegen for improved streaming payload types (#840)
  • Set public release tags on client config interface components (#850)
  • Check for Optional Configuration in client constructor (#859)
  • Add matchSettings() to RuntimeClientPlugins (#856)
  • Add experimentalIdentityAndAuth flag (#857)
  • Add extensions to client runtime config (#852)
  • Use ASCII replacement for character 0xE2 (#866)
  • Add more auth traits to generic client tests (#882)
  • Rename defaultClientConfiguration to defaultExtensionConfiguration (#888)
  • Update codegen to use defaultExtensionConfiguration (#889)
  • Add matchSettings() to TypeScriptIntegration and TypeScriptCodegenPlugin (#901)
  • Add codegen and TS integration points for config (#881)
  • Add generic @httpApiKeyAuth support (#883)
  • Add generic @httpBearerAuth support (#884)
  • Add generic @aws.auth#sigv4 support (#885)
  • Update HttpAuthOption and HttpAuthScheme codegen (#907)
  • Update ExtensionConfigurations to generate for clients only (#911)
  • Add codegen for http component in runtime extension (#913)
  • Add codegen for HttpAuthExtensionConfiguration (#910)
  • Add HttpAuthScheme interfaces for auth scheme resolution (#928)
  • Add service and operation names to HandlerExecutionContext (#934)
  • Add httpSigningMiddleware to authorize and sign requests (#930)
  • Make writeDocs() with Runnable public (#939)
  • Refactor HttpAuthScheme properties to builders (#941)
  • Reorganize http auth module constants (#942)
  • Rename to generateDefaultHttpAuthSchemeProviderFunction() (#946)
  • Add traitId to HttpAuthScheme (#947)
  • Add customizing default httpAuthSchemeProvider and httpAuthSchemeParametersProvider (#943)
  • Add partial support for aws.auth#sigv4a (#950)
  • Update @smithy.rules#endpointRuleSet codegen (#945)
  • Add collect*() methods to dedupe ConfigFields and HttpAuthSchemeParameter (#948)
  • Add httpAuthSchemeMiddleware to select an auth scheme (#929)
  • Add SmithyContextCodeSection to CommandGenerator (#957)
  • Add link for retryModes input enum (#962)
  • Add aliases for httpSigningMiddleware (#970)
  • Update endpoint rules engine tests (#976)
  • Upgrade to Smithy 1.39.0 (#976)

Bug fixes

  • Fix types import (#831)
  • Allow lowercase endpoint param (#923)
  • Generate jsdocs for operations with no documentation (#971)
  • Fix missing release tag on shape members (#854)

0.17.1 (2023-07-07)

Bug fixes

  • Fixed @smithy/protocol-http import in HttpApiKeyAuth spec (#817)

0.17.0 (2023-07-06)

Features

  • Upgraded to Smithy 1.33.0 (#808)
  • Updated enum validator to not remove "internal" tagged members (#807)

Bug fixes

  • Fixed @aws-smithy/server-common version (#806)

0.16.0 (2023-06-30)

Features

  • Updated code generator to use @smithy scoped npm packages (#791, #766)
  • Improved blob payload input and output types (#777)
  • Added packageDocumentation and improved interface inheritance (#770)
  • Updated code generator to use runtime-agnostic util-stream package (#775)

Bug fixes

  • Fixed endpoint parameter name conflict (#772)
  • Stopped trimming collection query param output values (#764)

0.15.0 (2023-05-10)

Features

  • Add Gradle composite build (#761)
  • Improve generated command documentation (#757)
  • Bump SSDK libs version to 1.0.0-alpha.10 (#738)
  • Use aggregated client runtime generator (#736)
  • Add SerdeElision KnowledgeIndex and serde helper function (#735, #759)
  • Shorten internal serde function names (#730)
  • Reduce generated HTTP request header code (#729)
  • Improve documentation truncation (#728)
  • Export enum as const to reduce generated code (#726)
  • Add structural hint to commmand examples (#723)
  • Skip generating unused sensitive filter functions (#722)
  • Add DefaultReadmeGenerator (#721)
  • Add TSDocs release tags (#719)
  • Add thrown exceptions to generated command documentation (#715)
  • Remove internal enum values from validation message (#713)
  • Omit aggregated client from paginators (#712)
  • Add NodeJS runtime support to SSDK (#703)
  • Remove reflected values from validation message (#695)
  • Add AddClientRuntimeConfig for generic clients (#693)

Bug Fixes

  • Fix creating empty model files when chunking (#714)

0.14.0 (2023-02-09)

Features

  • Upgrade TypeScript lib to use es2018 for SSDK libs (#678)
  • Bump SSDK libs version to 1.0.0-alpha.8 (#689)
  • Add a code generator setting to generate @required members without | undefined. WARNING: Using this mode may lead to backwards incompatible impact for clients when a service removes @required from a member. (#566, #688)

0.13.0 (2023-01-31)

Features

  • Upgrade tsconfig.es.json target to ES2020 (#603)
  • Upgrade to Java 17 (#621)
  • Upgrade to node >= 14.0.0 (#623, #625, #628)
  • Upgrade to Smithy 1.27.2 (#682)
  • Add mavenCentral as plugin repository (#629)
  • Add intEnum generation with validation and tests (#605, #654)
  • Use util-base64 instead of platform-based dependencies (#627, #631)
  • Use util-base8 instead of platform-based dependencies (#672, #677)
  • Add util-retry dependency (#650)
  • Replace Hash with Checksum (#668)
  • Allow deferred resolution for api key config (#588)
  • Stream improvement serde (#593)
  • Support delegation of determining errors for an operation (#598)
  • Reduce object copying in iterators (#638)
  • Refactor writeAdditionalFiles and writeAdditionalExports logic into integration.customize() (#607)
  • Expose static endpoint param instructions provider (#590)
  • Add unit tests for endpoints v2 generator (#674)
  • Use util-utf8 on server and tests ()
  • Bump ssdk lib version to 1.0.0-alpha.7(#675)
  • Clients parse datetime offsets (#681)

Bug Fixes

  • Call parseErrorBody when parsing error structures (#597)
  • Fix broken reference to fail() after jest-upgrade (#645)
  • Validate required input query params (#647, #646)
  • Include x-amz-request-id in request id deser (#606)
  • Add idempotencyToken generation if member is queryParam (#655)
  • Fix Error printout for protocol-response tests (#657)
  • Fix codegen for windows platforms (#661)
  • Fix consistency with type aliases (#670, #671)
  • Fix misc endpoints 2.0 bugs (#592, #600, #614, #615, #616, #617, #618, #619, #622, #626, #634, #644, #652, #658)

0.12.0 (2022-09-19)

Features

  • Migrated the code generator to use Smithy's new and recommended DirectedCodegen. (#585)
  • Added support for endpoints v2. (#586)
  • Updated Smithy version to 1.25.x which bring Smithy IDL v2 support. (#589)
  • Updated SSDK library version to 1.0.0-alpha6. (#583)
  • Added different package description for client v/s server. (#582)
  • Overrode typescript version for typedoc. (#561)
  • Removed namespaces that only contain log filters. (#574)
  • Added support for event stream for RPC protocols. (#573)
  • Added fallback to status code for unmodeled errors. (#565)
  • Added support for generating protocol specific event payload. (#554)
  • Used Record type instead of Object. (#556, #557, #558, #562)
  • Removed explicit reference to MetadataBearer from error shapes. (#545)
  • Added codegen indicator comment to generated files. (#538)
  • Added check to stop pagination on same token. (#534)

Bug Fixes

  • Fixed code generation for server protocol tests. (#577)
  • Fixed missing Content-Type header in some events. (#567)

0.11.0 (2022-04-04)

Features

  • Removed MetadataBearer from output type. (#530)
  • Updated Smithy version to 1.19.x. (#531)
  • Updated typescript to ~4.6.2. (#527)
  • Set bodyLengthChecker type to BodyLengthCalculator. (#524)

Bug Fixes

  • Added missing export for httpApiKeyAuth middleware. (#528)

0.10.0 (2022-03-02)

Features

  • Bumped SSDK library versions to 1.0.0-alpha5. (#520)
  • Added support for List<String> in function parameters list. (#516)
  • Updated generation of exceptions for easier handling. (#502)
  • Updated clean script to delete *.tsbuildinfo. (#514)

Bug Fixes

  • Fixed scripts for npm by extracting run command out. (#519)
  • Fixed the generation of collections of documents in protocol tests. (#513)

0.9.0 (2022-02-14)

Features

  • Updated Smithy version to 1.17.x. (#505)
  • Added support for @httpApiKeyAuth. (#473)
  • Added a default prepack script to generated packages. (#479)
  • Added TypeScript contextual keywords to the reserved words list. (#500)
  • Changed generated builds to run concurrently. (#498)
  • Added support for defaultsMode. (#495)
  • Updated generated packages to use @tsconfig/recommended. (#493)
  • Removed filterSensitiveLog from exceptions. (#488)
  • Bumped SSDK library versions to 1.0.0-alpha4. (#480)
  • Removed test dependencies and configuration from generated packages. (#483)
  • Updated minimum supported Node version to 12. (#481, #482)
  • Added option to configure package manager, supporting yarn and npm. (#476)
  • Switched pattern validation to re2-wasm to avoid native dependency. (#467)

Bug Fixes

  • Updated protocol tests to check for ErrorName. (#490)
  • Added escaping for regex literals in path segments. (#477)
  • Fix greedy label matching. (#474)

Documentation

  • Updated README example. (#501)

0.8.0 (2021-11-23)

Features

  • Updated Smithy version dependency to be more specific. (#465)
  • Updated Smithy version to 1.14.x. (#468)

Bug Fixes

  • Fixed the generated comment for link to client config. (#466)

0.7.0 (2021-11-03)

Features

  • Updated parsing of timestamps and unions to be stricter. (#412, #414)
  • Reduced published package size. (#427, #443, #446, #444, #452)
  • Added handling for more complex Accept header values. (#431)
  • Moved source files to src folder. (#434, #437, #438)
  • Added ability to ts-ignore a default import. (#445)
  • Updated Smithy version to 1.12.0. (#448)
  • Switched to re2 for pattern validation. (#451)

Bug Fixes

  • Used base64 en/decoder from context in bindings. (#419)
  • Downgraded typescript to ~4.3.5. (#418)
  • Fixed XML protocol test to compare payload with outmost node. (#433)
  • Fixed handling of multi-value query parameters to align with API Gateway behavior. (#449)

0.6.0 (2021-09-02)

Features

  • Updated parsing of request and response payloads for Http binding protocols to be stricter. (#405)
  • Updated number parsing to be stricter based on size. (#397, #404)
  • Added handling for Content-Type and Accept headers in SSDK. (#394)
  • Added a generator for @httpMalformedRequestTests. (#393)
  • Added warning for unsupported Node.js version. (#392)

Bug Fixes

  • Allowed setting prefix path for rpc protocols. (#406)
  • Fixed SSDK codegen for different casing of operation name, by using operation symbol name consistently. (#402)
  • Fixed processing of runtime config for generic clients. (#401)

0.5.0 (2021-07-23)

Features

  • Bumped tslib version to 2.3.0. (#387)
  • Calculate content-length for SSDKs. (#386)

Bug Fixes

  • Update dependency versioning to pull from smithy-aws-typescript-codegen or use latest. (#388)