@ms-cloudpack/api-server 0.15.0 → 0.17.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.
- package/lib/apis/addPackageOverride.d.ts +7 -7
- package/lib/apis/addPackageOverride.d.ts.map +1 -1
- package/lib/apis/addPackageOverride.js +2 -2
- package/lib/apis/addPackageOverride.js.map +1 -1
- package/lib/apis/ensurePackageBundled.js +7 -2
- package/lib/apis/ensurePackageBundled.js.map +1 -1
- package/lib/apis/index.d.ts +0 -1
- package/lib/apis/index.d.ts.map +1 -1
- package/lib/apis/index.js.map +1 -1
- package/lib/apis/openCodeEditor.d.ts +1 -1
- package/lib/apis/openCodeEditor.d.ts.map +1 -1
- package/lib/apis/openCodeEditor.js.map +1 -1
- package/lib/apis/openFilePath.d.ts +1 -1
- package/lib/apis/openFilePath.d.ts.map +1 -1
- package/lib/apis/openFilePath.js.map +1 -1
- package/lib/apis/reportMetric.d.ts +1 -1
- package/lib/apis/reportMetric.d.ts.map +1 -1
- package/lib/apis/reportMetric.js.map +1 -1
- package/lib/apis/syncDownload.d.ts +1 -1
- package/lib/apis/syncDownload.d.ts.map +1 -1
- package/lib/apis/syncDownload.js +22 -21
- package/lib/apis/syncDownload.js.map +1 -1
- package/lib/apis/syncUpload.d.ts +1 -1
- package/lib/apis/syncUpload.d.ts.map +1 -1
- package/lib/apis/syncUpload.js +40 -38
- package/lib/apis/syncUpload.js.map +1 -1
- package/lib/apis/validatePackageOverride.d.ts +7 -2
- package/lib/apis/validatePackageOverride.d.ts.map +1 -1
- package/lib/apis/validatePackageOverride.js +1 -0
- package/lib/apis/validatePackageOverride.js.map +1 -1
- package/lib/apis.d.ts +1 -1
- package/lib/apis.d.ts.map +1 -1
- package/lib/apis.js +1 -0
- package/lib/apis.js.map +1 -1
- package/lib/common/createPartialApiContext.d.ts +14 -0
- package/lib/common/createPartialApiContext.d.ts.map +1 -0
- package/lib/common/createPartialApiContext.js +101 -0
- package/lib/common/createPartialApiContext.js.map +1 -0
- package/lib/common/createSession.d.ts +13 -0
- package/lib/common/createSession.d.ts.map +1 -0
- package/lib/common/createSession.js +62 -0
- package/lib/common/createSession.js.map +1 -0
- package/lib/data/busSources.d.ts +417 -89
- package/lib/data/busSources.d.ts.map +1 -1
- package/lib/index.d.ts +12 -3
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +4 -2
- package/lib/index.js.map +1 -1
- package/lib/performance/markers.d.ts +0 -4
- package/lib/performance/markers.d.ts.map +1 -1
- package/lib/performance/markers.js +0 -5
- package/lib/performance/markers.js.map +1 -1
- package/lib/trpc/createAppRouter.d.ts +4 -2
- package/lib/trpc/createAppRouter.d.ts.map +1 -1
- package/lib/trpc/createCloudpackServer.d.ts +2 -1
- package/lib/trpc/createCloudpackServer.d.ts.map +1 -1
- package/lib/types/Task.d.ts +2 -2
- package/lib/types/Task.d.ts.map +1 -1
- package/lib/types/Task.js.map +1 -1
- package/lib/types/TaskDescription.d.ts +319 -63
- package/lib/types/TaskDescription.d.ts.map +1 -1
- package/lib/types/TaskEndDescription.d.ts +316 -60
- package/lib/types/TaskEndDescription.d.ts.map +1 -1
- package/lib/types/TaskEndDescription.js +3 -3
- package/lib/types/TaskEndDescription.js.map +1 -1
- package/lib/utilities/addOverride.d.ts +9 -5
- package/lib/utilities/addOverride.d.ts.map +1 -1
- package/lib/utilities/addOverride.js +2 -4
- package/lib/utilities/addOverride.js.map +1 -1
- package/lib/utilities/bundleTask.d.ts +2 -0
- package/lib/utilities/bundleTask.d.ts.map +1 -1
- package/lib/utilities/bundleTask.js +4 -4
- package/lib/utilities/bundleTask.js.map +1 -1
- package/lib/utilities/calculateHashOfInlinedDependencies.d.ts +9 -0
- package/lib/utilities/calculateHashOfInlinedDependencies.d.ts.map +1 -0
- package/lib/utilities/calculateHashOfInlinedDependencies.js +18 -0
- package/lib/utilities/calculateHashOfInlinedDependencies.js.map +1 -0
- package/lib/utilities/createBundleRequestForPackage.d.ts +2 -1
- package/lib/utilities/createBundleRequestForPackage.d.ts.map +1 -1
- package/lib/utilities/createBundleRequestForPackage.js +3 -2
- package/lib/utilities/createBundleRequestForPackage.js.map +1 -1
- package/lib/utilities/createBundleTask.d.ts +7 -1
- package/lib/utilities/createBundleTask.d.ts.map +1 -1
- package/lib/utilities/createBundleTask.js +3 -2
- package/lib/utilities/createBundleTask.js.map +1 -1
- package/lib/utilities/getBundleDetails.d.ts +2 -0
- package/lib/utilities/getBundleDetails.d.ts.map +1 -1
- package/lib/utilities/getBundleDetails.js +3 -7
- package/lib/utilities/getBundleDetails.js.map +1 -1
- package/lib/utilities/getPackageHashEntries.d.ts +69 -0
- package/lib/utilities/getPackageHashEntries.d.ts.map +1 -0
- package/lib/utilities/getPackageHashEntries.js +29 -0
- package/lib/utilities/getPackageHashEntries.js.map +1 -0
- package/lib/utilities/getPackagePath.d.ts +16 -0
- package/lib/utilities/getPackagePath.d.ts.map +1 -0
- package/lib/utilities/getPackagePath.js +19 -0
- package/lib/utilities/getPackagePath.js.map +1 -0
- package/lib/utilities/getPackagesToSync.js +1 -1
- package/lib/utilities/getPackagesToSync.js.map +1 -1
- package/lib/utilities/getRemoteCachePromiseResultCounts.d.ts +3 -0
- package/lib/utilities/getRemoteCachePromiseResultCounts.d.ts.map +1 -0
- package/lib/utilities/getRemoteCachePromiseResultCounts.js +21 -0
- package/lib/utilities/getRemoteCachePromiseResultCounts.js.map +1 -0
- package/lib/utilities/getSourceHash.d.ts +9 -0
- package/lib/utilities/getSourceHash.d.ts.map +1 -0
- package/lib/utilities/getSourceHash.js +21 -0
- package/lib/utilities/getSourceHash.js.map +1 -0
- package/lib/utilities/hashPackage.d.ts +6 -4
- package/lib/utilities/hashPackage.d.ts.map +1 -1
- package/lib/utilities/hashPackage.js +21 -15
- package/lib/utilities/hashPackage.js.map +1 -1
- package/lib/utilities/parseRequestUrl.d.ts +23 -0
- package/lib/utilities/parseRequestUrl.d.ts.map +1 -0
- package/lib/utilities/parseRequestUrl.js +48 -0
- package/lib/utilities/parseRequestUrl.js.map +1 -0
- package/lib/utilities/resolveDependenciesTask.d.ts +16 -0
- package/lib/utilities/resolveDependenciesTask.d.ts.map +1 -0
- package/lib/utilities/resolveDependenciesTask.js +65 -0
- package/lib/utilities/resolveDependenciesTask.js.map +1 -0
- package/lib/utilities/validateOverride.d.ts +9 -5
- package/lib/utilities/validateOverride.d.ts.map +1 -1
- package/lib/utilities/validateOverride.js +2 -4
- package/lib/utilities/validateOverride.js.map +1 -1
- package/package.json +9 -8
- package/lib/types/TaskError.d.ts +0 -25
- package/lib/types/TaskError.d.ts.map +0 -1
- package/lib/types/TaskError.js +0 -10
- package/lib/types/TaskError.js.map +0 -1
- package/lib/utilities/parseRequestInfo.d.ts +0 -7
- package/lib/utilities/parseRequestInfo.d.ts.map +0 -1
- package/lib/utilities/parseRequestInfo.js +0 -14
- package/lib/utilities/parseRequestInfo.js.map +0 -1
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Parse a request for a package file from the bundle server, such as
|
|
3
|
+
* `http://bundleServerDomain/@scope/package@version/v3.2/bundled/path/to/file.js`.
|
|
4
|
+
*
|
|
5
|
+
* Segments:
|
|
6
|
+
* - Package name (and optionally `@version`)
|
|
7
|
+
* - Optional refresh version `v#.#`
|
|
8
|
+
* - Optional type `bundled` or `unbundled` (defaults to unbundled)
|
|
9
|
+
* - Optional file path with leading slash (empty if no path)
|
|
10
|
+
*
|
|
11
|
+
* @returns Info about the requested package/file.
|
|
12
|
+
*/
|
|
13
|
+
export function parseRequestUrl(requestUrl) {
|
|
14
|
+
let packageName = '';
|
|
15
|
+
let version = '';
|
|
16
|
+
let bundled = false;
|
|
17
|
+
let filePath = '';
|
|
18
|
+
// get the path segments and remove leading and trailing slashes
|
|
19
|
+
const segments = new URL(requestUrl).pathname.split('/');
|
|
20
|
+
segments.shift(); // URL's pathname always starts with a slash
|
|
21
|
+
if (segments[segments.length - 1] === '')
|
|
22
|
+
segments.pop();
|
|
23
|
+
if (segments.length) {
|
|
24
|
+
// if the first segment starts with an `@`, it's a scope
|
|
25
|
+
const scope = segments[0].match(/^@[\w.-]+$/) ? segments.shift() + '/' : '';
|
|
26
|
+
// the next segment is the package name, optionally followed by `@version`
|
|
27
|
+
// (the regex uses named capture groups)
|
|
28
|
+
const packageMatch = segments.shift()?.match(/^(?<unscopedName>[\w.-]+)(@(?<version>[\w.-]+))?$/);
|
|
29
|
+
if (packageMatch?.groups) {
|
|
30
|
+
packageName = scope + packageMatch.groups.unscopedName;
|
|
31
|
+
version = packageMatch.groups.version || '';
|
|
32
|
+
// remove the optional refresh version segment, e.g. v3.2
|
|
33
|
+
if (/^v[\d.]+$/.test(segments[0] || '')) {
|
|
34
|
+
segments.shift();
|
|
35
|
+
}
|
|
36
|
+
// optional bundled/unbundled segment
|
|
37
|
+
if (segments[0] === 'bundled' || segments[0] === 'unbundled') {
|
|
38
|
+
bundled = segments.shift() === 'bundled';
|
|
39
|
+
}
|
|
40
|
+
// the rest is the file path
|
|
41
|
+
if (segments.length) {
|
|
42
|
+
filePath = '/' + segments.join('/');
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
return { packageName, version, bundled, filePath };
|
|
47
|
+
}
|
|
48
|
+
//# sourceMappingURL=parseRequestUrl.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parseRequestUrl.js","sourceRoot":"","sources":["../../src/utilities/parseRequestUrl.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,eAAe,CAAC,UAAkB;IAUhD,IAAI,WAAW,GAAG,EAAE,CAAC;IACrB,IAAI,OAAO,GAAG,EAAE,CAAC;IACjB,IAAI,OAAO,GAAG,KAAK,CAAC;IACpB,IAAI,QAAQ,GAAG,EAAE,CAAC;IAElB,gEAAgE;IAChE,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,UAAU,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACzD,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC,4CAA4C;IAC9D,IAAI,QAAQ,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,EAAE;QAAE,QAAQ,CAAC,GAAG,EAAE,CAAC;IAEzD,IAAI,QAAQ,CAAC,MAAM,EAAE;QACnB,wDAAwD;QACxD,MAAM,KAAK,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,EAAE,GAAG,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;QAC5E,0EAA0E;QAC1E,wCAAwC;QACxC,MAAM,YAAY,GAAG,QAAQ,CAAC,KAAK,EAAE,EAAE,KAAK,CAAC,mDAAmD,CAAC,CAAC;QAElG,IAAI,YAAY,EAAE,MAAM,EAAE;YACxB,WAAW,GAAG,KAAK,GAAG,YAAY,CAAC,MAAM,CAAC,YAAY,CAAC;YACvD,OAAO,GAAG,YAAY,CAAC,MAAM,CAAC,OAAO,IAAI,EAAE,CAAC;YAE5C,yDAAyD;YACzD,IAAI,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE;gBACvC,QAAQ,CAAC,KAAK,EAAE,CAAC;aAClB;YAED,qCAAqC;YACrC,IAAI,QAAQ,CAAC,CAAC,CAAC,KAAK,SAAS,IAAI,QAAQ,CAAC,CAAC,CAAC,KAAK,WAAW,EAAE;gBAC5D,OAAO,GAAG,QAAQ,CAAC,KAAK,EAAE,KAAK,SAAS,CAAC;aAC1C;YAED,4BAA4B;YAC5B,IAAI,QAAQ,CAAC,MAAM,EAAE;gBACnB,QAAQ,GAAG,GAAG,GAAG,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;aACrC;SACF;KACF;IAED,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC;AACrD,CAAC","sourcesContent":["/**\n * Parse a request for a package file from the bundle server, such as\n * `http://bundleServerDomain/@scope/package@version/v3.2/bundled/path/to/file.js`.\n *\n * Segments:\n * - Package name (and optionally `@version`)\n * - Optional refresh version `v#.#`\n * - Optional type `bundled` or `unbundled` (defaults to unbundled)\n * - Optional file path with leading slash (empty if no path)\n *\n * @returns Info about the requested package/file.\n */\nexport function parseRequestUrl(requestUrl: string): {\n /** Package name */\n packageName: string;\n /** Optional package version (default: empty string) */\n version: string;\n /** Whether the bundled version is requested (default: false) */\n bundled: boolean;\n /** Optional file path (default: empty string) */\n filePath: string;\n} {\n let packageName = '';\n let version = '';\n let bundled = false;\n let filePath = '';\n\n // get the path segments and remove leading and trailing slashes\n const segments = new URL(requestUrl).pathname.split('/');\n segments.shift(); // URL's pathname always starts with a slash\n if (segments[segments.length - 1] === '') segments.pop();\n\n if (segments.length) {\n // if the first segment starts with an `@`, it's a scope\n const scope = segments[0].match(/^@[\\w.-]+$/) ? segments.shift() + '/' : '';\n // the next segment is the package name, optionally followed by `@version`\n // (the regex uses named capture groups)\n const packageMatch = segments.shift()?.match(/^(?<unscopedName>[\\w.-]+)(@(?<version>[\\w.-]+))?$/);\n\n if (packageMatch?.groups) {\n packageName = scope + packageMatch.groups.unscopedName;\n version = packageMatch.groups.version || '';\n\n // remove the optional refresh version segment, e.g. v3.2\n if (/^v[\\d.]+$/.test(segments[0] || '')) {\n segments.shift();\n }\n\n // optional bundled/unbundled segment\n if (segments[0] === 'bundled' || segments[0] === 'unbundled') {\n bundled = segments.shift() === 'bundled';\n }\n\n // the rest is the file path\n if (segments.length) {\n filePath = '/' + segments.join('/');\n }\n }\n }\n\n return { packageName, version, bundled, filePath };\n}\n"]}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type { PackageDefinitionsCache } from '@ms-cloudpack/bundler-types';
|
|
2
|
+
import type { LinkedPath, ResolveMap } from '@ms-cloudpack/package-utilities';
|
|
3
|
+
import { type TaskReporter } from '@ms-cloudpack/task-reporter';
|
|
4
|
+
/**
|
|
5
|
+
* Resolves the locations of dependencies and returns the resolve map, logging results
|
|
6
|
+
* to the task reporter.
|
|
7
|
+
*/
|
|
8
|
+
export declare function resolveDependenciesTask(options: {
|
|
9
|
+
appPath: string;
|
|
10
|
+
additionalPaths?: string[];
|
|
11
|
+
linkedPaths?: LinkedPath[];
|
|
12
|
+
}, context: {
|
|
13
|
+
reporter: TaskReporter;
|
|
14
|
+
packages: PackageDefinitionsCache;
|
|
15
|
+
}): Promise<ResolveMap>;
|
|
16
|
+
//# sourceMappingURL=resolveDependenciesTask.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resolveDependenciesTask.d.ts","sourceRoot":"","sources":["../../src/utilities/resolveDependenciesTask.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,6BAA6B,CAAC;AAC3E,OAAO,KAAK,EAAE,UAAU,EAAE,UAAU,EAAmB,MAAM,iCAAiC,CAAC;AAE/F,OAAO,EAAoC,KAAK,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAElG;;;GAGG;AACH,wBAAsB,uBAAuB,CAC3C,OAAO,EAAE;IACP,OAAO,EAAE,MAAM,CAAC;IAChB,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAC3B,WAAW,CAAC,EAAE,UAAU,EAAE,CAAC;CAC5B,EACD,OAAO,EAAE;IAAE,QAAQ,EAAE,YAAY,CAAC;IAAC,QAAQ,EAAE,uBAAuB,CAAA;CAAE,uBAsCvE"}
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
import { createResolveMap } from '@ms-cloudpack/package-utilities';
|
|
2
|
+
import { bold, bulletedList, cyan, yellow } from '@ms-cloudpack/task-reporter';
|
|
3
|
+
/**
|
|
4
|
+
* Resolves the locations of dependencies and returns the resolve map, logging results
|
|
5
|
+
* to the task reporter.
|
|
6
|
+
*/
|
|
7
|
+
export async function resolveDependenciesTask(options, context) {
|
|
8
|
+
const { appPath, additionalPaths, linkedPaths } = options;
|
|
9
|
+
const { reporter, packages } = context;
|
|
10
|
+
let resolveMap;
|
|
11
|
+
// Grab the installed dependency locations.
|
|
12
|
+
await reporter.runTask('Resolving dependencies', async () => {
|
|
13
|
+
resolveMap = await createResolveMap({
|
|
14
|
+
appPath,
|
|
15
|
+
additionalPaths,
|
|
16
|
+
linkedPaths,
|
|
17
|
+
}, {
|
|
18
|
+
packages,
|
|
19
|
+
});
|
|
20
|
+
const { allPackages, duplicatedPackages } = getPackagesFromResolveMap(resolveMap);
|
|
21
|
+
const message = `Found ${cyan(allPackages.size)} total packages, ${duplicatedPackages.size ? `${yellow(duplicatedPackages.size)} with multiple versions.` : `no duplicates.`}`;
|
|
22
|
+
const extended = bulletedList(Array.from(duplicatedPackages.entries()).map(([name, versions]) => `${bold(name)}: ${Array.from(versions).join(', ')}`));
|
|
23
|
+
return {
|
|
24
|
+
message,
|
|
25
|
+
extended,
|
|
26
|
+
forceShow: true,
|
|
27
|
+
};
|
|
28
|
+
});
|
|
29
|
+
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion -- will be defined after the task runs
|
|
30
|
+
return resolveMap;
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Given a resolveMap, returns a map of all packages and a map of packages with multiple versions.
|
|
34
|
+
* This is used to log the results of the resolve task.
|
|
35
|
+
*/
|
|
36
|
+
function getPackagesFromResolveMap(resolveMap) {
|
|
37
|
+
const allPackages = new Map();
|
|
38
|
+
const duplicatedPackages = new Map();
|
|
39
|
+
function addEntry(entry) {
|
|
40
|
+
if (allPackages.has(entry.name)) {
|
|
41
|
+
if (!duplicatedPackages.has(entry.name)) {
|
|
42
|
+
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
|
|
43
|
+
duplicatedPackages.set(entry.name, new Set([allPackages.get(entry.name).version]));
|
|
44
|
+
}
|
|
45
|
+
const dupeSet = duplicatedPackages.get(entry.name);
|
|
46
|
+
dupeSet?.add(entry.version);
|
|
47
|
+
}
|
|
48
|
+
else {
|
|
49
|
+
allPackages.set(entry.name, entry);
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
for (const currentEntry of Object.values(resolveMap)) {
|
|
53
|
+
addEntry(currentEntry);
|
|
54
|
+
if (currentEntry.scopedVersions) {
|
|
55
|
+
for (const scopedEntry of Object.values(currentEntry.scopedVersions)) {
|
|
56
|
+
addEntry(scopedEntry);
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
return {
|
|
61
|
+
allPackages,
|
|
62
|
+
duplicatedPackages,
|
|
63
|
+
};
|
|
64
|
+
}
|
|
65
|
+
//# sourceMappingURL=resolveDependenciesTask.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resolveDependenciesTask.js","sourceRoot":"","sources":["../../src/utilities/resolveDependenciesTask.ts"],"names":[],"mappings":"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","sourcesContent":["import type { PackageDefinitionsCache } from '@ms-cloudpack/bundler-types';\nimport type { LinkedPath, ResolveMap, ResolveMapEntry } from '@ms-cloudpack/package-utilities';\nimport { createResolveMap } from '@ms-cloudpack/package-utilities';\nimport { bold, bulletedList, cyan, yellow, type TaskReporter } from '@ms-cloudpack/task-reporter';\n\n/**\n * Resolves the locations of dependencies and returns the resolve map, logging results\n * to the task reporter.\n */\nexport async function resolveDependenciesTask(\n options: {\n appPath: string;\n additionalPaths?: string[];\n linkedPaths?: LinkedPath[];\n },\n context: { reporter: TaskReporter; packages: PackageDefinitionsCache },\n) {\n const { appPath, additionalPaths, linkedPaths } = options;\n const { reporter, packages } = context;\n let resolveMap: ResolveMap | undefined;\n\n // Grab the installed dependency locations.\n await reporter.runTask('Resolving dependencies', async () => {\n resolveMap = await createResolveMap(\n {\n appPath,\n additionalPaths,\n linkedPaths,\n },\n {\n packages,\n },\n );\n\n const { allPackages, duplicatedPackages } = getPackagesFromResolveMap(resolveMap);\n const message = `Found ${cyan(allPackages.size)} total packages, ${\n duplicatedPackages.size ? `${yellow(duplicatedPackages.size)} with multiple versions.` : `no duplicates.`\n }`;\n const extended = bulletedList(\n Array.from(duplicatedPackages.entries()).map(\n ([name, versions]) => `${bold(name)}: ${Array.from(versions).join(', ')}`,\n ),\n );\n\n return {\n message,\n extended,\n forceShow: true,\n };\n });\n\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion -- will be defined after the task runs\n return resolveMap!;\n}\n\n/**\n * Given a resolveMap, returns a map of all packages and a map of packages with multiple versions.\n * This is used to log the results of the resolve task.\n */\nfunction getPackagesFromResolveMap(resolveMap: ResolveMap) {\n const allPackages = new Map<string, ResolveMapEntry>();\n const duplicatedPackages = new Map<string, Set<string>>();\n\n function addEntry(entry: ResolveMapEntry) {\n if (allPackages.has(entry.name)) {\n if (!duplicatedPackages.has(entry.name)) {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n duplicatedPackages.set(entry.name, new Set([allPackages.get(entry.name)!.version]));\n }\n const dupeSet = duplicatedPackages.get(entry.name);\n\n dupeSet?.add(entry.version);\n } else {\n allPackages.set(entry.name, entry);\n }\n }\n\n for (const currentEntry of Object.values(resolveMap)) {\n addEntry(currentEntry);\n\n if (currentEntry.scopedVersions) {\n for (const scopedEntry of Object.values(currentEntry.scopedVersions)) {\n addEntry(scopedEntry);\n }\n }\n }\n\n return {\n allPackages,\n duplicatedPackages,\n };\n}\n"]}
|
|
@@ -1,11 +1,15 @@
|
|
|
1
1
|
import type { Context } from '../types/Context.js';
|
|
2
|
+
export interface ValidateOverrideOptions {
|
|
3
|
+
/** The package name the override applies to. */
|
|
4
|
+
packageName: string;
|
|
5
|
+
/** The import path overridden for the package. */
|
|
6
|
+
importPath: string;
|
|
7
|
+
/** URL that issued the import. */
|
|
8
|
+
issuerUrl?: string;
|
|
9
|
+
}
|
|
2
10
|
/**
|
|
3
11
|
* Given a package name, import path, and optional issuerUrl, returns a boolean indicating if the given
|
|
4
12
|
* override is valid.
|
|
5
13
|
*/
|
|
6
|
-
export declare function validateOverride(options:
|
|
7
|
-
packageName: string;
|
|
8
|
-
importPath: string;
|
|
9
|
-
issuerUrl?: string;
|
|
10
|
-
}, context: Pick<Context, 'session' | 'packages'>): Promise<boolean>;
|
|
14
|
+
export declare function validateOverride(options: ValidateOverrideOptions, context: Pick<Context, 'session' | 'packages'>): Promise<boolean>;
|
|
11
15
|
//# sourceMappingURL=validateOverride.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validateOverride.d.ts","sourceRoot":"","sources":["../../src/utilities/validateOverride.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"validateOverride.d.ts","sourceRoot":"","sources":["../../src/utilities/validateOverride.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAEnD,MAAM,WAAW,uBAAuB;IACtC,gDAAgD;IAChD,WAAW,EAAE,MAAM,CAAC;IAEpB,kDAAkD;IAClD,UAAU,EAAE,MAAM,CAAC;IAEnB,kCAAkC;IAClC,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;GAGG;AACH,wBAAsB,gBAAgB,CACpC,OAAO,EAAE,uBAAuB,EAChC,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,SAAS,GAAG,UAAU,CAAC,oBA8B/C"}
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import { findResolveMapEntry, findFileInPackage } from '@ms-cloudpack/package-utilities';
|
|
2
|
-
import {
|
|
3
|
-
import { parseRequestInfo } from './parseRequestInfo.js';
|
|
2
|
+
import { parseRequestUrl } from './parseRequestUrl.js';
|
|
4
3
|
/**
|
|
5
4
|
* Given a package name, import path, and optional issuerUrl, returns a boolean indicating if the given
|
|
6
5
|
* override is valid.
|
|
@@ -10,8 +9,7 @@ export async function validateOverride(options, context) {
|
|
|
10
9
|
const { session } = context;
|
|
11
10
|
let definition = undefined;
|
|
12
11
|
if (issuerUrl) {
|
|
13
|
-
const
|
|
14
|
-
const { packageName: name, version } = parseRequestInfo(requestPath);
|
|
12
|
+
const { packageName: name, version } = parseRequestUrl(issuerUrl);
|
|
15
13
|
definition = { name, version };
|
|
16
14
|
}
|
|
17
15
|
const entry = findResolveMapEntry({
|
|
@@ -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,
|
|
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,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAevD;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,OAAgC,EAChC,OAA8C;IAE9C,MAAM,EAAE,WAAW,EAAE,UAAU,EAAE,SAAS,EAAE,GAAG,OAAO,CAAC;IACvD,MAAM,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC;IAC5B,IAAI,UAAU,GAA4B,SAAS,CAAC;IAEpD,IAAI,SAAS,EAAE;QACb,MAAM,EAAE,WAAW,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,eAAe,CAAC,SAAS,CAAC,CAAC;QAClE,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,CAAC,KAAK,EAAE;QACV,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,OAAO,CAAC,CAAC,QAAQ,CAAC;AACpB,CAAC","sourcesContent":["import { findResolveMapEntry, findFileInPackage } from '@ms-cloudpack/package-utilities';\nimport { parseRequestUrl } from './parseRequestUrl.js';\nimport type { PackageJson } from '@ms-cloudpack/bundler-types';\nimport type { Context } from '../types/Context.js';\n\nexport interface ValidateOverrideOptions {\n /** The package name the override applies to. */\n packageName: string;\n\n /** The import path overridden for the package. */\n importPath: string;\n\n /** URL that issued the import. */\n issuerUrl?: string;\n}\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: ValidateOverrideOptions,\n context: Pick<Context, 'session' | 'packages'>,\n) {\n const { packageName, importPath, issuerUrl } = options;\n const { session } = context;\n let definition: PackageJson | undefined = undefined;\n\n if (issuerUrl) {\n const { packageName: name, version } = parseRequestUrl(issuerUrl);\n definition = { name, version };\n }\n\n const entry = findResolveMapEntry({\n packageName,\n resolveMap: session.resolveMap,\n definition,\n });\n\n if (!entry) {\n return false;\n }\n\n const { filePath } = await findFileInPackage(\n {\n packagePath: entry.path,\n filePath: importPath,\n },\n context,\n );\n\n return !!filePath;\n}\n"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ms-cloudpack/api-server",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.17.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",
|
|
@@ -16,8 +16,8 @@
|
|
|
16
16
|
"import": "./lib/client.js"
|
|
17
17
|
},
|
|
18
18
|
"./apis": {
|
|
19
|
-
"types": "./lib/apis
|
|
20
|
-
"import": "./lib/apis
|
|
19
|
+
"types": "./lib/apis.d.ts",
|
|
20
|
+
"import": "./lib/apis.js"
|
|
21
21
|
}
|
|
22
22
|
},
|
|
23
23
|
"dependencies": {
|
|
@@ -25,18 +25,18 @@
|
|
|
25
25
|
"@lage-run/scheduler": "^1.0.0",
|
|
26
26
|
"@lage-run/target-graph": "^0.8.6",
|
|
27
27
|
"@lage-run/hasher": "^1.0.0",
|
|
28
|
-
"@ms-cloudpack/bundler": "^0.14.
|
|
29
|
-
"@ms-cloudpack/bundler-types": "^0.18.
|
|
30
|
-
"@ms-cloudpack/config": "^0.12.
|
|
28
|
+
"@ms-cloudpack/bundler": "^0.14.12",
|
|
29
|
+
"@ms-cloudpack/bundler-types": "^0.18.1",
|
|
30
|
+
"@ms-cloudpack/config": "^0.12.2",
|
|
31
31
|
"@ms-cloudpack/create-express-app": "^1.3.9",
|
|
32
32
|
"@ms-cloudpack/data-bus": "^0.4.0",
|
|
33
33
|
"@ms-cloudpack/file-watcher": "^0.1.0",
|
|
34
34
|
"@ms-cloudpack/json-utilities": "^0.0.7",
|
|
35
|
-
"@ms-cloudpack/package-utilities": "^5.1.
|
|
35
|
+
"@ms-cloudpack/package-utilities": "^5.1.4",
|
|
36
36
|
"@ms-cloudpack/path-string-parsing": "^1.0.3",
|
|
37
37
|
"@ms-cloudpack/path-utilities": "^2.3.2",
|
|
38
38
|
"@ms-cloudpack/task-reporter": "^0.7.2",
|
|
39
|
-
"@ms-cloudpack/telemetry": "^0.3.
|
|
39
|
+
"@ms-cloudpack/telemetry": "^0.3.8",
|
|
40
40
|
"@ms-cloudpack/remote-cache": "^0.1.6",
|
|
41
41
|
"@trpc/client": "^10.21.1",
|
|
42
42
|
"@trpc/server": "^10.21.1",
|
|
@@ -51,6 +51,7 @@
|
|
|
51
51
|
"p-queue": "^7.3.0",
|
|
52
52
|
"object-hash": "^3.0.0",
|
|
53
53
|
"semver": "^7.3.7",
|
|
54
|
+
"uuid": "^9.0.0",
|
|
54
55
|
"ws": "^8.9.0",
|
|
55
56
|
"zod": "^3.21.4"
|
|
56
57
|
},
|
package/lib/types/TaskError.d.ts
DELETED
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
import z from 'zod';
|
|
2
|
-
export declare const ZodTaskError: z.ZodObject<{
|
|
3
|
-
message: z.ZodString;
|
|
4
|
-
pluginName: z.ZodString;
|
|
5
|
-
stack: z.ZodString;
|
|
6
|
-
fileLocation: z.ZodString;
|
|
7
|
-
lineNumber: z.ZodNumber;
|
|
8
|
-
columnNumber: z.ZodNumber;
|
|
9
|
-
}, "strip", z.ZodTypeAny, {
|
|
10
|
-
message: string;
|
|
11
|
-
pluginName: string;
|
|
12
|
-
stack: string;
|
|
13
|
-
fileLocation: string;
|
|
14
|
-
lineNumber: number;
|
|
15
|
-
columnNumber: number;
|
|
16
|
-
}, {
|
|
17
|
-
message: string;
|
|
18
|
-
pluginName: string;
|
|
19
|
-
stack: string;
|
|
20
|
-
fileLocation: string;
|
|
21
|
-
lineNumber: number;
|
|
22
|
-
columnNumber: number;
|
|
23
|
-
}>;
|
|
24
|
-
export type TaskError = z.infer<typeof ZodTaskError>;
|
|
25
|
-
//# sourceMappingURL=TaskError.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"TaskError.d.ts","sourceRoot":"","sources":["../../src/types/TaskError.ts"],"names":[],"mappings":"AAAA,OAAO,CAAC,MAAM,KAAK,CAAC;AAEpB,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;EAOvB,CAAC;AAEH,MAAM,MAAM,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,YAAY,CAAC,CAAC"}
|
package/lib/types/TaskError.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"TaskError.js","sourceRoot":"","sources":["../../src/types/TaskError.ts"],"names":[],"mappings":"AAAA,OAAO,CAAC,MAAM,KAAK,CAAC;AAEpB,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,CAAC,MAAM,CAAC;IACnC,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;IACnB,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE;IACtB,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;IACjB,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE;IACxB,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE;IACtB,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE;CACzB,CAAC,CAAC","sourcesContent":["import z from 'zod';\n\nexport const ZodTaskError = z.object({\n message: z.string(),\n pluginName: z.string(),\n stack: z.string(),\n fileLocation: z.string(),\n lineNumber: z.number(),\n columnNumber: z.number(),\n});\n\nexport type TaskError = z.infer<typeof ZodTaskError>;\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"parseRequestInfo.d.ts","sourceRoot":"","sources":["../../src/utilities/parseRequestInfo.ts"],"names":[],"mappings":"AAAA,wBAAgB,gBAAgB,CAAC,WAAW,EAAE,MAAM;;;;;EAiBnD"}
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
export function parseRequestInfo(requestPath) {
|
|
2
|
-
const matches = requestPath.match(/[/]?(@[-_a-z-A-Z0-9.]+\/[-_a-z-A-Z0-9.]+|[a-zA-Z-0-9.]+)(@([-_a-zA-Z-0-9.]+))?(\/v([0-9.]+))?(\/(bundled|unbundled))?(\/[-_/a-zA-Z0-9.+]+)?/) || [];
|
|
3
|
-
const packageName = matches[1] || '';
|
|
4
|
-
const version = matches[3] || '';
|
|
5
|
-
const bundled = (matches.length > 8 && matches[7]) === 'bundled';
|
|
6
|
-
const filePath = (matches.length > 8 && matches[8]) || '';
|
|
7
|
-
return {
|
|
8
|
-
packageName,
|
|
9
|
-
version,
|
|
10
|
-
bundled,
|
|
11
|
-
filePath,
|
|
12
|
-
};
|
|
13
|
-
}
|
|
14
|
-
//# sourceMappingURL=parseRequestInfo.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"parseRequestInfo.js","sourceRoot":"","sources":["../../src/utilities/parseRequestInfo.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,gBAAgB,CAAC,WAAmB;IAClD,MAAM,OAAO,GACX,WAAW,CAAC,KAAK,CACf,6IAA6I,CAC9I,IAAI,EAAE,CAAC;IAEV,MAAM,WAAW,GAAG,OAAO,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IACrC,MAAM,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IACjC,MAAM,OAAO,GAAG,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,SAAS,CAAC;IACjE,MAAM,QAAQ,GAAG,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IAE1D,OAAO;QACL,WAAW;QACX,OAAO;QACP,OAAO;QACP,QAAQ;KACT,CAAC;AACJ,CAAC","sourcesContent":["export function parseRequestInfo(requestPath: string) {\n const matches =\n requestPath.match(\n /[/]?(@[-_a-z-A-Z0-9.]+\\/[-_a-z-A-Z0-9.]+|[a-zA-Z-0-9.]+)(@([-_a-zA-Z-0-9.]+))?(\\/v([0-9.]+))?(\\/(bundled|unbundled))?(\\/[-_/a-zA-Z0-9.+]+)?/,\n ) || [];\n\n const packageName = matches[1] || '';\n const version = matches[3] || '';\n const bundled = (matches.length > 8 && matches[7]) === 'bundled';\n const filePath = (matches.length > 8 && matches[8]) || '';\n\n return {\n packageName,\n version,\n bundled,\n filePath,\n };\n}\n"]}
|