@ms-cloudpack/api-server 0.6.21 → 0.7.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 (54) hide show
  1. package/lib/apis/addPackageOverride.d.ts +2 -0
  2. package/lib/apis/addPackageOverride.d.ts.map +1 -1
  3. package/lib/apis/addPackageOverride.js +2 -2
  4. package/lib/apis/addPackageOverride.js.map +1 -1
  5. package/lib/apis/bus.d.ts +2 -0
  6. package/lib/apis/bus.d.ts.map +1 -1
  7. package/lib/apis/openCodeEditor.d.ts +2 -0
  8. package/lib/apis/openCodeEditor.d.ts.map +1 -1
  9. package/lib/apis/openConfigEditor.d.ts +2 -0
  10. package/lib/apis/openConfigEditor.d.ts.map +1 -1
  11. package/lib/apis/openFilePath.d.ts +2 -0
  12. package/lib/apis/openFilePath.d.ts.map +1 -1
  13. package/lib/apis/reportMetric.d.ts +2 -0
  14. package/lib/apis/reportMetric.d.ts.map +1 -1
  15. package/lib/apis/restartAllTasks.d.ts +2 -0
  16. package/lib/apis/restartAllTasks.d.ts.map +1 -1
  17. package/lib/apis/restartAllTasks.js +0 -5
  18. package/lib/apis/restartAllTasks.js.map +1 -1
  19. package/lib/apis/restartTask.d.ts +2 -0
  20. package/lib/apis/restartTask.d.ts.map +1 -1
  21. package/lib/apis/validatePackageOverride.d.ts +2 -0
  22. package/lib/apis/validatePackageOverride.d.ts.map +1 -1
  23. package/lib/apis/validatePackageOverride.js +2 -2
  24. package/lib/apis/validatePackageOverride.js.map +1 -1
  25. package/lib/appRouter.d.ts +19 -0
  26. package/lib/appRouter.d.ts.map +1 -1
  27. package/lib/createCloudpackServer.d.ts +2 -0
  28. package/lib/createCloudpackServer.d.ts.map +1 -1
  29. package/lib/createCloudpackServer.js.map +1 -1
  30. package/lib/createContextFactory.d.ts +3 -0
  31. package/lib/createContextFactory.d.ts.map +1 -1
  32. package/lib/createContextFactory.js +3 -1
  33. package/lib/createContextFactory.js.map +1 -1
  34. package/lib/startApiServer.d.ts +2 -1
  35. package/lib/startApiServer.d.ts.map +1 -1
  36. package/lib/startApiServer.js +3 -10
  37. package/lib/startApiServer.js.map +1 -1
  38. package/lib/trpc.d.ts +3 -0
  39. package/lib/trpc.d.ts.map +1 -1
  40. package/lib/utilities/addOverride.d.ts +8 -5
  41. package/lib/utilities/addOverride.d.ts.map +1 -1
  42. package/lib/utilities/addOverride.js +40 -41
  43. package/lib/utilities/addOverride.js.map +1 -1
  44. package/lib/utilities/editCloudpackConfig.js +4 -4
  45. package/lib/utilities/editCloudpackConfig.js.map +1 -1
  46. package/lib/utilities/validateOverride.d.ts +10 -3
  47. package/lib/utilities/validateOverride.d.ts.map +1 -1
  48. package/lib/utilities/validateOverride.js +10 -4
  49. package/lib/utilities/validateOverride.js.map +1 -1
  50. package/package.json +9 -9
  51. package/lib/utilities/createPackageOverrideTransform.d.ts +0 -7
  52. package/lib/utilities/createPackageOverrideTransform.d.ts.map +0 -1
  53. package/lib/utilities/createPackageOverrideTransform.js +0 -19
  54. package/lib/utilities/createPackageOverrideTransform.js.map +0 -1
@@ -10,6 +10,7 @@ export declare const addPackageOverride: import("@trpc/server").BuildProcedure<"
10
10
  taskRunner: import("../utilities/TaskRunner.js").TaskRunner;
11
11
  rootSpan: import("@opentelemetry/api").Span | undefined;
12
12
  reporter: import("@ms-cloudpack/task-reporter").TaskReporter;
13
+ packages: import("@ms-cloudpack/bundler-types").PackageDefinitionsCache;
13
14
  };
14
15
  meta: object;
15
16
  errorShape: import("@trpc/server").DefaultErrorShape;
@@ -23,6 +24,7 @@ export declare const addPackageOverride: import("@trpc/server").BuildProcedure<"
23
24
  taskRunner: import("../utilities/TaskRunner.js").TaskRunner;
24
25
  rootSpan: import("@opentelemetry/api").Span | undefined;
25
26
  reporter: import("@ms-cloudpack/task-reporter").TaskReporter;
27
+ packages: import("@ms-cloudpack/bundler-types").PackageDefinitionsCache;
26
28
  };
27
29
  _input_in: {
28
30
  packageName: string;
@@ -1 +1 @@
1
- {"version":3,"file":"addPackageOverride.d.ts","sourceRoot":"","sources":["../../src/apis/addPackageOverride.ts"],"names":[],"mappings":"AAKA;;GAEG;AACH,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QAW3B,CAAC"}
1
+ {"version":3,"file":"addPackageOverride.d.ts","sourceRoot":"","sources":["../../src/apis/addPackageOverride.ts"],"names":[],"mappings":"AAKA;;GAEG;AACH,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QAW3B,CAAC"}
@@ -10,8 +10,8 @@ export const addPackageOverride = publicProcedure
10
10
  packageName: z.string(),
11
11
  importPath: z.string(),
12
12
  }))
13
- .mutation(async ({ input: { packageName, importPath }, ctx: { session, bus } }) => {
14
- await addOverride({ session, packageName, importPath });
13
+ .mutation(async ({ input: { packageName, importPath }, ctx: { session, bus, packages } }) => {
14
+ await addOverride({ packageName, importPath }, { session, packages });
15
15
  session.incrementSessionVersion();
16
16
  notifyReload({ bus });
17
17
  });
@@ -1 +1 @@
1
- {"version":3,"file":"addPackageOverride.js","sourceRoot":"","sources":["../../src/apis/addPackageOverride.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAC1D,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAE5D;;GAEG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,eAAe;KAC9C,KAAK,CACJ,CAAC,CAAC,MAAM,CAAC;IACP,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE;IACvB,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE;CACvB,CAAC,CACH;KACA,QAAQ,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,EAAE,WAAW,EAAE,UAAU,EAAE,EAAE,GAAG,EAAE,EAAE,OAAO,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE;IAChF,MAAM,WAAW,CAAC,EAAE,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,CAAC,CAAC;IACxD,OAAO,CAAC,uBAAuB,EAAE,CAAC;IAClC,YAAY,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC;AACxB,CAAC,CAAC,CAAC","sourcesContent":["import { publicProcedure } from '../trpc.js';\nimport { z } from 'zod';\nimport { addOverride } from '../utilities/addOverride.js';\nimport { notifyReload } from '../utilities/notifyReload.js';\n\n/**\n * Adds an override to the cloudpack config.\n */\nexport const addPackageOverride = publicProcedure\n .input(\n z.object({\n packageName: z.string(),\n importPath: z.string(),\n }),\n )\n .mutation(async ({ input: { packageName, importPath }, ctx: { session, bus } }) => {\n await addOverride({ session, packageName, importPath });\n session.incrementSessionVersion();\n notifyReload({ bus });\n });\n"]}
1
+ {"version":3,"file":"addPackageOverride.js","sourceRoot":"","sources":["../../src/apis/addPackageOverride.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAC1D,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAE5D;;GAEG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,eAAe;KAC9C,KAAK,CACJ,CAAC,CAAC,MAAM,CAAC;IACP,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE;IACvB,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE;CACvB,CAAC,CACH;KACA,QAAQ,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,EAAE,WAAW,EAAE,UAAU,EAAE,EAAE,GAAG,EAAE,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,EAAE,EAAE,EAAE;IAC1F,MAAM,WAAW,CAAC,EAAE,WAAW,EAAE,UAAU,EAAE,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,CAAC;IACtE,OAAO,CAAC,uBAAuB,EAAE,CAAC;IAClC,YAAY,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC;AACxB,CAAC,CAAC,CAAC","sourcesContent":["import { publicProcedure } from '../trpc.js';\nimport { z } from 'zod';\nimport { addOverride } from '../utilities/addOverride.js';\nimport { notifyReload } from '../utilities/notifyReload.js';\n\n/**\n * Adds an override to the cloudpack config.\n */\nexport const addPackageOverride = publicProcedure\n .input(\n z.object({\n packageName: z.string(),\n importPath: z.string(),\n }),\n )\n .mutation(async ({ input: { packageName, importPath }, ctx: { session, bus, packages } }) => {\n await addOverride({ packageName, importPath }, { session, packages });\n session.incrementSessionVersion();\n notifyReload({ bus });\n });\n"]}
package/lib/apis/bus.d.ts CHANGED
@@ -13,6 +13,7 @@ export declare const bus: import("@trpc/server").BuildProcedure<"subscription",
13
13
  taskRunner: import("../utilities/TaskRunner.js").TaskRunner;
14
14
  rootSpan: import("@opentelemetry/api").Span | undefined;
15
15
  reporter: import("@ms-cloudpack/task-reporter").TaskReporter;
16
+ packages: import("@ms-cloudpack/bundler-types").PackageDefinitionsCache;
16
17
  };
17
18
  meta: object;
18
19
  errorShape: import("@trpc/server").DefaultErrorShape;
@@ -26,6 +27,7 @@ export declare const bus: import("@trpc/server").BuildProcedure<"subscription",
26
27
  taskRunner: import("../utilities/TaskRunner.js").TaskRunner;
27
28
  rootSpan: import("@opentelemetry/api").Span | undefined;
28
29
  reporter: import("@ms-cloudpack/task-reporter").TaskReporter;
30
+ packages: import("@ms-cloudpack/bundler-types").PackageDefinitionsCache;
29
31
  };
30
32
  _input_in: {
31
33
  path: string[];
@@ -1 +1 @@
1
- {"version":3,"file":"bus.d.ts","sourceRoot":"","sources":["../../src/apis/bus.ts"],"names":[],"mappings":"AAGA;;;;;GAKG;AACH,eAAO,MAAM,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8DAgBZ,CAAC"}
1
+ {"version":3,"file":"bus.d.ts","sourceRoot":"","sources":["../../src/apis/bus.ts"],"names":[],"mappings":"AAGA;;;;;GAKG;AACH,eAAO,MAAM,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8DAgBZ,CAAC"}
@@ -7,6 +7,7 @@ export declare const openCodeEditor: import("@trpc/server").BuildProcedure<"muta
7
7
  taskRunner: import("../utilities/TaskRunner.js").TaskRunner;
8
8
  rootSpan: import("@opentelemetry/api").Span | undefined;
9
9
  reporter: import("@ms-cloudpack/task-reporter").TaskReporter;
10
+ packages: import("@ms-cloudpack/bundler-types").PackageDefinitionsCache;
10
11
  };
11
12
  meta: object;
12
13
  errorShape: import("@trpc/server").DefaultErrorShape;
@@ -20,6 +21,7 @@ export declare const openCodeEditor: import("@trpc/server").BuildProcedure<"muta
20
21
  taskRunner: import("../utilities/TaskRunner.js").TaskRunner;
21
22
  rootSpan: import("@opentelemetry/api").Span | undefined;
22
23
  reporter: import("@ms-cloudpack/task-reporter").TaskReporter;
24
+ packages: import("@ms-cloudpack/bundler-types").PackageDefinitionsCache;
23
25
  };
24
26
  _input_in: {
25
27
  rootPath: string;
@@ -1 +1 @@
1
- {"version":3,"file":"openCodeEditor.d.ts","sourceRoot":"","sources":["../../src/apis/openCodeEditor.ts"],"names":[],"mappings":"AAQA,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QAevB,CAAC"}
1
+ {"version":3,"file":"openCodeEditor.d.ts","sourceRoot":"","sources":["../../src/apis/openCodeEditor.ts"],"names":[],"mappings":"AAQA,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QAevB,CAAC"}
@@ -7,6 +7,7 @@ export declare const openConfigEditor: import("@trpc/server").BuildProcedure<"mu
7
7
  taskRunner: import("../utilities/TaskRunner.js").TaskRunner;
8
8
  rootSpan: import("@opentelemetry/api").Span | undefined;
9
9
  reporter: import("@ms-cloudpack/task-reporter").TaskReporter;
10
+ packages: import("@ms-cloudpack/bundler-types").PackageDefinitionsCache;
10
11
  };
11
12
  meta: object;
12
13
  errorShape: import("@trpc/server").DefaultErrorShape;
@@ -19,6 +20,7 @@ export declare const openConfigEditor: import("@trpc/server").BuildProcedure<"mu
19
20
  taskRunner: import("../utilities/TaskRunner.js").TaskRunner;
20
21
  rootSpan: import("@opentelemetry/api").Span | undefined;
21
22
  reporter: import("@ms-cloudpack/task-reporter").TaskReporter;
23
+ packages: import("@ms-cloudpack/bundler-types").PackageDefinitionsCache;
22
24
  };
23
25
  _input_in: typeof import("@trpc/server").unsetMarker;
24
26
  _input_out: typeof import("@trpc/server").unsetMarker;
@@ -1 +1 @@
1
- {"version":3,"file":"openConfigEditor.d.ts","sourceRoot":"","sources":["../../src/apis/openConfigEditor.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;QAAgD,CAAC"}
1
+ {"version":3,"file":"openConfigEditor.d.ts","sourceRoot":"","sources":["../../src/apis/openConfigEditor.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QAAgD,CAAC"}
@@ -7,6 +7,7 @@ export declare const openFilePath: import("@trpc/server").BuildProcedure<"query"
7
7
  taskRunner: import("../utilities/TaskRunner.js").TaskRunner;
8
8
  rootSpan: import("@opentelemetry/api").Span | undefined;
9
9
  reporter: import("@ms-cloudpack/task-reporter").TaskReporter;
10
+ packages: import("@ms-cloudpack/bundler-types").PackageDefinitionsCache;
10
11
  };
11
12
  meta: object;
12
13
  errorShape: import("@trpc/server").DefaultErrorShape;
@@ -20,6 +21,7 @@ export declare const openFilePath: import("@trpc/server").BuildProcedure<"query"
20
21
  taskRunner: import("../utilities/TaskRunner.js").TaskRunner;
21
22
  rootSpan: import("@opentelemetry/api").Span | undefined;
22
23
  reporter: import("@ms-cloudpack/task-reporter").TaskReporter;
24
+ packages: import("@ms-cloudpack/bundler-types").PackageDefinitionsCache;
23
25
  };
24
26
  _input_in: {
25
27
  rootPath: string;
@@ -1 +1 @@
1
- {"version":3,"file":"openFilePath.d.ts","sourceRoot":"","sources":["../../src/apis/openFilePath.ts"],"names":[],"mappings":"AASA,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QAcrB,CAAC"}
1
+ {"version":3,"file":"openFilePath.d.ts","sourceRoot":"","sources":["../../src/apis/openFilePath.ts"],"names":[],"mappings":"AASA,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QAcrB,CAAC"}
@@ -7,6 +7,7 @@ export declare const reportMetric: import("@trpc/server").BuildProcedure<"mutati
7
7
  taskRunner: import("../utilities/TaskRunner.js").TaskRunner;
8
8
  rootSpan: import("@opentelemetry/api").Span | undefined;
9
9
  reporter: import("@ms-cloudpack/task-reporter").TaskReporter;
10
+ packages: import("@ms-cloudpack/bundler-types").PackageDefinitionsCache;
10
11
  };
11
12
  meta: object;
12
13
  errorShape: import("@trpc/server").DefaultErrorShape;
@@ -20,6 +21,7 @@ export declare const reportMetric: import("@trpc/server").BuildProcedure<"mutati
20
21
  taskRunner: import("../utilities/TaskRunner.js").TaskRunner;
21
22
  rootSpan: import("@opentelemetry/api").Span | undefined;
22
23
  reporter: import("@ms-cloudpack/task-reporter").TaskReporter;
24
+ packages: import("@ms-cloudpack/bundler-types").PackageDefinitionsCache;
23
25
  };
24
26
  _input_in: {
25
27
  metric: string;
@@ -1 +1 @@
1
- {"version":3,"file":"reportMetric.d.ts","sourceRoot":"","sources":["../../src/apis/reportMetric.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QASrB,CAAC"}
1
+ {"version":3,"file":"reportMetric.d.ts","sourceRoot":"","sources":["../../src/apis/reportMetric.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QASrB,CAAC"}
@@ -7,6 +7,7 @@ export declare const restartAllTasks: import("@trpc/server").BuildProcedure<"mut
7
7
  taskRunner: import("../utilities/TaskRunner.js").TaskRunner;
8
8
  rootSpan: import("@opentelemetry/api").Span | undefined;
9
9
  reporter: import("@ms-cloudpack/task-reporter").TaskReporter;
10
+ packages: import("@ms-cloudpack/bundler-types").PackageDefinitionsCache;
10
11
  };
11
12
  meta: object;
12
13
  errorShape: import("@trpc/server").DefaultErrorShape;
@@ -19,6 +20,7 @@ export declare const restartAllTasks: import("@trpc/server").BuildProcedure<"mut
19
20
  taskRunner: import("../utilities/TaskRunner.js").TaskRunner;
20
21
  rootSpan: import("@opentelemetry/api").Span | undefined;
21
22
  reporter: import("@ms-cloudpack/task-reporter").TaskReporter;
23
+ packages: import("@ms-cloudpack/bundler-types").PackageDefinitionsCache;
22
24
  };
23
25
  _input_in: typeof import("@trpc/server").unsetMarker;
24
26
  _input_out: typeof import("@trpc/server").unsetMarker;
@@ -1 +1 @@
1
- {"version":3,"file":"restartAllTasks.d.ts","sourceRoot":"","sources":["../../src/apis/restartAllTasks.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;QAuB1B,CAAC"}
1
+ {"version":3,"file":"restartAllTasks.d.ts","sourceRoot":"","sources":["../../src/apis/restartAllTasks.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QAgB1B,CAAC"}
@@ -11,11 +11,6 @@ export const restartAllTasks = publicProcedure.mutation(async ({ ctx: { allTasks
11
11
  allTasks.forEach((_, id) => {
12
12
  taskRunner.remove(id);
13
13
  });
14
- // NOTE: The above lines are commended out because they seem totally unneeded.
15
- // Parse config if it exists.
16
- // const cloudpackConfig = await readConfig();
17
- // Initialize package overrides.
18
- // PackageDefinitions.getInstance().registerTransform(createPackageOverrideTransform(cloudpackConfig));
19
14
  // Update session version.
20
15
  session.incrementSessionVersion();
21
16
  notifyReload({ bus });
@@ -1 +1 @@
1
- {"version":3,"file":"restartAllTasks.js","sourceRoot":"","sources":["../../src/apis/restartAllTasks.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AACxC,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAC5D,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAE5D,MAAM,CAAC,MAAM,eAAe,GAAG,eAAe,CAAC,QAAQ,CAAC,KAAK,EAAE,EAAE,GAAG,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,EAAE,UAAU,EAAE,EAAE,EAAE,EAAE;IAChH,OAAO,CAAC,GAAG,CAAC,iCAAiC,CAAC,CAAC;IAE/C,4BAA4B;IAC5B,MAAM,QAAQ,CAAC,YAAY,EAAE,CAAC,CAAC;IAE/B,6CAA6C;IAC7C,gDAAgD;IAChD,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE;QACzB,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IACxB,CAAC,CAAC,CAAC;IAEH,8EAA8E;IAC9E,6BAA6B;IAC7B,8CAA8C;IAE9C,gCAAgC;IAChC,uGAAuG;IAEvG,0BAA0B;IAC1B,OAAO,CAAC,uBAAuB,EAAE,CAAC;IAElC,YAAY,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC;AACxB,CAAC,CAAC,CAAC","sourcesContent":["import { emptyDir } from 'fs-extra/esm';\nimport { publicProcedure } from '../trpc.js';\nimport { getCachePath } from '../utilities/getCachePath.js';\nimport { notifyReload } from '../utilities/notifyReload.js';\n\nexport const restartAllTasks = publicProcedure.mutation(async ({ ctx: { allTasks, session, bus, taskRunner } }) => {\n console.log('ApiServer: Restarting all tasks');\n\n // Clear entire local cache.\n await emptyDir(getCachePath());\n\n // All tasks can be removed as notifyReload()\n // will cause the client to add the tasks again.\n allTasks.forEach((_, id) => {\n taskRunner.remove(id);\n });\n\n // NOTE: The above lines are commended out because they seem totally unneeded.\n // Parse config if it exists.\n // const cloudpackConfig = await readConfig();\n\n // Initialize package overrides.\n // PackageDefinitions.getInstance().registerTransform(createPackageOverrideTransform(cloudpackConfig));\n\n // Update session version.\n session.incrementSessionVersion();\n\n notifyReload({ bus });\n});\n"]}
1
+ {"version":3,"file":"restartAllTasks.js","sourceRoot":"","sources":["../../src/apis/restartAllTasks.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AACxC,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAC5D,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAE5D,MAAM,CAAC,MAAM,eAAe,GAAG,eAAe,CAAC,QAAQ,CAAC,KAAK,EAAE,EAAE,GAAG,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,EAAE,UAAU,EAAE,EAAE,EAAE,EAAE;IAChH,OAAO,CAAC,GAAG,CAAC,iCAAiC,CAAC,CAAC;IAE/C,4BAA4B;IAC5B,MAAM,QAAQ,CAAC,YAAY,EAAE,CAAC,CAAC;IAE/B,6CAA6C;IAC7C,gDAAgD;IAChD,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE;QACzB,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IACxB,CAAC,CAAC,CAAC;IAEH,0BAA0B;IAC1B,OAAO,CAAC,uBAAuB,EAAE,CAAC;IAElC,YAAY,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC;AACxB,CAAC,CAAC,CAAC","sourcesContent":["import { emptyDir } from 'fs-extra/esm';\nimport { publicProcedure } from '../trpc.js';\nimport { getCachePath } from '../utilities/getCachePath.js';\nimport { notifyReload } from '../utilities/notifyReload.js';\n\nexport const restartAllTasks = publicProcedure.mutation(async ({ ctx: { allTasks, session, bus, taskRunner } }) => {\n console.log('ApiServer: Restarting all tasks');\n\n // Clear entire local cache.\n await emptyDir(getCachePath());\n\n // All tasks can be removed as notifyReload()\n // will cause the client to add the tasks again.\n allTasks.forEach((_, id) => {\n taskRunner.remove(id);\n });\n\n // Update session version.\n session.incrementSessionVersion();\n\n notifyReload({ bus });\n});\n"]}
@@ -7,6 +7,7 @@ export declare const restartTask: import("@trpc/server").BuildProcedure<"mutatio
7
7
  taskRunner: import("../utilities/TaskRunner.js").TaskRunner;
8
8
  rootSpan: import("@opentelemetry/api").Span | undefined;
9
9
  reporter: import("@ms-cloudpack/task-reporter").TaskReporter;
10
+ packages: import("@ms-cloudpack/bundler-types").PackageDefinitionsCache;
10
11
  };
11
12
  meta: object;
12
13
  errorShape: import("@trpc/server").DefaultErrorShape;
@@ -20,6 +21,7 @@ export declare const restartTask: import("@trpc/server").BuildProcedure<"mutatio
20
21
  taskRunner: import("../utilities/TaskRunner.js").TaskRunner;
21
22
  rootSpan: import("@opentelemetry/api").Span | undefined;
22
23
  reporter: import("@ms-cloudpack/task-reporter").TaskReporter;
24
+ packages: import("@ms-cloudpack/bundler-types").PackageDefinitionsCache;
23
25
  };
24
26
  _input_in: {
25
27
  id: string;
@@ -1 +1 @@
1
- {"version":3,"file":"restartTask.d.ts","sourceRoot":"","sources":["../../src/apis/restartTask.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QAWpB,CAAC"}
1
+ {"version":3,"file":"restartTask.d.ts","sourceRoot":"","sources":["../../src/apis/restartTask.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QAWpB,CAAC"}
@@ -7,6 +7,7 @@ export declare const validatePackageOverride: import("@trpc/server").BuildProced
7
7
  taskRunner: import("../utilities/TaskRunner.js").TaskRunner;
8
8
  rootSpan: import("@opentelemetry/api").Span | undefined;
9
9
  reporter: import("@ms-cloudpack/task-reporter").TaskReporter;
10
+ packages: import("@ms-cloudpack/bundler-types").PackageDefinitionsCache;
10
11
  };
11
12
  meta: object;
12
13
  errorShape: import("@trpc/server").DefaultErrorShape;
@@ -20,6 +21,7 @@ export declare const validatePackageOverride: import("@trpc/server").BuildProced
20
21
  taskRunner: import("../utilities/TaskRunner.js").TaskRunner;
21
22
  rootSpan: import("@opentelemetry/api").Span | undefined;
22
23
  reporter: import("@ms-cloudpack/task-reporter").TaskReporter;
24
+ packages: import("@ms-cloudpack/bundler-types").PackageDefinitionsCache;
23
25
  };
24
26
  _input_in: {
25
27
  packageName: string;
@@ -1 +1 @@
1
- {"version":3,"file":"validatePackageOverride.d.ts","sourceRoot":"","sources":["../../src/apis/validatePackageOverride.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;WAgBhC,CAAC"}
1
+ {"version":3,"file":"validatePackageOverride.d.ts","sourceRoot":"","sources":["../../src/apis/validatePackageOverride.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;WAgBhC,CAAC"}
@@ -9,9 +9,9 @@ export const validatePackageOverride = publicProcedure
9
9
  .output(z.object({
10
10
  fixable: z.boolean(),
11
11
  }))
12
- .query(async ({ input: { packageName, importPath }, ctx: { session } }) => {
12
+ .query(async ({ input: { packageName, importPath }, ctx: { session, packages } }) => {
13
13
  return {
14
- fixable: await validateOverride({ session, packageName, importPath }),
14
+ fixable: await validateOverride({ packageName, importPath }, { session, packages }),
15
15
  };
16
16
  });
17
17
  //# sourceMappingURL=validatePackageOverride.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"validatePackageOverride.js","sourceRoot":"","sources":["../../src/apis/validatePackageOverride.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AAEpE,MAAM,CAAC,MAAM,uBAAuB,GAAG,eAAe;KACnD,KAAK,CACJ,CAAC,CAAC,MAAM,CAAC;IACP,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE;IACvB,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE;CACvB,CAAC,CACH;KACA,MAAM,CACL,CAAC,CAAC,MAAM,CAAC;IACP,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE;CACrB,CAAC,CACH;KACA,KAAK,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,EAAE,WAAW,EAAE,UAAU,EAAE,EAAE,GAAG,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,EAAE;IACxE,OAAO;QACL,OAAO,EAAE,MAAM,gBAAgB,CAAC,EAAE,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,CAAC;KACtE,CAAC;AACJ,CAAC,CAAC,CAAC","sourcesContent":["import { publicProcedure } from '../trpc.js';\nimport { z } from 'zod';\nimport { validateOverride } from '../utilities/validateOverride.js';\n\nexport const validatePackageOverride = publicProcedure\n .input(\n z.object({\n packageName: z.string(),\n importPath: z.string(),\n }),\n )\n .output(\n z.object({\n fixable: z.boolean(),\n }),\n )\n .query(async ({ input: { packageName, importPath }, ctx: { session } }) => {\n return {\n fixable: await validateOverride({ session, packageName, importPath }),\n };\n });\n"]}
1
+ {"version":3,"file":"validatePackageOverride.js","sourceRoot":"","sources":["../../src/apis/validatePackageOverride.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AAEpE,MAAM,CAAC,MAAM,uBAAuB,GAAG,eAAe;KACnD,KAAK,CACJ,CAAC,CAAC,MAAM,CAAC;IACP,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE;IACvB,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE;CACvB,CAAC,CACH;KACA,MAAM,CACL,CAAC,CAAC,MAAM,CAAC;IACP,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE;CACrB,CAAC,CACH;KACA,KAAK,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,EAAE,WAAW,EAAE,UAAU,EAAE,EAAE,GAAG,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,EAAE;IAClF,OAAO;QACL,OAAO,EAAE,MAAM,gBAAgB,CAAC,EAAE,WAAW,EAAE,UAAU,EAAE,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC;KACpF,CAAC;AACJ,CAAC,CAAC,CAAC","sourcesContent":["import { publicProcedure } from '../trpc.js';\nimport { z } from 'zod';\nimport { validateOverride } from '../utilities/validateOverride.js';\n\nexport const validatePackageOverride = publicProcedure\n .input(\n z.object({\n packageName: z.string(),\n importPath: z.string(),\n }),\n )\n .output(\n z.object({\n fixable: z.boolean(),\n }),\n )\n .query(async ({ input: { packageName, importPath }, ctx: { session, packages } }) => {\n return {\n fixable: await validateOverride({ packageName, importPath }, { session, packages }),\n };\n });\n"]}
@@ -6,6 +6,7 @@ export declare const appRouter: import("@trpc/server").CreateRouterInner<import(
6
6
  taskRunner: import("./utilities/TaskRunner.js").TaskRunner;
7
7
  rootSpan: import("@opentelemetry/api").Span | undefined;
8
8
  reporter: import("@ms-cloudpack/task-reporter").TaskReporter;
9
+ packages: import("@ms-cloudpack/bundler-types").PackageDefinitionsCache;
9
10
  };
10
11
  meta: object;
11
12
  errorShape: import("@trpc/server").DefaultErrorShape;
@@ -20,6 +21,7 @@ export declare const appRouter: import("@trpc/server").CreateRouterInner<import(
20
21
  taskRunner: import("./utilities/TaskRunner.js").TaskRunner;
21
22
  rootSpan: import("@opentelemetry/api").Span | undefined;
22
23
  reporter: import("@ms-cloudpack/task-reporter").TaskReporter;
24
+ packages: import("@ms-cloudpack/bundler-types").PackageDefinitionsCache;
23
25
  };
24
26
  meta: object;
25
27
  errorShape: import("@trpc/server").DefaultErrorShape;
@@ -33,6 +35,7 @@ export declare const appRouter: import("@trpc/server").CreateRouterInner<import(
33
35
  taskRunner: import("./utilities/TaskRunner.js").TaskRunner;
34
36
  rootSpan: import("@opentelemetry/api").Span | undefined;
35
37
  reporter: import("@ms-cloudpack/task-reporter").TaskReporter;
38
+ packages: import("@ms-cloudpack/bundler-types").PackageDefinitionsCache;
36
39
  };
37
40
  _input_in: {
38
41
  packageName: string;
@@ -54,6 +57,7 @@ export declare const appRouter: import("@trpc/server").CreateRouterInner<import(
54
57
  taskRunner: import("./utilities/TaskRunner.js").TaskRunner;
55
58
  rootSpan: import("@opentelemetry/api").Span | undefined;
56
59
  reporter: import("@ms-cloudpack/task-reporter").TaskReporter;
60
+ packages: import("@ms-cloudpack/bundler-types").PackageDefinitionsCache;
57
61
  };
58
62
  meta: object;
59
63
  errorShape: import("@trpc/server").DefaultErrorShape;
@@ -67,6 +71,7 @@ export declare const appRouter: import("@trpc/server").CreateRouterInner<import(
67
71
  taskRunner: import("./utilities/TaskRunner.js").TaskRunner;
68
72
  rootSpan: import("@opentelemetry/api").Span | undefined;
69
73
  reporter: import("@ms-cloudpack/task-reporter").TaskReporter;
74
+ packages: import("@ms-cloudpack/bundler-types").PackageDefinitionsCache;
70
75
  };
71
76
  _input_in: {
72
77
  path: string[];
@@ -86,6 +91,7 @@ export declare const appRouter: import("@trpc/server").CreateRouterInner<import(
86
91
  taskRunner: import("./utilities/TaskRunner.js").TaskRunner;
87
92
  rootSpan: import("@opentelemetry/api").Span | undefined;
88
93
  reporter: import("@ms-cloudpack/task-reporter").TaskReporter;
94
+ packages: import("@ms-cloudpack/bundler-types").PackageDefinitionsCache;
89
95
  };
90
96
  meta: object;
91
97
  errorShape: import("@trpc/server").DefaultErrorShape;
@@ -99,6 +105,7 @@ export declare const appRouter: import("@trpc/server").CreateRouterInner<import(
99
105
  taskRunner: import("./utilities/TaskRunner.js").TaskRunner;
100
106
  rootSpan: import("@opentelemetry/api").Span | undefined;
101
107
  reporter: import("@ms-cloudpack/task-reporter").TaskReporter;
108
+ packages: import("@ms-cloudpack/bundler-types").PackageDefinitionsCache;
102
109
  };
103
110
  _input_in: {
104
111
  rootPath: string;
@@ -124,6 +131,7 @@ export declare const appRouter: import("@trpc/server").CreateRouterInner<import(
124
131
  taskRunner: import("./utilities/TaskRunner.js").TaskRunner;
125
132
  rootSpan: import("@opentelemetry/api").Span | undefined;
126
133
  reporter: import("@ms-cloudpack/task-reporter").TaskReporter;
134
+ packages: import("@ms-cloudpack/bundler-types").PackageDefinitionsCache;
127
135
  };
128
136
  meta: object;
129
137
  errorShape: import("@trpc/server").DefaultErrorShape;
@@ -136,6 +144,7 @@ export declare const appRouter: import("@trpc/server").CreateRouterInner<import(
136
144
  taskRunner: import("./utilities/TaskRunner.js").TaskRunner;
137
145
  rootSpan: import("@opentelemetry/api").Span | undefined;
138
146
  reporter: import("@ms-cloudpack/task-reporter").TaskReporter;
147
+ packages: import("@ms-cloudpack/bundler-types").PackageDefinitionsCache;
139
148
  };
140
149
  _input_in: typeof import("@trpc/server").unsetMarker;
141
150
  _input_out: typeof import("@trpc/server").unsetMarker;
@@ -152,6 +161,7 @@ export declare const appRouter: import("@trpc/server").CreateRouterInner<import(
152
161
  taskRunner: import("./utilities/TaskRunner.js").TaskRunner;
153
162
  rootSpan: import("@opentelemetry/api").Span | undefined;
154
163
  reporter: import("@ms-cloudpack/task-reporter").TaskReporter;
164
+ packages: import("@ms-cloudpack/bundler-types").PackageDefinitionsCache;
155
165
  };
156
166
  meta: object;
157
167
  errorShape: import("@trpc/server").DefaultErrorShape;
@@ -165,6 +175,7 @@ export declare const appRouter: import("@trpc/server").CreateRouterInner<import(
165
175
  taskRunner: import("./utilities/TaskRunner.js").TaskRunner;
166
176
  rootSpan: import("@opentelemetry/api").Span | undefined;
167
177
  reporter: import("@ms-cloudpack/task-reporter").TaskReporter;
178
+ packages: import("@ms-cloudpack/bundler-types").PackageDefinitionsCache;
168
179
  };
169
180
  _input_in: {
170
181
  rootPath: string;
@@ -186,6 +197,7 @@ export declare const appRouter: import("@trpc/server").CreateRouterInner<import(
186
197
  taskRunner: import("./utilities/TaskRunner.js").TaskRunner;
187
198
  rootSpan: import("@opentelemetry/api").Span | undefined;
188
199
  reporter: import("@ms-cloudpack/task-reporter").TaskReporter;
200
+ packages: import("@ms-cloudpack/bundler-types").PackageDefinitionsCache;
189
201
  };
190
202
  meta: object;
191
203
  errorShape: import("@trpc/server").DefaultErrorShape;
@@ -199,6 +211,7 @@ export declare const appRouter: import("@trpc/server").CreateRouterInner<import(
199
211
  taskRunner: import("./utilities/TaskRunner.js").TaskRunner;
200
212
  rootSpan: import("@opentelemetry/api").Span | undefined;
201
213
  reporter: import("@ms-cloudpack/task-reporter").TaskReporter;
214
+ packages: import("@ms-cloudpack/bundler-types").PackageDefinitionsCache;
202
215
  };
203
216
  _input_in: {
204
217
  metric: string;
@@ -220,6 +233,7 @@ export declare const appRouter: import("@trpc/server").CreateRouterInner<import(
220
233
  taskRunner: import("./utilities/TaskRunner.js").TaskRunner;
221
234
  rootSpan: import("@opentelemetry/api").Span | undefined;
222
235
  reporter: import("@ms-cloudpack/task-reporter").TaskReporter;
236
+ packages: import("@ms-cloudpack/bundler-types").PackageDefinitionsCache;
223
237
  };
224
238
  meta: object;
225
239
  errorShape: import("@trpc/server").DefaultErrorShape;
@@ -232,6 +246,7 @@ export declare const appRouter: import("@trpc/server").CreateRouterInner<import(
232
246
  taskRunner: import("./utilities/TaskRunner.js").TaskRunner;
233
247
  rootSpan: import("@opentelemetry/api").Span | undefined;
234
248
  reporter: import("@ms-cloudpack/task-reporter").TaskReporter;
249
+ packages: import("@ms-cloudpack/bundler-types").PackageDefinitionsCache;
235
250
  };
236
251
  _input_in: typeof import("@trpc/server").unsetMarker;
237
252
  _input_out: typeof import("@trpc/server").unsetMarker;
@@ -248,6 +263,7 @@ export declare const appRouter: import("@trpc/server").CreateRouterInner<import(
248
263
  taskRunner: import("./utilities/TaskRunner.js").TaskRunner;
249
264
  rootSpan: import("@opentelemetry/api").Span | undefined;
250
265
  reporter: import("@ms-cloudpack/task-reporter").TaskReporter;
266
+ packages: import("@ms-cloudpack/bundler-types").PackageDefinitionsCache;
251
267
  };
252
268
  meta: object;
253
269
  errorShape: import("@trpc/server").DefaultErrorShape;
@@ -261,6 +277,7 @@ export declare const appRouter: import("@trpc/server").CreateRouterInner<import(
261
277
  taskRunner: import("./utilities/TaskRunner.js").TaskRunner;
262
278
  rootSpan: import("@opentelemetry/api").Span | undefined;
263
279
  reporter: import("@ms-cloudpack/task-reporter").TaskReporter;
280
+ packages: import("@ms-cloudpack/bundler-types").PackageDefinitionsCache;
264
281
  };
265
282
  _input_in: {
266
283
  id: string;
@@ -282,6 +299,7 @@ export declare const appRouter: import("@trpc/server").CreateRouterInner<import(
282
299
  taskRunner: import("./utilities/TaskRunner.js").TaskRunner;
283
300
  rootSpan: import("@opentelemetry/api").Span | undefined;
284
301
  reporter: import("@ms-cloudpack/task-reporter").TaskReporter;
302
+ packages: import("@ms-cloudpack/bundler-types").PackageDefinitionsCache;
285
303
  };
286
304
  meta: object;
287
305
  errorShape: import("@trpc/server").DefaultErrorShape;
@@ -295,6 +313,7 @@ export declare const appRouter: import("@trpc/server").CreateRouterInner<import(
295
313
  taskRunner: import("./utilities/TaskRunner.js").TaskRunner;
296
314
  rootSpan: import("@opentelemetry/api").Span | undefined;
297
315
  reporter: import("@ms-cloudpack/task-reporter").TaskReporter;
316
+ packages: import("@ms-cloudpack/bundler-types").PackageDefinitionsCache;
298
317
  };
299
318
  _input_in: {
300
319
  packageName: string;
@@ -1 +1 @@
1
- {"version":3,"file":"appRouter.d.ts","sourceRoot":"","sources":["../src/appRouter.ts"],"names":[],"mappings":"AAWA,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAUpB,CAAC;AAEH,MAAM,MAAM,SAAS,GAAG,OAAO,SAAS,CAAC"}
1
+ {"version":3,"file":"appRouter.d.ts","sourceRoot":"","sources":["../src/appRouter.ts"],"names":[],"mappings":"AAWA,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAUpB,CAAC;AAEH,MAAM,MAAM,SAAS,GAAG,OAAO,SAAS,CAAC"}
@@ -1,10 +1,12 @@
1
1
  import type { TaskReporter } from '@ms-cloudpack/task-reporter';
2
2
  import type { Span } from '@ms-cloudpack/telemetry';
3
3
  import type { Session } from './index.js';
4
+ import type { PackageDefinitionsCache } from '@ms-cloudpack/bundler-types';
4
5
  export declare function createCloudpackServer(options: {
5
6
  session: Session;
6
7
  rootSpan: Span | undefined;
7
8
  reporter: TaskReporter;
9
+ packages: PackageDefinitionsCache;
8
10
  }): Promise<Omit<{
9
11
  addPackageOverride: (input: {
10
12
  packageName: string;
@@ -1 +1 @@
1
- {"version":3,"file":"createCloudpackServer.d.ts","sourceRoot":"","sources":["../src/createCloudpackServer.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAChE,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,yBAAyB,CAAC;AACpD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAG1C,wBAAsB,qBAAqB,CAAC,OAAO,EAAE;IACnD,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,IAAI,GAAG,SAAS,CAAC;IAC3B,QAAQ,EAAE,YAAY,CAAC;CACxB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2CAwBA"}
1
+ {"version":3,"file":"createCloudpackServer.d.ts","sourceRoot":"","sources":["../src/createCloudpackServer.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAChE,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,yBAAyB,CAAC;AACpD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAE1C,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,6BAA6B,CAAC;AAE3E,wBAAsB,qBAAqB,CAAC,OAAO,EAAE;IACnD,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,IAAI,GAAG,SAAS,CAAC;IAC3B,QAAQ,EAAE,YAAY,CAAC;IACvB,QAAQ,EAAE,uBAAuB,CAAC;CACnC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2CAwBA"}
@@ -1 +1 @@
1
- {"version":3,"file":"createCloudpackServer.js","sourceRoot":"","sources":["../src/createCloudpackServer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAClE,OAAO,EAAE,SAAS,EAAkB,MAAM,gBAAgB,CAAC;AAC3D,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACjE,OAAO,EAAE,eAAe,EAAE,MAAM,IAAI,CAAC;AACrC,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAI3D,OAAO,OAAO,MAAM,UAAU,CAAC;AAE/B,MAAM,CAAC,KAAK,UAAU,qBAAqB,CAAC,OAI3C;IACC,MAAM,aAAa,GAAG,MAAM,oBAAoB,CAAC,OAAO,CAAC,CAAC;IAC1D,MAAM,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,IAAI,WAAW,CAAC;IAC1E,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,EAAE,IAAI,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;IAE/D,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,gBAAgB,CAAC;QAC1C,MAAM,EAAE,SAAS;QACjB,aAAa;KACd,CAAC,CAAC;IAEH,MAAM,GAAG,GAAG,IAAI,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;IAE5C,eAAe,CAAY;QACzB,GAAG;QACH,MAAM,EAAE,SAAS;QACjB,aAAa;KACd,CAAC,CAAC;IAEH,MAAM,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IAEvB,MAAM,gBAAgB,GAAG,MAAM,aAAa,EAAE,CAAC;IAC/C,MAAM,SAAS,GAAG,SAAS,CAAC,YAAY,CAAC,gBAAgB,CAAC,CAAC;IAE3D,OAAO,SAA0E,CAAC;AACpF,CAAC","sourcesContent":["import { createHTTPServer } from './trpc-adapters/httpAdapter.js';\nimport { appRouter, type AppRouter } from './appRouter.js';\nimport { createContextFactory } from './createContextFactory.js';\nimport { WebSocketServer } from 'ws';\nimport { applyWSSHandler } from '@trpc/server/adapters/ws';\nimport type { TaskReporter } from '@ms-cloudpack/task-reporter';\nimport type { Span } from '@ms-cloudpack/telemetry';\nimport type { Session } from './index.js';\nimport getPort from 'get-port';\n\nexport async function createCloudpackServer(options: {\n session: Session;\n rootSpan: Span | undefined;\n reporter: TaskReporter;\n}) {\n const createContext = await createContextFactory(options);\n const hostname = options.session.config?.devServer?.domain || 'localhost';\n const port = await getPort({ port: [9890, 9891, 9892, 9893] });\n\n const { server, listen } = createHTTPServer({\n router: appRouter,\n createContext,\n });\n\n const wss = new WebSocketServer({ server });\n\n applyWSSHandler<AppRouter>({\n wss,\n router: appRouter,\n createContext,\n });\n\n listen(port, hostname);\n\n const localCallContext = await createContext();\n const localApis = appRouter.createCaller(localCallContext);\n\n return localApis as Omit<typeof localApis, 'mutation' | 'query' | 'subscription'>;\n}\n"]}
1
+ {"version":3,"file":"createCloudpackServer.js","sourceRoot":"","sources":["../src/createCloudpackServer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAClE,OAAO,EAAE,SAAS,EAAkB,MAAM,gBAAgB,CAAC;AAC3D,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACjE,OAAO,EAAE,eAAe,EAAE,MAAM,IAAI,CAAC;AACrC,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAI3D,OAAO,OAAO,MAAM,UAAU,CAAC;AAG/B,MAAM,CAAC,KAAK,UAAU,qBAAqB,CAAC,OAK3C;IACC,MAAM,aAAa,GAAG,MAAM,oBAAoB,CAAC,OAAO,CAAC,CAAC;IAC1D,MAAM,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,IAAI,WAAW,CAAC;IAC1E,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,EAAE,IAAI,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;IAE/D,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,gBAAgB,CAAC;QAC1C,MAAM,EAAE,SAAS;QACjB,aAAa;KACd,CAAC,CAAC;IAEH,MAAM,GAAG,GAAG,IAAI,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;IAE5C,eAAe,CAAY;QACzB,GAAG;QACH,MAAM,EAAE,SAAS;QACjB,aAAa;KACd,CAAC,CAAC;IAEH,MAAM,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IAEvB,MAAM,gBAAgB,GAAG,MAAM,aAAa,EAAE,CAAC;IAC/C,MAAM,SAAS,GAAG,SAAS,CAAC,YAAY,CAAC,gBAAgB,CAAC,CAAC;IAE3D,OAAO,SAA0E,CAAC;AACpF,CAAC","sourcesContent":["import { createHTTPServer } from './trpc-adapters/httpAdapter.js';\nimport { appRouter, type AppRouter } from './appRouter.js';\nimport { createContextFactory } from './createContextFactory.js';\nimport { WebSocketServer } from 'ws';\nimport { applyWSSHandler } from '@trpc/server/adapters/ws';\nimport type { TaskReporter } from '@ms-cloudpack/task-reporter';\nimport type { Span } from '@ms-cloudpack/telemetry';\nimport type { Session } from './index.js';\nimport getPort from 'get-port';\nimport type { PackageDefinitionsCache } from '@ms-cloudpack/bundler-types';\n\nexport async function createCloudpackServer(options: {\n session: Session;\n rootSpan: Span | undefined;\n reporter: TaskReporter;\n packages: PackageDefinitionsCache;\n}) {\n const createContext = await createContextFactory(options);\n const hostname = options.session.config?.devServer?.domain || 'localhost';\n const port = await getPort({ port: [9890, 9891, 9892, 9893] });\n\n const { server, listen } = createHTTPServer({\n router: appRouter,\n createContext,\n });\n\n const wss = new WebSocketServer({ server });\n\n applyWSSHandler<AppRouter>({\n wss,\n router: appRouter,\n createContext,\n });\n\n listen(port, hostname);\n\n const localCallContext = await createContext();\n const localApis = appRouter.createCaller(localCallContext);\n\n return localApis as Omit<typeof localApis, 'mutation' | 'query' | 'subscription'>;\n}\n"]}
@@ -2,6 +2,7 @@ import type { TaskReporter } from '@ms-cloudpack/task-reporter';
2
2
  import type { Span } from '@ms-cloudpack/telemetry';
3
3
  import type { Session, TaskDescription } from './index.js';
4
4
  import { TaskRunner } from './utilities/TaskRunner.js';
5
+ import type { PackageDefinitionsCache } from '@ms-cloudpack/bundler-types';
5
6
  /**
6
7
  * Creates the server context and returns a connection context factory.
7
8
  * The context object is accessible to apis and serves as a way to share stateful
@@ -11,6 +12,7 @@ export declare function createContextFactory(options: {
11
12
  session: Session;
12
13
  rootSpan: Span | undefined;
13
14
  reporter: TaskReporter;
15
+ packages: PackageDefinitionsCache;
14
16
  }): Promise<() => Promise<{
15
17
  session: Session;
16
18
  bus: import("@ms-cloudpack/data-bus").DataBus;
@@ -18,6 +20,7 @@ export declare function createContextFactory(options: {
18
20
  taskRunner: TaskRunner;
19
21
  rootSpan: Span | undefined;
20
22
  reporter: TaskReporter;
23
+ packages: PackageDefinitionsCache;
21
24
  }>>;
22
25
  export type CreateContext = Awaited<ReturnType<typeof createContextFactory>>;
23
26
  export type Context = Awaited<ReturnType<CreateContext>>;
@@ -1 +1 @@
1
- {"version":3,"file":"createContextFactory.d.ts","sourceRoot":"","sources":["../src/createContextFactory.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAChE,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,yBAAyB,CAAC;AACpD,OAAO,KAAK,EAAE,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAE3D,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAEvD;;;;GAIG;AAEH,wBAAsB,oBAAoB,CAAC,OAAO,EAAE;IAClD,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,IAAI,GAAG,SAAS,CAAC;IAC3B,QAAQ,EAAE,YAAY,CAAC;CACxB;;;;;;;IA8CA;AAED,MAAM,MAAM,aAAa,GAAG,OAAO,CAAC,UAAU,CAAC,OAAO,oBAAoB,CAAC,CAAC,CAAC;AAE7E,MAAM,MAAM,OAAO,GAAG,OAAO,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"createContextFactory.d.ts","sourceRoot":"","sources":["../src/createContextFactory.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAChE,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,yBAAyB,CAAC;AACpD,OAAO,KAAK,EAAE,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAE3D,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AACvD,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,6BAA6B,CAAC;AAE3E;;;;GAIG;AAEH,wBAAsB,oBAAoB,CAAC,OAAO,EAAE;IAClD,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,IAAI,GAAG,SAAS,CAAC;IAC3B,QAAQ,EAAE,YAAY,CAAC;IACvB,QAAQ,EAAE,uBAAuB,CAAC;CACnC;;;;;;;;IAiDA;AAED,MAAM,MAAM,aAAa,GAAG,OAAO,CAAC,UAAU,CAAC,OAAO,oBAAoB,CAAC,CAAC,CAAC;AAE7E,MAAM,MAAM,OAAO,GAAG,OAAO,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC,CAAC"}
@@ -7,7 +7,7 @@ import { TaskRunner } from './utilities/TaskRunner.js';
7
7
  */
8
8
  // eslint-disable-next-line @typescript-eslint/require-await
9
9
  export async function createContextFactory(options) {
10
- const { session, rootSpan, reporter } = options;
10
+ const { session, rootSpan, reporter, packages } = options;
11
11
  // const host = config?.devServer?.domain || 'localhost';
12
12
  // const port = await getPort({ port: [9890, 9891, 9892, 9893] });
13
13
  // const bus = createDataBus();
@@ -40,6 +40,8 @@ export async function createContextFactory(options) {
40
40
  rootSpan,
41
41
  // logging
42
42
  reporter,
43
+ // packages
44
+ packages,
43
45
  };
44
46
  }
45
47
  return createContext;
@@ -1 +1 @@
1
- {"version":3,"file":"createContextFactory.js","sourceRoot":"","sources":["../src/createContextFactory.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAEvD;;;;GAIG;AACH,4DAA4D;AAC5D,MAAM,CAAC,KAAK,UAAU,oBAAoB,CAAC,OAI1C;IACC,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC;IAChD,yDAAyD;IACzD,kEAAkE;IAClE,+BAA+B;IAE/B,MAAM,QAAQ,GAAG,IAAI,GAAG,EAA2B,CAAC;IACpD,MAAM,UAAU,GAAG,IAAI,UAAU,EAAE,CAAC;IACpC,MAAM,GAAG,GAAG,aAAa,EAAE,CAAC;IAE5B,sBAAsB;IACtB,GAAG,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,EAAE,EAAE,QAAQ,CAAC,EAAE;QAClC,MAAM,EAAE,MAAM;QACd,cAAc,EAAE,CAAC;QACjB,UAAU,EAAE,CAAC;QACb,WAAW,EAAE,CAAC;QACd,aAAa,EAAE,CAAC;KACjB,CAAC,CAAC;IAEH,yFAAyF;IACzF,wFAAwF;IACxF,6CAA6C;IAC7C,4DAA4D;IAC5D,KAAK,UAAU,aAAa;QAC1B,OAAO,CAAC,GAAG,CAAC,wBAAwB,CAAC,CAAC;QAEtC,OAAO;YACL,kBAAkB;YAClB,OAAO;YAEP,WAAW;YACX,GAAG;YAEH,QAAQ;YACR,QAAQ;YACR,UAAU;YAEV,YAAY;YACZ,QAAQ;YAER,UAAU;YACV,QAAQ;SACT,CAAC;IACJ,CAAC;IAED,OAAO,aAAa,CAAC;AACvB,CAAC","sourcesContent":["import type { TaskReporter } from '@ms-cloudpack/task-reporter';\nimport type { Span } from '@ms-cloudpack/telemetry';\nimport type { Session, TaskDescription } from './index.js';\nimport { createDataBus } from '@ms-cloudpack/data-bus';\nimport { TaskRunner } from './utilities/TaskRunner.js';\n\n/**\n * Creates the server context and returns a connection context factory.\n * The context object is accessible to apis and serves as a way to share stateful\n * objects across them.\n */\n// eslint-disable-next-line @typescript-eslint/require-await\nexport async function createContextFactory(options: {\n session: Session;\n rootSpan: Span | undefined;\n reporter: TaskReporter;\n}) {\n const { session, rootSpan, reporter } = options;\n // const host = config?.devServer?.domain || 'localhost';\n // const port = await getPort({ port: [9890, 9891, 9892, 9893] });\n // const bus = createDataBus();\n\n const allTasks = new Map<string, TaskDescription>();\n const taskRunner = new TaskRunner();\n const bus = createDataBus();\n\n // Push initial stats.\n bus.publish([session.id, 'status'], {\n status: 'idle',\n remainingTasks: 0,\n totalTasks: 0,\n totalErrors: 0,\n totalWarnings: 0,\n });\n\n // Return the factory function which creates a context object per connection. This allows\n // us to choose what we expose to each client from server context, but also allows us to\n // add additional context to each connection.\n // eslint-disable-next-line @typescript-eslint/require-await\n async function createContext() {\n console.log('creating outer context');\n\n return {\n // session manager\n session,\n\n // data bus\n bus,\n\n // tasks\n allTasks,\n taskRunner,\n\n // telemetry\n rootSpan,\n\n // logging\n reporter,\n };\n }\n\n return createContext;\n}\n\nexport type CreateContext = Awaited<ReturnType<typeof createContextFactory>>;\n\nexport type Context = Awaited<ReturnType<CreateContext>>;\n"]}
1
+ {"version":3,"file":"createContextFactory.js","sourceRoot":"","sources":["../src/createContextFactory.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAGvD;;;;GAIG;AACH,4DAA4D;AAC5D,MAAM,CAAC,KAAK,UAAU,oBAAoB,CAAC,OAK1C;IACC,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC;IAC1D,yDAAyD;IACzD,kEAAkE;IAClE,+BAA+B;IAE/B,MAAM,QAAQ,GAAG,IAAI,GAAG,EAA2B,CAAC;IACpD,MAAM,UAAU,GAAG,IAAI,UAAU,EAAE,CAAC;IACpC,MAAM,GAAG,GAAG,aAAa,EAAE,CAAC;IAE5B,sBAAsB;IACtB,GAAG,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,EAAE,EAAE,QAAQ,CAAC,EAAE;QAClC,MAAM,EAAE,MAAM;QACd,cAAc,EAAE,CAAC;QACjB,UAAU,EAAE,CAAC;QACb,WAAW,EAAE,CAAC;QACd,aAAa,EAAE,CAAC;KACjB,CAAC,CAAC;IAEH,yFAAyF;IACzF,wFAAwF;IACxF,6CAA6C;IAC7C,4DAA4D;IAC5D,KAAK,UAAU,aAAa;QAC1B,OAAO,CAAC,GAAG,CAAC,wBAAwB,CAAC,CAAC;QAEtC,OAAO;YACL,kBAAkB;YAClB,OAAO;YAEP,WAAW;YACX,GAAG;YAEH,QAAQ;YACR,QAAQ;YACR,UAAU;YAEV,YAAY;YACZ,QAAQ;YAER,UAAU;YACV,QAAQ;YAER,WAAW;YACX,QAAQ;SACT,CAAC;IACJ,CAAC;IAED,OAAO,aAAa,CAAC;AACvB,CAAC","sourcesContent":["import type { TaskReporter } from '@ms-cloudpack/task-reporter';\nimport type { Span } from '@ms-cloudpack/telemetry';\nimport type { Session, TaskDescription } from './index.js';\nimport { createDataBus } from '@ms-cloudpack/data-bus';\nimport { TaskRunner } from './utilities/TaskRunner.js';\nimport type { PackageDefinitionsCache } from '@ms-cloudpack/bundler-types';\n\n/**\n * Creates the server context and returns a connection context factory.\n * The context object is accessible to apis and serves as a way to share stateful\n * objects across them.\n */\n// eslint-disable-next-line @typescript-eslint/require-await\nexport async function createContextFactory(options: {\n session: Session;\n rootSpan: Span | undefined;\n reporter: TaskReporter;\n packages: PackageDefinitionsCache;\n}) {\n const { session, rootSpan, reporter, packages } = options;\n // const host = config?.devServer?.domain || 'localhost';\n // const port = await getPort({ port: [9890, 9891, 9892, 9893] });\n // const bus = createDataBus();\n\n const allTasks = new Map<string, TaskDescription>();\n const taskRunner = new TaskRunner();\n const bus = createDataBus();\n\n // Push initial stats.\n bus.publish([session.id, 'status'], {\n status: 'idle',\n remainingTasks: 0,\n totalTasks: 0,\n totalErrors: 0,\n totalWarnings: 0,\n });\n\n // Return the factory function which creates a context object per connection. This allows\n // us to choose what we expose to each client from server context, but also allows us to\n // add additional context to each connection.\n // eslint-disable-next-line @typescript-eslint/require-await\n async function createContext() {\n console.log('creating outer context');\n\n return {\n // session manager\n session,\n\n // data bus\n bus,\n\n // tasks\n allTasks,\n taskRunner,\n\n // telemetry\n rootSpan,\n\n // logging\n reporter,\n\n // packages\n packages,\n };\n }\n\n return createContext;\n}\n\nexport type CreateContext = Awaited<ReturnType<typeof createContextFactory>>;\n\nexport type Context = Awaited<ReturnType<CreateContext>>;\n"]}
@@ -2,6 +2,7 @@ import type { ApiServer } from './types/ApiServer.js';
2
2
  import type { Session } from './types/Session.js';
3
3
  import type { Span } from '@ms-cloudpack/telemetry';
4
4
  import type { TaskReporter } from '@ms-cloudpack/task-reporter';
5
+ import type { PackageDefinitionsCache } from '@ms-cloudpack/bundler-types';
5
6
  /**
6
7
  * The api server handles the data pub/sub (for things like reporting build status)
7
8
  * and hosting the dashboard verb backend (for executing actions like loading vscode,
@@ -20,6 +21,6 @@ export declare function startApiServer(params: {
20
21
  session: Session;
21
22
  rootSpan: Span | undefined;
22
23
  reporter: TaskReporter;
23
- appPath: string;
24
+ packages: PackageDefinitionsCache;
24
25
  }): Promise<ApiServer>;
25
26
  //# sourceMappingURL=startApiServer.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"startApiServer.d.ts","sourceRoot":"","sources":["../src/startApiServer.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAEtD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAOlD,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,yBAAyB,CAAC;AAGpD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAEhE;;;;;;;;;;;;;GAaG;AACH,wBAAsB,cAAc,CAAC,MAAM,EAAE;IAC3C,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,IAAI,GAAG,SAAS,CAAC;IAC3B,QAAQ,EAAE,YAAY,CAAC;IACvB,OAAO,EAAE,MAAM,CAAC;CACjB,GAAG,OAAO,CAAC,SAAS,CAAC,CAiYrB"}
1
+ {"version":3,"file":"startApiServer.d.ts","sourceRoot":"","sources":["../src/startApiServer.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAEtD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAIlD,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,yBAAyB,CAAC;AAGpD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAChE,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,6BAA6B,CAAC;AAE3E;;;;;;;;;;;;;GAaG;AACH,wBAAsB,cAAc,CAAC,MAAM,EAAE;IAC3C,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,IAAI,GAAG,SAAS,CAAC;IAC3B,QAAQ,EAAE,YAAY,CAAC;IACvB,QAAQ,EAAE,uBAAuB,CAAC;CACnC,GAAG,OAAO,CAAC,SAAS,CAAC,CA2XrB"}
@@ -10,9 +10,6 @@ import { TaskRunner } from './utilities/TaskRunner.js';
10
10
  import { getCachePath } from './utilities/getCachePath.js';
11
11
  import fsExtra from 'fs-extra';
12
12
  import { startWatcher } from './utilities/startWatcher.js';
13
- import { PackageDefinitions } from '@ms-cloudpack/package-utilities';
14
- import { createPackageOverrideTransform } from './utilities/createPackageOverrideTransform.js';
15
- import { readConfigSync } from '@ms-cloudpack/config';
16
13
  import { addOverride } from './utilities/addOverride.js';
17
14
  import { validateOverride } from './utilities/validateOverride.js';
18
15
  import { parseHttpsConfig } from '@ms-cloudpack/create-express-app';
@@ -32,7 +29,7 @@ import { editCloudpackConfig } from './utilities/editCloudpackConfig.js';
32
29
  * javascript can connect and subscribe to page changes.
33
30
  */
34
31
  export async function startApiServer(params) {
35
- const { session, rootSpan, reporter, appPath } = params;
32
+ const { session, rootSpan, reporter, packages } = params;
36
33
  const host = session.config?.devServer?.domain || 'localhost';
37
34
  const port = await getPort({ port: [9890, 9891, 9892, 9893] });
38
35
  const bus = createDataBus();
@@ -222,7 +219,7 @@ export async function startApiServer(params) {
222
219
  // TODO: Send filename from request data to findResolveMapEntry when chromium Issue 1371551 is fixed.
223
220
  const { packageName, importPath } = request.data;
224
221
  (async () => {
225
- await addOverride({ session, packageName, importPath });
222
+ await addOverride({ packageName, importPath }, { session, packages });
226
223
  session.incrementSessionVersion();
227
224
  notifyReload();
228
225
  })().catch(() => {
@@ -235,7 +232,7 @@ export async function startApiServer(params) {
235
232
  const { requestId, data } = request;
236
233
  const { packageName, importPath } = data;
237
234
  (async () => {
238
- const fixable = await validateOverride({ session, packageName, importPath });
235
+ const fixable = await validateOverride({ packageName, importPath }, { session, packages });
239
236
  sendMessage({ type: 'validateOverride', requestId, data: { fixable } });
240
237
  })().catch(() => {
241
238
  // no-op
@@ -251,10 +248,6 @@ export async function startApiServer(params) {
251
248
  allTasks.forEach((_, id) => {
252
249
  taskRunner.remove(id);
253
250
  });
254
- // Parse config if it exists.
255
- const cloudpackConfig = readConfigSync(appPath);
256
- // Initialize package overrides.
257
- PackageDefinitions.getInstance().registerTransform(createPackageOverrideTransform(cloudpackConfig));
258
251
  // Update session version.
259
252
  session.incrementSessionVersion();
260
253
  notifyReload();
@@ -1 +1 @@
1
- {"version":3,"file":"startApiServer.js","sourceRoot":"","sources":["../src/startApiServer.ts"],"names":[],"mappings":"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","sourcesContent":["import os from 'os';\nimport getPort from 'get-port';\nimport path from 'path';\nimport http from 'http';\nimport https from 'https';\nimport WebSocket, { WebSocketServer } from 'ws';\nimport { createDataBus } from '@ms-cloudpack/data-bus';\nimport { execSync } from 'child_process';\nimport { TaskRunner } from './utilities/TaskRunner.js';\nimport { getCachePath } from './utilities/getCachePath.js';\nimport fsExtra from 'fs-extra';\nimport { startWatcher } from './utilities/startWatcher.js';\nimport type { TaskDescription } from './types/TaskDescription.js';\nimport type { TaskEndDescription } from './types/TaskEndDescription.js';\nimport type { TaskStartDescription } from './types/TaskStartDescription.js';\nimport type { ApiServer } from './types/ApiServer.js';\nimport type { SessionStats } from './types/SessionStats.js';\nimport type { Session } from './types/Session.js';\nimport { PackageDefinitions } from '@ms-cloudpack/package-utilities';\nimport { createPackageOverrideTransform } from './utilities/createPackageOverrideTransform.js';\nimport { readConfigSync } from '@ms-cloudpack/config';\nimport { addOverride } from './utilities/addOverride.js';\nimport { validateOverride } from './utilities/validateOverride.js';\nimport { parseHttpsConfig } from '@ms-cloudpack/create-express-app';\nimport type { Span } from '@ms-cloudpack/telemetry';\nimport { editCloudpackConfig } from './utilities/editCloudpackConfig.js';\nimport type { TaskScheduler } from './task-scheduler/TaskScheduler.js';\nimport type { TaskReporter } from '@ms-cloudpack/task-reporter';\n\n/**\n * The api server handles the data pub/sub (for things like reporting build status)\n * and hosting the dashboard verb backend (for executing actions like loading vscode,\n * changing dependencies, connecting new projects to the running session, etc.)\n *\n * Each time `cloudpack start` is run, an api server will start up for that session. The\n * hosted web page will have a \"cloudpack-api-server\" header which points\n * to the websocket server.\n *\n * The bundle server will call the api server to publish build status updates.\n *\n * The app server will burn the api server url on the host html, so that client-side\n * javascript can connect and subscribe to page changes.\n */\nexport async function startApiServer(params: {\n session: Session;\n rootSpan: Span | undefined;\n reporter: TaskReporter;\n appPath: string;\n}): Promise<ApiServer> {\n const { session, rootSpan, reporter, appPath } = params;\n const host = session.config?.devServer?.domain || 'localhost';\n const port = await getPort({ port: [9890, 9891, 9892, 9893] });\n const bus = createDataBus();\n const sessionStats: SessionStats = {\n status: 'idle',\n\n remainingTasks: 0,\n totalTasks: 0,\n\n totalErrors: 0,\n totalWarnings: 0,\n };\n\n const allTasks = new Map<string, TaskDescription>();\n const taskRunner = new TaskRunner();\n\n function reportStart(taskStart: TaskStartDescription): void {\n const previousResult = allTasks.get(taskStart.id);\n const now = new Date().getTime();\n\n if (!previousResult) {\n sessionStats.totalTasks++;\n }\n\n if (previousResult?.status === 'complete') {\n sessionStats.totalErrors -= previousResult.errors?.length || 0;\n sessionStats.totalWarnings -= previousResult.warnings?.length || 0;\n }\n\n sessionStats.remainingTasks++;\n sessionStats.status = 'pending';\n\n allTasks.set(taskStart.id, {\n ...taskStart,\n status: 'pending',\n startTime: now,\n });\n\n bus.publish([session.id, 'status'], sessionStats);\n bus.publish([session.id, 'status-details'], { tasks: Array.from(allTasks.values()) });\n }\n\n function reportEnd(taskEnd: TaskEndDescription): void {\n const previousResult = allTasks.get(taskEnd.id);\n const now = new Date().getTime();\n\n if (previousResult) {\n sessionStats.remainingTasks--;\n sessionStats.totalErrors += taskEnd.errors?.length || 0;\n sessionStats.totalWarnings += taskEnd.warnings?.length || 0;\n\n allTasks.set(taskEnd.id, {\n ...previousResult,\n ...taskEnd,\n status: 'complete',\n durationMilliseconds: now - previousResult.startTime,\n lastUpdated: now,\n });\n\n if (sessionStats.remainingTasks === 0) {\n sessionStats.status = 'idle';\n }\n\n bus.publish([session.id, 'status'], sessionStats);\n bus.publish([session.id, 'status-details'], { tasks: Array.from(allTasks.values()) });\n }\n }\n\n bus.publish([session.id, 'status'], sessionStats);\n\n const addTask: ApiServer['addTask'] = (task, options) => {\n if (task.watch) {\n options = options || {};\n options.watch = () => {\n watcher.watch(task, { onSuccess: notifyReload });\n };\n }\n\n return taskRunner.add(\n {\n ...task,\n execute: async () => {\n reportStart({\n ...task.getStartDescription?.(),\n id: task.id,\n });\n\n let taskResult;\n\n try {\n taskResult = await task.execute();\n } catch (err) {\n // no-op\n }\n\n reportEnd({\n ...task.getEndDescription?.(taskResult),\n id: task.id,\n } as TaskEndDescription);\n\n return taskResult;\n },\n },\n options,\n );\n };\n\n const watcher = startWatcher(addTask);\n\n // Create a node http(s) server.\n let server: http.Server | https.Server;\n const httpsConfig = session.config?.devServer?.https;\n const protocol = httpsConfig ? 'wss' : 'ws';\n\n if (httpsConfig) {\n const { key, cert, passphrase } = parseHttpsConfig(httpsConfig);\n\n if (!key || !cert) {\n console.error('Invalid https config in cloudpack.config.json. Make sure key and cert are valid.');\n\n throw new Error('Invalid https config.');\n }\n\n server = https\n .createServer(\n {\n key,\n cert,\n passphrase,\n },\n () => {\n /* no-op */\n },\n )\n .listen(port, host);\n } else {\n server = http.createServer().listen(port, host);\n }\n\n // Create a websocket server which listens for subscriptions and verb requests,\n // and broadcasts the data to all connected clients.\n const socketServer = new WebSocketServer({ server }, () => {\n // console.log(`ApiServer: Started on port ${port}`);\n }).on('connection', (socket: WebSocket) => {\n const disposables = new Map<number, () => void>();\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n function sendMessage(message: any) {\n socket.send(JSON.stringify(message, null, 2));\n }\n\n socket.send(\n JSON.stringify({\n type: 'sequence',\n sequence: session.sequence,\n }),\n );\n\n socket\n .on('message', (rawData) => {\n try {\n // eslint-disable-next-line @typescript-eslint/no-base-to-string\n const request = JSON.parse(rawData.toString()) as {\n type: string;\n requestId?: string;\n data: Record<string, unknown>;\n };\n\n switch (request.type) {\n /**\n * Subscribe to a data subscription.\n */\n case 'subscribe': {\n const { path: subscriptionPath, id } = request.data;\n\n disposables.set(\n id as number,\n bus.subscribe(\n subscriptionPath as string[],\n // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/no-unsafe-assignment\n (data: any) => sendMessage({ type: 'notify', id, path: subscriptionPath, data }),\n ),\n );\n\n break;\n }\n\n /**\n * Unsubscribe from a data subscription.\n */\n case 'unsubscribe': {\n const id = request.data.id as number | undefined;\n if (id) {\n const dispose = disposables.get(id);\n\n if (dispose) {\n dispose();\n disposables.delete(id);\n }\n }\n\n break;\n }\n\n /**\n * Open a file in VSCode.\n */\n case 'openSource': {\n const { rootPath, relativePath = '', line, column } = request.data;\n const fullPath = path.join(rootPath as string, relativePath as string);\n\n console.log(`Opening VSCode with path: ${fullPath}`);\n execSync(`code --goto ${fullPath}:${line}:${column}`, { cwd: process.cwd() });\n break;\n }\n\n /**\n * Open a file or folder in the OS's default file manager.\n */\n case 'open': {\n const { rootPath, relativePath = '' } = request.data;\n const fullPath = path.join(rootPath as string, relativePath as string);\n\n console.log(`Opening path: ${fullPath}`);\n const openCommand = os.platform() == 'win32' ? 'start' : 'open';\n\n execSync(`${openCommand} ${fullPath}`, { cwd: process.cwd() });\n break;\n }\n\n /**\n * Opens the cloudpack config in VSCode for the user to manually edit. If the file doesn't exist,\n * it will be created.\n */\n case 'editConfig': {\n editCloudpackConfig().catch(() => {\n /* no-op */\n });\n break;\n }\n\n /**\n * Adds an override to the cloudpack config.\n */\n case 'addOverride': {\n // TODO: Send filename from request data to findResolveMapEntry when chromium Issue 1371551 is fixed.\n const { packageName, importPath } = request.data as Record<string, string>;\n (async () => {\n await addOverride({ session, packageName, importPath });\n session.incrementSessionVersion();\n notifyReload();\n })().catch(() => {\n // no-op\n });\n break;\n }\n\n case 'validateOverride': {\n // TODO: Get filename from request data when chromium Issue 1371551 is fixed.\n const { requestId, data } = request as { requestId: string; data: Record<string, string> };\n const { packageName, importPath } = data;\n (async () => {\n const fixable = await validateOverride({ session, packageName, importPath });\n sendMessage({ type: 'validateOverride', requestId, data: { fixable } });\n })().catch(() => {\n // no-op\n });\n break;\n }\n\n case 'restartAllTasks': {\n console.log('ApiServer: Restarting all tasks');\n\n // Clear entire local cache.\n fsExtra.emptyDirSync(getCachePath());\n\n // All tasks can be removed as notifyReload()\n // will cause the client to add the tasks again.\n allTasks.forEach((_, id) => {\n taskRunner.remove(id);\n });\n\n // Parse config if it exists.\n const cloudpackConfig = readConfigSync(appPath);\n\n // Initialize package overrides.\n PackageDefinitions.getInstance().registerTransform(createPackageOverrideTransform(cloudpackConfig));\n\n // Update session version.\n session.incrementSessionVersion();\n\n notifyReload();\n break;\n }\n\n case 'restartTask': {\n const { id, inputPath } = request.data as Record<string, string>;\n console.log(`ApiServer: Restarting task ${id}`);\n taskRunner.remove(id);\n session.incrementTargetVersion(inputPath);\n notifyReload();\n break;\n }\n\n case 'reportMetric': {\n const { metric, value } = request.data as { metric: string; value: number };\n console.debug(`ApiServer: Received metric: ${metric}, value: ${value}`);\n rootSpan?.addEvent(metric, value);\n break;\n }\n }\n } catch (err) {\n console.error('ApiServer: error handling message');\n console.error('Error:', err);\n // eslint-disable-next-line @typescript-eslint/no-base-to-string\n console.error('Message:', rawData.toString());\n }\n })\n .on('close', () => {\n for (const d of disposables.values()) {\n d();\n }\n });\n });\n\n const notifyReload = () => {\n session.sequence++;\n socketServer.clients.forEach((socket: WebSocket) => {\n if (socket.readyState === WebSocket.OPEN) {\n socket.send(\n JSON.stringify({\n type: 'reload',\n data: { sessionId: session.id },\n }),\n );\n }\n });\n };\n\n let scheduler: TaskScheduler | undefined;\n\n if (session.config.features?.enableLage) {\n const { TaskScheduler } = await import('./task-scheduler/TaskScheduler.js');\n\n scheduler = new TaskScheduler({ reporter, root: session.appPath });\n }\n\n return {\n url: `${protocol}://${host}:${port}`,\n port,\n\n notifyReload,\n\n addTask: (task, options) => {\n return addTask(task, options);\n },\n\n scheduleTask: async (bundleRequest, scripts, options) => {\n if (!scheduler) {\n throw new Error('Cannot schedule task when not using lage');\n }\n\n reportStart({\n id: bundleRequest.id,\n inputPath: bundleRequest.packagePath,\n outputPath: bundleRequest.outputPath,\n name: bundleRequest.packageName,\n });\n\n await scheduler.scheduleTask(bundleRequest, scripts, options);\n\n reportEnd({\n id: bundleRequest.id,\n });\n },\n\n close: () =>\n new Promise<void>((resolve, reject) => {\n socketServer.clients.forEach((socket: WebSocket) => socket.terminate());\n socketServer.close((err) => (err ? reject(err) : resolve()));\n server.close();\n }),\n };\n}\n"]}
1
+ {"version":3,"file":"startApiServer.js","sourceRoot":"","sources":["../src/startApiServer.ts"],"names":[],"mappings":"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","sourcesContent":["import os from 'os';\nimport getPort from 'get-port';\nimport path from 'path';\nimport http from 'http';\nimport https from 'https';\nimport WebSocket, { WebSocketServer } from 'ws';\nimport { createDataBus } from '@ms-cloudpack/data-bus';\nimport { execSync } from 'child_process';\nimport { TaskRunner } from './utilities/TaskRunner.js';\nimport { getCachePath } from './utilities/getCachePath.js';\nimport fsExtra from 'fs-extra';\nimport { startWatcher } from './utilities/startWatcher.js';\nimport type { TaskDescription } from './types/TaskDescription.js';\nimport type { TaskEndDescription } from './types/TaskEndDescription.js';\nimport type { TaskStartDescription } from './types/TaskStartDescription.js';\nimport type { ApiServer } from './types/ApiServer.js';\nimport type { SessionStats } from './types/SessionStats.js';\nimport type { Session } from './types/Session.js';\nimport { addOverride } from './utilities/addOverride.js';\nimport { validateOverride } from './utilities/validateOverride.js';\nimport { parseHttpsConfig } from '@ms-cloudpack/create-express-app';\nimport type { Span } from '@ms-cloudpack/telemetry';\nimport { editCloudpackConfig } from './utilities/editCloudpackConfig.js';\nimport type { TaskScheduler } from './task-scheduler/TaskScheduler.js';\nimport type { TaskReporter } from '@ms-cloudpack/task-reporter';\nimport type { PackageDefinitionsCache } from '@ms-cloudpack/bundler-types';\n\n/**\n * The api server handles the data pub/sub (for things like reporting build status)\n * and hosting the dashboard verb backend (for executing actions like loading vscode,\n * changing dependencies, connecting new projects to the running session, etc.)\n *\n * Each time `cloudpack start` is run, an api server will start up for that session. The\n * hosted web page will have a \"cloudpack-api-server\" header which points\n * to the websocket server.\n *\n * The bundle server will call the api server to publish build status updates.\n *\n * The app server will burn the api server url on the host html, so that client-side\n * javascript can connect and subscribe to page changes.\n */\nexport async function startApiServer(params: {\n session: Session;\n rootSpan: Span | undefined;\n reporter: TaskReporter;\n packages: PackageDefinitionsCache;\n}): Promise<ApiServer> {\n const { session, rootSpan, reporter, packages } = params;\n const host = session.config?.devServer?.domain || 'localhost';\n const port = await getPort({ port: [9890, 9891, 9892, 9893] });\n const bus = createDataBus();\n const sessionStats: SessionStats = {\n status: 'idle',\n\n remainingTasks: 0,\n totalTasks: 0,\n\n totalErrors: 0,\n totalWarnings: 0,\n };\n\n const allTasks = new Map<string, TaskDescription>();\n const taskRunner = new TaskRunner();\n\n function reportStart(taskStart: TaskStartDescription): void {\n const previousResult = allTasks.get(taskStart.id);\n const now = new Date().getTime();\n\n if (!previousResult) {\n sessionStats.totalTasks++;\n }\n\n if (previousResult?.status === 'complete') {\n sessionStats.totalErrors -= previousResult.errors?.length || 0;\n sessionStats.totalWarnings -= previousResult.warnings?.length || 0;\n }\n\n sessionStats.remainingTasks++;\n sessionStats.status = 'pending';\n\n allTasks.set(taskStart.id, {\n ...taskStart,\n status: 'pending',\n startTime: now,\n });\n\n bus.publish([session.id, 'status'], sessionStats);\n bus.publish([session.id, 'status-details'], { tasks: Array.from(allTasks.values()) });\n }\n\n function reportEnd(taskEnd: TaskEndDescription): void {\n const previousResult = allTasks.get(taskEnd.id);\n const now = new Date().getTime();\n\n if (previousResult) {\n sessionStats.remainingTasks--;\n sessionStats.totalErrors += taskEnd.errors?.length || 0;\n sessionStats.totalWarnings += taskEnd.warnings?.length || 0;\n\n allTasks.set(taskEnd.id, {\n ...previousResult,\n ...taskEnd,\n status: 'complete',\n durationMilliseconds: now - previousResult.startTime,\n lastUpdated: now,\n });\n\n if (sessionStats.remainingTasks === 0) {\n sessionStats.status = 'idle';\n }\n\n bus.publish([session.id, 'status'], sessionStats);\n bus.publish([session.id, 'status-details'], { tasks: Array.from(allTasks.values()) });\n }\n }\n\n bus.publish([session.id, 'status'], sessionStats);\n\n const addTask: ApiServer['addTask'] = (task, options) => {\n if (task.watch) {\n options = options || {};\n options.watch = () => {\n watcher.watch(task, { onSuccess: notifyReload });\n };\n }\n\n return taskRunner.add(\n {\n ...task,\n execute: async () => {\n reportStart({\n ...task.getStartDescription?.(),\n id: task.id,\n });\n\n let taskResult;\n\n try {\n taskResult = await task.execute();\n } catch (err) {\n // no-op\n }\n\n reportEnd({\n ...task.getEndDescription?.(taskResult),\n id: task.id,\n } as TaskEndDescription);\n\n return taskResult;\n },\n },\n options,\n );\n };\n\n const watcher = startWatcher(addTask);\n\n // Create a node http(s) server.\n let server: http.Server | https.Server;\n const httpsConfig = session.config?.devServer?.https;\n const protocol = httpsConfig ? 'wss' : 'ws';\n\n if (httpsConfig) {\n const { key, cert, passphrase } = parseHttpsConfig(httpsConfig);\n\n if (!key || !cert) {\n console.error('Invalid https config in cloudpack.config.json. Make sure key and cert are valid.');\n\n throw new Error('Invalid https config.');\n }\n\n server = https\n .createServer(\n {\n key,\n cert,\n passphrase,\n },\n () => {\n /* no-op */\n },\n )\n .listen(port, host);\n } else {\n server = http.createServer().listen(port, host);\n }\n\n // Create a websocket server which listens for subscriptions and verb requests,\n // and broadcasts the data to all connected clients.\n const socketServer = new WebSocketServer({ server }, () => {\n // console.log(`ApiServer: Started on port ${port}`);\n }).on('connection', (socket: WebSocket) => {\n const disposables = new Map<number, () => void>();\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n function sendMessage(message: any) {\n socket.send(JSON.stringify(message, null, 2));\n }\n\n socket.send(\n JSON.stringify({\n type: 'sequence',\n sequence: session.sequence,\n }),\n );\n\n socket\n .on('message', (rawData) => {\n try {\n // eslint-disable-next-line @typescript-eslint/no-base-to-string\n const request = JSON.parse(rawData.toString()) as {\n type: string;\n requestId?: string;\n data: Record<string, unknown>;\n };\n\n switch (request.type) {\n /**\n * Subscribe to a data subscription.\n */\n case 'subscribe': {\n const { path: subscriptionPath, id } = request.data;\n\n disposables.set(\n id as number,\n bus.subscribe(\n subscriptionPath as string[],\n // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/no-unsafe-assignment\n (data: any) => sendMessage({ type: 'notify', id, path: subscriptionPath, data }),\n ),\n );\n\n break;\n }\n\n /**\n * Unsubscribe from a data subscription.\n */\n case 'unsubscribe': {\n const id = request.data.id as number | undefined;\n if (id) {\n const dispose = disposables.get(id);\n\n if (dispose) {\n dispose();\n disposables.delete(id);\n }\n }\n\n break;\n }\n\n /**\n * Open a file in VSCode.\n */\n case 'openSource': {\n const { rootPath, relativePath = '', line, column } = request.data;\n const fullPath = path.join(rootPath as string, relativePath as string);\n\n console.log(`Opening VSCode with path: ${fullPath}`);\n execSync(`code --goto ${fullPath}:${line}:${column}`, { cwd: process.cwd() });\n break;\n }\n\n /**\n * Open a file or folder in the OS's default file manager.\n */\n case 'open': {\n const { rootPath, relativePath = '' } = request.data;\n const fullPath = path.join(rootPath as string, relativePath as string);\n\n console.log(`Opening path: ${fullPath}`);\n const openCommand = os.platform() == 'win32' ? 'start' : 'open';\n\n execSync(`${openCommand} ${fullPath}`, { cwd: process.cwd() });\n break;\n }\n\n /**\n * Opens the cloudpack config in VSCode for the user to manually edit. If the file doesn't exist,\n * it will be created.\n */\n case 'editConfig': {\n editCloudpackConfig().catch(() => {\n /* no-op */\n });\n break;\n }\n\n /**\n * Adds an override to the cloudpack config.\n */\n case 'addOverride': {\n // TODO: Send filename from request data to findResolveMapEntry when chromium Issue 1371551 is fixed.\n const { packageName, importPath } = request.data as Record<string, string>;\n (async () => {\n await addOverride({ packageName, importPath }, { session, packages });\n session.incrementSessionVersion();\n notifyReload();\n })().catch(() => {\n // no-op\n });\n break;\n }\n\n case 'validateOverride': {\n // TODO: Get filename from request data when chromium Issue 1371551 is fixed.\n const { requestId, data } = request as { requestId: string; data: Record<string, string> };\n const { packageName, importPath } = data;\n (async () => {\n const fixable = await validateOverride({ packageName, importPath }, { session, packages });\n sendMessage({ type: 'validateOverride', requestId, data: { fixable } });\n })().catch(() => {\n // no-op\n });\n break;\n }\n\n case 'restartAllTasks': {\n console.log('ApiServer: Restarting all tasks');\n\n // Clear entire local cache.\n fsExtra.emptyDirSync(getCachePath());\n\n // All tasks can be removed as notifyReload()\n // will cause the client to add the tasks again.\n allTasks.forEach((_, id) => {\n taskRunner.remove(id);\n });\n\n // Update session version.\n session.incrementSessionVersion();\n\n notifyReload();\n break;\n }\n\n case 'restartTask': {\n const { id, inputPath } = request.data as Record<string, string>;\n console.log(`ApiServer: Restarting task ${id}`);\n taskRunner.remove(id);\n session.incrementTargetVersion(inputPath);\n notifyReload();\n break;\n }\n\n case 'reportMetric': {\n const { metric, value } = request.data as { metric: string; value: number };\n console.debug(`ApiServer: Received metric: ${metric}, value: ${value}`);\n rootSpan?.addEvent(metric, value);\n break;\n }\n }\n } catch (err) {\n console.error('ApiServer: error handling message');\n console.error('Error:', err);\n // eslint-disable-next-line @typescript-eslint/no-base-to-string\n console.error('Message:', rawData.toString());\n }\n })\n .on('close', () => {\n for (const d of disposables.values()) {\n d();\n }\n });\n });\n\n const notifyReload = () => {\n session.sequence++;\n socketServer.clients.forEach((socket: WebSocket) => {\n if (socket.readyState === WebSocket.OPEN) {\n socket.send(\n JSON.stringify({\n type: 'reload',\n data: { sessionId: session.id },\n }),\n );\n }\n });\n };\n\n let scheduler: TaskScheduler | undefined;\n\n if (session.config.features?.enableLage) {\n const { TaskScheduler } = await import('./task-scheduler/TaskScheduler.js');\n\n scheduler = new TaskScheduler({ reporter, root: session.appPath });\n }\n\n return {\n url: `${protocol}://${host}:${port}`,\n port,\n\n notifyReload,\n\n addTask: (task, options) => {\n return addTask(task, options);\n },\n\n scheduleTask: async (bundleRequest, scripts, options) => {\n if (!scheduler) {\n throw new Error('Cannot schedule task when not using lage');\n }\n\n reportStart({\n id: bundleRequest.id,\n inputPath: bundleRequest.packagePath,\n outputPath: bundleRequest.outputPath,\n name: bundleRequest.packageName,\n });\n\n await scheduler.scheduleTask(bundleRequest, scripts, options);\n\n reportEnd({\n id: bundleRequest.id,\n });\n },\n\n close: () =>\n new Promise<void>((resolve, reject) => {\n socketServer.clients.forEach((socket: WebSocket) => socket.terminate());\n socketServer.close((err) => (err ? reject(err) : resolve()));\n server.close();\n }),\n };\n}\n"]}
package/lib/trpc.d.ts CHANGED
@@ -10,6 +10,7 @@ export declare const router: <TProcRouterRecord extends import("@trpc/server").P
10
10
  taskRunner: import("./utilities/TaskRunner.js").TaskRunner;
11
11
  rootSpan: import("@opentelemetry/api").Span | undefined;
12
12
  reporter: import("@ms-cloudpack/task-reporter").TaskReporter;
13
+ packages: import("@ms-cloudpack/bundler-types").PackageDefinitionsCache;
13
14
  };
14
15
  meta: object;
15
16
  errorShape: import("@trpc/server").DefaultErrorShape;
@@ -24,6 +25,7 @@ export declare const publicProcedure: import("@trpc/server").ProcedureBuilder<{
24
25
  taskRunner: import("./utilities/TaskRunner.js").TaskRunner;
25
26
  rootSpan: import("@opentelemetry/api").Span | undefined;
26
27
  reporter: import("@ms-cloudpack/task-reporter").TaskReporter;
28
+ packages: import("@ms-cloudpack/bundler-types").PackageDefinitionsCache;
27
29
  };
28
30
  meta: object;
29
31
  errorShape: import("@trpc/server").DefaultErrorShape;
@@ -36,6 +38,7 @@ export declare const publicProcedure: import("@trpc/server").ProcedureBuilder<{
36
38
  taskRunner: import("./utilities/TaskRunner.js").TaskRunner;
37
39
  rootSpan: import("@opentelemetry/api").Span | undefined;
38
40
  reporter: import("@ms-cloudpack/task-reporter").TaskReporter;
41
+ packages: import("@ms-cloudpack/bundler-types").PackageDefinitionsCache;
39
42
  };
40
43
  _input_in: typeof import("@trpc/server").unsetMarker;
41
44
  _input_out: typeof import("@trpc/server").unsetMarker;
package/lib/trpc.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"trpc.d.ts","sourceRoot":"","sources":["../src/trpc.ts"],"names":[],"mappings":"AASA;;;GAGG;AACH,eAAO,MAAM,MAAM;;;;;;;;;;;;sBAAW,CAAC;AAC/B,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;EAAc,CAAC;AAE3C,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC"}
1
+ {"version":3,"file":"trpc.d.ts","sourceRoot":"","sources":["../src/trpc.ts"],"names":[],"mappings":"AASA;;;GAGG;AACH,eAAO,MAAM,MAAM;;;;;;;;;;;;;sBAAW,CAAC;AAC/B,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAAc,CAAC;AAE3C,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC"}
@@ -1,13 +1,16 @@
1
1
  import type { Session } from '../types/Session.js';
2
+ import type { PackageDefinitionsCache } from '@ms-cloudpack/bundler-types';
2
3
  /**
3
4
  * The addOverride method is triggered by a user action in the overlay, when we detect new usage of an import path
4
- * that isn't recognized. When the user trigers this override, we should write it to the cloudpack config, rather
5
- * than overrides which could get "reset" on `init --reset`.
5
+ * that isn't recognized. When the user trigers this override, we write it to the cloudpack user config, rather
6
+ * than generated configs which could get "reset" on `init --reset`.
6
7
  */
7
- export declare function addOverride({ session, packageName, importPath, filename, }: {
8
- session: Session;
8
+ export declare function addOverride(options: {
9
9
  packageName: string;
10
10
  importPath: string;
11
- filename?: string;
11
+ issuerUrl?: string;
12
+ }, context: {
13
+ packages: PackageDefinitionsCache;
14
+ session: Session;
12
15
  }): Promise<void>;
13
16
  //# sourceMappingURL=addOverride.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"addOverride.d.ts","sourceRoot":"","sources":["../../src/utilities/addOverride.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAOnD;;;;GAIG;AACH,wBAAsB,WAAW,CAAC,EAChC,OAAO,EACP,WAAW,EACX,UAAU,EACV,QAAQ,GACT,EAAE;IACD,OAAO,EAAE,OAAO,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,iBAkEA"}
1
+ {"version":3,"file":"addOverride.d.ts","sourceRoot":"","sources":["../../src/utilities/addOverride.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAGnD,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,6BAA6B,CAAC;AAG3E;;;;GAIG;AACH,wBAAsB,WAAW,CAC/B,OAAO,EAAE;IACP,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,EACD,OAAO,EAAE;IACP,QAAQ,EAAE,uBAAuB,CAAC;IAClC,OAAO,EAAE,OAAO,CAAC;CAClB,iBAwEF"}
@@ -1,18 +1,18 @@
1
- import { createPackageOverrideTransform } from './createPackageOverrideTransform.js';
2
- import { addExportsMapEntry, findResolveMapEntry, getExportsMap, PackageDefinitions, } from '@ms-cloudpack/package-utilities';
1
+ import { addExportsMapEntry, findResolveMapEntry, getExportsMap } from '@ms-cloudpack/package-utilities';
3
2
  import { slash } from '@ms-cloudpack/path-string-parsing';
4
3
  import { parseRequestInfo } from './parseRequestInfo.js';
5
- import { readConfig, writeGeneratedConfig } from '@ms-cloudpack/config';
6
- import { findPackageOverride } from './findPackageOverride.js';
4
+ import { getPackageSettings, readUserConfig, writeUserConfig } from '@ms-cloudpack/config';
7
5
  /**
8
6
  * The addOverride method is triggered by a user action in the overlay, when we detect new usage of an import path
9
- * that isn't recognized. When the user trigers this override, we should write it to the cloudpack config, rather
10
- * than overrides which could get "reset" on `init --reset`.
7
+ * that isn't recognized. When the user trigers this override, we write it to the cloudpack user config, rather
8
+ * than generated configs which could get "reset" on `init --reset`.
11
9
  */
12
- export async function addOverride({ session, packageName, importPath, filename, }) {
10
+ export async function addOverride(options, context) {
11
+ const { packageName, importPath, issuerUrl } = options;
12
+ const { session, packages } = context;
13
13
  let definition = undefined;
14
- if (filename) {
15
- const requestPath = slash(new URL(filename).pathname);
14
+ if (issuerUrl) {
15
+ const requestPath = slash(new URL(issuerUrl).pathname);
16
16
  const { packageName: name, version } = parseRequestInfo(requestPath);
17
17
  definition = { name, version };
18
18
  }
@@ -22,45 +22,44 @@ export async function addOverride({ session, packageName, importPath, filename,
22
22
  definition,
23
23
  });
24
24
  if (entry === undefined) {
25
- console.error(`Could not find entry of package ${packageName} in resolve map`);
25
+ console.error(`Could not find entry of package "${packageName}" in resolve map`);
26
26
  return;
27
27
  }
28
- const exports = (await getExportsMap(entry.path));
28
+ // Get current exports. We want to add an additional entry to what's there - not replace the default exports,
29
+ // so we need the full map for the package.
30
+ const exports = await getExportsMap({ packagePath: entry.path }, { packages });
31
+ // Now add the exports entry.
29
32
  await addExportsMapEntry({
30
33
  exports,
31
34
  packagePath: entry.path,
32
35
  importPath,
36
+ }, { packages });
37
+ // Parse the user config if it exists.
38
+ const config = await readUserConfig(session.appPath);
39
+ // Ensure packageSettings exist.
40
+ config.packageSettings ??= [];
41
+ // Get the existing override if it exists.
42
+ let setting = getPackageSettings({
43
+ name: entry.name,
44
+ version: entry.version,
45
+ config,
33
46
  });
34
- const packageOverride = {
35
- name: packageName,
36
- versionRequirement: `^${entry.version}`,
37
- overrides: {
38
- exports,
39
- },
40
- };
41
- // Parse config if it exists.
42
- const { packageOverrides = [] } = await readConfig(session.appPath);
43
- // Add package override to config.
44
- if (!packageOverrides.length) {
45
- packageOverrides.push(packageOverride);
47
+ // Initialize a new one if needed.
48
+ if (!setting) {
49
+ setting = {
50
+ match: {
51
+ name: packageName,
52
+ version: entry.version?.match(/^\d+\.\d+\.\d+(-[a-z0-9.-]+)?$/) ? `^${entry.version}` : undefined,
53
+ },
54
+ };
55
+ config.packageSettings.push(setting);
46
56
  }
47
- else {
48
- const existingOverride = findPackageOverride(packageOverrides, packageName, entry.version);
49
- if (existingOverride) {
50
- existingOverride.overrides = packageOverride.overrides;
51
- }
52
- else {
53
- packageOverrides.push(packageOverride);
54
- }
55
- } // Write config.
56
- await writeGeneratedConfig({
57
- packageOverrides,
58
- }, session.appPath);
59
- console.debug(`Added override for ${packageName} to cloudpack config`);
60
- const override = {
61
- packageOverrides: [packageOverride],
62
- };
63
- // Initialize package overrides.
64
- PackageDefinitions.getInstance().registerTransform(createPackageOverrideTransform(override));
57
+ // Update the exports.
58
+ setting.exports = exports;
59
+ // Write config.
60
+ await writeUserConfig(config, session.appPath);
61
+ console.debug(`Added override for "${packageName}" to "cloudpack.config.json".`);
62
+ // Instruct the package cache to reset, so that transforms can respect the modification to the exports map.
63
+ packages.reset({ newConfig: config });
65
64
  }
66
65
  //# sourceMappingURL=addOverride.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"addOverride.js","sourceRoot":"","sources":["../../src/utilities/addOverride.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,8BAA8B,EAAE,MAAM,qCAAqC,CAAC;AACrF,OAAO,EACL,kBAAkB,EAClB,mBAAmB,EACnB,aAAa,EACb,kBAAkB,GACnB,MAAM,iCAAiC,CAAC;AAIzC,OAAO,EAAE,KAAK,EAAE,MAAM,mCAAmC,CAAC;AAC1D,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,UAAU,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AACxE,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAE/D;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,EAChC,OAAO,EACP,WAAW,EACX,UAAU,EACV,QAAQ,GAMT;IACC,IAAI,UAAU,GAAG,SAAS,CAAC;IAE3B,IAAI,QAAQ,EAAE;QACZ,MAAM,WAAW,GAAG,KAAK,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC,CAAC;QACtD,MAAM,EAAE,WAAW,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,gBAAgB,CAAC,WAAW,CAAC,CAAC;QACrE,UAAU,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;KAChC;IAED,MAAM,KAAK,GAAG,mBAAmB,CAAC;QAChC,WAAW;QACX,UAAU,EAAE,OAAO,CAAC,UAAU;QAC9B,UAAU;KACX,CAAC,CAAC;IAEH,IAAI,KAAK,KAAK,SAAS,EAAE;QACvB,OAAO,CAAC,KAAK,CAAC,mCAAmC,WAAW,iBAAiB,CAAC,CAAC;QAC/E,OAAO;KACR;IAED,MAAM,OAAO,GAAG,CAAC,MAAM,aAAa,CAAC,KAAK,CAAC,IAAI,CAAC,CAA2C,CAAC;IAE5F,MAAM,kBAAkB,CAAC;QACvB,OAAO;QACP,WAAW,EAAE,KAAK,CAAC,IAAI;QACvB,UAAU;KACX,CAAC,CAAC;IAEH,MAAM,eAAe,GAAoB;QACvC,IAAI,EAAE,WAAW;QACjB,kBAAkB,EAAE,IAAI,KAAK,CAAC,OAAO,EAAE;QACvC,SAAS,EAAE;YACT,OAAO;SACR;KACF,CAAC;IAEF,6BAA6B;IAC7B,MAAM,EAAE,gBAAgB,GAAG,EAAE,EAAE,GAAG,MAAM,UAAU,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IAEpE,kCAAkC;IAClC,IAAI,CAAC,gBAAgB,CAAC,MAAM,EAAE;QAC5B,gBAAgB,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;KACxC;SAAM;QACL,MAAM,gBAAgB,GAAG,mBAAmB,CAAC,gBAAgB,EAAE,WAAW,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;QAE3F,IAAI,gBAAgB,EAAE;YACpB,gBAAgB,CAAC,SAAS,GAAG,eAAe,CAAC,SAAS,CAAC;SACxD;aAAM;YACL,gBAAgB,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;SACxC;KACF,CAAC,gBAAgB;IAClB,MAAM,oBAAoB,CACxB;QACE,gBAAgB;KACjB,EACD,OAAO,CAAC,OAAO,CAChB,CAAC;IAEF,OAAO,CAAC,KAAK,CAAC,sBAAsB,WAAW,sBAAsB,CAAC,CAAC;IAEvE,MAAM,QAAQ,GAAoB;QAChC,gBAAgB,EAAE,CAAC,eAAe,CAAC;KACpC,CAAC;IAEF,gCAAgC;IAChC,kBAAkB,CAAC,WAAW,EAAE,CAAC,iBAAiB,CAAC,8BAA8B,CAAC,QAAQ,CAAC,CAAC,CAAC;AAC/F,CAAC","sourcesContent":["import { createPackageOverrideTransform } from './createPackageOverrideTransform.js';\nimport {\n addExportsMapEntry,\n findResolveMapEntry,\n getExportsMap,\n PackageDefinitions,\n} from '@ms-cloudpack/package-utilities';\nimport type { PackageOverride } from '../types/PackageOverride.js';\nimport type { Session } from '../types/Session.js';\nimport type { CloudpackConfig } from '@ms-cloudpack/config';\nimport { slash } from '@ms-cloudpack/path-string-parsing';\nimport { parseRequestInfo } from './parseRequestInfo.js';\nimport { readConfig, writeGeneratedConfig } from '@ms-cloudpack/config';\nimport { findPackageOverride } from './findPackageOverride.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 trigers this override, we should write it to the cloudpack config, rather\n * than overrides which could get \"reset\" on `init --reset`.\n */\nexport async function addOverride({\n session,\n packageName,\n importPath,\n filename,\n}: {\n session: Session;\n packageName: string;\n importPath: string;\n filename?: string;\n}) {\n let definition = undefined;\n\n if (filename) {\n const requestPath = slash(new URL(filename).pathname);\n const { packageName: name, version } = parseRequestInfo(requestPath);\n definition = { name, version };\n }\n\n const entry = findResolveMapEntry({\n packageName,\n resolveMap: session.resolveMap,\n definition,\n });\n\n if (entry === undefined) {\n console.error(`Could not find entry of package ${packageName} in resolve map`);\n return;\n }\n\n const exports = (await getExportsMap(entry.path)) as Record<string, Record<string, string>>;\n\n await addExportsMapEntry({\n exports,\n packagePath: entry.path,\n importPath,\n });\n\n const packageOverride: PackageOverride = {\n name: packageName,\n versionRequirement: `^${entry.version}`,\n overrides: {\n exports,\n },\n };\n\n // Parse config if it exists.\n const { packageOverrides = [] } = await readConfig(session.appPath);\n\n // Add package override to config.\n if (!packageOverrides.length) {\n packageOverrides.push(packageOverride);\n } else {\n const existingOverride = findPackageOverride(packageOverrides, packageName, entry.version);\n\n if (existingOverride) {\n existingOverride.overrides = packageOverride.overrides;\n } else {\n packageOverrides.push(packageOverride);\n }\n } // Write config.\n await writeGeneratedConfig(\n {\n packageOverrides,\n },\n session.appPath,\n );\n\n console.debug(`Added override for ${packageName} to cloudpack config`);\n\n const override: CloudpackConfig = {\n packageOverrides: [packageOverride],\n };\n\n // Initialize package overrides.\n PackageDefinitions.getInstance().registerTransform(createPackageOverrideTransform(override));\n}\n"]}
1
+ {"version":3,"file":"addOverride.js","sourceRoot":"","sources":["../../src/utilities/addOverride.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAEzG,OAAO,EAAE,KAAK,EAAE,MAAM,mCAAmC,CAAC;AAC1D,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAEzD,OAAO,EAAE,kBAAkB,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAE3F;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,WAAW,CAC/B,OAIC,EACD,OAGC;IAED,MAAM,EAAE,WAAW,EAAE,UAAU,EAAE,SAAS,EAAE,GAAG,OAAO,CAAC;IACvD,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC;IACtC,IAAI,UAAU,GAAG,SAAS,CAAC;IAE3B,IAAI,SAAS,EAAE;QACb,MAAM,WAAW,GAAG,KAAK,CAAC,IAAI,GAAG,CAAC,SAAS,CAAC,CAAC,QAAQ,CAAC,CAAC;QACvD,MAAM,EAAE,WAAW,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,gBAAgB,CAAC,WAAW,CAAC,CAAC;QACrE,UAAU,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;KAChC;IAED,MAAM,KAAK,GAAG,mBAAmB,CAAC;QAChC,WAAW;QACX,UAAU,EAAE,OAAO,CAAC,UAAU;QAC9B,UAAU;KACX,CAAC,CAAC;IAEH,IAAI,KAAK,KAAK,SAAS,EAAE;QACvB,OAAO,CAAC,KAAK,CAAC,oCAAoC,WAAW,kBAAkB,CAAC,CAAC;QACjF,OAAO;KACR;IAED,6GAA6G;IAC7G,2CAA2C;IAC3C,MAAM,OAAO,GAAG,MAAM,aAAa,CAAC,EAAE,WAAW,EAAE,KAAK,CAAC,IAAI,EAAE,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC;IAE/E,6BAA6B;IAC7B,MAAM,kBAAkB,CACtB;QACE,OAAO;QACP,WAAW,EAAE,KAAK,CAAC,IAAI;QACvB,UAAU;KACX,EACD,EAAE,QAAQ,EAAE,CACb,CAAC;IAEF,sCAAsC;IACtC,MAAM,MAAM,GAAG,MAAM,cAAc,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IAErD,gCAAgC;IAChC,MAAM,CAAC,eAAe,KAAK,EAAE,CAAC;IAE9B,0CAA0C;IAC1C,IAAI,OAAO,GAAG,kBAAkB,CAAC;QAC/B,IAAI,EAAE,KAAK,CAAC,IAAI;QAChB,OAAO,EAAE,KAAK,CAAC,OAAO;QACtB,MAAM;KACP,CAAC,CAAC;IAEH,kCAAkC;IAClC,IAAI,CAAC,OAAO,EAAE;QACZ,OAAO,GAAG;YACR,KAAK,EAAE;gBACL,IAAI,EAAE,WAAW;gBACjB,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,gCAAgC,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,SAAS;aAClG;SACF,CAAC;QAEF,MAAM,CAAC,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;KACtC;IAED,sBAAsB;IACtB,OAAO,CAAC,OAAO,GAAG,OAAO,CAAC;IAE1B,gBAAgB;IAChB,MAAM,eAAe,CAAC,MAAM,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;IAE/C,OAAO,CAAC,KAAK,CAAC,uBAAuB,WAAW,+BAA+B,CAAC,CAAC;IAEjF,2GAA2G;IAC3G,QAAQ,CAAC,KAAK,CAAC,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC,CAAC;AACxC,CAAC","sourcesContent":["import { addExportsMapEntry, findResolveMapEntry, getExportsMap } from '@ms-cloudpack/package-utilities';\nimport type { Session } from '../types/Session.js';\nimport { slash } from '@ms-cloudpack/path-string-parsing';\nimport { parseRequestInfo } from './parseRequestInfo.js';\nimport type { PackageDefinitionsCache } from '@ms-cloudpack/bundler-types';\nimport { getPackageSettings, readUserConfig, writeUserConfig } from '@ms-cloudpack/config';\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 trigers this override, we write it to the cloudpack user config, rather\n * than generated configs which could get \"reset\" on `init --reset`.\n */\nexport async function addOverride(\n options: {\n packageName: string;\n importPath: string;\n issuerUrl?: string;\n },\n context: {\n packages: PackageDefinitionsCache;\n session: Session;\n },\n) {\n const { packageName, importPath, issuerUrl } = options;\n const { session, packages } = context;\n let definition = undefined;\n\n if (issuerUrl) {\n const requestPath = slash(new URL(issuerUrl).pathname);\n const { packageName: name, version } = parseRequestInfo(requestPath);\n definition = { name, version };\n }\n\n const entry = findResolveMapEntry({\n packageName,\n resolveMap: session.resolveMap,\n definition,\n });\n\n if (entry === undefined) {\n console.error(`Could not find entry of package \"${packageName}\" in resolve map`);\n return;\n }\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: entry.path }, { packages });\n\n // Now add the exports entry.\n await addExportsMapEntry(\n {\n exports,\n packagePath: entry.path,\n importPath,\n },\n { packages },\n );\n\n // Parse the user config if it exists.\n const config = await readUserConfig(session.appPath);\n\n // Ensure packageSettings exist.\n config.packageSettings ??= [];\n\n // Get the existing override if it exists.\n let setting = getPackageSettings({\n name: entry.name,\n version: entry.version,\n config,\n });\n\n // Initialize a new one if needed.\n if (!setting) {\n setting = {\n match: {\n name: packageName,\n version: entry.version?.match(/^\\d+\\.\\d+\\.\\d+(-[a-z0-9.-]+)?$/) ? `^${entry.version}` : undefined,\n },\n };\n\n config.packageSettings.push(setting);\n }\n\n // Update the exports.\n setting.exports = exports;\n\n // Write config.\n await writeUserConfig(config, session.appPath);\n\n console.debug(`Added override for \"${packageName}\" to \"cloudpack.config.json\".`);\n\n // Instruct the package cache to reset, so that transforms can respect the modification to the exports map.\n packages.reset({ newConfig: config });\n}\n"]}
@@ -6,12 +6,12 @@ import { getConfigPath, configTemplate } from '@ms-cloudpack/config';
6
6
  * Opens the cloudpack config file in the editor.
7
7
  */
8
8
  export async function editCloudpackConfig() {
9
- const { configPath } = getConfigPath(process.cwd());
9
+ const { userConfigPath } = getConfigPath(process.cwd());
10
10
  // Check if file exists
11
- if (!(await isFile(configPath))) {
11
+ if (!(await isFile(userConfigPath))) {
12
12
  // Create file with default config
13
- await writeJson(configPath, configTemplate);
13
+ await writeJson(userConfigPath, configTemplate);
14
14
  }
15
- execSync(`code --goto ${JSON.stringify(configPath)}`, { cwd: process.cwd() });
15
+ execSync(`code --goto ${JSON.stringify(userConfigPath)}`, { cwd: process.cwd() });
16
16
  }
17
17
  //# sourceMappingURL=editCloudpackConfig.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"editCloudpackConfig.js","sourceRoot":"","sources":["../../src/utilities/editCloudpackConfig.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;AACzD,OAAO,EAAE,MAAM,EAAE,MAAM,8BAA8B,CAAC;AACtD,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAErE;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB;IACvC,MAAM,EAAE,UAAU,EAAE,GAAG,aAAa,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;IAEpD,uBAAuB;IACvB,IAAI,CAAC,CAAC,MAAM,MAAM,CAAC,UAAU,CAAC,CAAC,EAAE;QAC/B,kCAAkC;QAClC,MAAM,SAAS,CAAC,UAAU,EAAE,cAAc,CAAC,CAAC;KAC7C;IAED,QAAQ,CAAC,eAAe,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;AAChF,CAAC","sourcesContent":["import { writeJson } from '@ms-cloudpack/json-utilities';\nimport { isFile } from '@ms-cloudpack/path-utilities';\nimport { execSync } from 'child_process';\nimport { getConfigPath, configTemplate } from '@ms-cloudpack/config';\n\n/**\n * Opens the cloudpack config file in the editor.\n */\nexport async function editCloudpackConfig() {\n const { configPath } = getConfigPath(process.cwd());\n\n // Check if file exists\n if (!(await isFile(configPath))) {\n // Create file with default config\n await writeJson(configPath, configTemplate);\n }\n\n execSync(`code --goto ${JSON.stringify(configPath)}`, { cwd: process.cwd() });\n}\n"]}
1
+ {"version":3,"file":"editCloudpackConfig.js","sourceRoot":"","sources":["../../src/utilities/editCloudpackConfig.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;AACzD,OAAO,EAAE,MAAM,EAAE,MAAM,8BAA8B,CAAC;AACtD,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAErE;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB;IACvC,MAAM,EAAE,cAAc,EAAE,GAAG,aAAa,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;IAExD,uBAAuB;IACvB,IAAI,CAAC,CAAC,MAAM,MAAM,CAAC,cAAc,CAAC,CAAC,EAAE;QACnC,kCAAkC;QAClC,MAAM,SAAS,CAAC,cAAc,EAAE,cAAc,CAAC,CAAC;KACjD;IAED,QAAQ,CAAC,eAAe,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;AACpF,CAAC","sourcesContent":["import { writeJson } from '@ms-cloudpack/json-utilities';\nimport { isFile } from '@ms-cloudpack/path-utilities';\nimport { execSync } from 'child_process';\nimport { getConfigPath, configTemplate } from '@ms-cloudpack/config';\n\n/**\n * Opens the cloudpack config file in the editor.\n */\nexport async function editCloudpackConfig() {\n const { userConfigPath } = getConfigPath(process.cwd());\n\n // Check if file exists\n if (!(await isFile(userConfigPath))) {\n // Create file with default config\n await writeJson(userConfigPath, configTemplate);\n }\n\n execSync(`code --goto ${JSON.stringify(userConfigPath)}`, { cwd: process.cwd() });\n}\n"]}
@@ -1,8 +1,15 @@
1
1
  import type { Session } from '../types/Session.js';
2
- export declare function validateOverride({ session, packageName, importPath, filename, }: {
3
- session: Session;
2
+ import type { PackageDefinitionsCache } from '@ms-cloudpack/bundler-types';
3
+ /**
4
+ * Given a package name, import path, and optional issuerUrl, returns a boolean indicating if the given
5
+ * override is valid.
6
+ */
7
+ export declare function validateOverride(options: {
4
8
  packageName: string;
5
9
  importPath: string;
6
- filename?: string;
10
+ issuerUrl?: string;
11
+ }, context: {
12
+ session: Session;
13
+ packages: PackageDefinitionsCache;
7
14
  }): Promise<boolean>;
8
15
  //# sourceMappingURL=validateOverride.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"validateOverride.d.ts","sourceRoot":"","sources":["../../src/utilities/validateOverride.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAGnD,wBAAsB,gBAAgB,CAAC,EACrC,OAAO,EACP,WAAW,EACX,UAAU,EACV,QAAQ,GACT,EAAE;IACD,OAAO,EAAE,OAAO,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,oBA4BA"}
1
+ {"version":3,"file":"validateOverride.d.ts","sourceRoot":"","sources":["../../src/utilities/validateOverride.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAEnD,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,6BAA6B,CAAC;AAE3E;;;GAGG;AACH,wBAAsB,gBAAgB,CACpC,OAAO,EAAE;IACP,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,EACD,OAAO,EAAE;IACP,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,uBAAuB,CAAC;CACnC,oBAkCF"}
@@ -1,10 +1,16 @@
1
1
  import { findResolveMapEntry, findFileInPackage } from '@ms-cloudpack/package-utilities';
2
2
  import { slash } from '@ms-cloudpack/path-string-parsing';
3
3
  import { parseRequestInfo } from './parseRequestInfo.js';
4
- export async function validateOverride({ session, packageName, importPath, filename, }) {
4
+ /**
5
+ * Given a package name, import path, and optional issuerUrl, returns a boolean indicating if the given
6
+ * override is valid.
7
+ */
8
+ export async function validateOverride(options, context) {
9
+ const { packageName, importPath, issuerUrl } = options;
10
+ const { session } = context;
5
11
  let definition = undefined;
6
- if (filename) {
7
- const requestPath = slash(new URL(filename).pathname);
12
+ if (issuerUrl) {
13
+ const requestPath = slash(new URL(issuerUrl).pathname);
8
14
  const { packageName: name, version } = parseRequestInfo(requestPath);
9
15
  definition = { name, version };
10
16
  }
@@ -19,7 +25,7 @@ export async function validateOverride({ session, packageName, importPath, filen
19
25
  const { filePath } = await findFileInPackage({
20
26
  packagePath: entry.path,
21
27
  filePath: importPath,
22
- });
28
+ }, context);
23
29
  if (filePath) {
24
30
  return true;
25
31
  }
@@ -1 +1 @@
1
- {"version":3,"file":"validateOverride.js","sourceRoot":"","sources":["../../src/utilities/validateOverride.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AACzF,OAAO,EAAE,KAAK,EAAE,MAAM,mCAAmC,CAAC;AAE1D,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAEzD,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,EACrC,OAAO,EACP,WAAW,EACX,UAAU,EACV,QAAQ,GAMT;IACC,IAAI,UAAU,GAAG,SAAS,CAAC;IAE3B,IAAI,QAAQ,EAAE;QACZ,MAAM,WAAW,GAAG,KAAK,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC,CAAC;QACtD,MAAM,EAAE,WAAW,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,gBAAgB,CAAC,WAAW,CAAC,CAAC;QACrE,UAAU,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;KAChC;IAED,MAAM,KAAK,GAAG,mBAAmB,CAAC;QAChC,WAAW;QACX,UAAU,EAAE,OAAO,CAAC,UAAU;QAC9B,UAAU;KACX,CAAC,CAAC;IAEH,IAAI,KAAK,KAAK,SAAS,EAAE;QACvB,OAAO,KAAK,CAAC;KACd;IAED,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,iBAAiB,CAAC;QAC3C,WAAW,EAAE,KAAK,CAAC,IAAI;QACvB,QAAQ,EAAE,UAAU;KACrB,CAAC,CAAC;IAEH,IAAI,QAAQ,EAAE;QACZ,OAAO,IAAI,CAAC;KACb;IACD,OAAO,KAAK,CAAC;AACf,CAAC","sourcesContent":["import { findResolveMapEntry, findFileInPackage } from '@ms-cloudpack/package-utilities';\nimport { slash } from '@ms-cloudpack/path-string-parsing';\nimport type { Session } from '../types/Session.js';\nimport { parseRequestInfo } from './parseRequestInfo.js';\n\nexport async function validateOverride({\n session,\n packageName,\n importPath,\n filename,\n}: {\n session: Session;\n packageName: string;\n importPath: string;\n filename?: string;\n}) {\n let definition = undefined;\n\n if (filename) {\n const requestPath = slash(new URL(filename).pathname);\n const { packageName: name, version } = parseRequestInfo(requestPath);\n definition = { name, version };\n }\n\n const entry = findResolveMapEntry({\n packageName,\n resolveMap: session.resolveMap,\n definition,\n });\n\n if (entry === undefined) {\n return false;\n }\n\n const { filePath } = await findFileInPackage({\n packagePath: entry.path,\n filePath: importPath,\n });\n\n if (filePath) {\n return true;\n }\n return false;\n}\n"]}
1
+ {"version":3,"file":"validateOverride.js","sourceRoot":"","sources":["../../src/utilities/validateOverride.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AACzF,OAAO,EAAE,KAAK,EAAE,MAAM,mCAAmC,CAAC;AAE1D,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAGzD;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,OAIC,EACD,OAGC;IAED,MAAM,EAAE,WAAW,EAAE,UAAU,EAAE,SAAS,EAAE,GAAG,OAAO,CAAC;IACvD,MAAM,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC;IAC5B,IAAI,UAAU,GAAG,SAAS,CAAC;IAE3B,IAAI,SAAS,EAAE;QACb,MAAM,WAAW,GAAG,KAAK,CAAC,IAAI,GAAG,CAAC,SAAS,CAAC,CAAC,QAAQ,CAAC,CAAC;QACvD,MAAM,EAAE,WAAW,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,gBAAgB,CAAC,WAAW,CAAC,CAAC;QACrE,UAAU,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;KAChC;IAED,MAAM,KAAK,GAAG,mBAAmB,CAAC;QAChC,WAAW;QACX,UAAU,EAAE,OAAO,CAAC,UAAU;QAC9B,UAAU;KACX,CAAC,CAAC;IAEH,IAAI,KAAK,KAAK,SAAS,EAAE;QACvB,OAAO,KAAK,CAAC;KACd;IAED,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,iBAAiB,CAC1C;QACE,WAAW,EAAE,KAAK,CAAC,IAAI;QACvB,QAAQ,EAAE,UAAU;KACrB,EACD,OAAO,CACR,CAAC;IAEF,IAAI,QAAQ,EAAE;QACZ,OAAO,IAAI,CAAC;KACb;IACD,OAAO,KAAK,CAAC;AACf,CAAC","sourcesContent":["import { findResolveMapEntry, findFileInPackage } from '@ms-cloudpack/package-utilities';\nimport { slash } from '@ms-cloudpack/path-string-parsing';\nimport type { Session } from '../types/Session.js';\nimport { parseRequestInfo } from './parseRequestInfo.js';\nimport type { PackageDefinitionsCache } from '@ms-cloudpack/bundler-types';\n\n/**\n * Given a package name, import path, and optional issuerUrl, returns a boolean indicating if the given\n * override is valid.\n */\nexport async function validateOverride(\n options: {\n packageName: string;\n importPath: string;\n issuerUrl?: string;\n },\n context: {\n session: Session;\n packages: PackageDefinitionsCache;\n },\n) {\n const { packageName, importPath, issuerUrl } = options;\n const { session } = context;\n let definition = undefined;\n\n if (issuerUrl) {\n const requestPath = slash(new URL(issuerUrl).pathname);\n const { packageName: name, version } = parseRequestInfo(requestPath);\n definition = { name, version };\n }\n\n const entry = findResolveMapEntry({\n packageName,\n resolveMap: session.resolveMap,\n definition,\n });\n\n if (entry === undefined) {\n return false;\n }\n\n const { filePath } = await findFileInPackage(\n {\n packagePath: entry.path,\n filePath: importPath,\n },\n context,\n );\n\n if (filePath) {\n return true;\n }\n return false;\n}\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ms-cloudpack/api-server",
3
- "version": "0.6.21",
3
+ "version": "0.7.0",
4
4
  "description": "An implementation of the API server that does interacts with a task scheduler.",
5
5
  "license": "MIT",
6
6
  "type": "module",
@@ -17,14 +17,14 @@
17
17
  "@lage-run/scheduler": "^1.0.0",
18
18
  "@lage-run/target-graph": "^0.8.6",
19
19
  "@lage-run/hasher": "^1.0.0",
20
- "@ms-cloudpack/bundler-types": "^0.15.0",
21
- "@ms-cloudpack/config": "^0.7.6",
22
- "@ms-cloudpack/create-express-app": "^1.3.7",
23
- "@ms-cloudpack/data-bus": "^0.3.0",
24
- "@ms-cloudpack/package-utilities": "^3.1.6",
25
- "@ms-cloudpack/path-string-parsing": "^1.0.2",
26
- "@ms-cloudpack/task-reporter": "^0.5.2",
27
- "@ms-cloudpack/telemetry": "^0.3.4",
20
+ "@ms-cloudpack/bundler-types": "^0.16.0",
21
+ "@ms-cloudpack/config": "^0.8.0",
22
+ "@ms-cloudpack/create-express-app": "^1.3.8",
23
+ "@ms-cloudpack/data-bus": "^0.3.1",
24
+ "@ms-cloudpack/package-utilities": "^4.0.0",
25
+ "@ms-cloudpack/path-string-parsing": "^1.0.3",
26
+ "@ms-cloudpack/task-reporter": "^0.5.3",
27
+ "@ms-cloudpack/telemetry": "^0.3.5",
28
28
  "@trpc/client": "^10.21.1",
29
29
  "@trpc/server": "^10.21.1",
30
30
  "chokidar": "^3.5.3",
@@ -1,7 +0,0 @@
1
- import type { CloudpackConfig } from '@ms-cloudpack/config';
2
- import type { PackageDefinitionTransform } from '@ms-cloudpack/bundler-types';
3
- /**
4
- * Creates a transform to be registered with a PackageDefinitions registry for overriding package.json definitions.
5
- */
6
- export declare function createPackageOverrideTransform(config: CloudpackConfig): PackageDefinitionTransform;
7
- //# sourceMappingURL=createPackageOverrideTransform.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"createPackageOverrideTransform.d.ts","sourceRoot":"","sources":["../../src/utilities/createPackageOverrideTransform.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,KAAK,EAAe,0BAA0B,EAAE,MAAM,6BAA6B,CAAC;AAG3F;;GAEG;AACH,wBAAgB,8BAA8B,CAAC,MAAM,EAAE,eAAe,GAAG,0BAA0B,CAgBlG"}
@@ -1,19 +0,0 @@
1
- import { findPackageOverride } from './findPackageOverride.js';
2
- /**
3
- * Creates a transform to be registered with a PackageDefinitions registry for overriding package.json definitions.
4
- */
5
- export function createPackageOverrideTransform(config) {
6
- const { packageOverrides = [] } = config;
7
- return (packageDefinition) => {
8
- const { name = '', version = '' } = packageDefinition;
9
- const packageOverride = findPackageOverride(packageOverrides, name, version);
10
- if (packageOverride) {
11
- return {
12
- ...packageDefinition,
13
- ...packageOverride.overrides,
14
- };
15
- }
16
- return undefined;
17
- };
18
- }
19
- //# sourceMappingURL=createPackageOverrideTransform.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"createPackageOverrideTransform.js","sourceRoot":"","sources":["../../src/utilities/createPackageOverrideTransform.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAE/D;;GAEG;AACH,MAAM,UAAU,8BAA8B,CAAC,MAAuB;IACpE,MAAM,EAAE,gBAAgB,GAAG,EAAE,EAAE,GAAG,MAAM,CAAC;IAEzC,OAAO,CAAC,iBAA8B,EAAE,EAAE;QACxC,MAAM,EAAE,IAAI,GAAG,EAAE,EAAE,OAAO,GAAG,EAAE,EAAE,GAAG,iBAAiB,CAAC;QACtD,MAAM,eAAe,GAAG,mBAAmB,CAAC,gBAAgB,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;QAE7E,IAAI,eAAe,EAAE;YACnB,OAAO;gBACL,GAAG,iBAAiB;gBACpB,GAAG,eAAe,CAAC,SAAS;aAC7B,CAAC;SACH;QAED,OAAO,SAAS,CAAC;IACnB,CAAC,CAAC;AACJ,CAAC","sourcesContent":["import type { CloudpackConfig } from '@ms-cloudpack/config';\nimport type { PackageJson, PackageDefinitionTransform } from '@ms-cloudpack/bundler-types';\nimport { findPackageOverride } from './findPackageOverride.js';\n\n/**\n * Creates a transform to be registered with a PackageDefinitions registry for overriding package.json definitions.\n */\nexport function createPackageOverrideTransform(config: CloudpackConfig): PackageDefinitionTransform {\n const { packageOverrides = [] } = config;\n\n return (packageDefinition: PackageJson) => {\n const { name = '', version = '' } = packageDefinition;\n const packageOverride = findPackageOverride(packageOverrides, name, version);\n\n if (packageOverride) {\n return {\n ...packageDefinition,\n ...packageOverride.overrides,\n };\n }\n\n return undefined;\n };\n}\n"]}