@ms-cloudpack/api-server 0.21.10 → 0.22.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 (52) hide show
  1. package/lib/apis/ensurePackageBundled.d.ts +16 -16
  2. package/lib/apis/ensurePackageBundled.d.ts.map +1 -1
  3. package/lib/apis/ensurePackageBundled.js +1 -2
  4. package/lib/apis/ensurePackageBundled.js.map +1 -1
  5. package/lib/index.d.ts +0 -1
  6. package/lib/index.d.ts.map +1 -1
  7. package/lib/index.js +0 -1
  8. package/lib/index.js.map +1 -1
  9. package/lib/startApiServer.d.ts +4 -2
  10. package/lib/startApiServer.d.ts.map +1 -1
  11. package/lib/startApiServer.js +6 -61
  12. package/lib/startApiServer.js.map +1 -1
  13. package/lib/trpc/createAppRouter.d.ts +8 -8
  14. package/lib/trpc/createCloudpackServer.d.ts +4 -4
  15. package/lib/types/ApiServer.d.ts +0 -7
  16. package/lib/types/ApiServer.d.ts.map +1 -1
  17. package/lib/types/ApiServer.js.map +1 -1
  18. package/lib/types/BundleRequest.d.ts +2 -3
  19. package/lib/types/BundleRequest.d.ts.map +1 -1
  20. package/lib/types/BundleRequest.js.map +1 -1
  21. package/lib/utilities/TaskRunner.d.ts +3 -1
  22. package/lib/utilities/TaskRunner.d.ts.map +1 -1
  23. package/lib/utilities/TaskRunner.js +23 -2
  24. package/lib/utilities/TaskRunner.js.map +1 -1
  25. package/lib/utilities/bundleTask.d.ts.map +1 -1
  26. package/lib/utilities/bundleTask.js +31 -13
  27. package/lib/utilities/bundleTask.js.map +1 -1
  28. package/lib/utilities/createBundleRequestForPackage.d.ts +1 -1
  29. package/lib/utilities/createBundleRequestForPackage.d.ts.map +1 -1
  30. package/lib/utilities/createBundleRequestForPackage.js +5 -7
  31. package/lib/utilities/createBundleRequestForPackage.js.map +1 -1
  32. package/lib/utilities/createBundleTask.d.ts.map +1 -1
  33. package/lib/utilities/createBundleTask.js +8 -5
  34. package/lib/utilities/createBundleTask.js.map +1 -1
  35. package/lib/utilities/getBundleLocation.d.ts +10 -0
  36. package/lib/utilities/getBundleLocation.d.ts.map +1 -0
  37. package/lib/utilities/{getBundleDetails.js → getBundleLocation.js} +8 -13
  38. package/lib/utilities/getBundleLocation.js.map +1 -0
  39. package/lib/utilities/getPackagesToSync.d.ts.map +1 -1
  40. package/lib/utilities/getPackagesToSync.js +6 -5
  41. package/lib/utilities/getPackagesToSync.js.map +1 -1
  42. package/lib/utilities/isCachedResultValid.d.ts.map +1 -1
  43. package/lib/utilities/isCachedResultValid.js +5 -1
  44. package/lib/utilities/isCachedResultValid.js.map +1 -1
  45. package/package.json +4 -5
  46. package/lib/utilities/getBundleDetails.d.ts +0 -16
  47. package/lib/utilities/getBundleDetails.d.ts.map +0 -1
  48. package/lib/utilities/getBundleDetails.js.map +0 -1
  49. package/lib/utilities/startWatcher.d.ts +0 -9
  50. package/lib/utilities/startWatcher.d.ts.map +0 -1
  51. package/lib/utilities/startWatcher.js +0 -51
  52. package/lib/utilities/startWatcher.js.map +0 -1
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ms-cloudpack/api-server",
3
- "version": "0.21.10",
3
+ "version": "0.22.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",
@@ -28,14 +28,14 @@
28
28
  "@lage-run/scheduler": "^1.1.9",
29
29
  "@lage-run/target-graph": "^0.8.7",
30
30
  "@lage-run/hasher": "^1.0.5",
31
- "@ms-cloudpack/bundler": "^0.15.1",
31
+ "@ms-cloudpack/bundler": "^0.15.2",
32
32
  "@ms-cloudpack/bundler-types": "^0.19.4",
33
- "@ms-cloudpack/config": "^0.14.3",
33
+ "@ms-cloudpack/config": "^0.14.4",
34
34
  "@ms-cloudpack/create-express-app": "^1.3.12",
35
35
  "@ms-cloudpack/data-bus": "^0.4.1",
36
36
  "@ms-cloudpack/file-watcher": "^0.1.1",
37
37
  "@ms-cloudpack/json-utilities": "^0.0.8",
38
- "@ms-cloudpack/package-utilities": "^5.1.13",
38
+ "@ms-cloudpack/package-utilities": "^5.1.14",
39
39
  "@ms-cloudpack/path-string-parsing": "^1.1.1",
40
40
  "@ms-cloudpack/path-utilities": "^2.3.5",
41
41
  "@ms-cloudpack/task-reporter": "^0.10.0",
@@ -43,7 +43,6 @@
43
43
  "@ms-cloudpack/remote-cache": "^0.1.14",
44
44
  "@trpc/client": "^10.40.0",
45
45
  "@trpc/server": "^10.40.0",
46
- "chokidar": "^3.5.3",
47
46
  "cors": "^2.8.5",
48
47
  "es-module-lexer": "^1.0.3",
49
48
  "fast-glob": "^3.2.12",
@@ -1,16 +0,0 @@
1
- import type { PackageDefinitionsCache } from '@ms-cloudpack/bundler-types';
2
- import type { CloudpackConfig } from '@ms-cloudpack/config';
3
- export declare function getBundleDetails(options: {
4
- packagePath: string;
5
- }, context: {
6
- packages: PackageDefinitionsCache;
7
- config?: CloudpackConfig;
8
- }): Promise<{
9
- bundleId: string;
10
- isExternal: boolean;
11
- outputLocation: {
12
- path: string;
13
- folderName: string;
14
- };
15
- }>;
16
- //# sourceMappingURL=getBundleDetails.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"getBundleDetails.d.ts","sourceRoot":"","sources":["../../src/utilities/getBundleDetails.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,6BAA6B,CAAC;AAC3E,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAE5D,wBAAsB,gBAAgB,CACpC,OAAO,EAAE;IAAE,WAAW,EAAE,MAAM,CAAA;CAAE,EAChC,OAAO,EAAE;IAAE,QAAQ,EAAE,uBAAuB,CAAC;IAAC,MAAM,CAAC,EAAE,eAAe,CAAA;CAAE;;;;;;;GAmCzE"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"getBundleDetails.js","sourceRoot":"","sources":["../../src/utilities/getBundleDetails.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AACpE,OAAO,IAAI,MAAM,aAAa,CAAC;AAC/B,OAAO,UAAU,MAAM,YAAY,CAAC;AACpC,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAIjD,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,OAAgC,EAChC,OAAwE;IAExE,MAAM,EAAE,WAAW,EAAE,GAAG,OAAO,CAAC;IAChC,MAAM,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC;IAC7B,MAAM,UAAU,GAAG,MAAM,QAAQ,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;IAEnD,IAAI,CAAC,UAAU,EAAE;QACf,MAAM,IAAI,KAAK,CAAC,4DAA4D,WAAW,GAAG,CAAC,CAAC;KAC7F;IAED,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,GAAG,UAAU,CAAC;IAElD,IAAI,CAAC,WAAW,EAAE;QAChB,MAAM,IAAI,KAAK,CAAC,sDAAsD,WAAW,GAAG,CAAC,CAAC;KACvF;IAED,MAAM,UAAU,GAAG,iBAAiB,CAAC,WAAW,CAAC,CAAC;IAClD,MAAM,QAAQ,GAAG,IAAI,CAAC;QACpB,IAAI,EAAE,WAAW;QACjB,GAAG,UAAU;QACb,OAAO,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,WAAW;KAC7D,CAAC,CAAC;IAEH,qCAAqC;IACrC,MAAM,UAAU,GAAG,GAAG,UAAU,CAAC,WAAW,CAAC,IAAI,OAAO,IAAI,QAAQ,EAAE,CAAC;IACvE,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,EAAE,UAAU,CAAC,CAAC;IAEzD,OAAO;QACL,QAAQ;QACR,UAAU;QACV,cAAc,EAAE;YACd,IAAI,EAAE,UAAU;YAChB,UAAU;SACX;KACF,CAAC;AACJ,CAAC","sourcesContent":["import { isExternalPackage } from '@ms-cloudpack/package-utilities';\nimport hash from 'object-hash';\nimport filenamify from 'filenamify';\nimport path from 'path';\nimport { getCachePath } from './getCachePath.js';\nimport type { PackageDefinitionsCache } from '@ms-cloudpack/bundler-types';\nimport type { CloudpackConfig } from '@ms-cloudpack/config';\n\nexport async function getBundleDetails(\n options: { packagePath: string },\n context: { packages: PackageDefinitionsCache; config?: CloudpackConfig },\n) {\n const { packagePath } = options;\n const { packages } = context;\n const definition = await packages.get(packagePath);\n\n if (!definition) {\n throw new Error(`Package definition (package.json) missing or invalid at \"${packagePath}\"`);\n }\n\n const { name: packageName, version } = definition;\n\n if (!packageName) {\n throw new Error(`Package definition (package.json) missing name at \"${packagePath}\"`);\n }\n\n const isExternal = isExternalPackage(packagePath);\n const bundleId = hash({\n name: packageName,\n ...definition,\n version: (isExternal ? version : packagePath) || packagePath,\n });\n\n // Derive where the output should be.\n const folderName = `${filenamify(packageName)}-${version}-${bundleId}`;\n const outputPath = path.join(getCachePath(), folderName);\n\n return {\n bundleId,\n isExternal,\n outputLocation: {\n path: outputPath,\n folderName,\n },\n };\n}\n"]}
@@ -1,9 +0,0 @@
1
- import type { Task } from '../types/Task.js';
2
- import type { ApiServer } from '../types/ApiServer.js';
3
- export declare function startWatcher(addTask: ApiServer['addTask']): {
4
- watch: <TReturn>(task: Task<TReturn>, options?: {
5
- onSuccess?: () => void;
6
- onDispose?: () => void;
7
- }) => void;
8
- };
9
- //# sourceMappingURL=startWatcher.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"startWatcher.d.ts","sourceRoot":"","sources":["../../src/utilities/startWatcher.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAEvD,wBAAgB,YAAY,CAAC,OAAO,EAAE,SAAS,CAAC,SAAS,CAAC;oDAIN;QAAE,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,IAAI,CAAA;KAAE;EAiDrG"}
@@ -1,51 +0,0 @@
1
- import chokidar from 'chokidar';
2
- export function startWatcher(addTask) {
3
- const watched = new Set();
4
- return {
5
- watch: (task, options) => {
6
- const { id, name, dir } = task;
7
- // Have a single watcher per bundle request.
8
- if (watched.has(id) || !dir) {
9
- return;
10
- }
11
- watched.add(id);
12
- console.debug(`Initializing file watcher for ${name}`);
13
- // TODO: This is a bit of a hack. We should be able to use the watch API, but it doesn't seem to work.
14
- const watcher = chokidar.watch(dir).on('change', (event) => {
15
- console.debug(`Detected change "${event}", rebuilding "${name}"`);
16
- (async () => {
17
- // Start tracking work.
18
- let rebuilt = false;
19
- try {
20
- await addTask(task, { rerun: true });
21
- rebuilt = true;
22
- }
23
- catch (err) {
24
- console.error(`Error rebuilding "${name}":`, err?.stack || err);
25
- }
26
- const errors = task.getErrors?.();
27
- if (rebuilt && !errors?.length) {
28
- console.debug(`Notifying rebuild: ${name}`);
29
- options?.onSuccess?.();
30
- }
31
- else if (errors) {
32
- console.debug(`${name} ${errors.length} errors`);
33
- }
34
- })().catch(() => {
35
- // no-op
36
- });
37
- });
38
- task.dispose = async () => {
39
- try {
40
- await watcher.close();
41
- }
42
- catch {
43
- // ignore
44
- }
45
- task.onDispose?.();
46
- watched.delete(id);
47
- };
48
- },
49
- };
50
- }
51
- //# sourceMappingURL=startWatcher.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"startWatcher.js","sourceRoot":"","sources":["../../src/utilities/startWatcher.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,UAAU,CAAC;AAIhC,MAAM,UAAU,YAAY,CAAC,OAA6B;IACxD,MAAM,OAAO,GAAG,IAAI,GAAG,EAAU,CAAC;IAElC,OAAO;QACL,KAAK,EAAE,CAAU,IAAmB,EAAE,OAA4D,EAAE,EAAE;YACpG,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;YAC/B,4CAA4C;YAC5C,IAAI,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE;gBAC3B,OAAO;aACR;YAED,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAEhB,OAAO,CAAC,KAAK,CAAC,iCAAiC,IAAI,EAAE,CAAC,CAAC;YAEvD,sGAAsG;YACtG,MAAM,OAAO,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC,KAAa,EAAE,EAAE;gBACjE,OAAO,CAAC,KAAK,CAAC,oBAAoB,KAAK,kBAAkB,IAAI,GAAG,CAAC,CAAC;gBAElE,CAAC,KAAK,IAAI,EAAE;oBACV,uBAAuB;oBACvB,IAAI,OAAO,GAAG,KAAK,CAAC;oBACpB,IAAI;wBACF,MAAM,OAAO,CAAC,IAAI,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;wBACrC,OAAO,GAAG,IAAI,CAAC;qBAChB;oBAAC,OAAO,GAAG,EAAE;wBACZ,OAAO,CAAC,KAAK,CAAC,qBAAqB,IAAI,IAAI,EAAG,GAAa,EAAE,KAAK,IAAI,GAAG,CAAC,CAAC;qBAC5E;oBACD,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,EAAE,EAAE,CAAC;oBAClC,IAAI,OAAO,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE;wBAC9B,OAAO,CAAC,KAAK,CAAC,sBAAsB,IAAI,EAAE,CAAC,CAAC;wBAC5C,OAAO,EAAE,SAAS,EAAE,EAAE,CAAC;qBACxB;yBAAM,IAAI,MAAM,EAAE;wBACjB,OAAO,CAAC,KAAK,CAAC,GAAG,IAAI,IAAI,MAAM,CAAC,MAAM,SAAS,CAAC,CAAC;qBAClD;gBACH,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE;oBACd,QAAQ;gBACV,CAAC,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;YAEH,IAAI,CAAC,OAAO,GAAG,KAAK,IAAI,EAAE;gBACxB,IAAI;oBACF,MAAM,OAAO,CAAC,KAAK,EAAE,CAAC;iBACvB;gBAAC,MAAM;oBACN,SAAS;iBACV;gBAED,IAAI,CAAC,SAAS,EAAE,EAAE,CAAC;gBAEnB,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;YACrB,CAAC,CAAC;QACJ,CAAC;KACF,CAAC;AACJ,CAAC","sourcesContent":["import chokidar from 'chokidar';\nimport type { Task } from '../types/Task.js';\nimport type { ApiServer } from '../types/ApiServer.js';\n\nexport function startWatcher(addTask: ApiServer['addTask']) {\n const watched = new Set<string>();\n\n return {\n watch: <TReturn>(task: Task<TReturn>, options?: { onSuccess?: () => void; onDispose?: () => void }) => {\n const { id, name, dir } = task;\n // Have a single watcher per bundle request.\n if (watched.has(id) || !dir) {\n return;\n }\n\n watched.add(id);\n\n console.debug(`Initializing file watcher for ${name}`);\n\n // TODO: This is a bit of a hack. We should be able to use the watch API, but it doesn't seem to work.\n const watcher = chokidar.watch(dir).on('change', (event: string) => {\n console.debug(`Detected change \"${event}\", rebuilding \"${name}\"`);\n\n (async () => {\n // Start tracking work.\n let rebuilt = false;\n try {\n await addTask(task, { rerun: true });\n rebuilt = true;\n } catch (err) {\n console.error(`Error rebuilding \"${name}\":`, (err as Error)?.stack || err);\n }\n const errors = task.getErrors?.();\n if (rebuilt && !errors?.length) {\n console.debug(`Notifying rebuild: ${name}`);\n options?.onSuccess?.();\n } else if (errors) {\n console.debug(`${name} ${errors.length} errors`);\n }\n })().catch(() => {\n // no-op\n });\n });\n\n task.dispose = async () => {\n try {\n await watcher.close();\n } catch {\n // ignore\n }\n\n task.onDispose?.();\n\n watched.delete(id);\n };\n },\n };\n}\n"]}