jsforce2 1.11.1 → 5.2.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.

Potentially problematic release.


This version of jsforce2 might be problematic. Click here for more details.

Files changed (80) hide show
  1. package/index.js +46 -1
  2. package/package.json +7 -105
  3. package/LICENSE +0 -22
  4. package/README.md +0 -74
  5. package/bin/jsforce +0 -3
  6. package/bower.json +0 -30
  7. package/build/jsforce-api-analytics.js +0 -393
  8. package/build/jsforce-api-analytics.min.js +0 -2
  9. package/build/jsforce-api-analytics.min.js.map +0 -1
  10. package/build/jsforce-api-apex.js +0 -183
  11. package/build/jsforce-api-apex.min.js +0 -2
  12. package/build/jsforce-api-apex.min.js.map +0 -1
  13. package/build/jsforce-api-bulk.js +0 -1054
  14. package/build/jsforce-api-bulk.min.js +0 -2
  15. package/build/jsforce-api-bulk.min.js.map +0 -1
  16. package/build/jsforce-api-chatter.js +0 -320
  17. package/build/jsforce-api-chatter.min.js +0 -2
  18. package/build/jsforce-api-chatter.min.js.map +0 -1
  19. package/build/jsforce-api-metadata.js +0 -3020
  20. package/build/jsforce-api-metadata.min.js +0 -2
  21. package/build/jsforce-api-metadata.min.js.map +0 -1
  22. package/build/jsforce-api-soap.js +0 -403
  23. package/build/jsforce-api-soap.min.js +0 -2
  24. package/build/jsforce-api-soap.min.js.map +0 -1
  25. package/build/jsforce-api-streaming.js +0 -3479
  26. package/build/jsforce-api-streaming.min.js +0 -2
  27. package/build/jsforce-api-streaming.min.js.map +0 -1
  28. package/build/jsforce-api-tooling.js +0 -319
  29. package/build/jsforce-api-tooling.min.js +0 -2
  30. package/build/jsforce-api-tooling.min.js.map +0 -1
  31. package/build/jsforce-core.js +0 -25250
  32. package/build/jsforce-core.min.js +0 -2
  33. package/build/jsforce-core.min.js.map +0 -1
  34. package/build/jsforce.js +0 -31637
  35. package/build/jsforce.min.js +0 -2
  36. package/build/jsforce.min.js.map +0 -1
  37. package/core.js +0 -1
  38. package/lib/VERSION.js +0 -2
  39. package/lib/_required.js +0 -29
  40. package/lib/api/analytics.js +0 -387
  41. package/lib/api/apex.js +0 -177
  42. package/lib/api/bulk.js +0 -862
  43. package/lib/api/chatter.js +0 -314
  44. package/lib/api/index.js +0 -8
  45. package/lib/api/metadata.js +0 -848
  46. package/lib/api/soap.js +0 -397
  47. package/lib/api/streaming-extension.js +0 -136
  48. package/lib/api/streaming.js +0 -270
  49. package/lib/api/tooling.js +0 -313
  50. package/lib/browser/canvas.js +0 -90
  51. package/lib/browser/client.js +0 -241
  52. package/lib/browser/core.js +0 -5
  53. package/lib/browser/jsforce.js +0 -6
  54. package/lib/browser/jsonp.js +0 -52
  55. package/lib/browser/request.js +0 -70
  56. package/lib/cache.js +0 -252
  57. package/lib/cli/cli.js +0 -431
  58. package/lib/cli/repl.js +0 -337
  59. package/lib/connection.js +0 -1881
  60. package/lib/core.js +0 -16
  61. package/lib/csv.js +0 -50
  62. package/lib/date.js +0 -163
  63. package/lib/http-api.js +0 -300
  64. package/lib/jsforce.js +0 -10
  65. package/lib/logger.js +0 -52
  66. package/lib/oauth2.js +0 -206
  67. package/lib/process.js +0 -275
  68. package/lib/promise.js +0 -164
  69. package/lib/query.js +0 -881
  70. package/lib/quick-action.js +0 -90
  71. package/lib/record-stream.js +0 -305
  72. package/lib/record.js +0 -107
  73. package/lib/registry/file-registry.js +0 -48
  74. package/lib/registry/index.js +0 -3
  75. package/lib/registry/registry.js +0 -111
  76. package/lib/require.js +0 -14
  77. package/lib/soap.js +0 -207
  78. package/lib/sobject.js +0 -558
  79. package/lib/soql-builder.js +0 -236
  80. package/lib/transport.js +0 -233
@@ -1,403 +0,0 @@
1
- (function(f){if(typeof exports==="object"&&typeof module!=="undefined"){module.exports=f()}else if(typeof define==="function"&&define.amd){define([],f)}else{var g;if(typeof window!=="undefined"){g=window}else if(typeof global!=="undefined"){g=global}else if(typeof self!=="undefined"){g=self}else{g=this}g=(g.jsforce||(g.jsforce = {}));g=(g.modules||(g.modules = {}));g=(g.api||(g.api = {}));g.Soap = f()}})(function(){var define,module,exports;return (function(){function r(e,n,t){function o(i,f){if(!n[i]){if(!e[i]){var c="function"==typeof require&&require;if(!f&&c)return c(i,!0);if(u)return u(i,!0);var a=new Error("Cannot find module '"+i+"'");throw a.code="MODULE_NOT_FOUND",a}var p=n[i]={exports:{}};e[i][0].call(p.exports,function(r){var n=e[i][1][r];return o(n||r)},p,p.exports,r,e,n,t)}return n[i].exports}for(var u="function"==typeof require&&require,i=0;i<t.length;i++)o(t[i]);return o}return r})()({1:[function(require,module,exports){
2
- /**
3
- * @file Salesforce SOAP API
4
- * @author Shinichi Tomita <shinichi.tomita@gmail.com>
5
- */
6
-
7
- 'use strict';
8
-
9
- var _ = window.jsforce.require('lodash/core');
10
- var jsforce = window.jsforce.require('./core');
11
- var SOAP = window.jsforce.require('./soap');
12
-
13
- /**
14
- * API class for Partner SOAP call
15
- *
16
- * @class
17
- * @param {Connection} conn - Connection
18
- */
19
- var SoapApi = module.exports = function(conn) {
20
- this._conn = conn;
21
- };
22
-
23
- /**
24
- * Call SOAP Api (Partner) endpoint
25
- * @private
26
- */
27
- SoapApi.prototype._invoke = function(method, message, schema, callback) {
28
- var soapEndpoint = new SOAP(this._conn, {
29
- xmlns: "urn:partner.soap.sforce.com",
30
- endpointUrl: this._conn.instanceUrl + "/services/Soap/u/" + this._conn.version
31
- });
32
- return soapEndpoint.invoke(method, message, { result: schema }).then(function(res) {
33
- return res.result;
34
- }).thenCall(callback);
35
- };
36
-
37
-
38
- /* */
39
- var Schemas = {};
40
-
41
- /**
42
- * @typedef SoapApi~LeadConvert
43
- * @prop {String} convertedStatus - Status of converted lead
44
- * @prop {String} leadId - Lead record Id to convert
45
- * @prop {String} [accountId] - Account record Id to assign the converted record
46
- * @prop {String} [contactId] - Contact record Id to assign the converted record
47
- * @prop {Boolean} [doNotCreateOpportunity] - True if you don't want to create a new opportunity
48
- * @prop {String} [opportunityName] - Name of opportunity to create
49
- * @prop {Boolean} [overwriteLeadSource] - True if overwriting lead source
50
- * @prop {String} [ownerId] - Owner Id
51
- * @prop {Boolean} [sendNotificationEmail] - True if send notification email
52
- */
53
- /**
54
- * @typedef SoapApi~LeadConvertResult
55
- * @prop {String} leadId - Lead record Id to convert
56
- * @prop {String} [accountId] - Account record Id of converted lead
57
- * @prop {String} [contactId] - Contact record Id of converted lead
58
- * @prop {String} [opportunityId] - Opportunity record Id created in conversion
59
- * @prop {Boolean} success - True if successfully converted
60
- * @prop {Array.<Object>} errors - Error
61
- */
62
- /**
63
- * Converts a Lead into an Account, Contact, or (optionally) an Opportunity.
64
- *
65
- * @param {SoapApi~LeadConvert|Array.<SoapApi~LeadConvert>} leadConverts
66
- * @param {Callback.<SoapApi~LeadConvertResult|Array.<SoapApi~LeadConvertResult>>} [callback] - Callback function
67
- * @returns {Promise.<SoapApi~LeadConvertResult|Array.<SoapApi~LeadConvertResult>>}
68
- */
69
- SoapApi.prototype.convertLead = function(leadConverts, callback) {
70
- var schema = _.isArray(leadConverts) ? [ Schemas.LeadConvertResult ] : Schemas.LeadConvertResult;
71
- return this._invoke("convertLead", { leadConverts: leadConverts }, schema, callback);
72
- };
73
- Schemas.LeadConvertResult = {
74
- success: 'boolean',
75
- errors: [],
76
- leadId: 'string',
77
- accountId: 'string',
78
- contactId: 'string',
79
- opportunityId: 'string'
80
- };
81
-
82
- /**
83
- * @typedef SoapApi~MergeRequest
84
- * @prop {Object} masterRecord - The merge destination record
85
- * @prop {Array.<String>} recordToMergeIds - Ids of records to merge
86
- */
87
- /**
88
- * @typedef SoapApi~MergeResult
89
- * @prop {Boolean} success - True if successfully merged
90
- * @prop {Array.<Object>} errors - Error
91
- * @prop {String} id - ID of the master record
92
- * @prop {Array.<String>} mergedRecordIds - ID of the records that were merged into the master record
93
- * @prop {Array.<String>} updatedRelatedIds - ID of all related records that were moved (re-parented) as a result of the merge
94
- */
95
-
96
- /**
97
- * Merge up to three records into one
98
- *
99
- * @param {SoapApi~MergeRequest|Array.<SoapApi~MergeRequest>} mergeRequests
100
- * @param {Callback.<SoapApi~MergeResult|Array.<SoapApi~MergeResult>>} [callback] - Callback function
101
- * @returns {Promise.<SoapApi~MergeResult|Array.<SoapApi~MergeResult>>}
102
- */
103
- SoapApi.prototype.merge = function(mergeRequests, callback) {
104
- var schema = _.isArray(mergeRequests) ? [ Schemas.MergeResult ] : Schemas.MergeResult;
105
- return this._invoke("merge", { mergeRequests: mergeRequests }, schema, callback);
106
- };
107
- Schemas.MergeResult = {
108
- success: 'boolean',
109
- errors: [],
110
- id: 'string',
111
- mergedRecordIds: ['string'],
112
- updatedRelatedIds: ['string']
113
- };
114
-
115
-
116
- /**
117
- * @typedef SoapApi~EmptyRecycleBinResult
118
- * @prop {String} id - ID of an sObject that you attempted to delete from the Recycle Bin
119
- * @prop {Boolean} success - Whether the call succeeded (true) or not (false) for this record
120
- * @prop {Array.<Object>} errors - Errors
121
- */
122
- /**
123
- * Delete records from the recycle bin immediately
124
- *
125
- * @param {Array.<String>} ids - Record ids to empty from recycle bin
126
- * @param {Callback.<Array.<SoapApi~EmptyRecycleBinResult>>} [callback] - Callback function
127
- * @returns {Promise.<Array.<SoapApi~EmptyRecycleBinResult>>}
128
- */
129
- SoapApi.prototype.emptyRecycleBin = function(ids, callback) {
130
- return this._invoke("emptyRecycleBin", { ids: ids }, [ Schemas.EmptyRecycleBinResult ], callback);
131
- };
132
- Schemas.EmptyRecycleBinResult = {
133
- id: 'string',
134
- success: 'boolean',
135
- errors: []
136
- };
137
-
138
-
139
- /**
140
- * @typedef SoapApi~DescribeTabSetResult
141
- * @prop {String} label - The display label for this standard or custom app
142
- * @prop {String} logoUrl - A fully qualified URL to the logo image associated with the standard or custom app
143
- * @prop {String} namespace - Namespace of application package
144
- * @prop {Boolean} selected - If true, then this standard or custom app is the user’s currently selected app
145
- * @prop {Array.<SoapApi~DescribeTab>} tabs - An array of tabs that are displayed for the specified standard app or custom app
146
- */
147
- /**
148
- * @typedef SoapApi~DescribeTab
149
- * @prop {Array.<Object>} colors - Array of color information used for a tab
150
- * @prop {Boolean} custom - true if this is a custom tab
151
- * @prop {String} iconUrl - The URL for the main 32 x 32 pixel icon for a tab
152
- * @prop {Array.<Object>} icons - Array of icon information used for a tab
153
- * @prop {String} label - The display label for this tab
154
- * @prop {String} miniIconUrl - The URL for the 16 x 16 pixel icon that represents a tab
155
- * @prop {String} name - The API name of the tab
156
- * @prop {String} sobjectName - The name of the sObject that is primarily displayed on this tab
157
- * @prop {String} url - A fully qualified URL for viewing this tab
158
- */
159
- /**
160
- * Returns information about the standard and custom apps available to the logged-in user
161
- *
162
- * @param {Callback.<Array.<SoapApi~DescribeTabSetResult>>} [callback] - Callback function
163
- * @returns {Promise.<Array.<SoapApi~DescribeTabSetResult>>}
164
- */
165
- SoapApi.prototype.describeTabs = function(callback) {
166
- return this._invoke("describeTabs", {}, [ Schemas.DescribeTabSetResult ], callback);
167
- };
168
- Schemas.DescribeTabSetResult = {
169
- label: 'string',
170
- logoUrl: 'string',
171
- namespace: 'string',
172
- selected: 'boolean',
173
- tabs: [{
174
- colors: [{
175
- theme: 'string',
176
- color: 'string',
177
- context: 'string'
178
- }],
179
- iconUrl: 'string',
180
- icons: [{
181
- theme: 'string',
182
- height: 'number',
183
- width: 'number',
184
- url: 'string',
185
- contentType: 'string'
186
- }],
187
- label: 'string',
188
- custom: 'boolean',
189
- miniIconUrl: 'string',
190
- name: 'string',
191
- sobjectName: 'string',
192
- url: 'string'
193
- }]
194
- };
195
-
196
- /**
197
- * Retrieves the current system timestamp (Coordinated Universal Time (UTC) time zone) from the API
198
- *
199
- * @typedef SoapApi~ServerTimestampResult
200
- * @prop {String} timestamp - Timestamp
201
- */
202
- /**
203
- * @param {Callback.<SoapApi~ServerTimestampResult>} [callback] - Callback function
204
- * @returns {Promise.<SoapApi~ServerTimestampResult>}
205
- */
206
- SoapApi.prototype.getServerTimestamp = function(callback) {
207
- return this._invoke("getServerTimestamp", {}, Schemas.GetServerTimestampResult, callback);
208
- };
209
- Schemas.GetServerTimestampResult = {
210
- timestamp: 'string'
211
- };
212
-
213
- /**
214
- * @typedef SoapApi~UserInfoResult
215
- * @prop {Boolean} accessibilityMode
216
- * @prop {String} currencySymbol
217
- * @prop {Number} orgAttachmentFileSizeLimit
218
- * @prop {String} orgDefaultCurrencyIsoCode
219
- * @prop {String} orgDisallowHtmlAttachments
220
- * @prop {Boolean} orgHasPersonAccounts
221
- * @prop {String} organizationId
222
- * @prop {Boolean} organizationMultiCurrency
223
- * @prop {String} organizationName
224
- * @prop {String} profileId
225
- * @prop {String} roleId
226
- * @prop {Number} sessionSecondsValid
227
- * @prop {String} userDefaultCurrencyIsoCode
228
- * @prop {String} userEmail
229
- * @prop {String} userFullName
230
- * @prop {String} userId
231
- * @prop {String} userLanguage
232
- * @prop {String} userLocale
233
- * @prop {String} userName
234
- * @prop {String} userTimeZone
235
- * @prop {String} userType
236
- * @prop {String} userUiSkin
237
- */
238
- /**
239
- * Retrieves personal information for the user associated with the current session
240
- *
241
- * @param {Callback.<SoapApi~UserInfoResult>} [callback] - Callback function
242
- * @returns {Promise.<SoapApi~UserInfoResult>}
243
- */
244
- SoapApi.prototype.getUserInfo = function(callback) {
245
- return this._invoke("getUserInfo", {}, Schemas.GetUserInfoResult, callback);
246
- };
247
- Schemas.GetUserInfoResult = {
248
- accessibilityMode: 'boolean',
249
- currencySymbol: 'string',
250
- orgAttachmentFileSizeLimit: 'number',
251
- orgDefaultCurrencyIsoCode: 'string',
252
- orgDisallowHtmlAttachments: 'boolean',
253
- orgHasPersonAccounts: 'boolean',
254
- organizationId: 'string',
255
- organizationMultiCurrency: 'boolean',
256
- organizationName: 'string',
257
- profileId: 'string',
258
- roleId: 'string',
259
- sessionSecondsValid: 'number',
260
- userDefaultCurrencyIsoCode: 'string',
261
- userEmail: 'string',
262
- userFullName: 'string',
263
- userId: 'string',
264
- userLanguage: 'string',
265
- userLocale: 'string',
266
- userName: 'string',
267
- userTimeZone: 'string',
268
- userType: 'string',
269
- userUiSkin: 'string'
270
- };
271
-
272
- /**
273
- * Sets the specified user’s password to the specified value
274
- *
275
- * @param {String} userId - User Id to set password
276
- * @param {String} password - New password
277
- * @param {Callback.<String>} [callback] - Callback function
278
- * @returns {Promise.<String>}
279
- */
280
- SoapApi.prototype.setPassword = function(userId, password, callback) {
281
- return this._invoke("setPassword", { userId: userId, password: password }, callback);
282
- };
283
-
284
- /**
285
- * @typedef SoapApi~ResetPasswordResult
286
- * @prop {String} password
287
- */
288
- /**
289
- * Resets the specified user’s password
290
- *
291
- * @param {String} userId - User Id to set password
292
- * @param {String} password - New password
293
- * @param {Callback.<SoapApi~ResetPasswordResult>} [callback] - Callback function
294
- * @returns {Promise.<SoapApi~ResetPasswordResult>}
295
- */
296
- SoapApi.prototype.resetPassword = function(userId, callback) {
297
- return this._invoke("resetPassword", { userId: userId }, callback);
298
- };
299
-
300
- /**
301
- * Adds one or more new records to your organization’s data
302
- *
303
- * @param {Array.<Object>} sObjects - Records to insert
304
- * @param {Callback.<SoapApi~SaveResult>} [callback] - Callback function
305
- * @returns {Promise.<SoapApi~SaveResult>}
306
- */
307
- SoapApi.prototype.create = function(sObjects, callback) {
308
- var schema = _.isArray(sObjects) ? [ Schemas.SaveResult ] : Schemas.SaveResult;
309
- var args = {
310
- '@xmlns' : 'urn:partner.soap.sforce.com',
311
- '@xmlns:ns1' : 'sobject.partner.soap.sforce.com',
312
- 'ns1:sObjects' : sObjects
313
- };
314
- return this._invoke("create", args, schema, callback);
315
- };
316
-
317
- /**
318
- * Updates one or more existing records in your organization’s data.
319
- *
320
- * @param {Array.<Object>} sObjects - Records to update
321
- * @param {Callback.<SoapApi~SaveResult>} [callback] - Callback function
322
- * @returns {Promise.<SoapApi~SaveResult>}
323
- */
324
- SoapApi.prototype.update = function(sObjects, callback) {
325
- var schema = _.isArray(sObjects) ? [ Schemas.SaveResult ] : Schemas.SaveResult;
326
- var args = {
327
- '@xmlns' : 'urn:partner.soap.sforce.com',
328
- '@xmlns:ns1' : 'sobject.partner.soap.sforce.com',
329
- 'ns1:sObjects' : sObjects
330
- };
331
- return this._invoke("update", args, schema, callback);
332
- };
333
-
334
- Schemas.SaveResult = {
335
- success: 'boolean',
336
- errors: [],
337
- id: 'string'
338
- };
339
-
340
- /**
341
- * Creates new records and updates existing records in your organization’s data.
342
- *
343
- * @param {Array.<Object>} sObjects - Records to upsert
344
- * @param {Callback.<SoapApi~UpsertResult>} [callback] - Callback function
345
- * @returns {Promise.<SoapApi~UpsertResult>}
346
- */
347
- SoapApi.prototype.upsert = function(externalIdFieldName, sObjects, callback) {
348
- var schema = _.isArray(sObjects) ? [ Schemas.UpsertResult ] : Schemas.UpsertResult;
349
- var args = {
350
- '@xmlns' : 'urn:partner.soap.sforce.com',
351
- '@xmlns:ns1' : 'sobject.partner.soap.sforce.com',
352
- 'ns1:externalIDFieldName' : externalIdFieldName,
353
- 'ns1:sObjects' : sObjects
354
- };
355
- return this._invoke("upsert", args, schema, callback);
356
- };
357
-
358
- Schemas.UpsertResult = {
359
- created: 'boolean',
360
- success: 'boolean',
361
- errors: [],
362
- id: 'string'
363
- };
364
-
365
- /**
366
- * Deletes one or more records from your organization’s data
367
- *
368
- * @param {Array.<Object>} ids - Id of records to delete
369
- * @param {Callback.<SoapApi~DeleteResult>} [callback] - Callback function
370
- * @returns {Promise.<SoapApi~DeleteResult>}
371
- */
372
- SoapApi.prototype.delete = function(ids, callback) {
373
- var schema = _.isArray(ids) ? [ Schemas.DeleteResult ] : Schemas.DeleteResult;
374
- var args = {
375
- '@xmlns' : 'urn:partner.soap.sforce.com',
376
- '@xmlns:ns1' : 'sobject.partner.soap.sforce.com',
377
- 'ns1:ids' : ids
378
- };
379
- return this._invoke("delete", args, schema, callback);
380
- };
381
-
382
- Schemas.DeleteResult = {
383
- success: 'boolean',
384
- errors: [],
385
- id: 'string'
386
- };
387
-
388
-
389
- /*--------------------------------------------*/
390
- /*
391
- * Register hook in connection instantiation for dynamically adding this API module features
392
- */
393
- jsforce.on('connection:new', function(conn) {
394
- conn.soap = new SoapApi(conn);
395
- });
396
-
397
-
398
- module.exports = SoapApi;
399
-
400
- },{}]},{},[1])(1)
401
- });
402
-
403
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm5vZGVfbW9kdWxlcy9icm93c2VyLXBhY2svX3ByZWx1ZGUuanMiLCJsaWIvYXBpL3NvYXAuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7QUNBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBIiwiZmlsZSI6ImdlbmVyYXRlZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzQ29udGVudCI6WyIoZnVuY3Rpb24oKXtmdW5jdGlvbiByKGUsbix0KXtmdW5jdGlvbiBvKGksZil7aWYoIW5baV0pe2lmKCFlW2ldKXt2YXIgYz1cImZ1bmN0aW9uXCI9PXR5cGVvZiByZXF1aXJlJiZyZXF1aXJlO2lmKCFmJiZjKXJldHVybiBjKGksITApO2lmKHUpcmV0dXJuIHUoaSwhMCk7dmFyIGE9bmV3IEVycm9yKFwiQ2Fubm90IGZpbmQgbW9kdWxlICdcIitpK1wiJ1wiKTt0aHJvdyBhLmNvZGU9XCJNT0RVTEVfTk9UX0ZPVU5EXCIsYX12YXIgcD1uW2ldPXtleHBvcnRzOnt9fTtlW2ldWzBdLmNhbGwocC5leHBvcnRzLGZ1bmN0aW9uKHIpe3ZhciBuPWVbaV1bMV1bcl07cmV0dXJuIG8obnx8cil9LHAscC5leHBvcnRzLHIsZSxuLHQpfXJldHVybiBuW2ldLmV4cG9ydHN9Zm9yKHZhciB1PVwiZnVuY3Rpb25cIj09dHlwZW9mIHJlcXVpcmUmJnJlcXVpcmUsaT0wO2k8dC5sZW5ndGg7aSsrKW8odFtpXSk7cmV0dXJuIG99cmV0dXJuIHJ9KSgpIiwiLyoqXG4gKiBAZmlsZSBTYWxlc2ZvcmNlIFNPQVAgQVBJXG4gKiBAYXV0aG9yIFNoaW5pY2hpIFRvbWl0YSA8c2hpbmljaGkudG9taXRhQGdtYWlsLmNvbT5cbiAqL1xuXG4ndXNlIHN0cmljdCc7XG5cbnZhciBfID0gd2luZG93LmpzZm9yY2UucmVxdWlyZSgnbG9kYXNoL2NvcmUnKTtcbnZhciBqc2ZvcmNlID0gd2luZG93LmpzZm9yY2UucmVxdWlyZSgnLi9jb3JlJyk7XG52YXIgU09BUCA9IHdpbmRvdy5qc2ZvcmNlLnJlcXVpcmUoJy4vc29hcCcpO1xuXG4vKipcbiAqIEFQSSBjbGFzcyBmb3IgUGFydG5lciBTT0FQIGNhbGxcbiAqXG4gKiBAY2xhc3NcbiAqIEBwYXJhbSB7Q29ubmVjdGlvbn0gY29ubiAtIENvbm5lY3Rpb25cbiAqL1xudmFyIFNvYXBBcGkgPSBtb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uKGNvbm4pIHtcbiAgdGhpcy5fY29ubiA9IGNvbm47XG59O1xuXG4vKipcbiAqIENhbGwgU09BUCBBcGkgKFBhcnRuZXIpIGVuZHBvaW50XG4gKiBAcHJpdmF0ZVxuICovXG5Tb2FwQXBpLnByb3RvdHlwZS5faW52b2tlID0gZnVuY3Rpb24obWV0aG9kLCBtZXNzYWdlLCBzY2hlbWEsIGNhbGxiYWNrKSB7XG4gIHZhciBzb2FwRW5kcG9pbnQgPSBuZXcgU09BUCh0aGlzLl9jb25uLCB7XG4gICAgeG1sbnM6IFwidXJuOnBhcnRuZXIuc29hcC5zZm9yY2UuY29tXCIsXG4gICAgZW5kcG9pbnRVcmw6IHRoaXMuX2Nvbm4uaW5zdGFuY2VVcmwgKyBcIi9zZXJ2aWNlcy9Tb2FwL3UvXCIgKyB0aGlzLl9jb25uLnZlcnNpb25cbiAgfSk7XG4gIHJldHVybiBzb2FwRW5kcG9pbnQuaW52b2tlKG1ldGhvZCwgbWVzc2FnZSwgeyByZXN1bHQ6IHNjaGVtYSB9KS50aGVuKGZ1bmN0aW9uKHJlcykge1xuICAgIHJldHVybiByZXMucmVzdWx0O1xuICB9KS50aGVuQ2FsbChjYWxsYmFjayk7XG59O1xuXG5cbi8qICovXG52YXIgU2NoZW1hcyA9IHt9O1xuXG4vKipcbiAqIEB0eXBlZGVmIFNvYXBBcGl+TGVhZENvbnZlcnRcbiAqIEBwcm9wIHtTdHJpbmd9IGNvbnZlcnRlZFN0YXR1cyAtIFN0YXR1cyBvZiBjb252ZXJ0ZWQgbGVhZFxuICogQHByb3Age1N0cmluZ30gbGVhZElkIC0gTGVhZCByZWNvcmQgSWQgdG8gY29udmVydFxuICogQHByb3Age1N0cmluZ30gW2FjY291bnRJZF0gLSBBY2NvdW50IHJlY29yZCBJZCB0byBhc3NpZ24gdGhlIGNvbnZlcnRlZCByZWNvcmRcbiAqIEBwcm9wIHtTdHJpbmd9IFtjb250YWN0SWRdIC0gQ29udGFjdCByZWNvcmQgSWQgdG8gYXNzaWduIHRoZSBjb252ZXJ0ZWQgcmVjb3JkXG4gKiBAcHJvcCB7Qm9vbGVhbn0gW2RvTm90Q3JlYXRlT3Bwb3J0dW5pdHldIC0gVHJ1ZSBpZiB5b3UgZG9uJ3Qgd2FudCB0byBjcmVhdGUgYSBuZXcgb3Bwb3J0dW5pdHlcbiAqIEBwcm9wIHtTdHJpbmd9IFtvcHBvcnR1bml0eU5hbWVdIC0gTmFtZSBvZiBvcHBvcnR1bml0eSB0byBjcmVhdGVcbiAqIEBwcm9wIHtCb29sZWFufSBbb3ZlcndyaXRlTGVhZFNvdXJjZV0gLSBUcnVlIGlmIG92ZXJ3cml0aW5nIGxlYWQgc291cmNlXG4gKiBAcHJvcCB7U3RyaW5nfSBbb3duZXJJZF0gLSBPd25lciBJZFxuICogQHByb3Age0Jvb2xlYW59IFtzZW5kTm90aWZpY2F0aW9uRW1haWxdIC0gVHJ1ZSBpZiBzZW5kIG5vdGlmaWNhdGlvbiBlbWFpbFxuICovXG4vKipcbiAqIEB0eXBlZGVmIFNvYXBBcGl+TGVhZENvbnZlcnRSZXN1bHRcbiAqIEBwcm9wIHtTdHJpbmd9IGxlYWRJZCAtIExlYWQgcmVjb3JkIElkIHRvIGNvbnZlcnRcbiAqIEBwcm9wIHtTdHJpbmd9IFthY2NvdW50SWRdIC0gQWNjb3VudCByZWNvcmQgSWQgb2YgY29udmVydGVkIGxlYWRcbiAqIEBwcm9wIHtTdHJpbmd9IFtjb250YWN0SWRdIC0gQ29udGFjdCByZWNvcmQgSWQgb2YgY29udmVydGVkIGxlYWRcbiAqIEBwcm9wIHtTdHJpbmd9IFtvcHBvcnR1bml0eUlkXSAtIE9wcG9ydHVuaXR5IHJlY29yZCBJZCBjcmVhdGVkIGluIGNvbnZlcnNpb25cbiAqIEBwcm9wIHtCb29sZWFufSBzdWNjZXNzIC0gVHJ1ZSBpZiBzdWNjZXNzZnVsbHkgY29udmVydGVkXG4gKiBAcHJvcCB7QXJyYXkuPE9iamVjdD59IGVycm9ycyAtIEVycm9yXG4gKi9cbi8qKlxuICogQ29udmVydHMgYSBMZWFkIGludG8gYW4gQWNjb3VudCwgQ29udGFjdCwgb3IgKG9wdGlvbmFsbHkpIGFuIE9wcG9ydHVuaXR5LlxuICpcbiAqIEBwYXJhbSB7U29hcEFwaX5MZWFkQ29udmVydHxBcnJheS48U29hcEFwaX5MZWFkQ29udmVydD59IGxlYWRDb252ZXJ0c1xuICogQHBhcmFtIHtDYWxsYmFjay48U29hcEFwaX5MZWFkQ29udmVydFJlc3VsdHxBcnJheS48U29hcEFwaX5MZWFkQ29udmVydFJlc3VsdD4+fSBbY2FsbGJhY2tdIC0gQ2FsbGJhY2sgZnVuY3Rpb25cbiAqIEByZXR1cm5zIHtQcm9taXNlLjxTb2FwQXBpfkxlYWRDb252ZXJ0UmVzdWx0fEFycmF5LjxTb2FwQXBpfkxlYWRDb252ZXJ0UmVzdWx0Pj59XG4gKi9cblNvYXBBcGkucHJvdG90eXBlLmNvbnZlcnRMZWFkID0gZnVuY3Rpb24obGVhZENvbnZlcnRzLCBjYWxsYmFjaykge1xuICB2YXIgc2NoZW1hID0gXy5pc0FycmF5KGxlYWRDb252ZXJ0cykgPyBbIFNjaGVtYXMuTGVhZENvbnZlcnRSZXN1bHQgXSA6IFNjaGVtYXMuTGVhZENvbnZlcnRSZXN1bHQ7XG4gIHJldHVybiB0aGlzLl9pbnZva2UoXCJjb252ZXJ0TGVhZFwiLCB7IGxlYWRDb252ZXJ0czogbGVhZENvbnZlcnRzIH0sIHNjaGVtYSwgY2FsbGJhY2spO1xufTtcblNjaGVtYXMuTGVhZENvbnZlcnRSZXN1bHQgPSB7XG4gIHN1Y2Nlc3M6ICdib29sZWFuJyxcbiAgZXJyb3JzOiBbXSxcbiAgbGVhZElkOiAnc3RyaW5nJyxcbiAgYWNjb3VudElkOiAnc3RyaW5nJyxcbiAgY29udGFjdElkOiAnc3RyaW5nJyxcbiAgb3Bwb3J0dW5pdHlJZDogJ3N0cmluZydcbn07XG5cbi8qKlxuICogQHR5cGVkZWYgU29hcEFwaX5NZXJnZVJlcXVlc3RcbiAqIEBwcm9wIHtPYmplY3R9IG1hc3RlclJlY29yZCAtIFRoZSBtZXJnZSBkZXN0aW5hdGlvbiByZWNvcmRcbiAqIEBwcm9wIHtBcnJheS48U3RyaW5nPn0gcmVjb3JkVG9NZXJnZUlkcyAtIElkcyBvZiByZWNvcmRzIHRvIG1lcmdlXG4gKi9cbi8qKlxuICogQHR5cGVkZWYgU29hcEFwaX5NZXJnZVJlc3VsdFxuICogQHByb3Age0Jvb2xlYW59IHN1Y2Nlc3MgLSBUcnVlIGlmIHN1Y2Nlc3NmdWxseSBtZXJnZWRcbiAqIEBwcm9wIHtBcnJheS48T2JqZWN0Pn0gZXJyb3JzIC0gRXJyb3JcbiAqIEBwcm9wIHtTdHJpbmd9IGlkIC0gSUQgb2YgdGhlIG1hc3RlciByZWNvcmRcbiAqIEBwcm9wIHtBcnJheS48U3RyaW5nPn0gbWVyZ2VkUmVjb3JkSWRzIC0gSUQgb2YgdGhlIHJlY29yZHMgdGhhdCB3ZXJlIG1lcmdlZCBpbnRvIHRoZSBtYXN0ZXIgcmVjb3JkXG4gKiBAcHJvcCB7QXJyYXkuPFN0cmluZz59IHVwZGF0ZWRSZWxhdGVkSWRzIC0gSUQgb2YgYWxsIHJlbGF0ZWQgcmVjb3JkcyB0aGF0IHdlcmUgbW92ZWQgKHJlLXBhcmVudGVkKSBhcyBhIHJlc3VsdCBvZiB0aGUgbWVyZ2VcbiAqL1xuXG4vKipcbiAqIE1lcmdlIHVwIHRvIHRocmVlIHJlY29yZHMgaW50byBvbmVcbiAqXG4gKiBAcGFyYW0ge1NvYXBBcGl+TWVyZ2VSZXF1ZXN0fEFycmF5LjxTb2FwQXBpfk1lcmdlUmVxdWVzdD59IG1lcmdlUmVxdWVzdHNcbiAqIEBwYXJhbSB7Q2FsbGJhY2suPFNvYXBBcGl+TWVyZ2VSZXN1bHR8QXJyYXkuPFNvYXBBcGl+TWVyZ2VSZXN1bHQ+Pn0gW2NhbGxiYWNrXSAtIENhbGxiYWNrIGZ1bmN0aW9uXG4gKiBAcmV0dXJucyB7UHJvbWlzZS48U29hcEFwaX5NZXJnZVJlc3VsdHxBcnJheS48U29hcEFwaX5NZXJnZVJlc3VsdD4+fVxuICovXG5Tb2FwQXBpLnByb3RvdHlwZS5tZXJnZSA9IGZ1bmN0aW9uKG1lcmdlUmVxdWVzdHMsIGNhbGxiYWNrKSB7XG4gIHZhciBzY2hlbWEgPSBfLmlzQXJyYXkobWVyZ2VSZXF1ZXN0cykgPyBbIFNjaGVtYXMuTWVyZ2VSZXN1bHQgXSA6IFNjaGVtYXMuTWVyZ2VSZXN1bHQ7XG4gIHJldHVybiB0aGlzLl9pbnZva2UoXCJtZXJnZVwiLCB7IG1lcmdlUmVxdWVzdHM6IG1lcmdlUmVxdWVzdHMgfSwgc2NoZW1hLCBjYWxsYmFjayk7XG59O1xuU2NoZW1hcy5NZXJnZVJlc3VsdCA9IHtcbiAgc3VjY2VzczogJ2Jvb2xlYW4nLFxuICBlcnJvcnM6IFtdLFxuICBpZDogJ3N0cmluZycsXG4gIG1lcmdlZFJlY29yZElkczogWydzdHJpbmcnXSxcbiAgdXBkYXRlZFJlbGF0ZWRJZHM6IFsnc3RyaW5nJ11cbn07XG5cblxuLyoqXG4gKiBAdHlwZWRlZiBTb2FwQXBpfkVtcHR5UmVjeWNsZUJpblJlc3VsdFxuICogQHByb3Age1N0cmluZ30gaWQgLSBJRCBvZiBhbiBzT2JqZWN0IHRoYXQgeW91IGF0dGVtcHRlZCB0byBkZWxldGUgZnJvbSB0aGUgUmVjeWNsZSBCaW5cbiAqIEBwcm9wIHtCb29sZWFufSBzdWNjZXNzIC0gV2hldGhlciB0aGUgY2FsbCBzdWNjZWVkZWQgKHRydWUpIG9yIG5vdCAoZmFsc2UpIGZvciB0aGlzIHJlY29yZFxuICogQHByb3Age0FycmF5LjxPYmplY3Q+fSBlcnJvcnMgLSBFcnJvcnNcbiAqL1xuLyoqXG4gKiBEZWxldGUgcmVjb3JkcyBmcm9tIHRoZSByZWN5Y2xlIGJpbiBpbW1lZGlhdGVseVxuICpcbiAqIEBwYXJhbSB7QXJyYXkuPFN0cmluZz59IGlkcyAtIFJlY29yZCBpZHMgdG8gZW1wdHkgZnJvbSByZWN5Y2xlIGJpblxuICogQHBhcmFtIHtDYWxsYmFjay48QXJyYXkuPFNvYXBBcGl+RW1wdHlSZWN5Y2xlQmluUmVzdWx0Pj59IFtjYWxsYmFja10gLSBDYWxsYmFjayBmdW5jdGlvblxuICogQHJldHVybnMge1Byb21pc2UuPEFycmF5LjxTb2FwQXBpfkVtcHR5UmVjeWNsZUJpblJlc3VsdD4+fVxuICovXG5Tb2FwQXBpLnByb3RvdHlwZS5lbXB0eVJlY3ljbGVCaW4gPSBmdW5jdGlvbihpZHMsIGNhbGxiYWNrKSB7XG4gIHJldHVybiB0aGlzLl9pbnZva2UoXCJlbXB0eVJlY3ljbGVCaW5cIiwgeyBpZHM6IGlkcyB9LCBbIFNjaGVtYXMuRW1wdHlSZWN5Y2xlQmluUmVzdWx0IF0sIGNhbGxiYWNrKTtcbn07XG5TY2hlbWFzLkVtcHR5UmVjeWNsZUJpblJlc3VsdCA9IHtcbiAgaWQ6ICdzdHJpbmcnLFxuICBzdWNjZXNzOiAnYm9vbGVhbicsXG4gIGVycm9yczogW11cbn07XG5cblxuLyoqXG4gKiBAdHlwZWRlZiBTb2FwQXBpfkRlc2NyaWJlVGFiU2V0UmVzdWx0XG4gKiBAcHJvcCB7U3RyaW5nfSBsYWJlbCAtIFRoZSBkaXNwbGF5IGxhYmVsIGZvciB0aGlzIHN0YW5kYXJkIG9yIGN1c3RvbSBhcHBcbiAqIEBwcm9wIHtTdHJpbmd9IGxvZ29VcmwgLSBBIGZ1bGx5IHF1YWxpZmllZCBVUkwgdG8gdGhlIGxvZ28gaW1hZ2UgYXNzb2NpYXRlZCB3aXRoIHRoZSBzdGFuZGFyZCBvciBjdXN0b20gYXBwXG4gKiBAcHJvcCB7U3RyaW5nfSBuYW1lc3BhY2UgLSBOYW1lc3BhY2Ugb2YgYXBwbGljYXRpb24gcGFja2FnZVxuICogQHByb3Age0Jvb2xlYW59IHNlbGVjdGVkIC0gSWYgdHJ1ZSwgdGhlbiB0aGlzIHN0YW5kYXJkIG9yIGN1c3RvbSBhcHAgaXMgdGhlIHVzZXLigJlzIGN1cnJlbnRseSBzZWxlY3RlZCBhcHBcbiAqIEBwcm9wIHtBcnJheS48U29hcEFwaX5EZXNjcmliZVRhYj59IHRhYnMgLSBBbiBhcnJheSBvZiB0YWJzIHRoYXQgYXJlIGRpc3BsYXllZCBmb3IgdGhlIHNwZWNpZmllZCBzdGFuZGFyZCBhcHAgb3IgY3VzdG9tIGFwcFxuICovXG4vKipcbiAqIEB0eXBlZGVmIFNvYXBBcGl+RGVzY3JpYmVUYWJcbiAqIEBwcm9wIHtBcnJheS48T2JqZWN0Pn0gY29sb3JzIC0gQXJyYXkgb2YgY29sb3IgaW5mb3JtYXRpb24gdXNlZCBmb3IgYSB0YWJcbiAqIEBwcm9wIHtCb29sZWFufSBjdXN0b20gLSB0cnVlIGlmIHRoaXMgaXMgYSBjdXN0b20gdGFiXG4gKiBAcHJvcCB7U3RyaW5nfSBpY29uVXJsIC0gVGhlIFVSTCBmb3IgdGhlIG1haW4gMzIgeCAzMiBwaXhlbCBpY29uIGZvciBhIHRhYlxuICogQHByb3Age0FycmF5LjxPYmplY3Q+fSBpY29ucyAtIEFycmF5IG9mIGljb24gaW5mb3JtYXRpb24gdXNlZCBmb3IgYSB0YWJcbiAqIEBwcm9wIHtTdHJpbmd9IGxhYmVsIC0gVGhlIGRpc3BsYXkgbGFiZWwgZm9yIHRoaXMgdGFiXG4gKiBAcHJvcCB7U3RyaW5nfSBtaW5pSWNvblVybCAtIFRoZSBVUkwgZm9yIHRoZSAxNiB4IDE2IHBpeGVsIGljb24gdGhhdCByZXByZXNlbnRzIGEgdGFiXG4gKiBAcHJvcCB7U3RyaW5nfSBuYW1lIC0gVGhlIEFQSSBuYW1lIG9mIHRoZSB0YWJcbiAqIEBwcm9wIHtTdHJpbmd9IHNvYmplY3ROYW1lIC0gVGhlIG5hbWUgb2YgdGhlIHNPYmplY3QgdGhhdCBpcyBwcmltYXJpbHkgZGlzcGxheWVkIG9uIHRoaXMgdGFiXG4gKiBAcHJvcCB7U3RyaW5nfSB1cmwgLSBBIGZ1bGx5IHF1YWxpZmllZCBVUkwgZm9yIHZpZXdpbmcgdGhpcyB0YWJcbiAqL1xuLyoqXG4gKiBSZXR1cm5zIGluZm9ybWF0aW9uIGFib3V0IHRoZSBzdGFuZGFyZCBhbmQgY3VzdG9tIGFwcHMgYXZhaWxhYmxlIHRvIHRoZSBsb2dnZWQtaW4gdXNlclxuICpcbiAqIEBwYXJhbSB7Q2FsbGJhY2suPEFycmF5LjxTb2FwQXBpfkRlc2NyaWJlVGFiU2V0UmVzdWx0Pj59IFtjYWxsYmFja10gLSBDYWxsYmFjayBmdW5jdGlvblxuICogQHJldHVybnMge1Byb21pc2UuPEFycmF5LjxTb2FwQXBpfkRlc2NyaWJlVGFiU2V0UmVzdWx0Pj59XG4gKi9cblNvYXBBcGkucHJvdG90eXBlLmRlc2NyaWJlVGFicyA9IGZ1bmN0aW9uKGNhbGxiYWNrKSB7XG4gIHJldHVybiB0aGlzLl9pbnZva2UoXCJkZXNjcmliZVRhYnNcIiwge30sIFsgU2NoZW1hcy5EZXNjcmliZVRhYlNldFJlc3VsdCBdLCBjYWxsYmFjayk7XG59O1xuU2NoZW1hcy5EZXNjcmliZVRhYlNldFJlc3VsdCA9IHtcbiAgbGFiZWw6ICdzdHJpbmcnLFxuICBsb2dvVXJsOiAnc3RyaW5nJyxcbiAgbmFtZXNwYWNlOiAnc3RyaW5nJyxcbiAgc2VsZWN0ZWQ6ICdib29sZWFuJyxcbiAgdGFiczogW3tcbiAgICBjb2xvcnM6IFt7XG4gICAgICB0aGVtZTogJ3N0cmluZycsXG4gICAgICBjb2xvcjogJ3N0cmluZycsXG4gICAgICBjb250ZXh0OiAnc3RyaW5nJ1xuICAgIH1dLFxuICAgIGljb25Vcmw6ICdzdHJpbmcnLFxuICAgIGljb25zOiBbe1xuICAgICAgdGhlbWU6ICdzdHJpbmcnLFxuICAgICAgaGVpZ2h0OiAnbnVtYmVyJyxcbiAgICAgIHdpZHRoOiAnbnVtYmVyJyxcbiAgICAgIHVybDogJ3N0cmluZycsXG4gICAgICBjb250ZW50VHlwZTogJ3N0cmluZydcbiAgICB9XSxcbiAgICBsYWJlbDogJ3N0cmluZycsXG4gICAgY3VzdG9tOiAnYm9vbGVhbicsXG4gICAgbWluaUljb25Vcmw6ICdzdHJpbmcnLFxuICAgIG5hbWU6ICdzdHJpbmcnLFxuICAgIHNvYmplY3ROYW1lOiAnc3RyaW5nJyxcbiAgICB1cmw6ICdzdHJpbmcnXG4gIH1dXG59O1xuXG4vKipcbiAqIFJldHJpZXZlcyB0aGUgY3VycmVudCBzeXN0ZW0gdGltZXN0YW1wIChDb29yZGluYXRlZCBVbml2ZXJzYWwgVGltZSAoVVRDKSB0aW1lIHpvbmUpIGZyb20gdGhlIEFQSVxuICpcbiAqIEB0eXBlZGVmIFNvYXBBcGl+U2VydmVyVGltZXN0YW1wUmVzdWx0XG4gKiBAcHJvcCB7U3RyaW5nfSB0aW1lc3RhbXAgLSBUaW1lc3RhbXBcbiAqL1xuLyoqXG4gKiBAcGFyYW0ge0NhbGxiYWNrLjxTb2FwQXBpflNlcnZlclRpbWVzdGFtcFJlc3VsdD59IFtjYWxsYmFja10gLSBDYWxsYmFjayBmdW5jdGlvblxuICogQHJldHVybnMge1Byb21pc2UuPFNvYXBBcGl+U2VydmVyVGltZXN0YW1wUmVzdWx0Pn1cbiAqL1xuU29hcEFwaS5wcm90b3R5cGUuZ2V0U2VydmVyVGltZXN0YW1wID0gZnVuY3Rpb24oY2FsbGJhY2spIHtcbiAgcmV0dXJuIHRoaXMuX2ludm9rZShcImdldFNlcnZlclRpbWVzdGFtcFwiLCB7fSwgU2NoZW1hcy5HZXRTZXJ2ZXJUaW1lc3RhbXBSZXN1bHQsIGNhbGxiYWNrKTtcbn07XG5TY2hlbWFzLkdldFNlcnZlclRpbWVzdGFtcFJlc3VsdCA9IHtcbiAgdGltZXN0YW1wOiAnc3RyaW5nJ1xufTtcblxuLyoqXG4gKiBAdHlwZWRlZiBTb2FwQXBpflVzZXJJbmZvUmVzdWx0XG4gKiBAcHJvcCB7Qm9vbGVhbn0gYWNjZXNzaWJpbGl0eU1vZGVcbiAqIEBwcm9wIHtTdHJpbmd9IGN1cnJlbmN5U3ltYm9sXG4gKiBAcHJvcCB7TnVtYmVyfSBvcmdBdHRhY2htZW50RmlsZVNpemVMaW1pdFxuICogQHByb3Age1N0cmluZ30gb3JnRGVmYXVsdEN1cnJlbmN5SXNvQ29kZVxuICogQHByb3Age1N0cmluZ30gb3JnRGlzYWxsb3dIdG1sQXR0YWNobWVudHNcbiAqIEBwcm9wIHtCb29sZWFufSBvcmdIYXNQZXJzb25BY2NvdW50c1xuICogQHByb3Age1N0cmluZ30gb3JnYW5pemF0aW9uSWRcbiAqIEBwcm9wIHtCb29sZWFufSBvcmdhbml6YXRpb25NdWx0aUN1cnJlbmN5XG4gKiBAcHJvcCB7U3RyaW5nfSBvcmdhbml6YXRpb25OYW1lXG4gKiBAcHJvcCB7U3RyaW5nfSBwcm9maWxlSWRcbiAqIEBwcm9wIHtTdHJpbmd9IHJvbGVJZFxuICogQHByb3Age051bWJlcn0gc2Vzc2lvblNlY29uZHNWYWxpZFxuICogQHByb3Age1N0cmluZ30gdXNlckRlZmF1bHRDdXJyZW5jeUlzb0NvZGVcbiAqIEBwcm9wIHtTdHJpbmd9IHVzZXJFbWFpbFxuICogQHByb3Age1N0cmluZ30gdXNlckZ1bGxOYW1lXG4gKiBAcHJvcCB7U3RyaW5nfSB1c2VySWRcbiAqIEBwcm9wIHtTdHJpbmd9IHVzZXJMYW5ndWFnZVxuICogQHByb3Age1N0cmluZ30gdXNlckxvY2FsZVxuICogQHByb3Age1N0cmluZ30gdXNlck5hbWVcbiAqIEBwcm9wIHtTdHJpbmd9IHVzZXJUaW1lWm9uZVxuICogQHByb3Age1N0cmluZ30gdXNlclR5cGVcbiAqIEBwcm9wIHtTdHJpbmd9IHVzZXJVaVNraW5cbiAqL1xuLyoqXG4gKiBSZXRyaWV2ZXMgcGVyc29uYWwgaW5mb3JtYXRpb24gZm9yIHRoZSB1c2VyIGFzc29jaWF0ZWQgd2l0aCB0aGUgY3VycmVudCBzZXNzaW9uXG4gKlxuICogQHBhcmFtIHtDYWxsYmFjay48U29hcEFwaX5Vc2VySW5mb1Jlc3VsdD59IFtjYWxsYmFja10gLSBDYWxsYmFjayBmdW5jdGlvblxuICogQHJldHVybnMge1Byb21pc2UuPFNvYXBBcGl+VXNlckluZm9SZXN1bHQ+fVxuICovXG5Tb2FwQXBpLnByb3RvdHlwZS5nZXRVc2VySW5mbyA9IGZ1bmN0aW9uKGNhbGxiYWNrKSB7XG4gIHJldHVybiB0aGlzLl9pbnZva2UoXCJnZXRVc2VySW5mb1wiLCB7fSwgU2NoZW1hcy5HZXRVc2VySW5mb1Jlc3VsdCwgY2FsbGJhY2spO1xufTtcblNjaGVtYXMuR2V0VXNlckluZm9SZXN1bHQgPSB7XG4gIGFjY2Vzc2liaWxpdHlNb2RlOiAnYm9vbGVhbicsXG4gIGN1cnJlbmN5U3ltYm9sOiAnc3RyaW5nJyxcbiAgb3JnQXR0YWNobWVudEZpbGVTaXplTGltaXQ6ICdudW1iZXInLFxuICBvcmdEZWZhdWx0Q3VycmVuY3lJc29Db2RlOiAnc3RyaW5nJyxcbiAgb3JnRGlzYWxsb3dIdG1sQXR0YWNobWVudHM6ICdib29sZWFuJyxcbiAgb3JnSGFzUGVyc29uQWNjb3VudHM6ICdib29sZWFuJyxcbiAgb3JnYW5pemF0aW9uSWQ6ICdzdHJpbmcnLFxuICBvcmdhbml6YXRpb25NdWx0aUN1cnJlbmN5OiAnYm9vbGVhbicsXG4gIG9yZ2FuaXphdGlvbk5hbWU6ICdzdHJpbmcnLFxuICBwcm9maWxlSWQ6ICdzdHJpbmcnLFxuICByb2xlSWQ6ICdzdHJpbmcnLFxuICBzZXNzaW9uU2Vjb25kc1ZhbGlkOiAnbnVtYmVyJyxcbiAgdXNlckRlZmF1bHRDdXJyZW5jeUlzb0NvZGU6ICdzdHJpbmcnLFxuICB1c2VyRW1haWw6ICdzdHJpbmcnLFxuICB1c2VyRnVsbE5hbWU6ICdzdHJpbmcnLFxuICB1c2VySWQ6ICdzdHJpbmcnLFxuICB1c2VyTGFuZ3VhZ2U6ICdzdHJpbmcnLFxuICB1c2VyTG9jYWxlOiAnc3RyaW5nJyxcbiAgdXNlck5hbWU6ICdzdHJpbmcnLFxuICB1c2VyVGltZVpvbmU6ICdzdHJpbmcnLFxuICB1c2VyVHlwZTogJ3N0cmluZycsXG4gIHVzZXJVaVNraW46ICdzdHJpbmcnXG59O1xuXG4vKipcbiAqIFNldHMgdGhlIHNwZWNpZmllZCB1c2Vy4oCZcyBwYXNzd29yZCB0byB0aGUgc3BlY2lmaWVkIHZhbHVlXG4gKlxuICogQHBhcmFtIHtTdHJpbmd9IHVzZXJJZCAtIFVzZXIgSWQgdG8gc2V0IHBhc3N3b3JkXG4gKiBAcGFyYW0ge1N0cmluZ30gcGFzc3dvcmQgLSBOZXcgcGFzc3dvcmRcbiAqIEBwYXJhbSB7Q2FsbGJhY2suPFN0cmluZz59IFtjYWxsYmFja10gLSBDYWxsYmFjayBmdW5jdGlvblxuICogQHJldHVybnMge1Byb21pc2UuPFN0cmluZz59XG4gKi9cblNvYXBBcGkucHJvdG90eXBlLnNldFBhc3N3b3JkID0gZnVuY3Rpb24odXNlcklkLCBwYXNzd29yZCwgY2FsbGJhY2spIHtcbiAgcmV0dXJuIHRoaXMuX2ludm9rZShcInNldFBhc3N3b3JkXCIsIHsgdXNlcklkOiB1c2VySWQsIHBhc3N3b3JkOiBwYXNzd29yZCB9LCBjYWxsYmFjayk7XG59O1xuXG4vKipcbiAqIEB0eXBlZGVmIFNvYXBBcGl+UmVzZXRQYXNzd29yZFJlc3VsdFxuICogQHByb3Age1N0cmluZ30gcGFzc3dvcmRcbiAqL1xuLyoqXG4gKiBSZXNldHMgdGhlIHNwZWNpZmllZCB1c2Vy4oCZcyBwYXNzd29yZFxuICpcbiAqIEBwYXJhbSB7U3RyaW5nfSB1c2VySWQgLSBVc2VyIElkIHRvIHNldCBwYXNzd29yZFxuICogQHBhcmFtIHtTdHJpbmd9IHBhc3N3b3JkIC0gTmV3IHBhc3N3b3JkXG4gKiBAcGFyYW0ge0NhbGxiYWNrLjxTb2FwQXBpflJlc2V0UGFzc3dvcmRSZXN1bHQ+fSBbY2FsbGJhY2tdIC0gQ2FsbGJhY2sgZnVuY3Rpb25cbiAqIEByZXR1cm5zIHtQcm9taXNlLjxTb2FwQXBpflJlc2V0UGFzc3dvcmRSZXN1bHQ+fVxuICovXG5Tb2FwQXBpLnByb3RvdHlwZS5yZXNldFBhc3N3b3JkID0gZnVuY3Rpb24odXNlcklkLCBjYWxsYmFjaykge1xuICByZXR1cm4gdGhpcy5faW52b2tlKFwicmVzZXRQYXNzd29yZFwiLCB7IHVzZXJJZDogdXNlcklkIH0sIGNhbGxiYWNrKTtcbn07XG5cbi8qKlxuICogQWRkcyBvbmUgb3IgbW9yZSBuZXcgcmVjb3JkcyB0byB5b3VyIG9yZ2FuaXphdGlvbuKAmXMgZGF0YVxuICpcbiAqIEBwYXJhbSB7QXJyYXkuPE9iamVjdD59IHNPYmplY3RzIC0gUmVjb3JkcyB0byBpbnNlcnRcbiAqIEBwYXJhbSB7Q2FsbGJhY2suPFNvYXBBcGl+U2F2ZVJlc3VsdD59IFtjYWxsYmFja10gLSBDYWxsYmFjayBmdW5jdGlvblxuICogQHJldHVybnMge1Byb21pc2UuPFNvYXBBcGl+U2F2ZVJlc3VsdD59XG4gKi9cblNvYXBBcGkucHJvdG90eXBlLmNyZWF0ZSA9IGZ1bmN0aW9uKHNPYmplY3RzLCBjYWxsYmFjaykge1xuICB2YXIgc2NoZW1hID0gXy5pc0FycmF5KHNPYmplY3RzKSA/IFsgU2NoZW1hcy5TYXZlUmVzdWx0IF0gOiBTY2hlbWFzLlNhdmVSZXN1bHQ7XG4gIHZhciBhcmdzID0ge1xuICAgICdAeG1sbnMnIDogJ3VybjpwYXJ0bmVyLnNvYXAuc2ZvcmNlLmNvbScsXG4gICAgJ0B4bWxuczpuczEnIDogJ3NvYmplY3QucGFydG5lci5zb2FwLnNmb3JjZS5jb20nLFxuICAgICduczE6c09iamVjdHMnIDogc09iamVjdHNcbiAgfTtcbiAgcmV0dXJuIHRoaXMuX2ludm9rZShcImNyZWF0ZVwiLCBhcmdzLCBzY2hlbWEsIGNhbGxiYWNrKTtcbn07XG5cbi8qKlxuICogVXBkYXRlcyBvbmUgb3IgbW9yZSBleGlzdGluZyByZWNvcmRzIGluIHlvdXIgb3JnYW5pemF0aW9u4oCZcyBkYXRhLlxuICpcbiAqIEBwYXJhbSB7QXJyYXkuPE9iamVjdD59IHNPYmplY3RzIC0gUmVjb3JkcyB0byB1cGRhdGVcbiAqIEBwYXJhbSB7Q2FsbGJhY2suPFNvYXBBcGl+U2F2ZVJlc3VsdD59IFtjYWxsYmFja10gLSBDYWxsYmFjayBmdW5jdGlvblxuICogQHJldHVybnMge1Byb21pc2UuPFNvYXBBcGl+U2F2ZVJlc3VsdD59XG4gKi9cblNvYXBBcGkucHJvdG90eXBlLnVwZGF0ZSA9IGZ1bmN0aW9uKHNPYmplY3RzLCBjYWxsYmFjaykge1xuICB2YXIgc2NoZW1hID0gXy5pc0FycmF5KHNPYmplY3RzKSA/IFsgU2NoZW1hcy5TYXZlUmVzdWx0IF0gOiBTY2hlbWFzLlNhdmVSZXN1bHQ7XG4gIHZhciBhcmdzID0ge1xuICAgICdAeG1sbnMnIDogJ3VybjpwYXJ0bmVyLnNvYXAuc2ZvcmNlLmNvbScsXG4gICAgJ0B4bWxuczpuczEnIDogJ3NvYmplY3QucGFydG5lci5zb2FwLnNmb3JjZS5jb20nLFxuICAgICduczE6c09iamVjdHMnIDogc09iamVjdHNcbiAgfTtcbiAgcmV0dXJuIHRoaXMuX2ludm9rZShcInVwZGF0ZVwiLCBhcmdzLCBzY2hlbWEsIGNhbGxiYWNrKTtcbn07XG5cblNjaGVtYXMuU2F2ZVJlc3VsdCA9IHtcbiAgc3VjY2VzczogJ2Jvb2xlYW4nLFxuICBlcnJvcnM6IFtdLFxuICBpZDogJ3N0cmluZydcbn07XG5cbi8qKlxuICogQ3JlYXRlcyBuZXcgcmVjb3JkcyBhbmQgdXBkYXRlcyBleGlzdGluZyByZWNvcmRzIGluIHlvdXIgb3JnYW5pemF0aW9u4oCZcyBkYXRhLlxuICpcbiAqIEBwYXJhbSB7QXJyYXkuPE9iamVjdD59IHNPYmplY3RzIC0gUmVjb3JkcyB0byB1cHNlcnRcbiAqIEBwYXJhbSB7Q2FsbGJhY2suPFNvYXBBcGl+VXBzZXJ0UmVzdWx0Pn0gW2NhbGxiYWNrXSAtIENhbGxiYWNrIGZ1bmN0aW9uXG4gKiBAcmV0dXJucyB7UHJvbWlzZS48U29hcEFwaX5VcHNlcnRSZXN1bHQ+fVxuICovXG5Tb2FwQXBpLnByb3RvdHlwZS51cHNlcnQgPSBmdW5jdGlvbihleHRlcm5hbElkRmllbGROYW1lLCBzT2JqZWN0cywgY2FsbGJhY2spIHtcbiAgdmFyIHNjaGVtYSA9IF8uaXNBcnJheShzT2JqZWN0cykgPyBbIFNjaGVtYXMuVXBzZXJ0UmVzdWx0IF0gOiBTY2hlbWFzLlVwc2VydFJlc3VsdDtcbiAgdmFyIGFyZ3MgPSB7XG4gICAgJ0B4bWxucycgOiAndXJuOnBhcnRuZXIuc29hcC5zZm9yY2UuY29tJyxcbiAgICAnQHhtbG5zOm5zMScgOiAnc29iamVjdC5wYXJ0bmVyLnNvYXAuc2ZvcmNlLmNvbScsXG4gICAgJ25zMTpleHRlcm5hbElERmllbGROYW1lJyA6IGV4dGVybmFsSWRGaWVsZE5hbWUsXG4gICAgJ25zMTpzT2JqZWN0cycgOiBzT2JqZWN0c1xuICB9O1xuICByZXR1cm4gdGhpcy5faW52b2tlKFwidXBzZXJ0XCIsIGFyZ3MsIHNjaGVtYSwgY2FsbGJhY2spO1xufTtcblxuU2NoZW1hcy5VcHNlcnRSZXN1bHQgPSB7XG4gIGNyZWF0ZWQ6ICdib29sZWFuJyxcbiAgc3VjY2VzczogJ2Jvb2xlYW4nLFxuICBlcnJvcnM6IFtdLFxuICBpZDogJ3N0cmluZydcbn07XG5cbi8qKlxuICogRGVsZXRlcyBvbmUgb3IgbW9yZSByZWNvcmRzIGZyb20geW91ciBvcmdhbml6YXRpb27igJlzIGRhdGFcbiAqXG4gKiBAcGFyYW0ge0FycmF5LjxPYmplY3Q+fSBpZHMgLSBJZCBvZiByZWNvcmRzIHRvIGRlbGV0ZVxuICogQHBhcmFtIHtDYWxsYmFjay48U29hcEFwaX5EZWxldGVSZXN1bHQ+fSBbY2FsbGJhY2tdIC0gQ2FsbGJhY2sgZnVuY3Rpb25cbiAqIEByZXR1cm5zIHtQcm9taXNlLjxTb2FwQXBpfkRlbGV0ZVJlc3VsdD59XG4gKi9cblNvYXBBcGkucHJvdG90eXBlLmRlbGV0ZSA9IGZ1bmN0aW9uKGlkcywgY2FsbGJhY2spIHtcbiAgdmFyIHNjaGVtYSA9IF8uaXNBcnJheShpZHMpID8gWyBTY2hlbWFzLkRlbGV0ZVJlc3VsdCBdIDogU2NoZW1hcy5EZWxldGVSZXN1bHQ7XG4gIHZhciBhcmdzID0ge1xuICAgICdAeG1sbnMnIDogJ3VybjpwYXJ0bmVyLnNvYXAuc2ZvcmNlLmNvbScsXG4gICAgJ0B4bWxuczpuczEnIDogJ3NvYmplY3QucGFydG5lci5zb2FwLnNmb3JjZS5jb20nLFxuICAgICduczE6aWRzJyA6IGlkc1xuICB9O1xuICByZXR1cm4gdGhpcy5faW52b2tlKFwiZGVsZXRlXCIsIGFyZ3MsIHNjaGVtYSwgY2FsbGJhY2spO1xufTtcblxuU2NoZW1hcy5EZWxldGVSZXN1bHQgPSB7XG4gIHN1Y2Nlc3M6ICdib29sZWFuJyxcbiAgZXJyb3JzOiBbXSxcbiAgaWQ6ICdzdHJpbmcnXG59O1xuXG5cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAqIFJlZ2lzdGVyIGhvb2sgaW4gY29ubmVjdGlvbiBpbnN0YW50aWF0aW9uIGZvciBkeW5hbWljYWxseSBhZGRpbmcgdGhpcyBBUEkgbW9kdWxlIGZlYXR1cmVzXG4gKi9cbmpzZm9yY2Uub24oJ2Nvbm5lY3Rpb246bmV3JywgZnVuY3Rpb24oY29ubikge1xuICBjb25uLnNvYXAgPSBuZXcgU29hcEFwaShjb25uKTtcbn0pO1xuXG5cbm1vZHVsZS5leHBvcnRzID0gU29hcEFwaTtcbiJdfQ==
@@ -1,2 +0,0 @@
1
- !function(e){var r;"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define([],e):(r=(r=(r=(r="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:this).jsforce||(r.jsforce={})).modules||(r.modules={})).api||(r.api={})).Soap=e()}(function(){return function n(s,o,i){function u(r,e){if(!o[r]){if(!s[r]){var t="function"==typeof require&&require;if(!e&&t)return t(r,!0);if(a)return a(r,!0);throw(t=new Error("Cannot find module '"+r+"'")).code="MODULE_NOT_FOUND",t}t=o[r]={exports:{}},s[r][0].call(t.exports,function(e){return u(s[r][1][e]||e)},t,t.exports,n,s,o,i)}return o[r].exports}for(var a="function"==typeof require&&require,e=0;e<i.length;e++)u(i[e]);return u}({1:[function(e,r,t){"use strict";var s=window.jsforce.require("lodash/core"),n=window.jsforce.require("./core"),o=window.jsforce.require("./soap"),i=r.exports=function(e){this._conn=e};i.prototype._invoke=function(e,r,t,n){return new o(this._conn,{xmlns:"urn:partner.soap.sforce.com",endpointUrl:this._conn.instanceUrl+"/services/Soap/u/"+this._conn.version}).invoke(e,r,{result:t}).then(function(e){return e.result}).thenCall(n)};var u={};i.prototype.convertLead=function(e,r){var t=s.isArray(e)?[u.LeadConvertResult]:u.LeadConvertResult;return this._invoke("convertLead",{leadConverts:e},t,r)},u.LeadConvertResult={success:"boolean",errors:[],leadId:"string",accountId:"string",contactId:"string",opportunityId:"string"},i.prototype.merge=function(e,r){var t=s.isArray(e)?[u.MergeResult]:u.MergeResult;return this._invoke("merge",{mergeRequests:e},t,r)},u.MergeResult={success:"boolean",errors:[],id:"string",mergedRecordIds:["string"],updatedRelatedIds:["string"]},i.prototype.emptyRecycleBin=function(e,r){return this._invoke("emptyRecycleBin",{ids:e},[u.EmptyRecycleBinResult],r)},u.EmptyRecycleBinResult={id:"string",success:"boolean",errors:[]},i.prototype.describeTabs=function(e){return this._invoke("describeTabs",{},[u.DescribeTabSetResult],e)},u.DescribeTabSetResult={label:"string",logoUrl:"string",namespace:"string",selected:"boolean",tabs:[{colors:[{theme:"string",color:"string",context:"string"}],iconUrl:"string",icons:[{theme:"string",height:"number",width:"number",url:"string",contentType:"string"}],label:"string",custom:"boolean",miniIconUrl:"string",name:"string",sobjectName:"string",url:"string"}]},i.prototype.getServerTimestamp=function(e){return this._invoke("getServerTimestamp",{},u.GetServerTimestampResult,e)},u.GetServerTimestampResult={timestamp:"string"},i.prototype.getUserInfo=function(e){return this._invoke("getUserInfo",{},u.GetUserInfoResult,e)},u.GetUserInfoResult={accessibilityMode:"boolean",currencySymbol:"string",orgAttachmentFileSizeLimit:"number",orgDefaultCurrencyIsoCode:"string",orgDisallowHtmlAttachments:"boolean",orgHasPersonAccounts:"boolean",organizationId:"string",organizationMultiCurrency:"boolean",organizationName:"string",profileId:"string",roleId:"string",sessionSecondsValid:"number",userDefaultCurrencyIsoCode:"string",userEmail:"string",userFullName:"string",userId:"string",userLanguage:"string",userLocale:"string",userName:"string",userTimeZone:"string",userType:"string",userUiSkin:"string"},i.prototype.setPassword=function(e,r,t){return this._invoke("setPassword",{userId:e,password:r},t)},i.prototype.resetPassword=function(e,r){return this._invoke("resetPassword",{userId:e},r)},i.prototype.create=function(e,r){var t=s.isArray(e)?[u.SaveResult]:u.SaveResult,e={"@xmlns":"urn:partner.soap.sforce.com","@xmlns:ns1":"sobject.partner.soap.sforce.com","ns1:sObjects":e};return this._invoke("create",e,t,r)},i.prototype.update=function(e,r){var t=s.isArray(e)?[u.SaveResult]:u.SaveResult,e={"@xmlns":"urn:partner.soap.sforce.com","@xmlns:ns1":"sobject.partner.soap.sforce.com","ns1:sObjects":e};return this._invoke("update",e,t,r)},u.SaveResult={success:"boolean",errors:[],id:"string"},i.prototype.upsert=function(e,r,t){var n=s.isArray(r)?[u.UpsertResult]:u.UpsertResult,r={"@xmlns":"urn:partner.soap.sforce.com","@xmlns:ns1":"sobject.partner.soap.sforce.com","ns1:externalIDFieldName":e,"ns1:sObjects":r};return this._invoke("upsert",r,n,t)},u.UpsertResult={created:"boolean",success:"boolean",errors:[],id:"string"},i.prototype.delete=function(e,r){var t=s.isArray(e)?[u.DeleteResult]:u.DeleteResult,e={"@xmlns":"urn:partner.soap.sforce.com","@xmlns:ns1":"sobject.partner.soap.sforce.com","ns1:ids":e};return this._invoke("delete",e,t,r)},u.DeleteResult={success:"boolean",errors:[],id:"string"},n.on("connection:new",function(e){e.soap=new i(e)}),r.exports=i},{}]},{},[1])(1)});
2
- //# sourceMappingURL=jsforce-api-soap.min.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["node_modules/browser-pack/_prelude.js","lib/api/soap.js"],"names":["f","g","exports","module","define","amd","window","global","self","this","jsforce","modules","api","Soap","r","e","n","t","o","i","c","require","u","a","Error","code","p","call","length","1","_","SOAP","SoapApi","conn","_conn","prototype","_invoke","method","message","schema","callback","xmlns","endpointUrl","instanceUrl","version","invoke","result","then","res","thenCall","Schemas","convertLead","leadConverts","isArray","LeadConvertResult","success","errors","leadId","accountId","contactId","opportunityId","merge","mergeRequests","MergeResult","id","mergedRecordIds","updatedRelatedIds","emptyRecycleBin","ids","EmptyRecycleBinResult","describeTabs","DescribeTabSetResult","label","logoUrl","namespace","selected","tabs","colors","theme","color","context","iconUrl","icons","height","width","url","contentType","custom","miniIconUrl","name","sobjectName","getServerTimestamp","GetServerTimestampResult","timestamp","getUserInfo","GetUserInfoResult","accessibilityMode","currencySymbol","orgAttachmentFileSizeLimit","orgDefaultCurrencyIsoCode","orgDisallowHtmlAttachments","orgHasPersonAccounts","organizationId","organizationMultiCurrency","organizationName","profileId","roleId","sessionSecondsValid","userDefaultCurrencyIsoCode","userEmail","userFullName","userId","userLanguage","userLocale","userName","userTimeZone","userType","userUiSkin","setPassword","password","resetPassword","create","sObjects","SaveResult","args","@xmlns","@xmlns:ns1","ns1:sObjects","update","upsert","externalIdFieldName","UpsertResult","ns1:externalIDFieldName","created","delete","DeleteResult","ns1:ids","on","soap"],"mappings":"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","file":"jsforce-api-soap.min.js","sourcesContent":["(function(){function r(e,n,t){function o(i,f){if(!n[i]){if(!e[i]){var c=\"function\"==typeof require&&require;if(!f&&c)return c(i,!0);if(u)return u(i,!0);var a=new Error(\"Cannot find module '\"+i+\"'\");throw a.code=\"MODULE_NOT_FOUND\",a}var p=n[i]={exports:{}};e[i][0].call(p.exports,function(r){var n=e[i][1][r];return o(n||r)},p,p.exports,r,e,n,t)}return n[i].exports}for(var u=\"function\"==typeof require&&require,i=0;i<t.length;i++)o(t[i]);return o}return r})()","/**\n * @file Salesforce SOAP API\n * @author Shinichi Tomita <shinichi.tomita@gmail.com>\n */\n\n'use strict';\n\nvar _ = window.jsforce.require('lodash/core');\nvar jsforce = window.jsforce.require('./core');\nvar SOAP = window.jsforce.require('./soap');\n\n/**\n * API class for Partner SOAP call\n *\n * @class\n * @param {Connection} conn - Connection\n */\nvar SoapApi = module.exports = function(conn) {\n this._conn = conn;\n};\n\n/**\n * Call SOAP Api (Partner) endpoint\n * @private\n */\nSoapApi.prototype._invoke = function(method, message, schema, callback) {\n var soapEndpoint = new SOAP(this._conn, {\n xmlns: \"urn:partner.soap.sforce.com\",\n endpointUrl: this._conn.instanceUrl + \"/services/Soap/u/\" + this._conn.version\n });\n return soapEndpoint.invoke(method, message, { result: schema }).then(function(res) {\n return res.result;\n }).thenCall(callback);\n};\n\n\n/* */\nvar Schemas = {};\n\n/**\n * @typedef SoapApi~LeadConvert\n * @prop {String} convertedStatus - Status of converted lead\n * @prop {String} leadId - Lead record Id to convert\n * @prop {String} [accountId] - Account record Id to assign the converted record\n * @prop {String} [contactId] - Contact record Id to assign the converted record\n * @prop {Boolean} [doNotCreateOpportunity] - True if you don't want to create a new opportunity\n * @prop {String} [opportunityName] - Name of opportunity to create\n * @prop {Boolean} [overwriteLeadSource] - True if overwriting lead source\n * @prop {String} [ownerId] - Owner Id\n * @prop {Boolean} [sendNotificationEmail] - True if send notification email\n */\n/**\n * @typedef SoapApi~LeadConvertResult\n * @prop {String} leadId - Lead record Id to convert\n * @prop {String} [accountId] - Account record Id of converted lead\n * @prop {String} [contactId] - Contact record Id of converted lead\n * @prop {String} [opportunityId] - Opportunity record Id created in conversion\n * @prop {Boolean} success - True if successfully converted\n * @prop {Array.<Object>} errors - Error\n */\n/**\n * Converts a Lead into an Account, Contact, or (optionally) an Opportunity.\n *\n * @param {SoapApi~LeadConvert|Array.<SoapApi~LeadConvert>} leadConverts\n * @param {Callback.<SoapApi~LeadConvertResult|Array.<SoapApi~LeadConvertResult>>} [callback] - Callback function\n * @returns {Promise.<SoapApi~LeadConvertResult|Array.<SoapApi~LeadConvertResult>>}\n */\nSoapApi.prototype.convertLead = function(leadConverts, callback) {\n var schema = _.isArray(leadConverts) ? [ Schemas.LeadConvertResult ] : Schemas.LeadConvertResult;\n return this._invoke(\"convertLead\", { leadConverts: leadConverts }, schema, callback);\n};\nSchemas.LeadConvertResult = {\n success: 'boolean',\n errors: [],\n leadId: 'string',\n accountId: 'string',\n contactId: 'string',\n opportunityId: 'string'\n};\n\n/**\n * @typedef SoapApi~MergeRequest\n * @prop {Object} masterRecord - The merge destination record\n * @prop {Array.<String>} recordToMergeIds - Ids of records to merge\n */\n/**\n * @typedef SoapApi~MergeResult\n * @prop {Boolean} success - True if successfully merged\n * @prop {Array.<Object>} errors - Error\n * @prop {String} id - ID of the master record\n * @prop {Array.<String>} mergedRecordIds - ID of the records that were merged into the master record\n * @prop {Array.<String>} updatedRelatedIds - ID of all related records that were moved (re-parented) as a result of the merge\n */\n\n/**\n * Merge up to three records into one\n *\n * @param {SoapApi~MergeRequest|Array.<SoapApi~MergeRequest>} mergeRequests\n * @param {Callback.<SoapApi~MergeResult|Array.<SoapApi~MergeResult>>} [callback] - Callback function\n * @returns {Promise.<SoapApi~MergeResult|Array.<SoapApi~MergeResult>>}\n */\nSoapApi.prototype.merge = function(mergeRequests, callback) {\n var schema = _.isArray(mergeRequests) ? [ Schemas.MergeResult ] : Schemas.MergeResult;\n return this._invoke(\"merge\", { mergeRequests: mergeRequests }, schema, callback);\n};\nSchemas.MergeResult = {\n success: 'boolean',\n errors: [],\n id: 'string',\n mergedRecordIds: ['string'],\n updatedRelatedIds: ['string']\n};\n\n\n/**\n * @typedef SoapApi~EmptyRecycleBinResult\n * @prop {String} id - ID of an sObject that you attempted to delete from the Recycle Bin\n * @prop {Boolean} success - Whether the call succeeded (true) or not (false) for this record\n * @prop {Array.<Object>} errors - Errors\n */\n/**\n * Delete records from the recycle bin immediately\n *\n * @param {Array.<String>} ids - Record ids to empty from recycle bin\n * @param {Callback.<Array.<SoapApi~EmptyRecycleBinResult>>} [callback] - Callback function\n * @returns {Promise.<Array.<SoapApi~EmptyRecycleBinResult>>}\n */\nSoapApi.prototype.emptyRecycleBin = function(ids, callback) {\n return this._invoke(\"emptyRecycleBin\", { ids: ids }, [ Schemas.EmptyRecycleBinResult ], callback);\n};\nSchemas.EmptyRecycleBinResult = {\n id: 'string',\n success: 'boolean',\n errors: []\n};\n\n\n/**\n * @typedef SoapApi~DescribeTabSetResult\n * @prop {String} label - The display label for this standard or custom app\n * @prop {String} logoUrl - A fully qualified URL to the logo image associated with the standard or custom app\n * @prop {String} namespace - Namespace of application package\n * @prop {Boolean} selected - If true, then this standard or custom app is the user’s currently selected app\n * @prop {Array.<SoapApi~DescribeTab>} tabs - An array of tabs that are displayed for the specified standard app or custom app\n */\n/**\n * @typedef SoapApi~DescribeTab\n * @prop {Array.<Object>} colors - Array of color information used for a tab\n * @prop {Boolean} custom - true if this is a custom tab\n * @prop {String} iconUrl - The URL for the main 32 x 32 pixel icon for a tab\n * @prop {Array.<Object>} icons - Array of icon information used for a tab\n * @prop {String} label - The display label for this tab\n * @prop {String} miniIconUrl - The URL for the 16 x 16 pixel icon that represents a tab\n * @prop {String} name - The API name of the tab\n * @prop {String} sobjectName - The name of the sObject that is primarily displayed on this tab\n * @prop {String} url - A fully qualified URL for viewing this tab\n */\n/**\n * Returns information about the standard and custom apps available to the logged-in user\n *\n * @param {Callback.<Array.<SoapApi~DescribeTabSetResult>>} [callback] - Callback function\n * @returns {Promise.<Array.<SoapApi~DescribeTabSetResult>>}\n */\nSoapApi.prototype.describeTabs = function(callback) {\n return this._invoke(\"describeTabs\", {}, [ Schemas.DescribeTabSetResult ], callback);\n};\nSchemas.DescribeTabSetResult = {\n label: 'string',\n logoUrl: 'string',\n namespace: 'string',\n selected: 'boolean',\n tabs: [{\n colors: [{\n theme: 'string',\n color: 'string',\n context: 'string'\n }],\n iconUrl: 'string',\n icons: [{\n theme: 'string',\n height: 'number',\n width: 'number',\n url: 'string',\n contentType: 'string'\n }],\n label: 'string',\n custom: 'boolean',\n miniIconUrl: 'string',\n name: 'string',\n sobjectName: 'string',\n url: 'string'\n }]\n};\n\n/**\n * Retrieves the current system timestamp (Coordinated Universal Time (UTC) time zone) from the API\n *\n * @typedef SoapApi~ServerTimestampResult\n * @prop {String} timestamp - Timestamp\n */\n/**\n * @param {Callback.<SoapApi~ServerTimestampResult>} [callback] - Callback function\n * @returns {Promise.<SoapApi~ServerTimestampResult>}\n */\nSoapApi.prototype.getServerTimestamp = function(callback) {\n return this._invoke(\"getServerTimestamp\", {}, Schemas.GetServerTimestampResult, callback);\n};\nSchemas.GetServerTimestampResult = {\n timestamp: 'string'\n};\n\n/**\n * @typedef SoapApi~UserInfoResult\n * @prop {Boolean} accessibilityMode\n * @prop {String} currencySymbol\n * @prop {Number} orgAttachmentFileSizeLimit\n * @prop {String} orgDefaultCurrencyIsoCode\n * @prop {String} orgDisallowHtmlAttachments\n * @prop {Boolean} orgHasPersonAccounts\n * @prop {String} organizationId\n * @prop {Boolean} organizationMultiCurrency\n * @prop {String} organizationName\n * @prop {String} profileId\n * @prop {String} roleId\n * @prop {Number} sessionSecondsValid\n * @prop {String} userDefaultCurrencyIsoCode\n * @prop {String} userEmail\n * @prop {String} userFullName\n * @prop {String} userId\n * @prop {String} userLanguage\n * @prop {String} userLocale\n * @prop {String} userName\n * @prop {String} userTimeZone\n * @prop {String} userType\n * @prop {String} userUiSkin\n */\n/**\n * Retrieves personal information for the user associated with the current session\n *\n * @param {Callback.<SoapApi~UserInfoResult>} [callback] - Callback function\n * @returns {Promise.<SoapApi~UserInfoResult>}\n */\nSoapApi.prototype.getUserInfo = function(callback) {\n return this._invoke(\"getUserInfo\", {}, Schemas.GetUserInfoResult, callback);\n};\nSchemas.GetUserInfoResult = {\n accessibilityMode: 'boolean',\n currencySymbol: 'string',\n orgAttachmentFileSizeLimit: 'number',\n orgDefaultCurrencyIsoCode: 'string',\n orgDisallowHtmlAttachments: 'boolean',\n orgHasPersonAccounts: 'boolean',\n organizationId: 'string',\n organizationMultiCurrency: 'boolean',\n organizationName: 'string',\n profileId: 'string',\n roleId: 'string',\n sessionSecondsValid: 'number',\n userDefaultCurrencyIsoCode: 'string',\n userEmail: 'string',\n userFullName: 'string',\n userId: 'string',\n userLanguage: 'string',\n userLocale: 'string',\n userName: 'string',\n userTimeZone: 'string',\n userType: 'string',\n userUiSkin: 'string'\n};\n\n/**\n * Sets the specified user’s password to the specified value\n *\n * @param {String} userId - User Id to set password\n * @param {String} password - New password\n * @param {Callback.<String>} [callback] - Callback function\n * @returns {Promise.<String>}\n */\nSoapApi.prototype.setPassword = function(userId, password, callback) {\n return this._invoke(\"setPassword\", { userId: userId, password: password }, callback);\n};\n\n/**\n * @typedef SoapApi~ResetPasswordResult\n * @prop {String} password\n */\n/**\n * Resets the specified user’s password\n *\n * @param {String} userId - User Id to set password\n * @param {String} password - New password\n * @param {Callback.<SoapApi~ResetPasswordResult>} [callback] - Callback function\n * @returns {Promise.<SoapApi~ResetPasswordResult>}\n */\nSoapApi.prototype.resetPassword = function(userId, callback) {\n return this._invoke(\"resetPassword\", { userId: userId }, callback);\n};\n\n/**\n * Adds one or more new records to your organization’s data\n *\n * @param {Array.<Object>} sObjects - Records to insert\n * @param {Callback.<SoapApi~SaveResult>} [callback] - Callback function\n * @returns {Promise.<SoapApi~SaveResult>}\n */\nSoapApi.prototype.create = function(sObjects, callback) {\n var schema = _.isArray(sObjects) ? [ Schemas.SaveResult ] : Schemas.SaveResult;\n var args = {\n '@xmlns' : 'urn:partner.soap.sforce.com',\n '@xmlns:ns1' : 'sobject.partner.soap.sforce.com',\n 'ns1:sObjects' : sObjects\n };\n return this._invoke(\"create\", args, schema, callback);\n};\n\n/**\n * Updates one or more existing records in your organization’s data.\n *\n * @param {Array.<Object>} sObjects - Records to update\n * @param {Callback.<SoapApi~SaveResult>} [callback] - Callback function\n * @returns {Promise.<SoapApi~SaveResult>}\n */\nSoapApi.prototype.update = function(sObjects, callback) {\n var schema = _.isArray(sObjects) ? [ Schemas.SaveResult ] : Schemas.SaveResult;\n var args = {\n '@xmlns' : 'urn:partner.soap.sforce.com',\n '@xmlns:ns1' : 'sobject.partner.soap.sforce.com',\n 'ns1:sObjects' : sObjects\n };\n return this._invoke(\"update\", args, schema, callback);\n};\n\nSchemas.SaveResult = {\n success: 'boolean',\n errors: [],\n id: 'string'\n};\n\n/**\n * Creates new records and updates existing records in your organization’s data.\n *\n * @param {Array.<Object>} sObjects - Records to upsert\n * @param {Callback.<SoapApi~UpsertResult>} [callback] - Callback function\n * @returns {Promise.<SoapApi~UpsertResult>}\n */\nSoapApi.prototype.upsert = function(externalIdFieldName, sObjects, callback) {\n var schema = _.isArray(sObjects) ? [ Schemas.UpsertResult ] : Schemas.UpsertResult;\n var args = {\n '@xmlns' : 'urn:partner.soap.sforce.com',\n '@xmlns:ns1' : 'sobject.partner.soap.sforce.com',\n 'ns1:externalIDFieldName' : externalIdFieldName,\n 'ns1:sObjects' : sObjects\n };\n return this._invoke(\"upsert\", args, schema, callback);\n};\n\nSchemas.UpsertResult = {\n created: 'boolean',\n success: 'boolean',\n errors: [],\n id: 'string'\n};\n\n/**\n * Deletes one or more records from your organization’s data\n *\n * @param {Array.<Object>} ids - Id of records to delete\n * @param {Callback.<SoapApi~DeleteResult>} [callback] - Callback function\n * @returns {Promise.<SoapApi~DeleteResult>}\n */\nSoapApi.prototype.delete = function(ids, callback) {\n var schema = _.isArray(ids) ? [ Schemas.DeleteResult ] : Schemas.DeleteResult;\n var args = {\n '@xmlns' : 'urn:partner.soap.sforce.com',\n '@xmlns:ns1' : 'sobject.partner.soap.sforce.com',\n 'ns1:ids' : ids\n };\n return this._invoke(\"delete\", args, schema, callback);\n};\n\nSchemas.DeleteResult = {\n success: 'boolean',\n errors: [],\n id: 'string'\n};\n\n\n/*--------------------------------------------*/\n/*\n * Register hook in connection instantiation for dynamically adding this API module features\n */\njsforce.on('connection:new', function(conn) {\n conn.soap = new SoapApi(conn);\n});\n\n\nmodule.exports = SoapApi;\n"]}