@vannizhang/living-atlas-content-validator 1.3.5 → 1.3.6

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,6 @@ 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 { validate } from './lib/validate/validate';
15
+ import { validate, meetMinimumTotalScore } from './lib/validate/validate';
16
16
  import { setStrings, getStringsConfig } from './lib/util/stringsConfig';
17
- export { ValidationMessage, ValidationInfo, ValidationResult, setStrings, getStringsConfig, validate, isValidTitle, isValidAccessInformation, isValidDescription, isValidLayerCount, isValidLicenseInfo, isValidAccess, isValidSSL, isValidSummary, isValidTags, isValidThumbnail, isValidUserProfileDescription, isValidUserProfileName, isValidUserProfileThumbnail, };
17
+ export { ValidationMessage, ValidationInfo, ValidationResult, setStrings, getStringsConfig, validate, meetMinimumTotalScore, isValidTitle, isValidAccessInformation, isValidDescription, isValidLayerCount, isValidLicenseInfo, isValidAccess, isValidSSL, isValidSummary, isValidTags, isValidThumbnail, isValidUserProfileDescription, isValidUserProfileName, isValidUserProfileThumbnail, };
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.validate = exports.getStringsConfig = exports.setStrings = void 0;
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;
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");
@@ -29,6 +29,7 @@ const isValidUserProfileThumbnail_1 = require("./lib/userProfileThumbnail/isVali
29
29
  Object.defineProperty(exports, "isValidUserProfileThumbnail", { enumerable: true, get: function () { return isValidUserProfileThumbnail_1.isValidUserProfileThumbnail; } });
30
30
  const validate_1 = require("./lib/validate/validate");
31
31
  Object.defineProperty(exports, "validate", { enumerable: true, get: function () { return validate_1.validate; } });
32
+ Object.defineProperty(exports, "meetMinimumTotalScore", { enumerable: true, get: function () { return validate_1.meetMinimumTotalScore; } });
32
33
  const stringsConfig_1 = require("./lib/util/stringsConfig");
33
34
  Object.defineProperty(exports, "setStrings", { enumerable: true, get: function () { return stringsConfig_1.setStrings; } });
34
35
  Object.defineProperty(exports, "getStringsConfig", { enumerable: true, get: function () { return stringsConfig_1.getStringsConfig; } });
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAWA,2DAAwD;AA6BpD,6FA7BK,2BAAY,OA6BL;AA5BhB,+FAA4F;AA6BxF,yGA7BK,mDAAwB,OA6BL;AA5B5B,6EAA0E;AA6BtE,mGA7BK,uCAAkB,OA6BL;AA5BtB,sEAAmE;AA6B/D,kGA7BK,qCAAiB,OA6BL;AA5BrB,6EAA0E;AA6BtE,mGA7BK,uCAAkB,OA6BL;AA5BtB,+DAA4D;AA6BxD,8FA7BK,6BAAa,OA6BL;AA5BjB,qDAAkD;AA6B9C,2FA7BK,uBAAU,OA6BL;AA5Bd,iEAA8D;AA6B1D,+FA7BK,+BAAc,OA6BL;AA5BlB,wDAAqD;AA6BjD,4FA7BK,yBAAW,OA6BL;AA5Bf,uEAAoE;AA6BhE,iGA7BK,mCAAgB,OA6BL;AA5BpB,8GAA2G;AA6BvG,8GA7BK,6DAA6B,OA6BL;AA5BjC,yFAAsF;AA6BlF,uGA7BK,+CAAsB,OA6BL;AA5B1B,wGAAqG;AA6BjG,4GA7BK,yDAA2B,OA6BL;AA5B/B,sDAAmD;AAe/C,yFAfK,mBAAQ,OAeL;AAbZ,4DAAwE;AAWpE,2FAXK,0BAAU,OAWL;AACV,iGAZiB,gCAAgB,OAYjB"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAWA,2DAAwD;AA8BpD,6FA9BK,2BAAY,OA8BL;AA7BhB,+FAA4F;AA8BxF,yGA9BK,mDAAwB,OA8BL;AA7B5B,6EAA0E;AA8BtE,mGA9BK,uCAAkB,OA8BL;AA7BtB,sEAAmE;AA8B/D,kGA9BK,qCAAiB,OA8BL;AA7BrB,6EAA0E;AA8BtE,mGA9BK,uCAAkB,OA8BL;AA7BtB,+DAA4D;AA8BxD,8FA9BK,6BAAa,OA8BL;AA7BjB,qDAAkD;AA8B9C,2FA9BK,uBAAU,OA8BL;AA7Bd,iEAA8D;AA8B1D,+FA9BK,+BAAc,OA8BL;AA7BlB,wDAAqD;AA8BjD,4FA9BK,yBAAW,OA8BL;AA7Bf,uEAAoE;AA8BhE,iGA9BK,mCAAgB,OA8BL;AA7BpB,8GAA2G;AA8BvG,8GA9BK,6DAA6B,OA8BL;AA7BjC,yFAAsF;AA8BlF,uGA9BK,+CAAsB,OA8BL;AA7B1B,wGAAqG;AA8BjG,4GA9BK,yDAA2B,OA8BL;AA7B/B,sDAA0E;AAetE,yFAfK,mBAAQ,OAeL;AACR,sGAhBe,gCAAqB,OAgBf;AAdzB,4DAAwE;AAWpE,2FAXK,0BAAU,OAWL;AACV,iGAZiB,gCAAgB,OAYjB"}
@@ -1,3 +1,10 @@
1
+ /**
2
+ * Threshold of the minimum total score
3
+ */
4
+ export declare const MINIMUM_SCORE_THRESHHOLD = 80;
5
+ /**
6
+ * array of strings that should not be in item title or snippet
7
+ */
1
8
  export declare const BLOCKLIST: RegExp[];
2
9
  /**
3
10
  * array of item types that are supported by the Living Atlas
@@ -28,7 +28,14 @@
28
28
  // // CITY_ENGINE: 'City Engine',
29
29
  // };
30
30
  Object.defineProperty(exports, "__esModule", { value: true });
31
- exports.LIVING_ATLAS_SUPPORTED_ITEM_TYPES = exports.BLOCKLIST = void 0;
31
+ exports.LIVING_ATLAS_SUPPORTED_ITEM_TYPES = exports.BLOCKLIST = exports.MINIMUM_SCORE_THRESHHOLD = void 0;
32
+ /**
33
+ * Threshold of the minimum total score
34
+ */
35
+ exports.MINIMUM_SCORE_THRESHHOLD = 80;
36
+ /**
37
+ * array of strings that should not be in item title or snippet
38
+ */
32
39
  exports.BLOCKLIST = [/\bdemo\b/i, /\btest\b/i, /\bcopy\b/i, /\beval\b/i];
33
40
  /**
34
41
  * array of item types that are supported by the Living Atlas
@@ -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;;;AAEQ,QAAA,SAAS,GAAG,CAAC,WAAW,EAAE,WAAW,EAAE,WAAW,EAAE,WAAW,CAAC,CAAC;AAE9E;;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;CACC,CAAC;AAKX,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,SAAS,GAAG,CAAC,WAAW,EAAE,WAAW,EAAE,WAAW,EAAE,WAAW,CAAC,CAAC;AAE9E;;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;CACC,CAAC;AAKX,yBAAyB"}
@@ -9,3 +9,10 @@ import { IItem, IUser, ValidationResult } from '../../types';
9
9
  * @returns
10
10
  */
11
11
  export declare const validate: (item: IItem, userProfile: IUser) => ValidationResult;
12
+ /**
13
+ * Return `true` if the total score of the validation result meets the minimum threshold, which is 80.
14
+ *
15
+ * @param totalScore total score from the validation result
16
+ * @returns true if it meets the minimum threshold
17
+ */
18
+ export declare const meetMinimumTotalScore: (totalScore: number) => boolean;
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.validate = void 0;
3
+ 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");
@@ -49,6 +49,21 @@ const validate = (item, userProfile) => {
49
49
  userProfileFullName,
50
50
  userProfileThumbnail,
51
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
+ ]);
52
67
  const validationResult = {
53
68
  validatedItem: {
54
69
  access,
@@ -68,22 +83,9 @@ const validate = (item, userProfile) => {
68
83
  userProfileThumbnail,
69
84
  },
70
85
  id: item.id,
71
- totalScore: getTotalScore([
72
- access,
73
- accessInformation,
74
- description,
75
- layerCount,
76
- licenseInfo,
77
- snippet,
78
- ssl,
79
- tags,
80
- thumbnail,
81
- title,
82
- userProfileDescription,
83
- userProfileFullName,
84
- userProfileThumbnail,
85
- ]),
86
+ totalScore,
86
87
  };
88
+ validationResult.canBeNominated = meetRequiredThresholds(validationResult);
87
89
  return validationResult;
88
90
  };
89
91
  exports.validate = validate;
@@ -116,4 +118,48 @@ const assignFinalScores = (validationResults) => {
116
118
  validationResult.score = score;
117
119
  }
118
120
  };
121
+ /**
122
+ * Return `true` if the total score of the validation result meets the minimum threshold, which is 80.
123
+ *
124
+ * @param totalScore total score from the validation result
125
+ * @returns true if it meets the minimum threshold
126
+ */
127
+ const meetMinimumTotalScore = (totalScore) => {
128
+ return totalScore >= config_1.MINIMUM_SCORE_THRESHHOLD;
129
+ };
130
+ exports.meetMinimumTotalScore = meetMinimumTotalScore;
131
+ /**
132
+ * Checks if an item can be nominated to Living Atlas based on a set of minimum requirements.
133
+ *
134
+ * An item can be nominated only if its total score meets the minimum required threshold of 80 and it also passes
135
+ * the following checks:
136
+ *
137
+ * - It is shared with the public
138
+ * - Its thumbnail image meets the required dimension
139
+ * - It has a snippet text
140
+ * - It has a description text
141
+ * - The item owner has a user profile description
142
+ *
143
+ * @param validationResult The validation result
144
+ * @returns A boolean value that indicates whether all the scores meet the required thresholds.
145
+ */
146
+ const meetRequiredThresholds = (validationResult) => {
147
+ if (!validationResult) {
148
+ return false;
149
+ }
150
+ if ((0, exports.meetMinimumTotalScore)(validationResult.totalScore) === false) {
151
+ return false;
152
+ }
153
+ const { validatedItem, validatedProfile } = validationResult;
154
+ const { access, thumbnail, snippet, description } = validatedItem;
155
+ const { userProfileDescription } = validatedProfile;
156
+ if (access.score !== access.maxScore ||
157
+ thumbnail.score !== thumbnail.maxScore ||
158
+ snippet.score === 0 ||
159
+ description.score === 0 ||
160
+ userProfileDescription.score === 0) {
161
+ return false;
162
+ }
163
+ return true;
164
+ };
119
165
  //# sourceMappingURL=validate.js.map
@@ -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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"}
@@ -191,4 +191,18 @@ export type ValidationResult = {
191
191
  * total score of the validation result
192
192
  */
193
193
  totalScore?: number;
194
+ /**
195
+ * if true, this item meets all minimum requirements
196
+ * and it can be nominated to Living Atlas.
197
+ *
198
+ * An item can be nominated to Living Atlas only if its total score meets the minimum required threshold of 80 and it also passes
199
+ * the following checks:
200
+ *
201
+ * - It is shared with the public
202
+ * - Its thumbnail image meets the required dimension
203
+ * - It has a snippet text
204
+ * - It has a description text
205
+ * - The item owner has a user profile description
206
+ */
207
+ canBeNominated?: boolean;
194
208
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vannizhang/living-atlas-content-validator",
3
- "version": "1.3.5",
3
+ "version": "1.3.6",
4
4
  "description": "Validation and Scoring rules for curating content in the ArcGIS Living Atlas",
5
5
  "repository": {
6
6
  "type": "git",