@vannizhang/living-atlas-content-validator 1.3.12 → 1.5.0

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/dist/index.d.ts CHANGED
@@ -12,6 +12,7 @@ import { isValidThumbnail } from './lib/thumbnail/isValidThumbnail';
12
12
  import { isValidUserProfileDescription } from './lib/userProfileDescription/isValidUserProfileDescription';
13
13
  import { isValidUserProfileName } from './lib/userProfileName/isValidUserProfileName';
14
14
  import { isValidUserProfileThumbnail } from './lib/userProfileThumbnail/isValidUserProfileThumbnail';
15
+ import { isDeprecated } from './lib/deprecated/isDeprecated';
15
16
  import { validate, meetMinimumTotalScore } from './lib/validate/validate';
16
17
  import { setStrings, getStringsConfig } from './lib/util/stringsConfig';
17
- export { ValidationMessage, ValidationInfo, ValidationResult, setStrings, getStringsConfig, validate, meetMinimumTotalScore, isValidTitle, isValidAccessInformation, isValidDescription, isValidLayerCount, isValidLicenseInfo, isValidAccess, isValidSSL, isValidSummary, isValidTags, isValidThumbnail, isValidUserProfileDescription, isValidUserProfileName, isValidUserProfileThumbnail, };
18
+ export { ValidationMessage, ValidationInfo, ValidationResult, setStrings, getStringsConfig, validate, meetMinimumTotalScore, isValidTitle, isValidAccessInformation, isValidDescription, isValidLayerCount, isValidLicenseInfo, isValidAccess, isValidSSL, isValidSummary, isValidTags, isValidThumbnail, isValidUserProfileDescription, isValidUserProfileName, isValidUserProfileThumbnail, isDeprecated, };
package/dist/index.js CHANGED
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.isValidUserProfileThumbnail = exports.isValidUserProfileName = exports.isValidUserProfileDescription = exports.isValidThumbnail = exports.isValidTags = exports.isValidSummary = exports.isValidSSL = exports.isValidAccess = exports.isValidLicenseInfo = exports.isValidLayerCount = exports.isValidDescription = exports.isValidAccessInformation = exports.isValidTitle = exports.meetMinimumTotalScore = exports.validate = exports.getStringsConfig = exports.setStrings = void 0;
3
+ exports.isDeprecated = exports.isValidUserProfileThumbnail = exports.isValidUserProfileName = exports.isValidUserProfileDescription = exports.isValidThumbnail = exports.isValidTags = exports.isValidSummary = exports.isValidSSL = exports.isValidAccess = exports.isValidLicenseInfo = exports.isValidLayerCount = exports.isValidDescription = exports.isValidAccessInformation = exports.isValidTitle = exports.meetMinimumTotalScore = exports.validate = exports.getStringsConfig = exports.setStrings = void 0;
4
4
  const isValidTitle_1 = require("./lib/title/isValidTitle");
5
5
  Object.defineProperty(exports, "isValidTitle", { enumerable: true, get: function () { return isValidTitle_1.isValidTitle; } });
6
6
  const isValidAccessInformation_1 = require("./lib/accessInformation/isValidAccessInformation");
@@ -27,6 +27,8 @@ const isValidUserProfileName_1 = require("./lib/userProfileName/isValidUserProfi
27
27
  Object.defineProperty(exports, "isValidUserProfileName", { enumerable: true, get: function () { return isValidUserProfileName_1.isValidUserProfileName; } });
28
28
  const isValidUserProfileThumbnail_1 = require("./lib/userProfileThumbnail/isValidUserProfileThumbnail");
29
29
  Object.defineProperty(exports, "isValidUserProfileThumbnail", { enumerable: true, get: function () { return isValidUserProfileThumbnail_1.isValidUserProfileThumbnail; } });
30
+ const isDeprecated_1 = require("./lib/deprecated/isDeprecated");
31
+ Object.defineProperty(exports, "isDeprecated", { enumerable: true, get: function () { return isDeprecated_1.isDeprecated; } });
30
32
  const validate_1 = require("./lib/validate/validate");
31
33
  Object.defineProperty(exports, "validate", { enumerable: true, get: function () { return validate_1.validate; } });
32
34
  Object.defineProperty(exports, "meetMinimumTotalScore", { enumerable: true, get: function () { return validate_1.meetMinimumTotalScore; } });
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAWA,2DAAwD;AAkCpD,6FAlCK,2BAAY,OAkCL;AAjChB,+FAA4F;AAkCxF,yGAlCK,mDAAwB,OAkCL;AAjC5B,6EAA0E;AAkCtE,mGAlCK,uCAAkB,OAkCL;AAjCtB,sEAAmE;AAkC/D,kGAlCK,qCAAiB,OAkCL;AAjCrB,6EAA0E;AAkCtE,mGAlCK,uCAAkB,OAkCL;AAjCtB,+DAA4D;AAkCxD,8FAlCK,6BAAa,OAkCL;AAjCjB,qDAAkD;AAkC9C,2FAlCK,uBAAU,OAkCL;AAjCd,iEAA8D;AAkC1D,+FAlCK,+BAAc,OAkCL;AAjClB,wDAAqD;AAkCjD,4FAlCK,yBAAW,OAkCL;AAjCf,uEAAoE;AAkChE,iGAlCK,mCAAgB,OAkCL;AAjCpB,8GAA2G;AAkCvG,8GAlCK,6DAA6B,OAkCL;AAjCjC,yFAAsF;AAkClF,uGAlCK,+CAAsB,OAkCL;AAjC1B,wGAAqG;AAkCjG,4GAlCK,yDAA2B,OAkCL;AAjC/B,sDAA0E;AAmBtE,yFAnBK,mBAAQ,OAmBL;AACR,sGApBe,gCAAqB,OAoBf;AAlBzB,4DAAwE;AAepE,2FAfK,0BAAU,OAeL;AACV,iGAhBiB,gCAAgB,OAgBjB"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAWA,2DAAwD;AAmCpD,6FAnCK,2BAAY,OAmCL;AAlChB,+FAA4F;AAmCxF,yGAnCK,mDAAwB,OAmCL;AAlC5B,6EAA0E;AAmCtE,mGAnCK,uCAAkB,OAmCL;AAlCtB,sEAAmE;AAmC/D,kGAnCK,qCAAiB,OAmCL;AAlCrB,6EAA0E;AAmCtE,mGAnCK,uCAAkB,OAmCL;AAlCtB,+DAA4D;AAmCxD,8FAnCK,6BAAa,OAmCL;AAlCjB,qDAAkD;AAmC9C,2FAnCK,uBAAU,OAmCL;AAlCd,iEAA8D;AAmC1D,+FAnCK,+BAAc,OAmCL;AAlClB,wDAAqD;AAmCjD,4FAnCK,yBAAW,OAmCL;AAlCf,uEAAoE;AAmChE,iGAnCK,mCAAgB,OAmCL;AAlCpB,8GAA2G;AAmCvG,8GAnCK,6DAA6B,OAmCL;AAlCjC,yFAAsF;AAmClF,uGAnCK,+CAAsB,OAmCL;AAlC1B,wGAAqG;AAmCjG,4GAnCK,yDAA2B,OAmCL;AAlC/B,gEAA6D;AAmCzD,6FAnCK,2BAAY,OAmCL;AAlChB,sDAA0E;AAmBtE,yFAnBK,mBAAQ,OAmBL;AACR,sGApBe,gCAAqB,OAoBf;AAlBzB,4DAAwE;AAepE,2FAfK,0BAAU,OAeL;AACV,iGAhBiB,gCAAgB,OAgBjB"}
@@ -0,0 +1,10 @@
1
+ import { IItem, ValidationInfo } from '../../types';
2
+ /**
3
+ * Validate an item's `protected` property. An item is required to have **Delete Protection** enabled before it can be nominated for inclusion in the Living Atlas.
4
+ *
5
+ * In ArcGIS Online, the user has the option to turn on **Delete Protection** to prevent this item from being accidentally deleted.
6
+ *
7
+ * Living Atlas specific:
8
+ * - Must have **Delete Protection** turned on
9
+ */
10
+ export declare const isDeleteProtectionEnabled: (item: IItem) => ValidationInfo;
@@ -0,0 +1,39 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.isDeleteProtectionEnabled = void 0;
4
+ const stringsConfig_1 = require("../util/stringsConfig");
5
+ const scoringConfig_1 = require("./scoringConfig");
6
+ /**
7
+ * Validate an item's `protected` property. An item is required to have **Delete Protection** enabled before it can be nominated for inclusion in the Living Atlas.
8
+ *
9
+ * In ArcGIS Online, the user has the option to turn on **Delete Protection** to prevent this item from being accidentally deleted.
10
+ *
11
+ * Living Atlas specific:
12
+ * - Must have **Delete Protection** turned on
13
+ */
14
+ const isDeleteProtectionEnabled = (item) => {
15
+ const isProtected = (item === null || item === void 0 ? void 0 : item.protected) === true ? true : false;
16
+ const stringsConfig = (0, stringsConfig_1.getStringsConfig)();
17
+ const strings = stringsConfig.deleteProtection;
18
+ const issues = {
19
+ property: 'deleteProtection',
20
+ label: strings.LABEL,
21
+ maxScore: 0,
22
+ score: 0,
23
+ messages: [],
24
+ weight: scoringConfig_1.scoringConfig.weight,
25
+ weightFactor: 0,
26
+ critical: true,
27
+ };
28
+ if (!isProtected) {
29
+ issues.messages.push({
30
+ message: strings.DELETE_PROTECTION_NOT_ENABLED_MESSAGE,
31
+ });
32
+ return issues;
33
+ }
34
+ issues.weightFactor =
35
+ scoringConfig_1.scoringConfig.weightFactors.DEFAULT.DELETE_PROTECTION_IS_ON;
36
+ return issues;
37
+ };
38
+ exports.isDeleteProtectionEnabled = isDeleteProtectionEnabled;
39
+ //# sourceMappingURL=isDeleteProtectionEnabled.js.map
@@ -0,0 +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,MAAM,GAAmB;QAC3B,QAAQ,EAAE,kBAAkB;QAC5B,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,QAAQ,EAAE,CAAC;QACX,KAAK,EAAE,CAAC;QACR,QAAQ,EAAE,EAAE;QACZ,MAAM,EAAE,6BAAa,CAAC,MAAM;QAC5B,YAAY,EAAE,CAAC;QACf,QAAQ,EAAE,IAAI;KACjB,CAAC;IAEF,IAAI,CAAC,WAAW,EAAE;QACd,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC;YACjB,OAAO,EAAE,OAAO,CAAC,qCAAqC;SACzD,CAAC,CAAC;QAEH,OAAO,MAAM,CAAC;KACjB;IAED,MAAM,CAAC,YAAY;QACf,6BAAa,CAAC,aAAa,CAAC,OAAO,CAAC,uBAAuB,CAAC;IAEhE,OAAO,MAAM,CAAC;AAClB,CAAC,CAAC;AA9BW,QAAA,yBAAyB,6BA8BpC"}
@@ -0,0 +1,8 @@
1
+ export declare const scoringConfig: {
2
+ weight: number;
3
+ weightFactors: {
4
+ DEFAULT: {
5
+ DELETE_PROTECTION_IS_ON: number;
6
+ };
7
+ };
8
+ };
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+ // import { ScoringConfig } from '../../types';
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.scoringConfig = void 0;
5
+ exports.scoringConfig = {
6
+ weight: 1,
7
+ weightFactors: {
8
+ DEFAULT: {
9
+ DELETE_PROTECTION_IS_ON: 1,
10
+ },
11
+ },
12
+ };
13
+ //# sourceMappingURL=scoringConfig.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scoringConfig.js","sourceRoot":"","sources":["../../../src/lib/deleteProtection/scoringConfig.ts"],"names":[],"mappings":";AAAA,+CAA+C;;;AAElC,QAAA,aAAa,GAAG;IACzB,MAAM,EAAE,CAAC;IACT,aAAa,EAAE;QACX,OAAO,EAAE;YACL,uBAAuB,EAAE,CAAC;SAC7B;KACJ;CACJ,CAAC"}
@@ -0,0 +1,10 @@
1
+ import { IItem, ValidationInfo } from '../../types';
2
+ /**
3
+ * Validate an item's `contentStatus`. An item is required to not be **deprecated** before it can be nominated for inclusion in the Living Atlas.
4
+ *
5
+ * In ArcGIS Online, the user has the option to mark an item as **deprecated** to discourage the use of this item.
6
+ *
7
+ * Living Atlas specific:
8
+ * - Must NOT be **deprecated**
9
+ */
10
+ export declare const isDeprecated: (item: IItem) => ValidationInfo;
@@ -0,0 +1,39 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.isDeprecated = void 0;
4
+ const stringsConfig_1 = require("../util/stringsConfig");
5
+ const scoringConfig_1 = require("./scoringConfig");
6
+ /**
7
+ * Validate an item's `contentStatus`. An item is required to not be **deprecated** before it can be nominated for inclusion in the Living Atlas.
8
+ *
9
+ * In ArcGIS Online, the user has the option to mark an item as **deprecated** to discourage the use of this item.
10
+ *
11
+ * Living Atlas specific:
12
+ * - Must NOT be **deprecated**
13
+ */
14
+ const isDeprecated = (item) => {
15
+ const contentStatus = (item === null || item === void 0 ? void 0 : item.contentStatus) || '';
16
+ const stringsConfig = (0, stringsConfig_1.getStringsConfig)();
17
+ const strings = stringsConfig.deprecated;
18
+ const issues = {
19
+ property: 'deprecated',
20
+ label: strings.LABEL,
21
+ maxScore: 0,
22
+ score: 0,
23
+ messages: [],
24
+ weight: scoringConfig_1.scoringConfig.weight,
25
+ weightFactor: 0,
26
+ critical: true,
27
+ };
28
+ if (contentStatus === 'deprecated') {
29
+ issues.messages.push({
30
+ message: strings.DEPRECATED_MESSAGE,
31
+ });
32
+ return issues;
33
+ }
34
+ issues.weightFactor =
35
+ scoringConfig_1.scoringConfig.weightFactors.DEFAULT.NOT_DEPRECATED_FACTOR;
36
+ return issues;
37
+ };
38
+ exports.isDeprecated = isDeprecated;
39
+ //# sourceMappingURL=isDeprecated.js.map
@@ -0,0 +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,MAAM,GAAmB;QAC3B,QAAQ,EAAE,YAAY;QACtB,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,QAAQ,EAAE,CAAC;QACX,KAAK,EAAE,CAAC;QACR,QAAQ,EAAE,EAAE;QACZ,MAAM,EAAE,6BAAa,CAAC,MAAM;QAC5B,YAAY,EAAE,CAAC;QACf,QAAQ,EAAE,IAAI;KACjB,CAAC;IAEF,IAAI,aAAa,KAAK,YAAY,EAAE;QAChC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC;YACjB,OAAO,EAAE,OAAO,CAAC,kBAAkB;SACtC,CAAC,CAAC;QAEH,OAAO,MAAM,CAAC;KACjB;IAED,MAAM,CAAC,YAAY;QACf,6BAAa,CAAC,aAAa,CAAC,OAAO,CAAC,qBAAqB,CAAC;IAE9D,OAAO,MAAM,CAAC;AAClB,CAAC,CAAC;AA9BW,QAAA,YAAY,gBA8BvB"}
@@ -0,0 +1,8 @@
1
+ export declare const scoringConfig: {
2
+ weight: number;
3
+ weightFactors: {
4
+ DEFAULT: {
5
+ NOT_DEPRECATED_FACTOR: number;
6
+ };
7
+ };
8
+ };
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+ // import { ScoringConfig } from '../../types';
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.scoringConfig = void 0;
5
+ exports.scoringConfig = {
6
+ weight: 1,
7
+ weightFactors: {
8
+ DEFAULT: {
9
+ NOT_DEPRECATED_FACTOR: 1,
10
+ },
11
+ },
12
+ };
13
+ //# sourceMappingURL=scoringConfig.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scoringConfig.js","sourceRoot":"","sources":["../../../src/lib/deprecated/scoringConfig.ts"],"names":[],"mappings":";AAAA,+CAA+C;;;AAElC,QAAA,aAAa,GAAG;IACzB,MAAM,EAAE,CAAC;IACT,aAAa,EAAE;QACX,OAAO,EAAE;YACL,qBAAqB,EAAE,CAAC;SAC3B;KACJ;CACJ,CAAC"}
@@ -4,6 +4,7 @@ exports.meetMinimumTotalScore = exports.validate = void 0;
4
4
  const __1 = require("../../");
5
5
  const config_1 = require("../config");
6
6
  const round_1 = require("../util/round");
7
+ const isDeleteProtectionEnabled_1 = require("../deleteProtection/isDeleteProtectionEnabled");
7
8
  /**
8
9
  * Validate a single item and the item owner's user profile in ArcGIS Online.
9
10
  *
@@ -29,41 +30,87 @@ const validate = (item, userProfile) => {
29
30
  const tags = (0, __1.isValidTags)(item);
30
31
  const thumbnail = (0, __1.isValidThumbnail)(item);
31
32
  const title = (0, __1.isValidTitle)(item);
33
+ const deprecated = (0, __1.isDeprecated)(item);
34
+ const deleteProtection = (0, isDeleteProtectionEnabled_1.isDeleteProtectionEnabled)(item);
32
35
  const userProfileDescription = (0, __1.isValidUserProfileDescription)(userProfile
33
36
  // item
34
37
  );
35
38
  const userProfileFullName = (0, __1.isValidUserProfileName)(userProfile);
36
39
  const userProfileThumbnail = (0, __1.isValidUserProfileThumbnail)(userProfile);
37
- assignFinalScores([
38
- access,
39
- accessInformation,
40
- description,
41
- layerCount,
42
- licenseInfo,
43
- snippet,
44
- ssl,
45
- tags,
46
- thumbnail,
47
- title,
48
- userProfileDescription,
49
- userProfileFullName,
50
- userProfileThumbnail,
51
- ]);
52
- const totalScore = getTotalScore([
53
- access,
54
- accessInformation,
55
- description,
56
- layerCount,
57
- licenseInfo,
58
- snippet,
59
- ssl,
60
- tags,
61
- thumbnail,
62
- title,
63
- userProfileDescription,
64
- userProfileFullName,
65
- userProfileThumbnail,
66
- ]);
40
+ // assignFinalScores([
41
+ // access,
42
+ // accessInformation,
43
+ // description,
44
+ // layerCount,
45
+ // licenseInfo,
46
+ // snippet,
47
+ // ssl,
48
+ // tags,
49
+ // thumbnail,
50
+ // title,
51
+ // userProfileDescription,
52
+ // userProfileFullName,
53
+ // userProfileThumbnail,
54
+ // deprecated
55
+ // ]);
56
+ assignFinalScores({
57
+ validatedItem: {
58
+ access,
59
+ accessInformation,
60
+ description,
61
+ layerCount,
62
+ licenseInfo,
63
+ snippet,
64
+ ssl,
65
+ tags,
66
+ thumbnail,
67
+ title,
68
+ deprecated,
69
+ deleteProtection,
70
+ },
71
+ validatedProfile: {
72
+ userProfileDescription,
73
+ userProfileFullName,
74
+ userProfileThumbnail,
75
+ },
76
+ });
77
+ // const totalScore = getTotalScore([
78
+ // access,
79
+ // accessInformation,
80
+ // description,
81
+ // layerCount,
82
+ // licenseInfo,
83
+ // snippet,
84
+ // ssl,
85
+ // tags,
86
+ // thumbnail,
87
+ // title,
88
+ // userProfileDescription,
89
+ // userProfileFullName,
90
+ // userProfileThumbnail,
91
+ // deprecated
92
+ // ]);
93
+ const totalScore = getTotalScore({
94
+ validatedItem: {
95
+ access,
96
+ accessInformation,
97
+ description,
98
+ layerCount,
99
+ licenseInfo,
100
+ snippet,
101
+ ssl,
102
+ tags,
103
+ thumbnail,
104
+ title,
105
+ deprecated,
106
+ deleteProtection,
107
+ },
108
+ validatedProfile: {
109
+ userProfileDescription,
110
+ userProfileFullName,
111
+ userProfileThumbnail,
112
+ },
113
+ });
67
114
  const validationResult = {
68
115
  validatedItem: {
69
116
  access,
@@ -76,6 +123,8 @@ const validate = (item, userProfile) => {
76
123
  tags,
77
124
  thumbnail,
78
125
  title,
126
+ deprecated,
127
+ deleteProtection,
79
128
  },
80
129
  validatedProfile: {
81
130
  userProfileDescription,
@@ -90,20 +139,34 @@ const validate = (item, userProfile) => {
90
139
  };
91
140
  exports.validate = validate;
92
141
  /**
93
- * Get total score by summing up scores from individaul validated items
142
+ * Flat the `ValidationResult` object and return an array of `ValidationInfo`
94
143
  * @param validationResult
144
+ * @returns {ValidationInfo[]} array of all `ValidationInfo` from `validatedItem` and `validatedProfile` objects
145
+ */
146
+ const flatValidationResults = (validationResult) => {
147
+ const { validatedItem, validatedProfile } = validationResult;
148
+ return [
149
+ ...Object.values(validatedItem),
150
+ ...Object.values(validatedProfile),
151
+ ];
152
+ };
153
+ /**
154
+ * Get total score by summing up scores from individaul validated items
155
+ * @param ValidationResult
95
156
  * @returns total score
96
157
  */
97
- const getTotalScore = (validationResults) => {
158
+ const getTotalScore = (validationResult) => {
159
+ const validationResults = flatValidationResults(validationResult);
98
160
  const totalScore = validationResults.reduce((prev, curr) => prev + curr.score, 0);
99
161
  return (0, round_1.round)(totalScore);
100
162
  };
101
163
  /**
102
164
  * This function calculates the maximum score and actual score for each validation result.
103
- * @param validationResults An array of objects representing validation results.
165
+ * @param ValidationResult An array of objects representing validation results.
104
166
  * @returns void
105
167
  */
106
- const assignFinalScores = (validationResults) => {
168
+ const assignFinalScores = (validationResult) => {
169
+ const validationResults = flatValidationResults(validationResult);
107
170
  // Calculate the sum of weights from all validation rules that can be applied to the input item.
108
171
  const totalWeight = validationResults.reduce((prev, curr) => prev + curr.weight, 0);
109
172
  // Calculate the score associated with each weight.
@@ -131,10 +194,12 @@ exports.meetMinimumTotalScore = meetMinimumTotalScore;
131
194
  /**
132
195
  * Checks if an item can be nominated to Living Atlas based on a set of minimum requirements.
133
196
  *
134
- * An item can be nominated only if its total score meets the minimum required threshold of 80 and it also passes
197
+ * An item can be nominated only if its total score meets the minimum required threshold of **80** and it also passes all of
135
198
  * the following checks:
136
199
  *
137
200
  * - It is shared with the public
201
+ * - It is NOT marked as deprecated
202
+ * - It has Delete Protection enabled
138
203
  * - Its thumbnail image meets the required dimension
139
204
  * - It has a snippet text
140
205
  * - It has a description text
@@ -151,12 +216,22 @@ const meetRequiredThresholds = (validationResult) => {
151
216
  return false;
152
217
  }
153
218
  const { validatedItem, validatedProfile } = validationResult;
154
- const { access, thumbnail, snippet, description } = validatedItem;
219
+ const { access, thumbnail, snippet, description, deprecated, deleteProtection, } = validatedItem;
155
220
  const { userProfileDescription } = validatedProfile;
156
- if (access.score !== access.maxScore ||
221
+ if (
222
+ // must be shared with public
223
+ access.score !== access.maxScore ||
224
+ // must have perfect thumbnail
157
225
  thumbnail.score !== thumbnail.maxScore ||
226
+ // must not be deprecated
227
+ deprecated.score !== deprecated.maxScore ||
228
+ // must have delete protection enabled
229
+ deleteProtection.score !== deleteProtection.maxScore ||
230
+ // snippet cannot be empty
158
231
  snippet.score === 0 ||
232
+ // description cannot be empty
159
233
  description.score === 0 ||
234
+ // user profile cannot be empty
160
235
  userProfileDescription.score === 0) {
161
236
  return false;
162
237
  }
@@ -1 +1 @@
1
- {"version":3,"file":"validate.js","sourceRoot":"","sources":["../../../src/lib/validate/validate.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"validate.js","sourceRoot":"","sources":["../../../src/lib/validate/validate.ts"],"names":[],"mappings":"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"}
@@ -49,6 +49,18 @@
49
49
  "PRIVATE_MESSAGE": "Muss öffentlich sein",
50
50
  "ORG_MESSAGE": "Muss öffentlich sein"
51
51
  },
52
+ "deprecated": {
53
+ "TOOLTIP_GUIDANCE_DEFAULT": "Ändern Sie die Einstellung 'Inhaltsstatus', um die Kennzeichnung 'Veraltet' zu entfernen.",
54
+ "TOOLTIP_SCORING_MSG_DEFAULT": "Die volle Punktzahl wird für ein Element vergeben, das NICHT als veraltet gekennzeichnet ist.",
55
+ "LABEL": "'Veraltet' muss für Element deaktiviert sein",
56
+ "DEPRECATED_MESSAGE": "'Veraltet' muss für Element deaktiviert sein"
57
+ },
58
+ "deleteProtection": {
59
+ "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.",
60
+ "TOOLTIP_SCORING_MSG_DEFAULT": "Die volle Punktzahl wird für ein Element mit aktiviertem Löschschutz vergeben.",
61
+ "LABEL": "'Löschschutz' muss für Element aktiviert sein",
62
+ "DELETE_PROTECTION_NOT_ENABLED_MESSAGE": "'Löschschutz' muss für Element aktiviert sein"
63
+ },
52
64
  "ssl": {
53
65
  "TOOLTIP_GUIDANCE_DEFAULT": "Bei HTTPS handelt es sich um ein Protokoll, das sichere Internettransaktionen zwischen Webbrowsern und Webservern ermöglicht. Für alle URLs Ihrer Layer, Webkarten und Web Mapping-Anwendungen empfiehlt sich die Verwendung von HTTPS. Weitere Informationen zu Sicherheitseinstellungen für Ihre Organisation finden Sie in <a href=\"https://doc.arcgis.com/en/arcgis-online/administer/configure-security.htm\" target=\"_blank\">diesem Artikel</a>.",
54
66
  "TOOLTIP_GUIDANCE_INTL": "",
@@ -88,7 +100,7 @@
88
100
  "LABEL": "Miniaturansicht verbessern",
89
101
  "EMPTY_STRING_MESSAGE": "",
90
102
  "BAD_THUMBNAIL_ERROR_MESSAGE": "Bei der Miniaturansicht ist ein Formatfehler aufgetreten.",
91
- "SMALL_THUMBNAIL_FILENAME_ISSUE_MESSAGE": "Miniaturansicht mit benutzerdefinierter Standardgröße ist erforderlich",
103
+ "SMALL_THUMBNAIL_FILENAME_ISSUE_MESSAGE": "Eine benutzerdefinierte Miniaturansicht ist erforderlich. Die vom System erstellte Miniaturansicht ist ungeeignet.",
92
104
  "THUMBNAIL_SIZE_MESSAGE": "Hochauflösende Miniaturansicht ist erforderlich"
93
105
  },
94
106
  "title": {
@@ -49,6 +49,18 @@
49
49
  "PRIVATE_MESSAGE": "Must be public",
50
50
  "ORG_MESSAGE": "Must be public"
51
51
  },
52
+ "deprecated": {
53
+ "TOOLTIP_GUIDANCE_DEFAULT": "Change the Content Status setting to remove the Deprecated mark",
54
+ "TOOLTIP_SCORING_MSG_DEFAULT": "Full points are awarded for item that is NOT marked as Deprecated",
55
+ "LABEL": "Item must not have 'Deprecated' enabled",
56
+ "DEPRECATED_MESSAGE": "Item must not have 'Deprecated' enabled"
57
+ },
58
+ "deleteProtection": {
59
+ "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'>Enable Delete Protection</a> to prevent this item from being accidentally deleted.",
60
+ "TOOLTIP_SCORING_MSG_DEFAULT": "Full points are awarded for item that has Delete Protection enabled",
61
+ "LABEL": "Item must have 'Delete Protection' enabled",
62
+ "DELETE_PROTECTION_NOT_ENABLED_MESSAGE": "Item must have 'Delete Protection' enabled"
63
+ },
52
64
  "ssl": {
53
65
  "TOOLTIP_GUIDANCE_DEFAULT": "HTTPS is a protocol that provides secure Internet transactions between web browsers and web servers. We recommend that your layers, web maps, and web mapping applications all use HTTPS in their URLs. See <a href=\"https://doc.arcgis.com/en/arcgis-online/administer/configure-security.htm\" target=\"_blank\">this article</a> for details on security settings for your organization.",
54
66
  "TOOLTIP_GUIDANCE_INTL": "",
@@ -83,12 +95,12 @@
83
95
  "thumbnail": {
84
96
  "TOOLTIP_GUIDANCE_DEFAULT": "Upload a great looking thumbnail that shows the layer, map or app at its best. Zoom to a scale at which your item looks great, and take a screen capture. Then trim or resize it to the standard thumbnail image size, 600 x 400 pixel dimension.",
85
97
  "TOOLTIP_GUIDANCE_INTL": "",
86
- "TOOLTIP_SCORING_MSG_DEFAULT": "Full points are awarded for adding a custom standard size thumbnail that is 600 pixels wide by 400 pixels high.",
98
+ "TOOLTIP_SCORING_MSG_DEFAULT": "Full points are awarded for adding a non-system generated thumbnail that is 600 pixels wide by 400 pixels high.",
87
99
  "TOOLTIP_SCORING_MSG_INTL": "",
88
100
  "LABEL": "Improve thumbnail",
89
101
  "EMPTY_STRING_MESSAGE": "",
90
102
  "BAD_THUMBNAIL_ERROR_MESSAGE": "There is an issue with the thumbnail format",
91
- "SMALL_THUMBNAIL_FILENAME_ISSUE_MESSAGE": "Custom standard size thumbnail is required",
103
+ "SMALL_THUMBNAIL_FILENAME_ISSUE_MESSAGE": "A custom thumbnail is required. The system-generated thumbnail is not adequate.",
92
104
  "THUMBNAIL_SIZE_MESSAGE": "High resolution thumbnail is required"
93
105
  },
94
106
  "title": {
@@ -49,6 +49,18 @@
49
49
  "PRIVATE_MESSAGE": "Debe ser público",
50
50
  "ORG_MESSAGE": "Debe ser público"
51
51
  },
52
+ "deprecated": {
53
+ "TOOLTIP_GUIDANCE_DEFAULT": "Cambie el ajuste Estado del contenido para eliminar la marca de obsoleto",
54
+ "TOOLTIP_SCORING_MSG_DEFAULT": "Se otorga puntos enteros a los elementos que NO se han marcado como obsoletos.",
55
+ "LABEL": "El elemento no debe tener Obsoleto habilitado",
56
+ "DEPRECATED_MESSAGE": "El elemento no debe tener Obsoleto habilitado"
57
+ },
58
+ "deleteProtection": {
59
+ "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'>Habilite Protección contra eliminación</a> para impedir que este elemento se elimine accidentalmente.",
60
+ "TOOLTIP_SCORING_MSG_DEFAULT": "Se otorga puntos enteros a los elementos que tienen la protección contra eliminación habilitada.",
61
+ "LABEL": "El elemento debe tener la protección contra eliminación habilitada",
62
+ "DELETE_PROTECTION_NOT_ENABLED_MESSAGE": "El elemento debe tener la protección contra eliminación habilitada"
63
+ },
52
64
  "ssl": {
53
65
  "TOOLTIP_GUIDANCE_DEFAULT": "HTTPS es un protocolo que proporciona transacciones seguras por Internet entre navegadores web y servidores web. Recomendamos que sus capas, mapas web y aplicaciones de representación cartográfica en la red utilicen HTTPS en sus URL. Consulte <a href=\"https://doc.arcgis.com/en/arcgis-online/administer/configure-security.htm\" target=\"_blank\">este artículo</a> para obtener más información sobre ajustes de seguridad para su organización.",
54
66
  "TOOLTIP_GUIDANCE_INTL": "",
@@ -89,7 +101,7 @@
89
101
  "LABEL": "Mejorar vista en miniatura",
90
102
  "EMPTY_STRING_MESSAGE": "",
91
103
  "BAD_THUMBNAIL_ERROR_MESSAGE": "Se ha producido un problema con el formato de la vista en miniatura",
92
- "SMALL_THUMBNAIL_FILENAME_ISSUE_MESSAGE": "Se requiere una vista en miniatura de tamaño estándar personalizado",
104
+ "SMALL_THUMBNAIL_FILENAME_ISSUE_MESSAGE": "Se requiere una vista en miniatura personalizada. La vista en miniatura generada por el sistema no es adecuada.",
93
105
  "THUMBNAIL_SIZE_MESSAGE": "Se requiere una vista en miniatura de alta resolución"
94
106
  },
95
107
  "title": {
@@ -55,6 +55,18 @@
55
55
  "PRIVATE_MESSAGE": "Doit être public",
56
56
  "ORG_MESSAGE": "Doit être public"
57
57
  },
58
+ "deprecated": {
59
+ "TOOLTIP_GUIDANCE_DEFAULT": "Modifiez le paramètre Statut du contenu pour supprimer le statut Obsolète",
60
+ "TOOLTIP_SCORING_MSG_DEFAULT": "Vous obtenez le nombre maximal de points si l’élément n’est PAS marqué comme obsolète",
61
+ "LABEL": "Le statut 'Obsolète' ne doit pas être activé pour l’élément",
62
+ "DEPRECATED_MESSAGE": "Le statut 'Obsolète' ne doit pas être activé pour l’élément"
63
+ },
64
+ "deleteProtection": {
65
+ "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'>Activez la protection contre la suppression</a> pour empêcher la suppression accidentelle de cet élément.",
66
+ "TOOLTIP_SCORING_MSG_DEFAULT": "Vous obtenez le nombre maximal de points si la protection contre la suppression est activée pour l’élément.",
67
+ "LABEL": "La protection contre la suppression doit être activée pour l’élément",
68
+ "DELETE_PROTECTION_NOT_ENABLED_MESSAGE": "La protection contre la suppression doit être activée pour l’élément"
69
+ },
58
70
  "ssl": {
59
71
  "TOOLTIP_GUIDANCE_DEFAULT": "HTTPS est un protocole qui sécurise les transactions Internet entre des navigateurs et des serveurs Web. Nous vous recommandons d’utiliser HTTPS pour les URL de toutes vos couches, cartes Web et applications cartographiques Web. Consultez <a href=\"https://doc.arcgis.com/en/arcgis-online/administer/configure-security.htm\" target=\"_blank\">cet article</a> pour en savoir plus sur les paramètres de sécurité de votre organisation.",
60
72
  "TOOLTIP_GUIDANCE_INTL": "",
@@ -95,7 +107,7 @@
95
107
  "LABEL": "Améliorer la miniature",
96
108
  "EMPTY_STRING_MESSAGE": "",
97
109
  "BAD_THUMBNAIL_ERROR_MESSAGE": "Nous rencontrons un problème avec le format de la miniature",
98
- "SMALL_THUMBNAIL_FILENAME_ISSUE_MESSAGE": "Une miniature personnalisée de taille standard est requise",
110
+ "SMALL_THUMBNAIL_FILENAME_ISSUE_MESSAGE": "Une miniature personnalisée est requise. La miniature générée par le système n’est pas appropriée.",
99
111
  "THUMBNAIL_SIZE_MESSAGE": "Une miniature haute résolution est requise"
100
112
  },
101
113
  "title": {
@@ -55,6 +55,18 @@
55
55
  "PRIVATE_MESSAGE": "パブリックである必要があります",
56
56
  "ORG_MESSAGE": "パブリックである必要があります"
57
57
  },
58
+ "deprecated": {
59
+ "TOOLTIP_GUIDANCE_DEFAULT": "コンテンツ ステータス設定を変更して、非推奨マークを削除します",
60
+ "TOOLTIP_SCORING_MSG_DEFAULT": "非推奨としてマークされていないアイテムには、フル ポイントが与えられます",
61
+ "LABEL": "アイテムで「非推奨」が有効になっていない必要があります",
62
+ "DEPRECATED_MESSAGE": "アイテムで「非推奨」が有効になっていない必要があります"
63
+ },
64
+ "deleteProtection": {
65
+ "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'>削除の防止を有効化して</a>、このアイテムが誤って削除されないようにします。",
66
+ "TOOLTIP_SCORING_MSG_DEFAULT": "削除の防止が有効化されているアイテムには、フル ポイントが与えられます",
67
+ "LABEL": "アイテムで「削除の防止」が有効になっている必要があります",
68
+ "DELETE_PROTECTION_NOT_ENABLED_MESSAGE": "アイテムで「削除の防止」が有効になっている必要があります"
69
+ },
58
70
  "ssl": {
59
71
  "TOOLTIP_GUIDANCE_DEFAULT": "HTTPS は、Web ブラウザーと Web サーバー間で、セキュリティで保護されたインターネット トランザクションを提供するプロトコルです。 レイヤー、Web マップ、Web マッピング アプリケーションのすべてで URL に HTTPS を使用することをお勧めします。 組織のセキュリティ設定に関する詳細については、<a href=\"https://doc.arcgis.com/en/arcgis-online/administer/configure-security.htm\" target=\"_blank\">次の記事</a>をご参照ください。",
60
72
  "TOOLTIP_GUIDANCE_INTL": "",
@@ -95,7 +107,7 @@
95
107
  "LABEL": "サムネイルの改善",
96
108
  "EMPTY_STRING_MESSAGE": "",
97
109
  "BAD_THUMBNAIL_ERROR_MESSAGE": "サムネイルの形式に問題があります",
98
- "SMALL_THUMBNAIL_FILENAME_ISSUE_MESSAGE": "カスタムの標準サイズのサムネイルが必要です",
110
+ "SMALL_THUMBNAIL_FILENAME_ISSUE_MESSAGE": "カスタム サムネイルが必要です。 システムで生成されたサムネイルは不適切です。",
99
111
  "THUMBNAIL_SIZE_MESSAGE": "高解像度のサムネイルが必要です"
100
112
  },
101
113
  "title": {
@@ -55,6 +55,18 @@
55
55
  "PRIVATE_MESSAGE": "Deve ser público",
56
56
  "ORG_MESSAGE": "Deve ser público"
57
57
  },
58
+ "deprecated": {
59
+ "TOOLTIP_GUIDANCE_DEFAULT": "Altere a configuração de Status do Conteúdo para remover a marca de Descontinuado",
60
+ "TOOLTIP_SCORING_MSG_DEFAULT": "Pontos completos são concedidos para itens que NÃO estão marcados como Descontinuados",
61
+ "LABEL": "O item não deve estar com a opção 'Descontinuado' habilitada",
62
+ "DEPRECATED_MESSAGE": "O item não deve estar com a opção 'Descontinuado' habilitada"
63
+ },
64
+ "deleteProtection": {
65
+ "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'>Habilite a proteção contra exclusão</a> para evitar que este item seja excluído acidentalmente.",
66
+ "TOOLTIP_SCORING_MSG_DEFAULT": "Pontos completos são concedidos para itens que tenham a Proteção contra Exclusão habilitada",
67
+ "LABEL": "O item deve ter a 'Proteção Contra Exclusão' habilitada",
68
+ "DELETE_PROTECTION_NOT_ENABLED_MESSAGE": "O item deve ter a 'Proteção Contra Exclusão' habilitada"
69
+ },
58
70
  "ssl": {
59
71
  "TOOLTIP_GUIDANCE_DEFAULT": "HTTPS é um protocolo que fornece transações de internet seguras entre navegadores e servidores da web. Recomendamos que suas camadas, mapas da web e aplicativos de mapeamento da web utilizem HTTPS em suas URLs. Consulte <a href=\"https://doc.arcgis.com/en/arcgis-online/administer/configure-security.htm\" target=\"_blank\">este artigo</a> para detalhes em configurações de segurança para sua organização.",
60
72
  "TOOLTIP_GUIDANCE_INTL": "",
@@ -95,7 +107,7 @@
95
107
  "LABEL": "Melhorar miniatura",
96
108
  "EMPTY_STRING_MESSAGE": "",
97
109
  "BAD_THUMBNAIL_ERROR_MESSAGE": "Há um problema com o formato de miniatura.",
98
- "SMALL_THUMBNAIL_FILENAME_ISSUE_MESSAGE": "A miniatura de tamanho padrão personalizada é exigida",
110
+ "SMALL_THUMBNAIL_FILENAME_ISSUE_MESSAGE": "Uma miniatura personalizada é exigida. A miniatura gerada pelo sistema não é adequada.",
99
111
  "THUMBNAIL_SIZE_MESSAGE": "A miniatura de alta resolução é exigida"
100
112
  },
101
113
  "title": {
@@ -168,6 +168,14 @@ export type ValidationResult = {
168
168
  * validation result of item's title
169
169
  */
170
170
  title: ValidationInfo;
171
+ /**
172
+ * validation result of item's contentStatus
173
+ */
174
+ deprecated: ValidationInfo;
175
+ /**
176
+ * validation result of item's "delete protection" property
177
+ */
178
+ deleteProtection: ValidationInfo;
171
179
  };
172
180
  validatedProfile: {
173
181
  /**
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vannizhang/living-atlas-content-validator",
3
- "version": "1.3.12",
3
+ "version": "1.5.0",
4
4
  "description": "Validation and Scoring rules for curating content in the ArcGIS Living Atlas",
5
5
  "repository": {
6
6
  "type": "git",