axyseo 2.0.0-alpha.0.0.28 → 2.0.0-alpha.0.0.28.2

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.
@@ -4,9 +4,11 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.default = void 0;
7
- var _react = require("react");
7
+ var _react = _interopRequireWildcard(require("react"));
8
8
  var _polaris = require("@shopify/polaris");
9
9
  require("./RelatedKeywordsDescription.scss");
10
+ function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
11
+ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
10
12
  const RelatedKeywordDescription = ({
11
13
  words,
12
14
  i18n
@@ -19,22 +21,22 @@ const RelatedKeywordDescription = ({
19
21
  }
20
22
  return [];
21
23
  }, [words, viewMore]);
22
- return /*#__PURE__*/React.createElement("div", {
24
+ return /*#__PURE__*/_react.default.createElement("div", {
23
25
  className: "Avada-Seo-Checklist__Description"
24
- }, words && /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(_polaris.BlockStack, {
26
+ }, words && /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_polaris.BlockStack, {
25
27
  gap: "200"
26
- }, arr.map(key => /*#__PURE__*/React.createElement(_polaris.InlineStack, {
28
+ }, arr.map(key => /*#__PURE__*/_react.default.createElement(_polaris.InlineStack, {
27
29
  key: key,
28
30
  gap: "200"
29
- }, /*#__PURE__*/React.createElement(_polaris.Badge, null, key, ":"), /*#__PURE__*/React.createElement(_polaris.Text, {
31
+ }, /*#__PURE__*/_react.default.createElement(_polaris.Badge, null, key, ":"), /*#__PURE__*/_react.default.createElement(_polaris.Text, {
30
32
  as: "span"
31
- }, words[key].length, " words"), /*#__PURE__*/React.createElement(_polaris.Text, {
33
+ }, words[key].length, " words"), /*#__PURE__*/_react.default.createElement(_polaris.Text, {
32
34
  as: "span"
33
- }, "|"), /*#__PURE__*/React.createElement(_polaris.Text, {
35
+ }, "|"), /*#__PURE__*/_react.default.createElement(_polaris.Text, {
34
36
  as: "span"
35
- }, words[key].percentage, "% used")))), Object.keys(words).length > 2 && /*#__PURE__*/React.createElement("div", {
37
+ }, words[key].percentage, "% used")))), Object.keys(words).length > 2 && /*#__PURE__*/_react.default.createElement("div", {
36
38
  className: "Avada-Seo-Checklist__Description-Backdrop"
37
- }, /*#__PURE__*/React.createElement(_polaris.Button, {
39
+ }, /*#__PURE__*/_react.default.createElement(_polaris.Button, {
38
40
  size: "medium",
39
41
  variant: "plain",
40
42
  onClick: () => setViewMore(!viewMore)
@@ -1 +1 @@
1
- {"version":3,"file":"RelatedKeywordsDescription.js","names":["_react","require","_polaris","RelatedKeywordDescription","words","i18n","viewMore","setViewMore","useState","arr","useMemo","wordsArr","Object","keys","length","slice","React","createElement","className","Fragment","BlockStack","gap","map","key","InlineStack","Badge","Text","as","percentage","Button","size","variant","onClick","translate","_default","exports","default"],"sources":["../../src/components/RelatedKeywordsDescription.js"],"sourcesContent":["import {useMemo, useState} from 'react';\nimport {Badge, BlockStack, Button, InlineStack, Text} from '@shopify/polaris';\nimport './RelatedKeywordsDescription.scss';\n\nconst RelatedKeywordDescription = ({words, i18n}) => {\n const [viewMore, setViewMore] = useState(false);\n const arr = useMemo(() => {\n if (words) {\n const wordsArr = Object.keys(words);\n return wordsArr?.length > 2 && !viewMore ? wordsArr.slice(0, 2) : wordsArr;\n }\n return [];\n }, [words, viewMore]);\n\n return (\n <div className=\"Avada-Seo-Checklist__Description\">\n {words && (\n <>\n <BlockStack gap=\"200\">\n {arr.map(key => (\n <InlineStack key={key} gap=\"200\">\n <Badge>{key}:</Badge>\n <Text as=\"span\">{words[key].length} words</Text>\n <Text as=\"span\">|</Text>\n <Text as=\"span\">{words[key].percentage}% used</Text>\n </InlineStack>\n ))}\n </BlockStack>\n {Object.keys(words).length > 2 && (\n <div className=\"Avada-Seo-Checklist__Description-Backdrop\">\n <Button size=\"medium\" variant=\"plain\" onClick={() => setViewMore(!viewMore)}>\n {viewMore\n ? i18n.translate('Axyseo.Button.viewLess')\n : i18n.translate('Axyseo.Button.viewMore')}\n </Button>\n </div>\n )}\n </>\n )}\n </div>\n );\n};\n\nexport default RelatedKeywordDescription;\n"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AACA,IAAAC,QAAA,GAAAD,OAAA;AACAA,OAAA;AAEA,MAAME,yBAAyB,GAAGA,CAAC;EAACC,KAAK;EAAEC;AAAI,CAAC,KAAK;EACnD,MAAM,CAACC,QAAQ,EAAEC,WAAW,CAAC,GAAG,IAAAC,eAAQ,EAAC,KAAK,CAAC;EAC/C,MAAMC,GAAG,GAAG,IAAAC,cAAO,EAAC,MAAM;IACxB,IAAIN,KAAK,EAAE;MACT,MAAMO,QAAQ,GAAGC,MAAM,CAACC,IAAI,CAACT,KAAK,CAAC;MACnC,OAAOO,QAAQ,EAAEG,MAAM,GAAG,CAAC,IAAI,CAACR,QAAQ,GAAGK,QAAQ,CAACI,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,GAAGJ,QAAQ;IAC5E;IACA,OAAO,EAAE;EACX,CAAC,EAAE,CAACP,KAAK,EAAEE,QAAQ,CAAC,CAAC;EAErB,oBACEU,KAAA,CAAAC,aAAA;IAAKC,SAAS,EAAC;EAAkC,GAC9Cd,KAAK,iBACJY,KAAA,CAAAC,aAAA,CAAAD,KAAA,CAAAG,QAAA,qBACEH,KAAA,CAAAC,aAAA,CAACf,QAAA,CAAAkB,UAAU;IAACC,GAAG,EAAC;EAAK,GAClBZ,GAAG,CAACa,GAAG,CAACC,GAAG,iBACVP,KAAA,CAAAC,aAAA,CAACf,QAAA,CAAAsB,WAAW;IAACD,GAAG,EAAEA,GAAI;IAACF,GAAG,EAAC;EAAK,gBAC9BL,KAAA,CAAAC,aAAA,CAACf,QAAA,CAAAuB,KAAK,QAAEF,GAAG,EAAC,GAAQ,CAAC,eACrBP,KAAA,CAAAC,aAAA,CAACf,QAAA,CAAAwB,IAAI;IAACC,EAAE,EAAC;EAAM,GAAEvB,KAAK,CAACmB,GAAG,CAAC,CAACT,MAAM,EAAC,QAAY,CAAC,eAChDE,KAAA,CAAAC,aAAA,CAACf,QAAA,CAAAwB,IAAI;IAACC,EAAE,EAAC;EAAM,GAAC,GAAO,CAAC,eACxBX,KAAA,CAAAC,aAAA,CAACf,QAAA,CAAAwB,IAAI;IAACC,EAAE,EAAC;EAAM,GAAEvB,KAAK,CAACmB,GAAG,CAAC,CAACK,UAAU,EAAC,QAAY,CACxC,CACd,CACS,CAAC,EACZhB,MAAM,CAACC,IAAI,CAACT,KAAK,CAAC,CAACU,MAAM,GAAG,CAAC,iBAC5BE,KAAA,CAAAC,aAAA;IAAKC,SAAS,EAAC;EAA2C,gBACxDF,KAAA,CAAAC,aAAA,CAACf,QAAA,CAAA2B,MAAM;IAACC,IAAI,EAAC,QAAQ;IAACC,OAAO,EAAC,OAAO;IAACC,OAAO,EAAEA,CAAA,KAAMzB,WAAW,CAAC,CAACD,QAAQ;EAAE,GACzEA,QAAQ,GACLD,IAAI,CAAC4B,SAAS,CAAC,wBAAwB,CAAC,GACxC5B,IAAI,CAAC4B,SAAS,CAAC,wBAAwB,CACrC,CACL,CAEP,CAED,CAAC;AAEV,CAAC;AAAC,IAAAC,QAAA,GAAAC,OAAA,CAAAC,OAAA,GAEajC,yBAAyB","ignoreList":[]}
1
+ {"version":3,"file":"RelatedKeywordsDescription.js","names":["_react","_interopRequireWildcard","require","_polaris","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","RelatedKeywordDescription","words","i18n","viewMore","setViewMore","useState","arr","useMemo","wordsArr","keys","length","slice","createElement","className","Fragment","BlockStack","gap","map","key","InlineStack","Badge","Text","as","percentage","Button","size","variant","onClick","translate","_default","exports"],"sources":["../../src/components/RelatedKeywordsDescription.js"],"sourcesContent":["import React, {useMemo, useState} from 'react';\nimport {Badge, BlockStack, Button, InlineStack, Text} from '@shopify/polaris';\nimport './RelatedKeywordsDescription.scss';\n\nconst RelatedKeywordDescription = ({words, i18n}) => {\n const [viewMore, setViewMore] = useState(false);\n const arr = useMemo(() => {\n if (words) {\n const wordsArr = Object.keys(words);\n return wordsArr?.length > 2 && !viewMore ? wordsArr.slice(0, 2) : wordsArr;\n }\n return [];\n }, [words, viewMore]);\n\n return (\n <div className=\"Avada-Seo-Checklist__Description\">\n {words && (\n <>\n <BlockStack gap=\"200\">\n {arr.map(key => (\n <InlineStack key={key} gap=\"200\">\n <Badge>{key}:</Badge>\n <Text as=\"span\">{words[key].length} words</Text>\n <Text as=\"span\">|</Text>\n <Text as=\"span\">{words[key].percentage}% used</Text>\n </InlineStack>\n ))}\n </BlockStack>\n {Object.keys(words).length > 2 && (\n <div className=\"Avada-Seo-Checklist__Description-Backdrop\">\n <Button size=\"medium\" variant=\"plain\" onClick={() => setViewMore(!viewMore)}>\n {viewMore\n ? i18n.translate('Axyseo.Button.viewLess')\n : i18n.translate('Axyseo.Button.viewMore')}\n </Button>\n </div>\n )}\n </>\n )}\n </div>\n );\n};\n\nexport default RelatedKeywordDescription;\n"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,uBAAA,CAAAC,OAAA;AACA,IAAAC,QAAA,GAAAD,OAAA;AACAA,OAAA;AAA2C,SAAAE,yBAAAC,CAAA,6BAAAC,OAAA,mBAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAF,wBAAA,YAAAA,CAAAC,CAAA,WAAAA,CAAA,GAAAG,CAAA,GAAAD,CAAA,KAAAF,CAAA;AAAA,SAAAJ,wBAAAI,CAAA,EAAAE,CAAA,SAAAA,CAAA,IAAAF,CAAA,IAAAA,CAAA,CAAAI,UAAA,SAAAJ,CAAA,eAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA,WAAAK,OAAA,EAAAL,CAAA,QAAAG,CAAA,GAAAJ,wBAAA,CAAAG,CAAA,OAAAC,CAAA,IAAAA,CAAA,CAAAG,GAAA,CAAAN,CAAA,UAAAG,CAAA,CAAAI,GAAA,CAAAP,CAAA,OAAAQ,CAAA,KAAAC,SAAA,UAAAC,CAAA,GAAAC,MAAA,CAAAC,cAAA,IAAAD,MAAA,CAAAE,wBAAA,WAAAC,CAAA,IAAAd,CAAA,oBAAAc,CAAA,OAAAC,cAAA,CAAAC,IAAA,CAAAhB,CAAA,EAAAc,CAAA,SAAAG,CAAA,GAAAP,CAAA,GAAAC,MAAA,CAAAE,wBAAA,CAAAb,CAAA,EAAAc,CAAA,UAAAG,CAAA,KAAAA,CAAA,CAAAV,GAAA,IAAAU,CAAA,CAAAC,GAAA,IAAAP,MAAA,CAAAC,cAAA,CAAAJ,CAAA,EAAAM,CAAA,EAAAG,CAAA,IAAAT,CAAA,CAAAM,CAAA,IAAAd,CAAA,CAAAc,CAAA,YAAAN,CAAA,CAAAH,OAAA,GAAAL,CAAA,EAAAG,CAAA,IAAAA,CAAA,CAAAe,GAAA,CAAAlB,CAAA,EAAAQ,CAAA,GAAAA,CAAA;AAE3C,MAAMW,yBAAyB,GAAGA,CAAC;EAACC,KAAK;EAAEC;AAAI,CAAC,KAAK;EACnD,MAAM,CAACC,QAAQ,EAAEC,WAAW,CAAC,GAAG,IAAAC,eAAQ,EAAC,KAAK,CAAC;EAC/C,MAAMC,GAAG,GAAG,IAAAC,cAAO,EAAC,MAAM;IACxB,IAAIN,KAAK,EAAE;MACT,MAAMO,QAAQ,GAAGhB,MAAM,CAACiB,IAAI,CAACR,KAAK,CAAC;MACnC,OAAOO,QAAQ,EAAEE,MAAM,GAAG,CAAC,IAAI,CAACP,QAAQ,GAAGK,QAAQ,CAACG,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,GAAGH,QAAQ;IAC5E;IACA,OAAO,EAAE;EACX,CAAC,EAAE,CAACP,KAAK,EAAEE,QAAQ,CAAC,CAAC;EAErB,oBACE3B,MAAA,CAAAU,OAAA,CAAA0B,aAAA;IAAKC,SAAS,EAAC;EAAkC,GAC9CZ,KAAK,iBACJzB,MAAA,CAAAU,OAAA,CAAA0B,aAAA,CAAApC,MAAA,CAAAU,OAAA,CAAA4B,QAAA,qBACEtC,MAAA,CAAAU,OAAA,CAAA0B,aAAA,CAACjC,QAAA,CAAAoC,UAAU;IAACC,GAAG,EAAC;EAAK,GAClBV,GAAG,CAACW,GAAG,CAACC,GAAG,iBACV1C,MAAA,CAAAU,OAAA,CAAA0B,aAAA,CAACjC,QAAA,CAAAwC,WAAW;IAACD,GAAG,EAAEA,GAAI;IAACF,GAAG,EAAC;EAAK,gBAC9BxC,MAAA,CAAAU,OAAA,CAAA0B,aAAA,CAACjC,QAAA,CAAAyC,KAAK,QAAEF,GAAG,EAAC,GAAQ,CAAC,eACrB1C,MAAA,CAAAU,OAAA,CAAA0B,aAAA,CAACjC,QAAA,CAAA0C,IAAI;IAACC,EAAE,EAAC;EAAM,GAAErB,KAAK,CAACiB,GAAG,CAAC,CAACR,MAAM,EAAC,QAAY,CAAC,eAChDlC,MAAA,CAAAU,OAAA,CAAA0B,aAAA,CAACjC,QAAA,CAAA0C,IAAI;IAACC,EAAE,EAAC;EAAM,GAAC,GAAO,CAAC,eACxB9C,MAAA,CAAAU,OAAA,CAAA0B,aAAA,CAACjC,QAAA,CAAA0C,IAAI;IAACC,EAAE,EAAC;EAAM,GAAErB,KAAK,CAACiB,GAAG,CAAC,CAACK,UAAU,EAAC,QAAY,CACxC,CACd,CACS,CAAC,EACZ/B,MAAM,CAACiB,IAAI,CAACR,KAAK,CAAC,CAACS,MAAM,GAAG,CAAC,iBAC5BlC,MAAA,CAAAU,OAAA,CAAA0B,aAAA;IAAKC,SAAS,EAAC;EAA2C,gBACxDrC,MAAA,CAAAU,OAAA,CAAA0B,aAAA,CAACjC,QAAA,CAAA6C,MAAM;IAACC,IAAI,EAAC,QAAQ;IAACC,OAAO,EAAC,OAAO;IAACC,OAAO,EAAEA,CAAA,KAAMvB,WAAW,CAAC,CAACD,QAAQ;EAAE,GACzEA,QAAQ,GACLD,IAAI,CAAC0B,SAAS,CAAC,wBAAwB,CAAC,GACxC1B,IAAI,CAAC0B,SAAS,CAAC,wBAAwB,CACrC,CACL,CAEP,CAED,CAAC;AAEV,CAAC;AAAC,IAAAC,QAAA,GAAAC,OAAA,CAAA5C,OAAA,GAEac,yBAAyB","ignoreList":[]}
@@ -16,5 +16,5 @@ const statusRate = exports.statusRate = {
16
16
  bad: 0
17
17
  };
18
18
  const technicalSEOCategory = exports.technicalSEOCategory = ['singleH1', 'metaDescriptionLength', 'urlLength', 'internalLinks', 'externalLinks', 'titleWidth', 'textImages', 'schema', 'singleTitle'];
19
- const contentSEOCategory = exports.contentSEOCategory = ['introductionKeyword', 'sentenceBeginnings', 'textSentenceLength', 'textLength', 'titleKeyword', 'keyphraseLength', 'textTransitionWords', 'keyphraseDensity', 'slugKeyword', 'keyphrase', 'textParagraphTooLong', 'subheadingsKeyword', 'images', 'numberTitle', 'metaDescriptionKeyword', 'relatedKeyword'];
19
+ const contentSEOCategory = exports.contentSEOCategory = ['introductionKeyword', 'sentenceBeginnings', 'textSentenceLength', 'textLength', 'titleKeyword', 'keyphraseLength', 'textTransitionWords', 'keyphraseDensity', 'slugKeyword', 'keyphrase', 'textParagraphTooLong', 'subheadingsKeyword', 'images', 'numberTitle', 'metaDescriptionKeyword', 'relatedKeywords'];
20
20
  //# sourceMappingURL=analysis.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"analysis.js","names":["POINT","exports","priorityRate","high","medium","low","statusRate","good","improve","bad","technicalSEOCategory","contentSEOCategory"],"sources":["../../src/const/analysis.js"],"sourcesContent":["export const POINT = 100;\nexport const priorityRate = {\n high: 1,\n medium: 0.75,\n low: 0.5\n};\nexport const statusRate = {\n good: 1,\n improve: 0.5,\n bad: 0\n};\n\nexport const technicalSEOCategory = [\n 'singleH1',\n 'metaDescriptionLength',\n 'urlLength',\n 'internalLinks',\n 'externalLinks',\n 'titleWidth',\n 'textImages',\n 'schema',\n 'singleTitle'\n];\n\nexport const contentSEOCategory = [\n 'introductionKeyword',\n 'sentenceBeginnings',\n 'textSentenceLength',\n 'textLength',\n 'titleKeyword',\n 'keyphraseLength',\n 'textTransitionWords',\n 'keyphraseDensity',\n 'slugKeyword',\n 'keyphrase',\n 'textParagraphTooLong',\n 'subheadingsKeyword',\n 'images',\n 'numberTitle',\n 'metaDescriptionKeyword',\n 'relatedKeyword'\n];\n"],"mappings":";;;;;;AAAO,MAAMA,KAAK,GAAAC,OAAA,CAAAD,KAAA,GAAG,GAAG;AACjB,MAAME,YAAY,GAAAD,OAAA,CAAAC,YAAA,GAAG;EAC1BC,IAAI,EAAE,CAAC;EACPC,MAAM,EAAE,IAAI;EACZC,GAAG,EAAE;AACP,CAAC;AACM,MAAMC,UAAU,GAAAL,OAAA,CAAAK,UAAA,GAAG;EACxBC,IAAI,EAAE,CAAC;EACPC,OAAO,EAAE,GAAG;EACZC,GAAG,EAAE;AACP,CAAC;AAEM,MAAMC,oBAAoB,GAAAT,OAAA,CAAAS,oBAAA,GAAG,CAClC,UAAU,EACV,uBAAuB,EACvB,WAAW,EACX,eAAe,EACf,eAAe,EACf,YAAY,EACZ,YAAY,EACZ,QAAQ,EACR,aAAa,CACd;AAEM,MAAMC,kBAAkB,GAAAV,OAAA,CAAAU,kBAAA,GAAG,CAChC,qBAAqB,EACrB,oBAAoB,EACpB,oBAAoB,EACpB,YAAY,EACZ,cAAc,EACd,iBAAiB,EACjB,qBAAqB,EACrB,kBAAkB,EAClB,aAAa,EACb,WAAW,EACX,sBAAsB,EACtB,oBAAoB,EACpB,QAAQ,EACR,aAAa,EACb,wBAAwB,EACxB,gBAAgB,CACjB","ignoreList":[]}
1
+ {"version":3,"file":"analysis.js","names":["POINT","exports","priorityRate","high","medium","low","statusRate","good","improve","bad","technicalSEOCategory","contentSEOCategory"],"sources":["../../src/const/analysis.js"],"sourcesContent":["export const POINT = 100;\nexport const priorityRate = {\n high: 1,\n medium: 0.75,\n low: 0.5\n};\nexport const statusRate = {\n good: 1,\n improve: 0.5,\n bad: 0\n};\n\nexport const technicalSEOCategory = [\n 'singleH1',\n 'metaDescriptionLength',\n 'urlLength',\n 'internalLinks',\n 'externalLinks',\n 'titleWidth',\n 'textImages',\n 'schema',\n 'singleTitle'\n];\n\nexport const contentSEOCategory = [\n 'introductionKeyword',\n 'sentenceBeginnings',\n 'textSentenceLength',\n 'textLength',\n 'titleKeyword',\n 'keyphraseLength',\n 'textTransitionWords',\n 'keyphraseDensity',\n 'slugKeyword',\n 'keyphrase',\n 'textParagraphTooLong',\n 'subheadingsKeyword',\n 'images',\n 'numberTitle',\n 'metaDescriptionKeyword',\n 'relatedKeywords'\n];\n"],"mappings":";;;;;;AAAO,MAAMA,KAAK,GAAAC,OAAA,CAAAD,KAAA,GAAG,GAAG;AACjB,MAAME,YAAY,GAAAD,OAAA,CAAAC,YAAA,GAAG;EAC1BC,IAAI,EAAE,CAAC;EACPC,MAAM,EAAE,IAAI;EACZC,GAAG,EAAE;AACP,CAAC;AACM,MAAMC,UAAU,GAAAL,OAAA,CAAAK,UAAA,GAAG;EACxBC,IAAI,EAAE,CAAC;EACPC,OAAO,EAAE,GAAG;EACZC,GAAG,EAAE;AACP,CAAC;AAEM,MAAMC,oBAAoB,GAAAT,OAAA,CAAAS,oBAAA,GAAG,CAClC,UAAU,EACV,uBAAuB,EACvB,WAAW,EACX,eAAe,EACf,eAAe,EACf,YAAY,EACZ,YAAY,EACZ,QAAQ,EACR,aAAa,CACd;AAEM,MAAMC,kBAAkB,GAAAV,OAAA,CAAAU,kBAAA,GAAG,CAChC,qBAAqB,EACrB,oBAAoB,EACpB,oBAAoB,EACpB,YAAY,EACZ,cAAc,EACd,iBAAiB,EACjB,qBAAqB,EACrB,kBAAkB,EAClB,aAAa,EACb,WAAW,EACX,sBAAsB,EACtB,oBAAoB,EACpB,QAAQ,EACR,aAAa,EACb,wBAAwB,EACxB,iBAAiB,CAClB","ignoreList":[]}
@@ -15,7 +15,7 @@ class AvadaAssessor {
15
15
  * @param {Researcher} researcher The researcher to use.
16
16
  * @param {Object} [config] The assessor config.
17
17
  */
18
- constructor(researcher, config) {
18
+ constructor(researcher, config = {}) {
19
19
  const seoAssessor = new _index.SEOAssessor(researcher, config);
20
20
  const contentAssessor = new _index.ContentAssessor(researcher, config);
21
21
  this.seoAssessor = seoAssessor;
@@ -1 +1 @@
1
- {"version":3,"file":"avadaAssessor.js","names":["_index","require","_helpers","AvadaAssessor","constructor","researcher","config","seoAssessor","SEOAssessor","contentAssessor","ContentAssessor","assess","paper","i18n","assessments","results","map","assessment","body","status","score","title","getResult","groupBy","getScore","groupAssessmentsByCategory","groupAssessmentsByStatus","point","forEach","maxPoint","getMaxPoint","Math","round","exports","default"],"sources":["../../../src/scoring/assessors/avadaAssessor.js"],"sourcesContent":["import {ContentAssessor, SEOAssessor} from '@axyseo/scoring/assessors/index';\nimport {getMaxPoint, groupAssessmentsByCategory, groupAssessmentsByStatus} from '../helpers';\n\n/**\n * The AvadaAssessor class is used for the general SEO analysis.\n */\nexport default class AvadaAssessor {\n /**\n * Creates a new AvadaAssessor instance.\n * @param {Researcher} researcher The researcher to use.\n * @param {Object} [config] The assessor config.\n */\n constructor(researcher, config) {\n const seoAssessor = new SEOAssessor(researcher, config);\n const contentAssessor = new ContentAssessor(researcher, config);\n this.seoAssessor = seoAssessor;\n this.contentAssessor = contentAssessor;\n this.researcher = researcher;\n this.config = config;\n }\n\n assess(paper, i18n) {\n this.seoAssessor.assess(paper, i18n);\n this.contentAssessor.assess(paper, i18n);\n\n let assessments = [...this.seoAssessor.results, ...this.contentAssessor.results];\n assessments = assessments.map(assessment => ({\n ...assessment.config,\n body: assessment.body,\n status: assessment.status,\n score: assessment.score,\n title: assessment.title || assessment.config.title\n }));\n this.assessments = assessments;\n }\n\n getResult(groupBy = 'category', getScore = true) {\n let assessments = [];\n switch (groupBy) {\n case 'category':\n assessments = groupAssessmentsByCategory(this.assessments);\n break;\n case 'status':\n assessments = groupAssessmentsByStatus(this.assessments);\n break;\n }\n\n return {\n assessments,\n ...(getScore ? {score: this.getScore()} : {})\n };\n }\n\n getScore() {\n let point = 0;\n\n this.assessments.forEach(assessment => {\n point += assessment.score;\n });\n\n const maxPoint = getMaxPoint(this.assessments);\n return Math.round((point * 100) / maxPoint);\n }\n}\n"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AACA,IAAAC,QAAA,GAAAD,OAAA;AAEA;AACA;AACA;AACe,MAAME,aAAa,CAAC;EACjC;AACF;AACA;AACA;AACA;EACEC,WAAWA,CAACC,UAAU,EAAEC,MAAM,EAAE;IAC9B,MAAMC,WAAW,GAAG,IAAIC,kBAAW,CAACH,UAAU,EAAEC,MAAM,CAAC;IACvD,MAAMG,eAAe,GAAG,IAAIC,sBAAe,CAACL,UAAU,EAAEC,MAAM,CAAC;IAC/D,IAAI,CAACC,WAAW,GAAGA,WAAW;IAC9B,IAAI,CAACE,eAAe,GAAGA,eAAe;IACtC,IAAI,CAACJ,UAAU,GAAGA,UAAU;IAC5B,IAAI,CAACC,MAAM,GAAGA,MAAM;EACtB;EAEAK,MAAMA,CAACC,KAAK,EAAEC,IAAI,EAAE;IAClB,IAAI,CAACN,WAAW,CAACI,MAAM,CAACC,KAAK,EAAEC,IAAI,CAAC;IACpC,IAAI,CAACJ,eAAe,CAACE,MAAM,CAACC,KAAK,EAAEC,IAAI,CAAC;IAExC,IAAIC,WAAW,GAAG,CAAC,GAAG,IAAI,CAACP,WAAW,CAACQ,OAAO,EAAE,GAAG,IAAI,CAACN,eAAe,CAACM,OAAO,CAAC;IAChFD,WAAW,GAAGA,WAAW,CAACE,GAAG,CAACC,UAAU,KAAK;MAC3C,GAAGA,UAAU,CAACX,MAAM;MACpBY,IAAI,EAAED,UAAU,CAACC,IAAI;MACrBC,MAAM,EAAEF,UAAU,CAACE,MAAM;MACzBC,KAAK,EAAEH,UAAU,CAACG,KAAK;MACvBC,KAAK,EAAEJ,UAAU,CAACI,KAAK,IAAIJ,UAAU,CAACX,MAAM,CAACe;IAC/C,CAAC,CAAC,CAAC;IACH,IAAI,CAACP,WAAW,GAAGA,WAAW;EAChC;EAEAQ,SAASA,CAACC,OAAO,GAAG,UAAU,EAAEC,QAAQ,GAAG,IAAI,EAAE;IAC/C,IAAIV,WAAW,GAAG,EAAE;IACpB,QAAQS,OAAO;MACb,KAAK,UAAU;QACbT,WAAW,GAAG,IAAAW,mCAA0B,EAAC,IAAI,CAACX,WAAW,CAAC;QAC1D;MACF,KAAK,QAAQ;QACXA,WAAW,GAAG,IAAAY,iCAAwB,EAAC,IAAI,CAACZ,WAAW,CAAC;QACxD;IACJ;IAEA,OAAO;MACLA,WAAW;MACX,IAAIU,QAAQ,GAAG;QAACJ,KAAK,EAAE,IAAI,CAACI,QAAQ,CAAC;MAAC,CAAC,GAAG,CAAC,CAAC;IAC9C,CAAC;EACH;EAEAA,QAAQA,CAAA,EAAG;IACT,IAAIG,KAAK,GAAG,CAAC;IAEb,IAAI,CAACb,WAAW,CAACc,OAAO,CAACX,UAAU,IAAI;MACrCU,KAAK,IAAIV,UAAU,CAACG,KAAK;IAC3B,CAAC,CAAC;IAEF,MAAMS,QAAQ,GAAG,IAAAC,oBAAW,EAAC,IAAI,CAAChB,WAAW,CAAC;IAC9C,OAAOiB,IAAI,CAACC,KAAK,CAAEL,KAAK,GAAG,GAAG,GAAIE,QAAQ,CAAC;EAC7C;AACF;AAACI,OAAA,CAAAC,OAAA,GAAA/B,aAAA","ignoreList":[]}
1
+ {"version":3,"file":"avadaAssessor.js","names":["_index","require","_helpers","AvadaAssessor","constructor","researcher","config","seoAssessor","SEOAssessor","contentAssessor","ContentAssessor","assess","paper","i18n","assessments","results","map","assessment","body","status","score","title","getResult","groupBy","getScore","groupAssessmentsByCategory","groupAssessmentsByStatus","point","forEach","maxPoint","getMaxPoint","Math","round","exports","default"],"sources":["../../../src/scoring/assessors/avadaAssessor.js"],"sourcesContent":["import {ContentAssessor, SEOAssessor} from '@axyseo/scoring/assessors/index';\nimport {getMaxPoint, groupAssessmentsByCategory, groupAssessmentsByStatus} from '../helpers';\n\n/**\n * The AvadaAssessor class is used for the general SEO analysis.\n */\nexport default class AvadaAssessor {\n /**\n * Creates a new AvadaAssessor instance.\n * @param {Researcher} researcher The researcher to use.\n * @param {Object} [config] The assessor config.\n */\n constructor(researcher, config = {}) {\n const seoAssessor = new SEOAssessor(researcher, config);\n const contentAssessor = new ContentAssessor(researcher, config);\n this.seoAssessor = seoAssessor;\n this.contentAssessor = contentAssessor;\n this.researcher = researcher;\n this.config = config;\n }\n\n assess(paper, i18n) {\n this.seoAssessor.assess(paper, i18n);\n this.contentAssessor.assess(paper, i18n);\n\n let assessments = [...this.seoAssessor.results, ...this.contentAssessor.results];\n assessments = assessments.map(assessment => ({\n ...assessment.config,\n body: assessment.body,\n status: assessment.status,\n score: assessment.score,\n title: assessment.title || assessment.config.title\n }));\n this.assessments = assessments;\n }\n\n getResult(groupBy = 'category', getScore = true) {\n let assessments = [];\n switch (groupBy) {\n case 'category':\n assessments = groupAssessmentsByCategory(this.assessments);\n break;\n case 'status':\n assessments = groupAssessmentsByStatus(this.assessments);\n break;\n }\n\n return {\n assessments,\n ...(getScore ? {score: this.getScore()} : {})\n };\n }\n\n getScore() {\n let point = 0;\n\n this.assessments.forEach(assessment => {\n point += assessment.score;\n });\n\n const maxPoint = getMaxPoint(this.assessments);\n return Math.round((point * 100) / maxPoint);\n }\n}\n"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AACA,IAAAC,QAAA,GAAAD,OAAA;AAEA;AACA;AACA;AACe,MAAME,aAAa,CAAC;EACjC;AACF;AACA;AACA;AACA;EACEC,WAAWA,CAACC,UAAU,EAAEC,MAAM,GAAG,CAAC,CAAC,EAAE;IACnC,MAAMC,WAAW,GAAG,IAAIC,kBAAW,CAACH,UAAU,EAAEC,MAAM,CAAC;IACvD,MAAMG,eAAe,GAAG,IAAIC,sBAAe,CAACL,UAAU,EAAEC,MAAM,CAAC;IAC/D,IAAI,CAACC,WAAW,GAAGA,WAAW;IAC9B,IAAI,CAACE,eAAe,GAAGA,eAAe;IACtC,IAAI,CAACJ,UAAU,GAAGA,UAAU;IAC5B,IAAI,CAACC,MAAM,GAAGA,MAAM;EACtB;EAEAK,MAAMA,CAACC,KAAK,EAAEC,IAAI,EAAE;IAClB,IAAI,CAACN,WAAW,CAACI,MAAM,CAACC,KAAK,EAAEC,IAAI,CAAC;IACpC,IAAI,CAACJ,eAAe,CAACE,MAAM,CAACC,KAAK,EAAEC,IAAI,CAAC;IAExC,IAAIC,WAAW,GAAG,CAAC,GAAG,IAAI,CAACP,WAAW,CAACQ,OAAO,EAAE,GAAG,IAAI,CAACN,eAAe,CAACM,OAAO,CAAC;IAChFD,WAAW,GAAGA,WAAW,CAACE,GAAG,CAACC,UAAU,KAAK;MAC3C,GAAGA,UAAU,CAACX,MAAM;MACpBY,IAAI,EAAED,UAAU,CAACC,IAAI;MACrBC,MAAM,EAAEF,UAAU,CAACE,MAAM;MACzBC,KAAK,EAAEH,UAAU,CAACG,KAAK;MACvBC,KAAK,EAAEJ,UAAU,CAACI,KAAK,IAAIJ,UAAU,CAACX,MAAM,CAACe;IAC/C,CAAC,CAAC,CAAC;IACH,IAAI,CAACP,WAAW,GAAGA,WAAW;EAChC;EAEAQ,SAASA,CAACC,OAAO,GAAG,UAAU,EAAEC,QAAQ,GAAG,IAAI,EAAE;IAC/C,IAAIV,WAAW,GAAG,EAAE;IACpB,QAAQS,OAAO;MACb,KAAK,UAAU;QACbT,WAAW,GAAG,IAAAW,mCAA0B,EAAC,IAAI,CAACX,WAAW,CAAC;QAC1D;MACF,KAAK,QAAQ;QACXA,WAAW,GAAG,IAAAY,iCAAwB,EAAC,IAAI,CAACZ,WAAW,CAAC;QACxD;IACJ;IAEA,OAAO;MACLA,WAAW;MACX,IAAIU,QAAQ,GAAG;QAACJ,KAAK,EAAE,IAAI,CAACI,QAAQ,CAAC;MAAC,CAAC,GAAG,CAAC,CAAC;IAC9C,CAAC;EACH;EAEAA,QAAQA,CAAA,EAAG;IACT,IAAIG,KAAK,GAAG,CAAC;IAEb,IAAI,CAACb,WAAW,CAACc,OAAO,CAACX,UAAU,IAAI;MACrCU,KAAK,IAAIV,UAAU,CAACG,KAAK;IAC3B,CAAC,CAAC;IAEF,MAAMS,QAAQ,GAAG,IAAAC,oBAAW,EAAC,IAAI,CAAChB,WAAW,CAAC;IAC9C,OAAOiB,IAAI,CAACC,KAAK,CAAEL,KAAK,GAAG,GAAG,GAAIE,QAAQ,CAAC;EAC7C;AACF;AAACI,OAAA,CAAAC,OAAA,GAAA/B,aAAA","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"contentAssessor.js","names":["_lodash","require","_assessor","_interopRequireDefault","_ParagraphTooLongAssessment","_SentenceLengthInTextAssessment","_SentenceBeginningsAssessment","_TransitionWordsAssessment","_scoreToRating","_RelatedKeywordsAssessment","e","__esModule","default","ContentAssessor","Assessor","constructor","researcher","config","type","_assessments","ParagraphTooLong","SentenceLengthInText","TransitionWords","SentenceBeginnings","RelatedKeywordsAssessment","calculatePenaltyPointsFullSupport","rating","calculatePenaltyPointsPartialSupport","_allAssessmentsSupported","numberOfAssessments","length","applicableAssessments","getApplicableAssessments","calculatePenaltyPoints","results","getValidResults","penaltyPoints","map","result","scoreToRating","getScore","bind","sum","_ratePenaltyPoints","totalPenaltyPoints","calculateOverallScore","exports"],"sources":["../../../src/scoring/assessors/contentAssessor.js"],"sourcesContent":["import {map, sum} from 'lodash';\nimport Assessor from './assessor.js';\nimport ParagraphTooLong from '../assessments/readability/ParagraphTooLongAssessment.js';\nimport SentenceLengthInText from '../assessments/readability/SentenceLengthInTextAssessment.js';\nimport SentenceBeginnings from '../assessments/readability/SentenceBeginningsAssessment.js';\nimport TransitionWords from '../assessments/readability/TransitionWordsAssessment.js';\nimport scoreToRating from '../interpreters/scoreToRating.js';\nimport RelatedKeywordsAssessment from '@axyseo/scoring/assessments/readability/RelatedKeywordsAssessment';\n\n/**\n * The ContentAssessor class is used for the readability analysis.\n */\nexport default class ContentAssessor extends Assessor {\n /**\n * Creates a new ContentAssessor instance.\n * @param {Researcher}\tresearcher\tThe researcher to use.\n * @param {Object}\t\t[config]\tThe assessor config.\n */\n constructor(researcher, config) {\n super(researcher, config);\n this.type = 'contentAssessor';\n\n this._assessments = [\n new ParagraphTooLong(),\n new SentenceLengthInText(),\n new TransitionWords(),\n new SentenceBeginnings(),\n new RelatedKeywordsAssessment()\n ];\n }\n\n /**\n * Calculates the weighted rating for languages that have all assessments based on a given rating.\n *\n * @param {string} rating The rating to be weighted.\n * @returns {number} The weighted rating.\n */\n calculatePenaltyPointsFullSupport(rating) {\n switch (rating) {\n case 'bad':\n return 3;\n case 'ok':\n return 2;\n default:\n case 'good':\n return 0;\n }\n }\n\n /**\n * Calculates the weighted rating for languages that don't have all assessments based on a given rating.\n *\n * @param {string} rating The rating to be weighted.\n * @returns {number} The weighted rating.\n */\n calculatePenaltyPointsPartialSupport(rating) {\n switch (rating) {\n case 'bad':\n return 4;\n case 'ok':\n return 2;\n default:\n case 'good':\n return 0;\n }\n }\n\n /**\n * Determines whether a language is fully supported. If a language supports 7 content assessments,\n * it is fully supported\n *\n * @returns {boolean} True if fully supported.\n */\n _allAssessmentsSupported() {\n const numberOfAssessments = this._assessments.length;\n const applicableAssessments = this.getApplicableAssessments();\n return applicableAssessments.length === numberOfAssessments;\n }\n\n /**\n * Calculates the penalty points based on the assessment results.\n *\n * @returns {number} The total penalty points for the results.\n */\n calculatePenaltyPoints() {\n const results = this.getValidResults();\n\n const penaltyPoints = map(\n results,\n function(result) {\n const rating = scoreToRating(result.getScore());\n\n if (this._allAssessmentsSupported()) {\n return this.calculatePenaltyPointsFullSupport(rating);\n }\n\n return this.calculatePenaltyPointsPartialSupport(rating);\n }.bind(this)\n );\n\n return sum(penaltyPoints);\n }\n\n /**\n * Rates the penalty points\n *\n * @param {number} totalPenaltyPoints The amount of penalty points.\n * @returns {number} The score based on the amount of penalty points.\n *\n * @private\n */\n _ratePenaltyPoints(totalPenaltyPoints) {\n if (this.getValidResults().length === 1) {\n // If we have only 1 result, we only have a \"no content\" result\n return 30;\n }\n\n if (this._allAssessmentsSupported()) {\n // Determine the total score based on the total penalty points.\n if (totalPenaltyPoints > 6) {\n // A red indicator.\n return 30;\n }\n\n if (totalPenaltyPoints > 4) {\n // An orange indicator.\n return 60;\n }\n } else {\n if (totalPenaltyPoints > 4) {\n // A red indicator.\n return 30;\n }\n\n if (totalPenaltyPoints > 2) {\n // An orange indicator.\n return 60;\n }\n }\n // A green indicator.\n return 90;\n }\n\n /**\n * Calculates the overall score based on the assessment results.\n *\n * @returns {number} The overall score.\n */\n calculateOverallScore() {\n const results = this.getValidResults();\n\n // If you have no content, you have a red indicator.\n if (results.length === 0) {\n return 30;\n }\n\n const totalPenaltyPoints = this.calculatePenaltyPoints();\n\n return this._ratePenaltyPoints(totalPenaltyPoints);\n }\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"contentAssessor.js","names":["_lodash","require","_assessor","_interopRequireDefault","_ParagraphTooLongAssessment","_SentenceLengthInTextAssessment","_SentenceBeginningsAssessment","_TransitionWordsAssessment","_scoreToRating","_RelatedKeywordsAssessment","e","__esModule","default","ContentAssessor","Assessor","constructor","researcher","config","type","_assessments","ParagraphTooLong","SentenceLengthInText","TransitionWords","SentenceBeginnings","RelatedKeywordsAssessment","calculatePenaltyPointsFullSupport","rating","calculatePenaltyPointsPartialSupport","_allAssessmentsSupported","numberOfAssessments","length","applicableAssessments","getApplicableAssessments","calculatePenaltyPoints","results","getValidResults","penaltyPoints","map","result","scoreToRating","getScore","bind","sum","_ratePenaltyPoints","totalPenaltyPoints","calculateOverallScore","exports"],"sources":["../../../src/scoring/assessors/contentAssessor.js"],"sourcesContent":["import {map, sum} from 'lodash';\nimport Assessor from './assessor.js';\nimport ParagraphTooLong from '../assessments/readability/ParagraphTooLongAssessment.js';\nimport SentenceLengthInText from '../assessments/readability/SentenceLengthInTextAssessment.js';\nimport SentenceBeginnings from '../assessments/readability/SentenceBeginningsAssessment.js';\nimport TransitionWords from '../assessments/readability/TransitionWordsAssessment.js';\nimport scoreToRating from '../interpreters/scoreToRating.js';\nimport RelatedKeywordsAssessment from '../assessments/readability/RelatedKeywordsAssessment';\n\n/**\n * The ContentAssessor class is used for the readability analysis.\n */\nexport default class ContentAssessor extends Assessor {\n /**\n * Creates a new ContentAssessor instance.\n * @param {Researcher}\tresearcher\tThe researcher to use.\n * @param {Object}\t\t[config]\tThe assessor config.\n */\n constructor(researcher, config) {\n super(researcher, config);\n this.type = 'contentAssessor';\n\n this._assessments = [\n new ParagraphTooLong(),\n new SentenceLengthInText(),\n new TransitionWords(),\n new SentenceBeginnings(),\n new RelatedKeywordsAssessment()\n ];\n }\n\n /**\n * Calculates the weighted rating for languages that have all assessments based on a given rating.\n *\n * @param {string} rating The rating to be weighted.\n * @returns {number} The weighted rating.\n */\n calculatePenaltyPointsFullSupport(rating) {\n switch (rating) {\n case 'bad':\n return 3;\n case 'ok':\n return 2;\n default:\n case 'good':\n return 0;\n }\n }\n\n /**\n * Calculates the weighted rating for languages that don't have all assessments based on a given rating.\n *\n * @param {string} rating The rating to be weighted.\n * @returns {number} The weighted rating.\n */\n calculatePenaltyPointsPartialSupport(rating) {\n switch (rating) {\n case 'bad':\n return 4;\n case 'ok':\n return 2;\n default:\n case 'good':\n return 0;\n }\n }\n\n /**\n * Determines whether a language is fully supported. If a language supports 7 content assessments,\n * it is fully supported\n *\n * @returns {boolean} True if fully supported.\n */\n _allAssessmentsSupported() {\n const numberOfAssessments = this._assessments.length;\n const applicableAssessments = this.getApplicableAssessments();\n return applicableAssessments.length === numberOfAssessments;\n }\n\n /**\n * Calculates the penalty points based on the assessment results.\n *\n * @returns {number} The total penalty points for the results.\n */\n calculatePenaltyPoints() {\n const results = this.getValidResults();\n\n const penaltyPoints = map(\n results,\n function(result) {\n const rating = scoreToRating(result.getScore());\n\n if (this._allAssessmentsSupported()) {\n return this.calculatePenaltyPointsFullSupport(rating);\n }\n\n return this.calculatePenaltyPointsPartialSupport(rating);\n }.bind(this)\n );\n\n return sum(penaltyPoints);\n }\n\n /**\n * Rates the penalty points\n *\n * @param {number} totalPenaltyPoints The amount of penalty points.\n * @returns {number} The score based on the amount of penalty points.\n *\n * @private\n */\n _ratePenaltyPoints(totalPenaltyPoints) {\n if (this.getValidResults().length === 1) {\n // If we have only 1 result, we only have a \"no content\" result\n return 30;\n }\n\n if (this._allAssessmentsSupported()) {\n // Determine the total score based on the total penalty points.\n if (totalPenaltyPoints > 6) {\n // A red indicator.\n return 30;\n }\n\n if (totalPenaltyPoints > 4) {\n // An orange indicator.\n return 60;\n }\n } else {\n if (totalPenaltyPoints > 4) {\n // A red indicator.\n return 30;\n }\n\n if (totalPenaltyPoints > 2) {\n // An orange indicator.\n return 60;\n }\n }\n // A green indicator.\n return 90;\n }\n\n /**\n * Calculates the overall score based on the assessment results.\n *\n * @returns {number} The overall score.\n */\n calculateOverallScore() {\n const results = this.getValidResults();\n\n // If you have no content, you have a red indicator.\n if (results.length === 0) {\n return 30;\n }\n\n const totalPenaltyPoints = this.calculatePenaltyPoints();\n\n return this._ratePenaltyPoints(totalPenaltyPoints);\n }\n}\n"],"mappings":"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","ignoreList":[]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "axyseo",
3
- "version": "2.0.0-alpha.0.0.28",
3
+ "version": "2.0.0-alpha.0.0.28.2",
4
4
  "main": "build/index.js",
5
5
  "scripts": {
6
6
  "build": "yarn clean && yarn build:js && yarn build:types",