@quiltdata/benchling-webhook 0.6.1-20251104T053146Z → 0.6.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.
@@ -0,0 +1,7 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * Check CloudWatch logs for the deployed Benchling webhook ECS service
4
+ * Uses CloudFormation stack outputs to find the correct log group
5
+ */
6
+ import "dotenv/config";
7
+ //# sourceMappingURL=check-logs.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"check-logs.d.ts","sourceRoot":"","sources":["../../bin/check-logs.ts"],"names":[],"mappings":";AACA;;;GAGG;AAEH,OAAO,eAAe,CAAC"}
@@ -1,63 +1,58 @@
1
1
  #!/usr/bin/env node
2
+ "use strict";
2
3
  /**
3
4
  * Check CloudWatch logs for the deployed Benchling webhook ECS service
4
5
  * Uses CloudFormation stack outputs to find the correct log group
5
6
  */
6
-
7
+ Object.defineProperty(exports, "__esModule", { value: true });
7
8
  require("dotenv/config");
8
- const { execSync } = require("child_process");
9
-
9
+ const child_process_1 = require("child_process");
10
10
  const STACK_NAME = "BenchlingWebhookStack";
11
-
12
11
  // Validate required environment variables
13
12
  if (!process.env.CDK_DEFAULT_REGION) {
14
13
  console.error("Error: CDK_DEFAULT_REGION is not set in .env file");
15
14
  console.error("Please set CDK_DEFAULT_REGION in your .env file");
16
15
  process.exit(1);
17
16
  }
18
-
19
17
  const AWS_REGION = process.env.CDK_DEFAULT_REGION;
20
-
21
18
  function getStackOutputs() {
22
19
  try {
23
- const output = execSync(
24
- `aws cloudformation describe-stacks --stack-name ${STACK_NAME} --region ${AWS_REGION} --query 'Stacks[0].Outputs' --output json`,
25
- { encoding: "utf-8" },
26
- );
20
+ const output = (0, child_process_1.execSync)(`aws cloudformation describe-stacks --stack-name ${STACK_NAME} --region ${AWS_REGION} --query 'Stacks[0].Outputs' --output json`, { encoding: "utf-8" });
27
21
  return JSON.parse(output);
28
- } catch (error) {
22
+ }
23
+ catch (_error) {
29
24
  console.error(`Error: Could not get stack outputs for ${STACK_NAME}`);
30
25
  console.error("Make sure the stack is deployed and AWS credentials are configured.");
31
26
  process.exit(1);
32
27
  }
33
28
  }
34
-
35
29
  function getLogGroupFromOutputs(outputs, logType) {
36
30
  let outputKey;
37
31
  if (logType === "ecs") {
38
32
  outputKey = "EcsLogGroup";
39
- } else if (logType === "api") {
33
+ }
34
+ else if (logType === "api") {
40
35
  outputKey = "ApiGatewayLogGroup";
41
- } else if (logType === "api-exec") {
36
+ }
37
+ else if (logType === "api-exec") {
42
38
  outputKey = "ApiGatewayExecutionLogGroup";
43
39
  }
44
-
40
+ else {
41
+ console.error(`Error: Invalid log type '${logType}'`);
42
+ process.exit(1);
43
+ }
45
44
  const logGroupOutput = outputs.find((o) => o.OutputKey === outputKey);
46
-
47
45
  if (!logGroupOutput) {
48
46
  console.error(`Error: Could not find ${outputKey} in stack outputs`);
49
47
  console.error("Make sure the stack has been deployed with the latest changes.");
50
48
  process.exit(1);
51
49
  }
52
-
53
50
  return logGroupOutput.OutputValue;
54
51
  }
55
-
56
52
  function printStackInfo(outputs, logGroup, logType) {
57
53
  console.log("=".repeat(80));
58
54
  console.log("Benchling Webhook Stack Information");
59
55
  console.log("=".repeat(80));
60
-
61
56
  const clusterName = outputs.find((o) => o.OutputKey === "FargateServiceClusterNameCD3B109F");
62
57
  const serviceName = outputs.find((o) => o.OutputKey === "FargateServiceServiceName24CFD869");
63
58
  const webhookEndpoint = outputs.find((o) => o.OutputKey === "WebhookEndpoint");
@@ -66,23 +61,27 @@ function printStackInfo(outputs, logGroup, logType) {
66
61
  const apiLogGroup = outputs.find((o) => o.OutputKey === "ApiGatewayLogGroup");
67
62
  const apiExecLogGroup = outputs.find((o) => o.OutputKey === "ApiGatewayExecutionLogGroup");
68
63
  const albDns = outputs.find((o) => o.OutputKey === "LoadBalancerDNS");
69
-
70
- if (clusterName) console.log(`Cluster: ${clusterName.OutputValue}`);
71
- if (serviceName) console.log(`Service: ${serviceName.OutputValue}`);
72
- if (webhookEndpoint) console.log(`Endpoint: ${webhookEndpoint.OutputValue}`);
73
- if (albDns) console.log(`ALB DNS: ${albDns.OutputValue}`);
74
- if (version) console.log(`Version: ${version.OutputValue}`);
75
-
64
+ if (clusterName)
65
+ console.log(`Cluster: ${clusterName.OutputValue}`);
66
+ if (serviceName)
67
+ console.log(`Service: ${serviceName.OutputValue}`);
68
+ if (webhookEndpoint)
69
+ console.log(`Endpoint: ${webhookEndpoint.OutputValue}`);
70
+ if (albDns)
71
+ console.log(`ALB DNS: ${albDns.OutputValue}`);
72
+ if (version)
73
+ console.log(`Version: ${version.OutputValue}`);
76
74
  console.log("");
77
75
  console.log("Log Groups:");
78
- if (ecsLogGroup) console.log(` ECS: ${ecsLogGroup.OutputValue}${logType === "ecs" ? " (viewing)" : ""}`);
79
- if (apiLogGroup) console.log(` API Access: ${apiLogGroup.OutputValue}${logType === "api" ? " (viewing)" : ""}`);
80
- if (apiExecLogGroup) console.log(` API Exec: ${apiExecLogGroup.OutputValue}${logType === "api-exec" ? " (viewing)" : ""}`);
81
-
76
+ if (ecsLogGroup)
77
+ console.log(` ECS: ${ecsLogGroup.OutputValue}${logType === "ecs" ? " (viewing)" : ""}`);
78
+ if (apiLogGroup)
79
+ console.log(` API Access: ${apiLogGroup.OutputValue}${logType === "api" ? " (viewing)" : ""}`);
80
+ if (apiExecLogGroup)
81
+ console.log(` API Exec: ${apiExecLogGroup.OutputValue}${logType === "api-exec" ? " (viewing)" : ""}`);
82
82
  console.log("=".repeat(80));
83
83
  console.log("");
84
84
  }
85
-
86
85
  function main() {
87
86
  const args = process.argv.slice(2);
88
87
  const logType = args.find((arg) => arg.startsWith("--type="))?.split("=")[1] || "all";
@@ -90,27 +89,22 @@ function main() {
90
89
  const since = args.find((arg) => arg.startsWith("--since="))?.split("=")[1] || "5m";
91
90
  const follow = args.includes("--follow") || args.includes("-f");
92
91
  const tail = args.find((arg) => arg.startsWith("--tail="))?.split("=")[1] || "100";
93
-
94
92
  // Validate log type
95
93
  if (!["ecs", "api", "api-exec", "all"].includes(logType)) {
96
94
  console.error("Error: --type must be 'ecs', 'api', 'api-exec', or 'all'");
97
95
  process.exit(1);
98
96
  }
99
-
100
97
  // Get stack outputs
101
98
  const outputs = getStackOutputs();
102
-
103
99
  // Handle 'all' type - show all three log groups
104
100
  if (logType === "all") {
105
101
  printStackInfo(outputs, null, "all");
106
102
  console.log("Showing logs from all sources (most recent first):\n");
107
-
108
103
  const logGroupDefs = [
109
104
  { type: "ECS", group: outputs.find((o) => o.OutputKey === "EcsLogGroup")?.OutputValue },
110
105
  { type: "API-Access", group: outputs.find((o) => o.OutputKey === "ApiGatewayLogGroup")?.OutputValue },
111
106
  { type: "API-Exec", group: outputs.find((o) => o.OutputKey === "ApiGatewayExecutionLogGroup")?.OutputValue },
112
107
  ];
113
-
114
108
  // Warn about missing log groups
115
109
  const missingGroups = logGroupDefs.filter(lg => !lg.group);
116
110
  if (missingGroups.length > 0) {
@@ -120,63 +114,60 @@ function main() {
120
114
  });
121
115
  console.log("");
122
116
  }
123
-
124
117
  const logGroups = logGroupDefs.filter(lg => lg.group);
125
-
126
118
  for (const { type, group } of logGroups) {
127
119
  console.log(`\n${"=".repeat(80)}`);
128
120
  console.log(`${type}: ${group}`);
129
121
  console.log("=".repeat(80));
130
-
131
122
  let command = `aws logs tail "${group}"`;
132
123
  command += ` --region ${AWS_REGION}`;
133
124
  command += ` --since ${since}`;
134
- command += ` --format short`;
125
+ command += " --format short";
135
126
  if (filterPattern) {
136
127
  command += ` --filter-pattern "${filterPattern}"`;
137
128
  }
138
129
  command += ` 2>&1 | tail -${tail}`;
139
-
140
130
  try {
141
- const output = execSync(command, { encoding: "utf-8", shell: "/bin/bash" });
131
+ const output = (0, child_process_1.execSync)(command, { encoding: "utf-8", shell: "/bin/bash" });
142
132
  if (output.trim()) {
143
133
  console.log(output);
144
- } else {
134
+ }
135
+ else {
145
136
  console.log(`(No logs in the last ${since})`);
146
137
  }
147
- } catch (error) {
148
- console.log(`Error reading ${type} logs: ${error.message}`);
138
+ }
139
+ catch (error) {
140
+ const errorMessage = error instanceof Error ? error.message : String(error);
141
+ console.log(`Error reading ${type} logs: ${errorMessage}`);
149
142
  }
150
143
  }
151
144
  return;
152
145
  }
153
-
154
146
  const logGroup = getLogGroupFromOutputs(outputs, logType);
155
147
  printStackInfo(outputs, logGroup, logType);
156
-
157
148
  // Build AWS logs command
158
149
  let command = `aws logs tail ${logGroup}`;
159
150
  command += ` --region ${AWS_REGION}`;
160
151
  command += ` --since ${since}`;
161
- command += ` --format short`;
162
-
152
+ command += " --format short";
163
153
  if (filterPattern) {
164
154
  command += ` --filter-pattern "${filterPattern}"`;
165
155
  }
166
-
167
156
  if (follow) {
168
157
  command += " --follow";
169
158
  console.log("Following logs (Press Ctrl+C to stop)...\n");
170
- } else {
159
+ }
160
+ else {
171
161
  command += ` | tail -${tail}`;
172
162
  console.log(`Showing last ${tail} log entries from the past ${since}...\n`);
173
163
  }
174
-
175
164
  // Execute logs command
176
165
  try {
177
- execSync(command, { stdio: "inherit" });
178
- } catch (error) {
179
- if (error.status !== 130) {
166
+ (0, child_process_1.execSync)(command, { stdio: "inherit" });
167
+ }
168
+ catch (error) {
169
+ const hasStatus = error && typeof error === "object" && "status" in error;
170
+ if (hasStatus && error.status !== 130) {
180
171
  // Ignore Ctrl+C exit (status 130)
181
172
  console.error("\nError fetching logs. Make sure:");
182
173
  console.error("1. The stack is deployed");
@@ -186,7 +177,6 @@ function main() {
186
177
  }
187
178
  }
188
179
  }
189
-
190
180
  function printHelp() {
191
181
  console.log("Usage: npm run logs [options]");
192
182
  console.log("");
@@ -214,18 +204,19 @@ function printHelp() {
214
204
  console.log(" npm run logs -- --type=ecs --follow # Follow ECS logs");
215
205
  console.log(" npm run logs -- --type=api-exec --since=10m # Last 10 min of execution logs");
216
206
  }
217
-
218
207
  if (require.main === module) {
219
208
  const args = process.argv.slice(2);
220
209
  if (args.includes("--help") || args.includes("-h")) {
221
210
  printHelp();
222
211
  process.exit(0);
223
212
  }
224
-
225
213
  try {
226
214
  main();
227
- } catch (error) {
228
- console.error("Error:", error.message);
215
+ }
216
+ catch (error) {
217
+ const errorMessage = error instanceof Error ? error.message : String(error);
218
+ console.error("Error:", errorMessage);
229
219
  process.exit(1);
230
220
  }
231
221
  }
222
+ //# sourceMappingURL=check-logs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"check-logs.js","sourceRoot":"","sources":["../../bin/check-logs.ts"],"names":[],"mappings":"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"}
@@ -92,7 +92,7 @@ async function waitForWorkflow(commitSha, timeoutMinutes = 15) {
92
92
  if (status === "completed") {
93
93
  console.log("\n");
94
94
  if (conclusion === "success") {
95
- console.log(`✅ CI workflow completed successfully!`);
95
+ console.log("✅ CI workflow completed successfully!");
96
96
  console.log(` Run: ${workflowUrl}`);
97
97
  return true;
98
98
  }
@@ -123,10 +123,10 @@ async function waitForWorkflow(commitSha, timeoutMinutes = 15) {
123
123
  console.error(` Check status at: ${workflowUrl}`);
124
124
  }
125
125
  else {
126
- console.error(` Check status at: https://github.com/quiltdata/benchling-webhook/actions`);
126
+ console.error(" Check status at: https://github.com/quiltdata/benchling-webhook/actions");
127
127
  }
128
128
  console.error("\n Once the workflow completes, you can deploy manually with:");
129
- console.error(` npm run cli -- --image-tag <version> --yes`);
129
+ console.error(" npm run cli -- --image-tag <version> --yes");
130
130
  process.exit(1);
131
131
  }
132
132
  async function main() {
@@ -208,14 +208,14 @@ async function main() {
208
208
  console.log(`✅ Created git tag ${devTag}`);
209
209
  // 3. Push tag to origin (triggers CI)
210
210
  console.log("");
211
- console.log(`Step 3: Pushing tag to origin (this triggers CI/CD)...`);
211
+ console.log("Step 3: Pushing tag to origin (this triggers CI/CD)...");
212
212
  run(`git push origin ${devTag}`);
213
213
  console.log(`✅ Pushed tag ${devTag} to origin`);
214
214
  console.log(" CI will now build Docker image for x86_64 (AWS-compatible)");
215
215
  }
216
216
  // 4. Wait for CI to complete
217
217
  console.log("");
218
- console.log(`Step 4: Waiting for CI to build Docker image...`);
218
+ console.log("Step 4: Waiting for CI to build Docker image...");
219
219
  // Get the commit SHA for the tag (use ^{commit} to dereference annotated tags)
220
220
  const commitShaOutput = run(`git rev-parse ${devTag}^{commit}`, { silent: true });
221
221
  if (!commitShaOutput) {
@@ -226,7 +226,7 @@ async function main() {
226
226
  await waitForWorkflow(commitSha);
227
227
  // 5. Deploy CDK stack with CI-built image tag using secrets-only mode
228
228
  console.log("");
229
- console.log(`Step 5: Deploying CDK stack with CI-built image (secrets-only mode)...`);
229
+ console.log("Step 5: Deploying CDK stack with CI-built image (secrets-only mode)...");
230
230
  process.chdir((0, path_1.join)(__dirname, ".."));
231
231
  // Use the full version with timestamp (without 'v' prefix)
232
232
  const imageTag = devTag.replace(/^v/, "");
@@ -0,0 +1,16 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * Get environment configuration from a Quilt catalog's config.json
4
+ *
5
+ * This script fetches config.json from a Quilt catalog URL and attempts to:
6
+ * 1. Parse the configuration
7
+ * 2. Query AWS CloudFormation to find the stack using resource identifiers
8
+ * 3. Extract stack outputs and parameters
9
+ * 4. Generate environment variables for .env
10
+ *
11
+ * Usage:
12
+ * node bin/get-env.js https://quilt-catalog.yourcompany.com
13
+ * node bin/get-env.js https://quilt-catalog.yourcompany.com --write
14
+ */
15
+ export * from "../lib/utils/stack-inference";
16
+ //# sourceMappingURL=get-env.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-env.d.ts","sourceRoot":"","sources":["../../bin/get-env.ts"],"names":[],"mappings":";AACA;;;;;;;;;;;;GAYG;AA+KH,cAAc,8BAA8B,CAAC"}
@@ -1,4 +1,5 @@
1
1
  #!/usr/bin/env node
2
+ "use strict";
2
3
  /**
3
4
  * Get environment configuration from a Quilt catalog's config.json
4
5
  *
@@ -12,36 +13,69 @@
12
13
  * node bin/get-env.js https://quilt-catalog.yourcompany.com
13
14
  * node bin/get-env.js https://quilt-catalog.yourcompany.com --write
14
15
  */
15
-
16
- const fs = require("fs");
17
- const path = require("path");
18
-
16
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
17
+ if (k2 === undefined) k2 = k;
18
+ var desc = Object.getOwnPropertyDescriptor(m, k);
19
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
20
+ desc = { enumerable: true, get: function() { return m[k]; } };
21
+ }
22
+ Object.defineProperty(o, k2, desc);
23
+ }) : (function(o, m, k, k2) {
24
+ if (k2 === undefined) k2 = k;
25
+ o[k2] = m[k];
26
+ }));
27
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
28
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
29
+ }) : function(o, v) {
30
+ o["default"] = v;
31
+ });
32
+ var __importStar = (this && this.__importStar) || (function () {
33
+ var ownKeys = function(o) {
34
+ ownKeys = Object.getOwnPropertyNames || function (o) {
35
+ var ar = [];
36
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
37
+ return ar;
38
+ };
39
+ return ownKeys(o);
40
+ };
41
+ return function (mod) {
42
+ if (mod && mod.__esModule) return mod;
43
+ var result = {};
44
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
45
+ __setModuleDefault(result, mod);
46
+ return result;
47
+ };
48
+ })();
49
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
50
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
51
+ };
52
+ Object.defineProperty(exports, "__esModule", { value: true });
53
+ const fs = __importStar(require("fs"));
54
+ const path = __importStar(require("path"));
19
55
  // Import utility functions from lib/utils
20
- const { inferStackConfig } = require("../lib/utils/stack-inference");
21
-
56
+ const stack_inference_1 = require("../lib/utils/stack-inference");
22
57
  // Parse command line arguments (only when run directly)
23
- let args, catalogUrl, outputFile, writeFile;
58
+ let args;
59
+ let catalogUrl;
60
+ let outputFile;
61
+ let writeFile;
24
62
  if (require.main === module) {
25
63
  args = process.argv.slice(2);
26
64
  catalogUrl = args.find((arg) => !arg.startsWith("--"));
27
65
  outputFile = args.find((arg) => arg.startsWith("--output="))?.split("=")[1];
28
66
  writeFile = args.includes("--write");
29
-
30
67
  if (!catalogUrl || args.includes("--help") || args.includes("-h")) {
31
68
  printHelp();
32
69
  process.exit(catalogUrl ? 0 : 1);
33
70
  }
34
71
  }
35
-
36
72
  // CLI-specific functions moved to lib/utils/stack-inference.ts
37
73
  // Re-export for backward compatibility if needed
38
-
39
74
  /**
40
75
  * Format environment variables for output
41
76
  */
42
77
  function formatEnvVars(vars) {
43
78
  const lines = [];
44
-
45
79
  lines.push("# ==============================================================================");
46
80
  lines.push("# INFERRED CONFIGURATION");
47
81
  lines.push("# ==============================================================================");
@@ -52,15 +86,14 @@ function formatEnvVars(vars) {
52
86
  lines.push("# Some values may need manual verification or completion.");
53
87
  lines.push("# ==============================================================================");
54
88
  lines.push("");
55
-
56
89
  for (const [key, value] of Object.entries(vars)) {
57
90
  if (key.startsWith("#")) {
58
91
  lines.push(`${key}: ${value}`);
59
- } else {
92
+ }
93
+ else {
60
94
  lines.push(`${key}=${value}`);
61
95
  }
62
96
  }
63
-
64
97
  lines.push("");
65
98
  lines.push("# ==============================================================================");
66
99
  lines.push("# REQUIRED VALUES NOT INFERRED - Must be filled manually");
@@ -75,10 +108,8 @@ function formatEnvVars(vars) {
75
108
  lines.push("ENABLE_WEBHOOK_VERIFICATION=true");
76
109
  lines.push("BENCHLING_TEST_ENTRY=etr_123456789");
77
110
  lines.push("");
78
-
79
111
  return lines.join("\n");
80
112
  }
81
-
82
113
  /**
83
114
  * Print help
84
115
  */
@@ -111,17 +142,17 @@ function printHelp() {
111
142
  console.log(" - AWS credentials with CloudFormation read permissions");
112
143
  console.log(" - Network access to the catalog URL");
113
144
  }
114
-
115
145
  /**
116
146
  * Main execution
117
147
  */
118
148
  async function main() {
149
+ if (!catalogUrl) {
150
+ throw new Error("Catalog URL is required");
151
+ }
119
152
  try {
120
- const result = await inferStackConfig(catalogUrl);
121
-
153
+ const result = await (0, stack_inference_1.inferStackConfig)(catalogUrl);
122
154
  // Format output
123
155
  const output = formatEnvVars(result.inferredVars);
124
-
125
156
  // Print summary
126
157
  console.log("=".repeat(80));
127
158
  console.log("INFERRED CONFIGURATION");
@@ -129,12 +160,10 @@ async function main() {
129
160
  console.log("");
130
161
  console.log(output);
131
162
  console.log("");
132
-
133
163
  // Write to file if requested
134
164
  const targetFile = outputFile || (writeFile ? "env.inferred" : null);
135
165
  if (targetFile) {
136
166
  const fullPath = path.resolve(targetFile);
137
-
138
167
  // Check if .env already exists and warn before proceeding
139
168
  const envPath = path.resolve(".env");
140
169
  if (fs.existsSync(envPath)) {
@@ -142,7 +171,6 @@ async function main() {
142
171
  console.log(` Writing to ${targetFile} instead to avoid overwriting your configuration.`);
143
172
  console.log("");
144
173
  }
145
-
146
174
  fs.writeFileSync(fullPath, output);
147
175
  console.log("=".repeat(80));
148
176
  console.log(`✓ Configuration written to: ${fullPath}`);
@@ -154,27 +182,29 @@ async function main() {
154
182
  if (fs.existsSync(envPath)) {
155
183
  console.log(" 3. Carefully merge with your existing .env file (DO NOT overwrite!)");
156
184
  console.log(" Compare: diff .env env.inferred");
157
- } else {
185
+ }
186
+ else {
158
187
  console.log(" 3. Copy to .env when ready: cp env.inferred .env");
159
188
  }
160
189
  console.log("");
161
- } else {
190
+ }
191
+ else {
162
192
  console.log("=".repeat(80));
163
193
  console.log("To save this configuration, run:");
164
194
  console.log(` node bin/get-env.js ${catalogUrl} --write`);
165
195
  console.log("=".repeat(80));
166
196
  console.log("");
167
197
  }
168
-
169
- } catch (error) {
170
- console.error("Error:", error.message);
198
+ }
199
+ catch (error) {
200
+ const err = error;
201
+ console.error("Error:", err.message);
171
202
  process.exit(1);
172
203
  }
173
204
  }
174
-
175
205
  if (require.main === module) {
176
206
  main();
177
207
  }
178
-
179
208
  // For backward compatibility, re-export from the new location
180
- module.exports = require("../lib/utils/stack-inference");
209
+ __exportStar(require("../lib/utils/stack-inference"), exports);
210
+ //# sourceMappingURL=get-env.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-env.js","sourceRoot":"","sources":["../../bin/get-env.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,20 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * NPM publish script with dev/prod modes
4
+ *
5
+ * By default, publishes with 'dev' tag (prerelease).
6
+ * Use --prod to publish as 'latest' (production).
7
+ * Use --check to view current package status without publishing.
8
+ *
9
+ * Prerequisites:
10
+ * 1. You must have an NPM access token with publish permissions
11
+ * 2. Set the token as environment variable: NPM_TOKEN=your_token_here
12
+ *
13
+ * Usage:
14
+ * npm run publish # Publish as dev (prerelease)
15
+ * npm run publish -- --prod # Publish as latest (production)
16
+ * npm run publish -- --check # Check package status only
17
+ * npm run publish -- --dry-run # Test without publishing
18
+ */
19
+ export {};
20
+ //# sourceMappingURL=publish.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"publish.d.ts","sourceRoot":"","sources":["../../bin/publish.ts"],"names":[],"mappings":";AAEA;;;;;;;;;;;;;;;;GAgBG"}