Skip to content

Releases

@portable/websockets@0.1.0

Choose a tag to compare

@frolic frolic released this 27 Oct 22:00
ee792b0

Minor Changes

  • 79aba4e - Initial release. WebSockets.connect opens a WebSocket that reconnects, with a readable and a writable stream that stay the same across reconnects, and fromSocket wraps an existing socket in the same two streams. Where the runtime has Symbol.asyncDispose, both work with await using, which closes the socket at the end of the scope. Replaces reconnecting-websocket, partysocket, and websocket-ts.

Patch Changes

  • Updated dependencies [ef22071, f637257, c04a3b9]:
    • @portable/bytes@0.1.0
    • @portable/errors@0.1.0
    • @portable/timers@0.1.0

@portable/webhooks@0.1.0

Choose a tag to compare

@frolic frolic released this 27 Oct 22:00
ee792b0

Minor Changes

  • f790a12 - Initial release. Webhooks.verify and Webhooks.sign check and create webhook signatures with the standard (Standard Webhooks and Svix), stripe, github, and slack schemes, or a scheme you write for another HMAC-SHA256 sender. HMAC-SHA256 uses WebCrypto, and the hmac option takes another implementation. Replaces standardwebhooks, svix's Webhook, Stripe's constructEvent, @octokit/webhooks-methods and @slack/bolt's request verification.

Patch Changes

  • Updated dependencies [6b36d08, ef22071, f637257, c04a3b9, 0a1b9a3]:
    • @portable/base64@0.1.0
    • @portable/bytes@0.1.0
    • @portable/errors@0.1.0
    • @portable/timers@0.1.0
    • @portable/web-crypto@0.1.0

@portable/web-push@0.1.0

Choose a tag to compare

@frolic frolic released this 27 Oct 21:59
ee792b0

Minor Changes

  • 692c201 - Initial release. WebPush.send, toRequest, encrypt, and generateVapidKeys send Web Push messages with aes128gcm encryption (RFC 8291) and VAPID (RFC 8292) on WebCrypto and fetch, and maxPayloadBytes is the largest payload that fits. Replaces web-push.

Patch Changes

  • Updated dependencies [6b36d08, ef22071, f637257, c04a3b9]:
    • @portable/base64@0.1.0
    • @portable/bytes@0.1.0
    • @portable/errors@0.1.0
    • @portable/timers@0.1.0

@portable/web-crypto@0.1.0

Choose a tag to compare

@frolic frolic released this 27 Oct 21:59
ee792b0

Minor Changes

  • 0a1b9a3 - Initial release. These helpers wrap crypto.subtle and take and return Uint8Array: WebCrypto.digest, hmac, and hkdf; importSeed, which imports a 32-byte Ed25519 or X25519 private key with its public key; publicKeyOf; importPem, which imports a PKCS #8, SubjectPublicKeyInfo, or PKCS #1 RSA key from PEM text; and derToRawEcdsa and rawToDerEcdsa, which convert ECDSA signatures between DER and raw r || s. Replaces ecdsa-sig-formatter and hand-written WebCrypto wrappers.

Patch Changes

  • Updated dependencies [ef22071, f637257]:
    • @portable/bytes@0.1.0
    • @portable/errors@0.1.0

@portable/timers@0.1.0

Choose a tag to compare

@frolic frolic released this 27 Oct 21:59
ee792b0

Minor Changes

  • c04a3b9 - Initial release. Timers.sleep, retry, and poll take an AbortSignal and leave no timers behind. retry and poll share one delay option: a fixed wait, exponential backoff with full jitter, or a function that can return a server's Retry-After. backoff turns a delay into a function that returns each wait. debounce and throttle match lodash's timing, and each call returns a promise of the result of the invocation it was merged into. The Instant type, which other @portable/* packages accept for now and other times, is a Date, a Temporal.Instant, or a Temporal.ZonedDateTime. Replaces delay, p-retry, async-retry, p-wait-for, lodash.debounce, lodash.throttle, throttle-debounce, and p-debounce.

Patch Changes

  • Updated dependencies [f637257]:
    • @portable/errors@0.1.0

@portable/streams@0.1.0

Choose a tag to compare

@frolic frolic released this 27 Oct 21:59
ee792b0

Minor Changes

  • a09a240 - Initial release. Streams.toBytes, toBlob, toText, toJson, and toArray collect a stream with a maxBytes limit; concat and merge combine streams; tee splits one into any number of branches; limitBytes, map, filter, tap, batch, and transform transform a stream; and fromIterable and toAsyncIterable convert between streams and iterables. abortable makes a hand-written Transformer cancellable with an AbortSignal. @portable/streams/node has toWeb and toWebObjects, which convert a Node Readable to a ReadableStream in Node, Bun, and Deno. Replaces get-stream, concat-stream, bl, stream-to-array, merge2, merge-stream, through2, raw-body's limit handling, and Readable.toWeb from node:stream.

Patch Changes

  • Updated dependencies [ef22071, f637257]:
    • @portable/bytes@0.1.0
    • @portable/errors@0.1.0

@portable/sse@0.1.0

Choose a tag to compare

@frolic frolic released this 27 Oct 21:59
ee792b0

Minor Changes

  • eb9c96b - Initial release. Sse.DecoderStream and decode read a text/event-stream body into events by the WHATWG rules; EncoderStream and encode write events and comments; and connect opens a stream with fetch and reconnects with Last-Event-ID, up to attempts failures in a row. Replaces eventsource-parser, the eventsource polyfill, @microsoft/fetch-event-source, and the event writers in better-sse and hono's streamSSE.

Patch Changes

  • Updated dependencies [ef22071, f637257, a09a240, c04a3b9]:
    • @portable/bytes@0.1.0
    • @portable/errors@0.1.0
    • @portable/streams@0.1.0
    • @portable/timers@0.1.0

@portable/spf@0.1.0

Choose a tag to compare

@frolic frolic released this 27 Oct 21:59
ee792b0

Minor Changes

  • 529fd0b - Initial release. Spf.check evaluates SPF (RFC 7208) for a client IP, MAIL FROM address, and HELO name through any Dns.Resolver, and enforces the RFC's DNS lookup limits. Replaces mailauth's SPF module.

Patch Changes

  • Updated dependencies [1e68c9b, f637257, 3a566ea, a4714cb, c04a3b9]:
    • @portable/dns@0.1.0
    • @portable/errors@0.1.0
    • @portable/idna@0.1.0
    • @portable/ip@0.1.0
    • @portable/timers@0.1.0

@portable/sockets@0.1.0

Choose a tag to compare

@frolic frolic released this 27 Oct 21:59
ee792b0

Minor Changes

  • #27 b2d6cb3 - Initial release. The Sockets.Connect and Sockets.Socket types follow the WinterTC Sockets API, which connect from cloudflare:sockets fits. @portable/sockets/node has connect and create, which open TCP and TLS connections with node:net and node:tls in Node, Bun, and Deno, and startTls() verifies the server certificate and sends SNI. Replaces @arrowood.dev/socket.

Patch Changes

  • Updated dependencies [ef22071, f637257]:
    • @portable/bytes@0.1.0
    • @portable/errors@0.1.0

@portable/smtp@0.1.0

Choose a tag to compare

@frolic frolic released this 27 Oct 21:59
ee792b0

Minor Changes

  • 425cfb9 - Initial release. Smtp.connect and Smtp.send send mail over SMTP or LMTP, with STARTTLS, AUTH, PIPELINING, and per-recipient results. They open the socket with a connect function of type Sockets.Connect, such as connect from cloudflare:sockets or @portable/sockets/node. client.close() ends the session, and where the runtime has Symbol.asyncDispose, await using client = await Smtp.connect(options) closes it at the end of the scope. Replaces nodemailer's SMTP transport and smtp-connection.

Patch Changes

  • Updated dependencies [6b36d08, ef22071, f637257, b2d6cb3]:
    • @portable/base64@0.1.0
    • @portable/bytes@0.1.0
    • @portable/errors@0.1.0
    • @portable/sockets@0.1.0