@quiltdata/benchling-webhook 0.8.0-20251118T054240Z → 0.8.2

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.
@@ -0,0 +1,203 @@
1
+ "use strict";
2
+ /**
3
+ * ECS Service Discovery Utilities
4
+ *
5
+ * Shared utilities for discovering ECS services and their log groups
6
+ * from CloudFormation stacks. Used by both status and logs commands.
7
+ *
8
+ * @module utils/ecs-service-discovery
9
+ */
10
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
11
+ if (k2 === undefined) k2 = k;
12
+ var desc = Object.getOwnPropertyDescriptor(m, k);
13
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
14
+ desc = { enumerable: true, get: function() { return m[k]; } };
15
+ }
16
+ Object.defineProperty(o, k2, desc);
17
+ }) : (function(o, m, k, k2) {
18
+ if (k2 === undefined) k2 = k;
19
+ o[k2] = m[k];
20
+ }));
21
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
22
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
23
+ }) : function(o, v) {
24
+ o["default"] = v;
25
+ });
26
+ var __importStar = (this && this.__importStar) || (function () {
27
+ var ownKeys = function(o) {
28
+ ownKeys = Object.getOwnPropertyNames || function (o) {
29
+ var ar = [];
30
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
31
+ return ar;
32
+ };
33
+ return ownKeys(o);
34
+ };
35
+ return function (mod) {
36
+ if (mod && mod.__esModule) return mod;
37
+ var result = {};
38
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
39
+ __setModuleDefault(result, mod);
40
+ return result;
41
+ };
42
+ })();
43
+ Object.defineProperty(exports, "__esModule", { value: true });
44
+ exports.discoverECSServiceLogGroups = discoverECSServiceLogGroups;
45
+ exports.discoverECSServices = discoverECSServices;
46
+ /**
47
+ * Discover all ECS services in a CloudFormation stack and their log groups
48
+ *
49
+ * @param stackName - CloudFormation stack name
50
+ * @param region - AWS region
51
+ * @param awsProfile - Optional AWS profile name
52
+ * @returns Map of service names to log group names
53
+ */
54
+ async function discoverECSServiceLogGroups(stackName, region, awsProfile) {
55
+ try {
56
+ const { CloudFormationClient, DescribeStackResourcesCommand } = await Promise.resolve().then(() => __importStar(require("@aws-sdk/client-cloudformation")));
57
+ const { ECSClient, DescribeServicesCommand, DescribeTaskDefinitionCommand } = await Promise.resolve().then(() => __importStar(require("@aws-sdk/client-ecs")));
58
+ // Configure AWS SDK clients
59
+ const clientConfig = { region };
60
+ if (awsProfile) {
61
+ const { fromIni: fromIniImport } = await Promise.resolve().then(() => __importStar(require("@aws-sdk/credential-providers")));
62
+ clientConfig.credentials = fromIniImport({ profile: awsProfile });
63
+ }
64
+ const cfClient = new CloudFormationClient(clientConfig);
65
+ const ecsClient = new ECSClient(clientConfig);
66
+ // Find ECS resources in stack
67
+ const resourcesCommand = new DescribeStackResourcesCommand({
68
+ StackName: stackName,
69
+ });
70
+ const resourcesResponse = await cfClient.send(resourcesCommand);
71
+ const ecsServices = resourcesResponse.StackResources?.filter((r) => r.ResourceType === "AWS::ECS::Service") || [];
72
+ if (ecsServices.length === 0) {
73
+ return {};
74
+ }
75
+ // Get cluster name
76
+ const clusterResource = resourcesResponse.StackResources?.find((r) => r.ResourceType === "AWS::ECS::Cluster");
77
+ const clusterName = clusterResource?.PhysicalResourceId || stackName;
78
+ // Get service ARNs
79
+ const serviceArns = ecsServices
80
+ .map((s) => s.PhysicalResourceId)
81
+ .filter((arn) => !!arn);
82
+ if (serviceArns.length === 0) {
83
+ return {};
84
+ }
85
+ // Describe all services
86
+ const servicesCommand = new DescribeServicesCommand({
87
+ cluster: clusterName,
88
+ services: serviceArns,
89
+ });
90
+ const servicesResponse = await ecsClient.send(servicesCommand);
91
+ // Get log groups from ALL services
92
+ const logGroups = {};
93
+ for (const svc of servicesResponse.services || []) {
94
+ const taskDefArn = svc.deployments?.[0]?.taskDefinition;
95
+ if (!taskDefArn)
96
+ continue;
97
+ try {
98
+ const taskDefCommand = new DescribeTaskDefinitionCommand({
99
+ taskDefinition: taskDefArn,
100
+ });
101
+ const taskDefResponse = await ecsClient.send(taskDefCommand);
102
+ const logConfig = taskDefResponse.taskDefinition?.containerDefinitions?.[0]?.logConfiguration;
103
+ if (logConfig?.logDriver === "awslogs") {
104
+ const logGroupName = logConfig.options?.["awslogs-group"];
105
+ if (logGroupName) {
106
+ const serviceName = svc.serviceName || "unknown";
107
+ logGroups[serviceName] = logGroupName;
108
+ }
109
+ }
110
+ }
111
+ catch {
112
+ // Skip this service if we can't get its task definition
113
+ continue;
114
+ }
115
+ }
116
+ return logGroups;
117
+ }
118
+ catch (error) {
119
+ console.warn(`Could not discover ECS services: ${error.message}`);
120
+ return {};
121
+ }
122
+ }
123
+ /**
124
+ * Discover ECS services with full information (for status command)
125
+ *
126
+ * @param stackName - CloudFormation stack name
127
+ * @param region - AWS region
128
+ * @param awsProfile - Optional AWS profile name
129
+ * @returns Array of ECS service information
130
+ */
131
+ async function discoverECSServices(stackName, region, awsProfile) {
132
+ try {
133
+ const { CloudFormationClient, DescribeStackResourcesCommand } = await Promise.resolve().then(() => __importStar(require("@aws-sdk/client-cloudformation")));
134
+ const { ECSClient, DescribeServicesCommand, DescribeTaskDefinitionCommand } = await Promise.resolve().then(() => __importStar(require("@aws-sdk/client-ecs")));
135
+ // Configure AWS SDK clients
136
+ const clientConfig = { region };
137
+ if (awsProfile) {
138
+ const { fromIni: fromIniImport } = await Promise.resolve().then(() => __importStar(require("@aws-sdk/credential-providers")));
139
+ clientConfig.credentials = fromIniImport({ profile: awsProfile });
140
+ }
141
+ const cfClient = new CloudFormationClient(clientConfig);
142
+ const ecsClient = new ECSClient(clientConfig);
143
+ // Find ECS resources in stack
144
+ const resourcesCommand = new DescribeStackResourcesCommand({
145
+ StackName: stackName,
146
+ });
147
+ const resourcesResponse = await cfClient.send(resourcesCommand);
148
+ const ecsServiceResources = resourcesResponse.StackResources?.filter((r) => r.ResourceType === "AWS::ECS::Service") || [];
149
+ if (ecsServiceResources.length === 0) {
150
+ return [];
151
+ }
152
+ // Get cluster name
153
+ const clusterResource = resourcesResponse.StackResources?.find((r) => r.ResourceType === "AWS::ECS::Cluster");
154
+ const clusterName = clusterResource?.PhysicalResourceId || stackName;
155
+ // Get service ARNs
156
+ const serviceArns = ecsServiceResources
157
+ .map((s) => s.PhysicalResourceId)
158
+ .filter((arn) => !!arn);
159
+ if (serviceArns.length === 0) {
160
+ return [];
161
+ }
162
+ // Describe all services
163
+ const servicesCommand = new DescribeServicesCommand({
164
+ cluster: clusterName,
165
+ services: serviceArns,
166
+ });
167
+ const servicesResponse = await ecsClient.send(servicesCommand);
168
+ // Get log groups from task definitions
169
+ const services = [];
170
+ for (const svc of servicesResponse.services || []) {
171
+ let logGroup;
172
+ let logStreamPrefix;
173
+ const taskDefArn = svc.deployments?.[0]?.taskDefinition;
174
+ if (taskDefArn) {
175
+ try {
176
+ const taskDefCommand = new DescribeTaskDefinitionCommand({
177
+ taskDefinition: taskDefArn,
178
+ });
179
+ const taskDefResponse = await ecsClient.send(taskDefCommand);
180
+ const logConfig = taskDefResponse.taskDefinition?.containerDefinitions?.[0]?.logConfiguration;
181
+ if (logConfig?.logDriver === "awslogs") {
182
+ logGroup = logConfig.options?.["awslogs-group"];
183
+ logStreamPrefix = logConfig.options?.["awslogs-stream-prefix"];
184
+ }
185
+ }
186
+ catch {
187
+ // Skip log group if we can't get task definition
188
+ }
189
+ }
190
+ services.push({
191
+ serviceName: svc.serviceName || "unknown",
192
+ logGroup,
193
+ logStreamPrefix,
194
+ });
195
+ }
196
+ return services;
197
+ }
198
+ catch (error) {
199
+ console.warn(`Could not discover ECS services: ${error.message}`);
200
+ return [];
201
+ }
202
+ }
203
+ //# sourceMappingURL=ecs-service-discovery.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ecs-service-discovery.js","sourceRoot":"","sources":["../../../lib/utils/ecs-service-discovery.ts"],"names":[],"mappings":"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"}
@@ -86,6 +86,14 @@ export declare function getStackResources(region: string, stackName: string, _aw
86
86
  * @returns true if valid IAM role ARN, false otherwise
87
87
  */
88
88
  export declare function validateRoleArn(arn: string): boolean;
89
+ /**
90
+ * Convert a role name to a full IAM role ARN
91
+ *
92
+ * @param roleNameOrArn - Role name (e.g., "ReadQuiltV2-tf-rc") or existing ARN
93
+ * @param account - AWS account ID
94
+ * @returns Full IAM role ARN
95
+ */
96
+ export declare function toRoleArn(roleNameOrArn: string, account: string): string;
89
97
  /**
90
98
  * Extract Athena workgroups, IAM policies, Glue databases, S3 buckets, and IAM roles from stack resources
91
99
  *
@@ -100,9 +108,11 @@ export declare function validateRoleArn(arn: string): boolean;
100
108
  * - T4BucketWriteRole (AWS::IAM::Role)
101
109
  *
102
110
  * @param resources Stack resource map from getStackResources
111
+ * @param account Optional AWS account ID for converting role names to ARNs
112
+ * @param region Optional AWS region (currently unused but reserved for future use)
103
113
  * @returns Discovered Quilt resources
104
114
  */
105
- export declare function extractQuiltResources(resources: StackResourceMap): DiscoveredQuiltResources;
115
+ export declare function extractQuiltResources(resources: StackResourceMap, account?: string, _region?: string): DiscoveredQuiltResources;
106
116
  /**
107
117
  * Fetch JSON from a URL using native Node.js modules
108
118
  */
@@ -1 +1 @@
1
- {"version":3,"file":"stack-inference.d.ts","sourceRoot":"","sources":["../../../lib/utils/stack-inference.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"stack-inference.d.ts","sourceRoot":"","sources":["../../../lib/utils/stack-inference.ts"],"names":[],"mappings":"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"}
@@ -39,6 +39,7 @@ var __importStar = (this && this.__importStar) || (function () {
39
39
  Object.defineProperty(exports, "__esModule", { value: true });
40
40
  exports.getStackResources = getStackResources;
41
41
  exports.validateRoleArn = validateRoleArn;
42
+ exports.toRoleArn = toRoleArn;
42
43
  exports.extractQuiltResources = extractQuiltResources;
43
44
  exports.fetchJson = fetchJson;
44
45
  exports.findStackByResource = findStackByResource;
@@ -106,6 +107,21 @@ function validateRoleArn(arn) {
106
107
  const arnPattern = /^arn:aws:iam::\d{12}:role\/.+$/;
107
108
  return arnPattern.test(arn);
108
109
  }
110
+ /**
111
+ * Convert a role name to a full IAM role ARN
112
+ *
113
+ * @param roleNameOrArn - Role name (e.g., "ReadQuiltV2-tf-rc") or existing ARN
114
+ * @param account - AWS account ID
115
+ * @returns Full IAM role ARN
116
+ */
117
+ function toRoleArn(roleNameOrArn, account) {
118
+ // If already an ARN, return as-is
119
+ if (validateRoleArn(roleNameOrArn)) {
120
+ return roleNameOrArn;
121
+ }
122
+ // Convert role name to ARN
123
+ return `arn:aws:iam::${account}:role/${roleNameOrArn}`;
124
+ }
109
125
  /**
110
126
  * Extract Athena workgroups, IAM policies, Glue databases, S3 buckets, and IAM roles from stack resources
111
127
  *
@@ -120,9 +136,11 @@ function validateRoleArn(arn) {
120
136
  * - T4BucketWriteRole (AWS::IAM::Role)
121
137
  *
122
138
  * @param resources Stack resource map from getStackResources
139
+ * @param account Optional AWS account ID for converting role names to ARNs
140
+ * @param region Optional AWS region (currently unused but reserved for future use)
123
141
  * @returns Discovered Quilt resources
124
142
  */
125
- function extractQuiltResources(resources) {
143
+ function extractQuiltResources(resources, account, _region) {
126
144
  // Map logical resource IDs to discovered resource properties
127
145
  const resourceMapping = {
128
146
  UserAthenaNonManagedRoleWorkgroup: "athenaUserWorkgroup",
@@ -139,14 +157,19 @@ function extractQuiltResources(resources) {
139
157
  for (const [logicalId, propertyName] of Object.entries(resourceMapping)) {
140
158
  if (resources[logicalId]) {
141
159
  const physicalId = resources[logicalId].physicalResourceId;
142
- // For IAM roles, validate the ARN format before storing
160
+ // For IAM roles, convert role names to ARNs if account ID is available
143
161
  if (propertyName === "readRoleArn" || propertyName === "writeRoleArn") {
144
162
  if (validateRoleArn(physicalId)) {
163
+ // Already a valid ARN
145
164
  discovered[propertyName] = physicalId;
146
165
  }
166
+ else if (account) {
167
+ // Convert role name to ARN using account ID
168
+ discovered[propertyName] = toRoleArn(physicalId, account);
169
+ }
147
170
  else {
148
- // Log warning but don't fail - role ARNs are optional
149
- console.warn(`Warning: Invalid ARN format for ${logicalId}: ${physicalId}`);
171
+ // Log warning if we can't convert - need account ID
172
+ console.warn(`Warning: Cannot convert role name to ARN for ${logicalId}: ${physicalId} (missing account ID)`);
150
173
  }
151
174
  }
152
175
  else {
@@ -1 +1 @@
1
- {"version":3,"file":"stack-inference.js","sourceRoot":"","sources":["../../../lib/utils/stack-inference.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"stack-inference.js","sourceRoot":"","sources":["../../../lib/utils/stack-inference.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,53 @@
1
+ /**
2
+ * Time Formatting Utilities
3
+ *
4
+ * Shared utilities for formatting timestamps in a consistent way
5
+ * across the CLI commands.
6
+ *
7
+ * @module utils/time-format
8
+ */
9
+ /**
10
+ * Format a date/time in local timezone with consistent format
11
+ *
12
+ * @param date - Date to format (Date object, ISO string, or timestamp)
13
+ * @param includeSeconds - Whether to include seconds in the output
14
+ * @returns Formatted date/time string
15
+ */
16
+ export declare function formatLocalDateTime(date: Date | string | number, includeSeconds?: boolean): string;
17
+ /**
18
+ * Format time only (HH:MM:SS) in local timezone
19
+ *
20
+ * @param date - Date to format (Date object, ISO string, or timestamp)
21
+ * @param includeSeconds - Whether to include seconds in the output
22
+ * @returns Formatted time string
23
+ */
24
+ export declare function formatLocalTime(date: Date | string | number, includeSeconds?: boolean): string;
25
+ /**
26
+ * Get the local timezone name
27
+ *
28
+ * @returns Timezone name (e.g., "America/Los_Angeles")
29
+ */
30
+ export declare function getLocalTimezone(): string;
31
+ /**
32
+ * Format a relative time (e.g., "2 minutes ago", "in 5 seconds")
33
+ *
34
+ * @param date - Date to compare (Date object, ISO string, or timestamp)
35
+ * @param baseDate - Base date to compare against (defaults to now)
36
+ * @returns Formatted relative time string
37
+ */
38
+ export declare function formatRelativeTime(date: Date | string | number, baseDate?: Date): string;
39
+ /**
40
+ * Parse a time range string (e.g., "5m", "1h", "2d") to milliseconds
41
+ *
42
+ * @param since - Time range string
43
+ * @returns Milliseconds
44
+ */
45
+ export declare function parseTimeRange(since: string): number;
46
+ /**
47
+ * Format milliseconds to human-readable time range string
48
+ *
49
+ * @param ms - Milliseconds
50
+ * @returns Human-readable string (e.g., "5m", "2h", "3d")
51
+ */
52
+ export declare function formatTimeRange(ms: number): string;
53
+ //# sourceMappingURL=time-format.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"time-format.d.ts","sourceRoot":"","sources":["../../../lib/utils/time-format.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CAC/B,IAAI,EAAE,IAAI,GAAG,MAAM,GAAG,MAAM,EAC5B,cAAc,UAAO,GACtB,MAAM,CAiBR;AAED;;;;;;GAMG;AACH,wBAAgB,eAAe,CAC3B,IAAI,EAAE,IAAI,GAAG,MAAM,GAAG,MAAM,EAC5B,cAAc,UAAO,GACtB,MAAM,CAcR;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,IAAI,MAAM,CAEzC;AAED;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAC9B,IAAI,EAAE,IAAI,GAAG,MAAM,GAAG,MAAM,EAC5B,QAAQ,GAAE,IAAiB,GAC5B,MAAM,CAgCR;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAmBpD;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,CAYlD"}
@@ -0,0 +1,150 @@
1
+ "use strict";
2
+ /**
3
+ * Time Formatting Utilities
4
+ *
5
+ * Shared utilities for formatting timestamps in a consistent way
6
+ * across the CLI commands.
7
+ *
8
+ * @module utils/time-format
9
+ */
10
+ Object.defineProperty(exports, "__esModule", { value: true });
11
+ exports.formatLocalDateTime = formatLocalDateTime;
12
+ exports.formatLocalTime = formatLocalTime;
13
+ exports.getLocalTimezone = getLocalTimezone;
14
+ exports.formatRelativeTime = formatRelativeTime;
15
+ exports.parseTimeRange = parseTimeRange;
16
+ exports.formatTimeRange = formatTimeRange;
17
+ /**
18
+ * Format a date/time in local timezone with consistent format
19
+ *
20
+ * @param date - Date to format (Date object, ISO string, or timestamp)
21
+ * @param includeSeconds - Whether to include seconds in the output
22
+ * @returns Formatted date/time string
23
+ */
24
+ function formatLocalDateTime(date, includeSeconds = true) {
25
+ const dateObj = typeof date === "string" || typeof date === "number" ? new Date(date) : date;
26
+ const options = {
27
+ year: "numeric",
28
+ month: "2-digit",
29
+ day: "2-digit",
30
+ hour: "2-digit",
31
+ minute: "2-digit",
32
+ hour12: false,
33
+ };
34
+ if (includeSeconds) {
35
+ options.second = "2-digit";
36
+ }
37
+ return dateObj.toLocaleString("en-US", options);
38
+ }
39
+ /**
40
+ * Format time only (HH:MM:SS) in local timezone
41
+ *
42
+ * @param date - Date to format (Date object, ISO string, or timestamp)
43
+ * @param includeSeconds - Whether to include seconds in the output
44
+ * @returns Formatted time string
45
+ */
46
+ function formatLocalTime(date, includeSeconds = true) {
47
+ const dateObj = typeof date === "string" || typeof date === "number" ? new Date(date) : date;
48
+ const options = {
49
+ hour: "2-digit",
50
+ minute: "2-digit",
51
+ hour12: false,
52
+ };
53
+ if (includeSeconds) {
54
+ options.second = "2-digit";
55
+ }
56
+ return dateObj.toLocaleTimeString("en-US", options);
57
+ }
58
+ /**
59
+ * Get the local timezone name
60
+ *
61
+ * @returns Timezone name (e.g., "America/Los_Angeles")
62
+ */
63
+ function getLocalTimezone() {
64
+ return Intl.DateTimeFormat().resolvedOptions().timeZone;
65
+ }
66
+ /**
67
+ * Format a relative time (e.g., "2 minutes ago", "in 5 seconds")
68
+ *
69
+ * @param date - Date to compare (Date object, ISO string, or timestamp)
70
+ * @param baseDate - Base date to compare against (defaults to now)
71
+ * @returns Formatted relative time string
72
+ */
73
+ function formatRelativeTime(date, baseDate = new Date()) {
74
+ const dateObj = typeof date === "string" || typeof date === "number" ? new Date(date) : date;
75
+ const diffMs = dateObj.getTime() - baseDate.getTime();
76
+ const absDiffMs = Math.abs(diffMs);
77
+ const seconds = Math.floor(absDiffMs / 1000);
78
+ const minutes = Math.floor(seconds / 60);
79
+ const hours = Math.floor(minutes / 60);
80
+ const days = Math.floor(hours / 24);
81
+ let value;
82
+ let unit;
83
+ if (days > 0) {
84
+ value = days;
85
+ unit = days === 1 ? "day" : "days";
86
+ }
87
+ else if (hours > 0) {
88
+ value = hours;
89
+ unit = hours === 1 ? "hour" : "hours";
90
+ }
91
+ else if (minutes > 0) {
92
+ value = minutes;
93
+ unit = minutes === 1 ? "minute" : "minutes";
94
+ }
95
+ else {
96
+ value = seconds;
97
+ unit = seconds === 1 ? "second" : "seconds";
98
+ }
99
+ if (diffMs < 0) {
100
+ return `${value} ${unit} ago`;
101
+ }
102
+ else {
103
+ return `in ${value} ${unit}`;
104
+ }
105
+ }
106
+ /**
107
+ * Parse a time range string (e.g., "5m", "1h", "2d") to milliseconds
108
+ *
109
+ * @param since - Time range string
110
+ * @returns Milliseconds
111
+ */
112
+ function parseTimeRange(since) {
113
+ const match = since.match(/^(\d+)([mhd])$/);
114
+ if (!match) {
115
+ throw new Error(`Invalid time format: ${since}. Use format like "5m", "1h", or "2d"`);
116
+ }
117
+ const value = parseInt(match[1], 10);
118
+ const unit = match[2];
119
+ switch (unit) {
120
+ case "m":
121
+ return value * 60 * 1000;
122
+ case "h":
123
+ return value * 60 * 60 * 1000;
124
+ case "d":
125
+ return value * 24 * 60 * 60 * 1000;
126
+ default:
127
+ throw new Error(`Invalid time unit: ${unit}`);
128
+ }
129
+ }
130
+ /**
131
+ * Format milliseconds to human-readable time range string
132
+ *
133
+ * @param ms - Milliseconds
134
+ * @returns Human-readable string (e.g., "5m", "2h", "3d")
135
+ */
136
+ function formatTimeRange(ms) {
137
+ const minutes = ms / (60 * 1000);
138
+ const hours = minutes / 60;
139
+ const days = hours / 24;
140
+ if (days >= 1) {
141
+ return `${Math.round(days)}d`;
142
+ }
143
+ else if (hours >= 1) {
144
+ return `${Math.round(hours)}h`;
145
+ }
146
+ else {
147
+ return `${Math.round(minutes)}m`;
148
+ }
149
+ }
150
+ //# sourceMappingURL=time-format.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"time-format.js","sourceRoot":"","sources":["../../../lib/utils/time-format.ts"],"names":[],"mappings":"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"}
package/dist/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@quiltdata/benchling-webhook",
3
- "version": "0.8.0-20251118T054240Z",
3
+ "version": "0.8.2",
4
4
  "description": "AWS CDK deployment for Benchling webhook processing using Fargate - Deploy directly with npx",
5
5
  "main": "dist/lib/index.js",
6
6
  "types": "dist/lib/index.d.ts",
@@ -93,7 +93,8 @@
93
93
  },
94
94
  "dependencies": {
95
95
  "@aws-sdk/client-cloudformation": "^3.920.0",
96
- "@aws-sdk/client-ecs": "^3.932.0",
96
+ "@aws-sdk/client-cloudwatch-logs": "^3.933.0",
97
+ "@aws-sdk/client-ecs": "^3.933.0",
97
98
  "@aws-sdk/client-elastic-load-balancing-v2": "^3.932.0",
98
99
  "@aws-sdk/client-s3": "^3.758.0",
99
100
  "@aws-sdk/client-secrets-manager": "^3.932.0",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@quiltdata/benchling-webhook",
3
- "version": "0.8.0-20251118T054240Z",
3
+ "version": "0.8.2",
4
4
  "description": "AWS CDK deployment for Benchling webhook processing using Fargate - Deploy directly with npx",
5
5
  "main": "dist/lib/index.js",
6
6
  "types": "dist/lib/index.d.ts",
@@ -93,7 +93,8 @@
93
93
  },
94
94
  "dependencies": {
95
95
  "@aws-sdk/client-cloudformation": "^3.920.0",
96
- "@aws-sdk/client-ecs": "^3.932.0",
96
+ "@aws-sdk/client-cloudwatch-logs": "^3.933.0",
97
+ "@aws-sdk/client-ecs": "^3.933.0",
97
98
  "@aws-sdk/client-elastic-load-balancing-v2": "^3.932.0",
98
99
  "@aws-sdk/client-s3": "^3.758.0",
99
100
  "@aws-sdk/client-secrets-manager": "^3.932.0",