@forumulate/cli 0.3.5 → 0.3.6

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,28 +1,96 @@
1
1
  # @forumulate/cli
2
2
 
3
- Command-line interface for [Forumulate](https://github.com/alphajew420/forumulate) — manage orgs, spaces, docs, and search from your terminal, built on `@forumulate/sdk`.
3
+ The `forumulate` command: manage [Forumulate](https://forumulate.com) organizations, spaces and pages from a terminal or CI, publish a directory of markdown, and check a live site the way readers and crawlers see it. Built on [`@forumulate/sdk`](https://www.npmjs.com/package/@forumulate/sdk).
4
4
 
5
5
  ## Install
6
6
 
7
7
  ```sh
8
8
  npm install -g @forumulate/cli
9
+ # or, without installing:
10
+ npx -y @forumulate/cli help
9
11
  ```
10
12
 
11
- ## Usage
13
+ Node 20 or newer.
12
14
 
13
- ```sh
14
- export FORUMULATE_URL=https://your-forumulate.example.com # default http://localhost:4000
15
- export FORUMULATE_TOKEN=cfo_... # a Personal Access Token
15
+ ## Authenticate
16
+
17
+ Mint a Personal Access Token at **Account → Tokens** ([forumulate.com/account/tokens](https://forumulate.com/account/tokens)). Give it `read` + `write` to publish. [API tokens and scopes](https://forumulate.com/guides/api-tokens-and-scopes) explains the two gates a token passes.
16
18
 
19
+ ```sh
20
+ forumulate login # prompts for the token (not echoed), checks it, stores it
17
21
  forumulate whoami
18
- forumulate orgs
19
- forumulate spaces <orgId>
20
- forumulate search <orgId> how to deploy
21
- forumulate publish <orgId> <spaceId> <pageId>
22
- forumulate snapshot <orgId> <spaceId> "Before the big migration"
23
22
  ```
24
23
 
25
- Add `--json` to any command for raw JSON output, `--version` for the version, and `forumulate help` for the full list.
24
+ The token is stored per API in `~/.config/forumulate/credentials.json`, readable only by you. In CI, set `FORUMULATE_TOKEN` instead; it always wins over a stored token.
25
+
26
+ | Variable | Default | Meaning |
27
+ | -------------------- | ------------------------ | -------------------------------------------------------------------------------- |
28
+ | `FORUMULATE_TOKEN` | stored token | Personal Access Token. |
29
+ | `FORUMULATE_URL` | `https://forumulate.com` | The site. The API is its `/api`. A value already ending in `/api` is used as-is. |
30
+ | `FORUMULATE_API_URL` | none | Exact API base, for a local API with no `/api` prefix (`http://localhost:4000`). |
31
+
32
+ The SDK (`ForumulateClient.fromEnv()`) and the MCP server ([`@forumulate/mcp`](https://www.npmjs.com/package/@forumulate/mcp)) read the same variables, so one environment configures all three.
33
+
34
+ ## Quickstart
35
+
36
+ ```sh
37
+ forumulate orgs # id slug name
38
+ forumulate spaces acme # an org id or its slug
39
+ forumulate items acme <spaceId> # what is in a space, and where its content lives
40
+ ```
41
+
42
+ ## Common tasks
43
+
44
+ **1. Publish a folder of markdown (docs-as-code).** Each `.md` file becomes a page; its slug comes from front matter or the file name. Existing pages with the same slug are updated, new ones are created, and both are published. Pages with no file are reported and left alone.
45
+
46
+ ```sh
47
+ forumulate publish acme <spaceId> ./docs --dry-run # show the plan, write nothing
48
+ forumulate publish acme <spaceId> ./docs
49
+ ```
50
+
51
+ **2. Publish one page by id.**
52
+
53
+ ```sh
54
+ forumulate publish acme <spaceId> <pageId>
55
+ ```
56
+
57
+ **3. Search docs, forum and blog together.**
58
+
59
+ ```sh
60
+ forumulate search acme rate limits
61
+ ```
62
+
63
+ **4. Snapshot a space before a big change.**
64
+
65
+ ```sh
66
+ forumulate snapshot acme <spaceId> "Before the v2 migration"
67
+ ```
68
+
69
+ **5. Check a custom domain.**
70
+
71
+ ```sh
72
+ forumulate domains acme <spaceId> # each domain and its state
73
+ forumulate domains verify acme <spaceId> docs.acme.dev # re-check, and print the DNS still missing
74
+ ```
75
+
76
+ Add `--json` to any command for raw JSON, `--version` for the version, and `forumulate help` for the full list. Every command exits non-zero on failure, so it works in a pipeline.
77
+
78
+ ### In CI
79
+
80
+ ```yaml
81
+ # GitHub Actions
82
+ - run: npx -y @forumulate/cli publish acme ${{ vars.DOCS_SPACE_ID }} ./docs
83
+ env:
84
+ FORUMULATE_TOKEN: ${{ secrets.FORUMULATE_TOKEN }}
85
+ ```
86
+
87
+ ## `forumulate conformance`
88
+
89
+ Runs the Content Sync Protocol suite against a collection endpoint, ours or any other platform's:
90
+
91
+ ```sh
92
+ forumulate conformance https://forumulate.com/api/orgs/acme/spaces/<spaceId>/items
93
+ ```
26
94
 
27
95
  ## `forumulate doctor`
28
96
 
@@ -35,19 +103,29 @@ forumulate doctor https://your-domain.example.com/docs
35
103
  It needs no token, because none of this is private. Each check is something
36
104
  customers have found out about after their readers did:
37
105
 
38
- | Check | What a failure means |
39
- | -------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
40
- | `health` | The health endpoint answered something other than JSON. A plain-text 500 during a deploy reads as a permanent bug, so a careful client stops retrying a few-minute outage. |
41
- | `public-read` | A logged-out reader is redirected to sign-in. Public docs behind a login are invisible to readers and to crawlers — and invisible from inside a signed-in session, which is why this is worth a command. |
42
- | `canonical` | The `rel=canonical` names another host. Search engines credit the canonical host, so a platform URL here hands your authority to the platform. |
43
- | `html-untouched` | Something in the path is rewriting your markup. Cloudflare's Email Obfuscation is the usual one: it injects a decoder script with no CSP nonce, so the script is refused and every address on the page renders as `[email protected]` with a dead link. |
44
- | `cache-headers` | The document is served `no-store` or with no `Cache-Control`, so every reader pays full origin latency and a CDN in front of it does nothing. |
45
- | `robots` / `sitemap` | `robots.txt` disallows the path, or names no sitemap. A `Disallow` here means the page is never indexed, however good it is. Only the `User-agent: *` group counts — a rule aimed at one named crawler is a deliberate choice. |
46
- | `crawler-access` | A crawler gets a different status from a reader. A WAF rule or bot challenge that answers crawlers differently removes the site from search with nothing in any log to say so. |
47
- | `feeds` | No feed beside the page. Readers and aggregators look next to the content, not at an API URL. |
106
+ | Check | What a failure means |
107
+ | -------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
108
+ | `health` | The health endpoint answered something other than JSON. A plain-text 500 during a deploy reads as a permanent bug, so a careful client stops retrying a few-minute outage. On your own domain `/api` is yours, so the platform's mount is asked instead — `<section>/_api/health` for a path-mounted section, `/_api/health` for a domain that is the whole site — and only a mount that does not answer is reported as skipped. |
109
+ | `public-read` | A logged-out reader is redirected to sign-in. Public docs behind a login are invisible to readers and to crawlers — and invisible from inside a signed-in session, which is why this is worth a command. |
110
+ | `canonical` | The `rel=canonical` names another host. Search engines credit the canonical host, so a platform URL here hands your authority to the platform. |
111
+ | `html-untouched` | Something in the path is rewriting your markup. Cloudflare's Email Obfuscation is the usual one: it injects a decoder script with no CSP nonce, so the script is refused and every address on the page renders as `[email protected]` with a dead link. |
112
+ | `cache-headers` | The document is served `no-store` or with no `Cache-Control`, so every reader pays full origin latency and a CDN in front of it does nothing. |
113
+ | `robots` / `sitemap` | `robots.txt` disallows the path, or names no sitemap. A `Disallow` here means the page is never indexed, however good it is. Only the `User-agent: *` group counts — a rule aimed at one named crawler is a deliberate choice. |
114
+ | `crawler-access` | A crawler gets a different status from a reader. A WAF rule or bot challenge that answers crawlers differently removes the site from search with nothing in any log to say so. |
115
+ | `feeds` | No feed beside the page. Readers and aggregators look next to the content, not at an API URL. |
48
116
 
49
117
  Exit code is non-zero when anything failed, so it works in a deploy pipeline.
50
118
  `--json` gives the full report. The checks speak plain HTTP and assume nothing
51
119
  about the server, so pointing it at a staging mount — or at a competitor —
52
120
  produces the same report: a doctor that only passes on its author's deployment
53
121
  is a checklist with extra steps.
122
+
123
+ ## Related
124
+
125
+ - [`@forumulate/sdk`](https://www.npmjs.com/package/@forumulate/sdk): the typed TypeScript client this CLI is built on.
126
+ - [`@forumulate/mcp`](https://www.npmjs.com/package/@forumulate/mcp): connect Claude, Cursor or VS Code to your organization.
127
+ - [API reference](https://forumulate.com/reference) · [Guides](https://forumulate.com/guides) · [Community](https://forumulate.com/community)
128
+
129
+ ## License
130
+
131
+ MIT
@@ -7,14 +7,33 @@
7
7
  * `npm i -g @forumulate/cli` and types `forumulate spaces` has a dev server's
8
8
  * address, a connection refused, and a `--help` that confirms the address is
9
9
  * the intended one. A customer read that and asked which host they were
10
- * supposed to be running (CLI finding, Crossly).
10
+ * supposed to be running (a customer's CLI finding).
11
11
  *
12
- * The hosted API is the default now. `FORUMULATE_URL` still wins, which is how
13
- * a developer points it at `http://localhost:4000` and how anybody points it at
14
- * a different environment, and `login` stores a token per base URL so the two
15
- * do not collide.
12
+ * The hosted API is the default now, and `login` stores a token per base URL so
13
+ * two environments do not collide.
16
14
  */
17
15
  export declare const DEFAULT_API_BASE = "https://forumulate.com/api";
18
- /** The base URL to use: the environment, else the hosted API. */
19
- export declare function apiBaseFromEnv(env?: Record<string, string | undefined>): string;
16
+ type Env = Record<string, string | undefined>;
17
+ /**
18
+ * The base URL to use.
19
+ *
20
+ * `FORUMULATE_URL` names the SITE (`https://forumulate.com`), the same value the
21
+ * SDK's `ForumulateClient.fromEnv()` and `@forumulate/mcp` read, so one `.env`
22
+ * configures all three. The API is its `/api`. This variable used to mean the
23
+ * API base itself, so a value already ending in `/api` is taken as-is rather
24
+ * than doubled — every value that worked before still works.
25
+ *
26
+ * `FORUMULATE_API_URL` is the exact API base, for the one case a site URL
27
+ * cannot express: a local API on its own port with no `/api` prefix
28
+ * (`http://localhost:4000`).
29
+ */
30
+ export declare function apiBaseFromEnv(env?: Env): string;
31
+ /**
32
+ * The site origin `FORUMULATE_URL` names, or undefined when unset.
33
+ *
34
+ * `doctor` appends `/api/health` itself, so it wants the site and not the API
35
+ * base — handed the old-style `…/api` value it probed `/api/api/health`.
36
+ */
37
+ export declare function siteFromEnv(env?: Env): string | undefined;
38
+ export {};
20
39
  //# sourceMappingURL=api-base.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"api-base.d.ts","sourceRoot":"","sources":["../src/api-base.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AACH,eAAO,MAAM,gBAAgB,+BAA+B,CAAC;AAE7D,iEAAiE;AACjE,wBAAgB,cAAc,CAAC,GAAG,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAe,GAAG,MAAM,CAG5F"}
1
+ {"version":3,"file":"api-base.d.ts","sourceRoot":"","sources":["../src/api-base.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,gBAAgB,+BAA+B,CAAC;AAE7D,KAAK,GAAG,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC;AAQ9C;;;;;;;;;;;;GAYG;AACH,wBAAgB,cAAc,CAAC,GAAG,GAAE,GAAiB,GAAG,MAAM,CAM7D;AAED;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,GAAG,GAAE,GAAiB,GAAG,MAAM,GAAG,SAAS,CAEtE"}
package/dist/api-base.js CHANGED
@@ -2,6 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.DEFAULT_API_BASE = void 0;
4
4
  exports.apiBaseFromEnv = apiBaseFromEnv;
5
+ exports.siteFromEnv = siteFromEnv;
5
6
  /**
6
7
  * Where this CLI talks to, when nobody says.
7
8
  *
@@ -11,17 +12,46 @@ exports.apiBaseFromEnv = apiBaseFromEnv;
11
12
  * `npm i -g @forumulate/cli` and types `forumulate spaces` has a dev server's
12
13
  * address, a connection refused, and a `--help` that confirms the address is
13
14
  * the intended one. A customer read that and asked which host they were
14
- * supposed to be running (CLI finding, Crossly).
15
+ * supposed to be running (a customer's CLI finding).
15
16
  *
16
- * The hosted API is the default now. `FORUMULATE_URL` still wins, which is how
17
- * a developer points it at `http://localhost:4000` and how anybody points it at
18
- * a different environment, and `login` stores a token per base URL so the two
19
- * do not collide.
17
+ * The hosted API is the default now, and `login` stores a token per base URL so
18
+ * two environments do not collide.
20
19
  */
21
20
  exports.DEFAULT_API_BASE = 'https://forumulate.com/api';
22
- /** The base URL to use: the environment, else the hosted API. */
21
+ /** A blank variable is an unset one — `FOO= cmd` is how a shell clears it. */
22
+ function stated(env, name) {
23
+ const v = env[name]?.trim();
24
+ return v ? v.replace(/\/+$/, '') : undefined;
25
+ }
26
+ /**
27
+ * The base URL to use.
28
+ *
29
+ * `FORUMULATE_URL` names the SITE (`https://forumulate.com`), the same value the
30
+ * SDK's `ForumulateClient.fromEnv()` and `@forumulate/mcp` read, so one `.env`
31
+ * configures all three. The API is its `/api`. This variable used to mean the
32
+ * API base itself, so a value already ending in `/api` is taken as-is rather
33
+ * than doubled — every value that worked before still works.
34
+ *
35
+ * `FORUMULATE_API_URL` is the exact API base, for the one case a site URL
36
+ * cannot express: a local API on its own port with no `/api` prefix
37
+ * (`http://localhost:4000`).
38
+ */
23
39
  function apiBaseFromEnv(env = process.env) {
24
- const stated = env.FORUMULATE_URL?.trim();
25
- return stated || exports.DEFAULT_API_BASE;
40
+ const direct = stated(env, 'FORUMULATE_API_URL');
41
+ if (direct)
42
+ return direct;
43
+ const site = stated(env, 'FORUMULATE_URL');
44
+ if (!site)
45
+ return exports.DEFAULT_API_BASE;
46
+ return /\/api$/i.test(site) ? site : `${site}/api`;
47
+ }
48
+ /**
49
+ * The site origin `FORUMULATE_URL` names, or undefined when unset.
50
+ *
51
+ * `doctor` appends `/api/health` itself, so it wants the site and not the API
52
+ * base — handed the old-style `…/api` value it probed `/api/api/health`.
53
+ */
54
+ function siteFromEnv(env = process.env) {
55
+ return stated(env, 'FORUMULATE_URL')?.replace(/\/api$/i, '');
26
56
  }
27
57
  //# sourceMappingURL=api-base.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"api-base.js","sourceRoot":"","sources":["../src/api-base.ts"],"names":[],"mappings":";;;AAmBA,wCAGC;AAtBD;;;;;;;;;;;;;;;GAeG;AACU,QAAA,gBAAgB,GAAG,4BAA4B,CAAC;AAE7D,iEAAiE;AACjE,SAAgB,cAAc,CAAC,MAA0C,OAAO,CAAC,GAAG;IAClF,MAAM,MAAM,GAAG,GAAG,CAAC,cAAc,EAAE,IAAI,EAAE,CAAC;IAC1C,OAAO,MAAM,IAAI,wBAAgB,CAAC;AACpC,CAAC"}
1
+ {"version":3,"file":"api-base.js","sourceRoot":"","sources":["../src/api-base.ts"],"names":[],"mappings":";;;AAqCA,wCAMC;AAQD,kCAEC;AArDD;;;;;;;;;;;;;GAaG;AACU,QAAA,gBAAgB,GAAG,4BAA4B,CAAC;AAI7D,8EAA8E;AAC9E,SAAS,MAAM,CAAC,GAAQ,EAAE,IAAY;IACpC,MAAM,CAAC,GAAG,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC;IAC5B,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AAC/C,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,SAAgB,cAAc,CAAC,MAAW,OAAO,CAAC,GAAG;IACnD,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,EAAE,oBAAoB,CAAC,CAAC;IACjD,IAAI,MAAM;QAAE,OAAO,MAAM,CAAC;IAC1B,MAAM,IAAI,GAAG,MAAM,CAAC,GAAG,EAAE,gBAAgB,CAAC,CAAC;IAC3C,IAAI,CAAC,IAAI;QAAE,OAAO,wBAAgB,CAAC;IACnC,OAAO,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,MAAM,CAAC;AACrD,CAAC;AAED;;;;;GAKG;AACH,SAAgB,WAAW,CAAC,MAAW,OAAO,CAAC,GAAG;IAChD,OAAO,MAAM,CAAC,GAAG,EAAE,gBAAgB,CAAC,EAAE,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;AAC/D,CAAC"}
@@ -3,7 +3,7 @@
3
3
  *
4
4
  * The CLI had no `login`: every command needed `FORUMULATE_TOKEN` exported in
5
5
  * the shell, which means the token is in the environment of everything else
6
- * that shell runs, and in the history file of whoever typed it (Crossly DX-2).
6
+ * that shell runs, and in the history file of whoever typed it (a customer DX report).
7
7
  * A file read by this process alone, mode 0600, is the smaller exposure — and
8
8
  * it is what every other CLI a developer already has does.
9
9
  *
package/dist/doctor.d.ts CHANGED
@@ -30,4 +30,17 @@ export interface DoctorReport {
30
30
  warnings: number;
31
31
  }
32
32
  export declare function runDoctor(input: DoctorInput): Promise<DoctorReport>;
33
+ /**
34
+ * The segment a hosted reader's API answers under. Underscore-prefixed on
35
+ * purpose: slugs are `^[a-z0-9]+(?:-[a-z0-9]+)*$`, so no space, collection or
36
+ * page can be called `_api` and this can never shadow somebody's content.
37
+ *
38
+ * A SECOND copy of a string the platform's shared package owns, which is the drift that
39
+ * would make this probe wrong and silent. It is copied rather than imported
40
+ * because this package publishes to npm with one dependency and should not pull
41
+ * the platform's shared bundle onto a customer's machine to learn four
42
+ * characters. `doctor.test.ts` reads the declaration out of
43
+ * `packages/shared/src/space-addressing.ts` and fails if the two ever differ.
44
+ */
45
+ export declare const READER_API_SEGMENT = "_api";
33
46
  //# sourceMappingURL=doctor.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"doctor.d.ts","sourceRoot":"","sources":["../src/doctor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AAE3C;;;;;;;;;;;;;;;GAeG;AACH,MAAM,WAAW,WAAW;IAC1B,yEAAyE;IACzE,GAAG,EAAE,MAAM,CAAC;IACZ,6EAA6E;IAC7E,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,OAAO,KAAK,CAAC;CAC1B;AAED,MAAM,WAAW,YAAY;IAC3B,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,KAAK,EAAE,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;CAClB;AAKD,wBAAsB,SAAS,CAAC,KAAK,EAAE,WAAW,GAAG,OAAO,CAAC,YAAY,CAAC,CA+VzE"}
1
+ {"version":3,"file":"doctor.d.ts","sourceRoot":"","sources":["../src/doctor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AAE3C;;;;;;;;;;;;;;;GAeG;AACH,MAAM,WAAW,WAAW;IAC1B,yEAAyE;IACzE,GAAG,EAAE,MAAM,CAAC;IACZ,6EAA6E;IAC7E,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,OAAO,KAAK,CAAC;CAC1B;AAED,MAAM,WAAW,YAAY;IAC3B,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,KAAK,EAAE,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;CAClB;AAKD,wBAAsB,SAAS,CAAC,KAAK,EAAE,WAAW,GAAG,OAAO,CAAC,YAAY,CAAC,CAiUzE;AAoCD;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,kBAAkB,SAAS,CAAC"}
package/dist/doctor.js CHANGED
@@ -1,5 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.READER_API_SEGMENT = void 0;
3
4
  exports.runDoctor = runDoctor;
4
5
  /** A crawler-ish UA: some CDNs answer bots differently, which is the point. */
5
6
  const CRAWLER_UA = 'Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)';
@@ -45,58 +46,62 @@ async function runDoctor(input) {
45
46
  *
46
47
  * Two things follow. The status has to be read. And on a reader URL the
47
48
  * default probe is the WRONG origin to ask: a customer's host serves their
48
- * docs, not our API, and `/api` there is theirs — so an absent route is a
49
- * skip that says where the real endpoint is, never a pass and never a scary
50
- * failure for something they do not operate. Reachability of the platform is
49
+ * docs, not our API, and `/api` there is theirs — so before giving up we ask
50
+ * the platform's OWN mount on this host (see `mountCandidates`), and only a
51
+ * mount that does not answer is a skip. Reachability of the platform is
51
52
  * already proven by the page fetch below; this check is about the API.
52
53
  */
53
54
  // "Nobody told us": unset, or blank, which are the same thing.
54
55
  const defaultedApiBase = stated === undefined;
55
- const health = await get(`${apiBase}/api/health`, { accept: 'application/json' });
56
- if (!health.ok) {
57
- add('health', 'Health endpoint answers', 'fail', health.error, 'A caller cannot tell an outage from a bug.');
58
- }
59
- else if (health.res.status === 404 && defaultedApiBase) {
60
- /*
61
- * A path-mounted reader has the platform's API under its own mount.
62
- *
63
- * Skipping was right compared with passing a 404, and the customer who
64
- * caught the pass said so — then asked the obvious next question: their
65
- * section answers at `<mount>/_api`, which IS ours, so health can be
66
- * checked rather than skipped. Only then is a skip the honest answer.
67
- */
68
- const mount = site.pathname.replace(/\/+$/, '').split('/').filter(Boolean)[0];
69
- const mounted = mount
70
- ? await get(`${origin}/${mount}/_api/health`, { accept: 'application/json' })
71
- : null;
72
- if (mounted?.ok && mounted.res.status >= 200 && mounted.res.status < 300) {
73
- add('health', 'Health endpoint answers JSON', 'pass', `${mounted.res.status} from ${origin}/${mount}/_api/health — the platform's own mount under this path.`, 'A caller cannot tell an outage from a bug.');
74
- }
75
- else if (mounted?.ok && mounted.res.status >= 500) {
76
- add('health', 'Health endpoint answers JSON', 'fail', `${mounted.res.status} from ${origin}/${mount}/_api/health.`, 'The API serving this section is unhealthy, whatever the reader pages do.');
77
- }
78
- else {
79
- add('health', 'Health endpoint answers JSON', 'skip', `404 — ${apiBase} does not route /api/health, and ${mount ? `${origin}/${mount}/_api/health` : 'no mount'} did not answer either. This host serves the reader; the API it is served by has its own origin.`, 'Re-run with --api-base <origin> to check the API that serves this site.');
56
+ const directUrl = `${apiBase}/api/health`;
57
+ const health = await get(directUrl, { accept: 'application/json' });
58
+ let verdict = healthVerdict(health, directUrl);
59
+ /*
60
+ * The platform's own API, under the mount this address is served at.
61
+ *
62
+ * Only reached when the host's own `/api/health` did not answer healthily
63
+ * AND nobody named an `--api-base` — on a customer's domain that path is
64
+ * theirs, so whatever it said is not a report about us.
65
+ */
66
+ const tried = [];
67
+ let mountVerdict = null;
68
+ if (verdict.state !== 'pass' && defaultedApiBase) {
69
+ for (const mount of mountCandidates(site)) {
70
+ const url = `${origin}${mount}/${exports.READER_API_SEGMENT}/health`;
71
+ tried.push(url);
72
+ const probe = await get(url, { accept: 'application/json' });
73
+ const mounted = healthVerdict(probe, url);
74
+ if (mounted.state === 'pass') {
75
+ mountVerdict = {
76
+ state: 'pass',
77
+ detail: `${probe.ok ? probe.res.status : 200} from ${url} — the platform's own mount under this address.`,
78
+ matters: HEALTH_MATTERS,
79
+ };
80
+ break;
81
+ }
82
+ // A mount that answers 5xx IS ours and IS unhealthy. Anything else
83
+ // (404, a refused connection) only means this was not the mount.
84
+ if (probe.ok && probe.res.status >= 500) {
85
+ mountVerdict = {
86
+ state: 'fail',
87
+ detail: `${probe.res.status} from ${url}.`,
88
+ matters: 'The API serving this section is unhealthy, whatever the reader pages do.',
89
+ };
90
+ break;
91
+ }
80
92
  }
81
93
  }
82
- else if (health.res.status < 200 || health.res.status >= 300) {
83
- add('health', 'Health endpoint answers JSON', 'fail', `${health.res.status} from ${apiBase}/api/health: ${health.text.slice(0, 80)}`, 'A health endpoint that does not answer 2xx is down, whatever its body parses as.');
94
+ if (mountVerdict) {
95
+ verdict = mountVerdict;
84
96
  }
85
- else {
86
- let parsed = null;
87
- try {
88
- parsed = JSON.parse(health.text);
89
- }
90
- catch {
91
- parsed = null;
92
- }
93
- if (parsed && typeof parsed === 'object') {
94
- add('health', 'Health endpoint answers JSON', 'pass', `${health.res.status} with a JSON body.`, '');
95
- }
96
- else {
97
- add('health', 'Health endpoint answers JSON', 'fail', `${health.res.status} with a non-JSON body: ${health.text.slice(0, 80)}`, 'A plain-text 500 reads as a permanent bug, so a careful client stops retrying a few-minute outage.');
98
- }
97
+ else if (defaultedApiBase && health.ok && health.res.status === 404) {
98
+ verdict = {
99
+ state: 'skip',
100
+ detail: `404 — ${apiBase} does not route /api/health, and ${tried.length ? tried.join(' nor ') : 'no mount'} did not answer either. This host serves the reader; the API it is served by has its own origin.`,
101
+ matters: 'Re-run with --api-base <origin> to check the API that serves this site.',
102
+ };
99
103
  }
104
+ add('health', 'Health endpoint answers JSON', verdict.state, verdict.detail, verdict.matters);
100
105
  // 2. A logged-out reader gets the page, not a sign-in.
101
106
  const anon = await get(site.toString(), { accept: 'text/html' });
102
107
  const html = anon.ok ? anon.text : '';
@@ -228,6 +233,70 @@ async function runDoctor(input) {
228
233
  warnings: checks.filter((c) => c.state === 'skip').length,
229
234
  };
230
235
  }
236
+ const HEALTH_MATTERS = 'A caller cannot tell an outage from a bug.';
237
+ /** What one health probe, on its own, says about the API behind it. */
238
+ function healthVerdict(probe, url) {
239
+ if (!probe.ok)
240
+ return { state: 'fail', detail: probe.error, matters: HEALTH_MATTERS };
241
+ const { status } = probe.res;
242
+ if (status < 200 || status >= 300) {
243
+ return {
244
+ state: 'fail',
245
+ detail: `${status} from ${url}: ${probe.text.slice(0, 80)}`,
246
+ matters: 'A health endpoint that does not answer 2xx is down, whatever its body parses as.',
247
+ };
248
+ }
249
+ let parsed = null;
250
+ try {
251
+ parsed = JSON.parse(probe.text);
252
+ }
253
+ catch {
254
+ parsed = null;
255
+ }
256
+ if (!parsed || typeof parsed !== 'object') {
257
+ return {
258
+ state: 'fail',
259
+ detail: `${status} with a non-JSON body: ${probe.text.slice(0, 80)}`,
260
+ matters: 'A plain-text 500 reads as a permanent bug, so a careful client stops retrying a few-minute outage.',
261
+ };
262
+ }
263
+ return { state: 'pass', detail: `${status} with a JSON body.`, matters: '' };
264
+ }
265
+ /**
266
+ * The segment a hosted reader's API answers under. Underscore-prefixed on
267
+ * purpose: slugs are `^[a-z0-9]+(?:-[a-z0-9]+)*$`, so no space, collection or
268
+ * page can be called `_api` and this can never shadow somebody's content.
269
+ *
270
+ * A SECOND copy of a string the platform's shared package owns, which is the drift that
271
+ * would make this probe wrong and silent. It is copied rather than imported
272
+ * because this package publishes to npm with one dependency and should not pull
273
+ * the platform's shared bundle onto a customer's machine to learn four
274
+ * characters. `doctor.test.ts` reads the declaration out of
275
+ * `packages/shared/src/space-addressing.ts` and fails if the two ever differ.
276
+ */
277
+ exports.READER_API_SEGMENT = '_api';
278
+ /**
279
+ * Where the platform's own API lives on a customer's host, most specific first.
280
+ *
281
+ * The first version of this guessed ONE address — the first path segment — and
282
+ * a customer on a site domain got a skip anyway, which is the defect as filed.
283
+ * The two mounts are different shapes:
284
+ *
285
+ * - a PATH-mounted section is `acme.com/docs/…`, forwarded to us by the
286
+ * customer's edge under that prefix, so health is `acme.com/docs/_api/health`
287
+ * and `acme.com/_api/health` never reaches us;
288
+ * - a SITE domain is mounted at the ROOT of the host, so health is
289
+ * `acme.com/_api/health`, and the first path segment is a space or a page —
290
+ * `acme.com/getting-started/_api/health` is nothing at all.
291
+ *
292
+ * Nothing in a URL distinguishes them from outside, which is the whole reason
293
+ * the first guess was wrong, so both are asked and the first that answers wins.
294
+ * A root URL on a path-mounted domain has no segment, so it asks one address.
295
+ */
296
+ function mountCandidates(site) {
297
+ const first = site.pathname.replace(/\/+$/, '').split('/').filter(Boolean)[0];
298
+ return first ? [`/${first}`, ''] : [''];
299
+ }
231
300
  /** How many distinct pictures one page's report will fetch. */
232
301
  const IMAGE_LIMIT = 25;
233
302
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"doctor.js","sourceRoot":"","sources":["../src/doctor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"doctor.js","sourceRoot":"","sources":["../src/doctor.ts"],"names":[],"mappings":"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"}
package/dist/run.d.ts CHANGED
@@ -3,7 +3,7 @@ import type { ForumulateClient } from '@forumulate/sdk';
3
3
  * Kept in step with package.json by `cli-version.test.ts` — they had drifted to
4
4
  * 0.1.0 and 0.2.1, so `--version` reported a release that was never published.
5
5
  */
6
- export declare const VERSION = "0.3.5";
6
+ export declare const VERSION = "0.3.6";
7
7
  export interface RunDeps {
8
8
  /** The API client. Injected so the CLI is testable without a live server. */
9
9
  client: ForumulateClient;
package/dist/run.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"run.d.ts","sourceRoot":"","sources":["../src/run.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAOxD;;;GAGG;AACH,eAAO,MAAM,OAAO,UAAU,CAAC;AAE/B,MAAM,WAAW,OAAO;IACtB,6EAA6E;IAC7E,MAAM,EAAE,gBAAgB,CAAC;IACzB,GAAG,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAC5B,GAAG,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAC5B;;;;OAIG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;IAC/C,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;CACzB;AA4CD;;;GAGG;AACH,wBAAsB,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CAmTxE"}
1
+ {"version":3,"file":"run.d.ts","sourceRoot":"","sources":["../src/run.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAOxD;;;GAGG;AACH,eAAO,MAAM,OAAO,UAAU,CAAC;AAE/B,MAAM,WAAW,OAAO;IACtB,6EAA6E;IAC7E,MAAM,EAAE,gBAAgB,CAAC;IACzB,GAAG,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAC5B,GAAG,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAC5B;;;;OAIG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;IAC/C,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;CACzB;AAmDD;;;GAGG;AACH,wBAAsB,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CAmTxE"}
package/dist/run.js CHANGED
@@ -12,7 +12,7 @@ const api_base_1 = require("./api-base");
12
12
  * Kept in step with package.json by `cli-version.test.ts` — they had drifted to
13
13
  * 0.1.0 and 0.2.1, so `--version` reported a release that was never published.
14
14
  */
15
- exports.VERSION = '0.3.5';
15
+ exports.VERSION = '0.3.6';
16
16
  const HELP = `forumulate — Forumulate command-line interface
17
17
 
18
18
  Usage:
@@ -44,10 +44,17 @@ Commands:
44
44
  help Show this help
45
45
 
46
46
  Environment:
47
- FORUMULATE_URL API base URL (default https://forumulate.com/api — set it to
48
- http://localhost:4000 for a local API)
49
47
  FORUMULATE_TOKEN Personal Access Token (Bearer). Overrides a stored one, so
50
- CI keeps working exactly as it did.
48
+ CI keeps working exactly as it did. Mint one at
49
+ https://forumulate.com/account/tokens
50
+ FORUMULATE_URL The site (default https://forumulate.com); the API is its
51
+ /api, i.e. https://forumulate.com/api. A value already
52
+ ending in /api is used as-is.
53
+ FORUMULATE_API_URL Exact API base, for a local API with no /api prefix
54
+ (http://localhost:4000). Wins over FORUMULATE_URL.
55
+
56
+ The SDK (ForumulateClient.fromEnv) and the MCP server (@forumulate/mcp) read
57
+ the same variables. Guide: https://forumulate.com/guides/api-tokens-and-scopes
51
58
 
52
59
  Flags:
53
60
  --json Emit raw JSON instead of a formatted summary
@@ -168,7 +175,7 @@ async function run(argv, deps) {
168
175
  /*
169
176
  * One verb, two objects. `publish <pageId>` published exactly one page
170
177
  * by id, which is the thing a person doing docs-as-code never has:
171
- * they have a directory (Crossly DX-2). A path that exists on disk is a
178
+ * they have a directory (a customer DX report). A path that exists on disk is a
172
179
  * directory publish; anything else is the id form, unchanged.
173
180
  */
174
181
  const isDir = (() => {
@@ -279,7 +286,7 @@ async function run(argv, deps) {
279
286
  // is the right probe for a reader URL on a customer's domain.
280
287
  const report = await (0, doctor_1.runDoctor)({
281
288
  url,
282
- apiBase: process.env.FORUMULATE_URL?.trim() || undefined,
289
+ apiBase: (0, api_base_1.siteFromEnv)(),
283
290
  });
284
291
  if (json) {
285
292
  dump(report);
@@ -302,7 +309,7 @@ async function run(argv, deps) {
302
309
  *
303
310
  * Everything here needed `FORUMULATE_TOKEN` exported in the shell, which
304
311
  * puts the token in the environment of every other process that shell
305
- * runs and in somebody's history file (Crossly DX-2). It is verified
312
+ * runs and in somebody's history file (a customer DX report). It is verified
306
313
  * before it is written — storing a token that does not work is a worse
307
314
  * state than storing none, because the next failure is reported
308
315
  * somewhere else entirely.
@@ -311,7 +318,7 @@ async function run(argv, deps) {
311
318
  const base = deps.baseUrl ?? (0, api_base_1.apiBaseFromEnv)();
312
319
  let token = flagValue('--token') ?? rest[0];
313
320
  if (!token && deps.prompt) {
314
- deps.out(`Create a token at ${base.replace(/\/api$/, '')}/o/<orgId>/settings/tokens`);
321
+ deps.out(`Create a token at ${base.replace(/\/api$/, '')}/account/tokens`);
315
322
  token = (await deps.prompt('Token: ')).trim();
316
323
  }
317
324
  if (!token)
package/dist/run.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"run.js","sourceRoot":"","sources":["../src/run.ts"],"names":[],"mappings":";;;AA2EA,kBAmTC;AA9XD,qCAAmC;AAEnC,+CAA+C;AAC/C,qCAAqC;AACrC,+CAAyE;AACzE,+CAAoE;AACpE,yCAA4C;AAE5C;;;GAGG;AACU,QAAA,OAAO,GAAG,OAAO,CAAC;AAiB/B,MAAM,IAAI,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAwCZ,CAAC;AAEF;;;GAGG;AACI,KAAK,UAAU,GAAG,CAAC,IAAc,EAAE,IAAa;IACrD,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC;IACrD,MAAM,KAAK,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAE,CAAC,CAAC,CAAC;IAC3F,wEAAwE;IACxE,MAAM,SAAS,GAAG,CAAC,IAAY,EAAsB,EAAE;QACrD,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC;QAC1D,IAAI,MAAM;YAAE,OAAO,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QACjD,MAAM,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAC9B,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAC5C,CAAC,CAAC;IACF,MAAM,IAAI,GAAG,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IACjC,MAAM,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC;IAE5B,IAAI,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE,CAAC;QAC3B,IAAI,CAAC,GAAG,CAAC,eAAO,CAAC,CAAC;QAClB,OAAO,CAAC,CAAC;IACX,CAAC;IACD,IAAI,CAAC,GAAG,IAAI,GAAG,KAAK,MAAM,IAAI,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;QAClD,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACf,OAAO,GAAG,IAAI,GAAG,KAAK,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACvC,CAAC;IAED,MAAM,IAAI,GAAG,CAAC,CAAU,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;IAElE,IAAI,CAAC;QACH,QAAQ,GAAG,EAAE,CAAC;YACZ,KAAK,QAAQ,CAAC,CAAC,CAAC;gBACd,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;gBAC7C,IAAI,IAAI;oBAAE,IAAI,CAAC,IAAI,CAAC,CAAC;;oBAChB,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,KAAK,MAAM,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC;gBAC3D,OAAO,CAAC,CAAC;YACX,CAAC;YACD,KAAK,MAAM,CAAC,CAAC,CAAC;gBACZ,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;gBAC/C,IAAI,IAAI;oBAAE,IAAI,CAAC,IAAI,CAAC,CAAC;;oBAChB,KAAK,MAAM,CAAC,IAAI,IAAI;wBAAE,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;gBACrE,OAAO,CAAC,CAAC;YACX,CAAC;YACD,KAAK,QAAQ,CAAC,CAAC,CAAC;gBACd,MAAM,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC;gBACrB,IAAI,CAAC,KAAK;oBAAE,OAAO,KAAK,CAAC,IAAI,EAAE,gBAAgB,CAAC,CAAC;gBACjD,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBACxD,IAAI,IAAI;oBAAE,IAAI,CAAC,MAAM,CAAC,CAAC;;oBAClB,KAAK,MAAM,CAAC,IAAI,MAAM;wBAAE,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,IAAI,MAAM,CAAC,CAAC,IAAI,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;gBACpF,OAAO,CAAC,CAAC;YACX,CAAC;YACD;;;;;;;;;;eAUG;YACH,KAAK,OAAO,CAAC,CAAC,CAAC;gBACb,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;gBAC9B,IAAI,CAAC,KAAK,IAAI,CAAC,OAAO;oBAAE,OAAO,KAAK,CAAC,IAAI,EAAE,yBAAyB,CAAC,CAAC;gBACtE,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,OAAO,EAAE;oBACvD,KAAK,EAAE,EAAE;oBACT,OAAO,EAAE,CAAC,UAAU,EAAE,MAAM,CAAC;iBAC9B,CAAC,CAAC;gBACH,IAAI,IAAI;oBAAE,IAAI,CAAC,GAAG,CAAC,CAAC;qBACf,CAAC;oBACJ,KAAK,MAAM,CAAC,IAAI,GAAG,CAAC,KAAK,EAAE,CAAC;wBAC1B,MAAM,KAAK,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC,cAAc,CAAC;wBAChE,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,KAAK,KAAK,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC;oBAC5C,CAAC;oBACD,sEAAsE;oBACtE,6DAA6D;oBAC7D,IAAI,GAAG,CAAC,IAAI,EAAE,CAAC;wBACb,MAAM,KAAK,GAAG,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC;wBAC7B,IAAI,CAAC,GAAG,CACN,MAAM,GAAG,CAAC,KAAK,CAAC,MAAM,SAAS,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,KAAK,EAAE,EAAE;4BACxE,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,IAAI,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC;gCACtC,CAAC,CAAC,6BAA6B,GAAG,CAAC,IAAI,CAAC,UAAU,IAAI,GAAG,CAAC,IAAI,CAAC,WAAW,IAAI,EAAE,GAAG;gCACnF,CAAC,CAAC,EAAE,CAAC,CACV,CAAC;oBACJ,CAAC;gBACH,CAAC;gBACD,OAAO,CAAC,CAAC;YACX,CAAC;YACD,KAAK,QAAQ,CAAC,CAAC,CAAC;gBACd,MAAM,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC;gBAC3B,IAAI,CAAC,KAAK,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC;oBAAE,OAAO,KAAK,CAAC,IAAI,EAAE,2BAA2B,CAAC,CAAC;gBAC9E,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;gBACtE,IAAI,IAAI;oBAAE,IAAI,CAAC,IAAI,CAAC,CAAC;;oBAChB,KAAK,MAAM,CAAC,IAAI,IAAI;wBAAE,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,UAAU,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;gBAC9E,OAAO,CAAC,CAAC;YACX,CAAC;YACD,KAAK,SAAS,CAAC,CAAC,CAAC;gBACf,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,CAAC,GAAG,IAAI,CAAC;gBACtC,IAAI,CAAC,KAAK,IAAI,CAAC,OAAO,IAAI,CAAC,MAAM;oBAC/B,OAAO,KAAK,CAAC,IAAI,EAAE,0DAA0D,CAAC,CAAC;gBACjF;;;;;mBAKG;gBACH,MAAM,KAAK,GAAG,CAAC,GAAG,EAAE;oBAClB,IAAI,CAAC;wBACH,OAAO,IAAA,kBAAQ,EAAC,MAAM,CAAC,CAAC,WAAW,EAAE,CAAC;oBACxC,CAAC;oBAAC,MAAM,CAAC;wBACP,OAAO,KAAK,CAAC;oBACf,CAAC;gBACH,CAAC,CAAC,EAAE,CAAC;gBACL,IAAI,CAAC,KAAK,EAAE,CAAC;oBACX,MAAM,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;oBAC7D,IAAI,CAAC,GAAG,CAAC,aAAa,MAAM,GAAG,CAAC,CAAC;oBACjC,OAAO,CAAC,CAAC;gBACX,CAAC;gBACD,MAAM,IAAI,GAAG,IAAA,sBAAQ,EAAC,MAAM,CAAC,CAAC;gBAC9B,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC;gBAC/E,MAAM,IAAI,GAAG,IAAA,yBAAW,EAAC,IAAI,EAAE,KAAuD,CAAC,CAAC;gBACxF,IAAI,IAAI;oBAAE,IAAI,CAAC,IAAI,CAAC,CAAC;qBAChB,CAAC;oBACJ,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM,eAAe,MAAM,GAAG,CAAC,CAAC;oBACjD,KAAK,MAAM,IAAI,IAAI,IAAA,0BAAY,EAAC,IAAI,EAAE,MAAM,CAAC;wBAAE,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;gBAChE,CAAC;gBACD,IAAI,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE,CAAC;oBAC3B,IAAI,CAAC,IAAI;wBAAE,IAAI,CAAC,GAAG,CAAC,iCAAiC,CAAC,CAAC;oBACvD,OAAO,CAAC,CAAC;gBACX,CAAC;gBACD,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;oBAC9B,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE;wBAC9D,KAAK,EAAE,GAAG,CAAC,KAAK;wBAChB,IAAI,EAAE,GAAG,CAAC,IAAI;wBACd,IAAI,EAAE,GAAG,CAAC,QAAQ;qBACnB,CAAC,CAAC;oBACH,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;gBAC3D,CAAC;gBACD,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;oBAC9B,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,EAAE,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC;oBACvF,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,OAAO,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;gBAC9D,CAAC;gBACD,IAAI,CAAC,IAAI;oBACP,IAAI,CAAC,GAAG,CACN,aAAa,IAAI,CAAC,MAAM,CAAC,MAAM,YAAY,IAAI,CAAC,MAAM,CAAC,MAAM,oBAAoB,CAClF,CAAC;gBACJ,OAAO,CAAC,CAAC;YACX,CAAC;YACD,KAAK,UAAU,CAAC,CAAC,CAAC;gBAChB,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,GAAG,KAAK,CAAC,GAAG,IAAI,CAAC;gBACxC,IAAI,CAAC,KAAK,IAAI,CAAC,OAAO,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;oBAC1C,OAAO,KAAK,CAAC,IAAI,EAAE,oCAAoC,CAAC,CAAC;gBAC3D,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;gBACzF,IAAI,IAAI;oBAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;;oBACpB,IAAI,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;gBACnC,OAAO,CAAC,CAAC;YACX,CAAC;YACD;;;;eAIG;YACH,KAAK,aAAa,CAAC,CAAC,CAAC;gBACnB,MAAM,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC;gBAC1B,IAAI,CAAC,UAAU,EAAE,CAAC;oBAChB,IAAI,CAAC,GAAG,CAAC,+CAA+C,CAAC,CAAC;oBAC1D,OAAO,CAAC,CAAC;gBACX,CAAC;gBACD,MAAM,MAAM,GAAG,MAAM,IAAA,4BAAc,EAAC;oBAClC,UAAU;oBACV,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,gBAAgB;oBACnC,aAAa,EAAE,EAAE,IAAI,EAAE,oBAAoB,EAAE,KAAK,EAAE,YAAY,EAAE;iBACnE,CAAC,CAAC;gBACH,IAAI,IAAI,EAAE,CAAC;oBACT,IAAI,CAAC,MAAM,CAAC,CAAC;gBACf,CAAC;qBAAM,CAAC;oBACN,IAAI,CAAC,GAAG,CAAC,yBAAyB,MAAM,CAAC,QAAQ,MAAM,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC;oBAC5E,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;wBAClC,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,KAAK,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,KAAK,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC;wBACxF,IAAI,CAAC,GAAG,CAAC,KAAK,IAAI,KAAK,KAAK,CAAC,EAAE,KAAK,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC;wBACnD,IAAI,CAAC,GAAG,CAAC,WAAW,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC;wBACpC,IAAI,KAAK,CAAC,KAAK,KAAK,MAAM;4BAAE,IAAI,CAAC,GAAG,CAAC,2BAA2B,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;oBACnF,CAAC;oBACD,IAAI,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,MAAM,YAAY,MAAM,CAAC,MAAM,SAAS,CAAC,CAAC;gBAC/D,CAAC;gBACD,OAAO,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACnC,CAAC;YACD;;;;;;;;;;;eAWG;YACH,KAAK,QAAQ,CAAC,CAAC,CAAC;gBACd,MAAM,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;gBACnB,IAAI,CAAC,GAAG;oBAAE,OAAO,KAAK,CAAC,IAAI,EAAE,oBAAoB,CAAC,CAAC;gBACnD,gEAAgE;gBAChE,sEAAsE;gBACtE,8DAA8D;gBAC9D,MAAM,MAAM,GAAG,MAAM,IAAA,kBAAS,EAAC;oBAC7B,GAAG;oBACH,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,cAAc,EAAE,IAAI,EAAE,IAAI,SAAS;iBACzD,CAAC,CAAC;gBACH,IAAI,IAAI,EAAE,CAAC;oBACT,IAAI,CAAC,MAAM,CAAC,CAAC;gBACf,CAAC;qBAAM,CAAC;oBACN,IAAI,CAAC,GAAG,CAAC,YAAY,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC;oBACnC,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;wBAClC,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,KAAK,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,KAAK,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC;wBACxF,IAAI,CAAC,GAAG,CAAC,KAAK,IAAI,KAAK,KAAK,CAAC,EAAE,KAAK,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC;wBACnD,IAAI,CAAC,GAAG,CAAC,WAAW,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC;wBACpC,IAAI,KAAK,CAAC,KAAK,KAAK,MAAM,IAAI,KAAK,CAAC,OAAO;4BACzC,IAAI,CAAC,GAAG,CAAC,2BAA2B,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;oBACzD,CAAC;oBACD,IAAI,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,MAAM,YAAY,MAAM,CAAC,MAAM,YAAY,MAAM,CAAC,QAAQ,UAAU,CAAC,CAAC;gBAC3F,CAAC;gBACD,OAAO,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACnC,CAAC;YACD;;;;;;;;;eASG;YACH,KAAK,OAAO,CAAC,CAAC,CAAC;gBACb,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,IAAI,IAAA,yBAAc,GAAE,CAAC;gBAC9C,IAAI,KAAK,GAAG,SAAS,CAAC,SAAS,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC;gBAC5C,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;oBAC1B,IAAI,CAAC,GAAG,CAAC,qBAAqB,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,4BAA4B,CAAC,CAAC;oBACtF,KAAK,GAAG,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;gBAChD,CAAC;gBACD,IAAI,CAAC,KAAK;oBAAE,OAAO,KAAK,CAAC,IAAI,EAAE,qBAAqB,CAAC,CAAC;gBACtD,MAAM,KAAK,GAAG,IACZ,IAAI,CAAC,MAAM,CAAC,WACb,CAAC;oBACA,OAAO,EAAE,IAAI;oBACb,KAAK;iBACN,CAAC,CAAC;gBACH,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;gBACvC,MAAM,IAAI,GAAG,IAAA,wBAAU,EAAC,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;gBAC/C,IAAI,CAAC,GAAG,CAAC,gBAAgB,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,KAAK,SAAS,IAAI,EAAE,CAAC,CAAC;gBAClE,IAAI,CAAC,GAAG,CAAC,mBAAmB,IAAI,0BAA0B,CAAC,CAAC;gBAC5D,OAAO,CAAC,CAAC;YACX,CAAC;YACD,KAAK,QAAQ,CAAC,CAAC,CAAC;gBACd,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,IAAI,IAAA,yBAAc,GAAE,CAAC;gBAC9C,MAAM,GAAG,GAAG,IAAA,yBAAW,EAAC,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;gBACxC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,wBAAwB,IAAI,GAAG,CAAC,CAAC,CAAC,uBAAuB,IAAI,GAAG,CAAC,CAAC;gBACjF,IAAI,IAAI,CAAC,GAAG,EAAE,gBAAgB,IAAI,OAAO,CAAC,GAAG,CAAC,gBAAgB;oBAC5D,IAAI,CAAC,GAAG,CAAC,mEAAmE,CAAC,CAAC;gBAChF,OAAO,CAAC,CAAC;YACX,CAAC;YACD;;;;;eAKG;YACH,KAAK,SAAS,CAAC,CAAC,CAAC;gBACf,MAAM,CAAC,SAAS,EAAE,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC;gBAClC,MAAM,SAAS,GAAG,SAAS,KAAK,QAAQ,CAAC;gBACzC,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,QAAQ,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;gBAC3D,IAAI,CAAC,KAAK,IAAI,CAAC,OAAO;oBAAE,OAAO,KAAK,CAAC,IAAI,EAAE,+CAA+C,CAAC,CAAC;gBAC5F,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;gBACnE,IAAI,CAAC,SAAS,EAAE,CAAC;oBACf,IAAI,IAAI;wBAAE,IAAI,CAAC,OAAO,CAAC,CAAC;yBACnB,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;wBAAE,IAAI,CAAC,GAAG,CAAC,2BAA2B,CAAC,CAAC;;wBAEnE,KAAK,MAAM,CAAC,IAAI,OAAO;4BAAE,IAAI,CAAC,GAAG,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,QAAQ,IAAI,EAAE,EAAE,CAAC,CAAC;oBACzF,OAAO,CAAC,CAAC;gBACX,CAAC;gBACD,MAAM,MAAM,GAAG,QAAQ;oBACrB,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,WAAW,EAAE,KAAK,QAAQ,CAAC,WAAW,EAAE,CAAC;oBAC1E,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;gBACf,IAAI,CAAC,MAAM,EAAE,CAAC;oBACZ,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,aAAa,QAAQ,iBAAiB,CAAC,CAAC,CAAC,2BAA2B,CAAC,CAAC;oBAC1F,OAAO,CAAC,CAAC;gBACX,CAAC;gBACD,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC;gBAC/E,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;gBAC3F,IAAI,IAAI;oBAAE,IAAI,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;qBAC7B,CAAC;oBACJ,IAAI,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,KAAK,MAAM,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ,IAAI,EAAE,EAAE,CAAC,CAAC;oBAC3E,KAAK,MAAM,IAAI,IAAI,UAAU,CAAC,MAAM,EAAE,KAAK,CAAC;wBAAE,IAAI,CAAC,GAAG,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC;gBACtE,CAAC;gBACD,wEAAwE;gBACxE,2DAA2D;gBAC3D,OAAO,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACjC,CAAC;YACD;gBACE,IAAI,CAAC,GAAG,CAAC,oBAAoB,GAAG,EAAE,CAAC,CAAC;gBACpC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;gBACf,OAAO,CAAC,CAAC;QACb,CAAC;IACH,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,MAAM,GAAG,GAAG,CAAyD,CAAC;QACtE,IAAI,CAAC,GAAG,CACN,QAAQ,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,EAAE,KAAK,GAAG,CAAC,OAAO,IAAI,MAAM,CAAC,CAAC,CAAC,EAAE,CAC7G,CAAC;QACF,OAAO,CAAC,CAAC;IACX,CAAC;AACH,CAAC;AAED,SAAS,KAAK,CAAC,IAAa,EAAE,IAAY;IACxC,IAAI,CAAC,GAAG,CAAC,qBAAqB,IAAI,EAAE,CAAC,CAAC;IACtC,OAAO,CAAC,CAAC;AACX,CAAC;AAED,uFAAuF;AACvF,SAAS,OAAO,CAAC,CAA0C;IACzD,IAAI,CAAC,CAAC,CAAC,QAAQ;QAAE,OAAO,YAAY,CAAC;IACrC,OAAO,CAAC,CAAC,MAAM,KAAK,KAAK,CAAC,CAAC,CAAC,wBAAwB,CAAC,CAAC,CAAC,MAAM,CAAC;AAChE,CAAC;AAED;;;;;;;GAOG;AACH,SAAS,UAAU,CACjB,MAAgE,EAChE,KAOQ;IAER,MAAM,GAAG,GAAa,EAAE,CAAC;IACzB,IAAI,KAAK,EAAE,IAAI;QACb,GAAG,CAAC,IAAI,CAAC,UAAU,KAAK,CAAC,IAAI,GAAG,KAAK,CAAC,MAAM,KAAK,KAAK,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IACxF,IAAI,KAAK,EAAE,OAAO;QAAE,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAC5C,MAAM,MAAM,GAAG,MAAM,CAAC,kBAAkB,CAAC;IACzC,IAAI,MAAM;QAAE,GAAG,CAAC,IAAI,CAAC,QAAQ,MAAM,CAAC,IAAI,QAAQ,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;IAChE,IAAI,KAAK,EAAE,GAAG,EAAE,QAAQ,EAAE,CAAC;QACzB,MAAM,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAC/E,GAAG,CAAC,IAAI,CAAC,iBAAiB,KAAK,CAAC,GAAG,CAAC,QAAQ,WAAW,KAAK,EAAE,CAAC,CAAC;IAClE,CAAC;IACD,IAAI,KAAK,EAAE,OAAO;QAAE,GAAG,CAAC,IAAI,CAAC,WAAW,KAAK,CAAC,OAAO,CAAC,IAAI,MAAM,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IACxF,sEAAsE;IACtE,IAAI,KAAK,EAAE,cAAc;QAAE,GAAG,CAAC,IAAI,CAAC,uDAAuD,CAAC,CAAC;IAC7F,OAAO,GAAG,CAAC;AACb,CAAC"}
1
+ {"version":3,"file":"run.js","sourceRoot":"","sources":["../src/run.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@forumulate/cli",
3
- "version": "0.3.5",
3
+ "version": "0.3.6",
4
4
  "description": "Command-line interface for Forumulate — manage orgs, spaces, docs, and search from your terminal.",
5
5
  "license": "MIT",
6
6
  "homepage": "https://forumulate.com/guides",
@@ -29,7 +29,7 @@
29
29
  "access": "public"
30
30
  },
31
31
  "dependencies": {
32
- "@forumulate/sdk": "0.2.0"
32
+ "@forumulate/sdk": "0.3.0"
33
33
  },
34
34
  "devDependencies": {
35
35
  "@types/node": "^22.9.0",
@@ -39,7 +39,7 @@
39
39
  "author": "Forumulate",
40
40
  "scripts": {
41
41
  "build": "tsc -p tsconfig.json",
42
- "typecheck": "tsc -p tsconfig.json --noEmit",
42
+ "typecheck": "tsc -p tsconfig.json --noEmit --incremental --tsBuildInfoFile node_modules/.cache/tsc-src.tsbuildinfo",
43
43
  "test": "vitest run"
44
44
  }
45
45
  }