nadesiko3 3.2.42 → 3.2.45
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/doc/plugins.md +1 -0
- package/package.json +1 -1
- package/release/_hash.txt +24 -24
- package/release/_script-tags.txt +13 -13
- 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/nako_gen_async.js +1 -1
- package/release/stats.json +1 -1
- package/release/version.js +1 -1
- package/release/wnako3.js +1 -1
- package/release/wnako3webworker.js +1 -1
- package/release/wnako3webworker.js.LICENSE.txt +4 -0
- package/src/nako3.js +1 -1
- package/src/nako_gen.js +32 -5
- package/src/nako_version.js +2 -2
- package/src/plugin_browser_ajax.js +49 -3
- package/src/plugin_browser_dom_parts.js +1 -1
- package/src/plugin_system.js +39 -25
|
@@ -250,6 +250,10 @@
|
|
|
250
250
|
!*** ./node_modules/core-js/internals/to-string.js ***!
|
|
251
251
|
\*****************************************************/
|
|
252
252
|
|
|
253
|
+
/*!*****************************************************!*\
|
|
254
|
+
!*** ./node_modules/regenerator-runtime/runtime.js ***!
|
|
255
|
+
\*****************************************************/
|
|
256
|
+
|
|
253
257
|
/*!*****************************************************!*\
|
|
254
258
|
!*** ./node_modules/whatwg-fetch/dist/fetch.umd.js ***!
|
|
255
259
|
\*****************************************************/
|
package/src/nako3.js
CHANGED
package/src/nako_gen.js
CHANGED
|
@@ -37,6 +37,19 @@ class NakoGen {
|
|
|
37
37
|
if (js && isTest) {
|
|
38
38
|
js += '\n__self._runTests(__tests);\n'
|
|
39
39
|
}
|
|
40
|
+
// async method
|
|
41
|
+
if (gen.numAsyncFn > 0) {
|
|
42
|
+
let canAsync = true
|
|
43
|
+
if (window && window.navigator && window.navigator.userAgent) {
|
|
44
|
+
const ua = window.navigator.userAgent
|
|
45
|
+
canAsync = (ua.indexOf('MSIE') === -1)
|
|
46
|
+
}
|
|
47
|
+
if (canAsync) {
|
|
48
|
+
js = '// <nadesiko3::gen::async>\n' +
|
|
49
|
+
`(async () => {\n${js}\n})();\n` +
|
|
50
|
+
'// </nadesiko3::gen::async>\n'
|
|
51
|
+
}
|
|
52
|
+
}
|
|
40
53
|
|
|
41
54
|
// デバッグメッセージ
|
|
42
55
|
com.logger.trace('--- generate ---\n' + js)
|
|
@@ -103,6 +116,12 @@ try {
|
|
|
103
116
|
*/
|
|
104
117
|
this.loop_id = 1
|
|
105
118
|
|
|
119
|
+
/**
|
|
120
|
+
* 非同関数を何回使ったか
|
|
121
|
+
* @type {number}
|
|
122
|
+
*/
|
|
123
|
+
this.numAsyncFn = 0
|
|
124
|
+
|
|
106
125
|
/**
|
|
107
126
|
* 変換中の処理が、ループの中かどうかを判定する
|
|
108
127
|
* @type {boolean}
|
|
@@ -1272,7 +1291,10 @@ try {
|
|
|
1272
1291
|
}
|
|
1273
1292
|
|
|
1274
1293
|
let funcCall = `${res.js}(${argsCode})`
|
|
1275
|
-
|
|
1294
|
+
if (func.asyncFn) {
|
|
1295
|
+
funcCall = `await ${funcCall}`
|
|
1296
|
+
this.numAsyncFn++
|
|
1297
|
+
}
|
|
1276
1298
|
if (res.i === 0 && this.performanceMonitor.systemFunctionBody !== 0) {
|
|
1277
1299
|
let key = funcName
|
|
1278
1300
|
if (!key) {
|
|
@@ -1409,11 +1431,16 @@ try {
|
|
|
1409
1431
|
}
|
|
1410
1432
|
// 変数名
|
|
1411
1433
|
const name = node.name.value
|
|
1412
|
-
|
|
1434
|
+
let res = this.findVar(name)
|
|
1413
1435
|
let code = ''
|
|
1414
|
-
if (res === null) {
|
|
1415
|
-
|
|
1416
|
-
|
|
1436
|
+
if (res === null) {
|
|
1437
|
+
this.varsSet.names.add(name)
|
|
1438
|
+
res = this.findVar(name)
|
|
1439
|
+
}
|
|
1440
|
+
const jsName = res.js
|
|
1441
|
+
// 自動初期化するか
|
|
1442
|
+
code += `if (typeof(${jsName}) === 'undefined') { ${jsName} = 0; }`
|
|
1443
|
+
code += `${jsName} += ${value}`
|
|
1417
1444
|
return ';' + this.convLineno(node, false) + code + '\n'
|
|
1418
1445
|
}
|
|
1419
1446
|
|
package/src/nako_version.js
CHANGED
|
@@ -68,7 +68,7 @@ module.exports = {
|
|
|
68
68
|
},
|
|
69
69
|
return_none: true
|
|
70
70
|
},
|
|
71
|
-
'POSTデータ生成': { //
|
|
71
|
+
'POSTデータ生成': { // @辞書形式のデータPARAMSをkey=value&key=value...の形式に変換する // @POSTでーたせいせい
|
|
72
72
|
type: 'func',
|
|
73
73
|
josi: [['の', 'を']],
|
|
74
74
|
pure: true,
|
|
@@ -136,7 +136,7 @@ module.exports = {
|
|
|
136
136
|
}
|
|
137
137
|
},
|
|
138
138
|
'AJAXオプション': { type: 'const', value: '' }, // @AJAXおぷしょん
|
|
139
|
-
'AJAXオプション設定': { // @
|
|
139
|
+
'AJAXオプション設定': { // @AJAX命令でオプションを設定 // @AJAXおぷしょんせってい
|
|
140
140
|
type: 'func',
|
|
141
141
|
josi: [['に', 'へ', 'と']],
|
|
142
142
|
pure: true,
|
|
@@ -145,6 +145,23 @@ module.exports = {
|
|
|
145
145
|
},
|
|
146
146
|
return_none: true
|
|
147
147
|
},
|
|
148
|
+
'AJAXオプションPOST設定': { // @AJAXオプションにPOSTメソッドとパラメータPARAMSを設定 // @AJAXおぷしょんPOSTせってい
|
|
149
|
+
type: 'func',
|
|
150
|
+
josi: [['を', 'で']],
|
|
151
|
+
pure: true,
|
|
152
|
+
fn: function (params, sys) {
|
|
153
|
+
const bodyData = sys.__exec('POSTデータ生成', [params, sys])
|
|
154
|
+
const options = {
|
|
155
|
+
method: 'POST',
|
|
156
|
+
headers: {
|
|
157
|
+
'Content-Type': 'application/x-www-form-urlencoded'
|
|
158
|
+
},
|
|
159
|
+
body: bodyData
|
|
160
|
+
}
|
|
161
|
+
sys.__v0['AJAXオプション'] = options
|
|
162
|
+
},
|
|
163
|
+
return_none: true
|
|
164
|
+
},
|
|
148
165
|
'AJAX送信': { // @逐次実行構文にて、非同期通信(Ajax)でURLにデータを送信する。成功すると『対象』にデータが代入される。 // @AJAXそうしん
|
|
149
166
|
type: 'func',
|
|
150
167
|
josi: [['まで', 'へ', 'に']],
|
|
@@ -349,5 +366,34 @@ module.exports = {
|
|
|
349
366
|
return res.body()
|
|
350
367
|
},
|
|
351
368
|
return_none: false
|
|
352
|
-
}
|
|
369
|
+
},
|
|
370
|
+
// @新AJAX
|
|
371
|
+
'AJAXテキスト取得': { // @AJAXでURLにアクセスしテキスト形式で結果を得る。送信時AJAXオプションの値を参照。 // @AJAXてきすとしゅとく
|
|
372
|
+
type: 'func',
|
|
373
|
+
josi: [['から']],
|
|
374
|
+
pure: true,
|
|
375
|
+
asyncFn: true,
|
|
376
|
+
fn: async function (url, sys) {
|
|
377
|
+
let options = sys.__v0['AJAXオプション']
|
|
378
|
+
if (options === '') { options = { method: 'GET' } }
|
|
379
|
+
const res = await fetch(url, options)
|
|
380
|
+
const txt = await res.text()
|
|
381
|
+
return txt
|
|
382
|
+
},
|
|
383
|
+
return_none: true
|
|
384
|
+
},
|
|
385
|
+
'AJAX_JSON取得': { // @AJAXでURLにアクセスしJSONの結果を得て、送信時AJAXオプションの値を参照。 // @AJAX_JSONしゅとく
|
|
386
|
+
type: 'func',
|
|
387
|
+
josi: [['から']],
|
|
388
|
+
pure: true,
|
|
389
|
+
asyncFn: true,
|
|
390
|
+
fn: async function (url, sys) {
|
|
391
|
+
let options = sys.__v0['AJAXオプション']
|
|
392
|
+
if (options === '') { options = { method: 'GET' } }
|
|
393
|
+
const res = await fetch(url, options)
|
|
394
|
+
const txt = await res.json()
|
|
395
|
+
return txt
|
|
396
|
+
},
|
|
397
|
+
return_none: true
|
|
398
|
+
},
|
|
353
399
|
}
|
|
@@ -385,7 +385,7 @@ module.exports = {
|
|
|
385
385
|
td.style.backgroundColor = (rowNo == 0) ? bgHead : bgColor[rowNo % 2]
|
|
386
386
|
td.style.color = (rowNo == 0) ? 'white' : 'black'
|
|
387
387
|
}
|
|
388
|
-
if (col.match(
|
|
388
|
+
if (col.match(/^(\+|\-)?\d+(\.\d+)?$/)) { // number?
|
|
389
389
|
td.style.textAlign = 'right'
|
|
390
390
|
}
|
|
391
391
|
tr.appendChild(td)
|
package/src/plugin_system.js
CHANGED
|
@@ -1950,20 +1950,34 @@ const PluginSystem = {
|
|
|
1950
1950
|
}
|
|
1951
1951
|
},
|
|
1952
1952
|
// @タイマー
|
|
1953
|
+
'秒待': { // @ N秒の間待機する // @びょうまつ
|
|
1954
|
+
type: 'func',
|
|
1955
|
+
josi: [['']],
|
|
1956
|
+
pure: true,
|
|
1957
|
+
asyncFn: true,
|
|
1958
|
+
fn: function (n, sys) {
|
|
1959
|
+
return new Promise((resolve, reject) => {
|
|
1960
|
+
setTimeout(()=>{ resolve() }, n * 1000)
|
|
1961
|
+
})
|
|
1962
|
+
},
|
|
1963
|
+
return_none: true
|
|
1964
|
+
},
|
|
1953
1965
|
'秒待機': { // @ 「!非同期モード」または「逐次実行構文」にて、N秒の間待機する // @びょうたいき
|
|
1954
1966
|
type: 'func',
|
|
1955
1967
|
josi: [['']],
|
|
1956
|
-
pure:
|
|
1968
|
+
pure: true,
|
|
1957
1969
|
fn: function (n, sys) {
|
|
1958
1970
|
if (sys.__genMode === '非同期モード') {
|
|
1959
1971
|
const sysenv = sys.setAsync(sys)
|
|
1960
1972
|
setTimeout(() => {
|
|
1961
1973
|
sys.compAsync(sys, sysenv)
|
|
1962
1974
|
}, n * 1000)
|
|
1963
|
-
|
|
1964
|
-
if (sys.resolve === undefined) { throw new Error('『秒待機』命令は『!非同期モード』で使ってください。') }
|
|
1965
|
-
sys.__exec('秒逐次待機', [n, sys])
|
|
1975
|
+
return
|
|
1966
1976
|
}
|
|
1977
|
+
if (sys.resolve === undefined) {
|
|
1978
|
+
throw new Error('『秒待機』命令は『!非同期モード』で使ってください。')
|
|
1979
|
+
}
|
|
1980
|
+
sys.__exec('秒逐次待機', [n, sys])
|
|
1967
1981
|
},
|
|
1968
1982
|
return_none: true
|
|
1969
1983
|
},
|
|
@@ -2116,7 +2130,7 @@ const PluginSystem = {
|
|
|
2116
2130
|
'今日': { // @今日の日付を「YYYY/MM/DD」の形式で返す // @きょう
|
|
2117
2131
|
type: 'func',
|
|
2118
2132
|
josi: [],
|
|
2119
|
-
pure:
|
|
2133
|
+
pure: true,
|
|
2120
2134
|
fn: function (sys) {
|
|
2121
2135
|
return sys.__formatDate(new Date())
|
|
2122
2136
|
}
|
|
@@ -2124,7 +2138,7 @@ const PluginSystem = {
|
|
|
2124
2138
|
'明日': { // @明日の日付を「YYYY/MM/DD」の形式で返す // @あした
|
|
2125
2139
|
type: 'func',
|
|
2126
2140
|
josi: [],
|
|
2127
|
-
pure:
|
|
2141
|
+
pure: true,
|
|
2128
2142
|
fn: function (sys) {
|
|
2129
2143
|
const t = Date.now() + (24 * 60 * 60 * 1000)
|
|
2130
2144
|
return sys.__formatDate(new Date(t))
|
|
@@ -2133,7 +2147,7 @@ const PluginSystem = {
|
|
|
2133
2147
|
'昨日': { // @昨日の日付を「YYYY/MM/DD」の形式で返す // @きのう
|
|
2134
2148
|
type: 'func',
|
|
2135
2149
|
josi: [],
|
|
2136
|
-
pure:
|
|
2150
|
+
pure: true,
|
|
2137
2151
|
fn: function (sys) {
|
|
2138
2152
|
const t = Date.now() - (24 * 60 * 60 * 1000)
|
|
2139
2153
|
return sys.__formatDate(new Date(t))
|
|
@@ -2190,7 +2204,7 @@ const PluginSystem = {
|
|
|
2190
2204
|
'曜日': { // @Sに指定した日付の曜日をで返す。不正な日付の場合は今日の曜日番号を返す。 // @ようび
|
|
2191
2205
|
type: 'func',
|
|
2192
2206
|
josi: [['の']],
|
|
2193
|
-
pure:
|
|
2207
|
+
pure: true,
|
|
2194
2208
|
fn: function (s, sys) {
|
|
2195
2209
|
const d = sys.__str2date(s)
|
|
2196
2210
|
return '日月火水木金土'.charAt(d.getDay() % 7)
|
|
@@ -2209,7 +2223,7 @@ const PluginSystem = {
|
|
|
2209
2223
|
'UNIXTIME変換': { // @日時SをUNIX時間 (UTC(1970/1/1)からの経過秒数) に変換して返す(v1非互換) // @UNIXTIMEへんかん
|
|
2210
2224
|
type: 'func',
|
|
2211
2225
|
josi: [['の','を','から']],
|
|
2212
|
-
pure:
|
|
2226
|
+
pure: true,
|
|
2213
2227
|
fn: function (s, sys) {
|
|
2214
2228
|
const d = sys.__str2date(s)
|
|
2215
2229
|
return d.getTime() / 1000;
|
|
@@ -2218,7 +2232,7 @@ const PluginSystem = {
|
|
|
2218
2232
|
'UNIX時間変換': { // @日時SをUNIX時間 (UTC(1970/1/1)からの経過秒数) に変換して返す(v1非互換) // @UNIXじかんへんかん
|
|
2219
2233
|
type: 'func',
|
|
2220
2234
|
josi: [['の','を','から']],
|
|
2221
|
-
pure:
|
|
2235
|
+
pure: true,
|
|
2222
2236
|
fn: function (s, sys) {
|
|
2223
2237
|
const d = sys.__str2date(s)
|
|
2224
2238
|
return d.getTime() / 1000;
|
|
@@ -2227,7 +2241,7 @@ const PluginSystem = {
|
|
|
2227
2241
|
'日時変換': { // @UNIX時間 (UTC(1970/1/1)からの経過秒数) を「YYYY/MM/DD HH:mm:ss」の形式に変換 // @にちじへんかん
|
|
2228
2242
|
type: 'func',
|
|
2229
2243
|
josi: [['を', 'から']],
|
|
2230
|
-
pure:
|
|
2244
|
+
pure: true,
|
|
2231
2245
|
fn: function (tm, sys) {
|
|
2232
2246
|
const t = tm * 1000
|
|
2233
2247
|
return sys.__formatDateTime(new Date(t), '2022/01/01 00:00:00')
|
|
@@ -2236,7 +2250,7 @@ const PluginSystem = {
|
|
|
2236
2250
|
'日時書式変換': { // @UNIX時間TM(または日付文字列)を「YYYY/MM/DD HH:mm:ss」または「YY-M-D H:m:s」その他、W:曜日、WWW:曜日英、MMM:月英、ccc:ミリ秒の書式に変換 // @にちじしょしきへんかん
|
|
2237
2251
|
type: 'func',
|
|
2238
2252
|
josi: [['を'], ['で']],
|
|
2239
|
-
pure:
|
|
2253
|
+
pure: true,
|
|
2240
2254
|
fn: function (tm, fmt, sys) {
|
|
2241
2255
|
const t = sys.__str2date(tm)
|
|
2242
2256
|
fmt = fmt.replace(/(YYYY|ccc|WWW|MMM|YY|MM|DD|HH|mm|ss|[MDHmsW])/g, (m) => {
|
|
@@ -2266,7 +2280,7 @@ const PluginSystem = {
|
|
|
2266
2280
|
'和暦変換': { // @Sを和暦に変換する。Sは明治以降の日付が有効。 // @われきへんかん
|
|
2267
2281
|
type: 'func',
|
|
2268
2282
|
josi: [['を']],
|
|
2269
|
-
pure:
|
|
2283
|
+
pure: true,
|
|
2270
2284
|
fn: function (s, sys) {
|
|
2271
2285
|
const d = sys.__str2date(s)
|
|
2272
2286
|
const t = d.getTime()
|
|
@@ -2286,7 +2300,7 @@ const PluginSystem = {
|
|
|
2286
2300
|
'年数差': { // @日付AとBの差を年数で求めて返す。A<Bなら正の数、そうでないなら負の数を返す (v1非互換)。 // @ねんすうさ
|
|
2287
2301
|
type: 'func',
|
|
2288
2302
|
josi: [['と', 'から'], ['の', 'までの']],
|
|
2289
|
-
pure:
|
|
2303
|
+
pure: true,
|
|
2290
2304
|
fn: function (a, b, sys) {
|
|
2291
2305
|
const t1 = sys.__str2date(a)
|
|
2292
2306
|
const t2 = sys.__str2date(b)
|
|
@@ -2296,7 +2310,7 @@ const PluginSystem = {
|
|
|
2296
2310
|
'月数差': { // @日付AとBの差を月数で求めて返す。A<Bなら正の数、そうでないなら負の数を返す (v1非互換)。 // @げっすうさ
|
|
2297
2311
|
type: 'func',
|
|
2298
2312
|
josi: [['と', 'から'], ['の', 'までの']],
|
|
2299
|
-
pure:
|
|
2313
|
+
pure: true,
|
|
2300
2314
|
fn: function (a, b, sys) {
|
|
2301
2315
|
const t1 = sys.__str2date(a)
|
|
2302
2316
|
const t2 = sys.__str2date(b)
|
|
@@ -2307,7 +2321,7 @@ const PluginSystem = {
|
|
|
2307
2321
|
'日数差': { // @日付AとBの差を日数で求めて返す。A<Bなら正の数、そうでないなら負の数を返す。 // @にっすうさ
|
|
2308
2322
|
type: 'func',
|
|
2309
2323
|
josi: [['と', 'から'], ['の', 'までの']],
|
|
2310
|
-
pure:
|
|
2324
|
+
pure: true,
|
|
2311
2325
|
fn: function (a, b, sys) {
|
|
2312
2326
|
const t1 = Math.ceil(sys.__str2date(a).getTime() / 1000)
|
|
2313
2327
|
const t2 = Math.ceil(sys.__str2date(b).getTime() / 1000)
|
|
@@ -2318,7 +2332,7 @@ const PluginSystem = {
|
|
|
2318
2332
|
'時間差': { // @時間AとBの時間の差を求めて返す。A<Bなら正の数、そうでないなら負の数を返す。 // @じかんさ
|
|
2319
2333
|
type: 'func',
|
|
2320
2334
|
josi: [['と', 'から'], ['の', 'までの']],
|
|
2321
|
-
pure:
|
|
2335
|
+
pure: true,
|
|
2322
2336
|
fn: function (a, b, sys) {
|
|
2323
2337
|
const t1 = Math.ceil(sys.__str2date(a).getTime() / 1000)
|
|
2324
2338
|
const t2 = Math.ceil(sys.__str2date(b).getTime() / 1000)
|
|
@@ -2329,7 +2343,7 @@ const PluginSystem = {
|
|
|
2329
2343
|
'分差': { // @時間AとBの分数の差を求めて返す。A<Bなら正の数、そうでないなら負の数を返す。 // @ふんさ
|
|
2330
2344
|
type: 'func',
|
|
2331
2345
|
josi: [['と', 'から'], ['の', 'までの']],
|
|
2332
|
-
pure:
|
|
2346
|
+
pure: true,
|
|
2333
2347
|
fn: function (a, b, sys) {
|
|
2334
2348
|
const t1 = Math.ceil(sys.__str2date(a).getTime() / 1000)
|
|
2335
2349
|
const t2 = Math.ceil(sys.__str2date(b).getTime() / 1000)
|
|
@@ -2340,7 +2354,7 @@ const PluginSystem = {
|
|
|
2340
2354
|
'秒差': { // @時間AとBの差を秒差で求めて返す。A<Bなら正の数、そうでないなら負の数を返す。 // @びょうさ
|
|
2341
2355
|
type: 'func',
|
|
2342
2356
|
josi: [['と', 'から'], ['の', 'までの']],
|
|
2343
|
-
pure:
|
|
2357
|
+
pure: true,
|
|
2344
2358
|
fn: function (a, b, sys) {
|
|
2345
2359
|
const t1 = Math.ceil(sys.__str2date(a).getTime() / 1000)
|
|
2346
2360
|
const t2 = Math.ceil(sys.__str2date(b).getTime() / 1000)
|
|
@@ -2351,7 +2365,7 @@ const PluginSystem = {
|
|
|
2351
2365
|
'日時差': { // @日時AとBの差を種類unitで返す。A<Bなら正の数、そうでないなら負の数を返す (v1非互換)。 // @にちじさ
|
|
2352
2366
|
type: 'func',
|
|
2353
2367
|
josi: [['と', 'から'], ['の', 'までの'], ['による']],
|
|
2354
|
-
pure:
|
|
2368
|
+
pure: true,
|
|
2355
2369
|
fn: function (a, b, unit, sys) {
|
|
2356
2370
|
switch (unit) {
|
|
2357
2371
|
case '年': return sys.__exec('年数差', [a, b, sys])
|
|
@@ -2367,7 +2381,7 @@ const PluginSystem = {
|
|
|
2367
2381
|
'時間加算': { // @時間SにAを加えて返す。Aには「(+|-)hh:nn:dd」で指定する。 // @じかんかさん
|
|
2368
2382
|
type: 'func',
|
|
2369
2383
|
josi: [['に'], ['を']],
|
|
2370
|
-
pure:
|
|
2384
|
+
pure: true,
|
|
2371
2385
|
fn: function (s, a, sys) {
|
|
2372
2386
|
let op = a.charAt(0)
|
|
2373
2387
|
if (op === '-' || op === '+') {
|
|
@@ -2386,7 +2400,7 @@ const PluginSystem = {
|
|
|
2386
2400
|
'日付加算': { // @日付SにAを加えて返す。Aには「(+|-)yyyy/mm/dd」で指定する。 // @ひづけかさん
|
|
2387
2401
|
type: 'func',
|
|
2388
2402
|
josi: [['に'], ['を']],
|
|
2389
|
-
pure:
|
|
2403
|
+
pure: true,
|
|
2390
2404
|
fn: function (s, a, sys) {
|
|
2391
2405
|
let op = 1
|
|
2392
2406
|
let opc = a.charAt(0)
|
|
@@ -2408,7 +2422,7 @@ const PluginSystem = {
|
|
|
2408
2422
|
'日時加算': { // @日時SにAを加えて返す。Aは「(+|-)1(年|ヶ月|日|週|時間|分|秒)」のように指定する (v1非互換)。 // @にちじかさん
|
|
2409
2423
|
type: 'func',
|
|
2410
2424
|
josi: [['に'], ['を']],
|
|
2411
|
-
pure:
|
|
2425
|
+
pure: true,
|
|
2412
2426
|
fn: function (s, a, sys) {
|
|
2413
2427
|
const r = ('' + a).match(/([+|-]?)(\d+)(年|ヶ月|日|週間|時間|分|秒)$/)
|
|
2414
2428
|
if (!r) {throw new Error('『日付加算』は『(+|-)1(年|ヶ月|日|時間|分|秒)』の書式で指定します。')}
|
|
@@ -2517,7 +2531,7 @@ const PluginSystem = {
|
|
|
2517
2531
|
'プラグイン名設定': { // @プラグイン名をSに変更する // @プラグインめいせってい
|
|
2518
2532
|
type: 'func',
|
|
2519
2533
|
josi: [['に', 'へ']],
|
|
2520
|
-
pure:
|
|
2534
|
+
pure: true,
|
|
2521
2535
|
fn: function (s, sys) {
|
|
2522
2536
|
sys.__v0['プラグイン名'] = s
|
|
2523
2537
|
},
|
|
@@ -2544,7 +2558,7 @@ const PluginSystem = {
|
|
|
2544
2558
|
'URLパラメータ解析': { // @URLパラメータを解析してハッシュで返す // @URLぱらめーたかいせき
|
|
2545
2559
|
type: 'func',
|
|
2546
2560
|
josi: [['を', 'の', 'から']],
|
|
2547
|
-
pure:
|
|
2561
|
+
pure: true,
|
|
2548
2562
|
fn: function (url, sys) {
|
|
2549
2563
|
const res = {}
|
|
2550
2564
|
if (typeof url !== 'string') {
|