@crowdedkingdoms/crowdyjs 8.2.0 → 8.3.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.
Files changed (102) hide show
  1. package/README.md +21 -3
  2. package/dist/crowdy-client.d.ts.map +1 -1
  3. package/dist/crowdy-client.js +5 -1
  4. package/dist/index.d.ts +2 -2
  5. package/dist/index.d.ts.map +1 -1
  6. package/dist/index.js +2 -2
  7. package/dist/kit/blueprints/combat.d.ts +75 -0
  8. package/dist/kit/blueprints/combat.d.ts.map +1 -0
  9. package/dist/kit/blueprints/combat.js +351 -0
  10. package/dist/kit/blueprints/core.d.ts +222 -0
  11. package/dist/kit/blueprints/core.d.ts.map +1 -0
  12. package/dist/kit/blueprints/core.js +185 -0
  13. package/dist/kit/blueprints/decks.d.ts +50 -0
  14. package/dist/kit/blueprints/decks.d.ts.map +1 -0
  15. package/dist/kit/blueprints/decks.js +163 -0
  16. package/dist/kit/blueprints/economy.d.ts +88 -0
  17. package/dist/kit/blueprints/economy.d.ts.map +1 -0
  18. package/dist/kit/blueprints/economy.js +533 -0
  19. package/dist/kit/blueprints/guild.d.ts +51 -0
  20. package/dist/kit/blueprints/guild.d.ts.map +1 -0
  21. package/dist/kit/blueprints/guild.js +50 -0
  22. package/dist/kit/blueprints/index.d.ts +21 -0
  23. package/dist/kit/blueprints/index.d.ts.map +1 -0
  24. package/dist/kit/blueprints/index.js +20 -0
  25. package/dist/kit/blueprints/inventory.d.ts +38 -0
  26. package/dist/kit/blueprints/inventory.d.ts.map +1 -0
  27. package/dist/kit/blueprints/inventory.js +157 -0
  28. package/dist/kit/blueprints/leaderboards.d.ts +49 -0
  29. package/dist/kit/blueprints/leaderboards.d.ts.map +1 -0
  30. package/dist/kit/blueprints/leaderboards.js +126 -0
  31. package/dist/kit/blueprints/locks.d.ts +82 -0
  32. package/dist/kit/blueprints/locks.d.ts.map +1 -0
  33. package/dist/kit/blueprints/locks.js +155 -0
  34. package/dist/kit/blueprints/loot.d.ts +84 -0
  35. package/dist/kit/blueprints/loot.d.ts.map +1 -0
  36. package/dist/kit/blueprints/loot.js +228 -0
  37. package/dist/kit/blueprints/matches.d.ts +59 -0
  38. package/dist/kit/blueprints/matches.d.ts.map +1 -0
  39. package/dist/kit/blueprints/matches.js +246 -0
  40. package/dist/kit/blueprints/npcs.d.ts +71 -0
  41. package/dist/kit/blueprints/npcs.d.ts.map +1 -0
  42. package/dist/kit/blueprints/npcs.js +122 -0
  43. package/dist/kit/blueprints/plots.d.ts +54 -0
  44. package/dist/kit/blueprints/plots.d.ts.map +1 -0
  45. package/dist/kit/blueprints/plots.js +146 -0
  46. package/dist/kit/blueprints/progression.d.ts +68 -0
  47. package/dist/kit/blueprints/progression.d.ts.map +1 -0
  48. package/dist/kit/blueprints/progression.js +324 -0
  49. package/dist/kit/blueprints/quests.d.ts +65 -0
  50. package/dist/kit/blueprints/quests.d.ts.map +1 -0
  51. package/dist/kit/blueprints/quests.js +284 -0
  52. package/dist/kit/blueprints/worldsim.d.ts +84 -0
  53. package/dist/kit/blueprints/worldsim.d.ts.map +1 -0
  54. package/dist/kit/blueprints/worldsim.js +461 -0
  55. package/dist/kit/combat.d.ts +103 -0
  56. package/dist/kit/combat.d.ts.map +1 -0
  57. package/dist/kit/combat.js +151 -0
  58. package/dist/kit/decks.d.ts +123 -0
  59. package/dist/kit/decks.d.ts.map +1 -0
  60. package/dist/kit/decks.js +138 -0
  61. package/dist/kit/economy.d.ts +244 -0
  62. package/dist/kit/economy.d.ts.map +1 -0
  63. package/dist/kit/economy.js +365 -0
  64. package/dist/kit/features.d.ts +60 -0
  65. package/dist/kit/features.d.ts.map +1 -0
  66. package/dist/kit/features.js +65 -0
  67. package/dist/kit/index.d.ts +13 -2
  68. package/dist/kit/index.d.ts.map +1 -1
  69. package/dist/kit/index.js +12 -1
  70. package/dist/kit/inventory.d.ts +5 -0
  71. package/dist/kit/inventory.d.ts.map +1 -1
  72. package/dist/kit/inventory.js +14 -1
  73. package/dist/kit/kit.d.ts +58 -2
  74. package/dist/kit/kit.d.ts.map +1 -1
  75. package/dist/kit/kit.js +24 -2
  76. package/dist/kit/leaderboards.d.ts +66 -0
  77. package/dist/kit/leaderboards.d.ts.map +1 -0
  78. package/dist/kit/leaderboards.js +94 -0
  79. package/dist/kit/loot.d.ts +106 -0
  80. package/dist/kit/loot.d.ts.map +1 -0
  81. package/dist/kit/loot.js +120 -0
  82. package/dist/kit/matches.d.ts +140 -0
  83. package/dist/kit/matches.d.ts.map +1 -0
  84. package/dist/kit/matches.js +253 -0
  85. package/dist/kit/objects.js +1 -1
  86. package/dist/kit/plots.js +1 -1
  87. package/dist/kit/progression.d.ts +181 -0
  88. package/dist/kit/progression.d.ts.map +1 -0
  89. package/dist/kit/progression.js +265 -0
  90. package/dist/kit/quests.d.ts +110 -0
  91. package/dist/kit/quests.d.ts.map +1 -0
  92. package/dist/kit/quests.js +158 -0
  93. package/dist/kit/social.d.ts +267 -0
  94. package/dist/kit/social.d.ts.map +1 -0
  95. package/dist/kit/social.js +230 -0
  96. package/dist/kit/worldsim.d.ts +225 -0
  97. package/dist/kit/worldsim.d.ts.map +1 -0
  98. package/dist/kit/worldsim.js +231 -0
  99. package/package.json +1 -1
  100. package/dist/kit/blueprints.d.ts +0 -370
  101. package/dist/kit/blueprints.d.ts.map +0 -1
  102. package/dist/kit/blueprints.js +0 -643
@@ -1,370 +0,0 @@
1
- import type { FunctionMutationInput, FunctionParamInput, Scalars, SeedContainerInput, SeedContainerTypeInput, SeedEdgeInput, SeedFunctionInput, SeedGameModelInput, SeedPropertyDefInput, UpsertAutomationInput, UpsertAutomationTriggerInput } from '../generated/graphql.js';
2
- /**
3
- * A composable invoke-policy rule tree, mirroring the server's authority
4
- * rules (see the Game API "Game Models → Authority" guide). Serialized with
5
- * {@link kitPolicyJson} into the `invokePolicyJson` a function carries.
6
- */
7
- export type KitInvokePolicy = {
8
- type: 'allow';
9
- } | {
10
- type: 'owner_of_self';
11
- } | {
12
- type: 'is_host';
13
- } | {
14
- type: 'is_current_turn';
15
- } | {
16
- type: 'is_participant';
17
- } | {
18
- type: 'is_automation';
19
- } | {
20
- type: 'tier_feature';
21
- feature: string;
22
- } | {
23
- type: 'group_permission';
24
- groupId: string;
25
- permission?: string;
26
- } | {
27
- type: 'grid_permission';
28
- key: string;
29
- gridId?: string;
30
- } | {
31
- type: 'condition';
32
- expression: string;
33
- } | {
34
- type: 'and';
35
- rules: KitInvokePolicy[];
36
- } | {
37
- type: 'or';
38
- rules: KitInvokePolicy[];
39
- } | {
40
- type: 'not';
41
- rule: KitInvokePolicy;
42
- };
43
- /** Serialize a {@link KitInvokePolicy} tree to the wire `invokePolicyJson`. */
44
- export declare function kitPolicyJson(policy: KitInvokePolicy): string;
45
- /**
46
- * A grid-permission filter inside a selector: gates selves/candidates by
47
- * whether the USER behind each container has/lacks an unexpired runtime grid
48
- * permission. Requires a game-api with the permission-read selector support
49
- * (v0.13.12+).
50
- */
51
- export interface SelectorPermissionPredicate {
52
- /** Where the container's user id comes from: its owner, or a property. */
53
- userFrom: 'owner' | {
54
- property: string;
55
- };
56
- op: 'has' | 'lacks';
57
- /** Runtime permission key (e.g. 'access', 'update_voxel_data'). */
58
- key: string;
59
- /** Literal grid id, a property holding one, or omitted for "on ANY grid". */
60
- grid?: number | string | {
61
- property: string;
62
- };
63
- }
64
- /**
65
- * Typed automation selector (serialized into `selectorJson` at deploy).
66
- * Property predicates (`selfWhere`/`where`) filter on model data; permission
67
- * predicates (`selfPermissionWhere`/`candidatePermissionWhere`) filter on the
68
- * live grid ACL. Extra fields pass through untouched.
69
- */
70
- export interface KitSelectorSpec {
71
- selfWhere?: Array<{
72
- key: string;
73
- op: string;
74
- value: unknown;
75
- }>;
76
- selfPermissionWhere?: SelectorPermissionPredicate[];
77
- pick?: 'nearest' | 'lowest' | 'highest' | 'random';
78
- ofType?: string;
79
- where?: Array<{
80
- key: string;
81
- op: string;
82
- value: unknown;
83
- }>;
84
- candidatePermissionWhere?: SelectorPermissionPredicate[];
85
- by?: 'manhattan' | {
86
- property: string;
87
- };
88
- bindAs?: {
89
- ref?: string;
90
- x?: string;
91
- y?: string;
92
- approachX?: string;
93
- approachY?: string;
94
- approachStop?: number;
95
- };
96
- [key: string]: unknown;
97
- }
98
- /** An automation spec inside a blueprint (the `appId` is bound at deploy). */
99
- export type KitAutomationSpec = Omit<UpsertAutomationInput, 'appId'>;
100
- /** An automation event-trigger spec inside a blueprint. */
101
- export type KitAutomationTriggerSpec = Omit<UpsertAutomationTriggerInput, 'appId'>;
102
- /**
103
- * A **blueprint**: a self-contained, declarative bundle of game-model
104
- * definitions (container types, property defs, functions), optional seed
105
- * instances, and optional automations that together implement one game
106
- * concept (an inventory system, a lockable object, an NPC archetype).
107
- *
108
- * Blueprints are plain data — build them with {@link inventoryBlueprint},
109
- * {@link lockBlueprint}, {@link npcBlueprint}, or by hand — then load them
110
- * into an app with `client.kit(appId).deploy([...])` (requires the app-admin
111
- * `manage_apps` permission). Deployment is idempotent: seeding upserts
112
- * definitions and `upsertAutomation` keys on the automation name.
113
- */
114
- export interface KitBlueprint {
115
- /** A short identifier used in error messages (e.g. `'inventory'`). */
116
- name: string;
117
- containerTypes?: SeedContainerTypeInput[];
118
- propertyDefinitions?: SeedPropertyDefInput[];
119
- functions?: SeedFunctionInput[];
120
- /** Optional shared/world containers to seed (catalog data, world objects). */
121
- containers?: SeedContainerInput[];
122
- /** Optional edges between seeded containers (by `tempId`). */
123
- edges?: SeedEdgeInput[];
124
- /** Server-driven automations to upsert after the seed. */
125
- automations?: KitAutomationSpec[];
126
- /** Event triggers to attach to the automations. */
127
- automationTriggers?: KitAutomationTriggerSpec[];
128
- }
129
- /** Convert `PascalCase`/`camelCase` to `snake_case` for derived names. */
130
- export declare function toSnakeCase(name: string): string;
131
- /** Options for {@link inventoryBlueprint}. */
132
- export interface InventoryBlueprintOptions {
133
- /**
134
- * Prefix applied to the container type names (e.g. `'Bank'` →
135
- * `BankInventory` / `BankItemStack`) and, snake-cased, to the function
136
- * names (`bank_grant_stack`, …). Lets several independent inventory systems
137
- * coexist in one app. Defaults to none.
138
- */
139
- typePrefix?: string;
140
- /** Default `max_slots` on new inventories. Defaults to 24. */
141
- maxSlots?: number;
142
- /** Exclusive upper bound for stack `slot` indexes. Defaults to 64. */
143
- slotCount?: number;
144
- }
145
- /** Names derived by {@link inventoryBlueprint} for a given prefix. */
146
- export interface InventoryNames {
147
- inventoryType: string;
148
- stackType: string;
149
- grantFn: string;
150
- consumeFn: string;
151
- moveFn: string;
152
- transferFn: string;
153
- containsEdge: string;
154
- }
155
- /** Compute the type/function names an inventory blueprint (and its runtime helper) uses. */
156
- export declare function inventoryNames(typePrefix?: string): InventoryNames;
157
- /**
158
- * Blueprint for a server-authoritative **inventory**: a per-player
159
- * `Inventory` container plus `ItemStack` containers (`item_id`, `quantity`,
160
- * `slot`), and owner-gated functions to grant, consume, move, and transfer
161
- * stacks. Quantity guards live in the invoke policies, so an untrusted client
162
- * can never overdraw or touch another player's items.
163
- *
164
- * Runtime counterpart: `client.kit(appId).inventory`.
165
- */
166
- export declare function inventoryBlueprint(options?: InventoryBlueprintOptions): KitBlueprint;
167
- /**
168
- * The authority source that may operate a lockable object. Several may be
169
- * combined (any one grants access — they are OR'd):
170
- *
171
- * - `owner` — only the container's owner (`owner_of_self`); "only the owner
172
- * of this chest can open it".
173
- * - `key` — the caller must own a matching key item; "if a player has key 1
174
- * they can open door 1". Adds a required `key_id` (`container_ref`) param.
175
- * - `gridPermission` — the caller must hold a runtime grid permission; ties
176
- * the object to a world region ("movement permission on chunk X opens the
177
- * doors in it").
178
- * - `groupPermission` — the caller must be in a team/group (optionally with a
179
- * specific group permission).
180
- * - `custom` — any hand-written {@link KitInvokePolicy} rule.
181
- */
182
- export type LockAuthority = {
183
- kind: 'owner';
184
- } | {
185
- kind: 'key';
186
- } | {
187
- kind: 'gridPermission';
188
- key: string;
189
- gridId?: string;
190
- } | {
191
- /**
192
- * The caller must hold the runtime permission on the grid covering the
193
- * chunk the OBJECT stands in (`cx`/`cy`/`cz` int properties, seeded via
194
- * `ObjectsKit.create({ chunk })`). No hand-pinned grid id — one function
195
- * serves every such object in the world. `mode` picks the covering grid
196
- * when several overlap: 'first' (enforcement parity, default) |
197
- * 'smallest' (innermost plot) | 'largest'. Requires game-api v0.13.12+.
198
- */
199
- kind: 'chunkPermission';
200
- key: string;
201
- mode?: 'first' | 'smallest' | 'largest';
202
- } | {
203
- kind: 'groupPermission';
204
- groupId: string;
205
- permission?: string;
206
- } | {
207
- kind: 'custom';
208
- rule: KitInvokePolicy;
209
- };
210
- /** Options for {@link lockBlueprint}. */
211
- export interface LockBlueprintOptions {
212
- /**
213
- * Container type name for the lockable object (`Door`, `Chest`, `Gate`, …).
214
- * Also drives the function names (`open_door` / `close_door`). Defaults to
215
- * `'Lockable'`.
216
- */
217
- objectTypeName?: string;
218
- /** Key item type name (only used with a `key` authority). Defaults to `<objectTypeName>Key`. */
219
- keyTypeName?: string;
220
- /** One or more authority sources; any one grants access. */
221
- authority: LockAuthority | LockAuthority[];
222
- }
223
- /** Names derived by {@link lockBlueprint} for a given object type. */
224
- export interface LockNames {
225
- objectType: string;
226
- keyType: string;
227
- openFn: string;
228
- closeFn: string;
229
- }
230
- /** Compute the type/function names a lock blueprint (and its runtime helper) uses. */
231
- export declare function lockNames(objectTypeName?: string, keyTypeName?: string): LockNames;
232
- /**
233
- * Blueprint for a **lockable game object** (door, chest, gate, switch) whose
234
- * `open`/`close` functions are gated by a configurable authority source:
235
- * ownership, a key item the caller must hold, a runtime grid permission, a
236
- * team/group permission, or any custom policy rule. Multiple authorities are
237
- * OR'd, so "the owner, or anyone with the right key" is one blueprint.
238
- *
239
- * Runtime counterpart: `client.kit(appId).objects`.
240
- */
241
- export declare function lockBlueprint(options: LockBlueprintOptions): KitBlueprint;
242
- /** Options for {@link plotBlueprint}. */
243
- export interface PlotBlueprintOptions {
244
- /** Plot container type name. Defaults to `'Plot'`. */
245
- typeName?: string;
246
- /**
247
- * Runtime permission keys buying/renting grants on the plot's grid.
248
- * Defaults to `['access', 'update_voxel_data']`.
249
- */
250
- permissionKeys?: string[];
251
- /** Currency property on the wallet container. Defaults to `'gold'`. */
252
- currencyProperty?: string;
253
- /**
254
- * Property on the wallet container mirroring its owner's user id (the
255
- * standard kit convention, since expressions can't read container
256
- * ownership). Defaults to `'owner_user_id'`.
257
- */
258
- walletOwnerProperty?: string;
259
- /**
260
- * Also generate `rent_plot`: a TTL grant priced by the plot's `rent_price`
261
- * property, expiring after `rent_ttl_seconds`. Defaults to false.
262
- */
263
- rentable?: boolean;
264
- }
265
- /** Names derived by {@link plotBlueprint} for a given plot type. */
266
- export interface PlotNames {
267
- plotType: string;
268
- buyFn: string;
269
- rentFn: string;
270
- evictFn: string;
271
- }
272
- /** Compute the type/function names a plot blueprint (and its runtime helper) uses. */
273
- export declare function plotNames(typeName?: string): PlotNames;
274
- /**
275
- * Blueprint for **sellable/rentable land**: a `Plot` container mapping a world
276
- * [grid](../domains/gameApps.js) to a price, whose `buy`/`rent` functions
277
- * consume currency AND grant runtime grid permissions in one transaction (via
278
- * permission effects) — the canonical read+write permission loop. Buying sets
279
- * the plot's `owner_user_id`; renting grants with a TTL; `evict` revokes.
280
- * The grants are enforced by the replication layer on movement/voxel writes
281
- * immediately at commit. Requires game-api v0.13.11+ (effects) — pair with
282
- * chunk-permission locks (v0.13.12+) for doors that honor the purchase.
283
- *
284
- * Runtime counterpart: `client.kit(appId).plots`.
285
- */
286
- export declare function plotBlueprint(options?: PlotBlueprintOptions): KitBlueprint;
287
- /** A trigger for an NPC behavior: a schedule (interval or cron) or a model event. */
288
- export type NpcBehaviorTrigger = {
289
- intervalMs: number;
290
- } | {
291
- cronExpr: string;
292
- } | {
293
- onEvent: 'function_invoked' | 'property_changed' | 'container_created';
294
- functionName?: string;
295
- containerTypeName?: string;
296
- propertyKey?: string;
297
- debounceMs?: number;
298
- };
299
- /** One server-driven NPC behavior: a model function plus the automation that drives it. */
300
- export interface NpcBehaviorSpec {
301
- /**
302
- * Automation name (unique per app), e.g. `'npc-wander'`. Also derives the
303
- * default function name (`npc_wander`).
304
- */
305
- name: string;
306
- /** Entry-point function name. Defaults to the snake-cased behavior name. */
307
- functionName?: string;
308
- /** The property writes the behavior performs each tick. */
309
- mutations: FunctionMutationInput[];
310
- /** Typed parameters (bind them from a selector or static `paramsJson`). */
311
- parameters?: FunctionParamInput[];
312
- /** What makes the behavior run. */
313
- trigger: NpcBehaviorTrigger;
314
- /**
315
- * Selector choosing/filtering targets and binding params (see the Game API
316
- * "Autonomous Processes → Selectors" guide), including grid-permission
317
- * predicates ({@link KitSelectorSpec}). JSON-encoded at deploy.
318
- */
319
- selector?: KitSelectorSpec;
320
- /**
321
- * Convenience: only NPCs whose `role` property equals this act (adds a
322
- * `selfWhere` filter when no explicit `selector` is given).
323
- */
324
- role?: string;
325
- /** Fan-out cap per run. Defaults to 8. */
326
- maxTargets?: number;
327
- /** Static params merged into every call. */
328
- params?: Record<string, unknown>;
329
- /** Identity the automation acts as; omit for a trusted server caller. */
330
- runAsUserId?: Scalars['BigInt']['input'];
331
- }
332
- /** Options for {@link npcBlueprint}. */
333
- export interface NpcBlueprintOptions {
334
- /** NPC container type name. Defaults to `'Npc'`. */
335
- typeName?: string;
336
- /**
337
- * Extra property definitions beyond the defaults (`role`, `x`, `y`, `z`,
338
- * `behavior_state`, `health`). `containerTypeName` is filled in.
339
- */
340
- extraProperties?: Omit<SeedPropertyDefInput, 'containerTypeName'>[];
341
- /** The server-driven behaviors this NPC archetype has. */
342
- behaviors: NpcBehaviorSpec[];
343
- }
344
- /** Compute the function/automation names an NPC behavior deploys under. */
345
- export declare function npcBehaviorFunctionName(behavior: NpcBehaviorSpec): string;
346
- /**
347
- * Blueprint for an **NPC archetype**: an admin-instantiable container type
348
- * holding the NPC's durable state, one `autonomousInvocable` model function
349
- * per behavior (gated `is_automation` so players cannot puppet them), and the
350
- * automations + event triggers that drive those behaviors on the server.
351
- *
352
- * Runtime counterpart: `client.kit(appId).npcs`.
353
- */
354
- export declare function npcBlueprint(options: NpcBlueprintOptions): KitBlueprint;
355
- /** The wire payloads {@link mergeBlueprints} produces for one deployment. */
356
- export interface MergedBlueprints {
357
- seedInput: SeedGameModelInput;
358
- automations: UpsertAutomationInput[];
359
- automationTriggers: UpsertAutomationTriggerInput[];
360
- }
361
- /**
362
- * Merge blueprints into a single `gameModelSeed` payload plus the automation
363
- * upserts, rejecting duplicate type, property, function, or automation names
364
- * across blueprints (a duplicate almost always means two blueprints need
365
- * distinct prefixes/type names).
366
- */
367
- export declare function mergeBlueprints(appId: Scalars['BigInt']['input'], blueprints: KitBlueprint[], options?: {
368
- sessionId?: string;
369
- }): MergedBlueprints;
370
- //# sourceMappingURL=blueprints.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"blueprints.d.ts","sourceRoot":"","sources":["../../src/kit/blueprints.ts"],"names":[],"mappings":"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"}