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.
- package/batch/command.txt +472 -469
- package/batch/pickup_command.nako3 +1 -1
- package/core/.eslintrc.cjs +10 -3
- package/core/package-lock.json +1184 -645
- package/core/package.json +4 -5
- package/core/src/nako3.mjs +8 -6
- package/core/src/nako3.mts +19 -16
- package/core/src/nako_ast.mts +2 -3
- package/core/src/nako_core_version.mjs +2 -2
- package/core/src/nako_core_version.mts +2 -2
- package/core/src/nako_csv.mjs +1 -0
- package/core/src/nako_csv.mts +3 -2
- package/core/src/nako_from_dncl.mjs +1 -1
- package/core/src/nako_from_dncl.mts +1 -1
- package/core/src/nako_from_dncl2.mjs +1 -1
- package/core/src/nako_from_dncl2.mts +2 -2
- package/core/src/nako_gen.mjs +37 -35
- package/core/src/nako_gen.mts +70 -67
- package/core/src/nako_global.mjs +3 -2
- package/core/src/nako_global.mts +3 -2
- package/core/src/nako_lexer.mjs +3 -3
- package/core/src/nako_lexer.mts +3 -3
- package/core/src/nako_logger.mjs +1 -1
- package/core/src/nako_logger.mts +2 -2
- package/core/src/nako_parser3.mjs +67 -59
- package/core/src/nako_parser3.mts +96 -90
- package/core/src/nako_parser_base.mts +3 -3
- package/core/src/nako_prepare.mjs +1 -1
- package/core/src/nako_prepare.mts +1 -1
- package/core/src/nako_source_mapping.mts +0 -1
- package/core/src/nako_token.mts +8 -8
- package/core/src/nako_types.mts +1 -1
- package/core/src/plugin_api.mts +1 -1
- package/core/src/plugin_csv.mjs +1 -0
- package/core/src/plugin_csv.mts +2 -1
- package/core/src/plugin_math.mjs +2 -2
- package/core/src/plugin_math.mts +3 -3
- package/core/src/plugin_promise.mjs +1 -1
- package/core/src/plugin_promise.mts +1 -1
- package/core/src/plugin_system.mjs +117 -40
- package/core/src/plugin_system.mts +132 -58
- package/core/src/plugin_test.mjs +3 -1
- package/core/src/plugin_test.mts +3 -1
- package/core/test/basic_test.mjs +16 -0
- package/core/test/calc_test.mjs +7 -0
- package/core/test/plugin_system_test.mjs +33 -0
- package/doc/files.md +4 -4
- package/doc/plugins.md +1 -1
- package/package.json +9 -9
- package/release/_hash.txt +36 -121
- package/release/_script-tags.txt +16 -33
- package/release/command.json +1 -1
- package/release/command.json.js +1 -1
- package/release/command_cnako3.json +1 -1
- package/release/command_list.json +1 -1
- package/release/edit_main.js +3 -3
- package/release/edit_main.js.map +2 -2
- package/release/editor.js +3 -3
- package/release/plugin_markup.js +53 -53
- package/release/plugin_markup.js.map +3 -3
- package/release/plugin_weykturtle3d.js +1 -1
- package/release/plugin_weykturtle3d.js.map +4 -4
- package/release/version.js +3 -3
- package/release/version_main.js +3 -3
- package/release/version_main.js.map +2 -2
- package/release/wnako3.js +66 -66
- package/release/wnako3.js.map +3 -3
- package/release/wnako3webworker.js +58 -58
- package/release/wnako3webworker.js.map +3 -3
- package/src/browsers.txt +30 -20
- package/src/cnako3mod.mjs +19 -18
- package/src/cnako3mod.mts +17 -16
- package/src/deno_wrapper.mjs +6 -6
- package/src/deno_wrapper.mts +11 -11
- package/src/nako_version.mjs +2 -2
- package/src/nako_version.mts +2 -2
- package/src/plugin_browser.mjs +2 -2
- package/src/plugin_browser.mts +5 -5
- package/src/plugin_browser_ajax.mjs +2 -2
- package/src/plugin_browser_ajax.mts +2 -2
- package/src/plugin_browser_api.mts +0 -1
- package/src/plugin_browser_crypto.mjs +8 -8
- package/src/plugin_browser_crypto.mts +13 -13
- package/src/plugin_browser_dom_basic.mjs +3 -3
- package/src/plugin_browser_dom_basic.mts +5 -7
- package/src/plugin_browser_dom_event.mjs +1 -1
- package/src/plugin_browser_dom_event.mts +2 -1
- package/src/plugin_browser_dom_parts.mjs +33 -18
- package/src/plugin_browser_dom_parts.mts +60 -59
- package/src/plugin_browser_speech.mjs +1 -1
- package/src/plugin_browser_speech.mts +1 -1
- package/src/plugin_node.mjs +5 -3
- package/src/plugin_node.mts +6 -4
- package/src/plugin_weykturtle3d.mjs +38 -15
- package/src/plugin_weykturtle3d.mts +279 -240
- package/src/plugin_weykturtle3d_three.mjs +3 -0
- package/src/plugin_weykturtle3d_three.mts +214 -0
- package/src/plugin_weykturtle3d_threeutil.mjs +28 -0
- package/src/plugin_weykturtle3d_threeutil.mts +31 -0
- package/src/wnako3.mjs +1 -0
- package/src/wnako3.mts +1 -0
- package/src/wnako3mod.mjs +5 -2
- package/src/wnako3mod.mts +6 -3
- package/batch/command_nakopad.txt +0 -1177
- package/core/__report.txt +0 -617
- package/core/command/plugin_snako.mjs +0 -112
- package/core/command/snako.mjs +0 -108
- package/release/core_src_nako_josi_list_mjs.js +0 -3
- package/release/core_src_nako_josi_list_mjs.js.LICENSE.txt +0 -3
- package/release/core_src_nako_josi_list_mjs.js.map +0 -1
- package/release/core_src_nako_reserved_words_mjs.js +0 -3
- package/release/core_src_nako_reserved_words_mjs.js.LICENSE.txt +0 -3
- package/release/core_src_nako_reserved_words_mjs.js.map +0 -1
- package/release/editor/edit_main.js +0 -48
- package/release/editor/edit_main.js.map +0 -7
- package/release/editor/version_main.js +0 -44
- package/release/editor/version_main.js.map +0 -7
- package/release/editor.js.LICENSE.txt +0 -91
- package/release/editor.js.map +0 -1
- package/release/nako_gen_async.js +0 -2
- package/release/nako_gen_async.js.LICENSE.txt +0 -21
- package/release/nako_gen_async.js.map +0 -1
- package/release/plugin_caniuse.js.LICENSE.txt +0 -15
- package/release/plugin_datetime.js.LICENSE.txt +0 -21
- package/release/plugin_kansuji.js.LICENSE.txt +0 -3
- package/release/plugin_markup.js.LICENSE.txt +0 -15
- package/release/plugin_toml.js +0 -295
- package/release/plugin_toml.js.map +0 -7
- package/release/plugin_turtle.js.LICENSE.txt +0 -9
- package/release/plugin_webworker.js.LICENSE.txt +0 -3
- package/release/plugin_weykturtle3d.js.LICENSE.txt +0 -3
- package/release/src/plugin_caniuse.js +0 -2
- package/release/src/plugin_caniuse.js.map +0 -7
- package/release/src/plugin_datetime.js +0 -2
- package/release/src/plugin_datetime.js.map +0 -7
- package/release/src/plugin_kansuji.js +0 -2
- package/release/src/plugin_kansuji.js.map +0 -7
- package/release/src/plugin_keigo.js +0 -2
- package/release/src/plugin_keigo.js.map +0 -7
- package/release/src/plugin_markup.js +0 -64
- package/release/src/plugin_markup.js.map +0 -7
- package/release/src/plugin_three.js +0 -2
- package/release/src/plugin_three.js.map +0 -7
- package/release/src/plugin_turtle.js +0 -2
- package/release/src/plugin_turtle.js.map +0 -7
- package/release/src/plugin_webworker.js +0 -4
- package/release/src/plugin_webworker.js.map +0 -7
- package/release/src/plugin_weykturtle3d.js +0 -2
- package/release/src/plugin_weykturtle3d.js.map +0 -7
- package/release/src/wnako3.js +0 -482
- package/release/src/wnako3.js.map +0 -7
- package/release/src/wnako3webworker.js +0 -428
- package/release/src/wnako3webworker.js.map +0 -7
- package/release/stats.json +0 -1
- package/release/version.js.LICENSE.txt +0 -65
- package/release/version.js.map +0 -1
- package/release/wnako3.js.LICENSE.txt +0 -341
- package/release/wnako3webworker.js.LICENSE.txt +0 -209
- package/src/plugin_three.mts +0 -240
package/src/browsers.txt
CHANGED
|
@@ -1,32 +1,42 @@
|
|
|
1
|
-
and_chr
|
|
2
|
-
and_ff
|
|
1
|
+
and_chr 135
|
|
2
|
+
and_ff 137
|
|
3
3
|
and_qq 14.9
|
|
4
4
|
and_uc 15.5
|
|
5
|
-
android
|
|
6
|
-
chrome
|
|
7
|
-
chrome
|
|
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
|
|
11
|
-
edge
|
|
12
|
-
|
|
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
|
-
|
|
15
|
-
|
|
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
|
|
23
|
-
node
|
|
24
|
-
node 18.
|
|
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
|
|
28
|
-
opera
|
|
29
|
-
safari
|
|
30
|
-
safari
|
|
31
|
-
samsung
|
|
32
|
-
samsung
|
|
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
|
|
656
|
-
if (
|
|
657
|
-
const
|
|
658
|
-
const
|
|
659
|
-
if (
|
|
660
|
-
return
|
|
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
|
|
684
|
-
if (
|
|
685
|
-
const
|
|
686
|
-
const
|
|
687
|
-
if (
|
|
688
|
-
return
|
|
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(
|
|
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
|
|
699
|
-
if (
|
|
700
|
-
const pathNode = path.join(path.resolve(
|
|
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
|
|
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
|
|
674
|
-
if (
|
|
675
|
-
const
|
|
676
|
-
const
|
|
677
|
-
if (
|
|
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
|
|
698
|
-
if (
|
|
699
|
-
const
|
|
700
|
-
const
|
|
701
|
-
if (
|
|
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(
|
|
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
|
|
709
|
-
if (
|
|
710
|
-
const pathNode = path.join(path.resolve(
|
|
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
|
}
|
package/src/deno_wrapper.mjs
CHANGED
|
@@ -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 !==
|
|
15
|
-
return globalThis.process.platform ===
|
|
14
|
+
if (typeof globalThis.process !== 'undefined' && globalThis.process.platform) {
|
|
15
|
+
return globalThis.process.platform === 'win32';
|
|
16
16
|
}
|
|
17
|
-
if (typeof globalThis.Deno !==
|
|
18
|
-
return globalThis.Deno.build.os ===
|
|
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 !==
|
|
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 !==
|
|
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());
|
package/src/deno_wrapper.mts
CHANGED
|
@@ -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 !==
|
|
17
|
-
return (globalThis as any).process.platform ===
|
|
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 !==
|
|
20
|
-
return (globalThis as any).Deno.build.os ===
|
|
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 !==
|
|
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 !==
|
|
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
|
}
|
package/src/nako_version.mjs
CHANGED
package/src/nako_version.mts
CHANGED
package/src/plugin_browser.mjs
CHANGED
|
@@ -107,7 +107,7 @@ const PluginBrowser = {
|
|
|
107
107
|
if (setHandler) {
|
|
108
108
|
setHandler(e, sys);
|
|
109
109
|
}
|
|
110
|
-
if (typeof func
|
|
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 :
|
|
254
|
+
const desc = (typeof dom === 'string') ? dom : JSON.stringify(dom, null, 2);
|
|
255
255
|
throw new Error(`『${commandName}』でクエリ『${desc}』でDOM取得に失敗しました。`);
|
|
256
256
|
}
|
|
257
257
|
}
|
package/src/plugin_browser.mts
CHANGED
|
@@ -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
|
|
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 :
|
|
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
|
}
|
|
@@ -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,
|
|
16
|
-
.join(
|
|
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,
|
|
34
|
-
.join(
|
|
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,
|
|
16
|
-
.join(
|
|
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
|
-
|
|
34
|
-
|
|
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'
|
|
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)
|
|
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'
|
|
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)
|
|
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
|
|
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
|
|
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()
|