nadesiko3 3.3.71 → 3.3.72
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 +242 -240
- package/batch/command_nakopad.txt +2 -0
- package/core/command/snako.mts +6 -6
- package/core/package.json +5 -5
- package/core/src/nako3.mjs +14 -6
- package/core/src/nako3.mts +43 -33
- package/core/src/nako_errors.mts +13 -13
- package/core/src/nako_from_dncl2.mjs +1 -0
- package/core/src/nako_from_dncl2.mts +1 -0
- package/core/src/nako_gen.mjs +24 -2
- package/core/src/nako_gen.mts +47 -24
- package/core/src/nako_global.mts +19 -19
- package/core/src/nako_lexer.mts +5 -5
- package/core/src/nako_logger.mts +1 -1
- package/core/src/nako_parser_base.mts +18 -18
- package/core/src/nako_prepare.mts +10 -9
- package/core/src/nako_source_mapping.mts +13 -13
- package/core/src/nako_types.mts +16 -0
- package/core/src/plugin_system.mjs +3 -0
- package/core/src/plugin_system.mts +3 -0
- package/core/test/dncl2_test.mjs +24 -0
- package/package.json +1 -2
- package/release/_hash.txt +24 -24
- 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/nako_gen_async.js +1 -1
- package/release/nako_gen_async.js.LICENSE.txt +0 -20
- 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/nako_version.mjs +2 -2
- package/src/nako_version.mts +2 -2
package/core/src/nako_logger.mts
CHANGED
|
@@ -77,7 +77,7 @@ interface NakoLoggerListener {
|
|
|
77
77
|
* error() は引数にエラーオブジェクトを受け取ることもでき、その場合エラーオブジェクトからエラーメッセージとエラー位置が取り出される。
|
|
78
78
|
*/
|
|
79
79
|
export class NakoLogger {
|
|
80
|
-
private listeners: NakoLoggerListener[]
|
|
80
|
+
private listeners: NakoLoggerListener[]
|
|
81
81
|
private logs: string
|
|
82
82
|
private position: string
|
|
83
83
|
public constructor () {
|
|
@@ -5,24 +5,24 @@ import { FuncList, FuncListItem, Token, Ast, SourceMap, NewEmptyToken } from './
|
|
|
5
5
|
* なでしこの構文解析のためのユーティリティクラス
|
|
6
6
|
*/
|
|
7
7
|
export class NakoParserBase {
|
|
8
|
-
public logger: NakoLogger
|
|
9
|
-
protected stackList: any[]
|
|
10
|
-
protected tokens: Token[]
|
|
11
|
-
protected stack: any[]
|
|
12
|
-
protected index: number
|
|
13
|
-
protected y: any[]
|
|
14
|
-
public modName: string
|
|
15
|
-
public modList: string[]
|
|
16
|
-
public funclist: FuncList
|
|
17
|
-
public usedFuncs: Set<string
|
|
18
|
-
protected funcLevel: number
|
|
19
|
-
protected usedAsyncFn: boolean
|
|
20
|
-
protected localvars: FuncList
|
|
21
|
-
public genMode: string
|
|
22
|
-
protected arrayIndexFrom: number
|
|
23
|
-
protected flagReverseArrayIndex: boolean
|
|
24
|
-
protected flagCheckArrayInit: boolean
|
|
25
|
-
protected recentlyCalledFunc: FuncListItem[]
|
|
8
|
+
public logger: NakoLogger
|
|
9
|
+
protected stackList: any[]
|
|
10
|
+
protected tokens: Token[]
|
|
11
|
+
protected stack: any[]
|
|
12
|
+
protected index: number
|
|
13
|
+
protected y: any[]
|
|
14
|
+
public modName: string
|
|
15
|
+
public modList: string[]
|
|
16
|
+
public funclist: FuncList
|
|
17
|
+
public usedFuncs: Set<string>
|
|
18
|
+
protected funcLevel: number
|
|
19
|
+
protected usedAsyncFn: boolean
|
|
20
|
+
protected localvars: FuncList
|
|
21
|
+
public genMode: string
|
|
22
|
+
protected arrayIndexFrom: number
|
|
23
|
+
protected flagReverseArrayIndex: boolean
|
|
24
|
+
protected flagCheckArrayInit: boolean
|
|
25
|
+
protected recentlyCalledFunc: FuncListItem[]
|
|
26
26
|
|
|
27
27
|
constructor (logger: NakoLogger) {
|
|
28
28
|
this.logger = logger
|
|
@@ -4,9 +4,9 @@
|
|
|
4
4
|
* ただし、コメントや文字列の中は変換しないように考慮して変換する。
|
|
5
5
|
*/
|
|
6
6
|
class ReplaceHistory {
|
|
7
|
-
from: number
|
|
8
|
-
to: number
|
|
9
|
-
index: number
|
|
7
|
+
from: number
|
|
8
|
+
to: number
|
|
9
|
+
index: number
|
|
10
10
|
constructor (from: number, to: number, index: number) {
|
|
11
11
|
this.from = from
|
|
12
12
|
this.to = to
|
|
@@ -15,8 +15,8 @@ class ReplaceHistory {
|
|
|
15
15
|
}
|
|
16
16
|
|
|
17
17
|
class ConvertResult {
|
|
18
|
-
public text: string
|
|
19
|
-
public sourcePosition: number
|
|
18
|
+
public text: string
|
|
19
|
+
public sourcePosition: number
|
|
20
20
|
constructor (text: string, sourcePosition: number) {
|
|
21
21
|
this.text = text
|
|
22
22
|
this.sourcePosition = sourcePosition
|
|
@@ -27,8 +27,8 @@ class ConvertResult {
|
|
|
27
27
|
* 置換後の位置から置換前の位置へマッピングできる文字列
|
|
28
28
|
*/
|
|
29
29
|
export class Replace {
|
|
30
|
-
history: ReplaceHistory[]
|
|
31
|
-
private code: string
|
|
30
|
+
history: ReplaceHistory[]
|
|
31
|
+
private code: string
|
|
32
32
|
constructor (code: string) {
|
|
33
33
|
this.history = []
|
|
34
34
|
this.code = code
|
|
@@ -77,7 +77,8 @@ export class Replace {
|
|
|
77
77
|
*/
|
|
78
78
|
export class NakoPrepare {
|
|
79
79
|
// 唯一のインスタンス
|
|
80
|
-
|
|
80
|
+
// eslint-disable-next-line no-use-before-define
|
|
81
|
+
private static _instance: NakoPrepare
|
|
81
82
|
/** 唯一のインスタンスを返す */
|
|
82
83
|
public static getInstance (): NakoPrepare {
|
|
83
84
|
if (!NakoPrepare._instance) {
|
|
@@ -86,7 +87,7 @@ export class NakoPrepare {
|
|
|
86
87
|
return NakoPrepare._instance
|
|
87
88
|
}
|
|
88
89
|
|
|
89
|
-
private convertTable: Map<number, string
|
|
90
|
+
private convertTable: Map<number, string>
|
|
90
91
|
private constructor () {
|
|
91
92
|
// 単純な変換テーブル
|
|
92
93
|
this.convertTable = new Map([
|
|
@@ -6,11 +6,11 @@ interface PreprocessItem {
|
|
|
6
6
|
|
|
7
7
|
/** prepareとtokenizeのソースマッピング */
|
|
8
8
|
export class SourceMappingOfTokenization {
|
|
9
|
-
private readonly sourceCodeLength: number
|
|
10
|
-
private readonly preprocessed: PreprocessItem[]
|
|
11
|
-
private readonly cumulativeSum: number[]
|
|
12
|
-
private lastIndex: number
|
|
13
|
-
private lastPreprocessedCodePosition: number
|
|
9
|
+
private readonly sourceCodeLength: number
|
|
10
|
+
private readonly preprocessed: PreprocessItem[]
|
|
11
|
+
private readonly cumulativeSum: number[]
|
|
12
|
+
private lastIndex: number
|
|
13
|
+
private lastPreprocessedCodePosition: number
|
|
14
14
|
/**
|
|
15
15
|
* @param {number} sourceCodeLength
|
|
16
16
|
* @param {PreprocessItem[]} preprocessed
|
|
@@ -73,11 +73,11 @@ export class SourceMappingOfTokenization {
|
|
|
73
73
|
}
|
|
74
74
|
|
|
75
75
|
export class SourceMappingOfIndentSyntax {
|
|
76
|
-
private lines: { offset: number, len: number }[]
|
|
77
|
-
private readonly linesInsertedByIndentationSyntax: number[]
|
|
78
|
-
private readonly linesDeletedByIndentationSyntax: { lineNumber: number, len: number }[]
|
|
79
|
-
lastLineNumber: number
|
|
80
|
-
lastOffset: number
|
|
76
|
+
private lines: { offset: number, len: number }[]
|
|
77
|
+
private readonly linesInsertedByIndentationSyntax: number[]
|
|
78
|
+
private readonly linesDeletedByIndentationSyntax: { lineNumber: number, len: number }[]
|
|
79
|
+
lastLineNumber: number
|
|
80
|
+
lastOffset: number
|
|
81
81
|
/**
|
|
82
82
|
* @param {string} codeAfterProcessingIndentationSyntax
|
|
83
83
|
* @param {readonly number[]} linesInsertedByIndentationSyntax
|
|
@@ -181,9 +181,9 @@ export class SourceMappingOfIndentSyntax {
|
|
|
181
181
|
|
|
182
182
|
/** offsetから (line, column) へ変換する。 */
|
|
183
183
|
export class OffsetToLineColumn {
|
|
184
|
-
private lineOffsets: number[]
|
|
185
|
-
private lastLineNumber: number
|
|
186
|
-
private lastOffset: number
|
|
184
|
+
private lineOffsets: number[]
|
|
185
|
+
private lastLineNumber: number
|
|
186
|
+
private lastOffset: number
|
|
187
187
|
/**
|
|
188
188
|
* @param {string} code
|
|
189
189
|
*/
|
package/core/src/nako_types.mts
CHANGED
|
@@ -144,3 +144,19 @@ export interface NakoEvent {
|
|
|
144
144
|
eventName: NakoComEventName
|
|
145
145
|
callback: (event: any) => void
|
|
146
146
|
}
|
|
147
|
+
|
|
148
|
+
/**
|
|
149
|
+
* デバッグに関する型
|
|
150
|
+
*/
|
|
151
|
+
export type NakoDebugEventName = 'line'
|
|
152
|
+
|
|
153
|
+
export interface NakoDebugEvent {
|
|
154
|
+
eventName: NakoDebugEventName
|
|
155
|
+
forceStop: boolean
|
|
156
|
+
}
|
|
157
|
+
|
|
158
|
+
export interface NakoDebugOption {
|
|
159
|
+
useDebug: boolean
|
|
160
|
+
waitTime: number // sec
|
|
161
|
+
messageAction?: string
|
|
162
|
+
}
|
|
@@ -171,6 +171,8 @@ export default {
|
|
|
171
171
|
'OK': { type: 'const', value: true },
|
|
172
172
|
'NG': { type: 'const', value: false },
|
|
173
173
|
'キャンセル': { type: 'const', value: 0 },
|
|
174
|
+
'TRUE': { type: 'const', value: true },
|
|
175
|
+
'FALSE': { type: 'const', value: false },
|
|
174
176
|
'PI': { type: 'const', value: Math.PI },
|
|
175
177
|
'空': { type: 'const', value: '' },
|
|
176
178
|
'NULL': { type: 'const', value: null },
|
|
@@ -592,6 +594,7 @@ export default {
|
|
|
592
594
|
args = [args];
|
|
593
595
|
}
|
|
594
596
|
// 実行
|
|
597
|
+
// eslint-disable-next-line prefer-spread
|
|
595
598
|
return name.apply(null, args);
|
|
596
599
|
}
|
|
597
600
|
},
|
|
@@ -158,6 +158,8 @@ export default {
|
|
|
158
158
|
'OK': { type: 'const', value: true }, // @OK
|
|
159
159
|
'NG': { type: 'const', value: false }, // @NG
|
|
160
160
|
'キャンセル': { type: 'const', value: 0 }, // @きゃんせる
|
|
161
|
+
'TRUE': { type: 'const', value: true }, // @TRUE
|
|
162
|
+
'FALSE': { type: 'const', value: false }, // @FALSE
|
|
161
163
|
'PI': { type: 'const', value: Math.PI }, // @PI
|
|
162
164
|
'空': { type: 'const', value: '' }, // @から
|
|
163
165
|
'NULL': { type: 'const', value: null }, // @NULL
|
|
@@ -571,6 +573,7 @@ export default {
|
|
|
571
573
|
if (!(args instanceof Array)) { args = [args] }
|
|
572
574
|
|
|
573
575
|
// 実行
|
|
576
|
+
// eslint-disable-next-line prefer-spread
|
|
574
577
|
return name.apply(null, args)
|
|
575
578
|
}
|
|
576
579
|
},
|
package/core/test/dncl2_test.mjs
CHANGED
|
@@ -204,4 +204,28 @@ describe('dncl2 (core #41)', async () => {
|
|
|
204
204
|
'⎿ 表示する(Tomei[k], ":", Tosen[k], "名")\n' +
|
|
205
205
|
'', 'A党:3名\nB党:1名\nC党:2名\nD党:0名')
|
|
206
206
|
})
|
|
207
|
+
it('and/or/not', async () => {
|
|
208
|
+
const TRUE = '1'
|
|
209
|
+
const FALSE = '0'
|
|
210
|
+
await cmp('' +
|
|
211
|
+
'!DNCL2\n' +
|
|
212
|
+
'(not 真)を表示' +
|
|
213
|
+
'\n', FALSE)
|
|
214
|
+
await cmp('' +
|
|
215
|
+
'!DNCL2\n' +
|
|
216
|
+
'(真 and 真)を表示' +
|
|
217
|
+
'\n', TRUE)
|
|
218
|
+
await cmp('' +
|
|
219
|
+
'!DNCL2\n' +
|
|
220
|
+
'(真 and 偽)を表示' +
|
|
221
|
+
'\n', FALSE)
|
|
222
|
+
await cmp('' +
|
|
223
|
+
'!DNCL2\n' +
|
|
224
|
+
'(真 or 偽)を表示' +
|
|
225
|
+
'\n', TRUE)
|
|
226
|
+
await cmp('' +
|
|
227
|
+
'!DNCL2\n' +
|
|
228
|
+
'(偽 or 偽)を表示' +
|
|
229
|
+
'\n', FALSE)
|
|
230
|
+
})
|
|
207
231
|
})
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "nadesiko3",
|
|
3
|
-
"version": "3.3.
|
|
3
|
+
"version": "3.3.72",
|
|
4
4
|
"description": "Japanese Programming Language",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "src/index.mjs",
|
|
@@ -170,7 +170,6 @@
|
|
|
170
170
|
"typescript": "^4.7.2",
|
|
171
171
|
"url-loader": "^4.1.1",
|
|
172
172
|
"util": "^0.12.4",
|
|
173
|
-
"uuid": "^8.3.2",
|
|
174
173
|
"webpack": "^5.72.1",
|
|
175
174
|
"webpack-bundle-analyzer": "^4.5.0",
|
|
176
175
|
"webpack-cli": "^4.9.2"
|
package/release/_hash.txt
CHANGED
|
@@ -1,18 +1,18 @@
|
|
|
1
1
|
command.json.js:
|
|
2
|
-
md5(hex):
|
|
3
|
-
sha256(hex):
|
|
4
|
-
sha256(base64):
|
|
5
|
-
sha512(base64):
|
|
2
|
+
md5(hex): e1906f374604205486d2114bfa929517
|
|
3
|
+
sha256(hex): 85241d5778eccb8b2b15b6356baeef394108e3cb248bb6a6353bb17dedf710e2
|
|
4
|
+
sha256(base64): hSQdV3jsy4srFbY1a67vOUEI48ski7amNTuxfe33EOI=
|
|
5
|
+
sha512(base64): ulsaA38JYudHBOC+2mi6soQEkzgeE/3kuZ4AeG+JKvqFkGvkOatwaeKGZCjIRsgkOXGh77uDxbf9L5XV1DszUw==
|
|
6
6
|
editor.js:
|
|
7
|
-
md5(hex):
|
|
8
|
-
sha256(hex):
|
|
9
|
-
sha256(base64):
|
|
10
|
-
sha512(base64):
|
|
7
|
+
md5(hex): 4ce168b12eb50fb17b33358bd887e102
|
|
8
|
+
sha256(hex): b7e1bf9a1ebcdf5ceca24375af7738a91004c435128f5a1d36b23d175e4fe8ce
|
|
9
|
+
sha256(base64): t+G/mh6831zsokN1r3c4qRAExDUSj1odNrI9F15P6M4=
|
|
10
|
+
sha512(base64): st5xg/JOoUq4rkH04dOaiLPCinzIphdgVJvGJLMfFpcOwMpLLk+tA6cAam5kmO94oPRShnjlPewiTbxoeUSMhg==
|
|
11
11
|
nako_gen_async.js:
|
|
12
|
-
md5(hex):
|
|
13
|
-
sha256(hex):
|
|
14
|
-
sha256(base64):
|
|
15
|
-
sha512(base64):
|
|
12
|
+
md5(hex): ffc1a80017d5bbef5410ee7c8dd9f39a
|
|
13
|
+
sha256(hex): bc65fda61cbe712a4c120008bb8ca6211a4760aefedfe000305dd1ac9037497e
|
|
14
|
+
sha256(base64): vGX9phy+cSpMEgAIu4ymIRpHYK7+3+AAMF3RrJA3SX4=
|
|
15
|
+
sha512(base64): wj9RSWiaWqFnA56tp/fViG8xLjCNss6PHp5zxK/pL1mf8C5QAVEh/1oiFI+NL5Sa4d0kYVJFGBbwr8CrrFmdrg==
|
|
16
16
|
plugin_caniuse.js:
|
|
17
17
|
md5(hex): 95a7a5c98a92a46b6435e577daba3241
|
|
18
18
|
sha256(hex): 57638b3979be70b45ab8085861f6b2ece43200bd6aa92765d73caf76b9e6fea9
|
|
@@ -54,17 +54,17 @@ plugin_weykturtle3d.js:
|
|
|
54
54
|
sha256(base64): ND/1JqYrFVGTIPYsbBk+tScnF8RVzgYPM0/E2aE8GRw=
|
|
55
55
|
sha512(base64): T4B8Cvhn9j5YdMGk4rwPInfqmcXtGEjD2g6X6wSqXvYyIXuSy+t1RVf1viZ2zljHlk3wN6pwKvvg/NIJvfMAzw==
|
|
56
56
|
version.js:
|
|
57
|
-
md5(hex):
|
|
58
|
-
sha256(hex):
|
|
59
|
-
sha256(base64):
|
|
60
|
-
sha512(base64):
|
|
57
|
+
md5(hex): 43d0b4d77cfbfd21acf6379b437f2ba4
|
|
58
|
+
sha256(hex): 5db5d50e89d2f93d354eeb2c7f3079b1324c317fcf79014f27afb8732e60dce9
|
|
59
|
+
sha256(base64): XbXVDonS+T01TussfzB5sTJMMX/PeQFPJ6+4cy5g3Ok=
|
|
60
|
+
sha512(base64): 2Va9dQcWY8ryFy8nCIEMbGWixaXKZKOtEbglfIMX6+XJ86fQIlT1CNYH3L1ZGpIc5MdiGsZPDgqiPK9zaAxeFg==
|
|
61
61
|
wnako3.js:
|
|
62
|
-
md5(hex):
|
|
63
|
-
sha256(hex):
|
|
64
|
-
sha256(base64):
|
|
65
|
-
sha512(base64):
|
|
62
|
+
md5(hex): c92c140d870dc20caadb02c5cba60717
|
|
63
|
+
sha256(hex): ce912c9eb3417767fc6ca3e4cd711f3faee82fde7622a25e654f2177f0389d56
|
|
64
|
+
sha256(base64): zpEsnrNBd2f8bKPkzXEfP67oL952IqJeZU8hd/A4nVY=
|
|
65
|
+
sha512(base64): lNUvP9dfDWcmeI3FuSqYwQwU7nGpNsRvmWqEgurXHuo7iS/3YJsWrehuUCcsPAC4Kt0Ir4EpybOIuYV2QtJBBA==
|
|
66
66
|
wnako3webworker.js:
|
|
67
|
-
md5(hex):
|
|
68
|
-
sha256(hex):
|
|
69
|
-
sha256(base64):
|
|
70
|
-
sha512(base64):
|
|
67
|
+
md5(hex): 52b1ffe78b86cab8edc5686b0ff18d79
|
|
68
|
+
sha256(hex): 2906b3ae0dd29bb1b42d72cb04c7f5281c0207f920759a76a884ccd198f7a9f9
|
|
69
|
+
sha256(base64): KQazrg3Sm7G0LXLLBMf1KBwCB/kgdZp2qITM0Zj3qfk=
|
|
70
|
+
sha512(base64): DJbCSh0P9kLhiztiTVE8reOKfcIamp0Y8kzjevO8yHNxinFbVqLn/MPAf5Yaw5+GBjrELzG0ll0XkAVPZ3y55A==
|
package/release/_script-tags.txt
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
|
-
<script defer src="https://nadesi.com/v3/cdn.php?v=3.3.
|
|
2
|
-
<script defer src="https://nadesi.com/v3/cdn.php?v=3.3.
|
|
3
|
-
<script defer src="https://nadesi.com/v3/cdn.php?v=3.3.
|
|
4
|
-
<script defer src="https://nadesi.com/v3/cdn.php?v=3.3.
|
|
5
|
-
<script defer src="https://nadesi.com/v3/cdn.php?v=3.3.
|
|
6
|
-
<script defer src="https://nadesi.com/v3/cdn.php?v=3.3.
|
|
7
|
-
<script defer src="https://nadesi.com/v3/cdn.php?v=3.3.
|
|
8
|
-
<script defer src="https://nadesi.com/v3/cdn.php?v=3.3.
|
|
9
|
-
<script defer src="https://nadesi.com/v3/cdn.php?v=3.3.
|
|
10
|
-
<script defer src="https://nadesi.com/v3/cdn.php?v=3.3.
|
|
11
|
-
<script defer src="https://nadesi.com/v3/cdn.php?v=3.3.
|
|
12
|
-
<script defer src="https://nadesi.com/v3/cdn.php?v=3.3.
|
|
13
|
-
<script defer src="https://nadesi.com/v3/cdn.php?v=3.3.
|
|
14
|
-
<script defer src="https://nadesi.com/v3/cdn.php?v=3.3.
|
|
1
|
+
<script defer src="https://nadesi.com/v3/cdn.php?v=3.3.72&f=release/command.json.js" integrity="sha512-ulsaA38JYudHBOC+2mi6soQEkzgeE/3kuZ4AeG+JKvqFkGvkOatwaeKGZCjIRsgkOXGh77uDxbf9L5XV1DszUw==" crossorigin="anonymous"></script>
|
|
2
|
+
<script defer src="https://nadesi.com/v3/cdn.php?v=3.3.72&f=release/editor.js" integrity="sha512-st5xg/JOoUq4rkH04dOaiLPCinzIphdgVJvGJLMfFpcOwMpLLk+tA6cAam5kmO94oPRShnjlPewiTbxoeUSMhg==" crossorigin="anonymous"></script>
|
|
3
|
+
<script defer src="https://nadesi.com/v3/cdn.php?v=3.3.72&f=release/nako_gen_async.js" integrity="sha512-wj9RSWiaWqFnA56tp/fViG8xLjCNss6PHp5zxK/pL1mf8C5QAVEh/1oiFI+NL5Sa4d0kYVJFGBbwr8CrrFmdrg==" crossorigin="anonymous"></script>
|
|
4
|
+
<script defer src="https://nadesi.com/v3/cdn.php?v=3.3.72&f=release/plugin_caniuse.js" integrity="sha512-NbX6BKUNq1J8xwtv5CThQC54Lb/KxaPlimRpsF745nxqjYeuGD7S70j4yOgNm4Uwd7AN5FgezS6NDyhlvoJF2w==" crossorigin="anonymous"></script>
|
|
5
|
+
<script defer src="https://nadesi.com/v3/cdn.php?v=3.3.72&f=release/plugin_csv.js" integrity="sha512-mQvmj25L2Nc2L7gN1rTjayHVMMPhc7TCSiBsuKS4JKOQqN+91uj9qpLAOejzR1ib5jIOBdtrhN+secNTU9BJtw==" crossorigin="anonymous"></script>
|
|
6
|
+
<script defer src="https://nadesi.com/v3/cdn.php?v=3.3.72&f=release/plugin_datetime.js" integrity="sha512-1ADTZFkcfU6vpEEJZEYmIbqS6G2XViooDFD4198P61n7VKZ0PhEVj9l8ULFGrW7woSbDqfSPZmkZ7yvcRqPKYA==" crossorigin="anonymous"></script>
|
|
7
|
+
<script defer src="https://nadesi.com/v3/cdn.php?v=3.3.72&f=release/plugin_kansuji.js" integrity="sha512-tXC9Q6LejwYG+HUbXcwBHFmhwTsqiMHOBohLNcSx8b02hxk3waPUEQRWeNP7QxAFMv5BOAY+Grruf+XKmmU26g==" crossorigin="anonymous"></script>
|
|
8
|
+
<script defer src="https://nadesi.com/v3/cdn.php?v=3.3.72&f=release/plugin_markup.js" integrity="sha512-pvb+QYO9LMUH055nPJJ5QaWyEYR3wDkHHilV5LLNyxObs7enlHGiF7Jt3Csd93JTdJ3n9hxFbTqWa1QuzVmTfQ==" crossorigin="anonymous"></script>
|
|
9
|
+
<script defer src="https://nadesi.com/v3/cdn.php?v=3.3.72&f=release/plugin_turtle.js" integrity="sha512-3/BlAe3uVDBgJrgFWzLJa3bvNQVhAQuL343Icict5hI3LndcPjV6mAD8KoWRlxmF8A8S6n8eKnmrh6NFWTjyEw==" crossorigin="anonymous"></script>
|
|
10
|
+
<script defer src="https://nadesi.com/v3/cdn.php?v=3.3.72&f=release/plugin_webworker.js" integrity="sha512-JLlIg9cW9UgM2AT+qMgEuKvea3t8R+1jihhlN/QGDQe7iCaGEfXfKG5gpvRb0IUyisNfzncUN8AfLn9wyxGGiw==" crossorigin="anonymous"></script>
|
|
11
|
+
<script defer src="https://nadesi.com/v3/cdn.php?v=3.3.72&f=release/plugin_weykturtle3d.js" integrity="sha512-T4B8Cvhn9j5YdMGk4rwPInfqmcXtGEjD2g6X6wSqXvYyIXuSy+t1RVf1viZ2zljHlk3wN6pwKvvg/NIJvfMAzw==" crossorigin="anonymous"></script>
|
|
12
|
+
<script defer src="https://nadesi.com/v3/cdn.php?v=3.3.72&f=release/version.js" integrity="sha512-2Va9dQcWY8ryFy8nCIEMbGWixaXKZKOtEbglfIMX6+XJ86fQIlT1CNYH3L1ZGpIc5MdiGsZPDgqiPK9zaAxeFg==" crossorigin="anonymous"></script>
|
|
13
|
+
<script defer src="https://nadesi.com/v3/cdn.php?v=3.3.72&f=release/wnako3.js" integrity="sha512-lNUvP9dfDWcmeI3FuSqYwQwU7nGpNsRvmWqEgurXHuo7iS/3YJsWrehuUCcsPAC4Kt0Ir4EpybOIuYV2QtJBBA==" crossorigin="anonymous"></script>
|
|
14
|
+
<script defer src="https://nadesi.com/v3/cdn.php?v=3.3.72&f=release/wnako3webworker.js" integrity="sha512-DJbCSh0P9kLhiztiTVE8reOKfcIamp0Y8kzjevO8yHNxinFbVqLn/MPAf5Yaw5+GBjrELzG0ll0XkAVPZ3y55A==" crossorigin="anonymous"></script>
|