@kubb/core 2.0.0-canary.20231030T124950 → 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (100) hide show
  1. package/README.md +1 -1
  2. package/dist/chunk-4A7WG6IA.js +128 -0
  3. package/dist/chunk-4A7WG6IA.js.map +1 -0
  4. package/dist/chunk-54P4AWHI.js +71 -0
  5. package/dist/chunk-54P4AWHI.js.map +1 -0
  6. package/dist/chunk-5TK7TMV6.cjs +131 -0
  7. package/dist/chunk-5TK7TMV6.cjs.map +1 -0
  8. package/dist/chunk-7S67BJXQ.js +85 -0
  9. package/dist/chunk-7S67BJXQ.js.map +1 -0
  10. package/dist/chunk-E3ANGQ5N.cjs +2290 -0
  11. package/dist/chunk-E3ANGQ5N.cjs.map +1 -0
  12. package/dist/chunk-H47IKRXJ.cjs +129 -0
  13. package/dist/chunk-H47IKRXJ.cjs.map +1 -0
  14. package/dist/chunk-HIE46T3F.js +129 -0
  15. package/dist/chunk-HIE46T3F.js.map +1 -0
  16. package/dist/chunk-K2H7BYQB.js +155 -0
  17. package/dist/chunk-K2H7BYQB.js.map +1 -0
  18. package/dist/chunk-NAWI7UXW.js +67 -0
  19. package/dist/chunk-NAWI7UXW.js.map +1 -0
  20. package/dist/chunk-PLVKILIY.cjs +162 -0
  21. package/dist/chunk-PLVKILIY.cjs.map +1 -0
  22. package/dist/chunk-W2FP7ZWW.cjs +71 -0
  23. package/dist/chunk-W2FP7ZWW.cjs.map +1 -0
  24. package/dist/chunk-WZQO3EPM.cjs +91 -0
  25. package/dist/chunk-WZQO3EPM.cjs.map +1 -0
  26. package/dist/chunk-XDHI63G7.cjs +104 -0
  27. package/dist/chunk-XDHI63G7.cjs.map +1 -0
  28. package/dist/chunk-XPOF4D5N.js +18 -0
  29. package/dist/chunk-XPOF4D5N.js.map +1 -0
  30. package/dist/fs.cjs +31 -0
  31. package/dist/fs.cjs.map +1 -0
  32. package/dist/fs.d.cts +5 -0
  33. package/dist/fs.d.ts +5 -0
  34. package/dist/fs.js +11 -0
  35. package/dist/fs.js.map +1 -0
  36. package/dist/index.cjs +1866 -977
  37. package/dist/index.cjs.map +1 -1
  38. package/dist/index.d.cts +302 -319
  39. package/dist/index.d.ts +302 -319
  40. package/dist/index.js +1071 -846
  41. package/dist/index.js.map +1 -1
  42. package/dist/logger.cjs +26 -0
  43. package/dist/logger.cjs.map +1 -0
  44. package/dist/logger.d.cts +32 -0
  45. package/dist/logger.d.ts +32 -0
  46. package/dist/logger.js +8 -0
  47. package/dist/logger.js.map +1 -0
  48. package/dist/transformers.cjs +124 -0
  49. package/dist/transformers.cjs.map +1 -0
  50. package/dist/transformers.d.cts +55 -0
  51. package/dist/transformers.d.ts +55 -0
  52. package/dist/transformers.js +95 -0
  53. package/dist/transformers.js.map +1 -0
  54. package/dist/utils.cjs +23 -1163
  55. package/dist/utils.cjs.map +1 -1
  56. package/dist/utils.d.cts +2 -143
  57. package/dist/utils.d.ts +2 -143
  58. package/dist/utils.js +15 -1118
  59. package/dist/utils.js.map +1 -1
  60. package/dist/write-A6VgHkYA.d.cts +10 -0
  61. package/dist/write-A6VgHkYA.d.ts +10 -0
  62. package/package.json +40 -23
  63. package/src/BarrelManager.ts +113 -0
  64. package/src/FileManager.ts +581 -0
  65. package/src/Generator.ts +34 -0
  66. package/src/PackageManager.ts +178 -0
  67. package/src/PluginManager.ts +645 -0
  68. package/src/PromiseManager.ts +51 -0
  69. package/src/build.ts +221 -0
  70. package/src/config.ts +22 -0
  71. package/src/errors.ts +12 -0
  72. package/src/fs/clean.ts +5 -0
  73. package/src/fs/index.ts +3 -0
  74. package/src/fs/read.ts +68 -0
  75. package/src/fs/write.ts +79 -0
  76. package/src/index.ts +27 -0
  77. package/src/logger.ts +121 -0
  78. package/src/plugin.ts +80 -0
  79. package/src/transformers/casing.ts +9 -0
  80. package/src/transformers/combineCodes.ts +3 -0
  81. package/src/transformers/createJSDocBlockText.ts +9 -0
  82. package/src/transformers/escape.ts +31 -0
  83. package/src/transformers/indent.ts +3 -0
  84. package/src/transformers/index.ts +36 -0
  85. package/src/transformers/nameSorter.ts +9 -0
  86. package/src/transformers/searchAndReplace.ts +25 -0
  87. package/src/transformers/transformReservedWord.ts +97 -0
  88. package/src/transformers/trim.ts +7 -0
  89. package/src/types.ts +334 -0
  90. package/src/utils/EventEmitter.ts +24 -0
  91. package/src/utils/FunctionParams.ts +86 -0
  92. package/src/utils/TreeNode.ts +125 -0
  93. package/src/utils/URLPath.ts +133 -0
  94. package/src/utils/cache.ts +35 -0
  95. package/src/utils/executeStrategies.ts +83 -0
  96. package/src/utils/index.ts +8 -0
  97. package/src/utils/promise.ts +13 -0
  98. package/src/utils/renderTemplate.ts +31 -0
  99. package/src/utils/timeout.ts +7 -0
  100. package/src/utils/uniqueName.ts +20 -0
@@ -0,0 +1,178 @@
1
+ import mod from 'node:module'
2
+ import os from 'node:os'
3
+ import { pathToFileURL } from 'node:url'
4
+
5
+ import { findUp, findUpSync } from 'find-up'
6
+ import { coerce, satisfies } from 'semver'
7
+
8
+ type PackageJSON = {
9
+ dependencies?: Record<string, string>
10
+ devDependencies?: Record<string, string>
11
+ }
12
+
13
+ type DependencyName = string
14
+
15
+ type DependencyVersion = string
16
+
17
+ export class PackageManager {
18
+ static #cache: Record<DependencyName, DependencyVersion> = {}
19
+
20
+ #cwd?: string
21
+ #SLASHES = new Set(['/', '\\'])
22
+ constructor(workspace?: string) {
23
+ if (workspace) {
24
+ this.#cwd = workspace
25
+ }
26
+
27
+ return this
28
+ }
29
+
30
+ set workspace(workspace: string) {
31
+ this.#cwd = workspace
32
+ }
33
+
34
+ get workspace(): string | undefined {
35
+ return this.#cwd
36
+ }
37
+
38
+ normalizeDirectory(directory: string): string {
39
+ if (!this.#SLASHES.has(directory[directory.length - 1]!)) {
40
+ return `${directory}/`
41
+ }
42
+
43
+ return directory
44
+ }
45
+
46
+ getLocation(path: string): string {
47
+ let location = path
48
+
49
+ if (this.#cwd) {
50
+ const require = mod.createRequire(this.normalizeDirectory(this.#cwd))
51
+ location = require.resolve(path)
52
+ }
53
+
54
+ return location
55
+ }
56
+
57
+ async import(path: string): Promise<any | undefined> {
58
+ try {
59
+ let location = this.getLocation(path)
60
+
61
+ if (os.platform() == 'win32') {
62
+ location = pathToFileURL(location).href
63
+ }
64
+
65
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
66
+ const module = await import(location)
67
+
68
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access, @typescript-eslint/no-unsafe-return
69
+ return module?.default ?? module
70
+ } catch (e) {
71
+ console.log(e)
72
+ return undefined
73
+ }
74
+ }
75
+
76
+ async getPackageJSON(): Promise<PackageJSON | undefined> {
77
+ const pkgPath = await findUp(['package.json'], {
78
+ cwd: this.#cwd,
79
+ })
80
+ if (!pkgPath) {
81
+ return undefined
82
+ }
83
+
84
+ return require(pkgPath) as PackageJSON
85
+ }
86
+
87
+ getPackageJSONSync(): PackageJSON | undefined {
88
+ const pkgPath = findUpSync(['package.json'], {
89
+ cwd: this.#cwd,
90
+ })
91
+ if (!pkgPath) {
92
+ return undefined
93
+ }
94
+
95
+ return require(pkgPath) as PackageJSON
96
+ }
97
+
98
+ static setVersion(dependency: DependencyName, version: DependencyVersion): void {
99
+ PackageManager.#cache[dependency] = version
100
+ }
101
+
102
+ #match(packageJSON: PackageJSON, dependency: DependencyName | RegExp): string | undefined {
103
+ const dependencies = {
104
+ ...packageJSON['dependencies'] || {},
105
+ ...packageJSON['devDependencies'] || {},
106
+ }
107
+
108
+ if (typeof dependency === 'string' && dependencies[dependency]) {
109
+ return dependencies[dependency]
110
+ }
111
+
112
+ const matchedDependency = Object.keys(dependencies).find(dep => dep.match(dependency))
113
+
114
+ return matchedDependency ? dependencies[matchedDependency] : undefined
115
+ }
116
+
117
+ async getVersion(dependency: DependencyName | RegExp): Promise<DependencyVersion | undefined> {
118
+ if (typeof dependency === 'string' && PackageManager.#cache[dependency]) {
119
+ return PackageManager.#cache[dependency]
120
+ }
121
+
122
+ const packageJSON = await this.getPackageJSON()
123
+
124
+ if (!packageJSON) {
125
+ return undefined
126
+ }
127
+
128
+ return this.#match(packageJSON, dependency)
129
+ }
130
+
131
+ getVersionSync(dependency: DependencyName | RegExp): DependencyVersion | undefined {
132
+ if (typeof dependency === 'string' && PackageManager.#cache[dependency]) {
133
+ return PackageManager.#cache[dependency]
134
+ }
135
+
136
+ const packageJSON = this.getPackageJSONSync()
137
+
138
+ if (!packageJSON) {
139
+ return undefined
140
+ }
141
+
142
+ return this.#match(packageJSON, dependency)
143
+ }
144
+
145
+ async isValid(dependency: DependencyName | RegExp, version: DependencyVersion): Promise<boolean> {
146
+ const packageVersion = await this.getVersion(dependency)
147
+
148
+ if (!packageVersion) {
149
+ return false
150
+ }
151
+
152
+ if (packageVersion === version) {
153
+ return true
154
+ }
155
+
156
+ const semVer = coerce(packageVersion)
157
+
158
+ if (!semVer) {
159
+ throw new Error(`${packageVersion} is not valid`)
160
+ }
161
+
162
+ return satisfies(semVer, version)
163
+ }
164
+ isValidSync(dependency: DependencyName | RegExp, version: DependencyVersion): boolean {
165
+ const packageVersion = this.getVersionSync(dependency)
166
+
167
+ if (!packageVersion) {
168
+ return false
169
+ }
170
+ const semVer = coerce(packageVersion)
171
+
172
+ if (!semVer) {
173
+ throw new Error(`${packageVersion} is not valid`)
174
+ }
175
+
176
+ return satisfies(semVer, version)
177
+ }
178
+ }