@famibee/skynovel 2.0.1 → 2.0.3

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 (123) hide show
  1. package/dist/Button.js +36 -34
  2. package/dist/Button.js.map +1 -1
  3. package/dist/CallStack.js +11 -6
  4. package/dist/CallStack.js.map +1 -1
  5. package/dist/CmnInterface.js +13 -11
  6. package/dist/CmnInterface.js.map +1 -1
  7. package/dist/CmnLib.js +58 -56
  8. package/dist/CmnLib.js.map +1 -1
  9. package/dist/Config.js +9 -7
  10. package/dist/Config.js.map +1 -1
  11. package/dist/ConfigBase.js +52 -49
  12. package/dist/ConfigBase.js.map +1 -1
  13. package/dist/DebugMng.js +9 -6
  14. package/dist/DebugMng.js.map +1 -1
  15. package/dist/EventListenerCtn.js +6 -4
  16. package/dist/EventListenerCtn.js.map +1 -1
  17. package/dist/EventMng.js +522 -417
  18. package/dist/EventMng.js.map +1 -1
  19. package/dist/Grammar.js +22 -20
  20. package/dist/Grammar.js.map +1 -1
  21. package/dist/GrpLayer.js +58 -57
  22. package/dist/GrpLayer.js.map +1 -1
  23. package/dist/Layer.js +66 -64
  24. package/dist/Layer.js.map +1 -1
  25. package/dist/LayerMng.js +461 -441
  26. package/dist/LayerMng.js.map +1 -1
  27. package/dist/Main.js +69 -67
  28. package/dist/Main.js.map +1 -1
  29. package/dist/PropParser.js +23 -19
  30. package/dist/PropParser.js.map +1 -1
  31. package/dist/Reading.js +422 -418
  32. package/dist/Reading.js.map +1 -1
  33. package/dist/RubySpliter.js +6 -4
  34. package/dist/RubySpliter.js.map +1 -1
  35. package/dist/ScriptIterator.js +374 -370
  36. package/dist/ScriptIterator.js.map +1 -1
  37. package/dist/SndBuf.js +643 -622
  38. package/dist/SndBuf.js.map +1 -1
  39. package/dist/SoundMng.js +59 -60
  40. package/dist/SoundMng.js.map +1 -1
  41. package/dist/SpritesMng.js +135 -129
  42. package/dist/SpritesMng.js.map +1 -1
  43. package/dist/SysBase.js +985 -950
  44. package/dist/SysBase.js.map +1 -1
  45. package/dist/TxtLayer.js +558 -551
  46. package/dist/TxtLayer.js.map +1 -1
  47. package/dist/Variable.js +47 -45
  48. package/dist/Variable.js.map +1 -1
  49. package/dist/chunk.js +11 -9
  50. package/dist/gamepad.js +396 -660
  51. package/dist/gamepad.js.map +1 -1
  52. package/dist/pixi.js +2631 -2593
  53. package/dist/pixi.js.map +1 -1
  54. package/dist/platform.js +6 -4
  55. package/dist/platform.js.map +1 -1
  56. package/dist/rolldown-runtime.js +20 -0
  57. package/dist/sn/RubySpliter.d.ts.map +1 -1
  58. package/dist/web.js +418 -418
  59. package/dist/web.js.map +1 -1
  60. package/dist_app/Button.js +36 -34
  61. package/dist_app/Button.js.map +1 -1
  62. package/dist_app/CallStack.js +11 -6
  63. package/dist_app/CallStack.js.map +1 -1
  64. package/dist_app/CmnInterface.js +13 -11
  65. package/dist_app/CmnInterface.js.map +1 -1
  66. package/dist_app/CmnLib.js +58 -56
  67. package/dist_app/CmnLib.js.map +1 -1
  68. package/dist_app/Config.js +9 -7
  69. package/dist_app/Config.js.map +1 -1
  70. package/dist_app/ConfigBase.js +52 -49
  71. package/dist_app/ConfigBase.js.map +1 -1
  72. package/dist_app/DebugMng.js +9 -6
  73. package/dist_app/DebugMng.js.map +1 -1
  74. package/dist_app/EventListenerCtn.js +6 -4
  75. package/dist_app/EventListenerCtn.js.map +1 -1
  76. package/dist_app/EventMng.js +522 -417
  77. package/dist_app/EventMng.js.map +1 -1
  78. package/dist_app/Grammar.js +22 -20
  79. package/dist_app/Grammar.js.map +1 -1
  80. package/dist_app/GrpLayer.js +58 -57
  81. package/dist_app/GrpLayer.js.map +1 -1
  82. package/dist_app/Layer.js +66 -64
  83. package/dist_app/Layer.js.map +1 -1
  84. package/dist_app/LayerMng.js +461 -441
  85. package/dist_app/LayerMng.js.map +1 -1
  86. package/dist_app/Main.js +69 -67
  87. package/dist_app/Main.js.map +1 -1
  88. package/dist_app/PropParser.js +23 -19
  89. package/dist_app/PropParser.js.map +1 -1
  90. package/dist_app/Reading.js +422 -418
  91. package/dist_app/Reading.js.map +1 -1
  92. package/dist_app/RubySpliter.js +6 -4
  93. package/dist_app/RubySpliter.js.map +1 -1
  94. package/dist_app/ScriptIterator.js +374 -370
  95. package/dist_app/ScriptIterator.js.map +1 -1
  96. package/dist_app/SndBuf.js +643 -622
  97. package/dist_app/SndBuf.js.map +1 -1
  98. package/dist_app/SoundMng.js +59 -60
  99. package/dist_app/SoundMng.js.map +1 -1
  100. package/dist_app/SpritesMng.js +135 -129
  101. package/dist_app/SpritesMng.js.map +1 -1
  102. package/dist_app/SysBase.js +985 -950
  103. package/dist_app/SysBase.js.map +1 -1
  104. package/dist_app/TxtLayer.js +558 -551
  105. package/dist_app/TxtLayer.js.map +1 -1
  106. package/dist_app/Variable.js +47 -45
  107. package/dist_app/Variable.js.map +1 -1
  108. package/dist_app/app.js +62 -63
  109. package/dist_app/app.js.map +1 -1
  110. package/dist_app/appMain.js +11 -11
  111. package/dist_app/appMain.js.map +1 -1
  112. package/dist_app/chunk.js +11 -9
  113. package/dist_app/gamepad.js +396 -660
  114. package/dist_app/gamepad.js.map +1 -1
  115. package/dist_app/pixi.js +2028 -1990
  116. package/dist_app/pixi.js.map +1 -1
  117. package/dist_app/platform.js +6 -4
  118. package/dist_app/platform.js.map +1 -1
  119. package/dist_app/preload.js +1 -1
  120. package/dist_app/preload.js.map +1 -1
  121. package/dist_app/rolldown-runtime.js +20 -0
  122. package/dist_app/sn/RubySpliter.d.ts.map +1 -1
  123. package/package.json +20 -21
package/dist_app/Main.js CHANGED
@@ -1,14 +1,15 @@
1
- import { h as parseColor, s as argChk_Boolean, t as CmnLib } from "./CmnLib.js";
2
- import { _ as clearTextureCache, r as Application, y as skipHello } from "./pixi.js";
3
- import "./ConfigBase.js";
4
- import { t as DebugMng } from "./DebugMng.js";
5
- import { t as Config } from "./Config.js";
6
- import { i as tagToken2Name_Args, n as splitAmpersand } from "./Grammar.js";
7
- var SN_ID = "skynovel", Main = class d {
1
+ import { h as e, s as t, t as n } from "./CmnLib.js";
2
+ import { _ as r, r as i, y as a } from "./pixi.js";
3
+ import { t as o } from "./DebugMng.js";
4
+ import { t as s } from "./Config.js";
5
+ import { i as c, n as l } from "./Grammar.js";
6
+ //#region src/sn/Main.ts
7
+ var u = "skynovel", d = class d {
8
+ sys;
8
9
  static async generate(e) {
9
- skipHello();
10
- let i = new d(e);
11
- return await i.#a().catch((e) => console.error("Main.generate err e:%o", e)), i;
10
+ a();
11
+ let t = new d(e);
12
+ return await t.#a().catch((e) => console.error("Main.generate err e:%o", e)), t;
12
13
  }
13
14
  cvs;
14
15
  #e = Object.create(null);
@@ -20,30 +21,30 @@ var SN_ID = "skynovel", Main = class d {
20
21
  this.sys = e;
21
22
  }
22
23
  async #a() {
23
- let i = await Config.generate(this.sys);
24
- this.sys.setMain(this, i);
25
- let c = {
26
- width: i.oCfg.window.width,
27
- height: i.oCfg.window.height,
28
- backgroundColor: parseColor(String(i.oCfg.init.bg_color)),
24
+ let t = await s.generate(this.sys);
25
+ this.sys.setMain(this, t);
26
+ let a = {
27
+ width: t.oCfg.window.width,
28
+ height: t.oCfg.window.height,
29
+ backgroundColor: e(String(t.oCfg.init.bg_color)),
29
30
  resolution: globalThis.devicePixelRatio
30
- }, l = document.getElementById(SN_ID);
31
- if (l) {
32
- let e = l.cloneNode(!0);
33
- e.id = SN_ID, c.view = l;
34
- let i = l.parentNode;
35
- this.#i.unshift(() => i.appendChild(e));
31
+ }, c = document.getElementById(u);
32
+ if (c) {
33
+ let e = c.cloneNode(!0);
34
+ e.id = u, a.view = c;
35
+ let t = c.parentNode;
36
+ this.#i.unshift(() => t.appendChild(e));
36
37
  } else {
37
38
  let e = document.createElement("canvas");
38
- e.id = SN_ID, c.view = e, document.body.appendChild(e), this.#i.unshift(() => document.body.removeChild(e));
39
+ e.id = u, a.view = e, document.body.appendChild(e), this.#i.unshift(() => document.body.removeChild(e));
39
40
  }
40
- let u = new Application(c);
41
+ let l = new i(a);
41
42
  this.#i.unshift(() => {
42
- clearTextureCache(), this.sys.destroy(), u.destroy(!1);
43
- }), this.cvs = u.view, this.cvs.id = SN_ID + "_act", l || document.body.appendChild(this.cvs);
43
+ r(), this.sys.destroy(), l.destroy(!1);
44
+ }), this.cvs = l.view, this.cvs.id = "skynovel_act", c || document.body.appendChild(this.cvs);
44
45
  let d = document.createElement("canvas").getContext("2d");
45
46
  if (!d) throw "#init cc err";
46
- CmnLib.cc4ColorName = d;
47
+ n.cc4ColorName = d;
47
48
  let [{ Variable: f }, { PropParser: p }, { SoundMng: m }, { ScriptIterator: h }, { LayerMng: g }, { EventMng: _ }, { Button: v }] = await Promise.all([
48
49
  import("./Variable.js"),
49
50
  import("./PropParser.js"),
@@ -53,18 +54,18 @@ var SN_ID = "skynovel", Main = class d {
53
54
  import("./EventMng.js"),
54
55
  import("./Button.js")
55
56
  ]);
56
- v.init(i);
57
- let y = new f(this.sys, i, this.#e), b = new p(y, i.oCfg.init.escape);
58
- this.#o = (e, i, a, o) => y.setVal_Nochk(e, i, a, o), this.#l = (e) => b.getValAmpersand(e), this.#u = (e) => b.parse(e), await Promise.allSettled(this.sys.init(this.#e, u, y));
59
- let x = new m(i, this.#e, y, this, this.sys);
60
- this.#i.unshift(() => x.destroy()), this.#t = new h(i, this.#e, this, y, b, x, this.sys), this.#i.unshift(() => this.#t.destroy());
61
- let S = new DebugMng(this.sys, this.#e, this.#t);
62
- this.#i.unshift(() => S.destroy()), this.errScript = (e, i) => {
63
- if (this.stop(), DebugMng.myTrace(e), CmnLib.debugLog && console.log("🍜 SKYNovel err!"), i) throw e;
64
- }, this.#n = new g(i, this.#e, u, y, this, this.#t, this.sys, x, b), this.#i.unshift(() => this.#n.destroy()), this.#r = new _(i, this.#e, u, this, this.#n, y, x, this.#t, this.sys), this.#i.unshift(() => this.#r.destroy()), this.#i.unshift(() => {
57
+ v.init(t);
58
+ let y = new f(this.sys, t, this.#e), b = new p(y, t.oCfg.init.escape);
59
+ this.#o = (e, t, n, r) => y.setVal_Nochk(e, t, n, r), this.#l = (e) => b.getValAmpersand(e), this.#u = (e) => b.parse(e), await Promise.allSettled(this.sys.init(this.#e, l, y));
60
+ let x = new m(t, this.#e, y, this, this.sys);
61
+ this.#i.unshift(() => x.destroy()), this.#t = new h(t, this.#e, this, y, b, x, this.sys), this.#i.unshift(() => this.#t.destroy());
62
+ let S = new o(this.sys, this.#e, this.#t);
63
+ this.#i.unshift(() => S.destroy()), this.errScript = (e, t) => {
64
+ if (this.stop(), o.myTrace(e), n.debugLog && console.log("🍜 SKYNovel err!"), t) throw e;
65
+ }, this.#n = new g(t, this.#e, l, y, this, this.#t, this.sys, x, b), this.#i.unshift(() => this.#n.destroy()), this.#r = new _(t, this.#e, l, this, this.#n, y, x, this.#t, this.sys), this.#i.unshift(() => this.#r.destroy()), this.#i.unshift(() => {
65
66
  this.stop(), this.#s = !1;
66
67
  let e = () => !0;
67
- for (let i in this.#e) this.#e[i] = e;
68
+ for (let t in this.#e) this.#e[t] = e;
68
69
  });
69
70
  }
70
71
  destroy() {
@@ -72,18 +73,18 @@ var SN_ID = "skynovel", Main = class d {
72
73
  for (let e of this.#i) e();
73
74
  this.#i = [];
74
75
  }
75
- errScript = (e, i = !0) => {};
76
+ errScript = (e, t = !0) => {};
76
77
  resumeByJumpOrCall(e) {
77
78
  if (e.url) {
78
79
  this.#e.navigate_to(e), this.#t.jumpJustBefore();
79
80
  return;
80
81
  }
81
- if (this.#o("tmp", "sn.eventArg", String(e.arg ?? "")), this.#o("tmp", "sn.eventLabel", e.label ?? ""), argChk_Boolean(e, "call", !1)) {
82
+ if (this.#o("tmp", "sn.eventArg", String(e.arg ?? "")), this.#o("tmp", "sn.eventLabel", e.label ?? ""), t(e, "call", !1)) {
82
83
  if (this.#t.subIdxToken(), this.#e.call(e)) return;
83
84
  } else if (this.#e.clear_event({}), this.#e.jump(e)) return;
84
85
  this.resume();
85
86
  }
86
- #o = (e, i, a, o = !1) => {};
87
+ #o = (e, t, n, r = !1) => {};
87
88
  resume() {
88
89
  this.#n.clearBreak(), this.#t.noticeBreak(!1), this.#r.hideHint(), queueMicrotask(() => {
89
90
  this.#c();
@@ -92,54 +93,55 @@ var SN_ID = "skynovel", Main = class d {
92
93
  stop = () => {
93
94
  this.#t.noticeBreak(!0);
94
95
  };
95
- setLoop(e, i = "") {
96
- (this.#s = e) ? this.resume() : this.stop(), this.sys.setTitleInfo(i ? ` -- ${i}中` : "");
96
+ setLoop(e, t = "") {
97
+ (this.#s = e) ? this.resume() : this.stop(), this.sys.setTitleInfo(t ? ` -- ${t}中` : "");
97
98
  }
98
99
  #s = !0;
99
100
  async #c() {
100
101
  let e = "";
101
102
  try {
102
103
  for (; this.#s;) {
103
- let i = this.#t.nextToken();
104
- if (!i) return;
105
- let a = i.charCodeAt(0);
106
- if (a !== 9) {
107
- if (a === 10) {
108
- this.#t.addLineNum(i.length);
104
+ let t = this.#t.nextToken();
105
+ if (!t) return;
106
+ let n = t.charCodeAt(0);
107
+ if (n !== 9) {
108
+ if (n === 10) {
109
+ this.#t.addLineNum(t.length);
109
110
  continue;
110
111
  }
111
- if (a === 91) {
112
- if (e = "タグ開始", this.#t.isBreak(i)) return;
113
- let [a, o] = tagToken2Name_Args(i);
114
- e = `[${a}]例外`;
115
- let s = (i.match(/\n/g) ?? []).length;
116
- if (s > 0 && this.#t.addLineNum(s), await this.#t.タグ解析(a, o)) {
112
+ if (n === 91) {
113
+ if (e = "タグ開始", this.#t.isBreak(t)) return;
114
+ let [n, r] = c(t);
115
+ e = `[${n}]例外`;
116
+ let i = (t.match(/\n/g) ?? []).length;
117
+ if (i > 0 && this.#t.addLineNum(i), await this.#t.タグ解析(n, r)) {
117
118
  this.stop();
118
119
  return;
119
120
  }
120
121
  continue;
121
122
  }
122
- if (a === 38) {
123
- if (!i.endsWith("&")) {
124
- if (e = "変数計算", this.#t.isBreak(i)) return;
125
- let a = splitAmpersand(i.slice(1));
126
- a.name = this.#l(a.name), a.text = String(this.#u(a.text)), this.#e.let(a);
123
+ if (n === 38) {
124
+ if (!t.endsWith("&")) {
125
+ if (e = "変数計算", this.#t.isBreak(t)) return;
126
+ let n = l(t.slice(1));
127
+ n.name = this.#l(n.name), n.text = String(this.#u(n.text)), this.#e.let(n);
127
128
  continue;
128
129
  }
129
- if (e = "変数操作", i.charAt(1) === "&") throw Error("「&表示&」書式では「&」指定が不要です");
130
- i = String(this.#u(i.slice(1, -1)));
131
- } else if (a === 59) continue;
132
- else if (a === 42 && i.length > 1) continue;
133
- e = "文字表示", this.#n.setNormalChWait(), this.#n.currentTxtlayForeNeedErr.tagCh(i);
130
+ if (e = "変数操作", t.charAt(1) === "&") throw Error("「&表示&」書式では「&」指定が不要です");
131
+ t = String(this.#u(t.slice(1, -1)));
132
+ } else if (n === 59) continue;
133
+ else if (n === 42 && t.length > 1) continue;
134
+ e = "文字表示", this.#n.setNormalChWait(), this.#n.currentTxtlayForeNeedErr.tagCh(t);
134
135
  }
135
136
  }
136
- } catch (i) {
137
- this.errScript(`${e} ${i instanceof Error ? `mes=${i.message}(${i.name})` : String(i)}`, !1);
137
+ } catch (t) {
138
+ this.errScript(`${e} ${t instanceof Error ? `mes=${t.message}(${t.name})` : String(t)}`, !1);
138
139
  }
139
140
  }
140
141
  #l = (e) => "";
141
142
  #u;
142
143
  };
143
- export { Main };
144
+ //#endregion
145
+ export { d as Main };
144
146
 
145
147
  //# sourceMappingURL=Main.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Main.js","names":["#init","sys: SysBase","hApp: IApplicationOptions","#aDest","#hTag","#setVal_Nochk","#getValAmpersand","#parse","#scrItr","#layMng","#evtMng","#isLoop","#main"],"sources":["../src/sn/Main.ts"],"sourcesContent":["/* ***** BEGIN LICENSE BLOCK *****\n\tCopyright (c) 2018-2025 Famibee (famibee.blog38.fc2.com)\n\n\tThis software is released under the MIT License.\n\thttp://opensource.org/licenses/mit-license.php\n** ***** END LICENSE BLOCK ***** */\n\nimport {CmnLib, argChk_Boolean, parseColor} from './CmnLib';\nimport type {T_HTag, TArg} from './Grammar';\nimport type {T_Main, Scope, T_VAL_BSNU, T_VAL_DATA} from './CmnInterface';\nimport type {SysBase} from './SysBase';\nimport {DebugMng} from './DebugMng';\nimport {Config} from './Config';\nimport {splitAmpersand, tagToken2Name_Args} from './Grammar';\nimport type {ScriptIterator} from './ScriptIterator';\nimport type {LayerMng} from './LayerMng';\nimport type {EventMng} from './EventMng';\n\nimport {type IApplicationOptions, Application, utils} from 'pixi.js';\n\n\nconst\tSN_ID\t= 'skynovel';\n\n\nexport class Main implements T_Main {\n\tstatic\tasync generate(sys: SysBase): Promise<Main> {\n\t\tutils.skipHello();\n\n\t\tconst m = new Main(sys);\n\t\tawait m.#init()\n\t\t.catch((e: unknown)=> console.error('Main.generate err e:%o', e));\n\n\t\treturn m;\n\t}\n\n\n\tcvs\t\t\t: HTMLCanvasElement;\n\n\t// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n\t#hTag\t\t: T_HTag\t\t= Object.create(null);\t// タグ処理辞書\n\n\t#scrItr\t\t: ScriptIterator;\n\t#layMng\t\t: LayerMng;\n\t#evtMng\t\t: EventMng;\n\n\t#aDest\t\t: (()=> void)[]\t\t= [];\n\n\n\tprivate constructor(private readonly sys: SysBase) {}\n\n\tasync #init() {\n\t\tconst cfg = await Config.generate(this.sys);\n\t\tthis.sys.setMain(this, cfg);\n\n\t\tconst hApp: IApplicationOptions = {\n\t\t\twidth\t\t\t: cfg.oCfg.window.width,\n\t\t\theight\t\t\t: cfg.oCfg.window.height,\n\t\t\tbackgroundColor\t: parseColor(String(cfg.oCfg.init.bg_color)),\n\t\t\t\t// このString()は後方互換性のため必須\n\t\t\tresolution\t\t: globalThis.devicePixelRatio,\n\t\t};\n\n\t\tconst cvs = <HTMLCanvasElement | null>document.getElementById(SN_ID);\n\t\tif (cvs) {\n\t\t\tconst clone_cvs = <HTMLCanvasElement>cvs.cloneNode(true);\n\t\t\tclone_cvs.id = SN_ID;\n\t\t\thApp.view = cvs;\n\t\t\t// eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n\t\t\tconst p = cvs.parentNode!;\n\t\t\tthis.#aDest.unshift(()=> p.appendChild(clone_cvs));\n\t\t}\n\t\telse {\t// 自動的に作ってくれるが、どうも appendChild に遅延があるので\n\t\t\tconst c = document.createElement('canvas');\n\t\t\tc.id = SN_ID;\n\t\t\thApp.view = c;\n\t\t\tdocument.body.appendChild(c);\n\t\t\tthis.#aDest.unshift(()=> document.body.removeChild(c));\n\t\t}\n\n\t\tconst app = new Application(hApp);\n\t\tthis.#aDest.unshift(()=> {\n\t\t\tutils.clearTextureCache();\n\t\t\tthis.sys.destroy();\n\t\t\tapp.destroy(false);\t// remove canvas from DOM が非同期なのでウチがやる\n\t\t});\n\n\t\tthis.cvs = app.view;\n\t\tthis.cvs.id = SN_ID +'_act';\n\t\tif (! cvs) document.body.appendChild(this.cvs);\n\n\n\t\tconst cc = document.createElement('canvas').getContext('2d');\n\t\tif (! cc) throw '#init cc err';\n\t\tCmnLib.cc4ColorName = cc;\n\n\t\tconst [{Variable}, {PropParser}, {SoundMng}, {ScriptIterator}, {LayerMng}, {EventMng}, {Button}] = await Promise.all([\n\t\t\timport('./Variable'),\n\t\t\timport('./PropParser'),\n\t\t\timport('./SoundMng'),\n\t\t\timport('./ScriptIterator'),\n\t\t\timport('./LayerMng'),\n\t\t\timport('./EventMng'),\n\t\t\timport('./Button'),\n\t\t]);\n\n\t\tButton.init(cfg);\n\n\t\t// 変数\n\t\tconst val = new Variable(this.sys, cfg, this.#hTag);\n\t\tconst prpPrs = new PropParser(val, cfg.oCfg.init.escape);\n\t\tthis.#setVal_Nochk = (scope, nm, v, autocast)=> val.setVal_Nochk(scope, nm, v, autocast);\n\t\tthis.#getValAmpersand = v=> prpPrs.getValAmpersand(v);\n\t\tthis.#parse = s=> prpPrs.parse(s);\n\n\t\t// システム\n\t\tawait Promise.allSettled(this.sys.init(this.#hTag, app, val));\t// 変数準備完了\n\n\t\t// BGM・効果音\n\t\tconst sndMng = new SoundMng(cfg, this.#hTag, val, this, this.sys);\n\t\tthis.#aDest.unshift(()=> sndMng.destroy());\n\n\t\t// 条件分岐、ラベル・ジャンプ、マクロ、しおり\n\t\tthis.#scrItr = new ScriptIterator(cfg, this.#hTag, this, val, prpPrs, sndMng, this.sys);\n\t\tthis.#aDest.unshift(()=> this.#scrItr.destroy());\n\n\t\t// デバッグ・その他\n\t\tconst dbgMng = new DebugMng(this.sys, this.#hTag, this.#scrItr);\n\t\tthis.#aDest.unshift(()=> dbgMng.destroy());\n\t\tthis.errScript = (mes, isThrow)=> {\n\t\t\tthis.stop();\n\t\t\tDebugMng.myTrace(mes);\n\t\t\tif (CmnLib.debugLog) console.log('🍜 SKYNovel err!');\n\t\t\tif (isThrow) throw mes;\n\t\t}\n\n\t\t// レイヤ共通、文字レイヤ、画像レイヤ\n\t\tthis.#layMng = new LayerMng(cfg, this.#hTag, app, val, this, this.#scrItr, this.sys, sndMng, prpPrs);\n\t\tthis.#aDest.unshift(()=> this.#layMng.destroy());\n\n\t\t// イベント\n\t\tthis.#evtMng = new EventMng(cfg, this.#hTag, app, this, this.#layMng, val, sndMng, this.#scrItr, this.sys);\n\t\tthis.#aDest.unshift(()=> this.#evtMng.destroy());\n\n\t\tthis.#aDest.unshift(()=> {\n\t\t\tthis.stop();\n\t\t\tthis.#isLoop = false;\n\n\t\t\tconst fncDummy = ()=> true;\n\t\t\tfor (const key in this.#hTag) this.#hTag[<keyof T_HTag>key] = fncDummy;\n\t\t});\n\t}\n\n\n\tdestroy() {\n\t\tthis.resume = this.destroy = ()=> { /* empty */ };\t// destroy()連打対策\n\n\t\tthis.cvs.parentElement?.removeChild(this.cvs);\n\t\t\t// (ギャラリーで)document.body はエラーになる\n\t\tfor (const f of this.#aDest) f();\n\t\tthis.#aDest = [];\n\t}\n\n\n\terrScript = (_mes: string, _isThrow = true)=> { /* empty */ }\n\n\n\tresumeByJumpOrCall(hArg: TArg) {\n\t\tif (hArg.url) {\n\t\t\tthis.#hTag.navigate_to(hArg);\n\t\t\tthis.#scrItr.jumpJustBefore();\n\t\t\treturn;\n\t\t}\n\n\t\t// eslint-disable-next-line @typescript-eslint/no-base-to-string\n\t\tthis.#setVal_Nochk('tmp', 'sn.eventArg', String(hArg.arg ?? ''));\n\t\tthis.#setVal_Nochk('tmp', 'sn.eventLabel', hArg.label ?? '');\n// console.log(`📜 %cresumeByJumpOrCall:%o`, 'color:#3B0;', hArg);\n\t\tif (argChk_Boolean(hArg, 'call', false)) {\n\t\t\tthis.#scrItr.subIdxToken();\t// 「コール元の次」に進めず、「コール元」に戻す\n\t\t\tif (this.#hTag.call(hArg)) return;\n\t\t}\n\t\telse {\n\t\t\tthis.#hTag.clear_event({});\n\t\t\tif (this.#hTag.jump(hArg)) return;\n\t\t}\n\t\tthis.resume();\n\t}\n\t\t#setVal_Nochk = (_scope: Scope, _nm: string, _val: T_VAL_BSNU, _autocast = false)=> { /* empty */ }\n\n\tresume() {\n// console.log(`📜🟢 resume!`);\n\t\t// スクリプトが動くとき、ブレイクマークなど消去\n\t\tthis.#layMng.clearBreak();\n\t\tthis.#scrItr.noticeBreak(false);\n\t\tthis.#evtMng.hideHint();\n\n\t\tqueueMicrotask(()=> {void this.#main()});\n\t}\n\treadonly stop = ()=> {\n// console.log(`📜🔴 stop!`);\n\t\tthis.#scrItr.noticeBreak(true);\n\t};\n\n\tsetLoop(isLoop: boolean, mes = '') {\n\t\t///console.log('setLoop:'+ (isLoop ?'resume!' :'stop!') +' mes:'+ mes);\n\t\t// eslint-disable-next-line no-cond-assign\n\t\tif (this.#isLoop = isLoop) this.resume(); else this.stop();\n\t\tthis.sys.setTitleInfo(mes ?` -- ${mes}中` :'');\n\t}\n\t// oxlint-disable-next-line no-unused-private-class-members\n\t#isLoop = true;\n\n\t//MARK: メイン処理(シナリオ解析)\n\tasync #main() {\n\t\tlet errHd = '';\n\t\ttry {\n\t\t\twhile (this.#isLoop) {\n\t\t\t\tlet token = this.#scrItr.nextToken();\n\t\t\t\tif (! token) return;\t// 初期化前に終了した場合向け\n\n\t\t\t\tconst uc = token.charCodeAt(0);\t// TokenTopUnicode\n\t\t\t\t// \\t タブ\n\t\t\t\tif (uc === 9) continue;\n\t\t\t\t// \\n 改行\n\t\t\t\tif (uc === 10) {this.#scrItr.addLineNum(token.length); continue}\n\t\t\t\t// [ タグ開始\n\t\t\t\tif (uc === 91) {\n\t\t\t\t\terrHd = 'タグ開始';\n\t\t\t\t\tif (this.#scrItr.isBreak(token)) return;\n\n\t\t\t\t\tconst [tag_name, args] = tagToken2Name_Args(token);\n\t\t\t\t\terrHd = `[${tag_name}]例外`;\n\n\t\t\t\t\tconst cl = (token.match(/\\n/g) ?? []).length;\n\t\t\t\t\tif (cl > 0) this.#scrItr.addLineNum(cl);\n\t\t\t\t\tif (await this.#scrItr.タグ解析(\n\t\t\t\t\t\t<keyof T_HTag>tag_name, args\n\t\t\t\t\t)) {this.stop(); return}\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\t// & 変数操作・変数表示\n\t\t\t\t// an時代・瀬戸愛羅さんより https://famibee.blog.fc2.com/blog-entry-245.html\n\t\t\t\tif (uc === 38) {\n\t\t\t\t\tif (! token.endsWith('&')) {\n\t\t\t\t\t\terrHd = '変数計算';\n\t\t\t\t\t\tif (this.#scrItr.isBreak(token)) return;\n\t\t\t\t\t\tconst o = splitAmpersand(token.slice(1));\n\t\t\t\t\t\to.name = this.#getValAmpersand(o.name);\n\t\t\t\t\t\to.text = String(this.#parse(o.text));\n\t\t\t\t\t\tthis.#hTag.let(o);\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\n\t\t\t\t\terrHd = '変数操作';\n\t\t\t\t\tif (token.charAt(1) === '&') throw new Error('「&表示&」書式では「&」指定が不要です');\n\t\t\t\t\ttoken = String(this.#parse( token.slice(1, -1) ));\n\t\t\t\t\t\t// -> 文字表示 へ\n\t\t\t\t}\n\t\t\t\t// ; コメント\n\t\t\t\telse if (uc === 59) continue;\n\t\t\t\t// * ラベル\n\t\t\t\telse if (uc === 42 && token.length > 1) continue;\n\n\t\t\t\t// 文字表示\n\t\t\t\terrHd = '文字表示';\n\t\t\t\tthis.#layMng.setNormalChWait();\n\t\t\t\tconst tl = this.#layMng.currentTxtlayForeNeedErr;\n\t\t\t\ttl.tagCh(token);\n\t\t\t}\n\t\t} catch (e) {\n\t\t\tthis.errScript(`${errHd} ${\n\t\t\t\te instanceof Error ?`mes=${e.message}(${e.name})` :String(e)\n\t\t\t}`, false);\n\t\t}\n\t}\n\t\t#getValAmpersand\t= (_v: string)=> '';\n\t\t#parse\t\t\t\t: (_s: string)=> T_VAL_DATA;\n\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"Main.js","names":["#init","#aDest","#hTag","#setVal_Nochk","#getValAmpersand","#parse","#scrItr","#layMng","#evtMng","#isLoop","#main"],"sources":["../src/sn/Main.ts"],"sourcesContent":["/* ***** BEGIN LICENSE BLOCK *****\n\tCopyright (c) 2018-2025 Famibee (famibee.blog38.fc2.com)\n\n\tThis software is released under the MIT License.\n\thttp://opensource.org/licenses/mit-license.php\n** ***** END LICENSE BLOCK ***** */\n\nimport {CmnLib, argChk_Boolean, parseColor} from './CmnLib';\nimport type {T_HTag, TArg} from './Grammar';\nimport type {T_Main, Scope, T_VAL_BSNU, T_VAL_DATA} from './CmnInterface';\nimport type {SysBase} from './SysBase';\nimport {DebugMng} from './DebugMng';\nimport {Config} from './Config';\nimport {splitAmpersand, tagToken2Name_Args} from './Grammar';\nimport type {ScriptIterator} from './ScriptIterator';\nimport type {LayerMng} from './LayerMng';\nimport type {EventMng} from './EventMng';\n\nimport {type IApplicationOptions, Application, utils} from 'pixi.js';\n\n\nconst\tSN_ID\t= 'skynovel';\n\n\nexport class Main implements T_Main {\n\tstatic\tasync generate(sys: SysBase): Promise<Main> {\n\t\tutils.skipHello();\n\n\t\tconst m = new Main(sys);\n\t\tawait m.#init()\n\t\t.catch((e: unknown)=> console.error('Main.generate err e:%o', e));\n\n\t\treturn m;\n\t}\n\n\n\tcvs\t\t\t: HTMLCanvasElement;\n\n\t// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n\t#hTag\t\t: T_HTag\t\t= Object.create(null);\t// タグ処理辞書\n\n\t#scrItr\t\t: ScriptIterator;\n\t#layMng\t\t: LayerMng;\n\t#evtMng\t\t: EventMng;\n\n\t#aDest\t\t: (()=> void)[]\t\t= [];\n\n\n\tprivate constructor(private readonly sys: SysBase) {}\n\n\tasync #init() {\n\t\tconst cfg = await Config.generate(this.sys);\n\t\tthis.sys.setMain(this, cfg);\n\n\t\tconst hApp: IApplicationOptions = {\n\t\t\twidth\t\t\t: cfg.oCfg.window.width,\n\t\t\theight\t\t\t: cfg.oCfg.window.height,\n\t\t\tbackgroundColor\t: parseColor(String(cfg.oCfg.init.bg_color)),\n\t\t\t\t// このString()は後方互換性のため必須\n\t\t\tresolution\t\t: globalThis.devicePixelRatio,\n\t\t};\n\n\t\tconst cvs = <HTMLCanvasElement | null>document.getElementById(SN_ID);\n\t\tif (cvs) {\n\t\t\tconst clone_cvs = <HTMLCanvasElement>cvs.cloneNode(true);\n\t\t\tclone_cvs.id = SN_ID;\n\t\t\thApp.view = cvs;\n\t\t\t// eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n\t\t\tconst p = cvs.parentNode!;\n\t\t\tthis.#aDest.unshift(()=> p.appendChild(clone_cvs));\n\t\t}\n\t\telse {\t// 自動的に作ってくれるが、どうも appendChild に遅延があるので\n\t\t\tconst c = document.createElement('canvas');\n\t\t\tc.id = SN_ID;\n\t\t\thApp.view = c;\n\t\t\tdocument.body.appendChild(c);\n\t\t\tthis.#aDest.unshift(()=> document.body.removeChild(c));\n\t\t}\n\n\t\tconst app = new Application(hApp);\n\t\tthis.#aDest.unshift(()=> {\n\t\t\tutils.clearTextureCache();\n\t\t\tthis.sys.destroy();\n\t\t\tapp.destroy(false);\t// remove canvas from DOM が非同期なのでウチがやる\n\t\t});\n\n\t\tthis.cvs = app.view;\n\t\tthis.cvs.id = SN_ID +'_act';\n\t\tif (! cvs) document.body.appendChild(this.cvs);\n\n\n\t\tconst cc = document.createElement('canvas').getContext('2d');\n\t\tif (! cc) throw '#init cc err';\n\t\tCmnLib.cc4ColorName = cc;\n\n\t\tconst [{Variable}, {PropParser}, {SoundMng}, {ScriptIterator}, {LayerMng}, {EventMng}, {Button}] = await Promise.all([\n\t\t\timport('./Variable'),\n\t\t\timport('./PropParser'),\n\t\t\timport('./SoundMng'),\n\t\t\timport('./ScriptIterator'),\n\t\t\timport('./LayerMng'),\n\t\t\timport('./EventMng'),\n\t\t\timport('./Button'),\n\t\t]);\n\n\t\tButton.init(cfg);\n\n\t\t// 変数\n\t\tconst val = new Variable(this.sys, cfg, this.#hTag);\n\t\tconst prpPrs = new PropParser(val, cfg.oCfg.init.escape);\n\t\tthis.#setVal_Nochk = (scope, nm, v, autocast)=> val.setVal_Nochk(scope, nm, v, autocast);\n\t\tthis.#getValAmpersand = v=> prpPrs.getValAmpersand(v);\n\t\tthis.#parse = s=> prpPrs.parse(s);\n\n\t\t// システム\n\t\tawait Promise.allSettled(this.sys.init(this.#hTag, app, val));\t// 変数準備完了\n\n\t\t// BGM・効果音\n\t\tconst sndMng = new SoundMng(cfg, this.#hTag, val, this, this.sys);\n\t\tthis.#aDest.unshift(()=> sndMng.destroy());\n\n\t\t// 条件分岐、ラベル・ジャンプ、マクロ、しおり\n\t\tthis.#scrItr = new ScriptIterator(cfg, this.#hTag, this, val, prpPrs, sndMng, this.sys);\n\t\tthis.#aDest.unshift(()=> this.#scrItr.destroy());\n\n\t\t// デバッグ・その他\n\t\tconst dbgMng = new DebugMng(this.sys, this.#hTag, this.#scrItr);\n\t\tthis.#aDest.unshift(()=> dbgMng.destroy());\n\t\tthis.errScript = (mes, isThrow)=> {\n\t\t\tthis.stop();\n\t\t\tDebugMng.myTrace(mes);\n\t\t\tif (CmnLib.debugLog) console.log('🍜 SKYNovel err!');\n\t\t\tif (isThrow) throw mes;\n\t\t}\n\n\t\t// レイヤ共通、文字レイヤ、画像レイヤ\n\t\tthis.#layMng = new LayerMng(cfg, this.#hTag, app, val, this, this.#scrItr, this.sys, sndMng, prpPrs);\n\t\tthis.#aDest.unshift(()=> this.#layMng.destroy());\n\n\t\t// イベント\n\t\tthis.#evtMng = new EventMng(cfg, this.#hTag, app, this, this.#layMng, val, sndMng, this.#scrItr, this.sys);\n\t\tthis.#aDest.unshift(()=> this.#evtMng.destroy());\n\n\t\tthis.#aDest.unshift(()=> {\n\t\t\tthis.stop();\n\t\t\tthis.#isLoop = false;\n\n\t\t\tconst fncDummy = ()=> true;\n\t\t\tfor (const key in this.#hTag) this.#hTag[<keyof T_HTag>key] = fncDummy;\n\t\t});\n\t}\n\n\n\tdestroy() {\n\t\tthis.resume = this.destroy = ()=> { /* empty */ };\t// destroy()連打対策\n\n\t\tthis.cvs.parentElement?.removeChild(this.cvs);\n\t\t\t// (ギャラリーで)document.body はエラーになる\n\t\tfor (const f of this.#aDest) f();\n\t\tthis.#aDest = [];\n\t}\n\n\n\terrScript = (_mes: string, _isThrow = true)=> { /* empty */ }\n\n\n\tresumeByJumpOrCall(hArg: TArg) {\n\t\tif (hArg.url) {\n\t\t\tthis.#hTag.navigate_to(hArg);\n\t\t\tthis.#scrItr.jumpJustBefore();\n\t\t\treturn;\n\t\t}\n\n\t\t// eslint-disable-next-line @typescript-eslint/no-base-to-string\n\t\tthis.#setVal_Nochk('tmp', 'sn.eventArg', String(hArg.arg ?? ''));\n\t\tthis.#setVal_Nochk('tmp', 'sn.eventLabel', hArg.label ?? '');\n// console.log(`📜 %cresumeByJumpOrCall:%o`, 'color:#3B0;', hArg);\n\t\tif (argChk_Boolean(hArg, 'call', false)) {\n\t\t\tthis.#scrItr.subIdxToken();\t// 「コール元の次」に進めず、「コール元」に戻す\n\t\t\tif (this.#hTag.call(hArg)) return;\n\t\t}\n\t\telse {\n\t\t\tthis.#hTag.clear_event({});\n\t\t\tif (this.#hTag.jump(hArg)) return;\n\t\t}\n\t\tthis.resume();\n\t}\n\t\t#setVal_Nochk = (_scope: Scope, _nm: string, _val: T_VAL_BSNU, _autocast = false)=> { /* empty */ }\n\n\tresume() {\n// console.log(`📜🟢 resume!`);\n\t\t// スクリプトが動くとき、ブレイクマークなど消去\n\t\tthis.#layMng.clearBreak();\n\t\tthis.#scrItr.noticeBreak(false);\n\t\tthis.#evtMng.hideHint();\n\n\t\tqueueMicrotask(()=> {void this.#main()});\n\t}\n\treadonly stop = ()=> {\n// console.log(`📜🔴 stop!`);\n\t\tthis.#scrItr.noticeBreak(true);\n\t};\n\n\tsetLoop(isLoop: boolean, mes = '') {\n\t\t///console.log('setLoop:'+ (isLoop ?'resume!' :'stop!') +' mes:'+ mes);\n\t\t// eslint-disable-next-line no-cond-assign\n\t\tif (this.#isLoop = isLoop) this.resume(); else this.stop();\n\t\tthis.sys.setTitleInfo(mes ?` -- ${mes}中` :'');\n\t}\n\t// oxlint-disable-next-line no-unused-private-class-members\n\t#isLoop = true;\n\n\t//MARK: メイン処理(シナリオ解析)\n\tasync #main() {\n\t\tlet errHd = '';\n\t\ttry {\n\t\t\twhile (this.#isLoop) {\n\t\t\t\tlet token = this.#scrItr.nextToken();\n\t\t\t\tif (! token) return;\t// 初期化前に終了した場合向け\n\n\t\t\t\tconst uc = token.charCodeAt(0);\t// TokenTopUnicode\n\t\t\t\t// \\t タブ\n\t\t\t\tif (uc === 9) continue;\n\t\t\t\t// \\n 改行\n\t\t\t\tif (uc === 10) {this.#scrItr.addLineNum(token.length); continue}\n\t\t\t\t// [ タグ開始\n\t\t\t\tif (uc === 91) {\n\t\t\t\t\terrHd = 'タグ開始';\n\t\t\t\t\tif (this.#scrItr.isBreak(token)) return;\n\n\t\t\t\t\tconst [tag_name, args] = tagToken2Name_Args(token);\n\t\t\t\t\terrHd = `[${tag_name}]例外`;\n\n\t\t\t\t\tconst cl = (token.match(/\\n/g) ?? []).length;\n\t\t\t\t\tif (cl > 0) this.#scrItr.addLineNum(cl);\n\t\t\t\t\tif (await this.#scrItr.タグ解析(\n\t\t\t\t\t\t<keyof T_HTag>tag_name, args\n\t\t\t\t\t)) {this.stop(); return}\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\t// & 変数操作・変数表示\n\t\t\t\t// an時代・瀬戸愛羅さんより https://famibee.blog.fc2.com/blog-entry-245.html\n\t\t\t\tif (uc === 38) {\n\t\t\t\t\tif (! token.endsWith('&')) {\n\t\t\t\t\t\terrHd = '変数計算';\n\t\t\t\t\t\tif (this.#scrItr.isBreak(token)) return;\n\t\t\t\t\t\tconst o = splitAmpersand(token.slice(1));\n\t\t\t\t\t\to.name = this.#getValAmpersand(o.name);\n\t\t\t\t\t\to.text = String(this.#parse(o.text));\n\t\t\t\t\t\tthis.#hTag.let(o);\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\n\t\t\t\t\terrHd = '変数操作';\n\t\t\t\t\tif (token.charAt(1) === '&') throw new Error('「&表示&」書式では「&」指定が不要です');\n\t\t\t\t\ttoken = String(this.#parse( token.slice(1, -1) ));\n\t\t\t\t\t\t// -> 文字表示 へ\n\t\t\t\t}\n\t\t\t\t// ; コメント\n\t\t\t\telse if (uc === 59) continue;\n\t\t\t\t// * ラベル\n\t\t\t\telse if (uc === 42 && token.length > 1) continue;\n\n\t\t\t\t// 文字表示\n\t\t\t\terrHd = '文字表示';\n\t\t\t\tthis.#layMng.setNormalChWait();\n\t\t\t\tconst tl = this.#layMng.currentTxtlayForeNeedErr;\n\t\t\t\ttl.tagCh(token);\n\t\t\t}\n\t\t} catch (e) {\n\t\t\tthis.errScript(`${errHd} ${\n\t\t\t\te instanceof Error ?`mes=${e.message}(${e.name})` :String(e)\n\t\t\t}`, false);\n\t\t}\n\t}\n\t\t#getValAmpersand\t= (_v: string)=> '';\n\t\t#parse\t\t\t\t: (_s: string)=> T_VAL_DATA;\n\n}\n"],"mappings":"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"}
@@ -1,6 +1,8 @@
1
- import { t as __commonJSMin } from "./chunk.js";
2
- import { p as int } from "./CmnLib.js";
3
- var import_parsimmon_umd_min = (/* @__PURE__ */ __commonJSMin(((e, t) => {
1
+ import { t as e } from "./rolldown-runtime.js";
2
+ import { p as t } from "./CmnLib.js";
3
+ //#endregion
4
+ //#region src/sn/PropParser.ts
5
+ var n = (/* @__PURE__ */ e(((e, t) => {
4
6
  (function(n, r) {
5
7
  typeof e == "object" && typeof t == "object" ? t.exports = r() : typeof define == "function" && define.amd ? define([], r) : typeof e == "object" ? e.Parsimmon = r() : n.Parsimmon = r();
6
8
  })(typeof self < "u" ? self : e, function() {
@@ -683,41 +685,41 @@ var import_parsimmon_umd_min = (/* @__PURE__ */ __commonJSMin(((e, t) => {
683
685
  }, e.exports = r;
684
686
  }]);
685
687
  });
686
- })))(), PropParser = class e {
688
+ })))(), r = class e {
689
+ val;
687
690
  #e = null;
688
691
  constructor(e, r = "\\") {
689
692
  this.val = e;
690
693
  function i(e) {
691
694
  let t = [];
692
- for (let r of e) t.push((typeof r == "string" ? (0, import_parsimmon_umd_min.string)(r) : (0, import_parsimmon_umd_min.regex)(r)).trim(import_parsimmon_umd_min.optWhitespace));
693
- return (0, import_parsimmon_umd_min.alt)(...t);
695
+ for (let r of e) t.push((typeof r == "string" ? (0, n.string)(r) : (0, n.regex)(r)).trim(n.optWhitespace));
696
+ return (0, n.alt)(...t);
694
697
  }
695
698
  function a(e) {
696
- return (0, import_parsimmon_umd_min.alt)(...Object.keys(e).sort().map((t) => (typeof e[t] == "string" ? (0, import_parsimmon_umd_min.string)(e[t]) : (0, import_parsimmon_umd_min.regex)(e[t])).trim(import_parsimmon_umd_min.optWhitespace).result(t)));
699
+ return (0, n.alt)(...Object.keys(e).sort().map((t) => (typeof e[t] == "string" ? (0, n.string)(e[t]) : (0, n.regex)(e[t])).trim(n.optWhitespace).result(t)));
697
700
  }
698
701
  function o(e, t) {
699
- let r = (0, import_parsimmon_umd_min.lazy)(() => (0, import_parsimmon_umd_min.seq)(e, r).or(t));
702
+ let r = (0, n.lazy)(() => (0, n.seq)(e, r).or(t));
700
703
  return r;
701
704
  }
702
705
  function s(e, t) {
703
- return (0, import_parsimmon_umd_min.seqMap)(t, e.many(), (e, t) => t.reduce((e, t) => [t, e], e));
706
+ return (0, n.seqMap)(t, e.many(), (e, t) => t.reduce((e, t) => [t, e], e));
704
707
  }
705
708
  function c(e, t) {
706
- let r = (0, import_parsimmon_umd_min.lazy)(() => t.chain((t) => (0, import_parsimmon_umd_min.seq)(e, (0, import_parsimmon_umd_min.of)(t), r).or((0, import_parsimmon_umd_min.of)(t))));
709
+ let r = (0, n.lazy)(() => t.chain((t) => (0, n.seq)(e, (0, n.of)(t), r).or((0, n.of)(t))));
707
710
  return r;
708
711
  }
709
712
  function l(e, t) {
710
- return (0, import_parsimmon_umd_min.seqMap)(t, (0, import_parsimmon_umd_min.seq)(e, t).many(), (e, t) => t.reduce((e, t) => [
713
+ return (0, n.seqMap)(t, (0, n.seq)(e, t).many(), (e, t) => t.reduce((e, t) => [
711
714
  t[0],
712
715
  e,
713
716
  t[1]
714
717
  ], e));
715
718
  }
716
- let u = (0, import_parsimmon_umd_min.alt)((0, import_parsimmon_umd_min.alt)((0, import_parsimmon_umd_min.regex)(/-?(0|[1-9][0-9]*)\.[0-9]+/), (0, import_parsimmon_umd_min.regex)(/0x[0-9a-fA-F]+/)).map(Number), (0, import_parsimmon_umd_min.alt)((0, import_parsimmon_umd_min.regex)(/-?(0|[1-9][0-9]*)/)).map((e) => int(e))).map((e) => ["!num!", e]).desc("number"), d = (0, import_parsimmon_umd_min.string)("null").map(() => ["!str!", null]), f = (0, import_parsimmon_umd_min.regex)(/(true|false)/).map((e) => ["!bool!", e === "true"]).desc("boolean"), p = (0, import_parsimmon_umd_min.regex)(/* @__PURE__ */ RegExp(`(?:"(?:\\${r}["'#\\n]|[^"])*"|'(?:\\${r}["'#\\n]|[^'])*'|\\#(?:\\${r}["'#\\n]|[^#])*\\#)`)).map((e) => ["!str!", e.slice(1, -1).replaceAll(r, "")]).desc("string"), m = /\[[^\]]+\]/g, h = (0, import_parsimmon_umd_min.regex)(/-?(?:(?:tmp|sys|save|mp):)?[^\s!-/:-@[-^`{-~]+(?:\.[^\s!-/:-@[-^`{-~]+|\[[^\]]+\])*(?:@str)?/).map((e) => {
719
+ let u = (0, n.alt)((0, n.alt)((0, n.regex)(/-?(0|[1-9][0-9]*)\.[0-9]+/), (0, n.regex)(/0x[0-9a-fA-F]+/)).map(Number), (0, n.alt)((0, n.regex)(/-?(0|[1-9][0-9]*)/)).map((e) => t(e))).map((e) => ["!num!", e]).desc("number"), d = (0, n.string)("null").map(() => ["!str!", null]), f = (0, n.regex)(/(true|false)/).map((e) => ["!bool!", e === "true"]).desc("boolean"), p = (0, n.regex)(RegExp(`(?:"(?:\\${r}["'#\\n]|[^"])*"|'(?:\\${r}["'#\\n]|[^'])*'|\\#(?:\\${r}["'#\\n]|[^#])*\\#)`)).map((e) => ["!str!", e.slice(1, -1).replaceAll(r, "")]).desc("string"), m = /\[[^\]]+\]/g, h = (0, n.regex)(/-?(?:(?:tmp|sys|save|mp):)?[^\s!-/:-@[-^`{-~]+(?:\.[^\s!-/:-@[-^`{-~]+|\[[^\]]+\])*(?:@str)?/).map((e) => {
717
720
  let t = e.replaceAll(m, (e) => "." + this.parse(e.slice(1, -1))), n = this.val.getVal(t);
718
721
  return n == null ? ["!str!", n] : typeof n == "boolean" ? ["!bool!", n] : Object.prototype.toString.call(n) === "[object String]" ? ["!str!", String(n)] : ["!num!", Number(n)];
719
- }).desc("string"), g = (0, import_parsimmon_umd_min.lazy)(() => (0, import_parsimmon_umd_min.string)("(").then(this.#e).skip((0, import_parsimmon_umd_min.string)(")")).or(u).or(d).or(f).or(p).or(h));
720
- this.#e = [
722
+ }).desc("string"), g = (0, n.lazy)(() => (0, n.string)("(").then(this.#e).skip((0, n.string)(")")).or(u).or(d).or(f).or(p).or(h)), _ = [
721
723
  {
722
724
  type: o,
723
725
  ops: i([/[A-Za-z_][A-Za-z0-9_]*(?=\()/])
@@ -803,7 +805,8 @@ var import_parsimmon_umd_min = (/* @__PURE__ */ __commonJSMin(((e, t) => {
803
805
  type: c,
804
806
  ops: i(["?"])
805
807
  }
806
- ].reduce((e, t) => t.type(t.ops, e), g).trim(import_parsimmon_umd_min.optWhitespace);
808
+ ].reduce((e, t) => t.type(t.ops, e), g);
809
+ this.#e = _.trim(n.optWhitespace);
807
810
  }
808
811
  parse(e) {
809
812
  let t = this.#e.parse(e);
@@ -846,8 +849,8 @@ var import_parsimmon_umd_min = (/* @__PURE__ */ __commonJSMin(((e, t) => {
846
849
  return Object.prototype.toString.call(t) === "[object String]" || Object.prototype.toString.call(n) === "[object String]" ? String(t) + String(n) : Number(t) + Number(n);
847
850
  },
848
851
  "-": (e) => Number(this.#t(e.shift())) - Number(this.#t(e.shift())),
849
- int: (e) => int(this.#r(e.shift())),
850
- parseInt: (e) => int(this.#n.Number(e)),
852
+ int: (e) => t(this.#r(e.shift())),
853
+ parseInt: (e) => t(this.#n.Number(e)),
851
854
  Number: (e) => {
852
855
  let t = this.#t(e.shift());
853
856
  return Object.prototype.toString.call(t) === "[object String]" ? this.#r(this.#e.parse(String(t)).value) : Number(t);
@@ -874,7 +877,7 @@ var import_parsimmon_umd_min = (/* @__PURE__ */ __commonJSMin(((e, t) => {
874
877
  "!=": (e) => !this.#n["=="](e),
875
878
  "===": (e) => {
876
879
  let t = this.#t(e.shift()), n = this.#t(e.shift());
877
- return Object.prototype.toString.call(t) == Object.prototype.toString.call(n) ? String(t) === String(n) : !1;
880
+ return Object.prototype.toString.call(t) == Object.prototype.toString.call(n) && String(t) === String(n);
878
881
  },
879
882
  "!==": (e) => !this.#n["==="](e),
880
883
  "&": (e) => Number(this.#t(e.shift())) & Number(this.#t(e.shift())),
@@ -932,6 +935,7 @@ var import_parsimmon_umd_min = (/* @__PURE__ */ __commonJSMin(((e, t) => {
932
935
  return r;
933
936
  }
934
937
  };
935
- export { PropParser };
938
+ //#endregion
939
+ export { r as PropParser };
936
940
 
937
941
  //# sourceMappingURL=PropParser.js.map