@xanots/sdk 0.0.4 → 0.0.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/CHANGELOG.md +21 -10
- package/README.md +7 -3
- package/dist/.build-fingerprint +1 -0
- package/dist/{agent-file-refresh-IJ7GN2FJ.js → agent-file-refresh-6XT23SLU.js} +4 -4
- package/dist/bin.js +8 -8
- package/dist/branch-commands-R4FR75UW.js +134 -0
- package/dist/{chunk-7SISR3CS.js → chunk-2SUCC4DV.js} +2 -2
- package/dist/{chunk-BPEEGJJA.js → chunk-3FQD3QME.js} +3 -3
- package/dist/{chunk-EAIR6VUL.js → chunk-4HDOP7LH.js} +8 -67
- package/dist/chunk-4PTSTDIG.js +59 -0
- package/dist/{live-diff-FP4SFNT4.js → chunk-5HCDZ2XN.js} +67 -6
- package/dist/{chunk-5WGEURVI.js → chunk-6AAT2AYQ.js} +21 -1
- package/dist/{chunk-AJ7JQ4OU.js → chunk-AAFBSOSD.js} +3 -3
- package/dist/{chunk-VWGJQTNA.js → chunk-CEFYM6N5.js} +4 -4
- package/dist/{chunk-YUPQOLFX.js → chunk-CQBJNFDK.js} +2 -2
- package/dist/{chunk-FN4OQT2J.js → chunk-CU5VOSTW.js} +4 -4
- package/dist/{chunk-YUBJLB6G.js → chunk-EFH4NFPY.js} +6 -3
- package/dist/chunk-EQW3YT5U.js +159 -0
- package/dist/{chunk-CYJ7R3AD.js → chunk-GC7ZQHW7.js} +22 -10
- package/dist/{chunk-KGNJM4LN.js → chunk-JQLR64UC.js} +6 -5
- package/dist/{chunk-PXXLBXOP.js → chunk-JRGDLAEA.js} +2 -2
- package/dist/{chunk-7REDODS2.js → chunk-LLWK6H77.js} +20 -2
- package/dist/{chunk-WGDAOOXG.js → chunk-MU3O43L2.js} +3 -3
- package/dist/{chunk-YYSJAAJM.js → chunk-OKNSR7MT.js} +51 -3
- package/dist/{chunk-MFIHIS6B.js → chunk-OLQLJY5T.js} +2 -2
- package/dist/{chunk-ACQCK4DT.js → chunk-OR43PDCW.js} +2 -2
- package/dist/{chunk-QUUB7HYK.js → chunk-P5C2YKAM.js} +2 -2
- package/dist/{chunk-D6OGU2AI.js → chunk-P5OAM3G2.js} +2 -2
- package/dist/{chunk-6DHJVLYP.js → chunk-Q77KNEUL.js} +1 -1
- package/dist/{chunk-SWIXWJIY.js → chunk-QVSUMHNN.js} +3 -3
- package/dist/{chunk-C56BC2FY.js → chunk-SG4UBJ47.js} +2 -2
- package/dist/{chunk-DUC3PXDG.js → chunk-SOCYCBYG.js} +54 -27
- package/dist/{chunk-VKD3EBKG.js → chunk-TYBB7ON3.js} +58 -38
- package/dist/{chunk-VTIL47DT.js → chunk-W5NOKYEG.js} +6 -2
- package/dist/{chunk-DGSF2Q5H.js → chunk-WJYB7DSI.js} +2 -2
- package/dist/{chunk-T6N3VMMO.js → chunk-Y7BARS25.js} +2 -2
- package/dist/cli.d.ts +36 -3
- package/dist/cli.js +7 -7
- package/dist/{codegen-command-Z7WQMOJ7.js → codegen-command-6XXOIQ25.js} +18 -18
- package/dist/{completion-4GYN752B.js → completion-A6BZ3XGU.js} +8 -7
- package/dist/{deploy-command-M2S4HHLC.js → deploy-command-MTQQXPOO.js} +16 -16
- package/dist/{env-target-GSFCYHKZ.js → env-target-C5JFLDK3.js} +6 -6
- package/dist/{ephemeral-command-6WJW7LP6.js → ephemeral-command-K3UJSDS4.js} +13 -13
- package/dist/index.d.ts +67 -24
- package/dist/index.js +6 -6
- package/dist/init-command-AY4KSXR5.js +30 -0
- package/dist/internal.js +13 -11
- package/dist/{io-7VIA5SON.js → io-65CJNLYI.js} +3 -3
- package/dist/live-diff-QK4KC2FJ.js +12 -0
- package/dist/{lock-KXOJIGCG.js → lock-PDFCNYUW.js} +2 -2
- package/dist/{lock-commands-7IH7RSSP.js → lock-commands-MC6I3MZA.js} +8 -8
- package/dist/{login-command-QM5SBBI2.js → login-command-LCOOOPO2.js} +139 -36
- package/dist/{logout-command-THPASOHM.js → logout-command-J2AG5NKC.js} +2 -2
- package/dist/{marketplace-command-463DT7O7.js → marketplace-command-BCOAAN2I.js} +3 -3
- package/dist/{meta-client-OW5WKWW7.js → meta-client-57ZWVHST.js} +2 -2
- package/dist/node.js +10 -10
- package/dist/{profile-command-EUWPVWED.js → profile-command-ZPC2DPFV.js} +3 -3
- package/dist/{release-command-M4CVNTWL.js → release-command-V4K4IORX.js} +193 -25
- package/dist/{sandbox-details-command-BRII3QHG.js → sandbox-details-command-DMY2KGA2.js} +4 -4
- package/dist/{sandbox-export-command-PCZ5FL4U.js → sandbox-export-command-R6QMEK3D.js} +5 -5
- package/dist/scaffold.d.ts +10 -13
- package/dist/scaffold.js +3 -3
- package/dist/{test-command-U4G5Y3UM.js → test-command-OEBIGOPP.js} +8 -8
- package/dist/{upgrade-command-CKJ4BS2P.js → upgrade-command-52AAZ3NV.js} +13 -13
- package/dist/{validate-command-S5N37JRP.js → validate-command-KTLPSSH7.js} +10 -10
- package/dist/{workspace-command-RALSEJSW.js → workspace-command-LX5S5N2H.js} +24 -20
- package/guides/cli.md +1 -0
- package/guides/deploying.md +18 -0
- package/guides/environment.md +1 -1
- package/guides/scaffold.md +3 -2
- package/llms/statements-calls.md +1 -1
- package/llms/statements-data.md +2 -1
- package/llms-full.txt +4 -3
- package/llms.txt +1 -1
- package/manifest.json +6 -2
- package/package.json +1 -1
- package/dist/chunk-ALNQCWAW.js +0 -29
- package/dist/init-command-GJUPWTKA.js +0 -30
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import {
|
|
2
2
|
fetchWorkspaceBundle,
|
|
3
3
|
runCodegenCommand
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-TYBB7ON3.js";
|
|
5
5
|
import "./chunk-ZOYMZZ3S.js";
|
|
6
6
|
import {
|
|
7
7
|
resolveOutputTarget
|
|
8
|
-
} from "./chunk-
|
|
9
|
-
import "./chunk-
|
|
8
|
+
} from "./chunk-AAFBSOSD.js";
|
|
9
|
+
import "./chunk-OR43PDCW.js";
|
|
10
10
|
import {
|
|
11
11
|
printMicroserviceSection,
|
|
12
12
|
readMicroservices
|
|
@@ -14,35 +14,35 @@ import {
|
|
|
14
14
|
import {
|
|
15
15
|
ENV_WORKSPACE,
|
|
16
16
|
getAccessToken
|
|
17
|
-
} from "./chunk-
|
|
18
|
-
import "./chunk-
|
|
17
|
+
} from "./chunk-SG4UBJ47.js";
|
|
18
|
+
import "./chunk-LLWK6H77.js";
|
|
19
19
|
import "./chunk-QTNO2WD6.js";
|
|
20
20
|
import "./chunk-ZUTSMMAG.js";
|
|
21
21
|
import "./chunk-X4DVXBFY.js";
|
|
22
|
-
import "./chunk-
|
|
22
|
+
import "./chunk-4HDOP7LH.js";
|
|
23
23
|
import {
|
|
24
24
|
isMachineOutput,
|
|
25
25
|
writeJson
|
|
26
26
|
} from "./chunk-NUQCEOKA.js";
|
|
27
|
-
import "./chunk-
|
|
27
|
+
import "./chunk-2SUCC4DV.js";
|
|
28
28
|
import "./chunk-ZSYZTGJH.js";
|
|
29
29
|
import {
|
|
30
30
|
fetchOrExplain,
|
|
31
31
|
httpFailure
|
|
32
32
|
} from "./chunk-3IGNIP6R.js";
|
|
33
|
-
import "./chunk-
|
|
33
|
+
import "./chunk-JRGDLAEA.js";
|
|
34
34
|
import "./chunk-LU7TRWMC.js";
|
|
35
|
-
import "./chunk-
|
|
36
|
-
import "./chunk-
|
|
37
|
-
import "./chunk-
|
|
35
|
+
import "./chunk-MU3O43L2.js";
|
|
36
|
+
import "./chunk-P5C2YKAM.js";
|
|
37
|
+
import "./chunk-Q77KNEUL.js";
|
|
38
38
|
import "./chunk-4BXJGVZ3.js";
|
|
39
|
-
import "./chunk-
|
|
40
|
-
import "./chunk-
|
|
39
|
+
import "./chunk-GC7ZQHW7.js";
|
|
40
|
+
import "./chunk-SOCYCBYG.js";
|
|
41
41
|
import {
|
|
42
42
|
removedSubcommand,
|
|
43
43
|
unknownSubcommand
|
|
44
|
-
} from "./chunk-
|
|
45
|
-
import "./chunk-
|
|
44
|
+
} from "./chunk-JQLR64UC.js";
|
|
45
|
+
import "./chunk-OLQLJY5T.js";
|
|
46
46
|
import "./chunk-GNPVYOPB.js";
|
|
47
47
|
import {
|
|
48
48
|
formatFields,
|
|
@@ -50,12 +50,12 @@ import {
|
|
|
50
50
|
step,
|
|
51
51
|
success
|
|
52
52
|
} from "./chunk-EZG76F7R.js";
|
|
53
|
-
import "./chunk-
|
|
54
|
-
import "./chunk-
|
|
55
|
-
import "./chunk-
|
|
53
|
+
import "./chunk-3FQD3QME.js";
|
|
54
|
+
import "./chunk-OKNSR7MT.js";
|
|
55
|
+
import "./chunk-CQBJNFDK.js";
|
|
56
56
|
import "./chunk-WHOJWOSV.js";
|
|
57
57
|
import "./chunk-5XZ744TS.js";
|
|
58
|
-
import "./chunk-
|
|
58
|
+
import "./chunk-EFH4NFPY.js";
|
|
59
59
|
|
|
60
60
|
// src/emit/workspace-command.ts
|
|
61
61
|
import { writeFileSync } from "fs";
|
|
@@ -69,6 +69,10 @@ async function runWorkspaceCommand(args) {
|
|
|
69
69
|
return runExport(args);
|
|
70
70
|
case "codegen":
|
|
71
71
|
return runCodegenCommand(args, { kind: "workspace" });
|
|
72
|
+
case "branch": {
|
|
73
|
+
const { runBranchCommand } = await import("./branch-commands-R4FR75UW.js");
|
|
74
|
+
return runBranchCommand(args);
|
|
75
|
+
}
|
|
72
76
|
case "deploy":
|
|
73
77
|
throw removedSubcommand("workspace", "deploy");
|
|
74
78
|
default:
|
|
@@ -156,4 +160,4 @@ async function runExport(args) {
|
|
|
156
160
|
export {
|
|
157
161
|
runWorkspaceCommand
|
|
158
162
|
};
|
|
159
|
-
//# sourceMappingURL=workspace-command-
|
|
163
|
+
//# sourceMappingURL=workspace-command-LX5S5N2H.js.map
|
package/guides/cli.md
CHANGED
|
@@ -28,6 +28,7 @@ xanots lock prune --no-verify --entry=xano/index.ts --yes dbo:notes # …or dro
|
|
|
28
28
|
xanots lock adopt live-export.json --entry=xano/index.ts --yes # seed the lock from a live engine export
|
|
29
29
|
|
|
30
30
|
xanots login # OAuth sign-in (once) — pick the instance + workspace at consent
|
|
31
|
+
xanots login --paste # …when the browser can't reach this machine's 127.0.0.1 (remote shell, container, Codespace)
|
|
31
32
|
xanots workspace details # which instance/workspace am I bound to, and via which credential?
|
|
32
33
|
xanots deploy ./xano/index.ts # compile + import into a live ephemeral (the dev loop) → URL
|
|
33
34
|
xanots deploy ./xano/index.ts --dest sandbox # …or your throwaway singleton sandbox
|
package/guides/deploying.md
CHANGED
|
@@ -21,6 +21,24 @@ The credential caches by default in a **shared** `~/.xanots/auth.json`, reusable
|
|
|
21
21
|
from **any** project directory — so a single `xanots login` covers all your projects.
|
|
22
22
|
Override the OAuth host with `--origin`/`$XANO_ORIGIN` and the loopback port with `--port`.
|
|
23
23
|
|
|
24
|
+
**When the browser can't reach this machine** — a remote shell, a container, a
|
|
25
|
+
Codespace — the `127.0.0.1` redirect lands nowhere and `login` waits five minutes for a
|
|
26
|
+
callback that will never arrive. Run `xanots login --paste` instead. It binds nothing:
|
|
27
|
+
it prints the authorize URL, you finish signing in in whatever browser you have, and
|
|
28
|
+
your browser then fails to load the `127.0.0.1` callback — which is expected. Paste that
|
|
29
|
+
URL back from the address bar (or just the `code=` value out of it) and the sign-in
|
|
30
|
+
completes. Everything else is identical, including the instance and workspace you pick
|
|
31
|
+
at consent.
|
|
32
|
+
|
|
33
|
+
Two things follow from how the code is bound. The paste has to happen in the same run
|
|
34
|
+
that printed the URL, so `--paste` needs a terminal — for automation use the environment
|
|
35
|
+
credential instead (see [Environment variables](environment.md)). And `--port` still
|
|
36
|
+
matters under `--paste`, not because anything binds it, but because it is part of the
|
|
37
|
+
redirect URL's identity.
|
|
38
|
+
|
|
39
|
+
Note this is **not** what `XANO_NO_BROWSER` does: that only suppresses the browser
|
|
40
|
+
launch, and still needs the redirect to arrive here.
|
|
41
|
+
|
|
24
42
|
Running `login` again when a usable credential is already cached prints what you're
|
|
25
43
|
signed in to and stops, rather than spending another browser round trip — pass `--force`
|
|
26
44
|
to sign in anyway. That guard is also what keeps `login` from silently replacing a
|
package/guides/environment.md
CHANGED
|
@@ -20,7 +20,7 @@ are what you get when the variable is unset.
|
|
|
20
20
|
| `XANO_GLOBAL_CONFIG` | Moves the **shared** credential cache off `~/.xanots/auth.json`. Only changes where the global cache lives; the project-local `./.xano/auth.json` and the `XANO_CONFIG`/`--config` override are unaffected. |
|
|
21
21
|
| `XANO_CLIENT_FILE` | Moves the OAuth **client-registration** cache off `~/.xano/xanots-clients.json`. That file holds the `client_id` minted per auth host + redirect URI, not a credential. |
|
|
22
22
|
| `XANO_ORIGIN` | OAuth host to sign in against, instead of the default — the same thing `--origin` does. |
|
|
23
|
-
| `XANO_NO_BROWSER` | Set to anything non-empty and `xanots login` will **not** launch a browser; it prints the authorize URL to stderr for you to open yourself. The loopback server still runs and still waits for the redirect, so the flow completes
|
|
23
|
+
| `XANO_NO_BROWSER` | Set to anything non-empty and `xanots login` will **not** launch a browser; it prints the authorize URL to stderr for you to open yourself. The loopback server still runs and still waits for the redirect, so the flow completes only if the browser you open it in can reach this machine's `127.0.0.1`. For a machine that has no browser to launch. When the browser is on a **different** machine, that redirect cannot arrive — use `xanots login --paste` instead. |
|
|
24
24
|
|
|
25
25
|
**`xanots validate`** — its own target, deliberately separate from the deploy login
|
|
26
26
|
|
package/guides/scaffold.md
CHANGED
|
@@ -12,8 +12,9 @@ What `xanots init` writes, the two frontend presets, theming, add-ons, and the S
|
|
|
12
12
|
`--marketplace <pkg>` (repeatable, comma-separated; installs add-ons and
|
|
13
13
|
registers them — below), `--force` (scaffold into a non-empty folder),
|
|
14
14
|
`--no-install` (skip `npm install`).
|
|
15
|
-
In a terminal, `init` prompts for the framework
|
|
16
|
-
|
|
15
|
+
In a terminal, `init` prompts for the framework and the AI files; every prompt
|
|
16
|
+
has a default, so pressing enter twice is a valid answer. The look is never
|
|
17
|
+
prompted for — it comes from the flags above, or from `xanots onboard`.
|
|
17
18
|
The starter backend is empty but already compiles and deploys — grow it from the
|
|
18
19
|
walkthrough in `xano/EXAMPLE.md`.
|
|
19
20
|
|
package/llms/statements-calls.md
CHANGED
|
@@ -13,7 +13,7 @@ Auth & calls:
|
|
|
13
13
|
- `s.stream.from_request({ url, method?, …tls, as? })` — streaming external HTTP request (`mvp:streaming_api_request`); same typed field surface as `s.api.request` (no description/output envelope). `url` is REQUIRED — it shares `api.request`'s engine declaration, which has no default.
|
|
14
14
|
- `s.webflow.request({ path, method?, …tls, as? })` — Webflow API request (`mvp:connect_webflow_api_request`); like `s.api.request` but addressed by `path` (host is engine-supplied), and `path` is REQUIRED — the engine rejects an empty one. No `headers`: the engine builds its own from the workspace's Webflow connection and ignores an authored value.
|
|
15
15
|
- `s.task.call` / `s.tool.call` / `s.trigger.call` / `s.middleware.call` / `s.addon.call` — same `{ <target>, input?, as? }` shape against the named kind. `s.task.call` and `s.trigger.call` are WORKFLOW-TEST ONLY (see Gotchas in `llms.txt`); `s.tool.call`, `s.middleware.call` and `s.addon.call` run from any stack.
|
|
16
|
-
- `s.action.call({
|
|
16
|
+
- `s.action.call({ actionId, input?, registry?, as? })` / `s.action.package.call({ traceId, versionId, slug, input?, registry?, as? })` — invoke an installed action. Ids are SUPPLIED, never derived from a name: an action is installed onto the instance, so its identity is assigned at install and differs per instance — read them off a call in a pulled workspace. The package form needs all three parts; they are one composite and two of them address nothing. `registry` is the action's own settings, `input` the per-call arguments.
|
|
17
17
|
- `s.cloud.job({ image, command, args?, secret?, template?, await?, as? })` — launch a containerized job. `image`/`command` are REQUIRED; omitted → `Missing param`. ⚠ `await` is SECONDS (default 60), not a boolean.
|
|
18
18
|
- `s.cloud.job.status({ id, as? })` · `s.cloud.job.await({ ids, timeout, as? })` — poll one job, or block on several (`ids` a list `Value`, `timeout` in seconds; both required).
|
|
19
19
|
|
package/llms/statements-data.md
CHANGED
|
@@ -16,7 +16,8 @@ primary key `id`):
|
|
|
16
16
|
- `s.db.del({ table, fieldName?, fieldValue, as? })` — delete by field match.
|
|
17
17
|
- `s.db.add({ table, row?, data?, output?, as? })` — insert; `row` is a partial keyed by column.
|
|
18
18
|
- A row CELL takes a tagged `Value`, a nested object of sub-keys, or a bare JS literal typed against that column: `row: { is_hidden: true, notes: "…" }` encodes exactly as `{ is_hidden: c.bool(true), notes: c.text("…") }`. The tag comes from the COLUMN, not the literal — `10` on an `f.decimal()` column is `const:decimal`, not `const:int` — so a literal contradicting its column is a compile error on a `f.*`-schema table (`{ is_hidden: "yes" }` on an `f.bool()` column) and throws at encode on a raw-`ColumnDef[]` one. An `f.enum()` column keeps its member union. A column with no literal form — obj/json/list/geo/vector/file — still needs `c.obj`/`c.array`.
|
|
19
|
-
- `null` is accepted on EVERY column, including ones that refuse every other literal, and encodes `const:null` — a write OF null, not the same as omitting the key
|
|
19
|
+
- `null` is accepted on EVERY column, including ones that refuse every other literal, and encodes `const:null` — a write OF null, not the same as omitting the key. A column's `nullable` is not consulted at encode; the engine refuses a null it forbids.
|
|
20
|
+
- Omitting a key on `add` writes the column's type default — declared `default` if set, `[]` for a list, `{}` for obj/json, else `null`. That `null` is EMITTED, not what the row holds: the engine applies the column's nullability, so a `nullable` column keeps `null` and a non-nullable one lands on its type's zero value (`""`, `0`, `false`). Set the cell when the stored value matters. On `edit` an omitted key keeps its stored value.
|
|
20
21
|
- An `f.password()` cell takes the PLAINTEXT — the column hashes on write, so a pre-hashed value, or a hashing filter on the cell, stores a hash of a hash that `security.check_password` can never match.
|
|
21
22
|
- `s.db.edit({ table, fieldName?, fieldValue, row?, data?, output?, as? })` — update by field match.
|
|
22
23
|
- `s.db.patch({ table, fieldName?, fieldValue, data, output?, as? })` — merge a partial (`data` is an object value).
|
package/llms-full.txt
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
# xanots v0.0.
|
|
1
|
+
# xanots v0.0.6
|
|
2
2
|
|
|
3
3
|
> TypeScript SDK that compiles a typed Xano workspace into the importable packageExport JSON bundle.
|
|
4
4
|
|
|
@@ -796,7 +796,8 @@ primary key `id`):
|
|
|
796
796
|
- `s.db.del({ table, fieldName?, fieldValue, as? })` — delete by field match.
|
|
797
797
|
- `s.db.add({ table, row?, data?, output?, as? })` — insert; `row` is a partial keyed by column.
|
|
798
798
|
- A row CELL takes a tagged `Value`, a nested object of sub-keys, or a bare JS literal typed against that column: `row: { is_hidden: true, notes: "…" }` encodes exactly as `{ is_hidden: c.bool(true), notes: c.text("…") }`. The tag comes from the COLUMN, not the literal — `10` on an `f.decimal()` column is `const:decimal`, not `const:int` — so a literal contradicting its column is a compile error on a `f.*`-schema table (`{ is_hidden: "yes" }` on an `f.bool()` column) and throws at encode on a raw-`ColumnDef[]` one. An `f.enum()` column keeps its member union. A column with no literal form — obj/json/list/geo/vector/file — still needs `c.obj`/`c.array`.
|
|
799
|
-
- `null` is accepted on EVERY column, including ones that refuse every other literal, and encodes `const:null` — a write OF null, not the same as omitting the key
|
|
799
|
+
- `null` is accepted on EVERY column, including ones that refuse every other literal, and encodes `const:null` — a write OF null, not the same as omitting the key. A column's `nullable` is not consulted at encode; the engine refuses a null it forbids.
|
|
800
|
+
- Omitting a key on `add` writes the column's type default — declared `default` if set, `[]` for a list, `{}` for obj/json, else `null`. That `null` is EMITTED, not what the row holds: the engine applies the column's nullability, so a `nullable` column keeps `null` and a non-nullable one lands on its type's zero value (`""`, `0`, `false`). Set the cell when the stored value matters. On `edit` an omitted key keeps its stored value.
|
|
800
801
|
- An `f.password()` cell takes the PLAINTEXT — the column hashes on write, so a pre-hashed value, or a hashing filter on the cell, stores a hash of a hash that `security.check_password` can never match.
|
|
801
802
|
- `s.db.edit({ table, fieldName?, fieldValue, row?, data?, output?, as? })` — update by field match.
|
|
802
803
|
- `s.db.patch({ table, fieldName?, fieldValue, data, output?, as? })` — merge a partial (`data` is an object value).
|
|
@@ -901,7 +902,7 @@ Auth & calls:
|
|
|
901
902
|
- `s.stream.from_request({ url, method?, …tls, as? })` — streaming external HTTP request (`mvp:streaming_api_request`); same typed field surface as `s.api.request` (no description/output envelope). `url` is REQUIRED — it shares `api.request`'s engine declaration, which has no default.
|
|
902
903
|
- `s.webflow.request({ path, method?, …tls, as? })` — Webflow API request (`mvp:connect_webflow_api_request`); like `s.api.request` but addressed by `path` (host is engine-supplied), and `path` is REQUIRED — the engine rejects an empty one. No `headers`: the engine builds its own from the workspace's Webflow connection and ignores an authored value.
|
|
903
904
|
- `s.task.call` / `s.tool.call` / `s.trigger.call` / `s.middleware.call` / `s.addon.call` — same `{ <target>, input?, as? }` shape against the named kind. `s.task.call` and `s.trigger.call` are WORKFLOW-TEST ONLY (see Gotchas in `llms.txt`); `s.tool.call`, `s.middleware.call` and `s.addon.call` run from any stack.
|
|
904
|
-
- `s.action.call({
|
|
905
|
+
- `s.action.call({ actionId, input?, registry?, as? })` / `s.action.package.call({ traceId, versionId, slug, input?, registry?, as? })` — invoke an installed action. Ids are SUPPLIED, never derived from a name: an action is installed onto the instance, so its identity is assigned at install and differs per instance — read them off a call in a pulled workspace. The package form needs all three parts; they are one composite and two of them address nothing. `registry` is the action's own settings, `input` the per-call arguments.
|
|
905
906
|
- `s.cloud.job({ image, command, args?, secret?, template?, await?, as? })` — launch a containerized job. `image`/`command` are REQUIRED; omitted → `Missing param`. ⚠ `await` is SECONDS (default 60), not a boolean.
|
|
906
907
|
- `s.cloud.job.status({ id, as? })` · `s.cloud.job.await({ ids, timeout, as? })` — poll one job, or block on several (`ids` a list `Value`, `timeout` in seconds; both required).
|
|
907
908
|
|
package/llms.txt
CHANGED
package/manifest.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "xanots",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.6",
|
|
4
4
|
"description": "TypeScript SDK that compiles a typed Xano workspace into the importable packageExport JSON bundle.",
|
|
5
5
|
"coverage": {
|
|
6
6
|
"objectKinds": {
|
|
@@ -9076,9 +9076,13 @@
|
|
|
9076
9076
|
"flag": "--local",
|
|
9077
9077
|
"description": "Use the project-local ./.xano/auth.json instead of the shared cache"
|
|
9078
9078
|
},
|
|
9079
|
+
{
|
|
9080
|
+
"flag": "--paste",
|
|
9081
|
+
"description": "Sign in without the loopback callback: open the printed URL in any browser and paste the redirect back. For a host whose 127.0.0.1 the browser cannot reach — remote shell, container, Codespace. Needs a terminal."
|
|
9082
|
+
},
|
|
9079
9083
|
{
|
|
9080
9084
|
"flag": "--port <n>",
|
|
9081
|
-
"description": "
|
|
9085
|
+
"description": "Loopback callback port (default: 47100)"
|
|
9082
9086
|
},
|
|
9083
9087
|
{
|
|
9084
9088
|
"flag": "--scope \"<list>\"",
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@xanots/sdk",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.6",
|
|
4
4
|
"description": "XanoTS — your Xano backend as TypeScript. `xanots deploy` ships your typed workspace (and an optional static frontend) to a live, auto-expiring ephemeral environment and prints its URL. init → deploy → URL.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"xanots",
|
package/dist/chunk-ALNQCWAW.js
DELETED
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
UsageError
|
|
3
|
-
} from "./chunk-KGNJM4LN.js";
|
|
4
|
-
import {
|
|
5
|
-
style
|
|
6
|
-
} from "./chunk-EZG76F7R.js";
|
|
7
|
-
|
|
8
|
-
// src/emit/prompt.ts
|
|
9
|
-
import { createInterface } from "readline";
|
|
10
|
-
async function confirm(message, opts) {
|
|
11
|
-
if (process.stdin.isTTY !== true) {
|
|
12
|
-
throw new UsageError(
|
|
13
|
-
`Cannot ask for confirmation: stdin is not a terminal. Re-run with ${opts.flag} to confirm without being asked.`,
|
|
14
|
-
{ helpFor: opts.helpFor }
|
|
15
|
-
);
|
|
16
|
-
}
|
|
17
|
-
const rl = createInterface({ input: process.stdin, output: process.stderr });
|
|
18
|
-
try {
|
|
19
|
-
const answer = await new Promise((res) => rl.question(`${style.yellow("?")} ${message} (y/N) `, res));
|
|
20
|
-
return /^y(es)?$/i.test(answer.trim());
|
|
21
|
-
} finally {
|
|
22
|
-
rl.close();
|
|
23
|
-
}
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
export {
|
|
27
|
-
confirm
|
|
28
|
-
};
|
|
29
|
-
//# sourceMappingURL=chunk-ALNQCWAW.js.map
|
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
projectShellFiles,
|
|
3
|
-
runInitCommand,
|
|
4
|
-
sanitizeAppName
|
|
5
|
-
} from "./chunk-EAIR6VUL.js";
|
|
6
|
-
import {
|
|
7
|
-
resolveAiFlags
|
|
8
|
-
} from "./chunk-7SISR3CS.js";
|
|
9
|
-
import "./chunk-ZSYZTGJH.js";
|
|
10
|
-
import "./chunk-WGDAOOXG.js";
|
|
11
|
-
import "./chunk-QUUB7HYK.js";
|
|
12
|
-
import "./chunk-6DHJVLYP.js";
|
|
13
|
-
import "./chunk-DUC3PXDG.js";
|
|
14
|
-
import "./chunk-KGNJM4LN.js";
|
|
15
|
-
import "./chunk-MFIHIS6B.js";
|
|
16
|
-
import "./chunk-GNPVYOPB.js";
|
|
17
|
-
import "./chunk-EZG76F7R.js";
|
|
18
|
-
import "./chunk-BPEEGJJA.js";
|
|
19
|
-
import "./chunk-YYSJAAJM.js";
|
|
20
|
-
import "./chunk-YUPQOLFX.js";
|
|
21
|
-
import "./chunk-WHOJWOSV.js";
|
|
22
|
-
import "./chunk-5XZ744TS.js";
|
|
23
|
-
import "./chunk-YUBJLB6G.js";
|
|
24
|
-
export {
|
|
25
|
-
projectShellFiles,
|
|
26
|
-
resolveAiFlags,
|
|
27
|
-
runInitCommand,
|
|
28
|
-
sanitizeAppName
|
|
29
|
-
};
|
|
30
|
-
//# sourceMappingURL=init-command-GJUPWTKA.js.map
|