@mongodb-js/connection-form 0.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (183) hide show
  1. package/LICENSE +557 -0
  2. package/dist/.esm-wrapper.mjs +5 -0
  3. package/dist/components/advanced-connection-options.d.ts +12 -0
  4. package/dist/components/advanced-connection-options.d.ts.map +1 -0
  5. package/dist/components/advanced-connection-options.js +29 -0
  6. package/dist/components/advanced-connection-options.js.map +1 -0
  7. package/dist/components/advanced-options-tabs/advanced-options-tabs.d.ts +11 -0
  8. package/dist/components/advanced-options-tabs/advanced-options-tabs.d.ts.map +1 -0
  9. package/dist/components/advanced-options-tabs/advanced-options-tabs.js +85 -0
  10. package/dist/components/advanced-options-tabs/advanced-options-tabs.js.map +1 -0
  11. package/dist/components/advanced-options-tabs/advanced-tab/advanced-tab.d.ts +13 -0
  12. package/dist/components/advanced-options-tabs/advanced-tab/advanced-tab.d.ts.map +1 -0
  13. package/dist/components/advanced-options-tabs/advanced-tab/advanced-tab.js +80 -0
  14. package/dist/components/advanced-options-tabs/advanced-tab/advanced-tab.js.map +1 -0
  15. package/dist/components/advanced-options-tabs/advanced-tab/url-options-table.d.ts +9 -0
  16. package/dist/components/advanced-options-tabs/advanced-tab/url-options-table.d.ts.map +1 -0
  17. package/dist/components/advanced-options-tabs/advanced-tab/url-options-table.js +130 -0
  18. package/dist/components/advanced-options-tabs/advanced-tab/url-options-table.js.map +1 -0
  19. package/dist/components/advanced-options-tabs/advanced-tab/url-options.d.ts +9 -0
  20. package/dist/components/advanced-options-tabs/advanced-tab/url-options.d.ts.map +1 -0
  21. package/dist/components/advanced-options-tabs/advanced-tab/url-options.js +25 -0
  22. package/dist/components/advanced-options-tabs/advanced-tab/url-options.js.map +1 -0
  23. package/dist/components/advanced-options-tabs/authentication-tab/authentication-aws.d.ts +14 -0
  24. package/dist/components/advanced-options-tabs/authentication-tab/authentication-aws.d.ts.map +1 -0
  25. package/dist/components/advanced-options-tabs/authentication-tab/authentication-aws.js +44 -0
  26. package/dist/components/advanced-options-tabs/authentication-tab/authentication-aws.js.map +1 -0
  27. package/dist/components/advanced-options-tabs/authentication-tab/authentication-default.d.ts +11 -0
  28. package/dist/components/advanced-options-tabs/authentication-tab/authentication-default.d.ts.map +1 -0
  29. package/dist/components/advanced-options-tabs/authentication-tab/authentication-default.js +103 -0
  30. package/dist/components/advanced-options-tabs/authentication-tab/authentication-default.js.map +1 -0
  31. package/dist/components/advanced-options-tabs/authentication-tab/authentication-gssapi.d.ts +11 -0
  32. package/dist/components/advanced-options-tabs/authentication-tab/authentication-gssapi.d.ts.map +1 -0
  33. package/dist/components/advanced-options-tabs/authentication-tab/authentication-gssapi.js +103 -0
  34. package/dist/components/advanced-options-tabs/authentication-tab/authentication-gssapi.js.map +1 -0
  35. package/dist/components/advanced-options-tabs/authentication-tab/authentication-plain.d.ts +13 -0
  36. package/dist/components/advanced-options-tabs/authentication-tab/authentication-plain.d.ts.map +1 -0
  37. package/dist/components/advanced-options-tabs/authentication-tab/authentication-plain.js +36 -0
  38. package/dist/components/advanced-options-tabs/authentication-tab/authentication-plain.js.map +1 -0
  39. package/dist/components/advanced-options-tabs/authentication-tab/authentication-tab.d.ts +13 -0
  40. package/dist/components/advanced-options-tabs/authentication-tab/authentication-tab.d.ts.map +1 -0
  41. package/dist/components/advanced-options-tabs/authentication-tab/authentication-tab.js +116 -0
  42. package/dist/components/advanced-options-tabs/authentication-tab/authentication-tab.js.map +1 -0
  43. package/dist/components/advanced-options-tabs/authentication-tab/authentication-x509.d.ts +4 -0
  44. package/dist/components/advanced-options-tabs/authentication-tab/authentication-x509.d.ts.map +1 -0
  45. package/dist/components/advanced-options-tabs/authentication-tab/authentication-x509.js +20 -0
  46. package/dist/components/advanced-options-tabs/authentication-tab/authentication-x509.js.map +1 -0
  47. package/dist/components/advanced-options-tabs/general-tab/direct-connection-input.d.ts +9 -0
  48. package/dist/components/advanced-options-tabs/general-tab/direct-connection-input.d.ts.map +1 -0
  49. package/dist/components/advanced-options-tabs/general-tab/direct-connection-input.js +49 -0
  50. package/dist/components/advanced-options-tabs/general-tab/direct-connection-input.js.map +1 -0
  51. package/dist/components/advanced-options-tabs/general-tab/general-tab.d.ts +11 -0
  52. package/dist/components/advanced-options-tabs/general-tab/general-tab.d.ts.map +1 -0
  53. package/dist/components/advanced-options-tabs/general-tab/general-tab.js +17 -0
  54. package/dist/components/advanced-options-tabs/general-tab/general-tab.js.map +1 -0
  55. package/dist/components/advanced-options-tabs/general-tab/host-input.d.ts +11 -0
  56. package/dist/components/advanced-options-tabs/general-tab/host-input.d.ts.map +1 -0
  57. package/dist/components/advanced-options-tabs/general-tab/host-input.js +86 -0
  58. package/dist/components/advanced-options-tabs/general-tab/host-input.js.map +1 -0
  59. package/dist/components/advanced-options-tabs/general-tab/schema-input.d.ts +11 -0
  60. package/dist/components/advanced-options-tabs/general-tab/schema-input.d.ts.map +1 -0
  61. package/dist/components/advanced-options-tabs/general-tab/schema-input.js +52 -0
  62. package/dist/components/advanced-options-tabs/general-tab/schema-input.js.map +1 -0
  63. package/dist/components/advanced-options-tabs/general-tab/scheme-input.d.ts +11 -0
  64. package/dist/components/advanced-options-tabs/general-tab/scheme-input.d.ts.map +1 -0
  65. package/dist/components/advanced-options-tabs/general-tab/scheme-input.js +52 -0
  66. package/dist/components/advanced-options-tabs/general-tab/scheme-input.js.map +1 -0
  67. package/dist/components/advanced-options-tabs/ssh-tunnel-tab/proxy-and-ssh-tunnel-tab.d.ts +13 -0
  68. package/dist/components/advanced-options-tabs/ssh-tunnel-tab/proxy-and-ssh-tunnel-tab.d.ts.map +1 -0
  69. package/dist/components/advanced-options-tabs/ssh-tunnel-tab/proxy-and-ssh-tunnel-tab.js +127 -0
  70. package/dist/components/advanced-options-tabs/ssh-tunnel-tab/proxy-and-ssh-tunnel-tab.js.map +1 -0
  71. package/dist/components/advanced-options-tabs/ssh-tunnel-tab/socks.d.ts +11 -0
  72. package/dist/components/advanced-options-tabs/ssh-tunnel-tab/socks.d.ts.map +1 -0
  73. package/dist/components/advanced-options-tabs/ssh-tunnel-tab/socks.js +86 -0
  74. package/dist/components/advanced-options-tabs/ssh-tunnel-tab/socks.js.map +1 -0
  75. package/dist/components/advanced-options-tabs/ssh-tunnel-tab/ssh-tunnel-identity.d.ts +11 -0
  76. package/dist/components/advanced-options-tabs/ssh-tunnel-tab/ssh-tunnel-identity.d.ts.map +1 -0
  77. package/dist/components/advanced-options-tabs/ssh-tunnel-tab/ssh-tunnel-identity.js +100 -0
  78. package/dist/components/advanced-options-tabs/ssh-tunnel-tab/ssh-tunnel-identity.js.map +1 -0
  79. package/dist/components/advanced-options-tabs/ssh-tunnel-tab/ssh-tunnel-password.d.ts +11 -0
  80. package/dist/components/advanced-options-tabs/ssh-tunnel-tab/ssh-tunnel-password.d.ts.map +1 -0
  81. package/dist/components/advanced-options-tabs/ssh-tunnel-tab/ssh-tunnel-password.js +82 -0
  82. package/dist/components/advanced-options-tabs/ssh-tunnel-tab/ssh-tunnel-password.js.map +1 -0
  83. package/dist/components/advanced-options-tabs/tls-ssl-tab/tls-certificate-authority.d.ts +9 -0
  84. package/dist/components/advanced-options-tabs/tls-ssl-tab/tls-certificate-authority.d.ts.map +1 -0
  85. package/dist/components/advanced-options-tabs/tls-ssl-tab/tls-certificate-authority.js +22 -0
  86. package/dist/components/advanced-options-tabs/tls-ssl-tab/tls-certificate-authority.js.map +1 -0
  87. package/dist/components/advanced-options-tabs/tls-ssl-tab/tls-client-certificate.d.ts +10 -0
  88. package/dist/components/advanced-options-tabs/tls-ssl-tab/tls-client-certificate.d.ts.map +1 -0
  89. package/dist/components/advanced-options-tabs/tls-ssl-tab/tls-client-certificate.js +27 -0
  90. package/dist/components/advanced-options-tabs/tls-ssl-tab/tls-client-certificate.js.map +1 -0
  91. package/dist/components/advanced-options-tabs/tls-ssl-tab/tls-ssl-tab.d.ts +11 -0
  92. package/dist/components/advanced-options-tabs/tls-ssl-tab/tls-ssl-tab.d.ts.map +1 -0
  93. package/dist/components/advanced-options-tabs/tls-ssl-tab/tls-ssl-tab.js +129 -0
  94. package/dist/components/advanced-options-tabs/tls-ssl-tab/tls-ssl-tab.js.map +1 -0
  95. package/dist/components/confirm-edit-connection-string.d.ts +8 -0
  96. package/dist/components/confirm-edit-connection-string.d.ts.map +1 -0
  97. package/dist/components/confirm-edit-connection-string.js +13 -0
  98. package/dist/components/confirm-edit-connection-string.js.map +1 -0
  99. package/dist/components/connect-form-actions.d.ts +11 -0
  100. package/dist/components/connect-form-actions.d.ts.map +1 -0
  101. package/dist/components/connect-form-actions.js +30 -0
  102. package/dist/components/connect-form-actions.js.map +1 -0
  103. package/dist/components/connect-form.d.ts +10 -0
  104. package/dist/components/connect-form.d.ts.map +1 -0
  105. package/dist/components/connect-form.js +166 -0
  106. package/dist/components/connect-form.js.map +1 -0
  107. package/dist/components/connection-string-input.d.ts +11 -0
  108. package/dist/components/connection-string-input.d.ts.map +1 -0
  109. package/dist/components/connection-string-input.js +118 -0
  110. package/dist/components/connection-string-input.js.map +1 -0
  111. package/dist/components/favorite-color-picker.d.ts +6 -0
  112. package/dist/components/favorite-color-picker.d.ts.map +1 -0
  113. package/dist/components/favorite-color-picker.js +79 -0
  114. package/dist/components/favorite-color-picker.js.map +1 -0
  115. package/dist/components/form-field-container.d.ts +7 -0
  116. package/dist/components/form-field-container.d.ts.map +1 -0
  117. package/dist/components/form-field-container.js +15 -0
  118. package/dist/components/form-field-container.js.map +1 -0
  119. package/dist/components/save-connection-modal.d.ts +10 -0
  120. package/dist/components/save-connection-modal.d.ts.map +1 -0
  121. package/dist/components/save-connection-modal.js +55 -0
  122. package/dist/components/save-connection-modal.js.map +1 -0
  123. package/dist/components/validation-summary.d.ts +12 -0
  124. package/dist/components/validation-summary.d.ts.map +1 -0
  125. package/dist/components/validation-summary.js +56 -0
  126. package/dist/components/validation-summary.js.map +1 -0
  127. package/dist/constants/default-connection.d.ts +6 -0
  128. package/dist/constants/default-connection.d.ts.map +1 -0
  129. package/dist/constants/default-connection.js +9 -0
  130. package/dist/constants/default-connection.js.map +1 -0
  131. package/dist/hooks/use-connect-form.d.ts +67 -0
  132. package/dist/hooks/use-connect-form.d.ts.map +1 -0
  133. package/dist/hooks/use-connect-form.js +373 -0
  134. package/dist/hooks/use-connect-form.js.map +1 -0
  135. package/dist/hooks/use-connection-color.d.ts +8 -0
  136. package/dist/hooks/use-connection-color.d.ts.map +1 -0
  137. package/dist/hooks/use-connection-color.js +59 -0
  138. package/dist/hooks/use-connection-color.js.map +1 -0
  139. package/dist/index.d.ts +6 -0
  140. package/dist/index.d.ts.map +1 -0
  141. package/dist/index.js +14 -0
  142. package/dist/index.js.map +1 -0
  143. package/dist/utils/authentication-handler.d.ts +42 -0
  144. package/dist/utils/authentication-handler.d.ts.map +1 -0
  145. package/dist/utils/authentication-handler.js +96 -0
  146. package/dist/utils/authentication-handler.js.map +1 -0
  147. package/dist/utils/check-for-invalid-character-in-host.d.ts +2 -0
  148. package/dist/utils/check-for-invalid-character-in-host.d.ts.map +1 -0
  149. package/dist/utils/check-for-invalid-character-in-host.js +16 -0
  150. package/dist/utils/check-for-invalid-character-in-host.js.map +1 -0
  151. package/dist/utils/connection-ssh-handler.d.ts +15 -0
  152. package/dist/utils/connection-ssh-handler.d.ts.map +1 -0
  153. package/dist/utils/connection-ssh-handler.js +23 -0
  154. package/dist/utils/connection-ssh-handler.js.map +1 -0
  155. package/dist/utils/connection-string-helpers.d.ts +14 -0
  156. package/dist/utils/connection-string-helpers.d.ts.map +1 -0
  157. package/dist/utils/connection-string-helpers.js +65 -0
  158. package/dist/utils/connection-string-helpers.js.map +1 -0
  159. package/dist/utils/connection-string-schema.d.ts +3 -0
  160. package/dist/utils/connection-string-schema.d.ts.map +1 -0
  161. package/dist/utils/connection-string-schema.js +43 -0
  162. package/dist/utils/connection-string-schema.js.map +1 -0
  163. package/dist/utils/get-next-host.d.ts +2 -0
  164. package/dist/utils/get-next-host.d.ts.map +1 -0
  165. package/dist/utils/get-next-host.js +26 -0
  166. package/dist/utils/get-next-host.js.map +1 -0
  167. package/dist/utils/read-preferences.d.ts +8 -0
  168. package/dist/utils/read-preferences.d.ts.map +1 -0
  169. package/dist/utils/read-preferences.js +27 -0
  170. package/dist/utils/read-preferences.js.map +1 -0
  171. package/dist/utils/tls-handler.d.ts +29 -0
  172. package/dist/utils/tls-handler.d.ts.map +1 -0
  173. package/dist/utils/tls-handler.js +47 -0
  174. package/dist/utils/tls-handler.js.map +1 -0
  175. package/dist/utils/url-options.d.ts +10 -0
  176. package/dist/utils/url-options.d.ts.map +1 -0
  177. package/dist/utils/url-options.js +49 -0
  178. package/dist/utils/url-options.js.map +1 -0
  179. package/dist/utils/validation.d.ts +30 -0
  180. package/dist/utils/validation.d.ts.map +1 -0
  181. package/dist/utils/validation.js +284 -0
  182. package/dist/utils/validation.js.map +1 -0
  183. package/package.json +89 -0
@@ -0,0 +1,284 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.validateConnectionOptionsWarnings = exports.isSecure = exports.getConnectionString = exports.validateConnectionOptionsErrors = exports.errorMessageByFieldNameAndIndex = exports.fieldNameHasError = exports.errorMessageByFieldName = exports.errorsByFieldTab = void 0;
7
+ const mongodb_build_info_1 = require("mongodb-build-info");
8
+ const mongodb_connection_string_url_1 = __importDefault(require("mongodb-connection-string-url"));
9
+ function errorsByFieldTab(errors, tabId) {
10
+ return errors.filter((error) => error.fieldTab === tabId);
11
+ }
12
+ exports.errorsByFieldTab = errorsByFieldTab;
13
+ function errorMessageByFieldName(errors, fieldName) {
14
+ var _a;
15
+ return (_a = (errors || []).find((err) => err.fieldName === fieldName)) === null || _a === void 0 ? void 0 : _a.message;
16
+ }
17
+ exports.errorMessageByFieldName = errorMessageByFieldName;
18
+ function fieldNameHasError(errors, fieldName) {
19
+ return !!errorMessageByFieldName(errors, fieldName);
20
+ }
21
+ exports.fieldNameHasError = fieldNameHasError;
22
+ function errorMessageByFieldNameAndIndex(errors, fieldName, fieldIndex) {
23
+ var _a;
24
+ return (_a = (errors || []).find((err) => err.fieldName === fieldName && err.fieldIndex === fieldIndex)) === null || _a === void 0 ? void 0 : _a.message;
25
+ }
26
+ exports.errorMessageByFieldNameAndIndex = errorMessageByFieldNameAndIndex;
27
+ function validateConnectionOptionsErrors(connectionOptions) {
28
+ const connectionString = getConnectionString(connectionOptions);
29
+ return [
30
+ ...validateAuthMechanismErrors(connectionString),
31
+ ...(connectionOptions.sshTunnel
32
+ ? validateSSHTunnelErrors(connectionOptions.sshTunnel)
33
+ : validateSocksProxyErrors(connectionString)),
34
+ ];
35
+ }
36
+ exports.validateConnectionOptionsErrors = validateConnectionOptionsErrors;
37
+ function validateAuthMechanismErrors(connectionString) {
38
+ const authMechanism = connectionString
39
+ .typedSearchParams()
40
+ .get('authMechanism');
41
+ switch ((authMechanism || '').toUpperCase()) {
42
+ case '':
43
+ return validateDefaultAuthMechanismErrors(connectionString);
44
+ case 'MONGODB-X509':
45
+ return validateX509Errors(connectionString);
46
+ case 'GSSAPI':
47
+ return validateKerberosErrors(connectionString);
48
+ case 'PLAIN':
49
+ return validateLDAPErrors(connectionString);
50
+ case 'SCRAM-SHA-1':
51
+ case 'SCRAM-SHA-256':
52
+ return validateScramShaErrors(connectionString);
53
+ default:
54
+ return [];
55
+ }
56
+ }
57
+ function validateScramShaErrors(connectionString) {
58
+ return validateUsernameAndPasswordErrors(connectionString);
59
+ }
60
+ function validateDefaultAuthMechanismErrors(connectionString) {
61
+ const { username, password } = connectionString;
62
+ if (!username && !password) {
63
+ return [];
64
+ }
65
+ return validateUsernameAndPasswordErrors(connectionString);
66
+ }
67
+ function validateUsernameAndPasswordErrors(connectionString) {
68
+ const { username, password } = connectionString;
69
+ const errors = [];
70
+ if (!username) {
71
+ errors.push({
72
+ fieldTab: 'authentication',
73
+ fieldName: 'username',
74
+ message: 'Username is missing.',
75
+ });
76
+ }
77
+ if (!password) {
78
+ errors.push({
79
+ fieldTab: 'authentication',
80
+ fieldName: 'password',
81
+ message: 'Password is missing.',
82
+ });
83
+ }
84
+ return errors;
85
+ }
86
+ function validateX509Errors(connectionString) {
87
+ const errors = [];
88
+ if (!isSecure(connectionString)) {
89
+ errors.push({
90
+ fieldTab: 'tls',
91
+ fieldName: 'tls',
92
+ message: 'TLS must be enabled in order to use x509 authentication.',
93
+ });
94
+ }
95
+ if (!connectionString.searchParams.has('tlsCertificateKeyFile')) {
96
+ errors.push({
97
+ fieldTab: 'tls',
98
+ fieldName: 'tlsCertificateKeyFile',
99
+ message: 'A Client Certificate is required with x509 authentication.',
100
+ });
101
+ }
102
+ return errors;
103
+ }
104
+ function validateLDAPErrors(connectionString) {
105
+ return validateUsernameAndPasswordErrors(connectionString);
106
+ }
107
+ function validateKerberosErrors(connectionString) {
108
+ const errors = [];
109
+ if (!connectionString.username) {
110
+ errors.push({
111
+ fieldTab: 'authentication',
112
+ fieldName: 'kerberosPrincipal',
113
+ message: 'Principal name is required with Kerberos.',
114
+ });
115
+ }
116
+ return errors;
117
+ }
118
+ function validateSSHTunnelErrors(sshTunnel) {
119
+ const errors = [];
120
+ if (!sshTunnel.host) {
121
+ errors.push({
122
+ fieldTab: 'proxy',
123
+ fieldName: 'sshHostname',
124
+ message: 'A hostname is required to connect with an SSH tunnel.',
125
+ });
126
+ }
127
+ if (!sshTunnel.password && !sshTunnel.identityKeyFile) {
128
+ errors.push({
129
+ fieldTab: 'proxy',
130
+ fieldName: 'sshPassword',
131
+ message: 'When connecting via SSH tunnel either password or identity file is required.',
132
+ });
133
+ }
134
+ if (sshTunnel.identityKeyPassphrase && !sshTunnel.identityKeyFile) {
135
+ errors.push({
136
+ fieldTab: 'proxy',
137
+ fieldName: 'sshIdentityKeyFile',
138
+ message: 'File is required along with passphrase.',
139
+ });
140
+ }
141
+ return errors;
142
+ }
143
+ function validateSocksProxyErrors(connectionString) {
144
+ const searchParams = connectionString.typedSearchParams();
145
+ const proxyHost = searchParams.get('proxyHost');
146
+ const proxyPort = searchParams.get('proxyPort');
147
+ const proxyUsername = searchParams.get('proxyUsername');
148
+ const proxyPassword = searchParams.get('proxyPassword');
149
+ const errors = [];
150
+ if (!proxyHost && (proxyPort || proxyUsername || proxyPassword)) {
151
+ errors.push({
152
+ fieldTab: 'proxy',
153
+ fieldName: 'proxyHostname',
154
+ message: 'Proxy hostname is required.',
155
+ });
156
+ return errors;
157
+ }
158
+ return errors;
159
+ }
160
+ function getConnectionString(connectionOptions) {
161
+ return new mongodb_connection_string_url_1.default(connectionOptions.connectionString);
162
+ }
163
+ exports.getConnectionString = getConnectionString;
164
+ function isSecure(connectionString) {
165
+ const sslParam = connectionString.searchParams.get('ssl');
166
+ const tlsParam = connectionString.searchParams.get('tls');
167
+ if (!sslParam && !tlsParam) {
168
+ return connectionString.isSRV;
169
+ }
170
+ return sslParam === 'true' || tlsParam === 'true';
171
+ }
172
+ exports.isSecure = isSecure;
173
+ function validateConnectionOptionsWarnings(connectionOptions) {
174
+ const connectionString = getConnectionString(connectionOptions);
175
+ return [
176
+ ...validateReadPreferenceWarnings(connectionString),
177
+ ...validateDeprecatedOptionsWarnings(connectionString),
178
+ ...validateCertificateValidationWarnings(connectionString),
179
+ ...validateDirectConnectionAndSrvWarnings(connectionString),
180
+ ...validateDirectConnectionAndReplicaSetWarnings(connectionString),
181
+ ...validateDirectConnectionAndMultiHostWarnings(connectionString),
182
+ ...validateTLSAndHostWarnings(connectionString),
183
+ ...validateSocksWarnings(connectionString),
184
+ ];
185
+ }
186
+ exports.validateConnectionOptionsWarnings = validateConnectionOptionsWarnings;
187
+ function validateCertificateValidationWarnings(connectionString) {
188
+ const warnings = [];
189
+ if (isSecure(connectionString) &&
190
+ (connectionString.searchParams.has('tlsInsecure') ||
191
+ connectionString.searchParams.has('tlsAllowInvalidHostnames') ||
192
+ connectionString.searchParams.has('tlsAllowInvalidCertificates'))) {
193
+ warnings.push({
194
+ message: 'Disabling certificate validation is not recommended as it may create a security vulnerability',
195
+ });
196
+ }
197
+ return warnings;
198
+ }
199
+ function validateDeprecatedOptionsWarnings(connectionString) {
200
+ const warnings = [];
201
+ if (connectionString.searchParams.has('tlsCertificateFile')) {
202
+ warnings.push({
203
+ message: 'tlsCertificateFile is deprecated and will be removed in future versions of Compass, please embed the client key and certificate chain in a single .pem bundle and use tlsCertificateKeyFile instead.',
204
+ });
205
+ }
206
+ return warnings;
207
+ }
208
+ function validateReadPreferenceWarnings(connectionString) {
209
+ const warnings = [];
210
+ const VALID_READ_PREFERENCES = [
211
+ 'primary',
212
+ 'primaryPreferred',
213
+ 'secondary',
214
+ 'secondaryPreferred',
215
+ 'nearest',
216
+ ];
217
+ const readPreference = connectionString.searchParams.get('readPreference');
218
+ if (readPreference && !VALID_READ_PREFERENCES.includes(readPreference)) {
219
+ warnings.push({
220
+ message: `Unknown read preference ${readPreference}`,
221
+ });
222
+ }
223
+ return warnings;
224
+ }
225
+ function validateDirectConnectionAndSrvWarnings(connectionString) {
226
+ const warnings = [];
227
+ if (connectionString.isSRV &&
228
+ connectionString.searchParams.get('directConnection') === 'true') {
229
+ warnings.push({
230
+ message: 'directConnection not supported with SRV URI.',
231
+ });
232
+ }
233
+ return warnings;
234
+ }
235
+ function validateDirectConnectionAndReplicaSetWarnings(connectionString) {
236
+ const warnings = [];
237
+ if (connectionString.searchParams.get('replicaSet') &&
238
+ connectionString.searchParams.get('directConnection') === 'true') {
239
+ warnings.push({
240
+ message: 'directConnection is not supported with replicaSet.',
241
+ });
242
+ }
243
+ return warnings;
244
+ }
245
+ function validateDirectConnectionAndMultiHostWarnings(connectionString) {
246
+ const warnings = [];
247
+ if (connectionString.hosts.length > 1 &&
248
+ connectionString.searchParams.get('directConnection') === 'true') {
249
+ warnings.push({
250
+ message: 'directConnection is not supported with multiple hosts.',
251
+ });
252
+ }
253
+ return warnings;
254
+ }
255
+ function validateTLSAndHostWarnings(connectionString) {
256
+ const warnings = [];
257
+ const nonLocalhostsCount = connectionString.hosts.filter((host) => !(0, mongodb_build_info_1.isLocalhost)(host)).length;
258
+ if (nonLocalhostsCount && !isSecure(connectionString)) {
259
+ warnings.push({
260
+ message: 'Connecting without tls is not recommended as it may create a security vulnerability.',
261
+ });
262
+ }
263
+ return warnings;
264
+ }
265
+ function validateSocksWarnings(connectionString) {
266
+ const warnings = [];
267
+ const searchParams = connectionString.typedSearchParams();
268
+ const proxyHost = searchParams.get('proxyHost');
269
+ if (!proxyHost || (0, mongodb_build_info_1.isLocalhost)(proxyHost)) {
270
+ return warnings;
271
+ }
272
+ if (searchParams.get('proxyPassword')) {
273
+ warnings.push({
274
+ message: 'Socks5 proxy password will be transmitted in plaintext.',
275
+ });
276
+ }
277
+ if (connectionString.hosts.find(mongodb_build_info_1.isLocalhost)) {
278
+ warnings.push({
279
+ message: 'Using remote proxy with local MongoDB service host.',
280
+ });
281
+ }
282
+ return warnings;
283
+ }
284
+ //# sourceMappingURL=validation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validation.js","sourceRoot":"","sources":["../../src/utils/validation.ts"],"names":[],"mappings":"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"}
package/package.json ADDED
@@ -0,0 +1,89 @@
1
+ {
2
+ "name": "@mongodb-js/connection-form",
3
+ "description": "A form for specifying information needed to connect to a MongoDB instance",
4
+ "author": {
5
+ "name": "MongoDB Inc",
6
+ "email": "compass@mongodb.com"
7
+ },
8
+ "publishConfig": {
9
+ "access": "public"
10
+ },
11
+ "bugs": {
12
+ "url": "https://jira.mongodb.org/projects/COMPASS/issues",
13
+ "email": "compass@mongodb.com"
14
+ },
15
+ "homepage": "https://github.com/mongodb-js/compass",
16
+ "version": "0.1.1",
17
+ "repository": {
18
+ "type": "git",
19
+ "url": "https://github.com/mongodb-js/compass.git"
20
+ },
21
+ "files": [
22
+ "dist"
23
+ ],
24
+ "license": "SSPL",
25
+ "main": "dist/index.js",
26
+ "exports": {
27
+ "webpack": "./src/index.ts",
28
+ "require": "./dist/index.js",
29
+ "import": "./dist/.esm-wrapper.mjs"
30
+ },
31
+ "types": "./dist/index.d.ts",
32
+ "scripts": {
33
+ "bootstrap": "npm run compile",
34
+ "prepublishOnly": "npm run compile",
35
+ "compile": "tsc -p tsconfig.json && gen-esm-wrapper . ./dist/.esm-wrapper.mjs",
36
+ "eslint": "eslint",
37
+ "prettier": "prettier",
38
+ "lint": "npm run eslint . && npm run prettier -- --check .",
39
+ "depcheck": "depcheck",
40
+ "check": "npm run lint && npm run depcheck",
41
+ "check-ci": "npm run check",
42
+ "test": "mocha",
43
+ "test-electron": "xvfb-maybe electron-mocha --no-sandbox",
44
+ "test-cov": "nyc -x \"**/*.spec.*\" --reporter=lcov --reporter=text --reporter=html npm run test",
45
+ "test-watch": "npm run test -- --watch",
46
+ "test-ci": "npm run test-electron && npm run test-cov",
47
+ "reformat": "npm run prettier -- --write ."
48
+ },
49
+ "peerDependencies": {
50
+ "@mongodb-js/compass-components": "^0.10.1",
51
+ "react": "^16.14.0",
52
+ "react-dom": "^16.14.0"
53
+ },
54
+ "dependencies": {
55
+ "@testing-library/react-hooks": "^7.0.2",
56
+ "lodash": "^4.17.21",
57
+ "mongodb-build-info": "^1.4.0",
58
+ "mongodb-connection-string-url": "^2.4.2",
59
+ "react": "^16.14.0",
60
+ "react-dom": "^16.14.0"
61
+ },
62
+ "devDependencies": {
63
+ "@mongodb-js/compass-components": "^0.10.1",
64
+ "@mongodb-js/eslint-config-compass": "^0.6.1",
65
+ "@mongodb-js/mocha-config-compass": "^0.8.1",
66
+ "@mongodb-js/prettier-config-compass": "^0.4.0",
67
+ "@mongodb-js/tsconfig-compass": "^0.5.0",
68
+ "@testing-library/react": "^12.0.0",
69
+ "@testing-library/user-event": "^13.5.0",
70
+ "@types/chai": "^4.2.21",
71
+ "@types/chai-dom": "^0.0.10",
72
+ "@types/mocha": "^9.0.0",
73
+ "@types/react": "^17.0.5",
74
+ "@types/react-dom": "^17.0.10",
75
+ "@types/sinon-chai": "^3.2.5",
76
+ "chai": "^4.3.4",
77
+ "depcheck": "^1.4.1",
78
+ "eslint": "^7.25.0",
79
+ "gen-esm-wrapper": "^1.1.0",
80
+ "mocha": "^8.4.0",
81
+ "mongodb": "^4.4.0",
82
+ "mongodb-data-service": "^21.16.1",
83
+ "nyc": "^15.1.0",
84
+ "prettier": "2.3.2",
85
+ "sinon": "^9.2.3",
86
+ "xvfb-maybe": "^0.2.1"
87
+ },
88
+ "gitHead": "82309afe6b0af6509e295de55a5d3170b7ed205c"
89
+ }