brighterscript 0.43.1 → 0.44.0

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 (47) hide show
  1. package/CHANGELOG.md +14 -0
  2. package/dist/Cache.d.ts +3 -3
  3. package/dist/Cache.js +10 -6
  4. package/dist/Cache.js.map +1 -1
  5. package/dist/LanguageServer.d.ts +1 -6
  6. package/dist/PluginInterface.d.ts +3 -3
  7. package/dist/PluginInterface.js +3 -0
  8. package/dist/PluginInterface.js.map +1 -1
  9. package/dist/Program.d.ts +47 -18
  10. package/dist/Program.js +146 -81
  11. package/dist/Program.js.map +1 -1
  12. package/dist/Scope.d.ts +3 -3
  13. package/dist/Scope.js +4 -0
  14. package/dist/Scope.js.map +1 -1
  15. package/dist/bscPlugin/BscPlugin.js +5 -2
  16. package/dist/bscPlugin/BscPlugin.js.map +1 -1
  17. package/dist/bscPlugin/codeActions/CodeActionsProcessor.spec.js +2 -0
  18. package/dist/bscPlugin/codeActions/CodeActionsProcessor.spec.js.map +1 -1
  19. package/dist/bscPlugin/semanticTokens/BrsFileSemanticTokensProcessor.d.ts +8 -0
  20. package/dist/bscPlugin/semanticTokens/{SemanticTokensProcessor.js → BrsFileSemanticTokensProcessor.js} +8 -10
  21. package/dist/bscPlugin/semanticTokens/BrsFileSemanticTokensProcessor.js.map +1 -0
  22. package/dist/bscPlugin/semanticTokens/{SemanticTokensProcessor.spec.d.ts → BrsFileSemanticTokensProcessor.spec.d.ts} +0 -0
  23. package/dist/bscPlugin/semanticTokens/{SemanticTokensProcessor.spec.js → BrsFileSemanticTokensProcessor.spec.js} +2 -2
  24. package/dist/bscPlugin/semanticTokens/BrsFileSemanticTokensProcessor.spec.js.map +1 -0
  25. package/dist/files/BrsFile.d.ts +7 -2
  26. package/dist/files/BrsFile.js +11 -4
  27. package/dist/files/BrsFile.js.map +1 -1
  28. package/dist/files/BrsFile.spec.js +16 -12
  29. package/dist/files/BrsFile.spec.js.map +1 -1
  30. package/dist/files/XmlFile.d.ts +5 -0
  31. package/dist/files/XmlFile.js +6 -1
  32. package/dist/files/XmlFile.js.map +1 -1
  33. package/dist/files/XmlFile.spec.js +5 -3
  34. package/dist/files/XmlFile.spec.js.map +1 -1
  35. package/dist/interfaces.d.ts +24 -3
  36. package/dist/types/FunctionType.d.ts +2 -2
  37. package/dist/types/FunctionType.js +3 -3
  38. package/dist/types/FunctionType.js.map +1 -1
  39. package/dist/types/FunctionType.spec.js +2 -2
  40. package/dist/types/FunctionType.spec.js.map +1 -1
  41. package/dist/util.d.ts +12 -0
  42. package/dist/util.js +23 -0
  43. package/dist/util.js.map +1 -1
  44. package/package.json +1 -1
  45. package/dist/bscPlugin/semanticTokens/SemanticTokensProcessor.d.ts +0 -7
  46. package/dist/bscPlugin/semanticTokens/SemanticTokensProcessor.js.map +0 -1
  47. package/dist/bscPlugin/semanticTokens/SemanticTokensProcessor.spec.js.map +0 -1
package/CHANGELOG.md CHANGED
@@ -6,6 +6,20 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
6
6
 
7
7
 
8
8
 
9
+ ## [0.44.0](https://github.com/rokucommunity/brighterscript/compare/v0.43.1...v0.44.0) - 2022-02-08
10
+ ### Added
11
+ - `onScopeValidate` plugin event useful when plugins want to contribute scope validations ([#505](https://github.com/rokucommunity/brighterscript/pull/505))
12
+ ### Changed
13
+ - show plugin transpile modifications in the `getTranspiledFile` callback (used for "show preview" functionality in vscode) ([#502](https://github.com/rokucommunity/brighterscript/pull/502))
14
+ - make `Program.getFile` more flexible, and deprecate `Program.getFileByPkgPath`, `Program.getFileByPathAbsolute` ([#506](https://github.com/rokucommunity/brighterscript/pull/506))
15
+ - add `Program.getFiles` and deprecate `Program.getFilesByPkgPath` ([#506](https://github.com/rokucommunity/brighterscript/pull/506))
16
+ - move file validation plugin event emitting into `Program.validate()` which means you can't trigger those events by calling `File.validate()` anymore. ([#504](https://github.com/rokucommunity/brighterscript/pull/504))
17
+ - support generics for `Cache` class ([#503](https://github.com/rokucommunity/brighterscript/pull/503))
18
+ ### Fixed
19
+ - bug in hover showing required params as optional and optional params as required ([#501](https://github.com/rokucommunity/brighterscript/pull/501))
20
+
21
+
22
+
9
23
  ## [0.43.1](https://github.com/rokucommunity/brighterscript/compare/v0.43.0...v0.43.1) - 2022-01-28
10
24
  ### Fixed
11
25
  - crash when hovering over global functions ([#497](https://github.com/rokucommunity/brighterscript/pull/497))
package/dist/Cache.d.ts CHANGED
@@ -1,13 +1,13 @@
1
1
  /**
2
- * Synchronous cache
2
+ * A cache that will call the factory to create the item if it doesn't exist
3
3
  */
4
- export declare class Cache {
4
+ export declare class Cache<TKey = any, TValue = any> {
5
5
  private cache;
6
6
  /**
7
7
  * Get value from the cache if it exists,
8
8
  * otherwise call the factory function to create the value, add it to the cache, and return it.
9
9
  */
10
- getOrAdd<T>(key: string, factory: (key: string) => T): T;
10
+ getOrAdd<K extends TKey, T extends TValue>(key: K, factory: (key: K) => T): T;
11
11
  /**
12
12
  * Clear the cache
13
13
  */
package/dist/Cache.js CHANGED
@@ -2,27 +2,31 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.Cache = void 0;
4
4
  /**
5
- * Synchronous cache
5
+ * A cache that will call the factory to create the item if it doesn't exist
6
6
  */
7
7
  class Cache {
8
8
  constructor() {
9
- this.cache = {};
9
+ this.cache = new Map();
10
10
  }
11
11
  /**
12
12
  * Get value from the cache if it exists,
13
13
  * otherwise call the factory function to create the value, add it to the cache, and return it.
14
14
  */
15
15
  getOrAdd(key, factory) {
16
- if (this.cache[key] === undefined) {
17
- this.cache[key] = factory(key);
16
+ if (!this.cache.has(key)) {
17
+ const value = factory(key);
18
+ this.cache.set(key, value);
19
+ return value;
20
+ }
21
+ else {
22
+ return this.cache.get(key);
18
23
  }
19
- return this.cache[key];
20
24
  }
21
25
  /**
22
26
  * Clear the cache
23
27
  */
24
28
  clear() {
25
- this.cache = {};
29
+ this.cache.clear();
26
30
  }
27
31
  }
28
32
  exports.Cache = Cache;
package/dist/Cache.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"Cache.js","sourceRoot":"","sources":["../src/Cache.ts"],"names":[],"mappings":";;;AAAA;;GAEG;AACH,MAAa,KAAK;IAAlB;QACY,UAAK,GAAG,EAAyB,CAAC;IAkB9C,CAAC;IAhBG;;;OAGG;IACI,QAAQ,CAAI,GAAW,EAAE,OAA2B;QACvD,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,SAAS,EAAE;YAC/B,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;SAClC;QACD,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAM,CAAC;IAChC,CAAC;IACD;;OAEG;IACI,KAAK;QACR,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;IACpB,CAAC;CACJ;AAnBD,sBAmBC"}
1
+ {"version":3,"file":"Cache.js","sourceRoot":"","sources":["../src/Cache.ts"],"names":[],"mappings":";;;AAAA;;GAEG;AACH,MAAa,KAAK;IAAlB;QACY,UAAK,GAAG,IAAI,GAAG,EAAgB,CAAC;IAqB5C,CAAC;IAnBG;;;OAGG;IACI,QAAQ,CAAmC,GAAM,EAAE,OAAsB;QAC5E,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;YACtB,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;YAC3B,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;YAC3B,OAAO,KAAK,CAAC;SAChB;aAAM;YACH,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAM,CAAC;SACnC;IACL,CAAC;IACD;;OAEG;IACI,KAAK;QACR,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;IACvB,CAAC;CACJ;AAtBD,sBAsBC"}
@@ -130,12 +130,7 @@ export declare class LanguageServer {
130
130
  private onFullSemanticTokens;
131
131
  private diagnosticCollection;
132
132
  private sendDiagnostics;
133
- onExecuteCommand(params: ExecuteCommandParams): Promise<{
134
- pathAbsolute: string;
135
- pkgPath: string;
136
- code: string;
137
- map: import("source-map").SourceMapGenerator;
138
- }>;
133
+ onExecuteCommand(params: ExecuteCommandParams): Promise<import("./Program").FileTranspileResult>;
139
134
  private transpileFile;
140
135
  dispose(): void;
141
136
  }
@@ -12,11 +12,11 @@ export default class PluginInterface<T extends CompilerPlugin = CompilerPlugin>
12
12
  /**
13
13
  * Add a plugin to the beginning of the list of plugins
14
14
  */
15
- addFirst(plugin: CompilerPlugin): void;
15
+ addFirst<T extends CompilerPlugin = CompilerPlugin>(plugin: T): T;
16
16
  /**
17
17
  * Add a plugin to the end of the list of plugins
18
18
  */
19
- add(plugin: CompilerPlugin): void;
19
+ add<T extends CompilerPlugin = CompilerPlugin>(plugin: T): T;
20
20
  has(plugin: CompilerPlugin): boolean;
21
- remove(plugin: CompilerPlugin): void;
21
+ remove<T extends CompilerPlugin = CompilerPlugin>(plugin: T): T;
22
22
  }
@@ -30,6 +30,7 @@ class PluginInterface {
30
30
  if (!this.has(plugin)) {
31
31
  this.plugins.unshift(plugin);
32
32
  }
33
+ return plugin;
33
34
  }
34
35
  /**
35
36
  * Add a plugin to the end of the list of plugins
@@ -38,6 +39,7 @@ class PluginInterface {
38
39
  if (!this.has(plugin)) {
39
40
  this.plugins.push(plugin);
40
41
  }
42
+ return plugin;
41
43
  }
42
44
  has(plugin) {
43
45
  return this.plugins.includes(plugin);
@@ -46,6 +48,7 @@ class PluginInterface {
46
48
  if (this.has(plugin)) {
47
49
  this.plugins.splice(this.plugins.indexOf(plugin));
48
50
  }
51
+ return plugin;
49
52
  }
50
53
  }
51
54
  exports.default = PluginInterface;
@@ -1 +1 @@
1
- {"version":3,"file":"PluginInterface.js","sourceRoot":"","sources":["../src/PluginInterface.ts"],"names":[],"mappings":";;AAEA,qCAAoC;AAOpC,MAAqB,eAAe;IAEhC,YACY,OAAyB,EACzB,MAAc;QADd,YAAO,GAAP,OAAO,CAAkB;QACzB,WAAM,GAAN,MAAM,CAAQ;IACtB,CAAC;IAEL;;OAEG;IACI,IAAI,CAA6B,KAAQ,EAAE,GAAG,IAAqB;QACtE,KAAK,IAAI,MAAM,IAAI,IAAI,CAAC,OAAO,EAAE;YAC7B,IAAK,MAAc,CAAC,KAAK,CAAC,EAAE;gBACxB,IAAI;oBACA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,iBAAQ,CAAC,KAAK,EAAE,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,GAAG,EAAE;wBACvD,MAAc,CAAC,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;oBACpC,CAAC,CAAC,CAAC;iBACN;gBAAC,OAAO,GAAG,EAAE;oBACV,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,6BAA6B,MAAM,CAAC,IAAI,IAAI,KAAK,GAAG,EAAE,GAAG,CAAC,CAAC;iBAChF;aACJ;SACJ;IACL,CAAC;IAED;;OAEG;IACI,QAAQ,CAAC,MAAsB;QAClC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE;YACnB,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;SAChC;IACL,CAAC;IAED;;OAEG;IACI,GAAG,CAAC,MAAsB;QAC7B,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE;YACnB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;SAC7B;IACL,CAAC;IAEM,GAAG,CAAC,MAAsB;QAC7B,OAAO,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IACzC,CAAC;IAEM,MAAM,CAAC,MAAsB;QAChC,IAAI,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE;YAClB,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;SACrD;IACL,CAAC;CACJ;AAnDD,kCAmDC"}
1
+ {"version":3,"file":"PluginInterface.js","sourceRoot":"","sources":["../src/PluginInterface.ts"],"names":[],"mappings":";;AAEA,qCAAoC;AAOpC,MAAqB,eAAe;IAEhC,YACY,OAAyB,EACzB,MAAc;QADd,YAAO,GAAP,OAAO,CAAkB;QACzB,WAAM,GAAN,MAAM,CAAQ;IACtB,CAAC;IAEL;;OAEG;IACI,IAAI,CAA6B,KAAQ,EAAE,GAAG,IAAqB;QACtE,KAAK,IAAI,MAAM,IAAI,IAAI,CAAC,OAAO,EAAE;YAC7B,IAAK,MAAc,CAAC,KAAK,CAAC,EAAE;gBACxB,IAAI;oBACA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,iBAAQ,CAAC,KAAK,EAAE,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,GAAG,EAAE;wBACvD,MAAc,CAAC,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;oBACpC,CAAC,CAAC,CAAC;iBACN;gBAAC,OAAO,GAAG,EAAE;oBACV,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,6BAA6B,MAAM,CAAC,IAAI,IAAI,KAAK,GAAG,EAAE,GAAG,CAAC,CAAC;iBAChF;aACJ;SACJ;IACL,CAAC;IAED;;OAEG;IACI,QAAQ,CAA4C,MAAS;QAChE,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE;YACnB,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;SAChC;QACD,OAAO,MAAM,CAAC;IAClB,CAAC;IAED;;OAEG;IACI,GAAG,CAA4C,MAAS;QAC3D,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE;YACnB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;SAC7B;QACD,OAAO,MAAM,CAAC;IAClB,CAAC;IAEM,GAAG,CAAC,MAAsB;QAC7B,OAAO,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IACzC,CAAC;IAEM,MAAM,CAA4C,MAAS;QAC9D,IAAI,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE;YAClB,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;SACrD;QACD,OAAO,MAAM,CAAC;IAClB,CAAC;CACJ;AAtDD,kCAsDC"}
package/dist/Program.d.ts CHANGED
@@ -4,12 +4,13 @@ import type { BsConfig } from './BsConfig';
4
4
  import { Scope } from './Scope';
5
5
  import { BrsFile } from './files/BrsFile';
6
6
  import { XmlFile } from './files/XmlFile';
7
- import type { BsDiagnostic, File, FileReference, FileObj, BscFile, SemanticToken } from './interfaces';
7
+ import type { BsDiagnostic, File, FileReference, FileObj, BscFile, SemanticToken, FileLink } from './interfaces';
8
8
  import { XmlScope } from './XmlScope';
9
9
  import { Logger } from './Logger';
10
10
  import type { ManifestValue } from './preprocessor/Manifest';
11
11
  import PluginInterface from './PluginInterface';
12
12
  import type { FunctionStatement, Statement } from './parser/Statement';
13
+ import type { SourceMapGenerator } from 'source-map';
13
14
  export interface SourceObj {
14
15
  pathAbsolute: string;
15
16
  source: string;
@@ -24,10 +25,6 @@ export interface SignatureInfoObj {
24
25
  key: string;
25
26
  signature: SignatureInformation;
26
27
  }
27
- export interface FileLink<T> {
28
- item: T;
29
- file: BrsFile;
30
- }
31
28
  export declare class Program {
32
29
  /**
33
30
  * The root directory for this program
@@ -116,8 +113,9 @@ export declare class Program {
116
113
  /**
117
114
  * Determine if the specified file is loaded in this program right now.
118
115
  * @param filePath
116
+ * @param normalizePath should the provided path be normalized before use
119
117
  */
120
- hasFile(filePath: string): boolean;
118
+ hasFile(filePath: string, normalizePath?: boolean): boolean;
121
119
  getPkgPath(...args: any[]): any;
122
120
  /**
123
121
  * roku filesystem is case INsensitive, so find the scope by key case insensitive
@@ -132,6 +130,14 @@ export declare class Program {
132
130
  * Find the scope for the specified component
133
131
  */
134
132
  getComponentScope(componentName: string): XmlScope;
133
+ /**
134
+ * Update internal maps with this file reference
135
+ */
136
+ private assignFile;
137
+ /**
138
+ * Remove this file from internal maps
139
+ */
140
+ private unassignFile;
135
141
  /**
136
142
  * Load a file into the program. If that file already exists, it is replaced.
137
143
  * If file contents are provided, those are used, Otherwise, the file is loaded from the file system
@@ -155,28 +161,33 @@ export declare class Program {
155
161
  * Roku is a case insensitive file system. It is an error to have multiple files
156
162
  * with the same path with only case being different.
157
163
  * @param pathAbsolute
164
+ * @deprecated use `getFile` instead, which auto-detects the path type
158
165
  */
159
166
  getFileByPathAbsolute<T extends BrsFile | XmlFile>(pathAbsolute: string): T;
160
167
  /**
161
168
  * Get a list of files for the given (platform-normalized) pkgPath array.
162
169
  * Missing files are just ignored.
170
+ * @deprecated use `getFiles` instead, which auto-detects the path types
163
171
  */
164
172
  getFilesByPkgPaths<T extends BscFile[]>(pkgPaths: string[]): T;
165
173
  /**
166
174
  * Get a file with the specified (platform-normalized) pkg path.
167
175
  * If not found, return undefined
176
+ * @deprecated use `getFile` instead, which auto-detects the path type
168
177
  */
169
178
  getFileByPkgPath<T extends BscFile>(pkgPath: string): T;
170
179
  /**
171
180
  * Remove a set of files from the program
172
- * @param absolutePaths
181
+ * @param filePaths can be an array of srcPath or destPath strings
182
+ * @param normalizePath should this function repair and standardize the filePaths? Passing false should have a performance boost if you can guarantee your paths are already sanitized
173
183
  */
174
- removeFiles(absolutePaths: string[]): void;
184
+ removeFiles(filePaths: string[], normalizePath?: boolean): void;
175
185
  /**
176
186
  * Remove a file from the program
177
- * @param pathAbsolute
187
+ * @param filePath can be a srcPath, a pkgPath, or a destPath (same as pkgPath but without `pkg:/`)
188
+ * @param normalizePath should this function repair and standardize the path? Passing false should have a performance boost if you can guarantee your path is already sanitized
178
189
  */
179
- removeFile(pathAbsolute: string): void;
190
+ removeFile(filePath: string, normalizePath?: boolean): void;
180
191
  /**
181
192
  * Traverse the entire project, and validate all scopes
182
193
  * @param force - if true, then all scopes are force to validate, even if they aren't marked as dirty
@@ -190,16 +201,27 @@ export declare class Program {
190
201
  * Determine if the given file is included in at least one scope in this program
191
202
  */
192
203
  private fileIsIncludedInAnyScope;
204
+ /**
205
+ * Get the files for a list of filePaths
206
+ * @param filePaths can be an array of srcPath or a destPath strings
207
+ * @param normalizePath should this function repair and standardize the paths? Passing false should have a performance boost if you can guarantee your paths are already sanitized
208
+ */
209
+ getFiles<T extends BscFile>(filePaths: string[], normalizePath?: boolean): T[];
193
210
  /**
194
211
  * Get the file at the given path
195
- * @param pathAbsolute
212
+ * @param filePath can be a srcPath or a destPath
213
+ * @param normalizePath should this function repair and standardize the path? Passing false should have a performance boost if you can guarantee your path is already sanitized
196
214
  */
197
- private getFile;
215
+ getFile<T extends BscFile>(filePath: string, normalizePath?: boolean): T;
198
216
  /**
199
217
  * Get a list of all scopes the file is loaded into
200
218
  * @param file
201
219
  */
202
220
  getScopesForFile(file: XmlFile | BrsFile): Scope[];
221
+ /**
222
+ * Get the first found scope for a file.
223
+ */
224
+ getFirstScopeForFile(file: XmlFile | BrsFile): Scope;
203
225
  getStatementsByName(name: string, originFile: BrsFile, namespaceName?: string): FileLink<Statement>[];
204
226
  getStatementsForXmlFile(scope: XmlScope, filterName?: string): FileLink<FunctionStatement>[];
205
227
  /**
@@ -240,12 +262,12 @@ export declare class Program {
240
262
  * Transpile a single file and get the result as a string.
241
263
  * This does not write anything to the file system.
242
264
  */
243
- getTranspiledFileContents(pathAbsolute: string): {
244
- pathAbsolute: string;
245
- pkgPath: string;
246
- code: string;
247
- map: import("source-map").SourceMapGenerator;
248
- };
265
+ getTranspiledFileContents(pathAbsolute: string): FileTranspileResult;
266
+ /**
267
+ * Internal function used to transpile files.
268
+ * This does not write anything to the file system
269
+ */
270
+ private _getTranspiledFileContents;
249
271
  transpile(fileEntries: FileObj[], stagingFolderPath: string): Promise<void>;
250
272
  /**
251
273
  * Find a list of files in the program that have a function with the given name (case INsensitive)
@@ -262,3 +284,10 @@ export declare class Program {
262
284
  private _manifest;
263
285
  dispose(): void;
264
286
  }
287
+ export interface FileTranspileResult {
288
+ pathAbsolute: string;
289
+ pkgPath: string;
290
+ code: string;
291
+ map: SourceMapGenerator;
292
+ typedef: string;
293
+ }