@skinhub/viewer 0.1.1 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/EMBED.md +97 -1
- package/dist/SkinViewer.js +1 -1
- package/dist/SkinViewer.js.map +1 -1
- package/dist/index.d.ts +10 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +9 -0
- package/dist/index.js.map +1 -1
- package/dist/item.d.ts +26 -1
- package/dist/item.d.ts.map +1 -1
- package/dist/item.js +37 -8
- package/dist/item.js.map +1 -1
- package/dist/protocol.d.ts +38 -1
- package/dist/protocol.d.ts.map +1 -1
- package/dist/protocol.js.map +1 -1
- package/dist/state.d.ts +25 -4
- package/dist/state.d.ts.map +1 -1
- package/dist/state.js +139 -12
- package/dist/state.js.map +1 -1
- package/dist/types.d.ts +118 -4
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +11 -0
- package/dist/types.js.map +1 -1
- package/package.json +1 -1
- package/src/SkinViewer.tsx +1 -1
- package/src/index.ts +13 -0
- package/src/item.ts +72 -1
- package/src/protocol.ts +32 -1
- package/src/state.ts +166 -15
- package/src/types.ts +144 -1
package/EMBED.md
CHANGED
|
@@ -8,6 +8,11 @@ no account, and no signup. Two ways to drive it:
|
|
|
8
8
|
| **The URL** | an `<iframe src>` | the complete initial picture: item, float, seed, stickers, charm, view, agent, gloves, lighting, quality |
|
|
9
9
|
| **`postMessage`** | ~10 lines of JavaScript | live updates on top of that, plus `ready` / `error` / `change` events |
|
|
10
10
|
|
|
11
|
+
**Five kinds of item are inspectable**, each with its own parameter: a weapon or glove
|
|
12
|
+
(`?weapon=`+`?paint=`), a sticker (`?sticker=`), a charm (`?charm=`), a collectible - pin, coin, medal
|
|
13
|
+
or trophy - (`?collectible=`), and an operator (`?subject=agent&agent=`). See
|
|
14
|
+
[the other four subjects](#the-other-four-subjects---a-sticker-a-charm-a-collectible-an-operator).
|
|
15
|
+
|
|
11
16
|
**The URL alone is a supported, first-class integration.** If your stack is PHP, Rails, Laravel, plain
|
|
12
17
|
HTML or anything else that renders on a server, you can interpolate an item into an `src` attribute
|
|
13
18
|
and be finished. Everything on this page above the "Live updates" heading works with JavaScript
|
|
@@ -79,6 +84,74 @@ Loads the legacy mesh variant. Most finishes declare this themselves and it is i
|
|
|
79
84
|
those that do not, from your catalogue's `legacy_model` column. It changes which textures apply, so
|
|
80
85
|
the wrong value is the wrong picture rather than a detail.
|
|
81
86
|
|
|
87
|
+
### The other four subjects - a sticker, a charm, a collectible, an operator
|
|
88
|
+
|
|
89
|
+
A weapon is one of **five** things the viewer draws, and a glove is not one of the other four - a glove
|
|
90
|
+
is a `?weapon=` id like any other. Each of the remaining four is named by its own parameter, and naming
|
|
91
|
+
it is the whole URL:
|
|
92
|
+
|
|
93
|
+
```
|
|
94
|
+
?sticker=37 one sticker, on nothing - the real holo/foil/glitter shader
|
|
95
|
+
?charm=5 one charm, off the gun
|
|
96
|
+
?collectible=874 one pin, coin, medal or trophy
|
|
97
|
+
?subject=agent&agent=5036 one operator, alone
|
|
98
|
+
```
|
|
99
|
+
|
|
100
|
+
| parameter | meaning | default |
|
|
101
|
+
|---|---|---|
|
|
102
|
+
| `sticker` | a `stickers.json` id. **Implies `subject=sticker`** | - |
|
|
103
|
+
| `wear` | that sticker's scratch, `0` (mint) to `1` (scraped off) | `0` |
|
|
104
|
+
| `charm` | a `keychains.json` id. **Implies `subject=charm`** | - |
|
|
105
|
+
| `pattern` | the charm's template - a hue/saturation/brightness adjust on its own albedo, not a different model | `0` |
|
|
106
|
+
| `collectible` | a `collectibles.json` item definition index. **Implies `subject=collectible`** | - |
|
|
107
|
+
| `subject` | `weapon`, `sticker`, `charm`, `collectible`, `agent` - read last, so it always wins | `weapon` |
|
|
108
|
+
|
|
109
|
+
**`?pattern=` and not `?seed=`,** because `seed` on this URL is already the weapon's paint seed.
|
|
110
|
+
|
|
111
|
+
**Two subjects in one URL:** the last one named wins, reading `sticker` → `charm` → `collectible` →
|
|
112
|
+
`subject`. There is no reason to send two; the rule exists only so that a URL which does still means
|
|
113
|
+
something.
|
|
114
|
+
|
|
115
|
+
In `@skinhub/viewer` each of the four is its own prop, and exactly one may be passed:
|
|
116
|
+
|
|
117
|
+
```jsx
|
|
118
|
+
<SkinViewer sticker={{ id: 37, wear: 0.2 }} />
|
|
119
|
+
<SkinViewer charm={{ id: 5, pattern: 900 }} />
|
|
120
|
+
<SkinViewer collectible={{ id: 874 }} />
|
|
121
|
+
<SkinViewer operator={{ id: 5036 }} />
|
|
122
|
+
```
|
|
123
|
+
|
|
124
|
+
#### The operator is the one that needs `?subject=`
|
|
125
|
+
|
|
126
|
+
`?agent=5036` has always meant **which operator**, and it keeps meaning exactly that. What changes is
|
|
127
|
+
what is on screen:
|
|
128
|
+
|
|
129
|
+
| | what you see |
|
|
130
|
+
|---|---|
|
|
131
|
+
| `?weapon=weapon_ak47&paint=1449&view=agent&agent=5036` | the operator **holding your weapon** |
|
|
132
|
+
| `?subject=agent&agent=5036` | the operator **alone**, no weapon drawn |
|
|
133
|
+
|
|
134
|
+
If your database row is an agent, you want the second: the first would put a rifle nobody asked for
|
|
135
|
+
into the picture. In the React package these are the `agent` prop (a modifier on the weapon subject)
|
|
136
|
+
and the `operator` prop (the person as the subject) - two words because they are two pictures.
|
|
137
|
+
|
|
138
|
+
`?pose=` works in both - 285 main-menu clips across 44 weapon families - and with no weapon on screen
|
|
139
|
+
it defaults to that team's own knife idle rather than matching a gun. The weapon each clip is
|
|
140
|
+
*holding* is never drawn, so `Look at gun` is an operator studying an empty hand.
|
|
141
|
+
|
|
142
|
+
#### What each subject does **not** have
|
|
143
|
+
|
|
144
|
+
A collectible has no float, no seed, no wear, no template and no pose - two copies of the same medal
|
|
145
|
+
are the same object, and `?collectible=874` is the entire configuration. None of the four takes
|
|
146
|
+
`?view=`, `?i=`, `?float=`, `?slot=` or the sticker slots: those are all statements about a weapon, and
|
|
147
|
+
`?view=` in particular answers "what is the weapon being shown *on*", which is not a question a sticker
|
|
148
|
+
has. They are ignored rather than rejected, and everything in §5 (lighting, background, quality, orbit,
|
|
149
|
+
zoom) applies to all five subjects identically.
|
|
150
|
+
|
|
151
|
+
An id of `0`, or one your catalogue does not have, renders **nothing** - deliberately. `sticker_id: 0`
|
|
152
|
+
is how the game itself says "empty slot", and drawing our default AK-47 for it would look exactly like
|
|
153
|
+
a successful render of the wrong item.
|
|
154
|
+
|
|
82
155
|
---
|
|
83
156
|
|
|
84
157
|
## 3. Configuring the item
|
|
@@ -248,7 +321,11 @@ Every message in both directions carries these three fields:
|
|
|
248
321
|
|
|
249
322
|
```js
|
|
250
323
|
set({
|
|
251
|
-
|
|
324
|
+
subject: 'weapon' | 'sticker' | 'charm' | 'collectible' | 'agent',
|
|
325
|
+
item: { weaponType, paintIndex, legacyModel, float, seed, statTrak, nameTag, stickers },
|
|
326
|
+
sticker: { id, wear },
|
|
327
|
+
charm: { id, pattern },
|
|
328
|
+
collectible: { id },
|
|
252
329
|
view: 'gun' | 'hands' | 'agent',
|
|
253
330
|
agent: { id, pose },
|
|
254
331
|
gloves: { type, paintIndex, float, seed } | null,
|
|
@@ -268,6 +345,13 @@ keeps your weapon, your stickers and your name plate. `set({ settings: { quality
|
|
|
268
345
|
keeps the camera and the environment. This is not just convenience - see
|
|
269
346
|
[cheap vs reload](#cheap-vs-reload).
|
|
270
347
|
|
|
348
|
+
**All five subjects are held at once, and only `subject` switches between them.**
|
|
349
|
+
`set({ sticker: { id: 37 } })` *configures* the sticker; `set({ subject: 'sticker' })` *shows* it. Send
|
|
350
|
+
both to do both. The split is what lets you pre-load the pin a visitor is about to open without
|
|
351
|
+
disturbing the rifle on screen, and what stops a host that restates its whole state on every render
|
|
352
|
+
from flipping subject whenever two groups happen to be present. Switching back is one field -
|
|
353
|
+
`set({ subject: 'weapon' })` - and the weapon is exactly where you left it.
|
|
354
|
+
|
|
271
355
|
**`null` is a value, not an absence**, wherever it means something: `nameTag: null` is no plate,
|
|
272
356
|
`statTrak: false` is no counter, `gloves: null` is the wearer's own default pair, `agent.pose: null` is
|
|
273
357
|
"match the weapon", `settings.environment.map: null` is our calibrated reference rig.
|
|
@@ -306,6 +390,18 @@ This is the part that decides whether the embed feels like a component or like a
|
|
|
306
390
|
| `float`, `seed`, `statTrak`, `nameTag`, stickers, the charm, **anything under `settings` or `interactions`** | **updates in place.** No loading card, no blank frame, no dropped frames. Drive it from a slider at 60 Hz |
|
|
307
391
|
| `item.weaponType`, `item.paintIndex`, `item.legacyModel`, `view`, and `agent.id` in the `agent` view | **reloads.** The viewer covers itself until the new model has actually drawn, and shows nothing rather than something half-built |
|
|
308
392
|
|
|
393
|
+
The same split, for the other four subjects:
|
|
394
|
+
|
|
395
|
+
| subject | reloads | updates in place |
|
|
396
|
+
|---|---|---|
|
|
397
|
+
| `sticker` | `sticker.id` | `sticker.wear` |
|
|
398
|
+
| `charm` | `charm.id` | `charm.pattern` |
|
|
399
|
+
| `collectible` | `collectible.id` | *nothing - there is no other field* |
|
|
400
|
+
| `agent` | `agent.id` | `agent.pose` |
|
|
401
|
+
|
|
402
|
+
**Changing `subject` always reloads**, in every direction: a weapon and a pin are drawn by different
|
|
403
|
+
renderers, so the picture is rebuilt from nothing.
|
|
404
|
+
|
|
309
405
|
Measured across the frame boundary: 140 `set` messages carrying a moving float, plus seed, StatTrak,
|
|
310
406
|
a name plate, a bloom change and a map change, produced **zero covered frames** over 93 drawn frames
|
|
311
407
|
and 979 samples.
|
package/dist/SkinViewer.js
CHANGED
|
@@ -161,7 +161,7 @@ export const SkinViewer = (props) => {
|
|
|
161
161
|
* showing, or the next real item would be diffed against a hole and sent in full for no reason.
|
|
162
162
|
*/
|
|
163
163
|
sent.current = { ...next, item: next.item ?? sent.current.item };
|
|
164
|
-
if (coversCanvas(patch, next
|
|
164
|
+
if (coversCanvas(patch, next)) {
|
|
165
165
|
setStatus('loading');
|
|
166
166
|
// A NEW ITEM IS A NEW CHANCE. A lost GL context or a 404 on one model says nothing about the
|
|
167
167
|
// next one, so the fallback comes down and the frame is allowed to try. A protocol mismatch is
|
package/dist/SkinViewer.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SkinViewer.js","sourceRoot":"","sources":["../src/SkinViewer.tsx"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"SkinViewer.js","sourceRoot":"","sources":["../src/SkinViewer.tsx"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -6,6 +6,15 @@
|
|
|
6
6
|
* <SkinViewer item={{ weapon: 'weapon_ak47', paintIndex: 1449, float: 0.27 }} style={{ height: 420 }} />
|
|
7
7
|
* <SkinViewer inspectLink={tradeOffer.inspectLink} style={{ height: 420 }} />
|
|
8
8
|
*
|
|
9
|
+
* A weapon (or a glove) is one of SIX ways to name a subject, and each is its own prop:
|
|
10
|
+
*
|
|
11
|
+
* <SkinViewer sticker={{ id: 37, wear: 0.2 }} /> one sticker, the real holo/foil shader
|
|
12
|
+
* <SkinViewer charm={{ id: 5 }} /> one charm, off the gun
|
|
13
|
+
* <SkinViewer collectible={{ id: 874 }} /> one pin, coin, medal or trophy
|
|
14
|
+
* <SkinViewer operator={{ id: 5036 }} /> one agent, alone
|
|
15
|
+
*
|
|
16
|
+
* Exactly one of the six, enforced in the types - see `ViewerSubject`.
|
|
17
|
+
*
|
|
9
18
|
* The 3D is not in here. It is a page on our origin that this component embeds and drives over
|
|
10
19
|
* `postMessage`, which is why installing this pulls in no `three`, no `@react-three/fiber` and no
|
|
11
20
|
* asset bundle - the only peer dependency is React. `EMBED.md` documents the same contract for stacks
|
|
@@ -46,7 +55,7 @@ export { useSkinViewer } from './useSkinViewer.js';
|
|
|
46
55
|
* when it can hand you the link. See `item.ts` for the three easy-to-get-wrong facts these encode.
|
|
47
56
|
*/
|
|
48
57
|
export { fromInspectLink, toInspectLink, toPlacement } from './item.js';
|
|
49
|
-
export type { MapName, SkinViewerCharm, SkinViewerError, SkinViewerErrorCode, SkinViewerHandle, SkinViewerItem, SkinViewerProps, SkinViewerSticker, TimeOfDay, ViewerAgent, ViewerBackground, ViewerCameraSettings, ViewerEnvironmentSettings, ViewerGloves, ViewerInteractions, ViewerOverlaySettings, ViewerQualitySettings, ViewerResize, ViewerSettings, ViewerStatus, ViewerSubject, ViewerView, } from './types.js';
|
|
58
|
+
export type { MapName, SkinViewerCharm, SkinViewerError, SkinViewerErrorCode, SkinViewerHandle, SkinViewerItem, SkinViewerProps, SkinViewerSticker, TimeOfDay, ViewerAgent, ViewerBackground, ViewerCameraSettings, ViewerCharmSubject, ViewerCollectibleSubject, ViewerEnvironmentSettings, ViewerGloves, ViewerInteractions, ViewerOperatorSubject, ViewerOverlaySettings, ViewerQualitySettings, ViewerResize, ViewerSettings, ViewerStatus, ViewerStickerSubject, ViewerSubject, ViewerView, } from './types.js';
|
|
50
59
|
export { CHEAP_FIELDS, MAP_NAMES } from './types.js';
|
|
51
60
|
export type { KnownWeaponId, WeaponId } from './weapons.js';
|
|
52
61
|
export { defindexForWeaponId, isGloveId, isKnownWeaponId, normalizeWeaponId, WEAPON_ID_ALIASES, WEAPON_ID_BY_DEFINDEX, WEAPON_IDS, weaponIdForDefindex, } from './weapons.js';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiDG;AAEH,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAA;AAC5D,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAElD;;;GAGG;AACH,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,WAAW,CAAA;AAEvE,YAAY,EACX,OAAO,EACP,eAAe,EACf,eAAe,EACf,mBAAmB,EACnB,gBAAgB,EAChB,cAAc,EACd,eAAe,EACf,iBAAiB,EACjB,SAAS,EACT,WAAW,EACX,gBAAgB,EAChB,oBAAoB,EACpB,kBAAkB,EAClB,wBAAwB,EACxB,yBAAyB,EACzB,YAAY,EACZ,kBAAkB,EAClB,qBAAqB,EACrB,qBAAqB,EACrB,qBAAqB,EACrB,YAAY,EACZ,cAAc,EACd,YAAY,EACZ,oBAAoB,EACpB,aAAa,EACb,UAAU,GACV,MAAM,YAAY,CAAA;AACnB,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,YAAY,CAAA;AAEpD,YAAY,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAA;AAC3D,OAAO,EACN,mBAAmB,EACnB,SAAS,EACT,eAAe,EACf,iBAAiB,EACjB,iBAAiB,EACjB,qBAAqB,EACrB,UAAU,EACV,mBAAmB,GACnB,MAAM,cAAc,CAAA"}
|
package/dist/index.js
CHANGED
|
@@ -6,6 +6,15 @@
|
|
|
6
6
|
* <SkinViewer item={{ weapon: 'weapon_ak47', paintIndex: 1449, float: 0.27 }} style={{ height: 420 }} />
|
|
7
7
|
* <SkinViewer inspectLink={tradeOffer.inspectLink} style={{ height: 420 }} />
|
|
8
8
|
*
|
|
9
|
+
* A weapon (or a glove) is one of SIX ways to name a subject, and each is its own prop:
|
|
10
|
+
*
|
|
11
|
+
* <SkinViewer sticker={{ id: 37, wear: 0.2 }} /> one sticker, the real holo/foil shader
|
|
12
|
+
* <SkinViewer charm={{ id: 5 }} /> one charm, off the gun
|
|
13
|
+
* <SkinViewer collectible={{ id: 874 }} /> one pin, coin, medal or trophy
|
|
14
|
+
* <SkinViewer operator={{ id: 5036 }} /> one agent, alone
|
|
15
|
+
*
|
|
16
|
+
* Exactly one of the six, enforced in the types - see `ViewerSubject`.
|
|
17
|
+
*
|
|
9
18
|
* The 3D is not in here. It is a page on our origin that this component embeds and drives over
|
|
10
19
|
* `postMessage`, which is why installing this pulls in no `three`, no `@react-three/fiber` and no
|
|
11
20
|
* asset bundle - the only peer dependency is React. `EMBED.md` documents the same contract for stacks
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiDG;AAEH,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAA;AAC5D,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAElD;;;GAGG;AACH,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,WAAW,CAAA;AA8BvE,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,YAAY,CAAA;AAGpD,OAAO,EACN,mBAAmB,EACnB,SAAS,EACT,eAAe,EACf,iBAAiB,EACjB,iBAAiB,EACjB,qBAAqB,EACrB,UAAU,EACV,mBAAmB,GACnB,MAAM,cAAc,CAAA"}
|
package/dist/item.d.ts
CHANGED
|
@@ -30,7 +30,7 @@
|
|
|
30
30
|
* use us - That is stated as a requirement and it is the path the product exists for.
|
|
31
31
|
*/
|
|
32
32
|
import { type SkinPlacement } from '@skinhub/cdn/placement';
|
|
33
|
-
import type { FrameItem, PlacementSlots } from './protocol.js';
|
|
33
|
+
import type { FrameCharm, FrameCollectible, FrameItem, FrameSticker, FrameSubjectKind, PlacementSlots } from './protocol.js';
|
|
34
34
|
import type { SkinViewerCharm, SkinViewerError, SkinViewerItem, SkinViewerSticker, ViewerSubject } from './types.js';
|
|
35
35
|
/**
|
|
36
36
|
* The public sticker list and charm as the six-slot tuple the frame validates.
|
|
@@ -74,6 +74,31 @@ export type ResolvedSubject = {
|
|
|
74
74
|
* build the frame's URL in a `useState` initialiser and have the FIRST PAINT be the integrator's item
|
|
75
75
|
* rather than ours swapped a tick later.
|
|
76
76
|
*/
|
|
77
|
+
/**
|
|
78
|
+
* *** THE OTHER FOUR SUBJECTS, RESOLVED BEFORE THE WEAPON IS EVEN LOOKED FOR. ***
|
|
79
|
+
*
|
|
80
|
+
* Returns null when the props name none of them, which is what sends {@link resolveSubject} on to the
|
|
81
|
+
* `inspectLink` / `item` pair below. The ORDER is the arm order in `types.ts` and it only matters for
|
|
82
|
+
* props that bypassed the types (plain JavaScript, an `any`), where naming two subjects has to mean
|
|
83
|
+
* SOMETHING - it means the first one on this list.
|
|
84
|
+
*
|
|
85
|
+
* *** AN ID THAT IS NOT A POSITIVE INTEGER IS `no-item`, NOT A ZERO. *** `sticker_id: 0` IS the empty
|
|
86
|
+
* slot throughout the renderer, so passing it through would ask the frame to draw an item that by
|
|
87
|
+
* definition does not exist; the instruction card plus an `onError` is a far better answer than an
|
|
88
|
+
* empty canvas. This is the same "data had not arrived yet" case the `no-item` code exists for.
|
|
89
|
+
*/
|
|
90
|
+
export type ResolvedStandalone = {
|
|
91
|
+
subject: Exclude<FrameSubjectKind, 'weapon'>;
|
|
92
|
+
sticker?: FrameSticker;
|
|
93
|
+
charm?: FrameCharm;
|
|
94
|
+
collectible?: FrameCollectible;
|
|
95
|
+
agent?: {
|
|
96
|
+
id: number;
|
|
97
|
+
pose?: string | null;
|
|
98
|
+
};
|
|
99
|
+
error: SkinViewerError | null;
|
|
100
|
+
};
|
|
101
|
+
export declare const resolveStandalone: (props: Partial<ViewerSubject>) => ResolvedStandalone | null;
|
|
77
102
|
export declare const resolveSubject: (subject: Partial<ViewerSubject>) => ResolvedSubject;
|
|
78
103
|
/**
|
|
79
104
|
* The frame's item as the public one - what {@link SkinViewerProps.onChange} hands back.
|
package/dist/item.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"item.d.ts","sourceRoot":"","sources":["../src/item.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AAGH,OAAO,EAAkD,KAAK,aAAa,EAAE,MAAM,wBAAwB,CAAA;AAE3G,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"item.d.ts","sourceRoot":"","sources":["../src/item.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AAGH,OAAO,EAAkD,KAAK,aAAa,EAAE,MAAM,wBAAwB,CAAA;AAE3G,OAAO,KAAK,EACX,UAAU,EACV,gBAAgB,EAChB,SAAS,EACT,YAAY,EACZ,gBAAgB,EAChB,cAAc,EACd,MAAM,eAAe,CAAA;AACtB,OAAO,KAAK,EAAE,eAAe,EAAE,eAAe,EAAE,cAAc,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,YAAY,CAAA;AAgBpH;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,OAAO,GACnB,UAAU,SAAS,CAAC,iBAAiB,GAAG,IAAI,CAAC,EAAE,GAAG,SAAS,EAC3D,OAAO,eAAe,GAAG,IAAI,GAAG,SAAS,KACvC,cAAc,GAAG,SAkCnB,CAAA;AAED,2FAA2F;AAC3F,eAAO,MAAM,SAAS,GACrB,OAAO,cAAc,GAAG,SAAS,KAC/B;IAAE,QAAQ,EAAE,iBAAiB,EAAE,CAAC;IAAC,KAAK,EAAE,eAAe,GAAG,IAAI,CAAA;CAyBhE,CAAA;AAMD,MAAM,MAAM,eAAe,GACxB;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,KAAK,EAAE,IAAI,CAAA;CAAE;AACjE;;;;;GAKG;GACD;IAAE,IAAI,EAAE,IAAI,CAAC;IAAC,cAAc,EAAE,IAAI,CAAC;IAAC,KAAK,EAAE,eAAe,CAAA;CAAE,CAAA;AA+B/D;;;;;;;GAOG;AACH;;;;;;;;;;;;GAYG;AACH,MAAM,MAAM,kBAAkB,GAAG;IAChC,OAAO,EAAE,OAAO,CAAC,gBAAgB,EAAE,QAAQ,CAAC,CAAA;IAC5C,OAAO,CAAC,EAAE,YAAY,CAAA;IACtB,KAAK,CAAC,EAAE,UAAU,CAAA;IAClB,WAAW,CAAC,EAAE,gBAAgB,CAAA;IAC9B,KAAK,CAAC,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,CAAA;IAC5C,KAAK,EAAE,eAAe,GAAG,IAAI,CAAA;CAC7B,CAAA;AAED,eAAO,MAAM,iBAAiB,GAAI,OAAO,OAAO,CAAC,aAAa,CAAC,KAAG,kBAAkB,GAAG,IAiCtF,CAAA;AASD,eAAO,MAAM,cAAc,GAAI,SAAS,OAAO,CAAC,aAAa,CAAC,KAAG,eAwFhE,CAAA;AAED;;;;;;;GAOG;AACH,eAAO,MAAM,YAAY,GAAI,MAAM,SAAS,KAAG,cAa9C,CAAA;AAqBD;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,WAAW,GAAI,MAAM,cAAc,KAAG,aAqBlD,CAAA;AAED;;;;;;;GAOG;AACH,eAAO,MAAM,aAAa,GAAI,MAAM,cAAc,KAAG,MAA4C,CAAA;AAEjG;;;;;;;GAOG;AACH,eAAO,MAAM,eAAe,GAAI,MAAM,MAAM,KAAG,cAAc,GAAG,IAG/D,CAAA"}
|
package/dist/item.js
CHANGED
|
@@ -149,14 +149,43 @@ const fromPlacement = (placement, weaponType) => {
|
|
|
149
149
|
stickers: slots,
|
|
150
150
|
};
|
|
151
151
|
};
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
152
|
+
export const resolveStandalone = (props) => {
|
|
153
|
+
const bad = (subject, prop, id) => ({
|
|
154
|
+
subject,
|
|
155
|
+
error: {
|
|
156
|
+
code: 'no-item',
|
|
157
|
+
message: `\`${prop}.id\` must be a positive integer, got ${JSON.stringify(id)}. In TypeScript that is a compile error, so this is JavaScript, an \`any\`, or data that had not arrived yet.`,
|
|
158
|
+
},
|
|
159
|
+
});
|
|
160
|
+
const ok = (id) => typeof id === 'number' && Number.isSafeInteger(id) && id > 0;
|
|
161
|
+
if (props.sticker)
|
|
162
|
+
return ok(props.sticker.id)
|
|
163
|
+
? { subject: 'sticker', sticker: dropUndefined({ id: props.sticker.id, wear: props.sticker.wear }), error: null }
|
|
164
|
+
: bad('sticker', 'sticker', props.sticker.id);
|
|
165
|
+
if (props.charm)
|
|
166
|
+
return ok(props.charm.id)
|
|
167
|
+
? { subject: 'charm', charm: dropUndefined({ id: props.charm.id, pattern: props.charm.pattern }), error: null }
|
|
168
|
+
: bad('charm', 'charm', props.charm.id);
|
|
169
|
+
if (props.collectible)
|
|
170
|
+
return ok(props.collectible.id)
|
|
171
|
+
? { subject: 'collectible', collectible: { id: props.collectible.id }, error: null }
|
|
172
|
+
: bad('collectible', 'collectible', props.collectible.id);
|
|
173
|
+
/* `operator` BECOMES `agent` ON THE WIRE - see `FrameSubjectKind`. The pose rides in the same group
|
|
174
|
+
the weapon views use, because it is the same question (which performance) asked of the same row. */
|
|
175
|
+
if (props.operator)
|
|
176
|
+
return ok(props.operator.id)
|
|
177
|
+
? { subject: 'agent', agent: dropUndefined({ id: props.operator.id, pose: props.operator.pose }), error: null }
|
|
178
|
+
: bad('agent', 'operator', props.operator.id);
|
|
179
|
+
return null;
|
|
180
|
+
};
|
|
181
|
+
/** Drops keys the caller did not set, so "say nothing" survives into the URL and into the diff. */
|
|
182
|
+
const dropUndefined = (source) => {
|
|
183
|
+
const out = {};
|
|
184
|
+
for (const key of Object.keys(source))
|
|
185
|
+
if (source[key] !== undefined)
|
|
186
|
+
out[key] = source[key];
|
|
187
|
+
return out;
|
|
188
|
+
};
|
|
160
189
|
export const resolveSubject = (subject) => {
|
|
161
190
|
const fail = (code, message) => ({
|
|
162
191
|
item: null,
|
package/dist/item.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"item.js","sourceRoot":"","sources":["../src/item.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AAEH,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AACtE,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,iBAAiB,EAAsB,MAAM,wBAAwB,CAAA;
|
|
1
|
+
{"version":3,"file":"item.js","sourceRoot":"","sources":["../src/item.ts"],"names":[],"mappings":"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"}
|
package/dist/protocol.d.ts
CHANGED
|
@@ -126,9 +126,41 @@ export type FrameInteractions = {
|
|
|
126
126
|
dragStickers?: boolean;
|
|
127
127
|
dragCharm?: boolean;
|
|
128
128
|
};
|
|
129
|
-
/**
|
|
129
|
+
/**
|
|
130
|
+
* *** THE FRAME'S FIVE SUBJECT KINDS. *** `weapon` covers gloves too - a glove is a `weaponType`.
|
|
131
|
+
*
|
|
132
|
+
* NOTE THE WORD: the wire says `agent` where `types.ts` says `operator`. That is the translation this
|
|
133
|
+
* package exists to do (see `item.ts`'s header): the frame's own subject vocabulary has always called
|
|
134
|
+
* the person an agent, and an integrator holding a weapon-modifier prop already named `agent` needs a
|
|
135
|
+
* different word for the standalone picture. One rename, in one file.
|
|
136
|
+
*/
|
|
137
|
+
export type FrameSubjectKind = 'weapon' | 'sticker' | 'charm' | 'collectible' | 'agent';
|
|
138
|
+
/** The three standalone item groups, in the frame's words. An id, and at most one number. */
|
|
139
|
+
export type FrameSticker = {
|
|
140
|
+
id: number;
|
|
141
|
+
wear?: number;
|
|
142
|
+
};
|
|
143
|
+
export type FrameCharm = {
|
|
144
|
+
id: number;
|
|
145
|
+
pattern?: number;
|
|
146
|
+
};
|
|
147
|
+
export type FrameCollectible = {
|
|
148
|
+
id: number;
|
|
149
|
+
};
|
|
150
|
+
/**
|
|
151
|
+
* Everything `/frame` holds. One field per prop of the renderer that a host can set.
|
|
152
|
+
*
|
|
153
|
+
* *** THE FIVE SUBJECTS ARE HELD AT ONCE AND `subject` PICKS ONE. *** A patch naming `sticker` does
|
|
154
|
+
* NOT make the sticker the subject - only `subject` does. That matters here in particular because this
|
|
155
|
+
* package restates its whole prop set on every render: if a group write switched the picture, a host
|
|
156
|
+
* holding both a weapon and a pin would flip between them on any render mentioning both.
|
|
157
|
+
*/
|
|
130
158
|
export type FrameState = {
|
|
159
|
+
subject: FrameSubjectKind;
|
|
131
160
|
item: FrameItem;
|
|
161
|
+
sticker: FrameSticker;
|
|
162
|
+
charm: FrameCharm;
|
|
163
|
+
collectible: FrameCollectible;
|
|
132
164
|
view: 'gun' | 'hands' | 'agent';
|
|
133
165
|
agent: {
|
|
134
166
|
id: number;
|
|
@@ -153,7 +185,12 @@ export type FrameState = {
|
|
|
153
185
|
* rather than merged would blank the weapon on every float tick.
|
|
154
186
|
*/
|
|
155
187
|
export type FramePatch = {
|
|
188
|
+
/** The subject switch, and the only one - see {@link FrameState}. An IDENTITY change in every direction. */
|
|
189
|
+
subject?: FrameSubjectKind;
|
|
156
190
|
item?: Partial<FrameItem>;
|
|
191
|
+
sticker?: Partial<FrameSticker>;
|
|
192
|
+
charm?: Partial<FrameCharm>;
|
|
193
|
+
collectible?: Partial<FrameCollectible>;
|
|
157
194
|
view?: FrameState['view'];
|
|
158
195
|
agent?: Partial<FrameState['agent']>;
|
|
159
196
|
gloves?: FrameState['gloves'];
|
package/dist/protocol.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"protocol.d.ts","sourceRoot":"","sources":["../src/protocol.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoDG;AAEH,OAAO,KAAK,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAA;AAEjF;;;;;;GAMG;AACH,eAAO,MAAM,aAAa,mBAAmB,CAAA;AAE7C;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,sBAAsB,IAAI,CAAA;AAMvC,sGAAsG;AACtG,MAAM,MAAM,cAAc,GAAG;IAC5B,gBAAgB;IAChB,gBAAgB;IAChB,gBAAgB;IAChB,gBAAgB;IAChB,gBAAgB;IAChB,iBAAiB;CACjB,CAAA;AAED,MAAM,MAAM,SAAS,GAAG;IACvB,iFAAiF;IACjF,UAAU,EAAE,MAAM,CAAA;IAClB,UAAU,EAAE,MAAM,CAAA;IAClB,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,QAAQ,CAAC,EAAE,MAAM,GAAG,KAAK,CAAA;IACzB,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACvB,QAAQ,CAAC,EAAE,cAAc,CAAA;CACzB,CAAA;AAED,MAAM,MAAM,aAAa,GAAG;IAC3B,MAAM,CAAC,EAAE;QAAE,GAAG,CAAC,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAA;KAAE,CAAA;IAC/C,OAAO,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,OAAO,CAAC;QAAC,OAAO,CAAC,EAAE,OAAO,CAAA;KAAE,CAAA;IAC/G,WAAW,CAAC,EAAE;QAAE,GAAG,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,OAAO,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAA;KAAE,CAAA;IAC9F,QAAQ,CAAC,EAAE;QACV,YAAY,CAAC,EAAE,OAAO,CAAA;QACtB,UAAU,CAAC,EAAE,OAAO,CAAA;QACpB,UAAU,CAAC,EAAE;YAAE,KAAK,CAAC,EAAE,MAAM,CAAC;YAAC,WAAW,CAAC,EAAE,MAAM,CAAA;SAAE,CAAA;KACrD,CAAA;CACD,CAAA;AAED,MAAM,MAAM,iBAAiB,GAAG;IAC/B,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,IAAI,CAAC,EAAE,OAAO,CAAA;IACd,YAAY,CAAC,EAAE,OAAO,CAAA;IACtB,SAAS,CAAC,EAAE,OAAO,CAAA;CACnB,CAAA;AAED,
|
|
1
|
+
{"version":3,"file":"protocol.d.ts","sourceRoot":"","sources":["../src/protocol.ts"],"names":[],"mappings":"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"}
|
package/dist/protocol.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"protocol.js","sourceRoot":"","sources":["../src/protocol.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoDG;AAIH;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,gBAAgB,CAAA;AAE7C;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,CAAA;
|
|
1
|
+
{"version":3,"file":"protocol.js","sourceRoot":"","sources":["../src/protocol.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoDG;AAIH;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,gBAAgB,CAAA;AAE7C;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,CAAA;AA6HvC,iGAAiG;AACjG,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,KAAkB,EAAe,EAAE,CAC9D,KAAK;IACJ,CAAC,CAAC,EAAE,OAAO,EAAE,aAAa,EAAE,CAAC,EAAE,sBAAsB,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE;IACzF,CAAC,CAAC,EAAE,OAAO,EAAE,aAAa,EAAE,CAAC,EAAE,sBAAsB,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,CAAA;AAatF,MAAM,QAAQ,GAAG,CAAC,KAAc,EAAoC,EAAE,CACrE,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;AAErE;;;;;;;;;;;;GAYG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,IAAa,EAAqB,EAAE;IAClE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,OAAO,KAAK,aAAa,IAAI,IAAI,CAAC,IAAI,KAAK,QAAQ;QAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAA;IAE1G,IAAI,IAAI,CAAC,CAAC,KAAK,sBAAsB;QACpC,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,mBAAmB,EAAE,OAAO,EAAE,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAA;IAEnG,IAAI,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ;QAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAA;IAC5D;;;;;OAKG;IACH,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC;QAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAA;IAE3D,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,IAA6B,EAAE,CAAA;AAC/D,CAAC,CAAA;AAED,MAAM,YAAY,GAAwB,IAAI,GAAG,CAAC,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,cAAc,EAAE,QAAQ,CAAC,CAAC,CAAA;AAElH;;;;;;;;;;GAUG;AACH,MAAM,cAAc,GAAG,CAAC,QAAiB,EAAU,EAAE;IACpD,MAAM,IAAI,GAAG,OAAO,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAA;IAC/E,IAAI,OAAO,QAAQ,KAAK,QAAQ,IAAI,QAAQ,GAAG,sBAAsB;QACpE,OAAO,mCAAmC,sBAAsB,gCAAgC,IAAI,qNAAqN,CAAA;IAC1T,OAAO,mCAAmC,sBAAsB,gCAAgC,IAAI,kKAAkK,CAAA;AACvQ,CAAC,CAAA"}
|
package/dist/state.d.ts
CHANGED
|
@@ -30,7 +30,7 @@
|
|
|
30
30
|
*
|
|
31
31
|
* So the diff is structural: a field is in the patch only if its VALUE moved.
|
|
32
32
|
*/
|
|
33
|
-
import type { FrameInteractions, FrameItem, FramePatch, FrameSettings } from './protocol.js';
|
|
33
|
+
import type { FrameCharm, FrameCollectible, FrameInteractions, FrameItem, FramePatch, FrameSettings, FrameSticker, FrameSubjectKind } from './protocol.js';
|
|
34
34
|
import type { SkinViewerError, SkinViewerProps, ViewerGloves, ViewerView } from './types.js';
|
|
35
35
|
/**
|
|
36
36
|
* Why the frame is showing its instruction card instead of an item. See `SkinViewer.tsx` and the
|
|
@@ -47,8 +47,23 @@ export type HelpReason = 'no-item' | 'bad-link' | 'unknown-weapon';
|
|
|
47
47
|
* caller did not mention.
|
|
48
48
|
*/
|
|
49
49
|
export type DesiredState = {
|
|
50
|
-
/**
|
|
50
|
+
/**
|
|
51
|
+
* WHICH OF THE FIVE IS ON SCREEN.
|
|
52
|
+
*
|
|
53
|
+
* *** THE ONE FIELD HERE THAT IS ALWAYS SET, AND THE EXCEPTION IS EARNED. *** Everything else in
|
|
54
|
+
* this type obeys "absent means say nothing", because our defaults must not be frozen into somebody
|
|
55
|
+
* else's URL. The subject cannot: going BACK to a weapon from a sticker has to be expressible, and a
|
|
56
|
+
* diff can only express it if there is a value to compare against. So it is always resolved - and
|
|
57
|
+
* {@link frameUrl} then declines to write `?subject=weapon`, which keeps the same promise in the one
|
|
58
|
+
* place it can be kept.
|
|
59
|
+
*/
|
|
60
|
+
subject: FrameSubjectKind;
|
|
61
|
+
/** `null` when the props named no renderable item, or named a subject that is not a weapon. */
|
|
51
62
|
item: FrameItem | null;
|
|
63
|
+
/** Set only when {@link subject} names it. Same rule as `item`, one per standalone subject. */
|
|
64
|
+
sticker?: FrameSticker;
|
|
65
|
+
charm?: FrameCharm;
|
|
66
|
+
collectible?: FrameCollectible;
|
|
52
67
|
/** The integrator's own inspect link, forwarded verbatim as `?i=`. See `item.ts`. */
|
|
53
68
|
inspectPayload: string | null;
|
|
54
69
|
help: HelpReason | null;
|
|
@@ -102,6 +117,12 @@ export declare const frameUrl: (origin: string, desired: DesiredState) => {
|
|
|
102
117
|
export declare const IDENTITY_FIELDS: readonly ["weaponType", "paintIndex", "legacyModel"];
|
|
103
118
|
/** `undefined` when nothing moved, which is what lets the component skip the `postMessage` entirely. */
|
|
104
119
|
export declare const diffState: (previous: DesiredState, next: DesiredState) => FramePatch | undefined;
|
|
105
|
-
/**
|
|
106
|
-
|
|
120
|
+
/**
|
|
121
|
+
* True when a patch would cover the canvas - see {@link IDENTITY_FIELDS} and `CHEAP_FIELDS`.
|
|
122
|
+
*
|
|
123
|
+
* IT TAKES THE WHOLE NEXT STATE rather than just the view, because one of the answers depends on which
|
|
124
|
+
* SUBJECT the patch lands on: an operator's id covers under `subject: 'agent'` for the same reason it
|
|
125
|
+
* covers under `view: 'agent'`, and does not under `hands`.
|
|
126
|
+
*/
|
|
127
|
+
export declare const coversCanvas: (patch: FramePatch, next: Pick<DesiredState, "subject" | "view">) => boolean;
|
|
107
128
|
//# sourceMappingURL=state.d.ts.map
|
package/dist/state.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"state.d.ts","sourceRoot":"","sources":["../src/state.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AAEH,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"state.d.ts","sourceRoot":"","sources":["../src/state.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AAEH,OAAO,KAAK,EACX,UAAU,EACV,gBAAgB,EAChB,iBAAiB,EACjB,SAAS,EACT,UAAU,EACV,aAAa,EACb,YAAY,EACZ,gBAAgB,EAEhB,MAAM,eAAe,CAAA;AAEtB,OAAO,KAAK,EAAE,eAAe,EAAE,eAAe,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,YAAY,CAAA;AAE5F;;;GAGG;AACH,MAAM,MAAM,UAAU,GAAG,SAAS,GAAG,UAAU,GAAG,gBAAgB,CAAA;AAElE;;;;;;;;GAQG;AACH,MAAM,MAAM,YAAY,GAAG;IAC1B;;;;;;;;;OASG;IACH,OAAO,EAAE,gBAAgB,CAAA;IACzB,+FAA+F;IAC/F,IAAI,EAAE,SAAS,GAAG,IAAI,CAAA;IACtB,+FAA+F;IAC/F,OAAO,CAAC,EAAE,YAAY,CAAA;IACtB,KAAK,CAAC,EAAE,UAAU,CAAA;IAClB,WAAW,CAAC,EAAE,gBAAgB,CAAA;IAC9B,qFAAqF;IACrF,cAAc,EAAE,MAAM,GAAG,IAAI,CAAA;IAC7B,IAAI,EAAE,UAAU,GAAG,IAAI,CAAA;IACvB,YAAY,EAAE,eAAe,GAAG,IAAI,CAAA;IACpC,IAAI,CAAC,EAAE,UAAU,CAAA;IACjB,KAAK,CAAC,EAAE;QAAE,EAAE,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,CAAA;IAC7C,gGAAgG;IAChG,MAAM,CAAC,EAAE,YAAY,GAAG,IAAI,CAAA;IAC5B,QAAQ,CAAC,EAAE,aAAa,CAAA;IACxB,YAAY,CAAC,EAAE,iBAAiB,CAAA;IAChC,WAAW,CAAC,EAAE,MAAM,CAAA;CACpB,CAAA;AAcD;;;;;;;;GAQG;AACH,eAAO,MAAM,YAAY,GAAI,OAAO,OAAO,CAAC,eAAe,CAAC,KAAG,YA6C9D,CAAA;AAqCD;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,QAAQ,GAAI,QAAQ,MAAM,EAAE,SAAS,YAAY,KAAG;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,YAAY,CAAA;CAsFtG,CAAA;AAUD;;;;;;GAMG;AACH,eAAO,MAAM,eAAe,sDAIqB,CAAA;AAoBjD,wGAAwG;AACxG,eAAO,MAAM,SAAS,GAAI,UAAU,YAAY,EAAE,MAAM,YAAY,KAAG,UAAU,GAAG,SA+GnF,CAAA;AAsED;;;;;;GAMG;AACH,eAAO,MAAM,YAAY,GAAI,OAAO,UAAU,EAAE,MAAM,IAAI,CAAC,YAAY,EAAE,SAAS,GAAG,MAAM,CAAC,KAAG,OAa9F,CAAA"}
|