@empty-sekai/allium-deck-wasm 0.0.5 → 0.0.10

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/allium_deck.d.ts CHANGED
@@ -1,25 +1,104 @@
1
1
  /* tslint:disable */
2
2
  /* eslint-disable */
3
3
 
4
+ /**
5
+ * 解析一次用户数据、多次复用的句柄。
6
+ *
7
+ * `region` 词表:jp/tw/en/kr/cn。句柄与 masterdata 生命周期解耦:
8
+ * masterdata 重载后旧句柄仍可用,但数据视图可能过期,由调用方自行重载。
9
+ */
10
+ export class UserDataHandle {
11
+ private constructor();
12
+ free(): void;
13
+ [Symbol.dispose](): void;
14
+ readonly region: string;
15
+ }
16
+
17
+ /**
18
+ * 精确打歌分:给定战力/技能/谱面逐 note 计算。
19
+ *
20
+ * options:`{ live_type, power, skills: [..], music_score, fever_music_score?,
21
+ * multi_sum_power? }`;`music_score`/`fever_music_score` 接受 JSON 字符串或对象。
22
+ */
23
+ export function calculate_exact_live(options_json: string): string;
24
+
25
+ /**
26
+ * 创建用户数据句柄:解析成本只付一次,后续 `recommend_with_user_data`
27
+ * 直接复用(解析成本只付一次)。
28
+ */
29
+ export function create_user_data(user_json: string, region: string): UserDataHandle;
30
+
31
+ /**
32
+ * World Bloom 支援卡逐卡加成。
33
+ *
34
+ * options:`{ user_data / user_data_str, event_id | world_bloom_event_turn |
35
+ * world_bloom_finale_turn, world_bloom_character_id?, event_unit?,
36
+ * forced_leader_character_id?, support_master_max?, support_skill_max?,
37
+ * filter_other_unit? }`;返回按 (bonus 降序, card_id 升序) 排序的数组。
38
+ */
39
+ export function get_world_bloom_support_cards(options_json: string): string;
40
+
4
41
  export function init(): void;
5
42
 
6
43
  /**
7
- * 浏览器组卡入口。`user_json`/`params_json` 为上传链路 camelCase 格式。
8
- * 返回 top-5 卡组 JSON(真实游戏卡 ID + 展示指标)。
44
+ * 载入 masterdata:`masterdata_json` 形如
45
+ * `{"cards": "<cards.json 原文>", "events": "...", ...}`(各表 JSON 原文,
46
+ * 键名裸表名或带 `.json` 后缀均可),`music_metas_json` 为音乐元数据表
47
+ * 原文(可为空字符串)。
48
+ *
49
+ * 数据在引擎内做一次「raw JSON → 扁平结构」转换并缓存,之后每次
50
+ * recommend 零重复成本。辅助表(areas/areaItems/shopItems/ingameNotes/
51
+ * ingameCombos)缺省时对应辅助接口报「未载入」错误,不影响组卡。
52
+ */
53
+ export function load_masterdata(masterdata_json: string, music_metas_json: string): void;
54
+
55
+ /**
56
+ * 组卡入口。需先 `load_masterdata`。`user_json`/`params_json` 为上传链路
57
+ * camelCase 格式;返回卡组 JSON(真实游戏卡 ID + 展示指标),条数由
58
+ * params 的 `limit` 决定(缺省 10,上限 30)。
59
+ */
60
+ export function recommend(user_json: string, params_json: string): string;
61
+
62
+ /**
63
+ * 曲目推荐:对一张已定卡组给全部曲目/难度打分排序。
64
+ *
65
+ * options:`{ deck, live_type, event_type?/event_id?, skill_order_choose_strategy?,
66
+ * specific_skill_order?, multi_live_teammate_score_up?, multi_live_teammate_power? }`。
67
+ */
68
+ export function recommendMusic(options_json: string): string;
69
+
70
+ /**
71
+ * 组卡入口(句柄式):options 即 `recommend` 的 `params_json`。
72
+ */
73
+ export function recommendWithUserData(options_json: string, handle: UserDataHandle): string;
74
+
75
+ /**
76
+ * 区域道具推荐。
77
+ *
78
+ * options:`{ user_data / user_data_str, card_ids: [..] }`;
79
+ * 返回按 `power_per_coin` 降序的升级建议数组。
9
80
  */
10
- export function recommend_embedded(user_json: string, params_json: string): string;
81
+ export function recommend_area_items(options_json: string): string;
11
82
 
12
83
  export type InitInput = RequestInfo | URL | Response | BufferSource | WebAssembly.Module;
13
84
 
14
85
  export interface InitOutput {
15
86
  readonly memory: WebAssembly.Memory;
87
+ readonly __wbg_userdatahandle_free: (a: number, b: number) => void;
88
+ readonly calculate_exact_live: (a: number, b: number, c: number) => void;
89
+ readonly create_user_data: (a: number, b: number, c: number, d: number, e: number) => void;
90
+ readonly get_world_bloom_support_cards: (a: number, b: number, c: number) => void;
16
91
  readonly init: () => void;
17
- readonly recommend_embedded: (a: number, b: number, c: number, d: number) => [number, number, number, number];
18
- readonly __wbindgen_free: (a: number, b: number, c: number) => void;
19
- readonly __wbindgen_malloc: (a: number, b: number) => number;
20
- readonly __wbindgen_realloc: (a: number, b: number, c: number, d: number) => number;
21
- readonly __wbindgen_externrefs: WebAssembly.Table;
22
- readonly __externref_table_dealloc: (a: number) => void;
92
+ readonly load_masterdata: (a: number, b: number, c: number, d: number, e: number) => void;
93
+ readonly recommend: (a: number, b: number, c: number, d: number, e: number) => void;
94
+ readonly recommendMusic: (a: number, b: number, c: number) => void;
95
+ readonly recommendWithUserData: (a: number, b: number, c: number, d: number) => void;
96
+ readonly recommend_area_items: (a: number, b: number, c: number) => void;
97
+ readonly userdatahandle_region: (a: number, b: number) => void;
98
+ readonly __wbindgen_export: (a: number, b: number, c: number) => void;
99
+ readonly __wbindgen_export2: (a: number, b: number) => number;
100
+ readonly __wbindgen_export3: (a: number, b: number, c: number, d: number) => number;
101
+ readonly __wbindgen_add_to_stack_pointer: (a: number) => number;
23
102
  readonly __wbindgen_start: () => void;
24
103
  }
25
104
 
package/allium_deck.js CHANGED
@@ -1,41 +1,333 @@
1
1
  /* @ts-self-types="./allium_deck.d.ts" */
2
2
 
3
+ /**
4
+ * 解析一次用户数据、多次复用的句柄。
5
+ *
6
+ * `region` 词表:jp/tw/en/kr/cn。句柄与 masterdata 生命周期解耦:
7
+ * masterdata 重载后旧句柄仍可用,但数据视图可能过期,由调用方自行重载。
8
+ */
9
+ export class UserDataHandle {
10
+ static __wrap(ptr) {
11
+ const obj = Object.create(UserDataHandle.prototype);
12
+ obj.__wbg_ptr = ptr;
13
+ UserDataHandleFinalization.register(obj, obj.__wbg_ptr, obj);
14
+ return obj;
15
+ }
16
+ __destroy_into_raw() {
17
+ const ptr = this.__wbg_ptr;
18
+ this.__wbg_ptr = 0;
19
+ UserDataHandleFinalization.unregister(this);
20
+ return ptr;
21
+ }
22
+ free() {
23
+ const ptr = this.__destroy_into_raw();
24
+ wasm.__wbg_userdatahandle_free(ptr, 0);
25
+ }
26
+ /**
27
+ * @returns {string}
28
+ */
29
+ get region() {
30
+ let deferred1_0;
31
+ let deferred1_1;
32
+ try {
33
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
34
+ wasm.userdatahandle_region(retptr, this.__wbg_ptr);
35
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
36
+ var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
37
+ deferred1_0 = r0;
38
+ deferred1_1 = r1;
39
+ return getStringFromWasm0(r0, r1);
40
+ } finally {
41
+ wasm.__wbindgen_add_to_stack_pointer(16);
42
+ wasm.__wbindgen_export(deferred1_0, deferred1_1, 1);
43
+ }
44
+ }
45
+ }
46
+ if (Symbol.dispose) UserDataHandle.prototype[Symbol.dispose] = UserDataHandle.prototype.free;
47
+
48
+ /**
49
+ * 精确打歌分:给定战力/技能/谱面逐 note 计算。
50
+ *
51
+ * options:`{ live_type, power, skills: [..], music_score, fever_music_score?,
52
+ * multi_sum_power? }`;`music_score`/`fever_music_score` 接受 JSON 字符串或对象。
53
+ * @param {string} options_json
54
+ * @returns {string}
55
+ */
56
+ export function calculate_exact_live(options_json) {
57
+ let deferred3_0;
58
+ let deferred3_1;
59
+ try {
60
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
61
+ const ptr0 = passStringToWasm0(options_json, wasm.__wbindgen_export2, wasm.__wbindgen_export3);
62
+ const len0 = WASM_VECTOR_LEN;
63
+ wasm.calculate_exact_live(retptr, ptr0, len0);
64
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
65
+ var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
66
+ var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);
67
+ var r3 = getDataViewMemory0().getInt32(retptr + 4 * 3, true);
68
+ var ptr2 = r0;
69
+ var len2 = r1;
70
+ if (r3) {
71
+ ptr2 = 0; len2 = 0;
72
+ throw takeObject(r2);
73
+ }
74
+ deferred3_0 = ptr2;
75
+ deferred3_1 = len2;
76
+ return getStringFromWasm0(ptr2, len2);
77
+ } finally {
78
+ wasm.__wbindgen_add_to_stack_pointer(16);
79
+ wasm.__wbindgen_export(deferred3_0, deferred3_1, 1);
80
+ }
81
+ }
82
+
83
+ /**
84
+ * 创建用户数据句柄:解析成本只付一次,后续 `recommend_with_user_data`
85
+ * 直接复用(解析成本只付一次)。
86
+ * @param {string} user_json
87
+ * @param {string} region
88
+ * @returns {UserDataHandle}
89
+ */
90
+ export function create_user_data(user_json, region) {
91
+ try {
92
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
93
+ const ptr0 = passStringToWasm0(user_json, wasm.__wbindgen_export2, wasm.__wbindgen_export3);
94
+ const len0 = WASM_VECTOR_LEN;
95
+ const ptr1 = passStringToWasm0(region, wasm.__wbindgen_export2, wasm.__wbindgen_export3);
96
+ const len1 = WASM_VECTOR_LEN;
97
+ wasm.create_user_data(retptr, ptr0, len0, ptr1, len1);
98
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
99
+ var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
100
+ var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);
101
+ if (r2) {
102
+ throw takeObject(r1);
103
+ }
104
+ return UserDataHandle.__wrap(r0);
105
+ } finally {
106
+ wasm.__wbindgen_add_to_stack_pointer(16);
107
+ }
108
+ }
109
+
110
+ /**
111
+ * World Bloom 支援卡逐卡加成。
112
+ *
113
+ * options:`{ user_data / user_data_str, event_id | world_bloom_event_turn |
114
+ * world_bloom_finale_turn, world_bloom_character_id?, event_unit?,
115
+ * forced_leader_character_id?, support_master_max?, support_skill_max?,
116
+ * filter_other_unit? }`;返回按 (bonus 降序, card_id 升序) 排序的数组。
117
+ * @param {string} options_json
118
+ * @returns {string}
119
+ */
120
+ export function get_world_bloom_support_cards(options_json) {
121
+ let deferred3_0;
122
+ let deferred3_1;
123
+ try {
124
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
125
+ const ptr0 = passStringToWasm0(options_json, wasm.__wbindgen_export2, wasm.__wbindgen_export3);
126
+ const len0 = WASM_VECTOR_LEN;
127
+ wasm.get_world_bloom_support_cards(retptr, ptr0, len0);
128
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
129
+ var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
130
+ var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);
131
+ var r3 = getDataViewMemory0().getInt32(retptr + 4 * 3, true);
132
+ var ptr2 = r0;
133
+ var len2 = r1;
134
+ if (r3) {
135
+ ptr2 = 0; len2 = 0;
136
+ throw takeObject(r2);
137
+ }
138
+ deferred3_0 = ptr2;
139
+ deferred3_1 = len2;
140
+ return getStringFromWasm0(ptr2, len2);
141
+ } finally {
142
+ wasm.__wbindgen_add_to_stack_pointer(16);
143
+ wasm.__wbindgen_export(deferred3_0, deferred3_1, 1);
144
+ }
145
+ }
146
+
3
147
  export function init() {
4
148
  wasm.init();
5
149
  }
6
150
 
7
151
  /**
8
- * 浏览器组卡入口。`user_json`/`params_json` 为上传链路 camelCase 格式。
9
- * 返回 top-5 卡组 JSON(真实游戏卡 ID + 展示指标)。
152
+ * 载入 masterdata:`masterdata_json` 形如
153
+ * `{"cards": "<cards.json 原文>", "events": "...", ...}`(各表 JSON 原文,
154
+ * 键名裸表名或带 `.json` 后缀均可),`music_metas_json` 为音乐元数据表
155
+ * 原文(可为空字符串)。
156
+ *
157
+ * 数据在引擎内做一次「raw JSON → 扁平结构」转换并缓存,之后每次
158
+ * recommend 零重复成本。辅助表(areas/areaItems/shopItems/ingameNotes/
159
+ * ingameCombos)缺省时对应辅助接口报「未载入」错误,不影响组卡。
160
+ * @param {string} masterdata_json
161
+ * @param {string} music_metas_json
162
+ */
163
+ export function load_masterdata(masterdata_json, music_metas_json) {
164
+ try {
165
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
166
+ const ptr0 = passStringToWasm0(masterdata_json, wasm.__wbindgen_export2, wasm.__wbindgen_export3);
167
+ const len0 = WASM_VECTOR_LEN;
168
+ const ptr1 = passStringToWasm0(music_metas_json, wasm.__wbindgen_export2, wasm.__wbindgen_export3);
169
+ const len1 = WASM_VECTOR_LEN;
170
+ wasm.load_masterdata(retptr, ptr0, len0, ptr1, len1);
171
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
172
+ var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
173
+ if (r1) {
174
+ throw takeObject(r0);
175
+ }
176
+ } finally {
177
+ wasm.__wbindgen_add_to_stack_pointer(16);
178
+ }
179
+ }
180
+
181
+ /**
182
+ * 组卡入口。需先 `load_masterdata`。`user_json`/`params_json` 为上传链路
183
+ * camelCase 格式;返回卡组 JSON(真实游戏卡 ID + 展示指标),条数由
184
+ * params 的 `limit` 决定(缺省 10,上限 30)。
10
185
  * @param {string} user_json
11
186
  * @param {string} params_json
12
187
  * @returns {string}
13
188
  */
14
- export function recommend_embedded(user_json, params_json) {
189
+ export function recommend(user_json, params_json) {
15
190
  let deferred4_0;
16
191
  let deferred4_1;
17
192
  try {
18
- const ptr0 = passStringToWasm0(user_json, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
193
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
194
+ const ptr0 = passStringToWasm0(user_json, wasm.__wbindgen_export2, wasm.__wbindgen_export3);
19
195
  const len0 = WASM_VECTOR_LEN;
20
- const ptr1 = passStringToWasm0(params_json, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
196
+ const ptr1 = passStringToWasm0(params_json, wasm.__wbindgen_export2, wasm.__wbindgen_export3);
21
197
  const len1 = WASM_VECTOR_LEN;
22
- const ret = wasm.recommend_embedded(ptr0, len0, ptr1, len1);
23
- var ptr3 = ret[0];
24
- var len3 = ret[1];
25
- if (ret[3]) {
198
+ wasm.recommend(retptr, ptr0, len0, ptr1, len1);
199
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
200
+ var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
201
+ var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);
202
+ var r3 = getDataViewMemory0().getInt32(retptr + 4 * 3, true);
203
+ var ptr3 = r0;
204
+ var len3 = r1;
205
+ if (r3) {
26
206
  ptr3 = 0; len3 = 0;
27
- throw takeFromExternrefTable0(ret[2]);
207
+ throw takeObject(r2);
28
208
  }
29
209
  deferred4_0 = ptr3;
30
210
  deferred4_1 = len3;
31
211
  return getStringFromWasm0(ptr3, len3);
32
212
  } finally {
33
- wasm.__wbindgen_free(deferred4_0, deferred4_1, 1);
213
+ wasm.__wbindgen_add_to_stack_pointer(16);
214
+ wasm.__wbindgen_export(deferred4_0, deferred4_1, 1);
215
+ }
216
+ }
217
+
218
+ /**
219
+ * 曲目推荐:对一张已定卡组给全部曲目/难度打分排序。
220
+ *
221
+ * options:`{ deck, live_type, event_type?/event_id?, skill_order_choose_strategy?,
222
+ * specific_skill_order?, multi_live_teammate_score_up?, multi_live_teammate_power? }`。
223
+ * @param {string} options_json
224
+ * @returns {string}
225
+ */
226
+ export function recommendMusic(options_json) {
227
+ let deferred3_0;
228
+ let deferred3_1;
229
+ try {
230
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
231
+ const ptr0 = passStringToWasm0(options_json, wasm.__wbindgen_export2, wasm.__wbindgen_export3);
232
+ const len0 = WASM_VECTOR_LEN;
233
+ wasm.recommendMusic(retptr, ptr0, len0);
234
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
235
+ var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
236
+ var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);
237
+ var r3 = getDataViewMemory0().getInt32(retptr + 4 * 3, true);
238
+ var ptr2 = r0;
239
+ var len2 = r1;
240
+ if (r3) {
241
+ ptr2 = 0; len2 = 0;
242
+ throw takeObject(r2);
243
+ }
244
+ deferred3_0 = ptr2;
245
+ deferred3_1 = len2;
246
+ return getStringFromWasm0(ptr2, len2);
247
+ } finally {
248
+ wasm.__wbindgen_add_to_stack_pointer(16);
249
+ wasm.__wbindgen_export(deferred3_0, deferred3_1, 1);
250
+ }
251
+ }
252
+
253
+ /**
254
+ * 组卡入口(句柄式):options 即 `recommend` 的 `params_json`。
255
+ * @param {string} options_json
256
+ * @param {UserDataHandle} handle
257
+ * @returns {string}
258
+ */
259
+ export function recommendWithUserData(options_json, handle) {
260
+ let deferred3_0;
261
+ let deferred3_1;
262
+ try {
263
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
264
+ const ptr0 = passStringToWasm0(options_json, wasm.__wbindgen_export2, wasm.__wbindgen_export3);
265
+ const len0 = WASM_VECTOR_LEN;
266
+ _assertClass(handle, UserDataHandle);
267
+ wasm.recommendWithUserData(retptr, ptr0, len0, handle.__wbg_ptr);
268
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
269
+ var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
270
+ var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);
271
+ var r3 = getDataViewMemory0().getInt32(retptr + 4 * 3, true);
272
+ var ptr2 = r0;
273
+ var len2 = r1;
274
+ if (r3) {
275
+ ptr2 = 0; len2 = 0;
276
+ throw takeObject(r2);
277
+ }
278
+ deferred3_0 = ptr2;
279
+ deferred3_1 = len2;
280
+ return getStringFromWasm0(ptr2, len2);
281
+ } finally {
282
+ wasm.__wbindgen_add_to_stack_pointer(16);
283
+ wasm.__wbindgen_export(deferred3_0, deferred3_1, 1);
284
+ }
285
+ }
286
+
287
+ /**
288
+ * 区域道具推荐。
289
+ *
290
+ * options:`{ user_data / user_data_str, card_ids: [..] }`;
291
+ * 返回按 `power_per_coin` 降序的升级建议数组。
292
+ * @param {string} options_json
293
+ * @returns {string}
294
+ */
295
+ export function recommend_area_items(options_json) {
296
+ let deferred3_0;
297
+ let deferred3_1;
298
+ try {
299
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
300
+ const ptr0 = passStringToWasm0(options_json, wasm.__wbindgen_export2, wasm.__wbindgen_export3);
301
+ const len0 = WASM_VECTOR_LEN;
302
+ wasm.recommend_area_items(retptr, ptr0, len0);
303
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
304
+ var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
305
+ var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);
306
+ var r3 = getDataViewMemory0().getInt32(retptr + 4 * 3, true);
307
+ var ptr2 = r0;
308
+ var len2 = r1;
309
+ if (r3) {
310
+ ptr2 = 0; len2 = 0;
311
+ throw takeObject(r2);
312
+ }
313
+ deferred3_0 = ptr2;
314
+ deferred3_1 = len2;
315
+ return getStringFromWasm0(ptr2, len2);
316
+ } finally {
317
+ wasm.__wbindgen_add_to_stack_pointer(16);
318
+ wasm.__wbindgen_export(deferred3_0, deferred3_1, 1);
34
319
  }
35
320
  }
36
321
  function __wbg_get_imports() {
37
322
  const import0 = {
38
323
  __proto__: null,
324
+ __wbg___wbindgen_is_undefined_c05833b95a3cf397: function(arg0) {
325
+ const ret = getObject(arg0) === undefined;
326
+ return ret;
327
+ },
328
+ __wbg___wbindgen_throw_344f42d3211c4765: function(arg0, arg1) {
329
+ throw new Error(getStringFromWasm0(arg0, arg1));
330
+ },
39
331
  __wbg_error_a6fa202b58aa1cd3: function(arg0, arg1) {
40
332
  let deferred0_0;
41
333
  let deferred0_1;
@@ -44,37 +336,59 @@ function __wbg_get_imports() {
44
336
  deferred0_1 = arg1;
45
337
  console.error(getStringFromWasm0(arg0, arg1));
46
338
  } finally {
47
- wasm.__wbindgen_free(deferred0_0, deferred0_1, 1);
339
+ wasm.__wbindgen_export(deferred0_0, deferred0_1, 1);
48
340
  }
49
341
  },
50
342
  __wbg_new_227d7c05414eb861: function() {
51
343
  const ret = new Error();
52
- return ret;
344
+ return addHeapObject(ret);
53
345
  },
54
- __wbg_now_49bed5c0454e2687: function() {
346
+ __wbg_now_21283541518247e0: function() {
55
347
  const ret = performance.now();
56
348
  return ret;
57
349
  },
350
+ __wbg_now_e7c6795a7f81e10f: function(arg0) {
351
+ const ret = getObject(arg0).now();
352
+ return ret;
353
+ },
354
+ __wbg_performance_3fcf6e32a7e1ed0a: function(arg0) {
355
+ const ret = getObject(arg0).performance;
356
+ return addHeapObject(ret);
357
+ },
58
358
  __wbg_stack_3b0d974bbf31e44f: function(arg0, arg1) {
59
- const ret = arg1.stack;
60
- const ptr1 = passStringToWasm0(ret, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
359
+ const ret = getObject(arg1).stack;
360
+ const ptr1 = passStringToWasm0(ret, wasm.__wbindgen_export2, wasm.__wbindgen_export3);
61
361
  const len1 = WASM_VECTOR_LEN;
62
362
  getDataViewMemory0().setInt32(arg0 + 4 * 1, len1, true);
63
363
  getDataViewMemory0().setInt32(arg0 + 4 * 0, ptr1, true);
64
364
  },
365
+ __wbg_static_accessor_GLOBAL_4ef717fb391d88b7: function() {
366
+ const ret = typeof global === 'undefined' ? null : global;
367
+ return isLikeNone(ret) ? 0 : addHeapObject(ret);
368
+ },
369
+ __wbg_static_accessor_GLOBAL_THIS_8d1badc68b5a74f4: function() {
370
+ const ret = typeof globalThis === 'undefined' ? null : globalThis;
371
+ return isLikeNone(ret) ? 0 : addHeapObject(ret);
372
+ },
373
+ __wbg_static_accessor_SELF_146583524fe1469b: function() {
374
+ const ret = typeof self === 'undefined' ? null : self;
375
+ return isLikeNone(ret) ? 0 : addHeapObject(ret);
376
+ },
377
+ __wbg_static_accessor_WINDOW_f2829a2234d7819e: function() {
378
+ const ret = typeof window === 'undefined' ? null : window;
379
+ return isLikeNone(ret) ? 0 : addHeapObject(ret);
380
+ },
65
381
  __wbindgen_cast_0000000000000001: function(arg0, arg1) {
66
382
  // Cast intrinsic for `Ref(String) -> Externref`.
67
383
  const ret = getStringFromWasm0(arg0, arg1);
68
- return ret;
384
+ return addHeapObject(ret);
385
+ },
386
+ __wbindgen_object_clone_ref: function(arg0) {
387
+ const ret = getObject(arg0);
388
+ return addHeapObject(ret);
69
389
  },
70
- __wbindgen_init_externref_table: function() {
71
- const table = wasm.__wbindgen_externrefs;
72
- const offset = table.grow(4);
73
- table.set(0, undefined);
74
- table.set(offset + 0, undefined);
75
- table.set(offset + 1, null);
76
- table.set(offset + 2, true);
77
- table.set(offset + 3, false);
390
+ __wbindgen_object_drop_ref: function(arg0) {
391
+ takeObject(arg0);
78
392
  },
79
393
  };
80
394
  return {
@@ -83,6 +397,31 @@ function __wbg_get_imports() {
83
397
  };
84
398
  }
85
399
 
400
+ const UserDataHandleFinalization = (typeof FinalizationRegistry === 'undefined')
401
+ ? { register: () => {}, unregister: () => {} }
402
+ : new FinalizationRegistry(ptr => wasm.__wbg_userdatahandle_free(ptr, 1));
403
+
404
+ function addHeapObject(obj) {
405
+ if (heap_next === heap.length) heap.push(heap.length + 1);
406
+ const idx = heap_next;
407
+ heap_next = heap[idx];
408
+
409
+ heap[idx] = obj;
410
+ return idx;
411
+ }
412
+
413
+ function _assertClass(instance, klass) {
414
+ if (!(instance instanceof klass)) {
415
+ throw new Error(`expected instance of ${klass.name}`);
416
+ }
417
+ }
418
+
419
+ function dropObject(idx) {
420
+ if (idx < 1028) return;
421
+ heap[idx] = heap_next;
422
+ heap_next = idx;
423
+ }
424
+
86
425
  let cachedDataViewMemory0 = null;
87
426
  function getDataViewMemory0() {
88
427
  if (cachedDataViewMemory0 === null || cachedDataViewMemory0.buffer.detached === true || (cachedDataViewMemory0.buffer.detached === undefined && cachedDataViewMemory0.buffer !== wasm.memory.buffer)) {
@@ -103,6 +442,17 @@ function getUint8ArrayMemory0() {
103
442
  return cachedUint8ArrayMemory0;
104
443
  }
105
444
 
445
+ function getObject(idx) { return heap[idx]; }
446
+
447
+ let heap = new Array(1024).fill(undefined);
448
+ heap.push(undefined, null, true, false);
449
+
450
+ let heap_next = heap.length;
451
+
452
+ function isLikeNone(x) {
453
+ return x === undefined || x === null;
454
+ }
455
+
106
456
  function passStringToWasm0(arg, malloc, realloc) {
107
457
  if (realloc === undefined) {
108
458
  const buf = cachedTextEncoder.encode(arg);
@@ -140,10 +490,10 @@ function passStringToWasm0(arg, malloc, realloc) {
140
490
  return ptr;
141
491
  }
142
492
 
143
- function takeFromExternrefTable0(idx) {
144
- const value = wasm.__wbindgen_externrefs.get(idx);
145
- wasm.__externref_table_dealloc(idx);
146
- return value;
493
+ function takeObject(idx) {
494
+ const ret = getObject(idx);
495
+ dropObject(idx);
496
+ return ret;
147
497
  }
148
498
 
149
499
  let cachedTextDecoder = new TextDecoder('utf-8', { ignoreBOM: true, fatal: true });
Binary file
package/package.json CHANGED
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "@empty-sekai/allium-deck-wasm",
3
3
  "type": "module",
4
- "description": "Browser WASM bindings and embedded Project Sekai data for allium-deck",
5
- "version": "0.0.5",
4
+ "description": "Browser WASM bindings for allium-deck",
5
+ "version": "0.0.10",
6
6
  "license": "MIT OR Apache-2.0",
7
7
  "repository": {
8
8
  "type": "git",
9
- "url": "https://github.com/empty-sekai/allium-deck"
9
+ "url": "git+https://github.com/empty-sekai/allium-deck.git"
10
10
  },
11
11
  "files": [
12
12
  "allium_deck_bg.wasm",
@@ -17,5 +17,8 @@
17
17
  "types": "allium_deck.d.ts",
18
18
  "sideEffects": [
19
19
  "./snippets/*"
20
- ]
20
+ ],
21
+ "publishConfig": {
22
+ "access": "public"
23
+ }
21
24
  }