@crowdedkingdoms/crowdyjs 17.13.0-dev.1 → 18.0.0-dev.1

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.
Files changed (284) hide show
  1. package/MIGRATION.md +163 -1
  2. package/README.md +142 -146
  3. package/dist/crowdy-client.d.ts +12 -31
  4. package/dist/crowdy-client.d.ts.map +1 -1
  5. package/dist/crowdy-client.js +15 -37
  6. package/dist/crowdy-dsh/bridge.d.ts.map +1 -1
  7. package/dist/crowdy-dsh/bridge.js +3 -6
  8. package/dist/crowdy-studio/controller.d.ts +59 -57
  9. package/dist/crowdy-studio/controller.d.ts.map +1 -1
  10. package/dist/crowdy-studio/controller.js +268 -206
  11. package/dist/crowdy-studio/diagnostics.d.ts +3 -12
  12. package/dist/crowdy-studio/diagnostics.d.ts.map +1 -1
  13. package/dist/crowdy-studio/dom-shell.d.ts +2 -4
  14. package/dist/crowdy-studio/dom-shell.d.ts.map +1 -1
  15. package/dist/crowdy-studio/dom-shell.js +16 -47
  16. package/dist/crowdy-studio/embed/hud-layer.d.ts +1 -1
  17. package/dist/crowdy-studio/embed/panel.d.ts +3 -12
  18. package/dist/crowdy-studio/embed/panel.d.ts.map +1 -1
  19. package/dist/crowdy-studio/embed/panel.js +3 -6
  20. package/dist/crowdy-studio/index.d.ts +1 -3
  21. package/dist/crowdy-studio/index.d.ts.map +1 -1
  22. package/dist/crowdy-studio/index.js +0 -2
  23. package/dist/crowdy-studio/models.d.ts +3 -4
  24. package/dist/crowdy-studio/models.d.ts.map +1 -1
  25. package/dist/crowdy-studio/starter-projects.d.ts +8 -4
  26. package/dist/crowdy-studio/starter-projects.d.ts.map +1 -1
  27. package/dist/crowdy-studio/starter-projects.js +83 -100
  28. package/dist/domains/appAccess.d.ts +14 -1
  29. package/dist/domains/appAccess.d.ts.map +1 -1
  30. package/dist/domains/appAccess.js +37 -1
  31. package/dist/domains/exec.d.ts +162 -15
  32. package/dist/domains/exec.d.ts.map +1 -1
  33. package/dist/domains/exec.js +180 -18
  34. package/dist/domains/host.d.ts +3 -3
  35. package/dist/domains/host.js +3 -3
  36. package/dist/domains/marketplace.d.ts +9 -58
  37. package/dist/domains/marketplace.d.ts.map +1 -1
  38. package/dist/domains/marketplace.js +9 -106
  39. package/dist/domains/playerWallet.d.ts +6 -12
  40. package/dist/domains/playerWallet.d.ts.map +1 -1
  41. package/dist/domains/playerWallet.js +6 -21
  42. package/dist/errors.d.ts +7 -13
  43. package/dist/errors.d.ts.map +1 -1
  44. package/dist/errors.js +6 -10
  45. package/dist/generated/graphql.d.ts +1384 -7977
  46. package/dist/generated/graphql.d.ts.map +1 -1
  47. package/dist/generated/graphql.js +22 -321
  48. package/dist/grid-mods/exec-client-halves.d.ts +156 -0
  49. package/dist/grid-mods/exec-client-halves.d.ts.map +1 -0
  50. package/dist/grid-mods/exec-client-halves.js +356 -0
  51. package/dist/grid-mods/grid-host-calls.d.ts +29 -15
  52. package/dist/grid-mods/grid-host-calls.d.ts.map +1 -1
  53. package/dist/grid-mods/grid-host-calls.js +40 -44
  54. package/dist/grid-mods/index.d.ts +1 -0
  55. package/dist/grid-mods/index.d.ts.map +1 -1
  56. package/dist/grid-mods/index.js +1 -0
  57. package/dist/grid-mods/mod-runtime.d.ts +21 -6
  58. package/dist/grid-mods/mod-runtime.d.ts.map +1 -1
  59. package/dist/grid-mods/mod-runtime.js +6 -2
  60. package/dist/grid-scope.d.ts +0 -188
  61. package/dist/grid-scope.d.ts.map +1 -1
  62. package/dist/grid-scope.js +0 -69
  63. package/dist/index.d.ts +12 -18
  64. package/dist/index.d.ts.map +1 -1
  65. package/dist/index.js +11 -16
  66. package/dist/kit/actions.d.ts +5 -9
  67. package/dist/kit/actions.d.ts.map +1 -1
  68. package/dist/kit/actions.js +5 -9
  69. package/dist/kit/index.d.ts +2 -33
  70. package/dist/kit/index.d.ts.map +1 -1
  71. package/dist/kit/index.js +1 -32
  72. package/dist/kit/kit.d.ts +8 -208
  73. package/dist/kit/kit.d.ts.map +1 -1
  74. package/dist/kit/kit.js +5 -163
  75. package/dist/kit/social.d.ts +1 -3
  76. package/dist/kit/social.d.ts.map +1 -1
  77. package/dist/kit/social.js +1 -3
  78. package/dist/kit/wire.d.ts +16 -5
  79. package/dist/kit/wire.d.ts.map +1 -1
  80. package/dist/kit/wire.js +19 -5
  81. package/dist/live-coding/assets/browser-authoring-index.json +1 -1
  82. package/dist/live-coding/assets/manifest.json +1 -1
  83. package/dist/live-coding/browser-authoring-index.generated.d.ts.map +1 -1
  84. package/dist/live-coding/browser-authoring-index.generated.js +1496 -4386
  85. package/dist/live-coding/rust-analysis.d.ts.map +1 -1
  86. package/dist/live-coding/rust-analysis.js +31 -23
  87. package/dist/player-runtime/client-host-calls.d.ts +8 -0
  88. package/dist/player-runtime/client-host-calls.d.ts.map +1 -0
  89. package/dist/player-runtime/client-host-calls.js +28 -0
  90. package/dist/player-runtime/glue-runtime.d.ts +27 -10
  91. package/dist/player-runtime/glue-runtime.d.ts.map +1 -1
  92. package/dist/player-runtime/glue-runtime.js +40 -45
  93. package/dist/player-runtime/glue-sab.d.ts +2 -2
  94. package/dist/player-runtime/glue-sab.js +2 -2
  95. package/dist/player-runtime/player-code-broker.d.ts +80 -24
  96. package/dist/player-runtime/player-code-broker.d.ts.map +1 -1
  97. package/dist/player-runtime/player-code-broker.js +169 -41
  98. package/dist/player-runtime/player-glue-worker.d.ts +8 -8
  99. package/dist/player-runtime/player-glue-worker.d.ts.map +1 -1
  100. package/dist/player-runtime/player-glue-worker.js +26 -9
  101. package/dist/stores/actors.d.ts +12 -2
  102. package/dist/stores/actors.d.ts.map +1 -1
  103. package/dist/stores/actors.js +43 -18
  104. package/dist/stores/chunks.d.ts +12 -0
  105. package/dist/stores/chunks.d.ts.map +1 -1
  106. package/dist/stores/chunks.js +112 -39
  107. package/dist/stores/durable.d.ts.map +1 -1
  108. package/dist/stores/durable.js +2 -1
  109. package/dist/stores/inbox.d.ts +1 -1
  110. package/dist/stores/inbox.d.ts.map +1 -1
  111. package/dist/stores/index.d.ts +0 -11
  112. package/dist/stores/index.d.ts.map +1 -1
  113. package/dist/stores/index.js +0 -4
  114. package/dist/stores/session.d.ts +0 -2
  115. package/dist/stores/session.d.ts.map +1 -1
  116. package/package.json +1 -1
  117. package/dist/crowdy-studio/model-lint-log.d.ts +0 -76
  118. package/dist/crowdy-studio/model-lint-log.d.ts.map +0 -1
  119. package/dist/crowdy-studio/model-lint-log.js +0 -93
  120. package/dist/crowdy-studio/model-lint.d.ts +0 -61
  121. package/dist/crowdy-studio/model-lint.d.ts.map +0 -1
  122. package/dist/crowdy-studio/model-lint.js +0 -45
  123. package/dist/domains/compute.d.ts +0 -208
  124. package/dist/domains/compute.d.ts.map +0 -1
  125. package/dist/domains/compute.js +0 -274
  126. package/dist/domains/controlPlane.d.ts +0 -38
  127. package/dist/domains/controlPlane.d.ts.map +0 -1
  128. package/dist/domains/controlPlane.js +0 -43
  129. package/dist/domains/gameModel.d.ts +0 -1174
  130. package/dist/domains/gameModel.d.ts.map +0 -1
  131. package/dist/domains/gameModel.js +0 -1333
  132. package/dist/domains/playerCompute.d.ts +0 -91
  133. package/dist/domains/playerCompute.d.ts.map +0 -1
  134. package/dist/domains/playerCompute.js +0 -136
  135. package/dist/domains/playerModel.d.ts +0 -20
  136. package/dist/domains/playerModel.d.ts.map +0 -1
  137. package/dist/domains/playerModel.js +0 -54
  138. package/dist/kit/abilities.d.ts +0 -66
  139. package/dist/kit/abilities.d.ts.map +0 -1
  140. package/dist/kit/abilities.js +0 -71
  141. package/dist/kit/blueprints/combat.d.ts +0 -81
  142. package/dist/kit/blueprints/combat.d.ts.map +0 -1
  143. package/dist/kit/blueprints/combat.js +0 -357
  144. package/dist/kit/blueprints/core.d.ts +0 -222
  145. package/dist/kit/blueprints/core.d.ts.map +0 -1
  146. package/dist/kit/blueprints/core.js +0 -185
  147. package/dist/kit/blueprints/decks.d.ts +0 -50
  148. package/dist/kit/blueprints/decks.d.ts.map +0 -1
  149. package/dist/kit/blueprints/decks.js +0 -163
  150. package/dist/kit/blueprints/economy.d.ts +0 -88
  151. package/dist/kit/blueprints/economy.d.ts.map +0 -1
  152. package/dist/kit/blueprints/economy.js +0 -533
  153. package/dist/kit/blueprints/guild.d.ts +0 -51
  154. package/dist/kit/blueprints/guild.d.ts.map +0 -1
  155. package/dist/kit/blueprints/guild.js +0 -50
  156. package/dist/kit/blueprints/index.d.ts +0 -23
  157. package/dist/kit/blueprints/index.d.ts.map +0 -1
  158. package/dist/kit/blueprints/index.js +0 -22
  159. package/dist/kit/blueprints/inventory.d.ts +0 -84
  160. package/dist/kit/blueprints/inventory.d.ts.map +0 -1
  161. package/dist/kit/blueprints/inventory.js +0 -257
  162. package/dist/kit/blueprints/leaderboards.d.ts +0 -49
  163. package/dist/kit/blueprints/leaderboards.d.ts.map +0 -1
  164. package/dist/kit/blueprints/leaderboards.js +0 -126
  165. package/dist/kit/blueprints/liveops.d.ts +0 -42
  166. package/dist/kit/blueprints/liveops.d.ts.map +0 -1
  167. package/dist/kit/blueprints/liveops.js +0 -170
  168. package/dist/kit/blueprints/locks.d.ts +0 -82
  169. package/dist/kit/blueprints/locks.d.ts.map +0 -1
  170. package/dist/kit/blueprints/locks.js +0 -155
  171. package/dist/kit/blueprints/loot.d.ts +0 -90
  172. package/dist/kit/blueprints/loot.d.ts.map +0 -1
  173. package/dist/kit/blueprints/loot.js +0 -229
  174. package/dist/kit/blueprints/matches.d.ts +0 -84
  175. package/dist/kit/blueprints/matches.d.ts.map +0 -1
  176. package/dist/kit/blueprints/matches.js +0 -349
  177. package/dist/kit/blueprints/moderation.d.ts +0 -32
  178. package/dist/kit/blueprints/moderation.d.ts.map +0 -1
  179. package/dist/kit/blueprints/moderation.js +0 -140
  180. package/dist/kit/blueprints/npcs.d.ts +0 -78
  181. package/dist/kit/blueprints/npcs.d.ts.map +0 -1
  182. package/dist/kit/blueprints/npcs.js +0 -125
  183. package/dist/kit/blueprints/plots.d.ts +0 -63
  184. package/dist/kit/blueprints/plots.d.ts.map +0 -1
  185. package/dist/kit/blueprints/plots.js +0 -151
  186. package/dist/kit/blueprints/progression.d.ts +0 -68
  187. package/dist/kit/blueprints/progression.d.ts.map +0 -1
  188. package/dist/kit/blueprints/progression.js +0 -324
  189. package/dist/kit/blueprints/quests.d.ts +0 -72
  190. package/dist/kit/blueprints/quests.d.ts.map +0 -1
  191. package/dist/kit/blueprints/quests.js +0 -285
  192. package/dist/kit/blueprints/worldsim.d.ts +0 -91
  193. package/dist/kit/blueprints/worldsim.d.ts.map +0 -1
  194. package/dist/kit/blueprints/worldsim.js +0 -468
  195. package/dist/kit/combat.d.ts +0 -141
  196. package/dist/kit/combat.d.ts.map +0 -1
  197. package/dist/kit/combat.js +0 -196
  198. package/dist/kit/decks.d.ts +0 -157
  199. package/dist/kit/decks.d.ts.map +0 -1
  200. package/dist/kit/decks.js +0 -186
  201. package/dist/kit/director.d.ts +0 -88
  202. package/dist/kit/director.d.ts.map +0 -1
  203. package/dist/kit/director.js +0 -86
  204. package/dist/kit/economy.d.ts +0 -289
  205. package/dist/kit/economy.d.ts.map +0 -1
  206. package/dist/kit/economy.js +0 -427
  207. package/dist/kit/engine.d.ts +0 -48
  208. package/dist/kit/engine.d.ts.map +0 -1
  209. package/dist/kit/engine.js +0 -113
  210. package/dist/kit/features.d.ts +0 -60
  211. package/dist/kit/features.d.ts.map +0 -1
  212. package/dist/kit/features.js +0 -65
  213. package/dist/kit/instances.d.ts +0 -52
  214. package/dist/kit/instances.d.ts.map +0 -1
  215. package/dist/kit/instances.js +0 -60
  216. package/dist/kit/inventory.d.ts +0 -129
  217. package/dist/kit/inventory.d.ts.map +0 -1
  218. package/dist/kit/inventory.js +0 -200
  219. package/dist/kit/leaderboards.d.ts +0 -86
  220. package/dist/kit/leaderboards.d.ts.map +0 -1
  221. package/dist/kit/leaderboards.js +0 -133
  222. package/dist/kit/liveops.d.ts +0 -112
  223. package/dist/kit/liveops.d.ts.map +0 -1
  224. package/dist/kit/liveops.js +0 -183
  225. package/dist/kit/loot.d.ts +0 -128
  226. package/dist/kit/loot.d.ts.map +0 -1
  227. package/dist/kit/loot.js +0 -160
  228. package/dist/kit/matches.d.ts +0 -301
  229. package/dist/kit/matches.d.ts.map +0 -1
  230. package/dist/kit/matches.js +0 -458
  231. package/dist/kit/matchmaking.d.ts +0 -57
  232. package/dist/kit/matchmaking.d.ts.map +0 -1
  233. package/dist/kit/matchmaking.js +0 -59
  234. package/dist/kit/minigames.d.ts +0 -30
  235. package/dist/kit/minigames.d.ts.map +0 -1
  236. package/dist/kit/minigames.js +0 -38
  237. package/dist/kit/mobs.d.ts +0 -90
  238. package/dist/kit/mobs.d.ts.map +0 -1
  239. package/dist/kit/mobs.js +0 -98
  240. package/dist/kit/moderation.d.ts +0 -73
  241. package/dist/kit/moderation.d.ts.map +0 -1
  242. package/dist/kit/moderation.js +0 -103
  243. package/dist/kit/movement.d.ts +0 -78
  244. package/dist/kit/movement.d.ts.map +0 -1
  245. package/dist/kit/movement.js +0 -103
  246. package/dist/kit/notifications.d.ts +0 -45
  247. package/dist/kit/notifications.d.ts.map +0 -1
  248. package/dist/kit/notifications.js +0 -67
  249. package/dist/kit/npcs.d.ts +0 -226
  250. package/dist/kit/npcs.d.ts.map +0 -1
  251. package/dist/kit/npcs.js +0 -141
  252. package/dist/kit/objects.d.ts +0 -116
  253. package/dist/kit/objects.d.ts.map +0 -1
  254. package/dist/kit/objects.js +0 -119
  255. package/dist/kit/pets.d.ts +0 -85
  256. package/dist/kit/pets.d.ts.map +0 -1
  257. package/dist/kit/pets.js +0 -96
  258. package/dist/kit/plots.d.ts +0 -85
  259. package/dist/kit/plots.d.ts.map +0 -1
  260. package/dist/kit/plots.js +0 -113
  261. package/dist/kit/progression.d.ts +0 -181
  262. package/dist/kit/progression.d.ts.map +0 -1
  263. package/dist/kit/progression.js +0 -265
  264. package/dist/kit/quests.d.ts +0 -171
  265. package/dist/kit/quests.d.ts.map +0 -1
  266. package/dist/kit/quests.js +0 -237
  267. package/dist/kit/racing.d.ts +0 -85
  268. package/dist/kit/racing.d.ts.map +0 -1
  269. package/dist/kit/racing.js +0 -99
  270. package/dist/kit/shared.d.ts +0 -73
  271. package/dist/kit/shared.d.ts.map +0 -1
  272. package/dist/kit/shared.js +0 -101
  273. package/dist/kit/telemetry.d.ts +0 -66
  274. package/dist/kit/telemetry.d.ts.map +0 -1
  275. package/dist/kit/telemetry.js +0 -133
  276. package/dist/kit/territory.d.ts +0 -97
  277. package/dist/kit/territory.d.ts.map +0 -1
  278. package/dist/kit/territory.js +0 -114
  279. package/dist/kit/worldsim.d.ts +0 -263
  280. package/dist/kit/worldsim.d.ts.map +0 -1
  281. package/dist/kit/worldsim.js +0 -268
  282. package/dist/stores/model.d.ts +0 -81
  283. package/dist/stores/model.d.ts.map +0 -1
  284. package/dist/stores/model.js +0 -163
@@ -8,6 +8,33 @@
8
8
  import { generateCrowdyUuid, decodeBase64, encodeBase64 } from '../utils.js';
9
9
  import { rawCodec } from './codec.js';
10
10
  import { CHUNK_VOLUME, chunkDistance, chunkKey, chunksAround, fromChunkInput, toChunkInput, voxelIndex, } from './keys.js';
11
+ /**
12
+ * Hydrations in flight at once. Each is one request, and a bulk load returns hundreds of
13
+ * chunks: sent together, the API refuses a share of them as busy.
14
+ */
15
+ const HYDRATE_CONCURRENCY = 8;
16
+ /** Attempts for a request the platform refused before running it. */
17
+ const BUSY_ATTEMPTS = 4;
18
+ /** A chunk whose hydration failed this many times in a row is not asked for again. */
19
+ const HYDRATE_GIVE_UP = 3;
20
+ /** The platform refused the call before running it: asking again can succeed. */
21
+ function refusedBeforeRunning(error) {
22
+ const e = error;
23
+ const code = e?.code ?? e?.extensions?.code;
24
+ return code === 'PLATFORM_BUSY' || e?.extensions?.retryable === true;
25
+ }
26
+ async function whenNotBusy(call) {
27
+ for (let attempt = 1;; attempt++) {
28
+ try {
29
+ return await call();
30
+ }
31
+ catch (error) {
32
+ if (attempt >= BUSY_ATTEMPTS || !refusedBeforeRunning(error))
33
+ throw error;
34
+ await new Promise((resolve) => setTimeout(resolve, 200 * 2 ** (attempt - 1)));
35
+ }
36
+ }
37
+ }
11
38
  /**
12
39
  * The SDK-managed **chunk/voxel cache** — the client-side source of truth
13
40
  * for terrain:
@@ -31,6 +58,9 @@ export class ChunkStore {
31
58
  this.config = config;
32
59
  this.chunks = new Map();
33
60
  this.inFlight = new Set();
61
+ this.hydrating = new Set();
62
+ /** Consecutive failed hydrations per chunk key. */
63
+ this.hydrateFailures = new Map();
34
64
  this.writeBackQueue = [];
35
65
  this.changeListeners = new Set();
36
66
  this.fallbackUuid = generateCrowdyUuid();
@@ -94,56 +124,98 @@ export class ChunkStore {
94
124
  * configured, marks server-unknown chunks `missing`, and seeds them via
95
125
  * `onMissing`. In-flight requests are deduped; safe to call every time the
96
126
  * player crosses a chunk boundary.
127
+ *
128
+ * Requests the platform refuses as busy are asked again with backoff, and
129
+ * at most 8 hydrations run at once. Hydration is best effort: a chunk whose
130
+ * states could not be fetched keeps the voxels the bulk load gave it
131
+ * (`hydrated` stays false) and is hydrated on a later call. A chunk whose
132
+ * bulk load failed is `failed` and is requested again by a later call. The
133
+ * promise rejects only when the bulk load itself fails.
97
134
  */
98
135
  async ensureAround(center, radius) {
99
- const wanted = chunksAround(center, radius).filter((coord) => {
136
+ const around = chunksAround(center, radius);
137
+ const wanted = around.filter((coord) => {
100
138
  const key = chunkKey(coord);
101
- return !this.chunks.has(key) && !this.inFlight.has(key);
139
+ if (this.inFlight.has(key))
140
+ return false;
141
+ const chunk = this.chunks.get(key);
142
+ return !chunk || chunk.loadState === 'failed';
102
143
  });
103
- if (wanted.length === 0)
104
- return;
105
- for (const coord of wanted)
106
- this.inFlight.add(chunkKey(coord));
107
- try {
108
- const response = await this.ctx.client.chunks.byDistance({
109
- appId: this.ctx.appId,
110
- centerCoordinate: toChunkInput(center),
111
- maxDistance: Math.max(1, Math.min(8, radius)),
112
- limit: (2 * radius + 1) ** 3,
113
- });
114
- const returned = new Set();
115
- for (const chunk of response.chunks) {
116
- const coord = fromChunkInput(chunk.coordinates);
117
- returned.add(chunkKey(coord));
118
- this.applyServerChunk(coord, chunk.voxels ?? null, chunk.chunkState ?? null);
144
+ const returned = new Set();
145
+ if (wanted.length > 0) {
146
+ for (const coord of wanted)
147
+ this.inFlight.add(chunkKey(coord));
148
+ try {
149
+ const response = await whenNotBusy(() => this.ctx.client.chunks.byDistance({
150
+ appId: this.ctx.appId,
151
+ centerCoordinate: toChunkInput(center),
152
+ maxDistance: Math.max(1, Math.min(8, radius)),
153
+ limit: (2 * radius + 1) ** 3,
154
+ }));
155
+ for (const chunk of response.chunks) {
156
+ const coord = fromChunkInput(chunk.coordinates);
157
+ returned.add(chunkKey(coord));
158
+ this.applyServerChunk(coord, chunk.voxels ?? null, chunk.chunkState ?? null);
159
+ }
160
+ // Requested-but-absent chunks have never been stored server-side.
161
+ for (const coord of wanted) {
162
+ if (returned.has(chunkKey(coord)))
163
+ continue;
164
+ this.markMissing(coord);
165
+ }
119
166
  }
120
- // Requested-but-absent chunks have never been stored server-side.
121
- for (const coord of wanted) {
122
- if (returned.has(chunkKey(coord)))
123
- continue;
124
- this.markMissing(coord);
167
+ catch (error) {
168
+ for (const coord of wanted) {
169
+ const key = chunkKey(coord);
170
+ const chunk = this.chunks.get(key);
171
+ if (!chunk || chunk.loadState === 'failed') {
172
+ const entry = this.ensureEntry(coord);
173
+ entry.loadState = 'failed';
174
+ this.touch(entry);
175
+ }
176
+ }
177
+ throw error;
125
178
  }
126
- if (this.hydrateStates) {
127
- await Promise.all(wanted
128
- .filter((coord) => returned.has(chunkKey(coord)))
129
- .map((coord) => this.hydrate(coord)));
179
+ finally {
180
+ for (const coord of wanted)
181
+ this.inFlight.delete(chunkKey(coord));
130
182
  }
131
183
  }
132
- catch (error) {
133
- for (const coord of wanted) {
184
+ if (this.hydrateStates) {
185
+ // What the bulk load just returned, and what an earlier call failed to hydrate.
186
+ // Chunks seeded here and written back are the server's copy already.
187
+ await this.hydrateAll(around.filter((coord) => {
188
+ const key = chunkKey(coord);
189
+ const chunk = this.chunks.get(key);
190
+ const failures = this.hydrateFailures.get(key) ?? 0;
191
+ return (chunk?.loadState === 'loaded' &&
192
+ !chunk.hydrated &&
193
+ !this.hydrating.has(key) &&
194
+ (returned.has(key) || (failures > 0 && failures < HYDRATE_GIVE_UP)));
195
+ }));
196
+ }
197
+ }
198
+ /** Hydrates chunks with at most {@link HYDRATE_CONCURRENCY} requests in flight. */
199
+ async hydrateAll(coords) {
200
+ let next = 0;
201
+ const worker = async () => {
202
+ while (next < coords.length) {
203
+ const coord = coords[next++];
134
204
  const key = chunkKey(coord);
135
- if (!this.chunks.has(key)) {
136
- const chunk = this.ensureEntry(coord);
137
- chunk.loadState = 'failed';
138
- this.touch(chunk);
205
+ this.hydrating.add(key);
206
+ try {
207
+ await whenNotBusy(() => this.hydrate(coord));
208
+ this.hydrateFailures.delete(key);
209
+ }
210
+ catch {
211
+ this.hydrateFailures.set(key, (this.hydrateFailures.get(key) ?? 0) + 1);
212
+ }
213
+ finally {
214
+ this.hydrating.delete(key);
139
215
  }
140
216
  }
141
- throw error;
142
- }
143
- finally {
144
- for (const coord of wanted)
145
- this.inFlight.delete(chunkKey(coord));
146
- }
217
+ };
218
+ await Promise.all(Array.from({ length: Math.min(HYDRATE_CONCURRENCY, coords.length) }, worker));
147
219
  }
148
220
  /**
149
221
  * Hydrate one chunk's sparse voxel states (and chunk state) via a
@@ -259,6 +331,7 @@ export class ChunkStore {
259
331
  continue;
260
332
  if (chunkDistance(chunk.coord, center) > radius) {
261
333
  this.chunks.delete(key);
334
+ this.hydrateFailures.delete(key);
262
335
  this.revisionValue += 1;
263
336
  }
264
337
  }
@@ -1 +1 @@
1
- {"version":3,"file":"durable.d.ts","sourceRoot":"","sources":["../../src/stores/durable.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"durable.d.ts","sourceRoot":"","sources":["../../src/stores/durable.ts"],"names":[],"mappings":"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"}
@@ -80,8 +80,9 @@ export class SaveStateStore {
80
80
  const autosave = config.autosaveMs ?? false;
81
81
  if (autosave !== false && autosave > 0) {
82
82
  ctx.onDispose(ctx.ticker.every(autosave, () => {
83
+ // A failed autosave stays dirty, so the next one retries it.
83
84
  if (this.dirtyFlag && !this.saving)
84
- void this.save();
85
+ this.save().catch(() => { });
85
86
  }));
86
87
  }
87
88
  }
@@ -124,7 +124,7 @@ export declare function attachActorInbox<T = string>(ctx: WorldSessionContext, c
124
124
  /** A decoded client/server event delivered by the {@link EventRouter}. */
125
125
  export interface TypedEvent<T> {
126
126
  eventType: number;
127
- /** Whether another client or the server (model notification) emitted it. */
127
+ /** Whether another client or the server (a hub's emit) emitted it. */
128
128
  origin: 'client' | 'server';
129
129
  /** The emitting actor/source uuid. */
130
130
  uuid: string;
@@ -1 +1 @@
1
- {"version":3,"file":"inbox.d.ts","sourceRoot":"","sources":["../../src/stores/inbox.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"inbox.d.ts","sourceRoot":"","sources":["../../src/stores/inbox.ts"],"names":[],"mappings":"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"}
@@ -19,13 +19,11 @@ export { LocalActorStore, RemoteActorLane, RemoteActorStore, attachLocalActor, a
19
19
  export { ErrorStore, attachErrorStore, type AttributedError, type ErrorStoreConfig, } from './errors.js';
20
20
  export { ChunkStore, attachChunkStore, type CachedChunk, type ChunkLoadState, type ChunkStoreConfig, type SetVoxelInput, } from './chunks.js';
21
21
  export { ActorInbox, ChannelInbox, EventRouter, attachActorInbox, attachChannelInbox, attachEventRouter, type ActorInboxConfig, type ChannelInboxConfig, type EventRouterConfig, type InboxMessage, type TypedEvent, } from './inbox.js';
22
- export { ContainerMirror, attachContainerMirror, type ContainerMirrorConfig, type MirroredContainer, } from './model.js';
23
22
  export { AvatarStateStore, HostTracker, SaveStateStore, attachAvatarState, attachHostTracker, attachSaveState, type AvatarStateConfig, type HostTrackerConfig, type SaveStateConfig, } from './durable.js';
24
23
  import { LocalActorStore, RemoteActorStore, type LocalActorConfig, type RemoteActorsConfig } from './actors.js';
25
24
  import type { StateCodec } from './codec.js';
26
25
  import { ChunkStore, type ChunkStoreConfig } from './chunks.js';
27
26
  import { AvatarStateStore, HostTracker, SaveStateStore, type AvatarStateConfig, type HostTrackerConfig, type SaveStateConfig } from './durable.js';
28
- import { ContainerMirror, type ContainerMirrorConfig } from './model.js';
29
27
  import { ErrorStore, type ErrorStoreConfig } from './errors.js';
30
28
  import { ActorInbox, ChannelInbox, EventRouter, type ActorInboxConfig, type ChannelInboxConfig, type EventRouterConfig } from './inbox.js';
31
29
  import { WorldSessionCore, type WorldSessionBaseConfig, type WorldStoresClient } from './session.js';
@@ -72,11 +70,6 @@ export interface WorldSessionConfig extends WorldSessionBaseConfig {
72
70
  save?: SaveStateConfig<any> | true;
73
71
  /** Typed avatar public/private/app state ({@link AvatarStateStore}). */
74
72
  avatar?: AvatarStateConfig<any, any, any> | true;
75
- /**
76
- * Game-model mirror: typed cached container snapshots with coalesced
77
- * refresh + notify-to-pull channel binding ({@link ContainerMirror}).
78
- */
79
- model?: ContainerMirrorConfig | true;
80
73
  }
81
74
  /** Infer the payload type of a `codec` config field (else the default `D`). */
82
75
  type CodecType<CC, D> = CC extends {
@@ -152,10 +145,6 @@ export type WorldSession<C extends WorldSessionConfig = WorldSessionConfig> = Wo
152
145
  avatar: infer CC;
153
146
  } ? {
154
147
  readonly avatar: AvatarStateStore<AvatarPublicType<CC>, AvatarPrivateType<CC>, AvatarAppType<CC>>;
155
- } : unknown) & (C extends {
156
- model: ContainerMirrorConfig | true;
157
- } ? {
158
- readonly model: ContainerMirror;
159
148
  } : unknown);
160
149
  /**
161
150
  * Create a **world session**: one shared `udpNotifications` subscription
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/stores/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/stores/index.ts"],"names":[],"mappings":"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"}
@@ -19,12 +19,10 @@ export { LocalActorStore, RemoteActorLane, RemoteActorStore, attachLocalActor, a
19
19
  export { ErrorStore, attachErrorStore, } from './errors.js';
20
20
  export { ChunkStore, attachChunkStore, } from './chunks.js';
21
21
  export { ActorInbox, ChannelInbox, EventRouter, attachActorInbox, attachChannelInbox, attachEventRouter, } from './inbox.js';
22
- export { ContainerMirror, attachContainerMirror, } from './model.js';
23
22
  export { AvatarStateStore, HostTracker, SaveStateStore, attachAvatarState, attachHostTracker, attachSaveState, } from './durable.js';
24
23
  import { LocalActorStore, RemoteActorStore, } from './actors.js';
25
24
  import { ChunkStore } from './chunks.js';
26
25
  import { AvatarStateStore, HostTracker, SaveStateStore, } from './durable.js';
27
- import { ContainerMirror } from './model.js';
28
26
  import { ErrorStore } from './errors.js';
29
27
  import { ActorInbox, ChannelInbox, EventRouter, } from './inbox.js';
30
28
  import { WorldSessionCore, } from './session.js';
@@ -88,7 +86,6 @@ export function createWorldSession(client, appId, config) {
88
86
  const host = cfg.host ? new HostTracker(core, opt(cfg.host)) : undefined;
89
87
  const save = cfg.save ? new SaveStateStore(core, opt(cfg.save)) : undefined;
90
88
  const avatar = cfg.avatar ? new AvatarStateStore(core, opt(cfg.avatar)) : undefined;
91
- const model = cfg.model ? new ContainerMirror(core, opt(cfg.model)) : undefined;
92
89
  const session = {
93
90
  appId,
94
91
  context: core,
@@ -102,7 +99,6 @@ export function createWorldSession(client, appId, config) {
102
99
  ...(host ? { host } : {}),
103
100
  ...(save ? { save } : {}),
104
101
  ...(avatar ? { avatar } : {}),
105
- ...(model ? { model } : {}),
106
102
  dispose: () => core.dispose(),
107
103
  };
108
104
  return session;
@@ -18,7 +18,6 @@
18
18
  */
19
19
  import type { AvatarsAPI } from '../domains/avatars.js';
20
20
  import type { ChunksAPI } from '../domains/chunks.js';
21
- import type { GameModelAPI } from '../domains/gameModel.js';
22
21
  import type { HostAPI } from '../domains/host.js';
23
22
  import type { StateAPI } from '../domains/state.js';
24
23
  import type { UdpAPI } from '../domains/udp.js';
@@ -35,7 +34,6 @@ export interface WorldStoresClient {
35
34
  state: StateAPI;
36
35
  avatars: AvatarsAPI;
37
36
  host: HostAPI;
38
- gameModel: GameModelAPI;
39
37
  }
40
38
  /** The kinds of outbound sends the session can attribute errors to. */
41
39
  export type SentPacketKind = 'actorUpdate' | 'voxelUpdate' | 'text' | 'clientEvent' | 'audio' | 'video' | 'singleActorMessage' | 'channelMessage';
@@ -1 +1 @@
1
- {"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../src/stores/session.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../src/stores/session.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@crowdedkingdoms/crowdyjs",
3
- "version": "17.13.0-dev.1",
3
+ "version": "18.0.0-dev.1",
4
4
  "description": "Browser-first Crowded Kingdoms SDK with GraphQL, realtime, and local Rust authoring support",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -1,76 +0,0 @@
1
- import type { CrowdyLogger } from '../logger.js';
2
- /**
3
- * Tell the developer, once, when the server refuses something because the game model is
4
- * wrong.
5
- *
6
- * THIS IS THE HALF THAT WORKS IN A SHIPPED GAME. `gameModelLint` needs `manage_apps`, so a
7
- * client holding a player token cannot ask whether the app is coherent and never will be
8
- * able to. What it can see is the server refusing one specific operation, and that turns
9
- * out to be enough — the refusals carry a code and the facts, so the client can say what
10
- * happened without being allowed to audit the app.
11
- *
12
- * WHY IT MATTERS THAT IT SAYS ANYTHING AT ALL. The case this was built for is a client that
13
- * called `gameModelEnsureContainer` against a type nobody had defined. The call SUCCEEDED.
14
- * The container was written, nothing bound to it, and the only trace anywhere was the game's
15
- * own line — `[GameModel] InvokeAndApply: no container bound for entity F3B8B18E…` — which
16
- * names a symptom and not one thing about the cause. It read as a permissions fault for
17
- * most of a day. The server refuses that call now and says why; this is what makes sure the
18
- * why is not swallowed on the way to the developer.
19
- *
20
- * ONCE PER (code, subject), NOT PER OCCURRENCE, and that is not a nicety. These fire on
21
- * gameplay paths — a bind can be attempted every frame, for every entity — and a warning
22
- * printed at that rate is indistinguishable from noise. Warnings being ignorable is the
23
- * root cause of the incident this file exists because of, so reproducing it with better
24
- * wording would be the one clearly wrong outcome.
25
- */
26
- /** A refusal the server attributes to the app's game model. */
27
- export interface CrowdyModelRefusal {
28
- code: string;
29
- message: string;
30
- /** The object the refusal is about, for deduplication and for the developer. */
31
- subject?: string;
32
- /**
33
- * For a quarantine: the lint finding that caused it, and what kind of object it is.
34
- *
35
- * FIRST-CLASS BECAUSE `reason` IS THE ONLY ACTIONABLE FIELD. Before these existed the
36
- * server's `quarantineReason` was reachable only by digging through the untyped `detail`
37
- * bag, so a developer was told their function is quarantined and left to guess which of
38
- * their lint errors did it. `subject` says which object; this says what to fix.
39
- */
40
- quarantine?: {
41
- kind?: string;
42
- reason: string;
43
- };
44
- /** Anything else the server named in `extensions`, for the developer to read. */
45
- detail?: Record<string, unknown>;
46
- }
47
- /**
48
- * Error codes that mean "your game model is wrong", as opposed to a transient or
49
- * permissions failure. Keys off `extensions.code`, never the message text.
50
- */
51
- export declare const MODEL_REFUSAL_CODES: Set<string>;
52
- /** Read a refusal out of a GraphQL error, or null if it is not one of ours. */
53
- export declare function modelRefusalFrom(error: unknown): CrowdyModelRefusal | null;
54
- /**
55
- * Deduplicating sink for model refusals.
56
- *
57
- * Holds the set for the life of the process rather than expiring it: the point is to say a
58
- * thing once, and a TTL would only decide how often to repeat something the developer has
59
- * already read. A game that runs for hours would repeat it hourly for no gain.
60
- */
61
- export declare class CrowdyModelLintLog {
62
- private readonly logger;
63
- private readonly seen;
64
- private readonly refusals;
65
- constructor(logger?: CrowdyLogger);
66
- /**
67
- * Record a refusal. Returns true when this was the first of its kind, which is also
68
- * when anything was logged.
69
- */
70
- record(refusal: CrowdyModelRefusal): boolean;
71
- /** Every distinct refusal seen so far, for an editor panel rather than a log tail. */
72
- collected(): readonly CrowdyModelRefusal[];
73
- /** Forget everything, so a reconnect to a repaired app reports afresh. */
74
- reset(): void;
75
- }
76
- //# sourceMappingURL=model-lint-log.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"model-lint-log.d.ts","sourceRoot":"","sources":["../../src/crowdy-studio/model-lint-log.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAEjD;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH,+DAA+D;AAC/D,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,gFAAgF;IAChF,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;;;;;;OAOG;IACH,UAAU,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAC/C,iFAAiF;IACjF,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAClC;AAED;;;GAGG;AACH,eAAO,MAAM,mBAAmB,aAG9B,CAAC;AAEH,+EAA+E;AAC/E,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,OAAO,GAAG,kBAAkB,GAAG,IAAI,CA4C1E;AAED;;;;;;GAMG;AACH,qBAAa,kBAAkB;IAIjB,OAAO,CAAC,QAAQ,CAAC,MAAM;IAHnC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAqB;IAC1C,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAA4B;gBAExB,MAAM,GAAE,YAAiB;IAEtD;;;OAGG;IACH,MAAM,CAAC,OAAO,EAAE,kBAAkB,GAAG,OAAO;IAkB5C,sFAAsF;IACtF,SAAS,IAAI,SAAS,kBAAkB,EAAE;IAI1C,0EAA0E;IAC1E,KAAK,IAAI,IAAI;CAId"}
@@ -1,93 +0,0 @@
1
- /**
2
- * Error codes that mean "your game model is wrong", as opposed to a transient or
3
- * permissions failure. Keys off `extensions.code`, never the message text.
4
- */
5
- export const MODEL_REFUSAL_CODES = new Set([
6
- 'CONTAINER_TYPE_UNDEFINED',
7
- 'OBJECT_QUARANTINED',
8
- ]);
9
- /** Read a refusal out of a GraphQL error, or null if it is not one of ours. */
10
- export function modelRefusalFrom(error) {
11
- if (typeof error !== 'object' || error === null)
12
- return null;
13
- const extensions = error
14
- .extensions;
15
- if (!extensions)
16
- return null;
17
- const code = extensions.code;
18
- // A QUARANTINE ON `gameModelInvoke` DOES NOT ARRIVE AS `OBJECT_QUARANTINED`. That entry
19
- // point is a user-code boundary, so the server rebuilds the error from a
20
- // { code, blame, retryable } triple and the code becomes USER_CODE_ERROR — while the
21
- // quarantine fields survive. Recognising the code alone therefore misses the refusal on
22
- // the single path a player takes, which is where it matters most, so the presence of
23
- // `quarantineReason` is treated as identifying too.
24
- const quarantineReason = typeof extensions.quarantineReason === 'string'
25
- ? extensions.quarantineReason
26
- : undefined;
27
- const isRefusal = (typeof code === 'string' && MODEL_REFUSAL_CODES.has(code)) ||
28
- quarantineReason !== undefined;
29
- if (!isRefusal)
30
- return null;
31
- const subject = typeof extensions.typeName === 'string'
32
- ? extensions.typeName
33
- : typeof extensions.quarantinedName === 'string'
34
- ? extensions.quarantinedName
35
- : undefined;
36
- return {
37
- code: typeof code === 'string' ? code : 'OBJECT_QUARANTINED',
38
- message: String(error.message ?? code),
39
- ...(subject ? { subject } : {}),
40
- ...(quarantineReason
41
- ? {
42
- quarantine: {
43
- ...(typeof extensions.quarantinedKind === 'string'
44
- ? { kind: extensions.quarantinedKind }
45
- : {}),
46
- reason: quarantineReason,
47
- },
48
- }
49
- : {}),
50
- detail: extensions,
51
- };
52
- }
53
- /**
54
- * Deduplicating sink for model refusals.
55
- *
56
- * Holds the set for the life of the process rather than expiring it: the point is to say a
57
- * thing once, and a TTL would only decide how often to repeat something the developer has
58
- * already read. A game that runs for hours would repeat it hourly for no gain.
59
- */
60
- export class CrowdyModelLintLog {
61
- constructor(logger = {}) {
62
- this.logger = logger;
63
- this.seen = new Set();
64
- this.refusals = [];
65
- }
66
- /**
67
- * Record a refusal. Returns true when this was the first of its kind, which is also
68
- * when anything was logged.
69
- */
70
- record(refusal) {
71
- const key = `${refusal.code}\u0000${refusal.subject ?? ''}`;
72
- if (this.seen.has(key))
73
- return false;
74
- this.seen.add(key);
75
- this.refusals.push(refusal);
76
- // warn, not error: the app is running and the developer is the audience. An
77
- // error would push a game's own error handling into treating a schema problem
78
- // as a crash.
79
- this.logger.warn?.(`[crowdy:model] ${refusal.code}: ${refusal.message}\n` +
80
- ' This is reported once per distinct problem. Call gameModelLint with an ' +
81
- 'app-admin token for everything currently wrong with this app.', refusal.detail);
82
- return true;
83
- }
84
- /** Every distinct refusal seen so far, for an editor panel rather than a log tail. */
85
- collected() {
86
- return this.refusals;
87
- }
88
- /** Forget everything, so a reconnect to a repaired app reports afresh. */
89
- reset() {
90
- this.seen.clear();
91
- this.refusals.length = 0;
92
- }
93
- }
@@ -1,61 +0,0 @@
1
- import type { CrowdyStudioDiagnostic } from './diagnostics.js';
2
- import type { CrowdyStudioTarget } from './models.js';
3
- /**
4
- * Turn `gameModelLint` findings into the diagnostics an editor already renders.
5
- *
6
- * WHY THIS IS A MAPPER AND NOT A NEW SURFACE. `CrowdyStudioDiagnostic` already exists on
7
- * both SDKs, already carries a severity, a code and a message, and CrowdyJS already
8
- * publishes it over `textDocument/publishDiagnostics` into Monaco. Lint findings are the
9
- * same kind of thing arriving from a different place, so they become a `source` and reuse
10
- * the Problems list, the gutter and the filtering for free. A second panel with its own
11
- * shape would be a second thing to maintain and a second place for a developer to look.
12
- *
13
- * WHO CAN CALL THE QUERY THIS CONSUMES. `gameModelLint` is gated on `manage_apps`, so this
14
- * is for an authoring context — Studio, an engine editor, a dev build signed in as someone
15
- * who administers the app. A shipped game holding a player token cannot call it and should
16
- * not be able to: what a player's client gets instead is the server refusing the specific
17
- * operation, which `recordRefusal` in `./model-lint-log.js` surfaces.
18
- *
19
- * THERE IS NO FILE OR LINE, and pretending otherwise would be worse than admitting it.
20
- * A finding is about a function, a container type or the app, none of which the developer
21
- * has open in a text editor — the model is authored through the API. So `path` carries the
22
- * subject and the line is 1: enough for the Problems list to group and label them, without
23
- * inventing a location that would send a click into the wrong file.
24
- */
25
- /** One finding as `gameModelLint` returns it. */
26
- export interface CrowdyModelLintFinding {
27
- code: string;
28
- severity: 'error' | 'warning';
29
- subjectKind: string;
30
- subject: string;
31
- message: string;
32
- remedy?: string | null;
33
- count?: number | null;
34
- }
35
- export interface CrowdyModelLintResult {
36
- appId: string;
37
- findings: CrowdyModelLintFinding[];
38
- errorCount: number;
39
- warningCount: number;
40
- clean: boolean;
41
- }
42
- /**
43
- * The lint query, printed from the generated document rather than written here.
44
- *
45
- * IT USED TO BE A TEMPLATE LITERAL, and that made it the one query in this SDK that
46
- * `check:schema` could not validate: codegen only sees operation documents, so the query
47
- * asking "is this app's model coherent" was itself unchecked against the schema it targets.
48
- * `gameModelLint` was not even present in the committed SDL. Printing from
49
- * `CrowdyModelLintDocument` means the string and the validated document cannot disagree.
50
- */
51
- export declare const MODEL_LINT_QUERY: string;
52
- /**
53
- * A stable, readable label for the thing the finding is about.
54
- *
55
- * Prefixed with the kind because subjects collide across kinds — an automation and a
56
- * function may both be called `on_join`, and a Problems list that showed both as `on_join`
57
- * would be actively misleading about which one is broken.
58
- */
59
- export declare function modelLintSubjectPath(finding: CrowdyModelLintFinding): string;
60
- export declare function modelLintDiagnostics(result: CrowdyModelLintResult | null | undefined, target?: CrowdyStudioTarget): CrowdyStudioDiagnostic[];
61
- //# sourceMappingURL=model-lint.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"model-lint.d.ts","sourceRoot":"","sources":["../../src/crowdy-studio/model-lint.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,sBAAsB,EAEvB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAEtD;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,iDAAiD;AACjD,MAAM,WAAW,sBAAsB;IACrC,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,OAAO,GAAG,SAAS,CAAC;IAC9B,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACvB;AAED,MAAM,WAAW,qBAAqB;IACpC,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,sBAAsB,EAAE,CAAC;IACnC,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE,OAAO,CAAC;CAChB;AAED;;;;;;;;GAQG;AACH,eAAO,MAAM,gBAAgB,QAAiC,CAAC;AAQ/D;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,sBAAsB,GAAG,MAAM,CAE5E;AAED,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,qBAAqB,GAAG,IAAI,GAAG,SAAS,EAChD,MAAM,GAAE,kBAAmD,GAC1D,sBAAsB,EAAE,CAkB1B"}