skir 1.2.4 → 1.2.5

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 (96) hide show
  1. package/dist/config_parser.d.ts.map +1 -1
  2. package/dist/module_collector.d.ts.map +1 -1
  3. package/package.json +5 -3
  4. package/src/config_parser.ts +4 -1
  5. package/src/module_collector.ts +18 -20
  6. package/src/project_initializer.ts +18 -0
  7. package/dist/casing.d.ts +0 -5
  8. package/dist/casing.js +0 -23
  9. package/dist/casing.js.map +0 -1
  10. package/dist/command_line_parser.d.ts +0 -36
  11. package/dist/command_line_parser.d.ts.map +0 -1
  12. package/dist/command_line_parser.js +0 -240
  13. package/dist/command_line_parser.js.map +0 -1
  14. package/dist/compatibility_checker.d.ts +0 -74
  15. package/dist/compatibility_checker.js +0 -331
  16. package/dist/compatibility_checker.js.map +0 -1
  17. package/dist/compiler.d.ts +0 -3
  18. package/dist/compiler.js +0 -406
  19. package/dist/compiler.js.map +0 -1
  20. package/dist/completion_helper.d.ts +0 -27
  21. package/dist/completion_helper.js +0 -101
  22. package/dist/completion_helper.js.map +0 -1
  23. package/dist/config.d.ts +0 -18
  24. package/dist/config.js +0 -19
  25. package/dist/config.js.map +0 -1
  26. package/dist/config_parser.d.ts +0 -34
  27. package/dist/config_parser.js +0 -214
  28. package/dist/config_parser.js.map +0 -1
  29. package/dist/definition_finder.d.ts +0 -16
  30. package/dist/definition_finder.js +0 -375
  31. package/dist/definition_finder.js.map +0 -1
  32. package/dist/dependency_manager.d.ts +0 -14
  33. package/dist/dependency_manager.js +0 -109
  34. package/dist/dependency_manager.js.map +0 -1
  35. package/dist/doc_comment_parser.d.ts +0 -6
  36. package/dist/doc_comment_parser.js +0 -269
  37. package/dist/doc_comment_parser.js.map +0 -1
  38. package/dist/doc_reference_resolver.d.ts +0 -5
  39. package/dist/doc_reference_resolver.js +0 -232
  40. package/dist/doc_reference_resolver.js.map +0 -1
  41. package/dist/error_renderer.d.ts +0 -24
  42. package/dist/error_renderer.js +0 -326
  43. package/dist/error_renderer.js.map +0 -1
  44. package/dist/exit_error.d.ts +0 -8
  45. package/dist/exit_error.d.ts.map +0 -1
  46. package/dist/exit_error.js +0 -8
  47. package/dist/exit_error.js.map +0 -1
  48. package/dist/expected_names.d.ts +0 -11
  49. package/dist/expected_names.js +0 -34
  50. package/dist/expected_names.js.map +0 -1
  51. package/dist/formatter.d.ts +0 -28
  52. package/dist/formatter.js +0 -338
  53. package/dist/formatter.js.map +0 -1
  54. package/dist/get_dependencies_flow.d.ts +0 -40
  55. package/dist/get_dependencies_flow.js +0 -177
  56. package/dist/get_dependencies_flow.js.map +0 -1
  57. package/dist/import_block_formatter.d.ts +0 -3
  58. package/dist/import_block_formatter.js +0 -36
  59. package/dist/import_block_formatter.js.map +0 -1
  60. package/dist/index.d.ts +0 -2
  61. package/dist/index.d.ts.map +0 -1
  62. package/dist/index.js +0 -2
  63. package/dist/index.js.map +0 -1
  64. package/dist/io.d.ts +0 -23
  65. package/dist/io.d.ts.map +0 -1
  66. package/dist/io.js +0 -58
  67. package/dist/io.js.map +0 -1
  68. package/dist/literals.d.ts +0 -12
  69. package/dist/literals.js +0 -96
  70. package/dist/literals.js.map +0 -1
  71. package/dist/module_collector.d.ts +0 -9
  72. package/dist/module_collector.js +0 -75
  73. package/dist/module_collector.js.map +0 -1
  74. package/dist/module_set.d.ts +0 -51
  75. package/dist/module_set.js +0 -1331
  76. package/dist/module_set.js.map +0 -1
  77. package/dist/package_downloader.d.ts +0 -4
  78. package/dist/package_downloader.js +0 -256
  79. package/dist/package_downloader.js.map +0 -1
  80. package/dist/package_types.d.ts +0 -30
  81. package/dist/package_types.d.ts.map +0 -1
  82. package/dist/package_types.js +0 -2
  83. package/dist/package_types.js.map +0 -1
  84. package/dist/parser.d.ts +0 -7
  85. package/dist/parser.js +0 -1335
  86. package/dist/parser.js.map +0 -1
  87. package/dist/project_initializer.d.ts +0 -2
  88. package/dist/project_initializer.d.ts.map +0 -1
  89. package/dist/project_initializer.js +0 -189
  90. package/dist/project_initializer.js.map +0 -1
  91. package/dist/snapshotter.d.ts +0 -16
  92. package/dist/snapshotter.js +0 -263
  93. package/dist/snapshotter.js.map +0 -1
  94. package/dist/tokenizer.d.ts +0 -18
  95. package/dist/tokenizer.js +0 -244
  96. package/dist/tokenizer.js.map +0 -1
package/dist/io.d.ts DELETED
@@ -1,23 +0,0 @@
1
- export interface FileReader {
2
- readTextFile(path: string): string | undefined;
3
- }
4
- export interface FileWriter {
5
- writeTextFile(path: string, contents: string): void;
6
- }
7
- export interface AsyncFileReader {
8
- readTextFileAsync(path: string): Promise<string | undefined>;
9
- }
10
- export interface AsyncFileWriter {
11
- writeTextFileAsync(path: string, contents: string): Promise<void>;
12
- }
13
- declare class RealFileSystem implements FileReader, FileWriter, AsyncFileReader, AsyncFileWriter {
14
- readTextFile(path: string): string | undefined;
15
- writeTextFile(path: string, contents: string): void;
16
- readTextFileAsync(path: string): Promise<string | undefined>;
17
- writeTextFileAsync(path: string, contents: string): Promise<void>;
18
- }
19
- export declare const REAL_FILE_SYSTEM: RealFileSystem;
20
- export declare function isDirectory(path: string): Promise<boolean>;
21
- export declare function rewritePathForRendering(path: string): string;
22
- export {};
23
- //# sourceMappingURL=io.d.ts.map
package/dist/io.d.ts.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"io.d.ts","sourceRoot":"","sources":["../src/io.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,UAAU;IACzB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC;CAChD;AAED,MAAM,WAAW,UAAU;IACzB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;CACrD;AAED,MAAM,WAAW,eAAe;IAC9B,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;CAC9D;AAED,MAAM,WAAW,eAAe;IAC9B,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACnE;AAED,cAAM,cACJ,YAAW,UAAU,EAAE,UAAU,EAAE,eAAe,EAAE,eAAe;IAEnE,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAgB9C,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI;IAI7C,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;IAgB5D,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAGxE;AAED,eAAO,MAAM,gBAAgB,gBAAuB,CAAC;AAErD,wBAAsB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAMhE;AAED,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAO5D"}
package/dist/io.js DELETED
@@ -1,58 +0,0 @@
1
- import * as FileSystem from "fs";
2
- import * as FileSystemPromises from "fs/promises";
3
- import * as Paths from "path";
4
- class RealFileSystem {
5
- readTextFile(path) {
6
- try {
7
- return FileSystem.readFileSync(path, "utf-8");
8
- }
9
- catch (error) {
10
- if (error &&
11
- typeof error === "object" &&
12
- "code" in error &&
13
- error.code === "ENOENT") {
14
- return undefined;
15
- }
16
- throw error;
17
- }
18
- }
19
- writeTextFile(path, contents) {
20
- FileSystem.writeFileSync(path, contents, "utf-8");
21
- }
22
- async readTextFileAsync(path) {
23
- try {
24
- return await FileSystemPromises.readFile(path, "utf-8");
25
- }
26
- catch (error) {
27
- if (error &&
28
- typeof error === "object" &&
29
- "code" in error &&
30
- error.code === "ENOENT") {
31
- return undefined;
32
- }
33
- throw error;
34
- }
35
- }
36
- async writeTextFileAsync(path, contents) {
37
- await FileSystemPromises.writeFile(path, contents, "utf-8");
38
- }
39
- }
40
- export const REAL_FILE_SYSTEM = new RealFileSystem();
41
- export async function isDirectory(path) {
42
- try {
43
- return (await FileSystemPromises.lstat(path)).isDirectory();
44
- }
45
- catch (_e) {
46
- return false;
47
- }
48
- }
49
- export function rewritePathForRendering(path) {
50
- if (Paths.isAbsolute(path) || /^\.{1,2}[/\\]$/.test(path)) {
51
- return path;
52
- }
53
- else {
54
- // To make it clear that it's a path, prepend "./"
55
- return `.${Paths.sep}${path}`;
56
- }
57
- }
58
- //# sourceMappingURL=io.js.map
package/dist/io.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"io.js","sourceRoot":"","sources":["../src/io.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,UAAU,MAAM,IAAI,CAAC;AACjC,OAAO,KAAK,kBAAkB,MAAM,aAAa,CAAC;AAClD,OAAO,KAAK,KAAK,MAAM,MAAM,CAAC;AAkB9B,MAAM,cAAc;IAGlB,YAAY,CAAC,IAAY;QACvB,IAAI,CAAC;YACH,OAAO,UAAU,CAAC,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QAChD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IACE,KAAK;gBACL,OAAO,KAAK,KAAK,QAAQ;gBACzB,MAAM,IAAI,KAAK;gBACf,KAAK,CAAC,IAAI,KAAK,QAAQ,EACvB,CAAC;gBACD,OAAO,SAAS,CAAC;YACnB,CAAC;YACD,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IAED,aAAa,CAAC,IAAY,EAAE,QAAgB;QAC1C,UAAU,CAAC,aAAa,CAAC,IAAI,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;IACpD,CAAC;IAED,KAAK,CAAC,iBAAiB,CAAC,IAAY;QAClC,IAAI,CAAC;YACH,OAAO,MAAM,kBAAkB,CAAC,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QAC1D,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IACE,KAAK;gBACL,OAAO,KAAK,KAAK,QAAQ;gBACzB,MAAM,IAAI,KAAK;gBACf,KAAK,CAAC,IAAI,KAAK,QAAQ,EACvB,CAAC;gBACD,OAAO,SAAS,CAAC;YACnB,CAAC;YACD,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IAED,KAAK,CAAC,kBAAkB,CAAC,IAAY,EAAE,QAAgB;QACrD,MAAM,kBAAkB,CAAC,SAAS,CAAC,IAAI,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;IAC9D,CAAC;CACF;AAED,MAAM,CAAC,MAAM,gBAAgB,GAAG,IAAI,cAAc,EAAE,CAAC;AAErD,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,IAAY;IAC5C,IAAI,CAAC;QACH,OAAO,CAAC,MAAM,kBAAkB,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;IAC9D,CAAC;IAAC,OAAO,EAAE,EAAE,CAAC;QACZ,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED,MAAM,UAAU,uBAAuB,CAAC,IAAY;IAClD,IAAI,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QAC1D,OAAO,IAAI,CAAC;IACd,CAAC;SAAM,CAAC;QACN,kDAAkD;QAClD,OAAO,IAAI,KAAK,CAAC,GAAG,GAAG,IAAI,EAAE,CAAC;IAChC,CAAC;AACH,CAAC"}
@@ -1,12 +0,0 @@
1
- import { type DenseJson, type Primitive } from "skir-internal";
2
- export declare function valueHasPrimitiveType(token: string, expectedType: Primitive): boolean;
3
- export declare function isStringLiteral(token: string): boolean;
4
- export declare function literalValueToDenseJson(token: string, type: Primitive): DenseJson;
5
- /**
6
- * Assuming `token` is a literal value of primitive type, returns a string which
7
- * uniquely identifies the value within the primitive type. The behavior is
8
- * undefined if `token` does not match `type`.
9
- * Use this function to check if two literal values are actually equal.
10
- */
11
- export declare function literalValueToIdentity(token: string, type: Primitive): string;
12
- //# sourceMappingURL=literals.d.ts.map
package/dist/literals.js DELETED
@@ -1,96 +0,0 @@
1
- import { unquoteAndUnescape, } from "skir-internal";
2
- export function valueHasPrimitiveType(token, expectedType) {
3
- switch (expectedType) {
4
- case "bool":
5
- return token === "false" || token === "true";
6
- case "bytes":
7
- return (isStringLiteral(token) &&
8
- /^hex:([0-9A-Fa-f]{2})*$/.test(unquoteAndUnescape(token)));
9
- case "timestamp": {
10
- if (!isStringLiteral(token)) {
11
- return false;
12
- }
13
- const dateTime = unquoteAndUnescape(token);
14
- const timestamp = Date.parse(dateTime).valueOf();
15
- return (
16
- // A timezone is required.
17
- /(Z|[+-]\d\d:\d\d)$/.test(dateTime) &&
18
- -8640000000000000 <= timestamp &&
19
- timestamp <= 8640000000000000 &&
20
- timestamp === Math.round(timestamp));
21
- }
22
- case "int32":
23
- return isIntLiteral(token, BigInt(-2147483648), BigInt(2147483647));
24
- case "int64":
25
- return isIntLiteral(token, BigInt("-9223372036854775808"), BigInt("9223372036854775807"));
26
- case "hash64":
27
- return isIntLiteral(token, BigInt(0), BigInt("18446744073709551615"));
28
- case "float32":
29
- case "float64": {
30
- if (isStringLiteral(token)) {
31
- const stringLiteral = unquoteAndUnescape(token);
32
- return (stringLiteral === "NaN" ||
33
- stringLiteral === "Infinity" ||
34
- stringLiteral === "-Infinity");
35
- }
36
- else {
37
- return /^[-0-9]/.test(token);
38
- }
39
- }
40
- case "string":
41
- return isStringLiteral(token);
42
- }
43
- }
44
- export function isStringLiteral(token) {
45
- return /^['"]/.test(token);
46
- }
47
- function isIntLiteral(token, min, max) {
48
- if (!/^-?[0-9]+$/.test(token)) {
49
- return false;
50
- }
51
- const value = BigInt(token);
52
- return min <= value && value <= max;
53
- }
54
- export function literalValueToDenseJson(token, type) {
55
- switch (type) {
56
- case "bool":
57
- return token === "true" ? 1 : 0;
58
- case "bytes": {
59
- const string = unquoteAndUnescape(token);
60
- return hexToBase64(string.substring(4));
61
- }
62
- case "timestamp": {
63
- const dateTime = unquoteAndUnescape(token);
64
- return Math.round(new Date(dateTime).valueOf());
65
- }
66
- case "int32":
67
- case "float32":
68
- case "float64": {
69
- return isStringLiteral(token) ? unquoteAndUnescape(token) : Number(token);
70
- }
71
- case "int64":
72
- case "hash64":
73
- return String(BigInt(token));
74
- case "string":
75
- return unquoteAndUnescape(token);
76
- }
77
- }
78
- /**
79
- * Assuming `token` is a literal value of primitive type, returns a string which
80
- * uniquely identifies the value within the primitive type. The behavior is
81
- * undefined if `token` does not match `type`.
82
- * Use this function to check if two literal values are actually equal.
83
- */
84
- export function literalValueToIdentity(token, type) {
85
- const denseJson = literalValueToDenseJson(token, type);
86
- return typeof denseJson === "string" ? denseJson : JSON.stringify(denseJson);
87
- }
88
- function hexToBase64(hex) {
89
- const bytes = new Uint8Array(hex.length / 2);
90
- for (let i = 0; i < hex.length; i += 2) {
91
- bytes[i / 2] = parseInt(hex.slice(i, i + 2), 16);
92
- }
93
- const binaryString = Array.from(bytes, (byte) => String.fromCharCode(byte)).join("");
94
- return btoa(binaryString);
95
- }
96
- //# sourceMappingURL=literals.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"literals.js","sourceRoot":"","sources":["../src/literals.ts"],"names":[],"mappings":"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"}
@@ -1,9 +0,0 @@
1
- import { ModuleSet } from "./module_set.js";
2
- export declare function collectModules(srcDir: string, dependencies: ModuleSet, cache?: ModuleSet): Promise<ModuleSet>;
3
- export interface EditableModule {
4
- readonly fullPath: string;
5
- readonly modulePath: string;
6
- readonly content: string;
7
- }
8
- export declare function collectEditableModules(srcDir: string): Promise<ReadonlyArray<EditableModule>>;
9
- //# sourceMappingURL=module_collector.d.ts.map
@@ -1,75 +0,0 @@
1
- import { glob } from "glob";
2
- import * as Paths from "path";
3
- import { ExitError } from "./exit_error.js";
4
- import { isDirectory, REAL_FILE_SYSTEM, rewritePathForRendering, } from "./io.js";
5
- import { ModuleSet } from "./module_set.js";
6
- export async function collectModules(srcDir, dependencies, cache) {
7
- const modulePathToContent = new Map();
8
- for (const [modulePath, module] of dependencies.modules) {
9
- modulePathToContent.set(modulePath, module.result.sourceCode);
10
- }
11
- const editableModules = await collectEditableModules(srcDir);
12
- for (const { modulePath, content } of editableModules) {
13
- modulePathToContent.set(modulePath, content);
14
- }
15
- return ModuleSet.compile(modulePathToContent, cache ?? dependencies);
16
- }
17
- export async function collectEditableModules(srcDir) {
18
- const skirFiles = await glob(Paths.join(srcDir, "**/*.skir"), {
19
- withFileTypes: true,
20
- });
21
- if (skirFiles.length === 0) {
22
- const isDir = await isDirectory(srcDir);
23
- if (!isDir) {
24
- throw new ExitError("Source directory does not exist: " + rewritePathForRendering(srcDir));
25
- }
26
- }
27
- const result = [];
28
- for (const skirFile of skirFiles) {
29
- if (!skirFile.isFile) {
30
- continue;
31
- }
32
- const relativePath = //
33
- Paths.relative(srcDir, skirFile.fullpath()).replace(/\\/g, "/");
34
- validate(relativePath);
35
- const content = REAL_FILE_SYSTEM.readTextFile(skirFile.fullpath());
36
- if (content === undefined) {
37
- throw new ExitError("Cannot read " + rewritePathForRendering(skirFile.fullpath()));
38
- }
39
- result.push({
40
- fullPath: skirFile.fullpath(),
41
- modulePath: relativePath,
42
- content: content,
43
- });
44
- }
45
- return result;
46
- }
47
- function validate(relativePath) {
48
- const parts = relativePath.split("/");
49
- for (let i = 0; i < parts.length; i++) {
50
- const part = parts[i];
51
- const path = parts.slice(0, i + 1).join("/");
52
- if (i < parts.length - 1) {
53
- if (i === 0 && part === "external") {
54
- throw makeInvalidPathError(path, "directory", "cannot be 'external'");
55
- }
56
- else {
57
- const regex = /^[a-z_][a-z0-9_-]+$/;
58
- if (!regex.test(part)) {
59
- throw makeInvalidPathError(path, "directory", `must match ${regex.source}`);
60
- }
61
- }
62
- }
63
- else {
64
- const regex = /^[a-z_][a-z0-9_-]+\.skir$/;
65
- if (!regex.test(part)) {
66
- throw makeInvalidPathError(path, "file", `must match ${regex.source}`);
67
- }
68
- }
69
- }
70
- }
71
- function makeInvalidPathError(path, kind, info) {
72
- const message = `Invalid ${kind} name: skir-src/${path}; ${info}`;
73
- return new ExitError(message);
74
- }
75
- //# sourceMappingURL=module_collector.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"module_collector.js","sourceRoot":"","sources":["../src/module_collector.ts"],"names":[],"mappings":"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"}
@@ -1,51 +0,0 @@
1
- import { type Method, type Module, type RecordKey, type RecordLocation, type Result, type SkirError } from "skir-internal";
2
- /**
3
- * Result of compiling a set of modules. Immutable.
4
- *
5
- * Support incremental compilation by accepting an optional cache of the previous
6
- * module set. This cache can be used to avoid re-parsing and re-resolving
7
- * modules that haven't changed since the last compilation.
8
- */
9
- export declare class ModuleSet {
10
- private readonly modulePathToContent;
11
- private readonly parseMode;
12
- private readonly completionMode?;
13
- static compile(modulePathToContent: ReadonlyMap<string, string>, cache?: ModuleSet, parseMode?: "strict" | "lenient"): ModuleSet;
14
- static compileForCompletion(currentModulePath: string, currentPosition: number, modulePathToContent: ReadonlyMap<string, string>, cache?: ModuleSet): Result<Module>;
15
- constructor(modulePathToContent: ReadonlyMap<string, string>, cache: ModuleSet | undefined, parseMode: "strict" | "lenient", completionMode?: {
16
- readonly modulePath: string;
17
- readonly position: number;
18
- } | undefined);
19
- private parseAndResolve;
20
- /** Called by `parseAndResolve` when the module is not in the map already. */
21
- private doParseAndResolve;
22
- private storeResolvedFieldTypes;
23
- private storeFieldRecursivity;
24
- private collectTypeDeps;
25
- /**
26
- * Verifies that the `key` field of every array type found in `topLevelType`
27
- * is valid. Populates the `keyType` field of every field path.
28
- */
29
- private validateArrayKeys;
30
- private valueToDenseJson;
31
- private structValueToDenseJson;
32
- private enumValueToDenseJson;
33
- private getDefaultJson;
34
- finalize(): FinalizationResult;
35
- private cache;
36
- private readonly moduleBundles;
37
- private readonly registry;
38
- private readonly finalizationResult;
39
- findRecordByNumber(recordNumber: number): RecordLocation | undefined;
40
- findMethodByNumber(methodNumber: number): Method | undefined;
41
- get recordMap(): ReadonlyMap<RecordKey, RecordLocation>;
42
- get errors(): readonly SkirError[];
43
- get modules(): ReadonlyMap<string, Result<Module>>;
44
- }
45
- interface FinalizationResult {
46
- readonly modules: ReadonlyMap<string, Result<Module>>;
47
- /** Errors aggregated across all modules. */
48
- readonly errors: readonly SkirError[];
49
- }
50
- export {};
51
- //# sourceMappingURL=module_set.d.ts.map