@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,85 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
5
+ }) : (function(o, m, k, k2) {
6
+ if (k2 === undefined) k2 = k;
7
+ o[k2] = m[k];
8
+ }));
9
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
10
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
11
+ }) : function(o, v) {
12
+ o["default"] = v;
13
+ });
14
+ var __importStar = (this && this.__importStar) || function (mod) {
15
+ if (mod && mod.__esModule) return mod;
16
+ var result = {};
17
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
18
+ __setModuleDefault(result, mod);
19
+ return result;
20
+ };
21
+ var __importDefault = (this && this.__importDefault) || function (mod) {
22
+ return (mod && mod.__esModule) ? mod : { "default": mod };
23
+ };
24
+ Object.defineProperty(exports, "__esModule", { value: true });
25
+ const react_1 = __importStar(require("react"));
26
+ const compass_components_1 = require("@mongodb-js/compass-components");
27
+ const mongodb_connection_string_url_1 = __importDefault(require("mongodb-connection-string-url"));
28
+ const general_tab_1 = __importDefault(require("./general-tab/general-tab"));
29
+ const authentication_tab_1 = __importDefault(require("./authentication-tab/authentication-tab"));
30
+ const proxy_and_ssh_tunnel_tab_1 = __importDefault(require("./ssh-tunnel-tab/proxy-and-ssh-tunnel-tab"));
31
+ const tls_ssl_tab_1 = __importDefault(require("./tls-ssl-tab/tls-ssl-tab"));
32
+ const advanced_tab_1 = __importDefault(require("./advanced-tab/advanced-tab"));
33
+ const validation_1 = require("../../utils/validation");
34
+ const default_connection_1 = require("../../constants/default-connection");
35
+ const tabsStyles = (0, compass_components_1.css)({
36
+ marginTop: compass_components_1.spacing[1],
37
+ });
38
+ const tabWithErrorIndicatorStyles = (0, compass_components_1.css)({
39
+ position: 'relative',
40
+ '&::after': {
41
+ position: 'absolute',
42
+ top: -compass_components_1.spacing[2],
43
+ right: -compass_components_1.spacing[2],
44
+ content: '""',
45
+ width: compass_components_1.spacing[2],
46
+ height: compass_components_1.spacing[2],
47
+ borderRadius: '50%',
48
+ backgroundColor: compass_components_1.uiColors.red.base,
49
+ },
50
+ });
51
+ function AdvancedOptionsTabs({ errors, updateConnectionFormField, connectionOptions, }) {
52
+ const [activeTab, setActiveTab] = (0, react_1.useState)(0);
53
+ const tabs = [
54
+ { name: 'General', id: 'general', component: general_tab_1.default },
55
+ {
56
+ name: 'Authentication',
57
+ id: 'authentication',
58
+ component: authentication_tab_1.default,
59
+ },
60
+ { name: 'TLS/SSL', id: 'tls', component: tls_ssl_tab_1.default },
61
+ { name: 'Proxy/SSH Tunnel', id: 'proxy', component: proxy_and_ssh_tunnel_tab_1.default },
62
+ { name: 'Advanced', id: 'advanced', component: advanced_tab_1.default },
63
+ ];
64
+ const connectionStringUrl = (0, react_1.useMemo)(() => {
65
+ try {
66
+ return new mongodb_connection_string_url_1.default(connectionOptions.connectionString);
67
+ }
68
+ catch (e) {
69
+ return new mongodb_connection_string_url_1.default(default_connection_1.defaultConnectionString);
70
+ }
71
+ }, [connectionOptions]);
72
+ return (react_1.default.createElement(compass_components_1.Tabs, { className: tabsStyles, setSelected: setActiveTab, selected: activeTab, "aria-label": "Advanced Options Tabs" }, tabs.map((tabObject, idx) => {
73
+ const TabComponent = tabObject.component;
74
+ const tabErrors = (0, validation_1.errorsByFieldTab)(errors, tabObject.id);
75
+ const showTabErrorIndicator = tabErrors.length > 0;
76
+ return (react_1.default.createElement(compass_components_1.Tab, { key: idx, name: react_1.default.createElement("div", { className: (0, compass_components_1.cx)({
77
+ [tabWithErrorIndicatorStyles]: showTabErrorIndicator,
78
+ }) }, tabObject.name), "aria-label": `${tabObject.name}${tabErrors.length > 0
79
+ ? ` (${tabErrors.length} error${tabErrors.length > 1 ? 's' : ''})`
80
+ : ''}`, "data-testid": `connection-${tabObject.id}-tab`, "data-has-error": showTabErrorIndicator },
81
+ react_1.default.createElement(TabComponent, { errors: errors, connectionStringUrl: connectionStringUrl, updateConnectionFormField: updateConnectionFormField, connectionOptions: connectionOptions })));
82
+ })));
83
+ }
84
+ exports.default = AdvancedOptionsTabs;
85
+ //# sourceMappingURL=advanced-options-tabs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"advanced-options-tabs.js","sourceRoot":"","sources":["../../../src/components/advanced-options-tabs/advanced-options-tabs.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ import React from 'react';
2
+ import type { ConnectionOptions } from 'mongodb-data-service';
3
+ import type ConnectionStringUrl from 'mongodb-connection-string-url';
4
+ import type { UpdateConnectionFormField } from '../../../hooks/use-connect-form';
5
+ import type { ConnectionFormError } from '../../../utils/validation';
6
+ declare function AdvancedTab({ updateConnectionFormField, connectionStringUrl, }: {
7
+ errors: ConnectionFormError[];
8
+ connectionStringUrl: ConnectionStringUrl;
9
+ updateConnectionFormField: UpdateConnectionFormField;
10
+ connectionOptions?: ConnectionOptions;
11
+ }): React.ReactElement;
12
+ export default AdvancedTab;
13
+ //# sourceMappingURL=advanced-tab.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"advanced-tab.d.ts","sourceRoot":"","sources":["../../../../src/components/advanced-options-tabs/advanced-tab/advanced-tab.tsx"],"names":[],"mappings":"AACA,OAAO,KAAsB,MAAM,OAAO,CAAC;AAC3C,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAS9D,OAAO,KAAK,mBAAmB,MAAM,+BAA+B,CAAC;AAIrE,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,iCAAiC,CAAC;AAIjF,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAUrE,iBAAS,WAAW,CAAC,EACnB,yBAAyB,EACzB,mBAAmB,GACpB,EAAE;IACD,MAAM,EAAE,mBAAmB,EAAE,CAAC;IAC9B,mBAAmB,EAAE,mBAAmB,CAAC;IACzC,yBAAyB,EAAE,yBAAyB,CAAC;IACrD,iBAAiB,CAAC,EAAE,iBAAiB,CAAC;CACvC,GAAG,KAAK,CAAC,YAAY,CAuGrB;AAED,eAAe,WAAW,CAAC"}
@@ -0,0 +1,80 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
5
+ }) : (function(o, m, k, k2) {
6
+ if (k2 === undefined) k2 = k;
7
+ o[k2] = m[k];
8
+ }));
9
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
10
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
11
+ }) : function(o, v) {
12
+ o["default"] = v;
13
+ });
14
+ var __importStar = (this && this.__importStar) || function (mod) {
15
+ if (mod && mod.__esModule) return mod;
16
+ var result = {};
17
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
18
+ __setModuleDefault(result, mod);
19
+ return result;
20
+ };
21
+ var __importDefault = (this && this.__importDefault) || function (mod) {
22
+ return (mod && mod.__esModule) ? mod : { "default": mod };
23
+ };
24
+ Object.defineProperty(exports, "__esModule", { value: true });
25
+ const react_1 = __importStar(require("react"));
26
+ const compass_components_1 = require("@mongodb-js/compass-components");
27
+ const form_field_container_1 = __importDefault(require("../../form-field-container"));
28
+ const read_preferences_1 = require("../../../utils/read-preferences");
29
+ const url_options_1 = __importDefault(require("./url-options"));
30
+ const containerStyles = (0, compass_components_1.css)({
31
+ marginTop: compass_components_1.spacing[3],
32
+ });
33
+ const fieldStyles = (0, compass_components_1.css)({
34
+ width: '50%',
35
+ });
36
+ function AdvancedTab({ updateConnectionFormField, connectionStringUrl, }) {
37
+ const { searchParams, pathname } = connectionStringUrl;
38
+ const readPreference = searchParams.get('readPreference');
39
+ const replicaSet = searchParams.get('replicaSet');
40
+ const defaultDatabase = pathname.startsWith('/')
41
+ ? pathname.substr(1)
42
+ : pathname;
43
+ const handleFieldChanged = (0, react_1.useCallback)((key, value) => {
44
+ if (!value) {
45
+ return updateConnectionFormField({
46
+ type: 'delete-search-param',
47
+ key,
48
+ });
49
+ }
50
+ return updateConnectionFormField({
51
+ type: 'update-search-param',
52
+ currentKey: key,
53
+ value,
54
+ });
55
+ }, [updateConnectionFormField]);
56
+ const handlePathChanged = (0, react_1.useCallback)((value) => {
57
+ return updateConnectionFormField({
58
+ type: 'update-connection-path',
59
+ value,
60
+ });
61
+ }, [updateConnectionFormField]);
62
+ return (react_1.default.createElement("div", { className: containerStyles },
63
+ react_1.default.createElement(compass_components_1.Label, { htmlFor: "read-preferences" }, "Read Preference"),
64
+ react_1.default.createElement(compass_components_1.RadioBoxGroup, { onChange: ({ target: { value } }) => {
65
+ handleFieldChanged('readPreference', value);
66
+ }, value: readPreference !== null && readPreference !== void 0 ? readPreference : '', "data-testid": "read-preferences", id: "read-preferences" }, read_preferences_1.readPreferences.map(({ title, id }) => {
67
+ return (react_1.default.createElement(compass_components_1.RadioBox, { id: `${id}-preference-button`, "data-testid": `${id}-preference-button`, checked: readPreference === id, value: id, key: id }, title));
68
+ })),
69
+ react_1.default.createElement(form_field_container_1.default, null,
70
+ react_1.default.createElement(compass_components_1.TextInput, { spellCheck: false, className: fieldStyles, onChange: ({ target: { value } }) => {
71
+ handleFieldChanged('replicaSet', value);
72
+ }, name: 'replica-set', "data-testid": 'replica-set', label: 'Replica Set Name', type: 'text', optional: true, value: replicaSet !== null && replicaSet !== void 0 ? replicaSet : '' })),
73
+ react_1.default.createElement(form_field_container_1.default, null,
74
+ react_1.default.createElement(compass_components_1.TextInput, { spellCheck: false, className: fieldStyles, onChange: ({ target: { value } }) => {
75
+ handlePathChanged(value);
76
+ }, name: 'default-database', "data-testid": 'default-database', label: 'Default Authentication Database', type: 'text', optional: true, value: defaultDatabase !== null && defaultDatabase !== void 0 ? defaultDatabase : '', description: 'Authentication database used when authSource is not specified.' })),
77
+ react_1.default.createElement(url_options_1.default, { connectionStringUrl: connectionStringUrl, updateConnectionFormField: updateConnectionFormField })));
78
+ }
79
+ exports.default = AdvancedTab;
80
+ //# sourceMappingURL=advanced-tab.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"advanced-tab.js","sourceRoot":"","sources":["../../../../src/components/advanced-options-tabs/advanced-tab/advanced-tab.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ import React from 'react';
2
+ import type ConnectionStringUrl from 'mongodb-connection-string-url';
3
+ import type { UpdateConnectionFormField } from '../../../hooks/use-connect-form';
4
+ declare function UrlOptionsTable({ updateConnectionFormField, connectionStringUrl, }: {
5
+ updateConnectionFormField: UpdateConnectionFormField;
6
+ connectionStringUrl: ConnectionStringUrl;
7
+ }): React.ReactElement;
8
+ export default UrlOptionsTable;
9
+ //# sourceMappingURL=url-options-table.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"url-options-table.d.ts","sourceRoot":"","sources":["../../../../src/components/advanced-options-tabs/advanced-tab/url-options-table.tsx"],"names":[],"mappings":"AACA,OAAO,KAAoB,MAAM,OAAO,CAAC;AAezC,OAAO,KAAK,mBAAmB,MAAM,+BAA+B,CAAC;AAKrE,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,iCAAiC,CAAC;AAyDjF,iBAAS,eAAe,CAAC,EACvB,yBAAyB,EACzB,mBAAmB,GACpB,EAAE;IACD,yBAAyB,EAAE,yBAAyB,CAAC;IACrD,mBAAmB,EAAE,mBAAmB,CAAC;CAC1C,GAAG,KAAK,CAAC,YAAY,CAwJrB;AAED,eAAe,eAAe,CAAC"}
@@ -0,0 +1,130 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
5
+ }) : (function(o, m, k, k2) {
6
+ if (k2 === undefined) k2 = k;
7
+ o[k2] = m[k];
8
+ }));
9
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
10
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
11
+ }) : function(o, v) {
12
+ o["default"] = v;
13
+ });
14
+ var __importStar = (this && this.__importStar) || function (mod) {
15
+ if (mod && mod.__esModule) return mod;
16
+ var result = {};
17
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
18
+ __setModuleDefault(result, mod);
19
+ return result;
20
+ };
21
+ Object.defineProperty(exports, "__esModule", { value: true });
22
+ const react_1 = __importStar(require("react"));
23
+ const compass_components_1 = require("@mongodb-js/compass-components");
24
+ const url_options_1 = require("../../../utils/url-options");
25
+ const optionSelectStyles = (0, compass_components_1.css)({
26
+ width: compass_components_1.spacing[5] * 9,
27
+ });
28
+ const optionNameCellStyles = (0, compass_components_1.css)({
29
+ width: compass_components_1.spacing[5] * 9,
30
+ });
31
+ const optionValueCellStyles = (0, compass_components_1.css)({});
32
+ const optionValueCellContentStyles = (0, compass_components_1.css)({
33
+ display: 'flex',
34
+ flexDirection: 'row',
35
+ justifyContent: 'flex-start',
36
+ alignItems: 'center',
37
+ });
38
+ const valueInputStyles = (0, compass_components_1.css)({
39
+ maxWidth: compass_components_1.spacing[7],
40
+ });
41
+ const deleteOptionButtonStyle = (0, compass_components_1.css)({
42
+ marginLeft: compass_components_1.spacing[2],
43
+ });
44
+ function appendEmptyOption(urlOptions) {
45
+ if (!urlOptions.length || urlOptions[urlOptions.length - 1].name) {
46
+ return [...urlOptions, { name: undefined, value: undefined }];
47
+ }
48
+ return urlOptions;
49
+ }
50
+ function getUrlOptions(connectionStringUrl) {
51
+ let opts = [];
52
+ const urlOptions = [];
53
+ const searchParams = connectionStringUrl.typedSearchParams();
54
+ url_options_1.editableUrlOptions.forEach(({ values }) => (opts = opts.concat(values)));
55
+ searchParams.forEach((value, name) => {
56
+ if (opts.includes(name)) {
57
+ urlOptions.push({
58
+ value: value,
59
+ name: name,
60
+ });
61
+ }
62
+ });
63
+ return urlOptions;
64
+ }
65
+ function UrlOptionsTable({ updateConnectionFormField, connectionStringUrl, }) {
66
+ const [options, setOptions] = react_1.default.useState([]);
67
+ (0, react_1.useEffect)(() => {
68
+ const options = appendEmptyOption(getUrlOptions(connectionStringUrl));
69
+ setOptions(options);
70
+ }, [connectionStringUrl]);
71
+ const updateUrlOption = (currentName, name, value) => {
72
+ const indexOfUpdatedOption = options.findIndex((option) => option.name === currentName);
73
+ const option = {
74
+ name,
75
+ value,
76
+ };
77
+ const newOptions = [...options];
78
+ newOptions[indexOfUpdatedOption] = option;
79
+ setOptions(appendEmptyOption(newOptions));
80
+ if (name) {
81
+ updateConnectionFormField({
82
+ type: 'update-search-param',
83
+ currentKey: currentName !== null && currentName !== void 0 ? currentName : name,
84
+ newKey: currentName === name ? undefined : name,
85
+ value: value !== null && value !== void 0 ? value : '',
86
+ });
87
+ }
88
+ };
89
+ const deleteUrlOption = (name) => {
90
+ if (!name) {
91
+ return;
92
+ }
93
+ const indexOfDeletedOption = options.findIndex((option) => option.name === name);
94
+ const newOptions = [...options];
95
+ newOptions.splice(indexOfDeletedOption, 1);
96
+ setOptions(appendEmptyOption(newOptions));
97
+ updateConnectionFormField({
98
+ type: 'delete-search-param',
99
+ key: name,
100
+ });
101
+ };
102
+ return (react_1.default.createElement(react_1.default.Fragment, null,
103
+ react_1.default.createElement(compass_components_1.Table, { "data-testid": "url-options-table", data: options, columns: [
104
+ react_1.default.createElement(compass_components_1.TableHeader, { key: 'name', label: "Key" }),
105
+ react_1.default.createElement(compass_components_1.TableHeader, { key: 'value', label: "Value" }),
106
+ ] }, ({ datum }) => {
107
+ var _a, _b;
108
+ return (react_1.default.createElement(compass_components_1.Row, { key: datum.name, "data-testid": datum.name ? `${datum.name}-table-row` : 'new-option-table-row' },
109
+ react_1.default.createElement(compass_components_1.Cell, { className: optionNameCellStyles },
110
+ react_1.default.createElement(compass_components_1.Select, { className: optionSelectStyles, placeholder: "Select key", name: "name", "aria-labelledby": datum.name ? `${datum.name} select` : 'new option select', onChange: (name, event) => {
111
+ event.preventDefault();
112
+ updateUrlOption(datum.name, name, datum.value);
113
+ }, allowDeselect: false, value: (_a = datum.name) !== null && _a !== void 0 ? _a : '' }, url_options_1.editableUrlOptions.map(({ title, values }) => (react_1.default.createElement(compass_components_1.OptionGroup, { key: title, label: title }, values.map((value) => (react_1.default.createElement(compass_components_1.Option, { key: value, value: value, disabled: connectionStringUrl.searchParams.has(value) &&
114
+ datum.name !== value }, value)))))))),
115
+ react_1.default.createElement(compass_components_1.Cell, { className: optionValueCellStyles },
116
+ react_1.default.createElement("div", { className: optionValueCellContentStyles },
117
+ react_1.default.createElement(compass_components_1.TextInput, { onChange: (event) => {
118
+ event.preventDefault();
119
+ updateUrlOption(datum.name, datum.name, event.target.value);
120
+ }, "data-testid": datum.name
121
+ ? `${datum.name}-input-field`
122
+ : 'new-option-input-field', spellCheck: false, type: 'text', placeholder: 'Value', "aria-labelledby": "Enter value", value: datum.value, className: valueInputStyles }),
123
+ datum.name ? (react_1.default.createElement(compass_components_1.IconButton, { "data-testid": datum.name
124
+ ? `${datum.name}-delete-button`
125
+ : 'new-option-delete-button', "aria-label": `Delete option: ${(_b = datum.name) !== null && _b !== void 0 ? _b : ''}`, onClick: () => deleteUrlOption(datum.name), className: deleteOptionButtonStyle },
126
+ react_1.default.createElement(compass_components_1.Icon, { glyph: "X" }))) : ('')))));
127
+ })));
128
+ }
129
+ exports.default = UrlOptionsTable;
130
+ //# sourceMappingURL=url-options-table.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"url-options-table.js","sourceRoot":"","sources":["../../../../src/components/advanced-options-tabs/advanced-tab/url-options-table.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ import React from 'react';
2
+ import type ConnectionStringUrl from 'mongodb-connection-string-url';
3
+ import type { UpdateConnectionFormField } from '../../../hooks/use-connect-form';
4
+ declare function UrlOptions({ updateConnectionFormField, connectionStringUrl, }: {
5
+ updateConnectionFormField: UpdateConnectionFormField;
6
+ connectionStringUrl: ConnectionStringUrl;
7
+ }): React.ReactElement;
8
+ export default UrlOptions;
9
+ //# sourceMappingURL=url-options.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"url-options.d.ts","sourceRoot":"","sources":["../../../../src/components/advanced-options-tabs/advanced-tab/url-options.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAQ1B,OAAO,KAAK,mBAAmB,MAAM,+BAA+B,CAAC;AAErE,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,iCAAiC,CAAC;AAajF,iBAAS,UAAU,CAAC,EAClB,yBAAyB,EACzB,mBAAmB,GACpB,EAAE;IACD,yBAAyB,EAAE,yBAAyB,CAAC;IACrD,mBAAmB,EAAE,mBAAmB,CAAC;CAC1C,GAAG,KAAK,CAAC,YAAY,CAoBrB;AAED,eAAe,UAAU,CAAC"}
@@ -0,0 +1,25 @@
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
+ const react_1 = __importDefault(require("react"));
7
+ const compass_components_1 = require("@mongodb-js/compass-components");
8
+ const url_options_table_1 = __importDefault(require("./url-options-table"));
9
+ const urlOptionsContainerStyles = (0, compass_components_1.css)({
10
+ marginTop: compass_components_1.spacing[3],
11
+ width: '70%',
12
+ });
13
+ const urlOptionsTableDescriptionStyles = (0, compass_components_1.css)({
14
+ marginTop: compass_components_1.spacing[1],
15
+ });
16
+ function UrlOptions({ updateConnectionFormField, connectionStringUrl, }) {
17
+ return (react_1.default.createElement("div", { className: urlOptionsContainerStyles, "data-testid": "url-options" },
18
+ react_1.default.createElement(compass_components_1.Label, { htmlFor: '' }, "Url Options"),
19
+ react_1.default.createElement(compass_components_1.Description, { className: urlOptionsTableDescriptionStyles },
20
+ "Add additional MongoDB url options to customize your connection.\u00A0",
21
+ react_1.default.createElement(compass_components_1.Link, { href: 'https://docs.mongodb.com/manual/reference/connection-string/#connection-string-options' }, "Learn More")),
22
+ react_1.default.createElement(url_options_table_1.default, { connectionStringUrl: connectionStringUrl, updateConnectionFormField: updateConnectionFormField })));
23
+ }
24
+ exports.default = UrlOptions;
25
+ //# sourceMappingURL=url-options.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"url-options.js","sourceRoot":"","sources":["../../../../src/components/advanced-options-tabs/advanced-tab/url-options.tsx"],"names":[],"mappings":";;;;;AAAA,kDAA0B;AAC1B,uEAMwC;AAKxC,4EAAkD;AAElD,MAAM,yBAAyB,GAAG,IAAA,wBAAG,EAAC;IACpC,SAAS,EAAE,4BAAO,CAAC,CAAC,CAAC;IACrB,KAAK,EAAE,KAAK;CACb,CAAC,CAAC;AAEH,MAAM,gCAAgC,GAAG,IAAA,wBAAG,EAAC;IAC3C,SAAS,EAAE,4BAAO,CAAC,CAAC,CAAC;CACtB,CAAC,CAAC;AAEH,SAAS,UAAU,CAAC,EAClB,yBAAyB,EACzB,mBAAmB,GAIpB;IACC,OAAO,CACL,uCAAK,SAAS,EAAE,yBAAyB,iBAAc,aAAa;QAClE,8BAAC,0BAAK,IAAC,OAAO,EAAE,EAAE,kBAAqB;QACvC,8BAAC,gCAAW,IAAC,SAAS,EAAE,gCAAgC;;YAEtD,8BAAC,yBAAI,IACH,IAAI,EACF,wFAAwF,iBAIrF,CACK;QACd,8BAAC,2BAAe,IACd,mBAAmB,EAAE,mBAAmB,EACxC,yBAAyB,EAAE,yBAAyB,GACpD,CACE,CACP,CAAC;AACJ,CAAC;AAED,kBAAe,UAAU,CAAC"}
@@ -0,0 +1,14 @@
1
+ import React from 'react';
2
+ import type ConnectionStringUrl from 'mongodb-connection-string-url';
3
+ import type { UpdateConnectionFormField } from '../../../hooks/use-connect-form';
4
+ import type { ConnectionFormError } from '../../../utils/validation';
5
+ export declare const AWS_ACCESS_KEY_ID_LABEL = "AWS Access Key Id";
6
+ export declare const AWS_SECRET_ACCESS_KEY_LABEL = "AWS Secret Access Key";
7
+ export declare const AWS_SESSION_TOKEN_LABEL = "AWS Session Token";
8
+ declare function AuthenticationAWS({ connectionStringUrl, updateConnectionFormField, }: {
9
+ connectionStringUrl: ConnectionStringUrl;
10
+ errors: ConnectionFormError[];
11
+ updateConnectionFormField: UpdateConnectionFormField;
12
+ }): React.ReactElement;
13
+ export default AuthenticationAWS;
14
+ //# sourceMappingURL=authentication-aws.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"authentication-aws.d.ts","sourceRoot":"","sources":["../../../../src/components/advanced-options-tabs/authentication-tab/authentication-aws.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,OAAO,KAAK,mBAAmB,MAAM,+BAA+B,CAAC;AACrE,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,iCAAiC,CAAC;AAEjF,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAOrE,eAAO,MAAM,uBAAuB,sBAAsB,CAAC;AAC3D,eAAO,MAAM,2BAA2B,0BAA0B,CAAC;AACnE,eAAO,MAAM,uBAAuB,sBAAsB,CAAC;AAE3D,iBAAS,iBAAiB,CAAC,EACzB,mBAAmB,EACnB,yBAAyB,GAC1B,EAAE;IACD,mBAAmB,EAAE,mBAAmB,CAAC;IACzC,MAAM,EAAE,mBAAmB,EAAE,CAAC;IAC9B,yBAAyB,EAAE,yBAAyB,CAAC;CACtD,GAAG,KAAK,CAAC,YAAY,CA4DrB;AAED,eAAe,iBAAiB,CAAC"}
@@ -0,0 +1,44 @@
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.AWS_SESSION_TOKEN_LABEL = exports.AWS_SECRET_ACCESS_KEY_LABEL = exports.AWS_ACCESS_KEY_ID_LABEL = void 0;
7
+ const react_1 = __importDefault(require("react"));
8
+ const compass_components_1 = require("@mongodb-js/compass-components");
9
+ const form_field_container_1 = __importDefault(require("../../form-field-container"));
10
+ const connection_string_helpers_1 = require("../../../utils/connection-string-helpers");
11
+ exports.AWS_ACCESS_KEY_ID_LABEL = 'AWS Access Key Id';
12
+ exports.AWS_SECRET_ACCESS_KEY_LABEL = 'AWS Secret Access Key';
13
+ exports.AWS_SESSION_TOKEN_LABEL = 'AWS Session Token';
14
+ function AuthenticationAWS({ connectionStringUrl, updateConnectionFormField, }) {
15
+ const awsAccessKeyId = (0, connection_string_helpers_1.getConnectionStringUsername)(connectionStringUrl);
16
+ const awsSecretAccessKey = (0, connection_string_helpers_1.getConnectionStringPassword)(connectionStringUrl);
17
+ const authMechanismProperties = (0, connection_string_helpers_1.parseAuthMechanismProperties)(connectionStringUrl);
18
+ const sessionToken = authMechanismProperties.get('AWS_SESSION_TOKEN');
19
+ return (react_1.default.createElement(react_1.default.Fragment, null,
20
+ react_1.default.createElement(form_field_container_1.default, null,
21
+ react_1.default.createElement(compass_components_1.TextInput, { onChange: ({ target: { value }, }) => {
22
+ updateConnectionFormField({
23
+ type: 'update-username',
24
+ username: value,
25
+ });
26
+ }, label: exports.AWS_ACCESS_KEY_ID_LABEL, value: awsAccessKeyId || '', optional: true })),
27
+ react_1.default.createElement(form_field_container_1.default, null,
28
+ react_1.default.createElement(compass_components_1.TextInput, { onChange: ({ target: { value }, }) => {
29
+ updateConnectionFormField({
30
+ type: 'update-password',
31
+ password: value,
32
+ });
33
+ }, label: exports.AWS_SECRET_ACCESS_KEY_LABEL, type: "password", value: awsSecretAccessKey || '', optional: true })),
34
+ react_1.default.createElement(form_field_container_1.default, null,
35
+ react_1.default.createElement(compass_components_1.TextInput, { onChange: ({ target: { value }, }) => {
36
+ updateConnectionFormField({
37
+ type: 'update-auth-mechanism-property',
38
+ key: 'AWS_SESSION_TOKEN',
39
+ value: value,
40
+ });
41
+ }, label: exports.AWS_SESSION_TOKEN_LABEL, value: sessionToken || '', optional: true, type: "password" }))));
42
+ }
43
+ exports.default = AuthenticationAWS;
44
+ //# sourceMappingURL=authentication-aws.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"authentication-aws.js","sourceRoot":"","sources":["../../../../src/components/advanced-options-tabs/authentication-tab/authentication-aws.tsx"],"names":[],"mappings":";;;;;;AAAA,kDAA0B;AAC1B,uEAA2D;AAI3D,sFAA4D;AAE5D,wFAIkD;AAErC,QAAA,uBAAuB,GAAG,mBAAmB,CAAC;AAC9C,QAAA,2BAA2B,GAAG,uBAAuB,CAAC;AACtD,QAAA,uBAAuB,GAAG,mBAAmB,CAAC;AAE3D,SAAS,iBAAiB,CAAC,EACzB,mBAAmB,EACnB,yBAAyB,GAK1B;IACC,MAAM,cAAc,GAAG,IAAA,uDAA2B,EAAC,mBAAmB,CAAC,CAAC;IACxE,MAAM,kBAAkB,GAAG,IAAA,uDAA2B,EAAC,mBAAmB,CAAC,CAAC;IAC5E,MAAM,uBAAuB,GAC3B,IAAA,wDAA4B,EAAC,mBAAmB,CAAC,CAAC;IACpD,MAAM,YAAY,GAAG,uBAAuB,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;IAEtE,OAAO,CACL;QACE,8BAAC,8BAAkB;YACjB,8BAAC,8BAAS,IACR,QAAQ,EAAE,CAAC,EACT,MAAM,EAAE,EAAE,KAAK,EAAE,GACmB,EAAE,EAAE;oBACxC,yBAAyB,CAAC;wBACxB,IAAI,EAAE,iBAAiB;wBACvB,QAAQ,EAAE,KAAK;qBAChB,CAAC,CAAC;gBACL,CAAC,EACD,KAAK,EAAE,+BAAuB,EAC9B,KAAK,EAAE,cAAc,IAAI,EAAE,EAC3B,QAAQ,EAAE,IAAI,GACd,CACiB;QACrB,8BAAC,8BAAkB;YACjB,8BAAC,8BAAS,IACR,QAAQ,EAAE,CAAC,EACT,MAAM,EAAE,EAAE,KAAK,EAAE,GACmB,EAAE,EAAE;oBACxC,yBAAyB,CAAC;wBACxB,IAAI,EAAE,iBAAiB;wBACvB,QAAQ,EAAE,KAAK;qBAChB,CAAC,CAAC;gBACL,CAAC,EACD,KAAK,EAAE,mCAA2B,EAClC,IAAI,EAAC,UAAU,EACf,KAAK,EAAE,kBAAkB,IAAI,EAAE,EAC/B,QAAQ,EAAE,IAAI,GACd,CACiB;QAErB,8BAAC,8BAAkB;YACjB,8BAAC,8BAAS,IACR,QAAQ,EAAE,CAAC,EACT,MAAM,EAAE,EAAE,KAAK,EAAE,GACmB,EAAE,EAAE;oBACxC,yBAAyB,CAAC;wBACxB,IAAI,EAAE,gCAAgC;wBACtC,GAAG,EAAE,mBAAmB;wBACxB,KAAK,EAAE,KAAK;qBACb,CAAC,CAAC;gBACL,CAAC,EACD,KAAK,EAAE,+BAAuB,EAC9B,KAAK,EAAE,YAAY,IAAI,EAAE,EACzB,QAAQ,EAAE,IAAI,EACd,IAAI,EAAC,UAAU,GACf,CACiB,CACpB,CACJ,CAAC;AACJ,CAAC;AAED,kBAAe,iBAAiB,CAAC"}
@@ -0,0 +1,11 @@
1
+ import React from 'react';
2
+ import type ConnectionStringUrl from 'mongodb-connection-string-url';
3
+ import type { UpdateConnectionFormField } from '../../../hooks/use-connect-form';
4
+ import type { ConnectionFormError } from '../../../utils/validation';
5
+ declare function AuthenticationDefault({ errors, connectionStringUrl, updateConnectionFormField, }: {
6
+ connectionStringUrl: ConnectionStringUrl;
7
+ errors: ConnectionFormError[];
8
+ updateConnectionFormField: UpdateConnectionFormField;
9
+ }): React.ReactElement;
10
+ export default AuthenticationDefault;
11
+ //# sourceMappingURL=authentication-default.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"authentication-default.d.ts","sourceRoot":"","sources":["../../../../src/components/advanced-options-tabs/authentication-tab/authentication-default.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAsB,MAAM,OAAO,CAAC;AAU3C,OAAO,KAAK,mBAAmB,MAAM,+BAA+B,CAAC;AAGrE,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,iCAAiC,CAAC;AAEjF,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AA6BrE,iBAAS,qBAAqB,CAAC,EAC7B,MAAM,EACN,mBAAmB,EACnB,yBAAyB,GAC1B,EAAE;IACD,mBAAmB,EAAE,mBAAmB,CAAC;IACzC,MAAM,EAAE,mBAAmB,EAAE,CAAC;IAC9B,yBAAyB,EAAE,yBAAyB,CAAC;CACtD,GAAG,KAAK,CAAC,YAAY,CA0HrB;AAED,eAAe,qBAAqB,CAAC"}
@@ -0,0 +1,103 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
5
+ }) : (function(o, m, k, k2) {
6
+ if (k2 === undefined) k2 = k;
7
+ o[k2] = m[k];
8
+ }));
9
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
10
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
11
+ }) : function(o, v) {
12
+ o["default"] = v;
13
+ });
14
+ var __importStar = (this && this.__importStar) || function (mod) {
15
+ if (mod && mod.__esModule) return mod;
16
+ var result = {};
17
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
18
+ __setModuleDefault(result, mod);
19
+ return result;
20
+ };
21
+ var __importDefault = (this && this.__importDefault) || function (mod) {
22
+ return (mod && mod.__esModule) ? mod : { "default": mod };
23
+ };
24
+ Object.defineProperty(exports, "__esModule", { value: true });
25
+ const react_1 = __importStar(require("react"));
26
+ const compass_components_1 = require("@mongodb-js/compass-components");
27
+ const mongodb_1 = require("mongodb");
28
+ const form_field_container_1 = __importDefault(require("../../form-field-container"));
29
+ const validation_1 = require("../../../utils/validation");
30
+ const connection_string_helpers_1 = require("../../../utils/connection-string-helpers");
31
+ const textInputWithLabelStyles = (0, compass_components_1.css)({
32
+ marginTop: compass_components_1.spacing[1],
33
+ });
34
+ const defaultAuthMechanismOptions = [
35
+ {
36
+ title: 'Default',
37
+ value: mongodb_1.AuthMechanism.MONGODB_DEFAULT,
38
+ },
39
+ {
40
+ title: 'SCRAM-SHA-1',
41
+ value: mongodb_1.AuthMechanism.MONGODB_SCRAM_SHA1,
42
+ },
43
+ {
44
+ title: 'SCRAM-SHA-256',
45
+ value: mongodb_1.AuthMechanism.MONGODB_SCRAM_SHA256,
46
+ },
47
+ ];
48
+ function AuthenticationDefault({ errors, connectionStringUrl, updateConnectionFormField, }) {
49
+ var _a, _b, _c;
50
+ const password = (0, connection_string_helpers_1.getConnectionStringPassword)(connectionStringUrl);
51
+ const username = (0, connection_string_helpers_1.getConnectionStringUsername)(connectionStringUrl);
52
+ const selectedAuthMechanism = ((_a = connectionStringUrl.searchParams.get('authMechanism')) !== null && _a !== void 0 ? _a : '').toUpperCase();
53
+ const selectedAuthTab = (_b = defaultAuthMechanismOptions.find(({ value }) => value === selectedAuthMechanism)) !== null && _b !== void 0 ? _b : defaultAuthMechanismOptions[0];
54
+ const onAuthMechanismSelected = (0, react_1.useCallback)((event) => {
55
+ event.preventDefault();
56
+ updateConnectionFormField({
57
+ type: 'update-search-param',
58
+ currentKey: 'authMechanism',
59
+ value: event.target.value,
60
+ });
61
+ }, [updateConnectionFormField]);
62
+ const usernameError = (0, validation_1.errorMessageByFieldName)(errors, 'username');
63
+ const passwordError = (0, validation_1.errorMessageByFieldName)(errors, 'password');
64
+ return (react_1.default.createElement(react_1.default.Fragment, null,
65
+ react_1.default.createElement(form_field_container_1.default, null,
66
+ react_1.default.createElement(compass_components_1.TextInput, { onChange: ({ target: { value }, }) => {
67
+ updateConnectionFormField({
68
+ type: 'update-username',
69
+ username: value,
70
+ });
71
+ }, label: "Username", "data-testid": "connection-username-input", errorMessage: usernameError, state: usernameError ? 'error' : undefined, value: username || '' })),
72
+ react_1.default.createElement(form_field_container_1.default, null,
73
+ react_1.default.createElement(compass_components_1.TextInput, { onChange: ({ target: { value }, }) => {
74
+ updateConnectionFormField({
75
+ type: 'update-password',
76
+ password: value,
77
+ });
78
+ }, label: "Password", type: "password", "data-testid": "connection-password-input", value: password || '', errorMessage: passwordError, state: passwordError ? 'error' : undefined })),
79
+ react_1.default.createElement(form_field_container_1.default, null,
80
+ react_1.default.createElement(compass_components_1.Label, { htmlFor: "authSourceInput", id: "authSourceLabel" }, "Authentication Database"),
81
+ react_1.default.createElement(compass_components_1.InlineInfoLink, { "aria-label": "Authentication Database Documentation", href: "https://docs.mongodb.com/manual/reference/connection-string/#mongodb-urioption-urioption.authSource" }),
82
+ react_1.default.createElement(compass_components_1.TextInput, { className: textInputWithLabelStyles, onChange: ({ target: { value }, }) => {
83
+ if (value === '') {
84
+ updateConnectionFormField({
85
+ type: 'delete-search-param',
86
+ key: 'authSource',
87
+ });
88
+ return;
89
+ }
90
+ updateConnectionFormField({
91
+ type: 'update-search-param',
92
+ currentKey: 'authSource',
93
+ value,
94
+ });
95
+ }, id: "authSourceInput", "aria-labelledby": "authSourceLabel", value: (_c = connectionStringUrl.searchParams.get('authSource')) !== null && _c !== void 0 ? _c : '', optional: true })),
96
+ react_1.default.createElement(form_field_container_1.default, null,
97
+ react_1.default.createElement(compass_components_1.Label, { htmlFor: "authentication-mechanism-radio-box-group" }, "Authentication Mechanism"),
98
+ react_1.default.createElement(compass_components_1.RadioBoxGroup, { onChange: onAuthMechanismSelected, id: "authentication-mechanism-radio-box-group", value: selectedAuthTab.value }, defaultAuthMechanismOptions.map(({ title, value }) => {
99
+ return (react_1.default.createElement(compass_components_1.RadioBox, { id: `${value}-tab-button`, "data-testid": `${value}-tab-button`, checked: selectedAuthTab.value === value, value: value, key: value }, title));
100
+ })))));
101
+ }
102
+ exports.default = AuthenticationDefault;
103
+ //# sourceMappingURL=authentication-default.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"authentication-default.js","sourceRoot":"","sources":["../../../../src/components/advanced-options-tabs/authentication-tab/authentication-default.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ import React from 'react';
2
+ import type ConnectionStringUrl from 'mongodb-connection-string-url';
3
+ import type { UpdateConnectionFormField } from '../../../hooks/use-connect-form';
4
+ import type { ConnectionFormError } from '../../../utils/validation';
5
+ declare function AuthenticationGSSAPI({ errors, connectionStringUrl, updateConnectionFormField, }: {
6
+ connectionStringUrl: ConnectionStringUrl;
7
+ errors: ConnectionFormError[];
8
+ updateConnectionFormField: UpdateConnectionFormField;
9
+ }): React.ReactElement;
10
+ export default AuthenticationGSSAPI;
11
+ //# sourceMappingURL=authentication-gssapi.d.ts.map