dcs-git-utils 1.0.0 → 1.0.8
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/.github/workflows/pr.yml +33 -33
- package/.github/workflows/release.yml +71 -64
- package/.vscode/launch.json +22 -22
- package/LICENSE +21 -21
- package/README.md +24 -15
- package/dist/compression.js +119 -109
- package/dist/compression.js.map +1 -1
- package/dist/config.js +149 -139
- package/dist/config.js.map +1 -1
- package/dist/fengari-wrapper.js +88 -78
- package/dist/fengari-wrapper.js.map +1 -1
- package/dist/files/file-picker.js +75 -76
- package/dist/files/file-picker.js.map +1 -1
- package/dist/files/miz-selector.js +23 -23
- package/dist/files/miz-selector.js.map +1 -1
- package/dist/lua +72 -72
- package/dist/main.js +51 -48
- package/dist/main.js.map +1 -1
- package/dist/sorting.js +153 -143
- package/dist/sorting.js.map +1 -1
- package/dist/watchers.js +92 -82
- package/dist/watchers.js.map +1 -1
- package/lua/sorter_lib.lua +72 -72
- package/package.json +61 -62
- package/src/compression.ts +87 -87
- package/src/config.ts +119 -119
- package/src/fengari-wrapper.ts +67 -67
- package/src/files/file-picker.ts +63 -63
- package/src/files/miz-selector.ts +9 -9
- package/src/main.ts +53 -49
- package/src/sorting.ts +127 -127
- package/src/watchers.ts +57 -57
- package/tests/sorting.spec.ts +25 -25
- package/tsconfig.json +100 -100
- package/vitest.config.ts +9 -9
package/dist/config.js
CHANGED
|
@@ -1,140 +1,150 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
-
}) : function(o, v) {
|
|
16
|
-
o["default"] = v;
|
|
17
|
-
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || function (
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
};
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
return
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
};
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
};
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
};
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
}
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
const
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
36
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
37
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
38
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
39
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
40
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
41
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
42
|
+
});
|
|
43
|
+
};
|
|
44
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
45
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
46
|
+
};
|
|
47
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
48
|
+
exports.initializeConfig = void 0;
|
|
49
|
+
exports.saveConfig = saveConfig;
|
|
50
|
+
exports.readConfig = readConfig;
|
|
51
|
+
const fs = __importStar(require("fs"));
|
|
52
|
+
const path = __importStar(require("path"));
|
|
53
|
+
const inquirer_1 = __importDefault(require("inquirer"));
|
|
54
|
+
const miz_selector_1 = require("./files/miz-selector");
|
|
55
|
+
// 2. Define Defaults (Used if file is missing or partial)
|
|
56
|
+
const DEFAULT_CONFIG = {
|
|
57
|
+
lastMissionPath: null,
|
|
58
|
+
backupEnabled: true
|
|
59
|
+
};
|
|
60
|
+
function saveConfig(data) {
|
|
61
|
+
// 1. Determine the directory of the Executable
|
|
62
|
+
// Check if we are running inside a 'pkg' executable
|
|
63
|
+
const isPkg = process.pkg !== undefined;
|
|
64
|
+
const exeDir = isPkg
|
|
65
|
+
? path.dirname(process.execPath) // PROD: The folder containing .exe
|
|
66
|
+
: process.cwd(); // DEV: The folder where you ran 'npm start'
|
|
67
|
+
// 2. Construct the full path
|
|
68
|
+
const configPath = path.join(exeDir, 'config.json');
|
|
69
|
+
try {
|
|
70
|
+
// 3. Write the file
|
|
71
|
+
fs.writeFileSync(configPath, JSON.stringify(data, null, 4), 'utf8');
|
|
72
|
+
console.log(`Config saved to: ${configPath}`);
|
|
73
|
+
}
|
|
74
|
+
catch (err) {
|
|
75
|
+
console.error(`Failed to write config`, err);
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
function readConfig() {
|
|
79
|
+
// A. Determine the directory (Compatible with 'pkg')
|
|
80
|
+
const isPkg = process.pkg !== undefined;
|
|
81
|
+
const exeDir = isPkg
|
|
82
|
+
? path.dirname(process.execPath) // PROD: Next to the .exe
|
|
83
|
+
: process.cwd(); // DEV: Current working directory
|
|
84
|
+
const configPath = path.join(exeDir, 'config.json');
|
|
85
|
+
// B. Check if file exists
|
|
86
|
+
if (!fs.existsSync(configPath)) {
|
|
87
|
+
console.log("No config found. Using defaults.");
|
|
88
|
+
return DEFAULT_CONFIG;
|
|
89
|
+
}
|
|
90
|
+
try {
|
|
91
|
+
// C. Read and Parse
|
|
92
|
+
const rawData = fs.readFileSync(configPath, 'utf8');
|
|
93
|
+
const userConfig = JSON.parse(rawData);
|
|
94
|
+
// D. Merge with Defaults
|
|
95
|
+
// (Ensures your app doesn't crash if the user deletes a key from the JSON)
|
|
96
|
+
return Object.assign(Object.assign({}, DEFAULT_CONFIG), userConfig);
|
|
97
|
+
}
|
|
98
|
+
catch (err) {
|
|
99
|
+
console.error(`Error reading config (corrupt JSON?)`, err);
|
|
100
|
+
console.log("Reverting to default configuration.");
|
|
101
|
+
return DEFAULT_CONFIG;
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
const initializeConfig = (options) => __awaiter(void 0, void 0, void 0, function* () {
|
|
105
|
+
var _a;
|
|
106
|
+
const config = readConfig();
|
|
107
|
+
let missionPath = (_a = options === null || options === void 0 ? void 0 : options.file) !== null && _a !== void 0 ? _a : "";
|
|
108
|
+
let outDir = "";
|
|
109
|
+
if (missionPath) {
|
|
110
|
+
const mizDir = missionPath.replace(path.basename(missionPath), "");
|
|
111
|
+
outDir = path.join(mizDir, "out");
|
|
112
|
+
}
|
|
113
|
+
else if (config.lastMissionPath === null) {
|
|
114
|
+
const { mizPath, dir } = yield (0, miz_selector_1.getMizPath)();
|
|
115
|
+
missionPath = mizPath;
|
|
116
|
+
outDir = path.join(dir, "out");
|
|
117
|
+
}
|
|
118
|
+
else {
|
|
119
|
+
missionPath = config.lastMissionPath;
|
|
120
|
+
const { action } = yield inquirer_1.default.prompt([
|
|
121
|
+
{
|
|
122
|
+
type: 'rawlist',
|
|
123
|
+
name: 'action',
|
|
124
|
+
message: 'Target file already exists. What would you like to do?',
|
|
125
|
+
choices: [
|
|
126
|
+
{
|
|
127
|
+
name: `Reuse the existing path: ${config.lastMissionPath}`,
|
|
128
|
+
value: 'reusePath'
|
|
129
|
+
},
|
|
130
|
+
{
|
|
131
|
+
name: "Select new .miz",
|
|
132
|
+
value: 'selectMiz'
|
|
133
|
+
}
|
|
134
|
+
]
|
|
135
|
+
}
|
|
136
|
+
]);
|
|
137
|
+
const mizDir = missionPath.replace(path.basename(missionPath), "");
|
|
138
|
+
outDir = path.join(mizDir, "out");
|
|
139
|
+
if (action === "selectMiz") {
|
|
140
|
+
const { mizPath, dir } = yield (0, miz_selector_1.getMizPath)(mizDir);
|
|
141
|
+
missionPath = mizPath;
|
|
142
|
+
outDir = path.join(dir, "out");
|
|
143
|
+
;
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
saveConfig(Object.assign(Object.assign({}, config), { lastMissionPath: missionPath }));
|
|
147
|
+
return { missionPath, outDir };
|
|
148
|
+
});
|
|
149
|
+
exports.initializeConfig = initializeConfig;
|
|
140
150
|
//# sourceMappingURL=config.js.map
|
package/dist/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
|
package/dist/fengari-wrapper.js
CHANGED
|
@@ -1,79 +1,89 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
-
}) : function(o, v) {
|
|
16
|
-
o["default"] = v;
|
|
17
|
-
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || function (
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
};
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
//
|
|
47
|
-
const
|
|
48
|
-
|
|
49
|
-
if
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
//
|
|
53
|
-
const
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
lua.
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
}
|
|
74
|
-
const
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
};
|
|
78
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
exports.fengariSortFile = void 0;
|
|
37
|
+
const fs = __importStar(require("fs"));
|
|
38
|
+
const path = __importStar(require("path"));
|
|
39
|
+
const fengari = __importStar(require("fengari"));
|
|
40
|
+
const lua = fengari.lua;
|
|
41
|
+
const lauxlib = fengari.lauxlib;
|
|
42
|
+
const lualib = fengari.lualib;
|
|
43
|
+
const to_luastring = fengari.to_luastring;
|
|
44
|
+
const scriptPath = path.join(__dirname, "../lua/sorter_lib.lua");
|
|
45
|
+
const runSorter = (dataFilePath, varName) => {
|
|
46
|
+
// 1. Read the Data File
|
|
47
|
+
const dataContent = fs.readFileSync(dataFilePath, 'utf8');
|
|
48
|
+
// --- DETECT LINE ENDINGS ---
|
|
49
|
+
// Check if the file contains Carriage Return + Line Feed
|
|
50
|
+
const useCRLF = dataContent.includes("\r\n");
|
|
51
|
+
const EOL = useCRLF ? "\r\n" : "\n";
|
|
52
|
+
// ---------------------------
|
|
53
|
+
const L = lauxlib.luaL_newstate();
|
|
54
|
+
lualib.luaL_openlibs(L);
|
|
55
|
+
// 2. Load Data into VM
|
|
56
|
+
// Strip shebang just in case, convert to Lua String
|
|
57
|
+
const cleanContent = dataContent.replace(/^#!\/.*\n/, "");
|
|
58
|
+
let status = lauxlib.luaL_dostring(L, to_luastring(cleanContent));
|
|
59
|
+
if (status !== lua.LUA_OK) {
|
|
60
|
+
throw new Error(`Lua Load Error: ${lua.lua_tojsstring(L, -1)}`);
|
|
61
|
+
}
|
|
62
|
+
// 3. Load Sorter Logic
|
|
63
|
+
const scriptContent = fs.readFileSync(scriptPath, 'utf8');
|
|
64
|
+
status = lauxlib.luaL_loadstring(L, to_luastring(scriptContent));
|
|
65
|
+
if (status !== lua.LUA_OK) {
|
|
66
|
+
throw new Error(`Script Load Error: ${lua.lua_tojsstring(L, -1)}`);
|
|
67
|
+
}
|
|
68
|
+
// 4. Run Sorter
|
|
69
|
+
lua.lua_pushstring(L, varName);
|
|
70
|
+
status = lua.lua_pcall(L, 1, 2, 0);
|
|
71
|
+
if (status !== lua.LUA_OK) {
|
|
72
|
+
throw new Error(`Runtime Error: ${lua.lua_tojsstring(L, -1)}`);
|
|
73
|
+
}
|
|
74
|
+
const errorMsg = lua.lua_tojsstring(L, -1);
|
|
75
|
+
let resultString = lua.lua_tojsstring(L, -2); // This will contain \n
|
|
76
|
+
if (!resultString && errorMsg) {
|
|
77
|
+
throw new Error(`Logic Error: ${errorMsg}`);
|
|
78
|
+
}
|
|
79
|
+
resultString = resultString.replace(/\r?\n/g, EOL);
|
|
80
|
+
// 5. Write back
|
|
81
|
+
fs.writeFileSync(dataFilePath, resultString);
|
|
82
|
+
console.log(`Success: Sorted ${varName}`);
|
|
83
|
+
};
|
|
84
|
+
const fengariSortFile = (filepath) => {
|
|
85
|
+
const targetVar = path.basename(filepath);
|
|
86
|
+
runSorter(filepath, targetVar);
|
|
87
|
+
};
|
|
88
|
+
exports.fengariSortFile = fengariSortFile;
|
|
79
89
|
//# sourceMappingURL=fengari-wrapper.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fengari-wrapper.js","sourceRoot":"","sources":["../src/fengari-wrapper.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"fengari-wrapper.js","sourceRoot":"","sources":["../src/fengari-wrapper.ts"],"names":[],"mappings":"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"}
|