@octonodes/cli 0.2.16 → 0.2.38
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 +261 -23
- package/dist/apps/build.d.ts +38 -0
- package/dist/apps/build.d.ts.map +1 -1
- package/dist/apps/build.js +8 -6
- package/dist/apps/build.js.map +1 -1
- package/dist/apps/constants.d.ts +1 -1
- package/dist/apps/constants.d.ts.map +1 -1
- package/dist/apps/constants.js +4 -2
- package/dist/apps/constants.js.map +1 -1
- package/dist/apps/create.d.ts.map +1 -1
- package/dist/apps/create.js +35 -16
- package/dist/apps/create.js.map +1 -1
- package/dist/apps/dev.d.ts +2 -2
- package/dist/apps/index.d.ts.map +1 -1
- package/dist/apps/index.js +5 -0
- package/dist/apps/index.js.map +1 -1
- package/dist/apps/preview.d.mts.map +1 -1
- package/dist/apps/preview.mjs +58 -14
- package/dist/apps/preview.mjs.map +1 -1
- package/dist/apps/server.d.ts +1 -1
- package/dist/apps/server.d.ts.map +1 -1
- package/dist/apps/server.js +4 -0
- package/dist/apps/server.js.map +1 -1
- package/dist/apps/source.d.ts +74 -2
- package/dist/apps/source.d.ts.map +1 -1
- package/dist/apps/source.js +10 -4
- package/dist/apps/source.js.map +1 -1
- package/dist/apps/tunnel.d.ts +1 -1
- package/dist/apps/types.d.ts +9 -3
- package/dist/apps/types.d.ts.map +1 -1
- package/dist/apps/welcome.d.ts +1 -0
- package/dist/apps/welcome.d.ts.map +1 -1
- package/dist/apps/welcome.js +20 -26
- package/dist/apps/welcome.js.map +1 -1
- package/dist/auth.d.ts.map +1 -1
- package/dist/auth.js +22 -10
- package/dist/auth.js.map +1 -1
- package/dist/index.js +2 -1
- package/dist/index.js.map +1 -1
- package/dist/plugins/build.d.ts.map +1 -1
- package/dist/plugins/build.js +10 -8
- package/dist/plugins/build.js.map +1 -1
- package/dist/plugins/constants.d.ts +2 -0
- package/dist/plugins/constants.d.ts.map +1 -1
- package/dist/plugins/constants.js +3 -1
- package/dist/plugins/constants.js.map +1 -1
- package/dist/plugins/create.d.ts.map +1 -1
- package/dist/plugins/create.js +4 -3
- package/dist/plugins/create.js.map +1 -1
- package/dist/plugins/library.d.ts.map +1 -1
- package/dist/plugins/library.js +2 -1
- package/dist/plugins/library.js.map +1 -1
- package/dist/plugins/publish.d.ts +74 -2
- package/dist/plugins/publish.d.ts.map +1 -1
- package/dist/plugins/release.d.ts +2 -0
- package/dist/plugins/release.d.ts.map +1 -1
- package/package.json +7 -4
- package/runtime/plugin-lifecycle.cjs +4163 -495
package/README.md
CHANGED
|
@@ -3,11 +3,259 @@
|
|
|
3
3
|
Command-line access to the public [Octonode cloud API](https://octonodes.com/api/docs). The CLI
|
|
4
4
|
wraps `@octonodes/sdk`, so every generated SDK operation is available without writing TypeScript.
|
|
5
5
|
|
|
6
|
+
## Installation
|
|
7
|
+
|
|
8
|
+
The npm package is `@octonodes/cli`; the installed command is `octonodes`.
|
|
9
|
+
It creates apps and plugins and calls the Octonode API. The separate `octonode`
|
|
10
|
+
workflow engine uses a different executable.
|
|
11
|
+
|
|
12
|
+
**Available now:** npm, npx, pnpm, Yarn and Bun use the published npm package.
|
|
13
|
+
**Pending publication:** Homebrew, WinGet, Scoop, Chocolatey, DEB/APT, RPM/DNF,
|
|
14
|
+
Arch/AUR, Snap, Docker and direct installers have prepared distribution recipes.
|
|
15
|
+
Their commands below become usable when the corresponding channel is published.
|
|
16
|
+
An npm release does not automatically make those channels available.
|
|
17
|
+
|
|
18
|
+
### Prerequisites
|
|
19
|
+
|
|
20
|
+
For npm-based installation, install [Node.js 20.19+, 22.12+, or newer](https://nodejs.org/en/download)
|
|
21
|
+
and your chosen package manager. Check the runtime before installing:
|
|
22
|
+
|
|
23
|
+
```sh
|
|
24
|
+
node --version
|
|
25
|
+
npm --version
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
Node should report `v20.19.0` or newer in Node 20, or `v22.12.0` or newer. Homebrew will install `node@24` as a dependency;
|
|
29
|
+
the planned portable, MSI, DEB, RPM, Scoop, Chocolatey, Arch and Snap packages
|
|
30
|
+
include their own Node 24 runtime. App and plugin projects still need a separate
|
|
31
|
+
supported Node development toolchain and a package manager to install project dependencies.
|
|
32
|
+
|
|
33
|
+
### npm, pnpm, Yarn and Bun
|
|
34
|
+
|
|
35
|
+
Choose one global installation method:
|
|
36
|
+
|
|
37
|
+
| Package manager | Install globally | Run once without a global install |
|
|
38
|
+
| --- | --- | --- |
|
|
39
|
+
| npm | `npm install --global @octonodes/cli` | `npx --yes @octonodes/cli@latest --help` |
|
|
40
|
+
| pnpm | `pnpm add --global @octonodes/cli` | `pnpm dlx @octonodes/cli --help` |
|
|
41
|
+
| Yarn Classic (1.x) | `yarn global add @octonodes/cli` | Use npm's `npx` command above |
|
|
42
|
+
| Yarn 2+ / 4 | Use npm or pnpm for global installation | `yarn dlx @octonodes/cli --help` |
|
|
43
|
+
| Bun | `bun add --global @octonodes/cli` | `bunx @octonodes/cli --help` |
|
|
44
|
+
|
|
45
|
+
One-off commands do not add `octonodes` permanently to your PATH. To run another
|
|
46
|
+
command once, replace `--help`, for example `npx --yes @octonodes/cli@latest login`.
|
|
47
|
+
To pin a release, replace `@latest` with an exact published version, such as
|
|
48
|
+
`npx --yes @octonodes/cli@0.2.16 --help`.
|
|
49
|
+
|
|
50
|
+
If pnpm reports no global bin directory, run [pnpm setup](https://pnpm.io/cli/setup)
|
|
51
|
+
and open a new terminal. For [Yarn Classic](https://classic.yarnpkg.com/en/docs/cli/global),
|
|
52
|
+
ensure the directory from `yarn global bin` is on PATH. Bun's global binaries
|
|
53
|
+
normally live in `~/.bun/bin`; see [Bun installation](https://bun.com/docs/installation).
|
|
54
|
+
Keep a supported Node version on PATH even when using Bun as the package manager.
|
|
55
|
+
|
|
56
|
+
### Homebrew — macOS and Linux
|
|
57
|
+
|
|
58
|
+
**Pending tap publication.** Install [Homebrew](https://brew.sh/) first.
|
|
59
|
+
The planned tap is `nivdoron1/homebrew-tap`:
|
|
60
|
+
|
|
61
|
+
```sh
|
|
62
|
+
brew install nivdoron1/tap/octonodes
|
|
63
|
+
octonodes --version
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
The equivalent two-step setup is `brew tap nivdoron1/tap`, then
|
|
67
|
+
`brew install octonodes`. The formula selects its Node 24 dependency automatically.
|
|
68
|
+
|
|
69
|
+
### Windows — WinGet, Scoop, Chocolatey or MSI
|
|
70
|
+
|
|
71
|
+
**Pending channel publication; Windows x64.** Install your chosen package manager
|
|
72
|
+
first: [WinGet](https://learn.microsoft.com/en-us/windows/package-manager/winget/),
|
|
73
|
+
[Scoop](https://scoop.sh/) or [Chocolatey](https://chocolatey.org/install).
|
|
74
|
+
|
|
75
|
+
```powershell
|
|
76
|
+
# WinGet, after the manifest is published to its community source
|
|
77
|
+
winget install --id Octonode.CLI --exact --source winget
|
|
78
|
+
|
|
79
|
+
# Chocolatey, in an administrator terminal after community publication
|
|
80
|
+
choco install octonodes --yes
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
For Scoop, add the published bucket before installing. The bucket URL has not
|
|
84
|
+
been assigned yet; replace `PUBLISHED_BUCKET_URL` with the announced Git URL:
|
|
85
|
+
|
|
86
|
+
```powershell
|
|
87
|
+
scoop bucket add octonode PUBLISHED_BUCKET_URL
|
|
88
|
+
scoop install octonode/octonodes
|
|
89
|
+
```
|
|
90
|
+
|
|
91
|
+
Alternatively, download `octonodes-X.Y.Z-win32-x64.msi` and `SHA256SUMS` from the
|
|
92
|
+
published release. Compare `Get-FileHash .\octonodes-X.Y.Z-win32-x64.msi -Algorithm SHA256`
|
|
93
|
+
with the matching checksum, then run the MSI. It installs for all users, requires
|
|
94
|
+
administrator permission and registers the command on the system PATH.
|
|
95
|
+
Open a new terminal after any Windows installation.
|
|
96
|
+
|
|
97
|
+
### Linux — DEB/APT, RPM/DNF, Arch/AUR and Snap
|
|
98
|
+
|
|
99
|
+
**Pending package or repository publication.** DEB/RPM/Arch/Snap target Linux x64
|
|
100
|
+
and arm64. Portable Linux packages need glibc 2.28+ and libstdc++; Alpine/musl
|
|
101
|
+
is outside the prepared portable build matrix.
|
|
102
|
+
|
|
103
|
+
Download a matching package and `SHA256SUMS` from the published release and
|
|
104
|
+
verify it with `sha256sum --check --ignore-missing SHA256SUMS` before installing:
|
|
105
|
+
|
|
106
|
+
```sh
|
|
107
|
+
# Debian / Ubuntu: use amd64 for x64, or arm64 for ARM64
|
|
108
|
+
sudo apt install ./octonodes_X.Y.Z_amd64.deb
|
|
109
|
+
|
|
110
|
+
# Fedora / RHEL: use x86_64 for x64, or aarch64 for ARM64
|
|
111
|
+
sudo dnf install ./octonodes-X.Y.Z-1.x86_64.rpm
|
|
112
|
+
```
|
|
113
|
+
|
|
114
|
+
After configuring the publisher's signed APT or DNF repository, installation
|
|
115
|
+
and updates use the package manager directly:
|
|
116
|
+
|
|
117
|
+
```sh
|
|
118
|
+
# Debian / Ubuntu, after adding the published APT URL and signing key
|
|
119
|
+
sudo apt update
|
|
120
|
+
sudo apt install octonodes
|
|
121
|
+
|
|
122
|
+
# Fedora / RHEL, after adding the published DNF URL and signing key
|
|
123
|
+
sudo dnf install octonodes
|
|
124
|
+
```
|
|
125
|
+
|
|
126
|
+
Repository URLs and signing-key fingerprints will be announced when those
|
|
127
|
+
repositories are published. Do not disable signature verification.
|
|
128
|
+
|
|
129
|
+
For Arch, review the published AUR recipe before building. With Git and
|
|
130
|
+
`base-devel` installed:
|
|
131
|
+
|
|
132
|
+
```sh
|
|
133
|
+
git clone https://aur.archlinux.org/octonodes-bin.git
|
|
134
|
+
cd octonodes-bin
|
|
135
|
+
less PKGBUILD
|
|
136
|
+
makepkg -si
|
|
137
|
+
```
|
|
138
|
+
|
|
139
|
+
If you already use an AUR helper, `yay -S octonodes-bin` is an alternative.
|
|
140
|
+
For Snap, install [snapd](https://snapcraft.io/docs/installing-snapd) first;
|
|
141
|
+
the listing also requires publisher approval for classic confinement:
|
|
142
|
+
|
|
143
|
+
```sh
|
|
144
|
+
sudo snap install octonodes --classic
|
|
145
|
+
```
|
|
146
|
+
|
|
147
|
+
### Direct installation — macOS, Linux and Windows
|
|
148
|
+
|
|
149
|
+
**Pending release-asset hosting.** Choose an installer release from
|
|
150
|
+
[GitHub Releases](https://github.com/nivdoron1/octonode-devtools/releases).
|
|
151
|
+
Replace `X.Y.Z` with its exact published installer version; the commands assume
|
|
152
|
+
the planned GitHub release asset location.
|
|
153
|
+
|
|
154
|
+
On macOS or Linux, download and inspect the installer before running it:
|
|
155
|
+
|
|
156
|
+
```sh
|
|
157
|
+
CLI_VERSION=X.Y.Z
|
|
158
|
+
RELEASE_URL="https://github.com/nivdoron1/octonode-devtools/releases/download/cli-v${CLI_VERSION}"
|
|
159
|
+
curl --fail --location --proto '=https' "$RELEASE_URL/install.sh" -o install-octonodes.sh
|
|
160
|
+
less install-octonodes.sh
|
|
161
|
+
sh install-octonodes.sh
|
|
162
|
+
export PATH="$HOME/.local/bin:$PATH"
|
|
163
|
+
octonodes --version
|
|
164
|
+
```
|
|
165
|
+
|
|
166
|
+
Add the PATH line to your shell profile for future terminals. The installer
|
|
167
|
+
detects macOS/Linux x64 or arm64, verifies the archive checksum, and installs
|
|
168
|
+
under `~/.local/share/octonodes`, with a command link in `~/.local/bin`.
|
|
169
|
+
Set `OCTONODES_INSTALL_DIR` and `OCTONODES_BIN_DIR` before running it to choose
|
|
170
|
+
different locations. The macOS portable runtime requires macOS 13.5 or later.
|
|
171
|
+
|
|
172
|
+
On Windows x64, download and inspect the PowerShell installer:
|
|
173
|
+
|
|
174
|
+
```powershell
|
|
175
|
+
$CliVersion = 'X.Y.Z'
|
|
176
|
+
$ReleaseUrl = "https://github.com/nivdoron1/octonode-devtools/releases/download/cli-v$CliVersion"
|
|
177
|
+
Invoke-WebRequest "$ReleaseUrl/install.ps1" -OutFile install-octonodes.ps1
|
|
178
|
+
Get-Content .\install-octonodes.ps1
|
|
179
|
+
& .\install-octonodes.ps1
|
|
180
|
+
```
|
|
181
|
+
|
|
182
|
+
Use your organization's PowerShell execution policy for downloaded scripts.
|
|
183
|
+
The installer verifies the ZIP checksum, installs under `%LOCALAPPDATA%\Octonodes`
|
|
184
|
+
and updates your user PATH. Open a new terminal afterwards. Set
|
|
185
|
+
`OCTONODES_INSTALL_DIR` beforehand to choose a different installation directory.
|
|
186
|
+
Installing the same version again refuses to overwrite its directory.
|
|
187
|
+
|
|
188
|
+
### Docker
|
|
189
|
+
|
|
190
|
+
**Pending image publication.** Install [Docker](https://docs.docker.com/get-started/get-docker/)
|
|
191
|
+
and replace `PUBLISHED_IMAGE:VERSION` with the announced image and immutable tag:
|
|
192
|
+
|
|
193
|
+
```sh
|
|
194
|
+
docker run --rm PUBLISHED_IMAGE:VERSION --help
|
|
195
|
+
docker run --rm PUBLISHED_IMAGE:VERSION --version
|
|
196
|
+
```
|
|
197
|
+
|
|
198
|
+
The image uses `octonodes` as its entrypoint and includes Node 24. Pass CLI
|
|
199
|
+
arguments after the image name. Bind-mount your project to a working directory
|
|
200
|
+
for file-based commands; interactive login state is not retained by `--rm`.
|
|
201
|
+
|
|
202
|
+
### Verify and sign in
|
|
203
|
+
|
|
204
|
+
After a global, native or direct installation:
|
|
205
|
+
|
|
206
|
+
```sh
|
|
207
|
+
octonodes --version
|
|
208
|
+
octonodes --help
|
|
209
|
+
octonodes login
|
|
210
|
+
```
|
|
211
|
+
|
|
212
|
+
Login opens browser authentication. For a terminal-only session, use
|
|
213
|
+
`octonodes login --email you@example.com`. If the command is not found, open a
|
|
214
|
+
new terminal and check your package manager's global bin directory or the direct
|
|
215
|
+
installer PATH. Use `command -v octonodes` on macOS/Linux or
|
|
216
|
+
`Get-Command octonodes` in PowerShell to see which installation is selected.
|
|
217
|
+
|
|
218
|
+
### Update or uninstall
|
|
219
|
+
|
|
220
|
+
Use the same channel that installed the CLI:
|
|
221
|
+
|
|
222
|
+
| Channel | Update | Uninstall |
|
|
223
|
+
| --- | --- | --- |
|
|
224
|
+
| npm | `npm install --global @octonodes/cli@latest` | `npm uninstall --global @octonodes/cli` |
|
|
225
|
+
| pnpm | `pnpm add --global @octonodes/cli@latest` | `pnpm remove --global @octonodes/cli` |
|
|
226
|
+
| Yarn Classic | `yarn global add @octonodes/cli@latest` | `yarn global remove @octonodes/cli` |
|
|
227
|
+
| Bun | `bun add --global @octonodes/cli@latest` | `bun remove --global @octonodes/cli` |
|
|
228
|
+
| Homebrew | `brew update` then `brew upgrade octonodes` | `brew uninstall octonodes` |
|
|
229
|
+
| WinGet | `winget upgrade --id Octonode.CLI --exact` | `winget uninstall --id Octonode.CLI --exact` |
|
|
230
|
+
| Scoop | `scoop update octonodes` | `scoop uninstall octonodes` |
|
|
231
|
+
| Chocolatey | `choco upgrade octonodes --yes` | `choco uninstall octonodes --yes` |
|
|
232
|
+
| APT repository | `sudo apt update` then `sudo apt install --only-upgrade octonodes` | `sudo apt remove octonodes` |
|
|
233
|
+
| DNF repository | `sudo dnf upgrade octonodes` | `sudo dnf remove octonodes` |
|
|
234
|
+
| Arch / AUR helper | `yay -S octonodes-bin` | `sudo pacman -R octonodes-bin` |
|
|
235
|
+
| Snap | `sudo snap refresh octonodes` | `sudo snap remove octonodes` |
|
|
236
|
+
|
|
237
|
+
For a downloaded DEB/RPM/MSI, download and verify the newer package and install
|
|
238
|
+
it with the same tool. Remove an MSI through Windows Installed apps. For direct
|
|
239
|
+
installations, run the newer version's installer; to uninstall, remove its managed
|
|
240
|
+
command link or PATH entry and its version directory. For Docker, pull the newer
|
|
241
|
+
tag and recreate the container, or remove the image with `docker image rm`.
|
|
242
|
+
Login data under `~/.octonode` is separate from installed binaries; use
|
|
243
|
+
`octonodes logout` before uninstalling to remove the saved login and revoke a
|
|
244
|
+
saved Studio session. Static API tokens must be revoked separately in Studio.
|
|
245
|
+
|
|
246
|
+
See the [full installation guide](https://playbook.octonodes.com/docs/installation)
|
|
247
|
+
for signed APT/DNF repository setup.
|
|
248
|
+
|
|
6
249
|
## Create an app
|
|
7
250
|
|
|
8
|
-
Use Node
|
|
251
|
+
Use Node 20.19+, 22.12+, or newer and a CLI release containing `octonodes app`. The default scaffold
|
|
9
252
|
is a full Vite app with one hosted page and a backend. Contributions are optional.
|
|
10
|
-
Use `--template extension` for
|
|
253
|
+
Use `--template extension` for a navbar launcher and panel inside Octonode.
|
|
254
|
+
Run `octonodes app targets` to list supported view/action/launcher targets; add a
|
|
255
|
+
contextual entry with `octonodes app extension add explain-node --target node.action`.
|
|
256
|
+
The extension starter uses `octonode.app/v2` and builds an app manifest v3 release.
|
|
257
|
+
These targets require the branch-built SDK/CLI and a matching host until publication;
|
|
258
|
+
see the [native extension API guide](../ui-extensions/README.md#native-app-contributions-v3).
|
|
11
259
|
|
|
12
260
|
```sh
|
|
13
261
|
octonodes app create workspace-notice
|
|
@@ -27,6 +275,9 @@ in Studio with `octonodes login` followed by
|
|
|
27
275
|
`octonodes app dev --workspace user:<id>`.
|
|
28
276
|
Octonode colors are enabled automatically in interactive terminals.
|
|
29
277
|
Redirected output stays plain for scripts.
|
|
278
|
+
For extension-only projects, edit `octonode.app.json` and `src/extensions/assistant.tsx`.
|
|
279
|
+
Local preview supplies read-only context and starts actions from an explicit Run button;
|
|
280
|
+
commands requiring native resources need Studio preview or an installed app.
|
|
30
281
|
|
|
31
282
|
```sh
|
|
32
283
|
octonodes app extension add overview --target app.page
|
|
@@ -34,8 +285,8 @@ octonodes app publish --workspace user:<id>
|
|
|
34
285
|
```
|
|
35
286
|
|
|
36
287
|
The default app opens its hosted page inside Studio. The command above adds an optional app-page contribution.
|
|
37
|
-
Install through Studio → Apps; a
|
|
38
|
-
workspace
|
|
288
|
+
Install through Studio → Apps; the extension starter adds a navbar button that opens
|
|
289
|
+
its panel. A declared workspace block appears on workspace home; page-capable apps open from Apps. An administrator can
|
|
39
290
|
configure or disable an installation. The first publication returns the app ID
|
|
40
291
|
and revision. Increment the source version and publish an update with
|
|
41
292
|
`--app-id <id> --revision <current-revision>`; existing installs remain pinned
|
|
@@ -43,7 +294,7 @@ until their administrator approves an update.
|
|
|
43
294
|
|
|
44
295
|
Full apps include a connected backend. Set `web.applicationUrl` in `octonode.app.json` to a permanent HTTPS
|
|
45
296
|
origin, add only necessary `web.requestedActions`, and run `npm test`. The CLI
|
|
46
|
-
publishes release metadata; deploy `dist/web/<app-id>` to a Node
|
|
297
|
+
publishes release metadata; deploy `dist/web/<app-id>` to a supported Node
|
|
47
298
|
host yourself, set `OCTONODE_APP_ID` and `OCTONODE_API_URL`, and run
|
|
48
299
|
`node start.cjs`. Keep prior content-hashed assets for pinned installations.
|
|
49
300
|
The [Playbook app guide](https://playbook.octonodes.com/docs/apps) covers the
|
|
@@ -59,7 +310,7 @@ octonodes app create my-plain-app --platform plain
|
|
|
59
310
|
```
|
|
60
311
|
|
|
61
312
|
Vite and Next.js create a full app with a real framework page in `src/web/App.tsx`,
|
|
62
|
-
|
|
313
|
+
verified workspace content, a Projects route registered in Studio, and the verified `/api/context` and `/api/projects` backend routes. The CLI
|
|
63
314
|
builds Vite or a Next.js static export into the same verified web artifact and
|
|
64
315
|
serves it through the development tunnel. Next.js server features are outside
|
|
65
316
|
this static export; add backend routes in `src/server.ts`.
|
|
@@ -67,8 +318,8 @@ Plain uses `src/welcome.html`, `src/hosted.ts`, and the same backend without Vit
|
|
|
67
318
|
|
|
68
319
|
Generated workspaces include `installConfig.hoistingLimits: workspaces` for Yarn 4.
|
|
69
320
|
The hosted SDK keeps normal browser history and mirrors embedded routes into Studio’s
|
|
70
|
-
`appPath` query parameter. Development starts with no grants;
|
|
71
|
-
|
|
321
|
+
`appPath` query parameter. Development starts with no grants; approve temporary,
|
|
322
|
+
selected-project access in Studio to load project data. See the
|
|
72
323
|
[Apps development guide](https://playbook.octonodes.com/docs/apps/development).
|
|
73
324
|
|
|
74
325
|
## Create and publish plugins
|
|
@@ -114,23 +365,10 @@ For definitions without a release file, set `scope: ["public"]` in TypeScript an
|
|
|
114
365
|
rebuild first. Artifact publication accepts `--org` and `--team`; the optional
|
|
115
366
|
`OCTONODE_MARKETPLACE_TOKEN` overrides normal CLI authentication.
|
|
116
367
|
|
|
117
|
-
## Run
|
|
118
|
-
|
|
119
|
-
Use it directly with `npx`:
|
|
120
|
-
|
|
121
|
-
```sh
|
|
122
|
-
npx @octonodes/cli --help
|
|
123
|
-
```
|
|
124
|
-
|
|
125
|
-
Or install it globally. The installed command is `octonodes`:
|
|
126
|
-
|
|
127
|
-
```sh
|
|
128
|
-
npm install --global @octonodes/cli
|
|
129
|
-
octonodes --version
|
|
130
|
-
```
|
|
131
|
-
|
|
132
368
|
## Sign in
|
|
133
369
|
|
|
370
|
+
Login uses `https://octonodes.com` by default; `--base-url` or `OCTONODE_URL` can select another Studio deployment.
|
|
371
|
+
|
|
134
372
|
The default login opens GitHub authentication in your browser and signs in as the same user as
|
|
135
373
|
Octonode Studio:
|
|
136
374
|
|
package/dist/apps/build.d.ts
CHANGED
|
@@ -8,6 +8,7 @@ export declare function verifyWebBuild(directory: string): {
|
|
|
8
8
|
apiVersion: "1";
|
|
9
9
|
hosting: "self-hosted";
|
|
10
10
|
applicationUrl: string;
|
|
11
|
+
icon?: "arrow-up-down" | "binary" | "bomb" | "boxes" | "braces" | "calculator" | "calendar" | "camera" | "clock" | "code" | "copy-x" | "database" | "dices" | "filter" | "flag" | "flask" | "function" | "git-branch" | "git-merge" | "group" | "hook" | "list-filter" | "merge" | "octagon-x" | "package" | "package-x" | "pencil" | "play" | "regex" | "repeat" | "replace" | "ruler" | "scan-eye" | "scissors" | "search" | "server-cog" | "settings" | "sigma" | "split" | "terminal" | "test-tube" | "text-cursor-input" | "ticket" | "truck" | "type" | "typescript" | "ungroup" | "variable" | "wand" | "wave" | "webhook" | "workflow" | "x" | undefined;
|
|
11
12
|
iconUrl?: string | undefined;
|
|
12
13
|
privacyUrl?: string | undefined;
|
|
13
14
|
supportUrl?: string | undefined;
|
|
@@ -23,6 +24,7 @@ export declare function verifyWebBuild(directory: string): {
|
|
|
23
24
|
} | {
|
|
24
25
|
apiVersion: "2";
|
|
25
26
|
hosting: "extension-only";
|
|
27
|
+
icon?: "arrow-up-down" | "binary" | "bomb" | "boxes" | "braces" | "calculator" | "calendar" | "camera" | "clock" | "code" | "copy-x" | "database" | "dices" | "filter" | "flag" | "flask" | "function" | "git-branch" | "git-merge" | "group" | "hook" | "list-filter" | "merge" | "octagon-x" | "package" | "package-x" | "pencil" | "play" | "regex" | "repeat" | "replace" | "ruler" | "scan-eye" | "scissors" | "search" | "server-cog" | "settings" | "sigma" | "split" | "terminal" | "test-tube" | "text-cursor-input" | "ticket" | "truck" | "type" | "typescript" | "ungroup" | "variable" | "wand" | "wave" | "webhook" | "workflow" | "x" | undefined;
|
|
26
28
|
iconUrl?: string | undefined;
|
|
27
29
|
settings: {
|
|
28
30
|
id: string;
|
|
@@ -38,5 +40,41 @@ export declare function verifyWebBuild(directory: string): {
|
|
|
38
40
|
path: string;
|
|
39
41
|
sha256: string;
|
|
40
42
|
}[];
|
|
43
|
+
} | {
|
|
44
|
+
hosting: "extension-only";
|
|
45
|
+
icon?: "arrow-up-down" | "binary" | "bomb" | "boxes" | "braces" | "calculator" | "calendar" | "camera" | "clock" | "code" | "copy-x" | "database" | "dices" | "filter" | "flag" | "flask" | "function" | "git-branch" | "git-merge" | "group" | "hook" | "list-filter" | "merge" | "octagon-x" | "package" | "package-x" | "pencil" | "play" | "regex" | "repeat" | "replace" | "ruler" | "scan-eye" | "scissors" | "search" | "server-cog" | "settings" | "sigma" | "split" | "terminal" | "test-tube" | "text-cursor-input" | "ticket" | "truck" | "type" | "typescript" | "ungroup" | "variable" | "wand" | "wave" | "webhook" | "workflow" | "x" | undefined;
|
|
46
|
+
iconUrl?: string | undefined;
|
|
47
|
+
settings: {
|
|
48
|
+
id: string;
|
|
49
|
+
label: string;
|
|
50
|
+
defaultValue: string;
|
|
51
|
+
}[];
|
|
52
|
+
privacyUrl?: string | undefined;
|
|
53
|
+
supportUrl?: string | undefined;
|
|
54
|
+
apiVersion: "3";
|
|
55
|
+
requestedActions: ("data:read" | "data:write" | "projects:read" | "workflows:run")[];
|
|
56
|
+
extensions: {
|
|
57
|
+
id: string;
|
|
58
|
+
target: "app.page" | "app.settings.section" | "document.action" | "document.block.action" | "document.panel" | "document.review.action" | "document.selection-action" | "document.slash-command" | "document.tab" | "editor.action" | "editor.panel" | "editor.selection-action" | "execution.action" | "execution.details.block" | "file.action" | "git.diff.action" | "git.diff.panel" | "node.action" | "node.inspector.block" | "node.inspector.tab" | "node.view" | "project.action" | "project.overview.block" | "project.settings.section" | "project.tab" | "shell.dock" | "shell.panel" | "table.action" | "table.view" | "task.action" | "task.card.badge" | "task.details.block" | "task.details.tab" | "task.space.action" | "task.space.view" | "workflow.action" | "workflow.canvas.action" | "workflow.edge.action" | "workflow.inspector.block" | "workflow.selection-action" | "workflow.tab" | "workspace.block";
|
|
59
|
+
title: string;
|
|
60
|
+
icon?: "arrow-up-down" | "binary" | "bomb" | "boxes" | "braces" | "calculator" | "calendar" | "camera" | "clock" | "code" | "copy-x" | "database" | "dices" | "filter" | "flag" | "flask" | "function" | "git-branch" | "git-merge" | "group" | "hook" | "list-filter" | "merge" | "octagon-x" | "package" | "package-x" | "pencil" | "play" | "regex" | "repeat" | "replace" | "ruler" | "scan-eye" | "scissors" | "search" | "server-cog" | "settings" | "sigma" | "split" | "terminal" | "test-tube" | "text-cursor-input" | "ticket" | "truck" | "type" | "typescript" | "ungroup" | "variable" | "wand" | "wave" | "webhook" | "workflow" | "x" | undefined;
|
|
61
|
+
path: string;
|
|
62
|
+
sha256: string;
|
|
63
|
+
when?: {
|
|
64
|
+
hasProject?: boolean | undefined;
|
|
65
|
+
hasSelection?: boolean | undefined;
|
|
66
|
+
readOnly?: boolean | undefined;
|
|
67
|
+
nodeKind?: string | undefined;
|
|
68
|
+
documentFormat?: "html" | "latex" | "markdown" | undefined;
|
|
69
|
+
} | undefined;
|
|
70
|
+
}[];
|
|
71
|
+
launchers: {
|
|
72
|
+
id: string;
|
|
73
|
+
target: "shell.command" | "shell.navbar.action" | "shell.navigation.item";
|
|
74
|
+
title: string;
|
|
75
|
+
icon?: "arrow-up-down" | "binary" | "bomb" | "boxes" | "braces" | "calculator" | "calendar" | "camera" | "clock" | "code" | "copy-x" | "database" | "dices" | "filter" | "flag" | "flask" | "function" | "git-branch" | "git-merge" | "group" | "hook" | "list-filter" | "merge" | "octagon-x" | "package" | "package-x" | "pencil" | "play" | "regex" | "repeat" | "replace" | "ruler" | "scan-eye" | "scissors" | "search" | "server-cog" | "settings" | "sigma" | "split" | "terminal" | "test-tube" | "text-cursor-input" | "ticket" | "truck" | "type" | "typescript" | "ungroup" | "variable" | "wand" | "wave" | "webhook" | "workflow" | "x" | undefined;
|
|
76
|
+
opens: string;
|
|
77
|
+
}[];
|
|
78
|
+
locales: Record<string, Record<string, string>>;
|
|
41
79
|
};
|
|
42
80
|
//# sourceMappingURL=build.d.ts.map
|
package/dist/apps/build.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"build.d.ts","sourceRoot":"","sources":["../../src/apps/build.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"build.d.ts","sourceRoot":"","sources":["../../src/apps/build.ts"],"names":[],"mappings":"AAkBA,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAKxD,wBAAsB,eAAe,CAAC,SAAS,EAAE,MAAM,EAAE,cAAc,CAAC,EAAE,MAAM;;;;GA4K/E;AAED,wBAAgB,cAAc,CAAC,SAAS,EAAE,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAa/C"}
|
package/dist/apps/build.js
CHANGED
|
@@ -2,12 +2,14 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.buildAppProject = buildAppProject;
|
|
4
4
|
exports.verifyWebBuild = verifyWebBuild;
|
|
5
|
+
const plugins_1 = require("@octonodes/sdk/plugins");
|
|
5
6
|
const node_fs_1 = require("node:fs");
|
|
6
7
|
const node_path_1 = require("node:path");
|
|
7
8
|
const node_child_process_1 = require("node:child_process");
|
|
8
9
|
const node_util_1 = require("node:util");
|
|
9
10
|
const esbuild_1 = require("esbuild");
|
|
10
|
-
const
|
|
11
|
+
const plugins_2 = require("@octonodes/sdk/plugins");
|
|
12
|
+
const plugins_3 = require("@octonodes/sdk/plugins");
|
|
11
13
|
const app_1 = require("../plugins/app");
|
|
12
14
|
const artifact_1 = require("../plugins/artifact");
|
|
13
15
|
const source_1 = require("./source");
|
|
@@ -31,7 +33,7 @@ async function buildAppProject(directory, applicationUrl) {
|
|
|
31
33
|
const result = await (0, esbuild_1.build)({
|
|
32
34
|
absWorkingDir: root,
|
|
33
35
|
stdin: {
|
|
34
|
-
contents: `import extension from ${JSON.stringify(entry)}; import { startExtension } from "@octonodes/ui-extensions/react"; if (extension.target !== ${JSON.stringify(extension.target)}) throw new Error("Extension target mismatch"); startExtension(extension)
|
|
36
|
+
contents: `import extension from ${JSON.stringify(entry)}; import { startExtension } from "@octonodes/ui-extensions/react"; import { startAction } from "@octonodes/ui-extensions"; if (extension.target !== ${JSON.stringify(extension.target)}) throw new Error("Extension target mismatch"); if ((extension.kind === "action") !== ${JSON.stringify(plugins_2.APP_ACTION_TARGETS.includes(extension.target))}) throw new Error("Extension kind mismatch"); ${source.apiVersion === "octonode.app/v2" ? 'extension.kind === "action" ? startAction(extension) : startExtension(extension);' : 'startExtension(extension);'}`,
|
|
35
37
|
resolveDir: root,
|
|
36
38
|
loader: "ts",
|
|
37
39
|
},
|
|
@@ -68,7 +70,7 @@ async function buildAppProject(directory, applicationUrl) {
|
|
|
68
70
|
const normalized = new URL(origin);
|
|
69
71
|
if (normalized.origin !== origin.replace(/\/$/, ""))
|
|
70
72
|
throw new Error("App URL must be an HTTPS origin");
|
|
71
|
-
const manifest =
|
|
73
|
+
const manifest = plugins_3.PluginManifest.parse({
|
|
72
74
|
id: source.id,
|
|
73
75
|
name: source.name,
|
|
74
76
|
version: source.version,
|
|
@@ -95,7 +97,7 @@ async function buildAppProject(directory, applicationUrl) {
|
|
|
95
97
|
platform: "node",
|
|
96
98
|
preserveSymlinks: true,
|
|
97
99
|
format: "cjs",
|
|
98
|
-
target:
|
|
100
|
+
target: plugins_1.NODE_BUILD_TARGET,
|
|
99
101
|
outfile: (0, node_path_1.join)(stage, "server.cjs"),
|
|
100
102
|
logLevel: "silent",
|
|
101
103
|
metafile: true,
|
|
@@ -153,7 +155,7 @@ process.once("SIGINT",()=>host.close());process.once("SIGTERM",()=>host.close())
|
|
|
153
155
|
bundle: true,
|
|
154
156
|
platform: "node",
|
|
155
157
|
format: "cjs",
|
|
156
|
-
target:
|
|
158
|
+
target: plugins_1.NODE_BUILD_TARGET,
|
|
157
159
|
outfile: (0, node_path_1.join)(stage, "start.cjs"),
|
|
158
160
|
logLevel: "silent",
|
|
159
161
|
});
|
|
@@ -203,7 +205,7 @@ function verifyWebBuild(directory) {
|
|
|
203
205
|
for (const file of actual)
|
|
204
206
|
if (record.files[file] !== (0, artifact_1.fileHash)((0, node_path_1.join)(directory, file)))
|
|
205
207
|
throw new Error("Web build changed; rebuild first");
|
|
206
|
-
const manifest =
|
|
208
|
+
const manifest = plugins_3.PluginManifest.parse({ id: record.id, name: "web", version: "1.0.0", app: record.app });
|
|
207
209
|
return manifest.app;
|
|
208
210
|
}
|
|
209
211
|
function assertSourceInputs(root, inputs) {
|
package/dist/apps/build.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"build.js","sourceRoot":"","sources":["../../src/apps/build.ts"],"names":[],"mappings":";;;;AAAA,qCAWiB;AACjB,yCAAoD;AACpD,2DAA8C;AAC9C,yCAAsC;AACtC,qCAAgC;AAChC,oDAAwD;AACxD,wCAA0C;AAC1C,kDAAsE;AACtE,qCAAkE;AAE3D,KAAK,0BAA0B,SAAiB,EAAE,cAAuB;IAC9E,MAAM,IAAI,GAAG,IAAA,mBAAO,EAAC,SAAS,CAAC,CAAC;IAChC,MAAM,MAAM,GAAG,IAAA,sBAAa,EAAC,IAAI,CAAC,CAAC;IACnC,IAAI,MAAM,GAAG,IAAI,CAAC;IAClB,KAAK,MAAM,IAAI,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC;QACpC,MAAM,GAAG,IAAA,gBAAI,EAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QAC5B,IAAI,CAAC,IAAA,mBAAS,EAAC,MAAM,EAAE,EAAE,cAAc,EAAE,KAAK,EAAE,CAAC;YAAE,IAAA,mBAAS,EAAC,MAAM,CAAC,CAAC;QACrE,IAAI,CAAC,IAAA,mBAAS,EAAC,MAAM,CAAC,CAAC,WAAW,EAAE,IAAI,IAAA,mBAAS,EAAC,MAAM,CAAC,CAAC,cAAc,EAAE;YACxE,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;IAC9C,CAAC;IACD,MAAM,KAAK,GAAG,IAAA,qBAAW,EAAC,IAAA,gBAAI,EAAC,MAAM,EAAE,WAAW,CAAC,CAAC,CAAC;IACrD,IAAI,CAAC;QACH,IAAA,mBAAS,EAAC,IAAA,gBAAI,EAAC,KAAK,EAAE,YAAY,CAAC,CAAC,CAAC;QACrC,MAAM,MAAM,GAAa,EAAE,CAAC;QAC5B,KAAK,MAAM,SAAS,IAAI,MAAM,CAAC,UAAU,EAAE,CAAC;YAC1C,MAAM,KAAK,GAAG,IAAA,mBAAU,EAAC,IAAI,EAAE,SAAS,CAAC,KAAK,CAAC,CAAC;YAChD,MAAM,MAAM,GAAG,MAAM,IAAA,eAAK,EAAC;gBACzB,aAAa,EAAE,IAAI;gBACnB,KAAK,EAAE;oBACL,QAAQ,EAAE,yBAAyB,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC
|
|
1
|
+
{"version":3,"file":"build.js","sourceRoot":"","sources":["../../src/apps/build.ts"],"names":[],"mappings":"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"}
|
package/dist/apps/constants.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
export declare const APP_STUDIO_URL = "https://octonodes.com";
|
|
2
2
|
export declare const APP_SOURCE = "octonode.app.json";
|
|
3
|
-
export declare const APP_HELP = "Usage:\n octonodes app create <name> [--template extension|full] [--platform plain|vite|next]\n octonodes app extension add <id> --target
|
|
3
|
+
export declare const APP_HELP = "Usage:\n octonodes app create <name> [--template extension|full] [--platform plain|vite|next]\n octonodes app targets\n octonodes app extension add <id> --target <target> [--cwd <directory>]\n octonodes app dev [directory] [--use-localhost | --tunnel-url <https-origin>] [--port <port>] [--no-open] [--workspace kind:id]\n octonodes app build [directory] [--app-url <https-origin>]\n octonodes app serve [directory] [--port <port>]\n octonodes app publish [directory] --workspace kind:id [--app-id <id> --revision <n>]\n octonodes app validate <artifact-directory>\n\nCreate defaults to a full Vite app (--platform vite). Use --platform plain for HTML or\n--platform next for Next.js. Use --template extension for an in-app panel and navbar launcher.\nExtension templates use octonode.app/v2; app targets lists the supported view/action/launcher targets.\nBuild compiles declared browser entries and generates\nrelease hashes in dist/apps/<id>. Existing projects are never overwritten. No login is needed.\napp dev opens a public Quick Tunnel automatically.\napp dev automatically downloads and caches its tunnel helper. No Cloudflare account or install is needed. --workspace opens an expiring Studio preview after login.\napp publish creates an immutable release; full apps must deploy their backend separately.\nInstallation requires Studio consent.\n";
|
|
4
4
|
export declare const CLOUDFLARED_VERSION = "2026.9.3";
|
|
5
5
|
export declare const CLOUDFLARED_ASSETS: Record<string, import("./types").CloudflaredAsset>;
|
|
6
6
|
//# sourceMappingURL=constants.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/apps/constants.ts"],"names":[],"mappings":"AACA,eAAO,MAAM,cAAc,0BAA0B,CAAC;AACtD,eAAO,MAAM,UAAU,sBAAsB,CAAC;AAC9C,eAAO,MAAM,QAAQ,
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/apps/constants.ts"],"names":[],"mappings":"AACA,eAAO,MAAM,cAAc,0BAA0B,CAAC;AACtD,eAAO,MAAM,UAAU,sBAAsB,CAAC;AAC9C,eAAO,MAAM,QAAQ,u1CAmBpB,CAAC;AAGF,eAAO,MAAM,mBAAmB,aAAa,CAAC;AAC9C,eAAO,MAAM,kBAAkB,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,SAAS,EAAE,gBAAgB,CAuBjF,CAAC"}
|
package/dist/apps/constants.js
CHANGED
|
@@ -6,7 +6,8 @@ exports.APP_STUDIO_URL = "https://octonodes.com";
|
|
|
6
6
|
exports.APP_SOURCE = "octonode.app.json";
|
|
7
7
|
exports.APP_HELP = `Usage:
|
|
8
8
|
octonodes app create <name> [--template extension|full] [--platform plain|vite|next]
|
|
9
|
-
octonodes app
|
|
9
|
+
octonodes app targets
|
|
10
|
+
octonodes app extension add <id> --target <target> [--cwd <directory>]
|
|
10
11
|
octonodes app dev [directory] [--use-localhost | --tunnel-url <https-origin>] [--port <port>] [--no-open] [--workspace kind:id]
|
|
11
12
|
octonodes app build [directory] [--app-url <https-origin>]
|
|
12
13
|
octonodes app serve [directory] [--port <port>]
|
|
@@ -14,7 +15,8 @@ exports.APP_HELP = `Usage:
|
|
|
14
15
|
octonodes app validate <artifact-directory>
|
|
15
16
|
|
|
16
17
|
Create defaults to a full Vite app (--platform vite). Use --platform plain for HTML or
|
|
17
|
-
--platform next for Next.js. Use --template extension for an
|
|
18
|
+
--platform next for Next.js. Use --template extension for an in-app panel and navbar launcher.
|
|
19
|
+
Extension templates use octonode.app/v2; app targets lists the supported view/action/launcher targets.
|
|
18
20
|
Build compiles declared browser entries and generates
|
|
19
21
|
release hashes in dist/apps/<id>. Existing projects are never overwritten. No login is needed.
|
|
20
22
|
app dev opens a public Quick Tunnel automatically.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/apps/constants.ts"],"names":[],"mappings":";;;AAAA,wEAAwE;AAC3D,QAAA,cAAc,GAAG,uBAAuB,CAAC;AACzC,QAAA,UAAU,GAAG,mBAAmB,CAAC;AACjC,QAAA,QAAQ,GAAG
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/apps/constants.ts"],"names":[],"mappings":";;;AAAA,wEAAwE;AAC3D,QAAA,cAAc,GAAG,uBAAuB,CAAC;AACzC,QAAA,UAAU,GAAG,mBAAmB,CAAC;AACjC,QAAA,QAAQ,GAAG;;;;;;;;;;;;;;;;;;;CAmBvB,CAAC;AAEF,2FAA2F;AAC9E,QAAA,mBAAmB,GAAG,UAAU,CAAC;AACjC,QAAA,kBAAkB,GAAuD;IACpF,YAAY,EAAE;QACZ,IAAI,EAAE,8BAA8B;QACpC,MAAM,EAAE,kEAAkE;QAC1E,YAAY,EAAE,kEAAkE;KACjF;IACD,cAAc,EAAE;QACd,IAAI,EAAE,8BAA8B;QACpC,MAAM,EAAE,kEAAkE;QAC1E,YAAY,EAAE,kEAAkE;KACjF;IACD,WAAW,EAAE;QACX,IAAI,EAAE,yBAAyB;QAC/B,MAAM,EAAE,kEAAkE;KAC3E;IACD,aAAa,EAAE;QACb,IAAI,EAAE,yBAAyB;QAC/B,MAAM,EAAE,kEAAkE;KAC3E;IACD,WAAW,EAAE;QACX,IAAI,EAAE,+BAA+B;QACrC,MAAM,EAAE,kEAAkE;KAC3E;CACF,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create.d.ts","sourceRoot":"","sources":["../../src/apps/create.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"create.d.ts","sourceRoot":"","sources":["../../src/apps/create.ts"],"names":[],"mappings":"AAuBA,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,SAAS,EAAE,QAAQ,GAAE,MAAM,GAAG,SAAoD,GAAG,MAAM,CAmP3J;AACD,wBAAgB,eAAe,CAAC,SAAS,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;;;;EA+B5E"}
|