@esri/solution-workflow 5.2.1 → 5.2.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (56) hide show
  1. package/README.md +3 -6
  2. package/dist/cjs/index.js.map +1 -0
  3. package/dist/{esm/workflow/src → cjs}/workflow.d.ts +12 -3
  4. package/dist/cjs/workflow.js +118 -0
  5. package/dist/cjs/workflow.js.map +1 -0
  6. package/dist/esm/index.js.map +1 -0
  7. package/dist/{cjs/workflow/src → esm}/workflow.d.ts +12 -3
  8. package/dist/esm/workflow.js +112 -0
  9. package/dist/esm/workflow.js.map +1 -0
  10. package/package.json +3 -3
  11. package/dist/cjs/common/src/generalHelpers.d.ts +0 -400
  12. package/dist/cjs/common/src/generalHelpers.js +0 -877
  13. package/dist/cjs/common/src/generalHelpers.js.map +0 -1
  14. package/dist/cjs/common/src/getItemTypeAbbrev.d.ts +0 -19
  15. package/dist/cjs/common/src/getItemTypeAbbrev.js +0 -186
  16. package/dist/cjs/common/src/getItemTypeAbbrev.js.map +0 -1
  17. package/dist/cjs/common/src/interfaces.d.ts +0 -1344
  18. package/dist/cjs/common/src/interfaces.js +0 -77
  19. package/dist/cjs/common/src/interfaces.js.map +0 -1
  20. package/dist/cjs/common/src/libConnectors.d.ts +0 -73
  21. package/dist/cjs/common/src/libConnectors.js +0 -115
  22. package/dist/cjs/common/src/libConnectors.js.map +0 -1
  23. package/dist/cjs/common/test/mocks/templates.d.ts +0 -71
  24. package/dist/cjs/common/test/mocks/templates.js +0 -1220
  25. package/dist/cjs/common/test/mocks/templates.js.map +0 -1
  26. package/dist/cjs/common/test/mocks/utils.d.ts +0 -605
  27. package/dist/cjs/common/test/mocks/utils.js +0 -1222
  28. package/dist/cjs/common/test/mocks/utils.js.map +0 -1
  29. package/dist/cjs/workflow/src/index.js.map +0 -1
  30. package/dist/cjs/workflow/src/workflow.js +0 -51
  31. package/dist/cjs/workflow/src/workflow.js.map +0 -1
  32. package/dist/esm/common/src/generalHelpers.d.ts +0 -400
  33. package/dist/esm/common/src/generalHelpers.js +0 -829
  34. package/dist/esm/common/src/generalHelpers.js.map +0 -1
  35. package/dist/esm/common/src/getItemTypeAbbrev.d.ts +0 -19
  36. package/dist/esm/common/src/getItemTypeAbbrev.js +0 -182
  37. package/dist/esm/common/src/getItemTypeAbbrev.js.map +0 -1
  38. package/dist/esm/common/src/interfaces.d.ts +0 -1344
  39. package/dist/esm/common/src/interfaces.js +0 -72
  40. package/dist/esm/common/src/interfaces.js.map +0 -1
  41. package/dist/esm/common/src/libConnectors.d.ts +0 -73
  42. package/dist/esm/common/src/libConnectors.js +0 -105
  43. package/dist/esm/common/src/libConnectors.js.map +0 -1
  44. package/dist/esm/common/test/mocks/templates.d.ts +0 -71
  45. package/dist/esm/common/test/mocks/templates.js +0 -1195
  46. package/dist/esm/common/test/mocks/templates.js.map +0 -1
  47. package/dist/esm/common/test/mocks/utils.d.ts +0 -605
  48. package/dist/esm/common/test/mocks/utils.js +0 -1177
  49. package/dist/esm/common/test/mocks/utils.js.map +0 -1
  50. package/dist/esm/workflow/src/index.js.map +0 -1
  51. package/dist/esm/workflow/src/workflow.js +0 -45
  52. package/dist/esm/workflow/src/workflow.js.map +0 -1
  53. /package/dist/cjs/{workflow/src/index.d.ts → index.d.ts} +0 -0
  54. /package/dist/cjs/{workflow/src/index.js → index.js} +0 -0
  55. /package/dist/esm/{workflow/src/index.d.ts → index.d.ts} +0 -0
  56. /package/dist/esm/{workflow/src/index.js → index.js} +0 -0
@@ -1,1177 +0,0 @@
1
- /** @license
2
- * Copyright 2018 Esri
3
- *
4
- * Licensed under the Apache License, Version 2.0 (the "License");
5
- * you may not use this file except in compliance with the License.
6
- * You may obtain a copy of the License at
7
- *
8
- * http://www.apache.org/licenses/LICENSE-2.0
9
- *
10
- * Unless required by applicable law or agreed to in writing, software
11
- * distributed under the License is distributed on an "AS IS" BASIS,
12
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
- * See the License for the specific language governing permissions and
14
- * limitations under the License.
15
- */
16
- import * as interfaces from "../../src/interfaces";
17
- import * as generalHelpers from "../../src/generalHelpers";
18
- // -------------------------------------------------------------------------------------------------------------------//
19
- export const ORG_URL = "https://myorg.maps.arcgis.com";
20
- export const PORTAL_URL = "https://myorg.maps.arcgis.com";
21
- export const TOMORROW = (function () {
22
- const now = new Date();
23
- now.setDate(now.getDate() + 1);
24
- return now;
25
- })();
26
- export const YESTERDAY = (function () {
27
- const now = new Date();
28
- now.setDate(now.getDate() - 1);
29
- return now;
30
- })();
31
- export const ArcgisRestSuccessFailSimple = {
32
- success: false
33
- };
34
- export const ArcgisRestSuccessFailStruct = {
35
- success: false,
36
- error: {
37
- success: false
38
- }
39
- };
40
- export const SERVER_INFO = {
41
- currentVersion: 10.71,
42
- fullVersion: "10.7.1",
43
- soapUrl: "http://server/arcgis/services",
44
- secureSoapUrl: "https://server/arcgis/services",
45
- owningSystemUrl: PORTAL_URL,
46
- authInfo: {}
47
- };
48
- export const UTILITY_SERVER_INFO = {
49
- currentVersion: 10.71,
50
- fullVersion: "10.7.1",
51
- soapUrl: "https://utility.arcgisonline.com/arcgis/services",
52
- secureSoapUrl: "https://utility.arcgisonline.com/arcgis/services",
53
- authInfo: {
54
- isTokenBasedSecurity: true,
55
- tokenServicesUrl: "https://utility.arcgisonline.com/arcgis/tokens/",
56
- shortLivedTokenValidity: 60
57
- }
58
- };
59
- export const PORTAL_SUBSET = {
60
- name: "Deployment Test",
61
- id: "abCDefG123456",
62
- restUrl: PORTAL_URL + "/sharing/rest",
63
- portalUrl: PORTAL_URL,
64
- urlKey: "deploymentTest"
65
- };
66
- export const ITEM_PROGRESS_CALLBACK = function (
67
- // eslint-disable-next-line @typescript-eslint/no-unused-vars
68
- itemId,
69
- // eslint-disable-next-line @typescript-eslint/no-unused-vars
70
- status,
71
- // eslint-disable-next-line @typescript-eslint/no-unused-vars
72
- costUsed,
73
- // eslint-disable-next-line @typescript-eslint/no-unused-vars
74
- createdItemId // supplied when status is EItemProgressStatus.Created or .Finished
75
- ) {
76
- return true;
77
- };
78
- export const SOLUTION_PROGRESS_CALLBACK = function (
79
- // eslint-disable-next-line @typescript-eslint/no-unused-vars
80
- percentDone,
81
- // eslint-disable-next-line @typescript-eslint/no-unused-vars
82
- jobId,
83
- // eslint-disable-next-line @typescript-eslint/no-unused-vars
84
- progressEvent) { };
85
- /**
86
- * Provides a successful progress callback until the nth call.
87
- *
88
- * @param callToFailOn 1-based call to fail on; before this call, function returns true
89
- * @return Callback function that tracks calls and fails when specified
90
- */
91
- export function createFailingItemProgressCallbackOnNthCall(callToFailOn) {
92
- let numCalls = 0;
93
- return function () {
94
- return callToFailOn !== ++numCalls;
95
- };
96
- }
97
- export function getSampleGroupToAdd(title) {
98
- return {
99
- title: title,
100
- access: "private",
101
- owner: "casey",
102
- tags: ["test"],
103
- description: "",
104
- thumbnail: null,
105
- snippet: ""
106
- };
107
- }
108
- export function getSampleMetadataAsBlob(mimeType = "text/xml") {
109
- const xml = `<?xml version="1.0" encoding="UTF-8" standalone="no"?><metadata xml:lang="en">
110
- <dataIdInfo>
111
- <idCitation>
112
- <resTitle>Map with metadata</resTitle>
113
- </idCitation>
114
- <dataChar>
115
- <CharSetCd value="004"/>
116
- </dataChar>
117
- <searchKeys>
118
- <keyword>test</keyword></searchKeys>
119
- </dataIdInfo>
120
- <Esri>
121
- <ArcGISstyle>ISO 19139 Metadata Implementation Specification GML3.2</ArcGISstyle>
122
- <CreaDate>2019-06-17</CreaDate>
123
- <CreaTime>15:06:36.83</CreaTime>
124
- <ModDate>2019-09-16</ModDate>
125
- <ModTime>12:41:35.43</ModTime>
126
- <ArcGISFormat>1.0</ArcGISFormat>
127
- <ArcGISProfile>ISO19139</ArcGISProfile>
128
- <PublishStatus>editor:esri.dijit.metadata.editor</PublishStatus>
129
- </Esri>
130
- <mdDateSt>2019-06-17</mdDateSt>
131
- <mdFileID>c67325516f3c47198727263bb6e299f1</mdFileID>
132
- <mdChar>
133
- <CharSetCd value="004"/>
134
- </mdChar>
135
- <mdContact>
136
- <role>
137
- <RoleCd value="007"/>
138
- </role>
139
- </mdContact>
140
- </metadata>`;
141
- return xmlToBlob(xml, mimeType);
142
- }
143
- export function getSampleMetadataAsFile(filename = "metadata.xml", mimeType = "text/xml") {
144
- return new File([getSampleMetadataAsBlob(mimeType)], filename, {
145
- type: mimeType
146
- });
147
- }
148
- export function jsonToBlob(json) {
149
- return new Blob([JSON.stringify(json)], { type: "application/json" });
150
- }
151
- export function xmlToBlob(xml, mimeType = "text/xml") {
152
- return new Blob([xml], { type: mimeType });
153
- }
154
- export function getSampleImageAsBlob() {
155
- // Decode base-64 to binary, then binary to character codes as Uint8
156
- return _imageDataToBlob(_binaryToUint8CharCodes(atob(_imageAsDataUri(false))));
157
- }
158
- export function getSampleImageAsFile(filename = "sampleImage") {
159
- return generalHelpers.blobToFile(getSampleImageAsBlob(), filename);
160
- }
161
- function _binaryToUint8CharCodes(binaryData) {
162
- const array16 = [];
163
- for (let i = 0; i < binaryData.length; i++) {
164
- array16.push(binaryData.charCodeAt(i));
165
- }
166
- return new Uint8Array(array16);
167
- }
168
- export function getSampleJson() {
169
- return {
170
- a: "a",
171
- b: 1,
172
- c: {
173
- d: "d"
174
- }
175
- };
176
- }
177
- export function getSampleJsonAsBlob() {
178
- return jsonToBlob(getSampleJson());
179
- }
180
- export function getSampleJsonAsFile(filename, mimeType = "application/json") {
181
- return new File([getSampleJsonAsBlob()], filename, {
182
- type: mimeType
183
- });
184
- }
185
- export function getSampleQCJsonData() {
186
- return {
187
- application: {
188
- basemap: {
189
- type: "Web Map",
190
- itemId: "map1234567890",
191
- mapAreas: [],
192
- required: true,
193
- useDefaultBasemap: false,
194
- zoomLevel: null
195
- }
196
- },
197
- name: "qc.project.json"
198
- };
199
- }
200
- export function getSampleQCProjectJsonFile() {
201
- return new File([jsonToBlob({
202
- basemap: {
203
- type: "Web Map",
204
- itemId: "map1234567890",
205
- mapAreas: [],
206
- required: true,
207
- useDefaultBasemap: false,
208
- zoomLevel: null
209
- }
210
- })], "qc.project.json", {
211
- type: "application/json"
212
- });
213
- }
214
- export function getSampleTextAsBlob(mimeType = "text/plain") {
215
- return new Blob(["this is some text"], { type: mimeType });
216
- }
217
- export function getSampleTextAsFile(filename, mimeType = "text/plain") {
218
- return new File([getSampleTextAsBlob(mimeType)], filename, {
219
- type: mimeType
220
- });
221
- }
222
- export function getSampleZip(mimeType = "application/zip") {
223
- const zipContents = "504B0304 0A000000 0000C045 D9424437\
224
- EB352600 00002600 00000700 00006373\
225
- 762E6373 76746869 732C6973 2C612C63\
226
- 6F6D6D61 2C736570 61726174 65642C76\
227
- 616C7565 2C66696C 650D0A50 4B010214\
228
- 000A0000 000000C0 45D94244 37EB3526\
229
- 00000026 00000007000000000 00000000\
230
- 00200000 00000000 00637376 2E637376\
231
- 504B0506 00000000 01000100 35000000\
232
- 4B000000 0000";
233
- const bytes = new Uint8Array(Math.ceil(zipContents.length / 2));
234
- for (let i = 0; i < bytes.length; i++) {
235
- bytes[i] = parseInt(zipContents.substr(i * 2, 2), 16);
236
- }
237
- return new Blob([bytes], { type: mimeType });
238
- }
239
- export function getSampleZipFile(name) {
240
- return new File([getSampleZip()], name, {
241
- type: "application/zip"
242
- });
243
- }
244
- function _imageDataToBlob(data) {
245
- return new Blob([data], { type: "image/png" });
246
- }
247
- export function getTokenResponse(token = "fake-token") {
248
- return { token: token };
249
- }
250
- export function getTransformationsResponse(hasTransformation = false) {
251
- return hasTransformation
252
- ? '{"transformations":[{wkid: 4326}]}'
253
- : '{"transformations":[]}';
254
- }
255
- export function getProjectResponse() {
256
- return {
257
- geometries: [
258
- {
259
- x: -88.226,
260
- y: 41.708
261
- },
262
- {
263
- x: -88.009,
264
- y: 41.844
265
- }
266
- ]
267
- };
268
- }
269
- export function getCreateFolderResponse(folderId = "a4468da125a64526b359b70d8ba4a9dd") {
270
- return getSuccessResponse({
271
- folder: {
272
- username: "casey",
273
- id: folderId,
274
- title: "Test Deployment"
275
- }
276
- });
277
- }
278
- export function getCreateGroupResponse(id = "ebb41907d02742f2aef72adb6d393019") {
279
- return getSuccessResponse({
280
- group: {
281
- id: id,
282
- title: "Group Name",
283
- isInvitationOnly: true,
284
- owner: "casey",
285
- description: "description",
286
- snippet: "snippet",
287
- tags: ["tag"],
288
- phone: null,
289
- sortField: "title",
290
- sortOrder: "asc",
291
- isViewOnly: true,
292
- thumbnail: null,
293
- created: 1582844507759,
294
- modified: 1582844507761,
295
- access: "private",
296
- capabilities: [],
297
- isFav: false,
298
- isReadOnly: false,
299
- protected: false,
300
- autoJoin: false,
301
- notificationsEnabled: false,
302
- provider: null,
303
- providerGroupName: null,
304
- leavingDisallowed: false,
305
- hiddenMembers: false,
306
- displaySettings: {
307
- itemTypes: ""
308
- }
309
- }
310
- });
311
- }
312
- export function getFailureResponse(args) {
313
- const response = { success: false };
314
- return Object.assign(response, args || {});
315
- }
316
- export function getSuccessResponse(args) {
317
- const response = { success: true };
318
- return Object.assign(response, args || {});
319
- }
320
- export function getShareResponse(id) {
321
- return {
322
- notSharedWith: [],
323
- itemId: id
324
- };
325
- }
326
- export function checkForArcgisRestSuccessRequestError(error) {
327
- return ((error &&
328
- typeof error.success === "boolean" &&
329
- error.success === false &&
330
- typeof error.error === "object" &&
331
- error.error.name === "ArcGISRequestError") ||
332
- (error && typeof error.success === "boolean" && error.success === false));
333
- }
334
- export function createMockSettings(solutionName = "", folderId = null, access = "private") {
335
- const settings = {
336
- organization: getPortalsSelfResponse(),
337
- portalBaseUrl: ORG_URL,
338
- solutionName,
339
- folderId,
340
- access
341
- };
342
- return settings;
343
- }
344
- export function createRuntimeMockUserSession(now, portalUrl) {
345
- if (now === undefined) {
346
- now = Date.now();
347
- }
348
- const tomorrow = new Date(now + 86400000);
349
- return new interfaces.UserSession({
350
- clientId: "clientId",
351
- redirectUri: "https://example-app.com/redirect-uri",
352
- token: "fake-token",
353
- tokenExpires: tomorrow,
354
- refreshToken: "refreshToken",
355
- refreshTokenExpires: tomorrow,
356
- refreshTokenTTL: 1440,
357
- username: "casey",
358
- password: "123456",
359
- portal: (portalUrl || PORTAL_URL) + "/sharing/rest"
360
- });
361
- }
362
- export function jsonClone(obj) {
363
- return JSON.parse(JSON.stringify(obj));
364
- }
365
- /**
366
- * Removes item-specific functions from templates.
367
- *
368
- * @param solutionTemplateItem Solution template
369
- */
370
- export function removeItemFcns(solutionTemplateItem) {
371
- const templates = generalHelpers.getProp(solutionTemplateItem, "data.templates");
372
- if (templates) {
373
- if (Array.isArray(templates)) {
374
- templates.forEach(template => {
375
- delete template.fcns;
376
- });
377
- }
378
- else {
379
- delete templates.fcns;
380
- }
381
- }
382
- }
383
- export function removeNameField(layerOrTable) {
384
- layerOrTable.name = null;
385
- return layerOrTable;
386
- }
387
- /**
388
- * Replaces the browser clock with a mock clock.
389
- *
390
- * @param now Time to use to set Jasmine clock
391
- * @note Be sure to call `jasmine.clock().uninstall()` after using this function in a test
392
- */
393
- export function setMockDateTime(now) {
394
- jasmine.clock().install();
395
- jasmine.clock().mockDate(new Date(now));
396
- return now;
397
- }
398
- export function getPortalsSelfResponse() {
399
- // https://developers.arcgis.com/rest/users-groups-and-items/portal-self.htm
400
- return {
401
- access: "public",
402
- allSSL: true,
403
- allowedRedirectUris: [],
404
- analysisLayersGroupQuery: 'title:"Living Atlas Analysis Layers" AND owner:esri',
405
- authorizedCrossOriginDomains: [
406
- "https://ec2-18-219-57-96.us-east-2.compute.amazonaws.com"
407
- ],
408
- backgroundImage: "images/arcgis_background.jpg",
409
- basemapGalleryGroupQuery: 'title:"United States Basemaps" AND owner:Esri_cy_US',
410
- bingKey: "AmMpS0SyUPJSy2uXeMLn5aAEdhqKNSwWyBLsKEqF4Sb_knUpLbvjny8z1b2SoxXz",
411
- colorSetsGroupQuery: 'title:"Esri Colors" AND owner:esri_en',
412
- commentsEnabled: false,
413
- contentCategorySetsGroupQuery: 'title:"ArcGIS Online Content Category Sets" AND owner:esri_en',
414
- culture: "en",
415
- cultureFormat: "us",
416
- customBaseUrl: "maps.arcgis.com",
417
- defaultBasemap: {
418
- baseMapLayers: [
419
- {
420
- url: "https://services.arcgisonline.com/ArcGIS/rest/services/World_Topo_Map/MapServer",
421
- layerType: "ArcGISTiledMapServiceLayer",
422
- resourceInfo: {
423
- currentVersion: 10.3,
424
- mapName: "Layers",
425
- supportsDynamicLayers: false,
426
- layers: [
427
- {
428
- id: 0,
429
- name: "Citations",
430
- parentLayerId: -1,
431
- defaultVisibility: false,
432
- subLayerIds: undefined,
433
- minScale: 0,
434
- maxScale: 0
435
- }
436
- ],
437
- tables: [],
438
- spatialReference: {
439
- wkid: 102100,
440
- latestWkid: 3857
441
- },
442
- singleFusedMapCache: true,
443
- tileInfo: {
444
- rows: 256,
445
- cols: 256,
446
- dpi: 96,
447
- format: "JPEG",
448
- compressionQuality: 90,
449
- origin: {
450
- x: -20037508.342787,
451
- y: 20037508.342787
452
- },
453
- spatialReference: {
454
- wkid: 102100,
455
- latestWkid: 3857
456
- },
457
- lods: [
458
- {
459
- level: 0,
460
- resolution: 156543.03392800014,
461
- scale: 591657527.591555
462
- },
463
- {
464
- level: 1,
465
- resolution: 78271.51696399994,
466
- scale: 295828763.795777
467
- },
468
- {
469
- level: 2,
470
- resolution: 39135.75848200009,
471
- scale: 147914381.897889
472
- },
473
- {
474
- level: 3,
475
- resolution: 19567.87924099992,
476
- scale: 73957190.948944
477
- },
478
- {
479
- level: 4,
480
- resolution: 9783.93962049996,
481
- scale: 36978595.474472
482
- },
483
- {
484
- level: 5,
485
- resolution: 4891.96981024998,
486
- scale: 18489297.737236
487
- },
488
- {
489
- level: 6,
490
- resolution: 2445.98490512499,
491
- scale: 9244648.868618
492
- },
493
- {
494
- level: 7,
495
- resolution: 1222.992452562495,
496
- scale: 4622324.434309
497
- },
498
- {
499
- level: 8,
500
- resolution: 611.4962262813797,
501
- scale: 2311162.217155
502
- },
503
- {
504
- level: 9,
505
- resolution: 305.74811314055756,
506
- scale: 1155581.108577
507
- },
508
- {
509
- level: 10,
510
- resolution: 152.87405657041106,
511
- scale: 577790.554289
512
- },
513
- {
514
- level: 11,
515
- resolution: 76.43702828507324,
516
- scale: 288895.277144
517
- },
518
- {
519
- level: 12,
520
- resolution: 38.21851414253662,
521
- scale: 144447.638572
522
- },
523
- {
524
- level: 13,
525
- resolution: 19.10925707126831,
526
- scale: 72223.819286
527
- },
528
- {
529
- level: 14,
530
- resolution: 9.554628535634155,
531
- scale: 36111.909643
532
- },
533
- {
534
- level: 15,
535
- resolution: 4.77731426794937,
536
- scale: 18055.954822
537
- },
538
- {
539
- level: 16,
540
- resolution: 2.388657133974685,
541
- scale: 9027.977411
542
- },
543
- {
544
- level: 17,
545
- resolution: 1.1943285668550503,
546
- scale: 4513.988705
547
- },
548
- {
549
- level: 18,
550
- resolution: 0.5971642835598172,
551
- scale: 2256.994353
552
- },
553
- {
554
- level: 19,
555
- resolution: 0.29858214164761665,
556
- scale: 1128.497176
557
- },
558
- {
559
- level: 20,
560
- resolution: 0.14929107082380833,
561
- scale: 564.248588
562
- },
563
- {
564
- level: 21,
565
- resolution: 0.07464553541190416,
566
- scale: 282.124294
567
- },
568
- {
569
- level: 22,
570
- resolution: 0.03732276770595208,
571
- scale: 141.062147
572
- },
573
- {
574
- level: 23,
575
- resolution: 0.01866138385297604,
576
- scale: 70.5310735
577
- }
578
- ]
579
- },
580
- initialExtent: {
581
- xmin: -28848255.049479112,
582
- ymin: -2077452.082122866,
583
- xmax: 28848255.049479112,
584
- ymax: 16430757.376790084,
585
- spatialReference: {
586
- wkid: 102100,
587
- latestWkid: 3857
588
- }
589
- },
590
- fullExtent: {
591
- xmin: -20037507.067161843,
592
- ymin: -19971868.880408604,
593
- xmax: 20037507.067161843,
594
- ymax: 19971868.88040863,
595
- spatialReference: {
596
- wkid: 102100,
597
- latestWkid: 3857
598
- }
599
- },
600
- minScale: 591657527.591555,
601
- maxScale: 70.5310735,
602
- units: "esriMeters",
603
- supportedImageFormatTypes: "PNG32,PNG24,PNG,JPG,DIB,TIFF,EMF,PS,PDF,GIF,SVG,SVGZ,BMP",
604
- capabilities: "Map,Tilemap,Query,Data",
605
- supportedQueryFormats: "JSON, AMF",
606
- exportTilesAllowed: false,
607
- maxRecordCount: 100,
608
- maxImageHeight: 4096,
609
- maxImageWidth: 4096,
610
- supportedExtensions: "KmlServer"
611
- }
612
- }
613
- ],
614
- title: "Topographic"
615
- },
616
- defaultExtent: {
617
- xmin: -9821384.714217981,
618
- ymin: 5117339.123090005,
619
- xmax: -9797228.384715842,
620
- ymax: 5137789.39951188,
621
- spatialReference: {
622
- wkid: 102100
623
- }
624
- },
625
- defaultVectorBasemap: {
626
- baseMapLayers: [
627
- {
628
- id: "World_Hillshade_3805",
629
- layerType: "ArcGISTiledMapServiceLayer",
630
- url: "https://services.arcgisonline.com/arcgis/rest/services/Elevation/World_Hillshade/MapServer",
631
- visibility: true,
632
- opacity: 1,
633
- title: "World Hillshade"
634
- },
635
- {
636
- id: "VectorTile_2333",
637
- type: "VectorTileLayer",
638
- layerType: "VectorTileLayer",
639
- title: "World Topographic Map",
640
- styleUrl: "https://cdn.arcgis.com/sharing/rest/content/items/vts1234567890/resources/styles/root.json",
641
- visibility: true,
642
- opacity: 1
643
- }
644
- ],
645
- title: "Topographic"
646
- },
647
- description: "<br>",
648
- eueiEnabled: false,
649
- featuredGroups: [
650
- {
651
- title: "Community Basemaps",
652
- owner: "esri"
653
- },
654
- {
655
- title: "ArcGIS for Local Government",
656
- owner: "ArcGISTeamLocalGov"
657
- },
658
- {
659
- title: "ArcGIS for Local Government Try It Live Services",
660
- owner: "lind5149_lg",
661
- id: "72b563693f6f402c9bcfb94d1be38916"
662
- },
663
- {
664
- title: "Vector Basemap",
665
- owner: "chri4849_lg",
666
- id: "09a0c2935b6841f381db54e0566a2aaa"
667
- }
668
- ],
669
- featuredGroupsId: "",
670
- featuredItemsGroupQuery: "",
671
- galleryTemplatesGroupQuery: 'title:"Gallery Templates" AND owner:esri_en',
672
- hasCategorySchema: true,
673
- helpBase: "https://doc.arcgis.com/en/arcgis-online/",
674
- helperServices: {
675
- asyncClosestFacility: {
676
- url: "https://logistics.arcgis.com/arcgis/rest/services/World/ClosestFacility/GPServer/FindClosestFacilities",
677
- defaultTravelMode: "FEgifRtFndKNcJMJ"
678
- },
679
- asyncLocationAllocation: {
680
- url: "https://logistics.arcgis.com/arcgis/rest/services/World/LocationAllocation/GPServer",
681
- defaultTravelMode: "FEgifRtFndKNcJMJ"
682
- },
683
- asyncODCostMatrix: {
684
- url: "https://logistics.arcgis.com/arcgis/rest/services/World/OriginDestinationCostMatrix/GPServer",
685
- defaultTravelMode: "FEgifRtFndKNcJMJ"
686
- },
687
- asyncRoute: {
688
- url: "https://logistics.arcgis.com/arcgis/rest/services/World/Route/GPServer",
689
- defaultTravelMode: "FEgifRtFndKNcJMJ"
690
- },
691
- asyncServiceArea: {
692
- url: "https://logistics.arcgis.com/arcgis/rest/services/World/ServiceAreas/GPServer/GenerateServiceAreas",
693
- defaultTravelMode: "FEgifRtFndKNcJMJ"
694
- },
695
- asyncVRP: {
696
- url: "https://logistics.arcgis.com/arcgis/rest/services/World/VehicleRoutingProblem/GPServer/SolveVehicleRoutingProblem",
697
- defaultTravelMode: "FEgifRtFndKNcJMJ"
698
- },
699
- closestFacility: {
700
- url: "https://route.arcgis.com/arcgis/rest/services/World/ClosestFacility/NAServer/ClosestFacility_World",
701
- defaultTravelMode: "FEgifRtFndKNcJMJ"
702
- },
703
- defaultElevationLayers: [
704
- {
705
- url: "https://elevation3d.arcgis.com/arcgis/rest/services/WorldElevation3D/Terrain3D/ImageServer",
706
- id: "globalElevation",
707
- layerType: "ArcGISTiledElevationServiceLayer"
708
- }
709
- ],
710
- elevation: {
711
- url: "https://elevation.arcgis.com/arcgis/rest/services/Tools/Elevation/GPServer"
712
- },
713
- elevationSync: {
714
- url: "https://elevation.arcgis.com/arcgis/rest/services/Tools/ElevationSync/GPServer"
715
- },
716
- geocode: [
717
- {
718
- url: "https://geocode.arcgis.com/arcgis/rest/services/World/GeocodeServer",
719
- northLat: "Ymax",
720
- southLat: "Ymin",
721
- eastLon: "Xmax",
722
- westLon: "Xmin",
723
- name: "ArcGIS World Geocoding Service",
724
- zoomScale: 10000,
725
- suggest: true,
726
- placefinding: true,
727
- batch: true
728
- }
729
- ],
730
- geometry: {
731
- url: "https://utility.arcgisonline.com/arcgis/rest/services/Geometry/GeometryServer"
732
- },
733
- hydrology: {
734
- url: "https://hydro.arcgis.com/arcgis/rest/services/Tools/Hydrology/GPServer"
735
- },
736
- orthomappingElevation: {
737
- url: "https://elevation3d.arcgis.com/arcgis/rest/services/WorldElevation3D/Terrain3D/ImageServer"
738
- },
739
- packaging: {
740
- url: "https://packaging.arcgis.com/arcgis/rest/services/OfflinePackaging/GPServer"
741
- },
742
- printTask: {
743
- url: "https://utility.arcgisonline.com/arcgis/rest/services/Utilities/PrintingTools/GPServer/Export%20Web%20Map%20Task"
744
- },
745
- route: {
746
- url: "https://route.arcgis.com/arcgis/rest/services/World/Route/NAServer/Route_World",
747
- defaultTravelMode: "FEgifRtFndKNcJMJ"
748
- },
749
- routingUtilities: {
750
- url: "https://logistics.arcgis.com/arcgis/rest/services/World/Utilities/GPServer"
751
- },
752
- serviceArea: {
753
- url: "https://route.arcgis.com/arcgis/rest/services/World/ServiceAreas/NAServer/ServiceArea_World",
754
- defaultTravelMode: "FEgifRtFndKNcJMJ"
755
- },
756
- syncVRP: {
757
- url: "https://logistics.arcgis.com/arcgis/rest/services/World/VehicleRoutingProblemSync/GPServer/EditVehicleRoutingProblem",
758
- defaultTravelMode: "FEgifRtFndKNcJMJ"
759
- },
760
- traffic: {
761
- url: "https://traffic.arcgis.com/arcgis/rest/services/World/Traffic/MapServer"
762
- },
763
- trafficData: {
764
- url: "https://traffic.arcgis.com/arcgis/rest/services/World/TrafficFeeds/GPServer"
765
- },
766
- analysis: {
767
- url: "https://analysis.arcgis.com/arcgis/rest/services/tasks/GPServer"
768
- },
769
- geoenrichment: {
770
- url: "https://geoenrich.arcgis.com/arcgis/rest/services/World/GeoenrichmentServer"
771
- },
772
- asyncGeocode: {
773
- url: "https://analysis.arcgis.com/arcgis/rest/services/tasks/GPServer"
774
- },
775
- creditEstimation: {
776
- url: "https://analysis.arcgis.com/arcgis/rest/services/Estimate/GPServer"
777
- }
778
- },
779
- homePageFeaturedContent: "id:f292c6105dc243a2ad1377245722e312",
780
- homePageFeaturedContentCount: 12,
781
- id: "org1234567890",
782
- isPortal: false,
783
- layerTemplatesGroupQuery: 'title:"Esri Layer Templates" AND owner:esri_en',
784
- livingAtlasGroupQuery: 'title:"LAW Search" AND owner:Esri_LivingAtlas',
785
- metadataEditable: true,
786
- metadataFormats: ["iso19139"],
787
- name: "ArcGIS Team Local Gov",
788
- portalHostname: "www.arcgis.com",
789
- portalMode: "multitenant",
790
- portalName: "ArcGIS Online",
791
- portalProperties: {
792
- openData: {
793
- enabled: true,
794
- settings: {
795
- groupId: "0472bb819e9741809373812a6400dade",
796
- migrations: {
797
- siteToItems: true
798
- },
799
- appVersion: "2.1"
800
- }
801
- },
802
- sharedTheme: {
803
- logo: {
804
- small: undefined
805
- },
806
- button: {
807
- background: "#ebebeb",
808
- text: "#1a1a1a"
809
- },
810
- body: {
811
- link: "#004da8",
812
- background: "#ebebeb",
813
- text: "#474747"
814
- },
815
- header: {
816
- background: "#999999",
817
- text: "#242424"
818
- }
819
- },
820
- links: {
821
- contactUs: {
822
- url: "mailto:arcgisteamlocalgov@esri.com",
823
- visible: false
824
- }
825
- },
826
- showSocialMediaLinks: true,
827
- hub: {
828
- enabled: true,
829
- settings: {
830
- orgType: "enterprise",
831
- communityOrg: {
832
- orgId: "hcOb9dpllCwWSJAh",
833
- portalHostname: "gov-solutions.maps.arcgis.com"
834
- }
835
- }
836
- },
837
- revertStdSqlEndDate: 1554993043785,
838
- revertHttpsEndDate: 1558907781119
839
- },
840
- portalThumbnail: undefined,
841
- rasterFunctionTemplatesGroupQuery: 'title:"Raster Function Templates" AND owner:esri_en',
842
- region: "WO",
843
- rotatorPanels: [
844
- {
845
- id: "banner-3",
846
- innerHTML: "<img src='images/banner-3.jpg' style='-webkit-border-radius:0 0 10px 10px; -moz-border-radius:0 0 10px 10px; -o-border-radius:0 0 10px 10px; border-radius:0 0 10px 10px; margin-top:0; width:960px; height:180px;'/><div style='position:absolute; bottom:80px; left:80px; max-height:65px; width:660px; margin:0;'><span style='position:absolute; bottom:0; margin-bottom:0; line-height:normal; font-family:HelveticaNeue,Verdana; font-weight:600; font-size:32px; color:#fff;'>ArcGIS Team Local Gov</span></div>"
847
- }
848
- ],
849
- showHomePageDescription: true,
850
- staticImagesUrl: "https://static.arcgis.com/images",
851
- stylesGroupQuery: 'title:"Esri Styles" AND owner:esri_en',
852
- supportsHostedServices: true,
853
- symbolSetsGroupQuery: 'title:"Esri Symbols" AND owner:esri_en',
854
- templatesGroupQuery: 'title:"Web Application Templates" AND owner:esri_en',
855
- thumbnail: "",
856
- units: "english",
857
- urlKey: "myorg",
858
- useVectorBasemaps: true,
859
- vectorBasemapGalleryGroupQuery: 'title:"United States Vector Basemaps" AND owner:Esri_cy_US',
860
- publicSubscriptionInfo: {
861
- companionOrganizations: [
862
- {
863
- type: "Community",
864
- organizationUrl: "gov-solutions.maps.arcgis.com"
865
- }
866
- ]
867
- },
868
- ipCntryCode: "US",
869
- httpPort: 80,
870
- httpsPort: 443,
871
- supportsOAuth: true,
872
- currentVersion: "7.2",
873
- allowedOrigins: []
874
- };
875
- }
876
- export function getUserResponse() {
877
- return {
878
- username: "LocalGovDeployCasey",
879
- id: "7f7dfdd4d9184e188eb44c2356ad74d9",
880
- fullName: "Casey Jones",
881
- firstName: "Casey",
882
- lastName: "Jones",
883
- preferredView: "GIS",
884
- description: null,
885
- email: "casey@esri.com",
886
- userType: "arcgisonly",
887
- idpUsername: null,
888
- favGroupId: "318a6b072baa453bba5383cd103d8628",
889
- lastLogin: 1573839621000,
890
- mfaEnabled: false,
891
- access: "org",
892
- storageUsage: 2069559555,
893
- storageQuota: 2199023255552,
894
- orgId: "org1234567890",
895
- role: "org_admin",
896
- privileges: [
897
- "features:user:edit",
898
- "features:user:fullEdit",
899
- "marketplace:admin:manage",
900
- "marketplace:admin:purchase",
901
- "marketplace:admin:startTrial",
902
- "opendata:user:designateGroup",
903
- "opendata:user:openDataAdmin",
904
- "portal:admin:assignToGroups",
905
- "portal:admin:categorizeItems",
906
- "portal:admin:changeUserRoles",
907
- "portal:admin:createUpdateCapableGroup",
908
- "portal:admin:deleteEmptyGroups",
909
- "portal:admin:deleteItems",
910
- "portal:admin:deleteUsers",
911
- "portal:admin:disableUsers",
912
- "portal:admin:inviteUsers",
913
- "portal:admin:manageCollaborations",
914
- "portal:admin:manageCredits",
915
- "portal:admin:manageEnterpriseGroups",
916
- "portal:admin:manageLicenses",
917
- "portal:admin:manageRoles",
918
- "portal:admin:manageSecurity",
919
- "portal:admin:manageServers",
920
- "portal:admin:manageUtilityServices",
921
- "portal:admin:manageWebsite",
922
- "portal:admin:reassignGroups",
923
- "portal:admin:reassignItems",
924
- "portal:admin:reassignUsers",
925
- "portal:admin:shareToGroup",
926
- "portal:admin:shareToOrg",
927
- "portal:admin:shareToPublic",
928
- "portal:admin:updateGroups",
929
- "portal:admin:updateItemCategorySchema",
930
- "portal:admin:updateItems",
931
- "portal:admin:updateUsers",
932
- "portal:admin:viewGroups",
933
- "portal:admin:viewItems",
934
- "portal:admin:viewUsers",
935
- "portal:publisher:bulkPublishFromDataStores",
936
- "portal:publisher:publishFeatures",
937
- "portal:publisher:publishScenes",
938
- "portal:publisher:publishServerGPServices",
939
- "portal:publisher:publishServerServices",
940
- "portal:publisher:publishTiles",
941
- "portal:publisher:registerDataStores",
942
- "portal:user:categorizeItems",
943
- "portal:user:createGroup",
944
- "portal:user:createItem",
945
- "portal:user:joinGroup",
946
- "portal:user:joinNonOrgGroup",
947
- "portal:user:shareGroupToOrg",
948
- "portal:user:shareGroupToPublic",
949
- "portal:user:shareToGroup",
950
- "portal:user:shareToOrg",
951
- "portal:user:shareToPublic",
952
- "portal:user:viewOrgGroups",
953
- "portal:user:viewOrgItems",
954
- "portal:user:viewOrgUsers",
955
- "portal:user:viewTracks",
956
- "premium:publisher:createAdvancedNotebooks",
957
- "premium:publisher:createNotebooks",
958
- "premium:publisher:geoanalytics",
959
- "premium:publisher:rasteranalysis",
960
- "premium:user:demographics",
961
- "premium:user:elevation",
962
- "premium:user:featurereport",
963
- "premium:user:geocode",
964
- "premium:user:geoenrichment",
965
- "premium:user:networkanalysis",
966
- "premium:user:spatialanalysis"
967
- ],
968
- level: "2",
969
- userLicenseTypeId: "creatorUT",
970
- disabled: false,
971
- tags: [],
972
- culture: "en-US",
973
- cultureFormat: "us",
974
- region: "US",
975
- units: "english",
976
- thumbnail: null,
977
- created: 1551469472000,
978
- modified: 1559775285000,
979
- provider: "arcgis",
980
- groups: [
981
- {
982
- id: "22547723baa14ba89ea3845f8b7b4e79",
983
- title: "Homeless Activity Manager_811d0bbc9a4942fe9f1375088c4ed099",
984
- isInvitationOnly: true,
985
- owner: "LocalGovDeployCasey",
986
- description: "This group is required to configure the Crowdsource Manager application and used to share maps with health and human service personnel to manage reports of homeless individuals and encampments in the community.",
987
- snippet: "This group is required to configure the Crowdsource Manager application and used to share maps with health and human service personnel to manage reports of homeless individuals and encampments in the community.",
988
- tags: [
989
- "Homelessness",
990
- "Health and Human Services",
991
- "Public Safety",
992
- "Homeless Activity",
993
- "Encampments"
994
- ],
995
- phone: null,
996
- sortField: "title",
997
- sortOrder: "asc",
998
- isViewOnly: true,
999
- thumbnail: null,
1000
- created: 1573600936000,
1001
- modified: 1573600937000,
1002
- access: "private",
1003
- capabilities: [],
1004
- isFav: false,
1005
- isReadOnly: false,
1006
- protected: false,
1007
- autoJoin: false,
1008
- notificationsEnabled: false,
1009
- provider: null,
1010
- providerGroupName: null,
1011
- leavingDisallowed: false,
1012
- hiddenMembers: false,
1013
- displaySettings: {
1014
- itemTypes: ""
1015
- },
1016
- userMembership: {
1017
- username: "casey",
1018
- memberType: "owner",
1019
- applications: 0
1020
- }
1021
- }
1022
- ]
1023
- };
1024
- }
1025
- export function getContentUser() {
1026
- return {
1027
- username: "LocalGovDeployCasey",
1028
- total: 17,
1029
- start: 1,
1030
- num: 17,
1031
- nextStart: -1,
1032
- currentFolder: null,
1033
- items: [
1034
- {
1035
- id: "cd502cb019cb4c8cb7be297eab5ea47c",
1036
- owner: "LocalGovDeployCasey",
1037
- created: 1564508371000,
1038
- isOrgItem: true,
1039
- modified: 1564508374000,
1040
- guid: null,
1041
- name: null,
1042
- title: "Test",
1043
- type: "Application",
1044
- typeKeywords: ["Application", "Registered App"],
1045
- description: null,
1046
- tags: ["test"],
1047
- snippet: null,
1048
- thumbnail: "thumbnail/ago_downloaded.png",
1049
- documentation: null,
1050
- extent: [],
1051
- categories: [],
1052
- spatialReference: null,
1053
- accessInformation: null,
1054
- licenseInfo: null,
1055
- culture: "en-us",
1056
- properties: null,
1057
- url: null,
1058
- proxyFilter: null,
1059
- access: "private",
1060
- size: 0,
1061
- appCategories: [],
1062
- industries: [],
1063
- languages: [],
1064
- largeThumbnail: null,
1065
- banner: null,
1066
- screenshots: [],
1067
- listed: false,
1068
- ownerFolder: null,
1069
- protected: false,
1070
- numComments: 0,
1071
- numRatings: 0,
1072
- avgRating: 0,
1073
- numViews: 0,
1074
- scoreCompleteness: 33,
1075
- groupDesignations: null
1076
- }
1077
- ],
1078
- folders: []
1079
- };
1080
- }
1081
- export function getGroupResponse(query, hasResult) {
1082
- return {
1083
- query: query,
1084
- total: 1,
1085
- start: 1,
1086
- num: 10,
1087
- nextStart: -1,
1088
- results: !hasResult
1089
- ? []
1090
- : [
1091
- {
1092
- id: "2146ddb18dbe4fe1bb11dc9594164549",
1093
- title: query,
1094
- isInvitationOnly: false,
1095
- owner: "casey",
1096
- description: "",
1097
- snippet: "",
1098
- tags: ["test"],
1099
- phone: "123-456-7890",
1100
- sortField: "title",
1101
- sortOrder: "asc",
1102
- isViewOnly: false,
1103
- isFav: false,
1104
- thumbnail: "test.jpg",
1105
- created: 1258061693000,
1106
- access: "public"
1107
- }
1108
- ]
1109
- };
1110
- }
1111
- export function getSearchResponse(query, start, num, nextStart, total, numOfResults) {
1112
- return {
1113
- query,
1114
- start,
1115
- num,
1116
- nextStart,
1117
- total,
1118
- results: Array(numOfResults).fill({ id: "1", title: "a" })
1119
- };
1120
- }
1121
- export function getCreateServiceResponse(url = "https://services123.arcgis.com/org1234567890/arcgis/rest/services/ROWPermits_publiccomment/FeatureServer", id = "svc1234567890", isView = false) {
1122
- const name = url
1123
- .replace(/.+services[/]/, "")
1124
- .replace("/FeatureServer", "");
1125
- return getSuccessResponse({
1126
- encodedServiceURL: url,
1127
- itemId: id,
1128
- name: name,
1129
- serviceItemId: id,
1130
- serviceurl: url,
1131
- size: -1,
1132
- type: "Feature Service",
1133
- isView: isView
1134
- });
1135
- }
1136
- /**
1137
- * Provides a supplied item with the nth call.
1138
- *
1139
- * @param trigger 1-based call count on which to start returning itemForNthCall; before this call,
1140
- * function returns itemBeforeNthCall
1141
- * @param itemForNthCall Item to return when trigger reached
1142
- * @param itemBeforeNthCall Item to return before trigger reached
1143
- * @return Function that tracks calls and provides items
1144
- */
1145
- export function returnOnNthCall(trigger, itemForNthCall, itemBeforeNthCall) {
1146
- let numCalls = 0;
1147
- return function () {
1148
- return ++numCalls < trigger ? itemBeforeNthCall : itemForNthCall;
1149
- };
1150
- }
1151
- function _imageAsDataUri(withUri) {
1152
- let uri = "";
1153
- if (withUri) {
1154
- uri = "data:image/png;charset=utf-8;base64,";
1155
- }
1156
- uri +=
1157
- "\
1158
- iVBORw0KGgoAAAANSUhEUgAAABEAAAARCAYAAAA7bUf6AAADKklEQVQ4T6XUf1DMeRzH8edu\
1159
- 53ZVZ6vLxmo2Q0Y7rtJZJT8abQmdysjETVEWMxgGOzF2/IhkCqNT8qPyo8PE6fzIj/y4qYlU\
1160
- E6MfIottFcLmRyIq1Ne4neGa+ufG57/354/H+/3H6/0WCYIg8J1P1BNSkJ/PpXO5tLa187q5\
1161
- mTFqL6ZFzMRxgEuP7boh00JCcbB3IGZfFuM8f8PbfSD1IyIR3byI8uFVJoxRk5C4uQvWBfHx\
1162
- VHO44jKqcC0/BKgQ7tbzIS0LhvhDX3d400DkSAUFZ3MwPXyAVCr9F/uKhAaHkpqbQkhGEAa9\
1163
- EZeRcmpVOlCFQVwMbvqpLPA/QoruHnYSV+4V1tHS/vYbcqv6Fv4af6zVtsismnB0FmM9qQZB\
1164
- ZsuNljdMtttN+fIEtMcm0NgqJmtZGevnJmGqqCNxc6JlktjYWNKT9zIxU463jxKjIYmm65ex\
1165
- cfWi7Nga+nSWUV4k4DxchlQuobbCzJYjyRxYkEVVTZUFCZsShlTexnXvEXgN30RHzjZyk1cQ\
1166
- vjIV57FP6a/4B5NBoOxsI+rFbhhN7yjfaGC0Us3pvDMWJDI8gvczPTgVfwOeVhC8NJ7G0nME\
1167
- xf1JbWsREg5gZ99E9qxiNJl+PGn7xP3974myH8WGTXEWZFKAhqZ+7lzLTsX6xB1G/dSbj49f\
1168
- U5O9lbeD1Xy4dAGxqB7pCwMSNwc6nKywFfkSoXDmj107LUjE1BCkwToO7dEzPuoFbn5OFCWZ\
1169
- uX28FqavA1UgWDkhM6+gQ2agRTkam5SXaAa1czrvogUpLb5Kys59/BXox4+rtIhteuM51xUH\
1170
- p07Op6nhdz20ixHJVyMUXIEwHZq8Z8wJ+oWoGO23nPj+6kGgLo0E7Xysx5pxiffl1RMfzGsr\
1171
- Yag7PKgGaQnUP2f8koU4ltSRcz6va9i+VErHPizKNaDfmApt2yFwPuwogcZyWFsFvQpZKDFy\
1172
- 91Qlh/4+ikKh6I58+fH2GIZXgIbS6mKq8+8jOfiIwXWFPDu5C130DNYtm8ejhoavQJfY/3ej\
1173
- blZWkpGegclk5FPzc2ztfqa1o5OoWdFEzo7utsk9noL/e14+AxP0YqryqgPxAAAAAElFTkSu\
1174
- QmCC";
1175
- return uri;
1176
- }
1177
- //# sourceMappingURL=utils.js.map