@forumulate/sdk 0.2.0 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -1,114 +1,187 @@
1
1
  # @forumulate/sdk
2
2
 
3
- A typed TypeScript client for the Forumulate REST API. Works in Node 18+ (global
4
- `fetch`) and the browser.
3
+ A typed TypeScript client for the [Forumulate](https://forumulate.com) REST API: docs, forum, blog and everything else in an organization. It has no runtime dependencies and runs in Node 18+, Bun, Deno and the browser (global `fetch`).
5
4
 
6
5
  ## Install
7
6
 
8
- Inside the monorepo it's a workspace package (`@forumulate/sdk`). For an external
9
- app, publish it or copy `src/` — it has zero runtime dependencies.
7
+ ```sh
8
+ npm install @forumulate/sdk
9
+ ```
10
+
11
+ ## Authenticate
10
12
 
11
- ## Usage
13
+ Mint a Personal Access Token at **Account → Tokens** ([forumulate.com/account/tokens](https://forumulate.com/account/tokens)). A token needs `read` to read and `read` + `write` to change anything. [API tokens and scopes](https://forumulate.com/guides/api-tokens-and-scopes) explains the two gates a token passes.
12
14
 
13
15
  ```ts
14
16
  import { ForumulateClient } from '@forumulate/sdk';
15
17
 
16
- const forumulate = new ForumulateClient({
17
- baseUrl: 'https://api.forumulate.example',
18
- token: process.env.FORUMULATE_TOKEN, // a Personal Access Token
19
- });
18
+ // Reads FORUMULATE_TOKEN and FORUMULATE_URL (default https://forumulate.com).
19
+ const forumulate = ForumulateClient.fromEnv();
20
20
 
21
- // Create an org + a public docs space with one published page.
22
- const { organization } = await forumulate.orgs.create({ name: 'Acme', slug: 'acme' });
23
- const { space } = await forumulate.spaces.create(organization.id, {
24
- name: 'Docs', slug: 'docs', type: 'DOCS', visibility: 'PUBLIC',
25
- });
26
- const { collection } = await forumulate.spaces.createCollection(organization.id, space.id, {
27
- name: 'Guides', slug: 'guides',
21
+ // …or explicitly. The API base is the site plus /api.
22
+ const explicit = new ForumulateClient({
23
+ baseUrl: 'https://forumulate.com/api',
24
+ token: process.env.FORUMULATE_TOKEN,
28
25
  });
29
- const { page } = await forumulate.spaces.createPage(organization.id, space.id, collection.id, {
30
- title: 'Intro', slug: 'intro',
31
- });
32
- await forumulate.spaces.setPageContent(organization.id, space.id, page.id, {
33
- title: 'Intro',
34
- content: { type: 'doc', content: [{ type: 'paragraph', content: [{ type: 'text', text: 'Hello!' }] }] },
26
+ ```
27
+
28
+ | Variable | Default | Meaning |
29
+ | -------------------- | ------------------------ | -------------------------------------------------------------------------------- |
30
+ | `FORUMULATE_TOKEN` | none | Personal Access Token, sent as `Authorization: Bearer`. |
31
+ | `FORUMULATE_URL` | `https://forumulate.com` | The site. The API is its `/api`. A value already ending in `/api` is used as-is. |
32
+ | `FORUMULATE_API_URL` | none | Exact API base, for a local API with no `/api` prefix (`http://localhost:4000`). |
33
+
34
+ The [CLI](https://www.npmjs.com/package/@forumulate/cli) and the [MCP server](https://www.npmjs.com/package/@forumulate/mcp) read the same variables.
35
+
36
+ ## Quickstart
37
+
38
+ ```ts
39
+ const { user } = await forumulate.auth.me();
40
+ const { orgs } = await forumulate.orgs.list();
41
+ const orgId = orgs[0]!.id; // ids and slugs are both accepted wherever an org id is
42
+ const { spaces } = await forumulate.spaces.list(orgId);
43
+ console.log(
44
+ user.email,
45
+ spaces.map((s) => `${s.slug} [${s.type}]`),
46
+ );
47
+ ```
48
+
49
+ ## Common tasks
50
+
51
+ ### 1. Write and publish a page from markdown
52
+
53
+ `items` is the type-agnostic surface: the same calls write a docs page, a blog post or a forum topic.
54
+
55
+ ```ts
56
+ const { item } = await forumulate.items.create(orgId, spaceId, {
57
+ title: 'Install',
58
+ slug: 'install',
59
+ body: '# Install\n\nRun `npm i acme`.',
35
60
  });
36
- await forumulate.spaces.publishPage(organization.id, space.id, page.id);
61
+ await forumulate.items.publish(orgId, spaceId, item.id);
37
62
 
38
- // Read it back through the public reader (no auth).
39
- const { hits } = await forumulate.public.search(organization.id, space.id, 'hello');
63
+ // Later: replace the body and republish.
64
+ await forumulate.items.setContent(orgId, spaceId, item.id, { body: '# Install\n\n…' });
65
+ await forumulate.items.publish(orgId, spaceId, item.id);
40
66
  ```
41
67
 
42
- ### Errors
68
+ ### 2. List everything in a space, with content
69
+
70
+ ```ts
71
+ const res = await forumulate.items.list(orgId, spaceId, { limit: 100, include: ['body'] });
72
+ for (const it of res.items) console.log(it.id, it.title, it.contentIn);
73
+ // res.page.nextCursor pages onward; res.sync.checkpoint drives an incremental sync.
74
+ ```
43
75
 
44
- Every non-2xx response throws a `ForumulateError` carrying `status`, `code`, and
45
- `message` from the API's error envelope.
76
+ Ask for `body`. `sections` is filled only for pieces written against a shape, so a space of free-form pages answers `include: ['sections']` alone with empty objects.
77
+
78
+ ### 3. Search
46
79
 
47
80
  ```ts
48
- import { ForumulateError } from '@forumulate/sdk';
49
- try {
50
- await forumulate.orgs.create({ name: '', slug: '' });
51
- } catch (err) {
52
- if (err instanceof ForumulateError && err.code === 'validation.failed') { /* … */ }
53
- }
81
+ // Everything you can see in an org: docs, forum, blog.
82
+ const { hits } = await forumulate.search.unified(orgId, 'rate limits', { limit: 10 });
83
+
84
+ // A public docs space, no token needed.
85
+ const anon = new ForumulateClient({ baseUrl: 'https://forumulate.com/api' });
86
+ const { hits: pub } = await anon.public.search(orgId, spaceId, 'rate limits');
54
87
  ```
55
88
 
56
- ### Session-cookie auth (browser)
89
+ ### 4. Start a forum topic and reply
57
90
 
58
91
  ```ts
59
- const forumulate = new ForumulateClient({ baseUrl: '/api', credentials: true });
92
+ const doc = (text: string) => ({
93
+ type: 'doc' as const,
94
+ content: [{ type: 'paragraph', content: [{ type: 'text', text }] }],
95
+ });
96
+ const { topic } = await forumulate.forum.createTopic(orgId, forumSpaceId, {
97
+ title: 'v2 is out',
98
+ content: doc('Here is what changed.'),
99
+ });
100
+ const topicId = (topic as { id: string }).id;
101
+ await forumulate.forum.reply(orgId, forumSpaceId, topicId, doc('Upgrade notes are in the docs.'));
60
102
  ```
61
103
 
62
- ### Typed coverage of every endpoint — `typed()`
104
+ ### 5. Verify a webhook
63
105
 
64
- The ~30 helpers above are the ergonomic surface. For the **whole** API (every
65
- route in the OpenAPI spec — 600+ of them), use `typed(method, path, init)`. It
66
- reads the machine-generated `paths` interface in `src/schema.ts` and infers the
67
- path params, query params, JSON body and success response for whatever route you
68
- name — with autocomplete on both the path and the method:
106
+ ```ts
107
+ import { verifyWebhookSignature } from '@forumulate/sdk';
108
+
109
+ const ok = await verifyWebhookSignature({
110
+ secret: process.env.FORUMULATE_WEBHOOK_SECRET!,
111
+ body: rawBody, // the exact bytes received, before JSON.parse
112
+ signature: req.headers['x-forumulate-signature'] as string,
113
+ timestamp: req.headers['x-forumulate-timestamp'] as string, // deliveries older than 5 min fail
114
+ });
115
+ ```
116
+
117
+ Create the webhook with `forumulate.webhooks.create(orgId, { url, events })`.
118
+
119
+ ## Every endpoint: `typed()`
120
+
121
+ The helpers above cover the common paths. `typed(method, path, init)` covers every route in the OpenAPI spec, with the path, params, query, body and response all inferred, and autocomplete on path and method:
69
122
 
70
123
  ```ts
71
- // Path param required and checked; response payload is typed from the spec.
72
124
  const { spaces } = await forumulate.typed('get', '/orgs/{orgId}/spaces', {
73
125
  params: { orgId },
74
- query: { deleted: 'false', limit: '50', cursor: '' },
126
+ query: { limit: 50 },
75
127
  });
76
128
 
77
- // POST body shape (including enum unions like `type`) comes from the schema.
78
129
  await forumulate.typed('post', '/orgs/{orgId}/spaces', {
79
130
  params: { orgId },
80
131
  body: { name: 'Docs', slug: 'docs', type: 'DOCS', visibility: 'PUBLIC' },
81
132
  });
82
133
  ```
83
134
 
84
- `{param}` placeholders in the path are filled from `init.params`. Pass
85
- `raw: true` to get the untouched `Response` (e.g. for binary downloads).
135
+ Pass `raw: true` for the untouched `Response` (binary downloads). For anything else, `request(method, path, { body, query, headers })` is the untyped escape hatch that `typed` and the helpers use.
86
136
 
87
- ### Escape hatch
137
+ ## Errors
88
138
 
89
- Any endpoint is also reachable untyped via `request` (what `typed` and the
90
- helpers delegate to):
139
+ Every non-2xx response throws a `ForumulateError` carrying `status`, `code` and `message` from the API's error envelope.
91
140
 
92
141
  ```ts
93
- await forumulate.request('POST', `/orgs/${orgId}/spaces/${spaceId}/pages/${pageId}/publish`, { body: {} });
142
+ import { ForumulateError } from '@forumulate/sdk';
143
+
144
+ try {
145
+ await forumulate.orgs.create({ name: '', slug: '' });
146
+ } catch (err) {
147
+ if (err instanceof ForumulateError && err.code === 'validation.failed') {
148
+ /* … */
149
+ }
150
+ }
151
+ ```
152
+
153
+ A `401` means the token is missing or revoked. A `403` means it lacks a scope or capability; see [API tokens and scopes](https://forumulate.com/guides/api-tokens-and-scopes).
154
+
155
+ ## Options
156
+
157
+ ```ts
158
+ new ForumulateClient({
159
+ baseUrl: 'https://forumulate.com/api',
160
+ token,
161
+ headers: { 'Forumulate-Version': '2026-09-01' }, // pin the API version for this client
162
+ fetch: customFetch, // any fetch-compatible function
163
+ credentials: true, // browser on the same origin: send the session cookie instead of a token
164
+ });
94
165
  ```
95
166
 
96
- ## Regenerating from the OpenAPI spec
167
+ Set a descriptive `User-Agent` when you run outside a browser: the edge firewall challenges default library User-Agents.
97
168
 
98
- `src/schema.ts` is the source of the typed-`typed()` coverage. It is generated,
99
- types-only (no runtime dependency), and large (~30k lines) — do not hand-edit it.
100
- The **complete** machine-readable spec is served by the running API at
101
- `/docs-json`; regenerate `schema.ts` from it whenever the API shape changes:
169
+ ## Links
102
170
 
103
- ```bash
104
- # 1. Dump the spec (boots the app in-memory; no server needed)
105
- pnpm --filter @forumulate/sdk dump-spec # → packages/sdk/openapi.json
171
+ - [API reference](https://forumulate.com/reference): every route, with the OpenAPI document at `https://forumulate.com/api/openapi.json`.
172
+ - [Guides](https://forumulate.com/guides) · [Community](https://forumulate.com/community)
173
+ - [`@forumulate/cli`](https://www.npmjs.com/package/@forumulate/cli): the same API from a terminal or CI.
174
+ - [`@forumulate/mcp`](https://www.npmjs.com/package/@forumulate/mcp): connect Claude, Cursor or VS Code to your organization.
106
175
 
107
- # 2a. Regenerate the path types that back typed()
108
- pnpm --filter @forumulate/sdk generate-schema # → src/schema.ts
109
- # (equivalently: npx openapi-typescript openapi.json -o src/schema.ts)
176
+ ## Maintainers: regenerating the types
110
177
 
111
- # 2b. …or generate a client in another language
112
- npx @openapitools/openapi-generator-cli generate \
113
- -i packages/sdk/openapi.json -g python -o ../forumulate-python
178
+ `src/schema.ts` backs `typed()`. It is generated and types-only; do not hand-edit it. Refresh it from the deployed spec:
179
+
180
+ ```sh
181
+ curl -s https://forumulate.com/api/openapi.json -o packages/sdk/openapi.json
182
+ pnpm --filter @forumulate/sdk generate-schema # → src/schema.ts
114
183
  ```
184
+
185
+ ## License
186
+
187
+ MIT
package/dist/index.d.ts CHANGED
@@ -4,7 +4,7 @@ export type { paths } from './schema';
4
4
  export type { HttpMethod, MethodsOf, OperationOf, TypedRequestInit, TypedResponse } from './typed';
5
5
  import type { paths } from './schema';
6
6
  import type { HttpMethod, TypedRequestInit, TypedResponse } from './typed';
7
- import type { Organization, Space, SpaceType, SpaceVisibility, Collection, Page, BlockDoc, SearchHit, UnifiedHit, Comment, Webhook, WebhookFormat, PublicPage, Conformance, Item, PageInfo, EffectiveShape, ShapeOverride } from './types';
7
+ import type { Organization, Space, SpaceType, SpaceVisibility, Collection, Page, BlockDoc, SearchHit, UnifiedHit, Comment, Webhook, WebhookFormat, PublicPage, Conformance, DomainSetup, DomainSummary, Item, PageInfo, EffectiveShape, ShapeOverride } from './types';
8
8
  /** Thrown for any non-2xx API response. Mirrors the API's error envelope. */
9
9
  export declare class ForumulateError extends Error {
10
10
  readonly status: number;
@@ -12,7 +12,7 @@ export declare class ForumulateError extends Error {
12
12
  constructor(status: number, code: string, message: string);
13
13
  }
14
14
  export interface ForumulateClientOptions {
15
- /** API origin, e.g. `https://api.forumulate.example` or `http://localhost:4000`. */
15
+ /** API base, `https://forumulate.com/api` for the hosted product (see `fromEnv`). */
16
16
  baseUrl: string;
17
17
  /** Personal Access Token for `Authorization: Bearer` auth. */
18
18
  token?: string;
@@ -38,8 +38,11 @@ type Query = Record<string, string | number | boolean | undefined>;
38
38
  * Typed client for the Forumulate REST API.
39
39
  *
40
40
  * ```ts
41
- * const forumulate = new ForumulateClient({ baseUrl: 'http://localhost:4000', token: pat });
42
- * const { organizations } = await forumulate.orgs.list();
41
+ * const forumulate = new ForumulateClient({ baseUrl: 'https://forumulate.com/api', token: pat });
42
+ * const { orgs } = await forumulate.orgs.list();
43
+ *
44
+ * // or, from FORUMULATE_TOKEN / FORUMULATE_URL:
45
+ * const fromEnv = ForumulateClient.fromEnv();
43
46
  * ```
44
47
  */
45
48
  export declare class ForumulateClient {
@@ -49,6 +52,20 @@ export declare class ForumulateClient {
49
52
  private readonly defaultHeaders;
50
53
  private readonly _fetch;
51
54
  constructor(opts: ForumulateClientOptions);
55
+ /**
56
+ * A client configured from the environment, by the same names the CLI and
57
+ * `@forumulate/mcp` read — so one `.env` drives all three:
58
+ *
59
+ * - `FORUMULATE_TOKEN`: the Personal Access Token.
60
+ * - `FORUMULATE_URL`: the site, default `https://forumulate.com`; the API is
61
+ * its `/api` (a value already ending in `/api` is used as-is).
62
+ * - `FORUMULATE_API_URL`: the exact API base, for a local API with no `/api`
63
+ * prefix (`http://localhost:4000`). Wins over `FORUMULATE_URL`.
64
+ *
65
+ * `env` defaults to `process.env` where there is one (Node, Bun, Deno);
66
+ * anything in `opts` overrides what the environment said.
67
+ */
68
+ static fromEnv(env?: Record<string, string | undefined>, opts?: Partial<ForumulateClientOptions>): ForumulateClient;
52
69
  /** Low-level request. Exposed so callers can reach endpoints the typed helpers don't cover yet. */
53
70
  request<T>(method: string, path: string, opts?: {
54
71
  body?: unknown;
@@ -257,11 +274,53 @@ export declare class ForumulateClient {
257
274
  note?: string;
258
275
  conformance: Conformance;
259
276
  }>;
277
+ /**
278
+ * Replace a piece's whole body — as markdown, or as blocks.
279
+ *
280
+ * The create door has always taken markdown and this one took blocks only,
281
+ * so "make it from this file" worked and "update it from the same file" did
282
+ * not. Both now; blocks win if a caller sends both.
283
+ */
284
+ setContent: (orgId: string, spaceId: string, itemId: string, input: {
285
+ body?: string;
286
+ content?: BlockDoc;
287
+ }) => Promise<{
288
+ conformance: Conformance;
289
+ }>;
260
290
  /** Replace one named section. Idempotent — sending it twice writes it once. */
261
291
  setSection: (orgId: string, spaceId: string, itemId: string, key: string, markdown: string) => Promise<{
262
292
  conformance: Conformance;
263
293
  }>;
264
294
  };
295
+ /**
296
+ * The addresses a space answers at.
297
+ *
298
+ * Published because the question a customer asks about a custom domain —
299
+ * "why is it not live yet" — is answerable only from `verified`, `active` and
300
+ * the setup records, and the SDK could not reach any of them (DX-2). A failed
301
+ * verification is a 200 with `verified: false`: read the body, not the status.
302
+ */
303
+ readonly domains: {
304
+ list: (orgId: string, spaceId: string) => Promise<{
305
+ domains: DomainSummary[];
306
+ }>;
307
+ add: (orgId: string, spaceId: string, input: {
308
+ hostname: string;
309
+ basePath?: string;
310
+ }) => Promise<{
311
+ domain: DomainSummary;
312
+ }>;
313
+ /** Re-run the ownership check. `activate: false` proves it without switching traffic. */
314
+ verify: (orgId: string, spaceId: string, domainId: string, activate?: boolean) => Promise<{
315
+ domain: DomainSummary;
316
+ }>;
317
+ /** Switch traffic to an address whose ownership is already proven. */
318
+ activate: (orgId: string, spaceId: string, domainId: string) => Promise<{
319
+ domain: DomainSummary;
320
+ }>;
321
+ /** What to configure, and what is still missing. */
322
+ setup: (orgId: string, spaceId: string, domainId: string) => Promise<DomainSetup>;
323
+ };
265
324
  readonly webhooks: {
266
325
  list: (orgId: string) => Promise<{
267
326
  webhooks: Webhook[];
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AACxB,OAAO,EAAE,sBAAsB,EAAE,KAAK,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAC7E,YAAY,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AACtC,YAAY,EAAE,UAAU,EAAE,SAAS,EAAE,WAAW,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AACnG,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AACtC,OAAO,KAAK,EAAE,UAAU,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAC3E,OAAO,KAAK,EACV,YAAY,EACZ,KAAK,EACL,SAAS,EACT,eAAe,EACf,UAAU,EACV,IAAI,EACJ,QAAQ,EACR,SAAS,EACT,UAAU,EACV,OAAO,EACP,OAAO,EACP,aAAa,EACb,UAAU,EACV,WAAW,EACX,IAAI,EACJ,QAAQ,EACR,cAAc,EACd,aAAa,EACd,MAAM,SAAS,CAAC;AAEjB,6EAA6E;AAC7E,qBAAa,eAAgB,SAAQ,KAAK;IAEtC,QAAQ,CAAC,MAAM,EAAE,MAAM;IACvB,QAAQ,CAAC,IAAI,EAAE,MAAM;gBADZ,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,MAAM,EACrB,OAAO,EAAE,MAAM;CAKlB;AAED,MAAM,WAAW,uBAAuB;IACtC,oFAAoF;IACpF,OAAO,EAAE,MAAM,CAAC;IAChB,8DAA8D;IAC9D,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,0EAA0E;IAC1E,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,0FAA0F;IAC1F,KAAK,CAAC,EAAE,OAAO,KAAK,CAAC;IACrB;;;;;;;;;;OAUG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAClC;AAED,KAAK,KAAK,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS,CAAC,CAAC;AAEnE;;;;;;;GAOG;AACH,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAS;IAChC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAU;IACtC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAyB;IACxD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAe;gBAE1B,IAAI,EAAE,uBAAuB;IAUzC,mGAAmG;IAC7F,OAAO,CAAC,CAAC,EACb,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,MAAM,EACZ,IAAI,GAAE;QAAE,IAAI,CAAC,EAAE,OAAO,CAAC;QAAC,KAAK,CAAC,EAAE,KAAK,CAAC;QAAC,GAAG,CAAC,EAAE,OAAO,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;KAAO,GAC5F,OAAO,CAAC,CAAC,CAAC;IAuCb;;;;;;;;;;;;;;;;;;;;;;;;;;;OA2BG;IACH,KAAK,CAAC,CAAC,SAAS,MAAM,KAAK,EAAE,CAAC,SAAS,MAAM,KAAK,CAAC,CAAC,CAAC,GAAG,UAAU,EAChE,MAAM,EAAE,CAAC,EACT,IAAI,EAAE,CAAC,EACP,IAAI,EAAE,gBAAgB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAClC,OAAO,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAwBxB,OAAO;IAcrB,QAAQ,CAAC,IAAI;0BACO;YAAE,KAAK,EAAE,MAAM,CAAC;YAAC,IAAI,EAAE,MAAM,CAAC;YAAC,QAAQ,EAAE,MAAM,CAAA;SAAE;kBAC5C;gBAAE,EAAE,EAAE,MAAM,CAAC;gBAAC,KAAK,EAAE,MAAM,CAAA;aAAE;;uBAGrC;YAAE,KAAK,EAAE,MAAM,CAAC;YAAC,QAAQ,EAAE,MAAM,CAAA;SAAE;kBAC3B;gBAAE,EAAE,EAAE,MAAM,CAAC;gBAAC,KAAK,EAAE,MAAM,CAAA;aAAE;;;kBAE7B;gBAAE,EAAE,EAAE,MAAM,CAAC;gBAAC,KAAK,EAAE,MAAM,CAAC;gBAAC,IAAI,EAAE,MAAM,CAAA;aAAE;;QAClE,wEAAwE;6BACnD;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,MAAM,CAAC,EAAE,MAAM,EAAE,CAAA;SAAE;mBAChC,MAAM;iBAAO;gBAAE,EAAE,EAAE,MAAM,CAAC;gBAAC,IAAI,EAAE,MAAM,CAAA;aAAE;;MAGjE;IAGF,QAAQ,CAAC,IAAI;;kBACsB,YAAY,EAAE;;wBAC/B;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,IAAI,EAAE,MAAM,CAAA;SAAE;0BACf,YAAY;;MAC3C;IAGF,QAAQ,CAAC,MAAM;sBACC,MAAM;oBAA4B,KAAK,EAAE;;wBAE9C,MAAM,SACN;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,IAAI,EAAE,MAAM,CAAC;YAAC,IAAI,EAAE,SAAS,CAAC;YAAC,UAAU,EAAE,eAAe,CAAA;SAAE;mBAC1D,KAAK;;kCACN,MAAM,WAAW,MAAM,SAAS;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,IAAI,EAAE,MAAM,CAAA;SAAE;wBAC3D,UAAU;;4BAM9B,MAAM,WACJ,MAAM,gBACD,MAAM,SACb;YAAE,KAAK,EAAE,MAAM,CAAC;YAAC,IAAI,EAAE,MAAM,CAAA;SAAE;kBAEjB,IAAI;;gCAMlB,MAAM,WACJ,MAAM,UACP,MAAM,SACP;YAAE,KAAK,EAAE,MAAM,CAAC;YAAC,OAAO,EAAE,QAAQ,CAAA;SAAE;kBAEtB,IAAI;;6BAKN,MAAM,WAAW,MAAM,UAAU,MAAM;kBACrC,IAAI;;MAK3B;IAEF;;;;;;;;OAQG;IACH,QAAQ,CAAC,MAAM;qBACA,MAAM,WAAW,MAAM;mBAEzB,cAAc;kBACf,cAAc;qBACX;gBAAE,IAAI,EAAE,MAAM,CAAC;gBAAC,KAAK,EAAE,MAAM,CAAC;gBAAC,WAAW,EAAE,MAAM,CAAA;aAAE,EAAE;wBACnD,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;;qBAE1B,MAAM,WAAW,MAAM,SAAS,aAAa;mBAClC,cAAc;;6BAGjB,MAAM,WAAW,MAAM,QAAQ,MAAM;mBAClC,cAAc;;MAOtC;IAEF,QAAQ,CAAC,KAAK;wBAEH,MAAM,WACJ,MAAM,SACR;YACL,KAAK,EAAE,MAAM,CAAC;YACd,IAAI,CAAC,EAAE,MAAM,CAAC;YACd,gEAAgE;YAChE,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;YACvB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;YAClC,IAAI,CAAC,EAAE,MAAM,CAAC;YACd,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;SAClC;kBAEoB,IAAI;;QAG3B;;;;;;;;;;;;WAYG;sBAEM,MAAM,WACJ,MAAM,SAEX,MAAM,GACN;YACE,KAAK,CAAC,EAAE,MAAM,CAAC;YACf,OAAO,CAAC,EAAE,CAAC,UAAU,GAAG,MAAM,CAAC,EAAE,CAAC;YAClC,MAAM,CAAC,EAAE,MAAM,CAAC;YAChB,0EAA0E;YAC1E,YAAY,CAAC,EAAE,MAAM,CAAC;YACtB,cAAc,CAAC,EAAE,OAAO,CAAC;YACzB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;SACnB;mBAWwB,IAAI,EAAE;mBAAS,QAAQ;mBAAS;gBAAE,UAAU,EAAE,MAAM,CAAA;aAAE;;qBAMxE,MAAM,WAAW,MAAM,UAAU,MAAM;kBAC7B,IAAI,GAAG;gBAAE,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;aAAE;;QAIlE;;;;;;;;;WASG;yBACc,MAAM,WAAW,MAAM,UAAU,MAAM;uBAC5B,OAAO;mBAAS,MAAM;yBAAe,WAAW;;QAK5E,+EAA+E;4BAC3D,MAAM,WAAW,MAAM,UAAU,MAAM,OAAO,MAAM,YAAY,MAAM;yBAC5D,WAAW;;MAKzC;IAGF,QAAQ,CAAC,QAAQ;sBACD,MAAM;sBACO,OAAO,EAAE;;wBACpB,MAAM,SAAS;YAAE,GAAG,EAAE,MAAM,CAAC;YAAC,MAAM,EAAE,MAAM,EAAE,CAAC;YAAC,MAAM,CAAC,EAAE,aAAa,CAAA;SAAE;qBAC9D,OAAO;;MACjC;IAGF,QAAQ,CAAC,SAAS;sBACF,MAAM,WAAW,MAAM;uBACT,OAAO,EAAE;;wBACrB,MAAM,WAAW,MAAM,SAAS,MAAM;sBAC3B,OAAO;;yBAGjB,MAAM,WAAW,MAAM,MAAM,MAAM;sBACzB,MAAM;qBAAW,MAAM;;MAKlD;IAGF,QAAQ,CAAC,KAAK;4BAEH,MAAM,WACJ,MAAM,UACR;YAAE,IAAI,CAAC,EAAE,MAAM,CAAC;YAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;YAAC,IAAI,CAAC,EAAE,MAAM,CAAA;SAAE;oBAEnC,OAAO,EAAE;sBAAY,OAAO;;6BAM5C,MAAM,WACJ,MAAM,SACR;YACL,KAAK,EAAE,MAAM,CAAC;YACd,OAAO,EAAE,QAAQ,CAAC;YAClB,IAAI,CAAC,EAAE,MAAM,CAAC;YACd,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;YAChB,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;SAC5B;mBAEqB,OAAO;;uBAGhB,MAAM,WAAW,MAAM,WAAW,MAAM,WAAW,QAAQ;kBACnD,OAAO;;MAK9B;IAGF,QAAQ,CAAC,MAAM;yBACI,MAAM,KAAK,MAAM,SAAQ;YAAE,IAAI,CAAC,EAAE,MAAM,CAAC;YAAC,KAAK,CAAC,EAAE,MAAM,CAAA;SAAE;kBACpD,UAAU,EAAE;;MAGnC;IACF,QAAQ,CAAC,SAAS;2BACG,MAAM,SAAS,MAAM;MAIxC;IAGF,QAAQ,CAAC,MAAM;yBACI,MAAM,WAAW,MAAM,UAAU,MAAM;wBAExC,MAAM,WAAW,MAAM,SAAS,MAAM;kBAC/B,SAAS,EAAE;;8BAGZ,MAAM,WAAW,MAAM,UAAU,MAAM;sBAClC,OAAO,EAAE;;6BAK3B,MAAM,WACJ,MAAM,UACP,MAAM,SACP;YAAE,UAAU,EAAE,MAAM,CAAC;YAAC,IAAI,EAAE,MAAM,CAAC;YAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;SAAE;qBAE7C,OAAO;;gCAKT,MAAM,WAAW,MAAM,aAAa,MAAM,SAAS,MAAM;qBACvD,OAAO;;QAKjC,yGAAyG;qBAC5F,MAAM,WAAW,MAAM;MAEpC;CACH"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -34,8 +34,11 @@ exports.ForumulateError = ForumulateError;
34
34
  * Typed client for the Forumulate REST API.
35
35
  *
36
36
  * ```ts
37
- * const forumulate = new ForumulateClient({ baseUrl: 'http://localhost:4000', token: pat });
38
- * const { organizations } = await forumulate.orgs.list();
37
+ * const forumulate = new ForumulateClient({ baseUrl: 'https://forumulate.com/api', token: pat });
38
+ * const { orgs } = await forumulate.orgs.list();
39
+ *
40
+ * // or, from FORUMULATE_TOKEN / FORUMULATE_URL:
41
+ * const fromEnv = ForumulateClient.fromEnv();
39
42
  * ```
40
43
  */
41
44
  class ForumulateClient {
@@ -54,6 +57,32 @@ class ForumulateClient {
54
57
  throw new Error('No fetch implementation available — pass one via options.fetch.');
55
58
  this._fetch = f;
56
59
  }
60
+ /**
61
+ * A client configured from the environment, by the same names the CLI and
62
+ * `@forumulate/mcp` read — so one `.env` drives all three:
63
+ *
64
+ * - `FORUMULATE_TOKEN`: the Personal Access Token.
65
+ * - `FORUMULATE_URL`: the site, default `https://forumulate.com`; the API is
66
+ * its `/api` (a value already ending in `/api` is used as-is).
67
+ * - `FORUMULATE_API_URL`: the exact API base, for a local API with no `/api`
68
+ * prefix (`http://localhost:4000`). Wins over `FORUMULATE_URL`.
69
+ *
70
+ * `env` defaults to `process.env` where there is one (Node, Bun, Deno);
71
+ * anything in `opts` overrides what the environment said.
72
+ */
73
+ static fromEnv(env, opts = {}) {
74
+ const source = env ??
75
+ globalThis.process?.env ??
76
+ {};
77
+ const read = (k) => source[k]?.trim().replace(/\/+$/, '') || undefined;
78
+ const site = read('FORUMULATE_URL') ?? 'https://forumulate.com';
79
+ const baseUrl = read('FORUMULATE_API_URL') ?? (/\/api$/i.test(site) ? site : `${site}/api`);
80
+ return new ForumulateClient({
81
+ baseUrl,
82
+ token: source.FORUMULATE_TOKEN?.trim() || undefined,
83
+ ...opts,
84
+ });
85
+ }
57
86
  /** Low-level request. Exposed so callers can reach endpoints the typed helpers don't cover yet. */
58
87
  async request(method, path, opts = {}) {
59
88
  const url = new URL(this.baseUrl + path);
@@ -244,9 +273,37 @@ class ForumulateClient {
244
273
  * promise (E-11).
245
274
  */
246
275
  publish: (orgId, spaceId, itemId) => this.request('POST', `/orgs/${orgId}/spaces/${spaceId}/items/${itemId}/publish`, { body: {} }),
276
+ /**
277
+ * Replace a piece's whole body — as markdown, or as blocks.
278
+ *
279
+ * The create door has always taken markdown and this one took blocks only,
280
+ * so "make it from this file" worked and "update it from the same file" did
281
+ * not. Both now; blocks win if a caller sends both.
282
+ */
283
+ setContent: (orgId, spaceId, itemId, input) => this.request('PUT', `/orgs/${orgId}/spaces/${spaceId}/items/${itemId}/content`, { body: input }),
247
284
  /** Replace one named section. Idempotent — sending it twice writes it once. */
248
285
  setSection: (orgId, spaceId, itemId, key, markdown) => this.request('PUT', `/orgs/${orgId}/spaces/${spaceId}/items/${itemId}/sections/${key}`, { body: { markdown } }),
249
286
  };
287
+ /**
288
+ * The addresses a space answers at.
289
+ *
290
+ * Published because the question a customer asks about a custom domain —
291
+ * "why is it not live yet" — is answerable only from `verified`, `active` and
292
+ * the setup records, and the SDK could not reach any of them (DX-2). A failed
293
+ * verification is a 200 with `verified: false`: read the body, not the status.
294
+ */
295
+ domains = {
296
+ list: (orgId, spaceId) => this.request('GET', `/orgs/${orgId}/spaces/${spaceId}/domains`),
297
+ add: (orgId, spaceId, input) => this.request('POST', `/orgs/${orgId}/spaces/${spaceId}/domains`, {
298
+ body: input,
299
+ }),
300
+ /** Re-run the ownership check. `activate: false` proves it without switching traffic. */
301
+ verify: (orgId, spaceId, domainId, activate = true) => this.request('POST', `/orgs/${orgId}/spaces/${spaceId}/domains/${domainId}/verify`, { body: { activate } }),
302
+ /** Switch traffic to an address whose ownership is already proven. */
303
+ activate: (orgId, spaceId, domainId) => this.request('POST', `/orgs/${orgId}/spaces/${spaceId}/domains/${domainId}/activate`, { body: {} }),
304
+ /** What to configure, and what is still missing. */
305
+ setup: (orgId, spaceId, domainId) => this.request('GET', `/orgs/${orgId}/spaces/${spaceId}/domains/${domainId}/setup`),
306
+ };
250
307
  // ── Webhooks ───────────────────────────────────────────────────────────────
251
308
  webhooks = {
252
309
  list: (orgId) => this.request('GET', `/orgs/${orgId}/webhooks`),
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}