@stripe/connect-js 3.3.31-preview-1 → 3.3.31

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.
@@ -5,17 +5,6 @@ const ConnectElementCommonMethodConfig = {
5
5
  setOnLoaderStart: _listener => {}
6
6
  };
7
7
  const ConnectElementCustomMethodConfig = {
8
- payments: {
9
- setDefaultFilters: _filters => {}
10
- },
11
- "payment-details": {
12
- setPayment: _payment => {},
13
- setOnClose: _listener => {}
14
- },
15
- "payment-disputes": {
16
- setPayment: _payment => {},
17
- setOnDisputesLoaded: _listener => {}
18
- },
19
8
  "account-onboarding": {
20
9
  setFullTermsOfServiceUrl: _termOfServiceUrl => {},
21
10
  setRecipientTermsOfServiceUrl: _recipientTermsOfServiceUrl => {},
@@ -32,6 +21,10 @@ const ConnectElementCustomMethodConfig = {
32
21
  setCollectionOptions: _collectionOptions => {},
33
22
  setOnNotificationsChange: _listener => {}
34
23
  },
24
+ "instant-payouts-promotion": {
25
+ setOnInstantPayoutsPromotionLoaded: _listener => {},
26
+ setOnInstantPayoutCreated: _listener => {}
27
+ },
35
28
  "issuing-card": {
36
29
  setDefaultCard: _defaultCard => {},
37
30
  setCardSwitching: _cardSwitching => {},
@@ -49,46 +42,16 @@ const ConnectElementCustomMethodConfig = {
49
42
  "financial-account-transactions": {
50
43
  setFinancialAccount: _financialAccount => {}
51
44
  },
52
- recipients: {
53
- setDataSource: _dataSource => {}
54
- },
55
- "app-install": {
56
- setApp: _app => {},
57
- setOnAppInstallStateFetched: _listener => {},
58
- setOnAppInstallStateChanged: _listener => {}
59
- },
60
- "app-viewport": {
61
- setApp: _app => {},
62
- setAppData: _appData => {}
63
- },
64
- "payment-method-settings": {
65
- setPaymentMethodConfiguration: _paymentMethodConfiguration => {}
66
- },
67
- "capital-financing": {
68
- setDefaultFinancingOffer: _defaultFinancingOffer => {},
69
- setShowFinancingSelector: _showFinancingSelector => {},
70
- setHowCapitalWorksUrl: _howCapitalWorksUrl => {},
71
- setSupportUrl: _supportUrl => {},
72
- setOnFinancingsLoaded: _listener => {}
73
- },
74
- "capital-financing-application": {
75
- setOnApplicationSubmitted: _listener => {},
76
- setPrivacyPolicyUrl: _privacyPolicyUrl => {},
77
- setHowCapitalWorksUrl: _howCapitalWorksUrl => {}
45
+ payments: {
46
+ setDefaultFilters: _filters => {}
78
47
  },
79
- "capital-financing-promotion": {
80
- setLayout: _layout => {},
81
- setOnApplicationSubmitted: _listener => {},
82
- setOnEligibleFinancingOfferLoaded: _listener => {},
83
- setPrivacyPolicyUrl: _privacyPolicyUrl => {},
84
- setHowCapitalWorksUrl: _howCapitalWorksUrl => {},
85
- setEligibilityCriteriaUrl: _eligibilityCriteriaUrl => {}
48
+ "payment-details": {
49
+ setPayment: _payment => {},
50
+ setOnClose: _listener => {}
86
51
  },
87
- "reporting-chart": {
88
- setReportName: _reportName => {},
89
- setIntervalStart: _intervalStart => {},
90
- setIntervalEnd: _intervalEnd => {},
91
- setIntervalType: _intervalType => {}
52
+ "payment-disputes": {
53
+ setPayment: _payment => {},
54
+ setOnDisputesLoaded: _listener => {}
92
55
  },
93
56
  "tax-settings": {
94
57
  setHideProductTaxCodeSelector: _hidden => {},
@@ -97,56 +60,41 @@ const ConnectElementCustomMethodConfig = {
97
60
  },
98
61
  "tax-registrations": {
99
62
  setOnAfterTaxRegistrationAdded: _listener => {},
100
- setDisplayCountries: _countries => {}
101
- },
102
- "tax-threshold-monitoring": {
103
- setDisplayCountries: _countries => {}
104
- },
105
- "product-tax-code-selector": {
106
- setOnTaxCodeSelect: _listener => {},
107
- setHideDescription: _hideDescription => {},
108
- setDisabled: _disabled => {},
109
- setInitialTaxCode: _initialTaxCode => {}
63
+ setDisplayCountries: _countries => {},
64
+ setOnAfterTaxRegistrationExpired: _listener => {}
110
65
  },
111
- "export-tax-transactions": {}
66
+ "payout-details": {
67
+ setPayout: _payout => {},
68
+ setOnClose: _listener => {}
69
+ }
112
70
  };
113
71
 
114
72
  const componentNameMapping = {
73
+ "account-onboarding": "stripe-connect-account-onboarding",
74
+ "disputes-list": "stripe-connect-disputes-list",
115
75
  payments: "stripe-connect-payments",
116
- payouts: "stripe-connect-payouts",
117
76
  "payment-details": "stripe-connect-payment-details",
118
77
  "payment-disputes": "stripe-connect-payment-disputes",
119
- "account-onboarding": "stripe-connect-account-onboarding",
120
- "payment-method-settings": "stripe-connect-payment-method-settings",
78
+ payouts: "stripe-connect-payouts",
79
+ "payouts-list": "stripe-connect-payouts-list",
80
+ "payout-details": "stripe-connect-payout-details",
81
+ balances: "stripe-connect-balances",
121
82
  "account-management": "stripe-connect-account-management",
122
83
  "notification-banner": "stripe-connect-notification-banner",
123
- "instant-payouts": "stripe-connect-instant-payouts",
84
+ "instant-payouts-promotion": "stripe-connect-instant-payouts-promotion",
124
85
  "issuing-card": "stripe-connect-issuing-card",
125
86
  "issuing-cards-list": "stripe-connect-issuing-cards-list",
126
87
  "financial-account": "stripe-connect-financial-account",
127
- recipients: "stripe-connect-recipients",
128
88
  "financial-account-transactions": "stripe-connect-financial-account-transactions",
129
- "capital-financing": "stripe-connect-capital-financing",
130
- "capital-financing-application": "stripe-connect-capital-financing-application",
131
- "capital-financing-promotion": "stripe-connect-capital-financing-promotion",
132
- "capital-overview": "stripe-connect-capital-overview",
133
89
  documents: "stripe-connect-documents",
134
- "product-tax-code-selector": "stripe-connect-product-tax-code-selector",
135
- "export-tax-transactions": "stripe-connect-export-tax-transactions",
136
90
  "tax-registrations": "stripe-connect-tax-registrations",
137
- "tax-settings": "stripe-connect-tax-settings",
138
- "tax-threshold-monitoring": "stripe-connect-tax-threshold-monitoring",
139
- balances: "stripe-connect-balances",
140
- "payouts-list": "stripe-connect-payouts-list",
141
- "app-install": "stripe-connect-app-install",
142
- "app-viewport": "stripe-connect-app-viewport",
143
- "reporting-chart": "stripe-connect-reporting-chart"
91
+ "tax-settings": "stripe-connect-tax-settings"
144
92
  };
145
93
  const EXISTING_SCRIPT_MESSAGE = "loadConnect was called but an existing Connect.js script already exists in the document; existing script parameters will be used";
146
94
  const V0_URL = "https://connect-js.stripe.com/v0.1/connect.js";
147
95
  const V1_URL = "https://connect-js.stripe.com/v1.0/connect.js";
148
96
  const findScript = () => {
149
- return document.querySelectorAll(`script[src="${V0_URL}"]`)[0] || document.querySelectorAll(`script[src="${V1_URL}"]`)[0] || null;
97
+ return document.querySelectorAll(`script[src="${V1_URL}"]`)[0] || document.querySelectorAll(`script[src="${V0_URL}"]`)[0] || null;
150
98
  };
151
99
  const injectScript = () => {
152
100
  const script = document.createElement("script");
@@ -158,21 +106,26 @@ const injectScript = () => {
158
106
  document.head.appendChild(script);
159
107
  return script;
160
108
  };
161
- let stripePromise = null;
109
+ let stripePromise$1 = null;
110
+ const isWindowStripeConnectDefined = stripeConnect => {
111
+ // We only consider `StripeConnect` defined if `init` is a function
112
+ // Why? HTML markup like:
113
+ // <a id="StripeConnect"><a id="StripeConnect" name="init" href="stripe"></a></a> in the <head> of the page
114
+ // can end up "contaminating" the window.StripeConnect object and cause issues in connect.js initialization
115
+ return !!(stripeConnect && typeof stripeConnect === "object" && "init" in stripeConnect && typeof stripeConnect.init === "function");
116
+ };
162
117
  const loadScript = () => {
163
118
  // Ensure that we only attempt to load Connect.js at most once
164
- if (stripePromise !== null) {
165
- return stripePromise;
119
+ if (stripePromise$1 !== null) {
120
+ return stripePromise$1;
166
121
  }
167
- stripePromise = new Promise((resolve, reject) => {
122
+ stripePromise$1 = new Promise((resolve, reject) => {
168
123
  if (typeof window === "undefined") {
169
124
  reject("ConnectJS won't load when rendering code in the server - it can only be loaded on a browser. This error is expected when loading ConnectJS in SSR environments, like NextJS. It will have no impact in the UI, however if you wish to avoid it, you can switch to the `pure` version of the connect.js loader: https://github.com/stripe/connect-js#importing-loadconnect-without-side-effects.");
170
125
  return;
171
126
  }
172
- if (window.StripeConnect) {
127
+ if (isWindowStripeConnectDefined(window.StripeConnect)) {
173
128
  console.warn(EXISTING_SCRIPT_MESSAGE);
174
- }
175
- if (window.StripeConnect) {
176
129
  const wrapper = createWrapper(window.StripeConnect);
177
130
  resolve(wrapper);
178
131
  return;
@@ -185,7 +138,7 @@ const loadScript = () => {
185
138
  script = injectScript();
186
139
  }
187
140
  script.addEventListener("load", () => {
188
- if (window.StripeConnect) {
141
+ if (isWindowStripeConnectDefined(window.StripeConnect)) {
189
142
  const wrapper = createWrapper(window.StripeConnect);
190
143
  resolve(wrapper);
191
144
  } else {
@@ -199,7 +152,7 @@ const loadScript = () => {
199
152
  reject(error);
200
153
  }
201
154
  });
202
- return stripePromise;
155
+ return stripePromise$1;
203
156
  };
204
157
  const hasCustomMethod = tagName => {
205
158
  return tagName in ConnectElementCustomMethodConfig;
@@ -231,6 +184,9 @@ const initStripeConnect = (stripePromise, initParams) => {
231
184
  for (const method in methods) {
232
185
  element[method] = function (value) {
233
186
  stripeConnectInstance.then(() => {
187
+ if (!this[`${method}InternalOnly`]) {
188
+ throw new Error(`Method ${method} is not available in the ${tagName} HTML element. Are you using a supported version of the "@stripe/connect-js" package? Using version: 3.3.31`);
189
+ }
234
190
  this[`${method}InternalOnly`](value);
235
191
  });
236
192
  };
@@ -283,7 +239,7 @@ const createWrapper = stripeConnect => {
283
239
  sdk: true,
284
240
  sdkOptions: {
285
241
  // This will be replaced by the npm package version when bundling
286
- sdkVersion: "3.3.31-preview-1"
242
+ sdkVersion: "3.3.31"
287
243
  }
288
244
  })
289
245
  }));
@@ -295,16 +251,16 @@ const createWrapper = stripeConnect => {
295
251
 
296
252
  // Execute our own script injection after a tick to give users time to do their
297
253
  // own script injection.
298
- const stripePromise$1 = Promise.resolve().then(() => loadScript());
254
+ const stripePromise = Promise.resolve().then(() => loadScript());
299
255
  let loadCalled = false;
300
- stripePromise$1.catch(err => {
256
+ stripePromise.catch(err => {
301
257
  if (!loadCalled) {
302
258
  console.warn(err);
303
259
  }
304
260
  });
305
261
  const loadConnectAndInitialize = initParams => {
306
262
  loadCalled = true;
307
- return initStripeConnect(stripePromise$1, initParams);
263
+ return initStripeConnect(stripePromise, initParams);
308
264
  };
309
265
 
310
266
  export { loadConnectAndInitialize };
package/dist/connect.js CHANGED
@@ -9,17 +9,6 @@ const ConnectElementCommonMethodConfig = {
9
9
  setOnLoaderStart: _listener => {}
10
10
  };
11
11
  const ConnectElementCustomMethodConfig = {
12
- payments: {
13
- setDefaultFilters: _filters => {}
14
- },
15
- "payment-details": {
16
- setPayment: _payment => {},
17
- setOnClose: _listener => {}
18
- },
19
- "payment-disputes": {
20
- setPayment: _payment => {},
21
- setOnDisputesLoaded: _listener => {}
22
- },
23
12
  "account-onboarding": {
24
13
  setFullTermsOfServiceUrl: _termOfServiceUrl => {},
25
14
  setRecipientTermsOfServiceUrl: _recipientTermsOfServiceUrl => {},
@@ -36,6 +25,10 @@ const ConnectElementCustomMethodConfig = {
36
25
  setCollectionOptions: _collectionOptions => {},
37
26
  setOnNotificationsChange: _listener => {}
38
27
  },
28
+ "instant-payouts-promotion": {
29
+ setOnInstantPayoutsPromotionLoaded: _listener => {},
30
+ setOnInstantPayoutCreated: _listener => {}
31
+ },
39
32
  "issuing-card": {
40
33
  setDefaultCard: _defaultCard => {},
41
34
  setCardSwitching: _cardSwitching => {},
@@ -53,46 +46,16 @@ const ConnectElementCustomMethodConfig = {
53
46
  "financial-account-transactions": {
54
47
  setFinancialAccount: _financialAccount => {}
55
48
  },
56
- recipients: {
57
- setDataSource: _dataSource => {}
58
- },
59
- "app-install": {
60
- setApp: _app => {},
61
- setOnAppInstallStateFetched: _listener => {},
62
- setOnAppInstallStateChanged: _listener => {}
63
- },
64
- "app-viewport": {
65
- setApp: _app => {},
66
- setAppData: _appData => {}
67
- },
68
- "payment-method-settings": {
69
- setPaymentMethodConfiguration: _paymentMethodConfiguration => {}
70
- },
71
- "capital-financing": {
72
- setDefaultFinancingOffer: _defaultFinancingOffer => {},
73
- setShowFinancingSelector: _showFinancingSelector => {},
74
- setHowCapitalWorksUrl: _howCapitalWorksUrl => {},
75
- setSupportUrl: _supportUrl => {},
76
- setOnFinancingsLoaded: _listener => {}
77
- },
78
- "capital-financing-application": {
79
- setOnApplicationSubmitted: _listener => {},
80
- setPrivacyPolicyUrl: _privacyPolicyUrl => {},
81
- setHowCapitalWorksUrl: _howCapitalWorksUrl => {}
49
+ payments: {
50
+ setDefaultFilters: _filters => {}
82
51
  },
83
- "capital-financing-promotion": {
84
- setLayout: _layout => {},
85
- setOnApplicationSubmitted: _listener => {},
86
- setOnEligibleFinancingOfferLoaded: _listener => {},
87
- setPrivacyPolicyUrl: _privacyPolicyUrl => {},
88
- setHowCapitalWorksUrl: _howCapitalWorksUrl => {},
89
- setEligibilityCriteriaUrl: _eligibilityCriteriaUrl => {}
52
+ "payment-details": {
53
+ setPayment: _payment => {},
54
+ setOnClose: _listener => {}
90
55
  },
91
- "reporting-chart": {
92
- setReportName: _reportName => {},
93
- setIntervalStart: _intervalStart => {},
94
- setIntervalEnd: _intervalEnd => {},
95
- setIntervalType: _intervalType => {}
56
+ "payment-disputes": {
57
+ setPayment: _payment => {},
58
+ setOnDisputesLoaded: _listener => {}
96
59
  },
97
60
  "tax-settings": {
98
61
  setHideProductTaxCodeSelector: _hidden => {},
@@ -101,56 +64,41 @@ const ConnectElementCustomMethodConfig = {
101
64
  },
102
65
  "tax-registrations": {
103
66
  setOnAfterTaxRegistrationAdded: _listener => {},
104
- setDisplayCountries: _countries => {}
105
- },
106
- "tax-threshold-monitoring": {
107
- setDisplayCountries: _countries => {}
108
- },
109
- "product-tax-code-selector": {
110
- setOnTaxCodeSelect: _listener => {},
111
- setHideDescription: _hideDescription => {},
112
- setDisabled: _disabled => {},
113
- setInitialTaxCode: _initialTaxCode => {}
67
+ setDisplayCountries: _countries => {},
68
+ setOnAfterTaxRegistrationExpired: _listener => {}
114
69
  },
115
- "export-tax-transactions": {}
70
+ "payout-details": {
71
+ setPayout: _payout => {},
72
+ setOnClose: _listener => {}
73
+ }
116
74
  };
117
75
 
118
76
  const componentNameMapping = {
77
+ "account-onboarding": "stripe-connect-account-onboarding",
78
+ "disputes-list": "stripe-connect-disputes-list",
119
79
  payments: "stripe-connect-payments",
120
- payouts: "stripe-connect-payouts",
121
80
  "payment-details": "stripe-connect-payment-details",
122
81
  "payment-disputes": "stripe-connect-payment-disputes",
123
- "account-onboarding": "stripe-connect-account-onboarding",
124
- "payment-method-settings": "stripe-connect-payment-method-settings",
82
+ payouts: "stripe-connect-payouts",
83
+ "payouts-list": "stripe-connect-payouts-list",
84
+ "payout-details": "stripe-connect-payout-details",
85
+ balances: "stripe-connect-balances",
125
86
  "account-management": "stripe-connect-account-management",
126
87
  "notification-banner": "stripe-connect-notification-banner",
127
- "instant-payouts": "stripe-connect-instant-payouts",
88
+ "instant-payouts-promotion": "stripe-connect-instant-payouts-promotion",
128
89
  "issuing-card": "stripe-connect-issuing-card",
129
90
  "issuing-cards-list": "stripe-connect-issuing-cards-list",
130
91
  "financial-account": "stripe-connect-financial-account",
131
- recipients: "stripe-connect-recipients",
132
92
  "financial-account-transactions": "stripe-connect-financial-account-transactions",
133
- "capital-financing": "stripe-connect-capital-financing",
134
- "capital-financing-application": "stripe-connect-capital-financing-application",
135
- "capital-financing-promotion": "stripe-connect-capital-financing-promotion",
136
- "capital-overview": "stripe-connect-capital-overview",
137
93
  documents: "stripe-connect-documents",
138
- "product-tax-code-selector": "stripe-connect-product-tax-code-selector",
139
- "export-tax-transactions": "stripe-connect-export-tax-transactions",
140
94
  "tax-registrations": "stripe-connect-tax-registrations",
141
- "tax-settings": "stripe-connect-tax-settings",
142
- "tax-threshold-monitoring": "stripe-connect-tax-threshold-monitoring",
143
- balances: "stripe-connect-balances",
144
- "payouts-list": "stripe-connect-payouts-list",
145
- "app-install": "stripe-connect-app-install",
146
- "app-viewport": "stripe-connect-app-viewport",
147
- "reporting-chart": "stripe-connect-reporting-chart"
95
+ "tax-settings": "stripe-connect-tax-settings"
148
96
  };
149
97
  const EXISTING_SCRIPT_MESSAGE = "loadConnect was called but an existing Connect.js script already exists in the document; existing script parameters will be used";
150
98
  const V0_URL = "https://connect-js.stripe.com/v0.1/connect.js";
151
99
  const V1_URL = "https://connect-js.stripe.com/v1.0/connect.js";
152
100
  const findScript = () => {
153
- return document.querySelectorAll(`script[src="${V0_URL}"]`)[0] || document.querySelectorAll(`script[src="${V1_URL}"]`)[0] || null;
101
+ return document.querySelectorAll(`script[src="${V1_URL}"]`)[0] || document.querySelectorAll(`script[src="${V0_URL}"]`)[0] || null;
154
102
  };
155
103
  const injectScript = () => {
156
104
  const script = document.createElement("script");
@@ -162,21 +110,26 @@ const injectScript = () => {
162
110
  document.head.appendChild(script);
163
111
  return script;
164
112
  };
165
- let stripePromise = null;
113
+ let stripePromise$1 = null;
114
+ const isWindowStripeConnectDefined = stripeConnect => {
115
+ // We only consider `StripeConnect` defined if `init` is a function
116
+ // Why? HTML markup like:
117
+ // <a id="StripeConnect"><a id="StripeConnect" name="init" href="stripe"></a></a> in the <head> of the page
118
+ // can end up "contaminating" the window.StripeConnect object and cause issues in connect.js initialization
119
+ return !!(stripeConnect && typeof stripeConnect === "object" && "init" in stripeConnect && typeof stripeConnect.init === "function");
120
+ };
166
121
  const loadScript = () => {
167
122
  // Ensure that we only attempt to load Connect.js at most once
168
- if (stripePromise !== null) {
169
- return stripePromise;
123
+ if (stripePromise$1 !== null) {
124
+ return stripePromise$1;
170
125
  }
171
- stripePromise = new Promise((resolve, reject) => {
126
+ stripePromise$1 = new Promise((resolve, reject) => {
172
127
  if (typeof window === "undefined") {
173
128
  reject("ConnectJS won't load when rendering code in the server - it can only be loaded on a browser. This error is expected when loading ConnectJS in SSR environments, like NextJS. It will have no impact in the UI, however if you wish to avoid it, you can switch to the `pure` version of the connect.js loader: https://github.com/stripe/connect-js#importing-loadconnect-without-side-effects.");
174
129
  return;
175
130
  }
176
- if (window.StripeConnect) {
131
+ if (isWindowStripeConnectDefined(window.StripeConnect)) {
177
132
  console.warn(EXISTING_SCRIPT_MESSAGE);
178
- }
179
- if (window.StripeConnect) {
180
133
  const wrapper = createWrapper(window.StripeConnect);
181
134
  resolve(wrapper);
182
135
  return;
@@ -189,7 +142,7 @@ const loadScript = () => {
189
142
  script = injectScript();
190
143
  }
191
144
  script.addEventListener("load", () => {
192
- if (window.StripeConnect) {
145
+ if (isWindowStripeConnectDefined(window.StripeConnect)) {
193
146
  const wrapper = createWrapper(window.StripeConnect);
194
147
  resolve(wrapper);
195
148
  } else {
@@ -203,7 +156,7 @@ const loadScript = () => {
203
156
  reject(error);
204
157
  }
205
158
  });
206
- return stripePromise;
159
+ return stripePromise$1;
207
160
  };
208
161
  const hasCustomMethod = tagName => {
209
162
  return tagName in ConnectElementCustomMethodConfig;
@@ -235,6 +188,9 @@ const initStripeConnect = (stripePromise, initParams) => {
235
188
  for (const method in methods) {
236
189
  element[method] = function (value) {
237
190
  stripeConnectInstance.then(() => {
191
+ if (!this[`${method}InternalOnly`]) {
192
+ throw new Error(`Method ${method} is not available in the ${tagName} HTML element. Are you using a supported version of the "@stripe/connect-js" package? Using version: 3.3.31`);
193
+ }
238
194
  this[`${method}InternalOnly`](value);
239
195
  });
240
196
  };
@@ -287,7 +243,7 @@ const createWrapper = stripeConnect => {
287
243
  sdk: true,
288
244
  sdkOptions: {
289
245
  // This will be replaced by the npm package version when bundling
290
- sdkVersion: "3.3.31-preview-1"
246
+ sdkVersion: "3.3.31"
291
247
  }
292
248
  })
293
249
  }));
@@ -299,16 +255,16 @@ const createWrapper = stripeConnect => {
299
255
 
300
256
  // Execute our own script injection after a tick to give users time to do their
301
257
  // own script injection.
302
- const stripePromise$1 = Promise.resolve().then(() => loadScript());
258
+ const stripePromise = Promise.resolve().then(() => loadScript());
303
259
  let loadCalled = false;
304
- stripePromise$1.catch(err => {
260
+ stripePromise.catch(err => {
305
261
  if (!loadCalled) {
306
262
  console.warn(err);
307
263
  }
308
264
  });
309
265
  const loadConnectAndInitialize = initParams => {
310
266
  loadCalled = true;
311
- return initStripeConnect(stripePromise$1, initParams);
267
+ return initStripeConnect(stripePromise, initParams);
312
268
  };
313
269
 
314
270
  exports.loadConnectAndInitialize = loadConnectAndInitialize;