@mavogel/cdk-vscode-server 0.0.62 → 0.0.63

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 (99) hide show
  1. package/.jsii +117 -178
  2. package/API.md +96 -199
  3. package/CLAUDE.md +214 -57
  4. package/README.md +39 -1
  5. package/assets/idle-monitor-enabler/idle-monitor-enabler.lambda/index.js +67 -0
  6. package/assets/installer/installer.lambda/index.js +67 -30
  7. package/awslint.json +5 -0
  8. package/examples/git-repo/main.ts +30 -0
  9. package/integ-tests/integ.al2023.ts.snapshot/IntegSetupVSCodeOnAl2023DefaultTestDeployAssert74D8F645.assets.json +2 -2
  10. package/integ-tests/integ.al2023.ts.snapshot/IntegSetupVSCodeOnAl2023DefaultTestDeployAssert74D8F645.template.json +1 -1
  11. package/integ-tests/integ.al2023.ts.snapshot/IntegTestStackAl2023.assets.json +8 -8
  12. package/integ-tests/integ.al2023.ts.snapshot/IntegTestStackAl2023.template.json +257 -94
  13. package/integ-tests/{integ.stop-on-idle.ts.snapshot/asset.33da23274e25bd9f43638c5d83dad26e3931cbe78d462ffd9a9f565e948b4f5f.lambda → integ.al2023.ts.snapshot/asset.2f99f38311da357eaaea1284d67c759759324dec4a1cd11621d9c59eea9e81df.lambda}/index.js +67 -30
  14. package/integ-tests/{integ.ubuntu.ts.snapshot/asset.0ad50fc42afd768c3d0bfdd4701e43284fb077a25f19eea1e8c51a5ca36ebfe4 → integ.al2023.ts.snapshot/asset.efac30c7091c58fed492058fa6403c14f7e58aab8cf4fd595d838b8d5eeec2b9}/index.js +50 -25
  15. package/integ-tests/integ.al2023.ts.snapshot/integ.json +1 -1
  16. package/integ-tests/integ.al2023.ts.snapshot/manifest.json +19 -3
  17. package/integ-tests/integ.al2023.ts.snapshot/tree.json +1 -1
  18. package/integ-tests/integ.custom-domain.ts.snapshot/IntegSetupVSCodeOnCustomDomainDefaultTestDeployAssert6982D514.assets.json +2 -2
  19. package/integ-tests/integ.custom-domain.ts.snapshot/IntegSetupVSCodeOnCustomDomainDefaultTestDeployAssert6982D514.template.json +1 -1
  20. package/integ-tests/integ.custom-domain.ts.snapshot/IntegTestStackCustomDomain.assets.json +8 -8
  21. package/integ-tests/integ.custom-domain.ts.snapshot/IntegTestStackCustomDomain.template.json +270 -94
  22. package/integ-tests/{integ.ubuntu.ts.snapshot/asset.33da23274e25bd9f43638c5d83dad26e3931cbe78d462ffd9a9f565e948b4f5f.lambda → integ.custom-domain.ts.snapshot/asset.2f99f38311da357eaaea1284d67c759759324dec4a1cd11621d9c59eea9e81df.lambda}/index.js +67 -30
  23. package/integ-tests/{integ.al2023.ts.snapshot/asset.0ad50fc42afd768c3d0bfdd4701e43284fb077a25f19eea1e8c51a5ca36ebfe4 → integ.custom-domain.ts.snapshot/asset.efac30c7091c58fed492058fa6403c14f7e58aab8cf4fd595d838b8d5eeec2b9}/index.js +50 -25
  24. package/integ-tests/integ.custom-domain.ts.snapshot/integ.json +1 -1
  25. package/integ-tests/integ.custom-domain.ts.snapshot/manifest.json +19 -3
  26. package/integ-tests/integ.custom-domain.ts.snapshot/tree.json +1 -1
  27. package/integ-tests/integ.stop-on-idle.ts +1 -4
  28. package/integ-tests/integ.stop-on-idle.ts.snapshot/IntegStopOnIdleFunctionalityDefaultTestDeployAssertEECF3FC0.assets.json +2 -2
  29. package/integ-tests/integ.stop-on-idle.ts.snapshot/IntegStopOnIdleFunctionalityDefaultTestDeployAssertEECF3FC0.template.json +4 -4
  30. package/integ-tests/integ.stop-on-idle.ts.snapshot/IntegTestStackStopOnIdle.assets.json +23 -9
  31. package/integ-tests/integ.stop-on-idle.ts.snapshot/IntegTestStackStopOnIdle.template.json +755 -194
  32. package/integ-tests/integ.stop-on-idle.ts.snapshot/asset.22c8a6c357b704e370bef317ae1b52c59f684aa7640422a3d1dfe813d1f77853.lambda/index.js +67 -0
  33. package/integ-tests/{integ.custom-domain.ts.snapshot/asset.33da23274e25bd9f43638c5d83dad26e3931cbe78d462ffd9a9f565e948b4f5f.lambda → integ.stop-on-idle.ts.snapshot/asset.2f99f38311da357eaaea1284d67c759759324dec4a1cd11621d9c59eea9e81df.lambda}/index.js +67 -30
  34. package/integ-tests/integ.stop-on-idle.ts.snapshot/manifest.json +353 -72
  35. package/integ-tests/integ.stop-on-idle.ts.snapshot/tree.json +1 -1
  36. package/integ-tests/integ.ubuntu.ts.snapshot/IntegSetupVSCodeOnUbuntuDefaultTestDeployAssertFF8DF2C5.assets.json +2 -2
  37. package/integ-tests/integ.ubuntu.ts.snapshot/IntegSetupVSCodeOnUbuntuDefaultTestDeployAssertFF8DF2C5.template.json +1 -1
  38. package/integ-tests/integ.ubuntu.ts.snapshot/IntegTestStackUbuntu22.assets.json +8 -8
  39. package/integ-tests/integ.ubuntu.ts.snapshot/IntegTestStackUbuntu22.template.json +270 -94
  40. package/integ-tests/{integ.al2023.ts.snapshot/asset.33da23274e25bd9f43638c5d83dad26e3931cbe78d462ffd9a9f565e948b4f5f.lambda → integ.ubuntu.ts.snapshot/asset.2f99f38311da357eaaea1284d67c759759324dec4a1cd11621d9c59eea9e81df.lambda}/index.js +67 -30
  41. package/integ-tests/{integ.custom-domain.ts.snapshot/asset.0ad50fc42afd768c3d0bfdd4701e43284fb077a25f19eea1e8c51a5ca36ebfe4 → integ.ubuntu.ts.snapshot/asset.efac30c7091c58fed492058fa6403c14f7e58aab8cf4fd595d838b8d5eeec2b9}/index.js +50 -25
  42. package/integ-tests/integ.ubuntu.ts.snapshot/integ.json +1 -1
  43. package/integ-tests/integ.ubuntu.ts.snapshot/manifest.json +19 -3
  44. package/integ-tests/integ.ubuntu.ts.snapshot/tree.json +1 -1
  45. package/integ-tests/integ.ubuntu24.ts +69 -0
  46. package/integ-tests/integ.ubuntu24.ts.snapshot/IntegSetupVSCodeOnUbuntuDefaultTestDeployAssertFF8DF2C5.assets.json +33 -0
  47. package/integ-tests/integ.ubuntu24.ts.snapshot/IntegSetupVSCodeOnUbuntuDefaultTestDeployAssertFF8DF2C5.template.json +337 -0
  48. package/integ-tests/integ.ubuntu24.ts.snapshot/IntegTestStackUbuntu24.assets.json +118 -0
  49. package/integ-tests/integ.ubuntu24.ts.snapshot/IntegTestStackUbuntu24.template.json +2725 -0
  50. package/integ-tests/integ.ubuntu24.ts.snapshot/asset.2819175352ad1ce0dae768e83fc328fb70fb5f10b4a8ff0ccbcb791f02b0716d/index.js +1 -0
  51. package/integ-tests/integ.ubuntu24.ts.snapshot/asset.2f99f38311da357eaaea1284d67c759759324dec4a1cd11621d9c59eea9e81df.lambda/index.js +180 -0
  52. package/integ-tests/integ.ubuntu24.ts.snapshot/asset.530055f7515b3f0a47900f5df37e729ba40ca977b2d07b952bdefa2b8f883f42.bundle/index.js +30676 -0
  53. package/integ-tests/integ.ubuntu24.ts.snapshot/asset.781ab0ab74634cdaf61539ab208ab777829ef07097ac21f95b9e15a3b1eedc1b.lambda/index.js +57 -0
  54. package/integ-tests/integ.ubuntu24.ts.snapshot/asset.7fa1e366ee8a9ded01fc355f704cff92bfd179574e6f9cfee800a3541df1b200/__entrypoint__.js +1 -0
  55. package/integ-tests/integ.ubuntu24.ts.snapshot/asset.7fa1e366ee8a9ded01fc355f704cff92bfd179574e6f9cfee800a3541df1b200/index.js +1 -0
  56. package/integ-tests/integ.ubuntu24.ts.snapshot/asset.9d043014be736e8162bcc7ec5590cc6d2ff24fd0d9c73a5c5d595151c5fdad00/index.js +1 -0
  57. package/integ-tests/integ.ubuntu24.ts.snapshot/asset.bdc104ed9cab1b5b6421713c8155f0b753380595356f710400609664d3635eca/cfn-response.js +1 -0
  58. package/integ-tests/integ.ubuntu24.ts.snapshot/asset.bdc104ed9cab1b5b6421713c8155f0b753380595356f710400609664d3635eca/consts.js +1 -0
  59. package/integ-tests/integ.ubuntu24.ts.snapshot/asset.bdc104ed9cab1b5b6421713c8155f0b753380595356f710400609664d3635eca/framework.js +3 -0
  60. package/integ-tests/integ.ubuntu24.ts.snapshot/asset.bdc104ed9cab1b5b6421713c8155f0b753380595356f710400609664d3635eca/outbound.js +1 -0
  61. package/integ-tests/integ.ubuntu24.ts.snapshot/asset.bdc104ed9cab1b5b6421713c8155f0b753380595356f710400609664d3635eca/util.js +1 -0
  62. package/integ-tests/integ.ubuntu24.ts.snapshot/asset.efac30c7091c58fed492058fa6403c14f7e58aab8cf4fd595d838b8d5eeec2b9/index.js +6017 -0
  63. package/integ-tests/integ.ubuntu24.ts.snapshot/integ.json +23 -0
  64. package/integ-tests/integ.ubuntu24.ts.snapshot/manifest.json +1473 -0
  65. package/integ-tests/integ.ubuntu24.ts.snapshot/tree.json +1 -0
  66. package/lib/idle-monitor/idle-monitor-function.js +2 -2
  67. package/lib/idle-monitor/idle-monitor.js +5 -2
  68. package/lib/idle-monitor-enabler/idle-monitor-enabler-function.d.ts +13 -0
  69. package/lib/idle-monitor-enabler/idle-monitor-enabler-function.js +22 -0
  70. package/lib/idle-monitor-enabler/idle-monitor-enabler.d.ts +25 -0
  71. package/lib/idle-monitor-enabler/idle-monitor-enabler.js +76 -0
  72. package/lib/idle-monitor-enabler/idle-monitor-enabler.lambda.d.ts +9 -0
  73. package/lib/idle-monitor-enabler/idle-monitor-enabler.lambda.js +48 -0
  74. package/lib/index.d.ts +0 -1
  75. package/lib/index.js +1 -2
  76. package/lib/installer/installer-function.js +2 -2
  77. package/lib/installer/installer.d.ts +100 -0
  78. package/lib/installer/installer.js +658 -301
  79. package/lib/installer/installer.lambda.js +64 -30
  80. package/lib/secret-retriever/secret-retriever-function.js +2 -2
  81. package/lib/vscode-server.d.ts +40 -0
  82. package/lib/vscode-server.js +27 -4
  83. package/package.json +12 -12
  84. package/.claude/hooks/file_checker.sh +0 -178
  85. package/.qlty/.gitignore +0 -7
  86. package/.qlty/configs/.yamllint.yaml +0 -21
  87. package/.qlty/qlty.toml +0 -115
  88. package/assets/status-check/status-check.lambda/index.js +0 -123
  89. package/integ-tests/integ.al2023.ts.snapshot/cdk.out +0 -1
  90. package/integ-tests/integ.al2023.ts.snapshot/read.13497.1.lock +0 -1
  91. package/integ-tests/integ.custom-domain.ts.snapshot/read.13497.1.lock +0 -1
  92. package/integ-tests/integ.ubuntu.ts.snapshot/cdk.out +0 -1
  93. package/integ-tests/integ.ubuntu.ts.snapshot/read.13497.1.lock +0 -1
  94. package/lib/status-check/status-check-function.d.ts +0 -13
  95. package/lib/status-check/status-check-function.js +0 -22
  96. package/lib/status-check/status-check.d.ts +0 -36
  97. package/lib/status-check/status-check.js +0 -109
  98. package/lib/status-check/status-check.lambda.d.ts +0 -2
  99. package/lib/status-check/status-check.lambda.js +0 -104
@@ -1,178 +0,0 @@
1
- #!/bin/bash
2
-
3
- # for now
4
- exit 0;
5
-
6
- # NOTE: initially from https://www.npmjs.com/package/daddy-claude?activeTab=code
7
- # Colors
8
- RED='\033[0;31m'
9
- GREEN='\033[0;32m'
10
- NC='\033[0m'
11
-
12
- # Find the most recently modified source file (exclude cache files and generated files)
13
- files=$(find . -type f -mmin -1 \( -name "*.ts" -o -name "*.tsx" -o -name "*.js" -o -name "*.jsx" \) -not -path "*/node_modules/*" -not -path "*/.git/*" -not -path "*/lib/*" -not -path "*/dist/*" -not -path "*/coverage/*" -not -path "*/test-reports/*" -printf '%T@ %p\n' 2>/dev/null | sort -nr | head -1 | cut -d' ' -f2)
14
- if [[ -z $files ]]; then
15
- exit 2
16
- fi
17
-
18
- # Check if qlty is available and initialized
19
- qlty_available=false
20
- if command -v qlty >/dev/null 2>&1 && [[ -d ".qlty" ]]; then
21
- qlty_available=true
22
- fi
23
-
24
- # Auto-format TypeScript/JavaScript files with eslint --fix first
25
- eslint_format_applied=false
26
- if [[ $files == *.ts ]] || [[ $files == *.tsx ]] || [[ $files == *.js ]] || [[ $files == *.jsx ]]; then
27
- # Try projen eslint first if available
28
- if command -v npx >/dev/null 2>&1 && [[ -f "package.json" ]] && grep -q "projen" package.json; then
29
- eslint_fix_output=$(npx projen eslint --fix "$files" 2>&1)
30
- if [[ $eslint_fix_output == *"fixed"* ]] || [[ $eslint_fix_output == *"formatted"* ]]; then
31
- eslint_format_applied=true
32
- fi
33
- elif command -v eslint >/dev/null 2>&1; then
34
- # Fallback to direct eslint
35
- eslint_fix_output=$(eslint --fix "$files" 2>&1)
36
- if [[ $eslint_fix_output == *"fixed"* ]] || [[ $eslint_fix_output == *"formatted"* ]]; then
37
- eslint_format_applied=true
38
- fi
39
- fi
40
- fi
41
-
42
- # Run qlty checks (only if available)
43
- fmt_output=""
44
- check_output=""
45
- check_exit_code=0
46
- if [[ $qlty_available == true ]]; then
47
- fmt_output=$(qlty fmt "$files" 2>&1)
48
- check_output=$(qlty check --fix $files 2>&1)
49
- check_exit_code=$?
50
- fi
51
-
52
- # Run additional TypeScript/JavaScript tools
53
- eslint_output=""
54
- tsc_output=""
55
- awslint_output=""
56
- eslint_exit_code=0
57
- tsc_exit_code=0
58
- awslint_exit_code=0
59
-
60
- if [[ $files == *.ts ]] || [[ $files == *.tsx ]] || [[ $files == *.js ]] || [[ $files == *.jsx ]]; then
61
- # Run eslint (linting check without fix)
62
- if command -v npx >/dev/null 2>&1 && [[ -f "package.json" ]] && grep -q "projen" package.json; then
63
- eslint_output=$(npx projen eslint "$files" 2>&1)
64
- eslint_exit_code=$?
65
- elif command -v eslint >/dev/null 2>&1; then
66
- eslint_output=$(eslint "$files" 2>&1)
67
- eslint_exit_code=$?
68
- fi
69
-
70
- # Run TypeScript compiler check for .ts/.tsx files
71
- if [[ $files == *.ts ]] || [[ $files == *.tsx ]]; then
72
- if command -v tsc >/dev/null 2>&1; then
73
- tsc_output=$(tsc --noEmit --skipLibCheck 2>&1)
74
- tsc_exit_code=$?
75
- fi
76
- fi
77
-
78
- # Run awslint for CDK projects (check if this is a CDK project)
79
- if [[ -f "package.json" ]] && grep -q "aws-cdk" package.json; then
80
- if command -v awslint >/dev/null 2>&1; then
81
- awslint_output=$(awslint 2>&1)
82
- awslint_exit_code=$?
83
- elif command -v npx >/dev/null 2>&1; then
84
- awslint_output=$(npm run awslint 2>&1)
85
- awslint_exit_code=$?
86
- fi
87
- fi
88
- fi
89
-
90
- # Check for issues
91
- has_issues=false
92
-
93
- # Check if formatting happened (this is auto-fixed, so don't count as issue)
94
- formatting_applied=false
95
- if [[ $fmt_output == *"Formatted"* ]]; then
96
- formatting_applied=true
97
- fi
98
-
99
- # Check if linting found issues
100
- if [[ $qlty_available == true ]]; then
101
- if [[ $check_output != *"No issues"* ]] || [[ $check_exit_code -ne 0 ]]; then
102
- has_issues=true
103
- fi
104
- fi
105
-
106
- # Check TypeScript/JavaScript tool issues
107
- if [[ $eslint_exit_code -ne 0 ]] || [[ $tsc_exit_code -ne 0 ]] || [[ $awslint_exit_code -ne 0 ]]; then
108
- has_issues=true
109
- fi
110
-
111
- # Remove test logic - now using real qlty detection
112
-
113
- # Display results
114
- if [[ $has_issues == true ]]; then
115
- echo -e "${RED}🛑 STOP - Issues found in: $files${NC}" >&2
116
- echo -e "${RED}The following MUST BE FIXED:${NC}" >&2
117
- echo "" >&2
118
-
119
- if [[ $qlty_available == true ]] && [[ $check_output != *"No issues"* ]]; then
120
- # Extract remaining issue lines (skip headers/footers)
121
- issue_lines=$(echo "$check_output" | grep -E "^\s*[0-9]+:[0-9]+\s+|high\s+|medium\s+|low\s+" | head -3)
122
- remaining_issues=$(echo "$check_output" | grep -c "high\|medium\|low" 2>/dev/null || echo "0")
123
-
124
- # Ensure remaining_issues is a valid number
125
- if ! [[ $remaining_issues =~ ^[0-9]+$ ]]; then
126
- remaining_issues=0
127
- fi
128
-
129
- # Simple, clear output
130
- echo "🔍 QLTY Issues: ($remaining_issues remaining)" >&2
131
-
132
- if [[ -n $issue_lines ]]; then
133
- echo "$issue_lines" >&2
134
- if [[ $remaining_issues -gt 3 ]]; then
135
- echo "... and $((remaining_issues - 3)) more issues" >&2
136
- fi
137
- else
138
- # Fallback: show first few lines if parsing failed
139
- echo "$check_output" | head -5 >&2
140
- fi
141
- echo "" >&2
142
- fi
143
-
144
- # Show eslint issues
145
- if [[ $eslint_exit_code -ne 0 ]] && [[ -n $eslint_output ]]; then
146
- echo "🔍 ESLint Issues:" >&2
147
- echo "$eslint_output" | head -5 >&2
148
- echo "" >&2
149
- fi
150
-
151
- # Show TypeScript issues
152
- if [[ $tsc_exit_code -ne 0 ]] && [[ -n $tsc_output ]]; then
153
- echo "🔍 TypeScript Issues:" >&2
154
- echo "$tsc_output" | grep -E "error|warning" | head -5 >&2
155
- echo "" >&2
156
- fi
157
-
158
- # Show awslint issues
159
- if [[ $awslint_exit_code -ne 0 ]] && [[ -n $awslint_output ]]; then
160
- echo "🔍 AWS CDK Lint Issues:" >&2
161
- echo "$awslint_output" | grep -E "error|warning" | head -5 >&2
162
- echo "" >&2
163
- fi
164
-
165
- echo -e "${RED}Fix all issues above before continuing${NC}" >&2
166
- exit 1
167
- else
168
- if [[ $eslint_format_applied == true ]] && [[ $formatting_applied == true ]]; then
169
- echo -e "${GREEN}✅ ESLint + QLTY formatted $files. Code quality good. Continue${NC}" >&2
170
- elif [[ $eslint_format_applied == true ]]; then
171
- echo -e "${GREEN}✅ ESLint formatted $files. Code quality good. Continue${NC}" >&2
172
- elif [[ $formatting_applied == true ]]; then
173
- echo -e "${GREEN}✅ QLTY formatted $files. Code quality good. Continue${NC}" >&2
174
- else
175
- echo -e "${GREEN}✅ Code quality good for $files. Continue${NC}" >&2
176
- fi
177
- exit 2
178
- fi
package/.qlty/.gitignore DELETED
@@ -1,7 +0,0 @@
1
- *
2
- !configs
3
- !configs/**
4
- !hooks
5
- !hooks/**
6
- !qlty.toml
7
- !.gitignore
@@ -1,21 +0,0 @@
1
- extends: default
2
-
3
- rules:
4
- document-start: disable
5
- quoted-strings:
6
- required: only-when-needed
7
- extra-allowed: ["{|}"]
8
- key-duplicates: {}
9
- octal-values:
10
- forbid-implicit-octal: true
11
- line-length: disable
12
- indentation: disable
13
- new-line-at-end-of-file: disable
14
- trailing-spaces: disable
15
- brackets: disable
16
- colons: disable
17
- empty-lines: disable
18
- comments: disable
19
- braces: disable
20
- comments-indentation: disable
21
- commas: disable
package/.qlty/qlty.toml DELETED
@@ -1,115 +0,0 @@
1
- # This file was automatically generated by `qlty init`.
2
- # You can modify it to suit your needs.
3
- # We recommend you to commit this file to your repository.
4
- #
5
- # This configuration is used by both Qlty CLI and Qlty Cloud.
6
- #
7
- # Qlty CLI -- Code quality toolkit for developers
8
- # Qlty Cloud -- Fully automated Code Health Platform
9
- #
10
- # Try Qlty Cloud: https://qlty.sh
11
- #
12
- # For a guide to configuration, visit https://qlty.sh/d/config
13
- # Or for a full reference, visit https://qlty.sh/d/qlty-toml
14
- config_version = "0"
15
-
16
- exclude_patterns = [
17
- "*_min.*",
18
- "*-min.*",
19
- "*.min.*",
20
- "**/.yarn/**",
21
- "**/*.d.ts",
22
- "**/assets/**",
23
- "**/bower_components/**",
24
- "**/build/**",
25
- "**/cache/**",
26
- "**/config/**",
27
- "**/db/**",
28
- "**/deps/**",
29
- "**/dist/**",
30
- "**/extern/**",
31
- "**/external/**",
32
- "**/generated/**",
33
- "**/Godeps/**",
34
- "**/gradlew/**",
35
- "**/mvnw/**",
36
- "**/node_modules/**",
37
- "**/protos/**",
38
- "**/seed/**",
39
- "**/target/**",
40
- "**/templates/**",
41
- "**/testdata/**",
42
- "**/vendor/**",
43
- ]
44
-
45
- test_patterns = [
46
- "**/test/**",
47
- "**/spec/**",
48
- "**/*.test.*",
49
- "**/*.spec.*",
50
- "**/*_test.*",
51
- "**/*_spec.*",
52
- "**/test_*.*",
53
- "**/spec_*.*",
54
- ]
55
-
56
- [smells]
57
- mode = "comment"
58
-
59
- [[source]]
60
- name = "default"
61
- default = true
62
-
63
-
64
- [[plugin]]
65
- name = "actionlint"
66
-
67
- [[plugin]]
68
- name = "checkov"
69
-
70
- [[plugin]]
71
- name = "eslint"
72
- version = "9.33.0"
73
- package_file = "package.json"
74
- package_filters = ["eslint", "jest"]
75
-
76
- [[plugin]]
77
- name = "gofmt"
78
-
79
- [[plugin]]
80
- name = "golangci-lint"
81
- mode = "comment"
82
-
83
- [[plugin]]
84
- name = "markdownlint"
85
- mode = "comment"
86
-
87
- [[plugin]]
88
- name = "osv-scanner"
89
-
90
- [[plugin]]
91
- name = "prettier"
92
-
93
- [[plugin]]
94
- name = "radarlint-go"
95
- mode = "monitor"
96
-
97
- [[plugin]]
98
- name = "radarlint-js"
99
-
100
- [[plugin]]
101
- name = "ripgrep"
102
- mode = "comment"
103
-
104
- [[plugin]]
105
- name = "trivy"
106
- drivers = [
107
- "config",
108
- "fs-vuln",
109
- ]
110
-
111
- [[plugin]]
112
- name = "trufflehog"
113
-
114
- [[plugin]]
115
- name = "yamllint"
@@ -1,123 +0,0 @@
1
- "use strict";
2
- var __defProp = Object.defineProperty;
3
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
- var __getOwnPropNames = Object.getOwnPropertyNames;
5
- var __hasOwnProp = Object.prototype.hasOwnProperty;
6
- var __export = (target, all) => {
7
- for (var name in all)
8
- __defProp(target, name, { get: all[name], enumerable: true });
9
- };
10
- var __copyProps = (to, from, except, desc) => {
11
- if (from && typeof from === "object" || typeof from === "function") {
12
- for (let key of __getOwnPropNames(from))
13
- if (!__hasOwnProp.call(to, key) && key !== except)
14
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
- }
16
- return to;
17
- };
18
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
-
20
- // src/status-check/status-check.lambda.ts
21
- var status_check_lambda_exports = {};
22
- __export(status_check_lambda_exports, {
23
- handler: () => handler
24
- });
25
- module.exports = __toCommonJS(status_check_lambda_exports);
26
- var import_client_dynamodb = require("@aws-sdk/client-dynamodb");
27
- var import_client_ec2 = require("@aws-sdk/client-ec2");
28
- var import_lib_dynamodb = require("@aws-sdk/lib-dynamodb");
29
- var ec2 = new import_client_ec2.EC2Client({});
30
- var ddbClient = new import_client_dynamodb.DynamoDBClient({});
31
- var ddb = import_lib_dynamodb.DynamoDBDocumentClient.from(ddbClient);
32
- var TABLE_NAME = process.env.TABLE_NAME;
33
- var handler = async (event) => {
34
- console.log("StatusCheck/Start triggered", { event });
35
- const instanceId = event.pathParameters?.instanceId;
36
- const isStartRequest = event.resource?.includes("/start") && event.httpMethod === "POST";
37
- if (!instanceId) {
38
- return {
39
- statusCode: 400,
40
- headers: {
41
- "Content-Type": "application/json",
42
- "Access-Control-Allow-Origin": "*"
43
- },
44
- body: JSON.stringify({ error: "Missing instanceId" })
45
- };
46
- }
47
- try {
48
- if (isStartRequest) {
49
- console.log("Starting instance:", instanceId);
50
- const startCommand = new import_client_ec2.StartInstancesCommand({
51
- InstanceIds: [instanceId]
52
- });
53
- await ec2.send(startCommand);
54
- await ddb.send(new import_lib_dynamodb.UpdateCommand({
55
- TableName: TABLE_NAME,
56
- Key: { instanceId },
57
- UpdateExpression: "SET instanceState = :state, lastActivityTime = :time",
58
- ExpressionAttributeValues: {
59
- ":state": "starting",
60
- ":time": (/* @__PURE__ */ new Date()).toISOString()
61
- }
62
- }));
63
- return {
64
- statusCode: 200,
65
- headers: {
66
- "Content-Type": "application/json",
67
- "Access-Control-Allow-Origin": "*"
68
- },
69
- body: JSON.stringify({
70
- message: "Instance start initiated",
71
- state: "starting",
72
- instanceId
73
- })
74
- };
75
- }
76
- const statusCommand = new import_client_ec2.DescribeInstanceStatusCommand({
77
- InstanceIds: [instanceId],
78
- IncludeAllInstances: true
79
- });
80
- const statusResponse = await ec2.send(statusCommand);
81
- const instanceStatus = statusResponse.InstanceStatuses?.[0];
82
- const state = instanceStatus?.InstanceState?.Name || "unknown";
83
- console.log("Instance state:", state);
84
- if (state === "running") {
85
- await ddb.send(new import_lib_dynamodb.UpdateCommand({
86
- TableName: TABLE_NAME,
87
- Key: { instanceId },
88
- UpdateExpression: "SET instanceState = :state, lastActivityTime = :time",
89
- ExpressionAttributeValues: {
90
- ":state": "running",
91
- ":time": (/* @__PURE__ */ new Date()).toISOString()
92
- }
93
- }));
94
- }
95
- return {
96
- statusCode: 200,
97
- headers: {
98
- "Content-Type": "application/json",
99
- "Access-Control-Allow-Origin": "*",
100
- "Cache-Control": "no-cache, no-store, must-revalidate"
101
- },
102
- body: JSON.stringify({
103
- state,
104
- ready: state === "running",
105
- instanceId
106
- })
107
- };
108
- } catch (error) {
109
- console.error("Error in status check/start:", error);
110
- return {
111
- statusCode: 500,
112
- headers: {
113
- "Content-Type": "application/json",
114
- "Access-Control-Allow-Origin": "*"
115
- },
116
- body: JSON.stringify({ error: "Internal server error" })
117
- };
118
- }
119
- };
120
- // Annotate the CommonJS export names for ESM import in node:
121
- 0 && (module.exports = {
122
- handler
123
- });
@@ -1 +0,0 @@
1
- {"version":"41.0.0"}
@@ -1 +0,0 @@
1
- {"version":"41.0.0"}
@@ -1,13 +0,0 @@
1
- import * as lambda from 'aws-cdk-lib/aws-lambda';
2
- import { Construct } from 'constructs';
3
- /**
4
- * Props for StatusCheckFunction
5
- */
6
- export interface StatusCheckFunctionProps extends lambda.FunctionOptions {
7
- }
8
- /**
9
- * An AWS Lambda function which executes src/status-check/status-check.
10
- */
11
- export declare class StatusCheckFunction extends lambda.Function {
12
- constructor(scope: Construct, id: string, props?: StatusCheckFunctionProps);
13
- }
@@ -1,22 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.StatusCheckFunction = void 0;
4
- // ~~ Generated by projen. To modify, edit .projenrc.ts and run "npx projen".
5
- const path = require("path");
6
- const lambda = require("aws-cdk-lib/aws-lambda");
7
- /**
8
- * An AWS Lambda function which executes src/status-check/status-check.
9
- */
10
- class StatusCheckFunction extends lambda.Function {
11
- constructor(scope, id, props) {
12
- super(scope, id, {
13
- description: 'src/status-check/status-check.lambda.ts',
14
- ...props,
15
- runtime: new lambda.Runtime('nodejs20.x', lambda.RuntimeFamily.NODEJS),
16
- handler: 'index.handler',
17
- code: lambda.Code.fromAsset(path.join(__dirname, '../../assets/status-check/status-check.lambda')),
18
- });
19
- }
20
- }
21
- exports.StatusCheckFunction = StatusCheckFunction;
22
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhdHVzLWNoZWNrLWZ1bmN0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3N0YXR1cy1jaGVjay9zdGF0dXMtY2hlY2stZnVuY3Rpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsNkVBQTZFO0FBQzdFLDZCQUE2QjtBQUM3QixpREFBaUQ7QUFTakQ7O0dBRUc7QUFDSCxNQUFhLG1CQUFvQixTQUFRLE1BQU0sQ0FBQyxRQUFRO0lBQ3RELFlBQVksS0FBZ0IsRUFBRSxFQUFVLEVBQUUsS0FBZ0M7UUFDeEUsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLEVBQUU7WUFDZixXQUFXLEVBQUUseUNBQXlDO1lBQ3RELEdBQUcsS0FBSztZQUNSLE9BQU8sRUFBRSxJQUFJLE1BQU0sQ0FBQyxPQUFPLENBQUMsWUFBWSxFQUFFLE1BQU0sQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDO1lBQ3RFLE9BQU8sRUFBRSxlQUFlO1lBQ3hCLElBQUksRUFBRSxNQUFNLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSwrQ0FBK0MsQ0FBQyxDQUFDO1NBQ25HLENBQUMsQ0FBQztJQUNMLENBQUM7Q0FDRjtBQVZELGtEQVVDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gfn4gR2VuZXJhdGVkIGJ5IHByb2plbi4gVG8gbW9kaWZ5LCBlZGl0IC5wcm9qZW5yYy50cyBhbmQgcnVuIFwibnB4IHByb2plblwiLlxuaW1wb3J0ICogYXMgcGF0aCBmcm9tICdwYXRoJztcbmltcG9ydCAqIGFzIGxhbWJkYSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtbGFtYmRhJztcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gJ2NvbnN0cnVjdHMnO1xuXG4vKipcbiAqIFByb3BzIGZvciBTdGF0dXNDaGVja0Z1bmN0aW9uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU3RhdHVzQ2hlY2tGdW5jdGlvblByb3BzIGV4dGVuZHMgbGFtYmRhLkZ1bmN0aW9uT3B0aW9ucyB7XG59XG5cbi8qKlxuICogQW4gQVdTIExhbWJkYSBmdW5jdGlvbiB3aGljaCBleGVjdXRlcyBzcmMvc3RhdHVzLWNoZWNrL3N0YXR1cy1jaGVjay5cbiAqL1xuZXhwb3J0IGNsYXNzIFN0YXR1c0NoZWNrRnVuY3Rpb24gZXh0ZW5kcyBsYW1iZGEuRnVuY3Rpb24ge1xuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wcz86IFN0YXR1c0NoZWNrRnVuY3Rpb25Qcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCwge1xuICAgICAgZGVzY3JpcHRpb246ICdzcmMvc3RhdHVzLWNoZWNrL3N0YXR1cy1jaGVjay5sYW1iZGEudHMnLFxuICAgICAgLi4ucHJvcHMsXG4gICAgICBydW50aW1lOiBuZXcgbGFtYmRhLlJ1bnRpbWUoJ25vZGVqczIwLngnLCBsYW1iZGEuUnVudGltZUZhbWlseS5OT0RFSlMpLFxuICAgICAgaGFuZGxlcjogJ2luZGV4LmhhbmRsZXInLFxuICAgICAgY29kZTogbGFtYmRhLkNvZGUuZnJvbUFzc2V0KHBhdGguam9pbihfX2Rpcm5hbWUsICcuLi8uLi9hc3NldHMvc3RhdHVzLWNoZWNrL3N0YXR1cy1jaGVjay5sYW1iZGEnKSksXG4gICAgfSk7XG4gIH1cbn0iXX0=
@@ -1,36 +0,0 @@
1
- import { RestApi } from 'aws-cdk-lib/aws-apigateway';
2
- import { ITable } from 'aws-cdk-lib/aws-dynamodb';
3
- import { IInstance } from 'aws-cdk-lib/aws-ec2';
4
- import { Function as LambdaFunction } from 'aws-cdk-lib/aws-lambda';
5
- import { Construct } from 'constructs';
6
- /**
7
- * Props for StatusCheckApi construct
8
- */
9
- export interface StatusCheckApiProps {
10
- /**
11
- * The EC2 instance to check status for
12
- */
13
- readonly instance: IInstance;
14
- /**
15
- * DynamoDB table for tracking instance state
16
- */
17
- readonly stateTable: ITable;
18
- }
19
- /**
20
- * API Gateway endpoint for checking instance status, used by resume page for polling
21
- */
22
- export declare class StatusCheckApi extends Construct {
23
- /**
24
- * The API Gateway REST API
25
- */
26
- readonly api: RestApi;
27
- /**
28
- * The URL of the status check API endpoint
29
- */
30
- readonly apiUrl: string;
31
- /**
32
- * The Lambda function that handles status check requests
33
- */
34
- readonly function: LambdaFunction;
35
- constructor(scope: Construct, id: string, props: StatusCheckApiProps);
36
- }
@@ -1,109 +0,0 @@
1
- "use strict";
2
- var _a;
3
- Object.defineProperty(exports, "__esModule", { value: true });
4
- exports.StatusCheckApi = void 0;
5
- const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
6
- const path = require("path");
7
- const aws_cdk_lib_1 = require("aws-cdk-lib");
8
- const aws_apigateway_1 = require("aws-cdk-lib/aws-apigateway");
9
- const aws_iam_1 = require("aws-cdk-lib/aws-iam");
10
- const aws_lambda_1 = require("aws-cdk-lib/aws-lambda");
11
- const cdk_nag_1 = require("cdk-nag");
12
- const constructs_1 = require("constructs");
13
- /**
14
- * API Gateway endpoint for checking instance status, used by resume page for polling
15
- */
16
- class StatusCheckApi extends constructs_1.Construct {
17
- constructor(scope, id, props) {
18
- super(scope, id);
19
- this.function = new aws_lambda_1.Function(this, 'Function', {
20
- runtime: aws_lambda_1.Runtime.NODEJS_20_X,
21
- handler: 'index.handler',
22
- code: aws_lambda_1.Code.fromAsset(path.join(__dirname, '../../assets/status-check/status-check.lambda')),
23
- timeout: aws_cdk_lib_1.Duration.seconds(10),
24
- memorySize: 128,
25
- environment: {
26
- TABLE_NAME: props.stateTable.tableName,
27
- },
28
- });
29
- // Grant permissions
30
- props.stateTable.grantReadWriteData(this.function);
31
- this.function.addToRolePolicy(new aws_iam_1.PolicyStatement({
32
- actions: [
33
- 'ec2:DescribeInstanceStatus',
34
- 'ec2:DescribeInstances',
35
- 'ec2:StartInstances', // Allow starting instances for resume functionality
36
- ],
37
- resources: [
38
- `arn:aws:ec2:${aws_cdk_lib_1.Stack.of(this).region}:${aws_cdk_lib_1.Stack.of(this).account}:instance/${props.instance.instanceId}`,
39
- ],
40
- }));
41
- // Create API Gateway
42
- this.api = new aws_apigateway_1.RestApi(this, 'Api', {
43
- restApiName: 'VSCodeStatusCheckApi',
44
- description: 'API for checking VS Code Server instance status',
45
- defaultCorsPreflightOptions: {
46
- allowOrigins: aws_apigateway_1.Cors.ALL_ORIGINS,
47
- allowMethods: aws_apigateway_1.Cors.ALL_METHODS,
48
- },
49
- });
50
- const statusResource = this.api.root.addResource('status');
51
- const instanceResource = statusResource.addResource('{instanceId}');
52
- // GET /status/{instanceId} - Check instance status
53
- instanceResource.addMethod('GET', new aws_apigateway_1.LambdaIntegration(this.function));
54
- // POST /status/{instanceId}/start - Start stopped instance
55
- const startResource = instanceResource.addResource('start');
56
- startResource.addMethod('POST', new aws_apigateway_1.LambdaIntegration(this.function));
57
- this.apiUrl = this.api.url;
58
- // CDK-nag suppressions
59
- cdk_nag_1.NagSuppressions.addResourceSuppressions(this.function, [
60
- {
61
- id: 'AwsSolutions-IAM4',
62
- reason: 'Managed policies acceptable for workshop Lambda functions',
63
- },
64
- {
65
- id: 'AwsSolutions-L1',
66
- reason: 'Latest runtime not required for this function',
67
- },
68
- ], true);
69
- cdk_nag_1.NagSuppressions.addResourceSuppressions(this.api, [
70
- {
71
- id: 'AwsSolutions-APIG2',
72
- reason: 'Request validation not required for this simple API',
73
- },
74
- {
75
- id: 'AwsSolutions-IAM4',
76
- reason: 'Managed policies acceptable for workshop API Gateway',
77
- },
78
- {
79
- id: 'AwsSolutions-APIG4',
80
- reason: 'Authorization not required for status check endpoint',
81
- },
82
- {
83
- id: 'AwsSolutions-COG4',
84
- reason: 'Cognito not required for this workshop API',
85
- },
86
- {
87
- id: 'AwsSolutions-APIG1',
88
- reason: 'Access logging not required for workshop environment',
89
- },
90
- {
91
- id: 'AwsSolutions-APIG3',
92
- reason: 'WAF not required for this workshop API',
93
- },
94
- {
95
- id: 'AwsSolutions-APIG6',
96
- reason: 'CloudWatch logging not required for workshop environment',
97
- },
98
- {
99
- id: 'AwsSolutions-IAM5',
100
- reason: 'Wildcard permissions acceptable for workshop API Gateway execution role',
101
- appliesTo: ['Resource::*'],
102
- },
103
- ], true);
104
- }
105
- }
106
- exports.StatusCheckApi = StatusCheckApi;
107
- _a = JSII_RTTI_SYMBOL_1;
108
- StatusCheckApi[_a] = { fqn: "@mavogel/cdk-vscode-server.StatusCheckApi", version: "0.0.62" };
109
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhdHVzLWNoZWNrLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3N0YXR1cy1jaGVjay9zdGF0dXMtY2hlY2sudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSw2QkFBNkI7QUFDN0IsNkNBQThDO0FBQzlDLCtEQUE4RTtBQUc5RSxpREFBc0Q7QUFDdEQsdURBQW1GO0FBQ25GLHFDQUEwQztBQUMxQywyQ0FBdUM7QUFnQnZDOztHQUVHO0FBQ0gsTUFBYSxjQUFlLFNBQVEsc0JBQVM7SUFjM0MsWUFBWSxLQUFnQixFQUFFLEVBQVUsRUFBRSxLQUEwQjtRQUNsRSxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBRWpCLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxxQkFBYyxDQUFDLElBQUksRUFBRSxVQUFVLEVBQUU7WUFDbkQsT0FBTyxFQUFFLG9CQUFPLENBQUMsV0FBVztZQUM1QixPQUFPLEVBQUUsZUFBZTtZQUN4QixJQUFJLEVBQUUsaUJBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsK0NBQStDLENBQUMsQ0FBQztZQUMzRixPQUFPLEVBQUUsc0JBQVEsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDO1lBQzdCLFVBQVUsRUFBRSxHQUFHO1lBQ2YsV0FBVyxFQUFFO2dCQUNYLFVBQVUsRUFBRSxLQUFLLENBQUMsVUFBVSxDQUFDLFNBQVM7YUFDdkM7U0FDRixDQUFDLENBQUM7UUFFSCxvQkFBb0I7UUFDcEIsS0FBSyxDQUFDLFVBQVUsQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7UUFFbkQsSUFBSSxDQUFDLFFBQVEsQ0FBQyxlQUFlLENBQzNCLElBQUkseUJBQWUsQ0FBQztZQUNsQixPQUFPLEVBQUU7Z0JBQ1AsNEJBQTRCO2dCQUM1Qix1QkFBdUI7Z0JBQ3ZCLG9CQUFvQixFQUFFLG9EQUFvRDthQUMzRTtZQUNELFNBQVMsRUFBRTtnQkFDVCxlQUFlLG1CQUFLLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLE1BQU0sSUFBSSxtQkFBSyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxPQUFPLGFBQWEsS0FBSyxDQUFDLFFBQVEsQ0FBQyxVQUFVLEVBQUU7YUFDdkc7U0FDRixDQUFDLENBQ0gsQ0FBQztRQUVGLHFCQUFxQjtRQUNyQixJQUFJLENBQUMsR0FBRyxHQUFHLElBQUksd0JBQU8sQ0FBQyxJQUFJLEVBQUUsS0FBSyxFQUFFO1lBQ2xDLFdBQVcsRUFBRSxzQkFBc0I7WUFDbkMsV0FBVyxFQUFFLGlEQUFpRDtZQUM5RCwyQkFBMkIsRUFBRTtnQkFDM0IsWUFBWSxFQUFFLHFCQUFJLENBQUMsV0FBVztnQkFDOUIsWUFBWSxFQUFFLHFCQUFJLENBQUMsV0FBVzthQUMvQjtTQUNGLENBQUMsQ0FBQztRQUVILE1BQU0sY0FBYyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUMzRCxNQUFNLGdCQUFnQixHQUFHLGNBQWMsQ0FBQyxXQUFXLENBQUMsY0FBYyxDQUFDLENBQUM7UUFFcEUsbURBQW1EO1FBQ25ELGdCQUFnQixDQUFDLFNBQVMsQ0FBQyxLQUFLLEVBQUUsSUFBSSxrQ0FBaUIsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQztRQUV4RSwyREFBMkQ7UUFDM0QsTUFBTSxhQUFhLEdBQUcsZ0JBQWdCLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQzVELGFBQWEsQ0FBQyxTQUFTLENBQUMsTUFBTSxFQUFFLElBQUksa0NBQWlCLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7UUFFdEUsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQztRQUUzQix1QkFBdUI7UUFDdkIseUJBQWUsQ0FBQyx1QkFBdUIsQ0FDckMsSUFBSSxDQUFDLFFBQVEsRUFDYjtZQUNFO2dCQUNFLEVBQUUsRUFBRSxtQkFBbUI7Z0JBQ3ZCLE1BQU0sRUFBRSwyREFBMkQ7YUFDcEU7WUFDRDtnQkFDRSxFQUFFLEVBQUUsaUJBQWlCO2dCQUNyQixNQUFNLEVBQUUsK0NBQStDO2FBQ3hEO1NBQ0YsRUFDRCxJQUFJLENBQ0wsQ0FBQztRQUVGLHlCQUFlLENBQUMsdUJBQXVCLENBQ3JDLElBQUksQ0FBQyxHQUFHLEVBQ1I7WUFDRTtnQkFDRSxFQUFFLEVBQUUsb0JBQW9CO2dCQUN4QixNQUFNLEVBQUUscURBQXFEO2FBQzlEO1lBQ0Q7Z0JBQ0UsRUFBRSxFQUFFLG1CQUFtQjtnQkFDdkIsTUFBTSxFQUFFLHNEQUFzRDthQUMvRDtZQUNEO2dCQUNFLEVBQUUsRUFBRSxvQkFBb0I7Z0JBQ3hCLE1BQU0sRUFBRSxzREFBc0Q7YUFDL0Q7WUFDRDtnQkFDRSxFQUFFLEVBQUUsbUJBQW1CO2dCQUN2QixNQUFNLEVBQUUsNENBQTRDO2FBQ3JEO1lBQ0Q7Z0JBQ0UsRUFBRSxFQUFFLG9CQUFvQjtnQkFDeEIsTUFBTSxFQUFFLHNEQUFzRDthQUMvRDtZQUNEO2dCQUNFLEVBQUUsRUFBRSxvQkFBb0I7Z0JBQ3hCLE1BQU0sRUFBRSx3Q0FBd0M7YUFDakQ7WUFDRDtnQkFDRSxFQUFFLEVBQUUsb0JBQW9CO2dCQUN4QixNQUFNLEVBQUUsMERBQTBEO2FBQ25FO1lBQ0Q7Z0JBQ0UsRUFBRSxFQUFFLG1CQUFtQjtnQkFDdkIsTUFBTSxFQUFFLHlFQUF5RTtnQkFDakYsU0FBUyxFQUFFLENBQUMsYUFBYSxDQUFDO2FBQzNCO1NBQ0YsRUFDRCxJQUFJLENBQ0wsQ0FBQztJQUNKLENBQUM7O0FBekhILHdDQTBIQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIHBhdGggZnJvbSAncGF0aCc7XG5pbXBvcnQgeyBEdXJhdGlvbiwgU3RhY2sgfSBmcm9tICdhd3MtY2RrLWxpYic7XG5pbXBvcnQgeyBSZXN0QXBpLCBMYW1iZGFJbnRlZ3JhdGlvbiwgQ29ycyB9IGZyb20gJ2F3cy1jZGstbGliL2F3cy1hcGlnYXRld2F5JztcbmltcG9ydCB7IElUYWJsZSB9IGZyb20gJ2F3cy1jZGstbGliL2F3cy1keW5hbW9kYic7XG5pbXBvcnQgeyBJSW5zdGFuY2UgfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtZWMyJztcbmltcG9ydCB7IFBvbGljeVN0YXRlbWVudCB9IGZyb20gJ2F3cy1jZGstbGliL2F3cy1pYW0nO1xuaW1wb3J0IHsgUnVudGltZSwgQ29kZSwgRnVuY3Rpb24gYXMgTGFtYmRhRnVuY3Rpb24gfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtbGFtYmRhJztcbmltcG9ydCB7IE5hZ1N1cHByZXNzaW9ucyB9IGZyb20gJ2Nkay1uYWcnO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSAnY29uc3RydWN0cyc7XG5cbi8qKlxuICogUHJvcHMgZm9yIFN0YXR1c0NoZWNrQXBpIGNvbnN0cnVjdFxuICovXG5leHBvcnQgaW50ZXJmYWNlIFN0YXR1c0NoZWNrQXBpUHJvcHMge1xuICAvKipcbiAgICogVGhlIEVDMiBpbnN0YW5jZSB0byBjaGVjayBzdGF0dXMgZm9yXG4gICAqL1xuICByZWFkb25seSBpbnN0YW5jZTogSUluc3RhbmNlO1xuICAvKipcbiAgICogRHluYW1vREIgdGFibGUgZm9yIHRyYWNraW5nIGluc3RhbmNlIHN0YXRlXG4gICAqL1xuICByZWFkb25seSBzdGF0ZVRhYmxlOiBJVGFibGU7XG59XG5cbi8qKlxuICogQVBJIEdhdGV3YXkgZW5kcG9pbnQgZm9yIGNoZWNraW5nIGluc3RhbmNlIHN0YXR1cywgdXNlZCBieSByZXN1bWUgcGFnZSBmb3IgcG9sbGluZ1xuICovXG5leHBvcnQgY2xhc3MgU3RhdHVzQ2hlY2tBcGkgZXh0ZW5kcyBDb25zdHJ1Y3Qge1xuICAvKipcbiAgICogVGhlIEFQSSBHYXRld2F5IFJFU1QgQVBJXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgYXBpOiBSZXN0QXBpO1xuICAvKipcbiAgICogVGhlIFVSTCBvZiB0aGUgc3RhdHVzIGNoZWNrIEFQSSBlbmRwb2ludFxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGFwaVVybDogc3RyaW5nO1xuICAvKipcbiAgICogVGhlIExhbWJkYSBmdW5jdGlvbiB0aGF0IGhhbmRsZXMgc3RhdHVzIGNoZWNrIHJlcXVlc3RzXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgZnVuY3Rpb246IExhbWJkYUZ1bmN0aW9uO1xuXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBTdGF0dXNDaGVja0FwaVByb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkKTtcblxuICAgIHRoaXMuZnVuY3Rpb24gPSBuZXcgTGFtYmRhRnVuY3Rpb24odGhpcywgJ0Z1bmN0aW9uJywge1xuICAgICAgcnVudGltZTogUnVudGltZS5OT0RFSlNfMjBfWCxcbiAgICAgIGhhbmRsZXI6ICdpbmRleC5oYW5kbGVyJyxcbiAgICAgIGNvZGU6IENvZGUuZnJvbUFzc2V0KHBhdGguam9pbihfX2Rpcm5hbWUsICcuLi8uLi9hc3NldHMvc3RhdHVzLWNoZWNrL3N0YXR1cy1jaGVjay5sYW1iZGEnKSksXG4gICAgICB0aW1lb3V0OiBEdXJhdGlvbi5zZWNvbmRzKDEwKSxcbiAgICAgIG1lbW9yeVNpemU6IDEyOCxcbiAgICAgIGVudmlyb25tZW50OiB7XG4gICAgICAgIFRBQkxFX05BTUU6IHByb3BzLnN0YXRlVGFibGUudGFibGVOYW1lLFxuICAgICAgfSxcbiAgICB9KTtcblxuICAgIC8vIEdyYW50IHBlcm1pc3Npb25zXG4gICAgcHJvcHMuc3RhdGVUYWJsZS5ncmFudFJlYWRXcml0ZURhdGEodGhpcy5mdW5jdGlvbik7XG5cbiAgICB0aGlzLmZ1bmN0aW9uLmFkZFRvUm9sZVBvbGljeShcbiAgICAgIG5ldyBQb2xpY3lTdGF0ZW1lbnQoe1xuICAgICAgICBhY3Rpb25zOiBbXG4gICAgICAgICAgJ2VjMjpEZXNjcmliZUluc3RhbmNlU3RhdHVzJyxcbiAgICAgICAgICAnZWMyOkRlc2NyaWJlSW5zdGFuY2VzJyxcbiAgICAgICAgICAnZWMyOlN0YXJ0SW5zdGFuY2VzJywgLy8gQWxsb3cgc3RhcnRpbmcgaW5zdGFuY2VzIGZvciByZXN1bWUgZnVuY3Rpb25hbGl0eVxuICAgICAgICBdLFxuICAgICAgICByZXNvdXJjZXM6IFtcbiAgICAgICAgICBgYXJuOmF3czplYzI6JHtTdGFjay5vZih0aGlzKS5yZWdpb259OiR7U3RhY2sub2YodGhpcykuYWNjb3VudH06aW5zdGFuY2UvJHtwcm9wcy5pbnN0YW5jZS5pbnN0YW5jZUlkfWAsXG4gICAgICAgIF0sXG4gICAgICB9KSxcbiAgICApO1xuXG4gICAgLy8gQ3JlYXRlIEFQSSBHYXRld2F5XG4gICAgdGhpcy5hcGkgPSBuZXcgUmVzdEFwaSh0aGlzLCAnQXBpJywge1xuICAgICAgcmVzdEFwaU5hbWU6ICdWU0NvZGVTdGF0dXNDaGVja0FwaScsXG4gICAgICBkZXNjcmlwdGlvbjogJ0FQSSBmb3IgY2hlY2tpbmcgVlMgQ29kZSBTZXJ2ZXIgaW5zdGFuY2Ugc3RhdHVzJyxcbiAgICAgIGRlZmF1bHRDb3JzUHJlZmxpZ2h0T3B0aW9uczoge1xuICAgICAgICBhbGxvd09yaWdpbnM6IENvcnMuQUxMX09SSUdJTlMsXG4gICAgICAgIGFsbG93TWV0aG9kczogQ29ycy5BTExfTUVUSE9EUyxcbiAgICAgIH0sXG4gICAgfSk7XG5cbiAgICBjb25zdCBzdGF0dXNSZXNvdXJjZSA9IHRoaXMuYXBpLnJvb3QuYWRkUmVzb3VyY2UoJ3N0YXR1cycpO1xuICAgIGNvbnN0IGluc3RhbmNlUmVzb3VyY2UgPSBzdGF0dXNSZXNvdXJjZS5hZGRSZXNvdXJjZSgne2luc3RhbmNlSWR9Jyk7XG5cbiAgICAvLyBHRVQgL3N0YXR1cy97aW5zdGFuY2VJZH0gLSBDaGVjayBpbnN0YW5jZSBzdGF0dXNcbiAgICBpbnN0YW5jZVJlc291cmNlLmFkZE1ldGhvZCgnR0VUJywgbmV3IExhbWJkYUludGVncmF0aW9uKHRoaXMuZnVuY3Rpb24pKTtcblxuICAgIC8vIFBPU1QgL3N0YXR1cy97aW5zdGFuY2VJZH0vc3RhcnQgLSBTdGFydCBzdG9wcGVkIGluc3RhbmNlXG4gICAgY29uc3Qgc3RhcnRSZXNvdXJjZSA9IGluc3RhbmNlUmVzb3VyY2UuYWRkUmVzb3VyY2UoJ3N0YXJ0Jyk7XG4gICAgc3RhcnRSZXNvdXJjZS5hZGRNZXRob2QoJ1BPU1QnLCBuZXcgTGFtYmRhSW50ZWdyYXRpb24odGhpcy5mdW5jdGlvbikpO1xuXG4gICAgdGhpcy5hcGlVcmwgPSB0aGlzLmFwaS51cmw7XG5cbiAgICAvLyBDREstbmFnIHN1cHByZXNzaW9uc1xuICAgIE5hZ1N1cHByZXNzaW9ucy5hZGRSZXNvdXJjZVN1cHByZXNzaW9ucyhcbiAgICAgIHRoaXMuZnVuY3Rpb24sXG4gICAgICBbXG4gICAgICAgIHtcbiAgICAgICAgICBpZDogJ0F3c1NvbHV0aW9ucy1JQU00JyxcbiAgICAgICAgICByZWFzb246ICdNYW5hZ2VkIHBvbGljaWVzIGFjY2VwdGFibGUgZm9yIHdvcmtzaG9wIExhbWJkYSBmdW5jdGlvbnMnLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgaWQ6ICdBd3NTb2x1dGlvbnMtTDEnLFxuICAgICAgICAgIHJlYXNvbjogJ0xhdGVzdCBydW50aW1lIG5vdCByZXF1aXJlZCBmb3IgdGhpcyBmdW5jdGlvbicsXG4gICAgICAgIH0sXG4gICAgICBdLFxuICAgICAgdHJ1ZSxcbiAgICApO1xuXG4gICAgTmFnU3VwcHJlc3Npb25zLmFkZFJlc291cmNlU3VwcHJlc3Npb25zKFxuICAgICAgdGhpcy5hcGksXG4gICAgICBbXG4gICAgICAgIHtcbiAgICAgICAgICBpZDogJ0F3c1NvbHV0aW9ucy1BUElHMicsXG4gICAgICAgICAgcmVhc29uOiAnUmVxdWVzdCB2YWxpZGF0aW9uIG5vdCByZXF1aXJlZCBmb3IgdGhpcyBzaW1wbGUgQVBJJyxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIGlkOiAnQXdzU29sdXRpb25zLUlBTTQnLFxuICAgICAgICAgIHJlYXNvbjogJ01hbmFnZWQgcG9saWNpZXMgYWNjZXB0YWJsZSBmb3Igd29ya3Nob3AgQVBJIEdhdGV3YXknLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgaWQ6ICdBd3NTb2x1dGlvbnMtQVBJRzQnLFxuICAgICAgICAgIHJlYXNvbjogJ0F1dGhvcml6YXRpb24gbm90IHJlcXVpcmVkIGZvciBzdGF0dXMgY2hlY2sgZW5kcG9pbnQnLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgaWQ6ICdBd3NTb2x1dGlvbnMtQ09HNCcsXG4gICAgICAgICAgcmVhc29uOiAnQ29nbml0byBub3QgcmVxdWlyZWQgZm9yIHRoaXMgd29ya3Nob3AgQVBJJyxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIGlkOiAnQXdzU29sdXRpb25zLUFQSUcxJyxcbiAgICAgICAgICByZWFzb246ICdBY2Nlc3MgbG9nZ2luZyBub3QgcmVxdWlyZWQgZm9yIHdvcmtzaG9wIGVudmlyb25tZW50JyxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIGlkOiAnQXdzU29sdXRpb25zLUFQSUczJyxcbiAgICAgICAgICByZWFzb246ICdXQUYgbm90IHJlcXVpcmVkIGZvciB0aGlzIHdvcmtzaG9wIEFQSScsXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBpZDogJ0F3c1NvbHV0aW9ucy1BUElHNicsXG4gICAgICAgICAgcmVhc29uOiAnQ2xvdWRXYXRjaCBsb2dnaW5nIG5vdCByZXF1aXJlZCBmb3Igd29ya3Nob3AgZW52aXJvbm1lbnQnLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgaWQ6ICdBd3NTb2x1dGlvbnMtSUFNNScsXG4gICAgICAgICAgcmVhc29uOiAnV2lsZGNhcmQgcGVybWlzc2lvbnMgYWNjZXB0YWJsZSBmb3Igd29ya3Nob3AgQVBJIEdhdGV3YXkgZXhlY3V0aW9uIHJvbGUnLFxuICAgICAgICAgIGFwcGxpZXNUbzogWydSZXNvdXJjZTo6KiddLFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICAgIHRydWUsXG4gICAgKTtcbiAgfVxufVxuIl19
@@ -1,2 +0,0 @@
1
- import type { APIGatewayProxyEvent, APIGatewayProxyResult } from 'aws-lambda';
2
- export declare const handler: (event: APIGatewayProxyEvent) => Promise<APIGatewayProxyResult>;