cdk-local 0.11.2 → 0.11.3

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/dist/cli.js CHANGED
@@ -1,10 +1,10 @@
1
1
  #!/usr/bin/env node
2
- import { i as createLocalStartApiCommand, r as createLocalRunTaskCommand, t as createLocalStartServiceCommand, v as createLocalInvokeCommand } from "./local-start-service-ChWqG2xl.js";
2
+ import { i as createLocalStartApiCommand, r as createLocalRunTaskCommand, t as createLocalStartServiceCommand, v as createLocalInvokeCommand } from "./local-start-service-Oxi200hs.js";
3
3
  import { Command } from "commander";
4
4
 
5
5
  //#region src/cli/index.ts
6
6
  const program = new Command();
7
- program.name("cdkl").description("Run AWS CDK stacks locally with Docker.").version("0.11.2");
7
+ program.name("cdkl").description("Run AWS CDK stacks locally with Docker.").version("0.11.3");
8
8
  program.addCommand(createLocalInvokeCommand());
9
9
  program.addCommand(createLocalStartApiCommand());
10
10
  program.addCommand(createLocalRunTaskCommand());
package/dist/index.js CHANGED
@@ -1,3 +1,3 @@
1
- import { C as resolveCfnFallbackRegion, E as CfnLocalStateProvider, S as rejectExplicitCfnStackWithMultipleStacks, T as resolveCfnStackName, _ as resolveLambdaArnIntrinsic, a as resolveSelectionExpression, b as createLocalStateProvider, c as translateLambdaResponse, d as buildRestV1Event, f as discoverWebSocketApis, g as pickRefLogicalId, h as discoverRoutes, i as createLocalStartApiCommand, l as applyAuthorizerOverlay, m as parseSelectionExpressionPath, n as getContainerNetworkIp, o as resolveServiceIntegrationParameters, p as discoverWebSocketApisOrThrow, r as createLocalRunTaskCommand, s as matchRoute, t as createLocalStartServiceCommand, u as buildHttpApiV2Event, v as createLocalInvokeCommand, w as resolveCfnRegion, x as isCfnFlagPresent, y as LocalStateSourceError } from "./local-start-service-ChWqG2xl.js";
1
+ import { C as resolveCfnFallbackRegion, E as CfnLocalStateProvider, S as rejectExplicitCfnStackWithMultipleStacks, T as resolveCfnStackName, _ as resolveLambdaArnIntrinsic, a as resolveSelectionExpression, b as createLocalStateProvider, c as translateLambdaResponse, d as buildRestV1Event, f as discoverWebSocketApis, g as pickRefLogicalId, h as discoverRoutes, i as createLocalStartApiCommand, l as applyAuthorizerOverlay, m as parseSelectionExpressionPath, n as getContainerNetworkIp, o as resolveServiceIntegrationParameters, p as discoverWebSocketApisOrThrow, r as createLocalRunTaskCommand, s as matchRoute, t as createLocalStartServiceCommand, u as buildHttpApiV2Event, v as createLocalInvokeCommand, w as resolveCfnRegion, x as isCfnFlagPresent, y as LocalStateSourceError } from "./local-start-service-Oxi200hs.js";
2
2
 
3
3
  export { CfnLocalStateProvider, LocalStateSourceError, applyAuthorizerOverlay, buildHttpApiV2Event, buildRestV1Event, createLocalInvokeCommand, createLocalRunTaskCommand, createLocalStartApiCommand, createLocalStartServiceCommand, createLocalStateProvider, discoverRoutes, discoverWebSocketApis, discoverWebSocketApisOrThrow, getContainerNetworkIp, isCfnFlagPresent, matchRoute, parseSelectionExpressionPath, pickRefLogicalId, rejectExplicitCfnStackWithMultipleStacks, resolveCfnFallbackRegion, resolveCfnRegion, resolveCfnStackName, resolveLambdaArnIntrinsic, resolveSelectionExpression, resolveServiceIntegrationParameters, translateLambdaResponse };
@@ -17155,16 +17155,16 @@ function resolveEcsServiceTarget(target, stacks, context) {
17155
17155
  if (parsed.isPath) {
17156
17156
  const index = buildCdkPathIndex(stack.template);
17157
17157
  const services = resolveCdkPathToLogicalIds(parsed.pathOrId, index).filter(({ logicalId: l }) => resources[l]?.Type === "AWS::ECS::Service");
17158
- if (services.length === 0) throw notFoundError(target, stack, resources);
17158
+ if (services.length === 0) throw notFoundError(target, stack, resources, parsed);
17159
17159
  if (services.length > 1) throw new EcsTaskResolutionError(`Target '${target}' matches ${services.length} ECS services in ${stack.stackName}: ` + services.map((s) => s.logicalId).join(", ") + ". Refine the path or use the stack:LogicalId form.");
17160
17160
  serviceLogicalId = services[0].logicalId;
17161
17161
  serviceResource = resources[serviceLogicalId];
17162
17162
  } else {
17163
17163
  serviceResource = resources[parsed.pathOrId];
17164
- if (!serviceResource) throw notFoundError(target, stack, resources);
17164
+ if (!serviceResource) throw notFoundError(target, stack, resources, parsed);
17165
17165
  serviceLogicalId = parsed.pathOrId;
17166
17166
  }
17167
- if (!serviceLogicalId || !serviceResource) throw notFoundError(target, stack, resources);
17167
+ if (!serviceLogicalId || !serviceResource) throw notFoundError(target, stack, resources, parsed);
17168
17168
  if (serviceResource.Type === "AWS::ECS::TaskDefinition") throw new EcsTaskResolutionError(`Resource '${serviceLogicalId}' in ${stack.stackName} is an ECS TaskDefinition, not a Service. Use \`${getEmbedConfig().cliName} run-task\` for one-shot tasks; \`${getEmbedConfig().cliName} start-service\` is Service-only.`);
17169
17169
  if (serviceResource.Type !== "AWS::ECS::Service") throw new EcsTaskResolutionError(`Resource '${serviceLogicalId}' in ${stack.stackName} is ${serviceResource.Type}, not an AWS::ECS::Service.`);
17170
17170
  return extractServiceProperties(stack, serviceLogicalId, serviceResource, stacks, context);
@@ -17360,10 +17360,27 @@ function pickStack(parsed, stacks) {
17360
17360
  if (matched.length > 1) throw new EcsTaskResolutionError(`Multiple stacks match '${parsed.stackPattern}': ${matched.map((s) => s.stackName).join(", ")}. Refine the pattern.`);
17361
17361
  return matched[0];
17362
17362
  }
17363
- function notFoundError(target, stack, resources) {
17364
- const services = Object.entries(resources).filter(([, r]) => r.Type === "AWS::ECS::Service").map(([id]) => id);
17363
+ function notFoundError(target, stack, resources, parsed) {
17364
+ const services = [];
17365
+ for (const [logicalId, r] of Object.entries(resources)) {
17366
+ if (r.Type !== "AWS::ECS::Service") continue;
17367
+ const meta = r.Metadata;
17368
+ const cdkPath = typeof meta?.["aws:cdk:path"] === "string" ? meta["aws:cdk:path"] : "";
17369
+ services.push({
17370
+ displayPath: cdkPath || logicalId,
17371
+ logicalId
17372
+ });
17373
+ }
17365
17374
  if (services.length === 0) return new EcsTaskResolutionError(`Target '${target}' did not match any resource in ${stack.stackName}, and the stack declares no AWS::ECS::Service resources at all.`);
17366
- return new EcsTaskResolutionError(`Target '${target}' did not match any ECS Service in ${stack.stackName}. Available services: ${services.join(", ")}.`);
17375
+ const width = Math.max(...services.map((s) => s.displayPath.length));
17376
+ let msg = `Target '${target}' did not match any ECS Service in ${stack.stackName}.\n\n`;
17377
+ msg += `Available services in ${stack.stackName} (CDK path and logical ID):\n`;
17378
+ for (const s of services) msg += ` ${s.displayPath.padEnd(width)} (${s.logicalId})\n`;
17379
+ if (parsed.isPath) {
17380
+ const tail = parsed.pathOrId.includes("/") ? parsed.pathOrId.slice(parsed.pathOrId.lastIndexOf("/") + 1) : parsed.pathOrId;
17381
+ if (services.some((s) => s.logicalId === tail)) msg += `\n'${tail}' is a logical ID, but the 'Stack/Path' form matches CDK construct paths. To target it by logical ID, use the colon form: '${stack.stackName}:${tail}'.`;
17382
+ }
17383
+ return new EcsTaskResolutionError(msg.trimEnd());
17367
17384
  }
17368
17385
 
17369
17386
  //#endregion
@@ -18524,4 +18541,4 @@ function createLocalStartServiceCommand(opts = {}) {
18524
18541
 
18525
18542
  //#endregion
18526
18543
  export { resolveCfnFallbackRegion as C, CfnLocalStateProvider as E, rejectExplicitCfnStackWithMultipleStacks as S, resolveCfnStackName as T, resolveLambdaArnIntrinsic as _, resolveSelectionExpression as a, createLocalStateProvider as b, translateLambdaResponse as c, buildRestV1Event as d, discoverWebSocketApis as f, pickRefLogicalId as g, discoverRoutes as h, createLocalStartApiCommand as i, applyAuthorizerOverlay as l, parseSelectionExpressionPath as m, getContainerNetworkIp as n, resolveServiceIntegrationParameters as o, discoverWebSocketApisOrThrow as p, createLocalRunTaskCommand as r, matchRoute as s, createLocalStartServiceCommand as t, buildHttpApiV2Event as u, createLocalInvokeCommand as v, resolveCfnRegion as w, isCfnFlagPresent as x, LocalStateSourceError as y };
18527
- //# sourceMappingURL=local-start-service-ChWqG2xl.js.map
18544
+ //# sourceMappingURL=local-start-service-Oxi200hs.js.map