@markw65/monkeyc-optimizer 1.1.30 → 1.1.31
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 +7 -0
- package/build/api.cjs +31 -31
- package/build/{chunk-QINU6R5E.cjs → chunk-6OD3V3XN.cjs} +46 -51
- package/build/optimizer.cjs +17 -17
- package/build/sdk-util.cjs +14 -14
- package/build/src/api.d.ts +1 -1
- package/build/worker-thread.cjs +3 -3
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -902,3 +902,10 @@ No functional change, just fixes a typo that broke the typescript exports.
|
|
|
902
902
|
- Bug fixes
|
|
903
903
|
- Fixes an issue where exporting a project that uses barrels could fail.
|
|
904
904
|
- Fixes a type analysis bug that could result in the type checker incorrectly thinking two types were disjoint.
|
|
905
|
+
|
|
906
|
+
### 1.1.31
|
|
907
|
+
|
|
908
|
+
- Better error reporting when getApiMapping fails
|
|
909
|
+
- Update getApiMapping to handle api.mir from sdk-6.2.0
|
|
910
|
+
- Update various tests to work with sdk-6.2.0 (including marking one test as an expected failure)
|
|
911
|
+
- Add a test to catch the export-project-using-barrels bug that was fixed in 1.1.30
|
package/build/api.cjs
CHANGED
|
@@ -18,44 +18,44 @@ var __copyProps = (to, from, except, desc) => {
|
|
|
18
18
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
19
|
var api_exports = {};
|
|
20
20
|
__export(api_exports, {
|
|
21
|
-
checkCompilerVersion: () =>
|
|
22
|
-
collectNamespaces: () =>
|
|
23
|
-
createDocumentationMap: () =>
|
|
24
|
-
diagnostic: () =>
|
|
25
|
-
diagnosticHelper: () =>
|
|
26
|
-
findNamesInScope: () =>
|
|
27
|
-
findUsingForNode: () =>
|
|
28
|
-
formatAst: () =>
|
|
29
|
-
formatAstLongLines: () =>
|
|
30
|
-
getApiFunctionInfo: () =>
|
|
31
|
-
getApiMapping: () =>
|
|
32
|
-
getSuperClasses: () =>
|
|
21
|
+
checkCompilerVersion: () => import_chunk_6OD3V3XN.checkCompilerVersion,
|
|
22
|
+
collectNamespaces: () => import_chunk_6OD3V3XN.collectNamespaces,
|
|
23
|
+
createDocumentationMap: () => import_chunk_6OD3V3XN.createDocumentationMap,
|
|
24
|
+
diagnostic: () => import_chunk_6OD3V3XN.diagnostic,
|
|
25
|
+
diagnosticHelper: () => import_chunk_6OD3V3XN.diagnosticHelper,
|
|
26
|
+
findNamesInScope: () => import_chunk_6OD3V3XN.findNamesInScope,
|
|
27
|
+
findUsingForNode: () => import_chunk_6OD3V3XN.findUsingForNode,
|
|
28
|
+
formatAst: () => import_chunk_6OD3V3XN.formatAst,
|
|
29
|
+
formatAstLongLines: () => import_chunk_6OD3V3XN.formatAstLongLines,
|
|
30
|
+
getApiFunctionInfo: () => import_chunk_6OD3V3XN.getApiFunctionInfo,
|
|
31
|
+
getApiMapping: () => import_chunk_6OD3V3XN.getApiMapping,
|
|
32
|
+
getSuperClasses: () => import_chunk_6OD3V3XN.getSuperClasses,
|
|
33
33
|
hasProperty: () => import_chunk_MBTLUWXR.hasProperty,
|
|
34
|
-
isClassVariable: () =>
|
|
35
|
-
isLocal: () =>
|
|
36
|
-
isLookupCandidate: () =>
|
|
37
|
-
isStateNode: () =>
|
|
38
|
-
lookupByFullName: () =>
|
|
39
|
-
lookupNext: () =>
|
|
40
|
-
lookupResultContains: () =>
|
|
41
|
-
lookupWithType: () =>
|
|
42
|
-
makeToyboxLink: () =>
|
|
43
|
-
mapVarDeclsByType: () =>
|
|
44
|
-
markInvokeClassMethod: () =>
|
|
45
|
-
parseSdkVersion: () =>
|
|
46
|
-
sameLookupResult: () =>
|
|
34
|
+
isClassVariable: () => import_chunk_6OD3V3XN.isClassVariable,
|
|
35
|
+
isLocal: () => import_chunk_6OD3V3XN.isLocal,
|
|
36
|
+
isLookupCandidate: () => import_chunk_6OD3V3XN.isLookupCandidate,
|
|
37
|
+
isStateNode: () => import_chunk_6OD3V3XN.isStateNode,
|
|
38
|
+
lookupByFullName: () => import_chunk_6OD3V3XN.lookupByFullName,
|
|
39
|
+
lookupNext: () => import_chunk_6OD3V3XN.lookupNext,
|
|
40
|
+
lookupResultContains: () => import_chunk_6OD3V3XN.lookupResultContains,
|
|
41
|
+
lookupWithType: () => import_chunk_6OD3V3XN.lookupWithType,
|
|
42
|
+
makeToyboxLink: () => import_chunk_6OD3V3XN.makeToyboxLink,
|
|
43
|
+
mapVarDeclsByType: () => import_chunk_6OD3V3XN.mapVarDeclsByType,
|
|
44
|
+
markInvokeClassMethod: () => import_chunk_6OD3V3XN.markInvokeClassMethod,
|
|
45
|
+
parseSdkVersion: () => import_chunk_6OD3V3XN.parseSdkVersion,
|
|
46
|
+
sameLookupResult: () => import_chunk_6OD3V3XN.sameLookupResult,
|
|
47
47
|
traverseAst: () => import_chunk_MBTLUWXR.traverseAst,
|
|
48
|
-
variableDeclarationName: () =>
|
|
49
|
-
visitReferences: () =>
|
|
50
|
-
visit_resources: () =>
|
|
51
|
-
visitorNode: () =>
|
|
48
|
+
variableDeclarationName: () => import_chunk_6OD3V3XN.variableDeclarationName,
|
|
49
|
+
visitReferences: () => import_chunk_6OD3V3XN.visitReferences,
|
|
50
|
+
visit_resources: () => import_chunk_6OD3V3XN.visit_resources,
|
|
51
|
+
visitorNode: () => import_chunk_6OD3V3XN.visitorNode
|
|
52
52
|
});
|
|
53
53
|
module.exports = __toCommonJS(api_exports);
|
|
54
|
-
var
|
|
54
|
+
var import_chunk_6OD3V3XN = require("./chunk-6OD3V3XN.cjs");
|
|
55
55
|
var import_chunk_PVBIKZYZ = require("./chunk-PVBIKZYZ.cjs");
|
|
56
56
|
var import_chunk_MBTLUWXR = require("./chunk-MBTLUWXR.cjs");
|
|
57
57
|
var import_chunk_ABYVSU2C = require("./chunk-ABYVSU2C.cjs");
|
|
58
|
-
(0,
|
|
58
|
+
(0, import_chunk_6OD3V3XN.init_api)();
|
|
59
59
|
// Annotate the CommonJS export names for ESM import in node:
|
|
60
60
|
0 && (module.exports = {
|
|
61
61
|
checkCompilerVersion,
|
|
@@ -26,8 +26,8 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
|
|
|
26
26
|
mod
|
|
27
27
|
));
|
|
28
28
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
29
|
-
var
|
|
30
|
-
__export(
|
|
29
|
+
var chunk_6OD3V3XN_exports = {};
|
|
30
|
+
__export(chunk_6OD3V3XN_exports, {
|
|
31
31
|
EnumTagsConst: () => EnumTagsConst,
|
|
32
32
|
LastTypeTag: () => LastTypeTag,
|
|
33
33
|
ObjectLikeTagsConst: () => ObjectLikeTagsConst,
|
|
@@ -122,7 +122,7 @@ __export(chunk_QINU6R5E_exports, {
|
|
|
122
122
|
visitorNode: () => visitorNode,
|
|
123
123
|
xml_util_exports: () => xml_util_exports
|
|
124
124
|
});
|
|
125
|
-
module.exports = __toCommonJS(
|
|
125
|
+
module.exports = __toCommonJS(chunk_6OD3V3XN_exports);
|
|
126
126
|
var import_chunk_PVBIKZYZ = require("./chunk-PVBIKZYZ.cjs");
|
|
127
127
|
var import_chunk_MBTLUWXR = require("./chunk-MBTLUWXR.cjs");
|
|
128
128
|
var import_chunk_ABYVSU2C = require("./chunk-ABYVSU2C.cjs");
|
|
@@ -19213,52 +19213,47 @@ async function getApiMapping(state, resourcesMap, manifestXML) {
|
|
|
19213
19213
|
state.sdkVersion = parseSdkVersion(match[1]);
|
|
19214
19214
|
}
|
|
19215
19215
|
}
|
|
19216
|
-
const api = (await fs2.readFile(`${sdk}bin/api.mir`)).toString().replace(/\r\n/g, "\n").replace(/^(\s*type)\s/gm, "$1def ");
|
|
19217
|
-
|
|
19218
|
-
|
|
19219
|
-
|
|
19220
|
-
|
|
19221
|
-
|
|
19222
|
-
|
|
19223
|
-
|
|
19224
|
-
|
|
19225
|
-
|
|
19226
|
-
|
|
19227
|
-
|
|
19228
|
-
|
|
19229
|
-
|
|
19230
|
-
|
|
19231
|
-
|
|
19232
|
-
|
|
19233
|
-
|
|
19234
|
-
const
|
|
19235
|
-
|
|
19236
|
-
|
|
19237
|
-
|
|
19238
|
-
|
|
19239
|
-
|
|
19240
|
-
|
|
19241
|
-
|
|
19242
|
-
|
|
19243
|
-
|
|
19244
|
-
|
|
19245
|
-
|
|
19246
|
-
|
|
19247
|
-
|
|
19248
|
-
|
|
19249
|
-
|
|
19250
|
-
|
|
19251
|
-
|
|
19252
|
-
|
|
19253
|
-
|
|
19254
|
-
|
|
19255
|
-
|
|
19256
|
-
|
|
19257
|
-
return result;
|
|
19258
|
-
} catch (e) {
|
|
19259
|
-
console.error(`${e}`);
|
|
19260
|
-
return null;
|
|
19261
|
-
}
|
|
19216
|
+
const api = (await fs2.readFile(`${sdk}bin/api.mir`)).toString().replace(/\r\n/g, "\n").replace(/^(\s*static)?\s*<init>\s*\{\s*\}\s*?\n/gm, "").replace(/^(\s*type)\s/gm, "$1def ");
|
|
19217
|
+
const ast = parser.parse(api, null, {
|
|
19218
|
+
filepath: "api.mir"
|
|
19219
|
+
});
|
|
19220
|
+
if (resourcesMap) {
|
|
19221
|
+
const rezAst = state ? state.rezAst || { type: "Program", body: [] } : ast;
|
|
19222
|
+
add_resources_to_ast(state, rezAst, resourcesMap, manifestXML);
|
|
19223
|
+
if (state) {
|
|
19224
|
+
state.rezAst = rezAst;
|
|
19225
|
+
state.manifestXML = manifestXML;
|
|
19226
|
+
}
|
|
19227
|
+
}
|
|
19228
|
+
const result = collectNamespaces(ast, state);
|
|
19229
|
+
if (state && state.rezAst) {
|
|
19230
|
+
collectNamespaces(state.rezAst, state);
|
|
19231
|
+
}
|
|
19232
|
+
negativeFixups.forEach((fixup) => {
|
|
19233
|
+
const vs = fixup.split(".").reduce((state2, part) => {
|
|
19234
|
+
const decls = isStateNode(state2) && state2.decls?.[part];
|
|
19235
|
+
if (!Array.isArray(decls) || decls.length !== 1 || !decls[0]) {
|
|
19236
|
+
throw `Failed to find and fix negative constant ${fixup}`;
|
|
19237
|
+
}
|
|
19238
|
+
return decls[0];
|
|
19239
|
+
}, result);
|
|
19240
|
+
const value2 = isStateNode(vs) ? vs.node : vs;
|
|
19241
|
+
if (!value2 || value2.type !== "EnumStringMember" && (value2.type !== "VariableDeclarator" || value2.kind !== "const")) {
|
|
19242
|
+
throw `Negative constant ${fixup} did not refer to a constant`;
|
|
19243
|
+
}
|
|
19244
|
+
const init = (0, import_chunk_MBTLUWXR.getLiteralNode)(value2.init);
|
|
19245
|
+
if (!init || init.type !== "Literal") {
|
|
19246
|
+
throw `Negative constant ${fixup} was not a Literal`;
|
|
19247
|
+
}
|
|
19248
|
+
if (typeof init.value !== "number") {
|
|
19249
|
+
console.log(`Negative fixup ${fixup} was not a number!`);
|
|
19250
|
+
} else if (init.value > 0) {
|
|
19251
|
+
init.value = -init.value;
|
|
19252
|
+
init.raw = "-" + init.raw;
|
|
19253
|
+
} else {
|
|
19254
|
+
}
|
|
19255
|
+
});
|
|
19256
|
+
return result;
|
|
19262
19257
|
}
|
|
19263
19258
|
function isStateNode(node) {
|
|
19264
19259
|
return (0, import_chunk_MBTLUWXR.hasProperty)(node, "node");
|
|
@@ -29847,7 +29842,7 @@ async function generateOneConfig(buildConfig, manifestXML, dependencyFiles, conf
|
|
|
29847
29842
|
const opt_time = await (0, import_chunk_PVBIKZYZ.first_modified)(
|
|
29848
29843
|
Object.values(fnMap).map((v) => v.output)
|
|
29849
29844
|
);
|
|
29850
|
-
if (source_time < opt_time &&
|
|
29845
|
+
if (source_time < opt_time && 1687277028413 < opt_time) {
|
|
29851
29846
|
return {
|
|
29852
29847
|
hasTests,
|
|
29853
29848
|
diagnostics: prevDiagnostics,
|
|
@@ -29884,7 +29879,7 @@ async function generateOneConfig(buildConfig, manifestXML, dependencyFiles, conf
|
|
|
29884
29879
|
hasTests: hasTests2,
|
|
29885
29880
|
diagnostics,
|
|
29886
29881
|
sdkVersion,
|
|
29887
|
-
optimizerVersion: "1.1.
|
|
29882
|
+
optimizerVersion: "1.1.31",
|
|
29888
29883
|
...Object.fromEntries(
|
|
29889
29884
|
configOptionsToCheck.map((option) => [option, config[option]])
|
|
29890
29885
|
)
|
package/build/optimizer.cjs
CHANGED
|
@@ -18,29 +18,29 @@ var __copyProps = (to, from, except, desc) => {
|
|
|
18
18
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
19
|
var optimizer_exports = {};
|
|
20
20
|
__export(optimizer_exports, {
|
|
21
|
-
StateNodeAttributes: () =>
|
|
22
|
-
buildOptimizedProject: () =>
|
|
21
|
+
StateNodeAttributes: () => import_chunk_6OD3V3XN.StateNodeAttributes,
|
|
22
|
+
buildOptimizedProject: () => import_chunk_6OD3V3XN.buildOptimizedProject,
|
|
23
23
|
copyRecursiveAsNeeded: () => import_chunk_PVBIKZYZ.copyRecursiveAsNeeded,
|
|
24
|
-
defaultConfig: () =>
|
|
25
|
-
display: () =>
|
|
26
|
-
generateApiMirTests: () =>
|
|
27
|
-
generateOneConfig: () =>
|
|
28
|
-
generateOptimizedProject: () =>
|
|
29
|
-
getConfig: () =>
|
|
30
|
-
getProjectAnalysis: () =>
|
|
31
|
-
get_jungle: () =>
|
|
32
|
-
isErrorWithLocation: () =>
|
|
33
|
-
launchSimulator: () =>
|
|
34
|
-
manifestProducts: () =>
|
|
35
|
-
mctree: () =>
|
|
36
|
-
simulateProgram: () =>
|
|
24
|
+
defaultConfig: () => import_chunk_6OD3V3XN.defaultConfig,
|
|
25
|
+
display: () => import_chunk_6OD3V3XN.display,
|
|
26
|
+
generateApiMirTests: () => import_chunk_6OD3V3XN.generateApiMirTests,
|
|
27
|
+
generateOneConfig: () => import_chunk_6OD3V3XN.generateOneConfig,
|
|
28
|
+
generateOptimizedProject: () => import_chunk_6OD3V3XN.generateOptimizedProject,
|
|
29
|
+
getConfig: () => import_chunk_6OD3V3XN.getConfig,
|
|
30
|
+
getProjectAnalysis: () => import_chunk_6OD3V3XN.getProjectAnalysis,
|
|
31
|
+
get_jungle: () => import_chunk_6OD3V3XN.get_jungle,
|
|
32
|
+
isErrorWithLocation: () => import_chunk_6OD3V3XN.isErrorWithLocation,
|
|
33
|
+
launchSimulator: () => import_chunk_6OD3V3XN.launchSimulator,
|
|
34
|
+
manifestProducts: () => import_chunk_6OD3V3XN.manifestProducts,
|
|
35
|
+
mctree: () => import_chunk_6OD3V3XN.mctree,
|
|
36
|
+
simulateProgram: () => import_chunk_6OD3V3XN.simulateProgram
|
|
37
37
|
});
|
|
38
38
|
module.exports = __toCommonJS(optimizer_exports);
|
|
39
|
-
var
|
|
39
|
+
var import_chunk_6OD3V3XN = require("./chunk-6OD3V3XN.cjs");
|
|
40
40
|
var import_chunk_PVBIKZYZ = require("./chunk-PVBIKZYZ.cjs");
|
|
41
41
|
var import_chunk_MBTLUWXR = require("./chunk-MBTLUWXR.cjs");
|
|
42
42
|
var import_chunk_ABYVSU2C = require("./chunk-ABYVSU2C.cjs");
|
|
43
|
-
(0,
|
|
43
|
+
(0, import_chunk_6OD3V3XN.init_optimizer)();
|
|
44
44
|
// Annotate the CommonJS export names for ESM import in node:
|
|
45
45
|
0 && (module.exports = {
|
|
46
46
|
StateNodeAttributes,
|
package/build/sdk-util.cjs
CHANGED
|
@@ -18,25 +18,25 @@ var __copyProps = (to, from, except, desc) => {
|
|
|
18
18
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
19
|
var sdk_util_exports = {};
|
|
20
20
|
__export(sdk_util_exports, {
|
|
21
|
-
SectionKinds: () =>
|
|
22
|
-
appSupport: () =>
|
|
23
|
-
connectiq: () =>
|
|
24
|
-
getDeviceInfo: () =>
|
|
25
|
-
getFunctionDocumentation: () =>
|
|
26
|
-
getLanguages: () =>
|
|
27
|
-
getSdkPath: () =>
|
|
28
|
-
isWin: () =>
|
|
29
|
-
optimizeProgram: () =>
|
|
30
|
-
readPrg: () =>
|
|
31
|
-
readPrgWithOffsets: () =>
|
|
32
|
-
xmlUtil: () =>
|
|
21
|
+
SectionKinds: () => import_chunk_6OD3V3XN.SectionKinds,
|
|
22
|
+
appSupport: () => import_chunk_6OD3V3XN.appSupport,
|
|
23
|
+
connectiq: () => import_chunk_6OD3V3XN.connectiq,
|
|
24
|
+
getDeviceInfo: () => import_chunk_6OD3V3XN.getDeviceInfo,
|
|
25
|
+
getFunctionDocumentation: () => import_chunk_6OD3V3XN.getFunctionDocumentation,
|
|
26
|
+
getLanguages: () => import_chunk_6OD3V3XN.getLanguages,
|
|
27
|
+
getSdkPath: () => import_chunk_6OD3V3XN.getSdkPath,
|
|
28
|
+
isWin: () => import_chunk_6OD3V3XN.isWin,
|
|
29
|
+
optimizeProgram: () => import_chunk_6OD3V3XN.optimizeProgram,
|
|
30
|
+
readPrg: () => import_chunk_6OD3V3XN.readPrg,
|
|
31
|
+
readPrgWithOffsets: () => import_chunk_6OD3V3XN.readPrgWithOffsets,
|
|
32
|
+
xmlUtil: () => import_chunk_6OD3V3XN.xml_util_exports
|
|
33
33
|
});
|
|
34
34
|
module.exports = __toCommonJS(sdk_util_exports);
|
|
35
|
-
var
|
|
35
|
+
var import_chunk_6OD3V3XN = require("./chunk-6OD3V3XN.cjs");
|
|
36
36
|
var import_chunk_PVBIKZYZ = require("./chunk-PVBIKZYZ.cjs");
|
|
37
37
|
var import_chunk_MBTLUWXR = require("./chunk-MBTLUWXR.cjs");
|
|
38
38
|
var import_chunk_ABYVSU2C = require("./chunk-ABYVSU2C.cjs");
|
|
39
|
-
(0,
|
|
39
|
+
(0, import_chunk_6OD3V3XN.init_sdk_util)();
|
|
40
40
|
// Annotate the CommonJS export names for ESM import in node:
|
|
41
41
|
0 && (module.exports = {
|
|
42
42
|
SectionKinds,
|
package/build/src/api.d.ts
CHANGED
|
@@ -9,7 +9,7 @@ export { visitorNode, visitReferences } from "./visitor";
|
|
|
9
9
|
export { traverseAst, hasProperty, visit_resources };
|
|
10
10
|
export declare function parseSdkVersion(version: string | undefined): number;
|
|
11
11
|
export declare function checkCompilerVersion(version: string, sdkVer: number): boolean | undefined;
|
|
12
|
-
export declare function getApiMapping(state?: ProgramState, resourcesMap?: Record<string, JungleResourceMap>, manifestXML?: xmlUtil.Document): Promise<ProgramStateNode
|
|
12
|
+
export declare function getApiMapping(state?: ProgramState, resourcesMap?: Record<string, JungleResourceMap>, manifestXML?: xmlUtil.Document): Promise<ProgramStateNode>;
|
|
13
13
|
export declare function isStateNode(node: {
|
|
14
14
|
type: string;
|
|
15
15
|
}): node is StateNode;
|
package/build/worker-thread.cjs
CHANGED
|
@@ -21,17 +21,17 @@ __export(worker_thread_exports, {
|
|
|
21
21
|
default: () => worker_thread_default
|
|
22
22
|
});
|
|
23
23
|
module.exports = __toCommonJS(worker_thread_exports);
|
|
24
|
-
var
|
|
24
|
+
var import_chunk_6OD3V3XN = require("./chunk-6OD3V3XN.cjs");
|
|
25
25
|
var import_chunk_PVBIKZYZ = require("./chunk-PVBIKZYZ.cjs");
|
|
26
26
|
var import_chunk_MBTLUWXR = require("./chunk-MBTLUWXR.cjs");
|
|
27
27
|
var import_chunk_ABYVSU2C = require("./chunk-ABYVSU2C.cjs");
|
|
28
28
|
var import_node_worker_threads = require("node:worker_threads");
|
|
29
29
|
var require_worker_thread = (0, import_chunk_ABYVSU2C.__commonJS)({
|
|
30
30
|
"src/worker-thread.ts"() {
|
|
31
|
-
(0,
|
|
31
|
+
(0, import_chunk_6OD3V3XN.init_worker_task)();
|
|
32
32
|
if (import_node_worker_threads.parentPort) {
|
|
33
33
|
import_node_worker_threads.parentPort.on("message", async (task) => {
|
|
34
|
-
return import_node_worker_threads.parentPort.postMessage(await (0,
|
|
34
|
+
return import_node_worker_threads.parentPort.postMessage(await (0, import_chunk_6OD3V3XN.performTask)(task));
|
|
35
35
|
});
|
|
36
36
|
}
|
|
37
37
|
}
|
package/package.json
CHANGED