nadesiko3 3.7.2 → 3.7.4

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 (159) hide show
  1. package/batch/command.txt +472 -469
  2. package/batch/pickup_command.nako3 +1 -1
  3. package/core/.eslintrc.cjs +10 -3
  4. package/core/package-lock.json +1184 -645
  5. package/core/package.json +4 -5
  6. package/core/src/nako3.mjs +8 -6
  7. package/core/src/nako3.mts +19 -16
  8. package/core/src/nako_ast.mts +2 -3
  9. package/core/src/nako_core_version.mjs +2 -2
  10. package/core/src/nako_core_version.mts +2 -2
  11. package/core/src/nako_csv.mjs +1 -0
  12. package/core/src/nako_csv.mts +3 -2
  13. package/core/src/nako_from_dncl.mjs +1 -1
  14. package/core/src/nako_from_dncl.mts +1 -1
  15. package/core/src/nako_from_dncl2.mjs +1 -1
  16. package/core/src/nako_from_dncl2.mts +2 -2
  17. package/core/src/nako_gen.mjs +37 -35
  18. package/core/src/nako_gen.mts +70 -67
  19. package/core/src/nako_global.mjs +3 -2
  20. package/core/src/nako_global.mts +3 -2
  21. package/core/src/nako_lexer.mjs +3 -3
  22. package/core/src/nako_lexer.mts +3 -3
  23. package/core/src/nako_logger.mjs +1 -1
  24. package/core/src/nako_logger.mts +2 -2
  25. package/core/src/nako_parser3.mjs +67 -59
  26. package/core/src/nako_parser3.mts +96 -90
  27. package/core/src/nako_parser_base.mts +3 -3
  28. package/core/src/nako_prepare.mjs +1 -1
  29. package/core/src/nako_prepare.mts +1 -1
  30. package/core/src/nako_source_mapping.mts +0 -1
  31. package/core/src/nako_token.mts +8 -8
  32. package/core/src/nako_types.mts +1 -1
  33. package/core/src/plugin_api.mts +1 -1
  34. package/core/src/plugin_csv.mjs +1 -0
  35. package/core/src/plugin_csv.mts +2 -1
  36. package/core/src/plugin_math.mjs +2 -2
  37. package/core/src/plugin_math.mts +3 -3
  38. package/core/src/plugin_promise.mjs +1 -1
  39. package/core/src/plugin_promise.mts +1 -1
  40. package/core/src/plugin_system.mjs +117 -40
  41. package/core/src/plugin_system.mts +132 -58
  42. package/core/src/plugin_test.mjs +3 -1
  43. package/core/src/plugin_test.mts +3 -1
  44. package/core/test/basic_test.mjs +16 -0
  45. package/core/test/calc_test.mjs +7 -0
  46. package/core/test/plugin_system_test.mjs +33 -0
  47. package/doc/files.md +4 -4
  48. package/doc/plugins.md +1 -1
  49. package/package.json +9 -9
  50. package/release/_hash.txt +36 -121
  51. package/release/_script-tags.txt +16 -33
  52. package/release/command.json +1 -1
  53. package/release/command.json.js +1 -1
  54. package/release/command_cnako3.json +1 -1
  55. package/release/command_list.json +1 -1
  56. package/release/edit_main.js +3 -3
  57. package/release/edit_main.js.map +2 -2
  58. package/release/editor.js +3 -3
  59. package/release/plugin_markup.js +53 -53
  60. package/release/plugin_markup.js.map +3 -3
  61. package/release/plugin_weykturtle3d.js +1 -1
  62. package/release/plugin_weykturtle3d.js.map +4 -4
  63. package/release/version.js +3 -3
  64. package/release/version_main.js +3 -3
  65. package/release/version_main.js.map +2 -2
  66. package/release/wnako3.js +66 -66
  67. package/release/wnako3.js.map +3 -3
  68. package/release/wnako3webworker.js +58 -58
  69. package/release/wnako3webworker.js.map +3 -3
  70. package/src/browsers.txt +30 -20
  71. package/src/cnako3mod.mjs +19 -18
  72. package/src/cnako3mod.mts +17 -16
  73. package/src/deno_wrapper.mjs +6 -6
  74. package/src/deno_wrapper.mts +11 -11
  75. package/src/nako_version.mjs +2 -2
  76. package/src/nako_version.mts +2 -2
  77. package/src/plugin_browser.mjs +2 -2
  78. package/src/plugin_browser.mts +5 -5
  79. package/src/plugin_browser_ajax.mjs +2 -2
  80. package/src/plugin_browser_ajax.mts +2 -2
  81. package/src/plugin_browser_api.mts +0 -1
  82. package/src/plugin_browser_crypto.mjs +8 -8
  83. package/src/plugin_browser_crypto.mts +13 -13
  84. package/src/plugin_browser_dom_basic.mjs +3 -3
  85. package/src/plugin_browser_dom_basic.mts +5 -7
  86. package/src/plugin_browser_dom_event.mjs +1 -1
  87. package/src/plugin_browser_dom_event.mts +2 -1
  88. package/src/plugin_browser_dom_parts.mjs +33 -18
  89. package/src/plugin_browser_dom_parts.mts +60 -59
  90. package/src/plugin_browser_speech.mjs +1 -1
  91. package/src/plugin_browser_speech.mts +1 -1
  92. package/src/plugin_node.mjs +5 -3
  93. package/src/plugin_node.mts +6 -4
  94. package/src/plugin_weykturtle3d.mjs +38 -15
  95. package/src/plugin_weykturtle3d.mts +279 -240
  96. package/src/plugin_weykturtle3d_three.mjs +3 -0
  97. package/src/plugin_weykturtle3d_three.mts +214 -0
  98. package/src/plugin_weykturtle3d_threeutil.mjs +28 -0
  99. package/src/plugin_weykturtle3d_threeutil.mts +31 -0
  100. package/src/wnako3.mjs +1 -0
  101. package/src/wnako3.mts +1 -0
  102. package/src/wnako3mod.mjs +5 -2
  103. package/src/wnako3mod.mts +6 -3
  104. package/batch/command_nakopad.txt +0 -1177
  105. package/core/__report.txt +0 -617
  106. package/core/command/plugin_snako.mjs +0 -112
  107. package/core/command/snako.mjs +0 -108
  108. package/release/core_src_nako_josi_list_mjs.js +0 -3
  109. package/release/core_src_nako_josi_list_mjs.js.LICENSE.txt +0 -3
  110. package/release/core_src_nako_josi_list_mjs.js.map +0 -1
  111. package/release/core_src_nako_reserved_words_mjs.js +0 -3
  112. package/release/core_src_nako_reserved_words_mjs.js.LICENSE.txt +0 -3
  113. package/release/core_src_nako_reserved_words_mjs.js.map +0 -1
  114. package/release/editor/edit_main.js +0 -48
  115. package/release/editor/edit_main.js.map +0 -7
  116. package/release/editor/version_main.js +0 -44
  117. package/release/editor/version_main.js.map +0 -7
  118. package/release/editor.js.LICENSE.txt +0 -91
  119. package/release/editor.js.map +0 -1
  120. package/release/nako_gen_async.js +0 -2
  121. package/release/nako_gen_async.js.LICENSE.txt +0 -21
  122. package/release/nako_gen_async.js.map +0 -1
  123. package/release/plugin_caniuse.js.LICENSE.txt +0 -15
  124. package/release/plugin_datetime.js.LICENSE.txt +0 -21
  125. package/release/plugin_kansuji.js.LICENSE.txt +0 -3
  126. package/release/plugin_markup.js.LICENSE.txt +0 -15
  127. package/release/plugin_toml.js +0 -295
  128. package/release/plugin_toml.js.map +0 -7
  129. package/release/plugin_turtle.js.LICENSE.txt +0 -9
  130. package/release/plugin_webworker.js.LICENSE.txt +0 -3
  131. package/release/plugin_weykturtle3d.js.LICENSE.txt +0 -3
  132. package/release/src/plugin_caniuse.js +0 -2
  133. package/release/src/plugin_caniuse.js.map +0 -7
  134. package/release/src/plugin_datetime.js +0 -2
  135. package/release/src/plugin_datetime.js.map +0 -7
  136. package/release/src/plugin_kansuji.js +0 -2
  137. package/release/src/plugin_kansuji.js.map +0 -7
  138. package/release/src/plugin_keigo.js +0 -2
  139. package/release/src/plugin_keigo.js.map +0 -7
  140. package/release/src/plugin_markup.js +0 -64
  141. package/release/src/plugin_markup.js.map +0 -7
  142. package/release/src/plugin_three.js +0 -2
  143. package/release/src/plugin_three.js.map +0 -7
  144. package/release/src/plugin_turtle.js +0 -2
  145. package/release/src/plugin_turtle.js.map +0 -7
  146. package/release/src/plugin_webworker.js +0 -4
  147. package/release/src/plugin_webworker.js.map +0 -7
  148. package/release/src/plugin_weykturtle3d.js +0 -2
  149. package/release/src/plugin_weykturtle3d.js.map +0 -7
  150. package/release/src/wnako3.js +0 -482
  151. package/release/src/wnako3.js.map +0 -7
  152. package/release/src/wnako3webworker.js +0 -428
  153. package/release/src/wnako3webworker.js.map +0 -7
  154. package/release/stats.json +0 -1
  155. package/release/version.js.LICENSE.txt +0 -65
  156. package/release/version.js.map +0 -1
  157. package/release/wnako3.js.LICENSE.txt +0 -341
  158. package/release/wnako3webworker.js.LICENSE.txt +0 -209
  159. package/src/plugin_three.mts +0 -240
package/src/browsers.txt CHANGED
@@ -1,32 +1,42 @@
1
- and_chr 127
2
- and_ff 127
1
+ and_chr 135
2
+ and_ff 137
3
3
  and_qq 14.9
4
4
  and_uc 15.5
5
- android 127
6
- chrome 127
7
- chrome 126
5
+ android 135
6
+ chrome 136
7
+ chrome 135
8
+ chrome 134
9
+ chrome 133
10
+ chrome 132
11
+ chrome 131
8
12
  chrome 125
9
13
  chrome 109
10
- edge 127
11
- edge 126
12
- firefox 129
14
+ edge 135
15
+ edge 134
16
+ edge 133
17
+ firefox 138
18
+ firefox 137
19
+ firefox 136
20
+ firefox 135
13
21
  firefox 128
14
- firefox 127
15
- firefox 115
22
+ ios_saf 18.4
23
+ ios_saf 18.3
24
+ ios_saf 18.2
25
+ ios_saf 18.1
26
+ ios_saf 17.6-17.7
16
27
  ios_saf 17.5
17
- ios_saf 17.4
18
28
  ios_saf 16.6-16.7
19
29
  ios_saf 15.6-15.8
20
30
  kaios 3.0-3.1
21
31
  kaios 2.5
22
- node 22.5.0
23
- node 20.15.0
24
- node 18.20.0
32
+ node 23.3.0
33
+ node 22.12.0
34
+ node 20.18.0
25
35
  op_mini all
26
36
  op_mob 80
27
- opera 111
28
- opera 110
29
- safari 17.5
30
- safari 17.4
31
- samsung 25
32
- samsung 24
37
+ opera 117
38
+ opera 116
39
+ safari 18.4
40
+ safari 18.3
41
+ samsung 27
42
+ samsung 26
package/src/cnako3mod.mjs CHANGED
@@ -1,3 +1,4 @@
1
+ /* eslint-disable @typescript-eslint/no-redundant-type-constituents */
1
2
  /* eslint-disable @typescript-eslint/no-explicit-any */
2
3
  // deno-lint-ignore-file no-explicit-any
3
4
  /**
@@ -329,7 +330,7 @@ export class CNako3 extends NakoCompiler {
329
330
  const s = makeIndent(level) + '{\n';
330
331
  const sa = [];
331
332
  for (const key in ast) {
332
- const sv = trim(this.outputJSON(ast[key], level + 1));
333
+ const sv = trim(this.outputJSON((ast)[key], level + 1));
333
334
  const so = makeIndent(level + 1) + '"' + key + '": ' + sv;
334
335
  sa.push(so);
335
336
  }
@@ -482,7 +483,7 @@ export class CNako3 extends NakoCompiler {
482
483
  fs.writeFileSync(tmpFile, txt, 'utf-8');
483
484
  }
484
485
  catch (err) {
485
- const err2 = new NakoImportError(`URL『${filePath}』からダウンロードしたJSファイルがキャッシュに書き込めません。${err}`, token.file, token.line);
486
+ const err2 = new NakoImportError(`URL『${filePath}』からダウンロードしたJSファイルがキャッシュに書き込めません。${String(err)}`, token.file, token.line);
486
487
  reject(err2);
487
488
  }
488
489
  })
@@ -652,12 +653,12 @@ export class CNako3 extends NakoCompiler {
652
653
  }
653
654
  // 環境変数をチェック
654
655
  // 環境変数 NAKO_LIB か?
655
- const nako_lib = getEnv('NAKO_LIB');
656
- if (nako_lib) {
657
- const nako_lib_full = path.join(path.resolve(nako_lib), pname);
658
- const nako_lib_full2 = fCheckEx(nako_lib_full, 'NAKO_LIB');
659
- if (nako_lib_full2) {
660
- return nako_lib_full2;
656
+ const nakoLib = getEnv('NAKO_LIB');
657
+ if (nakoLib) {
658
+ const nakoLibFull = path.join(path.resolve(nakoLib), pname);
659
+ const nakoLibFull2 = fCheckEx(nakoLibFull, 'NAKO_LIB');
660
+ if (nakoLibFull2) {
661
+ return nakoLibFull2;
661
662
  }
662
663
  }
663
664
  // ランタイムパス/node_modules/<plugin>
@@ -680,24 +681,24 @@ export class CNako3 extends NakoCompiler {
680
681
  return fileRuntimeSrc2;
681
682
  }
682
683
  // 環境変数 NAKO_HOMEか?
683
- const nako_home = getEnv('NAKO_HOME');
684
- if (nako_home) {
685
- const nako_home_full = path.join(path.resolve(nako_home), 'node_modules', pname);
686
- const nako_home_full2 = fCheckEx(nako_home_full, 'NAKO_HOME');
687
- if (nako_home_full2) {
688
- return nako_home_full2;
684
+ const nakoHome = getEnv('NAKO_HOME');
685
+ if (nakoHome) {
686
+ const nakoHomeFull = path.join(path.resolve(nakoHome), 'node_modules', pname);
687
+ const nakoHomeFull2 = fCheckEx(nakoHomeFull, 'NAKO_HOME');
688
+ if (nakoHomeFull2) {
689
+ return nakoHomeFull2;
689
690
  }
690
691
  // NAKO_HOME/src ?
691
- const pathNakoHomeSrc = path.join(nako_home, 'src', pname);
692
+ const pathNakoHomeSrc = path.join(nakoHome, 'src', pname);
692
693
  const fileNakoHomeSrc = fCheckEx(pathNakoHomeSrc, 'NAKO_HOME/src');
693
694
  if (fileNakoHomeSrc) {
694
695
  return fileNakoHomeSrc;
695
696
  }
696
697
  }
697
698
  // 環境変数 NODE_PATH (global) 以下にあるか?
698
- const node_path = getEnv('NODE_PATH');
699
- if (node_path) {
700
- const pathNode = path.join(path.resolve(node_path), pname);
699
+ const nodePath = getEnv('NODE_PATH');
700
+ if (nodePath) {
701
+ const pathNode = path.join(path.resolve(nodePath), pname);
701
702
  const fileNode = fCheckEx(pathNode, 'NODE_PATH');
702
703
  if (fileNode) {
703
704
  return fileNode;
package/src/cnako3mod.mts CHANGED
@@ -1,3 +1,4 @@
1
+ /* eslint-disable @typescript-eslint/no-redundant-type-constituents */
1
2
  /* eslint-disable @typescript-eslint/no-explicit-any */
2
3
  // deno-lint-ignore-file no-explicit-any
3
4
  /**
@@ -361,7 +362,7 @@ export class CNako3 extends NakoCompiler {
361
362
  const s = makeIndent(level) + '{\n'
362
363
  const sa = []
363
364
  for (const key in ast) {
364
- const sv = trim(this.outputJSON((ast as any)[key], level + 1))
365
+ const sv = trim(this.outputJSON((ast)[key], level + 1))
365
366
  const so = makeIndent(level + 1) + '"' + key + '": ' + sv
366
367
  sa.push(so)
367
368
  }
@@ -509,7 +510,7 @@ export class CNako3 extends NakoCompiler {
509
510
  try {
510
511
  fs.writeFileSync(tmpFile, txt, 'utf-8')
511
512
  } catch (err) {
512
- const err2 = new NakoImportError(`URL『${filePath}』からダウンロードしたJSファイルがキャッシュに書き込めません。${err}`, token.file, token.line)
513
+ const err2 = new NakoImportError(`URL『${filePath}』からダウンロードしたJSファイルがキャッシュに書き込めません。${String(err)}`, token.file, token.line)
513
514
  reject(err2)
514
515
  }
515
516
  })
@@ -670,11 +671,11 @@ export class CNako3 extends NakoCompiler {
670
671
 
671
672
  // 環境変数をチェック
672
673
  // 環境変数 NAKO_LIB か?
673
- const nako_lib = getEnv('NAKO_LIB')
674
- if (nako_lib) {
675
- const nako_lib_full = path.join(path.resolve(nako_lib), pname)
676
- const nako_lib_full2 = fCheckEx(nako_lib_full, 'NAKO_LIB')
677
- if (nako_lib_full2) { return nako_lib_full2 }
674
+ const nakoLib = getEnv('NAKO_LIB')
675
+ if (nakoLib) {
676
+ const nakoLibFull = path.join(path.resolve(nakoLib), pname)
677
+ const nakoLibFull2 = fCheckEx(nakoLibFull, 'NAKO_LIB')
678
+ if (nakoLibFull2) { return nakoLibFull2 }
678
679
  }
679
680
 
680
681
  // ランタイムパス/node_modules/<plugin>
@@ -694,20 +695,20 @@ export class CNako3 extends NakoCompiler {
694
695
  if (fileRuntimeSrc2) { return fileRuntimeSrc2 }
695
696
 
696
697
  // 環境変数 NAKO_HOMEか?
697
- const nako_home = getEnv('NAKO_HOME')
698
- if (nako_home) {
699
- const nako_home_full = path.join(path.resolve(nako_home), 'node_modules', pname)
700
- const nako_home_full2 = fCheckEx(nako_home_full, 'NAKO_HOME')
701
- if (nako_home_full2) { return nako_home_full2 }
698
+ const nakoHome = getEnv('NAKO_HOME')
699
+ if (nakoHome) {
700
+ const nakoHomeFull = path.join(path.resolve(nakoHome), 'node_modules', pname)
701
+ const nakoHomeFull2 = fCheckEx(nakoHomeFull, 'NAKO_HOME')
702
+ if (nakoHomeFull2) { return nakoHomeFull2 }
702
703
  // NAKO_HOME/src ?
703
- const pathNakoHomeSrc = path.join(nako_home, 'src', pname)
704
+ const pathNakoHomeSrc = path.join(nakoHome, 'src', pname)
704
705
  const fileNakoHomeSrc = fCheckEx(pathNakoHomeSrc, 'NAKO_HOME/src')
705
706
  if (fileNakoHomeSrc) { return fileNakoHomeSrc }
706
707
  }
707
708
  // 環境変数 NODE_PATH (global) 以下にあるか?
708
- const node_path = getEnv('NODE_PATH')
709
- if (node_path) {
710
- const pathNode = path.join(path.resolve(node_path), pname)
709
+ const nodePath = getEnv('NODE_PATH')
710
+ if (nodePath) {
711
+ const pathNode = path.join(path.resolve(nodePath), pname)
711
712
  const fileNode = fCheckEx(pathNode, 'NODE_PATH')
712
713
  if (fileNode) { return fileNode }
713
714
  }
@@ -11,22 +11,22 @@ export function getEnv(name) {
11
11
  }
12
12
  /** check is windows */
13
13
  export function isWindows() {
14
- if (typeof globalThis.process !== "undefined" && globalThis.process.platform) {
15
- return globalThis.process.platform === "win32";
14
+ if (typeof globalThis.process !== 'undefined' && globalThis.process.platform) {
15
+ return globalThis.process.platform === 'win32';
16
16
  }
17
- if (typeof globalThis.Deno !== "undefined") {
18
- return globalThis.Deno.build.os === "windows";
17
+ if (typeof globalThis.Deno !== 'undefined') {
18
+ return globalThis.Deno.build.os === 'windows';
19
19
  }
20
20
  return false;
21
21
  }
22
22
  /** get command line arguments */
23
23
  export function getCommandLineArgs() {
24
24
  // Node.js
25
- if (typeof globalThis.process !== "undefined" && globalThis.process.argv) {
25
+ if (typeof globalThis.process !== 'undefined' && globalThis.process.argv) {
26
26
  return globalThis.process.argv;
27
27
  }
28
28
  // Deno
29
- if (typeof globalThis.Deno !== "undefined") {
29
+ if (typeof globalThis.Deno !== 'undefined') {
30
30
  const args = globalThis.Deno.args;
31
31
  args.unshift(new URL(globalThis.Deno.mainModule).pathname);
32
32
  args.unshift(globalThis.Deno.execPath());
@@ -1,7 +1,7 @@
1
1
  /* eslint-disable @typescript-eslint/no-explicit-any */
2
2
 
3
3
  /** get enviroment name */
4
- export function getEnv(name: string): string | undefined {
4
+ export function getEnv (name: string): string | undefined {
5
5
  if (typeof (globalThis as any).process !== 'undefined' && (globalThis as any).process.env !== undefined) {
6
6
  return (globalThis as any).process.env[name]
7
7
  }
@@ -12,35 +12,35 @@ export function getEnv(name: string): string | undefined {
12
12
  }
13
13
 
14
14
  /** check is windows */
15
- export function isWindows(): boolean {
16
- if (typeof (globalThis as any).process !== "undefined" && (globalThis as any).process.platform) {
17
- return (globalThis as any).process.platform === "win32"
15
+ export function isWindows (): boolean {
16
+ if (typeof (globalThis as any).process !== 'undefined' && (globalThis as any).process.platform) {
17
+ return (globalThis as any).process.platform === 'win32'
18
18
  }
19
- if (typeof (globalThis as any).Deno !== "undefined") {
20
- return (globalThis as any).Deno.build.os === "windows"
19
+ if (typeof (globalThis as any).Deno !== 'undefined') {
20
+ return (globalThis as any).Deno.build.os === 'windows'
21
21
  }
22
22
  return false
23
23
  }
24
24
 
25
25
  /** get command line arguments */
26
- export function getCommandLineArgs(): string[] {
26
+ export function getCommandLineArgs (): string[] {
27
27
  // Node.js
28
- if (typeof (globalThis as any).process !== "undefined" && (globalThis as any).process.argv) {
28
+ if (typeof (globalThis as any).process !== 'undefined' && (globalThis as any).process.argv) {
29
29
  return (globalThis as any).process.argv
30
30
  }
31
31
  // Deno
32
- if (typeof (globalThis as any).Deno !== "undefined") {
32
+ if (typeof (globalThis as any).Deno !== 'undefined') {
33
33
  const args = (globalThis as any).Deno.args
34
34
  args.unshift(new URL((globalThis as any).Deno.mainModule).pathname)
35
35
  args.unshift((globalThis as any).Deno.execPath())
36
36
  return args
37
37
  }
38
38
  // Node.js環境の場合
39
- return [];
39
+ return []
40
40
  }
41
41
 
42
42
  /** Exit */
43
- export function exit(code: number): void {
43
+ export function exit (code: number): void {
44
44
  if (typeof (globalThis as any).process !== 'undefined') {
45
45
  (globalThis as any).process.exit(code)
46
46
  }
@@ -1,8 +1,8 @@
1
1
  // 実際のバージョン定義 (自動生成されるので以下を編集しない)
2
2
  const nakoVersion = {
3
- version: '3.7.2',
3
+ version: '3.7.4',
4
4
  major: 3,
5
5
  minor: 7,
6
- patch: 2
6
+ patch: 4
7
7
  };
8
8
  export default nakoVersion;
@@ -11,9 +11,9 @@ export interface NakoVersion {
11
11
  }
12
12
  // 実際のバージョン定義 (自動生成されるので以下を編集しない)
13
13
  const nakoVersion: NakoVersion = {
14
- version: '3.7.2',
14
+ version: '3.7.4',
15
15
  major: 3,
16
16
  minor: 7,
17
- patch: 2
17
+ patch: 4
18
18
  }
19
19
  export default nakoVersion
@@ -107,7 +107,7 @@ const PluginBrowser = {
107
107
  if (setHandler) {
108
108
  setHandler(e, sys);
109
109
  }
110
- if (typeof func == 'function') {
110
+ if (typeof func === 'function') {
111
111
  return func(e, sys);
112
112
  }
113
113
  return false;
@@ -251,7 +251,7 @@ const PluginBrowser = {
251
251
  }
252
252
  else {
253
253
  // 設定イベントでは実行時エラーにする
254
- const desc = (typeof dom === 'string') ? dom : String(dom);
254
+ const desc = (typeof dom === 'string') ? dom : JSON.stringify(dom, null, 2);
255
255
  throw new Error(`『${commandName}』でクエリ『${desc}』でDOM取得に失敗しました。`);
256
256
  }
257
257
  }
@@ -61,7 +61,7 @@ const PluginBrowser = {
61
61
  pure: true,
62
62
  fn: function (sys: NakoBrowsesrSystem) {
63
63
  /* eslint no-global-assign: 0 */
64
- const doc: IBrowserDocument = (typeof document === 'undefined') ? { 'body': {}, 'querySelector': ()=>null } : document
64
+ const doc: IBrowserDocument = (typeof document === 'undefined') ? { 'body': {}, 'querySelector': () => null } : document
65
65
  const win: IBrowserWindow = (typeof window === 'undefined') ? { 'location': { 'href': 'http://localhost/' } } : window
66
66
  const nav: object = (typeof navigator === 'undefined') ? {} : navigator
67
67
  const loc: IBrowserLocation = (typeof win.location === 'undefined') ? { 'href': 'http://localhost/' } : win.location
@@ -111,7 +111,7 @@ const PluginBrowser = {
111
111
  sys.__setSysVar('対象イベント', e)
112
112
  // 追加データが得られる場合
113
113
  if (setHandler) { setHandler(e, sys) }
114
- if (typeof func == 'function') {
114
+ if (typeof func === 'function') {
115
115
  return func(e, sys)
116
116
  }
117
117
  return false
@@ -129,7 +129,7 @@ const PluginBrowser = {
129
129
  }
130
130
  // マウスイベントハンドラ
131
131
  sys.__mouseHandler = (e: MouseEvent, sys: NakoBrowsesrSystem) => {
132
- const target = e.target as HTMLElement;
132
+ const target = e.target as HTMLElement
133
133
  if (target && target instanceof HTMLElement) {
134
134
  const box = target.getBoundingClientRect()
135
135
  sys.__setSysVar('マウスX', e.clientX - box.left)
@@ -143,7 +143,7 @@ const PluginBrowser = {
143
143
  }
144
144
  // タッチイベントハンドラ
145
145
  sys.__touchHandler = (e: TouchEvent, sys: NakoBrowsesrSystem) => {
146
- const target = e.target as HTMLElement;
146
+ const target = e.target as HTMLElement
147
147
  if (target && target instanceof HTMLElement) {
148
148
  const box = target.getBoundingClientRect()
149
149
  const touches = e.changedTouches
@@ -248,7 +248,7 @@ const PluginBrowser = {
248
248
  console.warn(`[ヒント](${sys.__getSysVar('__line')})『${commandName}』でDOM取得に失敗しています。DOM=`, dom)
249
249
  } else {
250
250
  // 設定イベントでは実行時エラーにする
251
- const desc = (typeof dom === 'string') ? dom : String(dom)
251
+ const desc = (typeof dom === 'string') ? dom : JSON.stringify(dom, null, 2)
252
252
  throw new Error(`『${commandName}』でクエリ『${desc}』でDOM取得に失敗しました。`)
253
253
  }
254
254
  }
@@ -233,7 +233,7 @@ export default {
233
233
  }).then(text => {
234
234
  resolve(text);
235
235
  }).catch(err => {
236
- reject(err.message);
236
+ reject(new Error(err.message));
237
237
  });
238
238
  });
239
239
  }
@@ -258,7 +258,7 @@ export default {
258
258
  }).then(text => {
259
259
  resolve(text);
260
260
  }).catch(err => {
261
- reject(err.message);
261
+ reject(new Error(err.message));
262
262
  });
263
263
  });
264
264
  }
@@ -224,7 +224,7 @@ export default {
224
224
  }).then(text => {
225
225
  resolve(text)
226
226
  }).catch(err => {
227
- reject(err.message)
227
+ reject(new Error(err.message))
228
228
  })
229
229
  })
230
230
  }
@@ -247,7 +247,7 @@ export default {
247
247
  }).then(text => {
248
248
  resolve(text)
249
249
  }).catch(err => {
250
- reject(err.message)
250
+ reject(new Error(err.message))
251
251
  })
252
252
  })
253
253
  }
@@ -44,4 +44,3 @@ export interface NakoBrowsesrSystem extends NakoSystem {
44
44
  __addPropMethod(obj: any): void // プロパティ構文のために、__setProp / __getProp メソッドを追加する
45
45
  __chartjs: object
46
46
  }
47
-
@@ -12,8 +12,8 @@ export default {
12
12
  crypto.subtle.digest(alg, msgUint8).then(function (hashBuffer) {
13
13
  const hashArray = Array.from(new Uint8Array(hashBuffer)); // バッファーをバイト列に変換する
14
14
  const hashHex = hashArray
15
- .map((b) => b.toString(16).padStart(2, "0"))
16
- .join(""); // バイト列を 16 進文字列に変換する
15
+ .map((b) => b.toString(16).padStart(2, '0'))
16
+ .join(''); // バイト列を 16 進文字列に変換する
17
17
  const res = sys.__setSysVar('対象', hashHex);
18
18
  func(res);
19
19
  });
@@ -30,10 +30,10 @@ export default {
30
30
  const hashBuffer = await crypto.subtle.digest(alg, msgUint8);
31
31
  const hashArray = Array.from(new Uint8Array(hashBuffer)); // バッファーをバイト列に変換する
32
32
  const hashHex = hashArray
33
- .map((b) => b.toString(16).padStart(2, "0"))
34
- .join(""); // バイト列を 16 進文字列に変換する
33
+ .map((b) => b.toString(16).padStart(2, '0'))
34
+ .join(''); // バイト列を 16 進文字列に変換する
35
35
  return hashHex;
36
- },
36
+ }
37
37
  },
38
38
  'ランダムUUID生成': {
39
39
  type: 'func',
@@ -41,7 +41,7 @@ export default {
41
41
  pure: true,
42
42
  fn: function (sys) {
43
43
  return window.crypto.randomUUID();
44
- },
44
+ }
45
45
  },
46
46
  'ランダム配列生成': {
47
47
  type: 'func',
@@ -51,6 +51,6 @@ export default {
51
51
  const array = new Uint8Array(cnt);
52
52
  window.crypto.getRandomValues(array);
53
53
  return array;
54
- },
55
- },
54
+ }
55
+ }
56
56
  };
@@ -10,10 +10,10 @@ export default {
10
10
  const msgUint8 = new TextEncoder().encode(s) // (utf-8 の) Uint8Array にエンコードする
11
11
  // メッセージをハッシュする
12
12
  crypto.subtle.digest(alg, msgUint8).then(function (hashBuffer: ArrayBuffer) {
13
- const hashArray = Array.from(new Uint8Array(hashBuffer)); // バッファーをバイト列に変換する
13
+ const hashArray = Array.from(new Uint8Array(hashBuffer)) // バッファーをバイト列に変換する
14
14
  const hashHex = hashArray
15
- .map((b) => b.toString(16).padStart(2, "0"))
16
- .join(""); // バイト列を 16 進文字列に変換する
15
+ .map((b) => b.toString(16).padStart(2, '0'))
16
+ .join('') // バイト列を 16 進文字列に変換する
17
17
  const res = sys.__setSysVar('対象', hashHex)
18
18
  func(res)
19
19
  })
@@ -28,12 +28,12 @@ export default {
28
28
  fn: async function (s: string, alg: string, sys: any) {
29
29
  const msgUint8 = new TextEncoder().encode(s) // (utf-8 の) Uint8Array にエンコードする
30
30
  const hashBuffer = await crypto.subtle.digest(alg, msgUint8)
31
- const hashArray = Array.from(new Uint8Array(hashBuffer)); // バッファーをバイト列に変換する
31
+ const hashArray = Array.from(new Uint8Array(hashBuffer)) // バッファーをバイト列に変換する
32
32
  const hashHex = hashArray
33
- .map((b) => b.toString(16).padStart(2, "0"))
34
- .join(""); // バイト列を 16 進文字列に変換する
33
+ .map((b) => b.toString(16).padStart(2, '0'))
34
+ .join('') // バイト列を 16 進文字列に変換する
35
35
  return hashHex
36
- },
36
+ }
37
37
  },
38
38
  'ランダムUUID生成': { // @ランダムに生成された36文字のv4 UUID(文字列)を返す // @ らんだむUUIDせいせい
39
39
  type: 'func',
@@ -41,16 +41,16 @@ export default {
41
41
  pure: true,
42
42
  fn: function (sys: any) {
43
43
  return window.crypto.randomUUID()
44
- },
44
+ }
45
45
  },
46
- 'ランダム配列生成': { // @暗号強度の強い乱数のバイト配列(Uint8Array)を指定個数返す // @ らんだむはいれつせいせい
46
+ 'ランダム配列生成': { // @暗号強度の強い乱数のバイト配列(Uint8Array)を指定の長さで返す // @ らんだむはいれつせいせい
47
47
  type: 'func',
48
48
  josi: [['の']],
49
49
  pure: true,
50
50
  fn: function (cnt: number, sys: any) {
51
- const array = new Uint8Array(cnt);
52
- window.crypto.getRandomValues(array);
51
+ const array = new Uint8Array(cnt)
52
+ window.crypto.getRandomValues(array)
53
53
  return array
54
- },
55
- },
54
+ }
55
+ }
56
56
  }
@@ -273,7 +273,7 @@ export default {
273
273
  '自動入力': 'autocomplete', // 'on' or 'off'
274
274
  '自動フォーカス': 'autofocus',
275
275
  '最大文字数': 'maxlength',
276
- '最小文字数': 'minlength',
276
+ '最小文字数': 'minlength'
277
277
  }
278
278
  },
279
279
  'DOM和スタイル': {
@@ -317,7 +317,7 @@ export default {
317
317
  '可視': 'hook', // 「DOM可視設定」「DOM可視取得」を呼び出す
318
318
  'ポケット': 'hook', // 「DOMポケット設定」「DOMポケット取得」を呼び出す
319
319
  'ヒント': 'hook', // 「DOMヒント設定」「DOMヒント取得」を呼び出す
320
- 'テキスト': 'hook', // 「DOMテキスト設定」「DOMテキスト取得」を呼び出す
320
+ 'テキスト': 'hook' // 「DOMテキスト設定」「DOMテキスト取得」を呼び出す
321
321
  }
322
322
  },
323
323
  'DOMスタイル設定': {
@@ -619,7 +619,7 @@ export default {
619
619
  return '';
620
620
  }
621
621
  dom.dataset['有効'] = value;
622
- dom.disabled = (value) ? false : true;
622
+ dom.disabled = !(value);
623
623
  }
624
624
  },
625
625
  'DOM有効取得': {
@@ -250,7 +250,7 @@ export default {
250
250
  '自動入力': 'autocomplete', // 'on' or 'off'
251
251
  '自動フォーカス': 'autofocus',
252
252
  '最大文字数': 'maxlength',
253
- '最小文字数': 'minlength',
253
+ '最小文字数': 'minlength'
254
254
  }
255
255
  },
256
256
  'DOM和スタイル': { // 'const' // @DOMわすたいる
@@ -294,7 +294,7 @@ export default {
294
294
  '可視': 'hook', // 「DOM可視設定」「DOM可視取得」を呼び出す
295
295
  'ポケット': 'hook', // 「DOMポケット設定」「DOMポケット取得」を呼び出す
296
296
  'ヒント': 'hook', // 「DOMヒント設定」「DOMヒント取得」を呼び出す
297
- 'テキスト': 'hook', // 「DOMテキスト設定」「DOMテキスト取得」を呼び出す
297
+ 'テキスト': 'hook' // 「DOMテキスト設定」「DOMテキスト取得」を呼び出す
298
298
  }
299
299
  },
300
300
  'DOMスタイル設定': { // @DOMのスタイルAに値Bを設定 // @DOMすたいるせってい
@@ -419,8 +419,7 @@ export default {
419
419
  let propName = prop[i]
420
420
  if (waStyle[propName] !== undefined) { // DOM和スタイル
421
421
  propName = waStyle[propName]
422
- }
423
- else if (waAttr[propName] !== undefined) { // dom和スタイル
422
+ } else if (waAttr[propName] !== undefined) { // dom和スタイル
424
423
  propName = waAttr[propName]
425
424
  if (waAttr[value] !== undefined) { // 値がDOM和属性の場合
426
425
  value = waAttr[value]
@@ -502,8 +501,7 @@ export default {
502
501
  let propName = prop[i]
503
502
  if (waStyle[propName] !== undefined) { // DOM和スタイル
504
503
  propName = waStyle[propName]
505
- }
506
- else if (waAttr[propName] !== undefined) { // dom和属性
504
+ } else if (waAttr[propName] !== undefined) { // dom和属性
507
505
  propName = waAttr[propName]
508
506
  }
509
507
  if (i < prop.length - 1) {
@@ -555,7 +553,7 @@ export default {
555
553
  dom = sys.__query(dom, 'DOM有効設定', true)
556
554
  if (!dom) { return '' }
557
555
  dom.dataset['有効'] = value
558
- dom.disabled = (value) ? false : true
556
+ dom.disabled = !(value)
559
557
  }
560
558
  },
561
559
  'DOM有効取得': { // @DOMのdata-有効の値を取得 // @DOMゆうこうしゅとく
@@ -34,7 +34,7 @@ export default {
34
34
  pure: true,
35
35
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
36
36
  fn: function (event, sys) {
37
- if (event !== null && typeof event == 'object' && 'preventDefault' in event) {
37
+ if (event !== null && typeof event === 'object' && 'preventDefault' in event) {
38
38
  const objWithFn = event;
39
39
  if (typeof objWithFn.preventDefault === 'function') {
40
40
  objWithFn.preventDefault();
@@ -1,3 +1,4 @@
1
+ /* eslint-disable @typescript-eslint/unbound-method */
1
2
  import { NakoCallback, NakoCallbackEvent } from '../core/src/plugin_api.mjs'
2
3
  import { NakoBrowsesrSystem, NakoDom } from './plugin_browser_api.mjs'
3
4
  export default {
@@ -36,7 +37,7 @@ export default {
36
37
  pure: true,
37
38
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
38
39
  fn: function (event: unknown, sys: NakoBrowsesrSystem) {
39
- if (event !== null && typeof event == 'object' && 'preventDefault' in event) {
40
+ if (event !== null && typeof event === 'object' && 'preventDefault' in event) {
40
41
  const objWithFn = event as { preventDefault: () => void }
41
42
  if (typeof objWithFn.preventDefault === 'function') {
42
43
  objWithFn.preventDefault()