@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.
- package/MIGRATION.md +163 -1
- package/README.md +142 -146
- package/dist/crowdy-client.d.ts +12 -31
- package/dist/crowdy-client.d.ts.map +1 -1
- package/dist/crowdy-client.js +15 -37
- package/dist/crowdy-dsh/bridge.d.ts.map +1 -1
- package/dist/crowdy-dsh/bridge.js +3 -6
- package/dist/crowdy-studio/controller.d.ts +59 -57
- package/dist/crowdy-studio/controller.d.ts.map +1 -1
- package/dist/crowdy-studio/controller.js +268 -206
- package/dist/crowdy-studio/diagnostics.d.ts +3 -12
- package/dist/crowdy-studio/diagnostics.d.ts.map +1 -1
- package/dist/crowdy-studio/dom-shell.d.ts +2 -4
- package/dist/crowdy-studio/dom-shell.d.ts.map +1 -1
- package/dist/crowdy-studio/dom-shell.js +16 -47
- package/dist/crowdy-studio/embed/hud-layer.d.ts +1 -1
- package/dist/crowdy-studio/embed/panel.d.ts +3 -12
- package/dist/crowdy-studio/embed/panel.d.ts.map +1 -1
- package/dist/crowdy-studio/embed/panel.js +3 -6
- package/dist/crowdy-studio/index.d.ts +1 -3
- package/dist/crowdy-studio/index.d.ts.map +1 -1
- package/dist/crowdy-studio/index.js +0 -2
- package/dist/crowdy-studio/models.d.ts +3 -4
- package/dist/crowdy-studio/models.d.ts.map +1 -1
- package/dist/crowdy-studio/starter-projects.d.ts +8 -4
- package/dist/crowdy-studio/starter-projects.d.ts.map +1 -1
- package/dist/crowdy-studio/starter-projects.js +83 -100
- package/dist/domains/appAccess.d.ts +14 -1
- package/dist/domains/appAccess.d.ts.map +1 -1
- package/dist/domains/appAccess.js +37 -1
- package/dist/domains/exec.d.ts +162 -15
- package/dist/domains/exec.d.ts.map +1 -1
- package/dist/domains/exec.js +180 -18
- package/dist/domains/host.d.ts +3 -3
- package/dist/domains/host.js +3 -3
- package/dist/domains/marketplace.d.ts +9 -58
- package/dist/domains/marketplace.d.ts.map +1 -1
- package/dist/domains/marketplace.js +9 -106
- package/dist/domains/playerWallet.d.ts +6 -12
- package/dist/domains/playerWallet.d.ts.map +1 -1
- package/dist/domains/playerWallet.js +6 -21
- package/dist/errors.d.ts +7 -13
- package/dist/errors.d.ts.map +1 -1
- package/dist/errors.js +6 -10
- package/dist/generated/graphql.d.ts +1384 -7977
- package/dist/generated/graphql.d.ts.map +1 -1
- package/dist/generated/graphql.js +22 -321
- package/dist/grid-mods/exec-client-halves.d.ts +156 -0
- package/dist/grid-mods/exec-client-halves.d.ts.map +1 -0
- package/dist/grid-mods/exec-client-halves.js +356 -0
- package/dist/grid-mods/grid-host-calls.d.ts +29 -15
- package/dist/grid-mods/grid-host-calls.d.ts.map +1 -1
- package/dist/grid-mods/grid-host-calls.js +40 -44
- package/dist/grid-mods/index.d.ts +1 -0
- package/dist/grid-mods/index.d.ts.map +1 -1
- package/dist/grid-mods/index.js +1 -0
- package/dist/grid-mods/mod-runtime.d.ts +21 -6
- package/dist/grid-mods/mod-runtime.d.ts.map +1 -1
- package/dist/grid-mods/mod-runtime.js +6 -2
- package/dist/grid-scope.d.ts +0 -188
- package/dist/grid-scope.d.ts.map +1 -1
- package/dist/grid-scope.js +0 -69
- package/dist/index.d.ts +12 -18
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +11 -16
- package/dist/kit/actions.d.ts +5 -9
- package/dist/kit/actions.d.ts.map +1 -1
- package/dist/kit/actions.js +5 -9
- package/dist/kit/index.d.ts +2 -33
- package/dist/kit/index.d.ts.map +1 -1
- package/dist/kit/index.js +1 -32
- package/dist/kit/kit.d.ts +8 -208
- package/dist/kit/kit.d.ts.map +1 -1
- package/dist/kit/kit.js +5 -163
- package/dist/kit/social.d.ts +1 -3
- package/dist/kit/social.d.ts.map +1 -1
- package/dist/kit/social.js +1 -3
- package/dist/kit/wire.d.ts +16 -5
- package/dist/kit/wire.d.ts.map +1 -1
- package/dist/kit/wire.js +19 -5
- package/dist/live-coding/assets/browser-authoring-index.json +1 -1
- package/dist/live-coding/assets/manifest.json +1 -1
- package/dist/live-coding/browser-authoring-index.generated.d.ts.map +1 -1
- package/dist/live-coding/browser-authoring-index.generated.js +1496 -4386
- package/dist/live-coding/rust-analysis.d.ts.map +1 -1
- package/dist/live-coding/rust-analysis.js +31 -23
- package/dist/player-runtime/client-host-calls.d.ts +8 -0
- package/dist/player-runtime/client-host-calls.d.ts.map +1 -0
- package/dist/player-runtime/client-host-calls.js +28 -0
- package/dist/player-runtime/glue-runtime.d.ts +27 -10
- package/dist/player-runtime/glue-runtime.d.ts.map +1 -1
- package/dist/player-runtime/glue-runtime.js +40 -45
- package/dist/player-runtime/glue-sab.d.ts +2 -2
- package/dist/player-runtime/glue-sab.js +2 -2
- package/dist/player-runtime/player-code-broker.d.ts +80 -24
- package/dist/player-runtime/player-code-broker.d.ts.map +1 -1
- package/dist/player-runtime/player-code-broker.js +169 -41
- package/dist/player-runtime/player-glue-worker.d.ts +8 -8
- package/dist/player-runtime/player-glue-worker.d.ts.map +1 -1
- package/dist/player-runtime/player-glue-worker.js +26 -9
- package/dist/stores/actors.d.ts +12 -2
- package/dist/stores/actors.d.ts.map +1 -1
- package/dist/stores/actors.js +43 -18
- package/dist/stores/chunks.d.ts +12 -0
- package/dist/stores/chunks.d.ts.map +1 -1
- package/dist/stores/chunks.js +112 -39
- package/dist/stores/durable.d.ts.map +1 -1
- package/dist/stores/durable.js +2 -1
- package/dist/stores/inbox.d.ts +1 -1
- package/dist/stores/inbox.d.ts.map +1 -1
- package/dist/stores/index.d.ts +0 -11
- package/dist/stores/index.d.ts.map +1 -1
- package/dist/stores/index.js +0 -4
- package/dist/stores/session.d.ts +0 -2
- package/dist/stores/session.d.ts.map +1 -1
- package/package.json +1 -1
- package/dist/crowdy-studio/model-lint-log.d.ts +0 -76
- package/dist/crowdy-studio/model-lint-log.d.ts.map +0 -1
- package/dist/crowdy-studio/model-lint-log.js +0 -93
- package/dist/crowdy-studio/model-lint.d.ts +0 -61
- package/dist/crowdy-studio/model-lint.d.ts.map +0 -1
- package/dist/crowdy-studio/model-lint.js +0 -45
- package/dist/domains/compute.d.ts +0 -208
- package/dist/domains/compute.d.ts.map +0 -1
- package/dist/domains/compute.js +0 -274
- package/dist/domains/controlPlane.d.ts +0 -38
- package/dist/domains/controlPlane.d.ts.map +0 -1
- package/dist/domains/controlPlane.js +0 -43
- package/dist/domains/gameModel.d.ts +0 -1174
- package/dist/domains/gameModel.d.ts.map +0 -1
- package/dist/domains/gameModel.js +0 -1333
- package/dist/domains/playerCompute.d.ts +0 -91
- package/dist/domains/playerCompute.d.ts.map +0 -1
- package/dist/domains/playerCompute.js +0 -136
- package/dist/domains/playerModel.d.ts +0 -20
- package/dist/domains/playerModel.d.ts.map +0 -1
- package/dist/domains/playerModel.js +0 -54
- package/dist/kit/abilities.d.ts +0 -66
- package/dist/kit/abilities.d.ts.map +0 -1
- package/dist/kit/abilities.js +0 -71
- package/dist/kit/blueprints/combat.d.ts +0 -81
- package/dist/kit/blueprints/combat.d.ts.map +0 -1
- package/dist/kit/blueprints/combat.js +0 -357
- package/dist/kit/blueprints/core.d.ts +0 -222
- package/dist/kit/blueprints/core.d.ts.map +0 -1
- package/dist/kit/blueprints/core.js +0 -185
- package/dist/kit/blueprints/decks.d.ts +0 -50
- package/dist/kit/blueprints/decks.d.ts.map +0 -1
- package/dist/kit/blueprints/decks.js +0 -163
- package/dist/kit/blueprints/economy.d.ts +0 -88
- package/dist/kit/blueprints/economy.d.ts.map +0 -1
- package/dist/kit/blueprints/economy.js +0 -533
- package/dist/kit/blueprints/guild.d.ts +0 -51
- package/dist/kit/blueprints/guild.d.ts.map +0 -1
- package/dist/kit/blueprints/guild.js +0 -50
- package/dist/kit/blueprints/index.d.ts +0 -23
- package/dist/kit/blueprints/index.d.ts.map +0 -1
- package/dist/kit/blueprints/index.js +0 -22
- package/dist/kit/blueprints/inventory.d.ts +0 -84
- package/dist/kit/blueprints/inventory.d.ts.map +0 -1
- package/dist/kit/blueprints/inventory.js +0 -257
- package/dist/kit/blueprints/leaderboards.d.ts +0 -49
- package/dist/kit/blueprints/leaderboards.d.ts.map +0 -1
- package/dist/kit/blueprints/leaderboards.js +0 -126
- package/dist/kit/blueprints/liveops.d.ts +0 -42
- package/dist/kit/blueprints/liveops.d.ts.map +0 -1
- package/dist/kit/blueprints/liveops.js +0 -170
- package/dist/kit/blueprints/locks.d.ts +0 -82
- package/dist/kit/blueprints/locks.d.ts.map +0 -1
- package/dist/kit/blueprints/locks.js +0 -155
- package/dist/kit/blueprints/loot.d.ts +0 -90
- package/dist/kit/blueprints/loot.d.ts.map +0 -1
- package/dist/kit/blueprints/loot.js +0 -229
- package/dist/kit/blueprints/matches.d.ts +0 -84
- package/dist/kit/blueprints/matches.d.ts.map +0 -1
- package/dist/kit/blueprints/matches.js +0 -349
- package/dist/kit/blueprints/moderation.d.ts +0 -32
- package/dist/kit/blueprints/moderation.d.ts.map +0 -1
- package/dist/kit/blueprints/moderation.js +0 -140
- package/dist/kit/blueprints/npcs.d.ts +0 -78
- package/dist/kit/blueprints/npcs.d.ts.map +0 -1
- package/dist/kit/blueprints/npcs.js +0 -125
- package/dist/kit/blueprints/plots.d.ts +0 -63
- package/dist/kit/blueprints/plots.d.ts.map +0 -1
- package/dist/kit/blueprints/plots.js +0 -151
- package/dist/kit/blueprints/progression.d.ts +0 -68
- package/dist/kit/blueprints/progression.d.ts.map +0 -1
- package/dist/kit/blueprints/progression.js +0 -324
- package/dist/kit/blueprints/quests.d.ts +0 -72
- package/dist/kit/blueprints/quests.d.ts.map +0 -1
- package/dist/kit/blueprints/quests.js +0 -285
- package/dist/kit/blueprints/worldsim.d.ts +0 -91
- package/dist/kit/blueprints/worldsim.d.ts.map +0 -1
- package/dist/kit/blueprints/worldsim.js +0 -468
- package/dist/kit/combat.d.ts +0 -141
- package/dist/kit/combat.d.ts.map +0 -1
- package/dist/kit/combat.js +0 -196
- package/dist/kit/decks.d.ts +0 -157
- package/dist/kit/decks.d.ts.map +0 -1
- package/dist/kit/decks.js +0 -186
- package/dist/kit/director.d.ts +0 -88
- package/dist/kit/director.d.ts.map +0 -1
- package/dist/kit/director.js +0 -86
- package/dist/kit/economy.d.ts +0 -289
- package/dist/kit/economy.d.ts.map +0 -1
- package/dist/kit/economy.js +0 -427
- package/dist/kit/engine.d.ts +0 -48
- package/dist/kit/engine.d.ts.map +0 -1
- package/dist/kit/engine.js +0 -113
- package/dist/kit/features.d.ts +0 -60
- package/dist/kit/features.d.ts.map +0 -1
- package/dist/kit/features.js +0 -65
- package/dist/kit/instances.d.ts +0 -52
- package/dist/kit/instances.d.ts.map +0 -1
- package/dist/kit/instances.js +0 -60
- package/dist/kit/inventory.d.ts +0 -129
- package/dist/kit/inventory.d.ts.map +0 -1
- package/dist/kit/inventory.js +0 -200
- package/dist/kit/leaderboards.d.ts +0 -86
- package/dist/kit/leaderboards.d.ts.map +0 -1
- package/dist/kit/leaderboards.js +0 -133
- package/dist/kit/liveops.d.ts +0 -112
- package/dist/kit/liveops.d.ts.map +0 -1
- package/dist/kit/liveops.js +0 -183
- package/dist/kit/loot.d.ts +0 -128
- package/dist/kit/loot.d.ts.map +0 -1
- package/dist/kit/loot.js +0 -160
- package/dist/kit/matches.d.ts +0 -301
- package/dist/kit/matches.d.ts.map +0 -1
- package/dist/kit/matches.js +0 -458
- package/dist/kit/matchmaking.d.ts +0 -57
- package/dist/kit/matchmaking.d.ts.map +0 -1
- package/dist/kit/matchmaking.js +0 -59
- package/dist/kit/minigames.d.ts +0 -30
- package/dist/kit/minigames.d.ts.map +0 -1
- package/dist/kit/minigames.js +0 -38
- package/dist/kit/mobs.d.ts +0 -90
- package/dist/kit/mobs.d.ts.map +0 -1
- package/dist/kit/mobs.js +0 -98
- package/dist/kit/moderation.d.ts +0 -73
- package/dist/kit/moderation.d.ts.map +0 -1
- package/dist/kit/moderation.js +0 -103
- package/dist/kit/movement.d.ts +0 -78
- package/dist/kit/movement.d.ts.map +0 -1
- package/dist/kit/movement.js +0 -103
- package/dist/kit/notifications.d.ts +0 -45
- package/dist/kit/notifications.d.ts.map +0 -1
- package/dist/kit/notifications.js +0 -67
- package/dist/kit/npcs.d.ts +0 -226
- package/dist/kit/npcs.d.ts.map +0 -1
- package/dist/kit/npcs.js +0 -141
- package/dist/kit/objects.d.ts +0 -116
- package/dist/kit/objects.d.ts.map +0 -1
- package/dist/kit/objects.js +0 -119
- package/dist/kit/pets.d.ts +0 -85
- package/dist/kit/pets.d.ts.map +0 -1
- package/dist/kit/pets.js +0 -96
- package/dist/kit/plots.d.ts +0 -85
- package/dist/kit/plots.d.ts.map +0 -1
- package/dist/kit/plots.js +0 -113
- package/dist/kit/progression.d.ts +0 -181
- package/dist/kit/progression.d.ts.map +0 -1
- package/dist/kit/progression.js +0 -265
- package/dist/kit/quests.d.ts +0 -171
- package/dist/kit/quests.d.ts.map +0 -1
- package/dist/kit/quests.js +0 -237
- package/dist/kit/racing.d.ts +0 -85
- package/dist/kit/racing.d.ts.map +0 -1
- package/dist/kit/racing.js +0 -99
- package/dist/kit/shared.d.ts +0 -73
- package/dist/kit/shared.d.ts.map +0 -1
- package/dist/kit/shared.js +0 -101
- package/dist/kit/telemetry.d.ts +0 -66
- package/dist/kit/telemetry.d.ts.map +0 -1
- package/dist/kit/telemetry.js +0 -133
- package/dist/kit/territory.d.ts +0 -97
- package/dist/kit/territory.d.ts.map +0 -1
- package/dist/kit/territory.js +0 -114
- package/dist/kit/worldsim.d.ts +0 -263
- package/dist/kit/worldsim.d.ts.map +0 -1
- package/dist/kit/worldsim.js +0 -268
- package/dist/stores/model.d.ts +0 -81
- package/dist/stores/model.d.ts.map +0 -1
- package/dist/stores/model.js +0 -163
|
@@ -1,357 +0,0 @@
|
|
|
1
|
-
import { kitPolicyJson, ownerMirrorProperty, toSnakeCase, } from './core.js';
|
|
2
|
-
/** Compute the type/function names a combat blueprint (and its runtime helper) uses. */
|
|
3
|
-
export function combatNames(typePrefix = '') {
|
|
4
|
-
const fnPrefix = typePrefix ? `${toSnakeCase(typePrefix)}_` : '';
|
|
5
|
-
return {
|
|
6
|
-
combatantType: `${typePrefix}Combatant`,
|
|
7
|
-
effectType: `${typePrefix}StatusEffect`,
|
|
8
|
-
attackFn: `${fnPrefix}attack`,
|
|
9
|
-
applyEffectFn: `${fnPrefix}apply_effect`,
|
|
10
|
-
effectTickFn: `${fnPrefix}effect_tick`,
|
|
11
|
-
respawnFn: `${fnPrefix}respawn`,
|
|
12
|
-
reviveFn: `${fnPrefix}revive`,
|
|
13
|
-
syncFn: `${fnPrefix}sync_combatant`,
|
|
14
|
-
effectTickAutomation: `${fnPrefix.replace(/_/g, '-')}effect-tick`,
|
|
15
|
-
};
|
|
16
|
-
}
|
|
17
|
-
/**
|
|
18
|
-
* Blueprint for **server-authoritative combat** (the turn-based / MMO-durable
|
|
19
|
-
* tier): `Combatant` containers (hp / attack / defense / alive), an `attack`
|
|
20
|
-
* function whose damage formula and death flip run entirely server-side,
|
|
21
|
-
* status effects as `StatusEffect` containers ticked by an interval
|
|
22
|
-
* automation (damage-over-time between requests), and respawn/revive.
|
|
23
|
-
*
|
|
24
|
-
* The effect tick runs only while the app has a player in it (2026-09-01), which
|
|
25
|
-
* for combat is usually what you want: nothing is fighting in an empty world.
|
|
26
|
-
* Store an expiry timestamp on each effect rather than a remaining-ticks counter,
|
|
27
|
-
* so an effect that should have lapsed while the app was empty is treated as
|
|
28
|
-
* lapsed on the next tick instead of resuming with time left on it.
|
|
29
|
-
*
|
|
30
|
-
* The effect tick uses the selector **join** pattern: each combatant carries
|
|
31
|
-
* a unique `combat_key`, effects record a `target_key`, and the automation's
|
|
32
|
-
* selector binds the matching combatant as a `$target` ref param
|
|
33
|
-
* (`where combat_key == self.target_key`) — automations cannot follow
|
|
34
|
-
* property refs directly.
|
|
35
|
-
*
|
|
36
|
-
* For fast-twitch combat keep the per-frame simulation on the replication
|
|
37
|
-
* plane under host authority and set `hostSynced: true` to get the
|
|
38
|
-
* `is_host`-gated durable sync function.
|
|
39
|
-
*
|
|
40
|
-
* Runtime counterpart: `client.kit(appId).combat`.
|
|
41
|
-
*/
|
|
42
|
-
export function combatBlueprint(options = {}) {
|
|
43
|
-
const { typePrefix = '', turnBased = false, hostSynced = false, effectTickIntervalMs = 5000, combatantInstantiableBy = 'member', reviveGroup, ownerIdKind: kind = 'int', } = options;
|
|
44
|
-
const names = combatNames(typePrefix);
|
|
45
|
-
const actorPolicy = (condition) => {
|
|
46
|
-
const rules = [
|
|
47
|
-
{ type: 'owner_of_self' },
|
|
48
|
-
...(turnBased ? [{ type: 'is_current_turn' }] : []),
|
|
49
|
-
{ type: 'condition', expression: condition },
|
|
50
|
-
];
|
|
51
|
-
return kitPolicyJson({ type: 'and', rules });
|
|
52
|
-
};
|
|
53
|
-
const propertyDefinitions = [
|
|
54
|
-
ownerMirrorProperty(names.combatantType, kind),
|
|
55
|
-
{
|
|
56
|
-
containerTypeName: names.combatantType,
|
|
57
|
-
key: 'combat_key',
|
|
58
|
-
valueType: 'string',
|
|
59
|
-
defaultValueJson: '""',
|
|
60
|
-
description: 'Unique join key the status-effect automation selector matches against effect target_key.',
|
|
61
|
-
},
|
|
62
|
-
{
|
|
63
|
-
containerTypeName: names.combatantType,
|
|
64
|
-
key: 'hp',
|
|
65
|
-
valueType: 'int',
|
|
66
|
-
defaultValueJson: '100',
|
|
67
|
-
description: 'Current hit points (never below 0).',
|
|
68
|
-
},
|
|
69
|
-
{
|
|
70
|
-
containerTypeName: names.combatantType,
|
|
71
|
-
key: 'max_hp',
|
|
72
|
-
valueType: 'int',
|
|
73
|
-
defaultValueJson: '100',
|
|
74
|
-
description: 'Hit point ceiling (respawn/heal target).',
|
|
75
|
-
},
|
|
76
|
-
{
|
|
77
|
-
containerTypeName: names.combatantType,
|
|
78
|
-
key: 'attack',
|
|
79
|
-
valueType: 'int',
|
|
80
|
-
defaultValueJson: '10',
|
|
81
|
-
description: 'Attack stat fed into the damage formula.',
|
|
82
|
-
},
|
|
83
|
-
{
|
|
84
|
-
containerTypeName: names.combatantType,
|
|
85
|
-
key: 'defense',
|
|
86
|
-
valueType: 'int',
|
|
87
|
-
defaultValueJson: '0',
|
|
88
|
-
description: 'Damage reduction stat.',
|
|
89
|
-
},
|
|
90
|
-
{
|
|
91
|
-
containerTypeName: names.combatantType,
|
|
92
|
-
key: 'alive',
|
|
93
|
-
valueType: 'bool',
|
|
94
|
-
defaultValueJson: 'true',
|
|
95
|
-
description: 'Flipped server-side when hp reaches 0.',
|
|
96
|
-
},
|
|
97
|
-
{
|
|
98
|
-
containerTypeName: names.combatantType,
|
|
99
|
-
key: 'respawn_x',
|
|
100
|
-
valueType: 'float',
|
|
101
|
-
defaultValueJson: '0',
|
|
102
|
-
description: 'Respawn anchor (informational; movement is the replication plane).',
|
|
103
|
-
},
|
|
104
|
-
{
|
|
105
|
-
containerTypeName: names.combatantType,
|
|
106
|
-
key: 'respawn_y',
|
|
107
|
-
valueType: 'float',
|
|
108
|
-
defaultValueJson: '0',
|
|
109
|
-
description: 'Respawn anchor.',
|
|
110
|
-
},
|
|
111
|
-
{
|
|
112
|
-
containerTypeName: names.combatantType,
|
|
113
|
-
key: 'respawn_z',
|
|
114
|
-
valueType: 'float',
|
|
115
|
-
defaultValueJson: '0',
|
|
116
|
-
description: 'Respawn anchor.',
|
|
117
|
-
},
|
|
118
|
-
ownerMirrorProperty(names.effectType, kind),
|
|
119
|
-
{
|
|
120
|
-
containerTypeName: names.effectType,
|
|
121
|
-
key: 'effect_id',
|
|
122
|
-
valueType: 'string',
|
|
123
|
-
defaultValueJson: '""',
|
|
124
|
-
description: "Effect identifier (e.g. 'poison', 'burn').",
|
|
125
|
-
},
|
|
126
|
-
{
|
|
127
|
-
containerTypeName: names.effectType,
|
|
128
|
-
key: 'target_key',
|
|
129
|
-
valueType: 'string',
|
|
130
|
-
defaultValueJson: '""',
|
|
131
|
-
description: "The target combatant's combat_key (selector join key).",
|
|
132
|
-
},
|
|
133
|
-
{
|
|
134
|
-
containerTypeName: names.effectType,
|
|
135
|
-
key: 'magnitude',
|
|
136
|
-
valueType: 'int',
|
|
137
|
-
defaultValueJson: '0',
|
|
138
|
-
description: 'Damage applied per tick.',
|
|
139
|
-
},
|
|
140
|
-
{
|
|
141
|
-
containerTypeName: names.effectType,
|
|
142
|
-
key: 'ticks_left',
|
|
143
|
-
valueType: 'int',
|
|
144
|
-
defaultValueJson: '0',
|
|
145
|
-
description: 'Remaining ticks; the automation only selects effects above 0.',
|
|
146
|
-
},
|
|
147
|
-
];
|
|
148
|
-
const functions = [
|
|
149
|
-
{
|
|
150
|
-
name: names.attackFn,
|
|
151
|
-
containerTypeName: names.combatantType,
|
|
152
|
-
returnType: 'int',
|
|
153
|
-
parameters: [
|
|
154
|
-
{
|
|
155
|
-
name: 'target_id',
|
|
156
|
-
valueType: 'container_ref',
|
|
157
|
-
required: true,
|
|
158
|
-
description: 'The combatant being attacked.',
|
|
159
|
-
},
|
|
160
|
-
],
|
|
161
|
-
mutations: [
|
|
162
|
-
{
|
|
163
|
-
target: 'ref($target_id)',
|
|
164
|
-
property: 'hp',
|
|
165
|
-
expression: 'max(0, ref($target_id).hp - max(1, self.attack - ref($target_id).defense))',
|
|
166
|
-
},
|
|
167
|
-
{
|
|
168
|
-
target: 'ref($target_id)',
|
|
169
|
-
property: 'alive',
|
|
170
|
-
expression: 'ref($target_id).hp > 0',
|
|
171
|
-
},
|
|
172
|
-
],
|
|
173
|
-
returnExpression: 'ref($target_id).hp',
|
|
174
|
-
invokePolicyJson: actorPolicy('self.alive && ref($target_id).alive'),
|
|
175
|
-
description: 'Attack a target: the damage formula (attack vs defense, min 1) and the death flip run server-side in one transaction.',
|
|
176
|
-
},
|
|
177
|
-
{
|
|
178
|
-
name: names.applyEffectFn,
|
|
179
|
-
containerTypeName: names.effectType,
|
|
180
|
-
returnType: 'int',
|
|
181
|
-
parameters: [
|
|
182
|
-
{
|
|
183
|
-
name: 'target_key',
|
|
184
|
-
valueType: 'string',
|
|
185
|
-
required: true,
|
|
186
|
-
description: "The target combatant's combat_key.",
|
|
187
|
-
},
|
|
188
|
-
{
|
|
189
|
-
name: 'effect_id',
|
|
190
|
-
valueType: 'string',
|
|
191
|
-
required: true,
|
|
192
|
-
description: 'Effect identifier.',
|
|
193
|
-
},
|
|
194
|
-
{
|
|
195
|
-
name: 'magnitude',
|
|
196
|
-
valueType: 'int',
|
|
197
|
-
required: true,
|
|
198
|
-
description: 'Damage per tick.',
|
|
199
|
-
},
|
|
200
|
-
{
|
|
201
|
-
name: 'ticks',
|
|
202
|
-
valueType: 'int',
|
|
203
|
-
required: true,
|
|
204
|
-
description: 'Number of ticks the effect lasts.',
|
|
205
|
-
},
|
|
206
|
-
],
|
|
207
|
-
mutations: [
|
|
208
|
-
{ target: 'self', property: 'effect_id', expression: '$effect_id' },
|
|
209
|
-
{ target: 'self', property: 'target_key', expression: '$target_key' },
|
|
210
|
-
{ target: 'self', property: 'magnitude', expression: 'max(0, $magnitude)' },
|
|
211
|
-
{ target: 'self', property: 'ticks_left', expression: '$ticks' },
|
|
212
|
-
],
|
|
213
|
-
returnExpression: 'self.ticks_left',
|
|
214
|
-
invokePolicyJson: actorPolicy('$ticks > 0 && self.ticks_left == 0'),
|
|
215
|
-
description: 'Arm a status effect against a target combat_key; the interval automation applies it tick by tick.',
|
|
216
|
-
},
|
|
217
|
-
{
|
|
218
|
-
name: names.effectTickFn,
|
|
219
|
-
containerTypeName: names.effectType,
|
|
220
|
-
returnType: 'int',
|
|
221
|
-
parameters: [
|
|
222
|
-
{
|
|
223
|
-
name: 'target',
|
|
224
|
-
valueType: 'container_ref',
|
|
225
|
-
required: true,
|
|
226
|
-
description: 'The affected combatant — bound by the automation selector join (combat_key == target_key).',
|
|
227
|
-
},
|
|
228
|
-
],
|
|
229
|
-
mutations: [
|
|
230
|
-
{
|
|
231
|
-
target: 'ref($target)',
|
|
232
|
-
property: 'hp',
|
|
233
|
-
expression: 'max(0, ref($target).hp - self.magnitude)',
|
|
234
|
-
},
|
|
235
|
-
{
|
|
236
|
-
target: 'ref($target)',
|
|
237
|
-
property: 'alive',
|
|
238
|
-
expression: 'ref($target).hp > 0',
|
|
239
|
-
},
|
|
240
|
-
{
|
|
241
|
-
target: 'self',
|
|
242
|
-
property: 'ticks_left',
|
|
243
|
-
expression: 'self.ticks_left - 1',
|
|
244
|
-
},
|
|
245
|
-
],
|
|
246
|
-
returnExpression: 'self.ticks_left',
|
|
247
|
-
invokePolicyJson: kitPolicyJson({ type: 'is_automation' }),
|
|
248
|
-
autonomousInvocable: true,
|
|
249
|
-
description: 'Server-driven damage-over-time tick (automation-only): applies magnitude to the joined target and decrements ticks_left.',
|
|
250
|
-
},
|
|
251
|
-
{
|
|
252
|
-
name: names.respawnFn,
|
|
253
|
-
containerTypeName: names.combatantType,
|
|
254
|
-
returnType: 'int',
|
|
255
|
-
mutations: [
|
|
256
|
-
{ target: 'self', property: 'hp', expression: 'self.max_hp' },
|
|
257
|
-
{ target: 'self', property: 'alive', expression: 'true' },
|
|
258
|
-
],
|
|
259
|
-
returnExpression: 'self.hp',
|
|
260
|
-
invokePolicyJson: kitPolicyJson({
|
|
261
|
-
type: 'and',
|
|
262
|
-
rules: [
|
|
263
|
-
{ type: 'owner_of_self' },
|
|
264
|
-
{ type: 'condition', expression: 'not(self.alive)' },
|
|
265
|
-
],
|
|
266
|
-
}),
|
|
267
|
-
description: 'Respawn your downed combatant at full hp (move the actor to the respawn anchor client-side).',
|
|
268
|
-
},
|
|
269
|
-
];
|
|
270
|
-
if (reviveGroup) {
|
|
271
|
-
functions.push({
|
|
272
|
-
name: names.reviveFn,
|
|
273
|
-
containerTypeName: names.combatantType,
|
|
274
|
-
returnType: 'int',
|
|
275
|
-
mutations: [
|
|
276
|
-
{ target: 'self', property: 'hp', expression: 'self.max_hp' },
|
|
277
|
-
{ target: 'self', property: 'alive', expression: 'true' },
|
|
278
|
-
],
|
|
279
|
-
returnExpression: 'self.hp',
|
|
280
|
-
invokePolicyJson: kitPolicyJson({
|
|
281
|
-
type: 'and',
|
|
282
|
-
rules: [
|
|
283
|
-
{
|
|
284
|
-
type: 'group_permission',
|
|
285
|
-
groupId: reviveGroup.groupId,
|
|
286
|
-
...(reviveGroup.permission !== undefined
|
|
287
|
-
? { permission: reviveGroup.permission }
|
|
288
|
-
: {}),
|
|
289
|
-
},
|
|
290
|
-
{ type: 'condition', expression: 'not(self.alive)' },
|
|
291
|
-
],
|
|
292
|
-
}),
|
|
293
|
-
description: 'Revive any downed combatant (team/group-permission gated).',
|
|
294
|
-
});
|
|
295
|
-
}
|
|
296
|
-
if (hostSynced) {
|
|
297
|
-
functions.push({
|
|
298
|
-
name: names.syncFn,
|
|
299
|
-
containerTypeName: names.combatantType,
|
|
300
|
-
returnType: 'int',
|
|
301
|
-
parameters: [
|
|
302
|
-
{
|
|
303
|
-
name: 'hp',
|
|
304
|
-
valueType: 'int',
|
|
305
|
-
required: true,
|
|
306
|
-
description: 'The host-simulated hp to persist (clamped to 0..max_hp).',
|
|
307
|
-
},
|
|
308
|
-
],
|
|
309
|
-
mutations: [
|
|
310
|
-
{ target: 'self', property: 'hp', expression: 'clamp($hp, 0, self.max_hp)' },
|
|
311
|
-
{ target: 'self', property: 'alive', expression: 'self.hp > 0' },
|
|
312
|
-
],
|
|
313
|
-
returnExpression: 'self.hp',
|
|
314
|
-
invokePolicyJson: kitPolicyJson({ type: 'is_host' }),
|
|
315
|
-
description: 'Persist host-simulated combat state (is_host enforced): the fast tier runs on the replication plane, durable hp syncs here at low frequency.',
|
|
316
|
-
});
|
|
317
|
-
}
|
|
318
|
-
const automations = [
|
|
319
|
-
{
|
|
320
|
-
name: names.effectTickAutomation,
|
|
321
|
-
functionName: names.effectTickFn,
|
|
322
|
-
targetMode: 'type',
|
|
323
|
-
targetTypeName: names.effectType,
|
|
324
|
-
triggerType: 'schedule',
|
|
325
|
-
scheduleKind: 'interval',
|
|
326
|
-
intervalMs: effectTickIntervalMs,
|
|
327
|
-
maxTargets: 32,
|
|
328
|
-
selectorJson: JSON.stringify({
|
|
329
|
-
selfWhere: [{ key: 'ticks_left', op: '>', value: 0 }],
|
|
330
|
-
ofType: names.combatantType,
|
|
331
|
-
where: [{ key: 'combat_key', op: '==', value: 'self.target_key' }],
|
|
332
|
-
bindAs: { ref: 'target' },
|
|
333
|
-
}),
|
|
334
|
-
description: 'Ticks active status effects: joins each effect to its target combatant and applies damage-over-time.',
|
|
335
|
-
},
|
|
336
|
-
];
|
|
337
|
-
return {
|
|
338
|
-
name: names.combatantType,
|
|
339
|
-
containerTypes: [
|
|
340
|
-
{
|
|
341
|
-
typeName: names.combatantType,
|
|
342
|
-
displayName: names.combatantType,
|
|
343
|
-
instantiableBy: combatantInstantiableBy,
|
|
344
|
-
description: 'A combat participant with server-authoritative hp/stats.',
|
|
345
|
-
},
|
|
346
|
-
{
|
|
347
|
-
typeName: names.effectType,
|
|
348
|
-
displayName: names.effectType,
|
|
349
|
-
instantiableBy: 'member',
|
|
350
|
-
description: 'An armed status effect ticked by the server automation.',
|
|
351
|
-
},
|
|
352
|
-
],
|
|
353
|
-
propertyDefinitions,
|
|
354
|
-
functions,
|
|
355
|
-
automations,
|
|
356
|
-
};
|
|
357
|
-
}
|
|
@@ -1,222 +0,0 @@
|
|
|
1
|
-
import type { 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
|
-
/** The wire payloads {@link mergeBlueprints} produces for one deployment. */
|
|
132
|
-
export interface MergedBlueprints {
|
|
133
|
-
seedInput: SeedGameModelInput;
|
|
134
|
-
automations: UpsertAutomationInput[];
|
|
135
|
-
automationTriggers: UpsertAutomationTriggerInput[];
|
|
136
|
-
}
|
|
137
|
-
/**
|
|
138
|
-
* Merge blueprints into a single `gameModelSeed` payload plus the automation
|
|
139
|
-
* upserts, rejecting duplicate type, property, function, or automation names
|
|
140
|
-
* across blueprints (a duplicate almost always means two blueprints need
|
|
141
|
-
* distinct prefixes/type names).
|
|
142
|
-
*/
|
|
143
|
-
export declare function mergeBlueprints(appId: Scalars['BigInt']['input'], blueprints: KitBlueprint[], options?: {
|
|
144
|
-
sessionId?: string;
|
|
145
|
-
}): MergedBlueprints;
|
|
146
|
-
/**
|
|
147
|
-
* Concatenate several blueprints into ONE composite blueprint (a plain
|
|
148
|
-
* client-side merge of the definition arrays — no collision checks; those
|
|
149
|
-
* happen in {@link mergeBlueprints} at deploy). Used by composite builders
|
|
150
|
-
* such as `guildBlueprint` that bundle other builders' output under a single
|
|
151
|
-
* name.
|
|
152
|
-
*/
|
|
153
|
-
export declare function composeBlueprints(name: string, blueprints: KitBlueprint[]): KitBlueprint;
|
|
154
|
-
/**
|
|
155
|
-
* Who may call a **trusted** mutation (XP grants, score submits, loot rolls,
|
|
156
|
-
* currency mints, …) — the kit-standard authority shape mirroring
|
|
157
|
-
* `LockAuthority` (Part of the anti-cheat conventions: reward-granting
|
|
158
|
-
* functions must never be plain player calls):
|
|
159
|
-
*
|
|
160
|
-
* - `'server'` — `invokeScope: "server"`: only app admins may invoke (run it
|
|
161
|
-
* from trusted studio/backend code holding `manage_apps`).
|
|
162
|
-
* - `'host'` — `is_host` policy: the elected host client may invoke.
|
|
163
|
-
* - `'automation'` — `autonomousInvocable` + `is_automation` policy: only
|
|
164
|
-
* server-driven automations may invoke.
|
|
165
|
-
* - `'owner'` — `owner_of_self`: the owning player (only safe for
|
|
166
|
-
* self-limiting functions guarded by conditions).
|
|
167
|
-
* - `{ custom: rule }` — any hand-written policy rule.
|
|
168
|
-
*/
|
|
169
|
-
export type KitTrustedAuthority = 'server' | 'host' | 'automation' | 'owner' | {
|
|
170
|
-
custom: KitInvokePolicy;
|
|
171
|
-
};
|
|
172
|
-
/**
|
|
173
|
-
* The function-level fields a {@link KitTrustedAuthority} compiles to.
|
|
174
|
-
* `extraCondition` (when given) is AND'ed into the policy.
|
|
175
|
-
*/
|
|
176
|
-
export declare function trustedAuthorityFields(authority: KitTrustedAuthority, extraCondition?: string): Pick<{
|
|
177
|
-
invokePolicyJson: string;
|
|
178
|
-
invokeScope?: string;
|
|
179
|
-
autonomousInvocable?: boolean;
|
|
180
|
-
}, 'invokePolicyJson' | 'invokeScope' | 'autonomousInvocable'>;
|
|
181
|
-
/**
|
|
182
|
-
* AND extra policy rules into a base policy (skipping empties) — the
|
|
183
|
-
* composition point for `policyExtra` options such as
|
|
184
|
-
* `plotBlueprint({ buyPolicyExtra: featureGate('land_owner') })`.
|
|
185
|
-
*/
|
|
186
|
-
export declare function andPolicies(base: KitInvokePolicy, ...extra: Array<KitInvokePolicy | undefined>): KitInvokePolicy;
|
|
187
|
-
/**
|
|
188
|
-
* A `tier_feature` policy leaf: the caller's access tier must hold `feature`
|
|
189
|
-
* (defined via `kit.features.define` and granted with
|
|
190
|
-
* `kit.features.grantToTier`). Pass it to any builder's `*policyExtra`
|
|
191
|
-
* option to monetization-gate that function.
|
|
192
|
-
*/
|
|
193
|
-
export declare function featureGate(feature: string): KitInvokePolicy;
|
|
194
|
-
/**
|
|
195
|
-
* How kit types mirror their owner's user id into an `owner_user_id`
|
|
196
|
-
* property (expressions cannot read container ownership directly).
|
|
197
|
-
* The kit standard is `'int'`; set `'string'` on a builder only when
|
|
198
|
-
* integrating with models that mirrored the owner as a string (e.g. Blocks
|
|
199
|
-
* with Friends) — generated conditions then compare via `to_string(...)`.
|
|
200
|
-
*/
|
|
201
|
-
export type KitOwnerIdKind = 'int' | 'string';
|
|
202
|
-
/**
|
|
203
|
-
* Expression fragment asserting that `ownerExpr` (an `owner_user_id`-style
|
|
204
|
-
* property read) equals a user-id expression (usually the injected
|
|
205
|
-
* `$caller_user_id` / `$self_owner_id` system params), honoring
|
|
206
|
-
* {@link KitOwnerIdKind}.
|
|
207
|
-
*/
|
|
208
|
-
export declare function ownerEquals(ownerExpr: string, userExpr: string, kind?: KitOwnerIdKind): string;
|
|
209
|
-
/**
|
|
210
|
-
* Expression fragment asserting that `ownerExpr` (an `owner_user_id`-style
|
|
211
|
-
* property read) equals the calling user, honoring {@link KitOwnerIdKind}.
|
|
212
|
-
*/
|
|
213
|
-
export declare function ownerEqualsCaller(ownerExpr: string, kind?: KitOwnerIdKind): string;
|
|
214
|
-
/** The `SeedPropertyDefInput` for a kit-standard owner mirror property. */
|
|
215
|
-
export declare function ownerMirrorProperty(containerTypeName: string, kind?: KitOwnerIdKind): {
|
|
216
|
-
containerTypeName: string;
|
|
217
|
-
key: string;
|
|
218
|
-
valueType: string;
|
|
219
|
-
defaultValueJson: string;
|
|
220
|
-
description: string;
|
|
221
|
-
};
|
|
222
|
-
//# sourceMappingURL=core.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"core.d.ts","sourceRoot":"","sources":["../../../src/kit/blueprints/core.ts"],"names":[],"mappings":"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"}
|