@lexical/table 0.12.4 → 0.12.5

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.
@@ -1475,8 +1475,8 @@ function $insertTableRow(tableNode, targetIndex, shouldInsertAfter = true, rowCo
1475
1475
  }
1476
1476
  function $insertTableRow__EXPERIMENTAL(insertAfter = true) {
1477
1477
  const selection = lexical.$getSelection();
1478
- if (!(lexical.$isRangeSelection(selection) || lexical.DEPRECATED_$isGridSelection(selection))) {
1479
- throw Error(`Expected a RangeSelection or GridSelection`);
1478
+ if (!lexical.$INTERNAL_isPointSelection(selection)) {
1479
+ throw Error(`Expected a INTERNAL_PointSelection`);
1480
1480
  }
1481
1481
  const focus = selection.focus.getNode();
1482
1482
  const [focusCell,, grid] = lexical.DEPRECATED_$getNodeTriplet(focus);
@@ -1572,8 +1572,8 @@ function $insertTableColumn(tableNode, targetIndex, shouldInsertAfter = true, co
1572
1572
  }
1573
1573
  function $insertTableColumn__EXPERIMENTAL(insertAfter = true) {
1574
1574
  const selection = lexical.$getSelection();
1575
- if (!(lexical.$isRangeSelection(selection) || lexical.DEPRECATED_$isGridSelection(selection))) {
1576
- throw Error(`Expected a RangeSelection or GridSelection`);
1575
+ if (!lexical.$INTERNAL_isPointSelection(selection)) {
1576
+ throw Error(`Expected a PointSeleciton`);
1577
1577
  }
1578
1578
  const anchor = selection.anchor.getNode();
1579
1579
  const focus = selection.focus.getNode();
@@ -1657,8 +1657,8 @@ function $deleteTableColumn(tableNode, targetIndex) {
1657
1657
  }
1658
1658
  function $deleteTableRow__EXPERIMENTAL() {
1659
1659
  const selection = lexical.$getSelection();
1660
- if (!(lexical.$isRangeSelection(selection) || lexical.DEPRECATED_$isGridSelection(selection))) {
1661
- throw Error(`Expected a RangeSelection or GridSelection`);
1660
+ if (!lexical.$INTERNAL_isPointSelection(selection)) {
1661
+ throw Error(`Expected a INTERNAL_PointSelection`);
1662
1662
  }
1663
1663
  const anchor = selection.anchor.getNode();
1664
1664
  const focus = selection.focus.getNode();
@@ -1732,8 +1732,8 @@ function $deleteTableRow__EXPERIMENTAL() {
1732
1732
  }
1733
1733
  function $deleteTableColumn__EXPERIMENTAL() {
1734
1734
  const selection = lexical.$getSelection();
1735
- if (!(lexical.$isRangeSelection(selection) || lexical.DEPRECATED_$isGridSelection(selection))) {
1736
- throw Error(`Expected a RangeSelection or GridSelection`);
1735
+ if (!lexical.$INTERNAL_isPointSelection(selection)) {
1736
+ throw Error(`Expected a INTERNAL_PointSelection`);
1737
1737
  }
1738
1738
  const anchor = selection.anchor.getNode();
1739
1739
  const focus = selection.focus.getNode();
@@ -1816,8 +1816,8 @@ function $insertFirst(parent, node) {
1816
1816
  }
1817
1817
  function $unmergeCell() {
1818
1818
  const selection = lexical.$getSelection();
1819
- if (!(lexical.$isRangeSelection(selection) || lexical.DEPRECATED_$isGridSelection(selection))) {
1820
- throw Error(`Expected a RangeSelection or GridSelection`);
1819
+ if (!lexical.$INTERNAL_isPointSelection(selection)) {
1820
+ throw Error(`Expected a INTERNAL_PointSelection`);
1821
1821
  }
1822
1822
  const anchor = selection.anchor.getNode();
1823
1823
  const [cell, row, grid] = lexical.DEPRECATED_$getNodeTriplet(anchor);
@@ -44,21 +44,22 @@ return a}canSelectBefore(){return!0}canIndent(){return!1}}function ja(){return{n
44
44
  function ka(a,b){let c=X(a),{x:e,y:g}=c.getCordsFromCellNode(a,b);return{above:c.getCellNodeFromCords(e,g-1,b),below:c.getCellNodeFromCords(e,g+1,b),left:c.getCellNodeFromCords(e-1,g,b),right:c.getCellNodeFromCords(e+1,g,b)}}function Y(a){let b=a.getFirstDescendant();null==b?a.selectStart():b.getParentOrThrow().selectStart()}function Z(a,b){let c=a.getFirstChild();null!==c?c.insertBefore(b):a.append(b)}let la=d.createCommand("INSERT_TABLE_COMMAND");exports.$createTableCellNode=B;
45
45
  exports.$createTableNode=U;exports.$createTableNodeWithDimensions=function(a,b,c=!0){let e=U();for(let k=0;k<a;k++){let f=E();for(let m=0;m<b;m++){var g=x.NO_STATUS;"object"===typeof c?(0===k&&c.rows&&(g|=x.ROW),0===m&&c.columns&&(g|=x.COLUMN)):c&&(0===k&&(g|=x.ROW),0===m&&(g|=x.COLUMN));g=B(g);let p=d.$createParagraphNode();p.append(d.$createTextNode());g.append(p);f.append(g)}e.append(f)}return e};exports.$createTableRowNode=E;
46
46
  exports.$deleteTableColumn=function(a,b){let c=a.getChildren();for(let g=0;g<c.length;g++){var e=c[g];if(F(e)){e=e.getChildren();if(b>=e.length||0>b)throw Error("Table column target index out of range");e[b].remove()}}return a};
47
- exports.$deleteTableColumn__EXPERIMENTAL=function(){var a=d.$getSelection();d.$isRangeSelection(a)||d.DEPRECATED_$isGridSelection(a)||G(118);var b=a.anchor.getNode();a=a.focus.getNode();let [c,,e]=d.DEPRECATED_$getNodeTriplet(b);[b]=d.DEPRECATED_$getNodeTriplet(a);let [g,k,f]=d.DEPRECATED_$computeGridMap(e,c,b);var {startColumn:m}=k;let {startRow:p,startColumn:r}=f;a=Math.min(m,r);m=Math.max(m+c.__colSpan-1,r+b.__colSpan-1);let h=m-a+1;if(g[0].length===m-a+1)e.selectPrevious(),e.remove();else{var l=
48
- g.length;for(let n=0;n<l;n++)for(let q=a;q<=m;q++){let {cell:v,startColumn:u}=g[n][q];u<a?q===a&&v.setColSpan(v.__colSpan-Math.min(h,v.__colSpan-(a-u))):u+v.__colSpan-1>m?q===m&&v.setColSpan(v.__colSpan-(m-u+1)):v.remove()}a=g[p];b=a[r+b.__colSpan];void 0!==b?({cell:b}=b,Y(b)):({cell:b}=a[r-1],Y(b))}};
49
- exports.$deleteTableRow__EXPERIMENTAL=function(){var a=d.$getSelection();d.$isRangeSelection(a)||d.DEPRECATED_$isGridSelection(a)||G(118);var b=a.anchor.getNode();a=a.focus.getNode();let [c,,e]=d.DEPRECATED_$getNodeTriplet(b);[a]=d.DEPRECATED_$getNodeTriplet(a);let [g,k,f]=d.DEPRECATED_$computeGridMap(e,c,a);({startRow:b}=k);var {startRow:m}=f;a=m+a.__rowSpan-1;if(g.length===a-b+1)e.remove();else{m=g[0].length;var p=g[a+1],r=e.getChildAtIndex(a+1);for(let l=a;l>=b;l--){for(var h=m-1;0<=h;h--){let {cell:n,
50
- startRow:q,startColumn:v}=g[l][h];if(v===h&&(l===b&&q<b&&n.setRowSpan(n.__rowSpan-(q-b)),q>=b&&q+n.__rowSpan-1>a))if(n.setRowSpan(n.__rowSpan-(a-q+1)),null===r&&G(122),0===h)Z(r,n);else{let {cell:u}=p[h-1];u.insertAfter(n)}}h=e.getChildAtIndex(l);d.DEPRECATED_$isGridRowNode(h)||G(123,String(l));h.remove()}void 0!==p?({cell:b}=p[0],Y(b)):({cell:b}=g[b-1][0],Y(b))}};exports.$getElementGridForTableNode=function(a,b){a=a.getElementByKey(b.getKey());if(null==a)throw Error("Table Element Not Found");return I(a)};
51
- exports.$getTableCellNodeFromLexicalNode=function(a){a=t.$findMatchingParent(a,b=>C(b));return C(a)?a:null};exports.$getTableColumnIndexFromTableCellNode=function(a){return V(a).getChildren().findIndex(b=>b.is(a))};exports.$getTableNodeFromLexicalNodeOrThrow=X;exports.$getTableRowIndexFromTableCellNode=function(a){let b=V(a);return X(b).getChildren().findIndex(c=>c.is(b))};exports.$getTableRowNodeFromTableCellNodeOrThrow=V;
47
+ exports.$deleteTableColumn__EXPERIMENTAL=function(){var a=d.$getSelection();if(!d.$INTERNAL_isPointSelection(a))throw Error("Expected a INTERNAL_PointSelection");var b=a.anchor.getNode();a=a.focus.getNode();let [c,,e]=d.DEPRECATED_$getNodeTriplet(b);[b]=d.DEPRECATED_$getNodeTriplet(a);let [g,k,f]=d.DEPRECATED_$computeGridMap(e,c,b);var {startColumn:m}=k;let {startRow:p,startColumn:r}=f;a=Math.min(m,r);m=Math.max(m+c.__colSpan-1,r+b.__colSpan-1);let h=m-a+1;if(g[0].length===m-a+1)e.selectPrevious(),
48
+ e.remove();else{var l=g.length;for(let n=0;n<l;n++)for(let q=a;q<=m;q++){let {cell:v,startColumn:u}=g[n][q];u<a?q===a&&v.setColSpan(v.__colSpan-Math.min(h,v.__colSpan-(a-u))):u+v.__colSpan-1>m?q===m&&v.setColSpan(v.__colSpan-(m-u+1)):v.remove()}a=g[p];b=a[r+b.__colSpan];void 0!==b?({cell:b}=b,Y(b)):({cell:b}=a[r-1],Y(b))}};
49
+ exports.$deleteTableRow__EXPERIMENTAL=function(){var a=d.$getSelection();if(!d.$INTERNAL_isPointSelection(a))throw Error("Expected a INTERNAL_PointSelection");var b=a.anchor.getNode();a=a.focus.getNode();let [c,,e]=d.DEPRECATED_$getNodeTriplet(b);[a]=d.DEPRECATED_$getNodeTriplet(a);let [g,k,f]=d.DEPRECATED_$computeGridMap(e,c,a);({startRow:b}=k);var {startRow:m}=f;a=m+a.__rowSpan-1;if(g.length===a-b+1)e.remove();else{m=g[0].length;var p=g[a+1],r=e.getChildAtIndex(a+1);for(let l=a;l>=b;l--){for(var h=
50
+ m-1;0<=h;h--){let {cell:n,startRow:q,startColumn:v}=g[l][h];if(v===h&&(l===b&&q<b&&n.setRowSpan(n.__rowSpan-(q-b)),q>=b&&q+n.__rowSpan-1>a))if(n.setRowSpan(n.__rowSpan-(a-q+1)),null===r&&G(122),0===h)Z(r,n);else{let {cell:u}=p[h-1];u.insertAfter(n)}}h=e.getChildAtIndex(l);d.DEPRECATED_$isGridRowNode(h)||G(123,String(l));h.remove()}void 0!==p?({cell:b}=p[0],Y(b)):({cell:b}=g[b-1][0],Y(b))}};
51
+ exports.$getElementGridForTableNode=function(a,b){a=a.getElementByKey(b.getKey());if(null==a)throw Error("Table Element Not Found");return I(a)};exports.$getTableCellNodeFromLexicalNode=function(a){a=t.$findMatchingParent(a,b=>C(b));return C(a)?a:null};exports.$getTableColumnIndexFromTableCellNode=function(a){return V(a).getChildren().findIndex(b=>b.is(a))};exports.$getTableNodeFromLexicalNodeOrThrow=X;
52
+ exports.$getTableRowIndexFromTableCellNode=function(a){let b=V(a);return X(b).getChildren().findIndex(c=>c.is(b))};exports.$getTableRowNodeFromTableCellNodeOrThrow=V;
52
53
  exports.$insertTableColumn=function(a,b,c=!0,e,g){let k=a.getChildren(),f=[];for(let r=0;r<k.length;r++){let h=k[r];if(F(h))for(let l=0;l<e;l++){var m=h.getChildren();if(b>=m.length||0>b)throw Error("Table column target index out of range");m=m[b];C(m)||G(12);let {left:n,right:q}=ka(m,g);var p=x.NO_STATUS;if(n&&n.hasHeaderState(x.ROW)||q&&q.hasHeaderState(x.ROW))p|=x.ROW;p=B(p);p.append(d.$createParagraphNode());f.push({newTableCell:p,targetCell:m})}}f.forEach(({newTableCell:r,targetCell:h})=>{c?
53
54
  h.insertAfter(r):h.insertBefore(r)});return a};
54
- exports.$insertTableColumn__EXPERIMENTAL=function(a=!0){function b(){let l=B(x.NO_STATUS).append(d.$createParagraphNode());null===r&&(r=l);return l}var c=d.$getSelection();d.$isRangeSelection(c)||d.DEPRECATED_$isGridSelection(c)||G(118);var e=c.anchor.getNode();c=c.focus.getNode();[e]=d.DEPRECATED_$getNodeTriplet(e);let [g,,k]=d.DEPRECATED_$getNodeTriplet(c),[f,m,p]=d.DEPRECATED_$computeGridMap(k,g,e);e=f.length;c=a?Math.max(m.startColumn,p.startColumn):Math.min(m.startColumn,p.startColumn);a=a?c+
55
- g.__colSpan-1:c-1;c=k.getFirstChild();d.DEPRECATED_$isGridRowNode(c)||G(120);let r=null;var h=c;a:for(c=0;c<e;c++){0!==c&&(h=h.getNextSibling(),d.DEPRECATED_$isGridRowNode(h)||G(121));let l=f[c];if(0>a){Z(h,b());continue}let {cell:n,startColumn:q,startRow:v}=l[a];if(q+n.__colSpan-1<=a){let u=n,A=v,J=a;for(;A!==c&&1<u.__rowSpan;)if(J-=n.__colSpan,0<=J){let {cell:W,startRow:ma}=l[J];u=W;A=ma}else{h.append(b());continue a}u.insertAfter(b())}else n.setColSpan(n.__colSpan+1)}null!==r&&Y(r)};
55
+ exports.$insertTableColumn__EXPERIMENTAL=function(a=!0){function b(){let l=B(x.NO_STATUS).append(d.$createParagraphNode());null===r&&(r=l);return l}var c=d.$getSelection();if(!d.$INTERNAL_isPointSelection(c))throw Error("Expected a PointSeleciton");var e=c.anchor.getNode();c=c.focus.getNode();[e]=d.DEPRECATED_$getNodeTriplet(e);let [g,,k]=d.DEPRECATED_$getNodeTriplet(c),[f,m,p]=d.DEPRECATED_$computeGridMap(k,g,e);e=f.length;c=a?Math.max(m.startColumn,p.startColumn):Math.min(m.startColumn,p.startColumn);
56
+ a=a?c+g.__colSpan-1:c-1;c=k.getFirstChild();d.DEPRECATED_$isGridRowNode(c)||G(120);let r=null;var h=c;a:for(c=0;c<e;c++){0!==c&&(h=h.getNextSibling(),d.DEPRECATED_$isGridRowNode(h)||G(121));let l=f[c];if(0>a){Z(h,b());continue}let {cell:n,startColumn:q,startRow:v}=l[a];if(q+n.__colSpan-1<=a){let u=n,A=v,J=a;for(;A!==c&&1<u.__rowSpan;)if(J-=n.__colSpan,0<=J){let {cell:W,startRow:ma}=l[J];u=W;A=ma}else{h.append(b());continue a}u.insertAfter(b())}else n.setColSpan(n.__colSpan+1)}null!==r&&Y(r)};
56
57
  exports.$insertTableRow=function(a,b,c=!0,e,g){var k=a.getChildren();if(b>=k.length||0>b)throw Error("Table row target index out of range");b=k[b];if(F(b))for(k=0;k<e;k++){let m=b.getChildren(),p=m.length,r=E();for(let h=0;h<p;h++){var f=m[h];C(f)||G(12);let {above:l,below:n}=ka(f,g);f=x.NO_STATUS;let q=l&&l.getWidth()||n&&n.getWidth()||void 0;if(l&&l.hasHeaderState(x.COLUMN)||n&&n.hasHeaderState(x.COLUMN))f|=x.COLUMN;f=B(f,1,q);f.append(d.$createParagraphNode());r.append(f)}c?b.insertAfter(r):b.insertBefore(r)}else throw Error("Row before insertion index does not exist.");
57
58
  return a};
58
- exports.$insertTableRow__EXPERIMENTAL=function(a=!0){var b=d.$getSelection();d.$isRangeSelection(b)||d.DEPRECATED_$isGridSelection(b)||G(118);b=b.focus.getNode();let [c,,e]=d.DEPRECATED_$getNodeTriplet(b),[g,k]=d.DEPRECATED_$computeGridMap(e,c,c);b=g[0].length;var {startRow:f}=k;if(a){a=f+c.__rowSpan-1;var m=g[a];f=E();for(var p=0;p<b;p++){let {cell:r,startRow:h}=m[p];h+r.__rowSpan-1<=a?f.append(B(x.NO_STATUS)):r.setRowSpan(r.__rowSpan+1)}b=e.getChildAtIndex(a);d.DEPRECATED_$isGridRowNode(b)||G(119);
59
+ exports.$insertTableRow__EXPERIMENTAL=function(a=!0){var b=d.$getSelection();if(!d.$INTERNAL_isPointSelection(b))throw Error("Expected a INTERNAL_PointSelection");b=b.focus.getNode();let [c,,e]=d.DEPRECATED_$getNodeTriplet(b),[g,k]=d.DEPRECATED_$computeGridMap(e,c,c);b=g[0].length;var {startRow:f}=k;if(a){a=f+c.__rowSpan-1;var m=g[a];f=E();for(var p=0;p<b;p++){let {cell:r,startRow:h}=m[p];h+r.__rowSpan-1<=a?f.append(B(x.NO_STATUS)):r.setRowSpan(r.__rowSpan+1)}b=e.getChildAtIndex(a);d.DEPRECATED_$isGridRowNode(b)||G(119);
59
60
  b.insertAfter(f)}else{m=g[f];a=E();for(p=0;p<b;p++){let {cell:r,startRow:h}=m[p];h===f?a.append(B(x.NO_STATUS)):r.setRowSpan(r.__rowSpan+1)}b=e.getChildAtIndex(f);d.DEPRECATED_$isGridRowNode(b)||G(119);b.insertBefore(a)}};exports.$isTableCellNode=C;exports.$isTableNode=K;exports.$isTableRowNode=F;exports.$removeTableRowAtIndex=function(a,b){let c=a.getChildren();if(b>=c.length||0>b)throw Error("Expected table cell to be inside of table row.");c[b].remove();return a};
60
- exports.$unmergeCell=function(){var a=d.$getSelection();d.$isRangeSelection(a)||d.DEPRECATED_$isGridSelection(a)||G(118);a=a.anchor.getNode();let [b,c,e]=d.DEPRECATED_$getNodeTriplet(a);a=b.__colSpan;let g=b.__rowSpan;if(1<a){for(var k=1;k<a;k++)b.insertAfter(B(x.NO_STATUS));b.setColSpan(1)}if(1<g){let [p,r]=d.DEPRECATED_$computeGridMap(e,b,b),{startColumn:h,startRow:l}=r,n;for(k=1;k<g;k++){var f=l+k;let q=p[f];n=(n||c).getNextSibling();d.DEPRECATED_$isGridRowNode(n)||G(125);var m=null;for(let v=
61
- 0;v<h;v++){let u=q[v],A=u.cell;u.startRow===f&&(m=A);1<A.__colSpan&&(v+=A.__colSpan-1)}if(null===m)for(m=0;m<a;m++)Z(n,B(x.NO_STATUS));else for(f=0;f<a;f++)m.insertAfter(B(x.NO_STATUS))}b.setRowSpan(1)}};exports.INSERT_TABLE_COMMAND=la;exports.TableCellHeaderStates=x;exports.TableCellNode=y;exports.TableNode=T;exports.TableRowNode=D;exports.TableSelection=H;
61
+ exports.$unmergeCell=function(){var a=d.$getSelection();if(!d.$INTERNAL_isPointSelection(a))throw Error("Expected a INTERNAL_PointSelection");a=a.anchor.getNode();let [b,c,e]=d.DEPRECATED_$getNodeTriplet(a);a=b.__colSpan;let g=b.__rowSpan;if(1<a){for(var k=1;k<a;k++)b.insertAfter(B(x.NO_STATUS));b.setColSpan(1)}if(1<g){let [p,r]=d.DEPRECATED_$computeGridMap(e,b,b),{startColumn:h,startRow:l}=r,n;for(k=1;k<g;k++){var f=l+k;let q=p[f];n=(n||c).getNextSibling();d.DEPRECATED_$isGridRowNode(n)||G(125);
62
+ var m=null;for(let v=0;v<h;v++){let u=q[v],A=u.cell;u.startRow===f&&(m=A);1<A.__colSpan&&(v+=A.__colSpan-1)}if(null===m)for(m=0;m<a;m++)Z(n,B(x.NO_STATUS));else for(f=0;f<a;f++)m.insertAfter(B(x.NO_STATUS))}b.setRowSpan(1)}};exports.INSERT_TABLE_COMMAND=la;exports.TableCellHeaderStates=x;exports.TableCellNode=y;exports.TableNode=T;exports.TableRowNode=D;exports.TableSelection=H;
62
63
  exports.applyTableHandlers=function(a,b,c,e){function g(h){h=a.getCordsFromCellNode(h,f.grid);return a.getCellFromCordsOrThrow(h.x,h.y,f.grid)}let k=c.getRootElement();if(null===k)throw Error("No root element.");let f=new H(c,a.getKey()),m=c._window||window;b.__lexicalTableSelection=f;b.addEventListener("mousedown",h=>{setTimeout(()=>{if(0===h.button&&m){var l=M(h.target);null!==l&&(S(h),f.setAnchorCellForSelection(l));var n=()=>{m.removeEventListener("mouseup",n);m.removeEventListener("mousemove",
63
64
  q)},q=v=>{const u=M(v.target);null===u||f.anchorX===u.x&&f.anchorY===u.y||(v.preventDefault(),f.setFocusCellForSelection(u))};m.addEventListener("mouseup",n);m.addEventListener("mousemove",q)}},0)});let p=h=>{0===h.button&&c.update(()=>{const l=d.$getSelection(),n=h.target;d.DEPRECATED_$isGridSelection(l)&&l.gridKey===f.tableNodeKey&&k.contains(n)&&f.clearHighlight()})};m.addEventListener("mousedown",p);f.listenersToRemove.add(()=>m.removeEventListener("mousedown",p));f.listenersToRemove.add(c.registerCommand(d.KEY_ARROW_DOWN_COMMAND,
64
65
  h=>R(c,h,"down",a,f),d.COMMAND_PRIORITY_HIGH));f.listenersToRemove.add(c.registerCommand(d.KEY_ARROW_UP_COMMAND,h=>R(c,h,"up",a,f),d.COMMAND_PRIORITY_HIGH));f.listenersToRemove.add(c.registerCommand(d.KEY_ARROW_LEFT_COMMAND,h=>R(c,h,"backward",a,f),d.COMMAND_PRIORITY_HIGH));f.listenersToRemove.add(c.registerCommand(d.KEY_ARROW_RIGHT_COMMAND,h=>R(c,h,"forward",a,f),d.COMMAND_PRIORITY_HIGH));f.listenersToRemove.add(c.registerCommand(d.KEY_ESCAPE_COMMAND,h=>{var l=d.$getSelection();return d.DEPRECATED_$isGridSelection(l)&&
package/package.json CHANGED
@@ -8,13 +8,13 @@
8
8
  "table"
9
9
  ],
10
10
  "license": "MIT",
11
- "version": "0.12.4",
11
+ "version": "0.12.5",
12
12
  "main": "LexicalTable.js",
13
13
  "peerDependencies": {
14
- "lexical": "0.12.4"
14
+ "lexical": "0.12.5"
15
15
  },
16
16
  "dependencies": {
17
- "@lexical/utils": "0.12.4"
17
+ "@lexical/utils": "0.12.5"
18
18
  },
19
19
  "repository": {
20
20
  "type": "git",