@vannizhang/living-atlas-content-validator 1.5.19 → 1.5.20

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 (102) hide show
  1. package/README.md +230 -20
  2. package/dist/configureSettings.d.ts +1 -15
  3. package/dist/configureSettings.js +13 -9
  4. package/dist/configureSettings.js.map +1 -1
  5. package/dist/index.d.ts +18 -6
  6. package/dist/index.js +28 -2
  7. package/dist/index.js.map +1 -1
  8. package/dist/lib/accessInformation/isValidAccessInformation.js +1 -0
  9. package/dist/lib/accessInformation/isValidAccessInformation.js.map +1 -1
  10. package/dist/lib/checkTitleAndSnippetSearchability/checkTitleAndSnippetSearchability.js +1 -0
  11. package/dist/lib/checkTitleAndSnippetSearchability/checkTitleAndSnippetSearchability.js.map +1 -1
  12. package/dist/lib/config.d.ts +5 -0
  13. package/dist/lib/config.js +37 -1
  14. package/dist/lib/config.js.map +1 -1
  15. package/dist/lib/deleteProtection/isDeleteProtectionEnabled.js +1 -0
  16. package/dist/lib/deleteProtection/isDeleteProtectionEnabled.js.map +1 -1
  17. package/dist/lib/deprecated/isDeprecated.js +1 -0
  18. package/dist/lib/deprecated/isDeprecated.js.map +1 -1
  19. package/dist/lib/description/isValidDescription.js +1 -0
  20. package/dist/lib/description/isValidDescription.js.map +1 -1
  21. package/dist/lib/featureServiceCDNSetting/checkFeatureServiceCDNSetting.d.ts +10 -0
  22. package/dist/lib/featureServiceCDNSetting/checkFeatureServiceCDNSetting.js +52 -0
  23. package/dist/lib/featureServiceCDNSetting/checkFeatureServiceCDNSetting.js.map +1 -0
  24. package/dist/lib/featureServiceExportDataSetting/checkFeatureServiceExportSetting.d.ts +8 -0
  25. package/dist/lib/featureServiceExportDataSetting/checkFeatureServiceExportSetting.js +54 -0
  26. package/dist/lib/featureServiceExportDataSetting/checkFeatureServiceExportSetting.js.map +1 -0
  27. package/dist/lib/featureServiceExtents/checkFeatureServiceExtents.d.ts +16 -0
  28. package/dist/lib/featureServiceExtents/checkFeatureServiceExtents.js +83 -0
  29. package/dist/lib/featureServiceExtents/checkFeatureServiceExtents.js.map +1 -0
  30. package/dist/lib/featureServiceExtents/checkFeatureServiceExtentsHelpers.d.ts +17 -0
  31. package/dist/lib/featureServiceExtents/checkFeatureServiceExtentsHelpers.js +33 -0
  32. package/dist/lib/featureServiceExtents/checkFeatureServiceExtentsHelpers.js.map +1 -0
  33. package/dist/lib/featureServiceFieldAliases/checkFeatureServiceFieldAliases.js +1 -0
  34. package/dist/lib/featureServiceFieldAliases/checkFeatureServiceFieldAliases.js.map +1 -1
  35. package/dist/lib/featureServiceFieldDescriptions/checkFeatureServiceFieldDescriptions.js +1 -0
  36. package/dist/lib/featureServiceFieldDescriptions/checkFeatureServiceFieldDescriptions.js.map +1 -1
  37. package/dist/lib/featureServiceFieldIndexes/checkFeatureServiceFieldIndexes.d.ts +10 -0
  38. package/dist/lib/featureServiceFieldIndexes/checkFeatureServiceFieldIndexes.js +53 -0
  39. package/dist/lib/featureServiceFieldIndexes/checkFeatureServiceFieldIndexes.js.map +1 -0
  40. package/dist/lib/featureServiceFieldIndexes/featureServiceFieldIndexesHelpers.d.ts +7 -0
  41. package/dist/lib/featureServiceFieldIndexes/featureServiceFieldIndexesHelpers.js +27 -0
  42. package/dist/lib/featureServiceFieldIndexes/featureServiceFieldIndexesHelpers.js.map +1 -0
  43. package/dist/lib/featureServiceFieldValueTypes/checkFeatureServiceFieldValueTypes.js +1 -0
  44. package/dist/lib/featureServiceFieldValueTypes/checkFeatureServiceFieldValueTypes.js.map +1 -1
  45. package/dist/lib/itemExtent/checkItemExtent.d.ts +27 -0
  46. package/dist/lib/itemExtent/checkItemExtent.js +102 -0
  47. package/dist/lib/itemExtent/checkItemExtent.js.map +1 -0
  48. package/dist/lib/itemExtent/checkItemExtentHelpers.d.ts +38 -0
  49. package/dist/lib/itemExtent/checkItemExtentHelpers.js +132 -0
  50. package/dist/lib/itemExtent/checkItemExtentHelpers.js.map +1 -0
  51. package/dist/lib/itemExtent/scoringConfig.d.ts +9 -0
  52. package/dist/lib/itemExtent/scoringConfig.js +13 -0
  53. package/dist/lib/itemExtent/scoringConfig.js.map +1 -0
  54. package/dist/lib/licenseInfo/isValidLicenseInfo.js +1 -0
  55. package/dist/lib/licenseInfo/isValidLicenseInfo.js.map +1 -1
  56. package/dist/lib/sharing/isValidAccess.js +1 -0
  57. package/dist/lib/sharing/isValidAccess.js.map +1 -1
  58. package/dist/lib/ssl/isValidSSL.js +3 -0
  59. package/dist/lib/ssl/isValidSSL.js.map +1 -1
  60. package/dist/lib/summary/isValidSummary.js +1 -0
  61. package/dist/lib/summary/isValidSummary.js.map +1 -1
  62. package/dist/lib/tags/isValidTags.js +1 -0
  63. package/dist/lib/tags/isValidTags.js.map +1 -1
  64. package/dist/lib/thumbnail/isValidThumbnail.js +1 -0
  65. package/dist/lib/thumbnail/isValidThumbnail.js.map +1 -1
  66. package/dist/lib/title/isValidTitle.js +1 -0
  67. package/dist/lib/title/isValidTitle.js.map +1 -1
  68. package/dist/lib/userProfileDescription/isValidUserProfileDescription.js +1 -0
  69. package/dist/lib/userProfileDescription/isValidUserProfileDescription.js.map +1 -1
  70. package/dist/lib/userProfileName/isValidUserProfileName.js +1 -0
  71. package/dist/lib/userProfileName/isValidUserProfileName.js.map +1 -1
  72. package/dist/lib/userProfileThumbnail/isValidUserProfileThumbnail.js +1 -0
  73. package/dist/lib/userProfileThumbnail/isValidUserProfileThumbnail.js.map +1 -1
  74. package/dist/lib/util/isFeatureService.d.ts +6 -0
  75. package/dist/lib/util/isFeatureService.js +21 -1
  76. package/dist/lib/util/isFeatureService.js.map +1 -1
  77. package/dist/lib/util/shouldValidateByBetaRules.d.ts +0 -1
  78. package/dist/lib/util/shouldValidateByBetaRules.js +27 -26
  79. package/dist/lib/util/shouldValidateByBetaRules.js.map +1 -1
  80. package/dist/lib/util/stringsConfig.d.ts +5 -1
  81. package/dist/lib/util/stringsConfig.js +60 -22
  82. package/dist/lib/util/stringsConfig.js.map +1 -1
  83. package/dist/lib/validate/validate.d.ts +14 -2
  84. package/dist/lib/validate/validate.js +28 -1
  85. package/dist/lib/validate/validate.js.map +1 -1
  86. package/dist/locale/en.json +49 -6
  87. package/dist/package-info.json +1 -1
  88. package/dist/services/feature-service/fetchFeatureServiceAdminJSON.d.ts +14 -0
  89. package/dist/services/feature-service/fetchFeatureServiceAdminJSON.js +57 -0
  90. package/dist/services/feature-service/fetchFeatureServiceAdminJSON.js.map +1 -0
  91. package/dist/services/feature-service/fetchFeatureServiceRootJSON.d.ts +16 -0
  92. package/dist/services/feature-service/fetchFeatureServiceRootJSON.js +84 -0
  93. package/dist/services/feature-service/fetchFeatureServiceRootJSON.js.map +1 -0
  94. package/dist/types/index.d.ts +179 -2
  95. package/dist/types/index.js +5 -0
  96. package/dist/types/index.js.map +1 -1
  97. package/package.json +2 -2
  98. package/dist/locale/de.json +0 -201
  99. package/dist/locale/es.json +0 -201
  100. package/dist/locale/fr.json +0 -201
  101. package/dist/locale/ja.json +0 -201
  102. package/dist/locale/pt-br.json +0 -201
@@ -0,0 +1,84 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.fetchFeatureServiceRootJSON = void 0;
13
+ const isFeatureService_1 = require("../../lib/util/isFeatureService");
14
+ const getFeatureServerURL_1 = require("./getFeatureServerURL");
15
+ /**
16
+ * Fetches the root JSON of a feature service. This resource provides basic information about the feature service,
17
+ * including the feature layers and tables that it contains, the service description, and so on.
18
+ *
19
+ * If an 'Invalid token' error is encountered, it retries the request without the token.
20
+ *
21
+ * @param item - The item representing the feature service.
22
+ * @param token - The token for authentication.
23
+ * @param bypassCache - Whether to bypass the cache (default is false). If true, a query timestamp is added to the request to bypass any cached responses.
24
+ * @returns {FeatureServiceJSON} A promise that resolves to a FeatureServiceJSON object.
25
+ * @throws An error if the item is not a feature service or if the URL is not found.
26
+ *
27
+ * @see https://developers.arcgis.com/rest/services-reference/enterprise/feature-service/
28
+ */
29
+ const fetchFeatureServiceRootJSON = (item_1, token_1, ...args_1) => __awaiter(void 0, [item_1, token_1, ...args_1], void 0, function* (item, token, bypassCache = false) {
30
+ try {
31
+ return yield fetchFeatureServiceRootHelper(item, token, bypassCache);
32
+ }
33
+ catch (error) {
34
+ // Check for 'Invalid token' error and retry without token
35
+ if (error instanceof Error &&
36
+ error.message &&
37
+ error.message.toLowerCase().includes('invalid token')) {
38
+ try {
39
+ console.warn('Invalid token error detected while fetching feature service root JSON. Retrying without token...');
40
+ return yield fetchFeatureServiceRootHelper(item, undefined, bypassCache);
41
+ }
42
+ catch (retryError) {
43
+ console.error('Error fetching feature service root JSON retry:', retryError);
44
+ throw retryError;
45
+ }
46
+ }
47
+ console.error('Error fetching feature service layers and tables:', error);
48
+ throw error; // rethrow the error for the caller to handle
49
+ }
50
+ });
51
+ exports.fetchFeatureServiceRootJSON = fetchFeatureServiceRootJSON;
52
+ const fetchFeatureServiceRootHelper = (item_1, token_1, ...args_1) => __awaiter(void 0, [item_1, token_1, ...args_1], void 0, function* (item, token, bypassCache = false) {
53
+ if (!item) {
54
+ throw new Error('Item is required');
55
+ }
56
+ if ((0, isFeatureService_1.isFeatureService)(item) === false) {
57
+ throw new Error('Item is not a feature service');
58
+ }
59
+ if (!item.url) {
60
+ throw new Error('URL of the feature service is not found');
61
+ }
62
+ // if (!token) {
63
+ // throw new Error('Token is required to access admin endpoint');
64
+ // }
65
+ // get the feature server URL
66
+ const url = (0, getFeatureServerURL_1.getFeatureServerRootURL)(item.url);
67
+ const params = new URLSearchParams({
68
+ f: 'json',
69
+ // token,
70
+ });
71
+ if (token) {
72
+ params.append('token', token);
73
+ }
74
+ if (bypassCache) {
75
+ params.append('queryTimestamp', new Date().getTime().toString());
76
+ }
77
+ const res = yield fetch(`${url}?${params.toString()}`);
78
+ const data = yield res.json();
79
+ if (data.error) {
80
+ throw new Error(data.error.message || 'Error fetching feature service admin JSON');
81
+ }
82
+ return data;
83
+ });
84
+ //# sourceMappingURL=fetchFeatureServiceRootJSON.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fetchFeatureServiceRootJSON.js","sourceRoot":"","sources":["../../../src/services/feature-service/fetchFeatureServiceRootJSON.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,sEAAmE;AAEnE,+DAAgE;AAEhE;;;;;;;;;;;;;GAaG;AACI,MAAM,2BAA2B,GAAG,6BAIZ,EAAE,oEAH7B,IAAW,EACX,KAAa,EACb,WAAW,GAAG,KAAK;IAEnB,IAAI,CAAC;QACD,OAAO,MAAM,6BAA6B,CAAC,IAAI,EAAE,KAAK,EAAE,WAAW,CAAC,CAAC;IACzE,CAAC;IAAC,OAAO,KAAU,EAAE,CAAC;QAClB,0DAA0D;QAC1D,IACI,KAAK,YAAY,KAAK;YACtB,KAAK,CAAC,OAAO;YACb,KAAK,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,eAAe,CAAC,EACvD,CAAC;YACC,IAAI,CAAC;gBACD,OAAO,CAAC,IAAI,CACR,kGAAkG,CACrG,CAAC;gBACF,OAAO,MAAM,6BAA6B,CACtC,IAAI,EACJ,SAAS,EACT,WAAW,CACd,CAAC;YACN,CAAC;YAAC,OAAO,UAAU,EAAE,CAAC;gBAClB,OAAO,CAAC,KAAK,CACT,iDAAiD,EACjD,UAAU,CACb,CAAC;gBACF,MAAM,UAAU,CAAC;YACrB,CAAC;QACL,CAAC;QACD,OAAO,CAAC,KAAK,CACT,mDAAmD,EACnD,KAAK,CACR,CAAC;QACF,MAAM,KAAK,CAAC,CAAC,6CAA6C;IAC9D,CAAC;AACL,CAAC,CAAA,CAAC;AArCW,QAAA,2BAA2B,+BAqCtC;AAEF,MAAM,6BAA6B,GAAG,6BAIP,EAAE,oEAH7B,IAAW,EACX,KAAa,EACb,WAAW,GAAG,KAAK;IAEnB,IAAI,CAAC,IAAI,EAAE,CAAC;QACR,MAAM,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAC;IACxC,CAAC;IAED,IAAI,IAAA,mCAAgB,EAAC,IAAI,CAAC,KAAK,KAAK,EAAE,CAAC;QACnC,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAC;IACrD,CAAC;IAED,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;QACZ,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAC;IAC/D,CAAC;IAED,gBAAgB;IAChB,qEAAqE;IACrE,IAAI;IAEJ,6BAA6B;IAC7B,MAAM,GAAG,GAAG,IAAA,6CAAuB,EAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAE9C,MAAM,MAAM,GAAG,IAAI,eAAe,CAAC;QAC/B,CAAC,EAAE,MAAM;QACT,SAAS;KACZ,CAAC,CAAC;IAEH,IAAI,KAAK,EAAE,CAAC;QACR,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;IAClC,CAAC;IAED,IAAI,WAAW,EAAE,CAAC;QACd,MAAM,CAAC,MAAM,CAAC,gBAAgB,EAAE,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAC;IACrE,CAAC;IAED,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,GAAG,IAAI,MAAM,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;IACvD,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC;IAE9B,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;QACb,MAAM,IAAI,KAAK,CACX,IAAI,CAAC,KAAK,CAAC,OAAO,IAAI,2CAA2C,CACpE,CAAC;IACN,CAAC;IAED,OAAO,IAA0B,CAAC;AACtC,CAAC,CAAA,CAAC"}
@@ -100,7 +100,7 @@ export type ValidationMessage = {
100
100
  * - `unknown`: The validation status is unknown, which is the default status when a ValidationInfo object is created but the validation process has not yet been executed.
101
101
  */
102
102
  export type ValidationResultStatus = 'pass' | 'warning' | 'error' | 'not-applicable' | 'unknown';
103
- export declare const ValidationRuleIds: readonly ["item-sharing-level", "item-credits-attribution-info", "item-description", "item-license-info", "item-snippet", "item-ssl", "item-tags", "item-thumbnail", "item-title", "item-deprecated", "item-delete-protection", "item-title-and-summary-searchability", "user-profile-description", "user-profile-full-name", "user-profile-thumbnail", "feature-service-field-value-types", "feature-service-field-aliases", "feature-service-field-descriptions"];
103
+ export declare const ValidationRuleIds: readonly ["item-sharing-level", "item-credits-attribution-info", "item-description", "item-license-info", "item-snippet", "item-ssl", "item-tags", "item-thumbnail", "item-title", "item-deprecated", "item-delete-protection", "item-title-and-summary-searchability", "user-profile-description", "user-profile-full-name", "user-profile-thumbnail", "feature-service-field-value-types", "feature-service-field-aliases", "feature-service-field-descriptions", "item-extent", "feature-service-cdn-setting", "feature-service-field-indexes", "feature-service-export-data-setting", "feature-service-extents"];
104
104
  /**
105
105
  * Validation rule identifier
106
106
  */
@@ -148,6 +148,10 @@ export type ValidationInfo = {
148
148
  * if true, this validation rule is a binary check, i.e., it can only pass or fail.
149
149
  */
150
150
  isBinaryCheck: boolean;
151
+ /**
152
+ * if true, this validation rule is considered an advisory check and does not impact the overall score.
153
+ */
154
+ isAdvisory: boolean;
151
155
  };
152
156
  /**
153
157
  * Represents the result of validating an ArcGIS Online item and its owner's profile.
@@ -225,6 +229,10 @@ export type ValidationResult = {
225
229
  * Applicable only to feature service items.
226
230
  */
227
231
  featureServiceFieldValueTypes: ValidationInfo;
232
+ /**
233
+ * Validation result for the item's extent.
234
+ */
235
+ itemExtent: ValidationInfo;
228
236
  };
229
237
  /**
230
238
  * Validation results for the item owner's profile.
@@ -244,6 +252,27 @@ export type ValidationResult = {
244
252
  */
245
253
  userProfileThumbnail: ValidationInfo;
246
254
  };
255
+ /**
256
+ * Validation results for advisory checks that do not impact the overall score.
257
+ */
258
+ advisories: {
259
+ /**
260
+ * Validation result for the feature service CDN setting.
261
+ */
262
+ featureServiceCdnSetting: ValidationInfo;
263
+ /**
264
+ * Validation result for the feature service field indexes.
265
+ */
266
+ featureServiceFieldIndexes: ValidationInfo;
267
+ /**
268
+ * Validation result for the feature service export data setting.
269
+ */
270
+ featureServiceExportDataSetting: ValidationInfo;
271
+ /**
272
+ * Validation result for the feature service extents.
273
+ */
274
+ featureServiceExtents: ValidationInfo;
275
+ };
247
276
  /**
248
277
  * The ArcGIS Online Item ID.
249
278
  */
@@ -271,6 +300,125 @@ export type ValidationResult = {
271
300
  * @see https://developers.arcgis.com/rest/services-reference/enterprise/feature-service/
272
301
  */
273
302
  export type FeatureServiceJSON = {
303
+ /**
304
+ * The capabilities property returns Create, Delete, Extract, Query, Update, Sync, Uploads, and SharedTemplateEditing (added at ArcGIS Enterprise 11.4) capabilities.
305
+ *
306
+ * - The `Uploads` capability is included if Create, Delete, or Update is enabled for a feature service.
307
+ * - The `Editing` capability is included if Create, Delete, and Update is enabled and allowGeometryUpdates is true.
308
+ * - The `Sync` capability allows editors to make local edits and periodically sync with the feature service.
309
+ * - The `Extract` capability allows editors to create a local copy of data without the ability to sync with the feature service.
310
+ * - The `SharedTemplateEditing` capability allows users to add shared templates as well as update and delete the shared template they have created.
311
+ *
312
+ * @see https://developers.arcgis.com/rest/services-reference/enterprise/feature-service/
313
+ */
314
+ capabilities: string;
315
+ /**
316
+ * initial extent of the feature service
317
+ */
318
+ initialExtent: {
319
+ xmin: number;
320
+ ymin: number;
321
+ xmax: number;
322
+ ymax: number;
323
+ spatialReference: {
324
+ wkid: number;
325
+ latestWkid: number;
326
+ };
327
+ };
328
+ /**
329
+ * full extent of the feature service
330
+ */
331
+ fullExtent: {
332
+ xmin: number;
333
+ ymin: number;
334
+ xmax: number;
335
+ ymax: number;
336
+ spatialReference: {
337
+ wkid: number;
338
+ latestWkid: number;
339
+ };
340
+ };
341
+ /**
342
+ * the feature layers published by this service
343
+ */
344
+ layers: {
345
+ id: number;
346
+ name: string;
347
+ type: string;
348
+ geometryType: string;
349
+ }[];
350
+ /**
351
+ * the tables published by this service
352
+ */
353
+ tables: {
354
+ id: number;
355
+ name: string;
356
+ }[];
357
+ };
358
+ /**
359
+ * Represents the administrative feature service resource that maintains a set of operations that manage the state and contents of the service.
360
+ *
361
+ * @see https://developers.arcgis.com/rest/services-reference/enterprise/hosted-feature-service/
362
+ */
363
+ export type FeatureServiceAdminJSON = {
364
+ adminServiceInfo: {
365
+ /**
366
+ * cacheMaxAge is the maximum time, in second, that a CDN will cache the feature service's data.
367
+ *
368
+ * @see https://developers.arcgis.com/documentation/portal-and-data-services/data-services/feature-services/cdn-caching/#how-the-cdn-cache-works
369
+ */
370
+ cacheMaxAge: number;
371
+ /**
372
+ * serviceName is the name of the feature service
373
+ */
374
+ name: string;
375
+ /**
376
+ * status of the feature service
377
+ */
378
+ status: string;
379
+ /**
380
+ * type of the feature service
381
+ */
382
+ type: string;
383
+ };
384
+ /**
385
+ * The capabilities property returns Create, Delete, Extract, Query, Update, Sync, Uploads, and SharedTemplateEditing (added at ArcGIS Enterprise 11.4) capabilities.
386
+ *
387
+ * - The `Uploads` capability is included if Create, Delete, or Update is enabled for a feature service.
388
+ * - The `Editing` capability is included if Create, Delete, and Update is enabled and allowGeometryUpdates is true.
389
+ * - The `Sync` capability allows editors to make local edits and periodically sync with the feature service.
390
+ * - The `Extract` capability allows editors to create a local copy of data without the ability to sync with the feature service.
391
+ * - The `SharedTemplateEditing` capability allows users to add shared templates as well as update and delete the shared template they have created.
392
+ *
393
+ * @see https://developers.arcgis.com/rest/services-reference/enterprise/feature-service/
394
+ */
395
+ capabilities: string;
396
+ /**
397
+ * initial extent of the feature service
398
+ */
399
+ initialExtent: {
400
+ xmin: number;
401
+ ymin: number;
402
+ xmax: number;
403
+ ymax: number;
404
+ spatialReference: {
405
+ wkid: number;
406
+ latestWkid: number;
407
+ };
408
+ };
409
+ /**
410
+ * full extent of the feature service
411
+ */
412
+ fullExtent: {
413
+ xmin: number;
414
+ ymin: number;
415
+ xmax: number;
416
+ ymax: number;
417
+ spatialReference: {
418
+ wkid: number;
419
+ latestWkid: number;
420
+ };
421
+ };
274
422
  /**
275
423
  * the feature layers published by this service
276
424
  */
@@ -348,6 +496,31 @@ export declare const FeatureLayerFieldValueTypes: readonly ["nameOrTitle", "desc
348
496
  * @see https://www.esri.com/arcgis-blog/products/arcgis-online/data-management/describing-layer-attributes-with-field-descriptions-march-2019
349
497
  */
350
498
  export type FeatureLayerFieldValueType = (typeof FeatureLayerFieldValueTypes)[number];
499
+ /**
500
+ * Represents a Feature Layer field index in JSON format.
501
+ */
502
+ export type FeatureLayerFieldIndex = {
503
+ /**
504
+ * Name of the index
505
+ */
506
+ name: string;
507
+ /**
508
+ * Fields included in the index
509
+ */
510
+ fields: string;
511
+ /**
512
+ * If true, the index is in ascending order; otherwise, it is in descending order.
513
+ */
514
+ isAscending: boolean;
515
+ /**
516
+ * If true, the index enforces uniqueness for the indexed fields.
517
+ */
518
+ isUnique: boolean;
519
+ /**
520
+ * Type of the index
521
+ */
522
+ indexType: 'Attribute' | 'Spatial' | 'FullText';
523
+ };
351
524
  /**
352
525
  * Represents a Feature Layer in JSON format.
353
526
  *
@@ -367,7 +540,7 @@ export type FeatureLayerJSON = {
367
540
  geometryType?: string;
368
541
  minScale?: number;
369
542
  maxScale?: number;
370
- 'extent?': {
543
+ extent?: {
371
544
  xmin: number;
372
545
  ymin: number;
373
546
  xmax: number;
@@ -381,6 +554,10 @@ export type FeatureLayerJSON = {
381
554
  * the feature layer's fields
382
555
  */
383
556
  fields: FeatureLayerFieldRaw[];
557
+ /**
558
+ * the feature layer's indexes
559
+ */
560
+ indexes: FeatureLayerFieldIndex[];
384
561
  };
385
562
  /**
386
563
  * Represents the response from the Feature Service layers endpoint.
@@ -33,6 +33,11 @@ exports.ValidationRuleIds = [
33
33
  'feature-service-field-value-types',
34
34
  'feature-service-field-aliases',
35
35
  'feature-service-field-descriptions',
36
+ 'item-extent',
37
+ 'feature-service-cdn-setting',
38
+ 'feature-service-field-indexes',
39
+ 'feature-service-export-data-setting',
40
+ 'feature-service-extents',
36
41
  ];
37
42
  /**
38
43
  * Represents the field value type of a feature layer.
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;GAYG;;;AAqIU,QAAA,iBAAiB,GAAG;IAC7B,oBAAoB;IACpB,+BAA+B;IAC/B,kBAAkB;IAClB,mBAAmB;IACnB,cAAc;IACd,UAAU;IACV,WAAW;IACX,gBAAgB;IAChB,YAAY;IACZ,iBAAiB;IACjB,wBAAwB;IACxB,sCAAsC;IACtC,0BAA0B;IAC1B,wBAAwB;IACxB,wBAAwB;IACxB,mCAAmC;IACnC,+BAA+B;IAC/B,oCAAoC;CAC9B,CAAC;AA4PX;;;;;GAKG;AACU,QAAA,2BAA2B,GAAG;IACvC,aAAa;IACb,aAAa;IACb,gBAAgB;IAChB,eAAe;IACf,mBAAmB;IACnB,aAAa;IACb,UAAU;IACV,kBAAkB;IAClB,aAAa;IACb,cAAc;IACd,iBAAiB;IACjB,QAAQ;IACR,qBAAqB;IACrB,YAAY;IACZ,aAAa;CACP,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;GAYG;;;AAqIU,QAAA,iBAAiB,GAAG;IAC7B,oBAAoB;IACpB,+BAA+B;IAC/B,kBAAkB;IAClB,mBAAmB;IACnB,cAAc;IACd,UAAU;IACV,WAAW;IACX,gBAAgB;IAChB,YAAY;IACZ,iBAAiB;IACjB,wBAAwB;IACxB,sCAAsC;IACtC,0BAA0B;IAC1B,wBAAwB;IACxB,wBAAwB;IACxB,mCAAmC;IACnC,+BAA+B;IAC/B,oCAAoC;IACpC,aAAa;IACb,6BAA6B;IAC7B,+BAA+B;IAC/B,qCAAqC;IACrC,yBAAyB;CACnB,CAAC;AAiZX;;;;;GAKG;AACU,QAAA,2BAA2B,GAAG;IACvC,aAAa;IACb,aAAa;IACb,gBAAgB;IAChB,eAAe;IACf,mBAAmB;IACnB,aAAa;IACb,UAAU;IACV,kBAAkB;IAClB,aAAa;IACb,cAAc;IACd,iBAAiB;IACjB,QAAQ;IACR,qBAAqB;IACrB,YAAY;IACZ,aAAa;CACP,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vannizhang/living-atlas-content-validator",
3
- "version": "1.5.19",
3
+ "version": "1.5.20",
4
4
  "description": "Validation and Scoring rules for curating content in the ArcGIS Living Atlas",
5
5
  "repository": {
6
6
  "type": "git",
@@ -18,7 +18,7 @@
18
18
  ],
19
19
  "license": "Apache-2.0",
20
20
  "scripts": {
21
- "test": "jest --config jest.config.js --testPathIgnorePatterns=__tests__",
21
+ "test": "jest --config jest.config.js",
22
22
  "test:benchmarks": "jest --config jest.config.js __tests__/benchmarks/",
23
23
  "test:regression": "jest --config jest.config.js __tests__/regression/",
24
24
  "clean": "rimraf dist",
@@ -1,201 +0,0 @@
1
- {
2
- "accessInformation": {
3
- "TOOLTIP_GUIDANCE_DEFAULT": "Geben Sie einen Text ein, der den Organisationen, die dies benötigen, wie zum Beispiel Datenanbietern und Anwendungsentwicklern, als Quellennachweis oder Attribuierung dienen kann. <b>Fassen Sie sich kurz</b>. Verwenden Sie den Abschnitt \"Beschreibung\" für eine vollständige Wiedergabe oder die vollständigen bibliografischen Angaben.",
4
- "TOOLTIP_GUIDANCE_INTL": "",
5
- "TOOLTIP_SCORING_MSG_DEFAULT": "Die volle Punktzahl wird vergeben, wenn hier ein Text eingegeben wurde.",
6
- "TOOLTIP_SCORING_MSG_INTL": "",
7
- "LABEL": "Quellennachweis (Attribuierung) hinzufügen",
8
- "TITLE": "Quellennachweis (Attribuierung) prüfen",
9
- "EMPTY_STRING_MESSAGE": "Quellennachweis (Attribuierung) hinzufügen",
10
- "MINIMUM_WORD_COUNT_MESSAGE": ""
11
- },
12
- "description": {
13
- "TOOLTIP_GUIDANCE_DEFAULT": "Eine gute Beschreibung beantwortet direkt die Fragen \"Was ist das?\" und \"Was zeigt dieser Layer, diese Karte bzw. diese App?\" Zum Behandeln der grundlegenden Fragen nach dem \"Wer, Was, Wann, Wo, Warum und Wie\" (natürlich nicht unbedingt in dieser Reihenfolge) reichen in der Regel ein paar kurze Absätze aus. Vermeiden Sie die Verwendung von Jargon oder Abkürzungen ohne zugehörige Erläuterung. Stellen Sie Weblinks zu Quellinformationen und detaillierten Erläuterungen bereit. Verwenden Sie dazu den Link-Editor in ArcGIS Online und HTTPS-Links. Geben Sie das Jahr oder die Version der Daten an. Machen Sie Angaben zum abgedeckten geographischen Bereich. Stellen Sie für Layer eine einfache Liste der Attributfeld-Aliasnamen bereit. Geben Sie für Bilddaten-Layer Informationen über die Pixelgröße an.",
14
- "TOOLTIP_GUIDANCE_INTL": "",
15
- "TOOLTIP_SCORING_MSG_DEFAULT": "Es werden Punkte vergeben, wenn etwa 4-5 Sätze mit durchschnittlich 12 Wörtern pro Satz vorhanden sind. Es werden Punkte vergeben, wenn Links zu detaillierteren Informationen bereitgestellt wurden. Künftig werden Punkte für die Angabe \"Quelle: [Quellinformationen oder Link]\" oder \"Bibliografische Angaben: [Quellinformationen oder Link]\" vergeben.",
16
- "TOOLTIP_SCORING_MSG_INTL": "Es werden Punkte vergeben, wenn eine Beschreibung vorhanden ist. Es werden Punkte vergeben, wenn Links zu detaillierteren Informationen bereitgestellt wurden.",
17
- "LABEL": "Beschreibung verbessern",
18
- "TITLE": "Beschreibung prüfen",
19
- "EMPTY_STRING_MESSAGE": "Eine Beschreibung ist erforderlich",
20
- "MINIMUM_WORD_COUNT_MESSAGE": "Die Beschreibung ist zu kurz. Fügen Sie weitere Informationen hinzu.",
21
- "CONTAINS_LINKS_MESSAGE": "(HTTPS-)Links zu Inhaltsquellen/Informationen hinzufügen",
22
- "CONTAINS_SOURCE_MESSAGE": "Der Beschreibung Quellinformation im Format \"Quelle: [Quellinformationen oder Link]\" hinzufügen"
23
- },
24
- "layers": {
25
- "TOOLTIP_GUIDANCE_DEFAULT": "Für eine übersichtliche und zielführende Karte sind im Allgemeinen etwa 1–5 Layer erforderlich. Wenn ein Element immer mehr Layer erfordert, weist dies in der Regel darauf hin, dass das Informationsprodukt von einer Überarbeitung oder Neukonzeption durch den Ersteller profitieren würde. Es wird mehr Zeit benötigt, um zu klären und herauszuarbeiten, wie das Ergebnis aussehen soll.",
26
- "TOOLTIP_GUIDANCE_INTL": "",
27
- "TOOLTIP_SCORING_MSG_DEFAULT": "Die maximale Punktzahl wird für einen Layer vergeben. Mit steigender Anzahl der Layer wird die Punktzahl reduziert.",
28
- "TOOLTIP_SCORING_MSG_INTL": "",
29
- "LABEL": "Die Anzahl der Layer reduzieren",
30
- "TITLE": "Die Anzahl der Layer prüfen",
31
- "EMPTY_STRING_MESSAGE": "Es sind keine zu überprüfenden Layer vorhanden. Außerdem muss mindestens ein Layer für diesen Elementtyp vorhanden sein.",
32
- "GOOD_MESSAGE": "Mehr als 7 Layer",
33
- "BETTER_MESSAGE": "Es sind zwischen 4 und 7 Layer vorhanden",
34
- "BEST_MESSAGE": ""
35
- },
36
- "licenseInfo": {
37
- "TOOLTIP_GUIDANCE_DEFAULT": "Verweisen Sie auf Nutzungsbedingungen, die für Ihre Organisation oder den Datenanbieter erforderlich sind. Verwenden Sie beim Hinzufügen von Hyperlinks bitte den Link-Editor in ArcGIS Online sowie HTTPS-Links.",
38
- "TOOLTIP_GUIDANCE_INTL": "Verweisen Sie auf Nutzungsbedingungen, die für Ihre Organisation oder den Datenanbieter erforderlich sind.",
39
- "TOOLTIP_SCORING_MSG_DEFAULT": "Es werden Punkte vergeben, wenn hier mehr als ein Wort vorhanden ist. Punkte werden auch vergeben für: Text, der einen Hyperlink zu detaillierteren Informationen zur genaueren Erläuterung der Beschränkungen enthält.",
40
- "TOOLTIP_SCORING_MSG_INTL": "Es werden Punkte für Beschreibungen der Nutzungsbedingungen vergeben, die mehr als ein Wort enthalten. Für Text, der einen Hyperlink zu detaillierteren Informationen über Nutzungsbeschränkungen enthält, werden Punkte vergeben.",
41
- "LABEL": "Nutzungsbedingungen verbessern",
42
- "TITLE": "Nutzungsbedingungen prüfen",
43
- "EMPTY_STRING_MESSAGE": "Nutzungsbedingungen hinzufügen",
44
- "MINIMUM_WORD_COUNT_MESSAGE": "Weitere Informationen zu Nutzungsbedingungen hinzufügen",
45
- "CONTAINS_NO_LINKS_MESSAGE": "(HTTPS-)Links zu Nutzungsbedingungen/Informationen hinzufügen"
46
- },
47
- "sharing": {
48
- "TOOLTIP_GUIDANCE_DEFAULT": "Wenn Sie bereit sind, dann geben Sie Ihr Element öffentlich frei, damit es anderen in Living Atlas angezeigt wird.",
49
- "TOOLTIP_GUIDANCE_INTL": "",
50
- "TOOLTIP_SCORING_MSG_DEFAULT": "Die volle Punktzahl wird vergeben, wenn die Freigabeebene \"Öffentlich\" festgelegt wurde.",
51
- "TOOLTIP_SCORING_MSG_INTL": "",
52
- "LABEL": "Freigabeebene festlegen auf: Öffentlich ",
53
- "TITLE": "Freigabeebene prüfen",
54
- "EMPTY_STRING_MESSAGE": "",
55
- "PRIVATE_MESSAGE": "Freigabeebene festlegen auf: Öffentlich",
56
- "ORG_MESSAGE": "Freigabeebene festlegen auf: Öffentlich"
57
- },
58
- "deprecated": {
59
- "TOOLTIP_GUIDANCE_DEFAULT": "Ändern Sie die Einstellung \"Inhaltsstatus\", um die Kennzeichnung \"Veraltet\" zu entfernen. Elemente, die als \"Veraltet\" gekennzeichnet sind, werden von Living Atlas innerhalb eines Tages automatisch entfernt.",
60
- "TOOLTIP_SCORING_MSG_DEFAULT": "Die volle Punktzahl wird für ein Element vergeben, das NICHT als veraltet gekennzeichnet ist.",
61
- "LABEL": "Elemente sind möglicherweise nicht als \"Veraltet\" gekennzeichnet",
62
- "TITLE": "Die Einstellung \"Veraltet\" prüfen",
63
- "DEPRECATED_MESSAGE": "Die Einstellung \"Veraltet\" deaktivieren"
64
- },
65
- "deleteProtection": {
66
- "TOOLTIP_GUIDANCE_DEFAULT": "<a href='https://doc.arcgis.com/en/arcgis-online/manage-data/configure-item-details.htm#GUID-C43BEBC5-2C2F-4D70-8E48-227E8567E01F' target='_blank'>Aktivieren Sie den Löschschutz</a>, um zu verhindern, dass dieses Element versehentlich gelöscht wird.",
67
- "TOOLTIP_SCORING_MSG_DEFAULT": "Die volle Punktzahl wird für ein Element mit aktiviertem Löschschutz vergeben.",
68
- "LABEL": "'Löschschutz' muss für Element aktiviert sein",
69
- "TITLE": "Die Einstellung \"Löschschutz\" prüfen",
70
- "DELETE_PROTECTION_NOT_ENABLED_MESSAGE": "Die Einstellung 'Löschschutz' aktivieren"
71
- },
72
- "ssl": {
73
- "TOOLTIP_GUIDANCE_DEFAULT": "HTTPS ist ein Protokoll, das sichere Internettransaktionen zwischen Webbrowsern und Webservern ermöglicht. Wir empfehlen, dass in den URLs aller Ihrer Layer, Webkarten und Web Mapping-Anwendungen das Protokoll HTTPS verwendet wird. Weitere Informationen zu den Sicherheitseinstellungen für Ihre Organisation finden Sie in dieser <a href=\"https://doc.arcgis.com/en/arcgis-online/administer/configure-security.htm\" target=\"_blank\">Online-Ressource</a>.",
74
- "TOOLTIP_GUIDANCE_INTL": "",
75
- "TOOLTIP_SCORING_MSG_DEFAULT": "Es werden Punkte vergeben, wenn HTTPS-URLs vorhanden sind.",
76
- "TOOLTIP_SCORING_MSG_INTL": "",
77
- "LABEL": "HTTPS in der URL verwenden",
78
- "TITLE": "Vorhandensein von HTTPS in der URL prüfen",
79
- "IS_SSL_DISABLED_MESSAGE": "Aktualisieren Sie das Element so, dass HTTPS verwendet wird.",
80
- "SSL_FAIL_INSTR": "Um die Verwendung von HTTPS auf Ihrem Webserver zu ermöglichen, müssen Sie ein SSL-Zertifikat installieren. Bei Vorhandensein eines vertrauenswürdigen SSL-Zertifikats können die vom Webserver übertragenen Daten verschlüsselt werden. Wenden Sie sich an den Systemadministrator, und bitten Sie ihn um Installation eines SSL-Zertifikats im Internetinformationsdienste-Manager (IIS-Manager).<br /><br/>Nachdem SSL aktiviert wurde, sollten Sie diesen Layer erneut veröffentlichen, den alten Layer aus der Webkarte entfernen und stattdessen den neu veröffentlichten Layer hinzufügen und schließlich Ihre Webkarte speichern."
81
- },
82
- "summary": {
83
- "TOOLTIP_GUIDANCE_DEFAULT": "Geben Sie einen oder zwei Sätze ein, um die folgende Frage zu beantworten: <b>Was ist das?</b> Diese Zusammenfassung ist eine deutlich kürzere Version der unten angegebenen vollständigen Beschreibung.",
84
- "TOOLTIP_GUIDANCE_INTL": "Geben Sie einen oder zwei Sätze ein, um die folgende Frage zu beantworten: <b>Was ist das?</b> Diese Zusammenfassung ist eine deutlich kürzere Version der unten angegebenen vollständigen Beschreibung.",
85
- "TOOLTIP_SCORING_MSG_DEFAULT": "Es werden Punkte vergeben, wenn 1-2 Sätze mit mindestens 10 Wörtern vorhanden sind. Es werden Punkte abgezogen, wenn <i>kopie</i>, <i>demo</i>, <i>test</i> oder <i>eval</i> verwendet wird.",
86
- "TOOLTIP_SCORING_MSG_INTL": "Es werden Punkte vergeben, wenn eine Zusammenfassung vorhanden ist.",
87
- "LABEL": "Zusammenfassung verbessern",
88
- "TITLE": "Zusammenfassung prüfen",
89
- "EMPTY_STRING_MESSAGE": "Die Zusammenfassung ist erforderlich",
90
- "MINIMUM_WORD_COUNT_MESSAGE": "Weitere Informationen zur Zusammenfassung hinzufügen",
91
- "PROHIBITED_CHARS_MESSAGE": "Unzulässige Zeichen aus der Zusammenfassung entfernen",
92
- "PROHIBITED_WORDS_MESSAGE": "Kopie, demo, test oder eval wird in der Zusammenfassung verwendet"
93
- },
94
- "tags": {
95
- "TOOLTIP_GUIDANCE_DEFAULT": "Klicken Sie auf die Schaltfläche \"Bearbeiten\", um die Tags zu verbessern. Geben Sie mindestens drei Tags ein, mit deren Hilfe andere Ihre Arbeit finden können. Durch das Hinzufügen des Elementtitels als Tag werden die Suchergebnisse in den meisten Fällen verbessert. Überlegen Sie sich weitere Tags, bei denen es sich um Synonyme oder andere Begriffe handelt, die mit dem Titel und der Zusammenfassung des Elements in Verbindung stehen. Zusätzliche Tags helfen beim Beantworten der Frage \"Wie kann jemand dieses Element finden, wenn er weder dessen Titel noch die Branche kennt?\" Wenn Ihre Karte zum Beispiel den Titel \"Bevölkerungsdichte\" trägt, dann könnten Sie auch Tags wie \"dicht bevölkert\" oder \"Übervölkerung\" in Ihrem Element verwenden, da solche Dinge gemessen werden.",
96
- "TOOLTIP_GUIDANCE_INTL": "",
97
- "TOOLTIP_SCORING_MSG_DEFAULT": "Es werden Punkte vergeben, wenn insgesamt mindestens drei Tags vorhanden ist. Es werden Punkte abgezogen, wenn die Tags <i>kopie</i>, <i>demo</i>, <i>test</i> oder <i>eval</i> verwendet werden.",
98
- "TOOLTIP_SCORING_MSG_INTL": "",
99
- "TOOLTIP_EDIT_LINK_LABEL": "Klicken Sie hier, um Tags zu bearbeiten",
100
- "LABEL": "Tags verbessern",
101
- "TITLE": "Tags prüfen",
102
- "EMPTY_STRING_MESSAGE": "Mindestens drei Tags hinzufügen",
103
- "MINIMUM_NUM_TAGS_MESSAGE": "Mindestens drei Tags hinzufügen",
104
- "PROHIBITED_WORDS_MESSAGE": "Kopie, demo, test oder eval werden als Tags verwendet"
105
- },
106
- "thumbnail": {
107
- "TOOLTIP_GUIDANCE_DEFAULT": "Laden Sie eine ansprechende Miniaturansicht hoch, die den Layer, die Karte bzw. die App bestmöglich zeigt. Zoomen Sie auf einen Maßstab, in dem Ihr Element gut aussieht, und nehmen Sie einen Screenshot auf. Bringen Sie das Objekt dann durch Abschneiden oder Ändern der Größe auf die für Miniaturansichten definierte Standard-Bildgröße von 600 x 400 Pixel oder größer.",
108
- "TOOLTIP_GUIDANCE_INTL": "",
109
- "TOOLTIP_SCORING_MSG_DEFAULT": "Die volle Punktzahl wird vergeben, wenn eine nicht vom System generierte Miniaturansicht, die 600 Pixel breit und 400 Pixel hoch ist, hinzugefügt wurde.",
110
- "TOOLTIP_SCORING_MSG_INTL": "",
111
- "LABEL": "Miniaturansicht verbessern",
112
- "TITLE": "Miniaturansicht prüfen",
113
- "EMPTY_THUMBNAIL_MESSAGE": "Eine benutzerdefinierte hochauflösende Miniaturansicht ist erforderlich.",
114
- "BAD_THUMBNAIL_ERROR_MESSAGE": "Es gibt ein Problem mit dem Format der Miniaturansicht.",
115
- "SMALL_THUMBNAIL_FILENAME_ISSUE_MESSAGE": "Eine benutzerdefinierte Miniaturansicht ist erforderlich. Die vom System erstellte Miniaturansicht ist ungeeignet.",
116
- "THUMBNAIL_SIZE_MESSAGE": "Eine hochauflösende Miniaturansicht ist erforderlich"
117
- },
118
- "title": {
119
- "TOOLTIP_GUIDANCE_DEFAULT": "Der Elementtitel beantwortet die Frage: <b>Was ist das?</b> Geben Sie einen leicht verständlichen Titel ein. Vermeiden Sie dabei die Verwendung von Jargon oder Abkürzungen. Akronyme können im Titel nützlich sein, um Platz zu sparen, sofern das Akronym bekannt ist. Schreiben Sie das Akronym in der Zusammenfassung jedoch aus. Halten Sie den Titel so kurz, wie es sinnvoll erscheint, und nutzen Sie die Zusammenfassung, um zusätzliche Details anzugeben.",
120
- "TOOLTIP_GUIDANCE_INTL": "Geben Sie einen leicht verständlichen Titel ein. Vermeiden Sie dabei die Verwendung von Jargon oder Abkürzungen. Der Elementtitel beantwortet die Frage Was ist das?",
121
- "TOOLTIP_SCORING_MSG_DEFAULT": "Es werden Punkte abgezogen, wenn <i>kopie</i>, <i>demo</i>, <i>test</i>, <i>eval</i>, _ (Unterstrich), : (Doppelpunkt) oder Wörter, die nur aus Großbuchstaben bestehen, verwendet werden. Es werden Punkte vergeben, wenn im Titel mehr als ein Wort vorhanden ist.",
122
- "TOOLTIP_SCORING_MSG_INTL": "Es werden Punkte vergeben, wenn ein Titel vorhanden ist.",
123
- "LABEL": "Titel verbessern",
124
- "TITLE": "Titel prüfen",
125
- "EMPTY_STRING_MESSAGE": "Titel ist erforderlich",
126
- "STRING_COUNT_MESSAGE": "Titel ist zu kurz; Text hinzufügen.",
127
- "UPPER_CASE_MESSAGE": "Der Titel darf nicht nur aus Großbuchstaben bestehen",
128
- "PROHIBITED_CHARS_MESSAGE": "Unzulässige Zeichen entfernen",
129
- "PROHIBITED_WORDS_MESSAGE": "Unzulässige Wörter entfernen"
130
- },
131
- "userProfileDescription": {
132
- "TOOLTIP_GUIDANCE_DEFAULT": "Beschreiben Sie sich selbst, Ihr Team und Ihre Organisation und wie eine Kontaktperson per E-Mail zu erreichen ist. Lesen Sie <a href=\"https://www.esri.com/arcgis-blog/products/arcgis-online/sharing-collaboration/create-a-great-profile/\" target=\"_blank\">diesen Blog über Empfehlungen für Ihr ArcGIS Online-Profil</a>.",
133
- "TOOLTIP_GUIDANCE_INTL": "",
134
- "TOOLTIP_SCORING_MSG_DEFAULT": "Es werden Punkte vergeben, wenn in dieser Beschreibung mindestens 20 Wörtern vorhanden sind. Es werden Punkte vergeben, wenn ein Hyperlink zu zugehörigen Informationen und eine E-Mail-Adresse, unter der andere die Person (oder das Team), die für dieses Element verantwortlich ist, erreichen können, vorhanden sind.",
135
- "TOOLTIP_SCORING_MSG_INTL": "Es werden Punkte vergeben, wenn eine Beschreibung vorhanden ist. Es werden Punkte vergeben, wenn ein Hyperlink zu zugehörigen Informationen und eine E-Mail-Adresse, unter der andere die Person (oder das Team), die für dieses Element verantwortlich ist, erreichen können, vorhanden sind.",
136
- "LABEL": "Profilbeschreibung verbessern",
137
- "TITLE": "Profilbeschreibung prüfen",
138
- "EMPTY_STRING_MESSAGE": "Eine vollständige Beschreibung für das Profil dieser Benutzer-ID hinzufügen",
139
- "PROHIBITED_CHARS_MESSAGE": "",
140
- "NO_VALID_EMAIL_MESSAGE": "Einen E-Mail-Link hinzufügen",
141
- "NO_VALID_URL_MESSAGE": " Fügen Sie einen Link zu Ihrer Organisation, Social Media oder andere Informationen hinzu.",
142
- "MIN_NUM_WORDS_MESSAGE": "Profilbeschreibung muss mehr Wörter enthalten; Informationen hinzufügen",
143
- "MIN_NUM_SENTENCES_MESSAGE": " Die Profilbeschreibung muss weitere Informationen über Sie, Ihr Team und Ihre Organisation enthalten."
144
- },
145
- "userProfileName": {
146
- "TOOLTIP_GUIDANCE_DEFAULT": "Geben Sie Ihren Namen ein. Wenn jemand eine Frage hat, an wen sollte er sich wenden? Lesen Sie <a href=\"https://www.esri.com/arcgis-blog/products/arcgis-online/sharing-collaboration/create-a-great-profile/\" target=\"_blank\">diesen Blog über Empfehlungen für Ihr ArcGIS Online-Profil</a>.",
147
- "TOOLTIP_GUIDANCE_INTL": "",
148
- "TOOLTIP_SCORING_MSG_DEFAULT": "Es werden Punkte vergeben, wenn dieser Teil ohne Unterstriche (\"_\") ausgefüllt wurde.",
149
- "TOOLTIP_SCORING_MSG_INTL": "",
150
- "LABEL": "Vollständigen Profilnamen verbessern",
151
- "TITLE": "Vollständigen Profilnamen prüfen",
152
- "EMPTY_STRING_MESSAGE": "Der vollständige Profilname hat nicht die minimale Länge",
153
- "PROHIBITED_CHARS_MESSAGE": "Unzulässige Zeichen entfernen"
154
- },
155
- "userProfileThumbnail": {
156
- "TOOLTIP_GUIDANCE_DEFAULT": "Menschen möchten wissen, wer hinter einer Karte oder App steht. Geben Sie Ihr Bild oder das Logo Ihrer Organisation frei - etwas Visuelles, an das man sich erinnert. Lesen Sie <a href=\"https://www.esri.com/arcgis-blog/products/arcgis-online/sharing-collaboration/create-a-great-profile/\" target=\"_blank\">diesen Blog über Empfehlungen für Ihr ArcGIS Online-Profil</a>.",
157
- "TOOLTIP_GUIDANCE_INTL": "",
158
- "TOOLTIP_SCORING_MSG_DEFAULT": "Für jedes über das Standardbild hinausgehende Bild werden Punkte vergeben. Bonuspunkte, wenn es die erforderlichen Abmessungen einhält.",
159
- "TOOLTIP_SCORING_MSG_INTL": "",
160
- "LABEL": "Profilminiaturansicht verbessern",
161
- "TITLE": "Profilminiaturansicht prüfen",
162
- "EMPTY_STRING_MESSAGE": "Eine gute Miniaturansicht zum Profil hinzufügen"
163
- },
164
- "recommendedTextInTitleAndSummary": {
165
- "TOOLTIP_GUIDANCE_DEFAULT": "Benutzer, die nach Inhalten suchen, halten stets nach folgenden vier Angaben Ausschau:</br><ul><li>Ort oder Abdeckungsbereich, um zu verstehen, welcher geographische Bereich eingeschlossen ist,</li><li>Thema, um zu verstehen, worum es bei diesem Element geht,</li><li>Datenpublikationsjahr oder Aufnahmedatum, um zu verstehen, wie lange die Erfassung oder Aktualisierung der Daten zurückliegt,</li><li>Quellorganisation/-programm, um zu verstehen, woher die Inhalte des Elements stammen</li></ul>",
166
- "TOOLTIP_SCORING_MSG_DEFAULT": "Derzeit findet die Bewertung von Titel und Zusammenfassung nur bei Layer-Elementen Anwendung. Wenn das Layer-Element in englischer Sprache verfasst ist, werden die Wörter im Titel und in der Zusammenfassung bewertet. Die volle Punktzahl wird vergeben, wenn die folgenden vier Angaben im Titel und/oder in der Zusammenfassung des Elements enthalten sind: </br><ul><li>Ort oder Abdeckungsbereich (z .B. \"London\", \"England\", \"Europa\", \"Global\" oder \"Welt\")</li><li>Thema (z. B. \"Parks\", \"Bevölkerungsdichte\", \"Meeresoberflächentemperatur\" oder \"Grundkarte\")</li> <li>Datenpublikationsjahr oder Aufnahmedatum (z. B. \"2024\", \"Aktuell\" oder \"1990-2020\")</li> <li>Quellorganisation/-programm (z. B. \"NASA\", \"Sentinel\" oder \"Erstellt vom EcoVision Lab des Departements Bau, Umwelt und Geomatik der ETH Zürich\".</li></ul>",
167
- "LABEL": "Titel und Zusammenfassung auf suchoptimierte Angaben prüfen",
168
- "TITLE": "Prüfen der Auffindbarkeit von Titel und Zusammenfassung",
169
- "ADD_LOCATION_INFO": "Fügen Sie den Ort oder den Abdeckungsbereich hinzu, um über den enthaltenen geographischen Bereich zu informieren.",
170
- "ADD_TIME_INFO": "Fügen Sie das Datenpublikationsjahr oder Aufnahmedatum hinzu, um darüber zu informieren, wie lange die Erfassung oder Aktualisierung der Daten zurückliegt.",
171
- "ADD_SOURCE_INFO": "Fügen Sie die Quellorganisation bzw. das Quellprogramm hinzu, um über die Herkunft der Elementinhalte zu informieren.",
172
- "ADD_TOPIC_INFO": "Fügen Sie das Thema hinzu, um über den Gegenstand des Elements zu informieren."
173
- },
174
- "featureLayerFieldAliases": {
175
- "GUIDANCE_DEFAULT": "<p>Die meisten Layer verwenden standardmäßig zunächst das Feld <strong>Namen</strong> als <strong>Feldaliasnamen</strong>, sodass die Namen identisch sind. Dies bedeutet, dass jeder Benutzer die einzelnen Feldnamen in aussagekräftige Feldaliasnamen (manchmal auch als Anzeigenname angezeigt) ändern muss. Wenn Sie als Besitzer dieses Elements jetzt Feldaliasnamen festlegen, ersparen Sie anderen Benutzern, die Ihren Layer verwenden möchten, Hunderte oder Tausende Arbeitsstunden. Wenn diese zusätzlichen Metadaten in den Layer integriert werden, müssen Benutzer diese Informationen nicht in Metadatendokumenten suchen, da sie bereits vorhanden sind. So weiß jeder Benutzer, wofür dieses Feld steht, wenn er den Feldnamen an allen Stellen liest, an denen er angezeigt wird: Kartenlegende, Pop-ups, Datentabelle, alle Schnittstellen und an denen der Benutzer zur Auswahl eines Feldes aufgefordert wird.</p><br/><p>Wechseln Sie auf der Elementseite zur Registerkarte <strong>Daten</strong>, klicken Sie auf die Schaltfläche <strong>Felder</strong> und dann auf das erste Feld in der Spalte <strong>Anzeigenname</strong>. Um den <strong>Feldaliasnamen</strong> (auch als <strong>Anzeigenname</strong> bezeichnet) zu bearbeiten, klicken Sie auf die Schaltfläche mit dem Stift, und geben Sie einen leicht verständlichen Feldaliasnamen/Anzeigennamen ein. Tipp: Kopieren Sie Inhalte aus einem Datenkatalog, einem offiziellen Metadatendokument oder einer PDF-Datei, in der die jeweiligen Felder beschrieben sind, und fügen Sie sie ein.</p><br/><p><strong>Beispiele</strong>: Ändern Sie im Textfeld \"Aliasname\" \"LASTEDITOR\" in \"Letzter Editor\", \"FEATURECODE\" in \"Code des Einrichtungsstandorts\" und \"NUMSTORIES\" in \"Story-Anzahl\". Der Feldname bleibt dabei unverändert.</p>",
176
- "SCORING_MSG_DEFAULT": "Es werden Punkte vergeben, wenn 90 % der Feldaliasnamen (Anzeigennamen) so bearbeitet werden, dass sie nicht mehr mit den Feldnamen identisch sind.",
177
- "LABEL": "Feldaliasnamen verbessern",
178
- "TITLE": "Feldaliasnamen überprüfen",
179
- "IMPROVE_FIELD_ALIAS": "Verbessern Sie die Feldaliasnamen in Ihrem Feature-Service.",
180
- "NO_FEATURE_LAYER": "Dieser Feature-Service verfügt weder über einen Feature-Layer noch über nichträumliche Tabellen.",
181
- "NO_RELEVANT_FIELD": "Dieser Feature-Service verfügt über keine relevanten (nicht vom System erstellten) Felder, die überprüft werden müssen."
182
- },
183
- "featureLayerFieldTypes": {
184
- "GUIDANCE_DEFAULT": "<p>Damit für Benutzer und Client-Apps erkennbar ist, wie Feldwerte verwendet oder dargestellt werden sollen, definieren Sie die Typen der Werte, die in den einzelnen Attributfeldern in einem gehosteten Feature-Layer gespeichert werden. Wenn Sie beispielsweise ein Textfeld als Telefonnummer definieren, können Client-Apps den Text entsprechend formatieren, z. B. (123) 456-7890. ArcGIS Online verwendet Feldwerttypen, um die wichtigsten Optionen anzuzeigen, wenn Sie einen Layer in einer Karte darstellen oder Pop-ups konfigurieren. Weitere Informationen zu den <a href=\"https://doc.arcgis.com/en/arcgis-online/manage-data/describe-fields.htm\" target=\"_blank\">Feldwerttypen finden Sie hier</a>.</p><br/><p>Ein Layer enthält standardmäßig keinen <strong>Feldwerttyp</strong> in seinen Attributfeldern. Die Gelegenheit zum Bereitstellen von zusätzlichem Kontext über den Typ des im Feld gespeicherten Wertes bleibt damit ungenutzt. Dies bedeutet, dass jeder Benutzer ein Metadatendokument suchen muss, um zu erfahren, was genau in diesem Feld enthalten ist. Wenn Sie als Besitzer dieses Elements jetzt Feldwerttypen festlegen, ersparen Sie anderen Benutzern, die Ihren Layer verwenden möchten, Hunderte oder Tausende Arbeitsstunden. Wenn diese zusätzlichen Metadaten in den Layer integriert werden, müssen Benutzer diese Informationen nicht in Metadatendokumenten suchen, da sie bereits vorhanden sind. So wird jedem Benutzer ein wichtiges Detail über den Inhalt des Feldes bereitgestellt, wenn er den Feldwerttyp an anderen Stellen liest, an denen er angezeigt wird, z. B. wenn der Benutzer auf eine Feldinformationsschaltfläche klickt. Außerdem können Softwareentwickler so leichter erkennen, ob ein Feldwert eine Zahl, einen Prozentsatz, eine Messung usw. enthält.</p><br/><p>Wechseln Sie auf der Elementseite auf die Registerkarte <strong>Daten</strong>, klicken Sie auf die Schaltfläche <strong>Felder</strong> und dann auf das erste Feld in der Spalte <strong>Anzeigenname</strong>. Um den <strong>Feldwerttyp</strong> zu bearbeiten, klicken Sie auf die Schaltfläche mit dem Stift, und bearbeiten Sie den Feldwerttyp so, dass er wiedergibt, welche Werttypen im Feld enthalten sind.</p>",
185
- "SCORING_MSG_DEFAULT": "Es werden Punkte vergeben, wenn 90 % der Feldwerttypen auf einen Wert festgelegt sind.",
186
- "LABEL": "Feldwerttypen verbessern",
187
- "TITLE": "Feldwerttypen überprüfen",
188
- "IMRPOVE_FIELD_TYPE": "Verbessern Sie die Feldwerttypen in Ihrem Feature-Service.",
189
- "NO_FEATURE_LAYER": "Dieser Feature-Service verfügt weder über einen Feature-Layer noch über nichträumliche Tabellen.",
190
- "NO_RELEVANT_FIELD": "Dieser Feature-Service verfügt über keine relevanten (nicht vom System erstellten) Felder, die überprüft werden müssen."
191
- },
192
- "featureLayerFieldDescriptions": {
193
- "GUIDANCE_DEFAULT": "<p>Ein Layer enthält standardmäßig keine <strong>Feldbeschreibung</strong> für seine Attributfelder. Dies bedeutet, dass jeder Benutzer ein Metadatendokument suchen muss, um zu erfahren, was genau in diesem Feld enthalten ist. Wenn Sie als Besitzer dieses Elements jetzt Feldbeschreibungen festlegen, ersparen Sie anderen Benutzern, die Ihren Layer verwenden möchten, Hunderte oder Tausende Arbeitsstunden. Wenn diese zusätzlichen Metadaten in den Layer integriert werden, müssen Benutzer diese Informationen nicht in Metadatendokumenten suchen, da sie bereits vorhanden sind. So weiß jeder Benutzer genau, wofür dieses Feld steht, wenn er die Feldbeschreibung an allen Stellen liest, an denen sie angezeigt wird, z. B. wenn der Benutzer auf eine Feldinformationsschaltfläche klickt.</p><br/><p>Wechseln Sie auf der Elementseite auf die Registerkarte <strong>Daten</strong>, klicken Sie auf die Schaltfläche <strong>Felder</strong> und dann auf das erste Feld in der Spalte <strong>Anzeigenname</strong>. Um die <strong>Feldbeschreibung</strong> zu bearbeiten, klicken Sie auf die Schaltfläche mit dem Stift, und bearbeiten Sie die Beschreibung so, dass sie den Inhalt des Feldes wiedergibt. Tipp: Kopieren Sie Inhalte aus einem Datenkatalog, einem offiziellen Metadatendokument oder einer PDF-Datei, in der die jeweiligen Felder beschrieben sind, und fügen Sie sie ein.</p>",
194
- "SCORING_MSG_DEFAULT": "Es werden Punkte vergeben, wenn 90 % der Feldbeschreibungen einen Satz oder weitere Informationen zur näheren Beschreibung des Attributs enthalten. Die Feldbeschreibung muss sich vom Feldaliasnamen unterscheiden.",
195
- "LABEL": "Feldbeschreibungen verbessern",
196
- "TITLE": "Feldbeschreibungen überprüfen",
197
- "IMRPOVE_FIELD_DESCRIPTION": "Verbessern Sie die Feldbeschreibungen in Ihrem Feature-Service.",
198
- "NO_FEATURE_LAYER": "Dieser Feature-Service verfügt weder über einen Feature-Layer noch über nichträumliche Tabellen.",
199
- "NO_RELEVANT_FIELD": "Dieser Feature-Service verfügt über keine relevanten (nicht vom System erstellten) Felder, die überprüft werden müssen."
200
- }
201
- }