Publish the SDK under the Gnosys Labs npm organization

Hop-State: A_06FPAHQDE2YC3AQWGQGNQN0
Hop-Proposal: R_06FPAHP3Q77W9A2D641H4SR
Hop-Task: T_06FPAH33SHXWSFZ2V45R2Z8
Hop-Attempt: AT_06FPAH33SGNKEM8JTS1KX70
This commit is contained in:
2026-07-15 03:16:14 -07:00
committed by Hop
parent baa9212262
commit 73a3279d5c
7 changed files with 13 additions and 13 deletions
+5 -5
View File
@@ -1,14 +1,14 @@
# `@stuffbox/sdk` # `@gnosyslabs/stuffbox-sdk`
The official TypeScript SDK for connecting applications to Stuffbox, a user-owned media library. The package includes a framework-neutral client, shared API types, PKCE helpers, typed errors, and optional React upload helpers. The official TypeScript SDK for connecting applications to Stuffbox, a user-owned media library. The package includes a framework-neutral client, shared API types, PKCE helpers, typed errors, and optional React upload helpers.
## Install ## Install
```sh ```sh
npm install @stuffbox/sdk npm install @gnosyslabs/stuffbox-sdk
``` ```
The core entry point has no runtime dependencies. If you use `@stuffbox/sdk/react`, install React 18.2 or React 19 in your application. The core entry point has no runtime dependencies. If you use `@gnosyslabs/stuffbox-sdk/react`, install React 18.2 or React 19 in your application.
## Connect a user ## Connect a user
@@ -19,7 +19,7 @@ import {
StuffboxClient, StuffboxClient,
createPkcePair, createPkcePair,
generateState, generateState,
} from "@stuffbox/sdk"; } from "@gnosyslabs/stuffbox-sdk";
const stuffbox = new StuffboxClient({ baseUrl: "https://stuffbox.xyz" }); const stuffbox = new StuffboxClient({ baseUrl: "https://stuffbox.xyz" });
const pkce = await createPkcePair(); const pkce = await createPkcePair();
@@ -85,7 +85,7 @@ Request only the permissions your feature uses: `assets:read`, `assets:write`, a
The optional React entry point exports `useStuffboxUpload`, `uploadFile`, and their types: The optional React entry point exports `useStuffboxUpload`, `uploadFile`, and their types:
```tsx ```tsx
import { useStuffboxUpload, type UploadTransport } from "@stuffbox/sdk/react"; import { useStuffboxUpload, type UploadTransport } from "@gnosyslabs/stuffbox-sdk/react";
const transport: UploadTransport = { const transport: UploadTransport = {
async createUpload(input, options) { async createUpload(input, options) {
+2 -2
View File
@@ -1,5 +1,5 @@
# Third-Party Notices # Third-Party Notices
`@stuffbox/sdk` does not bundle third-party source code. `@gnosyslabs/stuffbox-sdk` does not bundle third-party source code.
React is an optional peer dependency of the `@stuffbox/sdk/react` entry point and is distributed separately under its own license. Dependency licenses and notices remain with their respective packages. React is an optional peer dependency of the `@gnosyslabs/stuffbox-sdk/react` entry point and is distributed separately under its own license. Dependency licenses and notices remain with their respective packages.
+1 -1
View File
@@ -1,6 +1,6 @@
# Integration examples # Integration examples
- [`server-connection.ts`](server-connection.ts) shows PKCE connection, authorization-code exchange, and gallery pagination on an application server. - [`server-connection.ts`](server-connection.ts) shows PKCE connection, authorization-code exchange, and gallery pagination on an application server.
- [`react-upload.tsx`](react-upload.tsx) shows a native-feeling upload control using `@stuffbox/sdk/react` and app-owned same-origin endpoints. - [`react-upload.tsx`](react-upload.tsx) shows a native-feeling upload control using `@gnosyslabs/stuffbox-sdk/react` and app-owned same-origin endpoints.
The same-origin endpoints in the React example are intentional. Keep Stuffbox access and refresh tokens on your server; return only the short-lived upload session or completed asset to browser code. The same-origin endpoints in the React example are intentional. Keep Stuffbox access and refresh tokens on your server; return only the short-lived upload session or completed asset to browser code.
+1 -1
View File
@@ -2,7 +2,7 @@ import type { ChangeEvent } from "react";
import { import {
useStuffboxUpload, useStuffboxUpload,
type UploadTransport, type UploadTransport,
} from "@stuffbox/sdk/react"; } from "@gnosyslabs/stuffbox-sdk/react";
async function responseJson<T>(response: Response): Promise<T> { async function responseJson<T>(response: Response): Promise<T> {
if (!response.ok) { if (!response.ok) {
+1 -1
View File
@@ -5,7 +5,7 @@ import {
type Asset, type Asset,
type StuffboxScope, type StuffboxScope,
type TokenSet, type TokenSet,
} from "@stuffbox/sdk"; } from "@gnosyslabs/stuffbox-sdk";
const stuffbox = new StuffboxClient({ baseUrl: "https://stuffbox.xyz" }); const stuffbox = new StuffboxClient({ baseUrl: "https://stuffbox.xyz" });
+1 -1
View File
@@ -1,5 +1,5 @@
{ {
"name": "@stuffbox/sdk", "name": "@gnosyslabs/stuffbox-sdk",
"version": "0.1.0", "version": "0.1.0",
"description": "Official Stuffbox SDK with framework-neutral APIs and optional React upload helpers", "description": "Official Stuffbox SDK with framework-neutral APIs and optional React upload helpers",
"packageManager": "pnpm@10.30.3", "packageManager": "pnpm@10.30.3",
+2 -2
View File
@@ -7,8 +7,8 @@
"noEmit": true, "noEmit": true,
"rootDir": ".", "rootDir": ".",
"paths": { "paths": {
"@stuffbox/sdk": ["./src/index.ts"], "@gnosyslabs/stuffbox-sdk": ["./src/index.ts"],
"@stuffbox/sdk/react": ["./src/react/index.ts"] "@gnosyslabs/stuffbox-sdk/react": ["./src/react/index.ts"]
} }
}, },
"include": ["src/**/*.ts", "examples/**/*.ts", "examples/**/*.tsx"] "include": ["src/**/*.ts", "examples/**/*.ts", "examples/**/*.tsx"]