@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.
- package/README.md +230 -20
- package/dist/configureSettings.d.ts +1 -15
- package/dist/configureSettings.js +13 -9
- package/dist/configureSettings.js.map +1 -1
- package/dist/index.d.ts +18 -6
- package/dist/index.js +28 -2
- package/dist/index.js.map +1 -1
- package/dist/lib/accessInformation/isValidAccessInformation.js +1 -0
- package/dist/lib/accessInformation/isValidAccessInformation.js.map +1 -1
- package/dist/lib/checkTitleAndSnippetSearchability/checkTitleAndSnippetSearchability.js +1 -0
- package/dist/lib/checkTitleAndSnippetSearchability/checkTitleAndSnippetSearchability.js.map +1 -1
- package/dist/lib/config.d.ts +5 -0
- package/dist/lib/config.js +37 -1
- package/dist/lib/config.js.map +1 -1
- package/dist/lib/deleteProtection/isDeleteProtectionEnabled.js +1 -0
- package/dist/lib/deleteProtection/isDeleteProtectionEnabled.js.map +1 -1
- package/dist/lib/deprecated/isDeprecated.js +1 -0
- package/dist/lib/deprecated/isDeprecated.js.map +1 -1
- package/dist/lib/description/isValidDescription.js +1 -0
- package/dist/lib/description/isValidDescription.js.map +1 -1
- package/dist/lib/featureServiceCDNSetting/checkFeatureServiceCDNSetting.d.ts +10 -0
- package/dist/lib/featureServiceCDNSetting/checkFeatureServiceCDNSetting.js +52 -0
- package/dist/lib/featureServiceCDNSetting/checkFeatureServiceCDNSetting.js.map +1 -0
- package/dist/lib/featureServiceExportDataSetting/checkFeatureServiceExportSetting.d.ts +8 -0
- package/dist/lib/featureServiceExportDataSetting/checkFeatureServiceExportSetting.js +54 -0
- package/dist/lib/featureServiceExportDataSetting/checkFeatureServiceExportSetting.js.map +1 -0
- package/dist/lib/featureServiceExtents/checkFeatureServiceExtents.d.ts +16 -0
- package/dist/lib/featureServiceExtents/checkFeatureServiceExtents.js +83 -0
- package/dist/lib/featureServiceExtents/checkFeatureServiceExtents.js.map +1 -0
- package/dist/lib/featureServiceExtents/checkFeatureServiceExtentsHelpers.d.ts +17 -0
- package/dist/lib/featureServiceExtents/checkFeatureServiceExtentsHelpers.js +33 -0
- package/dist/lib/featureServiceExtents/checkFeatureServiceExtentsHelpers.js.map +1 -0
- package/dist/lib/featureServiceFieldAliases/checkFeatureServiceFieldAliases.js +1 -0
- package/dist/lib/featureServiceFieldAliases/checkFeatureServiceFieldAliases.js.map +1 -1
- package/dist/lib/featureServiceFieldDescriptions/checkFeatureServiceFieldDescriptions.js +1 -0
- package/dist/lib/featureServiceFieldDescriptions/checkFeatureServiceFieldDescriptions.js.map +1 -1
- package/dist/lib/featureServiceFieldIndexes/checkFeatureServiceFieldIndexes.d.ts +10 -0
- package/dist/lib/featureServiceFieldIndexes/checkFeatureServiceFieldIndexes.js +53 -0
- package/dist/lib/featureServiceFieldIndexes/checkFeatureServiceFieldIndexes.js.map +1 -0
- package/dist/lib/featureServiceFieldIndexes/featureServiceFieldIndexesHelpers.d.ts +7 -0
- package/dist/lib/featureServiceFieldIndexes/featureServiceFieldIndexesHelpers.js +27 -0
- package/dist/lib/featureServiceFieldIndexes/featureServiceFieldIndexesHelpers.js.map +1 -0
- package/dist/lib/featureServiceFieldValueTypes/checkFeatureServiceFieldValueTypes.js +1 -0
- package/dist/lib/featureServiceFieldValueTypes/checkFeatureServiceFieldValueTypes.js.map +1 -1
- package/dist/lib/itemExtent/checkItemExtent.d.ts +27 -0
- package/dist/lib/itemExtent/checkItemExtent.js +102 -0
- package/dist/lib/itemExtent/checkItemExtent.js.map +1 -0
- package/dist/lib/itemExtent/checkItemExtentHelpers.d.ts +38 -0
- package/dist/lib/itemExtent/checkItemExtentHelpers.js +132 -0
- package/dist/lib/itemExtent/checkItemExtentHelpers.js.map +1 -0
- package/dist/lib/itemExtent/scoringConfig.d.ts +9 -0
- package/dist/lib/itemExtent/scoringConfig.js +13 -0
- package/dist/lib/itemExtent/scoringConfig.js.map +1 -0
- package/dist/lib/licenseInfo/isValidLicenseInfo.js +1 -0
- package/dist/lib/licenseInfo/isValidLicenseInfo.js.map +1 -1
- package/dist/lib/sharing/isValidAccess.js +1 -0
- package/dist/lib/sharing/isValidAccess.js.map +1 -1
- package/dist/lib/ssl/isValidSSL.js +3 -0
- package/dist/lib/ssl/isValidSSL.js.map +1 -1
- package/dist/lib/summary/isValidSummary.js +1 -0
- package/dist/lib/summary/isValidSummary.js.map +1 -1
- package/dist/lib/tags/isValidTags.js +1 -0
- package/dist/lib/tags/isValidTags.js.map +1 -1
- package/dist/lib/thumbnail/isValidThumbnail.js +1 -0
- package/dist/lib/thumbnail/isValidThumbnail.js.map +1 -1
- package/dist/lib/title/isValidTitle.js +1 -0
- package/dist/lib/title/isValidTitle.js.map +1 -1
- package/dist/lib/userProfileDescription/isValidUserProfileDescription.js +1 -0
- package/dist/lib/userProfileDescription/isValidUserProfileDescription.js.map +1 -1
- package/dist/lib/userProfileName/isValidUserProfileName.js +1 -0
- package/dist/lib/userProfileName/isValidUserProfileName.js.map +1 -1
- package/dist/lib/userProfileThumbnail/isValidUserProfileThumbnail.js +1 -0
- package/dist/lib/userProfileThumbnail/isValidUserProfileThumbnail.js.map +1 -1
- package/dist/lib/util/isFeatureService.d.ts +6 -0
- package/dist/lib/util/isFeatureService.js +21 -1
- package/dist/lib/util/isFeatureService.js.map +1 -1
- package/dist/lib/util/shouldValidateByBetaRules.d.ts +0 -1
- package/dist/lib/util/shouldValidateByBetaRules.js +27 -26
- package/dist/lib/util/shouldValidateByBetaRules.js.map +1 -1
- package/dist/lib/util/stringsConfig.d.ts +5 -1
- package/dist/lib/util/stringsConfig.js +60 -22
- package/dist/lib/util/stringsConfig.js.map +1 -1
- package/dist/lib/validate/validate.d.ts +14 -2
- package/dist/lib/validate/validate.js +28 -1
- package/dist/lib/validate/validate.js.map +1 -1
- package/dist/locale/en.json +49 -6
- package/dist/package-info.json +1 -1
- package/dist/services/feature-service/fetchFeatureServiceAdminJSON.d.ts +14 -0
- package/dist/services/feature-service/fetchFeatureServiceAdminJSON.js +57 -0
- package/dist/services/feature-service/fetchFeatureServiceAdminJSON.js.map +1 -0
- package/dist/services/feature-service/fetchFeatureServiceRootJSON.d.ts +16 -0
- package/dist/services/feature-service/fetchFeatureServiceRootJSON.js +84 -0
- package/dist/services/feature-service/fetchFeatureServiceRootJSON.js.map +1 -0
- package/dist/types/index.d.ts +179 -2
- package/dist/types/index.js +5 -0
- package/dist/types/index.js.map +1 -1
- package/package.json +2 -2
- package/dist/locale/de.json +0 -201
- package/dist/locale/es.json +0 -201
- package/dist/locale/fr.json +0 -201
- package/dist/locale/ja.json +0 -201
- package/dist/locale/pt-br.json +0 -201
package/dist/lib/config.d.ts
CHANGED
|
@@ -14,3 +14,8 @@ export declare const LIVING_ATLAS_SUPPORTED_ITEM_TYPES: readonly ["CityEngine We
|
|
|
14
14
|
* Type definition for Living Atlas supported item types.
|
|
15
15
|
*/
|
|
16
16
|
export type LivingAtlasSupportedItemType = (typeof LIVING_ATLAS_SUPPORTED_ITEM_TYPES)[number];
|
|
17
|
+
/**
|
|
18
|
+
* Account that are recognized as official Esri accounts.
|
|
19
|
+
* This list is used in the Living Atlas Browse page to query Esri-owned content.
|
|
20
|
+
*/
|
|
21
|
+
export declare const ESRI_OFFICIAL_ACCOUNTS: string[];
|
package/dist/lib/config.js
CHANGED
|
@@ -28,7 +28,7 @@
|
|
|
28
28
|
// // CITY_ENGINE: 'City Engine',
|
|
29
29
|
// };
|
|
30
30
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
31
|
-
exports.LIVING_ATLAS_SUPPORTED_ITEM_TYPES = exports.PROHIBITED_LIST = exports.MINIMUM_SCORE_THRESHHOLD = void 0;
|
|
31
|
+
exports.ESRI_OFFICIAL_ACCOUNTS = exports.LIVING_ATLAS_SUPPORTED_ITEM_TYPES = exports.PROHIBITED_LIST = exports.MINIMUM_SCORE_THRESHHOLD = void 0;
|
|
32
32
|
/**
|
|
33
33
|
* Threshold of the minimum total score
|
|
34
34
|
*/
|
|
@@ -170,4 +170,40 @@ exports.LIVING_ATLAS_SUPPORTED_ITEM_TYPES = [
|
|
|
170
170
|
'Geoprocessing Sample',
|
|
171
171
|
];
|
|
172
172
|
// export default config;
|
|
173
|
+
/**
|
|
174
|
+
* Account that are recognized as official Esri accounts.
|
|
175
|
+
* This list is used in the Living Atlas Browse page to query Esri-owned content.
|
|
176
|
+
*/
|
|
177
|
+
exports.ESRI_OFFICIAL_ACCOUNTS = [
|
|
178
|
+
'esri',
|
|
179
|
+
'esri_Landscape',
|
|
180
|
+
'esri_dm',
|
|
181
|
+
'esri_basemaps',
|
|
182
|
+
'esri_vector',
|
|
183
|
+
'esri_livefeeds',
|
|
184
|
+
'esri_oceans',
|
|
185
|
+
'esri_demographics',
|
|
186
|
+
'esri_observations',
|
|
187
|
+
'esri_landscape2',
|
|
188
|
+
'Esri_GI',
|
|
189
|
+
'esri_livefeeds2',
|
|
190
|
+
'esri_analytics',
|
|
191
|
+
'esri_imagery',
|
|
192
|
+
'Esri_US_Federal_Data',
|
|
193
|
+
'esri_environment',
|
|
194
|
+
'esri_webstyles',
|
|
195
|
+
'esri_atlas',
|
|
196
|
+
'esri_communitymaps',
|
|
197
|
+
'esri_dashboardpub',
|
|
198
|
+
'esri_data_development',
|
|
199
|
+
'esri_ecm',
|
|
200
|
+
'esri_elevation',
|
|
201
|
+
'esri_historical',
|
|
202
|
+
'esri_hydro',
|
|
203
|
+
'esri_policymaps',
|
|
204
|
+
'esri_premium',
|
|
205
|
+
'esri_storymaps',
|
|
206
|
+
'Federal_User_Community',
|
|
207
|
+
'StoryMaps',
|
|
208
|
+
];
|
|
173
209
|
//# sourceMappingURL=config.js.map
|
package/dist/lib/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/lib/config.ts"],"names":[],"mappings":";AAAA,mBAAmB;AACnB,qDAAqD;AACrD,8BAA8B;AAC9B,sCAAsC;AACtC,gDAAgD;AAChD,0CAA0C;AAC1C,sCAAsC;AACtC,kCAAkC;AAClC,0CAA0C;AAC1C,4DAA4D;AAC5D,oCAAoC;AACpC,sDAAsD;AACtD,sCAAsC;AACtC,6BAA6B;AAC7B,sBAAsB;AACtB,sCAAsC;AACtC,kDAAkD;AAClD,wCAAwC;AACxC,0DAA0D;AAC1D,0BAA0B;AAC1B,0DAA0D;AAC1D,8BAA8B;AAC9B,kBAAkB;AAClB,yDAAyD;AACzD,yCAAyC;AACzC,mDAAmD;AACnD,qCAAqC;AACrC,KAAK;;;AAEL;;GAEG;AACU,QAAA,wBAAwB,GAAG,EAAE,CAAC;AAE3C;;GAEG;AACU,QAAA,eAAe,GAAG;IAC3B,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;CACd,CAAC;AAEF;;GAEG;AACU,QAAA,iCAAiC,GAAG;IAC7C;;;OAGG;IACH,sBAAsB;IACtB;;;OAGG;IACH,WAAW;IACX;;;OAGG;IACH,uBAAuB;IACvB;;;OAGG;IACH,eAAe;IACf;;;OAGG;IACH,eAAe;IACf,oBAAoB;IACpB;;;OAGG;IACH,iBAAiB;IACjB;;;OAGG;IACH,eAAe;IACf;;;OAGG;IACH,aAAa;IACb;;;OAGG;IACH,iBAAiB;IACjB;;;OAGG;IACH,0BAA0B;IAC1B;;;OAGG;IACH,cAAc;IACd;;;OAGG;IACH,eAAe;IACf;;;OAGG;IACH,UAAU;IACV;;;OAGG;IACH,OAAO;IACP;;;OAGG;IACH,qBAAqB;IACrB;;;OAGG;IACH,gBAAgB;IAChB;;;OAGG;IACH,yBAAyB;IACzB;;;OAGG;IACH,SAAS;IACT;;;OAGG;IACH,yBAAyB;IACzB;;;OAGG;IACH,WAAW;IACX;;;OAGG;IACH,KAAK;IACL;;;OAGG;IACH,aAAa;IACb,MAAM;IACN,cAAc;IACd,+EAA+E;IAC/E,MAAM;IACN,iBAAiB;IACjB;;;;OAIG;IACH,sBAAsB;CAChB,CAAC;AAQX,yBAAyB"}
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/lib/config.ts"],"names":[],"mappings":";AAAA,mBAAmB;AACnB,qDAAqD;AACrD,8BAA8B;AAC9B,sCAAsC;AACtC,gDAAgD;AAChD,0CAA0C;AAC1C,sCAAsC;AACtC,kCAAkC;AAClC,0CAA0C;AAC1C,4DAA4D;AAC5D,oCAAoC;AACpC,sDAAsD;AACtD,sCAAsC;AACtC,6BAA6B;AAC7B,sBAAsB;AACtB,sCAAsC;AACtC,kDAAkD;AAClD,wCAAwC;AACxC,0DAA0D;AAC1D,0BAA0B;AAC1B,0DAA0D;AAC1D,8BAA8B;AAC9B,kBAAkB;AAClB,yDAAyD;AACzD,yCAAyC;AACzC,mDAAmD;AACnD,qCAAqC;AACrC,KAAK;;;AAEL;;GAEG;AACU,QAAA,wBAAwB,GAAG,EAAE,CAAC;AAE3C;;GAEG;AACU,QAAA,eAAe,GAAG;IAC3B,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;CACd,CAAC;AAEF;;GAEG;AACU,QAAA,iCAAiC,GAAG;IAC7C;;;OAGG;IACH,sBAAsB;IACtB;;;OAGG;IACH,WAAW;IACX;;;OAGG;IACH,uBAAuB;IACvB;;;OAGG;IACH,eAAe;IACf;;;OAGG;IACH,eAAe;IACf,oBAAoB;IACpB;;;OAGG;IACH,iBAAiB;IACjB;;;OAGG;IACH,eAAe;IACf;;;OAGG;IACH,aAAa;IACb;;;OAGG;IACH,iBAAiB;IACjB;;;OAGG;IACH,0BAA0B;IAC1B;;;OAGG;IACH,cAAc;IACd;;;OAGG;IACH,eAAe;IACf;;;OAGG;IACH,UAAU;IACV;;;OAGG;IACH,OAAO;IACP;;;OAGG;IACH,qBAAqB;IACrB;;;OAGG;IACH,gBAAgB;IAChB;;;OAGG;IACH,yBAAyB;IACzB;;;OAGG;IACH,SAAS;IACT;;;OAGG;IACH,yBAAyB;IACzB;;;OAGG;IACH,WAAW;IACX;;;OAGG;IACH,KAAK;IACL;;;OAGG;IACH,aAAa;IACb,MAAM;IACN,cAAc;IACd,+EAA+E;IAC/E,MAAM;IACN,iBAAiB;IACjB;;;;OAIG;IACH,sBAAsB;CAChB,CAAC;AAQX,yBAAyB;AAEzB;;;GAGG;AACU,QAAA,sBAAsB,GAAG;IAClC,MAAM;IACN,gBAAgB;IAChB,SAAS;IACT,eAAe;IACf,aAAa;IACb,gBAAgB;IAChB,aAAa;IACb,mBAAmB;IACnB,mBAAmB;IACnB,iBAAiB;IACjB,SAAS;IACT,iBAAiB;IACjB,gBAAgB;IAChB,cAAc;IACd,sBAAsB;IACtB,kBAAkB;IAClB,gBAAgB;IAChB,YAAY;IACZ,oBAAoB;IACpB,mBAAmB;IACnB,uBAAuB;IACvB,UAAU;IACV,gBAAgB;IAChB,iBAAiB;IACjB,YAAY;IACZ,iBAAiB;IACjB,cAAc;IACd,gBAAgB;IAChB,wBAAwB;IACxB,WAAW;CACd,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"isDeleteProtectionEnabled.js","sourceRoot":"","sources":["../../../src/lib/deleteProtection/isDeleteProtectionEnabled.ts"],"names":[],"mappings":";;;AAGA,yDAAyD;AACzD,mDAAgD;AAEhD;;;;;;;GAOG;AACI,MAAM,yBAAyB,GAAG,CAAC,IAAW,EAAkB,EAAE;IACrE,MAAM,WAAW,GAAY,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,SAAS,MAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC;IAErE,MAAM,aAAa,GAAG,IAAA,gCAAgB,GAAE,CAAC;IAEzC,MAAM,OAAO,GAAG,aAAa,CAAC,gBAAgB,CAAC;IAE/C,MAAM,gBAAgB,GAAmB;QACrC,gBAAgB,EAAE,wBAAwB;QAC1C,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,qFAAqF;QACrF,QAAQ,EAAE,CAAC;QACX,KAAK,EAAE,CAAC;QACR,QAAQ,EAAE,EAAE;QACZ,MAAM,EAAE,6BAAa,CAAC,MAAM;QAC5B,aAAa,EAAE,CAAC;QAChB,kBAAkB;QAClB,sEAAsE;QACtE,MAAM,EAAE,SAAS;QACjB,aAAa,EAAE,IAAI;
|
|
1
|
+
{"version":3,"file":"isDeleteProtectionEnabled.js","sourceRoot":"","sources":["../../../src/lib/deleteProtection/isDeleteProtectionEnabled.ts"],"names":[],"mappings":";;;AAGA,yDAAyD;AACzD,mDAAgD;AAEhD;;;;;;;GAOG;AACI,MAAM,yBAAyB,GAAG,CAAC,IAAW,EAAkB,EAAE;IACrE,MAAM,WAAW,GAAY,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,SAAS,MAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC;IAErE,MAAM,aAAa,GAAG,IAAA,gCAAgB,GAAE,CAAC;IAEzC,MAAM,OAAO,GAAG,aAAa,CAAC,gBAAgB,CAAC;IAE/C,MAAM,gBAAgB,GAAmB;QACrC,gBAAgB,EAAE,wBAAwB;QAC1C,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,qFAAqF;QACrF,QAAQ,EAAE,CAAC;QACX,KAAK,EAAE,CAAC;QACR,QAAQ,EAAE,EAAE;QACZ,MAAM,EAAE,6BAAa,CAAC,MAAM;QAC5B,aAAa,EAAE,CAAC;QAChB,kBAAkB;QAClB,sEAAsE;QACtE,MAAM,EAAE,SAAS;QACjB,aAAa,EAAE,IAAI;QACnB,UAAU,EAAE,KAAK;KACpB,CAAC;IAEF,IAAI,CAAC,WAAW,EAAE,CAAC;QACf,gBAAgB,CAAC,QAAQ,CAAC,IAAI,CAAC;YAC3B,OAAO,EAAE,OAAO,CAAC,qCAAqC;SACzD,CAAC,CAAC;QAEH,OAAO,gBAAgB,CAAC;IAC5B,CAAC;IAED,gBAAgB,CAAC,aAAa;QAC1B,6BAAa,CAAC,cAAc,CAAC,OAAO,CAAC,uBAAuB,CAAC;IAEjE,OAAO,gBAAgB,CAAC;AAC5B,CAAC,CAAC;AApCW,QAAA,yBAAyB,6BAoCpC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"isDeprecated.js","sourceRoot":"","sources":["../../../src/lib/deprecated/isDeprecated.ts"],"names":[],"mappings":";;;AAGA,yDAAyD;AACzD,mDAAgD;AAEhD;;;;;;;GAOG;AACI,MAAM,YAAY,GAAG,CAAC,IAAW,EAAkB,EAAE;IACxD,MAAM,aAAa,GAAW,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,aAAa,KAAI,EAAE,CAAC;IAExD,MAAM,aAAa,GAAG,IAAA,gCAAgB,GAAE,CAAC;IAEzC,MAAM,OAAO,GAAG,aAAa,CAAC,UAAU,CAAC;IAEzC,MAAM,gBAAgB,GAAmB;QACrC,gBAAgB,EAAE,iBAAiB;QACnC,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,QAAQ,EAAE,CAAC;QACX,KAAK,EAAE,CAAC;QACR,QAAQ,EAAE,EAAE;QACZ,MAAM,EAAE,6BAAa,CAAC,MAAM;QAC5B,aAAa,EAAE,CAAC;QAChB,sEAAsE;QACtE,MAAM,EAAE,SAAS;QACjB,aAAa,EAAE,IAAI;
|
|
1
|
+
{"version":3,"file":"isDeprecated.js","sourceRoot":"","sources":["../../../src/lib/deprecated/isDeprecated.ts"],"names":[],"mappings":";;;AAGA,yDAAyD;AACzD,mDAAgD;AAEhD;;;;;;;GAOG;AACI,MAAM,YAAY,GAAG,CAAC,IAAW,EAAkB,EAAE;IACxD,MAAM,aAAa,GAAW,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,aAAa,KAAI,EAAE,CAAC;IAExD,MAAM,aAAa,GAAG,IAAA,gCAAgB,GAAE,CAAC;IAEzC,MAAM,OAAO,GAAG,aAAa,CAAC,UAAU,CAAC;IAEzC,MAAM,gBAAgB,GAAmB;QACrC,gBAAgB,EAAE,iBAAiB;QACnC,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,QAAQ,EAAE,CAAC;QACX,KAAK,EAAE,CAAC;QACR,QAAQ,EAAE,EAAE;QACZ,MAAM,EAAE,6BAAa,CAAC,MAAM;QAC5B,aAAa,EAAE,CAAC;QAChB,sEAAsE;QACtE,MAAM,EAAE,SAAS;QACjB,aAAa,EAAE,IAAI;QACnB,UAAU,EAAE,KAAK;KACpB,CAAC;IAEF,IAAI,aAAa,KAAK,YAAY,EAAE,CAAC;QACjC,gBAAgB,CAAC,QAAQ,CAAC,IAAI,CAAC;YAC3B,OAAO,EAAE,OAAO,CAAC,kBAAkB;SACtC,CAAC,CAAC;QAEH,OAAO,gBAAgB,CAAC;IAC5B,CAAC;IAED,gBAAgB,CAAC,aAAa;QAC1B,6BAAa,CAAC,cAAc,CAAC,OAAO,CAAC,qBAAqB,CAAC;IAE/D,OAAO,gBAAgB,CAAC;AAC5B,CAAC,CAAC;AAlCW,QAAA,YAAY,gBAkCvB"}
|
|
@@ -63,6 +63,7 @@ const isValidDescription = (item) => {
|
|
|
63
63
|
// the status will be updated afterward based on the validation result
|
|
64
64
|
status: 'unknown',
|
|
65
65
|
isBinaryCheck: false,
|
|
66
|
+
isAdvisory: false,
|
|
66
67
|
};
|
|
67
68
|
// /**
|
|
68
69
|
// * We should check the Description and see if it contains key words like "Data Source" or similar
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"isValidDescription.js","sourceRoot":"","sources":["../../../src/lib/description/isValidDescription.ts"],"names":[],"mappings":";;;;;;AAAA,kEAAyC;AACzC,yDAAyD;AACzD,uDAAoD;AACpD,+DAA4D;AAC5D,6CAA0C;AAC1C,6DAGiC;AAEjC,yDAAyD;AACzD,mDAAgD;AAIhD;;;;;;;;;;;;;;;;GAgBG;AACI,MAAM,kBAAkB,GAAG,CAAC,IAAW,EAAkB,EAAE;IAC9D,MAAM,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC;IAE7B,8CAA8C;IAC9C,sCAAsC;IAEtC,uBAAuB;IACvB,MAAM,MAAM,GAAG,IAAA,uCAAqB,EAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAEnD,IAAI,cAAc,GAAG,6BAAa,CAAC,cAAc,CAAC,OAAO,CAAC;IAC1D,kBAAkB;IAClB,6CAA6C;IAC7C,oDAAoD;IAEpD,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;QAClB,+DAA+D;QAC/D,cAAc,GAAG,6BAAa,CAAC,cAAc,CAAC,aAAa,CAAC;IAChE,CAAC;IACD,sBAAsB;IACtB,oDAAoD;IACpD,4DAA4D;IAC5D,IAAI;IAEJ,mBAAmB;IACnB,6DAA6D;IAE7D,MAAM,aAAa,GAAG,IAAA,gCAAgB,GAAE,CAAC;IAEzC,MAAM,gBAAgB,GAAmB;QACrC,gBAAgB,EAAE,kBAAkB;QACpC,KAAK,EAAE,aAAa,CAAC,WAAW,CAAC,KAAK;QACtC,KAAK,EAAE,aAAa,CAAC,WAAW,CAAC,KAAK;QACtC,QAAQ,EAAE,CAAC;QACX,KAAK,EAAE,CAAC;QACR,QAAQ,EAAE,EAAE;QACZ,MAAM,EAAE,6BAAa,CAAC,MAAM;QAC5B,aAAa,EAAE,CAAC;QAChB,kBAAkB;QAClB,sEAAsE;QACtE,MAAM,EAAE,SAAS;QACjB,aAAa,EAAE,KAAK;
|
|
1
|
+
{"version":3,"file":"isValidDescription.js","sourceRoot":"","sources":["../../../src/lib/description/isValidDescription.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { FeatureServiceAdminJSON, IItem, ValidationInfo } from '../../types';
|
|
2
|
+
/**
|
|
3
|
+
* Checks if the Feature Service has CDN enabled.
|
|
4
|
+
* @param item - The ArcGIS item to validate
|
|
5
|
+
* @param featureServiceAdminJSON - The admin JSON of the Feature Service
|
|
6
|
+
* @returns A ValidationInfo object containing the validation result
|
|
7
|
+
*
|
|
8
|
+
* @see https://developers.arcgis.com/documentation/portal-and-data-services/data-services/feature-services/cdn-caching/#how-the-cdn-cache-works
|
|
9
|
+
*/
|
|
10
|
+
export declare const checkFeatureServiceCDNSetting: (item: IItem, featureServiceAdminJSON: FeatureServiceAdminJSON) => ValidationInfo;
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.checkFeatureServiceCDNSetting = void 0;
|
|
4
|
+
const isFeatureService_1 = require("../util/isFeatureService");
|
|
5
|
+
const stringsConfig_1 = require("../util/stringsConfig");
|
|
6
|
+
/**
|
|
7
|
+
* Checks if the Feature Service has CDN enabled.
|
|
8
|
+
* @param item - The ArcGIS item to validate
|
|
9
|
+
* @param featureServiceAdminJSON - The admin JSON of the Feature Service
|
|
10
|
+
* @returns A ValidationInfo object containing the validation result
|
|
11
|
+
*
|
|
12
|
+
* @see https://developers.arcgis.com/documentation/portal-and-data-services/data-services/feature-services/cdn-caching/#how-the-cdn-cache-works
|
|
13
|
+
*/
|
|
14
|
+
const checkFeatureServiceCDNSetting = (item, featureServiceAdminJSON) => {
|
|
15
|
+
const strings = (0, stringsConfig_1.getStringsConfig)();
|
|
16
|
+
const { LABEL, TITLE, CDN_NOT_ENABLED_MESSAGE } = strings.featureServiceCDNSetting;
|
|
17
|
+
const validationOutput = {
|
|
18
|
+
validationRuleId: 'feature-service-cdn-setting',
|
|
19
|
+
label: LABEL,
|
|
20
|
+
title: TITLE,
|
|
21
|
+
maxScore: 0,
|
|
22
|
+
score: 0,
|
|
23
|
+
messages: [],
|
|
24
|
+
weight: 0,
|
|
25
|
+
scoringFactor: 0,
|
|
26
|
+
status: 'unknown',
|
|
27
|
+
isBinaryCheck: true,
|
|
28
|
+
isAdvisory: true,
|
|
29
|
+
};
|
|
30
|
+
if ((0, isFeatureService_1.isFeatureService)(item) === false) {
|
|
31
|
+
return Object.assign(Object.assign({}, validationOutput), { status: 'not-applicable' });
|
|
32
|
+
}
|
|
33
|
+
// Return early if no admin JSON is provided with the status 'unknown',
|
|
34
|
+
// this happens when validate an item that is not owned by the user
|
|
35
|
+
if (!featureServiceAdminJSON) {
|
|
36
|
+
return validationOutput;
|
|
37
|
+
}
|
|
38
|
+
const { adminServiceInfo } = featureServiceAdminJSON;
|
|
39
|
+
// if cacheMaxAge is not set or is 0, then CDN is not enabled
|
|
40
|
+
// return warning status with message to enable CDN
|
|
41
|
+
if (!(adminServiceInfo === null || adminServiceInfo === void 0 ? void 0 : adminServiceInfo.cacheMaxAge)) {
|
|
42
|
+
validationOutput.messages.push({
|
|
43
|
+
message: CDN_NOT_ENABLED_MESSAGE,
|
|
44
|
+
});
|
|
45
|
+
validationOutput.status = 'warning';
|
|
46
|
+
return validationOutput;
|
|
47
|
+
}
|
|
48
|
+
validationOutput.status = 'pass';
|
|
49
|
+
return validationOutput;
|
|
50
|
+
};
|
|
51
|
+
exports.checkFeatureServiceCDNSetting = checkFeatureServiceCDNSetting;
|
|
52
|
+
//# sourceMappingURL=checkFeatureServiceCDNSetting.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"checkFeatureServiceCDNSetting.js","sourceRoot":"","sources":["../../../src/lib/featureServiceCDNSetting/checkFeatureServiceCDNSetting.ts"],"names":[],"mappings":";;;AACA,+DAA4D;AAC5D,yDAAyD;AAEzD;;;;;;;GAOG;AACI,MAAM,6BAA6B,GAAG,CACzC,IAAW,EACX,uBAAgD,EAClC,EAAE;IAChB,MAAM,OAAO,GAAG,IAAA,gCAAgB,GAAE,CAAC;IAEnC,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,uBAAuB,EAAE,GAC3C,OAAO,CAAC,wBAAwB,CAAC;IAErC,MAAM,gBAAgB,GAAmB;QACrC,gBAAgB,EAAE,6BAA6B;QAC/C,KAAK,EAAE,KAAK;QACZ,KAAK,EAAE,KAAK;QACZ,QAAQ,EAAE,CAAC;QACX,KAAK,EAAE,CAAC;QACR,QAAQ,EAAE,EAAE;QACZ,MAAM,EAAE,CAAC;QACT,aAAa,EAAE,CAAC;QAChB,MAAM,EAAE,SAAS;QACjB,aAAa,EAAE,IAAI;QACnB,UAAU,EAAE,IAAI;KACnB,CAAC;IAEF,IAAI,IAAA,mCAAgB,EAAC,IAAI,CAAC,KAAK,KAAK,EAAE,CAAC;QACnC,uCACO,gBAAgB,KACnB,MAAM,EAAE,gBAAgB,IAC1B;IACN,CAAC;IAED,uEAAuE;IACvE,mEAAmE;IACnE,IAAI,CAAC,uBAAuB,EAAE,CAAC;QAC3B,OAAO,gBAAgB,CAAC;IAC5B,CAAC;IAED,MAAM,EAAE,gBAAgB,EAAE,GAAG,uBAAuB,CAAC;IAErD,6DAA6D;IAC7D,mDAAmD;IACnD,IAAI,CAAC,CAAA,gBAAgB,aAAhB,gBAAgB,uBAAhB,gBAAgB,CAAE,WAAW,CAAA,EAAE,CAAC;QACjC,gBAAgB,CAAC,QAAQ,CAAC,IAAI,CAAC;YAC3B,OAAO,EAAE,uBAAuB;SACnC,CAAC,CAAC;QACH,gBAAgB,CAAC,MAAM,GAAG,SAAS,CAAC;QAEpC,OAAO,gBAAgB,CAAC;IAC5B,CAAC;IAED,gBAAgB,CAAC,MAAM,GAAG,MAAM,CAAC;IACjC,OAAO,gBAAgB,CAAC;AAC5B,CAAC,CAAC;AAnDW,QAAA,6BAA6B,iCAmDxC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { FeatureServiceAdminJSON, IItem, ValidationInfo } from '../../types';
|
|
2
|
+
/**
|
|
3
|
+
*
|
|
4
|
+
* @param item ArcGIS Online item to validate
|
|
5
|
+
* @param featureServiceAdminJSON Feature Service admin JSON
|
|
6
|
+
* @returns ValidationInfo object containing the validation result
|
|
7
|
+
*/
|
|
8
|
+
export declare const checkFeatureServiceExportSetting: (item: IItem, featureServiceAdminJSON: FeatureServiceAdminJSON) => ValidationInfo;
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.checkFeatureServiceExportSetting = void 0;
|
|
4
|
+
const isFeatureService_1 = require("../util/isFeatureService");
|
|
5
|
+
const stringsConfig_1 = require("../util/stringsConfig");
|
|
6
|
+
/**
|
|
7
|
+
*
|
|
8
|
+
* @param item ArcGIS Online item to validate
|
|
9
|
+
* @param featureServiceAdminJSON Feature Service admin JSON
|
|
10
|
+
* @returns ValidationInfo object containing the validation result
|
|
11
|
+
*/
|
|
12
|
+
const checkFeatureServiceExportSetting = (item, featureServiceAdminJSON) => {
|
|
13
|
+
const strings = (0, stringsConfig_1.getStringsConfig)();
|
|
14
|
+
const { LABEL, TITLE, EXPORT_DATA_ENABLED_MESSAGE } = strings.featureServiceExportDataSetting;
|
|
15
|
+
const validationOutput = {
|
|
16
|
+
validationRuleId: 'feature-service-export-data-setting',
|
|
17
|
+
label: LABEL,
|
|
18
|
+
title: TITLE,
|
|
19
|
+
maxScore: 0,
|
|
20
|
+
score: 0,
|
|
21
|
+
messages: [],
|
|
22
|
+
weight: 0,
|
|
23
|
+
scoringFactor: 0,
|
|
24
|
+
status: 'unknown',
|
|
25
|
+
isBinaryCheck: true,
|
|
26
|
+
isAdvisory: true,
|
|
27
|
+
};
|
|
28
|
+
if ((0, isFeatureService_1.isFeatureService)(item) === false) {
|
|
29
|
+
return Object.assign(Object.assign({}, validationOutput), { status: 'not-applicable' });
|
|
30
|
+
}
|
|
31
|
+
// Return early if no admin JSON is provided with the status 'unknown',
|
|
32
|
+
// this happens when validate an item that is not owned by the user
|
|
33
|
+
if (!featureServiceAdminJSON) {
|
|
34
|
+
return validationOutput;
|
|
35
|
+
}
|
|
36
|
+
const capabilities = featureServiceAdminJSON === null || featureServiceAdminJSON === void 0 ? void 0 : featureServiceAdminJSON.capabilities;
|
|
37
|
+
// Return unknown status if capabilities is not defined
|
|
38
|
+
if (!capabilities) {
|
|
39
|
+
return Object.assign(Object.assign({}, validationOutput), { status: 'unknown' });
|
|
40
|
+
}
|
|
41
|
+
// if the feature service has Extract capability, then export is enabled,
|
|
42
|
+
// should return warning status to indicate export is enabled
|
|
43
|
+
// so that user can confirm this setting is intentional.
|
|
44
|
+
if (capabilities === null || capabilities === void 0 ? void 0 : capabilities.toLowerCase().includes('extract')) {
|
|
45
|
+
validationOutput.messages.push({
|
|
46
|
+
message: EXPORT_DATA_ENABLED_MESSAGE,
|
|
47
|
+
});
|
|
48
|
+
validationOutput.status = 'warning';
|
|
49
|
+
return validationOutput;
|
|
50
|
+
}
|
|
51
|
+
return Object.assign(Object.assign({}, validationOutput), { status: 'pass' });
|
|
52
|
+
};
|
|
53
|
+
exports.checkFeatureServiceExportSetting = checkFeatureServiceExportSetting;
|
|
54
|
+
//# sourceMappingURL=checkFeatureServiceExportSetting.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"checkFeatureServiceExportSetting.js","sourceRoot":"","sources":["../../../src/lib/featureServiceExportDataSetting/checkFeatureServiceExportSetting.ts"],"names":[],"mappings":";;;AACA,+DAA4D;AAC5D,yDAAyD;AAEzD;;;;;GAKG;AACI,MAAM,gCAAgC,GAAG,CAC5C,IAAW,EACX,uBAAgD,EAClC,EAAE;IAChB,MAAM,OAAO,GAAG,IAAA,gCAAgB,GAAE,CAAC;IAEnC,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,2BAA2B,EAAE,GAC/C,OAAO,CAAC,+BAA+B,CAAC;IAE5C,MAAM,gBAAgB,GAAmB;QACrC,gBAAgB,EAAE,qCAAqC;QACvD,KAAK,EAAE,KAAK;QACZ,KAAK,EAAE,KAAK;QACZ,QAAQ,EAAE,CAAC;QACX,KAAK,EAAE,CAAC;QACR,QAAQ,EAAE,EAAE;QACZ,MAAM,EAAE,CAAC;QACT,aAAa,EAAE,CAAC;QAChB,MAAM,EAAE,SAAS;QACjB,aAAa,EAAE,IAAI;QACnB,UAAU,EAAE,IAAI;KACnB,CAAC;IAEF,IAAI,IAAA,mCAAgB,EAAC,IAAI,CAAC,KAAK,KAAK,EAAE,CAAC;QACnC,uCACO,gBAAgB,KACnB,MAAM,EAAE,gBAAgB,IAC1B;IACN,CAAC;IAED,uEAAuE;IACvE,mEAAmE;IACnE,IAAI,CAAC,uBAAuB,EAAE,CAAC;QAC3B,OAAO,gBAAgB,CAAC;IAC5B,CAAC;IAED,MAAM,YAAY,GAAG,uBAAuB,aAAvB,uBAAuB,uBAAvB,uBAAuB,CAAE,YAAY,CAAC;IAE3D,uDAAuD;IACvD,IAAI,CAAC,YAAY,EAAE,CAAC;QAChB,uCACO,gBAAgB,KACnB,MAAM,EAAE,SAAS,IACnB;IACN,CAAC;IAED,yEAAyE;IACzE,6DAA6D;IAC7D,wDAAwD;IACxD,IAAI,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAE,WAAW,GAAG,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;QAClD,gBAAgB,CAAC,QAAQ,CAAC,IAAI,CAAC;YAC3B,OAAO,EAAE,2BAA2B;SACvC,CAAC,CAAC;QACH,gBAAgB,CAAC,MAAM,GAAG,SAAS,CAAC;QAEpC,OAAO,gBAAgB,CAAC;IAC5B,CAAC;IAED,uCACO,gBAAgB,KACnB,MAAM,EAAE,MAAM,IAChB;AACN,CAAC,CAAC;AA9DW,QAAA,gCAAgC,oCA8D3C"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { FeatureLayerJSON, FeatureServiceAdminJSON, FeatureServiceJSON, IItem, ValidationInfo } from '../../types';
|
|
2
|
+
type CheckFeatureServiceExtentsOptions = {
|
|
3
|
+
layers: FeatureLayerJSON[];
|
|
4
|
+
featureServiceAdminJSON?: FeatureServiceAdminJSON;
|
|
5
|
+
featureServiceRootJSON?: FeatureServiceJSON;
|
|
6
|
+
};
|
|
7
|
+
/**
|
|
8
|
+
* Check the Full Extent, Initial Extent and Layers Extents of a Feature Service
|
|
9
|
+
* @param item ArcGIS Online item to validate
|
|
10
|
+
* @param options.layers Array of FeatureLayerJSON representing the layers in the Feature Service
|
|
11
|
+
* @param options.featureServiceAdminJSON Feature Service admin JSON, if not provided, Full Extent and Initial Extent will be checked from Feature Service root JSON
|
|
12
|
+
* @param options.featureServiceRootJSON Feature Service root JSON, used to check Full Extent and Initial Extent if admin JSON is not provided
|
|
13
|
+
* @returns ValidationInfo object containing the validation result
|
|
14
|
+
*/
|
|
15
|
+
export declare const checkFeatureServiceExtents: (item: IItem, { layers, featureServiceAdminJSON, featureServiceRootJSON, }: CheckFeatureServiceExtentsOptions) => ValidationInfo;
|
|
16
|
+
export {};
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.checkFeatureServiceExtents = void 0;
|
|
4
|
+
const isFeatureService_1 = require("../util/isFeatureService");
|
|
5
|
+
const stringsConfig_1 = require("../util/stringsConfig");
|
|
6
|
+
const checkFeatureServiceExtentsHelpers_1 = require("./checkFeatureServiceExtentsHelpers");
|
|
7
|
+
/**
|
|
8
|
+
* Check the Full Extent, Initial Extent and Layers Extents of a Feature Service
|
|
9
|
+
* @param item ArcGIS Online item to validate
|
|
10
|
+
* @param options.layers Array of FeatureLayerJSON representing the layers in the Feature Service
|
|
11
|
+
* @param options.featureServiceAdminJSON Feature Service admin JSON, if not provided, Full Extent and Initial Extent will be checked from Feature Service root JSON
|
|
12
|
+
* @param options.featureServiceRootJSON Feature Service root JSON, used to check Full Extent and Initial Extent if admin JSON is not provided
|
|
13
|
+
* @returns ValidationInfo object containing the validation result
|
|
14
|
+
*/
|
|
15
|
+
const checkFeatureServiceExtents = (item, { layers, featureServiceAdminJSON, featureServiceRootJSON, }) => {
|
|
16
|
+
const strings = (0, stringsConfig_1.getStringsConfig)();
|
|
17
|
+
const { LABEL, TITLE, FULL_EXTENT_ISSUE_MESSAGE, INITIAL_EXTENT_ISSUE_MESSAGE, LAYER_EXTENT_ISSUE_MESSAGE, } = strings.featureServiceExtents;
|
|
18
|
+
const validationOutput = {
|
|
19
|
+
validationRuleId: 'feature-service-extents',
|
|
20
|
+
label: LABEL,
|
|
21
|
+
title: TITLE,
|
|
22
|
+
maxScore: 0,
|
|
23
|
+
score: 0,
|
|
24
|
+
messages: [],
|
|
25
|
+
weight: 0,
|
|
26
|
+
scoringFactor: 0,
|
|
27
|
+
status: 'unknown',
|
|
28
|
+
isBinaryCheck: true,
|
|
29
|
+
isAdvisory: true,
|
|
30
|
+
};
|
|
31
|
+
// If item is not a Feature Service or is a Feature Table, return not-applicable
|
|
32
|
+
if ((0, isFeatureService_1.isFeatureService)(item) === false || (0, isFeatureService_1.isFeatureTable)(item) === true) {
|
|
33
|
+
return Object.assign(Object.assign({}, validationOutput), { status: 'not-applicable' });
|
|
34
|
+
}
|
|
35
|
+
// If both admin and root JSON are not provided, return unknown
|
|
36
|
+
// as the initial extent and full extent cannot be validated
|
|
37
|
+
if (!featureServiceAdminJSON && !featureServiceRootJSON) {
|
|
38
|
+
return Object.assign(Object.assign({}, validationOutput), { status: 'unknown' });
|
|
39
|
+
}
|
|
40
|
+
// Check Full Extent of the Feature Service
|
|
41
|
+
const fullExtent = (featureServiceAdminJSON === null || featureServiceAdminJSON === void 0 ? void 0 : featureServiceAdminJSON.fullExtent) ||
|
|
42
|
+
(featureServiceRootJSON === null || featureServiceRootJSON === void 0 ? void 0 : featureServiceRootJSON.fullExtent) ||
|
|
43
|
+
null;
|
|
44
|
+
const hasValidFullExtent = (0, checkFeatureServiceExtentsHelpers_1.isValidFeatureServiceExtent)(fullExtent);
|
|
45
|
+
if (!hasValidFullExtent) {
|
|
46
|
+
validationOutput.messages.push({
|
|
47
|
+
message: FULL_EXTENT_ISSUE_MESSAGE,
|
|
48
|
+
});
|
|
49
|
+
}
|
|
50
|
+
// Check initial Extent of the Feature Service
|
|
51
|
+
const initialExtent = (featureServiceAdminJSON === null || featureServiceAdminJSON === void 0 ? void 0 : featureServiceAdminJSON.initialExtent) ||
|
|
52
|
+
(featureServiceRootJSON === null || featureServiceRootJSON === void 0 ? void 0 : featureServiceRootJSON.initialExtent) ||
|
|
53
|
+
null;
|
|
54
|
+
const hasValidInitialExtent = (0, checkFeatureServiceExtentsHelpers_1.isValidFeatureServiceExtent)(initialExtent);
|
|
55
|
+
if (!hasValidInitialExtent) {
|
|
56
|
+
validationOutput.messages.push({
|
|
57
|
+
message: INITIAL_EXTENT_ISSUE_MESSAGE,
|
|
58
|
+
});
|
|
59
|
+
}
|
|
60
|
+
let hasValidLayerExtents = true;
|
|
61
|
+
// Check Extent of each layer
|
|
62
|
+
for (const layer of layers) {
|
|
63
|
+
const layerExtent = layer.extent || null;
|
|
64
|
+
const isLayerExtentValid = (0, checkFeatureServiceExtentsHelpers_1.isValidFeatureServiceExtent)(layerExtent);
|
|
65
|
+
if (!isLayerExtentValid) {
|
|
66
|
+
hasValidLayerExtents = false;
|
|
67
|
+
const layerName = layer.name || layer.id.toString();
|
|
68
|
+
validationOutput.messages.push({
|
|
69
|
+
message: LAYER_EXTENT_ISSUE_MESSAGE.replace('{{layerName}}', layerName),
|
|
70
|
+
});
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
// return warning if any of the extents are invalid
|
|
74
|
+
if (!hasValidFullExtent ||
|
|
75
|
+
!hasValidInitialExtent ||
|
|
76
|
+
!hasValidLayerExtents) {
|
|
77
|
+
return Object.assign(Object.assign({}, validationOutput), { status: 'warning' });
|
|
78
|
+
}
|
|
79
|
+
// all extents are valid
|
|
80
|
+
return Object.assign(Object.assign({}, validationOutput), { status: 'pass' });
|
|
81
|
+
};
|
|
82
|
+
exports.checkFeatureServiceExtents = checkFeatureServiceExtents;
|
|
83
|
+
//# sourceMappingURL=checkFeatureServiceExtents.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"checkFeatureServiceExtents.js","sourceRoot":"","sources":["../../../src/lib/featureServiceExtents/checkFeatureServiceExtents.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
type ExtentObject = {
|
|
2
|
+
xmin: number;
|
|
3
|
+
ymin: number;
|
|
4
|
+
xmax: number;
|
|
5
|
+
ymax: number;
|
|
6
|
+
spatialReference: {
|
|
7
|
+
wkid: number;
|
|
8
|
+
latestWkid?: number;
|
|
9
|
+
};
|
|
10
|
+
};
|
|
11
|
+
/**
|
|
12
|
+
* This function checks if a given extent object is a valid extent for a Feature Service.
|
|
13
|
+
* @param extent
|
|
14
|
+
* @returns
|
|
15
|
+
*/
|
|
16
|
+
export declare const isValidFeatureServiceExtent: (extent: ExtentObject) => boolean;
|
|
17
|
+
export {};
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.isValidFeatureServiceExtent = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* This function checks if a given extent object is a valid extent for a Feature Service.
|
|
6
|
+
* @param extent
|
|
7
|
+
* @returns
|
|
8
|
+
*/
|
|
9
|
+
const isValidFeatureServiceExtent = (extent) => {
|
|
10
|
+
// Check if extent is defined
|
|
11
|
+
if (!extent) {
|
|
12
|
+
return false;
|
|
13
|
+
}
|
|
14
|
+
// Check if extent is an object
|
|
15
|
+
if (typeof extent !== 'object') {
|
|
16
|
+
return false;
|
|
17
|
+
}
|
|
18
|
+
// Check if xmin, ymin, xmax, ymax are numbers and xmin < xmax and ymin < ymax
|
|
19
|
+
const { xmin, ymin, xmax, ymax } = extent || {};
|
|
20
|
+
// Validate the extent values
|
|
21
|
+
if (typeof xmin !== 'number' ||
|
|
22
|
+
typeof ymin !== 'number' ||
|
|
23
|
+
typeof xmax !== 'number' ||
|
|
24
|
+
typeof ymax !== 'number') {
|
|
25
|
+
return false;
|
|
26
|
+
}
|
|
27
|
+
if (xmin >= xmax || ymin >= ymax) {
|
|
28
|
+
return false;
|
|
29
|
+
}
|
|
30
|
+
return true;
|
|
31
|
+
};
|
|
32
|
+
exports.isValidFeatureServiceExtent = isValidFeatureServiceExtent;
|
|
33
|
+
//# sourceMappingURL=checkFeatureServiceExtentsHelpers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"checkFeatureServiceExtentsHelpers.js","sourceRoot":"","sources":["../../../src/lib/featureServiceExtents/checkFeatureServiceExtentsHelpers.ts"],"names":[],"mappings":";;;AAWA;;;;GAIG;AACI,MAAM,2BAA2B,GAAG,CAAC,MAAoB,EAAW,EAAE;IACzE,6BAA6B;IAC7B,IAAI,CAAC,MAAM,EAAE,CAAC;QACV,OAAO,KAAK,CAAC;IACjB,CAAC;IAED,+BAA+B;IAC/B,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;QAC7B,OAAO,KAAK,CAAC;IACjB,CAAC;IAED,8EAA8E;IAC9E,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,MAAM,IAAI,EAAE,CAAC;IAEhD,6BAA6B;IAC7B,IACI,OAAO,IAAI,KAAK,QAAQ;QACxB,OAAO,IAAI,KAAK,QAAQ;QACxB,OAAO,IAAI,KAAK,QAAQ;QACxB,OAAO,IAAI,KAAK,QAAQ,EAC1B,CAAC;QACC,OAAO,KAAK,CAAC;IACjB,CAAC;IAED,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,CAAC;QAC/B,OAAO,KAAK,CAAC;IACjB,CAAC;IAED,OAAO,IAAI,CAAC;AAChB,CAAC,CAAC;AA7BW,QAAA,2BAA2B,+BA6BtC"}
|
|
@@ -44,6 +44,7 @@ const checkFeatureServiceFieldAliases = (item, featureLayers) => {
|
|
|
44
44
|
scoringFactor: 0,
|
|
45
45
|
status: 'unknown',
|
|
46
46
|
isBinaryCheck: false,
|
|
47
|
+
isAdvisory: false,
|
|
47
48
|
};
|
|
48
49
|
// Return the validationResult with a weight of 0 (so this rule does not contribute to the final score)
|
|
49
50
|
// if the item is not a feature layer.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"checkFeatureServiceFieldAliases.js","sourceRoot":"","sources":["../../../src/lib/featureServiceFieldAliases/checkFeatureServiceFieldAliases.ts"],"names":[],"mappings":";;;AACA,yFAAsF;AACtF,+DAA4D;AAC5D,yDAAyD;AACzD,uCAA0D;AAC1D,mDAAgD;AAEhD;;GAEG;AACU,QAAA,8BAA8B,GAAG,GAAG,CAAC;AAElD;;;;;;;;;;;;;;;;;;;GAmBG;AACI,MAAM,+BAA+B,GAAG,CAC3C,IAAW,EACX,aAAiC,EACnB,EAAE;IAChB,MAAM,OAAO,GAAG,IAAA,gCAAgB,GAAE,CAAC;IAEnC,MAAM,cAAc,GAAG,6BAAa,CAAC,cAAc,CAAC,OAAO,CAAC;IAE5D,MAAM,gBAAgB,GAAmB;QACrC,gBAAgB,EAAE,+BAA+B;QACjD,KAAK,EAAE,OAAO,CAAC,wBAAwB,CAAC,KAAK;QAC7C,KAAK,EAAE,OAAO,CAAC,wBAAwB,CAAC,KAAK;QAC7C,QAAQ,EAAE,CAAC;QACX,KAAK,EAAE,CAAC;QACR,QAAQ,EAAE,EAAE;QACZ,MAAM,EAAE,6BAAa,CAAC,MAAM;QAC5B,aAAa,EAAE,CAAC;QAChB,MAAM,EAAE,SAAS;QACjB,aAAa,EAAE,KAAK;
|
|
1
|
+
{"version":3,"file":"checkFeatureServiceFieldAliases.js","sourceRoot":"","sources":["../../../src/lib/featureServiceFieldAliases/checkFeatureServiceFieldAliases.ts"],"names":[],"mappings":";;;AACA,yFAAsF;AACtF,+DAA4D;AAC5D,yDAAyD;AACzD,uCAA0D;AAC1D,mDAAgD;AAEhD;;GAEG;AACU,QAAA,8BAA8B,GAAG,GAAG,CAAC;AAElD;;;;;;;;;;;;;;;;;;;GAmBG;AACI,MAAM,+BAA+B,GAAG,CAC3C,IAAW,EACX,aAAiC,EACnB,EAAE;IAChB,MAAM,OAAO,GAAG,IAAA,gCAAgB,GAAE,CAAC;IAEnC,MAAM,cAAc,GAAG,6BAAa,CAAC,cAAc,CAAC,OAAO,CAAC;IAE5D,MAAM,gBAAgB,GAAmB;QACrC,gBAAgB,EAAE,+BAA+B;QACjD,KAAK,EAAE,OAAO,CAAC,wBAAwB,CAAC,KAAK;QAC7C,KAAK,EAAE,OAAO,CAAC,wBAAwB,CAAC,KAAK;QAC7C,QAAQ,EAAE,CAAC;QACX,KAAK,EAAE,CAAC;QACR,QAAQ,EAAE,EAAE;QACZ,MAAM,EAAE,6BAAa,CAAC,MAAM;QAC5B,aAAa,EAAE,CAAC;QAChB,MAAM,EAAE,SAAS;QACjB,aAAa,EAAE,KAAK;QACpB,UAAU,EAAE,KAAK;KACpB,CAAC;IAEF,uGAAuG;IACvG,sCAAsC;IACtC,IAAI,CAAC,IAAA,mCAAgB,EAAC,IAAI,CAAC,EAAE,CAAC;QAC1B,uCACO,gBAAgB,KACnB,MAAM,EAAE,CAAC,IACX;IACN,CAAC;IAED,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,aAAa,CAAC,IAAI,CAAA,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,MAAM,MAAK,CAAC,EAAE,CAAC;QAC/D,gBAAgB,CAAC,QAAQ,CAAC,IAAI,CAAC;YAC3B,OAAO,EAAE,OAAO,CAAC,wBAAwB,CAAC,gBAAgB;SAC7D,CAAC,CAAC;QACH,OAAO,gBAAgB,CAAC;IAC5B,CAAC;IAED,MAAM,cAAc,GAAG,IAAA,6DAA6B,EAAC,aAAa,IAAI,EAAE,CAAC,CAAC;IAE1E,IAAI,cAAc,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC9B,gBAAgB,CAAC,QAAQ,CAAC,IAAI,CAAC;YAC3B,OAAO,EAAE,OAAO,CAAC,6BAA6B,CAAC,iBAAiB;SACnE,CAAC,CAAC;QACH,OAAO,gBAAgB,CAAC;IAC5B,CAAC;IAED,0CAA0C;IAC1C,oEAAoE;IACpE,yEAAyE;IACzE,0DAA0D;IAC1D,aAAa;IAEb,2EAA2E;IAE3E,MAAM,gBAAgB,GAAG,IAAA,uCAA6B,EAAC,cAAc,CAAC,CAAC;IAEvE,qEAAqE;IACrE,uEAAuE;IACvE,gCAAgC;IAChC,uCAAuC;IACvC,qEAAqE;IACrE,UAAU;IACV,+BAA+B;IAC/B,IAAI;IAEJ,gFAAgF;IAChF,yEAAyE;IACzE,IAAI,gBAAgB,GAAG,sCAA8B,EAAE,CAAC;QACpD,gBAAgB,CAAC,QAAQ,CAAC,IAAI,CAAC;YAC3B,OAAO,EAAE,OAAO,CAAC,wBAAwB,CAAC,mBAAmB;SAChE,CAAC,CAAC;QACH,gBAAgB,CAAC,aAAa,GAAG,CAAC,CAAC;QACnC,OAAO,gBAAgB,CAAC;IAC5B,CAAC;IAED,mFAAmF;IACnF,+BAA+B;IAC/B,gBAAgB,CAAC,aAAa,GAAG,CAAC,CAAC;IAEnC,OAAO,gBAAgB,CAAC;AAC5B,CAAC,CAAC;AAjFW,QAAA,+BAA+B,mCAiF1C"}
|
|
@@ -43,6 +43,7 @@ const checkFeatureServiceFieldDescriptions = (item, featureLayers) => {
|
|
|
43
43
|
scoringFactor: 0,
|
|
44
44
|
status: 'unknown',
|
|
45
45
|
isBinaryCheck: false,
|
|
46
|
+
isAdvisory: false,
|
|
46
47
|
};
|
|
47
48
|
// Return the validationResult with a weight of 0 (so this rule does not contribute to the final score)
|
|
48
49
|
// if the item is not a feature layer.
|
package/dist/lib/featureServiceFieldDescriptions/checkFeatureServiceFieldDescriptions.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"checkFeatureServiceFieldDescriptions.js","sourceRoot":"","sources":["../../../src/lib/featureServiceFieldDescriptions/checkFeatureServiceFieldDescriptions.ts"],"names":[],"mappings":";;;AACA,yFAAsF;AACtF,+DAA4D;AAC5D,yDAAyD;AACzD,uCAA+D;AAC/D,mDAAgD;AAEhD;;GAEG;AACU,QAAA,mCAAmC,GAAG,GAAG,CAAC;AAEvD;;;;;;;;;;;;;;;;;;GAkBG;AACI,MAAM,oCAAoC,GAAG,CAChD,IAAW,EACX,aAAiC,EACnB,EAAE;IAChB,MAAM,OAAO,GAAG,IAAA,gCAAgB,GAAE,CAAC;IAEnC,MAAM,cAAc,GAAG,6BAAa,CAAC,cAAc,CAAC,OAAO,CAAC;IAE5D,MAAM,gBAAgB,GAAmB;QACrC,gBAAgB,EAAE,oCAAoC;QACtD,KAAK,EAAE,OAAO,CAAC,6BAA6B,CAAC,KAAK;QAClD,KAAK,EAAE,OAAO,CAAC,6BAA6B,CAAC,KAAK;QAClD,QAAQ,EAAE,CAAC;QACX,KAAK,EAAE,CAAC;QACR,QAAQ,EAAE,EAAE;QACZ,MAAM,EAAE,6BAAa,CAAC,MAAM;QAC5B,aAAa,EAAE,CAAC;QAChB,MAAM,EAAE,SAAS;QACjB,aAAa,EAAE,KAAK;
|
|
1
|
+
{"version":3,"file":"checkFeatureServiceFieldDescriptions.js","sourceRoot":"","sources":["../../../src/lib/featureServiceFieldDescriptions/checkFeatureServiceFieldDescriptions.ts"],"names":[],"mappings":";;;AACA,yFAAsF;AACtF,+DAA4D;AAC5D,yDAAyD;AACzD,uCAA+D;AAC/D,mDAAgD;AAEhD;;GAEG;AACU,QAAA,mCAAmC,GAAG,GAAG,CAAC;AAEvD;;;;;;;;;;;;;;;;;;GAkBG;AACI,MAAM,oCAAoC,GAAG,CAChD,IAAW,EACX,aAAiC,EACnB,EAAE;IAChB,MAAM,OAAO,GAAG,IAAA,gCAAgB,GAAE,CAAC;IAEnC,MAAM,cAAc,GAAG,6BAAa,CAAC,cAAc,CAAC,OAAO,CAAC;IAE5D,MAAM,gBAAgB,GAAmB;QACrC,gBAAgB,EAAE,oCAAoC;QACtD,KAAK,EAAE,OAAO,CAAC,6BAA6B,CAAC,KAAK;QAClD,KAAK,EAAE,OAAO,CAAC,6BAA6B,CAAC,KAAK;QAClD,QAAQ,EAAE,CAAC;QACX,KAAK,EAAE,CAAC;QACR,QAAQ,EAAE,EAAE;QACZ,MAAM,EAAE,6BAAa,CAAC,MAAM;QAC5B,aAAa,EAAE,CAAC;QAChB,MAAM,EAAE,SAAS;QACjB,aAAa,EAAE,KAAK;QACpB,UAAU,EAAE,KAAK;KACpB,CAAC;IAEF,uGAAuG;IACvG,sCAAsC;IACtC,IAAI,CAAC,IAAA,mCAAgB,EAAC,IAAI,CAAC,EAAE,CAAC;QAC1B,uCACO,gBAAgB,KACnB,MAAM,EAAE,CAAC,IACX;IACN,CAAC;IAED,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,aAAa,CAAC,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,CAAC;QACzD,gBAAgB,CAAC,QAAQ,CAAC,IAAI,CAAC;YAC3B,OAAO,EAAE,OAAO,CAAC,6BAA6B,CAAC,gBAAgB;SAClE,CAAC,CAAC;QACH,OAAO,gBAAgB,CAAC;IAC5B,CAAC;IAED,MAAM,cAAc,GAAG,IAAA,6DAA6B,EAAC,aAAa,IAAI,EAAE,CAAC,CAAC;IAE1E,iEAAiE;IACjE,6EAA6E;IAC7E,6DAA6D;IAC7D,IAAI,cAAc,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC9B,gBAAgB,CAAC,QAAQ,CAAC,IAAI,CAAC;YAC3B,OAAO,EAAE,OAAO,CAAC,6BAA6B,CAAC,iBAAiB;SACnE,CAAC,CAAC;QACH,OAAO,gBAAgB,CAAC;IAC5B,CAAC;IAED,wDAAwD;IACxD,sDAAsD;IACtD,4CAA4C;IAC5C,2BAA2B;IAC3B,iDAAiD;IACjD,8DAA8D;IAC9D,oBAAoB;IAEpB,yCAAyC;IACzC,iDAAiD;IACjD,oBAAoB;IAEpB,mBAAmB;IACnB,uBAAuB;IACvB,oDAAoD;IACpD,mCAAmC;IACnC,aAAa;IACb,iBAAiB;IAEjB,iCAAiC;IACjC,4DAA4D;IAE5D,MAAM,sBAAsB,GACxB,IAAA,4CAAkC,EAAC,cAAc,CAAC,CAAC;IAEvD,2EAA2E;IAC3E,uEAAuE;IACvE,sCAAsC;IACtC,uCAAuC;IACvC,mBAAmB;IACnB,2EAA2E;IAC3E,UAAU;IACV,+BAA+B;IAC/B,IAAI;IAEJ,sFAAsF;IACtF,yEAAyE;IACzE,IAAI,sBAAsB,GAAG,2CAAmC,EAAE,CAAC;QAC/D,gBAAgB,CAAC,QAAQ,CAAC,IAAI,CAAC;YAC3B,OAAO,EACH,OAAO,CAAC,6BAA6B,CAAC,yBAAyB;SACtE,CAAC,CAAC;QACH,gBAAgB,CAAC,aAAa,GAAG,CAAC,CAAC;QACnC,OAAO,gBAAgB,CAAC;IAC5B,CAAC;IAED,yFAAyF;IACzF,+BAA+B;IAC/B,gBAAgB,CAAC,aAAa,GAAG,CAAC,CAAC;IAEnC,OAAO,gBAAgB,CAAC;AAC5B,CAAC,CAAC;AArGW,QAAA,oCAAoC,wCAqG/C"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { FeatureLayerJSON, IItem, ValidationInfo } from '../../types';
|
|
2
|
+
/**
|
|
3
|
+
* Check if feature layers have appropriate field indexes set.
|
|
4
|
+
* @param item ArcGIS Online item to validate
|
|
5
|
+
* @param featureLayers Array of feature layers JSON objects from the feature service
|
|
6
|
+
* @returns ValidationInfo object containing the validation result
|
|
7
|
+
*
|
|
8
|
+
* @see https://developers.arcgis.com/documentation/portal-and-data-services/data-services/feature-services/field-and-spatial-indexes/
|
|
9
|
+
*/
|
|
10
|
+
export declare const checkFeatureServiceFieldIndexes: (item: IItem, featureLayers: FeatureLayerJSON[]) => ValidationInfo;
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.checkFeatureServiceFieldIndexes = void 0;
|
|
4
|
+
const isFeatureService_1 = require("../util/isFeatureService");
|
|
5
|
+
const stringsConfig_1 = require("../util/stringsConfig");
|
|
6
|
+
const featureServiceFieldIndexesHelpers_1 = require("./featureServiceFieldIndexesHelpers");
|
|
7
|
+
/**
|
|
8
|
+
* Check if feature layers have appropriate field indexes set.
|
|
9
|
+
* @param item ArcGIS Online item to validate
|
|
10
|
+
* @param featureLayers Array of feature layers JSON objects from the feature service
|
|
11
|
+
* @returns ValidationInfo object containing the validation result
|
|
12
|
+
*
|
|
13
|
+
* @see https://developers.arcgis.com/documentation/portal-and-data-services/data-services/feature-services/field-and-spatial-indexes/
|
|
14
|
+
*/
|
|
15
|
+
const checkFeatureServiceFieldIndexes = (item, featureLayers) => {
|
|
16
|
+
const strings = (0, stringsConfig_1.getStringsConfig)();
|
|
17
|
+
const { LABEL, TITLE, IMRPOVE_FIELD_INDEXES } = strings.featureServiceFieldIndexes;
|
|
18
|
+
const validationOutput = {
|
|
19
|
+
validationRuleId: 'feature-service-field-indexes',
|
|
20
|
+
label: LABEL,
|
|
21
|
+
title: TITLE,
|
|
22
|
+
maxScore: 0,
|
|
23
|
+
score: 0,
|
|
24
|
+
messages: [],
|
|
25
|
+
weight: 0,
|
|
26
|
+
scoringFactor: 0,
|
|
27
|
+
status: 'unknown',
|
|
28
|
+
isBinaryCheck: true,
|
|
29
|
+
isAdvisory: true,
|
|
30
|
+
};
|
|
31
|
+
if ((0, isFeatureService_1.isFeatureService)(item) === false) {
|
|
32
|
+
return Object.assign(Object.assign({}, validationOutput), { status: 'not-applicable' });
|
|
33
|
+
}
|
|
34
|
+
if (!Array.isArray(featureLayers) || featureLayers.length === 0) {
|
|
35
|
+
validationOutput.messages.push({
|
|
36
|
+
message: strings.featureServiceFieldIndexes.NO_FEATURE_LAYER,
|
|
37
|
+
});
|
|
38
|
+
validationOutput.status = 'warning';
|
|
39
|
+
return validationOutput;
|
|
40
|
+
}
|
|
41
|
+
for (const layer of featureLayers) {
|
|
42
|
+
const indexes = layer.indexes || [];
|
|
43
|
+
const nonSystemFieldIndexes = (0, featureServiceFieldIndexesHelpers_1.getNonSystemAttributeFieldIndexes)(indexes);
|
|
44
|
+
if (nonSystemFieldIndexes.length === 0) {
|
|
45
|
+
validationOutput.messages.push({
|
|
46
|
+
message: IMRPOVE_FIELD_INDEXES.replace('{{layerName}}', layer.name || layer.id.toString()),
|
|
47
|
+
});
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
return Object.assign(Object.assign({}, validationOutput), { status: validationOutput.messages.length > 0 ? 'warning' : 'pass' });
|
|
51
|
+
};
|
|
52
|
+
exports.checkFeatureServiceFieldIndexes = checkFeatureServiceFieldIndexes;
|
|
53
|
+
//# sourceMappingURL=checkFeatureServiceFieldIndexes.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"checkFeatureServiceFieldIndexes.js","sourceRoot":"","sources":["../../../src/lib/featureServiceFieldIndexes/checkFeatureServiceFieldIndexes.ts"],"names":[],"mappings":";;;AAOA,+DAA4D;AAC5D,yDAAyD;AACzD,2FAAwF;AAExF;;;;;;;GAOG;AACI,MAAM,+BAA+B,GAAG,CAC3C,IAAW,EACX,aAAiC,EACnB,EAAE;IAChB,MAAM,OAAO,GAAG,IAAA,gCAAgB,GAAE,CAAC;IAEnC,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,qBAAqB,EAAE,GACzC,OAAO,CAAC,0BAA0B,CAAC;IAEvC,MAAM,gBAAgB,GAAmB;QACrC,gBAAgB,EAAE,+BAA+B;QACjD,KAAK,EAAE,KAAK;QACZ,KAAK,EAAE,KAAK;QACZ,QAAQ,EAAE,CAAC;QACX,KAAK,EAAE,CAAC;QACR,QAAQ,EAAE,EAAE;QACZ,MAAM,EAAE,CAAC;QACT,aAAa,EAAE,CAAC;QAChB,MAAM,EAAE,SAAS;QACjB,aAAa,EAAE,IAAI;QACnB,UAAU,EAAE,IAAI;KACnB,CAAC;IAEF,IAAI,IAAA,mCAAgB,EAAC,IAAI,CAAC,KAAK,KAAK,EAAE,CAAC;QACnC,uCACO,gBAAgB,KACnB,MAAM,EAAE,gBAAgB,IAC1B;IACN,CAAC;IAED,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,aAAa,CAAC,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC9D,gBAAgB,CAAC,QAAQ,CAAC,IAAI,CAAC;YAC3B,OAAO,EAAE,OAAO,CAAC,0BAA0B,CAAC,gBAAgB;SAC/D,CAAC,CAAC;QACH,gBAAgB,CAAC,MAAM,GAAG,SAAS,CAAC;QACpC,OAAO,gBAAgB,CAAC;IAC5B,CAAC;IAED,KAAK,MAAM,KAAK,IAAI,aAAa,EAAE,CAAC;QAChC,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,IAAI,EAAE,CAAC;QACpC,MAAM,qBAAqB,GACvB,IAAA,qEAAiC,EAAC,OAAO,CAAC,CAAC;QAE/C,IAAI,qBAAqB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACrC,gBAAgB,CAAC,QAAQ,CAAC,IAAI,CAAC;gBAC3B,OAAO,EAAE,qBAAqB,CAAC,OAAO,CAClC,eAAe,EACf,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,EAAE,CAAC,QAAQ,EAAE,CACpC;aACJ,CAAC,CAAC;QACP,CAAC;IACL,CAAC;IAED,uCACO,gBAAgB,KACnB,MAAM,EAAE,gBAAgB,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,IACnE;AACN,CAAC,CAAC;AAzDW,QAAA,+BAA+B,mCAyD1C"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { FeatureLayerFieldIndex } from '../../types';
|
|
2
|
+
/**
|
|
3
|
+
* This function filters out system field indexes from the provided array of field indexes.
|
|
4
|
+
* @param fieldIndexes Field indexes array from Feature Layer JSON
|
|
5
|
+
* @returns Non-system field indexes
|
|
6
|
+
*/
|
|
7
|
+
export declare const getNonSystemAttributeFieldIndexes: (fieldIndexes: FeatureLayerFieldIndex[]) => FeatureLayerFieldIndex[];
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getNonSystemAttributeFieldIndexes = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* This function filters out system field indexes from the provided array of field indexes.
|
|
6
|
+
* @param fieldIndexes Field indexes array from Feature Layer JSON
|
|
7
|
+
* @returns Non-system field indexes
|
|
8
|
+
*/
|
|
9
|
+
const getNonSystemAttributeFieldIndexes = (fieldIndexes) => {
|
|
10
|
+
if (!Array.isArray(fieldIndexes) || fieldIndexes.length === 0) {
|
|
11
|
+
return [];
|
|
12
|
+
}
|
|
13
|
+
// filter out system indexes
|
|
14
|
+
const nonSystemIndexes = fieldIndexes.filter((index) => {
|
|
15
|
+
const { indexType, fields } = index;
|
|
16
|
+
const fieldsUpperCase = fields.toUpperCase();
|
|
17
|
+
return (indexType === 'Attribute' &&
|
|
18
|
+
!fieldsUpperCase.includes('OBJECTID') &&
|
|
19
|
+
!fieldsUpperCase.includes('SHAPE') &&
|
|
20
|
+
!fieldsUpperCase.includes('GLOBALID') &&
|
|
21
|
+
!fieldsUpperCase.includes('SHAPE__AREA') &&
|
|
22
|
+
!fieldsUpperCase.includes('SHAPE__LENGTH'));
|
|
23
|
+
});
|
|
24
|
+
return nonSystemIndexes;
|
|
25
|
+
};
|
|
26
|
+
exports.getNonSystemAttributeFieldIndexes = getNonSystemAttributeFieldIndexes;
|
|
27
|
+
//# sourceMappingURL=featureServiceFieldIndexesHelpers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"featureServiceFieldIndexesHelpers.js","sourceRoot":"","sources":["../../../src/lib/featureServiceFieldIndexes/featureServiceFieldIndexesHelpers.ts"],"names":[],"mappings":";;;AAEA;;;;GAIG;AACI,MAAM,iCAAiC,GAAG,CAC7C,YAAsC,EACd,EAAE;IAC1B,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC5D,OAAO,EAAE,CAAC;IACd,CAAC;IAED,4BAA4B;IAC5B,MAAM,gBAAgB,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE;QACnD,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,KAAK,CAAC;QAEpC,MAAM,eAAe,GAAG,MAAM,CAAC,WAAW,EAAE,CAAC;QAE7C,OAAO,CACH,SAAS,KAAK,WAAW;YACzB,CAAC,eAAe,CAAC,QAAQ,CAAC,UAAU,CAAC;YACrC,CAAC,eAAe,CAAC,QAAQ,CAAC,OAAO,CAAC;YAClC,CAAC,eAAe,CAAC,QAAQ,CAAC,UAAU,CAAC;YACrC,CAAC,eAAe,CAAC,QAAQ,CAAC,aAAa,CAAC;YACxC,CAAC,eAAe,CAAC,QAAQ,CAAC,eAAe,CAAC,CAC7C,CAAC;IACN,CAAC,CAAC,CAAC;IAEH,OAAO,gBAAgB,CAAC;AAC5B,CAAC,CAAC;AAxBW,QAAA,iCAAiC,qCAwB5C"}
|
|
@@ -40,6 +40,7 @@ const checkFeatureServiceFieldValueTypes = (item, featureLayers) => {
|
|
|
40
40
|
scoringFactor: 0,
|
|
41
41
|
status: 'unknown',
|
|
42
42
|
isBinaryCheck: false,
|
|
43
|
+
isAdvisory: false,
|
|
43
44
|
};
|
|
44
45
|
// Return the validationResult with a weight of 0 (so this rule does not contribute to the final score)
|
|
45
46
|
// if the item is not a feature layer.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"checkFeatureServiceFieldValueTypes.js","sourceRoot":"","sources":["../../../src/lib/featureServiceFieldValueTypes/checkFeatureServiceFieldValueTypes.ts"],"names":[],"mappings":";;;AACA,yFAAsF;AACtF,+DAA4D;AAC5D,yDAAyD;AACzD,uCAA0D;AAC1D,mDAAgD;AAEhD;;GAEG;AACU,QAAA,kCAAkC,GAAG,GAAG,CAAC;AAEtD;;;;;;;;;;;;;;;GAeG;AACI,MAAM,kCAAkC,GAAG,CAC9C,IAAW,EACX,aAAiC,EACnB,EAAE;IAChB,MAAM,OAAO,GAAG,IAAA,gCAAgB,GAAE,CAAC;IAEnC,MAAM,cAAc,GAAG,6BAAa,CAAC,cAAc,CAAC,OAAO,CAAC;IAE5D,MAAM,gBAAgB,GAAmB;QACrC,gBAAgB,EAAE,mCAAmC;QACrD,KAAK,EAAE,OAAO,CAAC,sBAAsB,CAAC,KAAK;QAC3C,KAAK,EAAE,OAAO,CAAC,sBAAsB,CAAC,KAAK;QAC3C,QAAQ,EAAE,CAAC;QACX,KAAK,EAAE,CAAC;QACR,QAAQ,EAAE,EAAE;QACZ,MAAM,EAAE,6BAAa,CAAC,MAAM;QAC5B,aAAa,EAAE,CAAC;QAChB,MAAM,EAAE,SAAS;QACjB,aAAa,EAAE,KAAK;
|
|
1
|
+
{"version":3,"file":"checkFeatureServiceFieldValueTypes.js","sourceRoot":"","sources":["../../../src/lib/featureServiceFieldValueTypes/checkFeatureServiceFieldValueTypes.ts"],"names":[],"mappings":";;;AACA,yFAAsF;AACtF,+DAA4D;AAC5D,yDAAyD;AACzD,uCAA0D;AAC1D,mDAAgD;AAEhD;;GAEG;AACU,QAAA,kCAAkC,GAAG,GAAG,CAAC;AAEtD;;;;;;;;;;;;;;;GAeG;AACI,MAAM,kCAAkC,GAAG,CAC9C,IAAW,EACX,aAAiC,EACnB,EAAE;IAChB,MAAM,OAAO,GAAG,IAAA,gCAAgB,GAAE,CAAC;IAEnC,MAAM,cAAc,GAAG,6BAAa,CAAC,cAAc,CAAC,OAAO,CAAC;IAE5D,MAAM,gBAAgB,GAAmB;QACrC,gBAAgB,EAAE,mCAAmC;QACrD,KAAK,EAAE,OAAO,CAAC,sBAAsB,CAAC,KAAK;QAC3C,KAAK,EAAE,OAAO,CAAC,sBAAsB,CAAC,KAAK;QAC3C,QAAQ,EAAE,CAAC;QACX,KAAK,EAAE,CAAC;QACR,QAAQ,EAAE,EAAE;QACZ,MAAM,EAAE,6BAAa,CAAC,MAAM;QAC5B,aAAa,EAAE,CAAC;QAChB,MAAM,EAAE,SAAS;QACjB,aAAa,EAAE,KAAK;QACpB,UAAU,EAAE,KAAK;KACpB,CAAC;IAEF,uGAAuG;IACvG,sCAAsC;IACtC,IAAI,CAAC,IAAA,mCAAgB,EAAC,IAAI,CAAC,EAAE,CAAC;QAC1B,uCACO,gBAAgB,KACnB,MAAM,EAAE,CAAC,IACX;IACN,CAAC;IAED,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,aAAa,CAAC,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,CAAC;QACzD,gBAAgB,CAAC,QAAQ,CAAC,IAAI,CAAC;YAC3B,OAAO,EAAE,OAAO,CAAC,sBAAsB,CAAC,gBAAgB;SAC3D,CAAC,CAAC;QACH,OAAO,gBAAgB,CAAC;IAC5B,CAAC;IAED,MAAM,cAAc,GAAG,IAAA,6DAA6B,EAAC,aAAa,IAAI,EAAE,CAAC,CAAC;IAE1E,IAAI,cAAc,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC9B,gBAAgB,CAAC,QAAQ,CAAC,IAAI,CAAC;YAC3B,OAAO,EAAE,OAAO,CAAC,6BAA6B,CAAC,iBAAiB;SACnE,CAAC,CAAC;QACH,OAAO,gBAAgB,CAAC;IAC5B,CAAC;IAED,wDAAwD;IACxD,oDAAoD;IACpD,4CAA4C;IAC5C,oEAAoE;IAEpE,+BAA+B;IAC/B,0DAA0D;IAE1D,MAAM,oBAAoB,GAAG,IAAA,uCAA6B,EAAC,cAAc,CAAC,CAAC;IAE3E,yEAAyE;IACzE,uEAAuE;IACvE,oCAAoC;IACpC,uCAAuC;IACvC,kEAAkE;IAClE,UAAU;IACV,+BAA+B;IAC/B,IAAI;IAEJ,oFAAoF;IACpF,yEAAyE;IACzE,IAAI,oBAAoB,GAAG,0CAAkC,EAAE,CAAC;QAC5D,gBAAgB,CAAC,QAAQ,CAAC,IAAI,CAAC;YAC3B,OAAO,EAAE,OAAO,CAAC,sBAAsB,CAAC,kBAAkB;SAC7D,CAAC,CAAC;QACH,gBAAgB,CAAC,aAAa,GAAG,CAAC,CAAC;QACnC,iDAAiD;QACjD,OAAO,gBAAgB,CAAC;IAC5B,CAAC;IAED,uFAAuF;IACvF,+BAA+B;IAC/B,gBAAgB,CAAC,aAAa,GAAG,CAAC,CAAC;IAEnC,OAAO,gBAAgB,CAAC;AAC5B,CAAC,CAAC;AAlFW,QAAA,kCAAkC,sCAkF7C"}
|