@ms-cloudpack/api-server 0.35.0 → 0.37.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 (64) hide show
  1. package/lib/apis/ensurePackageBundled.d.ts.map +1 -1
  2. package/lib/apis/ensurePackageBundled.js +33 -15
  3. package/lib/apis/ensurePackageBundled.js.map +1 -1
  4. package/lib/apis/openCodeEditor.d.ts.map +1 -1
  5. package/lib/apis/openCodeEditor.js +3 -2
  6. package/lib/apis/openCodeEditor.js.map +1 -1
  7. package/lib/data/busSources.d.ts +94 -80
  8. package/lib/data/busSources.d.ts.map +1 -1
  9. package/lib/types/BundleInfo.d.ts +25 -11
  10. package/lib/types/BundleInfo.d.ts.map +1 -1
  11. package/lib/types/BundleInfo.js.map +1 -1
  12. package/lib/types/BundleTaskOptions.d.ts +8 -0
  13. package/lib/types/BundleTaskOptions.d.ts.map +1 -1
  14. package/lib/types/BundleTaskOptions.js.map +1 -1
  15. package/lib/types/TaskDescription.d.ts +74 -64
  16. package/lib/types/TaskDescription.d.ts.map +1 -1
  17. package/lib/types/TaskEndDescription.d.ts +74 -64
  18. package/lib/types/TaskEndDescription.d.ts.map +1 -1
  19. package/lib/types/TaskMessage.d.ts +37 -34
  20. package/lib/types/TaskMessage.d.ts.map +1 -1
  21. package/lib/types/TaskMessage.js +1 -0
  22. package/lib/types/TaskMessage.js.map +1 -1
  23. package/lib/types/TaskMessageLocation.d.ts +6 -6
  24. package/lib/types/TaskMessageLocation.js +2 -2
  25. package/lib/types/TaskMessageLocation.js.map +1 -1
  26. package/lib/types/TaskResponse.d.ts +94 -80
  27. package/lib/types/TaskResponse.d.ts.map +1 -1
  28. package/lib/types/TaskResult.d.ts +74 -64
  29. package/lib/types/TaskResult.d.ts.map +1 -1
  30. package/lib/utilities/TaskRunner.d.ts.map +1 -1
  31. package/lib/utilities/TaskRunner.js +21 -35
  32. package/lib/utilities/TaskRunner.js.map +1 -1
  33. package/lib/utilities/addOverride.js +1 -1
  34. package/lib/utilities/addOverride.js.map +1 -1
  35. package/lib/utilities/bundleTask.d.ts.map +1 -1
  36. package/lib/utilities/bundleTask.js +11 -9
  37. package/lib/utilities/bundleTask.js.map +1 -1
  38. package/lib/utilities/createBundleRequestForPackage.d.ts +2 -4
  39. package/lib/utilities/createBundleRequestForPackage.d.ts.map +1 -1
  40. package/lib/utilities/createBundleRequestForPackage.js +3 -10
  41. package/lib/utilities/createBundleRequestForPackage.js.map +1 -1
  42. package/lib/utilities/createBundleTask.d.ts.map +1 -1
  43. package/lib/utilities/createBundleTask.js +4 -3
  44. package/lib/utilities/createBundleTask.js.map +1 -1
  45. package/lib/utilities/createRemoteCacheClient.js +2 -2
  46. package/lib/utilities/createRemoteCacheClient.js.map +1 -1
  47. package/lib/utilities/ensureRemoteCacheEnabled.d.ts +1 -0
  48. package/lib/utilities/ensureRemoteCacheEnabled.d.ts.map +1 -1
  49. package/lib/utilities/formatBundleErrors.d.ts +1 -1
  50. package/lib/utilities/formatBundleErrors.d.ts.map +1 -1
  51. package/lib/utilities/formatBundleErrors.js +9 -12
  52. package/lib/utilities/formatBundleErrors.js.map +1 -1
  53. package/lib/utilities/getBundleInfo.d.ts.map +1 -1
  54. package/lib/utilities/getBundleInfo.js +12 -13
  55. package/lib/utilities/getBundleInfo.js.map +1 -1
  56. package/lib/utilities/getBundleLocation.d.ts +1 -0
  57. package/lib/utilities/getBundleLocation.d.ts.map +1 -1
  58. package/lib/utilities/getBundleLocation.js +11 -10
  59. package/lib/utilities/getBundleLocation.js.map +1 -1
  60. package/lib/utilities/getConsumedDependencies.js +2 -2
  61. package/lib/utilities/getConsumedDependencies.js.map +1 -1
  62. package/lib/utilities/getConsumedPaths.js +2 -2
  63. package/lib/utilities/getConsumedPaths.js.map +1 -1
  64. package/package.json +11 -11
@@ -2,219 +2,229 @@ import z from 'zod';
2
2
  export declare const ZodTaskResult: z.ZodObject<{
3
3
  errors: z.ZodOptional<z.ZodArray<z.ZodObject<{
4
4
  text: z.ZodString;
5
+ source: z.ZodString;
5
6
  location: z.ZodOptional<z.ZodObject<{
6
7
  file: z.ZodString;
7
- line: z.ZodNumber;
8
- column: z.ZodNumber;
8
+ line: z.ZodOptional<z.ZodNumber>;
9
+ column: z.ZodOptional<z.ZodNumber>;
9
10
  }, "strip", z.ZodTypeAny, {
10
11
  file: string;
11
- line: number;
12
- column: number;
12
+ line?: number | undefined;
13
+ column?: number | undefined;
13
14
  }, {
14
15
  file: string;
15
- line: number;
16
- column: number;
16
+ line?: number | undefined;
17
+ column?: number | undefined;
17
18
  }>>;
18
19
  notes: z.ZodOptional<z.ZodArray<z.ZodObject<{
19
20
  text: z.ZodString;
20
21
  location: z.ZodOptional<z.ZodObject<{
21
22
  file: z.ZodString;
22
- line: z.ZodNumber;
23
- column: z.ZodNumber;
23
+ line: z.ZodOptional<z.ZodNumber>;
24
+ column: z.ZodOptional<z.ZodNumber>;
24
25
  }, "strip", z.ZodTypeAny, {
25
26
  file: string;
26
- line: number;
27
- column: number;
27
+ line?: number | undefined;
28
+ column?: number | undefined;
28
29
  }, {
29
30
  file: string;
30
- line: number;
31
- column: number;
31
+ line?: number | undefined;
32
+ column?: number | undefined;
32
33
  }>>;
33
34
  }, "strip", z.ZodTypeAny, {
34
35
  text: string;
35
36
  location?: {
36
37
  file: string;
37
- line: number;
38
- column: number;
38
+ line?: number | undefined;
39
+ column?: number | undefined;
39
40
  } | undefined;
40
41
  }, {
41
42
  text: string;
42
43
  location?: {
43
44
  file: string;
44
- line: number;
45
- column: number;
45
+ line?: number | undefined;
46
+ column?: number | undefined;
46
47
  } | undefined;
47
48
  }>, "many">>;
48
49
  }, "strip", z.ZodTypeAny, {
49
50
  text: string;
51
+ source: string;
50
52
  location?: {
51
53
  file: string;
52
- line: number;
53
- column: number;
54
+ line?: number | undefined;
55
+ column?: number | undefined;
54
56
  } | undefined;
55
57
  notes?: {
56
58
  text: string;
57
59
  location?: {
58
60
  file: string;
59
- line: number;
60
- column: number;
61
+ line?: number | undefined;
62
+ column?: number | undefined;
61
63
  } | undefined;
62
64
  }[] | undefined;
63
65
  }, {
64
66
  text: string;
67
+ source: string;
65
68
  location?: {
66
69
  file: string;
67
- line: number;
68
- column: number;
70
+ line?: number | undefined;
71
+ column?: number | undefined;
69
72
  } | undefined;
70
73
  notes?: {
71
74
  text: string;
72
75
  location?: {
73
76
  file: string;
74
- line: number;
75
- column: number;
77
+ line?: number | undefined;
78
+ column?: number | undefined;
76
79
  } | undefined;
77
80
  }[] | undefined;
78
81
  }>, "many">>;
79
82
  warnings: z.ZodOptional<z.ZodArray<z.ZodObject<{
80
83
  text: z.ZodString;
84
+ source: z.ZodString;
81
85
  location: z.ZodOptional<z.ZodObject<{
82
86
  file: z.ZodString;
83
- line: z.ZodNumber;
84
- column: z.ZodNumber;
87
+ line: z.ZodOptional<z.ZodNumber>;
88
+ column: z.ZodOptional<z.ZodNumber>;
85
89
  }, "strip", z.ZodTypeAny, {
86
90
  file: string;
87
- line: number;
88
- column: number;
91
+ line?: number | undefined;
92
+ column?: number | undefined;
89
93
  }, {
90
94
  file: string;
91
- line: number;
92
- column: number;
95
+ line?: number | undefined;
96
+ column?: number | undefined;
93
97
  }>>;
94
98
  notes: z.ZodOptional<z.ZodArray<z.ZodObject<{
95
99
  text: z.ZodString;
96
100
  location: z.ZodOptional<z.ZodObject<{
97
101
  file: z.ZodString;
98
- line: z.ZodNumber;
99
- column: z.ZodNumber;
102
+ line: z.ZodOptional<z.ZodNumber>;
103
+ column: z.ZodOptional<z.ZodNumber>;
100
104
  }, "strip", z.ZodTypeAny, {
101
105
  file: string;
102
- line: number;
103
- column: number;
106
+ line?: number | undefined;
107
+ column?: number | undefined;
104
108
  }, {
105
109
  file: string;
106
- line: number;
107
- column: number;
110
+ line?: number | undefined;
111
+ column?: number | undefined;
108
112
  }>>;
109
113
  }, "strip", z.ZodTypeAny, {
110
114
  text: string;
111
115
  location?: {
112
116
  file: string;
113
- line: number;
114
- column: number;
117
+ line?: number | undefined;
118
+ column?: number | undefined;
115
119
  } | undefined;
116
120
  }, {
117
121
  text: string;
118
122
  location?: {
119
123
  file: string;
120
- line: number;
121
- column: number;
124
+ line?: number | undefined;
125
+ column?: number | undefined;
122
126
  } | undefined;
123
127
  }>, "many">>;
124
128
  }, "strip", z.ZodTypeAny, {
125
129
  text: string;
130
+ source: string;
126
131
  location?: {
127
132
  file: string;
128
- line: number;
129
- column: number;
133
+ line?: number | undefined;
134
+ column?: number | undefined;
130
135
  } | undefined;
131
136
  notes?: {
132
137
  text: string;
133
138
  location?: {
134
139
  file: string;
135
- line: number;
136
- column: number;
140
+ line?: number | undefined;
141
+ column?: number | undefined;
137
142
  } | undefined;
138
143
  }[] | undefined;
139
144
  }, {
140
145
  text: string;
146
+ source: string;
141
147
  location?: {
142
148
  file: string;
143
- line: number;
144
- column: number;
149
+ line?: number | undefined;
150
+ column?: number | undefined;
145
151
  } | undefined;
146
152
  notes?: {
147
153
  text: string;
148
154
  location?: {
149
155
  file: string;
150
- line: number;
151
- column: number;
156
+ line?: number | undefined;
157
+ column?: number | undefined;
152
158
  } | undefined;
153
159
  }[] | undefined;
154
160
  }>, "many">>;
155
161
  }, "strip", z.ZodTypeAny, {
156
162
  errors?: {
157
163
  text: string;
164
+ source: string;
158
165
  location?: {
159
166
  file: string;
160
- line: number;
161
- column: number;
167
+ line?: number | undefined;
168
+ column?: number | undefined;
162
169
  } | undefined;
163
170
  notes?: {
164
171
  text: string;
165
172
  location?: {
166
173
  file: string;
167
- line: number;
168
- column: number;
174
+ line?: number | undefined;
175
+ column?: number | undefined;
169
176
  } | undefined;
170
177
  }[] | undefined;
171
178
  }[] | undefined;
172
179
  warnings?: {
173
180
  text: string;
181
+ source: string;
174
182
  location?: {
175
183
  file: string;
176
- line: number;
177
- column: number;
184
+ line?: number | undefined;
185
+ column?: number | undefined;
178
186
  } | undefined;
179
187
  notes?: {
180
188
  text: string;
181
189
  location?: {
182
190
  file: string;
183
- line: number;
184
- column: number;
191
+ line?: number | undefined;
192
+ column?: number | undefined;
185
193
  } | undefined;
186
194
  }[] | undefined;
187
195
  }[] | undefined;
188
196
  }, {
189
197
  errors?: {
190
198
  text: string;
199
+ source: string;
191
200
  location?: {
192
201
  file: string;
193
- line: number;
194
- column: number;
202
+ line?: number | undefined;
203
+ column?: number | undefined;
195
204
  } | undefined;
196
205
  notes?: {
197
206
  text: string;
198
207
  location?: {
199
208
  file: string;
200
- line: number;
201
- column: number;
209
+ line?: number | undefined;
210
+ column?: number | undefined;
202
211
  } | undefined;
203
212
  }[] | undefined;
204
213
  }[] | undefined;
205
214
  warnings?: {
206
215
  text: string;
216
+ source: string;
207
217
  location?: {
208
218
  file: string;
209
- line: number;
210
- column: number;
219
+ line?: number | undefined;
220
+ column?: number | undefined;
211
221
  } | undefined;
212
222
  notes?: {
213
223
  text: string;
214
224
  location?: {
215
225
  file: string;
216
- line: number;
217
- column: number;
226
+ line?: number | undefined;
227
+ column?: number | undefined;
218
228
  } | undefined;
219
229
  }[] | undefined;
220
230
  }[] | undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"TaskResult.d.ts","sourceRoot":"","sources":["../../src/types/TaskResult.ts"],"names":[],"mappings":"AAAA,OAAO,CAAC,MAAM,KAAK,CAAC;AAGpB,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAGxB,CAAC;AAEH,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,aAAa,CAAC,CAAC"}
1
+ {"version":3,"file":"TaskResult.d.ts","sourceRoot":"","sources":["../../src/types/TaskResult.ts"],"names":[],"mappings":"AAAA,OAAO,CAAC,MAAM,KAAK,CAAC;AAGpB,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAGxB,CAAC;AAEH,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,aAAa,CAAC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"TaskRunner.d.ts","sourceRoot":"","sources":["../../src/utilities/TaskRunner.ts"],"names":[],"mappings":";AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAE7C,OAAO,YAAY,MAAM,QAAQ,CAAC;AAOlC;;;GAGG;AACH,qBAAa,UAAW,SAAQ,YAAY;IAC1C,OAAO,CAAC,MAAM,CAAS;IAEvB,OAAO,CAAC,aAAa,CAA4B;IAEjD,OAAO,CAAC,eAAe,CAAmB;IAC1C,OAAO,CAAC,cAAc,CAAc;IAEpC,OAAO,CAAC,UAAU,CAAyB;;IAY3C;;;;;OAKG;IACH,GAAG,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC;IA6F1E;;;;;;;;OAQG;IACH,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI;CAazB"}
1
+ {"version":3,"file":"TaskRunner.d.ts","sourceRoot":"","sources":["../../src/utilities/TaskRunner.ts"],"names":[],"mappings":";AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAE7C,OAAO,YAAY,MAAM,QAAQ,CAAC;AAOlC;;;GAGG;AACH,qBAAa,UAAW,SAAQ,YAAY;IAC1C,OAAO,CAAC,MAAM,CAAS;IAEvB,OAAO,CAAC,aAAa,CAA4B;IAEjD,OAAO,CAAC,eAAe,CAAmB;IAC1C,OAAO,CAAC,cAAc,CAAc;IAEpC,OAAO,CAAC,UAAU,CAAyB;;IAY3C;;;;;OAKG;IACH,GAAG,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC;IAiF1E;;;;;;;;OAQG;IACH,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI;CAazB"}
@@ -47,35 +47,26 @@ export class TaskRunner extends EventEmitter {
47
47
  }
48
48
  const resultPromise = (async () => {
49
49
  let taskResult;
50
- let taskError;
51
- let completed = false;
52
50
  do {
53
51
  // Delete from rerun list (if present).
54
52
  this._requiresRerun.delete(id);
55
- try {
56
- taskResult = await this._queue.add(async () => {
57
- const startDescription = {
58
- ...task.getStartDescription?.(),
59
- id: task.id,
60
- };
61
- this.emit('executeStarted', startDescription);
62
- const result = await execute();
63
- const endDescription = {
64
- ...task.getEndDescription?.(result),
65
- id: task.id,
66
- };
67
- this.emit('executeCompleted', endDescription);
68
- return result;
69
- },
70
- // Removes void from return type.
71
- // Read more on: https://github.com/sindresorhus/p-queue/issues/175
72
- { throwOnTimeout: true });
73
- completed = true;
74
- }
75
- catch (err) {
76
- // Save the error--it will be thrown later if a rerun was not requested.
77
- taskError = err;
78
- }
53
+ taskResult = await this._queue.add(async () => {
54
+ const startDescription = {
55
+ ...task.getStartDescription?.(),
56
+ id: task.id,
57
+ };
58
+ this.emit('executeStarted', startDescription);
59
+ const result = await execute();
60
+ const endDescription = {
61
+ ...task.getEndDescription?.(result),
62
+ id: task.id,
63
+ };
64
+ this.emit('executeCompleted', endDescription);
65
+ return result;
66
+ },
67
+ // Removes void from return type.
68
+ // Read more on: https://github.com/sindresorhus/p-queue/issues/175
69
+ { throwOnTimeout: true });
79
70
  } while (this._requiresRerun.has(id));
80
71
  log(`Task finished: "${name}:${id}"`);
81
72
  // Delete from pending list.
@@ -83,16 +74,11 @@ export class TaskRunner extends EventEmitter {
83
74
  // Extra check to ensure that the task returned a value.
84
75
  // It should never throw, if it does we have a bug.
85
76
  if (taskResult === undefined) {
86
- throw new Error(`Task "${name}:${id}" returned undefined`);
77
+ throw new Error(`Task "${name}:${id}" returned undefined, without throwing an error, which was unexpected.`);
87
78
  }
88
- if (completed) {
89
- // Update finished Tasks.
90
- this._completedTasks.set(id, taskResult);
91
- // Resolve the promise.
92
- return taskResult;
93
- }
94
- // If the task never completed successfully, throw the error from earlier.
95
- throw taskError;
79
+ // Update finished Tasks.
80
+ this._completedTasks.set(id, taskResult);
81
+ return taskResult;
96
82
  })();
97
83
  this._pendingTasks.set(id, resultPromise);
98
84
  this._completedTasks.delete(id);
@@ -1 +1 @@
1
- {"version":3,"file":"TaskRunner.js","sourceRoot":"","sources":["../../src/utilities/TaskRunner.ts"],"names":[],"mappings":"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","sourcesContent":["import type { TaskStartDescription } from '../types/TaskStartDescription.js';\nimport type { TaskEndDescription } from '../types/TaskEndDescription.js';\nimport type { TaskOptions } from '../types/TaskOptions.js';\nimport type { Task } from '../types/Task.js';\nimport PQueue from 'p-queue';\nimport EventEmitter from 'events';\n\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nconst log = (...messages: unknown[]) => {\n // console.log(`TaskRunner:`, ...messages);\n};\n\n/**\n * TaskRunner class manages the state of Tasks.\n * This class is to be called by the api server.\n */\nexport class TaskRunner extends EventEmitter {\n private _queue: PQueue;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private _pendingTasks: Map<string, Promise<any>>;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private _completedTasks: Map<string, any>;\n private _requiresRerun: Set<string>;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private _prevTasks: Map<string, Task<any>>;\n\n constructor() {\n super();\n\n this._queue = new PQueue({ concurrency: 10 });\n this._pendingTasks = new Map();\n this._completedTasks = new Map();\n this._requiresRerun = new Set();\n this._prevTasks = new Map();\n }\n\n /**\n * The add method enqueues a Task and returns its Promise.\n * If a Task with the same id has already been processed,\n * it returns either the result or the promise.\n * Rerun flag forces the Task to be run again.\n */\n add<TReturn>(task: Task<TReturn>, options?: TaskOptions): Promise<TReturn> {\n const { name, id, execute } = task;\n const { rerun, watch } = options || {};\n\n watch?.();\n\n if (!this._prevTasks.get(id)) {\n this._prevTasks.set(id, task);\n }\n\n // Check if we are already completed the task with that id.\n const action = this._completedTasks.get(id) as TReturn | undefined;\n if (action !== undefined && !rerun) {\n log(`Previous action found, returning: \"${name}:${id}\"`);\n return Promise.resolve(action);\n }\n\n // Check if we are already running the task with that id.\n const pending = this._pendingTasks.get(id) as Promise<TReturn> | undefined;\n if (pending !== undefined) {\n if (rerun) {\n this._requiresRerun.add(id);\n }\n log(`Previous action found, waiting: \"${name}:${id}\"`);\n return pending;\n }\n\n const resultPromise = (async () => {\n let taskResult: TReturn | undefined;\n let taskError: unknown;\n let completed = false;\n\n do {\n // Delete from rerun list (if present).\n this._requiresRerun.delete(id);\n try {\n taskResult = await this._queue.add(\n async () => {\n const startDescription: TaskStartDescription = {\n ...task.getStartDescription?.(),\n id: task.id,\n };\n this.emit('executeStarted', startDescription);\n\n const result = await execute();\n\n const endDescription: TaskEndDescription = {\n ...task.getEndDescription?.(result),\n id: task.id,\n };\n this.emit('executeCompleted', endDescription);\n\n return result;\n },\n // Removes void from return type.\n // Read more on: https://github.com/sindresorhus/p-queue/issues/175\n { throwOnTimeout: true },\n );\n completed = true;\n } catch (err) {\n // Save the error--it will be thrown later if a rerun was not requested.\n taskError = err;\n }\n } while (this._requiresRerun.has(id));\n\n log(`Task finished: \"${name}:${id}\"`);\n\n // Delete from pending list.\n this._pendingTasks.delete(id);\n\n // Extra check to ensure that the task returned a value.\n // It should never throw, if it does we have a bug.\n if (taskResult === undefined) {\n throw new Error(`Task \"${name}:${id}\" returned undefined`);\n }\n\n if (completed) {\n // Update finished Tasks.\n this._completedTasks.set(id, taskResult);\n // Resolve the promise.\n return taskResult;\n }\n\n // If the task never completed successfully, throw the error from earlier.\n throw taskError;\n })();\n\n this._pendingTasks.set(id, resultPromise);\n this._completedTasks.delete(id);\n\n return resultPromise;\n }\n\n /**\n * The remove method disposes a task if available\n * and then removes it from the TaskRunner.\n *\n * This is useful when the state of a task needs to be cleared.\n *\n * It is intended to be used by the api server\n * to clear the TaskRunner's state before reloading the page.\n */\n remove(id: string): void {\n this._prevTasks\n .get(id)\n ?.dispose?.()\n .catch(() => {\n log(`Error disposing task: ${id}`);\n });\n this._prevTasks.get(id)?.clear?.();\n this._prevTasks.delete(id);\n this._requiresRerun.delete(id);\n this._pendingTasks.delete(id);\n this._completedTasks.delete(id);\n }\n}\n"]}
1
+ {"version":3,"file":"TaskRunner.js","sourceRoot":"","sources":["../../src/utilities/TaskRunner.ts"],"names":[],"mappings":"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","sourcesContent":["import type { TaskStartDescription } from '../types/TaskStartDescription.js';\nimport type { TaskEndDescription } from '../types/TaskEndDescription.js';\nimport type { TaskOptions } from '../types/TaskOptions.js';\nimport type { Task } from '../types/Task.js';\nimport PQueue from 'p-queue';\nimport EventEmitter from 'events';\n\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nconst log = (...messages: unknown[]) => {\n // console.log(`TaskRunner:`, ...messages);\n};\n\n/**\n * TaskRunner class manages the state of Tasks.\n * This class is to be called by the api server.\n */\nexport class TaskRunner extends EventEmitter {\n private _queue: PQueue;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private _pendingTasks: Map<string, Promise<any>>;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private _completedTasks: Map<string, any>;\n private _requiresRerun: Set<string>;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private _prevTasks: Map<string, Task<any>>;\n\n constructor() {\n super();\n\n this._queue = new PQueue({ concurrency: 10 });\n this._pendingTasks = new Map();\n this._completedTasks = new Map();\n this._requiresRerun = new Set();\n this._prevTasks = new Map();\n }\n\n /**\n * The add method enqueues a Task and returns its Promise.\n * If a Task with the same id has already been processed,\n * it returns either the result or the promise.\n * Rerun flag forces the Task to be run again.\n */\n add<TReturn>(task: Task<TReturn>, options?: TaskOptions): Promise<TReturn> {\n const { name, id, execute } = task;\n const { rerun, watch } = options || {};\n\n watch?.();\n\n if (!this._prevTasks.get(id)) {\n this._prevTasks.set(id, task);\n }\n\n // Check if we are already completed the task with that id.\n const action = this._completedTasks.get(id) as TReturn | undefined;\n if (action !== undefined && !rerun) {\n log(`Previous action found, returning: \"${name}:${id}\"`);\n return Promise.resolve(action);\n }\n\n // Check if we are already running the task with that id.\n const pending = this._pendingTasks.get(id) as Promise<TReturn> | undefined;\n if (pending !== undefined) {\n if (rerun) {\n this._requiresRerun.add(id);\n }\n log(`Previous action found, waiting: \"${name}:${id}\"`);\n return pending;\n }\n\n const resultPromise = (async () => {\n let taskResult: TReturn | undefined;\n\n do {\n // Delete from rerun list (if present).\n this._requiresRerun.delete(id);\n\n taskResult = await this._queue.add(\n async () => {\n const startDescription: TaskStartDescription = {\n ...task.getStartDescription?.(),\n id: task.id,\n };\n this.emit('executeStarted', startDescription);\n\n const result = await execute();\n\n const endDescription: TaskEndDescription = {\n ...task.getEndDescription?.(result),\n id: task.id,\n };\n this.emit('executeCompleted', endDescription);\n\n return result;\n },\n // Removes void from return type.\n // Read more on: https://github.com/sindresorhus/p-queue/issues/175\n { throwOnTimeout: true },\n );\n } while (this._requiresRerun.has(id));\n\n log(`Task finished: \"${name}:${id}\"`);\n\n // Delete from pending list.\n this._pendingTasks.delete(id);\n\n // Extra check to ensure that the task returned a value.\n // It should never throw, if it does we have a bug.\n if (taskResult === undefined) {\n throw new Error(`Task \"${name}:${id}\" returned undefined, without throwing an error, which was unexpected.`);\n }\n\n // Update finished Tasks.\n this._completedTasks.set(id, taskResult);\n\n return taskResult;\n })();\n\n this._pendingTasks.set(id, resultPromise);\n this._completedTasks.delete(id);\n\n return resultPromise;\n }\n\n /**\n * The remove method disposes a task if available\n * and then removes it from the TaskRunner.\n *\n * This is useful when the state of a task needs to be cleared.\n *\n * It is intended to be used by the api server\n * to clear the TaskRunner's state before reloading the page.\n */\n remove(id: string): void {\n this._prevTasks\n .get(id)\n ?.dispose?.()\n .catch(() => {\n log(`Error disposing task: ${id}`);\n });\n this._prevTasks.get(id)?.clear?.();\n this._prevTasks.delete(id);\n this._requiresRerun.delete(id);\n this._pendingTasks.delete(id);\n this._completedTasks.delete(id);\n }\n}\n"]}
@@ -62,7 +62,7 @@ export async function addOverride(options, context) {
62
62
  const config = await readGeneratedConfig(session.appPath);
63
63
  // Ensure packageSettings exist.
64
64
  config.packageSettings ??= [];
65
- const configMatches = config.packageSettings.filter(({ match }) => checkMatch({ name: packageName, version: entry.version, match, firstMatch: true }));
65
+ const configMatches = config.packageSettings.filter(({ match }) => checkMatch({ name: packageName, version: entry.version, match, exactMatch: true }));
66
66
  if (!configMatches.length) {
67
67
  config.packageSettings.push({
68
68
  match: {
@@ -1 +1 @@
1
- {"version":3,"file":"addOverride.js","sourceRoot":"","sources":["../../src/utilities/addOverride.ts"],"names":[],"mappings":"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","sourcesContent":["import { checkMatch, readGeneratedConfig, writeGeneratedConfig } from '@ms-cloudpack/config';\nimport {\n addExportsMapEntry,\n findResolveMapEntry,\n flattenExportsMap,\n getExportsMap,\n type ResolveMapEntry,\n} from '@ms-cloudpack/package-utilities';\nimport { normalizeRelativePath } from '@ms-cloudpack/path-string-parsing';\nimport type { Context } from '../types/Context.js';\nimport type { OverrideOptions } from '../types/OverrideOptions.js';\nimport { parseRequestUrl } from './parseRequestUrl.js';\n\n/**\n * The addOverride method is triggered by a user action in the overlay, when we detect new usage of an import path\n * that isn't recognized. When the user triggers this override, we write it to the cloudpack generated config.\n */\nexport async function addOverride(\n options: OverrideOptions,\n context: Pick<Context, 'packages' | 'session'>,\n): Promise<{\n /** Whether the override was successfully added */\n addedOverride: boolean;\n /** The entry (if any) in the resolve map the override was added to */\n entry?: ResolveMapEntry;\n}> {\n const { packageName, importPath, version, issuerUrl } = options;\n const { session, packages } = context;\n let addedOverride = false;\n let requiredBy = undefined;\n\n if (issuerUrl) {\n const { packageName: issuerName, version: issuerVersion } = parseRequestUrl(issuerUrl);\n requiredBy = { name: issuerName, version: issuerVersion };\n }\n\n const entry = findResolveMapEntry({\n packageName,\n resolveMap: session.resolveMap,\n definition: requiredBy,\n version,\n });\n\n if (!entry) {\n console.error(`Could not find entry of package \"${packageName}\" in resolve map`);\n return { addedOverride, entry };\n }\n\n const packagePath = entry.path;\n\n // Get current exports. We want to add an additional entry to what's there - not replace the default exports,\n // so we need the full map for the package.\n const exports = await getExportsMap({ packagePath }, { packages, config: session.config });\n const flattenedExports = flattenExportsMap(exports);\n\n // Return false if the import path already exists in the exports map.\n if (flattenedExports[normalizeRelativePath(importPath)]) {\n console.debug(`The import path \"${importPath}\" already exists in the exports map for \"${packageName}\".`);\n return { addedOverride, entry };\n }\n\n const addedExports = {};\n\n // Add the single new exports entry to the exports map.\n addedOverride = await addExportsMapEntry(\n {\n // This is required as addExportsMapEntry assumes addedExports is a record.\n exports: addedExports,\n packagePath,\n importPath,\n },\n { packages, config: session.config },\n );\n\n if (!addedOverride) {\n console.warn(\n `Unable to add override for package \"${packageName}\" to \"cloudpack.config.json\". The file \"${normalizeRelativePath(\n importPath,\n )}\" could not be found. Please check the import path and try again.`,\n );\n return { addedOverride, entry };\n }\n\n if (Array.isArray(exports)) {\n exports.push(addedExports);\n } else {\n const definition = await packages.get(packagePath);\n if (!definition) {\n console.error(`Could not find definition of package \"${packageName}\" in the cache`);\n return { addedOverride, entry };\n }\n definition.exports = [exports, addedExports];\n }\n\n // Parse the user config if it exists.\n const config = await readGeneratedConfig(session.appPath);\n\n // Ensure packageSettings exist.\n config.packageSettings ??= [];\n\n const configMatches = config.packageSettings.filter(({ match }) =>\n checkMatch({ name: packageName, version: entry.version, match, firstMatch: true }),\n );\n\n if (!configMatches.length) {\n config.packageSettings.push({\n match: {\n name: packageName,\n version: `^${entry.version}`,\n },\n exports: addedExports,\n });\n } else {\n if (configMatches.length > 1) {\n console.debug(\n `Found multiple matches for package \"${packageName}\" in cloudpack.config.json. Using the first match.`,\n );\n }\n\n // Use the first match and ensure exports exist\n configMatches[0].exports ??= {};\n\n const flattenedMatchExports = flattenExportsMap(configMatches[0].exports);\n\n // Return false if the import path already exists in the match exports map.\n if (flattenedMatchExports[normalizeRelativePath(importPath)]) {\n console.debug(`The import path \"${importPath}\" already exists in the config exports map for \"${packageName}\".`);\n return { addedOverride: false, entry };\n }\n\n // Add the single new exports entry to the match exports map.\n await addExportsMapEntry(\n {\n exports: configMatches[0].exports,\n packagePath,\n importPath,\n },\n { packages, config: session.config },\n );\n }\n\n await writeGeneratedConfig(config, session.appPath);\n console.debug(`Added override for \"${packageName}\" to \"cloudpack.config.json\".`);\n\n return { addedOverride, entry };\n}\n"]}
1
+ {"version":3,"file":"addOverride.js","sourceRoot":"","sources":["../../src/utilities/addOverride.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAC7F,OAAO,EACL,kBAAkB,EAClB,mBAAmB,EACnB,iBAAiB,EACjB,aAAa,GAEd,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAAE,qBAAqB,EAAE,MAAM,mCAAmC,CAAC;AAG1E,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAEvD;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,WAAW,CAC/B,OAAwB,EACxB,OAA8C;IAO9C,MAAM,EAAE,WAAW,EAAE,UAAU,EAAE,OAAO,EAAE,SAAS,EAAE,GAAG,OAAO,CAAC;IAChE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC;IACtC,IAAI,aAAa,GAAG,KAAK,CAAC;IAC1B,IAAI,UAAU,GAAG,SAAS,CAAC;IAE3B,IAAI,SAAS,EAAE,CAAC;QACd,MAAM,EAAE,WAAW,EAAE,UAAU,EAAE,OAAO,EAAE,aAAa,EAAE,GAAG,eAAe,CAAC,SAAS,CAAC,CAAC;QACvF,UAAU,GAAG,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,aAAa,EAAE,CAAC;IAC5D,CAAC;IAED,MAAM,KAAK,GAAG,mBAAmB,CAAC;QAChC,WAAW;QACX,UAAU,EAAE,OAAO,CAAC,UAAU;QAC9B,UAAU,EAAE,UAAU;QACtB,OAAO;KACR,CAAC,CAAC;IAEH,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,OAAO,CAAC,KAAK,CAAC,oCAAoC,WAAW,kBAAkB,CAAC,CAAC;QACjF,OAAO,EAAE,aAAa,EAAE,KAAK,EAAE,CAAC;IAClC,CAAC;IAED,MAAM,WAAW,GAAG,KAAK,CAAC,IAAI,CAAC;IAE/B,6GAA6G;IAC7G,2CAA2C;IAC3C,MAAM,OAAO,GAAG,MAAM,aAAa,CAAC,EAAE,WAAW,EAAE,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IAC3F,MAAM,gBAAgB,GAAG,iBAAiB,CAAC,OAAO,CAAC,CAAC;IAEpD,qEAAqE;IACrE,IAAI,gBAAgB,CAAC,qBAAqB,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC;QACxD,OAAO,CAAC,KAAK,CAAC,oBAAoB,UAAU,4CAA4C,WAAW,IAAI,CAAC,CAAC;QACzG,OAAO,EAAE,aAAa,EAAE,KAAK,EAAE,CAAC;IAClC,CAAC;IAED,MAAM,YAAY,GAAG,EAAE,CAAC;IAExB,uDAAuD;IACvD,aAAa,GAAG,MAAM,kBAAkB,CACtC;QACE,2EAA2E;QAC3E,OAAO,EAAE,YAAY;QACrB,WAAW;QACX,UAAU;KACX,EACD,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CACrC,CAAC;IAEF,IAAI,CAAC,aAAa,EAAE,CAAC;QACnB,OAAO,CAAC,IAAI,CACV,uCAAuC,WAAW,2CAA2C,qBAAqB,CAChH,UAAU,CACX,mEAAmE,CACrE,CAAC;QACF,OAAO,EAAE,aAAa,EAAE,KAAK,EAAE,CAAC;IAClC,CAAC;IAED,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;QAC3B,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IAC7B,CAAC;SAAM,CAAC;QACN,MAAM,UAAU,GAAG,MAAM,QAAQ,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;QACnD,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,OAAO,CAAC,KAAK,CAAC,yCAAyC,WAAW,gBAAgB,CAAC,CAAC;YACpF,OAAO,EAAE,aAAa,EAAE,KAAK,EAAE,CAAC;QAClC,CAAC;QACD,UAAU,CAAC,OAAO,GAAG,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;IAC/C,CAAC;IAED,sCAAsC;IACtC,MAAM,MAAM,GAAG,MAAM,mBAAmB,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IAE1D,gCAAgC;IAChC,MAAM,CAAC,eAAe,KAAK,EAAE,CAAC;IAE9B,MAAM,aAAa,GAAG,MAAM,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAChE,UAAU,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,CACnF,CAAC;IAEF,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,CAAC;QAC1B,MAAM,CAAC,eAAe,CAAC,IAAI,CAAC;YAC1B,KAAK,EAAE;gBACL,IAAI,EAAE,WAAW;gBACjB,OAAO,EAAE,IAAI,KAAK,CAAC,OAAO,EAAE;aAC7B;YACD,OAAO,EAAE,YAAY;SACtB,CAAC,CAAC;IACL,CAAC;SAAM,CAAC;QACN,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC7B,OAAO,CAAC,KAAK,CACX,uCAAuC,WAAW,oDAAoD,CACvG,CAAC;QACJ,CAAC;QAED,+CAA+C;QAC/C,aAAa,CAAC,CAAC,CAAC,CAAC,OAAO,KAAK,EAAE,CAAC;QAEhC,MAAM,qBAAqB,GAAG,iBAAiB,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;QAE1E,2EAA2E;QAC3E,IAAI,qBAAqB,CAAC,qBAAqB,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC;YAC7D,OAAO,CAAC,KAAK,CAAC,oBAAoB,UAAU,mDAAmD,WAAW,IAAI,CAAC,CAAC;YAChH,OAAO,EAAE,aAAa,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;QACzC,CAAC;QAED,6DAA6D;QAC7D,MAAM,kBAAkB,CACtB;YACE,OAAO,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC,OAAO;YACjC,WAAW;YACX,UAAU;SACX,EACD,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CACrC,CAAC;IACJ,CAAC;IAED,MAAM,oBAAoB,CAAC,MAAM,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;IACpD,OAAO,CAAC,KAAK,CAAC,uBAAuB,WAAW,+BAA+B,CAAC,CAAC;IAEjF,OAAO,EAAE,aAAa,EAAE,KAAK,EAAE,CAAC;AAClC,CAAC","sourcesContent":["import { checkMatch, readGeneratedConfig, writeGeneratedConfig } from '@ms-cloudpack/config';\nimport {\n addExportsMapEntry,\n findResolveMapEntry,\n flattenExportsMap,\n getExportsMap,\n type ResolveMapEntry,\n} from '@ms-cloudpack/package-utilities';\nimport { normalizeRelativePath } from '@ms-cloudpack/path-string-parsing';\nimport type { Context } from '../types/Context.js';\nimport type { OverrideOptions } from '../types/OverrideOptions.js';\nimport { parseRequestUrl } from './parseRequestUrl.js';\n\n/**\n * The addOverride method is triggered by a user action in the overlay, when we detect new usage of an import path\n * that isn't recognized. When the user triggers this override, we write it to the cloudpack generated config.\n */\nexport async function addOverride(\n options: OverrideOptions,\n context: Pick<Context, 'packages' | 'session'>,\n): Promise<{\n /** Whether the override was successfully added */\n addedOverride: boolean;\n /** The entry (if any) in the resolve map the override was added to */\n entry?: ResolveMapEntry;\n}> {\n const { packageName, importPath, version, issuerUrl } = options;\n const { session, packages } = context;\n let addedOverride = false;\n let requiredBy = undefined;\n\n if (issuerUrl) {\n const { packageName: issuerName, version: issuerVersion } = parseRequestUrl(issuerUrl);\n requiredBy = { name: issuerName, version: issuerVersion };\n }\n\n const entry = findResolveMapEntry({\n packageName,\n resolveMap: session.resolveMap,\n definition: requiredBy,\n version,\n });\n\n if (!entry) {\n console.error(`Could not find entry of package \"${packageName}\" in resolve map`);\n return { addedOverride, entry };\n }\n\n const packagePath = entry.path;\n\n // Get current exports. We want to add an additional entry to what's there - not replace the default exports,\n // so we need the full map for the package.\n const exports = await getExportsMap({ packagePath }, { packages, config: session.config });\n const flattenedExports = flattenExportsMap(exports);\n\n // Return false if the import path already exists in the exports map.\n if (flattenedExports[normalizeRelativePath(importPath)]) {\n console.debug(`The import path \"${importPath}\" already exists in the exports map for \"${packageName}\".`);\n return { addedOverride, entry };\n }\n\n const addedExports = {};\n\n // Add the single new exports entry to the exports map.\n addedOverride = await addExportsMapEntry(\n {\n // This is required as addExportsMapEntry assumes addedExports is a record.\n exports: addedExports,\n packagePath,\n importPath,\n },\n { packages, config: session.config },\n );\n\n if (!addedOverride) {\n console.warn(\n `Unable to add override for package \"${packageName}\" to \"cloudpack.config.json\". The file \"${normalizeRelativePath(\n importPath,\n )}\" could not be found. Please check the import path and try again.`,\n );\n return { addedOverride, entry };\n }\n\n if (Array.isArray(exports)) {\n exports.push(addedExports);\n } else {\n const definition = await packages.get(packagePath);\n if (!definition) {\n console.error(`Could not find definition of package \"${packageName}\" in the cache`);\n return { addedOverride, entry };\n }\n definition.exports = [exports, addedExports];\n }\n\n // Parse the user config if it exists.\n const config = await readGeneratedConfig(session.appPath);\n\n // Ensure packageSettings exist.\n config.packageSettings ??= [];\n\n const configMatches = config.packageSettings.filter(({ match }) =>\n checkMatch({ name: packageName, version: entry.version, match, exactMatch: true }),\n );\n\n if (!configMatches.length) {\n config.packageSettings.push({\n match: {\n name: packageName,\n version: `^${entry.version}`,\n },\n exports: addedExports,\n });\n } else {\n if (configMatches.length > 1) {\n console.debug(\n `Found multiple matches for package \"${packageName}\" in cloudpack.config.json. Using the first match.`,\n );\n }\n\n // Use the first match and ensure exports exist\n configMatches[0].exports ??= {};\n\n const flattenedMatchExports = flattenExportsMap(configMatches[0].exports);\n\n // Return false if the import path already exists in the match exports map.\n if (flattenedMatchExports[normalizeRelativePath(importPath)]) {\n console.debug(`The import path \"${importPath}\" already exists in the config exports map for \"${packageName}\".`);\n return { addedOverride: false, entry };\n }\n\n // Add the single new exports entry to the match exports map.\n await addExportsMapEntry(\n {\n exports: configMatches[0].exports,\n packagePath,\n importPath,\n },\n { packages, config: session.config },\n );\n }\n\n await writeGeneratedConfig(config, session.appPath);\n console.debug(`Added override for \"${packageName}\" to \"cloudpack.config.json\".`);\n\n return { addedOverride, entry };\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"bundleTask.d.ts","sourceRoot":"","sources":["../../src/utilities/bundleTask.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAiB,eAAe,EAAE,uBAAuB,EAAE,MAAM,4BAA4B,CAAC;AAC1G,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAGlE,OAAO,EAAiB,KAAK,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAEjF,OAAO,EAGL,KAAK,YAAY,EAElB,MAAM,6BAA6B,CAAC;AACrC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAG/D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAUvE,wBAAsB,UAAU,CAAC,MAAM,EAAE;IACvC,aAAa,EAAE,aAAa,CAAC;IAC7B,OAAO,CAAC,EAAE,iBAAiB,CAAC;IAC5B,OAAO,EAAE;QACP,QAAQ,EAAE,uBAAuB,CAAC;QAClC,MAAM,EAAE,eAAe,CAAC;QACxB,UAAU,EAAE,UAAU,CAAC;QACvB,aAAa,EAAE,aAAa,CAAC;QAC7B,QAAQ,CAAC,EAAE,YAAY,CAAC;QACxB,eAAe,CAAC,EAAE,eAAe,CAAC;KACnC,CAAC;CACH,GAAG,OAAO,CAAC,aAAa,CAAC,CAqEzB"}
1
+ {"version":3,"file":"bundleTask.d.ts","sourceRoot":"","sources":["../../src/utilities/bundleTask.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAiB,eAAe,EAAE,uBAAuB,EAAE,MAAM,4BAA4B,CAAC;AAC1G,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAGlE,OAAO,EAAiB,KAAK,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAEjF,OAAO,EAGL,KAAK,YAAY,EAElB,MAAM,6BAA6B,CAAC;AACrC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAG/D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAUvE,wBAAsB,UAAU,CAAC,MAAM,EAAE;IACvC,aAAa,EAAE,aAAa,CAAC;IAC7B,OAAO,CAAC,EAAE,iBAAiB,CAAC;IAC5B,OAAO,EAAE;QACP,QAAQ,EAAE,uBAAuB,CAAC;QAClC,MAAM,EAAE,eAAe,CAAC;QACxB,UAAU,EAAE,UAAU,CAAC;QACvB,aAAa,EAAE,aAAa,CAAC;QAC7B,QAAQ,CAAC,EAAE,YAAY,CAAC;QACxB,eAAe,CAAC,EAAE,eAAe,CAAC;KACnC,CAAC;CACH,GAAG,OAAO,CAAC,aAAa,CAAC,CAsEzB"}
@@ -33,7 +33,7 @@ export async function bundleTask(params) {
33
33
  if (!result) {
34
34
  return {
35
35
  status: 'fail',
36
- details: `No result was found for "${packageName}@${version}"`,
36
+ details: `[bundleTask] No result was found for "${packageName}@${version}"`,
37
37
  };
38
38
  }
39
39
  result.outputFiles ??= [];
@@ -42,12 +42,13 @@ export async function bundleTask(params) {
42
42
  if (!result.outputFiles.length && !result.errors?.length) {
43
43
  result.warnings.push({
44
44
  text: `No output files were found for "${packageName}" in "${result.outputPath}"`,
45
+ source: 'bundleTask',
45
46
  });
46
47
  }
47
48
  return {
48
49
  status: result.errors.length ? 'fail' : 'complete',
49
50
  ...(result.errors?.length
50
- ? formatBundleErrors(result.errors)
51
+ ? formatBundleErrors(result.errors, bundleRequest.packagePath)
51
52
  : {
52
53
  details: bulletedList([
53
54
  `Package: ${bundleRequest.packageName}@${bundleRequest.version}`,
@@ -72,25 +73,26 @@ export async function bundleTask(params) {
72
73
  async function bundle(params) {
73
74
  const { bundleRequest, context, options = {} } = params;
74
75
  const { config, packageHashes } = context;
75
- const { force } = options;
76
+ const { force, hash, sourceHash } = options;
76
77
  // If force is set, dispose the existing result.
77
78
  if (force && bundleRequest?.result?.dispose) {
78
79
  bundleRequest.result.dispose();
79
80
  bundleRequest.result = undefined;
80
81
  }
81
82
  const { packagePath, isExternal, isIncremental, disableSourceMaps, shouldGetBundleInfo } = bundleRequest;
82
- const outputPath = bundleRequest.outputPath ?? (await getBundleLocation({ packagePath, shouldRecalculate: force }, context)).path;
83
+ const outputPath = bundleRequest.outputPath ??
84
+ (await getBundleLocation({ packagePath, shouldRecalculate: force, hash }, context)).path;
83
85
  // Rehydrate the result if not incremental.
84
86
  if (bundleRequest.result === undefined && !force) {
85
87
  bundleRequest.result = await readResultFromCache(outputPath, {
86
88
  inputPath: packagePath,
87
89
  });
88
90
  }
89
- const hash = !isExternal
90
- ? await packageHashes.get({ packagePath, isSourceHashingEnabled: true, shouldRecalculate: true })
91
+ const cacheValidationHash = !isExternal
92
+ ? sourceHash || (await packageHashes.get({ packagePath, isSourceHashingEnabled: true, shouldRecalculate: true }))
91
93
  : undefined;
92
94
  // if the cached result is valid, use it.
93
- if (!force && isCachedResultValid({ bundleRequest, hash })) {
95
+ if (!force && isCachedResultValid({ bundleRequest, hash: cacheValidationHash })) {
94
96
  console.debug(`Using cached result for ${bundleRequest.packageName}@${bundleRequest.version}`);
95
97
  bundleRequest.resultFromCache = true;
96
98
  }
@@ -102,7 +104,7 @@ async function bundle(params) {
102
104
  bundleRequest.result = {
103
105
  ...(await bundleRequest.result.rebuild()),
104
106
  outputPath: bundleRequest.result.outputPath,
105
- hash,
107
+ hash: cacheValidationHash,
106
108
  };
107
109
  }
108
110
  else {
@@ -131,7 +133,7 @@ async function bundle(params) {
131
133
  bundleRequest.result = {
132
134
  ...bundleInternalResult,
133
135
  outputPath: bundleOptions.outputPath ?? outputPath,
134
- hash,
136
+ hash: cacheValidationHash,
135
137
  };
136
138
  }
137
139
  // Write the result to disk.
@@ -1 +1 @@
1
- {"version":3,"file":"bundleTask.js","sourceRoot":"","sources":["../../src/utilities/bundleTask.ts"],"names":[],"mappings":"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","sourcesContent":["import { bundle as bundleInternal, getEntriesMapFromPackage, getExternalsFromPackage } from '@ms-cloudpack/bundler';\nimport type { BundleOptions, CloudpackConfig, PackageDefinitionsCache } from '@ms-cloudpack/common-types';\nimport type { PackageHashes } from '@ms-cloudpack/package-hashes';\nimport { getPackageSettings } from '@ms-cloudpack/config';\nimport { writeJson } from '@ms-cloudpack/json-utilities';\nimport { getExportsMap, type ResolveMap } from '@ms-cloudpack/package-utilities';\nimport { normalizeRelativePath } from '@ms-cloudpack/path-string-parsing';\nimport {\n bulletedList,\n formatPackageName,\n type TaskReporter,\n type TaskReporterTaskResult,\n} from '@ms-cloudpack/task-reporter';\nimport type { TelemetryClient } from '@ms-cloudpack/telemetry';\nimport path from 'path';\nimport { prepareOutputPath } from '../common/prepareOutputPath.js';\nimport type { BundleRequest } from '../types/BundleRequest.js';\nimport type { BundleTaskOptions } from '../types/BundleTaskOptions.js';\nimport { diskCacheRatioMetricEventAggregator } from './diskCacheRatioMetricEventAggregator.js';\nimport { formatBundleErrors } from './formatBundleErrors.js';\nimport { getBundleInfo } from './getBundleInfo.js';\nimport { getBundleLocation } from './getBundleLocation.js';\nimport { getFileSizeSync } from './getFileSizeSync.js';\nimport { isCachedResultValid } from './isCachedResultValid.js';\nimport { readResultFromCache } from './readResultFromCache.js';\nimport { saveResultToCache } from './saveResultToCache.js';\n\nexport async function bundleTask(params: {\n bundleRequest: BundleRequest;\n options?: BundleTaskOptions;\n context: {\n packages: PackageDefinitionsCache;\n config: CloudpackConfig;\n resolveMap: ResolveMap;\n packageHashes: PackageHashes;\n reporter?: TaskReporter;\n telemetryClient?: TelemetryClient;\n };\n}): Promise<BundleRequest> {\n const { bundleRequest, options = {}, context } = params;\n const { packageName, version } = bundleRequest;\n const { reporter, telemetryClient } = context;\n\n const taskName = `Bundle ${formatPackageName({\n name: packageName,\n version,\n })}`;\n\n telemetryClient?.performance.registerAggregator(diskCacheRatioMetricEventAggregator);\n\n const executeBundle = async (): Promise<TaskReporterTaskResult> => {\n await bundle({ bundleRequest, context, options });\n\n diskCacheRatioMetricEventAggregator?.record({\n isCacheHit: !!bundleRequest.resultFromCache,\n isExternal: bundleRequest.isExternal,\n });\n\n const { result } = bundleRequest;\n\n if (!result) {\n return {\n status: 'fail',\n details: `No result was found for \"${packageName}@${version}\"`,\n };\n }\n\n result.outputFiles ??= [];\n result.errors ??= [];\n result.warnings ??= [];\n\n if (!result.outputFiles.length && !result.errors?.length) {\n result.warnings.push({\n text: `No output files were found for \"${packageName}\" in \"${result.outputPath}\"`,\n });\n }\n\n return {\n status: result.errors.length ? 'fail' : 'complete',\n ...(result.errors?.length\n ? formatBundleErrors(result.errors)\n : {\n details: bulletedList([\n `Package: ${bundleRequest.packageName}@${bundleRequest.version}`,\n `Bundler: ${result.bundlerName || 'unknown'}`,\n `Input path: ${bundleRequest.packagePath}`,\n `Entries:`,\n Object.values(result.entries || {}),\n `Output path: ${result.outputPath}`,\n result.outputFiles?.map(\n (file) =>\n `${normalizeRelativePath(file.outputPath)} (${getFileSizeSync(\n path.resolve(result.outputPath, file.outputPath),\n )})`,\n ),\n ]),\n }),\n };\n };\n\n if (reporter) {\n await reporter.runTask(taskName, executeBundle);\n } else {\n await executeBundle();\n }\n\n return bundleRequest;\n}\n\nasync function bundle(params: {\n bundleRequest: BundleRequest;\n context: {\n packages: PackageDefinitionsCache;\n config: CloudpackConfig;\n packageHashes: PackageHashes;\n };\n options?: { force?: boolean };\n}): Promise<BundleRequest> {\n const { bundleRequest, context, options = {} } = params;\n const { config, packageHashes } = context;\n const { force } = options;\n\n // If force is set, dispose the existing result.\n if (force && bundleRequest?.result?.dispose) {\n bundleRequest.result.dispose();\n bundleRequest.result = undefined;\n }\n\n const { packagePath, isExternal, isIncremental, disableSourceMaps, shouldGetBundleInfo } = bundleRequest;\n\n const outputPath =\n bundleRequest.outputPath ?? (await getBundleLocation({ packagePath, shouldRecalculate: force }, context)).path;\n\n // Rehydrate the result if not incremental.\n if (bundleRequest.result === undefined && !force) {\n bundleRequest.result = await readResultFromCache(outputPath, {\n inputPath: packagePath,\n });\n }\n\n const hash = !isExternal\n ? await packageHashes.get({ packagePath, isSourceHashingEnabled: true, shouldRecalculate: true })\n : undefined;\n\n // if the cached result is valid, use it.\n if (!force && isCachedResultValid({ bundleRequest, hash })) {\n console.debug(`Using cached result for ${bundleRequest.packageName}@${bundleRequest.version}`);\n bundleRequest.resultFromCache = true;\n } else {\n bundleRequest.resultFromCache = false;\n\n // Only use cached result if it's successful.\n await prepareOutputPath(outputPath);\n\n if (bundleRequest.result?.rebuild) {\n bundleRequest.result = {\n ...(await bundleRequest.result.rebuild()),\n outputPath: bundleRequest.result.outputPath,\n hash,\n };\n } else {\n const { userPackageSettings, generatedPackageSettings } =\n getPackageSettings({\n name: bundleRequest.packageName,\n version: bundleRequest.version,\n config,\n }) || {};\n const { bundlerType, bundlerOptions } = userPackageSettings || {};\n\n const inlinedDependencies = [\n ...(userPackageSettings?.inlinedDependencies || []),\n ...(generatedPackageSettings?.inlinedDependencies || []),\n ];\n\n const bundleOptions: BundleOptions = {\n bundlerType: bundleRequest.bundlerType || bundlerType,\n overrideOptions: bundlerOptions,\n inputPath: packagePath,\n outputPath,\n incremental: isIncremental !== undefined ? isIncremental : !isExternal,\n sourcemap: disableSourceMaps ? undefined : 'linked',\n entries: await getEntriesMapFromPackage({ inputPath: packagePath }, context),\n inlined: inlinedDependencies,\n external: await getExternalsFromPackage({ inputPath: packagePath }, context),\n };\n\n const bundleInternalResult = await bundleInternal(bundleOptions, { config });\n bundleRequest.result = {\n ...bundleInternalResult,\n outputPath: bundleOptions.outputPath ?? outputPath,\n hash,\n };\n }\n\n // Write the result to disk.\n await saveResultToCache(bundleRequest.result);\n }\n\n // If we should find required imports and exports per bundle\n if (shouldGetBundleInfo && !bundleRequest.result?.errors?.length && bundleRequest.result?.outputFiles?.length) {\n const bundleInfoPath = path.join(outputPath, 'bundle-info.json');\n\n // Exports map is needed to find the bundle info per entry we intend to bundle.\n // Exports map is used instead of bundleRequest.entries since it is easier to use\n // because it contains the paths other packages use to import the entry and\n // the relative location of the bundled files.\n const exportsMap = await getExportsMap({ packagePath }, context);\n\n const bundleInfo = await getBundleInfo({\n outputPath,\n outputFiles: bundleRequest.result.outputFiles,\n exportsMap,\n isExternal,\n });\n\n bundleRequest.result.info = bundleInfo;\n\n // Write to cache for future use. (Ignore the promise result.)\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n writeJson(bundleInfoPath, bundleInfo);\n }\n\n return bundleRequest;\n}\n"]}
1
+ {"version":3,"file":"bundleTask.js","sourceRoot":"","sources":["../../src/utilities/bundleTask.ts"],"names":[],"mappings":"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","sourcesContent":["import { bundle as bundleInternal, getEntriesMapFromPackage, getExternalsFromPackage } from '@ms-cloudpack/bundler';\nimport type { BundleOptions, CloudpackConfig, PackageDefinitionsCache } from '@ms-cloudpack/common-types';\nimport type { PackageHashes } from '@ms-cloudpack/package-hashes';\nimport { getPackageSettings } from '@ms-cloudpack/config';\nimport { writeJson } from '@ms-cloudpack/json-utilities';\nimport { getExportsMap, type ResolveMap } from '@ms-cloudpack/package-utilities';\nimport { normalizeRelativePath } from '@ms-cloudpack/path-string-parsing';\nimport {\n bulletedList,\n formatPackageName,\n type TaskReporter,\n type TaskReporterTaskResult,\n} from '@ms-cloudpack/task-reporter';\nimport type { TelemetryClient } from '@ms-cloudpack/telemetry';\nimport path from 'path';\nimport { prepareOutputPath } from '../common/prepareOutputPath.js';\nimport type { BundleRequest } from '../types/BundleRequest.js';\nimport type { BundleTaskOptions } from '../types/BundleTaskOptions.js';\nimport { diskCacheRatioMetricEventAggregator } from './diskCacheRatioMetricEventAggregator.js';\nimport { formatBundleErrors } from './formatBundleErrors.js';\nimport { getBundleInfo } from './getBundleInfo.js';\nimport { getBundleLocation } from './getBundleLocation.js';\nimport { getFileSizeSync } from './getFileSizeSync.js';\nimport { isCachedResultValid } from './isCachedResultValid.js';\nimport { readResultFromCache } from './readResultFromCache.js';\nimport { saveResultToCache } from './saveResultToCache.js';\n\nexport async function bundleTask(params: {\n bundleRequest: BundleRequest;\n options?: BundleTaskOptions;\n context: {\n packages: PackageDefinitionsCache;\n config: CloudpackConfig;\n resolveMap: ResolveMap;\n packageHashes: PackageHashes;\n reporter?: TaskReporter;\n telemetryClient?: TelemetryClient;\n };\n}): Promise<BundleRequest> {\n const { bundleRequest, options = {}, context } = params;\n const { packageName, version } = bundleRequest;\n const { reporter, telemetryClient } = context;\n\n const taskName = `Bundle ${formatPackageName({\n name: packageName,\n version,\n })}`;\n\n telemetryClient?.performance.registerAggregator(diskCacheRatioMetricEventAggregator);\n\n const executeBundle = async (): Promise<TaskReporterTaskResult> => {\n await bundle({ bundleRequest, context, options });\n\n diskCacheRatioMetricEventAggregator?.record({\n isCacheHit: !!bundleRequest.resultFromCache,\n isExternal: bundleRequest.isExternal,\n });\n\n const { result } = bundleRequest;\n\n if (!result) {\n return {\n status: 'fail',\n details: `[bundleTask] No result was found for \"${packageName}@${version}\"`,\n };\n }\n\n result.outputFiles ??= [];\n result.errors ??= [];\n result.warnings ??= [];\n\n if (!result.outputFiles.length && !result.errors?.length) {\n result.warnings.push({\n text: `No output files were found for \"${packageName}\" in \"${result.outputPath}\"`,\n source: 'bundleTask',\n });\n }\n\n return {\n status: result.errors.length ? 'fail' : 'complete',\n ...(result.errors?.length\n ? formatBundleErrors(result.errors, bundleRequest.packagePath)\n : {\n details: bulletedList([\n `Package: ${bundleRequest.packageName}@${bundleRequest.version}`,\n `Bundler: ${result.bundlerName || 'unknown'}`,\n `Input path: ${bundleRequest.packagePath}`,\n `Entries:`,\n Object.values(result.entries || {}),\n `Output path: ${result.outputPath}`,\n result.outputFiles?.map(\n (file) =>\n `${normalizeRelativePath(file.outputPath)} (${getFileSizeSync(\n path.resolve(result.outputPath, file.outputPath),\n )})`,\n ),\n ]),\n }),\n };\n };\n\n if (reporter) {\n await reporter.runTask(taskName, executeBundle);\n } else {\n await executeBundle();\n }\n\n return bundleRequest;\n}\n\nasync function bundle(params: {\n bundleRequest: BundleRequest;\n context: {\n packages: PackageDefinitionsCache;\n config: CloudpackConfig;\n packageHashes: PackageHashes;\n };\n options?: BundleTaskOptions;\n}): Promise<BundleRequest> {\n const { bundleRequest, context, options = {} } = params;\n const { config, packageHashes } = context;\n const { force, hash, sourceHash } = options;\n\n // If force is set, dispose the existing result.\n if (force && bundleRequest?.result?.dispose) {\n bundleRequest.result.dispose();\n bundleRequest.result = undefined;\n }\n\n const { packagePath, isExternal, isIncremental, disableSourceMaps, shouldGetBundleInfo } = bundleRequest;\n\n const outputPath =\n bundleRequest.outputPath ??\n (await getBundleLocation({ packagePath, shouldRecalculate: force, hash }, context)).path;\n\n // Rehydrate the result if not incremental.\n if (bundleRequest.result === undefined && !force) {\n bundleRequest.result = await readResultFromCache(outputPath, {\n inputPath: packagePath,\n });\n }\n\n const cacheValidationHash = !isExternal\n ? sourceHash || (await packageHashes.get({ packagePath, isSourceHashingEnabled: true, shouldRecalculate: true }))\n : undefined;\n\n // if the cached result is valid, use it.\n if (!force && isCachedResultValid({ bundleRequest, hash: cacheValidationHash })) {\n console.debug(`Using cached result for ${bundleRequest.packageName}@${bundleRequest.version}`);\n bundleRequest.resultFromCache = true;\n } else {\n bundleRequest.resultFromCache = false;\n\n // Only use cached result if it's successful.\n await prepareOutputPath(outputPath);\n\n if (bundleRequest.result?.rebuild) {\n bundleRequest.result = {\n ...(await bundleRequest.result.rebuild()),\n outputPath: bundleRequest.result.outputPath,\n hash: cacheValidationHash,\n };\n } else {\n const { userPackageSettings, generatedPackageSettings } =\n getPackageSettings({\n name: bundleRequest.packageName,\n version: bundleRequest.version,\n config,\n }) || {};\n const { bundlerType, bundlerOptions } = userPackageSettings || {};\n\n const inlinedDependencies = [\n ...(userPackageSettings?.inlinedDependencies || []),\n ...(generatedPackageSettings?.inlinedDependencies || []),\n ];\n\n const bundleOptions: BundleOptions = {\n bundlerType: bundleRequest.bundlerType || bundlerType,\n overrideOptions: bundlerOptions,\n inputPath: packagePath,\n outputPath,\n incremental: isIncremental !== undefined ? isIncremental : !isExternal,\n sourcemap: disableSourceMaps ? undefined : 'linked',\n entries: await getEntriesMapFromPackage({ inputPath: packagePath }, context),\n inlined: inlinedDependencies,\n external: await getExternalsFromPackage({ inputPath: packagePath }, context),\n };\n\n const bundleInternalResult = await bundleInternal(bundleOptions, { config });\n bundleRequest.result = {\n ...bundleInternalResult,\n outputPath: bundleOptions.outputPath ?? outputPath,\n hash: cacheValidationHash,\n };\n }\n\n // Write the result to disk.\n await saveResultToCache(bundleRequest.result);\n }\n\n // If we should find required imports and exports per bundle\n if (shouldGetBundleInfo && !bundleRequest.result?.errors?.length && bundleRequest.result?.outputFiles?.length) {\n const bundleInfoPath = path.join(outputPath, 'bundle-info.json');\n\n // Exports map is needed to find the bundle info per entry we intend to bundle.\n // Exports map is used instead of bundleRequest.entries since it is easier to use\n // because it contains the paths other packages use to import the entry and\n // the relative location of the bundled files.\n const exportsMap = await getExportsMap({ packagePath }, context);\n\n const bundleInfo = await getBundleInfo({\n outputPath,\n outputFiles: bundleRequest.result.outputFiles,\n exportsMap,\n isExternal,\n });\n\n bundleRequest.result.info = bundleInfo;\n\n // Write to cache for future use. (Ignore the promise result.)\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n writeJson(bundleInfoPath, bundleInfo);\n }\n\n return bundleRequest;\n}\n"]}