brighterscript 0.71.1 → 0.72.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 (94) hide show
  1. package/bsconfig.schema.json +13 -0
  2. package/dist/BsConfig.d.ts +35 -5
  3. package/dist/CodeActionUtil.d.ts +17 -0
  4. package/dist/CodeActionUtil.js.map +1 -1
  5. package/dist/DiagnosticMessages.d.ts +6 -1
  6. package/dist/DiagnosticMessages.js +5 -0
  7. package/dist/DiagnosticMessages.js.map +1 -1
  8. package/dist/LanguageServer.d.ts +15 -2
  9. package/dist/LanguageServer.js +100 -7
  10. package/dist/LanguageServer.js.map +1 -1
  11. package/dist/Program.d.ts +76 -1
  12. package/dist/Program.js +215 -2
  13. package/dist/Program.js.map +1 -1
  14. package/dist/Scope.d.ts +53 -7
  15. package/dist/Scope.js +28 -66
  16. package/dist/Scope.js.map +1 -1
  17. package/dist/ScopeNamespaceLookup.d.ts +73 -0
  18. package/dist/ScopeNamespaceLookup.js +240 -0
  19. package/dist/ScopeNamespaceLookup.js.map +1 -0
  20. package/dist/SymbolTable.d.ts +9 -2
  21. package/dist/SymbolTable.js +10 -5
  22. package/dist/SymbolTable.js.map +1 -1
  23. package/dist/bscPlugin/BscPlugin.d.ts +3 -1
  24. package/dist/bscPlugin/BscPlugin.js +8 -0
  25. package/dist/bscPlugin/BscPlugin.js.map +1 -1
  26. package/dist/bscPlugin/codeActions/CodeActionsProcessor.js +2 -4
  27. package/dist/bscPlugin/codeActions/CodeActionsProcessor.js.map +1 -1
  28. package/dist/bscPlugin/codeActions/FixAllCodeActionsProcessor.d.ts +17 -0
  29. package/dist/bscPlugin/codeActions/FixAllCodeActionsProcessor.js +66 -0
  30. package/dist/bscPlugin/codeActions/FixAllCodeActionsProcessor.js.map +1 -0
  31. package/dist/bscPlugin/codeActions/codeActionHelpers.d.ts +18 -0
  32. package/dist/bscPlugin/codeActions/codeActionHelpers.js +29 -0
  33. package/dist/bscPlugin/codeActions/codeActionHelpers.js.map +1 -0
  34. package/dist/bscPlugin/selectionRanges/SelectionRangesProcessor.d.ts +7 -0
  35. package/dist/bscPlugin/selectionRanges/SelectionRangesProcessor.js +74 -0
  36. package/dist/bscPlugin/selectionRanges/SelectionRangesProcessor.js.map +1 -0
  37. package/dist/bscPlugin/selectionRanges/SelectionRangesProcessor.spec.d.ts +1 -0
  38. package/dist/bscPlugin/selectionRanges/SelectionRangesProcessor.spec.js +298 -0
  39. package/dist/bscPlugin/selectionRanges/SelectionRangesProcessor.spec.js.map +1 -0
  40. package/dist/bscPlugin/transpile/BrsFilePreTranspileProcessor.d.ts +2 -0
  41. package/dist/bscPlugin/transpile/BrsFilePreTranspileProcessor.js +49 -4
  42. package/dist/bscPlugin/transpile/BrsFilePreTranspileProcessor.js.map +1 -1
  43. package/dist/bscPlugin/validation/BrsFileValidator.d.ts +13 -0
  44. package/dist/bscPlugin/validation/BrsFileValidator.js +42 -0
  45. package/dist/bscPlugin/validation/BrsFileValidator.js.map +1 -1
  46. package/dist/bscPlugin/validation/BrsFileValidator.spec.js +101 -0
  47. package/dist/bscPlugin/validation/BrsFileValidator.spec.js.map +1 -1
  48. package/dist/bscPlugin/validation/ScopeValidator.d.ts +11 -0
  49. package/dist/bscPlugin/validation/ScopeValidator.js +69 -0
  50. package/dist/bscPlugin/validation/ScopeValidator.js.map +1 -1
  51. package/dist/files/BrsFile.d.ts +15 -0
  52. package/dist/files/BrsFile.js +88 -5
  53. package/dist/files/BrsFile.js.map +1 -1
  54. package/dist/files/BrsFile.spec.js +156 -3
  55. package/dist/files/BrsFile.spec.js.map +1 -1
  56. package/dist/interfaces.d.ts +51 -1
  57. package/dist/lsp/DocumentManager.spec.js +1 -1
  58. package/dist/lsp/DocumentManager.spec.js.map +1 -1
  59. package/dist/lsp/LspProject.d.ts +30 -1
  60. package/dist/lsp/Project.d.ts +19 -1
  61. package/dist/lsp/Project.js +98 -2
  62. package/dist/lsp/Project.js.map +1 -1
  63. package/dist/lsp/Project.spec.js +146 -9
  64. package/dist/lsp/Project.spec.js.map +1 -1
  65. package/dist/lsp/ProjectManager.d.ts +38 -2
  66. package/dist/lsp/ProjectManager.js +116 -4
  67. package/dist/lsp/ProjectManager.js.map +1 -1
  68. package/dist/lsp/ProjectManager.spec.js +236 -1
  69. package/dist/lsp/ProjectManager.spec.js.map +1 -1
  70. package/dist/lsp/worker/WorkerThreadProject.d.ts +13 -2
  71. package/dist/lsp/worker/WorkerThreadProject.js +9 -0
  72. package/dist/lsp/worker/WorkerThreadProject.js.map +1 -1
  73. package/dist/lsp/worker/WorkerThreadProject.spec.js +2 -1
  74. package/dist/lsp/worker/WorkerThreadProject.spec.js.map +1 -1
  75. package/dist/parser/Parser.d.ts +10 -0
  76. package/dist/parser/Parser.js +18 -3
  77. package/dist/parser/Parser.js.map +1 -1
  78. package/dist/parser/Parser.spec.js +111 -0
  79. package/dist/parser/Parser.spec.js.map +1 -1
  80. package/dist/parser/TranspileState.d.ts +4 -2
  81. package/dist/parser/TranspileState.js +3 -3
  82. package/dist/parser/TranspileState.js.map +1 -1
  83. package/dist/parser/tests/expression/Call.spec.js +4 -5
  84. package/dist/parser/tests/expression/Call.spec.js.map +1 -1
  85. package/dist/parser/tests/expression/Function.spec.js +2 -2
  86. package/dist/parser/tests/expression/Function.spec.js.map +1 -1
  87. package/dist/parser/tests/statement/ConstStatement.spec.js +218 -1
  88. package/dist/parser/tests/statement/ConstStatement.spec.js.map +1 -1
  89. package/dist/parser/tests/statement/Enum.spec.js +2 -0
  90. package/dist/parser/tests/statement/Enum.spec.js.map +1 -1
  91. package/dist/util.d.ts +26 -0
  92. package/dist/util.js +68 -0
  93. package/dist/util.js.map +1 -1
  94. package/package.json +4 -2
@@ -1 +1 @@
1
- {"version":3,"file":"LanguageServer.js","sourceRoot":"","sources":["../src/LanguageServer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"LanguageServer.js","sourceRoot":"","sources":["../src/LanguageServer.ts"],"names":[],"mappings":"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"}
package/dist/Program.d.ts CHANGED
@@ -1,6 +1,7 @@
1
- import type { CodeAction, CompletionItem, Position, Range, SignatureInformation, Location, DocumentSymbol, CancellationToken } from 'vscode-languageserver';
1
+ import type { CodeAction, CompletionItem, Position, Range, SignatureInformation, Location, DocumentSymbol, CancellationToken, SelectionRange } from 'vscode-languageserver';
2
2
  import type { BsConfig, FinalizedBsConfig } from './BsConfig';
3
3
  import { Scope } from './Scope';
4
+ import type { NamespaceContainer, NamespaceFileContribution } from './Scope';
4
5
  import { BrsFile } from './files/BrsFile';
5
6
  import { XmlFile } from './files/XmlFile';
6
7
  import type { BsDiagnostic, File, FileReference, FileObj, BscFile, SemanticToken, FileLink, Hover } from './interfaces';
@@ -70,6 +71,50 @@ export declare class Program {
70
71
  */
71
72
  files: Record<string, BscFile>;
72
73
  private pkgMap;
74
+ /**
75
+ * Map from a lower-cased namespace name part to the set of `BrsFile`s that contribute
76
+ * to it. Built lazily, invalidated whenever any file is added, removed, or re-parsed
77
+ * (`setFile` and `removeFile` both clear it).
78
+ *
79
+ * Used by `ScopeNamespaceLookup` to resolve a namespace name to its contributing
80
+ * files in O(1), then intersect against the scope's file set.
81
+ */
82
+ private namespaceContributors;
83
+ /**
84
+ * Look up the set of `BrsFile`s that declare any part of the given namespace name
85
+ * (lowercased). Returns `undefined` when no file contributes.
86
+ * @internal
87
+ */
88
+ protected getNamespaceContributors(namespaceNameLower: string): Set<BrsFile> | undefined;
89
+ private buildNamespaceContributors;
90
+ /**
91
+ * Cached slow-path namespace aggregates, keyed by `(nameLower, sorted-contributor-pkgPaths)`.
92
+ * Two scopes with the same in-scope file set for a multi-contributor namespace share
93
+ * the same aggregate object (and therefore the same merged statement collections and
94
+ * symbolTable instance). Built lazily, invalidated alongside `namespaceContributors`.
95
+ *
96
+ * The aggregate is stored as a `NamespaceContainer` whose `namespaces` field is an
97
+ * empty Map: scopes always wrap the aggregate before returning to plugins, and the
98
+ * wrapper supplies its own scope-filtered children. Plugins never see the aggregate
99
+ * directly.
100
+ */
101
+ private aggregateNamespaceContainerCache;
102
+ /**
103
+ * Get or build the shared aggregate for a namespace whose in-scope contributors
104
+ * include more than one file. The aggregate's heavy fields are computed once per
105
+ * unique `(nameLower, contributing-files-set)` and reused across every scope that
106
+ * sees the same set.
107
+ * @internal
108
+ */
109
+ protected getAggregateNamespaceContainer(nameLower: string, contributions: NamespaceFileContribution[]): NamespaceContainer;
110
+ private buildAggregateNamespaceContainer;
111
+ /**
112
+ * Invalidate the program-level namespace contributors map and the slow-path aggregate
113
+ * cache. Called by `setFile` and `removeFile`; downstream scope namespace lookups
114
+ * already rebuild via the dependency-graph invalidation chain, so this only needs
115
+ * to drop the cached maps.
116
+ */
117
+ private invalidateNamespaceContributorCache;
73
118
  private scopes;
74
119
  protected addScope(scope: Scope): void;
75
120
  /**
@@ -285,10 +330,22 @@ export declare class Program {
285
330
  * @param srcPath path to the file
286
331
  */
287
332
  getDocumentSymbols(srcPath: string): DocumentSymbol[] | undefined;
333
+ /**
334
+ * Get the selection ranges for the given positions in a file. Used for expand/shrink selection.
335
+ * @param srcPath path to the file
336
+ * @param positions the positions to get selection ranges for
337
+ */
338
+ getSelectionRanges(srcPath: string, positions: Position[]): SelectionRange[];
288
339
  /**
289
340
  * Compute code actions for the given file and range
290
341
  */
291
342
  getCodeActions(srcPath: string, range: Range): CodeAction[];
343
+ /**
344
+ * Compute "source fix all" code actions for the given file.
345
+ * Fires the `onGetSourceFixAllCodeActions` plugin event with all diagnostics for the file (no range filter),
346
+ * then converts each contributed SourceFixAllCodeAction into an LSP CodeAction.
347
+ */
348
+ getSourceFixAllCodeActions(srcPath: string): CodeAction[];
292
349
  /**
293
350
  * Get semantic tokens for the specified file
294
351
  */
@@ -314,9 +371,27 @@ export declare class Program {
314
371
  * This does not write anything to the file system
315
372
  */
316
373
  private _getTranspiledFileContents;
374
+ /**
375
+ * If the file has an incoming sourcemap (from a prebuild step), chain it into the
376
+ * generated sourcemap so the output map traces all the way back to the original source.
377
+ * This is async because SourceMapConsumer requires async initialisation in source-map v0.7.
378
+ */
379
+ private _chainInputSourceMap;
317
380
  private beforeProgramTranspile;
318
381
  transpile(fileEntries: FileObj[], stagingDir: string): Promise<void>;
319
382
  private afterProgramTranspile;
383
+ /**
384
+ * Serialize a source map to a JSON string, handling relativeSourceMaps and sourceRoot.
385
+ *
386
+ * relativeSourceMaps:false — legacy: sources[] has absolute paths (rootDir swapped for sourceRoot
387
+ * if set); map's sourceRoot field is never written.
388
+ *
389
+ * relativeSourceMaps:true, no sourceRoot — sources[] is relative to the map file directory.
390
+ *
391
+ * relativeSourceMaps:true, sourceRoot set — map's sourceRoot field is written; sources[] is
392
+ * relative to sourceRoot so that path.resolve(sourceRoot, sources[0]) gives the source file.
393
+ */
394
+ private serializeSourceMap;
320
395
  /**
321
396
  * Find a list of files in the program that have a function with the given name (case INsensitive)
322
397
  */
package/dist/Program.js CHANGED
@@ -6,9 +6,11 @@ const fsExtra = require("fs-extra");
6
6
  const path = require("path");
7
7
  const vscode_languageserver_1 = require("vscode-languageserver");
8
8
  const Scope_1 = require("./Scope");
9
+ const SymbolTable_1 = require("./SymbolTable");
9
10
  const DiagnosticMessages_1 = require("./DiagnosticMessages");
10
11
  const BrsFile_1 = require("./files/BrsFile");
11
12
  const XmlFile_1 = require("./files/XmlFile");
13
+ const CodeActionUtil_1 = require("./CodeActionUtil");
12
14
  const util_1 = require("./util");
13
15
  const XmlScope_1 = require("./XmlScope");
14
16
  const DiagnosticFilterer_1 = require("./DiagnosticFilterer");
@@ -123,6 +125,114 @@ class Program {
123
125
  return 'bslib';
124
126
  }
125
127
  }
128
+ /**
129
+ * Look up the set of `BrsFile`s that declare any part of the given namespace name
130
+ * (lowercased). Returns `undefined` when no file contributes.
131
+ * @internal
132
+ */
133
+ getNamespaceContributors(namespaceNameLower) {
134
+ if (!this.namespaceContributors) {
135
+ this.namespaceContributors = this.buildNamespaceContributors();
136
+ }
137
+ return this.namespaceContributors.get(namespaceNameLower);
138
+ }
139
+ buildNamespaceContributors() {
140
+ const contributors = new Map();
141
+ for (const file of Object.values(this.files)) {
142
+ if ((0, reflection_1.isBrsFile)(file)) {
143
+ // eslint-disable-next-line @typescript-eslint/dot-notation
144
+ for (const nameLower of file['getNamespaceContributions']().keys()) {
145
+ let set = contributors.get(nameLower);
146
+ if (!set) {
147
+ set = new Set();
148
+ contributors.set(nameLower, set);
149
+ }
150
+ set.add(file);
151
+ }
152
+ }
153
+ }
154
+ return contributors;
155
+ }
156
+ /**
157
+ * Get or build the shared aggregate for a namespace whose in-scope contributors
158
+ * include more than one file. The aggregate's heavy fields are computed once per
159
+ * unique `(nameLower, contributing-files-set)` and reused across every scope that
160
+ * sees the same set.
161
+ * @internal
162
+ */
163
+ getAggregateNamespaceContainer(nameLower, contributions) {
164
+ if (!this.aggregateNamespaceContainerCache) {
165
+ this.aggregateNamespaceContainerCache = new Map();
166
+ }
167
+ //sorted pkgPaths ensure two scopes with the same contributor set hit the same key
168
+ const key = nameLower + '|' + contributions
169
+ .map(c => c.file.pkgPath.toLowerCase())
170
+ .sort()
171
+ .join('|');
172
+ let aggregate = this.aggregateNamespaceContainerCache.get(key);
173
+ if (!aggregate) {
174
+ aggregate = this.buildAggregateNamespaceContainer(contributions);
175
+ this.aggregateNamespaceContainerCache.set(key, aggregate);
176
+ }
177
+ return aggregate;
178
+ }
179
+ buildAggregateNamespaceContainer(contributions) {
180
+ var _a, _b, _c, _d, _e, _f, _g;
181
+ const first = contributions[0];
182
+ //field order matches the NamespaceContainer interface declaration so aggregates
183
+ //share a single V8 hidden class with the per-scope wrapper containers
184
+ const aggregate = {
185
+ file: first.file,
186
+ fullName: first.fullName,
187
+ nameRange: first.nameRange,
188
+ lastPartName: first.lastPartName,
189
+ namespaces: new Map(),
190
+ statements: undefined,
191
+ classStatements: undefined,
192
+ functionStatements: undefined,
193
+ enumStatements: undefined,
194
+ constStatements: undefined,
195
+ symbolTable: undefined
196
+ };
197
+ for (const contribution of contributions) {
198
+ if ((_a = contribution.statements) === null || _a === void 0 ? void 0 : _a.length) {
199
+ ((_b = aggregate.statements) !== null && _b !== void 0 ? _b : (aggregate.statements = [])).push(...contribution.statements);
200
+ }
201
+ if (contribution.classStatements) {
202
+ aggregate.classStatements = Object.assign(Object.assign({}, ((_c = aggregate.classStatements) !== null && _c !== void 0 ? _c : {})), contribution.classStatements);
203
+ }
204
+ if (contribution.functionStatements) {
205
+ aggregate.functionStatements = Object.assign(Object.assign({}, ((_d = aggregate.functionStatements) !== null && _d !== void 0 ? _d : {})), contribution.functionStatements);
206
+ }
207
+ if (contribution.enumStatements) {
208
+ (_e = aggregate.enumStatements) !== null && _e !== void 0 ? _e : (aggregate.enumStatements = new Map());
209
+ for (const [key, value] of contribution.enumStatements) {
210
+ aggregate.enumStatements.set(key, value);
211
+ }
212
+ }
213
+ if (contribution.constStatements) {
214
+ (_f = aggregate.constStatements) !== null && _f !== void 0 ? _f : (aggregate.constStatements = new Map());
215
+ for (const [key, value] of contribution.constStatements) {
216
+ aggregate.constStatements.set(key, value);
217
+ }
218
+ }
219
+ if (contribution.symbolTable) {
220
+ (_g = aggregate.symbolTable) !== null && _g !== void 0 ? _g : (aggregate.symbolTable = new SymbolTable_1.SymbolTable(`Namespace Multi-File Aggregate: '${first.fullName}'`));
221
+ aggregate.symbolTable.mergeSymbolTable(contribution.symbolTable);
222
+ }
223
+ }
224
+ return aggregate;
225
+ }
226
+ /**
227
+ * Invalidate the program-level namespace contributors map and the slow-path aggregate
228
+ * cache. Called by `setFile` and `removeFile`; downstream scope namespace lookups
229
+ * already rebuild via the dependency-graph invalidation chain, so this only needs
230
+ * to drop the cached maps.
231
+ */
232
+ invalidateNamespaceContributorCache() {
233
+ this.namespaceContributors = undefined;
234
+ this.aggregateNamespaceContainerCache = undefined;
235
+ }
126
236
  addScope(scope) {
127
237
  this.scopes[scope.name] = scope;
128
238
  }
@@ -305,6 +415,9 @@ class Program {
305
415
  setFile(fileParam, fileContents) {
306
416
  //normalize the file paths
307
417
  const { srcPath, pkgPath } = this.getPaths(fileParam, this.options.rootDir);
418
+ //namespace contributions for the new/replaced file may differ; force the
419
+ //program-level contributors map to rebuild on next query
420
+ this.invalidateNamespaceContributorCache();
308
421
  let file = this.logger.time(logging_1.LogLevel.debug, ['Program.setFile()', chalk_1.default.green(srcPath)], () => {
309
422
  //if the file is already loaded, remove it
310
423
  if (this.hasFile(srcPath)) {
@@ -494,6 +607,9 @@ class Program {
494
607
  */
495
608
  removeFile(filePath, normalizePath = true) {
496
609
  this.logger.debug('Program.removeFile()', filePath);
610
+ //namespace contributions may have included this file; force the program-level
611
+ //contributors map to rebuild on next query
612
+ this.invalidateNamespaceContributorCache();
497
613
  let file = this.getFile(filePath, normalizePath);
498
614
  if (file) {
499
615
  this.plugins.emit('beforeFileDispose', file);
@@ -867,6 +983,27 @@ class Program {
867
983
  return undefined;
868
984
  }
869
985
  }
986
+ /**
987
+ * Get the selection ranges for the given positions in a file. Used for expand/shrink selection.
988
+ * @param srcPath path to the file
989
+ * @param positions the positions to get selection ranges for
990
+ */
991
+ getSelectionRanges(srcPath, positions) {
992
+ const file = this.getFile(srcPath);
993
+ if (file) {
994
+ const event = {
995
+ program: this,
996
+ file: file,
997
+ positions: positions,
998
+ selectionRanges: []
999
+ };
1000
+ this.plugins.emit('beforeProvideSelectionRanges', event);
1001
+ this.plugins.emit('provideSelectionRanges', event);
1002
+ this.plugins.emit('afterProvideSelectionRanges', event);
1003
+ return event.selectionRanges;
1004
+ }
1005
+ return [];
1006
+ }
870
1007
  /**
871
1008
  * Compute code actions for the given file and range
872
1009
  */
@@ -893,6 +1030,32 @@ class Program {
893
1030
  }
894
1031
  return codeActions;
895
1032
  }
1033
+ /**
1034
+ * Compute "source fix all" code actions for the given file.
1035
+ * Fires the `onGetSourceFixAllCodeActions` plugin event with all diagnostics for the file (no range filter),
1036
+ * then converts each contributed SourceFixAllCodeAction into an LSP CodeAction.
1037
+ */
1038
+ getSourceFixAllCodeActions(srcPath) {
1039
+ const actions = [];
1040
+ const file = this.getFile(srcPath);
1041
+ if (file) {
1042
+ const diagnostics = this
1043
+ .getDiagnostics()
1044
+ .filter(x => x.file === file);
1045
+ const scopes = this.getScopesForFile(file);
1046
+ this.plugins.emit('onGetSourceFixAllCodeActions', {
1047
+ program: this,
1048
+ file: file,
1049
+ diagnostics: diagnostics,
1050
+ scopes: scopes,
1051
+ actions: actions
1052
+ });
1053
+ }
1054
+ return actions.map(action => {
1055
+ var _a;
1056
+ return CodeActionUtil_1.codeActionUtil.createCodeAction(Object.assign(Object.assign({}, action), { kind: (_a = action.kind) !== null && _a !== void 0 ? _a : 'source.fixAll.brighterscript' }));
1057
+ });
1058
+ }
896
1059
  /**
897
1060
  * Get semantic tokens for the specified file
898
1061
  */
@@ -1001,8 +1164,9 @@ class Program {
1001
1164
  }];
1002
1165
  const { entries, astEditor } = this.beforeProgramTranspile(fileMap, this.options.stagingDir);
1003
1166
  const result = this._getTranspiledFileContents(file);
1167
+ await this._chainInputSourceMap(result, file);
1004
1168
  this.afterProgramTranspile(entries, astEditor);
1005
- return Promise.resolve(result);
1169
+ return result;
1006
1170
  }
1007
1171
  /**
1008
1172
  * Internal function used to transpile files.
@@ -1048,6 +1212,20 @@ class Program {
1048
1212
  typedef: event.typedef
1049
1213
  };
1050
1214
  }
1215
+ /**
1216
+ * If the file has an incoming sourcemap (from a prebuild step), chain it into the
1217
+ * generated sourcemap so the output map traces all the way back to the original source.
1218
+ * This is async because SourceMapConsumer requires async initialisation in source-map v0.7.
1219
+ */
1220
+ async _chainInputSourceMap(result, file) {
1221
+ var _a;
1222
+ if (result.map) {
1223
+ const inputMap = await util_1.util.resolveInputSourceMap((_a = file.fileContents) !== null && _a !== void 0 ? _a : '', file.srcPath);
1224
+ if (inputMap) {
1225
+ await util_1.util.applySourceMap(result.map, inputMap, file.srcPath);
1226
+ }
1227
+ }
1228
+ }
1051
1229
  beforeProgramTranspile(fileEntries, stagingDir) {
1052
1230
  // map fileEntries using their path as key, to avoid excessive "find()" operations
1053
1231
  const mappedFileEntries = fileEntries.reduce((collection, entry) => {
@@ -1105,12 +1283,13 @@ class Program {
1105
1283
  return;
1106
1284
  }
1107
1285
  const fileTranspileResult = this._getTranspiledFileContents(file, outputPath);
1286
+ await this._chainInputSourceMap(fileTranspileResult, file);
1108
1287
  //make sure the full dir path exists
1109
1288
  await fsExtra.ensureDir(path.dirname(outputPath));
1110
1289
  if (await fsExtra.pathExists(outputPath)) {
1111
1290
  throw new Error(`Error while transpiling "${file.srcPath}". A file already exists at "${outputPath}" and will not be overwritten.`);
1112
1291
  }
1113
- const writeMapPromise = fileTranspileResult.map ? fsExtra.writeFile(`${outputPath}.map`, fileTranspileResult.map.toString()) : null;
1292
+ const writeMapPromise = fileTranspileResult.map ? fsExtra.writeFile(`${outputPath}.map`, this.serializeSourceMap(fileTranspileResult.map, outputPath)) : null;
1114
1293
  await Promise.all([
1115
1294
  fsExtra.writeFile(outputPath, fileTranspileResult.code),
1116
1295
  writeMapPromise
@@ -1152,6 +1331,40 @@ class Program {
1152
1331
  this.plugins.emit('afterProgramTranspile', this, entries, astEditor);
1153
1332
  astEditor.undoAll();
1154
1333
  }
1334
+ /**
1335
+ * Serialize a source map to a JSON string, handling relativeSourceMaps and sourceRoot.
1336
+ *
1337
+ * relativeSourceMaps:false — legacy: sources[] has absolute paths (rootDir swapped for sourceRoot
1338
+ * if set); map's sourceRoot field is never written.
1339
+ *
1340
+ * relativeSourceMaps:true, no sourceRoot — sources[] is relative to the map file directory.
1341
+ *
1342
+ * relativeSourceMaps:true, sourceRoot set — map's sourceRoot field is written; sources[] is
1343
+ * relative to sourceRoot so that path.resolve(sourceRoot, sources[0]) gives the source file.
1344
+ */
1345
+ serializeSourceMap(sourceMap, outputPath) {
1346
+ const { relativeSourceMaps, sourceRoot } = this.options;
1347
+ if (!relativeSourceMaps) {
1348
+ return sourceMap.toString();
1349
+ }
1350
+ const mapJson = sourceMap.toJSON();
1351
+ if (sourceRoot) {
1352
+ mapJson.sourceRoot = sourceRoot;
1353
+ mapJson.sources = mapJson.sources.map((source) => {
1354
+ const absolute = path.isAbsolute(source) ? source : path.resolve(path.dirname(outputPath), source);
1355
+ return path.relative(sourceRoot, absolute).replace(/\\/g, '/');
1356
+ });
1357
+ }
1358
+ else {
1359
+ const mapDir = path.dirname(outputPath);
1360
+ mapJson.sources = mapJson.sources.map((source) => {
1361
+ return path.isAbsolute(source)
1362
+ ? path.relative(mapDir, source).replace(/\\/g, '/')
1363
+ : source;
1364
+ });
1365
+ }
1366
+ return JSON.stringify(mapJson);
1367
+ }
1155
1368
  /**
1156
1369
  * Find a list of files in the program that have a function with the given name (case INsensitive)
1157
1370
  */