nadesiko3 3.5.1 → 3.5.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.
package/README.md CHANGED
@@ -118,9 +118,13 @@ sudo apt install xdotool
118
118
 
119
119
  ```bash
120
120
  npm test
121
- npm run test:all
122
121
  ```
123
122
 
123
+ ## Colabでビルドテスト
124
+
125
+ Google Colabでなでしこのビルドテストできます。
126
+ - [ノートブック](https://colab.research.google.com/drive/1a-Choj3tCBCA1R7x7vPdNQN48vGzBd7E?usp=sharing)
127
+
124
128
  ## なでしこの開発履歴
125
129
 
126
130
  「なでしこ3」の開発は2017年に始まり、以後コツコツとバージョンアップを続けています。
package/core/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "nadesiko3core",
3
- "version": "3.5.0",
3
+ "version": "3.5.2",
4
4
  "description": "Japanese Programming Language Nadesiko v3 core",
5
5
  "main": "index.mjs",
6
6
  "type": "module",
@@ -1,8 +1,8 @@
1
1
  // 実際のバージョン定義 (自動生成されるので以下を編集しない)
2
2
  const coreVersion = {
3
- version: '3.5.0',
3
+ version: '3.5.2',
4
4
  major: 3,
5
5
  minor: 5,
6
- patch: 0
6
+ patch: 2
7
7
  };
8
8
  export default coreVersion;
@@ -11,9 +11,9 @@ export interface NakoCoreVersion {
11
11
  }
12
12
  // 実際のバージョン定義 (自動生成されるので以下を編集しない)
13
13
  const coreVersion: NakoCoreVersion = {
14
- version: '3.5.0',
14
+ version: '3.5.2',
15
15
  major: 3,
16
16
  minor: 5,
17
- patch: 0
17
+ patch: 2
18
18
  }
19
19
  export default coreVersion
@@ -19,7 +19,8 @@ const DNCL_SIMPLES = {
19
19
  // 'word:or': ['or', 'または'],
20
20
  'word:not': ['not', '!'],
21
21
  'word:乱数': ['word', '乱数範囲'],
22
- 'word:表示': ['word', '連続表示']
22
+ 'word:表示': ['word', '連続表示'],
23
+ 'word:と定義': ['ここまで', 'ここまで'] // 「と定義」→「ここまで」
23
24
  };
24
25
  /**
25
26
  * DNCLのソースコードをなでしこに変換する
@@ -22,7 +22,8 @@ const DNCL_SIMPLES: { [key: string]: string[] } = {
22
22
  // 'word:or': ['or', 'または'],
23
23
  'word:not': ['not', '!'],
24
24
  'word:乱数': ['word', '乱数範囲'],
25
- 'word:表示': ['word', '連続表示']
25
+ 'word:表示': ['word', '連続表示'],
26
+ 'word:と定義': ['ここまで', 'ここまで'] // 「と定義」→「ここまで」
26
27
  }
27
28
 
28
29
  /**
@@ -197,7 +197,7 @@ export class NakoParser extends NakoParserBase {
197
197
  }
198
198
  return null;
199
199
  }
200
- /** [廃止] 非同期モード @returns {Ast} */
200
+ /** [廃止] 非同期モード #11 @returns {Ast} */
201
201
  yASyncMode() {
202
202
  this.logger.error('『非同期モード』構文は廃止されました(https://nadesi.com/v3/doc/go.php?1028)。', this.peek());
203
203
  const map = this.peekSourceMap();
@@ -162,7 +162,7 @@ export class NakoParser extends NakoParserBase {
162
162
  return null
163
163
  }
164
164
 
165
- /** [廃止] 非同期モード @returns {Ast} */
165
+ /** [廃止] 非同期モード #11 @returns {Ast} */
166
166
  yASyncMode (): Ast {
167
167
  this.logger.error('『非同期モード』構文は廃止されました(https://nadesi.com/v3/doc/go.php?1028)。', this.peek())
168
168
  const map = this.peekSourceMap()
@@ -137,7 +137,7 @@ export default {
137
137
  sys.chk = (value, constId) => {
138
138
  if (typeof value === 'undefined') {
139
139
  const cp = sys.constPools[constId];
140
- const { msgNo, msgArgs, fileNo, lineNo } = cp;
140
+ const [msgNo, msgArgs, fileNo, lineNo] = cp;
141
141
  let msg = sys.constPoolsTemplate[msgNo];
142
142
  for (const i in msgArgs) {
143
143
  const arg = sys.constPoolsTemplate[msgArgs[i]];
@@ -125,7 +125,7 @@ export default {
125
125
  sys.chk = (value:any, constId: number): any => {
126
126
  if (typeof value === 'undefined') {
127
127
  const cp = sys.constPools[constId]
128
- const { msgNo, msgArgs, fileNo, lineNo } = cp
128
+ const [ msgNo, msgArgs, fileNo, lineNo ] = cp
129
129
  let msg = sys.constPoolsTemplate[msgNo]
130
130
  for (const i in msgArgs) {
131
131
  const arg = sys.constPoolsTemplate[msgArgs[i]]
@@ -176,18 +176,18 @@ describe('dncl2 (core #41)', async () => {
176
176
  '\n', '2,1,0')
177
177
  })
178
178
  it('「情報」サンプル問題-当選数を決めるプログラム2', async () => {
179
- await cmp('' +
180
- '!DNCL2\n' +
181
- 'Tomei = ["A党", "B党", "C党", "D党"]\n' +
182
- 'Tokuhyo = [1200, 660, 1440, 180]\n' +
183
- 'sousuu = 0\n' +
184
- 'giseki = 6\n' +
185
- 'm を 0 から 3 まで 1 ずつ増やしながら繰り返す:\n' +
186
- '⎿ sousuu = sousuu + Tokuhyo[m]\n' +
187
- 'kizyunsuu = sousuu / giseki\n' +
188
- 'm を 0 から 3 まで 1 ずつ増やしながら繰り返す:\n' +
189
- '⎿ 表示する(Tomei[m], ":", Tokuhyo[m] / kizyunsuu)\n' +
190
- '\n', 'A党:2.0689655172413794\nB党:1.1379310344827587\nC党:2.4827586206896552\nD党:0.3103448275862069')
179
+ await cmp(`
180
+ !DNCL2
181
+ Tomei = ["A党", "B党", "C党", "D党"]
182
+ Tokuhyo = [1200, 660, 1440, 180]
183
+ sousuu = 0
184
+ giseki = 6
185
+ m を 0 から 3 まで 1 ずつ増やしながら繰り返す:
186
+ ⎿ sousuu = sousuu + Tokuhyo[m]
187
+ kizyunsuu = sousuu / giseki
188
+ m を 0 から 3 まで 1 ずつ増やしながら繰り返す:
189
+ ⎿ 表示する(Tomei[m], ":", Tokuhyo[m] / kizyunsuu)
190
+ `, 'A党:2.0689655172413794\nB党:1.1379310344827587\nC党:2.4827586206896552\nD党:0.3103448275862069')
191
191
  })
192
192
  it('「情報」サンプル問題-当選数を決めるプログラム2改', async () => {
193
193
  await cmp('' +
@@ -243,4 +243,32 @@ describe('dncl2 (core #41)', async () => {
243
243
  '2**3を表示;' +
244
244
  '', '8')
245
245
  })
246
+ it('関数・・・定義する (core #145)', async () => {
247
+ await cmp(`
248
+ !DNCL2
249
+ 関数の点数評価(tensu)を
250
+ もし tensu >=85 ならば:
251
+ 表示する("勝って兜の緒を締めよ")
252
+ そうでなく、もし 85 > tensu and tensu >65ならば:
253
+ 表示する("ドンマイ:気持ちを切り替えよう。")
254
+ そうでなければ:
255
+ 表示する("自分のこれからと真剣に向き合おう")
256
+ と定義する
257
+ tensu = 60
258
+ 点数評価(tensu)
259
+ `, '自分のこれからと真剣に向き合おう')
260
+ await cmp(`
261
+ !DNCL2
262
+ 関数の点数評価(tensu)を
263
+ もし tensu >=85 ならば:
264
+ 表示する("勝って兜の緒を締めよ")
265
+ そうでなく、もし 85 > tensu and tensu >65ならば:
266
+ 表示する("ドンマイ:気持ちを切り替えよう。")
267
+ そうでなければ:
268
+ 表示する("自分のこれからと真剣に向き合おう")
269
+ と定義する
270
+ tensu = 80
271
+ 点数評価(tensu)
272
+ `, 'ドンマイ:気持ちを切り替えよう。')
273
+ })
246
274
  })
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "nadesiko3",
3
- "version": "3.5.1",
3
+ "version": "3.5.3",
4
4
  "description": "Japanese Programming Language",
5
5
  "type": "module",
6
6
  "main": "src/index.mjs",
@@ -120,7 +120,7 @@
120
120
  "eslint-plugin-react": "^7.25.3",
121
121
  "fetch-mock": "^9.11.0",
122
122
  "hotkeys-js": "^3.9.4",
123
- "markdownlint": "^0.33.0",
123
+ "markdownlint": "^0.34.0",
124
124
  "markdownlint-cli": "^0.38.0",
125
125
  "mocha": "^10.2.0",
126
126
  "mocha-css": "^1.0.1",
package/release/_hash.txt CHANGED
@@ -39,27 +39,27 @@ plugin_turtle.js:
39
39
  sha256(base64): M10RQpHSqvnWVYyn8HtvcDiFXW3m0qfdRf5p1J/Cpqo=
40
40
  sha512(base64): eQGdHJUa8h8N8hu3N4U/7YpdPCeqDH3zw2nAHtnzrFpUtYmIOSclURwNVt9CjtANG6SdzATVIvzY6lBKc7Kagw==
41
41
  plugin_webworker.js:
42
- md5(hex): 4091c25bd82bd854a82536c8739b668a
43
- sha256(hex): 6e53c41e9ee9d67ddede5c0232153f7ac725b0f8132b398c4131b2128aedee97
44
- sha256(base64): blPEHp7p1n3e3lwCMhU/esclsPgTKzmMQTGyEort7pc=
45
- sha512(base64): 3H0ofY7G3KGEahnY5JzdBAeNnzfMmww4RdXembOOAhq3x7GWsz3p4574hP+tx6VrpBngGaWUuOyDimfMvjAldQ==
42
+ md5(hex): 4567961b2a7eb0133affe3b64cad4c7f
43
+ sha256(hex): ecc869abe5f2466ec22edfd90419d3b475ad0d0e652f4ca731d1c7627c870523
44
+ sha256(base64): 7Mhpq+XyRm7CLt/ZBBnTtHWtDQ5lL0ynMdHHYnyHBSM=
45
+ sha512(base64): YAjXGsckAfwzk7wsfPGAZNzLAHrzZZyeLH910+IcCl5p8v4oSkQJhFTrgKwOxlLJJNf+2cDM+zIXG6glJr7tgA==
46
46
  plugin_weykturtle3d.js:
47
47
  md5(hex): bbdae69dc29f4d5b7e1804205c5b47cb
48
48
  sha256(hex): 14eff384871b3b884d3c31ddf99c4f947220dabe3fddec53ecb358bc6e4bc13b
49
49
  sha256(base64): FO/zhIcbO4hNPDHd+ZxPlHIg2r4/3exT7LNYvG5LwTs=
50
50
  sha512(base64): TH7Xjq3mkiXW4wy88JLUIASpIN7lYEMlPR62yDlFEJ6vx8oKKv13hoW0Oyx/U0OEjUPZ1vI9zGUHck9UKg+mwQ==
51
51
  version.js:
52
- md5(hex): 8e3f2a130e70d124adb8cbd2c53b2f95
53
- sha256(hex): a1b6f02b77dd18567756d6f4ef53f632dd5301bb426a9260cca3aa88a2592178
54
- sha256(base64): obbwK3fdGFZ3Vtb071P2Mt1TAbtCapJgzKOqiKJZIXg=
55
- sha512(base64): Dlc/iJbpHo9rlb+S9KvjcwjtLOLRio8USOtIG952pTSTpB4jrhpn53e9IFSo9xwhduxkxIu9fq9aWc8zmkstWg==
52
+ md5(hex): 1ad3dad6f29d9380e50a6017bc214706
53
+ sha256(hex): b4177cd6b44e3bff8efd574aa937015798644ef3f5f7a0f93b60db50fb610183
54
+ sha256(base64): tBd81rROO/+O/VdKqTcBV5hkTvP196D5O2DbUPthAYM=
55
+ sha512(base64): zEXYO/6gk5drFiWSSsfdNXWHfYP/wom6suEGVh7yAW+6TdbCgBi4Ca3KKQJyDojsjkYAfti+QhNhtITYKCsfug==
56
56
  wnako3.js:
57
- md5(hex): f5d739437afb408bc05ef435763599c3
58
- sha256(hex): 323ee6dcda52896deaf903f36aab8c62d378e2a2082203852d112cd054323a71
59
- sha256(base64): Mj7m3NpSiW3q+QPzaquMYtN44qIIIgOFLREs0FQyOnE=
60
- sha512(base64): 34+UGE/8OF5PaD96vjdlqN9oYD7Oe+/DGuLHV+6wYT27/IzDVawSGUegdd4k3d7BX2WqVU5yXVFnIiOb3Jf2gw==
57
+ md5(hex): 87ae1c866586864ba0f10e7ab0a24e4a
58
+ sha256(hex): 29650372d2cf9141239fb2b6f9cc80633af3c601de49b510924d66e787139b20
59
+ sha256(base64): KWUDctLPkUEjn7K2+cyAYzrzxgHeSbUQkk1m54cTmyA=
60
+ sha512(base64): Oq1Cc7f4mTE5knchtGR8U2zygQBSM6xrlW7I77qf0VEzlVVX2q62oizv74IHDpE6ZGmazvIGDXFEm6SuzXAN7A==
61
61
  wnako3webworker.js:
62
- md5(hex): 86e1a4d4b5ee089fc92c42dca9ae7741
63
- sha256(hex): 53ea302655f2ed59e4bd7ddede501177bc55da232faa8f6b6459e461e02c7c62
64
- sha256(base64): U+owJlXy7VnkvX3e3lARd7xV2iMvqo9rZFnkYeAsfGI=
65
- sha512(base64): YWk1OH+3SQ2BvG7EpZFy+8io3tVUQ/m+4pav8VYK8ChZVltP9ppInLp3csQ69hty/fOgt0dR6mMQDMtMOR3G/g==
62
+ md5(hex): 5f20e8bb0358f825c23abb6d2500a59b
63
+ sha256(hex): 867a4875cc61495290aa73e5c0d54d735f5851038f3d27e05f786fff52fc1e41
64
+ sha256(base64): hnpIdcxhSVKQqnPlwNVNc19YUQOPPSfgX3hv/1L8HkE=
65
+ sha512(base64): AkNZuih+1uPWZZYfCYcMneOrvvpufJ9WMXHYwH5NTDpz5r0+14P3F/2rdBmktYchdYS3S8LQmAmfCKK8kQdRzQ==
@@ -1,13 +1,13 @@
1
- <script defer src="https://nadesi.com/v3/cdn.php?v=3.5.1&f=release/command.json.js" integrity="sha512-VWse4UnLJdqshARVFtdO/78vYUsCuGEJq0eBlQSd1Jl+9oiUhBnfWZKYaiw4azDYiaxm7jSPX0IchvF9GLjUww==" crossorigin="anonymous"></script>
2
- <script defer src="https://nadesi.com/v3/cdn.php?v=3.5.1&f=release/editor.js" integrity="sha512-b+YEoSAoQ2Xmdts+75seadjHm5vjw2kEOJxvoWyJz1tGghMG1YOFmHUcCXOqjNIvNv1voOlFajp64xFh7L/+PA==" crossorigin="anonymous"></script>
3
- <script defer src="https://nadesi.com/v3/cdn.php?v=3.5.1&f=release/nako_gen_async.js" integrity="sha512-/73lycspxJ921s+NmqaOKF58X9rCsgEZrZT4O4sW1aCe5CSXtQevIasAoGgIoL3a5RmlaghbaIVASwAgmoE3+g==" crossorigin="anonymous"></script>
4
- <script defer src="https://nadesi.com/v3/cdn.php?v=3.5.1&f=release/plugin_caniuse.js" integrity="sha512-NH52R7jESOM+p3yqg2n5ngcQEHHVYTYnxVVhC1K+sSIdoif76+36YFuUmIl0Um+/gsR089geaabYpOpqCY0u5Q==" crossorigin="anonymous"></script>
5
- <script defer src="https://nadesi.com/v3/cdn.php?v=3.5.1&f=release/plugin_datetime.js" integrity="sha512-aZf1UQqdrf3hekiBvJaOqroF5yCWm18BkLlScbxocfnVR/4+DJoVGQt+ISxFyY20GUHDyvLspWfsc0ObJSUVog==" crossorigin="anonymous"></script>
6
- <script defer src="https://nadesi.com/v3/cdn.php?v=3.5.1&f=release/plugin_kansuji.js" integrity="sha512-5/TRx8Ke69YV9s8M67sOWrJmhhHK4MMLbMJh5nKg3oV8spmOOTn6tXl/TxYk8YWkTurOTCaXtRFuR9h2yEDt7w==" crossorigin="anonymous"></script>
7
- <script defer src="https://nadesi.com/v3/cdn.php?v=3.5.1&f=release/plugin_markup.js" integrity="sha512-yQJ1nsb6FM58ElnwqPQjSrmzSpqSgJ2kSPlPmoc51oDrzBQJfdYF9gWic9+9BUD33jJtBDddfMg63VBEsyANSw==" crossorigin="anonymous"></script>
8
- <script defer src="https://nadesi.com/v3/cdn.php?v=3.5.1&f=release/plugin_turtle.js" integrity="sha512-eQGdHJUa8h8N8hu3N4U/7YpdPCeqDH3zw2nAHtnzrFpUtYmIOSclURwNVt9CjtANG6SdzATVIvzY6lBKc7Kagw==" crossorigin="anonymous"></script>
9
- <script defer src="https://nadesi.com/v3/cdn.php?v=3.5.1&f=release/plugin_webworker.js" integrity="sha512-3H0ofY7G3KGEahnY5JzdBAeNnzfMmww4RdXembOOAhq3x7GWsz3p4574hP+tx6VrpBngGaWUuOyDimfMvjAldQ==" crossorigin="anonymous"></script>
10
- <script defer src="https://nadesi.com/v3/cdn.php?v=3.5.1&f=release/plugin_weykturtle3d.js" integrity="sha512-TH7Xjq3mkiXW4wy88JLUIASpIN7lYEMlPR62yDlFEJ6vx8oKKv13hoW0Oyx/U0OEjUPZ1vI9zGUHck9UKg+mwQ==" crossorigin="anonymous"></script>
11
- <script defer src="https://nadesi.com/v3/cdn.php?v=3.5.1&f=release/version.js" integrity="sha512-Dlc/iJbpHo9rlb+S9KvjcwjtLOLRio8USOtIG952pTSTpB4jrhpn53e9IFSo9xwhduxkxIu9fq9aWc8zmkstWg==" crossorigin="anonymous"></script>
12
- <script defer src="https://nadesi.com/v3/cdn.php?v=3.5.1&f=release/wnako3.js" integrity="sha512-34+UGE/8OF5PaD96vjdlqN9oYD7Oe+/DGuLHV+6wYT27/IzDVawSGUegdd4k3d7BX2WqVU5yXVFnIiOb3Jf2gw==" crossorigin="anonymous"></script>
13
- <script defer src="https://nadesi.com/v3/cdn.php?v=3.5.1&f=release/wnako3webworker.js" integrity="sha512-YWk1OH+3SQ2BvG7EpZFy+8io3tVUQ/m+4pav8VYK8ChZVltP9ppInLp3csQ69hty/fOgt0dR6mMQDMtMOR3G/g==" crossorigin="anonymous"></script>
1
+ <script defer src="https://nadesi.com/v3/cdn.php?v=3.5.3&f=release/command.json.js" integrity="sha512-VWse4UnLJdqshARVFtdO/78vYUsCuGEJq0eBlQSd1Jl+9oiUhBnfWZKYaiw4azDYiaxm7jSPX0IchvF9GLjUww==" crossorigin="anonymous"></script>
2
+ <script defer src="https://nadesi.com/v3/cdn.php?v=3.5.3&f=release/editor.js" integrity="sha512-b+YEoSAoQ2Xmdts+75seadjHm5vjw2kEOJxvoWyJz1tGghMG1YOFmHUcCXOqjNIvNv1voOlFajp64xFh7L/+PA==" crossorigin="anonymous"></script>
3
+ <script defer src="https://nadesi.com/v3/cdn.php?v=3.5.3&f=release/nako_gen_async.js" integrity="sha512-/73lycspxJ921s+NmqaOKF58X9rCsgEZrZT4O4sW1aCe5CSXtQevIasAoGgIoL3a5RmlaghbaIVASwAgmoE3+g==" crossorigin="anonymous"></script>
4
+ <script defer src="https://nadesi.com/v3/cdn.php?v=3.5.3&f=release/plugin_caniuse.js" integrity="sha512-NH52R7jESOM+p3yqg2n5ngcQEHHVYTYnxVVhC1K+sSIdoif76+36YFuUmIl0Um+/gsR089geaabYpOpqCY0u5Q==" crossorigin="anonymous"></script>
5
+ <script defer src="https://nadesi.com/v3/cdn.php?v=3.5.3&f=release/plugin_datetime.js" integrity="sha512-aZf1UQqdrf3hekiBvJaOqroF5yCWm18BkLlScbxocfnVR/4+DJoVGQt+ISxFyY20GUHDyvLspWfsc0ObJSUVog==" crossorigin="anonymous"></script>
6
+ <script defer src="https://nadesi.com/v3/cdn.php?v=3.5.3&f=release/plugin_kansuji.js" integrity="sha512-5/TRx8Ke69YV9s8M67sOWrJmhhHK4MMLbMJh5nKg3oV8spmOOTn6tXl/TxYk8YWkTurOTCaXtRFuR9h2yEDt7w==" crossorigin="anonymous"></script>
7
+ <script defer src="https://nadesi.com/v3/cdn.php?v=3.5.3&f=release/plugin_markup.js" integrity="sha512-yQJ1nsb6FM58ElnwqPQjSrmzSpqSgJ2kSPlPmoc51oDrzBQJfdYF9gWic9+9BUD33jJtBDddfMg63VBEsyANSw==" crossorigin="anonymous"></script>
8
+ <script defer src="https://nadesi.com/v3/cdn.php?v=3.5.3&f=release/plugin_turtle.js" integrity="sha512-eQGdHJUa8h8N8hu3N4U/7YpdPCeqDH3zw2nAHtnzrFpUtYmIOSclURwNVt9CjtANG6SdzATVIvzY6lBKc7Kagw==" crossorigin="anonymous"></script>
9
+ <script defer src="https://nadesi.com/v3/cdn.php?v=3.5.3&f=release/plugin_webworker.js" integrity="sha512-YAjXGsckAfwzk7wsfPGAZNzLAHrzZZyeLH910+IcCl5p8v4oSkQJhFTrgKwOxlLJJNf+2cDM+zIXG6glJr7tgA==" crossorigin="anonymous"></script>
10
+ <script defer src="https://nadesi.com/v3/cdn.php?v=3.5.3&f=release/plugin_weykturtle3d.js" integrity="sha512-TH7Xjq3mkiXW4wy88JLUIASpIN7lYEMlPR62yDlFEJ6vx8oKKv13hoW0Oyx/U0OEjUPZ1vI9zGUHck9UKg+mwQ==" crossorigin="anonymous"></script>
11
+ <script defer src="https://nadesi.com/v3/cdn.php?v=3.5.3&f=release/version.js" integrity="sha512-zEXYO/6gk5drFiWSSsfdNXWHfYP/wom6suEGVh7yAW+6TdbCgBi4Ca3KKQJyDojsjkYAfti+QhNhtITYKCsfug==" crossorigin="anonymous"></script>
12
+ <script defer src="https://nadesi.com/v3/cdn.php?v=3.5.3&f=release/wnako3.js" integrity="sha512-Oq1Cc7f4mTE5knchtGR8U2zygQBSM6xrlW7I77qf0VEzlVVX2q62oizv74IHDpE6ZGmazvIGDXFEm6SuzXAN7A==" crossorigin="anonymous"></script>
13
+ <script defer src="https://nadesi.com/v3/cdn.php?v=3.5.3&f=release/wnako3webworker.js" integrity="sha512-AkNZuih+1uPWZZYfCYcMneOrvvpufJ9WMXHYwH5NTDpz5r0+14P3F/2rdBmktYchdYS3S8LQmAmfCKK8kQdRzQ==" crossorigin="anonymous"></script>
@@ -1,2 +1,2 @@
1
- !function(){"use strict";const e={"初期化":{type:"func",josi:[],pure:!0,fn:function(e){e._webworker={setNakoHandler:function(n){n.onmessage=o=>{const t=o.data||{type:"",data:""},r=t.type||"",s=t.data||"";switch(r){case"output":n.onoutput&&n.onoutput.apply(e,[s,o]);break;case"data":n.ondata&&n.ondata.apply(e,[s,o]);break;case"error":e.logger.error(s.noColor)}},n.onerror=n=>{const o=new Error(void 0!==n.message?n.message:"no message");e.logger.error(o)},n.onerrormessage=n=>{const o=new Error(void 0!==n.message?n.message:"no message");e.logger.error(o)}},inWorker:()=>"undefined"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope,getBaseUrlFromTag:()=>{if(!self.document)return"";const e="plugin_webworker.js";let n=location.pathname;if("/"!==n.substr(n.length-1,1)){const e=n.split("/");n="/"&e.slice(e.length-1,1).join("/")}const o=document.querySelectorAll("script");for(let t=0;t<o.length;t++){let r=o[t].src||"";const s=r.indexOf(e);if(s>=0&&(r.length-s==19||"?&#".indexOf(r.substr(s+19,1))>=0))return r=r.substring(0,s),"/"===r.substring(0,1)?location.origin+r:/^[a-zA-Z]+:\/\//.test(r)?r:location.origin+n+r}return location.origin+n}},e.__v0["ワーカーURL"]=e._webworker.getBaseUrlFromTag()}},"対象イベント":{type:"const",value:""},"受信データ":{type:"const",value:""},"ワーカーURL":{type:"const",value:""},"ワーカーURL設定":{type:"func",josi:[["に","へ","と"]],pure:!0,fn:function(e,n){e&&"/"!==e.substring(e.length-1)&&(e+="/"),n.__v0["ワーカーURL"]=e},return_none:!0},"ワーカー起動":{type:"func",josi:[["で","を","の"]],pure:!0,fn:function(e,n){return new Worker(e)},return_none:!1},"ワーカーJS起動":{type:"func",josi:[["で","を","の"]],pure:!0,fn:function(e,n){const o=new Blob([e],{type:"application/javascript"}),t=URL.createObjectURL(o);return new Worker(t)},return_none:!1},"NAKOワーカー起動":{type:"func",josi:[["で"]],isVariableJosi:!0,pure:!0,fn:function(e,n){let o;if(void 0===n&&(n=e,e=void 0),void 0!==e){if(!(e instanceof Array))throw new Error("プラグインはファイル名を配列で指定してください");const t=n.__v0["ワーカーURL"];let r=`importScripts('${t}wnako3webworker.js')\n`;const s=e.length;let i;for(i=0;i<s;i++)r+=`importScripts('${t}${e[i]}')\n`;const a=new Blob([r],{type:"application/javascript"});o=URL.createObjectURL(a)}else o=n.__v0["ワーカーURL"]+"wnako3webworker.js";const t=new Worker(o);return t&&n._webworker.setNakoHandler(t),t},return_none:!1},"NAKOワーカーハンドラ設定":{type:"func",josi:[["に","へ","の"]],pure:!0,fn:function(e,n){n._webworker.setNakoHandler(e)},return_none:!0},"NAKOワーカーデータ受信時":{type:"func",josi:[["で"],["から"]],isVariableJosi:!0,pure:!1,fn:function(e,n,o){void 0===o&&(o=n,n=self),e=o.__findVar(e,null),n.ondata=(n,t)=>(o.__v0["受信データ"]=n,o.__v0["対象イベント"]=t,e(t,o))},return_none:!0},"NAKOワーカー表示時":{type:"func",josi:[["で"],["から"]],pure:!1,fn:function(e,n,o){e=o.__findVar(e,null),n.onoutput=(n,t)=>(o.__v0["受信データ"]=n,o.__v0["対象イベント"]=t,e(t,o))},return_none:!0},"ワーカーメッセージ受信時":{type:"func",josi:[["で"],["から"]],isVariableJosi:!0,pure:!1,fn:function(e,n,o){void 0===o&&(o=n,n=self),e=o.__findVar(e,null),n.onmessage=n=>(o.__v0["受信データ"]=n.data,o.__v0["対象イベント"]=n,e(n,o))},return_none:!0},"NAKOワーカープログラム起動":{type:"func",josi:[["に","で"],["を"]],pure:!0,fn:function(e,n,o){const t={type:"run",data:o.__modName+"__"+n};e.postMessage(t)},return_none:!0},"NAKOワーカーリセット":{type:"func",josi:[["を"]],pure:!0,fn:function(e,n){e.postMessage({type:"reset",data:""})},return_none:!0},"ワーカー終了":{type:"func",josi:[["を"]],isVariableJosi:!0,pure:!0,fn:function(e,n){void 0===n&&(n=e,e=self),e.terminate()},return_none:!0},"NAKOワーカー終了":{type:"func",josi:[["を"]],isVariableJosi:!0,pure:!0,fn:function(e,n){if(void 0===n)return void self.close();e.postMessage({type:"close",data:""})},return_none:!0},"NAKOワーカーデータ送信":{type:"func",josi:[["を"],["に","へ"]],isVariableJosi:!0,pure:!0,fn:function(e,n,o){void 0===o&&(o=n,n=self);const t={type:"data",data:e};n.postMessage(t)},return_none:!0},"ワーカーメッセージ送信":{type:"func",josi:[["を"],["に","へ"]],isVariableJosi:!0,pure:!0,fn:function(e,n,o){void 0===o&&(o=n,n=self),n.postMessage(e)},return_none:!0},"NAKOワーカー転送":{type:"func",josi:[["を"],["に","へ"]],isVariableJosi:!0,pure:!1,fn:function(e,n,o){void 0===o&&(o=n,n=self);const t=[];if("string"==typeof e&&(e=[e]),e.forEach((e=>{if(e=o.__modName+"__"+e,void 0!==o.__varslist[2][e])t.push({type:"val",name:e,content:o.__varslist[2][e]});else{if(void 0===o.__varslist[1][e])throw console.error("指定した名前のユーザ関数もしくはグローバル変数がありません:"+e),new Error("指定した名前のユーザ関数もしくはグローバル変数がありません:"+e);t.push({type:"func",name:e,content:{meta:o.gen.nakoFuncList[e],func:Object.assign({},o.compiler.funclist[e],{fn:null})}})}})),t.length>0){const e={type:"trans",data:t};n.postMessage(e)}},return_none:!0}};"object"==typeof navigator&&"object"==typeof navigator.nako3&&navigator.nako3.addPluginObject("PluginWebWorker",e)}();
1
+ !function(){"use strict";const e={"初期化":{type:"func",josi:[],pure:!0,fn:function(e){e._webworker={setNakoHandler:function(n){n.onmessage=o=>{const t=o.data||{type:"",data:""},r=t.type||"",s=t.data||"";switch(r){case"output":n.onoutput&&n.onoutput.apply(e,[s,o]);break;case"data":n.ondata&&n.ondata.apply(e,[s,o]);break;case"error":e.logger.error(s.noColor)}},n.onerror=n=>{const o=new Error(void 0!==n.message?n.message:"no message");e.logger.error(o)},n.onerrormessage=n=>{const o=new Error(void 0!==n.message?n.message:"no message");e.logger.error(o)}},inWorker:()=>"undefined"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope,getBaseUrlFromTag:()=>{if(!self.document)return"";const e="plugin_webworker.js";let n=location.pathname;if("/"!==n.substr(n.length-1,1)){const e=n.split("/");n="/"&e.slice(e.length-1,1).join("/")}const o=document.querySelectorAll("script");for(let t=0;t<o.length;t++){let r=o[t].src||"";const s=r.indexOf(e);if(s>=0&&(r.length-s==19||"?&#".indexOf(r.substr(s+19,1))>=0))return r=r.substring(0,s),"/"===r.substring(0,1)?location.origin+r:/^[a-zA-Z]+:\/\//.test(r)?r:location.origin+n+r}return location.origin+n}},e.__v0["ワーカーURL"]=e._webworker.getBaseUrlFromTag()}},"対象イベント":{type:"const",value:""},"受信データ":{type:"const",value:""},"ワーカーURL":{type:"const",value:""},"ワーカーURL設定":{type:"func",josi:[["に","へ","と"]],pure:!0,fn:function(e,n){e&&"/"!==e.substring(e.length-1)&&(e+="/"),n.__v0["ワーカーURL"]=e},return_none:!0},"ワーカー起動":{type:"func",josi:[["で","を","の"]],pure:!0,fn:function(e,n){return new Worker(e)},return_none:!1},"ワーカーJS起動":{type:"func",josi:[["で","を","の"]],pure:!0,fn:function(e,n){const o=new Blob([e],{type:"application/javascript"}),t=URL.createObjectURL(o);return new Worker(t)},return_none:!1},"NAKOワーカー起動":{type:"func",josi:[["で"]],isVariableJosi:!0,pure:!0,fn:function(e,n){let o;if(void 0===n&&(n=e,e=void 0),void 0!==e){if(!(e instanceof Array))throw new Error("プラグインはファイル名を配列で指定してください");const t=n.__v0["ワーカーURL"];let r=`importScripts('${t}wnako3webworker.js')\n`;const s=e.length;let i;for(i=0;i<s;i++)r+=`importScripts('${t}${e[i]}')\n`;const a=new Blob([r],{type:"application/javascript"});o=URL.createObjectURL(a)}else o=n.__v0["ワーカーURL"]+"wnako3webworker.js";const t=new Worker(o);return t&&n._webworker.setNakoHandler(t),t},return_none:!1},"NAKOワーカーハンドラ設定":{type:"func",josi:[["に","へ","の"]],pure:!0,fn:function(e,n){n._webworker.setNakoHandler(e)},return_none:!0},"NAKOワーカーデータ受信時":{type:"func",josi:[["で"],["から"]],isVariableJosi:!0,pure:!1,fn:function(e,n,o){void 0===o&&(o=n,n=self),e=o.__findVar(e,null),n.ondata=(n,t)=>(o.__v0["受信データ"]=n,o.__v0["対象イベント"]=t,e(t,o))},return_none:!0},"NAKOワーカー表示時":{type:"func",josi:[["で"],["から"]],pure:!1,fn:function(e,n,o){e=o.__findVar(e,null),n.onoutput=(n,t)=>(o.__v0["受信データ"]=n,o.__v0["対象イベント"]=t,e(t,o))},return_none:!0},"ワーカーメッセージ受信時":{type:"func",josi:[["で"],["から"]],isVariableJosi:!0,pure:!1,fn:function(e,n,o){void 0===o&&(o=n,n=self),e=o.__findVar(e,null),n.onmessage=n=>(o.__v0["受信データ"]=n.data,o.__v0["対象イベント"]=n,e(n,o))},return_none:!0},"NAKOワーカープログラム起動":{type:"func",josi:[["に","で"],["を"]],pure:!0,fn:function(e,n,o){const t={type:"run",data:n};e.postMessage(t)},return_none:!0},"NAKOワーカーリセット":{type:"func",josi:[["を"]],pure:!0,fn:function(e,n){e.postMessage({type:"reset",data:""})},return_none:!0},"ワーカー終了":{type:"func",josi:[["を"]],isVariableJosi:!0,pure:!0,fn:function(e,n){void 0===n&&(n=e,e=self),e.terminate()},return_none:!0},"NAKOワーカー終了":{type:"func",josi:[["を"]],isVariableJosi:!0,pure:!0,fn:function(e,n){if(void 0===n)return void self.close();e.postMessage({type:"close",data:""})},return_none:!0},"NAKOワーカーデータ送信":{type:"func",josi:[["を"],["に","へ"]],isVariableJosi:!0,pure:!0,fn:function(e,n,o){void 0===o&&(o=n,n=self);const t={type:"data",data:e};n.postMessage(t)},return_none:!0},"ワーカーメッセージ送信":{type:"func",josi:[["を"],["に","へ"]],isVariableJosi:!0,pure:!0,fn:function(e,n,o){void 0===o&&(o=n,n=self),n.postMessage(e)},return_none:!0},"NAKOワーカー転送":{type:"func",josi:[["を"],["に","へ"]],isVariableJosi:!0,pure:!1,fn:function(e,n,o){void 0===o&&(o=n,n=self);const t=[],r=[];if("string"==typeof e&&(e=[e]),e.forEach((e=>{if(-1===e.indexOf("__"))for(const n of o.__modList){const t=n+"__"+e;if(void 0!==o.__varslist[2][t]||void 0!==o.__varslist[1][t]){e=t;break}}if(e.indexOf("__")>-1){const n=e.split("__")[0];-1===t.indexOf(n)&&t.push(n)}if(void 0!==o.__varslist[2][e])r.push({type:"val",name:e,content:o.__varslist[2][e]});else{if(void 0===o.__varslist[1][e])throw console.error("指定した名前のユーザ関数もしくはグローバル変数がありません:"+e),new Error("指定した名前のユーザ関数もしくはグローバル変数がありません:"+e);r.push({type:"func",name:e,content:{meta:o.gen.nakoFuncList[e],func:Object.assign({},o.compiler.funclist[e],{fn:null})}})}})),r.length>0){const e=[];for(const n of t)e.push({name:n,export:o.compiler.moduleExport[n]});r.push({type:"env",name:"modlist",content:e}),r.push({type:"env",name:"constPools",content:o.constPools}),r.push({type:"env",name:"constPoolsTemplate",content:o.constPoolsTemplate});const s={type:"trans",data:r};n.postMessage(s)}},return_none:!0}};"object"==typeof navigator&&"object"==typeof navigator.nako3&&navigator.nako3.addPluginObject("PluginWebWorker",e)}();
2
2
  //# sourceMappingURL=plugin_webworker.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"plugin_webworker.js","mappings":"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","sources":["webpack://nadesiko3/./src/plugin_webworker.mjs"],"sourcesContent":["// @ts-nocheck\nconst PluginWebWorker = {\n '初期化': {\n type: 'func',\n josi: [],\n pure: true,\n fn: function (sys) {\n sys._webworker = {\n setNakoHandler: function (work) {\n work.onmessage = (event) => {\n const data = event.data || { type: '', data: '' }\n const type = data.type || ''\n const value = data.data || ''\n switch (type) {\n case 'output':\n if (work.onoutput) {\n work.onoutput.apply(sys, [value, event])\n }\n break\n case 'data':\n if (work.ondata) {\n work.ondata.apply(sys, [value, event])\n }\n break\n case 'error':\n sys.logger.error(value.noColor)\n break\n }\n }\n work.onerror = (event) => {\n const e = new Error(typeof event.message !== 'undefined' ? event.message : 'no message')\n sys.logger.error(e)\n }\n work.onerrormessage = (event) => {\n const e = new Error(typeof event.message !== 'undefined' ? event.message : 'no message')\n sys.logger.error(e)\n }\n },\n inWorker: () => {\n // eslint-disable-next-line no-undef\n return typeof WorkerGlobalScope !== 'undefined' && self instanceof WorkerGlobalScope\n },\n getBaseUrlFromTag: () => {\n if (!self.document) { return '' }\n const pluginName = 'plugin_webworker.js'\n let path = location.pathname\n if (path.substr(path.length - 1, 1) !== '/') {\n const paths = path.split('/')\n path = paths.slice(paths.length - 1, 1).join('/') & '/'\n }\n const scripts = document.querySelectorAll('script')\n for (let i = 0; i < scripts.length; i++) {\n const script = scripts[i]\n let src = script.src || ''\n const index = src.indexOf(pluginName)\n if (index >= 0) {\n if (src.length - index === pluginName.length ||\n '?&#'.indexOf(src.substr(index + pluginName.length, 1)) >= 0) {\n src = src.substring(0, index)\n if (src.substring(0, 1) === '/') {\n // スクリプトソースはorigin無しの絶対パス\n return location.origin + src\n }\n if (/^[a-zA-Z]+:\\/\\//.test(src)) {\n // スクリプトソースは絶対URI\n return src\n }\n // スクリプトソースはorigin無しの相対パス\n return location.origin + path + src\n }\n }\n }\n // スクリプトソースが見つからなかったのでドキュメントのURIを返す\n return location.origin + path\n }\n }\n sys.__v0['ワーカーURL'] = sys._webworker.getBaseUrlFromTag()\n }\n },\n // @イベント定数\n '対象イベント': { type: 'const', value: '' }, // @たいしょういべんと\n '受信データ': { type: 'const', value: '' }, // @たいしょういべんと\n\n 'ワーカーURL': { type: 'const', value: '' }, // @わーかーURL\n 'ワーカーURL設定': { // @なでしこv3のファイルのあるURLを設定 // @わーかーURLせってい\n type: 'func',\n josi: [['に', 'へ', 'と']],\n pure: true,\n fn: function (url, sys) {\n if (url && url.substring(url.length - 1) !== '/') {\n url += '/'\n }\n sys.__v0['ワーカーURL'] = url\n },\n return_none: true\n },\n\n // @NAKOワーカー\n 'ワーカー起動': { // @指定したURLでWebWorkerを起動する。ワーカオブジェクトを返す。 // @わーかーきどう\n type: 'func',\n josi: [['で', 'を', 'の']],\n pure: true,\n fn: function (url, sys) {\n return new Worker(url)\n },\n return_none: false\n },\n 'ワーカーJS起動': { // @指定したJavascriptのソースでWebWorkerを起動する。ワーカオブジェクトを返す。 // @わーかーJSきどう\n type: 'func',\n josi: [['で', 'を', 'の']],\n pure: true,\n fn: function (src, sys) {\n const blob = new Blob([src], { type: 'application/javascript' })\n const url = URL.createObjectURL(blob)\n return new Worker(url)\n },\n return_none: false\n },\n 'NAKOワーカー起動': { // @指定したなでしこ3のWebWorkerを起動する。ワーカオブジェクトを返す。 // @NAKOわーかーきどう\n type: 'func',\n josi: [['で']],\n isVariableJosi: true,\n pure: true,\n fn: function (plugins, sys) {\n let url\n if (typeof sys === 'undefined') { sys = plugins; plugins = undefined }\n if (plugins !== undefined) {\n if (!(plugins instanceof Array)) {\n throw new Error('プラグインはファイル名を配列で指定してください')\n }\n const baseurl = sys.__v0['ワーカーURL']\n let code = `importScripts('${baseurl}wnako3webworker.js')\\n`\n const l = plugins.length\n let i\n for (i = 0; i < l; i++) {\n code += `importScripts('${baseurl}${plugins[i]}')\\n`\n }\n const blob = new Blob([code], { type: 'application/javascript' })\n url = URL.createObjectURL(blob)\n } else {\n url = sys.__v0['ワーカーURL'] + 'wnako3webworker.js'\n }\n const myWorker = new Worker(url)\n if (myWorker) {\n sys._webworker.setNakoHandler(myWorker)\n }\n return myWorker\n },\n return_none: false\n },\n 'NAKOワーカーハンドラ設定': { // @ワーカーにNAKOワーカーのための設定を行う。 // @NAKOわーかーはんどらせってい\n type: 'func',\n josi: [['に', 'へ', 'の']],\n pure: true,\n fn: function (work, sys) {\n sys._webworker.setNakoHandler(work)\n },\n return_none: true\n },\n 'NAKOワーカーデータ受信時': { // @無名関数Fでなでしこv3エンジンに対してワーカーメッセージによりデータを受信した時に実行するイベントを設定。『受信データ』に受信したデータ。『対象イベント』にイベント引数。 // @NAKOわーかーでーたじゅしんしたとき\n type: 'func',\n josi: [['で'], ['から']],\n isVariableJosi: true,\n pure: false,\n fn: function (func, work, sys) {\n if (typeof sys === 'undefined') { sys = work; work = self }\n func = sys.__findVar(func, null) // 文字列指定なら関数に変換\n work.ondata = (data, e) => {\n sys.__v0['受信データ'] = data\n sys.__v0['対象イベント'] = e\n return func(e, sys)\n }\n },\n return_none: true\n },\n 'NAKOワーカー表示時': { // @無名関数Fでなでしこv3エンジンに対してワーカーメッセージにより表示データを受信した時に実行するイベントを設定。『受信データ』に表示しようとしたデータ。『対象イベント』にイベント引数。 // @NAKOわーかーひょうじしたとき\n type: 'func',\n josi: [['で'], ['から']],\n pure: false,\n fn: function (func, work, sys) {\n func = sys.__findVar(func, null) // 文字列指定なら関数に変換\n work.onoutput = (data, e) => {\n sys.__v0['受信データ'] = data\n sys.__v0['対象イベント'] = e\n return func(e, sys)\n }\n },\n return_none: true\n },\n 'ワーカーメッセージ受信時': { // @無名関数Fでworkに対してメッセージを受信した時に実行するイベントを設定。『受信データ』に受信したデータ。『対象イベント』にイベント引数。 // @わーかーめっせーじじゅしんしたとき\n type: 'func',\n josi: [['で'], ['から']],\n isVariableJosi: true,\n pure: false,\n fn: function (func, work, sys) {\n if (typeof sys === 'undefined') { sys = work; work = self }\n func = sys.__findVar(func, null) // 文字列指定なら関数に変換\n work.onmessage = (e) => {\n sys.__v0['受信データ'] = e.data\n sys.__v0['対象イベント'] = e\n return func(e, sys)\n }\n },\n return_none: true\n },\n 'NAKOワーカープログラム起動': { // @WORKERに固有の形式でプログラムの転送と実行行う。 // @NAKOわーかーぷろぐらむきどう\n type: 'func',\n josi: [['に', 'で'], ['を']],\n pure: true,\n fn: function (work, data, sys) {\n const msg = {\n type: 'run',\n data: sys.__modName + '__' + data\n }\n work.postMessage(msg)\n },\n return_none: true\n },\n 'NAKOワーカーリセット': { // @WORKERに固有の形式でプログラムの転送と実行行う。 // @わーかーりせっと\n type: 'func',\n josi: [['を']],\n pure: true,\n fn: function (work, sys) {\n const msg = {\n type: 'reset',\n data: ''\n }\n work.postMessage(msg)\n },\n return_none: true\n },\n 'ワーカー終了': { // @WORKERを終了する。 // @わーかーしゅうりょう\n type: 'func',\n josi: [['を']],\n isVariableJosi: true,\n pure: true,\n fn: function (work, sys) {\n if (typeof sys === 'undefined') { sys = work; work = self }\n work.terminate()\n },\n return_none: true\n },\n 'NAKOワーカー終了': { // @WORKERを終了する。 // @NAKOわーかーしゅうりょう\n type: 'func',\n josi: [['を']],\n isVariableJosi: true,\n pure: true,\n fn: function (work, sys) {\n if (typeof sys === 'undefined') {\n self.close()\n return\n }\n const msg = {\n type: 'close',\n data: ''\n }\n work.postMessage(msg)\n },\n return_none: true\n },\n 'NAKOワーカーデータ送信': { // @WORKERに固有の形式でデータを送信する。 // @NAKOわーかーでーたそうしん\n type: 'func',\n josi: [['を'], ['に', 'へ']],\n isVariableJosi: true,\n pure: true,\n fn: function (data, work, sys) {\n if (typeof sys === 'undefined') { sys = work; work = self }\n const msg = {\n type: 'data',\n data: data\n }\n work.postMessage(msg)\n },\n return_none: true\n },\n 'ワーカーメッセージ送信': { // @WORKERにメッセージを送信する。 // @わーかーめっせーじそうしん\n type: 'func',\n josi: [['を'], ['に', 'へ']],\n isVariableJosi: true,\n pure: true,\n fn: function (msg, work, sys) {\n if (typeof sys === 'undefined') { sys = work; work = self }\n work.postMessage(msg)\n },\n return_none: true\n },\n 'NAKOワーカー転送': { // @WORKERにユーザー定義関数またはユーザ定義のグローバル変数を転送する。 // @NAKOわーかーてんそう\n type: 'func',\n josi: [['を'], ['に', 'へ']],\n isVariableJosi: true,\n pure: false,\n fn: function (datas, work, sys) {\n if (typeof sys === 'undefined') { sys = work; work = self }\n const obj = []\n if (typeof datas === 'string') { datas = [datas] }\n datas.forEach(data => {\n data = sys.__modName + '__' + data\n if (typeof sys.__varslist[2][data] !== 'undefined') {\n obj.push({\n type: 'val',\n name: data,\n content: sys.__varslist[2][data]\n })\n } else\n if (typeof sys.__varslist[1][data] !== 'undefined') {\n obj.push({\n type: 'func',\n name: data,\n content: {\n meta: sys.gen.nakoFuncList[data],\n func: Object.assign({}, sys.compiler.funclist[data], { fn: null })\n }\n })\n } else {\n console.error('指定した名前のユーザ関数もしくはグローバル変数がありません:' + data)\n throw new Error('指定した名前のユーザ関数もしくはグローバル変数がありません:' + data)\n }\n })\n if (obj.length > 0) {\n const msg = {\n type: 'trans',\n data: obj\n }\n work.postMessage(msg)\n }\n },\n return_none: true\n }\n}\n\nexport default PluginWebWorker\n\nif (typeof (navigator) === 'object' && typeof (navigator.nako3) === 'object') {\n navigator.nako3.addPluginObject('PluginWebWorker', PluginWebWorker)\n}\n\n"],"names":["PluginWebWorker","type","josi","pure","fn","sys","_webworker","setNakoHandler","work","onmessage","event","data","value","onoutput","apply","ondata","logger","error","noColor","onerror","e","Error","message","onerrormessage","inWorker","WorkerGlobalScope","self","getBaseUrlFromTag","document","pluginName","path","location","pathname","substr","length","paths","split","slice","join","scripts","querySelectorAll","i","src","index","indexOf","substring","origin","test","__v0","url","return_none","Worker","blob","Blob","URL","createObjectURL","isVariableJosi","plugins","undefined","Array","baseurl","code","l","myWorker","func","__findVar","msg","__modName","postMessage","terminate","close","datas","obj","forEach","__varslist","push","name","content","console","meta","gen","nakoFuncList","Object","assign","compiler","funclist","navigator","nako3","addPluginObject"],"sourceRoot":""}
1
+ {"version":3,"file":"plugin_webworker.js","mappings":"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","sources":["webpack://nadesiko3/./src/plugin_webworker.mjs"],"sourcesContent":["// @ts-nocheck\nconst PluginWebWorker = {\n '初期化': {\n type: 'func',\n josi: [],\n pure: true,\n fn: function (sys) {\n sys._webworker = {\n setNakoHandler: function (work) {\n work.onmessage = (event) => {\n const data = event.data || { type: '', data: '' }\n const type = data.type || ''\n const value = data.data || ''\n switch (type) {\n case 'output':\n if (work.onoutput) {\n work.onoutput.apply(sys, [value, event])\n }\n break\n case 'data':\n if (work.ondata) {\n work.ondata.apply(sys, [value, event])\n }\n break\n case 'error':\n sys.logger.error(value.noColor)\n break\n }\n }\n work.onerror = (event) => {\n const e = new Error(typeof event.message !== 'undefined' ? event.message : 'no message')\n sys.logger.error(e)\n }\n work.onerrormessage = (event) => {\n const e = new Error(typeof event.message !== 'undefined' ? event.message : 'no message')\n sys.logger.error(e)\n }\n },\n inWorker: () => {\n // eslint-disable-next-line no-undef\n return typeof WorkerGlobalScope !== 'undefined' && self instanceof WorkerGlobalScope\n },\n getBaseUrlFromTag: () => {\n if (!self.document) { return '' }\n const pluginName = 'plugin_webworker.js'\n let path = location.pathname\n if (path.substr(path.length - 1, 1) !== '/') {\n const paths = path.split('/')\n path = paths.slice(paths.length - 1, 1).join('/') & '/'\n }\n const scripts = document.querySelectorAll('script')\n for (let i = 0; i < scripts.length; i++) {\n const script = scripts[i]\n let src = script.src || ''\n const index = src.indexOf(pluginName)\n if (index >= 0) {\n if (src.length - index === pluginName.length ||\n '?&#'.indexOf(src.substr(index + pluginName.length, 1)) >= 0) {\n src = src.substring(0, index)\n if (src.substring(0, 1) === '/') {\n // スクリプトソースはorigin無しの絶対パス\n return location.origin + src\n }\n if (/^[a-zA-Z]+:\\/\\//.test(src)) {\n // スクリプトソースは絶対URI\n return src\n }\n // スクリプトソースはorigin無しの相対パス\n return location.origin + path + src\n }\n }\n }\n // スクリプトソースが見つからなかったのでドキュメントのURIを返す\n return location.origin + path\n }\n }\n sys.__v0['ワーカーURL'] = sys._webworker.getBaseUrlFromTag()\n }\n },\n // @イベント定数\n '対象イベント': { type: 'const', value: '' }, // @たいしょういべんと\n '受信データ': { type: 'const', value: '' }, // @たいしょういべんと\n\n 'ワーカーURL': { type: 'const', value: '' }, // @わーかーURL\n 'ワーカーURL設定': { // @なでしこv3のファイルのあるURLを設定 // @わーかーURLせってい\n type: 'func',\n josi: [['に', 'へ', 'と']],\n pure: true,\n fn: function (url, sys) {\n if (url && url.substring(url.length - 1) !== '/') {\n url += '/'\n }\n sys.__v0['ワーカーURL'] = url\n },\n return_none: true\n },\n\n // @NAKOワーカー\n 'ワーカー起動': { // @指定したURLでWebWorkerを起動する。ワーカオブジェクトを返す。 // @わーかーきどう\n type: 'func',\n josi: [['で', 'を', 'の']],\n pure: true,\n fn: function (url, sys) {\n return new Worker(url)\n },\n return_none: false\n },\n 'ワーカーJS起動': { // @指定したJavascriptのソースでWebWorkerを起動する。ワーカオブジェクトを返す。 // @わーかーJSきどう\n type: 'func',\n josi: [['で', 'を', 'の']],\n pure: true,\n fn: function (src, sys) {\n const blob = new Blob([src], { type: 'application/javascript' })\n const url = URL.createObjectURL(blob)\n return new Worker(url)\n },\n return_none: false\n },\n 'NAKOワーカー起動': { // @指定したなでしこ3のWebWorkerを起動する。ワーカオブジェクトを返す。 // @NAKOわーかーきどう\n type: 'func',\n josi: [['で']],\n isVariableJosi: true,\n pure: true,\n fn: function (plugins, sys) {\n let url\n if (typeof sys === 'undefined') { sys = plugins; plugins = undefined }\n if (plugins !== undefined) {\n if (!(plugins instanceof Array)) {\n throw new Error('プラグインはファイル名を配列で指定してください')\n }\n const baseurl = sys.__v0['ワーカーURL']\n let code = `importScripts('${baseurl}wnako3webworker.js')\\n`\n const l = plugins.length\n let i\n for (i = 0; i < l; i++) {\n code += `importScripts('${baseurl}${plugins[i]}')\\n`\n }\n const blob = new Blob([code], { type: 'application/javascript' })\n url = URL.createObjectURL(blob)\n } else {\n url = sys.__v0['ワーカーURL'] + 'wnako3webworker.js'\n }\n const myWorker = new Worker(url)\n if (myWorker) {\n sys._webworker.setNakoHandler(myWorker)\n }\n return myWorker\n },\n return_none: false\n },\n 'NAKOワーカーハンドラ設定': { // @ワーカーにNAKOワーカーのための設定を行う。 // @NAKOわーかーはんどらせってい\n type: 'func',\n josi: [['に', 'へ', 'の']],\n pure: true,\n fn: function (work, sys) {\n sys._webworker.setNakoHandler(work)\n },\n return_none: true\n },\n 'NAKOワーカーデータ受信時': { // @無名関数Fでなでしこv3エンジンに対してワーカーメッセージによりデータを受信した時に実行するイベントを設定。『受信データ』に受信したデータ。『対象イベント』にイベント引数。 // @NAKOわーかーでーたじゅしんしたとき\n type: 'func',\n josi: [['で'], ['から']],\n isVariableJosi: true,\n pure: false,\n fn: function (func, work, sys) {\n if (typeof sys === 'undefined') { sys = work; work = self }\n func = sys.__findVar(func, null) // 文字列指定なら関数に変換\n work.ondata = (data, e) => {\n sys.__v0['受信データ'] = data\n sys.__v0['対象イベント'] = e\n return func(e, sys)\n }\n },\n return_none: true\n },\n 'NAKOワーカー表示時': { // @無名関数Fでなでしこv3エンジンに対してワーカーメッセージにより表示データを受信した時に実行するイベントを設定。『受信データ』に表示しようとしたデータ。『対象イベント』にイベント引数。 // @NAKOわーかーひょうじしたとき\n type: 'func',\n josi: [['で'], ['から']],\n pure: false,\n fn: function (func, work, sys) {\n func = sys.__findVar(func, null) // 文字列指定なら関数に変換\n work.onoutput = (data, e) => {\n sys.__v0['受信データ'] = data\n sys.__v0['対象イベント'] = e\n return func(e, sys)\n }\n },\n return_none: true\n },\n 'ワーカーメッセージ受信時': { // @無名関数Fでworkに対してメッセージを受信した時に実行するイベントを設定。『受信データ』に受信したデータ。『対象イベント』にイベント引数。 // @わーかーめっせーじじゅしんしたとき\n type: 'func',\n josi: [['で'], ['から']],\n isVariableJosi: true,\n pure: false,\n fn: function (func, work, sys) {\n if (typeof sys === 'undefined') { sys = work; work = self }\n func = sys.__findVar(func, null) // 文字列指定なら関数に変換\n work.onmessage = (e) => {\n sys.__v0['受信データ'] = e.data\n sys.__v0['対象イベント'] = e\n return func(e, sys)\n }\n },\n return_none: true\n },\n 'NAKOワーカープログラム起動': { // @WORKERに固有の形式でプログラムの転送と実行行う。 // @NAKOわーかーぷろぐらむきどう\n type: 'func',\n josi: [['に', 'で'], ['を']],\n pure: true,\n fn: function (work, data, sys) {\n const msg = {\n type: 'run',\n data: data\n }\n work.postMessage(msg)\n },\n return_none: true\n },\n 'NAKOワーカーリセット': { // @WORKERに固有の形式でプログラムの転送と実行行う。 // @わーかーりせっと\n type: 'func',\n josi: [['を']],\n pure: true,\n fn: function (work, sys) {\n const msg = {\n type: 'reset',\n data: ''\n }\n work.postMessage(msg)\n },\n return_none: true\n },\n 'ワーカー終了': { // @WORKERを終了する。 // @わーかーしゅうりょう\n type: 'func',\n josi: [['を']],\n isVariableJosi: true,\n pure: true,\n fn: function (work, sys) {\n if (typeof sys === 'undefined') { sys = work; work = self }\n work.terminate()\n },\n return_none: true\n },\n 'NAKOワーカー終了': { // @WORKERを終了する。 // @NAKOわーかーしゅうりょう\n type: 'func',\n josi: [['を']],\n isVariableJosi: true,\n pure: true,\n fn: function (work, sys) {\n if (typeof sys === 'undefined') {\n self.close()\n return\n }\n const msg = {\n type: 'close',\n data: ''\n }\n work.postMessage(msg)\n },\n return_none: true\n },\n 'NAKOワーカーデータ送信': { // @WORKERに固有の形式でデータを送信する。 // @NAKOわーかーでーたそうしん\n type: 'func',\n josi: [['を'], ['に', 'へ']],\n isVariableJosi: true,\n pure: true,\n fn: function (data, work, sys) {\n if (typeof sys === 'undefined') { sys = work; work = self }\n const msg = {\n type: 'data',\n data: data\n }\n work.postMessage(msg)\n },\n return_none: true\n },\n 'ワーカーメッセージ送信': { // @WORKERにメッセージを送信する。 // @わーかーめっせーじそうしん\n type: 'func',\n josi: [['を'], ['に', 'へ']],\n isVariableJosi: true,\n pure: true,\n fn: function (msg, work, sys) {\n if (typeof sys === 'undefined') { sys = work; work = self }\n work.postMessage(msg)\n },\n return_none: true\n },\n 'NAKOワーカー転送': { // @WORKERにユーザー定義関数またはユーザ定義のグローバル変数を転送する。 // @NAKOわーかーてんそう\n type: 'func',\n josi: [['を'], ['に', 'へ']],\n isVariableJosi: true,\n pure: false,\n fn: function (datas, work, sys) {\n if (typeof sys === 'undefined') { sys = work; work = self }\n const modNameList = []\n const obj = []\n if (typeof datas === 'string') { datas = [datas] }\n datas.forEach(data => {\n if (data.indexOf('__') === -1) {\n for (const modname of sys.__modList) {\n const varname = modname + '__' + data\n if (typeof sys.__varslist[2][varname] !== 'undefined' || typeof sys.__varslist[1][varname] !== 'undefined') {\n data = varname\n break\n }\n }\n }\n if (data.indexOf('__') > -1) {\n const modname = data.split('__')[0]\n if (modNameList.indexOf(modname) === -1) {\n modNameList.push(modname)\n }\n }\n if (typeof sys.__varslist[2][data] !== 'undefined') {\n obj.push({\n type: 'val',\n name: data,\n content: sys.__varslist[2][data]\n })\n } else\n if (typeof sys.__varslist[1][data] !== 'undefined') {\n obj.push({\n type: 'func',\n name: data,\n content: {\n meta: sys.gen.nakoFuncList[data],\n func: Object.assign({}, sys.compiler.funclist[data], { fn: null })\n }\n })\n } else {\n console.error('指定した名前のユーザ関数もしくはグローバル変数がありません:' + data)\n throw new Error('指定した名前のユーザ関数もしくはグローバル変数がありません:' + data)\n }\n })\n if (obj.length > 0) {\n const modInfoList = []\n for (const modname of modNameList) {\n modInfoList.push({\n name: modname,\n export: sys.compiler.moduleExport[modname]\n })\n }\n obj.push({\n type: 'env',\n name: 'modlist',\n content: modInfoList\n })\n obj.push({\n type: 'env',\n name: 'constPools',\n content: sys.constPools\n })\n obj.push({\n type: 'env',\n name: 'constPoolsTemplate',\n content: sys.constPoolsTemplate\n })\n const msg = {\n type: 'trans',\n data: obj\n }\n work.postMessage(msg)\n }\n },\n return_none: true\n }\n}\n\nexport default PluginWebWorker\n\nif (typeof (navigator) === 'object' && typeof (navigator.nako3) === 'object') {\n navigator.nako3.addPluginObject('PluginWebWorker', PluginWebWorker)\n}\n\n"],"names":["PluginWebWorker","type","josi","pure","fn","sys","_webworker","setNakoHandler","work","onmessage","event","data","value","onoutput","apply","ondata","logger","error","noColor","onerror","e","Error","message","onerrormessage","inWorker","WorkerGlobalScope","self","getBaseUrlFromTag","document","pluginName","path","location","pathname","substr","length","paths","split","slice","join","scripts","querySelectorAll","i","src","index","indexOf","substring","origin","test","__v0","url","return_none","Worker","blob","Blob","URL","createObjectURL","isVariableJosi","plugins","undefined","Array","baseurl","code","l","myWorker","func","__findVar","msg","postMessage","terminate","close","datas","modNameList","obj","forEach","modname","__modList","varname","__varslist","push","name","content","console","meta","gen","nakoFuncList","Object","assign","compiler","funclist","modInfoList","export","moduleExport","constPools","constPoolsTemplate","navigator","nako3","addPluginObject"],"sourceRoot":""}