@ms-cloudpack/api-server 0.63.11 → 0.64.1
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 +1 -1
- package/lib/apis/addPackageOverride.js +7 -7
- package/lib/apis/addPackageOverride.js.map +1 -1
- package/lib/apis/ensurePackageBundled.js.map +1 -1
- package/lib/apis/getData.d.ts +9 -17
- package/lib/apis/getData.d.ts.map +1 -1
- package/lib/apis/getData.js +5 -5
- package/lib/apis/getData.js.map +1 -1
- package/lib/apis/getLinkConfig.d.ts +2 -4
- package/lib/apis/getLinkConfig.d.ts.map +1 -1
- package/lib/apis/getLinkConfig.js +4 -3
- package/lib/apis/getLinkConfig.js.map +1 -1
- package/lib/apis/getSessionId.d.ts +2 -6
- package/lib/apis/getSessionId.d.ts.map +1 -1
- package/lib/apis/getSessionId.js +3 -4
- package/lib/apis/getSessionId.js.map +1 -1
- package/lib/apis/linkPath.d.ts +3 -8
- package/lib/apis/linkPath.js +3 -3
- package/lib/apis/linkPath.js.map +1 -1
- package/lib/apis/notifyLinkChange.d.ts +3 -16
- package/lib/apis/notifyLinkChange.d.ts.map +1 -1
- package/lib/apis/notifyLinkChange.js +5 -4
- package/lib/apis/notifyLinkChange.js.map +1 -1
- package/lib/apis/onDataChanged.d.ts +5 -18
- package/lib/apis/onDataChanged.d.ts.map +1 -1
- package/lib/apis/onDataChanged.js +4 -10
- package/lib/apis/onDataChanged.js.map +1 -1
- package/lib/apis/openCodeEditor.d.ts +10 -26
- package/lib/apis/openCodeEditor.d.ts.map +1 -1
- package/lib/apis/openCodeEditor.js +11 -7
- package/lib/apis/openCodeEditor.js.map +1 -1
- package/lib/apis/openConfigEditor.d.ts +4 -1
- package/lib/apis/openConfigEditor.d.ts.map +1 -1
- package/lib/apis/openConfigEditor.js +6 -2
- package/lib/apis/openConfigEditor.js.map +1 -1
- package/lib/apis/openFilePath.d.ts +10 -17
- package/lib/apis/openFilePath.d.ts.map +1 -1
- package/lib/apis/openFilePath.js +9 -5
- package/lib/apis/openFilePath.js.map +1 -1
- package/lib/apis/publishData.d.ts +7 -17
- package/lib/apis/publishData.d.ts.map +1 -1
- package/lib/apis/publishData.js +5 -4
- package/lib/apis/publishData.js.map +1 -1
- package/lib/apis/reportSpan.d.ts +6 -24
- package/lib/apis/reportSpan.d.ts.map +1 -1
- package/lib/apis/reportSpan.js +6 -5
- package/lib/apis/reportSpan.js.map +1 -1
- package/lib/apis/restartAllTasks.d.ts +1 -1
- package/lib/apis/restartAllTasks.d.ts.map +1 -1
- package/lib/apis/restartAllTasks.js +14 -7
- package/lib/apis/restartAllTasks.js.map +1 -1
- package/lib/apis/restartTask.d.ts +4 -18
- package/lib/apis/restartTask.d.ts.map +1 -1
- package/lib/apis/restartTask.js +6 -5
- package/lib/apis/restartTask.js.map +1 -1
- package/lib/apis/unlinkPath.d.ts +3 -8
- package/lib/apis/unlinkPath.js +3 -3
- package/lib/apis/unlinkPath.js.map +1 -1
- package/lib/apis/validatePackageOverride.d.ts +1 -1
- package/lib/apis/validatePackageOverride.js +5 -8
- package/lib/apis/validatePackageOverride.js.map +1 -1
- package/lib/common/createApiContext.d.ts.map +1 -1
- package/lib/common/createApiContext.js +4 -1
- package/lib/common/createApiContext.js.map +1 -1
- package/lib/common/createMockContext.d.ts +16 -9
- package/lib/common/createMockContext.d.ts.map +1 -1
- package/lib/common/createMockContext.js +21 -16
- package/lib/common/createMockContext.js.map +1 -1
- package/lib/common/createMockSession.d.ts +1 -1
- package/lib/common/createMockSession.d.ts.map +1 -1
- package/lib/common/createMockSession.js.map +1 -1
- package/lib/common/createSession.d.ts +5 -1
- package/lib/common/createSession.d.ts.map +1 -1
- package/lib/common/createSession.js +1 -1
- package/lib/common/createSession.js.map +1 -1
- package/lib/common/prepareOutputPath.js +1 -1
- package/lib/common/prepareOutputPath.js.map +1 -1
- package/lib/data/busSources.d.ts +12 -240
- package/lib/data/busSources.d.ts.map +1 -1
- package/lib/data/busSources.js +4 -4
- package/lib/data/busSources.js.map +1 -1
- package/lib/index.browser.d.ts +2 -2
- package/lib/index.browser.d.ts.map +1 -1
- package/lib/index.browser.js.map +1 -1
- package/lib/index.d.ts +0 -2
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js.map +1 -1
- package/lib/trpc/common.d.ts +41 -2
- package/lib/trpc/common.d.ts.map +1 -1
- package/lib/trpc/common.js +44 -3
- package/lib/trpc/common.js.map +1 -1
- package/lib/types/GetLinkConfigOutput.d.ts +5 -0
- package/lib/types/GetLinkConfigOutput.d.ts.map +1 -0
- package/lib/types/GetLinkConfigOutput.js +18 -0
- package/lib/types/GetLinkConfigOutput.js.map +1 -0
- package/lib/types/LinkPath.d.ts +9 -93
- package/lib/types/LinkPath.d.ts.map +1 -1
- package/lib/types/LinkPath.js +28 -34
- package/lib/types/LinkPath.js.map +1 -1
- package/lib/types/NotifyLinkChangeInput.d.ts +9 -0
- package/lib/types/NotifyLinkChangeInput.d.ts.map +1 -0
- package/lib/types/NotifyLinkChangeInput.js +16 -0
- package/lib/types/NotifyLinkChangeInput.js.map +1 -0
- package/lib/types/Task.d.ts +20 -12
- package/lib/types/Task.d.ts.map +1 -1
- package/lib/types/Task.js.map +1 -1
- package/lib/types/TaskDescription.d.ts +19 -73
- package/lib/types/TaskDescription.d.ts.map +1 -1
- package/lib/types/TaskDescription.js +15 -12
- package/lib/types/TaskDescription.js.map +1 -1
- package/lib/types/TaskList.d.ts +6 -115
- package/lib/types/TaskList.d.ts.map +1 -1
- package/lib/types/TaskList.js +3 -2
- package/lib/types/TaskList.js.map +1 -1
- package/lib/types/TaskMessage.d.ts +3 -11
- package/lib/types/TaskMessage.d.ts.map +1 -1
- package/lib/types/TaskMessage.js +4 -4
- package/lib/types/TaskMessage.js.map +1 -1
- package/lib/types/TaskMessageLocation.d.ts +2 -6
- package/lib/types/TaskMessageLocation.d.ts.map +1 -1
- package/lib/types/TaskMessageLocation.js +3 -3
- package/lib/types/TaskMessageLocation.js.map +1 -1
- package/lib/types/TaskStats.d.ts +26 -17
- package/lib/types/TaskStats.d.ts.map +1 -1
- package/lib/types/TaskStats.js +4 -3
- package/lib/types/TaskStats.js.map +1 -1
- package/lib/types/Timing.d.ts +8 -18
- package/lib/types/Timing.d.ts.map +1 -1
- package/lib/types/Timing.js +5 -8
- package/lib/types/Timing.js.map +1 -1
- package/lib/utilities/TaskRunner.d.ts +56 -18
- package/lib/utilities/TaskRunner.d.ts.map +1 -1
- package/lib/utilities/TaskRunner.js +177 -98
- package/lib/utilities/TaskRunner.js.map +1 -1
- package/lib/utilities/createBundleTask.d.ts.map +1 -1
- package/lib/utilities/createBundleTask.js +9 -15
- package/lib/utilities/createBundleTask.js.map +1 -1
- package/lib/utilities/matchingZodObject.d.ts +18 -10
- package/lib/utilities/matchingZodObject.d.ts.map +1 -1
- package/lib/utilities/matchingZodObject.js +19 -7
- package/lib/utilities/matchingZodObject.js.map +1 -1
- package/lib/utilities/notifyHost.d.ts +3 -4
- package/lib/utilities/notifyHost.d.ts.map +1 -1
- package/lib/utilities/notifyHost.js.map +1 -1
- package/lib/utilities/notifyReload.d.ts +4 -3
- package/lib/utilities/notifyReload.d.ts.map +1 -1
- package/lib/utilities/notifyReload.js +2 -1
- package/lib/utilities/notifyReload.js.map +1 -1
- package/lib/utilities/waitForBusData.d.ts +2 -2
- package/lib/utilities/waitForBusData.d.ts.map +1 -1
- package/lib/utilities/waitForBusData.js.map +1 -1
- package/package.json +16 -16
- package/lib/types/TaskEndDescription.d.ts +0 -26
- package/lib/types/TaskEndDescription.d.ts.map +0 -1
- package/lib/types/TaskEndDescription.js +0 -8
- package/lib/types/TaskEndDescription.js.map +0 -1
- package/lib/types/TaskStartDescription.d.ts +0 -19
- package/lib/types/TaskStartDescription.d.ts.map +0 -1
- package/lib/types/TaskStartDescription.js +0 -8
- package/lib/types/TaskStartDescription.js.map +0 -1
- package/lib/types/ZodGetLinkConfigOutput.d.ts +0 -4
- package/lib/types/ZodGetLinkConfigOutput.d.ts.map +0 -1
- package/lib/types/ZodGetLinkConfigOutput.js +0 -13
- package/lib/types/ZodGetLinkConfigOutput.js.map +0 -1
- package/lib/types/ZodNotifyLinkChangeInput.d.ts +0 -45
- package/lib/types/ZodNotifyLinkChangeInput.d.ts.map +0 -1
- package/lib/types/ZodNotifyLinkChangeInput.js +0 -8
- package/lib/types/ZodNotifyLinkChangeInput.js.map +0 -1
- package/lib/types/ZodResolveMap.d.ts +0 -4
- package/lib/types/ZodResolveMap.d.ts.map +0 -1
- package/lib/types/ZodResolveMap.js +0 -14
- package/lib/types/ZodResolveMap.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validatePackageOverride.js","sourceRoot":"","sources":["../../src/apis/validatePackageOverride.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"validatePackageOverride.js","sourceRoot":"","sources":["../../src/apis/validatePackageOverride.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,aAAa,CAAC;AAChC,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AAEpE,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AAKtE,MAAM,+BAA+B,GAAG,iBAAiB,CAA+B;IACtF,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE;IACvB,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE;IACtB,SAAS,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;CAClC,CAAC,CAAC;AAMH,MAAM,gCAAgC,GAAG,iBAAiB,CAAgC;IACxF,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE;CACrB,CAAC,CAAC;AAEH,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAC3C,MAA4F;IAE5F,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,MAAM,CAAC;IAC9B,IAAI,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,EAAE,iBAAiB,EAAE,CAAC;QACnD,4GAA4G;QAC5G,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,gBAAgB,EAAE,EAAE,CAAC,CAAC;IACxC,CAAC;IAED,OAAO;QACL,OAAO,EAAE,MAAM,gBAAgB,CAAC,KAAK,EAAE,GAAG,CAAC;KAC5C,CAAC;AACJ,CAAC;AAED,uBAAuB,CAAC,SAAS,GAAG,cAAc,CAChD,uBAAuB,EACvB,+BAA+B,EAC/B,gCAAgC,CACjC,CAAC","sourcesContent":["import { z } from 'zod/v4-mini';\nimport { queryProcedure } from '../trpc/common.js';\nimport { validateOverride } from '../utilities/validateOverride.js';\nimport type { ApiParams } from '../types/ApiParams.js';\nimport { errorEntrySource } from '../data/busSources.js';\nimport { matchingZodObject } from '../utilities/matchingZodObject.js';\nimport type { OverrideOptions } from '../types/OverrideOptions.js';\n\nexport type ValidatePackageOverrideInput = Omit<OverrideOptions, 'version' | 'initiatedBy'>;\n\nconst ZodValidatePackageOverrideInput = matchingZodObject<ValidatePackageOverrideInput>({\n packageName: z.string(),\n importPath: z.string(),\n issuerUrl: z.optional(z.string()),\n});\n\nexport interface ValidatePackageOverrideOutput {\n fixable: boolean;\n}\n\nconst ZodValidatePackageOverrideOutput = matchingZodObject<ValidatePackageOverrideOutput>({\n fixable: z.boolean(),\n});\n\nexport async function validatePackageOverride(\n params: ApiParams<ValidatePackageOverrideInput, 'bus' | 'packages', 'config' | 'resolveMap'>,\n): Promise<ValidatePackageOverrideOutput> {\n const { input, ctx } = params;\n if (ctx.session.config.features?.autoUpdateEntries) {\n // We need to publish an empty string to the errorEntrySource as the error has been received on the overlay.\n ctx.bus.publish(errorEntrySource, '');\n }\n\n return {\n fixable: await validateOverride(input, ctx),\n };\n}\n\nvalidatePackageOverride.procedure = queryProcedure<ValidatePackageOverrideInput, ValidatePackageOverrideOutput>(\n validatePackageOverride,\n ZodValidatePackageOverrideInput,\n ZodValidatePackageOverrideOutput,\n);\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createApiContext.d.ts","sourceRoot":"","sources":["../../src/common/createApiContext.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAC/D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAI9D,MAAM,WAAW,uBACf,SAAQ,oBAAoB,EAC1B,IAAI,CAAC,OAAO,EAAE,UAAU,GAAG,iBAAiB,GAAG,YAAY,CAAC;IAC9D;;;OAGG;IACH,4BAA4B,CAAC,EAAE,WAAW,CAAC;CAC5C;AAED;;;;;;GAMG;AACH,wBAAgB,uBAAuB,CACrC,OAAO,EAAE,uBAAuB,GAC/B,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,GAAG,SAAS,GAAG,SAAS,CAAC,CAAC,CA6BvD;AAED;;;;;;;;;GASG;AACH,wBAAsB,gBAAgB,CAAC,OAAO,EAAE,uBAAuB,GAAG,OAAO,CAAC,OAAO,CAAC,
|
|
1
|
+
{"version":3,"file":"createApiContext.d.ts","sourceRoot":"","sources":["../../src/common/createApiContext.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAC/D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAI9D,MAAM,WAAW,uBACf,SAAQ,oBAAoB,EAC1B,IAAI,CAAC,OAAO,EAAE,UAAU,GAAG,iBAAiB,GAAG,YAAY,CAAC;IAC9D;;;OAGG;IACH,4BAA4B,CAAC,EAAE,WAAW,CAAC;CAC5C;AAED;;;;;;GAMG;AACH,wBAAgB,uBAAuB,CACrC,OAAO,EAAE,uBAAuB,GAC/B,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,GAAG,SAAS,GAAG,SAAS,CAAC,CAAC,CA6BvD;AAED;;;;;;;;;GASG;AACH,wBAAsB,gBAAgB,CAAC,OAAO,EAAE,uBAAuB,GAAG,OAAO,CAAC,OAAO,CAAC,CA8BzF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createApiContext.js","sourceRoot":"","sources":["../../src/common/createApiContext.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"createApiContext.js","sourceRoot":"","sources":["../../src/common/createApiContext.ts"],"names":[],"mappings":"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","sourcesContent":["import type { Context } from '../types/Context.js';\nimport type { CreateSessionOptions } from './createSession.js';\nimport type { LoginMethod } from '@ms-cloudpack/remote-cache';\nimport { createPackageDefinitions } from '@ms-cloudpack/config';\nimport { reloadCountSource } from '../data/busSources.js';\n\nexport interface CreateApiContextOptions\n extends CreateSessionOptions,\n Pick<Context, 'reporter' | 'telemetryClient' | 'taskRunner'> {\n /**\n * Login method for the remote cache.\n * If this isn't provided, `context.remoteCacheClient` will not be set.\n */\n remoteCacheClientLoginMethod?: LoginMethod;\n}\n\n/**\n * Asynchronously initialize a partial `Context`, encapsulating async importing of certain modules\n * to speed up boot time.\n *\n * This version skips some properties that are only needed for starting an app.\n * For a full context, use `createApiContext`.\n */\nexport function createPartialApiContext(\n options: CreateApiContextOptions,\n): Promise<Omit<Context, 'bus' | 'watcher' | 'dispose'>> {\n const { reporter, taskRunner, telemetryClient, config, remoteCacheClientLoginMethod } = options;\n\n return telemetryClient.tracer.startActiveSpan('CREATE_PARTIAL_API_CONTEXT', async () => {\n // Start by creating the properties that are always used\n const packages = createPackageDefinitions({ config });\n\n const { createSession } = await import('./createSession.js');\n const session = await createSession(options, { reporter, packages, telemetryClient });\n\n const { PackageHashes } = await import('@ms-cloudpack/package-hashes');\n const packageHashes = new PackageHashes({\n cwd: config.appPath,\n context: { config, packages, resolveMap: session.resolveMap },\n });\n\n let remoteCacheClient: Context['remoteCacheClient'] | undefined;\n const remoteCacheConfig = session.config.remoteCache;\n if (remoteCacheClientLoginMethod && remoteCacheConfig) {\n remoteCacheClient = await import('@ms-cloudpack/remote-cache').then(({ createRemoteCacheClient }) =>\n createRemoteCacheClient({\n context: { reporter, telemetryClient },\n options: { cachePath: session.cachePath, loginMethod: remoteCacheClientLoginMethod, ...remoteCacheConfig },\n }),\n );\n }\n\n return { reporter, taskRunner, telemetryClient, packageHashes, packages, session, remoteCacheClient };\n });\n}\n\n/**\n * Asynchronously initialize a `Context`, encapsulating async importing of certain packages/modules\n * to speed up boot time.\n *\n * When finished with the context, call `dispose` to clean up resources.\n *\n * NOTE: This version initializes the data bus and the file watcher, which are only needed when\n * starting a server (and add unnecessary overhead otherwise). For other commands, use\n * `createPartialApiContext`.\n */\nexport async function createApiContext(options: CreateApiContextOptions): Promise<Context> {\n return options.telemetryClient.tracer.startActiveSpan('CREATE_API_CONTEXT', async () => {\n const context = await createPartialApiContext(options);\n\n const { createWatcher } = await import('@ms-cloudpack/file-watcher');\n const watcher = createWatcher({\n // Use watcher in fork by default for better performance in large apps.\n type: context.session.config.features?.enableWatcherInFork !== false ? 'fork' : 'default',\n });\n\n const { createDataBus } = await import('@ms-cloudpack/data-bus');\n const bus = createDataBus();\n // Without this line, the overlay won't work.\n context.taskRunner.connectToBus(bus);\n\n bus.subscribe(reloadCountSource, () => {\n // Clear and reload the console when the page reloads.\n context.reporter.reset();\n });\n\n return {\n ...context,\n bus,\n watcher,\n dispose: async () => {\n await watcher.dispose();\n context.taskRunner.dispose();\n },\n };\n });\n}\n"]}
|
|
@@ -1,26 +1,33 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
import {
|
|
1
|
+
import type { Session } from '@ms-cloudpack/common-types';
|
|
2
|
+
import { TaskReporter } from '@ms-cloudpack/task-reporter';
|
|
3
3
|
import { type TelemetryClient } from '@ms-cloudpack/telemetry';
|
|
4
|
-
import type {
|
|
4
|
+
import type { Context, PartialContext } from '../types/Context.js';
|
|
5
5
|
import { type CreateMockSessionOptions } from './createMockSession.js';
|
|
6
|
+
import { type CreateSessionOptions } from './createSession.js';
|
|
7
|
+
import type { EnsurePackageBundledContext } from '../apis/ensurePackageBundled.js';
|
|
6
8
|
/**
|
|
7
9
|
* Create a mock context using info from the real filesystem.
|
|
8
10
|
* This is suitable for most tests using `ensurePackageBundled` and other scenarios.
|
|
9
|
-
*
|
|
11
|
+
*
|
|
12
|
+
* Unless `sessionOptions.cachePath` is provided, it will use `<appPath>/.cache` to avoid
|
|
13
|
+
* pollution of global state.
|
|
10
14
|
*/
|
|
11
15
|
export declare function createMockContext(params: {
|
|
12
16
|
appPath: string;
|
|
13
17
|
sessionOptions?: Partial<Omit<CreateSessionOptions, 'config'>>;
|
|
18
|
+
reporter?: TaskReporter;
|
|
14
19
|
/** No-op telemetry client. You might want to create this only once and pass it in. */
|
|
15
20
|
telemetryClient?: TelemetryClient;
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
})
|
|
21
|
+
}): Promise<Omit<EnsurePackageBundledContext, 'bus' | 'watcher'>>;
|
|
22
|
+
/**
|
|
23
|
+
* Like {@link createMockContext} (uses real filesystem and session), but also initializes a data bus.
|
|
24
|
+
*/
|
|
25
|
+
export declare function createMockContextWithBus(params: Parameters<typeof createMockContext>[0]): Promise<Omit<EnsurePackageBundledContext, 'bus' | 'watcher'> & Pick<Context, 'bus'>>;
|
|
19
26
|
type AllowedContextKeys = Exclude<keyof Context, 'watcher' | 'dispose' | 'remoteCacheClient'>;
|
|
20
27
|
/**
|
|
21
|
-
* Initialize only the requested context keys (plus `'session'`) using info from the real filesystem.
|
|
28
|
+
* Initialize only the requested context keys (plus a fake `'session'`) using info from the real filesystem.
|
|
22
29
|
*
|
|
23
|
-
* The returned `Session` object contains:
|
|
30
|
+
* The returned `Session` object is a mock which contains:
|
|
24
31
|
* - `config` from the filesystem (with defaults if there is no config)
|
|
25
32
|
* - `cachePath` set to `appPath/.cache` to prevent interference with the real cache or other tests
|
|
26
33
|
* - `resolveMap` will be an empty object unless `params.createResolveMap` is true
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createMockContext.d.ts","sourceRoot":"","sources":["../../src/common/createMockContext.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"createMockContext.d.ts","sourceRoot":"","sources":["../../src/common/createMockContext.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAC;AAI1D,OAAO,EAAmB,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAC5E,OAAO,EAA6B,KAAK,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAE1F,OAAO,KAAK,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAEnE,OAAO,EAAqB,KAAK,wBAAwB,EAAE,MAAM,wBAAwB,CAAC;AAC1F,OAAO,EAAiB,KAAK,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAC9E,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,iCAAiC,CAAC;AAEnF;;;;;;GAMG;AACH,wBAAsB,iBAAiB,CAAC,MAAM,EAAE;IAC9C,OAAO,EAAE,MAAM,CAAC;IAChB,cAAc,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,oBAAoB,EAAE,QAAQ,CAAC,CAAC,CAAC;IAC/D,QAAQ,CAAC,EAAE,YAAY,CAAC;IACxB,sFAAsF;IACtF,eAAe,CAAC,EAAE,eAAe,CAAC;CACnC,GAAG,OAAO,CAAC,IAAI,CAAC,2BAA2B,EAAE,KAAK,GAAG,SAAS,CAAC,CAAC,CAqBhE;AAED;;GAEG;AACH,wBAAsB,wBAAwB,CAC5C,MAAM,EAAE,UAAU,CAAC,OAAO,iBAAiB,CAAC,CAAC,CAAC,CAAC,GAC9C,OAAO,CAAC,IAAI,CAAC,2BAA2B,EAAE,KAAK,GAAG,SAAS,CAAC,GAAG,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,CAKtF;AAED,KAAK,kBAAkB,GAAG,OAAO,CAAC,MAAM,OAAO,EAAE,SAAS,GAAG,SAAS,GAAG,mBAAmB,CAAC,CAAC;AAE9F;;;;;;;;GAQG;AACH,wBAAsB,wBAAwB,CAAC,YAAY,SAAS,kBAAkB,EACpF,MAAM,EAAE,wBAAwB,GAAG;IACjC,OAAO,EAAE,YAAY,EAAE,CAAC;IACxB,sFAAsF;IACtF,eAAe,CAAC,EAAE,eAAe,CAAC;CACnC,GACA,OAAO,CAAC,cAAc,CAAC,YAAY,EAAE,MAAM,OAAO,CAAC,CAAC,CAgDtD"}
|
|
@@ -1,39 +1,44 @@
|
|
|
1
1
|
import { createPackageDefinitions, readConfig } from '@ms-cloudpack/config';
|
|
2
|
-
import { createSession } from './createSession.js';
|
|
3
|
-
import { createNoOpTelemetryClient } from '@ms-cloudpack/telemetry';
|
|
4
|
-
import { noLoggingConfig, TaskReporter } from '@ms-cloudpack/task-reporter';
|
|
5
|
-
import { TaskRunner } from '../utilities/TaskRunner.js';
|
|
6
|
-
import { PackageHashes } from '@ms-cloudpack/package-hashes';
|
|
7
2
|
import { createDataBus } from '@ms-cloudpack/data-bus';
|
|
3
|
+
import { PackageHashes } from '@ms-cloudpack/package-hashes';
|
|
4
|
+
import { noLoggingConfig, TaskReporter } from '@ms-cloudpack/task-reporter';
|
|
5
|
+
import { createNoOpTelemetryClient } from '@ms-cloudpack/telemetry';
|
|
8
6
|
import path from 'path';
|
|
7
|
+
import { TaskRunner } from '../utilities/TaskRunner.js';
|
|
9
8
|
import { createMockSession } from './createMockSession.js';
|
|
9
|
+
import { createSession } from './createSession.js';
|
|
10
10
|
/**
|
|
11
11
|
* Create a mock context using info from the real filesystem.
|
|
12
12
|
* This is suitable for most tests using `ensurePackageBundled` and other scenarios.
|
|
13
|
-
*
|
|
13
|
+
*
|
|
14
|
+
* Unless `sessionOptions.cachePath` is provided, it will use `<appPath>/.cache` to avoid
|
|
15
|
+
* pollution of global state.
|
|
14
16
|
*/
|
|
15
17
|
export async function createMockContext(params) {
|
|
16
|
-
const { appPath, sessionOptions, telemetryClient = createNoOpTelemetryClient() } = params;
|
|
18
|
+
const { appPath, sessionOptions, telemetryClient = createNoOpTelemetryClient(), reporter = new TaskReporter(noLoggingConfig), } = params;
|
|
17
19
|
const config = await readConfig(appPath);
|
|
18
20
|
const packages = createPackageDefinitions({ config });
|
|
19
|
-
const reporter = new TaskReporter(noLoggingConfig);
|
|
20
21
|
const session = await createSession({ config, cachePath: path.join(appPath, '.cache'), ...sessionOptions }, { reporter, packages, telemetryClient });
|
|
21
22
|
const taskRunner = new TaskRunner();
|
|
22
23
|
const packageHashes = new PackageHashes({
|
|
23
24
|
cwd: appPath,
|
|
24
25
|
context: { config, packages, resolveMap: session.resolveMap },
|
|
25
26
|
});
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
27
|
+
return { reporter, taskRunner, telemetryClient, packageHashes, packages, session };
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Like {@link createMockContext} (uses real filesystem and session), but also initializes a data bus.
|
|
31
|
+
*/
|
|
32
|
+
export async function createMockContextWithBus(params) {
|
|
33
|
+
const context = await createMockContext(params);
|
|
34
|
+
const bus = createDataBus();
|
|
35
|
+
context.taskRunner.connectToBus(bus);
|
|
36
|
+
return { ...context, bus };
|
|
32
37
|
}
|
|
33
38
|
/**
|
|
34
|
-
* Initialize only the requested context keys (plus `'session'`) using info from the real filesystem.
|
|
39
|
+
* Initialize only the requested context keys (plus a fake `'session'`) using info from the real filesystem.
|
|
35
40
|
*
|
|
36
|
-
* The returned `Session` object contains:
|
|
41
|
+
* The returned `Session` object is a mock which contains:
|
|
37
42
|
* - `config` from the filesystem (with defaults if there is no config)
|
|
38
43
|
* - `cachePath` set to `appPath/.cache` to prevent interference with the real cache or other tests
|
|
39
44
|
* - `resolveMap` will be an empty object unless `params.createResolveMap` is true
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createMockContext.js","sourceRoot":"","sources":["../../src/common/createMockContext.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"createMockContext.js","sourceRoot":"","sources":["../../src/common/createMockContext.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,wBAAwB,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAC5E,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAC7D,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAC5E,OAAO,EAAE,yBAAyB,EAAwB,MAAM,yBAAyB,CAAC;AAC1F,OAAO,IAAI,MAAM,MAAM,CAAC;AAExB,OAAO,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AACxD,OAAO,EAAE,iBAAiB,EAAiC,MAAM,wBAAwB,CAAC;AAC1F,OAAO,EAAE,aAAa,EAA6B,MAAM,oBAAoB,CAAC;AAG9E;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,MAMvC;IACC,MAAM,EACJ,OAAO,EACP,cAAc,EACd,eAAe,GAAG,yBAAyB,EAAE,EAC7C,QAAQ,GAAG,IAAI,YAAY,CAAC,eAAe,CAAC,GAC7C,GAAG,MAAM,CAAC;IAEX,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,OAAO,CAAC,CAAC;IACzC,MAAM,QAAQ,GAAG,wBAAwB,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;IACtD,MAAM,OAAO,GAAG,MAAM,aAAa,CACjC,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,EAAE,GAAG,cAAc,EAAE,EACtE,EAAE,QAAQ,EAAE,QAAQ,EAAE,eAAe,EAAE,CACxC,CAAC;IACF,MAAM,UAAU,GAAG,IAAI,UAAU,EAAE,CAAC;IACpC,MAAM,aAAa,GAAG,IAAI,aAAa,CAAC;QACtC,GAAG,EAAE,OAAO;QACZ,OAAO,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,UAAU,EAAE,OAAO,CAAC,UAAU,EAAE;KAC9D,CAAC,CAAC;IAEH,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,eAAe,EAAE,aAAa,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC;AACrF,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,wBAAwB,CAC5C,MAA+C;IAE/C,MAAM,OAAO,GAAG,MAAM,iBAAiB,CAAC,MAAM,CAAC,CAAC;IAChD,MAAM,GAAG,GAAG,aAAa,EAAE,CAAC;IAC5B,OAAO,CAAC,UAAU,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;IACrC,OAAO,EAAE,GAAG,OAAO,EAAE,GAAG,EAAE,CAAC;AAC7B,CAAC;AAID;;;;;;;;GAQG;AACH,MAAM,CAAC,KAAK,UAAU,wBAAwB,CAC5C,MAIC;IAED,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,CAAC;IAC3B,MAAM,WAAW,GAAG,MAAM,CAAC,OAA+B,CAAC;IAE3D,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,OAAO,CAAC,CAAC;IACzC,MAAM,QAAQ,GAAG,wBAAwB,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;IACtD,kFAAkF;IAClF,kDAAkD;IAClD,MAAM,OAAO,GAAG,MAAM,iBAAiB,CAAC,MAAM,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC;IACtE,wEAAwE;IACxE,MAAM,QAAQ,GAAG,WAAW,CAAC,QAAQ,CAAC,UAA0B,CAAC,CAAC,CAAC,CAAC,IAAI,YAAY,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAElH,MAAM,OAAO,GAAG,EAAE,OAAO,EAAuC,CAAC;IAEjE,KAAK,MAAM,GAAG,IAAI,WAAW,EAAE,CAAC;QAC9B,QAAQ,GAAG,EAAE,CAAC;YACZ,KAAK,KAAK;gBACR,OAAO,CAAC,UAAU,KAAK,IAAI,UAAU,EAAE,CAAC;gBACxC,OAAO,CAAC,GAAG,GAAG,aAAa,EAAE,CAAC;gBAC9B,OAAO,CAAC,UAAU,CAAC,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;gBAC7C,MAAM;YACR,KAAK,UAAU;gBACb,oEAAoE;gBACpE,OAAO,CAAC,QAAQ,GAAG,QAAS,CAAC;gBAC7B,MAAM;YACR,KAAK,YAAY;gBACf,OAAO,CAAC,UAAU,KAAK,IAAI,UAAU,EAAE,CAAC;gBACxC,MAAM;YACR,KAAK,eAAe;gBAClB,OAAO,CAAC,aAAa,GAAG,IAAI,aAAa,CAAC;oBACxC,GAAG,EAAE,OAAO;oBACZ,OAAO,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,UAAU,EAAE,OAAO,CAAC,UAAU,EAAE;iBAC9D,CAAC,CAAC;gBACH,MAAM;YACR,KAAK,UAAU;gBACb,OAAO,CAAC,QAAQ,GAAG,QAAQ,CAAC;gBAC5B,MAAM;YACR,KAAK,iBAAiB;gBACpB,OAAO,CAAC,eAAe,GAAG,MAAM,CAAC,eAAe,IAAI,yBAAyB,EAAE,CAAC;gBAChF,MAAM;YACR,KAAK,SAAS;gBACZ,MAAM;YACR;gBACE,MAAM,IAAI,KAAK,CAAC,4BAA4B,GAAG,EAAE,CAAC,CAAC;QACvD,CAAC;IACH,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC","sourcesContent":["import type { Session } from '@ms-cloudpack/common-types';\nimport { createPackageDefinitions, readConfig } from '@ms-cloudpack/config';\nimport { createDataBus } from '@ms-cloudpack/data-bus';\nimport { PackageHashes } from '@ms-cloudpack/package-hashes';\nimport { noLoggingConfig, TaskReporter } from '@ms-cloudpack/task-reporter';\nimport { createNoOpTelemetryClient, type TelemetryClient } from '@ms-cloudpack/telemetry';\nimport path from 'path';\nimport type { Context, PartialContext } from '../types/Context.js';\nimport { TaskRunner } from '../utilities/TaskRunner.js';\nimport { createMockSession, type CreateMockSessionOptions } from './createMockSession.js';\nimport { createSession, type CreateSessionOptions } from './createSession.js';\nimport type { EnsurePackageBundledContext } from '../apis/ensurePackageBundled.js';\n\n/**\n * Create a mock context using info from the real filesystem.\n * This is suitable for most tests using `ensurePackageBundled` and other scenarios.\n *\n * Unless `sessionOptions.cachePath` is provided, it will use `<appPath>/.cache` to avoid\n * pollution of global state.\n */\nexport async function createMockContext(params: {\n appPath: string;\n sessionOptions?: Partial<Omit<CreateSessionOptions, 'config'>>;\n reporter?: TaskReporter;\n /** No-op telemetry client. You might want to create this only once and pass it in. */\n telemetryClient?: TelemetryClient;\n}): Promise<Omit<EnsurePackageBundledContext, 'bus' | 'watcher'>> {\n const {\n appPath,\n sessionOptions,\n telemetryClient = createNoOpTelemetryClient(),\n reporter = new TaskReporter(noLoggingConfig),\n } = params;\n\n const config = await readConfig(appPath);\n const packages = createPackageDefinitions({ config });\n const session = await createSession(\n { config, cachePath: path.join(appPath, '.cache'), ...sessionOptions },\n { reporter, packages, telemetryClient },\n );\n const taskRunner = new TaskRunner();\n const packageHashes = new PackageHashes({\n cwd: appPath,\n context: { config, packages, resolveMap: session.resolveMap },\n });\n\n return { reporter, taskRunner, telemetryClient, packageHashes, packages, session };\n}\n\n/**\n * Like {@link createMockContext} (uses real filesystem and session), but also initializes a data bus.\n */\nexport async function createMockContextWithBus(\n params: Parameters<typeof createMockContext>[0],\n): Promise<Omit<EnsurePackageBundledContext, 'bus' | 'watcher'> & Pick<Context, 'bus'>> {\n const context = await createMockContext(params);\n const bus = createDataBus();\n context.taskRunner.connectToBus(bus);\n return { ...context, bus };\n}\n\ntype AllowedContextKeys = Exclude<keyof Context, 'watcher' | 'dispose' | 'remoteCacheClient'>;\n\n/**\n * Initialize only the requested context keys (plus a fake `'session'`) using info from the real filesystem.\n *\n * The returned `Session` object is a mock which contains:\n * - `config` from the filesystem (with defaults if there is no config)\n * - `cachePath` set to `appPath/.cache` to prevent interference with the real cache or other tests\n * - `resolveMap` will be an empty object unless `params.createResolveMap` is true\n * - Basic mocks of other properties which can be updated as needed\n */\nexport async function createPartialMockContext<TContextKeys extends AllowedContextKeys>(\n params: CreateMockSessionOptions & {\n context: TContextKeys[];\n /** No-op telemetry client. You might want to create this only once and pass it in. */\n telemetryClient?: TelemetryClient;\n },\n): Promise<PartialContext<TContextKeys, keyof Session>> {\n const { appPath } = params;\n const contextKeys = params.context as AllowedContextKeys[];\n\n const config = await readConfig(appPath);\n const packages = createPackageDefinitions({ config });\n // Pass through the real config and package definitions when creating the session,\n // to allow creating a real resolve map if needed.\n const session = await createMockSession(params, { config, packages });\n // Only create a reporter (which overrides console logging) if requested\n const reporter = contextKeys.includes('reporter' as TContextKeys) ? new TaskReporter(noLoggingConfig) : undefined;\n\n const context = { session } as Pick<Context, AllowedContextKeys>;\n\n for (const key of contextKeys) {\n switch (key) {\n case 'bus':\n context.taskRunner ??= new TaskRunner();\n context.bus = createDataBus();\n context.taskRunner.connectToBus(context.bus);\n break;\n case 'reporter':\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n context.reporter = reporter!;\n break;\n case 'taskRunner':\n context.taskRunner ??= new TaskRunner();\n break;\n case 'packageHashes':\n context.packageHashes = new PackageHashes({\n cwd: appPath,\n context: { config, packages, resolveMap: session.resolveMap },\n });\n break;\n case 'packages':\n context.packages = packages;\n break;\n case 'telemetryClient':\n context.telemetryClient = params.telemetryClient || createNoOpTelemetryClient();\n break;\n case 'session':\n break;\n default:\n throw new Error(`Unsupported context key: ${key}`);\n }\n }\n\n return context;\n}\n"]}
|
|
@@ -11,7 +11,7 @@ export interface CreateMockSessionOptions {
|
|
|
11
11
|
/**
|
|
12
12
|
* Create a mock session without reading anything from the filesystem.
|
|
13
13
|
*/
|
|
14
|
-
export declare function createMockSessionNoFS(params: Omit<CreateMockSessionOptions, '
|
|
14
|
+
export declare function createMockSessionNoFS(params: Omit<CreateMockSessionOptions, 'createResolveMap'>): Session;
|
|
15
15
|
/**
|
|
16
16
|
* Create a mock session. The returned object contains:
|
|
17
17
|
* - `config` from the filesystem (with defaults if there is no config)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createMockSession.d.ts","sourceRoot":"","sources":["../../src/common/createMockSession.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,uBAAuB,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAC;AAMpG,MAAM,WAAW,wBAAwB;IACvC,OAAO,EAAE,MAAM,CAAC;IAChB,uDAAuD;IACvD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,4CAA4C;IAC5C,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,6CAA6C;IAC7C,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,IAAI,CAAC,wBAAwB,EAAE,
|
|
1
|
+
{"version":3,"file":"createMockSession.d.ts","sourceRoot":"","sources":["../../src/common/createMockSession.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,uBAAuB,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAC;AAMpG,MAAM,WAAW,wBAAwB;IACvC,OAAO,EAAE,MAAM,CAAC;IAChB,uDAAuD;IACvD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,4CAA4C;IAC5C,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,6CAA6C;IAC7C,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,IAAI,CAAC,wBAAwB,EAAE,kBAAkB,CAAC,GAAG,OAAO,CAqBzG;AAED;;;;;;GAMG;AACH,wBAAsB,iBAAiB,CACrC,MAAM,EAAE,wBAAwB,EAChC,OAAO,CAAC,EAAE;IACR,MAAM,CAAC,EAAE,eAAe,CAAC;IACzB,QAAQ,CAAC,EAAE,uBAAuB,CAAC;CACpC,GACA,OAAO,CAAC,OAAO,CAAC,CAWlB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createMockSession.js","sourceRoot":"","sources":["../../src/common/createMockSession.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AACnE,OAAO,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AACpC,OAAO,IAAI,MAAM,MAAM,CAAC;AAYxB;;GAEG;AACH,MAAM,UAAU,qBAAqB,CAAC,
|
|
1
|
+
{"version":3,"file":"createMockSession.js","sourceRoot":"","sources":["../../src/common/createMockSession.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AACnE,OAAO,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AACpC,OAAO,IAAI,MAAM,MAAM,CAAC;AAYxB;;GAEG;AACH,MAAM,UAAU,qBAAqB,CAAC,MAA0D;IAC9F,MAAM,EAAE,OAAO,EAAE,SAAS,GAAG,UAAU,EAAE,EAAE,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,EAAE,GAAG,MAAM,CAAC;IAC/F,MAAM,OAAO,GAAY;QACvB,EAAE,EAAE,SAAS;QACb,SAAS;QACT,MAAM,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS,EAAE,EAAE,EAAE;QACnD,WAAW,EAAE,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC;QACnC,UAAU,EAAE,EAAE;QACd,QAAQ,EAAE,CAAC;QACX,IAAI,EAAE,EAAE;QACR,cAAc,EAAE,EAAE;QAClB,cAAc,EAAE,CAAC;QACjB,uBAAuB,EAAE,GAAG,EAAE,GAAE,CAAC;QACjC,sBAAsB,EAAE,GAAG,EAAE,GAAE,CAAC;QAChC,SAAS,EAAE,SAAS;QACpB,kBAAkB,EAAE,IAAI,GAAG,EAAE;QAC7B,WAAW,EAAE,EAAE;QACf,aAAa,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC;QAC7C,gBAAgB,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC;KACjD,CAAC;IACF,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,MAAgC,EAChC,OAGC;IAED,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,CAAC;IAC3B,MAAM,OAAO,GAAG,qBAAqB,CAAC,MAAM,CAAC,CAAC;IAC9C,OAAO,CAAC,MAAM,GAAG,OAAO,EAAE,MAAM,IAAI,CAAC,MAAM,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC;IAChE,IAAI,MAAM,CAAC,gBAAgB,EAAE,CAAC;QAC5B,IAAI,CAAC,OAAO,EAAE,QAAQ,EAAE,CAAC;YACvB,MAAM,IAAI,KAAK,CAAC,mDAAmD,CAAC,CAAC;QACvE,CAAC;QACD,OAAO,CAAC,UAAU,GAAG,MAAM,gBAAgB,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,EAAE,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;IAC9G,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC","sourcesContent":["import type { CloudpackConfig, PackageDefinitionsCache, Session } from '@ms-cloudpack/common-types';\nimport { readConfig } from '@ms-cloudpack/config';\nimport { createResolveMap } from '@ms-cloudpack/package-utilities';\nimport { randomUUID } from 'crypto';\nimport path from 'path';\n\nexport interface CreateMockSessionOptions {\n appPath: string;\n /** Custom cache path. Defaults to `appPath/.cache`. */\n cachePath?: string;\n /** Whether to create a real resolve map. */\n createResolveMap?: boolean;\n /** Session ID. Defaults to a random UUID. */\n sessionId?: string;\n}\n\n/**\n * Create a mock session without reading anything from the filesystem.\n */\nexport function createMockSessionNoFS(params: Omit<CreateMockSessionOptions, 'createResolveMap'>): Session {\n const { appPath, sessionId = randomUUID(), cachePath = path.join(appPath, '.cache') } = params;\n const session: Session = {\n id: sessionId,\n cachePath,\n config: { appPath, mode: 'library', generated: {} },\n projectName: path.basename(appPath),\n resolveMap: {},\n sequence: 0,\n urls: {},\n targetVersions: {},\n sessionVersion: 1,\n incrementSessionVersion: () => {},\n incrementTargetVersion: () => {},\n importMap: undefined,\n packageImportPaths: new Map(),\n linkedPaths: [],\n addLinkedPath: () => Promise.resolve(session),\n removeLinkedPath: () => Promise.resolve(session),\n };\n return session;\n}\n\n/**\n * Create a mock session. The returned object contains:\n * - `config` from the filesystem (with defaults if there is no config)\n * - `cachePath` set to `appPath/.cache` to prevent interference with the real cache or other tests\n * - `resolveMap` will be an empty object unless `params.createResolveMap` is true\n * - Basic mocks of other properties which can be updated as needed\n */\nexport async function createMockSession(\n params: CreateMockSessionOptions,\n context?: {\n config?: CloudpackConfig;\n packages?: PackageDefinitionsCache;\n },\n): Promise<Session> {\n const { appPath } = params;\n const session = createMockSessionNoFS(params);\n session.config = context?.config || (await readConfig(appPath));\n if (params.createResolveMap) {\n if (!context?.packages) {\n throw new Error('Cannot create a real resolve map without packages');\n }\n session.resolveMap = await createResolveMap({ appPath, rootPath: appPath }, { packages: context.packages });\n }\n return session;\n}\n"]}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { CloudpackConfig, Session } from '@ms-cloudpack/common-types';
|
|
1
|
+
import type { CloudpackConfig, Session, ResolveMap } from '@ms-cloudpack/common-types';
|
|
2
2
|
import type { Context } from '../types/Context.js';
|
|
3
3
|
export type SessionVersions = {
|
|
4
4
|
sessionVersion: number;
|
|
@@ -20,6 +20,10 @@ export interface CreateSessionOptions {
|
|
|
20
20
|
* This should only be used for the `bundle` command when it's bundling the current package.
|
|
21
21
|
*/
|
|
22
22
|
skipResolveDependencies?: boolean;
|
|
23
|
+
/**
|
|
24
|
+
* Mock resolve map for testing
|
|
25
|
+
*/
|
|
26
|
+
resolveMap?: ResolveMap;
|
|
23
27
|
}
|
|
24
28
|
export declare function createSession(options: CreateSessionOptions, context: Pick<Context, 'reporter' | 'packages' | 'telemetryClient'>): Promise<Session>;
|
|
25
29
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createSession.d.ts","sourceRoot":"","sources":["../../src/common/createSession.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,OAAO,EAAc,MAAM,4BAA4B,CAAC;
|
|
1
|
+
{"version":3,"file":"createSession.d.ts","sourceRoot":"","sources":["../../src/common/createSession.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,OAAO,EAAc,UAAU,EAAE,MAAM,4BAA4B,CAAC;AAMnG,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAInD,MAAM,MAAM,eAAe,GAAG;IAC5B,cAAc,EAAE,MAAM,CAAC;IACvB,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACxC,CAAC;AAEF,MAAM,WAAW,oBAAoB;IACnC,MAAM,EAAE,eAAe,CAAC;IACxB;;OAEG;IACH,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAC3B;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;OAGG;IACH,uBAAuB,CAAC,EAAE,OAAO,CAAC;IAClC;;OAEG;IACH,UAAU,CAAC,EAAE,UAAU,CAAC;CACzB;AAED,wBAAsB,aAAa,CACjC,OAAO,EAAE,oBAAoB,EAC7B,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,UAAU,GAAG,UAAU,GAAG,iBAAiB,CAAC,GAClE,OAAO,CAAC,OAAO,CAAC,CAoGlB;AAED;;;GAGG;AACH,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAE/D"}
|
|
@@ -9,7 +9,7 @@ export async function createSession(options, context) {
|
|
|
9
9
|
const { appPath } = config;
|
|
10
10
|
const projectName = path.basename(appPath);
|
|
11
11
|
const id = randomUUID();
|
|
12
|
-
let resolveMap = await createResolveMapTask({ appPath, additionalPaths, skipResolveDependencies }, context);
|
|
12
|
+
let resolveMap = options.resolveMap || (await createResolveMapTask({ appPath, additionalPaths, skipResolveDependencies }, context));
|
|
13
13
|
let importMap = undefined;
|
|
14
14
|
const versionsPath = _getSessionVersionsPath(appPath);
|
|
15
15
|
const previousVersions = await readJson(versionsPath);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createSession.js","sourceRoot":"","sources":["../../src/common/createSession.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAEvE,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAClF,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,IAAI,MAAM,MAAM,CAAC;AAExB,OAAO,EAAE,oBAAoB,EAAE,MAAM,sCAAsC,CAAC;AAC5E,OAAO,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"createSession.js","sourceRoot":"","sources":["../../src/common/createSession.ts"],"names":[],"mappings":"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","sourcesContent":["import type { CloudpackConfig, Session, LinkedPath, ResolveMap } from '@ms-cloudpack/common-types';\nimport { getCachePath, getLocalCachePath } from '@ms-cloudpack/config';\nimport type { ImportMap } from '@ms-cloudpack/import-map';\nimport { readJson, writeJson, writeJsonSync } from '@ms-cloudpack/json-utilities';\nimport fs from 'fs';\nimport path from 'path';\nimport type { Context } from '../types/Context.js';\nimport { createResolveMapTask } from '../utilities/createResolveMapTask.js';\nimport { randomUUID } from 'crypto';\n\nexport type SessionVersions = {\n sessionVersion: number;\n targetVersions: Record<string, number>;\n};\n\nexport interface CreateSessionOptions {\n config: CloudpackConfig;\n /**\n * Any additional packages whose dependencies we want to resolve, such as the overlay.\n */\n additionalPaths?: string[];\n /**\n * Custom cache folder for the session.\n * If not provided, will use the one from user preferences if set, or the default cache path.\n */\n cachePath?: string;\n /**\n * Skip full dependency resolution (`resolveMap` will only contain the package at `config.appPath`).\n * This should only be used for the `bundle` command when it's bundling the current package.\n */\n skipResolveDependencies?: boolean;\n /**\n * Mock resolve map for testing\n */\n resolveMap?: ResolveMap;\n}\n\nexport async function createSession(\n options: CreateSessionOptions,\n context: Pick<Context, 'reporter' | 'packages' | 'telemetryClient'>,\n): Promise<Session> {\n const { config, additionalPaths, skipResolveDependencies } = options;\n const { appPath } = config;\n\n const projectName = path.basename(appPath);\n const id = randomUUID();\n let resolveMap =\n options.resolveMap || (await createResolveMapTask({ appPath, additionalPaths, skipResolveDependencies }, context));\n\n let importMap: ImportMap | undefined = undefined;\n\n const versionsPath = _getSessionVersionsPath(appPath);\n const previousVersions = await readJson<SessionVersions>(versionsPath);\n const versions = previousVersions || { sessionVersion: 0, targetVersions: {} };\n if (!previousVersions) {\n await writeJson(versionsPath, versions);\n }\n\n // In the future, we might put all the user preferences in the session, but right now the only\n // preference is cachePath, so we just read that and save the custom or default value.\n const cachePath = await getCachePath(options.cachePath);\n\n const linkedPaths: LinkedPath[] = [];\n\n return {\n id,\n config,\n projectName,\n get resolveMap() {\n return resolveMap;\n },\n set resolveMap(newResolveMap) {\n // If the resolve map changes, clear the import map\n // so that it is regenerated on the next request\n importMap = undefined;\n resolveMap = newResolveMap;\n },\n sequence: 0,\n urls: {},\n targetVersions: versions.targetVersions,\n get sessionVersion() {\n return versions.sessionVersion;\n },\n incrementSessionVersion: () => {\n versions.sessionVersion++;\n importMap = undefined;\n // Write the new session version to the file\n fs.writeFileSync(versionsPath, JSON.stringify(versions, null, 2));\n },\n incrementTargetVersion: (inputPath: string) => {\n versions.targetVersions[inputPath] ??= 0;\n versions.targetVersions[inputPath]++;\n importMap = undefined;\n writeJsonSync(versionsPath, versions);\n },\n get importMap() {\n return importMap;\n },\n set importMap(newImportMap) {\n importMap = newImportMap;\n },\n packageImportPaths: new Map(),\n linkedPaths,\n addLinkedPath: async (linkedPath: LinkedPath) => {\n if (skipResolveDependencies) {\n throw new Error('Cannot use `addLinkedPath` with `skipResolveDependencies`');\n }\n\n if (linkedPaths.some((p) => p.path === linkedPath.path)) {\n return { resolveMap, linkedPaths };\n }\n\n linkedPaths.push(linkedPath);\n resolveMap = await createResolveMapTask(\n { appPath, additionalPaths, linkedPaths, skipResolveDependencies: false },\n context,\n );\n\n return { resolveMap, linkedPaths };\n },\n removeLinkedPath: async (linkedPath: LinkedPath) => {\n if (skipResolveDependencies) {\n throw new Error('Cannot use `removeLinkedPath` with `skipResolveDependencies`');\n }\n\n const index = linkedPaths.findIndex((p) => p.path === linkedPath.path);\n if (index === -1) {\n return { resolveMap, linkedPaths };\n }\n\n linkedPaths.splice(index, 1);\n resolveMap = await createResolveMapTask(\n { appPath, additionalPaths, linkedPaths, skipResolveDependencies: false },\n context,\n );\n\n return { resolveMap, linkedPaths };\n },\n cachePath,\n };\n}\n\n/**\n * Get `sessionVersions.json` path. Exported for the test.\n * @internal\n */\nexport function _getSessionVersionsPath(appPath: string): string {\n return path.join(getLocalCachePath(appPath), 'sessionVersions.json');\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prepareOutputPath.js","sourceRoot":"","sources":["../../src/common/prepareOutputPath.ts"],"names":[],"mappings":"AAAA,OAAO,UAAU,MAAM,aAAa,CAAC;AAErC;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,aAAqB;IAC3D,IAAI,CAAC;QACH,MAAM,UAAU,CAAC,EAAE,CAAC,aAAa,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC1D,CAAC;IAAC,
|
|
1
|
+
{"version":3,"file":"prepareOutputPath.js","sourceRoot":"","sources":["../../src/common/prepareOutputPath.ts"],"names":[],"mappings":"AAAA,OAAO,UAAU,MAAM,aAAa,CAAC;AAErC;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,aAAqB;IAC3D,IAAI,CAAC;QACH,MAAM,UAAU,CAAC,EAAE,CAAC,aAAa,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC1D,CAAC;IAAC,MAAM,CAAC;QACP,YAAY;IACd,CAAC;IACD,MAAM,UAAU,CAAC,KAAK,CAAC,aAAa,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;AAC7D,CAAC","sourcesContent":["import fsPromises from 'fs/promises';\n\n/**\n * Clears and replaces the given path, ensuring it exists in an empty state.\n */\nexport async function prepareOutputPath(requestedPath: string): Promise<void> {\n try {\n await fsPromises.rm(requestedPath, { recursive: true });\n } catch {\n /* ignore */\n }\n await fsPromises.mkdir(requestedPath, { recursive: true });\n}\n"]}
|