Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 0 additions & 6 deletions .changeset/v2-sdk.md

This file was deleted.

16 changes: 16 additions & 0 deletions sdk/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,16 @@
# @syncro/sdk Changelog

## 1.2.0

### Minor Changes

- f9d9809: Dual ESM/CJS SDK builds with subpath exports, generated database and contract types, and changeset-driven releases.

### Patch Changes

- Updated dependencies [f9d9809]
- @syncro/shared@1.1.0

All notable changes to the SDK are documented here.

Each release notes the minimum compatible backend version (`synchro`). If your backend is older than the listed minimum, upgrade the backend before upgrading the SDK.
Expand All @@ -11,6 +22,7 @@ Each release notes the minimum compatible backend version (`synchro`). If your b
_Changes staged for the next release._

### Added — #1303 Typed error taxonomy

- `ValidationError` — stable code `SYNCRO_VALIDATION`, retryable: `false`
- `AuthError` — stable code `SYNCRO_AUTH`, retryable: `false` (replaces `AuthenticationError`, `ForbiddenError`)
- `NetworkError` — stable code `SYNCRO_NETWORK`, retryable: `true`
Expand All @@ -21,25 +33,29 @@ _Changes staged for the next release._
- `resolveContractErrorVariant(contractName, code)` — look up a contract error variant name by integer code

### Added — #1299 Public API surface

- `sdk/api-surface.md` committed to the repo, listing every public export
- `sdk/scripts/check-api-surface.cjs` — CI script that fails when a new export is not in the report
- `npm run check:api-surface -w sdk` build step added to `prepublishOnly`
- Semver and deprecation policy documented in `sdk/README.md`
- Experimental API guidance added to README (sub-path `./experimental`)

### Added — #1300 WASM contract bindings in CI

- `generate-contract-bindings.cjs` now stamps a `CONTRACT_BINDINGS_VERSION` constant in every generated file
- `--wasm-dir` flag scans a directory of `.wasm` artifacts and generates bindings from the live ABI
- `--check` flag compares the committed hash to a freshly computed one; CI exits non-zero on mismatch
- Four new CI jobs in `contracts.yml`: `check-bindings-stale`, `regenerate-bindings-from-wasm`, `verify-version-stamp`, `check-api-surface`

### Added — #1304 Soroban sandbox integration suite

- `sdk/tests/integration/soroban-sandbox.test.ts` — 7 flows covering register agent, create subscription on-chain, renew, read events, verify receipt (memo round-trip), failure flow with decoded `ContractError`, and contract signature change detection
- `sdk/scripts/run-integration.sh` — single-command script that starts a Docker sandbox, deploys all contracts, regenerates bindings, and runs the integration suite
- `npm run test:integration -w sdk` documented local command
- `sdk-integration` CI job added to `test.yml` (runs on `run-integration` PR label or `force_full_run` dispatch)

### Deprecated

- `AuthenticationError` — use `AuthError` instead (will be removed in v2.0)
- `ForbiddenError` — use `AuthError` instead (will be removed in v2.0)
- `ConflictError` — use `ValidationError` instead (will be removed in v2.0)
Expand Down
9 changes: 4 additions & 5 deletions sdk/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@syncro/sdk",
"version": "1.1.0",
"version": "1.2.0",
"description": "Official SDK for the SYNCRO Subscription Management Platform",
"packageManager": "npm@10.9.2",
"type": "module",
Expand Down Expand Up @@ -115,12 +115,11 @@
"test:integration": "bash scripts/run-integration.sh",
"test:browser": "jest --config jest.browser.config.js",
"assert:no-node-crypto": "node scripts/assert-no-node-crypto.mjs",
"prepublishOnly": "npm run lint && npm run typecheck && npm run check:api-surface && npm run build",
"prepublishOnly": "node ../scripts/assert-ci-publish.mjs && npm run lint && npm run typecheck && npm run build && npm run check:package",
"check:layout": "node scripts/check-package-layout.mjs",
"check:tree-shake": "node scripts/check-tree-shake.mjs",
"check:size": "node scripts/check-package-size.mjs",
"check:package": "npm run check:layout && npm run check:tree-shake && npm run check:size",
"prepublishOnly": "node ../scripts/assert-ci-publish.mjs && npm run lint && npm run typecheck && npm run build && npm run check:package"
"check:package": "npm run check:layout && npm run check:tree-shake && npm run check:size"
},
"keywords": [
"syncro",
Expand All @@ -130,7 +129,7 @@
"author": "SYNCRO",
"license": "MIT",
"dependencies": {
"@syncro/shared": "1.0.0",
"@syncro/shared": "1.1.0",
"axios": "^1.13.5",
"events": "^3.3.0"
},
Expand Down
7 changes: 7 additions & 0 deletions shared/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
# @syncro/shared

## 1.1.0

### Minor Changes

- f9d9809: Dual ESM/CJS SDK builds with subpath exports, generated database and contract types, and changeset-driven releases.
5 changes: 2 additions & 3 deletions shared/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@syncro/shared",
"version": "1.0.0",
"version": "1.1.0",
"description": "Shared domain models and types for SYNCRO",
"main": "dist/index.js",
"types": "src/index.ts",
Expand Down Expand Up @@ -136,9 +136,8 @@
"build": "tsc",
"typecheck": "tsc --noEmit",
"watch": "tsc --watch",
"test": "jest && jest --config jest.browser.config.js",
"check-imports": "depcruise src --config .dependency-cruiser.cjs",
"test": "jest",
"check-imports": "depcruise src --config .dependency-cruiser.cjs",
"prepublishOnly": "node ../scripts/assert-ci-publish.mjs && npm run build"
},
"keywords": [
Expand Down