nadesiko3 3.6.27 → 3.6.28
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/README.md +5 -4
- package/batch/command.txt +65 -6
- package/core/package.json +1 -1
- package/core/src/nako_gen.mjs +1 -5
- package/core/src/nako_gen.mts +1 -5
- package/core/src/nako_josi_list.mjs +1 -0
- package/core/src/nako_josi_list.mts +1 -0
- package/core/src/nako_parser3.mjs +17 -31
- package/core/src/nako_parser3.mts +17 -29
- package/core/test/basic_test.mjs +4 -0
- package/package.json +3 -3
- package/release/_hash.txt +32 -32
- package/release/_script-tags.txt +33 -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 +9 -9
- package/release/edit_main.js.map +3 -3
- package/release/editor.js +9 -9
- package/release/plugin_markup.js +39 -39
- package/release/plugin_markup.js.map +4 -4
- package/release/version.js +1 -1
- package/release/version_main.js +1 -1
- package/release/version_main.js.map +1 -1
- package/release/wnako3.js +27 -29
- package/release/wnako3.js.map +2 -2
- package/release/wnako3webworker.js +7 -9
- package/release/wnako3webworker.js.map +2 -2
- package/src/nako_version.mjs +2 -2
- package/src/nako_version.mts +2 -2
- package/src/plugin_browser_dom_parts.mjs +1 -1
- package/src/plugin_browser_dom_parts.mts +1 -1
package/README.md
CHANGED
|
@@ -138,12 +138,13 @@ Google Colabでなでしこのビルドテストできます。
|
|
|
138
138
|
## なでしこの開発履歴
|
|
139
139
|
|
|
140
140
|
「なでしこ3」の開発は2017年に始まり、以後コツコツとバージョンアップを続けています。
|
|
141
|
-
|
|
141
|
+
「誰でも簡単プログラマー」の目標を実現するために開発を続けます。
|
|
142
142
|
|
|
143
|
-
- (2024
|
|
144
|
-
- (2024
|
|
143
|
+
- (2024-07-22) v.3.6.11でcoreに分割した開発用リポジトリを再び本家に統合
|
|
144
|
+
- (2024-07-04) v3.6.8で、バンドルツールを`webpack`から`esbuild`に変更(#1690)
|
|
145
|
+
- (2024-05-02) v3.6.2で、プラグイン用APIを一新、なでしこの変数管理をObjectからMapに変更(#1638)
|
|
145
146
|
- (2022-05-19) v3.3.18でJavaScriptからTypeScriptへ変更。言語コアを別リポジトリcoreに移動
|
|
146
|
-
- (2022-04-20) v3.3.2を公開(モジュール構造をCommonJS
|
|
147
|
+
- (2022-04-20) v3.3.2を公開(モジュール構造をCommonJSからESModuleへ変更/非同期関数asyncFnの実装)
|
|
147
148
|
- (2021-04-09) v3.2.1を公開
|
|
148
149
|
- (2020-04-24) v3.1.2を公開
|
|
149
150
|
- (2017-12-29) v3.0.19を公開(無名関数の「には」構文の実装など)
|
package/batch/command.txt
CHANGED
|
@@ -830,6 +830,71 @@
|
|
|
830
830
|
|
|
831
831
|
|
|
832
832
|
■plugin_electron_node(拡張プラグイン,enako)
|
|
833
|
+
●システム定数
|
|
834
|
+
| 定数 | Eアプリ | | app | Eあぷり | https://github.com/kujirahand/nadesiko3electron/blob/master/src/plugin_electron_node.mjs#L196
|
|
835
|
+
| 定数 | IPCメイン | | ipcMain | IPCめいん | https://github.com/kujirahand/nadesiko3electron/blob/master/src/plugin_electron_node.mjs#L197
|
|
836
|
+
●Electronアプリ
|
|
837
|
+
| 関数 | アプリID設定 | APPIDに/APPIDを | アプリIDを設定する | あぷりIDせってい | https://github.com/kujirahand/nadesiko3electron/blob/master/src/plugin_electron_node.mjs#L203
|
|
838
|
+
| 関数 | QUIT | | Electronのアプリを終了する | QUIT | https://github.com/kujirahand/nadesiko3electron/blob/master/src/plugin_electron_node.mjs#L212
|
|
839
|
+
| 関数 | 終了 | | Electronのアプリを終了する | しゅうりょう | https://github.com/kujirahand/nadesiko3electron/blob/master/src/plugin_electron_node.mjs#L221
|
|
840
|
+
| 関数 | 強制終了 | CODEで | Electronのアプリを強制終了する | きょうせいしゅうりょう | https://github.com/kujirahand/nadesiko3electron/blob/master/src/plugin_electron_node.mjs#L230
|
|
841
|
+
| 関数 | 再起動予約 | POPTSで | アプリが終了した際に自動的に起動する | さいきどうよやく | https://github.com/kujirahand/nadesiko3electron/blob/master/src/plugin_electron_node.mjs#L239
|
|
842
|
+
| 関数 | Eアプリ準備完了 | | アプリの準備が完了していれば真を返す | Eあぷりじゅんびかんりょう | https://github.com/kujirahand/nadesiko3electron/blob/master/src/plugin_electron_node.mjs#L251
|
|
843
|
+
| 関数 | Eアプリ準備完了時 | CALLBACKで | アプリの準備が完了した際に呼び去られる処理を登録する | Eあぷりじゅんびかんりょうしたとき | https://github.com/kujirahand/nadesiko3electron/blob/master/src/plugin_electron_node.mjs#L259
|
|
844
|
+
| 関数 | Eアプリフォーカス獲得 | | アプリがフォーカスの獲得を試みる | Eあぷりふぉーかすかくとく | https://github.com/kujirahand/nadesiko3electron/blob/master/src/plugin_electron_node.mjs#L270
|
|
845
|
+
| 関数 | Eアプリバージョン取得 | | package.jsonで設定しているアプリのバージョンを返す | Eあぷりばーじょんしゅとく | https://github.com/kujirahand/nadesiko3electron/blob/master/src/plugin_electron_node.mjs#L279
|
|
846
|
+
| 関数 | Eアプリ名取得 | | package.jsonで設定しているアプリの名前(name,productName)を返す | Eあぷりめいしゅとく | https://github.com/kujirahand/nadesiko3electron/blob/master/src/plugin_electron_node.mjs#L287
|
|
847
|
+
●ElectronのBrowserWindow
|
|
848
|
+
| 関数 | ブラウザウインドウ作成 | POPTSで/POPTSから | オプションに従いブラウザウインドウを作成して返す | ぶらうざういんどうさくせい | https://github.com/kujirahand/nadesiko3electron/blob/master/src/plugin_electron_node.mjs#L296
|
|
849
|
+
| 関数 | ブラウザ読込 | WINにPURLから/WINへPURLを | ウインドウに指定のURLから読み込みを行う | ぶらうざよみこみ | https://github.com/kujirahand/nadesiko3electron/blob/master/src/plugin_electron_node.mjs#L325
|
|
850
|
+
| 関数 | 全ウインドウ数取得 | | アプリに存在する全てのWindowの数を返す | ぜんういんどうすうしゅとく | https://github.com/kujirahand/nadesiko3electron/blob/master/src/plugin_electron_node.mjs#L340
|
|
851
|
+
| 関数 | フォーカスウインドウ取得 | | フォーカスを獲得しているWindowを返す | ふぉーかすういんどうしゅとく | https://github.com/kujirahand/nadesiko3electron/blob/master/src/plugin_electron_node.mjs#L348
|
|
852
|
+
| 関数 | ウインドウ再読込 | WINを | 指定したウインドウの再読み込みを行う | ういんどうさいよみこみ | https://github.com/kujirahand/nadesiko3electron/blob/master/src/plugin_electron_node.mjs#L356
|
|
853
|
+
| 関数 | ウインドウ表示 | WINを/WINの | 指定したウインドウを表示状態にする | ういんどうひょうじ | https://github.com/kujirahand/nadesiko3electron/blob/master/src/plugin_electron_node.mjs#L365
|
|
854
|
+
| 関数 | 開発ツールトグル | WINを/WINの | 指定したウインドウの開発者ツールの表示状態をトグルする | かいはつつーるとぐる | https://github.com/kujirahand/nadesiko3electron/blob/master/src/plugin_electron_node.mjs#L374
|
|
855
|
+
| 関数 | メニュー設定 | WINにMENUを | menuをウインドウのメニューに設定する | めにゅーせってい | https://github.com/kujirahand/nadesiko3electron/blob/master/src/plugin_electron_node.mjs#L383
|
|
856
|
+
●Electronのメニュー
|
|
857
|
+
| 関数 | アプリメニュー設定 | MENUを | menuをアプリのメインメニューに設定する | あぷりめにゅーせってい | https://github.com/kujirahand/nadesiko3electron/blob/master/src/plugin_electron_node.mjs#L393
|
|
858
|
+
| 関数 | アプリメニュー取得 | | アプリのメインメニューに取得して返す | あぷりめにゅーしゅとく | https://github.com/kujirahand/nadesiko3electron/blob/master/src/plugin_electron_node.mjs#L411
|
|
859
|
+
| 関数 | メニュー一括作成 | TEMPLATEから | メニューをテンプレートから一括作成し作成したメニューを返す | めにゅーいっかつさくせい | https://github.com/kujirahand/nadesiko3electron/blob/master/src/plugin_electron_node.mjs#L427
|
|
860
|
+
| 関数 | メニューポップアップ開 | MENUをPOPTSで | メニューをポップアップメニューとして開く | めにゅーぽっぷあっぷひらく | https://github.com/kujirahand/nadesiko3electron/blob/master/src/plugin_electron_node.mjs#L450
|
|
861
|
+
| 関数 | メニューポップアップ閉 | MENUをWINの | ポップアップメニューとして開かれたこのメニューを閉じる | めにゅーぽっぷあっぷとじる | https://github.com/kujirahand/nadesiko3electron/blob/master/src/plugin_electron_node.mjs#L462
|
|
862
|
+
| 関数 | メニューアイテム追加 | MENUにITEMを | メニューにメニュー項目を追加する | めにゅーあいてむついか | https://github.com/kujirahand/nadesiko3electron/blob/master/src/plugin_electron_node.mjs#L472
|
|
863
|
+
| 関数 | メニュー項目追加 | MENUにITEMを | メニューにメニュー項目を追加する | めにゅーこうもくついか | https://github.com/kujirahand/nadesiko3electron/blob/master/src/plugin_electron_node.mjs#L481
|
|
864
|
+
| 関数 | メニューアイテム挿入 | MENUのPOSにITEMを | メニューの指定位置にメニュー項目を挿入する | めにゅーあいてむそうにゅう | https://github.com/kujirahand/nadesiko3electron/blob/master/src/plugin_electron_node.mjs#L490
|
|
865
|
+
| 関数 | メニュー項目挿入 | MENUのPOSにITEMを | メニューの指定位置にメニュー項目を挿入する | めにゅーこうもくそうにゅう | https://github.com/kujirahand/nadesiko3electron/blob/master/src/plugin_electron_node.mjs#L499
|
|
866
|
+
| 関数 | メニューアイテム取得 | MENUからIDを/IDの | メニューから指定したIDを持つメニューアイテムを返す | めにゅーあいてむしゅとく | https://github.com/kujirahand/nadesiko3electron/blob/master/src/plugin_electron_node.mjs#L508
|
|
867
|
+
| 関数 | メニューIDクリック時 | CALLBACKでMENUのIDを | メニューから指定したIDを持つ項目をクリックした時の処理を登録する | めにゅーIDくりっくしたとき | https://github.com/kujirahand/nadesiko3electron/blob/master/src/plugin_electron_node.mjs#L516
|
|
868
|
+
| 関数 | メニュー項目作成 | POPTSから/POPTSの | メニュー項目を作成して返す | めにゅーこうもくさくせい | https://github.com/kujirahand/nadesiko3electron/blob/master/src/plugin_electron_node.mjs#L526
|
|
869
|
+
●Electronのイベント処理
|
|
870
|
+
| 関数 | 発生時 | CALLBACKでOBJのTYPE | 対象にて指定のイベントが発生した時の処理を登録する | はっせいしたとき | https://github.com/kujirahand/nadesiko3electron/blob/master/src/plugin_electron_node.mjs#L550
|
|
871
|
+
| 関数 | 単発発生時 | CALLBACKでOBJのTYPE | 対象にて指定のイベントが発生した時の処理を登録する。イベント発生時に自動削除される | たんぱつはっせいしたとき | https://github.com/kujirahand/nadesiko3electron/blob/master/src/plugin_electron_node.mjs#L563
|
|
872
|
+
| 関数 | 呼出時 | CALLBACKでOBJのTYPE | 対象にて指定のInvoke呼び出しを受けた時の処理を登録する(evt, ...args) | よびだされたとき | https://github.com/kujirahand/nadesiko3electron/blob/master/src/plugin_electron_node.mjs#L572
|
|
873
|
+
| 関数 | 呼出 | OBJのTYPEARGSで/TYPEを | 対象のInvokeを呼び出す | よびだす | https://github.com/kujirahand/nadesiko3electron/blob/master/src/plugin_electron_node.mjs#L581
|
|
874
|
+
●Electronのshell
|
|
875
|
+
●Electronのdialog
|
|
876
|
+
| 関数 | ファイル選択 | WINにPOPTSで | ファイルを選択するダイアログを表示して結果を返す(非同期関数) | ふぁいるせんたく | https://github.com/kujirahand/nadesiko3electron/blob/master/src/plugin_electron_node.mjs#L601
|
|
877
|
+
| 関数 | フォルダ選択 | WINにPOPTSで | フォルダを選択するダイアログを表示して結果を返す(非同期関数) | ふぉるだせんたく | https://github.com/kujirahand/nadesiko3electron/blob/master/src/plugin_electron_node.mjs#L612
|
|
878
|
+
| 関数 | 保存ファイル選択 | WINにOPTSで | ファイルを保存するためのダイアログを表示して結果を返す(非同期関数) | ほぞんふぁいるせんたく | https://github.com/kujirahand/nadesiko3electron/blob/master/src/plugin_electron_node.mjs#L623
|
|
879
|
+
●Electronのscreen
|
|
880
|
+
| 関数 | カーソル絶対位置取得 | | マウスポインタの絶対位置をDIPポイント単位で返す | かーそるぜったいいちしゅとく | https://github.com/kujirahand/nadesiko3electron/blob/master/src/plugin_electron_node.mjs#L632
|
|
881
|
+
| 関数 | 主モニター取得 | | 主画面に指定されているモニターのDisplayを返す | しゅもにたーしゅとく | https://github.com/kujirahand/nadesiko3electron/blob/master/src/plugin_electron_node.mjs#L640
|
|
882
|
+
| 関数 | 全モニター取得 | | 全てのモニターをDisplayの配列で返す | ぜんもにたーしゅとく | https://github.com/kujirahand/nadesiko3electron/blob/master/src/plugin_electron_node.mjs#L648
|
|
883
|
+
| 関数 | 付近モニター取得 | Pの/Pから | 指定した点に最も近いモニターのDisplayを返す | ふきんもにたーしゅとく | https://github.com/kujirahand/nadesiko3electron/blob/master/src/plugin_electron_node.mjs#L656
|
|
884
|
+
| 関数 | 該当モニター取得 | Rの/Rから | 指定した矩形に最も近いモニターのDisplayを返す | がいとうもにたーしゅとく | https://github.com/kujirahand/nadesiko3electron/blob/master/src/plugin_electron_node.mjs#L665
|
|
885
|
+
| 関数 | PX2DIP点変換 | Pの/Pから | Pointを物理的な単位からDIP単位に変換して返す | PX2DIPてんへんかん | https://github.com/kujirahand/nadesiko3electron/blob/master/src/plugin_electron_node.mjs#L674
|
|
886
|
+
| 関数 | DIP2PX点変換 | Pの/Pから | PointをDIP単位から物理的な単位に変換して返す | DIP2PXてんへんかん | https://github.com/kujirahand/nadesiko3electron/blob/master/src/plugin_electron_node.mjs#L683
|
|
887
|
+
| 関数 | PX2DIP矩形変換 | RのWINで/Rから | Rectangleを物理的な単位からDIP単位に変換して返す。DPIは指定したウインドウと相対的に計算する | PX2DIPくけいへんかん | https://github.com/kujirahand/nadesiko3electron/blob/master/src/plugin_electron_node.mjs#L692
|
|
888
|
+
| 関数 | DIP2PXP矩形変換 | RのWINで/Rから | RectangleをDIP単位から物理的な単位に変換して返す。DPIは指定したウインドウと相対的に計算する | DIP2PXくけいへんかん | https://github.com/kujirahand/nadesiko3electron/blob/master/src/plugin_electron_node.mjs#L701
|
|
889
|
+
●Electronのユーザ用IPC通信
|
|
890
|
+
| 関数 | データ受信時 | CALLBACKで | レンダラからのデータ送信を受けた時の処理を登録する(evt, key, msg) | でーたじゅしんしたとき | https://github.com/kujirahand/nadesiko3electron/blob/master/src/plugin_electron_node.mjs#L711
|
|
891
|
+
| 関数 | データ呼出時 | CALLBACKで/CALLBACKの | レンダラからの呼び出しを受けた時の処理を登録する(evt, key, msg) | でーたよびだされたとき | https://github.com/kujirahand/nadesiko3electron/blob/master/src/plugin_electron_node.mjs#L720
|
|
892
|
+
| 関数 | データ送信 | OBJにKEYでDATAを | レンダラにデータを送信する(webContent, key, data) | でーたそうしん | https://github.com/kujirahand/nadesiko3electron/blob/master/src/plugin_electron_node.mjs#L729
|
|
893
|
+
| 関数 | データ呼出 | OBJにKEYでDATAを | レンダラにデータを呼び出す(webContent, key, data) | でーたよびだし | https://github.com/kujirahand/nadesiko3electron/blob/master/src/plugin_electron_node.mjs#L738
|
|
894
|
+
●ElectronのNode側の標準機能セット
|
|
895
|
+
|
|
896
|
+
|
|
897
|
+
■nadesiko3-toml(拡張プラグイン,wnako,cnako)
|
|
833
898
|
●PHP定数
|
|
834
899
|
●PHPシステム
|
|
835
900
|
●PDO
|
|
@@ -837,9 +902,3 @@
|
|
|
837
902
|
●KUDB
|
|
838
903
|
|
|
839
904
|
|
|
840
|
-
■nadesiko3-toml(拡張プラグイン,wnako,cnako)
|
|
841
|
-
●TOML
|
|
842
|
-
| 関数 | TOMLデコード | Sを/Sの/Sから | TOML文字列をオブジェクトにデコードして返す | TOMLでこーど | https://github.com/kujirahand/nadesiko3-toml/blob/master/src/nadesiko3-toml.js#L27
|
|
843
|
-
| 関数 | TOMLエンコード | Sを/Sから/Sの | オブジェクトをTOML文字列にエンコードする | TOMLえんこーど | https://github.com/kujirahand/nadesiko3-toml/blob/master/src/nadesiko3-toml.js#L35
|
|
844
|
-
|
|
845
|
-
|
package/core/package.json
CHANGED
package/core/src/nako_gen.mjs
CHANGED
|
@@ -1794,11 +1794,7 @@ export class NakoGen {
|
|
|
1794
1794
|
let code = '/*[convLetProp]*/';
|
|
1795
1795
|
// 変数が存在しないとき
|
|
1796
1796
|
if (res === null) {
|
|
1797
|
-
throw NakoSyntaxError.fromNode(
|
|
1798
|
-
}
|
|
1799
|
-
// ネームスペースを削除
|
|
1800
|
-
if (prop.indexOf('__') >= 0) {
|
|
1801
|
-
prop = prop.split('__')[1];
|
|
1797
|
+
throw NakoSyntaxError.fromNode(`変数『${name}』が見当たりません。`, node);
|
|
1802
1798
|
}
|
|
1803
1799
|
// プロパティへの代入式を作る
|
|
1804
1800
|
const propVar = `${res.js}['${prop}']`;
|
package/core/src/nako_gen.mts
CHANGED
|
@@ -1856,11 +1856,7 @@ export class NakoGen {
|
|
|
1856
1856
|
let code = '/*[convLetProp]*/'
|
|
1857
1857
|
// 変数が存在しないとき
|
|
1858
1858
|
if (res === null) {
|
|
1859
|
-
throw NakoSyntaxError.fromNode(
|
|
1860
|
-
}
|
|
1861
|
-
// ネームスペースを削除
|
|
1862
|
-
if (prop.indexOf('__') >= 0) {
|
|
1863
|
-
prop = prop.split('__')[1]
|
|
1859
|
+
throw NakoSyntaxError.fromNode(`変数『${name}』が見当たりません。`, node)
|
|
1864
1860
|
}
|
|
1865
1861
|
// プロパティへの代入式を作る
|
|
1866
1862
|
const propVar = `${res.js}['${prop}']`
|
|
@@ -1789,38 +1789,24 @@ export class NakoParser extends NakoParserBase {
|
|
|
1789
1789
|
throw NakoSyntaxError.fromNode(`${this.nodeToStr(word, { depth: 1 }, false)}への代入文で計算式に以下の書き間違いがあります。\n${err.message}`, map);
|
|
1790
1790
|
}
|
|
1791
1791
|
}
|
|
1792
|
-
// プロパティ代入文
|
|
1793
|
-
if (this.check2(['word', '$', 'word', 'eq'])) {
|
|
1792
|
+
// プロパティ代入文 (#1793)
|
|
1793
|
+
if (this.check2(['word', '$', 'word', 'eq']) || this.check2(['word', '$', 'string', 'eq'])) {
|
|
1794
1794
|
const word = this.peek();
|
|
1795
|
-
|
|
1796
|
-
|
|
1797
|
-
|
|
1798
|
-
|
|
1799
|
-
|
|
1800
|
-
|
|
1801
|
-
|
|
1802
|
-
|
|
1803
|
-
|
|
1804
|
-
|
|
1805
|
-
|
|
1806
|
-
|
|
1807
|
-
|
|
1808
|
-
end: this.peekSourceMap()
|
|
1809
|
-
};
|
|
1810
|
-
}
|
|
1811
|
-
else {
|
|
1812
|
-
threw = true;
|
|
1813
|
-
this.logger.debug(`${this.nodeToStr(word, { depth: 1 }, true)}への代入文で計算式に書き間違いがあります。`, word);
|
|
1814
|
-
throw NakoSyntaxError.fromNode(`${this.nodeToStr(word, { depth: 1 }, false)}への代入文で計算式に書き間違いがあります。`, map);
|
|
1815
|
-
}
|
|
1816
|
-
}
|
|
1817
|
-
catch (err) {
|
|
1818
|
-
if (threw) {
|
|
1819
|
-
throw err;
|
|
1820
|
-
}
|
|
1821
|
-
this.logger.debug(`${this.nodeToStr(word, { depth: 1 }, true)}への代入文で計算式に以下の書き間違いがあります。\n${err.message}`, word);
|
|
1822
|
-
throw NakoSyntaxError.fromNode(`${this.nodeToStr(word, { depth: 1 }, false)}への代入文で計算式に以下の書き間違いがあります。\n${err.message}`, map);
|
|
1795
|
+
if (this.accept(['word', '$', 'word', 'eq', this.yCalc]) || this.accept(['word', '$', 'string', 'eq', this.yCalc])) {
|
|
1796
|
+
const nameToken = this.getVarName(this.y[0]);
|
|
1797
|
+
const propToken = this.y[2];
|
|
1798
|
+
const valueToken = this.y[4];
|
|
1799
|
+
return {
|
|
1800
|
+
type: 'let_prop',
|
|
1801
|
+
name: nameToken.value,
|
|
1802
|
+
index: [propToken],
|
|
1803
|
+
blocks: [valueToken],
|
|
1804
|
+
josi: '',
|
|
1805
|
+
...map,
|
|
1806
|
+
end: this.peekSourceMap()
|
|
1807
|
+
};
|
|
1823
1808
|
}
|
|
1809
|
+
throw NakoSyntaxError.fromNode(`${this.nodeToStr(word, { depth: 1 }, false)}への代入文の計算式に書き間違いがあります。`, map);
|
|
1824
1810
|
}
|
|
1825
1811
|
// let_array ?
|
|
1826
1812
|
if (this.check2(['word', '@'])) {
|
|
@@ -2615,7 +2601,7 @@ export class NakoParser extends NakoParserBase {
|
|
|
2615
2601
|
return ast;
|
|
2616
2602
|
}
|
|
2617
2603
|
// word$prop
|
|
2618
|
-
if (word.josi === '' && this.check2(['$', 'word'])) {
|
|
2604
|
+
if (word.josi === '' && (this.check2(['$', 'word']) || this.check2(['$', 'string']))) {
|
|
2619
2605
|
this.get(); // skip '$'
|
|
2620
2606
|
const prop = this.get();
|
|
2621
2607
|
return {
|
|
@@ -1556,36 +1556,24 @@ export class NakoParser extends NakoParserBase {
|
|
|
1556
1556
|
throw NakoSyntaxError.fromNode(`${this.nodeToStr(word, { depth: 1 }, false)}への代入文で計算式に以下の書き間違いがあります。\n${err.message}`, map)
|
|
1557
1557
|
}
|
|
1558
1558
|
}
|
|
1559
|
-
// プロパティ代入文
|
|
1560
|
-
if (this.check2(['word', '$', 'word', 'eq'])) {
|
|
1559
|
+
// プロパティ代入文 (#1793)
|
|
1560
|
+
if (this.check2(['word', '$', 'word', 'eq']) || this.check2(['word', '$', 'string', 'eq'])) {
|
|
1561
1561
|
const word = this.peek()
|
|
1562
|
-
|
|
1563
|
-
|
|
1564
|
-
|
|
1565
|
-
|
|
1566
|
-
|
|
1567
|
-
|
|
1568
|
-
|
|
1569
|
-
|
|
1570
|
-
|
|
1571
|
-
|
|
1572
|
-
|
|
1573
|
-
|
|
1574
|
-
|
|
1575
|
-
end: this.peekSourceMap()
|
|
1576
|
-
} as AstLet
|
|
1577
|
-
} else {
|
|
1578
|
-
threw = true
|
|
1579
|
-
this.logger.debug(`${this.nodeToStr(word, { depth: 1 }, true)}への代入文で計算式に書き間違いがあります。`, word)
|
|
1580
|
-
throw NakoSyntaxError.fromNode(`${this.nodeToStr(word, { depth: 1 }, false)}への代入文で計算式に書き間違いがあります。`, map)
|
|
1581
|
-
}
|
|
1582
|
-
} catch (err: any) {
|
|
1583
|
-
if (threw) {
|
|
1584
|
-
throw err
|
|
1585
|
-
}
|
|
1586
|
-
this.logger.debug(`${this.nodeToStr(word, { depth: 1 }, true)}への代入文で計算式に以下の書き間違いがあります。\n${err.message}`, word)
|
|
1587
|
-
throw NakoSyntaxError.fromNode(`${this.nodeToStr(word, { depth: 1 }, false)}への代入文で計算式に以下の書き間違いがあります。\n${err.message}`, map)
|
|
1562
|
+
if (this.accept(['word', '$', 'word', 'eq', this.yCalc]) || this.accept(['word', '$', 'string', 'eq', this.yCalc])) {
|
|
1563
|
+
const nameToken = this.getVarName(this.y[0])
|
|
1564
|
+
const propToken = this.y[2]
|
|
1565
|
+
const valueToken = this.y[4]
|
|
1566
|
+
return {
|
|
1567
|
+
type: 'let_prop',
|
|
1568
|
+
name: (nameToken as AstStrValue).value,
|
|
1569
|
+
index: [propToken],
|
|
1570
|
+
blocks: [valueToken],
|
|
1571
|
+
josi: '',
|
|
1572
|
+
...map,
|
|
1573
|
+
end: this.peekSourceMap()
|
|
1574
|
+
} as AstLet
|
|
1588
1575
|
}
|
|
1576
|
+
throw NakoSyntaxError.fromNode(`${this.nodeToStr(word, { depth: 1 }, false)}への代入文の計算式に書き間違いがあります。`, map)
|
|
1589
1577
|
}
|
|
1590
1578
|
|
|
1591
1579
|
// let_array ?
|
|
@@ -2324,7 +2312,7 @@ export class NakoParser extends NakoParserBase {
|
|
|
2324
2312
|
}
|
|
2325
2313
|
|
|
2326
2314
|
// word$prop
|
|
2327
|
-
if (word.josi === '' && this.check2(['$', 'word'])) {
|
|
2315
|
+
if (word.josi === '' && (this.check2(['$', 'word']) || this.check2(['$', 'string']))) {
|
|
2328
2316
|
this.get() // skip '$'
|
|
2329
2317
|
const prop = this.get() as Token
|
|
2330
2318
|
return {
|
package/core/test/basic_test.mjs
CHANGED
|
@@ -390,4 +390,8 @@ describe('basic', async () => {
|
|
|
390
390
|
'A={"幅": 3, "__setProp": F_SET, "__getProp": F_GET};\n' +
|
|
391
391
|
'A$幅=5; A$幅を表示', '50')
|
|
392
392
|
})
|
|
393
|
+
it('オブジェクトを手軽に設定する-文字列 (#1793)', async () => {
|
|
394
|
+
await cmp('A={"幅":30};A$"幅"=50;A$"幅"を表示', '50')
|
|
395
|
+
await cmp('A={"高":30};A$"高"=50;A$"高"を表示', '50') // 送り仮名の省略
|
|
396
|
+
})
|
|
393
397
|
})
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "nadesiko3",
|
|
3
|
-
"version": "3.6.
|
|
3
|
+
"version": "3.6.28",
|
|
4
4
|
"description": "Japanese Programming Language",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "src/index.mjs",
|
|
@@ -140,7 +140,7 @@
|
|
|
140
140
|
"style-loader": "^4.0.0",
|
|
141
141
|
"stylelint": "^16.4.0",
|
|
142
142
|
"testdouble": "^3.20.2",
|
|
143
|
-
"typescript": "^5.
|
|
143
|
+
"typescript": "^5.6.3",
|
|
144
144
|
"typescript-eslint": "^8.0.0",
|
|
145
145
|
"url-loader": "^4.1.1",
|
|
146
146
|
"util": "^0.12.5"
|
|
@@ -150,7 +150,7 @@
|
|
|
150
150
|
"fs-extra": "^11.2.0",
|
|
151
151
|
"html": "^1.0.0",
|
|
152
152
|
"iconv-lite": "^0.6.3",
|
|
153
|
-
"marked": "^
|
|
153
|
+
"marked": "^15.0.0",
|
|
154
154
|
"node-fetch": "^3.3.2",
|
|
155
155
|
"opener": "^1.5.2",
|
|
156
156
|
"shell-quote": "^1.8.1"
|
package/release/_hash.txt
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
command.json.js:
|
|
2
|
-
md5(hex):
|
|
3
|
-
sha256(hex):
|
|
4
|
-
sha256(base64):
|
|
5
|
-
sha512(base64):
|
|
2
|
+
md5(hex): 0a70fd2779b7557628dd4f7f14bfab93
|
|
3
|
+
sha256(hex): 97bb0bf44cb6798aa19ff5f9defa135db46d80b37f726f1e57055de892a6af83
|
|
4
|
+
sha256(base64): l7sL9Ey2eYqhn/X53voTXbRtgLN/cm8eVwVd6JKmr4M=
|
|
5
|
+
sha512(base64): XNQUZwg/0pRQ1xnW5HlgFaeFOyw3xk41ocIbgPEEmuGOaSLSA3P3XLONN3S4Ac9dn5bQ0OquF64SnO5LSnhf3A==
|
|
6
6
|
core_src_nako_josi_list_mjs.js:
|
|
7
7
|
md5(hex): 2fc99e9b0127c3a50756d4ba4dcc2568
|
|
8
8
|
sha256(hex): 09821bf4b80ff1c7445cccd154685d00ac2f53a65a3382f4e96e70ac6676330b
|
|
@@ -14,10 +14,10 @@ core_src_nako_reserved_words_mjs.js:
|
|
|
14
14
|
sha256(base64): 5aJLQsB3GeRK5kfAq4b0Azk0ZCw+3Dv1gU0iOuelIZc=
|
|
15
15
|
sha512(base64): UzZigh2tIhgBO3+Sp1wnqKMvAGfhqSRdH2+ffmRy4+8CVNEeepddaDV0oKJ+vyvi28zQLmXeMsjRu+Frj3YlTg==
|
|
16
16
|
edit_main.js:
|
|
17
|
-
md5(hex):
|
|
18
|
-
sha256(hex):
|
|
19
|
-
sha256(base64):
|
|
20
|
-
sha512(base64):
|
|
17
|
+
md5(hex): 1a8dd3e4874076fe26587df27f8eef87
|
|
18
|
+
sha256(hex): 7e327ac7a54a07560178c06c3e566ae7eb3c45d5719a73aca34972316345dfc5
|
|
19
|
+
sha256(base64): fjJ6x6VKB1YBeMBsPlZq5+s8RdVxmnOso0lyMWNF38U=
|
|
20
|
+
sha512(base64): ue6j2cRKLurntvIG0TN/CV7Lz2TSy4cPCo8xc/lnPotgmt1PM4H1Ur0vpM7lEW7XpsZm46tJUyignroiEDy4PQ==
|
|
21
21
|
edit_main.js:
|
|
22
22
|
md5(hex): 57ca3d9fbf56352e72858c7ce0b09483
|
|
23
23
|
sha256(hex): 9ab24fc718a835070d72d23bafd8e90de25e86f755fba67fee6238347201a422
|
|
@@ -29,10 +29,10 @@ version_main.js:
|
|
|
29
29
|
sha256(base64): BolWQdiyjXjgsV7rd9zbBaP5hJYi3ZWU6lucT5V8fkQ=
|
|
30
30
|
sha512(base64): KMEb25tO1BMsNxzECPwLM6bi1IIS5wX+VRN6mdzbqhtqPr7eY1K7Wwg66MpCmhrc45KoEJthR4NWyw9O7ODgLw==
|
|
31
31
|
editor.js:
|
|
32
|
-
md5(hex):
|
|
33
|
-
sha256(hex):
|
|
34
|
-
sha256(base64):
|
|
35
|
-
sha512(base64):
|
|
32
|
+
md5(hex): 1a8dd3e4874076fe26587df27f8eef87
|
|
33
|
+
sha256(hex): 7e327ac7a54a07560178c06c3e566ae7eb3c45d5719a73aca34972316345dfc5
|
|
34
|
+
sha256(base64): fjJ6x6VKB1YBeMBsPlZq5+s8RdVxmnOso0lyMWNF38U=
|
|
35
|
+
sha512(base64): ue6j2cRKLurntvIG0TN/CV7Lz2TSy4cPCo8xc/lnPotgmt1PM4H1Ur0vpM7lEW7XpsZm46tJUyignroiEDy4PQ==
|
|
36
36
|
nako_gen_async.js:
|
|
37
37
|
md5(hex): 42d5fed01039474ff197d449c27c84ad
|
|
38
38
|
sha256(hex): d78d516b32b551c4a51ceef529568760783c84f6c5d90029fa9b38922d5b4430
|
|
@@ -59,10 +59,10 @@ plugin_keigo.js:
|
|
|
59
59
|
sha256(base64): 1IZs3kTk2nHl90N3Fyq1uFr8EpWmDAgfbXwkUl9APg0=
|
|
60
60
|
sha512(base64): u067+CeBvMb6+oINFY9Wz77GBk4NSxS2+k35GJ3RsFFmphJliwzwmV2ceID0gZ4mbjJ0xJHQX9WIypiyI6yfdA==
|
|
61
61
|
plugin_markup.js:
|
|
62
|
-
md5(hex):
|
|
63
|
-
sha256(hex):
|
|
64
|
-
sha256(base64):
|
|
65
|
-
sha512(base64):
|
|
62
|
+
md5(hex): 35b71b3476bf6b3e7ec82b38df150c78
|
|
63
|
+
sha256(hex): cc5f27da583182386d64cb34df3e42d546aafa396cc35ea1fa6a76b43a4c4dad
|
|
64
|
+
sha256(base64): zF8n2lgxgjhtZMs03z5C1Uaq+jlsw16h+mp2tDpMTa0=
|
|
65
|
+
sha512(base64): kBdKRYd7XKFwXkLNDWm7v8qayyXl+f/BVzxe+S0VkZxwZfwOlo5Ds0CSkc9IED9THEMkQOGBv18AXLcigpr5Cw==
|
|
66
66
|
plugin_three.js:
|
|
67
67
|
md5(hex): 5fa1fba6c48576ba6046e9302b3bcf89
|
|
68
68
|
sha256(hex): e2b2c54d9674837d51cc91d032e3aa9f2a1cc8fbc11b6be503649a1cccfe08cb
|
|
@@ -144,22 +144,22 @@ wnako3webworker.js:
|
|
|
144
144
|
sha256(base64): zkHQ1vYOjoH4nffi+OulPeq/tql28XhdNuKpcaBCOKk=
|
|
145
145
|
sha512(base64): cY0Mzrpoz/uEyY1n8MeJeWdDmm9vqI7dh28wEqJGtVRfYOJvDHiYDzzlfGndOWmzZmHUK6ZAE7YaUJ7zZxiZLw==
|
|
146
146
|
version.js:
|
|
147
|
-
md5(hex):
|
|
148
|
-
sha256(hex):
|
|
149
|
-
sha256(base64):
|
|
150
|
-
sha512(base64):
|
|
147
|
+
md5(hex): 829792071c675c496dfbd9a1b4789806
|
|
148
|
+
sha256(hex): ee04e83ef7c19f4a94f2bf53417e2e1131ab001dd767d984b1b0a0e7429b3fa9
|
|
149
|
+
sha256(base64): 7gToPvfBn0qU8r9TQX4uETGrAB3XZ9mEsbCg50KbP6k=
|
|
150
|
+
sha512(base64): u9FFKDXF26XCOVfT9Mh80T/aXrFQctrNIeRYxRqv6C0JIQ8lLm/Gd7PkvFmV2/WV224G9iBAJJr3t8+cdzNS5A==
|
|
151
151
|
version_main.js:
|
|
152
|
-
md5(hex):
|
|
153
|
-
sha256(hex):
|
|
154
|
-
sha256(base64):
|
|
155
|
-
sha512(base64):
|
|
152
|
+
md5(hex): 829792071c675c496dfbd9a1b4789806
|
|
153
|
+
sha256(hex): ee04e83ef7c19f4a94f2bf53417e2e1131ab001dd767d984b1b0a0e7429b3fa9
|
|
154
|
+
sha256(base64): 7gToPvfBn0qU8r9TQX4uETGrAB3XZ9mEsbCg50KbP6k=
|
|
155
|
+
sha512(base64): u9FFKDXF26XCOVfT9Mh80T/aXrFQctrNIeRYxRqv6C0JIQ8lLm/Gd7PkvFmV2/WV224G9iBAJJr3t8+cdzNS5A==
|
|
156
156
|
wnako3.js:
|
|
157
|
-
md5(hex):
|
|
158
|
-
sha256(hex):
|
|
159
|
-
sha256(base64):
|
|
160
|
-
sha512(base64):
|
|
157
|
+
md5(hex): 50f7a896ca27b00945f556861dd61dd1
|
|
158
|
+
sha256(hex): 28ba1d75eb5e5678a55444d581d0dfa489c8c926f0cd56f8d85dbf8771889fe1
|
|
159
|
+
sha256(base64): KLoddeteVnilVETVgdDfpInIySbwzVb42F2/h3GIn+E=
|
|
160
|
+
sha512(base64): V2TnS8xRh7eqbHoLzi6mP3MYwY48y7AUd2Ka+sv89BuWkr1nk1LF4vCEnQhYcQ32qclQlfRSAyYrmB0a9Nvz7g==
|
|
161
161
|
wnako3webworker.js:
|
|
162
|
-
md5(hex):
|
|
163
|
-
sha256(hex):
|
|
164
|
-
sha256(base64):
|
|
165
|
-
sha512(base64):
|
|
162
|
+
md5(hex): ba03e9c7ff7c56d0535bb5627466937e
|
|
163
|
+
sha256(hex): fda46285e6457006b547147032863266a53fa74fed4c1495cda9bdbfbc898f30
|
|
164
|
+
sha256(base64): /aRiheZFcAa1RxRwMoYyZqU/p0/tTBSVzam9v7yJjzA=
|
|
165
|
+
sha512(base64): Hrhj1ySMaif/dpSxgw81MFETy5CiTsPQDgVUodAKWAdulumewUTBcP1yvkHzVwAho9fWWEqHrv1M0YY7IWpc2Q==
|
package/release/_script-tags.txt
CHANGED
|
@@ -1,33 +1,33 @@
|
|
|
1
|
-
<script defer src="https://nadesi.com/v3/cdn.php?v=3.6.
|
|
2
|
-
<script defer src="https://nadesi.com/v3/cdn.php?v=3.6.
|
|
3
|
-
<script defer src="https://nadesi.com/v3/cdn.php?v=3.6.
|
|
4
|
-
<script defer src="https://nadesi.com/v3/cdn.php?v=3.6.
|
|
5
|
-
<script defer src="https://nadesi.com/v3/cdn.php?v=3.6.
|
|
6
|
-
<script defer src="https://nadesi.com/v3/cdn.php?v=3.6.
|
|
7
|
-
<script defer src="https://nadesi.com/v3/cdn.php?v=3.6.
|
|
8
|
-
<script defer src="https://nadesi.com/v3/cdn.php?v=3.6.
|
|
9
|
-
<script defer src="https://nadesi.com/v3/cdn.php?v=3.6.
|
|
10
|
-
<script defer src="https://nadesi.com/v3/cdn.php?v=3.6.
|
|
11
|
-
<script defer src="https://nadesi.com/v3/cdn.php?v=3.6.
|
|
12
|
-
<script defer src="https://nadesi.com/v3/cdn.php?v=3.6.
|
|
13
|
-
<script defer src="https://nadesi.com/v3/cdn.php?v=3.6.
|
|
14
|
-
<script defer src="https://nadesi.com/v3/cdn.php?v=3.6.
|
|
15
|
-
<script defer src="https://nadesi.com/v3/cdn.php?v=3.6.
|
|
16
|
-
<script defer src="https://nadesi.com/v3/cdn.php?v=3.6.
|
|
17
|
-
<script defer src="https://nadesi.com/v3/cdn.php?v=3.6.
|
|
18
|
-
<script defer src="https://nadesi.com/v3/cdn.php?v=3.6.
|
|
19
|
-
<script defer src="https://nadesi.com/v3/cdn.php?v=3.6.
|
|
20
|
-
<script defer src="https://nadesi.com/v3/cdn.php?v=3.6.
|
|
21
|
-
<script defer src="https://nadesi.com/v3/cdn.php?v=3.6.
|
|
22
|
-
<script defer src="https://nadesi.com/v3/cdn.php?v=3.6.
|
|
23
|
-
<script defer src="https://nadesi.com/v3/cdn.php?v=3.6.
|
|
24
|
-
<script defer src="https://nadesi.com/v3/cdn.php?v=3.6.
|
|
25
|
-
<script defer src="https://nadesi.com/v3/cdn.php?v=3.6.
|
|
26
|
-
<script defer src="https://nadesi.com/v3/cdn.php?v=3.6.
|
|
27
|
-
<script defer src="https://nadesi.com/v3/cdn.php?v=3.6.
|
|
28
|
-
<script defer src="https://nadesi.com/v3/cdn.php?v=3.6.
|
|
29
|
-
<script defer src="https://nadesi.com/v3/cdn.php?v=3.6.
|
|
30
|
-
<script defer src="https://nadesi.com/v3/cdn.php?v=3.6.
|
|
31
|
-
<script defer src="https://nadesi.com/v3/cdn.php?v=3.6.
|
|
32
|
-
<script defer src="https://nadesi.com/v3/cdn.php?v=3.6.
|
|
33
|
-
<script defer src="https://nadesi.com/v3/cdn.php?v=3.6.
|
|
1
|
+
<script defer src="https://nadesi.com/v3/cdn.php?v=3.6.28&f=release/command.json.js" integrity="sha512-XNQUZwg/0pRQ1xnW5HlgFaeFOyw3xk41ocIbgPEEmuGOaSLSA3P3XLONN3S4Ac9dn5bQ0OquF64SnO5LSnhf3A==" crossorigin="anonymous"></script>
|
|
2
|
+
<script defer src="https://nadesi.com/v3/cdn.php?v=3.6.28&f=release/core_src_nako_josi_list_mjs.js" integrity="sha512-0+LAeEfPy2Lrl+DeJMjbBIUda9Y5ttpLGy3/FW8rjSW8bN3udrALJa5V/bhjxU7mYouumV/QGN2wt3oxMCKy9g==" crossorigin="anonymous"></script>
|
|
3
|
+
<script defer src="https://nadesi.com/v3/cdn.php?v=3.6.28&f=release/core_src_nako_reserved_words_mjs.js" integrity="sha512-UzZigh2tIhgBO3+Sp1wnqKMvAGfhqSRdH2+ffmRy4+8CVNEeepddaDV0oKJ+vyvi28zQLmXeMsjRu+Frj3YlTg==" crossorigin="anonymous"></script>
|
|
4
|
+
<script defer src="https://nadesi.com/v3/cdn.php?v=3.6.28&f=release/edit_main.js" integrity="sha512-ue6j2cRKLurntvIG0TN/CV7Lz2TSy4cPCo8xc/lnPotgmt1PM4H1Ur0vpM7lEW7XpsZm46tJUyignroiEDy4PQ==" crossorigin="anonymous"></script>
|
|
5
|
+
<script defer src="https://nadesi.com/v3/cdn.php?v=3.6.28&f=release/edit_main.js" integrity="sha512-VluJJhYbxG+I5sofn1bKqOuIqMXdCyUUM9dnSBEVAkUXUy/ENHfG6hQFTZULcHy9iNfqPHXTfWuCgyMzQ9Hxrg==" crossorigin="anonymous"></script>
|
|
6
|
+
<script defer src="https://nadesi.com/v3/cdn.php?v=3.6.28&f=release/version_main.js" integrity="sha512-KMEb25tO1BMsNxzECPwLM6bi1IIS5wX+VRN6mdzbqhtqPr7eY1K7Wwg66MpCmhrc45KoEJthR4NWyw9O7ODgLw==" crossorigin="anonymous"></script>
|
|
7
|
+
<script defer src="https://nadesi.com/v3/cdn.php?v=3.6.28&f=release/editor.js" integrity="sha512-ue6j2cRKLurntvIG0TN/CV7Lz2TSy4cPCo8xc/lnPotgmt1PM4H1Ur0vpM7lEW7XpsZm46tJUyignroiEDy4PQ==" crossorigin="anonymous"></script>
|
|
8
|
+
<script defer src="https://nadesi.com/v3/cdn.php?v=3.6.28&f=release/nako_gen_async.js" integrity="sha512-/73lycspxJ921s+NmqaOKF58X9rCsgEZrZT4O4sW1aCe5CSXtQevIasAoGgIoL3a5RmlaghbaIVASwAgmoE3+g==" crossorigin="anonymous"></script>
|
|
9
|
+
<script defer src="https://nadesi.com/v3/cdn.php?v=3.6.28&f=release/plugin_caniuse.js" integrity="sha512-V6nOBHnhxPChu+S/LfB7elCeBk985ukLmBmkCyPk4ai5VfoJZuOIttg72PbZSxWfP5eQTrlLNajsorfwNw/vcA==" crossorigin="anonymous"></script>
|
|
10
|
+
<script defer src="https://nadesi.com/v3/cdn.php?v=3.6.28&f=release/plugin_datetime.js" integrity="sha512-ofb5jVaHjjTRoCAmHnbewc2fS8vr1oEkX/B3WoOCjYpDnZ3nnl3EDz6fdAS8CFFzGvuekCk2RFN5BuM9kX6FAg==" crossorigin="anonymous"></script>
|
|
11
|
+
<script defer src="https://nadesi.com/v3/cdn.php?v=3.6.28&f=release/plugin_kansuji.js" integrity="sha512-N+S8Th1yCiQy3q5jh0TFvlTOtrWNE82a4UJZ9O3ml3BGBYA141bpWlJR5c34dObTe1prbLJZ7v5WvV0vnDnr9A==" crossorigin="anonymous"></script>
|
|
12
|
+
<script defer src="https://nadesi.com/v3/cdn.php?v=3.6.28&f=release/plugin_keigo.js" integrity="sha512-u067+CeBvMb6+oINFY9Wz77GBk4NSxS2+k35GJ3RsFFmphJliwzwmV2ceID0gZ4mbjJ0xJHQX9WIypiyI6yfdA==" crossorigin="anonymous"></script>
|
|
13
|
+
<script defer src="https://nadesi.com/v3/cdn.php?v=3.6.28&f=release/plugin_markup.js" integrity="sha512-kBdKRYd7XKFwXkLNDWm7v8qayyXl+f/BVzxe+S0VkZxwZfwOlo5Ds0CSkc9IED9THEMkQOGBv18AXLcigpr5Cw==" crossorigin="anonymous"></script>
|
|
14
|
+
<script defer src="https://nadesi.com/v3/cdn.php?v=3.6.28&f=release/plugin_three.js" integrity="sha512-4loRkhlxZ9A9v5t3sk5VECW7T33axIVbBQgwkNdgcjk03yRqAvxut5OS4n3BBS4jnWWHOE3i0vj9qxOOp4uV3Q==" crossorigin="anonymous"></script>
|
|
15
|
+
<script defer src="https://nadesi.com/v3/cdn.php?v=3.6.28&f=release/plugin_toml.js" integrity="sha512-Z4JmOCY66VuyoD8m4dCzKttEbCTEUfqyuqlmcOhs69m/88skKcPYWXi+4W+Td5LdI3xqezn4BkN32F9ZkPzUpQ==" crossorigin="anonymous"></script>
|
|
16
|
+
<script defer src="https://nadesi.com/v3/cdn.php?v=3.6.28&f=release/plugin_turtle.js" integrity="sha512-LEewcTTM8JrZxmsVnP1ONF916UDoC1tQaYlqYNhuUnB4t1jfchtZic24rFNtNIaO6AcFsjxukV9Uj3WMefoU3Q==" crossorigin="anonymous"></script>
|
|
17
|
+
<script defer src="https://nadesi.com/v3/cdn.php?v=3.6.28&f=release/plugin_webworker.js" integrity="sha512-6UHX2dgMPRY4BuIxLXaERKaA8Wg5eK2pWy+OysU0/+gt2E15M7K5Vr8+4CQt6hylWnmzmJQJfgObIr+yjW5kPw==" crossorigin="anonymous"></script>
|
|
18
|
+
<script defer src="https://nadesi.com/v3/cdn.php?v=3.6.28&f=release/plugin_weykturtle3d.js" integrity="sha512-ONFdombPCdgdnXs7VMUAHpe8IBvTuLzSgzmERf1jEhHo4l06wDpkpRRCk3/9a1hiXRHQ+le2LZBT7XH4VA27sQ==" crossorigin="anonymous"></script>
|
|
19
|
+
<script defer src="https://nadesi.com/v3/cdn.php?v=3.6.28&f=release/plugin_caniuse.js" integrity="sha512-V6nOBHnhxPChu+S/LfB7elCeBk985ukLmBmkCyPk4ai5VfoJZuOIttg72PbZSxWfP5eQTrlLNajsorfwNw/vcA==" crossorigin="anonymous"></script>
|
|
20
|
+
<script defer src="https://nadesi.com/v3/cdn.php?v=3.6.28&f=release/plugin_datetime.js" integrity="sha512-ofb5jVaHjjTRoCAmHnbewc2fS8vr1oEkX/B3WoOCjYpDnZ3nnl3EDz6fdAS8CFFzGvuekCk2RFN5BuM9kX6FAg==" crossorigin="anonymous"></script>
|
|
21
|
+
<script defer src="https://nadesi.com/v3/cdn.php?v=3.6.28&f=release/plugin_kansuji.js" integrity="sha512-N+S8Th1yCiQy3q5jh0TFvlTOtrWNE82a4UJZ9O3ml3BGBYA141bpWlJR5c34dObTe1prbLJZ7v5WvV0vnDnr9A==" crossorigin="anonymous"></script>
|
|
22
|
+
<script defer src="https://nadesi.com/v3/cdn.php?v=3.6.28&f=release/plugin_keigo.js" integrity="sha512-u067+CeBvMb6+oINFY9Wz77GBk4NSxS2+k35GJ3RsFFmphJliwzwmV2ceID0gZ4mbjJ0xJHQX9WIypiyI6yfdA==" crossorigin="anonymous"></script>
|
|
23
|
+
<script defer src="https://nadesi.com/v3/cdn.php?v=3.6.28&f=release/plugin_markup.js" integrity="sha512-mEcV3CYWM6+zmuxgojP/9wbQNtkTPuPzFHo1KTG2TPaDbSfdPZCazFcNmdjJ95o7+VFfxs2Id7yB02bqSeBxNg==" crossorigin="anonymous"></script>
|
|
24
|
+
<script defer src="https://nadesi.com/v3/cdn.php?v=3.6.28&f=release/plugin_three.js" integrity="sha512-4loRkhlxZ9A9v5t3sk5VECW7T33axIVbBQgwkNdgcjk03yRqAvxut5OS4n3BBS4jnWWHOE3i0vj9qxOOp4uV3Q==" crossorigin="anonymous"></script>
|
|
25
|
+
<script defer src="https://nadesi.com/v3/cdn.php?v=3.6.28&f=release/plugin_turtle.js" integrity="sha512-ce8etr+HoC+UjUyXSgxJzy3+pOYhsBdt9jDzhks2H/eEPQ1gIz7M8hoeyP0223zLLZHBBzlHiL/a6mmJdoKQ+w==" crossorigin="anonymous"></script>
|
|
26
|
+
<script defer src="https://nadesi.com/v3/cdn.php?v=3.6.28&f=release/plugin_webworker.js" integrity="sha512-6UHX2dgMPRY4BuIxLXaERKaA8Wg5eK2pWy+OysU0/+gt2E15M7K5Vr8+4CQt6hylWnmzmJQJfgObIr+yjW5kPw==" crossorigin="anonymous"></script>
|
|
27
|
+
<script defer src="https://nadesi.com/v3/cdn.php?v=3.6.28&f=release/plugin_weykturtle3d.js" integrity="sha512-ONFdombPCdgdnXs7VMUAHpe8IBvTuLzSgzmERf1jEhHo4l06wDpkpRRCk3/9a1hiXRHQ+le2LZBT7XH4VA27sQ==" crossorigin="anonymous"></script>
|
|
28
|
+
<script defer src="https://nadesi.com/v3/cdn.php?v=3.6.28&f=release/wnako3.js" integrity="sha512-ZBC5fnWXr1/lcjLwXqmTj1OXfBewmzxlPqnz6ZnDhtVUY9invxAimbYuxMrgb3ZiFnopNLH7xPbgWlFJNB/jmQ==" crossorigin="anonymous"></script>
|
|
29
|
+
<script defer src="https://nadesi.com/v3/cdn.php?v=3.6.28&f=release/wnako3webworker.js" integrity="sha512-cY0Mzrpoz/uEyY1n8MeJeWdDmm9vqI7dh28wEqJGtVRfYOJvDHiYDzzlfGndOWmzZmHUK6ZAE7YaUJ7zZxiZLw==" crossorigin="anonymous"></script>
|
|
30
|
+
<script defer src="https://nadesi.com/v3/cdn.php?v=3.6.28&f=release/version.js" integrity="sha512-u9FFKDXF26XCOVfT9Mh80T/aXrFQctrNIeRYxRqv6C0JIQ8lLm/Gd7PkvFmV2/WV224G9iBAJJr3t8+cdzNS5A==" crossorigin="anonymous"></script>
|
|
31
|
+
<script defer src="https://nadesi.com/v3/cdn.php?v=3.6.28&f=release/version_main.js" integrity="sha512-u9FFKDXF26XCOVfT9Mh80T/aXrFQctrNIeRYxRqv6C0JIQ8lLm/Gd7PkvFmV2/WV224G9iBAJJr3t8+cdzNS5A==" crossorigin="anonymous"></script>
|
|
32
|
+
<script defer src="https://nadesi.com/v3/cdn.php?v=3.6.28&f=release/wnako3.js" integrity="sha512-V2TnS8xRh7eqbHoLzi6mP3MYwY48y7AUd2Ka+sv89BuWkr1nk1LF4vCEnQhYcQ32qclQlfRSAyYrmB0a9Nvz7g==" crossorigin="anonymous"></script>
|
|
33
|
+
<script defer src="https://nadesi.com/v3/cdn.php?v=3.6.28&f=release/wnako3webworker.js" integrity="sha512-Hrhj1ySMaif/dpSxgw81MFETy5CiTsPQDgVUodAKWAdulumewUTBcP1yvkHzVwAho9fWWEqHrv1M0YY7IWpc2Q==" crossorigin="anonymous"></script>
|