@movable/rollup-plugin-package-manifest-validator 2.42.1-canary.0 → 3.0.0-esmodules.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/babel.config.json CHANGED
@@ -1,3 +1,11 @@
1
1
  {
2
- "presets": ["@babel/preset-env"]
2
+ "presets": [
3
+ [
4
+ "@babel/preset-env",
5
+ {
6
+ "targets": { "safari": "16" },
7
+ "bugfixes": true
8
+ }
9
+ ]
10
+ ]
3
11
  }
package/dist/index.js CHANGED
@@ -5,11 +5,11 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  Object.defineProperty(exports, "manifestValidatorPlugin", {
7
7
  enumerable: true,
8
- get: function get() {
9
- return _packageManifestValidator["default"];
8
+ get: function () {
9
+ return _packageManifestValidator.default;
10
10
  }
11
11
  });
12
12
 
13
13
  var _packageManifestValidator = _interopRequireDefault(require("./plugins/package-manifest-validator"));
14
14
 
15
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
15
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports["default"] = void 0;
6
+ exports.default = void 0;
7
7
 
8
8
  var _yamljs = _interopRequireDefault(require("yamljs"));
9
9
 
@@ -11,39 +11,34 @@ var _fs = require("fs");
11
11
 
12
12
  var _packageManifestValidator = _interopRequireDefault(require("../utils/package-manifest-validator"));
13
13
 
14
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
14
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
15
15
 
16
- var formatJSON = function formatJSON(j) {
17
- return JSON.stringify(j, null, 1);
18
- };
16
+ const formatJSON = j => JSON.stringify(j, null, 1);
19
17
 
20
- var _default = function _default(_ref) {
21
- var manifestPath = _ref.manifestPath;
22
- return {
23
- buildStart: function buildStart() {
24
- var _this = this;
18
+ var _default = ({
19
+ manifestPath
20
+ }) => ({
21
+ buildStart() {
22
+ this.addWatchFile(manifestPath);
25
23
 
26
- this.addWatchFile(manifestPath);
24
+ const manifest = _yamljs.default.parse((0, _fs.readFileSync)(manifestPath).toString('utf-8'));
27
25
 
28
- var manifest = _yamljs["default"].parse((0, _fs.readFileSync)(manifestPath).toString('utf-8'));
26
+ const {
27
+ warnings,
28
+ errors
29
+ } = (0, _packageManifestValidator.default)(manifest);
29
30
 
30
- var _packageManifestValid = (0, _packageManifestValidator["default"])(manifest),
31
- warnings = _packageManifestValid.warnings,
32
- errors = _packageManifestValid.errors;
33
-
34
- if (errors.length) {
35
- this.error({
36
- message: "INVALID PACKAGE MANIFEST: ".concat(formatJSON(errors))
37
- });
38
- }
39
-
40
- warnings.forEach(function (w) {
41
- return _this.warn({
42
- message: "'PACKAGE MANIFEST VALIDATION WARNING': ".concat(formatJSON(w))
43
- });
31
+ if (errors.length) {
32
+ this.error({
33
+ message: `INVALID PACKAGE MANIFEST: ${formatJSON(errors)}`
44
34
  });
45
35
  }
46
- };
47
- };
48
36
 
49
- exports["default"] = _default;
37
+ warnings.forEach(w => this.warn({
38
+ message: `'PACKAGE MANIFEST VALIDATION WARNING': ${formatJSON(w)}`
39
+ }));
40
+ }
41
+
42
+ });
43
+
44
+ exports.default = _default;
@@ -3,12 +3,12 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.contextOptionTypes = exports.propertyTypes = exports.fieldTypes = exports.studioIcons = void 0;
7
- var contextOptionTypes = ['select', 'text', 'hidden'];
6
+ exports.studioIcons = exports.propertyTypes = exports.fieldTypes = exports.contextOptionTypes = void 0;
7
+ const contextOptionTypes = ['select', 'text', 'hidden'];
8
8
  exports.contextOptionTypes = contextOptionTypes;
9
- var propertyTypes = ['text', 'image', 'link', 'api', 'boolean'];
9
+ const propertyTypes = ['text', 'image', 'link', 'api', 'boolean'];
10
10
  exports.propertyTypes = propertyTypes;
11
- var fieldTypes = ['asset', 'checkbox', 'color', 'data-source', 'data-source-package', 'date', 'datetime', 'dynamic-text', 'font', 'image', 'map', 'number', 'oauth2', 'oAuthAccount', 'radio', 'select', 'text', 'token', 'upload', 'url'];
11
+ const fieldTypes = ['asset', 'checkbox', 'color', 'data-source', 'data-source-package', 'date', 'datetime', 'dynamic-text', 'font', 'image', 'map', 'number', 'oauth2', 'oAuthAccount', 'radio', 'select', 'text', 'token', 'upload', 'url'];
12
12
  exports.fieldTypes = fieldTypes;
13
- var studioIcons = ['align-bottom', 'align-center', 'align-left', 'align-middle', 'align-right', 'align-top', 'arrange-center', 'arrange-left', 'arrange-right', 'arrows-select', 'avatar', 'bar-chart', 'barcode', 'calendar', 'cart', 'chatter', 'clock', 'code', 'condensed-view', 'copy', 'countdown-timer', 'countdown', 'crop', 'cursor-grab', 'cursor-move', 'cursor', 'distribute-horizontal', 'distribute-vertical', 'dropdown-arrow', 'duplicate', 'expanded-view', 'external-link', 'globe', 'grab', 'image-layer', 'image', 'images', 'instagram', 'local-time', 'locked', 'map-helper', 'maps', 'media-library', 'minus', 'move', 'olapic', 'param', 'personal', 'picture', 'pie-chart', 'pin', 'pinterest', 'plus', 'polling', 'proximity-pin', 'QR', 'qr-code', 'redo', 'rotate', 'rss', 'settings', 'shape', 'sharing', 'square', 'text-center', 'text-justify', 'text-layer', 'text-left', 'text-right', 'text-tool', 'text-vector', 'text', 'tools', 'trash', 'twitter-favorite', 'twitter-retweet', 'twitter-username', 'twitter', 'undo', 'unlocked', 'vector-square', 'vector-tool', 'video', 'weather-average', 'weather-city', 'weather-day', 'weather-description', 'weather-high-temp', 'weather-icon', 'weather', 'workspace-barcode', 'workspace-favorites', 'workspace-instagram', 'workspace-olapic', 'workspace-picture', 'workspace-pinterest', 'workspace-qr-code', 'workspace-retweets', 'workspace-weather'];
13
+ const studioIcons = ['align-bottom', 'align-center', 'align-left', 'align-middle', 'align-right', 'align-top', 'arrange-center', 'arrange-left', 'arrange-right', 'arrows-select', 'avatar', 'bar-chart', 'barcode', 'calendar', 'cart', 'chatter', 'clock', 'code', 'condensed-view', 'copy', 'countdown-timer', 'countdown', 'crop', 'cursor-grab', 'cursor-move', 'cursor', 'distribute-horizontal', 'distribute-vertical', 'dropdown-arrow', 'duplicate', 'expanded-view', 'external-link', 'globe', 'grab', 'image-layer', 'image', 'images', 'instagram', 'local-time', 'locked', 'map-helper', 'maps', 'media-library', 'minus', 'move', 'olapic', 'param', 'personal', 'picture', 'pie-chart', 'pin', 'pinterest', 'plus', 'polling', 'proximity-pin', 'QR', 'qr-code', 'redo', 'rotate', 'rss', 'settings', 'shape', 'sharing', 'square', 'text-center', 'text-justify', 'text-layer', 'text-left', 'text-right', 'text-tool', 'text-vector', 'text', 'tools', 'trash', 'twitter-favorite', 'twitter-retweet', 'twitter-username', 'twitter', 'undo', 'unlocked', 'vector-square', 'vector-tool', 'video', 'weather-average', 'weather-city', 'weather-day', 'weather-description', 'weather-high-temp', 'weather-icon', 'weather', 'workspace-barcode', 'workspace-favorites', 'workspace-instagram', 'workspace-olapic', 'workspace-picture', 'workspace-pinterest', 'workspace-qr-code', 'workspace-retweets', 'workspace-weather'];
14
14
  exports.studioIcons = studioIcons;
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports["default"] = void 0;
6
+ exports.default = void 0;
7
7
  var _default = {
8
8
  type: 'object',
9
9
  properties: {
@@ -14,4 +14,4 @@ var _default = {
14
14
  required: ['name'],
15
15
  prohibited: ['clickthrough_dynamic_property']
16
16
  };
17
- exports["default"] = _default;
17
+ exports.default = _default;
@@ -3,16 +3,16 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- Object.defineProperty(exports, "warningSchema", {
6
+ Object.defineProperty(exports, "erroringSchema", {
7
7
  enumerable: true,
8
- get: function get() {
9
- return _warningSchema["default"];
8
+ get: function () {
9
+ return _erroringSchema.default;
10
10
  }
11
11
  });
12
- Object.defineProperty(exports, "erroringSchema", {
12
+ Object.defineProperty(exports, "warningSchema", {
13
13
  enumerable: true,
14
- get: function get() {
15
- return _erroringSchema["default"];
14
+ get: function () {
15
+ return _warningSchema.default;
16
16
  }
17
17
  });
18
18
 
@@ -20,4 +20,4 @@ var _warningSchema = _interopRequireDefault(require("./warningSchema"));
20
20
 
21
21
  var _erroringSchema = _interopRequireDefault(require("./erroringSchema"));
22
22
 
23
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
23
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
@@ -3,18 +3,18 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports["default"] = void 0;
6
+ exports.default = void 0;
7
7
 
8
8
  var _enums = require("./enums");
9
9
 
10
- var strNumBool = ['string', 'number', 'boolean'];
11
- var fieldSchema = {
10
+ const strNumBool = ['string', 'number', 'boolean'];
11
+ const fieldSchema = {
12
12
  type: 'object',
13
13
  properties: {
14
14
  allows_dynamic: {
15
15
  type: 'boolean'
16
16
  },
17
- "default": {
17
+ default: {
18
18
  type: strNumBool
19
19
  },
20
20
  description: {
@@ -62,7 +62,7 @@ var fieldSchema = {
62
62
  },
63
63
  type: {
64
64
  type: 'string',
65
- "enum": _enums.fieldTypes
65
+ enum: _enums.fieldTypes
66
66
  },
67
67
  value: {
68
68
  type: strNumBool
@@ -74,63 +74,63 @@ var fieldSchema = {
74
74
  required: ['name', 'label', 'type'],
75
75
  additionalProperties: false,
76
76
  allOf: [{
77
- "if": {
77
+ if: {
78
78
  properties: {
79
79
  type: {
80
- "enum": ['number', 'token']
80
+ enum: ['number', 'token']
81
81
  }
82
82
  }
83
83
  },
84
- "else": {
84
+ else: {
85
85
  not: {
86
86
  required: ['max']
87
87
  }
88
88
  }
89
89
  }, {
90
- "if": {
90
+ if: {
91
91
  properties: {
92
92
  type: {
93
- "const": 'oAuthAccount'
93
+ const: 'oAuthAccount'
94
94
  }
95
95
  }
96
96
  },
97
97
  then: {
98
98
  required: ['provider']
99
99
  },
100
- "else": {
100
+ else: {
101
101
  not: {
102
102
  required: ['provider']
103
103
  }
104
104
  }
105
105
  }, {
106
- "if": {
106
+ if: {
107
107
  properties: {
108
108
  type: {
109
- "const": 'data-source'
109
+ const: 'data-source'
110
110
  }
111
111
  }
112
112
  },
113
- "else": {
113
+ else: {
114
114
  not: {
115
115
  required: ['template']
116
116
  }
117
117
  }
118
118
  }, {
119
- "if": {
119
+ if: {
120
120
  properties: {
121
121
  type: {
122
- "enum": ['select', 'radio', 'checkbox']
122
+ enum: ['select', 'radio', 'checkbox']
123
123
  }
124
124
  }
125
125
  },
126
- "else": {
126
+ else: {
127
127
  not: {
128
128
  required: ['options']
129
129
  }
130
130
  }
131
131
  }]
132
132
  };
133
- var dynamicPropertySchema = {
133
+ const dynamicPropertySchema = {
134
134
  propertyGroupKey: {
135
135
  type: 'string'
136
136
  },
@@ -150,7 +150,7 @@ var dynamicPropertySchema = {
150
150
  type: 'object'
151
151
  }
152
152
  };
153
- var toolSchema = {
153
+ const toolSchema = {
154
154
  type: 'object',
155
155
  properties: {
156
156
  class_names: {
@@ -162,7 +162,7 @@ var toolSchema = {
162
162
  },
163
163
  icon: {
164
164
  type: 'string',
165
- "enum": _enums.studioIcons
165
+ enum: _enums.studioIcons
166
166
  },
167
167
  label: {
168
168
  type: 'string'
@@ -183,7 +183,7 @@ var toolSchema = {
183
183
  properties: {
184
184
  type: {
185
185
  type: 'string',
186
- "enum": _enums.propertyTypes
186
+ enum: _enums.propertyTypes
187
187
  },
188
188
  name: {
189
189
  type: 'string'
@@ -221,7 +221,7 @@ var toolSchema = {
221
221
  required: ['name', 'icon', 'label', 'type'],
222
222
  additionalProperties: false
223
223
  };
224
- var propertySchema = {
224
+ const propertySchema = {
225
225
  type: 'object',
226
226
  properties: {
227
227
  name: {
@@ -235,7 +235,7 @@ var propertySchema = {
235
235
  },
236
236
  type: {
237
237
  type: 'string',
238
- "enum": _enums.propertyTypes
238
+ enum: _enums.propertyTypes
239
239
  },
240
240
  preview_text: {
241
241
  type: 'array',
@@ -259,7 +259,7 @@ var propertySchema = {
259
259
  },
260
260
  type: {
261
261
  type: 'string',
262
- "enum": _enums.contextOptionTypes
262
+ enum: _enums.contextOptionTypes
263
263
  },
264
264
  description: {
265
265
  type: 'string'
@@ -288,10 +288,10 @@ var propertySchema = {
288
288
  required: ['name', 'type'],
289
289
  additionalProperties: false,
290
290
  allOf: [{
291
- "if": {
291
+ if: {
292
292
  properties: {
293
293
  type: {
294
- "enum": ['select']
294
+ enum: ['select']
295
295
  }
296
296
  }
297
297
  },
@@ -452,7 +452,7 @@ var _default = {
452
452
  },
453
453
  type: {
454
454
  type: 'string',
455
- "enum": _enums.propertyTypes
455
+ enum: _enums.propertyTypes
456
456
  },
457
457
  preview_text: {
458
458
  type: 'array',
@@ -501,4 +501,4 @@ var _default = {
501
501
  required: ['name'],
502
502
  additionalProperties: false
503
503
  };
504
- exports["default"] = _default;
504
+ exports.default = _default;
@@ -3,24 +3,25 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports["default"] = validateManifest;
7
6
  exports.TOP_LEVEL_PROHIBITED_PROPERTY_MESSAGE = void 0;
7
+ exports.default = validateManifest;
8
8
 
9
9
  var _validators = require("../validators");
10
10
 
11
- var TOP_LEVEL_PROHIBITED_PROPERTY_MESSAGE = 'Manifest has a prohibited keyword at the top level.';
11
+ const TOP_LEVEL_PROHIBITED_PROPERTY_MESSAGE = 'Manifest has a prohibited keyword at the top level.';
12
12
  exports.TOP_LEVEL_PROHIBITED_PROPERTY_MESSAGE = TOP_LEVEL_PROHIBITED_PROPERTY_MESSAGE;
13
- var TOP_LEVEL_PATH = 'package-manifest.yml';
14
-
15
- var parseValidationItem = function parseValidationItem(_ref) {
16
- var message = _ref.message,
17
- dataPath = _ref.dataPath,
18
- params = _ref.params,
19
- keyword = _ref.keyword;
20
- var validation = {
21
- message: message,
22
- dataPath: dataPath,
23
- params: params
13
+ const TOP_LEVEL_PATH = 'package-manifest.yml';
14
+
15
+ const parseValidationItem = ({
16
+ message,
17
+ dataPath,
18
+ params,
19
+ keyword
20
+ }) => {
21
+ const validation = {
22
+ message,
23
+ dataPath,
24
+ params
24
25
  };
25
26
 
26
27
  if (!dataPath) {
@@ -32,12 +33,10 @@ var parseValidationItem = function parseValidationItem(_ref) {
32
33
  };
33
34
 
34
35
  function validateManifest(manifest) {
35
- var _warningValidator$err, _erroringValidator$er;
36
-
37
36
  (0, _validators.warningValidator)(manifest);
38
37
  (0, _validators.erroringValidator)(manifest);
39
- var warnings = (_warningValidator$err = _validators.warningValidator.errors) !== null && _warningValidator$err !== void 0 ? _warningValidator$err : [];
40
- var errors = (_erroringValidator$er = _validators.erroringValidator.errors) !== null && _erroringValidator$er !== void 0 ? _erroringValidator$er : [];
38
+ const warnings = _validators.warningValidator.errors ?? [];
39
+ const errors = _validators.erroringValidator.errors ?? [];
41
40
  return {
42
41
  warnings: warnings.map(parseValidationItem),
43
42
  errors: errors.map(parseValidationItem)
@@ -3,27 +3,27 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports["default"] = void 0;
6
+ exports.default = void 0;
7
7
 
8
8
  var _ajv = _interopRequireDefault(require("ajv"));
9
9
 
10
10
  var _ajvKeywords = _interopRequireDefault(require("ajv-keywords"));
11
11
 
12
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
12
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
13
13
 
14
- var compiler = new _ajv["default"]({
14
+ const compiler = new _ajv.default({
15
15
  allErrors: true
16
16
  });
17
- (0, _ajvKeywords["default"])(compiler);
17
+ (0, _ajvKeywords.default)(compiler);
18
18
  compiler.addKeyword('name', {
19
19
  schema: false,
20
20
  validate: function validation(data) {
21
- var _data$studio_options, _data$studio_options$;
21
+ const {
22
+ name: packageName
23
+ } = data;
24
+ const propertyGroup = data.studio_options?.property_groups?.[0];
22
25
 
23
- var packageName = data.name;
24
- var propertyGroup = (_data$studio_options = data.studio_options) === null || _data$studio_options === void 0 ? void 0 : (_data$studio_options$ = _data$studio_options.property_groups) === null || _data$studio_options$ === void 0 ? void 0 : _data$studio_options$[0];
25
-
26
- if (propertyGroup !== null && propertyGroup !== void 0 && propertyGroup.name) {
26
+ if (propertyGroup?.name) {
27
27
  validation.errors = [{
28
28
  message: 'property_group name must match package name',
29
29
  keyword: 'invalidPropertyGroupName',
@@ -40,4 +40,4 @@ compiler.addKeyword('name', {
40
40
  errors: true
41
41
  });
42
42
  var _default = compiler;
43
- exports["default"] = _default;
43
+ exports.default = _default;
@@ -3,14 +3,14 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports["default"] = void 0;
6
+ exports.default = void 0;
7
7
 
8
8
  var _ajvCompiler = _interopRequireDefault(require("./ajvCompiler"));
9
9
 
10
10
  var _schemas = require("../schemas");
11
11
 
12
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
12
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
13
13
 
14
- var _default = _ajvCompiler["default"].compile(_schemas.erroringSchema);
14
+ var _default = _ajvCompiler.default.compile(_schemas.erroringSchema);
15
15
 
16
- exports["default"] = _default;
16
+ exports.default = _default;
@@ -3,16 +3,16 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- Object.defineProperty(exports, "warningValidator", {
6
+ Object.defineProperty(exports, "erroringValidator", {
7
7
  enumerable: true,
8
- get: function get() {
9
- return _warningValidator["default"];
8
+ get: function () {
9
+ return _erroringValidator.default;
10
10
  }
11
11
  });
12
- Object.defineProperty(exports, "erroringValidator", {
12
+ Object.defineProperty(exports, "warningValidator", {
13
13
  enumerable: true,
14
- get: function get() {
15
- return _erroringValidator["default"];
14
+ get: function () {
15
+ return _warningValidator.default;
16
16
  }
17
17
  });
18
18
 
@@ -20,4 +20,4 @@ var _warningValidator = _interopRequireDefault(require("./warningValidator"));
20
20
 
21
21
  var _erroringValidator = _interopRequireDefault(require("./erroringValidator"));
22
22
 
23
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
23
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
@@ -3,14 +3,14 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports["default"] = void 0;
6
+ exports.default = void 0;
7
7
 
8
8
  var _ajvCompiler = _interopRequireDefault(require("./ajvCompiler"));
9
9
 
10
10
  var _schemas = require("../schemas");
11
11
 
12
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
12
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
13
13
 
14
- var _default = _ajvCompiler["default"].compile(_schemas.warningSchema);
14
+ var _default = _ajvCompiler.default.compile(_schemas.warningSchema);
15
15
 
16
- exports["default"] = _default;
16
+ exports.default = _default;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@movable/rollup-plugin-package-manifest-validator",
3
- "version": "2.42.1-canary.0",
3
+ "version": "3.0.0-esmodules.0",
4
4
  "description": "Validates package-manifest.yml",
5
5
  "main": "dist",
6
6
  "keywords": [],
@@ -24,11 +24,10 @@
24
24
  "devDependencies": {
25
25
  "@babel/cli": "^7.13.16",
26
26
  "@babel/core": "^7.14.0",
27
- "@babel/preset-env": "^7.14.1",
27
+ "@babel/preset-env": "^7.20.2",
28
28
  "@babel/register": "^7.13.16",
29
29
  "chai": "^4.3.4",
30
30
  "mocha": "^8.3.2",
31
- "regenerator-runtime": "^0.13.7",
32
31
  "rollup": "^2.52.2"
33
32
  },
34
33
  "dependencies": {
@@ -39,5 +38,5 @@
39
38
  "volta": {
40
39
  "extends": "../../package.json"
41
40
  },
42
- "gitHead": "451954a037803969425f6bd06db7c1a4fd13883d"
41
+ "gitHead": "70ac10408686fdf679ee04cde278285f7778eaf1"
43
42
  }