@drincs/pixi-vn 1.8.24 → 1.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (53) hide show
  1. package/README.md +23 -1
  2. package/dist/{ContainerMemory-D2HtgX7w.d.cts → ContainerMemory-BpDgacyr.d.cts} +2 -15
  3. package/dist/{ContainerMemory-D2HtgX7w.d.ts → ContainerMemory-BpDgacyr.d.ts} +2 -15
  4. package/dist/{HistoryChoiceMenuOption-BMsYentw.d.cts → HistoryChoiceMenuOption-BxMSXnyI.d.cts} +10 -1
  5. package/dist/{HistoryChoiceMenuOption-DQ-pnuPU.d.ts → HistoryChoiceMenuOption-hSI4SHV-.d.ts} +10 -1
  6. package/dist/{HistoryGameState-CmjUtlkV.d.ts → HistoryGameState-C8ATx9K6.d.ts} +1 -1
  7. package/dist/{HistoryGameState-C28NcKKl.d.cts → HistoryGameState-CGfvq5iL.d.cts} +1 -1
  8. package/dist/{HistoryStep-G9dUn0Lf.d.cts → HistoryStep-WGB6nA4N.d.cts} +5 -0
  9. package/dist/{HistoryStep-G9dUn0Lf.d.ts → HistoryStep-WGB6nA4N.d.ts} +5 -0
  10. package/dist/{OpenedLabel-DLfFuZgk.d.ts → OpenedLabel-CmRdzTXP.d.ts} +1 -1
  11. package/dist/{OpenedLabel-BxfL31aQ.d.cts → OpenedLabel-Cmd675NI.d.cts} +1 -1
  12. package/dist/SoundGameState-C_6ZsQX6.d.cts +186 -0
  13. package/dist/SoundGameState-C_6ZsQX6.d.ts +186 -0
  14. package/dist/{StorageGameState-CtjNJpvE.d.cts → StorageGameState-C3PGrFPr.d.cts} +2 -2
  15. package/dist/{StorageGameState-BJy57o6K.d.ts → StorageGameState-jAexrJLj.d.ts} +2 -2
  16. package/dist/canvas.cjs +2 -2
  17. package/dist/canvas.d.cts +265 -24
  18. package/dist/canvas.d.ts +265 -24
  19. package/dist/canvas.mjs +2 -2
  20. package/dist/characters.cjs +1 -1
  21. package/dist/characters.mjs +1 -1
  22. package/dist/chunk-HD353M4B.mjs +1 -0
  23. package/dist/chunk-I7DOUH5V.mjs +1 -0
  24. package/dist/history.cjs +1 -1
  25. package/dist/history.d.cts +51 -15
  26. package/dist/history.d.ts +51 -15
  27. package/dist/history.mjs +1 -1
  28. package/dist/index.cjs +2 -2
  29. package/dist/index.d.cts +53 -34
  30. package/dist/index.d.ts +53 -34
  31. package/dist/index.mjs +2 -2
  32. package/dist/motion.cjs +1 -1
  33. package/dist/motion.mjs +1 -1
  34. package/dist/narration.cjs +2 -2
  35. package/dist/narration.d.cts +211 -52
  36. package/dist/narration.d.ts +211 -52
  37. package/dist/narration.mjs +2 -2
  38. package/dist/pixi/browser.js +115 -115
  39. package/dist/sound.cjs +1 -1
  40. package/dist/sound.d.cts +313 -6
  41. package/dist/sound.d.ts +313 -6
  42. package/dist/sound.mjs +1 -1
  43. package/dist/storage.cjs +1 -1
  44. package/dist/storage.d.cts +50 -3
  45. package/dist/storage.d.ts +50 -3
  46. package/dist/storage.mjs +1 -1
  47. package/dist/vite.cjs +2 -2
  48. package/dist/vite.mjs +2 -2
  49. package/package.json +2 -1
  50. package/dist/SoundManagerInterface-Dd0b88_N.d.cts +0 -436
  51. package/dist/SoundManagerInterface-Dd0b88_N.d.ts +0 -436
  52. package/dist/chunk-GIYMPXBT.mjs +0 -1
  53. package/dist/chunk-IWAXXFXE.mjs +0 -1
package/dist/index.d.cts CHANGED
@@ -1,4 +1,3 @@
1
- import { S as SoundGameState, a as SoundManagerInterface } from './SoundManagerInterface-Dd0b88_N.cjs';
2
1
  import * as canvasUtils from '@drincs/pixi-vn/canvas';
3
2
  export * from '@drincs/pixi-vn/canvas';
4
3
  import * as characterUtils from '@drincs/pixi-vn/characters';
@@ -17,31 +16,21 @@ export * from '@drincs/pixi-vn/sound';
17
16
  import * as storageUtils from '@drincs/pixi-vn/storage';
18
17
  export * from '@drincs/pixi-vn/storage';
19
18
  export { C as CachedMap } from './CachedMap-DZLvJAnA.cjs';
20
- import { P as PauseType, R as RepeatType, e as CanvasGameState } from './ContainerMemory-D2HtgX7w.cjs';
21
- import { H as HistoryGameState } from './HistoryGameState-C28NcKKl.cjs';
22
- import { S as StorageGameState } from './StorageGameState-CtjNJpvE.cjs';
23
- import { O as OpenedLabel } from './OpenedLabel-BxfL31aQ.cjs';
19
+ import { e as CanvasGameState } from './ContainerMemory-BpDgacyr.cjs';
20
+ import { H as HistoryGameState } from './HistoryGameState-CGfvq5iL.cjs';
21
+ import { S as SoundGameState } from './SoundGameState-C_6ZsQX6.cjs';
22
+ import { S as StorageGameState } from './StorageGameState-C3PGrFPr.cjs';
23
+ import { O as OpenedLabel } from './OpenedLabel-Cmd675NI.cjs';
24
24
  import { Devtools } from '@pixi/devtools';
25
- import 'tone';
26
25
  import 'lru-cache';
27
26
  import '@drincs/pixi-vn';
28
- import './HistoryStep-G9dUn0Lf.cjs';
27
+ import './HistoryStep-WGB6nA4N.cjs';
29
28
  import 'microdiff';
29
+ import 'tone';
30
30
  import './StorageElementType-C7ETezlL.cjs';
31
31
 
32
- var version = "1.8.24";
32
+ var version = "1.9.0";
33
33
 
34
- /**
35
- * @deprecated
36
- */
37
- declare const Repeat: RepeatType;
38
- /**
39
- * Pause the tickers for a duration.
40
- * @param duration Duration in seconds
41
- * @returns The pause object
42
- * @deprecated
43
- */
44
- declare function Pause(duration: number): PauseType;
45
34
  /**
46
35
  * Is a special alias to indicate the game layer.
47
36
  */
@@ -218,15 +207,9 @@ declare namespace Game {
218
207
  function exportGameState(): GameState;
219
208
  /**
220
209
  * Load the save data
221
- * @param data The save data
210
+ * @param data The save data object to restore the game state from.
222
211
  */
223
212
  function restoreGameState(data: GameState): Promise<void>;
224
- /**
225
- * @deprecated Use `restoreGameState(data)` (without the `navigate` argument) and configure navigation via `Game.init({ navigate })` or `Game.onNavigate(...)`.
226
- * @param data The save data
227
- * @param navigate Navigation function to use for this restore call.
228
- */
229
- function restoreGameState(data: GameState, navigate: (path: string) => void | Promise<void>): Promise<void>;
230
213
  /**
231
214
  * Start the game with a label. This function will clear all the game data and start the narration from the specified label.
232
215
  * @param label The label to start the game with. It can be a string or a LabelAbstract instance. If it is a string, it will be used as the id of the label to start. If it is a LabelAbstract instance, it will be used directly. If the label is not found, an error will be thrown.
@@ -250,10 +233,6 @@ declare namespace Game {
250
233
  * ```
251
234
  */
252
235
  function onEnd(value: narrationUtils.StepLabelType): void;
253
- /**
254
- * @deprecated Game.onError is deprecated. Use Game.addOnError / Game.removeOnError to register multiple handlers.
255
- */
256
- function onError(handler: (type: "step", error: any, props: narrationUtils.StepLabelPropsType) => void | Promise<void>): () => void;
257
236
  /**
258
237
  * Register an error handler. Multiple handlers can be registered; they
259
238
  * will be executed in registration order.
@@ -325,6 +304,48 @@ declare namespace Game {
325
304
  * @returns
326
305
  */
327
306
  function onStepEnd(value: (stepId: number, label: narrationUtils.LabelAbstract<any>) => void | Promise<void>): void;
307
+ /**
308
+ * Is a function that will be executed every time a label is about to be started, either via
309
+ * `narration.call`, `narration.jump`, or a choice of type `"call"` / `"jump"`.
310
+ *
311
+ * By default (when this is not set), the label starts immediately, exactly like before this hook
312
+ * existed. If you set it, you take control: call `defaultStart()` yourself whenever you actually
313
+ * want the label to run — right away, or later (e.g. on a subsequent player action in your
314
+ * template). Until `defaultStart()` is called, nothing about the label happens: it is not added to
315
+ * the history and no step of it runs.
316
+ * @example
317
+ * ```ts
318
+ * Game.onLabelStarting((labelId, props, options, defaultStart) => {
319
+ * pendingLabelStart = defaultStart; // keep it for later, don't run it now
320
+ * })
321
+ * ```
322
+ */
323
+ function onLabelStarting(value: (labelId: narrationUtils.LabelIdType, props: narrationUtils.StepLabelPropsType, options: {
324
+ choiceMade?: number;
325
+ closeCurrentLabel?: boolean;
326
+ type: string;
327
+ }, defaultStart: () => Promise<narrationUtils.StepLabelResultType>) => narrationUtils.StepLabelResultType | Promise<narrationUtils.StepLabelResultType>): void;
328
+ /**
329
+ * Is a function that will be executed every time the current label is about to close because it
330
+ * naturally ran out of steps and control is returning to the label that called it.
331
+ *
332
+ * By default (when this is not set), the label closes immediately, exactly like before this hook
333
+ * existed. If you set it, you take control: call `defaultClose()` yourself whenever you actually
334
+ * want the label to close — right away, or later (e.g. on a subsequent player action in your
335
+ * template). Until `defaultClose()` is called, the label stays open and narration does not
336
+ * continue into the parent label.
337
+ *
338
+ * This does not fire for a `jump` or a choice's `closeCurrentLabel` option - those close the
339
+ * current label as part of starting a new one, so {@link onLabelStarting} already covers
340
+ * deferring them.
341
+ * @example
342
+ * ```ts
343
+ * Game.onLabelClosing((labelId, props, defaultClose) => {
344
+ * pendingLabelClose = defaultClose; // keep it for later, don't run it now
345
+ * })
346
+ * ```
347
+ */
348
+ function onLabelClosing(value: (labelId: narrationUtils.LabelIdType, props: narrationUtils.StepLabelPropsType, defaultClose: () => Promise<narrationUtils.StepLabelResultType>) => narrationUtils.StepLabelResultType | Promise<narrationUtils.StepLabelResultType>): void;
328
349
  /**
329
350
  * Function to be executed when navigation is requested.
330
351
  * @example
@@ -347,7 +368,7 @@ declare namespace Game {
347
368
  declare const _default: {
348
369
  canvas: canvasUtils.CanvasManagerInterface;
349
370
  narration: narrationUtils.NarrationManagerInterface;
350
- sound: SoundManagerInterface;
371
+ sound: soundUtils.SoundManagerInterface;
351
372
  storage: storageUtils.StorageManagerInterface;
352
373
  history: historyUtils.HistoryManagerInterface;
353
374
  Game: typeof Game;
@@ -358,9 +379,7 @@ declare const _default: {
358
379
  narrationUtils: typeof narrationUtils;
359
380
  soundUtils: typeof soundUtils;
360
381
  CANVAS_APP_GAME_LAYER_ALIAS: string;
361
- Pause: typeof Pause;
362
- Repeat: "repeat";
363
382
  PIXIVN_VERSION: string;
364
383
  };
365
384
 
366
- export { CANVAS_APP_GAME_LAYER_ALIAS, Game, type GameState, type GameStepStateData, version as PIXIVN_VERSION, Pause, Repeat, SYSTEM_RESERVED_STORAGE_KEYS, createExportableElement, _default as default };
385
+ export { CANVAS_APP_GAME_LAYER_ALIAS, Game, type GameState, type GameStepStateData, version as PIXIVN_VERSION, SYSTEM_RESERVED_STORAGE_KEYS, createExportableElement, _default as default };
package/dist/index.d.ts CHANGED
@@ -1,4 +1,3 @@
1
- import { S as SoundGameState, a as SoundManagerInterface } from './SoundManagerInterface-Dd0b88_N.js';
2
1
  import * as canvasUtils from '@drincs/pixi-vn/canvas';
3
2
  export * from '@drincs/pixi-vn/canvas';
4
3
  import * as characterUtils from '@drincs/pixi-vn/characters';
@@ -17,31 +16,21 @@ export * from '@drincs/pixi-vn/sound';
17
16
  import * as storageUtils from '@drincs/pixi-vn/storage';
18
17
  export * from '@drincs/pixi-vn/storage';
19
18
  export { C as CachedMap } from './CachedMap-DZLvJAnA.js';
20
- import { P as PauseType, R as RepeatType, e as CanvasGameState } from './ContainerMemory-D2HtgX7w.js';
21
- import { H as HistoryGameState } from './HistoryGameState-CmjUtlkV.js';
22
- import { S as StorageGameState } from './StorageGameState-BJy57o6K.js';
23
- import { O as OpenedLabel } from './OpenedLabel-DLfFuZgk.js';
19
+ import { e as CanvasGameState } from './ContainerMemory-BpDgacyr.js';
20
+ import { H as HistoryGameState } from './HistoryGameState-C8ATx9K6.js';
21
+ import { S as SoundGameState } from './SoundGameState-C_6ZsQX6.js';
22
+ import { S as StorageGameState } from './StorageGameState-jAexrJLj.js';
23
+ import { O as OpenedLabel } from './OpenedLabel-CmRdzTXP.js';
24
24
  import { Devtools } from '@pixi/devtools';
25
- import 'tone';
26
25
  import 'lru-cache';
27
26
  import '@drincs/pixi-vn';
28
- import './HistoryStep-G9dUn0Lf.js';
27
+ import './HistoryStep-WGB6nA4N.js';
29
28
  import 'microdiff';
29
+ import 'tone';
30
30
  import './StorageElementType-C7ETezlL.js';
31
31
 
32
- var version = "1.8.24";
32
+ var version = "1.9.0";
33
33
 
34
- /**
35
- * @deprecated
36
- */
37
- declare const Repeat: RepeatType;
38
- /**
39
- * Pause the tickers for a duration.
40
- * @param duration Duration in seconds
41
- * @returns The pause object
42
- * @deprecated
43
- */
44
- declare function Pause(duration: number): PauseType;
45
34
  /**
46
35
  * Is a special alias to indicate the game layer.
47
36
  */
@@ -218,15 +207,9 @@ declare namespace Game {
218
207
  function exportGameState(): GameState;
219
208
  /**
220
209
  * Load the save data
221
- * @param data The save data
210
+ * @param data The save data object to restore the game state from.
222
211
  */
223
212
  function restoreGameState(data: GameState): Promise<void>;
224
- /**
225
- * @deprecated Use `restoreGameState(data)` (without the `navigate` argument) and configure navigation via `Game.init({ navigate })` or `Game.onNavigate(...)`.
226
- * @param data The save data
227
- * @param navigate Navigation function to use for this restore call.
228
- */
229
- function restoreGameState(data: GameState, navigate: (path: string) => void | Promise<void>): Promise<void>;
230
213
  /**
231
214
  * Start the game with a label. This function will clear all the game data and start the narration from the specified label.
232
215
  * @param label The label to start the game with. It can be a string or a LabelAbstract instance. If it is a string, it will be used as the id of the label to start. If it is a LabelAbstract instance, it will be used directly. If the label is not found, an error will be thrown.
@@ -250,10 +233,6 @@ declare namespace Game {
250
233
  * ```
251
234
  */
252
235
  function onEnd(value: narrationUtils.StepLabelType): void;
253
- /**
254
- * @deprecated Game.onError is deprecated. Use Game.addOnError / Game.removeOnError to register multiple handlers.
255
- */
256
- function onError(handler: (type: "step", error: any, props: narrationUtils.StepLabelPropsType) => void | Promise<void>): () => void;
257
236
  /**
258
237
  * Register an error handler. Multiple handlers can be registered; they
259
238
  * will be executed in registration order.
@@ -325,6 +304,48 @@ declare namespace Game {
325
304
  * @returns
326
305
  */
327
306
  function onStepEnd(value: (stepId: number, label: narrationUtils.LabelAbstract<any>) => void | Promise<void>): void;
307
+ /**
308
+ * Is a function that will be executed every time a label is about to be started, either via
309
+ * `narration.call`, `narration.jump`, or a choice of type `"call"` / `"jump"`.
310
+ *
311
+ * By default (when this is not set), the label starts immediately, exactly like before this hook
312
+ * existed. If you set it, you take control: call `defaultStart()` yourself whenever you actually
313
+ * want the label to run — right away, or later (e.g. on a subsequent player action in your
314
+ * template). Until `defaultStart()` is called, nothing about the label happens: it is not added to
315
+ * the history and no step of it runs.
316
+ * @example
317
+ * ```ts
318
+ * Game.onLabelStarting((labelId, props, options, defaultStart) => {
319
+ * pendingLabelStart = defaultStart; // keep it for later, don't run it now
320
+ * })
321
+ * ```
322
+ */
323
+ function onLabelStarting(value: (labelId: narrationUtils.LabelIdType, props: narrationUtils.StepLabelPropsType, options: {
324
+ choiceMade?: number;
325
+ closeCurrentLabel?: boolean;
326
+ type: string;
327
+ }, defaultStart: () => Promise<narrationUtils.StepLabelResultType>) => narrationUtils.StepLabelResultType | Promise<narrationUtils.StepLabelResultType>): void;
328
+ /**
329
+ * Is a function that will be executed every time the current label is about to close because it
330
+ * naturally ran out of steps and control is returning to the label that called it.
331
+ *
332
+ * By default (when this is not set), the label closes immediately, exactly like before this hook
333
+ * existed. If you set it, you take control: call `defaultClose()` yourself whenever you actually
334
+ * want the label to close — right away, or later (e.g. on a subsequent player action in your
335
+ * template). Until `defaultClose()` is called, the label stays open and narration does not
336
+ * continue into the parent label.
337
+ *
338
+ * This does not fire for a `jump` or a choice's `closeCurrentLabel` option - those close the
339
+ * current label as part of starting a new one, so {@link onLabelStarting} already covers
340
+ * deferring them.
341
+ * @example
342
+ * ```ts
343
+ * Game.onLabelClosing((labelId, props, defaultClose) => {
344
+ * pendingLabelClose = defaultClose; // keep it for later, don't run it now
345
+ * })
346
+ * ```
347
+ */
348
+ function onLabelClosing(value: (labelId: narrationUtils.LabelIdType, props: narrationUtils.StepLabelPropsType, defaultClose: () => Promise<narrationUtils.StepLabelResultType>) => narrationUtils.StepLabelResultType | Promise<narrationUtils.StepLabelResultType>): void;
328
349
  /**
329
350
  * Function to be executed when navigation is requested.
330
351
  * @example
@@ -347,7 +368,7 @@ declare namespace Game {
347
368
  declare const _default: {
348
369
  canvas: canvasUtils.CanvasManagerInterface;
349
370
  narration: narrationUtils.NarrationManagerInterface;
350
- sound: SoundManagerInterface;
371
+ sound: soundUtils.SoundManagerInterface;
351
372
  storage: storageUtils.StorageManagerInterface;
352
373
  history: historyUtils.HistoryManagerInterface;
353
374
  Game: typeof Game;
@@ -358,9 +379,7 @@ declare const _default: {
358
379
  narrationUtils: typeof narrationUtils;
359
380
  soundUtils: typeof soundUtils;
360
381
  CANVAS_APP_GAME_LAYER_ALIAS: string;
361
- Pause: typeof Pause;
362
- Repeat: "repeat";
363
382
  PIXIVN_VERSION: string;
364
383
  };
365
384
 
366
- export { CANVAS_APP_GAME_LAYER_ALIAS, Game, type GameState, type GameStepStateData, version as PIXIVN_VERSION, Pause, Repeat, SYSTEM_RESERVED_STORAGE_KEYS, createExportableElement, _default as default };
385
+ export { CANVAS_APP_GAME_LAYER_ALIAS, Game, type GameState, type GameStepStateData, version as PIXIVN_VERSION, SYSTEM_RESERVED_STORAGE_KEYS, createExportableElement, _default as default };
package/dist/index.mjs CHANGED
@@ -1,2 +1,2 @@
1
- import {f as f$1,b as b$1,g,e,d,h,i}from'./chunk-K7JIC2F2.mjs';import*as nt from'@drincs/pixi-vn/canvas';export*from'@drincs/pixi-vn/canvas';import*as $t from'@drincs/pixi-vn/characters';export*from'@drincs/pixi-vn/characters';import {PixiError,GameUnifier}from'@drincs/pixi-vn/core';export*from'@drincs/pixi-vn/core';import*as et from'@drincs/pixi-vn/history';export*from'@drincs/pixi-vn/history';import*as L from'@drincs/pixi-vn/narration';export*from'@drincs/pixi-vn/narration';import*as pt from'@drincs/pixi-vn/sound';export*from'@drincs/pixi-vn/sound';import*as G from'@drincs/pixi-vn/storage';export*from'@drincs/pixi-vn/storage';import {motion}from'@drincs/pixi-vn/motion';var de=typeof performance=="object"&&performance&&typeof performance.now=="function"?performance:Date,Qt=new Set,jt=typeof process=="object"&&process?process:{},Zt=(m,e,i,s)=>{typeof jt.emitWarning=="function"?jt.emitWarning(m,e,i,s):console.error(`[${i}] ${e}: ${m}`);},Nt=globalThis.AbortController,Bt=globalThis.AbortSignal;if(typeof Nt>"u"){Bt=class{onabort;_onabort=[];reason;aborted=false;addEventListener(i,s){this._onabort.push(s);}},Nt=class{constructor(){e();}signal=new Bt;abort(i){if(!this.signal.aborted){this.signal.reason=i,this.signal.aborted=true;for(let s of this.signal._onabort)s(i);this.signal.onabort?.(i);}}};let m=jt.env?.LRU_CACHE_IGNORE_AC_WARNING!=="1",e=()=>{m&&(m=false,Zt("AbortController is not defined. If using lru-cache in node 14, load an AbortController polyfill from the `node-abort-controller` package. A minimal polyfill is provided for use by LRUCache.fetch(), but it should not be relied upon in other contexts (eg, passing it to other APIs that use AbortController/AbortSignal might have undesirable effects). You may disable this with LRU_CACHE_IGNORE_AC_WARNING=1 in the env.","NO_ABORT_CONTROLLER","ENOTSUP",e));};}var pe=m=>!Qt.has(m);var at=m=>m&&m===Math.floor(m)&&m>0&&isFinite(m),te=m=>at(m)?m<=Math.pow(2,8)?Uint8Array:m<=Math.pow(2,16)?Uint16Array:m<=Math.pow(2,32)?Uint32Array:m<=Number.MAX_SAFE_INTEGER?Dt:null:null,Dt=class extends Array{constructor(m){super(m),this.fill(0);}},it,St,ue=(it=class{heap;length;static create(e){let i=te(e);if(!i)return [];g(it,St,true);let s=new it(e,i);return g(it,St,false),s}constructor(e$1,i){if(!e(it,St))throw new TypeError("instantiate Stack using Stack.create(n)");this.heap=new i(e$1),this.length=0;}push(e){this.heap[this.length++]=e;}pop(){return this.heap[--this.length]}},St=new WeakMap,f$1(it,St,false),it),Xt,Jt,K,M,q,ut,$,yt,xt,B,O,X,T,b,f,P,z,N,R,J,D,Q,Z,V,W,tt,dt,j,Et,l,Gt,ft,ot,Tt,Y,ie,mt,bt,Ot,lt,ht,It,Lt,Ct,E,Mt,At,ct,zt,wt,ee=(wt=class{constructor(e$1){f$1(this,l);f$1(this,K);f$1(this,M);f$1(this,q);f$1(this,ut);f$1(this,$);f$1(this,yt);f$1(this,xt);f$1(this,B);d(this,"ttl");d(this,"ttlResolution");d(this,"ttlAutopurge");d(this,"updateAgeOnGet");d(this,"updateAgeOnHas");d(this,"allowStale");d(this,"noDisposeOnSet");d(this,"noUpdateTTL");d(this,"maxEntrySize");d(this,"sizeCalculation");d(this,"noDeleteOnFetchRejection");d(this,"noDeleteOnStaleGet");d(this,"allowStaleOnFetchAbort");d(this,"allowStaleOnFetchRejection");d(this,"ignoreFetchAbort");f$1(this,O);f$1(this,X);f$1(this,T);f$1(this,b);f$1(this,f);f$1(this,P);f$1(this,z);f$1(this,N);f$1(this,R);f$1(this,J);f$1(this,D);f$1(this,Q);f$1(this,Z);f$1(this,V);f$1(this,W);f$1(this,tt);f$1(this,dt);f$1(this,j);f$1(this,Et);f$1(this,ft,()=>{});f$1(this,ot,()=>{});f$1(this,Tt,()=>{});f$1(this,Y,()=>false);f$1(this,mt,e=>{});f$1(this,bt,(e,i,s)=>{});f$1(this,Ot,(e,i,s,r)=>{if(s||r)throw new TypeError("cannot set size without setting maxSize or maxEntrySize on cache");return 0});d(this,Xt,"LRUCache");let{max:i=0,ttl:s,ttlResolution:r=1,ttlAutopurge:n,updateAgeOnGet:o,updateAgeOnHas:h$1,allowStale:d$1,dispose:v,onInsert:U,disposeAfter:S,noDisposeOnSet:rt,noUpdateTTL:I,maxSize:k=0,maxEntrySize:w=0,sizeCalculation:y,fetchMethod:a,memoMethod:x,noDeleteOnFetchRejection:A,noDeleteOnStaleGet:u,allowStaleOnFetchRejection:g$1,allowStaleOnFetchAbort:F,ignoreFetchAbort:H,perf:_t}=e$1;if(_t!==void 0&&typeof _t?.now!="function")throw new TypeError("perf option must have a now() method if specified");if(g(this,B,_t??de),i!==0&&!at(i))throw new TypeError("max option must be a nonnegative integer");let vt=i?te(i):Array;if(!vt)throw new Error("invalid max value: "+i);if(g(this,K,i),g(this,M,k),this.maxEntrySize=w||e(this,M),this.sizeCalculation=y,this.sizeCalculation){if(!e(this,M)&&!this.maxEntrySize)throw new TypeError("cannot set sizeCalculation without setting maxSize or maxEntrySize");if(typeof this.sizeCalculation!="function")throw new TypeError("sizeCalculation set to non-function")}if(x!==void 0&&typeof x!="function")throw new TypeError("memoMethod must be a function if defined");if(g(this,xt,x),a!==void 0&&typeof a!="function")throw new TypeError("fetchMethod must be a function if specified");if(g(this,yt,a),g(this,dt,!!a),g(this,T,new Map),g(this,b,new Array(i).fill(void 0)),g(this,f,new Array(i).fill(void 0)),g(this,P,new vt(i)),g(this,z,new vt(i)),g(this,N,0),g(this,R,0),g(this,J,ue.create(i)),g(this,O,0),g(this,X,0),typeof v=="function"&&g(this,q,v),typeof U=="function"&&g(this,ut,U),typeof S=="function"?(g(this,$,S),g(this,D,[])):(g(this,$,void 0),g(this,D,void 0)),g(this,tt,!!e(this,q)),g(this,Et,!!e(this,ut)),g(this,j,!!e(this,$)),this.noDisposeOnSet=!!rt,this.noUpdateTTL=!!I,this.noDeleteOnFetchRejection=!!A,this.allowStaleOnFetchRejection=!!g$1,this.allowStaleOnFetchAbort=!!F,this.ignoreFetchAbort=!!H,this.maxEntrySize!==0){if(e(this,M)!==0&&!at(e(this,M)))throw new TypeError("maxSize must be a positive integer if specified");if(!at(this.maxEntrySize))throw new TypeError("maxEntrySize must be a positive integer if specified");h(this,l,ie).call(this);}if(this.allowStale=!!d$1,this.noDeleteOnStaleGet=!!u,this.updateAgeOnGet=!!o,this.updateAgeOnHas=!!h$1,this.ttlResolution=at(r)||r===0?r:1,this.ttlAutopurge=!!n,this.ttl=s||0,this.ttl){if(!at(this.ttl))throw new TypeError("ttl must be a positive integer if specified");h(this,l,Gt).call(this);}if(e(this,K)===0&&this.ttl===0&&e(this,M)===0)throw new TypeError("At least one of max, maxSize, or ttl is required");if(!this.ttlAutopurge&&!e(this,K)&&!e(this,M)){let Pt="LRU_CACHE_UNBOUNDED";pe(Pt)&&(Qt.add(Pt),Zt("TTL caching without ttlAutopurge, max, or maxSize can result in unbounded memory consumption.","UnboundedCacheWarning",Pt,wt));}}get perf(){return e(this,B)}static unsafeExposeInternals(e$1){return {starts:e(e$1,Z),ttls:e(e$1,V),autopurgeTimers:e(e$1,W),sizes:e(e$1,Q),keyMap:e(e$1,T),keyList:e(e$1,b),valList:e(e$1,f),next:e(e$1,P),prev:e(e$1,z),get head(){return e(e$1,N)},get tail(){return e(e$1,R)},free:e(e$1,J),isBackgroundFetch:i=>{var s;return h(s=e$1,l,E).call(s,i)},backgroundFetch:(i,s,r,n)=>{var o;return h(o=e$1,l,Ct).call(o,i,s,r,n)},moveToTail:i=>{var s;return h(s=e$1,l,At).call(s,i)},indexes:i=>{var s;return h(s=e$1,l,lt).call(s,i)},rindexes:i=>{var s;return h(s=e$1,l,ht).call(s,i)},isStale:i=>{var s;return e(s=e$1,Y).call(s,i)}}}get max(){return e(this,K)}get maxSize(){return e(this,M)}get calculatedSize(){return e(this,X)}get size(){return e(this,O)}get fetchMethod(){return e(this,yt)}get memoMethod(){return e(this,xt)}get dispose(){return e(this,q)}get onInsert(){return e(this,ut)}get disposeAfter(){return e(this,$)}getRemainingTTL(e$1){return e(this,T).has(e$1)?1/0:0}*entries(){for(let e$1 of h(this,l,lt).call(this))e(this,f)[e$1]!==void 0&&e(this,b)[e$1]!==void 0&&!h(this,l,E).call(this,e(this,f)[e$1])&&(yield [e(this,b)[e$1],e(this,f)[e$1]]);}*rentries(){for(let e$1 of h(this,l,ht).call(this))e(this,f)[e$1]!==void 0&&e(this,b)[e$1]!==void 0&&!h(this,l,E).call(this,e(this,f)[e$1])&&(yield [e(this,b)[e$1],e(this,f)[e$1]]);}*keys(){for(let e$1 of h(this,l,lt).call(this)){let i=e(this,b)[e$1];i!==void 0&&!h(this,l,E).call(this,e(this,f)[e$1])&&(yield i);}}*rkeys(){for(let e$1 of h(this,l,ht).call(this)){let i=e(this,b)[e$1];i!==void 0&&!h(this,l,E).call(this,e(this,f)[e$1])&&(yield i);}}*values(){for(let e$1 of h(this,l,lt).call(this))e(this,f)[e$1]!==void 0&&!h(this,l,E).call(this,e(this,f)[e$1])&&(yield e(this,f)[e$1]);}*rvalues(){for(let e$1 of h(this,l,ht).call(this))e(this,f)[e$1]!==void 0&&!h(this,l,E).call(this,e(this,f)[e$1])&&(yield e(this,f)[e$1]);}[(Jt=Symbol.iterator,Xt=Symbol.toStringTag,Jt)](){return this.entries()}find(e$1,i={}){for(let s of h(this,l,lt).call(this)){let r=e(this,f)[s],n=h(this,l,E).call(this,r)?r.__staleWhileFetching:r;if(n!==void 0&&e$1(n,e(this,b)[s],this))return this.get(e(this,b)[s],i)}}forEach(e$1,i=this){for(let s of h(this,l,lt).call(this)){let r=e(this,f)[s],n=h(this,l,E).call(this,r)?r.__staleWhileFetching:r;n!==void 0&&e$1.call(i,n,e(this,b)[s],this);}}rforEach(e$1,i=this){for(let s of h(this,l,ht).call(this)){let r=e(this,f)[s],n=h(this,l,E).call(this,r)?r.__staleWhileFetching:r;n!==void 0&&e$1.call(i,n,e(this,b)[s],this);}}purgeStale(){let e$1=false;for(let i of h(this,l,ht).call(this,{allowStale:true}))e(this,Y).call(this,i)&&(h(this,l,ct).call(this,e(this,b)[i],"expire"),e$1=true);return e$1}info(e$1){let i=e(this,T).get(e$1);if(i===void 0)return;let s=e(this,f)[i],r=h(this,l,E).call(this,s)?s.__staleWhileFetching:s;if(r===void 0)return;let n={value:r};if(e(this,V)&&e(this,Z)){let o=e(this,V)[i],h=e(this,Z)[i];if(o&&h){let d=o-(e(this,B).now()-h);n.ttl=d,n.start=Date.now();}}return e(this,Q)&&(n.size=e(this,Q)[i]),n}dump(){let e$1=[];for(let i of h(this,l,lt).call(this,{allowStale:true})){let s=e(this,b)[i],r=e(this,f)[i],n=h(this,l,E).call(this,r)?r.__staleWhileFetching:r;if(n===void 0||s===void 0)continue;let o={value:n};if(e(this,V)&&e(this,Z)){o.ttl=e(this,V)[i];let h=e(this,B).now()-e(this,Z)[i];o.start=Math.floor(Date.now()-h);}e(this,Q)&&(o.size=e(this,Q)[i]),e$1.unshift([s,o]);}return e$1}load(e$1){this.clear();for(let[i,s]of e$1){if(s.start){let r=Date.now()-s.start;s.start=e(this,B).now()-r;}this.set(i,s.value,s);}}set(e$1,i$1,s={}){var rt,I,k,w;if(i$1===void 0)return this.delete(e$1),this;let{ttl:r=this.ttl,start:n,noDisposeOnSet:o=this.noDisposeOnSet,sizeCalculation:h$1=this.sizeCalculation,status:d}=s,{noUpdateTTL:v=this.noUpdateTTL}=s,U=e(this,Ot).call(this,e$1,i$1,s.size||0,h$1);if(this.maxEntrySize&&U>this.maxEntrySize)return d&&(d.set="miss",d.maxEntrySizeExceeded=true),h(this,l,ct).call(this,e$1,"set"),this;let S=e(this,O)===0?void 0:e(this,T).get(e$1);if(S===void 0)S=e(this,O)===0?e(this,R):e(this,J).length!==0?e(this,J).pop():e(this,O)===e(this,K)?h(this,l,Lt).call(this,false):e(this,O),e(this,b)[S]=e$1,e(this,f)[S]=i$1,e(this,T).set(e$1,S),e(this,P)[e(this,R)]=S,e(this,z)[S]=e(this,R),g(this,R,S),i(this,O)._++,e(this,bt).call(this,S,U,d),d&&(d.set="add"),v=false,e(this,Et)&&((rt=e(this,ut))==null||rt.call(this,i$1,e$1,"add"));else {h(this,l,At).call(this,S);let y=e(this,f)[S];if(i$1!==y){if(e(this,dt)&&h(this,l,E).call(this,y)){y.__abortController.abort(new Error("replaced"));let{__staleWhileFetching:a}=y;a!==void 0&&!o&&(e(this,tt)&&((I=e(this,q))==null||I.call(this,a,e$1,"set")),e(this,j)&&e(this,D)?.push([a,e$1,"set"]));}else o||(e(this,tt)&&((k=e(this,q))==null||k.call(this,y,e$1,"set")),e(this,j)&&e(this,D)?.push([y,e$1,"set"]));if(e(this,mt).call(this,S),e(this,bt).call(this,S,U,d),e(this,f)[S]=i$1,d){d.set="replace";let a=y&&h(this,l,E).call(this,y)?y.__staleWhileFetching:y;a!==void 0&&(d.oldValue=a);}}else d&&(d.set="update");e(this,Et)&&this.onInsert?.(i$1,e$1,i$1===y?"update":"replace");}if(r!==0&&!e(this,V)&&h(this,l,Gt).call(this),e(this,V)&&(v||e(this,Tt).call(this,S,r,n),d&&e(this,ot).call(this,d,S)),!o&&e(this,j)&&e(this,D)){let y=e(this,D),a;for(;a=y?.shift();)(w=e(this,$))==null||w.call(this,...a);}return this}pop(){var e$1;try{for(;e(this,O);){let i=e(this,f)[e(this,N)];if(h(this,l,Lt).call(this,!0),h(this,l,E).call(this,i)){if(i.__staleWhileFetching)return i.__staleWhileFetching}else if(i!==void 0)return i}}finally{if(e(this,j)&&e(this,D)){let i=e(this,D),s;for(;s=i?.shift();)(e$1=e(this,$))==null||e$1.call(this,...s);}}}has(e$1,i={}){let{updateAgeOnHas:s=this.updateAgeOnHas,status:r}=i,n=e(this,T).get(e$1);if(n!==void 0){let o=e(this,f)[n];if(h(this,l,E).call(this,o)&&o.__staleWhileFetching===void 0)return false;if(e(this,Y).call(this,n))r&&(r.has="stale",e(this,ot).call(this,r,n));else return s&&e(this,ft).call(this,n),r&&(r.has="hit",e(this,ot).call(this,r,n)),true}else r&&(r.has="miss");return false}peek(e$1,i={}){let{allowStale:s=this.allowStale}=i,r=e(this,T).get(e$1);if(r===void 0||!s&&e(this,Y).call(this,r))return;let n=e(this,f)[r];return h(this,l,E).call(this,n)?n.__staleWhileFetching:n}async fetch(e$1,i={}){let{allowStale:s=this.allowStale,updateAgeOnGet:r=this.updateAgeOnGet,noDeleteOnStaleGet:n=this.noDeleteOnStaleGet,ttl:o=this.ttl,noDisposeOnSet:h$1=this.noDisposeOnSet,size:d=0,sizeCalculation:v=this.sizeCalculation,noUpdateTTL:U=this.noUpdateTTL,noDeleteOnFetchRejection:S=this.noDeleteOnFetchRejection,allowStaleOnFetchRejection:rt=this.allowStaleOnFetchRejection,ignoreFetchAbort:I=this.ignoreFetchAbort,allowStaleOnFetchAbort:k=this.allowStaleOnFetchAbort,context:w,forceRefresh:y=false,status:a,signal:x}=i;if(!e(this,dt))return a&&(a.fetch="get"),this.get(e$1,{allowStale:s,updateAgeOnGet:r,noDeleteOnStaleGet:n,status:a});let A={allowStale:s,updateAgeOnGet:r,noDeleteOnStaleGet:n,ttl:o,noDisposeOnSet:h$1,size:d,sizeCalculation:v,noUpdateTTL:U,noDeleteOnFetchRejection:S,allowStaleOnFetchRejection:rt,allowStaleOnFetchAbort:k,ignoreFetchAbort:I,status:a,signal:x},u=e(this,T).get(e$1);if(u===void 0){a&&(a.fetch="miss");let g=h(this,l,Ct).call(this,e$1,u,A,w);return g.__returned=g}else {let g=e(this,f)[u];if(h(this,l,E).call(this,g)){let vt=s&&g.__staleWhileFetching!==void 0;return a&&(a.fetch="inflight",vt&&(a.returnedStale=true)),vt?g.__staleWhileFetching:g.__returned=g}let F=e(this,Y).call(this,u);if(!y&&!F)return a&&(a.fetch="hit"),h(this,l,At).call(this,u),r&&e(this,ft).call(this,u),a&&e(this,ot).call(this,a,u),g;let H=h(this,l,Ct).call(this,e$1,u,A,w),_t=H.__staleWhileFetching!==void 0&&s;return a&&(a.fetch=F?"stale":"refresh",_t&&F&&(a.returnedStale=true)),_t?H.__staleWhileFetching:H.__returned=H}}async forceFetch(e,i={}){let s=await this.fetch(e,i);if(s===void 0)throw new Error("fetch() returned undefined");return s}memo(e$1,i={}){let s=e(this,xt);if(!s)throw new Error("no memoMethod provided to constructor");let{context:r,forceRefresh:n,...o}=i,h=this.get(e$1,o);if(!n&&h!==void 0)return h;let d=s(e$1,h,{options:o,context:r});return this.set(e$1,d,o),d}get(e$1,i={}){let{allowStale:s=this.allowStale,updateAgeOnGet:r=this.updateAgeOnGet,noDeleteOnStaleGet:n=this.noDeleteOnStaleGet,status:o}=i,h$1=e(this,T).get(e$1);if(h$1!==void 0){let d=e(this,f)[h$1],v=h(this,l,E).call(this,d);return o&&e(this,ot).call(this,o,h$1),e(this,Y).call(this,h$1)?(o&&(o.get="stale"),v?(o&&s&&d.__staleWhileFetching!==void 0&&(o.returnedStale=true),s?d.__staleWhileFetching:void 0):(n||h(this,l,ct).call(this,e$1,"expire"),o&&s&&(o.returnedStale=true),s?d:void 0)):(o&&(o.get="hit"),v?d.__staleWhileFetching:(h(this,l,At).call(this,h$1),r&&e(this,ft).call(this,h$1),d))}else o&&(o.get="miss");}delete(e){return h(this,l,ct).call(this,e,"delete")}clear(){return h(this,l,zt).call(this,"delete")}},K=new WeakMap,M=new WeakMap,q=new WeakMap,ut=new WeakMap,$=new WeakMap,yt=new WeakMap,xt=new WeakMap,B=new WeakMap,O=new WeakMap,X=new WeakMap,T=new WeakMap,b=new WeakMap,f=new WeakMap,P=new WeakMap,z=new WeakMap,N=new WeakMap,R=new WeakMap,J=new WeakMap,D=new WeakMap,Q=new WeakMap,Z=new WeakMap,V=new WeakMap,W=new WeakMap,tt=new WeakMap,dt=new WeakMap,j=new WeakMap,Et=new WeakMap,l=new WeakSet,Gt=function(){let e$1=new Dt(e(this,K)),i=new Dt(e(this,K));g(this,V,e$1),g(this,Z,i);let s=this.ttlAutopurge?new Array(e(this,K)):void 0;g(this,W,s),g(this,Tt,(h,d,v=e(this,B).now())=>{i[h]=d!==0?v:0,e$1[h]=d,r(h,d);}),g(this,ft,h=>{i[h]=e$1[h]!==0?e(this,B).now():0,r(h,e$1[h]);});let r=this.ttlAutopurge?(h$1,d)=>{if(s?.[h$1]&&(clearTimeout(s[h$1]),s[h$1]=void 0),d&&d!==0&&s){let v=setTimeout(()=>{e(this,Y).call(this,h$1)&&h(this,l,ct).call(this,e(this,b)[h$1],"expire");},d+1);v.unref&&v.unref(),s[h$1]=v;}}:()=>{};g(this,ot,(h,d)=>{if(e$1[d]){let v=e$1[d],U=i[d];if(!v||!U)return;h.ttl=v,h.start=U,h.now=n||o();let S=h.now-U;h.remainingTTL=v-S;}});let n=0,o=()=>{let h=e(this,B).now();if(this.ttlResolution>0){n=h;let d=setTimeout(()=>n=0,this.ttlResolution);d.unref&&d.unref();}return h};this.getRemainingTTL=h=>{let d=e(this,T).get(h);if(d===void 0)return 0;let v=e$1[d],U=i[d];if(!v||!U)return 1/0;let S=(n||o())-U;return v-S},g(this,Y,h=>{let d=i[h],v=e$1[h];return !!v&&!!d&&(n||o())-d>v});},ft=new WeakMap,ot=new WeakMap,Tt=new WeakMap,Y=new WeakMap,ie=function(){let e$1=new Dt(e(this,K));g(this,X,0),g(this,Q,e$1),g(this,mt,i=>{g(this,X,e(this,X)-e$1[i]),e$1[i]=0;}),g(this,Ot,(i,s,r,n)=>{if(h(this,l,E).call(this,s))return 0;if(!at(r))if(n){if(typeof n!="function")throw new TypeError("sizeCalculation must be a function");if(r=n(s,i),!at(r))throw new TypeError("sizeCalculation return invalid (expect positive integer)")}else throw new TypeError("invalid size value (must be positive integer). When maxSize or maxEntrySize is used, sizeCalculation or size must be set.");return r}),g(this,bt,(i,s,r)=>{if(e$1[i]=s,e(this,M)){let n=e(this,M)-e$1[i];for(;e(this,X)>n;)h(this,l,Lt).call(this,true);}g(this,X,e(this,X)+e$1[i]),r&&(r.entrySize=s,r.totalCalculatedSize=e(this,X));});},mt=new WeakMap,bt=new WeakMap,Ot=new WeakMap,lt=function*({allowStale:e$1=this.allowStale}={}){if(e(this,O))for(let i=e(this,R);!(!h(this,l,It).call(this,i)||((e$1||!e(this,Y).call(this,i))&&(yield i),i===e(this,N)));)i=e(this,z)[i];},ht=function*({allowStale:e$1=this.allowStale}={}){if(e(this,O))for(let i=e(this,N);!(!h(this,l,It).call(this,i)||((e$1||!e(this,Y).call(this,i))&&(yield i),i===e(this,R)));)i=e(this,P)[i];},It=function(e$1){return e$1!==void 0&&e(this,T).get(e(this,b)[e$1])===e$1},Lt=function(e$1){var n;let i$1=e(this,N),s=e(this,b)[i$1],r=e(this,f)[i$1];return e(this,dt)&&h(this,l,E).call(this,r)?r.__abortController.abort(new Error("evicted")):(e(this,tt)||e(this,j))&&(e(this,tt)&&((n=e(this,q))==null||n.call(this,r,s,"evict")),e(this,j)&&e(this,D)?.push([r,s,"evict"])),e(this,mt).call(this,i$1),e(this,W)?.[i$1]&&(clearTimeout(e(this,W)[i$1]),e(this,W)[i$1]=void 0),e$1&&(e(this,b)[i$1]=void 0,e(this,f)[i$1]=void 0,e(this,J).push(i$1)),e(this,O)===1?(g(this,N,g(this,R,0)),e(this,J).length=0):g(this,N,e(this,P)[i$1]),e(this,T).delete(s),i(this,O)._--,i$1},Ct=function(e$1,i,s,r){let n=i===void 0?void 0:e(this,f)[i];if(h(this,l,E).call(this,n))return n;let o=new Nt,{signal:h$1}=s;h$1?.addEventListener("abort",()=>o.abort(h$1.reason),{signal:o.signal});let d={signal:o.signal,options:s,context:r},v=(w,y=false)=>{let{aborted:a}=o.signal,x=s.ignoreFetchAbort&&w!==void 0,A=s.ignoreFetchAbort||!!(s.allowStaleOnFetchAbort&&w!==void 0);if(s.status&&(a&&!y?(s.status.fetchAborted=true,s.status.fetchError=o.signal.reason,x&&(s.status.fetchAbortIgnored=true)):s.status.fetchResolved=true),a&&!x&&!y)return S(o.signal.reason,A);let u=I,g=e(this,f)[i];return (g===I||x&&y&&g===void 0)&&(w===void 0?u.__staleWhileFetching!==void 0?e(this,f)[i]=u.__staleWhileFetching:h(this,l,ct).call(this,e$1,"fetch"):(s.status&&(s.status.fetchUpdated=true),this.set(e$1,w,d.options))),w},U=w=>(s.status&&(s.status.fetchRejected=true,s.status.fetchError=w),S(w,false)),S=(w,y)=>{let{aborted:a}=o.signal,x=a&&s.allowStaleOnFetchAbort,A=x||s.allowStaleOnFetchRejection,u=A||s.noDeleteOnFetchRejection,g=I;if(e(this,f)[i]===I&&(!u||!y&&g.__staleWhileFetching===void 0?h(this,l,ct).call(this,e$1,"fetch"):x||(e(this,f)[i]=g.__staleWhileFetching)),A)return s.status&&g.__staleWhileFetching!==void 0&&(s.status.returnedStale=true),g.__staleWhileFetching;if(g.__returned===g)throw w},rt=(w,y)=>{var x;let a=(x=e(this,yt))==null?void 0:x.call(this,e$1,n,d);a&&a instanceof Promise&&a.then(A=>w(A===void 0?void 0:A),y),o.signal.addEventListener("abort",()=>{(!s.ignoreFetchAbort||s.allowStaleOnFetchAbort)&&(w(void 0),s.allowStaleOnFetchAbort&&(w=A=>v(A,true)));});};s.status&&(s.status.fetchDispatched=true);let I=new Promise(rt).then(v,U),k=Object.assign(I,{__abortController:o,__staleWhileFetching:n,__returned:void 0});return i===void 0?(this.set(e$1,k,{...d.options,status:void 0}),i=e(this,T).get(e$1)):e(this,f)[i]=k,k},E=function(e$1){if(!e(this,dt))return false;let i=e$1;return !!i&&i instanceof Promise&&i.hasOwnProperty("__staleWhileFetching")&&i.__abortController instanceof Nt},Mt=function(e$1,i){e(this,z)[i]=e$1,e(this,P)[e$1]=i;},At=function(e$1){e$1!==e(this,R)&&(e$1===e(this,N)?g(this,N,e(this,P)[e$1]):h(this,l,Mt).call(this,e(this,z)[e$1],e(this,P)[e$1]),h(this,l,Mt).call(this,e(this,R),e$1),g(this,R,e$1));},ct=function(e$1,i$1){var r,n;let s=false;if(e(this,O)!==0){let o=e(this,T).get(e$1);if(o!==void 0)if(e(this,W)?.[o]&&(clearTimeout(e(this,W)?.[o]),e(this,W)[o]=void 0),s=true,e(this,O)===1)h(this,l,zt).call(this,i$1);else {e(this,mt).call(this,o);let h$1=e(this,f)[o];if(h(this,l,E).call(this,h$1)?h$1.__abortController.abort(new Error("deleted")):(e(this,tt)||e(this,j))&&(e(this,tt)&&((r=e(this,q))==null||r.call(this,h$1,e$1,i$1)),e(this,j)&&e(this,D)?.push([h$1,e$1,i$1])),e(this,T).delete(e$1),e(this,b)[o]=void 0,e(this,f)[o]=void 0,o===e(this,R))g(this,R,e(this,z)[o]);else if(o===e(this,N))g(this,N,e(this,P)[o]);else {let d=e(this,z)[o];e(this,P)[d]=e(this,P)[o];let v=e(this,P)[o];e(this,z)[v]=e(this,z)[o];}i(this,O)._--,e(this,J).push(o);}}if(e(this,j)&&e(this,D)?.length){let o=e(this,D),h;for(;h=o?.shift();)(n=e(this,$))==null||n.call(this,...h);}return s},zt=function(e$1){var i,s;for(let r of h(this,l,ht).call(this,{allowStale:true})){let n=e(this,f)[r];if(h(this,l,E).call(this,n))n.__abortController.abort(new Error("deleted"));else {let o=e(this,b)[r];e(this,tt)&&((i=e(this,q))==null||i.call(this,n,o,e$1)),e(this,j)&&e(this,D)?.push([n,o,e$1]);}}if(e(this,T).clear(),e(this,f).fill(void 0),e(this,b).fill(void 0),e(this,V)&&e(this,Z)){e(this,V).fill(0),e(this,Z).fill(0);for(let r of e(this,W)??[])r!==void 0&&clearTimeout(r);e(this,W)?.fill(void 0);}if(e(this,Q)&&e(this,Q).fill(0),g(this,N,0),g(this,R,0),e(this,J).length=0,g(this,X,0),g(this,O,0),e(this,j)&&e(this,D)){let r=e(this,D),n;for(;n=r?.shift();)(s=e(this,$))==null||s.call(this,...n);}},wt);var Ft=class{cache;map=new Map;constructor(e){this.cache=new ee({max:e.cacheSize}),this.map=new Map;}get[Symbol.iterator](){return this.map[Symbol.iterator]}get[Symbol.toStringTag](){return this.map[Symbol.toStringTag]}clear(){this.cache.clear(),this.map.clear();}delete(e){let i=this.map.delete(e);return i&&this.cache.delete(e),i}get forEach(){return this.map.forEach}get(e){let i=this.cache.get(e);return i||this.map.get(e)}has(e){return this.map.has(e)}set(e,i){return this.map.set(e,i),this.cache.set(e,i),this}get size(){return this.map.size}entries(){return this.map.entries()}keys(){return this.map.keys()}values(){return this.map.values()}};var Ut="1.8.24";var Vt={version:Ut};var Wt="repeat";function Yt(m){return {type:"pause",duration:m}}var Ht="__game_layer__";var fe={CURRENT_DIALOGUE_MEMORY_KEY:"dialogue",LAST_DIALOGUE_ADDED_IN_STEP_MEMORY_KEY:"dialogue:step_counter",CURRENT_MENU_OPTIONS_MEMORY_KEY:"choice:options",LAST_MENU_OPTIONS_ADDED_IN_STEP_MEMORY_KEY:"choice:step_counter",CURRENT_INPUT_VALUE_MEMORY_KEY:"input:value",LAST_INPUT_ADDED_IN_STEP_MEMORY_KEY:"input:step_counter",CURRENT_INPUT_INFO_MEMORY_KEY:"input:info",CHARACTER_CATEGORY_KEY:"character",ADD_NEXT_DIALOG_TEXT_INTO_THE_CURRENT_DIALOG_FLAG_KEY:"___glue___",OPENED_LABELS_COUNTER_KEY:"label:opened",ALL_CHOICES_MADE_KEY:"choices:made",CURRENT_STEP_TIMES_COUNTER_KEY:"label:history",LAST_STEP_GLUED:"glue:last_step"};var re={};var Kt={};b$1(Kt,{createExportableElement:()=>oe});var gt;(r=>(r.log=(n,...o)=>console.log(`[Pixi\u2019VN] ${n}`,...o),r.warn=(n,...o)=>console.warn(`[Pixi\u2019VN] ${n}`,...o),r.error=(n,...o)=>console.error(`[Pixi\u2019VN] ${n}`,...o),r.info=(n,...o)=>console.info(`[Pixi\u2019VN] ${n}`,...o)))(gt||={});function oe(m){try{if(typeof m>"u")return m;let e=JSON.stringify(m);return JSON.parse(e)}catch(e){throw gt.error("Error creating exportable element",m,e),new PixiError("not_json_serializable","Error creating exportable element")}}var ge=typeof window<"u"&&typeof document<"u",ne=[" _______ _ _ _ ____ ____ ____ _____ ","|_ __ \\ (_) (_) | | |_ _| |_ _||_ \\|_ _|"," | |__) |__ _ __ __ \\_| \\ \\ / / | \\ | | "," | ___/[ | [ \\ [ ][ | \\ \\ / / | |\\ \\| | "," _| |_ | | > ' < | | \\ ' / _| |_\\ |_ ",`|_____| [___][__]\`\\_][___] \\_/ |_____|\\____| v${Vt.version}`],ae=31,_e="background:#2f90da;color:#fff;font-weight:bold;",ve="background:#c832bb;color:#fff;font-weight:bold;",Se="background:transparent;font-weight:bold;",kt=` v${Vt.version}`;function le(){if(!ge)return;let m=[],e=[];for(let i=0;i<ne.length;i++){let s=ne[i],r=s.endsWith(kt),n=r?s.slice(0,-kt.length):s,o=n.slice(0,ae),h=n.slice(ae),d=r?"%c%s%c%s%c%s":"%c%s%c%s";m.push(d),e.push(_e,o,ve,h),r&&e.push(Se,kt);}console.info(m.join(`
2
- `),...e);}function qt(){let m=window.location.pathname+window.location.hash;return m.includes("#")&&(m=m.split("#")[1]),m}le();var he;(y=>{async function m(a,x,A){if(GameUnifier.init({navigate:x?.navigate,getCurrentGameStepState:()=>{let u={};try{u=nt.canvas.export();}catch{}return {path:qt(),storage:G.storage.export(),canvas:u,sound:pt.sound.export(),labelIndex:L.NarrationManagerStatic.currentLabelStepIndex||0,openedLabels:L.narration.openedLabels}},restoreGameStepState:async(u,g)=>{et.HistoryManagerStatic._originalStepData=u,L.NarrationManagerStatic.openedLabels=u.openedLabels,G.storage.restore(u.storage);try{await nt.canvas.restore(u.canvas),await pt.sound.restore(u.sound);}catch(F){gt.error("Error restoring game step state:",F);}await g(u.path);},getStepCounter:()=>L.narration.stepCounter,setStepCounter:u=>{L.NarrationManagerStatic._stepCounter=u;},getOpenedLabels:()=>L.narration.openedLabels.length,addHistoryItem:(u,g)=>et.stepHistory.add(u,g),getCharacter:u=>$t.RegisteredCharacters.get(u),processNavigationRequests:(u,g)=>{let F=u,H=Promise.resolve();return u>0?(F--,H=L.narration.continue(g)):u<0&&(F=0,H=et.stepHistory.back(g,{steps:u*-1})),{newValue:F,result:H}},animate:(u,g,F,H)=>motion.animate(u,g,F,H),getVariable:(u,g)=>G.StorageRegistry.getVariable(u,g),setVariable:(u,g,F)=>G.StorageRegistry.setVariable(u,g,F),removeVariable:(u,g)=>G.StorageRegistry.removeVariable(u,g),getFlag:u=>G.storage.getFlag(u),setFlag:(u,g)=>G.storage.setFlag(u,g),onLabelClosing:u=>G.StorageRegistry.clearOldTempVariables(u)}),!a||!x){gt.warn("The canvas element or options are not defined. The canvas will not be initialized.");return}return await nt.canvas.init(a,x,A)}y.init=m;function e(){G.storage.clear();try{nt.canvas.clear();}catch{}pt.sound.clear(),L.narration.clear(),et.stepHistory.clear();}y.clear=e;function i(){let a={};try{a=nt.canvas.export();}catch{}return {pixivn_version:Ut,stepData:L.narration.export(),storageData:G.storage.export(),canvasData:a,soundData:pt.sound.export(),historyData:et.stepHistory.export(),path:qt()}}y.exportGameState=i;async function s(a,x){et.stepHistory.restore(a.historyData);let A=et.stepHistory.lastKey;if(typeof A=="number"){let u=et.stepHistory.stepsInfoMap.get(A)||null;await L.narration.restore(a.stepData,u);}G.storage.restore(a.storageData);try{await nt.canvas.restore(a.canvasData),await pt.sound.restore(a.soundData);}catch{}x?await x(a.path):await GameUnifier.navigate(a.path);}y.restoreGameState=s;async function r(a,x){return y.clear(),await L.narration.call(a,x)}y.start=r;function n(a){return JSON.parse(a)}y.jsonToGameState=n;function o(a){GameUnifier.onEnd=a;}y.onEnd=o;function h(a){return gt.warn("Game.onError is deprecated. Use Game.addOnError / Game.removeOnError to register multiple handlers."),GameUnifier.addOnError((x,A)=>a("step",x,A))}y.onError=h;function d(a){return GameUnifier.addOnError(a)}y.addOnError=d;function v(a){return GameUnifier.removeOnError(a)}y.removeOnError=v;function U(a){L.NarrationManagerStatic.onStepStart=a;}y.onStepStart=U;function S(a){L.NarrationManagerStatic.onLoadingLabel=a;}y.onLoadingLabel=S;function rt(a){L.NarrationManagerStatic.onStepEnd=a;}y.onStepEnd=rt;function I(a){GameUnifier.navigate=a;}y.onNavigate=I;function k(a){return GameUnifier.addOnPreContinue(a)}y.addOnPreContinue=k;function w(a){return GameUnifier.removeOnPreContinue(a)}y.removeOnPreContinue=w;})(he||={});var $e={characterUtils:$t,canvasUtils:nt,narrationUtils:L,soundUtils:pt,CANVAS_APP_GAME_LAYER_ALIAS:Ht,Pause:Yt,Repeat:Wt,PIXIVN_VERSION:Ut,...Kt,...re,canvas:nt.canvas,narration:L.narration,sound:pt.sound,storage:G.storage,history:et.stepHistory,Game:he,GameUnifier:GameUnifier};export{Ht as CANVAS_APP_GAME_LAYER_ALIAS,Ft as CachedMap,he as Game,Ut as PIXIVN_VERSION,Yt as Pause,Wt as Repeat,fe as SYSTEM_RESERVED_STORAGE_KEYS,oe as createExportableElement,$e as default};
1
+ import {f as f$1,b as b$1,g,e,d,h,i}from'./chunk-K7JIC2F2.mjs';import*as M from'@drincs/pixi-vn/canvas';export*from'@drincs/pixi-vn/canvas';import*as kt from'@drincs/pixi-vn/characters';export*from'@drincs/pixi-vn/characters';import {PixiError,GameUnifier}from'@drincs/pixi-vn/core';export*from'@drincs/pixi-vn/core';import*as st from'@drincs/pixi-vn/history';export*from'@drincs/pixi-vn/history';import*as O from'@drincs/pixi-vn/narration';export*from'@drincs/pixi-vn/narration';import*as ut from'@drincs/pixi-vn/sound';export*from'@drincs/pixi-vn/sound';import*as z from'@drincs/pixi-vn/storage';export*from'@drincs/pixi-vn/storage';import {motion}from'@drincs/pixi-vn/motion';var he=typeof performance=="object"&&performance&&typeof performance.now=="function"?performance:Date,Xt=new Set,jt=typeof process=="object"&&process?process:{},Jt=(g,e,i,s)=>{typeof jt.emitWarning=="function"?jt.emitWarning(g,e,i,s):console.error(`[${i}] ${e}: ${g}`);},Nt=globalThis.AbortController,qt=globalThis.AbortSignal;if(typeof Nt>"u"){qt=class{onabort;_onabort=[];reason;aborted=false;addEventListener(i,s){this._onabort.push(s);}},Nt=class{constructor(){e();}signal=new qt;abort(i){if(!this.signal.aborted){this.signal.reason=i,this.signal.aborted=true;for(let s of this.signal._onabort)s(i);this.signal.onabort?.(i);}}};let g=jt.env?.LRU_CACHE_IGNORE_AC_WARNING!=="1",e=()=>{g&&(g=false,Jt("AbortController is not defined. If using lru-cache in node 14, load an AbortController polyfill from the `node-abort-controller` package. A minimal polyfill is provided for use by LRUCache.fetch(), but it should not be relied upon in other contexts (eg, passing it to other APIs that use AbortController/AbortSignal might have undesirable effects). You may disable this with LRU_CACHE_IGNORE_AC_WARNING=1 in the env.","NO_ABORT_CONTROLLER","ENOTSUP",e));};}var ce=g=>!Xt.has(g);var lt=g=>g&&g===Math.floor(g)&&g>0&&isFinite(g),Qt=g=>lt(g)?g<=Math.pow(2,8)?Uint8Array:g<=Math.pow(2,16)?Uint16Array:g<=Math.pow(2,32)?Uint32Array:g<=Number.MAX_SAFE_INTEGER?Lt:null:null,Lt=class extends Array{constructor(g){super(g),this.fill(0);}},rt,vt,de=(rt=class{heap;length;static create(e){let i=Qt(e);if(!i)return [];g(rt,vt,true);let s=new rt(e,i);return g(rt,vt,false),s}constructor(e$1,i){if(!e(rt,vt))throw new TypeError("instantiate Stack using Stack.create(n)");this.heap=new i(e$1),this.length=0;}push(e){this.heap[this.length++]=e;}pop(){return this.heap[--this.length]}},vt=new WeakMap,f$1(rt,vt,false),rt),$t,Bt,q,V,B,ft,X,St,yt,J,R,Q,U,x,f,j,W,F,D,Z,C,tt,et,Y,H,it,pt,P,bt,a,Pt,mt,nt,Tt,K,te,gt,xt,Ut,ht,ct,Mt,Dt,Ct,b,zt,At,dt,Gt,Et,Zt=(Et=class{constructor(e$1){f$1(this,a);f$1(this,q);f$1(this,V);f$1(this,B);f$1(this,ft);f$1(this,X);f$1(this,St);f$1(this,yt);f$1(this,J);d(this,"ttl");d(this,"ttlResolution");d(this,"ttlAutopurge");d(this,"updateAgeOnGet");d(this,"updateAgeOnHas");d(this,"allowStale");d(this,"noDisposeOnSet");d(this,"noUpdateTTL");d(this,"maxEntrySize");d(this,"sizeCalculation");d(this,"noDeleteOnFetchRejection");d(this,"noDeleteOnStaleGet");d(this,"allowStaleOnFetchAbort");d(this,"allowStaleOnFetchRejection");d(this,"ignoreFetchAbort");f$1(this,R);f$1(this,Q);f$1(this,U);f$1(this,x);f$1(this,f);f$1(this,j);f$1(this,W);f$1(this,F);f$1(this,D);f$1(this,Z);f$1(this,C);f$1(this,tt);f$1(this,et);f$1(this,Y);f$1(this,H);f$1(this,it);f$1(this,pt);f$1(this,P);f$1(this,bt);f$1(this,mt,()=>{});f$1(this,nt,()=>{});f$1(this,Tt,()=>{});f$1(this,K,()=>false);f$1(this,gt,e=>{});f$1(this,xt,(e,i,s)=>{});f$1(this,Ut,(e,i,s,r)=>{if(s||r)throw new TypeError("cannot set size without setting maxSize or maxEntrySize on cache");return 0});d(this,$t,"LRUCache");let{max:i=0,ttl:s,ttlResolution:r=1,ttlAutopurge:n,updateAgeOnGet:o,updateAgeOnHas:l,allowStale:c,dispose:v,onInsert:L,disposeAfter:S,noDisposeOnSet:ot,noUpdateTTL:G,maxSize:$=0,maxEntrySize:E=0,sizeCalculation:y,fetchMethod:m,memoMethod:u,noDeleteOnFetchRejection:w,noDeleteOnStaleGet:T,allowStaleOnFetchRejection:d$1,allowStaleOnFetchAbort:A,ignoreFetchAbort:I,perf:k}=e$1;if(k!==void 0&&typeof k?.now!="function")throw new TypeError("perf option must have a now() method if specified");if(g(this,J,k??he),i!==0&&!lt(i))throw new TypeError("max option must be a nonnegative integer");let _t=i?Qt(i):Array;if(!_t)throw new Error("invalid max value: "+i);if(g(this,q,i),g(this,V,$),this.maxEntrySize=E||e(this,V),this.sizeCalculation=y,this.sizeCalculation){if(!e(this,V)&&!this.maxEntrySize)throw new TypeError("cannot set sizeCalculation without setting maxSize or maxEntrySize");if(typeof this.sizeCalculation!="function")throw new TypeError("sizeCalculation set to non-function")}if(u!==void 0&&typeof u!="function")throw new TypeError("memoMethod must be a function if defined");if(g(this,yt,u),m!==void 0&&typeof m!="function")throw new TypeError("fetchMethod must be a function if specified");if(g(this,St,m),g(this,pt,!!m),g(this,U,new Map),g(this,x,new Array(i).fill(void 0)),g(this,f,new Array(i).fill(void 0)),g(this,j,new _t(i)),g(this,W,new _t(i)),g(this,F,0),g(this,D,0),g(this,Z,de.create(i)),g(this,R,0),g(this,Q,0),typeof v=="function"&&g(this,B,v),typeof L=="function"&&g(this,ft,L),typeof S=="function"?(g(this,X,S),g(this,C,[])):(g(this,X,void 0),g(this,C,void 0)),g(this,it,!!e(this,B)),g(this,bt,!!e(this,ft)),g(this,P,!!e(this,X)),this.noDisposeOnSet=!!ot,this.noUpdateTTL=!!G,this.noDeleteOnFetchRejection=!!w,this.allowStaleOnFetchRejection=!!d$1,this.allowStaleOnFetchAbort=!!A,this.ignoreFetchAbort=!!I,this.maxEntrySize!==0){if(e(this,V)!==0&&!lt(e(this,V)))throw new TypeError("maxSize must be a positive integer if specified");if(!lt(this.maxEntrySize))throw new TypeError("maxEntrySize must be a positive integer if specified");h(this,a,te).call(this);}if(this.allowStale=!!c,this.noDeleteOnStaleGet=!!T,this.updateAgeOnGet=!!o,this.updateAgeOnHas=!!l,this.ttlResolution=lt(r)||r===0?r:1,this.ttlAutopurge=!!n,this.ttl=s||0,this.ttl){if(!lt(this.ttl))throw new TypeError("ttl must be a positive integer if specified");h(this,a,Pt).call(this);}if(e(this,q)===0&&this.ttl===0&&e(this,V)===0)throw new TypeError("At least one of max, maxSize, or ttl is required");if(!this.ttlAutopurge&&!e(this,q)&&!e(this,V)){let Ft="LRU_CACHE_UNBOUNDED";ce(Ft)&&(Xt.add(Ft),Jt("TTL caching without ttlAutopurge, max, or maxSize can result in unbounded memory consumption.","UnboundedCacheWarning",Ft,Et));}}get perf(){return e(this,J)}static unsafeExposeInternals(e$1){return {starts:e(e$1,et),ttls:e(e$1,Y),autopurgeTimers:e(e$1,H),sizes:e(e$1,tt),keyMap:e(e$1,U),keyList:e(e$1,x),valList:e(e$1,f),next:e(e$1,j),prev:e(e$1,W),get head(){return e(e$1,F)},get tail(){return e(e$1,D)},free:e(e$1,Z),isBackgroundFetch:i=>{var s;return h(s=e$1,a,b).call(s,i)},backgroundFetch:(i,s,r,n)=>{var o;return h(o=e$1,a,Ct).call(o,i,s,r,n)},moveToTail:i=>{var s;return h(s=e$1,a,At).call(s,i)},indexes:i=>{var s;return h(s=e$1,a,ht).call(s,i)},rindexes:i=>{var s;return h(s=e$1,a,ct).call(s,i)},isStale:i=>{var s;return e(s=e$1,K).call(s,i)}}}get max(){return e(this,q)}get maxSize(){return e(this,V)}get calculatedSize(){return e(this,Q)}get size(){return e(this,R)}get fetchMethod(){return e(this,St)}get memoMethod(){return e(this,yt)}get dispose(){return e(this,B)}get onInsert(){return e(this,ft)}get disposeAfter(){return e(this,X)}getRemainingTTL(e$1){return e(this,U).has(e$1)?1/0:0}*entries(){for(let e$1 of h(this,a,ht).call(this))e(this,f)[e$1]!==void 0&&e(this,x)[e$1]!==void 0&&!h(this,a,b).call(this,e(this,f)[e$1])&&(yield [e(this,x)[e$1],e(this,f)[e$1]]);}*rentries(){for(let e$1 of h(this,a,ct).call(this))e(this,f)[e$1]!==void 0&&e(this,x)[e$1]!==void 0&&!h(this,a,b).call(this,e(this,f)[e$1])&&(yield [e(this,x)[e$1],e(this,f)[e$1]]);}*keys(){for(let e$1 of h(this,a,ht).call(this)){let i=e(this,x)[e$1];i!==void 0&&!h(this,a,b).call(this,e(this,f)[e$1])&&(yield i);}}*rkeys(){for(let e$1 of h(this,a,ct).call(this)){let i=e(this,x)[e$1];i!==void 0&&!h(this,a,b).call(this,e(this,f)[e$1])&&(yield i);}}*values(){for(let e$1 of h(this,a,ht).call(this))e(this,f)[e$1]!==void 0&&!h(this,a,b).call(this,e(this,f)[e$1])&&(yield e(this,f)[e$1]);}*rvalues(){for(let e$1 of h(this,a,ct).call(this))e(this,f)[e$1]!==void 0&&!h(this,a,b).call(this,e(this,f)[e$1])&&(yield e(this,f)[e$1]);}[(Bt=Symbol.iterator,$t=Symbol.toStringTag,Bt)](){return this.entries()}find(e$1,i={}){for(let s of h(this,a,ht).call(this)){let r=e(this,f)[s],n=h(this,a,b).call(this,r)?r.__staleWhileFetching:r;if(n!==void 0&&e$1(n,e(this,x)[s],this))return this.get(e(this,x)[s],i)}}forEach(e$1,i=this){for(let s of h(this,a,ht).call(this)){let r=e(this,f)[s],n=h(this,a,b).call(this,r)?r.__staleWhileFetching:r;n!==void 0&&e$1.call(i,n,e(this,x)[s],this);}}rforEach(e$1,i=this){for(let s of h(this,a,ct).call(this)){let r=e(this,f)[s],n=h(this,a,b).call(this,r)?r.__staleWhileFetching:r;n!==void 0&&e$1.call(i,n,e(this,x)[s],this);}}purgeStale(){let e$1=false;for(let i of h(this,a,ct).call(this,{allowStale:true}))e(this,K).call(this,i)&&(h(this,a,dt).call(this,e(this,x)[i],"expire"),e$1=true);return e$1}info(e$1){let i=e(this,U).get(e$1);if(i===void 0)return;let s=e(this,f)[i],r=h(this,a,b).call(this,s)?s.__staleWhileFetching:s;if(r===void 0)return;let n={value:r};if(e(this,Y)&&e(this,et)){let o=e(this,Y)[i],l=e(this,et)[i];if(o&&l){let c=o-(e(this,J).now()-l);n.ttl=c,n.start=Date.now();}}return e(this,tt)&&(n.size=e(this,tt)[i]),n}dump(){let e$1=[];for(let i of h(this,a,ht).call(this,{allowStale:true})){let s=e(this,x)[i],r=e(this,f)[i],n=h(this,a,b).call(this,r)?r.__staleWhileFetching:r;if(n===void 0||s===void 0)continue;let o={value:n};if(e(this,Y)&&e(this,et)){o.ttl=e(this,Y)[i];let l=e(this,J).now()-e(this,et)[i];o.start=Math.floor(Date.now()-l);}e(this,tt)&&(o.size=e(this,tt)[i]),e$1.unshift([s,o]);}return e$1}load(e$1){this.clear();for(let[i,s]of e$1){if(s.start){let r=Date.now()-s.start;s.start=e(this,J).now()-r;}this.set(i,s.value,s);}}set(e$1,i$1,s={}){var ot,G,$,E;if(i$1===void 0)return this.delete(e$1),this;let{ttl:r=this.ttl,start:n,noDisposeOnSet:o=this.noDisposeOnSet,sizeCalculation:l=this.sizeCalculation,status:c}=s,{noUpdateTTL:v=this.noUpdateTTL}=s,L=e(this,Ut).call(this,e$1,i$1,s.size||0,l);if(this.maxEntrySize&&L>this.maxEntrySize)return c&&(c.set="miss",c.maxEntrySizeExceeded=true),h(this,a,dt).call(this,e$1,"set"),this;let S=e(this,R)===0?void 0:e(this,U).get(e$1);if(S===void 0)S=e(this,R)===0?e(this,D):e(this,Z).length!==0?e(this,Z).pop():e(this,R)===e(this,q)?h(this,a,Dt).call(this,false):e(this,R),e(this,x)[S]=e$1,e(this,f)[S]=i$1,e(this,U).set(e$1,S),e(this,j)[e(this,D)]=S,e(this,W)[S]=e(this,D),g(this,D,S),i(this,R)._++,e(this,xt).call(this,S,L,c),c&&(c.set="add"),v=false,e(this,bt)&&((ot=e(this,ft))==null||ot.call(this,i$1,e$1,"add"));else {h(this,a,At).call(this,S);let y=e(this,f)[S];if(i$1!==y){if(e(this,pt)&&h(this,a,b).call(this,y)){y.__abortController.abort(new Error("replaced"));let{__staleWhileFetching:m}=y;m!==void 0&&!o&&(e(this,it)&&((G=e(this,B))==null||G.call(this,m,e$1,"set")),e(this,P)&&e(this,C)?.push([m,e$1,"set"]));}else o||(e(this,it)&&(($=e(this,B))==null||$.call(this,y,e$1,"set")),e(this,P)&&e(this,C)?.push([y,e$1,"set"]));if(e(this,gt).call(this,S),e(this,xt).call(this,S,L,c),e(this,f)[S]=i$1,c){c.set="replace";let m=y&&h(this,a,b).call(this,y)?y.__staleWhileFetching:y;m!==void 0&&(c.oldValue=m);}}else c&&(c.set="update");e(this,bt)&&this.onInsert?.(i$1,e$1,i$1===y?"update":"replace");}if(r!==0&&!e(this,Y)&&h(this,a,Pt).call(this),e(this,Y)&&(v||e(this,Tt).call(this,S,r,n),c&&e(this,nt).call(this,c,S)),!o&&e(this,P)&&e(this,C)){let y=e(this,C),m;for(;m=y?.shift();)(E=e(this,X))==null||E.call(this,...m);}return this}pop(){var e$1;try{for(;e(this,R);){let i=e(this,f)[e(this,F)];if(h(this,a,Dt).call(this,!0),h(this,a,b).call(this,i)){if(i.__staleWhileFetching)return i.__staleWhileFetching}else if(i!==void 0)return i}}finally{if(e(this,P)&&e(this,C)){let i=e(this,C),s;for(;s=i?.shift();)(e$1=e(this,X))==null||e$1.call(this,...s);}}}has(e$1,i={}){let{updateAgeOnHas:s=this.updateAgeOnHas,status:r}=i,n=e(this,U).get(e$1);if(n!==void 0){let o=e(this,f)[n];if(h(this,a,b).call(this,o)&&o.__staleWhileFetching===void 0)return false;if(e(this,K).call(this,n))r&&(r.has="stale",e(this,nt).call(this,r,n));else return s&&e(this,mt).call(this,n),r&&(r.has="hit",e(this,nt).call(this,r,n)),true}else r&&(r.has="miss");return false}peek(e$1,i={}){let{allowStale:s=this.allowStale}=i,r=e(this,U).get(e$1);if(r===void 0||!s&&e(this,K).call(this,r))return;let n=e(this,f)[r];return h(this,a,b).call(this,n)?n.__staleWhileFetching:n}async fetch(e$1,i={}){let{allowStale:s=this.allowStale,updateAgeOnGet:r=this.updateAgeOnGet,noDeleteOnStaleGet:n=this.noDeleteOnStaleGet,ttl:o=this.ttl,noDisposeOnSet:l=this.noDisposeOnSet,size:c=0,sizeCalculation:v=this.sizeCalculation,noUpdateTTL:L=this.noUpdateTTL,noDeleteOnFetchRejection:S=this.noDeleteOnFetchRejection,allowStaleOnFetchRejection:ot=this.allowStaleOnFetchRejection,ignoreFetchAbort:G=this.ignoreFetchAbort,allowStaleOnFetchAbort:$=this.allowStaleOnFetchAbort,context:E,forceRefresh:y=false,status:m,signal:u}=i;if(!e(this,pt))return m&&(m.fetch="get"),this.get(e$1,{allowStale:s,updateAgeOnGet:r,noDeleteOnStaleGet:n,status:m});let w={allowStale:s,updateAgeOnGet:r,noDeleteOnStaleGet:n,ttl:o,noDisposeOnSet:l,size:c,sizeCalculation:v,noUpdateTTL:L,noDeleteOnFetchRejection:S,allowStaleOnFetchRejection:ot,allowStaleOnFetchAbort:$,ignoreFetchAbort:G,status:m,signal:u},T=e(this,U).get(e$1);if(T===void 0){m&&(m.fetch="miss");let d=h(this,a,Ct).call(this,e$1,T,w,E);return d.__returned=d}else {let d=e(this,f)[T];if(h(this,a,b).call(this,d)){let _t=s&&d.__staleWhileFetching!==void 0;return m&&(m.fetch="inflight",_t&&(m.returnedStale=true)),_t?d.__staleWhileFetching:d.__returned=d}let A=e(this,K).call(this,T);if(!y&&!A)return m&&(m.fetch="hit"),h(this,a,At).call(this,T),r&&e(this,mt).call(this,T),m&&e(this,nt).call(this,m,T),d;let I=h(this,a,Ct).call(this,e$1,T,w,E),k=I.__staleWhileFetching!==void 0&&s;return m&&(m.fetch=A?"stale":"refresh",k&&A&&(m.returnedStale=true)),k?I.__staleWhileFetching:I.__returned=I}}async forceFetch(e,i={}){let s=await this.fetch(e,i);if(s===void 0)throw new Error("fetch() returned undefined");return s}memo(e$1,i={}){let s=e(this,yt);if(!s)throw new Error("no memoMethod provided to constructor");let{context:r,forceRefresh:n,...o}=i,l=this.get(e$1,o);if(!n&&l!==void 0)return l;let c=s(e$1,l,{options:o,context:r});return this.set(e$1,c,o),c}get(e$1,i={}){let{allowStale:s=this.allowStale,updateAgeOnGet:r=this.updateAgeOnGet,noDeleteOnStaleGet:n=this.noDeleteOnStaleGet,status:o}=i,l=e(this,U).get(e$1);if(l!==void 0){let c=e(this,f)[l],v=h(this,a,b).call(this,c);return o&&e(this,nt).call(this,o,l),e(this,K).call(this,l)?(o&&(o.get="stale"),v?(o&&s&&c.__staleWhileFetching!==void 0&&(o.returnedStale=true),s?c.__staleWhileFetching:void 0):(n||h(this,a,dt).call(this,e$1,"expire"),o&&s&&(o.returnedStale=true),s?c:void 0)):(o&&(o.get="hit"),v?c.__staleWhileFetching:(h(this,a,At).call(this,l),r&&e(this,mt).call(this,l),c))}else o&&(o.get="miss");}delete(e){return h(this,a,dt).call(this,e,"delete")}clear(){return h(this,a,Gt).call(this,"delete")}},q=new WeakMap,V=new WeakMap,B=new WeakMap,ft=new WeakMap,X=new WeakMap,St=new WeakMap,yt=new WeakMap,J=new WeakMap,R=new WeakMap,Q=new WeakMap,U=new WeakMap,x=new WeakMap,f=new WeakMap,j=new WeakMap,W=new WeakMap,F=new WeakMap,D=new WeakMap,Z=new WeakMap,C=new WeakMap,tt=new WeakMap,et=new WeakMap,Y=new WeakMap,H=new WeakMap,it=new WeakMap,pt=new WeakMap,P=new WeakMap,bt=new WeakMap,a=new WeakSet,Pt=function(){let e$1=new Lt(e(this,q)),i=new Lt(e(this,q));g(this,Y,e$1),g(this,et,i);let s=this.ttlAutopurge?new Array(e(this,q)):void 0;g(this,H,s),g(this,Tt,(l,c,v=e(this,J).now())=>{i[l]=c!==0?v:0,e$1[l]=c,r(l,c);}),g(this,mt,l=>{i[l]=e$1[l]!==0?e(this,J).now():0,r(l,e$1[l]);});let r=this.ttlAutopurge?(l,c)=>{if(s?.[l]&&(clearTimeout(s[l]),s[l]=void 0),c&&c!==0&&s){let v=setTimeout(()=>{e(this,K).call(this,l)&&h(this,a,dt).call(this,e(this,x)[l],"expire");},c+1);v.unref&&v.unref(),s[l]=v;}}:()=>{};g(this,nt,(l,c)=>{if(e$1[c]){let v=e$1[c],L=i[c];if(!v||!L)return;l.ttl=v,l.start=L,l.now=n||o();let S=l.now-L;l.remainingTTL=v-S;}});let n=0,o=()=>{let l=e(this,J).now();if(this.ttlResolution>0){n=l;let c=setTimeout(()=>n=0,this.ttlResolution);c.unref&&c.unref();}return l};this.getRemainingTTL=l=>{let c=e(this,U).get(l);if(c===void 0)return 0;let v=e$1[c],L=i[c];if(!v||!L)return 1/0;let S=(n||o())-L;return v-S},g(this,K,l=>{let c=i[l],v=e$1[l];return !!v&&!!c&&(n||o())-c>v});},mt=new WeakMap,nt=new WeakMap,Tt=new WeakMap,K=new WeakMap,te=function(){let e$1=new Lt(e(this,q));g(this,Q,0),g(this,tt,e$1),g(this,gt,i=>{g(this,Q,e(this,Q)-e$1[i]),e$1[i]=0;}),g(this,Ut,(i,s,r,n)=>{if(h(this,a,b).call(this,s))return 0;if(!lt(r))if(n){if(typeof n!="function")throw new TypeError("sizeCalculation must be a function");if(r=n(s,i),!lt(r))throw new TypeError("sizeCalculation return invalid (expect positive integer)")}else throw new TypeError("invalid size value (must be positive integer). When maxSize or maxEntrySize is used, sizeCalculation or size must be set.");return r}),g(this,xt,(i,s,r)=>{if(e$1[i]=s,e(this,V)){let n=e(this,V)-e$1[i];for(;e(this,Q)>n;)h(this,a,Dt).call(this,true);}g(this,Q,e(this,Q)+e$1[i]),r&&(r.entrySize=s,r.totalCalculatedSize=e(this,Q));});},gt=new WeakMap,xt=new WeakMap,Ut=new WeakMap,ht=function*({allowStale:e$1=this.allowStale}={}){if(e(this,R))for(let i=e(this,D);!(!h(this,a,Mt).call(this,i)||((e$1||!e(this,K).call(this,i))&&(yield i),i===e(this,F)));)i=e(this,W)[i];},ct=function*({allowStale:e$1=this.allowStale}={}){if(e(this,R))for(let i=e(this,F);!(!h(this,a,Mt).call(this,i)||((e$1||!e(this,K).call(this,i))&&(yield i),i===e(this,D)));)i=e(this,j)[i];},Mt=function(e$1){return e$1!==void 0&&e(this,U).get(e(this,x)[e$1])===e$1},Dt=function(e$1){var n;let i$1=e(this,F),s=e(this,x)[i$1],r=e(this,f)[i$1];return e(this,pt)&&h(this,a,b).call(this,r)?r.__abortController.abort(new Error("evicted")):(e(this,it)||e(this,P))&&(e(this,it)&&((n=e(this,B))==null||n.call(this,r,s,"evict")),e(this,P)&&e(this,C)?.push([r,s,"evict"])),e(this,gt).call(this,i$1),e(this,H)?.[i$1]&&(clearTimeout(e(this,H)[i$1]),e(this,H)[i$1]=void 0),e$1&&(e(this,x)[i$1]=void 0,e(this,f)[i$1]=void 0,e(this,Z).push(i$1)),e(this,R)===1?(g(this,F,g(this,D,0)),e(this,Z).length=0):g(this,F,e(this,j)[i$1]),e(this,U).delete(s),i(this,R)._--,i$1},Ct=function(e$1,i,s,r){let n=i===void 0?void 0:e(this,f)[i];if(h(this,a,b).call(this,n))return n;let o=new Nt,{signal:l}=s;l?.addEventListener("abort",()=>o.abort(l.reason),{signal:o.signal});let c={signal:o.signal,options:s,context:r},v=(E,y=false)=>{let{aborted:m}=o.signal,u=s.ignoreFetchAbort&&E!==void 0,w=s.ignoreFetchAbort||!!(s.allowStaleOnFetchAbort&&E!==void 0);if(s.status&&(m&&!y?(s.status.fetchAborted=true,s.status.fetchError=o.signal.reason,u&&(s.status.fetchAbortIgnored=true)):s.status.fetchResolved=true),m&&!u&&!y)return S(o.signal.reason,w);let T=G,d=e(this,f)[i];return (d===G||u&&y&&d===void 0)&&(E===void 0?T.__staleWhileFetching!==void 0?e(this,f)[i]=T.__staleWhileFetching:h(this,a,dt).call(this,e$1,"fetch"):(s.status&&(s.status.fetchUpdated=true),this.set(e$1,E,c.options))),E},L=E=>(s.status&&(s.status.fetchRejected=true,s.status.fetchError=E),S(E,false)),S=(E,y)=>{let{aborted:m}=o.signal,u=m&&s.allowStaleOnFetchAbort,w=u||s.allowStaleOnFetchRejection,T=w||s.noDeleteOnFetchRejection,d=G;if(e(this,f)[i]===G&&(!T||!y&&d.__staleWhileFetching===void 0?h(this,a,dt).call(this,e$1,"fetch"):u||(e(this,f)[i]=d.__staleWhileFetching)),w)return s.status&&d.__staleWhileFetching!==void 0&&(s.status.returnedStale=true),d.__staleWhileFetching;if(d.__returned===d)throw E},ot=(E,y)=>{var u;let m=(u=e(this,St))==null?void 0:u.call(this,e$1,n,c);m&&m instanceof Promise&&m.then(w=>E(w===void 0?void 0:w),y),o.signal.addEventListener("abort",()=>{(!s.ignoreFetchAbort||s.allowStaleOnFetchAbort)&&(E(void 0),s.allowStaleOnFetchAbort&&(E=w=>v(w,true)));});};s.status&&(s.status.fetchDispatched=true);let G=new Promise(ot).then(v,L),$=Object.assign(G,{__abortController:o,__staleWhileFetching:n,__returned:void 0});return i===void 0?(this.set(e$1,$,{...c.options,status:void 0}),i=e(this,U).get(e$1)):e(this,f)[i]=$,$},b=function(e$1){if(!e(this,pt))return false;let i=e$1;return !!i&&i instanceof Promise&&i.hasOwnProperty("__staleWhileFetching")&&i.__abortController instanceof Nt},zt=function(e$1,i){e(this,W)[i]=e$1,e(this,j)[e$1]=i;},At=function(e$1){e$1!==e(this,D)&&(e$1===e(this,F)?g(this,F,e(this,j)[e$1]):h(this,a,zt).call(this,e(this,W)[e$1],e(this,j)[e$1]),h(this,a,zt).call(this,e(this,D),e$1),g(this,D,e$1));},dt=function(e$1,i$1){var r,n;let s=false;if(e(this,R)!==0){let o=e(this,U).get(e$1);if(o!==void 0)if(e(this,H)?.[o]&&(clearTimeout(e(this,H)?.[o]),e(this,H)[o]=void 0),s=true,e(this,R)===1)h(this,a,Gt).call(this,i$1);else {e(this,gt).call(this,o);let l=e(this,f)[o];if(h(this,a,b).call(this,l)?l.__abortController.abort(new Error("deleted")):(e(this,it)||e(this,P))&&(e(this,it)&&((r=e(this,B))==null||r.call(this,l,e$1,i$1)),e(this,P)&&e(this,C)?.push([l,e$1,i$1])),e(this,U).delete(e$1),e(this,x)[o]=void 0,e(this,f)[o]=void 0,o===e(this,D))g(this,D,e(this,W)[o]);else if(o===e(this,F))g(this,F,e(this,j)[o]);else {let c=e(this,W)[o];e(this,j)[c]=e(this,j)[o];let v=e(this,j)[o];e(this,W)[v]=e(this,W)[o];}i(this,R)._--,e(this,Z).push(o);}}if(e(this,P)&&e(this,C)?.length){let o=e(this,C),l;for(;l=o?.shift();)(n=e(this,X))==null||n.call(this,...l);}return s},Gt=function(e$1){var i,s;for(let r of h(this,a,ct).call(this,{allowStale:true})){let n=e(this,f)[r];if(h(this,a,b).call(this,n))n.__abortController.abort(new Error("deleted"));else {let o=e(this,x)[r];e(this,it)&&((i=e(this,B))==null||i.call(this,n,o,e$1)),e(this,P)&&e(this,C)?.push([n,o,e$1]);}}if(e(this,U).clear(),e(this,f).fill(void 0),e(this,x).fill(void 0),e(this,Y)&&e(this,et)){e(this,Y).fill(0),e(this,et).fill(0);for(let r of e(this,H)??[])r!==void 0&&clearTimeout(r);e(this,H)?.fill(void 0);}if(e(this,tt)&&e(this,tt).fill(0),g(this,F,0),g(this,D,0),e(this,Z).length=0,g(this,Q,0),g(this,R,0),e(this,P)&&e(this,C)){let r=e(this,C),n;for(;n=r?.shift();)(s=e(this,X))==null||s.call(this,...n);}},Et);var It=class{cache;map=new Map;constructor(e){this.cache=new Zt({max:e.cacheSize}),this.map=new Map;}get[Symbol.iterator](){return this.map[Symbol.iterator]}get[Symbol.toStringTag](){return this.map[Symbol.toStringTag]}clear(){this.cache.clear(),this.map.clear();}delete(e){let i=this.map.delete(e);return i&&this.cache.delete(e),i}get forEach(){return this.map.forEach}get(e){let i=this.cache.get(e);return i||this.map.get(e)}has(e){return this.map.has(e)}set(e,i){return this.map.set(e,i),this.cache.set(e,i),this}get size(){return this.map.size}entries(){return this.map.entries()}keys(){return this.map.keys()}values(){return this.map.values()}};var Ot="1.9.0";var Vt={version:Ot};var Wt="__game_layer__";var pe={CURRENT_DIALOGUE_MEMORY_KEY:"dialogue",LAST_DIALOGUE_ADDED_IN_STEP_MEMORY_KEY:"dialogue:step_counter",CURRENT_MENU_OPTIONS_MEMORY_KEY:"choice:options",LAST_MENU_OPTIONS_ADDED_IN_STEP_MEMORY_KEY:"choice:step_counter",CURRENT_INPUT_VALUE_MEMORY_KEY:"input:value",LAST_INPUT_ADDED_IN_STEP_MEMORY_KEY:"input:step_counter",CURRENT_INPUT_INFO_MEMORY_KEY:"input:info",CHARACTER_CATEGORY_KEY:"character",ADD_NEXT_DIALOG_TEXT_INTO_THE_CURRENT_DIALOG_FLAG_KEY:"___glue___",OPENED_LABELS_COUNTER_KEY:"label:opened",ALL_CHOICES_MADE_KEY:"choices:made",CURRENT_STEP_TIMES_COUNTER_KEY:"label:history",LAST_STEP_GLUED:"glue:last_step"};var ie={};var Yt={};b$1(Yt,{createExportableElement:()=>se});var wt;(r=>(r.log=(n,...o)=>console.log(`[Pixi\u2019VN] ${n}`,...o),r.warn=(n,...o)=>console.warn(`[Pixi\u2019VN] ${n}`,...o),r.error=(n,...o)=>console.error(`[Pixi\u2019VN] ${n}`,...o),r.info=(n,...o)=>console.info(`[Pixi\u2019VN] ${n}`,...o)))(wt||={});function se(g){try{if(typeof g>"u")return g;let e=JSON.stringify(g);return JSON.parse(e)}catch(e){throw wt.error("Error creating exportable element",g,e),new PixiError("not_json_serializable","Error creating exportable element")}}var fe=typeof window<"u"&&typeof document<"u",re=[" _______ _ _ _ ____ ____ ____ _____ ","|_ __ \\ (_) (_) | | |_ _| |_ _||_ \\|_ _|"," | |__) |__ _ __ __ \\_| \\ \\ / / | \\ | | "," | ___/[ | [ \\ [ ][ | \\ \\ / / | |\\ \\| | "," _| |_ | | > ' < | | \\ ' / _| |_\\ |_ ",`|_____| [___][__]\`\\_][___] \\_/ |_____|\\____| v${Vt.version}`],oe=31,me="background:#2f90da;color:#fff;font-weight:bold;",ge="background:#c832bb;color:#fff;font-weight:bold;",_e="background:transparent;font-weight:bold;",Ht=` v${Vt.version}`;function ne(){if(!fe)return;let g=[],e=[];for(let i=0;i<re.length;i++){let s=re[i],r=s.endsWith(Ht),n=r?s.slice(0,-Ht.length):s,o=n.slice(0,oe),l=n.slice(oe),c=r?"%c%s%c%s%c%s":"%c%s%c%s";g.push(c),e.push(me,o,ge,l),r&&e.push(_e,Ht);}console.info(g.join(`
2
+ `),...e);}function Kt(){let g=window.location.pathname+window.location.hash;return g.includes("#")&&(g=g.split("#")[1]),g}ne();var ae;(m=>{async function g(u,w,T){if(GameUnifier.init({navigate:w?.navigate,getCurrentGameStepState:()=>{let d=M.canvas.isInitialized?M.canvas.export():{};return {path:Kt(),storage:z.storage.export(),canvas:d,sound:ut.sound.export(),labelIndex:O.NarrationManagerStatic.currentLabelStepIndex||0,openedLabels:O.narration.openedLabels}},restoreGameStepState:async(d,A)=>{st.HistoryManagerStatic._originalStepData=d,O.NarrationManagerStatic.openedLabels=d.openedLabels,z.storage.restore(d.storage);try{M.canvas.isInitialized&&await M.canvas.restore(d.canvas),await ut.sound.restore(d.sound);}catch(I){wt.error("Error restoring game step state:",I);}await A(d.path);},getStepCounter:()=>O.narration.stepCounter,setStepCounter:d=>{O.NarrationManagerStatic._stepCounter=d;},getOpenedLabels:()=>O.narration.openedLabels.length,addHistoryItem:(d,A)=>st.stepHistory.add(d,A),getCharacter:d=>kt.RegisteredCharacters.get(d),processNavigationRequests:(d,A)=>{let I=d,k=Promise.resolve();return d>0?(I--,k=O.narration.continue(A)):d<0&&(I=0,k=st.stepHistory.back(A,{steps:d*-1})),{newValue:I,result:k}},animate:(d,A,I,k)=>motion.animate(d,A,I,k),getVariable:(d,A)=>z.StorageRegistry.getVariable(d,A),setVariable:(d,A,I)=>z.StorageRegistry.setVariable(d,A,I),removeVariable:(d,A)=>z.StorageRegistry.removeVariable(d,A),getFlag:d=>z.storage.flags.get(d),setFlag:(d,A)=>z.storage.flags.set(d,A),onLabelClosing:d=>z.StorageRegistry.clearOldTempVariables(d)}),!u||!w){wt.warn("The canvas element or options are not defined. The canvas will not be initialized.");return}return await M.canvas.init(u,w,T)}m.init=g;function e(){z.storage.clear(),M.canvas.isInitialized&&M.canvas.clear(),ut.sound.clear(),O.narration.clear(),st.stepHistory.clear();}m.clear=e;function i(){let u=M.canvas.isInitialized?M.canvas.export():{};return {pixivn_version:Ot,stepData:O.narration.export(),storageData:z.storage.export(),canvasData:u,soundData:ut.sound.export(),historyData:st.stepHistory.export(),path:Kt()}}m.exportGameState=i;async function s(u){st.stepHistory.restore(u.historyData);let w=st.stepHistory.lastKey;if(typeof w=="number"){let T=st.stepHistory.stepsInfoMap.get(w)||null;await O.narration.restore(u.stepData,T);}z.storage.restore(u.storageData);try{M.canvas.isInitialized&&await M.canvas.restore(u.canvasData),await ut.sound.restore(u.soundData);}catch{}await GameUnifier.navigate(u.path);}m.restoreGameState=s;async function r(u,w){return m.clear(),await O.narration.call(u,w)}m.start=r;function n(u){return JSON.parse(u)}m.jsonToGameState=n;function o(u){GameUnifier.onEnd=u;}m.onEnd=o;function l(u){return GameUnifier.addOnError(u)}m.addOnError=l;function c(u){return GameUnifier.removeOnError(u)}m.removeOnError=c;function v(u){O.NarrationManagerStatic.onStepStart=u;}m.onStepStart=v;function L(u){O.NarrationManagerStatic.onLoadingLabel=u;}m.onLoadingLabel=L;function S(u){O.NarrationManagerStatic.onStepEnd=u;}m.onStepEnd=S;function ot(u){O.NarrationManagerStatic.onLabelStarting=u;}m.onLabelStarting=ot;function G(u){O.NarrationManagerStatic.onLabelClosing=u;}m.onLabelClosing=G;function $(u){GameUnifier.navigate=u;}m.onNavigate=$;function E(u){return GameUnifier.addOnPreContinue(u)}m.addOnPreContinue=E;function y(u){return GameUnifier.removeOnPreContinue(u)}m.removeOnPreContinue=y;})(ae||={});var ke={characterUtils:kt,canvasUtils:M,narrationUtils:O,soundUtils:ut,CANVAS_APP_GAME_LAYER_ALIAS:Wt,PIXIVN_VERSION:Ot,...Yt,...ie,canvas:M.canvas,narration:O.narration,sound:ut.sound,storage:z.storage,history:st.stepHistory,Game:ae,GameUnifier:GameUnifier};export{Wt as CANVAS_APP_GAME_LAYER_ALIAS,It as CachedMap,ae as Game,Ot as PIXIVN_VERSION,pe as SYSTEM_RESERVED_STORAGE_KEYS,se as createExportableElement,ke as default};
package/dist/motion.cjs CHANGED
@@ -1 +1 @@
1
- 'use strict';var canvas=require('@drincs/pixi-vn/canvas'),H=require('@drincs/pixi-vn/pixi.js'),motion=require('motion'),core=require('@drincs/pixi-vn/core');function _interopDefault(e){return e&&e.__esModule?e:{default:e}}var H__default=/*#__PURE__*/_interopDefault(H);var G=Object.create;var z=Object.defineProperty;var Q=Object.getOwnPropertyDescriptor;var Z=Object.getOwnPropertyNames;var tt=Object.getPrototypeOf,et=Object.prototype.hasOwnProperty;var q=(s=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(s,{get:(e,a)=>(typeof require<"u"?require:e)[a]}):s)(function(s){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+s+'" is not supported')});var D=(s,e)=>()=>(e||s((e={exports:{}}).exports,e),e.exports);var nt=(s,e,a,i)=>{if(e&&typeof e=="object"||typeof e=="function")for(let n of Z(e))!et.call(s,n)&&n!==a&&z(s,n,{get:()=>e[n],enumerable:!(i=Q(e,n))||i.enumerable});return s};var it=(s,e,a)=>(a=s!=null?G(tt(s)):{},nt(z(a,"default",{value:s,enumerable:true}),s));var X=D((W,U)=>{(function(s,e){typeof W=="object"?U.exports=W=e():typeof define=="function"&&define.amd?define([],e):s.CryptoJS=e();})(W,function(){var s=s||(function(e,a){var i;if(typeof window<"u"&&window.crypto&&(i=window.crypto),typeof self<"u"&&self.crypto&&(i=self.crypto),typeof globalThis<"u"&&globalThis.crypto&&(i=globalThis.crypto),!i&&typeof window<"u"&&window.msCrypto&&(i=window.msCrypto),!i&&typeof global<"u"&&global.crypto&&(i=global.crypto),!i&&typeof q=="function")try{i=q("crypto");}catch{}var n=function(){if(i){if(typeof i.getRandomValues=="function")try{return i.getRandomValues(new Uint32Array(1))[0]}catch{}if(typeof i.randomBytes=="function")try{return i.randomBytes(4).readInt32LE()}catch{}}throw new Error("Native crypto module could not be used to get secure random number.")},o=Object.create||(function(){function t(){}return function(r){var p;return t.prototype=r,p=new t,t.prototype=null,p}})(),c={},h=c.lib={},d=h.Base=(function(){return {extend:function(t){var r=o(this);return t&&r.mixIn(t),(!r.hasOwnProperty("init")||this.init===r.init)&&(r.init=function(){r.$super.init.apply(this,arguments);}),r.init.prototype=r,r.$super=this,r},create:function(){var t=this.extend();return t.init.apply(t,arguments),t},init:function(){},mixIn:function(t){for(var r in t)t.hasOwnProperty(r)&&(this[r]=t[r]);t.hasOwnProperty("toString")&&(this.toString=t.toString);},clone:function(){return this.init.prototype.extend(this)}}})(),u=h.WordArray=d.extend({init:function(t,r){t=this.words=t||[],r!=a?this.sigBytes=r:this.sigBytes=t.length*4;},toString:function(t){return (t||l).stringify(this)},concat:function(t){var r=this.words,p=t.words,f=this.sigBytes,g=t.sigBytes;if(this.clamp(),f%4)for(var v=0;v<g;v++){var k=p[v>>>2]>>>24-v%4*8&255;r[f+v>>>2]|=k<<24-(f+v)%4*8;}else for(var O=0;O<g;O+=4)r[f+O>>>2]=p[O>>>2];return this.sigBytes+=g,this},clamp:function(){var t=this.words,r=this.sigBytes;t[r>>>2]&=4294967295<<32-r%4*8,t.length=e.ceil(r/4);},clone:function(){var t=d.clone.call(this);return t.words=this.words.slice(0),t},random:function(t){for(var r=[],p=0;p<t;p+=4)r.push(n());return new u.init(r,t)}}),m=c.enc={},l=m.Hex={stringify:function(t){for(var r=t.words,p=t.sigBytes,f=[],g=0;g<p;g++){var v=r[g>>>2]>>>24-g%4*8&255;f.push((v>>>4).toString(16)),f.push((v&15).toString(16));}return f.join("")},parse:function(t){for(var r=t.length,p=[],f=0;f<r;f+=2)p[f>>>3]|=parseInt(t.substr(f,2),16)<<24-f%8*4;return new u.init(p,r/2)}},A=m.Latin1={stringify:function(t){for(var r=t.words,p=t.sigBytes,f=[],g=0;g<p;g++){var v=r[g>>>2]>>>24-g%4*8&255;f.push(String.fromCharCode(v));}return f.join("")},parse:function(t){for(var r=t.length,p=[],f=0;f<r;f++)p[f>>>2]|=(t.charCodeAt(f)&255)<<24-f%4*8;return new u.init(p,r)}},b=m.Utf8={stringify:function(t){try{return decodeURIComponent(escape(A.stringify(t)))}catch{throw new Error("Malformed UTF-8 data")}},parse:function(t){return A.parse(unescape(encodeURIComponent(t)))}},x=h.BufferedBlockAlgorithm=d.extend({reset:function(){this._data=new u.init,this._nDataBytes=0;},_append:function(t){typeof t=="string"&&(t=b.parse(t)),this._data.concat(t),this._nDataBytes+=t.sigBytes;},_process:function(t){var r,p=this._data,f=p.words,g=p.sigBytes,v=this.blockSize,k=v*4,O=g/k;t?O=e.ceil(O):O=e.max((O|0)-this._minBufferSize,0);var S=O*v,_=e.min(S*4,g);if(S){for(var E=0;E<S;E+=v)this._doProcessBlock(f,E);r=f.splice(0,S),p.sigBytes-=_;}return new u.init(r,_)},clone:function(){var t=d.clone.call(this);return t._data=this._data.clone(),t},_minBufferSize:0});h.Hasher=x.extend({cfg:d.extend(),init:function(t){this.cfg=this.cfg.extend(t),this.reset();},reset:function(){x.reset.call(this),this._doReset();},update:function(t){return this._append(t),this._process(),this},finalize:function(t){t&&this._append(t);var r=this._doFinalize();return r},blockSize:512/32,_createHelper:function(t){return function(r,p){return new t.init(p).finalize(r)}},_createHmacHelper:function(t){return function(r,p){return new y.HMAC.init(t,p).finalize(r)}}});var y=c.algo={};return c})(Math);return s});});var $=D((R,N)=>{(function(s,e){typeof R=="object"?N.exports=R=e(X()):typeof define=="function"&&define.amd?define(["./core"],e):e(s.CryptoJS);})(R,function(s){return (function(){var e=s,a=e.lib,i=a.WordArray,n=a.Hasher,o=e.algo,c=[],h=o.SHA1=n.extend({_doReset:function(){this._hash=new i.init([1732584193,4023233417,2562383102,271733878,3285377520]);},_doProcessBlock:function(d,u){for(var m=this._hash.words,l=m[0],A=m[1],b=m[2],x=m[3],T=m[4],y=0;y<80;y++){if(y<16)c[y]=d[u+y]|0;else {var t=c[y-3]^c[y-8]^c[y-14]^c[y-16];c[y]=t<<1|t>>>31;}var r=(l<<5|l>>>27)+T+c[y];y<20?r+=(A&b|~A&x)+1518500249:y<40?r+=(A^b^x)+1859775393:y<60?r+=(A&b|A&x|b&x)-1894007588:r+=(A^b^x)-899497514,T=x,x=b,b=A<<30|A>>>2,A=l,l=r;}m[0]=m[0]+l|0,m[1]=m[1]+A|0,m[2]=m[2]+b|0,m[3]=m[3]+x|0,m[4]=m[4]+T|0;},_doFinalize:function(){var d=this._data,u=d.words,m=this._nDataBytes*8,l=d.sigBytes*8;return u[l>>>5]|=128<<24-l%32,u[(l+64>>>9<<4)+14]=Math.floor(m/4294967296),u[(l+64>>>9<<4)+15]=m,d.sigBytes=u.length*4,this._process(),this._hash},clone:function(){var d=n.clone.call(this);return d._hash=this._hash.clone(),d}});e.SHA1=n._createHelper(h),e.HmacSHA1=n._createHmacHelper(h);})(),s.SHA1});});var j=s=>e=>{let a=({lastTime:i})=>e(i);return {start:(i=true)=>{s.add(a),s.start();},stop:()=>s.remove(a),now:()=>s.lastTime}};function B(s,e,a){if(Array.isArray(s)&&Array.isArray(s[0])){e&&"repeat"in e&&e?.repeat===null&&(e.repeat=1/0),s.forEach(c=>{if(Array.isArray(c)&&c.length===3){let[h,d,u]=c;u&&"repeat"in u&&u?.repeat===null&&(u.repeat=1/0);}});let{ticker:i=new H__default.default.Ticker,driver:n=j(i),...o}=e||{};return motion.animate(s,{driver:n,...o})}else {a&&"repeat"in a&&a?.repeat===null&&(a.repeat=1/0);let{ticker:i=new H__default.default.Ticker,driver:n=j(i),...o}=a||{};return motion.animate(s,e,{driver:n,...o})}}function rt(s,e){let{ticker:a=new H__default.default.Ticker,driver:i=j(a),repeat:n,...o}=e||{},c={x:0},h=[],d=[],u=0;s.forEach((b,x)=>{let{onComplete:T,onPlay:y,delay:t=0,duration:r=.3,...p}=b,f=typeof t=="function"?t(0,1):t,g=u+f,v=g+r;h.push({start:g,end:v,onPlay:y,onComplete:T}),d.push([c,{x:x+1},{...p,delay:t,duration:r}]),u=v;});let m=u,l=B(d,{...o,repeat:n,driver:i});if(h.length>0&&m>0){let k=function(){if(r)return;for(t+=a.deltaMS/1e3;!r&&t>=m;){if(f(),y++,y>=x){v();return}t-=m;}let S=g(t);S===-1?T>=0&&f():S!==T&&p(S);};let b=n===null?1/0:n,x=b===void 0?1:b+1,T=-1,y=0,t=0,r=false,p=S=>{T>=0&&h[T].onComplete?.(),T=S,h[T].onPlay?.();},f=()=>{T>=0&&h[T].onComplete?.(),T=-1;},g=S=>{for(let _=0;_<h.length;_++){if(S<h[_].start)return -1;if(S<h[_].end)return _}return h.length-1},v=()=>{r=true,a.remove(k);};a.add(k);let O=l.stop.bind(l);l.stop=()=>{v(),O();};}return l}var L=it($());var C=class{constructor(e,a){let{duration:i,priority:n,id:o=this.generateTickerId(a),canvasElementAliases:c=[]}=a||{};this._args=e,this.duration=i,this.priority=n,this.id=o,this.canvasElementAliases=c;}id;_args;get args(){return {...this._args,time:this._animation?.time}}duration;priority;ticker=new H__default.default.Ticker;_animation;stopped=false;_paused=false;canvasElementAliases=[];getItemByAlias(e){if(!this.canvasElementAliases.includes(e))return;let a=canvas.canvas.find(e);if(a)return a}generateTickerId(...e){try{return (0,L.default)(JSON.stringify(e)).toString()+"_motion_"+Math.random().toString(36).substring(7)}catch(a){throw new core.PixiError("not_json_serializable",`Error to generate ticker id: ${a}`)}}timeout=50;async complete(){this.animation.complete(),await new Promise(e=>setTimeout(e,this.timeout));}stop(){this.stopped=true,this.animation.stop();}start(){this.args.options?.autoplay!==false&&(this._paused=false,this.animation.play());}onComplete=()=>{let e=this.id,a=this._args.options?.aliasToRemoveAfter||[];typeof a=="string"&&(a=[a]);let i=this._args.options?.tickerAliasToResume||[];typeof i=="string"&&(i=[i]);let n=this._args.options?.tickerIdToResume||[];typeof n=="string"&&(n=[n]),canvas.canvas.onTickerComplete(e,{aliasToRemoveAfter:a,tickerAliasToResume:i,tickerIdToResume:n,stopTicker:false});};createItem(e){return new Proxy({alias:e},{set:({alias:a},i,n)=>{if(this.stopped||this._paused||this._args.startState&&this._args.startState[i]===n)return true;let o=this.getItemByAlias(a);if(!o)return true;switch(i){case "pivotX":o.pivot.x=n;break;case "pivotY":o.pivot.y=n;break;case "scaleX":o.scale.x=n;break;case "scaleY":o.scale.y=n;break;default:o[i]=n;break}return true},get:({alias:a},i)=>{if(this._args.startState||(this._args.startState={}),i in this._args.startState)return this._args.startState[i];let n=this.getItemByAlias(a);if(!n)return;let o;switch(i){case "pivotX":o=n.pivot.x;break;case "pivotY":o=n.pivot.y;break;case "scaleX":o=n.scale.x;break;case "scaleY":o=n.scale.y;break;default:o=n[i];break}return this._args.startState={...this._args.startState,[i]:o},o},has:({alias:a},i)=>{let n=this.getItemByAlias(a);if(!n)return false;switch(i){case "pivotX":return "pivot"in n&&"x"in n.pivot;case "pivotY":return "pivot"in n&&"y"in n.pivot;case "scaleX":return "scale"in n&&"x"in n.scale;case "scaleY":return "scale"in n&&"y"in n.scale;default:return i in n}},ownKeys:({alias:a})=>{let i=this.getItemByAlias(a);return i?Object.keys(i):[]}})}pause(){this.animation&&(this._paused=true,this.animation.pause());}play(){this._paused=false,this.animation.play();}get paused(){return this.animation?this.animation.state==="paused":true}};var I=class extends C{get animation(){let e=this._animation;if(e)return e;let a=this.canvasElementAliases[0],i=this.createItem(a),n=this._args.sequence.map((o,c)=>[i,o[0],{...o[1]||{},ticker:this.ticker,onComplete:c===this._args.sequence.length-1?()=>this.onComplete():void 0}]);return e=B(n,this._args.options),this._args.time&&(this.animation.time=this._args.time),this._animation=e,e}alias="motion-sequence"};var w=class extends C{get animation(){let e=this._animation;if(e)return e;let a=this.canvasElementAliases.map(i=>this.createItem(i));return e=B(a,this._args.keyframes,{...this._args.options,onComplete:()=>this.onComplete(),ticker:this.ticker}),this._args.time&&(e.time=this._args.time),this._animation=e,e}alias="motion"};var P;(n=>(n.log=(o,...c)=>console.log(`[Pixi\u2019VN] ${o}`,...c),n.warn=(o,...c)=>console.warn(`[Pixi\u2019VN] ${o}`,...c),n.error=(o,...c)=>console.error(`[Pixi\u2019VN] ${o}`,...c),n.info=(o,...c)=>console.info(`[Pixi\u2019VN] ${o}`,...c)))(P||={});function M(s){try{if(typeof s>"u")return s;let e=JSON.stringify(s);return JSON.parse(e)}catch(e){throw P.error("Error creating exportable element",s,e),new core.PixiError("not_json_serializable","Error creating exportable element")}}var F;(e=>{function s(a,i,n,o){try{i=M(i);}catch(l){throw P.error("animate keyframes cannot contain functions or classes"),l}try{n=M(n);}catch(l){throw P.error("animate options cannot contain functions or classes"),l}let c=[];typeof a=="string"?c=[a]:Array.isArray(a)?c=a.map(l=>typeof l=="string"?l:l.label):c=[a.label];let h;Array.isArray(i)?h=new I({sequence:i,options:n},{priority:o,canvasElementAliases:c}):h=new w({keyframes:i,options:n},{priority:o,canvasElementAliases:c});let d=canvas.canvas.addTicker(c,h),{forceCompleteBeforeNext:u}=n||{},{completeOnContinue:m=u}=n||{};return d&&m&&canvas.canvas.completeTickerOnStepEnd({id:d}),d}e.animate=s;})(F||={});var ct=F;canvas.RegisteredTickers.add(w,"motion");canvas.RegisteredTickers.add(I,"motion-sequence");exports.animate=B;exports.motion=ct;exports.motionDriver=j;exports.timeline=rt;
1
+ 'use strict';var canvas=require('@drincs/pixi-vn/canvas'),H=require('@drincs/pixi-vn/pixi.js'),motion=require('motion'),core=require('@drincs/pixi-vn/core');function _interopDefault(e){return e&&e.__esModule?e:{default:e}}var H__default=/*#__PURE__*/_interopDefault(H);var G=Object.create;var z=Object.defineProperty;var Q=Object.getOwnPropertyDescriptor;var Z=Object.getOwnPropertyNames;var tt=Object.getPrototypeOf,et=Object.prototype.hasOwnProperty;var q=(s=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(s,{get:(e,a)=>(typeof require<"u"?require:e)[a]}):s)(function(s){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+s+'" is not supported')});var D=(s,e)=>()=>(e||s((e={exports:{}}).exports,e),e.exports);var nt=(s,e,a,i)=>{if(e&&typeof e=="object"||typeof e=="function")for(let n of Z(e))!et.call(s,n)&&n!==a&&z(s,n,{get:()=>e[n],enumerable:!(i=Q(e,n))||i.enumerable});return s};var it=(s,e,a)=>(a=s!=null?G(tt(s)):{},nt(z(a,"default",{value:s,enumerable:true}),s));var X=D((W,U)=>{(function(s,e){typeof W=="object"?U.exports=W=e():typeof define=="function"&&define.amd?define([],e):s.CryptoJS=e();})(W,function(){var s=s||(function(e,a){var i;if(typeof window<"u"&&window.crypto&&(i=window.crypto),typeof self<"u"&&self.crypto&&(i=self.crypto),typeof globalThis<"u"&&globalThis.crypto&&(i=globalThis.crypto),!i&&typeof window<"u"&&window.msCrypto&&(i=window.msCrypto),!i&&typeof global<"u"&&global.crypto&&(i=global.crypto),!i&&typeof q=="function")try{i=q("crypto");}catch{}var n=function(){if(i){if(typeof i.getRandomValues=="function")try{return i.getRandomValues(new Uint32Array(1))[0]}catch{}if(typeof i.randomBytes=="function")try{return i.randomBytes(4).readInt32LE()}catch{}}throw new Error("Native crypto module could not be used to get secure random number.")},o=Object.create||(function(){function t(){}return function(r){var m;return t.prototype=r,m=new t,t.prototype=null,m}})(),c={},u=c.lib={},h=u.Base=(function(){return {extend:function(t){var r=o(this);return t&&r.mixIn(t),(!r.hasOwnProperty("init")||this.init===r.init)&&(r.init=function(){r.$super.init.apply(this,arguments);}),r.init.prototype=r,r.$super=this,r},create:function(){var t=this.extend();return t.init.apply(t,arguments),t},init:function(){},mixIn:function(t){for(var r in t)t.hasOwnProperty(r)&&(this[r]=t[r]);t.hasOwnProperty("toString")&&(this.toString=t.toString);},clone:function(){return this.init.prototype.extend(this)}}})(),l=u.WordArray=h.extend({init:function(t,r){t=this.words=t||[],r!=a?this.sigBytes=r:this.sigBytes=t.length*4;},toString:function(t){return (t||v).stringify(this)},concat:function(t){var r=this.words,m=t.words,p=this.sigBytes,y=t.sigBytes;if(this.clamp(),p%4)for(var g=0;g<y;g++){var k=m[g>>>2]>>>24-g%4*8&255;r[p+g>>>2]|=k<<24-(p+g)%4*8;}else for(var O=0;O<y;O+=4)r[p+O>>>2]=m[O>>>2];return this.sigBytes+=y,this},clamp:function(){var t=this.words,r=this.sigBytes;t[r>>>2]&=4294967295<<32-r%4*8,t.length=e.ceil(r/4);},clone:function(){var t=h.clone.call(this);return t.words=this.words.slice(0),t},random:function(t){for(var r=[],m=0;m<t;m+=4)r.push(n());return new l.init(r,t)}}),f=c.enc={},v=f.Hex={stringify:function(t){for(var r=t.words,m=t.sigBytes,p=[],y=0;y<m;y++){var g=r[y>>>2]>>>24-y%4*8&255;p.push((g>>>4).toString(16)),p.push((g&15).toString(16));}return p.join("")},parse:function(t){for(var r=t.length,m=[],p=0;p<r;p+=2)m[p>>>3]|=parseInt(t.substr(p,2),16)<<24-p%8*4;return new l.init(m,r/2)}},A=f.Latin1={stringify:function(t){for(var r=t.words,m=t.sigBytes,p=[],y=0;y<m;y++){var g=r[y>>>2]>>>24-y%4*8&255;p.push(String.fromCharCode(g));}return p.join("")},parse:function(t){for(var r=t.length,m=[],p=0;p<r;p++)m[p>>>2]|=(t.charCodeAt(p)&255)<<24-p%4*8;return new l.init(m,r)}},b=f.Utf8={stringify:function(t){try{return decodeURIComponent(escape(A.stringify(t)))}catch{throw new Error("Malformed UTF-8 data")}},parse:function(t){return A.parse(unescape(encodeURIComponent(t)))}},x=u.BufferedBlockAlgorithm=h.extend({reset:function(){this._data=new l.init,this._nDataBytes=0;},_append:function(t){typeof t=="string"&&(t=b.parse(t)),this._data.concat(t),this._nDataBytes+=t.sigBytes;},_process:function(t){var r,m=this._data,p=m.words,y=m.sigBytes,g=this.blockSize,k=g*4,O=y/k;t?O=e.ceil(O):O=e.max((O|0)-this._minBufferSize,0);var S=O*g,_=e.min(S*4,y);if(S){for(var E=0;E<S;E+=g)this._doProcessBlock(p,E);r=p.splice(0,S),m.sigBytes-=_;}return new l.init(r,_)},clone:function(){var t=h.clone.call(this);return t._data=this._data.clone(),t},_minBufferSize:0});u.Hasher=x.extend({cfg:h.extend(),init:function(t){this.cfg=this.cfg.extend(t),this.reset();},reset:function(){x.reset.call(this),this._doReset();},update:function(t){return this._append(t),this._process(),this},finalize:function(t){t&&this._append(t);var r=this._doFinalize();return r},blockSize:512/32,_createHelper:function(t){return function(r,m){return new t.init(m).finalize(r)}},_createHmacHelper:function(t){return function(r,m){return new d.HMAC.init(t,m).finalize(r)}}});var d=c.algo={};return c})(Math);return s});});var K=D((R,$)=>{(function(s,e){typeof R=="object"?$.exports=R=e(X()):typeof define=="function"&&define.amd?define(["./core"],e):e(s.CryptoJS);})(R,function(s){return (function(){var e=s,a=e.lib,i=a.WordArray,n=a.Hasher,o=e.algo,c=[],u=o.SHA1=n.extend({_doReset:function(){this._hash=new i.init([1732584193,4023233417,2562383102,271733878,3285377520]);},_doProcessBlock:function(h,l){for(var f=this._hash.words,v=f[0],A=f[1],b=f[2],x=f[3],T=f[4],d=0;d<80;d++){if(d<16)c[d]=h[l+d]|0;else {var t=c[d-3]^c[d-8]^c[d-14]^c[d-16];c[d]=t<<1|t>>>31;}var r=(v<<5|v>>>27)+T+c[d];d<20?r+=(A&b|~A&x)+1518500249:d<40?r+=(A^b^x)+1859775393:d<60?r+=(A&b|A&x|b&x)-1894007588:r+=(A^b^x)-899497514,T=x,x=b,b=A<<30|A>>>2,A=v,v=r;}f[0]=f[0]+v|0,f[1]=f[1]+A|0,f[2]=f[2]+b|0,f[3]=f[3]+x|0,f[4]=f[4]+T|0;},_doFinalize:function(){var h=this._data,l=h.words,f=this._nDataBytes*8,v=h.sigBytes*8;return l[v>>>5]|=128<<24-v%32,l[(v+64>>>9<<4)+14]=Math.floor(f/4294967296),l[(v+64>>>9<<4)+15]=f,h.sigBytes=l.length*4,this._process(),this._hash},clone:function(){var h=n.clone.call(this);return h._hash=this._hash.clone(),h}});e.SHA1=n._createHelper(u),e.HmacSHA1=n._createHmacHelper(u);})(),s.SHA1});});var j=s=>e=>{let a=({lastTime:i})=>e(i);return {start:(i=true)=>{s.add(a),s.start();},stop:()=>s.remove(a),now:()=>s.lastTime}};function B(s,e,a){if(Array.isArray(s)&&Array.isArray(s[0])){e&&"repeat"in e&&e?.repeat===null&&(e.repeat=1/0),s.forEach(c=>{if(Array.isArray(c)&&c.length===3){let[u,h,l]=c;l&&"repeat"in l&&l?.repeat===null&&(l.repeat=1/0);}});let{ticker:i=new H__default.default.Ticker,driver:n=j(i),...o}=e||{};return motion.animate(s,{driver:n,...o})}else {a&&"repeat"in a&&a?.repeat===null&&(a.repeat=1/0);let{ticker:i=new H__default.default.Ticker,driver:n=j(i),...o}=a||{};return motion.animate(s,e,{driver:n,...o})}}function rt(s,e){let{ticker:a=new H__default.default.Ticker,driver:i=j(a),repeat:n,...o}=e||{},c={x:0},u=[],h=[],l=0;s.forEach((b,x)=>{let{onComplete:T,onPlay:d,delay:t=0,duration:r=.3,...m}=b,p=typeof t=="function"?t(0,1):t,y=l+p,g=y+r;u.push({start:y,end:g,onPlay:d,onComplete:T}),h.push([c,{x:x+1},{...m,delay:t,duration:r}]),l=g;});let f=l,v=B(h,{...o,repeat:n,driver:i});if(u.length>0&&f>0){let k=function(){if(r)return;for(t+=a.deltaMS/1e3;!r&&t>=f;){if(p(),d++,d>=x){g();return}t-=f;}let S=y(t);S===-1?T>=0&&p():S!==T&&m(S);};let b=n===null?1/0:n,x=b===void 0?1:b+1,T=-1,d=0,t=0,r=false,m=S=>{T>=0&&u[T].onComplete?.(),T=S,u[T].onPlay?.();},p=()=>{T>=0&&u[T].onComplete?.(),T=-1;},y=S=>{for(let _=0;_<u.length;_++){if(S<u[_].start)return -1;if(S<u[_].end)return _}return u.length-1},g=()=>{r=true,a.remove(k);};a.add(k);let O=v.stop.bind(v);v.stop=()=>{g(),O();};}return v}var N=it(K());var C=class{constructor(e,a){let{duration:i,priority:n,id:o=this.generateTickerId(a),canvasElementAliases:c=[]}=a||{};this._args=e,this.duration=i,this.priority=n,this.id=o,this.canvasElementAliases=c;}id;_args;get args(){return {...this._args,time:this._animation?.time}}duration;priority;ticker=new H__default.default.Ticker;_animation;stopped=false;_paused=false;canvasElementAliases=[];getItemByAlias(e){if(!this.canvasElementAliases.includes(e))return;let a=canvas.canvas.find(e);if(a)return a}generateTickerId(...e){try{return (0,N.default)(JSON.stringify(e)).toString()+"_motion_"+Math.random().toString(36).substring(7)}catch(a){throw new core.PixiError("not_json_serializable",`Error to generate ticker id: ${a}`)}}timeout=50;async complete(){this.animation.complete(),await new Promise(e=>setTimeout(e,this.timeout));}stop(){this.stopped=true,this.animation.stop();}start(){this.args.options?.autoplay!==false&&(this._paused=false,this.animation.play());}onComplete=()=>{let e=this.id,a=this._args.options?.aliasToRemoveAfter||[];typeof a=="string"&&(a=[a]);let i=this._args.options?.tickerAliasToResume||[];typeof i=="string"&&(i=[i]);let n=this._args.options?.tickerIdToResume||[];typeof n=="string"&&(n=[n]),canvas.canvas.tickers.onComplete(e,{aliasToRemoveAfter:a,tickerAliasToResume:i,tickerIdToResume:n,stopTicker:false});};createItem(e){return new Proxy({alias:e},{set:({alias:a},i,n)=>{if(this.stopped||this._paused||this._args.startState&&this._args.startState[i]===n)return true;let o=this.getItemByAlias(a);if(!o)return true;switch(i){case "pivotX":o.pivot.x=n;break;case "pivotY":o.pivot.y=n;break;case "scaleX":o.scale.x=n;break;case "scaleY":o.scale.y=n;break;default:o[i]=n;break}return true},get:({alias:a},i)=>{if(this._args.startState||(this._args.startState={}),i in this._args.startState)return this._args.startState[i];let n=this.getItemByAlias(a);if(!n)return;let o;switch(i){case "pivotX":o=n.pivot.x;break;case "pivotY":o=n.pivot.y;break;case "scaleX":o=n.scale.x;break;case "scaleY":o=n.scale.y;break;default:o=n[i];break}return this._args.startState={...this._args.startState,[i]:o},o},has:({alias:a},i)=>{let n=this.getItemByAlias(a);if(!n)return false;switch(i){case "pivotX":return "pivot"in n&&"x"in n.pivot;case "pivotY":return "pivot"in n&&"y"in n.pivot;case "scaleX":return "scale"in n&&"x"in n.scale;case "scaleY":return "scale"in n&&"y"in n.scale;default:return i in n}},ownKeys:({alias:a})=>{let i=this.getItemByAlias(a);return i?Object.keys(i):[]}})}pause(){this.animation&&(this._paused=true,this.animation.pause());}play(){this._paused=false,this.animation.play();}get paused(){return this.animation?this.animation.state==="paused":true}};var I=class extends C{get animation(){let e=this._animation;if(e)return e;let a=this.canvasElementAliases[0],i=this.createItem(a),n=this._args.sequence.map((o,c)=>[i,o[0],{...o[1]||{},ticker:this.ticker,onComplete:c===this._args.sequence.length-1?()=>this.onComplete():void 0}]);return e=B(n,this._args.options),this._args.time&&(this.animation.time=this._args.time),this._animation=e,e}alias="motion-sequence"};var w=class extends C{get animation(){let e=this._animation;if(e)return e;let a=this.canvasElementAliases.map(i=>this.createItem(i));return e=B(a,this._args.keyframes,{...this._args.options,onComplete:()=>this.onComplete(),ticker:this.ticker}),this._args.time&&(e.time=this._args.time),this._animation=e,e}alias="motion"};var P;(n=>(n.log=(o,...c)=>console.log(`[Pixi\u2019VN] ${o}`,...c),n.warn=(o,...c)=>console.warn(`[Pixi\u2019VN] ${o}`,...c),n.error=(o,...c)=>console.error(`[Pixi\u2019VN] ${o}`,...c),n.info=(o,...c)=>console.info(`[Pixi\u2019VN] ${o}`,...c)))(P||={});function M(s){try{if(typeof s>"u")return s;let e=JSON.stringify(s);return JSON.parse(e)}catch(e){throw P.error("Error creating exportable element",s,e),new core.PixiError("not_json_serializable","Error creating exportable element")}}var F;(e=>{function s(a,i,n,o){try{i=M(i);}catch(f){throw P.error("animate keyframes cannot contain functions or classes"),f}try{n=M(n);}catch(f){throw P.error("animate options cannot contain functions or classes"),f}let c=[];typeof a=="string"?c=[a]:Array.isArray(a)?c=a.map(f=>typeof f=="string"?f:f.label):c=[a.label];let u;Array.isArray(i)?u=new I({sequence:i,options:n},{priority:o,canvasElementAliases:c}):u=new w({keyframes:i,options:n},{priority:o,canvasElementAliases:c});let h=canvas.canvas.tickers.add(c,u),{completeOnContinue:l}=n||{};return h&&l&&canvas.canvas.tickers.completeOnStepEnd({id:h}),h}e.animate=s;})(F||={});var ct=F;canvas.RegisteredTickers.add(w,"motion");canvas.RegisteredTickers.add(I,"motion-sequence");exports.animate=B;exports.motion=ct;exports.motionDriver=j;exports.timeline=rt;
package/dist/motion.mjs CHANGED
@@ -1 +1 @@
1
- import {RegisteredTickers,canvas}from'@drincs/pixi-vn/canvas';import H from'@drincs/pixi-vn/pixi.js';import {animate}from'motion';import {PixiError}from'@drincs/pixi-vn/core';var G=Object.create;var z=Object.defineProperty;var Q=Object.getOwnPropertyDescriptor;var Z=Object.getOwnPropertyNames;var tt=Object.getPrototypeOf,et=Object.prototype.hasOwnProperty;var q=(s=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(s,{get:(e,a)=>(typeof require<"u"?require:e)[a]}):s)(function(s){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+s+'" is not supported')});var D=(s,e)=>()=>(e||s((e={exports:{}}).exports,e),e.exports);var nt=(s,e,a,i)=>{if(e&&typeof e=="object"||typeof e=="function")for(let n of Z(e))!et.call(s,n)&&n!==a&&z(s,n,{get:()=>e[n],enumerable:!(i=Q(e,n))||i.enumerable});return s};var it=(s,e,a)=>(a=s!=null?G(tt(s)):{},nt(z(a,"default",{value:s,enumerable:true}),s));var X=D((W,U)=>{(function(s,e){typeof W=="object"?U.exports=W=e():typeof define=="function"&&define.amd?define([],e):s.CryptoJS=e();})(W,function(){var s=s||(function(e,a){var i;if(typeof window<"u"&&window.crypto&&(i=window.crypto),typeof self<"u"&&self.crypto&&(i=self.crypto),typeof globalThis<"u"&&globalThis.crypto&&(i=globalThis.crypto),!i&&typeof window<"u"&&window.msCrypto&&(i=window.msCrypto),!i&&typeof global<"u"&&global.crypto&&(i=global.crypto),!i&&typeof q=="function")try{i=q("crypto");}catch{}var n=function(){if(i){if(typeof i.getRandomValues=="function")try{return i.getRandomValues(new Uint32Array(1))[0]}catch{}if(typeof i.randomBytes=="function")try{return i.randomBytes(4).readInt32LE()}catch{}}throw new Error("Native crypto module could not be used to get secure random number.")},o=Object.create||(function(){function t(){}return function(r){var p;return t.prototype=r,p=new t,t.prototype=null,p}})(),c={},h=c.lib={},d=h.Base=(function(){return {extend:function(t){var r=o(this);return t&&r.mixIn(t),(!r.hasOwnProperty("init")||this.init===r.init)&&(r.init=function(){r.$super.init.apply(this,arguments);}),r.init.prototype=r,r.$super=this,r},create:function(){var t=this.extend();return t.init.apply(t,arguments),t},init:function(){},mixIn:function(t){for(var r in t)t.hasOwnProperty(r)&&(this[r]=t[r]);t.hasOwnProperty("toString")&&(this.toString=t.toString);},clone:function(){return this.init.prototype.extend(this)}}})(),u=h.WordArray=d.extend({init:function(t,r){t=this.words=t||[],r!=a?this.sigBytes=r:this.sigBytes=t.length*4;},toString:function(t){return (t||l).stringify(this)},concat:function(t){var r=this.words,p=t.words,f=this.sigBytes,g=t.sigBytes;if(this.clamp(),f%4)for(var v=0;v<g;v++){var k=p[v>>>2]>>>24-v%4*8&255;r[f+v>>>2]|=k<<24-(f+v)%4*8;}else for(var O=0;O<g;O+=4)r[f+O>>>2]=p[O>>>2];return this.sigBytes+=g,this},clamp:function(){var t=this.words,r=this.sigBytes;t[r>>>2]&=4294967295<<32-r%4*8,t.length=e.ceil(r/4);},clone:function(){var t=d.clone.call(this);return t.words=this.words.slice(0),t},random:function(t){for(var r=[],p=0;p<t;p+=4)r.push(n());return new u.init(r,t)}}),m=c.enc={},l=m.Hex={stringify:function(t){for(var r=t.words,p=t.sigBytes,f=[],g=0;g<p;g++){var v=r[g>>>2]>>>24-g%4*8&255;f.push((v>>>4).toString(16)),f.push((v&15).toString(16));}return f.join("")},parse:function(t){for(var r=t.length,p=[],f=0;f<r;f+=2)p[f>>>3]|=parseInt(t.substr(f,2),16)<<24-f%8*4;return new u.init(p,r/2)}},A=m.Latin1={stringify:function(t){for(var r=t.words,p=t.sigBytes,f=[],g=0;g<p;g++){var v=r[g>>>2]>>>24-g%4*8&255;f.push(String.fromCharCode(v));}return f.join("")},parse:function(t){for(var r=t.length,p=[],f=0;f<r;f++)p[f>>>2]|=(t.charCodeAt(f)&255)<<24-f%4*8;return new u.init(p,r)}},b=m.Utf8={stringify:function(t){try{return decodeURIComponent(escape(A.stringify(t)))}catch{throw new Error("Malformed UTF-8 data")}},parse:function(t){return A.parse(unescape(encodeURIComponent(t)))}},x=h.BufferedBlockAlgorithm=d.extend({reset:function(){this._data=new u.init,this._nDataBytes=0;},_append:function(t){typeof t=="string"&&(t=b.parse(t)),this._data.concat(t),this._nDataBytes+=t.sigBytes;},_process:function(t){var r,p=this._data,f=p.words,g=p.sigBytes,v=this.blockSize,k=v*4,O=g/k;t?O=e.ceil(O):O=e.max((O|0)-this._minBufferSize,0);var S=O*v,_=e.min(S*4,g);if(S){for(var E=0;E<S;E+=v)this._doProcessBlock(f,E);r=f.splice(0,S),p.sigBytes-=_;}return new u.init(r,_)},clone:function(){var t=d.clone.call(this);return t._data=this._data.clone(),t},_minBufferSize:0});h.Hasher=x.extend({cfg:d.extend(),init:function(t){this.cfg=this.cfg.extend(t),this.reset();},reset:function(){x.reset.call(this),this._doReset();},update:function(t){return this._append(t),this._process(),this},finalize:function(t){t&&this._append(t);var r=this._doFinalize();return r},blockSize:512/32,_createHelper:function(t){return function(r,p){return new t.init(p).finalize(r)}},_createHmacHelper:function(t){return function(r,p){return new y.HMAC.init(t,p).finalize(r)}}});var y=c.algo={};return c})(Math);return s});});var $=D((R,N)=>{(function(s,e){typeof R=="object"?N.exports=R=e(X()):typeof define=="function"&&define.amd?define(["./core"],e):e(s.CryptoJS);})(R,function(s){return (function(){var e=s,a=e.lib,i=a.WordArray,n=a.Hasher,o=e.algo,c=[],h=o.SHA1=n.extend({_doReset:function(){this._hash=new i.init([1732584193,4023233417,2562383102,271733878,3285377520]);},_doProcessBlock:function(d,u){for(var m=this._hash.words,l=m[0],A=m[1],b=m[2],x=m[3],T=m[4],y=0;y<80;y++){if(y<16)c[y]=d[u+y]|0;else {var t=c[y-3]^c[y-8]^c[y-14]^c[y-16];c[y]=t<<1|t>>>31;}var r=(l<<5|l>>>27)+T+c[y];y<20?r+=(A&b|~A&x)+1518500249:y<40?r+=(A^b^x)+1859775393:y<60?r+=(A&b|A&x|b&x)-1894007588:r+=(A^b^x)-899497514,T=x,x=b,b=A<<30|A>>>2,A=l,l=r;}m[0]=m[0]+l|0,m[1]=m[1]+A|0,m[2]=m[2]+b|0,m[3]=m[3]+x|0,m[4]=m[4]+T|0;},_doFinalize:function(){var d=this._data,u=d.words,m=this._nDataBytes*8,l=d.sigBytes*8;return u[l>>>5]|=128<<24-l%32,u[(l+64>>>9<<4)+14]=Math.floor(m/4294967296),u[(l+64>>>9<<4)+15]=m,d.sigBytes=u.length*4,this._process(),this._hash},clone:function(){var d=n.clone.call(this);return d._hash=this._hash.clone(),d}});e.SHA1=n._createHelper(h),e.HmacSHA1=n._createHmacHelper(h);})(),s.SHA1});});var j=s=>e=>{let a=({lastTime:i})=>e(i);return {start:(i=true)=>{s.add(a),s.start();},stop:()=>s.remove(a),now:()=>s.lastTime}};function B(s,e,a){if(Array.isArray(s)&&Array.isArray(s[0])){e&&"repeat"in e&&e?.repeat===null&&(e.repeat=1/0),s.forEach(c=>{if(Array.isArray(c)&&c.length===3){let[h,d,u]=c;u&&"repeat"in u&&u?.repeat===null&&(u.repeat=1/0);}});let{ticker:i=new H.Ticker,driver:n=j(i),...o}=e||{};return animate(s,{driver:n,...o})}else {a&&"repeat"in a&&a?.repeat===null&&(a.repeat=1/0);let{ticker:i=new H.Ticker,driver:n=j(i),...o}=a||{};return animate(s,e,{driver:n,...o})}}function rt(s,e){let{ticker:a=new H.Ticker,driver:i=j(a),repeat:n,...o}=e||{},c={x:0},h=[],d=[],u=0;s.forEach((b,x)=>{let{onComplete:T,onPlay:y,delay:t=0,duration:r=.3,...p}=b,f=typeof t=="function"?t(0,1):t,g=u+f,v=g+r;h.push({start:g,end:v,onPlay:y,onComplete:T}),d.push([c,{x:x+1},{...p,delay:t,duration:r}]),u=v;});let m=u,l=B(d,{...o,repeat:n,driver:i});if(h.length>0&&m>0){let k=function(){if(r)return;for(t+=a.deltaMS/1e3;!r&&t>=m;){if(f(),y++,y>=x){v();return}t-=m;}let S=g(t);S===-1?T>=0&&f():S!==T&&p(S);};let b=n===null?1/0:n,x=b===void 0?1:b+1,T=-1,y=0,t=0,r=false,p=S=>{T>=0&&h[T].onComplete?.(),T=S,h[T].onPlay?.();},f=()=>{T>=0&&h[T].onComplete?.(),T=-1;},g=S=>{for(let _=0;_<h.length;_++){if(S<h[_].start)return -1;if(S<h[_].end)return _}return h.length-1},v=()=>{r=true,a.remove(k);};a.add(k);let O=l.stop.bind(l);l.stop=()=>{v(),O();};}return l}var L=it($());var C=class{constructor(e,a){let{duration:i,priority:n,id:o=this.generateTickerId(a),canvasElementAliases:c=[]}=a||{};this._args=e,this.duration=i,this.priority=n,this.id=o,this.canvasElementAliases=c;}id;_args;get args(){return {...this._args,time:this._animation?.time}}duration;priority;ticker=new H.Ticker;_animation;stopped=false;_paused=false;canvasElementAliases=[];getItemByAlias(e){if(!this.canvasElementAliases.includes(e))return;let a=canvas.find(e);if(a)return a}generateTickerId(...e){try{return (0,L.default)(JSON.stringify(e)).toString()+"_motion_"+Math.random().toString(36).substring(7)}catch(a){throw new PixiError("not_json_serializable",`Error to generate ticker id: ${a}`)}}timeout=50;async complete(){this.animation.complete(),await new Promise(e=>setTimeout(e,this.timeout));}stop(){this.stopped=true,this.animation.stop();}start(){this.args.options?.autoplay!==false&&(this._paused=false,this.animation.play());}onComplete=()=>{let e=this.id,a=this._args.options?.aliasToRemoveAfter||[];typeof a=="string"&&(a=[a]);let i=this._args.options?.tickerAliasToResume||[];typeof i=="string"&&(i=[i]);let n=this._args.options?.tickerIdToResume||[];typeof n=="string"&&(n=[n]),canvas.onTickerComplete(e,{aliasToRemoveAfter:a,tickerAliasToResume:i,tickerIdToResume:n,stopTicker:false});};createItem(e){return new Proxy({alias:e},{set:({alias:a},i,n)=>{if(this.stopped||this._paused||this._args.startState&&this._args.startState[i]===n)return true;let o=this.getItemByAlias(a);if(!o)return true;switch(i){case "pivotX":o.pivot.x=n;break;case "pivotY":o.pivot.y=n;break;case "scaleX":o.scale.x=n;break;case "scaleY":o.scale.y=n;break;default:o[i]=n;break}return true},get:({alias:a},i)=>{if(this._args.startState||(this._args.startState={}),i in this._args.startState)return this._args.startState[i];let n=this.getItemByAlias(a);if(!n)return;let o;switch(i){case "pivotX":o=n.pivot.x;break;case "pivotY":o=n.pivot.y;break;case "scaleX":o=n.scale.x;break;case "scaleY":o=n.scale.y;break;default:o=n[i];break}return this._args.startState={...this._args.startState,[i]:o},o},has:({alias:a},i)=>{let n=this.getItemByAlias(a);if(!n)return false;switch(i){case "pivotX":return "pivot"in n&&"x"in n.pivot;case "pivotY":return "pivot"in n&&"y"in n.pivot;case "scaleX":return "scale"in n&&"x"in n.scale;case "scaleY":return "scale"in n&&"y"in n.scale;default:return i in n}},ownKeys:({alias:a})=>{let i=this.getItemByAlias(a);return i?Object.keys(i):[]}})}pause(){this.animation&&(this._paused=true,this.animation.pause());}play(){this._paused=false,this.animation.play();}get paused(){return this.animation?this.animation.state==="paused":true}};var I=class extends C{get animation(){let e=this._animation;if(e)return e;let a=this.canvasElementAliases[0],i=this.createItem(a),n=this._args.sequence.map((o,c)=>[i,o[0],{...o[1]||{},ticker:this.ticker,onComplete:c===this._args.sequence.length-1?()=>this.onComplete():void 0}]);return e=B(n,this._args.options),this._args.time&&(this.animation.time=this._args.time),this._animation=e,e}alias="motion-sequence"};var w=class extends C{get animation(){let e=this._animation;if(e)return e;let a=this.canvasElementAliases.map(i=>this.createItem(i));return e=B(a,this._args.keyframes,{...this._args.options,onComplete:()=>this.onComplete(),ticker:this.ticker}),this._args.time&&(e.time=this._args.time),this._animation=e,e}alias="motion"};var P;(n=>(n.log=(o,...c)=>console.log(`[Pixi\u2019VN] ${o}`,...c),n.warn=(o,...c)=>console.warn(`[Pixi\u2019VN] ${o}`,...c),n.error=(o,...c)=>console.error(`[Pixi\u2019VN] ${o}`,...c),n.info=(o,...c)=>console.info(`[Pixi\u2019VN] ${o}`,...c)))(P||={});function M(s){try{if(typeof s>"u")return s;let e=JSON.stringify(s);return JSON.parse(e)}catch(e){throw P.error("Error creating exportable element",s,e),new PixiError("not_json_serializable","Error creating exportable element")}}var F;(e=>{function s(a,i,n,o){try{i=M(i);}catch(l){throw P.error("animate keyframes cannot contain functions or classes"),l}try{n=M(n);}catch(l){throw P.error("animate options cannot contain functions or classes"),l}let c=[];typeof a=="string"?c=[a]:Array.isArray(a)?c=a.map(l=>typeof l=="string"?l:l.label):c=[a.label];let h;Array.isArray(i)?h=new I({sequence:i,options:n},{priority:o,canvasElementAliases:c}):h=new w({keyframes:i,options:n},{priority:o,canvasElementAliases:c});let d=canvas.addTicker(c,h),{forceCompleteBeforeNext:u}=n||{},{completeOnContinue:m=u}=n||{};return d&&m&&canvas.completeTickerOnStepEnd({id:d}),d}e.animate=s;})(F||={});var ct=F;RegisteredTickers.add(w,"motion");RegisteredTickers.add(I,"motion-sequence");export{B as animate,ct as motion,j as motionDriver,rt as timeline};
1
+ import {RegisteredTickers,canvas}from'@drincs/pixi-vn/canvas';import H from'@drincs/pixi-vn/pixi.js';import {animate}from'motion';import {PixiError}from'@drincs/pixi-vn/core';var G=Object.create;var z=Object.defineProperty;var Q=Object.getOwnPropertyDescriptor;var Z=Object.getOwnPropertyNames;var tt=Object.getPrototypeOf,et=Object.prototype.hasOwnProperty;var q=(s=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(s,{get:(e,a)=>(typeof require<"u"?require:e)[a]}):s)(function(s){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+s+'" is not supported')});var D=(s,e)=>()=>(e||s((e={exports:{}}).exports,e),e.exports);var nt=(s,e,a,i)=>{if(e&&typeof e=="object"||typeof e=="function")for(let n of Z(e))!et.call(s,n)&&n!==a&&z(s,n,{get:()=>e[n],enumerable:!(i=Q(e,n))||i.enumerable});return s};var it=(s,e,a)=>(a=s!=null?G(tt(s)):{},nt(z(a,"default",{value:s,enumerable:true}),s));var X=D((W,U)=>{(function(s,e){typeof W=="object"?U.exports=W=e():typeof define=="function"&&define.amd?define([],e):s.CryptoJS=e();})(W,function(){var s=s||(function(e,a){var i;if(typeof window<"u"&&window.crypto&&(i=window.crypto),typeof self<"u"&&self.crypto&&(i=self.crypto),typeof globalThis<"u"&&globalThis.crypto&&(i=globalThis.crypto),!i&&typeof window<"u"&&window.msCrypto&&(i=window.msCrypto),!i&&typeof global<"u"&&global.crypto&&(i=global.crypto),!i&&typeof q=="function")try{i=q("crypto");}catch{}var n=function(){if(i){if(typeof i.getRandomValues=="function")try{return i.getRandomValues(new Uint32Array(1))[0]}catch{}if(typeof i.randomBytes=="function")try{return i.randomBytes(4).readInt32LE()}catch{}}throw new Error("Native crypto module could not be used to get secure random number.")},o=Object.create||(function(){function t(){}return function(r){var m;return t.prototype=r,m=new t,t.prototype=null,m}})(),c={},u=c.lib={},h=u.Base=(function(){return {extend:function(t){var r=o(this);return t&&r.mixIn(t),(!r.hasOwnProperty("init")||this.init===r.init)&&(r.init=function(){r.$super.init.apply(this,arguments);}),r.init.prototype=r,r.$super=this,r},create:function(){var t=this.extend();return t.init.apply(t,arguments),t},init:function(){},mixIn:function(t){for(var r in t)t.hasOwnProperty(r)&&(this[r]=t[r]);t.hasOwnProperty("toString")&&(this.toString=t.toString);},clone:function(){return this.init.prototype.extend(this)}}})(),l=u.WordArray=h.extend({init:function(t,r){t=this.words=t||[],r!=a?this.sigBytes=r:this.sigBytes=t.length*4;},toString:function(t){return (t||v).stringify(this)},concat:function(t){var r=this.words,m=t.words,p=this.sigBytes,y=t.sigBytes;if(this.clamp(),p%4)for(var g=0;g<y;g++){var k=m[g>>>2]>>>24-g%4*8&255;r[p+g>>>2]|=k<<24-(p+g)%4*8;}else for(var O=0;O<y;O+=4)r[p+O>>>2]=m[O>>>2];return this.sigBytes+=y,this},clamp:function(){var t=this.words,r=this.sigBytes;t[r>>>2]&=4294967295<<32-r%4*8,t.length=e.ceil(r/4);},clone:function(){var t=h.clone.call(this);return t.words=this.words.slice(0),t},random:function(t){for(var r=[],m=0;m<t;m+=4)r.push(n());return new l.init(r,t)}}),f=c.enc={},v=f.Hex={stringify:function(t){for(var r=t.words,m=t.sigBytes,p=[],y=0;y<m;y++){var g=r[y>>>2]>>>24-y%4*8&255;p.push((g>>>4).toString(16)),p.push((g&15).toString(16));}return p.join("")},parse:function(t){for(var r=t.length,m=[],p=0;p<r;p+=2)m[p>>>3]|=parseInt(t.substr(p,2),16)<<24-p%8*4;return new l.init(m,r/2)}},A=f.Latin1={stringify:function(t){for(var r=t.words,m=t.sigBytes,p=[],y=0;y<m;y++){var g=r[y>>>2]>>>24-y%4*8&255;p.push(String.fromCharCode(g));}return p.join("")},parse:function(t){for(var r=t.length,m=[],p=0;p<r;p++)m[p>>>2]|=(t.charCodeAt(p)&255)<<24-p%4*8;return new l.init(m,r)}},b=f.Utf8={stringify:function(t){try{return decodeURIComponent(escape(A.stringify(t)))}catch{throw new Error("Malformed UTF-8 data")}},parse:function(t){return A.parse(unescape(encodeURIComponent(t)))}},x=u.BufferedBlockAlgorithm=h.extend({reset:function(){this._data=new l.init,this._nDataBytes=0;},_append:function(t){typeof t=="string"&&(t=b.parse(t)),this._data.concat(t),this._nDataBytes+=t.sigBytes;},_process:function(t){var r,m=this._data,p=m.words,y=m.sigBytes,g=this.blockSize,k=g*4,O=y/k;t?O=e.ceil(O):O=e.max((O|0)-this._minBufferSize,0);var S=O*g,_=e.min(S*4,y);if(S){for(var E=0;E<S;E+=g)this._doProcessBlock(p,E);r=p.splice(0,S),m.sigBytes-=_;}return new l.init(r,_)},clone:function(){var t=h.clone.call(this);return t._data=this._data.clone(),t},_minBufferSize:0});u.Hasher=x.extend({cfg:h.extend(),init:function(t){this.cfg=this.cfg.extend(t),this.reset();},reset:function(){x.reset.call(this),this._doReset();},update:function(t){return this._append(t),this._process(),this},finalize:function(t){t&&this._append(t);var r=this._doFinalize();return r},blockSize:512/32,_createHelper:function(t){return function(r,m){return new t.init(m).finalize(r)}},_createHmacHelper:function(t){return function(r,m){return new d.HMAC.init(t,m).finalize(r)}}});var d=c.algo={};return c})(Math);return s});});var K=D((R,$)=>{(function(s,e){typeof R=="object"?$.exports=R=e(X()):typeof define=="function"&&define.amd?define(["./core"],e):e(s.CryptoJS);})(R,function(s){return (function(){var e=s,a=e.lib,i=a.WordArray,n=a.Hasher,o=e.algo,c=[],u=o.SHA1=n.extend({_doReset:function(){this._hash=new i.init([1732584193,4023233417,2562383102,271733878,3285377520]);},_doProcessBlock:function(h,l){for(var f=this._hash.words,v=f[0],A=f[1],b=f[2],x=f[3],T=f[4],d=0;d<80;d++){if(d<16)c[d]=h[l+d]|0;else {var t=c[d-3]^c[d-8]^c[d-14]^c[d-16];c[d]=t<<1|t>>>31;}var r=(v<<5|v>>>27)+T+c[d];d<20?r+=(A&b|~A&x)+1518500249:d<40?r+=(A^b^x)+1859775393:d<60?r+=(A&b|A&x|b&x)-1894007588:r+=(A^b^x)-899497514,T=x,x=b,b=A<<30|A>>>2,A=v,v=r;}f[0]=f[0]+v|0,f[1]=f[1]+A|0,f[2]=f[2]+b|0,f[3]=f[3]+x|0,f[4]=f[4]+T|0;},_doFinalize:function(){var h=this._data,l=h.words,f=this._nDataBytes*8,v=h.sigBytes*8;return l[v>>>5]|=128<<24-v%32,l[(v+64>>>9<<4)+14]=Math.floor(f/4294967296),l[(v+64>>>9<<4)+15]=f,h.sigBytes=l.length*4,this._process(),this._hash},clone:function(){var h=n.clone.call(this);return h._hash=this._hash.clone(),h}});e.SHA1=n._createHelper(u),e.HmacSHA1=n._createHmacHelper(u);})(),s.SHA1});});var j=s=>e=>{let a=({lastTime:i})=>e(i);return {start:(i=true)=>{s.add(a),s.start();},stop:()=>s.remove(a),now:()=>s.lastTime}};function B(s,e,a){if(Array.isArray(s)&&Array.isArray(s[0])){e&&"repeat"in e&&e?.repeat===null&&(e.repeat=1/0),s.forEach(c=>{if(Array.isArray(c)&&c.length===3){let[u,h,l]=c;l&&"repeat"in l&&l?.repeat===null&&(l.repeat=1/0);}});let{ticker:i=new H.Ticker,driver:n=j(i),...o}=e||{};return animate(s,{driver:n,...o})}else {a&&"repeat"in a&&a?.repeat===null&&(a.repeat=1/0);let{ticker:i=new H.Ticker,driver:n=j(i),...o}=a||{};return animate(s,e,{driver:n,...o})}}function rt(s,e){let{ticker:a=new H.Ticker,driver:i=j(a),repeat:n,...o}=e||{},c={x:0},u=[],h=[],l=0;s.forEach((b,x)=>{let{onComplete:T,onPlay:d,delay:t=0,duration:r=.3,...m}=b,p=typeof t=="function"?t(0,1):t,y=l+p,g=y+r;u.push({start:y,end:g,onPlay:d,onComplete:T}),h.push([c,{x:x+1},{...m,delay:t,duration:r}]),l=g;});let f=l,v=B(h,{...o,repeat:n,driver:i});if(u.length>0&&f>0){let k=function(){if(r)return;for(t+=a.deltaMS/1e3;!r&&t>=f;){if(p(),d++,d>=x){g();return}t-=f;}let S=y(t);S===-1?T>=0&&p():S!==T&&m(S);};let b=n===null?1/0:n,x=b===void 0?1:b+1,T=-1,d=0,t=0,r=false,m=S=>{T>=0&&u[T].onComplete?.(),T=S,u[T].onPlay?.();},p=()=>{T>=0&&u[T].onComplete?.(),T=-1;},y=S=>{for(let _=0;_<u.length;_++){if(S<u[_].start)return -1;if(S<u[_].end)return _}return u.length-1},g=()=>{r=true,a.remove(k);};a.add(k);let O=v.stop.bind(v);v.stop=()=>{g(),O();};}return v}var N=it(K());var C=class{constructor(e,a){let{duration:i,priority:n,id:o=this.generateTickerId(a),canvasElementAliases:c=[]}=a||{};this._args=e,this.duration=i,this.priority=n,this.id=o,this.canvasElementAliases=c;}id;_args;get args(){return {...this._args,time:this._animation?.time}}duration;priority;ticker=new H.Ticker;_animation;stopped=false;_paused=false;canvasElementAliases=[];getItemByAlias(e){if(!this.canvasElementAliases.includes(e))return;let a=canvas.find(e);if(a)return a}generateTickerId(...e){try{return (0,N.default)(JSON.stringify(e)).toString()+"_motion_"+Math.random().toString(36).substring(7)}catch(a){throw new PixiError("not_json_serializable",`Error to generate ticker id: ${a}`)}}timeout=50;async complete(){this.animation.complete(),await new Promise(e=>setTimeout(e,this.timeout));}stop(){this.stopped=true,this.animation.stop();}start(){this.args.options?.autoplay!==false&&(this._paused=false,this.animation.play());}onComplete=()=>{let e=this.id,a=this._args.options?.aliasToRemoveAfter||[];typeof a=="string"&&(a=[a]);let i=this._args.options?.tickerAliasToResume||[];typeof i=="string"&&(i=[i]);let n=this._args.options?.tickerIdToResume||[];typeof n=="string"&&(n=[n]),canvas.tickers.onComplete(e,{aliasToRemoveAfter:a,tickerAliasToResume:i,tickerIdToResume:n,stopTicker:false});};createItem(e){return new Proxy({alias:e},{set:({alias:a},i,n)=>{if(this.stopped||this._paused||this._args.startState&&this._args.startState[i]===n)return true;let o=this.getItemByAlias(a);if(!o)return true;switch(i){case "pivotX":o.pivot.x=n;break;case "pivotY":o.pivot.y=n;break;case "scaleX":o.scale.x=n;break;case "scaleY":o.scale.y=n;break;default:o[i]=n;break}return true},get:({alias:a},i)=>{if(this._args.startState||(this._args.startState={}),i in this._args.startState)return this._args.startState[i];let n=this.getItemByAlias(a);if(!n)return;let o;switch(i){case "pivotX":o=n.pivot.x;break;case "pivotY":o=n.pivot.y;break;case "scaleX":o=n.scale.x;break;case "scaleY":o=n.scale.y;break;default:o=n[i];break}return this._args.startState={...this._args.startState,[i]:o},o},has:({alias:a},i)=>{let n=this.getItemByAlias(a);if(!n)return false;switch(i){case "pivotX":return "pivot"in n&&"x"in n.pivot;case "pivotY":return "pivot"in n&&"y"in n.pivot;case "scaleX":return "scale"in n&&"x"in n.scale;case "scaleY":return "scale"in n&&"y"in n.scale;default:return i in n}},ownKeys:({alias:a})=>{let i=this.getItemByAlias(a);return i?Object.keys(i):[]}})}pause(){this.animation&&(this._paused=true,this.animation.pause());}play(){this._paused=false,this.animation.play();}get paused(){return this.animation?this.animation.state==="paused":true}};var I=class extends C{get animation(){let e=this._animation;if(e)return e;let a=this.canvasElementAliases[0],i=this.createItem(a),n=this._args.sequence.map((o,c)=>[i,o[0],{...o[1]||{},ticker:this.ticker,onComplete:c===this._args.sequence.length-1?()=>this.onComplete():void 0}]);return e=B(n,this._args.options),this._args.time&&(this.animation.time=this._args.time),this._animation=e,e}alias="motion-sequence"};var w=class extends C{get animation(){let e=this._animation;if(e)return e;let a=this.canvasElementAliases.map(i=>this.createItem(i));return e=B(a,this._args.keyframes,{...this._args.options,onComplete:()=>this.onComplete(),ticker:this.ticker}),this._args.time&&(e.time=this._args.time),this._animation=e,e}alias="motion"};var P;(n=>(n.log=(o,...c)=>console.log(`[Pixi\u2019VN] ${o}`,...c),n.warn=(o,...c)=>console.warn(`[Pixi\u2019VN] ${o}`,...c),n.error=(o,...c)=>console.error(`[Pixi\u2019VN] ${o}`,...c),n.info=(o,...c)=>console.info(`[Pixi\u2019VN] ${o}`,...c)))(P||={});function M(s){try{if(typeof s>"u")return s;let e=JSON.stringify(s);return JSON.parse(e)}catch(e){throw P.error("Error creating exportable element",s,e),new PixiError("not_json_serializable","Error creating exportable element")}}var F;(e=>{function s(a,i,n,o){try{i=M(i);}catch(f){throw P.error("animate keyframes cannot contain functions or classes"),f}try{n=M(n);}catch(f){throw P.error("animate options cannot contain functions or classes"),f}let c=[];typeof a=="string"?c=[a]:Array.isArray(a)?c=a.map(f=>typeof f=="string"?f:f.label):c=[a.label];let u;Array.isArray(i)?u=new I({sequence:i,options:n},{priority:o,canvasElementAliases:c}):u=new w({keyframes:i,options:n},{priority:o,canvasElementAliases:c});let h=canvas.tickers.add(c,u),{completeOnContinue:l}=n||{};return h&&l&&canvas.tickers.completeOnStepEnd({id:h}),h}e.animate=s;})(F||={});var ct=F;RegisteredTickers.add(w,"motion");RegisteredTickers.add(I,"motion-sequence");export{B as animate,ct as motion,j as motionDriver,rt as timeline};