@markw65/monkeyc-optimizer 1.1.43 → 1.1.45

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/CHANGELOG.md CHANGED
@@ -2,6 +2,14 @@
2
2
 
3
3
  All notable changes to the "monkeyc-optimizer" package will be documented in this file.
4
4
 
5
+ ### 1.1.45
6
+
7
+ - Add `extraExcludes` option so that builds can be configured without modifying monkey.jungle
8
+
9
+ ### 1.1.44
10
+
11
+ - Proper fix for type mismatch errors relating to Rez.Strings under sdk-7.x, with tests. Previous fix introduced diagnostics with sdk-6.x at TypeCheckLevel=Strict
12
+
5
13
  ### 1.1.43
6
14
 
7
15
  - Fix bogus type mismatch errors relating to Rez.Strings.\* under sdk-7.x
package/build/api.cjs CHANGED
@@ -18,47 +18,47 @@ 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: () => import_chunk_SNXXTHNE.checkCompilerVersion,
22
- collectNamespaces: () => import_chunk_SNXXTHNE.collectNamespaces,
23
- createDocumentationMap: () => import_chunk_SNXXTHNE.createDocumentationMap,
24
- diagnostic: () => import_chunk_SNXXTHNE.diagnostic,
25
- diagnosticHelper: () => import_chunk_SNXXTHNE.diagnosticHelper,
26
- findNamesInScope: () => import_chunk_SNXXTHNE.findNamesInScope,
27
- findUsingForNode: () => import_chunk_SNXXTHNE.findUsingForNode,
28
- formatAst: () => import_chunk_SNXXTHNE.formatAst,
29
- formatAstLongLines: () => import_chunk_SNXXTHNE.formatAstLongLines,
30
- formatScopedName: () => import_chunk_SNXXTHNE.formatScopedName,
31
- getApiFunctionInfo: () => import_chunk_SNXXTHNE.getApiFunctionInfo,
32
- getApiMapping: () => import_chunk_SNXXTHNE.getApiMapping,
33
- getSuperClasses: () => import_chunk_SNXXTHNE.getSuperClasses,
21
+ checkCompilerVersion: () => import_chunk_CYZJPYWZ.checkCompilerVersion,
22
+ collectNamespaces: () => import_chunk_CYZJPYWZ.collectNamespaces,
23
+ createDocumentationMap: () => import_chunk_CYZJPYWZ.createDocumentationMap,
24
+ diagnostic: () => import_chunk_CYZJPYWZ.diagnostic,
25
+ diagnosticHelper: () => import_chunk_CYZJPYWZ.diagnosticHelper,
26
+ findNamesInScope: () => import_chunk_CYZJPYWZ.findNamesInScope,
27
+ findUsingForNode: () => import_chunk_CYZJPYWZ.findUsingForNode,
28
+ formatAst: () => import_chunk_CYZJPYWZ.formatAst,
29
+ formatAstLongLines: () => import_chunk_CYZJPYWZ.formatAstLongLines,
30
+ formatScopedName: () => import_chunk_CYZJPYWZ.formatScopedName,
31
+ getApiFunctionInfo: () => import_chunk_CYZJPYWZ.getApiFunctionInfo,
32
+ getApiMapping: () => import_chunk_CYZJPYWZ.getApiMapping,
33
+ getSuperClasses: () => import_chunk_CYZJPYWZ.getSuperClasses,
34
34
  hasProperty: () => import_chunk_MBTLUWXR.hasProperty,
35
- isClassVariable: () => import_chunk_SNXXTHNE.isClassVariable,
36
- isLocal: () => import_chunk_SNXXTHNE.isLocal,
37
- isLookupCandidate: () => import_chunk_SNXXTHNE.isLookupCandidate,
38
- isStateNode: () => import_chunk_SNXXTHNE.isStateNode,
39
- lookupByFullName: () => import_chunk_SNXXTHNE.lookupByFullName,
40
- lookupNext: () => import_chunk_SNXXTHNE.lookupNext,
41
- lookupResultContains: () => import_chunk_SNXXTHNE.lookupResultContains,
42
- lookupWithType: () => import_chunk_SNXXTHNE.lookupWithType,
43
- makeToyboxLink: () => import_chunk_SNXXTHNE.makeToyboxLink,
44
- mapVarDeclsByType: () => import_chunk_SNXXTHNE.mapVarDeclsByType,
45
- markInvokeClassMethod: () => import_chunk_SNXXTHNE.markInvokeClassMethod,
46
- parseSdkVersion: () => import_chunk_SNXXTHNE.parseSdkVersion,
47
- resolveDiagnostics: () => import_chunk_SNXXTHNE.resolveDiagnostics,
48
- resolveDiagnosticsMap: () => import_chunk_SNXXTHNE.resolveDiagnosticsMap,
49
- sameLookupResult: () => import_chunk_SNXXTHNE.sameLookupResult,
35
+ isClassVariable: () => import_chunk_CYZJPYWZ.isClassVariable,
36
+ isLocal: () => import_chunk_CYZJPYWZ.isLocal,
37
+ isLookupCandidate: () => import_chunk_CYZJPYWZ.isLookupCandidate,
38
+ isStateNode: () => import_chunk_CYZJPYWZ.isStateNode,
39
+ lookupByFullName: () => import_chunk_CYZJPYWZ.lookupByFullName,
40
+ lookupNext: () => import_chunk_CYZJPYWZ.lookupNext,
41
+ lookupResultContains: () => import_chunk_CYZJPYWZ.lookupResultContains,
42
+ lookupWithType: () => import_chunk_CYZJPYWZ.lookupWithType,
43
+ makeToyboxLink: () => import_chunk_CYZJPYWZ.makeToyboxLink,
44
+ mapVarDeclsByType: () => import_chunk_CYZJPYWZ.mapVarDeclsByType,
45
+ markInvokeClassMethod: () => import_chunk_CYZJPYWZ.markInvokeClassMethod,
46
+ parseSdkVersion: () => import_chunk_CYZJPYWZ.parseSdkVersion,
47
+ resolveDiagnostics: () => import_chunk_CYZJPYWZ.resolveDiagnostics,
48
+ resolveDiagnosticsMap: () => import_chunk_CYZJPYWZ.resolveDiagnosticsMap,
49
+ sameLookupResult: () => import_chunk_CYZJPYWZ.sameLookupResult,
50
50
  traverseAst: () => import_chunk_MBTLUWXR.traverseAst,
51
- variableDeclarationName: () => import_chunk_SNXXTHNE.variableDeclarationName,
52
- visitReferences: () => import_chunk_SNXXTHNE.visitReferences,
53
- visit_resources: () => import_chunk_SNXXTHNE.visit_resources,
54
- visitorNode: () => import_chunk_SNXXTHNE.visitorNode
51
+ variableDeclarationName: () => import_chunk_CYZJPYWZ.variableDeclarationName,
52
+ visitReferences: () => import_chunk_CYZJPYWZ.visitReferences,
53
+ visit_resources: () => import_chunk_CYZJPYWZ.visit_resources,
54
+ visitorNode: () => import_chunk_CYZJPYWZ.visitorNode
55
55
  });
56
56
  module.exports = __toCommonJS(api_exports);
57
- var import_chunk_SNXXTHNE = require("./chunk-SNXXTHNE.cjs");
57
+ var import_chunk_CYZJPYWZ = require("./chunk-CYZJPYWZ.cjs");
58
58
  var import_chunk_SG7ODKRM = require("./chunk-SG7ODKRM.cjs");
59
59
  var import_chunk_MBTLUWXR = require("./chunk-MBTLUWXR.cjs");
60
60
  var import_chunk_ABYVSU2C = require("./chunk-ABYVSU2C.cjs");
61
- (0, import_chunk_SNXXTHNE.init_api)();
61
+ (0, import_chunk_CYZJPYWZ.init_api)();
62
62
  // Annotate the CommonJS export names for ESM import in node:
63
63
  0 && (module.exports = {
64
64
  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 chunk_SNXXTHNE_exports = {};
30
- __export(chunk_SNXXTHNE_exports, {
29
+ var chunk_CYZJPYWZ_exports = {};
30
+ __export(chunk_CYZJPYWZ_exports, {
31
31
  EnumTagsConst: () => EnumTagsConst,
32
32
  LastTypeTag: () => LastTypeTag,
33
33
  ObjectLikeTagsConst: () => ObjectLikeTagsConst,
@@ -133,7 +133,7 @@ __export(chunk_SNXXTHNE_exports, {
133
133
  visitorNode: () => visitorNode,
134
134
  xml_util_exports: () => xml_util_exports
135
135
  });
136
- module.exports = __toCommonJS(chunk_SNXXTHNE_exports);
136
+ module.exports = __toCommonJS(chunk_CYZJPYWZ_exports);
137
137
  var import_chunk_SG7ODKRM = require("./chunk-SG7ODKRM.cjs");
138
138
  var import_chunk_MBTLUWXR = require("./chunk-MBTLUWXR.cjs");
139
139
  var import_chunk_ABYVSU2C = require("./chunk-ABYVSU2C.cjs");
@@ -17611,7 +17611,7 @@ function add_one_resource(state, doc, module2, e) {
17611
17611
  {
17612
17612
  type: "TypeSpecPart",
17613
17613
  name: (0, import_chunk_MBTLUWXR.makeScopedName)(
17614
- state && lookupByFullName(state, "Toybox.Lang.ResourceId") ? "Toybox.Lang.ResourceId" : "Toybox.Lang.Symbol"
17614
+ (state?.sdkVersion ?? 0) >= 7e6 ? "Toybox.Lang.ResourceId" : "Toybox.Lang.Symbol"
17615
17615
  )
17616
17616
  }
17617
17617
  ]
@@ -18939,10 +18939,10 @@ async function createDocumentationMap(functionDocumentation) {
18939
18939
  });
18940
18940
  return docMap;
18941
18941
  }
18942
- function makeToyboxLink(result) {
18942
+ function makeToyboxLink(result, root) {
18943
18943
  const make_link = (fullName, fragment) => {
18944
18944
  const path7 = fullName.split(".");
18945
- return `https://developer.garmin.com/connect-iq/api-docs/${path7.slice(1, fragment ? -1 : void 0).join("/")}.html` + (fragment ? `#${path7.slice(-1)[0]}-${fragment}` : "");
18945
+ return `${root ?? "https://developer.garmin.com/connect-iq/api-docs/"}${path7.slice(1, fragment ? -1 : void 0).join("/")}.html` + (fragment ? `#${path7.slice(-1)[0]}-${fragment}` : "");
18946
18946
  };
18947
18947
  switch (result.type) {
18948
18948
  case "ClassDeclaration":
@@ -27321,6 +27321,26 @@ function identify_optimizer_groups(targets, options) {
27321
27321
  return null;
27322
27322
  }
27323
27323
  };
27324
+ if (options.extraExcludes) {
27325
+ const toAdd = [];
27326
+ const toRemove = [];
27327
+ options.extraExcludes.split(";").forEach((exclude) => {
27328
+ if (exclude.startsWith("-")) {
27329
+ toRemove.push(exclude.slice(1));
27330
+ } else {
27331
+ toAdd.push(exclude);
27332
+ }
27333
+ });
27334
+ targets.forEach((target) => {
27335
+ const ex = Object.fromEntries(
27336
+ (target.qualifier.excludeAnnotations?.concat(toAdd) ?? toAdd).map(
27337
+ (x) => [x, true]
27338
+ )
27339
+ );
27340
+ toRemove.forEach((r) => delete ex[r]);
27341
+ target.qualifier.excludeAnnotations = Object.keys(ex);
27342
+ });
27343
+ }
27324
27344
  const ignoredExcludeAnnotations = ignoreStrOption(
27325
27345
  options.ignoredExcludeAnnotations
27326
27346
  );
@@ -28324,7 +28344,7 @@ async function generateOneConfig(buildConfig, manifestXML, dependencyFiles, conf
28324
28344
  const opt_time = await (0, import_chunk_SG7ODKRM.first_modified)(
28325
28345
  Object.values(fnMap).map((v) => v.output)
28326
28346
  );
28327
- if (source_time < opt_time && 1707958781012 < opt_time) {
28347
+ if (source_time < opt_time && 1708217121885 < opt_time) {
28328
28348
  return {
28329
28349
  hasTests,
28330
28350
  diagnostics: prevDiagnostics,
@@ -28363,7 +28383,7 @@ async function generateOneConfig(buildConfig, manifestXML, dependencyFiles, conf
28363
28383
  hasTests: hasTests2,
28364
28384
  diagnostics,
28365
28385
  sdkVersion,
28366
- optimizerVersion: "1.1.43",
28386
+ optimizerVersion: "1.1.45",
28367
28387
  ...Object.fromEntries(
28368
28388
  configOptionsToCheck.map((option) => [option, config[option]])
28369
28389
  )
@@ -28551,7 +28571,8 @@ var init_optimizer = (0, import_chunk_ABYVSU2C.__esm)({
28551
28571
  "extensionVersion",
28552
28572
  "typeCheckLevel",
28553
28573
  "covarianceWarnings",
28554
- "iterateOptimizer"
28574
+ "iterateOptimizer",
28575
+ "extraExcludes"
28555
28576
  ];
28556
28577
  }
28557
28578
  });
@@ -18,28 +18,28 @@ 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: () => import_chunk_SNXXTHNE.StateNodeAttributes,
22
- buildOptimizedProject: () => import_chunk_SNXXTHNE.buildOptimizedProject,
21
+ StateNodeAttributes: () => import_chunk_CYZJPYWZ.StateNodeAttributes,
22
+ buildOptimizedProject: () => import_chunk_CYZJPYWZ.buildOptimizedProject,
23
23
  copyRecursiveAsNeeded: () => import_chunk_SG7ODKRM.copyRecursiveAsNeeded,
24
- defaultConfig: () => import_chunk_SNXXTHNE.defaultConfig,
25
- display: () => import_chunk_SNXXTHNE.display,
26
- generateOneConfig: () => import_chunk_SNXXTHNE.generateOneConfig,
27
- generateOptimizedProject: () => import_chunk_SNXXTHNE.generateOptimizedProject,
28
- getConfig: () => import_chunk_SNXXTHNE.getConfig,
29
- getProjectAnalysis: () => import_chunk_SNXXTHNE.getProjectAnalysis,
30
- get_jungle: () => import_chunk_SNXXTHNE.get_jungle,
31
- isErrorWithLocation: () => import_chunk_SNXXTHNE.isErrorWithLocation,
32
- launchSimulator: () => import_chunk_SNXXTHNE.launchSimulator,
33
- manifestProducts: () => import_chunk_SNXXTHNE.manifestProducts,
34
- mctree: () => import_chunk_SNXXTHNE.mctree,
35
- simulateProgram: () => import_chunk_SNXXTHNE.simulateProgram
24
+ defaultConfig: () => import_chunk_CYZJPYWZ.defaultConfig,
25
+ display: () => import_chunk_CYZJPYWZ.display,
26
+ generateOneConfig: () => import_chunk_CYZJPYWZ.generateOneConfig,
27
+ generateOptimizedProject: () => import_chunk_CYZJPYWZ.generateOptimizedProject,
28
+ getConfig: () => import_chunk_CYZJPYWZ.getConfig,
29
+ getProjectAnalysis: () => import_chunk_CYZJPYWZ.getProjectAnalysis,
30
+ get_jungle: () => import_chunk_CYZJPYWZ.get_jungle,
31
+ isErrorWithLocation: () => import_chunk_CYZJPYWZ.isErrorWithLocation,
32
+ launchSimulator: () => import_chunk_CYZJPYWZ.launchSimulator,
33
+ manifestProducts: () => import_chunk_CYZJPYWZ.manifestProducts,
34
+ mctree: () => import_chunk_CYZJPYWZ.mctree,
35
+ simulateProgram: () => import_chunk_CYZJPYWZ.simulateProgram
36
36
  });
37
37
  module.exports = __toCommonJS(optimizer_exports);
38
- var import_chunk_SNXXTHNE = require("./chunk-SNXXTHNE.cjs");
38
+ var import_chunk_CYZJPYWZ = require("./chunk-CYZJPYWZ.cjs");
39
39
  var import_chunk_SG7ODKRM = require("./chunk-SG7ODKRM.cjs");
40
40
  var import_chunk_MBTLUWXR = require("./chunk-MBTLUWXR.cjs");
41
41
  var import_chunk_ABYVSU2C = require("./chunk-ABYVSU2C.cjs");
42
- (0, import_chunk_SNXXTHNE.init_optimizer)();
42
+ (0, import_chunk_CYZJPYWZ.init_optimizer)();
43
43
  // Annotate the CommonJS export names for ESM import in node:
44
44
  0 && (module.exports = {
45
45
  StateNodeAttributes,
@@ -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: () => import_chunk_SNXXTHNE.SectionKinds,
22
- appSupport: () => import_chunk_SNXXTHNE.appSupport,
23
- connectiq: () => import_chunk_SNXXTHNE.connectiq,
24
- getDeviceInfo: () => import_chunk_SNXXTHNE.getDeviceInfo,
25
- getFunctionDocumentation: () => import_chunk_SNXXTHNE.getFunctionDocumentation,
26
- getLanguages: () => import_chunk_SNXXTHNE.getLanguages,
27
- getSdkPath: () => import_chunk_SNXXTHNE.getSdkPath,
28
- isWin: () => import_chunk_SNXXTHNE.isWin,
29
- optimizeProgram: () => import_chunk_SNXXTHNE.optimizeProgram,
30
- readPrg: () => import_chunk_SNXXTHNE.readPrg,
31
- readPrgWithOffsets: () => import_chunk_SNXXTHNE.readPrgWithOffsets,
32
- xmlUtil: () => import_chunk_SNXXTHNE.xml_util_exports
21
+ SectionKinds: () => import_chunk_CYZJPYWZ.SectionKinds,
22
+ appSupport: () => import_chunk_CYZJPYWZ.appSupport,
23
+ connectiq: () => import_chunk_CYZJPYWZ.connectiq,
24
+ getDeviceInfo: () => import_chunk_CYZJPYWZ.getDeviceInfo,
25
+ getFunctionDocumentation: () => import_chunk_CYZJPYWZ.getFunctionDocumentation,
26
+ getLanguages: () => import_chunk_CYZJPYWZ.getLanguages,
27
+ getSdkPath: () => import_chunk_CYZJPYWZ.getSdkPath,
28
+ isWin: () => import_chunk_CYZJPYWZ.isWin,
29
+ optimizeProgram: () => import_chunk_CYZJPYWZ.optimizeProgram,
30
+ readPrg: () => import_chunk_CYZJPYWZ.readPrg,
31
+ readPrgWithOffsets: () => import_chunk_CYZJPYWZ.readPrgWithOffsets,
32
+ xmlUtil: () => import_chunk_CYZJPYWZ.xml_util_exports
33
33
  });
34
34
  module.exports = __toCommonJS(sdk_util_exports);
35
- var import_chunk_SNXXTHNE = require("./chunk-SNXXTHNE.cjs");
35
+ var import_chunk_CYZJPYWZ = require("./chunk-CYZJPYWZ.cjs");
36
36
  var import_chunk_SG7ODKRM = require("./chunk-SG7ODKRM.cjs");
37
37
  var import_chunk_MBTLUWXR = require("./chunk-MBTLUWXR.cjs");
38
38
  var import_chunk_ABYVSU2C = require("./chunk-ABYVSU2C.cjs");
39
- (0, import_chunk_SNXXTHNE.init_sdk_util)();
39
+ (0, import_chunk_CYZJPYWZ.init_sdk_util)();
40
40
  // Annotate the CommonJS export names for ESM import in node:
41
41
  0 && (module.exports = {
42
42
  SectionKinds,
@@ -34,7 +34,7 @@ export declare function createDocumentationMap(functionDocumentation: {
34
34
  parent: string;
35
35
  doc: string;
36
36
  }[]): Promise<Map<string, string>>;
37
- export declare function makeToyboxLink(result: StateNodeDecl): string | null;
37
+ export declare function makeToyboxLink(result: StateNodeDecl, root?: string): string | null;
38
38
  export declare function lookupByFullName(state: ProgramState, fullName: string): StateNodeDecl[];
39
39
  export declare function findUsingForNode(state: ProgramStateLive, stack: ProgramStateStack, i: number, node: mctree.Identifier): ModuleStateNode | {
40
40
  name: string;
@@ -23,6 +23,7 @@ export type BuildConfig = {
23
23
  skipOptimization?: boolean;
24
24
  checkManifest?: boolean;
25
25
  device?: string;
26
+ extraExcludes?: string;
26
27
  ignoredExcludeAnnotations?: string;
27
28
  ignoredAnnotations?: string;
28
29
  ignoredSourcePaths?: string;
@@ -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 import_chunk_SNXXTHNE = require("./chunk-SNXXTHNE.cjs");
24
+ var import_chunk_CYZJPYWZ = require("./chunk-CYZJPYWZ.cjs");
25
25
  var import_chunk_SG7ODKRM = require("./chunk-SG7ODKRM.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, import_chunk_SNXXTHNE.init_worker_task)();
31
+ (0, import_chunk_CYZJPYWZ.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, import_chunk_SNXXTHNE.performTask)(task));
34
+ return import_node_worker_threads.parentPort.postMessage(await (0, import_chunk_CYZJPYWZ.performTask)(task));
35
35
  });
36
36
  }
37
37
  }
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@markw65/monkeyc-optimizer",
3
3
  "type": "commonjs",
4
- "version": "1.1.43",
4
+ "version": "1.1.45",
5
5
  "description": "Source to source optimizer for Garmin Monkey C code",
6
6
  "main": "build/optimizer.cjs",
7
7
  "types": "build/src/optimizer.d.ts",