link2aws 1.0.23 → 1.0.25

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.
Files changed (3) hide show
  1. package/README.md +6 -2
  2. package/link2aws.js +17 -11
  3. package/package.json +1 -1
package/README.md CHANGED
@@ -6,7 +6,7 @@ Copy/paste ARN, get direct link to AWS console
6
6
  <img src="screenshot.png" alt="Screenshot of link2aws.github.io" />
7
7
  </a>
8
8
 
9
- Copyright (c) 2020, Felix Kaiser. License: [ISC](https://spdx.org/licenses/ISC.html)
9
+ Copyright (c) 2020-2026, Felix Kaiser. License: [ISC](https://spdx.org/licenses/ISC.html)
10
10
 
11
11
  ![Node.js CI](https://github.com/link2aws/link2aws.github.io/workflows/Node.js%20CI/badge.svg)
12
12
 
@@ -83,4 +83,8 @@ Pull requests welcome!
83
83
  ```
84
84
  npm install
85
85
  node_modules/nyc/bin/nyc.js --reporter=text node_modules/mocha/bin/mocha test/test.js
86
- ```
86
+ ```
87
+
88
+ ## Other languages
89
+
90
+ Also see our [Rust library](https://crates.io/crates/link2aws).
package/link2aws.js CHANGED
@@ -57,8 +57,13 @@ class ARN {
57
57
  }
58
58
  }
59
59
 
60
- // ...:resource-type/resource-id (resource-id can contain slashes!)
61
- else if (typeof (tokens[5]) != 'undefined' && tokens[5].indexOf('/') > 0) {
60
+ // ...:resource-type/resource-id (common case)
61
+ // ...:/resource-type/resource-id (apigateway)
62
+ // resource-id can contain slashes.
63
+ else if (typeof (tokens[5]) != 'undefined' && tokens[5].slice(1).indexOf('/') >= 0) {
64
+ if (tokens[5].startsWith('/')) {
65
+ tokens[5] = tokens[5].slice(1);
66
+ }
62
67
  this.resource_type = tokens[5].slice(0, tokens[5].indexOf('/'));
63
68
  this.resource = tokens[5].slice(tokens[5].indexOf('/') + 1, tokens[5].length);
64
69
  this.hasPath = true;
@@ -164,7 +169,7 @@ class ARN {
164
169
  "analyzer": () => `https://${this.region}.${this.console}/access-analyzer/home?region=${this.region}#/analyzer/${this.resource}`,
165
170
  },
166
171
  "acm": { // AWS Certificate Manager
167
- "certificate": () => `https://${this.console}/acm/home?region=${this.region}#/?id=${this.resource}`,
172
+ "certificate": () => `https://${this.console}/acm/home?region=${this.region}#/certificates/${this.resource}`,
168
173
  },
169
174
  "acm-pca": { // AWS Certificate Manager Private Certificate Authority
170
175
  "certificate-authority": null,
@@ -182,7 +187,7 @@ class ARN {
182
187
  },
183
188
  },
184
189
  "apigateway": { // Manage Amazon API Gateway
185
- "": null,
190
+ "restapis": () => `https://${this.region}.${this.console}/apigateway/main/apis/${this.resource}/resources?api=${this.resource}&region=${this.region}`,
186
191
  },
187
192
  "appconfig": { // AWS AppConfig
188
193
  "application": null,
@@ -287,7 +292,7 @@ class ARN {
287
292
  },
288
293
  "codebuild": { // AWS CodeBuild
289
294
  "build": null,
290
- "project": null,
295
+ "project": () => `https://${this.region}.${this.console}/codesuite/codebuild/projects/${this.resource}`,
291
296
  "report": null,
292
297
  "report-group": null,
293
298
  },
@@ -435,6 +440,7 @@ class ARN {
435
440
  "dedicated-host": null,
436
441
  "dhcp-options": null,
437
442
  "elastic-gpu": null,
443
+ "eip-allocation": () => `https://${this.region}.${this.console}/ec2/home?region=${this.region}#Addresses:v=3;search=:${this.resource}`,
438
444
  "fpga-image": null,
439
445
  "image": () => `https://${this.region}.${this.console}/ec2/home?region=${this.region}#ImageDetails:imageId=${this.resource}`,
440
446
  "instance": () => `https://${this.region}.${this.console}/ec2/home?region=${this.region}#InstanceDetails:instanceId=${this.resource}`,
@@ -475,7 +481,7 @@ class ARN {
475
481
  "vpn-gateway": null,
476
482
  },
477
483
  "ecr": { // Amazon Elastic Container Registry
478
- "repository": null,
484
+ "repository": () => `https://${this.region}.${this.console}/ecr/repositories/private/${this.account}/${this.resource}`,
479
485
  },
480
486
  "ecs": { // Amazon Elastic Container Service
481
487
  "cluster": () => `https://${this.region}.${this.console}/ecs/v2/clusters/${this.resource}?region=${this.region}`,
@@ -502,7 +508,7 @@ class ARN {
502
508
  "application": null,
503
509
  "applicationversion": null,
504
510
  "configurationtemplate": null,
505
- "environment": null,
511
+ "environment": () => `https://${this.region}.${this.console}/elasticbeanstalk/home?region=${this.region}#/environments`,
506
512
  "platform": null,
507
513
  "solutionstack": null,
508
514
  },
@@ -526,7 +532,7 @@ class ARN {
526
532
  "preset": null,
527
533
  },
528
534
  "es": { // Amazon Elasticsearch Service
529
- "domain": null,
535
+ "domain": () => `https://${this.region}.${this.console}/aos/home?region=${this.region}#opensearch/domains/${this.resource}`,
530
536
  },
531
537
  "events": { // Amazon EventBridge
532
538
  "event-bus": null,
@@ -579,7 +585,7 @@ class ARN {
579
585
  "crawler": null,
580
586
  "database": null,
581
587
  "devendpoint": null,
582
- "job": null,
588
+ "job": () => `https://${this.region}.${this.console}/gluestudio/home?region=${this.region}#/editor/job/${this.resource}/script`,
583
589
  "mlTransform": null,
584
590
  "table": null,
585
591
  "tableVersion": null,
@@ -691,7 +697,7 @@ class ARN {
691
697
  "index": null,
692
698
  },
693
699
  "kinesis": { // Amazon Kinesis
694
- "stream": null,
700
+ "stream": () => `https://${this.region}.console.aws.amazon.com/kinesis/home?region=${this.region}#/streams/details/${this.resource}/details`,
695
701
  },
696
702
  "kinesisanalytics": { // Amazon Kinesis Analytics V2
697
703
  "application": null,
@@ -870,7 +876,7 @@ class ARN {
870
876
  "cluster": () => `https://${this.console}/rds/home?region=${this.region}#database:id=${this.resource};is-cluster=true`,
871
877
  "cluster-endpoint": null,
872
878
  "cluster-pg": null,
873
- "cluster-snapshot": null,
879
+ "cluster-snapshot": () => `https://${this.console}/rds/home?region=${this.region}#db-snapshot:id=${this.resource}`,
874
880
  "db": () => `https://${this.console}/rds/home?region=${this.region}#database:id=${this.resource}`,
875
881
  "db-proxy": null,
876
882
  "es": null,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "link2aws",
3
- "version": "1.0.23",
3
+ "version": "1.0.25",
4
4
  "description": "Convert ARN (Amazon Resource Name) to AWS Console link",
5
5
  "main": "link2aws.js",
6
6
  "directories": {