projen 0.99.59 → 0.99.61

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.
Files changed (157) hide show
  1. package/.jsii +5 -5
  2. package/lib/ai-instructions.js +2 -2
  3. package/lib/awscdk/auto-discover.js +6 -6
  4. package/lib/awscdk/awscdk-app-java.js +1 -1
  5. package/lib/awscdk/awscdk-app-py.js +1 -1
  6. package/lib/awscdk/awscdk-app-ts.js +1 -1
  7. package/lib/awscdk/awscdk-construct.js +2 -2
  8. package/lib/awscdk/awscdk-deps-java.js +1 -1
  9. package/lib/awscdk/awscdk-deps-js.js +1 -1
  10. package/lib/awscdk/awscdk-deps-py.js +1 -1
  11. package/lib/awscdk/awscdk-deps.js +1 -1
  12. package/lib/awscdk/cdk-config.js +4 -4
  13. package/lib/awscdk/cdk-tasks.js +1 -1
  14. package/lib/awscdk/integration-test.js +1 -1
  15. package/lib/awscdk/lambda-extension.js +1 -1
  16. package/lib/awscdk/lambda-function.js +2 -2
  17. package/lib/build/build-workflow.js +1 -1
  18. package/lib/cdk/auto-discover-base.js +2 -2
  19. package/lib/cdk/construct-lib.js +1 -1
  20. package/lib/cdk/integration-test-base.js +1 -1
  21. package/lib/cdk/jsii-docgen.js +1 -1
  22. package/lib/cdk/jsii-project.js +1 -1
  23. package/lib/cdk8s/auto-discover.js +2 -2
  24. package/lib/cdk8s/cdk8s-app-py.js +1 -1
  25. package/lib/cdk8s/cdk8s-app-ts.js +1 -1
  26. package/lib/cdk8s/cdk8s-construct.js +1 -1
  27. package/lib/cdk8s/cdk8s-deps-py.js +1 -1
  28. package/lib/cdk8s/cdk8s-deps.js +1 -1
  29. package/lib/cdk8s/integration-test.js +1 -1
  30. package/lib/cdktf/cdktf-construct.js +1 -1
  31. package/lib/circleci/circleci.js +1 -1
  32. package/lib/component.js +1 -1
  33. package/lib/dependencies.js +1 -1
  34. package/lib/dev-env.js +1 -1
  35. package/lib/docker-compose/docker-compose-service.js +1 -1
  36. package/lib/docker-compose/docker-compose.js +1 -1
  37. package/lib/file.js +1 -1
  38. package/lib/gitattributes.js +1 -1
  39. package/lib/github/actions-provider.js +1 -1
  40. package/lib/github/auto-approve.js +1 -1
  41. package/lib/github/auto-merge.js +1 -1
  42. package/lib/github/auto-queue.js +1 -1
  43. package/lib/github/dependabot.js +1 -1
  44. package/lib/github/dependency-review.js +1 -1
  45. package/lib/github/github-credentials.js +1 -1
  46. package/lib/github/github-project.js +1 -1
  47. package/lib/github/github.js +1 -1
  48. package/lib/github/merge-queue.js +1 -1
  49. package/lib/github/mergify.js +1 -1
  50. package/lib/github/pr-template.js +1 -1
  51. package/lib/github/pull-request-backport.js +1 -1
  52. package/lib/github/pull-request-lint.js +1 -1
  53. package/lib/github/stale.js +1 -1
  54. package/lib/github/task-workflow-job.js +1 -1
  55. package/lib/github/task-workflow.js +1 -1
  56. package/lib/github/workflow-actions.js +1 -1
  57. package/lib/github/workflow-jobs.js +1 -1
  58. package/lib/github/workflow-steps.js +1 -1
  59. package/lib/github/workflows.js +1 -1
  60. package/lib/gitlab/configuration.js +1 -1
  61. package/lib/gitlab/gitlab-configuration.js +1 -1
  62. package/lib/gitlab/nested-configuration.js +1 -1
  63. package/lib/gitpod.js +1 -1
  64. package/lib/ignore-file.js +1 -1
  65. package/lib/ini.js +1 -1
  66. package/lib/java/java-project.js +1 -1
  67. package/lib/java/junit.js +1 -1
  68. package/lib/java/maven-compile.js +1 -1
  69. package/lib/java/maven-packaging.js +1 -1
  70. package/lib/java/maven-sample.js +1 -1
  71. package/lib/java/pom.js +2 -2
  72. package/lib/java/projenrc.js +1 -1
  73. package/lib/javascript/biome/biome-config.d.ts +1 -1
  74. package/lib/javascript/biome/biome-config.js +1 -1
  75. package/lib/javascript/biome/biome.js +1 -1
  76. package/lib/javascript/bundler.js +1 -1
  77. package/lib/javascript/eslint.js +1 -1
  78. package/lib/javascript/jest.js +4 -4
  79. package/lib/javascript/license-checker.js +1 -1
  80. package/lib/javascript/node-package.js +1 -1
  81. package/lib/javascript/node-project.js +1 -1
  82. package/lib/javascript/npm-config.js +1 -1
  83. package/lib/javascript/prettier.js +1 -1
  84. package/lib/javascript/projenrc.js +1 -1
  85. package/lib/javascript/typescript-config.js +2 -2
  86. package/lib/javascript/upgrade-dependencies.js +2 -2
  87. package/lib/javascript/yarnrc.js +1 -1
  88. package/lib/json-patch.js +1 -1
  89. package/lib/json.js +1 -1
  90. package/lib/license.js +1 -1
  91. package/lib/logger.js +1 -1
  92. package/lib/makefile.js +1 -1
  93. package/lib/object-file.js +1 -1
  94. package/lib/project-build.js +1 -1
  95. package/lib/project-tree.js +1 -1
  96. package/lib/project.js +1 -1
  97. package/lib/projects.js +1 -1
  98. package/lib/projenrc-json.js +2 -2
  99. package/lib/projenrc.js +1 -1
  100. package/lib/python/pip.js +1 -1
  101. package/lib/python/poetry.js +2 -2
  102. package/lib/python/projenrc.js +1 -1
  103. package/lib/python/pyproject-toml-file.js +1 -1
  104. package/lib/python/pytest-sample.js +1 -1
  105. package/lib/python/pytest.js +1 -1
  106. package/lib/python/python-project.js +1 -1
  107. package/lib/python/python-sample.js +1 -1
  108. package/lib/python/requirements-file.js +1 -1
  109. package/lib/python/setuppy.js +1 -1
  110. package/lib/python/setuptools.js +1 -1
  111. package/lib/python/uv.js +1 -1
  112. package/lib/python/venv.js +1 -1
  113. package/lib/readme.js +1 -1
  114. package/lib/release/publisher.js +1 -1
  115. package/lib/release/release-trigger.js +1 -1
  116. package/lib/release/release.js +1 -1
  117. package/lib/renovatebot.js +1 -1
  118. package/lib/sample-file.js +2 -2
  119. package/lib/semver.js +1 -1
  120. package/lib/source-code.js +1 -1
  121. package/lib/task-runtime.js +1 -1
  122. package/lib/task.js +1 -1
  123. package/lib/tasks.js +1 -1
  124. package/lib/testing.js +1 -1
  125. package/lib/textfile.js +1 -1
  126. package/lib/toml.js +1 -1
  127. package/lib/typescript/projenrc-ts.js +1 -1
  128. package/lib/typescript/projenrc.js +1 -1
  129. package/lib/typescript/typescript-typedoc.js +1 -1
  130. package/lib/typescript/typescript.js +6 -6
  131. package/lib/version.js +2 -2
  132. package/lib/vscode/devcontainer.js +1 -1
  133. package/lib/vscode/extensions.js +1 -1
  134. package/lib/vscode/launch-config.js +1 -1
  135. package/lib/vscode/settings.js +1 -1
  136. package/lib/vscode/vscode.js +1 -1
  137. package/lib/web/next.js +3 -3
  138. package/lib/web/postcss.js +1 -1
  139. package/lib/web/react.js +4 -4
  140. package/lib/web/tailwind.js +1 -1
  141. package/lib/xmlfile.js +1 -1
  142. package/lib/yaml.js +1 -1
  143. package/node_modules/semver/README.md +19 -4
  144. package/node_modules/semver/bin/semver.js +14 -10
  145. package/node_modules/semver/functions/truncate.js +48 -0
  146. package/node_modules/semver/index.js +2 -0
  147. package/node_modules/semver/internal/re.js +1 -1
  148. package/node_modules/semver/package.json +3 -3
  149. package/node_modules/semver/range.bnf +5 -4
  150. package/node_modules/yaml/browser/dist/compose/composer.js +4 -2
  151. package/node_modules/yaml/browser/dist/parse/lexer.js +28 -24
  152. package/node_modules/yaml/browser/dist/parse/parser.js +12 -4
  153. package/node_modules/yaml/dist/compose/composer.js +4 -2
  154. package/node_modules/yaml/dist/parse/lexer.js +28 -24
  155. package/node_modules/yaml/dist/parse/parser.js +12 -4
  156. package/node_modules/yaml/package.json +1 -1
  157. package/package.json +2 -2
@@ -0,0 +1,48 @@
1
+ 'use strict'
2
+
3
+ const parse = require('./parse')
4
+ const constants = require('../internal/constants')
5
+ const SemVer = require('../classes/semver')
6
+
7
+ const truncate = (version, truncation, options) => {
8
+ if (!constants.RELEASE_TYPES.includes(truncation)) {
9
+ return null
10
+ }
11
+
12
+ const clonedVersion = cloneInputVersion(version, options)
13
+ return clonedVersion && doTruncation(clonedVersion, truncation)
14
+ }
15
+
16
+ const cloneInputVersion = (version, options) => {
17
+ const versionStringToParse = (
18
+ version instanceof SemVer ? version.version : version
19
+ )
20
+
21
+ return parse(versionStringToParse, options)
22
+ }
23
+
24
+ const doTruncation = (version, truncation) => {
25
+ if (isPrerelease(truncation)) {
26
+ return version.version
27
+ }
28
+
29
+ version.prerelease = []
30
+
31
+ switch (truncation) {
32
+ case 'major':
33
+ version.minor = 0
34
+ version.patch = 0
35
+ break
36
+ case 'minor':
37
+ version.patch = 0
38
+ break
39
+ }
40
+
41
+ return version.format()
42
+ }
43
+
44
+ const isPrerelease = (type) => {
45
+ return type.startsWith('pre')
46
+ }
47
+
48
+ module.exports = truncate
@@ -28,6 +28,7 @@ const gte = require('./functions/gte')
28
28
  const lte = require('./functions/lte')
29
29
  const cmp = require('./functions/cmp')
30
30
  const coerce = require('./functions/coerce')
31
+ const truncate = require('./functions/truncate')
31
32
  const Comparator = require('./classes/comparator')
32
33
  const Range = require('./classes/range')
33
34
  const satisfies = require('./functions/satisfies')
@@ -66,6 +67,7 @@ module.exports = {
66
67
  lte,
67
68
  cmp,
68
69
  coerce,
70
+ truncate,
69
71
  Comparator,
70
72
  Range,
71
73
  satisfies,
@@ -136,7 +136,7 @@ createToken('LOOSE', `^${src[t.LOOSEPLAIN]}$`)
136
136
  createToken('GTLT', '((?:<|>)?=?)')
137
137
 
138
138
  // Something like "2.*" or "1.2.x".
139
- // Note that "x.x" is a valid xRange identifer, meaning "any version"
139
+ // Note that "x.x" is a valid xRange identifier, meaning "any version"
140
140
  // Only the first item is strictly required.
141
141
  createToken('XRANGEIDENTIFIERLOOSE', `${src[t.NUMERICIDENTIFIERLOOSE]}|x|X|\\*`)
142
142
  createToken('XRANGEIDENTIFIER', `${src[t.NUMERICIDENTIFIER]}|x|X|\\*`)
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "semver",
3
- "version": "7.7.4",
3
+ "version": "7.8.0",
4
4
  "description": "The semantic version parser used by npm.",
5
5
  "main": "index.js",
6
6
  "scripts": {
@@ -15,7 +15,7 @@
15
15
  },
16
16
  "devDependencies": {
17
17
  "@npmcli/eslint-config": "^6.0.0",
18
- "@npmcli/template-oss": "4.29.0",
18
+ "@npmcli/template-oss": "5.0.0",
19
19
  "benchmark": "^2.1.4",
20
20
  "tap": "^16.0.0"
21
21
  },
@@ -52,7 +52,7 @@
52
52
  "author": "GitHub Inc.",
53
53
  "templateOSS": {
54
54
  "//@npmcli/template-oss": "This file is partially managed by @npmcli/template-oss. Edits may be overwritten.",
55
- "version": "4.29.0",
55
+ "version": "5.0.0",
56
56
  "engines": ">=10",
57
57
  "distPaths": [
58
58
  "classes/",
@@ -10,7 +10,8 @@ nr ::= '0' | [1-9] ( [0-9] ) *
10
10
  tilde ::= '~' partial
11
11
  caret ::= '^' partial
12
12
  qualifier ::= ( '-' pre )? ( '+' build )?
13
- pre ::= parts
14
- build ::= parts
15
- parts ::= part ( '.' part ) *
16
- part ::= nr | [-0-9A-Za-z]+
13
+ pre ::= prepart ( '.' prepart ) *
14
+ prepart ::= nr | alphanumid
15
+ build ::= buildid ( '.' buildid ) *
16
+ alphanumid ::= ( [0-9] ) * [A-Za-z-] [-0-9A-Za-z] *
17
+ buildid ::= [-0-9A-Za-z]+
@@ -94,8 +94,10 @@ class Composer {
94
94
  }
95
95
  }
96
96
  if (afterDoc) {
97
- Array.prototype.push.apply(doc.errors, this.errors);
98
- Array.prototype.push.apply(doc.warnings, this.warnings);
97
+ for (let i = 0; i < this.errors.length; ++i)
98
+ doc.errors.push(this.errors[i]);
99
+ for (let i = 0; i < this.warnings.length; ++i)
100
+ doc.warnings.push(this.warnings[i]);
99
101
  }
100
102
  else {
101
103
  doc.errors = this.errors;
@@ -310,7 +310,7 @@ class Lexer {
310
310
  const n = (yield* this.pushCount(1)) + (yield* this.pushSpaces(true));
311
311
  this.indentNext = this.indentValue + 1;
312
312
  this.indentValue += n;
313
- return yield* this.parseBlockStart();
313
+ return 'block-start';
314
314
  }
315
315
  return 'doc';
316
316
  }
@@ -631,32 +631,36 @@ class Lexer {
631
631
  return 0;
632
632
  }
633
633
  *pushIndicators() {
634
- switch (this.charAt(0)) {
635
- case '!':
636
- return ((yield* this.pushTag()) +
637
- (yield* this.pushSpaces(true)) +
638
- (yield* this.pushIndicators()));
639
- case '&':
640
- return ((yield* this.pushUntil(isNotAnchorChar)) +
641
- (yield* this.pushSpaces(true)) +
642
- (yield* this.pushIndicators()));
643
- case '-': // this is an error
644
- case '?': // this is an error outside flow collections
645
- case ':': {
646
- const inFlow = this.flowLevel > 0;
647
- const ch1 = this.charAt(1);
648
- if (isEmpty(ch1) || (inFlow && flowIndicatorChars.has(ch1))) {
649
- if (!inFlow)
650
- this.indentNext = this.indentValue + 1;
651
- else if (this.flowKey)
652
- this.flowKey = false;
653
- return ((yield* this.pushCount(1)) +
654
- (yield* this.pushSpaces(true)) +
655
- (yield* this.pushIndicators()));
634
+ let n = 0;
635
+ loop: while (true) {
636
+ switch (this.charAt(0)) {
637
+ case '!':
638
+ n += yield* this.pushTag();
639
+ n += yield* this.pushSpaces(true);
640
+ continue loop;
641
+ case '&':
642
+ n += yield* this.pushUntil(isNotAnchorChar);
643
+ n += yield* this.pushSpaces(true);
644
+ continue loop;
645
+ case '-': // this is an error
646
+ case '?': // this is an error outside flow collections
647
+ case ':': {
648
+ const inFlow = this.flowLevel > 0;
649
+ const ch1 = this.charAt(1);
650
+ if (isEmpty(ch1) || (inFlow && flowIndicatorChars.has(ch1))) {
651
+ if (!inFlow)
652
+ this.indentNext = this.indentValue + 1;
653
+ else if (this.flowKey)
654
+ this.flowKey = false;
655
+ n += yield* this.pushCount(1);
656
+ n += yield* this.pushSpaces(true);
657
+ continue loop;
658
+ }
656
659
  }
657
660
  }
661
+ break loop;
658
662
  }
659
- return 0;
663
+ return n;
660
664
  }
661
665
  *pushTag() {
662
666
  if (this.charAt(1) === '<') {
@@ -67,6 +67,14 @@ function getFirstKeyStartProps(prev) {
67
67
  }
68
68
  return prev.splice(i, prev.length);
69
69
  }
70
+ function arrayPushArray(target, source) {
71
+ // May exhaust call stack with large `source` array
72
+ if (source.length < 1e5)
73
+ Array.prototype.push.apply(target, source);
74
+ else
75
+ for (let i = 0; i < source.length; ++i)
76
+ target.push(source[i]);
77
+ }
70
78
  function fixFlowSeqItems(fc) {
71
79
  if (fc.start.type === 'flow-seq-start') {
72
80
  for (const it of fc.items) {
@@ -79,12 +87,12 @@ function fixFlowSeqItems(fc) {
79
87
  delete it.key;
80
88
  if (isFlowToken(it.value)) {
81
89
  if (it.value.end)
82
- Array.prototype.push.apply(it.value.end, it.sep);
90
+ arrayPushArray(it.value.end, it.sep);
83
91
  else
84
92
  it.value.end = it.sep;
85
93
  }
86
94
  else
87
- Array.prototype.push.apply(it.start, it.sep);
95
+ arrayPushArray(it.start, it.sep);
88
96
  delete it.sep;
89
97
  }
90
98
  }
@@ -502,7 +510,7 @@ class Parser {
502
510
  const prev = map.items[map.items.length - 2];
503
511
  const end = prev?.value?.end;
504
512
  if (Array.isArray(end)) {
505
- Array.prototype.push.apply(end, it.start);
513
+ arrayPushArray(end, it.start);
506
514
  end.push(this.sourceToken);
507
515
  map.items.pop();
508
516
  return;
@@ -717,7 +725,7 @@ class Parser {
717
725
  const prev = seq.items[seq.items.length - 2];
718
726
  const end = prev?.value?.end;
719
727
  if (Array.isArray(end)) {
720
- Array.prototype.push.apply(end, it.start);
728
+ arrayPushArray(end, it.start);
721
729
  end.push(this.sourceToken);
722
730
  seq.items.pop();
723
731
  return;
@@ -97,8 +97,10 @@ class Composer {
97
97
  }
98
98
  }
99
99
  if (afterDoc) {
100
- Array.prototype.push.apply(doc.errors, this.errors);
101
- Array.prototype.push.apply(doc.warnings, this.warnings);
100
+ for (let i = 0; i < this.errors.length; ++i)
101
+ doc.errors.push(this.errors[i]);
102
+ for (let i = 0; i < this.warnings.length; ++i)
103
+ doc.warnings.push(this.warnings[i]);
102
104
  }
103
105
  else {
104
106
  doc.errors = this.errors;
@@ -312,7 +312,7 @@ class Lexer {
312
312
  const n = (yield* this.pushCount(1)) + (yield* this.pushSpaces(true));
313
313
  this.indentNext = this.indentValue + 1;
314
314
  this.indentValue += n;
315
- return yield* this.parseBlockStart();
315
+ return 'block-start';
316
316
  }
317
317
  return 'doc';
318
318
  }
@@ -633,32 +633,36 @@ class Lexer {
633
633
  return 0;
634
634
  }
635
635
  *pushIndicators() {
636
- switch (this.charAt(0)) {
637
- case '!':
638
- return ((yield* this.pushTag()) +
639
- (yield* this.pushSpaces(true)) +
640
- (yield* this.pushIndicators()));
641
- case '&':
642
- return ((yield* this.pushUntil(isNotAnchorChar)) +
643
- (yield* this.pushSpaces(true)) +
644
- (yield* this.pushIndicators()));
645
- case '-': // this is an error
646
- case '?': // this is an error outside flow collections
647
- case ':': {
648
- const inFlow = this.flowLevel > 0;
649
- const ch1 = this.charAt(1);
650
- if (isEmpty(ch1) || (inFlow && flowIndicatorChars.has(ch1))) {
651
- if (!inFlow)
652
- this.indentNext = this.indentValue + 1;
653
- else if (this.flowKey)
654
- this.flowKey = false;
655
- return ((yield* this.pushCount(1)) +
656
- (yield* this.pushSpaces(true)) +
657
- (yield* this.pushIndicators()));
636
+ let n = 0;
637
+ loop: while (true) {
638
+ switch (this.charAt(0)) {
639
+ case '!':
640
+ n += yield* this.pushTag();
641
+ n += yield* this.pushSpaces(true);
642
+ continue loop;
643
+ case '&':
644
+ n += yield* this.pushUntil(isNotAnchorChar);
645
+ n += yield* this.pushSpaces(true);
646
+ continue loop;
647
+ case '-': // this is an error
648
+ case '?': // this is an error outside flow collections
649
+ case ':': {
650
+ const inFlow = this.flowLevel > 0;
651
+ const ch1 = this.charAt(1);
652
+ if (isEmpty(ch1) || (inFlow && flowIndicatorChars.has(ch1))) {
653
+ if (!inFlow)
654
+ this.indentNext = this.indentValue + 1;
655
+ else if (this.flowKey)
656
+ this.flowKey = false;
657
+ n += yield* this.pushCount(1);
658
+ n += yield* this.pushSpaces(true);
659
+ continue loop;
660
+ }
658
661
  }
659
662
  }
663
+ break loop;
660
664
  }
661
- return 0;
665
+ return n;
662
666
  }
663
667
  *pushTag() {
664
668
  if (this.charAt(1) === '<') {
@@ -70,6 +70,14 @@ function getFirstKeyStartProps(prev) {
70
70
  }
71
71
  return prev.splice(i, prev.length);
72
72
  }
73
+ function arrayPushArray(target, source) {
74
+ // May exhaust call stack with large `source` array
75
+ if (source.length < 1e5)
76
+ Array.prototype.push.apply(target, source);
77
+ else
78
+ for (let i = 0; i < source.length; ++i)
79
+ target.push(source[i]);
80
+ }
73
81
  function fixFlowSeqItems(fc) {
74
82
  if (fc.start.type === 'flow-seq-start') {
75
83
  for (const it of fc.items) {
@@ -82,12 +90,12 @@ function fixFlowSeqItems(fc) {
82
90
  delete it.key;
83
91
  if (isFlowToken(it.value)) {
84
92
  if (it.value.end)
85
- Array.prototype.push.apply(it.value.end, it.sep);
93
+ arrayPushArray(it.value.end, it.sep);
86
94
  else
87
95
  it.value.end = it.sep;
88
96
  }
89
97
  else
90
- Array.prototype.push.apply(it.start, it.sep);
98
+ arrayPushArray(it.start, it.sep);
91
99
  delete it.sep;
92
100
  }
93
101
  }
@@ -507,7 +515,7 @@ class Parser {
507
515
  const prev = map.items[map.items.length - 2];
508
516
  const end = prev?.value?.end;
509
517
  if (Array.isArray(end)) {
510
- Array.prototype.push.apply(end, it.start);
518
+ arrayPushArray(end, it.start);
511
519
  end.push(this.sourceToken);
512
520
  map.items.pop();
513
521
  return;
@@ -722,7 +730,7 @@ class Parser {
722
730
  const prev = seq.items[seq.items.length - 2];
723
731
  const end = prev?.value?.end;
724
732
  if (Array.isArray(end)) {
725
- Array.prototype.push.apply(end, it.start);
733
+ arrayPushArray(end, it.start);
726
734
  end.push(this.sourceToken);
727
735
  seq.items.pop();
728
736
  return;
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "yaml",
3
- "version": "2.8.4",
3
+ "version": "2.9.0",
4
4
  "license": "ISC",
5
5
  "author": "Eemeli Aro <eemeli@gmail.com>",
6
6
  "funding": "https://github.com/sponsors/eemeli",
package/package.json CHANGED
@@ -100,7 +100,7 @@
100
100
  "fast-json-patch": "^3.1.1",
101
101
  "ini": "^2.0.0",
102
102
  "parse-conflict-json": "^4.0.0",
103
- "semver": "^7.7.4",
103
+ "semver": "^7.8.0",
104
104
  "shx": "^0.4.0",
105
105
  "xmlbuilder2": "^4.0.3",
106
106
  "yaml": "^2.2.2",
@@ -144,7 +144,7 @@
144
144
  "publishConfig": {
145
145
  "access": "public"
146
146
  },
147
- "version": "0.99.59",
147
+ "version": "0.99.61",
148
148
  "jest": {
149
149
  "coverageProvider": "v8",
150
150
  "coverageReporters": [