hiepdh-playable-toolkit 1.0.0 → 2.0.1

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.
Files changed (41) hide show
  1. package/3x/build-inline.js +85 -0
  2. package/3x/build-templates/web-mobile/index.ejs +47 -0
  3. package/3x/extensions/super-html/README-CN.md +16 -0
  4. package/3x/extensions/super-html/dist/2x/main.js +64 -0
  5. package/3x/extensions/super-html/dist/2x/panel/index.js +66 -0
  6. package/3x/extensions/super-html/dist/3x/builder.js +8 -0
  7. package/3x/extensions/super-html/dist/3x/hooks.js +24 -0
  8. package/3x/extensions/super-html/dist/3x/main.js +27 -0
  9. package/3x/extensions/super-html/dist/3x/panel/index.js +63 -0
  10. package/3x/extensions/super-html/dist/core/build.js +58 -0
  11. package/3x/extensions/super-html/dist/core/common/cache.js +124 -0
  12. package/3x/extensions/super-html/dist/core/common/log.js +46 -0
  13. package/3x/extensions/super-html/dist/core/common/utils.js +107 -0
  14. package/3x/extensions/super-html/dist/core/config.js +71 -0
  15. package/3x/extensions/super-html/dist/core/task.js +356 -0
  16. package/3x/extensions/super-html/dist/custom_script/23x/custom-23x.js +290 -0
  17. package/3x/extensions/super-html/dist/custom_script/23x/index-23x.js +86 -0
  18. package/3x/extensions/super-html/dist/custom_script/24x/custom-24x.js +298 -0
  19. package/3x/extensions/super-html/dist/custom_script/24x/index-24x.js +87 -0
  20. package/3x/extensions/super-html/dist/custom_script/34x/custom-34x.js +244 -0
  21. package/3x/extensions/super-html/dist/custom_script/34x/index-34x.js +59 -0
  22. package/3x/extensions/super-html/dist/custom_script/javascript-obfuscator.js +9719 -0
  23. package/3x/extensions/super-html/dist/custom_script/pako.js +1462 -0
  24. package/3x/extensions/super-html/dist/test/_test.js +27 -0
  25. package/3x/extensions/super-html/i18n/en.js +5 -0
  26. package/3x/extensions/super-html/i18n/zh.js +5 -0
  27. package/3x/extensions/super-html/package-lock.json +744 -0
  28. package/3x/extensions/super-html/package.json +59 -0
  29. package/3x/extensions/super-html/static/index.html +44 -0
  30. package/3x/extensions/super-html/tsconfig.json +14 -0
  31. package/3x/plugins/exitapi.js +7 -0
  32. package/3x/plugins/facebook_api.js +31 -0
  33. package/3x/plugins/fixmraid.js +17 -0
  34. package/3x/plugins/ironsource_api.js +58 -0
  35. package/3x/plugins/mindworkapi.js +6 -0
  36. package/3x/plugins/playable-sdk.js +5 -0
  37. package/README.md +3 -3
  38. package/package.json +22 -13
  39. package/setup.js +79 -50
  40. /package/{injectCustomScript.js → 3x/injectCustomScript.js} +0 -0
  41. /package/{patch-template-unityReject.js → 3x/patch-template-unityReject.js} +0 -0
@@ -0,0 +1,85 @@
1
+ const path = require("path");
2
+ const fs = require("fs");
3
+ const AdmZip = require("adm-zip");
4
+
5
+ const projectRoot = process.cwd();
6
+ const toolkitRoot = __dirname;
7
+
8
+ const buildPathCocos = path.join(projectRoot, "build");
9
+ const buildPathTarget = path.join(projectRoot, "build-inline");
10
+ const pluginFolder = path.join(toolkitRoot, "plugins");
11
+
12
+ const ALL_NETWORKS = ["google", "ironsource", "facebook", "unity", "applovin", "mindwork", "tiktok"];
13
+ const ZIP_LIST = ["google", "tiktok", "mindwork"];
14
+
15
+ (async () => {
16
+ const args = process.argv.slice(2);
17
+ const inputArg = args[0] || "google";
18
+
19
+ const pkg = JSON.parse(fs.readFileSync(path.join(projectRoot, 'package.json'), 'utf8'));
20
+ const GAME_NAME = pkg.name || "playable_game";
21
+ const config = pkg.playableConfig || { android_url: "", ios_url: "" };
22
+
23
+ if (inputArg === "all") {
24
+ for (const net of ALL_NETWORKS) await processNetwork(net, GAME_NAME, config);
25
+ } else {
26
+ await processNetwork(inputArg, GAME_NAME, config);
27
+ }
28
+ })();
29
+
30
+ async function processNetwork(adsNetwork, gameName, config) {
31
+ console.log(`\n [3x Post-Process] Đang chuẩn bị bản: ${adsNetwork.toUpperCase()}`);
32
+
33
+ const sourceHtmlPath = path.join(buildPathCocos, "index.html");
34
+ if (!fs.existsSync(sourceHtmlPath)) {
35
+ console.error(" Không tìm thấy file index.html do Extension tạo ra!");
36
+ return;
37
+ }
38
+
39
+ let htmlContent = fs.readFileSync(sourceHtmlPath, "utf8");
40
+
41
+ const configScript = `<script>window.__PLAYABLE_CONFIG__ = ${JSON.stringify(config)};</script>`;
42
+ htmlContent = htmlContent.replace("<head>", `<head>${configScript}`);
43
+
44
+ htmlContent = injectNetworkAPI(htmlContent, adsNetwork);
45
+
46
+ // 3. Chèn logic Smart Start (MRAID)
47
+ const customScript = fs.readFileSync(path.join(toolkitRoot, "injectCustomScript.js"), "utf8");
48
+ htmlContent = htmlContent.replace("</body>", `<script>${customScript};injectCustomScript();</script></body>`);
49
+
50
+ // 4. Lưu kết quả
51
+ if (!fs.existsSync(buildPathTarget)) fs.mkdirSync(buildPathTarget, { recursive: true });
52
+
53
+ const fileNameBase = `${gameName}_${adsNetwork}`;
54
+ if (ZIP_LIST.includes(adsNetwork)) {
55
+ const zip = new AdmZip();
56
+ zip.addFile("index.html", Buffer.from(htmlContent, "utf8"));
57
+ zip.writeZip(path.join(buildPathTarget, `${fileNameBase}.zip`));
58
+ console.log(`✅ Đã tạo ZIP: ${fileNameBase}.zip`);
59
+ } else {
60
+ fs.writeFileSync(path.join(buildPathTarget, `${fileNameBase}.html`), htmlContent);
61
+ console.log(`✅ Đã tạo HTML: ${fileNameBase}.html`);
62
+ }
63
+ }
64
+
65
+ function injectNetworkAPI(html, network) {
66
+ const apiFiles = {
67
+ google: "exitapi.js",
68
+ ironsource: "ironsource_api.js",
69
+ facebook: "facebook_api.js",
70
+ tiktok: "playable-sdk.js",
71
+ unity: "fixmraid.js",
72
+ applovin: "fixmraid.js",
73
+ mindwork: "mindworkapi.js"
74
+ };
75
+
76
+ const apiPath = path.join(pluginFolder, apiFiles[network]);
77
+ if (fs.existsSync(apiPath)) {
78
+ const content = fs.readFileSync(apiPath, "utf8");
79
+ // TikTok yêu cầu script ở body, các sàn khác thường ở head
80
+ const placement = network === "tiktok" ? "</body>" : "</head>";
81
+ const scriptTag = `<script>${content}</script>${placement}`;
82
+ return html.replace(placement, scriptTag);
83
+ }
84
+ return html;
85
+ }
@@ -0,0 +1,47 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <meta charset="utf-8">
5
+
6
+ <title>Cocos Creator | <%= projectName %></title>
7
+
8
+ <!--http://www.html5rocks.com/en/mobile/mobifying/-->
9
+ <meta name="viewport"
10
+ content="width=device-width,user-scalable=no,initial-scale=1,minimum-scale=1,maximum-scale=1,minimal-ui=true"/>
11
+
12
+ <!--https://developer.apple.com/library/safari/documentation/AppleApplications/Reference/SafariHTMLRef/Articles/MetaTags.html-->
13
+ <meta name="apple-mobile-web-app-capable" content="yes">
14
+ <meta name="apple-mobile-web-app-status-bar-style" content="black-translucent">
15
+ <meta name="format-detection" content="telephone=no">
16
+
17
+ <!-- force webkit on 360 -->
18
+ <meta name="renderer" content="webkit"/>
19
+ <meta name="force-rendering" content="webkit"/>
20
+ <!-- force edge on IE -->
21
+ <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"/>
22
+ <meta name="msapplication-tap-highlight" content="no">
23
+
24
+ <!-- force full screen on some browser -->
25
+ <meta name="full-screen" content="yes"/>
26
+ <meta name="x5-fullscreen" content="true"/>
27
+ <meta name="360-fullscreen" content="true"/>
28
+
29
+ <!--fix fireball/issues/3568 -->
30
+ <!--<meta name="browsermode" content="application">-->
31
+ <meta name="x5-page-mode" content="app">
32
+
33
+ <!--<link rel="apple-touch-icon" href=".png" />-->
34
+ <!--<link rel="apple-touch-icon-precomposed" href=".png" />-->
35
+
36
+ <link rel="stylesheet" type="text/css" href="<%= cssUrl %>"/>
37
+
38
+ </head>
39
+ <body>
40
+ <div id="GameDiv">
41
+ <div id="Cocos3dGameContainer">
42
+ <canvas id="GameCanvas" oncontextmenu="event.preventDefault()" tabindex="0"></canvas>
43
+ </div>
44
+ </div>
45
+ <%- include(cocosTemplate, {}) %>
46
+ </body>
47
+ </html>
@@ -0,0 +1,16 @@
1
+ # 项目简介
2
+
3
+ 一份空白的扩展。
4
+
5
+ ## 开发环境
6
+
7
+ Node.js
8
+
9
+ ## 安装
10
+
11
+ ```bash
12
+ # 安装依赖模块
13
+ npm install
14
+ # 构建
15
+ npm run build
16
+ ```
@@ -0,0 +1,64 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
5
+ }) : (function(o, m, k, k2) {
6
+ if (k2 === undefined) k2 = k;
7
+ o[k2] = m[k];
8
+ }));
9
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
10
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
11
+ }) : function(o, v) {
12
+ o["default"] = v;
13
+ });
14
+ var __importStar = (this && this.__importStar) || function (mod) {
15
+ if (mod && mod.__esModule) return mod;
16
+ var result = {};
17
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
18
+ __setModuleDefault(result, mod);
19
+ return result;
20
+ };
21
+ var __importDefault = (this && this.__importDefault) || function (mod) {
22
+ return (mod && mod.__esModule) ? mod : { "default": mod };
23
+ };
24
+ Object.defineProperty(exports, "__esModule", { value: true });
25
+ const path = __importStar(require("path"));
26
+ const build_1 = __importDefault(require("../core/build"));
27
+ class main {
28
+ constructor() {
29
+ this.messages = {
30
+ 'open-panel'() {
31
+ Editor.Panel.open('super-html.setting');
32
+ },
33
+ };
34
+ }
35
+ //当package被正确加载的时候执行
36
+ load() {
37
+ Editor.Builder.on('build-start', this.funOnBuildStart);
38
+ Editor.Builder.on('build-finished', this.funOnBuildFinished);
39
+ }
40
+ //当package被正确卸载的时候执行
41
+ unload() {
42
+ Editor.Builder.removeListener('build-start', this.funOnBuildStart);
43
+ Editor.Builder.removeListener('build-finished', this.funOnBuildFinished);
44
+ }
45
+ funOnBuildStart(options, callback) {
46
+ callback();
47
+ }
48
+ funOnBuildFinished(options, callback) {
49
+ if (options.actualPlatform !== "web-mobile" && options.platform !== "web-desktop") {
50
+ callback();
51
+ return;
52
+ }
53
+ try {
54
+ const indexPath = path.join(options.dest, "../");
55
+ new build_1.default(Editor.App.version, options.dest, indexPath);
56
+ Editor.log("super-html success: ," + indexPath);
57
+ }
58
+ catch (error) {
59
+ Editor.error(error);
60
+ }
61
+ callback();
62
+ }
63
+ }
64
+ module.exports = new main();
@@ -0,0 +1,66 @@
1
+ "use strict";
2
+ function trans(path) {
3
+ return Editor.url("packages://super-html/" + path);
4
+ }
5
+ var fs = require("fs");
6
+ var path = require("path");
7
+ const electron = require("electron");
8
+ const build = require(trans("dist/core/build")).default;
9
+ const cache = require(trans("dist/core/common/cache")).default;
10
+ //@ts-ignore
11
+ window._tool = {
12
+ cache: cache,
13
+ build: build,
14
+ shell: electron.shell,
15
+ fs: fs,
16
+ path: path,
17
+ };
18
+ Editor.Panel.extend({
19
+ style: `#GameDiv, #Cocos3dGameContainer, #GameCanvas {
20
+ width: 100%;
21
+ height: 100%;
22
+ }`,
23
+ template: `
24
+ <div id="GameDiv" >
25
+ <div id="Cocos3dGameContainer">
26
+ <canvas id="GameCanvas" oncontextmenu="event.preventDefault()" tabindex="0"></canvas>
27
+ </div>
28
+ </div>
29
+ `,
30
+ ready() {
31
+ //@ts-ignore
32
+ let dom = document.getElementById(Editor.argv.panelID).shadowRoot;
33
+ var GameCanvas = dom.getElementById("GameCanvas");
34
+ var GameDiv = dom.getElementById("GameDiv");
35
+ var Cocos3dGameContainer = dom.getElementById("Cocos3dGameContainer");
36
+ const getElementById = document.getElementById;
37
+ document.getElementById = function (str) {
38
+ if (str === "GameCanvas") {
39
+ return GameCanvas;
40
+ }
41
+ getElementById.call(this, str);
42
+ };
43
+ const querySelector = document.querySelector;
44
+ document.querySelector = function (str) {
45
+ if (str === "#GameCanvas") {
46
+ return GameCanvas;
47
+ }
48
+ else if (str === "#GameDiv") {
49
+ return GameDiv;
50
+ }
51
+ else if (str === "#Cocos3dGameContainer") {
52
+ return Cocos3dGameContainer;
53
+ }
54
+ querySelector.call(this, str);
55
+ };
56
+ let txt = fs.readFileSync(Editor.url("packages://super-html/static/index.html", "utf8"), "utf8");
57
+ let str_temp = `<script type="text/javascript">`;
58
+ var start = txt.indexOf(str_temp);
59
+ txt = txt.substring(start + str_temp.length);
60
+ txt = txt.replace(/<script type="text\/javascript">/g, "");
61
+ txt = txt.replace(/<\/script>/g, "");
62
+ txt = txt.replace(/<\/body>/g, "");
63
+ txt = txt.replace(/<\/html>/g, "");
64
+ eval.call(window, txt);
65
+ }
66
+ });
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.configs = void 0;
4
+ exports.configs = {
5
+ '*': {
6
+ hooks: './hooks'
7
+ },
8
+ };
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.onAfterBuild = void 0;
7
+ const path_1 = __importDefault(require("path"));
8
+ const cache_1 = __importDefault(require("../core/common/cache"));
9
+ const build_1 = __importDefault(require("../core/build"));
10
+ exports.onAfterBuild = async function (options, result) {
11
+ if (options.platform !== "web-mobile" && options.platform !== "web-desktop") {
12
+ return;
13
+ }
14
+ if (!cache_1.default.get().enabled) {
15
+ return;
16
+ }
17
+ try {
18
+ const indexPath = path_1.default.join(result.dest, "../");
19
+ new build_1.default(Editor.App.version, result.dest, indexPath);
20
+ }
21
+ catch (error) {
22
+ console.error(error);
23
+ }
24
+ };
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.unload = exports.load = exports.methods = void 0;
7
+ //@ts-ignore
8
+ const package_json_1 = __importDefault(require("../../package.json"));
9
+ /**
10
+ * @en
11
+ * @zh 为扩展的主进程的注册方法
12
+ */
13
+ exports.methods = {
14
+ open_panel() {
15
+ Editor.Panel.open(package_json_1.default.name);
16
+ },
17
+ };
18
+ /**
19
+ * @en Hooks triggered after extension loading is complete
20
+ * @zh 扩展加载完成后触发的钩子
21
+ */
22
+ exports.load = function () { };
23
+ /**
24
+ * @en Hooks triggered after extension uninstallation is complete
25
+ * @zh 扩展卸载完成后触发的钩子
26
+ */
27
+ exports.unload = function () { };
@@ -0,0 +1,63 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const fs_1 = __importDefault(require("fs"));
7
+ const path_1 = __importDefault(require("path"));
8
+ const cache_1 = __importDefault(require("../../core/common/cache"));
9
+ const build_1 = __importDefault(require("../../core/build"));
10
+ const electron_1 = require("electron");
11
+ //@ts-ignore
12
+ window._tool = {
13
+ cache: cache_1.default,
14
+ build: build_1.default,
15
+ shell: electron_1.shell,
16
+ fs: fs_1.default,
17
+ path: path_1.default,
18
+ };
19
+ exports.style = `#GameDiv, #Cocos3dGameContainer, #GameCanvas {
20
+ width: 100%;
21
+ height: 100%;
22
+ }`;
23
+ exports.template = ` <div id="GameDiv">
24
+ <div id="Cocos3dGameContainer">
25
+ <canvas id="GameCanvas" oncontextmenu="event.preventDefault()" tabindex="0"></canvas>
26
+ </div>
27
+ </div>`;
28
+ exports.ready = async function () {
29
+ //@ts-ignore
30
+ let dom = document.getElementById("dock").shadowRoot.childNodes[7].childNodes[0].childNodes[1].childNodes[0].shadowRoot;
31
+ var GameCanvas = dom.getElementById("GameCanvas");
32
+ var GameDiv = dom.getElementById("GameDiv");
33
+ var Cocos3dGameContainer = dom.getElementById("Cocos3dGameContainer");
34
+ const getElementById = document.getElementById;
35
+ document.getElementById = function (str) {
36
+ if (str === "GameCanvas") {
37
+ return GameCanvas;
38
+ }
39
+ getElementById.call(this, str);
40
+ };
41
+ const querySelector = document.querySelector;
42
+ document.querySelector = function (str) {
43
+ if (str === "#GameCanvas") {
44
+ return GameCanvas;
45
+ }
46
+ else if (str === "#GameDiv") {
47
+ return GameDiv;
48
+ }
49
+ else if (str === "#Cocos3dGameContainer") {
50
+ return Cocos3dGameContainer;
51
+ }
52
+ querySelector.call(this, str);
53
+ };
54
+ let txt = fs_1.default.readFileSync(path_1.default.join(__dirname, "../../../static", 'index.html'), "utf8");
55
+ let str_temp = `<script type="text/javascript">`;
56
+ var start = txt.indexOf(str_temp);
57
+ txt = txt.substring(start + str_temp.length);
58
+ txt = txt.replace(/<script type="text\/javascript">/g, "");
59
+ txt = txt.replace(/<\/script>/g, "");
60
+ txt = txt.replace(/<\/body>/g, "");
61
+ txt = txt.replace(/<\/html>/g, "");
62
+ eval.call(window, txt);
63
+ };
@@ -0,0 +1,58 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const config_1 = __importDefault(require("./config"));
7
+ const log_1 = __importDefault(require("./common/log"));
8
+ const task_1 = __importDefault(require("./task"));
9
+ const path_1 = __importDefault(require("path"));
10
+ const fs_1 = __importDefault(require("fs"));
11
+ const cache_1 = __importDefault(require("./common/cache"));
12
+ class build {
13
+ constructor(engine_version, path_input_dir, path_out_dir, cb) {
14
+ log_1.default.log("-- start --");
15
+ log_1.default.log("engine version " + engine_version);
16
+ let version = "";
17
+ if (engine_version.search(/3.[0-9].[0-9]/) == 0) {
18
+ if (engine_version.search(/3.[0-2]/) == 0) {
19
+ throw Error(`This engine version is not supported. Please contact the developer`);
20
+ }
21
+ version = "34x";
22
+ }
23
+ else if (engine_version.search(/2.4.[0-9]/) == 0) {
24
+ version = "24x";
25
+ }
26
+ else if (engine_version.search(/2.[0-9].[0-9]/) == 0) {
27
+ version = "23x";
28
+ }
29
+ else {
30
+ throw Error(`This engine version is not supported. Please contact the developer`);
31
+ }
32
+ //@ts-ignore
33
+ let l_custom_script = config_1.default.CUSTOM_SCRIPT["v" + version];
34
+ if (config_1.default.is_debug) {
35
+ config_1.default.is_min_js = false;
36
+ config_1.default.is_min_css = false;
37
+ }
38
+ if (!fs_1.default.existsSync(path_out_dir)) {
39
+ fs_1.default.mkdirSync(path_out_dir);
40
+ }
41
+ this.build(l_custom_script, path_input_dir, path_out_dir, cb);
42
+ }
43
+ async build(l_custom_script, path_input_dir, path_out_dir, cb) {
44
+ task_1.default.clear();
45
+ let _task = new task_1.default({
46
+ l_custom_script: l_custom_script,
47
+ path_input_dir: path_input_dir,
48
+ path_html: path_1.default.join(path_input_dir, "index.html"),
49
+ path_out_file: path_1.default.join(path_out_dir, "index.html"),
50
+ enable_obfuscator: cache_1.default.get().enable_obfuscator,
51
+ max_size: cache_1.default.get().max_size * 1024 * 1024,
52
+ });
53
+ await _task.build();
54
+ log_1.default.log("-- end --");
55
+ cb && cb();
56
+ }
57
+ }
58
+ exports.default = build;
@@ -0,0 +1,124 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
5
+ }) : (function(o, m, k, k2) {
6
+ if (k2 === undefined) k2 = k;
7
+ o[k2] = m[k];
8
+ }));
9
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
10
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
11
+ }) : function(o, v) {
12
+ o["default"] = v;
13
+ });
14
+ var __importStar = (this && this.__importStar) || function (mod) {
15
+ if (mod && mod.__esModule) return mod;
16
+ var result = {};
17
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
18
+ __setModuleDefault(result, mod);
19
+ return result;
20
+ };
21
+ var __importDefault = (this && this.__importDefault) || function (mod) {
22
+ return (mod && mod.__esModule) ? mod : { "default": mod };
23
+ };
24
+ Object.defineProperty(exports, "__esModule", { value: true });
25
+ const config_1 = __importDefault(require("../config"));
26
+ const fs = __importStar(require("fs"));
27
+ const path = __importStar(require("path"));
28
+ class dict_platform {
29
+ constructor() {
30
+ this.name = "";
31
+ //mb
32
+ this.size = 0;
33
+ this.html_path = "";
34
+ }
35
+ }
36
+ ;
37
+ class dict_data {
38
+ constructor() {
39
+ this.enabled = true;
40
+ this.max_size = config_1.default.max_size;
41
+ this.enable_obfuscator = config_1.default.obfuscator;
42
+ this.path = "";
43
+ //platforms: dict_platform[] = [];
44
+ }
45
+ }
46
+ function get_path() {
47
+ //@ts-ignore
48
+ var projectPath = Editor.Project.path || Editor.projectPath;
49
+ return path.join(projectPath, "settings", "super-html.json");
50
+ }
51
+ class Loose {
52
+ set(data) {
53
+ fs.writeFileSync(get_path(), JSON.stringify(data, null, 2));
54
+ }
55
+ get() {
56
+ var config = null;
57
+ if (fs.existsSync(get_path())) {
58
+ config = JSON.parse(fs.readFileSync(get_path(), 'utf8'));
59
+ }
60
+ if (!config) {
61
+ config = new dict_data();
62
+ }
63
+ update_data(config);
64
+ return config;
65
+ }
66
+ }
67
+ function update_data(data) {
68
+ data.path = data.path || "";
69
+ data.enable_obfuscator = data.enable_obfuscator || false;
70
+ data.max_size = data.max_size || config_1.default.max_size;
71
+ }
72
+ exports.default = new class {
73
+ constructor() {
74
+ try {
75
+ if (this.get_version().search(/2.[0-9].[0-9]/) == 0) {
76
+ const loose = new Loose();
77
+ this.get = loose.get;
78
+ this.set = loose.set;
79
+ }
80
+ }
81
+ catch (error) {
82
+ //console.log(error)
83
+ }
84
+ }
85
+ get() {
86
+ let data;
87
+ try {
88
+ let super_html_cache = localStorage.getItem("super_html_cache") || "";
89
+ data = JSON.parse(super_html_cache);
90
+ }
91
+ catch (error) {
92
+ data = new dict_data();
93
+ }
94
+ update_data(data);
95
+ return data;
96
+ }
97
+ set(data) {
98
+ data.max_size = Number(data.max_size);
99
+ if (data.max_size === NaN) {
100
+ data.max_size = config_1.default.max_size;
101
+ }
102
+ try {
103
+ localStorage.setItem("super_html_cache", JSON.stringify(data));
104
+ }
105
+ catch (error) {
106
+ }
107
+ }
108
+ get_version() {
109
+ //@ts-ignore
110
+ const projectPath = Editor.Project.path || Editor.projectPath;
111
+ let _path = path.join(projectPath, "project.json");
112
+ if (fs.existsSync(_path)) {
113
+ return JSON.parse(fs.readFileSync(_path, { encoding: "utf-8" })).version;
114
+ }
115
+ try {
116
+ //@ts-ignore
117
+ return Editor.App.version;
118
+ }
119
+ catch (error) {
120
+ //@ts-ignore
121
+ return Editor.remote.App.version;
122
+ }
123
+ }
124
+ };
@@ -0,0 +1,46 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const config_1 = __importDefault(require("../config"));
7
+ const s_prefix = config_1.default.package_name + " : ";
8
+ class default_1 {
9
+ static debug(...p) {
10
+ if (!config_1.default.is_debug) {
11
+ return;
12
+ }
13
+ this.log(...p);
14
+ }
15
+ static log(...p) {
16
+ //@ts-ignore
17
+ if (global["Editor"] && Editor.log) {
18
+ //@ts-ignore
19
+ Editor.log(s_prefix, ...p);
20
+ }
21
+ else {
22
+ console.log(s_prefix, ...p);
23
+ }
24
+ }
25
+ static warn(...p) {
26
+ //@ts-ignore
27
+ if (global["Editor"] && Editor.warn) {
28
+ //@ts-ignore
29
+ Editor.warn(s_prefix, ...p);
30
+ }
31
+ else {
32
+ console.warn(s_prefix, ...p);
33
+ }
34
+ }
35
+ static error(...p) {
36
+ //@ts-ignore
37
+ if (global["Editor"] && Editor.error) {
38
+ //@ts-ignore
39
+ Editor.error(s_prefix, ...p);
40
+ }
41
+ else {
42
+ console.error(s_prefix, ...p);
43
+ }
44
+ }
45
+ }
46
+ exports.default = default_1;