├── .gitignore
├── README.md
├── functions
├── ask-chatgpt
│ ├── index.js
│ ├── package-lock.json
│ └── package.json
├── marshall-unmarshall-data
│ ├── index.js
│ ├── package-lock.json
│ └── package.json
├── send-api-request
│ ├── index.js
│ ├── package-lock.json
│ └── package.json
├── send-email
│ ├── index.js
│ ├── package-lock.json
│ └── package.json
└── set-log-retention
│ ├── index.js
│ ├── package-lock.json
│ └── package.json
├── layers
├── index.js
├── package-lock.json
└── package.json
└── template.yaml
/.gitignore:
--------------------------------------------------------------------------------
1 | # Logs
2 | logs
3 | *.log
4 | npm-debug.log*
5 | yarn-debug.log*
6 | yarn-error.log*
7 | lerna-debug.log*
8 | node_modules/
9 | samconfig.toml
10 | .aws-sam/
11 | # Diagnostic reports (https://nodejs.org/api/report.html)
12 | report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json
13 |
14 | # Runtime data
15 | pids
16 | *.pid
17 | *.seed
18 | *.pid.lock
19 |
20 | # Directory for instrumented libs generated by jscoverage/JSCover
21 | lib-cov
22 |
23 | # Coverage directory used by tools like istanbul
24 | coverage
25 | *.lcov
26 |
27 | # nyc test coverage
28 | .nyc_output
29 |
30 | # Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files)
31 | .grunt
32 |
33 | # Bower dependency directory (https://bower.io/)
34 | bower_components
35 |
36 | # node-waf configuration
37 | .lock-wscript
38 |
39 | # Compiled binary addons (https://nodejs.org/api/addons.html)
40 | build/Release
41 |
42 | # Dependency directories
43 | node_modules/
44 | jspm_packages/
45 |
46 | # TypeScript v1 declaration files
47 | typings/
48 |
49 | # TypeScript cache
50 | *.tsbuildinfo
51 |
52 | # Optional npm cache directory
53 | .npm
54 |
55 | # Optional eslint cache
56 | .eslintcache
57 |
58 | # Microbundle cache
59 | .rpt2_cache/
60 | .rts2_cache_cjs/
61 | .rts2_cache_es/
62 | .rts2_cache_umd/
63 |
64 | # Optional REPL history
65 | .node_repl_history
66 |
67 | # Output of 'npm pack'
68 | *.tgz
69 |
70 | # Yarn Integrity file
71 | .yarn-integrity
72 |
73 | # dotenv environment variables file
74 | .env
75 | .env.test
76 |
77 | # parcel-bundler cache (https://parceljs.org/)
78 | .cache
79 |
80 | # Next.js build output
81 | .next
82 |
83 | # Nuxt.js build / generate output
84 | .nuxt
85 | dist
86 |
87 | # Gatsby files
88 | .cache/
89 | # Comment in the public line in if your project uses Gatsby and *not* Next.js
90 | # https://nextjs.org/blog/next-9-1#public-directory-support
91 | # public
92 |
93 | # vuepress build output
94 | .vuepress/dist
95 |
96 | # Serverless directories
97 | .serverless/
98 |
99 | # FuseBox cache
100 | .fusebox/
101 |
102 | # DynamoDB Local files
103 | .dynamodb/
104 |
105 | # TernJS port file
106 | .tern-port
107 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # Serverless Toolbox
2 |
3 | If you build serverless projects as a hobby, you might find yourself rebuilding the same utility functions over and over. With serverless, this isn't a problem when it comes to cost, but it does result in some difficulty if you need to make an update to the same function you've implemented 3+ times.
4 |
5 | With the serverless toolbox, you update your utility functions in one place... here. The contained functions are triggered either by event bridge events or are consumed via solving the ARN through SSM parameters, so they are loosely coupled with your projects. Make an update once, and all your projects seamlessly incorporate the changes.
6 |
7 | ## Deployment
8 |
9 | The toolbox is deployed via a SAM template, so if you don't already have it, you will need to install the [SAM CLI](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/install-sam-cli.html). Once installed, you can run the following commands in a terminal in the root directory.
10 |
11 | ```bash
12 | sam build --parallel
13 | sam deploy --guided
14 | ```
15 |
16 | The `sam deploy --guided` command will walk you through a wizard, asking for deployment variables. Below is a list of deployment variables and which functions they are required for.
17 |
18 | ### Variables
19 |
20 | You are not required to put in any deployment variables. However, if you choose to omit some, certain functions **will not deploy**.
21 |
22 | |Variable|Description|Used For|
23 | |--------|-----------|--------|
24 | |SendgridApiKey| API key used for authenticating calls to SendGrid|Send Email function|
25 | |AdminEmail| The email address used to as the "From" address when sending emails|Send Email function|
26 | |MomentoApiToken| API token used for authenticating calls to Momento|Ask ChatGPT function|
27 | |OpenAIApiKey| API key used for authenticaing calls to OpenAI (ChatGPT)|Ask ChatGPT function|
28 |
29 | ## Functions
30 |
31 | ### Ask ChatGPT
32 |
33 | This function will maintain conversations with ChatGPT for you across invocations and execution environments. Conversations are identified by a `conversationKey` property that stores the chat history in a Momento cache.
34 |
35 | #### Arguments
36 |
37 | | Name | Description | Required |
38 | |-----------------|-----------------------------------------------------|----------|
39 | | query | Prompt to ask ChatGPT | Yes |
40 | | conversationKey | Specifies the conversation key for context tracking. | No |
41 | | systemContext | Indicates the perspective you want ChatGPT to answer in | No |
42 | | rememberResponse| Determines if the response should be remembered in the conversation history. | No |
43 | | trim | Controls whether trailing and leading whitespace is removed. | No |
44 | | trimFront | Controls whether leading whitespace is removed. | No |
45 | | schema | Defines the schema for ChatGPT to structure the response. | No |
46 | | outputFormat | Specifies the desired output format of the response (json or string). | No |
47 |
48 | **Example input**
49 |
50 | ```json
51 | {
52 | "conversationKey": "Example",
53 | "systemContext": "You are a travel agent with 30 years experience",
54 | "query": "What is the safest place to travel with kids?",
55 | "rememberResponse": true,
56 | "schema": {
57 | "$schema": "http://json-schema.org/draft-07/schema#",
58 | "type": "object",
59 | "properties": {
60 | "destination": {
61 | "type": "string",
62 | "description": "Location safest to travel."
63 | },
64 | "reasoning": {
65 | "type": "string",
66 | "description": "Reason why the place is the safest."
67 | }
68 | },
69 | "required": [ "destination", "reasoning"]
70 | }
71 | }
72 | ```
73 |
74 | **Example output**
75 |
76 | ```json
77 | {
78 | "response": {
79 | "destination": "Iceland",
80 | "reasoning": "Known for its stunning landscapes, Iceland offers a safe environment with low crime rates, clean cities, and a focus on child-friendly activities like exploring geothermal pools, waterfalls, and natural wonders"
81 | }
82 | }
83 | ```
84 |
85 | **How to Invoke**
86 |
87 | This Lambda function is intended to be used synchronously or as part of a workflow. With this in mind, there are no explicit triggers on it, and it must be invoked manually (meaning you need to build it into whatever you're building).
88 |
89 | The ARN is exported into an SSM parameter for convenience/loose coupling. Here is an example of a StateMachine resource in SAM that consumes the function.
90 |
91 | ```yaml
92 | MyFirstStateMachine:
93 | Type: AWS::Serverless::StateMachine
94 | Properties:
95 | Type: STANDARD
96 | DefinitionUri: workflows/my-definition.asl.json
97 | DefinitionSubstitutions:
98 | AskChatGPTFunctionArn: "{{resolve:ssm:/serverless-toolbox/ask-chatgpt}}"
99 | Policies:
100 | - Version: 2012-10-17
101 | Statement:
102 | Effect: Allow
103 | Action: lambda:InvokeFunction
104 | Resource: "{{resolve:ssm:/serverless-toolbox/ask-chatgpt}}"
105 | ```
106 |
107 | ### Send API Request
108 |
109 | A common task in any application is to hit a 3rd party API. This function will call a web API with the provided configuration and return the body of the response.
110 |
111 | **Example Input**
112 |
113 | ```json
114 | {
115 | "secretKey": "key-from-auth-token-secret",
116 | "request": {
117 | "method": "POST",
118 | "baseUrl": "https://api.medium.com/posts",
119 | "headers": {
120 | "x-custom-header": "value"
121 | },
122 | "body": {
123 | "title": "My title",
124 | "body_markdown": "## Hello!"
125 | }
126 | },
127 | "auth": {
128 | "prefix": "Bearer",
129 | "location": "header",
130 | "key": "Authorization"
131 | },
132 | "query": {
133 | "custom-value": "anything-you-want"
134 | }
135 | }
136 | ```
137 |
138 | **Example Output**
139 |
140 | ```json
141 | {
142 | "id": "A4G7222D"
143 | }
144 | ```
145 |
146 | **How to Invoke**
147 |
148 | This is similar to the *ask-chatgpt* function in that it was intended to be called synchronously or as part of a workflow. See the example SAM resource of how to consume this function in a state machine.
149 |
150 | ```yaml
151 | MySecondStateMachine:
152 | Type: AWS::Serverless::StateMachine
153 | Properties:
154 | Type: STANDARD
155 | DefinitionUri: workflows/my-definition.asl.json
156 | DefinitionSubstitutions:
157 | AskChatGPTFunctionArn: "{{resolve:ssm:/serverless-toolbox/send-api-request}}"
158 | Policies:
159 | - Version: 2012-10-17
160 | Statement:
161 | Effect: Allow
162 | Action: lambda:InvokeFunction
163 | Resource: "{{resolve:ssm:/serverless-toolbox/send-api-request}}"
164 | ```
165 |
166 | ### Send Email
167 |
168 | If you wish to send an email via SendGrid, this function is ready for you. You will need to [get a SendGrid API key](https://docs.sendgrid.com/ui/account-and-settings/api-keys) and [verify your email address](https://docs.sendgrid.com/for-developers/sending-email/sender-identity). After the initial setup is done, you can send emails with a simple event publish!
169 |
170 | **How to Invoke**
171 |
172 | This function is triggered via an EventBridge rule. Please refer to the example below publishing a `Send Email` event.
173 |
174 | **Example Input**
175 |
176 | ```json
177 | {
178 | "DetailType": "Send Email",
179 | "Source": "my.app",
180 | "Detail": {
181 | "subject": "Dear reader",
182 | "to": "personToRecieveEmail@mailinator.com",
183 | "html": "
Hello!
"
184 | }
185 | }
186 | ```
187 | If you don't wish to use an html format in your email, you can use a `text` property instead in the `Detail` object.
188 |
189 | ### Set Log Retention
190 |
191 | This is a function with an administrative purpose. As you build more and more Lambda functions, you begin to accumulate CloudWatch logs with unlimited retention. Rarely do we need Lambda logs forever, so this function is set to run every day and set any new function logs to a configurable retention period.
192 |
193 | As you build new functions, they will be picked up automatically and the retention period will be updated. If you wish to change the retention period, it is an environment variable configured in the template.
194 |
195 | **Example Input**
196 |
197 | None
198 |
199 | **How to Invoke**
200 |
201 | Triggered automatically by an EventBridge scheduled invoke every day.
202 |
203 | ### Marshall/Unmarshall Data
204 |
205 | This function is intended to be used in a Step Function workflow. When you do direct integrations with DynamoDB, the data is required to be marshalled for PUTs and is returned in a marshalled format for a GET/QUERY. This function will dynamically convert it to standard format JSON
206 |
207 | **Example Input**
208 |
209 | ```json
210 | {
211 | "marshall": true,
212 | "data": {
213 | "myValue": "test"
214 | }
215 | }
216 | ```
217 |
218 | **Example Output**
219 |
220 | ```json
221 | {
222 | "data": {
223 | "myValue": {
224 | "S": { "test" }
225 | }
226 | }
227 | }
228 | ```
229 |
230 | If you do not provide the `marshall` property or set it to `false`, it will default to an *unmarshall* behavior and unmarshall the value in the `data` property.
231 |
232 | **How to Invoke**
233 |
234 | You can reference the Arn of this function in an IaC template with the following:
235 |
236 | ```
237 | {{resolve:ssm:/serverless-toolbox/marshall-unmarshall-data}}
238 | ```
239 |
--------------------------------------------------------------------------------
/functions/ask-chatgpt/index.js:
--------------------------------------------------------------------------------
1 | const OpenAI = require('openai');
2 | const { CacheClient, CredentialProvider, Configurations, CacheListFetch } = require('@gomomento/sdk');
3 | const shared = require('/opt/nodejs/index');
4 | const { TopicClient } = require('@gomomento/sdk');
5 |
6 | let cacheClient;
7 | let topicClient;
8 | let openai;
9 |
10 | const JSON_MODE_MODELS = ['gpt-4-1106-preview', 'gpt-4-vision-preview'];
11 |
12 | exports.handler = async (state) => {
13 | let messages = [];
14 | await initialize();
15 |
16 | if (state.conversationKey) {
17 | const previousMessageResponse = await cacheClient.listFetch('chatgpt', state.conversationKey);
18 | if (previousMessageResponse instanceof CacheListFetch.Hit) {
19 | messages = previousMessageResponse.valueListString().map(m => JSON.parse(m));
20 | }
21 | }
22 |
23 |
24 | if (state.systemContext && !messages.some(m => m.role == 'system')) {
25 | messages.push({ role: 'system', content: state.systemContext });
26 | }
27 |
28 | let query = state.query;
29 | const model = state.model?.toLowerCase() ?? 'gpt-4-0613';
30 | if (JSON_MODE_MODELS.includes(model) && !state.query.toLowerCase().includes('json')) {
31 | query += " Structure your answer in JSON format.";
32 | }
33 |
34 | const newMessage = { role: 'user', content: query };
35 | messages.push(newMessage);
36 |
37 |
38 | try {
39 | const params = {
40 | model,
41 | temperature: .7,
42 | messages,
43 | ...state.schema && {
44 | functions: [{
45 | name: 'user-schema',
46 | parameters: state.schema
47 | }]
48 | },
49 | ...(state.outputFormat?.toLowerCase() == 'json' &&
50 | JSON_MODE_MODELS.includes(model)) && {
51 | response_format: { type: 'json_object' },
52 | }
53 | };
54 |
55 | let message;
56 | if (state.streamResponse) {
57 | message = await handleStreamResponse(params, state.conversationKey);
58 | } else {
59 | message = await handleRequestResponse(params);
60 | }
61 |
62 |
63 | if (state.conversationKey && state.rememberResponse) {
64 | await cacheClient.listConcatenateBack('chatgpt', state.conversationKey, [JSON.stringify(newMessage), JSON.stringify(message)]);
65 | }
66 |
67 | let response = message.content;
68 | if (state.schema) {
69 | try {
70 | response = JSON.parse(message.function_call.arguments);
71 | return { response };
72 | } catch (err) {
73 | throwCustomError('ResponseFormatError', err.message);
74 | }
75 | }
76 |
77 | if (state.trim) {
78 | const pieces = response.split('\n\n');
79 |
80 | if (pieces.length > 2) {
81 | const removedText = pieces.slice(1, pieces.length - 2);
82 | response = removedText.join('\n\n');
83 | if (!response) {
84 | response = pieces.join('\n\n');
85 | }
86 | }
87 | } else if (state.trimFront) {
88 | const pieces = response.split('\n\n');
89 | if (pieces.length > 2) {
90 | const removedText = pieces.slice(1);
91 | response = removedText.join('\n\n');
92 | }
93 | }
94 |
95 | switch (state.outputFormat?.toLowerCase()) {
96 | case 'json':
97 | response = JSON.parse(response);
98 | break;
99 | case 'number':
100 | response = Number(response);
101 | break;
102 | default:
103 | response = response.toString();
104 | break;
105 | }
106 |
107 |
108 | return { response };
109 | } catch (err) {
110 | if (err.response) {
111 | console.error({ status: err.response.status, data: err.response.data });
112 | if (err.response.status == 429) {
113 | throwCustomError('RateLimitExceeded', err.message);
114 | }
115 | } else {
116 | console.error(err.message);
117 | }
118 |
119 | throw err;
120 | }
121 | };
122 |
123 | const handleRequestResponse = async (params) => {
124 | const result = await openai.chat.completions.create(params);
125 |
126 | return result.choices[0].message;
127 | };
128 |
129 | const handleStreamResponse = async (params, topicName) => {
130 | params.stream = true;
131 | const stream = await openai.beta.chat.completions.stream(params);
132 |
133 | for await (const chunk of stream) {
134 | const message = chunk.choices[0]?.delta?.content;
135 | if (message) {
136 | await topicClient.publish('chatgpt', topicName, message);
137 | }
138 | }
139 |
140 | const completion = await stream.finalChatCompletion();
141 | return completion.choices[0].message;
142 | };
143 |
144 | const setupOpenAI = async () => {
145 | if (!openai) {
146 | const authToken = await shared.getSecret('openai');
147 | openai = new OpenAI({ apiKey: authToken });
148 | }
149 | };
150 |
151 | const initialize = async () => {
152 | await setupCacheClient();
153 | await setupOpenAI();
154 | };
155 |
156 | const setupCacheClient = async () => {
157 | if (!cacheClient || !topicClient) {
158 | const apiKey = await shared.getSecret('momento');
159 |
160 | cacheClient = new CacheClient({
161 | configuration: Configurations.Lambda.latest(),
162 | credentialProvider: CredentialProvider.fromString({ apiKey }),
163 | defaultTtlSeconds: Number(process.env.CACHE_TTL)
164 | });
165 |
166 | topicClient = new TopicClient({
167 | configuration: Configurations.Lambda.latest(),
168 | credentialProvider: CredentialProvider.fromString({ apiKey })
169 | });
170 | }
171 | };
172 |
173 | const throwCustomError = (type, message) => {
174 | function CustomError(message) {
175 | this.name = type;
176 | this.message = message;
177 | }
178 |
179 | CustomError.prototype = new Error();
180 | console.log(`Throwing ${type}`);
181 | throw new CustomError(message);
182 | };
183 |
--------------------------------------------------------------------------------
/functions/ask-chatgpt/package-lock.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "ask-chatgpt",
3 | "version": "1.0.0",
4 | "lockfileVersion": 2,
5 | "requires": true,
6 | "packages": {
7 | "": {
8 | "name": "ask-chatgpt",
9 | "version": "1.0.0",
10 | "license": "ISC",
11 | "dependencies": {
12 | "@gomomento/sdk": "^1.51.1"
13 | },
14 | "devDependencies": {
15 | "openai": "^4.19.1"
16 | }
17 | },
18 | "node_modules/@gomomento/generated-types": {
19 | "version": "0.96.0",
20 | "resolved": "https://registry.npmjs.org/@gomomento/generated-types/-/generated-types-0.96.0.tgz",
21 | "integrity": "sha512-o4bTdJ/PIkvEMZU4IHcrOGyiAxAnrkHZKFlIDmcmEki2zIvpj7Pqkp+7TqQ6BIH6gVo+IOmTecP56HADVUdM9g==",
22 | "dependencies": {
23 | "@grpc/grpc-js": "1.9.0",
24 | "google-protobuf": "3.21.2",
25 | "grpc-tools": "^1.12.4",
26 | "protoc-gen-ts": "^0.8.6"
27 | }
28 | },
29 | "node_modules/@gomomento/sdk": {
30 | "version": "1.51.1",
31 | "resolved": "https://registry.npmjs.org/@gomomento/sdk/-/sdk-1.51.1.tgz",
32 | "integrity": "sha512-VldUEt9c2LZahGvqSlebkxHnVqFkv+cjk7d6riOqD26NnwyCBhjZ5wH92OWvEfssQKpGTz5CWkRqZpHC0q0UZA==",
33 | "dependencies": {
34 | "@gomomento/generated-types": "0.96.0",
35 | "@gomomento/sdk-core": "1.51.1",
36 | "@grpc/grpc-js": "1.9.0",
37 | "@types/google-protobuf": "3.15.10",
38 | "google-protobuf": "3.21.2",
39 | "jwt-decode": "3.1.2"
40 | },
41 | "engines": {
42 | "node": ">= 14"
43 | }
44 | },
45 | "node_modules/@gomomento/sdk-core": {
46 | "version": "1.51.1",
47 | "resolved": "https://registry.npmjs.org/@gomomento/sdk-core/-/sdk-core-1.51.1.tgz",
48 | "integrity": "sha512-u6x5Gpi+sVYNcyRpEfoSJJ3YTTyLG6889QkPo3Z/e6hjNQD51h1Xf52eG1P9numzWWixlStEXIJp3H4hqsZ2vA==",
49 | "dependencies": {
50 | "buffer": "6.0.3",
51 | "jwt-decode": "3.1.2"
52 | },
53 | "engines": {
54 | "node": ">= 14"
55 | }
56 | },
57 | "node_modules/@grpc/grpc-js": {
58 | "version": "1.9.0",
59 | "resolved": "https://registry.npmjs.org/@grpc/grpc-js/-/grpc-js-1.9.0.tgz",
60 | "integrity": "sha512-H8+iZh+kCE6VR/Krj6W28Y/ZlxoZ1fOzsNt77nrdE3knkbSelW1Uus192xOFCxHyeszLj8i4APQkSIXjAoOxXg==",
61 | "dependencies": {
62 | "@grpc/proto-loader": "^0.7.0",
63 | "@types/node": ">=12.12.47"
64 | },
65 | "engines": {
66 | "node": "^8.13.0 || >=10.10.0"
67 | }
68 | },
69 | "node_modules/@grpc/proto-loader": {
70 | "version": "0.7.10",
71 | "resolved": "https://registry.npmjs.org/@grpc/proto-loader/-/proto-loader-0.7.10.tgz",
72 | "integrity": "sha512-CAqDfoaQ8ykFd9zqBDn4k6iWT9loLAlc2ETmDFS9JCD70gDcnA4L3AFEo2iV7KyAtAAHFW9ftq1Fz+Vsgq80RQ==",
73 | "dependencies": {
74 | "lodash.camelcase": "^4.3.0",
75 | "long": "^5.0.0",
76 | "protobufjs": "^7.2.4",
77 | "yargs": "^17.7.2"
78 | },
79 | "bin": {
80 | "proto-loader-gen-types": "build/bin/proto-loader-gen-types.js"
81 | },
82 | "engines": {
83 | "node": ">=6"
84 | }
85 | },
86 | "node_modules/@mapbox/node-pre-gyp": {
87 | "version": "1.0.11",
88 | "resolved": "https://registry.npmjs.org/@mapbox/node-pre-gyp/-/node-pre-gyp-1.0.11.tgz",
89 | "integrity": "sha512-Yhlar6v9WQgUp/He7BdgzOz8lqMQ8sU+jkCq7Wx8Myc5YFJLbEe7lgui/V7G1qB1DJykHSGwreceSaD60Y0PUQ==",
90 | "dependencies": {
91 | "detect-libc": "^2.0.0",
92 | "https-proxy-agent": "^5.0.0",
93 | "make-dir": "^3.1.0",
94 | "node-fetch": "^2.6.7",
95 | "nopt": "^5.0.0",
96 | "npmlog": "^5.0.1",
97 | "rimraf": "^3.0.2",
98 | "semver": "^7.3.5",
99 | "tar": "^6.1.11"
100 | },
101 | "bin": {
102 | "node-pre-gyp": "bin/node-pre-gyp"
103 | }
104 | },
105 | "node_modules/@protobufjs/aspromise": {
106 | "version": "1.1.2",
107 | "resolved": "https://registry.npmjs.org/@protobufjs/aspromise/-/aspromise-1.1.2.tgz",
108 | "integrity": "sha512-j+gKExEuLmKwvz3OgROXtrJ2UG2x8Ch2YZUxahh+s1F2HZ+wAceUNLkvy6zKCPVRkU++ZWQrdxsUeQXmcg4uoQ=="
109 | },
110 | "node_modules/@protobufjs/base64": {
111 | "version": "1.1.2",
112 | "resolved": "https://registry.npmjs.org/@protobufjs/base64/-/base64-1.1.2.tgz",
113 | "integrity": "sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg=="
114 | },
115 | "node_modules/@protobufjs/codegen": {
116 | "version": "2.0.4",
117 | "resolved": "https://registry.npmjs.org/@protobufjs/codegen/-/codegen-2.0.4.tgz",
118 | "integrity": "sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg=="
119 | },
120 | "node_modules/@protobufjs/eventemitter": {
121 | "version": "1.1.0",
122 | "resolved": "https://registry.npmjs.org/@protobufjs/eventemitter/-/eventemitter-1.1.0.tgz",
123 | "integrity": "sha512-j9ednRT81vYJ9OfVuXG6ERSTdEL1xVsNgqpkxMsbIabzSo3goCjDIveeGv5d03om39ML71RdmrGNjG5SReBP/Q=="
124 | },
125 | "node_modules/@protobufjs/fetch": {
126 | "version": "1.1.0",
127 | "resolved": "https://registry.npmjs.org/@protobufjs/fetch/-/fetch-1.1.0.tgz",
128 | "integrity": "sha512-lljVXpqXebpsijW71PZaCYeIcE5on1w5DlQy5WH6GLbFryLUrBD4932W/E2BSpfRJWseIL4v/KPgBFxDOIdKpQ==",
129 | "dependencies": {
130 | "@protobufjs/aspromise": "^1.1.1",
131 | "@protobufjs/inquire": "^1.1.0"
132 | }
133 | },
134 | "node_modules/@protobufjs/float": {
135 | "version": "1.0.2",
136 | "resolved": "https://registry.npmjs.org/@protobufjs/float/-/float-1.0.2.tgz",
137 | "integrity": "sha512-Ddb+kVXlXst9d+R9PfTIxh1EdNkgoRe5tOX6t01f1lYWOvJnSPDBlG241QLzcyPdoNTsblLUdujGSE4RzrTZGQ=="
138 | },
139 | "node_modules/@protobufjs/inquire": {
140 | "version": "1.1.0",
141 | "resolved": "https://registry.npmjs.org/@protobufjs/inquire/-/inquire-1.1.0.tgz",
142 | "integrity": "sha512-kdSefcPdruJiFMVSbn801t4vFK7KB/5gd2fYvrxhuJYg8ILrmn9SKSX2tZdV6V+ksulWqS7aXjBcRXl3wHoD9Q=="
143 | },
144 | "node_modules/@protobufjs/path": {
145 | "version": "1.1.2",
146 | "resolved": "https://registry.npmjs.org/@protobufjs/path/-/path-1.1.2.tgz",
147 | "integrity": "sha512-6JOcJ5Tm08dOHAbdR3GrvP+yUUfkjG5ePsHYczMFLq3ZmMkAD98cDgcT2iA1lJ9NVwFd4tH/iSSoe44YWkltEA=="
148 | },
149 | "node_modules/@protobufjs/pool": {
150 | "version": "1.1.0",
151 | "resolved": "https://registry.npmjs.org/@protobufjs/pool/-/pool-1.1.0.tgz",
152 | "integrity": "sha512-0kELaGSIDBKvcgS4zkjz1PeddatrjYcmMWOlAuAPwAeccUrPHdUqo/J6LiymHHEiJT5NrF1UVwxY14f+fy4WQw=="
153 | },
154 | "node_modules/@protobufjs/utf8": {
155 | "version": "1.1.0",
156 | "resolved": "https://registry.npmjs.org/@protobufjs/utf8/-/utf8-1.1.0.tgz",
157 | "integrity": "sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw=="
158 | },
159 | "node_modules/@types/google-protobuf": {
160 | "version": "3.15.10",
161 | "resolved": "https://registry.npmjs.org/@types/google-protobuf/-/google-protobuf-3.15.10.tgz",
162 | "integrity": "sha512-uiyKJCa8hbmPE4yxwjbkMOALaBAiOVcatW/yEGbjTqwAh4kzNgQPWRlJMNPXpB5CPUM66xsYufiSX9WKHZCE9g=="
163 | },
164 | "node_modules/@types/node": {
165 | "version": "20.3.1",
166 | "resolved": "https://registry.npmjs.org/@types/node/-/node-20.3.1.tgz",
167 | "integrity": "sha512-EhcH/wvidPy1WeML3TtYFGR83UzjxeWRen9V402T8aUGYsCHOmfoisV3ZSg03gAFIbLq8TnWOJ0f4cALtnSEUg=="
168 | },
169 | "node_modules/@types/node-fetch": {
170 | "version": "2.6.9",
171 | "resolved": "https://registry.npmjs.org/@types/node-fetch/-/node-fetch-2.6.9.tgz",
172 | "integrity": "sha512-bQVlnMLFJ2d35DkPNjEPmd9ueO/rh5EiaZt2bhqiSarPjZIuIV6bPQVqcrEyvNo+AfTrRGVazle1tl597w3gfA==",
173 | "dev": true,
174 | "dependencies": {
175 | "@types/node": "*",
176 | "form-data": "^4.0.0"
177 | }
178 | },
179 | "node_modules/abbrev": {
180 | "version": "1.1.1",
181 | "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz",
182 | "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q=="
183 | },
184 | "node_modules/abort-controller": {
185 | "version": "3.0.0",
186 | "resolved": "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz",
187 | "integrity": "sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==",
188 | "dev": true,
189 | "dependencies": {
190 | "event-target-shim": "^5.0.0"
191 | },
192 | "engines": {
193 | "node": ">=6.5"
194 | }
195 | },
196 | "node_modules/agent-base": {
197 | "version": "6.0.2",
198 | "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz",
199 | "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==",
200 | "dependencies": {
201 | "debug": "4"
202 | },
203 | "engines": {
204 | "node": ">= 6.0.0"
205 | }
206 | },
207 | "node_modules/agentkeepalive": {
208 | "version": "4.5.0",
209 | "resolved": "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-4.5.0.tgz",
210 | "integrity": "sha512-5GG/5IbQQpC9FpkRGsSvZI5QYeSCzlJHdpBQntCsuTOxhKD8lqKhrleg2Yi7yvMIf82Ycmmqln9U8V9qwEiJew==",
211 | "dev": true,
212 | "dependencies": {
213 | "humanize-ms": "^1.2.1"
214 | },
215 | "engines": {
216 | "node": ">= 8.0.0"
217 | }
218 | },
219 | "node_modules/ansi-regex": {
220 | "version": "5.0.1",
221 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
222 | "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
223 | "engines": {
224 | "node": ">=8"
225 | }
226 | },
227 | "node_modules/ansi-styles": {
228 | "version": "4.3.0",
229 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
230 | "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
231 | "dependencies": {
232 | "color-convert": "^2.0.1"
233 | },
234 | "engines": {
235 | "node": ">=8"
236 | },
237 | "funding": {
238 | "url": "https://github.com/chalk/ansi-styles?sponsor=1"
239 | }
240 | },
241 | "node_modules/aproba": {
242 | "version": "2.0.0",
243 | "resolved": "https://registry.npmjs.org/aproba/-/aproba-2.0.0.tgz",
244 | "integrity": "sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ=="
245 | },
246 | "node_modules/are-we-there-yet": {
247 | "version": "2.0.0",
248 | "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-2.0.0.tgz",
249 | "integrity": "sha512-Ci/qENmwHnsYo9xKIcUJN5LeDKdJ6R1Z1j9V/J5wyq8nh/mYPEpIKJbBZXtZjG04HiK7zV/p6Vs9952MrMeUIw==",
250 | "dependencies": {
251 | "delegates": "^1.0.0",
252 | "readable-stream": "^3.6.0"
253 | },
254 | "engines": {
255 | "node": ">=10"
256 | }
257 | },
258 | "node_modules/asynckit": {
259 | "version": "0.4.0",
260 | "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
261 | "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==",
262 | "dev": true
263 | },
264 | "node_modules/balanced-match": {
265 | "version": "1.0.2",
266 | "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
267 | "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw=="
268 | },
269 | "node_modules/base-64": {
270 | "version": "0.1.0",
271 | "resolved": "https://registry.npmjs.org/base-64/-/base-64-0.1.0.tgz",
272 | "integrity": "sha512-Y5gU45svrR5tI2Vt/X9GPd3L0HNIKzGu202EjxrXMpuc2V2CiKgemAbUUsqYmZJvPtCXoUKjNZwBJzsNScUbXA==",
273 | "dev": true
274 | },
275 | "node_modules/base64-js": {
276 | "version": "1.5.1",
277 | "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz",
278 | "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==",
279 | "funding": [
280 | {
281 | "type": "github",
282 | "url": "https://github.com/sponsors/feross"
283 | },
284 | {
285 | "type": "patreon",
286 | "url": "https://www.patreon.com/feross"
287 | },
288 | {
289 | "type": "consulting",
290 | "url": "https://feross.org/support"
291 | }
292 | ]
293 | },
294 | "node_modules/brace-expansion": {
295 | "version": "1.1.11",
296 | "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
297 | "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
298 | "dependencies": {
299 | "balanced-match": "^1.0.0",
300 | "concat-map": "0.0.1"
301 | }
302 | },
303 | "node_modules/buffer": {
304 | "version": "6.0.3",
305 | "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz",
306 | "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==",
307 | "funding": [
308 | {
309 | "type": "github",
310 | "url": "https://github.com/sponsors/feross"
311 | },
312 | {
313 | "type": "patreon",
314 | "url": "https://www.patreon.com/feross"
315 | },
316 | {
317 | "type": "consulting",
318 | "url": "https://feross.org/support"
319 | }
320 | ],
321 | "dependencies": {
322 | "base64-js": "^1.3.1",
323 | "ieee754": "^1.2.1"
324 | }
325 | },
326 | "node_modules/charenc": {
327 | "version": "0.0.2",
328 | "resolved": "https://registry.npmjs.org/charenc/-/charenc-0.0.2.tgz",
329 | "integrity": "sha512-yrLQ/yVUFXkzg7EDQsPieE/53+0RlaWTs+wBrvW36cyilJ2SaDWfl4Yj7MtLTXleV9uEKefbAGUPv2/iWSooRA==",
330 | "dev": true,
331 | "engines": {
332 | "node": "*"
333 | }
334 | },
335 | "node_modules/chownr": {
336 | "version": "2.0.0",
337 | "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz",
338 | "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==",
339 | "engines": {
340 | "node": ">=10"
341 | }
342 | },
343 | "node_modules/cliui": {
344 | "version": "8.0.1",
345 | "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz",
346 | "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==",
347 | "dependencies": {
348 | "string-width": "^4.2.0",
349 | "strip-ansi": "^6.0.1",
350 | "wrap-ansi": "^7.0.0"
351 | },
352 | "engines": {
353 | "node": ">=12"
354 | }
355 | },
356 | "node_modules/color-convert": {
357 | "version": "2.0.1",
358 | "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
359 | "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
360 | "dependencies": {
361 | "color-name": "~1.1.4"
362 | },
363 | "engines": {
364 | "node": ">=7.0.0"
365 | }
366 | },
367 | "node_modules/color-name": {
368 | "version": "1.1.4",
369 | "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
370 | "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
371 | },
372 | "node_modules/color-support": {
373 | "version": "1.1.3",
374 | "resolved": "https://registry.npmjs.org/color-support/-/color-support-1.1.3.tgz",
375 | "integrity": "sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==",
376 | "bin": {
377 | "color-support": "bin.js"
378 | }
379 | },
380 | "node_modules/combined-stream": {
381 | "version": "1.0.8",
382 | "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz",
383 | "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==",
384 | "dev": true,
385 | "dependencies": {
386 | "delayed-stream": "~1.0.0"
387 | },
388 | "engines": {
389 | "node": ">= 0.8"
390 | }
391 | },
392 | "node_modules/concat-map": {
393 | "version": "0.0.1",
394 | "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
395 | "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg=="
396 | },
397 | "node_modules/console-control-strings": {
398 | "version": "1.1.0",
399 | "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz",
400 | "integrity": "sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ=="
401 | },
402 | "node_modules/crypt": {
403 | "version": "0.0.2",
404 | "resolved": "https://registry.npmjs.org/crypt/-/crypt-0.0.2.tgz",
405 | "integrity": "sha512-mCxBlsHFYh9C+HVpiEacem8FEBnMXgU9gy4zmNC+SXAZNB/1idgp/aulFJ4FgCi7GPEVbfyng092GqL2k2rmow==",
406 | "dev": true,
407 | "engines": {
408 | "node": "*"
409 | }
410 | },
411 | "node_modules/debug": {
412 | "version": "4.3.4",
413 | "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
414 | "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
415 | "dependencies": {
416 | "ms": "2.1.2"
417 | },
418 | "engines": {
419 | "node": ">=6.0"
420 | },
421 | "peerDependenciesMeta": {
422 | "supports-color": {
423 | "optional": true
424 | }
425 | }
426 | },
427 | "node_modules/debug/node_modules/ms": {
428 | "version": "2.1.2",
429 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
430 | "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
431 | },
432 | "node_modules/delayed-stream": {
433 | "version": "1.0.0",
434 | "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
435 | "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==",
436 | "dev": true,
437 | "engines": {
438 | "node": ">=0.4.0"
439 | }
440 | },
441 | "node_modules/delegates": {
442 | "version": "1.0.0",
443 | "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz",
444 | "integrity": "sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ=="
445 | },
446 | "node_modules/detect-libc": {
447 | "version": "2.0.2",
448 | "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.2.tgz",
449 | "integrity": "sha512-UX6sGumvvqSaXgdKGUsgZWqcUyIXZ/vZTrlRT/iobiKhGL0zL4d3osHj3uqllWJK+i+sixDS/3COVEOFbupFyw==",
450 | "engines": {
451 | "node": ">=8"
452 | }
453 | },
454 | "node_modules/digest-fetch": {
455 | "version": "1.3.0",
456 | "resolved": "https://registry.npmjs.org/digest-fetch/-/digest-fetch-1.3.0.tgz",
457 | "integrity": "sha512-CGJuv6iKNM7QyZlM2T3sPAdZWd/p9zQiRNS9G+9COUCwzWFTs0Xp8NF5iePx7wtvhDykReiRRrSeNb4oMmB8lA==",
458 | "dev": true,
459 | "dependencies": {
460 | "base-64": "^0.1.0",
461 | "md5": "^2.3.0"
462 | }
463 | },
464 | "node_modules/emoji-regex": {
465 | "version": "8.0.0",
466 | "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
467 | "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A=="
468 | },
469 | "node_modules/escalade": {
470 | "version": "3.1.1",
471 | "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz",
472 | "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==",
473 | "engines": {
474 | "node": ">=6"
475 | }
476 | },
477 | "node_modules/event-target-shim": {
478 | "version": "5.0.1",
479 | "resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz",
480 | "integrity": "sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==",
481 | "dev": true,
482 | "engines": {
483 | "node": ">=6"
484 | }
485 | },
486 | "node_modules/form-data": {
487 | "version": "4.0.0",
488 | "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz",
489 | "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==",
490 | "dev": true,
491 | "dependencies": {
492 | "asynckit": "^0.4.0",
493 | "combined-stream": "^1.0.8",
494 | "mime-types": "^2.1.12"
495 | },
496 | "engines": {
497 | "node": ">= 6"
498 | }
499 | },
500 | "node_modules/form-data-encoder": {
501 | "version": "1.7.2",
502 | "resolved": "https://registry.npmjs.org/form-data-encoder/-/form-data-encoder-1.7.2.tgz",
503 | "integrity": "sha512-qfqtYan3rxrnCk1VYaA4H+Ms9xdpPqvLZa6xmMgFvhO32x7/3J/ExcTd6qpxM0vH2GdMI+poehyBZvqfMTto8A==",
504 | "dev": true
505 | },
506 | "node_modules/formdata-node": {
507 | "version": "4.4.1",
508 | "resolved": "https://registry.npmjs.org/formdata-node/-/formdata-node-4.4.1.tgz",
509 | "integrity": "sha512-0iirZp3uVDjVGt9p49aTaqjk84TrglENEDuqfdlZQ1roC9CWlPk6Avf8EEnZNcAqPonwkG35x4n3ww/1THYAeQ==",
510 | "dev": true,
511 | "dependencies": {
512 | "node-domexception": "1.0.0",
513 | "web-streams-polyfill": "4.0.0-beta.3"
514 | },
515 | "engines": {
516 | "node": ">= 12.20"
517 | }
518 | },
519 | "node_modules/formdata-node/node_modules/web-streams-polyfill": {
520 | "version": "4.0.0-beta.3",
521 | "resolved": "https://registry.npmjs.org/web-streams-polyfill/-/web-streams-polyfill-4.0.0-beta.3.tgz",
522 | "integrity": "sha512-QW95TCTaHmsYfHDybGMwO5IJIM93I/6vTRk+daHTWFPhwh+C8Cg7j7XyKrwrj8Ib6vYXe0ocYNrmzY4xAAN6ug==",
523 | "dev": true,
524 | "engines": {
525 | "node": ">= 14"
526 | }
527 | },
528 | "node_modules/fs-minipass": {
529 | "version": "2.1.0",
530 | "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz",
531 | "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==",
532 | "dependencies": {
533 | "minipass": "^3.0.0"
534 | },
535 | "engines": {
536 | "node": ">= 8"
537 | }
538 | },
539 | "node_modules/fs-minipass/node_modules/minipass": {
540 | "version": "3.3.6",
541 | "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz",
542 | "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==",
543 | "dependencies": {
544 | "yallist": "^4.0.0"
545 | },
546 | "engines": {
547 | "node": ">=8"
548 | }
549 | },
550 | "node_modules/fs.realpath": {
551 | "version": "1.0.0",
552 | "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
553 | "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw=="
554 | },
555 | "node_modules/gauge": {
556 | "version": "3.0.2",
557 | "resolved": "https://registry.npmjs.org/gauge/-/gauge-3.0.2.tgz",
558 | "integrity": "sha512-+5J6MS/5XksCuXq++uFRsnUd7Ovu1XenbeuIuNRJxYWjgQbPuFhT14lAvsWfqfAmnwluf1OwMjz39HjfLPci0Q==",
559 | "dependencies": {
560 | "aproba": "^1.0.3 || ^2.0.0",
561 | "color-support": "^1.1.2",
562 | "console-control-strings": "^1.0.0",
563 | "has-unicode": "^2.0.1",
564 | "object-assign": "^4.1.1",
565 | "signal-exit": "^3.0.0",
566 | "string-width": "^4.2.3",
567 | "strip-ansi": "^6.0.1",
568 | "wide-align": "^1.1.2"
569 | },
570 | "engines": {
571 | "node": ">=10"
572 | }
573 | },
574 | "node_modules/get-caller-file": {
575 | "version": "2.0.5",
576 | "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz",
577 | "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==",
578 | "engines": {
579 | "node": "6.* || 8.* || >= 10.*"
580 | }
581 | },
582 | "node_modules/glob": {
583 | "version": "7.2.3",
584 | "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz",
585 | "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==",
586 | "dependencies": {
587 | "fs.realpath": "^1.0.0",
588 | "inflight": "^1.0.4",
589 | "inherits": "2",
590 | "minimatch": "^3.1.1",
591 | "once": "^1.3.0",
592 | "path-is-absolute": "^1.0.0"
593 | },
594 | "engines": {
595 | "node": "*"
596 | },
597 | "funding": {
598 | "url": "https://github.com/sponsors/isaacs"
599 | }
600 | },
601 | "node_modules/google-protobuf": {
602 | "version": "3.21.2",
603 | "resolved": "https://registry.npmjs.org/google-protobuf/-/google-protobuf-3.21.2.tgz",
604 | "integrity": "sha512-3MSOYFO5U9mPGikIYCzK0SaThypfGgS6bHqrUGXG3DPHCrb+txNqeEcns1W0lkGfk0rCyNXm7xB9rMxnCiZOoA=="
605 | },
606 | "node_modules/grpc-tools": {
607 | "version": "1.12.4",
608 | "resolved": "https://registry.npmjs.org/grpc-tools/-/grpc-tools-1.12.4.tgz",
609 | "integrity": "sha512-5+mLAJJma3BjnW/KQp6JBjUMgvu7Mu3dBvBPd1dcbNIb+qiR0817zDpgPjS7gRb+l/8EVNIa3cB02xI9JLToKg==",
610 | "hasInstallScript": true,
611 | "dependencies": {
612 | "@mapbox/node-pre-gyp": "^1.0.5"
613 | },
614 | "bin": {
615 | "grpc_tools_node_protoc": "bin/protoc.js",
616 | "grpc_tools_node_protoc_plugin": "bin/protoc_plugin.js"
617 | }
618 | },
619 | "node_modules/has-unicode": {
620 | "version": "2.0.1",
621 | "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz",
622 | "integrity": "sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ=="
623 | },
624 | "node_modules/https-proxy-agent": {
625 | "version": "5.0.1",
626 | "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz",
627 | "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==",
628 | "dependencies": {
629 | "agent-base": "6",
630 | "debug": "4"
631 | },
632 | "engines": {
633 | "node": ">= 6"
634 | }
635 | },
636 | "node_modules/humanize-ms": {
637 | "version": "1.2.1",
638 | "resolved": "https://registry.npmjs.org/humanize-ms/-/humanize-ms-1.2.1.tgz",
639 | "integrity": "sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ==",
640 | "dev": true,
641 | "dependencies": {
642 | "ms": "^2.0.0"
643 | }
644 | },
645 | "node_modules/ieee754": {
646 | "version": "1.2.1",
647 | "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz",
648 | "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==",
649 | "funding": [
650 | {
651 | "type": "github",
652 | "url": "https://github.com/sponsors/feross"
653 | },
654 | {
655 | "type": "patreon",
656 | "url": "https://www.patreon.com/feross"
657 | },
658 | {
659 | "type": "consulting",
660 | "url": "https://feross.org/support"
661 | }
662 | ]
663 | },
664 | "node_modules/inflight": {
665 | "version": "1.0.6",
666 | "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
667 | "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==",
668 | "dependencies": {
669 | "once": "^1.3.0",
670 | "wrappy": "1"
671 | }
672 | },
673 | "node_modules/inherits": {
674 | "version": "2.0.4",
675 | "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
676 | "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ=="
677 | },
678 | "node_modules/is-buffer": {
679 | "version": "1.1.6",
680 | "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz",
681 | "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==",
682 | "dev": true
683 | },
684 | "node_modules/is-fullwidth-code-point": {
685 | "version": "3.0.0",
686 | "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
687 | "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
688 | "engines": {
689 | "node": ">=8"
690 | }
691 | },
692 | "node_modules/jwt-decode": {
693 | "version": "3.1.2",
694 | "resolved": "https://registry.npmjs.org/jwt-decode/-/jwt-decode-3.1.2.tgz",
695 | "integrity": "sha512-UfpWE/VZn0iP50d8cz9NrZLM9lSWhcJ+0Gt/nm4by88UL+J1SiKN8/5dkjMmbEzwL2CAe+67GsegCbIKtbp75A=="
696 | },
697 | "node_modules/lodash.camelcase": {
698 | "version": "4.3.0",
699 | "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz",
700 | "integrity": "sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA=="
701 | },
702 | "node_modules/long": {
703 | "version": "5.2.3",
704 | "resolved": "https://registry.npmjs.org/long/-/long-5.2.3.tgz",
705 | "integrity": "sha512-lcHwpNoggQTObv5apGNCTdJrO69eHOZMi4BNC+rTLER8iHAqGrUVeLh/irVIM7zTw2bOXA8T6uNPeujwOLg/2Q=="
706 | },
707 | "node_modules/lru-cache": {
708 | "version": "6.0.0",
709 | "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
710 | "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
711 | "dependencies": {
712 | "yallist": "^4.0.0"
713 | },
714 | "engines": {
715 | "node": ">=10"
716 | }
717 | },
718 | "node_modules/make-dir": {
719 | "version": "3.1.0",
720 | "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz",
721 | "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==",
722 | "dependencies": {
723 | "semver": "^6.0.0"
724 | },
725 | "engines": {
726 | "node": ">=8"
727 | },
728 | "funding": {
729 | "url": "https://github.com/sponsors/sindresorhus"
730 | }
731 | },
732 | "node_modules/make-dir/node_modules/semver": {
733 | "version": "6.3.1",
734 | "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
735 | "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
736 | "bin": {
737 | "semver": "bin/semver.js"
738 | }
739 | },
740 | "node_modules/md5": {
741 | "version": "2.3.0",
742 | "resolved": "https://registry.npmjs.org/md5/-/md5-2.3.0.tgz",
743 | "integrity": "sha512-T1GITYmFaKuO91vxyoQMFETst+O71VUPEU3ze5GNzDm0OWdP8v1ziTaAEPUr/3kLsY3Sftgz242A1SetQiDL7g==",
744 | "dev": true,
745 | "dependencies": {
746 | "charenc": "0.0.2",
747 | "crypt": "0.0.2",
748 | "is-buffer": "~1.1.6"
749 | }
750 | },
751 | "node_modules/mime-db": {
752 | "version": "1.52.0",
753 | "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz",
754 | "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==",
755 | "dev": true,
756 | "engines": {
757 | "node": ">= 0.6"
758 | }
759 | },
760 | "node_modules/mime-types": {
761 | "version": "2.1.35",
762 | "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz",
763 | "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==",
764 | "dev": true,
765 | "dependencies": {
766 | "mime-db": "1.52.0"
767 | },
768 | "engines": {
769 | "node": ">= 0.6"
770 | }
771 | },
772 | "node_modules/minimatch": {
773 | "version": "3.1.2",
774 | "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
775 | "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
776 | "dependencies": {
777 | "brace-expansion": "^1.1.7"
778 | },
779 | "engines": {
780 | "node": "*"
781 | }
782 | },
783 | "node_modules/minipass": {
784 | "version": "5.0.0",
785 | "resolved": "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz",
786 | "integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==",
787 | "engines": {
788 | "node": ">=8"
789 | }
790 | },
791 | "node_modules/minizlib": {
792 | "version": "2.1.2",
793 | "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz",
794 | "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==",
795 | "dependencies": {
796 | "minipass": "^3.0.0",
797 | "yallist": "^4.0.0"
798 | },
799 | "engines": {
800 | "node": ">= 8"
801 | }
802 | },
803 | "node_modules/minizlib/node_modules/minipass": {
804 | "version": "3.3.6",
805 | "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz",
806 | "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==",
807 | "dependencies": {
808 | "yallist": "^4.0.0"
809 | },
810 | "engines": {
811 | "node": ">=8"
812 | }
813 | },
814 | "node_modules/mkdirp": {
815 | "version": "1.0.4",
816 | "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz",
817 | "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==",
818 | "bin": {
819 | "mkdirp": "bin/cmd.js"
820 | },
821 | "engines": {
822 | "node": ">=10"
823 | }
824 | },
825 | "node_modules/ms": {
826 | "version": "2.1.3",
827 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
828 | "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==",
829 | "dev": true
830 | },
831 | "node_modules/node-domexception": {
832 | "version": "1.0.0",
833 | "resolved": "https://registry.npmjs.org/node-domexception/-/node-domexception-1.0.0.tgz",
834 | "integrity": "sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==",
835 | "dev": true,
836 | "funding": [
837 | {
838 | "type": "github",
839 | "url": "https://github.com/sponsors/jimmywarting"
840 | },
841 | {
842 | "type": "github",
843 | "url": "https://paypal.me/jimmywarting"
844 | }
845 | ],
846 | "engines": {
847 | "node": ">=10.5.0"
848 | }
849 | },
850 | "node_modules/node-fetch": {
851 | "version": "2.7.0",
852 | "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz",
853 | "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==",
854 | "dependencies": {
855 | "whatwg-url": "^5.0.0"
856 | },
857 | "engines": {
858 | "node": "4.x || >=6.0.0"
859 | },
860 | "peerDependencies": {
861 | "encoding": "^0.1.0"
862 | },
863 | "peerDependenciesMeta": {
864 | "encoding": {
865 | "optional": true
866 | }
867 | }
868 | },
869 | "node_modules/nopt": {
870 | "version": "5.0.0",
871 | "resolved": "https://registry.npmjs.org/nopt/-/nopt-5.0.0.tgz",
872 | "integrity": "sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ==",
873 | "dependencies": {
874 | "abbrev": "1"
875 | },
876 | "bin": {
877 | "nopt": "bin/nopt.js"
878 | },
879 | "engines": {
880 | "node": ">=6"
881 | }
882 | },
883 | "node_modules/npmlog": {
884 | "version": "5.0.1",
885 | "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-5.0.1.tgz",
886 | "integrity": "sha512-AqZtDUWOMKs1G/8lwylVjrdYgqA4d9nu8hc+0gzRxlDb1I10+FHBGMXs6aiQHFdCUUlqH99MUMuLfzWDNDtfxw==",
887 | "dependencies": {
888 | "are-we-there-yet": "^2.0.0",
889 | "console-control-strings": "^1.1.0",
890 | "gauge": "^3.0.0",
891 | "set-blocking": "^2.0.0"
892 | }
893 | },
894 | "node_modules/object-assign": {
895 | "version": "4.1.1",
896 | "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
897 | "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==",
898 | "engines": {
899 | "node": ">=0.10.0"
900 | }
901 | },
902 | "node_modules/once": {
903 | "version": "1.4.0",
904 | "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
905 | "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==",
906 | "dependencies": {
907 | "wrappy": "1"
908 | }
909 | },
910 | "node_modules/openai": {
911 | "version": "4.19.1",
912 | "resolved": "https://registry.npmjs.org/openai/-/openai-4.19.1.tgz",
913 | "integrity": "sha512-9TddzuZBn2xxhghGGTHLZ4EeNBGTLs3xVzh266NiSJvtUsCsZQ5yVV6H5NhnhyAkKK8uUiZOUUlUAk3HdV+4xg==",
914 | "dev": true,
915 | "dependencies": {
916 | "@types/node": "^18.11.18",
917 | "@types/node-fetch": "^2.6.4",
918 | "abort-controller": "^3.0.0",
919 | "agentkeepalive": "^4.2.1",
920 | "digest-fetch": "^1.3.0",
921 | "form-data-encoder": "1.7.2",
922 | "formdata-node": "^4.3.2",
923 | "node-fetch": "^2.6.7",
924 | "web-streams-polyfill": "^3.2.1"
925 | },
926 | "bin": {
927 | "openai": "bin/cli"
928 | }
929 | },
930 | "node_modules/openai/node_modules/@types/node": {
931 | "version": "18.18.12",
932 | "resolved": "https://registry.npmjs.org/@types/node/-/node-18.18.12.tgz",
933 | "integrity": "sha512-G7slVfkwOm7g8VqcEF1/5SXiMjP3Tbt+pXDU3r/qhlM2KkGm786DUD4xyMA2QzEElFrv/KZV9gjygv4LnkpbMQ==",
934 | "dev": true,
935 | "dependencies": {
936 | "undici-types": "~5.26.4"
937 | }
938 | },
939 | "node_modules/path-is-absolute": {
940 | "version": "1.0.1",
941 | "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
942 | "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==",
943 | "engines": {
944 | "node": ">=0.10.0"
945 | }
946 | },
947 | "node_modules/protobufjs": {
948 | "version": "7.2.5",
949 | "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-7.2.5.tgz",
950 | "integrity": "sha512-gGXRSXvxQ7UiPgfw8gevrfRWcTlSbOFg+p/N+JVJEK5VhueL2miT6qTymqAmjr1Q5WbOCyJbyrk6JfWKwlFn6A==",
951 | "hasInstallScript": true,
952 | "dependencies": {
953 | "@protobufjs/aspromise": "^1.1.2",
954 | "@protobufjs/base64": "^1.1.2",
955 | "@protobufjs/codegen": "^2.0.4",
956 | "@protobufjs/eventemitter": "^1.1.0",
957 | "@protobufjs/fetch": "^1.1.0",
958 | "@protobufjs/float": "^1.0.2",
959 | "@protobufjs/inquire": "^1.1.0",
960 | "@protobufjs/path": "^1.1.2",
961 | "@protobufjs/pool": "^1.1.0",
962 | "@protobufjs/utf8": "^1.1.0",
963 | "@types/node": ">=13.7.0",
964 | "long": "^5.0.0"
965 | },
966 | "engines": {
967 | "node": ">=12.0.0"
968 | }
969 | },
970 | "node_modules/protoc-gen-ts": {
971 | "version": "0.8.7",
972 | "resolved": "https://registry.npmjs.org/protoc-gen-ts/-/protoc-gen-ts-0.8.7.tgz",
973 | "integrity": "sha512-jr4VJey2J9LVYCV7EVyVe53g1VMw28cCmYJhBe5e3YX5wiyiDwgxWxeDf9oTqAe4P1bN/YGAkW2jhlH8LohwiQ==",
974 | "bin": {
975 | "protoc-gen-ts": "protoc-gen-ts.js"
976 | },
977 | "funding": {
978 | "type": "individual",
979 | "url": "https://www.buymeacoffee.com/thesayyn"
980 | }
981 | },
982 | "node_modules/readable-stream": {
983 | "version": "3.6.2",
984 | "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz",
985 | "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==",
986 | "dependencies": {
987 | "inherits": "^2.0.3",
988 | "string_decoder": "^1.1.1",
989 | "util-deprecate": "^1.0.1"
990 | },
991 | "engines": {
992 | "node": ">= 6"
993 | }
994 | },
995 | "node_modules/require-directory": {
996 | "version": "2.1.1",
997 | "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz",
998 | "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==",
999 | "engines": {
1000 | "node": ">=0.10.0"
1001 | }
1002 | },
1003 | "node_modules/rimraf": {
1004 | "version": "3.0.2",
1005 | "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz",
1006 | "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==",
1007 | "dependencies": {
1008 | "glob": "^7.1.3"
1009 | },
1010 | "bin": {
1011 | "rimraf": "bin.js"
1012 | },
1013 | "funding": {
1014 | "url": "https://github.com/sponsors/isaacs"
1015 | }
1016 | },
1017 | "node_modules/safe-buffer": {
1018 | "version": "5.2.1",
1019 | "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
1020 | "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==",
1021 | "funding": [
1022 | {
1023 | "type": "github",
1024 | "url": "https://github.com/sponsors/feross"
1025 | },
1026 | {
1027 | "type": "patreon",
1028 | "url": "https://www.patreon.com/feross"
1029 | },
1030 | {
1031 | "type": "consulting",
1032 | "url": "https://feross.org/support"
1033 | }
1034 | ]
1035 | },
1036 | "node_modules/semver": {
1037 | "version": "7.5.4",
1038 | "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz",
1039 | "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==",
1040 | "dependencies": {
1041 | "lru-cache": "^6.0.0"
1042 | },
1043 | "bin": {
1044 | "semver": "bin/semver.js"
1045 | },
1046 | "engines": {
1047 | "node": ">=10"
1048 | }
1049 | },
1050 | "node_modules/set-blocking": {
1051 | "version": "2.0.0",
1052 | "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz",
1053 | "integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw=="
1054 | },
1055 | "node_modules/signal-exit": {
1056 | "version": "3.0.7",
1057 | "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz",
1058 | "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ=="
1059 | },
1060 | "node_modules/string_decoder": {
1061 | "version": "1.3.0",
1062 | "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz",
1063 | "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==",
1064 | "dependencies": {
1065 | "safe-buffer": "~5.2.0"
1066 | }
1067 | },
1068 | "node_modules/string-width": {
1069 | "version": "4.2.3",
1070 | "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
1071 | "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
1072 | "dependencies": {
1073 | "emoji-regex": "^8.0.0",
1074 | "is-fullwidth-code-point": "^3.0.0",
1075 | "strip-ansi": "^6.0.1"
1076 | },
1077 | "engines": {
1078 | "node": ">=8"
1079 | }
1080 | },
1081 | "node_modules/strip-ansi": {
1082 | "version": "6.0.1",
1083 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
1084 | "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
1085 | "dependencies": {
1086 | "ansi-regex": "^5.0.1"
1087 | },
1088 | "engines": {
1089 | "node": ">=8"
1090 | }
1091 | },
1092 | "node_modules/tar": {
1093 | "version": "6.2.0",
1094 | "resolved": "https://registry.npmjs.org/tar/-/tar-6.2.0.tgz",
1095 | "integrity": "sha512-/Wo7DcT0u5HUV486xg675HtjNd3BXZ6xDbzsCUZPt5iw8bTQ63bP0Raut3mvro9u+CUyq7YQd8Cx55fsZXxqLQ==",
1096 | "dependencies": {
1097 | "chownr": "^2.0.0",
1098 | "fs-minipass": "^2.0.0",
1099 | "minipass": "^5.0.0",
1100 | "minizlib": "^2.1.1",
1101 | "mkdirp": "^1.0.3",
1102 | "yallist": "^4.0.0"
1103 | },
1104 | "engines": {
1105 | "node": ">=10"
1106 | }
1107 | },
1108 | "node_modules/tr46": {
1109 | "version": "0.0.3",
1110 | "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz",
1111 | "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw=="
1112 | },
1113 | "node_modules/undici-types": {
1114 | "version": "5.26.5",
1115 | "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz",
1116 | "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==",
1117 | "dev": true
1118 | },
1119 | "node_modules/util-deprecate": {
1120 | "version": "1.0.2",
1121 | "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
1122 | "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw=="
1123 | },
1124 | "node_modules/web-streams-polyfill": {
1125 | "version": "3.2.1",
1126 | "resolved": "https://registry.npmjs.org/web-streams-polyfill/-/web-streams-polyfill-3.2.1.tgz",
1127 | "integrity": "sha512-e0MO3wdXWKrLbL0DgGnUV7WHVuw9OUvL4hjgnPkIeEvESk74gAITi5G606JtZPp39cd8HA9VQzCIvA49LpPN5Q==",
1128 | "dev": true,
1129 | "engines": {
1130 | "node": ">= 8"
1131 | }
1132 | },
1133 | "node_modules/webidl-conversions": {
1134 | "version": "3.0.1",
1135 | "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz",
1136 | "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ=="
1137 | },
1138 | "node_modules/whatwg-url": {
1139 | "version": "5.0.0",
1140 | "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz",
1141 | "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==",
1142 | "dependencies": {
1143 | "tr46": "~0.0.3",
1144 | "webidl-conversions": "^3.0.0"
1145 | }
1146 | },
1147 | "node_modules/wide-align": {
1148 | "version": "1.1.5",
1149 | "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.5.tgz",
1150 | "integrity": "sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==",
1151 | "dependencies": {
1152 | "string-width": "^1.0.2 || 2 || 3 || 4"
1153 | }
1154 | },
1155 | "node_modules/wrap-ansi": {
1156 | "version": "7.0.0",
1157 | "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz",
1158 | "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==",
1159 | "dependencies": {
1160 | "ansi-styles": "^4.0.0",
1161 | "string-width": "^4.1.0",
1162 | "strip-ansi": "^6.0.0"
1163 | },
1164 | "engines": {
1165 | "node": ">=10"
1166 | },
1167 | "funding": {
1168 | "url": "https://github.com/chalk/wrap-ansi?sponsor=1"
1169 | }
1170 | },
1171 | "node_modules/wrappy": {
1172 | "version": "1.0.2",
1173 | "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
1174 | "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ=="
1175 | },
1176 | "node_modules/y18n": {
1177 | "version": "5.0.8",
1178 | "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz",
1179 | "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==",
1180 | "engines": {
1181 | "node": ">=10"
1182 | }
1183 | },
1184 | "node_modules/yallist": {
1185 | "version": "4.0.0",
1186 | "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
1187 | "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A=="
1188 | },
1189 | "node_modules/yargs": {
1190 | "version": "17.7.2",
1191 | "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz",
1192 | "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==",
1193 | "dependencies": {
1194 | "cliui": "^8.0.1",
1195 | "escalade": "^3.1.1",
1196 | "get-caller-file": "^2.0.5",
1197 | "require-directory": "^2.1.1",
1198 | "string-width": "^4.2.3",
1199 | "y18n": "^5.0.5",
1200 | "yargs-parser": "^21.1.1"
1201 | },
1202 | "engines": {
1203 | "node": ">=12"
1204 | }
1205 | },
1206 | "node_modules/yargs-parser": {
1207 | "version": "21.1.1",
1208 | "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz",
1209 | "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==",
1210 | "engines": {
1211 | "node": ">=12"
1212 | }
1213 | }
1214 | },
1215 | "dependencies": {
1216 | "@gomomento/generated-types": {
1217 | "version": "0.96.0",
1218 | "resolved": "https://registry.npmjs.org/@gomomento/generated-types/-/generated-types-0.96.0.tgz",
1219 | "integrity": "sha512-o4bTdJ/PIkvEMZU4IHcrOGyiAxAnrkHZKFlIDmcmEki2zIvpj7Pqkp+7TqQ6BIH6gVo+IOmTecP56HADVUdM9g==",
1220 | "requires": {
1221 | "@grpc/grpc-js": "1.9.0",
1222 | "google-protobuf": "3.21.2",
1223 | "grpc-tools": "^1.12.4",
1224 | "protoc-gen-ts": "^0.8.6"
1225 | }
1226 | },
1227 | "@gomomento/sdk": {
1228 | "version": "1.51.1",
1229 | "resolved": "https://registry.npmjs.org/@gomomento/sdk/-/sdk-1.51.1.tgz",
1230 | "integrity": "sha512-VldUEt9c2LZahGvqSlebkxHnVqFkv+cjk7d6riOqD26NnwyCBhjZ5wH92OWvEfssQKpGTz5CWkRqZpHC0q0UZA==",
1231 | "requires": {
1232 | "@gomomento/generated-types": "0.96.0",
1233 | "@gomomento/sdk-core": "1.51.1",
1234 | "@grpc/grpc-js": "1.9.0",
1235 | "@types/google-protobuf": "3.15.10",
1236 | "google-protobuf": "3.21.2",
1237 | "jwt-decode": "3.1.2"
1238 | }
1239 | },
1240 | "@gomomento/sdk-core": {
1241 | "version": "1.51.1",
1242 | "resolved": "https://registry.npmjs.org/@gomomento/sdk-core/-/sdk-core-1.51.1.tgz",
1243 | "integrity": "sha512-u6x5Gpi+sVYNcyRpEfoSJJ3YTTyLG6889QkPo3Z/e6hjNQD51h1Xf52eG1P9numzWWixlStEXIJp3H4hqsZ2vA==",
1244 | "requires": {
1245 | "buffer": "6.0.3",
1246 | "jwt-decode": "3.1.2"
1247 | }
1248 | },
1249 | "@grpc/grpc-js": {
1250 | "version": "1.9.0",
1251 | "resolved": "https://registry.npmjs.org/@grpc/grpc-js/-/grpc-js-1.9.0.tgz",
1252 | "integrity": "sha512-H8+iZh+kCE6VR/Krj6W28Y/ZlxoZ1fOzsNt77nrdE3knkbSelW1Uus192xOFCxHyeszLj8i4APQkSIXjAoOxXg==",
1253 | "requires": {
1254 | "@grpc/proto-loader": "^0.7.0",
1255 | "@types/node": ">=12.12.47"
1256 | }
1257 | },
1258 | "@grpc/proto-loader": {
1259 | "version": "0.7.10",
1260 | "resolved": "https://registry.npmjs.org/@grpc/proto-loader/-/proto-loader-0.7.10.tgz",
1261 | "integrity": "sha512-CAqDfoaQ8ykFd9zqBDn4k6iWT9loLAlc2ETmDFS9JCD70gDcnA4L3AFEo2iV7KyAtAAHFW9ftq1Fz+Vsgq80RQ==",
1262 | "requires": {
1263 | "lodash.camelcase": "^4.3.0",
1264 | "long": "^5.0.0",
1265 | "protobufjs": "^7.2.4",
1266 | "yargs": "^17.7.2"
1267 | }
1268 | },
1269 | "@mapbox/node-pre-gyp": {
1270 | "version": "1.0.11",
1271 | "resolved": "https://registry.npmjs.org/@mapbox/node-pre-gyp/-/node-pre-gyp-1.0.11.tgz",
1272 | "integrity": "sha512-Yhlar6v9WQgUp/He7BdgzOz8lqMQ8sU+jkCq7Wx8Myc5YFJLbEe7lgui/V7G1qB1DJykHSGwreceSaD60Y0PUQ==",
1273 | "requires": {
1274 | "detect-libc": "^2.0.0",
1275 | "https-proxy-agent": "^5.0.0",
1276 | "make-dir": "^3.1.0",
1277 | "node-fetch": "^2.6.7",
1278 | "nopt": "^5.0.0",
1279 | "npmlog": "^5.0.1",
1280 | "rimraf": "^3.0.2",
1281 | "semver": "^7.3.5",
1282 | "tar": "^6.1.11"
1283 | }
1284 | },
1285 | "@protobufjs/aspromise": {
1286 | "version": "1.1.2",
1287 | "resolved": "https://registry.npmjs.org/@protobufjs/aspromise/-/aspromise-1.1.2.tgz",
1288 | "integrity": "sha512-j+gKExEuLmKwvz3OgROXtrJ2UG2x8Ch2YZUxahh+s1F2HZ+wAceUNLkvy6zKCPVRkU++ZWQrdxsUeQXmcg4uoQ=="
1289 | },
1290 | "@protobufjs/base64": {
1291 | "version": "1.1.2",
1292 | "resolved": "https://registry.npmjs.org/@protobufjs/base64/-/base64-1.1.2.tgz",
1293 | "integrity": "sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg=="
1294 | },
1295 | "@protobufjs/codegen": {
1296 | "version": "2.0.4",
1297 | "resolved": "https://registry.npmjs.org/@protobufjs/codegen/-/codegen-2.0.4.tgz",
1298 | "integrity": "sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg=="
1299 | },
1300 | "@protobufjs/eventemitter": {
1301 | "version": "1.1.0",
1302 | "resolved": "https://registry.npmjs.org/@protobufjs/eventemitter/-/eventemitter-1.1.0.tgz",
1303 | "integrity": "sha512-j9ednRT81vYJ9OfVuXG6ERSTdEL1xVsNgqpkxMsbIabzSo3goCjDIveeGv5d03om39ML71RdmrGNjG5SReBP/Q=="
1304 | },
1305 | "@protobufjs/fetch": {
1306 | "version": "1.1.0",
1307 | "resolved": "https://registry.npmjs.org/@protobufjs/fetch/-/fetch-1.1.0.tgz",
1308 | "integrity": "sha512-lljVXpqXebpsijW71PZaCYeIcE5on1w5DlQy5WH6GLbFryLUrBD4932W/E2BSpfRJWseIL4v/KPgBFxDOIdKpQ==",
1309 | "requires": {
1310 | "@protobufjs/aspromise": "^1.1.1",
1311 | "@protobufjs/inquire": "^1.1.0"
1312 | }
1313 | },
1314 | "@protobufjs/float": {
1315 | "version": "1.0.2",
1316 | "resolved": "https://registry.npmjs.org/@protobufjs/float/-/float-1.0.2.tgz",
1317 | "integrity": "sha512-Ddb+kVXlXst9d+R9PfTIxh1EdNkgoRe5tOX6t01f1lYWOvJnSPDBlG241QLzcyPdoNTsblLUdujGSE4RzrTZGQ=="
1318 | },
1319 | "@protobufjs/inquire": {
1320 | "version": "1.1.0",
1321 | "resolved": "https://registry.npmjs.org/@protobufjs/inquire/-/inquire-1.1.0.tgz",
1322 | "integrity": "sha512-kdSefcPdruJiFMVSbn801t4vFK7KB/5gd2fYvrxhuJYg8ILrmn9SKSX2tZdV6V+ksulWqS7aXjBcRXl3wHoD9Q=="
1323 | },
1324 | "@protobufjs/path": {
1325 | "version": "1.1.2",
1326 | "resolved": "https://registry.npmjs.org/@protobufjs/path/-/path-1.1.2.tgz",
1327 | "integrity": "sha512-6JOcJ5Tm08dOHAbdR3GrvP+yUUfkjG5ePsHYczMFLq3ZmMkAD98cDgcT2iA1lJ9NVwFd4tH/iSSoe44YWkltEA=="
1328 | },
1329 | "@protobufjs/pool": {
1330 | "version": "1.1.0",
1331 | "resolved": "https://registry.npmjs.org/@protobufjs/pool/-/pool-1.1.0.tgz",
1332 | "integrity": "sha512-0kELaGSIDBKvcgS4zkjz1PeddatrjYcmMWOlAuAPwAeccUrPHdUqo/J6LiymHHEiJT5NrF1UVwxY14f+fy4WQw=="
1333 | },
1334 | "@protobufjs/utf8": {
1335 | "version": "1.1.0",
1336 | "resolved": "https://registry.npmjs.org/@protobufjs/utf8/-/utf8-1.1.0.tgz",
1337 | "integrity": "sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw=="
1338 | },
1339 | "@types/google-protobuf": {
1340 | "version": "3.15.10",
1341 | "resolved": "https://registry.npmjs.org/@types/google-protobuf/-/google-protobuf-3.15.10.tgz",
1342 | "integrity": "sha512-uiyKJCa8hbmPE4yxwjbkMOALaBAiOVcatW/yEGbjTqwAh4kzNgQPWRlJMNPXpB5CPUM66xsYufiSX9WKHZCE9g=="
1343 | },
1344 | "@types/node": {
1345 | "version": "20.3.1",
1346 | "resolved": "https://registry.npmjs.org/@types/node/-/node-20.3.1.tgz",
1347 | "integrity": "sha512-EhcH/wvidPy1WeML3TtYFGR83UzjxeWRen9V402T8aUGYsCHOmfoisV3ZSg03gAFIbLq8TnWOJ0f4cALtnSEUg=="
1348 | },
1349 | "@types/node-fetch": {
1350 | "version": "2.6.9",
1351 | "resolved": "https://registry.npmjs.org/@types/node-fetch/-/node-fetch-2.6.9.tgz",
1352 | "integrity": "sha512-bQVlnMLFJ2d35DkPNjEPmd9ueO/rh5EiaZt2bhqiSarPjZIuIV6bPQVqcrEyvNo+AfTrRGVazle1tl597w3gfA==",
1353 | "dev": true,
1354 | "requires": {
1355 | "@types/node": "*",
1356 | "form-data": "^4.0.0"
1357 | }
1358 | },
1359 | "abbrev": {
1360 | "version": "1.1.1",
1361 | "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz",
1362 | "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q=="
1363 | },
1364 | "abort-controller": {
1365 | "version": "3.0.0",
1366 | "resolved": "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz",
1367 | "integrity": "sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==",
1368 | "dev": true,
1369 | "requires": {
1370 | "event-target-shim": "^5.0.0"
1371 | }
1372 | },
1373 | "agent-base": {
1374 | "version": "6.0.2",
1375 | "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz",
1376 | "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==",
1377 | "requires": {
1378 | "debug": "4"
1379 | }
1380 | },
1381 | "agentkeepalive": {
1382 | "version": "4.5.0",
1383 | "resolved": "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-4.5.0.tgz",
1384 | "integrity": "sha512-5GG/5IbQQpC9FpkRGsSvZI5QYeSCzlJHdpBQntCsuTOxhKD8lqKhrleg2Yi7yvMIf82Ycmmqln9U8V9qwEiJew==",
1385 | "dev": true,
1386 | "requires": {
1387 | "humanize-ms": "^1.2.1"
1388 | }
1389 | },
1390 | "ansi-regex": {
1391 | "version": "5.0.1",
1392 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
1393 | "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ=="
1394 | },
1395 | "ansi-styles": {
1396 | "version": "4.3.0",
1397 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
1398 | "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
1399 | "requires": {
1400 | "color-convert": "^2.0.1"
1401 | }
1402 | },
1403 | "aproba": {
1404 | "version": "2.0.0",
1405 | "resolved": "https://registry.npmjs.org/aproba/-/aproba-2.0.0.tgz",
1406 | "integrity": "sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ=="
1407 | },
1408 | "are-we-there-yet": {
1409 | "version": "2.0.0",
1410 | "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-2.0.0.tgz",
1411 | "integrity": "sha512-Ci/qENmwHnsYo9xKIcUJN5LeDKdJ6R1Z1j9V/J5wyq8nh/mYPEpIKJbBZXtZjG04HiK7zV/p6Vs9952MrMeUIw==",
1412 | "requires": {
1413 | "delegates": "^1.0.0",
1414 | "readable-stream": "^3.6.0"
1415 | }
1416 | },
1417 | "asynckit": {
1418 | "version": "0.4.0",
1419 | "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
1420 | "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==",
1421 | "dev": true
1422 | },
1423 | "balanced-match": {
1424 | "version": "1.0.2",
1425 | "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
1426 | "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw=="
1427 | },
1428 | "base-64": {
1429 | "version": "0.1.0",
1430 | "resolved": "https://registry.npmjs.org/base-64/-/base-64-0.1.0.tgz",
1431 | "integrity": "sha512-Y5gU45svrR5tI2Vt/X9GPd3L0HNIKzGu202EjxrXMpuc2V2CiKgemAbUUsqYmZJvPtCXoUKjNZwBJzsNScUbXA==",
1432 | "dev": true
1433 | },
1434 | "base64-js": {
1435 | "version": "1.5.1",
1436 | "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz",
1437 | "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA=="
1438 | },
1439 | "brace-expansion": {
1440 | "version": "1.1.11",
1441 | "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
1442 | "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
1443 | "requires": {
1444 | "balanced-match": "^1.0.0",
1445 | "concat-map": "0.0.1"
1446 | }
1447 | },
1448 | "buffer": {
1449 | "version": "6.0.3",
1450 | "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz",
1451 | "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==",
1452 | "requires": {
1453 | "base64-js": "^1.3.1",
1454 | "ieee754": "^1.2.1"
1455 | }
1456 | },
1457 | "charenc": {
1458 | "version": "0.0.2",
1459 | "resolved": "https://registry.npmjs.org/charenc/-/charenc-0.0.2.tgz",
1460 | "integrity": "sha512-yrLQ/yVUFXkzg7EDQsPieE/53+0RlaWTs+wBrvW36cyilJ2SaDWfl4Yj7MtLTXleV9uEKefbAGUPv2/iWSooRA==",
1461 | "dev": true
1462 | },
1463 | "chownr": {
1464 | "version": "2.0.0",
1465 | "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz",
1466 | "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ=="
1467 | },
1468 | "cliui": {
1469 | "version": "8.0.1",
1470 | "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz",
1471 | "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==",
1472 | "requires": {
1473 | "string-width": "^4.2.0",
1474 | "strip-ansi": "^6.0.1",
1475 | "wrap-ansi": "^7.0.0"
1476 | }
1477 | },
1478 | "color-convert": {
1479 | "version": "2.0.1",
1480 | "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
1481 | "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
1482 | "requires": {
1483 | "color-name": "~1.1.4"
1484 | }
1485 | },
1486 | "color-name": {
1487 | "version": "1.1.4",
1488 | "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
1489 | "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
1490 | },
1491 | "color-support": {
1492 | "version": "1.1.3",
1493 | "resolved": "https://registry.npmjs.org/color-support/-/color-support-1.1.3.tgz",
1494 | "integrity": "sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg=="
1495 | },
1496 | "combined-stream": {
1497 | "version": "1.0.8",
1498 | "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz",
1499 | "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==",
1500 | "dev": true,
1501 | "requires": {
1502 | "delayed-stream": "~1.0.0"
1503 | }
1504 | },
1505 | "concat-map": {
1506 | "version": "0.0.1",
1507 | "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
1508 | "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg=="
1509 | },
1510 | "console-control-strings": {
1511 | "version": "1.1.0",
1512 | "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz",
1513 | "integrity": "sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ=="
1514 | },
1515 | "crypt": {
1516 | "version": "0.0.2",
1517 | "resolved": "https://registry.npmjs.org/crypt/-/crypt-0.0.2.tgz",
1518 | "integrity": "sha512-mCxBlsHFYh9C+HVpiEacem8FEBnMXgU9gy4zmNC+SXAZNB/1idgp/aulFJ4FgCi7GPEVbfyng092GqL2k2rmow==",
1519 | "dev": true
1520 | },
1521 | "debug": {
1522 | "version": "4.3.4",
1523 | "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
1524 | "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
1525 | "requires": {
1526 | "ms": "2.1.2"
1527 | },
1528 | "dependencies": {
1529 | "ms": {
1530 | "version": "2.1.2",
1531 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
1532 | "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
1533 | }
1534 | }
1535 | },
1536 | "delayed-stream": {
1537 | "version": "1.0.0",
1538 | "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
1539 | "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==",
1540 | "dev": true
1541 | },
1542 | "delegates": {
1543 | "version": "1.0.0",
1544 | "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz",
1545 | "integrity": "sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ=="
1546 | },
1547 | "detect-libc": {
1548 | "version": "2.0.2",
1549 | "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.2.tgz",
1550 | "integrity": "sha512-UX6sGumvvqSaXgdKGUsgZWqcUyIXZ/vZTrlRT/iobiKhGL0zL4d3osHj3uqllWJK+i+sixDS/3COVEOFbupFyw=="
1551 | },
1552 | "digest-fetch": {
1553 | "version": "1.3.0",
1554 | "resolved": "https://registry.npmjs.org/digest-fetch/-/digest-fetch-1.3.0.tgz",
1555 | "integrity": "sha512-CGJuv6iKNM7QyZlM2T3sPAdZWd/p9zQiRNS9G+9COUCwzWFTs0Xp8NF5iePx7wtvhDykReiRRrSeNb4oMmB8lA==",
1556 | "dev": true,
1557 | "requires": {
1558 | "base-64": "^0.1.0",
1559 | "md5": "^2.3.0"
1560 | }
1561 | },
1562 | "emoji-regex": {
1563 | "version": "8.0.0",
1564 | "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
1565 | "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A=="
1566 | },
1567 | "escalade": {
1568 | "version": "3.1.1",
1569 | "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz",
1570 | "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw=="
1571 | },
1572 | "event-target-shim": {
1573 | "version": "5.0.1",
1574 | "resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz",
1575 | "integrity": "sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==",
1576 | "dev": true
1577 | },
1578 | "form-data": {
1579 | "version": "4.0.0",
1580 | "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz",
1581 | "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==",
1582 | "dev": true,
1583 | "requires": {
1584 | "asynckit": "^0.4.0",
1585 | "combined-stream": "^1.0.8",
1586 | "mime-types": "^2.1.12"
1587 | }
1588 | },
1589 | "form-data-encoder": {
1590 | "version": "1.7.2",
1591 | "resolved": "https://registry.npmjs.org/form-data-encoder/-/form-data-encoder-1.7.2.tgz",
1592 | "integrity": "sha512-qfqtYan3rxrnCk1VYaA4H+Ms9xdpPqvLZa6xmMgFvhO32x7/3J/ExcTd6qpxM0vH2GdMI+poehyBZvqfMTto8A==",
1593 | "dev": true
1594 | },
1595 | "formdata-node": {
1596 | "version": "4.4.1",
1597 | "resolved": "https://registry.npmjs.org/formdata-node/-/formdata-node-4.4.1.tgz",
1598 | "integrity": "sha512-0iirZp3uVDjVGt9p49aTaqjk84TrglENEDuqfdlZQ1roC9CWlPk6Avf8EEnZNcAqPonwkG35x4n3ww/1THYAeQ==",
1599 | "dev": true,
1600 | "requires": {
1601 | "node-domexception": "1.0.0",
1602 | "web-streams-polyfill": "4.0.0-beta.3"
1603 | },
1604 | "dependencies": {
1605 | "web-streams-polyfill": {
1606 | "version": "4.0.0-beta.3",
1607 | "resolved": "https://registry.npmjs.org/web-streams-polyfill/-/web-streams-polyfill-4.0.0-beta.3.tgz",
1608 | "integrity": "sha512-QW95TCTaHmsYfHDybGMwO5IJIM93I/6vTRk+daHTWFPhwh+C8Cg7j7XyKrwrj8Ib6vYXe0ocYNrmzY4xAAN6ug==",
1609 | "dev": true
1610 | }
1611 | }
1612 | },
1613 | "fs-minipass": {
1614 | "version": "2.1.0",
1615 | "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz",
1616 | "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==",
1617 | "requires": {
1618 | "minipass": "^3.0.0"
1619 | },
1620 | "dependencies": {
1621 | "minipass": {
1622 | "version": "3.3.6",
1623 | "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz",
1624 | "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==",
1625 | "requires": {
1626 | "yallist": "^4.0.0"
1627 | }
1628 | }
1629 | }
1630 | },
1631 | "fs.realpath": {
1632 | "version": "1.0.0",
1633 | "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
1634 | "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw=="
1635 | },
1636 | "gauge": {
1637 | "version": "3.0.2",
1638 | "resolved": "https://registry.npmjs.org/gauge/-/gauge-3.0.2.tgz",
1639 | "integrity": "sha512-+5J6MS/5XksCuXq++uFRsnUd7Ovu1XenbeuIuNRJxYWjgQbPuFhT14lAvsWfqfAmnwluf1OwMjz39HjfLPci0Q==",
1640 | "requires": {
1641 | "aproba": "^1.0.3 || ^2.0.0",
1642 | "color-support": "^1.1.2",
1643 | "console-control-strings": "^1.0.0",
1644 | "has-unicode": "^2.0.1",
1645 | "object-assign": "^4.1.1",
1646 | "signal-exit": "^3.0.0",
1647 | "string-width": "^4.2.3",
1648 | "strip-ansi": "^6.0.1",
1649 | "wide-align": "^1.1.2"
1650 | }
1651 | },
1652 | "get-caller-file": {
1653 | "version": "2.0.5",
1654 | "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz",
1655 | "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg=="
1656 | },
1657 | "glob": {
1658 | "version": "7.2.3",
1659 | "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz",
1660 | "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==",
1661 | "requires": {
1662 | "fs.realpath": "^1.0.0",
1663 | "inflight": "^1.0.4",
1664 | "inherits": "2",
1665 | "minimatch": "^3.1.1",
1666 | "once": "^1.3.0",
1667 | "path-is-absolute": "^1.0.0"
1668 | }
1669 | },
1670 | "google-protobuf": {
1671 | "version": "3.21.2",
1672 | "resolved": "https://registry.npmjs.org/google-protobuf/-/google-protobuf-3.21.2.tgz",
1673 | "integrity": "sha512-3MSOYFO5U9mPGikIYCzK0SaThypfGgS6bHqrUGXG3DPHCrb+txNqeEcns1W0lkGfk0rCyNXm7xB9rMxnCiZOoA=="
1674 | },
1675 | "grpc-tools": {
1676 | "version": "1.12.4",
1677 | "resolved": "https://registry.npmjs.org/grpc-tools/-/grpc-tools-1.12.4.tgz",
1678 | "integrity": "sha512-5+mLAJJma3BjnW/KQp6JBjUMgvu7Mu3dBvBPd1dcbNIb+qiR0817zDpgPjS7gRb+l/8EVNIa3cB02xI9JLToKg==",
1679 | "requires": {
1680 | "@mapbox/node-pre-gyp": "^1.0.5"
1681 | }
1682 | },
1683 | "has-unicode": {
1684 | "version": "2.0.1",
1685 | "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz",
1686 | "integrity": "sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ=="
1687 | },
1688 | "https-proxy-agent": {
1689 | "version": "5.0.1",
1690 | "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz",
1691 | "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==",
1692 | "requires": {
1693 | "agent-base": "6",
1694 | "debug": "4"
1695 | }
1696 | },
1697 | "humanize-ms": {
1698 | "version": "1.2.1",
1699 | "resolved": "https://registry.npmjs.org/humanize-ms/-/humanize-ms-1.2.1.tgz",
1700 | "integrity": "sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ==",
1701 | "dev": true,
1702 | "requires": {
1703 | "ms": "^2.0.0"
1704 | }
1705 | },
1706 | "ieee754": {
1707 | "version": "1.2.1",
1708 | "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz",
1709 | "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA=="
1710 | },
1711 | "inflight": {
1712 | "version": "1.0.6",
1713 | "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
1714 | "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==",
1715 | "requires": {
1716 | "once": "^1.3.0",
1717 | "wrappy": "1"
1718 | }
1719 | },
1720 | "inherits": {
1721 | "version": "2.0.4",
1722 | "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
1723 | "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ=="
1724 | },
1725 | "is-buffer": {
1726 | "version": "1.1.6",
1727 | "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz",
1728 | "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==",
1729 | "dev": true
1730 | },
1731 | "is-fullwidth-code-point": {
1732 | "version": "3.0.0",
1733 | "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
1734 | "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg=="
1735 | },
1736 | "jwt-decode": {
1737 | "version": "3.1.2",
1738 | "resolved": "https://registry.npmjs.org/jwt-decode/-/jwt-decode-3.1.2.tgz",
1739 | "integrity": "sha512-UfpWE/VZn0iP50d8cz9NrZLM9lSWhcJ+0Gt/nm4by88UL+J1SiKN8/5dkjMmbEzwL2CAe+67GsegCbIKtbp75A=="
1740 | },
1741 | "lodash.camelcase": {
1742 | "version": "4.3.0",
1743 | "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz",
1744 | "integrity": "sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA=="
1745 | },
1746 | "long": {
1747 | "version": "5.2.3",
1748 | "resolved": "https://registry.npmjs.org/long/-/long-5.2.3.tgz",
1749 | "integrity": "sha512-lcHwpNoggQTObv5apGNCTdJrO69eHOZMi4BNC+rTLER8iHAqGrUVeLh/irVIM7zTw2bOXA8T6uNPeujwOLg/2Q=="
1750 | },
1751 | "lru-cache": {
1752 | "version": "6.0.0",
1753 | "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
1754 | "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
1755 | "requires": {
1756 | "yallist": "^4.0.0"
1757 | }
1758 | },
1759 | "make-dir": {
1760 | "version": "3.1.0",
1761 | "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz",
1762 | "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==",
1763 | "requires": {
1764 | "semver": "^6.0.0"
1765 | },
1766 | "dependencies": {
1767 | "semver": {
1768 | "version": "6.3.1",
1769 | "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
1770 | "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA=="
1771 | }
1772 | }
1773 | },
1774 | "md5": {
1775 | "version": "2.3.0",
1776 | "resolved": "https://registry.npmjs.org/md5/-/md5-2.3.0.tgz",
1777 | "integrity": "sha512-T1GITYmFaKuO91vxyoQMFETst+O71VUPEU3ze5GNzDm0OWdP8v1ziTaAEPUr/3kLsY3Sftgz242A1SetQiDL7g==",
1778 | "dev": true,
1779 | "requires": {
1780 | "charenc": "0.0.2",
1781 | "crypt": "0.0.2",
1782 | "is-buffer": "~1.1.6"
1783 | }
1784 | },
1785 | "mime-db": {
1786 | "version": "1.52.0",
1787 | "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz",
1788 | "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==",
1789 | "dev": true
1790 | },
1791 | "mime-types": {
1792 | "version": "2.1.35",
1793 | "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz",
1794 | "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==",
1795 | "dev": true,
1796 | "requires": {
1797 | "mime-db": "1.52.0"
1798 | }
1799 | },
1800 | "minimatch": {
1801 | "version": "3.1.2",
1802 | "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
1803 | "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
1804 | "requires": {
1805 | "brace-expansion": "^1.1.7"
1806 | }
1807 | },
1808 | "minipass": {
1809 | "version": "5.0.0",
1810 | "resolved": "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz",
1811 | "integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ=="
1812 | },
1813 | "minizlib": {
1814 | "version": "2.1.2",
1815 | "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz",
1816 | "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==",
1817 | "requires": {
1818 | "minipass": "^3.0.0",
1819 | "yallist": "^4.0.0"
1820 | },
1821 | "dependencies": {
1822 | "minipass": {
1823 | "version": "3.3.6",
1824 | "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz",
1825 | "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==",
1826 | "requires": {
1827 | "yallist": "^4.0.0"
1828 | }
1829 | }
1830 | }
1831 | },
1832 | "mkdirp": {
1833 | "version": "1.0.4",
1834 | "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz",
1835 | "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw=="
1836 | },
1837 | "ms": {
1838 | "version": "2.1.3",
1839 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
1840 | "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==",
1841 | "dev": true
1842 | },
1843 | "node-domexception": {
1844 | "version": "1.0.0",
1845 | "resolved": "https://registry.npmjs.org/node-domexception/-/node-domexception-1.0.0.tgz",
1846 | "integrity": "sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==",
1847 | "dev": true
1848 | },
1849 | "node-fetch": {
1850 | "version": "2.7.0",
1851 | "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz",
1852 | "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==",
1853 | "requires": {
1854 | "whatwg-url": "^5.0.0"
1855 | }
1856 | },
1857 | "nopt": {
1858 | "version": "5.0.0",
1859 | "resolved": "https://registry.npmjs.org/nopt/-/nopt-5.0.0.tgz",
1860 | "integrity": "sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ==",
1861 | "requires": {
1862 | "abbrev": "1"
1863 | }
1864 | },
1865 | "npmlog": {
1866 | "version": "5.0.1",
1867 | "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-5.0.1.tgz",
1868 | "integrity": "sha512-AqZtDUWOMKs1G/8lwylVjrdYgqA4d9nu8hc+0gzRxlDb1I10+FHBGMXs6aiQHFdCUUlqH99MUMuLfzWDNDtfxw==",
1869 | "requires": {
1870 | "are-we-there-yet": "^2.0.0",
1871 | "console-control-strings": "^1.1.0",
1872 | "gauge": "^3.0.0",
1873 | "set-blocking": "^2.0.0"
1874 | }
1875 | },
1876 | "object-assign": {
1877 | "version": "4.1.1",
1878 | "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
1879 | "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg=="
1880 | },
1881 | "once": {
1882 | "version": "1.4.0",
1883 | "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
1884 | "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==",
1885 | "requires": {
1886 | "wrappy": "1"
1887 | }
1888 | },
1889 | "openai": {
1890 | "version": "4.19.1",
1891 | "resolved": "https://registry.npmjs.org/openai/-/openai-4.19.1.tgz",
1892 | "integrity": "sha512-9TddzuZBn2xxhghGGTHLZ4EeNBGTLs3xVzh266NiSJvtUsCsZQ5yVV6H5NhnhyAkKK8uUiZOUUlUAk3HdV+4xg==",
1893 | "dev": true,
1894 | "requires": {
1895 | "@types/node": "^18.11.18",
1896 | "@types/node-fetch": "^2.6.4",
1897 | "abort-controller": "^3.0.0",
1898 | "agentkeepalive": "^4.2.1",
1899 | "digest-fetch": "^1.3.0",
1900 | "form-data-encoder": "1.7.2",
1901 | "formdata-node": "^4.3.2",
1902 | "node-fetch": "^2.6.7",
1903 | "web-streams-polyfill": "^3.2.1"
1904 | },
1905 | "dependencies": {
1906 | "@types/node": {
1907 | "version": "18.18.12",
1908 | "resolved": "https://registry.npmjs.org/@types/node/-/node-18.18.12.tgz",
1909 | "integrity": "sha512-G7slVfkwOm7g8VqcEF1/5SXiMjP3Tbt+pXDU3r/qhlM2KkGm786DUD4xyMA2QzEElFrv/KZV9gjygv4LnkpbMQ==",
1910 | "dev": true,
1911 | "requires": {
1912 | "undici-types": "~5.26.4"
1913 | }
1914 | }
1915 | }
1916 | },
1917 | "path-is-absolute": {
1918 | "version": "1.0.1",
1919 | "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
1920 | "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg=="
1921 | },
1922 | "protobufjs": {
1923 | "version": "7.2.5",
1924 | "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-7.2.5.tgz",
1925 | "integrity": "sha512-gGXRSXvxQ7UiPgfw8gevrfRWcTlSbOFg+p/N+JVJEK5VhueL2miT6qTymqAmjr1Q5WbOCyJbyrk6JfWKwlFn6A==",
1926 | "requires": {
1927 | "@protobufjs/aspromise": "^1.1.2",
1928 | "@protobufjs/base64": "^1.1.2",
1929 | "@protobufjs/codegen": "^2.0.4",
1930 | "@protobufjs/eventemitter": "^1.1.0",
1931 | "@protobufjs/fetch": "^1.1.0",
1932 | "@protobufjs/float": "^1.0.2",
1933 | "@protobufjs/inquire": "^1.1.0",
1934 | "@protobufjs/path": "^1.1.2",
1935 | "@protobufjs/pool": "^1.1.0",
1936 | "@protobufjs/utf8": "^1.1.0",
1937 | "@types/node": ">=13.7.0",
1938 | "long": "^5.0.0"
1939 | }
1940 | },
1941 | "protoc-gen-ts": {
1942 | "version": "0.8.7",
1943 | "resolved": "https://registry.npmjs.org/protoc-gen-ts/-/protoc-gen-ts-0.8.7.tgz",
1944 | "integrity": "sha512-jr4VJey2J9LVYCV7EVyVe53g1VMw28cCmYJhBe5e3YX5wiyiDwgxWxeDf9oTqAe4P1bN/YGAkW2jhlH8LohwiQ=="
1945 | },
1946 | "readable-stream": {
1947 | "version": "3.6.2",
1948 | "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz",
1949 | "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==",
1950 | "requires": {
1951 | "inherits": "^2.0.3",
1952 | "string_decoder": "^1.1.1",
1953 | "util-deprecate": "^1.0.1"
1954 | }
1955 | },
1956 | "require-directory": {
1957 | "version": "2.1.1",
1958 | "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz",
1959 | "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q=="
1960 | },
1961 | "rimraf": {
1962 | "version": "3.0.2",
1963 | "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz",
1964 | "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==",
1965 | "requires": {
1966 | "glob": "^7.1.3"
1967 | }
1968 | },
1969 | "safe-buffer": {
1970 | "version": "5.2.1",
1971 | "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
1972 | "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ=="
1973 | },
1974 | "semver": {
1975 | "version": "7.5.4",
1976 | "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz",
1977 | "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==",
1978 | "requires": {
1979 | "lru-cache": "^6.0.0"
1980 | }
1981 | },
1982 | "set-blocking": {
1983 | "version": "2.0.0",
1984 | "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz",
1985 | "integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw=="
1986 | },
1987 | "signal-exit": {
1988 | "version": "3.0.7",
1989 | "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz",
1990 | "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ=="
1991 | },
1992 | "string_decoder": {
1993 | "version": "1.3.0",
1994 | "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz",
1995 | "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==",
1996 | "requires": {
1997 | "safe-buffer": "~5.2.0"
1998 | }
1999 | },
2000 | "string-width": {
2001 | "version": "4.2.3",
2002 | "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
2003 | "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
2004 | "requires": {
2005 | "emoji-regex": "^8.0.0",
2006 | "is-fullwidth-code-point": "^3.0.0",
2007 | "strip-ansi": "^6.0.1"
2008 | }
2009 | },
2010 | "strip-ansi": {
2011 | "version": "6.0.1",
2012 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
2013 | "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
2014 | "requires": {
2015 | "ansi-regex": "^5.0.1"
2016 | }
2017 | },
2018 | "tar": {
2019 | "version": "6.2.0",
2020 | "resolved": "https://registry.npmjs.org/tar/-/tar-6.2.0.tgz",
2021 | "integrity": "sha512-/Wo7DcT0u5HUV486xg675HtjNd3BXZ6xDbzsCUZPt5iw8bTQ63bP0Raut3mvro9u+CUyq7YQd8Cx55fsZXxqLQ==",
2022 | "requires": {
2023 | "chownr": "^2.0.0",
2024 | "fs-minipass": "^2.0.0",
2025 | "minipass": "^5.0.0",
2026 | "minizlib": "^2.1.1",
2027 | "mkdirp": "^1.0.3",
2028 | "yallist": "^4.0.0"
2029 | }
2030 | },
2031 | "tr46": {
2032 | "version": "0.0.3",
2033 | "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz",
2034 | "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw=="
2035 | },
2036 | "undici-types": {
2037 | "version": "5.26.5",
2038 | "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz",
2039 | "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==",
2040 | "dev": true
2041 | },
2042 | "util-deprecate": {
2043 | "version": "1.0.2",
2044 | "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
2045 | "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw=="
2046 | },
2047 | "web-streams-polyfill": {
2048 | "version": "3.2.1",
2049 | "resolved": "https://registry.npmjs.org/web-streams-polyfill/-/web-streams-polyfill-3.2.1.tgz",
2050 | "integrity": "sha512-e0MO3wdXWKrLbL0DgGnUV7WHVuw9OUvL4hjgnPkIeEvESk74gAITi5G606JtZPp39cd8HA9VQzCIvA49LpPN5Q==",
2051 | "dev": true
2052 | },
2053 | "webidl-conversions": {
2054 | "version": "3.0.1",
2055 | "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz",
2056 | "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ=="
2057 | },
2058 | "whatwg-url": {
2059 | "version": "5.0.0",
2060 | "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz",
2061 | "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==",
2062 | "requires": {
2063 | "tr46": "~0.0.3",
2064 | "webidl-conversions": "^3.0.0"
2065 | }
2066 | },
2067 | "wide-align": {
2068 | "version": "1.1.5",
2069 | "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.5.tgz",
2070 | "integrity": "sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==",
2071 | "requires": {
2072 | "string-width": "^1.0.2 || 2 || 3 || 4"
2073 | }
2074 | },
2075 | "wrap-ansi": {
2076 | "version": "7.0.0",
2077 | "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz",
2078 | "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==",
2079 | "requires": {
2080 | "ansi-styles": "^4.0.0",
2081 | "string-width": "^4.1.0",
2082 | "strip-ansi": "^6.0.0"
2083 | }
2084 | },
2085 | "wrappy": {
2086 | "version": "1.0.2",
2087 | "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
2088 | "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ=="
2089 | },
2090 | "y18n": {
2091 | "version": "5.0.8",
2092 | "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz",
2093 | "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA=="
2094 | },
2095 | "yallist": {
2096 | "version": "4.0.0",
2097 | "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
2098 | "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A=="
2099 | },
2100 | "yargs": {
2101 | "version": "17.7.2",
2102 | "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz",
2103 | "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==",
2104 | "requires": {
2105 | "cliui": "^8.0.1",
2106 | "escalade": "^3.1.1",
2107 | "get-caller-file": "^2.0.5",
2108 | "require-directory": "^2.1.1",
2109 | "string-width": "^4.2.3",
2110 | "y18n": "^5.0.5",
2111 | "yargs-parser": "^21.1.1"
2112 | }
2113 | },
2114 | "yargs-parser": {
2115 | "version": "21.1.1",
2116 | "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz",
2117 | "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw=="
2118 | }
2119 | }
2120 | }
2121 |
--------------------------------------------------------------------------------
/functions/ask-chatgpt/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "ask-chatgpt",
3 | "version": "1.0.0",
4 | "description": "Conversational function that allows multiple calls to build a contextual chat with ChatGPT",
5 | "main": "index.js",
6 | "dependencies": {
7 | "@gomomento/sdk": "^1.51.1"
8 | },
9 | "author": "allenheltondev",
10 | "license": "ISC",
11 | "devDependencies": {
12 | "openai": "^4.19.1"
13 | }
14 | }
15 |
--------------------------------------------------------------------------------
/functions/marshall-unmarshall-data/index.js:
--------------------------------------------------------------------------------
1 | const { marshall, unmarshall } = require('@aws-sdk/util-dynamodb');
2 |
3 | exports.handler = async (state) => {
4 | if (state.marshall) {
5 | const data = marshall(state.data);
6 | return { data };
7 | } else {
8 | let data;
9 | if (state.isDynamoDBQuery) {
10 | data = state.data.map(d => unmarshall(d));
11 | } else {
12 | data = unmarshall(state.data);
13 | }
14 |
15 | return { data };
16 | }
17 | };
18 |
--------------------------------------------------------------------------------
/functions/marshall-unmarshall-data/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "marshall-unmarshall-data",
3 | "version": "1.0.0",
4 | "description": "Marshalls or unmarshalls data. Intended to be used in Step Functions",
5 | "main": "index.js",
6 | "scripts": {
7 | "test": "echo \"Error: no test specified\" && exit 1"
8 | },
9 | "author": "allenheltondev",
10 | "license": "ISC",
11 | "devDependencies": {
12 | "@aws-sdk/util-dynamodb": "^3.438.0"
13 | }
14 | }
15 |
--------------------------------------------------------------------------------
/functions/send-api-request/index.js:
--------------------------------------------------------------------------------
1 | const axios = require('axios').default;
2 | const shared = require('/opt/nodejs/index');
3 |
4 | exports.handler = async (state) => {
5 | let authToken;
6 | if (state.secretKey) {
7 | authToken = await shared.getSecret(state.secretKey);
8 | if (!authToken) {
9 | throw new Error('Unable to get secret');
10 | }
11 | }
12 |
13 | const config = getAxiosConfig(state, authToken);
14 | const response = await axios.request(config);
15 | return response.data;
16 | };
17 |
18 | const getAxiosConfig = (state, authToken) => {
19 | const config = {
20 | method: state.request.method,
21 | baseURL: state.request.baseUrl,
22 | headers: state.request.headers ?? {},
23 | ...state.request.body && { data: state.request.body },
24 | responseType: 'json',
25 | validateStatus: (status) => status < 400
26 | };
27 |
28 | if (state.auth) {
29 | let authValue = authToken;
30 | if (state.auth.prefix) {
31 | authValue = `${state.auth.prefix} ${authToken}`;
32 | }
33 |
34 | if (state.auth.location == 'query') {
35 | config.baseURL = `${config.baseURL}?${state.auth.key}=${authValue}`;
36 | } else if (state.auth.location == 'header') {
37 | config.headers[state.auth.key] = authValue;
38 | }
39 | }
40 |
41 | if (state.request.query) {
42 | const query = Object.entries(state.request.query).map(entry => `${entry[0]}=${entry[1]}`).join('&');
43 | if (config.baseURL.includes('?')) {
44 | config.baseURL = `${config.baseURL}&${query}`;
45 | } else {
46 | config.baseURL = `${config.baseURL}?${query}`;
47 | }
48 | }
49 |
50 | return config;
51 | };
--------------------------------------------------------------------------------
/functions/send-api-request/package-lock.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "send-api-request",
3 | "version": "1.0.0",
4 | "lockfileVersion": 2,
5 | "requires": true,
6 | "packages": {
7 | "": {
8 | "name": "send-api-request",
9 | "version": "1.0.0",
10 | "license": "ISC",
11 | "dependencies": {
12 | "axios": "^1.3.5"
13 | }
14 | },
15 | "node_modules/asynckit": {
16 | "version": "0.4.0",
17 | "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
18 | "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q=="
19 | },
20 | "node_modules/axios": {
21 | "version": "1.3.5",
22 | "resolved": "https://registry.npmjs.org/axios/-/axios-1.3.5.tgz",
23 | "integrity": "sha512-glL/PvG/E+xCWwV8S6nCHcrfg1exGx7vxyUIivIA1iL7BIh6bePylCfVHwp6k13ao7SATxB6imau2kqY+I67kw==",
24 | "dependencies": {
25 | "follow-redirects": "^1.15.0",
26 | "form-data": "^4.0.0",
27 | "proxy-from-env": "^1.1.0"
28 | }
29 | },
30 | "node_modules/combined-stream": {
31 | "version": "1.0.8",
32 | "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz",
33 | "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==",
34 | "dependencies": {
35 | "delayed-stream": "~1.0.0"
36 | },
37 | "engines": {
38 | "node": ">= 0.8"
39 | }
40 | },
41 | "node_modules/delayed-stream": {
42 | "version": "1.0.0",
43 | "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
44 | "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==",
45 | "engines": {
46 | "node": ">=0.4.0"
47 | }
48 | },
49 | "node_modules/follow-redirects": {
50 | "version": "1.15.2",
51 | "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.2.tgz",
52 | "integrity": "sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==",
53 | "funding": [
54 | {
55 | "type": "individual",
56 | "url": "https://github.com/sponsors/RubenVerborgh"
57 | }
58 | ],
59 | "engines": {
60 | "node": ">=4.0"
61 | },
62 | "peerDependenciesMeta": {
63 | "debug": {
64 | "optional": true
65 | }
66 | }
67 | },
68 | "node_modules/form-data": {
69 | "version": "4.0.0",
70 | "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz",
71 | "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==",
72 | "dependencies": {
73 | "asynckit": "^0.4.0",
74 | "combined-stream": "^1.0.8",
75 | "mime-types": "^2.1.12"
76 | },
77 | "engines": {
78 | "node": ">= 6"
79 | }
80 | },
81 | "node_modules/mime-db": {
82 | "version": "1.52.0",
83 | "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz",
84 | "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==",
85 | "engines": {
86 | "node": ">= 0.6"
87 | }
88 | },
89 | "node_modules/mime-types": {
90 | "version": "2.1.35",
91 | "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz",
92 | "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==",
93 | "dependencies": {
94 | "mime-db": "1.52.0"
95 | },
96 | "engines": {
97 | "node": ">= 0.6"
98 | }
99 | },
100 | "node_modules/proxy-from-env": {
101 | "version": "1.1.0",
102 | "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz",
103 | "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg=="
104 | }
105 | },
106 | "dependencies": {
107 | "asynckit": {
108 | "version": "0.4.0",
109 | "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
110 | "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q=="
111 | },
112 | "axios": {
113 | "version": "1.3.5",
114 | "resolved": "https://registry.npmjs.org/axios/-/axios-1.3.5.tgz",
115 | "integrity": "sha512-glL/PvG/E+xCWwV8S6nCHcrfg1exGx7vxyUIivIA1iL7BIh6bePylCfVHwp6k13ao7SATxB6imau2kqY+I67kw==",
116 | "requires": {
117 | "follow-redirects": "^1.15.0",
118 | "form-data": "^4.0.0",
119 | "proxy-from-env": "^1.1.0"
120 | }
121 | },
122 | "combined-stream": {
123 | "version": "1.0.8",
124 | "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz",
125 | "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==",
126 | "requires": {
127 | "delayed-stream": "~1.0.0"
128 | }
129 | },
130 | "delayed-stream": {
131 | "version": "1.0.0",
132 | "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
133 | "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ=="
134 | },
135 | "follow-redirects": {
136 | "version": "1.15.2",
137 | "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.2.tgz",
138 | "integrity": "sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA=="
139 | },
140 | "form-data": {
141 | "version": "4.0.0",
142 | "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz",
143 | "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==",
144 | "requires": {
145 | "asynckit": "^0.4.0",
146 | "combined-stream": "^1.0.8",
147 | "mime-types": "^2.1.12"
148 | }
149 | },
150 | "mime-db": {
151 | "version": "1.52.0",
152 | "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz",
153 | "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg=="
154 | },
155 | "mime-types": {
156 | "version": "2.1.35",
157 | "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz",
158 | "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==",
159 | "requires": {
160 | "mime-db": "1.52.0"
161 | }
162 | },
163 | "proxy-from-env": {
164 | "version": "1.1.0",
165 | "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz",
166 | "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg=="
167 | }
168 | }
169 | }
170 |
--------------------------------------------------------------------------------
/functions/send-api-request/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "send-api-request",
3 | "version": "1.0.0",
4 | "description": "Sends an API request and returns the response",
5 | "main": "index.js",
6 | "author": "allenheltondev",
7 | "license": "ISC",
8 | "dependencies": {
9 | "axios": "^1.3.5"
10 | }
11 | }
12 |
--------------------------------------------------------------------------------
/functions/send-email/index.js:
--------------------------------------------------------------------------------
1 | const sendgrid = require('@sendgrid/mail');
2 | const shared = require('/opt/nodejs/index');
3 |
4 | exports.handler = async (state) => {
5 | try {
6 | const apiKey = await shared.getSecret('sendgrid');
7 | sendgrid.setApiKey(apiKey);
8 |
9 | let { to, subject, html, text } = state;
10 | if(state.detail){
11 | to = state.detail.to;
12 | subject = state.detail.subject;
13 | html = state.detail.html;
14 | text = state.detail.text;
15 | }
16 |
17 | await sendMessage(to, subject, html, text);
18 | } catch (err) {
19 | console.error(err.response ?? err);
20 | }
21 | };
22 |
23 | const sendMessage = async (to, subject, html, text) => {
24 | const msg = {
25 | to: to,
26 | from: process.env.FROM_EMAIL,
27 | subject: subject,
28 | ...html && {
29 | content: [
30 | {
31 | type: 'text/html',
32 | value: html
33 | }
34 | ]
35 | },
36 | ...text && { text: text }
37 | };
38 |
39 | await sendgrid.send(msg);
40 | };
41 |
--------------------------------------------------------------------------------
/functions/send-email/package-lock.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "send-email",
3 | "version": "1.0.0",
4 | "lockfileVersion": 2,
5 | "requires": true,
6 | "packages": {
7 | "": {
8 | "name": "send-email",
9 | "version": "1.0.0",
10 | "license": "ISC",
11 | "dependencies": {
12 | "@sendgrid/mail": "^7.7.0"
13 | }
14 | },
15 | "node_modules/@sendgrid/client": {
16 | "version": "7.7.0",
17 | "resolved": "https://registry.npmjs.org/@sendgrid/client/-/client-7.7.0.tgz",
18 | "integrity": "sha512-SxH+y8jeAQSnDavrTD0uGDXYIIkFylCo+eDofVmZLQ0f862nnqbC3Vd1ej6b7Le7lboyzQF6F7Fodv02rYspuA==",
19 | "dependencies": {
20 | "@sendgrid/helpers": "^7.7.0",
21 | "axios": "^0.26.0"
22 | },
23 | "engines": {
24 | "node": "6.* || 8.* || >=10.*"
25 | }
26 | },
27 | "node_modules/@sendgrid/helpers": {
28 | "version": "7.7.0",
29 | "resolved": "https://registry.npmjs.org/@sendgrid/helpers/-/helpers-7.7.0.tgz",
30 | "integrity": "sha512-3AsAxfN3GDBcXoZ/y1mzAAbKzTtUZ5+ZrHOmWQ279AuaFXUNCh9bPnRpN504bgveTqoW+11IzPg3I0WVgDINpw==",
31 | "dependencies": {
32 | "deepmerge": "^4.2.2"
33 | },
34 | "engines": {
35 | "node": ">= 6.0.0"
36 | }
37 | },
38 | "node_modules/@sendgrid/mail": {
39 | "version": "7.7.0",
40 | "resolved": "https://registry.npmjs.org/@sendgrid/mail/-/mail-7.7.0.tgz",
41 | "integrity": "sha512-5+nApPE9wINBvHSUxwOxkkQqM/IAAaBYoP9hw7WwgDNQPxraruVqHizeTitVtKGiqWCKm2mnjh4XGN3fvFLqaw==",
42 | "dependencies": {
43 | "@sendgrid/client": "^7.7.0",
44 | "@sendgrid/helpers": "^7.7.0"
45 | },
46 | "engines": {
47 | "node": "6.* || 8.* || >=10.*"
48 | }
49 | },
50 | "node_modules/axios": {
51 | "version": "0.26.1",
52 | "resolved": "https://registry.npmjs.org/axios/-/axios-0.26.1.tgz",
53 | "integrity": "sha512-fPwcX4EvnSHuInCMItEhAGnaSEXRBjtzh9fOtsE6E1G6p7vl7edEeZe11QHf18+6+9gR5PbKV/sGKNaD8YaMeA==",
54 | "dependencies": {
55 | "follow-redirects": "^1.14.8"
56 | }
57 | },
58 | "node_modules/deepmerge": {
59 | "version": "4.3.1",
60 | "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz",
61 | "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==",
62 | "engines": {
63 | "node": ">=0.10.0"
64 | }
65 | },
66 | "node_modules/follow-redirects": {
67 | "version": "1.15.2",
68 | "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.2.tgz",
69 | "integrity": "sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==",
70 | "funding": [
71 | {
72 | "type": "individual",
73 | "url": "https://github.com/sponsors/RubenVerborgh"
74 | }
75 | ],
76 | "engines": {
77 | "node": ">=4.0"
78 | },
79 | "peerDependenciesMeta": {
80 | "debug": {
81 | "optional": true
82 | }
83 | }
84 | }
85 | },
86 | "dependencies": {
87 | "@sendgrid/client": {
88 | "version": "7.7.0",
89 | "resolved": "https://registry.npmjs.org/@sendgrid/client/-/client-7.7.0.tgz",
90 | "integrity": "sha512-SxH+y8jeAQSnDavrTD0uGDXYIIkFylCo+eDofVmZLQ0f862nnqbC3Vd1ej6b7Le7lboyzQF6F7Fodv02rYspuA==",
91 | "requires": {
92 | "@sendgrid/helpers": "^7.7.0",
93 | "axios": "^0.26.0"
94 | }
95 | },
96 | "@sendgrid/helpers": {
97 | "version": "7.7.0",
98 | "resolved": "https://registry.npmjs.org/@sendgrid/helpers/-/helpers-7.7.0.tgz",
99 | "integrity": "sha512-3AsAxfN3GDBcXoZ/y1mzAAbKzTtUZ5+ZrHOmWQ279AuaFXUNCh9bPnRpN504bgveTqoW+11IzPg3I0WVgDINpw==",
100 | "requires": {
101 | "deepmerge": "^4.2.2"
102 | }
103 | },
104 | "@sendgrid/mail": {
105 | "version": "7.7.0",
106 | "resolved": "https://registry.npmjs.org/@sendgrid/mail/-/mail-7.7.0.tgz",
107 | "integrity": "sha512-5+nApPE9wINBvHSUxwOxkkQqM/IAAaBYoP9hw7WwgDNQPxraruVqHizeTitVtKGiqWCKm2mnjh4XGN3fvFLqaw==",
108 | "requires": {
109 | "@sendgrid/client": "^7.7.0",
110 | "@sendgrid/helpers": "^7.7.0"
111 | }
112 | },
113 | "axios": {
114 | "version": "0.26.1",
115 | "resolved": "https://registry.npmjs.org/axios/-/axios-0.26.1.tgz",
116 | "integrity": "sha512-fPwcX4EvnSHuInCMItEhAGnaSEXRBjtzh9fOtsE6E1G6p7vl7edEeZe11QHf18+6+9gR5PbKV/sGKNaD8YaMeA==",
117 | "requires": {
118 | "follow-redirects": "^1.14.8"
119 | }
120 | },
121 | "deepmerge": {
122 | "version": "4.3.1",
123 | "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz",
124 | "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A=="
125 | },
126 | "follow-redirects": {
127 | "version": "1.15.2",
128 | "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.2.tgz",
129 | "integrity": "sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA=="
130 | }
131 | }
132 | }
133 |
--------------------------------------------------------------------------------
/functions/send-email/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "send-email",
3 | "version": "1.0.0",
4 | "description": "Sends an email via SendGrid",
5 | "main": "index.js",
6 | "author": "allenheltondev",
7 | "license": "ISC",
8 | "dependencies": {
9 | "@sendgrid/mail": "^7.7.0"
10 | }
11 | }
12 |
--------------------------------------------------------------------------------
/functions/set-log-retention/index.js:
--------------------------------------------------------------------------------
1 | const { CloudWatchLogsClient, DescribeLogGroupsCommand, PutRetentionPolicyCommand } = require("@aws-sdk/client-cloudwatch-logs");
2 | const logs = new CloudWatchLogsClient();
3 |
4 | exports.handler = async (event) => {
5 | let success = true;
6 | try {
7 | const logGroupsToUpdate = await getLambdaLogGroupsToUpdate();
8 | if (logGroupsToUpdate?.length) {
9 | await setLogGroupRetentionPolicy(logGroupsToUpdate);
10 | }
11 | }
12 | catch (err) {
13 | console.error(err);
14 | success = false;
15 | }
16 |
17 | return { success };
18 | };
19 |
20 |
21 | const getLambdaLogGroupsToUpdate = async () => {
22 | let logGroups = [];
23 | const params = buildDescribeLogGroupsCommandInput();
24 | do {
25 | const response = await logs.send(new DescribeLogGroupsCommand(params));
26 | params.nextToken = response.nextToken;
27 | logGroups = logGroups.concat(response.logGroups.filter(lg => lg.retentionInDays !== process.env.RETENTION_DAYS).map(lg => lg.logGroupName));
28 | } while (params.nextToken);
29 |
30 | return logGroups;
31 | };
32 |
33 | const buildDescribeLogGroupsCommandInput = () => {
34 | const params = {
35 | limit: 50,
36 | logGroupNamePrefix: '/aws/lambda/'
37 | };
38 |
39 | return params;
40 | };
41 |
42 | const setLogGroupRetentionPolicy = async (logGroups) => {
43 | await Promise.all(logGroups.map(async (logGroupName) => {
44 | const params = buildPutRetentionPolicyCommandInput(logGroupName);
45 | await logs.send(new PutRetentionPolicyCommand(params));
46 | }));
47 | };
48 |
49 | const buildPutRetentionPolicyCommandInput = (logGroupName) => {
50 | const params = {
51 | logGroupName: logGroupName,
52 | retentionInDays: parseInt(process.env.RETENTION_DAYS)
53 | };
54 |
55 | return params;
56 | };
--------------------------------------------------------------------------------
/functions/set-log-retention/package-lock.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "set-log-retention",
3 | "version": "1.0.0",
4 | "lockfileVersion": 2,
5 | "requires": true,
6 | "packages": {
7 | "": {
8 | "name": "set-log-retention",
9 | "version": "1.0.0",
10 | "license": "ISC",
11 | "dependencies": {
12 | "@aws-sdk/client-cloudwatch-logs": "^3.312.0"
13 | }
14 | },
15 | "node_modules/@aws-crypto/ie11-detection": {
16 | "version": "3.0.0",
17 | "resolved": "https://registry.npmjs.org/@aws-crypto/ie11-detection/-/ie11-detection-3.0.0.tgz",
18 | "integrity": "sha512-341lBBkiY1DfDNKai/wXM3aujNBkXR7tq1URPQDL9wi3AUbI80NR74uF1TXHMm7po1AcnFk8iu2S2IeU/+/A+Q==",
19 | "dependencies": {
20 | "tslib": "^1.11.1"
21 | }
22 | },
23 | "node_modules/@aws-crypto/ie11-detection/node_modules/tslib": {
24 | "version": "1.14.1",
25 | "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz",
26 | "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg=="
27 | },
28 | "node_modules/@aws-crypto/sha256-browser": {
29 | "version": "3.0.0",
30 | "resolved": "https://registry.npmjs.org/@aws-crypto/sha256-browser/-/sha256-browser-3.0.0.tgz",
31 | "integrity": "sha512-8VLmW2B+gjFbU5uMeqtQM6Nj0/F1bro80xQXCW6CQBWgosFWXTx77aeOF5CAIAmbOK64SdMBJdNr6J41yP5mvQ==",
32 | "dependencies": {
33 | "@aws-crypto/ie11-detection": "^3.0.0",
34 | "@aws-crypto/sha256-js": "^3.0.0",
35 | "@aws-crypto/supports-web-crypto": "^3.0.0",
36 | "@aws-crypto/util": "^3.0.0",
37 | "@aws-sdk/types": "^3.222.0",
38 | "@aws-sdk/util-locate-window": "^3.0.0",
39 | "@aws-sdk/util-utf8-browser": "^3.0.0",
40 | "tslib": "^1.11.1"
41 | }
42 | },
43 | "node_modules/@aws-crypto/sha256-browser/node_modules/tslib": {
44 | "version": "1.14.1",
45 | "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz",
46 | "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg=="
47 | },
48 | "node_modules/@aws-crypto/sha256-js": {
49 | "version": "3.0.0",
50 | "resolved": "https://registry.npmjs.org/@aws-crypto/sha256-js/-/sha256-js-3.0.0.tgz",
51 | "integrity": "sha512-PnNN7os0+yd1XvXAy23CFOmTbMaDxgxXtTKHybrJ39Y8kGzBATgBFibWJKH6BhytLI/Zyszs87xCOBNyBig6vQ==",
52 | "dependencies": {
53 | "@aws-crypto/util": "^3.0.0",
54 | "@aws-sdk/types": "^3.222.0",
55 | "tslib": "^1.11.1"
56 | }
57 | },
58 | "node_modules/@aws-crypto/sha256-js/node_modules/tslib": {
59 | "version": "1.14.1",
60 | "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz",
61 | "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg=="
62 | },
63 | "node_modules/@aws-crypto/supports-web-crypto": {
64 | "version": "3.0.0",
65 | "resolved": "https://registry.npmjs.org/@aws-crypto/supports-web-crypto/-/supports-web-crypto-3.0.0.tgz",
66 | "integrity": "sha512-06hBdMwUAb2WFTuGG73LSC0wfPu93xWwo5vL2et9eymgmu3Id5vFAHBbajVWiGhPO37qcsdCap/FqXvJGJWPIg==",
67 | "dependencies": {
68 | "tslib": "^1.11.1"
69 | }
70 | },
71 | "node_modules/@aws-crypto/supports-web-crypto/node_modules/tslib": {
72 | "version": "1.14.1",
73 | "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz",
74 | "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg=="
75 | },
76 | "node_modules/@aws-crypto/util": {
77 | "version": "3.0.0",
78 | "resolved": "https://registry.npmjs.org/@aws-crypto/util/-/util-3.0.0.tgz",
79 | "integrity": "sha512-2OJlpeJpCR48CC8r+uKVChzs9Iungj9wkZrl8Z041DWEWvyIHILYKCPNzJghKsivj+S3mLo6BVc7mBNzdxA46w==",
80 | "dependencies": {
81 | "@aws-sdk/types": "^3.222.0",
82 | "@aws-sdk/util-utf8-browser": "^3.0.0",
83 | "tslib": "^1.11.1"
84 | }
85 | },
86 | "node_modules/@aws-crypto/util/node_modules/tslib": {
87 | "version": "1.14.1",
88 | "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz",
89 | "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg=="
90 | },
91 | "node_modules/@aws-sdk/abort-controller": {
92 | "version": "3.310.0",
93 | "resolved": "https://registry.npmjs.org/@aws-sdk/abort-controller/-/abort-controller-3.310.0.tgz",
94 | "integrity": "sha512-v1zrRQxDLA1MdPim159Vx/CPHqsB4uybSxRi1CnfHO5ZjHryx3a5htW2gdGAykVCul40+yJXvfpufMrELVxH+g==",
95 | "dependencies": {
96 | "@aws-sdk/types": "3.310.0",
97 | "tslib": "^2.5.0"
98 | },
99 | "engines": {
100 | "node": ">=14.0.0"
101 | }
102 | },
103 | "node_modules/@aws-sdk/client-cloudwatch-logs": {
104 | "version": "3.312.0",
105 | "resolved": "https://registry.npmjs.org/@aws-sdk/client-cloudwatch-logs/-/client-cloudwatch-logs-3.312.0.tgz",
106 | "integrity": "sha512-AM5Ne5/OSS1Ku1ZVJDn9wRTqCev1J3EkwhOw70aYgt6HZyj/HpuWBn33z6+Fv8ajFIQBqHcUBQdZTsFn85cgKw==",
107 | "dependencies": {
108 | "@aws-crypto/sha256-browser": "3.0.0",
109 | "@aws-crypto/sha256-js": "3.0.0",
110 | "@aws-sdk/client-sts": "3.312.0",
111 | "@aws-sdk/config-resolver": "3.310.0",
112 | "@aws-sdk/credential-provider-node": "3.310.0",
113 | "@aws-sdk/fetch-http-handler": "3.310.0",
114 | "@aws-sdk/hash-node": "3.310.0",
115 | "@aws-sdk/invalid-dependency": "3.310.0",
116 | "@aws-sdk/middleware-content-length": "3.310.0",
117 | "@aws-sdk/middleware-endpoint": "3.310.0",
118 | "@aws-sdk/middleware-host-header": "3.310.0",
119 | "@aws-sdk/middleware-logger": "3.310.0",
120 | "@aws-sdk/middleware-recursion-detection": "3.310.0",
121 | "@aws-sdk/middleware-retry": "3.310.0",
122 | "@aws-sdk/middleware-serde": "3.310.0",
123 | "@aws-sdk/middleware-signing": "3.310.0",
124 | "@aws-sdk/middleware-stack": "3.310.0",
125 | "@aws-sdk/middleware-user-agent": "3.310.0",
126 | "@aws-sdk/node-config-provider": "3.310.0",
127 | "@aws-sdk/node-http-handler": "3.310.0",
128 | "@aws-sdk/protocol-http": "3.310.0",
129 | "@aws-sdk/smithy-client": "3.310.0",
130 | "@aws-sdk/types": "3.310.0",
131 | "@aws-sdk/url-parser": "3.310.0",
132 | "@aws-sdk/util-base64": "3.310.0",
133 | "@aws-sdk/util-body-length-browser": "3.310.0",
134 | "@aws-sdk/util-body-length-node": "3.310.0",
135 | "@aws-sdk/util-defaults-mode-browser": "3.310.0",
136 | "@aws-sdk/util-defaults-mode-node": "3.310.0",
137 | "@aws-sdk/util-endpoints": "3.310.0",
138 | "@aws-sdk/util-retry": "3.310.0",
139 | "@aws-sdk/util-user-agent-browser": "3.310.0",
140 | "@aws-sdk/util-user-agent-node": "3.310.0",
141 | "@aws-sdk/util-utf8": "3.310.0",
142 | "tslib": "^2.5.0"
143 | },
144 | "engines": {
145 | "node": ">=14.0.0"
146 | }
147 | },
148 | "node_modules/@aws-sdk/client-sso": {
149 | "version": "3.310.0",
150 | "resolved": "https://registry.npmjs.org/@aws-sdk/client-sso/-/client-sso-3.310.0.tgz",
151 | "integrity": "sha512-netFap3Mp9I7bzAjsswHPA5WEbQtNMmXvW9/IVb7tmf85/esXCWindtyI43e/Xerut9ZVyEACPBFn30CLLE2xQ==",
152 | "dependencies": {
153 | "@aws-crypto/sha256-browser": "3.0.0",
154 | "@aws-crypto/sha256-js": "3.0.0",
155 | "@aws-sdk/config-resolver": "3.310.0",
156 | "@aws-sdk/fetch-http-handler": "3.310.0",
157 | "@aws-sdk/hash-node": "3.310.0",
158 | "@aws-sdk/invalid-dependency": "3.310.0",
159 | "@aws-sdk/middleware-content-length": "3.310.0",
160 | "@aws-sdk/middleware-endpoint": "3.310.0",
161 | "@aws-sdk/middleware-host-header": "3.310.0",
162 | "@aws-sdk/middleware-logger": "3.310.0",
163 | "@aws-sdk/middleware-recursion-detection": "3.310.0",
164 | "@aws-sdk/middleware-retry": "3.310.0",
165 | "@aws-sdk/middleware-serde": "3.310.0",
166 | "@aws-sdk/middleware-stack": "3.310.0",
167 | "@aws-sdk/middleware-user-agent": "3.310.0",
168 | "@aws-sdk/node-config-provider": "3.310.0",
169 | "@aws-sdk/node-http-handler": "3.310.0",
170 | "@aws-sdk/protocol-http": "3.310.0",
171 | "@aws-sdk/smithy-client": "3.310.0",
172 | "@aws-sdk/types": "3.310.0",
173 | "@aws-sdk/url-parser": "3.310.0",
174 | "@aws-sdk/util-base64": "3.310.0",
175 | "@aws-sdk/util-body-length-browser": "3.310.0",
176 | "@aws-sdk/util-body-length-node": "3.310.0",
177 | "@aws-sdk/util-defaults-mode-browser": "3.310.0",
178 | "@aws-sdk/util-defaults-mode-node": "3.310.0",
179 | "@aws-sdk/util-endpoints": "3.310.0",
180 | "@aws-sdk/util-retry": "3.310.0",
181 | "@aws-sdk/util-user-agent-browser": "3.310.0",
182 | "@aws-sdk/util-user-agent-node": "3.310.0",
183 | "@aws-sdk/util-utf8": "3.310.0",
184 | "tslib": "^2.5.0"
185 | },
186 | "engines": {
187 | "node": ">=14.0.0"
188 | }
189 | },
190 | "node_modules/@aws-sdk/client-sso-oidc": {
191 | "version": "3.310.0",
192 | "resolved": "https://registry.npmjs.org/@aws-sdk/client-sso-oidc/-/client-sso-oidc-3.310.0.tgz",
193 | "integrity": "sha512-3GKaRSfMD3OiYWGa+qg5KvJw0nLV0Vu7zRiulLuKDvgmWw3SNJKn3frWlmq/bKFUKahLsV8zozbeJItxtKAD6g==",
194 | "dependencies": {
195 | "@aws-crypto/sha256-browser": "3.0.0",
196 | "@aws-crypto/sha256-js": "3.0.0",
197 | "@aws-sdk/config-resolver": "3.310.0",
198 | "@aws-sdk/fetch-http-handler": "3.310.0",
199 | "@aws-sdk/hash-node": "3.310.0",
200 | "@aws-sdk/invalid-dependency": "3.310.0",
201 | "@aws-sdk/middleware-content-length": "3.310.0",
202 | "@aws-sdk/middleware-endpoint": "3.310.0",
203 | "@aws-sdk/middleware-host-header": "3.310.0",
204 | "@aws-sdk/middleware-logger": "3.310.0",
205 | "@aws-sdk/middleware-recursion-detection": "3.310.0",
206 | "@aws-sdk/middleware-retry": "3.310.0",
207 | "@aws-sdk/middleware-serde": "3.310.0",
208 | "@aws-sdk/middleware-stack": "3.310.0",
209 | "@aws-sdk/middleware-user-agent": "3.310.0",
210 | "@aws-sdk/node-config-provider": "3.310.0",
211 | "@aws-sdk/node-http-handler": "3.310.0",
212 | "@aws-sdk/protocol-http": "3.310.0",
213 | "@aws-sdk/smithy-client": "3.310.0",
214 | "@aws-sdk/types": "3.310.0",
215 | "@aws-sdk/url-parser": "3.310.0",
216 | "@aws-sdk/util-base64": "3.310.0",
217 | "@aws-sdk/util-body-length-browser": "3.310.0",
218 | "@aws-sdk/util-body-length-node": "3.310.0",
219 | "@aws-sdk/util-defaults-mode-browser": "3.310.0",
220 | "@aws-sdk/util-defaults-mode-node": "3.310.0",
221 | "@aws-sdk/util-endpoints": "3.310.0",
222 | "@aws-sdk/util-retry": "3.310.0",
223 | "@aws-sdk/util-user-agent-browser": "3.310.0",
224 | "@aws-sdk/util-user-agent-node": "3.310.0",
225 | "@aws-sdk/util-utf8": "3.310.0",
226 | "tslib": "^2.5.0"
227 | },
228 | "engines": {
229 | "node": ">=14.0.0"
230 | }
231 | },
232 | "node_modules/@aws-sdk/client-sts": {
233 | "version": "3.312.0",
234 | "resolved": "https://registry.npmjs.org/@aws-sdk/client-sts/-/client-sts-3.312.0.tgz",
235 | "integrity": "sha512-t0U7vRvWaMjrzBUo6tPrHe6HE97Blqx+b4GOjFbcbLtzxLlcRfhnWJik0Lp8hJtVqzNoN5mL4OeYgK7CRpL/Sw==",
236 | "dependencies": {
237 | "@aws-crypto/sha256-browser": "3.0.0",
238 | "@aws-crypto/sha256-js": "3.0.0",
239 | "@aws-sdk/config-resolver": "3.310.0",
240 | "@aws-sdk/credential-provider-node": "3.310.0",
241 | "@aws-sdk/fetch-http-handler": "3.310.0",
242 | "@aws-sdk/hash-node": "3.310.0",
243 | "@aws-sdk/invalid-dependency": "3.310.0",
244 | "@aws-sdk/middleware-content-length": "3.310.0",
245 | "@aws-sdk/middleware-endpoint": "3.310.0",
246 | "@aws-sdk/middleware-host-header": "3.310.0",
247 | "@aws-sdk/middleware-logger": "3.310.0",
248 | "@aws-sdk/middleware-recursion-detection": "3.310.0",
249 | "@aws-sdk/middleware-retry": "3.310.0",
250 | "@aws-sdk/middleware-sdk-sts": "3.310.0",
251 | "@aws-sdk/middleware-serde": "3.310.0",
252 | "@aws-sdk/middleware-signing": "3.310.0",
253 | "@aws-sdk/middleware-stack": "3.310.0",
254 | "@aws-sdk/middleware-user-agent": "3.310.0",
255 | "@aws-sdk/node-config-provider": "3.310.0",
256 | "@aws-sdk/node-http-handler": "3.310.0",
257 | "@aws-sdk/protocol-http": "3.310.0",
258 | "@aws-sdk/smithy-client": "3.310.0",
259 | "@aws-sdk/types": "3.310.0",
260 | "@aws-sdk/url-parser": "3.310.0",
261 | "@aws-sdk/util-base64": "3.310.0",
262 | "@aws-sdk/util-body-length-browser": "3.310.0",
263 | "@aws-sdk/util-body-length-node": "3.310.0",
264 | "@aws-sdk/util-defaults-mode-browser": "3.310.0",
265 | "@aws-sdk/util-defaults-mode-node": "3.310.0",
266 | "@aws-sdk/util-endpoints": "3.310.0",
267 | "@aws-sdk/util-retry": "3.310.0",
268 | "@aws-sdk/util-user-agent-browser": "3.310.0",
269 | "@aws-sdk/util-user-agent-node": "3.310.0",
270 | "@aws-sdk/util-utf8": "3.310.0",
271 | "fast-xml-parser": "4.1.2",
272 | "tslib": "^2.5.0"
273 | },
274 | "engines": {
275 | "node": ">=14.0.0"
276 | }
277 | },
278 | "node_modules/@aws-sdk/config-resolver": {
279 | "version": "3.310.0",
280 | "resolved": "https://registry.npmjs.org/@aws-sdk/config-resolver/-/config-resolver-3.310.0.tgz",
281 | "integrity": "sha512-8vsT+/50lOqfDxka9m/rRt6oxv1WuGZoP8oPMk0Dt+TxXMbAzf4+rejBgiB96wshI1k3gLokYRjSQZn+dDtT8g==",
282 | "dependencies": {
283 | "@aws-sdk/types": "3.310.0",
284 | "@aws-sdk/util-config-provider": "3.310.0",
285 | "@aws-sdk/util-middleware": "3.310.0",
286 | "tslib": "^2.5.0"
287 | },
288 | "engines": {
289 | "node": ">=14.0.0"
290 | }
291 | },
292 | "node_modules/@aws-sdk/credential-provider-env": {
293 | "version": "3.310.0",
294 | "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-env/-/credential-provider-env-3.310.0.tgz",
295 | "integrity": "sha512-vvIPQpI16fj95xwS7M3D48F7QhZJBnnCgB5lR+b7So+vsG9ibm1mZRVGzVpdxCvgyOhHFbvrby9aalNJmmIP1A==",
296 | "dependencies": {
297 | "@aws-sdk/property-provider": "3.310.0",
298 | "@aws-sdk/types": "3.310.0",
299 | "tslib": "^2.5.0"
300 | },
301 | "engines": {
302 | "node": ">=14.0.0"
303 | }
304 | },
305 | "node_modules/@aws-sdk/credential-provider-imds": {
306 | "version": "3.310.0",
307 | "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-imds/-/credential-provider-imds-3.310.0.tgz",
308 | "integrity": "sha512-baxK7Zp6dai5AGW01FIW27xS2KAaPUmKLIXv5SvFYsUgXXvNW55im4uG3b+2gA0F7V+hXvVBH08OEqmwW6we5w==",
309 | "dependencies": {
310 | "@aws-sdk/node-config-provider": "3.310.0",
311 | "@aws-sdk/property-provider": "3.310.0",
312 | "@aws-sdk/types": "3.310.0",
313 | "@aws-sdk/url-parser": "3.310.0",
314 | "tslib": "^2.5.0"
315 | },
316 | "engines": {
317 | "node": ">=14.0.0"
318 | }
319 | },
320 | "node_modules/@aws-sdk/credential-provider-ini": {
321 | "version": "3.310.0",
322 | "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.310.0.tgz",
323 | "integrity": "sha512-gtRz7I+4BBpwZ3tc6UIt5lQuiAFnkpOibxHh95x1M6HDxBjm+uqD6RPZYVH+dULZPYXOtOTsHV0IGjrcV0sSRg==",
324 | "dependencies": {
325 | "@aws-sdk/credential-provider-env": "3.310.0",
326 | "@aws-sdk/credential-provider-imds": "3.310.0",
327 | "@aws-sdk/credential-provider-process": "3.310.0",
328 | "@aws-sdk/credential-provider-sso": "3.310.0",
329 | "@aws-sdk/credential-provider-web-identity": "3.310.0",
330 | "@aws-sdk/property-provider": "3.310.0",
331 | "@aws-sdk/shared-ini-file-loader": "3.310.0",
332 | "@aws-sdk/types": "3.310.0",
333 | "tslib": "^2.5.0"
334 | },
335 | "engines": {
336 | "node": ">=14.0.0"
337 | }
338 | },
339 | "node_modules/@aws-sdk/credential-provider-node": {
340 | "version": "3.310.0",
341 | "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-node/-/credential-provider-node-3.310.0.tgz",
342 | "integrity": "sha512-FrOztUcOq2Sp32xGtJvxfvdlmuAeoxIu/AElHzV1bkx6Pzo9DkQBhXrSQ+JFSpI++weOD4ZGFhAvgbgUOT4VAg==",
343 | "dependencies": {
344 | "@aws-sdk/credential-provider-env": "3.310.0",
345 | "@aws-sdk/credential-provider-imds": "3.310.0",
346 | "@aws-sdk/credential-provider-ini": "3.310.0",
347 | "@aws-sdk/credential-provider-process": "3.310.0",
348 | "@aws-sdk/credential-provider-sso": "3.310.0",
349 | "@aws-sdk/credential-provider-web-identity": "3.310.0",
350 | "@aws-sdk/property-provider": "3.310.0",
351 | "@aws-sdk/shared-ini-file-loader": "3.310.0",
352 | "@aws-sdk/types": "3.310.0",
353 | "tslib": "^2.5.0"
354 | },
355 | "engines": {
356 | "node": ">=14.0.0"
357 | }
358 | },
359 | "node_modules/@aws-sdk/credential-provider-process": {
360 | "version": "3.310.0",
361 | "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-process/-/credential-provider-process-3.310.0.tgz",
362 | "integrity": "sha512-h73sg6GPMUWC+3zMCbA1nZ2O03nNJt7G96JdmnantiXBwHpRKWW8nBTLzx5uhXn6hTuTaoQRP/P+oxQJKYdMmA==",
363 | "dependencies": {
364 | "@aws-sdk/property-provider": "3.310.0",
365 | "@aws-sdk/shared-ini-file-loader": "3.310.0",
366 | "@aws-sdk/types": "3.310.0",
367 | "tslib": "^2.5.0"
368 | },
369 | "engines": {
370 | "node": ">=14.0.0"
371 | }
372 | },
373 | "node_modules/@aws-sdk/credential-provider-sso": {
374 | "version": "3.310.0",
375 | "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.310.0.tgz",
376 | "integrity": "sha512-nXkpT8mrM/wRqSiz/a4p9U2UrOKyfZXhbPHIHyQj8K+uLjsYS+WPuH287J4A5Q57A6uarTrj5RjHmVeZVLaHmg==",
377 | "dependencies": {
378 | "@aws-sdk/client-sso": "3.310.0",
379 | "@aws-sdk/property-provider": "3.310.0",
380 | "@aws-sdk/shared-ini-file-loader": "3.310.0",
381 | "@aws-sdk/token-providers": "3.310.0",
382 | "@aws-sdk/types": "3.310.0",
383 | "tslib": "^2.5.0"
384 | },
385 | "engines": {
386 | "node": ">=14.0.0"
387 | }
388 | },
389 | "node_modules/@aws-sdk/credential-provider-web-identity": {
390 | "version": "3.310.0",
391 | "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-web-identity/-/credential-provider-web-identity-3.310.0.tgz",
392 | "integrity": "sha512-H4SzuZXILNhK6/IR1uVvsUDZvzc051hem7GLyYghBCu8mU+tq28YhKE8MfSroi6eL2e5Vujloij1OM2EQQkPkw==",
393 | "dependencies": {
394 | "@aws-sdk/property-provider": "3.310.0",
395 | "@aws-sdk/types": "3.310.0",
396 | "tslib": "^2.5.0"
397 | },
398 | "engines": {
399 | "node": ">=14.0.0"
400 | }
401 | },
402 | "node_modules/@aws-sdk/fetch-http-handler": {
403 | "version": "3.310.0",
404 | "resolved": "https://registry.npmjs.org/@aws-sdk/fetch-http-handler/-/fetch-http-handler-3.310.0.tgz",
405 | "integrity": "sha512-Bi9vIwzdkw1zMcvi/zGzlWS9KfIEnAq4NNhsnCxbQ4OoIRU9wvU+WGZdBBhxg0ZxZmpp1j1aZhU53lLjA07MHw==",
406 | "dependencies": {
407 | "@aws-sdk/protocol-http": "3.310.0",
408 | "@aws-sdk/querystring-builder": "3.310.0",
409 | "@aws-sdk/types": "3.310.0",
410 | "@aws-sdk/util-base64": "3.310.0",
411 | "tslib": "^2.5.0"
412 | }
413 | },
414 | "node_modules/@aws-sdk/hash-node": {
415 | "version": "3.310.0",
416 | "resolved": "https://registry.npmjs.org/@aws-sdk/hash-node/-/hash-node-3.310.0.tgz",
417 | "integrity": "sha512-NvE2fhRc8GRwCXBfDehxVAWCmVwVMILliAKVPAEr4yz2CkYs0tqU51S48x23dtna07H4qHtgpeNqVTthcIQOEQ==",
418 | "dependencies": {
419 | "@aws-sdk/types": "3.310.0",
420 | "@aws-sdk/util-buffer-from": "3.310.0",
421 | "@aws-sdk/util-utf8": "3.310.0",
422 | "tslib": "^2.5.0"
423 | },
424 | "engines": {
425 | "node": ">=14.0.0"
426 | }
427 | },
428 | "node_modules/@aws-sdk/invalid-dependency": {
429 | "version": "3.310.0",
430 | "resolved": "https://registry.npmjs.org/@aws-sdk/invalid-dependency/-/invalid-dependency-3.310.0.tgz",
431 | "integrity": "sha512-1s5RG5rSPXoa/aZ/Kqr5U/7lqpx+Ry81GprQ2bxWqJvWQIJ0IRUwo5pk8XFxbKVr/2a+4lZT/c3OGoBOM1yRRA==",
432 | "dependencies": {
433 | "@aws-sdk/types": "3.310.0",
434 | "tslib": "^2.5.0"
435 | }
436 | },
437 | "node_modules/@aws-sdk/is-array-buffer": {
438 | "version": "3.310.0",
439 | "resolved": "https://registry.npmjs.org/@aws-sdk/is-array-buffer/-/is-array-buffer-3.310.0.tgz",
440 | "integrity": "sha512-urnbcCR+h9NWUnmOtet/s4ghvzsidFmspfhYaHAmSRdy9yDjdjBJMFjjsn85A1ODUktztm+cVncXjQ38WCMjMQ==",
441 | "dependencies": {
442 | "tslib": "^2.5.0"
443 | },
444 | "engines": {
445 | "node": ">=14.0.0"
446 | }
447 | },
448 | "node_modules/@aws-sdk/middleware-content-length": {
449 | "version": "3.310.0",
450 | "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-content-length/-/middleware-content-length-3.310.0.tgz",
451 | "integrity": "sha512-P8tQZxgDt6CAh1wd/W6WPzjc+uWPJwQkm+F7rAwRlM+k9q17HrhnksGDKcpuuLyIhPQYdmOMIkpKVgXGa4avhQ==",
452 | "dependencies": {
453 | "@aws-sdk/protocol-http": "3.310.0",
454 | "@aws-sdk/types": "3.310.0",
455 | "tslib": "^2.5.0"
456 | },
457 | "engines": {
458 | "node": ">=14.0.0"
459 | }
460 | },
461 | "node_modules/@aws-sdk/middleware-endpoint": {
462 | "version": "3.310.0",
463 | "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-endpoint/-/middleware-endpoint-3.310.0.tgz",
464 | "integrity": "sha512-Z+N2vOL8K354/lstkClxLLsr6hCpVRh+0tCMXrVj66/NtKysCEZ/0b9LmqOwD9pWHNiI2mJqXwY0gxNlKAroUg==",
465 | "dependencies": {
466 | "@aws-sdk/middleware-serde": "3.310.0",
467 | "@aws-sdk/types": "3.310.0",
468 | "@aws-sdk/url-parser": "3.310.0",
469 | "@aws-sdk/util-middleware": "3.310.0",
470 | "tslib": "^2.5.0"
471 | },
472 | "engines": {
473 | "node": ">=14.0.0"
474 | }
475 | },
476 | "node_modules/@aws-sdk/middleware-host-header": {
477 | "version": "3.310.0",
478 | "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-host-header/-/middleware-host-header-3.310.0.tgz",
479 | "integrity": "sha512-QWSA+46/hXorXyWa61ic2K7qZzwHTiwfk2e9mRRjeIRepUgI3qxFjsYqrWtrOGBjmFmq0pYIY8Bb/DCJuQqcoA==",
480 | "dependencies": {
481 | "@aws-sdk/protocol-http": "3.310.0",
482 | "@aws-sdk/types": "3.310.0",
483 | "tslib": "^2.5.0"
484 | },
485 | "engines": {
486 | "node": ">=14.0.0"
487 | }
488 | },
489 | "node_modules/@aws-sdk/middleware-logger": {
490 | "version": "3.310.0",
491 | "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-logger/-/middleware-logger-3.310.0.tgz",
492 | "integrity": "sha512-Lurm8XofrASBRnAVtiSNuDSRsRqPNg27RIFLLsLp/pqog9nFJ0vz0kgdb9S5Z+zw83Mm+UlqOe6D8NTUNp4fVg==",
493 | "dependencies": {
494 | "@aws-sdk/types": "3.310.0",
495 | "tslib": "^2.5.0"
496 | },
497 | "engines": {
498 | "node": ">=14.0.0"
499 | }
500 | },
501 | "node_modules/@aws-sdk/middleware-recursion-detection": {
502 | "version": "3.310.0",
503 | "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-recursion-detection/-/middleware-recursion-detection-3.310.0.tgz",
504 | "integrity": "sha512-SuB75/xk/gyue24gkriTwO2jFd7YcUGZDClQYuRejgbXSa3CO0lWyawQtfLcSSEBp9izrEVXuFH24K1eAft5nQ==",
505 | "dependencies": {
506 | "@aws-sdk/protocol-http": "3.310.0",
507 | "@aws-sdk/types": "3.310.0",
508 | "tslib": "^2.5.0"
509 | },
510 | "engines": {
511 | "node": ">=14.0.0"
512 | }
513 | },
514 | "node_modules/@aws-sdk/middleware-retry": {
515 | "version": "3.310.0",
516 | "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-retry/-/middleware-retry-3.310.0.tgz",
517 | "integrity": "sha512-oTPsRy2W4s+dfxbJPW7Km+hHtv/OMsNsVfThAq8DDYKC13qlr1aAyOqGLD+dpBy2aKe7ss517Sy2HcHtHqm7/g==",
518 | "dependencies": {
519 | "@aws-sdk/protocol-http": "3.310.0",
520 | "@aws-sdk/service-error-classification": "3.310.0",
521 | "@aws-sdk/types": "3.310.0",
522 | "@aws-sdk/util-middleware": "3.310.0",
523 | "@aws-sdk/util-retry": "3.310.0",
524 | "tslib": "^2.5.0",
525 | "uuid": "^8.3.2"
526 | },
527 | "engines": {
528 | "node": ">=14.0.0"
529 | }
530 | },
531 | "node_modules/@aws-sdk/middleware-sdk-sts": {
532 | "version": "3.310.0",
533 | "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-sdk-sts/-/middleware-sdk-sts-3.310.0.tgz",
534 | "integrity": "sha512-+5PFwlYNLvLLIfw0ASAoWV/iIF8Zv6R6QGtyP0CclhRSvNjgbQDVnV0g95MC5qvh+GB/Yjlkt8qAjLSPjHfsrQ==",
535 | "dependencies": {
536 | "@aws-sdk/middleware-signing": "3.310.0",
537 | "@aws-sdk/types": "3.310.0",
538 | "tslib": "^2.5.0"
539 | },
540 | "engines": {
541 | "node": ">=14.0.0"
542 | }
543 | },
544 | "node_modules/@aws-sdk/middleware-serde": {
545 | "version": "3.310.0",
546 | "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-serde/-/middleware-serde-3.310.0.tgz",
547 | "integrity": "sha512-RNeeTVWSLTaentUeCgQKZhAl+C6hxtwD78cQWS10UymWpQFwbaxztzKUu4UQS5xA2j6PxwPRRUjqa4jcFjfLsg==",
548 | "dependencies": {
549 | "@aws-sdk/types": "3.310.0",
550 | "tslib": "^2.5.0"
551 | },
552 | "engines": {
553 | "node": ">=14.0.0"
554 | }
555 | },
556 | "node_modules/@aws-sdk/middleware-signing": {
557 | "version": "3.310.0",
558 | "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-signing/-/middleware-signing-3.310.0.tgz",
559 | "integrity": "sha512-f9mKq+XMdW207Af3hKjdTnpNhdtwqWuvFs/ZyXoOkp/g1MY1O6L23Jy6i52m29LxbT4AuNRG1oKODfXM0vYVjQ==",
560 | "dependencies": {
561 | "@aws-sdk/property-provider": "3.310.0",
562 | "@aws-sdk/protocol-http": "3.310.0",
563 | "@aws-sdk/signature-v4": "3.310.0",
564 | "@aws-sdk/types": "3.310.0",
565 | "@aws-sdk/util-middleware": "3.310.0",
566 | "tslib": "^2.5.0"
567 | },
568 | "engines": {
569 | "node": ">=14.0.0"
570 | }
571 | },
572 | "node_modules/@aws-sdk/middleware-stack": {
573 | "version": "3.310.0",
574 | "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-stack/-/middleware-stack-3.310.0.tgz",
575 | "integrity": "sha512-010O1PD+UAcZVKRvqEusE1KJqN96wwrf6QsqbRM0ywsKQ21NDweaHvEDlds2VHpgmofxkRLRu/IDrlPkKRQrRg==",
576 | "dependencies": {
577 | "tslib": "^2.5.0"
578 | },
579 | "engines": {
580 | "node": ">=14.0.0"
581 | }
582 | },
583 | "node_modules/@aws-sdk/middleware-user-agent": {
584 | "version": "3.310.0",
585 | "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-user-agent/-/middleware-user-agent-3.310.0.tgz",
586 | "integrity": "sha512-x3IOwSwSbwKidlxRk3CNVHVUb06SRuaELxggCaR++QVI8NU6qD/l4VHXKVRvbTHiC/cYxXE/GaBDgQVpDR7V/g==",
587 | "dependencies": {
588 | "@aws-sdk/protocol-http": "3.310.0",
589 | "@aws-sdk/types": "3.310.0",
590 | "@aws-sdk/util-endpoints": "3.310.0",
591 | "tslib": "^2.5.0"
592 | },
593 | "engines": {
594 | "node": ">=14.0.0"
595 | }
596 | },
597 | "node_modules/@aws-sdk/node-config-provider": {
598 | "version": "3.310.0",
599 | "resolved": "https://registry.npmjs.org/@aws-sdk/node-config-provider/-/node-config-provider-3.310.0.tgz",
600 | "integrity": "sha512-T/Pp6htc6hq/Cq+MLNDSyiwWCMVF6GqbBbXKVlO5L8rdHx4sq9xPdoPveZhGWrxvkanjA6eCwUp6E0riBOSVng==",
601 | "dependencies": {
602 | "@aws-sdk/property-provider": "3.310.0",
603 | "@aws-sdk/shared-ini-file-loader": "3.310.0",
604 | "@aws-sdk/types": "3.310.0",
605 | "tslib": "^2.5.0"
606 | },
607 | "engines": {
608 | "node": ">=14.0.0"
609 | }
610 | },
611 | "node_modules/@aws-sdk/node-http-handler": {
612 | "version": "3.310.0",
613 | "resolved": "https://registry.npmjs.org/@aws-sdk/node-http-handler/-/node-http-handler-3.310.0.tgz",
614 | "integrity": "sha512-irv9mbcM9xC2xYjArQF5SYmHBMu4ciMWtGsoHII1nRuFOl9FoT4ffTvEPuLlfC6pznzvKt9zvnm6xXj7gDChKg==",
615 | "dependencies": {
616 | "@aws-sdk/abort-controller": "3.310.0",
617 | "@aws-sdk/protocol-http": "3.310.0",
618 | "@aws-sdk/querystring-builder": "3.310.0",
619 | "@aws-sdk/types": "3.310.0",
620 | "tslib": "^2.5.0"
621 | },
622 | "engines": {
623 | "node": ">=14.0.0"
624 | }
625 | },
626 | "node_modules/@aws-sdk/property-provider": {
627 | "version": "3.310.0",
628 | "resolved": "https://registry.npmjs.org/@aws-sdk/property-provider/-/property-provider-3.310.0.tgz",
629 | "integrity": "sha512-3lxDb0akV6BBzmFe4nLPaoliQbAifyWJhuvuDOu7e8NzouvpQXs0275w9LePhhcgjKAEVXUIse05ZW2DLbxo/g==",
630 | "dependencies": {
631 | "@aws-sdk/types": "3.310.0",
632 | "tslib": "^2.5.0"
633 | },
634 | "engines": {
635 | "node": ">=14.0.0"
636 | }
637 | },
638 | "node_modules/@aws-sdk/protocol-http": {
639 | "version": "3.310.0",
640 | "resolved": "https://registry.npmjs.org/@aws-sdk/protocol-http/-/protocol-http-3.310.0.tgz",
641 | "integrity": "sha512-fgZ1aw/irQtnrsR58pS8ThKOWo57Py3xX6giRvwSgZDEcxHfVzuQjy9yPuV++v04fdmdtgpbGf8WfvAAJ11yXQ==",
642 | "dependencies": {
643 | "@aws-sdk/types": "3.310.0",
644 | "tslib": "^2.5.0"
645 | },
646 | "engines": {
647 | "node": ">=14.0.0"
648 | }
649 | },
650 | "node_modules/@aws-sdk/querystring-builder": {
651 | "version": "3.310.0",
652 | "resolved": "https://registry.npmjs.org/@aws-sdk/querystring-builder/-/querystring-builder-3.310.0.tgz",
653 | "integrity": "sha512-ZHH8GV/80+pWGo7DzsvwvXR5xVxUHXUvPJPFAkhr6nCf78igdoF8gR10ScFoEKbtEapoNTaZlKHPXxpD8aPG7A==",
654 | "dependencies": {
655 | "@aws-sdk/types": "3.310.0",
656 | "@aws-sdk/util-uri-escape": "3.310.0",
657 | "tslib": "^2.5.0"
658 | },
659 | "engines": {
660 | "node": ">=14.0.0"
661 | }
662 | },
663 | "node_modules/@aws-sdk/querystring-parser": {
664 | "version": "3.310.0",
665 | "resolved": "https://registry.npmjs.org/@aws-sdk/querystring-parser/-/querystring-parser-3.310.0.tgz",
666 | "integrity": "sha512-YkIznoP6lsiIUHinx++/lbb3tlMURGGqMpo0Pnn32zYzGrJXA6eC3D0as2EcMjo55onTfuLcIiX4qzXes2MYOA==",
667 | "dependencies": {
668 | "@aws-sdk/types": "3.310.0",
669 | "tslib": "^2.5.0"
670 | },
671 | "engines": {
672 | "node": ">=14.0.0"
673 | }
674 | },
675 | "node_modules/@aws-sdk/service-error-classification": {
676 | "version": "3.310.0",
677 | "resolved": "https://registry.npmjs.org/@aws-sdk/service-error-classification/-/service-error-classification-3.310.0.tgz",
678 | "integrity": "sha512-PuyC7k3qfIKeH2LCnDwbttMOKq3qAx4buvg0yfnJtQOz6t1AR8gsnAq0CjKXXyfkXwNKWTqCpE6lVNUIkXgsMw==",
679 | "engines": {
680 | "node": ">=14.0.0"
681 | }
682 | },
683 | "node_modules/@aws-sdk/shared-ini-file-loader": {
684 | "version": "3.310.0",
685 | "resolved": "https://registry.npmjs.org/@aws-sdk/shared-ini-file-loader/-/shared-ini-file-loader-3.310.0.tgz",
686 | "integrity": "sha512-N0q9pG0xSjQwc690YQND5bofm+4nfUviQ/Ppgan2kU6aU0WUq8KwgHJBto/YEEI+VlrME30jZJnxtOvcZJc2XA==",
687 | "dependencies": {
688 | "@aws-sdk/types": "3.310.0",
689 | "tslib": "^2.5.0"
690 | },
691 | "engines": {
692 | "node": ">=14.0.0"
693 | }
694 | },
695 | "node_modules/@aws-sdk/signature-v4": {
696 | "version": "3.310.0",
697 | "resolved": "https://registry.npmjs.org/@aws-sdk/signature-v4/-/signature-v4-3.310.0.tgz",
698 | "integrity": "sha512-1M60P1ZBNAjCFv9sYW29OF6okktaeibWyW3lMXqzoHF70lHBZh+838iUchznXUA5FLabfn4jBFWMRxlAXJUY2Q==",
699 | "dependencies": {
700 | "@aws-sdk/is-array-buffer": "3.310.0",
701 | "@aws-sdk/types": "3.310.0",
702 | "@aws-sdk/util-hex-encoding": "3.310.0",
703 | "@aws-sdk/util-middleware": "3.310.0",
704 | "@aws-sdk/util-uri-escape": "3.310.0",
705 | "@aws-sdk/util-utf8": "3.310.0",
706 | "tslib": "^2.5.0"
707 | },
708 | "engines": {
709 | "node": ">=14.0.0"
710 | }
711 | },
712 | "node_modules/@aws-sdk/smithy-client": {
713 | "version": "3.310.0",
714 | "resolved": "https://registry.npmjs.org/@aws-sdk/smithy-client/-/smithy-client-3.310.0.tgz",
715 | "integrity": "sha512-UHMFvhoB2RLzsTb0mQe1ofvBUg/+/JEu1uptavxf/hEpEKZnRAaHH5FNkTG+mbFd/olay/QFjqNcMD6t8LcsNQ==",
716 | "dependencies": {
717 | "@aws-sdk/middleware-stack": "3.310.0",
718 | "@aws-sdk/types": "3.310.0",
719 | "tslib": "^2.5.0"
720 | },
721 | "engines": {
722 | "node": ">=14.0.0"
723 | }
724 | },
725 | "node_modules/@aws-sdk/token-providers": {
726 | "version": "3.310.0",
727 | "resolved": "https://registry.npmjs.org/@aws-sdk/token-providers/-/token-providers-3.310.0.tgz",
728 | "integrity": "sha512-G1JvB+2v8k900VJFkKVQXgLGF50ShOEIPxfK1gSQLkSU85vPwGIAANs1KvnlW08FsNbWp3+sKca4kfYKsooXMw==",
729 | "dependencies": {
730 | "@aws-sdk/client-sso-oidc": "3.310.0",
731 | "@aws-sdk/property-provider": "3.310.0",
732 | "@aws-sdk/shared-ini-file-loader": "3.310.0",
733 | "@aws-sdk/types": "3.310.0",
734 | "tslib": "^2.5.0"
735 | },
736 | "engines": {
737 | "node": ">=14.0.0"
738 | }
739 | },
740 | "node_modules/@aws-sdk/types": {
741 | "version": "3.310.0",
742 | "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.310.0.tgz",
743 | "integrity": "sha512-j8eamQJ7YcIhw7fneUfs8LYl3t01k4uHi4ZDmNRgtbmbmTTG3FZc2MotStZnp3nZB6vLiPF1o5aoJxWVvkzS6A==",
744 | "dependencies": {
745 | "tslib": "^2.5.0"
746 | },
747 | "engines": {
748 | "node": ">=14.0.0"
749 | }
750 | },
751 | "node_modules/@aws-sdk/url-parser": {
752 | "version": "3.310.0",
753 | "resolved": "https://registry.npmjs.org/@aws-sdk/url-parser/-/url-parser-3.310.0.tgz",
754 | "integrity": "sha512-mCLnCaSB9rQvAgx33u0DujLvr4d5yEm/W5r789GblwwQnlNXedVu50QRizMLTpltYWyAUoXjJgQnJHmJMaKXhw==",
755 | "dependencies": {
756 | "@aws-sdk/querystring-parser": "3.310.0",
757 | "@aws-sdk/types": "3.310.0",
758 | "tslib": "^2.5.0"
759 | }
760 | },
761 | "node_modules/@aws-sdk/util-base64": {
762 | "version": "3.310.0",
763 | "resolved": "https://registry.npmjs.org/@aws-sdk/util-base64/-/util-base64-3.310.0.tgz",
764 | "integrity": "sha512-v3+HBKQvqgdzcbL+pFswlx5HQsd9L6ZTlyPVL2LS9nNXnCcR3XgGz9jRskikRUuUvUXtkSG1J88GAOnJ/apTPg==",
765 | "dependencies": {
766 | "@aws-sdk/util-buffer-from": "3.310.0",
767 | "tslib": "^2.5.0"
768 | },
769 | "engines": {
770 | "node": ">=14.0.0"
771 | }
772 | },
773 | "node_modules/@aws-sdk/util-body-length-browser": {
774 | "version": "3.310.0",
775 | "resolved": "https://registry.npmjs.org/@aws-sdk/util-body-length-browser/-/util-body-length-browser-3.310.0.tgz",
776 | "integrity": "sha512-sxsC3lPBGfpHtNTUoGXMQXLwjmR0zVpx0rSvzTPAuoVILVsp5AU/w5FphNPxD5OVIjNbZv9KsKTuvNTiZjDp9g==",
777 | "dependencies": {
778 | "tslib": "^2.5.0"
779 | }
780 | },
781 | "node_modules/@aws-sdk/util-body-length-node": {
782 | "version": "3.310.0",
783 | "resolved": "https://registry.npmjs.org/@aws-sdk/util-body-length-node/-/util-body-length-node-3.310.0.tgz",
784 | "integrity": "sha512-2tqGXdyKhyA6w4zz7UPoS8Ip+7sayOg9BwHNidiGm2ikbDxm1YrCfYXvCBdwaJxa4hJfRVz+aL9e+d3GqPI9pQ==",
785 | "dependencies": {
786 | "tslib": "^2.5.0"
787 | },
788 | "engines": {
789 | "node": ">=14.0.0"
790 | }
791 | },
792 | "node_modules/@aws-sdk/util-buffer-from": {
793 | "version": "3.310.0",
794 | "resolved": "https://registry.npmjs.org/@aws-sdk/util-buffer-from/-/util-buffer-from-3.310.0.tgz",
795 | "integrity": "sha512-i6LVeXFtGih5Zs8enLrt+ExXY92QV25jtEnTKHsmlFqFAuL3VBeod6boeMXkN2p9lbSVVQ1sAOOYZOHYbYkntw==",
796 | "dependencies": {
797 | "@aws-sdk/is-array-buffer": "3.310.0",
798 | "tslib": "^2.5.0"
799 | },
800 | "engines": {
801 | "node": ">=14.0.0"
802 | }
803 | },
804 | "node_modules/@aws-sdk/util-config-provider": {
805 | "version": "3.310.0",
806 | "resolved": "https://registry.npmjs.org/@aws-sdk/util-config-provider/-/util-config-provider-3.310.0.tgz",
807 | "integrity": "sha512-xIBaYo8dwiojCw8vnUcIL4Z5tyfb1v3yjqyJKJWV/dqKUFOOS0U591plmXbM+M/QkXyML3ypon1f8+BoaDExrg==",
808 | "dependencies": {
809 | "tslib": "^2.5.0"
810 | },
811 | "engines": {
812 | "node": ">=14.0.0"
813 | }
814 | },
815 | "node_modules/@aws-sdk/util-defaults-mode-browser": {
816 | "version": "3.310.0",
817 | "resolved": "https://registry.npmjs.org/@aws-sdk/util-defaults-mode-browser/-/util-defaults-mode-browser-3.310.0.tgz",
818 | "integrity": "sha512-Mr2AoQsjAYNM5oAS2YJlYJqhiCvkFV/hu48slOZgbY4G7ueW4cM0DPkR16wqjcRCGqZ4JmAZB8Q5R0DMrLjhOQ==",
819 | "dependencies": {
820 | "@aws-sdk/property-provider": "3.310.0",
821 | "@aws-sdk/types": "3.310.0",
822 | "bowser": "^2.11.0",
823 | "tslib": "^2.5.0"
824 | },
825 | "engines": {
826 | "node": ">= 10.0.0"
827 | }
828 | },
829 | "node_modules/@aws-sdk/util-defaults-mode-node": {
830 | "version": "3.310.0",
831 | "resolved": "https://registry.npmjs.org/@aws-sdk/util-defaults-mode-node/-/util-defaults-mode-node-3.310.0.tgz",
832 | "integrity": "sha512-JyBlvhQGR8w8NpFRZZXRVTDesafFKTu/gTWjcoxP7twa+fYHSIgPPFGnlcJ/iHaucjamSaWi5EQ+YQmnSZ8yHA==",
833 | "dependencies": {
834 | "@aws-sdk/config-resolver": "3.310.0",
835 | "@aws-sdk/credential-provider-imds": "3.310.0",
836 | "@aws-sdk/node-config-provider": "3.310.0",
837 | "@aws-sdk/property-provider": "3.310.0",
838 | "@aws-sdk/types": "3.310.0",
839 | "tslib": "^2.5.0"
840 | },
841 | "engines": {
842 | "node": ">= 10.0.0"
843 | }
844 | },
845 | "node_modules/@aws-sdk/util-endpoints": {
846 | "version": "3.310.0",
847 | "resolved": "https://registry.npmjs.org/@aws-sdk/util-endpoints/-/util-endpoints-3.310.0.tgz",
848 | "integrity": "sha512-zG+/d/O5KPmAaeOMPd6bW1abifdT0H03f42keLjYEoRZzYtHPC5DuPE0UayiWGckI6BCDgy0sRKXCYS49UNFaQ==",
849 | "dependencies": {
850 | "@aws-sdk/types": "3.310.0",
851 | "tslib": "^2.5.0"
852 | },
853 | "engines": {
854 | "node": ">=14.0.0"
855 | }
856 | },
857 | "node_modules/@aws-sdk/util-hex-encoding": {
858 | "version": "3.310.0",
859 | "resolved": "https://registry.npmjs.org/@aws-sdk/util-hex-encoding/-/util-hex-encoding-3.310.0.tgz",
860 | "integrity": "sha512-sVN7mcCCDSJ67pI1ZMtk84SKGqyix6/0A1Ab163YKn+lFBQRMKexleZzpYzNGxYzmQS6VanP/cfU7NiLQOaSfA==",
861 | "dependencies": {
862 | "tslib": "^2.5.0"
863 | },
864 | "engines": {
865 | "node": ">=14.0.0"
866 | }
867 | },
868 | "node_modules/@aws-sdk/util-locate-window": {
869 | "version": "3.310.0",
870 | "resolved": "https://registry.npmjs.org/@aws-sdk/util-locate-window/-/util-locate-window-3.310.0.tgz",
871 | "integrity": "sha512-qo2t/vBTnoXpjKxlsC2e1gBrRm80M3bId27r0BRB2VniSSe7bL1mmzM+/HFtujm0iAxtPM+aLEflLJlJeDPg0w==",
872 | "dependencies": {
873 | "tslib": "^2.5.0"
874 | },
875 | "engines": {
876 | "node": ">=14.0.0"
877 | }
878 | },
879 | "node_modules/@aws-sdk/util-middleware": {
880 | "version": "3.310.0",
881 | "resolved": "https://registry.npmjs.org/@aws-sdk/util-middleware/-/util-middleware-3.310.0.tgz",
882 | "integrity": "sha512-FTSUKL/eRb9X6uEZClrTe27QFXUNNp7fxYrPndZwk1hlaOP5ix+MIHBcI7pIiiY/JPfOUmPyZOu+HetlFXjWog==",
883 | "dependencies": {
884 | "tslib": "^2.5.0"
885 | },
886 | "engines": {
887 | "node": ">=14.0.0"
888 | }
889 | },
890 | "node_modules/@aws-sdk/util-retry": {
891 | "version": "3.310.0",
892 | "resolved": "https://registry.npmjs.org/@aws-sdk/util-retry/-/util-retry-3.310.0.tgz",
893 | "integrity": "sha512-FwWGhCBLfoivTMUHu1LIn4NjrN9JLJ/aX5aZmbcPIOhZVFJj638j0qDgZXyfvVqBuBZh7M8kGq0Oahy3dp69OA==",
894 | "dependencies": {
895 | "@aws-sdk/service-error-classification": "3.310.0",
896 | "tslib": "^2.5.0"
897 | },
898 | "engines": {
899 | "node": ">= 14.0.0"
900 | }
901 | },
902 | "node_modules/@aws-sdk/util-uri-escape": {
903 | "version": "3.310.0",
904 | "resolved": "https://registry.npmjs.org/@aws-sdk/util-uri-escape/-/util-uri-escape-3.310.0.tgz",
905 | "integrity": "sha512-drzt+aB2qo2LgtDoiy/3sVG8w63cgLkqFIa2NFlGpUgHFWTXkqtbgf4L5QdjRGKWhmZsnqkbtL7vkSWEcYDJ4Q==",
906 | "dependencies": {
907 | "tslib": "^2.5.0"
908 | },
909 | "engines": {
910 | "node": ">=14.0.0"
911 | }
912 | },
913 | "node_modules/@aws-sdk/util-user-agent-browser": {
914 | "version": "3.310.0",
915 | "resolved": "https://registry.npmjs.org/@aws-sdk/util-user-agent-browser/-/util-user-agent-browser-3.310.0.tgz",
916 | "integrity": "sha512-yU/4QnHHuQ5z3vsUqMQVfYLbZGYwpYblPiuZx4Zo9+x0PBkNjYMqctdDcrpoH9Z2xZiDN16AmQGK1tix117ZKw==",
917 | "dependencies": {
918 | "@aws-sdk/types": "3.310.0",
919 | "bowser": "^2.11.0",
920 | "tslib": "^2.5.0"
921 | }
922 | },
923 | "node_modules/@aws-sdk/util-user-agent-node": {
924 | "version": "3.310.0",
925 | "resolved": "https://registry.npmjs.org/@aws-sdk/util-user-agent-node/-/util-user-agent-node-3.310.0.tgz",
926 | "integrity": "sha512-Ra3pEl+Gn2BpeE7KiDGpi4zj7WJXZA5GXnGo3mjbi9+Y3zrbuhJAbdZO3mO/o7xDgMC6ph4xCTbaSGzU6b6EDg==",
927 | "dependencies": {
928 | "@aws-sdk/node-config-provider": "3.310.0",
929 | "@aws-sdk/types": "3.310.0",
930 | "tslib": "^2.5.0"
931 | },
932 | "engines": {
933 | "node": ">=14.0.0"
934 | },
935 | "peerDependencies": {
936 | "aws-crt": ">=1.0.0"
937 | },
938 | "peerDependenciesMeta": {
939 | "aws-crt": {
940 | "optional": true
941 | }
942 | }
943 | },
944 | "node_modules/@aws-sdk/util-utf8": {
945 | "version": "3.310.0",
946 | "resolved": "https://registry.npmjs.org/@aws-sdk/util-utf8/-/util-utf8-3.310.0.tgz",
947 | "integrity": "sha512-DnLfFT8uCO22uOJc0pt0DsSNau1GTisngBCDw8jQuWT5CqogMJu4b/uXmwEqfj8B3GX6Xsz8zOd6JpRlPftQoA==",
948 | "dependencies": {
949 | "@aws-sdk/util-buffer-from": "3.310.0",
950 | "tslib": "^2.5.0"
951 | },
952 | "engines": {
953 | "node": ">=14.0.0"
954 | }
955 | },
956 | "node_modules/@aws-sdk/util-utf8-browser": {
957 | "version": "3.259.0",
958 | "resolved": "https://registry.npmjs.org/@aws-sdk/util-utf8-browser/-/util-utf8-browser-3.259.0.tgz",
959 | "integrity": "sha512-UvFa/vR+e19XookZF8RzFZBrw2EUkQWxiBW0yYQAhvk3C+QVGl0H3ouca8LDBlBfQKXwmW3huo/59H8rwb1wJw==",
960 | "dependencies": {
961 | "tslib": "^2.3.1"
962 | }
963 | },
964 | "node_modules/bowser": {
965 | "version": "2.11.0",
966 | "resolved": "https://registry.npmjs.org/bowser/-/bowser-2.11.0.tgz",
967 | "integrity": "sha512-AlcaJBi/pqqJBIQ8U9Mcpc9i8Aqxn88Skv5d+xBX006BY5u8N3mGLHa5Lgppa7L/HfwgwLgZ6NYs+Ag6uUmJRA=="
968 | },
969 | "node_modules/fast-xml-parser": {
970 | "version": "4.1.2",
971 | "resolved": "https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-4.1.2.tgz",
972 | "integrity": "sha512-CDYeykkle1LiA/uqQyNwYpFbyF6Axec6YapmpUP+/RHWIoR1zKjocdvNaTsxCxZzQ6v9MLXaSYm9Qq0thv0DHg==",
973 | "dependencies": {
974 | "strnum": "^1.0.5"
975 | },
976 | "bin": {
977 | "fxparser": "src/cli/cli.js"
978 | },
979 | "funding": {
980 | "type": "paypal",
981 | "url": "https://paypal.me/naturalintelligence"
982 | }
983 | },
984 | "node_modules/strnum": {
985 | "version": "1.0.5",
986 | "resolved": "https://registry.npmjs.org/strnum/-/strnum-1.0.5.tgz",
987 | "integrity": "sha512-J8bbNyKKXl5qYcR36TIO8W3mVGVHrmmxsd5PAItGkmyzwJvybiw2IVq5nqd0i4LSNSkB/sx9VHllbfFdr9k1JA=="
988 | },
989 | "node_modules/tslib": {
990 | "version": "2.5.0",
991 | "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.5.0.tgz",
992 | "integrity": "sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg=="
993 | },
994 | "node_modules/uuid": {
995 | "version": "8.3.2",
996 | "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz",
997 | "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==",
998 | "bin": {
999 | "uuid": "dist/bin/uuid"
1000 | }
1001 | }
1002 | },
1003 | "dependencies": {
1004 | "@aws-crypto/ie11-detection": {
1005 | "version": "3.0.0",
1006 | "resolved": "https://registry.npmjs.org/@aws-crypto/ie11-detection/-/ie11-detection-3.0.0.tgz",
1007 | "integrity": "sha512-341lBBkiY1DfDNKai/wXM3aujNBkXR7tq1URPQDL9wi3AUbI80NR74uF1TXHMm7po1AcnFk8iu2S2IeU/+/A+Q==",
1008 | "requires": {
1009 | "tslib": "^1.11.1"
1010 | },
1011 | "dependencies": {
1012 | "tslib": {
1013 | "version": "1.14.1",
1014 | "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz",
1015 | "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg=="
1016 | }
1017 | }
1018 | },
1019 | "@aws-crypto/sha256-browser": {
1020 | "version": "3.0.0",
1021 | "resolved": "https://registry.npmjs.org/@aws-crypto/sha256-browser/-/sha256-browser-3.0.0.tgz",
1022 | "integrity": "sha512-8VLmW2B+gjFbU5uMeqtQM6Nj0/F1bro80xQXCW6CQBWgosFWXTx77aeOF5CAIAmbOK64SdMBJdNr6J41yP5mvQ==",
1023 | "requires": {
1024 | "@aws-crypto/ie11-detection": "^3.0.0",
1025 | "@aws-crypto/sha256-js": "^3.0.0",
1026 | "@aws-crypto/supports-web-crypto": "^3.0.0",
1027 | "@aws-crypto/util": "^3.0.0",
1028 | "@aws-sdk/types": "^3.222.0",
1029 | "@aws-sdk/util-locate-window": "^3.0.0",
1030 | "@aws-sdk/util-utf8-browser": "^3.0.0",
1031 | "tslib": "^1.11.1"
1032 | },
1033 | "dependencies": {
1034 | "tslib": {
1035 | "version": "1.14.1",
1036 | "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz",
1037 | "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg=="
1038 | }
1039 | }
1040 | },
1041 | "@aws-crypto/sha256-js": {
1042 | "version": "3.0.0",
1043 | "resolved": "https://registry.npmjs.org/@aws-crypto/sha256-js/-/sha256-js-3.0.0.tgz",
1044 | "integrity": "sha512-PnNN7os0+yd1XvXAy23CFOmTbMaDxgxXtTKHybrJ39Y8kGzBATgBFibWJKH6BhytLI/Zyszs87xCOBNyBig6vQ==",
1045 | "requires": {
1046 | "@aws-crypto/util": "^3.0.0",
1047 | "@aws-sdk/types": "^3.222.0",
1048 | "tslib": "^1.11.1"
1049 | },
1050 | "dependencies": {
1051 | "tslib": {
1052 | "version": "1.14.1",
1053 | "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz",
1054 | "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg=="
1055 | }
1056 | }
1057 | },
1058 | "@aws-crypto/supports-web-crypto": {
1059 | "version": "3.0.0",
1060 | "resolved": "https://registry.npmjs.org/@aws-crypto/supports-web-crypto/-/supports-web-crypto-3.0.0.tgz",
1061 | "integrity": "sha512-06hBdMwUAb2WFTuGG73LSC0wfPu93xWwo5vL2et9eymgmu3Id5vFAHBbajVWiGhPO37qcsdCap/FqXvJGJWPIg==",
1062 | "requires": {
1063 | "tslib": "^1.11.1"
1064 | },
1065 | "dependencies": {
1066 | "tslib": {
1067 | "version": "1.14.1",
1068 | "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz",
1069 | "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg=="
1070 | }
1071 | }
1072 | },
1073 | "@aws-crypto/util": {
1074 | "version": "3.0.0",
1075 | "resolved": "https://registry.npmjs.org/@aws-crypto/util/-/util-3.0.0.tgz",
1076 | "integrity": "sha512-2OJlpeJpCR48CC8r+uKVChzs9Iungj9wkZrl8Z041DWEWvyIHILYKCPNzJghKsivj+S3mLo6BVc7mBNzdxA46w==",
1077 | "requires": {
1078 | "@aws-sdk/types": "^3.222.0",
1079 | "@aws-sdk/util-utf8-browser": "^3.0.0",
1080 | "tslib": "^1.11.1"
1081 | },
1082 | "dependencies": {
1083 | "tslib": {
1084 | "version": "1.14.1",
1085 | "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz",
1086 | "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg=="
1087 | }
1088 | }
1089 | },
1090 | "@aws-sdk/abort-controller": {
1091 | "version": "3.310.0",
1092 | "resolved": "https://registry.npmjs.org/@aws-sdk/abort-controller/-/abort-controller-3.310.0.tgz",
1093 | "integrity": "sha512-v1zrRQxDLA1MdPim159Vx/CPHqsB4uybSxRi1CnfHO5ZjHryx3a5htW2gdGAykVCul40+yJXvfpufMrELVxH+g==",
1094 | "requires": {
1095 | "@aws-sdk/types": "3.310.0",
1096 | "tslib": "^2.5.0"
1097 | }
1098 | },
1099 | "@aws-sdk/client-cloudwatch-logs": {
1100 | "version": "3.312.0",
1101 | "resolved": "https://registry.npmjs.org/@aws-sdk/client-cloudwatch-logs/-/client-cloudwatch-logs-3.312.0.tgz",
1102 | "integrity": "sha512-AM5Ne5/OSS1Ku1ZVJDn9wRTqCev1J3EkwhOw70aYgt6HZyj/HpuWBn33z6+Fv8ajFIQBqHcUBQdZTsFn85cgKw==",
1103 | "requires": {
1104 | "@aws-crypto/sha256-browser": "3.0.0",
1105 | "@aws-crypto/sha256-js": "3.0.0",
1106 | "@aws-sdk/client-sts": "3.312.0",
1107 | "@aws-sdk/config-resolver": "3.310.0",
1108 | "@aws-sdk/credential-provider-node": "3.310.0",
1109 | "@aws-sdk/fetch-http-handler": "3.310.0",
1110 | "@aws-sdk/hash-node": "3.310.0",
1111 | "@aws-sdk/invalid-dependency": "3.310.0",
1112 | "@aws-sdk/middleware-content-length": "3.310.0",
1113 | "@aws-sdk/middleware-endpoint": "3.310.0",
1114 | "@aws-sdk/middleware-host-header": "3.310.0",
1115 | "@aws-sdk/middleware-logger": "3.310.0",
1116 | "@aws-sdk/middleware-recursion-detection": "3.310.0",
1117 | "@aws-sdk/middleware-retry": "3.310.0",
1118 | "@aws-sdk/middleware-serde": "3.310.0",
1119 | "@aws-sdk/middleware-signing": "3.310.0",
1120 | "@aws-sdk/middleware-stack": "3.310.0",
1121 | "@aws-sdk/middleware-user-agent": "3.310.0",
1122 | "@aws-sdk/node-config-provider": "3.310.0",
1123 | "@aws-sdk/node-http-handler": "3.310.0",
1124 | "@aws-sdk/protocol-http": "3.310.0",
1125 | "@aws-sdk/smithy-client": "3.310.0",
1126 | "@aws-sdk/types": "3.310.0",
1127 | "@aws-sdk/url-parser": "3.310.0",
1128 | "@aws-sdk/util-base64": "3.310.0",
1129 | "@aws-sdk/util-body-length-browser": "3.310.0",
1130 | "@aws-sdk/util-body-length-node": "3.310.0",
1131 | "@aws-sdk/util-defaults-mode-browser": "3.310.0",
1132 | "@aws-sdk/util-defaults-mode-node": "3.310.0",
1133 | "@aws-sdk/util-endpoints": "3.310.0",
1134 | "@aws-sdk/util-retry": "3.310.0",
1135 | "@aws-sdk/util-user-agent-browser": "3.310.0",
1136 | "@aws-sdk/util-user-agent-node": "3.310.0",
1137 | "@aws-sdk/util-utf8": "3.310.0",
1138 | "tslib": "^2.5.0"
1139 | }
1140 | },
1141 | "@aws-sdk/client-sso": {
1142 | "version": "3.310.0",
1143 | "resolved": "https://registry.npmjs.org/@aws-sdk/client-sso/-/client-sso-3.310.0.tgz",
1144 | "integrity": "sha512-netFap3Mp9I7bzAjsswHPA5WEbQtNMmXvW9/IVb7tmf85/esXCWindtyI43e/Xerut9ZVyEACPBFn30CLLE2xQ==",
1145 | "requires": {
1146 | "@aws-crypto/sha256-browser": "3.0.0",
1147 | "@aws-crypto/sha256-js": "3.0.0",
1148 | "@aws-sdk/config-resolver": "3.310.0",
1149 | "@aws-sdk/fetch-http-handler": "3.310.0",
1150 | "@aws-sdk/hash-node": "3.310.0",
1151 | "@aws-sdk/invalid-dependency": "3.310.0",
1152 | "@aws-sdk/middleware-content-length": "3.310.0",
1153 | "@aws-sdk/middleware-endpoint": "3.310.0",
1154 | "@aws-sdk/middleware-host-header": "3.310.0",
1155 | "@aws-sdk/middleware-logger": "3.310.0",
1156 | "@aws-sdk/middleware-recursion-detection": "3.310.0",
1157 | "@aws-sdk/middleware-retry": "3.310.0",
1158 | "@aws-sdk/middleware-serde": "3.310.0",
1159 | "@aws-sdk/middleware-stack": "3.310.0",
1160 | "@aws-sdk/middleware-user-agent": "3.310.0",
1161 | "@aws-sdk/node-config-provider": "3.310.0",
1162 | "@aws-sdk/node-http-handler": "3.310.0",
1163 | "@aws-sdk/protocol-http": "3.310.0",
1164 | "@aws-sdk/smithy-client": "3.310.0",
1165 | "@aws-sdk/types": "3.310.0",
1166 | "@aws-sdk/url-parser": "3.310.0",
1167 | "@aws-sdk/util-base64": "3.310.0",
1168 | "@aws-sdk/util-body-length-browser": "3.310.0",
1169 | "@aws-sdk/util-body-length-node": "3.310.0",
1170 | "@aws-sdk/util-defaults-mode-browser": "3.310.0",
1171 | "@aws-sdk/util-defaults-mode-node": "3.310.0",
1172 | "@aws-sdk/util-endpoints": "3.310.0",
1173 | "@aws-sdk/util-retry": "3.310.0",
1174 | "@aws-sdk/util-user-agent-browser": "3.310.0",
1175 | "@aws-sdk/util-user-agent-node": "3.310.0",
1176 | "@aws-sdk/util-utf8": "3.310.0",
1177 | "tslib": "^2.5.0"
1178 | }
1179 | },
1180 | "@aws-sdk/client-sso-oidc": {
1181 | "version": "3.310.0",
1182 | "resolved": "https://registry.npmjs.org/@aws-sdk/client-sso-oidc/-/client-sso-oidc-3.310.0.tgz",
1183 | "integrity": "sha512-3GKaRSfMD3OiYWGa+qg5KvJw0nLV0Vu7zRiulLuKDvgmWw3SNJKn3frWlmq/bKFUKahLsV8zozbeJItxtKAD6g==",
1184 | "requires": {
1185 | "@aws-crypto/sha256-browser": "3.0.0",
1186 | "@aws-crypto/sha256-js": "3.0.0",
1187 | "@aws-sdk/config-resolver": "3.310.0",
1188 | "@aws-sdk/fetch-http-handler": "3.310.0",
1189 | "@aws-sdk/hash-node": "3.310.0",
1190 | "@aws-sdk/invalid-dependency": "3.310.0",
1191 | "@aws-sdk/middleware-content-length": "3.310.0",
1192 | "@aws-sdk/middleware-endpoint": "3.310.0",
1193 | "@aws-sdk/middleware-host-header": "3.310.0",
1194 | "@aws-sdk/middleware-logger": "3.310.0",
1195 | "@aws-sdk/middleware-recursion-detection": "3.310.0",
1196 | "@aws-sdk/middleware-retry": "3.310.0",
1197 | "@aws-sdk/middleware-serde": "3.310.0",
1198 | "@aws-sdk/middleware-stack": "3.310.0",
1199 | "@aws-sdk/middleware-user-agent": "3.310.0",
1200 | "@aws-sdk/node-config-provider": "3.310.0",
1201 | "@aws-sdk/node-http-handler": "3.310.0",
1202 | "@aws-sdk/protocol-http": "3.310.0",
1203 | "@aws-sdk/smithy-client": "3.310.0",
1204 | "@aws-sdk/types": "3.310.0",
1205 | "@aws-sdk/url-parser": "3.310.0",
1206 | "@aws-sdk/util-base64": "3.310.0",
1207 | "@aws-sdk/util-body-length-browser": "3.310.0",
1208 | "@aws-sdk/util-body-length-node": "3.310.0",
1209 | "@aws-sdk/util-defaults-mode-browser": "3.310.0",
1210 | "@aws-sdk/util-defaults-mode-node": "3.310.0",
1211 | "@aws-sdk/util-endpoints": "3.310.0",
1212 | "@aws-sdk/util-retry": "3.310.0",
1213 | "@aws-sdk/util-user-agent-browser": "3.310.0",
1214 | "@aws-sdk/util-user-agent-node": "3.310.0",
1215 | "@aws-sdk/util-utf8": "3.310.0",
1216 | "tslib": "^2.5.0"
1217 | }
1218 | },
1219 | "@aws-sdk/client-sts": {
1220 | "version": "3.312.0",
1221 | "resolved": "https://registry.npmjs.org/@aws-sdk/client-sts/-/client-sts-3.312.0.tgz",
1222 | "integrity": "sha512-t0U7vRvWaMjrzBUo6tPrHe6HE97Blqx+b4GOjFbcbLtzxLlcRfhnWJik0Lp8hJtVqzNoN5mL4OeYgK7CRpL/Sw==",
1223 | "requires": {
1224 | "@aws-crypto/sha256-browser": "3.0.0",
1225 | "@aws-crypto/sha256-js": "3.0.0",
1226 | "@aws-sdk/config-resolver": "3.310.0",
1227 | "@aws-sdk/credential-provider-node": "3.310.0",
1228 | "@aws-sdk/fetch-http-handler": "3.310.0",
1229 | "@aws-sdk/hash-node": "3.310.0",
1230 | "@aws-sdk/invalid-dependency": "3.310.0",
1231 | "@aws-sdk/middleware-content-length": "3.310.0",
1232 | "@aws-sdk/middleware-endpoint": "3.310.0",
1233 | "@aws-sdk/middleware-host-header": "3.310.0",
1234 | "@aws-sdk/middleware-logger": "3.310.0",
1235 | "@aws-sdk/middleware-recursion-detection": "3.310.0",
1236 | "@aws-sdk/middleware-retry": "3.310.0",
1237 | "@aws-sdk/middleware-sdk-sts": "3.310.0",
1238 | "@aws-sdk/middleware-serde": "3.310.0",
1239 | "@aws-sdk/middleware-signing": "3.310.0",
1240 | "@aws-sdk/middleware-stack": "3.310.0",
1241 | "@aws-sdk/middleware-user-agent": "3.310.0",
1242 | "@aws-sdk/node-config-provider": "3.310.0",
1243 | "@aws-sdk/node-http-handler": "3.310.0",
1244 | "@aws-sdk/protocol-http": "3.310.0",
1245 | "@aws-sdk/smithy-client": "3.310.0",
1246 | "@aws-sdk/types": "3.310.0",
1247 | "@aws-sdk/url-parser": "3.310.0",
1248 | "@aws-sdk/util-base64": "3.310.0",
1249 | "@aws-sdk/util-body-length-browser": "3.310.0",
1250 | "@aws-sdk/util-body-length-node": "3.310.0",
1251 | "@aws-sdk/util-defaults-mode-browser": "3.310.0",
1252 | "@aws-sdk/util-defaults-mode-node": "3.310.0",
1253 | "@aws-sdk/util-endpoints": "3.310.0",
1254 | "@aws-sdk/util-retry": "3.310.0",
1255 | "@aws-sdk/util-user-agent-browser": "3.310.0",
1256 | "@aws-sdk/util-user-agent-node": "3.310.0",
1257 | "@aws-sdk/util-utf8": "3.310.0",
1258 | "fast-xml-parser": "4.1.2",
1259 | "tslib": "^2.5.0"
1260 | }
1261 | },
1262 | "@aws-sdk/config-resolver": {
1263 | "version": "3.310.0",
1264 | "resolved": "https://registry.npmjs.org/@aws-sdk/config-resolver/-/config-resolver-3.310.0.tgz",
1265 | "integrity": "sha512-8vsT+/50lOqfDxka9m/rRt6oxv1WuGZoP8oPMk0Dt+TxXMbAzf4+rejBgiB96wshI1k3gLokYRjSQZn+dDtT8g==",
1266 | "requires": {
1267 | "@aws-sdk/types": "3.310.0",
1268 | "@aws-sdk/util-config-provider": "3.310.0",
1269 | "@aws-sdk/util-middleware": "3.310.0",
1270 | "tslib": "^2.5.0"
1271 | }
1272 | },
1273 | "@aws-sdk/credential-provider-env": {
1274 | "version": "3.310.0",
1275 | "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-env/-/credential-provider-env-3.310.0.tgz",
1276 | "integrity": "sha512-vvIPQpI16fj95xwS7M3D48F7QhZJBnnCgB5lR+b7So+vsG9ibm1mZRVGzVpdxCvgyOhHFbvrby9aalNJmmIP1A==",
1277 | "requires": {
1278 | "@aws-sdk/property-provider": "3.310.0",
1279 | "@aws-sdk/types": "3.310.0",
1280 | "tslib": "^2.5.0"
1281 | }
1282 | },
1283 | "@aws-sdk/credential-provider-imds": {
1284 | "version": "3.310.0",
1285 | "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-imds/-/credential-provider-imds-3.310.0.tgz",
1286 | "integrity": "sha512-baxK7Zp6dai5AGW01FIW27xS2KAaPUmKLIXv5SvFYsUgXXvNW55im4uG3b+2gA0F7V+hXvVBH08OEqmwW6we5w==",
1287 | "requires": {
1288 | "@aws-sdk/node-config-provider": "3.310.0",
1289 | "@aws-sdk/property-provider": "3.310.0",
1290 | "@aws-sdk/types": "3.310.0",
1291 | "@aws-sdk/url-parser": "3.310.0",
1292 | "tslib": "^2.5.0"
1293 | }
1294 | },
1295 | "@aws-sdk/credential-provider-ini": {
1296 | "version": "3.310.0",
1297 | "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.310.0.tgz",
1298 | "integrity": "sha512-gtRz7I+4BBpwZ3tc6UIt5lQuiAFnkpOibxHh95x1M6HDxBjm+uqD6RPZYVH+dULZPYXOtOTsHV0IGjrcV0sSRg==",
1299 | "requires": {
1300 | "@aws-sdk/credential-provider-env": "3.310.0",
1301 | "@aws-sdk/credential-provider-imds": "3.310.0",
1302 | "@aws-sdk/credential-provider-process": "3.310.0",
1303 | "@aws-sdk/credential-provider-sso": "3.310.0",
1304 | "@aws-sdk/credential-provider-web-identity": "3.310.0",
1305 | "@aws-sdk/property-provider": "3.310.0",
1306 | "@aws-sdk/shared-ini-file-loader": "3.310.0",
1307 | "@aws-sdk/types": "3.310.0",
1308 | "tslib": "^2.5.0"
1309 | }
1310 | },
1311 | "@aws-sdk/credential-provider-node": {
1312 | "version": "3.310.0",
1313 | "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-node/-/credential-provider-node-3.310.0.tgz",
1314 | "integrity": "sha512-FrOztUcOq2Sp32xGtJvxfvdlmuAeoxIu/AElHzV1bkx6Pzo9DkQBhXrSQ+JFSpI++weOD4ZGFhAvgbgUOT4VAg==",
1315 | "requires": {
1316 | "@aws-sdk/credential-provider-env": "3.310.0",
1317 | "@aws-sdk/credential-provider-imds": "3.310.0",
1318 | "@aws-sdk/credential-provider-ini": "3.310.0",
1319 | "@aws-sdk/credential-provider-process": "3.310.0",
1320 | "@aws-sdk/credential-provider-sso": "3.310.0",
1321 | "@aws-sdk/credential-provider-web-identity": "3.310.0",
1322 | "@aws-sdk/property-provider": "3.310.0",
1323 | "@aws-sdk/shared-ini-file-loader": "3.310.0",
1324 | "@aws-sdk/types": "3.310.0",
1325 | "tslib": "^2.5.0"
1326 | }
1327 | },
1328 | "@aws-sdk/credential-provider-process": {
1329 | "version": "3.310.0",
1330 | "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-process/-/credential-provider-process-3.310.0.tgz",
1331 | "integrity": "sha512-h73sg6GPMUWC+3zMCbA1nZ2O03nNJt7G96JdmnantiXBwHpRKWW8nBTLzx5uhXn6hTuTaoQRP/P+oxQJKYdMmA==",
1332 | "requires": {
1333 | "@aws-sdk/property-provider": "3.310.0",
1334 | "@aws-sdk/shared-ini-file-loader": "3.310.0",
1335 | "@aws-sdk/types": "3.310.0",
1336 | "tslib": "^2.5.0"
1337 | }
1338 | },
1339 | "@aws-sdk/credential-provider-sso": {
1340 | "version": "3.310.0",
1341 | "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.310.0.tgz",
1342 | "integrity": "sha512-nXkpT8mrM/wRqSiz/a4p9U2UrOKyfZXhbPHIHyQj8K+uLjsYS+WPuH287J4A5Q57A6uarTrj5RjHmVeZVLaHmg==",
1343 | "requires": {
1344 | "@aws-sdk/client-sso": "3.310.0",
1345 | "@aws-sdk/property-provider": "3.310.0",
1346 | "@aws-sdk/shared-ini-file-loader": "3.310.0",
1347 | "@aws-sdk/token-providers": "3.310.0",
1348 | "@aws-sdk/types": "3.310.0",
1349 | "tslib": "^2.5.0"
1350 | }
1351 | },
1352 | "@aws-sdk/credential-provider-web-identity": {
1353 | "version": "3.310.0",
1354 | "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-web-identity/-/credential-provider-web-identity-3.310.0.tgz",
1355 | "integrity": "sha512-H4SzuZXILNhK6/IR1uVvsUDZvzc051hem7GLyYghBCu8mU+tq28YhKE8MfSroi6eL2e5Vujloij1OM2EQQkPkw==",
1356 | "requires": {
1357 | "@aws-sdk/property-provider": "3.310.0",
1358 | "@aws-sdk/types": "3.310.0",
1359 | "tslib": "^2.5.0"
1360 | }
1361 | },
1362 | "@aws-sdk/fetch-http-handler": {
1363 | "version": "3.310.0",
1364 | "resolved": "https://registry.npmjs.org/@aws-sdk/fetch-http-handler/-/fetch-http-handler-3.310.0.tgz",
1365 | "integrity": "sha512-Bi9vIwzdkw1zMcvi/zGzlWS9KfIEnAq4NNhsnCxbQ4OoIRU9wvU+WGZdBBhxg0ZxZmpp1j1aZhU53lLjA07MHw==",
1366 | "requires": {
1367 | "@aws-sdk/protocol-http": "3.310.0",
1368 | "@aws-sdk/querystring-builder": "3.310.0",
1369 | "@aws-sdk/types": "3.310.0",
1370 | "@aws-sdk/util-base64": "3.310.0",
1371 | "tslib": "^2.5.0"
1372 | }
1373 | },
1374 | "@aws-sdk/hash-node": {
1375 | "version": "3.310.0",
1376 | "resolved": "https://registry.npmjs.org/@aws-sdk/hash-node/-/hash-node-3.310.0.tgz",
1377 | "integrity": "sha512-NvE2fhRc8GRwCXBfDehxVAWCmVwVMILliAKVPAEr4yz2CkYs0tqU51S48x23dtna07H4qHtgpeNqVTthcIQOEQ==",
1378 | "requires": {
1379 | "@aws-sdk/types": "3.310.0",
1380 | "@aws-sdk/util-buffer-from": "3.310.0",
1381 | "@aws-sdk/util-utf8": "3.310.0",
1382 | "tslib": "^2.5.0"
1383 | }
1384 | },
1385 | "@aws-sdk/invalid-dependency": {
1386 | "version": "3.310.0",
1387 | "resolved": "https://registry.npmjs.org/@aws-sdk/invalid-dependency/-/invalid-dependency-3.310.0.tgz",
1388 | "integrity": "sha512-1s5RG5rSPXoa/aZ/Kqr5U/7lqpx+Ry81GprQ2bxWqJvWQIJ0IRUwo5pk8XFxbKVr/2a+4lZT/c3OGoBOM1yRRA==",
1389 | "requires": {
1390 | "@aws-sdk/types": "3.310.0",
1391 | "tslib": "^2.5.0"
1392 | }
1393 | },
1394 | "@aws-sdk/is-array-buffer": {
1395 | "version": "3.310.0",
1396 | "resolved": "https://registry.npmjs.org/@aws-sdk/is-array-buffer/-/is-array-buffer-3.310.0.tgz",
1397 | "integrity": "sha512-urnbcCR+h9NWUnmOtet/s4ghvzsidFmspfhYaHAmSRdy9yDjdjBJMFjjsn85A1ODUktztm+cVncXjQ38WCMjMQ==",
1398 | "requires": {
1399 | "tslib": "^2.5.0"
1400 | }
1401 | },
1402 | "@aws-sdk/middleware-content-length": {
1403 | "version": "3.310.0",
1404 | "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-content-length/-/middleware-content-length-3.310.0.tgz",
1405 | "integrity": "sha512-P8tQZxgDt6CAh1wd/W6WPzjc+uWPJwQkm+F7rAwRlM+k9q17HrhnksGDKcpuuLyIhPQYdmOMIkpKVgXGa4avhQ==",
1406 | "requires": {
1407 | "@aws-sdk/protocol-http": "3.310.0",
1408 | "@aws-sdk/types": "3.310.0",
1409 | "tslib": "^2.5.0"
1410 | }
1411 | },
1412 | "@aws-sdk/middleware-endpoint": {
1413 | "version": "3.310.0",
1414 | "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-endpoint/-/middleware-endpoint-3.310.0.tgz",
1415 | "integrity": "sha512-Z+N2vOL8K354/lstkClxLLsr6hCpVRh+0tCMXrVj66/NtKysCEZ/0b9LmqOwD9pWHNiI2mJqXwY0gxNlKAroUg==",
1416 | "requires": {
1417 | "@aws-sdk/middleware-serde": "3.310.0",
1418 | "@aws-sdk/types": "3.310.0",
1419 | "@aws-sdk/url-parser": "3.310.0",
1420 | "@aws-sdk/util-middleware": "3.310.0",
1421 | "tslib": "^2.5.0"
1422 | }
1423 | },
1424 | "@aws-sdk/middleware-host-header": {
1425 | "version": "3.310.0",
1426 | "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-host-header/-/middleware-host-header-3.310.0.tgz",
1427 | "integrity": "sha512-QWSA+46/hXorXyWa61ic2K7qZzwHTiwfk2e9mRRjeIRepUgI3qxFjsYqrWtrOGBjmFmq0pYIY8Bb/DCJuQqcoA==",
1428 | "requires": {
1429 | "@aws-sdk/protocol-http": "3.310.0",
1430 | "@aws-sdk/types": "3.310.0",
1431 | "tslib": "^2.5.0"
1432 | }
1433 | },
1434 | "@aws-sdk/middleware-logger": {
1435 | "version": "3.310.0",
1436 | "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-logger/-/middleware-logger-3.310.0.tgz",
1437 | "integrity": "sha512-Lurm8XofrASBRnAVtiSNuDSRsRqPNg27RIFLLsLp/pqog9nFJ0vz0kgdb9S5Z+zw83Mm+UlqOe6D8NTUNp4fVg==",
1438 | "requires": {
1439 | "@aws-sdk/types": "3.310.0",
1440 | "tslib": "^2.5.0"
1441 | }
1442 | },
1443 | "@aws-sdk/middleware-recursion-detection": {
1444 | "version": "3.310.0",
1445 | "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-recursion-detection/-/middleware-recursion-detection-3.310.0.tgz",
1446 | "integrity": "sha512-SuB75/xk/gyue24gkriTwO2jFd7YcUGZDClQYuRejgbXSa3CO0lWyawQtfLcSSEBp9izrEVXuFH24K1eAft5nQ==",
1447 | "requires": {
1448 | "@aws-sdk/protocol-http": "3.310.0",
1449 | "@aws-sdk/types": "3.310.0",
1450 | "tslib": "^2.5.0"
1451 | }
1452 | },
1453 | "@aws-sdk/middleware-retry": {
1454 | "version": "3.310.0",
1455 | "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-retry/-/middleware-retry-3.310.0.tgz",
1456 | "integrity": "sha512-oTPsRy2W4s+dfxbJPW7Km+hHtv/OMsNsVfThAq8DDYKC13qlr1aAyOqGLD+dpBy2aKe7ss517Sy2HcHtHqm7/g==",
1457 | "requires": {
1458 | "@aws-sdk/protocol-http": "3.310.0",
1459 | "@aws-sdk/service-error-classification": "3.310.0",
1460 | "@aws-sdk/types": "3.310.0",
1461 | "@aws-sdk/util-middleware": "3.310.0",
1462 | "@aws-sdk/util-retry": "3.310.0",
1463 | "tslib": "^2.5.0",
1464 | "uuid": "^8.3.2"
1465 | }
1466 | },
1467 | "@aws-sdk/middleware-sdk-sts": {
1468 | "version": "3.310.0",
1469 | "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-sdk-sts/-/middleware-sdk-sts-3.310.0.tgz",
1470 | "integrity": "sha512-+5PFwlYNLvLLIfw0ASAoWV/iIF8Zv6R6QGtyP0CclhRSvNjgbQDVnV0g95MC5qvh+GB/Yjlkt8qAjLSPjHfsrQ==",
1471 | "requires": {
1472 | "@aws-sdk/middleware-signing": "3.310.0",
1473 | "@aws-sdk/types": "3.310.0",
1474 | "tslib": "^2.5.0"
1475 | }
1476 | },
1477 | "@aws-sdk/middleware-serde": {
1478 | "version": "3.310.0",
1479 | "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-serde/-/middleware-serde-3.310.0.tgz",
1480 | "integrity": "sha512-RNeeTVWSLTaentUeCgQKZhAl+C6hxtwD78cQWS10UymWpQFwbaxztzKUu4UQS5xA2j6PxwPRRUjqa4jcFjfLsg==",
1481 | "requires": {
1482 | "@aws-sdk/types": "3.310.0",
1483 | "tslib": "^2.5.0"
1484 | }
1485 | },
1486 | "@aws-sdk/middleware-signing": {
1487 | "version": "3.310.0",
1488 | "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-signing/-/middleware-signing-3.310.0.tgz",
1489 | "integrity": "sha512-f9mKq+XMdW207Af3hKjdTnpNhdtwqWuvFs/ZyXoOkp/g1MY1O6L23Jy6i52m29LxbT4AuNRG1oKODfXM0vYVjQ==",
1490 | "requires": {
1491 | "@aws-sdk/property-provider": "3.310.0",
1492 | "@aws-sdk/protocol-http": "3.310.0",
1493 | "@aws-sdk/signature-v4": "3.310.0",
1494 | "@aws-sdk/types": "3.310.0",
1495 | "@aws-sdk/util-middleware": "3.310.0",
1496 | "tslib": "^2.5.0"
1497 | }
1498 | },
1499 | "@aws-sdk/middleware-stack": {
1500 | "version": "3.310.0",
1501 | "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-stack/-/middleware-stack-3.310.0.tgz",
1502 | "integrity": "sha512-010O1PD+UAcZVKRvqEusE1KJqN96wwrf6QsqbRM0ywsKQ21NDweaHvEDlds2VHpgmofxkRLRu/IDrlPkKRQrRg==",
1503 | "requires": {
1504 | "tslib": "^2.5.0"
1505 | }
1506 | },
1507 | "@aws-sdk/middleware-user-agent": {
1508 | "version": "3.310.0",
1509 | "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-user-agent/-/middleware-user-agent-3.310.0.tgz",
1510 | "integrity": "sha512-x3IOwSwSbwKidlxRk3CNVHVUb06SRuaELxggCaR++QVI8NU6qD/l4VHXKVRvbTHiC/cYxXE/GaBDgQVpDR7V/g==",
1511 | "requires": {
1512 | "@aws-sdk/protocol-http": "3.310.0",
1513 | "@aws-sdk/types": "3.310.0",
1514 | "@aws-sdk/util-endpoints": "3.310.0",
1515 | "tslib": "^2.5.0"
1516 | }
1517 | },
1518 | "@aws-sdk/node-config-provider": {
1519 | "version": "3.310.0",
1520 | "resolved": "https://registry.npmjs.org/@aws-sdk/node-config-provider/-/node-config-provider-3.310.0.tgz",
1521 | "integrity": "sha512-T/Pp6htc6hq/Cq+MLNDSyiwWCMVF6GqbBbXKVlO5L8rdHx4sq9xPdoPveZhGWrxvkanjA6eCwUp6E0riBOSVng==",
1522 | "requires": {
1523 | "@aws-sdk/property-provider": "3.310.0",
1524 | "@aws-sdk/shared-ini-file-loader": "3.310.0",
1525 | "@aws-sdk/types": "3.310.0",
1526 | "tslib": "^2.5.0"
1527 | }
1528 | },
1529 | "@aws-sdk/node-http-handler": {
1530 | "version": "3.310.0",
1531 | "resolved": "https://registry.npmjs.org/@aws-sdk/node-http-handler/-/node-http-handler-3.310.0.tgz",
1532 | "integrity": "sha512-irv9mbcM9xC2xYjArQF5SYmHBMu4ciMWtGsoHII1nRuFOl9FoT4ffTvEPuLlfC6pznzvKt9zvnm6xXj7gDChKg==",
1533 | "requires": {
1534 | "@aws-sdk/abort-controller": "3.310.0",
1535 | "@aws-sdk/protocol-http": "3.310.0",
1536 | "@aws-sdk/querystring-builder": "3.310.0",
1537 | "@aws-sdk/types": "3.310.0",
1538 | "tslib": "^2.5.0"
1539 | }
1540 | },
1541 | "@aws-sdk/property-provider": {
1542 | "version": "3.310.0",
1543 | "resolved": "https://registry.npmjs.org/@aws-sdk/property-provider/-/property-provider-3.310.0.tgz",
1544 | "integrity": "sha512-3lxDb0akV6BBzmFe4nLPaoliQbAifyWJhuvuDOu7e8NzouvpQXs0275w9LePhhcgjKAEVXUIse05ZW2DLbxo/g==",
1545 | "requires": {
1546 | "@aws-sdk/types": "3.310.0",
1547 | "tslib": "^2.5.0"
1548 | }
1549 | },
1550 | "@aws-sdk/protocol-http": {
1551 | "version": "3.310.0",
1552 | "resolved": "https://registry.npmjs.org/@aws-sdk/protocol-http/-/protocol-http-3.310.0.tgz",
1553 | "integrity": "sha512-fgZ1aw/irQtnrsR58pS8ThKOWo57Py3xX6giRvwSgZDEcxHfVzuQjy9yPuV++v04fdmdtgpbGf8WfvAAJ11yXQ==",
1554 | "requires": {
1555 | "@aws-sdk/types": "3.310.0",
1556 | "tslib": "^2.5.0"
1557 | }
1558 | },
1559 | "@aws-sdk/querystring-builder": {
1560 | "version": "3.310.0",
1561 | "resolved": "https://registry.npmjs.org/@aws-sdk/querystring-builder/-/querystring-builder-3.310.0.tgz",
1562 | "integrity": "sha512-ZHH8GV/80+pWGo7DzsvwvXR5xVxUHXUvPJPFAkhr6nCf78igdoF8gR10ScFoEKbtEapoNTaZlKHPXxpD8aPG7A==",
1563 | "requires": {
1564 | "@aws-sdk/types": "3.310.0",
1565 | "@aws-sdk/util-uri-escape": "3.310.0",
1566 | "tslib": "^2.5.0"
1567 | }
1568 | },
1569 | "@aws-sdk/querystring-parser": {
1570 | "version": "3.310.0",
1571 | "resolved": "https://registry.npmjs.org/@aws-sdk/querystring-parser/-/querystring-parser-3.310.0.tgz",
1572 | "integrity": "sha512-YkIznoP6lsiIUHinx++/lbb3tlMURGGqMpo0Pnn32zYzGrJXA6eC3D0as2EcMjo55onTfuLcIiX4qzXes2MYOA==",
1573 | "requires": {
1574 | "@aws-sdk/types": "3.310.0",
1575 | "tslib": "^2.5.0"
1576 | }
1577 | },
1578 | "@aws-sdk/service-error-classification": {
1579 | "version": "3.310.0",
1580 | "resolved": "https://registry.npmjs.org/@aws-sdk/service-error-classification/-/service-error-classification-3.310.0.tgz",
1581 | "integrity": "sha512-PuyC7k3qfIKeH2LCnDwbttMOKq3qAx4buvg0yfnJtQOz6t1AR8gsnAq0CjKXXyfkXwNKWTqCpE6lVNUIkXgsMw=="
1582 | },
1583 | "@aws-sdk/shared-ini-file-loader": {
1584 | "version": "3.310.0",
1585 | "resolved": "https://registry.npmjs.org/@aws-sdk/shared-ini-file-loader/-/shared-ini-file-loader-3.310.0.tgz",
1586 | "integrity": "sha512-N0q9pG0xSjQwc690YQND5bofm+4nfUviQ/Ppgan2kU6aU0WUq8KwgHJBto/YEEI+VlrME30jZJnxtOvcZJc2XA==",
1587 | "requires": {
1588 | "@aws-sdk/types": "3.310.0",
1589 | "tslib": "^2.5.0"
1590 | }
1591 | },
1592 | "@aws-sdk/signature-v4": {
1593 | "version": "3.310.0",
1594 | "resolved": "https://registry.npmjs.org/@aws-sdk/signature-v4/-/signature-v4-3.310.0.tgz",
1595 | "integrity": "sha512-1M60P1ZBNAjCFv9sYW29OF6okktaeibWyW3lMXqzoHF70lHBZh+838iUchznXUA5FLabfn4jBFWMRxlAXJUY2Q==",
1596 | "requires": {
1597 | "@aws-sdk/is-array-buffer": "3.310.0",
1598 | "@aws-sdk/types": "3.310.0",
1599 | "@aws-sdk/util-hex-encoding": "3.310.0",
1600 | "@aws-sdk/util-middleware": "3.310.0",
1601 | "@aws-sdk/util-uri-escape": "3.310.0",
1602 | "@aws-sdk/util-utf8": "3.310.0",
1603 | "tslib": "^2.5.0"
1604 | }
1605 | },
1606 | "@aws-sdk/smithy-client": {
1607 | "version": "3.310.0",
1608 | "resolved": "https://registry.npmjs.org/@aws-sdk/smithy-client/-/smithy-client-3.310.0.tgz",
1609 | "integrity": "sha512-UHMFvhoB2RLzsTb0mQe1ofvBUg/+/JEu1uptavxf/hEpEKZnRAaHH5FNkTG+mbFd/olay/QFjqNcMD6t8LcsNQ==",
1610 | "requires": {
1611 | "@aws-sdk/middleware-stack": "3.310.0",
1612 | "@aws-sdk/types": "3.310.0",
1613 | "tslib": "^2.5.0"
1614 | }
1615 | },
1616 | "@aws-sdk/token-providers": {
1617 | "version": "3.310.0",
1618 | "resolved": "https://registry.npmjs.org/@aws-sdk/token-providers/-/token-providers-3.310.0.tgz",
1619 | "integrity": "sha512-G1JvB+2v8k900VJFkKVQXgLGF50ShOEIPxfK1gSQLkSU85vPwGIAANs1KvnlW08FsNbWp3+sKca4kfYKsooXMw==",
1620 | "requires": {
1621 | "@aws-sdk/client-sso-oidc": "3.310.0",
1622 | "@aws-sdk/property-provider": "3.310.0",
1623 | "@aws-sdk/shared-ini-file-loader": "3.310.0",
1624 | "@aws-sdk/types": "3.310.0",
1625 | "tslib": "^2.5.0"
1626 | }
1627 | },
1628 | "@aws-sdk/types": {
1629 | "version": "3.310.0",
1630 | "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.310.0.tgz",
1631 | "integrity": "sha512-j8eamQJ7YcIhw7fneUfs8LYl3t01k4uHi4ZDmNRgtbmbmTTG3FZc2MotStZnp3nZB6vLiPF1o5aoJxWVvkzS6A==",
1632 | "requires": {
1633 | "tslib": "^2.5.0"
1634 | }
1635 | },
1636 | "@aws-sdk/url-parser": {
1637 | "version": "3.310.0",
1638 | "resolved": "https://registry.npmjs.org/@aws-sdk/url-parser/-/url-parser-3.310.0.tgz",
1639 | "integrity": "sha512-mCLnCaSB9rQvAgx33u0DujLvr4d5yEm/W5r789GblwwQnlNXedVu50QRizMLTpltYWyAUoXjJgQnJHmJMaKXhw==",
1640 | "requires": {
1641 | "@aws-sdk/querystring-parser": "3.310.0",
1642 | "@aws-sdk/types": "3.310.0",
1643 | "tslib": "^2.5.0"
1644 | }
1645 | },
1646 | "@aws-sdk/util-base64": {
1647 | "version": "3.310.0",
1648 | "resolved": "https://registry.npmjs.org/@aws-sdk/util-base64/-/util-base64-3.310.0.tgz",
1649 | "integrity": "sha512-v3+HBKQvqgdzcbL+pFswlx5HQsd9L6ZTlyPVL2LS9nNXnCcR3XgGz9jRskikRUuUvUXtkSG1J88GAOnJ/apTPg==",
1650 | "requires": {
1651 | "@aws-sdk/util-buffer-from": "3.310.0",
1652 | "tslib": "^2.5.0"
1653 | }
1654 | },
1655 | "@aws-sdk/util-body-length-browser": {
1656 | "version": "3.310.0",
1657 | "resolved": "https://registry.npmjs.org/@aws-sdk/util-body-length-browser/-/util-body-length-browser-3.310.0.tgz",
1658 | "integrity": "sha512-sxsC3lPBGfpHtNTUoGXMQXLwjmR0zVpx0rSvzTPAuoVILVsp5AU/w5FphNPxD5OVIjNbZv9KsKTuvNTiZjDp9g==",
1659 | "requires": {
1660 | "tslib": "^2.5.0"
1661 | }
1662 | },
1663 | "@aws-sdk/util-body-length-node": {
1664 | "version": "3.310.0",
1665 | "resolved": "https://registry.npmjs.org/@aws-sdk/util-body-length-node/-/util-body-length-node-3.310.0.tgz",
1666 | "integrity": "sha512-2tqGXdyKhyA6w4zz7UPoS8Ip+7sayOg9BwHNidiGm2ikbDxm1YrCfYXvCBdwaJxa4hJfRVz+aL9e+d3GqPI9pQ==",
1667 | "requires": {
1668 | "tslib": "^2.5.0"
1669 | }
1670 | },
1671 | "@aws-sdk/util-buffer-from": {
1672 | "version": "3.310.0",
1673 | "resolved": "https://registry.npmjs.org/@aws-sdk/util-buffer-from/-/util-buffer-from-3.310.0.tgz",
1674 | "integrity": "sha512-i6LVeXFtGih5Zs8enLrt+ExXY92QV25jtEnTKHsmlFqFAuL3VBeod6boeMXkN2p9lbSVVQ1sAOOYZOHYbYkntw==",
1675 | "requires": {
1676 | "@aws-sdk/is-array-buffer": "3.310.0",
1677 | "tslib": "^2.5.0"
1678 | }
1679 | },
1680 | "@aws-sdk/util-config-provider": {
1681 | "version": "3.310.0",
1682 | "resolved": "https://registry.npmjs.org/@aws-sdk/util-config-provider/-/util-config-provider-3.310.0.tgz",
1683 | "integrity": "sha512-xIBaYo8dwiojCw8vnUcIL4Z5tyfb1v3yjqyJKJWV/dqKUFOOS0U591plmXbM+M/QkXyML3ypon1f8+BoaDExrg==",
1684 | "requires": {
1685 | "tslib": "^2.5.0"
1686 | }
1687 | },
1688 | "@aws-sdk/util-defaults-mode-browser": {
1689 | "version": "3.310.0",
1690 | "resolved": "https://registry.npmjs.org/@aws-sdk/util-defaults-mode-browser/-/util-defaults-mode-browser-3.310.0.tgz",
1691 | "integrity": "sha512-Mr2AoQsjAYNM5oAS2YJlYJqhiCvkFV/hu48slOZgbY4G7ueW4cM0DPkR16wqjcRCGqZ4JmAZB8Q5R0DMrLjhOQ==",
1692 | "requires": {
1693 | "@aws-sdk/property-provider": "3.310.0",
1694 | "@aws-sdk/types": "3.310.0",
1695 | "bowser": "^2.11.0",
1696 | "tslib": "^2.5.0"
1697 | }
1698 | },
1699 | "@aws-sdk/util-defaults-mode-node": {
1700 | "version": "3.310.0",
1701 | "resolved": "https://registry.npmjs.org/@aws-sdk/util-defaults-mode-node/-/util-defaults-mode-node-3.310.0.tgz",
1702 | "integrity": "sha512-JyBlvhQGR8w8NpFRZZXRVTDesafFKTu/gTWjcoxP7twa+fYHSIgPPFGnlcJ/iHaucjamSaWi5EQ+YQmnSZ8yHA==",
1703 | "requires": {
1704 | "@aws-sdk/config-resolver": "3.310.0",
1705 | "@aws-sdk/credential-provider-imds": "3.310.0",
1706 | "@aws-sdk/node-config-provider": "3.310.0",
1707 | "@aws-sdk/property-provider": "3.310.0",
1708 | "@aws-sdk/types": "3.310.0",
1709 | "tslib": "^2.5.0"
1710 | }
1711 | },
1712 | "@aws-sdk/util-endpoints": {
1713 | "version": "3.310.0",
1714 | "resolved": "https://registry.npmjs.org/@aws-sdk/util-endpoints/-/util-endpoints-3.310.0.tgz",
1715 | "integrity": "sha512-zG+/d/O5KPmAaeOMPd6bW1abifdT0H03f42keLjYEoRZzYtHPC5DuPE0UayiWGckI6BCDgy0sRKXCYS49UNFaQ==",
1716 | "requires": {
1717 | "@aws-sdk/types": "3.310.0",
1718 | "tslib": "^2.5.0"
1719 | }
1720 | },
1721 | "@aws-sdk/util-hex-encoding": {
1722 | "version": "3.310.0",
1723 | "resolved": "https://registry.npmjs.org/@aws-sdk/util-hex-encoding/-/util-hex-encoding-3.310.0.tgz",
1724 | "integrity": "sha512-sVN7mcCCDSJ67pI1ZMtk84SKGqyix6/0A1Ab163YKn+lFBQRMKexleZzpYzNGxYzmQS6VanP/cfU7NiLQOaSfA==",
1725 | "requires": {
1726 | "tslib": "^2.5.0"
1727 | }
1728 | },
1729 | "@aws-sdk/util-locate-window": {
1730 | "version": "3.310.0",
1731 | "resolved": "https://registry.npmjs.org/@aws-sdk/util-locate-window/-/util-locate-window-3.310.0.tgz",
1732 | "integrity": "sha512-qo2t/vBTnoXpjKxlsC2e1gBrRm80M3bId27r0BRB2VniSSe7bL1mmzM+/HFtujm0iAxtPM+aLEflLJlJeDPg0w==",
1733 | "requires": {
1734 | "tslib": "^2.5.0"
1735 | }
1736 | },
1737 | "@aws-sdk/util-middleware": {
1738 | "version": "3.310.0",
1739 | "resolved": "https://registry.npmjs.org/@aws-sdk/util-middleware/-/util-middleware-3.310.0.tgz",
1740 | "integrity": "sha512-FTSUKL/eRb9X6uEZClrTe27QFXUNNp7fxYrPndZwk1hlaOP5ix+MIHBcI7pIiiY/JPfOUmPyZOu+HetlFXjWog==",
1741 | "requires": {
1742 | "tslib": "^2.5.0"
1743 | }
1744 | },
1745 | "@aws-sdk/util-retry": {
1746 | "version": "3.310.0",
1747 | "resolved": "https://registry.npmjs.org/@aws-sdk/util-retry/-/util-retry-3.310.0.tgz",
1748 | "integrity": "sha512-FwWGhCBLfoivTMUHu1LIn4NjrN9JLJ/aX5aZmbcPIOhZVFJj638j0qDgZXyfvVqBuBZh7M8kGq0Oahy3dp69OA==",
1749 | "requires": {
1750 | "@aws-sdk/service-error-classification": "3.310.0",
1751 | "tslib": "^2.5.0"
1752 | }
1753 | },
1754 | "@aws-sdk/util-uri-escape": {
1755 | "version": "3.310.0",
1756 | "resolved": "https://registry.npmjs.org/@aws-sdk/util-uri-escape/-/util-uri-escape-3.310.0.tgz",
1757 | "integrity": "sha512-drzt+aB2qo2LgtDoiy/3sVG8w63cgLkqFIa2NFlGpUgHFWTXkqtbgf4L5QdjRGKWhmZsnqkbtL7vkSWEcYDJ4Q==",
1758 | "requires": {
1759 | "tslib": "^2.5.0"
1760 | }
1761 | },
1762 | "@aws-sdk/util-user-agent-browser": {
1763 | "version": "3.310.0",
1764 | "resolved": "https://registry.npmjs.org/@aws-sdk/util-user-agent-browser/-/util-user-agent-browser-3.310.0.tgz",
1765 | "integrity": "sha512-yU/4QnHHuQ5z3vsUqMQVfYLbZGYwpYblPiuZx4Zo9+x0PBkNjYMqctdDcrpoH9Z2xZiDN16AmQGK1tix117ZKw==",
1766 | "requires": {
1767 | "@aws-sdk/types": "3.310.0",
1768 | "bowser": "^2.11.0",
1769 | "tslib": "^2.5.0"
1770 | }
1771 | },
1772 | "@aws-sdk/util-user-agent-node": {
1773 | "version": "3.310.0",
1774 | "resolved": "https://registry.npmjs.org/@aws-sdk/util-user-agent-node/-/util-user-agent-node-3.310.0.tgz",
1775 | "integrity": "sha512-Ra3pEl+Gn2BpeE7KiDGpi4zj7WJXZA5GXnGo3mjbi9+Y3zrbuhJAbdZO3mO/o7xDgMC6ph4xCTbaSGzU6b6EDg==",
1776 | "requires": {
1777 | "@aws-sdk/node-config-provider": "3.310.0",
1778 | "@aws-sdk/types": "3.310.0",
1779 | "tslib": "^2.5.0"
1780 | }
1781 | },
1782 | "@aws-sdk/util-utf8": {
1783 | "version": "3.310.0",
1784 | "resolved": "https://registry.npmjs.org/@aws-sdk/util-utf8/-/util-utf8-3.310.0.tgz",
1785 | "integrity": "sha512-DnLfFT8uCO22uOJc0pt0DsSNau1GTisngBCDw8jQuWT5CqogMJu4b/uXmwEqfj8B3GX6Xsz8zOd6JpRlPftQoA==",
1786 | "requires": {
1787 | "@aws-sdk/util-buffer-from": "3.310.0",
1788 | "tslib": "^2.5.0"
1789 | }
1790 | },
1791 | "@aws-sdk/util-utf8-browser": {
1792 | "version": "3.259.0",
1793 | "resolved": "https://registry.npmjs.org/@aws-sdk/util-utf8-browser/-/util-utf8-browser-3.259.0.tgz",
1794 | "integrity": "sha512-UvFa/vR+e19XookZF8RzFZBrw2EUkQWxiBW0yYQAhvk3C+QVGl0H3ouca8LDBlBfQKXwmW3huo/59H8rwb1wJw==",
1795 | "requires": {
1796 | "tslib": "^2.3.1"
1797 | }
1798 | },
1799 | "bowser": {
1800 | "version": "2.11.0",
1801 | "resolved": "https://registry.npmjs.org/bowser/-/bowser-2.11.0.tgz",
1802 | "integrity": "sha512-AlcaJBi/pqqJBIQ8U9Mcpc9i8Aqxn88Skv5d+xBX006BY5u8N3mGLHa5Lgppa7L/HfwgwLgZ6NYs+Ag6uUmJRA=="
1803 | },
1804 | "fast-xml-parser": {
1805 | "version": "4.1.2",
1806 | "resolved": "https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-4.1.2.tgz",
1807 | "integrity": "sha512-CDYeykkle1LiA/uqQyNwYpFbyF6Axec6YapmpUP+/RHWIoR1zKjocdvNaTsxCxZzQ6v9MLXaSYm9Qq0thv0DHg==",
1808 | "requires": {
1809 | "strnum": "^1.0.5"
1810 | }
1811 | },
1812 | "strnum": {
1813 | "version": "1.0.5",
1814 | "resolved": "https://registry.npmjs.org/strnum/-/strnum-1.0.5.tgz",
1815 | "integrity": "sha512-J8bbNyKKXl5qYcR36TIO8W3mVGVHrmmxsd5PAItGkmyzwJvybiw2IVq5nqd0i4LSNSkB/sx9VHllbfFdr9k1JA=="
1816 | },
1817 | "tslib": {
1818 | "version": "2.5.0",
1819 | "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.5.0.tgz",
1820 | "integrity": "sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg=="
1821 | },
1822 | "uuid": {
1823 | "version": "8.3.2",
1824 | "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz",
1825 | "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg=="
1826 | }
1827 | }
1828 | }
1829 |
--------------------------------------------------------------------------------
/functions/set-log-retention/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "set-log-retention",
3 | "version": "1.0.0",
4 | "description": "Sets all Lambda function log retention period to a configured value. Runs on a daily schedule.",
5 | "main": "index.js",
6 | "author": "allenheltondev",
7 | "license": "ISC",
8 | "dependencies": {
9 | "@aws-sdk/client-cloudwatch-logs": "^3.312.0"
10 | }
11 | }
12 |
--------------------------------------------------------------------------------
/layers/index.js:
--------------------------------------------------------------------------------
1 | const { SecretsManagerClient, GetSecretValueCommand } = require('@aws-sdk/client-secrets-manager');
2 |
3 | const secrets = new SecretsManagerClient();
4 | let cachedSecrets;
5 |
6 | exports.getSecret = async (secretKey) => {
7 | if (cachedSecrets) {
8 | return cachedSecrets[secretKey];
9 | } else {
10 | const secretResponse = await secrets.send(new GetSecretValueCommand({ SecretId: process.env.SECRET_ID }));
11 | if (secretResponse) {
12 | cachedSecrets = JSON.parse(secretResponse.SecretString);
13 | return cachedSecrets[secretKey];
14 | }
15 | }
16 | };
--------------------------------------------------------------------------------
/layers/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "layers",
3 | "version": "1.0.0",
4 | "description": "Shared code and dependencies",
5 | "main": "index.js",
6 | "scripts": {
7 | "test": "echo \"Error: no test specified\" && exit 1"
8 | },
9 | "author": "allenheltondev",
10 | "license": "ISC",
11 | "dependencies": {
12 | "openai": "^4.19.1"
13 | },
14 | "devDependencies": {
15 | "@aws-sdk/client-secrets-manager": "^3.312.0"
16 | }
17 | }
18 |
--------------------------------------------------------------------------------
/template.yaml:
--------------------------------------------------------------------------------
1 | AWSTemplateFormatVersion: '2010-09-09'
2 | Transform: AWS::Serverless-2016-10-31
3 | Description: >
4 | Serverless Toolbox - Set of functions to help you move faster
5 |
6 | Parameters:
7 | SendgridApiKey:
8 | Type: String
9 | Description: Api Key of the SendGrid account that will send the newsletter
10 | NoEcho: true
11 | Default: ''
12 | AdminEmail:
13 | Type: String
14 | Description: Your personal email address or email address to notify
15 | Default: ''
16 | MomentoApiKey:
17 | Type: String
18 | Description: API Key for Momento
19 | NoEcho: true
20 | Default: ''
21 | OpenAIApiKey:
22 | Type: String
23 | Description: Auth token for OpenAI
24 | NoEcho: true
25 | Default: ''
26 | StripeApiKey:
27 | Type: String
28 | Description: API Key for interacting with your Stripe account
29 | NoEcho: true
30 | Default: ''
31 | MediumApiKey:
32 | Type: String
33 | Description: API Key for interacting with Medium
34 | Default: ''
35 | DevApiKey:
36 | Type: String
37 | Description: API Key for interacting with Dev.to
38 | Default: ''
39 | HashnodeApiKey:
40 | Type: String
41 | Description: API Key for interacting with Hashnode
42 | Default: ''
43 | GitHubPAT:
44 | Type: String
45 | Description: Personal Access Token for GitHub
46 | Default: ''
47 | MediumCookie:
48 | Type: String
49 | Description: Alternate auth for interacting with Medium
50 | Default: ''
51 | GACreds:
52 | Type: String
53 | Description: Gooogle Analytics credentials
54 | Default: ''
55 |
56 | Globals:
57 | Function:
58 | Runtime: nodejs20.x
59 | Architectures:
60 | - arm64
61 | Tracing: Active
62 | Timeout: 15
63 | MemorySize: 1024
64 | Handler: index.handler
65 | Layers:
66 | - !Ref SharedLayer
67 | Environment:
68 | Variables:
69 | AWS_NODEJS_CONNECTION_REUSE_ENABLED: 1
70 |
71 | Conditions:
72 | DeployEmailFunction:
73 | !And
74 | - !Not [!Equals [!Ref SendgridApiKey, '']]
75 | - !Not [!Equals [!Ref AdminEmail, '']]
76 |
77 | DeployChatGptFunction:
78 | !And
79 | - !Not [!Equals [!Ref MomentoApiKey, '']]
80 | - !Not [!Equals [!Ref OpenAIApiKey, '']]
81 |
82 | Resources:
83 | SharedLayer:
84 | Type: AWS::Serverless::LayerVersion
85 | Metadata:
86 | BuildMethod: nodejs18.x
87 | BuildArchitecture: arm64
88 | Properties:
89 | ContentUri: layers/
90 | CompatibleRuntimes:
91 | - nodejs18.x
92 |
93 | AuthTokensSecret:
94 | Type: AWS::SecretsManager::Secret
95 | Properties:
96 | SecretString:
97 | Fn::Sub:
98 | - |-
99 | {
100 | "medium": "${MediumApiKey}",
101 | "medium-cookie": "${MediumCookie}",
102 | "momento": "${MomentoApiKey}",
103 | "dev": "${DevApiKey}",
104 | "hashnode": "${HashnodeApiKey}",
105 | "github": "${GitHubPAT}",
106 | "sendgrid":"${SendgridApiKey}",
107 | "ga": "${GoogleAnalyticsCreds}",
108 | "openai": "${OpenAIApiKey}",
109 | "stripe": "${StripeApiKey}"
110 | }
111 | - MediumApiKey: !Ref MediumApiKey
112 | DevApiKey: !Ref DevApiKey
113 | HashnodeApiKey: !Ref HashnodeApiKey
114 | GitHubPAT: !Ref GitHubPAT
115 | SendgridApiKey: !Ref SendgridApiKey
116 | GoogleAnalyticsCreds: !Ref GACreds
117 | MomentoApiKey: !Ref MomentoApiKey
118 | OpenAIApiKey: !Ref OpenAIApiKey
119 | StripeApiKey: !Ref StripeApiKey
120 |
121 | AuthTokenSecretParameter:
122 | Type: AWS::SSM::Parameter
123 | Properties:
124 | Name: /serverless-toolbox/secrets
125 | Type: String
126 | Value: !Ref AuthTokensSecret
127 | Description: Arn for the Secrets Manager Secret for auth tokens
128 |
129 | SendEmailFunction:
130 | Type: AWS::Serverless::Function
131 | Condition: DeployEmailFunction
132 | Properties:
133 | CodeUri: functions/send-email
134 | Policies:
135 | - AWSLambdaBasicExecutionRole
136 | - Version: 2012-10-17
137 | Statement:
138 | - Effect: Allow
139 | Action:
140 | - secretsmanager:GetSecretValue
141 | Resource: !Ref AuthTokensSecret
142 | Environment:
143 | Variables:
144 | SECRET_ID: !Ref AuthTokensSecret
145 | FROM_EMAIL: !Ref AdminEmail
146 | Events:
147 | SendMailEvent:
148 | Type: EventBridgeRule
149 | Properties:
150 | Pattern:
151 | detail-type:
152 | - Send Email
153 |
154 | SendApiRequestFunction:
155 | Type: AWS::Serverless::Function
156 | Properties:
157 | CodeUri: functions/send-api-request
158 | Policies:
159 | - AWSLambdaBasicExecutionRole
160 | - Version: 2012-10-17
161 | Statement:
162 | - Effect: Allow
163 | Action:
164 | - secretsmanager:GetSecretValue
165 | Resource: !Ref AuthTokensSecret
166 | Environment:
167 | Variables:
168 | SECRET_ID: !Ref AuthTokensSecret
169 |
170 | SendApiRequestParameter:
171 | Type: AWS::SSM::Parameter
172 | Properties:
173 | Name: /serverless-toolbox/send-api-request
174 | Type: String
175 | Value: !GetAtt SendApiRequestFunction.Arn
176 | Description: Arn for the Send API Request Lambda function
177 |
178 | AskChatGPTFunction:
179 | Type: AWS::Serverless::Function
180 | Condition: DeployChatGptFunction
181 | Properties:
182 | CodeUri: functions/ask-chatgpt
183 | Timeout: 300
184 | MemorySize: 512
185 | Policies:
186 | - AWSLambdaBasicExecutionRole
187 | - Version: 2012-10-17
188 | Statement:
189 | - Effect: Allow
190 | Action:
191 | - secretsmanager:GetSecretValue
192 | Resource: !Ref AuthTokensSecret
193 | Environment:
194 | Variables:
195 | CACHE_TTL: 3600
196 | SECRET_ID: !Ref AuthTokensSecret
197 |
198 | AskChatGPTParameter:
199 | Type: AWS::SSM::Parameter
200 | Condition: DeployChatGptFunction
201 | Properties:
202 | Name: /serverless-toolbox/ask-chatgpt
203 | Type: String
204 | Value: !GetAtt AskChatGPTFunction.Arn
205 | Description: Arn for the Ask ChatGPT Lambda function
206 |
207 | SetLogRetentionFunction:
208 | Type: AWS::Serverless::Function
209 | Properties:
210 | CodeUri: functions/set-log-retention/
211 | Environment:
212 | Variables:
213 | RETENTION_DAYS: 7
214 | Events:
215 | ScheduledEvent:
216 | Type: Schedule
217 | Properties:
218 | Schedule: "cron(0 2 * * ? *)"
219 | Policies:
220 | - AWSLambdaBasicExecutionRole
221 | - Version: 2012-10-17
222 | Statement:
223 | - Effect: Allow
224 | Action:
225 | - logs:DescribeLogGroups
226 | - logs:PutRetentionPolicy
227 | Resource: !Sub arn:${AWS::Partition}:logs:${AWS::Region}:${AWS::AccountId}:log-group:*
228 |
229 | MarshallUnmarshallFunction:
230 | Type: AWS::Serverless::Function
231 | Properties:
232 | CodeUri: functions/marshall-unmarshall-data
233 | Policies:
234 | - AWSLambdaBasicExecutionRole
235 |
236 | MarshallUnmarshallParameter:
237 | Type: AWS::SSM::Parameter
238 | Properties:
239 | Name: /serverless-toolbox/marshall-unmarshall-data
240 | Type: String
241 | Value: !GetAtt MarshallUnmarshallFunction.Arn
242 | Description: Arn for the Marshall Unmarshall Data Lambda function
243 |
--------------------------------------------------------------------------------