Tags: jakub-k-slys/substack-api
Tags
chore(release): 4.0.0 [skip ci] # [4.0.0](3.2.0...4.0.0) (2026-03-18) * feat!: revert to pre-gateway direct API architecture ([eed9b88](eed9b88)) * feat!: revert to pre-gateway direct API architecture ([#252](#252)) ([8423c75](8423c75)) ### BREAKING CHANGES * removes substack-gateway proxy dependency; all API calls now go directly to Substack endpoints as in v2.2.1. Consumers relying on the gateway-based HTTP client or gateway-specific types must update their integration. * removes substack-gateway proxy dependency; all API calls now go directly to Substack endpoints as in v2.2.1. Consumers relying on the gateway-based HTTP client or gateway-specific types must update their integration.
chore(release): 3.1.0 [skip ci] # [3.1.0](3.0.0...3.1.0) (2026-03-03) ### Bug Fixes * **tests:** update e2e and integration tests for publishNote() API ([44f60c1](44f60c1)) * **tests:** update integration tests to use publishNote() API ([8531fb9](8531fb9)) ### Features * replace NoteBuilder pattern with direct markdown publishNote() ([94c8b31](94c8b31)) * replace NoteBuilder pattern with direct markdown publishNote() ([#238](#238)) ([c3efea8](c3efea8))
chore(release): 3.0.0 [skip ci] # [3.0.0](2.2.1...3.0.0) (2026-03-03) * feat!: proxy all API calls through substack-gateway ([f29c267](f29c267)) ### Bug Fixes * **samples:** align index.ts with updated API ([e17c089](e17c089)) ### BREAKING CHANGES * The client no longer talks directly to Substack. All requests are proxied through substack-gateway (default: https://substack-gateway.vercel.app). SubstackConfig changes: - substackSid and connectSid replaced by a single token field - token must be built as: btoa(JSON.stringify({ substack_sid: '...', connect_sid: '...' })) - publicationUrl is now required (sent as x-publication-url header) - gatewayUrl is optional (defaults to https://substack-gateway.vercel.app) Removed APIs (no gateway equivalent): - profileForId() - commentForId() Other changes: - io-ts runtime validation added for all gateway responses - All tests (unit, integration, e2e) updated for the new config shape - README updated with step-by-step authentication instructions Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
chore(release): 2.2.1 [skip ci] ## [2.2.1](2.2.0...2.2.1) (2026-01-05) ### Bug Fixes * bundle JavaScript and TypeScript declarations into single files ([2bd6369](2bd6369)) * resolve TypeScript path aliases in compiled output ([e263a45](e263a45)) * resolve TypeScript path aliases in compiled output ([#192](#192)) ([3af336e](3af336e))
chore(release): 2.2.0 [skip ci] # [2.2.0](2.1.0...2.2.0) (2026-01-04) ### Bug Fixes * add Content-Type header to HTTP client to fix 401 authentication errors ([febdd32](febdd32)) * update connectivity check endpoint and comment out note examples ([ff12d5f](ff12d5f)) * use substackClient instead of publicationClient in NewNoteService ([e5ac86a](e5ac86a)) ### Features * add NewNoteService to encapsulate note creation logic ([36f477e](36f477e)) * modernize architecture with improved HTTP client, rate limiting, and type safety ([2b35acd](2b35acd)) * modernize architecture with improved HTTP client, rate limiting, and type safety ([#190](#190)) ([627a1e6](627a1e6)) * refactor types to single-type-per-file and add runtime validation ([ffbca33](ffbca33)) * relax codec validation to only validate fields actually used ([d544a28](d544a28))
chore(release): 2.0.0 [skip ci] # [2.0.0](1.4.1...2.0.0) (2025-12-28) * feat(api)!: simplify architecture by removing slug resolution and relaxing validation ([729529f](729529f)) ### Bug Fixes * resolve all linter errors ([7c70739](7c70739)) * update GitHub Actions to use pnpm 10 ([e8f571c](e8f571c)) ### Features * remove unused types and relax API response validation ([#187](#187)) ([619b8e5](619b8e5)) ### BREAKING CHANGES * Removed SlugService, SlugResolver, and CachingSlugService from public exports. The slugResolver parameter has been removed from Profile and OwnProfile constructors. Profile slugs are now always set to the user's handle directly. Removed SubstackSearchResult, SubstackSubscription, SubstackPublicationUser (as SubstackAPIPublicationUser), and PaginatedSubstackNotesResponse type exports. SubstackSubscriptionsResponse now only contains the 'publications' field. Comment domain class no longer includes created_at, author_id, author_name, or parent_post_id fields. API response validation is now minimal - only fields actually used by domain models are validated. Code depending on these removed exports or fields will need to be updated.
chore(release): 1.4.1 [skip ci] ## [1.4.1](1.4.0...1.4.1) (2025-12-28) ### Bug Fixes * add 'restack' as valid post type in validation ([c64124e](c64124e)) * standardize comment field names to match API response ([1bf671b](1bf671b)) * update API compatibility for authentication, profiles, and comments ([#174](#174)) ([a06a25f](a06a25f)) * update substack cookie name from connect.sid to substack.sid ([742a6b7](742a6b7))
chore(release): 1.4.0 [skip ci] # [1.4.0](1.3.0...1.4.0) (2025-08-06) ### Bug Fixes * properly comment out note creation examples in samples ([739cb9f](739cb9f)) ### Features * add newNoteWithLink method with attachment support ([6132dca](6132dca)) * note with link attachment ([#138](#138)) ([0715133](0715133))
PreviousNext