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,393 +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.Analytics = 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 Manages Salesforce Analytics API
4
- * @author Shinichi Tomita <shinichi.tomita@gmail.com>
5
- */
6
-
7
- 'use strict';
8
-
9
- var _ = window.jsforce.require('lodash/core'),
10
- jsforce = window.jsforce.require('./core'),
11
- Promise = window.jsforce.require('./promise');
12
-
13
- /**
14
- * Report instance to retrieving asynchronously executed result
15
- *
16
- * @protected
17
- * @class Analytics~ReportInstance
18
- * @param {Analytics~Report} report - Report
19
- * @param {String} id - Report instance id
20
- */
21
- var ReportInstance = function(report, id) {
22
- this._report = report;
23
- this._conn = report._conn;
24
- this.id = id;
25
- };
26
-
27
- /**
28
- * Retrieve report result asynchronously executed
29
- *
30
- * @method Analytics~ReportInstance#retrieve
31
- * @param {Callback.<Analytics~ReportResult>} [callback] - Callback function
32
- * @returns {Promise.<Analytics~ReportResult>}
33
- */
34
- ReportInstance.prototype.retrieve = function(callback) {
35
- var conn = this._conn,
36
- report = this._report;
37
- var url = [ conn._baseUrl(), "analytics", "reports", report.id, "instances", this.id ].join('/');
38
- return conn.request(url).thenCall(callback);
39
- };
40
-
41
- /**
42
- * Report object in Analytics API
43
- *
44
- * @protected
45
- * @class Analytics~Report
46
- * @param {Connection} conn Connection
47
- */
48
- var Report = function(conn, id) {
49
- this._conn = conn;
50
- this.id = id;
51
- };
52
-
53
- /**
54
- * Describe report metadata
55
- *
56
- * @method Analytics~Report#describe
57
- * @param {Callback.<Analytics~ReportMetadata>} [callback] - Callback function
58
- * @returns {Promise.<Analytics~ReportMetadata>}
59
- */
60
- Report.prototype.describe = function(callback) {
61
- var url = [ this._conn._baseUrl(), "analytics", "reports", this.id, "describe" ].join('/');
62
- return this._conn.request(url).thenCall(callback);
63
- };
64
-
65
- /**
66
- * Synonym of Analytics~Report#destroy()
67
- *
68
- * @method Analytics~Report#delete
69
- * @param {Callback.<Analytics~ReportResult>} [callback] - Callback function
70
- * @returns {Promise.<Analytics~ReportResult>}
71
- */
72
- /**
73
- * Synonym of Analytics~Report#destroy()
74
- *
75
- * @method Analytics~Report#del
76
- * @param {Callback.<Analytics~ReportResult>} [callback] - Callback function
77
- * @returns {Promise.<Analytics~ReportResult>}
78
- */
79
- /**
80
- * Destroy a report
81
- *
82
- * @method Analytics~Report#destroy
83
- * @param {Callback.<Analytics~ReportResult>} [callback] - Callback function
84
- * @returns {Promise.<Analytics~ReportResult>}
85
- */
86
- Report.prototype["delete"] =
87
- Report.prototype.del =
88
- Report.prototype.destroy = function(callback) {
89
- var url = [ this._conn._baseUrl(), "analytics", "reports", this.id ].join('/');
90
- return this._conn.request({method: 'DELETE', url: url}).thenCall(callback);
91
- };
92
-
93
- /**
94
- * Clones a given report
95
- *
96
- * @method Analytics~Report#clone
97
- * @param {String} name - The name of the new report
98
- * @param {Callback.<Analytics~ReportResult>} [callback] - Callback function
99
- * @returns {Promise.<Analytics~ReportResult>}
100
- */
101
- Report.prototype.clone = function(name, callback) {
102
- var url = [ this._conn._baseUrl(), "analytics", "reports" ].join('/');
103
- url += "?cloneId=" + this.id;
104
- var data = { reportMetadata: { name: name } };
105
- var params = { method : 'POST', url: url, headers: { "Content-Type" : "application/json" }, body: JSON.stringify(data)};
106
-
107
- return this._conn.request(params).thenCall(callback);
108
- };
109
-
110
- /**
111
- * Explain plan for executing report
112
- *
113
- * @method Analytics~Report#explain
114
- * @param {Callback.<ExplainInfo>} [callback] - Callback function
115
- * @returns {Promise.<ExplainInfo>}
116
- */
117
- Report.prototype.explain = function(callback) {
118
- var url = "/query/?explain=" + this.id;
119
- return this._conn.request(url).thenCall(callback);
120
- };
121
-
122
-
123
- /**
124
- * Run report synchronously
125
- *
126
- * @method Analytics~Report#execute
127
- * @param {Object} [options] - Options
128
- * @param {Boolean} options.details - Flag if include detail in result
129
- * @param {Analytics~ReportMetadata} options.metadata - Overriding report metadata
130
- * @param {Callback.<Analytics~ReportResult>} [callback] - Callback function
131
- * @returns {Promise.<Analytics~ReportResult>}
132
- */
133
- Report.prototype.run =
134
- Report.prototype.exec =
135
- Report.prototype.execute = function(options, callback) {
136
- options = options || {};
137
- if (_.isFunction(options)) {
138
- callback = options;
139
- options = {};
140
- }
141
- var url = [ this._conn._baseUrl(), "analytics", "reports", this.id ].join('/');
142
- url += "?includeDetails=" + (options.details ? "true" : "false");
143
- var params = { method : options.metadata ? 'POST' : 'GET', url : url };
144
- if (options.metadata) {
145
- params.headers = { "Content-Type" : "application/json" };
146
- params.body = JSON.stringify(options.metadata);
147
- }
148
- return this._conn.request(params).thenCall(callback);
149
- };
150
-
151
-
152
- /**
153
- * Run report asynchronously
154
- *
155
- * @method Analytics~Report#executeAsync
156
- * @param {Object} [options] - Options
157
- * @param {Boolean} options.details - Flag if include detail in result
158
- * @param {Analytics~ReportMetadata} options.metadata - Overriding report metadata
159
- * @param {Callback.<Analytics~ReportInstanceAttrs>} [callback] - Callback function
160
- * @returns {Promise.<Analytics~ReportInstanceAttrs>}
161
- */
162
- Report.prototype.executeAsync = function(options, callback) {
163
- options = options || {};
164
- if (_.isFunction(options)) {
165
- callback = options;
166
- options = {};
167
- }
168
- var url = [ this._conn._baseUrl(), "analytics", "reports", this.id, "instances" ].join('/');
169
- if (options.details) {
170
- url += "?includeDetails=true";
171
- }
172
- var params = { method : 'POST', url : url, body: "" };
173
- if (options.metadata) {
174
- params.headers = { "Content-Type" : "application/json" };
175
- params.body = JSON.stringify(options.metadata);
176
- }
177
- return this._conn.request(params).thenCall(callback);
178
- };
179
-
180
- /**
181
- * Get report instance for specified instance ID
182
- *
183
- * @method Analytics~Report#instance
184
- * @param {String} id - Report instance ID
185
- * @returns {Analytics~ReportInstance}
186
- */
187
- Report.prototype.instance = function(id) {
188
- return new ReportInstance(this, id);
189
- };
190
-
191
- /**
192
- * List report instances which had been executed asynchronously
193
- *
194
- * @method Analytics~Report#instances
195
- * @param {Callback.<Array.<Analytics~ReportInstanceAttrs>>} [callback] - Callback function
196
- * @returns {Promise.<Array.<Analytics~ReportInstanceAttrs>>}
197
- */
198
- Report.prototype.instances = function(callback) {
199
- var url = [ this._conn._baseUrl(), "analytics", "reports", this.id, "instances" ].join('/');
200
- return this._conn.request(url).thenCall(callback);
201
- };
202
-
203
- /**
204
- * Dashboard object in the Analytics API
205
- *
206
- * @protected
207
- * @class Analytics-Dashboard
208
- * @param {Connection} conn Connection
209
- * @param {String} id - The Id
210
- */
211
-
212
- var Dashboard = function(conn, id) {
213
- this._conn = conn;
214
- this.id = id;
215
- };
216
-
217
- /**
218
- * Describe dashboard metadata
219
- *
220
- * @method Analytics~Dashboard#describe
221
- * @param {Callback.<Analytics-DashboardMetadata>} [callback] - Callback function
222
- * @returns {Promise.<Analytics-DashboardMetadata>}
223
- */
224
- Dashboard.prototype.describe = function(callback) {
225
- var url = [ this._conn._baseUrl(), "analytics", "dashboards", this.id, "describe" ].join('/');
226
- return this._conn.request(url).thenCall(callback);
227
- };
228
-
229
- /**
230
- * Get details about dashboard components
231
- *
232
- * @method Analytics~Dashboard#components
233
- * @param {Callback.<Analytics-DashboardComponentMetadata>} [callback] - Callback function
234
- * @returns {Promise.<Analytics-DashboardComponentMetadata>}
235
- */
236
- Dashboard.prototype.components = function(componentIds, callback) {
237
- var url = [ this._conn._baseUrl(), "analytics", "dashboards", this.id].join('/');
238
- var data = {};
239
- if (_.isFunction(componentIds)) {
240
- callback = componentIds;
241
- } else if (_.isArray(componentIds)) {
242
- data.componentIds = componentIds;
243
- } else if (_.isString(componentIds)) {
244
- data.componentIds = [ componentIds ];
245
- }
246
- var params = { method : 'POST', url : url, headers : { "Content-Type" : "application/json" }, body : JSON.stringify(data)};
247
- return this._conn.request(params).thenCall(callback);
248
- };
249
-
250
- /**
251
- * Get dashboard status
252
- *
253
- * @method Analytics~Dashboard#status
254
- * @param {Callback.<Analytics-DashboardStatusMetadata>} [callback] - Callback function
255
- * @returns {Promise.<Analytics-DashboardStatusMetadata>}
256
- */
257
- Dashboard.prototype.status = function(callback) {
258
- var url = [ this._conn._baseUrl(), "analytics", "dashboards", this.id, "status" ].join('/');
259
- return this._conn.request(url).thenCall(callback);
260
- };
261
-
262
- /**
263
- * Refresh a dashboard
264
- *
265
- * @method Analytics~Dashboard#refresh
266
- * @param {Callback.<Analytics-DashboardStatusUrl>} [callback] - Callback function
267
- * @returns {Promise.<Analytics-DashboardStatusUrl>}
268
- */
269
- Dashboard.prototype.refresh = function(callback) {
270
- var url = [ this._conn._baseUrl(), "analytics", "dashboards", this.id ].join('/');
271
- var params = { method : 'PUT', url : url, body: '' };
272
- return this._conn.request(params).thenCall(callback);
273
- };
274
-
275
- /**
276
- * Clone a dashboard
277
- *
278
- * @method Analytics~Dashboard#clone
279
- * @param {Callback.<Analytics-DashboardMetadata>} [callback] - Callback function
280
- * @returns {Promise.<Analytics-DashboardMetadata>}
281
- */
282
- Dashboard.prototype.clone = function(name, folderid, callback) {
283
- var url = [ this._conn._baseUrl(), "analytics", "dashboards" ].join('/');
284
- url += "?cloneId=" + this.id;
285
- var data = {};
286
-
287
- if (_.isObject(name)) {
288
- data = name;
289
- callback = folderid;
290
- } else {
291
- data.name = name;
292
- data.folderId = folderid;
293
- }
294
- var params = { method : 'POST', url : url, headers : { "Content-Type" : "application/json" }, body : JSON.stringify(data)};
295
-
296
- return this._conn.request(params).thenCall(callback);
297
- };
298
-
299
- /**
300
- * Synonym of Analytics~Dashboard#destroy()
301
- *
302
- * @method Analytics~Dashboard#delete
303
- * @param {Callback.<Analytics~DashboardResult>} [callback] - Callback function
304
- * @returns {Promise.<Analytics~DashboardResult>}
305
- */
306
- /**
307
- * Synonym of Analytics~Dashboard#destroy()
308
- *
309
- * @method Analytics~Dashboard#del
310
- * @param {Callback.<Analytics~DashboardResult>} [callback] - Callback function
311
- * @returns {Promise.<Analytics~DashboardResult>}
312
- */
313
- /**
314
- * Destroy a dashboard
315
- *
316
- * @method Analytics~Dashboard#destroy
317
- * @param {Callback.<Analytics~DashboardResult>} [callback] - Callback function
318
- * @returns {Promise.<Analytics~DashboardResult>}
319
- */
320
- Dashboard.prototype["delete"] =
321
- Dashboard.prototype.del =
322
- Dashboard.prototype.destroy = function(callback) {
323
- var url = [ this._conn._baseUrl(), "analytics", "dashboards", this.id ].join('/');
324
- return this._conn.request({method: 'DELETE', url: url}).thenCall(callback);
325
- };
326
-
327
- /**
328
- * API class for Analytics API
329
- *
330
- * @class
331
- * @param {Connection} conn Connection
332
- */
333
- var Analytics = function(conn) {
334
- this._conn = conn;
335
- };
336
-
337
- /**
338
- * Get report object of Analytics API
339
- *
340
- * @param {String} id - Report Id
341
- * @returns {Analytics~Report}
342
- */
343
- Analytics.prototype.report = function(id) {
344
- return new Report(this._conn, id);
345
- };
346
-
347
- /**
348
- * Get recent report list
349
- *
350
- * @param {Callback.<Array.<Analytics~ReportInfo>>} [callback] - Callback function
351
- * @returns {Promise.<Array.<Analytics~ReportInfo>>}
352
- */
353
- Analytics.prototype.reports = function(callback) {
354
- var url = [ this._conn._baseUrl(), "analytics", "reports" ].join('/');
355
- return this._conn.request(url).thenCall(callback);
356
- };
357
-
358
- /**
359
- * Get dashboard object of Analytics API
360
- *
361
- * @param {String} id - Dashboard Id
362
- * @returns {Analytics~Dashboard}
363
- */
364
- Analytics.prototype.dashboard = function(id) {
365
- return new Dashboard(this._conn, id);
366
- };
367
-
368
- /**
369
- * Get recent dashboard list
370
- *
371
- * @param {Callback.<Array.<Analytics~DashboardInfo>>} [callback] - Callback function
372
- * @returns {Promise.<Array.<Analytics~DashboardInfo>>}
373
- */
374
- Analytics.prototype.dashboards = function(callback) {
375
- var url = [ this._conn._baseUrl(), "analytics", "dashboards" ].join('/');
376
- return this._conn.request(url).thenCall(callback);
377
- };
378
-
379
- /*--------------------------------------------*/
380
- /*
381
- * Register hook in connection instantiation for dynamically adding this API module features
382
- */
383
- jsforce.on('connection:new', function(conn) {
384
- conn.analytics = new Analytics(conn);
385
- });
386
-
387
-
388
- module.exports = Analytics;
389
-
390
- },{}]},{},[1])(1)
391
- });
392
-
393
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm5vZGVfbW9kdWxlcy9icm93c2VyLXBhY2svX3ByZWx1ZGUuanMiLCJsaWIvYXBpL2FuYWx5dGljcy5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtBQ0FBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBIiwiZmlsZSI6ImdlbmVyYXRlZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzQ29udGVudCI6WyIoZnVuY3Rpb24oKXtmdW5jdGlvbiByKGUsbix0KXtmdW5jdGlvbiBvKGksZil7aWYoIW5baV0pe2lmKCFlW2ldKXt2YXIgYz1cImZ1bmN0aW9uXCI9PXR5cGVvZiByZXF1aXJlJiZyZXF1aXJlO2lmKCFmJiZjKXJldHVybiBjKGksITApO2lmKHUpcmV0dXJuIHUoaSwhMCk7dmFyIGE9bmV3IEVycm9yKFwiQ2Fubm90IGZpbmQgbW9kdWxlICdcIitpK1wiJ1wiKTt0aHJvdyBhLmNvZGU9XCJNT0RVTEVfTk9UX0ZPVU5EXCIsYX12YXIgcD1uW2ldPXtleHBvcnRzOnt9fTtlW2ldWzBdLmNhbGwocC5leHBvcnRzLGZ1bmN0aW9uKHIpe3ZhciBuPWVbaV1bMV1bcl07cmV0dXJuIG8obnx8cil9LHAscC5leHBvcnRzLHIsZSxuLHQpfXJldHVybiBuW2ldLmV4cG9ydHN9Zm9yKHZhciB1PVwiZnVuY3Rpb25cIj09dHlwZW9mIHJlcXVpcmUmJnJlcXVpcmUsaT0wO2k8dC5sZW5ndGg7aSsrKW8odFtpXSk7cmV0dXJuIG99cmV0dXJuIHJ9KSgpIiwiLyoqXG4gKiBAZmlsZSBNYW5hZ2VzIFNhbGVzZm9yY2UgQW5hbHl0aWNzIEFQSVxuICogQGF1dGhvciBTaGluaWNoaSBUb21pdGEgPHNoaW5pY2hpLnRvbWl0YUBnbWFpbC5jb20+XG4gKi9cblxuJ3VzZSBzdHJpY3QnO1xuXG52YXIgXyA9IHdpbmRvdy5qc2ZvcmNlLnJlcXVpcmUoJ2xvZGFzaC9jb3JlJyksXG4gICAganNmb3JjZSA9IHdpbmRvdy5qc2ZvcmNlLnJlcXVpcmUoJy4vY29yZScpLFxuICAgIFByb21pc2UgID0gd2luZG93LmpzZm9yY2UucmVxdWlyZSgnLi9wcm9taXNlJyk7XG5cbi8qKlxuICogUmVwb3J0IGluc3RhbmNlIHRvIHJldHJpZXZpbmcgYXN5bmNocm9ub3VzbHkgZXhlY3V0ZWQgcmVzdWx0XG4gKlxuICogQHByb3RlY3RlZFxuICogQGNsYXNzIEFuYWx5dGljc35SZXBvcnRJbnN0YW5jZVxuICogQHBhcmFtIHtBbmFseXRpY3N+UmVwb3J0fSByZXBvcnQgLSBSZXBvcnRcbiAqIEBwYXJhbSB7U3RyaW5nfSBpZCAtIFJlcG9ydCBpbnN0YW5jZSBpZFxuICovXG52YXIgUmVwb3J0SW5zdGFuY2UgPSBmdW5jdGlvbihyZXBvcnQsIGlkKSB7XG4gIHRoaXMuX3JlcG9ydCA9IHJlcG9ydDtcbiAgdGhpcy5fY29ubiA9IHJlcG9ydC5fY29ubjtcbiAgdGhpcy5pZCA9IGlkO1xufTtcblxuLyoqXG4gKiBSZXRyaWV2ZSByZXBvcnQgcmVzdWx0IGFzeW5jaHJvbm91c2x5IGV4ZWN1dGVkXG4gKlxuICogQG1ldGhvZCBBbmFseXRpY3N+UmVwb3J0SW5zdGFuY2UjcmV0cmlldmVcbiAqIEBwYXJhbSB7Q2FsbGJhY2suPEFuYWx5dGljc35SZXBvcnRSZXN1bHQ+fSBbY2FsbGJhY2tdIC0gQ2FsbGJhY2sgZnVuY3Rpb25cbiAqIEByZXR1cm5zIHtQcm9taXNlLjxBbmFseXRpY3N+UmVwb3J0UmVzdWx0Pn1cbiAqL1xuUmVwb3J0SW5zdGFuY2UucHJvdG90eXBlLnJldHJpZXZlID0gZnVuY3Rpb24oY2FsbGJhY2spIHtcbiAgdmFyIGNvbm4gPSB0aGlzLl9jb25uLFxuICAgICAgcmVwb3J0ID0gdGhpcy5fcmVwb3J0O1xuICB2YXIgdXJsID0gWyBjb25uLl9iYXNlVXJsKCksIFwiYW5hbHl0aWNzXCIsIFwicmVwb3J0c1wiLCByZXBvcnQuaWQsIFwiaW5zdGFuY2VzXCIsIHRoaXMuaWQgXS5qb2luKCcvJyk7XG4gIHJldHVybiBjb25uLnJlcXVlc3QodXJsKS50aGVuQ2FsbChjYWxsYmFjayk7XG59O1xuXG4vKipcbiAqIFJlcG9ydCBvYmplY3QgaW4gQW5hbHl0aWNzIEFQSVxuICpcbiAqIEBwcm90ZWN0ZWRcbiAqIEBjbGFzcyBBbmFseXRpY3N+UmVwb3J0XG4gKiBAcGFyYW0ge0Nvbm5lY3Rpb259IGNvbm4gQ29ubmVjdGlvblxuICovXG52YXIgUmVwb3J0ID0gZnVuY3Rpb24oY29ubiwgaWQpIHtcbiAgdGhpcy5fY29ubiA9IGNvbm47XG4gIHRoaXMuaWQgPSBpZDtcbn07XG5cbi8qKlxuICogRGVzY3JpYmUgcmVwb3J0IG1ldGFkYXRhXG4gKlxuICogQG1ldGhvZCBBbmFseXRpY3N+UmVwb3J0I2Rlc2NyaWJlXG4gKiBAcGFyYW0ge0NhbGxiYWNrLjxBbmFseXRpY3N+UmVwb3J0TWV0YWRhdGE+fSBbY2FsbGJhY2tdIC0gQ2FsbGJhY2sgZnVuY3Rpb25cbiAqIEByZXR1cm5zIHtQcm9taXNlLjxBbmFseXRpY3N+UmVwb3J0TWV0YWRhdGE+fVxuICovXG5SZXBvcnQucHJvdG90eXBlLmRlc2NyaWJlID0gZnVuY3Rpb24oY2FsbGJhY2spIHtcbiAgdmFyIHVybCA9IFsgdGhpcy5fY29ubi5fYmFzZVVybCgpLCBcImFuYWx5dGljc1wiLCBcInJlcG9ydHNcIiwgdGhpcy5pZCwgXCJkZXNjcmliZVwiIF0uam9pbignLycpO1xuICByZXR1cm4gdGhpcy5fY29ubi5yZXF1ZXN0KHVybCkudGhlbkNhbGwoY2FsbGJhY2spO1xufTtcblxuLyoqXG4gKiBTeW5vbnltIG9mIEFuYWx5dGljc35SZXBvcnQjZGVzdHJveSgpXG4gKlxuICogQG1ldGhvZCBBbmFseXRpY3N+UmVwb3J0I2RlbGV0ZVxuICogQHBhcmFtIHtDYWxsYmFjay48QW5hbHl0aWNzflJlcG9ydFJlc3VsdD59IFtjYWxsYmFja10gLSBDYWxsYmFjayBmdW5jdGlvblxuICogQHJldHVybnMge1Byb21pc2UuPEFuYWx5dGljc35SZXBvcnRSZXN1bHQ+fVxuICovXG4vKipcbiAqIFN5bm9ueW0gb2YgQW5hbHl0aWNzflJlcG9ydCNkZXN0cm95KClcbiAqXG4gKiBAbWV0aG9kIEFuYWx5dGljc35SZXBvcnQjZGVsXG4gKiBAcGFyYW0ge0NhbGxiYWNrLjxBbmFseXRpY3N+UmVwb3J0UmVzdWx0Pn0gW2NhbGxiYWNrXSAtIENhbGxiYWNrIGZ1bmN0aW9uXG4gKiBAcmV0dXJucyB7UHJvbWlzZS48QW5hbHl0aWNzflJlcG9ydFJlc3VsdD59XG4gKi9cbi8qKlxuICogRGVzdHJveSBhIHJlcG9ydFxuICpcbiAqIEBtZXRob2QgQW5hbHl0aWNzflJlcG9ydCNkZXN0cm95XG4gKiBAcGFyYW0ge0NhbGxiYWNrLjxBbmFseXRpY3N+UmVwb3J0UmVzdWx0Pn0gW2NhbGxiYWNrXSAtIENhbGxiYWNrIGZ1bmN0aW9uXG4gKiBAcmV0dXJucyB7UHJvbWlzZS48QW5hbHl0aWNzflJlcG9ydFJlc3VsdD59XG4gKi9cblJlcG9ydC5wcm90b3R5cGVbXCJkZWxldGVcIl0gPVxuUmVwb3J0LnByb3RvdHlwZS5kZWwgPVxuUmVwb3J0LnByb3RvdHlwZS5kZXN0cm95ID0gZnVuY3Rpb24oY2FsbGJhY2spIHtcbiAgdmFyIHVybCA9IFsgdGhpcy5fY29ubi5fYmFzZVVybCgpLCBcImFuYWx5dGljc1wiLCBcInJlcG9ydHNcIiwgdGhpcy5pZCBdLmpvaW4oJy8nKTtcbiAgcmV0dXJuIHRoaXMuX2Nvbm4ucmVxdWVzdCh7bWV0aG9kOiAnREVMRVRFJywgdXJsOiB1cmx9KS50aGVuQ2FsbChjYWxsYmFjayk7XG59O1xuXG4vKipcbiAqIENsb25lcyBhIGdpdmVuIHJlcG9ydFxuICpcbiAqIEBtZXRob2QgQW5hbHl0aWNzflJlcG9ydCNjbG9uZVxuICogQHBhcmFtIHtTdHJpbmd9IG5hbWUgLSBUaGUgbmFtZSBvZiB0aGUgbmV3IHJlcG9ydFxuICogQHBhcmFtIHtDYWxsYmFjay48QW5hbHl0aWNzflJlcG9ydFJlc3VsdD59IFtjYWxsYmFja10gLSBDYWxsYmFjayBmdW5jdGlvblxuICogQHJldHVybnMge1Byb21pc2UuPEFuYWx5dGljc35SZXBvcnRSZXN1bHQ+fVxuICovXG5SZXBvcnQucHJvdG90eXBlLmNsb25lID0gZnVuY3Rpb24obmFtZSwgY2FsbGJhY2spIHtcbiAgdmFyIHVybCA9IFsgdGhpcy5fY29ubi5fYmFzZVVybCgpLCBcImFuYWx5dGljc1wiLCBcInJlcG9ydHNcIiBdLmpvaW4oJy8nKTtcbiAgdXJsICs9IFwiP2Nsb25lSWQ9XCIgKyB0aGlzLmlkO1xuICB2YXIgZGF0YSA9IHsgcmVwb3J0TWV0YWRhdGE6IHsgbmFtZTogbmFtZSB9IH07XG4gIHZhciBwYXJhbXMgPSB7IG1ldGhvZCA6ICdQT1NUJywgdXJsOiB1cmwsIGhlYWRlcnM6IHsgXCJDb250ZW50LVR5cGVcIiA6IFwiYXBwbGljYXRpb24vanNvblwiIH0sIGJvZHk6IEpTT04uc3RyaW5naWZ5KGRhdGEpfTtcblxuICByZXR1cm4gdGhpcy5fY29ubi5yZXF1ZXN0KHBhcmFtcykudGhlbkNhbGwoY2FsbGJhY2spO1xufTtcblxuLyoqXG4gKiBFeHBsYWluIHBsYW4gZm9yIGV4ZWN1dGluZyByZXBvcnRcbiAqXG4gKiBAbWV0aG9kIEFuYWx5dGljc35SZXBvcnQjZXhwbGFpblxuICogQHBhcmFtIHtDYWxsYmFjay48RXhwbGFpbkluZm8+fSBbY2FsbGJhY2tdIC0gQ2FsbGJhY2sgZnVuY3Rpb25cbiAqIEByZXR1cm5zIHtQcm9taXNlLjxFeHBsYWluSW5mbz59XG4gKi9cblJlcG9ydC5wcm90b3R5cGUuZXhwbGFpbiA9IGZ1bmN0aW9uKGNhbGxiYWNrKSB7XG4gIHZhciB1cmwgPSBcIi9xdWVyeS8/ZXhwbGFpbj1cIiArIHRoaXMuaWQ7XG4gIHJldHVybiB0aGlzLl9jb25uLnJlcXVlc3QodXJsKS50aGVuQ2FsbChjYWxsYmFjayk7XG59O1xuXG5cbi8qKlxuICogUnVuIHJlcG9ydCBzeW5jaHJvbm91c2x5XG4gKlxuICogQG1ldGhvZCBBbmFseXRpY3N+UmVwb3J0I2V4ZWN1dGVcbiAqIEBwYXJhbSB7T2JqZWN0fSBbb3B0aW9uc10gLSBPcHRpb25zXG4gKiBAcGFyYW0ge0Jvb2xlYW59IG9wdGlvbnMuZGV0YWlscyAtIEZsYWcgaWYgaW5jbHVkZSBkZXRhaWwgaW4gcmVzdWx0XG4gKiBAcGFyYW0ge0FuYWx5dGljc35SZXBvcnRNZXRhZGF0YX0gb3B0aW9ucy5tZXRhZGF0YSAtIE92ZXJyaWRpbmcgcmVwb3J0IG1ldGFkYXRhXG4gKiBAcGFyYW0ge0NhbGxiYWNrLjxBbmFseXRpY3N+UmVwb3J0UmVzdWx0Pn0gW2NhbGxiYWNrXSAtIENhbGxiYWNrIGZ1bmN0aW9uXG4gKiBAcmV0dXJucyB7UHJvbWlzZS48QW5hbHl0aWNzflJlcG9ydFJlc3VsdD59XG4gKi9cblJlcG9ydC5wcm90b3R5cGUucnVuID1cblJlcG9ydC5wcm90b3R5cGUuZXhlYyA9XG5SZXBvcnQucHJvdG90eXBlLmV4ZWN1dGUgPSBmdW5jdGlvbihvcHRpb25zLCBjYWxsYmFjaykge1xuICBvcHRpb25zID0gb3B0aW9ucyB8fCB7fTtcbiAgaWYgKF8uaXNGdW5jdGlvbihvcHRpb25zKSkge1xuICAgIGNhbGxiYWNrID0gb3B0aW9ucztcbiAgICBvcHRpb25zID0ge307XG4gIH1cbiAgdmFyIHVybCA9IFsgdGhpcy5fY29ubi5fYmFzZVVybCgpLCBcImFuYWx5dGljc1wiLCBcInJlcG9ydHNcIiwgdGhpcy5pZCBdLmpvaW4oJy8nKTtcbiAgdXJsICs9IFwiP2luY2x1ZGVEZXRhaWxzPVwiICsgKG9wdGlvbnMuZGV0YWlscyA/IFwidHJ1ZVwiIDogXCJmYWxzZVwiKTtcbiAgdmFyIHBhcmFtcyA9IHsgbWV0aG9kIDogb3B0aW9ucy5tZXRhZGF0YSA/ICdQT1NUJyA6ICdHRVQnLCB1cmwgOiB1cmwgfTtcbiAgaWYgKG9wdGlvbnMubWV0YWRhdGEpIHtcbiAgICBwYXJhbXMuaGVhZGVycyA9IHsgXCJDb250ZW50LVR5cGVcIiA6IFwiYXBwbGljYXRpb24vanNvblwiIH07XG4gICAgcGFyYW1zLmJvZHkgPSBKU09OLnN0cmluZ2lmeShvcHRpb25zLm1ldGFkYXRhKTtcbiAgfVxuICByZXR1cm4gdGhpcy5fY29ubi5yZXF1ZXN0KHBhcmFtcykudGhlbkNhbGwoY2FsbGJhY2spO1xufTtcblxuXG4vKipcbiAqIFJ1biByZXBvcnQgYXN5bmNocm9ub3VzbHlcbiAqXG4gKiBAbWV0aG9kIEFuYWx5dGljc35SZXBvcnQjZXhlY3V0ZUFzeW5jXG4gKiBAcGFyYW0ge09iamVjdH0gW29wdGlvbnNdIC0gT3B0aW9uc1xuICogQHBhcmFtIHtCb29sZWFufSBvcHRpb25zLmRldGFpbHMgLSBGbGFnIGlmIGluY2x1ZGUgZGV0YWlsIGluIHJlc3VsdFxuICogQHBhcmFtIHtBbmFseXRpY3N+UmVwb3J0TWV0YWRhdGF9IG9wdGlvbnMubWV0YWRhdGEgLSBPdmVycmlkaW5nIHJlcG9ydCBtZXRhZGF0YVxuICogQHBhcmFtIHtDYWxsYmFjay48QW5hbHl0aWNzflJlcG9ydEluc3RhbmNlQXR0cnM+fSBbY2FsbGJhY2tdIC0gQ2FsbGJhY2sgZnVuY3Rpb25cbiAqIEByZXR1cm5zIHtQcm9taXNlLjxBbmFseXRpY3N+UmVwb3J0SW5zdGFuY2VBdHRycz59XG4gKi9cblJlcG9ydC5wcm90b3R5cGUuZXhlY3V0ZUFzeW5jID0gZnVuY3Rpb24ob3B0aW9ucywgY2FsbGJhY2spIHtcbiAgb3B0aW9ucyA9IG9wdGlvbnMgfHwge307XG4gIGlmIChfLmlzRnVuY3Rpb24ob3B0aW9ucykpIHtcbiAgICBjYWxsYmFjayA9IG9wdGlvbnM7XG4gICAgb3B0aW9ucyA9IHt9O1xuICB9XG4gIHZhciB1cmwgPSBbIHRoaXMuX2Nvbm4uX2Jhc2VVcmwoKSwgXCJhbmFseXRpY3NcIiwgXCJyZXBvcnRzXCIsIHRoaXMuaWQsIFwiaW5zdGFuY2VzXCIgXS5qb2luKCcvJyk7XG4gIGlmIChvcHRpb25zLmRldGFpbHMpIHtcbiAgICB1cmwgKz0gXCI/aW5jbHVkZURldGFpbHM9dHJ1ZVwiO1xuICB9XG4gIHZhciBwYXJhbXMgPSB7IG1ldGhvZCA6ICdQT1NUJywgdXJsIDogdXJsLCBib2R5OiBcIlwiIH07XG4gIGlmIChvcHRpb25zLm1ldGFkYXRhKSB7XG4gICAgcGFyYW1zLmhlYWRlcnMgPSB7IFwiQ29udGVudC1UeXBlXCIgOiBcImFwcGxpY2F0aW9uL2pzb25cIiB9O1xuICAgIHBhcmFtcy5ib2R5ID0gSlNPTi5zdHJpbmdpZnkob3B0aW9ucy5tZXRhZGF0YSk7XG4gIH1cbiAgcmV0dXJuIHRoaXMuX2Nvbm4ucmVxdWVzdChwYXJhbXMpLnRoZW5DYWxsKGNhbGxiYWNrKTtcbn07XG5cbi8qKlxuICogR2V0IHJlcG9ydCBpbnN0YW5jZSBmb3Igc3BlY2lmaWVkIGluc3RhbmNlIElEXG4gKlxuICogQG1ldGhvZCBBbmFseXRpY3N+UmVwb3J0I2luc3RhbmNlXG4gKiBAcGFyYW0ge1N0cmluZ30gaWQgLSBSZXBvcnQgaW5zdGFuY2UgSURcbiAqIEByZXR1cm5zIHtBbmFseXRpY3N+UmVwb3J0SW5zdGFuY2V9XG4gKi9cblJlcG9ydC5wcm90b3R5cGUuaW5zdGFuY2UgPSBmdW5jdGlvbihpZCkge1xuICByZXR1cm4gbmV3IFJlcG9ydEluc3RhbmNlKHRoaXMsIGlkKTtcbn07XG5cbi8qKlxuICogTGlzdCByZXBvcnQgaW5zdGFuY2VzIHdoaWNoIGhhZCBiZWVuIGV4ZWN1dGVkIGFzeW5jaHJvbm91c2x5XG4gKlxuICogQG1ldGhvZCBBbmFseXRpY3N+UmVwb3J0I2luc3RhbmNlc1xuICogQHBhcmFtIHtDYWxsYmFjay48QXJyYXkuPEFuYWx5dGljc35SZXBvcnRJbnN0YW5jZUF0dHJzPj59IFtjYWxsYmFja10gLSBDYWxsYmFjayBmdW5jdGlvblxuICogQHJldHVybnMge1Byb21pc2UuPEFycmF5LjxBbmFseXRpY3N+UmVwb3J0SW5zdGFuY2VBdHRycz4+fVxuICovXG5SZXBvcnQucHJvdG90eXBlLmluc3RhbmNlcyA9IGZ1bmN0aW9uKGNhbGxiYWNrKSB7XG4gIHZhciB1cmwgPSBbIHRoaXMuX2Nvbm4uX2Jhc2VVcmwoKSwgXCJhbmFseXRpY3NcIiwgXCJyZXBvcnRzXCIsIHRoaXMuaWQsIFwiaW5zdGFuY2VzXCIgXS5qb2luKCcvJyk7XG4gIHJldHVybiB0aGlzLl9jb25uLnJlcXVlc3QodXJsKS50aGVuQ2FsbChjYWxsYmFjayk7XG59O1xuXG4vKipcbiAqIERhc2hib2FyZCBvYmplY3QgaW4gdGhlIEFuYWx5dGljcyBBUElcbiAqXG4gKiBAcHJvdGVjdGVkXG4gKiBAY2xhc3MgQW5hbHl0aWNzLURhc2hib2FyZFxuICogQHBhcmFtIHtDb25uZWN0aW9ufSBjb25uIENvbm5lY3Rpb25cbiAqIEBwYXJhbSB7U3RyaW5nfSBpZCAtIFRoZSBJZFxuICovXG5cbnZhciBEYXNoYm9hcmQgPSBmdW5jdGlvbihjb25uLCBpZCkge1xuICB0aGlzLl9jb25uID0gY29ubjtcbiAgdGhpcy5pZCA9IGlkO1xufTtcblxuLyoqXG4gKiBEZXNjcmliZSBkYXNoYm9hcmQgbWV0YWRhdGFcbiAqXG4gKiBAbWV0aG9kIEFuYWx5dGljc35EYXNoYm9hcmQjZGVzY3JpYmVcbiAqIEBwYXJhbSB7Q2FsbGJhY2suPEFuYWx5dGljcy1EYXNoYm9hcmRNZXRhZGF0YT59IFtjYWxsYmFja10gLSBDYWxsYmFjayBmdW5jdGlvblxuICogQHJldHVybnMge1Byb21pc2UuPEFuYWx5dGljcy1EYXNoYm9hcmRNZXRhZGF0YT59XG4gKi9cbkRhc2hib2FyZC5wcm90b3R5cGUuZGVzY3JpYmUgPSBmdW5jdGlvbihjYWxsYmFjaykge1xuICB2YXIgdXJsID0gWyB0aGlzLl9jb25uLl9iYXNlVXJsKCksIFwiYW5hbHl0aWNzXCIsIFwiZGFzaGJvYXJkc1wiLCB0aGlzLmlkLCBcImRlc2NyaWJlXCIgXS5qb2luKCcvJyk7XG4gIHJldHVybiB0aGlzLl9jb25uLnJlcXVlc3QodXJsKS50aGVuQ2FsbChjYWxsYmFjayk7XG59O1xuXG4vKipcbiAqIEdldCBkZXRhaWxzIGFib3V0IGRhc2hib2FyZCBjb21wb25lbnRzXG4gKlxuICogQG1ldGhvZCBBbmFseXRpY3N+RGFzaGJvYXJkI2NvbXBvbmVudHNcbiAqIEBwYXJhbSB7Q2FsbGJhY2suPEFuYWx5dGljcy1EYXNoYm9hcmRDb21wb25lbnRNZXRhZGF0YT59IFtjYWxsYmFja10gLSBDYWxsYmFjayBmdW5jdGlvblxuICogQHJldHVybnMge1Byb21pc2UuPEFuYWx5dGljcy1EYXNoYm9hcmRDb21wb25lbnRNZXRhZGF0YT59XG4gKi9cbkRhc2hib2FyZC5wcm90b3R5cGUuY29tcG9uZW50cyA9IGZ1bmN0aW9uKGNvbXBvbmVudElkcywgY2FsbGJhY2spIHtcbiAgdmFyIHVybCA9IFsgdGhpcy5fY29ubi5fYmFzZVVybCgpLCBcImFuYWx5dGljc1wiLCBcImRhc2hib2FyZHNcIiwgdGhpcy5pZF0uam9pbignLycpO1xuICB2YXIgZGF0YSA9IHt9O1xuICBpZiAoXy5pc0Z1bmN0aW9uKGNvbXBvbmVudElkcykpIHtcbiAgICBjYWxsYmFjayA9IGNvbXBvbmVudElkcztcbiAgfSBlbHNlIGlmIChfLmlzQXJyYXkoY29tcG9uZW50SWRzKSkge1xuICAgIGRhdGEuY29tcG9uZW50SWRzID0gY29tcG9uZW50SWRzO1xuICB9IGVsc2UgaWYgKF8uaXNTdHJpbmcoY29tcG9uZW50SWRzKSkge1xuICAgIGRhdGEuY29tcG9uZW50SWRzID0gWyBjb21wb25lbnRJZHMgXTtcbiAgfVxuICB2YXIgcGFyYW1zID0geyBtZXRob2QgOiAnUE9TVCcsIHVybCA6IHVybCwgaGVhZGVycyA6IHsgXCJDb250ZW50LVR5cGVcIiA6IFwiYXBwbGljYXRpb24vanNvblwiIH0sIGJvZHkgOiBKU09OLnN0cmluZ2lmeShkYXRhKX07XG4gIHJldHVybiB0aGlzLl9jb25uLnJlcXVlc3QocGFyYW1zKS50aGVuQ2FsbChjYWxsYmFjayk7XG59O1xuXG4vKipcbiAqIEdldCBkYXNoYm9hcmQgc3RhdHVzXG4gKlxuICogQG1ldGhvZCBBbmFseXRpY3N+RGFzaGJvYXJkI3N0YXR1c1xuICogQHBhcmFtIHtDYWxsYmFjay48QW5hbHl0aWNzLURhc2hib2FyZFN0YXR1c01ldGFkYXRhPn0gW2NhbGxiYWNrXSAtIENhbGxiYWNrIGZ1bmN0aW9uXG4gKiBAcmV0dXJucyB7UHJvbWlzZS48QW5hbHl0aWNzLURhc2hib2FyZFN0YXR1c01ldGFkYXRhPn1cbiAqL1xuRGFzaGJvYXJkLnByb3RvdHlwZS5zdGF0dXMgPSBmdW5jdGlvbihjYWxsYmFjaykge1xuICB2YXIgdXJsID0gWyB0aGlzLl9jb25uLl9iYXNlVXJsKCksIFwiYW5hbHl0aWNzXCIsIFwiZGFzaGJvYXJkc1wiLCB0aGlzLmlkLCBcInN0YXR1c1wiIF0uam9pbignLycpO1xuICByZXR1cm4gdGhpcy5fY29ubi5yZXF1ZXN0KHVybCkudGhlbkNhbGwoY2FsbGJhY2spO1xufTtcblxuLyoqXG4gKiBSZWZyZXNoIGEgZGFzaGJvYXJkXG4gKlxuICogQG1ldGhvZCBBbmFseXRpY3N+RGFzaGJvYXJkI3JlZnJlc2hcbiAqIEBwYXJhbSB7Q2FsbGJhY2suPEFuYWx5dGljcy1EYXNoYm9hcmRTdGF0dXNVcmw+fSBbY2FsbGJhY2tdIC0gQ2FsbGJhY2sgZnVuY3Rpb25cbiAqIEByZXR1cm5zIHtQcm9taXNlLjxBbmFseXRpY3MtRGFzaGJvYXJkU3RhdHVzVXJsPn1cbiAqL1xuRGFzaGJvYXJkLnByb3RvdHlwZS5yZWZyZXNoID0gZnVuY3Rpb24oY2FsbGJhY2spIHtcbiAgdmFyIHVybCA9IFsgdGhpcy5fY29ubi5fYmFzZVVybCgpLCBcImFuYWx5dGljc1wiLCBcImRhc2hib2FyZHNcIiwgdGhpcy5pZCBdLmpvaW4oJy8nKTtcbiAgdmFyIHBhcmFtcyA9IHsgbWV0aG9kIDogJ1BVVCcsIHVybCA6IHVybCwgYm9keTogJycgfTtcbiAgcmV0dXJuIHRoaXMuX2Nvbm4ucmVxdWVzdChwYXJhbXMpLnRoZW5DYWxsKGNhbGxiYWNrKTtcbn07XG5cbi8qKlxuICogQ2xvbmUgYSBkYXNoYm9hcmRcbiAqXG4gKiBAbWV0aG9kIEFuYWx5dGljc35EYXNoYm9hcmQjY2xvbmVcbiAqIEBwYXJhbSB7Q2FsbGJhY2suPEFuYWx5dGljcy1EYXNoYm9hcmRNZXRhZGF0YT59IFtjYWxsYmFja10gLSBDYWxsYmFjayBmdW5jdGlvblxuICogQHJldHVybnMge1Byb21pc2UuPEFuYWx5dGljcy1EYXNoYm9hcmRNZXRhZGF0YT59XG4gKi9cbkRhc2hib2FyZC5wcm90b3R5cGUuY2xvbmUgPSBmdW5jdGlvbihuYW1lLCBmb2xkZXJpZCwgY2FsbGJhY2spIHtcbiAgdmFyIHVybCA9IFsgdGhpcy5fY29ubi5fYmFzZVVybCgpLCBcImFuYWx5dGljc1wiLCBcImRhc2hib2FyZHNcIiBdLmpvaW4oJy8nKTtcbiAgdXJsICs9IFwiP2Nsb25lSWQ9XCIgKyB0aGlzLmlkO1xuICB2YXIgZGF0YSA9IHt9O1xuXG4gIGlmIChfLmlzT2JqZWN0KG5hbWUpKSB7XG4gICAgZGF0YSA9IG5hbWU7XG4gICAgY2FsbGJhY2sgPSBmb2xkZXJpZDtcbiAgfSBlbHNlIHtcbiAgICBkYXRhLm5hbWUgPSBuYW1lO1xuICAgIGRhdGEuZm9sZGVySWQgPSBmb2xkZXJpZDtcbiAgfVxuICB2YXIgcGFyYW1zID0geyBtZXRob2QgOiAnUE9TVCcsIHVybCA6IHVybCwgaGVhZGVycyA6IHsgXCJDb250ZW50LVR5cGVcIiA6IFwiYXBwbGljYXRpb24vanNvblwiIH0sIGJvZHkgOiBKU09OLnN0cmluZ2lmeShkYXRhKX07XG5cbiAgcmV0dXJuIHRoaXMuX2Nvbm4ucmVxdWVzdChwYXJhbXMpLnRoZW5DYWxsKGNhbGxiYWNrKTtcbn07XG5cbi8qKlxuICogU3lub255bSBvZiBBbmFseXRpY3N+RGFzaGJvYXJkI2Rlc3Ryb3koKVxuICpcbiAqIEBtZXRob2QgQW5hbHl0aWNzfkRhc2hib2FyZCNkZWxldGVcbiAqIEBwYXJhbSB7Q2FsbGJhY2suPEFuYWx5dGljc35EYXNoYm9hcmRSZXN1bHQ+fSBbY2FsbGJhY2tdIC0gQ2FsbGJhY2sgZnVuY3Rpb25cbiAqIEByZXR1cm5zIHtQcm9taXNlLjxBbmFseXRpY3N+RGFzaGJvYXJkUmVzdWx0Pn1cbiAqL1xuLyoqXG4gKiBTeW5vbnltIG9mIEFuYWx5dGljc35EYXNoYm9hcmQjZGVzdHJveSgpXG4gKlxuICogQG1ldGhvZCBBbmFseXRpY3N+RGFzaGJvYXJkI2RlbFxuICogQHBhcmFtIHtDYWxsYmFjay48QW5hbHl0aWNzfkRhc2hib2FyZFJlc3VsdD59IFtjYWxsYmFja10gLSBDYWxsYmFjayBmdW5jdGlvblxuICogQHJldHVybnMge1Byb21pc2UuPEFuYWx5dGljc35EYXNoYm9hcmRSZXN1bHQ+fVxuICovXG4vKipcbiAqIERlc3Ryb3kgYSBkYXNoYm9hcmRcbiAqXG4gKiBAbWV0aG9kIEFuYWx5dGljc35EYXNoYm9hcmQjZGVzdHJveVxuICogQHBhcmFtIHtDYWxsYmFjay48QW5hbHl0aWNzfkRhc2hib2FyZFJlc3VsdD59IFtjYWxsYmFja10gLSBDYWxsYmFjayBmdW5jdGlvblxuICogQHJldHVybnMge1Byb21pc2UuPEFuYWx5dGljc35EYXNoYm9hcmRSZXN1bHQ+fVxuICovXG5EYXNoYm9hcmQucHJvdG90eXBlW1wiZGVsZXRlXCJdID1cbkRhc2hib2FyZC5wcm90b3R5cGUuZGVsID1cbkRhc2hib2FyZC5wcm90b3R5cGUuZGVzdHJveSA9IGZ1bmN0aW9uKGNhbGxiYWNrKSB7XG4gIHZhciB1cmwgPSBbIHRoaXMuX2Nvbm4uX2Jhc2VVcmwoKSwgXCJhbmFseXRpY3NcIiwgXCJkYXNoYm9hcmRzXCIsIHRoaXMuaWQgXS5qb2luKCcvJyk7XG4gIHJldHVybiB0aGlzLl9jb25uLnJlcXVlc3Qoe21ldGhvZDogJ0RFTEVURScsIHVybDogdXJsfSkudGhlbkNhbGwoY2FsbGJhY2spO1xufTtcblxuLyoqXG4gKiBBUEkgY2xhc3MgZm9yIEFuYWx5dGljcyBBUElcbiAqXG4gKiBAY2xhc3NcbiAqIEBwYXJhbSB7Q29ubmVjdGlvbn0gY29ubiBDb25uZWN0aW9uXG4gKi9cbnZhciBBbmFseXRpY3MgPSBmdW5jdGlvbihjb25uKSB7XG4gIHRoaXMuX2Nvbm4gPSBjb25uO1xufTtcblxuLyoqXG4gKiBHZXQgcmVwb3J0IG9iamVjdCBvZiBBbmFseXRpY3MgQVBJXG4gKlxuICogQHBhcmFtIHtTdHJpbmd9IGlkIC0gUmVwb3J0IElkXG4gKiBAcmV0dXJucyB7QW5hbHl0aWNzflJlcG9ydH1cbiAqL1xuQW5hbHl0aWNzLnByb3RvdHlwZS5yZXBvcnQgPSBmdW5jdGlvbihpZCkge1xuICByZXR1cm4gbmV3IFJlcG9ydCh0aGlzLl9jb25uLCBpZCk7XG59O1xuXG4vKipcbiAqIEdldCByZWNlbnQgcmVwb3J0IGxpc3RcbiAqXG4gKiBAcGFyYW0ge0NhbGxiYWNrLjxBcnJheS48QW5hbHl0aWNzflJlcG9ydEluZm8+Pn0gW2NhbGxiYWNrXSAtIENhbGxiYWNrIGZ1bmN0aW9uXG4gKiBAcmV0dXJucyB7UHJvbWlzZS48QXJyYXkuPEFuYWx5dGljc35SZXBvcnRJbmZvPj59XG4gKi9cbkFuYWx5dGljcy5wcm90b3R5cGUucmVwb3J0cyA9IGZ1bmN0aW9uKGNhbGxiYWNrKSB7XG4gIHZhciB1cmwgPSBbIHRoaXMuX2Nvbm4uX2Jhc2VVcmwoKSwgXCJhbmFseXRpY3NcIiwgXCJyZXBvcnRzXCIgXS5qb2luKCcvJyk7XG4gIHJldHVybiB0aGlzLl9jb25uLnJlcXVlc3QodXJsKS50aGVuQ2FsbChjYWxsYmFjayk7XG59O1xuXG4vKipcbiAqIEdldCBkYXNoYm9hcmQgb2JqZWN0IG9mIEFuYWx5dGljcyBBUElcbiAqXG4gKiBAcGFyYW0ge1N0cmluZ30gaWQgLSBEYXNoYm9hcmQgSWRcbiAqIEByZXR1cm5zIHtBbmFseXRpY3N+RGFzaGJvYXJkfVxuICovXG5BbmFseXRpY3MucHJvdG90eXBlLmRhc2hib2FyZCA9IGZ1bmN0aW9uKGlkKSB7XG4gIHJldHVybiBuZXcgRGFzaGJvYXJkKHRoaXMuX2Nvbm4sIGlkKTtcbn07XG5cbi8qKlxuICogR2V0IHJlY2VudCBkYXNoYm9hcmQgbGlzdFxuICpcbiAqIEBwYXJhbSB7Q2FsbGJhY2suPEFycmF5LjxBbmFseXRpY3N+RGFzaGJvYXJkSW5mbz4+fSBbY2FsbGJhY2tdIC0gQ2FsbGJhY2sgZnVuY3Rpb25cbiAqIEByZXR1cm5zIHtQcm9taXNlLjxBcnJheS48QW5hbHl0aWNzfkRhc2hib2FyZEluZm8+Pn1cbiAqL1xuQW5hbHl0aWNzLnByb3RvdHlwZS5kYXNoYm9hcmRzID0gZnVuY3Rpb24oY2FsbGJhY2spIHtcbiAgdmFyIHVybCA9IFsgdGhpcy5fY29ubi5fYmFzZVVybCgpLCBcImFuYWx5dGljc1wiLCBcImRhc2hib2FyZHNcIiBdLmpvaW4oJy8nKTtcbiAgcmV0dXJuIHRoaXMuX2Nvbm4ucmVxdWVzdCh1cmwpLnRoZW5DYWxsKGNhbGxiYWNrKTtcbn07XG5cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAqIFJlZ2lzdGVyIGhvb2sgaW4gY29ubmVjdGlvbiBpbnN0YW50aWF0aW9uIGZvciBkeW5hbWljYWxseSBhZGRpbmcgdGhpcyBBUEkgbW9kdWxlIGZlYXR1cmVzXG4gKi9cbmpzZm9yY2Uub24oJ2Nvbm5lY3Rpb246bmV3JywgZnVuY3Rpb24oY29ubikge1xuICBjb25uLmFuYWx5dGljcyA9IG5ldyBBbmFseXRpY3MoY29ubik7XG59KTtcblxuXG5tb2R1bGUuZXhwb3J0cyA9IEFuYWx5dGljcztcbiJdfQ==
@@ -1,2 +0,0 @@
1
- !function(t){var n;"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):(n=(n=(n=(n="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:this).jsforce||(n.jsforce={})).modules||(n.modules={})).api||(n.api={})).Analytics=t()}(function(){return function o(r,i,s){function a(n,t){if(!i[n]){if(!r[n]){var e="function"==typeof require&&require;if(!t&&e)return e(n,!0);if(c)return c(n,!0);throw(e=new Error("Cannot find module '"+n+"'")).code="MODULE_NOT_FOUND",e}e=i[n]={exports:{}},r[n][0].call(e.exports,function(t){return a(r[n][1][t]||t)},e,e.exports,o,r,i,s)}return i[n].exports}for(var c="function"==typeof require&&require,t=0;t<s.length;t++)a(s[t]);return a}({1:[function(t,n,e){"use strict";function o(t,n){this._report=t,this._conn=t._conn,this.id=n}var i=window.jsforce.require("lodash/core"),r=window.jsforce.require("./core");window.jsforce.require("./promise");o.prototype.retrieve=function(t){var n=this._conn,e=this._report,e=[n._baseUrl(),"analytics","reports",e.id,"instances",this.id].join("/");return n.request(e).thenCall(t)};function s(t,n){this._conn=t,this.id=n}s.prototype.describe=function(t){var n=[this._conn._baseUrl(),"analytics","reports",this.id,"describe"].join("/");return this._conn.request(n).thenCall(t)},s.prototype.delete=s.prototype.del=s.prototype.destroy=function(t){var n=[this._conn._baseUrl(),"analytics","reports",this.id].join("/");return this._conn.request({method:"DELETE",url:n}).thenCall(t)},s.prototype.clone=function(t,n){var e=[this._conn._baseUrl(),"analytics","reports"].join("/"),t={reportMetadata:{name:t}},t={method:"POST",url:e+="?cloneId="+this.id,headers:{"Content-Type":"application/json"},body:JSON.stringify(t)};return this._conn.request(t).thenCall(n)},s.prototype.explain=function(t){var n="/query/?explain="+this.id;return this._conn.request(n).thenCall(t)},s.prototype.run=s.prototype.exec=s.prototype.execute=function(t,n){t=t||{},i.isFunction(t)&&(n=t,t={});var e=[this._conn._baseUrl(),"analytics","reports",this.id].join("/");e+="?includeDetails="+(t.details?"true":"false");e={method:t.metadata?"POST":"GET",url:e};return t.metadata&&(e.headers={"Content-Type":"application/json"},e.body=JSON.stringify(t.metadata)),this._conn.request(e).thenCall(n)},s.prototype.executeAsync=function(t,n){t=t||{},i.isFunction(t)&&(n=t,t={});var e=[this._conn._baseUrl(),"analytics","reports",this.id,"instances"].join("/");t.details&&(e+="?includeDetails=true");e={method:"POST",url:e,body:""};return t.metadata&&(e.headers={"Content-Type":"application/json"},e.body=JSON.stringify(t.metadata)),this._conn.request(e).thenCall(n)},s.prototype.instance=function(t){return new o(this,t)},s.prototype.instances=function(t){var n=[this._conn._baseUrl(),"analytics","reports",this.id,"instances"].join("/");return this._conn.request(n).thenCall(t)};function a(t,n){this._conn=t,this.id=n}a.prototype.describe=function(t){var n=[this._conn._baseUrl(),"analytics","dashboards",this.id,"describe"].join("/");return this._conn.request(n).thenCall(t)},a.prototype.components=function(t,n){var e=[this._conn._baseUrl(),"analytics","dashboards",this.id].join("/"),o={};i.isFunction(t)?n=t:i.isArray(t)?o.componentIds=t:i.isString(t)&&(o.componentIds=[t]);o={method:"POST",url:e,headers:{"Content-Type":"application/json"},body:JSON.stringify(o)};return this._conn.request(o).thenCall(n)},a.prototype.status=function(t){var n=[this._conn._baseUrl(),"analytics","dashboards",this.id,"status"].join("/");return this._conn.request(n).thenCall(t)},a.prototype.refresh=function(t){var n={method:"PUT",url:[this._conn._baseUrl(),"analytics","dashboards",this.id].join("/"),body:""};return this._conn.request(n).thenCall(t)},a.prototype.clone=function(t,n,e){var o=[this._conn._baseUrl(),"analytics","dashboards"].join("/");o+="?cloneId="+this.id;var r={};i.isObject(t)?(r=t,e=n):(r.name=t,r.folderId=n);r={method:"POST",url:o,headers:{"Content-Type":"application/json"},body:JSON.stringify(r)};return this._conn.request(r).thenCall(e)},a.prototype.delete=a.prototype.del=a.prototype.destroy=function(t){var n=[this._conn._baseUrl(),"analytics","dashboards",this.id].join("/");return this._conn.request({method:"DELETE",url:n}).thenCall(t)};function c(t){this._conn=t}c.prototype.report=function(t){return new s(this._conn,t)},c.prototype.reports=function(t){var n=[this._conn._baseUrl(),"analytics","reports"].join("/");return this._conn.request(n).thenCall(t)},c.prototype.dashboard=function(t){return new a(this._conn,t)},c.prototype.dashboards=function(t){var n=[this._conn._baseUrl(),"analytics","dashboards"].join("/");return this._conn.request(n).thenCall(t)},r.on("connection:new",function(t){t.analytics=new c(t)}),n.exports=c},{}]},{},[1])(1)});
2
- //# sourceMappingURL=jsforce-api-analytics.min.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["node_modules/browser-pack/_prelude.js","lib/api/analytics.js"],"names":["f","g","exports","module","define","amd","window","global","self","this","jsforce","modules","api","Analytics","r","e","n","t","o","i","c","require","u","a","Error","code","p","call","length","1","ReportInstance","report","id","_report","_conn","_","prototype","retrieve","callback","conn","url","_baseUrl","join","request","thenCall","Report","describe","del","destroy","method","clone","name","data","reportMetadata","params","headers","Content-Type","body","JSON","stringify","explain","run","exec","execute","options","isFunction","details","metadata","executeAsync","instance","instances","Dashboard","components","componentIds","isArray","isString","status","refresh","folderid","isObject","folderId","reports","dashboard","dashboards","on","analytics"],"mappings":"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","file":"jsforce-api-analytics.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 Manages Salesforce Analytics API\n * @author Shinichi Tomita <shinichi.tomita@gmail.com>\n */\n\n'use strict';\n\nvar _ = window.jsforce.require('lodash/core'),\n jsforce = window.jsforce.require('./core'),\n Promise = window.jsforce.require('./promise');\n\n/**\n * Report instance to retrieving asynchronously executed result\n *\n * @protected\n * @class Analytics~ReportInstance\n * @param {Analytics~Report} report - Report\n * @param {String} id - Report instance id\n */\nvar ReportInstance = function(report, id) {\n this._report = report;\n this._conn = report._conn;\n this.id = id;\n};\n\n/**\n * Retrieve report result asynchronously executed\n *\n * @method Analytics~ReportInstance#retrieve\n * @param {Callback.<Analytics~ReportResult>} [callback] - Callback function\n * @returns {Promise.<Analytics~ReportResult>}\n */\nReportInstance.prototype.retrieve = function(callback) {\n var conn = this._conn,\n report = this._report;\n var url = [ conn._baseUrl(), \"analytics\", \"reports\", report.id, \"instances\", this.id ].join('/');\n return conn.request(url).thenCall(callback);\n};\n\n/**\n * Report object in Analytics API\n *\n * @protected\n * @class Analytics~Report\n * @param {Connection} conn Connection\n */\nvar Report = function(conn, id) {\n this._conn = conn;\n this.id = id;\n};\n\n/**\n * Describe report metadata\n *\n * @method Analytics~Report#describe\n * @param {Callback.<Analytics~ReportMetadata>} [callback] - Callback function\n * @returns {Promise.<Analytics~ReportMetadata>}\n */\nReport.prototype.describe = function(callback) {\n var url = [ this._conn._baseUrl(), \"analytics\", \"reports\", this.id, \"describe\" ].join('/');\n return this._conn.request(url).thenCall(callback);\n};\n\n/**\n * Synonym of Analytics~Report#destroy()\n *\n * @method Analytics~Report#delete\n * @param {Callback.<Analytics~ReportResult>} [callback] - Callback function\n * @returns {Promise.<Analytics~ReportResult>}\n */\n/**\n * Synonym of Analytics~Report#destroy()\n *\n * @method Analytics~Report#del\n * @param {Callback.<Analytics~ReportResult>} [callback] - Callback function\n * @returns {Promise.<Analytics~ReportResult>}\n */\n/**\n * Destroy a report\n *\n * @method Analytics~Report#destroy\n * @param {Callback.<Analytics~ReportResult>} [callback] - Callback function\n * @returns {Promise.<Analytics~ReportResult>}\n */\nReport.prototype[\"delete\"] =\nReport.prototype.del =\nReport.prototype.destroy = function(callback) {\n var url = [ this._conn._baseUrl(), \"analytics\", \"reports\", this.id ].join('/');\n return this._conn.request({method: 'DELETE', url: url}).thenCall(callback);\n};\n\n/**\n * Clones a given report\n *\n * @method Analytics~Report#clone\n * @param {String} name - The name of the new report\n * @param {Callback.<Analytics~ReportResult>} [callback] - Callback function\n * @returns {Promise.<Analytics~ReportResult>}\n */\nReport.prototype.clone = function(name, callback) {\n var url = [ this._conn._baseUrl(), \"analytics\", \"reports\" ].join('/');\n url += \"?cloneId=\" + this.id;\n var data = { reportMetadata: { name: name } };\n var params = { method : 'POST', url: url, headers: { \"Content-Type\" : \"application/json\" }, body: JSON.stringify(data)};\n\n return this._conn.request(params).thenCall(callback);\n};\n\n/**\n * Explain plan for executing report\n *\n * @method Analytics~Report#explain\n * @param {Callback.<ExplainInfo>} [callback] - Callback function\n * @returns {Promise.<ExplainInfo>}\n */\nReport.prototype.explain = function(callback) {\n var url = \"/query/?explain=\" + this.id;\n return this._conn.request(url).thenCall(callback);\n};\n\n\n/**\n * Run report synchronously\n *\n * @method Analytics~Report#execute\n * @param {Object} [options] - Options\n * @param {Boolean} options.details - Flag if include detail in result\n * @param {Analytics~ReportMetadata} options.metadata - Overriding report metadata\n * @param {Callback.<Analytics~ReportResult>} [callback] - Callback function\n * @returns {Promise.<Analytics~ReportResult>}\n */\nReport.prototype.run =\nReport.prototype.exec =\nReport.prototype.execute = function(options, callback) {\n options = options || {};\n if (_.isFunction(options)) {\n callback = options;\n options = {};\n }\n var url = [ this._conn._baseUrl(), \"analytics\", \"reports\", this.id ].join('/');\n url += \"?includeDetails=\" + (options.details ? \"true\" : \"false\");\n var params = { method : options.metadata ? 'POST' : 'GET', url : url };\n if (options.metadata) {\n params.headers = { \"Content-Type\" : \"application/json\" };\n params.body = JSON.stringify(options.metadata);\n }\n return this._conn.request(params).thenCall(callback);\n};\n\n\n/**\n * Run report asynchronously\n *\n * @method Analytics~Report#executeAsync\n * @param {Object} [options] - Options\n * @param {Boolean} options.details - Flag if include detail in result\n * @param {Analytics~ReportMetadata} options.metadata - Overriding report metadata\n * @param {Callback.<Analytics~ReportInstanceAttrs>} [callback] - Callback function\n * @returns {Promise.<Analytics~ReportInstanceAttrs>}\n */\nReport.prototype.executeAsync = function(options, callback) {\n options = options || {};\n if (_.isFunction(options)) {\n callback = options;\n options = {};\n }\n var url = [ this._conn._baseUrl(), \"analytics\", \"reports\", this.id, \"instances\" ].join('/');\n if (options.details) {\n url += \"?includeDetails=true\";\n }\n var params = { method : 'POST', url : url, body: \"\" };\n if (options.metadata) {\n params.headers = { \"Content-Type\" : \"application/json\" };\n params.body = JSON.stringify(options.metadata);\n }\n return this._conn.request(params).thenCall(callback);\n};\n\n/**\n * Get report instance for specified instance ID\n *\n * @method Analytics~Report#instance\n * @param {String} id - Report instance ID\n * @returns {Analytics~ReportInstance}\n */\nReport.prototype.instance = function(id) {\n return new ReportInstance(this, id);\n};\n\n/**\n * List report instances which had been executed asynchronously\n *\n * @method Analytics~Report#instances\n * @param {Callback.<Array.<Analytics~ReportInstanceAttrs>>} [callback] - Callback function\n * @returns {Promise.<Array.<Analytics~ReportInstanceAttrs>>}\n */\nReport.prototype.instances = function(callback) {\n var url = [ this._conn._baseUrl(), \"analytics\", \"reports\", this.id, \"instances\" ].join('/');\n return this._conn.request(url).thenCall(callback);\n};\n\n/**\n * Dashboard object in the Analytics API\n *\n * @protected\n * @class Analytics-Dashboard\n * @param {Connection} conn Connection\n * @param {String} id - The Id\n */\n\nvar Dashboard = function(conn, id) {\n this._conn = conn;\n this.id = id;\n};\n\n/**\n * Describe dashboard metadata\n *\n * @method Analytics~Dashboard#describe\n * @param {Callback.<Analytics-DashboardMetadata>} [callback] - Callback function\n * @returns {Promise.<Analytics-DashboardMetadata>}\n */\nDashboard.prototype.describe = function(callback) {\n var url = [ this._conn._baseUrl(), \"analytics\", \"dashboards\", this.id, \"describe\" ].join('/');\n return this._conn.request(url).thenCall(callback);\n};\n\n/**\n * Get details about dashboard components\n *\n * @method Analytics~Dashboard#components\n * @param {Callback.<Analytics-DashboardComponentMetadata>} [callback] - Callback function\n * @returns {Promise.<Analytics-DashboardComponentMetadata>}\n */\nDashboard.prototype.components = function(componentIds, callback) {\n var url = [ this._conn._baseUrl(), \"analytics\", \"dashboards\", this.id].join('/');\n var data = {};\n if (_.isFunction(componentIds)) {\n callback = componentIds;\n } else if (_.isArray(componentIds)) {\n data.componentIds = componentIds;\n } else if (_.isString(componentIds)) {\n data.componentIds = [ componentIds ];\n }\n var params = { method : 'POST', url : url, headers : { \"Content-Type\" : \"application/json\" }, body : JSON.stringify(data)};\n return this._conn.request(params).thenCall(callback);\n};\n\n/**\n * Get dashboard status\n *\n * @method Analytics~Dashboard#status\n * @param {Callback.<Analytics-DashboardStatusMetadata>} [callback] - Callback function\n * @returns {Promise.<Analytics-DashboardStatusMetadata>}\n */\nDashboard.prototype.status = function(callback) {\n var url = [ this._conn._baseUrl(), \"analytics\", \"dashboards\", this.id, \"status\" ].join('/');\n return this._conn.request(url).thenCall(callback);\n};\n\n/**\n * Refresh a dashboard\n *\n * @method Analytics~Dashboard#refresh\n * @param {Callback.<Analytics-DashboardStatusUrl>} [callback] - Callback function\n * @returns {Promise.<Analytics-DashboardStatusUrl>}\n */\nDashboard.prototype.refresh = function(callback) {\n var url = [ this._conn._baseUrl(), \"analytics\", \"dashboards\", this.id ].join('/');\n var params = { method : 'PUT', url : url, body: '' };\n return this._conn.request(params).thenCall(callback);\n};\n\n/**\n * Clone a dashboard\n *\n * @method Analytics~Dashboard#clone\n * @param {Callback.<Analytics-DashboardMetadata>} [callback] - Callback function\n * @returns {Promise.<Analytics-DashboardMetadata>}\n */\nDashboard.prototype.clone = function(name, folderid, callback) {\n var url = [ this._conn._baseUrl(), \"analytics\", \"dashboards\" ].join('/');\n url += \"?cloneId=\" + this.id;\n var data = {};\n\n if (_.isObject(name)) {\n data = name;\n callback = folderid;\n } else {\n data.name = name;\n data.folderId = folderid;\n }\n var params = { method : 'POST', url : url, headers : { \"Content-Type\" : \"application/json\" }, body : JSON.stringify(data)};\n\n return this._conn.request(params).thenCall(callback);\n};\n\n/**\n * Synonym of Analytics~Dashboard#destroy()\n *\n * @method Analytics~Dashboard#delete\n * @param {Callback.<Analytics~DashboardResult>} [callback] - Callback function\n * @returns {Promise.<Analytics~DashboardResult>}\n */\n/**\n * Synonym of Analytics~Dashboard#destroy()\n *\n * @method Analytics~Dashboard#del\n * @param {Callback.<Analytics~DashboardResult>} [callback] - Callback function\n * @returns {Promise.<Analytics~DashboardResult>}\n */\n/**\n * Destroy a dashboard\n *\n * @method Analytics~Dashboard#destroy\n * @param {Callback.<Analytics~DashboardResult>} [callback] - Callback function\n * @returns {Promise.<Analytics~DashboardResult>}\n */\nDashboard.prototype[\"delete\"] =\nDashboard.prototype.del =\nDashboard.prototype.destroy = function(callback) {\n var url = [ this._conn._baseUrl(), \"analytics\", \"dashboards\", this.id ].join('/');\n return this._conn.request({method: 'DELETE', url: url}).thenCall(callback);\n};\n\n/**\n * API class for Analytics API\n *\n * @class\n * @param {Connection} conn Connection\n */\nvar Analytics = function(conn) {\n this._conn = conn;\n};\n\n/**\n * Get report object of Analytics API\n *\n * @param {String} id - Report Id\n * @returns {Analytics~Report}\n */\nAnalytics.prototype.report = function(id) {\n return new Report(this._conn, id);\n};\n\n/**\n * Get recent report list\n *\n * @param {Callback.<Array.<Analytics~ReportInfo>>} [callback] - Callback function\n * @returns {Promise.<Array.<Analytics~ReportInfo>>}\n */\nAnalytics.prototype.reports = function(callback) {\n var url = [ this._conn._baseUrl(), \"analytics\", \"reports\" ].join('/');\n return this._conn.request(url).thenCall(callback);\n};\n\n/**\n * Get dashboard object of Analytics API\n *\n * @param {String} id - Dashboard Id\n * @returns {Analytics~Dashboard}\n */\nAnalytics.prototype.dashboard = function(id) {\n return new Dashboard(this._conn, id);\n};\n\n/**\n * Get recent dashboard list\n *\n * @param {Callback.<Array.<Analytics~DashboardInfo>>} [callback] - Callback function\n * @returns {Promise.<Array.<Analytics~DashboardInfo>>}\n */\nAnalytics.prototype.dashboards = function(callback) {\n var url = [ this._conn._baseUrl(), \"analytics\", \"dashboards\" ].join('/');\n return this._conn.request(url).thenCall(callback);\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.analytics = new Analytics(conn);\n});\n\n\nmodule.exports = Analytics;\n"]}