mk6783336 commited on
Commit
533392a
·
1 Parent(s): 57eaed8

fix: ignore node_modules and .env

Browse files
This view is limited to 50 files because it contains too many changes.   See raw diff
Files changed (50) hide show
  1. node_modules/split-ca/.npmignore → .dockerignore +1 -0
  2. node_modules/dockerode/.eslintignore → .gitignore +1 -1
  3. node_modules/.bin/proto-loader-gen-types +0 -16
  4. node_modules/.bin/proto-loader-gen-types.cmd +0 -17
  5. node_modules/.bin/proto-loader-gen-types.ps1 +0 -28
  6. node_modules/.bin/semver +0 -16
  7. node_modules/.bin/semver.cmd +0 -17
  8. node_modules/.bin/semver.ps1 +0 -28
  9. node_modules/.bin/uuid +0 -16
  10. node_modules/.bin/uuid.cmd +0 -17
  11. node_modules/.bin/uuid.ps1 +0 -28
  12. node_modules/.package-lock.json +0 -1809
  13. node_modules/@balena/dockerignore/CHANGELOG.md +0 -31
  14. node_modules/@balena/dockerignore/LICENSE.md +0 -206
  15. node_modules/@balena/dockerignore/README.md +0 -261
  16. node_modules/@balena/dockerignore/ignore.js +0 -363
  17. node_modules/@balena/dockerignore/index.d.ts +0 -45
  18. node_modules/@balena/dockerignore/package.json +0 -49
  19. node_modules/@grpc/grpc-js/LICENSE +0 -201
  20. node_modules/@grpc/grpc-js/README.md +0 -84
  21. node_modules/@grpc/grpc-js/build/src/admin.d.ts +0 -11
  22. node_modules/@grpc/grpc-js/build/src/admin.js +0 -30
  23. node_modules/@grpc/grpc-js/build/src/admin.js.map +0 -1
  24. node_modules/@grpc/grpc-js/build/src/auth-context.d.ts +0 -5
  25. node_modules/@grpc/grpc-js/build/src/auth-context.js +0 -19
  26. node_modules/@grpc/grpc-js/build/src/auth-context.js.map +0 -1
  27. node_modules/@grpc/grpc-js/build/src/backoff-timeout.d.ts +0 -94
  28. node_modules/@grpc/grpc-js/build/src/backoff-timeout.js +0 -191
  29. node_modules/@grpc/grpc-js/build/src/backoff-timeout.js.map +0 -1
  30. node_modules/@grpc/grpc-js/build/src/call-credentials.d.ts +0 -57
  31. node_modules/@grpc/grpc-js/build/src/call-credentials.js +0 -153
  32. node_modules/@grpc/grpc-js/build/src/call-credentials.js.map +0 -1
  33. node_modules/@grpc/grpc-js/build/src/call-interface.d.ts +0 -101
  34. node_modules/@grpc/grpc-js/build/src/call-interface.js +0 -100
  35. node_modules/@grpc/grpc-js/build/src/call-interface.js.map +0 -1
  36. node_modules/@grpc/grpc-js/build/src/call-number.d.ts +0 -1
  37. node_modules/@grpc/grpc-js/build/src/call-number.js +0 -24
  38. node_modules/@grpc/grpc-js/build/src/call-number.js.map +0 -1
  39. node_modules/@grpc/grpc-js/build/src/call.d.ts +0 -86
  40. node_modules/@grpc/grpc-js/build/src/call.js +0 -152
  41. node_modules/@grpc/grpc-js/build/src/call.js.map +0 -1
  42. node_modules/@grpc/grpc-js/build/src/certificate-provider.d.ts +0 -43
  43. node_modules/@grpc/grpc-js/build/src/certificate-provider.js +0 -141
  44. node_modules/@grpc/grpc-js/build/src/certificate-provider.js.map +0 -1
  45. node_modules/@grpc/grpc-js/build/src/channel-credentials.d.ts +0 -119
  46. node_modules/@grpc/grpc-js/build/src/channel-credentials.js +0 -430
  47. node_modules/@grpc/grpc-js/build/src/channel-credentials.js.map +0 -1
  48. node_modules/@grpc/grpc-js/build/src/channel-options.d.ts +0 -81
  49. node_modules/@grpc/grpc-js/build/src/channel-options.js +0 -73
  50. node_modules/@grpc/grpc-js/build/src/channel-options.js.map +0 -1
node_modules/split-ca/.npmignore → .dockerignore RENAMED
@@ -1 +1,2 @@
1
  node_modules
 
 
1
  node_modules
2
+ .env
node_modules/dockerode/.eslintignore → .gitignore RENAMED
@@ -1,2 +1,2 @@
1
- # 3rd-party files
2
  node_modules
 
 
 
1
  node_modules
2
+ .env
node_modules/.bin/proto-loader-gen-types DELETED
@@ -1,16 +0,0 @@
1
- #!/bin/sh
2
- basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
3
-
4
- case `uname` in
5
- *CYGWIN*|*MINGW*|*MSYS*)
6
- if command -v cygpath > /dev/null 2>&1; then
7
- basedir=`cygpath -w "$basedir"`
8
- fi
9
- ;;
10
- esac
11
-
12
- if [ -x "$basedir/node" ]; then
13
- exec "$basedir/node" "$basedir/../@grpc/proto-loader/build/bin/proto-loader-gen-types.js" "$@"
14
- else
15
- exec node "$basedir/../@grpc/proto-loader/build/bin/proto-loader-gen-types.js" "$@"
16
- fi
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
node_modules/.bin/proto-loader-gen-types.cmd DELETED
@@ -1,17 +0,0 @@
1
- @ECHO off
2
- GOTO start
3
- :find_dp0
4
- SET dp0=%~dp0
5
- EXIT /b
6
- :start
7
- SETLOCAL
8
- CALL :find_dp0
9
-
10
- IF EXIST "%dp0%\node.exe" (
11
- SET "_prog=%dp0%\node.exe"
12
- ) ELSE (
13
- SET "_prog=node"
14
- SET PATHEXT=%PATHEXT:;.JS;=;%
15
- )
16
-
17
- endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\@grpc\proto-loader\build\bin\proto-loader-gen-types.js" %*
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
node_modules/.bin/proto-loader-gen-types.ps1 DELETED
@@ -1,28 +0,0 @@
1
- #!/usr/bin/env pwsh
2
- $basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent
3
-
4
- $exe=""
5
- if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) {
6
- # Fix case when both the Windows and Linux builds of Node
7
- # are installed in the same directory
8
- $exe=".exe"
9
- }
10
- $ret=0
11
- if (Test-Path "$basedir/node$exe") {
12
- # Support pipeline input
13
- if ($MyInvocation.ExpectingInput) {
14
- $input | & "$basedir/node$exe" "$basedir/../@grpc/proto-loader/build/bin/proto-loader-gen-types.js" $args
15
- } else {
16
- & "$basedir/node$exe" "$basedir/../@grpc/proto-loader/build/bin/proto-loader-gen-types.js" $args
17
- }
18
- $ret=$LASTEXITCODE
19
- } else {
20
- # Support pipeline input
21
- if ($MyInvocation.ExpectingInput) {
22
- $input | & "node$exe" "$basedir/../@grpc/proto-loader/build/bin/proto-loader-gen-types.js" $args
23
- } else {
24
- & "node$exe" "$basedir/../@grpc/proto-loader/build/bin/proto-loader-gen-types.js" $args
25
- }
26
- $ret=$LASTEXITCODE
27
- }
28
- exit $ret
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
node_modules/.bin/semver DELETED
@@ -1,16 +0,0 @@
1
- #!/bin/sh
2
- basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
3
-
4
- case `uname` in
5
- *CYGWIN*|*MINGW*|*MSYS*)
6
- if command -v cygpath > /dev/null 2>&1; then
7
- basedir=`cygpath -w "$basedir"`
8
- fi
9
- ;;
10
- esac
11
-
12
- if [ -x "$basedir/node" ]; then
13
- exec "$basedir/node" "$basedir/../semver/bin/semver.js" "$@"
14
- else
15
- exec node "$basedir/../semver/bin/semver.js" "$@"
16
- fi
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
node_modules/.bin/semver.cmd DELETED
@@ -1,17 +0,0 @@
1
- @ECHO off
2
- GOTO start
3
- :find_dp0
4
- SET dp0=%~dp0
5
- EXIT /b
6
- :start
7
- SETLOCAL
8
- CALL :find_dp0
9
-
10
- IF EXIST "%dp0%\node.exe" (
11
- SET "_prog=%dp0%\node.exe"
12
- ) ELSE (
13
- SET "_prog=node"
14
- SET PATHEXT=%PATHEXT:;.JS;=;%
15
- )
16
-
17
- endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\semver\bin\semver.js" %*
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
node_modules/.bin/semver.ps1 DELETED
@@ -1,28 +0,0 @@
1
- #!/usr/bin/env pwsh
2
- $basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent
3
-
4
- $exe=""
5
- if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) {
6
- # Fix case when both the Windows and Linux builds of Node
7
- # are installed in the same directory
8
- $exe=".exe"
9
- }
10
- $ret=0
11
- if (Test-Path "$basedir/node$exe") {
12
- # Support pipeline input
13
- if ($MyInvocation.ExpectingInput) {
14
- $input | & "$basedir/node$exe" "$basedir/../semver/bin/semver.js" $args
15
- } else {
16
- & "$basedir/node$exe" "$basedir/../semver/bin/semver.js" $args
17
- }
18
- $ret=$LASTEXITCODE
19
- } else {
20
- # Support pipeline input
21
- if ($MyInvocation.ExpectingInput) {
22
- $input | & "node$exe" "$basedir/../semver/bin/semver.js" $args
23
- } else {
24
- & "node$exe" "$basedir/../semver/bin/semver.js" $args
25
- }
26
- $ret=$LASTEXITCODE
27
- }
28
- exit $ret
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
node_modules/.bin/uuid DELETED
@@ -1,16 +0,0 @@
1
- #!/bin/sh
2
- basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
3
-
4
- case `uname` in
5
- *CYGWIN*|*MINGW*|*MSYS*)
6
- if command -v cygpath > /dev/null 2>&1; then
7
- basedir=`cygpath -w "$basedir"`
8
- fi
9
- ;;
10
- esac
11
-
12
- if [ -x "$basedir/node" ]; then
13
- exec "$basedir/node" "$basedir/../uuid/dist/bin/uuid" "$@"
14
- else
15
- exec node "$basedir/../uuid/dist/bin/uuid" "$@"
16
- fi
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
node_modules/.bin/uuid.cmd DELETED
@@ -1,17 +0,0 @@
1
- @ECHO off
2
- GOTO start
3
- :find_dp0
4
- SET dp0=%~dp0
5
- EXIT /b
6
- :start
7
- SETLOCAL
8
- CALL :find_dp0
9
-
10
- IF EXIST "%dp0%\node.exe" (
11
- SET "_prog=%dp0%\node.exe"
12
- ) ELSE (
13
- SET "_prog=node"
14
- SET PATHEXT=%PATHEXT:;.JS;=;%
15
- )
16
-
17
- endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\uuid\dist\bin\uuid" %*
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
node_modules/.bin/uuid.ps1 DELETED
@@ -1,28 +0,0 @@
1
- #!/usr/bin/env pwsh
2
- $basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent
3
-
4
- $exe=""
5
- if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) {
6
- # Fix case when both the Windows and Linux builds of Node
7
- # are installed in the same directory
8
- $exe=".exe"
9
- }
10
- $ret=0
11
- if (Test-Path "$basedir/node$exe") {
12
- # Support pipeline input
13
- if ($MyInvocation.ExpectingInput) {
14
- $input | & "$basedir/node$exe" "$basedir/../uuid/dist/bin/uuid" $args
15
- } else {
16
- & "$basedir/node$exe" "$basedir/../uuid/dist/bin/uuid" $args
17
- }
18
- $ret=$LASTEXITCODE
19
- } else {
20
- # Support pipeline input
21
- if ($MyInvocation.ExpectingInput) {
22
- $input | & "node$exe" "$basedir/../uuid/dist/bin/uuid" $args
23
- } else {
24
- & "node$exe" "$basedir/../uuid/dist/bin/uuid" $args
25
- }
26
- $ret=$LASTEXITCODE
27
- }
28
- exit $ret
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
node_modules/.package-lock.json DELETED
@@ -1,1809 +0,0 @@
1
- {
2
- "name": "backend",
3
- "version": "1.0.0",
4
- "lockfileVersion": 3,
5
- "requires": true,
6
- "packages": {
7
- "node_modules/@balena/dockerignore": {
8
- "version": "1.0.2",
9
- "resolved": "https://registry.npmjs.org/@balena/dockerignore/-/dockerignore-1.0.2.tgz",
10
- "integrity": "sha512-wMue2Sy4GAVTk6Ic4tJVcnfdau+gx2EnG7S+uAEe+TWJFqE4YoWN4/H8MSLj4eYJKxGg26lZwboEniNiNwZQ6Q==",
11
- "license": "Apache-2.0"
12
- },
13
- "node_modules/@grpc/grpc-js": {
14
- "version": "1.14.3",
15
- "resolved": "https://registry.npmjs.org/@grpc/grpc-js/-/grpc-js-1.14.3.tgz",
16
- "integrity": "sha512-Iq8QQQ/7X3Sac15oB6p0FmUg/klxQvXLeileoqrTRGJYLV+/9tubbr9ipz0GKHjmXVsgFPo/+W+2cA8eNcR+XA==",
17
- "license": "Apache-2.0",
18
- "dependencies": {
19
- "@grpc/proto-loader": "^0.8.0",
20
- "@js-sdsl/ordered-map": "^4.4.2"
21
- },
22
- "engines": {
23
- "node": ">=12.10.0"
24
- }
25
- },
26
- "node_modules/@grpc/grpc-js/node_modules/@grpc/proto-loader": {
27
- "version": "0.8.0",
28
- "resolved": "https://registry.npmjs.org/@grpc/proto-loader/-/proto-loader-0.8.0.tgz",
29
- "integrity": "sha512-rc1hOQtjIWGxcxpb9aHAfLpIctjEnsDehj0DAiVfBlmT84uvR0uUtN2hEi/ecvWVjXUGf5qPF4qEgiLOx1YIMQ==",
30
- "license": "Apache-2.0",
31
- "dependencies": {
32
- "lodash.camelcase": "^4.3.0",
33
- "long": "^5.0.0",
34
- "protobufjs": "^7.5.3",
35
- "yargs": "^17.7.2"
36
- },
37
- "bin": {
38
- "proto-loader-gen-types": "build/bin/proto-loader-gen-types.js"
39
- },
40
- "engines": {
41
- "node": ">=6"
42
- }
43
- },
44
- "node_modules/@grpc/proto-loader": {
45
- "version": "0.7.15",
46
- "resolved": "https://registry.npmjs.org/@grpc/proto-loader/-/proto-loader-0.7.15.tgz",
47
- "integrity": "sha512-tMXdRCfYVixjuFK+Hk0Q1s38gV9zDiDJfWL3h1rv4Qc39oILCu1TRTDt7+fGUI8K4G1Fj125Hx/ru3azECWTyQ==",
48
- "license": "Apache-2.0",
49
- "dependencies": {
50
- "lodash.camelcase": "^4.3.0",
51
- "long": "^5.0.0",
52
- "protobufjs": "^7.2.5",
53
- "yargs": "^17.7.2"
54
- },
55
- "bin": {
56
- "proto-loader-gen-types": "build/bin/proto-loader-gen-types.js"
57
- },
58
- "engines": {
59
- "node": ">=6"
60
- }
61
- },
62
- "node_modules/@js-sdsl/ordered-map": {
63
- "version": "4.4.2",
64
- "resolved": "https://registry.npmjs.org/@js-sdsl/ordered-map/-/ordered-map-4.4.2.tgz",
65
- "integrity": "sha512-iUKgm52T8HOE/makSxjqoWhe95ZJA1/G1sYsGev2JDKUSS14KAgg1LHb+Ba+IPow0xflbnSkOsZcO08C7w1gYw==",
66
- "license": "MIT",
67
- "funding": {
68
- "type": "opencollective",
69
- "url": "https://opencollective.com/js-sdsl"
70
- }
71
- },
72
- "node_modules/@protobufjs/aspromise": {
73
- "version": "1.1.2",
74
- "resolved": "https://registry.npmjs.org/@protobufjs/aspromise/-/aspromise-1.1.2.tgz",
75
- "integrity": "sha512-j+gKExEuLmKwvz3OgROXtrJ2UG2x8Ch2YZUxahh+s1F2HZ+wAceUNLkvy6zKCPVRkU++ZWQrdxsUeQXmcg4uoQ==",
76
- "license": "BSD-3-Clause"
77
- },
78
- "node_modules/@protobufjs/base64": {
79
- "version": "1.1.2",
80
- "resolved": "https://registry.npmjs.org/@protobufjs/base64/-/base64-1.1.2.tgz",
81
- "integrity": "sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg==",
82
- "license": "BSD-3-Clause"
83
- },
84
- "node_modules/@protobufjs/codegen": {
85
- "version": "2.0.4",
86
- "resolved": "https://registry.npmjs.org/@protobufjs/codegen/-/codegen-2.0.4.tgz",
87
- "integrity": "sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg==",
88
- "license": "BSD-3-Clause"
89
- },
90
- "node_modules/@protobufjs/eventemitter": {
91
- "version": "1.1.0",
92
- "resolved": "https://registry.npmjs.org/@protobufjs/eventemitter/-/eventemitter-1.1.0.tgz",
93
- "integrity": "sha512-j9ednRT81vYJ9OfVuXG6ERSTdEL1xVsNgqpkxMsbIabzSo3goCjDIveeGv5d03om39ML71RdmrGNjG5SReBP/Q==",
94
- "license": "BSD-3-Clause"
95
- },
96
- "node_modules/@protobufjs/fetch": {
97
- "version": "1.1.0",
98
- "resolved": "https://registry.npmjs.org/@protobufjs/fetch/-/fetch-1.1.0.tgz",
99
- "integrity": "sha512-lljVXpqXebpsijW71PZaCYeIcE5on1w5DlQy5WH6GLbFryLUrBD4932W/E2BSpfRJWseIL4v/KPgBFxDOIdKpQ==",
100
- "license": "BSD-3-Clause",
101
- "dependencies": {
102
- "@protobufjs/aspromise": "^1.1.1",
103
- "@protobufjs/inquire": "^1.1.0"
104
- }
105
- },
106
- "node_modules/@protobufjs/float": {
107
- "version": "1.0.2",
108
- "resolved": "https://registry.npmjs.org/@protobufjs/float/-/float-1.0.2.tgz",
109
- "integrity": "sha512-Ddb+kVXlXst9d+R9PfTIxh1EdNkgoRe5tOX6t01f1lYWOvJnSPDBlG241QLzcyPdoNTsblLUdujGSE4RzrTZGQ==",
110
- "license": "BSD-3-Clause"
111
- },
112
- "node_modules/@protobufjs/inquire": {
113
- "version": "1.1.0",
114
- "resolved": "https://registry.npmjs.org/@protobufjs/inquire/-/inquire-1.1.0.tgz",
115
- "integrity": "sha512-kdSefcPdruJiFMVSbn801t4vFK7KB/5gd2fYvrxhuJYg8ILrmn9SKSX2tZdV6V+ksulWqS7aXjBcRXl3wHoD9Q==",
116
- "license": "BSD-3-Clause"
117
- },
118
- "node_modules/@protobufjs/path": {
119
- "version": "1.1.2",
120
- "resolved": "https://registry.npmjs.org/@protobufjs/path/-/path-1.1.2.tgz",
121
- "integrity": "sha512-6JOcJ5Tm08dOHAbdR3GrvP+yUUfkjG5ePsHYczMFLq3ZmMkAD98cDgcT2iA1lJ9NVwFd4tH/iSSoe44YWkltEA==",
122
- "license": "BSD-3-Clause"
123
- },
124
- "node_modules/@protobufjs/pool": {
125
- "version": "1.1.0",
126
- "resolved": "https://registry.npmjs.org/@protobufjs/pool/-/pool-1.1.0.tgz",
127
- "integrity": "sha512-0kELaGSIDBKvcgS4zkjz1PeddatrjYcmMWOlAuAPwAeccUrPHdUqo/J6LiymHHEiJT5NrF1UVwxY14f+fy4WQw==",
128
- "license": "BSD-3-Clause"
129
- },
130
- "node_modules/@protobufjs/utf8": {
131
- "version": "1.1.0",
132
- "resolved": "https://registry.npmjs.org/@protobufjs/utf8/-/utf8-1.1.0.tgz",
133
- "integrity": "sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==",
134
- "license": "BSD-3-Clause"
135
- },
136
- "node_modules/@socket.io/component-emitter": {
137
- "version": "3.1.2",
138
- "resolved": "https://registry.npmjs.org/@socket.io/component-emitter/-/component-emitter-3.1.2.tgz",
139
- "integrity": "sha512-9BCxFwvbGg/RsZK9tjXd8s4UcwR0MWeFQ1XEKIQVVvAGJyINdrqKMcTRyLoK8Rse1GjzLV9cwjWV1olXRWEXVA==",
140
- "license": "MIT"
141
- },
142
- "node_modules/@types/cors": {
143
- "version": "2.8.19",
144
- "resolved": "https://registry.npmjs.org/@types/cors/-/cors-2.8.19.tgz",
145
- "integrity": "sha512-mFNylyeyqN93lfe/9CSxOGREz8cpzAhH+E93xJ4xWQf62V8sQ/24reV2nyzUWM6H6Xji+GGHpkbLe7pVoUEskg==",
146
- "license": "MIT",
147
- "dependencies": {
148
- "@types/node": "*"
149
- }
150
- },
151
- "node_modules/@types/node": {
152
- "version": "25.3.5",
153
- "resolved": "https://registry.npmjs.org/@types/node/-/node-25.3.5.tgz",
154
- "integrity": "sha512-oX8xrhvpiyRCQkG1MFchB09f+cXftgIXb3a7UUa4Y3wpmZPw5tyZGTLWhlESOLq1Rq6oDlc8npVU2/9xiCuXMA==",
155
- "license": "MIT",
156
- "dependencies": {
157
- "undici-types": "~7.18.0"
158
- }
159
- },
160
- "node_modules/accepts": {
161
- "version": "2.0.0",
162
- "resolved": "https://registry.npmjs.org/accepts/-/accepts-2.0.0.tgz",
163
- "integrity": "sha512-5cvg6CtKwfgdmVqY1WIiXKc3Q1bkRqGLi+2W/6ao+6Y7gu/RCwRuAhGEzh5B4KlszSuTLgZYuqFqo5bImjNKng==",
164
- "license": "MIT",
165
- "dependencies": {
166
- "mime-types": "^3.0.0",
167
- "negotiator": "^1.0.0"
168
- },
169
- "engines": {
170
- "node": ">= 0.6"
171
- }
172
- },
173
- "node_modules/ansi-regex": {
174
- "version": "5.0.1",
175
- "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
176
- "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
177
- "license": "MIT",
178
- "engines": {
179
- "node": ">=8"
180
- }
181
- },
182
- "node_modules/ansi-styles": {
183
- "version": "4.3.0",
184
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
185
- "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
186
- "license": "MIT",
187
- "dependencies": {
188
- "color-convert": "^2.0.1"
189
- },
190
- "engines": {
191
- "node": ">=8"
192
- },
193
- "funding": {
194
- "url": "https://github.com/chalk/ansi-styles?sponsor=1"
195
- }
196
- },
197
- "node_modules/asn1": {
198
- "version": "0.2.6",
199
- "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.6.tgz",
200
- "integrity": "sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ==",
201
- "license": "MIT",
202
- "dependencies": {
203
- "safer-buffer": "~2.1.0"
204
- }
205
- },
206
- "node_modules/base64-js": {
207
- "version": "1.5.1",
208
- "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz",
209
- "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==",
210
- "funding": [
211
- {
212
- "type": "github",
213
- "url": "https://github.com/sponsors/feross"
214
- },
215
- {
216
- "type": "patreon",
217
- "url": "https://www.patreon.com/feross"
218
- },
219
- {
220
- "type": "consulting",
221
- "url": "https://feross.org/support"
222
- }
223
- ],
224
- "license": "MIT"
225
- },
226
- "node_modules/base64id": {
227
- "version": "2.0.0",
228
- "resolved": "https://registry.npmjs.org/base64id/-/base64id-2.0.0.tgz",
229
- "integrity": "sha512-lGe34o6EHj9y3Kts9R4ZYs/Gr+6N7MCaMlIFA3F1R2O5/m7K06AxfSeO5530PEERE6/WyEg3lsuyw4GHlPZHog==",
230
- "license": "MIT",
231
- "engines": {
232
- "node": "^4.5.0 || >= 5.9"
233
- }
234
- },
235
- "node_modules/bcrypt-pbkdf": {
236
- "version": "1.0.2",
237
- "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz",
238
- "integrity": "sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w==",
239
- "license": "BSD-3-Clause",
240
- "dependencies": {
241
- "tweetnacl": "^0.14.3"
242
- }
243
- },
244
- "node_modules/bl": {
245
- "version": "4.1.0",
246
- "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz",
247
- "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==",
248
- "license": "MIT",
249
- "dependencies": {
250
- "buffer": "^5.5.0",
251
- "inherits": "^2.0.4",
252
- "readable-stream": "^3.4.0"
253
- }
254
- },
255
- "node_modules/body-parser": {
256
- "version": "2.2.2",
257
- "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-2.2.2.tgz",
258
- "integrity": "sha512-oP5VkATKlNwcgvxi0vM0p/D3n2C3EReYVX+DNYs5TjZFn/oQt2j+4sVJtSMr18pdRr8wjTcBl6LoV+FUwzPmNA==",
259
- "license": "MIT",
260
- "dependencies": {
261
- "bytes": "^3.1.2",
262
- "content-type": "^1.0.5",
263
- "debug": "^4.4.3",
264
- "http-errors": "^2.0.0",
265
- "iconv-lite": "^0.7.0",
266
- "on-finished": "^2.4.1",
267
- "qs": "^6.14.1",
268
- "raw-body": "^3.0.1",
269
- "type-is": "^2.0.1"
270
- },
271
- "engines": {
272
- "node": ">=18"
273
- },
274
- "funding": {
275
- "type": "opencollective",
276
- "url": "https://opencollective.com/express"
277
- }
278
- },
279
- "node_modules/buffer": {
280
- "version": "5.7.1",
281
- "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz",
282
- "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==",
283
- "funding": [
284
- {
285
- "type": "github",
286
- "url": "https://github.com/sponsors/feross"
287
- },
288
- {
289
- "type": "patreon",
290
- "url": "https://www.patreon.com/feross"
291
- },
292
- {
293
- "type": "consulting",
294
- "url": "https://feross.org/support"
295
- }
296
- ],
297
- "license": "MIT",
298
- "dependencies": {
299
- "base64-js": "^1.3.1",
300
- "ieee754": "^1.1.13"
301
- }
302
- },
303
- "node_modules/buffer-equal-constant-time": {
304
- "version": "1.0.1",
305
- "resolved": "https://registry.npmjs.org/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz",
306
- "integrity": "sha512-zRpUiDwd/xk6ADqPMATG8vc9VPrkck7T07OIx0gnjmJAnHnTVXNQG3vfvWNuiZIkwu9KrKdA1iJKfsfTVxE6NA==",
307
- "license": "BSD-3-Clause"
308
- },
309
- "node_modules/bytes": {
310
- "version": "3.1.2",
311
- "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz",
312
- "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==",
313
- "license": "MIT",
314
- "engines": {
315
- "node": ">= 0.8"
316
- }
317
- },
318
- "node_modules/call-bind-apply-helpers": {
319
- "version": "1.0.2",
320
- "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz",
321
- "integrity": "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==",
322
- "license": "MIT",
323
- "dependencies": {
324
- "es-errors": "^1.3.0",
325
- "function-bind": "^1.1.2"
326
- },
327
- "engines": {
328
- "node": ">= 0.4"
329
- }
330
- },
331
- "node_modules/call-bound": {
332
- "version": "1.0.4",
333
- "resolved": "https://registry.npmjs.org/call-bound/-/call-bound-1.0.4.tgz",
334
- "integrity": "sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==",
335
- "license": "MIT",
336
- "dependencies": {
337
- "call-bind-apply-helpers": "^1.0.2",
338
- "get-intrinsic": "^1.3.0"
339
- },
340
- "engines": {
341
- "node": ">= 0.4"
342
- },
343
- "funding": {
344
- "url": "https://github.com/sponsors/ljharb"
345
- }
346
- },
347
- "node_modules/chownr": {
348
- "version": "1.1.4",
349
- "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz",
350
- "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==",
351
- "license": "ISC"
352
- },
353
- "node_modules/cliui": {
354
- "version": "8.0.1",
355
- "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz",
356
- "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==",
357
- "license": "ISC",
358
- "dependencies": {
359
- "string-width": "^4.2.0",
360
- "strip-ansi": "^6.0.1",
361
- "wrap-ansi": "^7.0.0"
362
- },
363
- "engines": {
364
- "node": ">=12"
365
- }
366
- },
367
- "node_modules/color-convert": {
368
- "version": "2.0.1",
369
- "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
370
- "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
371
- "license": "MIT",
372
- "dependencies": {
373
- "color-name": "~1.1.4"
374
- },
375
- "engines": {
376
- "node": ">=7.0.0"
377
- }
378
- },
379
- "node_modules/color-name": {
380
- "version": "1.1.4",
381
- "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
382
- "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
383
- "license": "MIT"
384
- },
385
- "node_modules/content-disposition": {
386
- "version": "1.0.1",
387
- "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-1.0.1.tgz",
388
- "integrity": "sha512-oIXISMynqSqm241k6kcQ5UwttDILMK4BiurCfGEREw6+X9jkkpEe5T9FZaApyLGGOnFuyMWZpdolTXMtvEJ08Q==",
389
- "license": "MIT",
390
- "engines": {
391
- "node": ">=18"
392
- },
393
- "funding": {
394
- "type": "opencollective",
395
- "url": "https://opencollective.com/express"
396
- }
397
- },
398
- "node_modules/content-type": {
399
- "version": "1.0.5",
400
- "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz",
401
- "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==",
402
- "license": "MIT",
403
- "engines": {
404
- "node": ">= 0.6"
405
- }
406
- },
407
- "node_modules/cookie": {
408
- "version": "0.7.2",
409
- "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.7.2.tgz",
410
- "integrity": "sha512-yki5XnKuf750l50uGTllt6kKILY4nQ1eNIQatoXEByZ5dWgnKqbnqmTrBE5B4N7lrMJKQ2ytWMiTO2o0v6Ew/w==",
411
- "license": "MIT",
412
- "engines": {
413
- "node": ">= 0.6"
414
- }
415
- },
416
- "node_modules/cookie-signature": {
417
- "version": "1.2.2",
418
- "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.2.2.tgz",
419
- "integrity": "sha512-D76uU73ulSXrD1UXF4KE2TMxVVwhsnCgfAyTg9k8P6KGZjlXKrOLe4dJQKI3Bxi5wjesZoFXJWElNWBjPZMbhg==",
420
- "license": "MIT",
421
- "engines": {
422
- "node": ">=6.6.0"
423
- }
424
- },
425
- "node_modules/cors": {
426
- "version": "2.8.6",
427
- "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.6.tgz",
428
- "integrity": "sha512-tJtZBBHA6vjIAaF6EnIaq6laBBP9aq/Y3ouVJjEfoHbRBcHBAHYcMh/w8LDrk2PvIMMq8gmopa5D4V8RmbrxGw==",
429
- "license": "MIT",
430
- "dependencies": {
431
- "object-assign": "^4",
432
- "vary": "^1"
433
- },
434
- "engines": {
435
- "node": ">= 0.10"
436
- },
437
- "funding": {
438
- "type": "opencollective",
439
- "url": "https://opencollective.com/express"
440
- }
441
- },
442
- "node_modules/debug": {
443
- "version": "4.4.3",
444
- "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz",
445
- "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==",
446
- "license": "MIT",
447
- "dependencies": {
448
- "ms": "^2.1.3"
449
- },
450
- "engines": {
451
- "node": ">=6.0"
452
- },
453
- "peerDependenciesMeta": {
454
- "supports-color": {
455
- "optional": true
456
- }
457
- }
458
- },
459
- "node_modules/depd": {
460
- "version": "2.0.0",
461
- "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz",
462
- "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==",
463
- "license": "MIT",
464
- "engines": {
465
- "node": ">= 0.8"
466
- }
467
- },
468
- "node_modules/docker-modem": {
469
- "version": "5.0.6",
470
- "resolved": "https://registry.npmjs.org/docker-modem/-/docker-modem-5.0.6.tgz",
471
- "integrity": "sha512-ens7BiayssQz/uAxGzH8zGXCtiV24rRWXdjNha5V4zSOcxmAZsfGVm/PPFbwQdqEkDnhG+SyR9E3zSHUbOKXBQ==",
472
- "license": "Apache-2.0",
473
- "dependencies": {
474
- "debug": "^4.1.1",
475
- "readable-stream": "^3.5.0",
476
- "split-ca": "^1.0.1",
477
- "ssh2": "^1.15.0"
478
- },
479
- "engines": {
480
- "node": ">= 8.0"
481
- }
482
- },
483
- "node_modules/dockerode": {
484
- "version": "4.0.9",
485
- "resolved": "https://registry.npmjs.org/dockerode/-/dockerode-4.0.9.tgz",
486
- "integrity": "sha512-iND4mcOWhPaCNh54WmK/KoSb35AFqPAUWFMffTQcp52uQt36b5uNwEJTSXntJZBbeGad72Crbi/hvDIv6us/6Q==",
487
- "license": "Apache-2.0",
488
- "dependencies": {
489
- "@balena/dockerignore": "^1.0.2",
490
- "@grpc/grpc-js": "^1.11.1",
491
- "@grpc/proto-loader": "^0.7.13",
492
- "docker-modem": "^5.0.6",
493
- "protobufjs": "^7.3.2",
494
- "tar-fs": "^2.1.4",
495
- "uuid": "^10.0.0"
496
- },
497
- "engines": {
498
- "node": ">= 8.0"
499
- }
500
- },
501
- "node_modules/dotenv": {
502
- "version": "17.3.1",
503
- "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-17.3.1.tgz",
504
- "integrity": "sha512-IO8C/dzEb6O3F9/twg6ZLXz164a2fhTnEWb95H23Dm4OuN+92NmEAlTrupP9VW6Jm3sO26tQlqyvyi4CsnY9GA==",
505
- "license": "BSD-2-Clause",
506
- "engines": {
507
- "node": ">=12"
508
- },
509
- "funding": {
510
- "url": "https://dotenvx.com"
511
- }
512
- },
513
- "node_modules/dunder-proto": {
514
- "version": "1.0.1",
515
- "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz",
516
- "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==",
517
- "license": "MIT",
518
- "dependencies": {
519
- "call-bind-apply-helpers": "^1.0.1",
520
- "es-errors": "^1.3.0",
521
- "gopd": "^1.2.0"
522
- },
523
- "engines": {
524
- "node": ">= 0.4"
525
- }
526
- },
527
- "node_modules/ecdsa-sig-formatter": {
528
- "version": "1.0.11",
529
- "resolved": "https://registry.npmjs.org/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.11.tgz",
530
- "integrity": "sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ==",
531
- "license": "Apache-2.0",
532
- "dependencies": {
533
- "safe-buffer": "^5.0.1"
534
- }
535
- },
536
- "node_modules/ee-first": {
537
- "version": "1.1.1",
538
- "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz",
539
- "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==",
540
- "license": "MIT"
541
- },
542
- "node_modules/emoji-regex": {
543
- "version": "8.0.0",
544
- "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
545
- "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
546
- "license": "MIT"
547
- },
548
- "node_modules/encodeurl": {
549
- "version": "2.0.0",
550
- "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-2.0.0.tgz",
551
- "integrity": "sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==",
552
- "license": "MIT",
553
- "engines": {
554
- "node": ">= 0.8"
555
- }
556
- },
557
- "node_modules/end-of-stream": {
558
- "version": "1.4.5",
559
- "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.5.tgz",
560
- "integrity": "sha512-ooEGc6HP26xXq/N+GCGOT0JKCLDGrq2bQUZrQ7gyrJiZANJ/8YDTxTpQBXGMn+WbIQXNVpyWymm7KYVICQnyOg==",
561
- "license": "MIT",
562
- "dependencies": {
563
- "once": "^1.4.0"
564
- }
565
- },
566
- "node_modules/engine.io": {
567
- "version": "6.6.5",
568
- "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-6.6.5.tgz",
569
- "integrity": "sha512-2RZdgEbXmp5+dVbRm0P7HQUImZpICccJy7rN7Tv+SFa55pH+lxnuw6/K1ZxxBfHoYpSkHLAO92oa8O4SwFXA2A==",
570
- "license": "MIT",
571
- "dependencies": {
572
- "@types/cors": "^2.8.12",
573
- "@types/node": ">=10.0.0",
574
- "accepts": "~1.3.4",
575
- "base64id": "2.0.0",
576
- "cookie": "~0.7.2",
577
- "cors": "~2.8.5",
578
- "debug": "~4.4.1",
579
- "engine.io-parser": "~5.2.1",
580
- "ws": "~8.18.3"
581
- },
582
- "engines": {
583
- "node": ">=10.2.0"
584
- }
585
- },
586
- "node_modules/engine.io-parser": {
587
- "version": "5.2.3",
588
- "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-5.2.3.tgz",
589
- "integrity": "sha512-HqD3yTBfnBxIrbnM1DoD6Pcq8NECnh8d4As1Qgh0z5Gg3jRRIqijury0CL3ghu/edArpUYiYqQiDUQBIs4np3Q==",
590
- "license": "MIT",
591
- "engines": {
592
- "node": ">=10.0.0"
593
- }
594
- },
595
- "node_modules/engine.io/node_modules/accepts": {
596
- "version": "1.3.8",
597
- "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz",
598
- "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==",
599
- "license": "MIT",
600
- "dependencies": {
601
- "mime-types": "~2.1.34",
602
- "negotiator": "0.6.3"
603
- },
604
- "engines": {
605
- "node": ">= 0.6"
606
- }
607
- },
608
- "node_modules/engine.io/node_modules/mime-db": {
609
- "version": "1.52.0",
610
- "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz",
611
- "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==",
612
- "license": "MIT",
613
- "engines": {
614
- "node": ">= 0.6"
615
- }
616
- },
617
- "node_modules/engine.io/node_modules/mime-types": {
618
- "version": "2.1.35",
619
- "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz",
620
- "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==",
621
- "license": "MIT",
622
- "dependencies": {
623
- "mime-db": "1.52.0"
624
- },
625
- "engines": {
626
- "node": ">= 0.6"
627
- }
628
- },
629
- "node_modules/engine.io/node_modules/negotiator": {
630
- "version": "0.6.3",
631
- "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz",
632
- "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==",
633
- "license": "MIT",
634
- "engines": {
635
- "node": ">= 0.6"
636
- }
637
- },
638
- "node_modules/es-define-property": {
639
- "version": "1.0.1",
640
- "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz",
641
- "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==",
642
- "license": "MIT",
643
- "engines": {
644
- "node": ">= 0.4"
645
- }
646
- },
647
- "node_modules/es-errors": {
648
- "version": "1.3.0",
649
- "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz",
650
- "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==",
651
- "license": "MIT",
652
- "engines": {
653
- "node": ">= 0.4"
654
- }
655
- },
656
- "node_modules/es-object-atoms": {
657
- "version": "1.1.1",
658
- "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.1.tgz",
659
- "integrity": "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==",
660
- "license": "MIT",
661
- "dependencies": {
662
- "es-errors": "^1.3.0"
663
- },
664
- "engines": {
665
- "node": ">= 0.4"
666
- }
667
- },
668
- "node_modules/escalade": {
669
- "version": "3.2.0",
670
- "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz",
671
- "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==",
672
- "license": "MIT",
673
- "engines": {
674
- "node": ">=6"
675
- }
676
- },
677
- "node_modules/escape-html": {
678
- "version": "1.0.3",
679
- "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz",
680
- "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==",
681
- "license": "MIT"
682
- },
683
- "node_modules/etag": {
684
- "version": "1.8.1",
685
- "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz",
686
- "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==",
687
- "license": "MIT",
688
- "engines": {
689
- "node": ">= 0.6"
690
- }
691
- },
692
- "node_modules/express": {
693
- "version": "5.2.1",
694
- "resolved": "https://registry.npmjs.org/express/-/express-5.2.1.tgz",
695
- "integrity": "sha512-hIS4idWWai69NezIdRt2xFVofaF4j+6INOpJlVOLDO8zXGpUVEVzIYk12UUi2JzjEzWL3IOAxcTubgz9Po0yXw==",
696
- "license": "MIT",
697
- "dependencies": {
698
- "accepts": "^2.0.0",
699
- "body-parser": "^2.2.1",
700
- "content-disposition": "^1.0.0",
701
- "content-type": "^1.0.5",
702
- "cookie": "^0.7.1",
703
- "cookie-signature": "^1.2.1",
704
- "debug": "^4.4.0",
705
- "depd": "^2.0.0",
706
- "encodeurl": "^2.0.0",
707
- "escape-html": "^1.0.3",
708
- "etag": "^1.8.1",
709
- "finalhandler": "^2.1.0",
710
- "fresh": "^2.0.0",
711
- "http-errors": "^2.0.0",
712
- "merge-descriptors": "^2.0.0",
713
- "mime-types": "^3.0.0",
714
- "on-finished": "^2.4.1",
715
- "once": "^1.4.0",
716
- "parseurl": "^1.3.3",
717
- "proxy-addr": "^2.0.7",
718
- "qs": "^6.14.0",
719
- "range-parser": "^1.2.1",
720
- "router": "^2.2.0",
721
- "send": "^1.1.0",
722
- "serve-static": "^2.2.0",
723
- "statuses": "^2.0.1",
724
- "type-is": "^2.0.1",
725
- "vary": "^1.1.2"
726
- },
727
- "engines": {
728
- "node": ">= 18"
729
- },
730
- "funding": {
731
- "type": "opencollective",
732
- "url": "https://opencollective.com/express"
733
- }
734
- },
735
- "node_modules/finalhandler": {
736
- "version": "2.1.1",
737
- "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-2.1.1.tgz",
738
- "integrity": "sha512-S8KoZgRZN+a5rNwqTxlZZePjT/4cnm0ROV70LedRHZ0p8u9fRID0hJUZQpkKLzro8LfmC8sx23bY6tVNxv8pQA==",
739
- "license": "MIT",
740
- "dependencies": {
741
- "debug": "^4.4.0",
742
- "encodeurl": "^2.0.0",
743
- "escape-html": "^1.0.3",
744
- "on-finished": "^2.4.1",
745
- "parseurl": "^1.3.3",
746
- "statuses": "^2.0.1"
747
- },
748
- "engines": {
749
- "node": ">= 18.0.0"
750
- },
751
- "funding": {
752
- "type": "opencollective",
753
- "url": "https://opencollective.com/express"
754
- }
755
- },
756
- "node_modules/forwarded": {
757
- "version": "0.2.0",
758
- "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz",
759
- "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==",
760
- "license": "MIT",
761
- "engines": {
762
- "node": ">= 0.6"
763
- }
764
- },
765
- "node_modules/fresh": {
766
- "version": "2.0.0",
767
- "resolved": "https://registry.npmjs.org/fresh/-/fresh-2.0.0.tgz",
768
- "integrity": "sha512-Rx/WycZ60HOaqLKAi6cHRKKI7zxWbJ31MhntmtwMoaTeF7XFH9hhBp8vITaMidfljRQ6eYWCKkaTK+ykVJHP2A==",
769
- "license": "MIT",
770
- "engines": {
771
- "node": ">= 0.8"
772
- }
773
- },
774
- "node_modules/fs-constants": {
775
- "version": "1.0.0",
776
- "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz",
777
- "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==",
778
- "license": "MIT"
779
- },
780
- "node_modules/function-bind": {
781
- "version": "1.1.2",
782
- "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz",
783
- "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==",
784
- "license": "MIT",
785
- "funding": {
786
- "url": "https://github.com/sponsors/ljharb"
787
- }
788
- },
789
- "node_modules/get-caller-file": {
790
- "version": "2.0.5",
791
- "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz",
792
- "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==",
793
- "license": "ISC",
794
- "engines": {
795
- "node": "6.* || 8.* || >= 10.*"
796
- }
797
- },
798
- "node_modules/get-intrinsic": {
799
- "version": "1.3.0",
800
- "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz",
801
- "integrity": "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==",
802
- "license": "MIT",
803
- "dependencies": {
804
- "call-bind-apply-helpers": "^1.0.2",
805
- "es-define-property": "^1.0.1",
806
- "es-errors": "^1.3.0",
807
- "es-object-atoms": "^1.1.1",
808
- "function-bind": "^1.1.2",
809
- "get-proto": "^1.0.1",
810
- "gopd": "^1.2.0",
811
- "has-symbols": "^1.1.0",
812
- "hasown": "^2.0.2",
813
- "math-intrinsics": "^1.1.0"
814
- },
815
- "engines": {
816
- "node": ">= 0.4"
817
- },
818
- "funding": {
819
- "url": "https://github.com/sponsors/ljharb"
820
- }
821
- },
822
- "node_modules/get-proto": {
823
- "version": "1.0.1",
824
- "resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz",
825
- "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==",
826
- "license": "MIT",
827
- "dependencies": {
828
- "dunder-proto": "^1.0.1",
829
- "es-object-atoms": "^1.0.0"
830
- },
831
- "engines": {
832
- "node": ">= 0.4"
833
- }
834
- },
835
- "node_modules/gopd": {
836
- "version": "1.2.0",
837
- "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz",
838
- "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==",
839
- "license": "MIT",
840
- "engines": {
841
- "node": ">= 0.4"
842
- },
843
- "funding": {
844
- "url": "https://github.com/sponsors/ljharb"
845
- }
846
- },
847
- "node_modules/has-symbols": {
848
- "version": "1.1.0",
849
- "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz",
850
- "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==",
851
- "license": "MIT",
852
- "engines": {
853
- "node": ">= 0.4"
854
- },
855
- "funding": {
856
- "url": "https://github.com/sponsors/ljharb"
857
- }
858
- },
859
- "node_modules/hasown": {
860
- "version": "2.0.2",
861
- "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz",
862
- "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==",
863
- "license": "MIT",
864
- "dependencies": {
865
- "function-bind": "^1.1.2"
866
- },
867
- "engines": {
868
- "node": ">= 0.4"
869
- }
870
- },
871
- "node_modules/http-errors": {
872
- "version": "2.0.1",
873
- "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.1.tgz",
874
- "integrity": "sha512-4FbRdAX+bSdmo4AUFuS0WNiPz8NgFt+r8ThgNWmlrjQjt1Q7ZR9+zTlce2859x4KSXrwIsaeTqDoKQmtP8pLmQ==",
875
- "license": "MIT",
876
- "dependencies": {
877
- "depd": "~2.0.0",
878
- "inherits": "~2.0.4",
879
- "setprototypeof": "~1.2.0",
880
- "statuses": "~2.0.2",
881
- "toidentifier": "~1.0.1"
882
- },
883
- "engines": {
884
- "node": ">= 0.8"
885
- },
886
- "funding": {
887
- "type": "opencollective",
888
- "url": "https://opencollective.com/express"
889
- }
890
- },
891
- "node_modules/iconv-lite": {
892
- "version": "0.7.2",
893
- "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.7.2.tgz",
894
- "integrity": "sha512-im9DjEDQ55s9fL4EYzOAv0yMqmMBSZp6G0VvFyTMPKWxiSBHUj9NW/qqLmXUwXrrM7AvqSlTCfvqRb0cM8yYqw==",
895
- "license": "MIT",
896
- "dependencies": {
897
- "safer-buffer": ">= 2.1.2 < 3.0.0"
898
- },
899
- "engines": {
900
- "node": ">=0.10.0"
901
- },
902
- "funding": {
903
- "type": "opencollective",
904
- "url": "https://opencollective.com/express"
905
- }
906
- },
907
- "node_modules/ieee754": {
908
- "version": "1.2.1",
909
- "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz",
910
- "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==",
911
- "funding": [
912
- {
913
- "type": "github",
914
- "url": "https://github.com/sponsors/feross"
915
- },
916
- {
917
- "type": "patreon",
918
- "url": "https://www.patreon.com/feross"
919
- },
920
- {
921
- "type": "consulting",
922
- "url": "https://feross.org/support"
923
- }
924
- ],
925
- "license": "BSD-3-Clause"
926
- },
927
- "node_modules/inherits": {
928
- "version": "2.0.4",
929
- "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
930
- "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==",
931
- "license": "ISC"
932
- },
933
- "node_modules/ipaddr.js": {
934
- "version": "1.9.1",
935
- "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz",
936
- "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==",
937
- "license": "MIT",
938
- "engines": {
939
- "node": ">= 0.10"
940
- }
941
- },
942
- "node_modules/is-fullwidth-code-point": {
943
- "version": "3.0.0",
944
- "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
945
- "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
946
- "license": "MIT",
947
- "engines": {
948
- "node": ">=8"
949
- }
950
- },
951
- "node_modules/is-promise": {
952
- "version": "4.0.0",
953
- "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-4.0.0.tgz",
954
- "integrity": "sha512-hvpoI6korhJMnej285dSg6nu1+e6uxs7zG3BYAm5byqDsgJNWwxzM6z6iZiAgQR4TJ30JmBTOwqZUw3WlyH3AQ==",
955
- "license": "MIT"
956
- },
957
- "node_modules/jsonwebtoken": {
958
- "version": "9.0.3",
959
- "resolved": "https://registry.npmjs.org/jsonwebtoken/-/jsonwebtoken-9.0.3.tgz",
960
- "integrity": "sha512-MT/xP0CrubFRNLNKvxJ2BYfy53Zkm++5bX9dtuPbqAeQpTVe0MQTFhao8+Cp//EmJp244xt6Drw/GVEGCUj40g==",
961
- "license": "MIT",
962
- "dependencies": {
963
- "jws": "^4.0.1",
964
- "lodash.includes": "^4.3.0",
965
- "lodash.isboolean": "^3.0.3",
966
- "lodash.isinteger": "^4.0.4",
967
- "lodash.isnumber": "^3.0.3",
968
- "lodash.isplainobject": "^4.0.6",
969
- "lodash.isstring": "^4.0.1",
970
- "lodash.once": "^4.0.0",
971
- "ms": "^2.1.1",
972
- "semver": "^7.5.4"
973
- },
974
- "engines": {
975
- "node": ">=12",
976
- "npm": ">=6"
977
- }
978
- },
979
- "node_modules/jwa": {
980
- "version": "2.0.1",
981
- "resolved": "https://registry.npmjs.org/jwa/-/jwa-2.0.1.tgz",
982
- "integrity": "sha512-hRF04fqJIP8Abbkq5NKGN0Bbr3JxlQ+qhZufXVr0DvujKy93ZCbXZMHDL4EOtodSbCWxOqR8MS1tXA5hwqCXDg==",
983
- "license": "MIT",
984
- "dependencies": {
985
- "buffer-equal-constant-time": "^1.0.1",
986
- "ecdsa-sig-formatter": "1.0.11",
987
- "safe-buffer": "^5.0.1"
988
- }
989
- },
990
- "node_modules/jws": {
991
- "version": "4.0.1",
992
- "resolved": "https://registry.npmjs.org/jws/-/jws-4.0.1.tgz",
993
- "integrity": "sha512-EKI/M/yqPncGUUh44xz0PxSidXFr/+r0pA70+gIYhjv+et7yxM+s29Y+VGDkovRofQem0fs7Uvf4+YmAdyRduA==",
994
- "license": "MIT",
995
- "dependencies": {
996
- "jwa": "^2.0.1",
997
- "safe-buffer": "^5.0.1"
998
- }
999
- },
1000
- "node_modules/lodash.camelcase": {
1001
- "version": "4.3.0",
1002
- "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz",
1003
- "integrity": "sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==",
1004
- "license": "MIT"
1005
- },
1006
- "node_modules/lodash.includes": {
1007
- "version": "4.3.0",
1008
- "resolved": "https://registry.npmjs.org/lodash.includes/-/lodash.includes-4.3.0.tgz",
1009
- "integrity": "sha512-W3Bx6mdkRTGtlJISOvVD/lbqjTlPPUDTMnlXZFnVwi9NKJ6tiAk6LVdlhZMm17VZisqhKcgzpO5Wz91PCt5b0w==",
1010
- "license": "MIT"
1011
- },
1012
- "node_modules/lodash.isboolean": {
1013
- "version": "3.0.3",
1014
- "resolved": "https://registry.npmjs.org/lodash.isboolean/-/lodash.isboolean-3.0.3.tgz",
1015
- "integrity": "sha512-Bz5mupy2SVbPHURB98VAcw+aHh4vRV5IPNhILUCsOzRmsTmSQ17jIuqopAentWoehktxGd9e/hbIXq980/1QJg==",
1016
- "license": "MIT"
1017
- },
1018
- "node_modules/lodash.isinteger": {
1019
- "version": "4.0.4",
1020
- "resolved": "https://registry.npmjs.org/lodash.isinteger/-/lodash.isinteger-4.0.4.tgz",
1021
- "integrity": "sha512-DBwtEWN2caHQ9/imiNeEA5ys1JoRtRfY3d7V9wkqtbycnAmTvRRmbHKDV4a0EYc678/dia0jrte4tjYwVBaZUA==",
1022
- "license": "MIT"
1023
- },
1024
- "node_modules/lodash.isnumber": {
1025
- "version": "3.0.3",
1026
- "resolved": "https://registry.npmjs.org/lodash.isnumber/-/lodash.isnumber-3.0.3.tgz",
1027
- "integrity": "sha512-QYqzpfwO3/CWf3XP+Z+tkQsfaLL/EnUlXWVkIk5FUPc4sBdTehEqZONuyRt2P67PXAk+NXmTBcc97zw9t1FQrw==",
1028
- "license": "MIT"
1029
- },
1030
- "node_modules/lodash.isplainobject": {
1031
- "version": "4.0.6",
1032
- "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz",
1033
- "integrity": "sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==",
1034
- "license": "MIT"
1035
- },
1036
- "node_modules/lodash.isstring": {
1037
- "version": "4.0.1",
1038
- "resolved": "https://registry.npmjs.org/lodash.isstring/-/lodash.isstring-4.0.1.tgz",
1039
- "integrity": "sha512-0wJxfxH1wgO3GrbuP+dTTk7op+6L41QCXbGINEmD+ny/G/eCqGzxyCsh7159S+mgDDcoarnBw6PC1PS5+wUGgw==",
1040
- "license": "MIT"
1041
- },
1042
- "node_modules/lodash.once": {
1043
- "version": "4.1.1",
1044
- "resolved": "https://registry.npmjs.org/lodash.once/-/lodash.once-4.1.1.tgz",
1045
- "integrity": "sha512-Sb487aTOCr9drQVL8pIxOzVhafOjZN9UU54hiN8PU3uAiSV7lx1yYNpbNmex2PK6dSJoNTSJUUswT651yww3Mg==",
1046
- "license": "MIT"
1047
- },
1048
- "node_modules/long": {
1049
- "version": "5.3.2",
1050
- "resolved": "https://registry.npmjs.org/long/-/long-5.3.2.tgz",
1051
- "integrity": "sha512-mNAgZ1GmyNhD7AuqnTG3/VQ26o760+ZYBPKjPvugO8+nLbYfX6TVpJPseBvopbdY+qpZ/lKUnmEc1LeZYS3QAA==",
1052
- "license": "Apache-2.0"
1053
- },
1054
- "node_modules/math-intrinsics": {
1055
- "version": "1.1.0",
1056
- "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz",
1057
- "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==",
1058
- "license": "MIT",
1059
- "engines": {
1060
- "node": ">= 0.4"
1061
- }
1062
- },
1063
- "node_modules/media-typer": {
1064
- "version": "1.1.0",
1065
- "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-1.1.0.tgz",
1066
- "integrity": "sha512-aisnrDP4GNe06UcKFnV5bfMNPBUw4jsLGaWwWfnH3v02GnBuXX2MCVn5RbrWo0j3pczUilYblq7fQ7Nw2t5XKw==",
1067
- "license": "MIT",
1068
- "engines": {
1069
- "node": ">= 0.8"
1070
- }
1071
- },
1072
- "node_modules/merge-descriptors": {
1073
- "version": "2.0.0",
1074
- "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-2.0.0.tgz",
1075
- "integrity": "sha512-Snk314V5ayFLhp3fkUREub6WtjBfPdCPY1Ln8/8munuLuiYhsABgBVWsozAG+MWMbVEvcdcpbi9R7ww22l9Q3g==",
1076
- "license": "MIT",
1077
- "engines": {
1078
- "node": ">=18"
1079
- },
1080
- "funding": {
1081
- "url": "https://github.com/sponsors/sindresorhus"
1082
- }
1083
- },
1084
- "node_modules/mime-db": {
1085
- "version": "1.54.0",
1086
- "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.54.0.tgz",
1087
- "integrity": "sha512-aU5EJuIN2WDemCcAp2vFBfp/m4EAhWJnUNSSw0ixs7/kXbd6Pg64EmwJkNdFhB8aWt1sH2CTXrLxo/iAGV3oPQ==",
1088
- "license": "MIT",
1089
- "engines": {
1090
- "node": ">= 0.6"
1091
- }
1092
- },
1093
- "node_modules/mime-types": {
1094
- "version": "3.0.2",
1095
- "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-3.0.2.tgz",
1096
- "integrity": "sha512-Lbgzdk0h4juoQ9fCKXW4by0UJqj+nOOrI9MJ1sSj4nI8aI2eo1qmvQEie4VD1glsS250n15LsWsYtCugiStS5A==",
1097
- "license": "MIT",
1098
- "dependencies": {
1099
- "mime-db": "^1.54.0"
1100
- },
1101
- "engines": {
1102
- "node": ">=18"
1103
- },
1104
- "funding": {
1105
- "type": "opencollective",
1106
- "url": "https://opencollective.com/express"
1107
- }
1108
- },
1109
- "node_modules/mkdirp-classic": {
1110
- "version": "0.5.3",
1111
- "resolved": "https://registry.npmjs.org/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz",
1112
- "integrity": "sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==",
1113
- "license": "MIT"
1114
- },
1115
- "node_modules/ms": {
1116
- "version": "2.1.3",
1117
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
1118
- "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==",
1119
- "license": "MIT"
1120
- },
1121
- "node_modules/negotiator": {
1122
- "version": "1.0.0",
1123
- "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-1.0.0.tgz",
1124
- "integrity": "sha512-8Ofs/AUQh8MaEcrlq5xOX0CQ9ypTF5dl78mjlMNfOK08fzpgTHQRQPBxcPlEtIw0yRpws+Zo/3r+5WRby7u3Gg==",
1125
- "license": "MIT",
1126
- "engines": {
1127
- "node": ">= 0.6"
1128
- }
1129
- },
1130
- "node_modules/object-assign": {
1131
- "version": "4.1.1",
1132
- "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
1133
- "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==",
1134
- "license": "MIT",
1135
- "engines": {
1136
- "node": ">=0.10.0"
1137
- }
1138
- },
1139
- "node_modules/object-inspect": {
1140
- "version": "1.13.4",
1141
- "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.4.tgz",
1142
- "integrity": "sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==",
1143
- "license": "MIT",
1144
- "engines": {
1145
- "node": ">= 0.4"
1146
- },
1147
- "funding": {
1148
- "url": "https://github.com/sponsors/ljharb"
1149
- }
1150
- },
1151
- "node_modules/on-finished": {
1152
- "version": "2.4.1",
1153
- "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz",
1154
- "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==",
1155
- "license": "MIT",
1156
- "dependencies": {
1157
- "ee-first": "1.1.1"
1158
- },
1159
- "engines": {
1160
- "node": ">= 0.8"
1161
- }
1162
- },
1163
- "node_modules/once": {
1164
- "version": "1.4.0",
1165
- "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
1166
- "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==",
1167
- "license": "ISC",
1168
- "dependencies": {
1169
- "wrappy": "1"
1170
- }
1171
- },
1172
- "node_modules/parseurl": {
1173
- "version": "1.3.3",
1174
- "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz",
1175
- "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==",
1176
- "license": "MIT",
1177
- "engines": {
1178
- "node": ">= 0.8"
1179
- }
1180
- },
1181
- "node_modules/path-to-regexp": {
1182
- "version": "8.3.0",
1183
- "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-8.3.0.tgz",
1184
- "integrity": "sha512-7jdwVIRtsP8MYpdXSwOS0YdD0Du+qOoF/AEPIt88PcCFrZCzx41oxku1jD88hZBwbNUIEfpqvuhjFaMAqMTWnA==",
1185
- "license": "MIT",
1186
- "funding": {
1187
- "type": "opencollective",
1188
- "url": "https://opencollective.com/express"
1189
- }
1190
- },
1191
- "node_modules/protobufjs": {
1192
- "version": "7.5.4",
1193
- "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-7.5.4.tgz",
1194
- "integrity": "sha512-CvexbZtbov6jW2eXAvLukXjXUW1TzFaivC46BpWc/3BpcCysb5Vffu+B3XHMm8lVEuy2Mm4XGex8hBSg1yapPg==",
1195
- "hasInstallScript": true,
1196
- "license": "BSD-3-Clause",
1197
- "dependencies": {
1198
- "@protobufjs/aspromise": "^1.1.2",
1199
- "@protobufjs/base64": "^1.1.2",
1200
- "@protobufjs/codegen": "^2.0.4",
1201
- "@protobufjs/eventemitter": "^1.1.0",
1202
- "@protobufjs/fetch": "^1.1.0",
1203
- "@protobufjs/float": "^1.0.2",
1204
- "@protobufjs/inquire": "^1.1.0",
1205
- "@protobufjs/path": "^1.1.2",
1206
- "@protobufjs/pool": "^1.1.0",
1207
- "@protobufjs/utf8": "^1.1.0",
1208
- "@types/node": ">=13.7.0",
1209
- "long": "^5.0.0"
1210
- },
1211
- "engines": {
1212
- "node": ">=12.0.0"
1213
- }
1214
- },
1215
- "node_modules/proxy-addr": {
1216
- "version": "2.0.7",
1217
- "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz",
1218
- "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==",
1219
- "license": "MIT",
1220
- "dependencies": {
1221
- "forwarded": "0.2.0",
1222
- "ipaddr.js": "1.9.1"
1223
- },
1224
- "engines": {
1225
- "node": ">= 0.10"
1226
- }
1227
- },
1228
- "node_modules/pump": {
1229
- "version": "3.0.4",
1230
- "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.4.tgz",
1231
- "integrity": "sha512-VS7sjc6KR7e1ukRFhQSY5LM2uBWAUPiOPa/A3mkKmiMwSmRFUITt0xuj+/lesgnCv+dPIEYlkzrcyXgquIHMcA==",
1232
- "license": "MIT",
1233
- "dependencies": {
1234
- "end-of-stream": "^1.1.0",
1235
- "once": "^1.3.1"
1236
- }
1237
- },
1238
- "node_modules/qs": {
1239
- "version": "6.15.0",
1240
- "resolved": "https://registry.npmjs.org/qs/-/qs-6.15.0.tgz",
1241
- "integrity": "sha512-mAZTtNCeetKMH+pSjrb76NAM8V9a05I9aBZOHztWy/UqcJdQYNsf59vrRKWnojAT9Y+GbIvoTBC++CPHqpDBhQ==",
1242
- "license": "BSD-3-Clause",
1243
- "dependencies": {
1244
- "side-channel": "^1.1.0"
1245
- },
1246
- "engines": {
1247
- "node": ">=0.6"
1248
- },
1249
- "funding": {
1250
- "url": "https://github.com/sponsors/ljharb"
1251
- }
1252
- },
1253
- "node_modules/range-parser": {
1254
- "version": "1.2.1",
1255
- "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz",
1256
- "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==",
1257
- "license": "MIT",
1258
- "engines": {
1259
- "node": ">= 0.6"
1260
- }
1261
- },
1262
- "node_modules/raw-body": {
1263
- "version": "3.0.2",
1264
- "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-3.0.2.tgz",
1265
- "integrity": "sha512-K5zQjDllxWkf7Z5xJdV0/B0WTNqx6vxG70zJE4N0kBs4LovmEYWJzQGxC9bS9RAKu3bgM40lrd5zoLJ12MQ5BA==",
1266
- "license": "MIT",
1267
- "dependencies": {
1268
- "bytes": "~3.1.2",
1269
- "http-errors": "~2.0.1",
1270
- "iconv-lite": "~0.7.0",
1271
- "unpipe": "~1.0.0"
1272
- },
1273
- "engines": {
1274
- "node": ">= 0.10"
1275
- }
1276
- },
1277
- "node_modules/readable-stream": {
1278
- "version": "3.6.2",
1279
- "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz",
1280
- "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==",
1281
- "license": "MIT",
1282
- "dependencies": {
1283
- "inherits": "^2.0.3",
1284
- "string_decoder": "^1.1.1",
1285
- "util-deprecate": "^1.0.1"
1286
- },
1287
- "engines": {
1288
- "node": ">= 6"
1289
- }
1290
- },
1291
- "node_modules/require-directory": {
1292
- "version": "2.1.1",
1293
- "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz",
1294
- "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==",
1295
- "license": "MIT",
1296
- "engines": {
1297
- "node": ">=0.10.0"
1298
- }
1299
- },
1300
- "node_modules/router": {
1301
- "version": "2.2.0",
1302
- "resolved": "https://registry.npmjs.org/router/-/router-2.2.0.tgz",
1303
- "integrity": "sha512-nLTrUKm2UyiL7rlhapu/Zl45FwNgkZGaCpZbIHajDYgwlJCOzLSk+cIPAnsEqV955GjILJnKbdQC1nVPz+gAYQ==",
1304
- "license": "MIT",
1305
- "dependencies": {
1306
- "debug": "^4.4.0",
1307
- "depd": "^2.0.0",
1308
- "is-promise": "^4.0.0",
1309
- "parseurl": "^1.3.3",
1310
- "path-to-regexp": "^8.0.0"
1311
- },
1312
- "engines": {
1313
- "node": ">= 18"
1314
- }
1315
- },
1316
- "node_modules/safe-buffer": {
1317
- "version": "5.2.1",
1318
- "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
1319
- "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==",
1320
- "funding": [
1321
- {
1322
- "type": "github",
1323
- "url": "https://github.com/sponsors/feross"
1324
- },
1325
- {
1326
- "type": "patreon",
1327
- "url": "https://www.patreon.com/feross"
1328
- },
1329
- {
1330
- "type": "consulting",
1331
- "url": "https://feross.org/support"
1332
- }
1333
- ],
1334
- "license": "MIT"
1335
- },
1336
- "node_modules/safer-buffer": {
1337
- "version": "2.1.2",
1338
- "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
1339
- "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==",
1340
- "license": "MIT"
1341
- },
1342
- "node_modules/semver": {
1343
- "version": "7.7.4",
1344
- "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.4.tgz",
1345
- "integrity": "sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA==",
1346
- "license": "ISC",
1347
- "bin": {
1348
- "semver": "bin/semver.js"
1349
- },
1350
- "engines": {
1351
- "node": ">=10"
1352
- }
1353
- },
1354
- "node_modules/send": {
1355
- "version": "1.2.1",
1356
- "resolved": "https://registry.npmjs.org/send/-/send-1.2.1.tgz",
1357
- "integrity": "sha512-1gnZf7DFcoIcajTjTwjwuDjzuz4PPcY2StKPlsGAQ1+YH20IRVrBaXSWmdjowTJ6u8Rc01PoYOGHXfP1mYcZNQ==",
1358
- "license": "MIT",
1359
- "dependencies": {
1360
- "debug": "^4.4.3",
1361
- "encodeurl": "^2.0.0",
1362
- "escape-html": "^1.0.3",
1363
- "etag": "^1.8.1",
1364
- "fresh": "^2.0.0",
1365
- "http-errors": "^2.0.1",
1366
- "mime-types": "^3.0.2",
1367
- "ms": "^2.1.3",
1368
- "on-finished": "^2.4.1",
1369
- "range-parser": "^1.2.1",
1370
- "statuses": "^2.0.2"
1371
- },
1372
- "engines": {
1373
- "node": ">= 18"
1374
- },
1375
- "funding": {
1376
- "type": "opencollective",
1377
- "url": "https://opencollective.com/express"
1378
- }
1379
- },
1380
- "node_modules/serve-static": {
1381
- "version": "2.2.1",
1382
- "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-2.2.1.tgz",
1383
- "integrity": "sha512-xRXBn0pPqQTVQiC8wyQrKs2MOlX24zQ0POGaj0kultvoOCstBQM5yvOhAVSUwOMjQtTvsPWoNCHfPGwaaQJhTw==",
1384
- "license": "MIT",
1385
- "dependencies": {
1386
- "encodeurl": "^2.0.0",
1387
- "escape-html": "^1.0.3",
1388
- "parseurl": "^1.3.3",
1389
- "send": "^1.2.0"
1390
- },
1391
- "engines": {
1392
- "node": ">= 18"
1393
- },
1394
- "funding": {
1395
- "type": "opencollective",
1396
- "url": "https://opencollective.com/express"
1397
- }
1398
- },
1399
- "node_modules/setprototypeof": {
1400
- "version": "1.2.0",
1401
- "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz",
1402
- "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==",
1403
- "license": "ISC"
1404
- },
1405
- "node_modules/side-channel": {
1406
- "version": "1.1.0",
1407
- "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.1.0.tgz",
1408
- "integrity": "sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==",
1409
- "license": "MIT",
1410
- "dependencies": {
1411
- "es-errors": "^1.3.0",
1412
- "object-inspect": "^1.13.3",
1413
- "side-channel-list": "^1.0.0",
1414
- "side-channel-map": "^1.0.1",
1415
- "side-channel-weakmap": "^1.0.2"
1416
- },
1417
- "engines": {
1418
- "node": ">= 0.4"
1419
- },
1420
- "funding": {
1421
- "url": "https://github.com/sponsors/ljharb"
1422
- }
1423
- },
1424
- "node_modules/side-channel-list": {
1425
- "version": "1.0.0",
1426
- "resolved": "https://registry.npmjs.org/side-channel-list/-/side-channel-list-1.0.0.tgz",
1427
- "integrity": "sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==",
1428
- "license": "MIT",
1429
- "dependencies": {
1430
- "es-errors": "^1.3.0",
1431
- "object-inspect": "^1.13.3"
1432
- },
1433
- "engines": {
1434
- "node": ">= 0.4"
1435
- },
1436
- "funding": {
1437
- "url": "https://github.com/sponsors/ljharb"
1438
- }
1439
- },
1440
- "node_modules/side-channel-map": {
1441
- "version": "1.0.1",
1442
- "resolved": "https://registry.npmjs.org/side-channel-map/-/side-channel-map-1.0.1.tgz",
1443
- "integrity": "sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==",
1444
- "license": "MIT",
1445
- "dependencies": {
1446
- "call-bound": "^1.0.2",
1447
- "es-errors": "^1.3.0",
1448
- "get-intrinsic": "^1.2.5",
1449
- "object-inspect": "^1.13.3"
1450
- },
1451
- "engines": {
1452
- "node": ">= 0.4"
1453
- },
1454
- "funding": {
1455
- "url": "https://github.com/sponsors/ljharb"
1456
- }
1457
- },
1458
- "node_modules/side-channel-weakmap": {
1459
- "version": "1.0.2",
1460
- "resolved": "https://registry.npmjs.org/side-channel-weakmap/-/side-channel-weakmap-1.0.2.tgz",
1461
- "integrity": "sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==",
1462
- "license": "MIT",
1463
- "dependencies": {
1464
- "call-bound": "^1.0.2",
1465
- "es-errors": "^1.3.0",
1466
- "get-intrinsic": "^1.2.5",
1467
- "object-inspect": "^1.13.3",
1468
- "side-channel-map": "^1.0.1"
1469
- },
1470
- "engines": {
1471
- "node": ">= 0.4"
1472
- },
1473
- "funding": {
1474
- "url": "https://github.com/sponsors/ljharb"
1475
- }
1476
- },
1477
- "node_modules/socket.io": {
1478
- "version": "4.8.3",
1479
- "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-4.8.3.tgz",
1480
- "integrity": "sha512-2Dd78bqzzjE6KPkD5fHZmDAKRNe3J15q+YHDrIsy9WEkqttc7GY+kT9OBLSMaPbQaEd0x1BjcmtMtXkfpc+T5A==",
1481
- "license": "MIT",
1482
- "dependencies": {
1483
- "accepts": "~1.3.4",
1484
- "base64id": "~2.0.0",
1485
- "cors": "~2.8.5",
1486
- "debug": "~4.4.1",
1487
- "engine.io": "~6.6.0",
1488
- "socket.io-adapter": "~2.5.2",
1489
- "socket.io-parser": "~4.2.4"
1490
- },
1491
- "engines": {
1492
- "node": ">=10.2.0"
1493
- }
1494
- },
1495
- "node_modules/socket.io-adapter": {
1496
- "version": "2.5.6",
1497
- "resolved": "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-2.5.6.tgz",
1498
- "integrity": "sha512-DkkO/dz7MGln0dHn5bmN3pPy+JmywNICWrJqVWiVOyvXjWQFIv9c2h24JrQLLFJ2aQVQf/Cvl1vblnd4r2apLQ==",
1499
- "license": "MIT",
1500
- "dependencies": {
1501
- "debug": "~4.4.1",
1502
- "ws": "~8.18.3"
1503
- }
1504
- },
1505
- "node_modules/socket.io-parser": {
1506
- "version": "4.2.5",
1507
- "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-4.2.5.tgz",
1508
- "integrity": "sha512-bPMmpy/5WWKHea5Y/jYAP6k74A+hvmRCQaJuJB6I/ML5JZq/KfNieUVo/3Mh7SAqn7TyFdIo6wqYHInG1MU1bQ==",
1509
- "license": "MIT",
1510
- "dependencies": {
1511
- "@socket.io/component-emitter": "~3.1.0",
1512
- "debug": "~4.4.1"
1513
- },
1514
- "engines": {
1515
- "node": ">=10.0.0"
1516
- }
1517
- },
1518
- "node_modules/socket.io/node_modules/accepts": {
1519
- "version": "1.3.8",
1520
- "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz",
1521
- "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==",
1522
- "license": "MIT",
1523
- "dependencies": {
1524
- "mime-types": "~2.1.34",
1525
- "negotiator": "0.6.3"
1526
- },
1527
- "engines": {
1528
- "node": ">= 0.6"
1529
- }
1530
- },
1531
- "node_modules/socket.io/node_modules/mime-db": {
1532
- "version": "1.52.0",
1533
- "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz",
1534
- "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==",
1535
- "license": "MIT",
1536
- "engines": {
1537
- "node": ">= 0.6"
1538
- }
1539
- },
1540
- "node_modules/socket.io/node_modules/mime-types": {
1541
- "version": "2.1.35",
1542
- "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz",
1543
- "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==",
1544
- "license": "MIT",
1545
- "dependencies": {
1546
- "mime-db": "1.52.0"
1547
- },
1548
- "engines": {
1549
- "node": ">= 0.6"
1550
- }
1551
- },
1552
- "node_modules/socket.io/node_modules/negotiator": {
1553
- "version": "0.6.3",
1554
- "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz",
1555
- "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==",
1556
- "license": "MIT",
1557
- "engines": {
1558
- "node": ">= 0.6"
1559
- }
1560
- },
1561
- "node_modules/split-ca": {
1562
- "version": "1.0.1",
1563
- "resolved": "https://registry.npmjs.org/split-ca/-/split-ca-1.0.1.tgz",
1564
- "integrity": "sha512-Q5thBSxp5t8WPTTJQS59LrGqOZqOsrhDGDVm8azCqIBjSBd7nd9o2PM+mDulQQkh8h//4U6hFZnc/mul8t5pWQ==",
1565
- "license": "ISC"
1566
- },
1567
- "node_modules/ssh2": {
1568
- "version": "1.17.0",
1569
- "resolved": "https://registry.npmjs.org/ssh2/-/ssh2-1.17.0.tgz",
1570
- "integrity": "sha512-wPldCk3asibAjQ/kziWQQt1Wh3PgDFpC0XpwclzKcdT1vql6KeYxf5LIt4nlFkUeR8WuphYMKqUA56X4rjbfgQ==",
1571
- "hasInstallScript": true,
1572
- "dependencies": {
1573
- "asn1": "^0.2.6",
1574
- "bcrypt-pbkdf": "^1.0.2"
1575
- },
1576
- "engines": {
1577
- "node": ">=10.16.0"
1578
- },
1579
- "optionalDependencies": {
1580
- "cpu-features": "~0.0.10",
1581
- "nan": "^2.23.0"
1582
- }
1583
- },
1584
- "node_modules/statuses": {
1585
- "version": "2.0.2",
1586
- "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.2.tgz",
1587
- "integrity": "sha512-DvEy55V3DB7uknRo+4iOGT5fP1slR8wQohVdknigZPMpMstaKJQWhwiYBACJE3Ul2pTnATihhBYnRhZQHGBiRw==",
1588
- "license": "MIT",
1589
- "engines": {
1590
- "node": ">= 0.8"
1591
- }
1592
- },
1593
- "node_modules/string_decoder": {
1594
- "version": "1.3.0",
1595
- "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz",
1596
- "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==",
1597
- "license": "MIT",
1598
- "dependencies": {
1599
- "safe-buffer": "~5.2.0"
1600
- }
1601
- },
1602
- "node_modules/string-width": {
1603
- "version": "4.2.3",
1604
- "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
1605
- "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
1606
- "license": "MIT",
1607
- "dependencies": {
1608
- "emoji-regex": "^8.0.0",
1609
- "is-fullwidth-code-point": "^3.0.0",
1610
- "strip-ansi": "^6.0.1"
1611
- },
1612
- "engines": {
1613
- "node": ">=8"
1614
- }
1615
- },
1616
- "node_modules/strip-ansi": {
1617
- "version": "6.0.1",
1618
- "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
1619
- "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
1620
- "license": "MIT",
1621
- "dependencies": {
1622
- "ansi-regex": "^5.0.1"
1623
- },
1624
- "engines": {
1625
- "node": ">=8"
1626
- }
1627
- },
1628
- "node_modules/tar-fs": {
1629
- "version": "2.1.4",
1630
- "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-2.1.4.tgz",
1631
- "integrity": "sha512-mDAjwmZdh7LTT6pNleZ05Yt65HC3E+NiQzl672vQG38jIrehtJk/J3mNwIg+vShQPcLF/LV7CMnDW6vjj6sfYQ==",
1632
- "license": "MIT",
1633
- "dependencies": {
1634
- "chownr": "^1.1.1",
1635
- "mkdirp-classic": "^0.5.2",
1636
- "pump": "^3.0.0",
1637
- "tar-stream": "^2.1.4"
1638
- }
1639
- },
1640
- "node_modules/tar-stream": {
1641
- "version": "2.2.0",
1642
- "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.2.0.tgz",
1643
- "integrity": "sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==",
1644
- "license": "MIT",
1645
- "dependencies": {
1646
- "bl": "^4.0.3",
1647
- "end-of-stream": "^1.4.1",
1648
- "fs-constants": "^1.0.0",
1649
- "inherits": "^2.0.3",
1650
- "readable-stream": "^3.1.1"
1651
- },
1652
- "engines": {
1653
- "node": ">=6"
1654
- }
1655
- },
1656
- "node_modules/toidentifier": {
1657
- "version": "1.0.1",
1658
- "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz",
1659
- "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==",
1660
- "license": "MIT",
1661
- "engines": {
1662
- "node": ">=0.6"
1663
- }
1664
- },
1665
- "node_modules/tweetnacl": {
1666
- "version": "0.14.5",
1667
- "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz",
1668
- "integrity": "sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA==",
1669
- "license": "Unlicense"
1670
- },
1671
- "node_modules/type-is": {
1672
- "version": "2.0.1",
1673
- "resolved": "https://registry.npmjs.org/type-is/-/type-is-2.0.1.tgz",
1674
- "integrity": "sha512-OZs6gsjF4vMp32qrCbiVSkrFmXtG/AZhY3t0iAMrMBiAZyV9oALtXO8hsrHbMXF9x6L3grlFuwW2oAz7cav+Gw==",
1675
- "license": "MIT",
1676
- "dependencies": {
1677
- "content-type": "^1.0.5",
1678
- "media-typer": "^1.1.0",
1679
- "mime-types": "^3.0.0"
1680
- },
1681
- "engines": {
1682
- "node": ">= 0.6"
1683
- }
1684
- },
1685
- "node_modules/undici-types": {
1686
- "version": "7.18.2",
1687
- "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.18.2.tgz",
1688
- "integrity": "sha512-AsuCzffGHJybSaRrmr5eHr81mwJU3kjw6M+uprWvCXiNeN9SOGwQ3Jn8jb8m3Z6izVgknn1R0FTCEAP2QrLY/w==",
1689
- "license": "MIT"
1690
- },
1691
- "node_modules/unpipe": {
1692
- "version": "1.0.0",
1693
- "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz",
1694
- "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==",
1695
- "license": "MIT",
1696
- "engines": {
1697
- "node": ">= 0.8"
1698
- }
1699
- },
1700
- "node_modules/util-deprecate": {
1701
- "version": "1.0.2",
1702
- "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
1703
- "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==",
1704
- "license": "MIT"
1705
- },
1706
- "node_modules/uuid": {
1707
- "version": "10.0.0",
1708
- "resolved": "https://registry.npmjs.org/uuid/-/uuid-10.0.0.tgz",
1709
- "integrity": "sha512-8XkAphELsDnEGrDxUOHB3RGvXz6TeuYSGEZBOjtTtPm2lwhGBjLgOzLHB63IUWfBpNucQjND6d3AOudO+H3RWQ==",
1710
- "funding": [
1711
- "https://github.com/sponsors/broofa",
1712
- "https://github.com/sponsors/ctavan"
1713
- ],
1714
- "license": "MIT",
1715
- "bin": {
1716
- "uuid": "dist/bin/uuid"
1717
- }
1718
- },
1719
- "node_modules/vary": {
1720
- "version": "1.1.2",
1721
- "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz",
1722
- "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==",
1723
- "license": "MIT",
1724
- "engines": {
1725
- "node": ">= 0.8"
1726
- }
1727
- },
1728
- "node_modules/wrap-ansi": {
1729
- "version": "7.0.0",
1730
- "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz",
1731
- "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==",
1732
- "license": "MIT",
1733
- "dependencies": {
1734
- "ansi-styles": "^4.0.0",
1735
- "string-width": "^4.1.0",
1736
- "strip-ansi": "^6.0.0"
1737
- },
1738
- "engines": {
1739
- "node": ">=10"
1740
- },
1741
- "funding": {
1742
- "url": "https://github.com/chalk/wrap-ansi?sponsor=1"
1743
- }
1744
- },
1745
- "node_modules/wrappy": {
1746
- "version": "1.0.2",
1747
- "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
1748
- "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==",
1749
- "license": "ISC"
1750
- },
1751
- "node_modules/ws": {
1752
- "version": "8.18.3",
1753
- "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.3.tgz",
1754
- "integrity": "sha512-PEIGCY5tSlUt50cqyMXfCzX+oOPqN0vuGqWzbcJ2xvnkzkq46oOpz7dQaTDBdfICb4N14+GARUDw2XV2N4tvzg==",
1755
- "license": "MIT",
1756
- "engines": {
1757
- "node": ">=10.0.0"
1758
- },
1759
- "peerDependencies": {
1760
- "bufferutil": "^4.0.1",
1761
- "utf-8-validate": ">=5.0.2"
1762
- },
1763
- "peerDependenciesMeta": {
1764
- "bufferutil": {
1765
- "optional": true
1766
- },
1767
- "utf-8-validate": {
1768
- "optional": true
1769
- }
1770
- }
1771
- },
1772
- "node_modules/y18n": {
1773
- "version": "5.0.8",
1774
- "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz",
1775
- "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==",
1776
- "license": "ISC",
1777
- "engines": {
1778
- "node": ">=10"
1779
- }
1780
- },
1781
- "node_modules/yargs": {
1782
- "version": "17.7.2",
1783
- "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz",
1784
- "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==",
1785
- "license": "MIT",
1786
- "dependencies": {
1787
- "cliui": "^8.0.1",
1788
- "escalade": "^3.1.1",
1789
- "get-caller-file": "^2.0.5",
1790
- "require-directory": "^2.1.1",
1791
- "string-width": "^4.2.3",
1792
- "y18n": "^5.0.5",
1793
- "yargs-parser": "^21.1.1"
1794
- },
1795
- "engines": {
1796
- "node": ">=12"
1797
- }
1798
- },
1799
- "node_modules/yargs-parser": {
1800
- "version": "21.1.1",
1801
- "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz",
1802
- "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==",
1803
- "license": "ISC",
1804
- "engines": {
1805
- "node": ">=12"
1806
- }
1807
- }
1808
- }
1809
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
node_modules/@balena/dockerignore/CHANGELOG.md DELETED
@@ -1,31 +0,0 @@
1
- # Change Log
2
-
3
- All notable changes to this project will be documented in this file
4
- automatically by Versionist. DO NOT EDIT THIS FILE MANUALLY!
5
- This project adheres to [Semantic Versioning](http://semver.org/).
6
-
7
- # v1.0.2
8
- ## (2020-05-13)
9
-
10
- * Update dependencies and replace yarn with npm [Paulo Castro]
11
-
12
- # v1.0.1
13
- ## (2020-05-02)
14
-
15
- * Fix npm publish via balena CI [Paulo Castro]
16
-
17
- # v1.0.0
18
- ## (2020-04-29)
19
-
20
- * Review README.md [Paulo Castro]
21
-
22
- # v0.0.6
23
- ## (2020-04-29)
24
-
25
- * Update CI config (add .resinci.yml and appveyor.yml, remove codecov) [Paulo Castro]
26
- * Add LICENSE.md and CHANGELOG.md files (setup versionist) [Paulo Castro]
27
- * Update package.json (npm package details - fork from zeit/dockerignore) [Paulo Castro]
28
-
29
- ## 0.0.5 - 2019-04-22
30
-
31
- * Last zeit/dockerignore release before fork as balena-io-modules/dockerignore
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
node_modules/@balena/dockerignore/LICENSE.md DELETED
@@ -1,206 +0,0 @@
1
-
2
- * Copyright 2020 Balena Ltd. under the Apache 2.0 License included in this file.
3
- * Copyright 2018 Zeit Inc. under the MIT License included in this file.
4
-
5
- --------------------------------------------------------------------------
6
-
7
- Apache License
8
- Version 2.0, January 2004
9
- http://www.apache.org/licenses/
10
-
11
- TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
12
-
13
- 1. Definitions.
14
-
15
- "License" shall mean the terms and conditions for use, reproduction,
16
- and distribution as defined by Sections 1 through 9 of this document.
17
-
18
- "Licensor" shall mean the copyright owner or entity authorized by
19
- the copyright owner that is granting the License.
20
-
21
- "Legal Entity" shall mean the union of the acting entity and all
22
- other entities that control, are controlled by, or are under common
23
- control with that entity. For the purposes of this definition,
24
- "control" means (i) the power, direct or indirect, to cause the
25
- direction or management of such entity, whether by contract or
26
- otherwise, or (ii) ownership of fifty percent (50%) or more of the
27
- outstanding shares, or (iii) beneficial ownership of such entity.
28
-
29
- "You" (or "Your") shall mean an individual or Legal Entity
30
- exercising permissions granted by this License.
31
-
32
- "Source" form shall mean the preferred form for making modifications,
33
- including but not limited to software source code, documentation
34
- source, and configuration files.
35
-
36
- "Object" form shall mean any form resulting from mechanical
37
- transformation or translation of a Source form, including but
38
- not limited to compiled object code, generated documentation,
39
- and conversions to other media types.
40
-
41
- "Work" shall mean the work of authorship, whether in Source or
42
- Object form, made available under the License, as indicated by a
43
- copyright notice that is included in or attached to the work
44
- (an example is provided in the Appendix below).
45
-
46
- "Derivative Works" shall mean any work, whether in Source or Object
47
- form, that is based on (or derived from) the Work and for which the
48
- editorial revisions, annotations, elaborations, or other modifications
49
- represent, as a whole, an original work of authorship. For the purposes
50
- of this License, Derivative Works shall not include works that remain
51
- separable from, or merely link (or bind by name) to the interfaces of,
52
- the Work and Derivative Works thereof.
53
-
54
- "Contribution" shall mean any work of authorship, including
55
- the original version of the Work and any modifications or additions
56
- to that Work or Derivative Works thereof, that is intentionally
57
- submitted to Licensor for inclusion in the Work by the copyright owner
58
- or by an individual or Legal Entity authorized to submit on behalf of
59
- the copyright owner. For the purposes of this definition, "submitted"
60
- means any form of electronic, verbal, or written communication sent
61
- to the Licensor or its representatives, including but not limited to
62
- communication on electronic mailing lists, source code control systems,
63
- and issue tracking systems that are managed by, or on behalf of, the
64
- Licensor for the purpose of discussing and improving the Work, but
65
- excluding communication that is conspicuously marked or otherwise
66
- designated in writing by the copyright owner as "Not a Contribution."
67
-
68
- "Contributor" shall mean Licensor and any individual or Legal Entity
69
- on behalf of whom a Contribution has been received by Licensor and
70
- subsequently incorporated within the Work.
71
-
72
- 2. Grant of Copyright License. Subject to the terms and conditions of
73
- this License, each Contributor hereby grants to You a perpetual,
74
- worldwide, non-exclusive, no-charge, royalty-free, irrevocable
75
- copyright license to reproduce, prepare Derivative Works of,
76
- publicly display, publicly perform, sublicense, and distribute the
77
- Work and such Derivative Works in Source or Object form.
78
-
79
- 3. Grant of Patent License. Subject to the terms and conditions of
80
- this License, each Contributor hereby grants to You a perpetual,
81
- worldwide, non-exclusive, no-charge, royalty-free, irrevocable
82
- (except as stated in this section) patent license to make, have made,
83
- use, offer to sell, sell, import, and otherwise transfer the Work,
84
- where such license applies only to those patent claims licensable
85
- by such Contributor that are necessarily infringed by their
86
- Contribution(s) alone or by combination of their Contribution(s)
87
- with the Work to which such Contribution(s) was submitted. If You
88
- institute patent litigation against any entity (including a
89
- cross-claim or counterclaim in a lawsuit) alleging that the Work
90
- or a Contribution incorporated within the Work constitutes direct
91
- or contributory patent infringement, then any patent licenses
92
- granted to You under this License for that Work shall terminate
93
- as of the date such litigation is filed.
94
-
95
- 4. Redistribution. You may reproduce and distribute copies of the
96
- Work or Derivative Works thereof in any medium, with or without
97
- modifications, and in Source or Object form, provided that You
98
- meet the following conditions:
99
-
100
- (a) You must give any other recipients of the Work or
101
- Derivative Works a copy of this License; and
102
-
103
- (b) You must cause any modified files to carry prominent notices
104
- stating that You changed the files; and
105
-
106
- (c) You must retain, in the Source form of any Derivative Works
107
- that You distribute, all copyright, patent, trademark, and
108
- attribution notices from the Source form of the Work,
109
- excluding those notices that do not pertain to any part of
110
- the Derivative Works; and
111
-
112
- (d) If the Work includes a "NOTICE" text file as part of its
113
- distribution, then any Derivative Works that You distribute must
114
- include a readable copy of the attribution notices contained
115
- within such NOTICE file, excluding those notices that do not
116
- pertain to any part of the Derivative Works, in at least one
117
- of the following places: within a NOTICE text file distributed
118
- as part of the Derivative Works; within the Source form or
119
- documentation, if provided along with the Derivative Works; or,
120
- within a display generated by the Derivative Works, if and
121
- wherever such third-party notices normally appear. The contents
122
- of the NOTICE file are for informational purposes only and
123
- do not modify the License. You may add Your own attribution
124
- notices within Derivative Works that You distribute, alongside
125
- or as an addendum to the NOTICE text from the Work, provided
126
- that such additional attribution notices cannot be construed
127
- as modifying the License.
128
-
129
- You may add Your own copyright statement to Your modifications and
130
- may provide additional or different license terms and conditions
131
- for use, reproduction, or distribution of Your modifications, or
132
- for any such Derivative Works as a whole, provided Your use,
133
- reproduction, and distribution of the Work otherwise complies with
134
- the conditions stated in this License.
135
-
136
- 5. Submission of Contributions. Unless You explicitly state otherwise,
137
- any Contribution intentionally submitted for inclusion in the Work
138
- by You to the Licensor shall be under the terms and conditions of
139
- this License, without any additional terms or conditions.
140
- Notwithstanding the above, nothing herein shall supersede or modify
141
- the terms of any separate license agreement you may have executed
142
- with Licensor regarding such Contributions.
143
-
144
- 6. Trademarks. This License does not grant permission to use the trade
145
- names, trademarks, service marks, or product names of the Licensor,
146
- except as required for reasonable and customary use in describing the
147
- origin of the Work and reproducing the content of the NOTICE file.
148
-
149
- 7. Disclaimer of Warranty. Unless required by applicable law or
150
- agreed to in writing, Licensor provides the Work (and each
151
- Contributor provides its Contributions) on an "AS IS" BASIS,
152
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
153
- implied, including, without limitation, any warranties or conditions
154
- of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
155
- PARTICULAR PURPOSE. You are solely responsible for determining the
156
- appropriateness of using or redistributing the Work and assume any
157
- risks associated with Your exercise of permissions under this License.
158
-
159
- 8. Limitation of Liability. In no event and under no legal theory,
160
- whether in tort (including negligence), contract, or otherwise,
161
- unless required by applicable law (such as deliberate and grossly
162
- negligent acts) or agreed to in writing, shall any Contributor be
163
- liable to You for damages, including any direct, indirect, special,
164
- incidental, or consequential damages of any character arising as a
165
- result of this License or out of the use or inability to use the
166
- Work (including but not limited to damages for loss of goodwill,
167
- work stoppage, computer failure or malfunction, or any and all
168
- other commercial damages or losses), even if such Contributor
169
- has been advised of the possibility of such damages.
170
-
171
- 9. Accepting Warranty or Additional Liability. While redistributing
172
- the Work or Derivative Works thereof, You may choose to offer,
173
- and charge a fee for, acceptance of support, warranty, indemnity,
174
- or other liability obligations and/or rights consistent with this
175
- License. However, in accepting such obligations, You may act only
176
- on Your own behalf and on Your sole responsibility, not on behalf
177
- of any other Contributor, and only if You agree to indemnify,
178
- defend, and hold each Contributor harmless for any liability
179
- incurred by, or claims asserted against, such Contributor by reason
180
- of your accepting any such warranty or additional liability.
181
-
182
- END OF TERMS AND CONDITIONS
183
-
184
- --------------------------------------------------------------------------
185
-
186
- The MIT License (MIT)
187
-
188
- Permission is hereby granted, free of charge, to any person obtaining a
189
- copy of this software and associated documentation files (the "Software"),
190
- to deal in the Software without restriction, including without limitation
191
- the rights to use, copy, modify, merge, publish, distribute, sublicense,
192
- and/or sell copies of the Software, and to permit persons to whom the
193
- Software is furnished to do so, subject to the following conditions:
194
-
195
- The above copyright notice and this permission notice shall be included in
196
- all copies or substantial portions of the Software.
197
-
198
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
199
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
200
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
201
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
202
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
203
- FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
204
- DEALINGS IN THE SOFTWARE.
205
-
206
- --------------------------------------------------------------------------
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
node_modules/@balena/dockerignore/README.md DELETED
@@ -1,261 +0,0 @@
1
-
2
- # dockerignore
3
-
4
- `dockerignore` is a file filter library fully compatible with Docker's [.dockerignore
5
- file](https://docs.docker.com/engine/reference/builder/#dockerignore-file), exposing the
6
- same API as the popular [ignore](https://github.com/kaelzhang/node-ignore) package for the
7
- `.gitignore` format.
8
-
9
- `dockerignore` is also:
10
-
11
- * Compatible with Linux, macOS and Windows.
12
- * Compact with 0 external dependencies (production install).
13
- * A pure Javascript port of Docker's Golang implementation of the `.dockerignore` format.
14
- * Well tested with hundreds of test cases including comparison against the actual behavior
15
- of `docker build` on Windows and Linux.
16
- * Relied on in production environments by
17
- [balena-cli](https://www.balena.io/docs/reference/balena-cli/),
18
- [now-cli](https://github.com/zeit/now-cli/)
19
- and other prominent projects built around Docker.
20
-
21
- ### What's different from `ignore`?
22
-
23
- The `.dockerignore` spec has several differences from `.gitignore`:
24
-
25
- - `*` in `.gitignore` matches everything, whereas in `.dockerignore` it only matches files in the
26
- current directory (like glob). This difference is important when whitelisting after a `*` rule.
27
- - `abc` in `.gitignore` matches all `abc` files and directories, however deeply nested, whereas
28
- in `.dockerignore` it matches only at `./abc` and not in subdirectories like `./somedir/abc`.
29
- - With `.gitignore`, when a parent directory is ignored, subdirectories cannot be re-added (using
30
- `!`) since `git` simply avoids walking through the subtree as an optimization. With
31
- `.dockerignore`, a subdirectory can be re-added even if a parent directory has been ignored.
32
- - For a complete list of differences, check out the [.gitignore
33
- spec](https://git-scm.com/docs/gitignore) and the [.dockerignore
34
- spec](https://docs.docker.com/engine/reference/builder/#dockerignore-file).
35
-
36
- ### What's the same as `ignore`?
37
-
38
- The entire API. `dockerignore` started as a fork of
39
- [node-ignore](https://github.com/kaelzhang/node-ignore), and even reuses the same `index.d.ts` file
40
- for TypeScript definitions. Under the hood, `node-ignore`'s matching logic was rewritten to closely
41
- match Docker's implementation (modeled mainly around
42
- [dockerignore.go](https://github.com/moby/moby/blob/v19.03.8/builder/dockerignore/dockerignore.go)
43
- and [fileutils.go](https://github.com/moby/moby/blob/v19.03.8/pkg/fileutils/fileutils.go)).
44
-
45
- ### Compatibility
46
-
47
- `dockerignore` works with Node.js version 8 and above, on Linux, macOS and Windows.
48
- The code is compiled with [Babel](https://babeljs.io/docs/en/).
49
-
50
- ## Install
51
-
52
- ```bash
53
- npm install --save @balena/dockerignore
54
- ```
55
-
56
- ## Usage
57
-
58
- ```js
59
- const ignore = require('@balena/dockerignore')
60
- const ig = ignore().add(['.abc/*', '!.abc/d/'])
61
- ```
62
-
63
- Typescript type definitions are also included:
64
-
65
- ```typescript
66
- import ignore from '@balena/dockerignore'
67
- const ig = ignore().add(['.abc/*', '!.abc/d/'])
68
- ```
69
-
70
- ### Filter the given paths
71
-
72
- ```js
73
- const paths = [
74
- '.abc/a.js', // filtered out
75
- '.abc/d/e.js' // included
76
- ]
77
-
78
- ig.filter(paths) // ['.abc/d/e.js']
79
- ig.ignores('.abc/a.js') // true
80
- ```
81
-
82
- ### As the filter function
83
-
84
- ```js
85
- paths.filter(ig.createFilter()); // ['.abc/d/e.js']
86
- ```
87
-
88
- ### Windows paths are supported
89
-
90
- ```js
91
- ig.filter(['.abc\\a.js', '.abc\\d\\e.js'])
92
- // if the code above runs on windows, the result will be
93
- // ['.abc\\d\\e.js']
94
- ```
95
-
96
- ## Backslashes _vs._ forward slashes
97
-
98
- `dockerignore` behaves just like the Docker CLI ("docker build") in relation to the backslash (`\`)
99
- and forward slash (`/`) characters:
100
-
101
- OS | Location | Slash (`/`) | Backslash (`\`)
102
- ------------ | ----------------------- | ---------------| --------------------
103
- Linux, macOS | `.dockerignore` | Path separator | Escape character
104
- Linux, macOS | `filter()`, `ignores()` | Path separator | Part of file name
105
- Windows | `.dockerignore` | Path separator | Path separator
106
- Windows | `filter()`, `ignores()` | Path separator | Path separator
107
-
108
- This means that forward slashes can be used in the `.dockerignore` file for cross-platform
109
- compatibility. This is consistent with how Windows works generally: both forward slashes
110
- and backslashes are accepted as path separators by the Command Prompt (cmd.exe) or
111
- PowerShell, and by library functions like the Golang
112
- [filepath.Clean](https://golang.org/pkg/path/filepath/#Clean) or the Node.js
113
- [path.normalize](https://nodejs.org/docs/latest-v10.x/api/path.html#path_path_normalize_path).
114
-
115
- The use of the backslash as an escape character (Linux and macOS only) is not documented in the
116
- `.dockerignore` specification. "Reasonable" uses are probably to escape the few characters that
117
- have a special meaning in the `.dockerignore` file, namely `"*#!\"` (excluding the double quotes),
118
- as opposed to characters that have a special meaning in [regular
119
- expressions](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions)
120
- generally. The "escaping" behavior for any other characters (e.g. `'\\b'`) is undefined and subject
121
- to implementation-specific interpretation that may change at any time.
122
-
123
- ## Absolute paths
124
-
125
- Leading and trailing slashes (or backslashes on Windows) are removed from `.dockerignore` patterns,
126
- so `'/a'`, `'a/'` and `'/a/'` are all equivalent to `'a'` in a `.dockerignore` file, and they all
127
- anchor to the "leftmost" directory when matching against relative paths. For example, pattern `'a'`
128
- is compared with `'x'` for a given path `'x/y/z'`. This follows Docker's Golang implementation for
129
- compatibility. Conversely, a given absolute path will not match a non-wildcard pattern. More
130
- examples:
131
-
132
- ```js
133
- ignore().add('a').ignores('a') // true
134
- ignore().add('/a').ignores('a') // true
135
- ignore().add('/a/').ignores('a') // true
136
- ignore().add('a').ignores('/a') // false
137
- ignore().add('/a').ignores('/a') // false
138
- ignore().add('/a/').ignores('/a') // false
139
- ```
140
-
141
- Considering pattern slash removal, the cases above may be reduced to:
142
-
143
- ```js
144
- ignore().add('a').ignores('a') // true
145
- ignore().add('a').ignores('/a') // false
146
- ```
147
-
148
- The 'false' outcome for these examples may appear to mismatch the behavior of "docker build", when
149
- the source argument for the Dockerfile [ADD](https://docs.docker.com/engine/reference/builder/#add)
150
- or [COPY](https://docs.docker.com/engine/reference/builder/#copy) instructions is an absolute path
151
- (starting with a slash). The explanation is that docker converts absolute source paths to relative
152
- paths (relative to the "build context") **prior to pattern matching:**
153
- https://github.com/moby/moby/blob/v19.03.8/pkg/archive/archive.go#L806
154
- https://github.com/moby/moby/blob/v19.03.8/pkg/archive/archive.go#L825
155
-
156
- ... while `dockerignore` mirrors the implementation of the pattern matcher itself. The advice is
157
- for your application to do the same as the docker CLI: use relative paths for pattern matching.
158
- This is also generally more portable across different environments: development machine, CI
159
- pipelines, servers or end user devices.
160
-
161
- ## Comments
162
-
163
- A pattern starting with `'#'` (hash) is ignored as a comment. The hash can be prefixed with
164
- a slash or backslash in order to match a file name that also starts with a hash:
165
-
166
- ```js
167
- ignore().add('#abc').ignores('#abc') // false
168
- ignore().add('/#abc').ignores('#abc') // true
169
- ignore().add('\\#abc').ignores('#abc') // true
170
- ```
171
-
172
- This works because of the leading slash removal from patterns described in [Absolute
173
- Paths](#absolute-paths).
174
-
175
- ## Exclusion patterns
176
-
177
- Patterns starting with `'!'` (exclamation mark) define matching exclusions (exceptions) as
178
- documented in the [.dockerignore
179
- specification](https://docs.docker.com/engine/reference/builder/#dockerignore-file). For
180
- compatibility with Docker's implementation, patterns starting with `'/!'` or `'!/'` (but not
181
- `'/!/'`) will also be considered exclusion patterns, in addition to slash removal described in
182
- [Absolute Paths](#absolute-paths). Backslash escaping as `'\\!'` may be used in order to match a
183
- file or directory name that starts with the exclamation mark, but this is only possible on Linux
184
- and macOS, not on Windows. Again, it only behaves this way for compatibility with Docker's
185
- implementation.
186
-
187
- ## Options
188
-
189
- Matching is case-insensitive by default, following the `ignore` API
190
- ([ignorecase](https://www.npmjs.com/package/ignore#optionsignorecase-since-400)).
191
- Note however that Docker performs case-sensitive matching.
192
- Use the `ignorecase: false` option to align with Docker's behavior:
193
-
194
- ```js
195
- const ig = ignore({ ignorecase: false }) // for case-sensitive matching
196
- ```
197
-
198
- ## Methods
199
-
200
- ### .add(pattern)
201
- ### .add(patterns)
202
-
203
- - **pattern** `String|Ignore` An ignore pattern string, or the `Ignore` instance
204
- - **patterns** `Array.<pattern>` Array of ignore patterns.
205
-
206
- Adds a rule or several rules to the current manager.
207
-
208
- Returns `this`
209
-
210
- `pattern` could either be a line of ignore pattern or a string of multiple ignore patterns, which means we could just `ignore().add()` the content of a ignore file:
211
-
212
- ```js
213
- ignore()
214
- .add(fs.readFileSync(filenameOfGitignore).toString())
215
- .filter(filenames)
216
- ```
217
-
218
- `pattern` could also be an `ignore` instance, so that we could easily inherit the rules of another `Ignore` instance.
219
-
220
- ### .ignores(pathname)
221
-
222
- Returns `Boolean` whether `pathname` should be ignored.
223
-
224
- ```js
225
- ig.ignores('.abc/a.js') // true
226
- ```
227
-
228
- ### .filter(paths)
229
-
230
- Filters the given array of pathnames, and returns the filtered array.
231
-
232
- - **paths** `Array.<path>` The array of `pathname`s to be filtered.
233
-
234
- ### .createFilter()
235
-
236
- Creates a filter function which could filter an array of paths with `Array.prototype.filter`.
237
-
238
- Returns `function(path)` the filter function.
239
-
240
- ## Contributing
241
-
242
- Contributions are always welcome!
243
-
244
- 1. Fork this repository to your own GitHub account and then clone it to your local device.
245
- 2. Install the dependencies: `npm install`
246
- 3. Add a test case (if applicable) and ensure it currently fails
247
- 4. Add code to pass the test
248
- 5. Make a pull request (additional tests will run on CI to ensure that your test case agrees with an actual `docker build`)
249
-
250
- ## Acknowledgements
251
-
252
- The initial work on this project was done by Pranay Prakash
253
- ([@pranaygp](https://twitter.com/pranaygp)) / [▲ZEIT](https://zeit.co), Kael Zhang
254
- ([@kaelzhang](https://github.com/kaelzhang)) and the [node-ignore
255
- contributors](https://github.com/kaelzhang/node-ignore/graphs/contributors).
256
-
257
- Paulo Castro ([@pdcastro](https://github.com/pdcastro)) / [balena.io](https://www.balena.io/)
258
- forked the repository in year 2020 ([encouraged by
259
- Zeit](https://github.com/zeit/dockerignore/pull/16#issuecomment-611790479)) and put in a
260
- substantial effort on Windows support, cross-platform compatibility and testing, leading to release
261
- 1.0.0.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
node_modules/@balena/dockerignore/ignore.js DELETED
@@ -1,363 +0,0 @@
1
- 'use strict';
2
- /**
3
- * @license
4
- * Copyright 2020 Balena Ltd.
5
- *
6
- * Licensed under the Apache License, Version 2.0 (the "License");
7
- * you may not use this file except in compliance with the License.
8
- * You may obtain a copy of the License at
9
- *
10
- * http://www.apache.org/licenses/LICENSE-2.0
11
- *
12
- * Unless required by applicable law or agreed to in writing, software
13
- * distributed under the License is distributed on an "AS IS" BASIS,
14
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15
- * See the License for the specific language governing permissions and
16
- * limitations under the License.
17
- *
18
- * ------------------------------------------------------------------------
19
- *
20
- * Copyright 2018 Zeit, Inc.
21
- * Licensed under the MIT License. See file LICENSE.md for a full copy.
22
- *
23
- * ------------------------------------------------------------------------
24
- */
25
-
26
- /**
27
- * This module implements the [dockerignore
28
- * spec](https://docs.docker.com/engine/reference/builder/#dockerignore-file),
29
- * closely following Docker's (Moby) Golang implementation:
30
- * https://github.com/moby/moby/blob/v19.03.8/builder/dockerignore/dockerignore.go
31
- * https://github.com/moby/moby/blob/v19.03.8/pkg/fileutils/fileutils.go
32
- * https://github.com/moby/moby/blob/v19.03.8/pkg/archive/archive.go#L825
33
- *
34
- * Something the spec is not clear about, but we discovered by reading source code
35
- * and testing against the "docker build" command, is the handling of backslashes and
36
- * forward slashes as path separators and escape characters in the .dockerignore file
37
- * across platforms including Windows, Linux and macOS:
38
- *
39
- * * On Linux and macOS, only forward slashes can be used as path separators in the
40
- * .dockerignore file, and the backslash works as an escape character.
41
- * * On Windows, both forward slashes and backslashes are allowed as path separators
42
- * in the .dockerignore file, and the backslash is not used as an escape character.
43
- *
44
- * This is consistent with how Windows works generally: both forward slashes and
45
- * backslashes are accepted as path separators by the cmd.exe Command Prompt or
46
- * PowerShell, and by library functions like the Golang filepath.Clean or the
47
- * Node.js path.normalize.
48
- *
49
- * Similarly, path strings provided to the IgnoreBase.ignores() and IgnoreBase.filter()
50
- * methods can use either forward slashes or backslashes as path separators on Windows,
51
- * but only forward slashes are accepted as path separators on Linux and macOS.
52
- */
53
-
54
- const path = require('path');
55
-
56
- const factory = options => new IgnoreBase(options); // https://github.com/kaelzhang/node-ignore/blob/5.1.4/index.js#L538-L539
57
- // Fixes typescript module import
58
-
59
-
60
- factory.default = factory;
61
- module.exports = factory;
62
-
63
- function make_array(subject) {
64
- return Array.isArray(subject) ? subject : [subject];
65
- }
66
-
67
- const REGEX_TRAILING_SLASH = /(?<=.)\/$/;
68
- const REGEX_TRAILING_BACKSLASH = /(?<=.)\\$/;
69
- const REGEX_TRAILING_PATH_SEP = path.sep === '\\' ? REGEX_TRAILING_BACKSLASH : REGEX_TRAILING_SLASH;
70
- const KEY_IGNORE = typeof Symbol !== 'undefined' ? Symbol.for('dockerignore') : 'dockerignore'; // An implementation of Go's filepath.Clean
71
- // https://golang.org/pkg/path/filepath/#Clean
72
- // https://github.com/golang/go/blob/master/src/path/filepath/path.go
73
- // Note that, like Go, on Windows this function converts forward slashes
74
- // to backslashes.
75
-
76
- function cleanPath(file) {
77
- return path.normalize(file).replace(REGEX_TRAILING_PATH_SEP, '');
78
- } // Javascript port of Golang's filepath.ToSlash
79
- // https://golang.org/pkg/path/filepath/#ToSlash
80
- // https://github.com/golang/go/blob/master/src/path/filepath/path.go
81
- // Convert any OS-specific path separator to '/'. Backslash is converted
82
- // to forward slash on Windows, but not on Linux/macOS.
83
- // Note that both forward slashes and backslashes are valid path separators on
84
- // Windows. As a result, code such as `pattern.split(path.sep).join('/')` fails
85
- // on Windows when forward slashes are used as path separators.
86
-
87
-
88
- function toSlash(file) {
89
- if (path.sep === '/') {
90
- return file;
91
- }
92
-
93
- return file.replace(/\\/g, '/');
94
- } // Javascript port of Golang's filepath.FromSlash
95
- // https://github.com/golang/go/blob/master/src/path/filepath/path.go
96
-
97
-
98
- function fromSlash(file) {
99
- if (path.sep === '/') {
100
- return file;
101
- }
102
-
103
- return file.replace(/\//g, path.sep);
104
- }
105
-
106
- class IgnoreBase {
107
- constructor({
108
- // https://github.com/kaelzhang/node-ignore/blob/5.1.4/index.js#L372
109
- ignorecase = true
110
- } = {}) {
111
- this._rules = [];
112
- this._ignorecase = ignorecase;
113
- this[KEY_IGNORE] = true;
114
-
115
- this._initCache();
116
- }
117
-
118
- _initCache() {
119
- this._cache = {};
120
- } // @param {Array.<string>|string|Ignore} pattern
121
-
122
-
123
- add(pattern) {
124
- this._added = false;
125
-
126
- if (typeof pattern === 'string') {
127
- pattern = pattern.split(/\r?\n/g);
128
- }
129
-
130
- make_array(pattern).forEach(this._addPattern, this); // Some rules have just added to the ignore,
131
- // making the behavior changed.
132
-
133
- if (this._added) {
134
- this._initCache();
135
- }
136
-
137
- return this;
138
- } // legacy
139
-
140
-
141
- addPattern(pattern) {
142
- return this.add(pattern);
143
- }
144
-
145
- _addPattern(pattern) {
146
- // https://github.com/kaelzhang/node-ignore/issues/32
147
- if (pattern && pattern[KEY_IGNORE]) {
148
- this._rules = this._rules.concat(pattern._rules);
149
- this._added = true;
150
- return;
151
- }
152
-
153
- if (this._checkPattern(pattern)) {
154
- const rule = this._createRule(pattern.trim());
155
-
156
- if (rule !== null) {
157
- this._added = true;
158
-
159
- this._rules.push(rule);
160
- }
161
- }
162
- }
163
-
164
- _checkPattern(pattern) {
165
- // https://github.com/moby/moby/blob/v19.03.8/builder/dockerignore/dockerignore.go#L34-L40
166
- return pattern && typeof pattern === 'string' && pattern.indexOf('#') !== 0 && pattern.trim() !== "";
167
- }
168
-
169
- filter(paths) {
170
- return make_array(paths).filter(path => this._filter(path));
171
- }
172
-
173
- createFilter() {
174
- return path => this._filter(path);
175
- }
176
-
177
- ignores(path) {
178
- return !this._filter(path);
179
- } // https://github.com/moby/moby/blob/v19.03.8/builder/dockerignore/dockerignore.go#L41-L53
180
- // https://github.com/moby/moby/blob/v19.03.8/pkg/fileutils/fileutils.go#L29-L55
181
-
182
-
183
- _createRule(pattern) {
184
- const origin = pattern;
185
- let negative = false; // > An optional prefix "!" which negates the pattern;
186
- // https://github.com/moby/moby/blob/v19.03.8/builder/dockerignore/dockerignore.go#L43-L46
187
-
188
- if (pattern[0] === '!') {
189
- negative = true;
190
- pattern = pattern.substring(1).trim();
191
- } // https://github.com/moby/moby/blob/v19.03.8/builder/dockerignore/dockerignore.go#L47-L53
192
-
193
-
194
- if (pattern.length > 0) {
195
- pattern = cleanPath(pattern);
196
- pattern = toSlash(pattern);
197
-
198
- if (pattern.length > 1 && pattern[0] === '/') {
199
- pattern = pattern.slice(1);
200
- }
201
- } // https://github.com/moby/moby/blob/v19.03.8/builder/dockerignore/dockerignore.go#L54-L55
202
-
203
-
204
- if (negative) {
205
- pattern = '!' + pattern;
206
- } // https://github.com/moby/moby/blob/v19.03.8/pkg/fileutils/fileutils.go#L30
207
-
208
-
209
- pattern = pattern.trim();
210
-
211
- if (pattern === "") {
212
- return null;
213
- } // https://github.com/moby/moby/blob/v19.03.8/pkg/fileutils/fileutils.go#L34
214
- // convert forward slashes to backslashes on Windows
215
-
216
-
217
- pattern = cleanPath(pattern); // https://github.com/moby/moby/blob/v19.03.8/pkg/fileutils/fileutils.go#L36-L42
218
-
219
- if (pattern[0] === '!') {
220
- if (pattern.length === 1) {
221
- return null;
222
- }
223
-
224
- negative = true;
225
- pattern = pattern.substring(1);
226
- } else {
227
- negative = false;
228
- }
229
-
230
- return {
231
- origin,
232
- pattern,
233
- // https://github.com/moby/moby/blob/v19.03.8/pkg/fileutils/fileutils.go#L54
234
- dirs: pattern.split(path.sep),
235
- negative
236
- };
237
- } // @returns `Boolean` true if the `path` is NOT ignored
238
-
239
-
240
- _filter(path) {
241
- if (!path) {
242
- return false;
243
- }
244
-
245
- if (path in this._cache) {
246
- return this._cache[path];
247
- }
248
-
249
- return this._cache[path] = this._test(path);
250
- } // @returns {Boolean} true if a file is NOT ignored
251
- // https://github.com/moby/moby/blob/v19.03.8/pkg/fileutils/fileutils.go#L62
252
-
253
-
254
- _test(file) {
255
- file = fromSlash(file); // equivalent to golang filepath.Dir() https://golang.org/src/path/filepath/path.go
256
-
257
- const parentPath = cleanPath(path.dirname(file));
258
- const parentPathDirs = parentPath.split(path.sep);
259
- let matched = false;
260
-
261
- this._rules.forEach(rule => {
262
- let match = this._match(file, rule); // https://github.com/moby/moby/blob/v19.03.8/pkg/fileutils/fileutils.go#L80
263
-
264
-
265
- if (!match && parentPath !== ".") {
266
- // Check to see if the pattern matches one of our parent dirs.
267
- if (rule.dirs.includes('**')) {
268
- // Ah shucks! We have to test every possible parent path that has
269
- // a number of dirs _n_ where
270
- // `rule.dirs.filter(doubleStar).length <= _n_ <= parentPathDirs.length`
271
- // since the ** can imply any number of directories including 0
272
- for (let i = rule.dirs.filter(x => x !== '**').length; i <= parentPathDirs.length; i++) {
273
- match = match || this._match(parentPathDirs.slice(0, i).join(path.sep), rule);
274
- }
275
- } else if (rule.dirs.length <= parentPathDirs.length) {
276
- // https://github.com/moby/moby/blob/v19.03.8/pkg/fileutils/fileutils.go#L83
277
- match = this._match(parentPathDirs.slice(0, rule.dirs.length).join(path.sep), rule);
278
- }
279
- }
280
-
281
- if (match) {
282
- matched = !rule.negative;
283
- }
284
- });
285
-
286
- return !matched;
287
- } // @returns {Boolean} true if a file is matched by a rule
288
-
289
-
290
- _match(file, rule) {
291
- return this._compile(rule).regexp.test(file);
292
- } // https://github.com/moby/moby/blob/v19.03.8/pkg/fileutils/fileutils.go#L139
293
-
294
-
295
- _compile(rule) {
296
- if (rule.regexp) {
297
- return rule;
298
- }
299
-
300
- let regStr = '^'; // Go through the pattern and convert it to a regexp.
301
-
302
- let escapedSlash = path.sep === '\\' ? '\\\\' : path.sep;
303
-
304
- for (let i = 0; i < rule.pattern.length; i++) {
305
- const ch = rule.pattern[i];
306
-
307
- if (ch === '*') {
308
- if (rule.pattern[i + 1] === '*') {
309
- // is some flavor of "**"
310
- i++; // Treat **/ as ** so eat the "/"
311
-
312
- if (rule.pattern[i + 1] === path.sep) {
313
- i++;
314
- }
315
-
316
- if (rule.pattern[i + 1] === undefined) {
317
- // is "**EOF" - to align with .gitignore just accept all
318
- regStr += ".*";
319
- } else {
320
- // is "**"
321
- // Note that this allows for any # of /'s (even 0) because
322
- // the .* will eat everything, even /'s
323
- regStr += `(.*${escapedSlash})?`;
324
- }
325
- } else {
326
- // is "*" so map it to anything but "/"
327
- regStr += `[^${escapedSlash}]*`;
328
- }
329
- } else if (ch === '?') {
330
- // "?" is any char except "/"
331
- regStr += `[^${escapedSlash}]`;
332
- } else if (ch === '.' || ch === '$') {
333
- // Escape some regexp special chars that have no meaning
334
- // in golang's filepath.Match
335
- regStr += `\\${ch}`;
336
- } else if (ch === '\\') {
337
- // escape next char. Note that a trailing \ in the pattern
338
- // will be left alone (but need to escape it)
339
- if (path.sep === '\\') {
340
- // On windows map "\" to "\\", meaning an escaped backslash,
341
- // and then just continue because filepath.Match on
342
- // Windows doesn't allow escaping at all
343
- regStr += escapedSlash;
344
- continue;
345
- }
346
-
347
- if (rule.pattern[i + 1] !== undefined) {
348
- regStr += '\\' + rule.pattern[i + 1];
349
- i++;
350
- } else {
351
- regStr += '\\';
352
- }
353
- } else {
354
- regStr += ch;
355
- }
356
- }
357
-
358
- regStr += "$";
359
- rule.regexp = new RegExp(regStr, this._ignorecase ? 'i' : '');
360
- return rule;
361
- }
362
-
363
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
node_modules/@balena/dockerignore/index.d.ts DELETED
@@ -1,45 +0,0 @@
1
- export interface Ignore {
2
- /**
3
- * Adds a rule rules to the current manager.
4
- * @param {string | Ignore} pattern
5
- * @returns IgnoreBase
6
- */
7
- add(pattern: string | Ignore): Ignore
8
- /**
9
- * Adds several rules to the current manager.
10
- * @param {string[]} patterns
11
- * @returns IgnoreBase
12
- */
13
- add(patterns: (string | Ignore)[]): Ignore
14
-
15
- /**
16
- * Filters the given array of pathnames, and returns the filtered array.
17
- * NOTICE that each path here should be a relative path to the root of your repository.
18
- * @param paths the array of paths to be filtered.
19
- * @returns The filtered array of paths
20
- */
21
- filter(paths: string[]): string[]
22
- /**
23
- * Creates a filter function which could filter
24
- * an array of paths with Array.prototype.filter.
25
- */
26
- createFilter(): (path: string) => boolean
27
-
28
- /**
29
- * Returns Boolean whether pathname should be ignored.
30
- * @param {string} pathname a path to check
31
- * @returns boolean
32
- */
33
- ignores(pathname: string): boolean
34
- }
35
-
36
- interface Options {
37
- ignorecase?: boolean
38
- }
39
-
40
- /**
41
- * Creates new ignore manager.
42
- */
43
- declare function ignore(options?: Options): Ignore
44
-
45
- export default ignore
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
node_modules/@balena/dockerignore/package.json DELETED
@@ -1,49 +0,0 @@
1
- {
2
- "name": "@balena/dockerignore",
3
- "version": "1.0.2",
4
- "description": "dockerignore is a file filter library compatible with Docker and the node-ignore API",
5
- "main": "./ignore.js",
6
- "files": [
7
- "ignore.js",
8
- "index.d.ts"
9
- ],
10
- "scripts": {
11
- "prepublishOnly": "npm run build",
12
- "build": "babel -o ignore.js index.js",
13
- "test": "npm run build && nyc ava ./test/ignore.js"
14
- },
15
- "repository": {
16
- "type": "git",
17
- "url": "git@github.com:balena-io-modules/dockerignore.git"
18
- },
19
- "keywords": [
20
- "ignore",
21
- ".dockerignore",
22
- "dockerignore",
23
- "rules",
24
- "manager",
25
- "filter",
26
- "regexp",
27
- "regex",
28
- "fnmatch",
29
- "glob",
30
- "asterisks",
31
- "regular-expression"
32
- ],
33
- "license": "Apache-2.0",
34
- "bugs": {
35
- "url": "https://github.com/balena-io-modules/dockerignore/issues"
36
- },
37
- "devDependencies": {
38
- "async-sema": "^3.1.0",
39
- "ava": "^0.25.0",
40
- "@babel/cli": "^7.8.4",
41
- "@babel/preset-env": "^7.9.6",
42
- "chai": "^4.2.0",
43
- "cuid": "^2.1.8",
44
- "mkdirp": "^1.0.4",
45
- "nyc": "^15.0.1",
46
- "rimraf": "^3.0.2",
47
- "tmp": "^0.2.1"
48
- }
49
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
node_modules/@grpc/grpc-js/LICENSE DELETED
@@ -1,201 +0,0 @@
1
- Apache License
2
- Version 2.0, January 2004
3
- http://www.apache.org/licenses/
4
-
5
- TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
6
-
7
- 1. Definitions.
8
-
9
- "License" shall mean the terms and conditions for use, reproduction,
10
- and distribution as defined by Sections 1 through 9 of this document.
11
-
12
- "Licensor" shall mean the copyright owner or entity authorized by
13
- the copyright owner that is granting the License.
14
-
15
- "Legal Entity" shall mean the union of the acting entity and all
16
- other entities that control, are controlled by, or are under common
17
- control with that entity. For the purposes of this definition,
18
- "control" means (i) the power, direct or indirect, to cause the
19
- direction or management of such entity, whether by contract or
20
- otherwise, or (ii) ownership of fifty percent (50%) or more of the
21
- outstanding shares, or (iii) beneficial ownership of such entity.
22
-
23
- "You" (or "Your") shall mean an individual or Legal Entity
24
- exercising permissions granted by this License.
25
-
26
- "Source" form shall mean the preferred form for making modifications,
27
- including but not limited to software source code, documentation
28
- source, and configuration files.
29
-
30
- "Object" form shall mean any form resulting from mechanical
31
- transformation or translation of a Source form, including but
32
- not limited to compiled object code, generated documentation,
33
- and conversions to other media types.
34
-
35
- "Work" shall mean the work of authorship, whether in Source or
36
- Object form, made available under the License, as indicated by a
37
- copyright notice that is included in or attached to the work
38
- (an example is provided in the Appendix below).
39
-
40
- "Derivative Works" shall mean any work, whether in Source or Object
41
- form, that is based on (or derived from) the Work and for which the
42
- editorial revisions, annotations, elaborations, or other modifications
43
- represent, as a whole, an original work of authorship. For the purposes
44
- of this License, Derivative Works shall not include works that remain
45
- separable from, or merely link (or bind by name) to the interfaces of,
46
- the Work and Derivative Works thereof.
47
-
48
- "Contribution" shall mean any work of authorship, including
49
- the original version of the Work and any modifications or additions
50
- to that Work or Derivative Works thereof, that is intentionally
51
- submitted to Licensor for inclusion in the Work by the copyright owner
52
- or by an individual or Legal Entity authorized to submit on behalf of
53
- the copyright owner. For the purposes of this definition, "submitted"
54
- means any form of electronic, verbal, or written communication sent
55
- to the Licensor or its representatives, including but not limited to
56
- communication on electronic mailing lists, source code control systems,
57
- and issue tracking systems that are managed by, or on behalf of, the
58
- Licensor for the purpose of discussing and improving the Work, but
59
- excluding communication that is conspicuously marked or otherwise
60
- designated in writing by the copyright owner as "Not a Contribution."
61
-
62
- "Contributor" shall mean Licensor and any individual or Legal Entity
63
- on behalf of whom a Contribution has been received by Licensor and
64
- subsequently incorporated within the Work.
65
-
66
- 2. Grant of Copyright License. Subject to the terms and conditions of
67
- this License, each Contributor hereby grants to You a perpetual,
68
- worldwide, non-exclusive, no-charge, royalty-free, irrevocable
69
- copyright license to reproduce, prepare Derivative Works of,
70
- publicly display, publicly perform, sublicense, and distribute the
71
- Work and such Derivative Works in Source or Object form.
72
-
73
- 3. Grant of Patent License. Subject to the terms and conditions of
74
- this License, each Contributor hereby grants to You a perpetual,
75
- worldwide, non-exclusive, no-charge, royalty-free, irrevocable
76
- (except as stated in this section) patent license to make, have made,
77
- use, offer to sell, sell, import, and otherwise transfer the Work,
78
- where such license applies only to those patent claims licensable
79
- by such Contributor that are necessarily infringed by their
80
- Contribution(s) alone or by combination of their Contribution(s)
81
- with the Work to which such Contribution(s) was submitted. If You
82
- institute patent litigation against any entity (including a
83
- cross-claim or counterclaim in a lawsuit) alleging that the Work
84
- or a Contribution incorporated within the Work constitutes direct
85
- or contributory patent infringement, then any patent licenses
86
- granted to You under this License for that Work shall terminate
87
- as of the date such litigation is filed.
88
-
89
- 4. Redistribution. You may reproduce and distribute copies of the
90
- Work or Derivative Works thereof in any medium, with or without
91
- modifications, and in Source or Object form, provided that You
92
- meet the following conditions:
93
-
94
- (a) You must give any other recipients of the Work or
95
- Derivative Works a copy of this License; and
96
-
97
- (b) You must cause any modified files to carry prominent notices
98
- stating that You changed the files; and
99
-
100
- (c) You must retain, in the Source form of any Derivative Works
101
- that You distribute, all copyright, patent, trademark, and
102
- attribution notices from the Source form of the Work,
103
- excluding those notices that do not pertain to any part of
104
- the Derivative Works; and
105
-
106
- (d) If the Work includes a "NOTICE" text file as part of its
107
- distribution, then any Derivative Works that You distribute must
108
- include a readable copy of the attribution notices contained
109
- within such NOTICE file, excluding those notices that do not
110
- pertain to any part of the Derivative Works, in at least one
111
- of the following places: within a NOTICE text file distributed
112
- as part of the Derivative Works; within the Source form or
113
- documentation, if provided along with the Derivative Works; or,
114
- within a display generated by the Derivative Works, if and
115
- wherever such third-party notices normally appear. The contents
116
- of the NOTICE file are for informational purposes only and
117
- do not modify the License. You may add Your own attribution
118
- notices within Derivative Works that You distribute, alongside
119
- or as an addendum to the NOTICE text from the Work, provided
120
- that such additional attribution notices cannot be construed
121
- as modifying the License.
122
-
123
- You may add Your own copyright statement to Your modifications and
124
- may provide additional or different license terms and conditions
125
- for use, reproduction, or distribution of Your modifications, or
126
- for any such Derivative Works as a whole, provided Your use,
127
- reproduction, and distribution of the Work otherwise complies with
128
- the conditions stated in this License.
129
-
130
- 5. Submission of Contributions. Unless You explicitly state otherwise,
131
- any Contribution intentionally submitted for inclusion in the Work
132
- by You to the Licensor shall be under the terms and conditions of
133
- this License, without any additional terms or conditions.
134
- Notwithstanding the above, nothing herein shall supersede or modify
135
- the terms of any separate license agreement you may have executed
136
- with Licensor regarding such Contributions.
137
-
138
- 6. Trademarks. This License does not grant permission to use the trade
139
- names, trademarks, service marks, or product names of the Licensor,
140
- except as required for reasonable and customary use in describing the
141
- origin of the Work and reproducing the content of the NOTICE file.
142
-
143
- 7. Disclaimer of Warranty. Unless required by applicable law or
144
- agreed to in writing, Licensor provides the Work (and each
145
- Contributor provides its Contributions) on an "AS IS" BASIS,
146
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
147
- implied, including, without limitation, any warranties or conditions
148
- of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
149
- PARTICULAR PURPOSE. You are solely responsible for determining the
150
- appropriateness of using or redistributing the Work and assume any
151
- risks associated with Your exercise of permissions under this License.
152
-
153
- 8. Limitation of Liability. In no event and under no legal theory,
154
- whether in tort (including negligence), contract, or otherwise,
155
- unless required by applicable law (such as deliberate and grossly
156
- negligent acts) or agreed to in writing, shall any Contributor be
157
- liable to You for damages, including any direct, indirect, special,
158
- incidental, or consequential damages of any character arising as a
159
- result of this License or out of the use or inability to use the
160
- Work (including but not limited to damages for loss of goodwill,
161
- work stoppage, computer failure or malfunction, or any and all
162
- other commercial damages or losses), even if such Contributor
163
- has been advised of the possibility of such damages.
164
-
165
- 9. Accepting Warranty or Additional Liability. While redistributing
166
- the Work or Derivative Works thereof, You may choose to offer,
167
- and charge a fee for, acceptance of support, warranty, indemnity,
168
- or other liability obligations and/or rights consistent with this
169
- License. However, in accepting such obligations, You may act only
170
- on Your own behalf and on Your sole responsibility, not on behalf
171
- of any other Contributor, and only if You agree to indemnify,
172
- defend, and hold each Contributor harmless for any liability
173
- incurred by, or claims asserted against, such Contributor by reason
174
- of your accepting any such warranty or additional liability.
175
-
176
- END OF TERMS AND CONDITIONS
177
-
178
- APPENDIX: How to apply the Apache License to your work.
179
-
180
- To apply the Apache License to your work, attach the following
181
- boilerplate notice, with the fields enclosed by brackets "{}"
182
- replaced with your own identifying information. (Don't include
183
- the brackets!) The text should be enclosed in the appropriate
184
- comment syntax for the file format. We also recommend that a
185
- file or class name and description of purpose be included on the
186
- same "printed page" as the copyright notice for easier
187
- identification within third-party archives.
188
-
189
- Copyright {yyyy} {name of copyright owner}
190
-
191
- Licensed under the Apache License, Version 2.0 (the "License");
192
- you may not use this file except in compliance with the License.
193
- You may obtain a copy of the License at
194
-
195
- http://www.apache.org/licenses/LICENSE-2.0
196
-
197
- Unless required by applicable law or agreed to in writing, software
198
- distributed under the License is distributed on an "AS IS" BASIS,
199
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
200
- See the License for the specific language governing permissions and
201
- limitations under the License.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
node_modules/@grpc/grpc-js/README.md DELETED
@@ -1,84 +0,0 @@
1
- # Pure JavaScript gRPC Client
2
-
3
- ## Installation
4
-
5
- Node 12 is recommended. The exact set of compatible Node versions can be found in the `engines` field of the `package.json` file.
6
-
7
- ```sh
8
- npm install @grpc/grpc-js
9
- ```
10
-
11
- ## Documentation
12
-
13
- Documentation specifically for the `@grpc/grpc-js` package is currently not available. However, [documentation is available for the `grpc` package](https://grpc.github.io/grpc/node/grpc.html), and the two packages contain mostly the same interface. There are a few notable differences, however, and these differences are noted in the "Migrating from grpc" section below.
14
-
15
- ## Features
16
-
17
- - Clients
18
- - Automatic reconnection
19
- - Servers
20
- - Streaming
21
- - Metadata
22
- - Partial compression support: clients can compress and decompress messages, and servers can decompress request messages
23
- - Pick first and round robin load balancing policies
24
- - Client Interceptors
25
- - Connection Keepalives
26
- - HTTP Connect support (proxies)
27
-
28
- If you need a feature from the `grpc` package that is not provided by the `@grpc/grpc-js`, please file a feature request with that information.
29
-
30
- This library does not directly handle `.proto` files. To use `.proto` files with this library we recommend using the `@grpc/proto-loader` package.
31
-
32
- ## Migrating from [`grpc`](https://www.npmjs.com/package/grpc)
33
-
34
- `@grpc/grpc-js` is almost a drop-in replacement for `grpc`, but you may need to make a few code changes to use it:
35
-
36
- - If you are currently loading `.proto` files using `grpc.load`, that function is not available in this library. You should instead load your `.proto` files using `@grpc/proto-loader` and load the resulting package definition objects into `@grpc/grpc-js` using `grpc.loadPackageDefinition`.
37
- - If you are currently loading packages generated by `grpc-tools`, you should instead generate your files using the `generate_package_definition` option in `grpc-tools`, then load the object exported by the generated file into `@grpc/grpc-js` using `grpc.loadPackageDefinition`.
38
- - If you have a server and you are using `Server#bind` to bind ports, you will need to use `Server#bindAsync` instead.
39
- - If you are using any channel options supported in `grpc` but not supported in `@grpc/grpc-js`, you may need to adjust your code to handle the different behavior. Refer to [the list of supported options](#supported-channel-options) below.
40
- - Refer to the [detailed package comparison](https://github.com/grpc/grpc-node/blob/master/PACKAGE-COMPARISON.md) for more details on the differences between `grpc` and `@grpc/grpc-js`.
41
-
42
- ## Supported Channel Options
43
- Many channel arguments supported in `grpc` are not supported in `@grpc/grpc-js`. The channel arguments supported by `@grpc/grpc-js` are:
44
- - `grpc.ssl_target_name_override`
45
- - `grpc.primary_user_agent`
46
- - `grpc.secondary_user_agent`
47
- - `grpc.default_authority`
48
- - `grpc.keepalive_time_ms`
49
- - `grpc.keepalive_timeout_ms`
50
- - `grpc.keepalive_permit_without_calls`
51
- - `grpc.service_config`
52
- - `grpc.max_concurrent_streams`
53
- - `grpc.initial_reconnect_backoff_ms`
54
- - `grpc.max_reconnect_backoff_ms`
55
- - `grpc.use_local_subchannel_pool`
56
- - `grpc.max_send_message_length`
57
- - `grpc.max_receive_message_length`
58
- - `grpc.enable_http_proxy`
59
- - `grpc.default_compression_algorithm`
60
- - `grpc.enable_channelz`
61
- - `grpc.dns_min_time_between_resolutions_ms`
62
- - `grpc.enable_retries`
63
- - `grpc.max_connection_age_ms`
64
- - `grpc.max_connection_age_grace_ms`
65
- - `grpc.max_connection_idle_ms`
66
- - `grpc.per_rpc_retry_buffer_size`
67
- - `grpc.retry_buffer_size`
68
- - `grpc.service_config_disable_resolution`
69
- - `grpc.client_idle_timeout_ms`
70
- - `grpc-node.max_session_memory`
71
- - `grpc-node.tls_enable_trace`
72
- - `grpc-node.retry_max_attempts_limit`
73
- - `grpc-node.flow_control_window`
74
- - `channelOverride`
75
- - `channelFactoryOverride`
76
-
77
- ## Some Notes on API Guarantees
78
-
79
- The public API of this library follows semantic versioning, with some caveats:
80
-
81
- - Some methods are prefixed with an underscore. These methods are internal and should not be considered part of the public API.
82
- - The class `Call` is only exposed due to limitations of TypeScript. It should not be considered part of the public API.
83
- - In general, any API that is exposed by this library but is not exposed by the `grpc` library is likely an error and should not be considered part of the public API.
84
- - The `grpc.experimental` namespace contains APIs that have not stabilized. Any API in that namespace may break in any minor version update.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
node_modules/@grpc/grpc-js/build/src/admin.d.ts DELETED
@@ -1,11 +0,0 @@
1
- import { ServiceDefinition } from './make-client';
2
- import { Server, UntypedServiceImplementation } from './server';
3
- interface GetServiceDefinition {
4
- (): ServiceDefinition;
5
- }
6
- interface GetHandlers {
7
- (): UntypedServiceImplementation;
8
- }
9
- export declare function registerAdminService(getServiceDefinition: GetServiceDefinition, getHandlers: GetHandlers): void;
10
- export declare function addAdminServicesToServer(server: Server): void;
11
- export {};
 
 
 
 
 
 
 
 
 
 
 
 
node_modules/@grpc/grpc-js/build/src/admin.js DELETED
@@ -1,30 +0,0 @@
1
- "use strict";
2
- /*
3
- * Copyright 2021 gRPC authors.
4
- *
5
- * Licensed under the Apache License, Version 2.0 (the "License");
6
- * you may not use this file except in compliance with the License.
7
- * You may obtain a copy of the License at
8
- *
9
- * http://www.apache.org/licenses/LICENSE-2.0
10
- *
11
- * Unless required by applicable law or agreed to in writing, software
12
- * distributed under the License is distributed on an "AS IS" BASIS,
13
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
- * See the License for the specific language governing permissions and
15
- * limitations under the License.
16
- *
17
- */
18
- Object.defineProperty(exports, "__esModule", { value: true });
19
- exports.registerAdminService = registerAdminService;
20
- exports.addAdminServicesToServer = addAdminServicesToServer;
21
- const registeredAdminServices = [];
22
- function registerAdminService(getServiceDefinition, getHandlers) {
23
- registeredAdminServices.push({ getServiceDefinition, getHandlers });
24
- }
25
- function addAdminServicesToServer(server) {
26
- for (const { getServiceDefinition, getHandlers } of registeredAdminServices) {
27
- server.addService(getServiceDefinition(), getHandlers());
28
- }
29
- }
30
- //# sourceMappingURL=admin.js.map
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
node_modules/@grpc/grpc-js/build/src/admin.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"admin.js","sourceRoot":"","sources":["../../src/admin.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;GAeG;;AAkBH,oDAKC;AAED,4DAIC;AAhBD,MAAM,uBAAuB,GAGvB,EAAE,CAAC;AAET,SAAgB,oBAAoB,CAClC,oBAA0C,EAC1C,WAAwB;IAExB,uBAAuB,CAAC,IAAI,CAAC,EAAE,oBAAoB,EAAE,WAAW,EAAE,CAAC,CAAC;AACtE,CAAC;AAED,SAAgB,wBAAwB,CAAC,MAAc;IACrD,KAAK,MAAM,EAAE,oBAAoB,EAAE,WAAW,EAAE,IAAI,uBAAuB,EAAE,CAAC;QAC5E,MAAM,CAAC,UAAU,CAAC,oBAAoB,EAAE,EAAE,WAAW,EAAE,CAAC,CAAC;IAC3D,CAAC;AACH,CAAC"}
 
 
node_modules/@grpc/grpc-js/build/src/auth-context.d.ts DELETED
@@ -1,5 +0,0 @@
1
- import { PeerCertificate } from "tls";
2
- export interface AuthContext {
3
- transportSecurityType?: string;
4
- sslPeerCertificate?: PeerCertificate;
5
- }
 
 
 
 
 
 
node_modules/@grpc/grpc-js/build/src/auth-context.js DELETED
@@ -1,19 +0,0 @@
1
- "use strict";
2
- /*
3
- * Copyright 2025 gRPC authors.
4
- *
5
- * Licensed under the Apache License, Version 2.0 (the "License");
6
- * you may not use this file except in compliance with the License.
7
- * You may obtain a copy of the License at
8
- *
9
- * http://www.apache.org/licenses/LICENSE-2.0
10
- *
11
- * Unless required by applicable law or agreed to in writing, software
12
- * distributed under the License is distributed on an "AS IS" BASIS,
13
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
- * See the License for the specific language governing permissions and
15
- * limitations under the License.
16
- *
17
- */
18
- Object.defineProperty(exports, "__esModule", { value: true });
19
- //# sourceMappingURL=auth-context.js.map
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
node_modules/@grpc/grpc-js/build/src/auth-context.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"auth-context.js","sourceRoot":"","sources":["../../src/auth-context.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;GAeG"}
 
 
node_modules/@grpc/grpc-js/build/src/backoff-timeout.d.ts DELETED
@@ -1,94 +0,0 @@
1
- export interface BackoffOptions {
2
- initialDelay?: number;
3
- multiplier?: number;
4
- jitter?: number;
5
- maxDelay?: number;
6
- }
7
- export declare class BackoffTimeout {
8
- private callback;
9
- /**
10
- * The delay time at the start, and after each reset.
11
- */
12
- private readonly initialDelay;
13
- /**
14
- * The exponential backoff multiplier.
15
- */
16
- private readonly multiplier;
17
- /**
18
- * The maximum delay time
19
- */
20
- private readonly maxDelay;
21
- /**
22
- * The maximum fraction by which the delay time can randomly vary after
23
- * applying the multiplier.
24
- */
25
- private readonly jitter;
26
- /**
27
- * The delay time for the next time the timer runs.
28
- */
29
- private nextDelay;
30
- /**
31
- * The handle of the underlying timer. If running is false, this value refers
32
- * to an object representing a timer that has ended, but it can still be
33
- * interacted with without error.
34
- */
35
- private timerId;
36
- /**
37
- * Indicates whether the timer is currently running.
38
- */
39
- private running;
40
- /**
41
- * Indicates whether the timer should keep the Node process running if no
42
- * other async operation is doing so.
43
- */
44
- private hasRef;
45
- /**
46
- * The time that the currently running timer was started. Only valid if
47
- * running is true.
48
- */
49
- private startTime;
50
- /**
51
- * The approximate time that the currently running timer will end. Only valid
52
- * if running is true.
53
- */
54
- private endTime;
55
- private id;
56
- private static nextId;
57
- constructor(callback: () => void, options?: BackoffOptions);
58
- private static getNextId;
59
- private trace;
60
- private runTimer;
61
- /**
62
- * Call the callback after the current amount of delay time
63
- */
64
- runOnce(): void;
65
- /**
66
- * Stop the timer. The callback will not be called until `runOnce` is called
67
- * again.
68
- */
69
- stop(): void;
70
- /**
71
- * Reset the delay time to its initial value. If the timer is still running,
72
- * retroactively apply that reset to the current timer.
73
- */
74
- reset(): void;
75
- /**
76
- * Check whether the timer is currently running.
77
- */
78
- isRunning(): boolean;
79
- /**
80
- * Set that while the timer is running, it should keep the Node process
81
- * running.
82
- */
83
- ref(): void;
84
- /**
85
- * Set that while the timer is running, it should not keep the Node process
86
- * running.
87
- */
88
- unref(): void;
89
- /**
90
- * Get the approximate timestamp of when the timer will fire. Only valid if
91
- * this.isRunning() is true.
92
- */
93
- getEndTime(): Date;
94
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
node_modules/@grpc/grpc-js/build/src/backoff-timeout.js DELETED
@@ -1,191 +0,0 @@
1
- "use strict";
2
- /*
3
- * Copyright 2019 gRPC authors.
4
- *
5
- * Licensed under the Apache License, Version 2.0 (the "License");
6
- * you may not use this file except in compliance with the License.
7
- * You may obtain a copy of the License at
8
- *
9
- * http://www.apache.org/licenses/LICENSE-2.0
10
- *
11
- * Unless required by applicable law or agreed to in writing, software
12
- * distributed under the License is distributed on an "AS IS" BASIS,
13
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
- * See the License for the specific language governing permissions and
15
- * limitations under the License.
16
- *
17
- */
18
- Object.defineProperty(exports, "__esModule", { value: true });
19
- exports.BackoffTimeout = void 0;
20
- const constants_1 = require("./constants");
21
- const logging = require("./logging");
22
- const TRACER_NAME = 'backoff';
23
- const INITIAL_BACKOFF_MS = 1000;
24
- const BACKOFF_MULTIPLIER = 1.6;
25
- const MAX_BACKOFF_MS = 120000;
26
- const BACKOFF_JITTER = 0.2;
27
- /**
28
- * Get a number uniformly at random in the range [min, max)
29
- * @param min
30
- * @param max
31
- */
32
- function uniformRandom(min, max) {
33
- return Math.random() * (max - min) + min;
34
- }
35
- class BackoffTimeout {
36
- constructor(callback, options) {
37
- this.callback = callback;
38
- /**
39
- * The delay time at the start, and after each reset.
40
- */
41
- this.initialDelay = INITIAL_BACKOFF_MS;
42
- /**
43
- * The exponential backoff multiplier.
44
- */
45
- this.multiplier = BACKOFF_MULTIPLIER;
46
- /**
47
- * The maximum delay time
48
- */
49
- this.maxDelay = MAX_BACKOFF_MS;
50
- /**
51
- * The maximum fraction by which the delay time can randomly vary after
52
- * applying the multiplier.
53
- */
54
- this.jitter = BACKOFF_JITTER;
55
- /**
56
- * Indicates whether the timer is currently running.
57
- */
58
- this.running = false;
59
- /**
60
- * Indicates whether the timer should keep the Node process running if no
61
- * other async operation is doing so.
62
- */
63
- this.hasRef = true;
64
- /**
65
- * The time that the currently running timer was started. Only valid if
66
- * running is true.
67
- */
68
- this.startTime = new Date();
69
- /**
70
- * The approximate time that the currently running timer will end. Only valid
71
- * if running is true.
72
- */
73
- this.endTime = new Date();
74
- this.id = BackoffTimeout.getNextId();
75
- if (options) {
76
- if (options.initialDelay) {
77
- this.initialDelay = options.initialDelay;
78
- }
79
- if (options.multiplier) {
80
- this.multiplier = options.multiplier;
81
- }
82
- if (options.jitter) {
83
- this.jitter = options.jitter;
84
- }
85
- if (options.maxDelay) {
86
- this.maxDelay = options.maxDelay;
87
- }
88
- }
89
- this.trace('constructed initialDelay=' + this.initialDelay + ' multiplier=' + this.multiplier + ' jitter=' + this.jitter + ' maxDelay=' + this.maxDelay);
90
- this.nextDelay = this.initialDelay;
91
- this.timerId = setTimeout(() => { }, 0);
92
- clearTimeout(this.timerId);
93
- }
94
- static getNextId() {
95
- return this.nextId++;
96
- }
97
- trace(text) {
98
- logging.trace(constants_1.LogVerbosity.DEBUG, TRACER_NAME, '{' + this.id + '} ' + text);
99
- }
100
- runTimer(delay) {
101
- var _a, _b;
102
- this.trace('runTimer(delay=' + delay + ')');
103
- this.endTime = this.startTime;
104
- this.endTime.setMilliseconds(this.endTime.getMilliseconds() + delay);
105
- clearTimeout(this.timerId);
106
- this.timerId = setTimeout(() => {
107
- this.trace('timer fired');
108
- this.running = false;
109
- this.callback();
110
- }, delay);
111
- if (!this.hasRef) {
112
- (_b = (_a = this.timerId).unref) === null || _b === void 0 ? void 0 : _b.call(_a);
113
- }
114
- }
115
- /**
116
- * Call the callback after the current amount of delay time
117
- */
118
- runOnce() {
119
- this.trace('runOnce()');
120
- this.running = true;
121
- this.startTime = new Date();
122
- this.runTimer(this.nextDelay);
123
- const nextBackoff = Math.min(this.nextDelay * this.multiplier, this.maxDelay);
124
- const jitterMagnitude = nextBackoff * this.jitter;
125
- this.nextDelay =
126
- nextBackoff + uniformRandom(-jitterMagnitude, jitterMagnitude);
127
- }
128
- /**
129
- * Stop the timer. The callback will not be called until `runOnce` is called
130
- * again.
131
- */
132
- stop() {
133
- this.trace('stop()');
134
- clearTimeout(this.timerId);
135
- this.running = false;
136
- }
137
- /**
138
- * Reset the delay time to its initial value. If the timer is still running,
139
- * retroactively apply that reset to the current timer.
140
- */
141
- reset() {
142
- this.trace('reset() running=' + this.running);
143
- this.nextDelay = this.initialDelay;
144
- if (this.running) {
145
- const now = new Date();
146
- const newEndTime = this.startTime;
147
- newEndTime.setMilliseconds(newEndTime.getMilliseconds() + this.nextDelay);
148
- clearTimeout(this.timerId);
149
- if (now < newEndTime) {
150
- this.runTimer(newEndTime.getTime() - now.getTime());
151
- }
152
- else {
153
- this.running = false;
154
- }
155
- }
156
- }
157
- /**
158
- * Check whether the timer is currently running.
159
- */
160
- isRunning() {
161
- return this.running;
162
- }
163
- /**
164
- * Set that while the timer is running, it should keep the Node process
165
- * running.
166
- */
167
- ref() {
168
- var _a, _b;
169
- this.hasRef = true;
170
- (_b = (_a = this.timerId).ref) === null || _b === void 0 ? void 0 : _b.call(_a);
171
- }
172
- /**
173
- * Set that while the timer is running, it should not keep the Node process
174
- * running.
175
- */
176
- unref() {
177
- var _a, _b;
178
- this.hasRef = false;
179
- (_b = (_a = this.timerId).unref) === null || _b === void 0 ? void 0 : _b.call(_a);
180
- }
181
- /**
182
- * Get the approximate timestamp of when the timer will fire. Only valid if
183
- * this.isRunning() is true.
184
- */
185
- getEndTime() {
186
- return this.endTime;
187
- }
188
- }
189
- exports.BackoffTimeout = BackoffTimeout;
190
- BackoffTimeout.nextId = 0;
191
- //# sourceMappingURL=backoff-timeout.js.map
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
node_modules/@grpc/grpc-js/build/src/backoff-timeout.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"backoff-timeout.js","sourceRoot":"","sources":["../../src/backoff-timeout.ts"],"names":[],"mappings":"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"}
 
 
node_modules/@grpc/grpc-js/build/src/call-credentials.d.ts DELETED
@@ -1,57 +0,0 @@
1
- import { Metadata } from './metadata';
2
- export interface CallMetadataOptions {
3
- method_name: string;
4
- service_url: string;
5
- }
6
- export type CallMetadataGenerator = (options: CallMetadataOptions, cb: (err: Error | null, metadata?: Metadata) => void) => void;
7
- export interface OldOAuth2Client {
8
- getRequestMetadata: (url: string, callback: (err: Error | null, headers?: {
9
- [index: string]: string;
10
- }) => void) => void;
11
- }
12
- export interface CurrentOAuth2Client {
13
- getRequestHeaders: (url?: string) => Promise<{
14
- [index: string]: string;
15
- }>;
16
- }
17
- export type OAuth2Client = OldOAuth2Client | CurrentOAuth2Client;
18
- /**
19
- * A class that represents a generic method of adding authentication-related
20
- * metadata on a per-request basis.
21
- */
22
- export declare abstract class CallCredentials {
23
- /**
24
- * Asynchronously generates a new Metadata object.
25
- * @param options Options used in generating the Metadata object.
26
- */
27
- abstract generateMetadata(options: CallMetadataOptions): Promise<Metadata>;
28
- /**
29
- * Creates a new CallCredentials object from properties of both this and
30
- * another CallCredentials object. This object's metadata generator will be
31
- * called first.
32
- * @param callCredentials The other CallCredentials object.
33
- */
34
- abstract compose(callCredentials: CallCredentials): CallCredentials;
35
- /**
36
- * Check whether two call credentials objects are equal. Separate
37
- * SingleCallCredentials with identical metadata generator functions are
38
- * equal.
39
- * @param other The other CallCredentials object to compare with.
40
- */
41
- abstract _equals(other: CallCredentials): boolean;
42
- /**
43
- * Creates a new CallCredentials object from a given function that generates
44
- * Metadata objects.
45
- * @param metadataGenerator A function that accepts a set of options, and
46
- * generates a Metadata object based on these options, which is passed back
47
- * to the caller via a supplied (err, metadata) callback.
48
- */
49
- static createFromMetadataGenerator(metadataGenerator: CallMetadataGenerator): CallCredentials;
50
- /**
51
- * Create a gRPC credential from a Google credential object.
52
- * @param googleCredentials The authentication client to use.
53
- * @return The resulting CallCredentials object.
54
- */
55
- static createFromGoogleCredential(googleCredentials: OAuth2Client): CallCredentials;
56
- static createEmpty(): CallCredentials;
57
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
node_modules/@grpc/grpc-js/build/src/call-credentials.js DELETED
@@ -1,153 +0,0 @@
1
- "use strict";
2
- /*
3
- * Copyright 2019 gRPC authors.
4
- *
5
- * Licensed under the Apache License, Version 2.0 (the "License");
6
- * you may not use this file except in compliance with the License.
7
- * You may obtain a copy of the License at
8
- *
9
- * http://www.apache.org/licenses/LICENSE-2.0
10
- *
11
- * Unless required by applicable law or agreed to in writing, software
12
- * distributed under the License is distributed on an "AS IS" BASIS,
13
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
- * See the License for the specific language governing permissions and
15
- * limitations under the License.
16
- *
17
- */
18
- Object.defineProperty(exports, "__esModule", { value: true });
19
- exports.CallCredentials = void 0;
20
- const metadata_1 = require("./metadata");
21
- function isCurrentOauth2Client(client) {
22
- return ('getRequestHeaders' in client &&
23
- typeof client.getRequestHeaders === 'function');
24
- }
25
- /**
26
- * A class that represents a generic method of adding authentication-related
27
- * metadata on a per-request basis.
28
- */
29
- class CallCredentials {
30
- /**
31
- * Creates a new CallCredentials object from a given function that generates
32
- * Metadata objects.
33
- * @param metadataGenerator A function that accepts a set of options, and
34
- * generates a Metadata object based on these options, which is passed back
35
- * to the caller via a supplied (err, metadata) callback.
36
- */
37
- static createFromMetadataGenerator(metadataGenerator) {
38
- return new SingleCallCredentials(metadataGenerator);
39
- }
40
- /**
41
- * Create a gRPC credential from a Google credential object.
42
- * @param googleCredentials The authentication client to use.
43
- * @return The resulting CallCredentials object.
44
- */
45
- static createFromGoogleCredential(googleCredentials) {
46
- return CallCredentials.createFromMetadataGenerator((options, callback) => {
47
- let getHeaders;
48
- if (isCurrentOauth2Client(googleCredentials)) {
49
- getHeaders = googleCredentials.getRequestHeaders(options.service_url);
50
- }
51
- else {
52
- getHeaders = new Promise((resolve, reject) => {
53
- googleCredentials.getRequestMetadata(options.service_url, (err, headers) => {
54
- if (err) {
55
- reject(err);
56
- return;
57
- }
58
- if (!headers) {
59
- reject(new Error('Headers not set by metadata plugin'));
60
- return;
61
- }
62
- resolve(headers);
63
- });
64
- });
65
- }
66
- getHeaders.then(headers => {
67
- const metadata = new metadata_1.Metadata();
68
- for (const key of Object.keys(headers)) {
69
- metadata.add(key, headers[key]);
70
- }
71
- callback(null, metadata);
72
- }, err => {
73
- callback(err);
74
- });
75
- });
76
- }
77
- static createEmpty() {
78
- return new EmptyCallCredentials();
79
- }
80
- }
81
- exports.CallCredentials = CallCredentials;
82
- class ComposedCallCredentials extends CallCredentials {
83
- constructor(creds) {
84
- super();
85
- this.creds = creds;
86
- }
87
- async generateMetadata(options) {
88
- const base = new metadata_1.Metadata();
89
- const generated = await Promise.all(this.creds.map(cred => cred.generateMetadata(options)));
90
- for (const gen of generated) {
91
- base.merge(gen);
92
- }
93
- return base;
94
- }
95
- compose(other) {
96
- return new ComposedCallCredentials(this.creds.concat([other]));
97
- }
98
- _equals(other) {
99
- if (this === other) {
100
- return true;
101
- }
102
- if (other instanceof ComposedCallCredentials) {
103
- return this.creds.every((value, index) => value._equals(other.creds[index]));
104
- }
105
- else {
106
- return false;
107
- }
108
- }
109
- }
110
- class SingleCallCredentials extends CallCredentials {
111
- constructor(metadataGenerator) {
112
- super();
113
- this.metadataGenerator = metadataGenerator;
114
- }
115
- generateMetadata(options) {
116
- return new Promise((resolve, reject) => {
117
- this.metadataGenerator(options, (err, metadata) => {
118
- if (metadata !== undefined) {
119
- resolve(metadata);
120
- }
121
- else {
122
- reject(err);
123
- }
124
- });
125
- });
126
- }
127
- compose(other) {
128
- return new ComposedCallCredentials([this, other]);
129
- }
130
- _equals(other) {
131
- if (this === other) {
132
- return true;
133
- }
134
- if (other instanceof SingleCallCredentials) {
135
- return this.metadataGenerator === other.metadataGenerator;
136
- }
137
- else {
138
- return false;
139
- }
140
- }
141
- }
142
- class EmptyCallCredentials extends CallCredentials {
143
- generateMetadata(options) {
144
- return Promise.resolve(new metadata_1.Metadata());
145
- }
146
- compose(other) {
147
- return other;
148
- }
149
- _equals(other) {
150
- return other instanceof EmptyCallCredentials;
151
- }
152
- }
153
- //# sourceMappingURL=call-credentials.js.map
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
node_modules/@grpc/grpc-js/build/src/call-credentials.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"call-credentials.js","sourceRoot":"","sources":["../../src/call-credentials.ts"],"names":[],"mappings":"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"}
 
 
node_modules/@grpc/grpc-js/build/src/call-interface.d.ts DELETED
@@ -1,101 +0,0 @@
1
- import { AuthContext } from './auth-context';
2
- import { CallCredentials } from './call-credentials';
3
- import { Status } from './constants';
4
- import { Deadline } from './deadline';
5
- import { Metadata } from './metadata';
6
- import { ServerSurfaceCall } from './server-call';
7
- export interface CallStreamOptions {
8
- deadline: Deadline;
9
- flags: number;
10
- host: string;
11
- parentCall: ServerSurfaceCall | null;
12
- }
13
- export type PartialCallStreamOptions = Partial<CallStreamOptions>;
14
- export interface StatusObject {
15
- code: Status;
16
- details: string;
17
- metadata: Metadata;
18
- }
19
- export type PartialStatusObject = Pick<StatusObject, 'code' | 'details'> & {
20
- metadata?: Metadata | null | undefined;
21
- };
22
- export interface StatusOrOk<T> {
23
- ok: true;
24
- value: T;
25
- }
26
- export interface StatusOrError {
27
- ok: false;
28
- error: StatusObject;
29
- }
30
- export type StatusOr<T> = StatusOrOk<T> | StatusOrError;
31
- export declare function statusOrFromValue<T>(value: T): StatusOr<T>;
32
- export declare function statusOrFromError<T>(error: PartialStatusObject): StatusOr<T>;
33
- export declare const enum WriteFlags {
34
- BufferHint = 1,
35
- NoCompress = 2,
36
- WriteThrough = 4
37
- }
38
- export interface WriteObject {
39
- message: Buffer;
40
- flags?: number;
41
- }
42
- export interface MetadataListener {
43
- (metadata: Metadata, next: (metadata: Metadata) => void): void;
44
- }
45
- export interface MessageListener {
46
- (message: any, next: (message: any) => void): void;
47
- }
48
- export interface StatusListener {
49
- (status: StatusObject, next: (status: StatusObject) => void): void;
50
- }
51
- export interface FullListener {
52
- onReceiveMetadata: MetadataListener;
53
- onReceiveMessage: MessageListener;
54
- onReceiveStatus: StatusListener;
55
- }
56
- export type Listener = Partial<FullListener>;
57
- /**
58
- * An object with methods for handling the responses to a call.
59
- */
60
- export interface InterceptingListener {
61
- onReceiveMetadata(metadata: Metadata): void;
62
- onReceiveMessage(message: any): void;
63
- onReceiveStatus(status: StatusObject): void;
64
- }
65
- export declare function isInterceptingListener(listener: Listener | InterceptingListener): listener is InterceptingListener;
66
- export declare class InterceptingListenerImpl implements InterceptingListener {
67
- private listener;
68
- private nextListener;
69
- private processingMetadata;
70
- private hasPendingMessage;
71
- private pendingMessage;
72
- private processingMessage;
73
- private pendingStatus;
74
- constructor(listener: FullListener, nextListener: InterceptingListener);
75
- private processPendingMessage;
76
- private processPendingStatus;
77
- onReceiveMetadata(metadata: Metadata): void;
78
- onReceiveMessage(message: any): void;
79
- onReceiveStatus(status: StatusObject): void;
80
- }
81
- export interface WriteCallback {
82
- (error?: Error | null): void;
83
- }
84
- export interface MessageContext {
85
- callback?: WriteCallback;
86
- flags?: number;
87
- }
88
- export interface Call {
89
- cancelWithStatus(status: Status, details: string): void;
90
- getPeer(): string;
91
- start(metadata: Metadata, listener: InterceptingListener): void;
92
- sendMessageWithContext(context: MessageContext, message: Buffer): void;
93
- startRead(): void;
94
- halfClose(): void;
95
- getCallNumber(): number;
96
- setCredentials(credentials: CallCredentials): void;
97
- getAuthContext(): AuthContext | null;
98
- }
99
- export interface DeadlineInfoProvider {
100
- getDeadlineInfo(): string[];
101
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
node_modules/@grpc/grpc-js/build/src/call-interface.js DELETED
@@ -1,100 +0,0 @@
1
- "use strict";
2
- /*
3
- * Copyright 2022 gRPC authors.
4
- *
5
- * Licensed under the Apache License, Version 2.0 (the "License");
6
- * you may not use this file except in compliance with the License.
7
- * You may obtain a copy of the License at
8
- *
9
- * http://www.apache.org/licenses/LICENSE-2.0
10
- *
11
- * Unless required by applicable law or agreed to in writing, software
12
- * distributed under the License is distributed on an "AS IS" BASIS,
13
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
- * See the License for the specific language governing permissions and
15
- * limitations under the License.
16
- *
17
- */
18
- Object.defineProperty(exports, "__esModule", { value: true });
19
- exports.InterceptingListenerImpl = void 0;
20
- exports.statusOrFromValue = statusOrFromValue;
21
- exports.statusOrFromError = statusOrFromError;
22
- exports.isInterceptingListener = isInterceptingListener;
23
- const metadata_1 = require("./metadata");
24
- function statusOrFromValue(value) {
25
- return {
26
- ok: true,
27
- value: value
28
- };
29
- }
30
- function statusOrFromError(error) {
31
- var _a;
32
- return {
33
- ok: false,
34
- error: Object.assign(Object.assign({}, error), { metadata: (_a = error.metadata) !== null && _a !== void 0 ? _a : new metadata_1.Metadata() })
35
- };
36
- }
37
- function isInterceptingListener(listener) {
38
- return (listener.onReceiveMetadata !== undefined &&
39
- listener.onReceiveMetadata.length === 1);
40
- }
41
- class InterceptingListenerImpl {
42
- constructor(listener, nextListener) {
43
- this.listener = listener;
44
- this.nextListener = nextListener;
45
- this.processingMetadata = false;
46
- this.hasPendingMessage = false;
47
- this.processingMessage = false;
48
- this.pendingStatus = null;
49
- }
50
- processPendingMessage() {
51
- if (this.hasPendingMessage) {
52
- this.nextListener.onReceiveMessage(this.pendingMessage);
53
- this.pendingMessage = null;
54
- this.hasPendingMessage = false;
55
- }
56
- }
57
- processPendingStatus() {
58
- if (this.pendingStatus) {
59
- this.nextListener.onReceiveStatus(this.pendingStatus);
60
- }
61
- }
62
- onReceiveMetadata(metadata) {
63
- this.processingMetadata = true;
64
- this.listener.onReceiveMetadata(metadata, metadata => {
65
- this.processingMetadata = false;
66
- this.nextListener.onReceiveMetadata(metadata);
67
- this.processPendingMessage();
68
- this.processPendingStatus();
69
- });
70
- }
71
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
72
- onReceiveMessage(message) {
73
- /* If this listener processes messages asynchronously, the last message may
74
- * be reordered with respect to the status */
75
- this.processingMessage = true;
76
- this.listener.onReceiveMessage(message, msg => {
77
- this.processingMessage = false;
78
- if (this.processingMetadata) {
79
- this.pendingMessage = msg;
80
- this.hasPendingMessage = true;
81
- }
82
- else {
83
- this.nextListener.onReceiveMessage(msg);
84
- this.processPendingStatus();
85
- }
86
- });
87
- }
88
- onReceiveStatus(status) {
89
- this.listener.onReceiveStatus(status, processedStatus => {
90
- if (this.processingMetadata || this.processingMessage) {
91
- this.pendingStatus = processedStatus;
92
- }
93
- else {
94
- this.nextListener.onReceiveStatus(processedStatus);
95
- }
96
- });
97
- }
98
- }
99
- exports.InterceptingListenerImpl = InterceptingListenerImpl;
100
- //# sourceMappingURL=call-interface.js.map
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
node_modules/@grpc/grpc-js/build/src/call-interface.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"call-interface.js","sourceRoot":"","sources":["../../src/call-interface.ts"],"names":[],"mappings":"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"}
 
 
node_modules/@grpc/grpc-js/build/src/call-number.d.ts DELETED
@@ -1 +0,0 @@
1
- export declare function getNextCallNumber(): number;
 
 
node_modules/@grpc/grpc-js/build/src/call-number.js DELETED
@@ -1,24 +0,0 @@
1
- "use strict";
2
- /*
3
- * Copyright 2022 gRPC authors.
4
- *
5
- * Licensed under the Apache License, Version 2.0 (the "License");
6
- * you may not use this file except in compliance with the License.
7
- * You may obtain a copy of the License at
8
- *
9
- * http://www.apache.org/licenses/LICENSE-2.0
10
- *
11
- * Unless required by applicable law or agreed to in writing, software
12
- * distributed under the License is distributed on an "AS IS" BASIS,
13
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
- * See the License for the specific language governing permissions and
15
- * limitations under the License.
16
- *
17
- */
18
- Object.defineProperty(exports, "__esModule", { value: true });
19
- exports.getNextCallNumber = getNextCallNumber;
20
- let nextCallNumber = 0;
21
- function getNextCallNumber() {
22
- return nextCallNumber++;
23
- }
24
- //# sourceMappingURL=call-number.js.map
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
node_modules/@grpc/grpc-js/build/src/call-number.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"call-number.js","sourceRoot":"","sources":["../../src/call-number.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;GAeG;;AAIH,8CAEC;AAJD,IAAI,cAAc,GAAG,CAAC,CAAC;AAEvB,SAAgB,iBAAiB;IAC/B,OAAO,cAAc,EAAE,CAAC;AAC1B,CAAC"}
 
 
node_modules/@grpc/grpc-js/build/src/call.d.ts DELETED
@@ -1,86 +0,0 @@
1
- import { EventEmitter } from 'events';
2
- import { Duplex, Readable, Writable } from 'stream';
3
- import { StatusObject } from './call-interface';
4
- import { EmitterAugmentation1 } from './events';
5
- import { Metadata } from './metadata';
6
- import { ObjectReadable, ObjectWritable, WriteCallback } from './object-stream';
7
- import { InterceptingCallInterface } from './client-interceptors';
8
- import { AuthContext } from './auth-context';
9
- /**
10
- * A type extending the built-in Error object with additional fields.
11
- */
12
- export type ServiceError = StatusObject & Error;
13
- /**
14
- * A base type for all user-facing values returned by client-side method calls.
15
- */
16
- export type SurfaceCall = {
17
- call?: InterceptingCallInterface;
18
- cancel(): void;
19
- getPeer(): string;
20
- getAuthContext(): AuthContext | null;
21
- } & EmitterAugmentation1<'metadata', Metadata> & EmitterAugmentation1<'status', StatusObject> & EventEmitter;
22
- /**
23
- * A type representing the return value of a unary method call.
24
- */
25
- export type ClientUnaryCall = SurfaceCall;
26
- /**
27
- * A type representing the return value of a server stream method call.
28
- */
29
- export type ClientReadableStream<ResponseType> = {
30
- deserialize: (chunk: Buffer) => ResponseType;
31
- } & SurfaceCall & ObjectReadable<ResponseType>;
32
- /**
33
- * A type representing the return value of a client stream method call.
34
- */
35
- export type ClientWritableStream<RequestType> = {
36
- serialize: (value: RequestType) => Buffer;
37
- } & SurfaceCall & ObjectWritable<RequestType>;
38
- /**
39
- * A type representing the return value of a bidirectional stream method call.
40
- */
41
- export type ClientDuplexStream<RequestType, ResponseType> = ClientWritableStream<RequestType> & ClientReadableStream<ResponseType>;
42
- /**
43
- * Construct a ServiceError from a StatusObject. This function exists primarily
44
- * as an attempt to make the error stack trace clearly communicate that the
45
- * error is not necessarily a problem in gRPC itself.
46
- * @param status
47
- */
48
- export declare function callErrorFromStatus(status: StatusObject, callerStack: string): ServiceError;
49
- export declare class ClientUnaryCallImpl extends EventEmitter implements ClientUnaryCall {
50
- call?: InterceptingCallInterface;
51
- constructor();
52
- cancel(): void;
53
- getPeer(): string;
54
- getAuthContext(): AuthContext | null;
55
- }
56
- export declare class ClientReadableStreamImpl<ResponseType> extends Readable implements ClientReadableStream<ResponseType> {
57
- readonly deserialize: (chunk: Buffer) => ResponseType;
58
- call?: InterceptingCallInterface;
59
- constructor(deserialize: (chunk: Buffer) => ResponseType);
60
- cancel(): void;
61
- getPeer(): string;
62
- getAuthContext(): AuthContext | null;
63
- _read(_size: number): void;
64
- }
65
- export declare class ClientWritableStreamImpl<RequestType> extends Writable implements ClientWritableStream<RequestType> {
66
- readonly serialize: (value: RequestType) => Buffer;
67
- call?: InterceptingCallInterface;
68
- constructor(serialize: (value: RequestType) => Buffer);
69
- cancel(): void;
70
- getPeer(): string;
71
- getAuthContext(): AuthContext | null;
72
- _write(chunk: RequestType, encoding: string, cb: WriteCallback): void;
73
- _final(cb: Function): void;
74
- }
75
- export declare class ClientDuplexStreamImpl<RequestType, ResponseType> extends Duplex implements ClientDuplexStream<RequestType, ResponseType> {
76
- readonly serialize: (value: RequestType) => Buffer;
77
- readonly deserialize: (chunk: Buffer) => ResponseType;
78
- call?: InterceptingCallInterface;
79
- constructor(serialize: (value: RequestType) => Buffer, deserialize: (chunk: Buffer) => ResponseType);
80
- cancel(): void;
81
- getPeer(): string;
82
- getAuthContext(): AuthContext | null;
83
- _read(_size: number): void;
84
- _write(chunk: RequestType, encoding: string, cb: WriteCallback): void;
85
- _final(cb: Function): void;
86
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
node_modules/@grpc/grpc-js/build/src/call.js DELETED
@@ -1,152 +0,0 @@
1
- "use strict";
2
- /*
3
- * Copyright 2019 gRPC authors.
4
- *
5
- * Licensed under the Apache License, Version 2.0 (the "License");
6
- * you may not use this file except in compliance with the License.
7
- * You may obtain a copy of the License at
8
- *
9
- * http://www.apache.org/licenses/LICENSE-2.0
10
- *
11
- * Unless required by applicable law or agreed to in writing, software
12
- * distributed under the License is distributed on an "AS IS" BASIS,
13
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
- * See the License for the specific language governing permissions and
15
- * limitations under the License.
16
- *
17
- */
18
- Object.defineProperty(exports, "__esModule", { value: true });
19
- exports.ClientDuplexStreamImpl = exports.ClientWritableStreamImpl = exports.ClientReadableStreamImpl = exports.ClientUnaryCallImpl = void 0;
20
- exports.callErrorFromStatus = callErrorFromStatus;
21
- const events_1 = require("events");
22
- const stream_1 = require("stream");
23
- const constants_1 = require("./constants");
24
- /**
25
- * Construct a ServiceError from a StatusObject. This function exists primarily
26
- * as an attempt to make the error stack trace clearly communicate that the
27
- * error is not necessarily a problem in gRPC itself.
28
- * @param status
29
- */
30
- function callErrorFromStatus(status, callerStack) {
31
- const message = `${status.code} ${constants_1.Status[status.code]}: ${status.details}`;
32
- const error = new Error(message);
33
- const stack = `${error.stack}\nfor call at\n${callerStack}`;
34
- return Object.assign(new Error(message), status, { stack });
35
- }
36
- class ClientUnaryCallImpl extends events_1.EventEmitter {
37
- constructor() {
38
- super();
39
- }
40
- cancel() {
41
- var _a;
42
- (_a = this.call) === null || _a === void 0 ? void 0 : _a.cancelWithStatus(constants_1.Status.CANCELLED, 'Cancelled on client');
43
- }
44
- getPeer() {
45
- var _a, _b;
46
- return (_b = (_a = this.call) === null || _a === void 0 ? void 0 : _a.getPeer()) !== null && _b !== void 0 ? _b : 'unknown';
47
- }
48
- getAuthContext() {
49
- var _a, _b;
50
- return (_b = (_a = this.call) === null || _a === void 0 ? void 0 : _a.getAuthContext()) !== null && _b !== void 0 ? _b : null;
51
- }
52
- }
53
- exports.ClientUnaryCallImpl = ClientUnaryCallImpl;
54
- class ClientReadableStreamImpl extends stream_1.Readable {
55
- constructor(deserialize) {
56
- super({ objectMode: true });
57
- this.deserialize = deserialize;
58
- }
59
- cancel() {
60
- var _a;
61
- (_a = this.call) === null || _a === void 0 ? void 0 : _a.cancelWithStatus(constants_1.Status.CANCELLED, 'Cancelled on client');
62
- }
63
- getPeer() {
64
- var _a, _b;
65
- return (_b = (_a = this.call) === null || _a === void 0 ? void 0 : _a.getPeer()) !== null && _b !== void 0 ? _b : 'unknown';
66
- }
67
- getAuthContext() {
68
- var _a, _b;
69
- return (_b = (_a = this.call) === null || _a === void 0 ? void 0 : _a.getAuthContext()) !== null && _b !== void 0 ? _b : null;
70
- }
71
- _read(_size) {
72
- var _a;
73
- (_a = this.call) === null || _a === void 0 ? void 0 : _a.startRead();
74
- }
75
- }
76
- exports.ClientReadableStreamImpl = ClientReadableStreamImpl;
77
- class ClientWritableStreamImpl extends stream_1.Writable {
78
- constructor(serialize) {
79
- super({ objectMode: true });
80
- this.serialize = serialize;
81
- }
82
- cancel() {
83
- var _a;
84
- (_a = this.call) === null || _a === void 0 ? void 0 : _a.cancelWithStatus(constants_1.Status.CANCELLED, 'Cancelled on client');
85
- }
86
- getPeer() {
87
- var _a, _b;
88
- return (_b = (_a = this.call) === null || _a === void 0 ? void 0 : _a.getPeer()) !== null && _b !== void 0 ? _b : 'unknown';
89
- }
90
- getAuthContext() {
91
- var _a, _b;
92
- return (_b = (_a = this.call) === null || _a === void 0 ? void 0 : _a.getAuthContext()) !== null && _b !== void 0 ? _b : null;
93
- }
94
- _write(chunk, encoding, cb) {
95
- var _a;
96
- const context = {
97
- callback: cb,
98
- };
99
- const flags = Number(encoding);
100
- if (!Number.isNaN(flags)) {
101
- context.flags = flags;
102
- }
103
- (_a = this.call) === null || _a === void 0 ? void 0 : _a.sendMessageWithContext(context, chunk);
104
- }
105
- _final(cb) {
106
- var _a;
107
- (_a = this.call) === null || _a === void 0 ? void 0 : _a.halfClose();
108
- cb();
109
- }
110
- }
111
- exports.ClientWritableStreamImpl = ClientWritableStreamImpl;
112
- class ClientDuplexStreamImpl extends stream_1.Duplex {
113
- constructor(serialize, deserialize) {
114
- super({ objectMode: true });
115
- this.serialize = serialize;
116
- this.deserialize = deserialize;
117
- }
118
- cancel() {
119
- var _a;
120
- (_a = this.call) === null || _a === void 0 ? void 0 : _a.cancelWithStatus(constants_1.Status.CANCELLED, 'Cancelled on client');
121
- }
122
- getPeer() {
123
- var _a, _b;
124
- return (_b = (_a = this.call) === null || _a === void 0 ? void 0 : _a.getPeer()) !== null && _b !== void 0 ? _b : 'unknown';
125
- }
126
- getAuthContext() {
127
- var _a, _b;
128
- return (_b = (_a = this.call) === null || _a === void 0 ? void 0 : _a.getAuthContext()) !== null && _b !== void 0 ? _b : null;
129
- }
130
- _read(_size) {
131
- var _a;
132
- (_a = this.call) === null || _a === void 0 ? void 0 : _a.startRead();
133
- }
134
- _write(chunk, encoding, cb) {
135
- var _a;
136
- const context = {
137
- callback: cb,
138
- };
139
- const flags = Number(encoding);
140
- if (!Number.isNaN(flags)) {
141
- context.flags = flags;
142
- }
143
- (_a = this.call) === null || _a === void 0 ? void 0 : _a.sendMessageWithContext(context, chunk);
144
- }
145
- _final(cb) {
146
- var _a;
147
- (_a = this.call) === null || _a === void 0 ? void 0 : _a.halfClose();
148
- cb();
149
- }
150
- }
151
- exports.ClientDuplexStreamImpl = ClientDuplexStreamImpl;
152
- //# sourceMappingURL=call.js.map
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
node_modules/@grpc/grpc-js/build/src/call.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"call.js","sourceRoot":"","sources":["../../src/call.ts"],"names":[],"mappings":"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"}
 
 
node_modules/@grpc/grpc-js/build/src/certificate-provider.d.ts DELETED
@@ -1,43 +0,0 @@
1
- export interface CaCertificateUpdate {
2
- caCertificate: Buffer;
3
- }
4
- export interface IdentityCertificateUpdate {
5
- certificate: Buffer;
6
- privateKey: Buffer;
7
- }
8
- export interface CaCertificateUpdateListener {
9
- (update: CaCertificateUpdate | null): void;
10
- }
11
- export interface IdentityCertificateUpdateListener {
12
- (update: IdentityCertificateUpdate | null): void;
13
- }
14
- export interface CertificateProvider {
15
- addCaCertificateListener(listener: CaCertificateUpdateListener): void;
16
- removeCaCertificateListener(listener: CaCertificateUpdateListener): void;
17
- addIdentityCertificateListener(listener: IdentityCertificateUpdateListener): void;
18
- removeIdentityCertificateListener(listener: IdentityCertificateUpdateListener): void;
19
- }
20
- export interface FileWatcherCertificateProviderConfig {
21
- certificateFile?: string | undefined;
22
- privateKeyFile?: string | undefined;
23
- caCertificateFile?: string | undefined;
24
- refreshIntervalMs: number;
25
- }
26
- export declare class FileWatcherCertificateProvider implements CertificateProvider {
27
- private config;
28
- private refreshTimer;
29
- private fileResultPromise;
30
- private latestCaUpdate;
31
- private caListeners;
32
- private latestIdentityUpdate;
33
- private identityListeners;
34
- private lastUpdateTime;
35
- constructor(config: FileWatcherCertificateProviderConfig);
36
- private updateCertificates;
37
- private maybeStartWatchingFiles;
38
- private maybeStopWatchingFiles;
39
- addCaCertificateListener(listener: CaCertificateUpdateListener): void;
40
- removeCaCertificateListener(listener: CaCertificateUpdateListener): void;
41
- addIdentityCertificateListener(listener: IdentityCertificateUpdateListener): void;
42
- removeIdentityCertificateListener(listener: IdentityCertificateUpdateListener): void;
43
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
node_modules/@grpc/grpc-js/build/src/certificate-provider.js DELETED
@@ -1,141 +0,0 @@
1
- "use strict";
2
- /*
3
- * Copyright 2024 gRPC authors.
4
- *
5
- * Licensed under the Apache License, Version 2.0 (the "License");
6
- * you may not use this file except in compliance with the License.
7
- * You may obtain a copy of the License at
8
- *
9
- * http://www.apache.org/licenses/LICENSE-2.0
10
- *
11
- * Unless required by applicable law or agreed to in writing, software
12
- * distributed under the License is distributed on an "AS IS" BASIS,
13
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
- * See the License for the specific language governing permissions and
15
- * limitations under the License.
16
- *
17
- */
18
- Object.defineProperty(exports, "__esModule", { value: true });
19
- exports.FileWatcherCertificateProvider = void 0;
20
- const fs = require("fs");
21
- const logging = require("./logging");
22
- const constants_1 = require("./constants");
23
- const util_1 = require("util");
24
- const TRACER_NAME = 'certificate_provider';
25
- function trace(text) {
26
- logging.trace(constants_1.LogVerbosity.DEBUG, TRACER_NAME, text);
27
- }
28
- const readFilePromise = (0, util_1.promisify)(fs.readFile);
29
- class FileWatcherCertificateProvider {
30
- constructor(config) {
31
- this.config = config;
32
- this.refreshTimer = null;
33
- this.fileResultPromise = null;
34
- this.latestCaUpdate = undefined;
35
- this.caListeners = new Set();
36
- this.latestIdentityUpdate = undefined;
37
- this.identityListeners = new Set();
38
- this.lastUpdateTime = null;
39
- if ((config.certificateFile === undefined) !== (config.privateKeyFile === undefined)) {
40
- throw new Error('certificateFile and privateKeyFile must be set or unset together');
41
- }
42
- if (config.certificateFile === undefined && config.caCertificateFile === undefined) {
43
- throw new Error('At least one of certificateFile and caCertificateFile must be set');
44
- }
45
- trace('File watcher constructed with config ' + JSON.stringify(config));
46
- }
47
- updateCertificates() {
48
- if (this.fileResultPromise) {
49
- return;
50
- }
51
- this.fileResultPromise = Promise.allSettled([
52
- this.config.certificateFile ? readFilePromise(this.config.certificateFile) : Promise.reject(),
53
- this.config.privateKeyFile ? readFilePromise(this.config.privateKeyFile) : Promise.reject(),
54
- this.config.caCertificateFile ? readFilePromise(this.config.caCertificateFile) : Promise.reject()
55
- ]);
56
- this.fileResultPromise.then(([certificateResult, privateKeyResult, caCertificateResult]) => {
57
- if (!this.refreshTimer) {
58
- return;
59
- }
60
- trace('File watcher read certificates certificate ' + certificateResult.status + ', privateKey ' + privateKeyResult.status + ', CA certificate ' + caCertificateResult.status);
61
- this.lastUpdateTime = new Date();
62
- this.fileResultPromise = null;
63
- if (certificateResult.status === 'fulfilled' && privateKeyResult.status === 'fulfilled') {
64
- this.latestIdentityUpdate = {
65
- certificate: certificateResult.value,
66
- privateKey: privateKeyResult.value
67
- };
68
- }
69
- else {
70
- this.latestIdentityUpdate = null;
71
- }
72
- if (caCertificateResult.status === 'fulfilled') {
73
- this.latestCaUpdate = {
74
- caCertificate: caCertificateResult.value
75
- };
76
- }
77
- else {
78
- this.latestCaUpdate = null;
79
- }
80
- for (const listener of this.identityListeners) {
81
- listener(this.latestIdentityUpdate);
82
- }
83
- for (const listener of this.caListeners) {
84
- listener(this.latestCaUpdate);
85
- }
86
- });
87
- trace('File watcher initiated certificate update');
88
- }
89
- maybeStartWatchingFiles() {
90
- if (!this.refreshTimer) {
91
- /* Perform the first read immediately, but only if there was not already
92
- * a recent read, to avoid reading from the filesystem significantly more
93
- * frequently than configured if the provider quickly switches between
94
- * used and unused. */
95
- const timeSinceLastUpdate = this.lastUpdateTime ? (new Date()).getTime() - this.lastUpdateTime.getTime() : Infinity;
96
- if (timeSinceLastUpdate > this.config.refreshIntervalMs) {
97
- this.updateCertificates();
98
- }
99
- if (timeSinceLastUpdate > this.config.refreshIntervalMs * 2) {
100
- // Clear out old updates if they are definitely stale
101
- this.latestCaUpdate = undefined;
102
- this.latestIdentityUpdate = undefined;
103
- }
104
- this.refreshTimer = setInterval(() => this.updateCertificates(), this.config.refreshIntervalMs);
105
- trace('File watcher started watching');
106
- }
107
- }
108
- maybeStopWatchingFiles() {
109
- if (this.caListeners.size === 0 && this.identityListeners.size === 0) {
110
- this.fileResultPromise = null;
111
- if (this.refreshTimer) {
112
- clearInterval(this.refreshTimer);
113
- this.refreshTimer = null;
114
- }
115
- }
116
- }
117
- addCaCertificateListener(listener) {
118
- this.caListeners.add(listener);
119
- this.maybeStartWatchingFiles();
120
- if (this.latestCaUpdate !== undefined) {
121
- process.nextTick(listener, this.latestCaUpdate);
122
- }
123
- }
124
- removeCaCertificateListener(listener) {
125
- this.caListeners.delete(listener);
126
- this.maybeStopWatchingFiles();
127
- }
128
- addIdentityCertificateListener(listener) {
129
- this.identityListeners.add(listener);
130
- this.maybeStartWatchingFiles();
131
- if (this.latestIdentityUpdate !== undefined) {
132
- process.nextTick(listener, this.latestIdentityUpdate);
133
- }
134
- }
135
- removeIdentityCertificateListener(listener) {
136
- this.identityListeners.delete(listener);
137
- this.maybeStopWatchingFiles();
138
- }
139
- }
140
- exports.FileWatcherCertificateProvider = FileWatcherCertificateProvider;
141
- //# sourceMappingURL=certificate-provider.js.map
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
node_modules/@grpc/grpc-js/build/src/certificate-provider.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"certificate-provider.js","sourceRoot":"","sources":["../../src/certificate-provider.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;GAeG;;;AAEH,yBAAyB;AACzB,qCAAqC;AACrC,2CAA2C;AAC3C,+BAAiC;AAEjC,MAAM,WAAW,GAAG,sBAAsB,CAAC;AAE3C,SAAS,KAAK,CAAC,IAAY;IACzB,OAAO,CAAC,KAAK,CAAC,wBAAY,CAAC,KAAK,EAAE,WAAW,EAAE,IAAI,CAAC,CAAC;AACvD,CAAC;AAiCD,MAAM,eAAe,GAAG,IAAA,gBAAS,EAAC,EAAE,CAAC,QAAQ,CAAC,CAAC;AAE/C,MAAa,8BAA8B;IASzC,YACU,MAA4C;QAA5C,WAAM,GAAN,MAAM,CAAsC;QAT9C,iBAAY,GAA0B,IAAI,CAAC;QAC3C,sBAAiB,GAA+G,IAAI,CAAC;QACrI,mBAAc,GAA2C,SAAS,CAAC;QACnE,gBAAW,GAAqC,IAAI,GAAG,EAAE,CAAC;QAC1D,yBAAoB,GAAiD,SAAS,CAAC;QAC/E,sBAAiB,GAA2C,IAAI,GAAG,EAAE,CAAC;QACtE,mBAAc,GAAgB,IAAI,CAAC;QAKzC,IAAI,CAAC,MAAM,CAAC,eAAe,KAAK,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC,cAAc,KAAK,SAAS,CAAC,EAAE,CAAC;YACrF,MAAM,IAAI,KAAK,CAAC,kEAAkE,CAAC,CAAC;QACtF,CAAC;QACD,IAAI,MAAM,CAAC,eAAe,KAAK,SAAS,IAAI,MAAM,CAAC,iBAAiB,KAAK,SAAS,EAAE,CAAC;YACnF,MAAM,IAAI,KAAK,CAAC,mEAAmE,CAAC,CAAC;QACvF,CAAC;QACD,KAAK,CAAC,uCAAuC,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC;IAC1E,CAAC;IAEO,kBAAkB;QACxB,IAAI,IAAI,CAAC,iBAAiB,EAAE,CAAC;YAC3B,OAAO;QACT,CAAC;QACD,IAAI,CAAC,iBAAiB,GAAG,OAAO,CAAC,UAAU,CAAC;YAC1C,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC,CAAC,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,EAAU;YACrG,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,EAAU;YACnG,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC,CAAC,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,EAAU;SAC1G,CAAC,CAAC;QACH,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC,iBAAiB,EAAE,gBAAgB,EAAE,mBAAmB,CAAC,EAAE,EAAE;YACzF,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC;gBACvB,OAAO;YACT,CAAC;YACD,KAAK,CAAC,6CAA6C,GAAG,iBAAiB,CAAC,MAAM,GAAG,eAAe,GAAG,gBAAgB,CAAC,MAAM,GAAG,mBAAmB,GAAG,mBAAmB,CAAC,MAAM,CAAC,CAAC;YAC/K,IAAI,CAAC,cAAc,GAAG,IAAI,IAAI,EAAE,CAAC;YACjC,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;YAC9B,IAAI,iBAAiB,CAAC,MAAM,KAAK,WAAW,IAAI,gBAAgB,CAAC,MAAM,KAAK,WAAW,EAAE,CAAC;gBACxF,IAAI,CAAC,oBAAoB,GAAG;oBAC1B,WAAW,EAAE,iBAAiB,CAAC,KAAK;oBACpC,UAAU,EAAE,gBAAgB,CAAC,KAAK;iBACnC,CAAC;YACJ,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC;YACnC,CAAC;YACD,IAAI,mBAAmB,CAAC,MAAM,KAAK,WAAW,EAAE,CAAC;gBAC/C,IAAI,CAAC,cAAc,GAAG;oBACpB,aAAa,EAAE,mBAAmB,CAAC,KAAK;iBACzC,CAAC;YACJ,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;YAC7B,CAAC;YACD,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,iBAAiB,EAAE,CAAC;gBAC9C,QAAQ,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;YACtC,CAAC;YACD,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;gBACxC,QAAQ,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;YAChC,CAAC;QACH,CAAC,CAAC,CAAC;QACH,KAAK,CAAC,2CAA2C,CAAC,CAAC;IACrD,CAAC;IAEO,uBAAuB;QAC7B,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC;YACvB;;;kCAGsB;YACtB,MAAM,mBAAmB,GAAG,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC;YACpH,IAAI,mBAAmB,GAAG,IAAI,CAAC,MAAM,CAAC,iBAAiB,EAAE,CAAC;gBACxD,IAAI,CAAC,kBAAkB,EAAE,CAAC;YAC5B,CAAC;YACD,IAAI,mBAAmB,GAAG,IAAI,CAAC,MAAM,CAAC,iBAAiB,GAAG,CAAC,EAAE,CAAC;gBAC5D,qDAAqD;gBACrD,IAAI,CAAC,cAAc,GAAG,SAAS,CAAC;gBAChC,IAAI,CAAC,oBAAoB,GAAG,SAAS,CAAC;YACxC,CAAC;YACD,IAAI,CAAC,YAAY,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,kBAAkB,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC;YAChG,KAAK,CAAC,+BAA+B,CAAC,CAAC;QACzC,CAAC;IACH,CAAC;IAEO,sBAAsB;QAC5B,IAAI,IAAI,CAAC,WAAW,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,iBAAiB,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;YACrE,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;YAC9B,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;gBACtB,aAAa,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;gBACjC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;YAC3B,CAAC;QACH,CAAC;IACH,CAAC;IAED,wBAAwB,CAAC,QAAqC;QAC5D,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAC/B,IAAI,CAAC,uBAAuB,EAAE,CAAC;QAC/B,IAAI,IAAI,CAAC,cAAc,KAAK,SAAS,EAAE,CAAC;YACtC,OAAO,CAAC,QAAQ,CAAC,QAAQ,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;QAClD,CAAC;IACH,CAAC;IACD,2BAA2B,CAAC,QAAqC;QAC/D,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QAClC,IAAI,CAAC,sBAAsB,EAAE,CAAC;IAChC,CAAC;IACD,8BAA8B,CAAC,QAA2C;QACxE,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QACrC,IAAI,CAAC,uBAAuB,EAAE,CAAC;QAC/B,IAAI,IAAI,CAAC,oBAAoB,KAAK,SAAS,EAAE,CAAC;YAC5C,OAAO,CAAC,QAAQ,CAAC,QAAQ,EAAE,IAAI,CAAC,oBAAoB,CAAC,CAAC;QACxD,CAAC;IACH,CAAC;IACD,iCAAiC,CAAC,QAA2C;QAC3E,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QACxC,IAAI,CAAC,sBAAsB,EAAE,CAAC;IAChC,CAAC;CACF;AAlHD,wEAkHC"}
 
 
node_modules/@grpc/grpc-js/build/src/channel-credentials.d.ts DELETED
@@ -1,119 +0,0 @@
1
- import { PeerCertificate, SecureContext } from 'tls';
2
- import { CallCredentials } from './call-credentials';
3
- import { CertificateProvider } from './certificate-provider';
4
- import { Socket } from 'net';
5
- import { ChannelOptions } from './channel-options';
6
- import { GrpcUri } from './uri-parser';
7
- /**
8
- * A callback that will receive the expected hostname and presented peer
9
- * certificate as parameters. The callback should return an error to
10
- * indicate that the presented certificate is considered invalid and
11
- * otherwise returned undefined.
12
- */
13
- export type CheckServerIdentityCallback = (hostname: string, cert: PeerCertificate) => Error | undefined;
14
- /**
15
- * Additional peer verification options that can be set when creating
16
- * SSL credentials.
17
- */
18
- export interface VerifyOptions {
19
- /**
20
- * If set, this callback will be invoked after the usual hostname verification
21
- * has been performed on the peer certificate.
22
- */
23
- checkServerIdentity?: CheckServerIdentityCallback;
24
- rejectUnauthorized?: boolean;
25
- }
26
- export interface SecureConnectResult {
27
- socket: Socket;
28
- secure: boolean;
29
- }
30
- export interface SecureConnector {
31
- connect(socket: Socket): Promise<SecureConnectResult>;
32
- waitForReady(): Promise<void>;
33
- getCallCredentials(): CallCredentials;
34
- destroy(): void;
35
- }
36
- /**
37
- * A class that contains credentials for communicating over a channel, as well
38
- * as a set of per-call credentials, which are applied to every method call made
39
- * over a channel initialized with an instance of this class.
40
- */
41
- export declare abstract class ChannelCredentials {
42
- /**
43
- * Returns a copy of this object with the included set of per-call credentials
44
- * expanded to include callCredentials.
45
- * @param callCredentials A CallCredentials object to associate with this
46
- * instance.
47
- */
48
- compose(callCredentials: CallCredentials): ChannelCredentials;
49
- /**
50
- * Indicates whether this credentials object creates a secure channel.
51
- */
52
- abstract _isSecure(): boolean;
53
- /**
54
- * Check whether two channel credentials objects are equal. Two secure
55
- * credentials are equal if they were constructed with the same parameters.
56
- * @param other The other ChannelCredentials Object
57
- */
58
- abstract _equals(other: ChannelCredentials): boolean;
59
- abstract _createSecureConnector(channelTarget: GrpcUri, options: ChannelOptions, callCredentials?: CallCredentials): SecureConnector;
60
- /**
61
- * Return a new ChannelCredentials instance with a given set of credentials.
62
- * The resulting instance can be used to construct a Channel that communicates
63
- * over TLS.
64
- * @param rootCerts The root certificate data.
65
- * @param privateKey The client certificate private key, if available.
66
- * @param certChain The client certificate key chain, if available.
67
- * @param verifyOptions Additional options to modify certificate verification
68
- */
69
- static createSsl(rootCerts?: Buffer | null, privateKey?: Buffer | null, certChain?: Buffer | null, verifyOptions?: VerifyOptions): ChannelCredentials;
70
- /**
71
- * Return a new ChannelCredentials instance with credentials created using
72
- * the provided secureContext. The resulting instances can be used to
73
- * construct a Channel that communicates over TLS. gRPC will not override
74
- * anything in the provided secureContext, so the environment variables
75
- * GRPC_SSL_CIPHER_SUITES and GRPC_DEFAULT_SSL_ROOTS_FILE_PATH will
76
- * not be applied.
77
- * @param secureContext The return value of tls.createSecureContext()
78
- * @param verifyOptions Additional options to modify certificate verification
79
- */
80
- static createFromSecureContext(secureContext: SecureContext, verifyOptions?: VerifyOptions): ChannelCredentials;
81
- /**
82
- * Return a new ChannelCredentials instance with no credentials.
83
- */
84
- static createInsecure(): ChannelCredentials;
85
- }
86
- declare class CertificateProviderChannelCredentialsImpl extends ChannelCredentials {
87
- private caCertificateProvider;
88
- private identityCertificateProvider;
89
- private verifyOptions;
90
- private refcount;
91
- /**
92
- * `undefined` means that the certificates have not yet been loaded. `null`
93
- * means that an attempt to load them has completed, and has failed.
94
- */
95
- private latestCaUpdate;
96
- /**
97
- * `undefined` means that the certificates have not yet been loaded. `null`
98
- * means that an attempt to load them has completed, and has failed.
99
- */
100
- private latestIdentityUpdate;
101
- private caCertificateUpdateListener;
102
- private identityCertificateUpdateListener;
103
- private secureContextWatchers;
104
- private static SecureConnectorImpl;
105
- constructor(caCertificateProvider: CertificateProvider, identityCertificateProvider: CertificateProvider | null, verifyOptions: VerifyOptions);
106
- _isSecure(): boolean;
107
- _equals(other: ChannelCredentials): boolean;
108
- private ref;
109
- private unref;
110
- _createSecureConnector(channelTarget: GrpcUri, options: ChannelOptions, callCredentials?: CallCredentials): SecureConnector;
111
- private maybeUpdateWatchers;
112
- private handleCaCertificateUpdate;
113
- private handleIdentityCertitificateUpdate;
114
- private hasReceivedUpdates;
115
- private getSecureContext;
116
- private getLatestSecureContext;
117
- }
118
- export declare function createCertificateProviderChannelCredentials(caCertificateProvider: CertificateProvider, identityCertificateProvider: CertificateProvider | null, verifyOptions?: VerifyOptions): CertificateProviderChannelCredentialsImpl;
119
- export {};
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
node_modules/@grpc/grpc-js/build/src/channel-credentials.js DELETED
@@ -1,430 +0,0 @@
1
- "use strict";
2
- /*
3
- * Copyright 2019 gRPC authors.
4
- *
5
- * Licensed under the Apache License, Version 2.0 (the "License");
6
- * you may not use this file except in compliance with the License.
7
- * You may obtain a copy of the License at
8
- *
9
- * http://www.apache.org/licenses/LICENSE-2.0
10
- *
11
- * Unless required by applicable law or agreed to in writing, software
12
- * distributed under the License is distributed on an "AS IS" BASIS,
13
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
- * See the License for the specific language governing permissions and
15
- * limitations under the License.
16
- *
17
- */
18
- Object.defineProperty(exports, "__esModule", { value: true });
19
- exports.ChannelCredentials = void 0;
20
- exports.createCertificateProviderChannelCredentials = createCertificateProviderChannelCredentials;
21
- const tls_1 = require("tls");
22
- const call_credentials_1 = require("./call-credentials");
23
- const tls_helpers_1 = require("./tls-helpers");
24
- const uri_parser_1 = require("./uri-parser");
25
- const resolver_1 = require("./resolver");
26
- const logging_1 = require("./logging");
27
- const constants_1 = require("./constants");
28
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
29
- function verifyIsBufferOrNull(obj, friendlyName) {
30
- if (obj && !(obj instanceof Buffer)) {
31
- throw new TypeError(`${friendlyName}, if provided, must be a Buffer.`);
32
- }
33
- }
34
- /**
35
- * A class that contains credentials for communicating over a channel, as well
36
- * as a set of per-call credentials, which are applied to every method call made
37
- * over a channel initialized with an instance of this class.
38
- */
39
- class ChannelCredentials {
40
- /**
41
- * Returns a copy of this object with the included set of per-call credentials
42
- * expanded to include callCredentials.
43
- * @param callCredentials A CallCredentials object to associate with this
44
- * instance.
45
- */
46
- compose(callCredentials) {
47
- return new ComposedChannelCredentialsImpl(this, callCredentials);
48
- }
49
- /**
50
- * Return a new ChannelCredentials instance with a given set of credentials.
51
- * The resulting instance can be used to construct a Channel that communicates
52
- * over TLS.
53
- * @param rootCerts The root certificate data.
54
- * @param privateKey The client certificate private key, if available.
55
- * @param certChain The client certificate key chain, if available.
56
- * @param verifyOptions Additional options to modify certificate verification
57
- */
58
- static createSsl(rootCerts, privateKey, certChain, verifyOptions) {
59
- var _a;
60
- verifyIsBufferOrNull(rootCerts, 'Root certificate');
61
- verifyIsBufferOrNull(privateKey, 'Private key');
62
- verifyIsBufferOrNull(certChain, 'Certificate chain');
63
- if (privateKey && !certChain) {
64
- throw new Error('Private key must be given with accompanying certificate chain');
65
- }
66
- if (!privateKey && certChain) {
67
- throw new Error('Certificate chain must be given with accompanying private key');
68
- }
69
- const secureContext = (0, tls_1.createSecureContext)({
70
- ca: (_a = rootCerts !== null && rootCerts !== void 0 ? rootCerts : (0, tls_helpers_1.getDefaultRootsData)()) !== null && _a !== void 0 ? _a : undefined,
71
- key: privateKey !== null && privateKey !== void 0 ? privateKey : undefined,
72
- cert: certChain !== null && certChain !== void 0 ? certChain : undefined,
73
- ciphers: tls_helpers_1.CIPHER_SUITES,
74
- });
75
- return new SecureChannelCredentialsImpl(secureContext, verifyOptions !== null && verifyOptions !== void 0 ? verifyOptions : {});
76
- }
77
- /**
78
- * Return a new ChannelCredentials instance with credentials created using
79
- * the provided secureContext. The resulting instances can be used to
80
- * construct a Channel that communicates over TLS. gRPC will not override
81
- * anything in the provided secureContext, so the environment variables
82
- * GRPC_SSL_CIPHER_SUITES and GRPC_DEFAULT_SSL_ROOTS_FILE_PATH will
83
- * not be applied.
84
- * @param secureContext The return value of tls.createSecureContext()
85
- * @param verifyOptions Additional options to modify certificate verification
86
- */
87
- static createFromSecureContext(secureContext, verifyOptions) {
88
- return new SecureChannelCredentialsImpl(secureContext, verifyOptions !== null && verifyOptions !== void 0 ? verifyOptions : {});
89
- }
90
- /**
91
- * Return a new ChannelCredentials instance with no credentials.
92
- */
93
- static createInsecure() {
94
- return new InsecureChannelCredentialsImpl();
95
- }
96
- }
97
- exports.ChannelCredentials = ChannelCredentials;
98
- class InsecureChannelCredentialsImpl extends ChannelCredentials {
99
- constructor() {
100
- super();
101
- }
102
- compose(callCredentials) {
103
- throw new Error('Cannot compose insecure credentials');
104
- }
105
- _isSecure() {
106
- return false;
107
- }
108
- _equals(other) {
109
- return other instanceof InsecureChannelCredentialsImpl;
110
- }
111
- _createSecureConnector(channelTarget, options, callCredentials) {
112
- return {
113
- connect(socket) {
114
- return Promise.resolve({
115
- socket,
116
- secure: false
117
- });
118
- },
119
- waitForReady: () => {
120
- return Promise.resolve();
121
- },
122
- getCallCredentials: () => {
123
- return callCredentials !== null && callCredentials !== void 0 ? callCredentials : call_credentials_1.CallCredentials.createEmpty();
124
- },
125
- destroy() { }
126
- };
127
- }
128
- }
129
- function getConnectionOptions(secureContext, verifyOptions, channelTarget, options) {
130
- var _a, _b;
131
- const connectionOptions = {
132
- secureContext: secureContext
133
- };
134
- let realTarget = channelTarget;
135
- if ('grpc.http_connect_target' in options) {
136
- const parsedTarget = (0, uri_parser_1.parseUri)(options['grpc.http_connect_target']);
137
- if (parsedTarget) {
138
- realTarget = parsedTarget;
139
- }
140
- }
141
- const targetPath = (0, resolver_1.getDefaultAuthority)(realTarget);
142
- const hostPort = (0, uri_parser_1.splitHostPort)(targetPath);
143
- const remoteHost = (_a = hostPort === null || hostPort === void 0 ? void 0 : hostPort.host) !== null && _a !== void 0 ? _a : targetPath;
144
- connectionOptions.host = remoteHost;
145
- if (verifyOptions.checkServerIdentity) {
146
- connectionOptions.checkServerIdentity = verifyOptions.checkServerIdentity;
147
- }
148
- if (verifyOptions.rejectUnauthorized !== undefined) {
149
- connectionOptions.rejectUnauthorized = verifyOptions.rejectUnauthorized;
150
- }
151
- connectionOptions.ALPNProtocols = ['h2'];
152
- if (options['grpc.ssl_target_name_override']) {
153
- const sslTargetNameOverride = options['grpc.ssl_target_name_override'];
154
- const originalCheckServerIdentity = (_b = connectionOptions.checkServerIdentity) !== null && _b !== void 0 ? _b : tls_1.checkServerIdentity;
155
- connectionOptions.checkServerIdentity = (host, cert) => {
156
- return originalCheckServerIdentity(sslTargetNameOverride, cert);
157
- };
158
- connectionOptions.servername = sslTargetNameOverride;
159
- }
160
- else {
161
- connectionOptions.servername = remoteHost;
162
- }
163
- if (options['grpc-node.tls_enable_trace']) {
164
- connectionOptions.enableTrace = true;
165
- }
166
- return connectionOptions;
167
- }
168
- class SecureConnectorImpl {
169
- constructor(connectionOptions, callCredentials) {
170
- this.connectionOptions = connectionOptions;
171
- this.callCredentials = callCredentials;
172
- }
173
- connect(socket) {
174
- const tlsConnectOptions = Object.assign({ socket: socket }, this.connectionOptions);
175
- return new Promise((resolve, reject) => {
176
- const tlsSocket = (0, tls_1.connect)(tlsConnectOptions, () => {
177
- var _a;
178
- if (((_a = this.connectionOptions.rejectUnauthorized) !== null && _a !== void 0 ? _a : true) && !tlsSocket.authorized) {
179
- reject(tlsSocket.authorizationError);
180
- return;
181
- }
182
- resolve({
183
- socket: tlsSocket,
184
- secure: true
185
- });
186
- });
187
- tlsSocket.on('error', (error) => {
188
- reject(error);
189
- });
190
- });
191
- }
192
- waitForReady() {
193
- return Promise.resolve();
194
- }
195
- getCallCredentials() {
196
- return this.callCredentials;
197
- }
198
- destroy() { }
199
- }
200
- class SecureChannelCredentialsImpl extends ChannelCredentials {
201
- constructor(secureContext, verifyOptions) {
202
- super();
203
- this.secureContext = secureContext;
204
- this.verifyOptions = verifyOptions;
205
- }
206
- _isSecure() {
207
- return true;
208
- }
209
- _equals(other) {
210
- if (this === other) {
211
- return true;
212
- }
213
- if (other instanceof SecureChannelCredentialsImpl) {
214
- return (this.secureContext === other.secureContext &&
215
- this.verifyOptions.checkServerIdentity ===
216
- other.verifyOptions.checkServerIdentity);
217
- }
218
- else {
219
- return false;
220
- }
221
- }
222
- _createSecureConnector(channelTarget, options, callCredentials) {
223
- const connectionOptions = getConnectionOptions(this.secureContext, this.verifyOptions, channelTarget, options);
224
- return new SecureConnectorImpl(connectionOptions, callCredentials !== null && callCredentials !== void 0 ? callCredentials : call_credentials_1.CallCredentials.createEmpty());
225
- }
226
- }
227
- class CertificateProviderChannelCredentialsImpl extends ChannelCredentials {
228
- constructor(caCertificateProvider, identityCertificateProvider, verifyOptions) {
229
- super();
230
- this.caCertificateProvider = caCertificateProvider;
231
- this.identityCertificateProvider = identityCertificateProvider;
232
- this.verifyOptions = verifyOptions;
233
- this.refcount = 0;
234
- /**
235
- * `undefined` means that the certificates have not yet been loaded. `null`
236
- * means that an attempt to load them has completed, and has failed.
237
- */
238
- this.latestCaUpdate = undefined;
239
- /**
240
- * `undefined` means that the certificates have not yet been loaded. `null`
241
- * means that an attempt to load them has completed, and has failed.
242
- */
243
- this.latestIdentityUpdate = undefined;
244
- this.caCertificateUpdateListener = this.handleCaCertificateUpdate.bind(this);
245
- this.identityCertificateUpdateListener = this.handleIdentityCertitificateUpdate.bind(this);
246
- this.secureContextWatchers = [];
247
- }
248
- _isSecure() {
249
- return true;
250
- }
251
- _equals(other) {
252
- var _a, _b;
253
- if (this === other) {
254
- return true;
255
- }
256
- if (other instanceof CertificateProviderChannelCredentialsImpl) {
257
- return this.caCertificateProvider === other.caCertificateProvider &&
258
- this.identityCertificateProvider === other.identityCertificateProvider &&
259
- ((_a = this.verifyOptions) === null || _a === void 0 ? void 0 : _a.checkServerIdentity) === ((_b = other.verifyOptions) === null || _b === void 0 ? void 0 : _b.checkServerIdentity);
260
- }
261
- else {
262
- return false;
263
- }
264
- }
265
- ref() {
266
- var _a;
267
- if (this.refcount === 0) {
268
- this.caCertificateProvider.addCaCertificateListener(this.caCertificateUpdateListener);
269
- (_a = this.identityCertificateProvider) === null || _a === void 0 ? void 0 : _a.addIdentityCertificateListener(this.identityCertificateUpdateListener);
270
- }
271
- this.refcount += 1;
272
- }
273
- unref() {
274
- var _a;
275
- this.refcount -= 1;
276
- if (this.refcount === 0) {
277
- this.caCertificateProvider.removeCaCertificateListener(this.caCertificateUpdateListener);
278
- (_a = this.identityCertificateProvider) === null || _a === void 0 ? void 0 : _a.removeIdentityCertificateListener(this.identityCertificateUpdateListener);
279
- }
280
- }
281
- _createSecureConnector(channelTarget, options, callCredentials) {
282
- this.ref();
283
- return new CertificateProviderChannelCredentialsImpl.SecureConnectorImpl(this, channelTarget, options, callCredentials !== null && callCredentials !== void 0 ? callCredentials : call_credentials_1.CallCredentials.createEmpty());
284
- }
285
- maybeUpdateWatchers() {
286
- if (this.hasReceivedUpdates()) {
287
- for (const watcher of this.secureContextWatchers) {
288
- watcher(this.getLatestSecureContext());
289
- }
290
- this.secureContextWatchers = [];
291
- }
292
- }
293
- handleCaCertificateUpdate(update) {
294
- this.latestCaUpdate = update;
295
- this.maybeUpdateWatchers();
296
- }
297
- handleIdentityCertitificateUpdate(update) {
298
- this.latestIdentityUpdate = update;
299
- this.maybeUpdateWatchers();
300
- }
301
- hasReceivedUpdates() {
302
- if (this.latestCaUpdate === undefined) {
303
- return false;
304
- }
305
- if (this.identityCertificateProvider && this.latestIdentityUpdate === undefined) {
306
- return false;
307
- }
308
- return true;
309
- }
310
- getSecureContext() {
311
- if (this.hasReceivedUpdates()) {
312
- return Promise.resolve(this.getLatestSecureContext());
313
- }
314
- else {
315
- return new Promise(resolve => {
316
- this.secureContextWatchers.push(resolve);
317
- });
318
- }
319
- }
320
- getLatestSecureContext() {
321
- var _a, _b;
322
- if (!this.latestCaUpdate) {
323
- return null;
324
- }
325
- if (this.identityCertificateProvider !== null && !this.latestIdentityUpdate) {
326
- return null;
327
- }
328
- try {
329
- return (0, tls_1.createSecureContext)({
330
- ca: this.latestCaUpdate.caCertificate,
331
- key: (_a = this.latestIdentityUpdate) === null || _a === void 0 ? void 0 : _a.privateKey,
332
- cert: (_b = this.latestIdentityUpdate) === null || _b === void 0 ? void 0 : _b.certificate,
333
- ciphers: tls_helpers_1.CIPHER_SUITES
334
- });
335
- }
336
- catch (e) {
337
- (0, logging_1.log)(constants_1.LogVerbosity.ERROR, 'Failed to createSecureContext with error ' + e.message);
338
- return null;
339
- }
340
- }
341
- }
342
- CertificateProviderChannelCredentialsImpl.SecureConnectorImpl = class {
343
- constructor(parent, channelTarget, options, callCredentials) {
344
- this.parent = parent;
345
- this.channelTarget = channelTarget;
346
- this.options = options;
347
- this.callCredentials = callCredentials;
348
- }
349
- connect(socket) {
350
- return new Promise((resolve, reject) => {
351
- const secureContext = this.parent.getLatestSecureContext();
352
- if (!secureContext) {
353
- reject(new Error('Failed to load credentials'));
354
- return;
355
- }
356
- if (socket.closed) {
357
- reject(new Error('Socket closed while loading credentials'));
358
- }
359
- const connnectionOptions = getConnectionOptions(secureContext, this.parent.verifyOptions, this.channelTarget, this.options);
360
- const tlsConnectOptions = Object.assign({ socket: socket }, connnectionOptions);
361
- const closeCallback = () => {
362
- reject(new Error('Socket closed'));
363
- };
364
- const errorCallback = (error) => {
365
- reject(error);
366
- };
367
- const tlsSocket = (0, tls_1.connect)(tlsConnectOptions, () => {
368
- var _a;
369
- tlsSocket.removeListener('close', closeCallback);
370
- tlsSocket.removeListener('error', errorCallback);
371
- if (((_a = this.parent.verifyOptions.rejectUnauthorized) !== null && _a !== void 0 ? _a : true) && !tlsSocket.authorized) {
372
- reject(tlsSocket.authorizationError);
373
- return;
374
- }
375
- resolve({
376
- socket: tlsSocket,
377
- secure: true
378
- });
379
- });
380
- tlsSocket.once('close', closeCallback);
381
- tlsSocket.once('error', errorCallback);
382
- });
383
- }
384
- async waitForReady() {
385
- await this.parent.getSecureContext();
386
- }
387
- getCallCredentials() {
388
- return this.callCredentials;
389
- }
390
- destroy() {
391
- this.parent.unref();
392
- }
393
- };
394
- function createCertificateProviderChannelCredentials(caCertificateProvider, identityCertificateProvider, verifyOptions) {
395
- return new CertificateProviderChannelCredentialsImpl(caCertificateProvider, identityCertificateProvider, verifyOptions !== null && verifyOptions !== void 0 ? verifyOptions : {});
396
- }
397
- class ComposedChannelCredentialsImpl extends ChannelCredentials {
398
- constructor(channelCredentials, callCredentials) {
399
- super();
400
- this.channelCredentials = channelCredentials;
401
- this.callCredentials = callCredentials;
402
- if (!channelCredentials._isSecure()) {
403
- throw new Error('Cannot compose insecure credentials');
404
- }
405
- }
406
- compose(callCredentials) {
407
- const combinedCallCredentials = this.callCredentials.compose(callCredentials);
408
- return new ComposedChannelCredentialsImpl(this.channelCredentials, combinedCallCredentials);
409
- }
410
- _isSecure() {
411
- return true;
412
- }
413
- _equals(other) {
414
- if (this === other) {
415
- return true;
416
- }
417
- if (other instanceof ComposedChannelCredentialsImpl) {
418
- return (this.channelCredentials._equals(other.channelCredentials) &&
419
- this.callCredentials._equals(other.callCredentials));
420
- }
421
- else {
422
- return false;
423
- }
424
- }
425
- _createSecureConnector(channelTarget, options, callCredentials) {
426
- const combinedCallCredentials = this.callCredentials.compose(callCredentials !== null && callCredentials !== void 0 ? callCredentials : call_credentials_1.CallCredentials.createEmpty());
427
- return this.channelCredentials._createSecureConnector(channelTarget, options, combinedCallCredentials);
428
- }
429
- }
430
- //# sourceMappingURL=channel-credentials.js.map
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
node_modules/@grpc/grpc-js/build/src/channel-credentials.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"channel-credentials.js","sourceRoot":"","sources":["../../src/channel-credentials.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;GAeG;;;AAidH,kGAEC;AAjdD,6BAOa;AAEb,yDAAqD;AACrD,+CAAmE;AAInE,6CAAgE;AAChE,yCAAiD;AACjD,uCAAgC;AAChC,2CAA2C;AAE3C,8DAA8D;AAC9D,SAAS,oBAAoB,CAAC,GAAQ,EAAE,YAAoB;IAC1D,IAAI,GAAG,IAAI,CAAC,CAAC,GAAG,YAAY,MAAM,CAAC,EAAE,CAAC;QACpC,MAAM,IAAI,SAAS,CAAC,GAAG,YAAY,kCAAkC,CAAC,CAAC;IACzE,CAAC;AACH,CAAC;AAsCD;;;;GAIG;AACH,MAAsB,kBAAkB;IACtC;;;;;OAKG;IACH,OAAO,CAAC,eAAgC;QACtC,OAAO,IAAI,8BAA8B,CAAC,IAAI,EAAE,eAAe,CAAC,CAAC;IACnE,CAAC;IAgBD;;;;;;;;OAQG;IACH,MAAM,CAAC,SAAS,CACd,SAAyB,EACzB,UAA0B,EAC1B,SAAyB,EACzB,aAA6B;;QAE7B,oBAAoB,CAAC,SAAS,EAAE,kBAAkB,CAAC,CAAC;QACpD,oBAAoB,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC;QAChD,oBAAoB,CAAC,SAAS,EAAE,mBAAmB,CAAC,CAAC;QACrD,IAAI,UAAU,IAAI,CAAC,SAAS,EAAE,CAAC;YAC7B,MAAM,IAAI,KAAK,CACb,+DAA+D,CAChE,CAAC;QACJ,CAAC;QACD,IAAI,CAAC,UAAU,IAAI,SAAS,EAAE,CAAC;YAC7B,MAAM,IAAI,KAAK,CACb,+DAA+D,CAChE,CAAC;QACJ,CAAC;QACD,MAAM,aAAa,GAAG,IAAA,yBAAmB,EAAC;YACxC,EAAE,EAAE,MAAA,SAAS,aAAT,SAAS,cAAT,SAAS,GAAI,IAAA,iCAAmB,GAAE,mCAAI,SAAS;YACnD,GAAG,EAAE,UAAU,aAAV,UAAU,cAAV,UAAU,GAAI,SAAS;YAC5B,IAAI,EAAE,SAAS,aAAT,SAAS,cAAT,SAAS,GAAI,SAAS;YAC5B,OAAO,EAAE,2BAAa;SACvB,CAAC,CAAC;QACH,OAAO,IAAI,4BAA4B,CAAC,aAAa,EAAE,aAAa,aAAb,aAAa,cAAb,aAAa,GAAI,EAAE,CAAC,CAAC;IAC9E,CAAC;IAED;;;;;;;;;OASG;IACH,MAAM,CAAC,uBAAuB,CAC5B,aAA4B,EAC5B,aAA6B;QAE7B,OAAO,IAAI,4BAA4B,CAAC,aAAa,EAAE,aAAa,aAAb,aAAa,cAAb,aAAa,GAAI,EAAE,CAAC,CAAC;IAC9E,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,cAAc;QACnB,OAAO,IAAI,8BAA8B,EAAE,CAAC;IAC9C,CAAC;CACF;AArFD,gDAqFC;AAED,MAAM,8BAA+B,SAAQ,kBAAkB;IAC7D;QACE,KAAK,EAAE,CAAC;IACV,CAAC;IAEQ,OAAO,CAAC,eAAgC;QAC/C,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAC;IACzD,CAAC;IACD,SAAS;QACP,OAAO,KAAK,CAAC;IACf,CAAC;IACD,OAAO,CAAC,KAAyB;QAC/B,OAAO,KAAK,YAAY,8BAA8B,CAAC;IACzD,CAAC;IACD,sBAAsB,CAAC,aAAsB,EAAE,OAAuB,EAAE,eAAiC;QACvG,OAAO;YACL,OAAO,CAAC,MAAM;gBACZ,OAAO,OAAO,CAAC,OAAO,CAAC;oBACrB,MAAM;oBACN,MAAM,EAAE,KAAK;iBACd,CAAC,CAAC;YACL,CAAC;YACD,YAAY,EAAE,GAAG,EAAE;gBACjB,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;YAC3B,CAAC;YACD,kBAAkB,EAAE,GAAG,EAAE;gBACvB,OAAO,eAAe,aAAf,eAAe,cAAf,eAAe,GAAI,kCAAe,CAAC,WAAW,EAAE,CAAC;YAC1D,CAAC;YACD,OAAO,KAAI,CAAC;SACb,CAAA;IACH,CAAC;CACF;AAED,SAAS,oBAAoB,CAAC,aAA4B,EAAE,aAA4B,EAAE,aAAsB,EAAE,OAAuB;;IACvI,MAAM,iBAAiB,GAAsB;QAC3C,aAAa,EAAE,aAAa;KAC7B,CAAC;IACF,IAAI,UAAU,GAAY,aAAa,CAAC;IACxC,IAAI,0BAA0B,IAAI,OAAO,EAAE,CAAC;QAC1C,MAAM,YAAY,GAAG,IAAA,qBAAQ,EAAC,OAAO,CAAC,0BAA0B,CAAE,CAAC,CAAC;QACpE,IAAI,YAAY,EAAE,CAAC;YACjB,UAAU,GAAG,YAAY,CAAC;QAC5B,CAAC;IACH,CAAC;IACD,MAAM,UAAU,GAAG,IAAA,8BAAmB,EAAC,UAAU,CAAC,CAAC;IACnD,MAAM,QAAQ,GAAG,IAAA,0BAAa,EAAC,UAAU,CAAC,CAAC;IAC3C,MAAM,UAAU,GAAG,MAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,IAAI,mCAAI,UAAU,CAAC;IAChD,iBAAiB,CAAC,IAAI,GAAG,UAAU,CAAC;IAEpC,IAAI,aAAa,CAAC,mBAAmB,EAAE,CAAC;QACtC,iBAAiB,CAAC,mBAAmB,GAAG,aAAa,CAAC,mBAAmB,CAAC;IAC5E,CAAC;IACD,IAAI,aAAa,CAAC,kBAAkB,KAAK,SAAS,EAAE,CAAC;QACnD,iBAAiB,CAAC,kBAAkB,GAAG,aAAa,CAAC,kBAAkB,CAAC;IAC1E,CAAC;IACD,iBAAiB,CAAC,aAAa,GAAG,CAAC,IAAI,CAAC,CAAC;IACzC,IAAI,OAAO,CAAC,+BAA+B,CAAC,EAAE,CAAC;QAC7C,MAAM,qBAAqB,GAAG,OAAO,CAAC,+BAA+B,CAAE,CAAC;QACxE,MAAM,2BAA2B,GAC/B,MAAA,iBAAiB,CAAC,mBAAmB,mCAAI,yBAAmB,CAAC;QAC/D,iBAAiB,CAAC,mBAAmB,GAAG,CACtC,IAAY,EACZ,IAAqB,EACF,EAAE;YACrB,OAAO,2BAA2B,CAAC,qBAAqB,EAAE,IAAI,CAAC,CAAC;QAClE,CAAC,CAAC;QACF,iBAAiB,CAAC,UAAU,GAAG,qBAAqB,CAAC;IACvD,CAAC;SAAM,CAAC;QACN,iBAAiB,CAAC,UAAU,GAAG,UAAU,CAAC;IAC5C,CAAC;IACD,IAAI,OAAO,CAAC,4BAA4B,CAAC,EAAE,CAAC;QAC1C,iBAAiB,CAAC,WAAW,GAAG,IAAI,CAAC;IACvC,CAAC;IACD,OAAO,iBAAiB,CAAC;AAC3B,CAAC;AAED,MAAM,mBAAmB;IACvB,YAAoB,iBAAoC,EAAU,eAAgC;QAA9E,sBAAiB,GAAjB,iBAAiB,CAAmB;QAAU,oBAAe,GAAf,eAAe,CAAiB;IAClG,CAAC;IACD,OAAO,CAAC,MAAc;QACpB,MAAM,iBAAiB,mBACrB,MAAM,EAAE,MAAM,IACX,IAAI,CAAC,iBAAiB,CAC1B,CAAC;QACF,OAAO,IAAI,OAAO,CAAsB,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YAC1D,MAAM,SAAS,GAAG,IAAA,aAAU,EAAC,iBAAiB,EAAE,GAAG,EAAE;;gBACnD,IAAI,CAAC,MAAA,IAAI,CAAC,iBAAiB,CAAC,kBAAkB,mCAAI,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE,CAAC;oBACjF,MAAM,CAAC,SAAS,CAAC,kBAAkB,CAAC,CAAC;oBACrC,OAAO;gBACT,CAAC;gBACD,OAAO,CAAC;oBACN,MAAM,EAAE,SAAS;oBACjB,MAAM,EAAE,IAAI;iBACb,CAAC,CAAA;YACJ,CAAC,CAAC,CAAC;YACH,SAAS,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,KAAY,EAAE,EAAE;gBACrC,MAAM,CAAC,KAAK,CAAC,CAAC;YAChB,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;IACD,YAAY;QACV,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IAC3B,CAAC;IACD,kBAAkB;QAChB,OAAO,IAAI,CAAC,eAAe,CAAC;IAC9B,CAAC;IACD,OAAO,KAAI,CAAC;CACb;AAED,MAAM,4BAA6B,SAAQ,kBAAkB;IAC3D,YACU,aAA4B,EAC5B,aAA4B;QAEpC,KAAK,EAAE,CAAC;QAHA,kBAAa,GAAb,aAAa,CAAe;QAC5B,kBAAa,GAAb,aAAa,CAAe;IAGtC,CAAC;IAED,SAAS;QACP,OAAO,IAAI,CAAC;IACd,CAAC;IACD,OAAO,CAAC,KAAyB;QAC/B,IAAI,IAAI,KAAK,KAAK,EAAE,CAAC;YACnB,OAAO,IAAI,CAAC;QACd,CAAC;QACD,IAAI,KAAK,YAAY,4BAA4B,EAAE,CAAC;YAClD,OAAO,CACL,IAAI,CAAC,aAAa,KAAK,KAAK,CAAC,aAAa;gBAC1C,IAAI,CAAC,aAAa,CAAC,mBAAmB;oBACpC,KAAK,CAAC,aAAa,CAAC,mBAAmB,CAC1C,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IACD,sBAAsB,CAAC,aAAsB,EAAE,OAAuB,EAAE,eAAiC;QACvG,MAAM,iBAAiB,GAAG,oBAAoB,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,aAAa,EAAE,aAAa,EAAE,OAAO,CAAC,CAAC;QAC/G,OAAO,IAAI,mBAAmB,CAAC,iBAAiB,EAAE,eAAe,aAAf,eAAe,cAAf,eAAe,GAAI,kCAAe,CAAC,WAAW,EAAE,CAAC,CAAC;IACtG,CAAC;CACF;AAED,MAAM,yCAA0C,SAAQ,kBAAkB;IAoExE,YACU,qBAA0C,EAC1C,2BAAuD,EACvD,aAA4B;QAEpC,KAAK,EAAE,CAAC;QAJA,0BAAqB,GAArB,qBAAqB,CAAqB;QAC1C,gCAA2B,GAA3B,2BAA2B,CAA4B;QACvD,kBAAa,GAAb,aAAa,CAAe;QAtE9B,aAAQ,GAAW,CAAC,CAAC;QAC7B;;;WAGG;QACK,mBAAc,GAA2C,SAAS,CAAC;QAC3E;;;WAGG;QACK,yBAAoB,GAAiD,SAAS,CAAC;QAC/E,gCAA2B,GAAgC,IAAI,CAAC,yBAAyB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACrG,sCAAiC,GAAsC,IAAI,CAAC,iCAAiC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACzH,0BAAqB,GAAgD,EAAE,CAAC;IA4DhF,CAAC;IACD,SAAS;QACP,OAAO,IAAI,CAAC;IACd,CAAC;IACD,OAAO,CAAC,KAAyB;;QAC/B,IAAI,IAAI,KAAK,KAAK,EAAE,CAAC;YACnB,OAAO,IAAI,CAAC;QACd,CAAC;QACD,IAAI,KAAK,YAAY,yCAAyC,EAAE,CAAC;YAC/D,OAAO,IAAI,CAAC,qBAAqB,KAAK,KAAK,CAAC,qBAAqB;gBAC/D,IAAI,CAAC,2BAA2B,KAAK,KAAK,CAAC,2BAA2B;gBACtE,CAAA,MAAA,IAAI,CAAC,aAAa,0CAAE,mBAAmB,OAAK,MAAA,KAAK,CAAC,aAAa,0CAAE,mBAAmB,CAAA,CAAC;QACzF,CAAC;aAAM,CAAC;YACN,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IACO,GAAG;;QACT,IAAI,IAAI,CAAC,QAAQ,KAAK,CAAC,EAAE,CAAC;YACxB,IAAI,CAAC,qBAAqB,CAAC,wBAAwB,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC;YACtF,MAAA,IAAI,CAAC,2BAA2B,0CAAE,8BAA8B,CAAC,IAAI,CAAC,iCAAiC,CAAC,CAAC;QAC3G,CAAC;QACD,IAAI,CAAC,QAAQ,IAAI,CAAC,CAAC;IACrB,CAAC;IACO,KAAK;;QACX,IAAI,CAAC,QAAQ,IAAI,CAAC,CAAC;QACnB,IAAI,IAAI,CAAC,QAAQ,KAAK,CAAC,EAAE,CAAC;YACxB,IAAI,CAAC,qBAAqB,CAAC,2BAA2B,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC;YACzF,MAAA,IAAI,CAAC,2BAA2B,0CAAE,iCAAiC,CAAC,IAAI,CAAC,iCAAiC,CAAC,CAAC;QAC9G,CAAC;IACH,CAAC;IACD,sBAAsB,CAAC,aAAsB,EAAE,OAAuB,EAAE,eAAiC;QACvG,IAAI,CAAC,GAAG,EAAE,CAAC;QACX,OAAO,IAAI,yCAAyC,CAAC,mBAAmB,CAAC,IAAI,EAAE,aAAa,EAAE,OAAO,EAAE,eAAe,aAAf,eAAe,cAAf,eAAe,GAAI,kCAAe,CAAC,WAAW,EAAE,CAAC,CAAC;IAC3J,CAAC;IAEO,mBAAmB;QACzB,IAAI,IAAI,CAAC,kBAAkB,EAAE,EAAE,CAAC;YAC9B,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,qBAAqB,EAAE,CAAC;gBACjD,OAAO,CAAC,IAAI,CAAC,sBAAsB,EAAE,CAAC,CAAC;YACzC,CAAC;YACD,IAAI,CAAC,qBAAqB,GAAG,EAAE,CAAC;QAClC,CAAC;IACH,CAAC;IAEO,yBAAyB,CAAC,MAAkC;QAClE,IAAI,CAAC,cAAc,GAAG,MAAM,CAAC;QAC7B,IAAI,CAAC,mBAAmB,EAAE,CAAC;IAC7B,CAAC;IAEO,iCAAiC,CAAC,MAAwC;QAChF,IAAI,CAAC,oBAAoB,GAAG,MAAM,CAAC;QACnC,IAAI,CAAC,mBAAmB,EAAE,CAAC;IAC7B,CAAC;IAEO,kBAAkB;QACxB,IAAI,IAAI,CAAC,cAAc,KAAK,SAAS,EAAE,CAAC;YACtC,OAAO,KAAK,CAAC;QACf,CAAC;QACD,IAAI,IAAI,CAAC,2BAA2B,IAAI,IAAI,CAAC,oBAAoB,KAAK,SAAS,EAAE,CAAC;YAChF,OAAO,KAAK,CAAC;QACf,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAEO,gBAAgB;QACtB,IAAI,IAAI,CAAC,kBAAkB,EAAE,EAAE,CAAC;YAC9B,OAAO,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,sBAAsB,EAAE,CAAC,CAAC;QACxD,CAAC;aAAM,CAAC;YACN,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE;gBAC3B,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAC3C,CAAC,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAEO,sBAAsB;;QAC5B,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC;YACzB,OAAO,IAAI,CAAC;QACd,CAAC;QACD,IAAI,IAAI,CAAC,2BAA2B,KAAK,IAAI,IAAI,CAAC,IAAI,CAAC,oBAAoB,EAAE,CAAC;YAC5E,OAAO,IAAI,CAAC;QACd,CAAC;QACD,IAAI,CAAC;YACH,OAAO,IAAA,yBAAmB,EAAC;gBACzB,EAAE,EAAE,IAAI,CAAC,cAAc,CAAC,aAAa;gBACrC,GAAG,EAAE,MAAA,IAAI,CAAC,oBAAoB,0CAAE,UAAU;gBAC1C,IAAI,EAAE,MAAA,IAAI,CAAC,oBAAoB,0CAAE,WAAW;gBAC5C,OAAO,EAAE,2BAAa;aACvB,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,IAAA,aAAG,EAAC,wBAAY,CAAC,KAAK,EAAE,2CAA2C,GAAI,CAAW,CAAC,OAAO,CAAC,CAAC;YAC5F,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;;AAvJc,6DAAmB,GAAG;IACnC,YAAoB,MAAiD,EAAU,aAAsB,EAAU,OAAuB,EAAU,eAAgC;QAA5J,WAAM,GAAN,MAAM,CAA2C;QAAU,kBAAa,GAAb,aAAa,CAAS;QAAU,YAAO,GAAP,OAAO,CAAgB;QAAU,oBAAe,GAAf,eAAe,CAAiB;IAAG,CAAC;IAEpL,OAAO,CAAC,MAAc;QACpB,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACrC,MAAM,aAAa,GAAG,IAAI,CAAC,MAAM,CAAC,sBAAsB,EAAE,CAAC;YAC3D,IAAI,CAAC,aAAa,EAAE,CAAC;gBACnB,MAAM,CAAC,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC,CAAC;gBAChD,OAAO;YACT,CAAC;YACD,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;gBAClB,MAAM,CAAC,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAC,CAAC;YAC/D,CAAC;YACD,MAAM,kBAAkB,GAAG,oBAAoB,CAAC,aAAa,EAAE,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;YAC5H,MAAM,iBAAiB,mBACrB,MAAM,EAAE,MAAM,IACX,kBAAkB,CACtB,CAAA;YACD,MAAM,aAAa,GAAG,GAAG,EAAE;gBACzB,MAAM,CAAC,IAAI,KAAK,CAAC,eAAe,CAAC,CAAC,CAAC;YACrC,CAAC,CAAC;YACF,MAAM,aAAa,GAAG,CAAC,KAAY,EAAE,EAAE;gBACrC,MAAM,CAAC,KAAK,CAAC,CAAC;YAChB,CAAC,CAAA;YACD,MAAM,SAAS,GAAG,IAAA,aAAU,EAAC,iBAAiB,EAAE,GAAG,EAAE;;gBACnD,SAAS,CAAC,cAAc,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC;gBACjD,SAAS,CAAC,cAAc,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC;gBACjD,IAAI,CAAC,MAAA,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,kBAAkB,mCAAI,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE,CAAC;oBACpF,MAAM,CAAC,SAAS,CAAC,kBAAkB,CAAC,CAAC;oBACrC,OAAO;gBACT,CAAC;gBACD,OAAO,CAAC;oBACN,MAAM,EAAE,SAAS;oBACjB,MAAM,EAAE,IAAI;iBACb,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;YACH,SAAS,CAAC,IAAI,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC;YACvC,SAAS,CAAC,IAAI,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC;QACzC,CAAC,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,YAAY;QAChB,MAAM,IAAI,CAAC,MAAM,CAAC,gBAAgB,EAAE,CAAC;IACvC,CAAC;IAED,kBAAkB;QAChB,OAAO,IAAI,CAAC,eAAe,CAAC;IAC9B,CAAC;IAED,OAAO;QACL,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;IACtB,CAAC;CACF,AApDiC,CAoDjC;AAsGH,SAAgB,2CAA2C,CAAC,qBAA0C,EAAE,2BAAuD,EAAE,aAA6B;IAC5L,OAAO,IAAI,yCAAyC,CAAC,qBAAqB,EAAE,2BAA2B,EAAE,aAAa,aAAb,aAAa,cAAb,aAAa,GAAI,EAAE,CAAC,CAAC;AAChI,CAAC;AAED,MAAM,8BAA+B,SAAQ,kBAAkB;IAC7D,YACU,kBAAsC,EACtC,eAAgC;QAExC,KAAK,EAAE,CAAC;QAHA,uBAAkB,GAAlB,kBAAkB,CAAoB;QACtC,oBAAe,GAAf,eAAe,CAAiB;QAGxC,IAAI,CAAC,kBAAkB,CAAC,SAAS,EAAE,EAAE,CAAC;YACpC,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAC;QACzD,CAAC;IACH,CAAC;IACD,OAAO,CAAC,eAAgC;QACtC,MAAM,uBAAuB,GAC3B,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;QAChD,OAAO,IAAI,8BAA8B,CACvC,IAAI,CAAC,kBAAkB,EACvB,uBAAuB,CACxB,CAAC;IACJ,CAAC;IACD,SAAS;QACP,OAAO,IAAI,CAAC;IACd,CAAC;IACD,OAAO,CAAC,KAAyB;QAC/B,IAAI,IAAI,KAAK,KAAK,EAAE,CAAC;YACnB,OAAO,IAAI,CAAC;QACd,CAAC;QACD,IAAI,KAAK,YAAY,8BAA8B,EAAE,CAAC;YACpD,OAAO,CACL,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,KAAK,CAAC,kBAAkB,CAAC;gBACzD,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,KAAK,CAAC,eAAe,CAAC,CACpD,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IACD,sBAAsB,CAAC,aAAsB,EAAE,OAAuB,EAAE,eAAiC;QACvG,MAAM,uBAAuB,GAAG,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,eAAe,aAAf,eAAe,cAAf,eAAe,GAAI,kCAAe,CAAC,WAAW,EAAE,CAAC,CAAC;QAC/G,OAAO,IAAI,CAAC,kBAAkB,CAAC,sBAAsB,CAAC,aAAa,EAAE,OAAO,EAAE,uBAAuB,CAAC,CAAC;IACzG,CAAC;CACF"}
 
 
node_modules/@grpc/grpc-js/build/src/channel-options.d.ts DELETED
@@ -1,81 +0,0 @@
1
- import { CompressionAlgorithms } from './compression-algorithms';
2
- /**
3
- * An interface that contains options used when initializing a Channel instance.
4
- */
5
- export interface ChannelOptions {
6
- 'grpc.ssl_target_name_override'?: string;
7
- 'grpc.primary_user_agent'?: string;
8
- 'grpc.secondary_user_agent'?: string;
9
- 'grpc.default_authority'?: string;
10
- 'grpc.keepalive_time_ms'?: number;
11
- 'grpc.keepalive_timeout_ms'?: number;
12
- 'grpc.keepalive_permit_without_calls'?: number;
13
- 'grpc.service_config'?: string;
14
- 'grpc.max_concurrent_streams'?: number;
15
- 'grpc.initial_reconnect_backoff_ms'?: number;
16
- 'grpc.max_reconnect_backoff_ms'?: number;
17
- 'grpc.use_local_subchannel_pool'?: number;
18
- 'grpc.max_send_message_length'?: number;
19
- 'grpc.max_receive_message_length'?: number;
20
- 'grpc.enable_http_proxy'?: number;
21
- 'grpc.http_connect_target'?: string;
22
- 'grpc.http_connect_creds'?: string;
23
- 'grpc.default_compression_algorithm'?: CompressionAlgorithms;
24
- 'grpc.enable_channelz'?: number;
25
- 'grpc.dns_min_time_between_resolutions_ms'?: number;
26
- 'grpc.enable_retries'?: number;
27
- 'grpc.per_rpc_retry_buffer_size'?: number;
28
- 'grpc.retry_buffer_size'?: number;
29
- 'grpc.max_connection_age_ms'?: number;
30
- 'grpc.max_connection_age_grace_ms'?: number;
31
- 'grpc.max_connection_idle_ms'?: number;
32
- 'grpc-node.max_session_memory'?: number;
33
- 'grpc.service_config_disable_resolution'?: number;
34
- 'grpc.client_idle_timeout_ms'?: number;
35
- /**
36
- * Set the enableTrace option in TLS clients and servers
37
- */
38
- 'grpc-node.tls_enable_trace'?: number;
39
- 'grpc.lb.ring_hash.ring_size_cap'?: number;
40
- 'grpc-node.retry_max_attempts_limit'?: number;
41
- 'grpc-node.flow_control_window'?: number;
42
- 'grpc.server_call_metric_recording'?: number;
43
- [key: string]: any;
44
- }
45
- /**
46
- * This is for checking provided options at runtime. This is an object for
47
- * easier membership checking.
48
- */
49
- export declare const recognizedOptions: {
50
- 'grpc.ssl_target_name_override': boolean;
51
- 'grpc.primary_user_agent': boolean;
52
- 'grpc.secondary_user_agent': boolean;
53
- 'grpc.default_authority': boolean;
54
- 'grpc.keepalive_time_ms': boolean;
55
- 'grpc.keepalive_timeout_ms': boolean;
56
- 'grpc.keepalive_permit_without_calls': boolean;
57
- 'grpc.service_config': boolean;
58
- 'grpc.max_concurrent_streams': boolean;
59
- 'grpc.initial_reconnect_backoff_ms': boolean;
60
- 'grpc.max_reconnect_backoff_ms': boolean;
61
- 'grpc.use_local_subchannel_pool': boolean;
62
- 'grpc.max_send_message_length': boolean;
63
- 'grpc.max_receive_message_length': boolean;
64
- 'grpc.enable_http_proxy': boolean;
65
- 'grpc.enable_channelz': boolean;
66
- 'grpc.dns_min_time_between_resolutions_ms': boolean;
67
- 'grpc.enable_retries': boolean;
68
- 'grpc.per_rpc_retry_buffer_size': boolean;
69
- 'grpc.retry_buffer_size': boolean;
70
- 'grpc.max_connection_age_ms': boolean;
71
- 'grpc.max_connection_age_grace_ms': boolean;
72
- 'grpc-node.max_session_memory': boolean;
73
- 'grpc.service_config_disable_resolution': boolean;
74
- 'grpc.client_idle_timeout_ms': boolean;
75
- 'grpc-node.tls_enable_trace': boolean;
76
- 'grpc.lb.ring_hash.ring_size_cap': boolean;
77
- 'grpc-node.retry_max_attempts_limit': boolean;
78
- 'grpc-node.flow_control_window': boolean;
79
- 'grpc.server_call_metric_recording': boolean;
80
- };
81
- export declare function channelOptionsEqual(options1: ChannelOptions, options2: ChannelOptions): boolean;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
node_modules/@grpc/grpc-js/build/src/channel-options.js DELETED
@@ -1,73 +0,0 @@
1
- "use strict";
2
- /*
3
- * Copyright 2019 gRPC authors.
4
- *
5
- * Licensed under the Apache License, Version 2.0 (the "License");
6
- * you may not use this file except in compliance with the License.
7
- * You may obtain a copy of the License at
8
- *
9
- * http://www.apache.org/licenses/LICENSE-2.0
10
- *
11
- * Unless required by applicable law or agreed to in writing, software
12
- * distributed under the License is distributed on an "AS IS" BASIS,
13
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
- * See the License for the specific language governing permissions and
15
- * limitations under the License.
16
- *
17
- */
18
- Object.defineProperty(exports, "__esModule", { value: true });
19
- exports.recognizedOptions = void 0;
20
- exports.channelOptionsEqual = channelOptionsEqual;
21
- /**
22
- * This is for checking provided options at runtime. This is an object for
23
- * easier membership checking.
24
- */
25
- exports.recognizedOptions = {
26
- 'grpc.ssl_target_name_override': true,
27
- 'grpc.primary_user_agent': true,
28
- 'grpc.secondary_user_agent': true,
29
- 'grpc.default_authority': true,
30
- 'grpc.keepalive_time_ms': true,
31
- 'grpc.keepalive_timeout_ms': true,
32
- 'grpc.keepalive_permit_without_calls': true,
33
- 'grpc.service_config': true,
34
- 'grpc.max_concurrent_streams': true,
35
- 'grpc.initial_reconnect_backoff_ms': true,
36
- 'grpc.max_reconnect_backoff_ms': true,
37
- 'grpc.use_local_subchannel_pool': true,
38
- 'grpc.max_send_message_length': true,
39
- 'grpc.max_receive_message_length': true,
40
- 'grpc.enable_http_proxy': true,
41
- 'grpc.enable_channelz': true,
42
- 'grpc.dns_min_time_between_resolutions_ms': true,
43
- 'grpc.enable_retries': true,
44
- 'grpc.per_rpc_retry_buffer_size': true,
45
- 'grpc.retry_buffer_size': true,
46
- 'grpc.max_connection_age_ms': true,
47
- 'grpc.max_connection_age_grace_ms': true,
48
- 'grpc-node.max_session_memory': true,
49
- 'grpc.service_config_disable_resolution': true,
50
- 'grpc.client_idle_timeout_ms': true,
51
- 'grpc-node.tls_enable_trace': true,
52
- 'grpc.lb.ring_hash.ring_size_cap': true,
53
- 'grpc-node.retry_max_attempts_limit': true,
54
- 'grpc-node.flow_control_window': true,
55
- 'grpc.server_call_metric_recording': true
56
- };
57
- function channelOptionsEqual(options1, options2) {
58
- const keys1 = Object.keys(options1).sort();
59
- const keys2 = Object.keys(options2).sort();
60
- if (keys1.length !== keys2.length) {
61
- return false;
62
- }
63
- for (let i = 0; i < keys1.length; i += 1) {
64
- if (keys1[i] !== keys2[i]) {
65
- return false;
66
- }
67
- if (options1[keys1[i]] !== options2[keys2[i]]) {
68
- return false;
69
- }
70
- }
71
- return true;
72
- }
73
- //# sourceMappingURL=channel-options.js.map
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
node_modules/@grpc/grpc-js/build/src/channel-options.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"channel-options.js","sourceRoot":"","sources":["../../src/channel-options.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;GAeG;;;AA8FH,kDAkBC;AAvDD;;;GAGG;AACU,QAAA,iBAAiB,GAAG;IAC/B,+BAA+B,EAAE,IAAI;IACrC,yBAAyB,EAAE,IAAI;IAC/B,2BAA2B,EAAE,IAAI;IACjC,wBAAwB,EAAE,IAAI;IAC9B,wBAAwB,EAAE,IAAI;IAC9B,2BAA2B,EAAE,IAAI;IACjC,qCAAqC,EAAE,IAAI;IAC3C,qBAAqB,EAAE,IAAI;IAC3B,6BAA6B,EAAE,IAAI;IACnC,mCAAmC,EAAE,IAAI;IACzC,+BAA+B,EAAE,IAAI;IACrC,gCAAgC,EAAE,IAAI;IACtC,8BAA8B,EAAE,IAAI;IACpC,iCAAiC,EAAE,IAAI;IACvC,wBAAwB,EAAE,IAAI;IAC9B,sBAAsB,EAAE,IAAI;IAC5B,0CAA0C,EAAE,IAAI;IAChD,qBAAqB,EAAE,IAAI;IAC3B,gCAAgC,EAAE,IAAI;IACtC,wBAAwB,EAAE,IAAI;IAC9B,4BAA4B,EAAE,IAAI;IAClC,kCAAkC,EAAE,IAAI;IACxC,8BAA8B,EAAE,IAAI;IACpC,wCAAwC,EAAE,IAAI;IAC9C,6BAA6B,EAAE,IAAI;IACnC,4BAA4B,EAAE,IAAI;IAClC,iCAAiC,EAAE,IAAI;IACvC,oCAAoC,EAAE,IAAI;IAC1C,+BAA+B,EAAE,IAAI;IACrC,mCAAmC,EAAE,IAAI;CAC1C,CAAC;AAEF,SAAgB,mBAAmB,CACjC,QAAwB,EACxB,QAAwB;IAExB,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,EAAE,CAAC;IAC3C,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,EAAE,CAAC;IAC3C,IAAI,KAAK,CAAC,MAAM,KAAK,KAAK,CAAC,MAAM,EAAE,CAAC;QAClC,OAAO,KAAK,CAAC;IACf,CAAC;IACD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;QACzC,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;YAC1B,OAAO,KAAK,CAAC;QACf,CAAC;QACD,IAAI,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YAC9C,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC"}