@guru-ai-product/ai-product-kit 0.2.251113194913 → 0.2.251113205658

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 (129) hide show
  1. package/mcp/skills/aipk_init_project/template/AGENTS_TEMPLATE.md +1 -1
  2. package/mcp/src/server.js +1 -1
  3. package/package.json +1 -1
  4. package/skills/aipk_design/GURU_AI.md +119 -7
  5. package/skills/aipk_design/SKILL.md +8 -7
  6. package/skills/aipk_design/{auto_panel_splitter → update-requirements-from-design}/SKILL.md +18 -16
  7. package/skills/aipk_design/update-requirements-from-design/scripts/sharp-runtime/node_modules/.package-lock.json +113 -0
  8. package/skills/aipk_design/update-requirements-from-design/scripts/sharp-runtime/node_modules/@img/colour/LICENSE.md +82 -0
  9. package/skills/aipk_design/update-requirements-from-design/scripts/sharp-runtime/node_modules/@img/colour/README.md +15 -0
  10. package/skills/aipk_design/update-requirements-from-design/scripts/sharp-runtime/node_modules/@img/colour/color.cjs +1594 -0
  11. package/skills/aipk_design/update-requirements-from-design/scripts/sharp-runtime/node_modules/@img/colour/index.cjs +1 -0
  12. package/skills/aipk_design/update-requirements-from-design/scripts/sharp-runtime/node_modules/@img/colour/package.json +45 -0
  13. package/skills/aipk_design/update-requirements-from-design/scripts/sharp-runtime/node_modules/@img/sharp-darwin-arm64/LICENSE +191 -0
  14. package/skills/aipk_design/update-requirements-from-design/scripts/sharp-runtime/node_modules/@img/sharp-darwin-arm64/README.md +18 -0
  15. package/skills/aipk_design/update-requirements-from-design/scripts/sharp-runtime/node_modules/@img/sharp-darwin-arm64/lib/sharp-darwin-arm64.node +0 -0
  16. package/skills/aipk_design/update-requirements-from-design/scripts/sharp-runtime/node_modules/@img/sharp-darwin-arm64/package.json +40 -0
  17. package/skills/aipk_design/update-requirements-from-design/scripts/sharp-runtime/node_modules/@img/sharp-libvips-darwin-arm64/README.md +46 -0
  18. package/skills/aipk_design/update-requirements-from-design/scripts/sharp-runtime/node_modules/@img/sharp-libvips-darwin-arm64/lib/glib-2.0/include/glibconfig.h +220 -0
  19. package/skills/aipk_design/update-requirements-from-design/scripts/sharp-runtime/node_modules/@img/sharp-libvips-darwin-arm64/lib/index.js +1 -0
  20. package/skills/aipk_design/update-requirements-from-design/scripts/sharp-runtime/node_modules/@img/sharp-libvips-darwin-arm64/lib/libvips-cpp.8.17.3.dylib +0 -0
  21. package/skills/aipk_design/update-requirements-from-design/scripts/sharp-runtime/node_modules/@img/sharp-libvips-darwin-arm64/package.json +36 -0
  22. package/skills/aipk_design/update-requirements-from-design/scripts/sharp-runtime/node_modules/@img/sharp-libvips-darwin-arm64/versions.json +30 -0
  23. package/skills/aipk_design/update-requirements-from-design/scripts/sharp-runtime/node_modules/detect-libc/LICENSE +201 -0
  24. package/skills/aipk_design/update-requirements-from-design/scripts/sharp-runtime/node_modules/detect-libc/README.md +163 -0
  25. package/skills/aipk_design/update-requirements-from-design/scripts/sharp-runtime/node_modules/detect-libc/index.d.ts +14 -0
  26. package/skills/aipk_design/update-requirements-from-design/scripts/sharp-runtime/node_modules/detect-libc/lib/detect-libc.js +313 -0
  27. package/skills/aipk_design/update-requirements-from-design/scripts/sharp-runtime/node_modules/detect-libc/lib/elf.js +39 -0
  28. package/skills/aipk_design/update-requirements-from-design/scripts/sharp-runtime/node_modules/detect-libc/lib/filesystem.js +51 -0
  29. package/skills/aipk_design/update-requirements-from-design/scripts/sharp-runtime/node_modules/detect-libc/lib/process.js +24 -0
  30. package/skills/aipk_design/update-requirements-from-design/scripts/sharp-runtime/node_modules/detect-libc/package.json +44 -0
  31. package/skills/aipk_design/update-requirements-from-design/scripts/sharp-runtime/node_modules/semver/LICENSE +15 -0
  32. package/skills/aipk_design/update-requirements-from-design/scripts/sharp-runtime/node_modules/semver/README.md +664 -0
  33. package/skills/aipk_design/update-requirements-from-design/scripts/sharp-runtime/node_modules/semver/bin/semver.js +191 -0
  34. package/skills/aipk_design/update-requirements-from-design/scripts/sharp-runtime/node_modules/semver/classes/comparator.js +143 -0
  35. package/skills/aipk_design/update-requirements-from-design/scripts/sharp-runtime/node_modules/semver/classes/index.js +7 -0
  36. package/skills/aipk_design/update-requirements-from-design/scripts/sharp-runtime/node_modules/semver/classes/range.js +557 -0
  37. package/skills/aipk_design/update-requirements-from-design/scripts/sharp-runtime/node_modules/semver/classes/semver.js +333 -0
  38. package/skills/aipk_design/update-requirements-from-design/scripts/sharp-runtime/node_modules/semver/functions/clean.js +8 -0
  39. package/skills/aipk_design/update-requirements-from-design/scripts/sharp-runtime/node_modules/semver/functions/cmp.js +54 -0
  40. package/skills/aipk_design/update-requirements-from-design/scripts/sharp-runtime/node_modules/semver/functions/coerce.js +62 -0
  41. package/skills/aipk_design/update-requirements-from-design/scripts/sharp-runtime/node_modules/semver/functions/compare-build.js +9 -0
  42. package/skills/aipk_design/update-requirements-from-design/scripts/sharp-runtime/node_modules/semver/functions/compare-loose.js +5 -0
  43. package/skills/aipk_design/update-requirements-from-design/scripts/sharp-runtime/node_modules/semver/functions/compare.js +7 -0
  44. package/skills/aipk_design/update-requirements-from-design/scripts/sharp-runtime/node_modules/semver/functions/diff.js +60 -0
  45. package/skills/aipk_design/update-requirements-from-design/scripts/sharp-runtime/node_modules/semver/functions/eq.js +5 -0
  46. package/skills/aipk_design/update-requirements-from-design/scripts/sharp-runtime/node_modules/semver/functions/gt.js +5 -0
  47. package/skills/aipk_design/update-requirements-from-design/scripts/sharp-runtime/node_modules/semver/functions/gte.js +5 -0
  48. package/skills/aipk_design/update-requirements-from-design/scripts/sharp-runtime/node_modules/semver/functions/inc.js +21 -0
  49. package/skills/aipk_design/update-requirements-from-design/scripts/sharp-runtime/node_modules/semver/functions/lt.js +5 -0
  50. package/skills/aipk_design/update-requirements-from-design/scripts/sharp-runtime/node_modules/semver/functions/lte.js +5 -0
  51. package/skills/aipk_design/update-requirements-from-design/scripts/sharp-runtime/node_modules/semver/functions/major.js +5 -0
  52. package/skills/aipk_design/update-requirements-from-design/scripts/sharp-runtime/node_modules/semver/functions/minor.js +5 -0
  53. package/skills/aipk_design/update-requirements-from-design/scripts/sharp-runtime/node_modules/semver/functions/neq.js +5 -0
  54. package/skills/aipk_design/update-requirements-from-design/scripts/sharp-runtime/node_modules/semver/functions/parse.js +18 -0
  55. package/skills/aipk_design/update-requirements-from-design/scripts/sharp-runtime/node_modules/semver/functions/patch.js +5 -0
  56. package/skills/aipk_design/update-requirements-from-design/scripts/sharp-runtime/node_modules/semver/functions/prerelease.js +8 -0
  57. package/skills/aipk_design/update-requirements-from-design/scripts/sharp-runtime/node_modules/semver/functions/rcompare.js +5 -0
  58. package/skills/aipk_design/update-requirements-from-design/scripts/sharp-runtime/node_modules/semver/functions/rsort.js +5 -0
  59. package/skills/aipk_design/update-requirements-from-design/scripts/sharp-runtime/node_modules/semver/functions/satisfies.js +12 -0
  60. package/skills/aipk_design/update-requirements-from-design/scripts/sharp-runtime/node_modules/semver/functions/sort.js +5 -0
  61. package/skills/aipk_design/update-requirements-from-design/scripts/sharp-runtime/node_modules/semver/functions/valid.js +8 -0
  62. package/skills/aipk_design/update-requirements-from-design/scripts/sharp-runtime/node_modules/semver/index.js +91 -0
  63. package/skills/aipk_design/update-requirements-from-design/scripts/sharp-runtime/node_modules/semver/internal/constants.js +37 -0
  64. package/skills/aipk_design/update-requirements-from-design/scripts/sharp-runtime/node_modules/semver/internal/debug.js +11 -0
  65. package/skills/aipk_design/update-requirements-from-design/scripts/sharp-runtime/node_modules/semver/internal/identifiers.js +29 -0
  66. package/skills/aipk_design/update-requirements-from-design/scripts/sharp-runtime/node_modules/semver/internal/lrucache.js +42 -0
  67. package/skills/aipk_design/update-requirements-from-design/scripts/sharp-runtime/node_modules/semver/internal/parse-options.js +17 -0
  68. package/skills/aipk_design/update-requirements-from-design/scripts/sharp-runtime/node_modules/semver/internal/re.js +223 -0
  69. package/skills/aipk_design/update-requirements-from-design/scripts/sharp-runtime/node_modules/semver/package.json +78 -0
  70. package/skills/aipk_design/update-requirements-from-design/scripts/sharp-runtime/node_modules/semver/preload.js +4 -0
  71. package/skills/aipk_design/update-requirements-from-design/scripts/sharp-runtime/node_modules/semver/range.bnf +16 -0
  72. package/skills/aipk_design/update-requirements-from-design/scripts/sharp-runtime/node_modules/semver/ranges/gtr.js +6 -0
  73. package/skills/aipk_design/update-requirements-from-design/scripts/sharp-runtime/node_modules/semver/ranges/intersects.js +9 -0
  74. package/skills/aipk_design/update-requirements-from-design/scripts/sharp-runtime/node_modules/semver/ranges/ltr.js +6 -0
  75. package/skills/aipk_design/update-requirements-from-design/scripts/sharp-runtime/node_modules/semver/ranges/max-satisfying.js +27 -0
  76. package/skills/aipk_design/update-requirements-from-design/scripts/sharp-runtime/node_modules/semver/ranges/min-satisfying.js +26 -0
  77. package/skills/aipk_design/update-requirements-from-design/scripts/sharp-runtime/node_modules/semver/ranges/min-version.js +63 -0
  78. package/skills/aipk_design/update-requirements-from-design/scripts/sharp-runtime/node_modules/semver/ranges/outside.js +82 -0
  79. package/skills/aipk_design/update-requirements-from-design/scripts/sharp-runtime/node_modules/semver/ranges/simplify.js +49 -0
  80. package/skills/aipk_design/update-requirements-from-design/scripts/sharp-runtime/node_modules/semver/ranges/subset.js +249 -0
  81. package/skills/aipk_design/update-requirements-from-design/scripts/sharp-runtime/node_modules/semver/ranges/to-comparators.js +10 -0
  82. package/skills/aipk_design/update-requirements-from-design/scripts/sharp-runtime/node_modules/semver/ranges/valid.js +13 -0
  83. package/skills/aipk_design/update-requirements-from-design/scripts/sharp-runtime/node_modules/sharp/LICENSE +191 -0
  84. package/skills/aipk_design/update-requirements-from-design/scripts/sharp-runtime/node_modules/sharp/README.md +118 -0
  85. package/skills/aipk_design/update-requirements-from-design/scripts/sharp-runtime/node_modules/sharp/install/build.js +38 -0
  86. package/skills/aipk_design/update-requirements-from-design/scripts/sharp-runtime/node_modules/sharp/install/check.js +14 -0
  87. package/skills/aipk_design/update-requirements-from-design/scripts/sharp-runtime/node_modules/sharp/lib/channel.js +177 -0
  88. package/skills/aipk_design/update-requirements-from-design/scripts/sharp-runtime/node_modules/sharp/lib/colour.js +195 -0
  89. package/skills/aipk_design/update-requirements-from-design/scripts/sharp-runtime/node_modules/sharp/lib/composite.js +212 -0
  90. package/skills/aipk_design/update-requirements-from-design/scripts/sharp-runtime/node_modules/sharp/lib/constructor.js +499 -0
  91. package/skills/aipk_design/update-requirements-from-design/scripts/sharp-runtime/node_modules/sharp/lib/index.d.ts +1971 -0
  92. package/skills/aipk_design/update-requirements-from-design/scripts/sharp-runtime/node_modules/sharp/lib/index.js +16 -0
  93. package/skills/aipk_design/update-requirements-from-design/scripts/sharp-runtime/node_modules/sharp/lib/input.js +809 -0
  94. package/skills/aipk_design/update-requirements-from-design/scripts/sharp-runtime/node_modules/sharp/lib/is.js +143 -0
  95. package/skills/aipk_design/update-requirements-from-design/scripts/sharp-runtime/node_modules/sharp/lib/libvips.js +207 -0
  96. package/skills/aipk_design/update-requirements-from-design/scripts/sharp-runtime/node_modules/sharp/lib/operation.js +1016 -0
  97. package/skills/aipk_design/update-requirements-from-design/scripts/sharp-runtime/node_modules/sharp/lib/output.js +1666 -0
  98. package/skills/aipk_design/update-requirements-from-design/scripts/sharp-runtime/node_modules/sharp/lib/resize.js +595 -0
  99. package/skills/aipk_design/update-requirements-from-design/scripts/sharp-runtime/node_modules/sharp/lib/sharp.js +121 -0
  100. package/skills/aipk_design/update-requirements-from-design/scripts/sharp-runtime/node_modules/sharp/lib/utility.js +291 -0
  101. package/skills/aipk_design/update-requirements-from-design/scripts/sharp-runtime/node_modules/sharp/package.json +202 -0
  102. package/skills/aipk_design/update-requirements-from-design/scripts/sharp-runtime/node_modules/sharp/src/binding.gyp +298 -0
  103. package/skills/aipk_design/update-requirements-from-design/scripts/sharp-runtime/node_modules/sharp/src/common.cc +1130 -0
  104. package/skills/aipk_design/update-requirements-from-design/scripts/sharp-runtime/node_modules/sharp/src/common.h +402 -0
  105. package/skills/aipk_design/update-requirements-from-design/scripts/sharp-runtime/node_modules/sharp/src/metadata.cc +346 -0
  106. package/skills/aipk_design/update-requirements-from-design/scripts/sharp-runtime/node_modules/sharp/src/metadata.h +90 -0
  107. package/skills/aipk_design/update-requirements-from-design/scripts/sharp-runtime/node_modules/sharp/src/operations.cc +499 -0
  108. package/skills/aipk_design/update-requirements-from-design/scripts/sharp-runtime/node_modules/sharp/src/operations.h +137 -0
  109. package/skills/aipk_design/update-requirements-from-design/scripts/sharp-runtime/node_modules/sharp/src/pipeline.cc +1814 -0
  110. package/skills/aipk_design/update-requirements-from-design/scripts/sharp-runtime/node_modules/sharp/src/pipeline.h +408 -0
  111. package/skills/aipk_design/update-requirements-from-design/scripts/sharp-runtime/node_modules/sharp/src/sharp.cc +43 -0
  112. package/skills/aipk_design/update-requirements-from-design/scripts/sharp-runtime/node_modules/sharp/src/stats.cc +186 -0
  113. package/skills/aipk_design/update-requirements-from-design/scripts/sharp-runtime/node_modules/sharp/src/stats.h +62 -0
  114. package/skills/aipk_design/update-requirements-from-design/scripts/sharp-runtime/node_modules/sharp/src/utilities.cc +288 -0
  115. package/skills/aipk_design/update-requirements-from-design/scripts/sharp-runtime/node_modules/sharp/src/utilities.h +22 -0
  116. package/skills/aipk_design/update-requirements-from-design/scripts/sharp-runtime/package-lock.json +529 -0
  117. package/skills/aipk_design/update-requirements-from-design/scripts/sharp-runtime/package.json +5 -0
  118. package/skills/aipk_design/{auto_panel_splitter/scripts/auto_panel_splitter_bundle.js → update-requirements-from-design/scripts/split-design-boards-bundle.js} +10 -1
  119. package/skills/aipk_design/{auto_panel_splitter/scripts/panel_asset_mapper_bundle.js → update-requirements-from-design/scripts/sync-design-to-requirements-bundle.js} +10 -1
  120. package/skills/aipk_development/GURU_AI.md +1 -1
  121. package/skills/aipk_init_project/GURU_AI.md +2 -2
  122. package/skills/aipk_init_project/template/AGENTS_TEMPLATE.md +1 -1
  123. package/skills/aipk_operations/GURU_AI.md +1 -1
  124. package/skills/aipk_requirements/GURU_AI.md +2 -2
  125. package/skills/aipk_requirements/documentation/SKILL.md +23 -1
  126. package/skills/aipk_skill_generate/GURU_AI.md +1 -1
  127. package/skills/aipk_tool_prompts/GURU_AI.md +1 -1
  128. /package/skills/aipk_design/{auto_panel_splitter → update-requirements-from-design}/scripts/auto_panel_splitter.js +0 -0
  129. /package/skills/aipk_design/{auto_panel_splitter → update-requirements-from-design}/scripts/panel_asset_mapper.js +0 -0
@@ -0,0 +1,191 @@
1
+ #!/usr/bin/env node
2
+ // Standalone semver comparison program.
3
+ // Exits successfully and prints matching version(s) if
4
+ // any supplied version is valid and passes all tests.
5
+
6
+ 'use strict'
7
+
8
+ const argv = process.argv.slice(2)
9
+
10
+ let versions = []
11
+
12
+ const range = []
13
+
14
+ let inc = null
15
+
16
+ const version = require('../package.json').version
17
+
18
+ let loose = false
19
+
20
+ let includePrerelease = false
21
+
22
+ let coerce = false
23
+
24
+ let rtl = false
25
+
26
+ let identifier
27
+
28
+ let identifierBase
29
+
30
+ const semver = require('../')
31
+ const parseOptions = require('../internal/parse-options')
32
+
33
+ let reverse = false
34
+
35
+ let options = {}
36
+
37
+ const main = () => {
38
+ if (!argv.length) {
39
+ return help()
40
+ }
41
+ while (argv.length) {
42
+ let a = argv.shift()
43
+ const indexOfEqualSign = a.indexOf('=')
44
+ if (indexOfEqualSign !== -1) {
45
+ const value = a.slice(indexOfEqualSign + 1)
46
+ a = a.slice(0, indexOfEqualSign)
47
+ argv.unshift(value)
48
+ }
49
+ switch (a) {
50
+ case '-rv': case '-rev': case '--rev': case '--reverse':
51
+ reverse = true
52
+ break
53
+ case '-l': case '--loose':
54
+ loose = true
55
+ break
56
+ case '-p': case '--include-prerelease':
57
+ includePrerelease = true
58
+ break
59
+ case '-v': case '--version':
60
+ versions.push(argv.shift())
61
+ break
62
+ case '-i': case '--inc': case '--increment':
63
+ switch (argv[0]) {
64
+ case 'major': case 'minor': case 'patch': case 'prerelease':
65
+ case 'premajor': case 'preminor': case 'prepatch':
66
+ case 'release':
67
+ inc = argv.shift()
68
+ break
69
+ default:
70
+ inc = 'patch'
71
+ break
72
+ }
73
+ break
74
+ case '--preid':
75
+ identifier = argv.shift()
76
+ break
77
+ case '-r': case '--range':
78
+ range.push(argv.shift())
79
+ break
80
+ case '-n':
81
+ identifierBase = argv.shift()
82
+ if (identifierBase === 'false') {
83
+ identifierBase = false
84
+ }
85
+ break
86
+ case '-c': case '--coerce':
87
+ coerce = true
88
+ break
89
+ case '--rtl':
90
+ rtl = true
91
+ break
92
+ case '--ltr':
93
+ rtl = false
94
+ break
95
+ case '-h': case '--help': case '-?':
96
+ return help()
97
+ default:
98
+ versions.push(a)
99
+ break
100
+ }
101
+ }
102
+
103
+ options = parseOptions({ loose, includePrerelease, rtl })
104
+
105
+ versions = versions.map((v) => {
106
+ return coerce ? (semver.coerce(v, options) || { version: v }).version : v
107
+ }).filter((v) => {
108
+ return semver.valid(v)
109
+ })
110
+ if (!versions.length) {
111
+ return fail()
112
+ }
113
+ if (inc && (versions.length !== 1 || range.length)) {
114
+ return failInc()
115
+ }
116
+
117
+ for (let i = 0, l = range.length; i < l; i++) {
118
+ versions = versions.filter((v) => {
119
+ return semver.satisfies(v, range[i], options)
120
+ })
121
+ if (!versions.length) {
122
+ return fail()
123
+ }
124
+ }
125
+ versions
126
+ .sort((a, b) => semver[reverse ? 'rcompare' : 'compare'](a, b, options))
127
+ .map(v => semver.clean(v, options))
128
+ .map(v => inc ? semver.inc(v, inc, options, identifier, identifierBase) : v)
129
+ .forEach(v => console.log(v))
130
+ }
131
+
132
+ const failInc = () => {
133
+ console.error('--inc can only be used on a single version with no range')
134
+ fail()
135
+ }
136
+
137
+ const fail = () => process.exit(1)
138
+
139
+ const help = () => console.log(
140
+ `SemVer ${version}
141
+
142
+ A JavaScript implementation of the https://semver.org/ specification
143
+ Copyright Isaac Z. Schlueter
144
+
145
+ Usage: semver [options] <version> [<version> [...]]
146
+ Prints valid versions sorted by SemVer precedence
147
+
148
+ Options:
149
+ -r --range <range>
150
+ Print versions that match the specified range.
151
+
152
+ -i --increment [<level>]
153
+ Increment a version by the specified level. Level can
154
+ be one of: major, minor, patch, premajor, preminor,
155
+ prepatch, prerelease, or release. Default level is 'patch'.
156
+ Only one version may be specified.
157
+
158
+ --preid <identifier>
159
+ Identifier to be used to prefix premajor, preminor,
160
+ prepatch or prerelease version increments.
161
+
162
+ -l --loose
163
+ Interpret versions and ranges loosely
164
+
165
+ -p --include-prerelease
166
+ Always include prerelease versions in range matching
167
+
168
+ -c --coerce
169
+ Coerce a string into SemVer if possible
170
+ (does not imply --loose)
171
+
172
+ --rtl
173
+ Coerce version strings right to left
174
+
175
+ --ltr
176
+ Coerce version strings left to right (default)
177
+
178
+ -n <base>
179
+ Base number to be used for the prerelease identifier.
180
+ Can be either 0 or 1, or false to omit the number altogether.
181
+ Defaults to 0.
182
+
183
+ Program exits successfully if any valid version satisfies
184
+ all supplied ranges, and prints all satisfying versions.
185
+
186
+ If no satisfying versions are found, then exits failure.
187
+
188
+ Versions are printed in ascending order, so supplying
189
+ multiple versions to the utility will just sort them.`)
190
+
191
+ main()
@@ -0,0 +1,143 @@
1
+ 'use strict'
2
+
3
+ const ANY = Symbol('SemVer ANY')
4
+ // hoisted class for cyclic dependency
5
+ class Comparator {
6
+ static get ANY () {
7
+ return ANY
8
+ }
9
+
10
+ constructor (comp, options) {
11
+ options = parseOptions(options)
12
+
13
+ if (comp instanceof Comparator) {
14
+ if (comp.loose === !!options.loose) {
15
+ return comp
16
+ } else {
17
+ comp = comp.value
18
+ }
19
+ }
20
+
21
+ comp = comp.trim().split(/\s+/).join(' ')
22
+ debug('comparator', comp, options)
23
+ this.options = options
24
+ this.loose = !!options.loose
25
+ this.parse(comp)
26
+
27
+ if (this.semver === ANY) {
28
+ this.value = ''
29
+ } else {
30
+ this.value = this.operator + this.semver.version
31
+ }
32
+
33
+ debug('comp', this)
34
+ }
35
+
36
+ parse (comp) {
37
+ const r = this.options.loose ? re[t.COMPARATORLOOSE] : re[t.COMPARATOR]
38
+ const m = comp.match(r)
39
+
40
+ if (!m) {
41
+ throw new TypeError(`Invalid comparator: ${comp}`)
42
+ }
43
+
44
+ this.operator = m[1] !== undefined ? m[1] : ''
45
+ if (this.operator === '=') {
46
+ this.operator = ''
47
+ }
48
+
49
+ // if it literally is just '>' or '' then allow anything.
50
+ if (!m[2]) {
51
+ this.semver = ANY
52
+ } else {
53
+ this.semver = new SemVer(m[2], this.options.loose)
54
+ }
55
+ }
56
+
57
+ toString () {
58
+ return this.value
59
+ }
60
+
61
+ test (version) {
62
+ debug('Comparator.test', version, this.options.loose)
63
+
64
+ if (this.semver === ANY || version === ANY) {
65
+ return true
66
+ }
67
+
68
+ if (typeof version === 'string') {
69
+ try {
70
+ version = new SemVer(version, this.options)
71
+ } catch (er) {
72
+ return false
73
+ }
74
+ }
75
+
76
+ return cmp(version, this.operator, this.semver, this.options)
77
+ }
78
+
79
+ intersects (comp, options) {
80
+ if (!(comp instanceof Comparator)) {
81
+ throw new TypeError('a Comparator is required')
82
+ }
83
+
84
+ if (this.operator === '') {
85
+ if (this.value === '') {
86
+ return true
87
+ }
88
+ return new Range(comp.value, options).test(this.value)
89
+ } else if (comp.operator === '') {
90
+ if (comp.value === '') {
91
+ return true
92
+ }
93
+ return new Range(this.value, options).test(comp.semver)
94
+ }
95
+
96
+ options = parseOptions(options)
97
+
98
+ // Special cases where nothing can possibly be lower
99
+ if (options.includePrerelease &&
100
+ (this.value === '<0.0.0-0' || comp.value === '<0.0.0-0')) {
101
+ return false
102
+ }
103
+ if (!options.includePrerelease &&
104
+ (this.value.startsWith('<0.0.0') || comp.value.startsWith('<0.0.0'))) {
105
+ return false
106
+ }
107
+
108
+ // Same direction increasing (> or >=)
109
+ if (this.operator.startsWith('>') && comp.operator.startsWith('>')) {
110
+ return true
111
+ }
112
+ // Same direction decreasing (< or <=)
113
+ if (this.operator.startsWith('<') && comp.operator.startsWith('<')) {
114
+ return true
115
+ }
116
+ // same SemVer and both sides are inclusive (<= or >=)
117
+ if (
118
+ (this.semver.version === comp.semver.version) &&
119
+ this.operator.includes('=') && comp.operator.includes('=')) {
120
+ return true
121
+ }
122
+ // opposite directions less than
123
+ if (cmp(this.semver, '<', comp.semver, options) &&
124
+ this.operator.startsWith('>') && comp.operator.startsWith('<')) {
125
+ return true
126
+ }
127
+ // opposite directions greater than
128
+ if (cmp(this.semver, '>', comp.semver, options) &&
129
+ this.operator.startsWith('<') && comp.operator.startsWith('>')) {
130
+ return true
131
+ }
132
+ return false
133
+ }
134
+ }
135
+
136
+ module.exports = Comparator
137
+
138
+ const parseOptions = require('../internal/parse-options')
139
+ const { safeRe: re, t } = require('../internal/re')
140
+ const cmp = require('../functions/cmp')
141
+ const debug = require('../internal/debug')
142
+ const SemVer = require('./semver')
143
+ const Range = require('./range')
@@ -0,0 +1,7 @@
1
+ 'use strict'
2
+
3
+ module.exports = {
4
+ SemVer: require('./semver.js'),
5
+ Range: require('./range.js'),
6
+ Comparator: require('./comparator.js'),
7
+ }