Releases: restatedev/sdk-typescript
1.0.1: ESM, better FaaS Support
This release adds ESM support, as well as a new importable component fetch
(import * as restate from "@restatedev/restate-sdk/fetch"
) which enable usage from FaaS platforms like Cloudflare without having http2 in the import tree. There is also a new lambda
component, but the old way of calling lambdaHandler()
continues to work (but is deprecated).
- Update package-lock.json (f25a587)
- Ensure that we resolve completepromise messages on replay (#391) (7baefdb)
- Update, don't upsert, snapshot version (#390) (af04789)
- Replace the Cloudflare specific APIs with a generic handler (#389) (6420002)
- Use typesVersions workaround to support node10 resolution (#388) (db490de)
- Fix cloudflare worker exported types (#387) (825672f)
- Bump braces from 3.0.2 to 3.0.3 (#377) (92fd192)
- Convert to ESM modules (#386) (5841ebe)
- Add import linter (#385) (6c24f48)
- Update typescript (#384) (d80a1a6)
- Use .js extensions everywhere (#383) (3ef2418)
- Remove erroneous sdk-ingress dir (995483e)
- Use eslint to require import and export type statements (#382) (1308750)
- Use type-aware eslint (#381) (dfb1b82)
- Revert "Use eslint to require import and export type statements (#379)" (#380) (a0381c2)
- Use eslint to require import and export type statements (#379) (d46f4dd)
- Move to vitest (#378) (568d942)
- Run prettier (bf40623)
- Add seperate Lambda component and deprecate lambdaHandler() (#376) (042625a)
- Refactor endpoint/handlers (#374) (514a167)
- Denodeify (#375) (dcb7dba)
- Prepare for a quarantined http2 module (#373) (7f93b65)
Restate 1.0
We're happy to announce that Restate has reached the 1.0 milestone!
Check the Restate 1.0 release for more details.
Workflow API
We have introduced a new API to simplify building workflows, check out the documentation: https://docs.restate.dev/develop/ts/workflows
Shared handlers for Virtual Objects
You can now define shared handlers on virtual objects, check out the documentation: https://docs.restate.dev/develop/ts/overview#virtual-objects
What's Changed
- [api] Add shared handlers by @igalshilman in #344
- Support custom/raw input output serializers by @igalshilman in #345
- [workflow] Various adjustments to the workflow overly impl by @igalshilman in #346
- Extract core common types into restate-sdk-core package by @igalshilman in #347
- [ci] Add restate-core into the GH by @igalshilman in #348
- Add restate-sdk-core to tsconfig by @igalshilman in #349
- Fix ObjectSharedHandler definition by @jackkleeman in #350
- Ensure restate.handler methods return functions by @jackkleeman in #351
- Ensure more restate.handler methods return functions by @jackkleeman in #352
- [context] Add attemptHeaders to ctx.request() by @igalshilman in #354
- Add service discovery and service protocol checks by @tillrohrmann in #357
- WIP workflow v2 by @igalshilman in #355
- [workflow] Support resolving durable promises during recovery by @igalshilman in #358
- [examples] Restructure the examples by @igalshilman in #359
- [clients] Use the new delay ingress format by @igalshilman in #360
- [clients] Add status field for /send by @igalshilman in #361
- Simplify definitions by @igalshilman in #362
- [workflow] Adapt DurablePromise type by @igalshilman in #363
- [client] Implement .result(sendResponse) by @igalshilman in #364
- [clients] A Send is only attachable when an idempotencyKey is used by @igalshilman in #365
- [ingress] Don't set content Type for empty body by @igalshilman in #366
- [workflow] add a context workflowSendClient by @igalshilman in #367
- [logging] Use INFO for lifecycle events by @igalshilman in #368
- Make failure to serialize/deserialize JSON a TerminalError by @igalshilman in #369
- Add basic TSDocs by @igalshilman in #370
- READMEs for 1.0 release by @slinkydeveloper in #372
Full Changelog: v0.9.2...v1.0.0
0.9.2: Fix CombineablePromise
0.9.1: Fix logging related issues
v0.9.0: New DevEx
This release features a completely overhauled development experience. We suggest checking out the new documentation for more details and the new examples.
What's Changed
- Fix lambda context propagation by @slinkydeveloper in #269
- Remove gRPC from the public API by @igalshilman in #270
- Allow type narrowing on the service/object path when redeclared by @mupperton in #272
- Catch send/send delayed failed promises by @igalshilman in #273
- Add a .catch() for the dangling promises by @igalshilman in #274
- Remove the ServiceApi and ObjectApi abstractions by @igalshilman in #275
- Changes in input/output messages by @slinkydeveloper in #279
- Switch to HTTP based error codes by @igalshilman in #281
- Add ingress client by @igalshilman in #282
- Expose the original Request by @igalshilman in #283
- [ingress] Add resolve/reject awakeables by @igalshilman in #284
- [protocol] Use protobuf-es by @igalshilman in #285
- Add context.date by @igalshilman in #288
- Remove the retry policy in sideEffect by @igalshilman in #287
- Update to the latest service-protocol version by @igalshilman in #289
- Make sure to bind the handler function to the handlers object by @igalshilman in #291
- API iteration by @igalshilman in #290
- Fix definition typo by @mupperton in #294
- Return unawaited promises - minor perf improvement by @mupperton in #295
- [endpoint] Return a promise that resolves/reject on listen(). by @igalshilman in #296
- Align side effects by @igalshilman in #297
- Unify send and send-delayed by @igalshilman in #298
- [ingress] SendClient now returns a Promise of an invocationId by @igalshilman in #299
- [ingress] Remove retention header by @igalshilman in #300
- Rename sideEffect to run() by @igalshilman in #301
- [context] Use function overloading for ctx.run() by @igalshilman in #304
- Request identity v1 implementation by @jackkleeman in #303
- [ingress] Support the new delay ingress format by @igalshilman in #305
- [workspaces] Move to workspaces by @igalshilman in #306
- Update restate-sdk tsconfig.json to use the root tsconfig by @igalshilman in #307
- Add RESTATE_LOGGING env variable to control the amount of logging by @igalshilman in #310
- Move ingress into it's own module by @igalshilman in #311
- [ingress] Remove unnecessary dependency by @igalshilman in #312
- [context] Make ctx.key a property instead of a function by @igalshilman in #313
- [protocol] Use the SideEffectMessage from the protocol by @igalshilman in #317
- Augment the protocol ErrorMessage with additional journal context by @igalshilman in #318
- [protocol] Add x-restate-server header by @igalshilman in #319
- Denodeify by @jackkleeman in #321
- [context] Remove the internal marker from the API surface by @igalshilman in #322
- [ingress] Rename restate-sdk-ingress -> restate-sdk-clients by @igalshilman in #323
- [examples] Remove examples by @igalshilman in #324
- [examples] Add back the examples by @igalshilman in #325
- Renamings by @slinkydeveloper in #326
- Fix dev snapshots release process by @slinkydeveloper in #327
- Fix TSDocs and README by @slinkydeveloper in #330
- Fix debug level by @slinkydeveloper in #333
New Contributors
- @mupperton made their first contribution in #272
Full Changelog: v0.8.1...v0.9.0
Release 0.8.1
Release 0.8.0
- DurablePromise#reject and Export TimeoutError (#268) (59dff97)
- Add src/ directory to the restate-sdk package (1a5e235)
- Some feedback about workflow api (#261) (04dd951)
- Use .endpoint() in the examples/ (ac43e6c)
- Remove old API (ffce6ee)
- Introduce new endpoint() API (8b48e49)
- Bump protocol version (dde607a)
- Context interface rework (#257) (d17655b)
- Add new ctx methods (5a69ec6)
- Add a temporary comment about running the workflow example (ad1f1fd)
- Clean up workflows and simplify some names (eb4bd4f)
- Set retention to one week for now (09412fd)
- Restructure external clients and add comments (b67fcac)
- Use ServiceBundle for nicer registration. (877e66d)
- Export workflows in pubic API (a41d78b)
- Temporarily remove methods for message subscription (01ab378)
- Rename client to workflow_client (21d1d01)
- Add license headers to new files (a3ab41a)
- First draft of workflow API (c1aaa6f)
- Add
ctx.stateKeys()
(#256) (9aab80d) - Add
ctx.clearAll()
(#253) (d2494af) - Check protocol version (#250) (a0d271d)
- Some sanity checking for service names. Rejects empty strings and strings containing a slash '/'. (7651249)
- Make service registration extensible. (6cdb3fd)
- Update copyright header for 2024 (c48f9bf)
- Adjust example scripts in package.json to - use less verbose logging by default - avoid respawn, since they don't exit (9bd4a07)
- Structure package.json by nodejs property ordering conventions. (c44372b)
- Upgrade minimum node version and node types (78b1a78)
- Add ability to pass cause to TerminalError (b33a8dd)
- Clean up utility examples in the SDK (e858218)
- Fix .vscode profile files (1a110cb)
- Fix format checking and linting during builds (#241) (e4f6e95)
- Fix bug wrt suspension in CombineablePromise (#247) (9844cad)
- Properly export 'Rand' and 'RestateGrpcChannel' in the public API. (36d9bc3)
- Export CombineablePromise in the public api (#246) (caeefcf)
Client
returnsCombineablePromise
(#237) (33ad948)- Introduce orTimeout(millis) API, to easily combine a CombineablePromise with a sleep to implement timeouts. (#234) (56a00bf)
- Deterministic promise combinators (#231) (309ccc9)
- Remove redundant buf setup action. (9e0be25)
- Properly pass RetrySettings parameter in the functional rpc API. (a747319)
- Introduce ctx.console to provide logging utilities (#233) (63017c8)
- Awakeable identifiers following the new ID scheme (#238) (5245539)
- Update README.md (766a642)
- Add guard for RestateContext.sideEffect await (#227) (66e82fe)
Release 0.7.0
- Service endpoint -> Deployment (#212) (bd64480)
- [WIP] Allow printing stacktrace when invocations finish with an error (#226) (0d4d58a)
- Server API ergonomics (#221) (31e2c9e)
- Minor logging changes (#225) (799761a)
- Remove cause from TerminalError, as it's not supported by the protocol (#224) (68f58bf)
- Fix missing undefined check (#223) (50f1e5e)
- Introduce EndMessage (#216) (a5c8aaf)
- Add failure variant for GetState, PollInputStream and SleepEntryMessage (1785bd4)
- Convert rpc handler responses into a JSON-safe 'any' type (#203) (a687a91)
- Use the new REQUIRES_ACK flag and the EntryAckMessage (#195) (ae50697)
- Use BufferedConnection in the http_connection (a18b44c)
- Add documentation to update buf.lock (c3d84ac)
0.6.0
Release 0.5.2
What's Changed
- fix: readme typo by @transitive-bullshit in #194
- Ship all grpc error codes by @jackkleeman in #200
New Contributors
- @transitive-bullshit made their first contribution in #194
Full Changelog: v0.5.1...v0.5.2