@goast/core 0.6.0 → 0.7.0-beta.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.
Files changed (342) hide show
  1. package/README.md +0 -4
  2. package/dist/mod.d.ts +31 -0
  3. package/{script → dist}/src/ast/node.d.ts +3 -4
  4. package/{esm → dist}/src/ast/node.js +3 -9
  5. package/{esm → dist}/src/codegen/config.d.ts +2 -3
  6. package/{script → dist}/src/codegen/endpoints-generator.d.ts +4 -5
  7. package/{esm → dist}/src/codegen/endpoints-generator.js +1 -1
  8. package/{script → dist}/src/codegen/generator.d.ts +7 -8
  9. package/{esm → dist}/src/codegen/generator.js +4 -21
  10. package/{esm → dist}/src/codegen/internal-utils.d.ts +0 -1
  11. package/{esm → dist}/src/codegen/internal-utils.js +0 -1
  12. package/{script → dist}/src/codegen/schemas-generator.d.ts +4 -5
  13. package/{esm → dist}/src/codegen/schemas-generator.js +1 -2
  14. package/{esm → dist}/src/codegen/services-generator.d.ts +4 -5
  15. package/{esm → dist}/src/codegen/services-generator.js +1 -1
  16. package/{script → dist}/src/codegen/types.d.ts +3 -4
  17. package/dist/src/collect/collector.d.ts +4 -0
  18. package/{esm → dist}/src/collect/collector.js +6 -8
  19. package/{esm → dist}/src/collect/helpers.d.ts +2 -3
  20. package/{script → dist}/src/collect/types.d.ts +2 -3
  21. package/{esm → dist}/src/internal-utils.d.ts +0 -1
  22. package/dist/src/parse/deref-proxy.d.ts +3 -0
  23. package/{esm → dist}/src/parse/deref-proxy.js +7 -21
  24. package/{esm → dist}/src/parse/openapi-types.d.ts +0 -1
  25. package/{esm → dist}/src/parse/parser.d.ts +3 -4
  26. package/{esm → dist}/src/parse/parser.js +7 -20
  27. package/{script → dist}/src/parse/types.d.ts +3 -4
  28. package/{script → dist}/src/transform/api-types.d.ts +3 -4
  29. package/{esm → dist}/src/transform/helpers.d.ts +4 -5
  30. package/{esm → dist}/src/transform/helpers.js +5 -15
  31. package/dist/src/transform/transform-document.d.ts +4 -0
  32. package/{esm → dist}/src/transform/transform-document.js +2 -4
  33. package/{esm → dist}/src/transform/transform-endpoint.d.ts +3 -4
  34. package/{esm → dist}/src/transform/transform-endpoint.js +10 -17
  35. package/dist/src/transform/transform-schema.d.ts +5 -0
  36. package/{esm → dist}/src/transform/transform-schema.js +8 -12
  37. package/dist/src/transform/transformer.d.ts +4 -0
  38. package/{esm → dist}/src/transform/types.d.ts +4 -5
  39. package/{script → dist}/src/utils/action-provider.d.ts +2 -3
  40. package/{esm → dist}/src/utils/action-provider.js +3 -7
  41. package/{esm → dist}/src/utils/api-data.utils.d.ts +1 -2
  42. package/{esm → dist}/src/utils/array.utils.d.ts +0 -1
  43. package/{script → dist}/src/utils/asset-manager.d.ts +0 -1
  44. package/{esm → dist}/src/utils/asset-manager.js +2 -8
  45. package/{esm → dist}/src/utils/class.utils.d.ts +0 -1
  46. package/{esm → dist}/src/utils/class.utils.js +0 -1
  47. package/{script → dist}/src/utils/common.utils.d.ts +1 -2
  48. package/{esm → dist}/src/utils/condition.d.ts +0 -1
  49. package/dist/src/utils/endpoint.utils.d.ts +2 -0
  50. package/{esm → dist}/src/utils/error.utils.d.ts +0 -1
  51. package/{esm → dist}/src/utils/factory.d.ts +2 -3
  52. package/{esm → dist}/src/utils/factory.js +3 -7
  53. package/{esm → dist}/src/utils/file-system.utils.d.ts +2 -3
  54. package/{esm → dist}/src/utils/generator.utils.d.ts +0 -1
  55. package/{esm → dist}/src/utils/object.utils.d.ts +0 -1
  56. package/{esm → dist}/src/utils/object.utils.js +2 -11
  57. package/dist/src/utils/schema-factory.d.ts +41 -0
  58. package/dist/src/utils/schema-factory.js +132 -0
  59. package/{esm → dist}/src/utils/schema.utils.d.ts +2 -3
  60. package/{esm → dist}/src/utils/schema.utils.js +1 -5
  61. package/{esm → dist}/src/utils/source-builder.d.ts +5 -6
  62. package/{esm → dist}/src/utils/source-builder.js +19 -54
  63. package/{script → dist}/src/utils/string-builder/options.d.ts +0 -1
  64. package/{script → dist}/src/utils/string-builder/string-builder.d.ts +2 -3
  65. package/{esm → dist}/src/utils/string-builder/string-builder.js +2 -12
  66. package/{esm → dist}/src/utils/string-builder/utils.d.ts +2 -3
  67. package/{esm → dist}/src/utils/string-builder/utils.js +4 -6
  68. package/{script → dist}/src/utils/string.utils.d.ts +2 -3
  69. package/{esm → dist}/src/utils/string.utils.js +9 -15
  70. package/{esm → dist}/src/utils/string.utils.types.d.ts +0 -1
  71. package/{esm → dist}/src/utils/type.utils.d.ts +0 -1
  72. package/{script → dist}/src/utils/yaml-info.d.ts +0 -1
  73. package/{esm → dist}/src/utils/yaml-info.js +9 -6
  74. package/package.json +25 -16
  75. package/esm/_dnt.shims.d.ts +0 -11
  76. package/esm/_dnt.shims.d.ts.map +0 -1
  77. package/esm/_dnt.shims.js +0 -66
  78. package/esm/mod.d.ts +0 -32
  79. package/esm/mod.d.ts.map +0 -1
  80. package/esm/package.json +0 -3
  81. package/esm/src/ast/node.d.ts +0 -17
  82. package/esm/src/ast/node.d.ts.map +0 -1
  83. package/esm/src/codegen/config.d.ts.map +0 -1
  84. package/esm/src/codegen/endpoints-generator.d.ts +0 -18
  85. package/esm/src/codegen/endpoints-generator.d.ts.map +0 -1
  86. package/esm/src/codegen/generator.d.ts +0 -39
  87. package/esm/src/codegen/generator.d.ts.map +0 -1
  88. package/esm/src/codegen/internal-utils.d.ts.map +0 -1
  89. package/esm/src/codegen/schemas-generator.d.ts +0 -19
  90. package/esm/src/codegen/schemas-generator.d.ts.map +0 -1
  91. package/esm/src/codegen/services-generator.d.ts.map +0 -1
  92. package/esm/src/codegen/types.d.ts +0 -19
  93. package/esm/src/codegen/types.d.ts.map +0 -1
  94. package/esm/src/collect/collector.d.ts +0 -5
  95. package/esm/src/collect/collector.d.ts.map +0 -1
  96. package/esm/src/collect/helpers.d.ts.map +0 -1
  97. package/esm/src/collect/types.d.ts +0 -14
  98. package/esm/src/collect/types.d.ts.map +0 -1
  99. package/esm/src/internal-utils.d.ts.map +0 -1
  100. package/esm/src/parse/deref-proxy.d.ts +0 -4
  101. package/esm/src/parse/deref-proxy.d.ts.map +0 -1
  102. package/esm/src/parse/openapi-types.d.ts.map +0 -1
  103. package/esm/src/parse/parser.d.ts.map +0 -1
  104. package/esm/src/parse/types.d.ts +0 -28
  105. package/esm/src/parse/types.d.ts.map +0 -1
  106. package/esm/src/transform/api-types.d.ts +0 -211
  107. package/esm/src/transform/api-types.d.ts.map +0 -1
  108. package/esm/src/transform/helpers.d.ts.map +0 -1
  109. package/esm/src/transform/transform-document.d.ts +0 -5
  110. package/esm/src/transform/transform-document.d.ts.map +0 -1
  111. package/esm/src/transform/transform-endpoint.d.ts.map +0 -1
  112. package/esm/src/transform/transform-schema.d.ts +0 -6
  113. package/esm/src/transform/transform-schema.d.ts.map +0 -1
  114. package/esm/src/transform/transformer.d.ts +0 -5
  115. package/esm/src/transform/transformer.d.ts.map +0 -1
  116. package/esm/src/transform/types.d.ts.map +0 -1
  117. package/esm/src/utils/action-provider.d.ts +0 -29
  118. package/esm/src/utils/action-provider.d.ts.map +0 -1
  119. package/esm/src/utils/api-data.utils.d.ts.map +0 -1
  120. package/esm/src/utils/array.utils.d.ts.map +0 -1
  121. package/esm/src/utils/asset-manager.d.ts +0 -9
  122. package/esm/src/utils/asset-manager.d.ts.map +0 -1
  123. package/esm/src/utils/class.utils.d.ts.map +0 -1
  124. package/esm/src/utils/common.utils.d.ts +0 -16
  125. package/esm/src/utils/common.utils.d.ts.map +0 -1
  126. package/esm/src/utils/condition.d.ts.map +0 -1
  127. package/esm/src/utils/endpoint.utils.d.ts +0 -3
  128. package/esm/src/utils/endpoint.utils.d.ts.map +0 -1
  129. package/esm/src/utils/error.utils.d.ts.map +0 -1
  130. package/esm/src/utils/factory.d.ts.map +0 -1
  131. package/esm/src/utils/file-system.utils.d.ts.map +0 -1
  132. package/esm/src/utils/generator.utils.d.ts.map +0 -1
  133. package/esm/src/utils/object.utils.d.ts.map +0 -1
  134. package/esm/src/utils/schema.utils.d.ts.map +0 -1
  135. package/esm/src/utils/source-builder.d.ts.map +0 -1
  136. package/esm/src/utils/string-builder/options.d.ts +0 -15
  137. package/esm/src/utils/string-builder/options.d.ts.map +0 -1
  138. package/esm/src/utils/string-builder/string-builder.d.ts +0 -73
  139. package/esm/src/utils/string-builder/string-builder.d.ts.map +0 -1
  140. package/esm/src/utils/string-builder/utils.d.ts.map +0 -1
  141. package/esm/src/utils/string.utils.d.ts +0 -149
  142. package/esm/src/utils/string.utils.d.ts.map +0 -1
  143. package/esm/src/utils/string.utils.types.d.ts.map +0 -1
  144. package/esm/src/utils/type.utils.d.ts.map +0 -1
  145. package/esm/src/utils/yaml-info.d.ts +0 -13
  146. package/esm/src/utils/yaml-info.d.ts.map +0 -1
  147. package/script/_dnt.shims.d.ts +0 -11
  148. package/script/_dnt.shims.d.ts.map +0 -1
  149. package/script/_dnt.shims.js +0 -75
  150. package/script/mod.d.ts +0 -32
  151. package/script/mod.d.ts.map +0 -1
  152. package/script/mod.js +0 -36
  153. package/script/package.json +0 -3
  154. package/script/src/ast/node.d.ts.map +0 -1
  155. package/script/src/ast/node.js +0 -33
  156. package/script/src/codegen/config.d.ts +0 -36
  157. package/script/src/codegen/config.d.ts.map +0 -1
  158. package/script/src/codegen/config.js +0 -12
  159. package/script/src/codegen/endpoints-generator.d.ts.map +0 -1
  160. package/script/src/codegen/endpoints-generator.js +0 -35
  161. package/script/src/codegen/generator.d.ts.map +0 -1
  162. package/script/src/codegen/generator.js +0 -134
  163. package/script/src/codegen/internal-utils.d.ts +0 -2
  164. package/script/src/codegen/internal-utils.d.ts.map +0 -1
  165. package/script/src/codegen/internal-utils.js +0 -9
  166. package/script/src/codegen/schemas-generator.d.ts.map +0 -1
  167. package/script/src/codegen/schemas-generator.js +0 -49
  168. package/script/src/codegen/services-generator.d.ts +0 -18
  169. package/script/src/codegen/services-generator.d.ts.map +0 -1
  170. package/script/src/codegen/services-generator.js +0 -35
  171. package/script/src/codegen/types.d.ts.map +0 -1
  172. package/script/src/codegen/types.js +0 -2
  173. package/script/src/collect/collector.d.ts +0 -5
  174. package/script/src/collect/collector.d.ts.map +0 -1
  175. package/script/src/collect/collector.js +0 -122
  176. package/script/src/collect/helpers.d.ts +0 -5
  177. package/script/src/collect/helpers.d.ts.map +0 -1
  178. package/script/src/collect/helpers.js +0 -37
  179. package/script/src/collect/types.d.ts.map +0 -1
  180. package/script/src/collect/types.js +0 -2
  181. package/script/src/internal-utils.d.ts +0 -2
  182. package/script/src/internal-utils.d.ts.map +0 -1
  183. package/script/src/internal-utils.js +0 -6
  184. package/script/src/parse/deref-proxy.d.ts +0 -4
  185. package/script/src/parse/deref-proxy.d.ts.map +0 -1
  186. package/script/src/parse/deref-proxy.js +0 -71
  187. package/script/src/parse/openapi-types.d.ts +0 -902
  188. package/script/src/parse/openapi-types.d.ts.map +0 -1
  189. package/script/src/parse/openapi-types.js +0 -2
  190. package/script/src/parse/parser.d.ts +0 -18
  191. package/script/src/parse/parser.d.ts.map +0 -1
  192. package/script/src/parse/parser.js +0 -183
  193. package/script/src/parse/types.d.ts.map +0 -1
  194. package/script/src/parse/types.js +0 -5
  195. package/script/src/transform/api-types.d.ts.map +0 -1
  196. package/script/src/transform/api-types.js +0 -2
  197. package/script/src/transform/helpers.d.ts +0 -58
  198. package/script/src/transform/helpers.d.ts.map +0 -1
  199. package/script/src/transform/helpers.js +0 -211
  200. package/script/src/transform/transform-document.d.ts +0 -5
  201. package/script/src/transform/transform-document.d.ts.map +0 -1
  202. package/script/src/transform/transform-document.js +0 -34
  203. package/script/src/transform/transform-endpoint.d.ts +0 -5
  204. package/script/src/transform/transform-endpoint.d.ts.map +0 -1
  205. package/script/src/transform/transform-endpoint.js +0 -273
  206. package/script/src/transform/transform-schema.d.ts +0 -6
  207. package/script/src/transform/transform-schema.d.ts.map +0 -1
  208. package/script/src/transform/transform-schema.js +0 -196
  209. package/script/src/transform/transformer.d.ts +0 -5
  210. package/script/src/transform/transformer.d.ts.map +0 -1
  211. package/script/src/transform/transformer.js +0 -45
  212. package/script/src/transform/types.d.ts +0 -36
  213. package/script/src/transform/types.d.ts.map +0 -1
  214. package/script/src/transform/types.js +0 -6
  215. package/script/src/utils/action-provider.d.ts.map +0 -1
  216. package/script/src/utils/action-provider.js +0 -33
  217. package/script/src/utils/api-data.utils.d.ts +0 -3
  218. package/script/src/utils/api-data.utils.d.ts.map +0 -1
  219. package/script/src/utils/api-data.utils.js +0 -42
  220. package/script/src/utils/array.utils.d.ts +0 -2
  221. package/script/src/utils/array.utils.d.ts.map +0 -1
  222. package/script/src/utils/array.utils.js +0 -10
  223. package/script/src/utils/asset-manager.d.ts.map +0 -1
  224. package/script/src/utils/asset-manager.js +0 -55
  225. package/script/src/utils/class.utils.d.ts +0 -8
  226. package/script/src/utils/class.utils.d.ts.map +0 -1
  227. package/script/src/utils/class.utils.js +0 -33
  228. package/script/src/utils/common.utils.d.ts.map +0 -1
  229. package/script/src/utils/common.utils.js +0 -84
  230. package/script/src/utils/condition.d.ts +0 -4
  231. package/script/src/utils/condition.d.ts.map +0 -1
  232. package/script/src/utils/condition.js +0 -7
  233. package/script/src/utils/endpoint.utils.d.ts +0 -3
  234. package/script/src/utils/endpoint.utils.d.ts.map +0 -1
  235. package/script/src/utils/endpoint.utils.js +0 -11
  236. package/script/src/utils/error.utils.d.ts +0 -2
  237. package/script/src/utils/error.utils.d.ts.map +0 -1
  238. package/script/src/utils/error.utils.js +0 -6
  239. package/script/src/utils/factory.d.ts +0 -21
  240. package/script/src/utils/factory.d.ts.map +0 -1
  241. package/script/src/utils/factory.js +0 -33
  242. package/script/src/utils/file-system.utils.d.ts +0 -11
  243. package/script/src/utils/file-system.utils.d.ts.map +0 -1
  244. package/script/src/utils/file-system.utils.js +0 -79
  245. package/script/src/utils/generator.utils.d.ts +0 -2
  246. package/script/src/utils/generator.utils.d.ts.map +0 -1
  247. package/script/src/utils/generator.utils.js +0 -9
  248. package/script/src/utils/object.utils.d.ts +0 -3
  249. package/script/src/utils/object.utils.d.ts.map +0 -1
  250. package/script/src/utils/object.utils.js +0 -40
  251. package/script/src/utils/schema.utils.d.ts +0 -12
  252. package/script/src/utils/schema.utils.d.ts.map +0 -1
  253. package/script/src/utils/schema.utils.js +0 -206
  254. package/script/src/utils/source-builder.d.ts +0 -236
  255. package/script/src/utils/source-builder.d.ts.map +0 -1
  256. package/script/src/utils/source-builder.js +0 -458
  257. package/script/src/utils/string-builder/options.d.ts.map +0 -1
  258. package/script/src/utils/string-builder/options.js +0 -10
  259. package/script/src/utils/string-builder/string-builder.d.ts.map +0 -1
  260. package/script/src/utils/string-builder/string-builder.js +0 -153
  261. package/script/src/utils/string-builder/utils.d.ts +0 -22
  262. package/script/src/utils/string-builder/utils.d.ts.map +0 -1
  263. package/script/src/utils/string-builder/utils.js +0 -37
  264. package/script/src/utils/string.utils.d.ts.map +0 -1
  265. package/script/src/utils/string.utils.js +0 -382
  266. package/script/src/utils/string.utils.types.d.ts +0 -150
  267. package/script/src/utils/string.utils.types.d.ts.map +0 -1
  268. package/script/src/utils/string.utils.types.js +0 -2
  269. package/script/src/utils/type.utils.d.ts +0 -57
  270. package/script/src/utils/type.utils.d.ts.map +0 -1
  271. package/script/src/utils/type.utils.js +0 -10
  272. package/script/src/utils/yaml-info.d.ts.map +0 -1
  273. package/script/src/utils/yaml-info.js +0 -38
  274. package/src/_dnt.shims.ts +0 -69
  275. package/src/mod.ts +0 -35
  276. package/src/src/ast/node.ts +0 -46
  277. package/src/src/codegen/config.ts +0 -50
  278. package/src/src/codegen/endpoints-generator.ts +0 -72
  279. package/src/src/codegen/generator.ts +0 -192
  280. package/src/src/codegen/internal-utils.ts +0 -6
  281. package/src/src/codegen/schemas-generator.ts +0 -87
  282. package/src/src/codegen/services-generator.ts +0 -77
  283. package/src/src/codegen/types.ts +0 -37
  284. package/src/src/collect/collector.ts +0 -142
  285. package/src/src/collect/helpers.ts +0 -36
  286. package/src/src/collect/types.ts +0 -21
  287. package/src/src/internal-utils.ts +0 -5
  288. package/src/src/parse/deref-proxy.ts +0 -70
  289. package/src/src/parse/openapi-types.ts +0 -953
  290. package/src/src/parse/parser.ts +0 -206
  291. package/src/src/parse/types.ts +0 -28
  292. package/src/src/transform/api-types.ts +0 -259
  293. package/src/src/transform/helpers.ts +0 -251
  294. package/src/src/transform/transform-document.ts +0 -35
  295. package/src/src/transform/transform-endpoint.ts +0 -332
  296. package/src/src/transform/transform-schema.ts +0 -232
  297. package/src/src/transform/transformer.ts +0 -53
  298. package/src/src/transform/types.ts +0 -52
  299. package/src/src/utils/action-provider.ts +0 -58
  300. package/src/src/utils/api-data.utils.ts +0 -48
  301. package/src/src/utils/array.utils.ts +0 -7
  302. package/src/src/utils/asset-manager.ts +0 -51
  303. package/src/src/utils/class.utils.ts +0 -40
  304. package/src/src/utils/common.utils.ts +0 -86
  305. package/src/src/utils/condition.ts +0 -7
  306. package/src/src/utils/endpoint.utils.ts +0 -10
  307. package/src/src/utils/error.utils.ts +0 -3
  308. package/src/src/utils/factory.ts +0 -42
  309. package/src/src/utils/file-system.utils.ts +0 -97
  310. package/src/src/utils/generator.utils.ts +0 -6
  311. package/src/src/utils/object.utils.ts +0 -32
  312. package/src/src/utils/schema.utils.ts +0 -240
  313. package/src/src/utils/source-builder.ts +0 -597
  314. package/src/src/utils/string-builder/options.ts +0 -19
  315. package/src/src/utils/string-builder/string-builder.ts +0 -165
  316. package/src/src/utils/string-builder/utils.ts +0 -69
  317. package/src/src/utils/string.utils.ts +0 -394
  318. package/src/src/utils/string.utils.types.ts +0 -179
  319. package/src/src/utils/type.utils.ts +0 -93
  320. package/src/src/utils/yaml-info.ts +0 -48
  321. /package/{esm → dist}/mod.js +0 -0
  322. /package/{esm → dist}/src/codegen/config.js +0 -0
  323. /package/{esm → dist}/src/codegen/types.js +0 -0
  324. /package/{esm → dist}/src/collect/helpers.js +0 -0
  325. /package/{esm → dist}/src/collect/types.js +0 -0
  326. /package/{esm → dist}/src/internal-utils.js +0 -0
  327. /package/{esm → dist}/src/parse/openapi-types.js +0 -0
  328. /package/{esm → dist}/src/parse/types.js +0 -0
  329. /package/{esm → dist}/src/transform/api-types.js +0 -0
  330. /package/{esm → dist}/src/transform/transformer.js +0 -0
  331. /package/{esm → dist}/src/transform/types.js +0 -0
  332. /package/{esm → dist}/src/utils/api-data.utils.js +0 -0
  333. /package/{esm → dist}/src/utils/array.utils.js +0 -0
  334. /package/{esm → dist}/src/utils/common.utils.js +0 -0
  335. /package/{esm → dist}/src/utils/condition.js +0 -0
  336. /package/{esm → dist}/src/utils/endpoint.utils.js +0 -0
  337. /package/{esm → dist}/src/utils/error.utils.js +0 -0
  338. /package/{esm → dist}/src/utils/file-system.utils.js +0 -0
  339. /package/{esm → dist}/src/utils/generator.utils.js +0 -0
  340. /package/{esm → dist}/src/utils/string-builder/options.js +0 -0
  341. /package/{esm → dist}/src/utils/string.utils.types.js +0 -0
  342. /package/{esm → dist}/src/utils/type.utils.js +0 -0
@@ -1,206 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.DEFAULT_IGNORED_SCHEMA_PROPERTIES = void 0;
4
- exports.resolveAnyOfAndAllOf = resolveAnyOfAndAllOf;
5
- exports.getSchemaReference = getSchemaReference;
6
- const internal_utils_js_1 = require("../internal-utils.js");
7
- function resolveAnyOfAndAllOf(schema, ignoreNonObjectParts) {
8
- if (!ignoreNonObjectParts && (hasInvalidSubSchema(schema.anyOf) || hasInvalidSubSchema(schema.allOf))) {
9
- return undefined;
10
- }
11
- const required = new Set(schema.required);
12
- const properties = new Map();
13
- if ('properties' in schema) {
14
- schema.properties.forEach((prop) => properties.set(prop.name, prop));
15
- }
16
- collectSubSchemaProperties(schema.allOf, properties, required, false);
17
- collectSubSchemaProperties(schema.anyOf, properties, required, true);
18
- const initialAdditionalProperties = schema.kind === 'object' ? schema.additionalProperties : undefined;
19
- let additionalProperties = initialAdditionalProperties;
20
- additionalProperties = combineAdditionalProperties(schema.allOf, additionalProperties);
21
- additionalProperties = combineAdditionalProperties(schema.anyOf, additionalProperties);
22
- if (properties.size === 0 && initialAdditionalProperties === additionalProperties) {
23
- return undefined;
24
- }
25
- return {
26
- ...schema,
27
- kind: 'object',
28
- type: 'object',
29
- anyOf: [],
30
- allOf: [],
31
- properties: properties,
32
- required: required,
33
- additionalProperties,
34
- };
35
- }
36
- function collectSubSchemaProperties(subSchemas, properties, required, optional, collected = { required: new Set(), optional: new Set() }) {
37
- const seen = optional ? collected.optional : collected.required;
38
- for (const subSchema of subSchemas) {
39
- if (seen.has(subSchema))
40
- continue;
41
- seen.add(subSchema);
42
- if (subSchema.kind === 'object') {
43
- for (const prop of subSchema.properties.values()) {
44
- const existing = properties.get(prop.name);
45
- if (!existing) {
46
- properties.set(prop.name, prop);
47
- }
48
- else if (hasConflictingType(existing.schema, prop.schema)) {
49
- // Two branches declare the same property with types that cannot both hold. Picking one and
50
- // discarding the other would make the merged schema assert something the source contradicts, so
51
- // widen to a schema that admits both instead.
52
- properties.set(prop.name, { name: prop.name, schema: widenSchemas(existing.schema, prop.schema) });
53
- }
54
- }
55
- }
56
- // A branch does not have to contribute properties to contribute requiredness: `allOf: [{ required: [x] }]`
57
- // only tightens a property inherited from a sibling branch and has no type or properties of its own.
58
- if (!optional) {
59
- for (const prop of subSchema.required) {
60
- required.add(prop);
61
- }
62
- }
63
- if (subSchema.kind === 'object' || subSchema.kind === 'combined') {
64
- collectSubSchemaProperties(subSchema.allOf, properties, required, optional, collected);
65
- collectSubSchemaProperties(subSchema.anyOf, properties, required, true, collected);
66
- }
67
- else {
68
- // Exactly one branch of a composed `oneOf` applies to any given instance, so its properties are
69
- // collected but none of its requiredness is — the same treatment an `anyOf` branch gets.
70
- const oneOf = composedOneOf(subSchema);
71
- if (oneOf)
72
- collectSubSchemaProperties(oneOf, properties, required, true, collected);
73
- }
74
- }
75
- }
76
- /**
77
- * The branches of a `oneOf` sub-schema that describe the same instance as the schema composing it, or
78
- * `undefined` if it has none.
79
- *
80
- * An undiscriminated `oneOf` inside a composition constrains the very instance being composed:
81
- * `allOf: [{ oneOf: [A, B] }, C]` is "A or B, *and* C", so whichever branch applies contributes its
82
- * properties to the whole. A `oneOf` that declares a `discriminator` is not a composition but a list of
83
- * subtypes, and `allOf: [Base]` against such a schema means "is a Base" — the sibling subtypes' properties
84
- * belong to those siblings, not to the schema inheriting from the base.
85
- */
86
- function composedOneOf(schema) {
87
- return schema.kind === 'oneOf' && !schema.discriminator ? schema.oneOf : undefined;
88
- }
89
- /**
90
- * Whether two declarations of one property name state types that cannot both hold. A branch that says
91
- * nothing about the type (`unknown`) constrains nothing and so never conflicts, and two declarations of the
92
- * same kind are treated as a refinement of one another rather than a conflict, so the first still wins.
93
- */
94
- function hasConflictingType(a, b) {
95
- return a.kind !== b.kind && a.kind !== 'unknown' && b.kind !== 'unknown';
96
- }
97
- /** The branches a schema contributes to a widened `oneOf`, flattened so widening stays a single level. */
98
- function conflictBranches(schema) {
99
- return schema.kind === 'oneOf' ? schema.oneOf : [schema];
100
- }
101
- /** A `oneOf` admitting either side of a conflicting merge, so neither side is silently discarded. */
102
- function widenSchemas(a, b) {
103
- const oneOf = [];
104
- for (const branch of [...conflictBranches(a), ...conflictBranches(b)]) {
105
- if (!oneOf.some((x) => x.id === branch.id))
106
- oneOf.push(branch);
107
- }
108
- // Derived from the branch ids rather than generated, so the same conflict always yields the same schema.
109
- const id = `conflict-${oneOf.map((x) => x.id).join('+')}`;
110
- return {
111
- ...a,
112
- $ref: undefined,
113
- id,
114
- name: id,
115
- isNameGenerated: true,
116
- kind: 'oneOf',
117
- enum: undefined,
118
- const: undefined,
119
- default: undefined,
120
- discriminator: undefined,
121
- inheritedSchemas: [],
122
- nullable: a.nullable || b.nullable,
123
- oneOf,
124
- };
125
- }
126
- function combineAdditionalProperties(subSchemas, current,
127
- /** Guards the same composition cycle `collectSubSchemaProperties` guards; see `CollectedSubSchemas`. */
128
- visited = new Set()) {
129
- if (current === true)
130
- return true;
131
- for (const subSchema of subSchemas) {
132
- if (visited.has(subSchema))
133
- continue;
134
- visited.add(subSchema);
135
- if (subSchema.kind === 'object' && subSchema.additionalProperties) {
136
- if (subSchema.additionalProperties === true)
137
- return true;
138
- if (!current) {
139
- current = subSchema.additionalProperties;
140
- }
141
- else if (current && current.id !== subSchema.additionalProperties.id) {
142
- if (current.kind === 'oneOf') {
143
- current.oneOf.push(subSchema.additionalProperties);
144
- }
145
- else {
146
- const id = `schema-${Math.random().toString(36).substring(2)}`;
147
- current = {
148
- $ref: undefined,
149
- $src: current.$src,
150
- id,
151
- kind: 'oneOf',
152
- name: id,
153
- isNameGenerated: true,
154
- description: undefined,
155
- deprecated: false,
156
- accessibility: 'all',
157
- enum: undefined,
158
- const: undefined,
159
- default: undefined,
160
- example: undefined,
161
- nullable: false,
162
- required: new Set(),
163
- custom: {},
164
- not: undefined,
165
- discriminator: undefined,
166
- inheritedSchemas: [],
167
- oneOf: [current, subSchema.additionalProperties],
168
- };
169
- }
170
- }
171
- }
172
- if (subSchema.kind === 'object' || subSchema.kind === 'combined') {
173
- current = combineAdditionalProperties(subSchema.allOf, current, visited);
174
- current = combineAdditionalProperties(subSchema.anyOf, current, visited);
175
- }
176
- else {
177
- const oneOf = composedOneOf(subSchema);
178
- if (oneOf)
179
- current = combineAdditionalProperties(oneOf, current, visited);
180
- }
181
- if (current === true)
182
- return true;
183
- }
184
- return current;
185
- }
186
- function hasInvalidSubSchema(subSchemas) {
187
- return subSchemas.some((x) => x.kind !== 'object' &&
188
- (x.kind !== 'combined' || (!hasInvalidSubSchema(x.allOf) && !hasInvalidSubSchema(x.anyOf))));
189
- }
190
- exports.DEFAULT_IGNORED_SCHEMA_PROPERTIES = [
191
- 'description',
192
- 'example',
193
- 'deprecated',
194
- ];
195
- /**
196
- * Retrieves the first schema reference and the reference chain of a given schema that
197
- * defines some schema properties. (e.g. schemas with just "$ref" are skipped)
198
- * @param schema The schema to retrieve the reference from.
199
- * @param propertiesToIgnore The properties to ignore when checking for a schema definition.
200
- */
201
- function getSchemaReference(schema, propertiesToIgnore) {
202
- if (!schema.$ref)
203
- return schema;
204
- const hasPropertiesDefined = Object.keys(schema.$src.originalComponent).some((key) => (0, internal_utils_js_1.isOpenApiObjectProperty)(key) && !propertiesToIgnore.includes(key));
205
- return hasPropertiesDefined ? schema : getSchemaReference(schema.$ref, propertiesToIgnore);
206
- }
@@ -1,236 +0,0 @@
1
- import { type Condition } from './condition.js';
2
- import { type StringBuilderOptions } from './string-builder/options.js';
3
- import { type AppendParam, type BuilderFn, StringBuilder } from './string-builder/string-builder.js';
4
- import type { AppendValue } from './string-builder/utils.js';
5
- import type { Nullable } from './type.utils.js';
6
- export type IndentOptions = {
7
- readonly type: 'tabs';
8
- } | {
9
- readonly type: 'spaces';
10
- readonly count: number;
11
- };
12
- /**
13
- * Options for the `SourceBuilder` class.
14
- */
15
- export type SourceBuilderOptions = StringBuilderOptions & {
16
- /**
17
- * The type of indentation to use.
18
- * @default { type: 'spaces', count: 2 }
19
- */
20
- indent: IndentOptions;
21
- };
22
- /**
23
- * Default options for the `SourceBuilder` class.
24
- */
25
- export declare const defaultSourceBuilderOptions: SourceBuilderOptions;
26
- type KnownParatheses = '()' | '[]' | '{}' | '<>';
27
- export type Paratheses<TBuilder extends StringBuilder> = KnownParatheses | Omit<string, KnownParatheses> | [open: Nullable<AppendValue<TBuilder>>, close: Nullable<AppendValue<TBuilder>>];
28
- export type SeparatorBuidlerFn<TBuilder, TItem> = (builder: TBuilder, previousItem: TItem, nextItem: TItem, previousItemIndex: number, nextItemIndex: number) => void;
29
- export type Separator<TBuilder, TItem> = string | SeparatorBuidlerFn<TBuilder, TItem>;
30
- /**
31
- * Options for the `parenthesize` methods of the `SourceBuilder`.
32
- * @see SourceBuilder.parenthesize
33
- * @see SourceBuilder.parenthesizeIf
34
- */
35
- export type ParenthesizeOptions = {
36
- /**
37
- * Whether to add line breaks after start and before end of the parentheses.
38
- * @default false
39
- */
40
- readonly multiline?: boolean;
41
- /**
42
- * Whether to indent the content inside parentheses.
43
- * @default true
44
- */
45
- readonly indent?: boolean;
46
- /**
47
- * Whether to pretend that the current line and the one before is empty or consists only of whitespace characters.
48
- * This is useful when the parentheses are used as a block and `ensurePreviousLineEmpty` is used.
49
- * @default true
50
- */
51
- readonly pretendEmpty?: boolean;
52
- };
53
- /**
54
- * Options for the `forEach` methods of the `SourceBuilder`.
55
- * @see SourceBuilder.forEach
56
- * @see SourceBuilder.forEachIf
57
- */
58
- export type ForEachOptions<TBuilder, TItem> = {
59
- /**
60
- * The condition to check before adding content for each item. Defaults to `true`.
61
- */
62
- readonly condition?: Condition<TItem>;
63
- /**
64
- * The seperator to add between items. Default to `undefined`.
65
- */
66
- readonly separator?: Separator<TBuilder, TItem>;
67
- };
68
- type SwitchCase<TValue, TBuilder extends StringBuilder> = {
69
- case: TValue;
70
- value: AppendValue<TBuilder>;
71
- };
72
- export declare function getIndentString(options: IndentOptions): string;
73
- /**
74
- * Represents an in-memory source file.
75
- */
76
- export declare class SourceBuilder<TAdditionalAppends = never> extends StringBuilder<TAdditionalAppends> {
77
- private readonly __options;
78
- private readonly _indentString;
79
- private _isLineIndented;
80
- private _isLastLineEmpty;
81
- private _isCurrentLineEmpty;
82
- private _linePrefixNodes;
83
- /**
84
- * Gets the options used by this instance.
85
- */
86
- get options(): SourceBuilderOptions;
87
- get isCurrentLineEmpty(): boolean;
88
- /**
89
- * Initializes a new instance of the SourceBuilder class.
90
- * @param options The options to use for this instance.
91
- */
92
- constructor(options?: Partial<SourceBuilderOptions>);
93
- /**
94
- * Creates a new instance of the SourceBuilder class from a string.
95
- * @param str The string to use as the initial content of the builder.
96
- * @param options The options to use for this instance.
97
- * @returns A new instance of the SourceBuilder class.
98
- */
99
- static fromString(str: string, options?: Partial<SourceBuilderOptions>): SourceBuilder;
100
- /**
101
- * Builds a string using a callback function that receives a `SourceBuilder` instance.
102
- * @param buildAction The callback function that receives a `SourceBuilder` instance to build the string.
103
- * @param options The options to use for the `SourceBuilder` instance.
104
- * @returns The string built by the `SourceBuilder` instance.
105
- */
106
- static build(buildAction: AppendParam<SourceBuilder, never>, options?: Partial<SourceBuilderOptions>): string;
107
- protected appendSingle(value: AppendParam<this, TAdditionalAppends>): void;
108
- /**
109
- * Appends one or more strings to the end of the current SourceBuilder if the specified condition is true.
110
- * @param condition The condition to check before appending the specified value.
111
- * @param value The string(s) to append.
112
- * @returns The current SourceBuilder.
113
- */
114
- appendIf(condition: Condition, ...value: AppendParam<this, TAdditionalAppends>[]): this;
115
- /**
116
- * Appends one or more strings to the end of the current SourceBuilder, followed by a line terminator.
117
- * @param value The string(s) to append.
118
- * @returns The current SourceBuilder.
119
- */
120
- appendLine(...value: AppendParam<this, TAdditionalAppends>[]): this;
121
- /**
122
- * Appends one or more strings to the end of the current SourceBuilder, followed by a line terminator, if the specified condition is true.
123
- * @param condition The condition to check before appending the specified value.
124
- * @param value The string(s) to append.
125
- * @returns The current SourceBuilder.
126
- */
127
- appendLineIf(condition: Condition, ...value: AppendParam<this, TAdditionalAppends>[]): this;
128
- /**
129
- * Appends the specified values to this source builder with the specified line prefix.
130
- * @param {string} prefix - The line prefix to use.
131
- * @param {...(string|null|undefined)} value - The values to append.
132
- * @returns {SourceBuilder} This source builder instance.
133
- */
134
- appendWithLinePrefix(prefix: string, ...value: AppendParam<this, TAdditionalAppends>[]): this;
135
- /**
136
- * Appends the specified values to this source builder as a new line with the specified line prefix.
137
- * @param {string} prefix - The line prefix to use.
138
- * @param {...(string|null|undefined)} value - The values to append.
139
- * @returns {SourceBuilder} This source builder instance.
140
- */
141
- appendLineWithLinePrefix(prefix: string, ...value: AppendParam<this, TAdditionalAppends>[]): this;
142
- /**
143
- * Prepends one or more strings to the beginning of the current SourceBuilder if the specified condition is true.
144
- * @param condition The condition to check before prepending the specified value.
145
- * @param value The string(s) to prepend.
146
- * @returns The current SourceBuilder.
147
- */
148
- prependIf(condition: Condition, ...value: AppendParam<StringBuilder, never>[]): this;
149
- /**
150
- * Prepends one or more strings to the beginning of the current SourceBuilder, followed by a line terminator, if the specified condition is true.
151
- * @param condition The condition to check before appending the specified value.
152
- * @param value The string(s) to prepend.
153
- * @returns The current SourceBuilder.
154
- */
155
- prependLineIf(condition: Condition, ...value: AppendParam<StringBuilder, never>[]): this;
156
- /**
157
- * Ensures that the current line and the one before is empty or consists only of whitespace characters.
158
- * @returns A reference to this instance.
159
- */
160
- ensurePreviousLineEmpty(): this;
161
- /**
162
- * Ensures that the current line is empty or consists only of whitespace characters.
163
- * @returns A reference to this instance.
164
- */
165
- ensureCurrentLineEmpty(): this;
166
- /**
167
- * Pretends that the current line and the one before is empty or consists only of whitespace characters.
168
- * @returns A reference to this instance.
169
- */
170
- pretendPreviousLineEmpty(): this;
171
- /**
172
- * Pretends that the current line is empty or consists only of whitespace characters.
173
- * @returns A reference to this instance.
174
- */
175
- pretendCurrentLineEmpty(): this;
176
- /**
177
- * Inserts specified content if the specified condition is true.
178
- * @param condition The condition to check before inserting content.
179
- * @param builderFn The function to add content if the condition is true.
180
- * @param elseBuilderFn The function to add content if the condition is false.
181
- * @returns A reference to this instance.
182
- */
183
- if(condition: Condition, builderFn: AppendParam<this, TAdditionalAppends>, elseBuilderFn?: AppendParam<this, TAdditionalAppends>): this;
184
- switch<T extends string | number>(value: T, cases: Record<T, AppendParam<this, TAdditionalAppends>>, defaultBuilderFn?: AppendParam<this, TAdditionalAppends>): this;
185
- switch<T>(value: T, cases: SwitchCase<T, this>[], defaultBuilderFn?: AppendParam<this, TAdditionalAppends>, equals?: (a: T, b: T) => boolean): this;
186
- /**
187
- * Adds one indentation level. If the current line already contains characters, only subsequent lines are affected.
188
- * @param builderFn The function to add indented content or the content itself.
189
- * @param condition The condition to check before adding indentation.
190
- * @returns A reference to this instance.
191
- */
192
- indent(value: AppendParam<this, TAdditionalAppends>): this;
193
- /**
194
- * Adds one indentation level if the specified condition is true. If the current line already contains characters, only subsequent lines are affected.
195
- * @param builderFn The function to add indented content or the content itself.
196
- * @param condition The condition to check before adding indentation.
197
- * @returns A reference to this instance.
198
- */
199
- indentIf(condition: Condition, value: AppendParam<this, TAdditionalAppends>): this;
200
- /**
201
- * Adds parentheses around the specified content.
202
- * @param brackets The brackets to use.
203
- * @param value The function to add content inside parentheses or one string that should be parenthesized.
204
- * @param options Options for the parentheses.
205
- * @returns A reference to this instance.
206
- */
207
- parenthesize(brackets: Paratheses<this>, value: AppendParam<this, TAdditionalAppends>, options?: ParenthesizeOptions): this;
208
- /**
209
- * Adds parentheses around the specified content if the specified condition is true.
210
- * @param condition The condition to check before adding parentheses.
211
- * @param brackets The brackets to use.
212
- * @param value The function to add content inside parentheses or one string that should be parenthesized.
213
- * @param options Options for the parentheses.
214
- * @returns A reference to this instance.
215
- */
216
- parenthesizeIf(condition: Condition, brackets: Paratheses<this>, value: AppendParam<this, TAdditionalAppends>, options?: ParenthesizeOptions): this;
217
- /**
218
- * Adds content for each item in the specified array.
219
- * @param items The items to add content for.
220
- * @param builderFn The function to add content for each item.
221
- * @param options The options for the loop.
222
- * @returns A reference to this instance.
223
- */
224
- forEach<T>(items: Iterable<T>, builderFn: (builder: this, item: T, index: number) => void, options?: ForEachOptions<this, T>): this;
225
- forEachIf<T>(condition: Condition, items: Iterable<T>, builderFn: (builder: this, item: T, index: number) => void, options?: ForEachOptions<this, T>): this;
226
- appendSeparated(items: Iterable<AppendParam<this, TAdditionalAppends>>, separator: string): this;
227
- appendSeparatedIf(condition: Condition, items: Iterable<AppendParam<this, TAdditionalAppends>>, separator: string): this;
228
- private appendIndent;
229
- }
230
- declare function _builderTemplate<T extends SourceBuilder>(template: readonly string[] | ArrayLike<string>, ...substitutions: AppendValue<T>[]): BuilderFn<T>;
231
- declare const _builderTemplateExtensions: {
232
- readonly indent: <T extends SourceBuilder>(template: readonly string[] | ArrayLike<string>, ...substitutions: AppendValue<T>[]) => BuilderFn<T>;
233
- };
234
- export declare const builderTemplate: typeof _builderTemplate & typeof _builderTemplateExtensions;
235
- export {};
236
- //# sourceMappingURL=source-builder.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"source-builder.d.ts","sourceRoot":"","sources":["../../../src/src/utils/source-builder.ts"],"names":[],"mappings":"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"}