@crowdedkingdoms/crowdyjs 10.0.0 → 11.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/MIGRATION.md +48 -48
- package/README.md +24 -21
- package/dist/crowdy-client.d.ts +3 -3
- package/dist/crowdy-client.d.ts.map +1 -1
- package/dist/crowdy-client.js +2 -2
- package/dist/crowdy-studio/controller.d.ts +188 -0
- package/dist/crowdy-studio/controller.d.ts.map +1 -0
- package/dist/{mod-studio → crowdy-studio}/controller.js +22 -22
- package/dist/crowdy-studio/diagnostics.d.ts +22 -0
- package/dist/crowdy-studio/diagnostics.d.ts.map +1 -0
- package/dist/{mod-studio → crowdy-studio}/diagnostics.js +2 -2
- package/dist/{mod-studio → crowdy-studio}/dom-shell.d.ts +4 -4
- package/dist/crowdy-studio/dom-shell.d.ts.map +1 -0
- package/dist/{mod-studio → crowdy-studio}/dom-shell.js +31 -31
- package/dist/crowdy-studio/editor.d.ts +17 -0
- package/dist/crowdy-studio/editor.d.ts.map +1 -0
- package/dist/crowdy-studio/index.d.ts +10 -0
- package/dist/crowdy-studio/index.d.ts.map +1 -0
- package/dist/{mod-studio → crowdy-studio}/index.js +4 -4
- package/dist/crowdy-studio/models.d.ts +149 -0
- package/dist/crowdy-studio/models.d.ts.map +1 -0
- package/dist/{mod-studio → crowdy-studio}/models.js +10 -10
- package/dist/{mod-studio → crowdy-studio}/monaco-editor.d.ts +3 -3
- package/dist/crowdy-studio/monaco-editor.d.ts.map +1 -0
- package/dist/{mod-studio → crowdy-studio}/monaco-editor.js +4 -4
- package/dist/crowdy-studio/mount.d.ts +17 -0
- package/dist/crowdy-studio/mount.d.ts.map +1 -0
- package/dist/{mod-studio → crowdy-studio}/mount.js +14 -14
- package/dist/crowdy-studio/starter-projects.d.ts +11 -0
- package/dist/crowdy-studio/starter-projects.d.ts.map +1 -0
- package/dist/{mod-studio → crowdy-studio}/starter-projects.js +2 -2
- package/dist/crowdy-studio/styles.d.ts +2 -0
- package/dist/crowdy-studio/styles.d.ts.map +1 -0
- package/dist/crowdy-studio/styles.js +14 -0
- package/dist/crowdy-studio/textarea-editor.d.ts +8 -0
- package/dist/crowdy-studio/textarea-editor.d.ts.map +1 -0
- package/dist/{mod-studio → crowdy-studio}/textarea-editor.js +3 -3
- package/dist/domains/crowdyStudio.d.ts +27 -0
- package/dist/domains/crowdyStudio.d.ts.map +1 -0
- package/dist/domains/{playerCodeProjects.js → crowdyStudio.js} +47 -45
- package/dist/domains/playerCompute.d.ts +1 -1
- package/dist/domains/playerCompute.js +1 -1
- package/dist/generated/graphql.d.ts +670 -670
- package/dist/generated/graphql.d.ts.map +1 -1
- package/dist/generated/graphql.js +57 -57
- package/dist/index.d.ts +3 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -3
- package/dist/kit/npcs.d.ts.map +1 -1
- package/dist/kit/social.d.ts.map +1 -1
- package/dist/live-coding/rust-analysis.js +1 -1
- package/package.json +4 -4
- package/dist/domains/playerCodeProjects.d.ts +0 -25
- package/dist/domains/playerCodeProjects.d.ts.map +0 -1
- package/dist/mod-studio/controller.d.ts +0 -188
- package/dist/mod-studio/controller.d.ts.map +0 -1
- package/dist/mod-studio/diagnostics.d.ts +0 -22
- package/dist/mod-studio/diagnostics.d.ts.map +0 -1
- package/dist/mod-studio/dom-shell.d.ts.map +0 -1
- package/dist/mod-studio/editor.d.ts +0 -17
- package/dist/mod-studio/editor.d.ts.map +0 -1
- package/dist/mod-studio/index.d.ts +0 -10
- package/dist/mod-studio/index.d.ts.map +0 -1
- package/dist/mod-studio/models.d.ts +0 -149
- package/dist/mod-studio/models.d.ts.map +0 -1
- package/dist/mod-studio/monaco-editor.d.ts.map +0 -1
- package/dist/mod-studio/mount.d.ts +0 -17
- package/dist/mod-studio/mount.d.ts.map +0 -1
- package/dist/mod-studio/starter-projects.d.ts +0 -11
- package/dist/mod-studio/starter-projects.d.ts.map +0 -1
- package/dist/mod-studio/styles.d.ts +0 -2
- package/dist/mod-studio/styles.d.ts.map +0 -1
- package/dist/mod-studio/styles.js +0 -14
- package/dist/mod-studio/textarea-editor.d.ts +0 -8
- package/dist/mod-studio/textarea-editor.d.ts.map +0 -1
- /package/dist/{mod-studio → crowdy-studio}/editor.js +0 -0
package/MIGRATION.md
CHANGED
|
@@ -1,28 +1,38 @@
|
|
|
1
|
-
# CrowdyJS
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
- `
|
|
12
|
-
- `
|
|
13
|
-
- `
|
|
14
|
-
- `
|
|
15
|
-
- `
|
|
16
|
-
|
|
17
|
-
-
|
|
18
|
-
|
|
19
|
-
|
|
1
|
+
# CrowdyJS v11 — Crowdy Studio rename (BREAKING)
|
|
2
|
+
|
|
3
|
+
Version 11 removes the previous Mod Studio names completely. There are no
|
|
4
|
+
compatibility exports, client properties, package subpaths, GraphQL operations,
|
|
5
|
+
schema types, or CSS aliases.
|
|
6
|
+
|
|
7
|
+
Rename imports and API access:
|
|
8
|
+
|
|
9
|
+
- `@crowdedkingdoms/crowdyjs/mod-studio` →
|
|
10
|
+
`@crowdedkingdoms/crowdyjs/crowdy-studio`
|
|
11
|
+
- `mountModStudio` → `mountCrowdyStudio`
|
|
12
|
+
- `ModStudioController` → `CrowdyStudioController`
|
|
13
|
+
- `MountModStudioOptions` → `MountCrowdyStudioOptions`
|
|
14
|
+
- `ModStudioHandle` → `CrowdyStudioHandle`
|
|
15
|
+
- every other public `ModStudio*` model, error, diagnostic, and editor type →
|
|
16
|
+
its `CrowdyStudio*` equivalent
|
|
17
|
+
- `modStudioFileKey`, `modStudioFileUri`, and `normalizeModStudioPath` →
|
|
18
|
+
`crowdyStudioFileKey`, `crowdyStudioFileUri`, and
|
|
19
|
+
`normalizeCrowdyStudioPath`
|
|
20
|
+
- `client.playerCodeProjects` → `client.crowdyStudio`
|
|
21
|
+
- `PlayerCodeProjectsAPI` → `CrowdyStudioAPI`
|
|
22
|
+
- CSS classes under `ck-mod-studio*` → `ck-crowdy-studio*`
|
|
23
|
+
|
|
24
|
+
The matching Game API schema is required. Its project roots changed from
|
|
25
|
+
`playerCodeProjects`, `playerCodeProject`, `playerCodeProjectCreate`,
|
|
26
|
+
`playerCodeProjectSave`, `playerCodeLibraryFiles`, `playerCodeLibrarySave`,
|
|
27
|
+
`playerCodeCommonFiles`, and `playerCodeProjectImportFile` to the corresponding
|
|
28
|
+
`crowdyStudio*` roots. Project, library, common-file, input, and enum schema
|
|
29
|
+
types likewise use `CrowdyStudio` in place of `PlayerCode`.
|
|
20
30
|
|
|
21
31
|
```ts
|
|
22
|
-
import {
|
|
32
|
+
import { mountCrowdyStudio } from '@crowdedkingdoms/crowdyjs/crowdy-studio';
|
|
23
33
|
|
|
24
|
-
const studio = await
|
|
25
|
-
projectProvider: game.
|
|
34
|
+
const studio = await mountCrowdyStudio(host, {
|
|
35
|
+
projectProvider: game.crowdyStudio,
|
|
26
36
|
playerCompute: game.playerCompute,
|
|
27
37
|
playerWallet: identity.playerWallet,
|
|
28
38
|
appId,
|
|
@@ -33,36 +43,26 @@ const studio = await mountModStudio(host, {
|
|
|
33
43
|
});
|
|
34
44
|
```
|
|
35
45
|
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
`{ target: 'SERVER' | 'CLIENT', path, content }`, and full-stack files share one
|
|
39
|
-
revision/save. Module names and pairing preference are project settings.
|
|
40
|
-
Do not stringify source maps in callers; Mod Studio creates `sourceFilesJson`
|
|
41
|
-
only at the existing `playerCompute.deploy` wire boundary.
|
|
42
|
-
|
|
43
|
-
Action semantics are now explicit:
|
|
44
|
-
|
|
45
|
-
- **Test draft** saves atomically, compiles, and runs with draft egress rules.
|
|
46
|
-
- **Deploy live** saves and runs the live project.
|
|
47
|
-
- **Stop project** attempts `setEnabled(false)`, client broker shutdown, and
|
|
48
|
-
polling cleanup, and returns partial failures instead of hiding them.
|
|
46
|
+
Provider behavior, optimistic saves, target permissions, the credential-free
|
|
47
|
+
worker, full-stack deploy ordering, and stop semantics are unchanged.
|
|
49
48
|
|
|
50
|
-
|
|
51
|
-
both succeed) → SERVER enable → exact-version CLIENT artifact hot-swap.
|
|
49
|
+
# CrowdyJS v10 — project-first authoring (historical)
|
|
52
50
|
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
`
|
|
57
|
-
|
|
51
|
+
Version 10 replaced the session-only live-coding API with cloud projects. It
|
|
52
|
+
removed `mountLiveCodingIDE`, `mountLiveCoding`, `LiveCodingController`,
|
|
53
|
+
`MountLiveCodingOptions`, `PLAYER_CODE_TEMPLATES`, `templateById`, the
|
|
54
|
+
`moduleName` and `draftByDefault` mount options, and the
|
|
55
|
+
`@crowdedkingdoms/crowdyjs/live-coding` package subpath.
|
|
58
56
|
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
`
|
|
57
|
+
Projects introduced one shared optimistic revision for SERVER and CLIENT files,
|
|
58
|
+
project metadata and module names, personal-library/common-file imports, atomic
|
|
59
|
+
autosave, and explicit **Test draft**, **Deploy live**, and **Stop project**
|
|
60
|
+
actions. Full-stack deployment was ordered CLIENT compile → SERVER compile →
|
|
61
|
+
`setRequires` → SERVER enable → exact-version CLIENT artifact hot-swap.
|
|
64
62
|
|
|
65
|
-
|
|
63
|
+
The browser Rust worker remained credential-free and server-free. Monaco used
|
|
64
|
+
target-prefixed URIs for cross-file language features and retained the
|
|
65
|
+
target/file-aware textarea fallback.
|
|
66
66
|
|
|
67
67
|
# CrowdyJS v8.10 Notes
|
|
68
68
|
|
package/README.md
CHANGED
|
@@ -33,10 +33,13 @@ CrowdyJS v4 targets browsers by default and uses native `fetch`, `WebSocket`, `c
|
|
|
33
33
|
> **Player-code authoring DX:** `playerCompute.setRequires`,
|
|
34
34
|
> `marketplace.trustGridAuthor`, self-authored `gridClientMods` fields, and
|
|
35
35
|
> version-keyed client artifact fetches require the 2026-07-22 authoring-DX
|
|
36
|
-
> migration. The
|
|
36
|
+
> migration. The v11 `mountCrowdyStudio` surface is project-first: cloud project
|
|
37
37
|
> revisions, target-scoped files, atomic autosave, and explicit draft/live/stop
|
|
38
38
|
> orchestration. Its Rust language worker receives source plus the committed
|
|
39
39
|
> platform index only—never a credential and never a server connection.
|
|
40
|
+
> CrowdyJS 11 requires the matching Crowdy Studio Game API schema; the previous
|
|
41
|
+
> package subpath, exports, client property, GraphQL roots, and schema types were
|
|
42
|
+
> removed without aliases.
|
|
40
43
|
|
|
41
44
|
> **v8.10 inventory authority:** generated craft/barter transactions work on
|
|
42
45
|
> existing Model servers. Compute-refereed durable commits require Compute SDK
|
|
@@ -140,7 +143,7 @@ If `managementUrl` is omitted, the SDK falls back to `httpUrl` for backwards-com
|
|
|
140
143
|
| `client.gameModel` | Abstract game model: containers, properties, functions (incl. model-driven `notify_*` effects), sessions, and **automations / NPCs** (`upsertAutomation`, `runAutomation`, `automationRuns`, `automationStats`, …). |
|
|
141
144
|
| `client.compute` | **Compute Modules** — server-side Rust/WASM logic: author + deploy source (`upsertModule`, `deployVersion`, `waitForCompile`), triggers + policy, synchronous `invoke`, and monitoring (`moduleRuns`, `moduleStats`, `moduleLogs`, `appDiagnostics`). Modules run server-only; see [Compute Modules docs](https://docs.crowdedkingdoms.com/game-api/compute-modules). |
|
|
142
145
|
| `client.playerCompute` | Player-authored SERVER/CLIENT Rust/WASM bound to player-owned grids: deploy source, activate/deactivate, list modules/versions, and delete self-authored modules. |
|
|
143
|
-
| `client.
|
|
146
|
+
| `client.crowdyStudio` | Cloud project, personal-library, and common-file APIs for Crowdy Studio: target-scoped files, metadata/module names, pairing preference, optimistic revisions, copy-by-value imports, and atomic metadata/file saves. Generated operations are pinned to the committed merged SDL. |
|
|
144
147
|
| `client.playerModel` | Player-owned flexible model containers and grid-confined automations (`containers`, `createContainer`, `setProperty`, `automations`, `createAutomation`, …). |
|
|
145
148
|
| `client.marketplace` | Player-code store/install/consent flows plus player-authorized grid claims: `claimGridOwnership` preserves the existing-grid policy flow, while `claimGridChunk` atomically creates and owns one chunk under `SELF_CLAIM` and `releaseClaimedGrid` releases an eligible owner-created claim. |
|
|
146
149
|
| `client.udp` | UDP proxy subscriptions + spatial mutations (`sendActorUpdate`, `sendVoxelUpdate`, `sendAudioPacket`, `sendTextPacket`, `sendClientEvent`). |
|
|
@@ -151,23 +154,23 @@ If `managementUrl` is omitted, the SDK falls back to `httpUrl` for backwards-com
|
|
|
151
154
|
`PlayerCodeBroker` transfers
|
|
152
155
|
compiled client artifacts to a platform-owned worker, keeps tokens on the page,
|
|
153
156
|
allow-lists host calls, and locally clamps chunk-targeted effects to the owned
|
|
154
|
-
grid before the normal SDK path reaches server authorization.
|
|
157
|
+
grid before the normal SDK path reaches server authorization. Crowdy Studio
|
|
155
158
|
hot-swaps only the exact version-keyed artifact returned after a successful
|
|
156
159
|
CLIENT compile.
|
|
157
160
|
|
|
158
|
-
##
|
|
161
|
+
## Crowdy Studio
|
|
159
162
|
|
|
160
|
-
`
|
|
163
|
+
`mountCrowdyStudio` is the project-first SERVER/CLIENT Rust authoring surface. A
|
|
161
164
|
project has one cloud revision, target-scoped files, project metadata, separate
|
|
162
165
|
server/client module names, and a pairing preference. Full-stack edits autosave
|
|
163
166
|
as one optimistic-concurrency write; the UI renders **Saving**, **Saved**,
|
|
164
167
|
**Conflict**, or **Offline**, with retry and conflict-resolution actions.
|
|
165
168
|
|
|
166
169
|
```ts
|
|
167
|
-
import {
|
|
170
|
+
import { mountCrowdyStudio } from '@crowdedkingdoms/crowdyjs/crowdy-studio';
|
|
168
171
|
|
|
169
|
-
const studio = await
|
|
170
|
-
projectProvider: game.
|
|
172
|
+
const studio = await mountCrowdyStudio(host, {
|
|
173
|
+
projectProvider: game.crowdyStudio,
|
|
171
174
|
playerCompute: game.playerCompute,
|
|
172
175
|
playerWallet: identity.playerWallet,
|
|
173
176
|
appId,
|
|
@@ -182,7 +185,7 @@ const studio = await mountModStudio(host, {
|
|
|
182
185
|
studio.destroy();
|
|
183
186
|
```
|
|
184
187
|
|
|
185
|
-
Use `new
|
|
188
|
+
Use `new CrowdyStudioController(options)` for a custom/headless presentation. Its
|
|
186
189
|
public edits are file operations (`addFile`, `renameFile`, `deleteFile`,
|
|
187
190
|
`updateFile`) and project settings—there is no session-only source blob, fixed
|
|
188
191
|
module name, or template JSON API. The deploy conversion to the Game API's
|
|
@@ -211,7 +214,7 @@ Build.
|
|
|
211
214
|
The Rust worker receives source files and the strict embedded platform index
|
|
212
215
|
only. It receives no credential, opens no socket/fetch path, and never falls
|
|
213
216
|
back to a server language service. If Monaco, Worker, a WASM asset, or a custom
|
|
214
|
-
platform index fails, the same
|
|
217
|
+
platform index fails, the same Crowdy Studio mount keeps project/target tabs and
|
|
215
218
|
uses one file-aware textarea—never a raw JSON blob.
|
|
216
219
|
|
|
217
220
|
Modern bundlers must preserve module workers and package `.wasm` assets. Custom
|
|
@@ -222,22 +225,22 @@ embedded index remains the byte-identical game export (`schemaVersion: 2`, Rust
|
|
|
222
225
|
|
|
223
226
|
### Game API project contract
|
|
224
227
|
|
|
225
|
-
`
|
|
226
|
-
`
|
|
228
|
+
`CrowdyStudioAPI` implements the transport-neutral
|
|
229
|
+
`CrowdyStudioProjectProvider`; generated GraphQL types remain inside the adapter.
|
|
227
230
|
The committed merged schema and generated operations cover:
|
|
228
231
|
|
|
229
|
-
- `
|
|
230
|
-
- `
|
|
231
|
-
- `
|
|
232
|
-
- `
|
|
233
|
-
- `
|
|
234
|
-
- `
|
|
232
|
+
- `crowdyStudioProjects(appId)` / `crowdyStudioProject(appId, projectId)`
|
|
233
|
+
- `crowdyStudioProjectCreate(input)`
|
|
234
|
+
- `crowdyStudioProjectSave(input)` for one atomic metadata/file delta
|
|
235
|
+
- `crowdyStudioLibraryFiles(appId)` / `crowdyStudioLibrarySave(input)`
|
|
236
|
+
- `crowdyStudioCommonFiles(appId)`
|
|
237
|
+
- `crowdyStudioProjectImportFile(input)` for copy-by-value imports
|
|
235
238
|
|
|
236
239
|
The adapter maps the API's `PAIRED | INDEPENDENT | SERVER_ONLY | CLIENT_ONLY`
|
|
237
|
-
presentation enum to
|
|
240
|
+
presentation enum to Crowdy Studio's runtime-oriented project kind and
|
|
238
241
|
`REQUIRED | OPTIONAL | NONE` setting. A stale expected `revision` arrives as
|
|
239
|
-
`CONFLICT` with `
|
|
240
|
-
`
|
|
242
|
+
`CONFLICT` with `CROWDY_STUDIO_REVISION_CONFLICT` in the message and becomes a
|
|
243
|
+
`CrowdyStudioRevisionConflictError` with the latest cloud project when that
|
|
241
244
|
follow-up read succeeds.
|
|
242
245
|
|
|
243
246
|
| `createWorldSession(client, appId, config)` (from `@crowdedkingdoms/crowdyjs/stores`) | World Stores: opt-in, SDK-managed game state — typed codecs (`structCodec` binary DSL), your own actor with a 5 Hz send loop (`session.self`), a remote-actor registry with lanes/history/staleness (`session.actors`), attributed send errors (`session.errors`), a chunk/voxel cache with realtime merge + worldgen write-back (`session.chunks`), channel/direct-message inboxes + a typed event router, host tracking, typed save/avatar state, and a game-model container mirror. Only configured stores exist (compile-time + runtime); unimported stores tree-shake away. |
|
package/dist/crowdy-client.d.ts
CHANGED
|
@@ -59,7 +59,7 @@ import { UdpAPI } from './domains/udp.js';
|
|
|
59
59
|
import { GameModelAPI } from './domains/gameModel.js';
|
|
60
60
|
import { ComputeAPI } from './domains/compute.js';
|
|
61
61
|
import { PlayerComputeAPI } from './domains/playerCompute.js';
|
|
62
|
-
import {
|
|
62
|
+
import { CrowdyStudioAPI } from './domains/crowdyStudio.js';
|
|
63
63
|
import { PlayerWalletAPI } from './domains/playerWallet.js';
|
|
64
64
|
import { MarketplaceAPI } from './domains/marketplace.js';
|
|
65
65
|
import { PlayerModelAPI } from './domains/playerModel.js';
|
|
@@ -198,8 +198,8 @@ export declare class CrowdyClient {
|
|
|
198
198
|
readonly compute: ComputeAPI;
|
|
199
199
|
/** Player-authored Rust/WASM bound to player-owned grids. */
|
|
200
200
|
readonly playerCompute: PlayerComputeAPI;
|
|
201
|
-
/**
|
|
202
|
-
readonly
|
|
201
|
+
/** Crowdy Studio cloud projects, libraries, and common source files. */
|
|
202
|
+
readonly crowdyStudio: CrowdyStudioAPI;
|
|
203
203
|
/** P4a marketplace (free mode): store, installs, consent, claim flows. */
|
|
204
204
|
readonly marketplace: MarketplaceAPI;
|
|
205
205
|
/** Player wallet, spend caps, hourly usage charges, and player policy (P2). */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"crowdy-client.d.ts","sourceRoot":"","sources":["../src/crowdy-client.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE/C,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AACzC,OAAO,EAAE,aAAa,EAAE,KAAK,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAEpE,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAC5C,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAC5C,OAAO,EACL,SAAS,EACT,KAAK,gBAAgB,EACrB,KAAK,SAAS,EACf,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAC9D,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAChD,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAC5D,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,oBAAoB,EAAE,MAAM,gCAAgC,CAAC;AACtE,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAC5D,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAChD,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAC5C,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAChD,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAChD,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAC5D,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC1C,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAC9D,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"crowdy-client.d.ts","sourceRoot":"","sources":["../src/crowdy-client.ts"],"names":[],"mappings":"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"}
|
package/dist/crowdy-client.js
CHANGED
|
@@ -58,7 +58,7 @@ import { UdpAPI } from './domains/udp.js';
|
|
|
58
58
|
import { GameModelAPI } from './domains/gameModel.js';
|
|
59
59
|
import { ComputeAPI } from './domains/compute.js';
|
|
60
60
|
import { PlayerComputeAPI } from './domains/playerCompute.js';
|
|
61
|
-
import {
|
|
61
|
+
import { CrowdyStudioAPI } from './domains/crowdyStudio.js';
|
|
62
62
|
import { PlayerWalletAPI } from './domains/playerWallet.js';
|
|
63
63
|
import { MarketplaceAPI } from './domains/marketplace.js';
|
|
64
64
|
import { PlayerModelAPI } from './domains/playerModel.js';
|
|
@@ -121,7 +121,7 @@ export class CrowdyClient {
|
|
|
121
121
|
});
|
|
122
122
|
this.compute = new ComputeAPI(this.graphql);
|
|
123
123
|
this.playerCompute = new PlayerComputeAPI(this.graphql);
|
|
124
|
-
this.
|
|
124
|
+
this.crowdyStudio = new CrowdyStudioAPI(this.graphql);
|
|
125
125
|
this.playerWallet = new PlayerWalletAPI(this.management);
|
|
126
126
|
this.marketplace = new MarketplaceAPI(this.graphql, this.management);
|
|
127
127
|
this.playerModel = new PlayerModelAPI(this.graphql);
|
|
@@ -0,0 +1,188 @@
|
|
|
1
|
+
import { type PlayerCodeBrokerOptions, type PlayerCodeGridBounds } from '../player-runtime/player-code-broker.js';
|
|
2
|
+
import type { PlayerComputeAPI } from '../domains/playerCompute.js';
|
|
3
|
+
import type { PlayerWalletAPI } from '../domains/playerWallet.js';
|
|
4
|
+
import { type CrowdyStudioDiagnostic } from './diagnostics.js';
|
|
5
|
+
import { type CrowdyStudioFileRef, type CrowdyStudioPairingPreference, type CrowdyStudioProject, type CrowdyStudioProjectMetadata, type CrowdyStudioProjectProvider, type CrowdyStudioProjectSummary, type CrowdyStudioReferenceFile, type CrowdyStudioSaveState, type CrowdyStudioTarget } from './models.js';
|
|
6
|
+
import { type CrowdyStudioNewProjectOptions } from './starter-projects.js';
|
|
7
|
+
export type CrowdyStudioPhase = 'IDLE' | 'TESTING_DRAFT' | 'DEPLOYING_LIVE' | 'COMPILING' | 'ENABLING' | 'RUNNING' | 'COMPILE_FAILED' | 'STOPPING' | 'STOPPED' | 'PARTIAL_FAILURE' | 'ERROR';
|
|
8
|
+
export type CrowdyStudioPolledSurface = 'runs' | 'logs' | 'usage';
|
|
9
|
+
export interface CrowdyStudioRuntimeStatus {
|
|
10
|
+
phase: CrowdyStudioPhase;
|
|
11
|
+
target?: CrowdyStudioTarget;
|
|
12
|
+
message?: string;
|
|
13
|
+
}
|
|
14
|
+
export interface CrowdyStudioUsageSnapshot {
|
|
15
|
+
hourUnitsUsed: string;
|
|
16
|
+
dayUnitsUsed: string;
|
|
17
|
+
unitsPerHour: string | null;
|
|
18
|
+
unitsPerDay: string | null;
|
|
19
|
+
compilesThisHour: number;
|
|
20
|
+
maxCompilesPerHour: number;
|
|
21
|
+
gateStatus: string;
|
|
22
|
+
gateReason: string | null;
|
|
23
|
+
}
|
|
24
|
+
export interface CrowdyStudioWalletSnapshot {
|
|
25
|
+
balanceCents: string;
|
|
26
|
+
currency: string;
|
|
27
|
+
}
|
|
28
|
+
export interface CrowdyStudioRun {
|
|
29
|
+
runId: string;
|
|
30
|
+
moduleName: string;
|
|
31
|
+
triggerSource: string;
|
|
32
|
+
startedAt: string;
|
|
33
|
+
durationUs: number;
|
|
34
|
+
fuelUsed: string;
|
|
35
|
+
success: boolean;
|
|
36
|
+
errorMessage?: string | null;
|
|
37
|
+
}
|
|
38
|
+
export interface CrowdyStudioInvokeResult {
|
|
39
|
+
resultBase64?: string | null;
|
|
40
|
+
resultJson?: string | null;
|
|
41
|
+
fuelUsed?: string;
|
|
42
|
+
durationUs?: number;
|
|
43
|
+
}
|
|
44
|
+
export interface CrowdyStudioState {
|
|
45
|
+
projects: readonly CrowdyStudioProjectSummary[];
|
|
46
|
+
project: CrowdyStudioProject | null;
|
|
47
|
+
personalLibraryFiles: readonly CrowdyStudioReferenceFile[];
|
|
48
|
+
commonFiles: readonly CrowdyStudioReferenceFile[];
|
|
49
|
+
openFiles: readonly CrowdyStudioFileRef[];
|
|
50
|
+
activeFile: CrowdyStudioFileRef | null;
|
|
51
|
+
saveState: CrowdyStudioSaveState;
|
|
52
|
+
saveMessage?: string;
|
|
53
|
+
runtime: CrowdyStudioRuntimeStatus;
|
|
54
|
+
buildOutput: string;
|
|
55
|
+
authoritativeDiagnostics: readonly CrowdyStudioDiagnostic[];
|
|
56
|
+
localDiagnostics: readonly CrowdyStudioDiagnostic[];
|
|
57
|
+
runs: readonly CrowdyStudioRun[];
|
|
58
|
+
logs: readonly CrowdyStudioRun[];
|
|
59
|
+
usage: CrowdyStudioUsageSnapshot | null;
|
|
60
|
+
wallet: CrowdyStudioWalletSnapshot | null;
|
|
61
|
+
invokeResult: CrowdyStudioInvokeResult | null;
|
|
62
|
+
}
|
|
63
|
+
export type CrowdyStudioPlayerCompute = Pick<PlayerComputeAPI, 'deploy' | 'versions' | 'setEnabled' | 'setRequires' | 'artifactBytes' | 'usage' | 'runs' | 'logs' | 'invoke'>;
|
|
64
|
+
export type CrowdyStudioPlayerWallet = Pick<PlayerWalletAPI, 'balance'>;
|
|
65
|
+
export interface CrowdyStudioBroker {
|
|
66
|
+
start(bytes: ArrayBuffer): Promise<void>;
|
|
67
|
+
stop(): void;
|
|
68
|
+
}
|
|
69
|
+
export interface CrowdyStudioControllerOptions {
|
|
70
|
+
projectProvider: CrowdyStudioProjectProvider;
|
|
71
|
+
playerCompute: CrowdyStudioPlayerCompute;
|
|
72
|
+
playerWallet?: CrowdyStudioPlayerWallet;
|
|
73
|
+
appId: string;
|
|
74
|
+
gridId: string;
|
|
75
|
+
initialProjectId?: string;
|
|
76
|
+
/** Required only when a project has a CLIENT target. */
|
|
77
|
+
grid?: PlayerCodeGridBounds;
|
|
78
|
+
/** Platform-owned glue worker; required only for CLIENT execution. */
|
|
79
|
+
workerUrl?: string | URL;
|
|
80
|
+
/** Page-side allow-listed host-call router; required only for CLIENT execution. */
|
|
81
|
+
onHostCall?: PlayerCodeBrokerOptions['onHostCall'];
|
|
82
|
+
onPresentation?: PlayerCodeBrokerOptions['onPresentation'];
|
|
83
|
+
/** Host-visible effective permissions; server authorization remains final. */
|
|
84
|
+
targetPermissions?: Partial<Record<CrowdyStudioTarget, {
|
|
85
|
+
canWrite: boolean;
|
|
86
|
+
canRun: boolean;
|
|
87
|
+
}>>;
|
|
88
|
+
clientTickIntervalMs?: number;
|
|
89
|
+
autosaveMs?: number;
|
|
90
|
+
retryMs?: number;
|
|
91
|
+
compilePollMs?: number;
|
|
92
|
+
compilePollLimit?: number;
|
|
93
|
+
monitorPollMs?: number;
|
|
94
|
+
sleep?: (ms: number) => Promise<void>;
|
|
95
|
+
brokerFactory?: (options: PlayerCodeBrokerOptions) => CrowdyStudioBroker;
|
|
96
|
+
isOnline?: () => boolean;
|
|
97
|
+
onStateChange?: (state: CrowdyStudioState) => void;
|
|
98
|
+
}
|
|
99
|
+
export interface CrowdyStudioStopResult {
|
|
100
|
+
serverStopped: boolean | null;
|
|
101
|
+
clientStopped: boolean | null;
|
|
102
|
+
failures: string[];
|
|
103
|
+
}
|
|
104
|
+
/**
|
|
105
|
+
* Headless project-first Crowdy Studio driver. It owns optimistic project saves,
|
|
106
|
+
* file CRUD, deployment ordering, runtime polling, and client hot swaps; the
|
|
107
|
+
* DOM mount is only a view over this state.
|
|
108
|
+
*/
|
|
109
|
+
export declare class CrowdyStudioController {
|
|
110
|
+
private readonly options;
|
|
111
|
+
private state;
|
|
112
|
+
private readonly listeners;
|
|
113
|
+
private autosaveTimer;
|
|
114
|
+
private retryTimer;
|
|
115
|
+
private savePromise;
|
|
116
|
+
private editGeneration;
|
|
117
|
+
private persistedGeneration;
|
|
118
|
+
private conflictRemote;
|
|
119
|
+
private broker;
|
|
120
|
+
private operationGeneration;
|
|
121
|
+
private readonly visibleSurfaces;
|
|
122
|
+
private readonly surfaceTimers;
|
|
123
|
+
private pageVisible;
|
|
124
|
+
private destroyed;
|
|
125
|
+
constructor(options: CrowdyStudioControllerOptions);
|
|
126
|
+
getState(): CrowdyStudioState;
|
|
127
|
+
subscribe(listener: (state: CrowdyStudioState) => void): () => void;
|
|
128
|
+
canTarget(target: CrowdyStudioTarget, action: 'write' | 'run'): boolean;
|
|
129
|
+
initialize(): Promise<void>;
|
|
130
|
+
createProject(options: Omit<CrowdyStudioNewProjectOptions, 'appId' | 'gridId'>): Promise<CrowdyStudioProject>;
|
|
131
|
+
switchProject(projectId: string): Promise<void>;
|
|
132
|
+
private loadProject;
|
|
133
|
+
private installProject;
|
|
134
|
+
openFile(ref: CrowdyStudioFileRef): void;
|
|
135
|
+
closeFile(ref: CrowdyStudioFileRef): void;
|
|
136
|
+
fileContent(ref: CrowdyStudioFileRef): string;
|
|
137
|
+
addFile(target: CrowdyStudioTarget, path: string, content?: string): void;
|
|
138
|
+
renameFile(target: CrowdyStudioTarget, path: string, nextPath: string): void;
|
|
139
|
+
deleteFile(target: CrowdyStudioTarget, path: string): void;
|
|
140
|
+
importReferenceFile(reference: CrowdyStudioReferenceFile, destinationPath?: string): Promise<void>;
|
|
141
|
+
saveProjectFileToLibrary(target: CrowdyStudioTarget, path: string, title?: string): Promise<CrowdyStudioReferenceFile>;
|
|
142
|
+
updateFile(target: CrowdyStudioTarget, path: string, content: string): void;
|
|
143
|
+
updateSettings(patch: Partial<Pick<CrowdyStudioProjectMetadata, 'name' | 'description' | 'serverModuleName' | 'clientModuleName' | 'pairingPreference'>>): void;
|
|
144
|
+
setPairingPreference(preference: CrowdyStudioPairingPreference): void;
|
|
145
|
+
setLocalDiagnostics(diagnostics: readonly CrowdyStudioDiagnostic[]): void;
|
|
146
|
+
/**
|
|
147
|
+
* Flush all edits in one optimistic-concurrency save. If edits arrive while
|
|
148
|
+
* the request is in flight, a second atomic save follows with the new
|
|
149
|
+
* revision instead of overwriting local content with the earlier response.
|
|
150
|
+
*/
|
|
151
|
+
saveNow(): Promise<boolean>;
|
|
152
|
+
retrySave(): Promise<boolean>;
|
|
153
|
+
acceptRemoteConflict(): Promise<void>;
|
|
154
|
+
overwriteConflict(): Promise<boolean>;
|
|
155
|
+
testDraft(): Promise<void>;
|
|
156
|
+
deployLive(): Promise<void>;
|
|
157
|
+
private deployProject;
|
|
158
|
+
private compileTarget;
|
|
159
|
+
private recordBuild;
|
|
160
|
+
private enableServer;
|
|
161
|
+
private runClient;
|
|
162
|
+
stopProject(): Promise<CrowdyStudioStopResult>;
|
|
163
|
+
invoke(exportName: string, paramsJson?: string): Promise<CrowdyStudioInvokeResult>;
|
|
164
|
+
setSurfaceVisible(surface: CrowdyStudioPolledSurface, visible: boolean): void;
|
|
165
|
+
setPageVisible(visible: boolean): void;
|
|
166
|
+
refreshSurface(surface: CrowdyStudioPolledSurface): Promise<void>;
|
|
167
|
+
destroy(): void;
|
|
168
|
+
private performSaveLoop;
|
|
169
|
+
private markEdited;
|
|
170
|
+
private scheduleRetry;
|
|
171
|
+
private scheduleSurfacePoll;
|
|
172
|
+
private restartVisibleSurfacePolling;
|
|
173
|
+
private stopSurfacePolling;
|
|
174
|
+
private clearSurfaceTimer;
|
|
175
|
+
private clearSaveTimers;
|
|
176
|
+
private clearTimer;
|
|
177
|
+
private clientRuntimeOptions;
|
|
178
|
+
private checkOperation;
|
|
179
|
+
private sleep;
|
|
180
|
+
private requireProject;
|
|
181
|
+
private requireFile;
|
|
182
|
+
private assertProjectTarget;
|
|
183
|
+
private scope;
|
|
184
|
+
private setRuntime;
|
|
185
|
+
private update;
|
|
186
|
+
private ensureAlive;
|
|
187
|
+
}
|
|
188
|
+
//# sourceMappingURL=controller.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"controller.d.ts","sourceRoot":"","sources":["../../src/crowdy-studio/controller.ts"],"names":[],"mappings":"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"}
|