@esri/hub-common 9.25.6 → 9.26.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (58) hide show
  1. package/dist/es2017/content/_internal.js +28 -1
  2. package/dist/es2017/content/_internal.js.map +1 -1
  3. package/dist/es2017/content/compose.js +27 -23
  4. package/dist/es2017/content/compose.js.map +1 -1
  5. package/dist/es2017/content/fetch.js +5 -1
  6. package/dist/es2017/content/fetch.js.map +1 -1
  7. package/dist/es2017/content/slugs.js +1 -1
  8. package/dist/es2017/content/slugs.js.map +1 -1
  9. package/dist/es2017/resources/_internal/_validate-url-helpers.js +231 -0
  10. package/dist/es2017/resources/_internal/_validate-url-helpers.js.map +1 -0
  11. package/dist/es2017/resources/index.js +1 -0
  12. package/dist/es2017/resources/index.js.map +1 -1
  13. package/dist/es2017/resources/validate-url.js +86 -0
  14. package/dist/es2017/resources/validate-url.js.map +1 -0
  15. package/dist/es2017/types.js +862 -0
  16. package/dist/es2017/types.js.map +1 -1
  17. package/dist/esm/content/_internal.js +28 -1
  18. package/dist/esm/content/_internal.js.map +1 -1
  19. package/dist/esm/content/compose.js +27 -23
  20. package/dist/esm/content/compose.js.map +1 -1
  21. package/dist/esm/content/fetch.js +5 -1
  22. package/dist/esm/content/fetch.js.map +1 -1
  23. package/dist/esm/content/slugs.js +1 -1
  24. package/dist/esm/content/slugs.js.map +1 -1
  25. package/dist/esm/resources/_internal/_validate-url-helpers.js +249 -0
  26. package/dist/esm/resources/_internal/_validate-url-helpers.js.map +1 -0
  27. package/dist/esm/resources/index.js +1 -0
  28. package/dist/esm/resources/index.js.map +1 -1
  29. package/dist/esm/resources/validate-url.js +103 -0
  30. package/dist/esm/resources/validate-url.js.map +1 -0
  31. package/dist/esm/types.js +862 -0
  32. package/dist/esm/types.js.map +1 -1
  33. package/dist/node/content/_internal.js +28 -1
  34. package/dist/node/content/_internal.js.map +1 -1
  35. package/dist/node/content/compose.js +26 -22
  36. package/dist/node/content/compose.js.map +1 -1
  37. package/dist/node/content/fetch.js +4 -0
  38. package/dist/node/content/fetch.js.map +1 -1
  39. package/dist/node/content/slugs.js +1 -1
  40. package/dist/node/content/slugs.js.map +1 -1
  41. package/dist/node/resources/_internal/_validate-url-helpers.js +247 -0
  42. package/dist/node/resources/_internal/_validate-url-helpers.js.map +1 -0
  43. package/dist/node/resources/index.js +1 -0
  44. package/dist/node/resources/index.js.map +1 -1
  45. package/dist/node/resources/validate-url.js +90 -0
  46. package/dist/node/resources/validate-url.js.map +1 -0
  47. package/dist/node/types.js +863 -0
  48. package/dist/node/types.js.map +1 -1
  49. package/dist/types/content/_internal.d.ts +21 -3
  50. package/dist/types/resources/_internal/_validate-url-helpers.d.ts +115 -0
  51. package/dist/types/resources/index.d.ts +1 -0
  52. package/dist/types/resources/validate-url.d.ts +8 -0
  53. package/dist/types/types.d.ts +225 -4
  54. package/dist/umd/common.umd.js +1275 -27
  55. package/dist/umd/common.umd.js.map +1 -1
  56. package/dist/umd/common.umd.min.js +1 -1
  57. package/dist/umd/common.umd.min.js.map +1 -1
  58. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/resources/index.ts"],"names":[],"mappings":"AAAA,cAAc,8BAA8B,CAAC;AAC7C,cAAc,iDAAiD,CAAC;AAChE,cAAc,6BAA6B,CAAC;AAC5C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,uBAAuB,CAAC;AACtC,cAAc,mBAAmB,CAAC;AAClC,cAAc,0BAA0B,CAAC;AACzC,cAAc,kBAAkB,CAAC;AACjC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,uCAAuC,CAAC;AACtD,cAAc,uBAAuB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/resources/index.ts"],"names":[],"mappings":"AAAA,cAAc,8BAA8B,CAAC;AAC7C,cAAc,iDAAiD,CAAC;AAChE,cAAc,6BAA6B,CAAC;AAC5C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,uBAAuB,CAAC;AACtC,cAAc,mBAAmB,CAAC;AAClC,cAAc,0BAA0B,CAAC;AACzC,cAAc,kBAAkB,CAAC;AACjC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,uCAAuC,CAAC;AACtD,cAAc,uBAAuB,CAAC;AACtC,cAAc,gBAAgB,CAAC"}
@@ -0,0 +1,103 @@
1
+ import { __awaiter, __generator } from "tslib";
2
+ import { ItemType } from "../types";
3
+ import { Logger } from "../utils";
4
+ import { isUrl, isFeatureService, isService, pingFeatureService, pingUrl, detectDataTypeFromHeader, getFileName, detectDataTypeFromExtension, shouldHaveDataUrl, } from "./_internal/_validate-url-helpers";
5
+ /**
6
+ * Takes in a URL and validates it based on valid url, type of item, etc
7
+ *
8
+ * @export
9
+ * @param {string} url
10
+ * @return {*} {Promise<any>}
11
+ */
12
+ export function validateUrl(url) {
13
+ return __awaiter(this, void 0, void 0, function () {
14
+ var isFeatureServiceUrl, isServiceUrl, type, item, pingResult, _a, e_1;
15
+ return __generator(this, function (_b) {
16
+ switch (_b.label) {
17
+ case 0:
18
+ // If URL doesn't pass then exit out immediately.
19
+ if (!isUrl(url)) {
20
+ return [2 /*return*/, {
21
+ pass: false,
22
+ error: "invalidFormat",
23
+ }];
24
+ }
25
+ isFeatureServiceUrl = isFeatureService(url);
26
+ isServiceUrl = isService(url);
27
+ if (isServiceUrl && !isFeatureServiceUrl) {
28
+ return [2 /*return*/, {
29
+ pass: false,
30
+ error: "invalidFormat",
31
+ }];
32
+ }
33
+ pingResult = {};
34
+ _b.label = 1;
35
+ case 1:
36
+ _b.trys.push([1, 6, , 7]);
37
+ if (!isFeatureServiceUrl) return [3 /*break*/, 3];
38
+ return [4 /*yield*/, pingFeatureService(url)];
39
+ case 2:
40
+ _a = _b.sent();
41
+ return [3 /*break*/, 5];
42
+ case 3: return [4 /*yield*/, pingUrl(url)];
43
+ case 4:
44
+ _a = _b.sent();
45
+ _b.label = 5;
46
+ case 5:
47
+ pingResult = _a;
48
+ // return an error if the response is not okay
49
+ if (!pingResult.ok) {
50
+ return [2 /*return*/, {
51
+ pass: false,
52
+ error: "invalidUrl",
53
+ }];
54
+ }
55
+ return [3 /*break*/, 7];
56
+ case 6:
57
+ e_1 = _b.sent();
58
+ // TODO: This is tricky. The fetch() API rejects when a network error
59
+ // happens. This error can be a CORS error, or a 404 error, or a timeout
60
+ // error. While an error like 404 does suggest a bad URL, the CORS occurs
61
+ // because this is a front-end request and the file is likely accessible by
62
+ // the server. Unfortunately, the error doesn't have any information about
63
+ // underline failure type. For now, the network failure is ignored, so the
64
+ // user can paste a URL from any domain and avoid the CORS issue.
65
+ Logger.error("error requesting url");
66
+ return [3 /*break*/, 7];
67
+ case 7:
68
+ // Use the metadata from the ping response if exists, otherwise guess the file
69
+ // name from the URL
70
+ if (pingResult.item) {
71
+ item = pingResult.item;
72
+ }
73
+ else {
74
+ item = { title: getFileName(url), url: url };
75
+ }
76
+ if (pingResult.headers) {
77
+ type = detectDataTypeFromHeader(pingResult.headers);
78
+ }
79
+ if (isFeatureServiceUrl) {
80
+ type = ItemType["Feature Service"];
81
+ }
82
+ else if (!type) {
83
+ // Guess the data type from the extension
84
+ type = detectDataTypeFromExtension(url);
85
+ }
86
+ if (type) {
87
+ item.type = type;
88
+ }
89
+ if (item.type && shouldHaveDataUrl(item.type)) {
90
+ item.dataUrl = item.url;
91
+ }
92
+ return [2 /*return*/, {
93
+ pass: true,
94
+ // The type may or may not be true
95
+ type: type,
96
+ // fetched / calculated item
97
+ item: item,
98
+ }];
99
+ }
100
+ });
101
+ });
102
+ }
103
+ //# sourceMappingURL=validate-url.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validate-url.js","sourceRoot":"","sources":["../../../src/resources/validate-url.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AACpC,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EACL,KAAK,EACL,gBAAgB,EAChB,SAAS,EACT,kBAAkB,EAClB,OAAO,EACP,wBAAwB,EACxB,WAAW,EACX,2BAA2B,EAC3B,iBAAiB,GAClB,MAAM,mCAAmC,CAAC;AAE3C;;;;;;GAMG;AACH,MAAM,UAAgB,WAAW,CAAC,GAAW;;;;;;oBAC3C,iDAAiD;oBACjD,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE;wBACf,sBAAO;gCACL,IAAI,EAAE,KAAK;gCACX,KAAK,EAAE,eAAe;6BACvB,EAAC;qBACH;oBAGK,mBAAmB,GAAG,gBAAgB,CAAC,GAAG,CAAC,CAAC;oBAC5C,YAAY,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC;oBAEpC,IAAI,YAAY,IAAI,CAAC,mBAAmB,EAAE;wBACxC,sBAAO;gCACL,IAAI,EAAE,KAAK;gCACX,KAAK,EAAE,eAAe;6BACvB,EAAC;qBACH;oBAOG,UAAU,GAA4D,EAAE,CAAC;;;;yBAG9D,mBAAmB,EAAnB,wBAAmB;oBAC5B,qBAAM,kBAAkB,CAAC,GAAG,CAAC,EAAA;;oBAA7B,KAAA,SAA6B,CAAA;;wBAC7B,qBAAM,OAAO,CAAC,GAAG,CAAC,EAAA;;oBAAlB,KAAA,SAAkB,CAAA;;;oBAFtB,UAAU,KAEY,CAAC;oBAEvB,8CAA8C;oBAC9C,IAAI,CAAC,UAAU,CAAC,EAAE,EAAE;wBAClB,sBAAO;gCACL,IAAI,EAAE,KAAK;gCACX,KAAK,EAAE,YAAY;6BACpB,EAAC;qBACH;;;;oBAED,qEAAqE;oBACrE,wEAAwE;oBACxE,yEAAyE;oBACzE,2EAA2E;oBAC3E,0EAA0E;oBAC1E,0EAA0E;oBAC1E,iEAAiE;oBACjE,MAAM,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAC;;;oBAEvC,8EAA8E;oBAC9E,oBAAoB;oBACpB,IAAI,UAAU,CAAC,IAAI,EAAE;wBACnB,IAAI,GAAG,UAAU,CAAC,IAAI,CAAC;qBACxB;yBAAM;wBACL,IAAI,GAAG,EAAE,KAAK,EAAE,WAAW,CAAC,GAAG,CAAC,EAAE,GAAG,KAAA,EAAE,CAAC;qBACzC;oBAED,IAAI,UAAU,CAAC,OAAO,EAAE;wBACtB,IAAI,GAAG,wBAAwB,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;qBACrD;oBAED,IAAI,mBAAmB,EAAE;wBACvB,IAAI,GAAG,QAAQ,CAAC,iBAAiB,CAAC,CAAC;qBACpC;yBAAM,IAAI,CAAC,IAAI,EAAE;wBAChB,yCAAyC;wBACzC,IAAI,GAAG,2BAA2B,CAAC,GAAG,CAAC,CAAC;qBACzC;oBAED,IAAI,IAAI,EAAE;wBACR,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;qBAClB;oBAED,IAAI,IAAI,CAAC,IAAI,IAAI,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;wBAC7C,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC;qBACzB;oBAED,sBAAO;4BACL,IAAI,EAAE,IAAI;4BACV,kCAAkC;4BAClC,IAAI,MAAA;4BACJ,4BAA4B;4BAC5B,IAAI,MAAA;yBACL,EAAC;;;;CACH"}