nadesiko3 3.4.13 → 3.4.15
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 +325 -323
- package/batch/command_nakopad.txt +2 -0
- package/core/package.json +1 -1
- package/core/src/nako_core_version.mjs +2 -2
- package/core/src/nako_core_version.mts +2 -2
- package/core/src/nako_from_dncl2.mjs +34 -2
- package/core/src/nako_from_dncl2.mts +31 -2
- package/core/src/nako_gen.mjs +110 -76
- package/core/src/nako_gen.mts +114 -75
- package/core/src/plugin_system.mjs +13 -3
- package/core/src/plugin_system.mts +11 -3
- package/core/test/dncl2_test.mjs +161 -152
- package/package.json +4 -33
- package/release/_hash.txt +28 -28
- package/release/_script-tags.txt +14 -14
- 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/editor.js +1 -1
- package/release/editor.js.map +1 -1
- package/release/nako_gen_async.js +1 -1
- package/release/nako_gen_async.js.map +1 -1
- package/release/plugin_datetime.js +1 -1
- package/release/plugin_datetime.js.map +1 -1
- package/release/stats.json +1 -1
- package/release/version.js +1 -1
- package/release/version.js.map +1 -1
- package/release/wnako3.js +1 -1
- package/release/wnako3.js.map +1 -1
- package/release/wnako3webworker.js +1 -1
- package/release/wnako3webworker.js.map +1 -1
- package/src/nako_version.mjs +2 -2
- package/src/nako_version.mts +2 -2
- package/src/plugin_browser.mjs +1 -1
- package/src/plugin_browser.mts +1 -1
- package/src/plugin_browser_ajax.mjs +6 -6
- package/src/plugin_browser_ajax.mts +8 -8
- package/src/plugin_browser_canvas.mjs +2 -2
- package/src/plugin_browser_canvas.mts +2 -2
- package/src/plugin_browser_chart.mjs +17 -13
- package/src/plugin_browser_chart.mts +25 -21
- package/src/plugin_browser_crypto.mjs +1 -1
- package/src/plugin_browser_crypto.mts +2 -2
- package/src/plugin_browser_dom_basic.mjs +5 -5
- package/src/plugin_browser_dom_basic.mts +5 -5
- package/src/plugin_browser_dom_event.mjs +17 -17
- package/src/plugin_browser_dom_event.mts +17 -17
- package/src/plugin_browser_dom_parts.mjs +21 -21
- package/src/plugin_browser_dom_parts.mts +21 -21
- package/src/plugin_browser_geolocation.mjs +2 -2
- package/src/plugin_browser_geolocation.mts +2 -2
- package/src/plugin_browser_storage.mjs +3 -3
- package/src/plugin_browser_storage.mts +3 -3
- package/src/plugin_datetime.mjs +9 -9
- package/src/plugin_node.mjs +52 -10
- package/src/plugin_node.mts +52 -8
- package/test/node/plugin_node_test.mjs +181 -180
|
@@ -4,7 +4,7 @@ export default {
|
|
|
4
4
|
'位置情報取得時': {
|
|
5
5
|
type: 'func',
|
|
6
6
|
josi: [['の', 'に', 'へ']],
|
|
7
|
-
pure:
|
|
7
|
+
pure: true,
|
|
8
8
|
fn: function (func, sys) {
|
|
9
9
|
let cb = func;
|
|
10
10
|
if (typeof cb === 'string') {
|
|
@@ -26,7 +26,7 @@ export default {
|
|
|
26
26
|
'位置情報監視時': {
|
|
27
27
|
type: 'func',
|
|
28
28
|
josi: [['の', 'に', 'へ']],
|
|
29
|
-
pure:
|
|
29
|
+
pure: true,
|
|
30
30
|
fn: function (func, sys) {
|
|
31
31
|
let cb = func;
|
|
32
32
|
if (typeof cb === 'string') {
|
|
@@ -4,7 +4,7 @@ export default {
|
|
|
4
4
|
'位置情報取得時': { // @位置情報を取得してコールバック関数内で変数「対象」に配列で[緯度,経度]を返す // @いちじょうほうしゅとくしたとき
|
|
5
5
|
type: 'func',
|
|
6
6
|
josi: [['の', 'に', 'へ']],
|
|
7
|
-
pure:
|
|
7
|
+
pure: true,
|
|
8
8
|
fn: function (func: any, sys: any) {
|
|
9
9
|
let cb = func
|
|
10
10
|
if (typeof cb === 'string') { cb = sys.__findVar(cb) }
|
|
@@ -23,7 +23,7 @@ export default {
|
|
|
23
23
|
'位置情報監視時': { // @位置情報を監視してIDを返す。引数に指定したコールバック関数内で変数「対象」に配列で[緯度,経度]を返す // @いちじょうほうかんししたとき
|
|
24
24
|
type: 'func',
|
|
25
25
|
josi: [['の', 'に', 'へ']],
|
|
26
|
-
pure:
|
|
26
|
+
pure: true,
|
|
27
27
|
fn: function (func: any, sys: any) {
|
|
28
28
|
let cb = func
|
|
29
29
|
if (typeof cb === 'string') { cb = sys.__findVar(cb) }
|
|
@@ -4,7 +4,7 @@ export default {
|
|
|
4
4
|
'保存': {
|
|
5
5
|
type: 'func',
|
|
6
6
|
josi: [['を'], ['に', 'へ']],
|
|
7
|
-
pure:
|
|
7
|
+
pure: true,
|
|
8
8
|
fn: function (v, key, sys) {
|
|
9
9
|
sys.__exec('ローカルストレージ保存', [v, key, sys]);
|
|
10
10
|
},
|
|
@@ -13,7 +13,7 @@ export default {
|
|
|
13
13
|
'開': {
|
|
14
14
|
type: 'func',
|
|
15
15
|
josi: [['を', 'から', 'の']],
|
|
16
|
-
pure:
|
|
16
|
+
pure: true,
|
|
17
17
|
fn: function (key, sys) {
|
|
18
18
|
return sys.__exec('ローカルストレージ読', [key, sys]);
|
|
19
19
|
},
|
|
@@ -22,7 +22,7 @@ export default {
|
|
|
22
22
|
'読': {
|
|
23
23
|
type: 'func',
|
|
24
24
|
josi: [['を', 'から', 'の']],
|
|
25
|
-
pure:
|
|
25
|
+
pure: true,
|
|
26
26
|
fn: function (key, sys) {
|
|
27
27
|
return sys.__exec('ローカルストレージ読', [key, sys]);
|
|
28
28
|
},
|
|
@@ -4,7 +4,7 @@ export default {
|
|
|
4
4
|
'保存': { // @ブラウザのlocalStorageのキーKに文字列Vを保存 // @ほぞん
|
|
5
5
|
type: 'func',
|
|
6
6
|
josi: [['を'], ['に', 'へ']],
|
|
7
|
-
pure:
|
|
7
|
+
pure: true,
|
|
8
8
|
fn: function (v: any, key: any, sys: any) {
|
|
9
9
|
sys.__exec('ローカルストレージ保存', [v, key, sys])
|
|
10
10
|
},
|
|
@@ -13,7 +13,7 @@ export default {
|
|
|
13
13
|
'開': { // @ブラウザのlocalStorageからVを読む // @ひらく
|
|
14
14
|
type: 'func',
|
|
15
15
|
josi: [['を', 'から', 'の']],
|
|
16
|
-
pure:
|
|
16
|
+
pure: true,
|
|
17
17
|
fn: function (key: any, sys: any) {
|
|
18
18
|
return sys.__exec('ローカルストレージ読', [key, sys])
|
|
19
19
|
},
|
|
@@ -22,7 +22,7 @@ export default {
|
|
|
22
22
|
'読': { // @ブラウザのlocalStorageからVを読む // @よむ
|
|
23
23
|
type: 'func',
|
|
24
24
|
josi: [['を', 'から', 'の']],
|
|
25
|
-
pure:
|
|
25
|
+
pure: true,
|
|
26
26
|
fn: function (key: any, sys: any) {
|
|
27
27
|
return sys.__exec('ローカルストレージ読', [key, sys])
|
|
28
28
|
},
|
package/src/plugin_datetime.mjs
CHANGED
|
@@ -126,7 +126,7 @@ const PluginDateTime = {
|
|
|
126
126
|
'UNIX時間変換': { // @日時SをUNIX時間 (UTC(1970/1/1)からの経過秒数) に変換して返す(v1非互換) // @UNIXじかんへんかん
|
|
127
127
|
type: 'func',
|
|
128
128
|
josi: [['の', 'を', 'から']],
|
|
129
|
-
pure:
|
|
129
|
+
pure: true,
|
|
130
130
|
fn: function (s, sys) {
|
|
131
131
|
return sys.__exec('UNIXTIME変換', [s])
|
|
132
132
|
}
|
|
@@ -173,7 +173,7 @@ const PluginDateTime = {
|
|
|
173
173
|
'年数差': { // @日付AとBの差を年数で求めて返す。A<Bなら正の数、そうでないなら負の数を返す (v1非互換)。 // @ねんすうさ
|
|
174
174
|
type: 'func',
|
|
175
175
|
josi: [['と', 'から'], ['の', 'までの']],
|
|
176
|
-
pure:
|
|
176
|
+
pure: true,
|
|
177
177
|
fn: function (a, b, sys) {
|
|
178
178
|
return sys.__exec('日時差', [a, b, '年'])
|
|
179
179
|
}
|
|
@@ -181,7 +181,7 @@ const PluginDateTime = {
|
|
|
181
181
|
'月数差': { // @日付AとBの差を月数で求めて返す。A<Bなら正の数、そうでないなら負の数を返す (v1非互換)。 // @げっすうさ
|
|
182
182
|
type: 'func',
|
|
183
183
|
josi: [['と', 'から'], ['の', 'までの']],
|
|
184
|
-
pure:
|
|
184
|
+
pure: true,
|
|
185
185
|
fn: function (a, b, sys) {
|
|
186
186
|
return sys.__exec('日時差', [a, b, '月'])
|
|
187
187
|
}
|
|
@@ -189,7 +189,7 @@ const PluginDateTime = {
|
|
|
189
189
|
'日数差': { // @日付AとBの差を日数で求めて返す。A<Bなら正の数、そうでないなら負の数を返す。 // @にっすうさ
|
|
190
190
|
type: 'func',
|
|
191
191
|
josi: [['と', 'から'], ['の', 'までの']],
|
|
192
|
-
pure:
|
|
192
|
+
pure: true,
|
|
193
193
|
fn: function (a, b, sys) {
|
|
194
194
|
return sys.__exec('日時差', [a, b, '日'])
|
|
195
195
|
}
|
|
@@ -252,7 +252,7 @@ const PluginDateTime = {
|
|
|
252
252
|
'時間差': { // @時間AとBの時間の差を求めて返す。A<Bなら正の数、そうでないなら負の数を返す。 // @じかんさ
|
|
253
253
|
type: 'func',
|
|
254
254
|
josi: [['と', 'から'], ['の', 'までの']],
|
|
255
|
-
pure:
|
|
255
|
+
pure: true,
|
|
256
256
|
fn: function (a, b, sys) {
|
|
257
257
|
return sys.__exec('日時差', [a, b, '時間'])
|
|
258
258
|
}
|
|
@@ -260,7 +260,7 @@ const PluginDateTime = {
|
|
|
260
260
|
'分差': { // @時間AとBの分数の差を求めて返す。A<Bなら正の数、そうでないなら負の数を返す。 // @ふんさ
|
|
261
261
|
type: 'func',
|
|
262
262
|
josi: [['と', 'から'], ['の', 'までの']],
|
|
263
|
-
pure:
|
|
263
|
+
pure: true,
|
|
264
264
|
fn: function (a, b, sys) {
|
|
265
265
|
return sys.__exec('日時差', [a, b, '分'])
|
|
266
266
|
}
|
|
@@ -268,7 +268,7 @@ const PluginDateTime = {
|
|
|
268
268
|
'秒差': { // @時間AとBの差を秒差で求めて返す。A<Bなら正の数、そうでないなら負の数を返す。 // @びょうさ
|
|
269
269
|
type: 'func',
|
|
270
270
|
josi: [['と', 'から'], ['の', 'までの']],
|
|
271
|
-
pure:
|
|
271
|
+
pure: true,
|
|
272
272
|
fn: function (a, b, sys) {
|
|
273
273
|
return sys.__exec('日時差', [a, b, '秒'])
|
|
274
274
|
}
|
|
@@ -276,7 +276,7 @@ const PluginDateTime = {
|
|
|
276
276
|
'時間加算': { // @時間SにAを加えて返す。Aには「(+|-)hh:nn:dd」で指定する。 // @じかんかさん
|
|
277
277
|
type: 'func',
|
|
278
278
|
josi: [['に'], ['を']],
|
|
279
|
-
pure:
|
|
279
|
+
pure: true,
|
|
280
280
|
fn: function (s, a, sys) {
|
|
281
281
|
const pm = a.slice(0, 1)
|
|
282
282
|
|
|
@@ -297,7 +297,7 @@ const PluginDateTime = {
|
|
|
297
297
|
'日付加算': { // @日付SにAを加えて返す。Aには「(+|-)yyyy/mm/dd」で指定する。 // @ひづけかさん
|
|
298
298
|
type: 'func',
|
|
299
299
|
josi: [['に'], ['を']],
|
|
300
|
-
pure:
|
|
300
|
+
pure: true,
|
|
301
301
|
fn: function (s, a, sys) {
|
|
302
302
|
const pm = a.slice(0, 1)
|
|
303
303
|
|
package/src/plugin_node.mjs
CHANGED
|
@@ -82,7 +82,7 @@ export default {
|
|
|
82
82
|
'読': {
|
|
83
83
|
type: 'func',
|
|
84
84
|
josi: [['を', 'から']],
|
|
85
|
-
pure:
|
|
85
|
+
pure: true,
|
|
86
86
|
fn: function (s, sys) {
|
|
87
87
|
return sys.__exec('開', [s]);
|
|
88
88
|
}
|
|
@@ -638,7 +638,7 @@ export default {
|
|
|
638
638
|
'終了': {
|
|
639
639
|
type: 'func',
|
|
640
640
|
josi: [],
|
|
641
|
-
pure:
|
|
641
|
+
pure: true,
|
|
642
642
|
fn: function (sys) {
|
|
643
643
|
sys.__exec('終', []);
|
|
644
644
|
},
|
|
@@ -683,23 +683,65 @@ export default {
|
|
|
683
683
|
josi: [['と', 'を']],
|
|
684
684
|
pure: true,
|
|
685
685
|
asyncFn: true,
|
|
686
|
-
fn: function (msg) {
|
|
686
|
+
fn: function (msg, sys) {
|
|
687
687
|
return new Promise((resolve, reject) => {
|
|
688
|
-
|
|
689
|
-
|
|
688
|
+
// process.stdin.resume()
|
|
689
|
+
const cli = readline.createInterface(process.stdin, process.stdout);
|
|
690
|
+
if (!cli) {
|
|
690
691
|
reject(new Error('『尋』命令で標準入力が取得できません'));
|
|
691
692
|
return;
|
|
692
693
|
}
|
|
693
|
-
|
|
694
|
-
|
|
695
|
-
|
|
696
|
-
buf = parseFloat(buf);
|
|
694
|
+
cli.question(msg, (line) => {
|
|
695
|
+
if (line & line.match(/^[0-9.]+$/)) {
|
|
696
|
+
line = parseFloat(line);
|
|
697
697
|
}
|
|
698
|
+
cli.close();
|
|
699
|
+
resolve(line);
|
|
700
|
+
});
|
|
701
|
+
});
|
|
702
|
+
}
|
|
703
|
+
},
|
|
704
|
+
'文字尋': {
|
|
705
|
+
type: 'func',
|
|
706
|
+
josi: [['と', 'を']],
|
|
707
|
+
pure: true,
|
|
708
|
+
asyncFn: true,
|
|
709
|
+
fn: function (msg) {
|
|
710
|
+
return new Promise((resolve, reject) => {
|
|
711
|
+
const cli = readline.createInterface(process.stdin, process.stdout);
|
|
712
|
+
if (!cli) {
|
|
713
|
+
reject(new Error('『尋』命令で標準入力が取得できません'));
|
|
714
|
+
return;
|
|
715
|
+
}
|
|
716
|
+
cli.question(msg, (buf) => {
|
|
717
|
+
cli.close();
|
|
698
718
|
resolve(buf);
|
|
699
719
|
});
|
|
700
720
|
});
|
|
701
721
|
}
|
|
702
722
|
},
|
|
723
|
+
'標準入力全取得': {
|
|
724
|
+
type: 'func',
|
|
725
|
+
josi: [],
|
|
726
|
+
pure: true,
|
|
727
|
+
asyncFn: true,
|
|
728
|
+
fn: function () {
|
|
729
|
+
return new Promise((resolve, _reject) => {
|
|
730
|
+
let dataStr = '';
|
|
731
|
+
const reader = readline.createInterface({
|
|
732
|
+
input: process.stdin,
|
|
733
|
+
output: process.stdout
|
|
734
|
+
});
|
|
735
|
+
reader.on('line', (line) => {
|
|
736
|
+
dataStr += line + '\n';
|
|
737
|
+
});
|
|
738
|
+
reader.on('close', () => {
|
|
739
|
+
reader.close();
|
|
740
|
+
resolve(dataStr);
|
|
741
|
+
});
|
|
742
|
+
});
|
|
743
|
+
}
|
|
744
|
+
},
|
|
703
745
|
// @テスト
|
|
704
746
|
'ASSERT等': {
|
|
705
747
|
type: 'func',
|
|
@@ -795,7 +837,7 @@ export default {
|
|
|
795
837
|
'GET送信時': {
|
|
796
838
|
type: 'func',
|
|
797
839
|
josi: [['の'], ['まで', 'へ', 'に']],
|
|
798
|
-
pure:
|
|
840
|
+
pure: true,
|
|
799
841
|
fn: function (callback, url, sys) {
|
|
800
842
|
sys.__exec('AJAX送信時', [callback, url, sys]);
|
|
801
843
|
},
|
package/src/plugin_node.mts
CHANGED
|
@@ -76,7 +76,7 @@ export default {
|
|
|
76
76
|
'読': { // @ファイルSを開く // @よむ
|
|
77
77
|
type: 'func',
|
|
78
78
|
josi: [['を', 'から']],
|
|
79
|
-
pure:
|
|
79
|
+
pure: true,
|
|
80
80
|
fn: function (s: string, sys: any) {
|
|
81
81
|
return sys.__exec('開', [s])
|
|
82
82
|
}
|
|
@@ -587,7 +587,7 @@ export default {
|
|
|
587
587
|
'終了': { // @Nodeでプログラム実行を強制終了する // @しゅうりょう
|
|
588
588
|
type: 'func',
|
|
589
589
|
josi: [],
|
|
590
|
-
pure:
|
|
590
|
+
pure: true,
|
|
591
591
|
fn: function (sys: any) {
|
|
592
592
|
sys.__exec('終', [])
|
|
593
593
|
},
|
|
@@ -628,25 +628,69 @@ export default {
|
|
|
628
628
|
}
|
|
629
629
|
},
|
|
630
630
|
'尋': { // @標準入力を一行取得する // @たずねる
|
|
631
|
+
type: 'func',
|
|
632
|
+
josi: [['と', 'を']],
|
|
633
|
+
pure: true,
|
|
634
|
+
asyncFn: true,
|
|
635
|
+
fn: function (msg: string, sys: any): Promise<string> {
|
|
636
|
+
return new Promise((resolve, reject) => {
|
|
637
|
+
// process.stdin.resume()
|
|
638
|
+
const cli = readline.createInterface(process.stdin, process.stdout)
|
|
639
|
+
if (!cli) {
|
|
640
|
+
reject(new Error('『尋』命令で標準入力が取得できません'))
|
|
641
|
+
return
|
|
642
|
+
}
|
|
643
|
+
cli.question(msg, (line: any) => {
|
|
644
|
+
if (line & line.match(/^[0-9.]+$/)) {
|
|
645
|
+
line = parseFloat(line)
|
|
646
|
+
}
|
|
647
|
+
cli.close()
|
|
648
|
+
resolve(line)
|
|
649
|
+
})
|
|
650
|
+
})
|
|
651
|
+
}
|
|
652
|
+
},
|
|
653
|
+
'文字尋': { // @標準入力を一行取得する。ただし自動で数値に変換しない // @もじたずねる
|
|
631
654
|
type: 'func',
|
|
632
655
|
josi: [['と', 'を']],
|
|
633
656
|
pure: true,
|
|
634
657
|
asyncFn: true,
|
|
635
658
|
fn: function (msg: string): Promise<any> {
|
|
636
659
|
return new Promise((resolve, reject) => {
|
|
637
|
-
const
|
|
638
|
-
if (!
|
|
660
|
+
const cli = readline.createInterface(process.stdin, process.stdout)
|
|
661
|
+
if (!cli) {
|
|
639
662
|
reject(new Error('『尋』命令で標準入力が取得できません'))
|
|
640
663
|
return
|
|
641
664
|
}
|
|
642
|
-
|
|
643
|
-
|
|
644
|
-
if (buf && buf.match(/^[0-9.]+$/)) { buf = parseFloat(buf) }
|
|
665
|
+
cli.question(msg, (buf: any) => {
|
|
666
|
+
cli.close()
|
|
645
667
|
resolve(buf)
|
|
646
668
|
})
|
|
647
669
|
})
|
|
648
670
|
}
|
|
649
671
|
},
|
|
672
|
+
'標準入力全取得': { // @標準入力を全部取得して返す // @ひょうじゅんにゅうりょくぜんしゅとく
|
|
673
|
+
type: 'func',
|
|
674
|
+
josi: [],
|
|
675
|
+
pure: true,
|
|
676
|
+
asyncFn: true,
|
|
677
|
+
fn: function (): Promise<string> {
|
|
678
|
+
return new Promise((resolve, _reject) => {
|
|
679
|
+
let dataStr = ''
|
|
680
|
+
const reader = readline.createInterface({
|
|
681
|
+
input: process.stdin,
|
|
682
|
+
output: process.stdout
|
|
683
|
+
})
|
|
684
|
+
reader.on('line', (line) => {
|
|
685
|
+
dataStr += line + '\n'
|
|
686
|
+
})
|
|
687
|
+
reader.on('close', () => {
|
|
688
|
+
reader.close()
|
|
689
|
+
resolve(dataStr)
|
|
690
|
+
})
|
|
691
|
+
})
|
|
692
|
+
}
|
|
693
|
+
},
|
|
650
694
|
// @テスト
|
|
651
695
|
'ASSERT等': { // @ mochaによるテストで、ASSERTでAとBが正しいことを報告する // @ASSERTひとしい
|
|
652
696
|
type: 'func',
|
|
@@ -730,7 +774,7 @@ export default {
|
|
|
730
774
|
'GET送信時': { // @非同期通信(Ajax)でURLにデータを送信し、成功するとcallbackが実行される。その際『対象』にデータが代入される。 // @GETそうしんしたとき
|
|
731
775
|
type: 'func',
|
|
732
776
|
josi: [['の'], ['まで', 'へ', 'に']],
|
|
733
|
-
pure:
|
|
777
|
+
pure: true,
|
|
734
778
|
fn: function (callback: any, url: string, sys: any) {
|
|
735
779
|
sys.__exec('AJAX送信時', [callback, url, sys])
|
|
736
780
|
},
|